RWluIHBhYXIgc2NobmVsbGUgVGlwcyAoS2V0b3MsIDE4LiBKdW4gMTk5NCwgMjM6NDU6MzUpOgpFcnN0ZW5zLCBNdWRkZSBuaWNodCwgd2VubiBEdSBkaWUgU2NobmF1dHplIHZvbGwgaGFzdC4KWndlaXN0ZW5zLCBNdWRkZSBuaWNodCwgd2VubiBEdSBtdWVkZSBiaXN0LgpEcml0dGVucywgTXVkZGUgbmljaHQsIGZhbmdlIHp1IGxlYmVuICEKCl8gay0gS2V0b3MgLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW4gc2NobmVsbGVyIFRpcCAoRGFuY2VyLCAyMC4gSnVuIDE5OTQsIDAxOjM1OjMyKToKdmllcnRlbnMsIGhvZXIgYXVmIHp1IGhvZmZlbiwgZGFzcyBEdSBqZW1hbHMgYXVmaG9lcmVuIGtvZW5udGVzdCwgenUgbXVkZGVuCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2luZG93cyAzLjEgRWluc2NoYWx0LU1lbGR1bmcgKEhpZ2hsYW5kZXIsIDIwLiBKdW4gMTk5NCwgMTQ6NDY6MjApOgogICAgICoqKiogTUlDUk9TT0ZUIFdJTkRPV1MgVjMuMSAqKioqCiA2NE1iIFJBTSBTWVNURU0gIDM4OTExIFNZU1RFTSBCWVRFUyBGUkVFCiBSRUFEWS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsYXR0bGF1cyAoRm9yZCwgMjAuIEp1biAxOTk0LCAxNjoyNjoxOSk6CkRpZSBnZWZhZWhybGljaGVuIEFiZW50ZXVlciBlaW5lcyBob2ZmbnVuZ3N2b2xsZW4gQW5mYWVuZ2VyczoKSC4gcnVmdDogd2llIHRvZXRlIGljaCBkaWUgQmxhdHRsYXVzPz8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIEdyaW1tYm9ybiBydWZ0OiBSZXR0ZXQgZGllIEJsYXR0bGF1cyEhISEhISEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiBGb3JkIHJ1ZnQ6IGxhc3Mgc2llIGxpZWJlciwgZGllIGlzdCB6dSBzdGFyayA6KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogSC4gcnVmdDogd2FzPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIENhdHdlYXpsZSBzdGF0dGV0IGRpZSBCbGF0dGxhdXMga3VyemVyaGFuZCBtaXQgZWluZW0gc3RhcmtlbiBDaGl0aW5wYW56ZXIgdW5kCiBnaWZ0aWdlciBTcHVja2UgYXVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogS0xJTkdFIHJ1ZnQ6IGZpbmdlciB3ZWcgdm9uIGRlbiBibGF0dGxhZXVzZW4sIGRpZSBzaW5kICAgICAgICAgICAgICAgICAgICAgICAKIEtMSU5HRSBydWZ0OiBzY2h3ZWluZWdlZmFlaHJsaWNoICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNhdWdodCAuc2lnIChIaWdobGFuZGVyLCAyMS4gSnVuIDE5OTQsIDIzOjMzOjUyKToKRm91bmQgaW4gYW4gYXJ0aWNsZSBpbiBjb21wLldBU1dFSVNTSUNILnBjLmdhbWVzLmFjdGlvbjoKLi4uIFdlIGFyZSB0aGUgUm9sbGluZyBCb3JnLiBXZSBjYW50IGdldCBubyBBc3NpbWlsYXRpb24uCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouc2lnIDIgKFJvY2h1cywgMjIuIEp1biAxOTk0LCAxMzo0OToyNCk6CkF1cyBlaW5lciBhbmRlcmVuIFNpZ25hdHVyOgpJIHdvbmRlciB3aGF0IHRoZSBwdXJwb3NlIG9mIG1hbiBvbiBlYXJ0aCBpcz8gLUNhbHZpbiAgICAgVGlnZXIgZm9vZC4gLUhvYmJlcwpEZXIgQmV0cmVmZmVuZGUga2VubnQgdWVicmlnZW5zIGRlbiBUaWdlciBhdWYgVGl0aXd1Li4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogLnNpZyAyIChIaWdobGFuZGVyLCAyMi4gSnVuIDE5OTQsIDE1OjAzOjI4KToKSGVoZSwgZGF6dSBzb2xsdGUgbWFuIHdpc3NlbiwgZGFzcyBkaWUgWmVpbGUKYXVzIG1laW5lciAuc2lnbmF0dXJlIHN0YW1tdCAtIHVuZCBSb2NodXMgZ2VzdGVybiBhYmVuZAp2b24gbWlyIHdvaGwgc28gMzAgbWFpbHMgYmVrb21tZW4gaGF0Cih3b2Z1ZXIgZXIgc2ljaCBmdXJjaHRiYXIgZ2VyYWVjaHQgaGF0IDopLgpSb2NodXMga2VubnQgZGllIFplaWxlIGFsc28gd2lya2xpY2ggR1VULi4uLgogICBILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmx1ZXMgKExpLCAyOC4gSnVuIDE5OTQsIDA5OjAxOjU4KToKV2lldmllbGUgQmx1ZXMtU2FlbmdlciBicmF1Y2h0IG1hbiwgdW0gZWluZSBHbHVlaGJpcm5lIGF1c3p1d2VjaHNlbG4/CjQKRWluZXIgd2VjaHNlbHQgZGllIEJpcm5lIGF1cywgd2FlaHJlbmQgZGllIGFuZGVyZW4gZHJlaSBzaW5nZW4sIHdhcnVtIHNpZSBkaWUKQWx0ZSB2ZXJtaXNzZW4uCgpMaSAoUmh5dGhtYW5kQmx1ZXMgLSBGYW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbHVlcyAoR3JpbW1ib3JuLCAyOC4gSnVuIDE5OTQsIDEwOjM5OjM1KToKVmFyaWFudGU6Ck1hbiBncmF1Y2h0IDYgQmx1ZXMtR2l0YXJyaXN0ZW46IEVpbmVuIHp1bSBBdXN3ZWNoc2VsbiB1bmQgZnVlbmYgZGllIHNpbmdlbiwKd2lldmllbCBiZXNzZXIgU3RldmUgUmF5IFZhdWdoYW4gZXMgZ2VtYWNodCBoYWV0dGUuLi4KCkdyaW1tYm9ybiwgZGVyIGF1Y2ggbnVyIGF1cyB0aW4gYWJzY2hyZWlidC4uLiAgOy0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhclRyZWsgKGVuZ2xpc2NoKSAoV2FyZ29uLCAyOC4gSnVuIDE5OTQsIDE1OjEwOjE0KToKPkZyb206IGpyZEByb2RkZW5iZXJyeS5lYnQuY29tIChqb2huIHIuIGR1cmFuZCkgCk1lc3NhZ2UtSWQ6IDw5NDA2MjQxNzU3LkFBMjA1MTVAcm9kZGVuYmVycnk+IFRvOiBqdW5rbWFpbEBjYWRyZS5jb20KU3ViamVjdDogUmFuZG9tIG1lYW5pbmdsZXNzIGh1bW91cgpYLVN1bi1DaGFyc2V0OiBVUy1BU0NJSQpDb250ZW50LUxlbmd0aDogNDU5NgpTdGF0dXM6IFIKCiJTdGFyIFRyZWsgTG9zdCBFcGlzb2RlcyIgdHJhbnNjcmlwdC4KCjxQaWNhcmQ+ICJNci4gTGFGb3JnZSwgaGF2ZSB5b3UgaGFkIGFueSBzdWNjZXNzIHdpdGggeW91ciBhdHRlbXB0cyBhdApmaW5kaW5nIGEgd2Vha25lc3MgaW4gdGhlIEJvcmc/IEFuZCBNci4gRGF0YSwgaGF2ZSB5b3UgYmVlbiBhYmxlIHRvIGFjY2Vzcwp0aGVpciBjb21tYW5kIHBhdGh3YXlzPyIKCjxHZW9yZGk+ICJZZXMsIENhcHRhaW4uIEluIGZhY3QsIHdlIGZvdW5kIHRoZSBhbnN3ZXIgYnkgc2VhcmNoaW5nIHRocm91Z2gKb3VyIGFyY2hpdmVzIG9uIGxhdGUgVHdlbnRpZXRoLWNlbnR1cnkgY29tcHV0aW5nIHRlY2hub2xvZ3kuIiAKCjxHZW9yZGkgcHJlc3NlcyBhIGtleSwgYW5kIGEgbG9nbyBhcHBlYXJzIG9uIHRoZSBjb21wdXRlciBzY3JlZW4uPiAKCjxSaWtlciBsb29rcyBwdXp6bGVkLj4gIldoYXQgdGhlIGhlbGwgaXMgYE1pY3Jvc29mdCc/IiAKCjxEYXRhIHR1cm5zIHRvIGFuc3dlci4+ICJBbGxvdyBtZSB0byBleHBsYWluLiBXZSB3aWxsIHNlbmQgdGhpcyBwcm9ncmFtLApmb3Igc29tZSByZWFzb24gY2FsbGVkIGBXaW5kb3dzJywgdGhyb3VnaCB0aGUgQm9yZyBjb21tYW5kIHBhdGh3YXlzLiBPbmNlCmluc2lkZSB0aGVpciByb290IGNvbW1hbmQgdW5pdCwgaXQgd2lsbCBiZWdpbiBjb25zdW1pbmcgc3lzdGVtIHJlc291cmNlcyBhdAphbiB1bnN0b3BwYWJsZSByYXRlLiIgCgo8UGljYXJkPiAiQnV0IHRoZSBCb3JnIGhhdmUgdGhlIGFiaWxpdHkgdG8gYWRhcHQuIFdvbid0IHRoZXkgYWx0ZXIgdGhlaXIKcHJvY2Vzc2luZyBzeXN0ZW1zIHRvIGluY3JlYXNlIHRoZWlyIHN0b3JhZ2UgY2FwYWNpdHk/IiAKCjxEYXRhPiAiWWVzLCBDYXB0YWluLiBCdXQgd2hlbiBgV2luZG93cycgZGV0ZWN0cyB0aGlzLCBpdCBjcmVhdGVzIGEgbmV3CnZlcnNpb24gb2YgaXRzZWxmIGtub3duIGFzIGFuIGB1cGdyYWRlJy4gVGhlIHVzZSBvZiByZXNvdXJjZXMgaW5jcmVhc2VzCmV4cG9uZW50aWFsbHkgd2l0aCBlYWNoIGl0ZXJhdGlvbi4gVGhlIEJvcmcgd2lsbCBub3QgYmUgYWJsZSB0byBhZGFwdApxdWlja2x5IGVub3VnaC4gRXZlbnR1YWxseSBhbGwgb2YgdGhlaXIgcHJvY2Vzc2luZyBhYmlsaXR5IHdpbGwgYmUgdGFrZW4Kb3ZlciBhbmQgbm9uZSB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdGhlaXIgbm9ybWFsIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucy4iCgo8UGljYXJkPiAiRXhjZWxsZW50IHdvcmsuIFRoaXMgaXMgZXZlbiBiZXR0ZXIgdGhhbiB0aGF0IGB1bnNvbHZhYmxlCmdlb21ldHJpYyBzaGFwZScgaWRlYS4iCgouIC4gLiAxNSBNaW51dGVzIExhdGVyIC4gLiAuCgo8RGF0YT4gIkNhcHRhaW4sIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCB0aGUgYFdpbmRvd3MnIGluIHRoZSBCb3JnJ3MKY29tbWFuZCB1bml0LiBBcyBleHBlY3RlZCwgaXQgaW1tZWRpYXRlbHkgY29uc3VtZWQgODUlIG9mIGFsbCBhdmFpbGFibGUKcmVzb3VyY2VzLiBIb3dldmVyLCB3ZSBoYXZlIG5vdCByZWNlaXZlZCBhbnkgY29uZmlybWF0aW9uIG9mIHRoZSBleHBlY3RlZApgdXBncmFkZScuIgoKPEdlb3JkaT4gIk91ciBzY2FubmVycyBoYXZlIHBpY2tlZCB1cCBhbiBpbmNyZWFzZSBpbiBCb3JnIHN0b3JhZ2UgYW5kIENQVQpjYXBhY2l0eSwgYnV0IHdlIHN0aWxsIGhhdmUgbm8gaW5kaWNhdGlvbiBvZiBhbiBgdXBncmFkZScgdG8gY29tcGVuc2F0ZSBmb3IKdGhlaXIgaW5jcmVhc2UuIgoKPFBpY2FyZD4gIkRhdGEsIHNjYW4gdGhlIGhpc3RvcnkgYmFua3MgYWdhaW4gYW5kIGRldGVybWluZSBpZiB0aGVyZSBpcwpzb21ldGhpbmcgd2UgaGF2ZSBtaXNzZWQuIgoKPERhdGE+ICJTaXIsIEkgYmVsaWV2ZSB0aGVyZSBpcyBhIHJlYXNvbiBmb3IgdGhlIGZhaWx1cmUgaW4gdGhlIGB1cGdyYWRlJy4KQXBwZWFyZW50bHkgdGhlIEJvcmcgaGF2ZSBjaXJjdW12ZW50ZWQgdGhhdCBwYXJ0IG9mIHRoZSBwbGFuIGJ5IG5vdCBzZW5kaW5nCmluIHRoZWlyIHJlZ2lzdHJhdGlvbiBjYXJkcy4iIAoKPFJpa2VyPiAiQ2FwdGFpbiwgd2UgaGF2ZSBubyBjaG9pY2UuIFJlcXVlc3RpbmcgcGVybWlzc2lvbiB0byBiZWdpbgplbWVyZ2VuY3kgZXNjYXBlIHNlcXVlbmNlIDNGIC4uLi4iCgo8R2VvcmRpLCBleGNpdGVkPiAiV2FpdCwgQ2FwdGFpbiEgVGhlaXIgQ1BVIGNhcGFjaXR5IGhhcyBzdWRkZW5seSBkcm9wcGVkCnRvIDAlICEiCgo8UGljYXJkPiAiRGF0YSwgd2hhdCBkb2VzIHlvdXIgc2Nhbm5lcnMgc2hvdz8iIAoKPERhdGEsIHN0dWR5aW5nIGRpc3BsYXlzPiAiQXBwZWFyZW50bHkgdGhlIEJvcmcgaGF2ZSBmb3VuZCB0aGUgaW50ZXJuYWwKYFdpbmRvd3MnIG1vZHVsZSBuYW1lZCBgU29saXRhaXJlJywgYW5kIGl0IGhhcyB1c2VkIHVwIGFsbCBhdmFpbGFibGUgQ1BVCmNhcGFjaXR5LiIKCjxQaWNhcmQ+ICJMZXQncyB3YWl0IGFuZCBzZWUgaG93IGxvbmcgdGhpcyBgU29saXRhaXJlJyBjYW4gcmVkdWNlIHRoZWlyCmZ1bmN0aW9uYWxpdHkuIgoKLiAuIC4gVHdvIEhvdXJzIFBhc3MgLiAuIC4KCjxSaWtlcj4gIkdlb3JkaSwgd2hhdCBpcyB0aGUgc3RhdHVzIG9mIHRoZSBCb3JnPyIgCgo8R2VvcmRpPiAiQXMgZXhwZWN0ZWQsIHRoZSBCb3JnIGFyZSBhdHRlbXB0aW5nIHRvIHJlLWVuZ2luZWVyIHRvIGNvbXBlbnNhdGUKZm9yIGluY3JlYXNlZCBDUFUgYW5kIHN0b3JhZ2UgZGVtYW5kcywgYnV0IGVhY2ggdGltZSB0aGV5IHN1Y2Nlc3NmdWxseQppbmNyZWFzZSByZXNvdXJjZXMgSSBoYXZlIHNldHVwIG91ciBjbG9zZXN0IGRlZXAgc3BhY2UgbW9uaXRvciBiZWFjb24gdG8KdHJhbnNtaXQgbW9yZSBgV2luZG93cycgbW9kdWxlcyBmcm9tIHNvbWV0aGluZyBjYWxsZWQgdGhlIGBNaWNyb3NvZnQKRnVuLXBhY2snLgoKPFBpY2FyZD4gIkhvdyBtdWNoIHRpbWUgd2lsbCB0aGF0IGJ1eSB1cz8iIAoKPERhdGE+ICJDdXJyZW50IEJvcmcgc29sdXRpb24gcmF0ZXMgYWxsb3cgbWUgdG8gcHJlZGljYXRlIGFuIGludGVyZXN0IHRpbWUKc3BhbiBvZiA2IG1vcmUgaG91cnMuIgoKPEdlb3JkaT4gIkNhcHRhaW4sIGFub3RoZXIgdmVzc2VsIGhhcyBlbnRlcmVkIG91ciBzZWN0b3IuIiAKCjxQaWNhcmQ+ICJJZGVudGlmeS4iCgo8RGF0YT4gIkl0IGFwcGVhcnMgdG8gaGF2ZSBtYXJraW5ncyB2ZXJ5IHNpbWlsYXIgdG8gdGhlICdNaWNyb3NvZnQnCmxvZ28uLi4iCgo8T3ZlciB0aGUgc3BlYWtlcnM+ICJUSElTIElTIEFETUlSQUwgQklMTCBHQVRFUyBPRiBUSEUgTUlDUk9TT0ZUIEZMQUdTSElQCl9NT05PUE9MWV8uIFdFIEhBVkUgUE9TSVRJVkUgQ09ORklSTUFUSU9OIE9GIFVOUkVHSVNURVJFRCBTT0ZUV0FSRSBJTiBUSElTClNFQ1RPUi4gU1VSUkVERVIgQUxMIEFTU0VUUyBBTkQgV0UgQ0FOIEFWT0lEIEFOWSBUUk9VQkxFLiBZT1UgSEFWRSAxMApTRUNPTkRTIFRPIENPTVBMWS4iIAoKPERhdGE+ICJUaGUgYWxpZW4gc2hpcCBoYXMganVzdCBvcGVuZWQgaXRzIGZvcndhcmQgaGF0Y2hlcyBhbmQgcmVsZWFzZWQKdGhvdXNhbmRzIG9mIGh1bWFub2lkLXNoYXBlZCBvYmplY3RzLiIgCgo8UGljYXJkPiAiTWFnbmlmeSBmb3J3YXJkIHZpZXdlciBvbiB0aGUgYWxpZW4gY3JhZnQhIiAKCjxSaWtlcj4gIk15IEdvZCwgY2FwdGFpbiEgVGhvc2UgYXJlIGh1bWFuIGJlaW5ncyBmbG9hdGluZyBzdHJhaWdodCB0b3dhcmQKdGhlIEJvcmcgc2hpcCAtIHdpdGggbm8gbGlmZSBzdXBwb3J0IHN1aXRzISBIb3cgY2FuIHRoZXkgc3Vydml2ZSB0aGUKdG9ydHVyZXMgb2YgZGVlcCBzcGFjZT8hIgoKPERhdGE+ICJJIGRvbid0IGJlbGlldmUgdGhhdCB0aG9zZSBhcmUgaHVtYW5zLCBzaXIuIElmIHlvdSB3aWxsIGxvb2sgY2xvc2VyCkkgYmVsaWV2ZSB5b3Ugd2lsbCBzZWUgdGhhdCB0aGV5IGFyZSBjYXJyeWluZyBzb21ldGhpbmcgcmVjb2duaXplZCBieQp0d2VudHktZmlyc3QgY2VudHVyeSBtYW4gYXMgZG9lc2tpbiBsZWF0aGVyIGJyaWVmY2FzZXMsIGFuZCB3ZWFyaW5nIEFybWFuaQpzdWl0cy4iCgo8UmlrZXIgYW5kIFBpY2FyZCwgdG9nZXRoZXIgLSBob3JyaWZpZWQ+ICJMYXd5ZXJzISEiIAoKPEdlb3JkaT4gIkl0IGNhbid0IGJlLiBBbGwgdGhlIExhd3llcnMgd2VyZSByb3VuZGVkIHVwIGFuZCBzZW50IGh1cnRsaW5nCmludG8gdGhlIHN1biBpbiAyMDE3IGR1cmluZyB0aGUgR3JlYXQgQXdha2VuaW5nLiIgCgo8RGF0YT4gIlRydWUsIGJ1dCBhcHBlYXJlbnRseSBzb21lIG11c3QgaGF2ZSBzdXJ2aXZlZC4iIAoKPFJpa2VyPiAiVGhleSBoYXZlIHN1cnJvdW5kZWQgdGhlIEJvcmcgc2hpcCBhbmQgYXJlIGNvdmVyaW5nIGl0IHdpdGggYWxsCnR5cGVzIG9mIHBhcGVycy4iCgo8RGF0YT4gIkkgYmVsaWV2ZSB0aGF0IGlzIGtub3duIGluIGFuY2llbnQgdmVuYWN1bGFyIGFzIGByZWQgdGFwZScuIEl0Cm9mdGVuIHByb3ZlcyBmYXRhbC4iCgo8UmlrZXI+ICJUaGV5J3JlIHRlYXJpbmcgdGhlIEJvcmcgdG8gcGllY2VzISIgCgo8UGljYXJkPiAiVHVybiB0aGUgbW9uaXRvcnMgb2ZmLCBEYXRhLCBJIGNhbnQgYmVhciB0byB3YXRjaC4gRXZlbiB0aGUgQm9yZwpkb2VzbnQgZGVzZXJ2ZSBzdWNoIGEgZ3J1ZXNvbWUgZGVhdGghIiAKCgpqb2huCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVuaXg/IChDYXR3ZWF6bGUsIDI5LiBKdW4gMTk5NCwgMTE6MjY6NDQpOgpJY2ggaGFicyBpbiBlaW5lciBzaWcgZ2VmdW5kZW4gOi0pCgogICBMT0FEICJWTVVOSVgiLDgsMQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBiZXN0ZW4gS2F0YWtvbWJlbmZsdWVjaGUhIChCb2luZywgMzAuIEp1biAxOTk0LCAxMDoyNTo0Myk6CkFwcm9wb3MgRmx1ZWNoZSwgaWNoIGhhYiBkZW4gQXJ0aWtlbCB2b24gVHJ5ZmFuIGluICdldGlrZXR0ZScgenVtIEFubGFzcwpnZW5vbW1lbiB1bSBtYWwgd2llZGVyIG1laW4gS2F0YWtvbWJlbmZsdWNobG9nZmlsZSBkdXJjaHp1c2VoZW4sIGVzIGhhdAplaW4gcGFhciBzZWhyIHNjaG9lbmUgRmx1ZWNoZSBkYWJlaSwgZGllIGljaCBldWNoIG5hdHVlcmxpY2ggbmljaHQKdm9yZW50aGFsdGVuIHdpbGwuIE5hdHVlcmxpY2ggbWFzc2VuaGFmdCBTdGFuZGFyZGZsdWVjaGUgd2llICdTY2hlaXNzZScKb2RlciAnSGltbWVsLCBBcnNjaCB1bmQgWndpcm4nIHVuZCB0YXVzZW5kZSB2b24gc2lubmxvc2VuIFRhc3RlbmtvbWJpbmF0aW9uZW4KKG5pY2h0IHNlaHIga3JlYXRpdiwgbXVzcyBpY2ggZGF6dSBzYWdlbikuIEFtIEVuZGUgYmVzdGFuZCBkaWUgTGlzdGUgZGVyCkZsdWVjaGUgc29nYXIgbnVyIG5vY2ggYXVzICd2ZXJkYW1tdCcgdW5kICd4Jywgc29sbHRlIGRhcyBpbiBkaWUgS29tcGxldHQtCmxvZXN1bmcgZWluZ2VnYW5nZW4gc2Vpbj8gTXVzcyBpY2ggZG9jaCBnbGF0dCBtYWwgYXVzYmF1ZW4gLi4uCgpOdW4gYWJlciBkaWUgSGlnaGxpZ2h0czoKMy4xMC45MzogQmV0dHlibHVlIGZsdWNodDogQmlybmJhdW0ga3J1emVmaXggdW5kIEhvbGxlcnN0YXVkbgogIFtFaW4gYmF5cmlzY2hlciBVUi1GbHVjaCEgOildCgoyNC4xMS45MzogRnJhZ2dsZSBmbHVjaHQ6IEljaCBwaXNzZSBkaWUgdHVlcmVuIGdsZWljaCBhdWYgZ3JycnJycnJycnJycnJycnJyCiAgW0RhcyB3aXJkIGlobSB3YWhyc2NoZWlubGljaCBzY2h3ZXJmYWxsZW4gOildCgoyNC4xMS45MzogRnJhZ2dsZSBmbHVjaHQ6ClNjaGVpc3NWZXJkYW1tdGVEcmVja3NaYXRvbmdzTWFuU29sbHRlSWhuZW5EZW5BcnNjaEF1ZnJlaXNzZW5VbmRFaW5lblRvdGVuT3JrUmVpbnNjaGllYmVuCiAgW0RlciBnZWZhZWxsdCBtaXIgcGVyc29lbmxpY2ggYW0gQmVzdGVuIV0KCjYuNC45NDogQWxhcmluIGZsdWNodDogIm1pc3QsIHZlcmRhbW10ZSBzY2hlaXNza2F0YWtvbWJlbiEhIgogIFtEYSBoYWJlbiBpaG0gbm9jaCBtZWhyIGRyaW4genVnZXN0aW1tdCEgOildCgo4LjQuOTQ6IEthdGNobWFyZWsgZmx1Y2h0OiB8fCtfKSgqJl4lJCNAIQogIFtEaWUgc3RpbHZvbGxlIEtvbWJpbmF0aW9uIGRlciBTb25kZXJ6ZWljaGVuIC0gZWluZmFjaCBnZWx1bmdlbiEgOildCgpUc2NodWVzcywKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRW5nbGlzaCB3aXRoIGEgIlNwcmFrZmx1ayIgKEdyaW1tYmltbSwgIDcuIEp1bCAxOTk0LCAxMTo0ODo1Myk6CkdyaW1tYm9ybiBzYWd0OiBvaywgaSBzdGlsIHRpbmsgaW91IGFyZSBhbiBvbGQgcGxhaWVyIGhlcmUgd2l0IGl1c3QgYSBuZXcKR3JpbW1ib3JuIHNhZ3Q6IG5hbWUuIGJla2F1c2UgdGVyZSBoYXMgYmVuIGt1aXRlIGEgbG90IG9mIGZ1biBhYm91dCBtaSBuYW1lLApHcmltbWJvcm4gc2FndDogYmVrYXVzZSBtaSBzZWtvbmQga2FyYWt0ZXIgaXMgZ3JpbWRlYXQgYW5kIHRhdCBzdHVwaWQgcGxhaWVyCmkKR3JpbW1ib3JuIHNhZ3Q6IHJlZmVyIHRvIHdhcyBpdXN0IGhlcmUgYXMgZ3JpbWRvZi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpnZWZ1bmRlbmVyIE9iSm9rZSAoQ2F0d2VhemxlLCAxMS4gSnVsIDE5OTQsIDE1OjIzOjI3KToKClNpbmQgZGllIEtvZXBmZSBwbGF0dCB3aWUgVGVsbGVyLAp3YXIgZGVyIEFpckJhZyBkb2NoIG5pY2h0IHNjaG5lbGxlci4KCiAgICAgIENhdHdlYXpsZSAgIDotKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1cmcgKFdhcmdvbiwgMTIuIEp1bCAxOTk0LCAxMToxODozNyk6CltWZXJsZWd0IHZvbiBhbGxnZW1laW5lcywgTGksIDEyLiBKdWwgMTk5NCwgMTA6MzA6MzZdOgpFaW5lIHNjaG9lbmUgYnVyZywgbmljaHQgd2FyPyBJY2ggZ2xhdWJlLCBtYW4gc29sbHRlIHNpZSBFZmZlbmJlcmcgQ2FzdGxlCm5lbm5lbi4KICAgICAgICAgICAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8KICAgICAgICAgICAgICAgICAgICB8X3wgICAgICAgICAgICAgICAgICAgICAgICAgfF98CiAgICAgICAgICAgICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgfAogICAgICAgICAgICAgICAgICAgX3wgfF8gICAgICAgICAgICAgICAgICAgICAgIF98IHxfCiAgICAgICAgICAgICAgICAgLXwgfCB8IHwgXyAgICAgICAgICAgICAgICAgXyB8IHwgfCB8LQogICAgICAgICAgICAgICAgfCB8IHwgfCB8JyB8ICAgICAgICAgICAgICAgfCBgfCB8IHwgfCB8CiAgICAgICAgICAgICAgICBcICAuICAgICAgLyAgICAgICAgICAgICAgICAgXCAuICAgIC4gIC8KICAgICAgICAgICAgICAgICBcICAgICwgIC8gICAgICAgICAgICAgICAgICAgXCAgICAuICAvCiAgICAgICAgICAgICAgICAgIHwgLiAgIHxfICAgXyAgIF8gICBfICAgXyAgIF98ICwgICB8CiAgICAgICAgICAgICAgICAgIHwgICAgLnwgfF98IHxffCB8X3wgfF98IHxffCB8ICAuICB8CiAgICAgICAgICAgICAgICAgIHwgLCAgIHwgLiAgICAuICAgICAuICAgICAgLiB8ICAgIC58CiAgICAgICAgICAgICAgICAgIHwgICAuIHwgIC4gICAgIC4gLiAgIC4gICwgICB8LiAgICB8CiAgICAgIF9fXy0tLS1fX19fX3wgLiAgIHwuICAgLCAgX19fX19fXyAgIC4gICB8ICAgLCB8LS0tfl9fX19fCiBfLS0tfiAgICAgICAgICAgIHwgICAgIHwgIC4gICAvKysrKysrK1wgICAgLiB8IC4gICB8ICAgICAgICAgfi0tLV8KICAgICAgICAgICAgICAgICAgfC4gICAgfCAuICAgIHwrKysrKysrfCAuICAgIHwgICAuIHwgICAgICAgICAgICAgIH4tXwogICAgICAgICAgICAgICBfXyB8ICAgLiB8ICAgLCAgfCsrKysrKyt8LiAgLiBffF9fICAgfCAgICAgICAgICAgICAgICAgfi1fCiAgICAgIF9fX18tLWB+ICAgICctLX5+X18gLiAgICB8KysrKyBfX3wtLS0tfiAgICB+YC0tLSwgICAgICAgICAgICAgCl9fX15+LV9fCiAtfi0tfiAgICAgICAgICAgICAgICAgICB+LS0tX198LC0tficgICAgICAgICAgICAgICAgICB+fi0tLS1fX19fXy1+JwogYH4tLS0tfn4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2htYWwgUmUgOikgKEFuZ3VzLCAxMy4gSnVsIDE5OTQsIDE3OjI3OjQzKToKVW0gZGVyIFJ1YnJpayAoV0lUWkUsIG5pY2h0IFJvbGxlbnNwaWVsdmVyZ2xlaWNoLi4uKSBtYWwgZ2VudWVnZSB6dSB0dW46CkZyYWdlOiBXYXMgaXN0IFJvbGVtYXN0ZXIgPwpBbnR3b3J0IGVpbmVzIEFEJkQtRnJlYWtzOiBFaW4gQnVjaGFsdHVuZ3NzeXN0ZW0sIGRhcyBiZWhhdXB0ZXQsIGVpbgogICAgICAgICAgICAgICAgICAgICAgICAgICBSb2xsZW5zcGllbCB6dSBzZWluIDopKQoKQW5ndXMgLSBIRUlNTElDSEVSIEFEJkQtRnJlYWsgOykpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbmZhZW5nZXIgdW50ZXIgdW5zIDopIChIYXJkaWwsIDE5LiBKdWwgMTk5NCwgMTE6NDQ6MzMpOgpBdXMgZGVtIExlYmVuIGdlZ3JpZmZlbjoKQ2hyaXN0b3BoIGtvbW10IGFuLgpDaHJpc3RvcGggZnJhZ3Q6IFdhcyBpc3QgYmVzc2VyIGFscyBlaW5lIHNlbnNlPwpUenVpb3Agc2FndDogMiBzZW5zZW4KClR6dWlvcCBzYWd0OiBsZWloIHNpZSBtaXIgbWFsIC0gZGFubiB2ZXJnbGVpY2hlIGljaCBtaXQgZGVtIGRpYW1hbnRzY2h3ZXJ0CkNocmlzdG9waCBzYWd0OiBzY2hhZXR6IG1hbApTaWx2YW5hIGdyaW5zdC4KVHp1aW9wIHNhZ3Q6IG5laW4gLSBpY2ggZnJhZyBlIGRlbiBzY2htaWVkCkNocmlzdG9waCBzYWd0OiB6YWhsdCBkZXIgbWVocj8KCipncmlucyogOiBhdWYgTGV2ZWwgMTQgc29sbHRlIG1hbiBsYW5nc2FtIHNvd2FzIHdpc3NlbiA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipncnVlYmVsKiAoQ2FyYWRocmFzLCAyMC4gSnVsIDE5OTQsIDAwOjA0OjA0KToKCUh1aHUKCipzbmlmZiogSWNoIGJpbiBuZSBhcm1lIFNhdSB1bmQga2FubiBrZWluIExhdGVpbiwgYmlzIGF1ZiBBc3Rlcml4LQpHcnVuZGtlbm50bmlzc2UuIEdpYnRzIGlyZ2VuZHdhbm4genUgZGVuIFBvc3RpbmdzIGF1Y2ggZWluIExvZXN1bmdzLQpidWNoPyBJY2ggd2FlcmUgc2VociBkYW5rYmFyIGRhZnVlci4KCk9iSm9rZTogSWNoIGxlcm50ZSBlcnN0IGluIExldmVsIDE5IGRlbiBTY2htaWVkIGtlbm5lbiBiencgYWxsZSBzZWluZQogICAgICAgIEVpZ2Vuc2NoYWZ0ZW4gOy0pIEFsc28gZGVuIGFybWVuIENocmlzdG9waCBpbiBSdWhlIGxhc3NlbiA6LSkKCiAgICAgICAgICAgICAgIENhcmFkaHJhcyBkZXIgUHJvcGhldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VzYW1tZWx0ZXMgTGF0ZWluIChIaWdobGFuZGVyLCAyMi4gSnVsIDE5OTQsIDE4OjEzOjI4KToKTW9pbiwKaGllciBhbHNvIGRhcyBnZXNhbW1lbHRlIChiaXMgamV0enQpIExhdGVpbndpc3NlbiBkZXMgTW9yZ2VuZ3JhdWVucyA7PgpHZXNhbW1lbHQgZGVzd2VnZW4sIHVtIGRpZSBSdWJyaWsgbWFsIGV0d2FzIHp1IGVudGxhc3Rlbi4KS2FubiBtYWwgZWluZXIgYWxsZXMgYXVmbG9lc2VuIHVuZCBwb3N0ZW4/IERhbmFjaCBoYWJlbiBtZWhyZXJlIGFuZGVyZQpnZWxvZXNjaHRlIEFydGlrZWxzY2hyZWliZXIgKGRpZSBBcnRpa2VsLCBuaWNodCBkaWUgU2NocmVpYmVyKSBnZWZsZWh0ISA6PgoKVW5kIGxvczoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwppdGFidWxhcmUgICAgICAgICAgICAgICAgICAgICAgLWJyZXR0ZXJuCmNpcmN1bXRhYnVsYXJlICAgICAgICAgICAgICAgIC0ncnVtYnJldHRlcm4KCkJlbmUgdmVuaXQhICAgICAgICAgICAgICAgICAgIC1Lb21tdCBndXQhCkJlbmUgdHJhbnN2ZW5pdCEgICAgICAgICAgICAgIC1Lb21tdCBndXQgJ3J1ZWJlciEKRmFlY2FsZSAodHJhbnMtKXZlbml0ISAgICAgICAgLUtvbW10IHNjaGVpc3NlICgncnVlYmVyKSEKClVlYmVyIEVyZ2Flbnp1bmdlbiBkaWVzZXMgRGljcyBmcmV1dCBzaWNoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJhbnlhCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKd2llIHdhZXIncyBtaXQgOgpMYWMgdmlyIHZlbml0IGFudGUgcGVyaWN1bGEgPwoKKE5hLCBrcmllZ3QncyBlaW5lciByYXVzID8pCgpTaXIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpFaW5lIHdlaXRlcmUgVWViZXJzZXR6dW5nIChhdXNzY2huZWlkZW4sIGluIGRhcyBEaWMgZWlua2xlYmVuKSAtIG1pdCBEYW5rCmFuIFF1ZW5naXN0dToKCk1lbGlvciBlc3QgaG9jISAgICAgICAgICAgICAgICAgLUJlc3NlciBpcyBkYXMhCgpTYWx2ZXRlIQogICAgICAgIEFyYW55YQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCk5hdHVlcmxpY2ggLi4uIEhhdHQgaWNoIGRvY2ggZGVuIFNwcnVjaCB2ZXJnZXNzZW4uIEFsc28sIEFsdE5ldUxhdGVpbmVyOgoKUmV4IHB1bGV4IHBvc3QgYW1lcmljYQpNdWx0YSBpbiBwbHVzCiJTdHVkaXVtIiwgaW5xdWl0LCAiZnVnYSIKCkF1Y2ggc286ClN0dWRpdW0gZnVnYSBkaXhpdCBDYWVzYXIgZXQgbmFnYXZpdCBpbiBUb2dhLgoKVW5kIHp1bSBTY2hsdXNzIGFscyBzYXVkdW1tZXMgU3BydWVjaGxlLCBkYXMgbWFuIGFuYnJpbmdlbiBrYW5uLCB3ZW5uJ3MKcGFzc3Q6ClNlbXBlciBpZGVtLCBxdWkgc2F1ZHVtbSBxdWVyYXQgLyBxdWFlc3QuIChtYW4gYmVhY2h0ZSBkaWUgVmVyZ2FuZ2VuaGVpdCkKCkxvZXN1bmdlbiBrb2VubmVuIGVpbmdlc2FuZHQgd2VyZGVuLgoKU2FsdmUsIHBvcHVsdXMgbWV1cyEKICAgICAgICAgICAgICAgICAgICBBcmFueWEKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpXZWlsIGRlbW5hZWNoc3QgYXVjaCBpcmdlbmRqZW1hbmQgZGVuIFNwcnVjaCB2b20gdW51cyBpZ25pcyBxdWlzIHZpciBtdWx0dW0KYWIgYXVkZXJlIGVpbmJyaW5ndCwgbXVzcyBpY2ggZGllIG5pZWRlcnJoZWluaXNjaGUgVmFyaWFudGUgbWFsIGVpbmJyaW5nZW46CgpTaXR1cyB2aWxhIHRlaW5pc3NlIHRhYmVybml0IDopCgpIYXJkaWwKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpBbHNvIHdlbm4sIGRhbm4gdWViZXJzZXR6dCBtYWwgZGFzOgoKU2kgdGEgdXN2aWxhdGEgaW5pcywKdGFiZXJjYSBpbmVzLgoKUC5TLjogTWVpbiBMYXRlaW5sZWVyZXIgaGF0IGV0d2EgZWluZSBoYWxiZSBTdHVuZGUgZ2VicmF1Y2h0LiAoamEsIGljaCBoYWIKYXVjaCBtYWwgTGF0ZWluIGdlbGVybnQuIEFiZXIgbmllIGdla29ubnQuLi4pCgogICBMb2NvCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKV2VubiBoaWVyIHNjaG9uIGFsbGUgaWhyZSBMYXRlaW5rZW5udG5pc3NlIHp1bSBiZXN0ZW4gZ2ViZW4sIHdpbGwKaWNoIGRhIG5pY2h0IGhpbnRlbmRyYW5zdGVoZW46CgogICAgIFZlbmEgbGF1cyBhbW9yaXMgcGF4ZSBkcnV4ZSBwaXNhIHRvdGlzLgoKb2RlcjoKCiAgICAgU2kgcG9ydHVzIHBsZW51cyBlc3QgaXV4dGEgbmF2aWdvLgoKVmllbCBTcGFzcyBiZWltIEtub2JlbG4Kd3VlbnNjaHQgRXVjaCBFdWVyIE1heGktTWFnaWVyLUhpbGZzLVF1ZXN0LVRlc3QgV2lyYmVsd2luZGNoZW4gR0FUU0JZCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQWxzbyBkZW4gZXJzdGVuIGtlbm4gaWNoIGFuZGVyczoKCiAgVmVuYSBsYXVzIGFtb3JpcywgcGF4LCBkcnV4LCBnb3Jpcy4gICAoRnJhbmtlbnNsYW5nLCBudXIgenVyIFdhcm51bmcgOj4pCgpIYXR0ZW4gd2lyIGVpZ2VudGxpY2ggc2Nob24gZGVuIEtsYXNzaWtlcgoKICBDYWVzYXIgb3JhbSBjbGFzc2lzIHJvbWFuYW0uICAgID8KCkRlciB6d2FyIExhdGVpbiBnZWhhYnQgaGFiZW5kZSwgYWJlciBkZXN3ZWdlbiB0cm90emRlbSB2b24gZGVuIGFuZGVyZW4KQXJ0aWtlbG4gbml4IHZlcnN0ZWhlbmRlCgogICAgSGlnaGxhbmRlciAoamEsIGF1Y2ggTGF0ZWluIGdlaGFidCB1bmQgbmllIGdla29ubnQgdW5kIHRyb3R6ZGVtIExhdGludW0pCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKSGkhClRqYSBpY2gga2FubiBhdWNoIGtlaW4gTGF0ZWluIG1laHIuLi4KSGllciBlaW4gQmVpc3BpZWw6CgpJZ25pcyBxdWlzIHZpci4KCk5hLCB3YXMgaGVpc3N0ZXMgYXVmIGRldXRzY2ggPyA6LSkpCgogICAgQ2F0d2VhemxlCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCk9LLCBkYXMgd2FyJ3MsCgogIEhpZ2hsYW5kZXIgKFplaXR1bmdzZW50bGFzdGVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRlciBncm9lc3N0ZSBXaXR6IChIYXJkaWwsIDI0LiBKdWwgMTk5NCwgMjM6MDU6MTQpOgpOb29uZSBleHBlY3RzIHRoZSBzcGFuaXNoIGlucXVpc2l0aW9uLi4uCgphYmVyIHdhcyBpY2ggbm9jaCB2aWVsIHVuZXJ3YXJ0ZXRlciBmaW5kZSwgaXN0IGRpZSBUYXRzYWNoZSwgZGFzcyBTb25udGFnCmFiZW5kcyBuYWNoIDIzOjAwIG5vY2ggMTkgTGV1dGUgaW0gTVVEIHNpbmQgdW5kIG51ciBlaW5lciBkYXZvbiAobWVpbmVyZWluZXIpCndlZ2VuIFplaXR2ZXJzY2hpZWJ1bmcgZWlnZW50bGljaCBub2NoIGRlbiBnYW56IG5vcm1hbGVuIFRhZyBoYXQuCkhhYmVuIGRpZSBNdWRkaWVzIGFsbGUgZWluIGthbHRlcyBCZXR0PwpLb3Bmc2NodWV0dGVsbmQgZ3JpbnNlbmQsCgpIYXJkaWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0dWRpLVdpdHplIGdlZmFlbGxpZz8gKEtyZXRlaywgMjUuIEp1bCAxOTk0LCAxMzoyODo1Nyk6Ci4uLiBBdWYgdmllbGZhY2hlbiBXdW5zY2ggamV0enQgbm9jaCBkaWUgSGlnaGxpZ2h0cyBkZXIgU3R1ZGktV2l0emU6CgpGcmFnZTogV2FydW0gc3RlaGVuIFN0dWRlbnRlbiBzY2hvbiB1bSBoYWxiIDYgVWhyIGF1Zj8KCkFudHdvcnQ6IFdlaWwgZGllIExlYmVuc21pdHRlbGxhZWRlbiBzY2hvbiB1bSA2IFVociBzY2hsaWVzc2VuIQoKCgoKLi4uIFVuZCBub2NoIGVpbmVyIChrZWluIFdpdHosIHJlYWwgZXhpc3RpZXJlbmQhISEpCgpXaWUgc2FndGUgZWluIE1vZGVyYXRvciBhdWYgQmF5ZXJuIDMgbm9jaCBiaXMgdm9yIGt1cnplbSBpbW1lciwgd2VubiBlcgpkYXMgTWl0dGFnc21hZ2F6aW4gbW9kZXJpZXJ0ZT8KIldpbGxrb21tZW4sIEJheWVybiAtIEd1dGVuIE1vcmdlbiwgU3R1ZGVudGVuISIKCgoKU28gbG9uZywKS3JldGVrICAgIChzZWxiZXIgU3R1ZGkhKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdlc2FtbWVsdGVzIExhdGVpbiAoUXVlbmdpc3R1LCAyNi4gSnVsIDE5OTQsIDAwOjU3OjQ5KToKSGFsbG8gTGV1dGUhCgpEYSBzaWNoIGltbWVyIG5vY2gga2VpbmVyIGVyYmFybXQgaGF0LCBkaWUgTGF0ZWluLVJhZXRzZWwgYXVmenVsb2VzZW4sIHdlcmRlCmljaCBtYWwgbWVpbiBCZXN0ZXMgdmVyc3VjaGVuLCBhdWNoIHdlbm4gbWVpbiBHcm9zc2VzIExhdHJpbnVtIG51biBzY2hvbiA4CkphaHJlIHp1cnVlY2tsaWVndC4KWnVtIEFsdE5ldUxhdGVpbi1MZXhpa29uIHZvbiBBcmFueWEgbXVzIG1hbiBuaWNodCB2aWVsIHNhZ2VuLiBFcyBzaW5kIGFsbGVzCm1laHIgb2RlciBtaW5kZXIgd29lcnRsaWNoZSBVZWJlcnNldHp1bmdlbiB2b20gRGV1dHNjaGVuIGlucyBMYXRlaW5pc2NoZS4gQmVpCmRlciBHZWxlZ2VuaGVpdCBtdXNzIGljaCBtZWluZW4gQmVpdHJhZyB6dSBkaWVzZW0gTGV4aWtvbiBlaW4gd2VuaWcKa29ycmlnaWVyZW46Ck1lbGl1cyBlc3QgaG9jIC0tLSBCZXNzZXIgaXN0IGRhcwooTWVsaXVzIGlzdCBuZXV0cnVtLCBkaWUgenVuYWVjaHN0IGFuZ2VnZWJlbmUgRm9ybSAibWVsaW9yIiBpc3QgbWFzY3VsaW51bQpiencuIGZlbWluaW51bSkKRGFzIFJhZXRzZWwgdm9uIFNpcjogICAgTGFjIHZpciB2ZW5pdCBhbnRlIHBlcmljdWxhCmxhYyAgIC0gTWlsY2ggKE5vbS4gb2RlciBBa2suU2cuKQp2aXIgICAtIE1hbm4gKE5vbS4gU2cuKQp2ZW5pdCAtIChlciwgc2llLCBlcykga29tbXQgKDMuUGVyc29uIFNnLiBJbmRpa2F0aXYgUHJhZXNlbnMgQWt0aXYpCmFudGUgIC0gdm9yIChQcmFlcG9zaXRpb247IGltIExhdC4gbWl0IEFray4pCnBlcmljdWxhIC0gKGRpZSkgR2VmYWhyZW4gKE5vbS4gb2RlciBBa2suIFBsdXJhbCB2b24gcGVyaWN1bHVtKQoKLT4gRGVyIE1pbGNobWFubiBrb21tdCB2b3JnZWZhaHJlbi4KCkVpbiBSYWV0c2VsIHZvbiBBcmFueWE6ClJleCBwdWxleCBwb3N0IEFtZXJpY2EKTXVsdGEgaW4gcGx1cwoiU3R1ZGl1bSBmdWdhIiBpbnF1aXQuCnJleCAgICAgLSBLb2VuaWcgKE5vbS4gU2cuKQpwdWxleCAgIC0gZGVyL2VpbiBGbG9oIChOb20uIFNnLikKcG9zdCAgICAtIG5hY2ggKFByYWVwb3NpdGlvbiwgaW0gTGF0IG1pdCBBa2suKQpBbWVyaWNhIC0gZGFzIG11c3MgaWNoIHdvaGwgbmljaHQgdWViZXJzZXR6ZW4sICJyaWNodGlnZXIiIHdhZXJlIGFiZXIKQW1lcmljYW0gKEFray4pCm11bHRhICAtIHZpZWwsIHZpZWxlIERpbmdlIChOb20uIG9kZXIgQWtrLlBsLiBOZXV0cnVtIHZvbiBtdWx0dXMpCmluICAgIC0gaW4gW2Zhc3Qgd2llIGltIERldXRzY2hlbiA7KSBdCnBsdXMgIC0gbWVociAoS29tcGFyYXRpdiB2b24gbXVsdHVtKQpzdHVkaXVtIC0gRWlmZXIsIFN0cmViZW4sIChMaWVibGluZ3MpYmVzY2hhZWZ0aWd1bmcgKE5vbS4gb2RlciBBa2suU2cuKQpmdWdhICAtIChkaWUpIEZsdWNodCAoTm9tLlNnLikKaW5xdWl0IC0gKGVyLCBzaWUsIGVzKSBzYWd0KGUpCgotPiAoRWluKSBLb2VuaWcgZmxvaCBuYWNoIEFtZXJpa2EsCiAgIGZpZWwgaW5zIE1lZXIsCiAgICJFaSB2ZXJmbHVjaHQhIiBzYWd0ZSBlci4KCkVpbiB3ZWl0ZXJlcyBSYWV0c2VsIHZvbiBBcmFueWE6ClN0dWRpdW0gZnVnYSBkaXhpdCBDYWVzYXIgZXQgbmF2aWdhdml0IGluIFRvZ2EuCnN0dWRpdW0gICAtIHNpZWhlIG9iZW4KZnVnYSAgICAgIC0gc2llaGUgb2JlbgpkaXhpdCAgICAgLSBlciwgc2llLCBlcyBzYWd0ZSAoMy5QZXJzLlNnLkluZGlrYXRpdiBQZXJmZWt0IEFrdGl2IHZvbiBkaWNlcmUpCkNhZXNhciAgICAtIFdlciBERU4gbmljaHQga2VubnQsIHNvbGx0ZSBtYWwgQXN0ZXJpeCBsZXNlbiAoTm9tLlNnLikKZXQgICAgICAgIC0gdW5kCm5hdmlnYXZpdCAtIGVyLCBzaWUsIGVzIGZ1aHIgbWl0IGRlbSBTY2hpZmYgKFZlcmJmb3JtOiBzaWVoZSBkaXhpdCwgdm9uCm5hdmlnYXJlKQppbiAgICAgICAgLSBpbgp0b2dhICAgICAgLSB0b2dhIChyb2VtaXNjaGVzIEdld2FuZCkKCi0+ICdFaSB2ZXJmbHVjaHQnIHNhZ3RlIENhZXNhciB1bmQgc2NoaWZmdGUgaW4gZGllIFRvZ2EuCgpOb2NoJ24gU3BydWNoIHZvbiBBcmFueWE6ClNlbXBlciBpZGVtLCBxdWkgc2F1ZHVtbSBxdWFlcmF0L3F1YWVzdCAoPykKSW1tZXIgZGVyKGplbmlnZSksIGRlciBzYXVkdW1tIGZyYWd0LgpzZW1wZXIgPSBpbW1lciA7IGlkZW0gPSBkZXJzZWxiZSA7IHF1aSAoUmVsYXRpdnByb25vbWVuKSA9IHdlbGNoZXIgOyBxdWFlcmF0Cj0gZXIsIHNpZSwgZXMgZnJhZ3QgKHp1IHF1YWVyZXJlKSBbRGllIEZvcm0gJ3F1YWVzdCcgaXN0IG1pciBuZXUsIEFyYW55YV0KCkRpZSBiZWlkZW4gUmFldHNlbCB2b24gSGFyZGlsIHVuZCBMb2NvIHNpbmQgbGV0enRsaWNoIGlkZW50aXNjaDoKU2l0dXMgdmlsYSB0ZWluaXNzZSB0YWJlcm5pdC4KU2llaHQgdXMgd2llIExhdGVpbiBpc3NldCBhYmVyIG5pdC4KU2kgdGEgdXN2aWxhdGEgaW5pcywgdGFiZXJjYSBpbmVzLgpTaWVodCBhdXMgd2llIExhdGVpbiBpc3QgYWJlciBrZWluZXMuCi0tLSBEaWUgZWluemlnZW4gV29ydGUgaW4gZGllc2VuIGJlaWRlbiBTYWV0emVuLCBkaWUgZXMgYXVjaCBpbSBMYXRlaW5pc2NoZW4KZ2lidCBzaW5kICJzaW51cyIgPSBLcnVlbW11bmcsIEJ1Y2h0LCBCdXNlbjsgInNpIiA9IHdlbm47ICJpbmVzIiA9IGR1CmJlZmluZGVzdCBkaWNoIGluIG9kZXIgYXVmIGV0dzsgd2VyIG5vY2ggbWVociBmaW5kZXQsIG1vZWdlIG1pciBzY2hyZWliZW4uCgpEYXMgYW5kZXJlIFJhZXRzZWwgdm9uIEhhcmRpbCBpc3Qgc2Nob24gc2Nod2llcmlnZXI6CnVudXMgaWduaXMgcXVpcyB2aXIgbXVsdHVtIGFiIGF1ZGVyZQp1bnVzICAgIC0gZWluIChOb20uIFNnLiBNYXNrLikKaWduaXMgICAtIEZldWVyIChOb20uIFNnLikKcXVpcyAgICAtIHdlciAoRnJhZ2Vwcm9ub21lbikKdmlyICAgICAtIHNpZWhlIG9iZW4KbXVsdHVtICAtIHNpZWhlIG9iZW4KYWIgICAgICAtIHZvbiAoUHJhZXBvc2l0aW9uIGltIExhdC4gbWl0IEFibGF0aXYpCmF1ZGVyZSAgLSB3YWdlbiwgc2ljaCBlcmRyZWlzdGVuIChJbmZpbml0aXYpCgotPiBFaW4gRmV1ZXJ3ZWhybWFubiBmaWVsIHZvbSBXYWdlbgoKRGllIGJlaWRlbiAibXVuZGFydGxpY2hlbiIgU2FldHplIHZvbiBHYXRzYnkgdW5kIEhpZ2hsYW5kZXIga2FubiBpY2ggbnVyIG1laHIKZXJhaG5lbiBhbHMgdWViZXJzZXR6ZW46ClZlbmEgbGF1cyBhbW9yaXMgcGF4ZSBkcnV4ZSBwaXNhIHRvdGlzLgotPiBXZW5uIGEgTGF1cyBhbSBPaHIgaXMnLCBwYWNrJ3NlLCBkcnVjaydzZSBiaXMgc2UgdG90IGlzLgpWZW5hIGxhdXMgYW1vcmlzIHBheCwgZHJ1eCwgZ29yaXMuCi0+IFdlbm4gYSBMYXVzIGFtIE9ociBpcywgcGFjaydzIGRydWNrJ3MsIGdvYSAoZ2VnYW5nZW4gPz8/KSBpcy4KW0hvZmZlbnRsaWNoIHdhciBkYXMgcmljaHRpZy4uLi5dCk5lYmVuYmVpIGJlbWVya3Q6CnZlbmEgICAgLSBWZW5lLCBCbHV0YWRlcgpsYXVzICAgIC0gTG9iCmFtb3JpcyAgLSBkZXIgTGllYmUgKEdlbi5TZy4genUgYW1vcikKcGF4ICAgICAtIGRlciBGcmllZGVuCgpEYXMgYW5kZXJlIFJhZXRzZWwgdm9uIEhpZ2hsYW5kZXI6CkNhZXNhciBvcmFtIGNsYXNzaXMgUm9tYW5hbS4KQ2Flc2FyICAgLSBzaWVoZSBvYmVuCm9yYW0gICAgIC0gZGllIEt1ZXN0ZSwgZGllIEdyZW56ZSAoQWtrLiBTZy4genUgb3JhKQpjbGFzc2lzICAtIGRpZSAoU2NoaWZmcylmbG90dGUsIFNjaHVsa2xhc3NlIChOb20uU2cuKQpSb21hbmFtICAtIGRpZSBSb2VtZXJpbiAoQWtrLlNnLiB6dSBSb21hbmEpIGJ6dy4gcm9lbWlzY2gKCi0+IENhZXNhciBrdWVzc3RlIGRpZSBmbG90dGUgUm9lbWVyaW4uCgpEYXMgendlaXRlIFJhZXRzZWwgdm9uIEdhdHNieSBrb25udGUgaWNoIG5pY2h0IHNvIGdhbnogYXVmbG9lc2VuOgpTaSBwb3J0dXMgcGxlbnVzIGVzdCBpdXh0YSBuYXZpZ28uCi0+ID8/IFdlbm4gZGVyIEhhZmVuIHZvbGwgaXN0LCBzZWdlbGUgaWNoIHZvcmJlaSA/Pz8KQWJlciB3byBpc3QgZGEgZGVyIEdhZz8/IFZpZWxsZWljaHQga2FubiBtaXIgZGEgamVtYW5kIGF1ZiBkaWUgU3BydWVuZ2UKaGVsZmVuLgpzCgoKV2VpbCBpaHIgc28gdGFwZmVyIGJpcyB6dW0gRW5kZSBkdXJjaGdlbGVzZW4gaGFidCwgZ2lidCBlcyB6dXIgQmVsb2hudW5nIGF1Y2gKbm9jaCBuZSBzY2hvZW5lIGZhbHNjaGUgVWViZXJzZXR6dW5nIHp1bSBTY2hsdXNzOgpzdXVtIGN1aXF1ZSAgLS0tIERhcyBTY2h3ZWluIHF1aWVrdC4gKFJpY2h0aWcgd2FlcmUgZ2V3ZXNlbjogSmVkZW0gZGFzIHNlaW5lKQoKV2VtIGRhcyBnYW56ZSBqZXR6dCB6dSBzY2h1bG1laXN0ZXJoYWZ0IHdhciwgZGVtIGthbm4gaWNoIG51ciBzYWdlbjoKU2VpZCBqYSBmcm9oLCBkYXNzIGRlciBBU0NJSS1Db2RlIHNvIGJlZ3Jlbnp0IGlzdCwgc29uc3Qgd3VlcmRlIGljaCBFdWNoIG5vY2gKbWl0IGdhbnogYW5kZXJlbiBTcHJhY2hlbiBuZXJ2ZW4gOyopKSkKClRzY2h1ZXNzaW5nCiBRdWVuZ2lzdHUgU2Vub2xpIFVuYWdvICAtIEZyZW1kLXVuZCBBbHRzcHJhY2hlbmZhbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVuYSBsYXVzLi4uIChIaWdobGFuZGVyLCAyNi4gSnVsIDE5OTQsIDEzOjI4OjMyKToKRGFua2UgZnVlciBkaWUgQXVmbG9lc3VuZ2VuISA6PgpEYXMgImdvcmlzIiBoZWlzc3Qgd29lcnRsaWNoICJnYXIgaXN0IGVzIi4gRXR3YXMgdmVyc3RhZW5kbGljaGVyOgoiQXVzIGlzdCBlcyIuIFVuZCB6d2FyIGZ1ZXIgZGllIExhdXMuClVuZCB3ZWNoLAogICAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsdWVzIChUYXJnYXMsIDI2LiBKdWwgMTk5NCwgMTU6MjU6MTQpOgpIYWJlIHZvciBLdXJ6ZW0gbmVuIGd1dGVuIENvb2tpZSBpbiBkZXIgUmljaHR1bmcgZ2VsZXNlbjoKSG93IG1hbnkgWmVuLU1vbmtzIGRvZXMgaXQgdGFrZSB0byBjaGFuZ2UgYSBsaWdodGJ1bGI/Ci0gVHdvLiBPbmUgdG8gY2hhbmdlIGl0IGFuZCBvbmUgbm90IHRvIGNoYW5nZSBpdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5lbiBXaXR6IChQaWxncmltLCAyNy4gSnVsIDE5OTQsIDExOjU0OjMxKToKSGksCmRpZXNlbiBXaXR6IGhhYiBpY2ggbmV1bGljaCBlcnphZWhsdCBiZWtvbW1lbiAodm9uIG5lciBGcmF1IHVlYnJpZ2Vucy4uLikKCkZyYWdlOiBXYXMgZnJhZ3QgZGFzIE1hZWRjaGVuIG5hY2ggZGVtIEF1ZnN0ZWhlbiA/CkFudHdvcnQ6IFNwaWVsdCBpaHIgYWxsZSBpbiBlaW5lciBNYW5uc2NoYWZ0PwoKCihqYWphLCBlciBpc3QgZXR3YXMgc2V4aXN0aXNjaCwgYWJlciBndXQpCgpQaWxncmltCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIG1laHIgTGF0ZWluIChRdWVuZ2lzdHUsIDI3LiBKdWwgMTk5NCwgMTM6NTQ6NTIpOgpad2VpIGhhYicgaWNoIG5vY2g6CgpJdGlzIGFwaXMgcG90YW50IGFiIGlnb25lLgp1bmQKQ2Flc2FyIGVxdXVzIGNvbnNpbGl1bS4KClZpZWwgU3Bhc3MgYmVpbSBSYWV0c2VsbiB3dWVuc2NodAogIFF1ZW5naXN0dQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGVycm9yLi4uIChHcmltbWJvcm4sIDI3LiBKdWwgMTk5NCwgMjE6MTA6MzApOgpBdXMgYWt0dWVsbGVtIEFubGFzczoKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlciBHU0c5IHVuZCBkZXIgUkFGPwoKRGllIEdTRzkgc2NocmVpYnQga2VpbmUgQmVrZW5uZXJicmllZmUuCgoKClVuZCBkaWUgUkFGIGhhdCBTeW1wYXRoaXNhbnRlbi4uLgoKCk5hIGphLCBHcmltbWJvcm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVucyBUaGVvIChIaWdobGFuZGVyLCAyOC4gSnVsIDE5OTQsIDEzOjQ0OjU4KToKKGZyb206IGZpZG8uZ2VyLmpva2VzLCBhdWNoIGRhIGlzdCBhYiB1bmQgYW4gd2FzIEd1dGVzIHp1IGZpbmRlbiA6PikKRGllIFN0ZXVlcnJlZm9ybSB2b24gVGhlbyBXYWlnZWwKaXN0IGRlcmFydGlnIGd1dCBhbmdla29tbWVuLApkYXNzIGpldHp0IGJlcmVpdHMgZWluZSBCcmllZm1hcmtlCm1pdCBzZWluZW0gS29udGVyZmVpIGhlcnVhc2dlZ2ViZW4gd3VyZGUuCgpEaWUgQnJpZWZtYXJrZSBrbGVidCBibG9zcyBsZWlkZXIgbmljaHQsCgp3ZWlsIGRpZSBMZXV0ZSBpbW1lciBhdWYgZGllIGZhbHNjaGUgU2VpdGUgc3B1Y2tlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVuZCBub2NoICduZSBHbHVlaGJpcm5lIChRdWVuZ2lzdHUsIDI4LiBKdWwgMTk5NCwgMjM6NDI6NDApOgpGb2xnZW5kZXIgV2l0eiBpc3QgendhciBhdXMgZWluZXIgd2VpdCB2ZXJicmVpdGV0ZW4gQ29tcHV0ZXJzcGllbGV6ZWl0dW5nCmdla2xhdXQsIGFiZXIgdmllbGxlaWNodCBrZW5udCBpaG4gamEgZGVyIGVpbmUgb2RlciBkaWUgYW5kZXJlIG5vY2ggbmljaHQ6CgpXaWV2aWVsZSBNaXRhcmJlaXRlciBlaW5lciBDb21wdXRlci1Ib3RsaW5lIGJlbm9ldGlndCBtYW4sIHVtIGVpbmUgR2x1ZWhiaXJuZQp6dSB3ZWNoc2Vsbj8KQU5UV09SVDogR2FyIGtlaW5lbi4gIlNpbmQgU2llIHNpY2hlciwgZGFzcyBJaHJlIEdsdWVoYmlybmUga2FwdXR0IGlzdD8KVW5zZXJlIGhpZXIgYXJiZWl0ZXQgZWlud2FuZGZyZWkuIERhcyBtdXNzIGFsc28gYW4gSWhyZXIgS29uZmlndXJhdGlvbiBsaWVnZW4uCkhhYmVuIFNpZSBlcyBzY2hvbiBtYWwgbWl0IGVpbmVyIG5hY2t0ZW4gRmFzc3VuZyB2ZXJzdWNodD8gTW9udGllcmVuIFNpZSBkZW4KTGFtcGVuc2NoaXJtIGFiLCB3aXIgZ2ViZW4ga2VpbmUgR2FyYW50aWUsIGRhc3MgZXMgYXVjaCBtaXQgZGVtIFNjaGlybQpsYWV1ZnQsIGRhIGhhYmVuIGFuZGVyZSBCZW51dHplciBhdWNoIHNjaG9uIFByb2JsZW1lIGdlaGFidC4uLiIKCkNpYW8sIFF1ZW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBQlNDSExVU1NQUlVFRlVORyAoWWVuZGksIDI5LiBKdWwgMTk5NCwgMTc6MjM6MjcpOgpbV2FlcmUgZm9sZ2VuZGVzIG5pY2h0IHZpZWxsZWljaHQgYWxzIFRlc3QgZnVlciBkaWUgQmVmYWVoaWd1bmcgenVtIE1hZ2llcgogb2RlciBhbHMga2xlaW5lcmVzIFJlYWwtTGlmZS1RdWl6IGZ1ZXIgZGllIGF1ZiBkZXIgUGFydHkgYW53ZXNlbmRlbgogTVVELUdvZXR0ZXIgZGVua2Jhcj8gICAgICAgICAgICAgICAgICAgICAgIH07PiAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KCgpBTldFSVNVTkdFTjoKTGVzZW4gU2llIGplZGUgRnJhZ2Ugc29yZ2ZhZWx0aWcgZHVyY2guIEJlYW53b3J0ZW4gU2llIGFsbGUgRnJhZ2VuLgpEYXVlciBkZXMgRXhhbWVuczogNCBTdHVuZGVuLiAgICAgICBCZWdpbm5lbiBTaWUgSkVUWlQuCgoxLiBHRVNDSElDSFRFCkJlc2NocmVpYmVuIFNpZSBkaWUgR2VzY2hpY2h0ZSBkZXMgUGFwc3R0dW1zIHZvbiBzZWluZW4gQW5mYWVuZ2VuIGJpcyB6dXIKR2VnZW53YXJ0LiBLb256ZW50cmllcmVuIFNpZSBzaWNoIGRhYmVpIGJlc29uZGVycywgYWJlciBuaWNodAphdXNzY2hsaWVzc2xpY2gsIGF1ZiBzZWluZSBzb3ppYWxlbiwgcG9saXRpc2NoZW4sIG9la29ub21pc2NoZW4sIHJlbGlnaW9lc2VuCnVuZCBwaGlsb3NvcGhpc2NoZW4gRWZmZWt0ZSBpbiBFdXJvcGEsIEFzaWVuLCBBbWVyaWthIHVuZCBBZnJpa2EuCkZhc3NlbiBTaWUgc2ljaCBrdXJ6LCBwcmFlemlzZSB1bmQgc3BlemlmaXNjaC4KCjIuIE1FRElaSU4KRWluZSBSYXNpZXJrbGluZ2UsIGVpbiBTdHVlY2sgTXVsbGJpbmRlIHVuZCBlaW5lIEZsYXNjaGUgU2NvdGNoIHdlcmRlbiBJaG5lbgp6dXIgVmVyZnVlZ3VuZyBnZXN0ZWxsdC4gRW50ZmVybmVuIFNpZSBJaHJlbiBCbGluZGRhcm0uIFZlcm5hZWhlbiBTaWUgbmljaHQsCmJpcyBkaWUgQXJiZWl0IGJlZ3V0YWNodGV0IHdvcmRlbiBpc3QuIFNpZSBoYWJlbiAxNSBNaW51dGVuLgoKMy4gUkhFVE9SSUsKWndlaXRhdXNlbmRmdWVuZmh1bmRlcnQgcmFuZGFsaWVyZW5kZSBBYm9yaWdpbmVzIHN0dWVybWVuIGRhcyBLbGFzc2VuemltbWVyLgpCZXJ1aGlnZW4gU2llIHNpZS4gU2llIGtvZW5uZW4gamVkZSBhbnRpa2UgU3ByYWNoZSBhdXNzZXIgTGF0ZWluIHVuZApHcmllY2hpc2NoIGJlbnV0emVuLgoKNC4gQklPTE9HSUUKRXJzY2hhZmZlbiBTaWUgTGViZW4uIFNjaGFldHplbiBTaWUgYWIsIHdlbGNoZSBVbnRlcnNjaGllZGUgZXMgaW4gZGVyCm1lbnNjaGxpY2hlbiBLdWx0dXIgZ2VnZWJlbiBoYWV0dGUsIHdlbm4gc2ljaCBkaWVzZXMgTGViZW4gdm9yIDUwMCBNaWxsaW9uZW4KSmFocmVuIGVudHdpY2tlbHQgaGFldHRlLiBSaWNodGVuIFNpZSBkYWJlaSBiZXNvbmRlcmVzIEF1Z2VubWVyayBhdWYgZGVuCndhaHJzY2hlaW5saWNoZW4gRWluZmx1c3MgZGllc2VzIExlYmVucyBhdWYgZGFzIGVuZ2xpc2NoZSBQYXJsYW1lbnRhcnN5c3RlbS4KQmV3ZWlzZW4gU2llIElocmUgVGhlc2UuCgo1LiBNVVNJSwpTY2hyZWliZW4gU2llIGVpbiBQaWFub2tvbnplcnQuIE9yY2hlc3RyaWVyZW4gU2llIGVzIG1pdCBRdWVyZmxvZXRlIHVuZApTY2hsYWd6ZXVnLCB1bmQgZnVlaHJlbiBTaWUgZXMgdm9yLiBTaWUgZmluZGVuIGVpbiBQaWFubyB1bnRlciBJaHJlbSBTdHVobC4KCjYuIFBTWUNIT0xPR0lFCkJhc2llcmVuZCBhdWYgSWhyZXIgS2VubnRuaXMgZGVyIFdlcmtlIHZvbiBBbGV4YW5kZXIgdm9uIEFwaHJvZGlzaWFzLApSYW1zZXMgSUksIEdyZWdvciB2b24gTmljZWEgdW5kIEhhbW11cmFiaSBiZXdlcnRlbiBTaWUgZGVyZW4gZW1vdGlvbmFsZQpTdGFiaWxpdGFldCwgQW5wYXNzdW5nc2ZhZWhpZ2tlaXQgdW5kIHVudGVyZHJ1ZWNrdGUgUmVwcmVzc2lvbmVuLgpVbnRlcnN0dWV0emVuIFNpZSBJaHJlIEJld2VydHVuZyBtaXQgWml0YXRlbiBhdXMgZGVyZW4gV2Vya2VuLCBtaXQKUmVmZXJlbnplbi4gRWluZSBVZWJlcnNldHp1bmcgaXN0IG5pY2h0IG5vdHdlbmRpZy4KCjcuIFNPWklPTE9HSUUKU2NoYWV0emVuIFNpZSBkaWUgc296aW9sb2dpc2NoZW4gUHJvYmxlbWUgYWIuIGRpZSBzaWNoIGJlaW0gRW5kZSBkZXIgV2VsdAplcmdlYmVuIGtvZW5udGVuLiBLb25zdHJ1aWVyZW4gU2llIGVpbiBFeHBlcmltZW50LCB1bSBJaHJlIFRoZXNlIHp1IHRlc3Rlbi4KCjguIE1BTkFHRU1FTlQtV0lTU0VOU0NIQUZUCkRlZmluaWVyZW4gU2llIE1hbmFnZW1lbnQuIERlZmluaWVyZW4gU2llIFdpc3NlbnNjaGFmdC4gSW4gd2VsY2hlbSBCZXp1ZwpzdGVoZW4gc2llIHp1ZWluYW5kZXI/IFdhcnVtPyBFcnN0ZWxsZW4gU2llIGVpbmVuIGdlbmVyYWxpc2llcnRlbgpBbGdvcml0aG11cywKZGVyIGFsbGUgTWFuYWdlbWVudC1FbnRzY2hlaWR1bmdlbiBvcHRpbWllcnQuIE5laG1lbiBTaWUgZWluZSAxMTMwIENQVSBtaXQgNTAKVGVybWluYWxzIGFuLCB3b2JlaSBqZWRlcyBUZXJtaW5hbCBkZW4gQWxnb3JpdGhtdXMgYWt0aXZpZXJ0LCB1bmQgZXJhcmJlaXRlbgpTaWUgZWluIEtvbW11bmlrYXRpb25zaW50ZXJmYWNlIHNvd2llIGFsbGUgbm90d2VuZGlnZW4gS29udHJvbGxwcm9ncmFtbWUuCgo5LiBJTkdFTklFVVJTV0lTU0VOU0NIQUZURU4KRGllIEVpbnplbHRlaWxlIGVpbmVzIEhvY2hsZWlzdHVuZ3NnZXdlaHJzIGJlZmluZGVuIHNpY2ggaW4gZWluZXIgS2lzdGUgYXVmCmlocmVtIFRpc2NoLiBBdXNzZXJkZW0gZmluZGVuIFNpZSBlaW5lIEJlZGllbnVuZ3NhbmxlaXR1bmcgaW4gU3VhaGVsaS4KSW4gemVobiBNaW51dGVuIHdpcmQgZWluIGh1bmdyaWdlciBiZW5nYWxpc2NoZXIgVGlnZXIgaW4gZGFzIFppbW1lciBnZWxhc3Nlbi4KClR1biBTaWUsIHdhcyBJaG5lbiBhbmdlYnJhY2h0IGVyc2NoZWludC4gU2VpZW4gU2llIHZvcmJlcmVpdGV0LCBJaHIgSGFuZGVsbgp6dSBiZWdydWVuZGVuLgoKMTAuIFZPTEtTV0lSVFNDSEFGVApFbnR3aWNrZWxuIFNpZSBlaW5lbiByZWFsaXN0aXNjaGVuIFBsYW4sIGRpZSBSZWdpZXJ1bmdzc2NodWxkZW4genUKcmVmaW5hbnppZXJlbi4gWmVpZ2VuIFNpZSBkaWUgbW9lZ2xpY2hlbiBFZmZla3RlIElocmVzIFBsYW5zIGluIGRlbiBmb2xnZW5kZW4KQmVyZWljaGVuOiBLdWJpc211cywgZGllIERvbmF0aXNjaGUgS29udHJvdmVyc2UsIGRpZSBXZWxsZW50aGVvcmllIGRlcyBMaWNodHMuCgpTa2l6emllcmVuIFNpZSBlaW5lIE1ldGhvZGUsIHdpZSBkaWVzZSBFZmZla3RlIHZlcmhpbmRlcnQgd2VyZGVuIGtvZW5udGVuLgpLcml0aXNpZXJlbiBTaWUgZGllc2UgTWV0aG9kZSB2b24gYWxsZW4gbW9lZ2xpY2hlbiBTZWl0ZW4uIFplaWdlbiBTaWUKU2Nod2FjaHN0ZWxsZW4gaW4gSWhyZXIgZWlnZW5lbiBNZWludW5nIGF1ZiAoc2llaGUgbGV0enRlIEZyYWdlKS4KCjExLiBQT0xJVElLV0lTU0VOU0NIQUZUCkF1ZiBJaHJlbSBUaXNjaCBzdGVodCBlaW4gcm90ZXMgVGVsZWZvbi4gQmVnaW5uZW4gU2llIGRlbiBkcml0dGVuIFdlbHRrcmllZy4KQmVyaWNodGVuIFNpZSBhdXNmdWVocmxpY2ggdWViZXIgZGVzc2VuIHNvemlhbHBvbGl0aXNjaGUgRWZmZWt0ZSwgZmFsbHMKZXhpc3RlbnQuCgoxMi4gRVBJU1RFTU9MT0dJRQpCZXppZWhlbiBTaWUgU3RlbGx1bmcgZnVlciBvZGVyIGdlZ2VuIFdhaHJoZWl0LgpCZXdlaXNlbiBTaWUgZGllIFJpY2h0aWdrZWl0IElocmVyIFN0ZWxsdW5nLgoKMTMuIFBIWVNJSwpFcmxhZXV0ZXJuIFNpZSBkaWUgQmVzY2hhZmZlbmhlaXQgdm9uIE1hdGVyaWUuIEJld2VydGVuIFNpZSBkYWJlaSBkaWUgRWZmZWt0ZQpkZXIgRW50d2lja2x1bmcgZGVyIE1hdGhlbWF0aWsgYXVmIGRpZSBOYXR1cndpc3NlbnNjaGFmdGVuLgoKMTQuUEhJTE9TT1BISUUKU2tpenppZXJlbiBTaWUgZGllIEVudHdpY2tsdW5nIG1lbnNjaGxpY2hlbiBEZW5rZW5zOyBiZXdlcnRlbiBTaWUgc2VpbmUKU2lnbmlmaWthbnouIFZlcmdsZWljaGVuIFNpZSBzaWUgbWl0IGRlciBFbnR3aWNrbHVuZyBhbmRlcmVyIEFydGVuIGRlcwpEZW5rZW5zLgoKMTUuIEFMTEdFTUVJTldJU1NFTgpCZXNjaHJlaWJlbiBTaWUgaW0gRGV0YWlsLiBTZWllbiBzaWUgb2JqZWt0aXYgdW5kIHNwZXppZmlzY2guCgpCT05VU0ZSQUdFCkRlZmluaWVyZW4gU2llIGRhcyBVbml2ZXJzdW0sIGdlYmVuIFNpZSBkcmVpIEJlaXNwaWVsZS4KCgooSmFrb2IgQnVjaG93c2t5LCBCSyc5NiAoam1iQG1pbmVydmEuY2lzLnlhbGUuZWR1KSBZYWxlIFVuaXZlcnNpdHkpCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlZmVyZW56IElJIChCdW5nbGUsICAyLiBBdWcgMTk5NCwgMTY6Mzg6NDgpOgpIYWkgTGV1dGVucyAhISEgOikKCkltIGZvbGdlbmRlbiBlaW4gZWluZSBrbGVpbmUgRXJrbGFlcnVuZyBtZWluZXIgUGVyc29uLihXZW4gaW50ZXJlc3NpZXJ0IGRhcwp1ZWJlcmhhdXB0Pz8/IDopCkRhcyBnYW56ZSBzdGFtbXQgYW5zY2hlaW5lbmQgYXVzIGVpbmVtIGFtZXJpa2FuaXNjaGVuIEVyemllaHVuZ3NmaWxtIHNvIGF1cwpkZW4gNTBlciBvZGVyIDYwZXIgSmFocmVuLgoKSnVzdCBiZWZvcmUgbHVuY2ggb25lIGRheSBhIHB1cHBldCBzaG93IHdhcyBwdXQgb24gYXQgc2Nob29sLkl0IHdhcyBjYWxsZWQKJ01yLiBCdW5nbGUgZ29lcyB0byBsdW5jaCcuSXQgd2FzIGZ1biB0byB3YXRjaC5JbiB0aGUgcHVwcGV0IHNob3cgTXIuIEJ1bmdsZQpjYW1lIHRvIHRoZSBib3kncyByb29tIG9uIGhpcyB3YXkgdG8gbHVuY2guCkhlIGxvb2tlZCBhdCBoaXMgaGFuZHM6IEhpcyBoYW5kcyB3ZXJlIGRpcnR5LkFuZCBoaXMgaGFpciB3YXMgbWFzc3kgKD8gLQpkLlJlZC4gOikuQnV0IE1yLiBCdW5nbGUgZGlkbid0IHN0YXJ0IHRvIHdhc2ggaGlzIGhhbmRzIG9yIGNvbWIgaGlzIGhhaXIuSGUKd2VudCByaWdodCB0byBsdW5jaC4KVGhlbixpbnN0ZWQgb2YgZ2V0dGluZyBpbiB0aGUgbGluZSBvZiB0aGUgbHVuY2hyb29tLE1yLiBCdW5nbGUgcHVzaGVkCmV2ZXJ5b25lIGFzaWRlIGFuZCB3ZW50IHJpZ2h0IHRvIHRoZSBmcm9udC5FdmVuIHRob3VnaCB0aGlzIG1hZGUgdGhlIGNoaWxkcmVuCmxhdWdoLG5vb25lIHRob3VnaHQgdGhhdCB3YXMgYSBmYWlybHkgKD8pIHRoaW5nIHRvIGRvLlRoZW4gaW4gdGhlIGx1bmNocm9vbQpNci4gQnVuZ2xlIHdhcyBzbwpjbHVtc3kgYW5kIGltcG9saXRlIHRoYXQgaGUga25vY2tlZCBvdmVyIGV2ZXJ5dGhpbmcuQW5kIG5vb25lIHdhbnRlZCB0byBzaXQKbmV4dCB0byBoaW0uQW5kIHdoZW4gaGUgZmluYWxseSBrbm9ja2VkIGhpcyBvd24gdHJheSBvZmYgdGhlIHRhYmxlLHRoYXQgd2FzCnRoZSBlbmQgb2YgdGhlIHB1cHBldCBzaG93LgpUaGUgY2hpbGRyZW4ga25ldyBldmVuIHRob3VnaCBNci4gQnVuZ2xlIHdhcyBmdW5ueSB0byB3YXRjaCxoZSB3b3VsZG4ndCBiZQptdWNoIGZ1biB0byBlYXQgd2l0aC5QaGlsIGtuZXcgdGhhdCBhIE1yLiBCdW5nbGUgd291bGRuJ3QgaGF2ZSBtYW55IGZyaWVuZHMuSGUKd291bGRuJ3Qgd2FubmEgYmUgbGlrZSBNci4gQnVuZ2xlLgoKVGphIGFsc28gbmVobXQgZXVjaCBpbiBBY2h0IHZvciBtaXIsaWhyIFBhcnR5bG9ld2VuICEgOykKQXVmIGFsbGUgRmFlbGxlIHNpZWh0IG1hbiBzaWNoIGluIE11ZW5zdGVyLGRpZXNtYWwgdmllbGxlaWNodCBzb2dhciBtaXQKZ2V3YXNjaGVuZW4gSGFlbmRlbihkYXMgSGFhcmUga2FlbW1lbiBrYW5uIGljaCBtaXIgR290dFNlaURhbmsgc3BhcmVuKS5BbHNvCmJpcyBkZW5uZSBNYWNodCdzIGd1dCB1bmQgV2lua2VXaW5rZSAhISEgOikpKQoKCQkJRXVlciBhbGxlciBNci4gQnVuZ2xlCgpQUzpEYXMgJ1NodXQgdXAgQnVuZ2xlICEgJyBiZWkgQmVhdmlzICYgQnV0dGhlYWQga29tbXQgamV0enQgdWVicmlnZW5zCm9lZnRlcnMgdm9yICEgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClByb2dyYW1taWVyZXIgKEpvZiwgIDguIEF1ZyAxOTk0LCAxMjozMDowNyk6CiBFaW4gUHJvZ3JhbW1pZXJlciBzdGlyYnQgdW5kIHdpcmQgdm9uIFBldHJ1cyBnZWZyYWd0LCBvYiBlciBpbiBkZW4gSGltbWVsCm9kZXIgaW4gZGllIEhvZWxsZSBtb2VjaHRlLiBFciBiaXR0ZXQsIHNpY2ggYmVpZGUga3VyeiBhbnNjaGF1ZW4genUgZHVlcmZlbiwKZWhlIGVyIHNpY2ggZW50c2NoZWlkZXQuIERlciBXdW5zY2ggd2lyZCBnZXdhZWhydCwgdW5kIGVyIGtvbW10IHp1ZXJzdCBtYWwKaW4gZGVuIEhpbW1lbC4gQXVmIHZpZWxlbiwga2xlaW5lbiwgd2Vpc3NlbiBXb2Vsa2NoZW4gc2l0emVuIEVuZ2VsIHVuZCBrbGltLQpwZXJuIGdlbGFuZ3dlaWx0IGF1ZiBpaHJlbiBIYXJmZW4uCiBEYW5uIGtvbW10IGVyIGluIGRpZSBIb2VsbGUuIEVyIHNpZWh0IGVpbmVuIHJpZXNpZ2VuLCB3ZWlzc2VuIFNhbmRzdHJhbmQsCmVpbgpibGF1ZXMgTWVlciwgQmlraW5pc2Nob2VuaGVpdGVuLCBlaW5lIFJlaWhlIFN1cmZicmV0dGVyLCBkaWUgYmVyZWl0LQpsaWVnZW4uCiBQZXRydXMgZnJhZ3Q6IE51biwgd2llIGhhc3QgZHUgZGljaCBlbnRzY2hpZWRlbiA/CkRlciBQcm9ncmFtaWVyZXIgc2FndDogTnVuLCBpY2ggd2lsbCBzZWxic3R2ZXJzdGFlbmRsaWNoIGluIGRpZSBIb2VsbGUsIHdlcgprb2VubnRlIGV0d2FzIGFuZGVyZXMgd29sbGVuID8/PwogUHVmZiAtIGVyIHNpdHp0IGluIGVpbmVtIFRvcGYgbWl0IHNpZWRlbmRlbSBPZWwsIGFsbGVzIGlzdCB2b2xsZXIgRmxhbW1lbiwKZXMgaXN0IHVuZXJ0cmFlZ2xpY2ggaGVpc3MuIFJ1bmRydW0gc3RlaGVuIFRldWZlbCB1bmQgcGllc2Fja2VuIGlobiBtaXQgaWhyZW4KRHJlaXphY2tzLgogRGVyIFByb2dyYW1taWVyZXIgYnJ1ZWxsdDogSGV5LCBIaWxmZSwgQmV0cnVnICEgV28gaXN0IGRlciBTdHJhbmQgPz8/CgogRWluIFRldWZlbCBzY2hhdXQgZWluZW4gYW5kZXJlbiBhbiB1bmQgc2FndDogU3RyYW5kID8gV2FzIHdpbGwgZGVyID8KIERlciB3aXJkIGRvY2ggbmljaHQgdW5zZXIgQmV0YS1SZWxlYXNlIG1laW5lbiA/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBuZW4gV2l0eiAoRmxpbnRuYWlsLCAgOS4gQXVnIDE5OTQsIDEwOjUxOjI4KToKSGksIHNwZXppZWxsIFBpbGdyaW0sIG5vY2ggbmVuIHNleGlzdGlzY2hlciBXaXR6IChhdWNoIHZvbiBuZXIgRnJhdSBlcnphZWhsdApiZWtvbW1lbikgOgoKCiAgICAgV2FzIG1hY2h0IGVpbmUgRnJhdSBtb3JnZW5zIG1pdCBpaHJlbSBBcnNjaCA/Pz8/PwoKCgoKCgoKCgogICAgIDMgQnJvdGUgc2NobWllcmVuIHVuZCB6dXIgQXJiZWl0IHNjaGlja2VuICEhIQoKCiBpbiBkaWVzZW0gU2lubmUgLi4uLi4uLkZsaW50LCBub2NoIHVudmVyaGVpcmF0ZXQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmlkbGUgKFJvY2h1cywgMTEuIEF1ZyAxOTk0LCAxMzozNjo1Nik6CkpvZiBlbnRlcnMgSWRsZS1Nb2RlIC4uLgpKb2Ygc2FndDogQWNod2FzIGljaCBiaW4gamEgbmllIGlkbGUgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptYWVubmVyZmVpbmRsaWNoIChLbGluZ2UsIDExLiBBdWcgMTk5NCwgMTY6NTI6MjApOgpEZW4gaGF0IG1pciBtZWluZSBGcmV1bmRpbiBlcnphZWhsdCBkaWUgZnJlY2hlIDspCgpFaW4gTWFubiB3aXJmdCBzZWluZSBmcmF1IGF1cyBkZW0gRmVuc3Rlci4KSW4gd2VsY2hlciBaZWl0dW5nIGVyc2NoZWludCBkZXIgQmVyaWNodCBkYXJ1ZWJlciA/CgoKCgoKCgoKCgoKLi4uLi5pbiBkZXIgQmlsZC4KCkVpbmUgRnJhdSB3aXJmdCBpaHJlbiBNYW5uIGF1cyBkZW0gRmVuc3Rlci4KCldvIGVyc2NoZWludCBkZXIgZW50c3ByZWNoZW5kZSBBcnRpa2VsID8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKaW4gU2Nob2VuZXIgV29obmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTHVmdCB1bmQgTGllYmUgOi0pKSAoQ2F0d2VhemxlLCAxMS4gQXVnIDE5OTQsIDIwOjI5OjE5KToKPiBKb2Ygc2FndDogV2lldmllbGUgV3VlcnN0Y2hlbiBrb2VubmVuIHdpciBlaW5zcGFyZW4sIHdlbm4gd2lyIHN0YXR0ZGVzc2VuCkpvZiBzYWd0OiBFSU5FTiBTYW5kdGlnZXIgZ3JpbGxlbiBhdWYgZGVyIFBhcnR5ID8KRHUga2ljaGVyc3QgZnJvZWhsaWNoLgpHYXRzYnkgc2NodWV0dGVsdCBkZW4gS29wZi4KR2F0c2J5IHNjaHVldHRlbHQgZGVuIEtvcGYuCkdhdHNieSBzY2h1ZXR0ZWx0IGRlbiBLb3BmLgpHYXRzYnkgc2NodWV0dGVsdCBkZW4gS29wZi4KR2F0c2J5IHNjaHVldHRlbHQgZGVuIEtvcGYuCkdhdHNieSBzY2h1ZXR0ZWx0IGRlbiBLb3BmLgpKb2Ygc2FndDogSG0gPwpEdSBzYWdzdDogZ3V0ZSBJZGVlIDopCkdhdHNieSBzY2h1ZXR0ZWx0IGRlbiBLb3BmLgpHYXRzYnkgc2NodWV0dGVsdCBkZW4gS29wZi4KR2F0c2J5IHNjaHVldHRlbHQgZGVuIEtvcGYuCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpKb2Ygbmlja3QgenVzdGltbWVuZC4KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpKb2Ygbmlja3QgenVzdGltbWVuZC4KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpKb2Ygbmlja3QgenVzdGltbWVuZC4KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkdhdHNieSBzY2h1ZXR0ZWx0IGRlbiBLb3BmLgpKb2Ygbmlja3QgenVzdGltbWVuZC4KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkR1IHNhZ3N0OiBEZXIgd2lyZCBEaXIgc2NobWVja2VuLCBnYXRzIC4uLi4uCkR1IGtpY2hlcnN0IHZlcmdudWVndC4KR2F0c2J5IHNhZ3Q6IGRlciBzY2htZWNrdCBhYmVyIGF1Y2ggbGViZW5kClJvY2h1cyBncmluc3QuCkR1IGJyaWNoc3Qgdm9yIExhY2hlbiB6dXNhbW1lbi4KR2F0c2J5IGdyaW5zdCBiaXMgdWViZXIgYmVpZGUgT2hyZW4uCkR1IHNhZ3N0OiBkYXMgZ2xhdWIgaWNoIGRpciBkYW5uIGF1Y2ggOikKSm9mIHNhZ3Q6IERhbmFjaCBuaWNodCBtZWhyIDopCkdhdHNieSBzYWd0OiB1bmQgZGVyIHNvbGwgYXVjaCBub2NoIG9lZnRlciBzY2htZWNrZW4uCkpvZiBzYWd0OiBIbSBzYWdzdCBEVSA6KQpHYXRzYnkgc2FndDogd2lyIGxlZ2VuIHd1ZXJzdGNoZW4gYXVmLi4uIGFsc28gLi4uCkpvZiBzYWd0OiBEaWUgQWxsZ2VtZWluaGVpdCB3aWxsIGlobiBhbiBkZW0gQWJlbmQKR2F0c2J5IHNhZ3Q6IHdlciBpc3QgZWluIHd1ZXJzdGNoZW4/CkdhdHNieSBzYWd0OiBib2luZyBpc3QgZWluIHd1ZXJzdGNoZW4uCkdhdHNieSBncmluc3QuCkR1IGJyaWNoc3Qgdm9yIExhY2hlbiB6dXNhbW1lbi4KSm9mIHNhZ3Q6IEJvaW5nID8gU3RlaW5iZWlzc2VyCkpvZiBzYWd0OiBTY2htZWNrdCBuaWNodApEdSBzYWdzdDogaWNoIGVzc2UgYXVjaCBlaW4gV3VlcnN0Y2hlbgpHYXRzYnkgc2FndDogd2FzIHdpbGwgZGllIGFsbGdlbWVpbmhlaXQ/CkpvZiBzYWd0OiBOYSBkaWUgQWxsZ2VtZWluaGVpdCB3aWxsIGRlbiBTYW5kdGlnZXIgZ2VicmF0ZW4gdmVyc3BlaXNlbiA6KQpHYXRzYnkgc2FndDogb2gsIGRhIGdpYnRzIGRvY2ggZGllIGd1dGVuIG1pbmktd3VlcnN0Y2hlbiB2b20gcGVubnkgbWFya3QuCkdhdHNieSBzYWd0OiBrZW5udCBpaHIgZGllPwpSb2NodXMgc2FndDogd2lyIGtvZW5uZW4gamEgYXVjaCBlaW5lIHd1ZXN0ZW5rYXR6ZSBncmlsbGVuLi4uCkdhdHNieSBzYWd0OiB1bmQgaGFidCBpaHIgZGllIGltIG5vcmRlbj8KUm9jaHVzIHNhZ3Q6IG9kZXIgZWluZW4gZ3JlaWYhCkpvZiBzYWd0OiBOZWVlZQpHYXRzYnkgc2FndDogd3Vlc3RlbmthdHplIGlzdCBtaXIgZWdhbC4KR2F0c2J5IHNhZ3Q6IGF1amEsIGdyZWlmCkpvZiBzYWd0OiBTYW5kdGlnZXIhCkpvZiBzYWd0OiBJaGggZ3JlaWZmICEKSm9mIHNhZ3Q6IFphZWgsIGVrbGlnCkdhdHNieSBiZXNjaHVldHp0IERhbmNlciwgYXVjaCB3ZW5uIGVzIG5pY2h0IGlociBNYW5uIGlzdC4KRHUgc2Fnc3Q6IEdlZmx1ZWdlbD8gR2VncmlsbHQ/IG5lZWVlZS4uLi4uLi4KUm9jaHVzIHNhZ3Q6IGdyZWlmISB3b2Vsa2NoZW4gcnVwZnQgaWhtIHNjaG9uIGplZGUgZmVkZXIgZWluemVsbiBhdXMuLi4KSm9mIHNhZ3Q6IE5hZWUgU2FuZHRpZ2VyICEKR2F0c2J5IGdydW1tZWx0LgpKb2Ygc2FndDogR2VmbHVlZ2VsIGhhdHRlIGljaCBzY2hvbiBvZnQKSm9mIHNhZ3Q6IFRpZ2VyIG5vY2ggbmllClJvY2h1cyBzYWd0OiB3aWUgc2NobWVja3QgZWlnZW50bGljaCBlaW4ga251ZGRlbGVpc2JhZXI/IDopCkdhdHNieSBzYWd0OiBiaXMgd2lyIGtvbW1lbiwgc2VpZCBpaHIgc2Nob24gbGFlbmdzdCB2ZXJodW5nZXJ0IDstKQpKb2Ygc2FndDogU2Nob24gZ2FyIGtlaW5lbiBTQU5HdGlnZXIKR2F0c2J5IHNhZ3Q6IHVpLCBhbSBrbnVkZGVsZWlzYmFlciBpc3QgYXVjaCBtZWhyIGRyYW4gOy0pCkR1IHNhZ3N0OiBkZXIgaGF0IGFiZXIgZGFzIGdlbGQKSm9mIHNhZ3Q6IFdlciBiZXJlaXRldCBpaG4genUsIGRlbiBUaWdlciA/CkR1IHNhZ3N0OiBkZXIga2FubiBzaWNoIGZyZWlrYXVmZW4KSm9mIHNhZ3Q6IENhdCA/CkdhdHNieSBzY2h1ZXR0ZWx0IGRlbiBLb3BmLgpHYXRzYnkgc2NodWV0dGVsdCBkZW4gS29wZi4KR2F0c2J5IHNjaHVldHRlbHQgZGVuIEtvcGYuCkpvZiBzYWd0OiBLYW5uc3QgZHUgZ3JpbGxlbiA/CkR1IHNhZ3N0OiBpY2g/CkR1IHNhZ3N0OiBub2UKSm9mIHNhZ3Q6IEhtCkpvZiBzYWd0OiBXZXIgZGFubiA/CkdhdHNieSBzYWd0OiBkZW5rdCBpaHIsIGljaCB3YXJ0ZSB3b2NoZW5sYW5nIGF1ZiBpaG4gbnVyIGRhc3MgaWhyIGlobiBkYW5uCkdhdHNieSBzYWd0OiB2ZXJzcGVpc2VuIGtvZW5udD8/PwpHYXRzYnkgc2FndDogY2FkcmEKSm9mIHNhZ3Q6IEVpbmVyIG11c3MgaWhuIGF1Y2ggc2NobGFjaHRlbiB1bmQgYXVzbmVobWVuIHVuZCBzbwpEdSBzYWdzdDogdWZmCkdhdHNieSBncmluc3QuCkpvZiBzYWd0OiBKYSBkYXMgbWFjaHQgQ2FkcmEKSm9mIHNhZ3Q6IE9rYXkKR2F0c2J5IGJyaWNodCBpbiBUcmFlbmVuIGF1cyB1bmQgd2VpbnQgYml0dGVybGljaC4KRHUgc2Fnc3Q6IEpvZiwgZ2xhdWIgbWlyIGFuIERFTSBTYW5kdGlnZXIgaXN0IG5peCBkcmFuLCBkYSB3ZXJkZW4gd2lyIG5pY2h0CkR1IHNhZ3N0OiB2b24gc2F0dC4uLi4KR2F0c2J5IHNhZ3Q6IGlociBzZWlkIGdlbWVpbi4KR2F0c2J5IHNhZ3Q6IHVuZCB3YXMgd2lyZCBkYW5uIGF1cyBtaXI/CkR1IHNhZ3N0OiBpY2ggd3Vlc3N0ZSBkYSB3YXMgYmVzc2VyZXMKSm9mIHNhZ3Q6IFdlaXNzIG5pY2h0CkdhdHNieSBuaWNrdCBEaXIgenUuCkNhdHdlYXpsZSBmYXNzdCBKb2YgbmFlaGVyIGlucyBBdWdlLgpKb2Ygc2FndDogV2lyYmVsd2luZCBtYWNodCBuaWNodCBzYXR0CkdhdHNieSBuaWNrdCBEaXIgenUuCkdhdHNieSBncmluc3QuCkpvZiBzYWd0OiBEaWNoIGxhc3NlbiB3aXIgYWxzbyBsYXVmZW4KRHUgc2Fnc3Q6IHNvIHp1bWluZGVzdCB2b24gZGVyIE1hc3NlIGhlci4uLi4uCj4gR2F0c2J5IHNhZ3Q6IGpvZiwgc2Nob25tYWwgbHVmdCBnZWdlc3Nlbj8KSm9mIHNhZ3Q6IENBVCAhCkR1IGtpY2hlcnN0LiAoV2llIGFsYmVybiB2b24gRGlyKQpKb2Ygc2FndDogTHVmdCBnZXNjaGx1Y2t0LCBqYQpKb2Ygc2FndDogSXMgbml4CnNhZyBrb2VubnRlIGdyYWRlIHJlaWNoZW4uLi4uCkR1IHNhZ3N0OiBrb2VubnRlIGdyYWRlIHJlaWNoZW4uLi4uCkdhdHNieSBzYWd0OiB2b24gbWlyIGthbm4gbWFuIG51ciBsZWJlbiwgd2VubiBkaWUgbGllYmUgZGF6dSBub2NoIGRhYmVpIGlzdC4KRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpKb2Ygc2FndDogRHJ1bSBsYXNzZW4gd2lyIGRpY2ggamEgbGF1ZmVuIDopCkR1IHNhZ3N0OiBsdWZ0IHVuZCBsaWViZSwgamE/CkdhdHNieSBzYWd0OiBmbGllZ2VuLi4KRHUga2ljaGVyc3QgdmVyZ251ZWd0LgpKb2Ygc2FndDogQWVoamEgZmxpZWdlbiA6KQpHYXRzYnkgZ3JpbnN0LgpKb2Ygc2FndDogS3JpZWdzdCBhdWNoICduIFN0dWVjayBUaWdlcmtldWxlIGFiCkpvZiBzYWd0OiBPYndvaGwgLi4uCkdhdHNieSBzY2h1ZXR0ZWx0IGRlbiBLb3BmLgpKb2Ygc2FndDogSG1tCkdhdHNieSBzYWd0OiBuZWluIG5laW4gbmVpbgpKb2Ygc2FndDogRGllIFNwaWVsZXIgd2VyZGVuIFJPQ0hVUyBzb3dpZXNvIGFtIE5hY2htaXR0YWcgdG9ldGVuCkpvZiBzYWd0OiBFaW4gUm9jaHVzLCBlaW4gVGlnZXIgLSBkYSBrb21tZW4gd2lyIGphIGZhc3Qgb2huZSBXdXJzdCBhdXMKUm9jaHVzIHNhZ3Q6IGljaCBnbGF1YmUgbmljaHQuLi4gdHJveSBrb21tdCBqYSBhdWNoLCBkZW4gc2NobmFwcGVuIHNpZSBzaWNoClJvY2h1cyBzYWd0OiB6dWVyc3QuLi4KR2F0c2J5IHNhZ3Q6IGFsc28gaWNoIGdlaCB1bmQgaG9mZmUsIGlociBiZXNvcmd0IHZvbiB1bnNlcmVtIGdlbGQgZXR3YXMuLiB1bmQKR2F0c2J5IHNhZ3Q6IGxhc3N0IG1pciB3ZW5pZ3N0ZW5zIG5vY2ggZGllIGVpbmUgbmFjaHQgbWl0IGRhbmNlciA7LSkKSm9mIGlzdCBlcnN0YXVudC4KSm9mIHNhZ3Q6IEhtIG5hIGd1dCA6KQ0KSm9mIHNhZ3Q6IFdlaWwgZHVzIGJpc3QgOikKR2F0c2J5IGtudWRkZWx0IFJvY2h1cywgRGljaCB1bmQgSm9mIGxpZWJldm9sbC4KSm9mIGt1ZXNzdCBHYXRzYnkuCj4gR2F0c2J5IHNhZ3Q6IGljaCBnbGF1YmUgZWggbmljaHQsIGRhc3Mgd2lyIHNvdmllbCBzY2hsYWZlbiB3ZXJkZW4uLiBhYmVyIGt1cnoKR2F0c2J5IHNhZ3Q6IHByb2JlbGllYmVuIHdlcmRlIGljaCBzY2hvbi4KR2F0c2J5IHNhZ3Q6IGFlaC4uLgpHYXRzYnkgc2FndDogbGllZ2VuIG5hdHVlcmxjaWggOy0pCkpvZiBncmluc3QuCkdhdHNieSBlcnJvZXRldC4KRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpHYXRzYnkgZmFlbmd0IGZ1ZXJjaHRlcmxpY2ggYW4genUgZmx1Y2hlbi4KQ2F0d2VhemxlIHRyb21tZWx0IG1pdCBkZW4gRmFldXN0ZW4gYXVmIGRlbSBCb2Rlbi4KSm9mIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpSb2NodXMgc2FndDogd2FyIGRhcyBlaW4gZnJldWRzY2hlciB2ZXJzcHJlY2hlcj8gOikKUm9jaHVzIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpEdSBzYWdzdDoga3VyeiBwcm9iZWxpZWJlbiA6LSkpKSkpKQpsYWNoZQpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uCkpvZiBzYWd0OiBEYXMgd2FyIEFic2ljaHQsIHdldHRlbj8KSm9mIGdyaW5zdC4KR2F0c2J5IHNhZ3Q6IGRhcyBzaW5kIG1laW5lIGZpbmdlci4gZGllIG1hY2hlbiBtYWwgd2llZGVyIHdhcyBzaWUgd29sbGVuLgpDYXR3ZWF6bGUgYmVrb21tdCBlaW5lbiBMYWNoYW5mYWxsLgpHYXRzYnkgc2FndDogbmVpbiwga2VpbmUgYWJzaWNodC4uIG11ZWRpZ2tlaXQuCkdhdHNieSBzYWd0OiBsaWViZW4ga2FubiBpY2ggc2NobmVsbGVyIGFscyBsaWVnZW4uCkpvZiBzYWd0OiBKYWphIGRhIHRpcHB0IG1hbiBzY2hvbm1hbCB3YXMgbWFuIGRlbmt0IHN0YXR0IHdhcyBtYW4gc2FnZW4gd2lsbApHYXRzYnkgc2FndDogdGlwcGVuLgpWcmFpIHdhZWx6dCBzaWNoIHZvciBMYWNoZW4gYXVmIGRlbSBCb2Rlbi4KRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpKb2YgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkdhdHNieSBncnVtbWVsdC4KSm9mIHNhZ3Q6IFNjaG9uIHdpZWRlciBzbyBlaW5lciA7KQpHYXRzYnkgc2FndDogaWhyIHNlaWQgZ2VtZWluLgpHYXRzYnkgc2FndDogaWNoIGdlaCBqZXR6dC4uLgpEdSBzYWdzdDogZGFyZiBpY2ggZGFzIGluIGRpZSBXaXR6ZXJ1YnJpayBzZXR6ZW4gPz8/IDotKSkKR2F0c2J5IGdyaW5zdC4KR2F0c2J5IG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBuaWNrdCBEaXIgenUuCkdhdHNieSBzYWd0OiBkYXJmc3QgZHUuCkpvZiBzYWd0OiBXaWUgZWNodCA/ClZyYWkgbmlja3QgenVzdGltbWVuZC4KSm9mIGtudWRkZWx0IEdhdHNieS4KR2F0c2J5IHNhZ3Q6IGphLi4gaWNoIGJpbiBkYSBuaWNodCBzby4uIGljaCBsYWNoIG1pY2ggaGllciBhdWNoIHNjaG9uCkdhdHNieSBzYWd0OiBzY2hsYXBwLgpKb2Yga251ZGRlbHQgR2F0c2J5IHRyb2VzdGVuZC4KSm9mIHNhZ3Q6IE5hIGRlbm4gOikKR2F0c2J5IHNhZ3Q6IG5hIGRlbm4uLi4gOy0pCgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUYWxraW5nIGZyb2dzIChCYW56YWksIDEyLiBBdWcgMTk5NCwgMDQ6MzM6MDgpOgpBIHNvZnR3YXJlIGRldmVsb3BlciBndXkgaXMgYSB3YWxraW4nIGRvd24gdGhlIHN0cmVldCwgYW5kIGhlIGhlYXJzCmEgdm9pY2UgZnJvbSB0aGUgc2lkZXdhbGsuIEhlIGxvb2tzIGRvd24gYW5kIHNlZXMgYSBmcm9nLiBUaGUgZnJvZwpzYXlzLCJIaSwgSSdtIHJlYWxseSBhIGJlYXV0aWZ1bCBwcmluY2Vzcy4gUGljayBtZSB1cCwgZ2l2ZSBtZSBhCmtpc3MsIGFuZCBJJ2xsIGxldCB5b3UgZ2F6ZSBhdCBteSBiZWF1dHkgZm9yIGFuIGhvdXIiLgoKU28gdGhlIHN3IGd1eSBiZW5kcyBkb3duLCBwaWNrcyB1cCB0aGUgZnJvZywgcHV0cyBoZXIgaW4gaGlzIHBvY2tldCwKYW5kIGtlZXBzIHdhbGtpbmcuCgpTbyB0aGUgZnJvZyBzYXlzLCAiSEVZISBXYWl0IGEgbWludXRlLCBsZXQgbWUgb3V0ISIuIFRoZSBzdyBndXkKcHVsbHMgdGhlIGZyb2cgb3V0IG9mIGhpcyBwb2NrZXQuIE5vdyB0aGUgZnJvZyBzYXlzLCAiSWYgeW91IGtpc3MKbWUgSSdsbCB0dXJuIGludG8gYSBiZWF1dGlmdWwgcHJpbmNlc3MgYW5kIHlvdSBjYW4gc2xlZXAgd2l0aCBtZQp0b25pZ2h0ISIKClRoZSBzdyBndXkgcHV0cyB0aGUgZnJvZyBiYWNrIGludG8gaGlzIHBvY2tldC4KCiJXSEFUPyBIRVksIGdldCBtZSBvdXQgb2YgaGVyZSEiLiBIZSBwdWxscyB0aGUgZnJvZyBvdXQgYWdhaW4uCiJLaXNzIG1lISBJJ2xsIHR1cm4gaW50byBhIGJlYXV0aWZ1bCBwcmluY2VzcyBhbmQgSSdsbCBnaXZlIHlvdQpncmVhdCBzZXggZm9yIGEgd2hvbGUgeWVhciEhISIgQmFjayBpbnRvIHRoZSBwb2NrZXQuIHN3IGd1eSBrZWVwcwp3YWxraW5nLgoKIldBSVQgQSBNSU5VVEUhIEdFVCBNRSBPVVQgT0YgSEVSRSEgUGxlYXNlLCB0YWtlIG1lIG91dCBvZiB5b3VyCnBvY2tldCEiIFNvIHRoZSBzdyBndXkgZG9lcywgYW5kIHRoZSBmcm9nIGFza3MgaGltLCAiV2hhdCdzIHRoZQpkZWFsIGhlcmU/IEkgcHJvbWlzZSB5b3UgYSBiZWF1dGlmdWwgcHJpbmNlc3MgYW5kIGdyZWF0IHNleCBmb3IgYQp5ZWFyLCB5ZXQgeW91IGtlZXAgcHV0dGluZyBtZSBiYWNrIGludG8geW91ciBwb2NrZXQhPyIKCkFuZCB0aGUgc3cgZ3V5IHJlcGxpZXMgIkknbSBhIHNvZnR3YXJlIGRldmVsb3Blci4gTm8gdGltZSBmb3Igc2V4LgpCdXQgYSB0YWxraW5nIGZyb2cgaXMgV0FZIENPT0whIgoKCiAgQmFuegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQk9JTkcgLSBhdXNnZXNjaHJpZWJlbiAoSGlnaGxhbmRlciwgMTMuIEF1ZyAxOTk0LCAyMzozMDoyMCk6CkhpIQpIYWIgaWNoIGlyZ2VuZHdhbm4gbWFsIGlubmVyIG5ld3Nncm91cCBnZWZ1bmRlbiAtCmpldHp0IHdpc3NlbiB3aXIsIHdpZSBCb2luZyB6dSBzZWluZW0gTmFtZW4ga29tbXQuLi4gICA7PgpRdW90ZQpBbiBkZXIgUnVoci1Vbml2ZXJzaXRhZXQgaW4gQm9jaHVtIGlzdCB2b3IgZWluaWdlciBaZWl0IGRpZSBHcnVwcGUgQk9JTkcKKEJPY2h1bWVyIElOdGVybmV0IEdydXBwZSkgaW5zIExlYmVuIGdlcnVmZW4gd29yZGVuLCBkaWUgZGVyIFN0dWRlbnRlbnNjaGFmdApkYXMgSW50ZXJuZXQgbmFlaGVyIGJyaW5nZW4gc29sbC4gSW4gZWluZW0gRWlubGVpdHVuZ3N0ZXh0IGhlaXNzdCBlcyBkYToKW2V0YyBibGEgc2Nod2FmZWwuLi5dClVucXVvdGUuCiAgIEhpZ2hsYW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmpva2UgKEtldG9zLCAxNC4gQXVnIDE5OTQsIDE5OjA4OjAyKToKSXQncyB0ZW4gbydjbG9jazsgZG8geW91IGtub3duIHdoZXJlIHlvdXIgbW9uc3RlcnMgYXJlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIG5pY2h0IHJhc3Npc3Rpc2NoZXIgV2l0eiAoVHJveSwgMTUuIEF1ZyAxOTk0LCAxMjo1Mjo1OCk6CkltIEhhdXB0YmFobmhvZiBrbGluZ2VsdCBkYXMgVGVsZWZvbi4gRGVyIEJhbmhvZnN2b3JzdGVoZXIgbmltbXQgYWIuCkZyZXVuZGxpY2hlIFN0aW1tZTogRGEgbGllZ3QgZWluIEdsZWlzIGF1ZiBkZW4gU2NoaWVuZW4hCkJhaG5ob2Zzdm9yc3RlaGVyOiBOYSBkYXMgd29sbG4gd2lyIGRvY2ggaG9mZmVuIQoKRGVyIEJhaG5ob2Zzdm9yc3RlaGVyIGxlZ3QgYXVmLiBNaW51dGVuIHNwYWV0ZXIgZmFlaHJ0IGVpbiBadWcgZWluLiBLdXJ6CmRhcmF1ZiBrbGluZ2VsdCB3aWVkZXIgZGFzIFRlbGVmb246CkZyZXVuZGxpY2hlIFN0aW1tZTogTnVuIGhhYmVuIHNpZSBkZW4gYWxtZW4gR2xlaXMgdWViZWxmYWhsZW4uLi4KCiAgIEFsc286IFNlaWQgbmV0dCB6dWVpbmFuZGVyIDopCgpUbG95Li4uIGFlaCBUcm95LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FzIGlzdCBlaW4gSk9GPz8gKEJlbGRpbiwgMTUuIEF1ZyAxOTk0LCAyMDowMjoxMyk6CgpOYWNoIGt1ZXJ6bGljaCBpbW1lciBoYWV1ZmlnZXIgYXVmdGF1Y2hlbmRlbiBHZXJ1ZWNodGVuIG11c3MgZGllIGVuZGd1ZWx0aWdlCkJlZGV1dHVuZyBkZXMgS3VlcnplbHMgSk9GIGVuZGxpY2ggZ2VrbGFlcnQgd2VyZGVuLgpUZWlsZSBkaWVzZXIgR2VydWVjaHRlIGJlaGF1cHRldGVuIGVzIHNlaSBlaW5lIEVpbmhlaXQgZnVlciBGZXR0bmFlcGZjaGVuCm9kZXIgUGZlcmRlc3RhZXJrZW4gaW0gTVVELi4uIGRlbSBpc3QgYWJlciBOSUNIVCBzbyA7KS4KV2llIGt1cnogdm9yIFJlZGFrdGlvbnNzY2hsdXNzIGdlbWVsZGV0IHd1cmRlIC0gYXVzIGd1dCBpbmZvcm1pZXJ0ZW4gS3JlaXNlbgotIGlzdCBlaW4gSk9GIGVpbiBrbGVpbmVzIHB1dHppZ2VzIE1hZW5ubGVpbiwgd2VsY2hlcyBiZXZvcnp1Z3QgaW4gZWluZW0KbWVya3d1ZXJkaWdlbiBHZXJhZXQgbmFtZW5zIGBQQVNDQUwuVU5JLU1VRU5TVEVSLkRFYCBoZXJ1bXNwcmluZ3QgdW5kIGRhYmVpCmFsbGVybGVpIFVuc2lubiB1bmQgU2lubiB0cmVpYnQuCldBUyBnZW5hdSBhYmVyIGRhYmVpIHBhc3NpZXJ0IGJsZWlidCBkZW0gZ2VuZWlndGVuIEJlb2JhY2h0ZXIgdW5kIGF1Y2ggTGVzZXIKdmVyc2NobG9zc2VuLi4uIFdpciBob2ZmZW4gYWJlciBpbiBkZW4gbmFlY2hzdGVuIFRhZ2VuL1dvY2hlbi9Nb25hdGVuL0phaHJlbgooPykgbWVociB1ZWJlciBkaWVzZSBlcnN0YXVubGljaGUgTGViZW5zZm9ybSB6dSBlcmZhaHJlbi4KClNjaGFsdGVuIHNpZSBhbHNvIHdpZWRlciBlaW4gd2VubiBlcyBoZWlzc3Q6IGBXdW5kZXJiYXJlIENvbXB1dGVyd2VsdCAtIGVpbmUKRG9rdW1lbnRhdGlvbmAKClRZRlIgCQkJQmVsZGluIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYXNzZW5kZXMgWml0YXQgKEtldG9zLCAxNy4gQXVnIDE5OTQsIDAxOjM2OjExKToKSmVkZXIgTWVuc2NoIGtvbW10IG1pdCBlaW5lciBzZWhyIGdyb3NzZW4gU2VobnN1Y2h0IG5hY2ggSGVycnNjaGFmdCwKUmVpY2h0dW0gdW5kIFZlcmdudWVnZW4gc293aWUgZWluZW0gc3RhcmtlbSBIYW5nIHp1bSBOaWNodHN0dW4gYXVmIGRpZSBXZWx0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIFZvbHRhaXJlIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJlcnVlaG10ZSBsZXR6dGUgV29ydGUuLi4gKFJvY2h1cywgMTcuIEF1ZyAxOTk0LCAxOTo0NzozMyk6CltBbGxnZW1laW46Qm9Cb10gd2lyIHVudGVyYnJlY2hlbiBkaWVzZSBhdWZyZWdlbmRlIFN6ZW5lIGZ1ZXIgZWluZSB3aWNodGlnZQpbQWxsZ2VtZWluOkJvQm9dIE1pdHRlaWx1bmcuLi4gd2VpdGVyIGF1ZiBLYW5hbCBULi4uCiNxM3AjIEJvYm86ID51bnRlbgpbVG9kOl0gRWluIE1lc3NlciBoYXQgZ2VyYWRlIEJvYm8gdW1nZWJyYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClppdGF0ZSAoTGksIDE4LiBBdWcgMTk5NCwgMTA6MzE6NTMpOgpBbHNvIGRhcyB6aXRhdCBnZXN0ZXJuICh3YXJzIHZvbiBLZXRvcz8pIGVyaW5uZXJ0ZSBtaWNoIGFuIGVpbiBhbmRlcmVzOgoiVGhlIG9ubHkgd2F5IHRvIHVuZGVyc3RhbmQgd2hhdCBtYXRoZW1hdGljaWFucwogbWVhbiBieSBpbmZpbml0eSBpcyB0byBjb250ZW1wbGF0ZSB0aGUgZXh0ZW50CiBvZiBodW1hbiBzdHVwaWRpdHkuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVm9sdGFpcmUKY29udGVtcGxhdGUgPSBiZXRyYWNodGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGZXRlbi1xdW90ZXMgKFF1ZW5naXN0dSwgMjIuIEF1ZyAxOTk0LCAwMjozODoyOSk6Ck5hY2hmb2xnZW5kZSBaaXRhdGUgdm9uIGRlciBNVUQtRmV0ZSBzaW5kIHdlZGVyIGdlb3JkbmV0LCBub2NoIHZvbGxzdGFlbmRpZy4KVW0gRXJnYWVuenVuZyB3aXJkIGdlYmV0ZW4uClRvZXRlciAoaGF0IGdlcmFkZSBlbnRkZWNrdCwgZGFzcyBkaWUgQmVkaWVudW5nIGltIEFlZ2lkaWlob2YgYWxzCk5hbWVuc3NjaGlsZCAiU3VzYW5uZSIgdHJhZWd0KToKU3VzYW5uZSBpc3QgZG9jaCBkaWUgZWluemlnZSBGcmF1IGltIE1VRCwgYW4gZGVyIG1hbiBydW1ncmFiYmVsbiBrYW5uLCBvaG5lCmRhc3Mgc2llIGRhcyBnYW56ZSBNVUQgenVzYW1tZW5zY2hyZWl0LgoKRW5neXd1Y2s6IFdlbm4gaWNoIG1pciBkaWUgTGV1dGUgaGllciBzbyBhbnNlaGUsIHdlaXNzIGljaCBuaWNodCwgb2IgaWNoIG5vY2gKamVtYWxzIHdpZWRlciBNVUQgc3BpZWxlLgoKTXVkZGVyIChOYW1lIGtvbm50ZSBuaWNodCBtZWhyIGVybWl0dGVsdCB3ZXJkZW4pOiBXZXIgc3RlaHQgZGVubiBkYSBoaW50ZXIKUXVlbmdpc3R1PwpFbmd5d3VjazogRGFzIGlzdCBCZXJlbmlrZS4KTXVkZGVyOiBLYW5uIFF1ZW5naXN0dSBuaWNodCBtYWwgenVyIFNlaXRlIGdlaGVuLCBkYW1pdCBtYW4gQmVyZW5pa2UgYmVzc2VyCnNpZWh0PwpFbmd5d3VjazogT2NoLCB3ZW5uIGRlciB6dXIgU2VpdGUgZ2VodCwgc2llaHN0IER1IEJlcmVuaWtlIGF1Y2ggbmljaHQgYmVzc2VyLgoKSGlnaGxhbmRlciAobmFjaGRlbSBkaWUgUmVnZWxuIHp1bSBSdWNrenVjay1UZXN0IGVya2xhZXJ0IHd1cmRlbjogSW5uZXJoYWxiCmVpbmVzIFplaXRsaW1pdHMgZGllIHBhc3NlbmRlbiBTdGljaHdvcnRlIHp1IGVpbmVyIGJlc3RpbW10ZW4gUXVlc3QgZmluZGVuKToKS2VubmUgSUNIIG1pY2ggaW0gTVVEIGF1cz8/Pz8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmYW1vdXMgKGxhc3QgPykgd29yZHMuLi4gKCJ3aXR6ZSIgaXN0IHZvbGwuLi4pIChDYXR3ZWF6bGUsIDIyLiBBdWcgMTk5NCwgMTA6NDc6MzkpOgpbVmVybGVndCB2b24gYWxsZ2VtZWluZXMsIFJvY2h1cywgMTcuIEF1ZyAxOTk0LCAxMTozMjo0OV06CltBYmVudGV1ZXI6TWVwaGlzdG8gb3JpZW50aWVydCBzaWNoIGltIExhYixpbmRlbSBlciBkZW0gQWxsaWdhdG9yCm5hY2hyZW5udDopXQpbQWJlbnRldWVyOk1lcGhpc3RvXSBISUxGRkZFRUUhKGRlciBBbGxpZ2F0b3IgaGF0IGRlbiBTcGllc3MgdW1nZWRyZWh0OigoKCgKW0FiZW50ZXVlcjpNZXBoaXN0b10gSEVMUCEKLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPLVRvbiBKb2Y6IChZZW5kaSwgMjIuIEF1ZyAxOTk0LCAxNDo0MjowOSk6CiJXaXIgaGFiZW4gamV0enQgZWluZW4gc25vb3AgY2hhbm5lbCBhdmFpbGFiZWx0LAogZGEgd2VyZGVuIGpldHp0IGFsbGUgc25vb3BzIGRpcmVrdCBnZWJyb2FkY2FzdGV0Li4uIgoKICAgRGlhZ25vc2U6IGFrdXRlIEluZmVrdGlvbiBtaXQgZ3Jhc3NpZXJlbmRlbSBBbmdsaXppc211cy4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0eiB2b24gUm9jaGFyZCBGZXlubWFuIChWcmFpLCAyMy4gQXVnIDE5OTQsIDE1OjEwOjA0KToKT25lIGRheSBpbiBjbGFzcywgUmljaGFyZCBGZXlubWFuIHdhcyB0YWxraW5nIGFib3V0IGFuZ3VsYXIgbW9tZW50dW0uICBIZQpkZXNjcmliZWQgcm90YXRpb24gbWF0cmljZXMgYW5kIG1lbnRpb25lZCB0aGF0IHRoZXkgZGlkIG5vdCBjb21tdXRlLiAgSGUKc2FpZCB0aGF0IFNpciBXaWxsaWFtIEhhbWlsdG9uIGRpc2NvdmVyZWQgbm9uY29tbXV0aXZpdHkgb25lIG5pZ2h0IHdoZW4gaGUKd2FzIHRha2luZyBhIHdhbGsgaW4gaGlzIGdhcmRlbiB3aXRoIExhZHkgSGFtaWx0b24uICBBcyB0aGV5IHNhdCBkb3duIG9uIGEKYmVuY2gsIHRoZXJlIHdhcyBhIG1vbWVudCBvZiBwYXNzaW9uLiAgSXQgd2FzIHRoZW4gdGhhdCBoZSBkaXNjb3ZlcmVkIHRoYXQKQUIgZGlkIG5vdCBlcXVhbCBCQS4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYW1vdXMgbGFzdCB3b3Jkcy4uLiAoQ2FsdW0sIDIzLiBBdWcgMTk5NCwgMjA6NDg6MjEpOgoKW0FsbGdlbWVpbjpNZXBoaXN0b10gSXNzIGRpZSBUb2Rlc3NlcXVlbnogbmV1P1NlbHRlbiBzbyBzY2hvZW4gZ2VzdG9yYmVuLi4uLi4KW0FsbGdlbWVpbjpaYXJkb3pdIE5ldWUgVG9kZXNzZXF1ZW56PyBTb2ZvcnQgYXVzcHJvYmllcmVuLi4uCltUb2Q6XSBaYXJkb3ogaGF0IGdlcmFkZSBaYXJkb3ogdW1nZWJyYWNodC4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBUb2Rlc3NlcXVlbnplbiB1bmQgTWVwaGlzdG8gKENhdHdlYXpsZSwgMjMuIEF1ZyAxOTk0LCAyMzoxNTo0OSk6ClRqYSwgZGEgc2luZCB3aXIgZG9jaCBuZXVsaWNoIGFiZW5kIGJlaSBlaW5lciBVbnRlcmhhbHR1bmcKXXVlYmVyIGRpZSBUb2Rlc3NlcXVlbnplbiB2b24gRGFuY2VyIGF1ZiBNZXBoaXN0byB6dSBzcHJlY2hlbgpdZ2Vrb21tZW4gdW5kIHdlbm4gbWFuIGdyYWRlIHZvbSBUZXVmZWwgc3ByaWNodCAod2FzIGZ1ZXIgZWluCl1Xb3J0c3BpZWwgOikgKSwgd2VyIGtvbW10IHZvcmJlaT8gTWVwaGlzdG8gbmF0dWVybGljaC4KXVZpZWwgU3Bhc3MgYmVpbSBkdXJjaGxlc2VuLiBFcyBpc3QgemllbWxpY2ggbGFuZyBhYmVyIGRhZnVlcgphdWNoIHZlcmRhbW10IGd1dCwgYmVzb25kZXJzIGRhcyBFbmRlIDopKQpdVW5kIGJpdHRlIG5laG10IG5pY2ggZWluZSBlaW56aWdlIEFldXNzZXJ1bmcgdm9uIG1pciBvZGVyIHZvbgpdSm9mIGVybnN0LCBqYSA6KQoKRGFuY2VyIHNhZ3Q6IGFsbGVyZGluZ3MgYXVjaCByYXNzZW5hYmhhZW5naWcgZXRjLgpDYXR3ZWF6bGUgbmlja3Qgc3R1ZXJtaXNjaC4KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkRhbmNlciBzYWd0OiBzdHVmZW5hYmhhZW5naWcuCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpEYW5jZXIgdGlwcHQgc2Nob24gd2lsZC4KQ2F0d2VhemxlIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpEYW5jZXIgc2FndDogc2VoZXIgd29sbGVuIGphIGFuc3BydWNoc3ZvbGwgc3RlcmJlbiA7LSkKSm9mIGtpY2hlcnQgZnJvZWhsaWNoLgpDYXR3ZWF6bGUgc2FndDogamV3IGhvZWhlciBkZXIgbGV2ZWwsIGRlc3RvIGxhZW5nZXIgZGllIAp0b2Rlc3NlcXVlbnogOikpKSkKRGFuY2VyIHNhZ3Q6IHdlbm4gbWFuIHNjaG9uIDEgbWlvIGVwIHZlcmxpZXJ0IG11c3MgbWFuIGRhZnVlciBhdWNoIHdhcwpEYW5jZXIgc2FndDogYmVrb21tZW4gOi0pCkRhbmNlciBncmluc3QgQ2F0d2VhemxlIGFuLgpDYXR3ZWF6bGUgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkpvZiBzYWd0OiBBdWphIC0gQXNtb2RpcyBpc3QgMiBTdHVuZGVuIHVudGVyd2VncwpKb2Yga2ljaGVydC4KRGFuY2VyIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpDYXR3ZWF6bGUgdHJvbW1lbHQgbWl0IGRlbiBGYWV1c3RlbiBhdWYgZGVtIEJvZGVuLgpDYXR3ZWF6bGUgcHJ1c3RldCBpbiBzZWluZSB2b3IgZGVuIE11bmQgZ2VoYWx0ZW5lIEhhbmQuCkRhbmNlciBzYWd0OiBzY2hpY2sgbWFsIG5lIGthcnRlIGFzbW9kaXMgOi0pIGJpcyBuYWVjaHN0ZW4gc29tbWVyIDstKQpKb2Ygd2FlbHp0IHNpY2ggdm9yIExhY2hlbiBhdWYgZGVtIEJvZGVuLgpDYXR3ZWF6bGUgcm90Zmx0cy4KRGFuY2VyIGdyaW5zdC4KRGFuY2VyIHNhZ3Q6IHVuZCBsZXZlbCAxIGJla29tbXQgbnVyIGVpbiBmZXR0ZXMgR0FNRSBPVkVSIQpEYW5jZXIgZ3JpbnN0LgpDYXR3ZWF6bGUgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkRhbmNlciBzYWd0OiBuZSBpbSBlcm5zdDoKRGFuY2VyIHNhZ3Q6IGljaCBiYXUgZ3JhZCBhbiBlaW5lciBzZXF1ZW56OgpDYXR3ZWF6bGUgc2FndDogZGFzIGhhYmVuIHdpZSB1bnMgZnVlciBtZXBoaXN0byBhdXNnZWRhY2h0Li4uCkRhbmNlciBzYWd0OiBkYSB3aXJiZWx0IGdhbnogZ2VoZWltbmlzdm9sbCBlaW4gYWx0ZXMgdmVycm90dGV0ZXMgc2NoaWxkIGR1cmNoCkRhbmNlciBzYWd0OiBkZW4gbGVlcnJhdW0uLi4KQ2F0d2VhemxlIHNhZ3Q6IGVyIGJla29tbXQgbmUgZWlnZW5lIHNlcXVlbnoKTWVwaGlzdG8ga29tbXQgYW4uCkRhbmNlciBzYWd0OiB1bmQgaXJnZW5kd2FubiB2ZXJ3aXJydCBzaWNoIGVlaW4gbGljaHRzdHJhaGwgZGFyYXVmLi4uLgpNZXBoaXN0byBzYWd0OiBoaQpDYXR3ZWF6bGUgc2FndDogZXIgd2lyZCBOSUNIVCB3aWVkZXJiZWxlYnQuLi4KRGFuY2VyIHNhZ3Q6IHVuZCBkcmF1ZiBzdGVodDogbmEgaWhyIHdpc3N0IHNjaG9uIDspCkRhbmNlciBncmluc3QuDQpEYW5jZXIgc2FndDogaGkgbWVwaGlzdG8gOi0pCkRhbmNlciBzYWd0OiBkYW5rZSBmdWVyIGRpZSBibHVtZW4gOikKTWVwaGlzdG8gc2FndDogc28gZWluZSBTY2guLi4uLiEKSm9mIHNhZ3Q6IEhpIE1lcGggOj0pCkRhbmNlciBzYWd0OiB3YXMgd2FyPwpEYW5jZXIgc2FndDogb2gKSm9mIHNhZ3Q6IFdpciBtdXNzdGVuIGJlaSBkZXIgSExNLVF1ZXN0IGFtIFdvY2hlbmVuZGUgVGhlYXRlciBzcGllbGVuCkpvZiBzYWd0OiBKb2Ygd2Fyc3QgZWluIEhhdXB0YWt0ZXVyLCBNZXBoaXN0byAhCkRhbmNlciBncmluc3QuCkpvZiBzYWd0OiBDYXR3ZWF6bGUgaGF0IGRpY2ggZ2VzcGllbHQKQ2F0d2VhemxlIG5pY2t0IE1lcGhpc3RvIHp1LgpNZXBoaXN0byBzYWd0OiBJbndpZWZlcm4/OikKQ2F0d2VhemxlIHNhZ3Q6IGljaCB3YXIgZHUgOikKQ2F0d2VhemxlIGtpY2hlcnQgdmVyZ251ZWd0LgpNZXBoaXN0byBuaWNrdCB6dXN0aW1tZW5kLgpEYW5jZXIgZ2lidCBlaW4gYWxiZXJuZXMgS2ljaGVybiB2b24gc2ljaC4KSm9mIHNhZ3Q6IFdpciBtdXNzdGVuIGVpbmUgVG9kZXNzZXF1ZW56IHNwaWVsZW4KSm9mIGtpY2hlcnQuIChXaWUgYWxiZXJuIHZvbiBEaXIpCkRhbmNlciBncmluc3QuCkNhdHdlYXpsZSBzYWd0OiB1bmQgaWNoIGJpbiB1ZWJlciBkaWUgS2xpbmdlIGdlaHVlcGZ0IDopCkRhbmNlciBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KSm9mIHNhZ3Q6IG5laW4gdWViZXIgREVOIEtMSU5HRQpNZXBoaXN0byBzYWd0OiB1bmQgZGEgaGFidCBpaHIgbWljaCBnZW5vbW1lbixvZGVyOikKQ2F0d2VhemxlIHNhZ3Q6IGRhcyBoZWlzc3QgRFUgYmlzdCB1ZWJlciBkaWUgS2xpbmdlIGdlaHVlcGZ0IC4uLi4KQ2F0d2VhemxlIG5pY2t0IE1lcGhpc3RvIHp1LgpKb2Ygc2FndDogTmEgd2VuIGRlbm4gc29uc3QsIGhtID8KTWVwaGlzdG8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkRhbmNlciBzYWd0OiBkYSBoYWIgaWNoIHdhcyB2ZXJwYXNzc3QgOi0pKQpEYW5jZXIgZ3JpbnN0LgpNZXBoaXN0byBzYWd0OiBTY2hhZGUsZGFzcyBpY2ggbmljaHQgc2VsYmVyIGRvcnQgd2FyCkNhdHdlYXpsZSBuaWNrdCBEYW5jZXIgaGVmdGlnIHp1LgpNZXBoaXN0byBncmluc3QuCkNhdHdlYXpsZSBzYWd0OiBoYXNkdCBkdQpDYXR3ZWF6bGUgZ3JpbnN0IGJyZWl0LgpEYW5jZXIgbGFlY2hlbHQgQ2F0d2VhemxlIGFuLgpKb2Ygc2FndDogS0xJTkdFIGhhdCBzaWNoIGZyZWl3aWxsaWcgenVoIGRydWViZXJodWVwZmVuIGF1ZiBkZW4gUmFzZW4gZ2VsZWd0CkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpEYW5jZXIgc2FndDogd2FyIGFiZXIgYXVjaCBzbyBzYXVndXQgOi0pCkNhdHdlYXpsZSBuaWNrdCBKb2YgenUuCkNhdHdlYXpsZSBzYWd0OiB3YXIgemllbWxpY2ggc2Nod2llcmlnIGlobiBkYXp1IHp1IHVlYmVycmVkZW4gOikKSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkRhbmNlciBncmluc3QuCkpvZiBzYWd0OiBKZWRlbmZhbGxzIGFscyBlciBob2VydGUgZGFzIGNhdCBkYXMgbWFjaGVuIHNvbGx0ZQpDYXR3ZWF6bGUgc2FndDogdGphLCB1bmQgZGFubiBiaW4gaWNoIHVlYmVyIGlobiBkcnVlYmVyIApnZXNwcnVuZ2VuLi4uCkpvZiBzYWd0OiBFciBzY2hhdXRlIGF1ZiBDYXRzIGJhdWNoIHVuZCB3b2xsdGUgc2ljaCB3ZWlnZXJuCkNhdHdlYXpsZSBzYWd0OiB1bmQgdW5kIGpvZiBhbGlhcyB0b2Qgc2FndGU6CkpvZiBraWNoZXJ0LgpDYXR3ZWF6bGUgc2FndDogW1RvZDpdIE1lcGhpc3RvIGlzdCBncmFkZSB1ZWJlciBkaWUgS2xpbmdlIApnZWh1ZXBmdC4KTWVwaGlzdG8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkRhcyBQcmVzYXkgdm9uIEpvZiBpc3QgamV0enQgZ2VzZXR6dCBhdWY6IFRvZApKb2Yga2ljaGVydC4KRGFuY2VyIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpKb2Ygc2FndDogTmVpbiBzdGltbXQgbmljaHQKTWVwaGlzdG8gd2FlbHp0IHNpY2ggdm9yIExhY2hlbiBhdWYgZGVtIEJvZGVuLgpNZXBoaXN0byBzYWd0OiB3YXMgZGFubgpEYW5jZXIgYXJnbHQgZWluIHdlbmlnIHZvciBzaWNoIGhpbi4KSm9mIHNhZ3Q6IFtUb2Q6XSBNZXBoaXN0byBpc3QgZ3JhZGUgdWViZXIgZGVuIEtMSU5HRSBnZXNwcnVuZ2VuLgpDYXR3ZWF6bGUgc2FndDogZWluIGhlaWRlbnNwYXNzIHdhciBkYXMgLi4uCkpvZiBzYWd0OiBoZWlkZW5laQpNZXBoaXN0byBzYWd0OiBrYW5uIGljaCBtaXIgdm9yc3RlbGxlbgpDYXR3ZWF6bGUgc2FndDogZGFzIHByZXNheSBpc3QgZmFsc2NoIC4uLi4KSm9mIHNhZ3Q6IERhbm4gc2FndGUgaWNoOiBLb21tIG1pdCBtaXIsIFN0ZXJibGljaGVyIC0gYWJlciBkdSBrZW5uc3QgZGFzIGphCkpvZiBzYWd0OiBzY2hvbgpKb2Ygc2FndDogTmFqYSB1bmQgZGFubiBkYXMgdWVibGljaGUKRGFuY2VyIGFyZ2x0IGVpbiB3ZW5pZyB2b3Igc2ljaCBoaW4uCk1lcGhpc3RvIHNhZ3Q6IG5hdHVlcmxpY2gsYWJlciBkYXMgaGF0IHNjaWggamEgZ2VhZW5kZXJ0CkNhdHdlYXpsZSBuaWNrdCB6dXN0aW1tZW5kLgpKb2Ygc2FndDogTEFSUyBhbGlhcyBLaXJrIGthbSBhbgpKb2Ygc2FndDogRmx1ZXN0ZXJ0ZSBtaXQgenU6IEhleSwgZGllc21hbCBiZWhhbHRlbiB3aXIgZGVuCkNhdHdlYXpsZSBzYWd0OiB3YXJ0ZSAsZGFzIGJlc3RlIGtvbW10IGphIG5vY2ggOikKQ2F0d2VhemxlIG5pY2t0IEpvZiB6dS4KQ2F0d2VhemxlIGtpY2hlcnQgZnJvZWhsaWNoLgpKb2Ygc2FndDogV2FzIGVjaHQgPyBNZWluc3RlIGRhcyBlcm5zdCwgZnJhZyBpY2ggc28KTWVwaGlzdG8gZ3JpbnN0LgpKb2Ygc2FndDogSmF1LCBzYWd0IExhcnMKSm9mIHNhZ3Q6IERpZXNtYWwgd2FyIGVpbm1hbCB6dSB2aWVsCkRhbmNlciBncmluc3QuCkpvZiBzYWd0OiBOYWphIHVuZCBkYW5uIGhhYmVuIHdpciBDYXQgdmVyYnVkZGVsdApNZXBoaXN0byBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KSm9mIHNhZ3Q6IFN5bWJvbGlzY2gsIHZlcnN0ZWh0IHNpY2gKQ2F0d2VhemxlIHNhZ3Q6IHVuZCB3aXIgaGFiZW4gdmVyZ2Vzc2VuIGBHQU1FT1ZFUmAgenUgc2FnZW4gLi4uLi4KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCk1lcGhpc3RvIG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBzYWd0OiBUamFqYSA6KQpNZXBoaXN0byBsYWNodCB3aWUgSm9mLCB3ZW5uIGVyIG1hbCBuaWNodCBpZGxldC4KQ2F0d2VhemxlIHNhZ3Q6IGFsc28gbWVwaCwgd2VubiBkdSBkYXMgbmFlY2hzdGUgbWFsIHN0aXJic3QsIHdlaXNzdCBkdSBqYSwKQ2F0d2VhemxlIHNhZ3Q6IHdhcyBkaWNoIGVyd2FydGV0IDopCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpNZXBoaXN0byBuaWNrdCB6dXN0aW1tZW5kLgpDYXR3ZWF6bGUga2ljaGVydCBmcm9laGxpY2guCk1lcGhpc3RvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkpvZiBzYWd0OiBKYSBnZXJhZGUgZWluZ2ViYXV0CkNhdHdlYXpsZSBzYWd0OiBHQU1FIE9WRVIgOikpCkpvZiBzYWd0OiBEZXIgVG9kIHp3aW5ndCBEaWNoIHp1OiBzZWxic3Rsb2VzY2h1bmcKSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBzYWd0OiBydXV1dXVtcyB1bmQgZW5kZQpNZXBoaXN0byBzYWd0OiBib2VzYXJ0aWchIApDYXR3ZWF6bGUgc2FndDogQ29ubmVjdGlvbiBjbG9zZWQgYnogZm9yZWlnbiBob3N0IDopCk1lcGhpc3RvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkNhdHdlYXpsZSBzYWd0OiBoZSwgam9mLCBlciBnbGF1YnQgdW5zIG5pY2h0IC4uLi4KSm9mIHNhZ3Q6IEhtIHNvbGxuIHdpciBpaG4gemFwcGVuID8KTWVwaGlzdG8gc2NodWV0dGVsdCBkZW4gS29wZi4KSm9mIHNhZ3Q6IERlbW9oYWxiZXIgPwpDYXR3ZWF6bGUgbmlja3QgRGlyIGhlZnRpZyB6dS4KQ2F0d2VhemxlIGdyaW5zdCBicmVpdC4KSm9mIHNhZ3Q6IFdlciBtYWNodHMgPwpKb2Ygc2FndDogTWFjaCBkdQpDYXR3ZWF6bGUgc2FndDogSkFBQUE8IFpBUFBFTiEhIQpKb2Ygc2FndDogSWNoIGhhYiBzY2hvbiBzbyB2aWVsZSBQbGF5ZXJraWxscwpKb2Ygc2FndDogRHUgYnJhdWNoc3Qgbm9jaCBuIHBhYXIKTWVwaGlzdG8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkpvZiBzYWd0OiBIYXN0IGRlaW4gU29sbCBub2NoIG5pY2h0IGVyZnVlbGx0CkNhdHdlYXpsZSBzYWd0OiBlY2h0LCBzb2xsIGljaCAsIGRhbm4gaGFiIGljaCBkaWNoIGJhbGQgZWluZ2Vob2x0CkpvZiBzYWd0OiBOZWluIG5laW4KSm9mIHNhZ3Q6IExhcwpDYXR3ZWF6bGUgc2FndDogb2NoIGJpdHRlZWVlZWVlZWUKSm9mIHNhZ3Q6IHdpciB0cmFuc2VuIGlobiBuYWNoIHVudGVuIGluIHJvY2h1cyBzY2hhY2h0CkNhdHdlYXpsZSBuaWNrdCB3aWxkLgpDYXR3ZWF6bGUgc2FndDogYXVjIGhndXQKQ2F0d2VhemxlIGdyaW5zdCBkYWVtb25pc2NoLgpKb2Ygbmlja3QgenVzdGltbWVuZC4KTWVwaGlzdG8gc2FndDogV2FzIHdpcmQgZGFzIGRhbm4gd2VubnMgZmVydGlnIGlzdD8KSm9mIHNhZ3Q6IERhcyBoaWVyPwpDYXR3ZWF6bGUgc2FndDogZWluIHBsYXllcmtpbGwgbmF0dWVybGljaC4KSm9mIHNhZ3Q6IE5hIGRlaW4gRW5kZQpNZXBoaXN0byBzYWd0OiBBY2hzbyx3ZW5ucyBuaWNodCBtZWhyIGlzdApBbnRoZWEgc2Nod2ltbXQgaGVyZWluLgpKb2Ygc2FndDogU293YXMgd2lsbCBnZXBsYW50IHNlaW4gIQpKb2Ygc2FndDogSGlsZnN0IGR1IGF1Y2ggbWl0LCBBbnRoZWEgPwpGdWVyc3RpbiBBbnRoZWEgc2FndDogYWVoLCB3YXM/CkpvZiBzYWd0OiBXaXIgd29sbGVuIE1lcGggc3RpbHZvbGwgdW1icmluZ2VuCkNhdHdlYXpsZSBzYWd0OiBzb2xsIGljaCBtYWwgcnVmZW4gam9mPyBgTWVwaGlzdG8gaXN0IHZvZ2VsZnJlaSwgamVkZXIgZGVyCkNhdHdlYXpsZSBzYWd0OiBzY2hvbiBpbW1lciBtYWwgZWluZW4gcGxheWVyIGtpbGxlbiB3b2xsdGUsIGRhcmYgZXNqZXR6dApDYXR3ZWF6bGUgc2FndDogdW5nZXN0cmFmdCB0dW5gID8KSm9mIHNhZ3Q6IFdlaWxzIHNlaW4gbGV0enRlciB0b2QgaXN0CkpvZiBzYWd0OiBkdSBrZW5uc3QgZGFzIGphLCBITE0tUXVlc3QKTWVwaGlzdG8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkpvZiBzYWd0OiBFSU5GQUNIIG51ciB6YXBwZW4gaXMgYmxvZWQKQ2F0d2VhemxlIG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBzY2h1ZXR0ZWxzdCBkZW4gS29wZi4KRnVlcnN0aW4gQW50aGVhIHNhZ3Q6IHNvbGxlbiB3aXIgaWhuIHZlcmdpZnRlbj8gZGFzIGdlaHQgc28gCnNjaG9lbiBsYW5nc2FtIDspCkpvZiBzYWd0OiBOZWluLCB3aXIgbGFlaG1lbiBpaG4gdm9yaGVyCkNhdHdlYXpsZSBzYWd0OiBqZWRlciBkYXJmIGRyZWkgbWFsIGRyYXVmIGhhdWVuLCB1bmQgd2VyIGlobiBlbmRndWVsdGlnCkNhdHdlYXpsZSBzYWd0OiBlcndpc2NoICwgZGVuIG1hY2hlbiB3aXIgenVtIG1hZ2llciAuLi4uLgpKb2Ygc2FndDogZWluIHNjaGxhZyA1MCBNdWVuemVuCkNhdHdlYXpsZSBuaWNrdCB6dXN0aW1tZW5kLgpDYXR3ZWF6bGUgc2FndDogNTAwMApKb2Ygc2FndDogWnUgdGV1ZXIKTWVwaGlzdG8gbGFjaHQgd2llIEpvZiwgd2VubiBlciBtYWwgbmljaHQgaWRsZXQuCkNhdHdlYXpsZSBzYWd0OiBuZSwgZGFzIGlzdCBnZW5hdSByaWNodGlnLCBzb2xsIGphIHNjaG9uIHdhcyBrb3N0ZW4sIGRhcwpDYXR3ZWF6bGUgc2FndDogbWFnaWVyd2VyZGVuCkNhdHdlYXpsZSBzYWd0OiBzYWdlbiB3aXIgMjAwMApKb2Ygc2FndDogT2RlciB3aXIgbGFzc2VuIGlobiBlaW5mYWNoIGxhdWZlbgpKb2Ygc2FndDogZXIgc3RpcmJ0IGF1Y2ggdm9uIGFsbGVpbmUKQ2F0d2VhemxlIHNhZ3Q6IGphYWEsIHNwaWVzc3J1dGVuIGxhdWZlbiA6KQpGdWVyc3RpbiBBbnRoZWEgc2FndDogZWJlbiwgZnJ1ZWhlciBvZGVyIHNwYWV0ZXIgOykKTWVwaGlzdG8gc2FndDogbm9lCkpvZiBzYWd0OiBlaGVyIGZydWVoZXIKSm9mIHNhZ3Q6IGVzIGlzdCBtZXBoaXN0byAhIQpGdWVyc3RpbiBBbnRoZWEgc2FndDogd2lyIGtvZW5uZW4gZXMgamEgYXVjaCBzbyBtYWNoZW4uLi4uIApGdWVyc3RpbiBBbnRoZWEgc2FndDogRXIgbGFldWZ0IGpldHp0IGR1cmNoIGRpZSBnZWdlbmQsIHVuZCBpcmdlbmR3YW5uCkZ1ZXJzdGluIEFudGhlYSBzYWd0OiBzY2hsYWVndCBtYWwgZWluZXIgenUuIHVuZCBlciB3ZWlzcyBuaWNodCB3YW5uLi4uLgpNZXBoaXN0byBzYWd0OiBORUlJSUlJTiEKRnVlcnN0aW4gQW50aGVhIHNhZ3Q6IG1hbCBzY2hhdW4sIHdhbm4gZXIgc2ljaCBhbiBkaWUgbmFlY2hzdGUgcXVlc3Qgd2FndCA7KQpNZXBoaXN0byBzYWd0OiBkYXMgaXMgdW5mYWlyIQpNZXBoaXN0byBzYWd0OiBiZXN0aWFsaXNjaC4uZGllc2UgdW5nZXdpc3NoZWl0IQpDYXR3ZWF6bGUgc2FndDogaWNoIGtvZW5udGUgZWluIHJhbmRvbSBjYWxsX291dCBzdGFydGVuLCBkZXIgaWhuIGRhbm4gemFwcGVkCk1lcGhpc3RvIHNhZ3Q6ID8KSm9mIHNhZ3Q6IFNjaGFyZiBkYW5uIHdpc3NlbiBuaWNodCBtYWwgd2lyLCB3YW5ucyBwYXNzaWVydApDYXR3ZWF6bGUgbmlja3QgenVzdGltbWVuZC4KQ2F0d2VhemxlIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpKb2Ygc2FndDogU3Bhbm5lbmQgIQpKb2Ygc2FndDogSGFzdGUgPwpDYXR3ZWF6bGUgc2FndDogYXVmcmVnZW5kIQpDYXR3ZWF6bGUgc2FndDogbW9tCk1lcGhpc3RvIHNhZ3Q6IG5peCBzcGFubmVuZCAsZmFzdCBzbyBkb29mIHdpIEpvLi46KSkKSm9mIHNhZ3Q6IEhhc3RlID8KRnVlcnN0aW4gQW50aGVhIHNhZ3Q6IGJhdW4gd2lyIGVpbmUgc25vb3BrZXR0ZSBhdWYsIGRhbWl0IAp3aXIgZXMgbWl0a3JpZWdlbj8KSm9mIHNhZ3Q6IEhhc3RlID8KSm9mIG5pY2t0IHp1c3RpbW1lbmQuCkNhdHdlYXpsZSBzYWd0OiBzbyxmZXJ0aWcKTWVwaGlzdG8gc2FndDogd2FzIHNvbGwgZGFzIGpldHo/CkpvZiBzYWd0OiBTY2hhcmYKQ2F0d2VhemxlIHNhZ3Q6IDUwMDAgc2VrdW5kZW4gcGx1cyByYW5kb20gNTAwMDAwIHNla3VuZGVuIDopCkpvZiBzYWd0OiByYW5kb20od2lldmllbD8pCk1lcGhpc3RvIHNhZ3Q6IHVuZCB3ZXIgZ2FyYW50aWVydCBkYXNzIGljaCBuaWNodCBzY2huZWxsZXIgCmJpbj8KQ2F0d2VhemxlIHNhZ3Q6IGFuZGVydGhhbGJzdHVuZGVuIGhhc3RlIGF1ZiBqZWRlbiBmYWxsIG5vY2ggOikKTWVwaGlzdG8gc2FndDogQmVzdGllbixtYWNocyBzY2huZWxsZXIKQ2F0d2VhemxlIHNhZ3Q6IG9oLCBzdGltbXQKRnVlcnN0aW4gQW50aGVhIHNhZ3Q6IGFuZGVydGhhbGIgc3R1bmRlbj8KQ2F0d2VhemxlIHNhZ3Q6IG1vbQpNZXBoaXN0byBzYWd0OiA1MDAwIHNlYwpDYXR3ZWF6bGUgc2FndDogc28sIDEwMDAgcGx1cyByYW5kb20gMTAwMDAwCkZ1ZXJzdGluIEFudGhlYSBzYWd0OiBobS4uLiBkYSBiaW4gaWNoIGphIHNjaG9uIGVoZXIgenUgaGF1c2UsIGFscyB3aWUgZGVyCkZ1ZXJzdGluIEFudGhlYSBzYWd0OiB6YXAgYW5rb21tdC4uLi4KQ2F0d2VhemxlIHNhZ3Q6IG1hY2ggZGlyIGtlaW5lIHNvcmdlbiwgaWNoIGxvZyBkYXMgc2Nob24KQW50aGVhIGtpY2hlcnQgbWVlcmp1bmdmcmFldWxpY2guCkNhdHdlYXpsZSBzYWd0OiAxMDAwMDAgc2VrdW5kZW4sIGRhcyBzaW5kIC4uLi4KSm9mIHNhZ3Q6IG1laHIgYWxzIGVpbiBUYWcgIQpNZXBoaXN0byBzYWd0OiBtZWhyIGFscyBlaW4gdGFnCkNhdHdlYXpsZSBzYWd0OiBtYXhpbWFsIGNhLiAyOCBzdHVuZGVuCkNhdHdlYXpsZSBzYWd0OiBoYWNoIGlzdCBkYXMgYXVmcmVnZW5kIDopCkZ1ZXJzdGluIEFudGhlYSBzYWd0OiBhbHNvLCBtZXBoaXN0bywgZHUgd2lyc3Qgd29obCBlaW5lbiBuZXVlbiByZWtvcmQgaW0KRnVlcnN0aW4gQW50aGVhIHNhZ3Q6IGRhdWVybXVkZGVuIGF1ZnN0ZWxsZW4uLi4uLi4gOykKTWVwaGlzdG8gc2FndDogdW5kIGRhbm4ga29tbXQgZWluIHphcCxvZGVyIHdpZT8KQ2F0d2VhemxlIG5pY2t0IHp1c3RpbW1lbmQuCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpDYXR3ZWF6bGUgbmlja3Qgd2lsZC4KTWVwaGlzdG8gc2FndDogZGVuIGhhYiBpY2ggc2Nob24sMzEgaApNZXBoaXN0byBnZWh0IG5hY2ggTm9yZGVuLgpDYXR3ZWF6bGUgc2FndDogamFqYSwgYWJlciBkdSBtdXNzdCBpbiBkZXIgWmVpdCBtYWdpZXIgd2VyZGVuIHVtIGRlbiBjYWxsX291dApDYXR3ZWF6bGUgc2FndDogcmVjaHR6ZWl0aWcgenUgc3RvcHBlbiAuLi4uCkNhdHdlYXpsZSBzYWd0OiBkdSBqb2YsIGRhcyBzb2xsdGVuIHdpciBvZWZ0ZXIgbWFjaGVuLCBkYXMgc3Bvcm50IHVuZ2VtZWluIGFuCkNhdHdlYXpsZSBzYWd0OiAuLi4uCkpvZiBuaWNrdCB6dXN0aW1tZW5kLgpbVG9kOl0gRWluIEdvYmxpbiBoYXQgZ2VyYWRlIE1lcGhpc3RvIHVtZ2VicmFjaHQuCgpbL3BsYXllcnMva2lyay93b3Jrcm9vbV0KCllvdXJzIHRydWx5LAogICAgICBDYXR3ZWF6bGUKICAgICBtaXQgVW50ZXJzdHVldHp1bmcgdm9uIEpvZgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGFydGlrZWwgVG9kZXNzZXF1ZW56ZW4gdW5kIE1lcGhpc3RvIChZZXRpLCAyNC4gQXVnIDE5OTQsIDExOjEyOjM3KToKKmdyaW5zIC9icmVpdCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLi4gKERhbmNlciwgMjQuIEF1ZyAxOTk0LCAxOToxMzo0Mik6CkhlaGUuLi5hYmVyIEpvZiBoYXQgbWFsIHdpZWRlciAgZGVuIFRlaWwgcmF1c2dlbGFzc2VuLCB3byB3aXIgdW5zIHVlYmVyCmVpbmUgS3VsdHVyLVJ1YnJpayB1bnRlcmhhbHRlbiBoYWJlbiwgaW4gZGllIGplZGVyIHNlaW5lIEdlZGljaHRlIHN0b3BmZW4Ka29lbm50ZS4uLi4uIDotKQoKJ0xldXRlIGljaCBzYWdzIEV1Y2gsIGRlciBNci4gSm9maSwKIGlzdCBlaW4gbmV0dGVyLCBrbGVpbmVyIC4uLi4uJwoKRGllc21hbCBlcmdhZW56ZSBpY2ggZGVuIFJlc3QgbmljaHQsIHNvbnN0IGtyaWVnIGljaCBzaWUgd2llZGVyIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZldGVuLXF1b3RlcyAoSG9ibywgMjUuIEF1ZyAxOTk0LCAxNjoxMDoyMCk6CkZvcnRzZXR6dW5nOgpBbSBTb25udGFnIGRhbmFjaCBzcGllbGVuIHdpciBLYXJ0ZW46IGNoYW90aXNjaCB3aWUgc29uc3Qgd2FzLi4uCklyZ2VuZHdhbm4gZnJhZyBpY2ggSm9uYXM6IFdhcnVtIGhhc3QgZHUgZGFzIGdlbWFjaHQ/CkpvbmFzOiB3ZWlsIGljaCBjb29sIGJpbi4KOikpKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW0gS3JhbmtlbmhhdXMgKFN0cm91Y2tpLCAyNS4gQXVnIDE5OTQsIDIwOjIxOjExKToKRGllc21hbCBrZWluIEp1ZGVud2l0ei4uLgoKR2VodCBkZXIgYWx0ZSBIZXJyIEdlbmVyYWwgaW5zIEtyYW5rZW5oYXVzIHp1ciBVbnRlcnN1Y2h1bmcuCkRpZSBTY2h3ZXN0ZXIgZnVlaHJ0IGlobiBpbiBlaW4gVW50ZXJzdWNodW5nc3ppbW1lciB1bmQKbW9lY2h0ZSwgZGFzcyBkZXIgR2VuZXJhbCBzZWluIEhlbWQgdW5kIHNlaW5lIEphY2tlIGF1c3ppZWh0LgpOYWNoZGVtIGVyIGRpZXMgZ2V0YW4gaGF0dGUsIHNhZ3QgZGllIFNjaHdlc3RlciB6dXIgQXVmbXVudGVydW5nOgoiQm9haCwgSGVyciBHZW5lcmFsLCB0b2xsZSBCcnVzdCEgU2ljaGVyIG1hbCB2b2xsZXIgT3JkZW4gZ2V3ZXNlbiEiCkRlciBhLkQuIGJlZ3Vja3QgZGllIFNjaHdlc3RlciB2b24gb2JlbiBiaXMgdW50ZW4gdW5kIGVyd2lkZXJ0OgoiTWVuc2NoLCBTY2h3ZXN0ZXIhIFRvbGxlIFBlbGxlISBTaWNoZXIgbWFsIHZvbGxlciBGbGVpc2NoIGdld2VzZW4hIgoKR3J1c3MsClN0cm91Y2tpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVcnNhY2hlIHVuZCBXaXJrdW5nIDotKSAoUnVtYXRhLCAyNi4gQXVnIDE5OTQsIDE2OjM1OjExKToKRUluZnVlaHJ1bmcgaW4gZGllIFN6ZW5lLiBJY2ggdW50ZXJoYWx0ZSBtaWNoIG1pdCBTbWF1ZyB1ZWJlciBHdWxkYXJoaWwsCmVpbmVtIFNwaWVsZXIsIGRlciBuaWNodHMgd2VpdGVyIHR1dCwgYWxzIExldXRlIHp1IGJlbGVpZGlnZW4uLi4KCkR1IHRlaWxzdCBTbWF1ZyBtaXQ6IGR1IG11ZXNzdGVzdCBkb2NoIGluIHNpY2h0d2VpdGUgdm9uIG9ya2FuIHNpdHplbiwgd2llCkR1IHRlaWxzdCBTbWF1ZyBtaXQ6IGFsdCBpc3QgZGVyIGVpZ2VudGxpY2ggPwpTbWF1ZyB0ZWlsdCBEaXIgbWl0OiBzY2hhZXR6ZSBzbyAxNgpEdSB0ZWlsc3QgU21hdWcgbWl0OiB1bmQgZHUgPwpTbWF1ZyB0ZWlsdCBEaXIgbWl0OiAyMiB1bmQgZHU/CkR1IHRlaWxzdCBTbWF1ZyBtaXQ6IDI1LCB3aWUga29tbWVuIGRpZSBraWRkaWVzIGJlaSBldWNoIGlucyBSWiByZWluID8KU21hdWcgdGVpbHQgRGlyIG1pdDogaWNoIGhhYmUgYWJlciBuaWNodHMgbWl0IGlobSB6dSB0dW4hISEhIQpEdSB0ZWlsc3QgU21hdWcgbWl0OiBlcyBtYWcgdmllbGxlaWNodCBibG9lZCBrbGluZ2VuLCBhYmVyIHZpZWxsZWljaHQKRHUgdGVpbHN0IFNtYXVnIG1pdDogc29sbHRlc3QgZHUgbWFsIGplLG1hbmRlbiBhbmhhdWVuIChhdWZzaWNodCksIGRpZSBkZW4KRHUgdGVpbHN0IFNtYXVnIG1pdDogcmF1c2JlZnVlcmRlcm4KU21hdWcgdGVpbHQgRGlyIG1pdDogaGllciBnaWJ0cyBrZWluZSBhdWZzaWNodCwgc292aWVsIGljaCB3ZWlzcyA6KApEdSB0ZWlsc3QgU21hdWcgbWl0OiBpc3QgZXIgZ3JvZXNzZXIgYWxzIGR1ID8KU21hdWcgdGVpbHQgRGlyIG1pdDogemllbWxpY2ggZ2xlaWNoISA6KQpEdSB0ZWlsc3QgU21hdWcgbWl0OiBpc3QgZGEga2VpbiBoYXVzbWVpc3RlciBvZGVyIHNvIGJlaSBldWNoClNtYXVnIHRlaWx0IERpciBtaXQ6IHNjaG9uIGFiZXIgZ2FueiBhbSBhbmRlcmVuIGVuZGUgdm9tIGdlYmFldWRlCkR1IHRlaWxzdCBTbWF1ZyBtaXQ6IGR1IHd1ZXJkZXN0IHVucyBhbGxlbiBlaW5lbiBncm9zc2VuIGdlZmFsbGVuIHR1ZW4sIHdlbm4KRHUgdGVpbHN0IFNtYXVnIG1pdDogZHUgZGFmdWVyIHNvcmdlbiBrb2VubnRlc3QsIGRhc3MgZXIgYW4gZGllIGx1ZnQgZ2VzZXR6dApEdSB0ZWlsc3QgU21hdWcgbWl0OiB3aXJkCkR1IHRlaWxzdCBTbWF1ZyBtaXQ6IHZpZWxsZWljaHQgcmFpY2h0IGVzIHNvZ2FyIHNjaG9uLCB3ZW5uIGR1IGlobiBhdWYgZGllCkR1IHRlaWxzdCBTbWF1ZyBtaXQ6IGJlbnV0emVyb3JkbnVuZyBoaW53ZWlzdCBvZGVyIHNvClNtYXVnIHRlaWx0IERpciBtaXQ6IGhhYiBnZXJhZGUgZWluIHBhYXIgZXJuc3RlIHdvcnRlIG1pdCBpaG0gZ2VyZWRldCEKCmdvdG8gc21hdWcKCkR1IGJlZGFua3N0IERpY2ggYmVpIFNtYXVnLgpEdSBzYWdzdDogdW5kIHdhcyBzYWd0IGVyID8KU21hdWcgc2FndDogZXIgc2FndCBhbHMgb3JrYW4gaXN0IGVyIGJyYXYKRHUgc2Fnc3Q6IG5hamEgbGV1dGUgYW5rb3R6ZW4gdHUgZXIgbm9jaCBpbW1lcgpTbWF1ZyBzYWd0OiBlciBzYWd0IGRhc3MgZXIgd2VuaWdzdGVucyBrb3R6ZW4gd2lsbCEKRHUgc2Fnc3Q6IGRhbm4gc29sbCBlciBzaWNoIHp1aGF1c2UgYXVmbSBrbG8gZGVuIGZpbmdlciBpbiBkZW4gaGFscyBzdGVja2VuCkR1IHNhZ3N0OiBzY2hsaWVzc2xpY2ggd2lsbCBlciBhdWNoIG5pY2h0IGFuZ2Vrb3R6dCB3ZXJkZW4gOikgaW4gUkwgOikpCgoKVW5kIGpldHp0IGtvbW10J3MgISEhISA6LSkKClNtYXVnIHNhZ3Q6IGpldHp0IHJlZ3QgZXIgc2ljaCBhdWYgd2VpbCBpaG0ga2VpbmVyIGhpbGZ0IDopCkR1IHNhZ3N0OiB3b2hlciBtYWcgZGFzIG51ciBrb21tZW4KRHUgZmFlbmdzdCB2ZXJnZWJsaWNoIGFuIHp1IGRlbmtlbi4KS2xlaW5lIFJhdWNod29lbGtjaGVuIHN0ZWlnZW4gYXVmLi4uCkR1IHNhZ3N0OiBvaywgaWNoIGRlbmtlIGVyIGhhdCBqZXR6dCBiZWdyaWZmZW4sIHdpZSBkYXMgc3BpZWwgZnVua3Rpb25pZXJ0CkR1IHNhZ3N0OiB3ZW5uIGVyIHNpY2ggZGFuZWJlbiBiZW5pbW10IGthbm4gZXIgZ2VuYXVzb2d1dCBhbGxlaW5lIHNwaWVsZW4gOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdWVyIGFsbGUsIGRpZSBHYXVkaW1heCB2ZXJwYXNzdCBoYWJlbi4gKFRob3JpbiwgMjcuIEF1ZyAxOTk0LCAxNjo1NDo0MCk6CktvaGwgdW5kIFdhaWdsIHNpbmQgenVtIEVzc2VuIGJlaW0gYW1lcmlrYW5pc2NoZW4gUHJhZXNpZGVudGVuIGVpbmdlbGFkZW4uCk1pdHRlbiBiZWltIEVzc2VuIHNpZWh0IEtvaGwsIHdpZSBXYWlnbCBzZWluIEJlc3RlY2sgaW4gZGllIElubmVudGFzY2hlIHNlaW5lcwpTYWtrb3Mgc3RlY2t0LgonRHUsIFRoZW8sIHdhcyBtYWNoc3RlbiBkYSA/JwonSWNoIG5laG0gbWlyIEJlc3RlY2sgbWl0LCBmYWVsbHQgZGVuZW4gc293aWVzbyBuaWNodCBhdWYuLi4gTmltbSBEaXIgZG9jaAphdWNoIHdhcyBtaXQsIEhhbm5lbG9yZSB3aXJkIHNpY2ggZnJldWVuICEnCkdlc2FndCwgZ2V0YW4gZGVua3Qgc2ljaCBIZWxtdXQuIEVyIGdyZWlmdCB6dW0gQmVzdGVjaywga29tbXQgamVkb2NoCnVuZ2x1ZWNrbGljaCBnZWdlbiBzZWluIEdsYXMuLi4gJ0VpbmUgUmVkZScgc2NoaWVzc3QgaWhtIGR1cmNoIGRlbiBLb3BmLgonTWVpbmUgRGFtZW4gdW5kIEhlcnJlbiwgaWNoIHd1ZW5zY2hlIGd1dGVuIEFwcGV0aXQuJwpFciBzZXR6dCBzaWNoIHdpZWRlciwgZGllIE1lbmdlIGFwcGxhdWRpZXJ0IGRpZXNlciBzcG9udGFuZW4gUmVkZSB6dS4gQmVpbQpuYWVjaHN0ZW4gR2FuZyB2ZXJzdWNodCBlciBlcyB3aWVkZXIsIGFiZXIgd2llZGVyICdQbGluZycgLCBkYXMgR2xhcyBpc3QgaW0KV2VnLiBXYXMgbnVuIHR1biA/CidNZWluZSBEYW1lbiB1bmQgSGVycmVuLCBpY2ggbW9lY2h0ZSBpaG5lbiBlaW4gWmF1YmVya3Vuc3RzdHVlY2sgdm9yZnVlaHJlbi4nCkVyIG5pbW10IHNlaW4gQmVzdGVjayAsIHN0ZWNrdCBlcyBpbiBzZWluZSBJbm5lbnRhc2NoZS4nIEljaCBzdGVja2UgZGllc2VzCkJlc3RlY2sgaW4gbWVpbmUgSW5uZW50YXNjaGUsIHVuZCBob2xlIGVzIGJlaSBtZWluZW4gRnJldW5kIFRoZW8gd2llZGVyCmhlcnZvci4nICwgdW5kIGdyZWlmdCBUaGVvIGluCmRpZSBJbm5lbnRhc2NoZS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW1zdHVyemdlc3ByYWVjaGUgKFNvbmljLCAyOC4gQXVnIDE5OTQsIDEwOjMyOjE5KToKSGFsbG8sIGRhcyBpc3QgZWluZSBVbnRlcmhhbHR1bmcsIGRpZSBoZXV0ZSB1ZWJlciBkZW4gQWxsZ2VtZWluZXMKQ2hhbm5lbCBnZWtvbW1lbiBpc3QgOykgV2VyIHdpc3NlbiB3aWxsLCB3YXMgcGFzc2llcnQsIHdlbm4gZXMgaGllcgplaW5lbiBVbXN0dXJ6IGdpYnQgdW5kIGRpZSBNYWdpZXIgbmljaHQgbWVociBnZWJyYXVjaHQgd2VyZGVuLCBiaXR0ZQpsZXNlbiAqZ3JpbioKCltBbGxnZW1laW46Q2FyYWRocmFzXSBpY2ggc2FnIGphLCBrYXVtIHdlcmRlbiBzaWUgb2JlcnN0ZXIgR290dCBpbiBuZW0gbXVkLApbQWxsZ2VtZWluOkNhcmFkaHJhc10gc2Nob24gc2luZCBzaWUgYmxvZWRlCltBbGxnZW1laW46Q2FyYWRocmFzXSBvZW1tLi4uIGFsc28gSm9mIGlzdCBnbGF1YmUgaWNoIHNjaG9uIG4gRmV0dGZsZWNrCltBbGxnZW1laW46Q2FyYWRocmFzXSB1bmQgS2lyayBpbiBLYXNzYW5kcmFzIFR1cm0gZWluZ2VzcGVycnQKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGFlZWVlZWggSGlsYmVydHMKW0FsbGdlbWVpbjpHcmltbWJvcm5dIEtpcmsgaXN0IGluIEhpbGJlcnRzIFR1cm0gZWluZ2VrZXJrZXJ0Li4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBCb2luZyBpc3QgTEVJREVSIHZvbiBzZWluZW0gVHVybSBnZWZhbGxlbi4uLgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gd2FzIGhhdHRlbiB3aXIgbm9jaD8gUm9jaHVzIHNlaW5lbiBXZXNwZW4gdm9yZ2V3b3JmZW4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHp1bSBmcmFzcz8KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIEhhdGU/IFdlciBpc3QgaGF0ZT8KW0FsbGdlbWVpbjpHcmltbWJvcm4gbmlja3QgYmVnZWlzdGVydC5dCltBbGxnZW1laW46Q2FyYWRocmFzIGhhdCBkaWVzZW4gTmFtZW4gbm9jaCBuaWUgZ2Vob2VydC5dCltBbGxnZW1laW46R3JpbW1ib3JuIGlzdCBhdWNoIG5pY2h0IHNpY2hlci4gV2FyIHNvIGVpbiBJbnNwaXJhdGlvbnNwYXJ0aWtlbC4uLl0KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIEtvYmF5YXNoaSBoYWJlbiB3aXIgZWluZ2VidWRkZWx0Li4uIHNjaGxpZXNzbGljaCBpc3QgZXIKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGphIGVpbiBiYWV1bWNoZW4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGF1cyBWaXBlciBoYWJlbiB3aXIgbmUgSGFuZHRhc2NoZSBnZW1hY2h0Li4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBzY2hsYW5nZW5sZWRlciBpc3QgdG9sbApbQWxsZ2VtZWluOkNhcmFkaHJhc10gdW5kIFZyYWkgaW4gZWluIGxhYiBvaG5lIGV4aXRzIGdlc3BlcnJ0CltBbGxnZW1laW46R3JpbW1ib3JuXSBHYXRzYnkgd3VyZGUgenVsZXR6dCBpbSBaZW50cnVtIGVpbmVzIEh1cnJpY2FucwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gZ2VzaWNodGV0LiBBcm1lcyBXaXJiZWx3aW5kY2hlbi4uLiA7LSkKW0FsbGdlbWVpbjpDYXJhZGhyYXMgdHJvZXN0ZXQgR2F0c2J5IHVuZCBob2ZmdCwgZGFzcyBTb25pYyBuaWNodCBtaXRsb2dndCA6LSldCltBbGxnZW1laW46Q2FyYWRocmFzXSBmZWhsdCBub2NoIGplbWFuZD8KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGZlaGx0IG5vY2ggamVtYW5kPwpbQWxsZ2VtZWluOkNhcmFkaHJhc10gcG9zdGUgZXMgZG9jaApbQWxsZ2VtZWluOkNhcmFkaHJhc10ga2ljaGVyCltBbGxnZW1laW46Q2FyYWRocmFzXSB3ZW5uIGR1IGRpY2ggdHJhdXN0IDopCltBbGxnZW1laW46R3JpbW1ib3JuXSBUcm95IGhhYmVuIHdpciBiaXMgVW50ZXJrYW50ZSBOYXNlIGluIGVpbmVuIE1pc3RoYXVmZW4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIGdlc3RlY2t0LgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gaWVlZWVlaC4uLi4gamEsIGRlbiBiZWkgZGVyIEdlaWdlbnF1ZXN0CltBbGxnZW1laW46Q2FyYWRocmFzXSBiYWVoLCBUcm95IHN0aW5rdCBqZXR6dCBub2NoCltBbGxnZW1laW46R3JpbW1ib3JuIG5pY2t0IGJlZ2Vpc3RlcnQuXQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gdW5kIGFuc2NobGllc3NlbmQgc2FuZCBkcnVlYmVyIGdlc2NodWV0dGV0LCBkYXMga2xlYnQKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHNvIHNjaG9lbiBhdWYgU2NoLi4uIGFlZWguLi4gbWlzdApbQWxsZ2VtZWluOkdyaW1tYm9ybiBraWNoZXJ0IHNlbGlnLl0KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIFZyYWkuLi4uIHdhcyBtYWNoZW4gd2lyIG1pdCBWcmFpPwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gV1NldGhvcyBtdXNzIGF1ZiBlaW5lbSBGdXNzIGF1ZiBkZXIgU3BpdHplIGVpbmVyCltBbGxnZW1laW46R3JpbW1ib3JuXSBQeXJhbWlkZSBiYWxhbmNpZXJlbi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIG1hY2hlbiB3aXIgaWhuIHNvIGlycmUgZGFzcyBlciBpbW1lciBudXIgcnVtbGFldWZ0IHVuZApbQWxsZ2VtZWluOkNhcmFkaHJhc10gYnJhYmJlbHQ6ICJjJ2VzdCB2cmFpLCBjJ2VzdCB2cmFpIiA/CltBbGxnZW1laW46R3JpbW1ib3JuIGp1YmVsdCFdCltBbGxnZW1laW46Q2FyYWRocmFzXSBSb21pbGkgd2lyZCBnZWZlc3NlbHQgdW5kIGluIG5lbiBMb2V3ZW5rYWVmaWcgZ2VzcGVycnQsCltBbGxnZW1laW46Q2FyYWRocmFzXSBzaWUga3JpZWd0IGtlaW5lbiBUaWdlciBtZWhyIHp1bSBzdHJlaWNoZWxuIHVuZCBrcmF1bGVuCltBbGxnZW1laW46Q2FyYWRocmFzXSBkZXIgd2lyZCBhdXNzZXIgcmVpY2h3ZWl0ZSBnZWZlc3NlbHQgdW5kIGFsbGUgaGFhcmUKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGFiZ2VzY2huaXR0ZW4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHNjaG9uIG1hbCBuZW4gbmFja3RlbiB0aWdlciBnZXNlaGVuCltBbGxnZW1laW46Q2FyYWRocmFzXSA/CltBbGxnZW1laW46R3JpbW1ib3JuXSBBdSBqYSwgdW5kIERhbmNlciBrb21tdCBpbiBlaW5lbiBLYWVmaWcgbWl0IGxhdXRlcgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gVGFyYW50ZWxsZW4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBUYXJhbnRlbG4/CltBbGxnZW1laW46Q2FyYWRocmFzXSBmZWhsdCBub2NoIGplbWFuZD8KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHJ1bWF0YS4uLiBiaW5kZW4gd2lyIGFuIHNlaW5lbSByb2xsc3R1aGwgZmVzdCB1bmQKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGxhc3NlbiBpaG0gdm9tIG1vdW50IGV2ZXJlc3QgcnVudGVycm9sbGVuCltBbGxnZW1laW46R3JpbW1ib3JuXSBEZXIgaXN0IGd1dCEKW0FsbGdlbWVpbjpDYXJhZGhyYXMgbGFjaHQgaW4gc2ljaCByZWluLl0KW0FsbGdlbWVpbjpHcmltbWJvcm5dIFNvbmljIGJla29tbXQgU2llYmVubWVpbGVuc3RpZWZlbCBhbmdlc2Nod2Vpc3N0LiBEYW5uCltBbGxnZW1laW46R3JpbW1ib3JuXSBzYXVzdCBlciBpbW1lciBkdXJjaCBkaWUgR2VnZW5kLi4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBub2NoIGplbWFuZD8gUHVtYSB3aXJkIG1pdCB6dWNrZXJ3YXNzZXIgdWViZXJnb3NzZW4sIGFuCltBbGxnZW1laW46Q2FyYWRocmFzXSBuZW4gcGZhaGwgZ2VidW5kZW4gdW5kIGF1ZiBuZW4gcGZhZCBtaXQgbGF1dGVyCltBbGxnZW1laW46Q2FyYWRocmFzXSBtb2VyZGVyYW1laXNlbiBnZWJ1bmRlbgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRnJldW5kIGtvZW5udGVtIHdpciBtaXQgU2NoZXJpZmZzdGVybmVuIGJlc2NobWVpc3Nlbi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGFlaCBwZmFobC4uLiBpbiBlaW5lbSBwZmFkCltBbGxnZW1laW46R3JpbW1ib3JuIGp1Y2h6dC5dCltBbGxnZW1laW46Q2FyYWRocmFzXSBsaWViZXIgc2h1cmlrZW5zIGZ1ZXIgRnJldW5kLi4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBkaWUgcGlla3NlbiBiZXNzZXIKW0FsbGdlbWVpbjpHcmltbWJvcm5dIFphcmRveiBiZWtvbW10IGFsbGUgc3RhdHMgYXVmIGVpbnMgZ2VzZXR6dCB1bmQgbXVzcwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gZGFubiBpbiBkZW4gSGltbWVsLgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQW50aGVhIHNjaGlja2VuIHdpciBpbiBlaW5lIFd1ZXN0ZSBvaG5lIE9hc2UuCltBbGxnZW1laW46Q2FyYWRocmFzXSB1bmQgT2xwcC4uLiBobW1tLCBpcmdlbmR3YXMgcGVydmVyc2VzIG11ZXNzZW4gd2lyIG1pdApbQWxsZ2VtZWluOkNhcmFkaHJhc10gZGVtIGluIGRlciB3dWVzdGUgbWFjaGVuLi4uIGViZW4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIEluIFd1ZXN0ZW4gZ2lidHMgU2tvcnBpb25lLi4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBzdGVsbCBkaXIgbWFsIHZvciwgQW50aGVhIHVuZCBPbHBwLi4uIGRlciBlaW5lIGxvZXN0CltBbGxnZW1laW46Q2FyYWRocmFzXSBzaWNoIGxhbmdzYW0gaW4gd2Fzc2VyIGF1Zi4uLiBkaWUgYW5kZXJlIHZlcmR1bnN0ZXQKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGxhbmdzYW0gd2VpbCB6dSB3ZW5pZyB3YXNzZXIgZGEgaXN0ISBwZXJ2ZXJzCltBbGxnZW1laW46R3JpbW1ib3JuXSBIaWdobGFuZGVyIGdpYnQgZWluIHByaW1hIEJyYXRoYWVuY2hlbiBhYi4gQmlzY2hlbiB6YWVoCltBbGxnZW1laW46R3JpbW1ib3JuXSB2aWVsbGVpY2h0LCBhYmVyIHNvbnN0Li4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBpbiBkZW0gYWx0ZXI/Pz8/Pz8/PyBpZWVlZWVlZWVlZWVlaApbQWxsZ2VtZWluOkNhcmFkaHJhc10gZGVuIHd1ZXJkIGljaCBuaWNodCBtYWwgbWVpbmVyIG9tYSB6dW0gZXNzZW4gYW5iaWV0ZW4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGljaCBnbGF1YiBkZXIgbXVzcyBhdWYgZGVuIEJpb211ZWxsIGRhbm4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIFdhcyB3aWxsc3QgRHU/IEljaCBiaW4gZGV1dHNjaGUgTWVuc2EgZ2V3b2VobnQuIEljaApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gZXNzZSBpbW1lciBUaWVyZSwgZGllIGFlbHRlciB3YXJlbiBhbHMgaWNoIQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gbmEgZ3V0Li4uIERlciBnZWJyYXRlbmUgZ3JlaWYgd2lyZCBub2NoIGFuIHNlaW5lbiBTb2huCltBbGxnZW1laW46Q2FyYWRocmFzXSB2ZXJmdWV0dGVydApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQmxlaWJ0IGluIGRlciBGYW1pbGllLCBlYmVuLgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gd2llIGluIHJvY2t5IGhvcnJvciBwaWN0dXJlIHNob3cuLi4gInRvIGFic2VuZCBmcmllbmRzIgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gYXVjaCB3ZW5uIG1hbiBlcyBhYnNlbnQgc2NocmVpYnQuLi4uIGFiZXIgbWFjaHQgaGV1dGUKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIG5pY2h0cwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSXN0IG1pciBqYSBkZXJtYXNzZW4gcGllcHMgaGV1dGUuLi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGZ1ZXIgR3VtIG5vY2ggZWluIEd1bW1pc2VpbC4uLiBkYXMgYmluZGVuIHdpciBhbiBkZW4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGhvZWNoc3RlbiBnaXBmZWwgZGVzIGRzY2h1bmdlbHMgdW5kIGxhc3NlbiBpaG4gaW1tZXIKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGJ1bmdlZS1zY2hhdWtlbG4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIEljaCB3ZWlzcyEhIExvY28gd2lyZCBtaXQgZGVyIEJ1bmRlc3Bvc3QgdmVyc2NoaWNrdC4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIE11ZGRlbiBudXIgbm9jaCB1ZWJlciBCcmllZmUgbmFjaCBNdWVuc3Rlci4uLgpbQWxsZ2VtZWluOkNhcmFkaHJhcyBzdGVsbHQgc2ljaCBncmFkZSBkZW4gU3RlbXBlbCBhdWYgTG9jb3MgU3Rpcm4gdm9yLgoqZ3Jvb29vb29laGwqXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gV2FyZ29uIHdpcmQgZ2V6d3VuZ2VuLCBlaW5lbiBBbnRyYWcgYXVmIEVyb2VmZm51bmcKW0FsbGdlbWVpbjpHcmltbWJvcm5dIGVpbmVyIFF1ZXN0IHp1IHN0ZWxsZW4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBIYWtraWtrdCB3aXJkIHp1IGVpbiBwYWFyIGxldXRlbiBpbiBlaW5lbiByYXVtCltBbGxnZW1laW46Q2FyYWRocmFzXSBnZXNwZXJydCwgZGllIHNpY2ggaW1tZXIgd3Vlc3RlIGJlc2NoaW1wZnVuZ2VuIHdpZQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSmE/CltBbGxnZW1laW46Q2FyYWRocmFzXSBzY2h3dWxlciB1bmQgbGVzYmUgdW5kIGFyc2NobG9jaCB1bmQgc2F1IGFuIGRlbiBrb3BmCltBbGxnZW1laW46Q2FyYWRocmFzXSBzY2htZWlzc2VuCltBbGxnZW1laW46Q2FyYWRocmFzXSBrb2VubmVuIHdpciBqYSBkdXJpYW4gZ2xlaWNoIG1pdCBkYXp1IHJlaW50dW4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIFVuZCBDYWx1bSBtdXNzIHNpY2ggZGVuIGdhbnplbiBUYWcgTWluZGVyaGVpdGVud2l0emUKW0FsbGdlbWVpbjpHcmltbWJvcm5dIGFuaG9laHJlbiEKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIG9ob2ghIQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gYWJlciBLbGluZ2Ugc29sbHRlIGVpZ2VudGxpY2ggYXVjaCB6dSBzcGllc3NidWVyZ2VybgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gZ2VzdGVja3Qgd2VyZGVuCltBbGxnZW1laW46Q2FyYWRocmFzXSB3byBhbGxlIGJyYXYgc2luZCB1bmQgbmllbWFuZCBsYXV0IHJlZGVuIGRhcmYKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHNvIGZ1cmNodGJhciBnZWlzdGxpY2hlIHVuZCBzbwpbQWxsZ2VtZWluOkNhcmFkaHJhc10gZGVyIHd1ZXJkZSBhdXNmbGlwcGVuCltBbGxnZW1laW46R3JpbW1ib3JuXSBBdSBqYSEgSXN0IGFiZXIgbGVpZGVyIGtlaW4gTWFnaWVyLi4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBzY2hhZGUKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHdpciBzY2hvbiB3YXMgbWl0IE1pa2Egdm9yPwpbQWxsZ2VtZWluOkNhcmFkaHJhc10gdXBwcywgZmVobHQgZWluIGhhYmVuCltBbGxnZW1laW46R3JpbW1ib3JuXSBEcml6enQgd2lyZCBpbiBlaW4gbXVkIG9obmUgU0IgdmVyYmFubnQuIFVuZCBzZWluCltBbGxnZW1laW46R3JpbW1ib3JuXSBGYWVobmNoZW4gIkhvY2ggU3RlaW5iZWlzc2VyIiB3aXJkIGlobSBuYXNhbApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gZWluZ2VmdWVocnQuLi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHdpZSB1bmFwcGV0aXRsaWNoCltBbGxnZW1laW46R3JpbW1ib3JuXSBOdXIgTWFnaWVyISBIaWVyIGdlaHRzIHVtIHdpciBnZWdlbiBNYWdpZXIsIG5pY2h0IHdpcgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gZ2VnZW4gZGVuIFJlc3QgZGVyIFdlbHQuIE9kZXIgc28gYWVobmxpY2guLi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIHdhcyBtYWNoZW4gd2lyIGVpZ2VudGxpY2ggbWl0IGRlbiAyIFR1ZWJpbmdlciBIZXhlbj8KW0FsbGdlbWVpbjpHcmltbWJvcm5dIFp3ZWk/CltBbGxnZW1laW46Q2FyYWRocmFzXSBIb2JvIHVuZCBGZW5ueS4uLiBhZWggZmVuY2h1cmNoCltBbGxnZW1laW46Q2FyYWRocmFzXSBBbmd1cyBzcGVycmVuIHdpciB6dSB3aWxkZ2V3b3JkZW5lbiBLYXR6ZW4gZGllIGlobQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gYWxsZXMgemVya3JhdHplbgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSG9ibyB3aXJkIHp1c2FtbWVuIG1pdCBUb3JmZHVlbmcgenVtIHJ1bWtudWRkZWxuIGR1cmNocwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gbXVkIGdlc2NoaWNrdC4gS251ZGRlbGZyZWkgZnVlciBhbGxlIQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gdW5kIEhhdGUga29tbXQgYXVmIG5lIFdvbGtlLCBtaXQgRS1IYXJmZSB1bmQgbXVzcyBpbW1lcgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gSGFsbGVsdWphIHNpbmdlbgpbQWxsZ2VtZWluOkNhcmFkaHJhcyBsaWVndCBsYWNoZW5kIGF1ZiBkZW0gQm9kZW4uXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQmVydHJhbSBkYXJmIHNlaW5lIGNvZGVzIG51ciBub2NoIGluIFN0ZWluIGhhdWVuLCB3aWUKW0FsbGdlbWVpbjpHcmltbWJvcm5dIHNlaW5lIE5lYW5kZXJ0YWxlci4uLgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gV0VSIGtvbW10IGF1ZiBuZSBXb2xrZT8gSGF0ZT8gV2VyIGlzdCBkZW5uIGRhcz8KW0FsbGdlbWVpbjpDYXJhZGhyYXMgc2luZ3Q6IEZsaW50c3RvbmVzLCBtZWV0IHRoZSBGbGludHN0b25lcy4uLi5dCltBbGxnZW1laW46Q2FyYWRocmFzXSBIYXRlPyBrZW5uIGljaCBuaWNodApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRHUgaGFzdCBIYXRlIGdlc2FndC4uLgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gaWNoPyB3aWUga29tbSBpY2ggZGVubiBhdWYgc29sY2gga29taXNjaGUgV29ydGU/CltBbGxnZW1laW46R3JpbW1ib3JuXSBNdXNzIGRpZSBVZWJlcm11ZWR1bmcgc2Vpbi4uLgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gbXVzcyBlaW4gQW5mYWxsIGdlaXN0aWdlciBVbW5hY2h0Li4uIGViZW4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIERlbGlyaXVtIG9obmUgVHJlbWVucwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gTmFlY2hzdGVyIE1hZy4uLgpbQWxsZ2VtZWluOkNhcmFkaHJhcyBncnVlYmVsIGtvcGZrcmF0ei5dCltBbGxnZW1laW46Q2FyYWRocmFzIGtyYXR6dCBzaWNoIGFuIHNlaW5lbSBCb2luZy4gKGMpIEtvcHAuXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQ2lmZXIgYmVrb21tdCBqZWRlIE1lbGR1bmcgNTAqIGF1ZiBkZW4gU2NoaXJtIGdla25hbGx0LgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRGVyIGhhdCBtaXIgbWFsIDUwMCBlY2hvcyBlaW5lciBPaHJmZWlnZSBnZXNhbmR0Li4uIDstKQpbQWxsZ2VtZWluOkNhcmFkaHJhcyBraWNoZXJ0Ll0KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIENoYW9zIG11c3MgYXVmIGRlbiBFaXNwbGFuZXRlbiBkZXIgS2xpbmdvbmVuLApbQWxsZ2VtZWluOkNhcmFkaHJhc10gR2VmYW5nZW5lbnN0cmFmbGFnZXIsIFN0YXJUcmVrIFZJCltBbGxnZW1laW46Q2FyYWRocmFzIHNpZWh0IHNpZSBzY2hvbiBlcmZyaWVyZW4uXQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gb2RlciBzY2hsaW1tZXJlcyA6KQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gSm9uYXM/IGRlciBtdXNzIDEwLjAwMCBtYWwgc2NocmVpYmVuOiAiSWNoIGJpbiBzbwpbQWxsZ2VtZWluOkNhcmFkaHJhc10gb2JlcmNvb2wuIgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gcmVpY2h0IDEwLjAwMCBtYWw/CltBbGxnZW1laW46R3JpbW1ib3JuXSBEYW5jZXIgYmVrb21tdCBlaW4gZXh0cmEgbXVkLU1vZGVtOiAyMCBiYXVkIHVuZApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gV2Fja2Vsa29udGFja3QuLi4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIElzdCBzY2h3ZXIgenUgc2FnZW4sIGRlciBrb3BpZXJ0IGRvY2ggYmxvc3MuLi4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIFdhcyBhYmVyIHBhc3NlbmQgd2FlcmUhCltBbGxnZW1laW46Q2FyYWRocmFzXSBEYW5jZXI/IG9oIEdvdHQsIGRlciBhcm1lLi4uLiB1bmQgc3RhZW5kaWcgdGFuemVuCltBbGxnZW1laW46Q2FyYWRocmFzXSBzY2hvZW5lIGZyYXVlbiBhdXNzZW4gcnVtLCBkaWUgZXIgbmljaHQgcmljaHRpZyBzZWhlbgpbQWxsZ2VtZWluOkNhcmFkaHJhc10ga2FubgpbQWxsZ2VtZWluOkdyaW1tYm9ybiBicnVlbGx0Ll0KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGd1dCBnZWJydWVsbHQsIExvZXdlCltBbGxnZW1laW46Q2FyYWRocmFzXSB1bmQgR2F0c2J5IHdvbGx0ZSBkb2NoIHNjaG9uIGltbWVyIGFsbGVzIHByb2JlbGllYmVuLi4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBnaG1tbW1tbS4uLiBhdSBuZWluLCBsaWViZXIgbmljaHQsIGRhcyB3aXJkIHp1IHBlcnZlcnMKW0FsbGdlbWVpbjpHcmltbWJvcm5dIFdlaXRlciwgd2VpdGVyIQpbQWxsZ2VtZWluOkNhcmFkaHJhcyBlcm9ldGV0Li4uXQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gYWVoIGVycm9ldGV0CltBbGxnZW1laW46R3JpbW1ib3JuIGlzdCBiZWdpZXJpZyBhdWYgZGllIEZvcnRzZXR6dW5nLl0KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIG5lZWUsIG5lZWUsIGhpZXIgaGF0cyBhdWNoIHVudGVyIDE4IEphZWhyaWdlLi4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBTY2hhZGUuLi4KW0FsbGdlbWVpbjpDYXJhZGhyYXMgbGFlc3N0IGVpbmVuIHJvdGVuIFZvcmhhbmcgZmFsbGVuLCBkYWhpbnRlcgpHZWZsdWVzdGVyLi4uXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gV29sbGkgd2lyZCB6dSBlaW5lbSBQdWxsb3ZlciB2ZXJzdHJpY2t0LgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gbWFlZWVlZWVoCltBbGxnZW1laW46R3JpbW1ib3JuXSBHZW5hdSEgV2lyIHNpbmQgamEgdW50ZXIgdW5zLi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIG9jaCwgaWNoIGhhYiBhdWZnZWhvZXJ0IHdvIGVzIGZ1ZXIgbWljaCBwZWlubGljaCB3aXJkCltBbGxnZW1laW46Q2FyYWRocmFzXSA6KQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gamV0enQgZmFlbGx0IG1pciBuaWNodHMgbWVociBlaW4uLi4gZG9jaCwgZmVuY2h1cmNoCltBbGxnZW1laW46Q2FyYWRocmFzXSBiZWtvbW10IGVpbiBtZW5zY2hsaWNoZXMgaGVyeiwgd2lyZCBpaHJlIGdyb2Vzc3RlIHN0cmFmZQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gc2VpbgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gR251bGxpIG11c3Mgc3RhZW5kaWcgZHJlaSBLcmF3YXR0ZW4gdHJhZ2VuOiBVbSBkZW4gSGFscwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gdW5kIHVtIGRpZSBIYW5kZ2VsZW5rZS4gRWluaGVpdHNncm9lc3NlLi4uCltBbGxnZW1laW46R3JpbW1ib3JuIHNpZWh0IEdudWxsaSBibGF1IGFubGF1ZmVuLl0KW0FsbGdlbWVpbjpHcmltbWJvcm5dIEpvbmFzIGlzdCBuaWNodCBhdWYgLWEuLi4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW1zdHVyemdlc3ByYWVjaGUgKENhcmFkaHJhcywgMjguIEF1ZyAxOTk0LCAxMzoxMDozMCk6CgpHb2V0dGVyPyBFcyBnaWJ0IGtlaW5lIEdvZXR0ZXIhCkdlbmF1c28ga2VpbmUgRXJ6bWFnaWVyIHVuZCBNYWdpZXIhCgpCZXdlaXMgZHVyY2ggV2lkZXJzcHJ1Y2g6CkFubmFobWU6IEVzIGdpYnQgR29ldHRlci9FcnptYWdpZXIvTWFnaWVyIChHRU0pIGluIE1HOgpXZW5uIGljaCB2b24gVU5JdG9waWEgYXVzIGVpbiA8d2VyIG1vcmdlbj4gbWFjaGUgZGFubiBzdGVodCBkYToKKioqIEVzIGJlZmluZGVuIHNpY2ggZ2VyYWRlIDkgU3BpZWxlciBpbiBNb3JnZW5HcmF1ZW4uCgo9PiBXaWRlcnNwcnVjaCA9PiBlcyBnaWJ0IGtlaW5lIEdFTSA6LSkKCldoZXJlIGhhdmUgYWxsIHRoZSB3aXphcmRzIGdvbmUuLi4gKG9kZXIgaGllc3MgZGFzIGZsb3dlcnM/KQouLi4gdW5kICpwdWZmKiB2ZXJzY2h3YW5kZW4gSm9mLCBCb2luZywgUnVtYXRhLCBSb2NodXMsIEdhdHNieSwgVnJhaSwgLi4uCmluIGVpbmVtIExvZ2lrd29lbGtjaGVuLgoKICAgZnJvZWhsaWNoIHdpbmtlbmQgKHdlbSBlaWdlbnRsaWNoLCB3ZW5uIGtlaW5lciBtZWhyIGRhIGlzdD8pCgkKQ2FyYWRocmFzIGRlciBld2lnZSBQcm9waGV0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW1zdHVyemdlc3ByYWVjaGUgKEhhdGUsIDI5LiBBdWcgMTk5NCwgMDg6MjY6NDQpOgoqbGFjaGVuZCB2b20gU3R1aGwgZmFsbCoKQWxzbyBtYWwgZWhybGljaCwgZGFzIGhhZXR0IGljaCBnZXJuIGxpZmUgbWl0ZXJsZWJ0Li4uLgpIYXRlIChrYW5uIG5pY2h0IHRvdGdlc2Nod2llZ2VuIHdlcmRlbikuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW1zdHVyemdlc3ByYWVjaGUgKENhdHdlYXpsZSwgMjkuIEF1ZyAxOTk0LCAxNjozMTo1OSk6ClNpZSBoYWJlbiBtaWNoIHZlcmdlc3NlbiEgU2llIGhhYmVuIG1pY2ggdmVyZ2Vzc2VuIQoqanViZWwqCkljaCBiaW4gZGVyIGxldHp0ZSEKKmhhZW5kZSByZWliKgpOYSBkZW5lbiB3ZXJkIGljaHMgemVpZ2VuIDotKQoKICAgICBDYXR3ZWF6bGUsIGxldHplciBNYWdpZXIgaW0gTUcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1hbCB3aWVkZXIgJ2ZhbW91cyBsYXN0IHdvcmRzJyAuLi4gKEJvaW5nLCAyOS4gQXVnIDE5OTQsIDE4OjE4OjQ3KToKW0FiZW50ZXVlcjpTdGV2ZV0gYWNoLCwgaWNoIHppZWggamV0enQgZGVuIEhlYmVsLCBpc3QgZWdhbCwgb2IgaWNoIHN0ZXJiZQpbVG9kOl0gRXR3YXMgZ2VoZWltbmlzdm9sbGVzIHVuZCB1bmJla2FubnRlcyBoYXQgZ2VyYWRlIFN0ZXZlIHVtZ2VicmFjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFVtc3R1cnpnZXNwcmFlY2hlIChDYXJhZGhyYXMsIDI5LiBBdWcgMTk5NCwgMjM6MzY6MzEpOgoJT2VtbW0hIQoKSWNoIGhhdHRlIERpY2ggc29nYXIgbWluZGVzdGVucyAzIG1hbCBlcndhZWhudCwgQ2F0IDotKSBLYW5uIHNlaW4sIGRhc3MKZXMgbnVyIGluIHNhZ2UgYXVmZ2V0YXVjaHQgaXN0LCBkYSBpc3QgZWluaWdlcyAqdmVyc3RlY2t0IGdyaW5zKiB2ZXJsb3Jlbi0KZ2VnYW5nZW4sIHdlaWwgbnVyIC1hIG1pdGdlbG9nZ3Qgd3VyZGUuCkFsc28sIG9mZml6aWVsbDoKQ2F0d2VhemxlIHd1cmRlIG1pdCBzZWluZXIgVHJ1aGUgaW4gZWluZW4gUmF1bSBnZXNwZXJydCwgZGllIGlobSBsYW5nc2FtCnVuZCBnZW51ZXNzbGljaCBlaW4gS29lcnBlcnRlaWwgbmFjaCBkZW0gYW5kZXJlbiB3ZWdnZWJpc3NlbiBoYXQuIFVuZAppY2ggc3RlaCBkYW5lYmVuIHVuZCBrdWNrIHp1IDotKSkgQWFhYWgsIGljaCB3aWxsIGlobiBsZWlkZW4gc2VoZW4hCgogIENhcmFkaHJhcyBkZXIgZXdpZ2UgUHJvcGhldCwgZGVtIG1hbCB2b24gZGllc2VyICYlJiUmJSQlJCBUcnVoZQogICAgICAgICAgICB6d2VpIEhhZW5kZSBhYmdlYmlzc2VuIHd1cmRlbiAqc2NobHVjaHoqClBTOiBhbm5hZWhlbiBtaXQgZGVyIFdvbHBpLU5hZGVsIGdlaHQgYXVjaCBuaWNodCwgc29uc3QgaGFldHRlIGljaAogICBlbmRsaWNoIGRhcyBWaWVyaGFlbmRlci1TY2h3ZXJ0IGZ1ZWhyZW4ga29lbm5lbiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbXN0dXJ6Z2VzcHJhZWNoZSAoQm9uZ28sIDMwLiBBdWcgMTk5NCwgMTA6MDM6NTMpOgpUamEgQ2F0d2VhemxlLCBEaWNoIGhhYmUgc2llIGRhbm4gd29obCBhdWNoLiBCbGVpYmUgbnVyIG5vY2ggaWNoLgpXZW5uIGljaCBkYW5uIHNjaG9uIGRlciBsZXR6dGUgTWFnaWVyIGhpZXIgYmluLCBrYW5uIGljaCBtaWNoIGphIGF1Y2gKZ2xlaWNoIHp1bSBvYmVyc3RlbiBHb3R0IGhvY2hzY2h3aW5nZW4uIFdvbGx0ZSBpY2ggc2Nob24gaW1tZXIgbWFsIHNlaW4gOi0pCkRpZSB0b3RhbGUgTWFjaHQgaGFiZW4gdW5kIHNpZSBnbmFkZW5sb3MgZ2VnZW4gU3BpZWxlciB1bmQgU2VoZXIgYW53ZW5kZW4uCkRhcyB3aXJkIHNjaG9lbi4KCkRlciB3aXJrbGljaCBsZXR6dGUgTWFnaWVyIGltIE1vcmdlbmdyYXVlbi4gQk9OR08gICAodmllbGxlaWNodCBiYWxkIEdvdHQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFVtc3R1cnpnZXNwcmFlY2hlIChMaSwgMzAuIEF1ZyAxOTk0LCAxMTowMzowMik6ClRqYSwgQm9uZ28sCmxlaWRlciBoYWJlbiBkaWUgYmVpZGVuIGJlaW0gc2VociBrb2VzdGxpY2hlbiBNYWdpZXJ6YXBwZW4gZG9jaCBub2NoIGVpbiBwYWFyCnZlcmdlc3Nlbi4gSWNoIHp1bWluZGVzdGVucyBsZWJlIG5vY2guIEFsc28sIHdhcyBtYWNoZW4gd2lyIGpldHp0IHp1IHp3ZWl0IG1pdApkZW0gTVVEPwpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTogVW1zdHVyemdlc3ByYWVjaGUgKENpZmVyLCAzMC4gQXVnIDE5OTQsIDE1OjU4OjA5KToKQWxzbyBMaSB1bmQgQm9uZ28sCklociBhbHMgZGllIGJlaWRlbiB2ZXJibGllYmVuZW4gR29ldHRlciBrb2VubnRldCBqYSBkYW5uIG1laW4gU2F2ZS1maWxlCnJldHRlbiwgZGFubiBrb2VubnRlIGljaCBhdWNoIHdpZWRlciBtaXQgdm9uIGRlciBQYXJ0eSBzZWluCnVuZCBDYXJhZGhyYXMgemVpZ2VuLCB3YXMgNTAwIE9ocmZlaWdlbiBwZXIgeGRvIHNpbmQsIEdyaW1tYm9ybgp3ZWlzcyBkYXMgamEgc2Nob24uLi4gKHVuZCBQdW1hIDopKSkpKQpDaWZlciwgZGVyIGtlaW4gS2lmZmVyIGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmU6IFJlOiBVbXN0dXJ6Z2VzcHJhZWNoZSAoQ2FyYWRocmFzLCAzMC4gQXVnIDE5OTQsIDE4OjEzOjUwKToKCU5hIHdhcnRlLCBDaWZlciEhCgpXZW5uIER1IGRhcyBtYWNoc3QsIGtvbW0gaWNoIGF1ZnMgbmFlY2hzdGUgUlZSIChSZWFsIFZpcnR1YWwgUmVhbGl0eSA7LSkKPSBNdWR0cmVmZmVuKSB1bmQgdHJhaW5pZXIgdm9yaGVyIG5vY2ggZWluIGJpc3NjaGVuIDotKQpOdSBqYSwgdmllbGxlaWNodCByZWljaHQgamEgYXVjaCBzY2hvbiBhbGxlaW5lIG1laW5lIEFud2VzZW5oZWl0IGF1cywgdW0KRGljaCB0b2VkbGljaCB6dSBlcnNjaHJlY2tlbiA7LSkpCgpVbmQgYXVzc2VyZGVtIGhhYmVuIEdyaW1tYm9ybiB1bmQgaWNoIHNjaG9uIGxhbmdlIGVpbiBUcml1bXZpcmF0IGVycmljaHRldC4KQWxzbyBubyBjaGFuY2UgZnVlciBkaWUgcGFhciBzdWVzc2VuIGtsZWluZW4gTWFnaWVyLCBkaWUgd2lyIGxlaWRlciB2ZXJnZXNzZW4KaGFiZSwgbWVsZGV0IGV1Y2gsIGRhbm4gc2VpZCBpaHIgZGFzIG5hZWNoc3RlIG1hbCBhdWNoIGRyYW4gOy0pCgpmcm9laGxpY2ggZGF2b25ob3Bwc2VuZCAgICpCT01NIEJPTU0qIFVwcHMsIGJpbiBqYSBuIEJlcmcgOi0pCgoJQ2FyYWRocmFzIGRlciBld2lnZSBQcm9waGV0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW5mb3JtYXRpY2VyIChIYXRlLCAzMC4gQXVnIDE5OTQsIDIwOjQ0OjI2KToKSGF0ZSBzYWd0OiBBbHNvIG1laW5lIFNjaHdlc3RlciBzY2hyaWViIG5ldWxpY2ggSW5mb3JtYXRpayBtaXQgImMiCkF1Z3JhIHNhZ3Q6IE5hamEsIGVpbmVuIFRpYyBoYWJ0IGlociBqYSBlaCBhbGxlLi4uCgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc2Nob24gd2llZGVyICdmYW1vdXMgbGFzdCB3b3JkcycgKEJvaW5nLCAzMC4gQXVnIDE5OTQsIDIzOjU5OjM0KToKdW5nZXNjaG5pdHRlbjoKCkdyZXVsaXggcnVmdDogc2luZCBnb2JsaW5zIHNvIHJpY2h0aWNrIGJvZW9lc2U/CkNhcmFkaHJhcyBzYWd0OiBpbiBiaW4gdm9uIGdlc3Rlcm4KQ2FyYWRocmFzIHNhZ3Q6IGFlZWVlZWVoIGljaApbVG9kOl0gRWluIEdvYmxpbiBoYXQgZ2VyYWRlIEdyZXVsaXggdW1nZWJyYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVtc3R1cnpnZXNwcmFlY2hlIChCb25nbywgMzEuIEF1ZyAxOTk0LCAwOTozMjozMSk6CkFsc28gTGksIGljaCB3dWVyZGUgc2FnZW4gZWluIGplZGVzIFRyaXVtdmlyYXQgaXN0IHp1IHN0dWVyemVuLCBiZXNvbmRlcnMsCndlbm4gbWFuIGVpbiBHb3R0IGlzdC4gQW5kZXJlcnNlaXRzIHd1ZXJkZW4gd2lyIGRhbm4gamEgZWggZGFydWViZXIgc3RlaGVuCnVuZApoYWV0dGVuIGVzIGdhciBuaWNodCBub2V0aWcgdW5zIG1pdCBkZW5lbiBydW16dXNjaGxhZ2VuLiBEYXMgbWl0IENpZmVyIGlzdAp6d2FyIGF1Y2gga2VpbmUgc2NobGVjaHRlIElkZWUsIGFiZXIgZGEga29lbm50ZSBqYSBqZWRlciBrb21tZW4uIDotKSkgKG5pY2h0cwpnZWdlbiBEaWNoIENpZmVyLCBhYmVyIGJlaSBkZXIgYWJzb2x1dGVuIE1hY2h0IHNjaGVpZGVuIHNpY2ggc29nYXIKRnJldW5kc2NoYWZ0ZW4gKmdyaW5zKiB1bmQgVGVpbGVuIGlzdCBuaWNodCBkcmluKQoKV2lyIGJyYXVjaGVuIGFsc28gbnVyIGF1ZiBkaWUgZ3Jvc3NlcyBSZXZvbHV0aW9uIHp1IHdhcnRlbi4KCkVpbiBzaWNoIHNjaGVsbWlzY2ggZGllIEhhZW5kZSByZWliZW5kZXIgQk9OR08gOi0pKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnRyaXVtdmlyYXQ/PyAoTm9ib2R5LCAzMS4gQXVnIDE5OTQsIDEyOjE1OjQ2KToKQ2FyYSB1bmQgR3JpbW1ib3JuLCBpaHIgWldFSSB3b2xsdCBlaW4gVFJJVU1WSVJBVCBnZWdydWVuZGV0IGhhYmVuPz8/CmhlaGUuLi4KCkVpbiBsYWNoZW5kZXIgTm9ib2R5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW1zdHVyemdlc3ByYWVjaGUgLT4gQm9uZ28gKENpZmVyLCAzMS4gQXVnIDE5OTQsIDEyOjQ0OjMzKToKV2VyIHJlZGV0IGRlbm4gdm9uIFRlaWxlbj8/PyBVbmQga2VubiBpY2ggRGljaCB1ZWJlcmhhdXB0Pwo6KSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmU6IFJlOiBVbXN0dXJ6Z2VzcHJhZWNoZSAoTGksIDMxLiBBdWcgMTk5NCwgMTM6MjY6MTEpOgpBbHNvIENpZmVyLApoaWVybWl0IHdpcmQgZGVpbiBTYXZlLWZpbGUgcmVzdG9yZWQuIFZpZWwgU3Bhc3MgYmVpbSBPaHJmZWlnZW4hCkxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlOiBSZTogUmU6IFVtc3R1cnpnZXNwcmFlY2hlIChMaSwgMzEuIEF1ZyAxOTk0LCAxMzoyNzoyNik6CmVpbiBUcml1bXZpcmF0IG1pdCBudXIgendlaSBMZXV0ZW4/IE9kZXIgaXN0IGVpbmVyIHZvbiBFdWNoIFNjaGl6byB1bmQgemFobHQKZnVlciB6d2VpPwpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHVtc3R1cnpnZXNwcmFlY2hlIChMaSwgMzEuIEF1ZyAxOTk0LCAxMzoyOTozNCk6CkFsc28sCmNpZmVyIGlzdCB3aWVkZXIgcmVzdG9yZWQsIGFiZXIgbnVyIGF1ZiBMZXZlbCAyMSwgc28gZGFzcyB3aXIgdWViZXIgaWhtCnN0ZWhlbi4gT2ssIEJvbmdvPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlIHVzdy4gVW1zdHVyemdlc3ByYWVjaGUgKENpZmVyLCAzMS4gQXVnIDE5OTQsIDEzOjM0OjAwKToKRGFua2UsIExpLi4uIG5hIHdhcnRlLCBDYXJhZGhyYXMgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldWxpY2gsIDE5OjUwIChDYXR3ZWF6bGUsIDMxLiBBdWcgMTk5NCwgMjA6MDI6MzcpOgpEdSB0ZWlsc3QgSm9mIG1pdDogaHVuZ2EKPiBKb2YgdGVpbHQgRGlyIG1pdDogamF1CkR1IHRlaWxzdCBKb2YgbWl0OiB3YXM/Cj4gSm9mIHRlaWx0IERpciBtaXQ6IHZpZWwgIQpEdSB0ZWlsc3QgSm9mIG1pdDogd28/Cj4gSm9mIHRlaWx0IERpciBtaXQ6IGVnYWwgIQpEdSB0ZWlsc3QgSm9mIG1pdDogb2ssIGxhc3MgdW5zIGdlaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbmV1bGljaCwgMTk6NTAgKENhcmFkaHJhcywgIDEuIFNlcCAxOTk0LCAwNzoyNTo0Nik6CmluIGRlciBNZW5zYToKKDMgTXVkZGVyIGFuIGVpbmVtIFRpc2NoLCBpY2gsIFdsdXV0IHVuZCBKYWJhd29reQooYWxsZXMgR29ldHRlciBhdXMgVU5JdG9waWEpKQoKSWNoOiAgICAgICAgIldpc3N0IGlociBzY2hvbiwgZGFzcyBtdWRkZW4gYmxvZWQgdW5kIGdsZWljaGd1ZWx0aWcgbWFjaHQ/IgpKYWJhd29reTogICAiSGFlZWVlZWVoPz8gSXMgbWlyIGRvY2ggZWdhbCEhIgoKQ2FyYWRocmFzLCB1bnRlciBkZW4gVGlzY2ggdm9yIExhY2hlbiBnZXJvbGx0ClBTOiBVbmQgd2FzIGRhcyBUcml1bXZpcmF0IHp1IHp3ZWl0IGFuZ2VodDogbGVzdCBtYWwgZ2VzY2hlaXQgZXVyZSBBc3Rlcml4LQogICAgQmFlbmRlIGR1cmNoISA6LSkKICAgICpodWVwZnQgc29sYW5nZSBhdWYgQ2lmZXIgcnVtIHdlaWwgZGVyIGlobSBuaXggdHVuIGthbm4qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbXN0dXJ6IChHcmltbWJvcm4sICAxLiBTZXAgMTk5NCwgMTA6MTQ6MjgpOgoKT0ssIGthbm4gbWlyIG1hbCBqZW1hbmQgc2FnZW4sIHdhcyBkYXMgVGhlbWEgaW4gZGVyIFJ1YnJpayBXaXR6ZSB6dSBzdWNoZW4KaGF0Pz8/Pz8KCkF1ZiBlaW5lIEdlbGVnZW5oZWl0IG9obmUgTWFncyB3YXJ0ZW5kOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmltbWJvcm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbXN0dXJ6IChKb2YsICAxLiBTZXAgMTk5NCwgMjE6NDA6MTIpOgogSXN0IGRvY2ggS0xBUiAtIHdvIHNvbGwgbWFuIGRlbm4gU09OU1Qgd2FzIHVlYmVyIFVtc3R1cnogcG9zdGVuLCB3ZW5uIG5pY2h0CmluIGRlciBXSVRaRS1SdWJyaWsgPz8/IQoKIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbXN0dXJ6IChCb25nbywgIDIuIFNlcCAxOTk0LCAwODo0MzowMik6CkFsc28gZGFzIENpZmVyIGF1ZiBMZXZlbCAyMSBzdGVodCBpc3Qgb2suIERhIGhhYmVuIHdpciBub2NoIGdlbnVlZ2VuZApGcmVpcmF1bSwgTGkuIEFsbGVyZGluZ3Mga2FubiBpY2ggbWljaCBhbiBlaW5lbiBDaWZlciBnYXIgbmljaHQgZXJpbm5lcm4uCldhciBkZXIgbmljaHQgZWlubWFsIE1hZ2llciBoaWVyPz8gVm9yIGxhbmdlciBsYW5nZXIgWmVpdD8/IDotKSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW1zdHVyeiAoQ2lmZXIsICAyLiBTZXAgMTk5NCwgMTM6NDM6NTUpOgpOZWUsIEJvbmdvLCBkZXIgQ2lmZXIgd2FyIGRlciwgZGVyIERpY2ggemFwdCwgc29iYWxkIHNlaW4gc2F2ZS1maWxlCndpZWRlciByZXN0YXVyaWVydCBpc3QsIGRlbm4gZGFzIGdlaHQgYXVjaCBtaXQgTGV2ZWwgMjEuLi4gTnVyIGluIFJMCndpcmQgZXMgc2Nod2VyLCBEaWNoIHp1IHphcHBlbiwgZnVlcmNodGUgaWNoLCBkYW5uIGtvZW5udGVzdApEdSBEaWNoIHdvaGwgc3BhZXRlciBhdWYgZGVyIE1VRC1GZXRlIChkaWUgd2lyIGRhbm4genUgZHJpdHQKbWFjaGVuIG11ZXNzZW4sIGRlbm4gU3BpZWxlciBnaWJ0IGVzIGRhbm4gd29obCBuaWNodCBtZWhyKSByZXZhbmNoaWVyZW4uLi4KSGlsZgoKClVuZ2VDaWZlcgoKUC5TLjogVW5kIHdlciBzaWNoIHNlbGJzdCBlcmhvZWh0LCBkZXIgc29sbCBlcm5pZWRyaWd0IHdlcmRlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldWxpY2ggaW0gUkwgOikgKENhdHdlYXpsZSwgIDIuIFNlcCAxOTk0LCAxNzo1OToyNyk6CkNhdHdlYXpsZSBzaXR6dCBhbiBQYXNjYWwgdW5kIHNjaGF1dCBzaWNoIG1pdCB4diBkaWUgRmV0ZW5mb3Rvcwphbi4KSm9mIGtvbW10IGFuLgpKb2Ygc2FndDogT2ggbmV1ZSBCaWxkZXI/CkNhdHdlYXpsZSBzYWd0OiBKYSwgdm9uIERvbmFsZC4KQ2F0d2VhemxlIHNhZ3Q6IEhhYmVuIGFiZXIgYWxsZSBuZSBzY2hsZWNodGUgUXVhbGl0YWV0LgpKb2YgZmFlbmd0IGFuIHp1IGRlbmtlbi4KS2xlaW5lIFJhdWNod29lbGtjaGVuIHN0ZWlnZW4gYXVmLgpKb2Ygc2FndDogSG1tLgpKb2Ygc2FndDogVmVyZ3JvZXNzZXIgbWFsLgpDYXR3ZWF6bGUga2xpY2t0IGF1ZiAnRGJsIFNpemUnLgpKb2Ygc2FndDogVW5kIGpldHp0IG1hY2ggbWFsIHNtb290aC4KQ2F0d2VhemxlIGtsaWNrdCBhdWYgJ1Ntb290aCcuClhWIGZhZW5ndCBhbiB6dSByZWNobmVuLiBFaW4ga2xlaW5lciBGaXNjaCBkcmVodCBzaWNoIGltIEtyZWlzLgpKb2Ygc2FndDogQWVoLCBEdSwgQ2F0d2VhemxlPwpDYXR3ZWF6bGUgc2FndDogSmE/CkpvZiBzYWd0OiBBdWYgd2VsY2hlbiBSZWNoZXIgaGFzdCBkdSBkZW5uIFhWIGdlc3RhcnRldD8KQ2F0d2VhemxlIGdyaW5zdC4KQ2F0d2VhemxlIHNhZ3Q6IEF1ZiBQYXNjYWwuIFdpZXNvPwpKb2Ygc2NocmVpdCBsYXV0LgoKRWluICduaWUgbWVociB1bm5vZXRpZ2VzIExhZyB6dSBwcm9kdXppZXJlbicgdmVyc3ByZWNoZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXR3ZWF6bGUgOi0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9uIGVpbmVtLCBkZXIgYXVzem9nLCBUb3JmZHVlbmcgenUga251ZGRlbG4gOikgKFRvcmZrbnVkZGwsICAyLiBTZXAgMTk5NCwgMTg6NTU6NDIpOgpQbG9ldHpsaWNoIHNjaGxldWRlcnQgZGVyIFRvZCBkaWNoIGluIGRpZSBMdWZ0LCBEdSBoYXN0IGVpbmUgc2VsdHNhbWUKRW1wZmluZHVuZyBhbHMgZHUgZHVyY2ggZGllIFdhZW5kZSBkZXMgR2ViYWV1ZGVzLCBoaW5hdXMgaW4gZGllIGZyaXNjaGUKTHVmdCwgZHVyY2ggZWluaWdlIGFuZGVyZSBXYWVuZGUgdW5kIHppZW1saWNoIHVlYmVycmFzY2h0ZSBQZmVyZGUgZmxpZWdzdAp1bmQgc2NobGllc3NsaWNoIGluIGVpbmVtIGFuZGVyZW4gR2ViYWV1ZGUgbGFuZGVzdC4KRXMgd2lya3QgdmFnZSB2ZXJ0cmF1dCAuLi4KRHUgYmVmaW5kZXN0IERpY2ggaW4gZWluZXIga2xlaW5lbiBLYXBlbGxlLCBpbiBkZXIgRHUgYmV0ZW4ga2FubnN0LCB1bQp3aWVkZXIgRGVpbmUgbmF0dWVybGljaGUgR2VzdGFsdCB6dSBlcmhhbHRlbi4gQW0gbm9lcmRsaWNoZW4gRW5kZSBzdGVodAplaW4gQWx0YXIsIGF1ZiBkZW0gc2ljaCBlaW4gZ3Jvc3NlcyBLcmV1eiBiZWZpbmRldC4gSW4gZGVuIFdhZW5kZW4gc2llaHN0CkR1IGhlcnJsaWNoZSBGZW5zdGVyLCBkdXJjaCBkaWUgdGFnc3VlYmVyIGRhcyBMaWNodCBidW50IGhlcmVpbnNjaGVpbnQuCkltIFN1ZWRlbiBiZWZpbmRldCBzaWNoIGVpbmUgVHVlciwgZGllIHp1ciBTdHJhc3NlIGZ1ZWhydC4KRWFnbGUgZGVyIFByb3BoZXQuCkluIGVpbmVyIEVja2Ugc3RlaHQgZWluIE9wZmVyc3RvY2suCkVpbiBzZWx0c2FtZXMgR2VmdWVobCB1ZWJlcmtvbW10IERpY2ggLi4uCkR1IHZlcmxpZXJzdCBkaWUgT3JpZW50aWVydW5nIC4uLgpEaWVzZXMgaXN0IGRlciBBcmJlaXRzcmF1bSB2b24gVG9yZmR1ZW5nLiBTbyBoYXR0ZXN0IGR1IGRpciBpbW1lcgpzY2hvbiBDaGFvcyB2b3JnZXN0ZWxsdC4gRHUgZ2xhdWJzdCBtYWwgZ2Vob2VydCB6dSBoYWJlbiAsZGFzIGFsbGVzCkNoYW9zIGVpbiBiZXN0cmViZW4gaGF0IHNpY2ggc2VsYmVyIHp1IG9yZG5lbi4gQWxsc28gZGllc2VzIGhpZXIgbmljaHQKQXVmIGRlbiBUaXNjaGVuIGxpZWdlbiBDb21wdXRlcnRlaWxlIHJ1bSAsaW4gZWluZXIgRWNrZSBsaWVndCBlaW4gTG9ldGtvbGJlbgplaW4gT3N6aWxsb3Nrb3Agc3VtbXQgYXVmIGVpbmVtIGRlciBUaXNjaGUuIC4KVG9yZmR1ZW5nIGRlciBncm9zc2UgWkFQYW5vLgpUb3JmZHVlbmcgc2FndDogU28gaGFya29uClRvcmZkdWVuZyBncmluc3QuClRvcmZkdWVuZyBzcHJpbmd0IERpY2ggYXVmIGVpbm1hbCBhbiB1bmQgd3Vlcmd0IERpY2guCkJpcyBiYWxkIQpDbG9zaW5nIGRvd24uCkNvbm5lY3Rpb24gY2xvc2VkIGJ5IGZvcmVpZ24gaG9zdC4KCjopCgp1bmQgZGFiZWkgd2FyIGVzIGdhciBuaWNodCBIYXJrb24gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbW91cyBsYXN0IHdvcmRzIChDYXJhZGhyYXMsICA2LiBTZXAgMTk5NCwgMTA6Mjg6MTMpOgpFaW4gWndlcmcga29tbXQgaGludGVyIGRlbSBUcmVzZW4gdm9yIHVuZCBicmluZ3QgVGhvcmluIGVpbiBzZWx0c2FtCmRhbXBmZW5kZXMgR2V0cmFlbmssIHdhcyBpaG4gZmFzdCBhdXMgZGVuIFNjaHVoZW4gaGF1dC4KRWluIFp3ZXJnIGtvbW10IGhpbnRlciBkZW0gVHJlc2VuIHZvciB1bmQgYnJpbmd0IFRob3JpbiBlaW4gc2VsdHNhbQpkYW1wZmVuZGVzIEdldHJhZW5rLCB3YXMgaWhuIGZhc3QgYXVzIGRlbiBTY2h1aGVuIGhhdXQuCktub2Vycnkgc2FndDogSEkgVGhvcmluICEKRWluIFp3ZXJnIGtvbW10IGhpbnRlciBkZW0gVHJlc2VuIHZvciB1bmQgYnJpbmd0IFRob3JpbiBlaW4gc2VsdHNhbQpkYW1wZmVuZGVzIEdldHJhZW5rLCB3YXMgaWhuIGZhc3QgYXVzIGRlbiBTY2h1aGVuIGhhdXQuCktub2VycnkgenVja3QgcmF0bG9zIG1pdCBkZW4gU2NodWx0ZXJuLgpUaG9yaW4gc2FndDogaGkgaWhycyB1bmQgYnllLCBiaW4gKG5vY2gpIGluIGVpbGUuLi4KVGhvcmluIGtudWRkZWx0IERpY2ggdW5kIEtub2VycnkgYmVzb25kZXJzIHphZXJ0bGljaCB1bmQgaW50ZW5zaXYgdW5kCmxpZWJldm9sbCB1bmQgc28gZGFzIGFsbGUgZ2FyIG5pY2h0IGdlbnVnIGJla29tbWVuIGthbm4uClRob3JpbiB3YW5kZXJ0IGxhbmdzYW0gd2VpdGVyIG5hY2ggU3VlZGVuLgpLbm9lcnJ5IHNjaHVldHRlbHQgZGVuIEtvcGYuCmdyaW5zZQo+IER1IGdyaW5zdC4KPiAnaW1tZXIgZGllc2UgaGVrdGlrZXIKS25vZXJyeSBzZXVmenQuCmtpY2hlcmUKRHUgc2Fnc3Q6IGltbWVyIGRpZXNlIGhla3Rpa2VyCkR1IGtpY2hlcnN0LiAoV2llIGFsYmVybiB2b24gRGlyKQo+IHdhZWx6ZQpEdSB3YWVsenQgRGljaCB2b3IgTGFjaGVuIGF1ZiBkZW0gQm9kZW4uCj4gS25vZXJyeSBncmluc3QuCltUb2Q6XSBFaW4gU3RlaW5iZWlzc2VyIGhhdCBnZXJhZGUgVGhvcmluIHVtZ2VicmFjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoyNSBKYWhyZSBXb29kc3RvY2sgKEJyYWJhLCAgNi4gU2VwIDE5OTQsIDE0OjAxOjMzKToKb2J3b2hsIGRpZXNlIFJ1YnJpayBoYXVwdHNhZWNobGljaCBmdWVyIE1VRC1Jbm5lbnBvbGl0aWsgYmVudXR6dCB6dSB3ZXJkZW4Kc2NoZWludCwgZGVua2UgaWNoIGRvY2gsIGRhcyBzaWUgZ2VlaWduZXQgaGllcmZ1ZXIgaXN0OgoKLTE5NjkKSW4gZGVuIENhdHNraWwtTW91bnRhaW5zIHp3ZWkgQXV0b3N0dW5kZW4gbm9lcmRsaWNoIHZvbiBOZXcgWW9yayBDaXR5IGZhbmQKdm9yIDI1IEphaHJlbiBhdWYgZGVyIEZhcm0gdm9uIE1heCBZYXNndXIgZGFzIGxlZ2VuZGFlcmUgV29vZHN0b2NrLUZlc3RpdmFsCnN0YXR0LiBEcmVpIFRhZ2UgZGVzIEZyaWVkZW5zLCBkZXIgTGllYmUgdW5kIG5hdHVlcmxpY2ggZGVyIE11c2lrLiBWb20gMTUuIGJpcwoxNy4gQXVndXN0IDE5Njkgc3BpZWx0ZW4gdS5hLiBKaW1pIEhlbmRyaXgsIEphbmlzIEpvcGxpbiwgVGhlIFdobywgQ291bnRyeSBKb2UKTWMgRG9uYWxkLCBDcm9zYnksIFN0aWxscywgTmFzaCAmIFlvdW5nLCBKb2FuIEJhZXogdW5kIFJpY2hpZSBIYXZlbnMuIE1laHIgYWxzCjUwMCAwMDAgTWVuc2NoZW4gYnJhY2h0ZW4gZHVyY2ggYmxvc3NlIEFud2VzZW5oZWl0IGlocmVuIFByb3Rlc3QgZ2VnZW4gRWx0ZXJuLApFc3RhYmxpc2htZW50IHVuZCBkZW4gVmlldG5hbS1LcmllZyB6dW0gQXVzZHJ1Y2suIFRyb3R6ZGVtIHdhcmVuIHNpZQpzY2hsaWVzc2xpY2ggYXVmIE5haHJ1bmdzbWl0dGVsbGllZmVydW5nZW4gZHVyY2ggZGllIGFtZXJpa2FuaXNjaGUgTHVmdHdhZmZlCmFuZ2V3aWVzZW4sIGRlbm4gZGllIFZlcmFuc3RhbHRlciBoYXR0ZW4gbnVyIGRlbiBEcm9nZW5uYWNoc2NodWIgZ2VyZWdlbHQuCkdld2l0dGVyc3R1ZXJtZSBzb3JndGVuIGZ1ZXIgdGVpbHdlaXNlIGNoYW90aXNjaGUgVmVyaGFlbHRuaXNzZSBlYmVuc28gd2llCm1pbmRlcndlcnRpZ2VzIExTRCB1bmQgZmVobGVuZGUgVG9pbGV0dGVuLiBEYXMgRmVzdGl2YWwgZm9yZGVydGUgMyBUb2Rlc29wZmVyIQoKCi0xOTk0CjI1IEphaHJlIHNwYWV0ZXIgdmVyc2FtbWVsbiBzaWNoIHNvZ2FyIHVlYmVyIDEgTWlsbGlvbiBNZW5zY2hlbiB1bnRlciBmcmVpZW0KSGltbWVsLiBEb2NoIGRhcyBSZXZpdmFsIHN0ZWh0IHVudGVyIGtlaW5lbSBndXRlbiBTdGVybi4gT2J3b2hsIGRpZQpWb3JhdXNzZXR6dW5nZW4gZHVyY2hhdXMgdmVyZ2xlaWNoYmFyIHNpbmQ6IFNjaG9uIDE5NjkgbXVzc3RlIG1hbiB3ZWdlbgpTY2h3aWVyaWdrZWl0ZW4gbWl0IGRlciBPYnJpZ2tlaXQgYXVmIGVpbmVuIHVudm9yaGVyZ2VzZWhlbmVuClZlcmFuc3RhbHR1bmdzb3J0IGF1c3dlaWNoZW4gKE1heCBZYXNndXJzIEZhcm0gbGllZ3QgNTQgTWVpbGVuIHZvbQplaWdlbnRsaWNoZW4gV29vZHN0b2NrIGVudGZlcm50KS4gRGllc21hbCBtdXNzIGRhcyBnYW56ZSBzb2dhciBhdWYgZGVtClRlcnJpdG9yaXVtIGVpbmVzIGFuZGVyZW4gU3RhYXRlcyBzdGF0dGZpbmRlbi4gQXVjaCBkaWVzZSBWZXJzYW1tbHVuZyBpc3QgZWluZQpBcnQgUHJvdGVzdCBnZWdlbiBLcmllZyB1bmQgR2V3YWx0LCB1bmQgZGllIE5haHJ1bmdzbWl0dGVsdmVyc29yZ3VuZyBpc3Qgc29nYXIKbm9jaCBzY2hsZWNodGVyIGFscyBpbiBXb29kc3RvY2suIFp1bSBHbHVlY2sgaGlsZnQgaGV1dGUgd2llIGRhbWFscyBkaWUKTHVmdHdhZmZlLiBVbmQgYXVjaCAxOTk0IHNpbmQgZGllIE1FTlNDSEVOIERFTiBVTkJJTExFTiBERVIgV0lUVEVSVU5HCnNjaHV0emxvcyBhdXNnZWxpZWZlcnQgdW5kIGhhYmVuIG1pdCBncm9zc2VuIGh5Z2llbmlzY2hlbiBQcm9ibGVtZW4genUKa2FlbXBmZW4uIERpZSBNdXNpayBsYWVzc3QgYWxsZXJkaW5ncyBzdGFyayB6dSB3dWVuc2NoZW4gdWVicmlnLgpMaXZlLUF1ZnRyaXR0ZSBzaW5kIHByYWt0aXNjaCBuaWNodCB2b3JnZXNlaGVuLCBkaWUgS29uc2VydmVubXVzaWsgZGVzCkh1dHUtUHJvcGFnYW5kYXNlbmRlcnMgd2lyZCB2b24gdmllbGVuIHNvZ2FyIGFscyBQcm92b2thdGlvbiBlbXBmdW5kZW4uClZlcmhlZXJlbmQgYXVzc2VyZGVtIGRpZSBVbmZhbGxiaWxhbno6IFVlYmVyIDMwMC4wMDAgVG90ZSEKCgooYXVzIGRlciBUaXRhbmljIDkvOTQsIGRvcnQgYXVjaCBub2NoIG1pdCBzY2hvZW5lbiBGYXJiZm90b3MgZGF6dSkKCiAgIEJpcyBkZW1uZXh0LAogICBFdXJlIEJyYWJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiAoR3JpbW1ib3JuLCAgNi4gU2VwIDE5OTQsIDIxOjI5OjQwKToKCldhcyBtaWNoIHNjaG9uIGltbWVyIHd1bmRlcnQ6IFdpZXNvIHN1Z2dlcmllcnQgZGVyIE5hbWUgZGllc2VzIG11ZAplaWdlbnRsaWNoLCBkYXMgR3JhdWVuIHd1ZXJkZSBlcnN0IG1vcmdlbiBrb21tZW4gd2VubiBkb2NoIHNjaG9uIGhldXRlIGRpZQpNYWdpZXIgaGVycnNjaGVuPwoKICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcgKExpLCAgNy4gU2VwIDE5OTQsIDEwOjMzOjU1KToKSGV1dGUgMTA6MzQgVWhyOgoKS2VpbmVBaG51bmcgcnVmdDogSGlsZmUsIGljaCBiaW4gbmV1ISBXYXMgbXVzcyBpY2ggbWFjaGVuPwpbVG9kOl0gRWluIFdhZWNodGVyIGhhdCBnZXJhZGUgS2VpbmVhaG51bmcgdW1nZWJyYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXb29kc3RvY2sgKER1cmlhbiwgIDcuIFNlcCAxOTk0LCAxMDo0NjoxNyk6Clp1IGVyd2FlaG5lbiB3YWVyZW4gdmllbGxlaWNodCBub2NoIGRpZSB1ZWJlciAxMC4wMDAgSG9jaHplaXRlbiB1bmQgZHJlaQpHZWJ1cnRlbiB3YWVocmVuZCBkZXMgS29uemVydGVzIDE5NjkgaW4gV29vZHN0b2NrIC4uLi4uIGthdW0genUgZmFzc2VuCgotIER1cmlhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZMVyAoU2lsdmFuYSwgIDcuIFNlcCAxOTk0LCAxMjowODowOSk6CkV0d2FzIHZvbGxzdGFlbmRpZ2VyOgpLZWluZUFobnVuZyBydWZ0OiBIaWxmZSwgaWNoIGJpbiBuZXUhIFdhcyBtdXNzIGljaCBtYWNoZW4/CldpY2tlZCBydWZ0OiBHZWh0IG1pciBhdWNoIHNvLiBSdW1sYXVmZW4gdW5kIGtsZWluZSBUaWVyZSB0b2V0ZW4uLi4uCihzaW5uZ2VtYWVzcy4uLikKW1RvZDpdIEVpbiBXYWVjaHRlciBoYXQgZ2VyYWRlIEtlaW5lYWhudW5nIHVtZ2VicmFjaHQuCltBbGxnZW1laW46IEtub2VycnldIEtsZWluZSBUaWVyZSA/CgpCZXJpY2h0aWdlbmQgLSBTaWx2YW5hLgoKUFM6IEphLCBpY2ggd2Vpc3M6IHBlZGFudGlzY2ghCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNb3JhbCAoSGlnaGxhbmRlciwgIDcuIFNlcCAxOTk0LCAxMzoxMDoyOSk6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfCAiLi4udW5kIGRpZSBNb3JhbCB2b24gZGVyIEdlc2NoaWNodDogd2VubiBlaW5lciBuaWNodHMgenUgZnJlc3NlbiBrcmljaHQgfAp8IHVuZCB0cm90emRlbSBpbiBkZW4gQmxlY2huYXBmIGJyaWNodCwgZGFubiB2ZXJsaWVydCBlciBhbiBHZXdpY2h0ISIgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKER1byBTb25uZW5zY2hpcm0pIHwKCkF1czogZGUudGFsay5qb2tlcyAtIFNpZ25hdHVyZQotSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFtZW4gKEhhdGUsICA3LiBTZXAgMTk5NCwgMTY6Mjg6MTUpOgpNYWwgZWhybGljaD8gV2llc28gaGFidCBpaHIgc29sY2hlIEFuZ3N0IHZvciBkZW4gTWFnaWVybj8KRGllIHR1biBFdWNoIGRvY2ggZ2FybmljaHRzLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiAoUm9jaHVzLCAgNy4gU2VwIDE5OTQsIDE4OjQ4OjA3KToKTmFqYSwgRkFTVCBuaWNodHMuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiAoR3JpbW1ib3JuLCAgNy4gU2VwIDE5OTQsIDIwOjM2OjUzKToKCldlciBpc3QgSGF0ZT8/PwoKWnVtIGFsbGVybGV0enRlbm1hbCBtaXQgZGllc2VtIGFiZ2Vkcm9zY2hlbmVuIEdhZzoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdvb2RzdG9jayAoQXJhbnlhLCAgOC4gU2VwIDE5OTQsIDE0OjQ0OjI1KToKSG1tbW1tLiBJY2gga2VubiBhdWNoIGVpbiBNYWVkY2hlbiBpbiBtZWluZW0gV29obmhlaW0sIGRpZSBpbiBlaW5lbSBrbmFwcGVuCkRyZWl2aWVydGVsamFociAyNSB3aXJkIHVuZCBkaWUgaW4gV29vZHN0b2NrIGdlYm9yZW4gd3VyZGUuLi4KTmEsIHdlbm4gZGFzIG1hbiBrZWluIFp1ZmFsbCBpc3QKCnd1bmRlcmZpdHppZyBncmluc2VuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhIHdhciBkb2NoIG5vY2ggd2FzLi4uIChIYXJkaWwsICA5LiBTZXAgMTk5NCwgMjA6MjA6MTQpOgo+ZmluZ2VyIGpvZgoKSm9mIGlzdCBlaW5nZWxvZ2d0LAp1bmQgendhciB2b246IE11ZW5zdGVyLgpWb2xsZXIgTmFtZTogSm9mClJhc3NlOiBNYWdpZXIsICAgIEdlc2NobGVjaHQ6IG1hZW5ubGljaApBbHRlcjogMjU0ZCAwMjoyNToyMiAgIE1hZ2llcmxldmVsOiAxMTEKCi0tPiBWZXJoZWlyYXRldCBtaXQgICAgICAgOiBKb2YKClJlZ2lvbnNtYWdpZXIgdm9uICAgICA6IEVyem1hZ2llci4KUmVnaW9uc21pdGFyYmVpdGVyIHZvbjogU2VoZXIuClBsYW46Ci4uLgoKVW5kIGRhIHN0cmVpdGVuIHNpY2ggZGllIExldXRlIHdlZ2VuIFNjaHd1bGVuaG9jaHplaXQuLi4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEYSB3YXIgZG9jaCBub2NoIHdhcy4uLiAoUXVlbmdpc3R1LCAgOS4gU2VwIDE5OTQsIDIxOjE2OjEyKToKRGVyIEdhZyBpc3Qga2xhc3NlLiAtIEhlaXNzdCBkYXMgYWJlciwgZGFzcyBKb2YgWldFSSBFaGVyaW5nZSB0cmFlZ3Q/IFVuZApmYWVsbHQgZGFzIGRhbm4gbmljaHQgdW50ZXIgUG9seWdhbWllPwoqZ3J1ZWJlbCogUXVlbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEYSB3YXIgZG9jaCBub2NoIHdhcy4uLiAoU2lsdmFuYSwgMTAuIFNlcCAxOTk0LCAxMDowMDo0OCk6CldpZSB3YXIgZGFzIGJlaSBMaW5kZW5iZXJnPwpOaWNodCBoZXRlcm8tIG5pY2h0IGhvbW8tLCBzb25kZXJuIGF1dG9zZXh1ZWxsID8KQWJlciB3aWUgaGFldHRlIHNvbnN0IGRlciBlcnN0ZSBHb3R0IGRlcyBNRyBzbyB2aWVsZSBOYWNoZmFocmVuIGhhYmVuCmtvZW5uZW4uLi4gSWNoIGRlbiBNYWdpZXItU3RhbW1iYWV1bWVuIHNpbmQgc293aWVzbyBuZW4gcGFhciBuZXR0ZQpCZXNvbmRlcmhlaXRlbi4gei5CLiBCb2luZyB1bmQgSG9iby4uLiAqZ3JpbnMqICgqd2luayogLSBoYWxsbywgKGJhbGQpIE1hbWEpLgoKU2lsdmFuYSAtIHN0ZWlndCBkdXJjaCBpaHJlIHp1a3VlZnRpZ2VuIEZhbWlsaWVuYmFuZGUgbm9jaCBuaWNodCBnYW56IGR1cmNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEYSB3YXIgZG9jaCBub2NoIHdhcy4uLiAoQXJhbnlhLCAxMi4gU2VwIDE5OTQsIDExOjU3OjEwKToKTmFqYSwgdmllbGxlaWNodCBhdWNoIGVoZXIgU29sb2dhbWllLiBPZGVyIE1vbm9nYW1pZS4gTW9ub3RvbmllPwpNb250YWdvbWFuaWU/CgpXYXMgYXVjaCBpbW1lci4uLgpFdXJlIEV1Y2ggbGllYmVuZGUKICAgICAgICAgICAgICAgICAgQXJhbnlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGEgd2FyIGRvY2ggbm9jaCB3YXMuLi4gKFllbmRpLCAxMi4gU2VwIDE5OTQsIDE5OjEyOjQ0KToKCkljaCBnbGF1YmUsIGVzIHdhciBXb29keSBBbGxlbiwgZGVyIGRhIHNhZ3RlOgooWklUQVQgT04pICJNYXN0dXJiYXRpb24gaXN0IFNleCBtaXQgamVtYW5kZW0sIGRlbiBpY2ggc2VociBsaWViZS4uLiIKKFpJVEFUIE9GRikKQWJlciBpbSBBbGxnZW1laW5lbiBpc3QgZGFiZWkgRXNzaWcgbWl0IGRpZSBrbGVpbmUgS2lubmVycy4uLgoKQWNoIHNvLCBiZWkgR29ldHRlcm4gZ2VodCB3b2hsIGF1Y2ggSnVuZ2Zlcm56ZXVndW5nLi4uCiAgICAgICAgICAgICAgICAgICAqYW56dWVnbGljaGVzIFp3aW5rZXJuKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlcmFkZSBpbiBlaW5lciAuc2lnIGdlZnVuZGVuOiAoWWVuZGksIDEyLiBTZXAgMTk5NCwgMTk6MTk6NDIpOgoKIFRoZSBVLlMuIGNvbnRhaW5zIDQgJSBvZiB0aGUgd29ybGQncyBwb3B1bGF0aW9uIGFuZCA5MCAlIG9mIGl0J3MgbGF3eWVycy4KIElzIHRoZXJlIGFueSBxdWVzdGlvbiBhcyB0byB0aGUgcmVhbCBwcm9ibGVtIGluIHRoaXMgY291bnRyeT8KCkd1dCwgd2FzPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmlzdCBqYSBlaWdlbnRsaWNoIGVoZXIgZWluIEFudGktV2l0eiAoSG9ibywgMTMuIFNlcCAxOTk0LCAxMzozOToyOSk6CkJldm9yIGhpZXIgbm9jaCBtZWhyIEdlcnVlY2h0ZSB1bWxhdWZlbjoKCiAgIEJvaW5nIHVuZCBpY2ggc2luZCBuaWNodCBpbiBSTCB2ZXJoZWlyYXRldCEhIQoKCiAod2FlciBkb2NoIHNvbnN0IHppZW1saWNoIHNjaG5lbGwgZ2VnYW5nZW4sIG9kZXI/KQoKIENpYW8gSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGlzdCBqYSBlaWdlbnRsaWNoIGVoZXIgZWluIEFudGktV2l0eiAoRHVyaWFuLCAxNC4gU2VwIDE5OTQsIDEwOjQwOjExKToKSG9ibyB3YXIgZGFzIHJpY2h0aWc/IEljaCBkYWNodGUgZGFzIG11c3MgLS0+IG5vY2ggbmljaHQgPC0tIGhlaXNzZW4gOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmV1bGljaC4uLiAoUHJhLCAxNC4gU2VwIDE5OTQsIDEyOjQ0OjUzKToKRXMgaXN0IHp3YXIgbmljaHQgbmV0dCwgdWViZXIgZGVuIFRvZCB6dSBsYWNoZW4sIGFiZXIgbmV1bGljaDoKCltUb2Q6XSBFaW4gU2NobGFtbWRyYWNoZSBoYXQgZ2VyYWRlIEtub2VycnkgdW1nZWJyYWNodC4KRHUgdGVpbHN0IEtub2VycnkgbWl0OiBCZWlsZWlkISEhCktub2VycnkgaXN0IGdlcmFkZSBuaWNodCBkYTogbXVzc3RlIHdlZy4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyc3RlciBNYWkgaW4gS3JldXpiZXJnIChCcmFiYSwgMTQuIFNlcCAxOTk0LCAxODozMzowNik6CkdlaGUgaW4gZGFzIEdlZiJhbmduaXMuCkJlZ2liIERpY2ggZGlyZWt0IGRvcnRoaW4uCkdlaGUgbmljaHQgInViZXIgTG9zLgoKWmllaGUgbmljaHQgRE0gNDAwMCBlaW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQbGF5ZXJraWxsaW5nIDopIChDYXR3ZWF6bGUsIDE0LiBTZXAgMTk5NCwgMTk6NTY6MTkpOgpCb2luZyBzYWd0OiBqZXR6dCBoYWIgaWNoIGZyaXR6a2Ugc2Nob24gMyBtYWwgZ2V6YXBwdCwgamVkZXNtYWwgZGllCkJvaW5nIHNhZ3Q6IGxhbmd3ZWlsaWdlIGFsdGUgc2VxdWVuegpEdSBzYWdzdDogZGFyZnN0IGlobiBuaWNodCB6YXBwZW4sIG11c3N0IGlobiB6dSBkZW4gU3RlaW5iZWlzc2VybiB0cmFuc2VuCkZyaXR6bGUgdHJpdHQgYXVzIGVpbmVyIFNjaHdlZmVsd29sa2UgaGVydm9yLgpGcml0emxlIGdlaHQgbmFjaCBTdWVkZW4uCi4uLgpCb2luZyBzYWd0OiBkZXIgaHVuZCBzdGlyYnQgbmljaHQgLi4uCltUb2Q6XSBFaW4gU3RlaW5iZWlzc2VyIGhhdCBnZXJhZGUgRnJpdHpsZSB1bWdlYnJhY2h0LgpCb2luZyBzYWd0OiBuYSBhbHNvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiAoQXJhbnlhLCAxNS4gU2VwIDE5OTQsIDE2OjMzOjUxKToKUmFmYWVsIHJ1ZnQ6IE1vcmplbiAhISEKR2FzdDEgcnVmdDogV2VyIGhlaXNzdCBoaWVyIG5vY2ggUmFmYWVsClJhZmFlbCBydWZ0OiBOYSBpY2ggISEhCkdhc3QxIHJ1ZnQ6IEFjaCBzbwoKRGFzIHZvciBkZW0gVmVyZ2Vzc2VuIGJld2FocnQgaGFiZW4gd29sbGVuZAogICAgICBBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGEgd2FyIGRvY2ggbm9jaCB3YXMuLi4gKENhcmFkaHJhcywgMTguIFNlcCAxOTk0LCAxODo0MjowMyk6Ckp1bmctRmVybi1aZXVndW5nPyBSZW1vdGU/IEhtbW1tIDotKQoKCUphamEsIGljaCB3ZWlzcywgaWNoIGRlbmsgbWFsIHdpZWRlciBudXIgYW5zIGVpbmUgKnNjaG1vbGwqCgpDYXJhZGhyYXMgZGVyIGV3aWdlIFByb3BoZXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJzLXNjaHdlcnQgKFJ5bmUsIDE5LiBTZXAgMTk5NCwgMDI6MzE6NDcpOgprbGVpbmVyIGF1c3Jpc3MgYXVzIG1laW5lciBzYW1zdGFnIG5hY2h0OgoKPlJ5bmUgaXN0IHN0b2x6IC0gaGF0IGpldHp0IGVpbiBtYWtybyBmdWVyIGRlbiBmcmllZGhvZiBmZXJ0aWcKPlRvc3Mgc2FndDogd2llIGxhbmdlIGRhdWVydHMgZGVubiwgYmlzIGR1IGR1cmNoIGJpc3QgPwo+IFJ5bmUgc2FndDogd2Vpc3MgbmljaHQsIGxhc3NlIGVzIGdsZWljaCBtYWwgbGF1ZmVuCgooYW5tZXJrdW5nIGFuIGRlbiBnZW5laWd0ZW4gbGVzZXIgLSBkYXMgbWFrcm8gbGllcyBzY2huZWxsIC0gdmVyZGFtbXQgc2NobmVsbAotIHVuZCBkYSBpc3QgamEgbm9jaCBkYXMgZHluYW1pdCwgbWl0IGRlciB6dWVuZHNjaG51ciBmdWVyIDIwIHNla3VuZGVuKQoKNSBzZWt1bmRlbiBzcGFldGVyOgooVE9EOiBEeW5hbWl0IGhhdCBnZXJhZGUgUnluZSB1bWdlYnJhY2h0KQoKVGphLCBzb3ZpZWwgenVtIHRoZW1hIEdpZXIgbmFjaCBlaW5lbSBCUy1zY2h3ZXJ0IHVuZCB3b3p1IGRhcyBmdWVocmVuIGthbm4uLi4KClJZTkUKClBTOiBkaWVzIGlzdCBtZWluIGVyc3RlciBhcnRpa2VsIGluIGRlciB6ZWl0dW5nICh3ZWxjaCBlaW4gYW5sYXNzIDspKSwgZGFoZXIKYml0dGUgZXZlbnR1ZWxsZSBmZWhsZXIgZW50c2NodWxkaWdlbiAhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNoZW1pZS1QcmFrdGlrdW0gZnVlciBQaHlzaWtlciAoUXVhc2ltb2RvLCAxOS4gU2VwIDE5OTQsIDEyOjIzOjIwKToKCgpPcmdpbmFseml0YXQgZWluZXMgQXNzaXRlbnRlbiBuYWNoIGVpbmVtIEgyUy1BbGFybToKCiJBYmVyIGRpZSBsZXRoYWxlIERvc2lzIHdlcmRldCBpaHIgdGVpbHdlaXNlIHdvaGwga2F1bSBlcmhhbHRlbi4iCgpRdWFzaW1vZG8sIGdyaW5zZW5kLgoKUFM6RkxXcz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFsbGVyaGFuZCB2b20gTW9lcmRlcmthbmFsIChTaWx2YW5hLCAyMS4gU2VwIDE5OTQsIDE1OjI3OjIyKToKQmlzd2VpbGVuIGtvbW1lbiBzY2hvbiBtZXJrd3VlcmRpZ2UgTWVsZHVuZ2VuIHVlYmVyIGRlbiBNb2VyZGVya2FuYWwuIEhpZXIKZWluIHBhYXIgQmVpc3BpZWxlOgpbTW9lcmRlcjogR2Vpc3QgZWluZXMgR2FyZGV3YWVjaHRlcnNdIERhbmtlLCAuLi4gZGFzcyAgZHUgbWljaCBhdXMgZGllc2VyCltNb2VyZGVyOiBHZWlzdCBlaW5lcyBHYXJkZXdhZWNodGVyc10gc2NocmVja2xpY2hlbiBzdGVyYmxpY2ggZW4gSHVlbGxlCmJlZnJlaXQKW01vZXJkZXI6IEdlaXN0IGVpbmVzIEdhcmRld2FlY2h0ZXJzXSBoYXN0LgogKERlciBHYXJkZXdhZWNodGVyIHNvbGx0ZSBlaWdlbnRsaWNoIHN0b2x6IGF1ZiBzZWluIExlYmVuIHNlaW4uLi4uIFVtc29tZWhyCiBnaWx0IGRhc3MgbmF0dWVybGljaCBmdWVyIEtvZW5pZ2UuLi4pCltNb2VyZGVyOiBHZWlzdCBlaW5lcyBPcmtzXSBTaWx2YW5hIGhhdCBtaWNoIGVybW9yZGV0IQogKERhcyBpc3QgZ2xhdHQgZ2Vsb2dlbi4gRXIgaGF0IG1pY2ggYW5nZWdyaWZmZW4sIHVuZCBuaWNodCB1bWdla2VocnQhKQpbTW9lcmRlcjogR2Vpc3QgVG94IFV0YXRzXSBNb25zdGVyIGFsbGVyIFJlZ2lvbmVuLCB2ZXJlaW5pZ3QgZXVjaCBnZWdlbgpLTElOR0UhCm9kZXIKW01vZXJkZXI6IEdlaXN0IE1lY2tpc10gLi4uIGR1IE1vbnN0ZXJzY2hhZW5kZXIhCiAoRGFzIHNpY2ggZGllIGJlaWRlbiBmdWVyIE1vbnN0ZXIgaGFsdGVuLi4uLiAqa29wZnNjaHVldHRlbCopCltNb2VyZGVyOiBHZWlzdCBlaW5lcyBTY2htZXR0ZXJsaW5nXSBVbmdsYXVibGljaCEgV2llIGhhdCBLTElOR0UgZGFzCmdlc2NoYWZmdD8KIChFdHdhcyBncm9lc3NlbndhaG5zaW5uaWcsIGRlciBTY2htZXR0ZXJsaW5nLi4uLikKCmdyaW5zZW5kIC0gU2lsdmFuYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFsbGVyaGFuZCB2b20gTW9lcmRlcmthbmFsIChSb2NodXMsIDIxLiBTZXAgMTk5NCwgMTg6MjI6MjQpOgo+IFtNb2VyZGVyOiBHZWlzdCBlaW5lcyBTY2htZXR0ZXJsaW5nXSBVbmdsYXVibGljaCEgV2llIGhhdCBLTElOR0UgZGFzCj4gZ2VzY2hhZmZ0Pwo+ICAoRXR3YXMgZ3JvZXNzZW53YWhuc2lubmlnLCBkZXIgU2NobWV0dGVybGluZy4uLi4pCkRhIGhhdCBkaWUgNSUtUmVnZWwgenVnZXNjaGxhZ2VuLi4uIE1pdCBkaWVzZXIgV2FocnNjaGVpbmxpY2hrZWl0CndlcmRlbiBzb2xjaGUgTWVsZHVuZ2VuIGF1c2dlZ2ViZW4sIGVnYWwgd2llIHN0YXJrIGRhcyBNb25zdGVyCmltIFZlcmdsZWljaCB6dSBzZWluZW0gTW9lcmRlciBpc3QuCkRhcyBpc3QgQWJzaWNodCwgZ2VyYWRlIGRhbWl0IHNvbGNoZSB3aXR6aWdlbiBNZWxkdW5nZW4KZ2VsZWdlbnRsaWNoIGF1ZnRyZXRlbiBrb2VubmVuIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmU6IHJlOiBhbGxlcmhhbmQgLi4uIChLbGluZ2UsIDIyLiBTZXAgMTk5NCwgMDA6NDQ6MzcpOgpXYXMgc29sbCBkYXJhbiB3aXR6aWcgc2Vpbj8KRGVyIFNjaG1ldHRlcmxpbmcgaXN0IHZlcmRhbW10IHphZWguCkVzIGtvbW10IGltbWVyIHdpZWRlciB2b3IgZGFzIGVyIGRlbiBlcnN0ZW4gU2NobGFnIHVlYmVybGVidC4KRGFzIEx1ZGVyLgpBYmVyIGljaCBoYWIgamEgYXVjaCBlcnN0IDIxIDIxIDIxIDIwLgpXZW5uIGljaCBkaWUgcmVzdGxpY2hlbiAzIFpUcyBoYWJlIHdlcmRlIGljaCBkZW4gd2lsZGVuIEZsYXR0ZXJtYW4gbm9jaCBtYWwKZm9yZGVybi4KRGFzIHdhZXIgamEgbm9jaCBzY2hvZW5lciA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVpbiBMaWVibGluZ3N3aXR6IChDYXJhZGhyYXMsIDIyLiBTZXAgMTk5NCwgMDU6Mjg6NTQpOgoJCUh1aHUKCk1laW4gRXJzdGNoYXJha3RlciBoZWlsdCBncmFkZSBuYWNoLCBtZWluIFp3ZWl0Y2hhcmFrdGVyIGxlZ3QgbmVuIERyYWNoZW4KdW0sIGRhIGJsZWlidCBtaXIgamEgbm9jaCBaZWl0LCBuZW4gYmxvZWRlbiBXaXR6IHp1IHZlcm9lZmZlbnRsaWNoZW4gOi0pClp1ZmFlbGxpZyBtZWluIExpZWJsaW5nc3dpdHogOi0pICh3ZW5uIGF1Y2ggYWx0KQoKQWxzbzoKS29tbXQgZWluIEVsZXBoYW50IGluIGRpZSBIZXJyZW5zYXVuYS4gS3Vja3Qgc2ljaCB1bSB1bmQgd2FlbHp0IHNpY2ggZGFubgpsYWNoZW4gYXVmIGRlbSBCb2Rlbi4gUHJ1c3RlbmQgbWVpbnQgZXI6CiJVbmQgZGFtaXQgd29sbHQgaWhyIGVzc2VuPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNZWluIExpZWJsaW5nc3dpdHogKENhdHdlYXpsZSwgMjIuIFNlcCAxOTk0LCAxODoyNzoyNSk6CkllaCEKRGVyIGlzdCBqYSBzY2htdXR6aWchISEhCiAgY2F0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcmU6IE1laW4gTGllYmxpbmdzd2l0eiAoRGFuY2VyLCAyMy4gU2VwIDE5OTQsIDAwOjQ1OjAzKToKTWFuIGthbm4gc2ljaCBkYSBhdWNoIHdhc2NoZW4sIENhdCA7LSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aWUgZ2VtZWluOiAoRnJhZ2dsZSwgMjMuIFNlcCAxOTk0LCAxMjo0ODoyNyk6ClRvZSBydWZ0OiBXaWUga29tbWUgaWNoIGF1cyBkaWVzZW0gdmVyZmxpeHRlbiBMYWJ5cmludGggaGVyYXVzIG9obmUgZGVuClRvZSBydWZ0OiBQcmFua2VuIGRlcyBQYW50aGVycyB6dSBiZWdlZ25lbj8KVG9lIHJ1ZnQ6IGVzIGJyaW5ndCBqYSB3b2hsIGF1Y2ggbml4IGRlbSBqYWd1YXIgenUgZm9sZ2VuIG9kZXIgPwpbVG9kOl0gRWluIFBhbnRoZXIgaGF0IGdlcmFkZSBUb2UgdW1nZWJyYWNodC4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFtb3VzIGxhc3Qgd29yZHMgKEdyaW1tYm9ybiwgMjMuIFNlcCAxOTk0LCAxNjo1OToyNCk6CgpBbGxnZW1laW46R3JpbW1ib3JuICBOb2UsIGNyYXNoZW4ga2FubiBqb2YgYXVjaCBhbGxlaW5lLi4uCkRhbmFjaCBrYW0gZGFubiBuaWNodHMgbWVoci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9yZSBmYW1vdXMgbGFzdCB3b3JkcyAtIHdlbm4gYXVjaCBsYW5nIGhlci4uLiAoRGFuY2VyLCAyMy4gU2VwIDE5OTQsIDE5OjM0OjE0KToKCkVpbmVzIG5ldHRlbiBhYmVuZHMgdm9yIGRlciBTdGVpbmJlaXNzZXJob2VobGUsIGZ1ZW5mIEFiZW50ZXVyZXIKbHVuZ2VybiB6dXNhbW1lbiBydW0gdW5kIGJlcmF0ZW4sIHdhcyB6dSB0dW4gaXN0Li4uLgoKWXZvbm5lOiBpY2ggZ2VoIHNjaG9uIG1hbCB2b3IhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFtb3VzIExhc3QgV29yZHMgKENhcmFkaHJhcywgMjQuIFNlcCAxOTk0LCAxNzoxMzoxMSk6CkdlcmFkZSBlYmVuIGthbSBmb2xnZW5kZXMgKHZvciAyIE1pbnV0ZW4sIHVuZ2VzY2huaXR0ZW4pOgoKPiBUaWthIHJ1ZnQ6IGhpbGZlIGljaCBiaW4gaW0gZWlzIGVpbmdlYnJvY2hlbiwgd2llIGtvbW0gaWNoIHdpZWRlciByYXVzPz8KUmVwb3J0bW9kdXMgaXN0IGpldHp0IGVpbmdlc2NoYWx0ZXQuCltUb2Q6XSBFdHdhcyBnZWhlaW1uaXN2b2xsZXMgdW5kIHVuYmVrYW5udGVzIGhhdCBnZXJhZGUgVGlrYSB1bWdlYnJhY2h0LgoKKlRpa2EgdHJvZXN0ZW5kKgogICAgICAgICAgICAgQ2FyYWRocmFzIGRlciBld2lnZSBQcm9waGV0IDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc25vb3AgISAoU2lyLCAyNS4gU2VwIDE5OTQsIDE1OjU4OjI3KToKSGksCgpoZXV0ZSBiZWthbSBpY2ggd2llZGVyIGVpbmUgbHVzdGlnZSBTeXN0ZW1tZWxkdW5nIDoKClNub29wIHRlbXBvcmFlciBuaWNodCBlcmxhdWJ0IChDYXNoZ2VmYWhyKSEKCkRhIGthbm4gaWNoIG51ciBzYWdlbiwgaGVyIG1pdCBkZW0gR2VsZCAhIQoKU2lyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXMgbWVpbmVyIFNwcnVjaHNhbW1sdW5nLi4uLiAoU2VtaXJhLCAyNy4gU2VwIDE5OTQsIDEzOjExOjQyKToKSGFiIG1hbCBuIGJpc3NsIGdla3JhbXQgdW5kIGF1Y2ggd2FzIHNwYXNzaWdlcyBnZWZ1bmRlbjoKCkF1cyBlaW5lbSBIYW5kYnVjaCBmdWVyIFVTLVVudGVyaGFlbmRsZXIgbWl0IGRlciBVZFNTUjoKCiIxLzIgTGl0ZXIgV29ka2EgYmVkZXV0ZXQgbmljaHRzIGZ1ZXIgZWluZW4gZ3V0IHRyYWluaWVydGVuIFJ1c3NlbiwgZG9jaCBrYW5uCmVyIGRpZSBWZXJoYW5kbHVuZ3NmYWVoaWdrZWl0IGVpbmVzIFdlc3RtZW5zY2hlbiBzdGFyayBlaW5zY2hyYWVua2VuLiIKCldpZSB3YWhyLi4uKmdyaW5zKiBHZWh0IGRhcyBhdWNoIG1pdCBXaGlza3ksIENhcmE/CgpDaWFvLCBkaWUgS251ZGRlbG1hdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBdXMgbWVpbmVyIFNwcnVjaHNhbW1sdW5nLi4uLiAoQ2FyYWRocmFzLCAyNy4gU2VwIDE5OTQsIDE3OjMwOjM4KToKCUphdSwgS251ZGRlbG1hdXMsIGdlaHQgYXVjaCBtaXQgV2hpc2t5IDotKQoKRGFmdWVyIHNpbmQgZGllamVuaWdlbiwgZGllIG51ciBXb2RrYS9XaGlza3kgZ2V3b2hudCBzaW5kLCBkYW5uIHZpZWwKYW5mYWVsbGlnZXIgQmllciBnZWdlbnVlYmVyLCBlaW4gQmllciBzZXR6dCBzaWUgc2Nob24gemllbWxpY2ggbWF0dCA6LSkKQW0gYmVzdGVuIG1hbCB0cmlua3QgYWxsZXMsIGRhbm4gbWFjaHQgZXMgZWluZW0gYW0gd2VuaWdzdGVuIHdhcyBhdXMuCgpBZWVlaCwgc29sbCBrZWluZSBBdWZmb3JkZXJ1bmcgenVyIFN1Y2h0IHNlaW4gOi0pCkFiZXIgd2FzIHNhZyBpY2gsIHNjaGxpZXNzbGljaCBzaW5kIHdpciBqYSBpbiBlaW5lbSBtdWQgOi0pKSkKKmZyb2VobGljaCBncmluc2VuZCoKCkNhcmFkaHJhcyBkZXIgZXdpZ2UgU2FldS4uLiBhZWggcXVhdHNjaCwgUHJvcGhldAogKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxldHplIFdvcnRlIChHdWxkdWthdCwgIDIuIE9rdCAxOTk0LCAyMDozMzoyNyk6CltBbGxnZW1laW46WnVlcmlsZXVdIGJvbWJ0IHNpY2ggbnVuIGRlbiB3ZWcgZnJlaSA9OikpCiAuCiAuCiAuCltUb2Q6XSBEeW5hbWl0IGhhdCBnZXJhZGUgWnVlcmlsZXUgdW1nZWJyYWNodC4KIC4KIC4KW0FiZW50ZXVlcjpUb2V0ZXJdIGJvbWJlbnVlYmVycmFzY2h1bmcgOigKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTGV0emUgV29ydGUgKENhcmFkaHJhcywgIDQuIE9rdCAxOTk0LCAyMzo0Mzo0Myk6ClRvZSBydWZ0OiB3aWUgd2FyIGRhcz8gSGlwcGUgbmVydnQgdW5kIG11c3Mgd2VnPwpbQWxsZ2VtZWluOkNhcmFkaHJhc10gZmFtb3VzIGxhc3Qgd29yZHM/CltBbGxnZW1laW46VG9lXSBlcnN0IG1hbCBOVVIgZHVtbSBmcmFnZW4gLSA6LSkpICAgICBbZGFua2VdCltBbGxnZW1laW46VG9lXSBXYXMgd2lsbCBIaXBwZSBtaXQgNyAoU0lFQkVOKSBMZWRlcmphY2tlbj8KW0FsbGdlbWVpbjpUb2VdIHNvIGRpY2sgd2llIGRlciBpc3QgLSBkYS4uLgo+IFtBbGxnZW1laW46VG9lXSBGYXN0ZW5rdXIKPiBbQWxsZ2VtZWluOlRvZV0gTG9obnQgc2ljaCAic2NobmVsbCIgKHN0dWZlIDE3KSB6dSBsZXJuZW4/CltUb2Q6XSBIaXBwZSBoYXQgZ2VyYWRlIFRvZSB1bWdlYnJhY2h0LgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQmVpbGVpZCBUb2UhIERvY2ggRkxXLi4uCltBbGxnZW1laW46U2NocnVtcGZpXSBiZWlsZWlkIHRvZSBpY2gga2VubiBkYXMKPiBbQWxsZ2VtZWluOlNlbWlyYV0gYWxzbyBkb2NoIGZhbW91cyBsYXN0IHdvcmRzLi4uLmJlaWxlaWQgdG9lCgoKdW5kIG5vY2ggZWluZSB1bmdlc2Nobml0dGVuZSBXYXJudW5nLCBkZW4gWndlcmdlbmtvZW5pZyBuaWNodCBhbnp1Z3JlaWZlbjoKClNpYWJhdCBrb21tdCBhbi4KICBTaWFiYXQgZ3JlaWZ0IGRlbiBXYWVjaHRlciBtaXQgZWluZW0gU2Nod2VydCBhbi4KICBTaWFiYXQgdHJpZmZ0IGRlbiBXYWVjaHRlciBoYXJ0LgogIFNpYWJhdCBncmVpZnQgZGVuIFdhZWNodGVyIG1pdCBlaW5lbSBTY2h3ZXJ0IGFuLgogIFNpYWJhdCBrcmF0enQgZGVuIFdhZWNodGVyLgogIFNpYWJhdCBncmVpZnQgZGVuIEtvZW5pZyBtaXQgZWluZW0gU2Nod2VydCBhbi4KICBTaWFiYXQgdmVyZmVobHQgZGVuIEtvZW5pZy4KICBEZXIgS29lbmlnIGdyZWlmdCBTaWFiYXQgbWl0IHNlaW5lbSBrb2VuaWdsaWNoZW4gWm9ybiBhbi4KICBEZXIgS29lbmlnIHRyaWZmdCBTaWFiYXQgaGFydC4KICBEZXIgV2FlY2h0ZXIgZ3JlaWZ0IFNpYWJhdCBtaXQgZWluZW0gSGFtbWVyIGFuLgogIERlciBXYWVjaHRlciB0cmlmZnQgU2lhYmF0IHNlaHIgaGFydC4KU2lhYmF0IGZhZWxsdCB0b3QgenUgQm9kZW4uCkR1IHNpZWhzdCBlaW5lIGR1bmtsZSBHZXN0YWx0LCBkaWUgZXR3YXMgRHVuc3QgZWluc2FtbWVsdCAuLi4gb2RlciB2aWVsbGVpY2h0CmJpbGRlc3QgZHUgRGlyIGRhcyBhdWNoIG51ciBlaW4gLi4uCltUb2Q6XSBFaW4gV2FlY2h0ZXIgaGF0IGdlcmFkZSBTaWFiYXQgdW1nZWJyYWNodC4KRWluZSBMZWljaGUgd2lyZCB2b24gZWluZW0gS29lbmlnIHZvbGwgSGluZ2VidW5nIHZlcnNwZWlzdC4KRWluIEtvZW5pZyBuaW1tdCBlaW5lbiBIYW1tZXIuCkVpbiBLb2VuaWcgbmltbXQgZWluIEtpc3Nlbi4KRWluIEtvZW5pZyBuaW1tdCBlaW4gS2lzc2VuLgpFaW4gS29lbmlnIG5pbW10IGVpbmUgaGFuZHZvbGwgUmVpcy4KRWluIEtvZW5pZyBuaW1tdCBlaW5lbiBTY2hsdWVzc2VsLgpFaW4gS29lbmlnIG5pbW10IGVpbmUgQXh0LgpFaW4gS29lbmlnIG5pbW10IGVpbmUgQXh0LgpFaW4gS29lbmlnIG5pbW10IGVpbiBCdWNoLgpFaW4gS29lbmlnIG5pbW10IGVpbmUgRmFja2VsLgpFaW4gS29lbmlnIG5pbW10IGVpbmUgSG9zZS4KRWluIEtvZW5pZyBuaW1tdCBlaW5lbiBUYXJuaGVsbS4KRWluIEtvZW5pZyBuaW1tdCAzNTgzIE11ZW56ZW4uCkVpbiBLb2VuaWcgbmltbXQgZWluZW4gWmF1YmVyc3RhYi4KRWluIEtvZW5pZyBuaW1tdCBlaW5lbiBCZXV0ZWwuCkVpbiBLb2VuaWcgbmltbXQgZWluIFNjaHdlcnQuCkVpbiBLb2VuaWcgbmltbXQgZWluZW4gU3BpZWdlbHNjaGlsZC4KRWluIEtvZW5pZyBuaW1tdCBlaW4gRWluIFBhYXIgTGVkZXJoYW5kc2NodWhlLgpFaW4gS29lbmlnIG5pbW10IGVpbmVuIFJpbmcuCkVpbiBLb2VuaWcgbmltbXQgZWluZW4gQmV1dGVsLgpFaW4gS29lbmlnIG5pbW10IGVpbiBUaWNrZXQuCkVpbiBLb2VuaWcgbmltbXQgZWluIEFtdWxldHQuCkVpbiBLb2VuaWcgbmltbXQgZWluZW4gTGljaHRoZWxtLgpFaW4gS29lbmlnIG5pbW10IExlZGVyc3RpZWZlbC4KRWluIEtvZW5pZyBuaW1tdCBlaW5lIEhhaWhhdXQuCgpnaWVyaWdlciBKdW5nZSA6KQoKCUNhcmFkaHJhcyBkZXIgZXdpZ2UgUHJvcGhldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJtZSBOZXR6dG90ZSA6KSAoQ2FyYWRocmFzLCAgNC4gT2t0IDE5OTQsIDIzOjQ1OjU4KToKSGV1dGUgZ2VzZWhlbiA7LSkKClNlbWlyYSB2ZXJicmVpdGV0IGRpZSBLbnVkZGVsZXBpZGVtaWUgaW5zIFJlaWNoIGRlciBOZXR6dG90ZW4uCgoqZ3JpbnMqCQlDYXJhZGhyYXMgZGVyIGV3aWdlIFByb3BoZXQKUFM6IHdpcmQgamEgbHVzdGlnIGJlaSBkZW5lbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgUmV6ZXB0IChDYXJhZGhyYXMsICA1LiBPa3QgMTk5NCwgMDM6MDg6MjApOgoJSHVodSBhbGxlCgpVbmQgZ2xlaWNoIG5vY2ggZWluIEdlcmljaHQsIGRpZXNtYWwgZXR3YXMgdWViZXJiYWNrZW5lcy4KCiAgICAgICAgICAgICAgICAgIFp3ZXJnZW5rb2VuaWcgbWl0IFp1Y2NoaW5pIGEgbGEgTUcKICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKTWFuIGJlbm9ldGlndCBmb2xnZW5kZSBob2NocXVhbGl0YXRpdmUgWnV0YXRlbjoKCmVpbmVuIFp3ZXJnZW5rb2VuaWcsIGFtIGJlc3RlbiBhdXMgZGVtIEFuYmF1Z2ViaWV0IHZvbiBCb2luZywgU3VlZGhhbmcsCm5pY2h0IHp1IGZyaXNjaCwgYWJlciBhdWNoIG5pY2h0IHp1IGFiZ2VoYW5nZW4KCmVpbmlnZSBadWNjaGluaXMsIGplIG5hY2ggR2VzY2htYWNrLCBlcnN0IG1hbCBldHdhcyB3ZW5pZ2VyLCB3ZXIga2VpbmUKZmluZGV0LCBrYW5uIGF1Y2ggS2Fyb3R0ZW4gdm9tIEJhdWVybmhvZiBuZWhtZW4KCnp3ZWkgWndlcmdlbndhZWNodGVyLCBnaWJ0IGVzIG1laXN0IGltIFZpZXJlcnBhY2sgaW4gZGVyIFp3ZXJnZW5zdGFkdAoKZXR3YXMgS2Flc2UgZ2VyaWViZW4sIGVpbmUgTWlzY2h1bmcgYXVzIEVtbWVudGFsZXIgdW5kIEdvdWRhIG1pdHRlbGFsdAp3aXJkIGJldm9yenVndCAoYW0gYmVzdGVuIGFuIE1hZXVzZW4gYXVzcHJvYmllcmVuLCBpbiBkZXIgRmFsbGUgd28gZGllCm1laXN0ZW4gc3RlcmJlbiB3YXIgZGVyIGJlc3RlIEthZXNlKQoKU2FseiBhdXMgZGVtIE1lZXIgYmVpIFRpdGl3dSwKClBmZWZmZXIgdm9uIGRvcnQsIHdvIGRpZSBMZXV0ZSBoaW5nZXNjaGlja3Qgd2VyZGVuLCB3ZW5uIG1hbiBzYWd0OgoiR2VoIGRvY2ggaGluIHdvIGRlciBQZmVmZmVyIHdhZWNoc3QiIChhbHNvIFRhbWliYXIpCgpFdHdhcyBNaWxjaCBvZGVyIFNhaG5lIChNaWxjaCBpc3QgYmVpIGRlciBLdWggaW0gQmF1ZXJuaG9mIGVyaGFlbHRsaWNoKQoKVHVlZnRlbiBvZGVyIEthcnRvZmZlbG4sIGRhenUgYW0gYmVzdGVuIGluIGplbmUgdmlydHVlbGxlIFdlbHQgd2VjaHNlbG4sCmRpZSBtYW4gZXJyZWljaHQsIGluZGVtIG1hbiAnZW5kZScgZWluZ2lidCBvZGVyICdzY2hsYWZlIGVpbicuClNjaGxhZmUgZWluIHplaWd0IGphIGRldXRsaWNoLCBkYXNzIG1hbiBkaWVzZSB2aXJ0dWVsbGUgd2VsdCBkYW5uIG51cgp0cmFldW10LgoKVm9yZ2VoZW5zd2Vpc2U6CkthcnRvZmZlbG4gc2NoYWVsZW4sIGluIFNjaGVpYmVuIHNjaG5laWRlbi4gS2Flc2Uga2xlaW5yZWliZW4sIGd1dCBtaXNjaGVuLApkaWUgWndlcmdlbndhZWNodGVyIHJhc3BlbG4gdW5kIGRydW50ZXJoZWJlbiwgZ2lidCBlaW5lbiBleHF1aXNpdGVuCkdlc2NobWFjay4gTWFuIGthbm4gc2llIGFsbGVyZGluZ3MgYXVjaCBpbiBrbGVpbmUgU3RyZWlmZW4gc2NobmVpZGVuIHVuZApkYW5uIGFid2VjaHNlbG5kIG1pdCBkZW4gS2FydG9mZmVsc2NoZWliZW4gYXVmc2NoaWNodGVuLiBKZWRlIFNjaGljaHQKZ2V0cmVubnQgc2FsemVuIHVuZCBwZmVmZmVybiwgaW4gZGllIE1pdHRlIGRlciBGb3JtIGRlbiBad2VyZ2Vua29lbmlnCmVpbmJldHRlbiwgdm9yaGVyIGlobiBldHdhcyBtaXQgTWlsY2ggb2RlciBTYWhuZSBlaW5iYWxzYW1pZXJlbiwgZGFtaXQKc2VpbmUgTGVpY2hlIG5pY2h0IHNvIHNjaG5lbGwgc2NobGVjaHQgd2lyZC4gQXVzc2VucnVtIHVtIGRlbiBLb2VuaWcKU2NoZWliZW4gdm9uIGRlbiBadWNjaGluaXMgYW5icmluZ2VuLCB1bmQgb2JlbiBkcmF1ZiBhdWNoLCB3aWUgZWluIFNhcmctCmRlY2tlbC4gQW0gYmVzdGVuIG5vY2ggZXR3YXMgS25vYmxhdWNoIGRhenUsIGRlbm4gc29uc3Qga29tbWVuIFZhbXBpcmUKYXVzIGRlbSBGcmllZGhvZiB1bmQgdmVyc3VjaGVuLCBkaWUgWnVjY2hpbmlzY2hpY2h0IGFuenVoZWJlbiwgd2VpbCBzaWUKZWluZW4gU2FyZyB6dW0gcmVpbmxlZ2VuIHN1Y2hlbi4gRGFydWViZXIgbm9jaCBlaW5lIFNjaGljaHQgS2FydG9mZmVsbgp1bmQgZGVuIFJlc3QgZGVyIFNhaG5lIGRydWViZXJnaWVzc2VuLiBNaXQgTXVza2F0IG5vY2ggbmFjaHd1ZXJ6ZW4uCgpSZXN0IHZvbSBHZXJpZWJlbmVuIEthZXNlIGRhcnVlYmVyc3RyZXVlbiB1bmQgd2VyIGVzIGJlc29uZGVycyBrbnVzcHJpZwptYWcsIGthbm4gdm9uIGRlbiBad2VyZ2Vud2FlY2h0ZXJzdHJlaWZlbiBub2NoIHdlbGNoZSBxdWVyIGRydWViZXJsZWdlbi4KRGFubiBhYiBpbiBkaWUgQmFja3JvZWhyZSwgZXZlbnR1ZWxsIGthbm4gbWFuIGF1Y2ggenUgZmV1ZXJzcGVpZW5kZW4KRHJhY2hlbiBvZGVyIGluIGRpZSBIb2VsbGUsIGRvcnQgaXN0IGVzIGJlc3RpbW10IHNlaHIgc2Nob2VuIHdhcm0uIERhcwpnYW56ZSA0NSBNaW51dGVuIGxhbmcgYmFja2VuIGxhc3NlbiBiZWkgbmljaHQgbWVociBhbHMgMjIwIEdyYWQgdW5kIGRhbm4Kd3VlbnNjaGUgaWNoIGd1dGVuIEFwcGV0aXQuCgogICAgICAgICAgIENhcmFkaHJhcyBkZXIgZXdpZ2UgUHJvcGhldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHJ1ZiAoU2lsdmFuYSwgIDUuIE9rdCAxOTk0LCAxNDozMjo1MSk6Ck1hbCB3YXMgenVtIFRoZW1hIGdlaGFlc3NpZ2UgU3BpZWxlci9NYWdpZXIuLi4gOy0pCgpbVG9kOl0gRHluYW1pdCBoYXQgZ2VyYWRlIE9ya3RvZXRlciB1bWdlYnJhY2h0LgpbQWxsZ2VtZWluOlN0YWhsZG9ybl0gU08ga29tbXQgbWFuIGF1cyBkZW4ga2F0YWtvbWJlbiByYXVzLi4uCltBbGxnZW1laW46WmFyZG96XSBXaWUga2FubiBtYW4gbnVyIHZlcmdlc3NlbiBkYXMgRHluYW1pdCBhYnp1bGVnZW4/CltBbGxnZW1laW46V2FyZ29uXSBFciB3b2xsdGUgd29obCBzZWhlbiwgb2IgZGllIEx1bnRlIHdpcmtsaWNoIGFuYmxlaWJ0Li4uIDspCltBbGxnZW1laW46VHJlbW9yXSBFciBoYXQgc2ljaCBiZXN0aW1tdCBnZXd1bmRlcnQsIHdhcnVtIGVzIHNvIHppc2NodCEgOi0pCgpCZWlsZWlkLCBPcmt0b2V0ZXIhCgpTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgaXN0IGV4a2x1c2l2ZXMgU2VoZXJ3aXNzZW4uLi4gKEhhcmRpbCwgIDUuIE9rdCAxOTk0LCAxNDo1NjowNyk6CkJvQm8gZnJhZ3QgVHp1aW9wOiBIYXQgc2lhYmF0IGRpciBkYXMgZ2VsZCB3aWVkZXJnZWdlYmVuPyBJY2ggaGF0dGUgaWhuIGFuCkRpY2ggdmVyd2llc2VuLi4uPwpUenVpb3Agc2FndDogbmVpbiAtIGlzdCBhYmVyIG5pY2h0IHNvIHdpY2h0aWcuIGljaCB3ZWlzcywgd29zIG5ldWVzIGdpYnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9mdCBnZW51ZyBnaWJ0cyBuaWNodC4gKEhhcmRpbCwgIDUuIE9rdCAxOTk0LCAxNDo1OTozOSk6CgpCb0JvIHNhZ3Q6IGhhcmRpbCwgaWNoIHRhdWNoIG9mdCBnZW51ZyBpbiBkZXIgemVpdHVuZyBhdWYuLi4KQm9CbyBzYWd0OiBoYXJkaWwsIGljaCB0YXVjaCBvZnQgZ2VudWcgaW4gZGVyIHplaXR1bmcgYXVmLi4uCkJvQm8gc2FndDogaGFyZGlsLCBpY2ggdGF1Y2ggb2Z0IGdlbnVnIGluIGRlciB6ZWl0dW5nIGF1Zi4uLgpCb0JvIHNhZ3Q6IGhhcmRpbCwgaWNoIHRhdWNoIG9mdCBnZW51ZyBpbiBkZXIgemVpdHVuZyBhdWYuLi4KQm9CbyBzYWd0OiBoYXJkaWwsIGljaCB0YXVjaCBvZnQgZ2VudWcgaW4gZGVyIHplaXR1bmcgYXVmLi4uCkJvQm8gc2FndDogaGFyZGlsLCBpY2ggdGF1Y2ggb2Z0IGdlbnVnIGluIGRlciB6ZWl0dW5nIGF1Zi4uLgpCb0JvIHNhZ3Q6IGhhcmRpbCwgaWNoIHRhdWNoIG9mdCBnZW51ZyBpbiBkZXIgemVpdHVuZyBhdWYuLi4KQm9CbyBzYWd0OiBoYXJkaWwsIGljaCB0YXVjaCBvZnQgZ2VudWcgaW4gZGVyIHplaXR1bmcgYXVmLi4uCkJvQm8gc2FndDogaGFyZGlsLCBpY2ggdGF1Y2ggb2Z0IGdlbnVnIGluIGRlciB6ZWl0dW5nIGF1Zi4uLgpCb0JvIHNhZ3Q6IGhhcmRpbCwgaWNoIHRhdWNoIG9mdCBnZW51ZyBpbiBkZXIgemVpdHVuZyBhdWYuLi4KQm9CbyBzYWd0OiBoYXJkaWwsIGljaCB0YXVjaCBvZnQgZ2VudWcgaW4gZGVyIHplaXR1bmcgYXVmLi4uCkJvQm8gc2FndDogaGFyZGlsLCBpY2ggdGF1Y2ggb2Z0IGdlbnVnIGluIGRlciB6ZWl0dW5nIGF1Zi4uLgpCb0JvIHNhZ3Q6IGhhcmRpbCwgaWNoIHRhdWNoIG9mdCBnZW51ZyBpbiBkZXIgemVpdHVuZyBhdWYuLi4KQm9CbyBzYWd0OiBoYXJkaWwsIGljaCB0YXVjaCBvZnQgZ2VudWcgaW4gZGVyIHplaXR1bmcgYXVmLi4uCkJvQm8gc2FndDogaGFyZGlsLCBpY2ggdGF1Y2ggb2Z0IGdlbnVnIGluIGRlciB6ZWl0dW5nIGF1Zi4uLgpCb0JvIHNhZ3Q6IGhhcmRpbCwgaWNoIHRhdWNoIG9mdCBnZW51ZyBpbiBkZXIgemVpdHVuZyBhdWYuLi4KClNvLiBEYW5uIHRhdWNoIG1hbCBhYiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VnZW5kYXJzdGVsbHVuZyAoSGFyZGlsLCAgNS4gT2t0IDE5OTQsIDE1OjAxOjMzKToKQm9CbyBzYWd0OiBkYXMgc2llaHQgamEgc28gYXVzLCBhbHMgb2IgaWNoIGRhcyBnZXdlc2VuIHdhZXJlLgpCb0JvIHNhZ3Q6IGhhcmRpbCwgYml0dGUsIG1hY2gncyB3ZWcKVHp1aW9wIHRyb2VzdGV0IEJvQm8uCj5Cb0JvIHNjaGltcGZ0IGxlaXNlIG11cm1lbG5kIHZvciBzaWNoIGhpbi4gRXIgZnVjaHRlbHQgbWl0IGRlbiBIYWVuZGVuIGluCmRlciBMdWZ0IGhlcnVtIHVuZCBzY2h1ZXR0ZWx0IGRlbiBLb3BmIHdpZSBlaW4gYWx0ZXIgR3JlaXMuCkJvQm8gc2FndDogZHUgYmlzdCBnZW1laW4KVHp1aW9wIHNhZ3Q6IHNjaHJlaWIgZG9jaCBuZSBnZWduZGFyc3RlbGx1bmcKQm9CbyBzYWd0OiBpY2ggd2lsbCBuaWNodApCb0JvIHNhZ3Q6IG5laW4KCkJlc3NlciBzbywgQm9ibyA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgozLlRlaWwgOikgKEhhcmRpbCwgIDUuIE9rdCAxOTk0LCAxNTowNTo1MCk6CkJvQm8gc2FndDogd28ga29tbWVuIHdpciBkYSBoaW4sIHdlbm4gamVkZXIgamVkZW4gTWlzdCB2ZXJvZWZmZW50bGljaHQ/CkJvQm8gc2NobmllZnQgZWluIGJpc3NjaGVuLiBEdSBibGlja3N0IGlycml0aWVydCB6dXIgU2VpdGUsIGFscyBlciBzaWNoCnZlcnN0b2hsZW4gZWluZSBUcmFlbmUgYXVzIGRlbSBBdWdlbndpbmtlbCByZWlidC4KQm9CbyBzY2hlaW50IHp1IGRlbmtlbjogd2VubiBEdSBEaXIgZWluIGtsZWluZXMgYmlzc2NoZW4gdmVyYWxiZXJ0IHZvcmtvbW1zdCwKZGFubiBsaWVnc3QgRHUgdmllbGxlaWNodCBnYXIgbmljaHQgbWFsIHNvIGZhbHNjaC4uLiA7KQpUenVpb3AgdW5kIEhhcmRpbCBzaW5kIGltbWVyIHNvIGFsYmVybi4gRGFzIGtvbW10IHZvbSB2aWVsZW4gRmVkZXJ3ZWlzc2VuLgpCb0JvIHNhZ3Q6IGltbWVyIGljaCAtIGFscyBvYiBuaWNodCBzY2hvbiBMYXJzIGdlbnVnIFNvcmdlbiBtaXQgbWlyIGhhZXR0ZS4KQm9CbyBzYWd0OiBGZWRlcndlaXNzZXI/Cj5Cb0JvIHdpcmQgbmV1Z2llcmlnLgpUenVpb3Agc2FndDogZGFzIHdhZXJlIGF1Y2ggbm9jaCBlaW5lIGlkZWUKQm9CbyBzYWd0OiBpY2ggbGFzcyBldWNoIGpldHp0IGluIFJ1aGUKQm9CbyBzYWd0OiB3aWVkZXJzZWhuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgRkxXIGdlaHQgYW4gbWljaCA6KSAoSGlnaGxhbmRlciwgIDUuIE9rdCAxOTk0LCAxNzo0NzoyNik6Ci4uLiB3aXIgdWViZXJ0cmFnZW4gZmFzdCBsaXZlIGF1cyBNb3JnZW5HcmF1ZW4sIGVzIGlzdCBkZXIgNS4gT2t0b2Jlciwga3VyegpuYWNoIGhhbGIgc2VjaHMgYW0gQWJlbmQuICAgIFNvIGVyc2NoaWVuZW4gYXVmIGRlbSBTY2hpcm0uLi4KW1RvZDpdIEVpbiBTdGVpbmJlaXNzZXIgaGF0IGdlcmFkZSBTaWFiYXQgdW1nZWJyYWNodC4KU2lhYmF0IHJ1ZnQ6IGluIGRlciBzdGVpbmJlaXNzZXIgaG9lbGUgbGlnZW4gamVkZSBtZW5nZSBzYWNoZW4gcnVtLCB1bnRlcgpTaWFiYXQgcnVmdDogYW5kZXJlbSBlaW4gbWV0YWxscGFuemVyIGVpbiBnbGFlbnplbmRlciwgdmllbCBzcGFzcyBiZWltIGhvbGVuClNpYWJhdCBydWZ0OiBvayBpY2ggaG9sIGVzIG1pciBzZWxic3Qgd2llZGVyLCBhdWYgZWluIG5ldWVzCltBbGxnZW1laW46SGF3a21vb25dIGthbm4gbWlyIGplbWFuZCBzYWdlbiwgd28gZXMgenVtIGFtYXJ5bGxpcy1zY2hsb3NzIGdlaHQKW0FsbGdlbWVpbjpIYXdrbW9vbl0gPyBpY2ggc3RlaGUgYXVmIGRlciBydW1hdGEtYnJ1ZWNrZSAuLgpMb3JkIEFsYXJpbiBydWZ0OiBIYWxsbyA6KSkKW1RvZDpdIEVpbiBSYWV1YmVyIGhhdCBnZXJhZGUgV2lsbG93IHVtZ2VicmFjaHQuCltBbGxnZW1laW46UnVkaXJhdHRlciB0cmF1ZXJ0IHVtIFdpbGxvdy5dCltBbGxnZW1laW46QmV6ICBmaW5kZXQgZGFzIGVjaHQgc2NoYWRlXQpbQWxsZ2VtZWluOlJ5bmVdIGFjaCwgd2lsbG93IGFsdGVyIGt1bXBlbCAtIGJlaWxlaWQuLi4gOigoCltBYmVudGV1ZXI6VGVybWludXNdIGlnaXR0ISBpY2ggc3RlaCBuaWNodCBhdWYgZGFlbW9uZW46KQpEaWUgSHlkcmEgZXJoZWJ0IHNpY2ggYXVzIGRlbSBUYWwuCltBYmVudGV1ZXI6VGVybWludXNdIG5hY2ggd2VsY2hlbSB6dWZhbGxzLXByaW56aXAgZnVua3Rpb25pZXJldCBkZW5uIG1hbCBlaW4KW0FiZW50ZXVlcjpUZXJtaW51c10gemF1YmVzcHJ1Y2ggZ2VnZW4gZWluZW4gcGVpdHNjaGVuZGFlbW9uPwpGdWVyc3QgV2FyZ29uIHJ1ZnQ6IERhbmtlLCBKb2YhIDspCltUb2Q6XSBFaW4gU3RlaW5iZWlzc2VyIGhhdCBnZXJhZGUgU2lhYmF0IHVtZ2VicmFjaHQuCgouLi4gZXMgaXN0IGpldHp0IGRyZWl2aWVydGVsIHNlY2hzLCB1bmQgZGFzIGlzdCBkYXMgRW5kZSBkZXIgVWViZXJ0cmFndW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBiZWltIFNjaG1pZWQuLi4uIChIYXdrbW9vbiwgIDYuIE9rdCAxOTk0LCAxODoyNzoxOSk6Cj52ZXJnbGVpY2hlIGhhbmRheHQgbWl0IHp3ZXJnZW5heHQKRHUgZ2lic3QgZGVtIFNjaG1pZWQgNTAwIEdvbGRzdHVlY2tlLgpEZXIgU2NobWllZCBzYWd0OiBEaWUgQXh0IHdpZWd0IG1laHIgYWxzIGRpZSBBeHQuCkRlciBTY2htaWVkIHNhZ3Q6IERpZSBBeHQgaXN0IHNjaGxlY2h0ZXIgYWxzIGRpZSBBeHQuCgo6LSkKCkRhcyBuZW5uZSBpY2ggZWluZSB3YWhyaGFmdCBpbmZvcm1hdGl2ZSBBdXNrdW5mdCEKCkV1ZXIgSGF3a21vb24gKGltIFF1ZXN0ZW5yYXVzY2guLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoIGJlaW0gU2NobWllZC4uLi4gKFF1ZW5naXN0dSwgIDYuIE9rdCAxOTk0LCAyMTozODowMSk6CkhpIEhhd2ttb29uICh1bmQgSGkgYXVjaCBhbiBhbGxlIGFuZGVyZW4gS3VuZGVuIGRlcyBTY2htaWVkZXMpCkRhcyBmb2xnZW5kZSBnZWhvZXJ0IGVpZ2VudGxpY2ggbmljaHQgaW4gZGllIFdpdHplcnVicmlrLCBhYmVyIGRhIGVzIGVpbgpSZXBseSBpc3QuLi4gRGllIEF1c2t1bmZ0IGRlcyBTY2htaWVkZXMgaXN0IGltbWVyIGVpbmRldXRpZzogRGVuIEdlZ2Vuc3RhbmQsCmRlbiBEdSB6dWVyc3QgbmVubnN0LCBuZW5udCBhdWNoIGRlciBTY2htaWVkIGluIGplZGVtIFNhdHogenVlcnN0ICh1bmQgZGVuCnp3ZWl0Z2VuYW5udGVuIGF1Y2ggYW4gendlaXRlciBTdGVsbGUsIGxvZ2lzY2gpLiAtPiBBbHNvOgpEaWUgSGFuZGF4dCB3aWVndCBtZWhyIGFscyBkaWUgWndlcmdlbmF4dC4KRGllIEhhbmRheHQgaXN0IHNjaGxlY2h0ZXIgYWxzIGRpZSBad2VyZ2VuYXh0LgoKSWNoIGhvZmZlLCBpY2gga29ubnRlIGRlbSBlaW5lbiBvZGVyIGRlciBhbmRlcmVuIGVpbiB3ZW5pZyBoZWxmZW4uLi4gKE1pY2gKaGF0IGVzIGZhc3QgZWluIGhhbGJlcyBKYWhyIE11ZGRlbiBnZWtvc3RldCwgYmlzIGljaCBlcyBrYXBpZXJ0IGhhdHRlIDspClRzY2h1ZXNzaW5nIFF1ZW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYW1vdXMgbGFzdCBXb3JkcyAoU2lsdmFuYSwgIDcuIE9rdCAxOTk0LCAwOTo0MDozOCk6Clp1ciBBYmxlbmt1bmcgbWFsIGVpbiBwYWFyIChsZWlkZXIgZW5nbGlzY2hlKSBaaXRhdGUgYXVzIGRlbiBmYW1vdXMgbGFzdAp3b3JkcyBvZiBmYW50YXN5LXJvbGVwbGF5aW5nOgoKIkkgc3RhYiB0aGUgZHJhZ29uIGFuZCB0ZWxsIGl0IHRvIGdldCBvZmYgbWUuIgoiSSBkcmluayB0aGUgYm90dGxlIG1hcmtlZCBQT0lTT04gb24gdGhlIG9mZi1jaGFuY2UgdGhhdCBpdCdzIHRoZQpleHRyYS1oZWFsaW5nIHBvdGlvbi4iCiJJIGtpbGwgaXQuIgoiTGV0IG1lIGhhbmRsZSB0aGlzLiIKIldoYWRkeWEgbWVhbiwgYSBwZW50YWdyYW0gb25seSBoYXMgRklWRSBzaWRlcz8iCiJXaGF0IGEgdXNlbGVzcyBzY3JvbGwuIEl0IGp1c3Qgc2F5cywgSEFTVFVSIEhBU1RVUiBIQVNUVVIgb3ZlciBhbmQgb3ZlcgphZ2Fpbi4uLiIKIldoeSBpcyB5b3VyIHRvcmNoIGZsYW1lIHR1cm5pbmcgYmx1ZT8iCiJUcnVzdCBtZS4iCiJJIG5ldmVyIGdldCBsb3N0LiIKIkRhbW1pdCwgdGhpcyB0aGluZyB3b24ndCBkaWUhIgoiSGUgaGl0IG1lIGZvciBIT1cgTVVDSD8/Pz8/IgoiVGhleSdyZSBvbmx5IGtvYm9sZHMhIgoiSGV5LCB0aGlzIGNoZXN0IGp1c3QgYml0IG1lISIgKEhhbGxvIENhdCopICA7LSkKIkkgdHJ5IHRvIG1vdmUgc2lsZW50bHkgaW4gcGxhdGUgYXJtb3IuLi4iCiJJIGRpZG4ndCBmaW5kIGFueSB0cmFwcyAhISIKIldvbmRlciB3aGF0IHRoaXMgYnV0dG9uIGRvZXMgPyIgKEhhbGxvIFJvY2h1cykgIDstKQoiVGhpcyAyNTAnIHdhbGwgaGFzIHNvIG1hbnkgaG9sZXMsIGl0IHNob3VsZCBiZSBlYXN5IHRvIGNsaW1iLiIKIkknbGwganVzdCBjbG9zZSBteSBleWVzIGFuZCB3YWxrIHVwIHRvIHRoZSBkcmFjb2xpc2sgaG9sZGluZyB1cCBteSBtaXJyb3IiCiJDYW4gSSBlYXQgdGhpcyBncmVlbiBzbGltZT8iCiJJJ2xsIGp1c3Qgd2FsayB1cCB0byB0aGUgZHJhZ29uIGludmlzaWJseSIKIldoeSBpcyB0aGlzIG1hbiBzcGVha2luZyBpbiBzaWduIGxhbmd1YWdlPyIKIlRoaXMgdHlwZSBvZiB1bmRlYWQgY2FuJ3QgZHJhaW4gbGV2ZWxzIgoiV2UgYXJlIGluIGx1Y2shIFRoZSBkcmFnb24gaXMgc2xlZXBpbmciCiJUaGF0J3Mgb25seSBhIHN0YXR1ZSIKIlRoZXJlIGlzIG5vIHRyYXAgb24gdGhlIGRvb3IsIHNvIGxldCdzIG9wZW4gaXQiCiJJIGhhdmUgdGhpcyBkdW5nZW9uIGF0IGhvbWUsIEkga25vdyB3aGVyZSBldmVyeXRoaW5nIGlzISIKIkRvbid0IHdvcnJ5LCB0aGUgRE0gd29uJ3QgaG9zZSBtZSIKIldlJ2xsIHVudGllIHRoZSBwcmlzb25lcnMgYW5kIGxvY2sgdGhlbSBpbiB0aGUgY2xvc2V0LiIKIldoeSBjYW4ndCB3ZSB0YWtlIENsYXJpc3NhIChEaXNndWlzZWQgZXZpbCBoaWdoIHByaWVzdGVzcykgd2l0aCB1cz8iCiJIb3cgbXVjaCB3aWxsIHlvdSBnaXZlIG1lIGZvciB0aGlzIGlkb2wgSSBmb3VuZCAoY3Vyc2VkKT8iCiJEb24ndCBJIGdldCB0aGUgZmFyaWUgZmlyZSBib251cyBvbiBteSBwYXJyeS4iCiJJIHNlZSBIT1cgTUFOWSB3aWdodHM/ISIgIChmcm9tIHRoZSBjcnlwdHMgb2YgUmF2ZW5sb2Z0KQoiRG9uJ3Qgd29ycnksIHd5dmVybiBkb24ndCBhdHRhY2sgdW5sZXNzIHRoZXkncmUgcHJvdm9rZWQuIgoiWW91IHdhdGNoIHRoZSBkb29yLCBJJ2xsIHRha2Ugb3V0IHRoZSBHYXMgU3BvcmUgKEJlaG9sZGVyKSB0aGF0J3MgZ3VhcmRpbmcKICAgICB0aGUgdHJlYXN1cmUuIgoiQSBOaWdodG1hcmUsIGh1aD8gIEknbGwgYXR0YWNrIGZvciBvbmUgcm91bmQgYW5kIHByZXBhcmUgdG8gcnVuLiIKIkknbGwgdGFrZSBvZmYgbXkgYXJtb3Igc28gSSdtIHNpbGVudCBhbmQgc2xpcCBwYXN0IHRoZSBkcmFnb24uIgoiVGhleSBuZWVkIGEgdHdlbnR5IHRvIGhpdCBtZSwgSSdtIGludmluY2libGUiCiJEb24ndCB3b3JyeSBzaXIsIHdlIGNhbiBoYW5kbGUgaXQuIgoiSSBiZXQgdGhhdCB3aXRob3V0IE1qb2xuaXIgeW91J3JlIGEgcmVhbCB3aW1wLiIKTlBDOiAiTGV0cyBkcm9wIG91ciB3ZWFwb25zIGFuZCB0YWxrLiIKICAgIFBDIDogIk9rYXkhIgoiV2Uga2lsbGVkIGFsbCBtb25zdGVycyBvbiB0aGlzIGxldmVsLiIKIldoYXQgZG8geW91IG1lYW4gMTggbWV0ZXIgbG9uZyBjcm9jb2RpbGUtLXlvdSBqdXN0IHNhaWQgY3JvY29kaWxlLiIKICJXZWxsIC4uLi4sIEknbGwgdG91Y2ggaXQgYWdhaW4iCiJJIGF0dGVtcHQgdG8gZGlzYmVsaWV2ZSIKIkkgY2FzdCBhIGZpcmViYWxsIiAoaW50byBhIDEwJ3gxMCd4MTAnIHJvb20pCiJTdGFuZCBiYWNrIHlvdSB3aW1wcy4gIEknbGwga2lsbCBpdC4iCiJPSyEgSSBtb29uIHRoZSBCYWxyb2chIgoiTXkgZmlyc3QgYXJyb3cgTUlTU0VEIHRoZSBtYWdpYy11c2VyIHBvaW50aW5nIGF0IG1lPz8gT0ssIEkgc2hvb3QgYWdhaW4hIgoiV2hlcmUnZCB0aGF0IHRoaWVmIGdvIG5vdz8iCiJUcmFwPyBXaGF0IHRyYXA/IgoiU28gd2hhdD8iCiJZb3UncmUgYWxsIGEgYnVuY2ggb2Ygd2ltcHMhISAgSSdsbCBwcm92ZSB0byB5b3UgbXlzZWxmIHRoYXQgYW4gZW50aXJlCiAgICAgb3JjIHN0cm9uZ2hvbGQgaXMgbm8gbWF0Y2ggZm9yIHlvdXIgYXZlcmFnZSBiYXJiYXJpYW4uIgoiQWxsIHJpZ2h0LCB3ZSdyZSBpbiBhbiB1bmV4cGxvcmVkIGR1bmdlb24gaW4gdG90YWwgZGFya25lc3Mgd2l0aCBubwogICAgIGxpZ2h0IHNvdXJjZXMgb3IgaW5mcmF2aXNpb24uLi5IZXksIEkga25vdyEhICBMZXQncyB5ZWxsIGFuZCBzY3JlYW0gYQpsb3QKICAgICBzbyB3ZSBjYW4gbG9jYXRlIGVhY2ggb3RoZXIgYnkgc291bmQhISIKIkknbSBnb2luZyB0byBraWxsIG91ciBjYXB0aXZlcyBhbnl3YXksIGFuZCBJIGRvbid0IGdpdmUgYSBkYW1uIHdoZXRoZXIKICAgICB0aGUgb3RoZXIgZ29vZHktZ29vZCBQQydzIGxpa2UgaXQgb3Igbm90LiIKIlkna25vdywgc2luY2Ugb3VyIGRydWlkJ3MgYmVlbiBzbyBvYm5veGlvdXMsIGl0IHdvdWxkIHByb2JhYmx5IHNlcnZlIGhpbQogICAgIHJpZ2h0IGlmIHdlIHNldCBoaXMgcHJlY2lvdXMgZm9yZXN0IG9uIGZpcmUuIgoiQSBjcmVhdHVyZSB3aXRoIHR3byBCQUJPT04gaGVhZHMgb24gYSBzY2FseSBSRVBUSUxJQU4gYm9keT8gIFdpdGgKICAgIFRFTlRBQ0xFUyBmb3IgYXJtcz8gIEh1bmguICBNdXN0IGJlIHNvbWUgc3R1cGlkIHdpemFyZCdzIG1hZ2ljYWwKY29uc3RydWN0LgogICAgTGV0J3Mga2lsbCBpdC4iCiJPSywgTyBNaWdodHkgT2RpbiwgYXMgbG9uZyBhcyB5b3UncmUgbm90IGdvbm5hIGFuc3dlciBteSBwcmF5ZXJzLCBJJ20KICAgICBnb25uYSB0ZWxsIHlhIHdoYXQgSSBSRUFMTFkgdGhpbmsgb2YgeWEhIgoiSSBkcm9wIHRyb3VnaCBhbmQgZXhwb3NlIG15c2VsZiB0byB0aGUgYXJjaC1tYWdlIGFzIGEgZ2VzdHVyZSBvZiBjb250ZW1wdC4iCiJXZWxsLCBndXlzLCBJJ20gc29ycnkgbXkgYWN0aXZpdGllcyBpbiB0aGUgbGFzdCB0b3duIGdvdCB1cyBhbGwgdGFycmVkCiAgICAgYW5kIGZlYXRoZXJlZCwgYnV0IHlvdSdyZSBub3QgZ29pbmcgdG8gaG9sZCB0aGF0IGFnYWluc3QgbWUsIGFyZSB5b3U/IgoiTm8sIEknbSBzdXJlIHRoZXJlJ3Mgc29tZSBzdGlwdWxhdGlvbiB0aGF0IHNheXMgYSBkaXNpbnRlZ3JhdGUgc3BlbGwKICAgICB3b24ndCB3b3JrIGlmIHRoZSBzcGVsbGNhc3RlciBjYXN0cyBpdCBvbiBoaW1zZWxmLiAgSGVyZSwgSSdsbCBwcm92ZQppdC4iCiJPb3BzLCBJIHNwaWxsZWQgZmxhbWluZyBvaWwgb24gbXkgYmVhcmQuICBJJ2QgYmV0dGVyIHdhc2ggaXQgb2ZmIGFmdGVyCiAgICAgd2Uga2lsbCB0aGlzIGZpcmUgbGl6YXJkLiIKIldlbGwsIHdlIGtub3cgaGUncyBMQVdGVUwgZXZpbCwgc28gaGUgc2hvdWxkIGtlZXAgaGlzIHdvcmQgd2hlbiBoZQogICAgIHByb21pc2VkIG5vdCB0byBiZXRyYXkgdXMuIgoiU28gSSdtIHNhZmVseSBhY3Jvc3MgdGhlIHBpdD8gIFdoZXchICBGb3IgYSBtaW51dGUgdGhlcmUgSSB3YXMgd29ycmllZAogICAgIHRoYXQgeW91IG1pZ2h0IHJlbWVtYmVyIG15IGVuY3VtYnJhbmNlIHBlbmFsdGllcy4iCiJUaGFuayBHb2QhISAgQSBob2Jnb2JsaW4gY2FtcCB1cCBhaGVhZCEgIE1heWJlIHRoZXkgY2FuIGhlbHAgaGVhbCBvdXIKICAgICB3b3VuZGVkISIKIkRvbid0IHdvcnJ5ISAgVGhlIGNoYW5jZXMgb2YgbWUgYmxvd2luZyBhIGNsaW1iIHdhbGxzIHJvbGwgdHdpY2UsIGF0IG15CiAgICAgbGV2ZWwsIGFyZSBpbmZpbml0ZXNpbWFsLiIKIkFsbCByaWdodCwgSSBqdW1wLi4uTm93IG9uIHRoZSB3YXkgZG93biwgSSBhY3RpdmF0ZSBteSByaW5nIG9mIGZlYXRoZXIKICAgICBmYWxsLi4ubm8sIHdhaXQsIGRpZG4ndCBJIGxlbmQgaXQgdG8gSmltPyIKIlNvIHlvdSdyZSBUaWFtYXQsIGh1aD8gIEFyZSB5b3UgZXZpbD8gIFllcz8gIFdvdWxkIHlvdSBsaWtlIHRvIGNvbnZlcnQ/IgoiV2VsbCwgKkkqIHRydXN0IG91ciBwYXJ0eSB0aGllZiwgYW5kIGlmIGhlIHNheXMgdGhpcyBkb29yIGlzbid0IHRyYXBwZWQsCiAgICAgdGhhdCdzIGdvb2QgZW5vdWdoIGZvciBtZS4iCiJXZWxsLCBJIGRpZG4ndCBtdWNoIGxpa2UgdGhpcyBjaGFyYWN0ZXIsIGFueXdheS4uLkhlcmUgZ29lcyBub3RoaW5nLi4uIgoKVmllbCBWZXJnbnVlZ2VuIGJlaW0gbGVzZW4gLSBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZXJ1ZWhtdGUgTGV0enRlIFdvcnRlIChNYXRlZXNlLCAgNy4gT2t0IDE5OTQsIDE1OjM3OjA5KToKCiAgICBCcmF2ZXMgSHVuZGNoZW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmFtb3VzIGxhc3Qgd29yZHMgKEJvaW5nLCAgNy4gT2t0IDE5OTQsIDE2OjI2OjM4KToKIldoYXQgd2FzIHRoZSBvcHBvc2l0ZSBvZiBzdW1tb24/IgoKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRkxXIChSb2NodXMsICA3LiBPa3QgMTk5NCwgMTY6NTY6MDMpOgoiV2hpc3RsaW5nIHNvdW5kcz8gIE5hdywgdGhleSBjYW4ndCBoYXZlIGEgZ3JlbmFkZSBsYXVuY2hlciEiCgpSYW5nZXI6ICJXaGF0IGRvIEkgc2VlPyIKICAgIERNOiJEbyB5b3UgcmVtZW1iZXIgdGhlIHRyYXAgdGhhdCBraWxsZWQgSW5keSdzIGd1aWRlIGluIFJhaWRlcnMgb2YgdGhlCiAgICAgICAgTG9zdCBBcms/IgoKIkRpYW1vbmRzIC4uLiBHb2xkLi4uIFNhcGhpcmVzICEhISBUZXJyeSEgVGVycnksIHdlJ3JlIHJpY2gsIHdlJ3JlCiAgICAgcmljaCwgd2UncmUgZmFidWxvdXNseSB3ZWFsdGh5ICEhISEgIC4uLlRlcnJ5IC4uLi4uICBUZXJyeSA/PyIKCiJIYWghIEknbSBub3QgZGVhZCB5ZXQuICBJIHN0aWxsIGhhdmUgZml2ZSBoaXQgcG9pbnRzLiIKCiJCb2IsIHlvdSBoYXZlIGFueSBncmVuYWRlcyBsZWZ0PyBUaHJvdyBtZSBvbmUuLi4iCgoiSXNuJ3QgdGhlcmUgYW55dGhpbmcgZXhjaXRpbmcgaW4gdGhpcyBkdW5nZW9uPyIgKHNhaWQgdG8gR00pCgoiQnV0IHRoZSBkaXJlY3Rpb25zIFNBSUQgdG8gYHB1bGwgcGluIGFuZCB0aHJvdycgISIKICAgICAgICBbRnJvbSBhIGJlYXV0aWZ1bGx5IHJvbGUtcGxheWVkIHRyYXZlbGxlciBjaGFyYWN0ZXIgZnJvbSBhIG5vbi0KICAgICAgICAgdGVjaG5vbG9naWNhbCB3b3JsZC4gSGUgd2FzIGdpdmVuIGEgc2NvdXQgc2hpcCBzdXJ2aXZhbCBwYWNrLAogICAgICAgICB3aGljaCBhbW9uZyBvdGhlciBnaW1jcmFja3MsIGNvbnRhaW5lZCBjb25jdXNzaW9uIGdyZW5hZGVzLgogICAgICAgICBXaGVuIGhlIGdvdCBpbiB0cm91YmxlLCBvZiBjb3Vyc2UsIGhlIHB1bGxlZCB0aGUgcGluIG91dCBvZgogICAgICAgICBvbmUgYW5kIHRocmV3IGl0ICgiaXQiIGJlaW5nIHRoZSBwaW4sIG5hdHVyYWxseSkuLi5dCgoKIldoYXQncyB0aGUgZHVyYXRpb24gb2YgdGhpcyBGbHkgc3BlbGw/IgoKIldoYXQ/ISAgSSB0aG91Z2h0IHlvdSBzYWlkIGZpZlRFRU4ga29ib2xkcy4iCgoiLi4yMy4uMjQuLldlbGwsIHRoYXQncyB0aGUgbGFzdCBvZiBoaXMgYXJyb3dzLiIKCiJXZWxsLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSwgaXQncyBBQyA3LCAzKzEgSEQsIDFkOCBkYW1hZ2UuICBIbW0uLi4iCiAgICA8c2NyaWJibGU+IDxzY3JpYmJsZT4KICAgICJJIHNob3VsZCBkZWZlYXQgaGltIGFyb3VuZCB0aGUgNHRoIHJvdW5kIGFuZCBzdGlsbCBoYXZlCiAgICAgYWJvdXQgMTIuNSBoaXQgcG9pbnRzIGxlZnQuICBPaywgbGV0J3Mgcm9jayEiCgoiQmx1ZSwgbm8uLi53YWl0LCBZZWxsb3chIEFhYWFhcmdoaGhoIiB7dG8gYSBicmlkZ2VrZWVwZXJ9CgoiTm8sIHlvdSBpZGlvdCwgdGhleSBjYW4ndCBoZWFyIHVzIGNyYXdsaW5nIGFyb3VuZCBvdXQgaGVyZSEiCiAgICAge3llbGxlZCB0byBhbm90aGVyIFBDfQoKRE06ICJZb3Uga25vdyB5b3UncmUgNicgaGlnaCBhbmQgc2l0dGluZyBvbiBhIDMnIGhpZ2ggaG9yc2UgaW4gYSBzYWRkbGUKICAgICAgICBkZXNpZ25lZCB0byBrZWVwIHlvdSBmcm9tIGZhbGxpbmcuIE5vdyB5b3UncmUgY2hhcmdpbmcgYXQgZnVsbCBzcGVlZAogICAgICAgIGludG8gYSA3JyBoaWdoIGNhdmUuIFdoYXQgYXJlIHlvdSBnb2luZyB0byBkbyA/IgogICAgUEM6ICJIaXQgbXkgaGVhZCBvbiB0aGUgY2F2ZSByb29mID8hIiB7SGUgdG9vayBhICpsb3QqIG9mIGRhbWFnZS4uLn0KCiJJIHRlbGwgdGhlIGd1YXJkIHRvIGdvIGZ1Y2sgaGltc2VsZiwgYnV0IEkgc2F5IGl0IGluIGEgbmljZSB3YXkuIgoKTlBDOiAiU3VycmVuZGVyICEiCiAgICBQQzE6ICJEb24ndCBzaG9vdC4gSSBnaXZlIHVwLCBidXQgbGV0IHRoaXMgZ3V5KFBDMikgZ28sIEkgdG9vayBoaW0gYXMgYQogICAgICAgICAgaG9zdGFnZS4uLiIKICAgIE5QQzogIk9rYXksIG9rYXksIGJ1dCBmaXJzdCBvZiBhbGwgZHJvcCBhbGwgeW91ciB3ZWFwb25zISIge3NhaWQgdG8gUEMxfQogICAgUEMyOiB7dGFraW5nIG91dCBoaXMgSGVhdnkgQXV0b3Bpc3RvbH0gIlNoYWxsIEkgZHJvcCBteSB3ZWFwb24sdG9vID8/PyIKCkFwcHJlbnRpY2U6ICJXZWxsLCBNYXN0ZXIsIEkgZmluYWxseSBtYW5hZ2VkIHRvIGxlYXJuIHRoZSBlbmxhcmdlIHNwZWxsLgogICAgICAgICAgICAgICAgIE5vdywgY291bGQgeW91IHBsZWFzZSB0ZWxsIG1lIGhvdyBvbmUgZ2V0cyByaWQgb2YgYSA1MCcgYmlnCiAgICAgICAgICAgICAgICAgcmF0ID8iCgpBcHByZW50aWNlOiAiRXhjdXNlIG1lIHNpciBidXQsIHRoZW9yZXRpY2FsbHksIHdoYXQgd291bGQgaGFwcGVuIGlmIHNvbWVvbmUKICAgICAgICAgICAgICAgICBzdW1tb25lZCwgb29oaGgsIGxldHMgc2F5IGEgbWFqb3IgZGVtb24gZnJvbSB0aGUgMzc2IGxldmVsCm9mCiAgICAgICAgICAgICAgICAgdGhlIEFieXNzID8iCgoiVGhhdCBuaWNlIHdpemFyZCBmcm9tIGFjcm9zcyB0b3duIHBhaWQgbWUgMjAwMGdwIHRvIGRlbGl2ZXIgdGhpcyBib3ggdG8KICAgICB5b3UuLi4gIE1lIHRoaW5rcyAtLSBJdCBtdXN0IGJlIHNvbWUga2luZCBvZiBjbG9jayAhIgoKRE06IllvdSBjcmFzaCB0aHJvdWdoIHRoZSBkb29yIGFuZCBmaW5kIGFib3V0IDEwIGdvYmxpbnMuIFRoZXkgbG9vawogICAgICAgIHN1cnByaXNlZC4iCiAgICBQQzoiSSBzYXksICdCb28nISIKCiJJJ2xsIGtpbGwgdGhhdCBzdWNrZXIgaWYgaXQncyB0aGUgbGFzdCB0aGluZyBJIGRvLiIge0l0IHdhcy4uLn0KCkdNOiAiWW91IGVuY291bnRlciBzb21lIGdvYmxpbnMuIgogICAgUGFydHk6ICJCQU5aQUlJSUkiIFtjaGFyZ2VdCiAgICBHTTogIkhtbSwgZGlkbid0IEkgc2F5LCB0aGV5J3JlIDg0LiIKCiJHcmltbXRvb3RoID8gTm90IHRoaXMgb25lLiIKCkdNOiAiVWguICBBZnRlciBraWxsaW5nIG9uZSB3b2xmIHRoZSA5OSBvdGhlcnMgYXJlbid0IHJlYWxseSB0b28gZmF6ZWQuIgoKUEw6ICJIb3cgbG9uZyBhbSBJIGdvaW5nIHRvIGJlIHN0dW5uZWQgZm9yPyIKICAgIEdNOiB7c21pbGluZ30gIi4uLnRoZSByZXN0IG9mIHlvdXIgbGlmZS4iCgoiU28gaG93IG1hbnkgS2xpbmdvbnMgZG9lcyBpdCB0YWtlIHRvIGNoYW5nZSBhIGxpZ2h0IGJ1bGIgPyIKICAgIChQQyB0byBhbm90aGVyIFBDIHdoaWxlIHNpdHRpbmcgaW4gYSBLbGluZ29uIGJhcikKCiJTbyB3aGVyZSBpcyB0aGF0IGxvY2FsIHdvbWFuIEltIHN1cHBvc2VkIHRvIHdyZXN0bGUgPyIKICAgIHthZnRlciBkcmlua2luJyBhIGZpZnRoIG9mIHZvZGthLCB3YXMgc3VwcG9zZWQgdG8gd3Jlc3RsZSBhIHBvbGFyIGJlYXIKICAgIGFuZCBmb29sIGFyb3VuZCB3aXRoIGEgbG9jYWwgZ2lybCwgYnV0IGhlIGdvdCBpdCBjb25mdXNlZC59CgoiWW91PyAgQSBHT0Q/ICBTdXJlLCByaWdodCwgdGhlbiBzdHJpa2UgbWUgZG93biB3aXRoIGxpZ2h0bmluZyEiCgpQQzE6IkkgZ3Vlc3MgdGhpcyBnb2JsaW4gY2FtZSB0byB0YXVudCBhbmQgbGVhZCB1cyBpbnRvIGFuIGFtYnVzaC4iCiAgICBQQzI6Illlcywgb2J2aW91c2x5LiBIb3BlZnVsbHkgdGhlcmUnbGwgYmUgbW9yZSBvZiB0aGVtIHRoZXJlLiIKICAgIHt0aGVyZSB3ZXJlfQoKR006IlRoZSBkb29ycyBhcmUgbG9ja2VkIGFuZCB0aGUgY29ycmlkb3IgaXMgZmlsbGluZyB3aXRoIHdhdGVyIGZyb20KICAgICAgICBwaXBlcyBoaWdoIG9uIHRoZSB3YWxscy4iCiAgICBQQzoiSSdsbCBjdXQgYSBob2xlIGluIHRoZSBjZWlsaW5nIHdpdGggbXkgbW9ub21vbGVjdWxhciBzd29yZC4iCiAgICBHTToiT2theS4gVGhlIGZpcmUtc3ByaW5rbGVyIHBpcGVzIHdoaWNoIHJ1biB0aHJvdWdoIHRoZSBjZWlsaW5nIHN0YXJ0CiAgICAgICAgc3ByYXlpbmcgd2F0ZXIgYWxsIG92ZXIgdGhlIHBsYWNlLiBUaGVyZSBpcyBhbHNvIGEgaGlnaC12b2x0YWdlCiAgICAgICAgZWxlY3RyaWNhbCBjYWJsZSBjb25kdWl0IGluIHRoZSBjZWlsaW5nLi4uIiAgICAge2dyaW59CgpQcmllc3QoUEMpOiJIZXksIHdoYXQncyB0aGUgbmFtZSBvZiB0aGlzIG1vZHVsZSA/IgogICAgR00gICAgICAgIDoiRGVhdGggT2YgQSBQcmllc3QiCgpQQzoiS2lsbCB0aGUgdHJvbGwuIgogICAgVHJvbGw6Ikkgd291bGQgcHJlZmVyIGl0IGlmIHlvdSB3b3VsZCBjZWFzZSB0aGUgaG9zdGlsaXRpZXMuLi4iCiAgICB7cGxheWVyIGRpZWQgb2Ygc2hvY2t9CgpQQyA6Ik5vIGNhcHRhaW4sIHRoZXJlIGlzIG5vLW9uZSBoZXJlLCBleGNlcHQgZm9yIHRoZSBjb21wdXRlciBzcGVha2luZy4iCiAgICBOUEM6IldoYXQgaXMgaXQgc2F5aW5nID8iCiAgICBQQyA6IjkgLi4uIDggLi4uIDcgLi4uIgoKCk5QQzoiSSBqdW1wIGRvd24gdGhlIGNsaWZmLiIge1ZFUlkgbG9uZyB3YXkgZG93bn0KICAgIFBDMToiSSBqdW1wLiIKICAgIFBDMjoiSSBsZWFwIGFuZCBncmFiIG9udG8gUEMxLiIKICAgIFBDMzoiT2theSwgSSBqdW1wIHRvby4iCiAgICBQQzE6Ikp1c3QgYmVmb3JlIEkgaGl0LCBJJycgYWN0aXZhdGUgbXkgRmVhdGhlciBGYWxsLiIKICAgIFBDMzoiWW91ciB3aGF0ID8iCgpQQzoiVGhlcmUgYXJlIEhPVyBNQU5ZIEdOT0xMUyBpbiB0aGF0IGNvdXJ0eWFyZCA/IgogICAgR006IldlbGwsIGFib3V0IDIwMC4gV2FudCB0byBzdG9wIGFuZCBjb3VudCB0aGVtPyIKCk5QQzoiQmV3YXJlIHRoZSB1bnNwZWFrYWJsZSBvbmUhIgogICAgUEMgOiJPaCwgeW91IG1lYW4gSGFzdHVyID8iCgpHTToiRmFpbGVkIFN0cmVuZ3RoIENoZWNrID8hIE9rYXksIHlvdSB0cnkgdG8gY3Jvc3MgdGhlIGZhc3QtZmxvd2luZyByaXZlcgogICAgICAgIG5lYXIgdGhlIHdhdGVyZmFsbCB1c2luZyBhIHJvcGUgYW5kIHlvdSBkb24ndCBtYW5hZ2UgdG8gaG9sZCB0aGlzCnJvcGUuCiAgICAgICAgU28geW91IGdvIGRvd24gdGhlIHdhdGVyZmFsbCBhbmQgYmVnaW4geW91ciBsYXN0IGpvdXJuZXkuIgogICAgUEM6IkJ1dCBJIG9ubHkgaGVsZCB0aGUgcm9wZSBmb3IgZG9pbmcgc28uIEknbSB0aWVkIHdpdGggaXQgISIKICAgIEdNOiJTbmlwLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXMgZGVtIExlYmVuL1N0ZXJiZW4gZWluZXMgVGVzdGllcy4uLiAoU2lsdmFuYSwgIDguIE9rdCAxOTk0LCAxMToyODo1Nyk6Cgp0b2V0ZSBicnVrdQpPSy4KKC4uLi4uLi4pCgogIER1IGdyZWlmc3QgQnJ1a3UgbWl0IGJsb3NzZW4gSGFlbmRlbiBhbi4KICBEdSBrcmF0enQgQnJ1a3UuCiAgQnJ1a3UgZ3JlaWZ0IERpY2ggbWl0IHNjaG11dHppZ2VuIEZpbmdlcm4gYW4uCiAgQnJ1a3Uga3JhdHp0IERpY2guCgoKRHUga2FubnN0IGVpbmVuIE1hbm4gbWl0IGR1bmtsZXIgS2FwdXplIG5lYmVuIERlaW5lciBMZWljaGUgc3RlaGVuIHNlaGVuLgpFciB3aXNjaHQgZGllIGJsdXRpZ2UgS2xpbmdlIGVpbmVyIGdyYXVzaWdlbiBTZW5zZSBtaXQgbGFuZ3NhbWVuLCBnZW1lc3NlbmVuCkJld2VndW5nZW4gYWIuIFBsb2V0emxpY2ggaG9lcnQgZXIgYXVmIHVuZCBzY2hlaW50IERpY2ggZGlyZWt0IGFuenVzZWhlbiBtaXQKc2VpbmVuIGxlZXJlbiBBdWdlbmhvZWhsZW4gLi4uCgoKCkR1IGthbm5zdCBlaW5lbiBNYW5uIG1pdCBkdW5rbGVyIEthcHV6ZSBuZWJlbiBEZWluZXIgTGVpY2hlIHN0ZWhlbiBzZWhlbi4KRXIgd2lzY2h0IGRpZSBibHV0aWdlIEtsaW5nZSBlaW5lciBncmF1c2lnZW4gU2Vuc2UgbWl0IGxhbmdzYW1lbiwgZ2VtZXNzZW5lbgpCZXdlZ3VuZ2VuIGFiLiBQbG9ldHpsaWNoIGhvZXJ0IGVyIGF1ZiB1bmQgc2NoZWludCBEaWNoIGRpcmVrdCBhbnp1c2VoZW4gbWl0CnNlaW5lbiBsZWVyZW4gQXVnZW5ob2VobGVuIC4uLgoKRGVyIFRvZCBzYWd0OiBLT01NIE1JVCBNSVIsIFNURVJCTElDSEVSIQoKRGVyIFRvZCBzYWd0OiBLT01NIE1JVCBNSVIsIFNURVJCTElDSEVSIQoKRXIgZ3JlaWZ0IG5hY2ggRGlyLCB1bmQgcGxvZXR6bGljaCBmaW5kZXN0IER1IERpY2ggYW4gZWluZW0gYW5kZXJlbiBPcnQKd2llZGVyLgoKRXIgZ3JlaWZ0IG5hY2ggRGlyLCB1bmQgcGxvZXR6bGljaCBmaW5kZXN0IER1IERpY2ggYW4gZWluZW0gYW5kZXJlbiBPcnQKd2llZGVyLgoKRGVyIFRvZCBzYWd0OiBESUUgWkVJVCBJU1QgUkVJRgoKRGVyIFRvZCBoZWJ0IGVpbmVuIEFybSB1bmQgbWFjaHQgZWluZSB3aW5rZW5kZSBCZXdlZ3VuZy4KRHUgYmlzdCByZWNodCBzaWNoZXIsIGRhc3MsIGZhbGxzIER1IG5vY2ggYW0gTGViZW4gd2FlcmVzdCwgRHUgdm9yIEFuZ3N0IGF1ZgpkZXIgU3RlbGxlIGdlc3RvcmJlbiB3YWVyZXN0LiBTZWx0c2FtZXJ3ZWlzZSBmdWVobHN0IER1IGdhciBuaWNodHMKRGVyYXJ0aWdlcy4KTGVkaWdsaWNoIGVpbmUgbGVpY2h0ZSBOZXVnaWVyLgoKRGVyIFRvZCBzYWd0OiBESUUgWkVJVCBJU1QgUkVJRgoKKC4uLi4uLikKCklzdCBkZXIgYXJtZSBLZXJsIGhpZXIgendlaW1hbCBnZXN0b3JiZW4/CgpTaWNoIHd1bmRlcm5kIC0gU2lsdmFuYQoKUFM6IFplaXRnbGVpY2ggaW0gTGViZW46CiAgQnJ1a3UgZ3JlaWZ0IFR0ZXN0IG1pdCBzY2htdXR6aWdlbiBGaW5nZXJuIGFuLgogIEJydWt1IGtyYXR6dCBUdGVzdC4KVHRlc3QgZmFlbGx0IHRvdCB6dSBCb2Rlbi4KRHUgc2llaHN0IGVpbmUgZHVua2xlIEdlc3RhbHQsIGRpZSBldHdhcyBEdW5zdCBlaW5zYW1tZWx0IC4uLiBvZGVyIHZpZWxsZWljaHQKYmlsZGVzdCBkdSBEaXIgZGFzIGF1Y2ggbnVyIGVpbiAuLi4KW1RvZDpdIEJydWt1IGhhdCBnZXJhZGUgVHRlc3QgdW1nZWJyYWNodC4KW1RvZDpCcnVrdV0gSWNoIGdldGFuISBHYW56IGFsbGVpbiBnZXNjaGFmZnQhIEljaCBTdG9seiEgR3Jvc3NlciBaYXViZXIhCkRlciBHb3NzZW56d2VyZyBzYWc6IEhpZXIgc2VpbiwgQnJ1a3UsIEdhbnogc2ljaGVyLgpCcnVrdSBiZWZ1ZWhsdCBsaWViZXZvbGwgZWluZSB0b3RlIFJhdHRlLgoKQWxzbyBlaHJsaWNoISBNZWluZW4gVGVzdGkgYWxzIFJhdHRlIHp1IGJlemVpY2huZW4gZ2VodCBkYW5uIGRvY2ggenUgd2VpdCEKOy0pCgpQUFM6IFVuZCBkYSByZWdlbiBzaWNoIG1hbmNoZSBTcGllbGVyIHVlYmVyIEVJTkUgVG9kZXNzZXF1ZW56IGF1Zi4uLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoRGFuY2VyLCAxMi4gT2t0IDE5OTQsIDIyOjAwOjMyKToKSGV1dGUgYWJlbmQgc28gZ2VzY2hlaGVuLCB0cmFnaXNjaCBhYmVyIGtvbWlzY2guLi4uCgpNYXV2cmUgcnVmdDogSWNoIHdpbGwgbmljaHQgc3RlcmJlbiEhCgpbVG9kOl0gRXR3YXMgaGF0IGdlcmFkZSBNYXV2cmUgdW1nZWJyYWNodC4KCk5peCBmdWVyIHVuZ3V0LCBNYXV2cmUgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZWRlciBlaW4gRkxXLi4uIChIaWdobGFuZGVyLCAxMy4gT2t0IDE5OTQsIDEzOjM3OjUxKToKVGphLCBpY2ggbGVzIGdyYWQgZWluZW4gQXJ0aWtlbCB1bmQgaXJnZW5kd2llIHdpcmQgbWVpbiBCbGljayBuYWNoIG9iZW4KYXVmIG1laW5lbiBzY3JlZW4gZ2V6b2dlbi4uLgpJY2ggbWFjaCBtYWwgZWJlbiBjdXQnbidwYXN0ZS4uLgpDVVQKW1RvZDpdIEVpbiBHb2JsaW4gaGF0IGdlcmFkZSBCcmFiYSB1bWdlYnJhY2h0LgpbQWxsZ2VtZWluOlZhc2NvXSBVcHMuLi4gbXVzcyBsZWlkZXIgd2VnLi4uIC0+IGlucyBMYWJvciA6KCAqd2lua2UqCltBbGxnZW1laW46Q2FyYWRocmFzXSBLdWNrdWNrCm5uClJ1YnJpayAyNjogc2NobWFycm4sIEFydGlrZWw6IDUgdm9uIDUKCldhcnRlbi4uLiAoQnJhYmEsIDEzLiBPa3QgMTk5NCwgMTM6MzI6MDMpOgpUamEsIGhpZXIgc3RlaGUsIG1pdCAzIEFQIG1pdHRlbiBpbSBHb2JsaW5sYWdlci4gRiJ1ciBkaWVzZW4gWndlY2sgd2FyIGRpZXNlClJ1YnJpayBkb2NoIGdlZGFjaHQsIG9kZXI/CgpVTkNVVApEYSB3YXIgd29obCBkZXIgQXJ0aWtlbCB2b3IgZGVtIHJlc2V0Li4uCiAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIHdpZWRlciBtYWwgRmFtb3VzIGxhc3Qgd29yZHMhIChTaWx2YW5hLCAxNC4gT2t0IDE5OTQsIDExOjQ2OjAzKToKCltBbGxnZW1laW46S2llc2Vsc3RlaW5dIERlciBMaWNoIGlzdCB3aXR6aWcKW0FsbGdlbWVpbjpLaWVzZWxzdGVpbl0gU2F1Z3QgZWluZW0gZGllIG1wcyB3ZWNoLi4uCltBbGxnZW1laW46VG9ldGVyXSBoYXQgZXIgZGljaCBzY2hvbiBtaXQga2lzc2VuIGJld29yZmVuPwpbQWxsZ2VtZWluOktpZXNlbHN0ZWluXSBCZXNzZXIgbWFuIGdlaHQgb2huZSBtcHMgcmVpbi4uCltBbGxnZW1laW46S2llc2Vsc3RlaW5dIGphCltUb2Q6XSBFaW4gTGljaCBoYXQgZ2VyYWRlIEtpZXNlbHN0ZWluIHVtZ2VicmFjaHQuCkJlaWxlaWQsIEtpZXNlbHN0ZWluIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKenQgKEdyaW1tYm9ybiwgMTUuIE9rdCAxOTk0LCAyMzozMzoyNSk6CgpKYSwgZWluaWdlIHdlcmRlbiBkaWUgenQgYXVzIGRlciBTU1Aga2VubmVuLCBkaWUgbmljaHQgYXVmenViZWtvbW1lbiBzaW5kLiBTbwpwcm9iaWVydCBtYW5zIG1pdCBhbGxlbiBNaXR0ZWxuIHVuZCBiZW1lcmt0IG5pY2h0LCB3aWUgZGllIFplaXQgdmVyZ2VodC4gRWhlCm1hbnMgc2ljaCB2ZXJzaWVodCBpc3QgbWFuIHN0ZWluYWx0LiBEZXIgQmV3ZWlzPyBCaXR0ZXNjaG9lbjoKCm9lZmZuZSB6YXViZXJ0cmFuayBtaXQgemFlaG5lbgpTbyB3YXMgaGFzdCBEdSBkb2NoIGdhciBuaWNodCEKCkZvZWxsaWZmIGVyZnRhdW50IHVuZCBmZWluZW4gRmFobmFydGZ0IHZlcmtsYWdlbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VubiBNYWdpZXIgLyBTZWhlciBMYW5nZXdlaWxlIGhhYmVuLi4uIDstKSAoU2lsdmFuYSwgMTguIE9rdCAxOTk0LCAxMzozMTozMik6CkRlciBncm9zc2UgUmF1bSBtaXQgc2VpbmVyIG5pZWRyaWdlbiBEZWNrZSB1bmQgZGVuIGdyb2IgZ2VzY2huaXR0ZW5lbgpRdWVyYmFsa2VuIGhhdCBQbGF0eiBmdWVyIHNlaHIgdmllbGUgUGVyc29uZW4uIEtuYXJyZW5kZSBEaWVsZW4gZXJ6YWVobGVuCnVlYmVyIEhlbGRlbnRhdGVuIGxhZW5nc3QgdmVyZ2Vzc2VuZXIgQWJlbnRldXJlciwgYmVydWVobXRlciBhbHMgbWFuY2hlcgpXZWlzZSB1bnNlcmVyIFplaXQuCkFiZW50ZXVyZXIsIGFiZXIgYXVjaCBhbmRlcmUgQmV3b2huZXIgZGllc2VyIFdlbHQga29tbWVuIGhpZXJoZXIsIHVtCnNpY2ggenUgaW5mb3JtaWVyZW4sIGlocmUgRXJmYWhydW5nZW4gYXVzenV0YXVzY2hlbiBvZGVyIHNpY2ggaW4gZGVuCnZlcnNjaGllZGVuc3RlbiBXaXNzZW5zY2hhZnRlbiB6dSB2ZXJiZXNzZXJuLgpEdXJjaCBkaWUgaW1tZXIgb2ZmZW5lIFR1ZXIgc2NoZWludCBkaWUgYXVmZ2VoZW5kZSBTb25uZSBoZXJlaW4gdW5kIGZ1ZWxsdApkZW4gUmF1bSBtaXQgaWhyZW0gZ29sZGVuZW4gTGljaHQuIFNvbnN0IGdpYnQgZXMgaGllciBudXIgbm9jaCBkZW4gQXVzZ2FuZwppbSBOb3JkZW4sIHdlbGNoZXIgYXVmIGRpZSBIYWZlbnN0cmFzc2UgZnVlaHJ0IHVuZCBCaWxkZXIgYW4gZGVuIFdhZW5kZW4sCm1pdCBaZWljaG51bmdlbiB1bmQgR2VtYWVsZGVuIHZvbiBNb3JnZW5HcmF1ZW4uIEVpbnMgZGVyIEJpbGRlciBlcmxhZXV0ZXJ0CmRpZSBGdW5rdGlvbiBkZXIgR2lsZGUgdW5kIGVpbmUgZ3Jvc3NlIFVociBhbiBkZXIgV2FuZCB6ZWlndCwgd2FzIGRpZQpTdHVuZGUgc2NobGFlZ3QuCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBub3JkZW4uCkdhc3QxIGRpZSBob2ZmbnVuZ3N2b2xsZSBBbmZhZW5nZXJpbi4KS25vZXJyeSBkZXIgT2JlcmdsYWRpYXRvci4KUHVtYSEuClphcmRveiB3aXJkIEhhdXNtZWlzdGVyLgpDYWx1bSB2b24gTW9yb24gaW0gZHJpdHRlbiBTZW1lc3Rlci4KTWVpc3RlciBMaSBLYW8uCkVpbmUgWmVpdHVuZy4KRWluIEhhbmRidWNoIGZ1ZXIgQW5mYWVuZ2VyLgpNZWlzdGVyIExpIHNhZ3Q6IGF1IHdlaQpDYWx1bSBmcmFndCBzaWNoLCB3aWUgUHVtYSBpbW1lciBhdWYgc28gZ3V0ZSBJZGVlbiBrb21tdC4uLgpQdW1hIHNhZ3Q6IHNvLCBpY2ggbWFjaCBqZXR6dCBtZW5zYSwgYmluIGluIDMwIE1pbnV0ZW4gd2llZGVyIGRhIC4uLgpMaSBncmluc3QgS25vZXJyeSBhbi4KUHVtYSB3aW5rdC4KS25vZXJyeSBsYWVjaGVsdCBnbHVlY2tsaWNoLgpQdW1hIGxvZXN0IHNpY2ggaW4gc2NoaWxsZXJuZGUgRmFyYndpcmJlbCBhdWYuIExhbmdzYW0gdHJlaWJlbiBzaWUgbmFjaApIYXVzZS4KUHVtYSBoYXQgZ2VyYWRlIGRhcyBTcGllbCB2ZXJsYXNzZW4uCkR1IHNhZ3N0OiBTaWVodCBuY2h0IHNvb28ga29tcGxpemllcnQgYXVzLCBkYXMgU3BlbGxib29rLi4uCkNhbHVtIHNhZ3Q6IGljaCBzY2htZWljaGVsIG5pY2h0LCBpY2ggYmV3dW5kZXJlIERpY2ggbnVyIDstKQpMaSBuaWNrdCB6dXN0aW1tZW5kLgpDYWx1bSBzYWd0OiBoYXQgZWlnZW50bGljaCBzY2hvbiBlaW5lciBlaW5lIEJhcmRlbi1HaWxkZSBhbmdlZmFuZ2VuPwpNZWlzdGVyIExpIHNhZ3Q6IG5lLCBoYWJlIGljaCBhYmVyIGF1Y2ggdmVybWlzc3QKS2FxaW4ga29tbXQgYW4uCkthcWluIGhhdCBqZXR6dCBTdHVmZSA0IGVycmVpY2h0LgpEdSBzYWdzdDogV2lyIGhhYmVuIE1vZW5jaGUsIERydWlkZW4sIEFzc2Vzc2luZW4sIEhhcmxla2luZSwgS2lkb2thLCBldnRsCkR1IHNhZ3N0OiBOYXJyZW4uLi4gV2FzIG5vY2hgCkNhbHVtIHNhZ3Q6IGhtbW0uLi4gbmVpbiwgaWNoIGRlbmtlIGJlc3NlciBuaWNodCBkYXJ1ZWJlciBuYWNoLCBzb25zdCBrb21tZQpDYWx1bSBzYWd0OiBpY2ggaW4gZGllc2VtIFNlbWVzdGVyIG5pY3RoIG1laHIgenVtIFN0dWRpZXJlbiA6KQpaYXJkb3ogc2FndDogSWNoIHdhZXJlIGphIG5vY2ggZnVlciBlaW5lIEthZW1wZmVyL0tyaWVnZXJnaWxkZQpEdSBuaWNrc3QgWmFyZG96IHp1LgpaYXJkb3ogc2FndDogVW5kIGdhbnogbm9ybWFsZSBaYXViZXJlciBnZWhvZXJlbiBhdWNoIG5vY2ggZGF6dQpEdSBzYWdzdDogRGFubiBzY2hyZWliIG1hbCBlaW5lIQpaYXJkb3ogc2FndDogS2FubiBpY2ggbmljaHQKS25vZXJyeSBnbHVja3N0IHdpZSBlaW4gSHVobi4KU2lsdmFuYSBobW1tbXMuCk1laXN0ZXIgTGkgc2FndDogYWxzbyBmdWVyIGVpbmUgbWFnaWVyZ2lsZGUgaGFiIGljaCBuZSBtZW5nZSBpZGVlbgpMaSBodXN0ZXQgc2ljaCBmYXN0IGRpZSBTZWVsZSBhdXMgZGVtIExlaWIuClphcmRveiBzYWd0OiBJY2ggYXVjaCwgYWJlciBpY2ggZ2xhdWJlIG5pY2h0LCBkYXNzIGljaCBlaW5lIEdpbGRlIHByb2dnZW4KWmFyZG96IHNhZ3Q6IGthbm4KQ2FsdW0gc2FndDogd2FydW0gaXN0IGRlbm4gZGFzIGR0cCBoZXV0ZSBzbyBsYShuKWdzYW0/Pz8gOi0oKCgKTWVpc3RlciBMaSBzYWd0OiBpY2ggZ2xzdWJlLCBpY2ggYXVjaCBuaWNodCEKQ2FsdW0gc2FndDogYWVoIGZ0cCBtZWluZSBpY2gKWmFyZG96IHNhZ3Q6IEljaCBmYWVuZGUgYXVjaCBub2NoIGVpbmUgQWxjaGVtaXN0ZW4tR2lsZGUgZ2FueiBpbnRlcmVzc2FudApaYXJkb3ogc2FndDogVW5kIGVpbmUgTmVjcm9tYW5jZXItR2lsZGUgOikKWmFyZG96IGtpY2hlcnQgZGFlbW9uaXNjaC4KRHUgZ3JpbnN0LgpLbm9lcnJ5IHNhZ3Q6IHVuZCBlaW4gTGllYmVzIEt1bHQhCk1laXN0ZXIgTGkgZnJhZ3Q6IExpZWJlcyBrdWx0Pz8KS25vZXJyeSBncmluc3QuClphcmRveiBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KS2FxaW4gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCktpZXNlbHN0ZWluIGtvbW10IGFuLgpDYWx1bSBzYWd0OiBkYW5uIG1hY2hlbiB3aXIgYmFsZCBnYXIgbml4IGFuZGVyZXMgbWVociBhbHMgR2lsZGVuIHp1CkNhbHVtIHNhZ3Q6IHByb2dyYW1taWVyZW4uLi4KRHUgc2Fnc3Q6IEFwb3BvOiBJY2ggc3VjaGUgbm9jaCBuYWNoIGVpbiBwYWFyIGV0d2FzICdoYW5kZmVzdGVyZW4nIFZlcmJlbgpEdSBzYWdzdDogZnVlciBtZWluZSBMYXViZW4gaW0gUGFyay4uLi4gSXJnZW5kd2VsY2hlIFZvcnNjaGxhZWdlPwpLbm9lcnJ5IHNhZ3Q6IC4udW5kIGVpbmUgVGlwZ2VtZWluc2NoYWZ0Li5laW4gU2thdGNsdWIuLi4KWmFyZG96IHNhZ3Q6IFdpciBtdWVzc2VuIGhhbHQgZGFzIFZlcnNhZXVtbmlzIHZvbiAyIEphaHJlbiBhdWZob2xlbgpLbm9lcnJ5IHNhZ3Q6IC4uLnRyYWNodGVudmVyZWluLi4uCk1laXN0ZXIgTGkgZnJhZ3Q6IEhhbmRmZXN0Pz8KWmFyZG96IHJ1bnplbHQgZGllIFN0aXJuLgpLbm9lcnJ5IGh1ZXBmdCBpbiBkZXIgR2VnZW5kIGhlcnVtLgpDYWx1bSBzYWd0OiBoYXQga2VpbmVyIG5lIElkZWUsIHdhcyBmdWVyIGVpbmUgR2lsZGUgbWFuIGF1cyBkZW0gV29scENsdWIKQ2FsdW0gc2FndDogbWFjaGVuIGtvZW5udGU/CkR1IHNhZ3N0OiBIYW5kZmVzdCA9IGV0d2FzIG1laHIgYWxzIGRhcyAna3Vlc3NlJyBvZGVyICdrbnV0c2NoZScKS25vZXJyeSBzYWd0OiBodWNoID8gOikKTWVpc3RlciBMaSBzYWd0OiBmdW1tZWxuPwpMaSBlcnJvZXRldC4KS25vZXJyeSBncmluc3QgZHJlY2tpZy4KU2lsdmFuYSBzY2hhdXQgTGkgZXJzdGF1bnQgYW4uCktub2VycnkgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkNhbHVtIHNhZ3Q6IGJlZ3JhcHNjaGU/IDopCkR1IHNhZ3N0OiBXaWUgd2lsbHN0IGR1IGRhcyByZWFsaXNpZXJlbj8KTWVpc3RlciBMaSBzYWd0OiBsaWViZSBnaWJ0cyBkb2NoIGF1Y2ggc2Nob24KTWVpc3RlciBMaSBzYWd0OiBnZW5hdXNvIHdpZSBkaWUgYW5kZXJlbiB2ZXJiZW4sIGVpbmZhY2ggZWluZSBlbnRzcHJlY2hlbmRlCk1laXN0ZXIgTGkgc2FndDogYXVzZ2FiZSBpbiBkZW0gcmF1bQpLbm9lcnJ5IHNhZ3Q6IElDSCBMQVNTIE1JQ0ggRE9DSCBOSUNIVCBWT04gSkVERU0gQkVGVU1NRUxOID8hCkR1IHNhZ3N0OiBIbW1tLi4uLiBXYXMgaGFsdGV0IGlociB2b24gJ3N0cmlwJyAgPwpEZWluZSBXYW5nZW4gZ2x1ZWhlbi4KS25vZXJyeSBzYWd0OiBqYWphamEKWmFyZG96IGZyYWd0OiBOaWNodD8KTGkgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkxpIHdhZWx6dCBzaWNoIHZvciBMYWNoZW4gYXVmIGRlbSBCb2Rlbi4KS25vZXJyeSBmcmFndDogTmFjaD8KS25vZXJyeSBzYWd0OiB1cHMKS25vZXJyeSBoYXQgc2VpbiBhbGlhcyBmdWVyIGZyYWdlICYxIG5hY2ggJjIgd2llZGVyIGVudGRlY2t0IQpMaSB0YWV0c2NoZWx0IERpciBkZW4gS29wZi4KTGkgZ3JhYmJlbHQgYW4gRGlyIGhlcnVtLgpaYXJkb3ogc3RvZXNzdCBMaSBpbiBkaWUgUmlwcGVuLgpEdSBzYWdzdDogS25vZXJyeTogSW4gZGllIExhdWJlbiBrb21tZW4gaW1tZXIgbnVyIDIgTGV1dGUgZ2VtZWluc2FtLiAgRHUKRHUgc2Fnc3Q6IHdlaXNzdCBhbHNvIGltbWVyLCBhdWYgd2VuIGR1IGRpY2ggZWlubGFlc3N0IQpMaSBrdXNjaGVsdCBzaWNoIGFuIERpY2ggYW4uCkR1IHdhY2tlbHN0IG1pdCBkZW0gSGludGVybi4KWmFyZG96IHNjaG1pZWd0IHNpY2ggYW4gRGljaC4KQ2FsdW0gc2FndDogc3BlaWNoZXJlIGRvY2gsIHdlciB3aWUgb2Z0IGluIERlaW5lciBMYXViZSB3YXIsIHVuZCB3ZW5uIGVzIGRhcwpDYWx1bSBzYWd0OiBlcnN0ZSBNYWwgaXN0ID0+IGVudGp1bmdmZXJlIC4uLgpLbm9lcnJ5IHNhZ3Q6IGxhdWJlbiA/IHdvID8KTWVpc3RlciBMaSBzYWd0OiBlcyBnaWJ0IGpldHp0IHNjaG9uIGVpbmlnZSB2ZXJiZW4hCktub2VycnkgZ3JpbnN0LgpaYXJkb3ogd2FlbHp0IHNpY2ggdm9yIExhY2hlbiBhdWYgZGVtIEJvZGVuLgpIdXN0ISBLZXVjaCEgSGFsdCBkaXIgZG9jaCB3ZW5pZ3N0ZW5zIGRpZSBIYW5kIHZvciBkZW4gTXVuZCEKTGkgaGF1dCBDYWx1bSBlaW5lIHJ1bnRlci4KS25vZXJyeSBzYWd0OiBhYmVyIGZ1ZXIgYmVpZGUgOikpCkd1bm5hciBpc3QgZ2VyYWRlIGlucyBTcGllbCBnZWtvbW1lbi4KTWVpc3RlciBMaSBzYWd0OiBrbGFyLCB3ZW5uIHNjaG9uLCBkZW5uIHNjaG9uCkxpIHdhZWx6dCBzaWNoIHZvciBMYWNoZW4gYXVmIGRlbSBCb2Rlbi4KTGkgZmxpcHB0IHRvdGFsIGF1cy4KS25vZXJyeSByb3RmbHQuCkxpIGFyZ2x0IGVpbiB3ZW5pZyB2b3Igc2ljaCBoaW4uCkR1IHNhZ3N0OiBBdSB3ZWlhLi4uLiBXbyBiaW4gaWNoIGhpZXI/ICA7LSkKRHUga2ljaGVyc3QuIChXaWUgYWxiZXJuIHZvbiBEaXIpCkxpIG5pY2t0IHp1c3RpbW1lbmQuCk1laXN0ZXIgTGkgc2FndDogYWxsZWluIHVudGVyIE1hZW5uZXIhCktub2Vycnkgc2FndDogb2hqZS4uLiBpY2ggZmluZGUgYmVpIHNvdmllbGVuIGJlZHVlcnRpZ2VuIFNwaWxlcm4gc29sbHRlIG1hbgpLbm9lcnJ5IHNhZ3Q6IHp1ZXJzdCBlaW4gQm9yZGVsbCBwcm9ncmFtbWllcmVuLi4uIGF1Y2ggZ3V0IGdlZ2VuIEluZmxhdGlvbi4uLgpTaWx2YW5hIHNjaGx1Y2t0IHRyb2NrZW4uCkR1IHNhZ3N0OiBJc3QgaW4gQXJiZWl0Li4uIDstKQpLbm9lcnJ5IGdyaW5zdC4KQ2FsdW0gc2FndDogdW5kIGRhbm4gbWFjaCBlaW5lbgpDYWx1bSBzYWd0OiBjYWxsX291dCgiZnVua3Rpb25fYW1fZW5kZSIsZGF1ZXJfYWJoYWVuZ2lnX3Zvbl9lcmZhaHJ1bmcpCk1laXN0ZXIgTGkgc2FndDogb2ggamEgaW4gdW5zZXJlciBuZXVlbiByZWdpb24hIG1pdCBTaWx2YW5hIGFscyBNQU1hLVMKTWVpc3RlciBMaSBzYWd0OiBNQU1BLVNBTgpNZWlzdGVyIExpIHNhZ3Q6IChwdWZmbXV0dGVyIQpaYXJkb3ogZnJhZ3QgQ2FsdW06IExhZW5nZXJlIE5hbWVuIHNpbmQgZGlyIHdvaGwgbmljaHQgZWluZ2VmYWxsZW4/Cktub2Vycnkgc2FndDogb3VvdW91Li4uCk1laXN0ZXIgTGkgc2FndDogc2FndCBtYW4gZXR3YXMgcGxhdHQgZGF6dSEKRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KRHUgdHJpdHRzdCBMaS4KS25vZXJyeSBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KRHUgZ3J1bW1lbHN0LgpEdSBzY2htb2xsc3QuCkxpIHRhZXRzY2hlbHQgRGlyIGRlbiBLb3BmLgpLaWVzZWxzdGVpbiBmcmFndCBzaWNoLCB3ZWxjaGUgUXVlc3QgZXIgamV0enQgbm9jaCBtYWNoZW4ga29lbm50ZS4KWmFyZG96IHRhZXRzY2hlbHQgTGkgZGVuIEtvcGYuCkR1IGdydW1tZWxzdC4KTWVpc3RlciBMaSBzYWd0OiBraWVzZWxzdGVpbiwgd2llIHdhZXJlIGVzIG1pdCAiV2VyZGUgU2VoZXIiPwpLaWVzZWxzdGVpbiBzYWd0OiBNaXIgZmVobGVuIG5vY2ggZWluIHBhYXIgYXBzCktub2VycnkgdHJvZXN0ZXQgRGljaCB1bmQgZHJ1ZWNrdCBTaWx2YW5hIGVpbiBwYWFyIE11ZW56ZW4gaW4gZGllIEhhbmQuLgpDYWx1bSBoYXQgaGV1dGUgZWluZSBldHdhcyB2ZXJkb3JiZW5lIFBoYW50YXNpZS4KTWVpc3RlciBMaSBzYWd0OiBsb2d0IGRhcyBlaWdlbnRsaWNoIGVpbmVyPwpLbm9lcnJ5IHNjaHVldHRlbHQgYmVydWhpZ2VuZCBkZW4gS29wZi4KRHUgb2hyZmVpZ3N0IEtub2VycnkgYXVzIGRlciBGZXJuZS4KS2llc2Vsc3RlaW4gc2FndDogSWNoIGJyYWV1Y2h0ZSBudXIgbm9jaCBkZW4gQXJjaGl0ZWt0ZW4KTWVpc3RlciBMaSBzYWd0OiBzY2hhZGUxCktub2Vycnkgc2FndDogQXV1dXV1dXV1dSEKWmFyZG96IHNhZ3Q6IE5lIG5lIG5lCktub2VycnkgbGFlc3N0IGVpbmUgTmFzZSBmYWxsZW4uCkxpIGdlaHQgbWFsIGltIE1vcmdlbmdyYXVlbiBzYW1tZWxuLi4uCktub2Vycnkgc2FndDogc2NoYXUgd2FzIGR1IGFuZ3JpY2h0ZXQgaGFzdCAhIQpaYXJkb3ogc2FndDogRnVlciBkaWUgSGFuZHNjaHVoZSBicmF1Y2h0IG1hbiBhdWNoIGVpbmVuIFdhZmZlbnNjaGVpbgpEdSBzYWdzdDogS2xhciB3aXJkIGRhcyBtaXRnZWxvZ2d0Li4uCkNhbHVtIHNhZ3Q6IFNpbHZhbmEsIGJpc3QgZHUgd2FobnNpbm5pZz8/Pz8gaWNoIGhhYmUgZWluZW4gZ3V0ZW4gUnVmIHp1CkNhbHVtIHNhZ3Q6IHZlcmxpZXJlbi4uLiA6KQpMaSBob2x0IGVpbiBIYW5kYW5hbHlzZWdlZ2FldCBhdXMgZGVyIFRhc2NoZSB1bmQgcmljaHRldCBlcyBhdWYgS25vZXJyeTogSG1tLApmYXN0IHRvdCEKWmFyZG96IGZyYWd0IENhbHVtOiBXZWxjaGVuIFJ1Zj8KU2lsdmFuYSBrbGVidCBLbm9lcnJ5cyBOYXNlIHdpZWRlciBpbiBkZXNzZW4gR2VzaWNodC4gTGVpZGVyIHZlcmtlaHJ0aGVydW0uCk1laXN0ZXIgTGkgc2FndDogY2FsdW0sIGpldHp0IG5pY2h0IG1laHIhCk1laXN0ZXIgTGkgc2FndDogaXN0IGRlciBydWYgZXJzdCBydWluaWVydCwgZGFzbm4gbGVidCBlcyBzaWNoIGdhbnoKTWVpc3RlciBMaSBzYWd0OiB1bmdlbmllcnQhCktub2Vycnkgc2FndDogZGFjaCBpY2h0IGdhcm5pY2h0IGx1Y2h0aWNoLi4uISEKWmFyZG96IGdyaW5zdCBMaSBhbi4KTGkgZ3JpbnN0IEtub2VycnkgYW4uCkthcWluIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpTaWx2YW5hIGRyZWh0IGFuIEtub2VycnlzIE5hc2UuIFNpZSB3aWxsIGFiZXIgbmljaHQuCkNhbHVtIHNhZ3Q6IG9oIGplLi4uIGFiZXIgd25uIG1hbCBnbHVlY2tsaWNoIHZlcmhlaXJhdGV0IGlzdCwgdW5kIGRhbm4gc29sY2hlCkNhbHVtIHNhZ3Q6IFNwcnVlY2hlIGxvc2xhZXNzdC4uLiA6KQpFaW4gVHJvcGZlbiBmYWVsbHQgaW4gS25vZXJyeXMgTmFzZS4KTWVpc3RlciBMaSBzYWd0OiBTaWx2YW5hLCBoYWx0IGRvY2ggZGllIE5hc2UgZmVzdCB1bmQgZHJlaGUgS25vZXJyeS4uLgpDYWx1bSBzaWVodCBzY2hvbiBIYWtraWtrdCBtaXQgZGVtIE51ZGVsaG9seiBoaW50ZXIgZGVyIEhhdXN0dWVyIHN0ZWhlbi4KWmFyZG96IGdyaW5zdCBDYWx1bSBhbi4KTWVpc3RlciBMaSBmcmFndDogV2FzIGlzdCBtaXQgbWVpbmVyIHNjaHdlc3Rlcj8/CkVpbiBUcm9wZmVuIGZhZWxsdCBpbiBLbm9lcnJ5cyBOYXNlLgpLbm9lcnJ5IHNhZ3Q6IElociBjaGVpdCBqYSBjaG9vbyBjaG9taWNoLi4ubWVpbmUgYW1tZSBuYWNoZSEhCltBbGxnZW1laW46QmFtYnVsa29dIGluIGRlciBiYW5rIHdhciBlaW4gZmVobGVyIGltIHJ6LWdlZnVlZ2UKRWluIFRyb3BmZW4gZmFlbGx0IGluIEtub2VycnlzIE5hc2UuCltBbGxnZW1laW46TGldIGluIEtub2VycnlzIE5hc2UgYXVjaCEKUHVtYSBzaWNrZXJ0IGluIGtsZWluZW4gdGFuemVuZGVuIEZhcmJ3aXJiZWxuIGluIGRlbiBSYXVtLgpFaW4gVHJvcGZlbiBmYWVsbHQgaW4gS25vZXJyeXMgTmFzZS4KTWVpc3RlciBMaSBzYWd0OiBoYWxsdSEKUHVtYSBzYWd0OiBoYWxsdSAsIHdpZWRlciA6OQpLbm9lcnJ5IHNhZ3Q6IHdhY2ggbWFjaCBpY2ggYmVpIFJlZ2VuID8/IEtvcGZjaHRhbmQgPz8KRHUgc2Fnc3Q6IEVzIFJlZ25ldC4uLgpaYXJkb3ogc2FndDogQWhhISBEYSBpc3NlciB3aWVkZXIhCkVpbiBUcm9wZmVuIGZhZWxsdCBpbiBLbm9lcnJ5cyBOYXNlLgpLbm9lcnJ5cyBOYXNlIGxhZXVmdCB1ZWJlci4KS25vZXJyeSBzdGVsbHQgc2ljaCBhdWYgZGVuIEtvcGYuCkxpIHppZWh0IEtub2VycnlzIE5hc2UgbGFuZyB1bmQgdGF1ZnQgaWhuIHVtIGluIFBpbm9jY2hpby4KWmFyZG96IHNhZ3Q6IE5lIG5lIG5lCk1laXN0ZXIgTGkgc2FndDogYWNodHVuZyBiZWltIFVtZHJlaGVuIQpaYXJkb3ogZHJlaHQgTGlzIE5hc2UgdW0uCk1laXN0ZXIgTGkgc2FndDogYXUhClphcmRveiBzdGVja3QgZWluZW4gTGFwcGVuIHp1cnVlY2suClphcmRveiB6dWVja3QgZWluZW4gTGFwcGVuLgpaYXJkb3ogc3RhdWJ0IExpcyBOYXNlIGFiLgpMaSBkcmVodCBzZWluZSBOYXNlIHdpZWRlciBnZXJhZGUuCkJvYm8gaXN0IGdlcmFkZSBpbnMgU3BpZWwgZ2Vrb21tZW4uCk5hcGFzdGFyIGhhdCBnZXJhZGUgZGFzIFNwaWVsIHZlcmxhc3Nlbi4KTGkgaGF0IE1pdGxlaWQgbWl0IEtub2VycnkuIEVpbiBXaW5rLi4uIHVuZCBLbm9lcnJ5cyBOYXNlIGlzdCB3aWVkZXIgaW4KT3JkbnVuZy4KS25vZXJyeSBzYWd0OiBwdXV1aGhoIERhbmtlZWUhClB1bWEgc2FndDogaGFsbHUgY2FsdW0sIGJpc3QgZHVub2NoIGRhID8KS25vZXJyeSBzYXRlbGx0IHNpY2ggd2llZGVyIGF1ZiBkaWUgQmVpbmUuClphcmRveiBzYWd0OiBPaCEKS25vZXJyeSBzYWd0OiBzYXRlbGx0ID8gc3RlbGx0Li4uClphcmRveiBzYWd0OiBVcHMhClphcmRveiBzYWd0OiBJY2ggZ2xhdWJlIGVzIG5pY2h0IQpIYWFhYWFhLXRzY2hpISBLbm9lcnJ5IG5pZXN0LgpDYWx1bSBzYWd0OiBqZXR6dCBqYS4uLiBoYWJlIG1pciBnZXJhZGUgbmUgQ29sYSBnZWhvbHQgOikKWmFyZG96IHNhZ3Q6IEphLCBpc3QgZXMgZGVubiB6dSBmYXNzZW4uLi4KUHVtYSBzYWd0OiA/PwpNZWlzdGVyIExpIGZyYWd0IFphcmRvejogV2FzPwpIYWFhYWFhLXRzY2hpISBLbm9lcnJ5IG5pZXN0LgpDYWx1bSBzYWd0OiBoYXQgc2ljaCBpbiB1bnNlcmVtIEdlc3ByYWVjaCBpbnp3aXNjaGVuIGVpbmUgV2VuZHVuZyBlcmdlYmVuPwpDYWx1bSBzYWd0OiBvZGVyIGhhdCBqZW1hbmQgbmV1ZSBWZXJiZW4gZ2VmdW5kZW4/ClphcmRveiBzYWd0OiBDYW1waW5vIGhhdHRlIGRvY2ggdGF0c2FlY2hsaWNoIG1laW5lIEJ1cmcgYmV0cmV0ZW4uLi4KWmFyZG96IHNhZ3Q6IEd1dCwgd2VubiBtYW4gc2Nob2VuIHZpZWwgbWl0bG9nZ3QgOikKUHVtYSBzYWd0OiB2ZXJiZW4/IGdlc3ByYWVjaGU/IHdlbmR1bmc/Ck1laXN0ZXIgTGkgc2FndDogd2FydW0gbmljaHQ/IGljaCB3aWwgamEgYXVjaCBub2NoIHJlaW4KSGFhYWFhYS10c2NoaSEgS25vZXJyeSBuaWVzdC4KTGkgc3RvZWhudC4KWmFyZG96IHNhZ3Q6IEtvbWlzY2ggaXN0IG51ciwgZGFzcyBhbGxlIE1hZ2llciBzaWUgYmV0cmV0ZW4sIGFiZXIgbmljaHQgbWVocgpaYXJkb3ogc2FndDogdmVybGFzc2VuIDopCktub2VycnkgZ3JpbnN0LgpDYWx1bSBlcnJvZXRldC4KTWVpc3RlciBMaSBzYWd0OiBhbHNvIGljaCBnbGF1YmUsIGVzIGdpYnQgc2Nob24gZ2VudWcgdmVyYmVuIGZ1ZXIgZGllIGxhdWJlIQpNZWlzdGVyIExpIGZyYWd0OiBXYXM/PwpDYWx1bSBzYWd0OiBTaWx2YW5hIHdpbGwgbmUgbGF1c2NoaWdlIGxhdWJlIHByb2dyYW1taWVyZW4gOikKTWVpc3RlciBMaSBzYWd0OiB3aWUgd2FlcmUgZXMgbWl0IHNjaG11c2VuIFNpbHZhbmE/Cktub2Vycnkgd2lua3QgYWIuCkR1IG5pY2tzdCB6dXN0aW1tZW5kLgpMaSBrZXVjaHQgdm9yIEFuc3RyZW5ndW5nLgpLbm9lcnJ5IGlzdCBlcnN0YXVudC4KTWVpc3RlciBMaSBzYWd0OiBobSwsIGtldWNoZW4gaGF0dGUgaWNoIG1pciBqZXR6dCBhbmRlcnMgdm9yZ2VzdGVsbHQsIGFiZXIKTWVpc3RlciBMaSBzYWd0OiB2b3IgYW5zdHJlbmd1bmc/IFdhcnVtIG5pY2h0PyA6KQpQdW1hIHNhZ3Q6IHNpbHZhbmEgZGVua3QgamEgbnVyIGFuIHRob3JpbiA6KQpEdSBncmluc3QuCkR1IHNhZ3N0OiBOb2UuLi4gRnVlciBkZW4gaXN0IHVuc2VyIFNjaGxhZnppbW1lci4uLiA7LSkKTWVpc3RlciBMaSBzYWd0OiBnZW5hdSEgZGFubiBpc3QgZGllIGxhdWJlIGltbWVyIG51ciB2b24gZGVuIGJlaWRlbiBiZXNldHp0IQpaYXJkb3ogc2FndDogRnVlciBUaG9yaW4gbGllZ2VuIHNpY2hlcmxpY2ggc2Nob24gSGFuZHNjaGVsbGVuIGJlcmVpdApNZWlzdGVyIExpIGZyYWd0OiBTY2hsYWZ6aW1tZXI/PwpEdSBraWNoZXJzdC4gKFdpZSBhbGJlcm4gdm9uIERpcikKRHUgendpbmtlcnN0IFphcmRveiB6dS4KTWVpc3RlciBMaSBmcmFndDogSGFuZHNjaGVsbGVuPz8KUHVtYSBzYWd0OiB1bmQgZWluZSB2b24gVHJveXMgRGFlbW9uZW5wZWl0c2NoZW4gOikKUHVtYSBncmluc3QgZnJlY2guCkR1IGZsdWVzdGVyc3QgWmFyZG96IGV0d2FzIHp1LgpNZWlzdGVyIExpIGZyYWd0OiBVbmQgbmU/ClphcmRveiBncmluc3QgUHVtYSBhbi4KTGkgZ3JpbnN0IFB1bWEgYW4uCktub2Vycnkgc2NobGVja3QgYW4gc2VpbmVtIExvbGxpLgpaYXJkb3ogZmx1ZXN0ZXJ0IERpciBldHdhcyB6dS4KS25vZXJyeSBzY2hsZWNrdCBhbiBzZWluZW0gTG9sbGkuCkxpIHNjaHVldHRlbHQgZXR3YXMgYXVzIHNlaW5lbSBBZXJtZWwuCkR1IHNhZ3N0OiBFcyB3ZXJkZW4gNiBMYXViZW4sIGluc2dlc2FtbXQuLi4gOy0pCk1laXN0ZXIgTGkgc2FndDogd2F1IQpaYXJkb3ogZnJhZ3QgRGljaDogTWVpbnN0IGR1LCBlcyB3YWVyZSBzb25zdCBpbW1lciBkaWUgTGF1YmUgYmVsZWd0PwpQdW1hIHNhZ3Q6IGZ1ZXIgd2VuIGRlbm4gbm9jaCA/CkR1IHNhZ3N0OiBJY2ggZ2xhdWJlLCBpY2ggc29sbHRlIGRpZSBaYWhsIGFlbmRlcm4uLi4gU29uc3QgZGVua3QgaXJnZW5kd2VyCkR1IHNhZ3N0OiB3YXMgc2NobGltbWVzLi4uIDstKQpEdSBuaWNrc3QgWmFyZG96IHp1LgpNZWlzdGVyIExpIHNhZ3Q6IHdpZXNvLCA2IGlzdCBkb2NoIGVpbmUgZ2x1ZWNrc3phaGwhCktub2Vycnkgbmlja3QgZXJuc3QuCkR1IGdyaW5zdCBMaSBhbi4KUHVtYSBzYWd0OiBuYWphIDopCkxpIGdyaW5zdCBEaWNoIGFuLgpNZWlzdGVyIExpIHNhZ3Q6IG9kZXIgd2FyIGVzIDc/CkR1IHNhZ3N0OiBXaWUgd2FlcnMgbWl0IGVpbmVyIHJhZGZhaHJlbmRlbiBEYW1lIHVuZCBlaW5lciBHcm9zc2thdHplPwpQdW1hIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkdhc3QxIGlzdCBnZXJhZGUgaW5zIFNwaWVsIGdla29tbWVuLgpNZWlzdGVyIExpIGZyYWd0OiBJbiBkZXIgbGF1YmU/CkR1IG5pY2tzdCBMaSB6dS4KS25vZXJyeSBuaWNrdCB6dXN0aW1tZW5kLgpQdW1hIHNhZ3Q6IGVpbmVuIGFycmF5ID8KR2FzdDEgYmV0cml0dCBkaWVzZSBXZWx0LgpNZWlzdGVyIExpIHNhZ3Q6IGdyb3Nza2F0enRlPyBhbHNvIGljaCB3ZWlzcyBuaWNodApEdSBzYWdzdDogWmFlaGx0IGRhbm4gSm9mIGZ1ZXIgMj8KR2FzdDIgYmV0cml0dCBkaWVzZSBXZWx0LgpLbm9lcnJ5IHNhZ3Q6IGRlciBrcmllZ3QgbmUgZWlnZW5lIExhdWJlIHp1bSBpZGxlbi4uLgpHYXN0MiBnZWh0IG5hY2ggTm9yZGVuLgpQdW1hIGhhdCBzY2hvbiBlaW5lIHJpZXNpZ2UgTGF1YmUuIERhcyBMdXBpbmVudGFsIDopCkxpIGdyaW5zdCBQdW1hIGFuLgpaYXJkb3ogc2FndDogSWNoIGhhYmUgaW1tZXJoaW4gZWluIFNjaGxhZnppbW1lci4uLgpaYXJkb3ogc2FndDogRGFzIHJlaWNodCBtaXIKUHVtYSBzYWd0OiBkYXMgaGllciBhbGxlIGF1Y2ggaW1tZXIgbnVyIGFuIGRhcyBlaW5lIGRlbmtlIGtvZW5uZW4gOikKU2lsdmFuYSBoYXQgZWluIHNjaG9lbmVzIGdyb3NzZXMgU2NobGFmemltbWVyLi4uIDstKQpNZWlzdGVyIExpIHNhZ3Q6IGljaCBlaW4gYmV0dCwgYWJlciBkYSBzY2hsYWZlIGljaCBpbW1lciBudXIgYWxsZWluZS4uLgpNZWlzdGVyIExpIHNhZ3Q6ICpzY2hsdWNoeioKQ2FsdW0gZmFlbmd0IGZ1ZXJjaHRlcmxpY2ggYW4genUgZmx1Y2hlbi4KUHVtYSBncmluc3QuCkR1IHRyb2VzdGVzdCBMaS4KR2FzdDEgbmltbXQgZWluIEJ1Y2guCkNhbHVtIHNhZ3Q6IGljaCBoYWIgc29nYXIgZWluIEVoZWJldHQgOikKR2FzdDEgb2VmZm5ldCBlaW4gSGFuZGJ1Y2guClB1bWEgc2FndDogamEsIGxpLiBpcmdlbmRldHdhcyBoYXN0IGR1IHZlcnBhc3N0IGF1ZiBkZWluZW0gd2VnIHp1bSBtYWdpZXIgOikKTGkgbmlja3QgdHJhdXJpZy4KS25vZXJyeSBzYWd0OiBpY2ggc2NobGFmZSB6dXNhbW1lbiBtaXQgMTAwIGFuZGVyZW4uLi4uIGltIE5ldHp0b3RlbnJhdW0gOikpClphcmRveiBsYWNodCB1ZWJlciBLbm9lcnJ5LgpEdSB3YWVsenQgRGljaCB2b3IgTGFjaGVuIGF1ZiBkZW0gQm9kZW4uCi9wbGF5ZXJzL3NpbHZhbmE6IFB1bWEgZ3JpbnN0IEtub2VycnkgYW4uCkxpIHdhZWx6dCBzaWNoIHZvciBMYWNoZW4gYXVmIGRlbSBCb2Rlbi4KS25vZXJyeSBzYWd0OiBkaWUgZWlucmljaHR1bmcgbGFlc3N0IHp3YXIgZXR3YXMgenUgd3VlbnNjaGVuIHVlYnJpZy4uLmFiZXIgZXMKS25vZXJyeSBzYWd0OiBpc3QgYmlsbGlnIHVuZCB3YXJtIChXZWdlbiBIb2VsbGUgbmViZW5hbiA6KQpNZWlzdGVyIExpIGZsdWVzdGVydCBQdW1hIGV0d2FzIHp1LgpncmlucyBrbm9lcnJ5CkR1IGdyaW5zdCBLbm9lcnJ5IGFuLgpMaSBlcnJvZXRldC4KWmFyZG96IHJ1bnplbHQgZGllIFN0aXJuLgpLbm9lcnJ5IHJ1bnplbHQgZGllIE5hc2UgZGllIFN0aXJuLgpTaWx2YW5hIGxhdXNjaHQgYW5nZXN0cmVuZ3QsIHdhcyBMaSBkYSBmbHVlc3RlcnQuCk1laXN0ZXIgTGkgZmx1ZXN0ZXJ0IFB1bWEgZXR3YXMgenUuCktub2Vycnkgc2FndDogZXR3YXMuCkxpIHJhZXVzcGVyc3Qgc2ljaC4KWmFyZG96IHNhZ3Q6ICpEdW0qRGkqRHVtKgpHYXN0MSBmcmFndDogR2FzdDI6IGJpc3QgZHUgZGFzIGVyc3RlIG1hbCBoaWVyPz8KWmFyZG96IGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpLbm9lcnJ5IGdyaW5zdC4KR2FzdDMgaXN0IGdlcmFkZSBpbnMgU3BpZWwgZ2Vrb21tZW4uCkdhc3QzIGJldHJpdHQgZGllc2UgV2VsdC4KR2FzdDQgaXN0IGdlcmFkZSBpbnMgU3BpZWwgZ2Vrb21tZW4uCkdhc3Q0IGJldHJpdHQgZGllc2UgV2VsdC4KR2FzdDEgZnJhZ3Q6IEdhc3QzOiB3ZXIgYmlzdCBkdT8/Ckdhc3QyIHNhZ3Q6IEljaD8KR2FzdDQgc2FndDogZ2FzdDEgLCBiaXN0IER1J3MgPwpHYXN0NSBpc3QgZ2VyYWRlIGlucyBTcGllbCBnZWtvbW1lbi4KR2FzdDIgc2FndDogU29ycnksIGhhYiBudXIgZ3JhZCBnZWd1Y2t0LCB3ZXIgZHJpbiBpc3QKR2FzdDUgYmV0cml0dCBkaWVzZSBXZWx0LgpHYXN0NCBzYWd0OiB3byBzaW5kIHdpciA/Ckdhc3Q1IHNhZ3Q6IEhhbGxvIQpHYXN0MyBzYWd0OiB6dSBnYXN0IDM6Ckdhc3QyIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpHYXN0NSBmcmFndCBHYXN0MzogV2FzIG1laW5zdCBkdT8KR2FzdDUgZ2lidCBlaW4gYWxiZXJuZXMgS2ljaGVybiB2b24gc2ljaC4KR2FzdDEgaXN0IGdlcmFkZSBpbnMgU3BpZWwgZ2Vrb21tZW4uCkdhc3QzIHNhZ3Q6IHp1IGdhc3QgMzogV28ga29tbXN0IER1IGhlcj8KR2FzdDIgc2FndDogQWVobSwgaWNoIG11c3MgZXJzdG1hbCByYXVzZmluZGVuLCB3ZWxjaGVyIEdhc3QgaWNoIGJpbgpHYXN0NSBraWNoZXJ0IGhpbnRlciBHYXN0NHMgUnVlY2tlbi4KR2FzdDEgYmV0cml0dCBkaWVzZSBXZWx0LgpDYWx1bSBzYWd0OiB3b3csIDUgR2Flc3RlIGF1ZiBlaW5tYWwgaGF0dGVuIHdpciBhdWNoIHNjaG9uIGxhbmdlIG5pY2h0CkNhbHVtIHNhZ3Q6IG1laHIuLi4KR2FzdDQgc2FndDogYmluIGljaCBnYXN0NCA/Ckdhc3QyIGlzdCBnZXJhZGUgaW5zIFNwaWVsIGdla29tbWVuLgpHYXN0NSBzYWd0OiBTbywgaWNoIGdlaGUgbWFsIHdpZWRlcgpQdW1hIHRlc3RldCBkaWUgR2Flc3RlLgpHYXN0NSBoYXQgZ2VyYWRlIGRhcyBTcGllbCB2ZXJsYXNzZW4uCkdhc3Q1IHZlcmxhZXNzdCBkaWVzZSBXZWx0LgpHYXN0MiBiZXRyaXR0IGRpZXNlIFdlbHQuCkdhc3QxIGdlaHQgbmFjaCBOb3JkZW4uCkdhc3Q0IG5pY2t0IHp1c3RpbW1lbmQuCkdhc3Q0IGhhdCBnZXJhZGUgZGFzIFNwaWVsIHZlcmxhc3Nlbi4KR2FzdDQgdmVybGFlc3N0IGRpZXNlIFdlbHQuClphcmRveiBzYWd0OiBJY2ggaGFiZSBnZXN0ZXJuIG1laHJlcmUgR2Flc3RlIHVtZ2VicmFjaHQuLi4KWmFyZG96IHNhZ3Q6ICpEdW0qRGkqRHVtKgpNZWlzdGVyIExpIGZyYWd0IFphcmRvejogV2FydW0/ClphcmRveiBzYWd0OiBXZWlsIGljaCBkZW4gVG9kZXNrYW5hbCB0ZXN0ZW4gd29sbHRlLCB1bmQgbWVpbiBUZXN0aWUgZGFyYXVmClphcmRveiBzYWd0OiBnZXNwZXJydCBpc3QuLi4KUHVtYSBzYWd0OiBlciB3aWxsIGluIGRlciBraWxsc3RhdCBhdWZzdGVpZ2VuIDopCkdhc3QyIGdlaHQgbmFjaCBOb3JkZW4uCkdhc3QyIGtvbW10IGFuLgpaYXJkb3ogc2FndDogVW5kIGljaCB3YXIgenUgZmF1bCB6dTogeGNhbGwgZ3J1dWgtPlNldFByb3AoUF9URVNUUExBWUVSLCAwKQpLbm9lcnJ5IHNhZ3Q6IEdhZXN0ZS4uLmRpZSBMZW1taW5nZSBkZXMgTW9yZ2VuR3JhdWVucy4uLgpNZWlzdGVyIExpIGZyYWd0OiBUZXN0aWUgZXJzY2hlaW5lbiBuaWNodCBpbSB0b2Rlc2thbmFsPyBndXQgenUgd2lzc2VuPwpHYXN0NCBpc3QgZ2VyYWRlIGlucyBTcGllbCBnZWtvbW1lbi4KR2FzdDQgYmV0cml0dCBkaWVzZSBXZWx0LgpHYXN0MyBuaW1tdCBkaWUgWmVpdHVuZy4gU29mb3J0IGVyc2NoZWludCBhdWYgdW5lcmtsYWVybGljaGUgV2Vpc2UgZWluZSBuZXVlLgpHYXN0MiBzYWd0OiB3ZW5uIG1hbiBHYWVzdGUgdmVyZ3JhdXRsCkdhc3Q0IGdlaHQgbmFjaCBOb3JkZW4uCkdhc3QyIHNhZ3Q6IGlzdCBtYW4gc2NobmVsbCB2ZXJydWZlbiAuLi4KWmFyZG96IHNhZ3Q6IFVwcyEgRHUgaGFzdCByZWNodCwgUHVtYS4uLmljaCBzdGVoZSBpbiBkZXIgU3RhdGlzdGlrIHNjaG9uIHZvcgpaYXJkb3ogc2FndDogZGVyIFVudGVyd2VsdC4uLgpaYXJkb3ogc2FndDogT2huZSBlaW4gYW5nZXNjaGxvc3NlbmVzIEdlYmlldCB6dSBoYWJlbgpaYXJkb3ogc2FndDogKkR1bSpEaSpEdW0qClB1bWEgenVja3QgcmF0bG9zIG1pdCBkZW4gU2NodWx0ZXJuLgpEdSBzYWdzdDogV28gZmluZGV0IG1hbiBkZW5uIGRpZSBTdGF0aXN0aWs/ClB1bWEgc2FndDogaXMgaGFsdCBzdGF0aXN0aWsgOikKTWVpc3RlciBMaSBzYWd0OiB+cm9jaHVzL3N0YXRpc3RpawpHYXN0MiBnZWh0IG5hY2ggTm9yZGVuLgpHYXN0MSBoYXQgZ2VyYWRlIGRhcyBTcGllbCB2ZXJsYXNzZW4uCgoodXN3LiB1c2YuLi4pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBoYXR0ZSBlaW5lciBlaW5lIElkZWUuLi4gKEZyZXVuZCwgMTkuIE9rdCAxOTk0LCAxMzo0NDoxMSk6CkF1cyBtZWluZW0gV2FsZC5yZXBvcnQgRmlsZToKSURFQSB2b24gZGFtbWl0IGF1cyAvd3VyemVsL3dhbGQvZWdhbC5yb29tICgxOS4gT2t0IDE5OTQpOgpob3cgYWJvdXQgbWFraW5nIGFuIGVuZ2xpc2gvZ2VybWFuIHRyYW5zbGF0ZXI/IGhlaGUsIGp1c3Qga2lkZGluZywgZ28gYmFjayB0bwpzbGVlcAoKR3JpbnNlbmQgZWluIGFtdWVzaWVydGVyIEZyZXVuZC4KCihXZXIgbW9lY2h0ZSBkZW5uIGJpdHRlIHNjaG9lbiBtYWwgZGVuIFVlYmVyc2V0emVyIHNjaHJlaWJlbj86LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBLYWVzZSB1bmQgUmViZWxsZW4gZ2VtZWluc2FtIGhhYmVuIChIaWdobGFuZGVyLCAxOS4gT2t0IDE5OTQsIDE0OjAwOjA2KToKCiAgIFBhcm1lc2FuIHVuZCBQYXJ0aXNhbgogICB3byBzaW5kIHNpZSBnZWJsaWViZW4/CiAgIFBhcm1lc2FuIHVuZCBQYXJ0aXNhbgogICBtYW4gaGF0IHNpZSBhdWZnZXJpZWJlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplcnN0ZXIgd2l0eiBkaWUgMS4gKFN1bm55LCAyMC4gT2t0IDE5OTQsIDEwOjU1OjI4KToKd2VoZSBpY2ggYmVrb21tIHNlbmRzL2JyaWVmZS9tYWlscyBkYXMgZGVyIHdpdHogdXJhbHQgaXN0IG9kZXIgZGFzcyBpaG4Ka2VpbmVyIHdpdHppZyBmYW5kISEhISEhISEhISEhISEhCmFsc286CkVpbiBBdXRvZmFocmVyIGhhZWxsdCBzZWluZW4gS29wZiBhdXMnbSBGZW5zdGVyIHVuZCBmcmFndCAnbmVuIFR1ZXJrZW46CiJ3byBnZWh0J3MgJ24gaGllciBuYWNoIEFMREk/IgpkYXJhdWYgZGVyIFR1ZXJrZToKInp1IEFMREkhIgpkYXJhdWYgZGVyIGF1dG9mYWhyZXI6CiJ3YXMgc2Nob24genUgYWxkaT8iCgpBbHNvIGljaCBmYW5kIGRlbiBndXQuU29ycnkgZnVlciBkaWUgS2xlaW5zY2hyZWlidW5nIGFtIEFuZmFuZyBkZXIgU2FldHplCgpTVU5OWSBkaWUgbm9jaCBnYWFhYWFhbnogdmlpaWlpaWlpZWVlZWVlZWVlbGUgd2l0emUgd2Vpc3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBlcnN0ZXIgd2l0eiBkaWUgMS4gKEFzbW9kaXMsIDIwLiBPa3QgMTk5NCwgMTU6MTA6MjMpOgooQmV6dWc6IEFydGlrZWwgdm9uIFN1bm55LCBEb24sIDIwLiBPa3QgMTk5NCwgMTA6NTU6MjgpCkFsc28gU3VubnksIGRlciBXaXR6IGlzdCB1cmFsdCB1bmQgaWNoIGZhbmQgaWhuIGF1Y2ggbmljaHQgc28gd2l0emlnIDopCgogICAgICAgICAgICAgICAgICAgICAgICAgQ2lhbywgQXNtb2RpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGVyc3RlciB3aXR6IGRpZSAxLiAoU3RhaGxkb3JuLCAyMC4gT2t0IDE5OTQsIDE1OjU0OjEyKToKKEJlenVnOiBBcnRpa2VsIHZvbiBTdW5ueSwgRG9uLCAyMC4gT2t0IDE5OTQsIDEwOjU1OjI4KQpTdGFobGRvcm4gaGF0IGRlbiBXaXR6IG5pY2h0ZWlubWFsIHZlcnN0YW5kZW4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcgKFJvY2h1cywgMjAuIE9rdCAxOTk0LCAxOToyNjoyNyk6ClNseWZveCBydWZ0OiBUb2V0ZXIgaWNoIGtvbW1lISBNYWNoIERpY2ggc2Nob24gbWFsIGF1ZiBQbGF0eiAyIGdlZmFzc3QgOy0pCi4uLiBlaW5pZ2UgWmVpdCBzcGFldGVyOiAuLi4KW1RvZDpdIEVpbiBUcm9sbG1vcHMgaGF0IGdlcmFkZSBTbHlmb3ggdW1nZWJyYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlbGQgenUgdmVya2F1ZmVuISAoS3JldGVrLCAyMS4gT2t0IDE5OTQsIDAxOjA5OjAxKToKTmV1bGljaCwgaW0gTGFkZW4gZGVyIFp3ZXJnZW5zdGFkdDoKCkljaCwgbmljaHRzIEJvZXNlcyBhaG5lbmQsIHNjaGxlbmRlciBlaW5lcyBzY2hvZW5lbiBUYWdlcyAoaW4gRXJtYW5nZWx1bmcKZWluZXIKRHVua2VscGVyaW9kZSBpbSBNb3JnZW5HcmF1ZW4sIG5hdHVlcmxpY2guLi4pIHNvIHZvciBtaWNoIGhpbiB1bmQgZGVua2UgbWlyOgoiR2VoIGRvY2ggd2llZGVyIG1hbCBCdW1tZWxuISIgVW5kIHdhcyBsaWVndCBkYSBuYWVoZXIsIGFscyBtZWluZW4gTGllYmxpbmdzLQpsYWRlbiwgZGVuIGluIGRlciBad2VyZ2Vuc3RhZHQsIGF1Znp1c3VjaGVuIQpBbHNvLCBuaWNodHMgd2llIGhpbiwgbm9jaCBtYWwgc2NobmVsbCBkYXMgR2VsZCBnZXphZWhsdCwgdW5kIGRlbiBLcmltc2tyYW1zCmR1cmNoZ2VzZWhlbiwgc3ByaWNoOiAiemVpZ2UgdmVyc2NoaWVkZW5lcyIuIEhtbW0sIGludGVyZXNzYW50ISBVbnRlciBkZXIKTGlzdGUgZmFuZCBpY2ggbmFlbWxpY2ggYXVjaCBmb2xnZW5kZXM6ClBvc3RlbiBOdW1tZXIgIDk4OiAyNiBNdWVuemVuICAgICAgICAgICAgenVtIFNwb3R0cHJlaXMgdm9uIG51ciA3OCBNdWVuemVuClBvc3RlbiBOdW1tZXIgMTU4OiAyMTYyMCBNdWVuemVuICAgICAgICAgICAiICAgICAgIiAgICAgICAiICAgIiAgNjQ4NjAKUG9zdGVuIE51bW1lciAyMDI6IDEyMjcyIE11ZW56ZW4gICAgICAgICAgICIgICAgICAiICAgICAgICIgICAiICAzNjgxNgoKQWxzbywgd2FzIGRlbmsgaWNoIG1pciBkYT8gVG9sbGUgU2FjaGUsIHdlbm4gaWNoIGpldHp0IGtlaW4gR2VsZCBtZWhyIGhhYmUsCmRhbm4gS0FVRiBpY2gncyBtaXIgZWJlbiBlaW5mYWNoIGltIExhZGVuISAoT2Rlci4uPykgVW5kLCBub2NoIGJlc3NlcjogV2VubgppY2ggZHJpbmdlbmQgR2VsZCBicmF1Y2hlLCBkYW5uIHZlcmthdWZlIGljaCBkb2NoIGVpbmZhY2ggbWVpbmUgTXVlbnplbiEKCgpMZWljaHQgdmVyd2lycnQsCiAgICBLcmV0ZWssIGRlciBld2lnZSBOb2VyZ2xlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzIGRlbiBMb2dGaWxlcy4uLiAoV2FyZ29uLCAyMS4gT2t0IDE5OTQsIDEyOjQxOjQ3KToKCkJBVVdVVDogKG1hbiBhY2h0ZSBhdWYgZGllIFplaXRlbi4uLikKRGllLCAxOC4gT2t0IDE5OTQsIDE1OjUxOjI3IC0gQW50cmFnOiByeW5lIGJla2FtIGVpbmVuIFZlcnRyYWcuCkRpZSwgMTguIE9rdCAxOTk0LCAxNTo1NTozNCAtIEFudHJhZzogcnluZSB1bnRlcnNjaHJpZWIgZGVuIFZlcnRyYWcgKHNjaG5lbGwpLgpEaWUsIDE4LiBPa3QgMTk5NCwgMTY6NDU6MjIgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCkRpZSwgMTguIE9rdCAxOTk0LCAxNzozODoyOSAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KRGllLCAxOC4gT2t0IDE5OTQsIDE4OjQ3OjUwIC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpEaWUsIDE4LiBPa3QgMTk5NCwgMjA6MDk6MTIgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwMDozOTozNyAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDAxOjAwOjUxIC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDE6MjU6MDUgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwMTo1MDoxNSAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDAyOjEyOjE3IC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDI6NDA6MjkgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwMzowNjo0MyAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDAzOjM1OjEzIC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDM6NTk6NDEgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwNDoyMzo0MSAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDA0OjQ3OjM2IC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDU6MDY6MjggLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwNToyMTo0NiAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDA1OjQ2OjUzIC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDU6NTk6NDIgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwNjoyMzo1OSAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDA2OjQwOjE5IC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDc6MDM6MTAgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwNzoyNTozMSAtIEVpbnphaGx1bmc6IHJ5bmUgemFobHRlIGVpbi4KTWl0LCAxOS4gT2t0IDE5OTQsIDA3OjQwOjI3IC0gRWluemFobHVuZzogcnluZSB6YWhsdGUgZWluLgpNaXQsIDE5LiBPa3QgMTk5NCwgMDc6NTM6MDQgLSBFaW56YWhsdW5nOiByeW5lIHphaGx0ZSBlaW4uCk1pdCwgMTkuIE9rdCAxOTk0LCAwNzo1NDo1NSAtIEF1c2dhYmU6IHJ5bmUgYmVrYW0gc2VpbiBIYXVzLgoKQkxJVFpNRVJLRVI6CkJVR1Mgdm9uIEdyaW1tYm9ybiAoU2FzY2hhcyBSYXVtIGltIEx1ZnRzY2hsb3NzKToKV2FzIHNvbGwgZGFzPyB1bnQga25hZWNrZWJyb3Q6IERhcyBJbnRlbGxpZ2VudGVzdGUsIHdhcyBkaWVzZXIgUmF1bSB6dSBiaWV0ZW4KaGF0Li4uIEljaCBiaW4gZG9jaCBhdWNoIG5vY2ggaGllciEKKEdyaW1tYm9ybiBpc3QgZGVyIGVyc3RlLCBkZW0gZGFzIGluIGVpbmVtIGtuYXBwZW4gSmFociBMdWZ0c2NobG9zc2dlc2NoaWNodGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmU6IExvZXNjaHVuZyAoU21hdWcsIDI1LiBPa3QgMTk5NCwgMTU6MTk6MDUpOgooQmV6dWc6IEFydGlrZWwgdm9uIEJlbGRpbiwgRGllLCAyNS4gT2t0IDE5OTQsIDEzOjQwOjM2KQoKYWxzbyBpY2ggYmluIGF1Y2ggbmljaHQgZGFtaXQgZWludmVyc3RhbmRlbiwgZGFzcyBlaW5mYWNoICh3aWxsa3VlcmxpY2gpCmFydGlrZWwgZ2Vsb2VzY2h0IHdlcmRlbi4gV2VubiBqZW1hbmQgYmVsZWlkaWdlbmRlIChvZGVyIHdpZSBhdWNoIGltbWVyKQphcnRpa2VsIHNjaHJlaWJ0LCBzY2hhZGV0IGRhcyBlYmVuIHNlaW5lbSBydWYuCmRhbWl0IG1laW5lIGljaDoKd2VubiBqZW1hbmQgaW1tZXIgc2NobGVjaHQgYXVmZmFlbGx0IHdpcmQgZXIgd2FocnNjaGVpbmxpY2ggdm9uIGthdW0gamVtYW5kZW0KaGlsZmUgYmVrb21tZW4gKHVuZCBpY2ggbWVpbmVyc2VpdHMgYmluIGhhZXVmaWcgYXVmIGVpbiBiaXNzY2hlbgp1bnRlcnN0dWV0enVuZyBhbmdld2llc2VuKQoKdW5kIHdlbm4gZGFzIG5pY2h0IGdlbnVlZ3Q6IHdpZSB3YWVycyBkZW5uIG1pdCBlaW5lbSBnZXJpY2h0LCB3byBnZXNjaHdvcmVuZQphYnN0aW1tZW4ga29lbm5lbiB3YXMgbWl0IGRlbSA+Ym9zZW4gYnViZW4gKG1hZWRjaGVuKTwgcGFzc2llcnQgOi0pCgpzbWF1ZyBkZXIgd2VkZXIgZWluIGRyYWNoZSBpc3QsIG5vY2ggamVtYWxzIG1pdCB6ZW5zdXIgZWludmVyc3RhbmRlbiBzZWluCndpcmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmU6IFJlOiBMb2VzY2h1bmcgKEhhcmRpbCwgMjUuIE9rdCAxOTk0LCAxNzo0NDowMik6CihCZXp1ZzogQXJ0aWtlbCB2b24gU21hdWcsIERpZSwgMjUuIE9rdCAxOTk0LCAxNToxOTowNSkKCk1laW5lIHp3ZWkgUGVubmllczogd2VubiBqZW1hbmQgdW5iZWRpbmd0IHNlaW5lIEAjJCVeJiotV2l0emUgYW4gZGVuIE1hbm4Kb2RlciBhbiBkaWUgRnJhdSBicmluZ2UgbndpbGwsZGFubiBrYW5uIGVyIGRhZnVlciBlaWdlbnRsaWNoIGF1Y2ggZGllIFBvc3QKYmVudXR6ZW4uIERpZXNlIEFydCBFeGhpYml0aW9uaXNtdXMsIHdpZSBDYW1waW5vIHNpZSBkdXJjaCBkaWUgbXBhIG1hY2h0LCBpc3QKZWluZmFjaCBkYW5lYmVuIHVuZCBkZXN3ZWdlbgprYW5uIHNvd2FzIGF1Y2ggZ2Vsb2VzY2h0IHdlcmRlbi4KCkVuZCBvZiBTZW5mLgoKSGFyZGlsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTG9lc2NodW5nIChNYXRlZXNlLCAyNS4gT2t0IDE5OTQsIDE5OjI3OjI0KToKSG1tLCB6d2FyIGVzIGlzdCBuaWNodCBtZWluZSBUYXNzZSBUZWUgKCJBc3NhbSBPcmFuZ2UgUGVrb2UsIGhlaXNzIiksIGFiZXIKZGFzIExvZXNjaGVuIHZvbiB1bmxpZWJzYW1lbiBBcnRpa2VsbiBlcmlubmVydCBtaWNoIGFuIGRpZSBBYmtsZW1tdmVyc3VjaGUKZGVyICp7c2V4LHRhc3RlbGVzc30qLUdydXBwZW4gKCJTbyduIFNjaHdlaW5rcmFtIHdvbGxlbiB3aXIgbmljaHQuIikgb2RlciBkaWUKSGFzc3Bvc3RpbmcgaW4gZGVuIEZhbmdydXBwZW4gKCJZb3UgYXJlIGFsbCBtb3JvbnMsIGdldCBhIGxpZmUuIikuCgpJY2ggZGVua2UsIGRpZSBMZXNlciBkZXIgTVBBIHNpbmQgc2NobGF1IGdlbnVnIHVtIHNlbGJzdCBlbnRzY2hlaWRlbiB6dQprb2VubmVuLCBvYiBlaW4gQXJ0aWtlbCBlaW5mYWNoIG51ciBnZXNjaG1hY2tsb3Mgb2RlciByZWFsICd2ZXJoZXR6ZW5kJyBpc3QuClVuZCB3ZW5uIGRlciBBdXRvciAoYSkgc2VsYnN0IHNhZ3QgJ2RpZXMgaXN0IGdlc2NobWFja2xvcycgKHVuZCBkYW1pdApleHBsaXppdAp2b24gZWluZXIgTWVpbnVuZ3NtYWNoZSBhYnNpZWh0KSB1bmQgKGIpIGVpbmUgTW9lZ2xpY2hrZWl0IHp1bSAiR2ViZSAncScgZWluCndlbm4gRHUgZGFzIG5pY2h0IG1hZ3N0IiBnaWJ0IC0gd28gaXN0IGRhcyBQcm9ibGVtPyBXZXIgc293YXMgbmljaHQgbWFnLApicmF1Y2h0IGVzIGRhbm4gamEgbmljaHQgenUgbGVzZW4uCgpBbmRlcnMgbGllZ3QgZGVyIEZhbGwgbmF0dWVybGljaCBiZWkgZXJuc3QgZ2VtZWludGVuIEhldHphcnRpa2VsbiwgYWJlcgpzZWxic3QKZGFubiBpc3QgZGVyIGlkUiByZXN1bHRpZXJlbmRlIEZsYW1ld2FyIEtvbXBlbnNhdGlvbiBnZW51ZyAtIGRpZSBIZXR6YXV0b3JlbgptZXJrZW4gZGFubiwgZGFzcyBzaWUgbmljaHQgbnVyIGJlaSAnZGVuZW4gZGEgb2Jlbicgc29uZGVybiBhbGxnZW1laW4KYXVmIFdpZGVyc3BydWNoIHN0b3NzZW4gKCJ3ZWhyaGFmdGUgRGVtb2tyYXRpZSIgd3VyZGUgZGFzCmltIFBvbGl0XkheSF5IXkheSFNvemlhbGt1bmRldW50ZXJyaWNodCBpbW1lciBnZW5hbm50IDotKS4KIC0tIE1hdGVlc2UsIGhpZXIgZXMgbWl0IFZvbHRhaXJlIGhhbHRlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgd2llZGVyIHdhcyBMdXNpdGdlcyAoR3V5YnJ1c2gsIDI2LiBPa3QgMTk5NCwgMDg6MzE6MzUpOgoKSW0gUGFyYWRpZXMuCkFkYW0gZnJhZ3QgZGVuIGxpZWJlbiBHb3R0OidEdSwgR290dCwgd2FydW0gaGFzdCBkdSBkZW5uIEV2YSBzbwp3dW5kZXJ3dW5kZXJzY2hvZW4gZ2VtYWNodD8KYW50d29ydGV0IEdvdHQ6IkdhbnogZWluZmFjaCwgZGFtaXQgc2llIGRpciBnZWZhZWxsdCEiCmZyYWd0IEFkYW06IlVuZCB3YXJ1bSBoYXN0IGR1IHNpZSBkYW5uIHNvIHNhdWRvb2YgZ2VtYWNodD8iCnNhZ3QgR290dDoiR2FueiBlaW5mYWNoLiBEYW1pdCBEVSBJSFIgZ2VmYWVsbHN0ISIKCkljaCBob29mZSBpY2ggaGFiZSBkaWUgZXJyZWd0ZW4gR2VtdWV0ZXIgZGFtaXQgbmljaHQgd2VpdGVyIHZlcmdyYWV6dCwgaWNoCmdhbHViIGRlbiBrb2VubmVuIGJlaWRlIEdlc2NobGVjaHRlciBsdXN0aWcgZmluZGVuLi4uLi4uOikKCkd1eWJydXNoIGxhY2h0IHVlYmVyIGFsbGVzLCBoYXVwdHNhY2hlIGVzIGlzdCBsdXN0aWcgb2RlciBTQVVET09GIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVlIFdpdHplPyAoR3V5YnJ1c2gsIDI2LiBPa3QgMTk5NCwgMDg6MzY6MDkpOgoKSWNoIGJpbiBrZWluIFJhc3Npc3QsIGFiZXIgbWFuY2htYWwgZnJhdWVuZmVpbmRsaWNoIDopCkFiZXIgaWNoIGthbm4gYXVjaCB1ZWJlciBXaXR6ZSwgZGllIHVlYmVyIG1laW5lIFJhc3NlIGdlbWFjaHQgd2VyZGVuIGxhY2hlbjoKQWxzbyBQaXJhdGVud2l0emUgaW4gZGllIFdpdHpydWJyaWshISEKCkd1eWJydXNoLCBhbmdlaGVuZGVyIFBpcmF0IFs4Xl1YCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6ZW5zaWVydCAoU3VubnksIDI2LiBPa3QgMTk5NCwgMDk6MDA6MjIpOgpkYSBpY2gga3VlcnpsaWNoIGVpbmVuIGJyaWVmIGVyaGllbHQgLSBkZXNzZW4gdmVyZmFzc2VyIGljaCBudXIgc293ZWl0CmJla2FubnRnZWJlbiBtb2VjaHRlOiBhbmZhbmdzYnVjaHN0YWJlICBCICB1bmQgZW5kZXQgYXVmICBlbGRpbgpiZXp1ZWdsaWNoIG1laW5lcyB0dWVya2Vud2l0emVzCmRlbiBpY2ggcGVyc29lbmxpY2ggbmljaHQgbnVyIGV4dHJlbSB1bnJhc3NlbmRpc2tyaW1pbmllcmVuZGZhbmQsIHNvbmRlcm4KZGVzc2VuIGluaGFsdCBkdXJjaCAiaGludGVyZ3J1ZW5kaWdlIGF1ZmtsYWVydW5nIGRlciBkdC4gaWRpb3RpZSIgKCB6aXRhdApkZXMgdmVyZmFzc2VycykgbS5FLiBiZXNvbmRlcnMgYmVzdGljaHQsIHNlaGUgaWNoIG1pY2ggdmVyYW5sYXNzdCBkZW4gYnJpZWYKZm9sZ2VuZGVybWFzc2VuIHVtenVzY2hyZWliZW46CgpoYWVzY2hlbiBsaWVndCBpbiBzZWluZXIgaGFlbmdlbWF0dGUgdW5kIGxhZXNzdCBzaWNoIGRpZSBzb25uZSBhdWYnbgpiYXVjaCBzY2hlaW5lbi4Ka29tbXQgZW50ZSBxdWFjayB2b3JiZWlnZXdhdHNjaGVsdCB1bmQgZnJhZ3Q6CiJ3byBnZWh0J3MgJ24gaGllciBuYWNoIGFsZGk/IgpkYXJhdWYgaG9wcGFsbGEoc28gbmVubiBpY2ggbWFsIGRlbiBoYXNlbiwgdWVicmlnZW5zIHNvIGVpbmVyIG1pdApzY2hsYXBwb2hyZW4pCiJ6dSBhbGRpISEhISIKcXVhY2sgd2F0c2NoZWx0IHZvbiBkYW5uZW4gdW5kIG11cm1lbHQ6CiJzbyAnbiBtaXN0IHNjaG9uIHp1IGFsZGkiCgpzbywgaWNoIGhvZmZlIGRhc3MgamV0enQgbmljaHQgaXJnZW5kd2VsY2hlIHRpZXJzY2h1ZXR6ZXIgcnVtbm9lcmdlbG4KdW5kIHdlaXRlciBob2ZmZSBpY2ggZGFzcyBkZXIgd2l0eiBpbiB6dWt1bmZ0IHNvIG9kZXIgc28gYWVobmxpY2gKd2VpdGVyZXJ6YWVobHQKd2lyZCwgZGFtaXQgamVnbGljaGUgYXVzZ3Jlbnp1bmcgdm9uIGF1c2xhZW5kZXJuIHouYi4gdHVlcmtpc2Noc3RhbW1pZ2VuCm1lbnNjaGVuIHZlcm1pZWRlbiB3aXJkCgogICAgU1VOTlkgbWl0IGVpbmVtIGxlaWNodGVuIGdyaW5zZW4gaW0gZ2VzaWNodAoKcHM6ZGFzcyBkZXIgYXJ0aWtlbCBuaWNodCBnYW56IGVybnN0IGdlbWVpbnQgaXN0LCB3YXIgZGlyIHNpY2hlciBrbGFyLAogICBhbnNvbnN0ZW4gaGllciBrbGFyIHVuZCBkZXV0bGljaCAgICBMZWljaHRlIElyb25pZSBsYWcgaW4gZGVyIGFic2ljaHQgZGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmZhc3NlcnMhISEhISEhISEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NoIGVpbiB3aXR6IChTdW5ueSwgMjYuIE9rdCAxOTk0LCAwOToxNDowNCk6CiAgLi4uLi4uLi5laW5mYWNoIG51ciBlaW4gd2l0ei4uLi4uLi4uLiAgZ2FyYW50aWVydCB1bnZlcmZhZW5nbGljaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZCBvaG5lIHBvbGl0aXNjaGUgaGludGVyZ3J1ZW5kZQphbHNvOgplaW4gbWFubiBnZWh0IGluJ25lIGtvbmRpdG9yZWkgdW5kIG1vZWNodGUgZWluIHNjaG9rb2xhZGVuYXV0by4KZGllIGVyemFlaGxlbiBpaG0gZGFzcyBzaWUgZGllIHNlbGJzdCBoZXJzdGVsbGVuIHVuZCBwcmFlc2VudGllcmVuIGlobSBzdG9segplaW4gZXhlbXBsYXIuIGRlciBtYW5uLWVpbiB0eXBpc2NoZXIgYmV3b2huZXIgdW5zZXJlciB1ZWJlcmZsdXNzZ2VzZWxsc2NoYWZ0LQpoYXQgZHJhbiBhdXN6dXNldHplbiwgZGFzcyBkaWUgdHVlcmVuIG5pY2h0IG1hbCBhdWZnZWhlbi4gZGllIHZlcmthZXVmZXJpbgp2ZXJzcHJpY2h0IGlobSBkYXJhdWZoaW4gc28gZWlucyBmdWVyIGRlbiBuYWVjaHN0ZW4gdGFnLgpkYSBzaWVodCBkZXIgdHlwLCBkYXNzIHNpY2ggbmljaCBtYWwgZGllIHJlYWRlciBkcmVoZW4gdW5kIHNvIGdlaHQgZGFzIHRhZwpmdWVyIHRhZyAoc3BvcnRsZW5rcmFkLCBiZWxldWNodGV0ZXMgaGFuZHNjaHVoZmFjaCBldGMuKS4gaXJnZW5kd2FubiBpc3QgZXIKZW5kbGljaCB6dWZyaWVkZW4uIGRpZSB2ZXJrYWV1ZmVyaW4gc2Nob24gZmFzdCBhbSBlbmRlIGlocmVyIG5lcnZsaWNoZW4KYmVhbnNwcnVjaGJhcmtlaXQ6CiJzb2xsIGljaCBlcyBhbHMgZ2VzY2hlbmsgdmVycGFja2VuPyIKYW50d29ydDoibm9lIG5vZSBpY2ggZXNzIGVzIGdsZWljaCBoaWVyIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGlyYXRlbndpdHogMSAoR3V5YnJ1c2gsIDI2LiBPa3QgMTk5NCwgMDk6NTQ6MTcpOgoKc2FndCBlaW4gUGlyYXQgenVtIGFuZGVyZW4gOiJLb2VubmVuIHdpciB1bnMgbWFsIHVudGVyIHp3ZWkgQXVnZW4KdW50ZXJoYWx0ZW4/IgoKR3V5YnJ1c2gsIGhhdCBub2NoIGJlaWRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogemVuc2llcnQgKEFzbW9kaXMsIDI2LiBPa3QgMTk5NCwgMTI6NTY6MTIpOgooQmV6dWc6IEFydGlrZWwgdm9uIFN1bm55LCBNaXQsIDI2LiBPa3QgMTk5NCwgMDk6MDA6MjIpCldpZT8gRGVyIHNvbGwgcmFzc2lzdGlzY2ggc2VpbiwgZGVyIFdpdHo/CkRlciBUdWVya2Ugc3RlbGx0IHNpY2ggZG9jaCBhbHMgZGVyIFNjaGxhdWVyZSByYXVzLCB3aWVzbyBpc3QgZGVyIFdpdHogZGFubgpyYXNzaXN0aXNjaD8KCiAgICAgICAgICAgICAgQ2lhbywgQXNtb2Rpcyh2ZXJ3aXJydCBkcmVpbnNjaGF1ZW5kKQoKUC5TLjogRGllIGRldXRzY2hlIElkaW90aWUgaXN0IHdlbHRiZWthbm50IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYSwgSGEgKFNjaGxvbnosIDI2LiBPa3QgMTk5NCwgMTY6MjA6MTcpOgoiTWFtbWksIE1hbW1pLCBpY2ggYmluIGpldHp0IDE2LiBEYXJmIGljaCBqZXR6dCBlaW5lbiBCSCBhbnppZWhlbiA/ICIKIk5laW4sIEthcmwtSGVpbnogISIKClNjaGxvbnoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYSwgSGEgKEVuZ3l3dWNrLCAyNi4gT2t0IDE5OTQsIDE2OjIyOjUyKToKKEJlenVnOiBBcnRpa2VsIHZvbiBTY2hsb256LCBNaXQsIDI2LiBPa3QgMTk5NCwgMTY6MjA6MTcpCipQUlVVVVVVVVVVVVVVU1QqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgbm9jaG1hbCBIYSwgSGEuLi4gKEFuZ3VzLCAyNi4gT2t0IDE5OTQsIDE2OjQ4OjIxKToKIk1hbW1pLCBNYW1taSwgd2FydW0gbGFldWZ0IGRlciBQYXBwYSBpbW1lciBaaWNrLVphY2s/IgoiU2VpIHJ1aGlnIHVuZCBsYWQgbmFjaC4uLiIKCiJQYXBhYWFhYS4uLiBtdXNzIGljaCB3aXJrbGljaCBtaXQgbmFjaCBBbWVyaWthPyIKIkphLiIKIlBhcGFhYWFhLi4uIGljaCB3aWxsIGFiZXIgbmljaHQgbmFjaCBBbWVyaWthISIKIlNlaSBzdGlsbCB1bmQgc2Nod2ltbSB3ZWl0ZXIhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdW5kIG5vY2ggZWluZXIgICAuLi4uIChTY2hsb256LCAyNi4gT2t0IDE5OTQsIDE2OjUzOjIyKToKCktvbW10IGVpbiBNYW5uIHp1bSBQc3ljaGF0ZXIuCiJIcnIgRG9rdG9yLCBpY2ggZnVlaGxlIG1pY2ggaW1tZXIgc28gdWViZXJnYW5nZW4uIFdhcyBzb2xsIGljaCB0dW4/IgoiRGVyIG5hZWNoc3RlIGJpdHRlIgoKU2NobG9uegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHNjaGxhZyEgKEtyZXRlaywgMjYuIE9rdCAxOTk0LCAxNzoyMDoxMSk6CiJQYXBwaSwgd2FzIGlzdCBkZW5uIGVpbiBUcmFuc3Zlc3RpdD8iCiJLZWluZSBBaG51bmcsIGFiZXIgZnJhZyBkb2NoIE1hbW1pLCBkZXIgd2Vpc3MgZGFzISIKCihXYXIgZGFzIGpldHp0IHNleGlzdGlzY2ggb2RlciBtaW5kZXJoZWl0ZW5mZWluZGxpY2g/KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClByb2YgdmVyc3RlaHQgQmFobmhvZiAoTm9zdHJhZGFtdXMsIDI2LiBPa3QgMTk5NCwgMTc6MzQ6MDIpOgpBdXMgZWluZW0gR2FzdHZvcnRyYWcgZWluZXMgYmVydWVobXRlbiBQcm9mcyBpbiBkZXIgUHJvdmluejoKCi4uLmhpZXIgaGFiZW4gc2ljaCBhdWNoIHNjaG9uIGVpbmlnZSBtaXQgZGVyIFByb2JsZW1hdGlrIGJlc2NoYWVmdGlndCwKd2llIHp1bSBCZWlzcGllbC4uLgpvZWhoaGhoaCwgb2VoaGhoaGhoaCwgb2VlaGhoaG1tbW1tLApuYSBkZXIgSGVyciBkZXIgbWljaCB2b20gQmFobmhvZiBhYmdlaG9sdCBoYXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwYXJhZG94IChTY2hsb256LCAyNi4gT2t0IDE5OTQsIDE4OjQ2OjUwKToKCldhcyBpc3QgUGFyYWRveCA/CgoqIHdlbm4gZWluIEdsdWVoYmlybmVuZmFicmlrYW50IGRpZSBGc3N1bmcgdmVybGllcnQuCgp3YXMgaXN0IG5vY2ggcGFyYWRveCA/IExhc3N0IGV1Y2ggbWFsIHdhcyBlaW5mYWxsZW4gIQoKU2NobG9uegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHBhcmFkb3ggKEhhcmRpbCwgMjYuIE9rdCAxOTk0LCAxOTowODoxNyk6CihCZXp1ZzogQXJ0aWtlbCB2b24gU2NobG9ueiwgTWl0LCAyNi4gT2t0IDE5OTQsIDE4OjQ2OjUwKQoKUGFyYWRveCBpc3QsIHdlbm4gaW4gZGVyIFdpdHplcnVicmlrIFdpdHplIHN0ZWhlbi4KCldpZSB3YWVycywgV2l0emUgdW5kIFNjaG1hcnJuIHp1c2FtbWVuenVsZWdlbiA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcnp0IChEdXJpYW4sIDI2LiBPa3QgMTk5NCwgMTk6NDM6NDIpOgpXbyB3aXIgc2Nob24gbWFsIGJlaW0gVGhlbWEgc2luZCAuLi4KCiJIZXJyIERva3RvciwgbmllbWFuZCBuaW1tdCBtaWNoIGVybnN0ISIKIk51biBzdGVsbGVuIFNpZSBzaWNoIG1hbCBuaWNodCBzbyBhbiEhIgoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpbmRvd3MgKENhbXBpbm8sIDI2LiBPa3QgMTk5NCwgMjA6MDA6MjgpOgpJY2ggaG9mZmUga2VpbmVyIGZ1ZWhsdCBzaWNoIHZlcmxldHp0IDopCld1c3N0ZSBpaHIgZGFzICJ3aW5kb3dzIiBhdXMgZGVtIGluZGlhbmlzY2hlbiBzdGFtbXQgPwpJbmRpYW5lciwgb2RlciBXaW5kb3dzLU51dHplciwgZGllIGxlaWNodCBlaW5nZXNjaG5hcHB0IHNpbmQgZHJ1ZWNrZW4KYml0dGUgZGllIFRhc3RlIHEuCiwKLAosCiwKLAosCiwKLAosCiwKLAosCiwKLAosCiwKLAosCiwKLApXaW5kb3dzIGJlZGV1dGV0IGltIGluZGlhbmlzY2hlbiAiV2Vpc3NlciBtYW4gZGVyIGF1ZiBFaWVydWhyIHN0YXJydCIKCkR1cmNoIGRpZSBub2V0aWdnZXdvcmRlbmVuIEtvbW1lbnRhcmUsIGxlaWRldCBuYXR1ZXJsaWNoIGRpZSBRdWFsaXRhZXQKZGVzIFdpdHplcyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2VoZXJ0b2QgKEdyaW1tYm9ybiwgMjYuIE9rdCAxOTk0LCAyMTo0NDo1Nyk6CgpTbywgaGV1dGUgZW5kbGljaCBtYWwgd2llZGVyIGdlc3RvcmJlbi4gV2FyIGphIGxhbmdlIGhlci4gVW5kIGljaCBkYWNodGUsCmRhbWl0IGplZGVyIHdhcyBkYXZvbiBoYXQsIHNjaHJlaWJlIGljaCBtYWwsIHdpZXMgZGF6dSBrYW0uCgpFaW4ga3VlaGxlciwgdmVycmVnbmV0ZXIgQWJlbmQsIGVpbiBsZWljaHRlcyBsYWcgcGZlaWZ0IGR1cmNocyBNRyBhbHMgaWNoCm1pY2ggYXVmbWFjaGUgenUgZWluZW0gU3BhemllcmdhbmcgaW0gR29ibGlubGFnZXIuIERlciBBbmZ1ZWhyZXIgd2lsbCBtaXIgZGVuClJpbmcgbmljaHQgZnJlaXdpbGxpZyBnZWJlbi4gTnVuIGphLCBhbHMgaHVtYW5pc3Rpc2NoIGdlYmlsZGV0ZXIgWndlcmcgKHVuZApiaXN0IER1IG5pY2h0IHdpbGxpZyBzbyBicmF1Y2ggaWNoIEdld2FsdCkga2FubnRlIGljaCBkYSBlaW5lbiBBdXN3ZWcsIGRlciBudXIKZGVuIG5hZWhlcmVuIEFuZ2Vob2VyaWdlbiBkZXMgVmVyc3RvcmJlbmVuIG5pY2h0IGdlZmllbC4gTmFjaCBlaW4gcGFhciB3ZWl0ZXJuClJ1bmRnYWVuZ2VuIGJlc2NobG9zcyBpY2gsIHp1c2FtbWVuIG1pdCBlaW5lbSBGcmV1bmQgZGVuIEhleGVyIHp1IGJlc3VjaGVuLgpXaWUgc2ljaHMgZ2Vob2VydCwgbWl0IGFsbGVuIEVocmVuLCBlciBzb2xsdGUgZXMgamEgbmljaHQgdWViZXJsZWJlbi4gSWNoIGJpbgp3aWUgaW1tZXIga2x1ZWdlciBhbHMgZGllIFBvbGl6ZWkgZXJsYXVidCB1bmQgbWl0IFZvcnNpY2h0IDExMCwgRmx1Y2h0cmljaHR1bmcKKE9oIFNlaGVyZmx1Y2ggdW5kIC1zZWdlbiEpIHN1ZWRlbiB1bmQgZmV1ZXJiYWxsIGdvYmxpbiAxLCBkYXMgc3BhcnQgS3JhZnQuCk51biBzcGllbHRlIHNpY2ggZm9sZ2VuZGVzIGFiOiBJY2ggZ2VoZSByZWluLCBzYWdlIGhvZWZsaWNoIG1laW5lIFNwcnVlY2hsZWluCmF1ZiAoIHNjaHdlcnQgd2VnLCBmYiwgc2Nod2VydCkgdW5kIHdlcmRlIGVpbmZhY2ggdm9yIGRpZSBUdWVyIGdlc2V0enQgenUgendlaQpuaWNodCBhZ3Jlc3NpdmVuIEhvYmdvYmxpbnMuIE51biB3YXIgZWluIEZldWVyYmFsbCBpbSBsYWcgaGFlbmdlbiBnZWJsaWViZW4KdW5kIHN0YXR0IGVpbmVzIGZyZXVuZGxpY2hlbiAiQXVmIHdlbiB3aWxsc3QgRHUgRGVpbmVuIEZldWVyYmFsbCB3ZXJmZW4/IiB0cmFmCmRpZXNlciBkZW4gdW5zY2h1bGRpZyBoZXJ1bXN0ZWhlbmRlbiBHb2JsaW4uIERpZXNlciBuYWhtIGVzIHVlYmVsIGF1ZiB1bmQKdmVyamFndGUgbWljaCwgbGVpZGVyIGluIFJpY2h0dW5nIGRlcyBBbmZ1ZWhyZXJzIChSLkkuUC4pLCB3byBpY2ggc2VpbmUKQW5nZWhvZXJpZ2VuIGluIGlocmVyIFRyYXVlciBzdG9lcnRlLiBEYXNzIHVudGVyIGRlbiBVbXN0YWVuZGVuIGRhcyAiZW5kZSIgenUKc3BhZXQga2FtLCB3YXIgbnVyIGVpbmUgbG9naXNjaGUgRm9sZ2UuLi4KCldlaXRlcmhpbiBoYXR0ZSBpY2ggYmVhYnNpY2h0aWd0LCBhbnp1cmVnZW4sIChmdWVyIFNlaGVyKSBkaWVzZXMgIkRpZSBBbmdzdAppc3Qgc3RhZXJrZXIgYWxzIER1Li4uIiB6dSBhZW5kZXJuIGluICJEZWluZSBQbGFudW5nZW4gc2VoZW4gYW4gZGllc2VyIFN0ZWxsZQplaW5lbiBzdHJhdGVnaXNjaGVuIFJ1ZWNrenVnIHZvciIsIGVpbiBWb3JzY2hsYWcsIGRlciBqZXR6dCBpbiBkaWVzZXIgUnVicmlrCmJlc3NlciBhdWZnZWhvYmVuIGlzdC4uLgoKVm9uIGRlbiBUb3RlbiBhdWZlcnN0YW5kZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBzeWNoby4uLiAoTWVwaGlzdG8sIDI3LiBPa3QgMTk5NCwgMTA6MDY6NDkpOgoKUGF0aWVudDogSGVyciBEb2t0b3IsIGljaCBoYWJlIGVpbiBncm9zc2VzIFByb2JsZW0uIEljaCBrYW5uIGluIGRpZSBadWt1bmZ0CnNlaGVuIHVuZCBoYWJlIGJlZHJ1ZWNrZW5kZSBWaXNpb25lbi4uLi4uLgpQc3ljaGlhdGVyOiBXYW5uIGhhdCBkZW5uIGRhcyBhbmdlZmFuZ2VuPwpQYXRpZW50OiBOYWVjaHN0ZW4gRG9ubmVyc3RhZy4uLi4uLgoKZGFtaXQgd2llZGVyIG1hbCBlaW4gV2l0eiBpbiBkZXIgUnVicmlrIGhpZXIgc3RlaHQgKHVuZCBuaWNodCBibG9zcwpaZW5zdXJkZWJhdHRlbik6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0eiAoQ2F0d2VhemxlLCAyNy4gT2t0IDE5OTQsIDEyOjI5OjUzKToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBMaSwgMjcuIE9rdCAxOTk0LCAxMTo1MToyOV06CkFsc28sIGljaCBoYWJlIENhbXBpbm9zIFdpdHplIG5pY2h0IGdlbGVzZW4sIGthbm4gbWljaCBkZXNoYWxiIGF1Y2ggbmljaHQgYW4KZGVyIERpc2t1c3Npb24gYmV0ZWlsaWdlbi4gQWJlciBoaWVyIGVpbmVuIG5pY2h0IGJlc29uZGVycyBndXRlciwgYWJlcgpnYXJhbnRpZXJ0IGhhcm1sb3NlciBXaXR6IChvZGVyKToKCiJXaWUgaXN0IGVpZ2VudGxpY2ggZGFzIEJldHJpZWJza2xpbWEgaW4gRXVyZXIgRmlybWEgZnVlciBFeHBsb3Npb25zc3RvZmZlPyIKIkFldXNzZXJzdCBnZXNwYW5udCwgYmVpIGRlciBsZXR6dGVuIEV4cGxvc2lvbiBoYWJlbiBzaWUgdW5zIGRpZSBaZWl0LCBkaWUKd2lyIGluIGRlciBMdWZ0IHdhcmVuLCB2b20gTG9obiBhYmdlem9nZW4uIgoKTGkgKGlzdCBiaXMgamV0enQgbm9jaCB1bSBlaW5lIEV4cGxvc2lvbiBpbSBMYWJvciBoZXJ1bWdla29tbWVuKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldvcmFuIG1hbiBNdXN0ZXJsb2VzdW5nZW4gZXJrZW5udC4uLi4gKEFudGhlYSwgMjcuIE9rdCAxOTk0LCAxMzo0MTo1NCk6CkdhbnogZWluZmFjaDogTWFuIGVya2VubnQgZGllIHZlcnNjaGllZGVuZW4gTXVzdGVybG9lc3VuZ2VuIGRhcmFuLCB3aWUgc2ljaApkaWUgU3BpZWxlciB2ZXJoYWx0ZW4uIERlc2hhbGIgbGllYmUgaWNoIGF1Y2ggZGVuIFNOT09QIHNvIHNlaHIsIHdlbm4gZWluClNwaWVsZXIgYW4gZGVyIEF0bGFudGlzLVF1ZXN0IGFyYmVpdGV0LiBCaXMgamV0enQgZXJrZW5uZSBpY2ggbmFjaApzcGFldGVzdGVudHMgNSBtaW4sIG9iIGRlciBTcGllbGVyIG5hY2ggZWluZXIgZGVyIGRyZWkgbWlyIGJla2FubnRlbgpMb2VzdW5nZW4gYXJiZWl0ZXQsIGplIG5hY2hkZW0sIHdhcyBlciBhbnNjaGF1dCB1bmQgd2FzIG5pY2h0Li4uLiB1bmQKbWFuY2htYWwKa29tbXQgbWFuIGhhbHQgbnVyIHdlaXRlciwgd2VubiBtYW4gc2ljaCBuaWNodCBudXIgZGFzIEVuZHJlc3VsdGF0CmFuc2llaHQuIE5vY2ggYmVzc2VyIGlzdCBlcywgd2VubiBzaWUgZGFubiBkZW5rZW4sIGV0d2FzIHdhZXJlIGRhLCBhYmVyCmVzIGlzdCBuaWNodCBkYSwgd2VpbCBlcyBzaWNoIGJld2VndC4uLi4gU28gei5CLjoKQlVHUyB2b24gZGF4IGF1cyAvZC9pbnNlbG4vYW50aGVhL3Jvb20vd2llc2UzICggNC4gT2t0IDE5OTQpOgpJcmdlbmR3byBoaWVyIGlzIGRvY2ggZGFzIHdhbmRlcmhhdXMuLi5kYXMgaXMgYWJlciBuaWNoIGRhLi4udmVyc2Nod2luZGV0IGRhcwphYiB1bmQgenUgbWFsPz8/CgpKQSwgZXMgdmVyc2Nod2luZGV0IGFiIHVuZCB6dSBtYWwuLi4uIGRhcyBrYW5uIG1hbiBuYXR1ZXJsaWNoIG51ciB3aXNzZW4sCndlbm4gbWFuIGVzIGVpbm1hbCBnZXNlaGVuIGhhdCwgZGFubiBzdGVsbHQgbWFuIGZlc3QsIGRhc3MgZXMgdmVyc2Nod2luZGV0LgpNYW4gbXVzcyBuYXR1ZXJsaWNoIGF1ZiBkZW4gQmlsZHNjaGlybSBzY2hhdWVuLCBuaWNodCBudXIgaW4gZGllCk11c3RlcmxvZXN1bmcgYXVmIGRlbSBUaXNjaC4uLi4uLgoKICAgICAgICBBbnRoZWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyZXVkJ3NjaGVyIFZlcnNwcmVjaGVyLi4uLiAoQW5ndXMsIDI3LiBPa3QgMTk5NCwgMTU6MDU6MzIpOgpCZXppZWh0IHNpY2ggYXVmIEFydGlrZWwgMTEgaW4gJ2V0aWtldHRlJy4uLi4KV3Vzc3RlIGphIGdhciBuaWNodCwgZGFzcyBlcyBhdWNoIEZSQVVORS1mZWluZGxpY2hlIFdpdHplIGdpYnQuLi4Kb2RlciBrZW5uc3QgRHUgd2VsY2hlLCBKb2Y/IDstKSkKRGFzIGZpZWxlIGVpbmRldXRpZyBpbiBkYXMgR2ViaWV0ICdHb2V0dGVybGFlc3RlcnVuZycKCkFuZ3VzICgqZ3JpbnNlbmQqKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZTogTG9lc2NodW5nIChMb2NvLCAyNy4gT2t0IDE5OTQsIDE1OjMwOjM1KToKKEJlenVnOiBBcnRpa2VsIHZvbiBGbGludG5haWwsIERvbiwgMjcuIE9rdCAxOTk0LCAxMjozOTo0MykKRGllIG1wYSBoYXQga2VpbmVuIENoZWZyZWRha3RldXIgaW4gZGllc2VtIFNpbm5lLgpWZXJhbnR3b3J0bGljaCBpbSBTaW5uZSBkZXMgUHJlc3NlcmVjaHRlcyBpc3QgZWluemlnIHVuZCBhbGxlaW5lIGRlciBBdXRvcgpkZXMgZWluemVsbmVuIEFydGlrZWxzLgpJbnNvZmVybiBpc3QgZGllIG1wYSBpbSByZWNodGxpY2hlbiBTaW5uZSB3aWUgYXVjaCBpbiBkZXIgRnVua3Rpb25zd2Vpc2UKa2VpbmUgWmVpdHVuZywgc29uZGVybiBlaGVyIGVpbiBncm9zc2VzIHNjaHdhcnplcyBCcmV0dCwgd28gYXVzcmVpY2hlbmQKU2NobWllcnBhcGllciB1bmQgU3RpZnRlIGZ1ZXIgamVkZW4gYmVyZWl0bGllZ2VuLi4uCgpTb3dlaXQgbWVpbmUgQW50d29ydCBkYXp1LAogICAgTG9jbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaG1hbCBGTFcgOikgKEFuZ3VzLCAyNy4gT2t0IDE5OTQsIDIxOjEzOjAzKToKQXVmIFF1ZW5naXN0dSdzIFd1bnNjaCBoaW4sIGRpZSBicnVlaG10ZW4gbGV0enRlbiBXb3J0ZQphdXMgdW5zZXJlciBDYW1wYWduZSA7KQoKTmFjaCBlaW5lbSBIRUZUSUdFTiBLYW1wZjoKIFBMMTogIkljaCBnZWggbm9jaG1hbCBLcmFldXRlciBzdWNoZW4uLi4uIgoKVW5kIG5vY2ggZWluZXI6Ck1hc3RlcjogIjFXMTAgZnVlciduIFRhZyBiaXR0ZS4uLiIKUEwxIDogRGFyZiBJQ0g/ISE/CiAgICAgICh3dWVyZmVsLi4uKSgqZ3JpbnMqKQpQTDEgKHRyaXVtcGZpZXJlbmQpOiBOZSAxISEgOikpClBhcnR5OiBZbyEhIERhcyBnaWJ0IHdpZWRlciBTcGFzcyEhCiAgIChVbmQgc2llIGJla2FtZW4sIHdhcyBzaWUgd29sbHRlbi4uLiB1bmQgbWVoci4uLikKCkFuZ3VzIC0gdGhlIFNMQVlFUiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFydGlrZWwgd2l0eiAoUGhhcmFvLCAyNy4gT2t0IDE5OTQsIDIxOjIyOjI3KToKCkZyYXUgTWVpZXIgZW1wb2VydCBhbSBUZWxlZm9uOgoiRXMgaXN0IG51biBzY2hvbiB2aWVyIFdvY2hlbiBoZXIsIGRhc3MgaWNoIHNpZSBiZXN0ZWxsdCBoYWJlLCBTaWUKbW9lZ2VuIG1laW5lIEtsaW5nZWwgcmVwYXJpZXJlbiEhISIKRGVyIEVsZWt0cmlrZXI6CiJJY2ggd2FyIGphIGF1Y2ggc2Nob24gMyBtYWwgZGEsIGhhdCBhYmVyIG5pZSBqZW1hbmQgYXVmZ2VtYWNodCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NobWVociBQYXJhZG94ZXMhIDopIChCdW5nbGUsIDI4LiBPa3QgMTk5NCwgMTE6MjU6NTMpOgooQmV6dWcgYXVmIFNjaGxvbno6cGFyYWRveCB1bmQgR3JpbW1ib3JuOlNlaGVydG9kICkKCkdyaW1tYm9ybjogRWluIGt1ZWhsZXIsdmVycmVnbmV0ZXIgQWJlbmQ/IEltIE1vcmdlbkdyYXVlbj8KREFTIGlzdCBwYXJhZG94ICEhISA7KSkpCgpUc2NodWVzc2ksQnVuZ2xlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcGFwaS13aXR6ZSAoU3RhaGxkb3JuLCAyOC4gT2t0IDE5OTQsIDEyOjA5OjE0KToKd2VubiB3aXIgc2Nob24gYmVpIGRlbiBQYXBpLVdpdHplbiBzaW5kLCBmYWVsbHQgbWlyIGRhIGF1Y2ggd2FzIGRhenUgZWluLApvYndvaGwgZGllIHdpdHplIHp1Z2VnZWJlbmVybWFzc2VuIG5pY2h0IGRpZSBhbGVyZnJpc2NoZXN0ZW4gc2luZC4KKGhvZmZlbnRsaWNoIHNhZ3QgamV0enQga2VpbmVyLCBpY2ggc2VpIGtpbmRlci0gb2RlciBzZW5pb3JlbmZlaW5kbGljaCkKYWxzbwoKCiJwYXBwaSEgSWNoIG1hZyBuaWNodCBtZWhyIGltIEtyZWlzIGdlaGVuICEiCiJSdWhlLCBvZGVyIGljaCBuYWdlbCBkaXIgZGVuIGFuZGVyZW4gZnVzcyBhdWNoIG5vY2ggYW4gISIKCgoicGFwcGksIGRhcmYgaWNoIG1pdCBvbWEgc3BpZWxlbiA/IgoiTmVpbiwgZGVyIFNhcmcgYmxlaWJ0IHp1ICEiCgoKInBhcHBpLCBpY2ggbWFnIG9wYSBuaWNodCAhIgoiSWNoIGhhYmUgZ2VzYWd0OiBHZWdlc3NlbiB3aXJkLCB3YXMgYXVmIGRlbiBUaXNjaCBrb21tdCAhIgoKCiJwYXBwaSwgaGFiZW4gWml0cm9uZW4gQmVpbmUgPyIKIk5laW4sIG1laW4ganVuZ2UuIE5hdHVlcmxpY2ggbmljaHQuIgoiVXBzLCBkYW5uIGhhYiBpY2ggZWJlbiBkZW4ga2FuYXJpZW52b2dlbCBpbiBkZW4gdGVlIGdlZHJ1ZWNrdC4iCgoKQWxzbyBpY2ggZmluZGUgZGllIFdpdHplIGx1c3RpZy4gV2VubiBzaWNoIGlyZ2VuZHdlciBhdWYgZGVuIFNjaGxpcHMgZ2V0cmV0ZW4KZnVlaGx0LCBkYW5uIHR1dCBtaXIgZGFzIGxlaWQsIHdlaWwgZXMgbmljaHQgYmVhYnNpY2h0aWd0IHdhci4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBSEwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGltIEtpbm8gKExpLCAyOC4gT2t0IDE5OTQsIDE0OjMwOjQ0KToKS29tbXQgZWluIE1hbm4gYW4gZGllIEtpbm9rYXNzZSB1bmQgd2lsbCBzZWluZSBLcm9ldGUgbWl0CiAgICAgICAgICAgaW5zIEtpbm8gbmVobWVuLgogICAgICAgICAgICJEYXMgZ2VodCBhYmVyIG5pY2h0Iiwgc2FndCBkaWUgRGFtZSBhbiBkZXIgS2Fzc2UuCiAgICAgICAgICAgIldpZXNvLCBkYXMgaXN0IG1laW4gSGF1c3RpZXIiCiAgICAgICAgICAgIk5laW4sIGRpZXNlcyBla2VsaGFmdGUgVmllaCBibGVpYnQgZHJhdXNlbi4iCiAgICAgICAgICAgR2VodCBkZXIgTWFubiB1bSBkaWUgRWNrZSwgc3RlY2t0IGRpZSBLcm9ldGUgaW4gZGllCiAgICAgICAgICAgSG9zZW50YXNjaGUsIGJlemFobHQgdW5kIGdlaHQgcmVpbi4KICAgICAgICAgICBJbSBLaW5vIHNpdHp0IGVpbiBMaWViZXNwYWFyLCB3ZWxjaGVzIHNlaHIgbWl0IHNpY2gKICAgICAgICAgICBzZWxic3QgYmVzY2hhZWZ0aWd0IHdhci4gQXVmIGVpbm1hbCBzYWd0IHNpZToKICAgICAgICAgICAiRHUgU2NoYXR6LCBzY2hhdSBtYWwsIGRlciBOYWNoYmFyIGhvbHQgc2VpbiBEaW5nIHJhdXMhISAiCiAgICAgICAgICAgRXI6ICJEYXMgbWFjaHQgZG9jaCBuaWNodHMsIGRhcyBtYWNoZW4gd2lyIGRvY2ggYXVjaCAhIgogICAgICAgICAgIFNpZTogIiBKYSBzY2hvbiwgYWJlciBkZW0gc2VpbmVyIGZyaXNzdCBDaGlwcyAhPyE/IT8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1bGljaCBpbSBLaW5vIChIYXJkaWwsIDI4LiBPa3QgMTk5NCwgMTY6MTY6MzQpOgooQmV6dWc6IEFydGlrZWwgdm9uIExpLCBGcmUsIDI4LiBPa3QgMTk5NCwgMTQ6MzA6NDQpCgpDYXQgPz8/IEtyeXdhbGRhID8/PwoKR3JpbnNlbmQ6CgoJCUhhcmRpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY2hpbmVzaXNjaCAoUm9jaHVzLCAyOC4gT2t0IDE5OTQsIDE3OjAzOjU0KToKQXVzIGRlLnRhbGsuam9rZXM6CkluIFNhcmFqZXZvIGlzdCBlaW4gY2hpbmVzaXNjaGVyIEtlbGxuZXIgZXJzY2hvc3NlbiB3b3JkZW4uCgpFciBoYXR0ZSBlaW4gR2xhcyBmYWxsZW4gZ2VsYXNzZW4gdW5kIGdlc2FndDogIlNlYmVuIGJsaW5nZW4gR2x1ZWNrLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxGVyAoQW50aGVhLCAyOC4gT2t0IDE5OTQsIDIyOjU0OjI2KToKW0FsbGdlbWVpbjpJcm9ubG9yZF0gd2lldmllbCBrcmFmdCBicmF1Y2h0IG1hbiB1bSBlaW5lbiBnb2JsaW4gbnVyIG1pdApbQWxsZ2VtZWluOklyb25sb3JkXSBsYW5nc2Nod2VydCB1bmQgb2huZSBmZXVlcmJhZWxsZSB0b2V0ZW4genUga29lbm5lbiBpY2gKW0FsbGdlbWVpbjpJcm9ubG9yZF0gaGFiIGpldHp0IDE2CltBbGxnZW1laW46SXJvbmxvcmRdIHVuZCAxNiBhdXNkYXVlcgpbQWxsZ2VtZWluOkFzbW9kaXNdIEtyYWZ0ID8KW0FsbGdlbWVpbjpJcm9ubG9yZF0gbmFqYSBzbyByaWNodGlnIHZvbGxlIHd1Y2h0IHp1c2NobGFnZW4gaGFsdApjYSAxMCBtaW4gc3BhZXRlcjoKW1RvZDpdIEVpbiBIb2Jnb2JsaW4gaGF0IGdlcmFkZSBJcm9ubG9yZCB1bWdlYnJhY2h0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUFJPVEVTVCAoSXJvbmxvcmQsIDI5LiBPa3QgMTk5NCwgMDA6MDI6MDUpOgphbHNvIG5laW4sIGRhcyBpc3QgamEgZ2VtZWluLCB3aWUga2FubnN0IGR1IGJsb3NzCmR1IGtlbm5zdCBkb2NoIGRpZSBadXNhbW1lbmhhZW5nZSBnYXJuaWNodCAuLi4gaWNoIHdvbGx0ZSBlaWdlbnRsaWNoCm51ciBtYWwgZGVuIG5ldWVuIHRvZCBiZXd1bmRlcm4Kc28gamV0enQgd2Vpc3N0IER1J3MKCQlJcm9ubG9yZCwgbGllYnQgaG9iZ29ibGlucyB1ZWJlciBhbGxlcwpQUzogZGllIHNpbmQgc28ga251ZGRlbGlnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUFJPVEVTVCAoQ2FyYWRocmFzLCAyOS4gT2t0IDE5OTQsIDA1OjEzOjA2KToKKEJlenVnOiBBcnRpa2VsIHZvbiBJcm9ubG9yZCwgU2FtLCAyOS4gT2t0IDE5OTQsIDAwOjAyOjA1KQogICAgICAgICAgICAgICAgIEt1Y2t1Y2sKClN0aW1tdCwgZGVyIG5ldWUgVG9kIGlzdCBodWVic2NoIDopIFVuZCBpY2ggaGFiIGRpZSBhbmRlcmVuIGdlbmVydnQsIGluZGVtCmljaCB3YWVocmVuZCBkZXIgU2VxdWVueiBpbW1lciBFbmRlIGdlbWFjaHQgaGFiZSwgd2VpbCBpY2ggZ2VtZXJrdCBoYWJlLApkYXNzIG1hbiBhdWNoIGFuZGVyZSBTZXF1ZW56ZW4gc3RhcnRlbiBrYW5uLCB3ZW5uIG1hbiBzaWNoIHNvIG5ldSBlaW5sb2dndC4KVGphLCBzbyBrYW0gaWNoIGRhbm4gMjAgbWFsIGF1ZiBkZW0gVG9kZXNrYW5hbC4gKmtpY2hlciogT2RlciBzbyBhZWhubGljaC4KQXJtZSBTY2hydW1wZmkgOikgdW5kIHdlciBub2NoIGFsbGVzIGRhIHdhci4uLgoKRWluZSBzdXBlciBTZXF1ZW56IHdhciBhdWNoIGRhYmVpIHNvIG1pdCBIYXVzLCBkYXMgdm9uIGlubmVuIGdyb2Vzc2VyIGlzdCBhbHMKdm9uIGF1c3Nlbi4uLiBoYWIgaWNoIGxlaWRlciBkdXJjaCBlbmRlICd1ZWJlcmJsYWV0dGVydCcsIGljaCBoYWV0dGUgZXMgc28KZ2VybmUgd2VpdGVyZ2VrdWNrdC4uLiAqU0VVRloqIE5FSU4sIElDSCBXSUxMIE5JQ0hUIE5PQ0hNQUwgSkVUWlQgU1RFUkJFTiA6LSkKVWViZXIgNiBNaWxsaW9uZW4gRVAgZnVlciBlaW5lbiBUb2QgcmVpY2hlbiBtYWwsIHdvaGwgbmV1ZXIgTXVkcmVrb3JkIDopIE1laW4KYWx0ZXIgd2FyIDQuMSBNaWxsaW9uZW4gb2RlciBzby4KCiAgICAgICAgICB0c2NodWVzc2llIDopICAgICAgICAgQ2FyYWRocmFzIGRlciB0b3RlIFByb3BoZXQgKGV3aWcgc3RlcmJlbmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlIHBldGl0IG1vcnQgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2h0dW5nIEhhaWRlcmZlaW5kbGljaGVyIHdpdHogKFNjaHJ1bXBmaSwgMjkuIE9rdCAxOTk0LCAwNzoxNTozOSk6CkpvZXJnIEhhaWRlciBrb21tdCBtaXQgZWluZW0gdm9lbGxpZyB6ZXJmZXR6dGVtIGdlc2ljaHQgaW5zIGtyYW5rZW5oYXVzIHVuZApzYWd0IDoiSGVyciBEb2t0b3IsIEhlcnIgRG9rdG9yIGVpbmUgYnJpZWZib21iZSBoYXQgbWljaCBlcndpc2NodCEiIHNhZ3QgZGVyCkFyenQ6IiBhbHNvIEhlcnIgSGFpZGVyIGljaCB3ZWlzcyBuaWNodCByZWNodCwgZWluZSBicmllZmJvbWJlPyBFaW5lCmJyaWVmYm9tYmUgemVyZmV0enQgZG9jaCBkaWUgSGFlbmRlIHVuZCBuaWNodCBkYXMgZ2VzaWNodCEiIHNhZ3QgSGFpZGVyCjoiTmljaHQgYmVpbSBhdWZtYWNoZW4sIGJlaW0genVrbGViZW4hIgogICBTY2hydW1wZmkgZGllIEhhaWRlcmZlaW5kbGljaGUKUC5TIGljaCBtb2VjaHRlIGFiZXIgbm9jaCwgdW0gamVnbGljaGUgbWlzc3ZlcnN0YWVuZG5pc3NlIGF1c3p1c2NobGllc3NlbiwKYW5tZXJrZW47IGljaCBoYWIgd2FzIGdlZ2VuIGZyYXVlbmZlaW5kbGljaGUgdW5kIGF1c2xhZW5kZXJJbm5lbmZlaW5kbGljaGUKd2l0emUhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmU6IFJlOiBMb2VzY2h1bmcgKEhhdGUsIDI5LiBPa3QgMTk5NCwgMTk6MTM6MTMpOgooQmV6dWc6IEFydGlrZWwgdm9uIExvY28sIERvbiwgMjcuIE9rdCAxOTk0LCAxNTozMDozNSkKRHUgdmVyZ2lzc3QgZWlucywgTG9jby4KVmVyYW50d29ydGxpY2ggaXN0IHUuYS4gZGllIFVuaXZlcnNpdGFldCwgZmFsbHMgZXMgenUgb2ZmaXppZWxsZW4KUHJvYmxlbWVuIGtvbW10LiBNT21lbnRhbiBsaWVndCBkaWUgQXVmc2ljaHRzcGZsaWNodCBiZWkgZGVuCkJldHJlaWJlcm4gZGVzIE1VRHMuIEluIHVuc2VyZW0gRmFsbCBKb2YgdW5kIEJvaW5nLgpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdWVuIHVudGVyIHNpY2guLi4gKEFudGhlYSwgMjkuIE9rdCAxOTk0LCAyMjo0Nzo1OSk6Ci1Nb3JnZW5zLCBtaXR0YWdzLCBhYmVuZHMgdW5kIG5hY2h0cywgbWVpbiBNYW5uIHdpbGwgaW1tZXIgZGFzIGdsZWljaGUhCgotU2NocmVja2xpY2gsIGlzdCBkYXMgbmljaHQgd2lya2xpY2ggZWluIGJpc3NjaGVuIHp1IHZpZWw/CgotVGphLCB1bmQgZXIgc2FndCwgZXIga29lbm5lIG5pY2h0cyBkYWdlZ2VuIHR1biEgRXIgaXNzdCBudW4gbWFsIHNvIGdlcm4KU3BpZWdlbGVpZXIhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZXN1Y2hzZnJldWRlbi4uLiAoQW50aGVhLCAyOS4gT2t0IDE5OTQsIDIzOjM3OjI5KToKRGllIFRhbnRlIGZyYWd0IGlocmVuIE5lZmZlbjogTk51biwgTWF4aSwgYnJpbmdzdCBEdSBtaWNoIG5vY2ggenVtIEJ1cz8KRGFyYXVmIE1hZXhjaGVuOiBkRGFzIGthbm4gaWNoIGxlaWRlciBuaWNodCwgVGFudGUsIGRlbm4gZ2xlaWNoLCB3ZW5uIER1CmdlZ2FuZ2VuIGJpc3QsIGVzc2VuIHdpci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJheWVybi1wcmV1c3Nlbi13aXR6IChUaG9yaW4sIDMxLiBPa3QgMTk5NCwgMDk6NTY6MjcpOgpUYXRvcnQgOiBCZXJsaW5lciBGdW5rdHVybQpad2VpIEJheWVybiBpbiB3ZWl0ZW4gTG9kZW5tYWVudGVsbiB1bmQgZWluIFByZXVzc2Ugc3RlaWdlbiBhdWYgZGVuIEZ1bmt0dXJtLgpPYmVuIGFuZ2Vrb21tZW4gc3RyZWNrdCBkZXIgZWluZSBCYXllciBzZWluZSBIYW5kIGF1cywgZ3JlaWZ0IGVpbiBwYWFyIG1hbCB6dQp1bmQgbWVpbnQgOiAnR2VsbCwgZGllIEx1ZnQgaXN0IGhldXRlIHVyLWdyaWZmaWcsIHJpY2h0aWcgc2Nob2VuLiBEYXMgbXVzcyBtYW4KYXVzbnV0emVuLiIKU3ByaWNodHMgdW5kIHNwcmluZ3QuIERlciBQcmV1c3NlIGJla29tbXQgU3RpbGF1Z2VuLCBkZW5uIGRlciBCYXllciBmbGllZ3QKbG9ja2VyIGR1cmNoIGRpZSBMdWZ0LCBtYWNodCBlaW4gcGFhciBTYWx0aSB1bmQgbGFuZGV0IGxvY2tlciB3aWVkZXIgYXVmIGRlcgpQbGF0dGZvcm0uCkRhcmF1ZiBkZXIgendlaXRlIEJheWVyOiAiQ29vbCwgbXVzcyBpY2ggYXVjaCBtYWwgcG9yYmllcmVuLiIgU3ByaW5ndCwKZ2xlaXRldCBkdXJjaCBkaWUgTHVmdCwgZHJlaHQgZWluIHBhYXIgUm9sbGVuIHVuZCBMb29waW5ncyB1bmQgbGFuZGV0IHdpZWRlci4KQmVpZGUgZ3Vja2VuIGRhcmF1ZiBkZW4gUHJldXNzZW4gYXVmbXVudGVybmQgYW4uIERlciBkZW5rdCBzaWNoIDogYWxzbyB3YXMKQmF5ZXJuIGtvZW5uZW4sIGtvZW5uZW4gd2lyIGRvY2ggc2Nob24gbGFuZ2UuIEVyIG5pbW10IEFubGF1Ziwgc3ByaW5ndCAtIHVuZAprbGF0c2NodCB1bnRlbiBhdWYgZGVtIEJvZGVuIGF1Zi4KRGFyYXVmIG1laW50IGRlciBlaW5lIEJheWVyIHp1bSBhbmRlcmVuIDogIkR1LCBmdWVyIHp3ZWkgRW5nZWwgc2luZCB3aXIgYWJlcgp6aWVtbGljaCBnZW1laW4uLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYWlkZXIgMiAoWWFudHJvLCAzMS4gT2t0IDE5OTQsIDE2OjI5OjQ0KToKSGFsbG8sIGlociBhbGxlLi4uCgppY2ggZXJpbm5lcmUgbWljaCBkYSBhbiBlaW5lIEthbXBhZ25lIGRlciBMaW5rZW4gaW4gQVUsIGRpZSBzaWNoIGZyZWkgYXVmCmVpbmVuIFNjaG9rb3JpZWdlbG5hbWVuc3dlY2hzZWwgYmV6b2c6CgpEaWUgVmVyc2lvbiBpbiBkZW4gWmVpdHVuZ2VuIHdhciAgSEFJREVSIGlzdCBqZXR6dCBXSVggOykKCkV1ZXIgWWFudHJvOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1cyBkZW0gTGllYmVzbGViZW4gZGVyIEdsdWVoYmlybmVuIChTY2hsb256LCAzMS4gT2t0IDE5OTQsIDE2OjQ3OjI4KToKClRyZWZmZW4gc2ljaCAyIG1hZW5ubGljaGUgR2x1ZWhiaXJuZW4uClNhZ3QgZGllIGVpbmUgOiAiSGFsbG8gLCB3byBpc3QgZGVubiBkZWluZSBGZXVuZGluID8iCkRyYXVmIGZhZW5ndCBkaWUgYW5kZXJlIGZ1cmNodGJhciBhbiB6dSB3ZWluZW4gOiIuLi5kdXJjaGdlYnJhbm50Li4uISIKClNjaGxvbnoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW0gUkwgKENhdHdlYXpsZSwgMzEuIE9rdCAxOTk0LCAxNjo1NTo1OSk6CkpvZiBrb21tdCBhbi4KRHUgc2Fnc3Q6IEpvZiwgc29yZyBkb2NoIG1hbCBkYWZ1ZXIsIGRhcyBkaWUgVHVlciBuaWNodCBtZWhyIHNvIHF1aWV0c2NodC4KSm9mIHNhZ3Q6IFdpZSBkZW5uPwpEdSBzYWdzdDogSGFzdCBkdSBrZWluIFdELTQwPwpSb2NodXMgc2FndDogTmltbSBTaWxpY29uc3ByYXkuCkpvZiBzYWd0OiBIYW1td2VyIG5pY2h0LgpKb2YgZ2VodC4KSm9mIGtvbW10IGFuLgpKb2YgenVlY2t0IGVpbmUgU3ByYXlkb3NlLgpKb2Ygc3BydWVodCBkaWUgVHVlcmFuZ2VsbiBlaW4uCkR1IHNhZ3N0OiBPaCwgSGFidCBpaHIgZG9jaCBTaWxpY29uc3ByYXk/CkpvZiBzYWd0OiBOb2UsIGRhcyBpc3QgS29udGFrdHNwcmF5LgpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uClJvY2h1cyBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KSm9mIHNhZ3Q6IERpZSBUdWVyIGdlaHQgamV0enQgdmllbCBzY2h3ZXJlci4KSm9mIHNhZ3Q6IEhhZXJ0ZXQgZGFzIGF1cz8KRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpSb2NodXMgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkpvZiBzYWd0OiBXYXIgZGFzIGpldHp0IGVpbiBGZWhsZXI/CgpFcmxlYnQgaW4gUkwsCllvdXJzIHRydWx5LAogICAgICAgICAgICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6TmV1bGljaCBpbSBSTCAoS2V0b3MsIDMxLiBPa3QgMTk5NCwgMjA6MDU6MjMpOgpTZWx0ZW4gc28gZ2VsYWNodCA6KQpadW0gR2x1ZWNrIHdhciBkYXMgbmljaHQgaW4gVkwgc29uc3QgZ2luZ2UgZGFzIHdlaXRlcjoKSm9mIHNhZ3Q6IFdhciBkYXMgamV0enQgZWluIEZlaGxlcj8KR2FtZSBkcml2ZXIgc2hvdXRzOiBMUG11ZCBzaHV0dGluZyBkb3duIGltbWVkaWF0ZWx5LgpDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuCgotIEtldG9zIC0gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoIGltIFJMIChCZWxkaW4sIDMxLiBPa3QgMTk5NCwgMjE6MTI6MjMpOgooQmV6dWc6IEFydGlrZWwgdm9uIENhdHdlYXpsZSwgTW9uLCAzMS4gT2t0IDE5OTQsIDE2OjU1OjU5KQpOZWluIEpvZiBkYXMgd2FyIEtFSU4gRmVobGVyLi4uCkltbWVyaGluIGxhc3NlbiBzaWNoIGRpZSBUdWVyYW5nZWxuIGpldHp0IGJlc3RpbW10IHd1bmRlcmJhciBhbiBpcmdlbmR3YXMKZWxla3Ryb25pc2NoZXMgYW5zY2hsaWVzc2VuIDopKSkpLiBWaWVsbGVpY2h0IGVpbmUgdm9uIGRlbiBXb3Jrc3RhdGlvbnM/Pz8gOj4KCkhpbGZsb3Mga2ljaGVybmQuLi4uIEJlbGRpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQSBkYXkgaW4gdGhlIGxpZmUuLi4gKE5leHR0cnksICAxLiBOb3YgMTk5NCwgMTQ6MzQ6MzIpOgpPZGVyIGF1Y2g6IFRlc3RpZXMgaGF2ZSBmZWVsaW5ncywgdG9vLgoKTmV1bGljaCBpbiBkZXIgWndlcmdlbmthcGVsbGU6CihJY2ggYml0dGUgenUgYmVhY2h0ZW4sIGRhc3MgVG9yaW4gTklDSFQgZGVyIEVoZW1hbm4gdm9uIFNpbHZhbmEgaXN0LikKKERlciBzY2hyZWlidCBzaWNoIG1pdCBlaW5lbSBoIG1laHIuLi4gKQpBbHNvOiBLbGFwcGUgdW5kIEFFS1NDSEVOOgoKRHUga3VzY2hlbHN0IERpY2ggYW4gQ2FsYSBhbi4KVG9yaW4gYmV0cml0dCBkaWVzZSBXZWx0LgpMYWR5IENhbGEgc2FndDogaWNoIG11ZXNzdGUgZWlnZW50bGljaCBnbGVpY2ggd2llZGVyIGdlaGVuLi4uIDooClRvcmluIHNhZ3Q6IEhJCkR1IHNhZ3N0OiBPY2ggTm9lIQpEdSBzY2hsaWVzc3QgZGllIEF1Z2VuLCBzY2htaWVnc3QgRGljaCBlbmcgYW4gQ2FsYSB1bmQgZ2lic3QKaWhyIGVpbmVuIHphZXJ0bGljaGVuIHVuZCBsZWlkZW5zY2hhZnRsaWNoZW4gS3Vzcy4KVW0gRGljaCBoZXJ1bSB2ZXJzaW5rdCBkaWUgV2VsdCB1bmQgRHUgZ2xhdWJzdCwgYXVmIFdvbGtlbiB6dSBzY2h3ZWJlbi4KPiBDYWxhIGJyaWNodCBpbiBUcmFlbmVuIGF1cyB1bmQgd2VpbnQgYml0dGVybGljaC4KVG9yaW4gc2FndDogb2hvCkR1IHVtYXJtc3QgQ2FsYSB6YWVydGxpY2ggYmVzY2h1ZXR6ZW5kLgpUb3JpbiBzYWd0OiBvaGEKTmV4dHRyeSBoYWVsdCBUb3JpbiBkaWUgQXVnZW4genUuClRvcmluIHNhZ3Q6IEhFWSEKRHUgc2NobGllc3N0IGRpZSBBdWdlbiwgc2NobWllZ3N0IERpY2ggZW5nIGFuIENhbGEgdW5kIGdpYnN0CmlociBlaW5lbiB6YWVydGxpY2hlbiB1bmQgbGVpZGVuc2NoYWZ0bGljaGVuIEt1c3MuClVtIERpY2ggaGVydW0gdmVyc2lua3QgZGllIFdlbHQgdW5kIER1IGdsYXVic3QsIGF1ZiBXb2xrZW4genUgc2Nod2ViZW4uClRvcmluIHNhZ3Q6IG9obwpUb3JpbiBzYWd0OiBicmF1Y2h0IGlociByaW5nZSA/PwpDYWxhIGt1ZXNzdCBEaWNoIGxpZWJldm9sbCB1bmQgemFydGxpY2guCkR1IHNhZ3N0OiBXaXIgaGFiZW4gc2Nob24uLi4gOy0pClRvcmluIHNhZ3Q6IGljaCBicmF1Y2hlIGdlbGQKVG9yaW4gc2FndDogZGEgaWhyIGphIG5lIGF1c3N0ZXVlciBoYWJ0IGtvZW5udGV0IGlociBtaXIgbmljaHQgd2FzIGFiZ2ViZW4/Ck5leHR0cnkgemVpZ3QgVG9yaW4gc3RvbHogc2VpbmVuIEVoZXJpbmcuClRvcmluIHNhZ3Q6IGljaCBiaW4gZWluIGFybWVyIHNvb28gb2Z0IGdlc3RvcmJlbmVyIEhlbGQKVG9yaW4gc2FndDogaWNoIGthbm5zIHNjaG9uIG5pY2h0IG1laHIgemFlaGxlbiB3aWUgb2Z0IGljaCBnZXN0b3JiZW4gYmluCkR1IHNhZ3N0OiBXaXIgc2luZCBzaWNoZXIgaGFldWZpZ2VyIGdlc3RvcmJlbi4uLiA7LSkKVG9yaW4gc2FndDogZGFzIGJlendlaWZlbGUgaWNoIGFiZXIgc3RhcmsKQ2FsYSBncmluc3QgVG9yaW4gYW4uCkR1IHNhZ3N0OiBTY2hhdXN0IER1IG1hbCBuYWNoLCBDYWxhPwpMYWR5IENhbGEgc2FndDogaWNoIGJpbiBhbGxlaW4gc2Nob24gYXVmIENhbHVtcyBTY2hhdHRlbnBsYXR6IDUgTWFsCkxhZHkgQ2FsYSBzYWd0OiBnZXN0b3JiZW4uLi4gOigKVG9yaW4gc2FndDogc2FnIDUgbWFsIGlzdCBhYmVyIHdlbm5pZwpEdSBzYWdzdDogTWljaCBoYXQgZGllIEZlbHNuYXNlIHZvbiBTaWx2YW5hIHZpZXJtYWwgZXJ3aXNjaHQgKGluIG51ciAyCkR1IHNhZ3N0OiBTdHVuZGVuLi4uClRvcmluIHNhZ3Q6IGljaCBiaW4gOCA5IG9kZXIgbWVociBtYWxzIGdlc3RvcmJlbgpEdSBzYWdzdDogSW5zZ2VzYW1tdCBoYWIgaWNoIHNvIGFuIGRpZSA0MCBUb2RlLi4uClRvcmluIHNhZ3Q6IG5hIGRhbm4ga2FubnN0IGR1IGphIG1pdCBmdWVobGVuIHdpZSBlcyBtaXIgZ2VodApUb3JpbiBzYWd0OiBpY2ggYnJhdWNoZSBudXIgZXR3YXMgZ2VsZCBmdWVyIG5lIHdhZmZlCkxhZHkgQ2FsYSBzYWd0OiBudXIgYXVmIENhbHVtcyBQbGF0eiA1IE1hbC4uLiBzZWluZSBQeXRob24gaGF0IGljaCBhdWNoCkxhZHkgQ2FsYSBzYWd0OiBlaW5pZ2UgTWFsZSBlcml3c2hjdCwgdW5kIGRlciBhY2h0YXJtaWdlIFByaWVzdHplci4uLiBvaCBqZQo6KQpUb3JpbiBzYWd0OiBsZWlkZXIgdmVyc2Nod2luZGV0IG1laW4gemV1ZyBpbW1lciB3ZW5uIGljaCBpcmdlbnR3byBzdGVyYmUKVG9yaW4gc2FndDogd296dSBpc3QgZGFzIHNlcnZpY2UgcGFja2V0PwpEdSBzYWdzdDogTnVyIGR1ZXJmZW4gV0lSIERpciBrYXVtIGhlbGZlbi4uLgpEdSBzYWdzdDogWnVtIFplaXR1bmcgbGVzZW4uLi4KRHUgc2Fnc3Q6IFNjaG9uIG1hbCB1ZWJlcmxlZ3QsIHdhcyB1bnNlcmUgTmFtZW4gYmVkZXV0ZW4/ClRvcmluIHNhZ3Q6IGljaCB0YXVzY2hlIGRhcyB6ZWl0dW5nc2xlc2VnZXJhZXQgZ2VnZW4gNTAwIGdlbGQKRHUgZ3JpbnN0IFRvcmluIGFuLgpUb3JpbiBzYWd0OiBuYWVjaHN0ZXIgdmVyc3VjaCB1bmQgY2FsYT8KRHUgYXJnbHN0IGVpbiB3ZW5pZyB2b3IgRGljaCBoaW4uCkxhZHkgQ2FsYSBzYWd0OiBsYWFhYWFhYWcgOigKVG9yaW4gc2FndDogd2Vubmlnc3RlbnogbmUgd2FmZmUga29lbm50ZXQgaWhyIG1pciBkYWZ1ZXIgZ2ViZW4KTGFkeSBDYWxhIHNhZ3Q6IGR1ZXJmZW4gd2lyIG5pY2h0IDopClRvcmluIHNhZ3Q6IGJpaWlpaXR0dHRlZWVlZQpEdSBzYWdzdDogSWNoIGhhYiBrZWluZS4uLiBVbmQgYXVzc2VyIFNjaHVoZW4gYXVjaCBrZWluZSBSdWVzdHVuZy4uLgpMYWR5IENhbGEgc2FndDogc2NoYXUgZGlyIG51ciBtYWwgZGllIHdlci1MaXN0ZSBhbiwgZGFubiB3ZWlzc3QgZHUsIHdhcnVtIDopClRvcmluIHNhZ3Q6IGtlbm50IGlociBkYW5jZXIgY2FyYWRocmFzIGd1bGR1a2F0PwpUb3JpbiBzYWd0OiB2aXBlcj8KVG9yaW4gc2FndDogZGllIGtlbm5lIGljaCBhbGxlIGF1cyBhbmRlcmVuIG11ZHMKVG9yaW4gc2FndDogYWJlciBkaWUgYW50d29ydGVuIG5pY2h0CkxhZHkgQ2FsYSBzYWd0OiBkYW5jZXIgdW5kIGNhcmEga2VubmUgaWNoLCBndWwgbnVyIHZvbSBOYW1lbiBoZXIKRHUgc2Fnc3Q6IEtsYXIuIERhbmNlciBrZW5uZSBpY2guLi4KVG9yaW4gc2FndDogc29uc3Qgd3VlcmRlIGljaCBtaXIgdm9uIGRlbm5lbiB3YXMgZ2ViZW4gbGFzc2VuClRvcmluIHNhZ3Q6IERhbmNlciBpc3QgY29vbApEdSBzYWdzdDogR3VsIHdhciBhdWNoIGF1ZiBkZXIgUGFydHkuLi4KVG9yaW4gc2FndDogYmVzdGVsbHQgaWhtIG1hbCBuZW4gc2Nob2VuZW4gZ3J1c3MKVG9yaW4gc2FndDogdW5kIGRlbm4gYW5kZXJlbiBhdWNoClRvcmluIHNhZ3Q6IG1pciBob2VyZW4gZGllIG5jaWh0IHp1CkR1IHNhZ3N0OiBEYW5jZXIgd3VlcmRlIGRpciBiZXN0aW1tdCBuaWNodHMgZ2ViZW4uLi4KVG9yaW4gc2FndDogZG9jaCEKVG9yaW4gc2FndDogd2VpbCBpY2ggaW4gbmVtIGFuZGVyZW4gbXVkIHNlaW4gdm9yZ2VzZXR6ZXIgYmluClRvcmluIHNhZ3Q6IGF1c3NlcmRlbSBpc3QgZXIgbWVpbiBmcmV1bmQKTGFkeSBDYWxhIHNhZ3Q6IG5hIHVuZC4uLiBlaW4gYW5kZXJlcyBNdWQgaXN0IGVpbiBhbmRlcmVzIE11ZCB1bmQgaGF0IG5peCBtaXQKTGFkeSBDYWxhIHNhZ3Q6IGRlbSBoaWVyIHp1IHR1bgpUb3JpbiBzYWd0OiBrb2VubnQgaWhyIGlobiBuaWNodCBtYWwgYW5iaWVwZW4gb2RlciBzbyA/CkR1IHNhZ3N0OiBLbGFyLCBhYmVyIGVyIHd1ZXJkZSBkaXIgdHJvdHpkZW0gbmljaHRzIGdlYmVuLi4uClRvcmluIHNhZ3Q6IHdhcyBzZWl0IGlociBudXIgZnVlciB2ZXJrbGVtbXRlIHR5cGVuPwpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uClRvcmluIHNhZ3Q6IGluIGplZGVtIGFuZGVyZW4gbXVkIGhhZXR0ZSBpY2ggd2FzIGJla29tbWVuCkR1IHNhZ3N0OiBEYW5jZXIgaXN0IE1hZ2llciEgRGVyIGRhcmYgbmljaHQhClRvcmluIHNhZ3Q6IGRhIHNpbmQgZGllIG9iZXJ0eXBlbiBuZW4gYmlzY2hlbiBiZXNzZXIgZHJhdWYgYWxzIGlocgpMYWR5IENhbGEgc2FndDogcXVhdHNjaApEdSBzYWdzdDogRnJhZyBuZW4gU3BpZWxlciwgdW5kIGR1IHdpcnN0IHdhaHJzY2hlaW5saWNoIHdhcyBrcmllZ2VuLi4uClRvcmluIHNhZ3Q6IG5hIGRhbm4gaG9sdCBtaXIgbWFsIGRlbm4gbWFndXMgaXRlcnJ1cHR1cyBoZXIKTGFkeSBDYWxhIHNhZ3Q6IFNwaWVsZXJoaWxmZSBpc3QgaWRSIGluIGtlaW5lbSBNdWQgZXJsYXVidApUb3JpbiBzYWd0OiBzcGllbGVyPwpUb3JpbiBzYWd0OiBkaWUgZ2ViZW4gbmllIHdhcwpUb3JpbiBzYWd0OiBzaW5kIGdlaWVyClRvcmluIHNhZ3Q6IHZpZWxsZWljaHQgbmljaHQgZXJsYXVidCBhYmVyIGVzIGdpYnQgaGFsdCBub2NoIGxldXRlIG1pdCBoZXJ6CkR1IHNhZ3N0OiBNaXIgaGFiZW4gZGllIGltbWVyIHdhcyBnZWdlYmVuLCBhbHMgaWNoIG5vY2ggU3BpZWxlciB3YXIuLi4gOy0pCkxhZHkgQ2FsYSBzYWd0OiBkYXMgaGF0IG5peCBtaXQgSGVyeiB6dSB0dW4uLi4KVG9yaW4gc2FndDogamFqYQpMYWR5IENhbGEgc2FndDogYWxzIFdpeiBrYW5uIG1hbiBlaW5lbSBTcGllbGVyIGplZGUgV2FmZmUgYmVzb3JnZW4sIHVuZCBkYXMKTGFkeSBDYWxhIHNhZ3Q6IGlzdCBuaWNodCBzaW5uIGRlcyBNdWRzClRvcmluIHNhZ3Q6IG5hIGRhbm4gc2FndCBoYWx0IGlociBoYWV0dGV0IG1pciB3YXMgZ2V6emV0ZXQKVG9yaW4gc2FndDogbWFuIHNpbmQgZGllIG9iZXJrb250cm9sbGV1cmUgaGllciBhYmVyIGdlc3RvZXJ0ClRvcmluIHNhZ3Q6IHNvd2FzIGhhYmUgaWNoIG5vY2ggbmllIGVybGVidApUb3JpbiB0cml0dCBDYWxhLgpEdSB0cml0dHN0IFRvcmluLgpEdSB0cml0dHN0IFRvcmluLgpUb3JpbiBzcHJpbmd0IERpY2ggYXVmIGVpbm1hbCBhbiB1bmQgd3Vlcmd0IERpY2guClRvcmluIHNhZ3Q6IHRqYQpUb3JpbiBzYWd0OiBsb3NzIHR1dCBtaXIgd2FzIGFuCkR1IHNhZ3N0OiBGaW5nZXIgd2VnIHZvbiBNZWluZXIgRnJhdSEKVG9yaW4gdHJpdHQgQ2FsYS4KRHUgdHJpdHRzdCBUb3Jpbi4KRHUgdHJpdHRzdCBUb3Jpbi4KVG9yaW4gc3ByaW5ndCBhdWYgZWlubWFsIENhbGEgYW4gdW5kIHd1ZXJndCBzaWUuClRvcmluIHNhZ3Q6IG1hY2h0IGRhcyBzcGFzcwpEdSBzcHJpbmdzdCBUb3JpbiBhbiB1bmQgZmFlbmdzdCBhbiwgaWhuIHp1IHd1ZXJnZW4uClRvcmluIHNhZ3Q6IG9oaCBkZXIgZ3Jvc3NlIGhhZWx0CkNhbGEgdGFuZ2llcnQgZGFzIGFsbGVzIHppZW1saWNoIHBlcmlwaGVyLgpDYWxhIHN1Y2h0IGRlbiBuYWVjaHN0ZW4gRmVobGVyLCBkZXIgZGFzIE11ZCB6dW0gQWJzdHVyeiBicmluZ3QuCmhvbWUuLi4KRHUgc2Fnc3Q6IFdpcmQgbGFuZ3NhbSBsYWVzdGlnLi4uCkNhbGEga251ZGRlbHQgRGljaCB1bmQgU2lsdmFuYS4KCk5leHR0cnkgLSBldHdhcyBlcnp1ZXJ0IHVlYmVyIHNvIHZpZWwgKkJFRVAqICh6ZW5zaWVydCkuCgpQUzogRGFzIGhpZXIgc3RlaHQgbWl0IEFCU0lDSFQgaW4gZGVyIFJ1YnJpayBXaXR6ZSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBIGRheSBpbiB0aGUgbGlmZS4uLiAoRGFuY2VyLCAgMS4gTm92IDE5OTQsIDIxOjQ3OjU0KToKKEJlenVnOiBBcnRpa2VsIHZvbiBOZXh0dHJ5LCBEaWUsICAxLiBOb3YgMTk5NCwgMTQ6MzQ6MzIpCkhlaGUuLmljaCBsYWNoIG1pY2ggdG90IDotKQpJY2ggaG9lciBpbW1lciAnVm9yZ2VzZXR6dGVyJy4uJ0ZyZXVuZCcuLi4KRGFzIHdhciBnbGF1YiBpY2ggZGVyIFR5cCwgZGVyIG1pciBhbSBlcnN0ZW4gVGFnIGluIGRpZXNlbSBTRi1NVUQgZGFzIG5vY2gKUHJvZ3JhbW1pZXJlciBnZXN1Y2h0IGhhdCwgZ2VzYWd0IGhhdCAnSGV5LCBoaWVyIHNhZ2VuIERheCB1bmQgaWNoIHdvcyBsYW5nCmdlaHQnLi4uOi0pCkRhcyBzaW5kIG5hdHVlcmxpY2ggdmllbCBiZXNzZXJlICdPYmVydHlwZW4nIGFscyBoaWVyIGltIE1HICpraWNoZXIqCkljaCBnbGF1YmUgd2lyIHNpbmQgZWluZmFjaCBuaWNodCBjb29sIGdlbnVnIDspCgpEYW5jZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJvbGxlbnNwaWVsIChaYXJkb3osICAyLiBOb3YgMTk5NCwgMDg6NDk6MDkpOgpOZXVsaWNoIGluIGVpbmVyIGJvZXNlbiBSb2xlbWFzdGVyLUdydXBwZToKV2FybG9jazogV29sbHRlbiB3aXIgZGVuIEdlZmFuZ2VuZW4gbmljaHQgZXJzdCBiZWZyYWdlbiB1bmQgZGFubiB0b2V0ZW4/Ck5lY3JvbWFuY2VyOiBIbW1tbS4uLi5kaWVzZSBUYWt0aWsgaXN0IG1pciBhYnNvbHV0IG5ldSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggd2FzIHp1IEJsb25kaW5lbndpdHplbi4uLi4gKEd1eWJydXNoLCAgMi4gTm92IDE5OTQsIDA5OjEyOjUwKToKWml0YXQ6CkRhZ21hciBCZXJnaG9mZiBpbiAiQm91bGV2YXJkIEJpbyIgenVtIFRoZW1hIEJsb25kaW5lbiBiZXZvcnp1Z3Q6CgoiR290dHNjaGFsayBpc3QgamEgZmFzdCBkaWUgYmxvbmRlc3RlIEZlcm5zZWhmcmF1IHZvbiB1bnMgYWxsZW4hIgoKR3V5YnJ1c2ggKGlzdCBhdWNoIGJsb25kLCBudXIgbmljaHQgc28gc2Nob2VuIGJsb25kIHdpZSBHb3R0c2NoYWxrIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgbm9jaCB3YXMuLi4gKEd1eWJydXNoLCAgMi4gTm92IDE5OTQsIDA5OjE0OjE0KToKS2FybCBMYWdlcmZlbGQgYXVmIEJpb3MgRnJhZ2UsIG9iIGVyIHRhdHNhZWNobGljaCBrZWluZSBCbG9uZGluZW4gbWFnOgoKIkRhcyBpc3QgUXVhdHNjaCwgZGVubiBkcmVpIFZpZXJ0ZWwgYWxsZXIgQmxvbmRpbmVuIHNpbmQgamEgZ2FyIGtlaW5lISIKCkd1eWJydXNoLCBJc3QgZWNodCwgbmljaHQgZ2VmYWVyYnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIHdhcyBibG9uZGVzLi4uIChLZWxseSwgIDIuIE5vdiAxOTk0LCAxMDoxNTo0MSk6CldhcnVtIGhhYmVuIG1hbmNoZSBGcmF1ZW4gYmxhdWUgRmxlY2tlbiBhbSBCYXVjaG5hYmVsPwpXZWlsIGVzIGF1Y2ggYmxvbmRlIE1hZW5uZXIgZ2lidCEKCiAgU292aWVsIHp1IGRpZXNlciBEaXNrdXNzaW9uLi4uCiAgICBLZWxseQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGluZyAoUm9jaHVzLCAgMi4gTm92IDE5OTQsIDExOjAxOjMwKToKS3VlcnpsaWNoIGdlc2VoZW46CjMgcGFja2V0cyB0cmFuc21pdHRlZCwgNTIgcGFja2V0cyByZWNlaXZlZCwgLTE2MzMlIHBhY2tldCBsb3NzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEEgZGF5IGluIHRoZSBsaWZlLi4uIChRdWlsbGlhbiwgIDIuIE5vdiAxOTk0LCAxMzo1NDowMSk6CihCZXp1ZzogQXJ0aWtlbCB2b24gRGFuY2VyLCBEaWUsICAxLiBOb3YgMTk5NCwgMjE6NDc6NTQpCkhpLAoKRGFzIG1pdCBkZW4gR29ldHRlcm4gaW0gRmluYWxGcm9udGllci1NdWQga2FubiBpY2ggbmljaHQKc28gc3RlaGVuIGxhc3Nlbi4KTnVyIGRhbWl0IGtlaW4gZmFsc2NoZXIgRWluZHJ1Y2sgZW50c3RlaHQsIHNvbGNoZSBHZWJhcmVuIGdlZ2VudWViZXIKInVudGVyZ2ViZW5lbiBHb2V0dGVybiAoIFFzICkgc2luZCBuaWNodCBhbiBkZXIgVGFnZXNvcmRudW5nLApzb25kZXJuIGtvbW1lbiBlaGVyIGdhcm5pY2h0IHZvci4gSWNoIGthbm4gbWlyIGF1Y2ggbmljaHQgdm9yc3RlbGxlbiwKZGFzcyBkaWVzZSBBdXNzYWdlIGF1cyBkZW0gTXVuZCB2b24gRGF4IGdla29tbWVuIGlzdC4KClF1aWxsaWFuIGRlciBBa2FhcmRpYW5lciAoYXVjaCBRIGltIEZGLU11ZCkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBIGRheSBpbiB0aGUgbGlmZSAoR3VsZHVrYXQsICAyLiBOb3YgMTk5NCwgMTQ6MTE6NTkpOgooQmV6dWc6IFF1aWxsaWFuKQoKR3VsRHVrYXQgbmlja3QgenVzdGltbWVuZC4KCkdEIChhdWNoIFEgaW4gRkYpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQSBkYXkgaW4gdGhlIGxpZmUgKERhbmNlciwgIDIuIE5vdiAxOTk0LCAxNjo1NjoxMyk6CihCZXp1ZzogQXJ0aWtlbCB2b24gR3VsZHVrYXQsIE1pdCwgIDIuIE5vdiAxOTk0LCAxNDoxMTo1OSkKSWNoIGhhYmUgamEgbmllIGdlc2FndCwgZGFzcyBEYXggZGFzIGdlc2FndCBoYXQuIEJlcnQgdW5kIERheCB1bmQKd2Fzd2Vpc3NpY2huaWNodHdlciB2ZXJoYWx0ZW4gc2ljaCBqYSBhdWNoIG5vcm1hbCB1bmQgc2luZCBzZWhyIG5ldHQuIE1laW4KQXJ0aWtlbCBiZXpvZyBzaWNoIGF1ZiBUb3Jpbi4gRWluIGhvZWhlcnN0dWZpZ2VyIE1hZ2llciBpc3Qgd2VkZXIgVm9yZ2VzZXR6dGVyCm5vY2ggVm9ybXVuZCBlaW5lcyBuaWVkZXJzdHVmaWdlcmVuCk1hZ2llcnMsIGlzdCB3ZWRlciB0b2xsZXIsIG5vY2ggZ3JvZXNzZXIsIG5vY2ggbWFnaXNjaGVyLi4uLiBlciBoYXQgZWluZmFjaApudXIgbWVociBTY2hyZWlicmVjaHRlIGluIGRlbiBWZXJ6ZWljaG5pc3Nlbiwgd2VpbCBlcyBlaW4gQ2hhb3MgZ2ViZW4gd3VlcmRlLAp3ZW5uIGFsbGUgdWViZXJhbGwgZHVyY2hlaW5hbmRlciBzY2hyZWliZW4gZHVlcmZ0ZW4uClVuZCB3ZW5uIG1pciBzbyBlaW4gS25vZWRlbCBpbiBkZW4gZXJzdGVuIE1pbnV0ZW4gc28gZWluZW4gU3BydWNoIGRydWVja3QgdW5kCm1laW50LCBlciBrb2VubmUgbWlyIGF1Y2ggbm9jaCB2b3JzY2hyZWliZW4sIFdBUyBpY2ggenUgcHJvZ3JhbW1pZXJlbiBoYWV0dGUsCmRhbm4ga2FubiBpY2ggaWhuIG51ciBhdXNsYWNoZW4uIFVuZCB3ZW5uIGVyIG1laW50LCB3ZWlsIGVyIGluIGVpbmVtIGFuZGVyZW4KTVVEIGVpbmVuIGhvZWhlcmVuCkxldmVsIGhhdCBhbHMgaWNoLCBiZWthZW1lIGVyIGhpZXIgaXJnZW5kd2VsY2hlIEV4dHJhd3VlcnN0ZSwgZnVlciBkaWUgYW5kZXJlClNwaWVsZXIgc3R1bmRlbmxhbmcgc2Nod2l0emVuIHVuZCBhY2tlcm4gZHVlcmZlbiwgZGFubiBsYWNoIGljaCBub2NoIG1laHIuCldlbm4gZXIgYWJlciBhdWNoIG5vY2ggbWVpbnQsIG1pY2ggbWl0IGRlbiBXb3J0ZW4gJ0hleSwga29tbSBoZXIsIGljaCBoYWJlCmVpbmUgRnJhZ2UnIGhpZXIgYmVncnVlc3NlbiBrYW5uIHVuZCBlcm5zdGhhZnQgZWluZSBBbnR3b3J0IHZlcmxhbmd0LCBkYW5uCnZlcmdlaHQgbWlyIGRhcyBMYWNoZW4uCgpXZW5ucyBob2NoIGtvbW10LCBEQVJGIGVyIG1laW4gQWJlbmRlc3NlbiBzZWluLgoKRGFuY2VyLiBodW5ncmlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJvbGxlbnNwaWVsIChMaSwgIDIuIE5vdiAxOTk0LCAxNzoyODowOCk6CihCZXp1ZzogQXJ0aWtlbCB2b24gWmFyZG96LCBNaXQsICAyLiBOb3YgMTk5NCwgMDg6NDk6MDkpClNQSVRaRSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBIGRheSBpbiB0aGUgbGlmZSAoTWF0ZWVzZSwgIDIuIE5vdiAxOTk0LCAxOTo1Njo0OSk6CkRlciBmcmV1bmRsaWNoZSAod2VubiBhdWNoIGV0d2FzIG1hZ2VyZSkgSGVyciBuZWJlbiBtaXIgbW9lY2h0ZSBkYXp1CmF1Y2ggbm9jaCBldHdhcyBzYWdlbiBbcmVpY2h0IGRpZSBUYXN0YXR1ciAncnVlYmVyXS4uLgoKICAgICAgICAgICBUSEVSRSBJUyBKVVNUIE1FIC0tIFRIRSBGSU5BTCBGUk9OVElFUiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpYmVsIFYyLjAgKFJvY2h1cywgIDIuIE5vdiAxOTk0LCAyMToyMzoyMik6CkF1cyBkZS50YWxrLmpva2VzOgojIyBFcnN0ZWxsZXI6IHN5c29wJWljeC5zZXZlbi5zdWIub3JnQFVVQ1AuWkVSCgoKICAgKkpldHp0IG5ldSBhdWYgMiBDRCdzOiAiRGllIEJpYmVsIDIuMCBzcyIqCgoKCk5hY2hkZW0gdHJldWUgQW5oYWVuZ2VyIGpldHp0IHNlaXQgendlaXRhdXNlbmQgSmFocmVuIGF1ZiBlaW4gVXBkYXRlCndhcnRlbiwKCmdpYnQgZXMgZW5kbGljaCBlaW5lIG5ldWUgVmVyc2lvbiBkZXIgQmliZWwuIERpZSBFcndlaXRlcnVuZ2VuIHNpbmQKZGVyYXJ0aWcKCnVtZmFuZ3JlaWNoLCBkYXNzIHdpciBlaW5lbiAiU3BydW5nIHZvciBkZW0gS29tbWEiIGZ1ZXIgbWVociBhbHMgbnVyCgpnZXJlY2h0ZmVydGlndCBoYWx0ZW4uCgoKCkRpZSBuZXVlbiBGZWF0dXJlcyBpbSBlaW56ZWxuZW46CgoKCi1BbnphaGwgZGVyIEdlYm90ZSB2b24gMTAgZXJ3ZWl0ZXJ0IGF1ZiAxNSBpbnRlcm5lIHVuZCA1IHZvbSBCZW51dHplcgoKIGRlZmluaWVyYmFyZS4KCgoKLTMuVGVpbDogRGFzICJCcmFuZG5ldWUgVGVzdGFtZW50Ii4KCiBNaXQgRXJ3ZWl0ZXJ1bmcgIkRhcyBpcnJlIGNvb2xlIFRlc3RhbWVudCBmdWVyIEtpZHMhIiBtaXQgQXV0b2dyYW1tLQoKIGFkcmVzc2VuIHZvbiB6LkIuIEdvdHQsIEplc3VzLCBNYXJpYS4KCgoKLVN0YXR0IGVpbmVyIGpldHp0IGJpcyB6dSB6ZWhuIEdvdHRoZWl0ZW4gbW9lZ2xpY2ghCgogQXVjaCB3ZWlibGljaGUgR29ldHRlciEKCiAiR290dCBDb25zdHJ1Y3Rpb24gS2l0IiB3aXJkIG1pdGdlbGllZmVydCEKCgoKLUF1c2Z1ZWhsaWNoZSBCZWJpbGRlcnVuZyBmdWVyIEVpbnN0ZWlnZXIuCgogRHVyY2ggZGVuIEh5cGVydGV4dCBmdWVocnQgIkhlcm9keSwgZGllIGhhcHB5IEhvc3RpZSIKCgoKLUF1ZiB2aWVsZmFjaGVuIFd1bnNjaCBNb3NlcyBqZXR6dCBrb21wbGV0dCBlbnRmZXJudC4KCgoKLVNleCB2b3IgZGVyIEVoZTogSmV0enQgZXJsYXVidCEKCgoKLUhvbW9zZXh1YWxpdGFldDogSmV0enQgZXJsYXVidCEKCgoKLURyb2dlbjogSmV0enQgRWluc3RlbGx1bmdzdm9ycmF1c3NldHp1bmcgZnVlciBQcmllc3RlciEKCgoKLUFuYWx2ZXJrZWhyOiBTdGF0dCBUb2RzdWVuZGUgamV0enQgZWluZmFjaGVzIFZlcmdlaGVuICg1IERNIFN0cmFmZSkhCgoKCi1Xb2xsdXN0IHVuZCBWb2VsbGVyZWkgdm9sbCBpbXBsZW1lbnRpZXJ0IQoKCgotSW4gZGVyIFNoYXJlcndhcmV2ZXJzaW9uIGVyaW5uZXJ0IGVpbiBzYWJiZXJuZGVyIFBhcHN0IGFucyBCZXphaGxlbi4KCiBJbiBkZXIgVm9sbHZlcnNpb24ga2VpbiBQYXBzdCBtZWhyIQoKIEluIGRlciBEZWx1eGUtVmVyc2lvbiB3aXJkIGRlciBCZWRpZW5lciBzZWxic3QgenVtIFBhcHN0IQoKCgotQmluYWVyZXIgSGltbWVsL0hvZWxsZSBTd2l0Y2ggamV0enQgZXJ3ZWl0ZXJ0IHVtCgogICAgIC0gRGlzbmV5bGFuZAoKICAgICAtIE1hbGxvcmNhCgogICAgIC0gQmlsbHN0ZWR0CgogICAgIC0gS2FtcGZzdGVybiBHYWxhY3RpY2EKCiBBdXN3YWhsIGR1cmNoIEZ1enp5IExvZ2ljIG9kZXIgcGVyIFp1ZmFsbCEKCgoKLVNpbnRmbHV0LU9wdGlvbiBlcmdhZW56dCBkdXJjaDoKCiAgICAgLSBFcmRiZWJlbgoKICAgICAtIEFsaWVuYXR0YWNrZSB2b24gQW5kcm9tZWRhIFZJCgogICAgIC0gQXRvbS1HQVUKCiAgICAgLSBDZW50cmFsIFNlcnZpY2VzICgwNDAgLyA3MTMgNjIgNDkpCgogICAgIC0gUm9iZXJ0IEZlZGVybGUKCiAgICAgLSBTcGluYXQKCgoKLUdvZXR0bGljaGUgVmVybWVocnVuZyB2b24gSnVuZ2ZyYXVlbmdlYnVydCBlcndlaXRlcnQgYXVmIGRlbiBuZXVlc3RlbgpTdGFuZAoKIGRlciBHZW50ZWNobmlrISBKZXR6dCBhdWNoIGdvZXR0bGljaGUgVG9lY2h0ZXIsIEFuZHJvaWRlbiwgUm9ib3RlciEKCgoKLVN0YXR0IHp3YW5nc2xhZXVmaWdlciBLcmV1emlndW5nIGpldHp0IHdhaGx3ZWlzZQoKICAgLUZpbmFsZXIgUmV0dHVuZ3NzY2h1c3MKCiAgIC1BSURTCgogICAtQXV0b3VuZmFsbAoKICAgLVN1aXppZAoKICAgLUxhdXQgQnVuZGVzZ2VzdW5kaGVpdHNhbXQgdm9lbGxpZyB1bmdlZmFlaHJsaWNoZQpMZWJlbnNtaXR0ZWxmYXJiZW4KCiAgIC1BdGFyaQoKICAgLUJlZ25hZGlndW5nCgoKCi1Wb2xsdmVyc2lvbmVuIGpldHp0IG1pdCBqZWRlciBNZW5nZSBSZWNodGZlcnRpZ3VuZ2VuIGZ1ZXIKcmVsaWdpb2VzZW4KCiBGYW5hdGlzbXVzISBHZXdpc3NlbmJpc3NlIHVuZCBsb2dpc2NoZXMgRGVua2VuIHZvbGwgYWJzY2hhbHRiYXIhCgoKCi1GdWVyICJIRVJSIiBqZXR6dCBzdGF0dCBzaW1wbGVyIEdyb3Nzc2NocmlmdCB2b2xsZQpBTlNJLVVudGVyc3R1ZXR6dW5nOiBGYXJiZSwKCiBJbnZlcnMsIEJsaW5rZW5kLiBBdXRvcml0YWV0ZW4gd2VyZGVuIGF1dG9tYXRpc2NoIGVya2FubnQuCgoKCi1XWVNJSUIgOiAiV2hhdCBZb3UgU2VlOiBJZ25vcmUgSXQuIEJlbGlldmUhIgoKCgoKCkJlaSBhbGxlbiBFcndlaXRlcnVuZ2VuIHd1cmRlbiBzZWxic3R2ZXJzdGFlbmRsaWNoIGRpZSBiZWthbm50ZW4gdW5kCmJlbGllYnRlbgoKSW50b2xlcmFuemVuLCBVbnRlcmRydWVja3VuZ3NtZWNoYW5pc21lbiB1bmQgVW5nZXJlaW10aGVpdGVuIGF1cyBCaWJlbAoxLjAgdm9sbAoKdWViZXJub21tZW4uRGFiZWkgd2VyZGVuIGFsbGUgQXVzZ3Jlbnp1bmdlbiBqZXR6dCB2b2xsIGludHVpdGl2CnVudGVyc3R1ZXR6dC4KUGVyCgpLbGljayBTY2hhcmVuIEFuZGVyc2RlbmtlbmRlciB2ZXJ0aWxnZW46IERhcyBnZWh0IG51ciBtaXQgQmliZWwgMi4wc3MuCkZ1ZXIgbnVyCgoqNjY2LC0qIGJlaSBqZWRlbSBGYWNoaGFlbmRsZXIgb2RlciBkaXJla3QgYXVzIGRlbSBWYXRpa2FuLiBCaXR0ZQoKVmVycmVjaG51bmdzc2NoZWNrIGJlaWxlZ2VuLgoKCgoKClN5c3RlbXZvcnJhdXNzZXR6dW5nZW46CgotU2ltcGxlIFBzeWNob2xvZ2llLCBDaGFyaXNtYSwgdmllbCBHZWxkIHVuZCBlaW5lbiBIYXVmZW4KR3V0Z2xhZXViaWdlci4KCgoKCgogICAgICAgICAgICAgICAgICAgTCBVIFQgWiBJIEYgRSBSIC0gIEVzIGthbm4gbnVyIGVpbmVuIGdlYmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJpYmVsIFYyLjAgKERhbmNlciwgIDIuIE5vdiAxOTk0LCAyMzo0NzoyOSk6CihCZXp1ZzogQXJ0aWtlbCB2b24gUm9jaHVzLCBNaXQsICAyLiBOb3YgMTk5NCwgMjE6MjM6MjIpCnhkbyA1MDAjZG8gbGFjaDsgd2FlbHo7IGxhY2g7IHdhZWx6ICEhISEhIFN1cGVyZ3V0IDopKSkKV2VubiBqZXR6dCBub2NoIGVpbmVyIHNhZ3QsIGRhcyB3YWVyZSByZWxpZ2lvbnNmZWluZGxpY2gsIGRhbm4gaGF0IGVyCldJUktMSUNIIGtlaW5lbiBIdW1vciEgOi0pKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtpc3NlbnNhbW1sZXIgKFJvY2h1cywgIDMuIE5vdiAxOTk0LCAwMDo0MzoyOSk6CkpvZiBsYWVzc3QgZWluIEtpc3NlbiBmYWxsZW4uCkpvZiBsYWVzc3QgZWluIEtpc3NlbiBmYWxsZW4uCkpvZiBsYWVzc3QgZWluIEtpc3NlbiBmYWxsZW4uCkpvZiBsYWVzc3QgZWluIEtpc3NlbiBmYWxsZW4uCkpvZiBsYWVzc3QgZWluIEtpc3NlbiBmYWxsZW4uCkpvZiBsYWVzc3QgZWluIEtpc3NlbiBmYWxsZW4uCi4uLgpLbm9lcnJ5IG5pbW10IGVpbiBLaXNzZW4uCktub2VycnkgbmltbXQgZWluIEtpc3Nlbi4KS25vZXJyeSBuaW1tdCBlaW4gS2lzc2VuLgpLbm9lcnJ5IG5pbW10IGVpbiBLaXNzZW4uCktub2VycnkgbmltbXQgZWluIEtpc3Nlbi4KS25vZXJyeSBuaW1tdCBlaW4gS2lzc2VuLgouLi4KS25vZXJyeSBydWZ0OiBLSVNTRU4uLnZlcmthdWZlIEtpc3Nlbi4uLmZsYXVzY2hpZywgd2VpY2guLm5ldSEgIEtpc3Nlbi4uLiEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSYWV1YmVyIChSb2NodXMsICAzLiBOb3YgMTk5NCwgMDE6NTc6NDcpOgpzY2hhdSByYWV1YmVyClZvciBEaXIgc3RlaHQgZWluIGZpZXNlciwgZ2VtZWluZXIsIGtyYWVmdGlnZXIgUmFldWJlciwgZGVyIERpY2gKYXVmIGVpbmUgYWV1c3NlcnN0IHVuaG9lZmxpY2hlIEFydCB1bSBldHdhcyBHZWxkIGJpdHRldC4KRXIgaXN0IGFic29sdXQgZml0LgpFciB0cmFlZ3QgYmVpIHNpY2g6CjYzNjIgTXVlbnplbi4KRWluIEVoZXJpbmcgKGFuZ2V6b2dlbikuClBhYXIgTGVkZXJoYW5kc2NodWhlIChhbmdlem9nZW4pLgpQYWFyIExlZGVyc3RpZWZlbCAoYW5nZXpvZ2VuKS4KRWluIFBsYXR0ZW5wYW56ZXIgKGFuZ2V6b2dlbikuCkVpbiBSdW5lbnNjaHdlcnQgKGdlenVlY2t0KS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFic29sdXQgdW5kaXNrcmltaW5pZXJlbmQgKFN1bm55LCAgMy4gTm92IDE5OTQsIDA4OjQ3OjQ1KToKZGVyIHRpdGVsIC0tPiBkYW1pdCBrZWluIHByb2YgYXVmIGRpZSBpZGVlIGtvbW10IGlobiBsZXNlbiB6dSBtdWVzc2VuCnVtIGRhcyBNVUQgdmVyYmlldGVuIHp1IGtvZW5uZW4sIHVuZCBkYXNzIGZsaW5rZSByZWRha3RldXJlIGdsZWljaApiZXNjaGVpZCB3aXNzZW4sIGRhc3MgZXMgaGllciBuaXggenUgbG9lc2NoZW4gZ2lidCwgd2FzIHByb2ZzIGxlc2VuCmtvZW5udGVuIHVtIGRhbm4gZGFzIE1VRCB6dSB2ZXJiaWV0ZW4uLi4uLi4KCmFsc28gZGVyIHdpdHo6ICAgICAgIHVyaGViZXJyZWNodGUgYnkgU0NITklDSwpkcmVpIHNjaGlsZGtyb2V0ZW4gd2FuZGVybiBkdXJjaCBkaWUgd3Vlc3RlIGF1ZiBkZXIgc3VjaGUgbmFjaCB3YXNzZXIuCnRhZ2UgdW5kIHdvY2hlbi4uLi4KbmFjaCAzIHdvY2hlbiBmaW5kZW4gc2llIGVuZGxpY2ggZGllIGhlaXNzZXJzZWhudGUgb2FzZQoxLnNjaGlsZGtyb2V0ZToiIGhlIGxldXRlIGFiZXIgbmljaCBvaG5lIHRhc3NlIiwgc2FndHMgdW5kIGZsaXR6dCBsb3MuCmRpZSBhbmRlcmVuIHdhcnRlbiwgdGFnZSB1bmQgd29jaGVuCm5hY2ggNiB3b2NoZW4gbWVpbnQgZGllIDIuOiJtaXIgYWxsZXMgZWdhbC1pY2ggdHJpbmsgamV0enQiCmRhIGtvbW10IGRpZSBlcnN0ZSBoaW50ZXIgbmVyIGR1ZW5lIGhlcnZvcjoid2VubiBpaHIgc2NobXVodCBnZWggaWNoIGdhcgpuaWNodCBlcnN0IGxvcyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCaWJlbCBWMi4wIChSYWlzdGxpbiwgIDMuIE5vdiAxOTk0LCAxMDozNzozNCk6CihCZXp1ZzogQXJ0aWtlbCB2b24gUm9jaHVzLCBNaXQsICAyLiBOb3YgMTk5NCwgMjE6MjM6MjIpCldhcyBzb2xsIGljaCBkYXp1IG5vY2ggc2FnZW4/CgotLVJhaXN0bGluIChzaWNoIHNjaGxhcHAgbGFjaGVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaWVsZXJoaWxmZSEhISA6KSAoWWVuZGksICAzLiBOb3YgMTk5NCwgMTI6MzA6MjYpOgoKTmV1bGljaCwgaW4gZGVyIFBvc3Q6Cj4gRWluIFBhcGFnZWkgZmxhdHRlcnQgaGVyZWluLgo+IERlciBQYXBhZ2VpIHNhZ3Q6IGtpcmsgaGF0IG1pciBnZXJhZGUgZ2Vob2xmZW4KRGVyIFBhcGFnZWkgZmxhdHRlcnQgbmFjaCBXZXN0ZW4uCgpLaXJrLCBLaXJrLi4uCkRhcyB3YXIgZG9jaCBiZXN0aW1tdCBlaW4gTWFnaWVyLCBkZW0gRHUgZGEgZ2Vob2xmZW4gaGFzdCwgb2Rlcj8/PwoKICAgICAqZ3JpbnMgYnJlaXQqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2ggd2FzIHp1IEJsb25kaW5lbndpdHplbi4uLi4gKENpZmVyLCAgMy4gTm92IDE5OTQsIDEyOjUyOjQwKToKKEJlenVnOiBBcnRpa2VsIHZvbiBHdXlicnVzaCwgTWl0LCAgMi4gTm92IDE5OTQsIDA5OjEyOjUwKQpIbW1tLi4uLCBiaXN0IER1IHNpY2hlcj8KKE5peCBmdWVyIHVuZ3V0LCBkYXMgbXVzc3RlIGpldHp0IGVpbmZhY2ggc2Vpbi4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5FUlYgLSBLZWluIFdpdHohIDooIChGcmV1bmQsICAzLiBOb3YgMTk5NCwgMTM6NDQ6MTkpOgpIaSwKbWlyIGdlaHQgZXMgbWFlY2h0aWcgZ2VnZW4gZGVuIFN0cmljaCwgaW4gamVkZW0gNC4gQXJ0aWtlbApsZXNlbiB6dSBtdWVzc2VuLCBkYXNzIGVzIHNpY2ggMS4gaW0KYWVoIHNvcnJ5LCAxLiBhdWYga2VpbmVuIEZhbGwgdW0gZWluZSBEaXNrcmltaW5pZXJ1bmcgZ2VnZW4gaXJnZW5kLQp3ZW4gaGFuZGVsdCwgdW5kIDIuIGlyZ2VuZHdlbGNoZSBQcm9mcyBkYXMgcnVoaWcgbGVzZW4ga29lbm50ZW4sCndlaWwgc2llIGphIGVoIGtlaW4gTXVkIG5pY2h0IHZlcmJpZXRlbiB3ZXJkZW4uCgpJY2ggaGFiZSBpbiBlaW5lbSBlcm5zdCBnZW1laW50ZW4gQXJ0aWtlbCBtZWluZSBNZWludW5nIGRhcmdlbGVndCwKaW0gSGludGVya29wZiBkYXMgR2VzY2hlaGVuIHVtIFRBUFAtTXVkLiBJY2ggZXJ3YXJ0ZSBuaWNodCB2b24gamVkZW0KU3BpZWxlciAvIE1hZ2llciBoaWVyIGltIE11ZCBadXN0aW1tdW5nIG9kZXIgRWluc2ljaHQsIGFiZXIgaWNoIGhhdHRlCmF1Y2ggbmljaHQgdW5xdWFsaWZpemllcnRlIEJlbWVya3VuZ2VuIGluIGRpZXNlciBob2hlbiBaYWhsLCB3aWUKei5CLiB2b24gT2V0dGkgKG9kZXIgYWVobmxpY2gpIGVyd2FydGV0LCBkaWUgaWNoIG5pY2h0IHNvIHN0ZWhlbgpsYXNzZW4gbW9lY2h0ZS4gRGVyIEdydW5kLCB3YXJ1bSBpY2ggZGFzIGRlbm5vY2ggdHVlIGlzdCBkZXIsIwpkYXNzIG1pciBkYXMgTUcgenUgc2VociBhbnMgSGVyeiBnZXdhY2hzZW4gaXN0LCBhbHMgZGFzIGljaCBmcmVpLQp3aWxsaWcgZWluIFJpc2lrbyBlaW5naW5nZSwgZWluZSBTY2hsaWVzc3VuZyBiZWdydWVuZGJhciB6dSBtYWNoZW4uCldlbmlnc3RlbnMgaW0gbGV0enRlbiBQdW5rdCBzaW5kIEpvZiB1bmQgaWNoIGVpbmVyIE1laW51bmc6Ck1vZWdsaWNoc3QgdW5hdWZmYWVsbGlnIGJsZWliZW4gaXN0IGV4aXN0ZW5zd2ljaHRpZy4KCkljaCBiaW4gdWVicmlnZW5zIGF1Y2gga2VpbiBTY2h3YXJ6bWFsZXIgb2RlciBQZXNzaW1pc3QsIHdpZSBzaWNoCnZpZWxsZWljaHQgZGllamVuaWdlbiBlcmlubmVybiBrb2VubmVuLCBkaWUgbWljaCBhdWYgZWluZXIgZGVyIE11ZC0KRmV0ZW4gZXJsZWJ0IGhhYmVuLCBpY2ggdmVyc3VjaGUgbnVyIHVubm9ldGlnZXMgR2VmYWhyZW4genUgdmVyLQptZWlkZW4uCgpVTmQgbWVpbmUgYWxsZXJnaXNjaGUgUmVha3Rpb24gYXVmIGRpZSBkaXZlcnNlbiBCZW1lcmt1bmdlbiBsaWVndCBpbgpkZXIgb2ZmZW5zaWNodGxpY2hlbiBJcm9uaWUgYmVncnVlbmRldCwgbWl0IGRlciBzaWUgZWluZ2V0aXBwdCB3dXJkZW4uCgpOaWNodHNkZXN0c290cm90eiBoYWJlbiBtaXIgZGllc2UgUmVha3Rpb25lbiBnZXplaWd0LCBkYXNzIGRhcyBMb2VzY2hlbgplaW5lcyBlZ2FsLXdpZS1ncmFlc3NsaWNoZW4gQXJ0aWtlbHMgaW1tZXIgbnVyIG5lZ2F0aXZlIFNlaXRlbiBmdWVyIGRlbgpMb2VzY2hlbmRlbiBoYXQsIHVuZCBkYWhlciB3ZXJkZSBpY2gga2VpbmVuIEFydGlrZWwgbWVociBsb2VzY2hlbiwgZGVuCmljaCBuaWNodCBzZWxic3QgZ2VzY2hyaWViZW4gaGFiZTsgKndlbm4qIGVzIGRhbm4gbWFsIHdpZWRlciBQcm9ibGVtZQpkZXN3ZWdlbiBnZWJlbiB3aXJkLCB3ZXJkZW4gc2llIHdlbmlnZXN0ZW5zIGFsbGUgYmV0cmVmZmVuLCBuaWNodCBudXIKZGllIGFuZ2VibGljaGVuIEJ1aG1hZW5uZXIuCgpEaWVzZXIgQXJ0aWtlbCBzdGVodCBpbiB3aXR6ZSwgd2VpbCBzaWNoIGhpZXIgZGllICppY2ggd2Vpc3MgbmljaHQKd2lldmllbHRlKiBBbnNwaWVsdW5nIGF1ZiBkaWUgbGV0enRlbiBBcnRpa2VsIC8gTG9lc2NodW5nZW4gYmVmYW5kLgoKKFdpZSBvZnQgc3RhbmRlbiBzY2hvbiAiZnJlbWRlIiBBcnRpa2VsIGluIHBvbGl6ZWkuYmVzY2h3ZXJkZW4uLi4gOy0pCgpCaXMgZGVubiBlaW4gZXR3YXMgcGFzc2l2ZXJlciBGcmV1bmQgZGVubiBqZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldJTkRPV1MgOTUgKEd1eWJydXNoLCAgMy4gTm92IDE5OTQsIDE1OjE5OjIyKToKClRvcCAxMCBUaGluZ3MgcGVvcGxlIHRoaW5rIHRoZSA5NSBpbiBXSU5ET1dTIDk1IHJlYWxseSBzdGFuZHMgZm9yOgoxMC5UaGUgbnVtYmVyIG9mIGZsb3BwaWVzIGl0IHdpbGwgc2hpcCBvbgo5LiBUaGUgcGVyY2VudGFnZSBvZiBwZW9wbGUgd2hvIHdpbGwgaGF2ZSB0byB1cGdyYWRlIHRoZWlyIGhhcmR3YXJlCjguIFRoZSBudW1iZXIgb2YgbWVnYWJ5dGVzIG9mIGhhcmQtZGlzayBzcGFjZSByZXF1aXJlZAo3LnRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlICJFQVNZIElOU1RBTEwiIHZlcnNpb24gb2YgdGhlIG1hbnVhbAo2LiBUaGUgcGVyY2VudGFnZSBvZiBleGlzdGluZyBwcm9ncmFtcyB0aGF0IHdvbid0IHJ1biBpbiB0aGUgbmV3IG9wZXJhdGluZwpzeXN0ZW0KNS4gVGhlIG51bWJlciBvZiBtaW51dGVzIHRvIGluc3RhbGwKNC4gVGhlIG51bWJlciBvZiBjYWxscyB0byB0ZWNoIHN1cHBvcnQgYmVmb3JlIHlvdSBjYW4gZ2V0IGl0IHRvIHJ1bgozLiBUaGUgbnVtYmVyIG9mIHBlb3BsZSB3aG8gd2lsbCBhY3R1YWxseSBQQVkgZm9yIHRoZSB1cGdyYWRlCjIuIFRoZSBudW1iZXIgb2YgTUh6IHJlcXVpcmVkIGZvciB0aGUgb3BlcmF0aW5nIHN5c3RlbSB0byBydW4KMS4gVGhlIHllYXIgaXQgd2FzIERVRSB0byBzaGlwCgpHdXlicnVzaCwgdGlwcGVuZCBpbiBlaW5lciBTdHJlc3NzaXR1YXRpb24uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWZzIFJhZCBnZWtvbW1lbiAoQW50aGVhLCAgMy4gTm92IDE5OTQsIDE1OjQzOjA0KToKWndlaSBHYXN0YXJiZWl0ZXIgdHJlZmZlbiBzaWNoLiBEZXIgZWluZSBoYXQgZWluIG5hZ2VsbmV1ZXMgRmFocnJhZC4gRnJhZ3QKZGVyIDIuOgogIERhcyB3YXIgZG9jaCBzaWNoZXIgc2VociB0ZXVlciwgb2Rlcj8KRGFyYXVmIGRlciAxLjoKICBTY2hvbiwgYWJlciBpbiBEZXV0c2NobGFuZCBnaWJ0IGVzIFNwcnVjaDogR3V0ZXMgUmFkIHRldWVyLgpOYWNoIHp3ZWkgV29jaGVuIHRyZWZmZW4gc2ljaCBkaWUgYmVpZGVuIHdpZWRlci4gRnJhZ3QgZGVyIDIuOgogICBOYSwgd28gaXN0IGRlaW4gUmFkPwoxLjogR2VrbGF1dC4KMi46IFdhcz8gZGFzIGd1dGUgUmFkPyBXYXJzdCBEdSBzY2hvbiBiZWkgUG9saXplaT8KMS46IE5laW4sIGJyYXVjaCBpY2ggbmljaHQsIGluIERldXRzY2hsYW5kIGdpYnQgZXMgU3BydWNoOiBLb21tdCBaZWl0LCBrb21tdApSYWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQaHlzaWsgb2RlciBDaGVtaWU/IChBbnRoZWEsICAzLiBOb3YgMTk5NCwgMTY6MjI6MjIpOgpIb2JvIGFuIGFsbGUgTWFnaWVyOiBnaWJ0IGVzIGhpZXIgZWluZW4gbWFnLCBkZXIgcGh5c2lrIG5vcm1hbGVuIG1lbnNjaGVuCkhvYm8gYW4gYWxsZSBNYWdpZXI6IGVya2xhZXJlbiBrYW5uPwpBbnRoZWEgYW4gYWxsZSBNYWdpZXI6IHdhcnVtIGJyYXVjaHN0IGR1IGRhenUgZWluZW4gbWFnPwpBbnRoZWEgYW4gYWxsZSBNYWdpZXI6IGdsYXVic3QgZHUsIHNwaWVsZXIga29lbm5lbiBzbyBldHdhcyB2b24gdm9ybmVoZXJlaW4KQW50aGVhIGFuIGFsbGUgTWFnaWVyOiBuaWNodD8KQW50aGVhIGFuIGFsbGUgTWFnaWVyOiA6KQpIb2JvIGFuIGFsbGUgTWFnaWVyOiB3ZWlsIGljaCBrZW5lIGx1c3QgaGFiLCBtaWNoIHBlciB0ZWxsIHp1IG51bnRlcmhhbHRlbgpIb2JvIGFuIGFsbGUgTWFnaWVyOiB1bmQgd2VpbCBzb25zdCB6dXZpZWxlIGFudHdvcnRlbiBrb21tZW4gZXRjClsvcGxheWVycy9ob2JvL3dvcmtyb29tXQpEYXMgaGllciBtdXNzIHdvaGwgZGVyIEFyYmVpdHNyYXVtIHZvbiBIb2JvIHNlaW4sIG9id29obCBEdSBEaXIgZ2FyCm5pY2h0IHZvcnN0ZWxsZW4ga2FubnN0LCBkYXNzIHNpZSBoaWVyIGFyYmVpdGV0LiBEYXMgWmltbWVyIHNpZWh0IGF1cwp3aWUgZWluIHJpZXNpZ2VzIFplbHQgYXVzIFNwcm9zc2VuZmVuc3Rlcm4uIFVlYmVyYWxsIHN0ZWhlbiBuaWVkcmlnZSAKUmVnYWxlLCBpbiBkZW5lbiBmbGF1c2NoaWdlIGdydWVuZSBLdWdlbG4gaW4gamVkZXIgR3JvZXNzZSBsaWVnZW4uCkF1c3NlcmRlbSBzaWVoc3QgRHUgZGllIGxlYmVuc2dyb3NzZSBTdGF0dWUgdm9uIEdvZG9scGhpbi4gSW4gZGVyIE1pdHRlCmhhZW5ndCBlaW4gcm90ZXIgU2FuZHNhY2ssIGFuIGRlbSBIb2JvIGlocmUgQWdncmVzc2lvbmVuIGF1c2xhc3NlbiBrYW5uLgpadW0gQXJiZWl0ZW4gc2V0enQgc2llIHNpY2ggaW4gZGVuIGJlcXVlbWVuIEtuYXV0c2Noc2FjaywgZGVyIGhpbnRlcgplaW5lbSBzZWNoc2Vja2lnZW0gU2NocmVpYnRpc2NoIHZvbGxlciBDaGFvcyBsaWVndC4KRXMgZ2lidCBzZWNocyBzaWNodGJhcmUgQXVzZ2FlbmdlOiBzaWx2YW5hLCBib2luZywgdW50ZW4sIGdpbGRlLCBhcm9tYm9sb3NjaAp1bmQgcHJpdmF0LgpaYXJkb3ouIFsvbWFnaWVyOnphcmRvel0KWWFudHJvIEFkZGF1cmEgbXVudGVydCBHbGV0c2NoZXJmZWVuIGF1ZiA6KS4gWy9tYWdpZXI6eWFudHJvXQpIb2JvcyBTaWxiZXJsb2V3ZS4gWy9wbGF5ZXJzL2hvYm8vc2lsYmVybG9ld2VdCkhleGNoZW4gSG9iby4gWy9tYWdpZXI6aG9ib10KSG9ibyB0cml0dCBZYW50cm8uCkR1IGtudWRkZWxzdCBaYXJkb3osIFlhbnRybywgZWluZW4gU2lsYmVybG9ld2VuIHVuZCBIb2JvLgpZYW50cm8gc2FndDogaWNoIGJpbiBhYmVyIGNoZW1pa2VyISEhIEVocmxpY2gKWWFudHJvIGtudWRkZWx0IERpY2guClphcmRveiBzYWd0OiB3byBpc3NlcyBkZW5uIGRhcyBQUHJvYmxlbWNoZW4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IHdhcyBpc3QgZGVubiBlaW5lIGRpZWxla3RyaXppdGFldHNrb25zdGFudGUsIGJ6dy4gd2FzIHNhZ3QKSGV4Y2hlbiBIb2JvIHNhZ3Q6IHNpZSBhdXM/ClphcmRveiBmbHVlc3RlcnQgWWFudHJvIGV0d2FzIHp1LgpLZXRvcyB0cml0dCBhdXMgRGVpbmVtIFNjaGF0dGVuLgpZYW50cm8gc2FndDogREFTIGlzdCBDaGVtaWUKSG9ibyBzcGl0enQgZGllIE9ocmVuLgpLZXRvcyBnaWJ0IGVpbiBhbGJlcm5lcyBLaWNoZXJuIHZvbiBzaWNoLgpIZXhjaGVuIEhvYm8gc2FndDogYWxzbz8KWmFyZG96IHNjaHVldHRlbHQgZGVuIEtvcGYuCkhvYm8ga251ZGRlbHQgS2V0b3MuCkhleGNoZW4gSG9ibyBzYWd0OiB0YWNoIGR1IHNjaGF0dGVuCktldG9zIHNhZ3Q6IFdhcyBnaWJzdCB6dSBlcmtsYWVyZW4gPwpZYW50cm8ga251ZGRlbHQgS2V0b3MuCkR1IHNhZ3N0OiBkYXMgaXN0IGNoZW1pZS9waHlzaWsgdWViZXJncmVpZmVuZCA6KQpIZXhjaGVuIEhvYm8gc2FndDogd2FzIGlzdCBkZW5uIGVpbmUgZGllbGVrdHJpeml0YWV0c2tvbnN0YW50ZSwgYnp3LiB3YXMgc2FndApIZXhjaGVuIEhvYm8gc2FndDogc2llIGF1cz8KWmFyZG96IHNhZ3Q6IFB5c2lrYWxpc2NoZS1DaGVtaWUgc296dXNhZ2VuCktldG9zIHNhZ3Q6IFd1c3N0ZSBpY2ggbWFsCllhbnRybyBmbHVlc3RlcnQgWmFyZG96IGV0d2FzIHp1LgpIZXhjaGVuIEhvYm8gc2FndDogaWhyIHNvbGx0IG1pciBuaWNodCBzYWdlbiwgaW4gd2VsY2hlcyBmYWNoIGRhcyBmYWVsbHQsCkhleGNoZW4gSG9ibyBzYWd0OiBzb25kZXJuIHdhcyBkYXMgaXN0CkR1IGtpY2hlcnN0LiAoV2llIGFsYmVybiB2b24gRGlyKQpZYW50cm8gdHJvZXN0ZXQgSG9iby4KSG9ibyBncmluc3QgS2V0b3MgYW4uClRqYS4uLi4gZGFzIEhleGNoZW4gSG9ibyBzYWd0OiB1bmQgaWNoIG11c3MgZXMgYmlvbDtvZ2VuIGVya2xhZXJlbiBrb2VubmVuIDspCllhbnRybyBmcmFndDogTG9nZ3QgZWluZXIgbWl0Pz8/CllhbnRybyBnaWJ0IGVpbiBhbGJlcm5lcyBLaWNoZXJuIHZvbiBzaWNoLgpIb2JvIHNhZ3Q6IG5vaSwgaWNoIG5pY2h0XApZYW50cm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCllhbnRybyB3YWVsenQgc2ljaCB2b3IgTGFjaGVuIGF1ZiBkZW0gQm9kZW4uClphcmRveiBzYWd0OiBEaWUgZ2xhdWJlbiBlaCBhbGxlcwplbGVrdHJpc2NoZUtldG9zIHNhZ3Q6IERpZSBkaWVsZWt0cml6aXRhZXRza29uc3RhbnRlIGdpYnQgYW4gb2IgZWluIGVsZWt0cmlzY2hlciBGZWxkIGluCktldG9zIHNhZ3Q6IGVpbmVtIERpZWxla3RyaWt1bSB2ZXJzdGFlcmt0IG9kZXIgZ2VzY2h3YWVjaHQgd2lyZC4KRHUgc2Fnc3Q6IFRqYS4uLi4gZGFzIGlzdCBlaW5lIEVpZ2Vuc2NoYWZ0IG5pY2h0bGVpdGVuZGVyIGVsZW1lbnRlIGluIGVpbmVtCkR1IHNhZ3N0OiBlbGVrdHJpc2NoZW4gZmVsZC4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGpldHp0IHNhY2h0IGRvY2ggbWFsCkR1IGtpY2hlcnN0IG1lZXJqdW5nZnJhZXVsaWNoLgpZYW50cm8gc2FndDogQmlvbG9nZW4/Pz8gVmVyZ2lzcyBlcwpaYXJkb3ogbmlja3QgRGlyIHp1LgpIZXhjaGVuIEhvYm8gc2FndDogd2FzIGlzdCBlaW4gZGllbGVrdHJpa3VtPwpaYXJkb3ogc2FndDogSW4gZWluZW0gZWxla3Rpc2NoZW4gRmVsZCB3ZXJkZW4gU3RvZmZlIHBvbGFyaXNpZXJ0CktldG9zIHNhZ3Q6IGRhcyBNYXRlcmlhbCBkYXMgaW0gZWxla3RyaXNjaGVuIGZlbGQgaXN0CkhleGNoZW4gSG9ibyBzYWd0OiBrbGFyCktldG9zIHNhZ3Q6IEFscyBkaWVsZWt0cmlrdW0gYmV6ZWljaG5ldCBtYW4gU3RvZmZlIGRpZSBkYXMgRWxla3Jpc2NoZSBGZWxkCktldG9zIHNhZ3Q6IHZlcnN0YWVya2VuCkhleGNoZW4gSG9ibyBzYWd0OiBhaGEuLi4gZGg6IGdlcmluZ2Uga29uc3RhbnRlIC0+U2Nod2FlY2h1bmcgZGVzIEVGZWxkZXM/CkR1IG5pY2tzdCB6dXN0aW1tZW5kLgpLZXRvcyBzYWd0OiB6LmIuIFdhc3NlciA/CkR1IHNhZ3N0OiB3ZW5uIGRhbm4gcmVpbmVzIEgyTywgbm9ybWFsZXMgV2Fzc2VyIGxlaXRldCA6KQogSGV4Y2hlbiBIb2JvIHNhZ3Q6IGdlcmluZ2UsIHJlaW5lcyB3YXNzZXIKSG9ibyBuaWNrdCB6dXN0aW1tZW5kLgpZYW50cm8gbmlja3QgenVzdGltbWVuZC4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGtsYXNzZSwgaWhyIHNlaWQgc3BpdHplCkhvYm8ga251ZGRlbHQgS2V0b3MsIERpY2gsIFphcmRveiwgWWFudHJvIHVuZCBlaW5lbiBTaWxiZXJsb2V3ZW4uCkhleGNoZW4gSG9ibyBzYWd0OiBoZWhlLCBib2luZyBpcyBuaWNodCBkYSA6KQpEdSBzYWdzdDogc29sbCBpY2ggZGFzIGxvZ2ZpbGUgcG9zdGVuPwpZYW50cm8gc2FndDogc2ljaGVyCkhleGNoZW4gSG9ibyBzYWd0OiBubwpZYW50cm8gZ3JpbnN0IERpY2ggYW4uCkhleGNoZW4gSG9ibyBzYWd0OiBuaWNodCBkYXMgbWl0IGJvaW5nLCBzb25zdCBoYWJlbiB3aXIgd2llZGVyIHN0dW5rIDooCkVpbiBlaXNpZ2VyIFdpbmQgd2VodCBkaXIgaW5zIEdlc2ljaHQuCkR1IHNjaGxpZXNzdCBmdWVyIGVpbmVuIE1vbWVudCBkaWUgQXVnZW4uIEFscyBkdSBzaWUgd2llZGVyCm9lZmZuZXN0IHN0ZWh0IHBsb2V0emxpY2ggRmVuY2h1cmNoIHZvciBkaXIuCkhleGNoZW4gSG9ibyBzYWd0OiBhbHNvIGlzdCB3YXNzZXIga2VpbiBkaWVsZWt0aXJrdW0/ClNraW1weSB0YXBwc3QgaGVyZWluLgpZYW50cm8gcnVmdDogWlUgRlVVVVVVVVVVVVVVVVVVVVVTU1NTU1NTCkRpZSBFaXNmZWUgRmVuY2h1cmNoIHNhZ3Q6IGR1dXV1dXV1dXV1Li4uLiBob29vb29vb29vYm9vb29vb29vLi4uLgpIb2JvIGtudWRkZWx0IEZlbmNodXJjaC4KWmFyZG96IHJ1bnplbHQgZGllIFN0aXJuLgpLZXRvcyBzYWd0OiBEYSBzaWVoc3QgbWFuIGVzIHdpZWRlcjogRGllIEV0J2xlciBtdWVzc2VuIGRpZSBQaHlzaWsgZXJrbGFlcmVuCktldG9zIHNhZ3Q6IDspCllhbnRybyBzYWd0OiBIaSwgZmVuCkhleGNoZW4gSG9ibyBzYWd0OiBrb21tc3QgZHVrb21tc3QgZHUga29tbXN0IGR1Pz8/CkRpZSBFaXNmZWUgRmVuY2h1cmNoIHNhZ3Q6IGhpIDopKQpEaWUgRWlzZmVlIEZlbmNodXJjaCBzYWd0OiBhZWguLi4uCktldG9zIHp3aW5rZXJ0IERpciB6dS4KWWFudHJvIHN0cmVpY2hlbHQgZGVuIGtsZWluZW4gUG9sYXJmdWNocywgZGVyIGxlaXNlIHVuZApnbHVlY2tsaWNoIHZvciBzaWNoIGhpbiBrbnVycnQuCkhleGNoZW4gSG9ibyBzYWd0OiB3YXMgaXN0IGRlbm4gamV0enQgbWl0IHdhc3Nlcj8KU2tpbXB5IGtyYXR6dCBzaWNoIGhlZnRpZyBtaXQgZGVyIFBmb3RlIGhpbnRlcm0gT2hyLgpTa2ltcHkgcGZsZWd0IHNvcmdmYWVsdGlnIHNlaW4gbGFuZ2VzIHdlaXNzZXMgRmVsbC4KWmFyZG96IHNhZ3Q6IFdhc3NlciBoYXQgZG9jaCBlaW5lIGhvaGUgZGllbGVrdGl6aXRhZXRza29uc3RhbnRlLCBvZGVyIG5pY2h0PwpLZXRvcyBzYWd0OiBob2VoZXIgYWxzIGx1ZnQgYXVmIGFsbGUgZmFlbGxlClNraW1weSBrcmF0enQgc2ljaCBoZWZ0aWcgbWl0IGRlciBQZm90ZSBoaW50ZXJtIE9oci4KS2V0b3Mgc2FndDogbHVmdCBoYXQgZGllIHJlbGF0aXZlIGRpZWxla3RyaXppdGFldHNrb25zdGFuZSB2b24gMQpaYXJkb3ogc2FndDogRXMgbGFlc3N0IHNpY2ggbGVpY2h0IHBvbGFyaXNpZXJlbi4uLgpIZXhjaGVuIEhvYm8gc2FndDogbmVpbiByZWluZXMgSDJPIG5lIGdlcmluZ2UKWWFudHJvIGtudWRkZWx0IGxhbmdlIHVuZCBhdXNnaWViaWcgbWl0IGRlbSBrbGVpbmVuIFBvbGFyZnVjaHMuClphcmRveiBzYWd0OiB1bmQgYmVzdGVodCBhdXMgZGlwb2xlbgpGZW5jaHVyY2ggd2lua3QuCllhbnRybyBncmluc3QgRmVuY2h1cmNoIGFuLgpGZW5jaHVyY2ggc2Nod2VidCBlaXNrYWx0IG5hY2ggSGF1c2UuClphcmRveiB6dWNrdCByYXRsb3MgbWl0IGRlbiBTY2h1bHRlcm4uClNraW1weSB0YXBwc3QgaGludGVyaGVyLgpZYW50cm8gcHVzdGV0IGVpbmVuIEhhdWNoIGRlciBMaWViZSBpbiBkaWUgTHVmdCB1bmQgc2Nod2VidCBpbiBkaWVzZW4gaGluZWluLCB1bSBzaWNoIGxhZWNoZWxuZCB2b3IgRGVpbmVuIEF1Z2VuIGF1Znp1bG9lc2VuLgpaYXJkb3ogc2NobGFlZ3Qgc2ljaCBhbiBkZW0gU2FuZHNhY2sgZGllIEhhZW5kZSBibHV0aWcuCkhvYm8gZ3JpbnN0LgpEdSBzYWdzdDogc28sIGFsbGUgS2xhcmhlaXRlbiBiZXNlaXRpZ3Q/CkhleGNoZW4gSG9ibyBzYWd0OiBqYSwgZGFua2UgOikKSGV4Y2hlbiBIb2JvIHRlaWx0IERpciBtaXQ6IGlzdCBtYW5jaG1hbCBkb2NoIHJlY2h0IHByYWt0aXNjaCwgZGFzcyBzbyB2aWVsZQpIZXhjaGVuIEhvYm8gdGVpbHQgRGlyIG1pdDogcGh5c2lrZXIsIGNoZW1pa2VyLCBpbmZvcyBtdWRkZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1dGxlciAoQ2FyYWRocmFzLCAgMy4gTm92IDE5OTQsIDIwOjU5OjU2KToKU2VociBodWVic2NoIDotKSBIaWVyIHNlaHQgc2VsYnN0OgoKQmVpIGRlciBDYXNpbm8tUXVlc3Q6CkltIEdhcnRlbiBkZXIgVmlsbGEuCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBub3JkZW4uCj4gbGFldXRlIGdsb2NrZQpEdSBoYXN0IGpldHp0IDE2NiBMZWJlbnNwdW5rdGUgdW5kIDI5IE1hZ2llcHVua3RlLgpEdSBoYXN0IGpldHp0IDE2NyBMZWJlbnNwdW5rdGUgdW5kIDMwIE1hZ2llcHVua3RlLgpEdSBsYWV1dGVzdCBhbiBkZXIgR2xvY2tlIHVuZCBlaW4gdGllZmVyIHNjaHdlcmVyIFRvbiBlcmZ1ZWxsdApkZW4gR2FydGVuLiBFaW4gQnV0bGVyIGxhZXNzdCBEaWNoIGhlcmVpbi4KRGllIGdyb3NzZSBWb3JoYWxsZSBkZXMgQ2FzaW5vcy4KRXMgZ2lidCB6d2VpIHNpY2h0YmFyZSBBdXNnYWVuZ2U6IHN1ZWRlbiB1bmQgbm9yZGVuLgpEaWUgYmVyZWl0cyB6aWVtbGljaCBzdGlua2VuZGUgTGVpY2hlIGVpbmVzIEJ1dGxlcnMuCgpTaWNoIGFtdWVzaWVyZW5kCiAgICAgICAgICAgICBDYXJhZGhyYXMgZGVyIGV3aWdlIFByb3BoZXQKICAgICAtIHNhdGFuaXNjaCB1bmQgYmFsZCBWZXJzZSBzY2htaWVkZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmliZWwgVjIuMCAoRmxpbnRuYWlsLCAgMy4gTm92IDE5OTQsIDIxOjIyOjEzKToKKEJlenVnOiBBcnRpa2VsIHZvbiBSb2NodXMsIE1pdCwgIDIuIE5vdiAxOTk0LCAyMToyMzoyMikKaGkuLi5pY2ggd2lsbCBqYSBuaWNodCBub2NobWFsIG5lIFplbnN1ckRpc2t1c3Npb24gYXVma29tbWVuIGxhc3Nlbi4uLjopCmFiZXIuLi53ZW5uIENhbXBpbm8ncyBXaXR6IHp1IHZlcmRhbW1lbnN3ZXJ0IHdhciEgLi4udW5kIGlociBkZXIgUHJvZidzIGRpZQpoaWVyIHJ1bXNjaGxlaWNoZW4sICB3ZWdlbiBzbyB2b3JzaWNodGlnIHNlaW4gbXVlc3N0Li4ud2llIGlzdCBkYXMgZGVubiBtaXQgc28KZWluZW0gZ3V0ZW4gKGljaCBrb2VubnRlIG1pY2ggd2Vnc2NocmVpZW4gUm9jaHVzISEhOikpIGFsbGVyZGluZ3MgYXVjaCwgdm9uCmJlc3RpbW10ZSBQZXJzb25lbmdydXBwZW4gYWxzIEhldHpzdHVlY2sgYW5nZXNlaG5kZW0gQXJ0aWtlbC4uLi5nZXJhZGUgaW4KZWluZXIga2xlcmlrYWxlbiBHZWdlbmQgd2llIE11ZW5zdGVyICl8LT49PgogICAgICBGbGludG5haWwuLi4uLi5zaWNoIGltbWVybm9jaCB3ZWdzY2hyZWllbmQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBIGRheSBpbiB0aGUgbGlmZS4uLiAoQmVydCwgIDMuIE5vdiAxOTk0LCAyMjoyMToxMik6CihCZXp1ZzogQXJ0aWtlbCB2b24gTmV4dHRyeSwgRGllLCAgMS4gTm92IDE5OTQsIDE0OjM0OjMyKQpCZXJ0IGlzdCBzdGFyayBlcnNjaHVldHRlcnQgdm9uIFRvcmluJ3MgVmVyaGFsdGVuICEKCiAgICBCZXJ0LCBuaXhtZWhyc2FnZW5rb2VubmVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWNodHVuZyBJbnNpZGVyISAoQ2F0d2VhemxlLCAgNC4gTm92IDE5OTQsIDA5OjUxOjA1KToKWWFudHJvIHRlaWx0IERpciBtaXQ6IG1hY2ggbWFsICJnb3RvIGpvZiIKRHUgdGVpbHN0IFlhbnRybyBtaXQ6IHdhcnVtPwpZYW50cm8gdGVpbHQgRGlyIG1pdDogbWFjaCBtYWwsIGJpdHRlIQpnb3RvIGpvZgpNYWdpZXIgbGVzZW4gZWggbmllIGRpZSBSYXVtYmVzY2hyZWlidW5nLi4uLgpFcyBnaWJ0IHZpZWxlIHNpY2h0YmFyZSBBdXNnYWVuZ2U6IHphcmRveiwgdW50ZW4sIGdpbGRlLCBzZWl0ZSwgbGlua3MsIHRocm9uLAphbHRhciwga2Vya2VyLCBuaXJnZW5zLCB3dW1tYmVsLCBib2luZ2Flcmdlcm4sIGhhdXNlLCBibHViLCBtYWhsemVpdCB1bmQKd29oaW4/LgpZYW50cm8gQWRkYXVyYSBtdW50ZXJ0IEdsZXRzY2hlcmZlZW4gYXVmIDopLgpFaW4gc3RvZXJyaXNjaGVyIEVzZWwuClphcmRvei4KPkR1IGJyaWNoc3Qgdm9yIExhY2hlbiB6dXNhbW1lbi4KCkljaCB3ZXR0ZSBkZW4gdmVyc3RlaHQgbmljaHQgamVkZXIgOi0pCgpZb3VycyB0cnVseSwKICAgICAgICAgICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWNodHVuZyBJbnNpZGVyISAoWWFudHJvLCAgNC4gTm92IDE5OTQsIDA5OjU1OjQyKToKKEJlenVnOiBBcnRpa2VsIHZvbiBDYXR3ZWF6bGUsIEZyZSwgIDQuIE5vdiAxOTk0LCAwOTo1MTowNSkKCkphLCBDYXQuLi4uIGRlciBBdXNnYW5nICJib2luZ2Flcmdlcm4iIGlzdCB3aXJrbGljaCBlaW4gImluc2lkZXIiIDspCgoqbGFjaCoKCiAgICAgICAgICAgICAgICAgWWFudHJvOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhZ2VzcHJvZ3JhbW0gKENhdHdlYXpsZSwgIDQuIE5vdiAxOTk0LCAxMTowOTo1MSk6CkhtLCB3ZXIgbWFsIHdhcyB3aXJrbGljaCB0b3Rrb21pc2NoZXMgbGVzZW4gd2lsbCwgc29sbHRlCnNpY2ggbWFsIGluIE1hZ2ljT2xsaXMgU2VoZXJoYXVzIGJlZ2ViZW4gdW5kIGRvcnQgZGFzCnByb2dyYW1tIGxlc2VuISBJY2ggaGFiIG1pY2ggc2NobGFwcCBnZWxhY2h0LCBLbGFzc2UgT2xsaSEgOi0pCllvdXJzIHRydWx5LAogICAgICAgICAgICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFjaHR1bmcgSGFpZGVyZmVpbmRsaWNoZXIgd2l0eiAoQXJhbnlhLCAgNC4gTm92IDE5OTQsIDEyOjQ3OjE2KToKKEJlenVnOiBBcnRpa2VsIHZvbiBTY2hydW1wZmksIFNhbSwgMjkuIE9rdCAxOTk0LCAwNzoxNTozOSkKVW5kIGljaCBkYWNodGUsIGRpZSBWZXJsZXR6dW5nZW4ga2FlbWVuIHZvbSBGYXhlbiBkZXIgQnJpZWZib21iZS4uLiBTbyBrYW5uCm1hbiBzaWNoIGlycmVuLgoKQXJhbnlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYmF5ZXJuLXByZXVzc2VuLXdpdHogKEFyYW55YSwgIDQuIE5vdiAxOTk0LCAxMjo0OTo1Myk6CihCZXp1ZzogQXJ0aWtlbCB2b24gVGhvcmluLCBNb24sIDMxLiBPa3QgMTk5NCwgMDk6NTY6MjcpCkRlbiBrYW5udCBpY2ggbWl0IHp3ZWkgS29lbG5lcm4gYXVmIGRlbSBEb20uIERhIGtvbW10IGRpZSBQb2ludGUgbm9jaCBiZXNzZXIKKHdlbm4gbWFuIEtvZWxzY2gga2Fubik6IFNUamEsIGZ1ZXIgRW5nZWxzY2hlciBzZW5uIG1lciBqYW56IHNjaG9lbiBqZW1laW4uCgpBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQmliZWwgVjIuMCAoRnJldW5kLCAgNC4gTm92IDE5OTQsIDEzOjAyOjEyKToKKEJlenVnOiBBcnRpa2VsIHZvbiBGbGludG5haWwsIERvbiwgIDMuIE5vdiAxOTk0LCAyMToyMjoxMykKSGksCmtsZXJpa2FsZXMgTXVlbnN0ZXIgaXN0IHNlaXQgZGVyIFdhaGwgYWJnZXNjaGFmZnQhCk11ZW5zdGVyIGlzdCBqZXR6dCByb3QtZ3J1ZW4hIEFsbGUgS2F0aG9saWtlbiB3ZXJkZW4gdmVyYnJhbm50Li4uCihIb2ZmZW50bGljaCBsaWVzdCBkaWVzIG5pY2h0IGRlciBEZWthbiBkZXMgRmFjaGJlcmVpY2hzCktBVEhPTElTQ0hFIFRoZW9sb2dpZS4uLiA7LSkKRWluIHdpZWRlciBsYWNoZW5kZXIgRnJldW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGFic29sdXQgdW5kaXNrcmltaW5pZXJlbmQgKEFyYW55YSwgIDQuIE5vdiAxOTk0LCAxMzowNjoxMSk6CihCZXp1ZzogQXJ0aWtlbCB2b24gU3VubnksIERvbiwgIDMuIE5vdiAxOTk0LCAwODo0Nzo0NSkKQWxzbyBkaWUgVXJoZWJlcnJlY2h0ZSBoYXQgU2NobmljayBtaXQgU2ljaGVyaGVpdCBOSUNIVCEgRGllIEdlc2NoaWNodGUgaGF0Cm1pciBtZWluIFZhdGVyIHp1bSBFaW5zY2hsYWZlbiBlcnphZWhsdCwgdW5kIGVyIGhhdCBlcyBiaXMgYXVmIGVpbmUgU3R1bmRlIG1pdApkZW0gRXJ6YWVobGVuIGdlYnJhY2h0LiBJbmRlbSBlciBkaWUgU2NoaWxka3JvZXRlbiBqYWhyaHVuZGVydGVsYW5nIGhhdCBsYXVmZW4KbGFzZW4uIFNvIG5hY2ggZGVtIE1vdHRvOiBTaWUgbGF1ZmVuIHplaG4gSmFocmUsIHNpZSBsYXVmZW4gendhbnppZyBKYWhyZS4uLgpldGMuIG5kIGltbWVyLCB3ZW5uIGRpZSBXdWVzdGUgdm9ya2FtOiAobWl0IGdlaGVpbW5pc3ZvbGxlciBTdGltbWUpIFd1ZXN0ZSAtCndlaXNzdCBkdSB3YXMgZGFzIGhlaXNzdD8gRGFzIGlzdCBoZWlzc2VyIFNhbmQgdW5kIGVpbiB2ZXJsb3JlbmVzIExhbmQgdW5kCmVyYmFybXVuZ3NscyBicmVubmVuZGUgU29sbGUgdWViZXIgYWxsZW0uCkRhZHVyY2ggd3VyZGUgZGllIFBvaW50ZSBub2NoIHdpcmt1bmdzdm9sbGVyIChnbGF1YnQgbWlyKS4KCkFyYW55YSwgZGllIGRpZXNlIEdlc2NoaWNodGUgaGV1dGUgbm9jaCBhbHMgRWluc2NobGFmZ2VzY2hpY2h0ZSBlcnphZWhsdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKenVtIHZvcmhlcmdlaGVuZGVuOiAoQXJhbnlhLCAgNC4gTm92IDE5OTQsIDEzOjEzOjMwKToKTmF0dWVybGljaCBrZWluZSBicmVubmVuZGUgU29sbGUgc29uZGVybiBTb25uZSEgRGFzIGlzdCBtaXIgamV0enQgcGVpbmxpY2guLi4KCkFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBhYnNvbHV0IHVuZGlza3JpbWluaWVyZW5kIChIYXJkaWwsICA0LiBOb3YgMTk5NCwgMTQ6MDE6MTcpOgooQmV6dWc6IEFydGlrZWwgdm9uIEFyYW55YSwgRnJlLCAgNC4gTm92IDE5OTQsIDEzOjA2OjExKQoKRHUgaGFzdCBSZWNodCwgQXJhbnlhLCBpY2ggYmluIGJlaW0gTGVzZW4gZWluZ2VzY2hsYWZlbi4gOi0pKQoKTml4IGZ1ZXIgdW5ndXQsIGVpbiBqZXR6dCB3aWVkZXIgYXVmZ2V3ZWNrdGVyCgoJCUhhcmRpbCAoZ3JpbnNlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQSBkYXkgaW4gdGhlIGxpZmUuLi4gIChLZXJtaXQsICA0LiBOb3YgMTk5NCwgMTQ6MjE6MTkpOgpBbHNvLCBpY2ggbXVzcyBEYW5jZXIgZXJzdG1hbCB6dXN0aW1tZW4genUgZGVtIHdhcyBlciB1ZWJlciBUb3JpbiBnZXNhZ3QgaGF0LAphYmVyIGRhIGljaCBudW4gbWFsIGF1Y2ggYWxzIERheCBlcndhZWhudCB3ZXJkZSBoaWVyenUgbm9jaCBtZWluIHNlbmYuLi4KYWxzbyBpY2ggYmVkYXVyZSB6dWVyc3QgZWlubWFsIFRvcmlucyBwZWlubGljaGVzIFZlcmhhbHRlbiwgZGVubiBkYXMKd2lyZnQgZWluIGFldXNzZXJzdCBzY2hsZWNodGVzIGxpY2h0IGF1Y2ggYXVmIEZpbmFsRnJvbnRpZXIuLi4uCkFsbGVyZGluZ3Mgd2lyZCBhdWNoIGluIEZpbmFsRnJvbnRpZXIgdWViZXIgZW50c3ByZWNoZW5kZSBrb25zZXF1ZW56ZW4KbmFjaGdlZGFjaHQsIGRhCnNvbGNoZSBTYWNoZW4gc2Nob24gbWVocm1hbHMgcGFzc2llcnQgc2luZC4uLgpBbHNvLCBpY2ggaG9mZmUsIGRhc3MgbmllbWFuZCwgYXVjaCBuaWNodCBEYW5jZXIgbWVpbmVuIE5hbWVuKG9kZXIgRGF4KQptaXQgZGllc2VyIFNhY2hlIHZlcmJpbmRldC4uLi51bmQuLi5EYW5jZXIuLmljaCBmYW5kIERpY2ggZWlnZW50bGljaAppbW1lciBmdXJjaHRiYXIgY29vb29sIDopCkNpYW8sS0VSTUlULURBWCB0aWVmIGdldHJvZmZlbiBvYiBkZXIgSW1hZ2VzY2hhZWRpZ3VuZy4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQSBkYXkgaW4gdGhlIGxpZmUuLi4gIChSYWlzdGxpbiwgIDQuIE5vdiAxOTk0LCAxNDozNjoyOSk6CihCZXp1ZzogQXJ0aWtlbCB2b24gS2VybWl0LCBGcmUsICA0LiBOb3YgMTk5NCwgMTQ6MjE6MTkpCkhpIQpEYSBlcyBmYXN0IGFsbGUgZ2V0YW4gaGFiZW4sIHdpbGwgaWNoIGVpbmZhY2ggbmljaHQgbmFjaHN0ZWhlbiAoOikKSWNoIGZpbmRlIGRpZSBBdG1vc3NwYWVocmUgaW0gRkYgZWlnZW50bGljaCByZWNodCBndXQgKGJpcyBqZXR6dCB3dXJkZSBtaXIKaW1tZXIgcHJvbXB0IGdlaG9sZmVuIHdlbm4gaWNoIGVpbmUgRnJhZ2UgaGF0dGUgW3dhcyBoaWVyIG5pY2h0IGFuZGVycyBpc3QhXSkKaWNoIGthbm4gbmF0dWVybGljaCBuaWNodCBmdWVyIEVpbnplbGZhZWxsZSBzcHJlY2hlbiwgZGEgaWNoIGF1Y2ggbmljaHQgc28Kb2Z0IGRhIGJpbiwgYWJlciBtZWluIEdlc2FtdHVydGVpbCBpc3Q6IERhcyBWZXJoYWx0ZW4gVG9yaW4gRGFuY2VyIGdlZ2VudWViZXIKaXN0IHdvaGwgZWluIGVpbnplbGZhbGwgKGFlaGggaWhyIHZlcnN0ZWh0IHdhcyBpY2ggbWVpbmU/KQoKLS0tUmFpc3RsaW4gKGF1Y2ggUSBpbSBGRikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggKExpLCAgNC4gTm92IDE5OTQsIDE2OjIxOjA2KToKaGV1dGUgbmFjaG1pdHRhZyBzZXR6ZSBpY2ggbWljaCBpbSBSWiBhbiBkZW4gUGxhdHosIGRlbiBBbmNhbGFnb24gZ3JhZGUgZnJlaQptYWNodC4KTmViZW4gaWhuIC11bmQgZGFtaXQgbmViZW4gbWlyLSBiZWdydWVzc2UgaWNoIGVpbmVuIEJla2FubnRlbiwgdW5kIHN0ZWxsZSB6dQptZWluZXIgRnJldWRlIGZlc3QsCmRhc3MgZXIgZ3JhZGUgYWxzIE5ldWxpbmcgKFRocm9pbikgc2VpbmUgMS5RdWVzdCBsb2VzdC4gRXIgd3Vyc3RlbHQgd2VpdGVyLAp3YWVocmVuZCBpY2ggbWljaCB1bSBtZWluZW4gS3JhbSBrdWVtbWVyZS4gRGFubjoKClBsb2V0emxpY2ggaG9lcnN0IER1IGVpbiBsYXV0ZXMgU2NobmFyY2hlbi4gVGhyb2luIGhhdCBkZW0gU2NocmF0CnNlaW4gbGFuZ2Vyc2VobnRlcyBTY2hsYWZtaXR0ZWwgZ2VicmFjaHQuCnRtIHRocm9pbiBncmF0dWxpZXJlIQpEdSB0ZWlsc3QgVGhyb2luIG1pdDogZ3JhdHVsaWVyZSEKU2NobmFyY2ggdG9ya2VsdCBsYWxsZW5kIGhlcmVpbi4KU2NobmFyY2ggdG9ya2VsdCBhdWYgU3VjaGUgbmFjaCBuZXVlbiBPcGZlcm4gZnVlciBzZWluZSBMZWJlbnNnZXNjaGljaHRlLgpUaHJvaW4gdGVpbHQgRGlyIG1pdDogRGFua2UgZnVlciBkaWUgQmx1bWVuLCB3YXIgbWVpbmUgZXJzdGUgcXVlc3QhCnRtIHRocm9pbiBpY2ggd2Vpc3MhCkR1IHRlaWxzdCBUaHJvaW4gbWl0OiBpY2ggd2Vpc3MhClRocm9pbiB0ZWlsdCBEaXIgbWl0OiA/Pz8/CnRtIHRocm9pbiBpY2ggc2l0emUgbmViZW4gZGlyIQpEdSB0ZWlsc3QgVGhyb2luIG1pdDogaWNoIHNpdHplIG5lYmVuIGRpciEKCgoodGphLCBsZWlkZXIga2FubiBpY2ggRXVjaCBzZWluZW4gR2VzaWNodHNhdXNkcnVjayBuaWNodCB6ZWlnZW4pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRUlOIFdJVFohKGhhZXR0ZSBrZWluZXIgdmVybXV0ZXQgZ2VsbD8/ISEpIChTdW5ueSwgIDQuIE5vdiAxOTk0LCAxODo0NToyMyk6CmdyYWQgZnJhZ3RlIG1pY2ggWUFOVFJPLCBvYiBlciAia29tbWVuIGR1ZXJmZSIgZGEgZmllbCBtaXIgZWluZSB1bmxhZW5nc3QKcGFzc2llcnRlIHN0b3J5IGVpbjoKZWluaWdlIG1hdGFzIGRlcyBrZmsncyBzdGFuZGVuIGluIGRlciBjYWZldGUgaXJnZW5kd28gendpc2NoZW4ga2FydG9mZmVsc2FsYXQKdW5kIHd1ZXJzdGNoZW4vZnJpa2FkZWxsZW5hdXNnYWJlLgpoYXJhbGQgaGFuZ2VsdGUgbmFjaCBkZW0ga2V0c2h1cC9zZW5mLXRhYmxldHQKdGluYSB3b2xsdGUgYXVjaCBzbyBlaW5zIHVuZCBzYWd0ZSh1ZWJyaWdlbnMgd29ydHdvZXJ0bGljaCk6CiJrYW5uc3QgZHUgbWlyIGJpdHRlIGF1Y2ggZWluZW4gcnVudGVyaG9sZW4/Igp3b3JhdWYgc2ljaCBkZXIgYW5nZXNwcm9jaGVuZSBsYXV0c3RhcmsgdW5kIGJlaSB0aW5hIHp1bSBlcnJvZXRlbiBmdWVocmVuZGUKZWNoYXVmZmllcnRlOiJ3aWVzbyBBVUNIIGVpbmVuIHJ1bnRlcmhvbGVuLWRhcyBrbGluZ3QgamEgc28gYWxzIG9iIGljaApoaWVyIHVuZCBzbyB3ZWl0ZXIuLi4uLgplciBoYXQgZGFzIG5vY2ggcGFhcm1hbCB3aWVkZXJob2x0LCBpY2gga29lbm50IG1pY2ggamV0enQgbm9jaCBzY2hsYXBwCmxhY2hlbiB1ZWJlciBkaWUgZ2VzaWNodGVyIGRlciB1bXN0ZWhlbmRlbi4uLgoKdW5kIHdlaGUgamV0enQgYnJpbmd0IHdpZWRlciBpcmdlbmR3ZXIgYWxzIHRhZ2Vzd2l0eiJpY2ggbWFnIHN1bm55cyB3aXR6ZSIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCaWJlbCBWMi4wIChLbGluZ2UsICA0LiBOb3YgMTk5NCwgMjE6NDk6NTQpOgooQmV6dWc6IEFydGlrZWwgdm9uIFJvY2h1cywgTWl0LCAgMi4gTm92IDE5OTQsIDIxOjIzOjIyKQpGSU5EIElDSCBHVVQgIQo6KSkpKSkpKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmliZWwtRnJldW5kIChPZXR0aSwgIDYuIE5vdiAxOTk0LCAxNjoyODoyNyk6Clp1ciBCaWJlbCBWMi4wIDoKQUItU08tTFVUIEdFLU5JLVRBTCAhISEhISEhISEKClp1IEZyZXVuZDoKCjEuKSBTbyBlaW5lIG9kZXIgZWluZSBhZWhubGljaGUgUmVha3Rpb24gd2FyIGRvY2ggenUgZXJ3YXJ0ZW4gZ2V3ZXNlbiwKd2VubiBtYW4gc28gcmFkaWthbCBpbiBkYXMgR2VzY2hlaGVuIGVpbmdyZWlmdC4KCjIuKSBJY2ggbGFzc2UgbWljaCBudXIgdW5nZXJlbiBhbHMgdW5xdWFsaWZpemllcnQgYmV6ZWljaG5lbiwgd2VubiBkaWUKQmVncnVlbmR1bmcgZmVobHQuLi4KCgpUc2Nob2UgbWl0IG9lKHR0aSkKCkFjaCBzbyBub2NobiBXaXR6LCBkYW1pdCBlcyBwYXNzdCAhCgpXZWxjaGVzIFRpZXIgaGF0IHNlaW4gQXJzY2hsb2NoIGF1ZiBkZW0gUnVlY2tlbiA/Pz8/PwoKCkRhcyBQb2xpemVpcGZlcmQgISEhCgpJY2ggZ2ViIHp1IGRlciBpcyBQZmVyZGVmZWluZGxpY2gsIHdhcyBzb2xscy4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaGV1dCBrZWluIHRpdGVsIChTdW5ueSwgIDcuIE5vdiAxOTk0LCAwODozOTo0OSk6CmJldm9yIGljaCBkZW4gd2l0eiBuaWVkZXJzY2hyZWliLCB3aWxsIGljaCBlcnN0IG1hbCBuZSBlcmxhdWV0ZXJ1bmcKenVtIHRoZW1hIGJsb25kaW5lbiBsb3NsYXNzZW46CndpZSBpY2ggdW5sYWVuZ3N0IGVyZnVociBzdGVodCJibG9uZGluZW4iYWxzIHN5bm9ueW0gZnVlciBmcmF1ZW4gYWxsZ2VtZWluCndvYmVpIGljaCBwZXJzb2VubDtpY2ggZGlvZSBlaW5zY2hyYWVua3VuZyB0cmVmZmVuIHd1ZXJkZSBmdWVyIGR1bW1lL2Jsb2VkZQp0dXNzaXMoYWxhIGtlbGx5IGJ1bmR5KQphYmVyIGRhcyBpc3MgamEgZGllIHJ1YnJpayB3aXR6ZSBhbHNvOgoKd2FzIHNpbmQgYmxvbmRlIGhhYXJlIG1pdCBkdW5rbGVuIHN0cmFlaG5lbj8/PwoKa3VlbnN0bGljaGUgaW50ZWxsaWdlbnohISEhISEhISEhISEhISEhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ3V5YnJ1c2g/IChDYXR3ZWF6bGUsICA3LiBOb3YgMTk5NCwgMTc6MzI6MDIpOgoKTWVya3QgaWhycz8KR3V5YnJ1c2ggdmVyc3VjaHQgenUgZmxpcnRlbiA6LSkpKQoKRmVpeGVuZCwKICAgICAgICAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZXRyaXMgYnkgSW5mb2NvbSAoRGFuY2VyLCAgNy4gTm92IDE5OTQsIDE5OjQxOjM5KToKQXVzIGVpbmVyIENvbXB1dGVyemVpdHNjaHJpZnQ6CgpGcmFnZTogV2llIGhhZXR0ZSBUZXRyaXMgd29obCBhdXNnZXNlaGVuLCB3ZW5uIGVzIGRpZSBUZXh0YWR2ZW50dXJlLVBpb25pZXJlCnZvbiBJbmZvY29tIGVyZnVuZGVuIGhhZXR0ZW4/CgpBbnR3b3J0OgpZb3UncmUgbG9va2luZyBhdCB0aGUgc2hhZnQuCkEgbGFyZ2UgcmVkIGJsb2NrLCBmb3VyIGJ5IG9uZSB1bml0LCBpcyBhYm92ZSB5b3VyIGhlYWQsIGRyb3BwaW5nIHNsb3dseS4KSXQgaGFzIGl0cyBsb25nIGVkZ2UgaG9yaXpvbnRhbGx5IGFsaWduZWQuCj50dXJuIHRoZSBibG9jawpJIGRvbid0IGtub3cgaG93IHRvICd0dXJuIHNvbWV0aGluZy4KVGhlIGJsb2NrIGRlc2NlbmRzIGxvd2VyLgo+cm90YXRlIGJsb2NrClRoZSBibG9jayByb3RhdGVzIGluIG1pZCBhaXIsIG5vdyB3aXRoIHRoZSBsb25nIGVkZ2UgdmVydGljYWxseSBhbGlnbmVkLgpUaGUgYmxvY2sgZGVzY2VuZHMgbG93ZXIuCj5tb3ZlIGJsb2NrIGxlZnQKVGhlIGJsb2NrIHNoaWZ0cyB0byB0aGUgbGVmdC4KVGhlIGJsb2NrIGRlc2NlbmRzIGxvd2VyLgo+bW92ZSBibG9jayBkb3duClRoZSBibG9jayBkcm9wcyBpbnRvIHRoZSBuYXJyb3cgZ2FwLCBmaWxsaW5nIHRoZSBmb3VyIGNvbHVtbnMuIFRoZSBjb2x1bW5zCmZsYXNoIHR3aWNlLCB0aGVuIHZhbmlzaCwgZHJvcHBpbmcgdGhlIGJsb2NrcyBhYm92ZSB0aGVtIGRvd24uCltZb3VyIHNjb3JlIGluY3JlYXNlZCBieSAyMCFdCgoKOi0pIERhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZlcm5zZWhlbiAoUm9jaHVzLCAgNy4gTm92IDE5OTQsIDIwOjU1OjI4KToKYXVzIGRlLnRhbGsuam9rZXM6CiJNZWluZSBUb2VjaHRlciBsYXNzZW4ga2VpbmVuIEZpbG0gYXVzIHVuZCB0dW4gbmljaHRzIGZ1ZXIKZGllIFNjaHVsZS4gTWVpbmUgRnJhdSBzaWVodCBzaWNoIGFsbGUgRmFtaWxpZW5zZXJpZW4gYW4gdW5kCnZlcm5hY2hsYWVzc2lndCBkZW4gSGF1c2hhbHQuIEljaCBzY2h3b2VyZTogU29iYWxkIGRpZSBGdXNzYmFsbC0Kc2Fpc29uIHZvcmJlaSBpc3QsIHppZWhlIGljaCBkZW4gU3RlY2tlciByYXVzLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoLCBpbSBFbGZlbmRvcmYuLi4gKFllbmRpLCAgOC4gTm92IDE5OTQsIDAwOjEzOjQyKToKIkF0cmVpZGVzIGhhdCBnZXJhZGUgZGllIFZlcmJpbmR1bmcgenUgTW9yZ2VuR3JhdWVuIGdla2FwcHQuCiBQbG9ldHpsaWNoIHdlaWNodCBhbGxlcyBMZWJlbiBhdXMgQXRyZWlkZXMuCiBBdHJlaWRlcyBzYWd0OiA8SGljayE+IgoKRHJvbGxpZywgd2FzPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGZXJuc2VoZW4gKFNjaGxvbnosICA4LiBOb3YgMTk5NCwgMTA6MTQ6NDkpOgooQmV6dWc6IEFydGlrZWwgdm9uIFJvY2h1cywgTW9uLCAgNy4gTm92IDE5OTQsIDIwOjU1OjI4KQoKLi4uLi4gdW5kIG1laW4gU29obiBsZWJ0IG51ciBub2NoIGltIE1VRCAhCgpTY2hsb256IChiaW4gaWNoIGRlciBTb2huPykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhpc3RvcnkhIChDYXR3ZWF6bGUsICA4LiBOb3YgMTk5NCwgMTg6MzM6MTcpOgpBbHNvLCBpY2ggZXJpbm5lcmUgbWljaCBub2NoIHNlaHIgZ2VuYXUsIGFuIGRlbgphbGxlcmFsbGVyZXJzdGVuIFdpdHogZGVyIGluIGRpZXNlciBSdWJyaWsgc3RhbmQ6CgpGbGllZ3QgbmUgRnVua3Rpb24gZHVyY2ggZGVuIEhpbGJlcnRyYXVtLgpTaWUgdHJpZmZ0IGF1ZiBuZW4gRGlmZmVyZW50aWFsb3BlcmF0b3IuClNhZ3QgZGllIEZ1bmt0aW9uOiBOYSBkdSBibG9lZGVyIE9wZXJhdG9yPwpTYWd0IGRlciBPcGVyYXRvcjogUGFzcyBhdWYsIHNvbnN0IGRpZmZlcmVuemllcmUgaWNoIERpY2ggenUgMC4KU2FndCBkaWUgRnVua3Rpb246IGhvZWhob2VoLCBnZWh0IGphIGdhciBuaWNodCwgaWNoIGJpbiBlIGhvY2ggeC4KU2FndCBkZXIgT3BlcmF0b3I6IFRqYSwgdW5kIGljaCBiaW4gZCBuYWNoIGR5LgoKWVQsCiAgICAgQ2F0d2VhemxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpjb3JlIChDYXR3ZWF6bGUsICA4LiBOb3YgMTk5NCwgMTk6Mzc6MzcpOgpHcmFkZSBnZXNlaGVuOgoKRmVuc3RlcjoKCkNvcmUgZG9lcyBub3QgZXhpc3QuIFlvdSBjYW46CgogIEJ1dHRvbjogIENhbmNlbAogIEJ1dHRvbjogIFRyeSB0byBjcmVhdGUgaXQKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJlaXMgKEdyaW1tYm9ybiwgIDguIE5vdiAxOTk0LCAxOTo0NTo0OCk6CgpEYW1pdCBlcmhhZWx0IENhdCogZGVmaW5pdGl2IGRlbiBQcmVpcyBmdWVyIGRlbiBhZWx0ZXN0ZW4gZ2Vwb3N0ZXRlbiBXaXR6LApvZGVyPwoKV29iZWkgbWlyIGRlciBNYXRoZW1hdGlrZXJ3aXR6IGVpbmZhZWxsdDogU2VpIGVwc2lsb24ga2xlaW5lciBOdWxsLiAoZGFzIHdhcgpzY2hvbiBkZXIgV2l0eikuIElzdCB3b2hsIGVpbiBJbnNpZGVyLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQcmVpcyAoQ2FyYWRocmFzLCAgOC4gTm92IDE5OTQsIDE5OjQ4OjA1KToKKEJlenVnOiBBcnRpa2VsIHZvbiBHcmltbWJvcm4sIERpZSwgIDguIE5vdiAxOTk0LCAxOTo0NTo0OCkKRGVyIGt1ZXJ6ZXN0ZSBQYXNzYXVlciBXaXR6IHdhciBtYWw6CgpDaXNjbyBsZWJ0LgooQ2lzY28gaXN0IGRhcyBHYXRld2F5IGZ1ZXIgUGFzc2F1KQoKICAgICAgICAgIENhcmFkaHJhcyBkZXIgZXdpZ2UgUHJvcGhldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRVUgKEdyaW1tYm9ybiwgIDkuIE5vdiAxOTk0LCAwNDozNzowNCk6CgpTbywgaGllciBpbiBTY2h3ZWRlbiB0b2J0IGphIGRlciBLYW1wZiB1bSBkaWUgVm9sa3NhYnN0aW1tdW5nIHp1ciBFVS4gVmllbGUKQXJndW1lbnRlIGZ1ZXIsIHZpZWxlIGRhZ2VnZW4uIERhcyBuZXR0ZXN0ZSBkZXIgTmVpbi9TZWl0ZSB3b2xsdGUgaWNoIG1hbCBoaWVyCmRlciBicmVpdGVuIE9lZmZlbnRsaWNoa2VpdCBiZWthbm50IG1hY2hlbi4gRGF6dTogV2FzIGluIEQgZGllIE9zdGZyaWVzZW4gb2RlcgpCYXllcm4sIHNpbmQgaW4gUyBkaWUgTm9yd2VnZXIuCgpXYXMsIGhpZXIgYXVmIGRlciBIYWxiaW5zZWwgaXNvbGllcnQgd2VyZGVuPyBadXNhbW1lbiBtaXQgZGVuIE5vcndlZ2Vybj8/Pz8KCkhtbSwgZGFzIHdhciBudW4gZWluIEFyZ3VtZW50IGZ1ZXIgZGllIEphLVNlaXRlIHVuZCBkZXIgLyBvYmVuIHNvbGx0ZSBlaW4gLQpzZWluLiBXaXJkIFplaXQsIGRhc3MgaWNoIHNjaGxhZmVuIGdlaGUuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTnVyIGVpbiBXaXR6IC4uLiAoR2VvcmcsICA5LiBOb3YgMTk5NCwgMDk6MTY6MDcpOgpKZXN1cyBnZWh0IGR1cmNoIGRpZSBXdWVzdGUuIFBsb2V0emxpY2ggdHJpZmZ0IGVyIGVpbmVuIGFsdGVuIE1hbm4KZGVyIHNjaG9uIGtuYXBwIHZvciBkZW0gVmVyZHVyc3RlbiBpc3QuCkplc3VzIGZyYWd0OiBXYXMgaGFzdCBkdSBkZW5uIGFsdGVyIE1hbm4gPwpEZXIgTWFubiBzYWd0OiBJY2ggc3VjaGUgbWVpbmVuIFNvaG4sIGRlciBhbiBIYWVuZGVuIHVuZCBGdWVzc2VuCmFuZ2VuYWdlbHQgd3VyZGUuCkplc3VzOiBzIFZBVEVSICEhISEhCk1hbm4gUElOT0NDSU8gISEhIQoKRGFzIHdhcnMKICAgICAgR2VvcmcKUC5zLjogOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQcmVpcyAoRW5neXd1Y2ssICA5LiBOb3YgMTk5NCwgMDk6MTY6MzgpOgooQmV6dWc6IEFydGlrZWwgdm9uIEdyaW1tYm9ybiwgRGllLCAgOC4gTm92IDE5OTQsIDE5OjQ1OjQ4KQoKRGVuIE1hdGhlbWF0aWtlcndpdHoga2VubiBpY2ggbm9jaCB3YXMgYmVzc2VyOgoKU2VpIEVwc2lsb24gc28ga2xlaW4sIGRhc3MgRXBzaWxvbi1oYWxiZSBuZWdhdGl2LgoKCkVuZ3l3dWNrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NobiB3aXR6IChDYXR3ZWF6bGUsICA5LiBOb3YgMTk5NCwgMDk6NDk6MDYpOgpBcm1lciBDaWZlci4KQ0hlbWlrZXIgc2luZCBkb2NoIHNvd2llc28gZXR3YXMgd2VuaWdlciB2ZXJzdGFlbmRuaXNmcmV1ZGlnIG9kZXIgOi0pKSkKKnNjaHVlcnIgUGh5c2lrZXItQ2hlbWlrZXItSGFzcyogKmdyaW5zKgpXaWUgd2FlcnMgZGVubiBoaWVybWl0OgoKVHJlZmZlbiBzaWNoIHp3ZWkgUGh5c2lrZXIuClNhZ3QgZGVyIGVpbmU6IEljaCBoYWIgamV0enQgZGllIFdlbHRmb3JtZWwgZW50d2lja2VsdC4KRGVyIGFuZGVyZTogRWNodD8gVG9sbC4gRGFubiBiZXJlY2huZSBtaXIgZG9jaCBtYWwgYWxsZXMgdm9tCiBQZmVyZC4KRGVyIGVpbmU6IE9rLCBhYmVyIGRhcyBkYXVlcnQgZWluIGJpc3NjaGVuLgpEaWUgYmVpZGVuIHRyZWZmZW4gc2ljaCBlaW4gcGFhciBvY2hlbiBzcGFldGVyIHdpZWRlci4KJ05hPyBXYXMgaGFzdGUgZGVubiBzbyByYXVzYmVrb21tZW4/JwonIEFsc28sIG5laG1lbiB3aXIgbWFsIGFuIGRhcyBQZmVyZCBpc3QgZWluZSBLdWdlbCAuLi4uLi4gJwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBpbm5lciBLbmVpcGUuLi4gKEJ1bmdsZSwgIDkuIE5vdiAxOTk0LCAxMzowNDoxMCk6CkluIEZyYW5rJ3MgQWJlbnRldXJlci1LbmVpcGUKCkFuYXRvbCBrb21tdCBhbi4KQW5hdG9sIHNhZ3Q6aGFsbG8gYnVuZ2xlIQpEdSBzYWdzdDogSGFsbG9lY2hlbiEgOikKQW5hdG9sIGZyYWd0IERpY2g6IHdpZSBsZXJudCBtYW4gZGFzIGthZW1wZmVuPwpmaW5nZXIgYW5hdG9sClZvbGxlciBOYW1lOiBBbmF0b2wgc2l0enQgZW50c3Bhbm50IGF1ZiBkZXIgQmFuay4KKEljaCBkZW5rIG1pcixkYXMga2FubiBkb2NoIG51ciAnbiBad2VpdGllIHZvbiAnbmVtIE1hZ2llciBzZWluISA6KQpEdSBzYWdzdDogRGlyIGdsYXViIGljaCBuaXghIDopCkR1IGdyaW5zdC4KRHUgc2Fnc3Q6ICJWb2xsZXIgTmFtZTogQW5hdG9sIHNpdHp0IGVudHNwYW5udCBhdWYgZGVyIEJhbmsuIgpBbmF0b2wgdGVpbHQgRGlyIG1pdDogZWhybGljaC4uLi4gbmF0dWVybGljaCEKQW5hdG9sIGZyYWd0IERpY2g6IFdpZXNvIEJBTks/Pz8KRHUgc2Fnc3Q6IEphIGRhcyBmcmFnIGljaCBtaWNoIGF1Y2guIDopCkR1IHNhZ3N0OiBobS4uLndlciBiaXN0J24gZHUgd2lya2xpY2g/CkFuYXRvbCBmcmFndCBEaWNoOiBIYWVoPz8KRHUgc2Fnc3Q6IFdvIGhhc3QgZHUgZGVubiBkZWluZW4gTmFtZW4gaGVyPwpBbmF0b2wgc3RlaHQgZW50c3Bhbm50IHZvbiBkZXIgQmFuayBhdWYsIGJlcmVpdCB6dSBuZXVlbiBBYmVudGV1ZXJuLgpEdSBzYWdzdDogSHVjaCEKZmluZ2VyIGFuYXRvbApWb2xsZXIgTmFtZTogQW5hdG9sIGRlciBob2ZmbnVuZ3N2b2xsZSBBbmZhZW5nZXIKRHUgc2Fnc3Q6IElzIGphIGNvb2whCkFuYXRvbCB0ZWlsdCBEaXIgbWl0OiBpY2ggaGFiIG1pY2ggdm9yaGluIGF1ZiBuZSBiYW5rIGdlc2V0enQuLi4gdW5kCkFuYXRvbCB0ZWlsdCBEaXIgbWl0OiB2ZXJnZXNzZW4gd2llZGVyIGF1Znp1c3RlaGVuCkR1IGJyaWNoc3Qgdm9yIExhY2hlbiB6dXNhbW1lbi4KCgpNaXQgemllbWxpY2ggd2VuaWcgVmVydHJhdWVuIGluIGRpZSBCYW5rZXIgdm9uIE1HIC0gRXVlciBhbGxlciBCdW5nbGUgOykKClBTOiBNYW4gbXVzcyBzaWNoIGRhcyBtYWwgdm9yIEF1Z2VuIGhhbHRlbjogRGEgbGFldWZ0IGRpZXNlciBhcm1lIE1lbnNjaCBkaWUKZ2FuemUgWmVpdCBtaXQgJ25lciBCYW5rIGFtIEhpbnRlcm4gcnVtLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbHVnemV1Zy4uLiAoTWVwaGlzdG8sICA5LiBOb3YgMTk5NCwgMTQ6MjA6NTEpOgpJY2ggd2Vpc3MgZXIgaXN0IGFsdCwgYWJlcjoKCkVpbiBCdXJnZW5sYWVuZGlzY2hlcyBGbHVnemV1ZyBpbSBBbmZsdWcgYXVmIFdpZW4tU2Nod2VjaGF0LgoKU2FndCBkZXIgUGlsb3QgenUgQ29waWxvdDoKCktvbWlzY2hlIExhbmRlYmFobiBoYWJlbiBkaWUgaGllciwgMzBtIGxhbmcgdW5kIDNrbSBicmVpdC4uLgoKRGFzIHdhcnMgZGFubi4uCk1lcGgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNhZ3QgZWluIEhhc2UgOiAoU2NobG9ueiwgIDkuIE5vdiAxOTk0LCAxODozNzo1Mik6CgpIYXNjaHQgZHUgSGFzY2hpc2NoIGluIGRlciBUYXNjaGUsCkhhc2NodCBkdSBpbW1lciB3YXNjaCB6dW0gTmFzY2hlLgoKU2NobG9uegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV28gd2lyIGdlcmFkZSBhbHRlIFdpdHplIGF1c2tyYW1lbjogKFllbmRpLCAgOS4gTm92IDE5OTQsIDIwOjQ4OjU2KToKCldhcyBoYXQgNCBCZWluZSB1bmQgZWluZW4gQXJtPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbnR3b3J0OiBCVUxMVEVSUklFUiBBVUYgREVNIEtJTkRFUlNQSUVMUExBVFohISEKCiAgICAgKmJydWFoYWhhYWFhISEhKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJXIHdpdHplIChCbGVlbHVtcGUsIDEwLiBOb3YgMTk5NCwgMTE6NDE6MDUpOgpTbyBtYWwgZWluIG1pbGl0YWVyaXNjaGVyIHdpdHouIFZlcm9lZWZlbnRsaWN0IGluIFNEUiAzCm9kZXIgUmFkaW8gZnVlciBkZW4gV2lsZGVuIFN1ZWRlbiBhbHMgV2FybnVuZwp3ZWdlbiBkZXIgSGVyYnN0bWFub2V2ZXIuCgpUcml0dCBuaWUgYXVmIGVpbmVuIGdydWVuZW4gU3RlaW4sCmVzIGtvZW5udCBlaW4gR3JlbmllIGRydW50ZXIgU2Vpbi4KCmZ1ZXIgYWxsZSBuaWNodCBnZWRpZW50ZW4uIEdyZW5pZSA9IEdyZW5hZGllciBvZGVyIGF1Y2ggRnVzdm9say4KZXIgdHJpdHQgbWVpc3QgZ2VidWVuZGVsdCBhdWYgYmlzIHp1IDEwIE1hbm4gdW5kIHRyYWVndCBzZWx0c2FtZQpHZXdhZW5kZXIgKCBzdGVodCBkYXMgbmljaHQgYXVjaCBpbiBkZXIgQmJlbCA/ICpncmlucyAqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCVyB3aXR6ZSAoQmxlZWx1bXBlLCAxMC4gTm92IDE5OTQsIDExOjQzOjIyKToKV2lzc3QgaWhyIHdpZSBlaW4gRmFsbHNjaGlybWphZWdlciBsYW5kZXQgPwoKCgoKCgptaXQgZGVyIDUgUHVua3QgbGFuZHVuZy4KRnVzcyAsIEFyc2NoICggbWFuIHZlcnplaWhlIGRlbiBBdXNkcnVjayApICwgS29wZiAsIEtvcGYgLCBLb3BmLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5lciAoQmxlZWx1bXBlLCAxMC4gTm92IDE5OTQsIDExOjQ1OjQ3KToKS2VubnQgSWhyIGRlbiBhbHMgZGVyIEtvaGwgIG1pdCBlaW5lbSBTdHJpY2sgaW4gZGVuIFdhbGQgZ2VodCA/Pz8KCgoKCgoKCgoKCgoKCgoKCgoKCmljaCBsZWlkZXIgYXVjaCBuaWNodC4gQWJlciBlciBmYWVuZ3QgU0VIUiBndXQgYW4gKiBncmlucyAqCgpQUyBpY2ggaGFiIG5pY2h0cyBnZWdlbiBLb2hsLgpuaWNodHMgd2lya3NhbWVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCVyBXaXR6IChCb21tZWwsIDEwLiBOb3YgMTk5NCwgMTE6NTM6MTcpOgpTdGFuZGFyZGZldWVya29tbWFuZG8gZGVyIEFydGlsbGVyaWU6CkdhbnplIE5BVE8gYXVmIDEwMCBrbSBRdWFkcmF0IE0gSyAsMiBHcnVwcGVuIE5hcGhhbG0gdW5kIGF0b21hcgppbSB3ZWNoc2VsIGF1ZiBlaW56ZWxuZW4gU2NodWV0emVuIG1pdCBhYmdlcmlzc2VuZW4gQmVpbmVuIGltIFJ1ZWNrenVnLApHcmllY2hlbmxhbmQgd2llZGVyaG9sdCB6dXIgS29udHJvbGxlIQpFZmZla3RpdiBvZGVyID8/ICoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCVyB3aXR6ZSAoQm9tbWVsLCAxMC4gTm92IDE5OTQsIDEyOjA0OjE3KToKU3RpbW10IGVzIGRhcyBkaWUgYnVuZGVzd2VociB1bnNlbGJzdHN0YWVuZGlnIG1hY2h0ID8KLS0tIFdlaXNzIG5pY2h0LCBkYSBtdXNzIGljaCB6dWVyc3QgbWVpbmVuIHNwaWVzcyBmcmFnZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bml3aXR6IChCbGVlbHVtcGUsIDEwLiBOb3YgMTk5NCwgMTI6MDU6MjUpOgpkZWZpbml0aW9uIGRlciBTY2hyYWVnZSBpbiB0ZWNobmlzY2hlbiBzaW5uCmplIHNjaHJhZWdlciBkYXMgQlJSUlJSUlJSUlJUVApqZSBrdWVyemVyIGRhcyBTU1NTU1NTU1NTU1QKamUgZWhyIGRlciBCVU1TCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCVyB3aXR6ZSAoQm9tbWVsLCAxMC4gTm92IDE5OTQsIDEyOjA3OjEyKToKTWFuIGRyZWhlIGRlbiBzcGllc3Mgc29sYW5nZSwgYmlzIGRpZSBTQVUgZ2FyIGlzdCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2gnbiBXaXR6Li4uIChFbmd5d3VjaywgMTAuIE5vdiAxOTk0LCAxMjo0ODo0OSk6ClRqYS4uLmljaCB3ZWlzcyBqZXR6dCBuaWNodC4uLiBHZWhvZXJ0IGRlciBOYWNoIFdpdHplLCBTY2htYXJybiBvZGVyIEt1bHR1cj8KCkFsc286IFRyZWZmZW4gc2ljaCB6d2VpIEJyYXRzY2hpc3Rlbi4KRGVyIEVyc3RlOiBIYWxsbywgd2FzIGhhc3QgRHUgZGVubiBzbyBhbSBXb2NoZW5lbmRlIGdlbWFjaHQ/CkRlciBad2VpdGU6IEljaCBoYWIgU2VjaHplaG50ZWwgZ2V1ZWJ0LgpEZXIgRXJzdGU6IFVuZD8gS2xhcHB0cz8KRGVyIFp3ZWl0ZTogR2FueiBndXQsIHNvbGwgaWNoIERpciBtYWwgZWluZW4gVm9yc3BpZWxlbj8KCi4uLmhhdCB3YWhyc2NoZWlubGljaCB3aWVkZXIga2VpbmVyIHZlcnN0YW5kZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NoJ24gV2l0ei4uLiAoQXJhbnlhLCAxMC4gTm92IDE5OTQsIDE2OjA5OjA1KToKIyEgcm49RW5neXd1Y2sgcnQ9Nzg0NDY4MTI5CktsYXIgaGFiIGljaCBkZW4gVmVyc3RhbmRlbi4uLiBPZGVyIGRlbjoKClp3ZWkgS29udHJhYmFzc2lzdGVuIGJlaW0gS29uemVydDoKIzE6IFNhZyBtYWwsIGhhc3QgRHUgZGVpbiBJbnN0cnVtZW50IGhldXQgdWViZXJoYXVwdCBnZXN0aW1tdD8KIzI6IFdpZXNvLCBkaWUgU2FpdGVuIHNpbmQgZG9jaCBub2NoIGFsbGUgc3RyYWZmIQoKQXJhbnlhCiAgICAgIGZpbmRldCBkZW4gV2l0eiBrbGFzc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogd2l0eiBtaXQgYnVsbHRlcnJpZXIgKEhvYm8sIDEwLiBOb3YgMTk5NCwgMTY6MzA6NTEpOgojISBybj1TbWF1ZyBydD03ODQ0NTU5MTQKV0FTIGhhYmVuIGVpZ2VudGxpY2ggUmVha3Rpb25lbiB6dSBXaXR6ZW4gKHouQi4gKlBSVVNUKiB1bmQgKmJydWVsbCogaW4gZGVyCldpdHplcnVicmlrIHp1IHN1Y2hlbj8KSWNoIGZyZXUgbWljaCBpbW1lciBhdWYgdmllbGUgV2l0emUsIHdlbm4gaWNoIHNlaGUgOkFydGlrZWwgNDIgdm9uIDU0ClVuZCBkYW5uIHNpbmQgZGFzIG51ciBzbyAuLi4uLi4uLi4uLi4uLiBCZW1lcmt1bmdlbiA6KAoKICAgICAgICAgICAgICAgICAgICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCcmF0c2NoaXN0ZW53aXR6ZSAoR3JpbW1ib3JuLCAxMC4gTm92IDE5OTQsIDE3OjIwOjU3KToKCkFsc28sIGhpZXIgZWluZSBBdXN3YWhsIGRlciBTYW1tbHVuZyB2b24gQnJhdHNjaGlzdGVud2l0emVuIGVpbmVzIEdlaWdlcnM6CgpXaWVzbyBrYW5uIGVpbiBCcmF0c2NoaXN0IG1pdCBlaW5lbSBNZXNzZXIgaW0gUnVlY2tlbiBuaWNodCBzcGllbGVuPwpFciBrYW5uIHNpY2ggbmljaHQgYW5sZWhuZW4uCgpPZWZmbmV0IGVpbiBCcmF0c2NoaXN0IHNlaW5lbiBLYXN0ZW4sIHNjaGF1dCBoaW5laW4gdW5kIHNhZ3Q6IE1pc3QsIHNjaG9uCndpZWRlciBlaW5lIFNlaXRlIHZlcmZhdWx0IQoKRGVyIERpcmlnZW50IHdpbGwgZGllIFByb2JlIGJlZ2lubmVuIHVuZCBzaWVoLCBkYXNzIGVpbiBCcmF0c2NoaXN0IHVuZCBlaW4KUXVlcmZsb2V0aXN0IGZlaGxlbi4gRXIgZ2VodCBzaWUgc3VjaGVuIHVuZCBmaW5kZXQgc2llLCB3aWUgc2ljaCBmdWVyY2h0ZXJsaWNoCnBydWVnZWxuLiBFciB0cmVubnQgZGllIGJlaWRlbiB1bmQgZnJhZ3QgbmFjaCBkZXIgVXJzYWNoZS4gU2FndCBkZXIKQnJhdHNjaGlzdDogRGllc2VyIE1pc3RrZXJsIGhhdCBtaXIgZWluZSBTZWl0ZSB2ZXJzdGltbXQgdW5kIHdpbGwgbWlyIG5pY2h0CnNhZ2VuLCB3ZWxjaGUhCgpFaW4gQnJhdHNjaGlzdCB3aXJkIHBlbnNpb25pZXJ0IHVuZCBrb21tdCBtaXQgZGVtIEJyYXRzY2hlbmthc3RlbiB1bnRlcm0gQXJtCm5hY2ggSGF1c2UuIFNjaGF1dCBzZWluZSBGcmF1IGVudGdlaXN0ZXJ0IGF1ZiBkZW4gS2FzdGVuIHVuZCBmcmFndDogV2FzIGlzdApkYXMgZGVubj8KCkhtbSwgZGFzIHJlaWNodCBkb2NoIGZ1ZXJzIEVyc3RlLCBvZGVyIG5pY2h0PyBNaXIgZmFsbGVuIGpldHp0IHNvIHNwb250YW4gdW5kCnVudm9yYmVyZWl0ZXQga2VpbmUgbWVociBlaW4uLi4KCkhvY2htdXNpa2FsaXNjaCwKICAgICAgICAgICAgICAgIEdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5nZXdhbmR0ZSBQaHlzaWshIChLcmV0ZWssIDEwLiBOb3YgMTk5NCwgMTk6MzA6MjQpOgpIaWVyIG1hbCBlaW5lciwgZGVyIHp1ciBaZWl0IGFuIGRlbSBDb2xsZWdlIGt1cnNpZXJ0LCB3byBpY2ggenVyIFplaXQgYmluOgoKVGhlIGFuZ2xlIG9mIHRoZSBkYW5nbGUKaXMgaW52ZXJzZWx5IHByb3BvcnRpb25hbAp0byB0aGUgaGVhdCBvZiB0aGUgbWVhdC4KCigxLiBHZXNldHogZGVyIEZsZWlzY2hlcndhZXJtdW5nIHVudGVyIEJlcnVlY2tzaWNodGlndW5nIGRlciBiZXRlaWxpZ3RlbgogV2lua2VsLi4uKQoKCmMgdSBsOGVyLAogICAgS3JldGVrLCBkZXIgRnJlaXplaXQtQW1pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWxhZWNodGVyIChHcmltbWJvcm4sIDEwLiBOb3YgMTk5NCwgMjA6MTc6MjUpOgoKQmV6dWc6IHouQi4gQXJ0aWtlbCB2b24gUXVpbGxpYW4sIEJlbGRpbiwgU2lsdmFuYS4gVW0gbnVyIGVpbmlnZSB6dQplcndhZWhuZW4uIFVuZCBhdWYgZGVyIHBvc2l0aXZlbiBTZWl0ZTogSG9iby4KU2FjaHQgbWFsLCBtdXNzIGRhcyB3aXJrbGljaCBzZWluLCBkYXNzIGlociBoaWVyIGluIGRlciBSdWJyaWsgZXVjaCBkcnVlYmVyCmF1c2xhc3N0LCB3aWUgZ3V0IGlociBkaWUgV2l0emUgZmFuZGV0IChvZGVyIHdvaGVyIGlociBkaWUga2FubnRldCk/IFNvb29vbwpsdXN0aWcgZmluZGUgaWNoIGRpZXNlIEJlaXRyYWVnZSBudW4gd2lya2xpY2ggbmljaHQuIFZpZWxsZWljaHQgc29sbHRlIG1hbgplaW5lIFJ1YnJpayBnZWxhZWNodGVyIGVpbmZ1ZWhyZW4gZnVlciBzb3dhcy4gV2FlcmUgZGllIGJpc2hlciBlaW56aWdlIFJ1YnJpaywKZGllIGljaCBkYW5uIGFiYmVzdGVsbGVuIHd1ZXJkZS4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiB3aXR6IG1pdCBidWxsdGVycmllciAoSGlnaGxhbmRlciwgMTEuIE5vdiAxOTk0LCAxMToxNTozMCk6CiMhIHJuPUhvYm8gcnQ9Nzg0NDgxNDUxCkRpZSBSZWFrdGlvbmVuIGhhYmVuIG5peCBtaXQgZGVyIEdydXBwZSB6dSB0dW4sIG5hIGphLCBuaWNodCB2aWVsLgpEZXN3ZWdlbiBoYWIgaWNoIG1hbCB3aWVkZXIgYXVmZ2VyYWV1bXQsIHdhcyBpY2ggYXVjaCBpbiBadWt1bmZ0IGFiIHVuZAphbiB0dW4gd2VyZGUuIEVyZ286IEpva2VzIG9ubHksIHBsZWFzZS4gOj4KT2JKOiBMaWViZXIgYnVkZGhpc3Rpc2NoZXMgU3RhbmRlc2FtdCBhbHMgU3RhdGlzdGlzY2hlcyBCdW5kZXNhbXQuCiAgSGlnaGxhbmRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBtZWhyIEJyYXRzY2hlbi4uLi4gKEFudGhlYSwgMTEuIE5vdiAxOTk0LCAxMToyMzo0NCk6CkluIGVpbmVtIE9yY2hlc3RlciB3aXJkIGRlciBEaXJpZ2VudCBrcmFuay4gRGEgZWluIEJyYXRzY2hpc3QgZGlyaWdpZXJlbgprYW5uLCBiaXR0ZXQgbWFuIGlobiwgc28gbGFuZ2UgYXVzenVoZWxmZW4sIGJpcyBEZXIgRGlyaWdlbnQgd2llZGVyIGdlc3VuZAppc3QuIE5hY2ggMyBXb2NoZW4ga29tbXQgZGVyIERpcmlnZW50IHdpZWRlciwgZGVyIEJyYXRzY2hpc3QgZ2VodCB3aWVkZXIgYXVmCnNlaW5lbgpQbGF0ei4gRGEgZnJhZ3QgaWhuIHNlaW4gTmFjaGJhcmJyYXRzY2hpc3Q6CiAgU2FnIG1hbCwgd28gd2Fyc3QgRHUgZGVubiBkaWUgbGV0enRlbiAzIFdvY2hlbj8KCkFudGhlYSAoc3BpZWx0IG5pY2h0IEJyYXRzY2hlLi4uIHp1bSBHbHVlY2sgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBtYXRoZW1hdGlrZXJ3aXR6IChPcmt0b2V0ZXIsIDExLiBOb3YgMTk5NCwgMTI6MDg6NTApOgpIYWxsbwplaWdlbnRsaWNoIGlzdCBkaWUgVWViZXJzY2hyaWZ0IGphIHNjaG9uIGVpbiBXaXR6IGZ1ZXIgc2ljaC4uLi4gYWJlciBoaWVyCmtvbW10IG5vY2ggZGVyIGVyc3RlLi4uCkVpbiBFeHBlcmltZW50YWxwaHlzaWtlciwgZWluIHRoZW9yZXRpc2NoZXIgUGh5c2lrZXIgdW5kIGVpbiBNYXRoZW1hdGlrZXIKbmVobWVuIGFuIGVpbmVtIFZlcmhhbHRlbnNmb3JzY2h1bmdzZXhwZXJpbWVudCB0ZWlsLgpKZWRlciBkZXIgZHJlaSB3aXJkIGFsbGVpbmUgaW4gZWluZW4gQWJnZXNjaGxvc3NlbmVuIHJhdW0gZ2VzcGVycnQgKGZ1ZXIgZWluZQpXb2NoZSkgLiBBbHMgTmFocnVuZyBoYXQgamVkZXIgbnVyIGVpbmUgRG9zZSwgYWJlciBpbiBkZW4gcmFldW1lbiBiZWZpbmRldApzaWNoIGtlaW4gd2Vya3pldWcgenVtIG9lZmZuZW4gZGVyIGRvc2VuLgpOYWNoIGVpbmVyIHdvY2hlIHdlcmRlbiBkaWUgVHVlcmVuIHdpZWRlciBnZW9lZmZuZXQuLi4KSW0gUmF1bSBtaXQgZGVtIGV4cC5QeXNpa2VyIHNpbmQgdWViZXJhbGwgS2F0c2NoZW4gaW4gZGVuIFdhZW5kZW4sIGRpZSBEb3NlCmlzdCBhdWYgdW5kIGRlciBleHAuIFBoeXNpa2VyIGlzdCB6dWZyaWVkZW4uCkltIFJhdW0gbWl0IGRlbSB0aGVvci5QeXNpa2VyIGlzdCBudXIgZWluZSBtYWNrZSBpbiBkZXIgd2FuZCwgZGllIERvc2UgaXN0CmF1ZiB1bmQgYXVjaCBlciBpc3QgenVmcmllZGUoZXIgaGF0IHZvcmhlciBCZXJlY2huZXQsIHVudGVyIHdlbGNoZW0gd2lua2VsIHVuZAptaXQgd2VsY2hlciBLcmFmdCBlciBkaWUgRG9zZSBnZWdlbiBkaWUgd2FuZCB3ZXJmZW4gbXVzcykuCkFscyBtYW4gZGllIGRyaXR0ZSBUdWVyZSBvZWZmbmV0LCBzaWVodCBtYW4gZWluZW4gdG90YWwgYXVzZ2VodW5nZXJ0ZW4KbWF0aGVtYXR0aWtlciB2b3IgZWluZXIgZ2VzY2hsb3NzZW5lbiBEb3NlIHNpdHplbiB1bmQgbWl0IHRvbmxvc2VyIHN0aW1tZQptdXJtZWxuIDogSWNoIGRlZmluaWVyZSBkaWVzZSBEb3NlIGFscyBvZmZlbiAgIEljaCBkZWZpbmllcmUgZGllc2UgRG9zZSBhbHMKb2ZmZW4uLi4uLi4uLi4uLi4KCgpQUyBhbHMgZXhwLiBQaHlzaWtlciwgZGVyIGtlaW5lIHRoZW9yLCBQaHlzaWtlciBsZWlkZW4ga2Fubiwga29lbm50ZSBtYW4gaWhuCmF1Y2ggZXR3YXMgYW5kZXJzIGVyemFlaGxlbi4uLi4gOgpCZWltIG9lZmZuZSBkZXIgZXJzdGVuIFR1ZXJlIHNpdHp0IGRlciB0aGVvci5QaHlzaWtlciBpbSBSYXVtLCB2aWVsZSBLYXRzY2hlbgppbiBkZXIgd2FuZC4gRXJrbGFlcnVuZyA6IGVyIGhhdCB6d2FyIGRlbiB3aW5rZWwgdW5kIGRpciBLcmFmdCBiZXJlY2huZXQsIGFiZXIKZXIgaGF0dGUgbmljaHQgZGllIFByYWt0aXNjaGUgZXJmYWhydW5nIHVtIGRhcyBvaG5lIEhpbGZzbWl0dGVsIGluIGRpZSBUYXQKdW16dXNldHplbi4uLi4uCkltIDJ0ZW4gcmF1bSBkZXIgZXhwLlBoeXNpa2VyLCBudXIgZWluZSBrYXRzY2hlIGluIGRlciBXYW5kLiBlcmtsYWVydW5nIDoKZ2FueiBrbGFyLCBhbHMgRXhwZXJpbWVudGF0b3IgaGF0IG1hbiB2aWVsIGVyZmFocnVuZyB1bmQgUHJheGlzLCBkYWhlciBoYXQgZWluCld1cmYgZ2VudWVndC4uLi4KCgpJY2ggYml0dGUgVGlwcGZlaGxlciB1bmQgYWVobmxpY2hlcyB6dSBlbnRzY2h1bGRpZ2VuLCBzZWJpZ2VzIHR1ZSBpY2ggaGllcm1pdApiZWkgYWxsZW4gTWF0aGVtYXRpa2VybiB1bmQgdGhlb3IuIFBoeXNpa2Vybi4uLgogT3JrdG9ldGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYXRoZW1hdGlrZXJ2b3J0cmFnIChIYWtraWtrdCwgMTEuIE5vdiAxOTk0LCAxMjo0NjoyNSk6CkhpLAplcyBnaWJ0IGluIE11ZW5zdGVyIGFtIE1hdGhlLUluc3RpdHV0IGVpbmVuIFByb2YuIGRlciBrZWluZSBlbmdsaXNjaGVuClZvcnRyYWVnZSBtZWhyIGhhZWx0LCBzZWl0IGVyIGJlaSBlaW5lbSBWb3J0cmFnIGZvbGdlbmRlIEF1c3NlcnVuZyBnZW1hY2h0CmhhdDoKCiJUaGlzIHRoZW9yZW0gaXMgZ3VpbHR5ISIKCkhha2tpa2t0IHRoaW5rcywgbW9uZXkgbmV2ZXIgc3RpbmtzIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdlbGFlY2h0ZXIgKEJvaW5nLCAxMS4gTm92IDE5OTQsIDE1OjIxOjMyKToKIyEgcm49R3JpbW1ib3JuIHJ0PTc4NDQ5NTA0NQpJY2ggc2NobGFnZSB2b3IsIGRhc3MgbnVyIG5vY2ggS29tbWVudGFyZSB6dSBXaXR6ZW4gZ2VnZWJlbiB3ZXJkZW4gZHVlcmZlbiwKd2VubiBtYW4gc2VsYnN0IG5vY2ggZWluZW4gV2l0eiBhbnMgRW5kZSBkcmFuaGFlbmd0LgoKICBCb2luZwoKV2l0eiBtaXQgQmV6dWcgenVyIGVyc3RlbiBNRy1GZXRlOgoKU2l0enQgZWluIEdhc3QgaW4gZWluZW0gTm9iZWxyZXN0YXVyYW50IHVuZAp2ZXJsYW5ndCBlaW5lIG5ldWUgU2VydmlldHRlLgpEZXIgT2JlciBnZWh0IHVuZCBicmluZ3QgaWhtIGVpbmUgUm9sbGUKVG9pbGV0dGVucGFwaWVyLgpEZXIgR2FzdCBzY2hhdXQgdmVyZHV0enQgYXVmIGRpZSBSb2xsZSB1bmQKc2FndDogIkFiZXIgaWNoIHdvbGx0ZSBkb2NoIGVpbmUgU2VydmlldHRlIC4uLiIKTWVpbnQgZGVyIE9iZXI6ICJUamEsIGRpZSBlaW5lbiBuZW5uZW4gZXMgS2xvcGFwaWVyLApkaWUgYW5kZXJlbiBkaWUgbGFlbmdzdGUgU2VydmlldHRlIGRlciBXZWx0LiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMZWJlbnN3ZWlzaGVpdGVuIChLbGluZ2UsIDExLiBOb3YgMTk5NCwgMTc6NDg6MTgpOgpJY2ggZmluZGUgYXVjaCBtYW5jaGUgTGViZW5zd2Vpc2hlaXRlbiB3YWVyZW4gaGllciBhbSBQbGF0emUuClp1bSBCZWlzcGllbCBmb2xnZW5kZToKTGllYmVyIFNjaGFtbGlwcGVuIGt1ZXNzZW4sCmFscyBzaWNoIGxhaG1zY2hpcHBlbiBtdWVzc2VuICEKCjopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGllbGVyPC0+TWFnaWVyIChBbnRoZWEsIDEzLiBOb3YgMTk5NCwgMjA6MDA6NTIpOgpFaW4gQm90ZSBrb21tdCBoZXJlaW5nZWhhc3RldCB1bmQgYmVnaW5udCB3aWxkIHp1IGZ1Y2h0ZWxuIHVuZCB6dSBwbGFwcGVybjoKJ1NjaG5hcmNoIGhhdCBnZXJhZGUgU21pcmsgenVtIER1ZWxsIGhlcmF1c2dlZm9yZGVydCEgSWhyIG11ZXNzdApzY2huZWxsIGluIGRpZSBXdWVzdGUgenVyIEthbXBmYXJlbmEgbGF1ZmVuLCBkYXMgZHVlcmZ0IGlociBldWNoIG5pY2h0CmVudGdlaGVuIGxhc3NlbiEnCltUb2Q6XSBTbWlyayBoYXQgZ2VyYWRlIFNjaG5hcmNoIHVtZ2VicmFjaHQuClN1biBOb3YgMTMgMTk6MzE6MjkgMTk5NCA6IFN0YXJ0IGRlcyBEdWVsbHMgOiBTY2huYXJjaCBnZWdlbiBTbWlyay4KU3VuIE5vdiAxMyAxOTozMjozMiAxOTk0IDogU21pcmsgaGF0IFNjaG5hcmNoIGltIER1ZWxsIGJlc2llZ3QuCltBbGxnZW1laW46U2NobmFyY2hdIGhtbW1tLCBpY2ggaGF0dGUgbm9jaCAxNDUgTFAgZXIgd2FyIGF1ZiAwIGFiZXIgaXJnZW5kd2llCltBbGxnZW1laW46U2NobmFyY2hdIGlzdCBlciBuaWNodCBnZXN0b3JlbiBkZXIgbWFnaWVyCltBbGxnZW1laW46U2NobmFyY2hdIHdpZXNvIHNpbmQgbWFnaWVyIGVpZ2VudGxpY2ggdW5zdGVyYmxpY2g/Pz8KW0FsbGdlbWVpbjpBbnRoZWFdIHdlbm4gc2llIGluIGRlciBBcmVuYSBmYWlyIHNlaW4gd29sbGVuLCBkYW5uIGtvZW5uZW4gc2llCltBbGxnZW1laW46QW50aGVhXSBzaWNoIHN0ZXJibGljaCBtYWNoZW4uCltBbGxnZW1laW46U2NobmFyY2hdIHNtaXJrIGR1IHVuZmFpcmVyIGh1bmQgZHUKU21pcmsgdGVpbHQgRGlyIG1pdDogd2llIGthbm4gaWNoIG1pY2ggc3RlcmJsaWNoIG1hY2hlbj8KRHUgdGVpbHN0IFNtaXJrIG1pdDogYXVmIGRlbiB0ZWxsIGhhYmUgaWNoIGdld2FydGV0IDopIG1zY2hhdSBhdXMgIHNjaGFsdGV0CkR1IHRlaWxzdCBTbWlyayBtaXQ6IGRlbiBNYWdpZXJtb2R1cyBhYiwgbXNjaGF1IGFuICAgc2NoYWx0ZXQgaWhuIHdpZWRlciBlaW4uClNtaXJrIHRlaWx0IERpciBtaXQ6IGRhbmtlIDopCkVpbiBCb3RlIGtvbW10IGhlcmVpbmdlaGFzdGV0IHVuZCBiZWdpbm50IHdpbGQgenUgZnVjaHRlbG4gdW5kIHp1IHBsYXBwZXJuOgonU2NobmFyY2ggaGF0IGdlcmFkZSBTbWlyayB6dW0gRHVlbGwgaGVyYXVzZ2Vmb3JkZXJ0ISBJaHIgbXVlc3N0CnNjaG5lbGwgaW4gZGllIFd1ZXN0ZSB6dXIgS2FtcGZhcmVuYSBsYXVmZW4sIGRhcyBkdWVyZnQgaWhyIGV1Y2ggbmljaHQKZW50Z2VoZW4gbGFzc2VuIScKVW5kIHNjaG9uIGhhc3RldCBlciB3aWVkZXIgcmF1cy4KKioqKiBTY2huYXJjaCBncmVpZnQgU21pcmsgYW4gKioqCltBbGxnZW1laW46U2NobmFyY2hdIG1hZ2llciBraWxsZW4gYnJpbmd0IGdhbnplIDEwMDAgeHAKW1RvZDogU2NobmFyY2ggaGF0IGdlcmFkZSBTbWlyayB1bWdlYnJhY2h0XQpTdW4gTm92IDEzIDE5OjQ3OjM3IDE5OTQgOiBTdGFydCBkZXMgRHVlbGxzIDogU2NobmFyY2ggZ2VnZW4gU21pcmsuClN1biBOb3YgMTMgMTk6NDg6MzEgMTk5NCA6IFNjaG5hcmNoIGhhdCBTbWlyayBpbSBEdWVsbCBiZXNpZWd0LgpbQWxsZ2VtZWluOlNjaG5hcmNoXSBoYXQgc2ljaCBhdXNnZXphaGx0IGdlc3RvcmJlbiA1MDAwMDAgeHAgd2VnIGRhbm4gc21pcmsKW0FsbGdlbWVpbjpTY2huYXJjaF0gZ2VraWxsdCB1bmQgMTAwMCBnZWtyZWd0IC0gdG9sbApbQWxsZ2VtZWluOlNjaG5hcmNoXSB3YXMgYmVrb21tdCBtYW4gZWlnZW50bGljaCBmdWVyIG5lbiBtYWdraWxsPz8KCldvcmF1cyBzaWNoIHdvaGwgc2NobGllc3NlbiBsYWVzc3Q6IERpZSBtZWlzdGVuIE1hZ2llciBoYWJlbiBkYXMgS2FlbXBmZW4Kd29obCB2ZXJsZXJudC4uLi4KCkFudGhlYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa3VyeiB1bmQga25hcHAgKEFuYXRvbCwgMTQuIE5vdiAxOTk0LCAxNjoyODowNSk6CgoKCkhvY2h6ZWl0c25hY2h0LiAgIkVyc3RlciEiCgogICAgICAgICAgIEVpbiBncmluc2VuZGVyIEFuYXRvbCwgZGVtIG5peCBrdWVyemVycyBlaW5nZWZhbGxlbiBpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsb25kaWUgKFNtYXVnLCAxNC4gTm92IDE5OTQsIDE5OjI5OjIxKToKCmhpCmJsb25kaWVuZW4td2l0emUgc2luZCBoaWVyIHp3YXIgbmljaHQgYmVzb25kZXJzIGdlZnJhZ3QgPyEgYWJlciB3ZW4gc2llIChkaWUKd2l0emUpIHRyb3R6ZGVtIGdlZmFsbGVuOgpoYWJlIGdlcmFkZSBkaWUgZ3JvZXNzdGUgc2FtbWx1bmcgdm9uIGJsb25kaW5lbndpdHplbiBnZWZ1bmRlbjoKaHR0cDovL2dhbGxlcnkuYnJhbmR5cy5jb20vYmxvbmRlLWpva2VzLnR4dAoKc21hdWcgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhhaGFoYWhhaGEgKFNjaGxvbnosIDE1LiBOb3YgMTk5NCwgMTE6MDY6MjkpOgoKWndlaSBQaW5ndWluZSB3YXRzY2hlbG4gZHVyY2ggZGllIFd1ZXN0ZS4gTWVpbnQgZGVyIGVpbmU6Ikp1bmdlLCBtdXNzIGRhcwphYmVyIGdsYXR0IGhpZXIgc2VpbiEiCiJXaWVzbz8iCiJTaWVoc3QgZHUgbmljaHQgd2llIGRpZSBoaWVyIGdlc3RyZXV0IGhhYmVuPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpXaWUgd3VyZGUgZGFzIEpvZGVsbiBlcmZ1bmRlbiA/Clp3ZWkgQ2hpbmVzZW4gZ2luZ2VuIG1pdCBlaW5lbSBSYWRpbyBhdWYgZWluZW4gQmVyZy4gQWxzIGVzIGluIGVpbmUgU2NobHVjaHQKZmllbCByaWVmIGRlciBlaW5lOiJIb2wgZGllIExhZGlvISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVHJlZmZlbiBzaWNoIDIgWmllZ2VuLgoiS29tbXN0IGR1IGhldXRlIGluIGRpZSBEaXNjbz8iCiJOZWUsIGhhYicga2VpbiBCb2NrISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKV2FzIHNhZ3QgZGllIGVpbmUgV2FuZCB6dXIgYW5kZXJlbj8KIldpciB0cmVmZmVuIHVucyBhbiBkZXIgRWNrZSIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkRhcyBnZW51ZWd0ICAgICAgICBTY2hsb256CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2gnbiBXaXR6Li4uIChNZXJsaW51cywgMTUuIE5vdiAxOTk0LCAxMjowOTowOSk6CiMhIHJuPUVuZ3l3dWNrIHJ0PTc4NDQ2ODEyOQpEb2NoIHZlcnN0YW5kZW4hISEgKFN0b2x6KQpBYmVyIGtlbm50IGlociBkZW4/CgpPcmNoZXN0ZXJhdXNmbHVnLiBXZWluYmVyZ3NjaG5lY2tlbnNhbW1lbG4uCkFtIGFiZW5kIHRyZWZmZW4gc2ljaCBhbGxlIHdpZWRlciwgYWxsZSBoYWJlbiBrb2VyYmV2b2xsIGdlc2FtbWVsdC4gTnVyIGRlcgpCcmF0c2NoaXN0IGhhdCBrZWluZSBlaW56aWdlLgpXaWUga29tbXQgZGVubiBkYXMgPyBmcmFndCBlaW5lci4KQnJhdHNjaGlzdDogTnVuIGphIC4uLmFsc28uLi4gZGEgd2FyIGVpbmUgU2NobmVja2UgLi4uIHVuZCBhbHMgaWNoIHNpZSBwYWNrZW4Kd29sbHRlLi4uSHVzY2ghISEgV2FyIHNpZSB3ZWcuCgoodmVyc3RlaGVuIHdhaHJzY2hlaW5saWNoIGF1Y2ggbnVyIGF1c2Vyd2FlaGx0ZSkKCkVpbiB2b2VsbGlnIHVubXVzaWthbGlzY2hlciBNZXJsaW51cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hdGhlbWF0aWtlcnZvcnRyYWcgKE1lcmxpbnVzLCAxNS4gTm92IDE5OTQsIDEyOjIzOjQ0KToKIyEgcm49SGFra2lra3QgcnQ9Nzg0NTU0Mzg1CldlbGNoZXIgTWF0aGVwcm9mIGlzdCBkYXMgZGVubj8gRGVyc2VsYmUgZGVyIGF1Y2ggZ2VzYWd0IGhhdDoKCkFuZCBub3cgc29tZXRoaW5nIGZvciB0aGUgcG9vciAocHVyZSkgbWF0aGVtYXRpY2lhbnMuCgptZXJsaW51cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYnctIHdpdHplIChCb21tZWwsIDE1LiBOb3YgMTk5NCwgMTI6NTc6NDcpOgp3ZW5uIG1hbiBkZW4gdHVybSBhbSBsZW8gMiB2aWVybWFsIGluIGRpZSBzZWxiZSByaWNodHVuZyBkcmVodCBmYWVsbHQgZXIgYWIKV2VpbCBlciBtaXQgZWluZW0gZ2V3aW5kZSBhdWYgZGllIHdhbm5lIGdlc2NocmF1YnQgd2lyZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvaGx3aXR6ISAoU2NobG9ueiwgMTUuIE5vdiAxOTk0LCAxMzo1MToxNSk6CgpIZXJyIEtvaGwgZW1wZmFlbmd0IGRpZSBLb2VuaWdpbiB2b24gRW5nbGFuZCBhdWYgU3RhYXRzYmVzdWNoLiBFaW4KVGFnZXNvcmRudW5nc3B1bmt0IGlzdCBlaW5lIGdlbWVpbnNhbWUgS3V0c2NoZmFocnQuIEFscyBzaWUgZ2VtdWV0bGljaCBpbiBkZXIKS3V0c2NoZSBmYWhyZW4gcGFzc2llcnQgZXMgOiBEYXMgUGZlcmQgbGFlc3N0IHRpaWlpaWlpZXJpc2NoIGVpbmVuIGZhaHJlbi4KSGVyciBLb2hsIGlzdCBkaWVzIHNlZWVociBwZWlubGljaCB1bmQgc2FnIChtYW5nZWxzIGd1dGVyIEVuZ2xpc2Noa2VubnRuaXNzZSkKOiAiU29ycnkuIiBEYXJhdWYgZGllIEtvZW5pZ2luOiJPaCwgaXQgZG9lc24ndCBtYXR0ZXIsIGhvd2V2ZXIgSSB0aG91Z2h0IGl0CndhcyB0aGUgaG9yc2UhIgoKU2NobG9ueiA6KSAoYWx3YXlzIHNtaWxpbmcpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWdnZXNjaGF1dCEgKFB1bWEsIDE1LiBOb3YgMTk5NCwgMTQ6NTQ6MjIpOgpOZXVsaWNoIHVudGVyIE1hZ2llcm4uLi4KClB1bWEgYW4gYWxsZSBNYWdpZXI6IFNvLCBkYXMgS29uemVwdCBpc3QgamV0enQgZnVlciBNYWdpZXIgaW4gZGVyIG1wYS4KUnVtYXRhIHRlaWx0IERpciBtaXQ6IHdhciBlcyBkYXMgbmljaHQgc2Nob24gc2VpdCBnZXN0ZXJuID8KRHUgdGVpbHN0IFJ1bWF0YSBtaXQ6IGRhcyB3YXIgZGVpbmUgcG9zdCEgOikpKSkpKQpSdW1hdGEgdGVpbHQgRGlyIG1pdDogYWNoc28gOykpKSkpCgooTmljaHRzIGZ1ZXIgdW5ndXQgUnVtYXRhISA6LSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgUFVNQSAoc3RpcmJ0IGltbWVyIG5vY2gpCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNRy1VbXp1ZyAtIGVpbiBCZXJpY2h0IChKb2YsIDE1LiBOb3YgMTk5NCwgMTQ6NTY6MTMpOgpbVmVybGVndCB2b24gc2NobWFycm4sIEdyaW1tYm9ybiwgMTQuIE5vdiAxOTk0LCAyMDowOTozOV06CkJla2FubnRsaWNoICg/KSBpc3QgZGFzIE1HIHVtZ2V6b2dlbi4gRGFzIGdpbmcgbmljaHQgb2huZSBQcm9ibGVtZSBhYi4gSGllcgplaW4gYXV0aGVudGlzY2hlciBCZXJpY2h0LgooRGVyIEJlcmljaHQgYmFzaWVydCBhdWYgSW5kaXppZW4sIGRpZSB0YXRzYWVjaGxpY2hlbiBCZWdlYmVuaGVpdGVuIGtvZW5uZW4KbGVpY2h0IGRhdm9uIGFid2VpY2hlbikKCk11ZW5zdGVyLCBNb250YWcsIDE0LjExLjE5OTQsIDEwIFVocgpQYXNjYWwgc3RlaHQgc28gcnVtLCBKb2YgdW5kIEtpcmsgYmV0cmV0ZW4gZGVuIFJhdW0uCkpvZjogU28sIDEwIFVociwgWmVpdCB6dW0gdW16aWVoZW4sIE1HIQpNRzogV2Fzd2lld28/IERhdm9uIHdlaXNzIGljaCBhYmVyIG5pY2h0cyEKS2lyayBOdW4gc3RlbGwgRGljaCBuaWNodCBhbiwgd2lyIGhhYmVuIERpciBCZXNjaGVpZCBnZXNhZ3QuCk1HOiBJY2ggd2lsbCBuaWNodC4KSm9mOiBOdW4gbWFjaCBrZWluZSBHZXNjaGljaHRlbiwgbG9zLCByYXVzLCBhdWYgU2FudGFuYSB3aXJkcyBEaXIgYXVjaApnZWZhbGxlbi4KTUc6IE5laW4sIGljaCBibGVpYmUuIE1pciBnZWZhZWxsdHMgaGllci4KSm9mICh3aXJkIGxhbmdzYW0gdW5ydWhpZyk6IE51biBrb21tLCBTYW50YW5hIGhhdCAyIENQVXMsIDEyOE1CLCBpc3QgZWluIEdBTloKdG9sbGVyIFJlY2huZXIhCk1HIE5laW4sIGljaCB3aWxsIG5pY2h0LgpKb2Yga25pZXQgc2ljaCBoaW4sIHNjaGF1dCBpbiBkZW4gRGlza2V0dGVuc2NobGl0ei4gTUcgYmxpY2t0IGlobiB0cm90emlnIGFuLgpLaXJrOiBTY2hsdXNzIG1pdCBkZW0gR2VqYW1tZXJlLCBEdSBrb21tc3QgbWl0IQpNRzogTkVJTiEgKmF1ZiBzdHVyIHNjaGFsdCoKSm9mIChmbGVodCBpbiBkZW4gRGlza2V0dGVuc2NobGl0eik6IE51biBrb21tIHNjaG9uLiBTbyB2aWVsZSBMZXV0ZSB3YXJ0ZW4KYXVmIERpY2guIERhcyBrYW5uc3QgRHUgZG9jaCBuaWNodCBtYWNoZW4uIFdpciBoYWJlbiBkaWUgYWx0ZSBBZHJlc3NlIHNjaG9uCmxhaG0gZ2VsZWd0IHVuZCBhbGxlcy4uLgpNRzogRGFubiBsZWd0IGhhbHQgd2llZGVyIHVtLiBJY2ggYmxlaWJlIQoqCioKKgpFaW5lIGhhbGJlIFN0dW5kZSBzcGFldGVyOgpKb2YgKG1pdHRsZXJ3ZWlsZSB2b2VsbGlnIGR1cmNoZ2VzY2h3aXR6dCB1bmQgdGF0c2FlY2hsaWNoIGVpbiB3ZW5pZwp1bmdlaGFsdGVuKTogSmV0enQgaXN0IGFiZXIgZW5kZ3VlbHRpZyBTY2hsdXNzISBFbnR3ZWRlciBEdSBrb21tc3QgZnJlaXdpbGxpZwpvZGVyIHdpciBncmVpZmVuIHp1IGdld2FsdHNhbWVuIE1pdHRlbG4hCktpcmsgKG1pdCBob2Nocm90ZW0gS29wZiwgZGllIEF4dCBhdXMgZGVtIEJyYW5ka2FzdGVuIHNjaG9uIHNlaXQgbGFlbmdlcmVtCmdyaWZmYmVyZWl0KTogTGFzcyBtaWNoIG1hbCByYW4sIEpvZi4gSWNoIHdlaXNzLCB3aWUgd2lyIGRlbiBNaXN0a2VybApyYXVza3JpZWdlbiEhCkpvZiBiZWtvbW10IHBsb2V0emxpY2ggZGFzIEVuZGUgZWluZXMgTG9jaHN0cmVpZmVucyB6dSBmYXNzZW4uCkpvZjogSWNoIGhhYiBpaG4hIEhpbGYgbWlyLCBLaXJrIQpNaXQgdmVyZWludGVuIEtyYWVmdGVuIHppZWhlbiBzaWUgYW0gTG9jaHN0cmVpZmVuLCBpbW1lciBsYWVuZ2VyIHdpcmQgZGFzClN0dWVjay4gUGxvZXR6bGljaCBlaW4gIlJycnJyaWl0c2NoISIsIGRlciBTdHJlaWZlbiBpc3QgZ2VyaXNzZW4uCkpvZjogVmVyZGFtbXQsIG1pdCBkaWVzZW0gbXVkIGhhdCBtYW4gYWJlciBhdWNoIE5VUiBBZXJnZXIhCktpcms6IEFjaCB3YXMsIGRhIGtvbW10IGVpbiBiaXNjaGVuIFRlc2EgZHJ1ZWJlciwgbWVya3Qga2VpbiBNZW5zY2guCkpvZjogRGFzIGdpYnQgZG9jaCB3aWVkZXIgZWluZW4gQWJzdHVyeiBuYWNoIGRlbSBhbmRlcmVuLiBCaXMgZGFzIHdpZWRlcgpyaWNodGlnIHJlcGFyaWVydCBpc3QuLi4KS2lyazogQWNoIHdhcywgaGF0IGphIGtlaW5lciBnZXNlaGVuLiBVbmQgZGllIGNyYXNocyBzY2hpZWJlbiB3aXIgSGF0ZSB1bmQKRGFuY2VyIGluIGRpZSBTY2h1aGUsIGRpZSBzaW5kIGRhcyBnZXdvZWhudC4KSm9mIChlcmxlaWNodGVydCk6IEF1Y2ggd2llZGVyIHdhaHIuIExvcywgaGlsZiBtaXIsIGRlbiBSZXN0IHJhdXN6dWhvbGVuLgoKQmFsZCBkYXJhdWYgbGF1ZmVuIEpvZiB1bmQgS2lyayBtaXQgZ3Jvc3NlbiBIYXVmZW4gdm9uIExvY2hzdHJlaWZlbiBkdXJjaCBkaWUKS29ycmlkb3JlIGluIFJpY2h0dW5nIFNhbnRhbmEuCkNhdCoga29tbXQgYW4uCkNhdCogKGVudGdlaXN0ZXJ0KTogV2FzIHR1dCBpaHIgZGVubj8KSm9mOiBNRyB6aWVodCB1bS4KQ2F0KjogRWhybGljaD8gV29oaW4gZGVubiBkYXM/Cktpcms6IEF1ZiBtZWluZW4gU2FudGFuYS4gVG9sbGVyIFJlY2huZXIsIDIgQ1BVLCAxMjguLi4KQ2F0KiAodW50ZXJicmljaHQpOiBBZWgsIGthbm4gaWNoIGRhIGF1Y2ggeFdpbiBmYWhyZW4/CkpvZiBLbGFyIGthbm5zdCBEdSEKQ2F0KjogTmEsIGRhIGJpbiBpY2ggamEgZXJsZWljaHRlcnQuCkpvZiAoaGludGVyIGVpbmVtIFN0YXBlbCBMb2Noa2FydGVuIG11ZWhzYW0gaGVydm9yc2NoYXVlbmQpOiBEdSBrb2VubnRlc3QKdmllbGxlaWNodCBoZWxmZW4sIGRpZSBLYXJ0ZW4uLi4KSm9mIHNjaGF1dCBsZWljaHQgZW50Z2Vpc3RlcnQgZGVtIGdlc2Nod2luZCBkYXZvbmVpbGVuZGVuIFJ1ZWNrZW4gdm9uIENhdCoKbmFjaC4KClNhbnRhbmEgc3RlaHQgc28gcnVtLCBKb2YgdW5kIEtpcmsgYmV0cmV0ZW4gZGVuIFJhdW0sIGRpZSBBcm1lIHZvbGxlcgpMb2Noc3RyZWlmZW4uClNhbnRhbmE6IFdhcyBzb2xsIGRhcyBkZW5uPz8/CkpvZiBIaWVyIGtvbW10IGRhcyBNRywgZGFzIGxhZXVmdCBqZXR6dCBhdWYgRGlyLgpTYW50YW5hOiBLb21tdCBuaWNodCBpbiBGcmFnZS4gTWlyIGhhdCBrZWluZXIgd2FzIGdlc2FndC4KS2lyayBzdG9laG50LgpLaXJrOiBKZXR6dCBtYWNodCBkZXIgYXVjaCBub2NoIFByb2JsZW1lLi4uCktpcmsgKHp1IFNhbnRhbmEpOiBBbHNvIGhvZXIgbWFsIHp1LCB3aXIgaGFiZW4gc2Nob24gZ2VudWcgUHJvYmxlbWUuIFdlbm4gRHUKbmljaHQgR0FOWiBicmF2IG1pdHNwaWVsc3QgZmFja2VsIGljaCBEaXIgZGllIENQVXMgYWIgdW5kIHJlaXNzIERpciBqZWRlcyBiaXQKUkFNIGVpbnplbG4gcmF1cywgaGFiZW4gd2lyIHVucyB2ZXJzdGFuZGVuPz8/ClNhbnRhbmEgZXJibGVpY2h0LgpKb2Ygc3RhdW50LgpKb2Y6IEhtbSwgd2llIGVya2xhZXJlbiB3aXIgamV0enQsIGRhc3MgYXVzIGRlbSBGYXJibW9uaXRvciBlaW4KU2Nod2FyendlaXNzbW9uaXRvciBnZXdvcmRlbiBpc3Q/Cktpcms6IEFjaCwgdW5zIGZhZWxsdCBzY2hvbiB3YXMgZWluLiBFcnN0bWFsIHJlaW4gbWl0IGRlbSBNaXN0IGhpZXIuIEljaCBiaW5zCmxhbmdzYW0gbGVpZC4gRGEgdmVyc3VjaHQgbWFuLCBkZW0gTUcgd2FzIEd1dGVzIHp1IHR1biB1bmQgd2FzIGlzdD8gQWxsZSBzaW5kCmRhZ2VnZW4uIFVuZCBnbGVpY2gga29lbm5lbiB3aXIgdW5zIEdlbWVja2VyZSB1ZWJlciBkaWUgbGFuZ2UgRGF1ZXIgYW5ob2VocmVuLgpKb2YgKHNjaHdpdHplbmQgaGludGVyIHNlaW5lbSBTdGFwZWwgTG9jaHN0cmVpZmVuKTogSmEsIHdlbm4gZGllIHd1ZXNzdGVuLAp3YXMgaGludGVyIFN5c3RlbWFkbWluaXN0cmF0aW9uIGZ1ZXIgZWluZSBBcmJlaXQgc3RlY2t0LiBTdGVpbmVrbG9wZmVuIGlzdApVcmxhdWIgZGFnZWdlbi4KSm9mIHZlcnN1Y2h0LCBkZW4gTG9jaHN0cmVpZmVuIGluIFNhbnRhbmEgZWluenVmdWVocmVuLgpKb2YgZmx1Y2h0IGZ1ZXJjaHRlcmxpY2guCktpcms6IFdhcyBpc3Q/CkpvZjogU2FudGFuYSBpc3Qgc3RvZXJyaXNjaCwgbmltbXQgZGVuIFN0cmVpZmVuIG5pY2h0IGFuLiBEZXIgU2NobGl0eiBpc3QgenUKc2NobWFsLgpLaXJrIHNpZWh0IHNpY2ggc2Nob24gZGVuIEtyYW0genVydWVja3RyYWdlbiB1bmQgUGFzY2FsIGRhcyBnYW56ZSBlcmtsYWVyZW4uCktpcmsgd2lyZCBsZWljaGVuYmxhc3MuCktpcms6IERlciBTY2hsaXR6IGlzdCB6dSBzY2htYWw/IERhcyBoYWJlbiB3aXIgZ2xlaWNoLgpLaXJrIGtyYW10IHNlaW4gVGFzY2hlbm1lc3NlciBoZXJ2b3IgdW5kIHNhZWJlbHQgYW4gZGVyIFZlcmtsZWlkdW5nIHJ1bS4KSm9mOiBKYSwgZWluIGd1dGVyIHN5c2FkbWluIG11c3MgbWl0IGFsbGVuIFNjaHdpZXJpZ2tlaXRlbiBmZXJ0aWcgd2VyZGVuCmtvZW5uZW4uIEFiZXIgZGFzcyB1bnMgZGllc2UgSW5rb21wYXRpYmlsaXRhZXQgbmljaHQgdm9yaGVyIGF1ZmdlZmFsbGVuIGlzdC4uLgpLaXJrOiBTbywgamV0enQgbXVlc3N0ZSBlcyBrbGFwcGVuLiBNZWluZSBHdWV0ZSwgc2Nob24gc28gc3BhZXQuIERpZSBhbmRlcmVuCmtpbGxlbiB1bnMuCkpvZjogSWNoIGJpbiBsZXZlbCAxMTEsIGljaCBzY2h1ZXR6ZSB1bnMuCkpvZiBzdG9wZnQgZGllIExvY2hzdHJlaWZlbiBpbiBTYW50YW5hLgpTYW50YW5hIHJ1ZWxwc3QuCktpcmsgaGFlbW1lcnQgYXVmIGRlciBUYXN0YXR1ciBydW0uCgpEdSB2ZXJsaWVyc3QgZGllIEJlc2lubnVuZy4uLi4KCkR1IHRhdWNoc3QgaW4gZWluZW4gU3RydWRlbCBidW50ZXIgRmFyYmVuIGVpbi4KKgoqCioKRmF6aXQ6IERpZSBtb2Rlcm5lIFRlY2huaWsgaXN0IGF1Y2ggbmljaHQgZGFzLCB3b2Z1ZXIgbWFuIHNpZSBpbW1lciBoYWVsdC4uLgoKQWxzIFJlcG9ydGVyIGF1cyBkZXIgTWl0dGUgZGVzIEdlc2NoZWhlbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgpQLlMuOiBXaWxsa29tbWVuIGF1ZiBTYW50YW5hLCBkZW0gbmV1ZW4gWnVoYXVzZSB2b24gTUchCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS29obHdpdHohIChCbGVlbHVtcGUsIDE1LiBOb3YgMTk5NCwgMjE6MTg6MDQpOgojISBybj1TY2hsb256IHJ0PTc4NDkwMzg3NQpzcGFldGVyIHd1cmRlIEtvaGwgdm9uIGRlciBRdWVlbiBnZWZyYWd0IG9iIGVyIEVuZ2xpeGgga29lbm5lLgpBbnR3b3J0IEtvaGxzIDogWWVzCkdlZ2VuZnJhZ2UgZGVyIFF1ZWVuIG9iIGVyIGd1dCBlbmdsaXNoIGtvZW5uZS4KQW50d29ydCBLb2hscyA6IE9IIFllc3NlcyEKQmxlZS4uIGRlciBLb2hsIGlyZ2VuZHdpZSBuaWNodCBtYWcgKCBoYXQgbWlyIG5vY2gga2VpbiBiaWVyIHNwZW5kaWVydC4KKiBncmlucyAqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtvaGx3aXR6ISAoQW50aGVhLCAxNi4gTm92IDE5OTQsIDAwOjA5OjE4KToKIyEgcm49QmxlZWx1bXBlIHJ0PTc4NDkzMDY4NApFaW4gUmVwb3J0ZXIgenUgS29obDoKSGVyciBCdW5kZXNrYW56bGVyLCBlcnphZWhsZW4gU2llIHVucyBkb2NoIGJpdHRlIGVpbmVuIFdpdHohCktvaGw6IEFsc28sIGljaCBkZW5rZS4uLi4uClJlcG9ydGVyOiBFaW4gZ3V0ZXIgV2l0eiwgSGVyciBCdW5kZXNrYW56bGVyISEKCgpIbS4uLiBpcmdlbmR3aWUgYmluIGljaCB6dSBtdWVkZS4uLiBqZWRlcyAzLiBaZWljaGVuIHdhciB2ZXJzY2hyaWViZW4uLi4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBlbmlzLVZlcmxhZW5nZXJ1bmc/IChBbnRoZWEsIDE2LiBOb3YgMTk5NCwgMjE6MTE6MDApOgpEYXMgaGllciBpc3QgenUga29lc3RsaWNoLCB1bSBlcyBkZXIgQWxsZ2VtZWluaGVpdCB2b3J6dWVudGhhbHRlbjoKZWluIEtldHRlbmJyaWVmLCB1bSBlaW5lbiBsYWVuZ2VyZW4gU2Nod2FueiB6dSBiZWtvbW1lbi4gIEVyIGlzdApldHdhcyBsYW5nLCBhYmVyIGVzIGxvaG50IHNpY2gsIGRpZXNlbiBBcnRpa2VsIGdhbnogenUgbGVzZW4uICBNYW4KYmVhY2h0ZSB2b3IgYWxsZW0gUHVua3QgKDcpLiA6LSkKClZpZWwgU3Bhc3MgOi0pCgoKLS0tLS0tLS0tLSBGb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tLS0tCkZyb206IGJqb25lc0B1bWlhbWkuaXIubWlhbWkuZWR1Ck5ld3Nncm91cHM6IGFsdC5wb2xpdGljcy5ob21vc2V4dWFsaXR5LGFsdC5ob21vc2V4dWFsLGFsdC5zZXgubWFzdHVyYmF0aW9uClN1YmplY3Q6IE1BS0UuUEVOSVMuRkFTVCAgKCA6LSkgKQpEYXRlOiAxMSBBdWcgOTQgMDk6NDI6NDQgRURUCk9yZ2FuaXphdGlvbjogVW5pdiBvZiBNaWFtaSBJUgoKSWYgeW91IGRvbid0IGJlbGlldmUgdGhpcyBjYW4gd29yay4uLiBSZWFkIHRoZSBsZXR0ZXJzIGFmdGVyIHRoZQppbnRydWN0aW9ucyEgCgpNQUtFIFBFTklTIEZBU1QhISEgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgSU5TVFJVQ1RJT05TCgpGb2xsb3cgdGhlc2UgaW5zdHJ1Y3Rpb25zIEVYQUNUTFksIGFuZCBpbiAyMCB0byA2MCBkYXlzIHlvdSB3aWxsIGhhdmUKcmVjZWl2ZWQgd2VsbCBvdmVyIDUwLDAwMCBpbmNoZXMgb2YgcGVuaXMsIGFsbCB5b3Vycy4gVGhpcyBwcm9ncmFtIGhhcwpyZW1haW5lZCBzdWNjZXNzZnVsIGJlY2F1c2Ugb2YgdGhlIGluYWRlcXVhY3kgYW5kIHZhbml0eSBvZiB0aGUKcGFydGljaXBhbnRzLiAgUGxlYXNlIGNvbnRpbnVlIGl0cyBzdWNjZXNzIGJ5IGNhcmVmdWxseSBhZGhlcmluZyB0byB0aGUKaW5zdHJ1Y3Rpb25zLiAKCldlbGNvbWUgdG8gdGhlIHdvcmxkIG9mIE1haWwgT3JkZXIgUGVuaXMgRW5sYXJnZW1lbnQhICBUaGlzIGxpdHRsZQpidXNpbmVzcyBpcyBhIGxpdHRsZSBkaWZmZXJlbnQgdGhhbiBtb3N0IGNvc21ldGljIHN1cmdlcnkuICBZb3VyIHByb2R1Y3QKaXMgbm90IHNvbGlkIChzaWMpIGFuZCB0YW5naWJsZSwgYnV0IHJhdGhlciBhIHNlcnZpY2UuICBZb3UgYXJlIGluIHRoZQpidXNpbmVzcyBvZiBleHRlbmRpbmcgcGVuaWkuICBNYW55IHNtYWxsIG9mIGVuZG93bWVudCBhcmUgaGFwcHkgdG8gcGF5IGJpZwpidWNrcyBmb3IgdGhpcyBzZXJ2aWNlLiAKICAgKFRoZSBtb25leSBtYWRlIGZyb20gdGhlIHBlbmlzIGVubGFyZ2VtZW50IGlzIHNlY29uZGFyeSB0byB0aGUKICAgIGluY29tZSB3aGljaCBpcyBtYWRlIGZyb20gcGVvcGxlIGxpa2UgeW91cnNlbGYgcmVxdWVzdGluZwogICAgdGhhdCB0aGV5IGJlIGluY2x1ZGVkIGluIHRoYXQgbGlzdC4pCgogIDEpICBJbW1lZGlhdGVseSBjdXQgb2ZmIHlvdXIgcGVuaXMgYXQgdGhlIGJhc2UuCgogIDIpICBDdXQgb2ZmIHRoZSBoZWFkIG9mIHlvdXIgcGVuaXMsIGFuZCBwYWNrIGl0IGluIGljZS4KCiAgMykgIFRha2UgdGhlIHJlbWFpbmluZyBtaWRzZWN0aW9uIG9mIHlvdXIgcGVuaXMsIGFuZCBjdXQgaXQKICAgICAgaW50byA1IHBpZWNlcyBvZiBlcXVhbCBsZW5ndGguCgogIDQpICBJbW1lZGlhdGVseSBtYWlsIGVhY2ggcGllY2UgdG8gdGhlIGZpcnN0IDUgbmFtZXMgbGlzdGVkCiAgICAgIGJlbG93IHN0YXJ0aW5nIGF0IG51bWJlciAxIHRocm91Z2ggbnVtYmVyIDUuICBTZW5kIHBlbmlzIG9ubHkKICAgICAgcGxlYXNlICh0b3RhbCBpbnZlc3RtZW50IHlvdXIgcGVuaXMpLiBFbmNsb3NlIGEgbm90ZSB3aXRoIGVhY2gKICAgICAgcGllY2Ugc3RhdGluZzogIlBsZWFzZSBhZGQgbXkgbmFtZSB0byB5b3VyIG1haWxpbmcgbGlzdC4iCiAgICAgICAgIChUaGlzIGlzIGEgbGVnaXRpbWF0ZSBzZXJ2aWNlIHRoYXQgeW91CiAgICAgICAgICBhcmUgcmVxdWVzdGluZyBhbmQgeW91IGFyZSBwYXlpbmcgeW91ciBwZW5pcwogICAgICAgICAgZm9yIHRoaXMgc2VydmljZSkuCgogIDUpICBSZW1vdmUgdGhlIG5hbWUgdGhhdCBhcHBlYXJzIG51bWJlciAxIG9uIHRoZSBsaXN0LgogICAgICBNb3ZlIHRoZSBvdGhlciA5IG5hbWVzIHVwIG9uZSBwb3NpdGlvbi4gKE51bWJlciAyIHdpbGwKICAgICAgYmVjb21lIG51bWJlciAxIGFuZCBudW1iZXIgMyB3aWxsIGJlY29tZSBudW1iZXIgMiwgZXRjLikKICAgICAgUGxhY2UgeW91ciBuYW1lLCBhZGRyZXNzIGFuZCB6aXAgY29kZSBpbiB0aGUgbnVtYmVyIDEwCiAgICAgIHBvc2l0aW9uLgoKICA2KSAgUG9zdCB0aGUgbmV3IGxldHRlciB3aXRoIHlvdXIgbmFtZSBpbiB0aGUgbnVtYmVyIDEwCiAgICAgIHBvc2l0aW9uIGludG8gMTAgKFRlbikgc2VwYXJhdGUgYnVsbGV0aW4gYm9hcmRzIGluIHRoZQogICAgICBtZXNzYWdlIGJhc2Ugb3IgdG8gdGhlIGZpbGUgc2VjdGlvbiwgY2FsbCB0aGUgZmlsZSwKICAgICAgTUFLRS5QRU5JUy5GQVNULgoKICA3KSAgV2l0aGluIDYwIGRheXMgeW91IHdpbGwgcmVjZWl2ZSBvdmVyIDUwLDAwMCBpbmNoZXMgb2YKICAgICAgUEVOSVMuICBLZWVwIGEgY29weSBvZiB0aGlzIGZpbGUgZm9yIHlvdXJzZWxmIHNvIHRoYXQgeW91IGNhbgogICAgICB1c2UgaXQgYWdhaW4gYW5kIGFnYWluIHdoZW5ldmVyIHlvdSBuZWVkIHBlbmlzIGVubGFyZ2VtZW50LgogICAgICBBcyBzb29uIGFzIHlvdSBtYWlsIG91dCB0aGVzZSBsZXR0ZXJzIHlvdSBhcmUgYXV0b21hdGljYWxseQogICAgICBpbiB0aGUgbWFpbCBvcmRlciBidXNpbmVzcyBhbmQgcGVvcGxlIGFyZSBzZW5kaW5nIHlvdSB0aGVpciBwZW5pcwogICAgICB0byBiZSBwbGFjZWQgb24geW91ciBtYWlsaW5nIGxpc3QuIFRoaXMgbGlzdCBjYW4gdGhlbiBiZSByZW50ZWQgdG8KICAgICAgYSByZWNvbnN0cnVjdGl2ZSBjb3NtZXRpYyBzdXJnZW9uIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBZZWxsb3cKICAgICAgUGFnZXMgZm9yIGFkZGl0aW9uYWwgaW5jb21lIG9uIGEgcmVndWxhciBiYXNpcy4gIFRoZSBsaXN0IHdpbGwgYmVjb21lCiAgICAgIG1vcmUgdmFsdWFibGUgYXMgaXQgZ3Jvd3MgaW4gc2l6ZS4gIFRoaXMgaXMgYSBzZXJ2aWNlLiAgVGhpcyBpcwogICAgICBwZXJmZWN0bHkgbGVnYWwuICBJZiB5b3UgaGF2ZSBhbnkgZG91YnRzLCByZWZlciB0byBUaXRsZSAxOCwKICAgICAgU2VjLiAxMzAyICYgMTM0MSBvZiB0aGUgcG9zdGFsIGxvdHRlcnkgbGF3cy4KCiAgICAgICBOT1RFOiBNYWtlIHN1cmUgeW91IHJldGFpbiBFVkVSWSBOYW1lIGFuZCBBZGRyZXNzIHNlbnQKICAgICAgICAgICAgIHRvIHlvdSwgZWl0aGVyIG9uIGNvbXB1dGVyIG9yIGhhcmQgY29weSwgYnV0IGRvIG5vdAogICAgICAgICAgICAgZGlzY2FyZCB0aGUgbmFtZXMgYW5kIG5vdGVzIHRoZXkgc2VuZCB5b3UuICBUaGlzIGlzCiAgICAgICAgICAgICBQUk9PRiB0aGF0IHlvdSBhcmUgdHJ1bHkgcHJvdmlkaW5nIGEgc2VydmljZSBhbmQKICAgICAgICAgICAgIHNob3VsZCB0aGUgQU1BLCBGREEsIG9yIHNvbWUgb3RoZXIgR292ZXJubWVudCBBZ2VuY3kKICAgICAgICAgICAgIHF1ZXN0aW9uIHlvdSwgeW91IGNhbiBwcm92aWRlIHRoZW0gd2l0aCB0aGlzIHByb29mIQoKICAgUmVtZW1iZXIgYXMgZWFjaCBwb3N0IGlzIGRvd25sb2FkZWQgYW5kIHRoZSBpbnN0cnVjdGlvbnMKICAgY2FyZWZ1bGx5IGZvbGxvd2VkLCBmaXZlIG1lbWJlcnMgd2lsbCBiZSByZWltYnVyc2VkIGZvcgogICB0aGVpciBwYXJ0aWNpcGF0aW9uIGFzIGEgUGVuaXMgRW5sYXJnZXIgd2l0aCBvbmUgaW5jaCBvZiBwZW5pcwogICBlYWNoLiAgWW91ciBuYW1lIHdpbGwgbW92ZSB1cCB0aGUgbGlzdCBnZW9tZXRyaWNhbGx5IHNvIHRoYXQKICAgd2hlbiB5b3VyIG5hbWUgcmVhY2hlcyB0aGUgbnVtYmVyIGZpdmUgcG9zaXRpb24geW91IHdpbGwgYmUKICAgcmVjZWl2aW5nIHRob3VzYW5kcyBvZiBpbmNoZXMgaW4gcGVuaXMuCgogIDEuIERhbmllbCBKLiBLYXJuZXMgIDYzOTQtQiBUYXduZXkgQmxvb20KICAgICAgICAgICAgICAgICAgICAgICAgTW9naSBEb251dHMsIE1ECiAgICAgICAgICAgICAgICAgICAgICAgIDIxMDQ1CgogIDIuIEVtaWwgVC4gQ2h1Y2sgICAgNjM5NC1BIFRhd25leSBCbG9vbQogICAgICAgICAgICAgICAgICAgICAgICBNb2dpIERvbnV0cywgTUQKICAgICAgICAgICAgICAgICAgICAgICAgMjEwNDUKCiAgMy4gQ2hhcmxlcyBXaGVhbHRvbiA3NjkwIEthcm5lc3ZpbGxlIFJvYWQKICAgICAgICAgICAgICAgICAgICAgICAgUGhvYmljLCBNSQogICAgICAgICAgICAgICAgICAgICAgICA0ODM0OAoKICA0LiBXaWxsaWFtIERhdmVuYW50ICA4Mjk1IEhpZGluZyBDbG9zZXQgUmQKICAgICAgICAgICAgICAgICAgICAgICAgQ2xhcmtzdG9uLCBNSQogICAgICAgICAgICAgICAgICAgICAgICA0ODM0OAogIAogIDUuIFBldGVyIFJ1Y2ttYW4gICAgIDE0ODA1IFJpdmVyY3Jlc3QKICAgICAgICAgICAgICAgICAgICAgICAgU3RlcmxpbmcgSHRzLiwgTUkKICAgICAgICAgICAgICAgICAgICAgICAgNDgzMTIKCiAgNi4gU3RldmVuIENyaXNwICAgICAgMzcxOCBLaW5ncyBQb2ludAogICAgICAgICAgICAgICAgICAgICAgICBUcm95LCBNSQogICAgICAgICAgICAgICAgICAgICAgICA0ODA4MwoKICA3LiBNYXJrIEdlbmdsZXIgICAgICA1NzQ4IFBhdHRlcnNvbgogICAgICAgICAgICAgICAgICAgICAgICBUcm95LCBNSQogICAgICAgICAgICAgICAgICAgICAgICA0ODA5OAoKICA4LiBQYXQgUm9iZXJ0c29uICAgICAgNjY2IEdvZCdzIExpdHRsZSBIb21vcGhvYmUgUm9hZAogICAgICAgICAgICAgICAgICAgICAgICAgQW50aS1DaHJpc3QgSGlsbHMsIFZBCiAgICAgICAgICAgICAgICAgICAgICAgICA0ODMwNwoKICA5LiBGcmVkIFBoZWxwcyAgICAgICAxNC1VIE91ciBTYXZpb3VyIG9mIHRoZSBDbG9zZXQgTGFuZQogICAgICAgICAgICAgICAgICAgICAgICBPcmNoYXJkIExha2UsIE1JCiAgICAgICAgICAgICAgICAgICAgICAgIDQ4MzIzCiAgICAgICAgICAgICAgICAgICAgICAgCiAgMTAuIEplc3NlIEhlbG1zICAgICAgMjA4NDAgVG9iYWNjbyBNZXJjZW5hcnkgU3RyZWV0CiAgICAgICAgICAgICAgICAgICAgICAgIEx1bmcgQ2FuY2VyIEhhY2tzLiwgVkEKICAgICAgICAgICAgICAgICAgICAgICAgNDgwMzgKCkRlYXIgRnJpZW5kLAoKICAgICBNeSBuYW1lIGlzIERhbmllbCBKLiBLYXJuZXMuICBJbiBTZXB0ZW1iZXIgMTk4OCBteSBsaWZlIHdhcyByZXByZXNzZWQKYW5kIHRoZSBiaWJsZSB0aHVtcGVycyB3ZXJlIGhvdW5kaW5nIG1lIGxpa2UgeW91IHdvdWxkbid0IGJlbGlldmUuICBJIHdhcwpuZXZlciBsYWlkIGFuZCBteSBtZW50YWwgZGlzYWJpbGl0eSBjaGVja3MgaGFkIHJ1biBvdXQuICBUaGUgb25seSBlc2NhcGUgSQpoYWQgZnJvbSB0aGUgcHJlc3N1cmUgb2YgZmFpbHVyZSB3YXMgbXkgQXBwbGUgY29tcHV0ZXIgYW5kIG15IGJpYmxlLiAgSQpsb25nZWQgdG8gdHVybiBteSBmaXhhdGlvbiBpbnRvIG15IHZvY2F0aW9uLiAKCiAgICAgVGhpcyBKYW51YXJ5IDE5ODkgbXkgZmFtaWx5IGFuZCBJIHdlbnQgb24gYSB0ZW4gZGF5IGNydWlzZSB0byB0aGUKdHJvcGljcy4gIEkgYm91Z2h0IGEgRG91YmxlLVdpZGUgVHJhaWxlciB3aXRoIENBU0ggaW4gRmVidXJhcnkgMTk4OS4gIEkgYW0KY3VycmVudGx5IGJ1aWxkaW5nIGEgU2VsZi1Xb3JzaGlwIFRlbXBsZSBvbiB0aGUgV2VzdCBDb2FzdCBvZiBGbG9yaWRhLAp3aXRoIGEgcHJpdmF0ZSBTL00gRHVuZ2VvbiB3aXRoIHJvb20gZm9yIGFsbCBvZiBteSBjbG9zZXRlZCBmcmllbmRzLCBhbmQgYQpiZWF1dGlmdWwgdmlldyBvZiB0aGUgYmF5IGZyb20gbXkgd29tZW4ncyBzaG9lcyBjbG9zZXQgYW5kIHdhcmRyb2JlLiAgSQp3aWxsIG5ldmVyIGJlIHVuZGVyZW5kb3dlZCBhZ2Fpbi4gIFRvZGF5IEkgYW0gZXF1aXBwZWQhICBJIGhhdmUgb3Zlcgo0MDAsMDAwIGluY2hlcyBvZiBwZW5pcyAoMzMsMzMzIGZlZXQgYW5kIDQgaW5jaGVzISApIHRvIGRhdGUgYW5kIHdpbGwKYmVjb21lIGEgbWlsbGlvbi1pbmNoZXIgd2l0aGluIDQgb3IgNSBtb250aHMuIEFueW9uZSBjYW4gZG8gdGhlIHNhbWUuIApUaGlzIHBlbmlzIGVubGFyZ2VtZW50IG1ha2luZyBwcm9ncmFtIHdvcmtzIHBlcmZlY3RseSBldmVyeSB0aW1lLCAxMDAlIG9mCnRoZSB0aW1lLiBJIGhhdmUgTkVWRVIgZmFpbGVkIHRvIGVhcm4gNTAsMDAwIGluY2hlcyBvciBtb3JlIHdoZW5ldmVyIEkKd2FudGVkLiBCZXN0IG9mIGFsbCB5b3UgbmV2ZXIgaGF2ZSB0byBsZWF2ZSBob21lIGV4Y2VwdCB0byBnbyB0byB5b3VyCm1haWxib3ggb3IgcmVjb25zdHJ1Y3RpdmUgc3VyZ2Vvbi4gCgogICAgIEluIE9jdG9iZXIgMTk4OCwgSSByZWNlaXZlZCBhIGxldHRlciBpbiB0aGUgbWFpbCB0ZWxsaW5nIG1lIGhvdyBJCmNvdWxkIGVhcm4gNTAsMDAwIGluY2hlcyBvZiBwZW5pcyBvciBtb3JlIHdoZW5ldmVyIEkgd2FudGVkLiAgSSB3YXMKbmF0dXJhbGx5IHZlcnkgc2tlcHRpY2FsIGFuZCB0aHJldyB0aGUgbGV0dGVyIG9uIHRoZSBkZXNrIG5leHQgdG8gbXkKY29tcHV0ZXIuIEl0J3MgZnVubnkgdGhvdWdoLCB3aGVuIHlvdSBhcmUgZGVzcGFyYXRlbHkgdW5kZXJlbmRvd2VkLCBiYWNrZWQKaW50byBhIGNvcm5lciwgeW91ciBtaW5kIGRvZXMgY3JhenkgdGhpbmdzLiBJIHNwZW50IGEgZnJ1c3RhdGluZyBkYXkKbG9va2luZyB0aHJvdWdoIHRoZSB3YW50IGFkcyBmb3IgYSB3aWZlIHdobyBkaWRuJ3QgbmVlZCBzZXh1YWwKZnVsZmlsbG1lbnQuICBUaGUgcGlja2luZ3Mgd2VyZSBzcGFyc2UgYXQgYmVzdC4gIFRoYXQgbmlnaHQgSSB0cmllZCB0bwp1bndpbmQgYnkgYm9vdGluZyB1cCBteSBBcHBsZSBjb21wdXRlciBhbmQgY2FsbGluZyBzZXZlcmFsIGdheSBidWxsZXRpbgpib2FyZHMuICBJIHJlYWQgc2V2ZXJhbCBvZiB0aGUgbWVzc2FnZSBwb3N0cyBhbmQgdGhlbiBnbGFuY2VkIGF0IHRoZQpsZXR0ZXIgbmV4dCB0byB0aGUgY29tcHV0ZXIuICBBbGwgYXQgb25jZSBpdCBjYW1lIHRvIG1lLCBJIG5vdyBoYWQgdGhlIGtleQp0byBteSBkcmVhbXMuIAoKICAgICAgSSByZWFsaXplZCB0aGF0IHdpdGggdGhlIHBvd2VyIG9mIHRoZSBjb21wdXRlciBJIGNvdWxkIGV4cGFuZCBhbmQKZW5oYW5jZSB0aGlzIHBlbmlzIG1ha2luZyBmb3JtdWxhIGludG8gdGhlIG1vc3QgdW5iZWxpZXZhYmxlIHBlbmlzCmVubGFyZ2VtZW50IGdlbmVyYXRvciB0aGF0IGhhcyBldmVyIGJlZW4gY3JlYXRlZC4gSSBzdWJzdGl0dXRlZCB0aGUKY29tcHV0ZXIgYnVsbGV0aW9uIGJvYXJkcyBpbiBwbGFjZSBvZiB0aGUgcG9zdCBvZmZpY2UgYW5kIGVsZWN0cm9uaWNhbGx5CmRpZCBieSBjb21wdXRlciB3aGF0IG90aGVycyB3ZXJlIGRvaW5nIDEwMCUgYnkgbWFpbC4gIE5vdyBvbmx5IGEgZmV3CmxldHRlcnMgYXJlIG1haWxlZCBtYW51YWxseS4gIE1vc3Qgb2YgdGhlIGhhcmQgd29yayBpcyBzcGVlZGlseSBkb3dubG9hZGVkCnRvIG90aGVyIGJ1bGxldGluIGJvYXJkcyB0aHJvdWdob3V0IHRoZSB3b3JsZC4gIElmIHlvdSBiZWxpZXZlIHRoYXQKc29tZWRheSB5b3UgZGVzZXJ2ZSB0aGF0IGx1Y2t5IGJyZWFrIHRoYXQgeW91IGhhdmUgd2FpdGVkIGZvciBhbGwgeW91cgpsaWZlLCBzaW1wbHkgZm9sbG93IHRoZSBlYXN5IGluc3RydWN0aW9ucyBiZWxvdy4gIFlvdXIgZHJlYW1zIHdpbGwgY29tZQp0cnVlLiAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgU2luY2VyZWx5IHlvdXJzLAoKICAgICAgICAgICAgICAgICAgICAgICAgICBEYW5pZWwgSi4gS2FybmVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gV2h5IGRvZXNuJ3QgV2VuY2hlbGwncwogICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFNlcnZlIE1vZ2kgRG9udXRzPwoKCgogICAgIEFib3V0IHNpeCBtb250aHMgYWdvIEkgcmVjZWl2ZWQgdGhlIGVuY2xvc2VkIHBvc3QgaW4gbGV0dGVyIGZvcm0uICBJCmlnbm9yZWQgaXQuICBJIHJlY2VpdmVkIGFib3V0IGZpdmUgbW9yZSBvZiB0aGUgc2FtZSBsZXR0ZXIgd2l0aG4gdGhlIG5leHQKdHdvIHdlZWtzLiAgSSBpZ25vcmVkIHRoZW0gYWxzby4gIE9mIGNvdXJzZSwgSSB3YXMgdGVtcHRlZCB0byBmb2xsb3cKdGhyb3VnaCBhbmQgZHJlYW1lZCBvZiBtYWtpbmcgdGhvdXNhbmRzIG9mIGluY2hlcywgYnV0IEkgd2FzIGNvbnZpbmNlZCBpdAp3YXMganVzdCBhbm90aGVyIGdpbW1pY2sgYW5kIGNvdWxkIG5vdCBwb3NzaWJseSB3b3JrLiAgSSB3YXMgd3JvbmchIEFib3V0CnRocmVlIHdlZWtzIGxhdGVyIEkgc2F3IHRoaXMgc2FtZSBsZXR0ZXIgcG9zdGVkIG9uIGEgbG9jYWwgYnVsbGV0aW9uIGJvYXJkCmluIE1vbnRyZWFsLiAgSSBsaWtlZCB0aGUgaWRlYSBvZiBnaXZpbmcgaXQgYSB0cnkgd2l0aCBteSBjb21wdXRlci4gIEkKZGlkbid0IGV4cGVjdCBtdWNoIGJlY2F1c2UgSSBmaWd1cmVkLCBpZiBvdGhlciBwZW9wbGUgd2VyZSBhcyBza2VwdGljYWwgYXMKSSwgdGhleSB3b3VsZG4ndCBiZSB0b28gcXVpY2sgdG8gcGFydCB3aXRoIHRoZWlyIHBlbmlzLiAgQnV0LCBJIGJ1eQpsb3R0ZXJ5IHRpY2tldHMgd2Vla2x5IGluIG15IHByb3ZpbmNlIGFuZCBoYXZlIG5vdGhpbmcgdG8gc2hvdyBmb3IgaXQgYnV0CnRpY2tldCBzdHVicy4gIFRoaXMgd2VlayBJIGRlY2lkZWQgdG8gbG9vayBhdCB0aGlzIGFzIG15IHdlZWtseSBsb3R0ZXJ5CnB1cmNoYXNlLiBJIGFkZHJlc3NlZCB0aGUgZW52ZWxvcGVzIGFuZCBtYWlsZWQgb3V0IG9uZSBwaWVjZSBvZiBteSBwZW5pcwppbiBlYWNoIGFzIGRpcmVjdGVkLiBUd28gd2Vla3Mgd2VudCBieSBhbmQgSSBkaWRuJ3QgcmVjaWV2ZSBhbnl0aGluZyBpbgp0aGUgbWFpbC4gVGhlIGZvdXJ0aCB3ZWVrIHJvbGxlZCBhcm91bmQgYW5kIEkgY291bGRuJ3QgYmVsaWV2ZSB3aGF0CmhhcHBlbmVkISAgSSBjYW4ndCBzYXkgSSByZWNlaXZlZCA1MCwwMDAgaW5jaGVzLCBidXQgaXQgd2FzIGRlZmluaXRlbHkKd2VsbCBvdmVyIDM1LDAwMCEgIEZvciB0aGUgZmlyc3QgdGltZSBpbiBhbGwgbXkgeWVhcnMsIEkgd2FzIGFkZXF1YXRlbHkKZW5kb3dlZC4gIEl0IHdhcyBncmVhdC4gIE9mIGNvdXJzZSwgaXQgZGlkbid0IHRha2UgbWUgbG9uZyB0byBmZWVsCmluYWRlcXVhdGUgYWdhaW4gc28gSSBhbSB1c2luZyB0aGlzIGV4Y2VsbGVudCBwZW5pcyBlbmxhcmdlbWVudApvcHBvcnR1bml0eSBvbmNlIGFnYWluLiAgRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgYW5kIGdldCByZWFkeSB0byBlbmpveS4gCgogICAgIFBsZWFzZSBzZW5kIGEgY29weSBvZiB0aGlzIGxldHRlciBhbG9uZyB3aXRoIHRoZSBlbmNsb3NlZCBsZXR0ZXIgc28KdG9nZXRoZXIgd2UgY2FuIGNvbnZpbmNlIHBlb3BsZSB3aG8gYXJlIHNrZXB0aWNhbCB0aGF0IGl0IHJlYWxseSB3b3JrcyEgCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdvb2QgTHVjaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFybGVzIFIuIFdoZWFsdG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3QgQWdhdGhlIFF1ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbmFuZS4uLlNjaGFsZS4uLiAoSm9uYXMsIDE3LiBOb3YgMTk5NCwgMDE6MTU6MjIpOgoKLSBXYXMgZGVua3QgZWluZSBuaWNodCBicnVlbmV0dGUgdW5kIGF1Y2ggbmljaHQgcm90aGFhcmlnZSB1bmQKICB2aWVsbGVpY2h0IG5pY2h0IGFsbHp1IGludGVsbGlnZW50ZSBhbHNvIGdyYWRlenUgdW50eXBpc2NoZQogIEZyYXUsIHdlbGNoZSBlaW5lIEJhbmFuZW5zY2hhbGUgdm9yIHNpY2ggbGllZ2VuIHNpZWh0ID8KCi0gIlNjaGVpc3NlLCBnbGVpY2ggZmxpZWNoIGljaCB3aWVkZXIgYXVmZmUgU2NobmF1dHplLi4uIgoKOi0pCgogLSBiZW11ZWh0IGFudGlzZXhpc3Rpc2NoIHVuZHNvIC0KCiAgICAgICAgICBKb25hcyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9ldHppIChTY2hydW1wZmksIDE3LiBOb3YgMTk5NCwgMDE6Mzk6MjUpOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBpbnRlbGlnZW50ZW0gbU1hbm4gdW5kIGRlbSBPZXR6aT8KRGVuIE9ldHppIGhhYmVuIHNlIHNjaG9uIGdlZnVuZGVuIQoKICAgICAgICAgIFNjaHJ1bXBmaSBzdGVodCB6dSBpaHJlciBNYWVubmVyZmVpbmRsaWNoa2VpdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaHdhcyB2b20gVGVzdGkuLi4gKE5leHR0cnksIDE3LiBOb3YgMTk5NCwgMTE6NTE6MzgpOgpNYWwgbmVuIHBhYXIgbmV0dGUgWnVmYWVsbGUgYXVzIGRlbSBMZWJlbiBlaW5lcyBUZXN0ZXIuICA7LSkKCkluIGVpbmVyIE9ya2hvZWhsZToKPiBmcmFnIG9ya3ZhdGVyIG5hY2ggc2lsdmFuYQpEZXIgT3JrdmF0ZXIgc2FndDogRGllIFdlaXNlIHZvbSBGZWxzIE5pbW1lcmtlaHIga29tbXQgaGllciBuaW1tZXIgaGVyLgpEaWUgT3JrbXV0dGVyIHNldWZ6dDogV2VubiB3aXIgbnVyIGV0d2FzIHR1biBrb2VubnRlbiEKU2lsdmFuYSBzYWd0OiBJY2ggc3RlaGUgbmViZW4gRGlyLCBEdSBPY2hzZSEKRGVyIE9ya3ZhdGVyIHNhZ3Q6IFRzY2h1bGRpZ3VuZy4uLgoKSW4gZWluZXIgYW5kZXJlbiBIb2VobGU6CnVudCBsaWNodHNjaGVpbgpEZXIgc2Nod2FjaGUgTGljaHRzY2hlaW4gcmVpY2h0IG5pY2h0LCB1bSBpbiBkZXIgRHVua2VsaGVpdCBldHdhcyBzZWhlbiB6dQprb2VubmVuLgpEaWUgRmFja2VsIGVybGlzY2h0IHVuZCBlcyB3aXJkIGR1bmtlbC4KdW50IGR1bmtlbGhlaXQKRXMgaXN0IHp1IGR1bmtlbC4KenVlbmRlIGZhY2tlbCBhbi4KRHUga2FubnN0IHdpZWRlciBldHdhcyBzZWhlbi4KdW50IGR1bmtlbGhlaXQKSmV0enQsIHdvIER1IGVpbmUgRmFja2VsIGFuZ2V6dWVuZGV0IGhhc3QsIGlzdCBlcyBuaWNodCBtZWhyIGR1bmtlbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPZXR6aSAoQ2FyYWRocmFzLCAxNy4gTm92IDE5OTQsIDE2OjIxOjU0KToKIyEgcm49U2NocnVtcGZpIHJ0PTc4NTAzMjc2NQpTb3Nvb29vb28sIFNjaHJ1bXBmaSwgdW5kIHNvIGVpbmVyIGhhYiBpY2ggZWluIG5ldWVzIHVuZCB1bmdlYnJhdWNodGVzCkJsdXRzYXVnZXItU2Nod2VydCBnZXNjaGVua3Q/IE5pZWVlZWVlZWUgbWVociwgc2FjaCBpY2ggRGlyLCBuaWVlZWVlZWUKbWVoci4gVW5kIGpldHp0IHNhY2ggbmljaHQsIGljaCBzZWkga2VpbiBNYW5uIHNvbmRlcm4gZWluIFByb3BoZXQsIGRlbm4Kc29uc3QgcnVwZnQgRGlyIG1laW5lIEdhdHRpbiB1bmQgaG9mZmVudGxpY2ggZXRsaWNoZSBhbmRlcmUgRnJhdWVuCnNhZW10bGljaGUgRmVkZXJuLCBzbyBkYXNzIER1IG51ciBub2NoIGluIGVpbmUgQnJhdHJvZWhyZSBwYXNzdC4KKmdydW1tZWwqICpncm9sbCogSWNoIGhhYiBqYSBuaXggZGFnZWdlbiBkYXNzIER1IHZpZWxlIE1hZW5uZXIgbmljaHQgbWFnc3QsCmFiZXIgd2VubiBEdSBkYXMgdmVyYWxsZ2VtZWluZXJzdCwgaGVsZiBpY2ggRGlyIGViZW4gbmljaHQgbWVoci4KCiAgICAgdHNjaG9lICAgICAgICAgQ2FyYWRocmFzIGRlciBld2lnZSBQcm9waGV0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXMgZGVtIEJhZCBLb2VuaWdzaG9mZW5lciAiQm90ZW4gdm9tIEdyYWJmZWxkIjogKFllbmRpLCAxNy4gTm92IDE5OTQsIDIxOjE3OjA1KToKCiJUaGVvcmV0aXNjaGVyIFVudGVycmljaHQgdW5kIHByYWt0aXNjaGUgVWVidW5nZW4gLQogTGFuZHdpcnRlIGtvZW5uZW4gbmFjaCBJbnRlbnNpdmt1cnMgaWhyZSBTY2h3ZWluZSBrdWVuZnRpZyBzZWxic3QgYmVzYW1lbi4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NoaWxkIGluIGVpbmVtIEZyZWliYWQgaW4gTWlhbWk6IChZZW5kaSwgMTcuIE5vdiAxOTk0LCAyMToxOToyMyk6CgoiRGFzIEhpbmVpbndlcmZlbiB2b24gQmFkZWdhZXN0ZW4gdW5kIHNvbnN0aWdlbSBVbnJhdCBpbiBkYXMgU2Nod2ltbWJlY2tlbgogaXN0IG5pY2h0IGdlc3RhdHRldCEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzIGRlciBIZWVyZXNkaWVuc3R2b3JzY2hyaWZ0OiAoWWVuZGksIDE3LiBOb3YgMTk5NCwgMjE6MjU6MzIpOgoKIkR1cmNoIEthZWx0ZSB3aXJkIGRlbSBtZW5zY2hsaWNoZW4gS29lcnBlciBXYWVybWUgZW50em9nZW4uIFtob2VydCwgaG9lcnQhXQogSXN0IGRlciBXYWVybWV2ZXJsdXN0IGdyb2Vzc2VyIGFscyBzZWluZSBXYWVybWVlcnpldWd1bmcsIHNvIGZyaWVydCBkZXIKIEJldHJvZmZlbmUuIgoKTWFubm9tYW5uLi4uCkRhcyBUb2xsc3RlIGlzdCBqYSBub2NoLCBkYXMgZGllc2VyIHVtc3RhZW5kbGljaCB1bXNjaHJpZWJlbmUgVW1zdGFuZCBuaWNodAplaW5tYWwgbWVkaXppbmlzY2gKa29ycmVrdCBpc3QsIHdlaWwgImZyaWVyZW4iIG9mdCBuaWNodHMgbWl0IG9iamVrdGl2ZXIgV2Flcm1lIG9kZXIgS2FlbHRlCnp1IHR1biBoYXQsIHdpZSBqZWRlciBiZXN0YWV0aWdlbiBrYW5uLCBkZXIgc2Nob24gZWlubWFsIFNjaHVldHRlbGZyb3N0CmhhdHRlLi4uCgpHb3R0LCBzaW5kIGRpZSBkb29mLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRE9TIChSb2NodXMsIDE3LiBOb3YgMTk5NCwgMjE6NDk6NDQpOgpBdXMgZWluZXIgU2lnbmF0dXI6CkRhcyBXb2hsIHZvbiB2aWVsZW4gVGFza3MgaXN0IHdpY2h0aWdlciBhbHMgZGFzIFdvaGwgV2VuaWdlcgotIG9kZXIgZWluZXMgRWluemVsbmVuOiBHaWIgRDBTIGtlaW5lIENoYW5jZSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlIFBlbmlzdmVybGFlbmdlcnVuZyAoR3JpbW1ib3JuLCAxOC4gTm92IDE5OTQsIDAxOjE2OjE3KToKCkFsc28sIHZpZWxsZWljaHQgb3V0ZSBpY2ggbWljaCBqYSB3aWVkZXIgZnVlcmNodGVybGljaCwgYWJlcjoKRGVuIEtvcGYgKGFsc28gZG9jaCB3b2hsIGRpZSBFaWNoZWwpIGFic2NobmVpZGVuLCBkZW4gUmVzdCBpbiA1IGdsZWljaGdyb3NzZQpTdHVlY2tlIHNjaG5laWRlbiB1bmQgZGFzIGdhbnplIGF1ZiBFaXMgZ2VsZWd0OiBEYXMgZ2lidCBpbW1lciBub2NoIGVpbiBpbmNoCigyLDVjbSkgcHJvIFN0dWVjaz8KCkhtbSwgZGFzIGthbm4gaWNoIG1pciB6dW1pbmRlc3QgYmVpIG1pciBuaWNodCB2b3JzdGVsbGVuLi4uCgpJbiBzZWluZW4gaGVpbGlnc3RlbiBHZWZ1ZWhsZW4gYWxzIE1hbm4genV0aWVmc3QgZ2V0cm9mZmVuLAoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo9OikpIChadWVyaWxldSwgMTguIE5vdiAxOTk0LCAwNDo1NzoxMyk6CnNhbGkgemFlbWUsCgpbVG9kOl0gRWluIFN0ZWluYmVpc3NlciBoYXQgZ2VyYWRlIEtlcm1pdCB1bWdlYnJhY2h0LgpbQWxsZ2VtZWluOlJ5bmVdIHNlaGVyIHdpcmQgaGllciBzb3dpZXNvIGplZGVyIG1pdHRsZXJ3ZWlsZQpbQmVpbGVpZDpSeW5lXSBGTFcKW0FsbGdlbWVpbjpXdXJdIGJlaWxlaWQga2VybWl0LCBkZXIgYXVmIGRlbiB6dCB3YXJ0ZW5kZQotIHJ5bmUgbnVyIGljaCBuaWNodCA9OigKW0FsbGdlbWVpbjpadWVyaWxldV0gcnluZSBudXIgaWNoIG5pY2h0ID06KAo+IG5uIDEKUnVicmlrIDE6IGFsbGdlbWVpbmVzCk5peCBOZXVlcyBpbiBkaWVzZXIgUnVicmlrLgo+IFtCZWlsZWlkOkthcWluXSBJbiB0aWVmZXIgVHJhdWVyIGxlaWRldCBLYXFpbiBiZWkuLi4KW0JlaWxlaWQ6QXNtb2Rpc10gQWxsZSBzdGVpbmJlaXNzZXIgdG90PwpbVG9kOl0gRWluIFN0ZWluYmVpc3NlciBoYXQgZ2VyYWRlIERheCB1bWdlYnJhY2h0LgpSeW5lIGtudWRkZWx0IERpY2ggYXVmbXVudGVybmQgYXVzIGRlciBGZXJuZS4KW0FiZW50ZXVlcjpBc21vZGlzXSBPZmZlbnNpY2h0bGljaCBuaWNodCA6KQpbQmVpbGVpZDpSeW5lXSBGTFcKW0FsbGdlbWVpbjpXdXJdIGJlaWxlaWQgZGF4CkxhdXJpbiBzYWd0OiA8SGljaz4hCi0gbmVpbiBhc21vZGlzLCByZWljaHQgZGlyIGRpZXNlIGFudHdvcnQgPyA9OikKW0FsbGdlbWVpbjpadWVyaWxldV0gbmVpbiBhc21vZGlzLCByZWljaHQgZGlyIGRpZXNlIGFudHdvcnQgPyA9OikKPiAtQiBCRUlMRUlECltCZWlsZWlkOlp1ZXJpbGV1XSBCRUlMRUlECj4gRHUgcnVlbHBzdC4KCnRzY2h1ZXNzIHphZW1lID06KSkgWnVlcmlsZXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZ2llciB1bnRlciBzaWNoLi4uIChTaWx2YW5hLCAxOC4gTm92IDE5OTQsIDE2OjAzOjU5KToKKioqIERpZXNlciBSYXVtIHdpcmQgZ2VyYWRlIG5ldSBnZWxhZGVuICoqKgpIb2JvIGVyc2NoZWludCBhdXMgbWFnaXNjaGVtIExpY2h0LgpFaW4gU2lsYmVybG9ld2UgZXJzY2hlaW50IGF1cyBtYWdpc2NoZW0gTGljaHQuCkR1IHNhZ3N0OiBgYWxsbyEgSGVyemxpY2ggV2lsbGtvbW1lbiBpbiBUYXJhbWlzIQpIb2JvIGdyaW5zdC4KSGlnaGxhbmRlciBsZWd0IGVpbmUgZWxlZ2FudGUgUHVua3RsYW5kdW5nIHZvciBEaXIgaGluLApEdSBzYWdzdDogU3VjaCBiaXR0ZSBuaWNodCBuYWNoIERldGFpbHMgLSBlcyBoYXQgbm9jaCBrYXVtIHdlbGNoZSEKRHUgc2Fnc3Q6IEhhbGxvLCBIaWdobGFuZGVyISBBdWNoIERpciBlaW4gaGVyemxpY2hlcyBXaWxsa29tbWVuIGluIFRhcmFtaXMhCkR1IHNhZ3N0OiA7LSkpKQpIZXhjaGVuIEhvYm8gc2FndDogZHUgd2Vpc3N0IGRvY2gsIGRhc3MgbWFnaWVyIG5pZSByYXVtYmVzY2hyZWlidW5nZW4gbGVzZW4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IDspCkhpZ2hsYW5kZXIgc2FndDogSGFsbG8sIFNpbHZhbmEgOj4KSG9ibyBncmluc3QgSGlnaGxhbmRlciBhbi4KSG9ibyB2ZXJ3dXNjaGVsdCBIaWdobGFuZGVycyBGZWRlcm4uCkR1IHNhZ3N0OiBNYWdpZXIgdmllbGxlaWNodCBuaWNodCwgQWJlciBNdWV0dGVyLi4uIDstKQpIaWdobGFuZGVyIHNhZ3Q6IEd1dCwgSG9ibyA6PgpIb2JvIGdyaW5zdCB6dWZyaWVkZW4uCllhbnRybyBlcnNjaGVpbnQgaW4gZWluZW0gZ2xlaXNzZW5kZW4gTGljaHQgdm9yIERpciB1bmQgZXJmdWVsbHQgRGljaCBkdXJjaApzZWluIExhZWNoZWxuIG1pdCBlaW5lciBzZWx0c2FtZW4gTWFnaWUuCllhbnRybyBncmluc3QuCkhvYm8gZ3JpbnN0LgpZYW50cm8ga251ZGRlbHQgSGlnaGxhbmRlciwgZWluZW4gU2lsYmVybG9ld2VuLCBIb2JvIHVuZCBEaWNoLgpIZXhjaGVuIEhvYm8gc2FndDogVklFUj1Eb2tvIDopKSkKWWFudHJvIGp1YmVsdC4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IHdhcz8KTmFjaHJpY2h0IGFiZ2VzY2hpY2t0LgpEdSBzYWdzdDogSGFzdCBEdSBLYXJ0ZW4gZGE/CllhbnRybyBzYWd0OiBkb2tvIGRva28gZG9rbwpIb2JvIHNjaHVldHRlbHQgc2ljaC4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IG5lLCBoYWIgaWNoIG5pY2h0Li4uCllhbnRybyBzYWd0OiBpY2ggaG9mZmUsIG9obmUgOS1lcgpIZXhjaGVuIEhvYm8gc2FndDoga2xhciBvaG5lIQpZYW50cm8gZnJhZ3Q6IFNjaHdlaW5lPwpIZXhjaGVuIEhvYm8gc2FndDogbmVpbgpZYW50cm8gc2FndDogb2NoCllhbnRybyBncmluc3QuCkhleGNoZW4gSG9ibyBzYWd0OiB6d2VpdGVyIHplaG5lciBzdGljaHQKWWFudHJvIGZyYWd0OiBXZWxjaGUgU29saT8KRHUgc2Fnc3Q6IFp3ZWl0ZSBIZXJ6MTAgc3RpY2h0IGVyc3RlPwpZYW50cm8gc2FndDogamEsIGlzdCBkb2NoIG5vcm1lbApZYW50cm8gc2FndDogbm9ybWFsCkR1IHNhZ3N0OiBMZWlkZXIgbmljaHQuLi4gOy0oCllhbnRybyBzYWd0OiBpbiBLb2VsbiBzY2hvbgpZYW50cm8gZ3JpbnN0IERpY2ggYW4uCkR1IHNhZ3N0OiBJY2ggemllaGUgdW0uLi4gOy0pCllhbnRybyBzYWd0OiBadSBtaXI/PwpZYW50cm8gbGFlY2hlbHQgRGljaCBhbi4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IG1hbiBtdXNzIHNpY2ggaGFsdCBkaWUgbWl0c3BpZWxlciBzZWxiZXIgemllaGVuLCBkYW5uCkhleGNoZW4gSG9ibyBzYWd0OiBrZW5uZW4gc2llJ3MgbmljaHQgYW5kZXJzIDopCllhbnRybyBkZW5rdCAgIC4gbyBPIChXTCBXTCBXTCBXTCBXTCBXTCBXTC4uLikKRHUgdHJpdHRzdCBZYW50cm8sIGFiZXIgbnVyIGdhbnogc2FuZnQuCllhbnRybyBzYWd0OiBoaWhpaGkKSGlnaGxhbmRlciBncmluc3QuCkR1IHNhZ3N0OiBLaXR6ZWxpZz8KSGlnaGxhbmRlciBnZWh0IG5hY2hoZXIgYXVjaCBtYWwgaGVpbS4uLgpIZXhjaGVuIEhvYm8gc2FndDogenUgc2ljaD8KWWFudHJvIHNhZ3Q6IEljaCBob2ZmZSwgYmVpIGV1Y2ggaXN0IGF1Y2ggZGVyICJGbGVpc2NobG9zZSIgd2VnZW4gZXJob2VodGVyCllhbnRybyBzYWd0OiBMYW5nd2VpbGUgdmVyYm90ZW4gOikKSGlnaGxhbmRlciBzYWd0OiBTY2hvLCB3b2hpbiBzb25zdC8KSGlnaGxhbmRlciBzYWd0OiA/CkhleGNoZW4gSG9ibyBzYWd0OiBuamVbMTk2enQsIGRlbiBnaWJ0J3Mgc28gc2VsdGVuCkR1IHNhZ3N0OiBGbGVpc2NobG9zIGdpYnQncyBuaWNodCwgYWJlciBuZSBudWxsLi4uCkhpZ2hsYW5kZXIgc2FndDogS2FyaW46IERvcmlzIHdvaG50IGRvY2ggYXVmJ20gZ2xlaWNoZW4gRmx1ciA6PgpZYW50cm8gc2FndDogYWVobW1tIEthcmluPz8KWWFudHJvIGRldXRldCBhdWYgRGljaC4KRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpZYW50cm8gZ3JpbnN0LgpIb2JvIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpIb2JvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkR1IHdhZWx6dCBEaWNoIHZvciBMYWNoZW4gYXVmIGRlbSBCb2Rlbi4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IG5hamEuLiBpbiBkZWluIG9kZXIgaWhyIHppbW1lcj8KWWFudHJvIGtyYXR6dCBzaWNoIGFtIEtvcHAuCkR1IHVtYXJtc3QgSG9ibyB2b24gTGFjaGtyYWVtcGZlbiBnZXNjaHVldHRlbHQuCllhbnRybyBoYXQgd29obCBrZWluZSBBaG51bmcuCllhbnRybyB6dWNrdCByYXRsb3MgbWl0IGRlbiBTY2h1bHRlcm4uCkhleGNoZW4gSG9ibyBzYWd0OiBpY2ggbXVzcyBtZWluZXIgdG9jaHRlciBqYSBhZWhubGljaCBzZWhlbi4uLi4KRHUga2ljaGVyc3QuIChXaWUgYWxiZXJuIHZvbiBEaXIpCkhpZ2hsYW5kZXIgc2FndDogU2lsdmFuYSBoZWlzc3QgYXVjaCBLYXJpbj8KWWFudHJvIG5pY2t0IHp1c3RpbW1lbmQuCkhvYm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkR1IGJyaWNoc3Qgdm9yIExhY2hlbiB6dXNhbW1lbi4KSGlnaGxhbmRlciBzYWd0OiBBcmdsISA6PgpZYW50cm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkhpZ2hsYW5kZXIgcm90Zmx0LgpEdSB3YWVsenQgRGljaCB2b3IgTGFjaGVuIGF1ZiBkZW0gQm9kZW4uCllhbnRybyBwcnVzdGV0CkhpZ2hsYW5kZXIgc2FndDogSWhyIFBhcHBuYXNlbiwgYWxsZSBtaXRlaW5hbmRlciA6PgpIaWdobGFuZGVyIHNhZ3Q6IExhc3N0IG1pY2ggZG9jaCBuaWNodCBkdW1tIHN0ZXJiZW4gOj4KRHUgc2Fnc3Q6IEhpZ2ggLSBJY2ggd2FyIGF1ZiBkZXIgUGFydHkuIER1IHNvbGx0ZXN0IGVzIGJlc3NlciB3aXNzZW4uLi4gOy0pCkhleGNoZW4gSG9ibyBzYWd0OiBpY2ggYmluIGthcmluLCBzaWx2YW5hIGlzdCBuaWNodCBrYXJpbiwgeWFudHJvIGF1Y2gKSGV4Y2hlbiBIb2JvIHNhZ3Q6IG5pY2h0Li4gdW5kIGR1IHdvaGwgYXVjaCBuaWNodCwgb2Rlcj8KSGlnaGxhbmRlciBzYWd0OiBTaTogRXMgc2luZCBfc28gdmllbGVfIExldXRlIGF1ZiBkZXIgUGFydHkgZ2V3ZXNlbi4gOj4KWWFudHJvIHNhZ3Q6IFNpbCBpc3QgZGllIEtsZWluZSBCbG9uZGUgbWl0IGRlbSBHcnVlbmVuIFNjaHVoCkhpZ2hsYW5kZXIgc2FndDogTmEsIGVnYWwuIEVyc3QgbWFsIGluIG1laW5zLgpEdSBzYWdzdDogV2FzIHd1ZXJkZXN0IER1IGF1cyBtZWluZXIgZS1tYWlsLUFkcmVzc2Ugc2NobGllc3NlbiwgSGlnaGxhbmRlcj8KWWFudHJvIHNhZ3Q6IEljaCBkYWNodGUgaW1tZXIsIEhvYm8gd2FlcmUgZWluIE1hbm4uLi4gc29sbHRlIG9lZnRlcgpZYW50cm8gc2FndDogZmluZ2Vybi4uLgpZYW50cm8gZ3JpbnN0IEhvYm8gYW4uCkhpZ2hsYW5kZXIgZ3JpbnN0LgpIaWdobGFuZGVyIHNhZ3Q6IExhc3MgbGllYmVyIGRpZSBGaW5nZXIgdm9uIEthcmluIDs+IDs+CllhbnRybyBzYWd0OiBEZWluIEZyZXVuZCBoZWlzc3QgVWxyaWNoLCBTaWx2YW5hIDopKSkKRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpZYW50cm8gZnJhZ3Q6IFdpZXNvPz8/IEJvaW5ndCBlcyBzb25zdD8/Pz8KRHUgc2Fnc3Q6IE5pY2h0IGdhbnogdmVya2VocnQuLi4gOy0pCllhbnRybyBncmluc3QgSGlnaGxhbmRlciBhbi4KSGlnaGxhbmRlciBncmluc3QuCkhpZ2hsYW5kZXIgc2FndDogU28gaW4gZXR3YSwgamEuCkhleGNoZW4gSG9ibyBzYWd0OiBhbHNvIGljaCBoYWIgZGljaCBmdWVyIHppZW1saWNoIGRldXRsaWNoIG1hbm4gZ2VoYWx0ZW5hdWYKSGV4Y2hlbiBIb2JvIHNhZ3Q6IGRlciBmZXRlLCB0b2VjaHRlcmNoZW4gOikKRHUgendpbmtlcnN0IEhvYm8genUuCkR1IHNhZ3N0OiBXaWUgbWFuIHNpY2ggdmVyc3RlbGxlbiBrYW5uLi4uIDstKQpIb2JvIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpZYW50cm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkhleGNoZW4gSG9ibyBzYWd0OiBnZWhvZXJ0IGZhWzE5Nnp0IGluIGRpZSBuZXdzLi4uCkJvaW5nIGlzdCBwbG9ldHpsaWNoIGRhLCBzZWluIHdlaWNoZXMsIGdydWVuZXMgRmVsbCBiZXdlZ3Qgc2ljaCBub2NoIGxlaWNodC4KRWluIFN0ZWluYmVpc3NlciBrb21tdCBoZXJlaW5nZWR1ZXN0LgpCb2luZyBzYWd0OiBpY2ggYmVrb21tZSBBTExFUyBtaXQhISAqZ3JpbnMqCkVzIEJvaW5ndC4KWWFudHJvIGZyYWd0OiBIYXN0IGR1IGVpbmVuIHR5cG8tZmx1Y2gsIEhvYm8/PwpIaWdobGFuZGVyIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpIaWdobGFuZGVyIHdhZWx6dCBzaWNoIHZvciBMYWNoZW4gYXVmIGRlbSBCb2Rlbi4KWWFudHJvIGdydW1tZWx0LgpIZXhjaGVuIEhvYm8gc2FndDogamEsIHZvbiBkZXIgdGFzdGF0dXIgdmVyaGFlbmd0IDooCkR1IHNhZ3N0OiBBaCEiIERlciB2aWVydGUgQmVzdWNoZXIgaW4gVGFyYW1pcyEgV2lsbGtvbW1lbiEKWWFudHJvIGtudWRkZWx0IEJvaW5nIGdlYm9pbmd0LgpZYW50cm8gZ3JpbnN0LgpIb2JvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkhpZ2hsYW5kZXIgdmVyd3VzY2hlbHQgZnJvZWhsaWNoIEJvaW5ncyBGZWxsLgpIaWdobGFuZGVyIGh1ZXBmdCB1bSBCb2luZyB1bmQgSG9ibyBoZXJ1bS4KSG9ibyBnaWJ0IEJvaW5nIHNvIGRhc3MgRGlyIGRpZSBMdWZ0IHdlZyBibGVpYnQgZWluZW4gdGllZmVuIHVuZApoaW5nZWJ1bmdzdm9sbGVuIEt1c3MuCllhbnRybyBmcmFndDogV29mdWVyIHN0ZWh0IE8tWS1FLCBCb2luZz8KQm9pbmcga251ZGRlbHQgSG9ibyAxMDAwIG1hbCwgbWl0IGFsbGVuIGFjaHQgQXJtZW4sIGJlc2l0emVyZ3JlaWZlbmQsCiJkdS1mZWhsc3QtbWlyLXNvIi1tYWVzc2lnLCBiaXMgenVyIHZvZWxsaWdlbiBFcnNjaG9lcGZ1bmcsIGZyZXVkaWcsIGdhbnoKYmVzb25kZXJzIGxpZWIsIGdla29ubnQsIGdhbnogZ2FueiBnYW56IGxpZWIsIGhlZnRpZywgaGVtbXVuZ3Nsb3MsCmhpbmdlYnVuZ3N2b2xsLCBrbnVkZGVsbmQsIGxlaWRlbnNjaGFmdGxpY2gsIHNvIHdpbGQsIGRhc3MgZGlyIGRpZSBMdWZ0IHdlZwpibGVpYnQsIG1laHIgYWxzIHZlcmxpZWJ0LCBtZWhyIGFscyBnbHVlY2tsaWNoLCBub2NoIGdsdWVja2xpY2hlciwgbmljaHQgZ2FuegpwZXJmZWt0IGFiZXIgdHJvdHpkZW0gZ2FueiB3dW5kZXJiYXIsIHNvIGdsdWVja2xpY2ggd2llIG5vY2ggbmllLCB3aWUgZXMgbnVyCmRpZSBTdGVpbmJlaXNzZXIga29lbm5lbiwgc3R1ZXJtaXNjaCB1bmQgZ2FueiB1bmdsYXVibGljaCB3YWhuc2lubmlnIHVuZAp1ZWJlcmhhdXB0IHRvdGFsLgpCb2luZyBzYWd0OiBPIFkgRSAhCkhpZ2hsYW5kZXIgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkhvYm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCllhbnRybyBmYWVuZ3QgYW4genUgZGVua2VuLgpLbGVpbmUgUmF1Y2h3b2Vsa2NoZW4gc3RlaWdlbiBhdWYuLi4KQm9pbmcgc2FndDogaWNoIGdhYnMgenUsIGRhcyB3YXIgZWluIGFsaWFzIC4uLgpZYW50cm8gZ3J1ZWJlbHQKSG9ibyBiZXN0YWV0aWd0OiBPIFkgRSEKRHUgc2Fnc3Q6IE9oYSEgSmV0enQgaGF0J3MgYXVjaCBCb2luZyBlcndpc2N2aHQuLi4gOy0pKSkKSGV4Y2hlbiBIb2JvIHNhZ3Q6IGR1IGZlaGxzdCBtaXQgc28gbWFlc2lnPyBkYW5uIGtvbW0gIGRvY2ggcnVlYmVyCllhbnRybyBzYWd0OiBPaG5lIFlhbnRybyBFaW5zYW0/Pz8KWWFudHJvIGdyaW5zdC4KQm9pbmcgc2FndDogc2lsdmFuYSwgZGFzIGFsaWFzIGlzdCBhZWx0ZXIgYWxzIGR1IDspCkhpZ2hsYW5kZXIgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCllhbnRybyBkdWNrdCBzaWNoCkhpZ2hsYW5kZXIgc2FndDogSWNoIGthbm4gZ2xlaWNoIG5pbW1lciA6PgpIb2JvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkR1IGtpY2hlcnN0LiAoV2llIGFsYmVybiB2b24gRGlyKQpZYW50cm8gZ3JpbnN0IEJvaW5nIGFuLgpIZXhjaGVuIEhvYm8gc2FndDogc2luZCB3aXIgaGV1dCB3aWVkZXIgZXJuc3QgOikKSGlnaGxhbmRlciBydWZ0OiBXaXIgd2lzc2VuIGVuZGxpY2gsIHdvZnVlciBkYXMgT1lFIHZvbiBCb2luZyBzdGVodCA6PgpIaWdobGFuZGVyIHJ1ZnQ6IE9obmUgWWFudHJvIEVpbnNhbS4uLgpEdSBzYWdzdDogRGFiZWkgYmlzdCBEdSBqdWVuZ2VyIGFscyBpY2guLi4gKnN0YXVuKgpZYW50cm8gZGV1dGV0IGF1ZiBzaWNoIHNlbGJlci4KWWFudHJvIHNjaHVldHRlbHQgaGVmdGlnIGRlbiBLb3BmLgpIZXhjaGVuIEhvYm8gc2FndDogd2VyPyBpY2g/CkhpZ2hsYW5kZXIgc2FndDogQmluIHouWi4gc293aWVzbyBldHdhcyBhbGJlcm4gOj4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGV0d2FzIHNjaG9uIDopCkhvYm8gdmVyd3VzY2hlbHQgSGlnaGxhbmRlcnMgRmVkZXJuLgpZYW50cm8gc2FndDogdmllbGxlaWNodCBtZWludCBCb2luZyBhdWNoIFlldGkKQm9pbmcgc2FndDogbmljaHQgZ2FueiwgaWNoIGJpbiAxNTAsIGR1IGJ2aXN0IGVyc3QgMjYgOikKSGV4Y2hlbiBIb2JvIHNhZ3Q6IHF1YXRzY2guLiBpc3QgZWluIHR5cG8sICBzb2xsdGUgaGVpc3NlbiBPIEggRSA6KQpZYW50cm8gZnJhZ3Q6IFdlbGNoZSBGZWRlcm4sIEhvYm8/CkJvaW5nIHNhZ3Q6IGF1c3NlcmRlbSBrYW5uc3QgZHUgYWxzIG1laW4gZW5rZWwgbmljaHQgYWVsdGVyIHNlaW4gYWxzIGljaApZYW50cm8gZnJhZ3Q6IEhhbGVhPz8/Pz8/Pz8/Pz8KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGRlciBncmVpZiBpc3QgZWluIGdyZWlmLi4gZGVyIGhhdCBudW5tYWwgZmVkZXJuCllhbnRybyBraWNoZXJ0IGhpbnRlciBIb2JvcyBSdWVja2VuLgpIZXhjaGVuIEhvYm8gc2FndDogV1VBSCBoYWxlYQpEdSBzYWdzdDogT2hhISBJY2ggaGFiIG1laW4gUkwtQWx0ZXIgZmFzdCBlaW5nZWhvbHQuLi4gKGluIFRhZ2VuLi4uKQpIb2JvIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpZYW50cm8gd2FlbHp0IHNpY2ggdm9yIExhY2hlbiBhdWYgZGVtIEJvZGVuLgpZYW50cm8gc2NobXVuemVsdC4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGRhIGhhYiBpY2ggZXMgc2Nob24gdWViZXJob2x0CkR1IGdyaW5zdCBIb2JvIGFuLgpZYW50cm8gc2FndDogZnVlciBuZSBPbWEgaGFzdGUgRGljaCBnYW56IGd1dCBnZWhhbHRlbiwgSG9ibyA7KQpIZXhjaGVuIEhvYm8gc2FndDogbmUsIGljaCBiaW4gbXV0dGVyCkR1IGRlbmtzdCAgIC4gbyBPIChXYXMgaGFiIGljaCBmdWVyIGVpbmUganVuZ2UgTXV0dGVyKQpIZXhjaGVuIEhvYm8gc2FndDogYWNoc28uLiBqYSB1bmQgb21hCkJvaW5nIHNhZ3Q6IGljaCBoYWJzIGF1Y2gga25hcHAgdWViZXJob2x0CkR1IGxhZWNoZWxzdCBIb2JvIGFuLgpZYW50cm8gZnJhZ3QgSG9ibzogRHUgd29obnN0IG5pY2h0IHp1ZmFlbGxpZyBpbiBlaW5lbSBMdWZ0c2NobG9zcz8KSG9ibyBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KRHUgc2Fnc3Q6IFRhdHNhZWNobGljaCwgQm9pbmc/CkJvaW5nIHNhZ3Q6IHlhbnRybywgd2lyIHdvaG5lbiB6d2FyIHdlaXQgb2JlbiwgYWJlciBuaWNodCBpbiBlaW5lbSBzY2hsb3NzIDspCkhleGNoZW4gSG9ibyBzYWd0OiBvZWhtLCBuZWluLi4gd2llc28wPwpIb2JvIGdyaW5zdCBCb2luZyBhbi4KQm9pbmcgZXJpbm5lcnQgc2ljaCBtaXQgR3JhdXNlbiBhbiBNb2ViZWwgdW5kIHZpZWxlIFRyZXBwZW4gLi4uCllhbnRybyBzYWd0OiBkYW5uIGlzdCBqYSBndXQuLi4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGJvaW5nLCB3aXIgbXVlc3NlbiBub2NoIHVuc2VyZSBoYXVzaGFsdHNxdWVzdCBiYXVlbgpIaWdobGFuZGVyIHNhZ3Q6IEFsc28gbWVpbiBSTCBpbiBKYWhyZW4gaXN0IG5pY2h0IGhhbGIgc28gdmllbCB3aWUgbWVpbiBNdWQKSGlnaGxhbmRlciBzYWd0OiBpbiBUYWdlbiAoTUcpCkhvYm8gZ3JpbnN0LgpCb2luZyBzYWd0OiBoaWdobGFuZGVyLCBzbyBnZWh0J3MgbWlyIGF1Y2ggOykKSGV4Y2hlbiBIb2JvIHNhZ3Q6IG5pY2h0IG1hbCB2aWVyIHRlbCwgYm9pbmcKQm9pbmcgc2FndDogcHNzdCEKQm9pbmcgc3RvcGZ0IEhvYm8gZGFzIE1hdWwgbWl0IGVpbmVtIGRpY2tlbiBLdXNzLgpZYW50cm8gc3RhdW50IHVlYmVyIEJvaW5nLgpIaWdobGFuZGVyIHNhZ3Q6IEJpbiBqYSBncmFkIGVyc3QgMjUgOj4KWWFudHJvIHNhZ3Q6IE1hdWw/PwpCb2luZyBzYWd0OiB5YW50cm8sIGRhcyBoZWlzc3QgaGFsdCBzbwpIb2JvIGt1ZXNzdCB3aWxkIHp1cnVlY2sgdW5kIGJyYWJiZWx0IGRhYmVpIHdhcyB2b24gJ1plbnN1cicKWWFudHJvIHNhZ3Q6IHRzIHRzIHRzCi4uLgpEdSBkZW5rc3QgICAuIG8gTyAoSnVuZ2VzIEdlbXVlc2UpCkJvaW5nIHNhZ3Q6IGplbWFuZCBkYXMgbWF1bCBzdG9wZmVuCkJvaW5nIHNhZ3Q6IGplbWFuZCBkZW4gbXVuZCBzdG9wZmVuIGtsaW5ndCBuaWNodCBzbyBkb2xsLCBvZGVyPyA7KQpZYW50cm8gc2FndDogZGVyIGVpZ2VuZW4gRnJhdS4uLgpEdSBzYWdzdDogTmEsIGphIC0gU29vbyB3dWVyZCBpY2ggbWlyIGRhcyBldnRsIGF1Y2ggZ2VmYWxsZW4gbGFzc2VuLi4uIDstKQpIZXhjaGVuIEhvYm8gc2FndDogYWJlciBuaWNodCB2b24gQm9pbmchCkJvaW5nIHNhZ3Q6IG5pY2g/CkJvaW5nIHNhZ3Q6IG5hIGd1dApEdSBzYWdzdDogTm9lLCBiZXN0aW1tdCBuaWNodC4uLgpIZXhjaGVuIEhvYm8gc2FndDogTkVJTiEKQm9pbmcgZ2lidCBIb2JvIG1hdWxzdG9wZmVuZGVyd2Vpc2UgZWluZW4gdGllZmVuIHVuZCBoaW5nZWJ1bmdzdm9sbGVuIEt1c3MuCkhvYm8gdHJpdHQgQm9pbmcuCllhbnRybyBkZW5rdCAgIC4gbyBPIChFaGVrcmFjaCkKRHUgZGVua3N0ICAgLiBvIE8gKFZvbSBlaWdlbmVuIE9wYT8gKnNjaGF1ZGVyKikKWWFudHJvIGRlbmt0ICAgLiBvIE8gKFNjaGVpZHVuZz8pCkJvaW5nIHNhZ3Q6IHdpZXNvIGVoZWtyYWNoPwpIb2JvIGtudXBmdCB1bmQga3VlZmZ0IEJvaW5nLgpIb2JvIGt1ZXNzdCBCb2luZy4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IHdhbm4gd2lyZCBkZW5uIGpldHp0IGRpZSBzY2hlaWR1bmcgZ2Vwcm9nZ3Q/CkR1IHNhZ3N0OiBOSUNIVCEKQm9pbmcgc2FndDogc2NoZWlkdW5nIGhhYiBpY2ggc2Nob24gZWluZSBnZW1hY2h0CllhbnRybyBmcmFndDogV2VyIHdpbGwgc2ljaCBkZW5uIFNjaGVpZGVuIGxhc3Nlbj8KQm9pbmcgc2FndDogaXJnZW5kZWluIGZyb3NjaCB3YXIgZGEgYmV0ZWlsaWd0CkhleGNoZW4gSG9ibyBzYWd0OiBqYSwgYWJlciBudXIgYXVzZ2VzcHJvY2hlbiB1bmQgbmljaHQgZ2Vwcm9nZ3QKQm9pbmcgc2FndDogb2RlciB3YXJzIGVpbiBmcm9zY2ggbWl0IHNjaHJlaWJmZWhsZXI/CkhpZ2hsYW5kZXIgc2FndDogQWNoLCBzY2hvbiB6dW0gMi4gTWFsIHZlcmhlaXJhdGV0LCBCb2luZz8gOz4KQm9pbmcgc2NodWV0dGVsdCBkZW4gS29wZi4KSG9ibyB0cml0dCBIaWdobGFuZGVyLgpCb2luZyBzYWd0OiBub2UKQm9pbmcgc2FndDogbmljaHQgaW4gZGllc2VyIHdlbHQgOikKRHUgc2V1ZnpzdC4KSGlnaGxhbmRlciBzYWd0OiBBdWEhCllhbnRybyBncmluc3QgSGlnaGxhbmRlciBhbi4KSGlnaGxhbmRlciBydWZ0OiBIaWxmZSwgbWVpbmUgYm9lc2UgU3RpZWZtdXR0ZXIgdHJpdHQgbWljaCEKRHUgZGVua3N0ICAgLiBvIE8gKEhpZ2ggaXN0IG1laW4gT25rZWw/Pz8pCllhbnRybyBzdGVsbHQgc2ljaCBzY2h1ZXR6ZW5kIHZvciBkZW4gR3VtbWlhZGxlci4KSG9ibyBsYWNodCB1bm1vZWdsaWNoLgpEdSBkZW5rc3QgICAuIG8gTyAoS29tcGxpemllcnRlIEZhbWlsaWUuLi4pCllhbnRybyBncmluc3QgSG9ibyBhbi4KSG9ibyB0cml0dCBZYW50cm8gdHJlZmZzaWNoZXIuCkhvYm8gZ3JpbnN0LgpIZXhjaGVuIEhvYm8gc2FndDogbXVzcyBqYSBrZWluZXIgdmVyc3RlaGVuCllhbnRybyBzYWd0OiBhaGEuLi4uIGhvYm8gaXN0IGVpbiBad2VpdGkgdm9uIFJ1ZGlyYXR0ZXIgOigKSGV4Y2hlbiBIb2JvIHNhZ3Q6IGhhZT8KWWFudHJvIHNhZ3Q6IGhhc3QgZ2V0cm9mZmVuCllhbnRybyBzdGllcnQgSG9ibyBhbi4KRHUgdHJpdHRzdCBZYW50cm8uCllhbnRybyBzY2huaWVmdC4KWWFudHJvIHNhZ3Q6IG5pY2h0IHZvbiAyIFNlaXRlbgpEdSBzYWdzdDogRGFubiBzZWkgbGllYiB6dSBtZWluZXIgTWFtYSEKSGV4Y2hlbiBIb2JvIHNhZ3Q6IGFsbGUgYXVmIGlobiF2IEw6KU8pCllhbnRybyBhcmdsdCBlaW4gd2VuaWcgdm9yIHNpY2ggaGluLgpEdSBkZW5rc3QgICAuIG8gTyAoQWJlciBuaWNodCBaVSBsaWViIC0gc29uc3QgQm9pbmd0cy4uLikKSG9ibyBnaWJ0IGVpbiBhbGJlcm5lcyBLaWNoZXJuIHZvbiBzaWNoLgpZYW50cm8gcnVmdDogSElMRkUuLi4uUEFQQS4uLi4KWWFudHJvIGFyZ2x0IGVpbiB3ZW5pZyB2b3Igc2ljaCBoaW4uCllhbnRybyBzYWd0OiBQdW1hIGlzdCBqYSBnYXIgbmljaHQgZGEgOygKWWFudHJvIHZlcnN0ZWNrdCBzaWNoIGhpbnRlciBIaWdoCkhpZ2ggdHJpdHQgenVyIFNlaXRlLgpIb2JvIGdyaW5zdC4KWWFudHJvIHNhZ3Q6IFZlcnJhZXRlcgpIaWdobGFuZGVyIHNhZ3Q6IEljaCB0cmV0ZSBOSUNIVCB6dXIgU2VpdGUhCkhleGNoZW4gSG9ibyBzYWd0OiBkaWUgYmFobiBpc3Qgd2llZGVyIGZyZWkuLiBhY2hzbywgd2FzIHNwaWVsZW4gd2lyIGRlbm4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGpldHp0PwpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uCkhvYm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkJvaW5nIGdpYnQgSG9ibyBlaW5lbiB0aWVmZW4gdW5kIGhpbmdlYnVuZ3N2b2xsZW4gS3Vzcy4KWWFudHJvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCkhpZ2hsYW5kZXIgc2FndDogRlJFQ0hIRUlUISBEdSBzb2xsc3QgZGVuIE5hbWVuIGRlaW5lcyBIaWdobGFuZGVycyBuaWNodApIaWdobGFuZGVyIHNhZ3Q6IG1pc3NicmF1Y2hlbiEKRHUgc2Fnc3Q6IEdlYmVyLURPS08KWWFudHJvIHNhZ3Q6IEJvaW5nIGZ1c2NodApIaWdobGFuZGVyIGZlZGVydCwgd2VpbCBlciBzaWNoIHNvIGF1ZnJlZ3QuIEVyIHdpcmQgc2Nob24gZ2FueiBrYWhsLgpIb2JvIGdpYnQgQm9pbmcgZWluZW4gdGllZmVuIHVuZCBoaW5nZWJ1bmdzdm9sbGVuIEt1c3MuClNpbHZhbmEga2xlYnQgSGlnaGxhbmdlciBlaW4gcGFhciBGZWRlcm4gd2llZGVyIGFuLgpIb2JvIGdyaW5zdCBIaWdobGFuZGVyIGhlcmF1c2ZvcmRlcm5kLiBhbi4KWWFudHJvIHp1ZW5kZXQgdW50ZXIgSGlnaGxhbmRlciBlaW4gRmV1ZXIgYW4uLi4uIG51ciB6dW0gd2Flcm1lbiA7KQpIaWdobGFuZGVyIHdpbGwgZGFzIGVjaG9sb2cgd2llZGVyIGhhYmVuISEhIDo+CkhleGNoZW4gSG9ibyBzYWd0OiB1bmQgV1VNTVMgZGFzIG5hZWNoc3RlIG9wZmVyIGlzdCBnZWZ1bmRlbiA6KQpIb2JvIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCllhbnRybyBncmluc3QgSG9ibyBhbi4KWWFudHJvIHBmZWlmdCB1bnNjaHVsZGlnLgpZYW50cm8genVlY2t0IGVpbmVuIFNwaWVzcwpZYW50cm8gc3RpZXJ0IEhpZ2hsYW5kZXIgYW4uCkR1IGRlbmtzdCAgIC4gbyBPIChFciB3aXJkIGRvY2ggbmljaHQuLi4pCkhleGNoZW4gSG9ibyBzYWd0OiBoZXksIGVzIGdpYnQga2VpbiBncmlsbGhhZWhuY2hlbi4gaGV1dCBpc3QgZnJlaXRhZy4KWWFudHJvIHNhZ3Q6IGFlaG1tICAgYmlzdCBEdSBlaW4gRklTQ0gtQWRsZXIsIEhpZ2g/CkR1IHNhZ3N0OiBIaWVyIGdpYnQncyBhdWNoIG5lIEtuZWlwZSwgZmFsbHMgaWhyIGh1bmdyaWcgc2VpZC4uLgpZYW50cm8gc2FndDogZXMgaXN0IGphIEZyZWl0YWcKSGV4Y2hlbiBIb2JvIHNhZ3Q6IG5laW4sIGlzc2VyIG5pY2h0IQpZYW50cm8gc2V1Znp0LgpIaWdobGFuZGVyIHN0YXJydCBZYW50cm8gbWl0IGVpbmVtIGdlZmFlaHJsaWNoZW4gRnVua2VsbiBpbiBkZW4gQXVnZW4gYW4uCllhbnRybyBzdGVja3QgZGVuIFNwaWVzcyB3aWVkZXIgd2VnCkhleGNoZW4gSG9ibyBzYWd0OiBub2UsIGljaCBoYWIgbWVuc2EgZ3JhZCBoaW50ZXIgbWlyLCBtaXIgaXN0IGRlciBhcHBldGl0CkhleGNoZW4gSG9ibyBzYWd0OiBmdWVyIGRpZSBuYWVjaHN0ZW4gZHJlaSBzdHVuZGVuIHZlcmdhbmdlbgpZYW50cm8gc2FndDogSWNoIGtyaWVnIG5hY2ggZGVyIE1lbnNhIGltbWVyIEh1bmdlciA7KQpEdSBkZW5rc3QgICAuIG8gTyAoTWlzdCAtIG5lbiBBcnp0IGdlZ2VuIHZlcmRvcmJlbmVuIE1hZ2VuIGhhYiBpY2ggbm9jaApuaWNodC4pCkhvYm8gZ3JpbnN0LgpZYW50cm8gZ3JpbnN0LgpCb2luZyBoYXQgaGV1dGUgaW4gZGVyIE1lbnNhIGZhc3QgaW5zIEVzc2VuIGdla290enQgLi4uCkhleGNoZW4gSG9ibyBzYWd0OiBuZW4ga3JwZnVzY2hlci4uCkJvaW5nIHNhZ3Q6IGhhZXR0ZSBkYXMgYXVzc2VoZW4gbmljaHQgZ3Jvc3MgdmVyYWVuZGVydApZYW50cm8gZnJhZ3QgQm9pbmc6IEZpc2NoPwpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uCkhvYm8gYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCllhbnRybyBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KQm9pbmcgc2FndDogcmluZHNndWxhc2NoCkhleGNoZW4gSG9ibyBzYWd0OiBzdGltbXQsIHNhaCBzbyBzY2hvbiBla2xpZyBhdXMgOigKQm9pbmcgd3Vlcmd0IGpldHp0IG5vY2guClNpbHZhbmEgaGFlbHQgQm9pbmcgZWluZW4gRWltZXIgaGluLgpZYW50cm8gc2FndDogYmVpIHVucyBnYWIgZXMgSHVlaG5lcmZyaWthc2VlCllhbnRybyBzdGllcnQgSGlnaGxhbmRlciBhbi4KSG9ibyBnaWJ0IGVpbiBhbGJlcm5lcyBLaWNoZXJuIHZvbiBzaWNoLgpIZXhjaGVuIEhvYm8gc2FndDogZXMgaXN0IHVlYnJpZ2VucyBncmFkIGdyZWlmZW5zY2hvbnplaXQhCllhbnRybyBmcmFndCBIb2JvOiBFaHJsaWNoPwpZYW50cm8gc2FndDogd2VyIGhhdCBkaWUgYXVzZ2VydWZlbj8KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGphLCBoYWIgaWNoIGViZW4gZXJsYXNzZW4uLiBzZWl0IGdlc3Rlcm4gaXN0IHZvbSAxNi4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IG5vd2VtYmVyIGJpcyAxNS4gbm92ZW1iZXIgc2Nob256ZWl0Li4gamV3ZWlscwpIZXhjaGVuIEhvYm8gc2FndDogZWluc2NobGllc3NsaWNoCllhbnRybyBzZXVmenQuCllhbnRybyBkZW5rdCAgIC4gbyBPIChHb2V0dGVyZ2F0dGlubmVuLi4uKQpIb2JvIGdyaW5zdC4KWWFudHJvIGRlbmt0ICAgLiBvIE8gKEpvZnMgRnJhdSBpc3QgZGEgc3BvbnRhbmVyIDspKQpIaWdobGFuZGVyIGRlbmt0ICAgLiBvIE8gKFN0aWVmbWFtYSEgS2FubiBqYSBkb2NoIGxpZWIgc2VpbiA6PikKSGV4Y2hlbiBIb2JvIHNhZ3Q6IGR1IGtvZW5udGVzdCBhbnRoZWEgZmlzY2hlbiB1bmQgYnJhdGVuCllhbnRybyBncmluc3QuCkhvYm8gZ3JpbnN0LgpIZXhjaGVuIEhvYm8gc2FndDogam9mIGlzdCBzcG9udGFuPwpIb2JvIGdyaW5zdCBIaWdobGFuZGVyIGFuLgpCb2luZyBkZW5rdCAgIC4gbyBPICh3YXMgZGllIExldXRlIGhldXRlIHdpZWRlciBmdWVyIG5lbiBNdWVsbCBkZW5rZW4gLi4uKQpIb2JvIGZhZW5ndCBhbiB6dSBkZW5rZW4uCktsZWluZSBSYXVjaHdvZWxrY2hlbiBzdGVpZ2VuIGF1Zi4uLgpIb2JvIGZhZW5ndCBhbiB6dSBkZW5rZW4uCktsZWluZSBSYXVjaHdvZWxrY2hlbiBzdGVpZ2VuIGF1Zi4uLgpZYW50cm8gc2FndDogSm9mcyBGcmF1ISEhIERpZSB3aWVkZXJzcHJpY2h0IGlocmVtIE1hbm4gYXVjaCBuaWNodCBzbyBvZnQgOykKSG9ibyBkZW5rdCAgIC4gbyBPIChOSUNIVFMpCllhbnRybyBkZW5rdCAgIC4gbyBPIChNaXN0IFR5cG9zKQpIZXhjaGVuIEhvYm8gc2FndDoga2xhciwgd2FlciBqYSBhdWNoIGJsb2VkIHZvbiBpaHIKSG9ibyBncmluc3QuCkhpZ2hsYW5kZXIgZGVua3QgICAuIG8gTyAoZGFzIERlbmtlbiBtaXQgR2VkYW5rZW5ibGFzZSBtYWNodCBTcGFzcykKRWluIGtsZWluZXIgV2lyYmVsd2luZCBrb21tdCBhbi4KR2F0c2J5IHNhZ3Q6IHdhcz8KR2F0c2J5IHNhZ3Q6IGhpIGFsbGUhCllhbnRybyBzYWd0OiBIaQpIaWdobGFuZGVyIGRlbmt0ICAgLiBvIE8gKEhhbGxvLCBHYXRzYnkpCllhbnRybyBmcmFndCBHYXRzYnk6IFVuZCB3YXMgZGVua3N0IER1PwpHYXRzYnkgZ3JpbnN0IEhpZ2hsYW5kZXIgYW4uCkhleGNoZW4gSG9ibyBzYWd0OiBoaQpIb2JvIGRlbmt0ICAgLiBvIE8gKFNjaG9lbiwgZGFzcyBlcyBpbW1lciBtZWhyIGhpZXIgd2VyZGVuKQpEdSBzYWdzdDogSGksIEdhdHNieSEgV2lsbGtvbW1lbiBpbiBUYXJhbWlzIQpHYXRzYnkgbGFlY2hlbHQgRGljaCBhbi4KSGlnaGxhbmRlciBkZW5rdCAgIC4gbyBPIChpY2ggc29sbHRlIGxhbmdzYW0gaGVpbWZsaWVnZW4pCkRpciBsYWV1ZnQgZWluIGthbHRlciBTY2hhdWVyIHVlYmVyIGRlbiBSdWVja2VuLgpHYXRzYnkgd2lyYmVsdCBuYWNoIEhhdXNlLgpZYW50cm8gZGVua3QgICAuIG8gTyAoZmxpZWdlbj8/KQpIb2JvIG5pY2t0IHp1c3RpbW1lbmQuCkhleGNoZW4gSG9ibyBzYWd0OiBsYXNzIHNpZSBuaWNoIHdhcnRlbgpEdSBkZW5rc3QgICAuIG8gTyAoU28gbGFuZ3NhbSBrb2VubnRlIG1hbiBkaWVzZW4gUGxhdHogYWxzIGVpbmdld2VpaHQKZXJrbGFlcmVuLi4uKQpIaWdobGFuZGVyIGRlbmt0ICAgLiBvIE8gKGljaCBuZWhtIGFiZXIgbm9jaCB3ZW4gbWl0KQpIb2JvIGNsb250ICduZSBGbGFzY2hlIFNla3QuCllhbnRybyBlcmJsZWljaHQuClVuZCBzY2htZWlzc3Qgc2llIGF1ZnMgU3RyYXNzZW5wZmxhc3Rlci4KWWFudHJvIGNsb25lZCBHbGFlc2VyCkhvYm8gZGVua3QgICAuIG8gTyAod2VuIGRlciBIaWdoIHdvaGwgbWl0bmltbXQ/KQpVbmQgc2NobWVpc3N0IHNpZSBhdWZzIFN0cmFzc2VucGZsYXN0ZXIuCkhpZ2hsYW5kZXIgZGVua3QgICAuIG8gTyAoS25hcnJ6KQp1bmQgZWluZW4gU3Ryb2hoYWxtIGZ1ZXIgSGlnaApIb2JvIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpZYW50cm8gc2NobXVuemVsdC4KSG9ibyBkZW5rdCAgIC4gbyBPIChXRVIgaXN0IGRlbm4gZGFzPykKSGlnaGxhbmRlciBkZW5rdCAgIC4gbyBPIChNaXQtVEFQUC1lci4gOj4pCkhvYm8gdGFwcHN0LgpIb2JvIHRyaXR0IGluIGRpZSBTY2hlcmJlbi4KVGFwcCAuLi4uIFRhcHAuLi4uIFRhcHBwCkhvYm8gdGlwcHQgZWlnZW50bGljaCBtZWhyLCBhbHMgc2llIHRhcHB0LgpZYW50cm8gdHJvZXN0ZXQgSG9iby4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGF1YSA6KCgoCk11ZCBNdWQgTXVkCkhleGNoZW4gSG9ibyBzYWd0OiB3byBpc3QgZGVubiBqZXR6dCBkZXIgZG9rdG9yLCBzaWx2YW5hPwpIb2JvIGRpZSBTY2hlcmJlbiBhdXMgZGVtIEZ1c3MuClNpbHZhbmEgemllaHQgSG9ibyBkaWUgU2NoZXJiZW4gYXVzIGRlbSBGdXNzLgpIb2JvIGJyaWNodCBpbiBUcmFlbmVuIGF1cyB1bmQgd2VpbnQgYml0dGVybGljaC4KWWFudHJvIGRldXRldCBhdWYgRGljaC4KU2lsdmFuYSB2ZXJiaW5kZXQgSG9ib3MgRnVzcwpZYW50cm8gc2FndDogRG9jIFNpbHZhbmEKSGlnaGxhbmRlciBkZW5rdCAgIC4gbyBPIChPSywgQWJmbHVnKQpIaWdobGFuZGVyIGRlbmt0ICAgLiBvIE8gKE1hY2h0J3MgZ3V0IG1pdGVpbmFuZGVyIDo+KQpIZXhjaGVuIEhvYm8gc2FndDogY2lhbywgaGlnaCA6KQpZYW50cm8gc2FndDogRGllIFdpbGRlIGltIFdlc3RlbiA7KQpIb2JvIHdpbmt0LgpIaWdobGFuZGVyIHdpbmt0LgpZYW50cm8gd2lua3QuCkR1IHdpbmtzdC4KSGlnaGxhbmRlciBmbGllZ3QgbmFjaCBIYXVzZS4KSGV4Y2hlbiBIb2JvIHNhZ3Q6IGRhbmtlLCBzaWx2YW5hLi4gaXN0IHNjaG9uIHZpaWlpaWVsIGJlc3NlciFdClNpbHZhbmEgd2lzY2h0IGRpZSBzY2hlcmJlbiBhdWYuCkhpZ2hsYW5kZXIgc2NocmFtbXQgYW4gU2NobG9zc3R1cm0gdm9yYmVpIHVuZCBzdHVlcnp0IGRhaGludGVyIGFiLgpIZXhjaGVuIEhvYm8gc2FndDogd2llIHdhZXIgZXMgbWl0IGVpbmVtIG11ZWxsZWltZXIsIGluIGRlbiBtYW4gc2FjaGVuCkhleGNoZW4gSG9ibyBzYWd0OiBzY2htZWlzc2VuIGthbm4sIGRpZSBtYW4gbmNpaHQgbWVociBicmF1Y2h0PwpEdSBzYWdzdDogTWlzdCAtIGpldHp0IGRhdWVydCBkaWUgUmVub3ZpZXJ0dW5nIG5vY2ggbGFlbmdlci4uLgpEdSBzYWdzdDogSW4gQXJiZWl0LgpIb2JvIHJlbm50IHp1IEhpZ2hsYW5kZXIgdW5kIGxhY2h0IHVlYmVyIGRpZSBudW4gYmxhdSBnZWZsZWNrdGVuIEZlZGVybi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRva3RvcmFuZGVud2l0eiAoR3V5YnJ1c2gsIDE4LiBOb3YgMTk5NCwgMTg6Mzk6MTQpOgoKCk5ldWxpY2ggdW50ZXJoaWVsdGVuIHNpY2ggZGVyIEluc3RpdHV0c2xlaXRlciwgZWluIE1hbm4gdm9tIEdyYWR1aWVydGVuLQprb2xsZWcgdW5kIGVpbiBEb2t0b3JhbmQgZGVzIEtmSyB1ZWJlciBXZWluYWNodHNnZWxkIHVuZCB3YXMgc2llIGRhbWl0CmdlbWFjaHQgaGFiZW4uCkRlciBJbnN0aXR1dHNsZWl0ZXI6IkljaCBoYWInIG1pciBlaW4gbmV1ZXMgQXV0byBnZWthdWZ0IC0gZGVyIFRhbmsgd2FyIGxlZXIKLi4iCkRlciBHcmFkdWllcnRlbmtvbGxlZ2U6IkljaCBoYWInIGRyaW5nZW5kIGVpbiBuZXVlcyBTdXJmYnJldHQgZ2VicmF1Y2h0Li4uIgpEZXIgRG9rdG9yYW5kIHNjaHdlaWd0IGJldHJldGVuLgpBdWYgZGllIEZyYWdlLCB3YXMgZXIgZGVubiBtaXQgc2VpbmVtIFdlaWNobmFjaHRzZ2VsZCBhbmdlZmFuZ2VuIGhhZXR0ZSwKc2FndCBlciB2ZXJsZWdlbjoiSWNoIGhhYicgbWlyICduZW4gS2FzdGVuIEJpZXIgZ2VrYXVmdC4iCiJVbmQgZGVyIFJlc3Q/IiBmcmFnZW4gaWhuIGRpZSBhbmRlcmVuIC0KQW50d29ydGV0IGRlciBEb2t0b3JhbmQ6IkhhdCBkaWUgT21hIGRyYXVmZ2VsZWd0IC4uLiIKCkd1eWJydXNoLCBpc3QgYXVjaCBzbyBlaW5lci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlIFBlbmlzdmVybGFlbmdlcnVuZyAoQmxvZWRmaW5nZXIsIDE4LiBOb3YgMTk5NCwgMjA6MDI6MDkpOgojISBybj1HcmltbWJvcm4gcnQ9Nzg1MTE3Nzc3CkdvdHQgZ2FiIGRlbiBBdGhlaXN0ZW4ga3VyemUgU2Nod2FlbnplLCBkYW1pdCBzaWUgc2ljaCBuaWNodCB2ZXJtZWhyZW4hCkJsb2VkZmluZ2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlIFBlbmlzdmVybGFlbmdlcnVuZyAoS2xpbmdlLCAxOC4gTm92IDE5OTQsIDIwOjI4OjU2KToKIyEgcm49R3JpbW1ib3JuIHJ0PTc4NTExNzc3NwpHRU5BVSwgYmVpIGdlbmF1IDUgU3R1ZWNrZW4gd2VyZGVuIGRpZSBuYXR1ZXJsaWNoIGRldXRsaWNoIGxhZW5nZXIgc2Vpbi4KRGFzIGdhbnplIGhhdCBzaWNoIGJlc3RpbW10IHNvIGVpbiBzdHVtbWVsc2Nod2FlbnppZ2VyIEphcGFuZXIoZXJ3aWVzZW4gZHVyY2gKZGllIEFic2F0enphaGxlbihuYWNoIEdyb2Vzc2UpZGVyIEtvbmRvbS1JbmR1c3RyaWUpYXVzZ2VkYWNodC4KOykKClAuUy4gOkljaCBob2ZmZSBkaWUgSmFwYW5lciBzaW5kIGtlaW5lIGVpZ2Vuc3RhZW5kaWdlIFJhc3NlLCBuaWNodCBkYXNzIG1pY2gKbm9jaCBqZW1hbmQgZGVzIFJhc3Npc3NtdXNzZXNzIGJlemljaHRpZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFnaWVyIHVudGVyIHNpY2guLi4gKEtyZXRlaywgMTguIE5vdiAxOTk0LCAyMTo0ODoyOCk6CiMhIHJuPVNpbHZhbmEgcnQ9Nzg1MTcxMDM5CkFSR0whCgpKYSwgamEsIGljaCB3ZWlzcyBzY2hvbiwgd2lyIFNPTExFTiBlaWdlbnRsaWNoIGtlaW5lIEtvbW1lbnRhcmUgYXVmIFdpdHplCmluIGRpZXNlIFJ1YnJpayBzY2hyZWliZW4uLi4gTmEgdW5kLCBkYW5uIGJpbiBpY2ggZWJlbiBCT0VTRSEgSWhyIGtvZW5udAptaWNoIGphIHNjaGltcGZlbiwgd2VubiBpaHIgd29sbHQhCkRhcyBMb2dmaWxlIHdhciBqYSB3b2hsIGVjaHQgenVtIEJydWVsbGVuISBEYXMgYmV3ZWlzdCBmdWVyIG1pY2ggZG9jaAptYWwsIGRhc3MgTWFncyBlYmVuIGRvY2ggbnVyIGdyb3NzZSBLaW5kZXIgc2luZCwgZGllIHByb2dyYW1taWVyZW4ga29lbm5lbiEKSUNIIFdJTEwgQVVDSCBNQUcgV0VSREVOISEhCgpjIHUgbDhlciEKCiAgIEtyZXRlaywgbmllIHVtIGVpbmVuIHNpbm5sb3NlbiBLb21tZW50YXIgdmVybGVnZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXVzIGRlciBIZWVyZXNkaWVuc3R2b3JzY2hyaWZ0OiAoRnJhZ2dsZSwgMjEuIE5vdiAxOTk0LCAxMjo0ODo0MCk6CiMhIHJuPVllbmRpIHJ0PTc4NTEwMzkzMgo6IER1cmNoIEthZWx0ZSB3aXJkIGRlbSBtZW5zY2hsaWNoZW4gS29lcnBlciBXYWVybWUgZW50em9nZW4uCjogSXN0IGRlciBXYWVybWV2ZXJsdXN0IGdyb2Vzc2VyIGFscyBzZWluZSBXYWVybWVlcnpldWd1bmcsIHNvIGZyaWVydCBkZXIKOiBCZXRyb2ZmZW5lLiIKCkRhcyBpc3Qgbm9jaCB2aWVsIHNjaGxpbW1lcjogd2VubiBtYW4gZGFzIG1hbCBwaHlzaWthbGlzY2ggYmV0cmFjaHRldCwKc3RyZWJ0IGRhbWl0IGRpZSBLb2VycGVydGVtcGVyYXR1ciBnZWdlbiBkaWUgVW1nZWJ1bmdzdGVtcGVyYXR1ciwgd2lsbApzb3ZpbGUgaGVpc3NlbiB3aWUgTklDSFQgImZyaWVydCIgZGVyIGJldHJvZmZlbmUsIHNvbmRlcm4gImVyZnJpZXJ0IiBkZXIgYgpCZXRyb2ZmZW5lLiBJY2ggaG9mZmUsIGRlbmVuIGJlaW0gSGVlciBpc3QgZGVyIFVudGVyc2NoaWVkIGRhendpc2NoZW4ga2xhciwKc29uc3QgR25hZGUgdW5zZXJlbiBCdW5kaXMhCgpGcmFnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb2hsd2l0eiAyIChTY2hsb256LCAyMS4gTm92IDE5OTQsIDE3OjE4OjQyKToKCmhlcnIga29obCB3aWxsIGVpbm1hbCB1bmVya2FubnQgaW4gb2dnZXJzaGVpbSBzcGF6aWVyZW4gZ2VoZW4uIGVyIGtsZWJ0IHNpY2gKZWluZW4gYmFydCBhbiB1bmQgemllaHQgbG9zLiBuaWVtYW5kIGVya2VubnQgaWhuLCBzb2dhciBpbiBlaW5lciBrbmVpcGUgd2lyZAplciBuaWNodCBlcmthbm50LiBhdWYgZGVtIHJ1ZWNrd2VnIGtvbW10IGVyIGFuIGVpbmVtIHNjaGFlZmVyIHZvcmJlaS4gZXIKc2NoYXV0IGVpbmUgd2VpbGUgenUgdW5kIGRlciBzY2hhZWZlciBtZWludCA6IHdlbm4gc2llIGF1ZiBhbmhpZWIgZXJyYXRlbiB3aWUKdmllbGUgc2NoYWZlIGljaCBoYWJlIGtvbm5lbiBzaWUgc2ljaCBlaW4gc2NoYWYgbWl0bmVobWVuLiBzb2ZvcnQgYW50d29ydGV0CmhlcnIga29obCA6IDEzNzYuIGRhcyBzdGltbXQhIHNhZ3QgZXJzdGF1bnQgZGVyIHNjaGFlZmVyLiBoZXJyIGtvaGwgbmltbXQgc2ljaAplaW4gdGllciBhdXMgZGVyIGhlcmRlIHVuZCBzYWd0IDogd2VubiBzaWUgamV0enQgbm9jaCBlcnJhdGVuIHdlciBpY2ggYmluCmJla29tbWVuIHNpZSBpaHIgc2NoYWYgd2llZGVyISB3aWUgYXVzIGRlciBwaXN0b2xlIGdlc2Nob3NzZW4gYW50d29ydGV0IGRlcgpzY2hhZWZlciBtaXQgaGVyciBrb2hsISB2b2VsbGlnIHZlcmR1dHp0IGZyYWd0IGtvaGwgd2llIGVyIGRlbm4gZGFyYXVmIGthZW1lLAp3b3JhdWYgZGVyIHNjaGFlZmVyIHNhZ3Q6IG51biBzaWUgaGFiZW4gc2ljaCBlYmVuIGtlaW4gc2NoYWYgc29uZGVybiBtZWluZW4Kc2NoYWVmZXJodW5kIGF1c2dlc3VjaHQhCgpzY2hsb256IChtdXNzdGUgYWxsZXMga2xlaW4gc2NocmVpYmVuLCBzb3JyeSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXVzIGRlciBIZWVyZXNkaWVuc3R2b3JzY2hyaWZ0OiAoQmxlZWx1bXBlLCAyMS4gTm92IDE5OTQsIDE5OjQyOjM0KToKIyEgcm49RnJhZ2dsZSBydD03ODU0MTg1MjAKZXMgZ2lidCBub2NoIGJlc3NlcmUgdm9yc2NocmlmdGVuOgp6YiBiZWkgZWluYnJlY2hlbmRlciBuYWNodCBpc3QgbWl0IGR1bmtlbGhlaXQgenUgcmVjaGVuCm9kZXIKYWIgZWluZXIgd2Fzc2VydGllZmUgdm9uIDgwY20gaGF0IGRlciBzb2xkYXQgc2VsYnN0YWVuZGlnIG1pdApzY2h3aW1tYmV3ZWd1bmdlbiB6dSBiZWdpbm5lbgoKIGFiZXIgbWFuIG11c3Mgc2VoZW4gdm9uIHdvIGRpZSB2b3JzY2hyaWZ0IGtvbW10CnZvbSBCdW5kZXNtaW5pc3Rlcml1bSAgZGVyIFZlcnRlaWRpZ3VuZwphY2ggamEgZGFyZiBpY2ggZXJ3YWVobmVuIGRhc3MgZG9ydCBtZWlzdAp1bmdlZGllbnRlIHNpdHplbiAoIGRlciB3aXR6IGRlciBOYXRpb24gKQphY2ggamEgdW5kIGZyYWcgbWFsIGVpbmVuIHJpY2h0aWdlbiBaZWl0c29sZGF0IHdhcyBlciB2b24gdW5zZXJlbiBwb2xpdGlrZXJuCmluIEJlenVnIGF1ZiBCdyBhdWYgQnVuZGVzd2VociBlaW5zYXR6bW9lZ2xpY2hrZWl0ZW4gLCBCZXNjaGFmZnVuZyB2b24KTWF0ZXJpZWwgdW5kIFZlcnNvcmd1bmcgdW5kIHNvIHdlaXRlciB1c3cgaGFlbHQhIQpldWVyIEJsZWUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBdXMgZGVyIEhlZXJlc2RpZW5zdHZvcnNjaHJpZnQ6IChLcmV0ZWssIDIxLiBOb3YgMTk5NCwgMjA6MjA6NTApOgojISBybj1CbGVlbHVtcGUgcnQ9Nzg1NDQzMzU0CkdlbmF1LCBmcmFndCBtYWwgbWljaCEKCmMgdSBsOGVyLAogICBLcmV0ZWsKICAgKGlzdCB6d2FyIG5pY2h0IG1laHIgYmVpIGRlciBUcnVwcGUsIHdhciBhYmVyIFNhWiAyIHVuZCBpc3QgUk9BLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJ1ZWZ1bmdzYXVmZ2FiZW4gZnVlciBGb3J0Z2VzY2hyaXR0ZW5lIChSb2NodXMsIDIxLiBOb3YgMTk5NCwgMjA6NDg6MzEpOgpGb2xnZW5kZXMgZmFuZCBpY2ggaW4gZGUudGFsay5qb2tlczoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRhcyBmYW5kIGljaCBpbiBkZW4gVklUUk9ITSBOQUNIUklDSFRFTgoKCktvbnN0YW50ZTogbSAoa3VoKSA9IDQwMCBrZzsKCk1lY2hhbmlrCgogICBFaW5lIEt1aCBnYWxvcHBpZXJlIGJlc2NobGV1bmlndCAoYT0zIG0vc14yKSBhdWYgZWluZSBhbmRlcmUsIHN0ZWhlbmRlCmF1cyAgICBiZXN0aW1tdGVyIEVudGZlcm51bmcgenUgKHYwPTAgbS9zKS4gQmVpIGRlbSBhdWZ0cmV0ZW5kZW4gdW5lbGFzdGlzY2hlbgogICBTdG9NZWNoYW5payB3ZXJkZW4gOTAlIGRlciBraW5ldGlzY2hlbiBFbmVyZ2llIGluIFZlcmZvcm11bmdzYXJiZWl0CnVtZ2VzZXR6dC4KICAgQmVyZWNobmVuIFNpZSBkaWUgVmVyZm9ybXVuZ3NhcmJlaXQgaW4gQWJobmdpZ2tlaXQgdm9tIEFubGF1ZndlZyBzIHVuZCAgIApzdGVsbGVuIFNpZSBkZW4gWnVzYW1tZW5oYW5nIGdyYXBoaXNjaCBkYXIuCgoKRWxla3RyaXppdHRzbGVocmUKCmEpIERpZSBLdWggYmVpRWxla3RyaXppdHRzbGVocmVlIGluIGRlbiBlbGVrdHJpc2NoIGdlbGFkZW5lbiBXZWlkZXphdW4KKFU9NDBWKS4gRWluICAgIFN0cm9tbWVFbGVrdHJpeml0dHNsZWhyZWdlcnQgcmVnaXN0cmllcnQgZHVyY2ggZGllIEt1aCBlaW5lbgpTdHJvbSB2b24gMC41IG1BLgogICBXaWUgaG9jaCBpc3QgZGVyIE9obXNjaGUgV2lkZXJzdGFuZCBkZXMgVGllcmVzPwoKYikgRGllc2VsYmUgS3VoIHdlcmRlIG51biBtaXQgZWluZXIgU3B1bGUgKEw9IDAuNUgpIGluIFJlaWhlIGdlc2NoYWx0ZXQgdW5kICAKIGFuIGVpbmUgV2VjaHNlbHNwYW5udW5nIHZvbiA1MEh6IGdlbGVndC4KICAgQmVyZWNobmVuIFNpZSBkZW4gU2NoZWlud2lkZXJzdGFuZCBaIGRpZXNlcyBSTC1HbGllZGVzIHVuZCAgICBkaWUKUGhhc2VudmVyc2NoaWVidW5nIGogendpc2NoZW4gU3Ryb20gdW5kIFNwYW5udW5nLCB3b2JlaSBkZXIgV2lkZXJzdGFuZCAgICBkZXIKU3B1bGUgdmVybmFjaGxzc2lnYmFyIGlzdC4KCgpRdWFudGVubWVjaGFuaWsKCmEpIERpZSBLdWggYmVmaW5kZSBzaWNoIGF1ZiBlaW5lciBXZWlkZSwgZGllIHJpbmdzdW0gZHVyY2ggZWluZW4gWmF1biAgIAphYmdlZ3Jlbnp0IGlzdC4gRGVyIFdlaWRlemF1biBzZWkgaWRlYWwgZ2ViYXV0LCBzbyBkYVF1YW50ZW5tZWNoYW5payBkaWUgS3VoCmlobiAgICAoa2xhc3Npc2NoIGdlc2VoZW4pIG5pY2h0IHBhc3NpZXJlbiBrYW5uLgogICBCZWdyfG5kZW4gU2llLCBkYWthbm4uIG1hbiBkaWUgS3VoIHRyb3R6ZGVtIG1pdCBnZXdpc3NlcgpXYXJzY2hlaW5saWNoa2VpdCAgICBhdWthbm4uZXJoYWxiIGRlciBXZWlkZSBhbnRyaWZmdCEKCmIpIFVudGVyIFZlcmxldHp1bmcgZGVyIEVuZXJnaWVoYWx0dW5nIGtubmVuIG5hY2ggZGVyIEhlaXNlbmJlcmdzY2hlbiAgIApVbnNjaHJmZXJlbGF0aW9uIGt1cnpmcmlzdGlnIHNvZ2VuYW5udGUgdmlydHVlbGxlIFRlaWxjaGVuIGVudHN0ZWhlbi4KICAgQmVyZWNobmVuIFNpZSBkaWUgTGViZW5zZGF1ZXIgZWluZXIgdmlydHVlbGxlbiBLdWguCgpjKSAiU2NocmRpbmdlcnMgS3VoIgogICBFaW4gTWVuc2NoIHNwZXJydCBlaW5lIEt1aCBpbiBlaW5lbiBBdG9tYnVua2VyLCBhdXMgZGVtIGtlaW5lIEluZm9ybWF0aW9uCiAgIG5hY2ggYXVLdWgiZW4gZHJpbmd0LiBGfHIgZGVuIEJlb2JhY2h0ZXIgaXN0IGRpZSBLdWggZGFubgpxdWFudGVudGhlb3JldGlzY2ggICAgc293b2hsIHRvdCBhbHMgYXVjaCBsZWJlbmRpZyAoIG5pY2h0ICJlbnR3ZWRlci4uLm9kZXIiISkKICAgRXJrbHJlbiBTaWUgZGVuIHNjaGVpbmJhcmVuIFdpZGVyc3BydWNoIQpkKSBCZXJlY2huZW4gU2llIGRpZSBEZSBCcm9nbGllLVdlbGxlbmxuZ2UgZWluZXIgS3VoLCBkaWUgbWl0IHY9MTAgbS9zIGF1ZiAgIApkZXIgV2VpZGUgZ2FsbG9waWVydC4KICAgQmlzIHp1ciB3ZWxjaGVuIEdyZ2FsbG9waWVydC5lbm9yZG51bmdlbiBrbm50ZSBtYW4gbWl0IGRpZXNlciBXZWxsZSBpbgpkZXIgICAgTWlrcm9za29waWUgU3RydWt0dXJlbiBhdWZsc2VuPwogICBXaWVzbyBiZW51dHp0IG1hbiBpbiBkZXIgU3RydWt0dXJmb3JzY2h1bmcga2VpbmUgS3xoZT8KCgpLZXJucGh5c2lrCgogIERpZSBLdWggZnJpS2VybnBoeXNpa3QgYXVmIGRlciBXZWlkZSA4IFN0dW5kZW4gbGFuZyBwcm8gU3R1bmRlIDIga2cKcmFkaW9ha3RpdiAgIHZlcnNldWNodGVzIEdyYXMgbWl0IGVpbmVtIEstNDAtR2VoYWx0IHZvbiAwLjAxJS4gV2hyZW5kIGRpZXNlcgpaZWl0ICAgc2NoZWlkZXQgZGllIEt1aCBzdHxuZGxpY2ggRmxhZGVuIHZvbiAxIGtnIGF1cyAoZGllIEstNDAtS29uemVudHJhdGlvbgppbiAgIGRlbiBGbGFkZW4gc2VpCm5oZXJ1bmdzd2Vpc2UgZWJlZmFsbHMgMC4wMSUpCiAgQmVyZWNobmVuIFNpZSBkaWUgQW56YWhsIGRlciBLLTQwLUF0b21lIGluIGRlciBLdWggZHJlaSBXb2NoZW4gbmFjaCBkZXIgIApCZWVuZGlndW5nIGRlcyBGcmVzc2VucyB1bnRlciBWZXJ3ZW5kdW5nIGdlZWlnbmV0ZXIgTmhlcnVuZ2VuIChkaWUgS3VoICAKc3RlbGxlIHdocmVuZCBkaWVzZXIgWmVpdCBhdWNoIGRhcyBBYmtvdGVuIGVpbikuCgoKSGF2ZSBGdW4KCkp8cmdlbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVlcmVzZGluZ2VucyAoQXJhbnlhLCAyMi4gTm92IDE5OTQsIDE3OjA3OjQ5KToKRGFzIG1pdCBkZW4gODAgWmVudGltZXRlcm4gV2Fzc2VydGllZmUgZXJpbm5lcnQgbWljaCBhbiBlaW5lbiBudXIgbWFlc3NpZwp3aXR6aWdlbiBTcHJ1Y2g6CkRlciBUZWljaCB3YXIgaW0gRHVyY2hzY2huaXR0IGVpbmVuIE1ldGVyIHRpZWYsIGFiZXIgdHJvdHpkZW0gaXN0IGRpZSBLdWggZXItCnNvZmZlbi4KCkZyYWd0IG1pY2ggYml0dGUgbmljaHQsIHdhcyBpY2ggZGFtaXQgc2FnZW4gd29sbHRlLgpBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvb2QgTHVjayA7KSAoS2V0b3MsIDIzLiBOb3YgMTk5NCwgMTE6NTA6MTApOgogICAgICAgIFxcXHx8fC8vLyAgICAgICAgICAgICAgIFxcXHx8fC8vLyAgICAgICAgICAgICAgICBcXFx8fHwvLy8KICAgICAgLiAgPT09PT09PSAgICAgICAgICAgICAgLiAgPT09PT09PSAgICAgICAgICAgICAgIC4gID09PT09PT0KICAgICAvIFx8IE8gICBPIHwgICAgICAgICAgICAvIFx8IE8gICBPIHwgICAgICAgICAgICAgLyBcfCBPICAgTyB8CiAgICAgXCAvICBcdl8nLyAgICAgICAgICAgICAgXCAvICBcdl8nLyAgICAgICAgICAgICAgIFwgLyAgXHZfJy8KICAgICAgIyAgIF98IHxfICAgICAgICAgICAgICAgIyAgIF98IHxfICAgICAgICAgICAgICAgICMgICBffCB8XwogICAgICgjKSAoICAgICApICAgICAgICAgICAgICgjKSAoICAgICApICAgICAgICAgICAgICAoIykgKCAgICAgKQogICAgICAjXC8vfCogKnxcXCAgICAgICAgICAgICAjXC8vfCogKnxcXCAgICAgICAgICAgICAgI1wvL3wqICp8XFwKICAgICAgI1wvKCAgKiAgKS8gICAgICAgICAgICAgI1wvKCAgKiAgKS8gICAgICAgICAgICAgICNcLyggICogICkvCiAgICAgICMgICA9PT09PSAgICAgICAgICAgICAgICMgICA9PT09PSAgICAgICAgICAgICAgICAjICAgPT09PT0KICAgICAgIyAgIChcIC8pICAgICAgICAgICAgICAgIyAgIChcIC8pICAgICAgICAgICAgICAgICMgICAoXCAvKQogICAgICAjICAgfHwgfHwgICAgICAgICAgICAgICAjICAgfHwgfHwgICAgICAgICAgICAgICAgIyAgIHx8IHx8CiAgICAgLiMtLS0nfCB8LS0tLS4gICAgICAgICAgLiMtLS0nfCB8LS0tLS4gICAgICAgICAgIC4jLS0tJ3wgfC0tLS0uCiAgICAgICMtLS0tJyAtLS0tLScgICAgICAgICAgICMtLS0tJyAtLS0tLScgICAgICAgICAgICAjLS0tLScgLS0tLS0nCgpUaGlzIG1lc3NhZ2UgaGFzIGJlZW4gc2VudCB0byB5b3UgZm9yIGdvb2QgbHVjay4gVGhlIG9yaWdpbmFsCmlzIGluIE5ldyBFbmdsYW5kLiAgSXQgaGFzIGJlZW4gc2VudCBhcm91bmQgdGhlIHdvcmxkIG5pbmUgdGltZXMuIFRoZQpsdWNrIGhhcyBub3cgYmVlbiBzZW50IHRvIHlvdS4gWW91IHdpbGwgcmVjZWl2ZSBnb29kIGx1Y2sgd2l0aGluIGZvdXIKZGF5cyBvZiByZWNlaXZpbmcgdGhpcyBtZXNzYWdlIC0gUHJvdmlkZWQgeW91LCBpbiB0dXJuIHNlbmQgaXQgb24uClRoaXMgaXMgbm8gam9rZS4gWW91IHdpbGwgcmVjZWl2ZSBnb29kIGx1Y2sgaW4gdGhlIG1haWwuIEJ1dCBubwptb25leS4KClBpZ2liaWRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXNjaG1hY2tsb3M/IDo+IChIaWdobGFuZGVyLCAyNC4gTm92IDE5OTQsIDEyOjQxOjA3KToKSXQncyBuaWNlIHRvIHVwc2V0IGEgUHJlaXNzLApidXQgaXQncyBoaWdoZXIgdG8gc2V0IGhpbSBvbiBmaXJlIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmRlIFdpdHplIChBbnRoZWEsIDI1LiBOb3YgMTk5NCwgMTA6NDY6NTgpOgpXYXJ1bSBzaW5kIEJsb25kaW5lbndpdHplIHNvIGt1cno/CgoKCgpEYW1pdCBkaWUgTWFlbm5lciBzaWUgYXVjaCB2ZXJzdGVoZW4uCgpVbmQgd2FydW0gaGFiZW4gQmxvbmRpbmVuIHNvIHZpZWxlIEJibGF1ZSBGbGVja2VuIHVtIGRlbiBCYXVjaG5hYmVsIGhlcnVtPwoKCgpCbG9uZGUgTWFlbm5lciBzaW5kIGF1Y2ggZG9vZi4KCiAgICBBbnRoZWEKICAgKFdlZGVyIEJsb25kaW5lbi0gbm9jaCBNYWVubmVyZmVpbmRsaWNoIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbnR3b3J0IGF1ZiBCbG9uZGluZW53aXR6ZSAoTGksIDI1LiBOb3YgMTk5NCwgMTI6MjE6MTkpOgpOZXVsaWNoIGluIGVpbmVyIFplaXRzY2hyaWZ0OgpXaWUgZ2VzY2hhaCBlcywgZGFzcyBlaW4gTWFubiA5NSUgc2VpbmVuIFZlcnN0YW5kZXMgdmVybG9yPwpTZWluZSBGcmV1bmRpbiBoYXR0ZSBpaG4gdmVybGFzc2VuLgoKTGkgKHVlYmVlcmxlZ3QsIHdpZXZpZWwgJSBzZWluZXMgdmVyc3RhbmRlcyB2b24gc2VpbmVyIEZyYXUga29tbWVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmVib290IChBbnRoZWEsIDI1LiBOb3YgMTk5NCwgMTM6MDU6NDIpOgpJc3QgZGFzIGVpbiBXaXR6PyA6ClJpZmZsZSBydWZ0OiBMQUcgPwpDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuCgoKdW5kIGRhbm4uLi4KPEVpbmxvZ2dlbmRlciBUZWlsbmVobWVyPiBbP10KPEVpbmxvZ2dlbmRlciBUZWlsbmVobWVyPiBbQ2hlbW5pdHpdCjxFaW5sb2dnZW5kZXIgVGVpbG5laG1lcj4gW0JpZWxlZmVsZF0KPEVpbmxvZ2dlbmRlciBUZWlsbmVobWVyPiBbP10KPEVpbmxvZ2dlbmRlciBUZWlsbmVobWVyPiBbP10KPEVpbmxvZ2dlbmRlciBUZWlsbmVobWVyPiBbP10KPEVpbmxvZ2dlbmRlciBUZWlsbmVobWVyPiBbU2FhcmJydWVja2VuXQpSZXhvbiBEZXIgS2FtcGZ6d2VyZyAoSGF0IGF1Y2ggc2Nob24gMiBIeWRyYWhvZXJuZXIpIC0gWndlcmcgLSBbQmVybGluXQpGdWVyc3RpbiBBbnRoZWEga3JpZWd0IGRlbiBJbnNlbGtvbGxlciAtIE1lZXJqdW5nZnJhdSAtIFs/XQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BydWNoIChDZXJlYnVzLCAyNS4gTm92IDE5OTQsIDEzOjM2OjExKToKV2VubiBoaWVyIHNjaG9uIHZvbiBQcmV1c3Nlbi1TcHJ1ZWNoZW4gZ2VzY2hyaWViZW4gd2lyZCwgZGFubiBkYXJmIGljaCBhdWNoOgpJdCdzIG5pY2UsIHRvIGJlIGEgcHJlaXNzIQppdCdzIGhpZ2hlciwgdG8gYmUgYSBCYXllciEKQnV0IGl0J3MgYSBHb3R0Z2VzY2hlbmssIHRvIGJlIGEgT2JlcmZyZW5rIQoKQ2VyZWJ1cyAoYXVzIEJhbWJlcmcpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3BydWNoIChIaWdobGFuZGVyLCAyNS4gTm92IDE5OTQsIDEzOjUyOjM1KToKIyEgcm49Q2VyZWJ1cyBydD03ODU3NjY5NzEKT2RlciAobGVpY2h0IGFiZ2V3YW5kZWx0KToKSXQncyBuaWNlIHRvIGJlIGEgUHJlaXNzCmFuZCBpdCdzIGhpZ2hlciB0byBiZSBhIEJheWVyIC0KYnV0IHRoZSBoaWdoZXN0IHlvdSBjZWFuIGRlbmsKaXMgdG8gYmUgYSBNaWRkbGVmcmFuY1tvbmlhbl0uCgogIFlUSCAgKCpncmlucyopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb25kZXIgKFN0YWhsZG9ybiwgMjUuIE5vdiAxOTk0LCAxNTozNDozOSk6CldhcyBpc3N0IFN0ZXZpZSBXb25kZXIgYW0gbGllYnN0ZW4genVtIEZydWVoc3R1ZWNrID8KRWluIFNlc2FtYnJvZXRjaGVuLiBXZWdlbiBkZXIgdmllbGVuIGx1c3RpZ2VuIFNwcnVlY2hlIG9iZW4gZHJhdWYuCgoKICAgICAgU1RBSEwuICAoaGFiIG5peCBnZWdlbiBTdGV2aWUgV29uZGVyLiBmYW5kIGRlbiB3aXR6IG51ciBndXQ6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsb25kZSBXaXR6ZSAoR3V5YnJ1c2gsIDI1LiBOb3YgMTk5NCwgMTk6MzM6MDQpOgojISBybj1BbnRoZWEgcnQ9Nzg1NzU2ODE4ClN0aW1tdCwgQW50aGVhCmljaCBrZW5uIG1pY2ggZGEgYXVzCmF1Y2ggd2VubiBkdSBrZWluZSBCbG9uZGluZSBiaXN0IChBTkRZISkKaWNoIGJpbiBtZWlzdCBnYW56IHNjaG9lbiBkb29mIDopCgppY2ggYmluIG5hZW1saWNoIGJsb25kLCBrYW5uIGFiZXIgbmljaHQgc2FnZW4sIG9iIGRhcyB3YXMgZGFtaXQgenUgdHVuIGhhdAo6KSkpCgpHdXlicnVzaCwgc3ByaWNodCBkaWUgV2FocmhlaXQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXb25kZXIgKEJvaW5nLCAyNi4gTm92IDE5OTQsIDEwOjQ4OjQ0KToKIyEgcm49U3RhaGxkb3JuIHJ0PTc4NTc3NDA3OQpEYXMgaXN0IG5pY2h0IHdpdHppZywgU3RldmllIFdvbmRlciBpc3QgbmFlbWxpY2gga3VlcnpsaWNoIGdlc3RvcmJlbiAuLi4KCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV29uZGVyIChCb2luZywgMjYuIE5vdiAxOTk0LCAxMDo0OTowOSk6CiMhIHJuPUJvaW5nIHJ0PTc4NTg0MzMyNApFciBoYXQgc2ljaCBhbiBuZXIgUmF1aGZhc2VydGFwZXRlIHp1IFRvZGUgZ2VsZXNlbiAuLi4gOykKCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9lc3RlcnJlaWNoZXIgZXJ0cnVua2VuIChJc25vZ29vZCwgMjYuIE5vdiAxOTk0LCAxMjoyODozOSk6CkZyYWdlOiB3YXJ1bSBzaW5kIGRpZXNlbiBzb21tZXIgc292aWVsZSBPZXN0ZXJyZWljaGVyIGVydHJ1bmtlbj8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpzaWUgaGFiZW4gdmVyc3VjaHQsIGlocmUgaGF1c2Jvb3QgenUgdW50ZXJrZWxsZXJuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPZXN0ZXJyZWljaGlzY2hlcyBVLUJvb3QgdmVyc2Vua2VuIChJc25vZ29vZCwgMjYuIE5vdiAxOTk0LCAxMjozMDowNSk6CkZyYWdlOiB3aWUgdmVyc2Vua3QgbWFuIGVpbiBvZXN0ZXJyZWljaGlzY2hlcyBVLUJvb3Q/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbnR3b3J0OiBBbmtsb3BmZW4sIGlyZ2VuZGVpbiBkZXBwIG1hY2h0IGltbWVyIGF1ZgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSm9lcmcgSGFpZGVyIChJc25vZ29vZCwgMjYuIE5vdiAxOTk0LCAxMjozMDo1MCk6CldhcyBtYWNodCBtYW4sIHdlbm4gSm9lcmcgSGFpZGVyIFppY2taYWNrIGxhZXVmdD8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKV2VpdGVyc2NoaWVzc2VuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKb2VyZyBIYWlkZXIgKElzbm9nb29kLCAyNi4gTm92IDE5OTQsIDEyOjMxOjM3KToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gSm9lcmcgSGFpZGVyIHVuZCBuZXIgZHVyY2hnZXpvZ25lbiBMaW5pZT8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRpZSBkdWNoZ2V6b2dlbmUgTGluaWUgZGFyZiBtYW4gbmljaHQgdWViZXJmYWhyZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhlbG11dCBLb2hsIChJc25vZ29vZCwgMjYuIE5vdiAxOTk0LCAxMjozMjozMSk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEhlbG11dCBLb2hsIHVuZCBCb3JpcyBCZWNrZXI/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpCZWkgQm9yaXMgZnJldXQgbWFuIHNpY2ggYXVmIGRlbiB6d2VpdGVuIFNhdHoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBhbnplciAoSXNub2dvb2QsIDI2LiBOb3YgMTk5NCwgMTI6MzM6MjEpOgp3YXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBQZW5pcyB1bmQgZWluZW0gUGFuemVyPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKVmVyc3VjaHQgbWFsIG5lbiBQYW56ZXIgZHVyY2ggYmxhc2VuIHp1bSBzdGVoZW4genUga3JpZWdlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogQXVzIGRlciBIZWVyZXNkaWVuc3R2b3JzY2hyaWZ0OiAoRnl0LCAyNi4gTm92IDE5OTQsIDEzOjAxOjIxKToKIyEgcm49QmxlZWx1bXBlIHJ0PTc4NTQ1NDU1MQoKR2Vob2VydCBuaWNodCBuYWNoIFdpdHplIC0gYWJlciB3aWUgc29sbCBpY2ggc29uc3QgZHJhdWYgYW50d290ZW4uLi4uCgpCaXN0IER1IERpciBzaWNoZXIsIGRhc3MgSUNIIHVuc2VyZSBQb2xpdGlrZXIKZ2V3YWVobHQgaGFiZSAtCmljaCBtaXIgbmFlbWxpY2ggbmljaHQuCgpOaXggZnVlciB1bmd1dCwKCkZ5dC4KLAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hpbmVzaWNoZXMgV29ydCBmdWVyIFZlcmxpZXJlIChJc25vZ29vZCwgMjYuIE5vdiAxOTk0LCAxMzowODoxOSk6CldpZSBoZWlzc3QgZGFzIGNoaW5lc2ljaGUgV29ydCBmdWVyIFZlcmxpZXJlcj8KCgoKCgoKCgoKCgoKCgoKCgoKCgpTY2hhciBQaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmcml0emNoZW4gKElzbm9nb29kLCAyNi4gTm92IDE5OTQsIDEzOjE1OjI1KToKRGVyIGxlaHJlciBmcmFndCBGcml0emNoZW4sIHdpZSBob2NoIHdvaGwgZGllIFNjaHVsZSBzZWkuIEZyaXR6Y2hlbgphbnR3b3J0ZXQ6CkljaCBiaW4gMSw1MG0gdW5kIGRpZSBzY2h1bGVyIHN0ZWh0IG1pciBiaXMgb2JlbiwgYWxzbyB1bmdlZmFlaHIgZWluIG1ldGVyCjQwLgpEYXJhdWYgaGluIHNjaG1laXNzdCBkZXIgTGVocmVyIEZyaXR6Y2hlbiBhdXMgZGVtIEtsYXNzZW56aW9tbWVyIHJhdXMuCkt1cnogZHJhdWYga29tbXQgZGVyIGRpcmVrdG9yIHVuZCBmcmFndCB3YXJ1bSBmcml0emNoZW4gbmljaHQKaW0gS2xhc3NlbnppbW1lciBpc3QuIERhcmF1ZiBGcml0emNoZW46IFdlaWwgaWNoIG5pY2h0IHNjaGF0emVuIGthbm4uCmRhIHNhZ3QgZGVyIERpcmVrdG9yOiBkYXMgd29sbGVuIHdpciBkb2NoIG1hbCB0ZXN0ZW4sIHNjaGFldHogbWFsLCB3aWUgYWx0CmljaCBiaW4/CkZyaXR6Y2hlbiBzYWd0IDUyLgpkYXJhdWYgZGVyIERpcmtldG9yIHN0aW1tdCBnZW5hdSwgd2llIGJpc3QgZHUgZGFyYXVmIGdla29tbWVuPwpTYWd0IEZyaXR6Y2hlbjogRWksIGJlaSB1bnMgaW4gZGVyIFN0cmFzc2Ugd29obnQgZWluIGhhbGJ0cm90dGVsLCBkZXIgaXN0IDI2LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVXJhbHQgKEFuYXRvbCwgMjYuIE5vdiAxOTk0LCAxNTo0MjoyNik6CgoKR3Jvc3NlcyBXZXR0cmVubmVuIHp3aXNjaGVuIGVpbmVtIGtsdWdlbiBPZXN0ZXJyZWljaGVyLCBlaW5lbSBkdW1tZW4KT2VzdGVycmVpY2hlciB1bmQgU2NobmVld2l0dGNoZW4gdWViZXIgMjAwIE1ldGVyLiBXZXIgZ2V3aW5udD8KCgpEZXIgZHVtbWUgT2VzdGVycmVpY2hlciBuYXR1ZXJsaWNoLi4uZGllIGFuZGVyZW4gZ2lidHMgbnVyIGltIE1hZXJjaGVuLi4uCgoKZWluIGdyaW5zZW5kZXIgQW5hdG9sLCBkZXIgYWxsZSBPZXN0ZXJyZWljaGVyIHZvcnVybGVpbHNsb3MKYmV1cnRlaWx0IHVuZCBibG9zcyBlaW4gT3BmZXIgZ2VzdWNodCBoYXQuLi4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIHdhcyBDaGluZXNpc2NoZXMgKFF1ZW5naXN0dSwgMjYuIE5vdiAxOTk0LCAyMjozOToxOSk6CldpZSBoZWlzc3QgZGFzIGNoaW5lc2lzY2hlIFdvcnQgZnVlciBHcm9zc211dHRlcj8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkthbm4gS2F1bSBLYXVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPZXN0ZXJyZWljaGlzY2hlIFVCb290ZT8gKEFudGhlYSwgMjYuIE5vdiAxOTk0LCAyMzowNTo0NSk6CkRpZSBPZXN0ZXJyZWljaGVyIGhhdHRlbiBtYWwgZWluZSBzZWhyIGdyb3NzZSBVQm9vdC1GbG90dGUuIEFiZXIgd2FubiBoYWJlbgpzaWUgZGllIHZlcmxvcmVuPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbSBUYWcgZGVyIG9mZmVuZW4gVHVlci4KCkFudGhlYQooaGF0IGdlZ2VuIE9lc3RlcnJlaWNoZXIgbnVyIGVpbmUgZ3Jvc3NlIE9lc3RlcnJlaWNoZXJ3aXR6ZXNhbW1sdW5nOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEF1cyBkZXIgSGVlcmVzZGllbnN0dm9yc2NocmlmdDogKEJsZWVsdW1wZSwgMjcuIE5vdiAxOTk0LCAxOTozOToyOSk6CiMhIHJuPUZ5dCBydD03ODU4NTEyODEKb2sKK2ljaCBoYWJzIGdlbG9lc2NodApzb2xsIG5pbW1lciB2b3Jrb21tZW4uCkVocmxpY2gKYmlzIGRlbm4gZXVlcgogICAgICAgICAgICAgIEJsZWUuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNwcnVjaCAoVGlsaW9uLCAyOC4gTm92IDE5OTQsIDEzOjU3OjMwKToKIyEgcm49Q2VyZWJ1cyBydD03ODU3NjY5NzEKLi4uYW5kIGl0cyB0aGUgdmVyeSBiZXN0IHRvIGJlIGZyb20gYW4gZWlmZWxuZXN0CgpUaWxvbiwgbmV1bGljaCBpbiBkZXIgZWlmZWwgZ2V3ZXNlbiB1bmQgaW1tZXIgbm9jaCBhbSBsYWNoZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbmVuIGhhYiBpY2ggbm9jaCAoQ2FtcGlubywgMjguIE5vdiAxOTk0LCAyMToxNzozMyk6CldhcyBmcmFndCBlaW5lIEJsb25kaW5lIGRlbiBBcnp0LCBuYWNoZGVtIGVyIGlociBlcnphZWhsdCBoYXQsIGRhc3MKc2llIHdpcmtsaWNoIHNjaHdhbmdlciBpc3QsIG5hY2hkZW0gc2llIHNjaG9uIGxhZW5nZXJlIFplaXQga2VpbmUKcm90ZW4gTmFzZW4gbWVociBnZXNlaGVuIGhhdCA/Pz8/PwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKClNpbmQgc2llIHNpY2hlciwgZGFzcyBlcyBtZWlucyBpc3QgPz8/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJuc3RoYWZ0aWdrZWl0IHZvbiBNVURzIChNYXRlZXNlLCAyOS4gTm92IDE5OTQsIDIwOjI4OjE4KToKIkZvciBoaXN0b3JpY2FsIHJlYXNvbnMgdGhlIHVzZXJzIG9mIHN1Y2ggYSBzeXN0ZW0gYXJlIGNhbGxlZCAncGxheWVycycuIgogIC0tIFBhdmVsIEN1cnRpcyBpbSBMYW1iZGFNT08gTWFudWFsIChhdXMgZGVtIEdlZGFlY2h0bmlzIHppdGllcnQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaWVyPyAoQW50aGVhLCAzMC4gTm92IDE5OTQsIDE1OjMyOjIyKToKKiogRW5nbGlzaCBiZWVyIGlzIGxpa2UgbWFraW5nIGxvdmUgaW4gYSBjYW5vZTogaXQncyBmdWNraW5nIGNsb3NlIHRvIHdhdGVyCioqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoJ24gR2VkaWNodCAoTGksIDMwLiBOb3YgMTk5NCwgMTU6MzY6MDgpOgoKCk9rLE9rLCBpY2ggd2Vpc3MsIGRpZXNlciBBcnRpa2VsIGdlaG9lcnQgdmlsZWljaHQgaW4gS3VsdHVyLCBhYmVyIGluIFdpdHplCmhhdAplciBhdWNoIHNlaW5lIERhcnNlaW5zYmVyZWNodGlndW5nLiBBdXRvciBkaWVzZXMgIktsYXNzaWtlcnMiIGlzdApIZWlueiBFcmhhcmR0LgoKCkRlciBUYXVjaGVuaWNodHMKL2ZyZWkgbmFjaCBTY2hpbGxlcnMgVGF1Y2hlcikKCj5XZXIgd2FndCBlcywgS25hcHBlcnNtYW5uIG9kZXIgUml0dCwKenUgc2NobHVuZGVuIGluIGRpZXNlbiBUYXVjaD8KRWluZW4gZ3VlbGRlbmVuIEJlY2hlciBoYWIgaWNoIG1pdCwKZGVuIHdlcmYgaWNoIGpldHp0IGluIGRlcyBNZWVyZXMgQmF1Y2ghCldlciBpaG4gbWlyIGJyaW5ndCwgaWhyIE1hbm5lbiB1bmQgS25hYmVuLApkZXIgc29sbCBtZWluZSBUb2NodGVyIHp1bSBXZWliZSBoYWJlbiE8CiAgIERlciBCZWNoZXIgZmxvZy4KICAgRGVyIFN0cnVkZWwgem9nCiAgIGlobiBoaW5hYiBpbnMgZ3JldWxpY2hlIFRpZWYuCiAgIERpZSBNYWVubmVyIHNjaGF1dGVuLAogICB3ZWlsIHNpZSBzaWNoIGdyYXV0ZW4sCiAgIHdlZy4gLSBVbmQgYWJlcm1hbHMgZGVyIEtvZW5pZyByaWVmOgoKPldlciB3YWd0IGVzLCBLbmlwcGVyc21hbm4gb2RlciBSYXR0LAp6dSBzY2hsYXVjaGVuIGluIGRpZXNlbiBUdW5kPwpXZXIgcyB3YWd0IC0gZGFzIGVya2xhZXIgaWNoIGFuIEVpZGVzIFN0YXR0IC0KZGFyZiBrdWVzc2VuIG1laW5lcyBUb2VjaHRlcmxlaW5zIE11bmQhCkRhcmYgaGVpcmF0ZW4gc2llLiBEYXJmIG1laW4gTGFuZCB2ZXJ3YWx0ZW4hClVuZCBhdWNoIGRlbiBCZWNoZXIgZGFyZiBlciBiZWhhbHRlbiE8CiAgRGEgc2NobGljaGVuIGRpZSBNYW5uZW4KICB1bmQgS25hcHBlbiB2b24gZGFubmVuLgogIEJhbGQgd2FyZW4gc2llIGFsbGUgdmVyc2Nod3VuZGVuIC0gLSAtCiAgU2llIHd1c3N0ZW4gdmVybGFlc3NsaWNoOgogIERpZSBUb2NodGVyIGlzdCBncmFlc3NsaWNoISAtCiAgRGVyIEJlY2hlciBsaWVndCBoZXV0ZSBub2NoIHVudGVuLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKJ3dpdHplJyAoQ2FtcGlubywgMzAuIE5vdiAxOTk0LCAxOTo0Njo1NCk6ClVtIHNjaGxpbW1lcmVtIFZvcnp1YmV1Z2VuLCB2ZXJhYnNjaGllZGUgaWNoIG1pY2ggbWFsIGF1cyBkaWVzZXIgUnVicmlrLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUy4gV29uZGVyIEF1ZmtsYWVydW5nISAoRmlja2Zyb3NjaCwgMzAuIE5vdiAxOTk0LCAxOTo1MjowOCk6ClN0ZWV2aWUgV29uZGVyIGhhdCBzaWNoIG5pY2h0IHRvdGdlbGVzZW4sIGVzIHdhciBlaW4gdHJhZ2lzY2hlciB1bmZhbGw6CkVyIGlzdCB2b24gZGVyIFRyZXBwZSBnZXN0dWVyenQsIG1hbiBrb25udGUgaWhuIGFiZXIgbmljaHQgaG9lcmVuIHdlaWwgZXIKRmFldXN0bGluZ2UgYW5oYXR0ZSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTVVELWRyaXZlcj8/IChHcmltbWJvcm4sIDMwLiBOb3YgMTk5NCwgMjA6MDc6MzgpOgojISBybj1Mb2NvIHJ0PTc4NjIyMjA4OQpIbW0sIHdvIHdhciBkaWUgUG9pbnRlPyBIYWIgaWNoIHdvaGwgdmVycGFzc3QuLi4gOy0pCgpBZWgsICJvYmpva2UiLi4uCipkZW5rKgpHZWhuIHp3ZWkgRnJhdWVuLCBlaW5lIGJsb25kLCBkaWUgYW5kZXJlIG5pY2h0IGJsb25kIChhYmVyIGF1Y2ggbmljaHQKcm90aGFhcmlnISkgZGllIFN0cmFzc2UgZW50bGFuZy4KQXVzIGVpbmVtIEJsdW1lbmxhZGVuIGtvbW10IGVpbmUgU2FobmVzY2huaXR0ZSAobWFlbm5saWNoLCBuaWNodCBzY2h3dWwsCnZpZWxsZWljaHQgYmlzZXh1ZWxsKSBtaXQgZWluZW0gQmx1bWVuc3RyYXVzcyAoZWluZ2VwYWNrdCkgaW0gQXJtIGF1ZiBkaWUKU3RyYXNzZS4KTGFlY2hlbHQgaWhuIGRpZSBuaWNodCBibG9uZGUgKHVuZCBhdWNoIG5pY2h0IHJvdGhhYXJpZ2UpIGFuLiBTYWd0IGVyOgonc2Nob2VuZSBaYWVobmUsIGdpYnRzIGRpZSBhdWNoIGluIHdlaXNzPycKClNvLCBkZXIgd2FyIGpldHp0IGF1Y2ggZWluIGluc2lkZXIuLi4gOi0pKSkKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXRsYW50aXMgYW4gZGVyIGx1ZnQ/IChOaXhpaG91LCAgMS4gRGV6IDE5OTQsIDA4OjA5OjMyKToKCgpBbHNvIGFscyBpY2ggZWlubWFsIGluIEF0bGFudGlzIHdhci4uLjoKCkR1IHN0ZWhzdCBhdWYgZGVyIFJpbmdzdHJhc3NlIGRlciBVbnRlcndhc3NlcnN0YWR0LiBJbSBXZXN0ZW4gc2llaHN0IER1IGRhcwpTdGFkdHRvci4gTmFjaCBOb3JkZW4gdW5kIFN1ZWR3ZXN0ZW4gZnVlaHJ0IGRpZSBSaW5nc3RyYXNzZSBhbiBkZXIgU3RhZHRtYXVlcgplbnRsYW5nLCBuYWNoIE9zdGVuIGZ1ZWhydCBkaWUgSGF1cHRzdHJhc3NlIGluIFJpY2h0dW5nIE1hcmt0cGxhdHouCkVzIGdpYnQgdmllciBzaWNodGJhcmUgQXVzZ2FlbmdlOiB3ZXN0ZW4sIHN1ZWR3ZXN0ZW4sIG5vcmRlbiB1bmQgb3N0ZW4uCkVpbiBIYWl3ZWliY2hlbi4KRWluIEt1Z2VsZmlzY2guCkVpbiBncm9zc2VyIFppdHRlcmFhbC4KPiB1bnQgd2Fzc2VyClNvd2FzIGthbm5zdCBEdSBoaWVyIG5pY2h0IGZpbmRlbi4KPgoKaWNoIGdsYXViZSBkYXMgc3ByaWNodCBmdWVyIHNpY2ggc2VsYnN0IQpOaXhpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmdyaW5zKiAoU21hdWcsICAxLiBEZXogMTk5NCwgMDg6NDI6MTEpOgpobW1tLi4uCgpoYWJ0IGlociBzY2hvbiB2b24gZGVtIGJsb25kZW4ga29qb3RlbiBnZWhvZXJ0PwplciAoISkgaXN0IGluIGVpbmUgZmFsbGUgZ2V0cmV0ZW4sIG5hY2ggMyB0YWdlbiBoYXQgZXIgc2ljaCAzIGJlaW5lIGFiZ2VuYWd0CnVuZCB3YXIgbm9jaCBpbW1lciBnZWZhbmdlbiEKCmljaCB3ZWlzcyB3YXIgZWluIGJsb2VkZXIgd2l0eiwgYWJlciBpY2ggZ2xhdWJlIGRlciBzdG9lcnQgbmllbWFuZGVuIC4uLgpzbWF1ZyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipncmlucyogKFNtYXVnLCAgMS4gRGV6IDE5OTQsIDA4OjQ3OjU1KToKCkY6IFdpZSBuZW5udCBtYW4gZXMsIHdlbm4gZWluRSBCbG9uZGVSIGVpbmVuIFN0cm9oYmFsbGVuIG1pdCBzaWNoCmhlcnVtc2NobGVwcHQ/CgpBOiBleHRlcm5lciBTcGVpY2hlciEKCnNtYXVnIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmdyaW5zIElJSSogKFNtYXVnLCAgMS4gRGV6IDE5OTQsIDA4OjUyOjQzKToKaG1tLi4uCgpuZXVsaWNoIGhhYmUgaWNoIDIgcHJldXNzZW4gYXVmIGRlbSBwYXJrcGxhdHogYmVvYmFjaHRldDoKCnNpZSB2ZXJzdWNodGVuIGloZXJuIG1lcmNlZGVzIG1pdCBlaW5lbSBzdHVlY2sgZHJhaHQgYXVmenVicmVjaGVuLgoKcHJldXNzZSAjMTogaWNoIGdsYXViIGljaCBzY2hhZmZlIGVzIG5pY2h0IQoKcHJldXNzZSAjMjogaG1tLCBkdSBzb2xsdGVzdCBkaWNoIGFiZXIgYmVlaWxlbiEgZXMgYmVnaW5udCB6dSByZWduZW4gdW5kIGRhcwp2ZXJkZWNrIGlzdCBub2NoIHVudGVuIQoKaWNoIHdvbGx0IG1pY2ggZWluZmFjaCBmdWVyIGRpZSBvZXN0ZXJyZWljaGVyLXdpdHplIHJldi4uLiBhZWhoLi4uIHJhZWNoZW4hCnNtYXVnIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmdyaW5zIElWKiAoU21hdWcsICAxLiBEZXogMTk5NCwgMDk6MDA6MjgpOgpobW1tLi4uCgoyIHByZXVzc2VuIGdlaGVuIGltIHdhbGQgc3BhemllcmVuLiBwbG9ldHpsaWNoIGJsZWlidCBkZXIgZWluZSBzdGVoZW4gdW5kCnNjaGF1dCBuYWNoIHVudGVuOiA+Z3VjayBtYWwhIHJlaHNwdXJlbjwKZGFyYXVmIGRlciBhbmRlcmU6ID5uZWluIGRhcyBzaW5kIHNwdXJlbiBlaW5lcyB3b2xmZXM8Cj5uZWluISByZWhzcHVyZW48Cj53b2xmc3B1cmVuPAouLi4KZWluZSBoYWxiZSBzdHVuZGUgc3BhZXRlciB3dXJkZW4gc2llIHZvbiBlaW5lbSB6dWcgdWViZXJyb2xsdCEKCnVlYnJpZ2VuczogZGllIHByZXVzc2VuIHNpbmQgZW50d2VkZXI6CmJlaWRlIG1hZW5ubGljaAptYWVubmxpY2ggd2VpYmxpY2gKd2VpYmxpY2ggbWFlbm5saWNoCmJlaWRlIHdlaWJsaWNoCgpzbWF1ZzogZW5kZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT2huZSBXb3J0ZSAoVHJlbW9yLCAgMS4gRGV6IDE5OTQsIDExOjQzOjQ0KToKTmV1bGljaCBpbSBNdWQ6CltBbGxnZW1laW46VGFyZ2FzXSBXYXMgYnJhdWNoZSBpY2ggZGVubiBmdWVyIFN0YXRzLCB1bSBkZW4gVmllcmhhZW5kZXIKW0FsbGdlbWVpbjpUYXJnYXNdIGJldXR6ZW4genUga29lbm5lbj8KCgoKSG1taCwgYWxsZXMgd2FzIG1hbiBqZXR6dCBzYWd0IGlzdCBTcGllbGVyaGlsZmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNb3JnZW5ncmF1ZW4gKEFudGhlYSwgIDEuIERleiAxOTk0LCAxNToxOTozNyk6CkRlciBTdGVpbmJlaXNzZXIgdmVyc2Nod2luZGV0IHdpZWRlciwgdW5kIER1IHdhY2hzdCBpbiBlaW5lciBhbmRlcmVuIFdlbHQKYXVmLgoKV2llIGhlaXNzdCBEdSBkZW5uID8gbW9yZ2VuZ3JhdWVuCkRlaW4gTmFtZSBpc3QgenUgbGFuZywgbmltbSBiaXR0ZSBlaW5lbiBhbmRlcmVuLgoKU2NoYWRlLCBkYSBrYW5uIG1hbiBhbHMgJ01vcmdlbkdyYXVlbicgbmljaHRzIHJ1ZmVuLi4uLiA6KQogICBBbnRoZWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1ldHpnZXItd2l0eiAoQ2lmZXIsICAyLiBEZXogMTk5NCwgMTE6MDg6NDMpOgpIYWxsbywKaWNoIGdsYXViZSwgZGllcyBpc3QgZGVyIGVyc3RlIFdpdHosIGRlbiBpY2ggaGllciB2ZXJvZWZmZW50bGljaGUsIHVuZCBkZXIKbmV1ZXN0ZSBpc3QgZXMgYXVjaCBuaWNodC4gSWNoIGhvZmZlIG5pY2h0LCBkYXNzIGpldHp0IE1ldHpnZXJ0b2VjaHRlciwKTWV0emdlcm1laXN0ZXIgb2RlciBGcmF1ZW4gYWxsZ2VtZWluIGJlbGVpZGlndCB1bmQgZGlza3JpbWluaWVydCBzZWluIHdlcmRlbi4KCgpFaW4gTWV0emdlcm1laXN0ZXIgZXJ3YWNodCBlaW5lcyBOYWNodHMsIHdlaWwgZXIgYXVzIHNlaW5lbSBMYWRlbiBzZWx0c2FtZQpHZXJhZXVzY2hlIGhvZXJ0LiBFciBzdGVpZ3QgYXVzIGRlbSBCZXR0IHVuZCBob2x0IGRpZSBTY2hyb3RmbGludGUgYXVzCmRlbSBTY2hsYWZ6aW1tZXJzY2hyYW5rLiBWb3JzaWNodGlnIHNjaGxlaWNodCBlciBkaWUgVHJlcHBlIGhlcnVudGVyLiMKSW0gTGFkZW4gYnJlbm50IExpY2h0LiBEZXIgTWV0emdlcm1laXN0ZXIgYmVrb21tdCBBbmdzdC4gU2Nocml0dCBmdWVyIFNjaHJpdHQKc2NobGVpY2h0IGVyIGluIHNlaW5lbiBMYWRlbi4gRGEgc2llaHQgZXIsIHdpZSBzaWNoIHNlaW5lIFRvY2h0ZXIgbWl0IGVpbmVyClNhbGFtaSBzZWxic3QgYmVmcmllZGlndC4KVG9sZXJhbnQgYmVzY2hsaWVzc3QgZXIsIG5pY2h0cyB6dSBzYWdlbiB1bmQgZ2VodCB3aWVkZXIgaW5zIEJldHQuIEFtCm5hZWNoc3RlbiBNb3JnZW4ga29tbXQgZWluZSBLdW5kaW4gdW5kIG1vZWNodGUgU2FsYW1pIGhhYmVuLiBEZXIgTWV0emdlciBzYWd0OgoiVHV0IG1pciBsZWlkLCBpY2ggaGFiZSBrZWluZSBTYWxhbWkuIgpEYSBkZXV0ZXQgZGllIEZyYXUgYXVmIGRpZSBTYWxhbWksIGRpZSBhbiBkZXIgV2FuZCBoYWVuZ3QuICJBYmVyIGhpZXIgaGFlbmd0CmRvY2ggZWluZSBTYWxhbWkhIgoiVHV0IG1pciBsZWlkIiwgc2FndCBkZXIgTWV0emdlciwgImRhcyBpc3Qga2VpbmUgU2FsYW1pLCBkYXMgaXN0IG1laW4KU2Nod2llZ2Vyc29obiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWt0YXR1cmVuIChBcmFtZWEsICAyLiBEZXogMTk5NCwgMTE6MTk6MDIpOgpLYWJlcmV0dGlzdGlzY2hlcyB6dSBEaWt0YXR1cmVuLgpXYXMgaGF0IGVpbmUgRGlrdGF0dXIgbWl0IGVpbmVyIFN0cmFzc2VuYmFobiBnZW1laW5zYW0/CgpBbHNvLHZvcm5lIGlzdCBkZXIgRnVlaHJlci5XZXIgbmljaHQgaGludGVyIGlobSBzdGVodCBzaXR6dC4gRGF1ZXJuZCB3aXJkCmtvbnRyb2xsaWVydCB1bmQgYWJzcHJpbmdlbiB3YWVyZW5kIGRlciBGYWhydCBnZWh0IG5pY2h0Li4uCgogICAgICAgICAgQXJhbWVhICwgZXMgZ2FiIGF1Y2ggZ3V0ZSBQb2ludGVuIGltIGRyaXR0ZW4gUmVpY2guLi46KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlbm5lcndpdHplIChBcmFtZWEsICAyLiBEZXogMTk5NCwgMTE6MjE6MTgpOgpLb21tdCBlaW4gTWFubiBpbiBlaW5lbiBCdWNobGFkZW4gdW5kIHNhZ3Q6ICIgSWNoIG1vZWNodGUgZGFzIEJ1Y2ggbWl0IGRlbQpUaXRlbDogRGVyIE1hbm4sIGRlciBIZXJyIGltIEhhdXNlLiIKQW50d29ydGV0IGRpZSBWZXJrYWV1ZmVyaW46ICIgU2NpZW5jZSBGaWt0aW9uIHN0ZWh0IGhpbnRlbiBsaW5rcy4iCgogICAgICBBcmFtZWEgbGllYnQgcmljaHRpZ2UgTWFlbm5lcndpdHplLi4uLjopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWVubmVyd2l0emUgKEFyYW1lYSwgIDIuIERleiAxOTk0LCAxMToyMzo0Mik6ClVuZCBub2NoIGVpbmVyLi4uLjopCkVpbiBQYWFyIHN0cmVpdGV0IHNpY2guIFNjaHJlaXQgRXI6ICIgRHUgYmlzdCBkb2NoIG51ciBuZWlkaXNjaCwgZGFzcyBGcmF1ZW4KbmllIGRhcyBOaXZlYXUgdm9uIE1hZW5uZXJuIGVycmVpY2hlbiBrb2VubmVuISIKU2FldXNlbHQgU2llIDogIkFiZXIgTGllYmxpbmcgd2VsY2hlIEZyYXUgbW9lY2h0ZSBzY2hvbiBzb3dlaXQKaGluYWJzaW5rZW4uLi4iCiAgICAgICAgICAgICAgQXJhbWVhLi4uLjopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLbGVpbmUgU3VlbmRlbi4uLi4uIChTZXRob3MsICAyLiBEZXogMTk5NCwgMTM6MTM6MTUpOgpOZXVsaWNoIGltIE1VRDoKPiBNYWFhaWllciBydWZ0OiBwcmVhY2hlciBydWVscHN0CltUb2Q6XSBFaW4gTHVjaHMgaGF0IGdlcmFkZSBNYWFhaWllciB1bWdlYnJhY2h0LgoKSmFqYSwga2xlaW5lIFN1ZW5kZW4gYmVzdHJhZnQgZGVyIGxpZWJlIEdvdHQgc29mb3J0LgoKU2V0aG9zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2xlaW5lIFN1ZW5kZW4uLi4uLiAoQW50aGVhLCAgMi4gRGV6IDE5OTQsIDEzOjQ2OjI4KToKIyEgcm49U2V0aG9zIHJ0PTc4NjM3MDM5NQo+IFtUb2Q6XSBFaW4gTHVjaHMgaGF0IGdlcmFkZSBNYWFhaWllciB1bWdlYnJhY2h0Lgo+SmFqYSwga2xlaW5lIFN1ZW5kZW4gYmVzdHJhZnQgZGVyIGxpZWJlIEdvdHQgc29mb3J0LgoKR290dD8gU2VpdCB3YW5uIGlzdCBlaW4gTHVjaHMgSm9mLCBvZGVyIGFuZGVyc3J1bTogU2VpdCB3YW5uIGlzdCBKb2YgZWluCkx1Y2hzPyBTbyBlaW4gTHVjaHMgaXN0IGRvY2ggZnVlciBKb2YgdmllbCB6dSBoYXJtbG9zLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxsZ2VtZWluZXMtaW1wb3J0IChDYXR3ZWF6bGUsICAyLiBEZXogMTk5NCwgMTg6Mzk6MDQpOgpHcmltbWJvcm4gbWVpbnRlLCBkZXIgYXJ0aWtlbCBzb2xsZSBoaWVyaGVyLCBhbHNvOgpCaXR0ZXNlaHIuLi4KLS0tLS0tLS0tLS0tLS0tLS0tCm8gKFRocmVlcHdvb2QsICAyLiBEZXogMTk5NCwgMTg6MzE6MjMpOgpzb3JyeQpleGl0CgpoZXJyamUKcQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hZW5uZXJ3aXR6ZSAoSXNub2dvb2QsICAzLiBEZXogMTk5NCwgMDA6MTM6NTMpOgojISBybj1BcmFtZWEgcnQ9Nzg2MzYzNjc4CkhtbSwgc29sbCBpY2ggbWljaCBqZXR6dCB1ZWJlciBNYWVubmVyZGlza3JpbWluaWVydW5nIGF1ZnJlZ2VuLiBOZWluIGRhbmtlLAppY2ggbGFjaGUgbGllYmVyIHVlYmVyIHNvbGNoZSBXaXR6ZS4gRGFtaXQgZXMgYXVjaCBpbiBkaWVzZXIgUnVicmlrIGJsZWlidCwKZGVyIG9ibGlnYXRvcmlzY2hlIE9CSk9LRToKClRyZWZmZW4gc2ljaCAyIGFsdGUgc2NodWxmcmV1bmRlIHVuZCB0cmlua2VuIGVpbmUgVGFzc2Uga2FmZmUgenVzYW1tZW4uCkF1ZiBlaW5tYWwgemVpZ3QgZGVyIGVpbmUgYXVmIDIgRGFtZW4gKG5pY2h0IGJsb25kISEhKSwgZGllIGluIGVpbmlnZXIKRW50ZmVybnVuZyBTY2hhdWZlbnN0ZXIgaW5zcGl6aWVyZW4gKE5pY2h0IGFid2VydGVuZCB1bmQgZ2VuZXJhbGlzaWVyZW5kIGF1Zgp3ZWlibGljaGUgVGFldGlna2VpdGVuIGdlbXVlbnp0KSB1bmQgc2FndDogU2NoYXUgbWFsLCBkYSBzdGVoZW4gbWVpbmUgRnJhdSB1bmQKbWVpbmUgRnJldW5kaW4uIFNhZ3QgZGVyIGFuZGVyZSBLb21pc2NoLCBkYXNzZWxiZSB3b2xsdGUgaWNoIGF1Y2ggZ2VyYWRlCnNhZ2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVzc2lzY2hlIE11bmRhcnQgKEdhdHNieSwgIDMuIERleiAxOTk0LCAwMzowMTo0MSk6CkRhIGljaCBtaWNoIGhpZXIgbm9jaCBuaWUgdmVyZXdpZ3QgaGFiZSB1bmQgaW0gTW9tZW50IGhpZXIKZ2FyIG5pY2h0cyBhYmdlaHQsIHdpbGwgaWNoIGRvY2ggYXVjaCBtYWwgZWluZW4gV2l0eiB6dW0KYmVzdGVuIGdlYmVuOgoKRWluIGhlc3Npc2NoZXIgQmlvbG9naWVzdHVkZW50IGhhdCBtdWVuZGxpY2hlIFBydWVmdW5nOgpQcm9mZXNzb3I6IEljaCBwcnVlZmUgU2llIGhldXRlIHVlYmVyIFRpZXJlIGltIGFsbGdlbWVpbmVuCiAgICAgICAgICAgdW5kIHNwZXppZWxsZW4uIEFsc28gZmFuZ2VuIHdpciBkb2NoIGdsZWljaCBtYWwKICAgICAgICAgICBhbi4gV2FzIHdpc3NlbiBTaWUgdWViZXIgV3Vlcm1lcj8KU3R1ZGVudDogIEVpLCBkZXMgaXMgbmV0IHNjaHdlci4gV3Vlcm1lciBbc3ByaWNoOiB3YWVtbWFdLAogICAgICAgICAgZGllIHNpbiBsYW5nIHVuIGR1ZW5uLiBTJ2dpYnQgZHJlaSBBYXJ0ZSB2b24KICAgICAgICAgIFdhZW1tYTogUmVlamV3YWVtbWEsIEhvbHp3YWVtbWEsIEJhbmR3YWVtbWEhClByb2Zlc3NvcjogKG5pY2t0KSBHdXQhIEtvZW5uZW4gU2llIGRlbm4gYXVjaCBldHdhcyB1ZWJlcgogICAgICAgICAgIFNjaGxhbmdlbiBlcnphZWhsZW4/ClN0dWRlbnQ6ICAodWViZXJsZWd0IGt1cnopIEhhamEsIGtsYXIhIERlcyBpcyBnYW56IGVpbmZhY2guCiAgICAgICAgICBTY2hsYW5nZSwgZGllIHNpbiBsYW5nIHVuIGR1ZW5uLiBEaWUgc2VoZSBhdXMgd2llCiAgICAgICAgICBXYWVtbWEuIFMnZ2lidCBkcmVpIEFhcnRlIHZvbiBXYWVtbWE6IFJlZWpld2FlbW1hLAogICAgICAgICAgSG9sendlYW1tYSwgQmFuZHdhZW1tYSEKUHJvZmVzc29yOiAoc3RhdW50IG5pY2h0IHNjaGxlY2h0IHVlYmVyIGRhcyBpbW1lbnNlIFdpc3NlbgogICAgICAgICAgIGRlcyBTdHVkZW50ZW4gOy0pKSBKYS4uIGRhcyB3YXIgZ2FueiBndXQuCiAgICAgICAgICAge2dydWViZWx0OiBIbW0sIHdhcyB3aWxsIGRlciBpbW1lciBtaXQgc2VpbmVuCiAgICAgICAgICAgV3Vlcm1lcm4/IEljaCBiaW4gc2NobGF1IHVuZCBmcmFnZSBpaG4gZWluZmFjaAogICAgICAgICAgIG5hY2ggZWluZW0gVGllciwgZGFzIG5pY2h0cyBtaXQgV3Vlcm1lcm4genUgdHVuCiAgICAgICAgICAgaGF0fQogICAgICAgICAgIChsYWVjaGVsdCBkZW4gU3R1ZGVudGFuIGFuKSBEYW5uIGVyemFlaGxlbiBTaWUgbWlyCiAgICAgICAgICAgZG9jaCBtYWwgZXR3YXMgdm9uIEVsZWZhbnRlbiEKU3R1ZGVudDogIChhbnR3b3J0ZXQgcHJvbXB0KSBFbGVmYW5kZSwgZGllIHNpbiBkaWNrIHVuIGdyYXUuLgogICAgICAgICAgaGF3d2UgZ3Jvb29zc2UgT2hyZSB1biBlbiBSdWVzc2VsLi4gZGVyIGlzIGxhbmcKICAgICAgICAgIHVuIGR1ZW5uLiBTaWVodCBlaWdlbnRsaWNoIGF1cyB3aWUgZW4gV29tbS4gUydnaWJ0CiAgICAgICAgICBkcmVpIEFhcnRlIHZvbiBXYWVtbWE6IFJlZWpld2FlbW1hLCBIb2x6d2VhbW1hLAogICAgICAgICAgQmFuZHdhZW1tYSEKUHJvZmVzc29yOiB7ZGVua3Q6IEFsc28gaXJnZW5kd2llIGlzdCBkZXIgZG9jaCBiZXNjaGV1ZXJ0IQogICAgICAgICAgIEFiZXIgZWluZSBDaGFuY2Ugc29sbCBlciBub2NoIGhhYmVuLn0KICAgICAgICAgICAoc2V0enQgZWluZSBlcm5zdGUgTWluZSBhdWYgdW5kIHN0YXJ0ZXQgZWluZW4KICAgICAgICAgICBsZXR6dGVuIFZlcnN1Y2gpIE9rLCBzYWdlbiBTaXIgbWlyIGRvY2ggYml0dGUgenVtCiAgICAgICAgICAgU2NobHVzcyBub2NoLCB3YXMgU2llIHVlYmVyIGRpZSBFaXNiYWVyZW4gd2lzc2VuIQpTdHVkZW50OiAgSmEuLi4gRWlzYmFlcmU/IQogICAgICAgICAgRGllIHNpbiBncm9zcyB1biBoYXd3ZSBlbiBkaWNrZXMgd2FybWVzIHdlaXNzZXMKICAgICAgICAgIEZlbGwuIERpZSBFaXNiYWVyZSBsZXdlIGFtIE5vcmRwb2wuIERvcnQgaXNzZXMga2FsdC0KICAgICAgICAgIGJlaSB1bnMgaXNzZXMgd2Flcm1lci4gUydnaWJ0IGRyZWkgQWFydGUgdm9uIFdhZW1tYToKICAgICAgICAgIFJlZWpld2FlbW1hLCBIb2x6d2VhbW1hLCBCYW5kd2FlbW1hLi4uLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWF0aGVtYXRpa2VyIChBbmF0b2wsICAzLiBEZXogMTk5NCwgMTA6MDE6MTApOgoKRWlnZW50bGljaCBrZWluIFdpdHouClRyb3R6ZGVtIHdpdHppZy4KCj4gc3RldWVyIGxpbmtzCkR1IHN0ZXVlcnN0IGpldHp0IG1pdCBlaW5lciBXYWhyc2NoZWlubGljaGtlaXQgdm9uIDk5LjklIG5hY2ggbGlua3MuCj4gc3RldWVyIGxpbmtzCkR1IHN0ZXVlcnN0IGpldHp0IG1pdCBlaW5lciBXYWhyc2NoZWlubGljaGtlaXQgdm9uIDk5LjEwJSBuYWNoIGxpbmtzLgoKICAgICAgQW5hdG9sLCBkZXIgYmVpbSBQcm96ZW50cmVjaG5lbiBLcmVpZGVob2xlbiB3YXIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBUdWVja2VuIGRlciBUZWNobmlrLiAoTmV4dHRyeSwgIDMuIERleiAxOTk0LCAxNzozNjozNyk6CldpZSBlbnRsYXJ2ZW4gc2ljaCB1bnNpY2h0YmFyZSBNYWdpZXIgc2VsYnN0PyBNaXQgT3JvcGF4LiBIaWVyIGRlcgpCZXdlaXM6CnRlaWxlIGRhbmNlciBtaXQgdGVzdApKZW1hbmQgaG9lcnQgZ2FyIG5pY2h0IHp1LCB3YXMgRHUgc2Fnc3QuCktlaW4gc29sY2hlciBTcGllbGVyIGVpbmdlbG9nZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgd2llZGVyIEZhbW91cyBMYXN0IFdvcmRzIChBdXJldXMsICA0LiBEZXogMTk5NCwgMDE6MzU6NDIpOgpbQWxsZ2VtZWluOkZyb3NjaCBHYXN0MV0gaG1tbQpbVG9kOl0gRWluIEdvYmxpbiBoYXQgZ2VyYWRlIEdhc3QxIHVtZ2VicmFjaHQuCgo7LSkgU28gZml4IGdpbmcgZGFzIHNlbHRlbiA7LSkKbWl0IGdvbGRpZ2VuIEdydWVzc2VuLCBBdXJldXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkluc2lkZXIgKEtyZXRlaywgIDQuIERleiAxOTk0LCAwNDo1NzowMik6CkRlciBoaWVyIGlzdCBqZXR6dCBhYmVyIHdpcmtsaWNoIG51ciBmdWVyIEluc2lkZXIuLi4gR2VuYXVlciBnZXNhZ3QsCmZ1ZXIgTGV1dGUsIGRpZSBTb25udGFncyAoNC4gRGV6ZW1iZXIpIG5hY2h0cyBlaW5nZWxvZ2d0IHdhcmVuOgoKCklhbiBpc3QgZWluIG5ldHRlciBLZXJsIQoKCgooSmEsIGljaCB3ZWlzcyBzY2hvbiwgdmllbGxlaWNodCBlaW5lIFNwdXIgenV2aWVsIElyb25pZS4uLiBOYSwgaWNoCmFyYmVpdGUgbm9jaCBkYXJhbiEpCgoKYyB1IGw4ZXIsCiAgIEtyZXRlawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdSBiZWltIEFyenQgKExhdHpob3NlLCAgNS4gRGV6IDE5OTQsIDIwOjEzOjQ4KToKIkhlcnIgRG9rdG9yLCBpY2ggaGFiIG5lbiBLbm90ZW4gaW4gZGVyIEJydXN0ISIKIlRzLCB0cywgd2VyIG1hY2h0IGRlbm4gc293YXMhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hpcnVyZ2VuLVdpdHplIGdlc3VjaHQhIChLZXRvcywgIDUuIERleiAxOTk0LCAyMDo0MTo1Nyk6CkljaCBzdWNoZSBDaGlydXJnZW4gLSBBZXJ6dGUgV2l0emUgZGVyIHVlYmxlbiBBcnQuCgphbSBiZXN0ZW4gcGVyIG1haWwgYW4gbWljaC4KCi0gS2V0b3MgLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnVlciB1bnNlcmUgUEMtRnJldW5kZSAoV2FyZ29uLCAgNi4gRGV6IDE5OTQsIDEwOjAzOjQwKToKICBIdWh1IQpEZXIgS3JpZWcgendpc2NoZW4gUEMtT3BmZXJuIHVuZCBkZW4gQmVzaXR6ZXJuIGFuZGVyZXIKQ29tcHV0ZXJzeXN0ZW1lIGlzdCBqYSBudW4gc2Nob24gc2VpdCBlaW5pZ2VyIFplaXQgZW50YnJhbm50LgpLZWluZSBHZWxlZ2VuaGVpdCB3aXJkIGF1c2dlbGFzc2VuLCBkZXIgYW5kZXJlbiBTZWl0ZSBlaW5zCmF1c3p1d2lzY2hlbi4gRGEga2FtIGRpZSBNZWxkdW5nIHVlYmVyIGRpZSAiUmVjaGVuZ2VuYXVpZy0Ka2VpdCIgZGVzIFBlbnRpdW0tQ2hpcHMgbmF0dWVybGljaCBnZXJhZGUgcmVjaHQuLi4KSW4gY29tcC5zeXMuYW1pZ2EubWlzYyBnYWIgZXMgZGF6dSBmb2xnZW5kZXMgenUgbGVzZW46CgpTdWJqZWN0OiBIdW1vcjogVGhlIFBlbnRpdW06IE5lYXJseSAzMDAgQ29ycmVjdCBPcGNvZGVzClEmQTogIFRIRSBQRU5USVVNIEZESVYgQlVHCgpROiAgSG93IG1hbnkgUGVudGl1bSBkZXNpZ25lcnMgZG9lcyBpdCB0YWtlIHRvIHNjcmV3IGluIGEgbGlnaHQgYnVsYj8KQTogIDEuOTk5MDQyNzQwMTcsIGJ1dCB0aGF0J3MgY2xvc2UgZW5vdWdoIGZvciBub24tdGVjaG5pY2FsIHBlb3BsZS4KClE6ICBXaGF0IGRvIHlvdSBnZXQgd2hlbiB5b3UgY3Jvc3MgYSBQZW50aXVtIFBDIHdpdGggYSAgcmVzZWFyY2ggZ3JhbnQ/CkE6ICBBIG1hZCBzY2llbnRpc3QuCgpROiAgV2hhdCdzIGFub3RoZXIgbmFtZSBmb3IgdGhlICJJbnRlbCBJbnNpZGUiIHN0aWNrZXIgdGhleSBwdXQgb24KICAgIFBlbnRpdW1zPwpBOiAgVGhlIHdhcm5pbmcgbGFiZWwuCgpROiAgV2hhdCBkbyB5b3UgY2FsbCBhIHNlcmllcyBvZiBGRElWIGluc3RydWN0aW9ucyBvbiBhIFBlbnRpdW0/CkE6ICBTdWNjZXNzaXZlIGFwcHJveGltYXRpb25zLgoKUTogIENvbXBsZXRlIHRoZSBmb2xsb3dpbmcgd29yZCBhbmFsb2d5OiAgQWRkIGlzIHRvIFN1YnRyYWN0IGFzIE11bHRpcGx5CiAgICBpcyB0bzoKICAgICAgICAxKSAgRGl2aWRlCiAgICAgICAgMikgIFJPVU5ECiAgICAgICAgMykgIFJBTkRPTQogICAgICAgIDQpICBPbiBhIFBlbnRpdW0sIGFsbCBvZiB0aGUgYWJvdmUKQTogIE51bWJlciA0LgoKUTogIFdoYXQgYWxnb3JpdGhtIGRpZCBJbnRlbCB1c2UgaW4gdGhlIFBlbnRpdW0ncyBmbG9hdGluZyBwb2ludCBkaXZpZGVyPwpBOiAgIkxpZmUgaXMgbGlrZSBhIGJveCBvZiBjaG9jb2xhdGVzLiIgKFNvdXJjZTogRi4gR3VtcCBvZiBJbnRlbCkKClE6ICBXaHkgZGlkbid0IEludGVsIGNhbGwgdGhlIFBlbnRpdW0gdGhlIDU4Nj8KQTogIEJlY2F1c2UgdGhleSBhZGRlZCA0ODYgYW5kIDEwMCBvbiB0aGUgZmlyc3QgUGVudGl1bSBhbmQgZ290CiAgICA1ODUuOTk5OTgzNjA1LgoKUTogIEFjY29yZGluZyB0byBJbnRlbCwgdGhlIFBlbnRpdW0gY29uZm9ybXMgdG8gdGhlIElFRUUgc3RhbmRhcmRzIDc1NAogICAgYW5kIDg1NCBmb3IgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYy4gIElmIHlvdSBmbHkgaW4gYWlyY3JhZnQKICAgIGRlc2lnbmVkIHVzaW5nIGEgUGVudGl1bSwgd2hhdCBpcyB0aGUgY29ycmVjdCBwcm9udW5jaWF0aW9uIG9mICJJRUVFIj8KQTogIEFhYWFhYWFpaWlpaWlpaWllZWVlZWVlZWVlZWVlIQoKClRPUCBURU4gTkVXIElOVEVMIFNMT0dBTlMgRk9SIFRIRSBQRU5USVVNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogIDkuOTk5OTk3MzI1MSAgIEl0J3MgYSBGTEFXLCBEYW1taXQsIG5vdCBhIEJ1ZwogIDguOTk5OTE2MzM2MiAgIEl0J3MgQ2xvc2UgRW5vdWdoLCBXZSBTYXkgU28KICA3Ljk5OTk0MTQ2MTAgICBOZWFybHkgMzAwIENvcnJlY3QgT3Bjb2RlcwogIDYuOTk5OTgzMTUzOCAgIFlvdSBEb24ndCBOZWVkIHRvIEtub3cgV2hhdCdzIEluc2lkZQogIDUuOTk5OTgzNTEzNyAgIFJlZGVmaW5pbmcgdGhlIFBDIC0tIGFuZCBNYXRoZW1hdGljcyBBcyBXZWxsCiAgNC45OTk5OTk5MDIxICAgV2UgRml4ZWQgSXQsIFJlYWxseQogIDMuOTk5ODI0NTkxNyAgIERpdmlzaW9uIENvbnNpZGVyZWQgSGFybWZ1bAogIDIuOTk5MTUyMzYxOSAgIFdoeSBEbyBZb3UgVGhpbmsgVGhleSBDYWxsIEl0ICpGbG9hdGluZyogUG9pbnQ/CiAgMS45OTk5MTAzNTE3ICAgV2UncmUgTG9va2luZyBmb3IgYSBGZXcgR29vZCBGbGF3cwogIDAuOTk5OTk5OTk5OCAgIFRoZSBFcnJhdGEgSW5zaWRlCgogIEludGVsIG91dHNpZGUsCiAgICBXYXJnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0YXRpc3RpayAoQ2F0d2VhemxlLCAgNi4gRGV6IDE5OTQsIDEwOjIwOjMwKToKSGkhCkFsc28sIGFsbGVuIGRpZSBTY2htaWR0ZWluYW5kZXIgcmVjaHQgc2NobGVjaHQgZmluZGVuIChzb2xscyBnZWJlbiBMZXV0ZSwKc29sbHMgZ2ViZW4gLi4uKSwgaXN0IHp1IHNhZ2VuLCBkYXMgZGllIFNlbmR1bmcgZGFtYWxzIGltIFdEUiBiZWkgd2VpdGVtCmJlc3NlciB1bmQgdW5nZXp3dW5nZW5lciB3YXIuIERhbWFscyBoYXQgRmV1ZXJzdGVpbiBvZWZ0ZXIgbWFsClN0YXRpc3Rpa2VuIGdlYnJhY2h0LiBEYXMgYWxsZXJiZXN0ZSB3YXMgaWNoIGplIHZvbiBpaG0gZ2Vob2VydCBoYWJlIHdhcgpmb2xnZW5kZToKCjQ4ICUgYWxsZXIgTWFlbm5lciB3dWVyZGVuIHNpY2ggZnVlciBpaHJlIFBhcnRuZXJpbiBkZW4gUGVuaXMgdmVyZ3JvZXNzZXJuCiAgICAgbGFzc2VuLCB3ZW5ucyBzY2huZWxsIGdlaHQgdW5kIG5pY2h0IHdlaCB0dXQuCgo5NyAlIGFsbGVyIEZyYXVlbiB3dWVyZGVuIGRlbiBQZW5pcyBpaHJlcyBQYXJ0bmVycyB2ZXJsYWVuZ2VybiBsYXNzZW4sCiAgICAgQVVDSCB3ZW5ucyBsYW5nZSBkYXVlcnQgdW5kIHdlbm5zIHdlaCB0dXQgd2llIFNBVSEKCgpZVCwKICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGVudGl1bSAoQ2F0d2VhemxlLCAgNi4gRGV6IDE5OTQsIDEzOjU3OjU4KToKSGkhCkdyYWRlIGJlaSBQZXN0IGF1Zmdlc2NobmFwcHQ6CgpJc3QgZGFzIEVyZ2VibmlzIG5hY2ggZGVtIEtvbW1hIGtydW0sCiAgICAgSHVycmEsIGVzIHJlY2huZXQgZGVyIFBlbnRpdW0uCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNpdHVhdGlvbnNodW1vci4uLiAoS3JldGVrLCAgNy4gRGV6IDE5OTQsIDAzOjU1OjQ4KToKSWNoIGZpbmQgZGFzIHNjaG9uIGd1dCAtIG9id29obCAob2RlciB3ZWlsPykgZXMgdm9uIG1pciBzdGFtbXQuLi4KWnVtaW5kZXN0IGRlciBTZW5mIGRhenUhIDopKQoKPiBbTW9lcmRlcjpHZWlzdCBlaW5lciBCaWVuZV0gSHVldGV0IEV1Y2ggdm9yIFNpZSEKW0FsbGdlbWVpbjpLcmV0ZWtdIFZvciBJSFIsIG11c3MgZGFzIGhlaXNzZW4hIDopKSkKW0FsbGdlbWVpbjpLcmV0ZWtdIERvb2ZlIEJpZW5lLi4uCgoKU29ycnksIFNpZS4uLgpVbmQgd2VyIG5pY2h0IHdpbGwsIG11c3MgZXMgamEgYXVjaCBuaWNodCBrb21pc2NoIGZpbmRlbiEgOikKCmMgdSBsOGVyLAogICBLcmV0ZWsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnRvdGUgYmVkaWVudW5nPyAoTml4aWhvdSwgIDcuIERleiAxOTk0LCAxNDowNjo0OSk6CmluIGRlciBiYXIgaW0gZHNjaHVuZ2VsOgoKRGFzIGlzdCBkYXMgTG9rYWwgZGVyIFdhbmdhcy4gRXMgaXN0IGVoZXIgc3BhZXJsaWNoIGVpbmdlcmljaHRldCwgc2NoZWludAphYmVyIHNlaW5lIEZ1bmt0aW9uIHp1IGVyZnVlbGxlbi4gRHUgc2llaHN0IGVpbmUgVGhla2UsIHZvciBkZXIgZWluaWdlCkJhcmhvY2tlciBzdGVoZW4uIEF1Y2ggendlaSBUaXNjaGUgbWl0IFN0dWVobGVuIHN0ZWhlbiBoaWVyLiBEaWUgV2FlbmRlIHNpbmQKbWl0IGVpbmdlcmlzc2VuZW4gUG9zdGVybiBiZWtsZWJ0IHVuZCBhdWYgZGVtIEJvZGVuIGxpZWdlbiBhbGxlIG1vZWdsaWNoZW4KU2NoYWxlbiB1bmQgSHVlbHNlbiB2b24gRnJ1ZWNodGVuLiBNb21lbnRhbiBpc3QgaGllciBuaWNodCB2aWVsIGxvcywgZGFzCkFsbHRhZ3NsZWJlbiBkZXIgV2FuZ2FzIHNjaGVpbnQgc2ljaCBuaWNodCBpbiBpaHJlciBLbmVpcGUgYWJ6dXNwaWVsZW4uCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBub3JkZW4uCkRpZSB2ZXJmYXVsdGVuIEVpbnplbHRlaWxlIGVpbmVzIEFmZmVuLgpEaWUgVG9wLUxpc3RlLCBUb3AtU3BpZWxlcmxpc3RlLCBUb3AtU2VoZXJsaXN0ZSB1bmQgVG9wLVp3ZWl0aWxpc3RlLgoKa2F1ZmUgd2Fzc2VyCgpEZXIgQWZmZSBzdGVsbHQgRGlyIGVpbiBHbGFzIFF1ZWxsd2Fzc2VyIGhpbi4gR2llcmlnIGdyZWlmc3QgRHUgZGFubmFjaCB1bmQKc3R1ZXJ6dCBlcyBoZXJ1bnRlci4KCkFsc28gaWNoIHdlaXNzIGphIG5pY2h0LCBhYmVyIHdlbm4gZGllIGJlZGllbnVuZyBhbHMgbGVpY2hlIHJ1bWxpZWd0Li4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmV1bGljaCBpbiBkZXIgendlcmdlbmJhciAoU21hdWcsICA3LiBEZXogMTk5NCwgMTY6MzQ6MjUpOgpobW1tCgpuZXVsaWNoIGluIGRlciB6d2VyZ2VuYmFyCj5zcGVuZGllcmUgZmlja2Zyb3NjaCBiaWVyCkR1IHNwZW5kaWVyc3QgRmlja2Zyb3NjaCBlaW5lbiBEcmluay4KRWluIFp3ZXJnIGtvbW10IGhpbnRlciBkZW0gVHJlc2VuIHZvciB1bmQgYnJpbmd0IERpciBEZWluIEJpZXIuCkR1IHRyaW5rc3QgZXMgdW5kIGZ1ZWhsc3QgRGljaCBndXQufnIKCnNtYXVnIChiZXRydW5rZW4pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZ1ZXIgdW5zZXJlIFBDLUZyZXVuZGUgKFF1YXNpbW9kbywgIDcuIERleiAxOTk0LCAxNzo0NjowOSk6CiMhIHJuPVdhcmdvbiBydD03ODY3MDQ2MjAKCkluc2FuZSBJbnNpZGUhCgpRdWFzaW1vZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnVlciB1bnNlcmUgUEMtRnJldW5kZSAoQW50aGVhLCAgNy4gRGV6IDE5OTQsIDIzOjA3OjA0KToKIyEgcm49UXVhc2ltb2RvIHJ0PTc4NjgxODc2OQpJbnRlbCBJbnNpZGUgLT4gSWRpb3QgT3V0c2lkZSEKCkFudGhlYSAoa2F1ZnQgc2ljaCBkZW1uYWVjaHN0IGF1Y2ggZWluZW4gSW50ZWwsIHdlaWwgZXIgZ3JhZCBtYWwgc28gYmlsbGlnCmlzdCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbSBMYXN0IFdvcmRzIChEdXJpYW4sICA4LiBEZXogMTk5NCwgMTE6NTI6MjcpOgpbVmVybGVndCB2b24gYW56ZWlnZW4sIENhcmFkaHJhcywgIDguIERleiAxOTk0LCAxMTo0NDoyMl06CkRhaU1vblZvayBoYXR0ZSBlaW5lIExhcnZlIGltIEdlaGlybiB2b20gUnVtc2NobGFnZW4gbWl0IGVpbmVtCkNldGlhYWwuCgpEdSB0ZWlsc3QgRGFpbW9udm9rIG1pdDogdmVyc3VjaHMgYmVpbSBrdXJwZnVzY2hlciwgaWNoIHdlaXNzIGVzIG5pY2h0CkRhaU1vblZvayB0ZWlsdCBEaXIgbWl0OiBNZWluc3QgRHUgZGFzIEhvc3BpdGFsPwpEdSB0ZWlsc3QgRGFpbW9udm9rIG1pdDogZGFzIHdpcmQgbmljaHQga2xhcHBlbiBkZW5rZSBpY2gKRHUgdGVpbHN0IERhaW1vbnZvayBtaXQ6IG5laW4sIGF1cm9yYSwgZGVyIGt1cnBmdXNjaGVyCgphYiBoaWVyIHVuZ2VzY2huaXR0ZW46CgpEYWlNb25Wb2sgdGVpbHQgRGlyIG1pdDogSWNoIGZhaHIgbWFsIGhpbiwgd2VubiBkaWUgemVpdCBub2NoIHJlaWNodApbVG9kOl0gRXR3YXMgR2VoZWltbmlzdm9sbGVzIHVuZCBVbmJla2FubnRlcyBoYXQgZ2VyYWRlIERhaW1vbnZvayB1bWdlYnJhY2h0LgoKICAgIE1laW4gQmVpbGVpZAogICAgICAgICAgICAgICAgICAgIENhcmFkaHJhcyBkZXIgZXdpZ2UgUHJvcGhldAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCj8/PyAoRmlja2Zyb3NjaCwgIDguIERleiAxOTk0LCAxMzozMzowNyk6CnRvZXRlIFdhZWNodGVyCk9LLgp3CkR1IHN0ZWhzdCBpbiBCbGFibGFibGEuLi4KRHUgdmVyZm9sZ3N0IGVpbmVuIFdhZWNodGVyLCBlaW5lbiBLb2VuaWcsIGVpbmVuIFdhZWNodGVyICwgZWluZW4gV2FlY2h0ZXIsCmVpbm4gV2FlY2h0ZXIsIGVpbmVuIEtvZW5pZyAoISkgLCBlaW5lbiBXYWVjaHRlciB1bmQgZWluZW4gV2FlY2h0ZXIuCgo/Pz8/IEhpbGZlIHZlZ2VidCBtaXIgZG9jaCEKCkZpY2tmcm9zY2ggdmVyc3RlaHQgZGFzIE11ZCBuaWNodCBtZWhyLgouLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIFdpdHogKEJhbWJ1bGtvLCAgOC4gRGV6IDE5OTQsIDE2OjIyOjA4KToKdG8gYmUgaXMgdG8gZG8gKFNva3JhdGVzKQp0byBkbyBpcyB0byBiZSAoU2FydHJlKQpkbyBiZSBkbyBiZSBkbyAoU2luYXRyYSkKCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWluIFdpdHogKEFuZ3VzLCAgOC4gRGV6IDE5OTQsIDE2OjM5OjIyKToKIyEgcm49QmFtYnVsa28gcnQ9Nzg2OTAwMTI4ClR3byBiZWVyIG9yIG5vdCB0d28gYmVlciAuLi4gKFNoYWtlcy1CRUVSKSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhclRyZWs6IFRoZSBXaW5kb3dzIE15c3RlcnkgKFN5c29wLCAgOC4gRGV6IDE5OTQsIDE4OjM2OjM2KToKCiAgIlN0YXIgVHJlayBMb3N0IEVwaXNvZGVzIiB0cmFuc2NyaXB0LgoKICAgPFBpY2FyZD4gIk1yLiBMYUZvcmdlLCBoYXZlIHlvdSBoYWQgYW55IHN1Y2Nlc3Mgd2l0aCB5b3VyIGF0dGVtcHRzIGF0CiAgIGZpbmRpbmcgYSB3ZWFrbmVzcyBpbiB0aGUgQm9yZz8gQW5kIE1yLiBEYXRhLCBoYXZlIHlvdSBiZWVuIGFibGUgdG8KYWNjZXNzCiAgIHRoZWlyIGNvbW1hbmQgcGF0aHdheXM/IgoKICAgPEdlb3JkaT4gIlllcywgQ2FwdGFpbi4gSW4gZmFjdCwgd2UgZm91bmQgdGhlIGFuc3dlciBieSBzZWFyY2hpbmcgdGhyb3VnaAogICBvdXIgYXJjaGl2ZXMgb24gbGF0ZSBUd2VudGlldGgtY2VudHVyeSBjb21wdXRpbmcgdGVjaG5vbG9neS4iCgogICA8R2VvcmRpIHByZXNzZXMgYSBrZXksIGFuZCBhIGxvZ28gYXBwZWFycyBvbiB0aGUgY29tcHV0ZXIgc2NyZWVuLj4KCiAgIDxSaWtlciBsb29rcyBwdXp6bGVkLj4gIldoYXQgdGhlIGhlbGwgaXMgYE1pY3Jvc29mdCc/IgoKICAgPERhdGEgdHVybnMgdG8gYW5zd2VyLj4gIkFsbG93IG1lIHRvIGV4cGxhaW4uIFdlIHdpbGwgc2VuZCB0aGlzIHByb2dyYW0sCiAgIGZvciBzb21lIHJlYXNvbiBjYWxsZWQgYFdpbmRvd3MnLCB0aHJvdWdoIHRoZSBCb3JnIGNvbW1hbmQgcGF0aHdheXMuIE9uY2UKICAgaW5zaWRlIHRoZWlyIHJvb3QgY29tbWFuZCB1bml0LCBpdCB3aWxsIGJlZ2luIGNvbnN1bWluZyBzeXN0ZW0gcmVzb3VyY2VzCmF0CiAgIGFuIHVuc3RvcHBhYmxlIHJhdGUuIgoKICAgPFBpY2FyZD4gIkJ1dCB0aGUgQm9yZyBoYXZlIHRoZSBhYmlsaXR5IHRvIGFkYXB0LiBXb24ndCB0aGV5IGFsdGVyIHRoZWlyCiAgIHByb2Nlc3Npbmcgc3lzdGVtcyB0byBpbmNyZWFzZSB0aGVpciBzdG9yYWdlIGNhcGFjaXR5PyIKCiAgIDxEYXRhPiAiWWVzLCBDYXB0YWluLiBCdXQgd2hlbiBgV2luZG93cycgZGV0ZWN0cyB0aGlzLCBpdCBjcmVhdGVzIGEgbmV3CiAgIHZlcnNpb24gb2YgaXRzZWxmIGtub3duIGFzIGFuIGB1cGdyYWRlJy4gVGhlIHVzZSBvZiByZXNvdXJjZXMgaW5jcmVhc2VzCiAgIGV4cG9uZW50aWFsbHkgd2l0aCBlYWNoIGl0ZXJhdGlvbi4gVGhlIEJvcmcgd2lsbCBub3QgYmUgYWJsZSB0byBhZGFwdAogICBxdWlja2x5IGVub3VnaC4gRXZlbnR1YWxseSBhbGwgb2YgdGhlaXIgcHJvY2Vzc2luZyBhYmlsaXR5IHdpbGwgYmUgdGFrZW4KICAgb3ZlciBhbmQgbm9uZSB3aWxsIGJlIGF2YWlsYWJsZSBmb3IgdGhlaXIgbm9ybWFsIG9wZXJhdGlvbmFsIGZ1bmN0aW9ucy4iCgogICA8UGljYXJkPiAiRXhjZWxsZW50IHdvcmsuIFRoaXMgaXMgZXZlbiBiZXR0ZXIgdGhhbiB0aGF0IGB1bnNvbHZhYmxlCiAgIGdlb21ldHJpYyBzaGFwZScgaWRlYS4iCgogICAuIC4gLiAxNSBNaW51dGVzIExhdGVyIC4gLiAuCgogICA8RGF0YT4gIkNhcHRhaW4sIHdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCB0aGUgYFdpbmRvd3MnIGluIHRoZQpCb3JnJ3MKICAgY29tbWFuZCB1bml0LiBBcyBleHBlY3RlZCwgaXQgaW1tZWRpYXRlbHkgY29uc3VtZWQgODUlIG9mIGFsbCBhdmFpbGFibGUKICAgcmVzb3VyY2VzLiBIb3dldmVyLCB3ZSBoYXZlIG5vdCByZWNlaXZlZCBhbnkgY29uZmlybWF0aW9uIG9mIHRoZSBleHBlY3RlZAogICBgdXBncmFkZScuIgoKICAgPEdlb3JkaT4gIk91ciBzY2FubmVycyBoYXZlIHBpY2tlZCB1cCBhbiBpbmNyZWFzZSBpbiBCb3JnIHN0b3JhZ2UgYW5kIENQVQogICBjYXBhY2l0eSwgYnV0IHdlIHN0aWxsIGhhdmUgbm8gaW5kaWNhdGlvbiBvZiBhbiBgdXBncmFkZScgdG8gY29tcGVuc2F0ZQpmb3IKICAgdGhlaXIgaW5jcmVhc2UuIgoKICAgPFBpY2FyZD4gIkRhdGEsIHNjYW4gdGhlIGhpc3RvcnkgYmFua3MgYWdhaW4gYW5kIGRldGVybWluZSBpZiB0aGVyZSBpcwogICBzb21ldGhpbmcgd2UgaGF2ZSBtaXNzZWQuIgoKICAgPERhdGE+ICJTaXIsIEkgYmVsaWV2ZSB0aGVyZSBpcyBhIHJlYXNvbiBmb3IgdGhlIGZhaWx1cmUgaW4gdGhlCmB1cGdyYWRlJy4KICAgQXBwZWFyZW50bHkgdGhlIEJvcmcgaGF2ZSBjaXJjdW12ZW50ZWQgdGhhdCBwYXJ0IG9mIHRoZSBwbGFuIGJ5IG5vdApzZW5kaW5nCiAgIGluIHRoZWlyIHJlZ2lzdHJhdGlvbiBjYXJkcy4iCgogICA8UmlrZXI+ICJDYXB0YWluLCB3ZSBoYXZlIG5vIGNob2ljZS4gUmVxdWVzdGluZyBwZXJtaXNzaW9uIHRvIGJlZ2luCiAgIGVtZXJnZW5jeSBlc2NhcGUgc2VxdWVuY2UgM0YgLi4uLiIKCiAgIDxHZW9yZGksIGV4Y2l0ZWQ+ICJXYWl0LCBDYXB0YWluISBUaGVpciBDUFUgY2FwYWNpdHkgaGFzIHN1ZGRlbmx5IGRyb3BwZWQKICAgdG8gMCUgISIKCiAgIDxQaWNhcmQ+ICJEYXRhLCB3aGF0IGRvZXMgeW91ciBzY2FubmVycyBzaG93PyIKCiAgIDxEYXRhLCBzdHVkeWluZyBkaXNwbGF5cz4gIkFwcGVhcmVudGx5IHRoZSBCb3JnIGhhdmUgZm91bmQgdGhlIGludGVybmFsCiAgIGBXaW5kb3dzJyBtb2R1bGUgbmFtZWQgYFNvbGl0YWlyZScsIGFuZCBpdCBoYXMgdXNlZCB1cCBhbGwgYXZhaWxhYmxlIENQVQogICBjYXBhY2l0eS4iCgogICA8UGljYXJkPiAiTGV0J3Mgd2FpdCBhbmQgc2VlIGhvdyBsb25nIHRoaXMgYFNvbGl0YWlyZScgY2FuIHJlZHVjZSB0aGVpcgogICBmdW5jdGlvbmFsaXR5LiIKCiAgIC4gLiAuIFR3byBIb3VycyBQYXNzIC4gLiAuCgogICA8UmlrZXI+ICJHZW9yZGksIHdoYXQgaXMgdGhlIHN0YXR1cyBvZiB0aGUgQm9yZz8iCgogICA8R2VvcmRpPiAiQXMgZXhwZWN0ZWQsIHRoZSBCb3JnIGFyZSBhdHRlbXB0aW5nIHRvIHJlLWVuZ2luZWVyIHRvCmNvbXBlbnNhdGUKICAgZm9yIGluY3JlYXNlZCBDUFUgYW5kIHN0b3JhZ2UgZGVtYW5kcywgYnV0IGVhY2ggdGltZSB0aGV5IHN1Y2Nlc3NmdWxseQogICBpbmNyZWFzZSByZXNvdXJjZXMgSSBoYXZlIHNldHVwIG91ciBjbG9zZXN0IGRlZXAgc3BhY2UgbW9uaXRvciBiZWFjb24gdG8KICAgdHJhbnNtaXQgbW9yZSBgV2luZG93cycgbW9kdWxlcyBmcm9tIHNvbWV0aGluZyBjYWxsZWQgdGhlIGBNaWNyb3NvZnQKICAgRnVuLXBhY2snLgoKICAgPFBpY2FyZD4gIkhvdyBtdWNoIHRpbWUgd2lsbCB0aGF0IGJ1eSB1cz8iCgogICA8RGF0YT4gIkN1cnJlbnQgQm9yZyBzb2x1dGlvbiByYXRlcyBhbGxvdyBtZSB0byBwcmVkaWNhdGUgYW4gaW50ZXJlc3QKdGltZQogICBzcGFuIG9mIDYgbW9yZSBob3Vycy4iCgogICA8R2VvcmRpPiAiQ2FwdGFpbiwgYW5vdGhlciB2ZXNzZWwgaGFzIGVudGVyZWQgb3VyIHNlY3Rvci4iCgogICA8UGljYXJkPiAiSWRlbnRpZnkuIgoKICAgPERhdGE+ICJJdCBhcHBlYXJzIHRvIGhhdmUgbWFya2luZ3MgdmVyeSBzaW1pbGFyIHRvIHRoZSAnTWljcm9zb2Z0JwogICBsb2dvLi4uIgoKICAgPE92ZXIgdGhlIHNwZWFrZXJzPiAiVEhJUyBJUyBBRE1JUkFMIEJJTEwgR0FURVMgT0YgVEhFIE1JQ1JPU09GVCBGTEFHU0hJUAogICBfTU9OT1BPTFlfLiBXRSBIQVZFIFBPU0lUSVZFIENPTkZJUk1BVElPTiBPRiBVTlJFR0lTVEVSRUQgU09GVFdBUkUgSU4KVEhJUwogICBTRUNUT1IuIFNVUlJFREVSIEFMTCBBU1NFVFMgQU5EIFdFIENBTiBBVk9JRCBBTlkgVFJPVUJMRS4gWU9VIEhBVkUgMTAKICAgU0VDT05EUyBUTyBDT01QTFkuIgoKICAgPERhdGE+ICJUaGUgYWxpZW4gc2hpcCBoYXMganVzdCBvcGVuZWQgaXRzIGZvcndhcmQgaGF0Y2hlcyBhbmQgcmVsZWFzZWQKICAgdGhvdXNhbmRzIG9mIGh1bWFub2lkLXNoYXBlZCBvYmplY3RzLiIKCgogICA8UGljYXJkPiAiTWFnbmlmeSBmb3J3YXJkIHZpZXdlciBvbiB0aGUgYWxpZW4gY3JhZnQhIgoKCiAgIDxSaWtlcj4gIk15IEdvZCwgY2FwdGFpbiEgVGhvc2UgYXJlIGh1bWFuIGJlaW5ncyBmbG9hdGluZyBzdHJhaWdodCB0b3dhcmQKICAgdGhlIEJvcmcgc2hpcCAtIHdpdGggbm8gbGlmZSBzdXBwb3J0IHN1aXRzISBIb3cgY2FuIHRoZXkgc3Vydml2ZSB0aGUKICAgdG9ydHVyZXMgb2YgZGVlcCBzcGFjZT8hIgoKICAgPERhdGE+ICJJIGRvbid0IGJlbGlldmUgdGhhdCB0aG9zZSBhcmUgaHVtYW5zLCBzaXIuIElmIHlvdSB3aWxsIGxvb2sKY2xvc2VyCiAgIEkgYmVsaWV2ZSB5b3Ugd2lsbCBzZWUgdGhhdCB0aGV5IGFyZSBjYXJyeWluZyBzb21ldGhpbmcgcmVjb2duaXplZCBieQogICB0d2VudHktZmlyc3QgY2VudHVyeSBtYW4gYXMgZG9lc2tpbiBsZWF0aGVyIGJyaWVmY2FzZXMsIGFuZCB3ZWFyaW5nCkFybWFuaQogICBzdWl0cy4iCgogICA8UmlrZXIgYW5kIFBpY2FyZCwgdG9nZXRoZXIgLSBob3JyaWZpZWQ+ICJMYXd5ZXJzISEiCgogICA8R2VvcmRpPiAiSXQgY2FuJ3QgYmUuIEFsbCB0aGUgTGF3eWVycyB3ZXJlIHJvdW5kZWQgdXAgYW5kIHNlbnQgaHVydGxpbmcKICAgaW50byB0aGUgc3VuIGluIDIwMTcgZHVyaW5nIHRoZSBHcmVhdCBBd2FrZW5pbmcuIgoKICAgPERhdGE+ICJUcnVlLCBidXQgYXBwZWFyZW50bHkgc29tZSBtdXN0IGhhdmUgc3Vydml2ZWQuIgoKICAgPFJpa2VyPiAiVGhleSBoYXZlIHN1cnJvdW5kZWQgdGhlIEJvcmcgc2hpcCBhbmQgYXJlIGNvdmVyaW5nIGl0IHdpdGggYWxsCiAgIHR5cGVzIG9mIHBhcGVycy4iCgogICA8RGF0YT4gIkkgYmVsaWV2ZSB0aGF0IGlzIGtub3duIGluIGFuY2llbnQgdmVuYWN1bGFyIGFzIGByZWQgdGFwZScuIEl0CiAgIG9mdGVuIHByb3ZlcyBmYXRhbC4iCgogICA8UmlrZXI+ICJUaGV5J3JlIHRlYXJpbmcgdGhlIEJvcmcgdG8gcGllY2VzISIKCiAgIDxQaWNhcmQ+ICJUdXJuIHRoZSBtb25pdG9ycyBvZmYsIERhdGEsIEkgY2FudCBiZWFyIHRvIHdhdGNoLiBFdmVuIHRoZQpCb3JnCiAgIGRvZXNudCBkZXNlcnZlIHN1Y2ggYSBncnVlc29tZSBkZWF0aCEiCgogICAoVEhFIEVORCkKCi0tIFN5c29wIChydW1rdWdlbG5kIDspKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZhbSBMYXN0IFdvcmRzIChLcmV0ZWssICA4LiBEZXogMTk5NCwgMjE6Mjg6MjcpOgojISBybj1EdXJpYW4gcnQ9Nzg2ODgzOTQ3CkNhcmFkaHJhcywgZGFzIGlzdCBOSUNIVCBsdXN0aWchCkdlbmF1IGRhcyBnbGVpY2hlIGlzdCBtaXIgbmFlbWxpY2ggdm9yIHp3ZWkgVGFnZW4gYXVjaCBwYXNzaWVydDoKPiBXdXJtIHNpZWh0IEtyZXRlay4KPiBXdXJtIGZpbmRldCBLcmV0ZWsgc3ltcGF0aGlzY2guCj4gV3VybSBrcmllY2h0IEtyZXRlayBpbnMgSGlybiEKPiBLcmV0ZWsgZmluZGV0IGRhcyBuaWNodCBzbyBndXQuCj4gV3VybSBhYmVyIHNjaG9uLCB1bmQgZXIgd2FlY2hzdC4uLgo+IC4uLiB1bmQgd2FlY2hzdC4uLgo+IC4uLiB1bmQgd2FlY2hzdC4uLgo+IEtyZXRlayBzdGVodCBrdXJ6IHZvcm0gQWJuaXBwZWxuIHVuZCBnZWh0IG1pdCBFbmRlIHJhdXMuCj4gRGl2ZXJzZSBTcGllbGVyIHN0YXJ0ZW4gUmV0dHVuZ3Nha3Rpb25lbi4KPiBLcmV0ZWsgdmVyc3VjaHQncyBlaW4gcGFhciBNaW51dGVuIHNwYWV0ZXIuCj4gS3JldGVrcyBIaXJuIGV4cGxvZGllcnQKPiBLcmV0ZWsgdHJpZmZ0IFZhZGRlciBUb2QuLi4KRGVyIFJlc3QgaXN0IEdlc2NoaWNodGUuLi4gQWNoIGphLCBiaXMgYXVmIGVpbnM6Cj4gS3JldGVrIGJlc2NobGllc3N0LCBkaWUgUXVlc3Qgbm9jaG1hbCBhbnp1ZmFuZ2VuLgo+IEtyZXRlayBmaW5kZXQgYWxsZSAoISkgcXVlc3RyZWxldmFudGVuIEdlZ2Vuc3RhZW5kZSBhdWYgZGVtCiAgUnVlY2tlbiB2b20gRmx1Z2RyYWNoZW4gd2llZGVyIHVuZCBtYWNodCBkaWUgUXVlc3Qgc2NobmVsbCB6dSBFbmRlIQoKYyB1IGw4ZXIsCiAgIEtyZXRlawogICAoZGVyIGpldHp0IGFsbG1hZWhsaWNoIG1hbCB3aWVkZXIgbGFlbmdlciBhbSBMZWJlbiBibGVpYmVuIHdpbGwuLi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTaGFrZXNwZWFyZSwgd2Fzbid0IGl0PyAoUXVlbmdpc3R1LCAgOC4gRGV6IDE5OTQsIDIxOjM1OjI2KToKTXkga2luZG9tIGZvciBhIHdob3JlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWljcm9zb2Z0IFRha2VvdmVyIChZZW5kaSwgIDguIERleiAxOTk0LCAyMTo1NTowNyk6CgpNSUNST1NPRlQgQmlkcyB0byBBY3F1aXJlIENhdGhvbGljIENodXJjaAoKQnkgSGFuayBWb3JqZXMKClZBVElDQU4gQ0lUWSAoQVApIC0tIEluIGEgam9pbnQgcHJlc3MgY29uZmVyZW5jZSBpbiBTdC4gUGV0ZXIncyBTcXVhcmUgdGhpcwptb3JuaW5nLCBNSUNST1NPRlQgQ29ycC4gYW5kIHRoZSBWYXRpY2FuIGFubm91bmNlZCB0aGF0IHRoZSBSZWRtb25kIHNvZnR3YXJlCmdpYW50IHdpbGwgYWNxdWlyZSB0aGUgUm9tYW4gQ2F0aG9saWMgQ2h1cmNoIGluIGV4Y2hhbmdlIGZvciBhbiB1bnNwZWNpZmllZApudW1iZXIgb2Ygc2hhcmVzIG9mIE1JQ1JPU09GVCBjb21tb24gc3RvY2suIElmIHRoZSBkZWFsIGdvZXMgdGhyb3VnaCwgaXQKd2lsbCBiZSB0aGUgZmlyc3QgdGltZSBhIGNvbXB1dGVyIHNvZnR3YXJlIGNvbXBhbnkgaGFzIGFjcXVpcmVkIGEgbWFqb3IKd29ybGQgcmVsaWdpb24uCgpXaXRoIHRoZSBhY3F1aXNpdGlvbiwgUG9wZSBKb2huIFBhdWwgSUkgd2lsbCBiZWNvbWUgdGhlIHNlbmlvcgp2aWNlLXByZXNpZGVudCBvZiB0aGUgY29tYmluZWQgY29tcGFueSdzIG5ldyBSZWxpZ2lvdXMgU29mdHdhcmUgRGl2aXNpb24sCndoaWxlIE1JQ1JPU09GVCBzZW5pb3IgdmljZS1wcmVzaWRlbnRzIE1pY2hhZWwgTWFwbGVzIGFuZCBTdGV2ZW4gQmFsbG1lcgp3aWxsIGJlIGludmVzdGVkIGluIHRoZSBDb2xsZWdlIG9mIENhcmRpbmFscywgc2FpZCBNSUNST1NPRlQgQ2hhaXJtYW4gQmlsbApHYXRlcy4KCiJXZSBleHBlY3QgYSBsb3Qgb2YgZ3Jvd3RoIGluIHRoZSByZWxpZ2lvdXMgbWFya2V0IGluIHRoZSBuZXh0IGZpdmUgdG8gdGVuCnllYXJzLCIgc2FpZCBHYXRlcy4gIlRoZSBjb21iaW5lZCByZXNvdXJjZXMgb2YgTUlDUk9TT0ZUIGFuZCB0aGUgQ2F0aG9saWMKQ2h1cmNoIHdpbGwgYWxsb3cgdXMgdG8gbWFrZSByZWxpZ2lvbiBlYXNpZXIgYW5kIG1vcmUgZnVuIGZvciBhIGJyb2FkZXIKcmFuZ2Ugb2YgcGVvcGxlLiIKClRocm91Z2ggdGhlIE1JQ1JPU09GVCBOZXR3b3JrLCB0aGUgY29tcGFueSdzIG5ldyBvbi1saW5lIHNlcnZpY2UsICJ3ZSB3aWxsCm1ha2UgdGhlIHNhY3JhbWVudHMgYXZhaWxhYmxlIG9uLWxpbmUgZm9yIHRoZSBmaXJzdCB0aW1lIiBhbmQgcmV2aXZlIHRoZQpwb3B1bGFyIHByZS1Db3VudGVyLVJlZm9ybWF0aW9uIHByYWN0aWNlIG9mIHNlbGxpbmcgaW5kdWxnZW5jZXMsIHNhaWQgR2F0ZXMuCiJZb3UgY2FuIGdldCBDb21tdW5pb24sIGNvbmZlc3MgeW91ciBzaW5zLCByZWNlaXZlIGFic29sdXRpb24gLS0gZXZlbiByZWR1Y2UKeW91ciB0aW1lIGluIFB1cmdhdG9yeSAtLSBhbGwgd2l0aG91dCBsZWF2aW5nIHlvdXIgaG9tZS4iCgpBIG5ldyBzb2Z0d2FyZSBhcHBsaWNhdGlvbiwgTUlDUk9TT0ZUIENodXJjaCwgd2lsbCBpbmNsdWRlIGEgbWFjcm8gbGFuZ3VhZ2UKd2hpY2ggeW91IGNhbiBwcm9ncmFtIHRvIGRvd25sb2FkIGhlYXZlbmx5IGdyYWNlcyBhdXRvbWF0aWNhbGx5IHdoaWxlIHlvdQphcmUgYXdheSBmcm9tIHlvdXIgY29tcHV0ZXIuCgpUaGUgZGVhbCBncmFudHMgTUlDUk9TT0ZUIGV4Y2x1c2l2ZSBlbGVjdHJvbmljIHJpZ2h0cyB0byB0aGUgQmlibGUgYW5kIHRoZQpWYXRpY2FuJ3MgcHJpemVkIGFydCBjb2xsZWN0aW9uLCB3aGljaCBpbmNsdWRlcyB3b3JrcyBieSBzdWNoIG1hc3RlcnMgYXMKTWljaGVsYW5nZWxvIGFuZCBEYSBWaW5jaS4gQnV0IGNyaXRpY3Mgc2F5IE1JQ1JPU09GVCB3aWxsIGZhY2Ugc3RpZmYKY2hhbGxlbmdlcyBpZiBpdCBhdHRlbXB0cyB0byBsaW1pdCBjb21wZXRpdG9ycycgYWNjZXNzIHRvIHRoZXNlIGtleQppbnRlbGxlY3R1YWwgcHJvcGVydGllcy4KCiJUaGUgSmV3aXNoIHBlb3BsZSBpbnZlbnRlZCB0aGUgbG9vayBhbmQgZmVlbCBvZiB0aGUgaG9seSBzY3JpcHR1cmVzLCIgc2FpZApSYWJiaSBEYXZpZCBHb3R0c2NoYWxrIG9mIFBoaWxhZGVscGhpYS4gIllvdSB0YWtlIHRoZSBwYXJ0aW5nIG9mIHRoZSBSZWQgU2VhCi0tIHdlIGhhZCB0aGF0IHRob3VzYW5kcyBvZiB5ZWFycyBiZWZvcmUgdGhlIENhdGhvbGljcyBjYW1lIG9uIHRoZSBzY2VuZS4iCgpCdXQgb3RoZXJzIGFyZ3VlIHRoYXQgdGhlIENhdGhvbGljIGFuZCBKZXdpc2ggZmFpdGhzIGJvdGggZHJhdyBvbiBhIGNvbW1vbgpBYnJhaGFtaWMgaGVyaXRhZ2UuICJUaGUgQ2F0aG9saWMgQ2h1cmNoIGhhcyBqdXN0IGJlZW4gbW9yZSBzdWNjZXNzZnVsIGluCm1hcmtldGluZyBpdCB0byBhIGxhcmdlciBhdWRpZW5jZSwiIG5vdGVzIE5vdHJlIERhbWUgdGhlb2xvZ2lhbiBGYXRoZXIKS2VubmV0aCBNYWRpZ2FuLiBPdmVyIHRoZSBsYXN0IDIsMDAwIHllYXJzLCB0aGUgQ2F0aG9saWMgQ2h1cmNoJ3MgbWFya2V0CnNoYXJlIGhhcyBpbmNyZWFzZWQgZHJhbWF0aWNhbGx5LCB3aGlsZSBKdWRhaXNtLCB3aGljaCB3YXMgdGhlIGZpcnN0IHRvCm9mZmVyIG1hbnkgb2YgdGhlIGNvbmNlcHRzIG5vdyB0b3V0ZWQgYnkgQ2hyaXN0aWFuaXR5LCBsYWdzIGJlaGluZC4KCkhpc3RvcmljYWxseSwgdGhlIENodXJjaCBoYXMgYSByZXB1dGF0aW9uIGFzIGFuIGFnZ3Jlc3NpdmUgY29tcGV0aXRvciwKbGVhZGluZyBjcnVzYWRlcyB0byBwcmVzc3VyZSBwZW9wbGUgdG8gdXBncmFkZSB0byBDYXRob2xpY2lzbSwgYW5kIGVudGVyaW5nCmludG8gZXhjbHVzaXZlIGxpY2Vuc2luZyBhcnJhbmdlbWVudHMgaW4gdmFyaW91cyBraW5nZG9tcyB3aGVyZWJ5IGFsbApzdWJqZWN0cyB3ZXJlIGluc3RhbGxlZCB3aXRoIENhdGhvbGljaXNtLCB3aGV0aGVyIG9yIG5vdCB0aGV5IHBsYW5uZWQgdG8gdXNlCml0LiBUb2RheSBDaHJpc3RpYW5pdHkgaXMgYXZhaWxhYmxlIGZyb20gc2V2ZXJhbCBkZW5vbWluYXRpb25zLCBidXQgdGhlCkNhdGhvbGljIHZlcnNpb24gaXMgc3RpbGwgdGhlIG1vc3Qgd2lkZWx5IHVzZWQuIFRoZSBDaHVyY2gncyBtaXNzaW9uIGlzIHRvCnJlYWNoICJ0aGUgZm91ciBjb3JuZXJzIG9mIHRoZSBlYXJ0aCwiIGVjaG9pbmcgTUlDUk9TT0ZUJ3MgdmlzaW9uIG9mICJhCmNvbXB1dGVyIG9uIGV2ZXJ5IGRlc2t0b3AgYW5kIGluIGV2ZXJ5IGhvbWUiLgoKR2F0ZXMgZGVzY3JpYmVkIE1JQ1JPU09GVCdzIGxvbmctdGVybSBzdHJhdGVneSB0byBkZXZlbG9wIGEgc2NhbGFibGUKcmVsaWdpb3VzIGFyY2hpdGVjdHVyZSB0aGF0IHdpbGwgc3VwcG9ydCBhbGwgcmVsaWdpb25zIHRocm91Z2ggZW11bGF0aW9uLiBBCnNpbmdsZSBjb3JlIHJlbGlnaW9uIHdpbGwgYmUgb2ZmZXJlZCB3aXRoIGEgY2hvaWNlIG9mIGludGVyZmFjZXMgYWNjb3JkaW5nCnRvIHRoZSByZWxpZ2lvbiBkZXNpcmVkIC0tICJPbmUgcmVsaWdpb24sIGEgY291cGxlIG9mIGRpZmZlcmVudAppbXBsZW1lbnRhdGlvbnMsIiBzYWlkIEdhdGVzLgoKVGhlIE1JQ1JPU09GVCBtb3ZlIGNvdWxkIHNwYXJrIGEgd2F2ZSBvZiBtZXJnZXJzIGFuZCBhY3F1aXNpdGlvbnMsIGFjY29yZGluZwp0byBIZXJiIFBldGVycywgYSBzcG9rZXNtYW4gZm9yIHRoZSBVLlMuIFNvdXRoZXJuIEJhcHRpc3QgQ29uZmVyZW5jZSwgYXMKb3RoZXIgY2h1cmNoZXMgc2NyYW1ibGUgdG8gc3RyZW5ndGhlbiB0aGVpciBwb3NpdGlvbiBpbiB0aGUgaW5jcmVhc2luZ2x5CmNvbXBldGl0aXZlIHJlbGlnaW91cyBtYXJrZXQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLi4uIHdhcyBlaW5lbSBuaWNodCBhbGxlcyBwYXNzaWVydCAuLi4gKFJvbmRhLCAgOS4gRGV6IDE5OTQsIDAwOjE4OjUxKToKQXVzIGRlbSB3aXJrbGljaGUgTGViZW4uLi4gKmdyYXVzKjoKTmFjaGVkZW0gbWljaCBkaWUgYmxvZWRlbiBSYWV1YmVyIGF1ZiBkZW4gQmF1bSBnZXpvZ2VuICghISEpIGhhYmVuCihpY2gga2xldHRlciBkb2NoIG5pY2h0IGZyZWl3aWxsaWcgZHJhdWYuLi4pCnVuZCBpY2ggbWljaCBmb2xnbGljaCBpbSBCYXVtIGJlZmluZGUsIGZ1ZWhydCBVbnRlcnN1Y2hlIEJhdW0genUKRGFzIGthbm5zdCBEdSBoaWVyIG5pY2h0IGZpbmRlbiEKR2VuaWFsISEhIEFsc28gaGFiIGljaCBhdWNoIGtlaW4gUmFldWJlcnByb2JsZW0/Pz8KVHNjaGF1LCBSb25kYS4uLiA6KCBNaXN0IFJhZXViZXIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVsZmllIHZzLiBEYW5jZXIgKENhdHdlYXpsZSwgIDkuIERleiAxOTk0LCAwOTo1Mjo1NCk6CltWZXJsZWd0IHZvbiBzY2htYXJybiwgRGFuY2VyLCAgOC4gRGV6IDE5OTQsIDE4OjIwOjA5XToKCgpJY2ggdmVyc3RlaGUgZ2FyIG5pY2h0LCB3YXMgSWhyIG1laW50IG1pdCBNYWdpZXIgdW5kIFNwaWVsZXIKd3VlcmRlbiBzaWNoIG5pY2h0IHByaW1hIHZlcnRyYWdlbiA6LSkpKSkKCkVsZmllIHRlaWx0IERpciBtaXQ6IGhhbGxvIGR1IGtsZWluZXIgbGllYmVyIHd1ZXN0ZW5kYWNrZWw6KSkKRHUgdGVpbHN0IEVsZmllIG1pdDogaGkga2xlaW5lIHNjaGxhcHBvaHJueW1waGUgOi0pCkVsZmllIHRlaWx0IERpciBtaXQ6IHRyYW1wZWxvaHJ3dWVzdGVuc2NobGF1bWVpZXIKRHUgdGVpbHN0IEVsZmllIG1pdDogZ3VyZ2VsZ3J1bXBmaWdlciBlbGZlbnNjaG5pdHRsYXVjaApFbGZpZSB0ZWlsdCBEaXIgbWl0OiBicmFjaGxpZWdlbmRlcnNjaG5pcGZlbnNjaG5ldXplbApEdSB0ZWlsc3QgRWxmaWUgbWl0OiBvcnRvZ29uYWxhYmdlc2Nobml0dGVuZXNzY2hudWRkZWxzdW1wZmh1aG4KRWxmaWUgdGVpbHQgRGlyIG1pdDogc2NobmFyY2hpZ2Vyc2NobWFsemxvY2tpZ2Vyc2NobWF1Y2h6YWhuZ2VyaWNoCkR1IHRlaWxzdCBFbGZpZSBtaXQ6IGR1ZGVsc2Fja2ZvZXJtaWdlcyBkdXJjaCBkaWUgZWxmIGdlZ2VuZAogICAgICAgICAgICAgICAgICAgICByb2JiZW5kZXMgZG9lZGVsYmFlY2tlbgpFbGZpZSB0ZWlsdCBEaXIgbWl0OiBzYWcgZG9jaCBtYWwgenVyIGFid2VjaHNsdW5nIHdhcyBuZXR0ZXMgZHUKICAgICAgICAgICAgICAgICAgICAgZHUgd2F0c2NoZWx3dXNjaGVsaWdlcyBldHdhcyA6LSkpCkR1IHRlaWxzdCBFbGZpZSBtaXQ6IGR1IGhhc3QgZG9jaCBhbmdlZmFuZ2VuLCBkdSBrbnVkZGVsZHVkZGVsLQogICAgICAgICAgICAgICAgICAgICBzY2htdXNlZWxmZSA6LSkpCgouLi5uYWphIHVuZCBzbyB3ZWl0ZXIgOi0pCgpHcmluc2VuZAoKRGFuY2VyCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplcml3YW4gKFJvY2h1cywgIDkuIERleiAxOTk0LCAxMzoxNjoxMSk6CkNNPiBQUzogV2VpInMgZWlnZW50bGljaCBqZW1hbmQsIHdvaGVyIGRpZXNlIFJhZGlvLS1Fcml3YW4tLVdpdHplIGtvbW1lbj8KCkltIFByaW56aXAgc2Nob24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZW5uZXJmZWluZGxpY2ggPyAoVHJlbW9yLCAgOS4gRGV6IDE5OTQsIDEzOjI1OjQ4KToKCgpXaWV2aWVsIGlzdCBlaW4gTWFubiB3ZXJ0PwoKCgozIE1hcmsgNjAuICAgMyBNYXJrIGRhcyBXdWVyc3RjaGVuLCAzMCBQZmVubmlnIHBybyBFaSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggZWluZXIgKFRyZW1vciwgIDkuIERleiAxOTk0LCAxMzoyNjo1MSk6CgpXYXMgcGFzc2llcnQgd2VubiBlaW4gTWFubiBsYWVuZ2VyIGFscyAxMCBNaW51dGVuIGhlaXNzIGR1c2NodD8KCgpEYXMgV3VlcnN0Y2hlbiBwbGF0enQgdW5kIGRpZSBFaWVyIHdlcmRlIGhhcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb2xwaWUtTmFtZSAoQ2hhcm9uLCAgOS4gRGV6IDE5OTQsIDIxOjQyOjUxKToKRHUgYmV0cml0dHN0IGVocmZ1ZXJjaHRpZyBkZW4gZ2lnYW50aXNjaGVuIFdldHRwYWxhc3QgdW5kIGtvbW1zdCBpbiBlaW5lCmVpbmxhZGVuZGUgRW1wZmFuZ3NoYWxsZS4KJ0d1dGVuIFRhZywgSGVyciBDaGFyb24hJywgaGF1Y2h0IGRpZSBmcmV1bmRsaWNoZSBFbXBmYW5nc2RhbWUgRGljaCBhbi4KRHUgc3RlaHN0IGluIGRlciBlaW5sYWRlbmRlbiBFbXBmYW5nc2hhbGxlIGRlcyBXZXR0cGFsYXN0ZXMgJ0x1Y2t5IFRpZ2VyYHMnLgpTY2h3YXJ6ZXIsIGdsYWVuemVuZGVyIE1hcm1vciByZWZsZWt0aWVydCBtYXR0IGRhcyBMaWNodCBkcmVpZXIga3JlaXNydW5kZXIKRGVja2VubHVzdGVyLCBkZXRhaWxyZWljaCBnZXdvYmVuZSBXYW5kdGVwcGljaGUgaWxsdXN0cmllcmVuIGJlZWluZHJ1Y2tlbmRlCldldHRrYW1wZnN6ZW5lbiwgdW5kIGVpbmUgc2FuZnRlIEVsYmVubXVzaWsgYXVzIGRlbSBIaW50ZXJncnVuZCB1bXNjaG1laWNoZWx0CkRlaW5lIFNpbm5lLiBEcmVpIER1cmNoZ2FlbmdlIGZ1ZWhyZW4gdm9uIGhpZXIgYXVzIGluIGRpZSBMb3VuZ2VzIHVuZCBlaW4KYnJlaXRlciBUb3Jib2dlbiBiaWxkZXQgZGVuIEF1c2dhbmcgaW4gbm9lcmRsaWNoZXIgUmljaHR1bmcuIEVpbmUKRW1wZmFuZ3NkYW1lCmxhZWNoZWx0IERpY2ggZnJldW5kbGljaCBhbiwgdW5kIGluIGRlciBub3Jkb2VzdGxpY2hlbiBFY2tlIGRpZXNlciBIYWxsZQpzaXR6dAplaW4ga2xlaW5lciBHbm9tIGhpbnRlciBlaW5lbSBTY2hhbHRlci4gRWluZSBncm9zc2UgVGFmZWwgZGlyZWt0IG5lYmVuIGVpbmVyCmJyZWl0ZW4gVHJlcHBlbmZsdWNodCBuYWNoIHVudGVuIHVuZCBTY2hpbGRlciB1ZWJlciBhbGxlbiBBdXNnYWVuZ2VuCmluZm9ybWllcmVuIGRlbiBHYXN0IGF1ZiBkYXMgQmVzdGUuIEluIGRlciBNaXR0ZSBkZXMgUmF1bWVzIGZhZWxsdCBEaXIgZWluZQpkdWVzdGVyZHVua2Vsc2Nod2FyemUgU3RhdHVlIGF1Zi4gRWluIGluIHNjaHdhcnogZ2VrbGVpZGV0ZXIgV2FlY2h0ZXIgc3RlaHQKdm9yCmRlbSBUcmVwcGVuYWJnYW5nLgpFcyBnaWJ0IGZ1ZW5mIHNpY2h0YmFyZSBBdXNnYWVuZ2U6IHN1ZWRlbiwgd2VzdGVuLCBub3JkZW4sIG9zdGVuIHVuZCB1bnRlbi4KPiBEaWUgZnJldW5kbGljaGUgRW1wZmFuZ3NkYW1lIGJlZ3J1ZXNzdCBlaW4gd2luemlnZXIgV29scGVydGluZ2VyIG1pdCBzZWluZW0KTmFtZW4uCkVpbiB3aW56aWdlciBXb2xwZXJ0aW5nZXIgdGFwcHN0IGhlcmVpbi4KCgo+Pj4gQ2xvc2luZyBvdXRwdXQgZmlsZS4KCk5hLCBkYSBzdGF1biBpY2ggZG9jaCEgV28gaGF0IG1laW4gV29scGllIHNlaW5lbiBOYW1lbiBoZXI/ClVuZCB3YXJ1bSBrZW5uIElDSCBzZWluZW4gTmFtZW4gbmljaHQ/ICpncmlucyoKTml4IGZ1ZXIgdW5ndXQuCkNoYXJvbgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhdXN0IGF1ZnMgQXVnZS4uLiAoQW5hdG9sLCAxMC4gRGV6IDE5OTQsIDA1OjE0OjI0KToKCi4uLgpNdXBmZWwgdGVpbHQgRGlyIG1pdDogKGtsZW1tIGRvY2gnbiBzdGVpbiBpbm5lIHR1ZXIgdm9tIG5vdGF1c2dhbmcpCltNb2VyZGVyOkdlaXN0IGVpbmVzIFN0ZWluc10gSmV0enQgaGF0IG1pY2ggZG9jaCBnbGF0dCBUb2V0ZXIgZXJ3aXNjaHQgOigKLi4uCiAgICAgICAgICAgIHVlYmVyIGRpZSBwcm9tcHRlIFJlYWt0aW9uIHVlYmVycmFzY2h0LCBBbmF0b2wKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxhcnZlbiB1bmQgY28uIChTdGFobGRvcm4sIDEwLiBEZXogMTk5NCwgMTg6MjE6NTUpOgpTb3JyeSwgRGFpbW9udm9rIHVuZCBzb3JyeSBrcmV0ZWsuCkdlZ2VuIGRpZSBMYXJ2ZW4gZ2lidHMgZWluIGd1dGVzIEhpbGZzbWl0dGVsLCBuYWVtbGljaCBlaW5lIEFudGktU2NobWFyb3R6ZXIKVGFibGV0dGUsIGRpZSBkaXIgTGFsIGdlcm5lIG1hbHQuLi4KCkFiZXIgZGFtaXQgZGVyIEFydGlrZWwgYXVjaCBoaWVyIHJlaW5nZWhvZXJ0OgoKS3VlcnpsaWNoIGhhYiBpY2ggZWluIEludGVydmlldyBtaXQgRGF2ZSBNdXN0YWluZSAoZGVyIHR5cCB2b24gTWVnYWRldGgpCmdlaG9lcnQsIHdvIGVyIG1pdCBlaW5lbSBUZWNobm92aWRlbyBkZXV0c2NoZXIgUHJvZHVrdGlvbiBrb25mcm9udGllcnQgd3VyZGUsCnVuZCBnZWZyYWd0IHd1cmRlLCB3aWUgZXIgc293YXMgZmFlbmRlLgpSZXBvcnRlcjogYW5kLi4uIGhvdyBkbyB5b3UgbGlrZSBUSElTID8KICAgLS0tIHRlY2hubyAtLS0KTXVzdGFpbmU6IGhtLiBIb3QgYmFiZXMsIGZ1Y2tpbmcgbXVzaWMuIEknZCBwcmVmZXIgaXQgdGhlIG90aGVyIHdheSByb3VuZC4KQ29vbC4gOikKCiAgICAgICAgICAgICAgICBTVEFITC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWVubmVyZmVpbmRsaWNoID8gKExpLCAxMi4gRGV6IDE5OTQsIDA5OjI0OjI2KToKIyEgcm49VHJlbW9yIHJ0PTc4Njk3NTk0OApobW0gZGEga2VubmUgaWNoIGF1Y2ggZWluZW46CldhcnVtIGhhdCBHb3R0IGRlbiBNYW5uIGVyc2NoYWZmZW4/CgoKV2VpbCBtYW4gbWl0IGVpbmVtIFZpYnJhdG9yIGtlaW5lbiBSYXNlbiBtYWVoZW4ga2Fubi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVlcyBhdXMgUEMtV2VsdCAxMi4xOTk0LiAoQXJhbWVhLCAxMi4gRGV6IDE5OTQsIDEzOjI0OjQyKToKTmFlY2hzdGVzIEphaHIgd2lsbCBtaWNyb3NvZnQgbWl0IFdpbmRvd3MgOTUgcmF1c2tvbW1lbiBlaW5lbSBOYWNoZm9sZ2VyIHZvbgpDaGljYWdvLi4uOikKRm9sZ2VuZGVzIHdhciBhbHMgV2l0eiBpbiBkZXIgWmVpdHNjaHJpZnQgenUgbGVzZW4uLjopCldhcnVtIENoaWthZ28gamV0enQgV2luZG93cyA5NSBoZWlzc3QuCjEwIG1vZWdsaWNoZSBHcnVlbmRlIGZ1ZXIgZGllICI5NSI6CjEuIGRpZSBaYWhsIGRlciBEaXNrZXR0ZW4sIGF1ZiBkZW5lbiBXaW5kb3dzIGF1c2dlbGllZmVydCB3aXJkLAoyLiBkaWUgUHJvemVudHphaGwgZGVyIEFud2VuZGVyLCBkaWUgaWhyZSBIYXJkd2FyZSBhdWZydWVzdGVuIG11ZXNzZW4sCjMuIGRlbiBQbGF0dGVucGxhdHogaW4gTUIsIGRlbiBTaWUgZnVlciBkaWUgSW5zdGVsbGF0aW9uIGJlbm9ldGlnZW4sCjQuIGRpZSBTZWl0ZW56YWhsIGltIEhhbmRidWNoa2FwaXRlbCAiSW5zdGVsbGF0aW9uIGxlaWNodGdlbWFjaHQiLAo1LiBkaWUgUHJvemVudHphaGwgSWhyZXIgV2luZG93cy1BbndlbmR1bmdlbiwgZGllIG5pY2h0IHVudGVyIENoaWthZ28gbGF1ZmVuCndlcmRlbiwKNi4gZGllIEluc3RlbGxhdGlvbnN6ZWl0IGluIE1pbnV0ZW4sCjcuIGRpZSB6YWhsIElocmVyIEFucnVmZSBiZWltIHRlY2huaXNjaGVuIFN1cHBvcnQsIGVoZSBTaWUgZGFzIFN5c3RlbSB6dW0KTGF1ZmVuIGJyaW5nZW4sCjguIGRpZSBNSHotVGFrdHJhdGUsIGRpZSBJaHIgUEMgZnVlciBDaGljYWdvIGhhYmVuIG11c3MsCjkuIGRpZSBWb2xsc3RhZW5kaWdrZWl0IGRlcyBQYWtldHMgaW4gUHJvemVudCBiZWkgQXVzbGllZmVydW5nLAoxMC4gZGFzIEphaHIgZGVyIEF1c2xpZWZlcnVuZy4KRWluZSAxMS4gRXJrbGFlcnVuZyBzdGFtbXQgdm9uIGVpbmVtIGRldXRzY2hlbiBNaWNyb3NvZnQtIE1pdGFyYmVpdGVyOgoiV2lyIHNpbmQgamV0enQgYmVpIGRlciBCZXRhIE03LCBuYWNoIGRlciBCZXRhIE05NCBrb21tdCBkYW5uIGRhcyBtYXJrdHJlaWZlCldpbmRvd3MgOTUiLi4uLi46KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZSBHZXNjaGljaHRlIGF1cyBQQy1XZWx0LiAoQXJhbWVhLCAxMi4gRGV6IDE5OTQsIDE0OjQwOjAzKToKRW50ZXJwcmlzZS4KU3Rlcm56ZWl0IDE5OTU6CkRhcyBSYXVtZmxvdHRlbmtvbW1hbmRvIGRlciBTdGVybmVuZm9lcmRlcmF0aW9uIGhhdCBDYXB0YWluIEtpcmsgdW5kIHNlaW5lCkJlc2F0enVuZyB2b20gUmF1bXNjaGlmZiBFbnRlcnByaXNlIGJlYXVmdHJhZ3QsIGRhcyB6dWt1bmZ0c3RyYWVjaHRpZ2UKQW50cmllYnNzeXN0ZW0gIldpbmRvd3MgOTUiIHp1IHRlc3Rlbi4gSGllciBkaWUgbGV0enRlbiBFaW50cmFlZ2UgaW4gZGFzCkxvZ2J1Y2ggZGVyIEVudGVycGlzZS4uLgoiU3VsdSwgS3VycyBuZWhtZW4gYXVmIERpc2tldHRlbmxhdWZ3ZXJrLiBTY290dHksIHJpY2h0ZW4gU2llIGRpZSBGZXN0cGxhdHRlCmF1ZiBkYXMgbmV1ZSBBZ2dyZWdhdCAiV2luZG93cyA5NSIgZWluLiBDaGVrb3YsIEluc3RlbGxhdGlvbnNkaXNrZXR0ZW4KYmVyZWl0aGFsdGVuLiBXaXIgaGFiZW4gZWluIGtvbXBsaXppZXJ0ZXMgTWFub2V2ZXIgdm9yIHVucy4iCiJBYmVyIENhcHRhaW4sIG1vZWNodGVuIFNpZSBkYXMgU3lzdGVtIHdpcmtsaWNoIGVybmV1ZXJuKT8KV2VubiB3aXIgV2luZG93cy1Db2RlIGluIGVpbmUgZWNodGUgMzItQml0LU11bHRpYXNraW5nLVVtZ2VidW5nCmltcGxlbWVudGllcmVuLCByaXNraWVyZW4gd2lyIGVpbmUgTWF0ZXJpZS1BbnRpbWF0ZXJpZS1FeHBsb3Npb24hIgoiRGFzIHdhciBlaW4gQmVmZWhsLCBTY290dHkhIgoiQXllLCBDYXB0YWluLCBhYmVyIGRhcyBTeXN0ZW0gaXN0IG5vY2ggbmljaHQgYXVzZ2VyZWlmdCB1bmQgYmVub2V0aWd0Cm1pbmRlc3RlbnMgbm9jaCBlaW5lbiB3ZWl0ZXJlbiBCZXRhdGVzdC4iCiJXaXIgc3RlY2tlbiBkb2NoIGJlcmVpdHMgbWl0dGVuIGRyaW4sIFNjb3R0eS4gQ2hla292LCB3aWUgbGFldWZ0J3MgbWl0IGRlbgpJbnN0ZWxsYXRpb25zZGlza3M/IgoiV2lyIHNpbmQgamV0enQgYmVpIERpc2sgNSwgU2lyLiIKIkd1dCwgU3BvY2s/IgoiRmF6aW5pZXJlbmQsIENhcHRhaW4uIEVzIHNjaGVpbnQgZWluZSBlaWdlbmUgSW50ZWxsaWdlbnogenUgYmVzaXR6ZW4uCk9mZmVuc2ljaHRsaWNoIHBydWVmdCBXaW5kb3dzIDk1IHVuc2VyZSBIYXJkd2FyZSBhdXRvbWF0aXNjaCB1bmQgYWRhcHRpZXJ0CnNpY2ggYW5zY2hsaXNzZW5kIHNlbGJzdGFlbmRpZy4iCiJTcG9jaywga29lbm5lbiBTaWUgbWlyIGRhbm4gZXJrbGFlcmVuLCB3ZXNoYWxiIHNpY2ggZGllCk1pY3Jvc29mdC1Tb3VuZGthcnRlLCBkaWUgYmlzbGFuZyB1bnRlciBXaW5kb3dzIDMuMSBlaW53YW5kZnJlaSBsaWVmLApwbG9ldHpsaWNoIG5pY2h0IG1laHIgYW5zcHJlY2hlbmxhZXNzdD8iCiJVbmJla2FubnQsIENhcHRhaW4uIgoiV2lyZCBlcyBtaXQgZWluZXIgUHJvLUF1ZGlvLVNwZWN0cnVtIHp1cmVjaHRrb21tZW4/IgoiVW5iZWthbm50LCBDYXB0YWluLiIKIlBpbGxlPyIKIkljaCBiaW4gQXJ6dCwga2VpbiBIYXJkd2FyZXNwZXppYWxpc3QuIgoiU3BvY2ssIGJlZW5kZW4gU2llIGRpZSBJbnN0ZWxsYXRpb24gZGVyIE1pY3Jvc29mdC1Tb3VuZGthcnRlLCBha3RpdmllcmVuIFNpZQpkaWUgUHJvLUF1ZGlvLVNwZWN0cnVtLiBDaGVrb3YsIFNvZnR3YXJlaW5zdGVsbGF0aW9uIGFiYnJlY2hlbi4gU3VsdSwgc3RhcnRlbgpTaWUgZGFzIFN5c3RlbSBuZXUuUmVib290ISIKIkNoZWtvdj8iCiJXaXIgaGFiZW4gc29lYmVuIGRpZSBEZXNrdG9wLVpvbmUgZXJyZWljaHQsIFNpci4iCiJDYXB0YWluLCBlcyBoYWVsdCBuaWNodCBtZWhyIGxhbmdlIGR1cmNoLiBOb2NoIDE1IFNla3RvcmVuLCB1bmQgZGllIE1hc2NoaW5lCmJyZW5udC4iCiJTY290dHksIHdpciBoYWJlbiBkb2NoIG5vY2ggZ2FyIG5pY2h0IHJpY2h0aWcgYmVnb25uZW4uIgoiU3VsdSwgZ2VoZW4gU2llIGF1ZiBUYXNrIDEuIFNjaGlja2VuIFNpZSBSZWFkbWUudHh0IGF1ZiBkYXMKTm90ZXBhZC1EaXNwbGF5LiIKIkF5ZSwgQ2FwdGFpbi4iCiJXYXJ0ZW4gU2llLi4uLiwgZXJ6ZXVnZW4gU2llIGVpbmVuIFNob3J0Y3V0IGZ1ZXIgUmVhZG1lLnR4dCB1bmQgcGxhemllcmVuClNpZSBzZXMgYXVmIGRpZSBEZXNrdG9wLVpvbmUuIFdpciB3ZXJkZW4gaW4gS3VlcnplIGRvcnRoaW4gbmF2aWdpZXJlbi4iCiJPa2F5LCBDYXB0YWluLiIKIlNwb2NrPyIKIkVzIGlzdCBvZmZlbnNpY2h0bGljaCBlaW4gSGFyZHdhcmVrb25mbGlrdCBhdWZnZXRyZXRlbi4sIFNpci4gRGllClByby1BdWRpby1TcGVjdHJ1bS0xNiBhbnR3b3J0ZXQgbmljaHQtIHdlZGVyIGRlciBTb3VuZCBub2NoIGRhcyBTQ1NJLgpTZWx0c2FtLiIKIkRlYWt0aXZpZXJlbiBTaWUgZGllIEthcnRlLCBTcG9jay4iCiJWZXJ6ZWlodW5nLCBTaXIuIEVzIGlzdCBuaWNodCBtb2VnbGljaCwgZGFzIFNDU0kgenUgc3RvcHBlbiwgb2huZSBkaWUKU291bmRrYXJ0ZSB6dSBkZWFrdGl2aWVyZW4uRWJlbnNvd2VuaWcgbGFlc3N0IHNpY2ggZGllIFNvdW5ka2FydGUKZGVha3RpdmllcmVuLCBvaG5lIGRhc1NDU0kgenUgc3RvcHBlbi4iCiJDYXB0YWluISBFaW4gZmVpbmRsaWNoZXMgU2NoaWZmIG5hZWhlcnQgc2ljaC4iCiJIbW1tbSwgaGFiZW4gd2lyIG5vY2ggWmVpdCwgdW0gdW5zZXJlIFN5c3RlbWUgaW4gR2FuZyB6dSBiZWtvbW1lbj8iCiJCTmVpbiwgU2lyLCBkYXMgU2NoaWZmIGlzdCBiZXJlaXRzIGluIFNpY2h0d2VpdGUuIgoiVWh1cmE/IExldXRuYW50IFVodXJhISIKIlNhZW10bGljaGUgRnJlcXVlbnplbiB3ZXJkZW4gYmVyZWl0cyBhYmdlaG9lcnQsIFNpci4gSWNoIHZlcnN1Y2hlLCBlaW4gQmlsZAp6dWJla29tbWVuLCBhYmVyIGRhcyBTeXN0ZW0gaXN0IHNjaHJlY2tsaWNoIGxhbmdzYW0uIgoiU2NvdHR5LCB3YXMgZ2VodCBkb3J0IHVudGVuIHZvcj8iCiJEaWUgTWFzY2hpbmVuIGxhdWZlbiBlaW53YW5kZnJlaSwgQ2FwdGFpbiwgYWJlciBkYXMgMTYtQml0LUdESS1Nb2R1bCBrYW5uCmxlZGlnbGljaCBlaW5lbiBQcm96ZXNzIG5hY2ggZGVtIGFuZGVyZW4gYWJhcmJlaXRlbi4iCiJTcG9jaywgc2VoZW4gU2llIHp1LCB3YXMgU2llIGRhIHR1biBrb2VubmVuLiIKIkVzIHNjaGVpbnQgZWluIFNjaGlmZiBkZXIgSUJNLUtsYXNzZSB6dSBzZWluLCBDYXB0YWluLCBhdXNnZXJ1ZXN0ZXQgbWl0Li4uCldhcnAtQW50cmllYiEiCiJCcmluZ2VuIFNpZSBkYXMgU2NoaWZmIGF1ZiBkZW4gTW9uaXRvciwgQ2hla292LiIKIkF5ZSwgYXllLCBTaXIuIgoiU3BvY2ssIGRhcyBmZWluZGxpY2hlIFNjaGlmZiBuYWVoZXJ0IHNpY2ggbWl0IGdyb3NzZXIgR2VzY2h3aW5kaWdrZWl0LiBXaXIKYmVub2V0aWdlbiBBdWRpby4iCiJOZWdhdGl2LCBDYXB0YWluLiBEYXMgVmVyemVpY2huaXMgbGFlc3N0IHNpY2ggbmljaHQgbG9rYWxpc2llcmVuLiIKIiJQaWxsZT8iCiJJY2ggYmluIEFyenQsIGtlaW4gQmV0YXRlc3Rlci4iCiJTY2huZWxsLCBTdWx1LCB3aXIgYnJhdWNoZW4gdW5iZWRpbmd0IFJlYWRtZS50eHQuIgoiQ2FwdGFpbiwgUmVhZG1lLnR4dCBpc3Qgc3B1cmxvcyB2ZXJzY2h3dW5kZW4uLi4uV2FydGVuIFNpZS4uLkljaCBoYWJlIGVzCmdlZnVuZGVuLCBTaXIuIE5laW4sIGRvY2ggbmljaHQsIGRpZXNlcyBSZWFkbWUudHh0IGdlaG9lcnQgenVtIFNwaWVsIExhbnMgb2YKTG9yZS4iCiJDYXB0YWluLCBkaWUgQmVsYXN0dW5nIGZ1ZXIgdW5zZXJlIE1hc2NoaW5lbiBpc3QgenUgaG9jaC4gTm9jaCBldHdhIDE1ClNla3RvcmVuIHVuZCBzaWUgYnJlbm5lbiBkdXJjaC4iCiJTdWx1LCBnZWJlbiBTaWUgQWxhcm1zdHVmZSBSb3QuIgoiQ2FwdGFpbiwgaWNoIGthbm4gbmljaHQgaGVyYXVzYmVrb21tZW4sIHdpZSBpY2ggZGllIEhpbnRlcmdydW5kZmFyYmVuIGRlcwpEZXNrdG9wIHZlcmFlbmRlcm4ga2Fubi4iCiJQaWxsZT8iCiJJY2ggYmluIEFyenQsIGtlaW4gaGFuZGJpdWNoLiIKIkhtbW1tLi4uU3VsdSwgYWt0aXZpZXJlbiBTaWUgZGVuIFNjcmVlbnNhdmVyLiBTcG9jaywgYWxsZXMga2xhciBmdWVyIGVpbgpGZXVlcmdlZmVjaHQuIEJlcmVpdGVuIFNpZSBlaW5lbiBTY2h1c3MgbWl0IGRlbSBIUCBMYXNlcmpldCB2b3IuIgoiQ2FwdGFpbiwgaWNoIGhhYmUgZGViIFNjcmVlbnNhdmVyICJDaGljYWdvIGlzdCBjb29sIiBnZWZ1bmRlbiwgYWJlciBqZXR6dApoYWJlaWNoIGtlaW5lIEtvbnRyb2xsZSBtZWhyIHVlYmVyIGRhcyBTdGV1ZXIuIgouLi5EYXMgUmF1bXNjaGlmZiBFbnRlcnByaXNlIHdpcmQgZHVyY2ggZWluZW4gZmVpbmRsaWNoZW4gUGhvdG9uZW4tVG9ycGVkbwpkZXMgSUJNLSBTY2hpZmZzIGdldHJvZmZlbi4gRmV1ZXJmdW5rZW4sIExpY2h0YmxpdHplLiBEaWUgQmVzYXR6dW5nIGdlcmFldCBpbgpQYW5pay4uCiJTdWx1LCB1bSBIaW1tZWxzIHdpbGxlbiwgdW50ZXJuZWhtZW4gU2llIHdhcyEgRGFzIGthbm4gZG9jaCBuaWNodCBEb29tCnNlaW4hPyIKIkNhcHRhaW4sIGVzIGlzdCBEb29tLiBVbmQgbWlyIHdpcmQgdWViZWwgYmVpIGRpZXNlciBEZW1vLiBEb29tIGlzdCBlaW5lcyBkZXIKc3RhYmlsc3RlbiBTcGllbGUsIGRpZSBlcyBnaWJ0LiBVbnRlciBPUy8yIGxhZXVmdCBlcyBvaG5lIFByb2JsZW1lLiIKIlNjb3R0eSwgdW0gYWxsZXMgaW4gZGVyIFdlbHQsIGJyaW5nZW4gU2llIHVucyBoaWVyIHJhdXMuIgoiU29ycnksIENhcHRhaW4sIGRpZSBNYXNjaGluZSBzdGVodC4gV2lyIG11ZXNzZW4gZWluZW4gS2FsdHN0YXJ0CmR1cmNoZnVlaHJlbi4iCiJQaWxsZT8iCiJFcyBpc3QgdG90LCBKaW0uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNYWVubmVyZmVpbmRsaWNoID8gKEtyZXRlaywgMTIuIERleiAxOTk0LCAxODowMTo0NSk6CiMhIHJuPUxpIHJ0PTc4NzIyMDY2NgpHZWdlbnNjaGxhZyEKCldhcnVtIGhhdCBHb3R0IGRpZSBGcmF1IGVyc2NoYWZmZW4/CgpTY2hhZmUga29lbm5lbiBuaWNodCBrb2NoZW4hCgoKCgpOaWNodCBoYXVlbiwKdW5kCmMgdSBsOGVyLAogICBLcmV0ZWsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBoYXJ0ZSBMZWJlbiBlaW5lcyBXZXR0cGFsYXN0dm9yc3RhbmRzdm9ydGlnZXJuZGVuIChEYW5jZXIsIDEzLiBEZXogMTk5NCwgMTc6MjQ6NDYpOgpISSA6LSkKClNvIGlzdCBkYXMsIHdlbm4gbWFuIHZlcmFudHdvcnRsaWNoIGZ1ZXIgZWluZW4gV2V0dHBhbGFzdCBpc3QhIER1ZXN0ZXJlCk1hZW5uZXIKbWl0IGR1ZXN0ZXJlbiBBYnNpY2h0ZW4gdmVyZm9sZ2VuIGVpbmVuLCBhbm9ueW1vZSBLYW5hbHJ1ZmUgZHVyY2hkcmluZ2VuIGRpZQpTdGlsbGUgZGVzIE1HLCBUeXBlbiBtaXQgZ3Jvc3NlbiBUYXNjaGVuLCBncm9zc2VtIEdyaW5zZW4gdW5kIGdyb3NzZW0KQmx1dHNhdWdlcnNjaHdlcnQgdW50ZXIgZGVtIE1hbnRlbCBrb21tZW4gaW4gbWVpbiBCdWVyby4uLgoKTmV1ZXN0ZXIgQ2xvdTogRWluIEJyaWVmIHZvbiBlaW5lbSBiZWthbm50ZW4gTWFmaW9zby4uLi4KCkFuOiBEYW5jZXIKQ2M6CkRhdHVtOiBEaWUsIDEzLiBEZXogMTk5NCwgMTc6MTU6NTgKVGl0ZWw6IFRpZ2FlcmNoYWVlbi4uLgpIYWxsbyBUaWdhZWVyICEKSGV1dGUgQWJhZWVuZCBpbiB6d2VpdGVzIHJhZW5uYWVlbiBzb2xsdGFlIGdld2lubmFlbiBQYW5hYW5hZSwgbWVpbmFlCkZhbWlsaWFlIGhhYmVuIGdlc2V6dGUgZ3Jvc3NlcyBHZWxkYWUgYXVmIElobmFlLi4uCldhZXJlIHNjaGFkYWUsIHdlbm4ga2xlaW5lIGJhbWJpbmkgVGlnYWVlciwgaGFldHRlbiBrZWluZSBQYXBpIG1hZWVoci4uLgp1bmQgRmFhZWxsIHZvbiBncm9zc2FlcyBUaWdlciB3dWVyZGFlZSBsaWdhZWVlbiB2b3IgZGllIEthbWluYWUgdm9uCm1laW5lIGdyb3NzYWUgVmlsbGEgISEhCgpXZW5uIFBhbmFhbiBnZXdpbm50YWVlLCB3aXIgYmxlaWJhYWVlbiBhbGxhZWUgZ2x1Y2tpY2hhZS4KZ2V6LiBlaW4gYW5vbnltZXIgT2V0dGlubwoKQ2lhbyByYWdhenpvCgoKKmxhY2gga2FwdXR0KgoKRGFuY2VyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBoYXJ0ZSBMZWJlbiBlaW5lcyBXZXR0cGFsYXN0dm9yc3RhbmRzdm9ydGlnZXJuZGVuIChKb2YsIDEzLiBEZXogMTk5NCwgMTc6MzQ6MjIpOgojISBybj1EYW5jZXIgcnQ9Nzg3MzM1ODg2CiBJY2gga2FubiBkZW0gbnVyIHZvbGwgdW5kIGdhbnogenVzdGltbWVuIC0gaWNoIGhhYiBhdWNoIGF1ZiBQYSogZ2V3ZXR0ZXQuCkFsc28sIHNpZWggenUgLi4uCgogSm9mCiAoZ2VuYW5udCBhdWNoICdkZXIgUGF0ZScpIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBoYXJ0ZSBMZWJlbiBlaW5lcyBXZXR0cGFsYXN0dm9yc3RhbmRzdm9ydGlnZXJuZGVuIChOaXhpaG91LCAxNS4gRGV6IDE5OTQsIDExOjAyOjE0KToKIyEgcm49RGFuY2VyIHJ0PTc4NzMzNTg4NgpNYWNoIGRvY2ggbmUgcXVlc3QgZGFyYXVzLCB3ZW5uIGR1IGFuZ3N0IGhhc3QuIGRhbm4gaGVsZmVuIGRpciBnYW56IGdhbnoKdmllbGUgc3BpZWxlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW4gTmliZWxoZWltIC4uLiAoU2lyLCAxNS4gRGV6IDE5OTQsIDIzOjA1OjE3KToKQWx0YmVrYW5udGUgRnJhZ2UgOiBXZWxjaGVzIEdlc2NobGVjaHQgdGFndCBpbiBkZXIgRXJkZSBUaWVmZSA/CgpCaXNoZXIgYmVzdGUgQW50d29ydCBlaW5lcyBTcGllbGVycyA6IHdlaWJsaWNoCgo6LSkgV2VubidzIG1hbCBzbyB3YWVyZQoKU2lyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1bGljaCBpbiBOaWJlbGhlaW0gLi4uIChTaXIsIDE1LiBEZXogMTk5NCwgMjM6MDc6MzYpOgojISBybj1TaXIgcnQ9Nzg3NTI5MTE3Ck5vY2ggZWluZW4gZ2VmdW5kZW4gOgpXZWxjaGVzIFNjaHdlcnQgbXVzc3QgRHUgbnVuIHNjaHdpbmdlbiBbLi4uXSA/CkFudHdvcnQgOiBtZWluZXMKClp3aW5nZW5kZSBMb2dpaywgYWJlciB0cm90emRlbSBmYWxzY2ggOikKClNpcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWxpY2ggaW4gTmliZWxoZWltIC4uLiAoU3lzb3AsIDE2LiBEZXogMTk5NCwgMDE6MDc6MDEpOgojISBybj1TaXIgcnQ9Nzg3NTI5MTE3ClNvLCBpY2ggZ2xhdWJlLCBpY2ggZ2VoZSBtYWwgbmFjaCBOaWJlbGhlaW0gdW5kIGdlYmUgNTAwMCBBbnR3b3J0ZW4uCkplZGUgYXVzIDEwIFplaWxlbiBNdWVsbCBiZXN0ZWhlbmQgLi4uCi0tIFN5c29wIChIQVNTVCBMb2dmaWxlcyEhISEhKSA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVsZWZhbnQgKFNtYXVnLCAxNy4gRGV6IDE5OTQsIDEzOjU0OjA2KToKaG1tLi4uIGljaCBob2ZmZSBuaWVtYW5kIGhhdCBlaW5lbiBlbGVmYW50IGFscyBoYXVzdGllciA6KQoKZjogd2llIHZlcnN0ZWNrdCBzaWNoIGVpbiBlbGVmYW50IGltIGRzY2h1Z2VsPwoKYTogZXIgbWFsdCBzZWluZSBlaWVyIHJvdCBhbiB1bmQgdmVyc3RlY2t0IHNpY2ggYXVmIGVpbmVtIGtpcnNjaGJhdW0hCgoKZjogdW5kIHdhcyB2ZXJ1cnNhY2h0IGRhcyBsYXV0ZXN0ZSBnZXJhZXVzY2ggaW4gZWluZW0gZHNjaHVuZ2VsPwoKYTogZWluZSBnaXJhZmZlLCBkaWUga2lyc2NoZW4gaXNzdCEKCgpzbWF1ZyAoZWxmaXNjaGUgcmVpbmthcm5hdGlvbiBlaW5lcyBkcmFjaGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnJhdHNjaGVud2l0eiAoR3JpbW1ib3JuLCAxOC4gRGV6IDE5OTQsIDA2OjU3OjU5KToKCldpZSBzcGllbHQgZWluIFZpb2xpbmlzdCB3aWUgZWluIEJyYXRzY2hpc3Q/CkVyIHNldHp0IHNpY2ggbmFjaCBoaW50ZW4gdW5kIHNwaWVsdCBuaWNodC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdC4gTmFjaCBkdXJjaG11ZGRldGVyIE5hY2h0LiBGcm9oZSBXZWlobmFjaHRlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjIgZnJldW5kZSAoU2NobG9ueiwgMTkuIERleiAxOTk0LCAxMDoyMzozNik6Cgp6d2VpIGFsdGUgZnJldW5kZSB0cmVmZmVuIHNpY2guIGRlciBlaW5lIGlzdCByZWNodHNhbndhbHQsIGRlciBhbmRlcmUgYXJ6dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiAyIGZyZXVuZGUgKFNjaGxvbnosIDE5LiBEZXogMTk5NCwgMTc6MDc6NTgpOgojISBybj1BcmFueWEgcnQ9Nzg3ODQ5NDM1CmRhIGdpYnRzIGF1Y2ggbml4IHp1IHZlcnN0ZWhlbi4gSWNoIGJpbiBuaWNodCBmZXJ0aWcgZ2V3b3JkZW4gdW5kIGFscyBpY2ggZGVuCkFydGlrZWwgd2llZGVyIGxvZXNjaGVuIHdvbGx0ZSBrYW0gbnVyIDogRmVobGVyIGltIFJhdW0tWmVpdGdlZnVlZ2UuCgpTb3JyeSwgYWxzbyBoaWVyIGRlciBnYW56ZSB3aXR6IDoKClRyZWZmZW4gc2ljaCAyIGFsdGUgZnJldW5kZS4gRWluZXJbQ3JlY2h0c2Fud2FsdCAsIGRlciBhbmRlcnp0LiBGcmFndCBkZXIKcmVjaHRzYW53YWx0IDoiTmEgLCB3aWUgZ2VodHM/IiAiTmljaHQgc2NobGVjaHQsIGthbm4gbmljaHQga2xhZ2VuLiBVbmQgZGlyID8iCiJTY2hsZWNodCwga2FubiBhdWNoIG5pY2h0IGtsYWdlbiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWaXJlbiAoUm9jaHVzLCAxOS4gRGV6IDE5OTQsIDE5OjE5OjM5KToKQXVzIG11ZW5zdGVyLmNvbmZpZzoKCkRlbiBsZXR6ZW4gS29udGFrdCBoYXR0ZSBpY2ggenUgZWluZW0gYm9vdC1zZWN0b3ItdmlydXMgZGVyIExJTE8gaGVpc3N0LgpBbGxlIGRpZSBpaG4gaGFiZW4sIGhhYmVuIGlobiBiZXd1c3N0IGVpbmdlc3BpZWx0IHVuZCBtb2VnZW4gaWhuIGdhcm5pY2h0Cm1laHIgaGVyZ2ViZW4gOykpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmlyZW4gKERhbmNlciwgMjAuIERleiAxOTk0LCAwMDoxMDozOSk6CiMhIHJuPVJvY2h1cyBydD03ODc4NjExNzkKSGUsIEZpbmdlciB3ZWcgdm9uIExJTE8sIGRhcyBpc3QgdW5zZXIgYWxsZXIgU2NoYWV0emNoZW4gOi0pCgpEYW5jZXIgLSBoYXQgd2llZGVyIExpbnV4LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCld1cm0gaW0gQXBmZWwgKEtvYmF5YXNoaSwgMjAuIERleiAxOTk0LCAxNDoyNjoxMSk6CldhcyBpc3QgZWtsaWdlciBhbHMgZWluZW4gV3VybSBpbiBlaW5lbSBBcGZlbCB6dSBmaW5kZW4/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpFaW5lbiBoYWxiZW4gV3VybSBpbiBlaW5lbSBBcGZlbCB6dSBmaW5kZW4hCgpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCklOVEVMIE5FV1NGTEFTSCAyMC4xMi45NCAoQmFuemFpLCAyMS4gRGV6IDE5OTQsIDEyOjUxOjEyKToKCiAgIFtJTUFHRV0KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogICAKICAgSU5URUwgQURPUFRTIFVQT04tUkVRVUVTVCBSRVBMQUNFTUVOVCBQT0xJQ1kgT04gUEVOVElVTShUTSkgUFJPQ0VTU09SUwogICBXSVRIIEZMT0FUSU5HIFBPSU5UIEZMQVc7IFdJTEwgVEFLRSBRNCBDSEFSR0UgQUdBSU5TVCBFQVJOSU5HUwogICAKICAgU0FOVEEgQ0xBUkEsIENhbGlmLiwgRGVjZW1iZXIgMjAsIDE5OTQgLS0gSW50ZWwgdG9kYXkgc2FpZCBpdCB3aWxsCiAgIGV4Y2hhbmdlIHRoZSBwcm9jZXNzb3IgZm9yIGFueSBvd25lciBvZiBhIFBlbnRpdW0odG0pIHByb2Nlc3Nvci1iYXNlZAogICBzeXN0ZW0gd2hvIGlzIGNvbmNlcm5lZCBhYm91dCB0aGUgc3VidGxlIGZsYXcgaW4gdGhlIGZsb2F0aW5nIHBvaW50CiAgIHVuaXQgb2YgdGhlIHByb2Nlc3Nvci4gVGhlIGNvbXBhbnkgaGFzIGJlZW4gY3JpdGljaXplZCBpbiByZWNlbnQgd2Vla3MKICAgZm9yIHJlcGxhY2luZyBwcm9jZXNzb3JzIG9uIHRoZSBiYXNpcyBvZiBuZWVkIHJhdGhlciB0aGFuIG9uIHJlcXVlc3QuCiAgIEludGVsIHdpbGwgdGFrZSBhIHJlc2VydmUgYWdhaW5zdCBmb3VydGggcXVhcnRlciBlYXJuaW5ncyB0byBjb3ZlcgogICBjb3N0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcGxhY2VtZW50IHByb2dyYW0uCiAgIAogICBUaGUgZmxhdyBjYW4gcHJvZHVjZSByZWR1Y2VkIHByZWNpc2lvbiBpbiBmbG9hdGluZyBwb2ludCBkaXZpZGUKICAgb3BlcmF0aW9ucyBvbmNlIGV2ZXJ5IG5pbmUgYmlsbGlvbiByYW5kb20gbnVtYmVyIHBhaXJzLiBJbnRlbCBzYWlkCiAgIHRoYXQgd2hpbGUgYWxtb3N0IG5vIG9uZSB3aWxsIGV2ZXIgZW5jb3VudGVyIHRoZSBmbGF3LCB0aGUgY29tcGFueQogICB3aWxsIG5ldmVydGhlbGVzcyByZXBsYWNlIHRoZSBwcm9jZXNzb3IgdXBvbiByZXF1ZXN0IHdpdGggYW4gdXBkYXRlZAogICB2ZXJzaW9uIHRoYXQgZG9lcyBub3QgaGF2ZSB0aGUgZmxhdy4gVGhpcyBvZmZlciB3aWxsIGJlIGluIGVmZmVjdCBmb3IKICAgdGhlIGxpZmV0aW1lIG9mIGEgdXNlcidzIFBDLCB3aGljaCBtZWFucyB0aGF0IHVzZXJzIGNhbiBjb25jbHVkZSB0aGV5CiAgIGRvIG5vdCBjdXJyZW50bHkgd2FudCBhIHJlcGxhY2VtZW50LCBidXQgc3RpbGwgaGF2ZSB0aGUgb3B0aW9uIG9mCiAgIHJlcGxhY2luZyB0aGUgY2hpcCBpbiB0aGUgZnV0dXJlIGlmIHRoZXkgd2lzaC4gSW50ZWwgaXMgbWFraW5nIGEgcmFwaWQKICAgbWFudWZhY3R1cmluZyB0cmFuc2l0aW9uIHRvIHRoZSB1cGRhdGVkIHZlcnNpb24sIGFuZCBleHBlY3RzIHRvIGJlCiAgIGFibGUgdG8gc2hpcCBzdWZmaWNpZW50IHJlcGxhY2VtZW50IHBhcnRzIHRvIG1lZXQgZGVtYW5kIGR1cmluZyB0aGUKICAgbmV4dCBmZXcgbW9udGhzLgogICAKICAgIlRoZSBwYXN0IGZldyB3ZWVrcyBoYXZlIGJlZW4gZGVlcGx5IHRyb3VibGluZy4gV2hhdCB3ZSB2aWV3IGFzIGFuCiAgIGV4dHJlbWVseSBtaW5vciB0ZWNobmljYWwgcHJvYmxlbSBoYXMgdGFrZW4gb24gYSBsaWZlIG9mIGl0cyBvd24sIgogICBzYWlkIERyLiBBbmRyZXcgUy4gR3JvdmUsIHByZXNpZGVudCBhbmQgY2hpZWYgZXhlY3V0aXZlIG9mZmljZXIuICJPdXIKICAgT0VNIGN1c3RvbWVycyBhbmQgdGhlIHJldGFpbCBjaGFubmVsIGhhdmUgYmVlbiB2ZXJ5IHN1cHBvcnRpdmUgZHVyaW5nCiAgIHRoaXMgZGlmZmljdWx0IHBlcmlvZCwgYW5kIHdlIGFyZSB2ZXJ5IGdyYXRlZnVsLCIgRHIuIEdyb3ZlIHNhaWQuICJUbwogICBzdXBwb3J0IHRoZW0gYW5kIHRoZWlyIGN1c3RvbWVycywgd2UgYXJlIHRvZGF5IGFubm91bmNpbmcgYQogICBuby1xdWVzdGlvbnMtYXNrZWQgcmV0dXJuIHBvbGljeSBvbiB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBQZW50aXVtCiAgIHByb2Nlc3Nvci4KICAgCiAgICJPdXIgcHJldmlvdXMgcG9saWN5IHdhcyB0byB0YWxrIHdpdGggdXNlcnMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlaXIKICAgbmVlZHMgcmVxdWlyZWQgcmVwbGFjZW1lbnQgb2YgdGhlIHByb2Nlc3Nvci4gVG8gc29tZSBwZW9wbGUsIHRoaXMKICAgcG9saWN5IHNlZW1lZCBhcnJvZ2FudCBhbmQgdW5jYXJpbmcuIFdlIGFwb2xvZ2l6ZS4gV2Ugd2VyZSBtb3RpdmF0ZWQKICAgYnkgYSBiZWxpZWYgdGhhdCByZXBsYWNlbWVudCBpcyBzaW1wbHkgdW5uZWNlc3NhcnkgZm9yIG1vc3QgcGVvcGxlLiBXZQogICBzdGlsbCBmZWVsIHRoYXQgd2F5LCBidXQgd2UgYXJlIGNoYW5naW5nIG91ciBwb2xpY3kgYmVjYXVzZSB3ZSB3YW50CiAgIHRoZXJlIHRvIGJlIG5vIGRvdWJ0IHRoYXQgd2Ugc3RhbmQgYmVoaW5kIHRoaXMgcHJvZHVjdC4iCiAgIAogICBJbnRlbCB3aWxsIHNlbmQgYSByZXBsYWNlbWVudCBwcm9jZXNzb3IgdG8gUEMgdXNlcnMgd2hvIGNob29zZSB0byBkbwogICB0aGUgcmVwbGFjZW1lbnQgdGhlbXNlbHZlcywgYW5kIHdpbGwgb2ZmZXIgdGVsZXBob25lIHRlY2huaWNhbAogICBhc3Npc3RhbmNlLiBDYWxsIDEtODAwLTYyOC04Njg2IGZvciBkZXRhaWxzLiBJbnRlbCBhbHNvIHNhaWQgaXQKICAgcGxhbm5lZCB0byBjb250cmFjdCB3aXRoIHNlcnZpY2UgcHJvdmlkZXJzIHRvIGRvIHJlcGxhY2VtZW50cyBhdCBubwogICBjaGFyZ2UgZm9yIFBDIG93bmVycyB3aG8gcHJlZmVyIHRvIGJyaW5nIHRoZWlyIFBDJ3MgdG8gYSBzZXJ2aWNlCiAgIGxvY2F0aW9uLiBEZXRhaWxzIHdpbGwgYmUgcHJvdmlkZWQgaW4gdGhlIG5leHQgZmV3IHdlZWtzLiBGaW5hbGx5LAogICBJbnRlbCBzYWlkIGl0IHdvdWxkIHdvcmsgd2l0aCBpdHMgT0VNIGN1c3RvbWVycyB0byBwcm92aWRlIHJlcGxhY2VtZW50CiAgIGZvciBQQyB1c2VycyB3aG8gcHJlZmVyIHRvIHdvcmsgd2l0aCB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZWlyIHN5c3RlbS4KICAgCiAgIAogICBUaGUgY29tcGFueSBzYWlkIGl0IHdvdWxkIHRha2UgYW4gdW5zcGVjaWZpZWQgYnV0IG1hdGVyaWFsIGNoYXJnZQogICBhZ2FpbnN0IGZvdXJ0aCBxdWFydGVyIGVhcm5pbmdzIHRvIGNvdmVyIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUKICAgcmVwbGFjZW1lbnQgcHJvZ3JhbSBhbm5vdW5jZWQgdG9kYXkuIEludGVsIHNhaWQgaXQgd2FzIHVuYWJsZSB0bwogICBkZXRlcm1pbmUgdGhlIGFtb3VudCBvZiB0aGUgcmVzZXJ2ZSwgYnV0IHNhaWQgYW4gZXN0aW1hdGVkIHRvdGFsIHdpbGwKICAgYmUgcHJvdmlkZWQgb24gb3IgYmVmb3JlIEphbnVhcnkgMTcsIHRoZSBkYXRlIG9mIEludGVsJ3MgMTk5NAogICBmaW5hbmNpYWwgcmVzdWx0cyBhbm5vdW5jZW1lbnQuIEZvbGxvd2luZyB0aGlzIHJlbGVhc2UgaXMgYSBjb3B5IG9mIGFuCiAgIGFkdmVydGlzZW1lbnQgdGhhdCB3aWxsIGFwcGVhciBzdGFydGluZyBvbiBEZWNlbWJlciAyMSBpbiBtYWpvcgogICBuZXdzcGFwZXJzIGluIE5vcnRoIEFtZXJpY2EuCiAgIAogICBJbnRlbCwgdGhlIHdvcmxkJ3MgbGFyZ2VzdCBjaGlwIG1ha2VyLCBpcyBhbHNvIGEgbGVhZGluZyBtYW51ZmFjdHVyZXIKICAgb2YgcGVyc29uYWwgY29tcHV0ZXIsIG5ldHdvcmtpbmcgYW5kIGNvbW11bmljYXRpb25zIHByb2R1Y3RzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAgIAogICBMYXN0IG1vZGlmaWVkOiAxMi8yMC85NAogICAKICAgW0ludGVsXSAKICAgIHdlYm1hc3RlckB3d3cuaW50ZWwuY29tCiAgICAKICAgVGVsbCB1cyB3aGF0IHlvdSB0aGluayEKICAgQ29weXJpZ2h0IChjKSAxOTk0LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGluIFBvcnQgVmFpbiAoRHVyaWFuLCAyMi4gRGV6IDE5OTQsIDEyOjI3OjI0KToKRGVyIEJldHRsZXIgc2FndDogaGFzdCBEdSBtYWwgZXR3YXMgR2VsZCBmdWVyIG1pY2g/CkJhc3NhaWRhaSBzYWd0OiB3aWVzbyA/CgoKTXVzcyBtYW4gZGF6dSBub2NoIGV0d2FzIHNhZ2VuPwoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbW91cyBMYXN0IFdvcmRzIChJc25vZ29vZCwgMjMuIERleiAxOTk0LCAxNToyNjowNSk6CkhpZXIgbWFsIGVpbmUga2xlaW5lIEF1ZnN0ZWxsdW5nIHZvbiAiRmFtb3VzIGxhc3QgTW9yZ2VuZ3JhdWVuIHdvcmRzIiwgZGllCm1pcgpzbyBpbSBMYXVmZSBkZXIgWmVpdCBiZWdlZ25ldCBzaW5kOgoKLSBJaHIga29lbm50IGtvbW1lbiwgZGVyIERyYWNoZSBpc3QgdG90LgotIEhvbGVuIHdpciBkZW4gWlQgYmVpbSBEcmFjaGVuPwotIEljaCBnZWggbWFsIGt1cnogenVtIEhleGVyLgotIFdpZSBmdW5rdGlvbmllcnQgZGFzIG1pdCBkZXIgRmx1Y2h0cmljaHR1bmc/Ci0gS2FubiBtYW4gYXVjaCBvaG5lIEFtdWxldHQgaW4gZGVuIFNjaGFjaHQgZ2VoZW4/Ci0gSGFzdCBkdSBkZW4gUGVuZGVsIGFiZ2VzdGVsbHQ/Ci0gV2llIGhlaWx0IG1hbiBlaW5lIFZlcmdpZnR1bmcgZGVyIEdodWxzPwotIEljaCBoYWIgZWluZW4gQ2V0aWFhbCBnZWdlc3Nlbiwgd2FyIGRhcyBlaW4gRmVobGVyPwotIFdhcyBwYXNzaWVydCwgd2VubiBpY2ggYXVmIGRlbiBLbm9wZiBkcnVlY2tlPwotIFZvcnNpY2h0IDYwIHJlaWNodCBiZWltIERyYWNoZW4uCi0gV2VsY2hlIFZvcnNpY2h0IGJyYXVjaGUgaWNoIGJlaW0gU3RlaW5iZWlzc2VyPwotIFdhciBkaWUgSHlkcmEgaGV1dGUgc2Nob24gZGE/Ci0gV2FubiB3YXIgZGVyIGxldHp0ZSBSZXNldD8KLSBJY2ggZ2VoIHZvciwgaWhyIGtvbW10IGRhbm4gbmFjaC4KLSBJY2ggaGFiZSBkYXMgU3BpZWdlbHNjaGlsZCBuaWNodCBnZWZ1bmRlbiwgZ2VodCBlcyBhdWNoIG9obmU/Ci0gV28gaXN0IGRlciBaYXRvbmc/Ci0gd2FzIG11c3MgaWNoIG1pdCBkZW0gRHluYW1pdCBtYWNoZW4/Ci0gSWNoIGdlaCBtYWwgSW9sYW50aGVzIFNhY2hlbiByYXVzaG9sZW4KLSBXaWUga29tbWUgaWNoIGF1cyBkZXIgTXVlaGxlIHdpZWRlciByYXVzPwotIEljaCBicmF1Y2ggbm9jaCBkZW4gWlQgYmVpIGRlbiBEdW5rZWxlbGZlbgoKRnJvaGUgV2VpaG5hY2h0ZW4gd3VlbnNjaHQgSXNub2dvb2QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbW91cyBMYXN0IFdvcmRzIChCb2RvLCAyNS4gRGV6IDE5OTQsIDAxOjMyOjM3KToKSW4gZGVyIEdpbGRlOgoKR2FzdDEgc2FndDogTUVJTiBNT0RFTSAhISEKUGxvZXR6bGljaCB3ZWljaHQgYWxsZXMgTGViZW4gYXVzIEdhc3QxLgoKRnJvaGUgV2VpaG5hY2h0ZW4KICBCb2RvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpiYWVyIG9kZXIgYmFlcj8gKEVhcmVuZGlsLCAyNy4gRGV6IDE5OTQsIDE3OjAyOjIxKToKZXMgYmVnYWIgc2ljaCB6dSBlaW5lciBaZWl0IC4uLi4KCkhpZXIgZmxpZXNzdCBlaW4gcmVpc3NlbmRlciBCYWNoIGluIE9zdC1XZXN0cmljaHR1bmcgZHVyY2ggZGVuIFdhbGQsCm1hbiBrb2VubnRlIGVzIGF1Y2ggZWluZW4ga2xlaW5lbiBGbHVzcyBuZW5uZW4uCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBub3Jkb3N0ZW4uCkVpbiBXYXNjaGJhZXIuCj4gcGZlaWwgYmFlcgpFaW4gVGVkZHliYWVyIGxlYnQgZG9jaCBuaWNodCEKCgpBbHNvIGthbm4gZXMgc2VpbiBkYXMgZGVyIHRlZGR5IHZvbiBkZXIgbmliZWx1bmdlbnF1ZXN0IGRhIGV0d2FzIHVuc2F1YmVyCmdlcHJvZ2d0IGlzdD8/CgplYXJlbmRpbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVmaW5pdGlvbmVuIGVpbmVzIEh1bmdlcm5kZW4gKENhdHdlYXpsZSwgMjcuIERleiAxOTk0LCAxOToxNToxNik6CkpvZiBzYWd0OiBDYXR0eSB3YW5uIG11ZXNzZW5tZXIgZGVubiBsb3Mgd2VubiBtZXIgbm9jaCB3YXMgZXNzZW4gd29sbGVuPwpHYXRzYnkgZ3JpbnN0IEpvZiBhbi4KRHUgenVja3N0IHJhdGxvcyBtaXQgZGVuIFNjaHVsdGVybi4KSm9mIGxhZWNoZWx0IEdhdHNieSBhbi4KRHUgc2Fnc3Q6IGtlZW5lIGFobnVuZwpEdSBzYWdzdDogV0FTIGVzc2Vud2VyIGRlbm4/Cj4gSm9mIHNhZ3Q6IFdvbGxuIHdlciBiYWxkIG1hbD8KSm9mIHNhZ3Q6IHdlaXNzIG5pY2h0CkpvZiBzYWd0OiB2ZXJzY2hpZWRlbmUgTW9lZ2xpY2hrZWl0ZW4KSm9mIHNhZ3Q6IFBCIGltIEJhaG5ob2YKR2F0c2J5IHNhZ3Q6IHBhZGVyYm9ybl8/PwpKb2Ygc2FndDogUG9tbWVzQnVkZSA6KQpHYXRzYnkgc2FndDogYWgKSm9mIHNhZ3Q6IE9rb2sgRkIgOikKSm9mIHNhZ3Q6IEZyaXR0ZW5CdWRlIDopCkR1IHNhZ3N0OiBmcmVpYnVyZz8KPiBKb2Ygc2FndDogU0kKSm9mIHNhZ3Q6IFNjaG5lbGxJbWJpc3MgOikKSm9mIHNhZ3Q6IEZEWlRTCkdhdHNieSBzYWd0OiBgPwpKb2Ygc2FndDogRnJpc3NEaWNoWnVUb2RlU3RhdGlvbgoKWVRDIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFtZSBkZXMgdmVyYmVzc2VydGVuIFBlbnRpdW1zIChIaWdobGFuZGVyLCAgMy4gSmFuIDE5OTUsIDE3OjQ2OjQ1KToKRGVyClJlcGVudGl1bQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaG1tLiBrZW5udCBpaHIgZGVuID8gKFN0YWhsZG9ybiwgIDMuIEphbiAxOTk1LCAxODozMTowNCk6CldhcyA/ICBOdXIgZWluIGVpbnppZ2VyIGFybXNlbGlnZXIgV2l0eiBpbiBkaWVzZXIgUnVicmlrID8/CgpNdXNzIGljaCBhZW5kZXJuLgpBbGxlcmRpbmdzIGlzdCBtZWluIFdpdHogZGlza3JpbWluaWVyZW5kLiBVbmQgendhciBkaWVzbWFsIHp1ciBBYndlY2hzbHVuZwpmdWVyIFBvbGl6aXN0ZW4uIChoZWhlKQpBbHNvLiBTY2hhdXBsYXR6OiBMZXR6dGUgUHJ1ZWZ1bmcgZnVlciBhbmdlaGVuZGUgUG9saXppc3Rlbi4KQW53ZXNlbmRlOiBQcnVlZmVyLCBQcnVlZmxpbmcsIGFuZGVyZSBQcnVlZmxpbmdlLgoKUHJ1ZWZlcjogQWxzbyBudW4genVyIGxldHp0ZW4gRnJhZ2UsIEhlcnIgTWFpZXIuIFdpZXZpZWwgaXN0IDEwMCBtaW51cyAzID8KSGVyciBNYWllciBkZW5rdC4KSGVyciBNYWllcjogaG1tbS4uLiAgIDk1ID8KUHJ1ZWZlcjogaG1tLiBkYXMgd2FyIGVpbmRldXRpZyBmYWxzY2guClByLjogdW5kIGlocmUgYmlzaGVyaWdlbiBMZWlzdHVuZ2VuLi4uIGljaCB3ZWlzcyBuaWNodCByZWNodC4KYW5kZXJlIFBydWVmbGluZ2U6IE5PQ0ggTkUgQ0hBTkNFICEgIE5PQ0ggTkUgQ0hBTkNFICEKUHIuOiBhbHNvIGd1dC4gaWNoIHdpZWRlcmhvbGUgZGllIEZyYWdlOiB3aWV2aWVsIGlzdCAxMDAgbWludXMgMyA/CkguTS46IGFlaC4uLi4gIGhtbW1tbSAuLi4gICpkZW5rKiAgdmllbGxlaWNodCA5NSA/ClByLjogKnNldWZ6KiBuZWluIGFsbGVzIHdhcyByZWNodCBpc3QuIGJlaSBkZXIgZ2xlaWNoZW4gRnJhZ2UgendlaW1hbCBkaWUKUHIuOiBnbGVpY2hlIGZhbHNjaGUgQW50d29ydCB6dSBnZWJlbiBpc3Qgc2Nob24gemllbWxpY2ggYmxvZWQuCmFuZGVyZSBQcnVlZmxpbmdlOiBOT0NIIE5FIENIQU5DRSAhICBOT0NIIE5FIENIQU5DRSAhClByLjogc2Nob24gZ3V0LiBlaW5lIEFMTEVSTEVUWlRFIENoYW5jZSBnZWIgaWNoIGlobmVuIG5vY2guClByLjogd2lldmllbCBpc3QgMTAwIG1hbCAyID8KSC5NLjogYWVoLi4uLi4gMjAwID8KYW5kZXJlIFBydWVmbGluZ2U6IE5PQ0ggTkUgQ0hBTkNFICEgIE5PQ0ggTkUgQ0hBTkNFICEKCgogICAgICAgICAgICAgICAgICAgIFNUQUhMICA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaG1tbW0uIChTdGFobGRvcm4sICAzLiBKYW4gMTk5NSwgMTg6MzI6NDUpOgpobW1tbS4gZGEgaGFiIGljaCBkb2NoIHRhdHNhZWNobGljaCA1bWFsICJobW1tbSIgYmVpbSB2b3JpZ2VuIFdpdHoKZ2VzY2hyaWViZW4uCmhtbW1tLiBpY2ggZ2xhdWIgaWNoIG11c3MgYW4gbWVpbmVtIFdvcnRzY2hhdHogYXJiZWl0ZW4uICA7KQoKCiAgICAgICAgICAgICAgU1RBSEwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogKEFuYXRvbCwgIDUuIEphbiAxOTk1LCAxNzowMDowMSk6CgoKRGFzIG11c3MgamV0enQgc2VpbjoKKDA1LjAxLjk1LCBnZWdlbiAxNi4zNWgpCgpHdWxEdWthdCBydWZ0OiB3ZXIga29tbXQgZWlnZW50bGljaCBtb3JnZW4gYWxsZXMgaW4gZGllIHNjaG9lbnN0ZSBTdGFkdApHdWxEdWthdCBydWZ0OiBEZXV0c2NobGFuZHM/Ckh1cmluIHJ1ZnQ6IFNUUlJSUlJSSUtFIQpSdWRpcmF0dGVyIHJ1ZnQ6IFJZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlORUVFCktvdHpicm9ja2VuIHJ1ZnQ6IGR1ZXNzZWxkb3JmPwpEdXJpYW4gcnVmdDogTmFjaCBHb3NsYXI/CkFzbW9kaXMgcnVmdDogTmFjaCBLYWlzZXJzbGF1dGVybiA/ClJ5bmUgcnVmdDogUlVVVVVVVVVERElJSUlJSUlJSUlJICAhISEhISEhISEKQW5hdG9sIHJ1ZnQ6IFJZWU5FIQpBbmFraW4gcnVmdDogQmVybGluPwpTZW1pcmEgcnVmdDogS29lbG4/ClNsYXNoZXIgcnVmdDogU2FhcmJydWVja2VuPwpSdWRpcmF0dGVyIHJ1ZnQ6IEJPQ0hVTQpHdWxEdWthdCBydWZ0OiBCIE8gQyBIIFUgTSAgICBuYXR1ZXJsaWNoIQpQbG9jayBydWZ0OiBFc3NlbiAuLi4hISEhCkVkIHJ1ZnQ6IFdpZW4/ClN1cGVyTWFyaW8gcnVmdDogRFJFU0RFTj8KQ2VyZWJ1cyBydWZ0OiBCb3R0cm9wISEhIQpMYXp5TGFycyBydWZ0OiBrYXNzZWwhISEhIQpPZXR0aSBydWZ0OiBCT05OID8/PwpBcm9tYm9sb3NjaCBydWZ0OiBGbGVuc2J1cmcgPyA7KQpKYW5pY2UgcnVmdDogYmVybmF1CkR3aWdodCBydWZ0OiBzdHJpa2UsIHdlciBzcGllbHQgaGllciBiYXNlYmFsbApBc21vZGlzIHJ1ZnQ6IFJvbSA/CkdvbGRyZWdlbiBydWZ0OiBSVUhFIQpUenVpb3AgcnVmdDogRG9ybnVtZXJzaWVsID8/CkFydHJhbSBydWZ0OiBMb25kb24/Pz8KSWthcnVzIHJ1ZnQ6IEJyZXNzbGF1Ckdhc3QxIHJ1ZnQ6IEtsZWlua2xlY2tlcnNkb3JmClNlbWlyYSBydWZ0OiBIYWU/CkVjb2xpIHJ1ZnQ6IEFyZ2whISEKRHVyaW4gcnVmdDogQkVSTElOTk5OTk5OTk5OCkZhbGsgcnVmdDogTk9DSCBNRUhSIFJVSEUKS290emJyb2NrZW4gcnVmdDogcG9zZW11Y2tlbD8KQm9ja3RpbmcgcnVmdDogTXVlbnN0ZXIKRWluIEZyb3NjaCBxdWFrdDogUXVhYWFrLCBxdWFhYWFhYWssIHF1dXV1YWFhYWFhYWFhYWFhYWFhYWFhYWFrICEhCk1vc2ggcnVmdDogd2FzIGdlaHQ/Ckx1cHVzIHJ1ZnQ6IEJPTk4hCklrYXJ1cyBydWZ0OiBBZWhtLCB3byBsaWVndCBRdWFhYWFrID8KUHVtYSBydWZ0OiBGaXNjaApHdWxEdWthdCBydWZ0OiBvaCBtZWluIGdvdHQsIHdhcyBoYWIgaWNoIGF1c2dsZW9zZXQhIDspCkFzbW9kaXMgcnVmdDogUGFsbWEgZGUgTWFsbG9yY2EgPwpGYWxrIHJ1ZnQ6CkZhbGsgcnVmdDoKClJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVoaGhoaGhoaGhoaGVlZWVlZWUKRHVyaW4gcnVmdDogd28gbGllZ3QgQk9OTgpEdXJpYW4gcnVmdDogQXVmIGplZGVuIEZhbGwgbmNpaHQgQnJhdW5zY2h3ZWlnIQpBcm9tYm9sb3NjaCBydWZ0OiBTb2xsIGljaCBsb2dnZW4gPyA7KQpDZXJlYnVzIHJ1ZnQ6IFdvIGxpZWd0IHJ1aGU/PwpPZXR0aSBydWZ0OiBSVUhFIGtlbm4gaWNoIG5pY2gKTHVwdXMgcnVmdDogUHNzc3NzdCwgRmFsay4gOikKQ2VyZWJ1cyBydWZ0OiBXaW5zZW4gYW4gZGVyIFJVSEU/Pz8KQXJvbWJvbG9zY2ggcnVmdDogQm9jaHVtIGFuIGRlciBSdWhlciA/IDspClByaWFtb3MgcnVmdDogQk9OTiBpc3QgZGFzIHdhcyB6dSBlc3NlbiA/Pz8/CkVjb2xpIHJ1ZnQ6IEFtb2ViZW5ydWhyPz8KQXNtb2RpcyBydWZ0OiBCb25uIGlzdCBkb2NoIGRpZXNlIGVoZW1hbGlnZSBIYXVwdHN0YWR0LCBkaWUgbGFuZ3NhbSBhdXNzdGlyYnQKS2VybWV0IHJ1ZnQ6IHNjaC4uLi4uLiBsYWchISEhISEhISEhISEhCkZhbmRvciBydWZ0OiByaWNodGlnIGFzbW9kaXMgISEhISEgOikKWmVwaHlyIHJ1ZnQ6IGRpZSBCb25uZXIgd2FuZGVybiBhbGxlIGlucyBNRyBhdXMgOikKRmFuZG9yIHJ1ZnQ6IGRpZSB3YXIgYWJlciB2b3JoZXIgc2Nob24gdG9kICEhISEgOikKT2V0dGkgcnVmdDogQm9ubiBpcyBnZWlsICEKU2xhc2hlciBydWZ0OiBTb2xsZW4gd2lyIG5lbiBrYW5hbCBmdWVyIFNjaG9lbnN0ZSBTdGFkdCBEZXV0c2NobGFuZHMKU2xhc2hlciBydWZ0OiBlaW5yaWNodGVuPwpNb3NoIHJ1ZnQ6IGd1dGUgaWRlZSBzbGFzaGVyCgoKCiAgICBBbmF0b2wsIHZvbSB2ZXJydWZlbmVuIE11ZCB2ZXJ3dW5kZXJ0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV29scGVydGluZ2Vyd2l0emUuLi4gKEdyaW1tYm9ybiwgIDUuIEphbiAxOTk1LCAyMDowODoxNik6CgpKYSwgaGllciB3b2xsdGUgaWNoIGpldHp0IGVpZ2VudGxpY2ggZWluZSBLb3BpZSBkZXIgcnVicmlrCndvbHBlcnRpbmdlci5mYW5jbHViIHJlaW5wYXN0ZW4uIEFsbGVyZGluZ3Mga29tbWUgaWNoIG1pdCBkZW0gVGVybWluYWwgaGllcgpuaWNodCBzbyBndXQgenVyZWNodC4gU2NoYXV0IGRvY2ggbWFsIHNlbGJlciBpbiBkaWUgUnVicmlrIQoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CihTbyBlaW4gR2VzY2hyZWkgdW0gZGllc2UgWm9tYmllcy4gSWNoIGZhc3NlIGVzIG5pY2h0ISAqa29wZnNjaHVldHRlbCopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb24tV2l0eiAoQW5hdG9sLCAgNi4gSmFuIDE5OTUsIDE1OjQwOjI0KToKCk5hamEsIGVpZ2VudGxpY2ggS0VJTiBXaXR6LiBXZW5uIGRvY2gsIGRhbm4gYXVmIEtvc3RlbiB2b24gV3VyIHVuZCBIZWxsb3dlZW4uCk1hbiB2ZXJ6ZWloZSBtaXIuCihWb3JnZXNjaGljaHRlKQpHZXN0ZXJuIENhbHVtIGJlaSBBbm5lIGdldHJvZmZlbi4gRXIgd29sbHRlIEFubmUgZGF6dSBicmluZ2VuLCBHaWZ0IGluIGRlbgpWaWV6IHp1IHNjaHVldHRlbiwgd2VubiBzaWUgYW5nZWdyaWZmZW4gd2lyZC4gS2xhcHB0ZSBuaWNodC4KCihWb3JoaW4pCk9ydDogSG9semZhZWxsZXJodWV0dGUKUGVyc29uZW4gKGF1c3NlciBHYXJvbik6IENhbHVtLCBWcmFpIHVuZCBpY2guCgpEdSBzYWdzdDoga2xhcHB0IGRhcyBtaXQgQW5uZXMgVmlleiBqZXR6dCBlaWdlbnRsaWNoPwpHYXJvbiBydWZ0IG5hY2ggc2VpbmVtIEJydWRlci4KR2Fyb24gbXVybWVsdCBldHdhcyB2b24gVGFyb24uCkthaWcgaXN0IGdlcmFkZSBpbnMgU3BpZWwgZ2Vrb21tZW4uCkNhbHVtIHNhZ3Q6IGphIDopIFd1ciBoYXQgZGFtaXQgc2Nob24gc2VpbmUgRXJmYWhydW5nZW4gZ2VtYWNodCA7LSkKW1RvZDpdIFZpZXpmbGFzY2hlIGhhdCBnZXJhZGUgSGVsbG93ZWVuIHVtZ2VicmFjaHQuClZyYWkgc2FndDogd29taXQ/CkR1IGJyaWNoc3Qgdm9yIExhY2hlbiB6dXNhbW1lbi4KQ2FsdW0gc2FndDogdW5kIEhlbGxvd2VlbiBqZXR6dCBhdWNoCkNhbHVtIHNhZ3Q6IHdlbm4gbWFuIEFubmUgYW5ncmVpZnQsIHNjaHVldHRldCBzaWUgR2lmdCBpbiBkZW4gVmlleiAtIGRlcgpDYWx1bSBzYWd0OiBTcGllbGVyIHNpZWh0IGRhcyBhdWNoLgoKCkd1dGVyIFJhdCBmdWVyIGRlbiBVbWdhbmcgbWl0IEFubmU6IE1laHIgYWxzIEZsaXJ0ZW4gd2lyZCBnZWZhZWhybGljaC4uLgoKICAgICAgIEFuYXRvbCwgbGl2ZSBkYWJlaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZmVlbiAoRnJhZ2dsZSwgIDYuIEphbiAxOTk1LCAxOTowMzoxOSk6ClVuZCBpY2ggZGFjaHRlLCBGZWVuIGhhbHRlbiB6dSBkZW4gR3V0ZW46ClN0ZXJiZXIgaGF0IHNvZWJlbiBlaW5lIGhlbGRlbmhhZnRlIFRhdCB2b2xsYnJhY2h0IQpbVG9kOl0gRWluZSBGZWUgaGF0IGdlcmFkZSBTdGVyYmVyIHVtZ2VicmFjaHQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9yb24gKEFuYXRvbCwgIDYuIEphbiAxOTk1LCAyMjo1Mjo1MCk6CgpKYWphLCBpY2ggc2Nob24gd2llZGVyLi4uCgpOZXVsaWNoLCBhbHMgQXF1YXRvbGwgZ3JhZGUgR0VJU1Qgd2FyLi4uCgpFaW5lIGdpZ2FudGlzY2hlIFJpZXNlbnB5dGhvbi4KRWluIEVjaHNlbndhZWNodGVyLgpFaW4gRWNoc2Vud2FlY2h0ZXIuCkVpbiBFY2hzZW53YWVjaHRlci4KICBEaWUgUmllc2VucHl0aG9uIGdyZWlmdCBEaWNoIG1pdCB3dWV0ZW5kZW0gWmlzY2hlbiBhbi4KICBEaWUgUmllc2VucHl0aG9uIHRyaWZmdCBEaWNoIHNlaHIgaGFydC4KPkluZm8KSW0gZXdpZ2VuIExlYmVuIGdpYnQgZXMga2VpbmUgUHVua3RlLgoKICAgICBBbmF0b2wgLSB1ZWJlciBkaWUgRWlnZW5hcnRlbiBNb3JvbnMgdmVyd3VuZGVydC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpdHogKEdlb3JnLCAgOS4gSmFuIDE5OTUsIDE1OjQ5OjI4KToKV2FzIGVyZ2lidDoKCmYgLi4uIHBoaQpwIC4uLiBwc2kKayAuLi4geGkKCgogICBmcAogaSAgICArIGZrID0gMyB4CiAgZwoKCllUCiAgR2VvcmcgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZsdyAoQ2F0d2VhemxlLCAgOS4gSmFuIDE5OTUsIDE4OjQ1OjI2KToKW1ZlcmxlZ3Qgdm9uIHNjaG1hcnJuLCBUb2V0ZXIsICA4LiBKYW4gMTk5NSwgMTI6MTI6MzFdOgpVbHJpY2ggcnVmdDogd2Vpc3MgamVtYW5kIHdpZSBpY2ggdm9uIGRlbSBmbGllZ2VuZGVudGVwcGljaCBtaXQgZGVtClVscmljaCBydWZ0OiBzdW1wZmRyYWNoZW4gZXJyb2wgd2llZGVyIHJ1bnRlcmtvbW1lID8KW1RvZDpdIEVycm9sIGhhdCBnZXJhZGUgVWxyaWNoIHVtZ2VicmFjaHQuCgpEaWUgZWluZmFjaHN0ZW4gTG9lc3VuZ2VuIHNpbmQgZG9jaCBpbW1lciBub2NoIGRpZSBiZXN0ZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFnaXNjaGVzIEx1ZnRraXNzZW5ib290Pz8/IChSb25kYSwgIDkuIEphbiAxOTk1LCAyMzoxNTo1Nyk6CkRhcyBMdWZ0a2lzc2VuYm9vdCBhdWYgZGVyIFNvbm5lbmluc2VsIGlzdCBuaWNodCBudXIgdm9uIGFybWVuLApnZXNjaHVuZGVuZW4gT3JrcyBhbmdldHJpZWJlbiwgZXMgZmFlaHJ0IGF1Y2ggbWl0IE1hZ2llOgpEYXMgTEIgbGVndCBhbiBkZXIgRmV1ZXJpbnNlbCBhbi4KRGFzIExCIHJhc3QgdWViZXIgc2EgTWVlci4KRGFzIExCIGxlZ3QgYW0gU3RyYW5kIGRlciBGZXVlcmluc2VsIGFiLi4uLiBHRU5JQUxFIFRFQ0hOSUshISEKVm9uIGRlciBoZXV0aWdlbiBUZWNobmlrIGVudHp1ZWNrdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm9uZGEgPTopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXR0ZW50YXQgKFRyYW5zcmFwaWQsIDEwLiBKYW4gMTk5NSwgMTA6MDY6MjQpOgppY2ggbXVzcyBoaWVyIG1hbCBhdWYgZGFzIGVuZXJnaXNjaHRlIHByb3Rlc3RpZXJlbi4gRGllIGRpc2t1c2lvbiBvYiBtYW4Kd29scGlzIHRyZXRlbiBkYXJmIG9kZXIgbmljaHQgaXN0IG9obmVoaW4gc2Nob24gYWJzdXJkZ2VudWcgYWJlciBlaW5lbgpBbnNjaGxhZyBhdWYgZGVuIFdvbHBpLWNsdWIgenUgdmVyYW5zdGFsdGVuIGRhcyBpc3QgZGVyIEdpcGZlbCwgZGVubiBkaWUgYXJtZW4KV29scGllcyBzaW5kIGphIHNvd2llc28gc2Nob24Kdm9tIEF1c3N0ZXJiZW4gYmVkcm9odCwgYWxzIEJheWVyIG11c3MgaWNoIGFsc28gZGVtIFdvbHBpLWNsdWIgcmF0ZW4gZWluZQpBbnRpdGVycm9yZ3J1cHBlIHp1IGJpbGRlbiwgZGllIHNjaHVsZGlnZW4genUgZmluZGVuIHVuZCBkYW5uIGluIGRlciBhcmVuYSB6dQp0b2V0ZW4uCkltIHVlYnJpZ2VuIHdhZWhyZSBpY2ggZ2VybmUgbWl0Z2xpZWQgaW0gd29scGktY2x1Yiwgd2VpZ2VyZSBtaWNoIGFiZXIgZGllCldvbHBpIHF1ZXN0IHp1IG1hY2hlbiwgZGEgZWluIHpvbWJpZXdvbHBpZSBuaWNodCBlaW4gcmljaHRpZ2VyIHdvbHBpZSBpc3QuCgp0cmFuc2kKcC5zLiBEZXIgYXJ0aWtlbCBpc3QgYml0dGVyIGVybnN0IGdlbWVpbnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogYXR0ZW50YXQgKFdhcmdvbiwgMTAuIEphbiAxOTk1LCAxMDoxMDo1Nyk6CiMhIHJuPVRyYW5zcmFwaWQgcnQ9Nzg5NzI4Nzg0CkF1IGphLCBkZXIgQ2x1YiBncnVlbmRldCBkaWUgV1NHIDkgKFdvbHBpZS1TY2h1dHotR3J1cHBlKSA7KQpHaWJ0cyBlaWdlbnRsaWNoIHNjaG9uIG5lIFNlbGJzdGhpbGZlZ3J1cHBlLCBpbiBkZXIKV29scGllcHJvYmxlbWUgYXVzZGlza3V0aWVydCB3ZXJkZW4/CihOaWNodCBoYXVlbiwgYXVmIGRpZSBSdWJyaWsgYWNodGVuISA7KQogIFdhcmdvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogYXR0ZW50YXQgKEJlbGRpbiwgMTAuIEphbiAxOTk1LCAxMzowNDowMCk6CiMhIHJuPVdhcmdvbiBydD03ODk3MjkwNTcKQWxzbyBlcyB3aXJkIHNpY2ggZG9jaCBiZXN0aW1tdCBkZXIgZWluZSBvZGVyIGFuZGVyZQphbmdlaGVuZGUgb2RlciBzY2hvbiBmZXJ0aWdlIERpcGwuLVBzeWNob2xvZ2UgZmluZGVuLApkZXIgYmVyZWl0IHdhZXJlIGVpbmUgc29sY2hlIChzZWhyIHNpbm52b2xsZSkgU2VsYnN0LQpoaWxmZWdydXBwZSB6dSBsZWl0ZW4uLi4KQWxzbyBtZWxkZXQgZXVjaCBpaHIgd2Fja2VyZW4gS2FlbXBmZXIgd2lkZXIgZGllIFZlci0KendlaWZsdW5nIQoKSGlsZmxvcyBncmluc2VuZCAtLS0gQmVsZGluIDo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2l0eiAoU3RhaGxkb3JuLCAxMC4gSmFuIDE5OTUsIDE0OjE0OjMzKToKIyEgcm49R2VvcmcgcnQ9Nzg5NjYyOTY4CldpZSA/ICAgV2FzID8gIFdlciA/CkFsc28gZGllc2VuIFdpdHogdmVyc3RlaCBpY2ggbmljaHQsIEdlb3JnLi4uCgogICBTVEFITCwgZGVyIHNpY2ggZGFzIGdhbnplIHNjaG9uIG1pdCBwaGlzIHVuZCBwc2lzIGF1ZmdlemVpY2huZXQgaGF0LCBlcwphYmVyIHRyb3R6ZGVtIG5pY2h0IHZlcnN0YW5kZW4gaGF0LiAgOigKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCYXJkLVNvbmdzIChMaSwgMTIuIEphbiAxOTk1LCAxMTowMToyNik6CkF1cyBkZXIgR2xlaWNoZW4gU2VpdGUgd2llIGRpZSBTcHJ1ZWNoZToKCkhlcmUgYXJlIDEwMSBCYXJkIFNvbmdzCgpbQVVUSE9SPz8/XQoKMTogIEFDL0RDOiAiVGh1bmRlcnN0cnVjayIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9yIFByaWVzdHMgb2YgVGhvcgoyOiAgQm9uIEpvdmk6ICJMYXkgeW91ciBoYW5kcyBvbiBtZSIgICAgICAgICAgICAgICAgICAgIC1mb3IgUGFsYWRpbnMKMzogIERlZiBMZXBwYXJkOiAiR29kcyBvZiBXYXIiICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9yIEZpZ2h0ZXIvUHJpZXN0cwo0OiAgQ2hyaXMgZGUgQnVyZ2g6ICJDcnVzYWRlciIgICAgICAgICAgICAgICAgICAgICAgICAgIC1mb3IgUGFsYWRpbnMgLSBhZ2Fpbgo1OiAgUXVlZW46ICJJdCdzIGEga2luZCBvZiBNYWdpYyIgICAgICAgICAgICAgICAgICAgICAgIC1mb3IgV2l6YXJkcwo2OiAgRGlyZSBTdHJhaXRzOiAiQnJvdGhlcnMgaW4gQXJtcyIgICAgICAgICAgICAgICAgICAgIC1mb3IgRmlnaHRlcnMKNzogIExlZCBaZXBwZWxpbjogIlRoZSBCYXR0bGUgb2YgRXZlcm1vcmUiICAgICAgICAgICAgICAtZm9yIEZpZ2h0ZXJzIChnb29kCkFMKQo4OiAgUnVzaDogIlRlbXBsZXMgb2YgU3lyaW54IiAgICAgICAgICAgICAgICAgICAgICAgICAgIC1mb3IgUHJpZXN0cwo5OiAgUnVzaDogIlRoZSBUcmVlcyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1mb3IgRHJ1aWRzCjEwOiBSdXNoOiAiVGhlIE5lY3JvbWFuY2VyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWZvciAuLi4KTmVjcm9tYW5jZXJzIQoxMTogU3Rpbmc6ICJNb29uIE92ZXIgQm91cmJvbiBTdHJlZXQiICAgICAgICAgICAgICAgICAgIC1mb3IgVmFtcGlyZXMKMTI6IFN0aW5nOiAiU2hhcGUgb2YgTXkgSGVhcnQiICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9yCkRpdmluZXJzL0dhbWJsZXJzCjEzOiBNZXRhbGxpY2E6ICAiV2hlcmV2ZXIgSSBtYXkgUm9hbSIgICAgICAgICAgICAgICAgICAgLWFsbCBjbGFzc2VzCjE0OiBNZXRhbGxpY2E6ICAiU2FkIEJ1dCBUcnVlIiAgICAgICAgICAgICAgICAgICAgICAgICAgLURvcHBsZWdhbmdlcnMKMTU6IE1ldGFsbGljYTogICJOb3RoaW5nIGVsc2UgTWF0dGVycyIgICAgICAgICAgICAgICAgICAtQWxsIGNsYXNzZXMKMTY6IFF1ZWVuOiAgIlByaW5jZXMgb2YgdGhlIFVuaXZlcnNlIiAgICAgICAgICAgICAgICAgICAtZGVpdGllcwoxNzogUGF0IEJlbmF0YWVyOiAgIlRoZSBXYXJyaW9yIiAgICAgICAgICAgICAgICAgICAgICAgIC1GaWdodGVycwoxODogQWVyb3NtaXRoOiAgIkxpdmluJyBvbiB0aGUgRWRnZSIgICAgICAgICAgICAgICAgICAgIC1QaGlsb3NvcGhlcnMgYW5kCnRlYWNoZXJzCjE5OiBHbGFzcyBUaWdlcjoiRG9uJ3QgRm9yZ2V0IE1lIFdoZW4gSSdtIEdvbmUiICAgICAgICAgLUFsbCBjbGFzc2VzIGp1c3QKYmVmb3JlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVhdGgKMjA6IEFjL0RjOiAgIlRoZSBSYXpvcidzIEVkZ2UiICAgICAgICAgICAgICAgICAgICAgICAgICAtRmlnaHRlcnMKMjEuIEJsYWNrIFNhYmJhdGg6ICAiVGhlIFdpemFyZCIgICAgICAgICAgICAgICAgICAgICAgICAtVW0uLi53aXphcmRzPwoyMi4gQmxhY2sgU2FiYmF0aDogICJOLkkuQi4iICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1EZW1vbnMKMjMuIG5pbmUgaW5jaCBuYWlsczogICJ3aXNoIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUG9seW1vcnBoZWQgV2l6YXJkcz8KIDopCjI0OiBQb3JubyBmb3IgUHlyb3MgICJXZSdkIG1ha2UgZ3JlYXQgcGV0cyIgICAgICAgICAgICAgLUZhbWlsaWFycy9zbWFsbAptb25zdGVycwoyNTogSmltaSBIZW5kcml4ICJQdXJwbGUgSGF6ZSIgICAgICAgICAgICAgICAgICAgICAgICAgIC0gSWxsdXNpb25pc3RzCjI2OiBEYXZpZCBCb3dpZSAiRGlhbW9uZCBEb2dzIiAgICAgICAgICAgICAgICAgICAgICAgICAgLSBBbnlvbmUgaW4gRGFyayBTdW4KMjc6IFRoZSBQb2xpY2UgIldyYXBwZWQgQXJvdW5kIFlvdXIgRmluZ2VyIiAgICAgICAgICAgICAtIEFwcHJlbnRpY2UgbWFnZXMsCmVzcC4gIGVuY2hhbnRlcnMKMjg6IEFDL0RDICJEaXJ0eSBEZWVkcyAoRG9uZSBEaXJ0IENoZWFwKSIgICAgICAgICAgICAgICAtIFRoaWV2ZXMKMjk6IERlYWQgQ2FuIERhbmNlOiAiQ2hhbnQgb2YgdGhlIFBhbGFkaW4iICAgICAgICAgICAgICAtUGFsYWRpbnMKMzA6IERlYWQgQ2FuIERhbmNlOiAiR2FyZGVuIG9mIFplcGhpcmlhcyIgICAgICAgICAgICAgICAtRHJ1aWRzCjI3OiBCbHVlIE95c3RlciBDdWx0OiAiVmV0ZXJhbnMgb2YgdGhlIFBzeWNoaWMgV2FycyIgICAgLVBzaW9uaWNpc3RzCjI4OiBTdGluZzogIlRoZSBTb3VsIENhZ2VzIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLU5lY3JvbWFuY2VycwoyOTogV2F2ZXN0YXI6ICJUcm9sbCBWYWxsZXkiICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1EcnVpZHMsIEZhZXJpZXMsCmFjdHVhbCB0cm9sbHMKMzA6IFllczogIkFzdHJhbCBUcmF2ZWxlciIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUHNpb25pY2lzdHMsCldpemFyZHMsIFByaWVzdHMKMzE6IFllczogIkxvbmcgRGlzdGFuY2UgUnVuYXJvdW5kIiAgICAgICAgICAgICAgICAgICAgICAtY2FtcGFpZ25lcnMgIDspCjMyOiBZZXM6ICJUaGUgUmV2ZWFsaW5nIFNjaWVuY2Ugb2YgR29kIiAgICAgICAgICAgICAgICAgLVByaWVzdHMKMzM6IFllczogIlRoZSBBbmNpZW50IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtU2FnZXMKMzQ6IFllczogIlJpdHVhbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtc3BlbGxjYXN0ZXJzCjM1OiBKb24gQW5kZXJzb246ICJTb3VuZCBvdXQgdGhlIEdhbGxlb24iICAgICAgICAgICAgICAgLVNwZWxsamFtbWVyIGNhcHRhaW5zCjM2OiBSaWNrIFdha2VtYW46IGFueXRoaW5nIGZyb20gIk15dGhzIGFuZCBMZWdlbmRzIG9mIEtpbmcKICAgICAgQXJ0aHVyIGFuZCB0aGUgS25pZ2h0cyBvZiB0aGUgUm91bmQgVGFibGUiICAgICAgICAtV2FycmlvcnMsIFdpemFyZHMKMzc6IEFCV0g6ICJGaXN0IG9mIEZpcmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtRGV2YSwgQXJjaG9ucywKQXZhdGFycwozODogUXVlZW46ICJUaGUgUHJvcGhldCBTb25nIiAgICAgICAgICAgICAgICAgICAgICAgICAgIC1DbGVyaWNzCjM5OiBRdWVlbjogIk9uZSBWaXNpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLURpdmluZXJzCjQwOiBRdWVlbjogIlRoZSBGYWVyaWUgRmVsbGVyJ3MgTWFzdGVyIFN0cm9rZSIgICAgICAgICAgLURydWlkcywgRmFlcmllcwo0MTogUXVlZW46ICJPZ3JlIEJhdHRsZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1PZ3Jlcwo0MjogUXVlZW46ICJXaG8gV2FudHMgdG8gTGl2ZSBGb3JldmVyPyIgICAgICAgICAgICAgICAgIC1JbW1vcnRhbHMsIERlbWlnb2RzLApEZWl0aWVzCjQzOiBRdWVlbjogIlRoZSBNaXJhY2xlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVByaWVzdHMKNDQ6IFF1ZWVuOiAiVGhlIEhpdG1hbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtQXNzYXNzaW5zCjQ1OiBCcmlhbiBNYXk6ICJSZXN1cnJlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgLVByaWVzdHMKNDY6IEhhd2t3aW5kOiAiVGhlIEF3YWtlbmluZyIgICAgICAgICAgICAgICAgICAgICAgICAgICAtUHJpZXN0cywgY3liZXJwdW5rCnNldHRpbmcKNDc6IFRvdG86ICJIeWRyYSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtV2FycmlvcnMsIEh5ZHJhCjQ4OiBEcmVhbSBUaGVhdHJlOiAiTGl2ZSBBbm90aGVyIERheSIgICAgICAgICAgICAgICAgICAgLVJlc3VycmVjdGVkIHBlb3BsZQo0OTogU3RhcmNhc3RsZTogIkxhZHkgb2YgdGhlIExha2UiICAgICAgICAgICAgICAgICAgICAgIC1BcnRodXJpYW4gY2hhcmFjdGVycwo1MDogUGluayBGbG95ZDogIlRoZSBHbm9tZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1Hbm9tZXMKNTE6IEpvZSBTYXRyaWFuaTogIkhvcmRlcyBvZiBMb2N1c3RzIiAgICAgICAgICAgICAgICAgICAtU3VtbW9uZXJzLCBQcmllc3RzCjUyOiBNYW5vd2FyOiAiRGFyayBBdmVuZ2VyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUFudGlwYWxhZGlucwo1MzogTWFub3dhcjogIkJhdHRsZSBIeW1uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1GaWdodGVycwo1NDogTWFub3dhcjogIkRlZmVuZGVyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1QYWxhZGlucwo1NTogTWFub3dhcjogIkhvbHkgV2FyIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1TcGVjaWFsdHkKUHJpZXN0cyhlc3BlY2lhbGx5IFRlbXB1cykKNTY6IE1hbm93YXI6ICJCbGFjayBXaW5kLCBGaXJlIGFuZCBTdGVlbCIgICAgICAgICAgICAgICAtRmlnaHRlcnMKNTc6IE1hbm93YXI6ICJIYWlsIGFuZCBLaWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtRmlnaHRlcnMKNTg6IE1hbm93YXI6ICJUaGUgQ3Jvd24gYW5kIHRoZSBSaW5nIiAgICAgICAgICAgICAgICAgICAtQXpvdW4gSVYgKG9yIGFueQpLaW5ncykKNTk6IE1hbm93YXI6ICJNb3VudGFpbnMiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtRHdhcnZlcwo2MDogTWFub3dhcjogIlJpZGUgdGhlIERyYWdvbiIgICAgICAgICAgICAgICAgICAgICAgICAgIC1EcmFnb25sb3Jkcwo2MTogTWFub3dhcjogIlRoZSBQb3dlciBvZiB0aHkgU3dvcmQiICAgICAgICAgICAgICAgICAgIC1GaWdodGVycwo2MjogTWFub3dhcjogIk1hc3RlciBvZiB0aGUgV2luZCIgICAgICAgICAgICAgICAgICAgICAgIC1FbHZlcwo2MzogVmluY2UgTmVpbDogIlNpc3RlcnMgb2YgUGFpbiIgICAgICAgICAgICAgICAgICAgICAgIC1mb3IgU3BlY2lhbHR5CmNsZXJpY3Mgb2YgTG92aWF0YXIKNjQ6IEFDL0RDOiAiQmFjayBpbiBCbGFjayIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9yIFRoaWV2ZXMsIG1heWJlCkRlYXRoIFByaWVzdHMKNjU6IEFDL0RDOiAiSGlnaHdheSB0byBIZWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9yIGFueSBwbGF5ZXIgd2l0aAphICJHb29kIiBETQo2NjogTWV0YWxpY2E6ICJXb2xmIGFuZCBNYW4iICg/KSAtICAgICAgICAgICAgICAgICAgICAgIC1mb3IgTHljYW50aHJvcGVzCmV2ZXJ5d2hlcmUKNjc6IFF1ZWVuOiAiSSBXYW50IGl0IEFsbCIgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9yIHRyZWFzdXJlIGh1bnRlcnMKb3IgZ2xvcnkgc2Vla2Vyc29yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZWRvbQpmaWdodGVycy4uLiB0YWtlIHlvdXIgcGljay4KNjg6IE1lYXRsb2FmOiAgIkJhdCBPdXQgT2YgSGVsbCIgICAgICAgICAgICAgICAgICAgICAgICAtcGlzc2VkIG9mZiB2YW1waXJlcwo2OTogRWx2aXM6ICAgICAiUmV0dXJuIHRvIFNlbmRlciIgICAgICAgICAgICAgICAgICAgICAgIC1tYWdlIHcvdm9sbGV5CjcwOiBFbHZpczogICAgICJKYWlsIEhvdXNlIFJvY2siICAgICAgICAgICAgICAgICAgICAgICAgLXRoaWV2ZXMgZ3VpbGQgKGFmdGVyClBhbGFkaW4gZ2V0cyBkb25lKQo3MTogQ2hlYXAgVHJpY2sgIkkgV2FudCBZb3UgVG8gV2FudCBNZSIgICAgICAgICAgICAgICAgIC1TdWNjdWJ1cy9pbmN1YnVzCjcyOiBCaWxseSBKb2VsICJQaWFubyBNYW4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUJhcmRzIChvZmNvdXJzZSkKNzM6IEJhcnJ5IE1hbmFsb3cgIkkgd3JpdGUgdGhlIHNvbmdzIiAgICAgICAgICAgICAgICAgICAtQmFyZCB3aXRoIHZlcnkgaGlnaApvcGluaW9uIG9mIHNlbGYKNzQ6IEFDL0RDOiAgIlRoZSBSYXpvcidzIEVkZ2UiICAgICAgICAgICAgICAgICAgICAgICAgICAtRmlnaHRlcnMKNzU6ICJSaSBOYSBDcnVpbm5lIi0tQ2xhbm5hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKGFuIEVYQ0VMTEVOVCBlbHZpc2gKbW91cm5pbmcgc29uZykKNzY6IEJvYiBEeWxhbiAiU3VidGVycmFuaWFuIGhvbWVzaWNrIGJsdWVzIiAgICAgICAgICAgICAtUmFmdGFtYW4gdGhlIEdub21lCjc3OiBMZWQgWmVwcGxpbiAgIllvdSBTaG9vayBtZSIgLSAgICAgICAgICAgICAgICAgICAgICAgLUVhcnRoIEVsZW1lbnRhbHMKNzg6IExlZCBaZXBwbGluICJZb3VyIFRpbWUgaXMgR29ubmEgQ29tZSIgLSAgICAgICAgICAgIAotQ2xlcmljcy9QYWxhZGlucy9SYW5nZXJzIHdobyd2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgZXZpbAo3OTogSmVycnkgTGVlIExld2lzICJHcmVhdCBCYWxscyBvZiBGaXJlIiAtICAgICAgICAgICAgIC1NYWdlJ3MgY2FzdGluZwpGaXJlYmFsbAo4MDogR2VuZXNpczogICJSb2JiZXJ5LCBBc3NhdWx0IGFuZCBCYXR0ZXJ5IiAgICAgICAgICAgIC10aGlldmVzCjgxOiBNYXJpbGxpb246ICJHcmVuZGVsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLW5hc3R5IG1vbnN0ZXJzCjgyOiBHZW5lc2lzOiAgIldob2R1bm5pdD8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWFzc2Fzc2lucwo4MzogR2VuZXNpczogICJHdWlkZSBWb2NhbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1hbnlvbmUgcnVubmluZyBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaW5pbmcgaGFsbCEKODQ6IEdlbmVzaXM6ICAiV2F0Y2hlciBvZiB0aGUgU2tpZXM6ICAgICAgICAgICAgICAgICAgICAtZHJhZ29ucwo4NTogTWFyaWxsaW9uOiAgIkFzc2Fzc2luZyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1kbyB5b3UgbmVlZCB0bwpndWVzcz8KODY6IEJsdWUgT3lzdGVyIEN1bHQ6IFZldGVyYW4gb2YgdGhlIFBzeWNoaWMgV2FycyAgICAgICAtIFBzaW9uaWNpc3RzCjg3OiBCbHVlIE95c3RlciBDdXN0OiBJIGFtIHRoZSBzdG9ybSAgICAgICAgICAgICAgICAgICAgLSBQcmllc3Qgb2YgVGhvcgo4ODogQUMvREM6IEhpZ2h3YXkgdG8gSGVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gQW55IEV2aWwgUHJpZXN0Cjg5OiBEZWVwIFB1cnBsZTogIkZpcmViYWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWd1ZXNzIQo5MDogVTI6ICJBbGwgYWxvbmcgdGhlIHdhdGNodG93ZXIiICAgICAgICAgICAgICAgICAgICAgIC1ndWFyZHMKOTE6IFBhdHR5IFNteXRoOiAiTWFrZSBtZSBhIEJlbGl2ZXIiICAgICAgICAgICAgICAgICAgICAtcHJpZXN0cwo5MjogU2hha2VzcGVhcnMgU2lzdGVyOiAiTW9vbmNoaWxkIiAgICAgICAgICAgICAgICAgICAgIC1hbnkgd2VyZWNyZWF0dXJlCjkzOiBKZXRocm8gVHVsbDogIlNvbmdzIGZyb20gdGhlIFdvb2QiICAgICAgICAgICAgICAgICAgLURydWlkcywgQmFyZHMKOTQ6IEpldGhybyBUdWxsOiAiTG9jb21vdGl2ZSBCcmVhdGgiICAgICAgICAgICAgICAgICAgICAtRHJhZ29ucwoKCkFuZCBzb21lIG90aGVyIHNvbmdzIG9mIGludGVyZXN0CgpVMgogICAtIEkgc3RpbGwgaGF2bid0IGZvdW5kIHdoYXQgSSdtIGxvb2tpbmcgZm9yIC0gQm91bnR5IEh1bnRlcnMKICAgLSBIZWx0ZXIgU2tlbHRlciAoYWxzbyBUaGUgQmVhdGxlcykgLSBVbmRlYWQgQmFzaGVycwogICAtIFZhbiBEaWVtZW4ncyBMYW5kIC0gUGVhc2FudCBIZXJvCiAgIC0gRnJlZWRvbSBmb3IgbXkgUGVvcGxlIC0gTXVsIFNsYXZlcyBpbiBEYXJrc3VuCiAgIC0gQWNyb2JhdCAtIEFjcm9iYXRzLCBCYXJkcyBhbmQgVGhpZXZlcyB3aG8gbW9vbmxpdGUgYXMgd29ybGQtc2F2ZXJzCiAgIC0gU3VuZGF5IEJsb29keSBTdW5kYXkgLSBQcmllc3RzIG9uIHRoZSBiYXR0bGVmaWVsZAogICAtIFJlZCBMaWdodCAtIFRoaWV2ZXMgcHVzaGluZyB0aGVpciBsdWNrIGluIGNyaW1lCiAgIC0gTUxLIC0gQ2FtcGZpcmUgc29uZywgdXNlIGNhcmZ1bHkhCiAgIC0gQSBTb3J0IG9mIEhvbWVjb21pbmcgLSBQYWxhZGlucyByZXR1cm5pbmcgaG9tZSBhZnRlciBhIHF1ZXN0CiAgIC0gVGhlIFVuZm9yZ2V0YWJsZSBGaXJlIC0gIFJldGlyaW5nIEFkdmVudHVyZXJzIDotKQoKUGluayBGbG95ZAogICAtIE9uZSBvZiB0aGVzZSBEYXlzIChNZWRkbGUpIC0gVGhvc2Ugb24gYSBRdWVzdAogICAtIEFic29sdXRlbHkgQ3VydGFpbnMgKE9ic2N1cmVkLi4uKS0gYWZ0ZXIgYSBtYWpvciBiYXR0bGUKICAgLSBEb2dzIChBbmltYWxzKS0gU2xhdmVzIGFuZCBTZXJ2ZW50cwogICAtIFNpZ25zIG9mIExpZmUgKE1Mb1IpIC0gRW50ZXJpbmcgYSBzd2FtcAogICAtIERvZ3Mgb2YgV2FyICgiKS0gV2hlbiB0aGUgcGFydHkgaXMgcGVyc3VlZAogICAtIE9uIHRoZSBUdXJuaW5nIEF3YXkgKCIpLSBVc2VmdWwgaW4gRHJhZ29uIExhbmNlIHRvd25zCgpDb25jcmV0ZSBCbG9uZGUKICAgLSBibG9vZGxldHRpbmcgLSBseWNhbnRocm9wc3kgb3IgdmFtcGlyaXNtIHZpY3RpbXMKICAgLSBEYXJrZW5pbmcgb2YgdGhlIGxpZ2h0IC0gWW91IHNheSB5b3UgdXNlIFJhdmVubG9mdD8KICAgLSBpIGRvbid0IG5lZWQgYSBoZXJvIC0gSGF1Z2h0eSBOUENzCiAgIC0gdG9tb3Jyb3cgV2VuZHkgLSBQQ3MgbG92ZXIgaGFzIGJlZW4gaW5jdXJhYmx5IHBvaXNvbmVkCiAgIC0gU3VuIC0gZGF5YnJlYWssIFBDcyBzdXJ2aXZlZCB0byB3YXRjaCB0aGUgc3VuIHJpc2UgaW4gdGVycm9yCiAgIC0gUm9zZXMgR3JvdyAtIFBDcyBpbiBhIGJhcgoKTmlydmFuYQogICAtIFNtZWxscyBsaWtlIFRlZW4gU3Bpcml0IC0gQmF0dGxlcmFnZXJzIG9mIGNvdXJzZQogICAtIFBvbGx5IChhbHNvIFBvbGx5OiBOZXcgV2F2ZSkgLSBtYWdlIHdpdGggZmFtaWxpYXIKICAgLSBNb2xseSdzIExpcHMgLSBSZWJlbGlvdXMgVGhpZWYKICAgLSBTdGFpbiAtIEVnb3Rpc3RpY2FsIFdhcnJpb3IKICAgLSBJbiBCbG9vbSAtIEJhcmRzIGFib3V0IGJhcmRpYy13YW5uYS1iZSdzCiAgIC0gVGVycml0b3JpYWwgUGlzc2luZ3MgLSBDb21iYXQgd2l0aCB0ZXJyaXRvcmlhbCBjcmVhdHVyZXMKICAgICAgICh0cm9sbHMsIGdvbGVtcywgZ2lhbnRzIGVzcGVjaWFseSkKICAgLSBMaXRoaXVtIC0gUHJpZXN0cyBvZiB3YXIgZGlldGl5IGluIHByYXllciBiZWZvcmUgYmF0dGxlCiAgIC0gU29tZXRoaW5nIGluIHRoZSB3YXkgLSB0aGUgRE0gdXNlZCBhIFBVWlpMRSEgICA6KQoKU3V6YW5uZSBWZWdhCiAgIC0gQmxvb2QgbWFrZXMgbm9pc2UgLSBOT1QgVEhFIEZFTEFNRSBQQ3MgR0VUIFJBUEVEIFRIUkVBRCBBR0FJTiEKICAgLSAoSWYgeW91IHdlcmUpIGluIG15IG1vdmllIC0gQ2hhcmxhdGVucwogICAtIFJvY2sgaW4gdGhpcyBwb2NrZXQgKHNvbmcgb2YgRGF2aWQpIC0gUGFjaWZpc3QgUHJpZXN0cwogICAtIFNvbmcgb2Ygc2FuZCAtIHNlYWZhcmluZyBhZHZlbnR1cmVzCgpFbnlhCiAgIC0gQW55IG9mICdlbSAtIFByaWVzdHMKCkVuaWdtYQogICAtIFNhbWUgYXMgRW55YQoKU3RpbmcKICAgLSBJZiBJIGV2ZXIgbG9vc2UgbXkgZmFpdGggaW4geW91IC0gUHJpZXN0cwogICAtIElzbGFuZCBvZiBTb3VscyAtIFNhaWxvcnMKICAgLSBUaGUgV2lsZCBXaWxkIFNlYSAtIFNhbWUKICAgLSBTaXN0ZXIgTW9vbiAtIFByaWVzdC9CYXJkCiAgIC0gQ29uc2lkZXIgbWUgZ29uZSAtIE1hZ2UvUHNpb24gd2l0aCBEaW1lbnRpb24gRG9vcgoKVGhleSBNaWdodCBCZSBHaWFudHMKICAgLSBJc3RhbWJ1bCAtIEVudGVyaW5nIGEgZm9yZWlnbiBjaXR5CiAgIC0gTWluaW11bSBXYWdlIC0gQXQgd29yaywgZHJlYW1pbmcgYWJvdXQgcGxheWluZyBEJkQgOikKICAgLSBUaGV5IG1pZ2h0IGJlIEdpYW50cyAtIEJhcmQgZXhwbGFpbmluZyB0aG9zZSBydW1ibGluZyBzb3VuZHMKICAgLSBXaGlzdGxpbmcgaW4gdGhlIERhcmsgLSBEcm93CiAgIC0gSG90IENoYSAtIFBzaW9uIHdpdGggcHN5Y29wb3J0YXRpb24KICAgLSBOdW1iZXIgVGhyZWUgLSBCYXJkcwogICAtIEkgaG9wZSB0aGF0IEkgZ2V0IG9sZCBiZWZvcmUgSSBkaWUgLSBBZHZlbnR1cmVycycgVGhlbWUKICAgLSBEaWcgTXkgR3JhdmUgLSBDaGFvdGljIE5ldXRyYWwgQ2hhcmFjdGVycycgVGhlbWUKICAgLSBNeSBFdmlsIFR3aW4gLSBUaGlldmVzCiAgIC0gVGhlIFN0YXR1ZSBnb3QgbWUgaGlnaC0gRmFuYXRpYyBQcmllc3RzCiAgIC0gU2hlJ3MgQWN0dWFsIFNpemUgLSBTZWVpbmcgYSBzaGUtZ2lhbnQhCiAgIC0gSGFsbCBvZiBIZWFkcyAtIFZpc2l0aW5nIHRoZSBDYW5pYmFsIFNoYW1lbiA6KQogICAtIERpbm5lciBCZWxsIC0gU2xvcHB5IEVhdGVycywgQWR2ZW50dXJlcnMgdy9vIE1hbm5lcnMKICAgLSBNYW1tYWwgLSBEcnVpZHMKICAgLSBTcGlkZXIgLSBEcm93IGFuZCB0aGVpciBjYXB0aXZlczogIEhpZ2ggRWx2ZXMKICAgLSBIeXBub3Rpc3Qgb2YgTGFkaWVzIC0gU3dhc2hidWNrbGVycywgTWFnZXMsIFBzaW9ucwogICAtIElmIEkgV2Fzbid0IFNoeSAtIFRpbWlkIE1hZ2VzCgoKTWljaGFlbCBQLiBEdWZmLCBKci4gPGR1ZmZAY3MudWl1Yy5lZHU+CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJhcmQtU29uZ3MgKEJhbWJ1bGtvLCAxMi4gSmFuIDE5OTUsIDEzOjQ3OjM3KToKIyEgcm49TGkgcnQ9Nzg5OTA0ODg2CklzdCBlcyBub2V0aWcgZGllIFplaXR1bmcgbWl0IGRpZXNlbSBaZXVncyggZGFzIG5pY2h0cyBtaXQgZGVtIG11ZCB6dSB0dW4KaGF0KSB6dXp1bXVlbGxlbj8/CkJBTUJVTEtPCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJhcmQtU29uZ3MgKExpLCAxMi4gSmFuIDE5OTUsIDE0OjQ2OjQxKToKIyEgcm49QmFtYnVsa28gcnQ9Nzg5OTE0ODU3CkphLCBkZW5uIGVzIGhhdCB3YXMgbWl0IEZhbnRhc3kgenUgdHVuLiBIaWVyIHN0YW5kZW4gc2Nob24gdmllbGUgU2FjaGVuLCBkaWUKQWJzb2x1dCBuaWNodHMgbWl0IGRlbSBNVWQgenUgdHVuIGhhdHRlbi4KVWVicmlnZW5zOgoqKiBpcm9uaWUgb24gKioKVmllbGVuIERhbmsgZGVtIE1hZ2llciwgZGVyIGRpZSBBcnRpa2VsIHVlYmVyIGRpZSBaYXViZXJzcHJ1ZWNoZSBnZWxvZXNjaApoYXQsIG5hY2hkZW0gc2llIHVuZ2VmYWVociA0IFN0dW5kZW4gaW4gZGVyIFplaXR1bmcgc3RhbmRlbi4KKiogaXJvbmllIG9mZioKCkxpIChsb2VzY2h0IGRlbW5hZWNoc3QgYXVjaCBBcnRpa2VsLCBkaWUgaWhtIG5pY2h0IGdlZmFsbGVuKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJhcmQtU29uZ3MgKEd1bmR1ciwgMTIuIEphbiAxOTk1LCAxNjoxODo1OSk6CiMhIHJuPUxpIHJ0PTc4OTkxODQwMQpUb2xsZXIgYXJpa2VsdCBMaSBoYXQgbWlyIGdlZmFsbGVuCi4uLi5tYW4ga29lbm50ZSBqYSBuZSBSb2xsZW5zcGllbCBydWJyaWsgYXVmbWFjaGVuLi4KLi5kaWUga2FubiBCYW1idWxrbyBkYW5uIGFiYmVzdGVsbGVuOikKR3J1ZXNzZSB2b24gR3VuZHVyLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCYXJkLVNvbmdzIChMaSwgMTIuIEphbiAxOTk1LCAxNjoyOTo0NSk6CiMhIHJuPUd1bmR1ciBydD03ODk5MjM5MzkKSWNoIGhhYiBub2NoIG5lIGx1c3RpZ2UgTGlzdGUgbWl0IHViZXJmbHVlc3NpZ2VuIEFENkQgWmF1YmVybiwgd2VyIHNpZSB3aWxsLAptYWlsIGFuIG1pY2ghCkxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyZTUgYmFyZC1zb25ncyAoRWxyaWMsIDEyLiBKYW4gMTk5NSwgMjE6MTY6MDQpOgonbmUgTGlzdGUgbWl0IHVlYmVyZmx1ZXNzaWdlbSBBRCZELUtyYW0gd2lyZCBkb2NoIG1vbmF0bGljaCB2b24gVFNSCidyYXVzZ2VnZWJlbiwgb2RlciA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMaWViZXIgQmVzdWNoISAoQ2F0d2VhemxlLCAxMi4gSmFuIDE5OTUsIDIxOjUxOjQyKToKVGphLCBkYSBzcHJhY2ggaWNoIGRvY2ggbmV1bGljaCwgYWxzIGRhbmNlciBSTC1CZXN1Y2ggdm9uIEFyaWVuIGhhdHRlCmZvbGdlbmRlczoKCkRhbmNlciBzYWd0OiBqYSwgbWlzdCwgaW1tZXIgbWVociBpZGVlbiwgaW1tZXIgd2VuaWdlciB6ZWl0IGRhZnVlciA6KApEYW5jZXIgc2FndDogcm9taWxpIGhhdCBhdWNoIGdlcmFkZSB2aWVsIHp1IHR1bi4uLgpEYW5jZXIgc2FndDogdW5kIHZvbiBzZWxic3QgYmF1dCBzaWNoIGRhcyBuaWNodC4KRGFuY2VyIHNhZ3Q6IG1hbCBwYWFyIGp1bmdtYWdpZXIgZWluc3RlbGxlbiA7KSkpKQpEYW5jZXIgZ3JpbnN0LgpEdSBuaWNrc3QgenVzdGltbWVuZC4KRHUga2ljaGVyc3QuIChXaWUgYWxiZXJuIHZvbiBEaXIpCkRhbmNlciBzYWd0OiBhcmllbiBtZWxkZXQgc2ljaCBzY2hvbiB3aWxkIDspKSkKQXJpZW4gd2Vpc3Mgdm9uIG5peCA6KQpEdSBzYWdzdDoga2FubnN0IGphIG1hbCBuZW4gYXJ0aWtlbCBpbiBkZXIgc2VoZXJydWJyaWsgc2NocmVpYmVuCkR1IHNhZ3N0OiAnc3VjaGUganVuZ21hZ2llciAtIGJpZXRlIHNpY2hlcmVuIEFyYmVpdHNwbGF0eicKRGFuY2VyIGJyaWNodCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpCZWkgZ2VuYXVlcmVyIFVlYmVybGVndW5nIHNwaWVsdCBBcmllbiBkb2NoIGdhbnogZ2VybmUgaW0gU2FuZC4uLgpEYW5jZXIgZ3JpbnN0IGVyd2FydHVuZ3N2b2xsLgpEYW5jZXIgc2FndDogaWNoIGJlYXJiZWl0ZSBzaWUgaGV1dGUgbm9jaCBlaW4gd2VuaWcgOykpCkR1IHNhZ3N0OiBhaCBqYSA6LSkKRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpDYXR3ZWF6bGUgdmVyc3RlaHQgdmllbGUgU2FjaGVuIHp3ZWlkZXV0aWcgOi0pKQpEYW5jZXIgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkR1IGdyaW5zdCBicmVpdC4KRGFuY2VyIHNhZ3Q6IGR1IHJhdHRlIDopKSkKRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpEYW5jZXIgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCkNhdHdlYXpsZSB0cm9tbWVsdCBtaXQgZGVuIEZhZXVzdGVuIGF1ZiBkZW0gQm9kZW4uCnUga2l0emVsc3QgRGFuY2VyIGFuIHNlaW5lbSBLaW5uLgpEYW5jZXIgdmVyc3VjaHQsIHNpY2ggenUgYmVoZXJyc2NoZW4sIG11c3MgYWJlciBkb2NoIGxhY2hlbi4KRGFuY2VyIHNhZ3Q6IGhlLCBpY2ggc2l0eiBoaWVyIGluIHNjaGxhZ3JlaWNod2VpdGUgdm9uIGlociEhIDopKSkKRHUgc2Fnc3Q6IEFybWUgU2F1IDotKSkpKSkKRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMaWViZXIgQmVzdWNoISAoTGksIDEzLiBKYW4gMTk5NSwgMDg6Mjg6MzYpOgojISBybj1DYXR3ZWF6bGUgcnQ9Nzg5OTQzOTAyCkF1IHdlaSEKVW5kIGRhcyB2b24gZGlyLCBtZWluIFZhdGVyIQpJY2ggaGF0dGUgIGRpY2ggaW1tZXIgZnVlciBlaW5lbiBhbnN0YWVuZGlnZW4gTWFnaWVyIGdlaGFsdGVuIQpXYXMgd2lyZCBEZWluZSBGcmF1IGRhenUgc2FnZW4hCkxpIChncmluc3Qgc2ljaCBlaW5zKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCYXJkLVNvbmdzIChCZWxkaW4sIDEzLiBKYW4gMTk5NSwgMTA6MjM6MTEpOgojISBybj1CYW1idWxrbyBydD03ODk5MTQ4NTcKQWVoLi4uIEJBTUJVTEtPPz8/ClNjaG9uIG1hbCB3YXMgdm9uIFJvbGxlbnNwaWVsZW4gZ2Vob2VydD8gT2RlciBhdWNoIG51ciB2b24gZGVyIGd1dGVuIGFsdGVuClplaXQgZGVzIFN3b3JkJlNvcmNlcnk/IFNjaGVpbnQgamEgZWhlciBuaWNodCBzbyB6dSBzZWluLgpBdXNzZXJkZW0gd2FycyBlaWdlbnRsaWNoIHdpdHppZy4uLiB1bmQgYW5zb25zdGVuIGdpYnQgZXMgaW1tZXIgbm9jaCAncScuCldlaXRlciBzby4uIEljaCB3aWxsIHNpZSBhbGxlIC0gYWxsZSBBRCZELVdpdHplIQoKQmVsZGluIChoZWZ0aWcgZ3JpbnNlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcm9lc2NoZSAoWWFudHJvLCAxMy4gSmFuIDE5OTUsIDExOjU2OjU0KToKCkthbSBlYmVuIGF1ZiBtZWluZW4gc2NoaXJtOgoKRmlja2Zyb3NjaCB0ZWlsdCBEaXIgbWl0OiBXaWUgd2lyZCBtYW4gRnJvc2NoPwoKRGFzIGdyYWRlIEVSIHNvd2FzIGZyYWdlbiBtdXNzLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQURORD8gKEd1bmR1ciwgMTMuIEphbiAxOTk1LCAxMzozODowMCk6CkhtbW0gd2llIHdhciBkYXMgbm9jaCBtaXQgZGVuIDYgUGFsYWRpbmVuIGRpZSBhdXN6b2dlbiBkaWUgSG9lbGxlCmxlZXJ6dW1ldHplbG4/CldhcnVtIGhhYmVuIGRpZSBkYXMgd29obCBuaWNodCBnZXNjaGFmZnQ/CjopCgoKCgoKCgoKCgoKCgoKQW0gRWluZ2FuZyBzdGFuZCBlaW4gU2NoaWxkOiBGVUVSIFBBTEFESU5FIEVJTlRSSVRUIFZFUkJPVEVOISEhIQo6KSBHdW5kdXIgKGRlbiBoYWIgaWNoIHNvIG9kZXIgc28gYWVobmxpY2ggdm9uIFF1ZW5naXN0dS4uZXIgbW9lZ2UgbWlyCnZlcnplaWhlbikuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlcC4vUERTIChMaSwgMTMuIEphbiAxOTk1LCAxNDowOToyMik6CgpXYXMgd3VlcmRlIHBhc3NpZXJlbiwgd2VubiBkaWUgUmVwdWJsaWthbmVyIGJlaSBkZXIgbmFlY2hzdGVuIEJ1bmRlc3RhZ3N3YWhsCmRpZSBhYnNvbHV0ZSBNZWhyaGVpdCBiZWtvbW1lbiB3dWVyZGU/CgpSYXBpZCBXaWVuIHd1ZXJkZSBkZXV0c2NoZXIgRnVzc2JhbGxtZWlzdGVyLgoKClVuZCB3YXMgd3VlcmRlIHBhc3NpZXJlbiwgd2VubiBkaXIgUERTIGJlaSBkZXIgbmFlY2hzdGVuIEJ1bmRlc3RhZ3N3YWhsCmRpZSBhYnNvbHV0ZSBNZWhyaGVpdCBiZWtvbW1lbiB3dWVyZGU/CgpCZW56aW4gd3VlcmRlIGJpbGxpZ2VyICAgIC0gICB1bSA1IEtvcGVrZW4gcHJvIExpdGVyLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkR1bW0gZ2VsYXVmZW4gKENlbGViZGlsLCAxNi4gSmFuIDE5OTUsIDAzOjIzOjM4KToKRm9sZ2VuZGVzIHBhc3NpZXJ0ZSBncmFkZSAodW5nZXNjaG5pdHRlbikKCkNhcmFkaHJhcyBwcm9waGV6ZWl0IGVyIGdlaHQgbmFjaCBTdWVkZW4uCltNb2VyZGVyOkdlaXN0IGVpbmVzIFdhZWNodGVyc10gV2llIHNvbGwgZGFzIG5vY2ggZW5kZW4sIENhcmFkaHJhcz8KW1RvZDpdIEVpbiBXYWVjaHRlciBoYXQgZ2VyYWRlIENhcmFkaHJhcyB1bWdlYnJhY2h0LgoKVGphLCBkZXIgaXN0IHZpZWxsZWljaHQgYmxvZWQgOikgV3Vzc3RlIGljaCBkb2NoIHNjaG9uIGltbWVyLgoKICAgICAgICBncmluc2VuZCAgICAgICAgIENhcmFkLi4uIHVwcHMsIENlbGViZGlsIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpab21iaWVzIChCb3JiYXJhZCwgMTcuIEphbiAxOTk1LCAxMTozNzoyMSk6CkhpZXIgbm9jaCBlaW5lIFJlYWt0aW9uc3RhYmVsbGUgZnVlciBab21iaWVzIGluIEFEJkQKClc2ICAgICAgICAgICBSZWFrdGlvbgoxICAgICAgICAgICAgIEthbHRlcyBTdGFycmVuCjIgICAgICAgICAgICBFbW90aW9uc2xvc3NlcyBTdGFycmVuCjMgICAgICAgICAgICAgUmVndW5nc2xvc2VzIFN0YXJyZW4KNCAgICAgICAgICAgICBUZWlsbmFobXNsb3NlcyBTdGFycmVuCjUgICAgICAgICAgICAgICBHZWlzdGxvc2VzIFN0YXJyZW4KNiAgICAgICAgICAgICBTYWJiZXJuIHVuZCBTdG9laG5lbgoKCgpWaWVsIFNwYXNzIGRhbWl0LAoKQm9yYmFyYWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJpZXNlbiAoQm9yYmFyYWQsIDIwLiBKYW4gMTk5NSwgMTA6NTE6MzkpOgpOb2NoIGVpbmUgVGFiZWxsZQoKRXJnZWJuaXNhdXN3dWVyZmVsdGFiZWxsZSBmdWVyIGVpbmVuIFdldHRrYW1wZiBpbSBBcm1kcnVlY2tlbiB6d2lzY2hlbiBlaW5lbQpSaWVzZW4gdW5kIGVpbmVtIE1lbnNjaGVuLgoKVzYgICAgICAgRXJnZWJuaXMKMSAgICAgICAgUmllc2UgZ2V3aW5udDogTWVuc2NoIGhhdCBzaWNoIGRpZSBIYW5kIHZlcnN0YXVjaHQKMiAgICAgICAgUmllc2UgZ2V3aW5udDogRGVyIE1lbnNjaCBoYXQgc2ljaCAxVzQgRmluZ2VyIGdlYnJvY2hlbgozICAgICAgICBSaWVzZSBnZXdpbm50OiBLb21wbGV0dGUgSGFuZCBkZXMgTWVuc2NoZW4gZ2Vicm9jaGVuLgo0ICAgICAgICAgUmllc2UgZ2V3aW5udDogSGFuZCBkZXMgTWVuc2NoZW4gemVycXVldHNjaHQKNSAgICAgICAgIFJpZXNlIGdld2lubnQ6IEhhbmQgZGVzIE1lbnNjaGVuIGFiZ2VyaXNzZW4KNiAgICAgICAgIE1lbnNjaCBnZXdpbm50OiBCZWlkZSBBcm1lIGRlcyBNZW5zY2hlbiBhdXNnZXJpc3NlbiAoUmllc2VuIHNpbmQKU2NobGVjaHRlIFZlcmxpZXJlciEpCgoKClZpZWwgU3Bhc3MgZGFtaXQsCgpCb3JiYXJhZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKIChRdWVuZ2lzdHUsIDIwLiBKYW4gMTk5NSwgMTY6NTY6MjUpOgoKRGF0YSB2dSAtCgogICAgICAgICAgVGhlIGZlZWxpbmcgeW91IGFscmVhZHkgZml4ZWQgdGhpcyBidWcuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2VoZXIsIE1hZ2llciB1bmQgaWhyZSBGZWhsZXJtZWxkdW5nZW4gOikgKEpvZiwgMjAuIEphbiAxOTk1LCAyMDo0Mjo1OSk6CkFuYWtpbiAgICAgOiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFuZ3VzICAgICAgOiBLYXVmIERpY2ggbWFsIFR1ZXRlIERldXRzY2guLi4gaGF0IG1pY2ggYXVjaCBnZWhlbGZ0ISA6KQpBbnRoZWEgICAgIDogSGFlaD8KQXJhbWVhICAgICA6IER1bXBmYmFja2UhISEKQXNtb2RpcyAgICA6IERhbmNlciBpc3QgU2NodWxkIQpCYW1idWxrbyAgIDogTmVpbiBCYW1idWxrbywgZGFzIHNvbGx0ZW4gd2lyIGpldHp0IG1hbCBhdXNkaXNrdXRpZXJlbi4uLi4KQmVsZGluICAgICA6IE1hY2hgcyBub2NoIGVpbm1hbCBTYW0hCkJsZWVsdW1wZSAgOiBOb2VlZWVlIHNvIGplaHQgIGRhdCBuaWNodCEhIQpCbG9vZGdvcmUgIDogTGVpZGVyIHZlcmxvcmVuLgpCb2RvICAgICAgIDogSGFlID8KQm9uZ28gICAgICA6IE5lbmUuLi4gU28gbmljaHQgbWVpbiBKdW5nZS4KQ2FtcGlubyAgICA6IEFlZ3lwdGVuID8/PyAxMDAgTWFyayA/Pz8gV2FzIGlzIGxvcyA/Pz8KQ2F0d2VhemxlICA6IEtlbm5pY2huaWNoLCB3aWxsaWNobmljaCwgbWFjaGljaG5pY2ggLi4uCkNpZmVyICAgICAgOiBNYW5uLCBiaXN0IER1IGJlc2NoZXVlcnQhCkRhbmNlciAgICAgOiB8PwpEZWF0aCAgICAgIDogU3ludGF4IEVycm9yCkRyaXp6dCAgICAgOiBXYXNzbiBkYXMgZnVlcm4gQmVmZWhsID8/CkVhcmVuZGlsICAgOiBOYSBzb3dhcywgd2llIGthbm4gZGVubiBkYXMgc2Vpbj8KRW5neXd1Y2sgICA6IEpvZiBpc3QgZG9vZiEKRnJldW5kICAgICA6IERhcyByYWZmJyBpY2ggbmljaHQhCkdhdHNieSAgICAgOiBTY2hhZmZlbiEKR3JpbW1ib3JuICA6IEhlaiwgd2lyIHNpbmQgaGllciBkb2NoIG5pY2h0IGluIEF2YWxvbiEKR3VsZHVrYXQgICA6IER1IERvZXNwYWRkZWwKR3VuZHVyICAgICA6IGh1cmdsPwpHdXlicnVzaCAgIDogbml4IGRhIQpIdXJpbiAgICAgIDogc29ycnkgPwpLaG9ybmUgICAgIDogVG9ldGVyIGlzdCBzY2h1bGQuCktpZXNlbHN0ZWluOiBEaWUgSHlkcmEgdGVpbHQgRGlyIG1pdDogRGFzIHdhciBGQUxTQ0ghCktpcmsgICAgICAgOiBLZW5uaWNobmljaCAuLi4KS2xpbmdlICAgICA6IEVpbiBNYWdpZXIga29tbXQgYW5nZXJhbm50IHVuZCBlbnRzY2h1bGRpZ3Qgc2ljaCB1bnRlcnRhZW5pZ3N0CmZ1ZXIKIGRpZSBVbnp1bGFlbmdsaWNoa2VpdCBzZWluZXIgRmFlaGlna2VpdGVuLCBzZWluZXIgTWl0bWFnaWVyIHVuZCBkZXMgZ2FuemVuClN5c3QKZW1zLiBOYWNoZGVtIGVyIG1laHJmYWNoIG1pdCBkZXIgU3Rpcm4gYXVmIGRlbiBCb2RlbiBnZXNjaGxhZ2VuIGhhdCBrcmllY2h0CmVyIHUKbnRlcnd1ZXJmaWcgdm9uIGhpbm5lbi4KTGkgICAgICAgICA6IElESU9UISBEQVMgV0FSIEZBTFNDSCEKTWF0ZWVzZSAgICA6IFdoYXQ/Ck1lcGhpc3RvICAgOiBTbyBuaWNodCwgTWVwaC4uLgpQaWxncmltICAgIDogISEhIEtlbm4gaWNoIG5pY2h0LCBtYWNoIGljaCBuaWNodCAhISEKUXVhc2ltb2RvICA6IElzJyBuaWNoJyBkcmluLCBKdW5nZSEKUXVlbmdpc3R1ICA6IFp3ZWkgYnJhdW5lIEF1Z2VuIHNjaGF1ZW4gRGljaCBuZXR0IGFuLgpSYXkgICAgICAgIDogRGllIEh5ZHJhIHNhZ3Q6IFNvIG5pY2h0IQpSb2NodXMgICAgIDogSGFlPyBXYXMgd2lsbHNlPz8/ClJvbWlsaSAgICAgOiBEYXMgZ2VlZWVodCBuaWNodApSdWRpcmF0dGVyIDogVGphLCBkYW5lYmVuZ2VyYXR0ZXJ0LgpSdW1hdGEgICAgIDogQWVoIHdhdHQ/ClJ4dGVjaCAgICAgOiBrdWVzc2NoZW4KUnluZSAgICAgICA6IEJJRERBRSA/Pz8/ClNjaGVsbSAgICAgOiBXaWUgbHVzdGlnISBTbyBnZWh0IGVzIGhpZXIgbmljaHQhClNldGhvcyAgICAgOiBOYSBkYXMgd2FyIHdvaGwgbml4LCBEdSBQYXBwbmFzZS4KU21hdWcgICAgICA6IFNhZyBkYXMgbm9jaG1hbC4uLgpTbm9va2VyICAgIDogTGllYmVyIEtsYXVzLCBiaXR0ZSBnaWIgd2FzIGFuZGVyZXMgZWluLgpTdGFobGRvcm4gIDogV2llID8gV2FzID8gV2VyID8KU3RldmUgICAgICA6IEJsb2VkZSBNYWdpZXIhClN5c29wICAgICAgOiBIYWVoPwpUb2V0ZXIgICAgIDogRHUgYmlzdCBqZXR6dCBzZWl0IDAgU2VrdW5kZW4gaWRsZS4KVG9zcyAgICAgICA6IEZ1ZXIgZWluZW4gWndlaXRpIG5pY2h0IHNjaGxlY2h0LCBhYmVyIHByb2JpZXIgbWFsIHdhcyBhbmRlcmVzCjotKQpUenVpb3AgICAgIDogVHp1aW9wLCBtYWNoIGRvY2ggbmljaHQgaW1tZXIgc28gZWluZW4gU2NoZWlzcyAhClZpcGVyICAgICAgOiBibGFibGEKVnJhaSAgICAgICA6IFR1IG5pY2h0IHNvIGVpbiBNaXN0IGlucyBHZXJhZXQgcmVpbiEKV2FyZ29uICAgICA6IFdhdHQsIHdhdHQsIHdhdHQ/Cld1ciAgICAgICAgOiBIdWNoISB3YXMgbWFjaHN0IERVIGRlbm4gZGE/CllhbnRybyAgICAgOiBEZW5rIGVyc3Qgbm9jaG1hbCBuYWNoLCBZYW50cm8hCllvZ3NvdGhvdGggOiBJYWUhIFNodWIgTmlnZ3VyYXRoIQpaYXJkb3ogICAgIDogSGV5ISBOaWNodCBzbm9vcGVuIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiAoQWNyaW1vbiwgMjEuIEphbiAxOTk1LCAxNzo0Mjo1NCk6CkdyYWQgZWJlbiBnZXNlaGVuOgoKKEd1eWJydXNoIHN0ZWh0IG5lYmVuIG1pci4pCkd1eWJydXNoIHJ1ZnQ6IFNjaHJVcGZpIQpFaW4gUmFwdG9yLUJhYnkgc3ByaW5ndCBoZXJlaW4uCgpFdWVyIEdyb2VyCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTZWhlciwgTWFnaWVyIHVuZCBpaHJlIEZlaGxlcm1lbGR1bmdlbiA6KSAoU3lzb3AsIDIyLiBKYW4gMTk5NSwgMDA6MTY6NDEpOgojISBybj1Kb2YgcnQ9NzkwNjMwOTc5CkxpZWJlciBKb2YsCkR1IGhhc3QgbWVpbmUgRmVobGVybWVsZHVuZyBvaG5lIHVyaGViZXJyZWNodGxpY2hlIEdlbmVobWlndW5nCnZlcm9lZmZlbnRsaWNodC4gR2VnZW4gWmFobHVuZyB2b24gMTAwLC0tIERNIGF1ZiBkYXMgS29udG8gZGVyIEdFTUEKKEdlc2VsbHNjaGFmdCB6dXIgRXJwcmVzc3VuZyB2b24gTVVELUFuZ2Vob2VyaWdlbikKYmluIGljaCBqZWRvY2ggYmVyZWl0LCBhdWYgZWluZSBBbnplaWdlIHp1IHZlcnppY2h0ZW4gLi4uCi0tIFN5c29wIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgYXVzIGRlciBXZWx0IGRlciBDb21peCAoR3JpbW1ib3JuLCAyMi4gSmFuIDE5OTUsIDE3OjA1OjI4KToKCkRpZSBFbHRlcm4gdm9uIEZpeCB1bmQgRm94aSBzaW5kIGpldHp0IGF1ZmdldGF1Y2h0IQpTaWUgaGVpc3NlbiBQYXhpIHVuZCBGaXhpLi4uCgpHcmltbWJvcm4uIFdhcyBzb2xsIGljaCBzb25zdCB0dW4gYmVpbSBXYXJ0ZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNlaGVyLCBNYWdpZXIgdW5kIGlocmUgRmVobGVybWVsZHVuZ2VuIDopIChDYXJhZGhyYXMsIDI0LiBKYW4gMTk5NSwgMTc6Mjk6MTgpOgojISBybj1TeXNvcCBydD03OTA3MzAyMDEKQWgsIGRpZSBMaXN0ZSBrb2VubmVuIHdpciBnbGVpY2ggbm9jaCBlcndlaXRlcm4gOikKSGFiIG1pciBqZXR6dCBhdWNoIGVpbmUgZ2VzZXR6dC4gVm9yaGVyIHdhciBlczoKIkRhcyBrb2VubnRlIGphIHNlbGJzdCBDZWxlYmRpbCBiZXNzZXIsIER1IFRyb3R0ZWwhISIKCkRhcyB3YXIgbWlyIGFsc28genUgbmVydmlnLCBhbHNvIGJpbiBpY2ggenVyIFdhaHJoZWl0IHVlYmVyZ2VnYW5nZW46CgoiQ29ubmVjdGlvbiBjbG9zZWQgYnkgZm9yZWlnbiBob3N0LgogSGF0IERhbmNlciB3aWVkZXIgYW4gZGVuIFB5cmFtaWRlbiBydW1nZXNwaWVsdCEiCgogICAgICAgRWluZW4gQmV0dHZvcmxlZ2VyIGZyZWNoIGFuZ3JpbnNlbmQKCiAgICAgICAgICAgICBDYXJhZGhyYXMgZGVyIGV3aWdlIFByb3BoZXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVz8gKFB1bWEsIDI0LiBKYW4gMTk5NSwgMTc6NTE6MDYpOgpHcmFkIGdlaG9lcnQ6CltBYmVudGV1ZXI6Tm9yd2VnZXJdIFdpZSBsb2VzY2h0IG1hbiBzZWluZW4gWmF1YmVyc3RhYj8KW1RvZDpFdHdhcyBHZWhlaW1uaXN2b2xsZXMgdW5kIFVuYmVrYW5udGVzIGhhdCBnZXJhZGUgTm9yd2VnZXIgdW1nZWJyYWNodC5dCgo/Pz8gOi0pCgpQVU1BCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiAoU2VtaXJhLCAyNC4gSmFuIDE5OTUsIDE5OjUzOjQyKToKRXJnYWVuenVuZyBpbiBzYWNoZW4gZmVobGVybWVsZHVuZ2VuClNlbWlyYSBoYXQgamV0enQgYXVjaCBuZSBmZWhsZXJtZWxkdW5nOgoKIiBUb3JmZHVlbmcga251ZGRlbHQgZGljaCBhdXMgZGVyIEZlcm5lIC0gZGFzIGthbm4gbnVyIGVpbiBGZWhsZXIgc2VpbiEiCgo6LSkpKSkpCgoqa251ZGRlbCAoZmFzdCkgYWxsZQoKRXVyZSBLbnVkZGVsbWF1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU2VoZXIsIE1hZ2llciB1bmQgaWhyZSBGZWhsZXJtZWxkdW5nZW4gOikgKENhcmFkaHJhcywgMjQuIEphbiAxOTk1LCAyMzoxNjozNCk6CiMhIHJuPUNhcmFkaHJhcyBydD03OTA5NjQ5NTgKUmVha3Rpb24gdm9uIERhbmNlciwgYWxzIGljaCBpaG4gc25vb3BlbiBsaWVzOgoKRGFuY2VyQE1vcmdlbkdyYXVlbiByZWRldCB6dSBkaXI6IGlzdCBkYXMgamV0enQgbmUgYWxsZ2VtZWluZQogICAgICBmZWhsZXJtZWxkdW5nPz8/CgogOi0pKSkpKSkKICAgICAgICAgICBzb3JyeSBEYW5jZXIsIGNvdWxkbid0IHJlc2lzdAoKICAgICAgICAgQ2FyYWRocmFzIGRlciBld2lnIGFtdWVzaWVydGUgUHJvcGhldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXJlbiAoUm9jaHVzLCAyNS4gSmFuIDE5OTUsIDEyOjQ0OjQzKToKQXVzIGRlLnRhbGsuam9rZXM6CgpXaWV2aWVsZSBJcmVuIHNpbmQgbm9ldGlnLCB1bSBlaW5lIEJpcm5lIGluIGlocmUgRmFzc3VuZyB6dSBzY2hyYXViZW4/Clp3ZWkuIEVpbmVyIGhhZWx0IGRpZSBCaXJuZSBmZXN0LCB1bmQgZGVyIGFuZGVyZSBzYWV1ZnQsIGJpcyBzaWNoIGRhcwpaaW1tZXIgZHJlaHQuCgpWaWVsbGVpY2h0IGVyc2V0emVuIHdpciBkaWUgSXJlbiBkdXJjaCBlaW5lIGFuZGVyZSBCZXZvZWxrZXJ1bmdzZ3J1cHBlOgpEZXV0c2NoZSwgU3R1ZGVudGRlbiwgKkZEUC1CdW5kZXN0YWdzYWJnZW9yZG5ldGUqIGV0Yy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJcmVuIChBcmFueWEsIDI1LiBKYW4gMTk5NSwgMTU6MDQ6MDkpOgojISBybj1Sb2NodXMgcnQ9NzkxMDM0MjgzCkljaCBrZW5uIGRlbiBzbyAoZGFubiBrbGFwcHQgZXIgZnVlciBJcmVuKQoKWndlaTogRWluZXIgc2NocmF1YnQgdW5kIGRlciBhbmRlcmUgbWFjaHQgZWluIExpZWQgZGFydWViZXIuCgpBcmFueWEsCiAgICAgICBtaXQgS2xlZWJsYXR0IGltIEhhYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtsZWlud2VpY2ggKEZyYWdnbGUsIDI1LiBKYW4gMTk5NSwgMTU6Mzk6MTEpOgpVbmQgd2lldmllbGUgTWljcm9zb2Z0LVByb2dyYW1taWVyZXIgYnJhdWNodCBtYW4sIHVtIGVpbmUgQmlybmUgaW4gZGllCkZhc3N1bmcgenUgZHJlaGVuPwoKCgoKCktlaW5lbiEgRHVua2VsaGVpdCB3aXJkIGVpbmZhY2ggenVtIFN0YW5kYXJkIGVya2xhZXJ0IC4uLgoKRnJhZ2dsZSAobXVzcyBzaWNoIGRlbW5hZWNoc3Qgd29obCBlaW5lbiA1ODUuOTk5OTk5OTdlciB6dWxlZ2VuICpzZXVmeiopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2FtaWthemUgKFNtYXVnLCAyNS4gSmFuIDE5OTUsIDE2OjM5OjA2KToKaGkKCmhhYnQgaWhyIHNjaG9uIHZvbiBkZW0gcnVzc2lzY2hlbiBrYW1pa2F6ZS1waWxvdGVuIGdlaG9lcnQ/CgplciBoYXQgNDggZXJmbG9ncmVpY2hlIG1pc3Npb25lbiBnZWZsb2dlbi4gOi0pCgpzbWF1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgKEpvZiwgMjUuIEphbiAxOTk1LCAyMzo0OTozOSk6Ck9ldHRpIHNhZ3Q6IE9oaCBpY2ggYmluIGphIHNvbyB0b2xsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVsaWNoIGltIG1nIChDeW1vbmssIDI2LiBKYW4gMTk5NSwgMTc6MDQ6MDkpOgo+d2lyZiBraXNzZW4gbmFjaCBoYXVzCgpEdSBzY2htZWlzc3QgZWluIEtpc3NlbiBuYWNoIGVpbmVtIEhhdXMuCkVpbiBIYXVzIHZlcnN1Y2h0IHdlZ3p1cmVubmVuLCBkb2NoIGRhcyBraXNzZW4gdHJpZmZ0IGRlbiBIaW50ZXJrb3BmIQoKCmJlc3NlciB3YWVyZSBub2NoIGdld2VzZW4sIHdlbm4gaWNoIGRhcyBoYXVzIG5pY2h0IGdldHJvZmZlbiBoYWV0dGUuIDopKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCj8/PyAoQ2FpbmUsIDI2LiBKYW4gMTk5NSwgMTk6NTc6NTkpOgpJY2ggYmluIGphIG5vY2ggbmV1IGhpZXIuLi4uCkFiZXIgaWNoIGRhY2h0ZSBkYXMgd2FlciBlaW4gTXVkIG1pdCBGYW50YXN5LUhpbnRlcmdydW5kPyBPZGVyIHdlbmlnc3RlbnMKdGVpbHdlaXNlPwpBYmVyIFNPIGtyYXNzIGhhdHRlIGljaCBlcyBtaXIgbmljaHQgdm9yZ2VzdGVsbHQ6CkR1cmluIGxvZXN0IGRpZSBTcHJ1bmdkdWVzZW4gYXVzIHVuZCBzcHJpbmd0IG5hY2ggT3N0ZW4uCkR1cmluIHN0YW1wZnQgaW4gc2VpbmVtIE1hcm9kZXVyLUlJIGhlcmVpbi4KRHVyaW4gbG9lc3QgZGllIFNwcnVuZ2R1ZXNlbiBhdXMgdW5kIHNwcmluZ3QgbmFjaCBXZXN0ZW4uIwpGYXppdDogQmF0dGxlVGVjaCBoYWVsdCBhdWNoIGhpZXIgRWluenVnIC0gU2NoKioqKiBTeXN0ZW0gdWVicmlnZW5zIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTpuZXVsaWNoIGluIG1nIChLZXRvcywgMjYuIEphbiAxOTk1LCAyMTozNzo1NSk6Cj4gd2lyZiBraXNzZW4gbmFjaCBoYXVzCkR1IHNjaG1laXNzdCBlaW4gS2lzc2VuIG5hY2ggZWluZW0gSGF1cy4KZWluIEhhdXMgdmVyc3VjaHQgd2VnenVyZW5uZW4sIGRvY2ggZGFzIEtpc3NlbiB0cmlmZnQgZGVuIEhpbnRlcmtvcGYuCj4gdW50IGhhdXMKRWluIGh1ZWJzY2hlcyBrbGVpbmVzIEhhdXMsIGVyYmF1dCBhdXMgc2VsdHNhbSBmbGF1c2NoaWdlbiBncmF1ZW4gU3RlaW5lbi4KRXMgaGF0IHZpZWxlIEZlbnN0ZXIgdW5kIGVpbmVuIHd1bmRlcnNjaG9lbmVuIFdpbnRlcmdhcnRlbiBtaXQgQmxpY2sgYXVmCmRlbiBXYXNzZXJmYWxsLgpEaWUgRWluZ2FuZ3N0dWVyIGlzdCBhYmdlc2NobG9zc2VuLgo+IGJldHJpdHQgaGF1cwpEYXMgSGF1cyB2b24gV29lbGtjaGVuIGlzdCB6dS4KPiB4bG9vayBoYXVzCkNvbnRlbnQ6CiAxLiBOaWNodHMgYmVzb25kZXJlcyAuLi4uLi4uLi4uLi4uLi4uIC4uIFt+Ym9pbmcvb2JqL2tpc3NlbiM4MzgzOF0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJlOiA/Pz8gKEFyb21ib2xvc2NoLCAyNy4gSmFuIDE5OTUsIDA5OjQ4OjI3KToKRGVyIG5hZWNoc3RlLGRlciB3YXMgZ2VnZW4gQmF0dGxlVGVjaCBzYWd0IHdpcmQgbWVpbmVuIEJlcnplcmtlcgprZW5uZW5sZXJuZW4uCjotKSBVbmQgZnVlciBhbGxlIGRpZSwgZGllIGRhcyBCcmV0dHNwaWVsIG5pY2h0IHNvIGd1dCBmaW5kZW4sIHZlcnN1Y2h0IG1hbAp0ZWxuZXQgYnRlY2gubmV0YXhzLmNvbSAzMDU2IDotKQoKQXJvbWJvbG9zY2ggYWxpYXMgVmljdG9yIFN0ZWluZXItRGF2aW9uIDstKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiByZTogPz8/IChRdWFzaW1vZG8sIDI3LiBKYW4gMTk5NSwgMTQ6NTI6MTYpOgojISBybj1Bcm9tYm9sb3NjaCBydD03OTExOTY1MDcKV28gd2lyIGdlcmFkZSBiZWltIFRoZW1hIHNpbmQ6CgpIYXQgamVtYW5kZSBtZWluZSAyMGVyLUF1dG9rYW5vbmUgZ2VzZWhlbj8KCk1haWxzIGJpdHRlIGFuClF1YXNpbW9kbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmU6ID8/PyAoQXJvbWJvbG9zY2gsIDI3LiBKYW4gMTk5NSwgMTQ6NTQ6NTApOgpRdWFzaW1vZG8uLi51bSBlcyBtYWwgaW0gT3JpZ2luYWwgenUgc2FnZW4gOgpUaGUgMzA1MCB2ZXJzaW9uIG9mIHRoZSBIdW5jaGJhY2sgc3Vja3MgQklHIHRpbWUgOy0pCkFyb21ib2xvc2NoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZWF0aHdpbmdzIHNwZWNpYWwgKEFuYXRvbCwgMjcuIEphbiAxOTk1LCAxNjowMDozOSk6CgpTdWNoZSBndXRlbiBLaWxsZXIKCkFuYXRvbCAoc29uc3Qgbml4KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXUgd2VpYSA6KSAoQ2FyYWRocmFzLCAyNy4gSmFuIDE5OTUsIDIxOjA2OjEzKToKR3J1ZW5lIFN0cmFobGVuIGdlaGVuIHZvbSBTYWJiZXJhbXVsZXR0IGF1cyB1bmQgdHJlZmZlbiBEZWluZSBBdWdlbi4KRHUga2FubnN0IHdpZWRlciBzZWhlbi4KPiBsCkVzIGlzdCB6dSBkdW5rZWwgIQo+IER1IGhhc3QgamV0enQgNjEgTGViZW5zcHVua3RlIHVuZCAxMiBNYWdpZXB1bmt0ZS4KbGkKRHUga2FubnN0IHdpZWRlciBldHdhcyBzZWhlbi4KCiAgICAqZ3J1ZWJlbCogICAgICAqa2ljaGVyKiBEdW1taWR1bW1tIDopKQoKICAgICAgQ2FyYWRocmFzIGRlciBhbGJlcm5lIFByb3BoZXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthbnpsZXItRW5nbGlzY2ggKEtyZXRlaywgMjkuIEphbiAxOTk1LCAwODowNDowMSk6CkFuZ2VibGljaGVyIExpdmUtTWl0c2Nobml0dCB1bnNlcmVyIGdlc2NoYWV0enRlbiBWZXJmYXNzdW5nc3NjaHVldHplcgphdXMgZGVtIERvbWl6aWwgZGVzIGdlc2NoYWV0enRlbiBEci4gaC5jLiBIZWxtdXQgS29obCwgRGF0dW0gdW5iZWthbm50OgoKSGFubmVsb3JlOiAiSGVsbXV0LCBMaWVibGluZywgd29oaW4gZ2VodCBkZW5uIGRlaW5lIG1vcmdpZ2UgUmVpc2U/IgoKSGVsbXV0OiAiTmFjaCBFbmdsYW5kLiIKCkhhbm5lbG9yZTogIkRhbm4gdWViZW4gd2lyIG1hbCBkZW4gZXJzdGVuIGVuZ2xpc2NoZW4gVWViZXJicnVlY2t1bmdzc2F0egplaW4sIGRlbiBSZXN0IG1hY2h0IGRlciBEb2xtZXRzY2hlci4gSW1tZXIgZGFyYW4gZGVua2VuOiBCZSAnbG9ja2VyJy4KQWxzbzoKSSBBTSBTTyBHTEFEIFRIQVQgV0UgRklOQUxMWSBDT01FIFRPR0VUSEVSIEFUIFRISVMgSU1QT1JUQU5UIERBWS4iCgpIZWxtdXQ6ICJNZXJrZSBpY2ggbWlyIG5pZSEiCgpIYW5uZWxvcmU6ICJEdSBtdXNzdCBkaXIgU3RhYXRzbWFubnNzdGVnZSBiYXVlbi4iCgpIZWxtdXQ6ICJXYXMsIHp1bSBUZXVmZWwsIHNvbGwgaWNoIG1pciBiYXVlbj8iCgpIYW5uZWxvcmU6ICJOYSwgYWxzbyBpY2ggd29sbHRlIGViZW4gbmljaHQgJ0VzZWxzYnJ1ZWNrZW4nIHNhZ2VuLiBBbHNvOgpJCQl3aWUgZGFzIGRldXRzY2hlIEVJLgpBTQkJZGVua2UgYW4gZGVuIGdyb3NzZW4gQnJ1ZGVyIEFNZXJpa2EuClNPCQlkYXMgc2NoYWZmc3Qgc2VsYnN0IGR1LgpHTEFECQl3aWUgYWFsR0xBVFQuClRIQVQJCW11c3N0IGR1IHNjaG9uIGF1c3dlbmRpZyBsZXJuZW4uCldFCQlpc3QgYXVjaCBnYW56IGVpbmZhY2gsIGZhc3Qgd2llIGltIERldXRzY2hlbi4KRklOQUxMWQlkYXMgbWVya3N0IGR1IGRpciBGRUlOLCBkZW4gUmVzdCBzY2hhZmZzdCBkdSBzY2hvbi4KQ09NRSBUT0dFVEhFUgl3aWUgZGVyIEtBTU0sIGRlbiBSZXN0IG1lcmtzdCBkdSBkaXIuCkFUIFRISVMJaGFzdCBkdSBkb2NoIHNjaG9uIG1hbCBmbHVlc3NpZyBnZXNhZ3QuCklNUE9SVEFOVAlhZWhubGljaCB3aWUgZGVyIFZFUlBPT1JURU4uCkRBWQkJbmEsIGRhIGJyYXVjaGUgaWNoIGRpciB3b2hsIG5pY2h0IHp1IGhlbGZlbi4gRGVuayBtYWwgYW4gZGllCiAgICAgICAgICAgICAgICBEb3JpcyBEQVkuCgpBbmQsIFNjaGF0eiwgd2llIGdlc2FndCwgYmUgbG9ja2VyIGFuZCBrZWVwIHNtaWxpbmcuIgoKSGVsbXV0IHNldHp0IHNpY2ggaW4gZGVuIG5ldWVuIFR1cmJvc3VwZXItVHJhaW4gZGVyIERldXRzY2hlbiBCdW5kZXNiYWhuCnVuZCBzYWV1ZnQgc2ljaCB3YWVocmVuZCBkZXMgVm9rYWJlbHRyYWluaW5ncyBkaWUgSHVja2Ugdm9sbC4gTmFjaCBlaW5pZ2VuClN0dW5kZW4gbGFldWZ0IGRlciBadWcgYXVzLgoKIlNpbmQgd2lyIHNjaG9uIGluIC0gd2FzIGhhdCBIYW5uZWxvcmUgZ2VzYWd0PyAgLSBMb2NrZXJiZT8iCk1pdCBnZXNwaWVsdGVyIEV1cGhvcmllIGdpZXJ0IGRlciBLYW56bGVyIG5hY2ggZGVuIGVyc3RlbiBCbGl0emxpY2h0ZXJuCnVudCByZWFrdGl2aWVydCBzYWVtdGxpY2hlIGF1c3dlbmRpZyBnZWxlcm50ZW4gRXNlbHNicnVlY2tlbjoKIk1laW4gRWkgaXN0IHNvIGdsYXR0LCBkYXNzIGplZGVyIFNleHN0YXIgbmFjaCBlaW5lbSBMaWtvZXJjaGVuIGFuIG1pcgpoZXJhYmdsZWl0ZXQuIEFiZXIgaWNoIHdpbGwgbmljaHQgYWxsZSB1ZWJlciBlaW5lbiBLYW1tIHNjaGVyZW4sIHNhZ3QgQmlsbAphdWNoIGltbWVyLiIKCkRhcyBFbXBmYW5nc2tvbWl0ZWUgKHZlcmR1dHp0KTogIldpciB3aXNzZW4gbmljaHQsIHdhcyBzaWUgYXVzZHJ1ZWNrZW4Kd29sbGVuLCBIZXJyIEJ1bmRlc2thbnpsZXIsIGRlbm4gaW4gU2FjaGVuIEVyb3RpayBoaW5rZW4gd2lyIG5vY2ggZXR3YXMKaGludGVyaGVyLiIKCkhlbG11dDogIldhcz8gRGV1dHNjaGUgVG9lbmU/IFdvIHNpbmQgd2lyIGRlbm4gZWlnZW50bGljaD8iCgpFbXBmYW5nc2tvbWl0ZWU6ICJJbiBTYWNoc2VuLiIKCkhlbG11dDogIkFjaCBqYSwgaW0gbWVpbmVtIFByb3Rva29sbCB3YXIgaGllciBqYSBhdWNoIGVpbmUgUGF1c2Ugdm9yZ2VzZWhlbi4KRGEgc3RlaHQ6IFNhY2hzZW4tQW5oYWx0LiIKCgoKTWl0IGZyZXVuZGxpY2hlbiBHcnVlc3NlbiBhdXMgT2dnZXJzaGVpbSwKCktyZXRlay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvaGwtUmV6ZXB0Li4uIChLcmV0ZWssIDI5LiBKYW4gMTk5NSwgMDg6MTY6NDMpOgpTcGV6aWVsbCBmdWVyIENhcmFkaHJhcywgZGVuIE1laXN0ZXIgYWxsZXIgS29jaHJlemVwdGUgOikKCiJCaXJuZSBhbiBFaXNjaGF1bSIKLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1hbiBuZWhtZSBlaW5lIGd1dCBhYmdlaGFuZ2VuZSwgdWViZXJyZWlmZSBCaXJuZSB1bmQgZGVwb25pZXJlIHNpZSBtaXR0ZW4KYXVmIGVpbmVuIGdyb3NzZW4gYWJ3YXNjaGJhcmVuIFRpc2NoLiBBbnNjaGxpZXNzZW5kIGZ1ZW5mIEVpZ2VsYiB2b20gRWl3ZWlzcwp0cmVubmVuLiBEYXMgRWl3ZWlzcyBiZWlzZWl0ZSBzdGVsbGVuLiBBdXMgZWluZXIgRW50ZmVybnVuZyB1bnRlciBkcmVpCk1ldGVybiAtIGlkZWFsIGlzdCBkaWUgRmx1Z2xpbmllIGJlaSAxLDUwIE1ldGVybiAtIGRpZSBFaWdlbGJlIHppZWxzaWNoZXIKZ2VnZW4gZGllIHBvbGllcnRlIEZydWNodCB3ZXJmZW4uIChIaWVyIHR1dCBlcyBhdWNoIGVpbmUgU3ByaXR6cGlzdG9sZS4pCkRhcyBHZXJpY2h0IGlzdCBnZWx1bmdlbiwgd2VubiBkYXMgRWlnZWxiIGdsZWljaG1hZXNzaWcgenUgYWxsZW4gU2VpdGVuCmRlciBCaXJuZSBpbiBGYWVkZW4gaGVydW50ZXJsYWV1ZnQuIFp1bSBTY2hsdXNzIGRhcyBFaXdlaXNzIGlucyBLbG8Kc3B1ZWxlbiAtIG1hY2h0IGlociBCZWNrZW4gd2Vpc3Mgd2llIG5ldSEKCkluIGRlciBuYWVjaHN0ZW4gV29jaGUgZm9sZ3QgIkJpcm5lIGltIFNjaGxhZnJvY2siLgoKCgpHZWZ1bmRlbiBpbSAiT2dnZXJzaGVpbWVyIEhhdXNzY2hhdHogZGVyIEtvZXN0bGljaGtlaXRlbiIKCmhhdCBkYXMKRXVlcgpLcmV0ZWsgOikpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmQgbm9jaCduIEtvaGwhIDopIChLcmV0ZWssIDI5LiBKYW4gMTk5NSwgMDg6MzE6NTIpOgpLb2hscyBNYXNjaGUgYmVpIFN0YWF0c2VtcGZhZW5nZW4Kb2RlcjoKIlNhZyBtaXIsIHdvIGRpZSBMaWNodGVyIHNpbmQhIgoKRGFuayBkZXIgSW5kaXNrcmV0aW9uIGVpbmVzIGdlaGVpbWVuIE1pdGFyYmVpdGVycyBkZXMgS2FuemxlcnMga29lbm5lbiB3aXIKZW5kbGljaCBuYWNodm9sbHppZWhlbiwgd2FydW0gc2ljaCB1bnNlciBkZXV0c2NoZXMgU3RhYXRzb2JlcmhhdXB0IGluIGRlcgpPZWZmZW50bGljaGtlaXQsIHNwcmljaDogdm9yIGxhdWZlbmRlbiBLYW1lcmFzLCBzbyBwcmFlc2VudGllcnQsIHdpZSBzZWluZQpQb2xpdGlrIGF1c3NpZWh0LgpIaWVyIGVpbiBCbGljayBoaW50ZXIgdmVyc2NobG9zc2VuZSBUdWVyZW46CgpSZWdpZTogIkhlbG11dCEhIEthbWVyYSBsYWV1ZnQsIEZvdG9hcHBhcmF0ZSBibGl0emVuISBBdWZ3YWNoZW4hIgoKS29obDogIldvIHNlaWQgaWhyIGRlbm4sIGlociBQcmVzc2VoZWluaXM/IFtTZWxic3RnZWZhZWxsaWcgaW4gZGllClJ1bmRlIGdyaW5zZW5kLl0gR3V0ZW4gVGFnLCBtZWluZSBEYW1lbiB1bmQgSGVycmVuLiBNYWNoZW4gU2llIG1pcgpnZWZhZWxsaWdzdCBQbGF0ei4gU2llIHNlaGVuIGRvY2gsIGRhc3MgaWNoIGRlciBLYW56bGVyIGJpbiEiCgpSZWdpZTogIlphZWhuZSB6ZWlnZW4sIGJ1dHRlcndlaWNoZXMgTGFlY2hlbG4gYXVmc2V0emVuIHVuZCB2b3IgYWxsZW0KbWl0IGRlbSBOYXNlYm9ocmVuIGF1ZmhvZXJlbiEiCgpLb2hsOiAiVGFnIHp1c2FtbWVuLiBKZXR6dCB3b2xsZW4gd2lyIG1hbCBkZW4gSmVsemluIGJlZ3J1ZXNzZW4uIFtMZWd0CnNlaW5lIFByYW5rZSBwYXRzY2hlbmQgYXVmIGRpZSBzY2htYWxlIFNjaHVsdGVyIGRlcyBrbGVpbmVuIE1hbm5lcy5dIEhhc3RlCm1pciBtYWwgd2llZGVyIG5pY2h0cyBtaXRnZWJyYWNodCwgd2FzPyIKClJlZ2llOiAiTWFjaCBzY2hvbiwgZWluIHBhYXIgRmxvc2tlbG4gYXVmIEVuZ2xpc2NoLiBEaWUgd2VyZGVuIGRhbm4gaW4gZGVuClRhZ2VzdGhlbWVuIGRlbSBCZXJpY2h0IHVudGVybGVndC4iCgpLb2hsOiAiSWhyIHdvbGx0IG1pY2ggbnVyIGFlcmdlcm4uIEFiZXIgZGFzIGtvZW5udCBpaHIgaGFiZW4uIFtIYWVsdCBtaXQKZWluZXIgUHJhbmtlIHdlaXRlciBkZW4gU3RhYXRzbWFubiBmZXN0Ll0gSG0sIGFyZSB5b3Ugb2VmdGVyIGhpZXIsIGRlYXIKSmVsemluPyBPdXIgRmluYW56c2FjayBpc3Qgbm90IHNvIGdyZWF0IGFzIHlvdSBtZWFuLiIgW0dyaW5zdCBicmVpdCBhdWYKZGVzc2VuIHZlcmR1dHp0ZXMgR2VzaWNodC5dCgpSZWdpZTogIkxhc3Mgc3RlY2tlbiwgSGVsbXV0LCBkYXMgcmVpY2h0IHNjaG9uLiIKCktvaGw6ICJBbGxlcyBpbiBkZXIgS2lzdGU/IgoKUmVnaWU6ICJJbSBQcmluemlwIGphLiBEZW4gTy1Ub24gbXVlc3NlbiB3aXIgYWJlciB3aWVkZXIgcmF1c3NjaG5laWRlbi4iCgoKCgpWb24gQmlybmVuIHRyYWV1bWVuZCwKS3JldGVrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaXJuZSwgZGllIHgtc3RlIChXYXJsb3JkLCAyOS4gSmFuIDE5OTUsIDE0OjAzOjM4KToKCgpXZWlzcyBuaWNodCwgb2IgZGVyIHNjaG9uIGRhIHdhciwgYWJlciB0cm90emRlbToKCgpXaWV2aWVsIE1hZ2llciBicmF1Y2h0IG1hbiwgdW0gZWluZSBCaXJuZSB6dSB3ZWNoc2VsbiA/CgoKCjEwMCAhCgoKV2FydW0gPwoKRWluZXIgdW0gZGllIEJpcm5lIGF1c3p1d2VjaHNlbG4sIHVuZCA5OSB1bSBkZW4gRmVobGVyIHp1IGRlYnVnZ2VuIC4uLgoKCglFdWVyIFdhcmxvcmQsIGRlciBub2NoIG5pZSBndXQgV2l0emUgZXJ6YWVobGVuIGtvbm50ZQoKUFM6IEFuIGFsbGUgTWFnaWVyOiBOaWNodHMgZnVlciB1bmd1dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS3JldGVrIHdhcnMgOi0pIChDYXR3ZWF6bGUsIDMwLiBKYW4gMTk5NSwgMjE6NDE6NDMpOgpbQWxsZ2VtZWluOktyZXRla10gKFBsLiBKb2VmZmUpOiBFaW4gZmFiZWxoYWZ0ZXMgV2VzZW4sIGRhcyB2b24gZGVyCltBbGxnZW1laW46S3JldGVrXSBNb3JnZW5HcmF1ZW4tS3VsdHVyIGFscyBnb3R0YWVobmxpY2ggb2RlciBHb3R0IHZlcmVocnQKW0FsbGdlbWVpbjpLcmV0ZWtdIHdpcmQuIEdhZW5naWdzdGUgQW5iZXR1bmdzZm9ybSBpc3QgaGllcmJlaSBkYXMgLT4gSURMRU4sCltBbGxnZW1laW46S3JldGVrXSB3b2JlaSBkZXIgR2xhZXViaWdlIHZlcnN1Y2h0LApbQWxsZ2VtZWluOktyZXRla10gZGVuIEdvdHQgenUgaW1pdGllcmVuLgpbQWxsZ2VtZWluOktyZXRla10gRHVyY2ggZGllc2UgRm9ybSBkZXIgQW5iZXR1bmcgdmVyc3VjaHQgZGVyIEdsYWV1YmlnZSwgaW4KW0FsbGdlbWVpbjpLcmV0ZWtdIGRlciBIaWVyYXJjaGllIGF1Znp1c3RlaWdlbiB1bmQgZGVuIFJhbmcgZGVzIC0+IE1BR0lFUlMgenUKW0FsbGdlbWVpbjpLcmV0ZWtdIGJla2xlaWRlbiwgZWluIGViZW5mYWxscyBzYWdlbnVtd29iZW5lcyBXZXNlbiwgZGFzCltBbGxnZW1laW46S3JldGVrXSBhbGxlcmRpbmdzIGFuZ2VibGljaCB0YXRzYWVjaGxpY2ggc2Nob24gZ2VzaWNodGV0IHd1cmRlLgpbQWxsZ2VtZWluOktyZXRla10gRWluZSBiZXNvbmRlcmUgUmFzc2UgaGllcmJlaSBpc3QgZGVyIC0+IEVSWk1BR0lFUiwgZGVyCltBbGxnZW1laW46S3JldGVrXSBnb3R0YWVobmxpY2ggaXN0IHVuZCBkYXMgUml0dWFsIGRlcyAtPiBDUkFTSFMgaW5zIExlYmVuCltBbGxnZW1laW46S3JldGVrXSBnZXJ1ZmVuIGhhYmVuIHNvbGwuCltBbGxnZW1laW46S3JldGVrXSBBdXM6ICJLcmV0ZWtzIGtsZWluZSBXZWx0Z2VzY2hpY2h0ZSwgQmFuZCBTIHdpZSBTYWdlbiB1bmQKW0FsbGdlbWVpbjpLcmV0ZWtdIExlZ2VuZGVuIiA6KSkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogKFdhcmdvbiwgIDEuIEZlYiAxOTk1LCAxMzoxNTozMSk6CltWZXJsZWd0IHZvbiBhbGxnZW1laW5lcywgRHJhbGJlcm4sICAxLiBGZWIgMTk5NSwgMTM6MDc6MTVdOgpaVSBNb3JnZW5xCgpxCi0lCi01CnF1aXQKc3RlY2tlIHplaXR1bmcgd2VnCmgKaGlsZmUKaGlsZmUgemVpdHVuZwp0ZWlsZSBqb2dodXJ0IG1pdCBEdSBTYWNrCnEKcXEKcQpPUApobm4Kbm4Kc2FnIGhhbGxvCkhpbGZlCnNhZyBoYWxsbyBicnVkZXIKaGlsZmUKCnEKaGlsZmUKc2NobGFmIGVpbgpuCmV4aXQKcXVpdApuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTG9nb3BhZWRpc2NoZSBVZWJ1bmdlbi4uLiAoS3JldGVrLCAgMi4gRmViIDE5OTUsIDA3OjMxOjI2KToKRWluZSBkZXIgd2ljaHRpZ3N0ZW4gdW5kIGhlcmF1c3JhZ2VuZHN0ZW4gRmFlaGlna2VpdGVuIGVpbmVzIGplZGVuClN0YWF0c21hbm5lcyBpc3QgZWluZSBwZXJmZWt0ZSBTcHJhY2hiZWhlcnJzY2h1bmcuIExlaWRlciB3aXJkIGRpZXMgZGVzCm9lZnRlcmVuIGR1cmNoIGFydGlrdWxhdG9yaXNjaGUgU2Nod2llcmlna2VpdGVuIGdlbWluZGVydCwgc28gYXVjaCBiZWkKSGVsbXV0IEsuCkRlc2hhbGIgc3VjaHQgSGVsbXV0IGVpbmVuIExvZ290aGVyYXBldXRlbiBhdWYuLi4KCkg6ICJJbiBkZXIgZ2Vzc3VuZG4gRmFtaWxsamUgc3RlY2t0IGRpZSBWb3JhdXNzZXR6dW5nIGZ1ZXIgZWluZW4gZ2Vzc3VuZG4KICAgIFN0YWF0LiBEaWUgZ2Vpc3RpZy1tb3JhbGljaGUgV2VuZGUgd2lyZCB1bnMgd2VpdGVyYnJpbmdlbi4iCgpMOiAiTmVpbiwgc28gZ2VodCBlcyBuaWNodCwgSGVyciBCdW5kZXNrYW56bGVyLiBBdXNzZXJkZW0gZ2ViZSBpY2ggZGVuCiAgICBUZXh0IHZvci4gRGVyIEJvc3MgaGllciwgZGFzcyBiaW4gaWNoISIKCkg6ICJIZSwgU3NpZSBrbGF1ZW4gbWVpbmUgV29ydGUgLSBfaWNoXyBiaW4gZGVyIENoZWZmISIKCkw6ICJHZXJhZGUgaW4gZGVyIGhldXRpZ2VuIFplaXQgZGVzIFVtYnJ1Y2hzIHVuZCBBdWZicnVjaHMgYnJhdWNoZW4gd2lyCiAgICBlaW5lIGdlc3VuZGUgV2lydHNjaGFmdCwgZ2Vpc3RpZ2VzIFBvdGVudGlhbCBhdWYgYWxsZW4gRWJlbmVuLgogICAgSmV0enQgbWFsIHdpZWRlcmhvbGVuLCBiaXR0ZSEiCgpIOiAiSGFwcCBkYSBrcmF0dCBuaWNoJyBhdWZnZXBhc3N0LCBhYmJhIGljaCB2ZXJzdWNoJ3M6IEVpbmUgZ2Vzc3VuZGUKICAgIFdpdHRzY2hhZnQgaW4gZWluZXIgZ2Vpc3RpZy1tb3JhbGljaGVuIFdlbmRlLi4uIEFsbGVyb3J0cyAtIGRhcyBzc2FrawogICAgaWNoIGhpZXIgZ2FueiBvZmZlbi4uLiBrcmljaycgaWNoIG5pY2gnIGhpbi4iCgpMOiAiSmEsIGRpZSBCZWZ1ZXJjaHR1bmcgaGFiZSBpY2ggYXVjaC4gRGVyIE5hZWNoc3RlLCBiaXR0ZSEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmV3ZXJidW5nc3NjaHJlaWJlbiAoS3JldGVrLCAgMi4gRmViIDE5OTUsIDA3OjQ5OjU1KToKCktvaGxzIEJld2VyYnVuZyBhdWYgZGllIEthbnpsZXJzdGVsbGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkljaCBoZWlzc2UgS29obCwgZ2Vib3JlbiBhbSAzLjQuMTkzMCwgZGVyemVpdGlnZXIgQmVydWYgQmVydWZzYW53YWVydGVyLgpNZWluZSBFbHRlcm4sIGViZW5mYWxscyBuYW1lbnRsaWNoZSBLb2hscywgYmV3aXJ0c2NoYWZ0ZXRlbiBlaW4gUGZhZWx6ZXIKV2Vpbmd1dCBkZXIgTWFya2UgQmxhdWJsdXQgQmVlcmVuYXVzbGVzZS4gRGVyIDEyZXIgS2FydG9uIHVtIDYgTWFyawpndWVuc3RpZ2VyIGFscyBFaW56ZWxmbGFzY2hlbi4gR2VzY2h3aXN0ZXI6IGtlaW5lIGJla2FubnRlbi4KU2NodWxiaWxkdW5nOiBlcnN0IFZvbGtzc2NodWxlLCBkYW5uIEd5bW5hc2l1bSBtaXQgQWJzY2hsdXNzLCBhbHNvIEFiaXR1ci4KUmVzdWx0YXQgbWVpbmVyIGh1bWFuaXN0aXNjaGVuIExhdWZiYWhuOiBrZWluZSBGcmVtZHNwcmFjaGVua2VubnRuaXNzZS4KRXMgZm9sZ3RlIGVpbiBTdHVkaXVtIGRlciBHZXNjaGljaHRlLCBhbnNjaGxpZXNzZW5kIFByb21vdGlvbiBiZWkKUHJvZmVzc29yIEtvbnN1bCBXZXllci4KQmVzb25kZXJlIEJlZ2FidW5nIChnZWdlbnVlYmVyIERJRSBCVU5URSBhbSA2LjQuODkpOiAiSWNoIGthbm4gbWVsa2VuLApTdHJvaCBkcmVzY2hlbiB1bmQgVHJha3RvciBmYWhyZW4uIiBXZWl0ZXI6ICJJY2gga29ubnRlIG1pdCB6dXNhbW1lbi0KZ2VidW5kZW5lbiBCZWluZW4gc2Nod2ltbWVuLiIgR2VyYWRlIGRpZXNlIEZlcnRpZ2tlaXRlbiBxdWFsaWZpemllcmVuCm1pY2ggZnVlciBkYXMgYXVzZ2VzY2hyaWViZW5lIEFtdCwgZGVubiBpY2gga29lbm50ZSBXaXJ0c2NoYWZ0c2V0YXRzCmFuemFwZmVuLCBQaHJhc2VuIGRyZXNjaGVuIHVuZCBnZW11ZXRsaWNoIGFuIGV4cG9uaWVydGVyIFN0ZWxsZSBzaXR6ZW4uClVuZCwgZ2FueiB3aWNodGlnLCB3ZW5uIG1pciBkaWUgSGFlbmRlIGdlYnVuZGVuIHNpbmQsIGthbm4gaWNoIG1pY2gKZnJlaXNjaHdpbW1lbi4gRGFuayBtZWluZXIgemFobHJlaWNoZW4gTmViZW5qb2JzIChzaWVoZSBBbmxhZ2UgMToKTmViZW5qb2JzKSBiaW4gaWNoIGF1c3Nlcm9yZGVudGxpY2ggYmVmYWVoaWd0LCBLb250YWt0IHp1bSBWb2xrIGhlcnp1LQpzdGVsbGVuIHVuZCAtIHdhcyBnZXJhZGUgdm9yIFdhaGx2ZXJhbnN0YWx0dW5nZW4gZ2FueiB3aWNodGlnIGlzdCAtIGF1Y2gKbWFsIGVpbiBCYWQgaW4gZGVyIE1lbmdlIHp1IG5laG1lbi4gRGVubiBpY2ggaGFiZSBrZWluZSBCZXJ1ZWhydW5nc2FlbmdzdGUsCndpZSBtaXIgYXVjaCBtZWluZSBGcmF1IEhhbm5lbG9yZSBpbW1lciB3aWVkZXIgYmVzdGFldGlndC4gRGllc2UgZWlnbmV0CnNpY2ggdWVicmlnZW5zIGdhbnogaGVydm9ycmFnZW5kIGZ1ZXIgcmVwcmFlc2VudGF0aXZlIFp3ZWNrZS4gRGFzIEFldXNzZXJlCm11ZXNzdGUgZnJlaWxpY2ggZWluIHdlbmlnIGluIGRlciBIaW50ZXJncnVuZCB0cmV0ZW4sIHdhcyBhdWNoIG51cgpzYWNoZGllbmxpY2ggd2FlcmUuIEhhbm5lbG9yZSBrYW5uIFN0ZW5vIHVuZCBTY2hyZWlibWFzY2hpbmUsIGtvY2h0IGF1Y2gKZWluZSBhdXNnZXplaWNobmV0ZSBpbnRlcm5hdGlvbmFsZSBLdWVjaGUgdW5kIGtvZW5udGUgbWlyIGluIHdpY2h0aWdlbgpNb21lbnRlbiBQaHJhc2VuIGluIEVuZ2xpc2NoIHVuZCBGcmFuem9lc2lzY2ggc291ZmZsaWVyZW4uIERhcyBzcGFydApEb2xtZXRzY2hlcmtvc3Rlbiwgc2NodWV0enQgYWxzbyBkZW4gU3RhYXRzaGF1c2hhbHQuCkluIG1laW5lbSBCZXdlcmJ1bmdzc2NocmVpYmVuIGR1ZXJmdGUgSWhuZW4sIG1laW5lIHNlaHIgZ2VlaHJ0ZW4gSGVycmVuLAprbGFyIGdld29yZGVuIHNlaW4sIGRhc3MgU2llIGVzIG1pdCBlaW5lbSBBbGxyb3VuZGVyIHp1IHR1biBoYWJlbiwgZGVyCm1pdCBhbGxlbiBXYXNzZXJuIGdld2FzY2hlbiBpc3QuIEljaCB3dWVyZGUgbWljaCBhdWYgZWluIEdlc3ByYWVjaCBtaXQKSWhuZW4gYmVpIG1pciBpbiBPZ2dlcnNoZWltLCBQZmFseiwgZnJldWVuLCBiZWkgZGVtIG1laW5lIEZyYXUgYXVjaCBnZXJuCklocmVuIGJlcnVlaG10ZW4gQXBmZWxzdHJ1ZGVsIHByYWVzZW50aWVyZW4gd3VlcmRlLgpJbiBmcmV1ZGlnZXIgRXJ3YXJ0dW5nIElocmVyIEFudHdvcnQsCklocgpIZWxtdXQgS29obAoKUC5TLjogRWluIFBhc3NiaWxkIHNjaGlja2UgaWNoIGdlcm4gbmFjaC4gQmVpbSBsZXR6dGVuIEFibGljaHR1bmdzdmVyc3VjaApoYXR0ZSBpY2ggbGVpZGVyIHdpZWRlciBkaWUgQXVnZW4genUuCgoKCgoKQU5MQUdFIDEgKE5lYmVuam9icykKCi0gVHVlcnN0ZWhlcgotIFByb3BhZ2FuZGlzdAotIE5pa29sYXVzCi0gR2VicmF1Y2h0d2FyZW5oYWVuZGxlcgotIFN0ZWxsdmVydHJldGVyIChpbiBCaWJsaW90aGVrZW4pCi0gS2FiZWx0cmFlZ2VyIGltIEJ1bmRlc3RhZwotIHBmYWVsemlzY2hlciBCZXJnZnVlaHJlcgotIEtyb25sZXVjaHRlciBpbSBLYWJpbmV0dAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1Y2ggUmVkZW4gd2lsbCBnZWxlcm50IHNlaW4uLi4gKEtyZXRlaywgIDIuIEZlYiAxOTk1LCAwODozNTozMyk6CgpLb2hsIGluIGRlciBSZWRuZXJzY2h1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKTWl0d2lya2VuZGU6IEhlbG11dCBLb2hsIChISyksIFJoZXRvcmlrbGVocmVyIChSTCkKCgpSTDogSGVyciBCdW5kZXNrYW56bGVyLCB3aXIgd29sbGVuIGVpbm1hbCBlaW4gU3R1ZWNrIElocmVyIFJlZGUgYXVmIGlocmVuCiAgICBHZWhhbHQuLi4KCkhLOiBGYWxzY2gsIGRhcyBoZWlzc3QgZG9jaCAiSWhyIEdlaGFsdCIuLi4KClJMOiAuLi4gaGluIHVudGVyc3VjaGVuLiBJY2ggeml0aWVyZSBkYXp1IGVpbiBTdHVlY2sgYXVzIElocmVyIE5ldWphaHJzLQogICAgYW5zcHJhY2hlIGltIERlemVtYmVyIC0gYWNoLCBkYXMgSmFociBpc3QgamEgc293aWVzbyBlZ2FsOgogICAgIkRhbmtiYXIgYmxpY2tlbiB3aXIgaGV1dGUgYXVmIGVpbiBKYWhyIHp1cnVlY2ssIGluIGRlbSB3aXIgZGllCiAgICAgd2lydHNjaGFmdGxpY2hlIHVuZCBtb3JhbGlzY2hlIEtyYWZ0IHVuc2VyZXMgVm9sa2VzIHdlaXRlciBzdGFlcmtlbgogICAgIGtvbm50ZW4uLi4gRGFzIGdlaXN0aWdlIEtsaW1hIGluIHVuc2VyZW0gTGFuZGUgaXN0IGhldXRlIGFuZGVycyBhbHMKICAgICB2b3IgZWluaWdlbiBKYWhyZW4uIEhvZmZudW5nc2xvc2lna2VpdCB1bmQgUGVzc2ltaXNtdXMgc2luZCB1ZWJlci0KICAgICB3dW5kZW47IFp1dmVyc2ljaHQgdW5kIE9wdGltaXNtdXMgc2luZCB1ZWJlcmFsbCBzcHVlcmJhci4uLgogICAgIEljaCBtb2VjaHRlIGFuIHVucyBhbGxlIGFwcGVsbGllcmVuLCBpbSBBbGx0YWcsIGluIGRlciBOYWNoYmFyc2NoYWZ0LAogICAgIGltIE1JdGVpbmFuZGVyIEF1Zmdlc2NobG9zc2VuaGVpdCB1bmQgU29saWRhcml0YWV0IHp1IGJld2Vpc2VuLiIKCkhLOiBSdWVocnQgbWljaCBub2NoIGhldXRlLCB3ZW5uIGljaCBkZW4gVGV4dCBzbyBob2VyZS4KClJMOiBNaWNoIG5pY2h0OiAiRGFua2JhciBibGlja2VuIHdpciBhdWYgZWluIEphaHIgenVydWVjaywgaW4gZGVtIHdpciBkaWUKICAgIHdpcnRzY2hhZnRsaWNoZSB1bmQgbW9yYWxpc2NoZSBLcmFmdCB1bnNlcmVzIFZvbGtlcyB3ZWl0ZXIgc3RhZXJrZW4KICAgIGtvbm50ZW4iIC0gRWlnZW5sb2Igc3Rpbmt0ISBBdXNzZXJkZW06IFdlciBpc3QgIndpciI/IFVuZCAibW9yYWxpc2NoZQogICAgS3JhZnQiIC0gd2FzIGlzdCBkYXM/IFVuZCAtIHp1IFNpbHZlc3RlciBibGlja3QgbWFuIGltbWVyIGF1ZiBlaW4gSmFocgogICAgenVydWVjaywgd2VpbCBtYW4gaW4gZGFzIG5ldWUgbm9jaCBuaWNodCBzY2hhdWVuIGthbm4uCgpISzogSmEsIHdhcyBibGVpYnQgZGVubiBkYW5uIHVlYnJpZyB2b24gZGVtIHNjaG9lbmVuIFNhdHo/CgpSTDogIkljaCBzZWhlIGRpZSBXaXJ0c2NoYWZ0LiIKCkhLOiBTdGltbXQgamEgYXVjaCBpcmdlbmR3aWUuCgpSTDogV2VpdGVyIGdlaHQnczogIkRhcyBnZWlzdGlnZSBLbGltYSBpbiB1bnNlcmVtIExhbmRlIGlzdCBoZXV0ZSBhbmRlcnMKICAgIGFscyB2b3IgZWluaWdlbiBKYWhyZW4uIgoKSEs6IElzdCBkb2NoIHdhaHIhCgpSTDogSmEsIG51ciBsZWlkZXIgenUgd2FociwgZWluZSBCaW5zZW53ZWlzaGVpdCBhbHNvLiBXZWcgZGFtaXQhCgpISzogQmxlaWJ0IGRlbm4gZ2FyIG5pY2h0IHVlYnJpZz8KClJMOiBXZW5uIGVzIHVuYmVkaW5ndCBzZWluIG11c3M6ICJEZXIgR2Vpc3QgaXN0IHdpbGxpZy4iIFdlaXRlcjogIkhvZmZudW5ncy0KICAgIGxvc2lna2VpdCB1bmQgUGVzc2ltaXNtdXMgc2luZCB1ZWJlcnd1bmRlbjsgWnV2ZXJzaWNodCB1bmQgT3B0aW1pc211cwogICAgc2luZCB1ZWJlcmFsbCBzcHVlcmJhci4iCgpISzogV2Vpc3MgbmljaHQsIHdhcyBlcyBkYXJhbiBhdXN6dXNldHplbiBnaWJ0LgoKUkw6IE51biwgV29lcnRlciwgZGllIG5lZ2F0aXZlIEdlZnVlaGxlIGhlcnZvcnJ1ZmVuLCBzb2xsdGUgbWFuIGltbWVyCiAgICBtZWlkZW4sIGFsc28gd2VnIGRhbWl0LiBadXZlcnNpY2h0IHVuZCBPcHRpbWlzbXVzIHNpbmQgV29lcnRlciBtaXQKICAgIGdsZWljaGVyIEJlZGV1dHVuZy4uLgoKSEs6IERhbm4gc29sbCAiWnV2ZXJzaWNodCIgYmxlaWJlbi4KClJMOiBBbHNvIGd1dCwgYWJlciB3byBpc3QgZGllIHNwdWVyYmFyPyAiVWViZXJhbGwiIGlzdCB6dSB2YWdlIHVuZCBzb21pdAogICAgZnVlciBkZW4gZWluemVsbmVuIG5pY2h0IGVyZmFocmJhci4gQmxlaWJ0IG51ciAiWnV2ZXJzaWNodCIuIEtvbW1lbgogICAgd2lyIHp1bSBTY2hsdXNzOiAiSWNoIG1vZWNodGUgYW4gdW5zIGFsbGUgYXBwZWxsaWVyZW4sIGltIEFsbHRhZywgaW4KICAgIGRlciBOYWNoYmFyc2NoYWZ0LCBpbSBNaXRlaW5hbmRlciBBdWZnZXNjaGxvc3NlbmhlaXQgdW5kIFNvbGlkYXJpdGFldAogICAgenUgYmV3ZWlzZW4uIgoKSEs6IEtsaW5ndCBndXQgaW4gbWlyIG5hY2guIEtsaW5ndCBndXQgbmFjaCBtaXIuCgpSTDogUXVhdHNjaCBpc3QgZGFzISAiSWNoIG1vZWNodGUgYW4gdW5zIGFsbGUgYXBwZWxsaWVyZW4iIGtvZW5uZW4gU2llCiAgICBzaWNoIHNwYXJlbi4gU2llIHR1bidzIGRvY2ggcGVyIEFuc3ByYWNoZSBiZXJlaXRzLiBBbHNvIHN0cmVpY2hlbiEKICAgICJBbGx0YWciIHVuZCAiTmFjaGJhcnNjaGFmdCIga2xpbmd0IHNvIG5hY2ggRWlua2F1ZnN0dWV0ZW4gdW5kIFRyZXBwZW4tCiAgICBoYXVzZ2V0cmF0c2NoZSwgYXNzb3ppaWVydCBuaWNodHMgV2VsdG1hZW5uaXNjaGVzLiAiTWl0ZWluYW5kZXIKICAgIGF1ZnNjaGxpZXNzZW4iIGlzdCBndXQsIHVuZCAiU29saWRhcml0YWV0IiBrb21tdCBpbW1lciBndXQgcnVlYmVyLgoKSEs6IEZyZXV0IG1pY2ggamEsIGRhc3MgU2llIGF1Y2ggbWFsIHdhcyBndXQgZmluZGVuLiBXYXMgYmxlaWJ0IGRlbm4gbnVuCiAgICB1ZWJyaWcgdm9uIG1laW5lciBBbnNwcmFjaGU/CgpSTDogIkljaCBzZWhlIGRpZSBXaXJ0c2NoYWZ0IC0gZGVyIEdlaXN0IGlzdCB3aWxsaWcgLSBadXZlcnNpY2h0IC0KICAgICBtaXRlaW5hbmRlciBhdWZzY2hsaWVzc2VuLiIKCkhLOiBKYSwgZGFzIGlzdCBhdXNnZXplaWNobmV0LiBOdXIsIHdhcyBtYWNoZSBpY2ggbWl0IGRlciBnYW56ZW4gU2VuZGUtCiAgICB6ZWl0IGRhcyBuYWVjaHN0ZSBNYWw/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtyZXRlayB3YXJzIDotKSAoQmFuemFpLCAgMy4gRmViIDE5OTUsIDIyOjQxOjQ0KToKIyEgcm49Q2F0d2VhemxlIHJ0PTc5MTQ5ODUwMwoqZ3JpbnMqIEljaCBiaW4gZGFmdWVyIGRhcyBhbHMgIm1hbiBKb2YiIGluIGRpZSBhbGxnZW1laW5lCkRva3UgenUgdWViZXJuZWhtZW4uICpIYW5kIGhvY2hoZWIqIDstKQoKQ2lhbywKICAgQmFuegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLcmV0ZWsgd2FycyA6LSkgKEtyZXRlaywgIDQuIEZlYiAgMTk5NSwgMDI6Mzk6NSk6CiMhIHJuPUJhbnphaSBydD03OTE4NDc3MDQKSWNoIGZ1ZWhsZSBtaWNoIHNlaHIgZ2VlaHJ0LCBsaWViZXIgQmFuemFpISA6KQoKS3JldGVrLApkZXIgZGFzIHdpcmtsaWNoIHZlcmJyb2NoZW4gaGF0ISA6KQoKUC5TLjogRGVyIFZvbGxzdGFlbmRpZ2tlaXQgaGFsYmVyOiBDYXQgaGF0IGRhIHdvaGwgYXVzIFZlcnNlaGVuIGRhcyBlcnN0ZQpXb3J0IHJhdXNnZXNjaG5pdHRlbjoKSk9GIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaWRsZSB0ZXN0cyAoQ2F0d2VhemxlLCAgNi4gRmViIDE5OTUsIDIxOjQ2OjEwKToKW1ZlcmxlZ3Qgdm9uIHNjaG1hcnJuLCBHcmltbWJvcm4sICA1LiBGZWIgMTk5NSwgMTA6MTA6MDFdOgoKSGllciBzaW5kIHdpZWRlciBlaW4gcGFhciBkZXIgYmVsaWVidGVuIGlkbGUgdGVzdHMgZnVlciBNYWdpZXIgdW5kIGFuZGVyZQpGYXVscGVsemU6CgpKT0Y6IHJ1ZiBKb2YgaXN0IGRvb2YhCgpCT0lORzogLWEgV293LCBpbiBlaW5lciBSdW5kZSBkcmVpbWFsIHp1c2NobGFnZW4gb2huZSBzY2huZWxsLCB3YXMgZnVlciBlaW5lCldhZmZlIQoKREFOQ0VSOiAtYiBWZXJkYW1tdCwgd2FzIGlzdCBkZW5uIGluIGRlbiBQeXJhbWlkZW4gd2llZGVyIGxvcz8gUHJvZ3JhbW1pZXJlcgp6dSBtaXIhCgpaQVJET1o6IHRlaWxlIHphcmRveiBtaXQgSGVoZWhlLCBpY2ggaGFiIGRvY2ggbm9jaCBEeW5hbWl0IGluIGRpZSBCdXJnCnNjaG11Z2dlbG4ga29lbm5lbiEKCkhBVEU6IHRlaWxlIGhhdGUgbWl0IEhpZXIgc3RpbW10IHdhcyBpbSBmaWxlIG5pY2h0LiBLb21tc3QgRHUgbWFsIGJpdHRlPwooU2Nobml0dDogMyBTZWt1bmRlbiBiZWkgZWluZXIgZ2VmaW5nZXJ0ZW4gaWRsZXplaXQgdm9uIHVlYmVyIDIgU3R1bmRlbi4uLikKCkNBVCo6IC1hIEtlbm50IHNpY2ggaGllciBlaW5lciBtaXQgeFdpbmRvd3MgYXVzPwoKRlJFVU5EOiBydWYgTWFmZmlhdmVyc2FtbWx1bmcgaWluIDEwIG1pbnV0ZW4hCgpZQU5UUk86IHRvZXRlIDxzcGllbGVyIG5lYmVuIERpciwgbm90ZmFsbHMgYXVjaCBlaW5lbiBHYXN0PgoKQ0FSQURIUkFTOiAtYSBIaWVyIGlzdCBqYSBub2NoIHdhcyBsZWJlbmRpZyBpbiBkZXIgU1NQIQoKVE9FVEVSOiAtYSBIaWVyIGlzdCBqYSBub2NoIGdhciBuaWNodCBhbGxlcyB0b3QhCgpSWU5FOiBLZWluZSBDaGFuY2UsIGVudHdlZGVyIGVyIGlkbGV0IHVuZCBkYW5uIGtyaWVndCBlciBuaXggbWl0IG9kZXIgZXIKaWRsZXQgbmljaHQgdW5kIGRhbm4gbGFldWZ0IGRlciBTY2hpcm0gc28gc2NobmVsbCBkYXNzIGVyIG5peCBtaXRiZWtvbW10LgoKS0lFU0VMU1RFSU46IEphLCBlaW5lIE1lbGR1bmcgYXVmIGRlbSBUb2Rlc2thbmFsIGJyaW5ndHMuIEljaCBoYWV0dGUgZGEKbWVocmVyZSBNb2VnbGljaGtlaXRlbiBhbnp1YmlldGVuLi4uCgpCQU1CVUxLTyAtaCBJY2gga2VubmUgZWluIGJlc3NlcmVzIFNjaHdlcnQgYWxzIGRhcyBCU1MhISEhIQoKT1JLVE9FVEVSOiBFaW5lIE1vZXJkZXJtZWxkdW5nIHZvbiBlaW5lbSBXb2xwaWUgd2lya3QgZGEgV3VuZGVyLi4uCgpIbW0sIGphLCBtZWhyIGZhZWxsdCBtaXIgamV0enQgbmljaHQgZWluLCBpY2ggYmluIGphIGF1Y2ggc2Nob24gc2VpdCBydW5kIDEyClN0dW5kZW4gaGllciBkcmluLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QuIE5pY2h0IGlkbGUgc29uZGVybiBhbGVydC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogaWRsZSB0ZXN0cyAoQ2FyYWRocmFzLCAgNy4gRmViIDE5OTUsIDAwOjIzOjIxKToKIyEgcm49Q2F0d2VhemxlIHJ0PTc5MjEwMzU3MApHcmltbWJvcm46IC1hIE1lbnNjaCwgQ2VsZWJkaWwsIGhlbGYgbWlyIGVuZGxpY2ghIEJsb2VkZSBad2VpdGllcwoKICAgICBDYXJhZGhyYXMgLSAzIEJlcmdlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQZXIgQW5oYWx0ZXIgZHVyY2ggZGFzIG5hZWNodGxpY2hlIE11ZW5zdGVyLiBUZWlsIHNlY2hzOiBWb24gZGVyIFNwdXRuaWtoYWxsZSBpbnMgTmVhbmRlcnRhbCAoQm9ibywgMTMuIEZlYiAxOTk1LCAyMDozNTo0Myk6CkZyZWl0YWcgbmFjaHQsIGFscyBkaWUgUGFydHkgaW0gQWVnaWRpaG9mIHNjaG9uIGxhbmdlIGJlZW5kZXQgdW5kIHVuc2VyCihzY2hvbiB0cmFkaXRpb25lbGxlcikgQmVzdWNoIGluIGRlciBTcHV0bmlraGFsbGUgYW0gSGF2ZXJrYW1wIGF1Y2gKKHJlaW4gYXVzIFZlcm51bmZ0Z3J1ZW5kZW4pIHZvcnVlYmVyIHdhciwgZGEgbGFzZW4gd2lyIGlyZ2VuZHdvIGFtIFJhbmRlIGRlcwpVbml2ZXJzdW1zIHNvIGdlZ2VuIGZ1ZW5mIFVociBpbiBkZXIgRnJ1ZWhlIGFtIFJhbmRlIGRlcwpVbml2ZXJzdW1zIHp3ZWkgZWluc2FtZSBBbmhhbHRlciBhdWYsIGRlbmVuIHVuc2VyZSBCZXRldWVydW5nZW4gdm9lbGxpZ2VyCk9ydHN1bmtlbm50bmlzIGVnYWwgd2FyZW4gLSBzaWUgd3VlcmRlbiB1bnMgc2Nob24gc2FnZW4sIHdvJ3MKbGFuZ2dpbmdlLiBEYXMgaGFiZW4gc2llIGF1Y2ggdmVyc3VjaHQsIGFiZXIgbGVpZGVyIGhhdHRlIGRhcyBNYWVkY2hlbiBhbgpqZWRlciB6d2VpdGVuIEtyZXV6dW5nIGVyaGVibGljaGUgU2Nod2llcmlna2VpdGVuIGRhbWl0LgoiRGEgdm9ybmUgbGlua3MiIC0gaWNoIG9yZG5ldGUgbWljaCBlaW4uICJOZWluIHJlY2h0cyIgLSBpY2ggc3RhcnRldGUgZHVyY2guCiJEYW5uIHdpZWRlciBsaW5rcyIgLSBpY2ggd2FydGUgbGllYmVyIGVpbiBiaXNzY2hlbi4gIk5laW4uCkFuZGVyZSBSaWNodHVuZyIgLSBwdWgsIGRhcyBnaW5nIGd1dC4gU2llIGZhbmQncyB3b2hsIHBlaW5saWNoIHVuZAplbnRzY2h1bGRpZ3RlIHNpY2gsIGRhc3MgcGFzc2llcmUgaWhyIG9lZnRlci4gIkFjaCB3YXMiIHNhZyBpY2ggZGFubiwKImRhcyBnZWh0IG1pciBhdWNoIG1hbmNobWFsIHNvLCIgdW5kIGJlZ2FubiB6dSBlcnphZWhsZW46ICJlcnN0IG5ldWxpY2ggd2FyCmVzLCBpbSBOZWFuZGVydGFsLCBkYSBmcmFndGUgbWljaCBlaW5lciAtIGljaCB3ZWlzcyBnYXIgbmljaHQKbWVociB3ZXIgLSB3b2hlciBtYW4gZGVubiBTYXVyaWVya290IGJla2FlbWUuIEhtbSwgbWVpbnRlIGljaCwgZGFzcyBzZWkgaW4KZGVyIEVja2UsIGRhIGlyZ2VuZHdvIGdhbnogd2VpdCBpbSBPc3RlbiwgZWlnZW50bGljaCBzY2hvbiBlaGVyClN1ZWRvc3Rlbi4gRGEsIHdvIGRhcyBJZ3Vhbm9kb24gc2l0emUgLSBkYXMgbWFuIHVlYnJpZ2VucyBsZWljaHQga2lsbGVuCmtvZW5uZSwgYWJlciBub2NoIGVpbiBTdHVlY2sgd2VpdGVyLiBVbmQgZGVyIFR5cCwgZGVyIHdhcnRldCB1bmQKc3VjaHQgbmFjaCBkZW0gRmx1Z3NhdXJpZXI7IGVyIGZyYWd0IG1pY2ggbm9jaCBwYWFybWFsLiBJY2ggc2FnIGlobSwgZGVyCnNjaGVpc3N0IERpY2ggc2Nob24gdm9sbCwgRHUgbXVzc3Qgd2FydGVuLi4uIgoKQW4gZGllc2VyIFN0ZWxsZSAtIGRpZSBBbmhhbHRlciB3YXJlbiB3b2hsIHNjaG9uIGdlcmluZ2Z1ZWdpZyB2ZXJ1bnNpY2hlcnQgLQpyZWFnaWVydCBCdW5nbGUgdW5kIG1laW50OiAiSmEga2xhciwgQm9CbywgZGFzIHdhciBkb2NoIGljaC4KTWljaCBoYXN0IER1IGluIGRpZSBmYWxzY2hlIEVja2UgZ2VzY2hpY2t0ISIgRGFzIHdhciB6dXZpZWwgLSBqZXR6dCB3b2xsdGVuCnNpZSBuaWNodCBtZWhyIG1pdCB1bnMgZmFocmVuLiAiRGEgdm9ybiBhbiBkZXIgQnVzaGFsdGVzdGVsbGUKc3RlaWdlbiB3aXIgYXVzLiIgIkFiZXIgaWNoIGZhaHIgRXVjaCBub2NoIGVpbiBTdHVlY2tjaGVuISBKYSByaWNodGlnLApCdW5nbGUsIG1pciBmYWVsbHQncyB3aWVkZXIgZWluIC0gZGFzIHdhcnN0IER1IGRhbWFscywgc29ycnkKbm9jaG1hbC4uLiIgIk5laW4sIGlzdCBzY2hvbiBndXQsIHdpciBtb2VjaHRlbiBkb2NoIGxpZWJlciByYXVzIGhpZXIuLi4iCkRhcyB3YXIgbmljaHQgc28gZWluZmFjaCwgZGllIFR1ZXIgZ2luZyBuaWNodCBhdWYuIFNpZSBnZXJpZXRlbiBpbiBQYW5pay4KIktpbmRlcnNpY2hlcnVuZyIgbWVpbnRlIFphcmRveiB1bmQgd2FyIGlobmVuIGJlaGlsZmxpY2guCkZyb2ggdWViZXIgZGllIHdpZWRlcmdld29ubmVuZSBGcmVpaGVpdCBncnVlYmVsbiB3b2hsIGpldHp0IG5vY2ggendlaQpNdWVuc3RlcmFuZXIgQW5oYWx0ZXIgdWViZXIgZGllIHNlbHRzYW1lbiBHZXN0YWx0ZW4sIGRpZSBzaWNoIGltCk5lYW5kZXJ0YWwgdm9uIEZsdWdzYXVyaWVybiB6dXNjaGVpc3NlbiBsYXNzZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvbXB1dGVyPyBXb3p1PyAoWWVuZGksIDEzLiBGZWIgMTk5NSwgMjA6Mzc6MDMpOgoKRXhjZXJwdGVkIGZyb20gdGhlIGJ1c2luZXNzIHNlY3Rpb24gb2YgVGhlIEthbnNhcyBDaXR5IFN0YXIsIEphbiAxNywgMTk5NToKCiJDb21wdXRlcnMgaW4gdGhlIGZ1dHVyZSBtYXkgd2VpZ2ggbm8gbW9yZSB0aGFuIDEuNSB0b25zLiIKLSBQb3B1bGFyIE1lY2hhbmljcywgZm9yZWNhc3RpbmcgdGhlIHJlbGVudGxlc3MgbWFyY2ggb2Ygc2NpZW5jZSwgMTk0OS4KCiJJIHRoaW5rIHRoZXJlIGlzIGEgd29ybGQgbWFya2V0IGZvciBtYXliZSBmaXZlIGNvbXB1dGVycy4iCi0gVGhvbWFzIFdhdHNvbiwgY2hhaXJtYW4gb2YgSUJNLCAxOTQzLgoKIkkgaGF2ZSB0cmF2ZWxlZCB0aGUgbGVuZ3RoIGFuZCBicmVhZHRoIG9mIHRoaXMgY291bnRyeSBhbmQgdGFsa2VkIHdpdGggdGhlCmJlc3QgcGVvcGxlLCBhbmQgSSBjYW4gYXNzdXJlIHlvdSB0aGF0IGRhdGEgcHJvY2Vzc2luZyBpcyBhIGZhZCB0aGF0IHdvbid0Cmxhc3Qgb3V0IHRoZSB5ZWFyLiIKLSBUaGUgZWRpdG9yIGluIGNoYXJnZSBvZiBidXNpbmVzcyBib29rcyBmb3IgUHJlbnRpY2UgSGFsbCwgMTk1Ny4KCiJCdXQgd2hhdCAuLi4gaXMgaXQgZ29vZCBmb3I/IgotIEVuZ2luZWVyIGF0IHRoZSBBZHZhbmNlZCBDb21wdXRpbmcgU3lzdGVtcyBEaXZpc2lvbiBvZiBJQk0sCjE5NjgsIGNvbW1lbnRpbmcgb24gdGhlIG1pY3JvY2hpcC4KCiJUaGVyZSBpcyBubyByZWFzb24gYW55b25lIHdvdWxkIHdhbnQgYSBjb21wdXRlciBpbiB0aGVpciBob21lLiIKLSBLZW4gT2xzb24sIHByZXNpZGVudCwgY2hhaXJtYW4gYW5kIGZvdW5kZXIgb2YKRGlnaXRhbCBFcXVpcG1lbnQgQ29ycC4sIDE5NzcuCgoKW0tlaW4gS29tbWVudGFyCiAgICAgIHZvbgogICAgIFllbmRpICAgICBdCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29mdHdhcmUgZnVlciBBbWlzLi4uLiAoUm9jaHVzLCAxMy4gRmViIDE5OTUsIDIxOjMyOjEwKToKS3VlcnpsaWNoIGVyc2NoaWVuIGluIGNvbXAuYXJjaGl2ZXMubXNkb3MuYW5ub3VuY2UgZm9sZ2VuZGUgQW5rdWVuZGlndW5nOgpndW5zMzAxLnppcCAgICAgS2VlcHMgdHJhY2sgb2YgeW91ciBmaXJlYXJtcyBhbmQgcmVsb2FkcwoKTnVyIEFtaXMga29lbm5lbiB3b2hsIGF1ZiBkaWUgSWRlZSBrb21tZW4sIHNvbGNoZSBQcm9ncmFtbWUgenUgc2NocmVpYmVuIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBlciBBbmhhbHRlciBkdXJjaCBkYXMgbmFlY2h0bGljaGUgTXVlbnN0ZXIuIFRlaWwgc2VjaHM6IFZvbiBkZXIgU3B1dG5pa2hhbGxlIGlucyBOZWFuZGVydGFsIChIYXIsIDE0LiBGZWIgMTk5NSwgMTA6MDU6MjEpOgojISBybj1Cb2JvIHJ0PTc5MjcwNDE0MwpIaWhpaGloaSBCdW5nbGUhCktsYXNzZSwgRGVpbiBsaXRlcmFyaXNjaGVzIFRhbGVudCwKYWxzIER1IGRpZSBHZXNjaGljaHRlIGFtIFNhbXN0YWcgZXJ6YWVobHQgaGFzdCwgaGFiIGljaCBtaXIgdm9yIGxhY3ZoZW4gc2Nob24KZmFkc3N0IGluIGRpZSBob3NlIGdlbWFjaHQgOikKSGFyIChpbW1lciBub2NoIGxhY2hlbikKcQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQZXIgQW5oYWx0ZXIgZHVyY2ggZGFzIG5hZWNodGxpY2hlIE11ZW5zdGVyLiBUZWlsIHNlY2hzOiBWb24gZGVyIFNwdXRuaWtoYWxsZSBpbnMgTmVhbmRlcnRhbCAoSGFyLCAxNC4gRmViIDE5OTUsIDEwOjA2OjEzKToKIyEgcm49SGFyIHJ0PTc5Mjc1MjcyMQpBZWgsIEhhciBpc3QgYW5zY2hlaW5lbmQgaW1tZXIgbm9jaCBvZGVyIHNjaG9uIHdpZWRlciBiZXRydW5rZW4sIGRlciBhcnRpa2VsCndhciBuYXR1ZXJsaWNoIHZvbiBib2JvIHVuZCBidW5nbGUgc2FzcyBpbSBBdXRvIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVpcmF0IChaYXJkb3osIDE0LiBGZWIgMTk5NSwgMTY6NTA6MjApOgpEdSBob2Vyc3QgZGllIEdsb2NrZW4gZGVyIEthcGVsbGUgaW4gZGVyIFVudGVyd2VsdC4KT2V0dGkgdW5kIFJvY2h1cyB3b2xsZW4gaGVpcmF0ZW4uCltBbGxnZW1laW46UnVkaXJhdHRlciBsYWNodF0KUm9jaHVzICAgSSBTIFQgICBKIEUgVCBaIFQgICBOIEkgQyBIIFQgICBNIEUgSCBSICAgRCBBICEhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFsIHdpZWRlciBCcmF0c2NoaXN0ZW53aXR6ZSAoUXVlbmdpc3R1LCAxNS4gRmViIDE5OTUsIDAwOjAyOjAyKToKLSBXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBkZW0gdm9yZGVyc3RlbiB1bmQgZGVtIGhpbnRlcnN0ZW4KICBCcmF0c2NoZW5wdWx0PwogIFZhcmlhbnRlIDE6IEVpbiBoYWxiZXIgVGFrdAogIFZhcmlhbnRlIDI6IEVpbiBoYWxiZXIgVG9uCgotIFdhcyBoYWJlbiBCcmF0c2NoZSB1bmQgS2xvcGFwaWVyIGdlbWVpbnNhbT8KICBCZWlkZSBzaW5kIG1heGltYWwgZHJlaWxhZ2lnLgoKLSBXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBTYXJnIHVuZCBlaW5lciBCcmF0c2NoZT8KICBCZWkgZWluZW0gU2FyZyBpc3QgZGllIExlaWNoZSBpbm5lbi4KCi0gV2FzIGhhYmVuIEJyYXRzY2hlbnNvbG8gdW5kIE9yZ2FzbXVzIGdlbWVpbnNhbT8KICBFcyBrb21tdCwgZXMga29tbXQsIHVuZCBtYW4ga2FubiBzaWNoIG5pY2h0IGRhZ2VnZW4gd2VocmVuLgoKLSBXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBCcmF0c2NoZSB1bmQgZWluZXIgWndpZWJlbD8KICBXZW5uIG1hbiBlaW5lIEJyYXRzY2hlIHplcnNjaG5laWRldCwgbXVzcyBtYW4gbmljaHQgd2VpbmVuLgoKKGhvZmZlbnRsaWNoIHdhcmVuIGRpZSBuaWNodCBhbGxlIHp1IGZsYWNoKQpDaWFvLCBRdWVuZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIE1hdGhlbWF0aWtlciwgZWluIFBoeXNpa2VyIHVuZCBlaW4gTWVkaXppbmVyLi4uIChRdWVuZ2lzdHUsIDE1LiBGZWIgMTk5NSwgMDA6MDU6NDkpOgpFaW4gTWVkaXppbmVyLCBlaW4gTWF0aGVtYXRpa2VyIHVuZCBlaW4gUGh5c2lrZXIgYmVrb21tZW4gZGllIEF1ZmdhYmU6CldhcyBpc3QgMisyPyBEZXIgUGh5c2lrZXIgemllaHQgc2ljaCB6dXJ1ZWNrLCBrb21tdCB3aWVkZXIsIHNhZ3Q6IEljaCBrYW5uCm51ciBlaW5lIE5hZWhlcnVuZ3Nsb2VzdW5nIGFuYmlldGVuOiBad2lzY2hlbiBwaSB1bmQgNCBtYWwgV3VyemVsIDIuIERlcgpNYXRoZW1hdGlrZXIgemllaHQgc2ljaCB6dXJ1ZWNrLCBncnVlYmVsdCwga29tbXQgd2llZGVyLCBzYWd0OiBJY2ggd2Vpc3MKZXMgbmljaHQsIGFiZXIgaWNoIHdlaXNzIHNvdmllbDogRXMgR0lCVCBlaW5lIExvZXN1bmcuIERlciBNZWRpemluZXIgc2FndDoKV2llc28sIGlzdCBkb2NoIGdhbnogZWluZmFjaDogNCEgRGllIGFuZGVyZW4gYmVpZGVuIHN0b2VobmVuOiAiT09PT09oIChhbHMKb2ZmZW5lbnMgbyB6dSBzcHJlY2hlbiksIGF1c3dlbmRpZyBnZWxlcm50ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW4gTWF0aGVtYXRpa2VyLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBNZWRpemluZXIuLi4gKEF1Z3JhLCAxNS4gRmViIDE5OTUsIDE4OjI3OjEzKToKIyEgcm49UXVlbmdpc3R1IHJ0PTc5MjgwMzE0OQppY2gga2VubiBkYXMgbnVyIG1pdCBuZW0gSnVyaXN0ZW4sIGRlciBhdWYgZGllIEZyYWdlLCB3ZWl2aWVsIDIKKzIgc2VpIGVyc3RtYWwgZGllIHR1ZXJlbiBzY2hsaWVzc3QsIHZvcmhhZW5nZSB6dXppZWh0IHVudCBkYW5uIGluCnZlcnRyYXVsaWNoZW4gdG9uIHVlYmVyIGRlbiBUaXNjaCByYXVudCA6IiBVbnRlciB1bnMsIHdpZXZpZWwgc29sbCBkZW4KcmF1c2tvbW1lbj8iCgpBdWdyYSAobWlzdCBUZXJtaW5hbCEpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFBlciBBbmhhbHRlciBkdXJjaCBkYXMgbmFlY2h0bGljaGUgTXVlbnN0ZXIuIFRlaWwgc2VjaHM6IFZvbiBkZXIgU3B1dG5pa2hhbGxlIGlucyBOZWFuZGVydGFsIChCdW5nbGUsIDE2LiBGZWIgMTk5NSwgMDc6MjI6MzYpOgojISBybj1IYXIgcnQ9NzkyNzUyNzIxCkhleSEgRGFzIHdhciBkb2NoIEJvQm8uCkFiZXIgZGFzIG1pdCBkZW0gTGl0ZXJhcmlzY2hlbiBEaW5nZW5zIG5laG0gaWNoIHRyb3R6ZGVtIGFuLiA7KQoJCQkJQnVuZ2xlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUGVyIEFuaGFsdGVyIGR1cmNoIGRhcyBuYWVjaHRsaWNoZSBNdWVuc3Rlci4gVGVpbCBzZWNoczogVm9uIGRlciBTcHV0bmlraGFsbGUgaW5zIE5lYW5kZXJ0YWwgKEJ1bmdsZSwgMTYuIEZlYiAxOTk1LCAwNzoyNTowMCk6CiMhIHJuPUJ1bmdsZSBydD03OTI5MTU3NTYKTWlzdCEgRGEgc3RlaHQncyBqYS4gV2llZGVyIHp1IGZsb3R0IHJlcGx5dC4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoTWFnaWNvbGxpLCAxNi4gRmViIDE5OTUsIDE0OjE5OjI2KToKR2VyYWRlIGViZW4gYWt0dWVsbCBnZXNjaGVoZW46IDopCkR1IHdpcmZzdCBlaW5lbiBGZXVlcmJhbGwgbmFjaCBkZW0gTGljaC4KRGVyIExpY2ggZmFlbGx0IHRvdCB6dSBCb2Rlbi4KPiBEdSBoYXN0IGpldHp0IDEzNSBMZWJlbnNwdW5rdGUgdW5kIDEzMCBNYWdpZXB1bmt0ZS4KRHUgenVlY2tzdCBkYXMgS3J1bW1zY2h3ZXJ0Lgo+IGluZm8KRHUgaGFzdCAxMTQyNDUzOCBFcmZhaHJ1bmdzcHVua3RlLCAxNTk1IEFiZW50ZXVlcnB1bmt0ZSgxNTk1KSwKMTM1IExlYmVuc3B1bmt0ZSgyMTApIHVuZCAxMzEgTWFnaWVwdW5rdGUoMjEwKQpEdSBiaXN0ICJEZXIgaGVyemFsbGVybGllYnN0ZSBNYWdpY09sbGkgcmVsYXhlZC4iCkRlaW5lIEF0dHJpYnV0ZSBzZWhlbiBzbyBhdXM6CkludGVsbGlnZW56OiAyMCAoKzEpIEtyYWZ0OiAyMCAoKzEpIEF1c2RhdWVyOiAyMCAoKzEpIEdlc2NoaWNrbGljaGtlaXQ6IDE5CigrMykKVm9yc2ljaHQtTW9kdXMgKDEyMCkKQWx0ZXI6CTIwIFRhZ2UgNCBTdHVuZGVuIDE4IE1pbnV0ZW4gMiBTZWt1bmRlbi4KRGVpbiBDaGFyYWt0ZXIgaXN0IGhlaWxpZy4KPgp2b3JzaWNodCA1MApWb3JzaWNodC1Nb2R1cyAoNTApCj4gRHUgaGFzdCBqZXR6dCAxMzYgTGViZW5zcHVua3RlIHVuZCAxMzEgTWFnaWVwdW5rdGUuCgp0ZWlsZSBjYXN0IG1pdCBQdWgsIHRoZSBoYXJkZXN0IG9uZSBpcyBkZWFkLi4uIDopCkR1IGhhc3QgamV0enQgMTM3IExlYmVuc3B1bmt0ZSB1bmQgMTMyIE1hZ2llcHVua3RlLgpFaW4gTGljaCBrb21tdCBhbi4KcmF1cwogIERlciBMaWNoIGdyZWlmdCBEaWNoIG1pdCBrbm9jaGlnZW4gSGFlbmRlbiBhbi4KICBEZXIgTGljaCB0cmlmZnQgRGljaCBoYXJ0LgpEdSBoYXN0IGpldHp0IDEyOSBMZWJlbnNwdW5rdGUgdW5kIDEzMyBNYWdpZXB1bmt0ZS4KRGVyIExpY2ggZmx1Y2h0IHNjaHJlY2tsaWNoLgpEdSBoYXN0IGpldHp0IDg3IExlYmVuc3B1bmt0ZSB1bmQgMTMzIE1hZ2llcHVua3RlLgpEdSB0ZWlsc3QgQ2FzdGF3YXkgbWl0OiBQdWgsIHRoZSBoYXJkZXN0IG9uZSBpcyBkZWFkLi4uIDopCj4gICBEdSBncmVpZnN0IGRlbiBMaWNoIG1pdCBkZW0gS3J1bW1zY2h3ZXJ0IGFuLgogIER1IHZlcmZlaGxzdCBkZW4gTGljaC4KICBEZXIgTGljaCBncmVpZnQgRGljaCBtaXQga25vY2hpZ2VuIEhhZW5kZW4gYW4uCiAgRGVyIExpY2ggdHJpZmZ0IERpY2ggc2VociBoYXJ0LgpEdSBoYXN0IGpldHp0IDc1IExlYmVuc3B1bmt0ZSB1bmQgMTMzIE1hZ2llcHVua3RlLgpEZXIgTGljaCBmbHVjaHQgZnVlcmNodGVybGljaCB1bmQgRHUgc3B1ZXJzdCBlaW5lbiBTY2hsYWcgaW4gZGVyIE1hZ2VuZ2VuZC4KW1RvZDpdIEVpbiBMaWNoIGhhdCBnZXJhZGUgTWFnaWNvbGxpIHVtZ2VicmFjaHQuCgpUamEsIHNjaGFkZSBlaWdlbnRsaWNoLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMb2dmaWxlcyAoRGFuY2VyLCAxOS4gRmViIDE5OTUsIDE2OjQyOjA1KToKTmljaHQgbnVyLCBkYXNzIG1hbiBzaWNoIG1hbmNobWFsIGFscyBNYWdpZXIgZHVyY2ggZW5kbG9zZSBSZXBvcnRmaWxlcyB3dXNlbG4KZGFyZiwgZGllIGlociBtaXQgZGVuIEJlZmVobGVuICdidWcnLCAndHlwbycgZXRjLiByYW5kdm9sbCBtYWNodCwgb2hoaGggbmVpbiwKZGFubiBrb21tdCBhdWNoIG5vY2ggc293YXM6CgpBdXN6dWc6CgogVFlQTyB2b24gb2V0dGkgYXVzIC9wbGF5ZXJzL2RhbmNlci9nYW1lcy9yb29tL3BvdmFfbGEzICgxMy4gSmFuIDE5OTUpOgogRHUgZGVwcCAhCiBUWVBPIHZvbiBvZXR0aSBhdXMgL3BsYXllcnMvZGFuY2VyL2dhbWVzL3Jvb20vcG92YV9sYTMgKDEzLiBKYW4gMTk5NSk6CiBTb3JyeSBtaXNzdmVyc3RhbmRuaXMgKmxhY2gqCgpNaXNzdmVyc3RhZW5kbmlzLCBlaD8gOi0pCgpHcmluc2VuZAoKRGFuY2VyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV29tZW46IEEgQ2hlbWljYWwgQW5hbHlzaXMgKEdyaW1tYm9ybiwgMjIuIEZlYiAxOTk1LCAxNTowMzoyOSk6CgpTbywgYWxzIENoZW1pa2VyIGhhYiBpY2ggaGllciBnZW5hdSBtZWluZSBTaWNodCBkZXIgRnJhdWVuIGdlZnVuZGVuOgoKRWxlbWVudDogICAgICAgICAgRmVtYWxlIEh1bWFuCkNoZW1pY2FsIHN5bWJvbDogIFdvCkRpc2NvdmVyZXI6ICAgICAgIEFkYW0KCkF0b21pYyB3ZWlnaHQ6ICAgIEFjY2VwdGVkIGFzIDU2IGJ1dCBpcyBrbm93biB0byB2YXJ5IGZyb20gNDQgdG8gODMKICAgICAgICAgICAgICAgICAgKG11dGF0aW9ucyBoYXZlIGJlZW4ga25vd24gdG8gZXhjZWVkIDIwMCkKCkFwcHJvdmVkIEZvcm11bGE6IDk2LCA1OCwgOTkKClVzZTogICAgICAgICAgICAgIEhpZ2hseSBvcm5hbWVudGFsLCBlc3BlY2lhbGx5IGluIHNwb3J0cyBjYXJzLiBNb3N0IHBvd2VyZnVsCiAgICAgICAgICAgICAgICAgIG1vbmV5IHJlZHVjaW5nIGFnZW50IGtub3duLiBDYW4gYmUgYSBncmVhdCBhaWQgdG8KICAgICAgICAgICAgICAgICAgcmVsYXhhdGlvbiBvciBhIGNvbnRpbm91cyBzb3VyY2Ugb2YgZnJ1c3RyYXRpb24uCgpQaHlzaWNhbCBQcm9wLjogICBTdXJmYWNlcyB1c3VhbGx5IGNvdmVyZWQgaW4gcGFpbnRlZCBmaWxtLiBCb2lscyBhdCBub3RoaW5nCiAgICAgICAgICAgICAgICAgIGFuZCBmcmVlemVzIHdpdGhvdXQgcmVhc29uLiBNZWx0cyBpZiBnaXZlbiB0aGUgcHJvcGVyCiAgICAgICAgICAgICAgICAgIHRyZWF0bWVudC4gQml0dGVyIGlmIHVzZWQgaW5jb3JyZWN0bHkuIEZvdW5kIGluIHZhcmlvdXMKICAgICAgICAgICAgICAgICAgc3RhdGVzIHJhbmdpbmcgZnJvbSBjb21tb24gb3JlIHRvIHZpcmdpbiBtZXRhbC4KTm9ubWFnbmV0aWMKICAgICAgICAgICAgICAgICAgYnV0IGF0dHJhY3RlZCBieSBiYW5rIG5vdGVzLiBZaWVsZHMgdG8gcHJlc3N1cmUgYXBwbGllZCBhdAogICAgICAgICAgICAgICAgICBjb3JyZWN0IHBvaW50LiBJbiBpdHMgbmF0dXJhbCBzdGF0ZSBpdCB2YXJpZXMKY29uc2lkZXJhYmx5LAogICAgICAgICAgICAgICAgICBidXQgdGhlIHNoYXBlIGlzIG9mdGVuIGFydGlmaWNpYWxseSBjaGFuZ2VkIHRvIGNvbmZvcm0gdG8KICAgICAgICAgICAgICAgICAgdGhhdCBvZiBhIHBlcmZlY3Qgc3BlY2ltZW4uIFN1Y2ggdHJhbnNmb3JtYXRpb25zIGFyZSBvbmx5CiAgICAgICAgICAgICAgICAgIGRpc2NvdmVyZWQgYnkgYW4gZXhwZXJpZW5jZWQgZXllLiBJbiBzb21lIGluc3RhbmNlcyBtYXkKICAgICAgICAgICAgICAgICAgc3RhcnQgdG8gZ2FpbiB3ZWlnaHQgYW5kIGxvb2sgbGlrZSB0aGV5IGhhdmUgc3dhbGxvd2VkIGEKICAgICAgICAgICAgICAgICAgYmFza2V0YmFsbCBhbmQgdGhlbiBwcm9jZWVkIHRvIHRha2Ugb24gcXVhbGl0aWVzIG9mIGEKWEVST1gKICAgICAgICAgICAgICAgICAgY29waWVyIGFuZCBzdGFydCB0byBtYWtlIGNvcGllcy4KCkNoZW1pY2FsIHByb3AuOiAgIFBvc3Nlc3NlcyBhIGdyZWF0IGFmZmluaXR5IGZvciBnb2xkLCBzaWx2ZXIsIHBsYXRpbnVtIGFuZAogICAgICAgICAgICAgICAgICBwcmVjaW91cyBzdG9uZXMuIEFibGUgdG8gYWJzb3JiIGdyZWF0IHF1YW50aXRpZXMgb2YKICAgICAgICAgICAgICAgICAgZXhwZW5zaXZlIHN1YnN0YW5jZXMuIE1heSBleHBsb2RlIHNwb250YW5lb3VzbHkgaWYgbGVmdAogICAgICAgICAgICAgICAgICBhbG9uZSB3aXRoIGEgbWFsZS4gSW5zb2x1YmxlIGluIGxpcXVpZHMgYnV0IGFjdGl2aXR5IGlzCiAgICAgICAgICAgICAgICAgIGluY3JlYXNlZCBieSBzYXR1cmF0aW9uIGluIGFsY29ob2wuIFByb3BlcnRpZXMgYXJlIHZhc3RseQogICAgICAgICAgICAgICAgICBpbXByb3ZlZCBpZiBzcGVjaW1lbiBpcyBwbGFjZWQgaW4gdGhlIGRhcmsuCgpUZXN0czogICAgICAgICAgICBQdXJlIHNwZWNpbWVucyB0dXJuIGEgcm9zeSB0aW50IGlmIGZvdW5kIGluIHRoZSBuYXR1cmFsCiAgICAgICAgICAgICAgICAgIHN0YXRlLiBUdXJucyBncmVlbiBpZiBwbGFjZWQgYmVzaWRlIGEgYmV0dGVyIHNwZWNpbWVuLgogICAgICAgICAgICAgICAgICBIaWdobHkgZGFuZ2Vyb3VzIGV4Y2VwdCBpbiBleHBlcmllbmNlZCBoYW5kcywgbXVzdCBiZSB1c2VkCiAgICAgICAgICAgICAgICAgIHdpdGggZ3JlYXQgY2FyZSBhbmQgcGF0aWVuY2UgaWYgZXhwZXJpbWVudHMgYXJlIHRvCnN1Y2NlZWQuCiAgICAgICAgICAgICAgICAgIEl0IGlzIGlsbGVnYWwgdG8gcG9zc2VzcyBtb3JlIHRoYW4gb25lIHBlcm1hbmVudCBzcGVjaWVtZW4KICAgICAgICAgICAgICAgICAgYnV0IGEgY2VydGFpbiBhbW91bnQgb2YgZXhjYW5nZSBpcyBwZXJtaXNzaWJsZS4gV2hlbgogICAgICAgICAgICAgICAgICBkZXRhY2hpbmcgYSBwZXJtYW5lbnQgc3BlY2llbWVuIGdldCBhcHByb3ByaWF0ZSBjb3Vuc2VsCiAgICAgICAgICAgICAgICAgIGJlY2F1c2UgdGhlIHNwZWNpZW1lbiBjb3VsZCBkcmFpbiB0aGUgYmxvb2QgZnJvbSB5b3VyCnZlaW5zCiAgICAgICAgICAgICAgICAgIGluZGVmaW5pdGVseS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdC4gSmEsIGhhdXQgbWljaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXb21lbjogQSBDaGVtaWNhbCBBbmFseXNpcyAoR3V5YnJ1c2gsIDIyLiBGZWIgMTk5NSwgMTY6MTg6MTgpOgojISBybj1HcmltbWJvcm4gcnQ9NzkzNDYxODA5CkhtLCBHcmltbSwgd2FzIHNvbGwgbWFuIGRhIG5vY2ggenUgc2FnZW46IG1laW5lIEFuc2ljaHQgZGVyIERpbmdlCjopCkd1eWJydXNoLCBsYWVzc3Qgc2ljaCBmdWVyIHNlaW5lIFVlYmVyemV1Z3VuZyBhdWNoIHNjaGxhZ2VuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV29tZW46IEEgQ2hlbWljYWwgQW5hbHlzaXMgKFNjaHJ1bXBmaSwgMjIuIEZlYiAxOTk1LCAyMToxMTozMyk6CiMhIHJuPUdyaW1tYm9ybiBydD03OTM0NjE4MDkKU28gc2llaHN0IER1IG1pY2ggYWxzby4gR3V0IHp1IHdpc3Nlbi4uLi4uCgpTY2hydW1wZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hbnU/IChNYWdpY29sbGksIDIzLiBGZWIgMTk5NSwgMTM6MzI6NDEpOgpBbSBFaW5nYW5nIGRlcyBMdXBpbmVudGFsIGdlaGVuIG5ldWVyZGluZ3Mgc2VsdHNhbWUgRGluZ2Ugdm9yIHNpY2ggdm9yOgoKUGxvZXR6bGljaCB3aXNwZXJ0IGVpbmUgU3BoaW54IGluIERlaW5lbSBLb3BmOgonV2FydGUsIE1hZ2ljT2xsaS4gQmV2b3IgRHUgaW4gZGFzIFRhbCBkZXIgTHVwaW5lbiB0cml0dHN0LCBtdXNzdCBEdSB1bnMKZWluIGVpbmZhY2hlcyBSYWV0c2VsIGJlYW50d29ydGVuOgoKVWViZXIgbWVpbmVuIEtvZXJwZXIga2FubnN0IER1IHNjaGF1ZW4sClVuZCBkb2NoIG1pc3N0IHNpY2ggbWVpbmUgTGFlbmdlIGluIE1laWxlbi4KQmluIG9obmUgUmFzdCB1bmQgb2huZSBSdWgsClVuZCBkb2NoIHNpZWhzdCBkdSBtaWNoIGltbWVyIGFtIHNlbGJlbiBPcnQuCgpOYT8nIDogc2NoZWlzc2UKRWluZSBTcGhpbnggZmx1ZXN0ZXJ0IGluIERlaW4gT2hyOgonU2VociBndXQsIE1hZ2ljT2xsaS4gR2x1ZWNrIGF1ZiBhbGwgRGVpbmVuIFdlZ2VuLiBXaXIgd2VyZGVuJwonRGljaCBhdWYgRGVpbmVtIFJ1ZWNrd2VnIG5pY2h0IG1laHIgYmVoZWxsaWdlbi4nCgpIbSwgc28gc2VociBpY2ggYXVjaCBkYXJ1ZWJlciBuYWNoZGVua2UsIGVzIGxldWNodGV0IG1pciBuaWNodCBzbwpyaWNodGlnIGVpbi4uLi4gOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptZW5zY2hlbmhhbmRlbD8gKE5peGlob3UsIDI0LiBGZWIgMTk5NSwgMTI6MzE6NDcpOgpFcyBiZWdhYiBzaWNoIHp1IGVpbmVyIHplaXQgZGVyIGdlbGRub3Q6CgpEdSBiZWZpbmRlc3QgRGljaCBpbiBkZW0gZ3JvZXNzdGVuIFBvcnQgVmFpbmVyIEdlc2NoYWVmdC4gSGllciBrYW5uc3QgRHUKRGljaCBmdWVyIERlaW5lIEFiZW50ZXVlciBhdXNydWVzdGVuLiBGb2xnZW5kZSBCZWZlaGxlIHNpbmQgbW9lZ2xpY2g6CiAgICAgICAgemVpZ2UgICAgICAgICAgICAgICAgICAgIGthdWZlIDxnZWdlbnN0YW5kPiAob2RlciBudW1tZXIpCiAgICAgICAgemVpZ2UgcnVlKHN0dW5nZW4pICAgICAgIHZlcmthdWZlIDxnZWdlbnN0YW5kPgogICAgICAgIHplaWdlIHdhZihmZW4pICAgICAgICAgICB2ZXJrYXVmZSBhbGxlcwogICAgICAgIHplaWdlIHZlcihzY2hpZWRlbmVzKSAgICBzY2hhZXR6ZSA8Z2VnZW5zdGFuZD4KRHUga2FubnN0IGRhcyBHZXNjaGFlZnQgbmFjaCBPc3RlbiB2ZXJsYXNzZW4uCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBvc3Rlbi4KUmFuYWgsIFNpbHZhbmFzIEVpc2RyYWNoZS4KU2lsdmFuYSB3ZWlzcywgd2VyIFRhcmFtaXMgc2Nob24gZ2VmdW5kZW4gaGF0LgoKPiB2ZXJrYXVmZSBzaWx2YW5hClNpbHZhbmEgaGF0IGtlaW5lbiBtYXRlcmllbGxlbiBXZXJ0LCB0dXQgbWlyIGxlaWQuCj4gdmVya2F1ZmUgcmFuYWgKUmFuYWggaGF0IGtlaW5lbiBtYXRlcmllbGxlbiBXZXJ0LCB0dXQgbWlyIGxlaWQuCgoKCk51biBqYSBpY2ggd3Vzc3RlIGVzIHNjaG9uIGltbWVyLCBkYXNzIG1hZ2llciB3ZW5pZyB3ZXJ0IHNpbmQuIChhYmVyIGRhcyBzaWUKbnVuIGdhciBuaWNodHMgd2VydCBzaW5kCndhciBtaXIgbmV1ISkKCm5peGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlZyAhIChPZXR0aSwgMjQuIEZlYiAxOTk1LCAxNzo0MjoxOCk6Ck5ldWxpY2ggd29sbHRlIGljaCBtaXQgRWQgcXVhc3NlbG4uLi4gOgpEdSB0ZWlsc3QgRWQgbWl0OiBiaXNzdSBpbW1lciBub2NoIHZlcm1hbnRhdCA/Pz8/CkVkIGlzdCBnZXJhZGUgbmljaHQgZGE6IEFiZXIgaGFsdCBkb2NoIGRpZSBTY2huYXV6ZQoqbGFjaCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2guLi4gKERhbmNlciwgMjUuIEZlYiAxOTk1LCAwMjowODoxNik6CgpOZXVsaWNoLCBlaW5lIE1pbGxpb24gSmFocmUgdm9yIGVpbmVtIFJlc2V0Li4uLgoKSWNlVCB0ZWlsdCBEaXIgbWl0OiBrZW5uc3QgZHUgIndhcnRlbiBhdWYgZ29kb3QiID8KCkR1IHRlaWxzdCBJY2V0IG1pdDoga2xhci4uLmdvZG90IHdhciBuZSBmcmF1IDspCgpJY2VUIHRlaWx0IERpciBtaXQ6IGljaCBnbGF1YmUsIGRhcyB3YXIgZWluIHJlc2V0IDopCgpEdSB0ZWlsc3QgSWNldCBtaXQ6IDotKSBhYmVyIGVpbiB3ZWlibGljaGVyIDopCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBtZW5zY2hlbmhhbmRlbD8gKFJ1bWF0YSwgMjguIEZlYiAxOTk1LCAxNDowMTowNCk6CiMhIHJuPU5peGlob3UgcnQ9NzkzNjI1NTA3Ck1vbWVudCBtYWwsIGRhIHN0YW5kIG51cjogU2lsdmFuYSBoYXQga2VpbmVuIF9tYXRlcmllbGxlbl8gV2VydCwgWy4uLl0gIDstKQpSdW1hdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmViZW4gZ2VsZXNlbi4uLiAoQW5ndXMsIDI4LiBGZWIgMTk5NSwgMTQ6Mzk6MDApOgpJIHRyaWVkIHNub3J0aW5nIGNva2UuLi4KYnV0IHRoZSBidWJibGVzIG1hZGUgbWUgc25lZXplIQoqZ3JpbnMqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5zY2hsYWZoaWxmZSAoUm9jaHVzLCAyOC4gRmViIDE5OTUsIDE1OjQ4OjM3KToKd2hpbGUoIWFzbGVlcCgpKSBzaGVlcCsrOwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBiZWltIGlkbGVuOiAoS2V0b3MsIDI4LiBGZWIgMTk5NSwgMTg6NTA6NTEpOgpCaWxib20gdGVpbHQgRGlyIG1pdDogS2FubnN0IGR1IEZyYW56b2VzaXNjaD8KQmlsYm9tIHRlaWx0IERpciBtaXQ6IEJpc3QgZHUgZWluIGdlc2NobGFmZmVuPwo6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldSBpbSByZXAtZmlsZSAoS2V0b3MsICAxLiBNYXIgMTk5NSwgMTk6NDE6MTYpOgpJREVBIHZvbiBraXdpIGF1cyAvcGxheWVycy9rZXRvcy93b2xwL3Jvb20vd29scHJvb20gKCAxLiBNYXIgMTk5NSk6CnphdWJlcnRyYW5rc3VlY2h0aWcKCmthbm4gbWFuIGRpZXNlIGtyYW5raGVpdCBoZWlsZW4sIGlzdCBzaWUgYW5zdGVja2VuZCA/CjspIC0ga2V0b3MgLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU292aWVsIHp1IE9ldHRpcyBTZXJ2aWNlLi4uIChVbHJpa2UsICAyLiBNYXIgMTk5NSwgMTY6MjM6MzUpOgpNb2Vuc2NoLCBkYWNodGUgaWNoIG1pciwgZ2FyYW50aWVydCBuaXZlYXVsb3NlIEdlc3ByYWVjaGUhIGRhcyBpc3QKZ2VuYXUgZGFzLCB3YXMgaWNoIGpldHp0IGJyYXVjaGUhIEthdW0gZ2VkYWNodCwgc2Nob24gZ2V0YW46CgpEdSB0ZWlsc3QgT2V0dGkgbWl0OiA2NiA2OSA2NiA2OQouLi4gKGVpbmlnZSBNaW51dGVuIHZlcmdlaGVuKSAuLi4KS25hY2thcnNjaCBPZXR0aSB0ZWlsdCBEaXIgbWl0OiAqYmVlcCogaG9sZCB0aGUgbGluZSBwbGVhc2UuLi4KS25hY2thcnNjaCBPZXR0aSB0ZWlsdCBEaXIgbWl0OiAqYmVlcCogaG9sZCB0aGUgbGluZSBwbGVhc2UuLi4KS25hY2thcnNjaCBPZXR0aSB0ZWlsdCBEaXIgbWl0OiAqYmVlcCogaG9sZCB0aGUgbGluZSBwbGVhc2UuLi4KS25hY2thcnNjaCBPZXR0aSB0ZWlsdCBEaXIgbWl0OiAqYmVlcCogaG9sZCB0aGUgbGluZSBwbGVhc2UuLi4KLi4uIChzaWVoZSBvYmVuKSAuLi4KCkR1IHRlaWxzdCBPZXR0aSBtaXQ6IFdhcyBpc3QgZGVubiBudW4/CktuYWNrYXJzY2ggT2V0dGkgdGVpbHQgRGlyIG1pdDogNTAgTXVlbnplbiBmdWVyIDEwIFNla3VuZGVuIDstKSwgZGFzIGhhYiBpY2gKS25hY2thcnNjaCBPZXR0aSB0ZWlsdCBEaXIgbWl0OiBnYW56IHZlcmdlc3NlbiA7LSkpKQoKRHUgdGVpbHN0IE9ldHRpIG1pdDogaG1tbS4uLiBpY2ggd2Vpc3MgbmljaHQsIG9iIGljaCBtaXIgZGFzIGxlaXN0ZW4ga2Fubi4uLgpEdSB0ZWlsc3QgT2V0dGkgbWl0OiB1bmQgb2IgZHUgZXMgd2VydCBiaXN0IHdlaXNzIGljaCBqYSBhdWNoIG5pY2h0LgoKLi4uIChyZWxhdGl2IGt1cnplIFplaXQgc3BhZXRlcikgLi4uCktuYWNrYXJzY2ggT2V0dGkgdGVpbHQgRGlyIG1pdDogKmtyYXR6KiwgbW9tIGljaCBiaW4gZ2VyYWRlIGFtIHNjaGFmZmVuIC4uLgpLbmFja2Fyc2NoIE9ldHRpIHRlaWx0IERpciBtaXQ6IDstKSkKCi4uLiAod2llZGVyIGVpbmlnZSBaZWl0IHNwYWV0ZXIpIC4uLgpLbmFja2Fyc2NoIE9ldHRpIHJ1ZnQ6IE9ISEhISEhISEhISCBGUkVJQklFUgpLbmFja2Fyc2NoIE9ldHRpIHJ1ZnQ6IEJpcyBzcGFldGVyCgpXYXMgc29sbCBtYW4gZGF6dSBub2NoIHNhZ2VuPyBTbyBlaW4gRHJ1ZWNrZWJlcmdlciEKVW5kIHdpZWRlciBlaW5tYWwgc2llaHQgbWFuIHVlYmVyZGV1dGxpY2gsIGRhc3MgZGllIFdlcmJ1bmcgaW4gZGVuCnNlbHRlbnN0ZW4gRmFlbGxlbiBkYXMgaGFlbHQsIHdhcyBzaWUgdmVyc3ByaWNodCEKLi4uIFNjaGFkZSBlaWdlbnRsaWNoIDspCgoqZ3JpbnMqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU292aWVsIHp1IE9ldHRpcyBTZXJ2aWNlLi4uIChPZXR0aSwgIDIuIE1hciAxOTk1LCAxODowMDoxNyk6CiMhIHJuPVVscmlrZSBydD03OTQxNTc4MTUKQWxzbyBkYXp1IG11c3MgaWNoIGpldHp0IGVpbiBTdGF0ZW1lbnQgYWJnZWJlbi4uLgoKRXMgZ2FiIHdpcmtsaWNoIEZyZWliaWVyLCB3ZWlsIHdpciBkaWUgODAwIGtXCk1pa3Jvd2VsbGVucG93ZXIgdWViZXJzY2hyaXR0ZW4gaGFiZW4gISEhCgpBbnNvbnN0ZW4ga2FubiBpY2ggbnVyIHNhZ2VuLCBnZWJ0IGVpbmVtIGp1bmdlbiBhdWZzdHJlYmVuZGVuIFVudGVybmVobWVyCm5vY2ggZWluZSBDaGFuY2UgOy0pKQoKT2V0dGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZXNlIG5pZWRsaWNoZW4sIGtsZWluZW4gRGluZ2VyLi4uIChCb2JvLCAgMy4gTWFyIDE5OTUsIDEwOjQzOjAyKToKQXVzIGRlciBSZWloZSBGTFc6CkR1IHRlaWxzdCBVZ2kgbWl0OiBTaWVoIERpY2ggdm9yLCBlciBpc3QgaGVhdnkuClVnaSB0ZWlsdCBEaXIgbWl0OiBWZXJmb2xndCBlciBtaWNoIGltbWVyIG5vY2g/CkR1IHRlaWxzdCBVZ2kgbWl0OiBrYW5uIHNlaW4uLi4KCjpUb2Q6IEVpbiBXb2xwZXJ0aW5nZXIgaGF0IGdlcmFkZSBVZ2kgdW1nZWJyYWNodC4KCkhlcnpsaWNoZXMgQmVpbGVpZCwKdGhpcyB3YXMgQm9CbyBzcGVha2luZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvIGtvZW5uZW4gc2ljaCBNYWdpZXIgaXJyZW4uLi4gKFNpbHZhbmEsICAzLiBNYXIgMTk5NSwgMTE6MTI6NDcpOgpEYSBzY2hhdXQgbWFuIHNpY2ggaW4gc2VpbmVyIFJlZ2lvbiB1bSB1bmQgZGFubiBzaWVodCBtYW4gc29sY2hlIEJ1Z3M6CgpEdSBiZWZpbmRlc3QgRGljaCBpcmdlbmR3byBhdWYgZWluZW0gc3RlaWwgYW5zdGVpZ2VuZGVuIFdhbGRwZmFkIGltIExhbmQgZGVyClZlcnphdWJlcnRlbi4gUmVjaHRzIHVuZCBsaW5rcyBkZXMgUGZhZGVzIHdhY2hzZW4gZWlnZW5hcnRpZ2UgQmFldW1lLCBkaWUKRGljaAphbiBkZW4gR2xvY2tlbndhbGQgZXJpbm5lcm4uIEVpbmUgbGVpc2UgU3BoYWVyZW5tdXNpayBsaWVndCBpbiBkZXIgYWJzb2x1dApzdGlsbGVuIEx1ZnQgdW5kIGtlaW4gYW5kZXJlcyBHZXJhZXVzY2ggZXJyZWljaHQgRGVpbmUgT2hyZW4uIEVzIGlzdAp0b3RlbnN0aWxsLi4uCkVzIGdpYnQgendlaSBzaWNodGJhcmUgQXVzZ2FlbmdlOiBzdWVkd2VzdGVuIHVuZCBub3Jkb3N0ZW4uCktuYWNrYXJzY2ggT2V0dGkgcnVmdDogbW9pbgpMaXNhIHJ1ZnQ6IGJydW1tZWwgZHUgZG9vZmVyIHNhY2shISEgZGVtIG11ZWxsZXIgc29sbCBpY2ggZG9jaCBuZW4gYnJpZWYKTGlzYSBydWZ0OiBnZWJlbiEhIQpBYmVuZHN0ZXJuIHJ1ZnQ6IHZpcGVyCkJvYm8gcnVmdDogT2V0dGlsaSEKS25hY2thcnNjaCBPZXR0aSBydWZ0OiBTY2hydW1wZmlpaWlpaWluY2hlbiAhISEhClBvbGFyaGV4Y2hlbiBTY2hydW1wZmkgcnVmdDogT0VUVElMSUlJCgpTaWx2YW5hIC0gaGF0dGUgc2ljaCBUb3RlbnN0aWxsZSBhbmRlcnMgdm9yZ2VzdGVsbHQuICA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmdlc2NobWFja2xvcyA7LSkgKFNtYXVnLCAgMy4gTWFyIDE5OTUsIDEzOjAxOjI1KToKaGkKCm1hbCBhbGxlIGRpZSBrbGVpbmUgbmllZGxpY2hlIEJhYmllcywgbWl0IGlocmVuIGtsZWluZW4gbmllZGxpY2hlbiBGaW5nZXJjaGVuCnVuZCBtaXQgaWhyZW4ga2xlaW5lbiBsaWVibGljaGVuIEZ1ZXNzY2hlbiB1bmQgbWl0IGlocmVuIGtsZWluZW4gbmllZGxpY2hlbgpNdWVuY2hlbiAobWl0IGRlbSBzaWUgaW1tZXIgc28gc3Vlc3MgbGFlY2hlbG4sIHVuaGVpbWxpY2ggc3Vlc3MgZmluZGVuCk1VRVNTRU4KSkVUWlQgPHE+IERSVUVDS0VOLgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKRjogd2FzIGlzdCBkYXM6IGVzIGlzdCByb3Qgc2l0enQgdm9yIGVpbmVtIFNwaWVnZWwgdW5kIHdpcmQgaW1tZXIga2xlaW5lcj8KCkE6IGVpbiBCYWJ5LCBkYXMgc2ljaCBtaXQgZWluZW0gRXJkYXBmZWxzY2hhZWxlciBmcmlzaWVydCEgOi0pCgpzbWF1ZyAoZ2VzY2htYWNrbG9zKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2F0ZWdvcmlzY2ggKEtsaW5nZSwgIDQuIE1hciAxOTk1LCAwNTo0MzoyNyk6Ck1hbiBrYW5uIGRpZSBNZW5zY2hlbiBncnVuZHNhZXR6bGljaCBpbiAyIEthdGVnb3JpZW4gZWludGVpbGVuLgpEaWUgamVuaWdlbiB3ZWxjaGUgZGVyIGVyc3RlbiBLYXRlZ29yaWUgYW5nZWhvZXJlbiB0ZWlsZW4gTWVuc2NoZW4KZ3J1bmRzYWV0emxpY2ggaW4gMiBLYXRlZ29yaWVuIGVpbi4KRGllIGplbmlnZW4gd2VsY2hlIGRlciAydGVuIEthdGVnb3JpZSB6dXp1b3JkbmVuIHNpbmQsIHR1biBkaWVzIG5pY2h0Lgo7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGdlc2NobWFja2xvcyA7LSkgKENhbXBpbm8sICA3LiBNYXIgMTk5NSwgMDk6NDM6MTEpOgojISBybj1TbWF1ZyBydD03OTQyMzIwODUKUGZ1aSAhISEKU29sY2hlIFdpdHplIHNvbGx0ZXN0IER1IHdpcmtsaWNoIG5pY2h0IHZlcm9lZmZlbnRsaWNoZW4sIHp1bWluZGVzdApuaWNodCBoaWVyLiBWaWVsIFNwYXNzIGJlaW0gQnJpZWZlIGxlc2VuLgogL1wKLwpcCiBcL2FtcGlubwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW0gS2FtcGYgZ2VnZW4gZGVuIEdlaWVyIGdlc2VoZW4gKEFjcmltb24sICA3LiBNYXIgMTk5NSwgMTI6Mjc6MzMpOgogIER1IGdyZWlmc3QgZGVuIEdlaWVyIG1pdCBibG9zc2VuIEhhZW5kZW4gYW4uCiAgRHUgdHJpZmZzdCBkZW4gR2VpZXIgaGFydC4KICBEZXIgR2VpZXIgZ3JlaWZ0IERpY2ggbWl0IHNlaW5lbiBGbHVlZ2VsbiBhbi4KICBEZXIgR2VpZXIgdHJpZmZ0IERpY2ggc2VociBoYXJ0LgpEdSBoYXN0IGpldHp0IDc3IExlYmVuc3B1bmt0ZSB1bmQgMjIgTWFnaWVwdW5rdGUuCkRlciBHZWllciBwaWNrdCBEaXIgYXVmIGRlbSBLb3BmIGhlcnVtLgogIERlciBHZWllciBraXR6ZWx0IERpY2ggYW0gQmF1Y2guCkR1IGhhc3QgamV0enQgNzYgTGViZW5zcHVua3RlIHVuZCAyMiBNYWdpZXB1bmt0ZS4KCipncmlucyoKCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFjcmltb24gKFJ4dGVjaCwgIDcuIE1hciAxOTk1LCAxMzo0NzoyNyk6ClRqYSBBY3JpbW9uLCBpc3Mgd29obCBkdW1tIGdlbGF1ZmVuLgoKU2NoZWluc3QgamEgbmUgV2FtcGUgenUgaGFiZW4sIGRpZSBiaXMgenVtIEtvcGYgcmVpY2h0LgoKR3JpbnNlbmQgUnh0ZWNoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTYXVzdGFsbCA6PiAoSGlnaGxhbmRlciwgIDguIE1hciAxOTk1LCAxNToyNjoxOCk6CkluIEhhcmRpbHMgSGF1czoKWy9kL3NlaGVyL3dhcmdvbi9oYWV1c2VyL3NhdmVdIFdhdCBudT8gdW50IGhhZW5nZW1hdHRlCkVpbmUgZ3Jvc3NlIEhhZW5nZW1hdHRlIGhhZW5ndCBpbm1pdHRlbiBkZXMgQ2hhb3MuIE5hamEsIGJlaSBkZW0gZ2FuemVuCkdlcnVlbXBlbCBhdWYgZGVtIEZ1c3Nib2RlbiBpc3QgZGFzIHZpZWxsZWljaHQgd2lya2xpY2ggZGllIGJlc3RlIExvZXN1bmcuClsvZC9zZWhlci93YXJnb24vaGFldXNlci9zYXZlXSBXYXQgbnU/IHVudCBmdXNzYm9kZW4KU293YXMgc2llaHN0IER1IGhpZXIgbmljaHQhCgpXaWUgbWFuIHNpZWh0LCBnYW56IHNjaG9lbiB2aWVsIEdlcnVlbXBlbCA6PgogIEhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBpbSBPcmtsYWdlciAoWGFudGhpYSwgMTMuIE1hciAxOTk1LCAxOTo0NTowNSk6CnVudCBvcmsKRGVyIFdhZWNodGVyIHNjaGF1dCBEaWNoIHVuZnJldW5kbGljaCBhbiB1bmQgd2VkZWx0IG1pdCBzZWluZW0gS3J1bW1zY2h3ZXJ0LgpFciBpc3QgbGVpY2h0IGFuZ2VzY2hsYWdlbi4KRXIgdHJhZWd0IGJlaSBzaWNoOgpFaW4gS3J1bW1zYWViZWwgKGdlenVlY2t0KS4KCkphIHdhcyBkZW5uIG51bj8gS3J1bW1zY2h3ZXJ0IG9kZXIgS3J1bW1zYWViZWw/Cgo6KSkKWGFudGhpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVsaWNoIGltIE9ya2xhZ2VyIChHdXlicnVzaCwgMTMuIE1hciAxOTk1LCAyMDoxODozMCk6CiMhIHJuPUpvZiBydD03OTUxMjIxNDQKZ3JpbnMKaXN0IGRhcyBkaWUgaG9oZSBLdW5zdCBkZXIgSXJvbmllPwpvZGVyIGRlciBNdXQgZGVzIEdvdHRlcyB6dW0gSHVtb3I/Cm9kZXIgdmllbGxlaWNodCBHdXRnbGFldWJpZ2tlaXQ/Ckd1eWJydXNoLCBpbW1lciBub2NoIGdyaW5zZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5kZXJlcyBXb3J0IChCbG9vZHloYXJyeSwgMTYuIE1hciAxOTk1LCAxNTozMTozNik6CgpBbmRlcmVzIFdvcnQgZnVlciBkaWNrZSBGcmF1Pz8/Pz8/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgouLi4gTmFzY2htYXNjaGluZSEhIQoKQmxvb2R5IEhhcnJ5ICAtICBNYXNzYWdyaWVyZW4sIEF1c3JhdWJlbiB1bmQgS2llbGhvbGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSm9mIGlzdCBzZWxic3QgZnVlciBNYWdpZXIgenUgc2Nod2VyLiAoS2V0b3MsIDE2LiBNYXIgMTk5NSwgMTU6NDI6MjgpOgpDcmVhdGl2ZSBhbiBhbGxlIE1hZ2llcjogd2VyIGthbm4gbWlyIGpvZiBtYWwgYWt0aXZpZXJlbj8gZXIgaWRsZXQgd2llZGVyIG1hbApDcmVhdGl2ZSBhbiBhbGxlIE1hZ2llcjogKmJpdHRlKgp0cmFucyBqb2YKSm9mIHdpbGwgbmljaHQga29tbWVuICEKWmFyZG96IHNhZ3Q6IEpvZiBtdXNzIGRvY2ggaXJnZW5kd2llIHp1IGJld2VnZW4gc2Vpbi4uLgpaYXJkb3ogZmFlbmd0IGFuIHp1IGRlbmtlbi4KRHUgc2Fnc3Q6IGdlaHQgbmljaHQ7IGVyIGlzdCB6dSBzY2h3ZXIKWmFyZG96IHNhZ3Q6IEVyIHdpZWd0IGRvY2ggbnVyIC0xMjM0NTY3OApaYXJkb3ogc2FndDogTWlzdCwgaWNoIHdpbGwgamV0enQgSm9mIGJld2VnZW4gOi0pClphcmRveiBzYWd0OiBBZGRQdXJzdWVyIGZ1bmt0aW9uaWVydCBhdWNoIG5pY2h0CkNyZWF0aXZlIGFuIGFsbGUgTWFnaWVyOiBqb29vb29vaG9vb29vb29mICpCUlVFTEwqICpTQ0hSRUkqCkR1IHNhZ3RzdDogU2NoYWV0emUgc2VpbiBtb3ZlIGlzdCBtYW5pcHVsaWVydCA7KQouLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoQ2F0d2VhemxlLCAxNi4gTWFyIDE5OTUsIDE2OjIyOjQ3KToKUGxhcHBlcm1hdWwgcnVmdDogQVJHSCwgS2V0emVycyBab21iaWV3b2xwaWUgaGF0IG1laW5lbiBCdW1lcmFuZyEhISEKW1RvZDpdIEVpbiBXb2xwZXJ0aW5nZXIgaGF0IGdlcmFkZSBLZXR6ZXIgdW1nZWJyYWNodC4KTmljZSwgaXNuJ3QgaXQ/IDotKQpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGTFcgKFllbmRpLCAxNi4gTWFyIDE5OTUsIDE2OjI1OjQwKToKIyEgcm49Q2F0d2VhemxlIHJ0PTc5NTM2NzM2NwoKSG1tbS4uLiBEYSBzb2xsdGUgbWFuIGVpbmUgdW5hYmhhZW5naWdlIFVudGVyc3VjaHVuZ3Nrb21taXNzaW9uIGVpbnNjaGFsdGVuOgpaYWVobHQgZGFzIGpldHp0IGFscyBQSyBvZGVyIG5pY2h0PwoKICAgICAgIFlUWSwgZ3J1ZWJlbG5kCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BvdCBMaWdodHMgKEFyYWNobmEsIDE3LiBNYXIgMTk5NSwgMTQ6MTQ6NDYpOgpXaHkgZGlkIHRoZSBhcmNoYWVvbG9naXN0IGdpdmUgdXAgaGlzIGpvYj8KQmVjYXVzZSBoaXMgYnVzaW5lc3Mgd2FzIGluIHJ1aW5zLgoKV2h5IGRpZCBLYWxyIE1hcnggZHJpbmsgb25seSBoZXJiYWwgdGVhPwpCZWNhdXNlIHByb3BlciB0ZWEgaXMgdGhlZnQuCgpBcmFjaG5hIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcgKFdhcmdvbiwgMTcuIE1hciAxOTk1LCAxNDoxOTozMCk6CltBbGxnZW1laW46U2VwcGxdIHdhcyBpcyBuZSB3dWVyZ2VydGFubmU/CltUb2Q6XSBFaW5lIFd1ZXJnZXJ0YW5uZSBoYXQgZ2VyYWRlIFNlcHBsIHVtZ2VicmFjaHQuCltBbGxnZW1laW46QXNtb2Rpc10gb2gsIEZMVwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZMVyAoTWF0ZWVzZSwgMTguIE1hciAxOTk1LCAwMjo1Nzo1Mik6CiMhIHJuPVdhcmdvbiBydD03OTU0NDYzNzAKU2VxdWVuemVyIHJ1ZnQ6IE5vY2htYWwhCltUb2Q6XSBFaW4gS29lbmlnIGhhdCBnZXJhZGUgU2VxdWVuemVyIHVtZ2VicmFjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZW1pc2NodGVzLi4uIChHcmltbWJvcm4sIDE4LiBNYXIgMTk5NSwgMDM6NDQ6NTQpOgoKSG1tLCBuYWphLCBTZXF1ZW56ZXIgd2FyIGVpbiBad2VpdGllIHZvbiBtaXIgdW0gZGllIG5ldWUgVG9kZXNzZXF1ZW56IHp1CnNlaGVuLiBEaWUgd2FyIHNvIGtsYXNzZSBkYXNzIGVyIHNpZSBnbGVpY2ggbm9jaG1hbCBzZWhlbiB3b2xsdGUuLi4gOy0pCgoKRWluIHdlaXRlcmVyIEFuc2F0eiB6dXIgUmV0dHVuZyB2b24gTUcga2FtIGF1ZiBkZW0gS3VsdHVya2FuYWw6CltLdWx0dXI6V2VyYmVwYXVzZV0gU2luZCBTaWUgbmVydm9lcywgYWJnZXNwYW5udCwgYWdyZXNzaXY/IERhbm4gZ29lbm5lbiBzaWUKW0t1bHR1cjpXZXJiZXBhdXNlXSBzaWNoIG1hbCBldHdhcyBHdXRlcywgc3BpZWxlbiBzaWUgTW9yZ2VuR3JhdWVuLCBzb2xhbmdlZXMKW0t1bHR1cjpXZXJiZXBhdXNlXSBub2NoIGdpYnQgISEKCgpbS3VsdHVyOldlcmJlcGF1c2VdIFN0ZWluYmVpc3NlcmtpbmQ6IE1hbWksIE1hbWksIGljaCB3aWxsIGV0d2FzIFN1ZXNzZXMgIQpbS3VsdHVyOldlcmJlcGF1c2VdIFN0ZWluYmVpc3NlcnBhcGk6IEtvbW0sIGljaCBoYXUgZGlyIGlyZ2VuZGVpbmVuCltLdWx0dXI6V2VyYmVwYXVzZV0gQWJlbnRldXJlciAhCltLdWx0dXI6V2VyYmVwYXVzZV0gU3RlaW5iZWlzc2VybWFtaTogQWJlciBQYXBpLCBkb2NoIG5pY2h0IGlyZ2VuZGVpbmVuLCBuaW1tCltLdWx0dXI6V2VyYmVwYXVzZV0gZWluZW4gU2VoZXIsIGRpZSBoYWJlbiBkaWUgRXh0cmFwb3J0aW9uIFphdWJlcnRyYW5rCgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoLCBpbSBJbnRlcm5ldC4uLiAoWWVuZGksIDIwLiBNYXIgMTk5NSwgMTQ6Mzc6MzQpOgoKIkxpdHRsZSBXaWxsaWUgdG9vayBhIGRyaW5rLAogQnV0IG5vdyBoZSBkcmlua3Mgbm8gbW9yZS4KIEZvciB3aGF0IGhlIHRob3VnaHQgd2FzIEggMiBPLAogV2FzIEggMiBTTyA0LiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSVUVMUFMhIChLcmlnaSwgMjAuIE1hciAxOTk1LCAxNDo1Nzo0Mik6CkluIGRlciBad2VyZ2Vua2FwZWxsZSBnZXNlaGVuOgpQYXJhY2Vsc3VzIGtvbW10IGFuLgpQYXJhY2Vsc3VzIGhhdCBnZXJhZGUgZGllIFZlcmJpbmR1bmcgenUgTW9yZ2VuR3JhdWVuIGdla2FwcHQuClBsb2V0emxpY2ggd2VpY2h0IGFsbGVzIExlYmVuIGF1cyBQYXJhY2Vsc3VzClBhcmFjZWxzdXMgcnVlbHBzdC4KCldlbm4gamV0enQgc2Nob24gbmV0ei1Ub3RlIHNpY2ggdW5hbnN0YWVuZGlnIGJlbmVobWVuIC4uLi4KCktyaWdpCihtZWluIEVSU1RMSU5HU0FSVElLRUwhISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSVUVMUFMhIChadWVyaWxldSwgMjAuIE1hciAxOTk1LCAxODozNzoxMik6CiMhIHJuPUtyaWdpIHJ0PTc5NTcwNzg2MgpzYWxpLAphZW1tIGltIG1pdHRlbGFsdGVyIHdhciBydWVscHNlbiBlaW5lIGFuc3RhbmRzc2FjaGUgIQpEYSBoYXR0ZSBtYW4gbm9jaCBzdGVlbCAhISA9OikpCgpUc2NoYXUgICAgVm9yc3RhZHRzbWFnaWVyIFp1ZXJpbGV1ICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyYWQgZ2VzZWhlbiAoTWFyc3VwaWxhbWksIDIxLiBNYXIgMTk5NSwgMDI6MjI6MDIpOgpHcmFkIGViZW4gcGFzc2llcnQ6IGdyb3NzZXMgb3V0aW5nCltBbGxnZW1laW46Qm9pbmddIGljaCBiaW4gZGVyIGd1ZXRpZ3N0ZSBnb3R0IHVlYmVyaGF1cHQgLi4uCgpNYXJzdXBpbGFtaSAoZ3JpbnNlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3JhZCBnZXNlaGVuIChCb2luZywgMjEuIE1hciAxOTk1LCAwMjo1ODoxMik6CiMhIHJuPU1hcnN1cGlsYW1pIHJ0PTc5NTc0ODkyMgpJY2ggcHJvdGVzdGllcmUgZW50c2NoaWVkZW5zdCBkYWdlZ2VuIGhpZXIgbnVyIHVudm9sbHN0YWVuZGlnIHppdGllcnQKenUgd2VyZGVuIC4uLiA7KQogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpxdWFrIHF1YWsgKENhcmFkaHJhcywgMjEuIE1hciAxOTk1LCAwMzoyODozNSk6CkRpZSBiZXJ1ZWhtdGUgQWJlbnRldXJlcmdpbGRlLgpFcyBnaWJ0IGVpbmVuIHNpY2h0YmFyZW4gQXVzZ2FuZzogbm9yZGVuLgpKaW1EaUdyaXogZGllIEVkZWxzdGFobHJhdHRlLgpFaW5lIFplaXR1bmcuCkVpbiBTcGVuZGVucGxha2F0LgpFaW4gSGFuZGJ1Y2ggZnVlciBBbmZhZW5nZXIuCj5lcmhvZWhlCldpbGxvbW1lbiBhdWYgRGVpbmVyIG5ldWVuIFN0dWZlLgpEdSBiaXN0IGpldHp0IChzdWVzcyBxdWFrKSAobGV2ZWwgMjkpLgoKICAgICBuaWVkbGljaCwgaWNoIGJpbiBqZXR6dCBzdWVzcyBxdWFrIDopKSAqZnJldSoKICAgICBWb3JuYW1lIHN1ZXNzIHVuZCBOYWNobmFtZSBxdWFrCgogICAgICAgICAgdHNjaG9lICAgICAgICBDYXJhZGhyYXMgYWVoIHN1ZXNzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoxNiByZWFzb25zIHdoeS4uLiAoV2FyZ29uLCAyMS4gTWFyIDE5OTUsIDE0OjQyOjQxKToKMTYgcmVhc29ucyB3aHkgR29kIG5ldmVyIHJlY2VpdmVkIHRlbnVyZSBhdCB0aGUgdW5pdmVyc2l0eToKCjEuICBIZSBoYWQgb25seSBvbmUgbWFqb3IgcHVibGljYXRpb24KMi4gIEFuZCBpdCB3YXMgaW4gSGVicmV3CjMuICBBbmQgaXQgaGFkIG5vIHJlZmVyZW5jZXMKNC4gIEFuZCBpdCB3YXMgbm90IHB1Ymxpc2hlZCBpbiBhIHJlZmVyZWVkIGpvdXJuYWwKNS4gIEFuZCBzb21lIGV2ZW4gZG91YnRlZCB0aGF0IEhlIHdyb3RlIGl0IEhpbXNlbGYuCjYuICBJdCBtYXkgYmUgdHJ1ZSB0aGF0IEhlIGNyZWF0ZWQgdGhlIHdvcmxkLCBidXQgd2hhdCBoYXMgSGUgZG9uZSBzaW5jZQogICAgIHRoZW4/CjcuICBIaXMgY29vcGVyYXRpdmUgZWZmb3J0cyBoYXZlIGJlZW4gcXVpdGUgbGltaXRlZC4KOC4gIFRoZSBzY2llbnRpZmljIGNvbW11bml0eSBoYXMgaGFkIGEgdmVyeSByb3VnaCB0aW1lIHRyeWluZyB0byByZXBsaWNhdGUKICAgICBIaXMgcmVzdWx0cy4KOS4gIEhlIG5ldmVyIGFwcGxpZWQgdG8gdGhlIEV0aGljcyBCb2FyZCBmb3IgcGVybWlzc2lvbiB0byB1c2UgaHVtYW4KICAgICBzdWJqZWN0cy4KMTAuIFdoZW4gb25lIGV4cGVyaW1lbnQgd2VudCBhd3J5LCBIZSB0cmllZCB0byBjb3ZlciBpdCB1cCBieSBkcm93bmluZwogICAgICB0aGUgIHN1YmplY3RzLgoxMS4gV2hlbiBzdWJqZWN0cyBkaWQgbm90IGJlaGF2ZSBhcyBwcmVkaWN0ZWQsIEhlIG9mdGVuIHB1bmlzaGVkIHRoZW0sIG9yCiAgICAgIGp1c3QgZGVsZXRlZCB0aGVtIGZyb20gdGhlIHNhbXBsZS4KMTIuIEhlIHJhcmVseSBjYW1lIHRvIGNsYXNzOiBIZSBqdXN0IHRvbGQgc3R1ZGVudHMgdG8gcmVhZCB0aGUgYm9vay4KMTMuIEhlIGhhcyBoaXMgc29uIHRlYWNoIHRoZSBjbGFzcy4KMTQuIEhlIGV4cGVsbGVkIEhpcyBmaXJzdCB0d28gc3R1ZGVudHMgZm9yIGxlYXJuaW5nIHRvbyBtdWNoLgoxNS4gQWx0aG91Z2ggdGhlcmUgd2VyZSBvbmx5IHRlbiByZXF1aXJlbWVudHMsIG1vc3Qgc3R1ZGVudHMgZmFpbGVkIEhpcwogICAgICB0ZXN0cy4KMTYuIEhpcyBvZmZpY2UgaG91cnMgd2VyZSBpbmZyZXF1ZW50LCBhbmQgdXN1YWxseSBoZWxkIG9uIGEgbW91bnRhaW4gdG9wLgoKW2dlZnVuZGVuIGluIGFsdC5zY2kucGh5c2ljcy5uZXctdGhlb3JpZXNdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2h3YWNoZXIgUmluZy4uLiAoVG9tbXksIDIyLiBNYXIgMTk5NSwgMTk6NTg6MDEpOgpHZXJhZGUgaW0gWndlcmdlbmxhZGVuIHBhc3NpZXJ0OgoKc2NoYWV0eiByaW5nIDIKRHUgYmlzdCBkZW0gS3VwZmVycmluZyBoYXVzaG9jaCB1ZWJlcmxlZ2VuLgpEZWluZSBSdWVzdHVuZyBpc3QgdW5nbGF1YmxpY2ggdmllbCBiZXNzZXIgYWxzIGRpZSBkZXMgS3VwZmVycmluZ3MuCkRlaW5lIFdhZmZlIGlzdCBlaWdlbnRsaWNoIHp1IGd1dCBmdWVyIGRpZXNlbiBHZWduZXIuCgoqc3RhdW4qIFdvbGx0ZSBlaWdlbnRsaWNoIG51ciB3aXNzZW4gd2FzIGVyIHdlcnQgaXN0Li4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2Nod2FjaGVyIFJpbmcuLi4gKEdyaW1tYm9ybiwgMjMuIE1hciAxOTk1LCAxODo1NDoyNCk6CiMhIHJuPVRvbW15IHJ0PTc5NTg5ODY4MQoKV2FzIGhhdCBkZW5uIGRhbm4gdG9ldGUga3VwZmVycmluZyBnZWJyYWNodD8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdC4gV2lsbCBkaWUgR0FOWkUgU3RvcnkgaG9lcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTY2h3YWNoZXIgUmluZy4uLiAoVG9tbXksIDI0LiBNYXIgMTk5NSwgMTE6MTQ6MDgpOgojISBybj1HcmltbWJvcm4gcnQ9Nzk1OTgxMjY0CkdhciBuaXguIEhhYiBtaWNoIG5pY2h0IGdldHJhdXQuLi4uLiA7KQoKQW0gZW5kZSBoYXQgZGVyIHNpY2ggbnVyIHZlcnN0ZWxsdC4uLgoKVG9tbXkuLi4uZGFzIHdhciBkaWUgR0FOWkUgU3RvcnkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1bGljaCwgaW0gSW50ZXJuZXQuLi4gKEFuY2FsYWdvbiwgMjUuIE1hciAxOTk1LCAxMTo0OTo1Nik6CiMhIHJuPVllbmRpIHJ0PTc5NTcwNjY1NApVbmQgc2Nob24gd2llZGVyIGljaCEKQWxzbyBZZW5kaSwgd2VubiB3aXIgZGljaCBuaWNodCBoYWV0dGVuLi4uLi4uCkR1IGhhc3QgaGllciBzY2hvbiBlaW5pZ2VzIGx1c3RpZ2UgYXVzIGRlbSBuZXQgaGllciBhYmdlbGFkZW4sIHVuZCBqZXR6dCBpc3QKZXMgYW4gZGVyIHplaXQgZGFzc2RhcyBtYWwgZWluZXIgYW5lcmtlbm50LgpBbHNvLCBZZW5kaS4gVmllbGVuIGRhbmsgZnVlciBkaWUgdmllbGVuIFNjaG11bnplbGZhbHRlbiwgZGllIGR1IG1pcgpiZXNjaGVyc3QgdW5kIGljaCBob2ZmZSwgZGFzcyBlcyBub2NoIG1laHIgd2VyZGVuLiBXZWl0ZXIgc28hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXRlPyBIYXRlLCBiaXN0ZSBub2NoIGRhPyAoQ2F0d2VhemxlLCAyOC4gTWFyIDE5OTUsIDE3OjA1OjU2KToKV2FzIG1hbiBzbyBhbGxlcyBpbSBTcG9uc29ybG9nZmlsZSBmaW5kZXQgOi0pCgpEaWUsIDI4LiBNYXIgMTk5NSwgMDA6MTA6NTQ6IEVpbiBGZWhsZXIgaW0gUlpHIG1hY2h0IEhhdGUgenVtIExlYXJuZXIuCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFnYWluOiBGV0xzIChDYXR3ZWF6bGUsIDI4LiBNYXIgMTk5NSwgMTg6MzQ6MzYpOgpbQWxsZ2VtZWluOkFzbW9kaXNdIFNraWZhaHJlbiBtYWNodCBTcGFzcyA6KQpbVG9kOl0gUGFhciBTa2llciBoYXQgZ2VyYWRlIEFzbW9kaXMgdW1nZWJyYWNodC4KW1RvZDpQYWFyIFNraWVyXSBFaW4gc2VsYnN0dmVyc2NodWxkZXRlciBTa2l1bmZhbGwgd2FyIGRlciBHcnVuZC4KCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCwgYmVpbSB0YWxrZW4uLi4gKFllbmRpLCAyOC4gTWFyIDE5OTUsIDE5OjA0OjQ5KToKCmdyZXAgIm1vbm5leSIgcG9ja2V0LmFsbAooS3VyYmVsbiwga25pcnNjaGVuZGUgR2VyYWV1c2NoZSkKRm91bmQgbm8gb2NjdXJlbmNlcyBvZiAibW9ubmV5IiBpbiBwb2NrZXQuYWxsCipmbHVjaCwgYW4gZGllIHN0aXJuIHNjaGxhZyoKCmdyZXAgIm1vbmV5IiBwb2NrZXRzLmFsbAooS3VyYmVsbiwga25pcnNjaGVuZGUgR2VyYWV1c2NoZSkKRm91bmQgMSBvY2N1cmVuY2Ugb2YgIm1vbmV5IiBpbiByaWdodC5iYWNrLnBvY2tldAoKKmZyZXUqCm1vcmUgcmlnaHQuYmFjay5wb2NrZXQKKEt1cmJlbG4sIGtuaXJzY2hlbmRlIEdlcmFldXNjaGUpCjEgYmlsbCBvZiA1MCBETQoxIGJpbGwgb2YgMjAgRE0KMiBHcm9zY2hlbgoxIFBmZW5uaWcKKmp1YmVsKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hIHNvd2FzIT8gKFhhbnRoaWEsIDI4LiBNYXIgMTk5NSwgMTk6MzE6NDUpOgpOZXVsaWNoIGluIGRlciBBYmVudGV1cmVyZ2lsZGU6Cj5rb3N0ZW4KRHUga29lbm50ZXN0IERlaW5lIFN0dWZlIGVyaG9laGVuLgo+ZXJob2VoZQpEaXIgZmVobGVuIG5vY2ggQWJlbnRldWVycHVua3RlLiBMb2VzZSBkb2NoIGVyc3QgbWFsIGVpbmUgUXVlc3QuCgpBbHNvIGRhcyB2ZXJzdGVoZSwgd2VyIHdpbGwhPwpYYW50aGlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmEgc293YXMhPyAoWnVlcmlsZXUsIDI4LiBNYXIgMTk5NSwgMjA6MjI6MjUpOgojISBybj1YYW50aGlhIHJ0PTc5NjQxMTkwNQpzYWxpLAppc3QgZG9jaCBnYW56IGVpbmZhY2ggZGlyIGZlaGxlbiBoYWx0IG5vY2ggcXVlc3RwdW5rdGUgKEFQKQoKVHNjaGF1IFp1ZXJpbGV1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hIHNvd2FzIT8gKENhcmFkaHJhcywgMjguIE1hciAxOTk1LCAyMDoyNDozMCk6CiMhIHJuPVp1ZXJpbGV1IHJ0PTc5NjQxNDk0NQpUcm90emRlbSBhZW5kZXJ0IGVzIG5peCBkcmFuIGRhc3MgZXMgdW5sb2dpc2NoIGlzc3QsIFp1ZXJpbGV1LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmEgc293YXMhPyAoV3VyLCAyOC4gTWFyIDE5OTUsIDIxOjA3OjM1KToKIyEgcm49Q2FyYWRocmFzIHJ0PTc5NjQxNTA3MApodWh1IDopCmdlbmF1Li4uIHp1bSBlcmhvZWhlbiBicmF1Y2ggbWFuIGhhbHQgbmljaHQgbnVyIEVwJ3Mgc29uZGVybiBhdWNoIEFwJ3MuCld1ciAtIGVyc3RhdW50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYSBzb3dhcyE/IChLcmV0ZWssIDI4LiBNYXIgMTk5NSwgMjE6NDU6MzIpOgojISBybj1XdXIgcnQ9Nzk2NDE3NjU1ClJpY2h0aWchCklzdCBiZWkgbWlyIGdlbmF1c28hCkFuc2NoZWluZGVuZCB3ZXJkZW4gYmVpIGF1c3JlaWNoZW5kZXIgRVAtWmFobCBkaWUgQVBzIG5pY2h0Cm1laHIgYWJnZWZyYWd0IChlaWdlbnRsaWNoIHVubG9naXNjaCwgZGEgc2Nod2llcmlnZXIgenUga3JpZWdlbi4uLikKVW5kIGljaCBoYXR0ZSBtaWNoIHNjaG9uIHNvb29vbyBnZWZyZXV0LCBkYXNzIGljaCBwZXIgQnVnIFNlaGVyIHdlcmRlbgprb2VubnRlISA6KQoKU2NodWVzcywKS3JldGVrLCBhbmdlYmVuZGVyICghKSBTZWhlciB1bmQgUHJpdmF0ZnJvc2NoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGZWlua29zdCBaaXAgKExvY3V0dXMsIDMwLiBNYXIgMTk5NSwgMTQ6MDg6MTEpOgpIYWxsbyBGZWlua29zdC1aaXAtRnJldW5kZSAhCgpIaWVyIG1hbCBkZXIgbGV0enRlIEdhZyB2b24gZGVyIFppcC1XV1ctU2VpdGU6Cmh0dHA6Ly93d3cudW5pa2FybHNydWhlLmRlL351a2JlL3ppcHAuaHRtbAoKKGRpbmdlbGluZyEpCkt1OiBtb3JnZW4KWmk6IE1vci1nZWVuISBTaWUgc2VoZXQgaGV1dCBhYmVyIGd1dCBhdXMgLSBpc2NoZCBpaG5lIG5pbW1lciBzY2hsZWNodD8KS3U6IGphIC0g5GgsIG5laW4KWmk6IERlcyBpc2NoZCBhYmVyIG5pdCBzY2hsZWNodCwgZGVzIGlzY2ggZ2FueiBndXRmcmF1em9tYmllZWUhClpvOiBKQUFBQUE/ClppOiBLdW5kLXNjaGFhYWZ0IQpabzogS09NTUVFRUUhClppOiBEYW4ta2VlZSEKWm86IEJJVFRFRUUhIEpBISBNT1JHxMTETiEKS3U6IGh1Y2ghClpvOiBXQVMgREFSRlMgREVOTiBIRVVURSBTQUFBSU4/Ckt1OiBpY2ggaOR0dGUgZ2VybmUgZWluZSBzdGVobGFtcGUKWm86IEUgTMRNQkVMIC0gSkEhIC0gS09NTVQgU09GT09vb3J0Cih0YXAsdGFwLHRhcCkKWm86IHNvb09PTyEgQklUVMTEIQoocmF1c2NoaGhoIXJhdXNjaGhoaCEpCkt1OiBzYWdlbnNlIG1hbCwgaXN0IGRpZSBhdWNoIGZyaXNjaD8KWm86IEpBR0FOWkZSSVNDSFdJRS1TT09PT08/Ckt1OiBOYSBo9nJlbiBTaWUgbWFsLCBkYSBrb21tdCBqYSBvYmVuIGplZGUgbWVuZ2UgV2Fzc2VyIHJhdXMhClpvOiBGUkFVIFdFUldPTEYsIERFUiBLVU5ERSBTQUdUIEFVUyBERU0gTMRNQkVMIEtPTU1UIE9CRU4gSkVERSBNRU5HRSBXQVNTRVIKUkFVVVVVUyEKV2U6IEdSUlJSTk5OTi1OTk5OLVJSUlJSUi1BQUFSUlJSLWh1c3QtUlJSUlJSLU5OTkdOR05HTiEKWm86IEZSQVUgV0VSV09MRiBTQUdUIERFUyBHJ0jWUlQgU08gLSBEQVMgSVNDSEQgSkEgQVVDSCBFSU4gREVDS0VFTkZMVVRFRVIhCihodWgtaHVoLWh1aCkKWm86IEhFUlIgWklQUCEKWmk6IEpvb28/ClpvOiBLQVNTRSBCSVRURUVFRSEKWmk6IEtvbW1lZWUhClpvOiBEQU5LRUVFRSEKWmk6IEJpdHRlZWVlZSEgU28hIEhvcHBsYSEgV2FydW0ga29tbXQgZGEgb2JlbiBkZW5uIFdhc3NlciByYXVzPwpLdTogZGFzIGlzdCBlaW4gZGVja2VuZmx1dGVyClppOiBBaHNvISBVbmQgd2FydW0gbGllZ3QgaGllciBsYXV0ZXIgU2FuZCB1bmQgU2NoYWxlbnRpZXJlIHJ1bT8KV2U6IEdSUlJSUlItUlJSUi1SUlJSLU5OTk5OLU5OTk5OTk4tTkdOR05HTkdOIQpabzogRlJBVSBXRVJXT0xGIFNBR1QgREVTIEcnSNZSVCBTTyAtIERJRSBIQVQgSkEgQVVDSCAzMDAgV0FUVCEKKGh1aC1odWgtaHVoKQpaaTogQWNoc28gLSBKYSEKKGtsaW5nZWwhKQpaaTogRGFua2UhIE1vcmdlZWVlbiEKS3U6IHNhZ2Vuc2UgbWFsLCB3YXJ1bSBiZWdy/HNzZW4gc2llIG1pY2ggZGVuIGpldHp0IHdvIGljaCBnZWhlbiB3aWxsCldlOiBHUlJSUlJBQUFBUlJSUi1SUlJSLUFSUlJSUi1OTk5OTi1OTk5OLU5HR0dHIQpabzogRlJBVSBXRVJXT0xGIFNBR1QgREVTIEcnSNZSVCBTTyAtIERBUyBJU0NIRCBKQSBBVUNIIEVJTkUgSEFMTE8tR0VITi1MQU1QRUVFIQpLdTogb2htZWluZ290dCEKKGRpbmdlbGluZykKCgoKVHNjaG9lLi4uCkxvY3V0dXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmVpbmtvc3QgWmlwIChMb2N1dHVzLCAzMC4gTWFyIDE5OTUsIDE0OjA5OjU0KToKIyEgcm49TG9jdXR1cyBydD03OTY1NjUyOTEKRGllIEFkcmVzc2UgaXN0IGZhbHNjaDogS29ycmVrdCBpc3Q6Cmh0dHA6Ly93d3cudW5pLWthcmxzcnVoZS5kZS9+dWtiZS96aXBwLmh0bWwKClNvcnJ5LgpMb2N1dHVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJpbm5lcnVuZ2VuIGFuIGRpZSBuYWhlIFp1a3VuZnQgKENhdHdlYXpsZSwgMzAuIE1hciAxOTk1LCAxOTowNzoyNSk6CkdlZnVuZGVuIGltICdXaW5kb3dzIG1hZ2F6aW4nICEhIDotKQoKRWluIFNjaG5lbGxkdXJjaGdhbmcgZHVyY2ggZGllIG5hZWNoc3RlbiAxMiBKYWhyZSBkZXIgUEMtR2VzY2hpY2h0ZToKCjE5OTU6CiAgSW50ZWwga3VlbmRpZ3Qgdm9yc2ljaHRzaGFsYmVyZGVuIFNlcHRpdW0tUHJvemVzc29yIGFuLiBEdXJjaCBlaW5lbiBrbHVnZW4KIFNjaGFjaHp1ZyBkZXIgSW50ZWwtUmVjaHRzYW53YWVsdGUgbGFlc3N0IGRpZSBGaXJtYSBmb2xnZW5kZSBCZWhhdXB0dW5nZW4KIHVlYmVyIGRlbiBTZXB0aXVtIHBhdGVudHJlY2h0bGljaCBzY2h1ZXR6ZW46ICdEZXIgU3B0aXVtIHdpcmQgc2NobmVsbGVyIHNlaW4KIGFscyBqZWRlciBQcm96ZXNzb3IsIGRlciBuYWNoIGlobSBhbmdla3VlbmRpZ3Qgd2lyZC4nCiAgRWluIEZpcm1lbmtvbnNvcnRpdW0gYXVzIElCTSwgTW90b3JvbGEgdW5kIERldXRzY2hlIFRlbGVrb20gUEMgKHZvcm1hbHMgCiBBcHBsZSkga3VlbmRpZ3QgdHJvdHpkZW0gZGVuIE92ZXJwb3dlciBBY2NlbGVyYXRvciBhbiAoT1BBKSwgZGVyIHZpZXJtYWwgZGVuCiBDaGlwc2F0eiBkZXMgU2VwdGl1bSBlbnRoYWx0ZW4sIGRhYmVpIGFiZXIgZWluIERyaXR0ZWwga29zdGVuIHVuZCBudXIgaGFsYiAKIHNvIGdyb3NzIHNlaW4gd2lyZC4gRGllIEZpcm1hIGxhZXNzdCBzb2Rhbm4gZm9sZ2VuZGVuIFNhdHogcGF0ZW50cmVjaHRsaWNoCiBzY2h1ZXR6ZW46ICdPUEEgd2lyZCBkaWUgQ29tcHV0ZXJ3ZWx0IHJldm9sdXRpb25pZXJlbi4nCjE5OTY6CiAgTm92ZWxsIGthdWZ0IFByb2N0ZXImR2FtYmxlLiBFcnN0ZXMgZ2VtZWluc2FtZXMgUHJvamVrdDogTmV0d2FyZSBmb3IgS2lkcwogbWl0IGludGVncmllcnRlbSBOYWVzc2VzY2h1dHouIERpZSBLaWRzLVdlbGxlIHNjaHdhcHB0IHdlaXRlcjogRGVyIERlY2tlbCBkZXIKIE1hZ2dpIERpc25leSA1LU1pbnV0ZW4tVGVycmluZSBiZXN0ZWh0IGF1cyBlaW5lciBDRC1Sb20uCiAgTWljcm9zb2Z0IHZlcm9lZmZlbnRsaWNodCBkaWUgZXJzdGUgVmVyc2lvbiB2b24gV29yZCBmdWVyIENhaXJvIHVuZCBuZW5udAogc2llIGxpc3RpZ2Vyd2Vpc2UgNzAuMCAtIGRhcyBQcm9ncmFtbSBpc3QgZXJzdG1hbHMgZGVybWFzc2VuIG9iamVrdC0KIG9yaWVudGllcnQsIGRhc3Mgc29nYXIgZWluemVsbmUgQnVjaHN0YWJlbiBlaW5lcyBEb2t1bWVudHMgdm9uIG1laHJlcmVuIAogQmV0cmllYnNzeXN0ZW1lbiBnbGVpY2h6ZWl0aWcgZm9ybWF0aWVydCB3ZXJkZW4ga29lbm5lbi4KMTk5NzoKICBOb3ZlbGwga29udGVydCBtaXQgZGVyIFZlcnNpb24gMTAwMDAwMCAoYXVzZ2VzcHJvY2hlbiAnTWVnYSAxJykgdm9uIFdvcmRXYXJlCiAodm9ybWFscyBXb3JkUGVyZmVrdCkuIEVzIGVudGhhZWx0IHNvIHZpZWxlIEZ1bmt0aW9uZW4sIGRhc3MgZGVyIEhlcnN0ZWxsZXIKIGRlbWplbmlnZW4gQW53ZW5kZXIsIGRlciBhbGxlIEZlYXR1cmVzIGZpbmRldCwgZGVuIHZvbGxlbiBLYXVmcHJlaXMgenVydWVjay0KIGVyc3RhdHRldC4KICBEaWUgWmVpdHNjaHJpZnQgRk9DVVMgZW50aHVlbGx0IGVpbiBHZWhlaW1hYmtvbW1lbiB6d2lzY2hlbiBJbnRlbCB1bmQgSUJNOgogRGllIGJlaWRlbiBhbmdla3VlbmRpZ3RlbiBQcm96ZXNzb3JlbiBzb2xsZW4gbmllIGdlYmF1dCB3ZXJkZW4sIGRpZSBFbnR3aWNrLQogbHVuZ3NhYnRlaWx1bmdlbiBiZXN0ZWhlbiBhdXNzY2hsaWVzc2xpY2ggYXVzIFBTLUxldXRlbi4KMTk5ODoKICBUaG9tYXMgR290dHNjaGFsayAoRXgtQ2hlZiB2b24gUlRMIHBsdXMpIGthZW1wZnQgYWxzIFNQRC1LYW5kaWRhdCB1bSBkZW4KIFBvc3RlbiBkZXMgQnVuZGVza2FuemxlcnMuIERpZSBTUEQgaGF0dGUgYXVzIEdlbGRtYW5nZWwgenV2b3IgenUgZWluZXIgCiBnZWhlaW1nZWhhbHRlbmVuIFN1bW1lIGlocmVuIE5hbWVuIHVuZCBpaHIgTG9nbyBhbiBHb3R0c2NoYWxrIHZlcmthdWZ0LiBEaWUgCiBlaGVtYWxpZ2UgU1BEIGZpcm1pZXJ0IG51bW1laHIgdW50ZXIgZGVtIGZyZWlnZXdvcmRlbmVuIE5hbWVuIHVuZCBMb2dvIEFwcGxlLAogbGF1dCBQYXJ0ZWlzdHJhdGVnZW4gZWluICdmcmV1bmRsaWNoZXIsIGluIGd1dGVyIFdlaXNlIE5vc3RhbGdpZSB1bmQgSGlnaC0KIFRlY2ggdmVyYmluZGVuZGVyIEFwcHJvYWNoJy4KMTk5OToKICBEZXIgbmV1ZSBQcmFlc2lkZW50IGRlciBWZXJlaW5pZ3RlbiBTdGFhdGVuIHZvbiBBbWVyaWthIGhlaXNzdCB3aWVkZXIgQmlsbC4gCiBEZXIgTmFjaG5hbWUgaXN0IGZ1ZXIgUEMtS2VubmVyIGtlaW4gR2VoZWltbmlzIG1laHIuCiAgRGVyIFRyZW5kIGRlcyBKYWhyZXM6IEZpcm1lbiBzcG9uc29vcmVuIFBvbGl0aWtlciBkdXJjaCBBZG9wdGlvbi4gRGllIAogZGV1dHNjaGVCdW5kZXNwcmFlc2lkZW50aW4gUml0YSBNZXJjZWRlcy1CZW56IHRyaWZmdCBhdWYgaWhyZXIgZXJzdGVuIEF1cy0KIGxhbmRzcmVpc2VkZW4gamFwYW5pc2NoZW4gUHJlbWllcm1pbmlzdGVyIE1hdHN1c2hpdGEgU29ueSB1bmQgZGVuIGZyaXNjaGdlLQogYmFja2VuZW4gYnJpdGlzY2hlbiBLb2VuaWcgQ2FtZWxpYSBTbGlwZWlubGFnZSBJLgoyMDAwOgogIE5pbnRlbmRvIGthdWZ0IENyYXktUmVzZWFyY2guIFJlY2h0emVpdGlnIHp1bSBXZWlobmFjaHRzZmVzdCBzdGVoZW4gZGllCiBlcnN0ZW4gRXhlbXBsYXJlIHZvbiAnTXkgZmlyc3QgQ3JheScgaW4gZGVuIEthdWZoYWV1c2Vybi4gV2VyYmVzbG9nYW46CiAnUnVja2VsZnJlaWVyIEN5YmVyc3Bhc3MgZnVlcnMgYmVzb25kZXJzdmVyZGllbmVuZGUgS2luZGVyemltbWVyJy4gS29zdGVubG9zCiBpbSBTb2Z0d2FyZS1CdW5kbGU6IERhcyBlcm90aXNjaGUgNEQtQWR2ZW50dXJlICdUaGUgQmktRmkgUXVlc3QnLgoyMDAxOgogIERlciBrbml0dGVyYmFyZSBMQ0QtQmlsZHNjaGlybSBpc3QgZGEgdW5kIHNvbGwgZGllIE1vcmdlbnplaXR1bmcgdmVyLQogZHJhZW5nZW4uIEhlcnN0ZWxsZXIgU2hhcnAgKGVpbiBVbnRlcm5laG1lbiBkZXIgUnVwZXJ0LU11cmRvY2gtR3J1cHBlKSBpc3QKIGVzIHNvZ2FyIGdlbHVuZ2VuLCBkaWUgYWJmYWVyYmVuZGUgRHJ1Y2tlcnNjaHdhZXJ6ZSB6dSBzaW11bGllcmVuLgoyMDAyOgogIE1pY3Jvc29mdCB6aWVodCBpbiBkaWUgbmV1ZSBGaXJtZW56ZW50cmFsZSBpbiBkZXIgU3RhZHQgTWljcm9zb2Z0IGltIFVTLQogQnVuZGVzdGFhdCBNaWNyb3NvZnQuIFp1ciBGZWllciBkZXMgVGFnZXMgdmVya3VlbmRldCBkZXIgYW1lcmlrYW5pc2NoZSAKIFByYWVzaWRlbnQsIGRhc3MgYXVjaCBkaWUgSGF3YWlpLUluc2VsbiBuZXVlIE5hbWVuIGVyaGFsdGVuOiBXb3JkICh2b3JoZXIKIE91aGEpLCBFeGNlbCAoTWF1aSksIEFjY2VzcyAoS2F1YWkpIHVuZCBQb3dlcnBvaW50IChUaGUgQmlnIElzbGFuZCkuCjIwMDM6CiAgUGhpbGlwcGUgJ2xpZ2h0JyBLYWhuIChkZXIgZWluc3QgZGlja3N0ZSBTb2Z0d2FyZW1vZ3VsIGRlciBXZWx0IGhhdCBkYW5rCiBlaW5lciBTbGlucHBsdXMtRGlhZXQgdWViZXIgNjQgSyBhYmdlbm9tbWVuKSBtb2RlcmllcnQgaW4gUlRMIHBsdXMgcGx1cyAKICgnZGVyIGZsb3R0ZSBTZW5kZXIgZnVlciBkaWUgYmVzc2VydmVyZGllbmVuZGVuJykgZGllIG5ldWUgU2hvdyAnRGVyIFByZWlzCiBpc3Qgc2NoZWlzc2VnYWwnOiBXZXIgdm9uIGRlbiBlaW5nZWxhZGVuZW4gVm9yc3RhbmRzdm9yc2l0emVuZGVuIGRlbiBQcmVpcwogZGVyIHZvcmdlc3RlbGx0ZW4gRmlybWVuIGF1ZiBlaW5lIGhhbGJlIE1pbGxpYXJkZSBEb2xsYXIgZ2VuYXUgc2NoYWV0emVuCiBrYW5uLCBkYXJmIHNpZSBrYXVmZW4uCjIwMDQ6CiAgRGllIGdyb2Vzc3RlIEFidGVpbHVuZyBkZXIgRmlybWEgTWljcm9zb2Z0LCBkaWUgUmVjaHRzYWJ0ZWlsdW5nLCBoYXQgZWluZQogaW50ZXJuYXRpb25hbGUgR2VzZXR6ZXNsdWVja2UgYXVzZmluZGlnIGdlbWFjaHQgdW5kIGJlYW50c3BydWNodCBkYXMgZ2xvYmFsZQogQ29weXJpZ2h0IGZ1ZXIgZGFzIFdldHRlci4gT2huZSBFcmxhdWJuaXMgdm9uIE1pY3Jvc29mdCBkYXJmIGFiIGRlbSAwMS4wNy4wNAoga2VpbiBXZXR0ZXJiZXJpY2h0IG1laHIgZ2VzZW5kZXQgd2VyZGVuLiBFaW56ZWxuZSBuYXRpb25hbGUgTmllZGVybGFzc3VuZ2VuCiB2ZXJzdWNoZW4sIGdlcmljaHRsaWNoIGdlZ2VuIHNjaGxlY2h0ZXMgV2V0dGVyIHZvcnp1Z2VoZW4uIFByaXZhdGUgTWVpbnVuZ2VuCiB1ZWJlciBkYXMgV2V0dGVyIGJsZWliZW4gZnVlciBlaW5lIFVlYmVyZ2FuZ3N6ZWl0IENvcHlyaWdodC1mcmVpLgoyMDA1OgogIE1pY3Jvc29mdCwgYmlzaGVyIG9obmUgZWlnZW5lcyBIYXJkd2FyZS1VbnRlcm5laG1lbiwga2F1ZnQgaW4gZWluZXIgdmllbC0KIGJlYWNodGV0ZW4gdW5kIGFrcmliaXNjaCB2b3JiZXJlaXRldGVuQWt0aW9uIGluIGRlciBOYWNodCB2b20gMy4genVtIDQuIEp1bGkKIDIwMDUgYWxsZSBDb21wdXRlcmhlcnN0ZWxsZXIgZGVyIFdlbHQgYXVmLiBGaXJtZW5tb3R0bzogWW91IGFyZSBteSBmaW5nZXItCiB0aXBzLgoyMDA2OgogIERldXRzY2hlIEJlaG9lcmRlbiBlcndhZWdlbiwgcHJvYmV3ZWlzZSBpbiBlaW5lbSBGZWxkdmVyc3VjaCB6dSB0ZXN0ZW4sIG9iCiBHcm9zc3JlY2huZXIgYXVjaCBkZXV0c2NoZSBVbWxhdXRlIHVuZCBLbGVpbmJ1Y2hzdGFiZW4gdmVyYXJiZWl0ZW4ga29lbm5lbi4KCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1Y2ggc2Nob2VuLi4uIChTaXBob254LCAgMS4gQXByIDE5OTUsIDAxOjE3OjM3KToKPndlcmZlIGtldHRlIGluIG9mZW4KQWxzIEdlaXN0IGthbm5zdCBEdSBuaWNodHMgd2VnbGVnZW4uCj5sZWdlIGtldHRlIGluIG9mZW4KRHUgd2lyZnN0IGRpZSBHb2xkZW5lIFJhc3NlbGtldHRlIGluIGRlbiBTY2htaWVkZW9mZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXJpbm5lcnVuZ2VuIGFuIGRpZSBuYWhlIFp1a3VuZnQgKEFjcmltb24sICAxLiBBcHIgMTk5NSwgMDM6NTI6MTIpOgojISBybj1DYXR3ZWF6bGUgcnQ9Nzk2NTgzMjQ1CkF1d2VpLCBlaW4gR2x1ZWNrIGRhc3ogZGFzIG5pY2h0IHdhaHIgc2VpbiB3aXJkLCBkYXMga2FlbWUgamEgZWluZW0KV2VsdHVudGVyZ2FuZyBnbGVpY2ghCkxlaWRlciBpbSBSTCEKCkdydXN6LCBBY3JpbW9uICh2ZXJ6d2VpZmVsdCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvb2whIChBY3JpbW9uLCAgMi4gQXByIDE5OTUsIDE2OjM4OjAxKToKRHUgaG9lcnN0IGRlbiBBcmVuYXNwcmVjaGVyIHJ1ZmVuIDoKU2FtYWVsIHdvbGx0ZSBmbGllaGVuLCBvYndvaGwgZGllIFRvcmUgZ2VzY2hsb3NzZW4gc2luZD8gRWluIFplaWNoZW4gZnVlcgpGZWlnaGVpdD8KICBTYW1hZWwgZ3JlaWZ0IERpY2ggbWl0IGJsb3NzZW4gSGFlbmRlbiBhbi4KICBTYW1hZWwga3JhdHp0IERpY2guCltUb2Q6XSBTYW1hZWwgaGF0IGdlcmFkZSBBY3JpbW9uIHVtZ2VicmFjaHQubQoKRGVyIFJhdWNoIGRlcyBKb2ludHMgaHVlbGx0IERpY2ggaW4gZGlja2UgUmF1Y2h3b2xrZW4gZWluLiBEdSBmdWVobHN0IERpY2gKd2llIGltIHNpZWJ0ZW4gSGltbWVsLgpEdSBrYW5uc3QgZWluZW4gTWFubiBtaXQgZHVua2xlciBLYXB1emUgbmViZW4gRGVpbmVyIExlaWNoZSBzdGVoZW4gc2VoZW4uCkVyIHdpc2NodCBkaWUgYmx1dGlnZSBLbGluZ2UgZWluZXIgZ3JhdXNpZ2VuIFNlbnNlIG1pdCBsYW5nc2FtZW4sIGdlbWVzc2VuZW4KQmV3ZWd1bmdlbiBhYi4gUGxvZXR6bGljaCBob2VydCBlciBhdWYgdW5kIHNjaGVpbnQgRGljaCBkaXJla3QgYW56dXNlaGVuIG1pdApzZWluZW4gbGVlcmVuIEF1Z2VuaG9laGxlbiAuLi4KCkRlciBUb2Qgc2FndDogS09NTSBNSVQgTUlSLCBTVEVSQkxJQ0hFIQoKRGVyIFRvZCBzYWd0OiBQQVJET04sIElDSCBNRUlOVEUgTkFUVUVSTElDSCBTVEVSQkxJQ0hFUiEKCkVyIHZlcnN1Y2h0IG5hY2ggRGlyIHp1IGdyZWlmZW4sIHZlcmZlaGx0IERpY2ggenVuYWVjaHN0LCBncmVpZnQgbm9jaG1hbAp1bmQgcGxvZXR6bGljaCBmaW5kZXN0IER1IERpY2ggYW4gZWluZW0gYW5kZXJlbiBPcnQgd2llZGVyLgoKRGVyIFJhdWNoIGRlcyBKb2ludHMgaHVlbGx0IERpY2ggaW4gZGlja2UgUmF1Y2h3b2xrZW4gZWluLiBEdSBmdWVobHN0IERpY2gKd2llIGltIHNpZWJ0ZW4gSGltbWVsLgpEZXIgVG9kIHNhZ3Q6IERJRSBaRUlUIElTVCBSRUlGCgpEZXIgVG9kIGhlYnQgZWluZW4gQXJtLCB3b2JlaSBpaG0gZGllIFNlbnNlIGF1cyBkZXIgSGFuZCBmYWVsbHQsCnVuZCBtYWNodCBlaW5lIHdpbmtlbmRlIEJld2VndW5nLgoKRGVyIFRvZCBzYWd0OiBTQ0hFSVNTRSwgSEVVVEUgTEFFVUZUIEFMTEVTIEZBTFNDSCEKCkRlciBUb2QgYnVlY2t0IHNpY2ggbGFuZ3NhbSwgdW0gc2VpbmUgU2Vuc2Ugd2llZGVyIGF1Znp1bmVobWVuLgoKRGVyIFRvZCBzYWd0OiBBVSwgTUVJTiBIRVhFTlNDSFVTUyEKCkR1IGJpc3QgcmVjaHQgc2ljaGVyLCBkYXNzLCBmYWxscyBEdSBub2NoIGFtIExlYmVuIHdhZXJlc3QsIER1IHZvciBMYWNoZW4gYXVmCmRlciBTdGVsbGUgZ2VzdG9yYmVuIHdhZXJlc3QuIFNlbHRzYW1lcndlaXNlIGZ1ZWhsc3QgRHUgZ2FyIG5pY2h0cwpEZXJhcnRpZ2VzLgpMZWRpZ2xpY2ggZWluZSBzdGFya2UgQmVsdXN0aWd1bmcuCgpEZXIgVG9kIHNhZ3Q6IEtFSU5FIEtOT0NIRU4sIERBUyBJU1QgREVSIEdSVU5EIC0gT0RFUiBXQVJFTiBFUyBEUlVFU0VOPwoKRGVyIFRvZCB3aXJrdCBsZWljaHQgdmVyd2lycnQsIHZpZWxsZWljaHQgc29nYXIgYmV0cnVua2VuLiBBbnNjaGVpbmVuZApoYXQgZXIgZ2VzdGVybiB6dSBsYW5nZSBtaXQgZGVyIEh5ZHJhIGRlbiBUb2QgZWluZXMgU2VoZXJzIGdlZmVpZXJ0LgoKRGVyIFJhdWNoIGRlcyBKb2ludHMgaHVlbGx0IERpY2ggaW4gZGlja2UgUmF1Y2h3b2xrZW4gZWluLiBEdSBmdWVobHN0IERpY2gKd2llIGltIHNpZWJ0ZW4gSGltbWVsLgpEZXIgVG9kIHNhZ3Q6IE9ITkUgRFJVRVNFTiBGVUVITFNUIERVIE5JQ0hUUywgVUVCRVJIQVVQVCBOSUNIVFMuCgpOdW4sIGVyIHNjaGVpbnQgUmVjaHQgenUgaGFiZW4uIFN0YXR0IHZvciBBbmdzdCB2ZXJydWVja3QgenUgd2VyZGVuLCBiZWdpbm5zdApEdSBEaWNoIHp1IGxhbmd3ZWlsZW4uIER1IHd1ZW5zY2h0IERpciwgZGFzIHNlaHIgYmFsZCBMYXJzIGtvbW1lbiBtb2VnZS4KCk51biBoYXN0IER1IGRlbiBKb2ludCBhdWZnZXJhdWNodC4gRGllIFF1YWxtd29sa2VuIHVtIERpY2ggbG9lc2VuIHNpY2gKbGFuZ3NhbSBhdWYuIEFsbG1hZWhsaWNoIGtvbW1zdCBEdSBhdWYgZGVuIEJvZGVuIGRlciBUYXRzYWNoZW4gd2llZGVyCnp1cnVlY2suCkRlciBUb2Qgc2FndDogTlVOLCBJQ0ggR0xBVUJFLCBEQVMgV0FSUyBFUlNUTUFMIEZVRVIgRElDSC4gV0lSIFNFSEVOIFVOUyBBTQpKVUVOR1NURU4gVEFHISBIQUhBSEFIQUhBSEFIQUhBSEFIQUhBSEFIQUhBSEFIQUhBSEFIQUhBSCEKCgoKCi4uLi4uLi4uCgoKCkdydXN6LCAgQWNyaW1vbiAoSm9pbnQgcmF1Y2hlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVlciBSZWNobmVyIChMaSwgIDMuIEFwciAxOTk1LCAxMTo1OTozMik6CkhhbGxvIExldXRlIQpOZWNoZGVtIGljaCBpbiBkZXIgbGV0enRlbiBaZWl0IGZhc3ppbmllcnQgZGllIGRpc2t1c3Npb24gdWViZXIgIldlbGNoZXIKcmVjaG5lciBpc3QgZ3V0LCB1bmQgd2VsY2hlciBTQ2guLi4iIHZlcmZvbGd0IGhhYmUsIHVuZCBuYWNoZGVtIG51biBhdWNoIGRhcwpHZWxkIGZ1ZXIgZWluZW4gbmV1ZW4gUmVjaG5lciBkYSBpc3QsIG1vZWNodGUgaWNoIGVpbmVuIHZvcnNjaGxhZyBkZXMKQ2FydG9vbmlzdGVuIFVsaSBTdGVpbiBlaW5icmluZ2VuLgpBbGxlLCBkaWUgR0lGLUZvcm1hdGUgbGVzZW4ga29lbm5lbiwgbGVnZSBpY2ggdWxpNi5naWYgaW0gZnRwX3ZlcnplaWNobmlzIGRlcwpNVURzIG5haGUuCmZ1ZXIgYWxsZSBTcGllbGVyLCBkaWUgZGllIGZ0cCBBZHJlc3NlIG5vY2ggbmljaHQga2VubmVuOgoxMjguMTc2LjEyMS43NCA0NzEzCgpMaSAocGxhZWRpZXJ0IG5pY2h0IGZ1ZXIgZGVuIHZvbiBVbGkgU3RlaW4gdm9yZ2VzY2hsYWdlbmVuIFJlY2huZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcuIChFbHJpYywgIDQuIEFwciAxOTk1LCAxNjowMDoyMSk6CltBbGxnZW1laW46IFB1ZnR5XSBXaWUga2FubiBpY2ggZGVuIFJhZXViZXJuIGVudGtvbW1lbiwgb2huZSBtZWluIEdlbGQKaGVyenVnZWJlbiA/CltUb2Q6XSBFaW4gUmFldWJlciBoYXQgZ2VyYWRlIFB1ZnR5IHVtZ2VicmFjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW4gKExpLCAgNi4gQXByIDE5OTUsIDEyOjI3OjI3KToKc29lYmVuIGdlbGVzZW4gaW4gZmlkby5nZXIuam9rZXM6CgoKQWRhbSBzcHJhY2ggenUgR290dDogJ01lbnNjaCBHb3R0LCBpY2ggYmluIGhpZXIgc28gYWxsZWluZSwga2FubnN0IGR1IG1pcgpuaWNodCBqZW1hbmRlbiB6dXIgR2VzZWxsc2NoYWZ0IHNjaGlja2VuID8iCgpEYXJhdWYgc3ByYWNoIEdvdHQgenUgQWRhbTogJ0phLCBpY2ggaGFiIGhpZXIgd2FzLCBrYW5uIGV4Y2VsbGVudCBrb2NoZW4sCmlzdCBpbW1lciBsaWViIHVuZCBicmF2IHVuZCBlcyBrb3N0ZXQgRGljaCBudXIgZWluZW4gQXJtIHVuZCBlaW4gQmVpbi4nCgpBZGFtIGFudHdvcnRldGU6ICdOZWUsIGR1LCBkYXMgaXN0IG1pciB6dSB0ZXVlciwgd2FzIGJla29tbWUgaWNoIGRlbm4gZnVlcgplaW5lIFJpcHBlID8nCgooSmFqYSwgaWNoIHdlaXNzLCBhcm1lIEZyYXVlbiwgYWJlciBpY2ggZmluZGUgaWhuIHRyb3R6ZGVtIGdhbnogbmV0dCEhISkKCkxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYW50YSAoTGksICA2LiBBcHIgMTk5NSwgMTI6NTU6MTgpOgoKSGFsbG8gTGV1dGUhCmdlc3Rlcm4gaXN0IG1pciBlaW4gYWx0ZXIgU1RFUk4gaW4gZGllIEhhZW5kZSBnZWZhbGxlbi4gYXVmIGRlciBTZWl0ZSBTdGlyZQppc3QgbWlyIGVpbiBzY2hvZW5lciBBcnRpa2VsIGF1ZmdlZmFsbGVuLCBkZW4gaWNoIEV1Y2ggbmljaHQgdm9yZW50aGFsdGVuCm1vZWNodGUuIE1hbiBiZWFjaHRlIGRhcyBFcndhZWhuZW4gdW5zZXJlcyBNVUQuIChJY2ggZ2xhdWJlLCBkZXIgQXJ0aWtlbApzdGFtbXQgYXVzIGRlbSBKYWhyZSAnOTAgb2RlciBzbykKCiBGcmVpaGVpdCBmdWVyIGRpZSBNYW50YS1GYWhyZXIhCgogICAgIFZvbiBDbGF1cyBMdXR0ZXJiZWNrCgogICAgIFdlaXRnZWhlbmQgdW5iZWFjaHRldCB2b24gZGVyIFdlbHRvZWZmZW50bGljaGtlaXQgdm9sbC0KICAgICB6aWVodCBzaWNoIGRhcyBEcmFtYSBkZXIgTWFudGEtRmFocmVyLCBlaW5lciBNaW5kZXJoZWl0LAogICAgIGRpZSBzZWl0IDE5NzAgdWViZXIgemFobHJlaWNoZSBTdGFhdGVuIHZlcnN0cmV1dCBsZWJ0LgogICAgIEJpcyBoZXV0ZSBpc3QgZXMgaWhuZW4gbmljaHQgZ2VsdW5nZW4sIGVpbmVuIGZyZWllbgogICAgIE1hbnRhLVN0YWF0IHp1IGdydWVuZGVuLCB3byBzaWUgZnJlaSB2b24gV2l0emVuIHVuZAogICAgIFVlYmVyaG9sdmVyc3VjaGVuIGxlYmVuIGtvZW5uZW4uIERlciBTVEVSTgogICAgIGRva3VtZW50aWVydCBkZW4gVWViZXJsZWJlbnNrYW1wZiBkZXIgdGFwZmVyZW4gTWlub3JpdGFldC4KCiAgICAgTmV3IFlvcmsgKGRwYSkgLSBEZXIgVU4tU2ljaGVyaGVpdHNyYXQgaGF0IGF1ZiBBbnRyYWcgZGVzCiAgICAgQmVuaW4gZGllIFJlc29sdXRpb24gOTQgenVtIFNjaHV0eiBkZXIgTWFudGFmYWhyZXIgdmVyYWJzY2hpZWRldC4KICAgICBPYndvaGwgVW5vLUJsYXVoZWxtZSBtaXQgZGVtIEFid3VyZiB2b24gU2Nob25iZXp1ZWdlbiBiZWdvbm5lbgogICAgIGhhYmVuLCBzZWkgZGllIExhZ2UgYXVmIHZpZWxlbiBTdGFuZHNwdXJlbiB1bmQgQWxkaS1QYXJrLQogICAgIHBsYWV0emVuIGthdGFzdHJvcGhhbCwgZXJrbGFlcnRlIGVpbmUgU3ByZWNoZXJpbiBkZXIgSGlsZnNvcmdhbmlzYXRpb24KICAgICAiTWFudGEgbGlicmUiIGluIEhhdmFubmEuCgogICAgIFBsYXR0bGluZyAoRWlnZW5lciBCZXJpY2h0KSAtIEJlaSBlaW5lciBrbGFuZGVzdGluZW4gUHJlc3Nla29uZmVyZW56CiAgICAgaGFiZW4gTWl0Z2xpZWRlciBkZXIgRmVzY2gtc2FtbWEiLCBpbiBkZXIgc2ljaCB2b3IgYWxsZW0gbWlsaXRhbnRlLAogICAgIGp1ZW5nZXJlIE1hbnRhZmFocmVyIHp1c2FtbWVuZ2VzY2hsb3NzZW4gaGFiZW4sIEFrdGlvbmVuIGdlZ2VuIGRpZQogICAgIFByb21pbGxlZ3JlbnplIGFuZ2VrdWVuZGlndC4gRXMga29lbm5lIG5pY2h0IGFuZ2VoZW4sIGRhc3MgdWViZXJhbGwKICAgICBpbiBFdXJvcGEgZGllIEdyZW56ZW4gZHVyY2hsYWVzc2lnZXIgd3VlcmRlbiwgbnVyIGRpZSBQcm9taWxsZWdyZW56ZQogICAgIHd1ZXJkZSBpbW1lciBzY2hhZXJmZXIgYmV3YWNodC4KCiAgICAgUGlubmViZXJnIChhcCkgLSBVUy1UcnVwcGVuIGhhYmVuIGltIE1vcmdlbmdyYXVlbiBkYW1pdCBiZWdvbm5lbiwKICAgICBub2VyZGxpY2ggZGVzIDU0LiBCcmVpdGVuZ3JhZGVzIG1vYmlsZSBGZWxkLUZhaHJzY2h1bGVuIHp1IGVycmljaHRlbi4KICAgICBBdWdlbnpldWdlbiBiZXJpY2h0ZW4gdm9uIGthdGFzdHJvcGhhbGVuIFp1c3RhZW5kZW4gYXVmIGRlbgogICAgIFp1ZmFocnRzc3RyYXNzZW4uIFZpZWxlIE1hbnRhLUZhaHJlciBzZWllbiB2b20gdGFnZWxhbmdlbgogICAgIFBhcmtwbGF0enN1Y2hlbiBzbyBlcnNjaG9lcGZ0LCBkYXNzIHNpZSB2ZXJzdWNodCBoYWV0dGVuLCBzaWNoIHp1CiAgICAgRnVzcyBkdXJjaHp1c2NobGFnZW4uIEVpbiBNYW50YS1TcHJlY2hlciBlcmtsYWVydGUgZ2VnZW51ZWJlciBDTk46CiAgICAgIkRhcyBydWluaWVydCB1bnNlcmUgQmxlaWZ1ZXNzZSwgQW1lcmlrYSBtdXNzIGRyaW5nZW5kIGhlbGZlbiEgIgoKICAgICBXYXNoaW5ndG9uIChkZHApIC0gVVMtQXVzc2VubWluaXN0ZXIgSmFtZXMgQmFrZXIgSUlJLiBpc3Qgdm9uIGVpbmVyCiAgICAgTWFudGEtTWlzc2lvbiBhdXMgQm9lYmxpbmdlbiAoV2VzdC1HZXJtYW55KSB6dXJ1ZWNrZ2VrZWhydC4gRGllCiAgICAgendlaXRhZWdpZ2VuIEdlaGVpbXZlcmhhbmRsdW5nZW4gaW4gZWluZXIgVGllZmdhcmFnZSBzZWllbgogICAgID5iZWkgb2ZmZW5lbSBWZXJkZWNrIHVuZCBpbiBmcmV1bmRzY2hhZnRsaWNoZXIgQXRtb3NwaGFlcmUgdmVybGF1LQogICAgIGZlbjwuIFByZXNzZXNwcmVjaGVyIE1hcmxpbiBGaXR6d2F0ZXI6IFByYWVzaWRlbnQgQnVzaCBzaWVodCBlaW5lbgogICAgIFJhbGx5ZXN0cmVpZmVuIGFtIEhvcml6b250LgoKICAgICBSb20gKGtuYSkgLSBEZXIgUGFwc3QgaGF0IGJlaSBzZWluZXIgdHJhZGl0aW9uZWxsZW4gQW5zcHJhY2hlCiAgICAgIlRyYWJpIGV0IE1hbnRhIiAgenVtIFNjaHV0eiBkZXIgYXV0b21vYmlsZW4gTWluZGVyaGVpdGVuIGF1ZmdlcnVmZW4uCiAgICAgRGllIEJlaGF1cHR1bmcgZGVyIEJpYmVsID4uIC4gLiB1bmQgc2llIHN1ZW5kaWd0ZW4gaW4gZWluZW0gRm9yZDwKICAgICBrb2VubmUgbmljaHQgbGFlbmdlciBhdWZyZWNodCBlcmhhbHRlbiB3ZXJkZW4uIEp1ZW5nc3RlIEF1c2dyYWJ1bi0KICAgICBnZW4gaW4gSGVybmUgbGVndGVuIGRlbiBTY2hsdXNzIG5haGUsIGRhc3MgZGVyIFN1ZW5kZW5mYWxsIGluIGVpbmVtCiAgICAgTWFudGEgZGVyIEEtQmF1cmVpaGUgbWl0IEhlY2tzcG9pbGVyIHVuZCBCcmVpdHJlaWZlbiBzdGF0dGdlZnVuZGVuCmhhYmUuCgogICAgIEJvbm4gKGRwYSkgLSBXaWUgZGllID5CaWxkPC1aZWl0dW5nIGluIGlocmVyIG1vcmdpZ2VuIEF1c2dhYmUgbWVsZGV0LAogICAgIHNvbGwgZGVyIE1hbm4gfmxvbiBGcmF1IFN1ZXNzbXV0aCBhdWNoIGRpZSBTY2hvbmJlenVlZ2UgZnVlciBzZWluZW4KTWFudGEKICAgICBtaXQgQnVuZGVzbWl0dGVsbiBiZWdsaWNoZW4gaGFiZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmRpbmVud2l0eiAobWFsIEVUV0FTIG5pdmVhdXZvbGxlcikgKFRocm9pbiwgIDcuIEFwciAxOTk1LCAxMToyMDo1Myk6CkhpZXIgbWFsIGVpbmVuIGV0d2FzIG5pdmVhdXZvbGxlcmVuIEJsb25kaW5lbndpdHouIEljaCBob2ZmZSwgaWNoIGtyaWVnZQpkYW1pdCBuaWNodCBzb2ZvcnQgZWluZW4gUnVmIHdpZSBHdXlicnVzaCAod2llc28gZWlnZW50bGljaCBuaWNodD8pLiA6KQoKRWluZSBCbG9uZGluZSBrb21tdCB6dW0gRnJpc2V1ciB1bmQgd2lsbCBzaWNoIGVpbmUgbmV1ZSBEYXVlcndlbGxlIG1hY2hlbgpsYXNzZW4uICJEYWZ1ZXIgbXVlc3NlbiBzaWUgYWJlciBkZW4gV2Fsa21hbiBhYnNldHplbi4iIHNhZ3QgZGVyIEZyaXNldXIgenUKaWhyLiAiRGFzIGdlaHQgbmljaHQsIGtvbW10IG5pY2h0IGluIEZyYWdlISIgZW1wb2VydCBzaWNoIGRpZSBGcmF1LiBEZXIKRnJpc2V1cgpkZW5rdCBzaWNoOiAib2suIG5hIHdlbm5zIGRlbm4gc2VpbiBtdXNzISIgdW5kIGtyaWVndCBhdWNoIHNvIGVpbmUgRGF1ZXJ3ZWxsZQpoaW4uCiAgWndlaSBXb2NoZW4gc3BhZXRlciBpc3QgZGllIEJsb25kaW5lIHdpZWRlciBkYTogIkljaCBoYWV0dGUgZ2VybmUKU3RyYWVobmNoZW4uIgoiQWJlciBkaWVzbWFsIG11ZXNzZW4gc2llIGRlbiBLb3BmaG9lcmVyIHdpcmtsaWNoIGFic2V0emVuISIgIk5FSU4hIERhcyBnZWh0CmF1ZgpnYXIga2VpbmVuIEZhbGwhISEiIFRyb3R6ZGVtIGtsYXBwdCBkYXMgbWl0IGRlbiBTdHJhZWhuY2hlbiBpcmdlbmR3aWUuCgpOb2NoIHp3ZWkgV29jaGVuIHNwYWV0ZXIgYnJhdWNodCBkaWUgQmxvbmRpbmUgZWluZW4gbmV1ZW4gSGFhcnNjaG5pdHQuCkRpZXNtYWwgZmFja2VsdCBkZXIgRnJpc2V1ciBuaWNodCBsYW5nZSB1bmQgcmVpc3N0IGlociB2b24gaGludGVuIGRlbgpLb3BmaG9lcmVyIHJ1bnRlci4uLi5TaWUgbGFldWZ0IGJsYXUgYW4sIHNjaG5hcHB0IG5hY2ggTHVmdCAtIHVuZCBmYWVsbHQKdG90IHZvbSBTdHVobC4KICBEZXIgRnJpc2V1ciBiZWtvbW10IFBhbmlrOiAiQWNoIER1IFNjaC4uLi4hIERhcyBrYW5uIGRvY2ggbmljaHQgYW0gV2Fsa21hbgpsaWVnZW4hIiBkZW5rdCBlciB1bmQgc2V0enQgZGVuIEtvcGZob2VyZXIgYXVmLiBFciBob2VydCBlaW5lIGJlcnVoaWdlbmRlClN0aW1tZTogIi4uLmVpbmF0bWVuLi4uYXVzYXRtZW4uLi5laW5hdG1lbi4uLmF1c2F0bWVuLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsb25kaW5lbndpdHogKG1hbCBFVFdBUyBuaXZlYXV2b2xsZXIpIChBcmRhbmEsICA3LiBBcHIgMTk5NSwgMTI6MjY6MzEpOgojISBybj1UaHJvaW4gcnQ9Nzk3MjQ2NDUzCipyb3RmbCoKClZlcnplaWh0IG1pciA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClpJUCAoTG9jdXR1cywgMTAuIEFwciAxOTk1LCAxMDo1MTo0NCk6CkhhbGxvIEZlaW5rb3N0LVppcC1GcmV1bmRlICEKCkhhYiBtYWwgd2llZGVyIG4gcGFhciBHYWdzIHp1IEZlaW5rb3N0LVppcCBhdXMgZGVtIEludGVybmV0IGdlc2FtbWVsdAp1bmQgd2lsbCBzaWUgRXVjaCBuaWNodCB2b3JlbnRoYWx0ZW4KCgpfU3Bpcml0dW9zZW5fCkljaCBoYWV0dGUgZ2VybmUgZWluZSBGbGFzY2hlIENvZ25hYy4gU2FnZW4gU2llIG1hbCwgaXN0IGRpZSBkZW5uIHVlYmVyaGF1cHQgIApub2NoIGZyc2ljaCA/IERhIGtvbW1lbiBtaXIgamEgZGllIFRyYWVuZW4uIEZyYXUgV2Vyd29sZiBzYWd0LCBkYXN6IGcnaG9lcnQgc28sICAKZGFzIGlzdCBqYSBhdWNoIGVpbiBXZWluYnJhbmQuCgpJY2ggaGFldHRlIGdlcm5lIGVpbmVuIE1hZ2VuYml0dGVyICEgU2FnZW4gU2llIG1hbCwgaXN0IGRlciBpbW1lciBzbyB3aW56aWcgPyAgCkZyYXUgV2VocndvbGYgc2FndCwgZGFzeiBnJ2hvZXJ0IHNvLCBkYXMgaXN0IGphIGF1Y2ggZWluIEt1ZW1tZXJsaW5nIAoKX0dlbXVlc2VfCkljaCBoYWV0dGUgZ2VybmUgZWluZSBQYWNrdW5nIEJvaG5lbi4gU2FnZW4gU2llIG1hbCwgZGllIHJpZWNoZW4gd2llICAKZXJicm9jaGVuLiBGcmF1IFdlcndvbGYgc2FndCwgZGFzIGcnaG9lcnQgc28sIGRhcyBzaW5kIGphIGF1Y2ggQnJlY2hib2huZW4gIAoKCkljaCBoYWV0dGUgZ2VybmUgMSBQZnVuZCBMaW5zZW4gISBTYWdlbiBTaWUgbWFsLCBzaW5kIGRpZSBkZW5uIGZyaXNjaCA/IERpZSAgCmtsZWJlbiBqYSByaWNodGlnIC0gRnJhdSBXZXJ3b2xmIHNhZ3QsIGRhcyBnJ2hvZXJ0IHNvLCBkYXMgc2luZCBqYSBhdWNoICAKS29udGFrdGxpbnNlbiAKCl9NZWVyZXNmcnVlY2h0ZV8KSWNoIGhhZXR0ZSBnZXJuZSBNdXNjaGVsbi4gU2FnZW4gU2llIG1hbCwgc2luZCBkaWUgZGVubiBhdWNoIGZyaXNjaCA/IERpZSAgCnJpZWNoZW4gamEgc28ga29taXNjaCwgbWlyIHdpcmQgc2Nob24gZ2FueiB1ZWJlbCAhIC0gRnJhdSBXZXJ3b2xmIHNhZ3QsIGRhcyAgCmcnaG9lcnQgc28sIGRhcyBzaW5kIGphIGF1Y2ggTWllc211c2NoZWxuLiAKCkljaCBoYWV0dGUgZ2VybmUgRmlzY2guIFNhZ2VuIFNpZSBtYWwsIGlzdCBkZXIgRmlzY2ggZGVubiBhdWNoIG5vY2ggZnJpc2NoID8gIApEYSBoYWVuZ3QgamEgYWxsZXMgdm9sbCB2b24gU3RyaXBwZW4gdW5kIERyYWVodGVuID8gRnJhdSBXZXJ3b2xmIHNhZ3QsIGRhcyAgCmcnaG9lcnQgc28sIGRhcyBpc3QgamEgYXVjaCBLYWJlbGphdSAKCl9XYXNjaG1pdHRlbF8KSWNoIGhhZXR0ZSBnZXJuZSBlaW5lIFNjaGFjaHRlbCBXYXNjaHB1bHZlci4gU2FnZW4gU2llIG1hbCwgZGEgaXN0IGphIGdhciBrZWluICAKV2FzY2htaXR0ZWwgZHJpbiwgZGFzIHNpbmQgamEgbGF1dGVyIEtyaXN0YWxsa3VnZWxuICE/IC0gRnJhdSBXZXJ3b2xmIHNhZ3QsICAKZGFzIGcnaG9lcnQgc28sIGRhcyBpc3QgamEgYXVjaCBBcmllbC1GdXR1ci4gCgoKX0dldHJlaWRlXwpJY2ggaGFldHRlIGdlcm5lIFJlaXMuIFNhZ2VuIFNpZSBtYWwsIGlzdCBkZXIgUmVpcyBmcmlzY2ggPyBEYSBzdG9laG50IGVzIGphIGluICAKZGVyIFNjaGFjaHRlbC4gRnJhdSBXZXJ3b2xmIHNhZ3QsIGRhcyBnJ2hvZXJ0IHNvLCBkYXMgaXN0IGphIGF1Y2ggUHVmZnJlaXMuCgpfV3Vyc3RfCkljaCBoYWV0dGUgZ2VybmUgV3Vyc3QuIFNhZ2VuIFNpZSBtYWwsIGlzdCBkaWUgYXVjaCBmcmlzY2ggPyBEaWUgaXN0IGphIGdhbnogIApnZWxiIHVuZCBzY2hhZXVtdCAhIEZyYXUgV2Vyd29sZiBzYWd0IGRhcyBnJ2hvZXJ0IHNvLCBkYXMgaXN0IEJpZXJ3dXJzdC4KCl9UZWlnd2FyZW5fCkljaCBoYWV0dGUgZ2VybmUgZWluIFBha2V0IE51ZGVsbi4gU2FnZW4gU2llIG1hbCwgc2luZCBkaWUgTnVkZWxuIGF1Y2ggZnJpc2NoICAKPyBEYSBzaW5kIGphIFNwbGl0dGVyIGluIGRlciBQYWNrdW5nLiBGcmF1IFdlcndvbGYgc2FndCwgZGFzeiBnJ2hvZXJ0IHNvLCBkYXMgIApzaW5kIGphIGF1Y2ggR2xhc251ZGVsbi4KCl9NaWxjaHByb2R1a3RlXwpJY2ggaGFldHRlIGdlcm5lIGVpbmVuIExpdGVyIE1pbGNoICEgU2FnZW4gc2llIG1hbCwgaXN0IGRpZSBNaWxjaCBkZW5uIGF1Y2ggIApmcmlzY2ggPyBEaWUgaXN0IGphIGdhbnogd2Flc3NyaWcgISBGcmF1IFdlcndvbGYgc2FndCwgZGFzIGcnaG9lcnQgc28sIGRhcyBpc3QgIApqYSBhdWNoIEtvbmRlbnNtaWxjaC4KCkljaCBoYWV0dGUgZ2VybmUgWW9naHVydCAhIFNhZ2VuIFNpZSBtYWwsIGlzdCBkZXIgYXVjaCBmcmlzY2ggPyBEZXIgYmV3ZWd0ICAKc2ljaCBqYSAhIEZyYXUgV2Vyd29sZiBzYWd0LCBkYXMgZydob2VydCBzbywgZGFzIHNpbmQgamEgYXVjaCBGcnVjaHR6d2VyZ2UuCgpfTnVlc3NlXwpJY2ggaGFldHRlIGdlcm5lIGVpbiBQZnVuZCBOdWVzc2UgISBTYWdlbiBTaWUgbWFsLCBzaW5kIGRpZSBmcmlzY2ggPyBEaWUgIApyaWVjaGVuIGphIHNvIHN0cmVuZyAhIEZyYXUgV2Vyd29sZiBzYWd0LCBkYXMgZydob2VydCBzbywgZGFzIHNpbmQgamEgYXVjaCAgClBpc3Rhemllbi4KCl9TYWVmdGVfCkljaCBoYWV0dGUgZ2VybmUgT3JhbmdlbnNhZnQgISBTYWdlbiBTaWUgbWFsLCBpc3QgZGVyIGRlbm4gYXVjaCBmcmlzY2ggPyBEYSAgCnNpbmQgamEgRnVzem5hZWdlbCBkcmluICEgRnJhdSBXZXJ3b2xmIHNhZ3QsIGRhcyBnJ2hvZXJ0IHNvLCBkYXMgaXN0IFZpdGFtaW4gQyAhCgpUc2Nob2UuLi4KCkxvYy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBhc3NhaC1LYXJ0ZSAoQXJhbnlhLCAxMC4gQXByIDE5OTUsIDE4OjI1OjE1KToKSXN0IG1pciBpbiBJc3JhZWwgdW50ZXJnZWtvbW1lbjoKClBhc3NhaCBpc3QgZGllIFplaXQsIHVtIGdyb3NzZSBGcmFnZW4genUgc3RlbGxlbiB1bmQgZ3Jvc3NlIFByb2JsZW1lIHp1IGxvZS0Kc2VuLiBadW0gQmVpc3BpZWw6CldhcnVtIGlycnRlIE1vc2UgdmllcnppZyBKYWhyZSBkdXJjaCBkaWUgV3Vlc3RlPwoKQW50d29ydDogV2VpbAogICAgICAgICAgICAgIE1hZW5uZXIgbmllIGFuaGFsdGVuLCB1bSBuYWNoIGRlbSBXZWcgenUgZnJhZ2VuLgoKU29ycnkgZnVlciBkZW4gQWJydXRzY2hlci4KCk1mRyBBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbW91cyBBZnRlci1Xb3JkcyAoR3JpbW1ib3JuLCAxMC4gQXByIDE5OTUsIDE5OjQ0OjIyKToKW1ZlcmxlZ3Qgdm9uIHNjaG1hcnJuLCBZZW5kaSwgIDcuIEFwciAxOTk1LCAxNToyOTo0M106CgpbQWJlbnRldWVyOk1hcmlvXSBKYWphLCBzY2hvbiBrbGFyLiBBYmVyIGluIGRpZXNlbSBGYWxsZSBoYXR0ZSBpY2ggZ2FybmljaHQKW0FiZW50ZXVlcjpNYXJpb10gZGFtaXQgZ2VyZWNobmV0LCBkYXNzIHdhcyBwYXNzaWVyZW4ga29lbm50ZS4gSWNoIGtyYXR6ZSBkYQpbQWJlbnRldWVyOk1hcmlvXSBzbyBlaW4gYmlzc2NoZW4gYW4gZGVyIFdhbmQgcnVtIHVuZCBwbG9ldHpsaWNoIGJpbiBpY2gKW0FiZW50ZXVlcjpNYXJpb10gdG90Li4uCj4KPiBbQWJlbnRldWVyOldhcmdvbl0gUXVhc2kgYWJnZWtyYXR6dCwgYWxzbyA7KQoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFpJUCAoS3JldGVrLCAxMC4gQXByIDE5OTUsIDIxOjEwOjUzKToKIyEgcm49TG9jdXR1cyBydD03OTc1MDM5MDQKSWNoIHdlaXNzLCBpY2ggd2Vpc3MsIGtlaW5lIEZvbGdlYXJ0aWtlbCBpbiAiV2l0emUiLi4uCgpBZWgsIGhhc3QgZHUgenVmYWVsbGlnIGRpZSBVUkwgdm9uIGRpZXNlbiBaSVAtRGluZ2VybgpncmlmZmJlcmVpdD8gV3VlcmQgbWljaCBqYSBzY2hvbiBpbnRlcmVzc2llcmVuLi4uIDopCgpsOGVyLApLcmV0ZWsKIChqZXR6dCBQcml2YXQtR290dCEpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgooYykgWmVwaHlyIDotKSAoQ2FyYWRocmFzLCAxMS4gQXByIDE5OTUsIDAwOjM2OjE1KToKQmVpbmFoZSB1bmdla3Vlcnp0IGdyYWRlIGVybGVidDoKCltBbGxnZW1laW46Q2FyYWRocmFzIHNpbmd0IGVpbmVtIFNjaGxhZnRyb2xsIGVpbiBMZXVjaHRsaWVkLl0KRGVyIExldWNodHRyb2xsIGZhZWxsdCB0b3QgenUgQm9kZW4uCltBbGxnZW1laW46Q2FyYWRocmFzXSBhZWgKW0FsbGdlbWVpbjpDYXJhZGhyYXMga3Vja3QgdmVyd2lycnQuXQpEdSBuaW1tc3QgZWluZW4gS3Jpc3RhbGwuCj4gc2V0emUga3JvbmUgaW4ga3Jpc3RhbGwKV2FzIG1vZWNodGVzdCBEdSB3byBlaW5zZXR6ZW4/CltBbGxnZW1laW46Q2FyYWRocmFzXSB1cHBzCltBbGxnZW1laW46Q2FyYWRocmFzIGZsdWNodC5dCj4gc2V0emUga3Jpc3RhbGwgaW4ga3JvbmUKRHUgc2V0enQgZGVuIEtyaXN0YWxsIGVpbi4gRGllIEtyb25lIGxldWNodGV0IGt1cnogaW4gbWFnaXNjaGVtIEJsYXUuCncKTGFieXJpbnRoLgpFcyBnaWJ0IHp3ZWkgc2ljaHRiYXJlIEF1c2dhZW5nZTogbm9yZGVuIHVuZCBvc3Rlbi4KQW5ha2luICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgIERlciBTZW5zZW5tYW5uLi4KPiBsYWNoZQpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uCj4gQW5ha2luIGdpYnQgZWluIGFsYmVybmVzIEtpY2hlcm4gdm9uIHNpY2guCgoKICAgICAgICAgICAgIDotKSkpKSkpKSAgICAgICAgICBDYXJhZGhyYXMgLSBhZXVzc2Vyc3QgdmVyd2lycnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNlbnNpZSAoQ2FyYWRocmFzLCAxMS4gQXByIDE5OTUsIDEyOjI4OjA0KToKICAgICAgICAgICAgICAgIEFhYWFhYWFhYWFhYWFhaCEgKmZyZXUqCgpEYXMgaXN0IG1hbCBlaW5lIEJlZ3J1ZXNzdW5nISEKCkR1IGhhc3QgamV0enQgMTY3IExlYmVuc3B1bmt0ZSB1bmQgODYgTWFnaWVwdW5rdGUuCkVpbmUgaGVycmxpY2hlIFdhZXJtZSBnZWh0IHZvbiBEZWluZW0gQW11bGV0dCBhdXMgdW5kIER1IGZ1ZWhsc3QKRGljaCBwcmltYS4KRHUgaGFzdCBqZXR6dCAyMTAgTGViZW5zcHVua3RlIHVuZCA4NyBNYWdpZXB1bmt0ZS4KRGVyIFNlbnNlbm1hbm4ga29tbXQgYW4uCkRlciBTZW5zZW5tYW5uIHNhZ3Q6IEhhbGxvIENhcmFkaHJhcywgc2Nob2VuIERpY2ggd2llZGVyenVzZWhlbi4gOikKRGVyIFNlbnNlbm1hbm4ga251ZGRlbHQgRGljaCB6dXIgQmVncnVlc3N1bmcuCkR1IHN0b2xwZXJzdC4KdG9ldGUgc2Vuc2VubWFubgoKCiAgICAgICAgc28gbGFlc3N0IG1hbiBzaWNocyBnZWZhbGxlbiA6KQogICAgICAgICAgICAgIENhcmFkaHJhcyAtIGRlciB6d2VpdGJlc3RlIEZyZXVuZCBkZXMgU2Vuc2VubWFubnMKICAgICAgICAgICAgICAgIChkZW4gVG9kIGJlc3VjaHQgZXIgb2VmdGVycykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogWklQIChMb2N1dHVzLCAxMS4gQXByIDE5OTUsIDE3OjEyOjM4KToKIyEgcm49S3JldGVrIHJ0PTc5NzU0MTA1MwpEaWUgVGV4dGUgdm9uIEZlaW5rb3N0IFppcCBoYWIgaWNoIGF1cyBkZW4gTmV3c2dyb3VwcwphdXMgOiBhbHQuZmFuLmZlaW5rb3N0LXppcCBvZGVyIHNvIGFlaG5saWNoLgoKVHNjaG9lLi4uCkxvYy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaG9lcGZ1bmcgKEFyYW55YSwgMTIuIEFwciAxOTk1LCAxOToxMjoxNSk6CkhtbW0sIHdvIGhhYiBpY2ggZGVuIG51ciB3aWVkZXIgZ2Vob2VydC4uLj8KR290dCBzcHJhY2ggenUgQWRhbTogRXMgaXN0IG5pY2h0IGd1dCwgZGFzcyBkZXIgTWVuc2NoIGFsbGVpbiBzZWkuIEljaCB3aWxsCkRpciBlaW5lIEdlZmFlaHJ0aW4gbWFjaGVuOiBTY2hvZW4sIGJlZ2FidCwgRGlyIHVudGVydGFuLiBEdSBtdXNzdCBkYWZ1ZXIgbnVyCmJlaWRlIEFybWUgdW5kIGVpbiBCZWluIGhlcmdlYmVuLgoKQWRhbSBzcHJhY2g6IFNjaG9lbiB1bmQgZ3V0LCBhYmVyIGRhcyBpc3QgbWlyIGV0d2FzIHp1IHZpZWwuIFdhcyBrcmllZyBpY2gKZnVlciAnbmUgUmlwcGU/CgoKSG1tbSwgdmllbGxlaWNodCBldHdhcyBibG9lZCwgZGVyIFdpdHouIE1pciBoYXQgZXIgZ2VmYWxsZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNjaG9lcGZ1bmcgKEFuYXRvbCwgMTMuIEFwciAxOTk1LCAxMzo0MDo1OSk6CiMhIHJuPUJlcm5hcmQgcnQ9Nzk3NzEyMDU2CgoqZ3JpbnMqCgpBcmFueWEsIGljaCBnbGF1YmUsIER1IGhhc3QgZGllc2VuIFdpdHogX2hpZXJfIGdlbGVzZW4gOykKCkFuYXRvbCAoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU2Nob2VwZnVuZyAoQ2hhcmx5LCAxMy4gQXByIDE5OTUsIDE0OjQwOjIxKToKIyEgcm49QW5hdG9sIHJ0PTc5Nzc3MzI1OQp1bmQgZ2VuYXUgZGFzIHdhciBqYSBkZXIgd2l0eixhbmF0b2wKCi4uaGloaWhpIGljaCBsYWNoIG1pY2ggdG90CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTY2hvZXBmdW5nIChHdW5kZXJtYW5uLCAxMy4gQXByIDE5OTUsIDE0OjQ2OjAzKToKIyEgcm49Q2hhcmx5IHJ0PTc5Nzc3NjgyMQoKaWNrIGtlbm4gZGEgYXVjaCBuZW4gd2l0ejoKCmRhIGplaHRzIHVtIEpvdHQgdW5kIG5lIFJpcHBlLHdvbGx0IGlociBkZW4gaG9lcmVuID8/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogU2Nob2VwZnVuZyAoQW5hdG9sLCAxMy4gQXByIDE5OTUsIDE0OjQ3OjUzKToKIyEgcm49R3VuZGVybWFubiBydD03OTc3NzcxNjMKCkF1IGphICEKQW5hdG9sICgpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBTY2hvZXBmdW5nIChDaGFybHksIDEzLiBBcHIgMTk5NSwgMTQ6NTE6MDYpOgojISBybj1BbmF0b2wgcnQ9Nzk3Nzc3MjczCgpKYSBuaWNodCAhISEhCndlbm4gZHUgZGVuIGVyemFlaGxzdCBnaWJ0cyBuZW4gUEssIGd1bmRlcm1hbm4gLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWNoIGphLi4uIChZZW5kaSwgMTMuIEFwciAxOTk1LCAxOTo0Mzo0NSk6CgouLi4gd28gd2lyIGdlcmFkZSBiZWkgZGVuIEd1dGVuIEFsdGVuIFdpdHpeSF5IXkheSFplaXRlbiBzaW5kOgoKV2FzIGhhdCA0IEJlaW5lIHVuZCBlaW5lbiBBcm0/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbnR3b3J0OiBCdWxsZG9nZ2UgYXVmIGRlbSBLaW5kZXJzcGllbHBsYXR6IQoKSGFjaCwgaWNoIF9saWViZV8gZXMuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKYSB3byBpc3QgZXIgZGVubj8gKEFudGhlYSwgMTcuIEFwciAxOTk1LCAxMjo1MDowOSk6Cj4gZmluZ2VyIHBpbGdyaW0KUGlsZ3JpbSBpc3QgZWluZ2Vsb2dndCwKSWRsZS1aZWl0OiAwMTo1MzoxMApWb2xsZXIgTmFtZTogUGlsZ3JpbQpSYXNzZTogUG9sYXJtYWdpZXIsICAgIEdlc2NobGVjaHQ6IG1hZW5ubGljaApBbHRlcjogMzRkIDEwOjIxOjA2ICAgTWFnaWVybGV2ZWw6IDM1CnouWi4gYWJ3ZXNlbmQsIEdydW5kICA6IGJpbiB6LlouIGluIFd1bmRlcmxhbmQgLSB2ZXJzdWNocyBtYWwgZG9ydCA7LSkKUmVnaW9uc21pdGFyYmVpdGVyIHZvbjogUG9sYXIuCktlaW5lIC5wbGFuLURhdGVpLgo+IHdlciB3dW5kZXJsYW5kCkFuZnJhZ2UgYWJnZXNjaGlja3QuCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKgp8ICAgICAgICAgICAgIFd1bmRlcmxhbmQsIExQTXVkIDAzLjAyLjFAOTIgKEFteWxhYXIpICAgICAgICAgICAgIHwKfCAgICAgQWRyZXNzZTogcnphaXgzNDAucnoudW5pLWxlaXB6aWcuZGUgKDEzOS4xOC4xMS45MikgNDcxMSAgICB8CnwgICAgICBVcHRpbWU6IDUgVGFnZSwgNSBTdHVuZGVuLCAxNSBNaW51dGVuIHVuZCA1MCBTZWt1bmRlbiAgICAgfAoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSoKCioqKiBFcyBiZWZpbmRlbiBzaWNoIGdlcmFkZSBrZWluZSBTcGllbGVyIGluIFd1bmRlcmxhbmQuCgoKU2ljaCB3dW5kZXJuZCwgd28gc2ljaCBtYW5jaGUgbGV1dGUgZGVubiB3aXJrbGljaCBydW10cmVpYmVuCiAgICAgICAgICAgICAgICAgICBBbnRoZWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYWdlIChDZXJlYnVzLCAxNy4gQXByIDE5OTUsIDE2OjM1OjIzKToKV2FydW0gbGVnZW4gSHVlaG5lciBFaWVyPwoKCgoKCgoKCgoKCgoKCgoKCgoKCldlbm4gc2llIHNpZSB3ZXJmZW4gd3VlcmRlbiwgd3VlcmRlbiBzaWUga2FwdXR0IGdlaGVuISEhCgpIQUhBSEFIQUhBSEFIQUFBQUFBQUFBQUFBQUFBQSAoTWFubiwgaXN0IG1pciBsYW5nd2VpbGlnLi4uKQoKQ2VyZWJ1cyAuLi46LSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoLCBpbSBJbnRlcm5ldDogKFllbmRpLCAxOC4gQXByIDE5OTUsIDE0OjQzOjQ0KToKCkJlIG5pY2UgdG8geW91ciBraWRzLiAgVGhleSdsbCBjaG9vc2UgeW91ciBudXJzaW5nIGhvbWUuCgpCZWF1dHkgaXMgaW4gdGhlIGV5ZSBvZiB0aGUgYmVlciBob2xkZXIuLi4KCjMga2luZHMgb2YgcGVvcGxlOiB0aG9zZSB3aG8gY2FuIGNvdW50ICYgdGhvc2Ugd2hvIGNhbid0LgoKU2lnbiBvbiBiYWJ5J3MgYmliOiBTUElUIEhBUFBFTlMuCgpXaHkgaXMgImFiYnJldmlhdGlvbiIgc3VjaCBhIGxvbmcgd29yZD8KCkRvbid0IHVzZSBhIGJpZyB3b3JkIHdoZXJlIGEgZGltaW51dGl2ZSBvbmUgd2lsbCBzdWZmaWNlLgoKLi4uRXZlcnkgbW9ybmluZyBpcyB0aGUgZGF3biBvZiBhIG5ldyBlcnJvci4uLgoKQSBmbHlpbmcgc2F1Y2VyIHJlc3VsdHMgd2hlbiBhIG51ZGlzdCBzcGlsbHMgaGlzIGNvZmZlZS4KCkZvciBwZW9wbGUgd2hvIGxpa2UgcGVhY2UgYW5kIHF1aWV0OiBhIHBob25lbGVzcyBjb3JkLgoKSSBjYW4gc2VlIGNsZWFybHkgbm93LCB0aGUgYnJhaW4gaXMgZ29uZS4uLgoKVGhlIGJlYXRpbmdzIHdpbGwgY29udGludWUgdW50aWwgbW9yYWxlIGltcHJvdmVzLgoKSSB1c2VkIHVwIGFsbCBteSBzaWNrIGRheXMsIHNvIEknbSBjYWxsaW5nIGluIGRlYWQuCgpNZW50YWwgRmxvc3MgcHJldmVudHMgTW9yYWwgRGVjYXkuCgpNYWRuZXNzIHRha2VzIGl0cyB0b2xsLiAgUGxlYXNlIGhhdmUgZXhhY3QgY2hhbmdlLgoKUHJvb2ZyZWFkIGNhcmVmdWxseSB0byBzZWUgaWYgeW91IGFueSB3b3JkcyBvdXQuCgpUaGVyZSBjYW5ub3QgYmUgYSBjcmlzaXMgdG9kYXk7IG15IHNjaGVkdWxlIGlzIGFscmVhZHkgZnVsbC4KCkknZCBleHBsYWluIGl0IHRvIHlvdSwgYnV0IHlvdXIgYnJhaW4gd291bGQgZXhwbG9kZS4KCkV2ZXIgc3RvcCB0byB0aGluaywgYW5kIGZvcmdldCB0byBzdGFydCBhZ2Fpbj8KCkEgY29uY2x1c2lvbiBpcyBzaW1wbHkgdGhlIHBsYWNlIHdoZXJlIHlvdSBnb3QgdGlyZWQgb2YKdGhpbmtpbmcuCgpJIGRvbid0IGhhdmUgYSBzb2x1dGlvbiBidXQgSSBhZG1pcmUgdGhlIHByb2JsZW0uCgpEb24ndCBiZSBzbyBvcGVuLW1pbmRlZCB5b3VyIGJyYWlucyBmYWxsIG91dC4KCklmIGF0IGZpcnN0IHlvdSBETyBzdWNjZWVkLCB0cnkgbm90IHRvIGxvb2sgYXN0b25pc2hlZCEKCkRpcGxvbWFjeSBpcyB0aGUgYXJ0IG9mIHNheWluZyAnTmljZSBkb2dnaWUhJy4uLiB0aWxsIHlvdQpjYW4gZmluZCBhIHJvY2suCgpEaXBsb21hY3kgLSB0aGUgYXJ0IG9mIGxldHRpbmcgc29tZW9uZSBoYXZlIHlvdXIgd2F5LgoKSWYgb25lIHN5bmNocm9uaXplZCBzd2ltbWVyIGRyb3ducywgZG8gdGhlIHJlc3QgaGF2ZSB0bwpkcm93biB0b28/CgpJZiB0aGluZ3MgZ2V0IGFueSB3b3JzZSwgSSdsbCBoYXZlIHRvIGFzayB5b3UgdG8gc3RvcApoZWxwaW5nIG1lLgoKSWYgSSB3YW50IHlvdXIgb3BpbmlvbiwgSSdsbCBhc2sgeW91IHRvIGZpbGwgb3V0IHRoZQpuZWNlc3NhcnkgZm9ybXMuCgpEb24ndCBsb29rIGJhY2ssIHRoZXkgbWlnaHQgYmUgZ2FpbmluZyBvbiB5b3UuCgpJdCdzIG5vdCBoYXJkIHRvIG1lZXQgZXhwZW5zZXMsIHRoZXkncmUgZXZlcnl3aGVyZS4KCkhlbHAgV2FudGVkOiBUZWxlcGF0aC4gIFlvdSBrbm93IHdoZXJlIHRvIGFwcGx5LgoKTG9vayBvdXQgZm9yICMxLiAgRG9uJ3Qgc3RlcCBpbiAjMi4KCkJ1ZGdldDogQSBtZXRob2QgZm9yIGdvaW5nIGJyb2tlIG1ldGhvZGljYWxseS4KCkNhciBzZXJ2aWNlOiAgSWYgaXQgYWluJ3QgYnJva2UsIHdlJ2xsIGJyZWFrIGl0LgoKU2hpbjogQSBkZXZpY2UgZm9yIGZpbmRpbmcgZnVybml0dXJlIGluIHRoZSBkYXJrLgoKRG8gd2l0Y2hlcyBydW4gc3BlbGwgY2hlY2tlcnM/CgpEZW1vbnMgYXJlIGEgR2hvdWxzIGJlc3QgRnJpZW5kLgoKQ29weXdpZ2h0IDE5OTQgRWxtZXIgRnVkZC4gIEFsbCB3aWdodHMgd2VzZXd2ZWQuCgpEYWluIGJyYW1hZ2VkLgoKRGVwYXJ0bWVudCBvZiBSZWR1bmRhbmN5IERlcGFydG1lbnQKCkhlYWRsaW5lOiBCZWFyIHRha2VzIG92ZXIgRGlzbmV5bGFuZCBpbiBQb29oIEQnRXRhdCEKCldoYXQgaGFzIGZvdXIgbGVncyBhbmQgYW4gYXJtPyAgQSBoYXBweSBwaXQgYnVsbC4KCkNhbm5vdCBmaW5kIFJFQUxJVFkuU1lTLiBVbml2ZXJzZSBoYWx0ZWQuCgpDT0ZGRUUuRVhFIE1pc3NpbmcgLSBJbnNlcnQgQ3VwIGFuZCBQcmVzcyBBbnkgS2V5CgpCdXkgYSBQZW50aXVtIDU4Ni85MCBzbyB5b3UgY2FuIHJlYm9vdCBmYXN0ZXIuCgoyICsgMiA9IDUgZm9yIGV4dHJlbWVseSBsYXJnZSB2YWx1ZXMgb2YgMi4KCkNvbXB1dGVycyBtYWtlIHZlcnkgZmFzdCwgdmVyeSBhY2N1cmF0ZSBtaXN0YWtlcy4KCkNvbXB1dGVycyBhcmUgbm90IGludGVsbGlnZW50LiBUaGV5IG9ubHkgdGhpbmsgdGhleSBhcmUuCgpNeSBzb2Z0d2FyZSBuZXZlciBoYXMgYnVncy4gIEl0IGp1c3QgZGV2ZWxvcHMgcmFuZG9tCmZlYXR1cmVzLgoKQzpcV0lORE9XUyBDOlxXSU5ET1dTXEdPIEM6XFBDXENSQVdMCgpDOlxET1MgICBDOlxET1NcUlVOICAgUlVOXERPU1xSVU4KCjwtLS0tLS0tLSBUaGUgaW5mb3JtYXRpb24gd2VudCBkYXRhIHdheSAtLS0tLS0tLT4KCkJlc3QgZmlsZSBjb21wcmVzc2lvbiBhcm91bmQ6ICAiREVMICouKiIgPSAxMDAlIGNvbXByZXNzaW9uCgpUaGUgRGVmaW5pdGlvbiBvZiBhbiBVcGdyYWRlOiBUYWtlIG9sZCBidWdzIG91dCwgcHV0IG5ldwpvbmVzIGluLgoKQlJFQUtGQVNULkNPTSBIYWx0ZWQuLi5DZXJlYWwgUG9ydCBOb3QgUmVzcG9uZGluZwoKVGhlIG5hbWUgaXMgQmF1ZC4uLi4uLiwgSmFtZXMgQmF1ZC4KCkJVRkZFUlM9MjAgRklMRVM9MTUgMm5kIGRvd24sIDR0aCBxdWFydGVyLCA1IHlhcmRzIHRvIGdvIQoKQWNjZXNzIGRlbmllZC0tbmFoIG5haCBuYSBuYWggbmFoIQoKQzpcPiBCYWQgY29tbWFuZCBvciBmaWxlIG5hbWUhIEdvIHN0YW5kIGluIHRoZSBjb3JuZXIuCgpCYWQgY29tbWFuZC4gQmFkLCBiYWQgY29tbWFuZCEgU2l0ISBTdGF5ISBTdGFhYXkuLgoKV2h5IGRvZXNuJ3QgRE9TIGV2ZXIgc2F5ICJFWENFTExFTlQgY29tbWFuZCBvciBmaWxlbmFtZSEiCgpBcyBhIGNvbXB1dGVyLCBJIGZpbmQgeW91ciBmYWl0aCBpbiB0ZWNobm9sb2d5IGFtdXNpbmcuCgpTb3V0aGVybiBET1M6IFknYWxsIHJlY2tvbj8gKFllcC9Ob3BlKQoKQmFja3Vwcz8gV2UgZG9uJyAqTkVFRCogbm8gc3RlZW5raW5nIGJhY2t1cHMuCgpFIFBsdXJpYnVzIE1vZGVtCgouLi4gRmlsZSBub3QgZm91bmQuIFNob3VsZCBJIGZha2UgaXQ/IChZL04pCgpFdGhlcm5ldCAobik6IHNvbWV0aGluZyB1c2VkIHRvIGNhdGNoIHRoZSBldGhlcmJ1bm55CgpBIG1haW5mcmFtZTogVGhlIGJpZ2dlc3QgUEMgcGVyaXBoZXJhbCBhdmFpbGFibGUuCgpBbiBlcnJvcj8gIEltcG9zc2libGUhICBNeSBtb2RlbSBpcyBlcnJvciBjb3JyZWN0aW5nLgoKQ09OR1JFU1MuU1lTIENvcnJ1cHRlZDogIFJlLWJvb3QgV2FzaGluZ3RvbiBELkMgKFkvbik/CgpEb2VzIGZ1enp5IGxvZ2ljIHRpY2tsZT8KCkEgY29tcHV0ZXIncyBhdHRlbnRpb24gc3BhbiBpcyBhcyBsb25nIGFzIGl0J3MgcG93ZXIgY29yZC4KCjExdGggY29tbWFuZG1lbnQgLSBDb3ZldCBub3QgdGh5IG5laWdoYm9yJ3MgUGVudGl1bS4KCjI0IGhvdXJzIGluIGEgZGF5Li4uMjQgYmVlcnMgaW4gYSBjYXNlLi4uY29pbmNpZGVuY2U/CgpEaXNpbmZvcm1hdGlvbiBpcyBub3QgYXMgZ29vZCBhcyBkYXRpbmZvcm1hdGlvbi4KCldpbmRvd3M6IEp1c3QgYW5vdGhlciBwYW5lIGluIHRoZSBnbGFzcy4KClNFTklMRS5DT00gZm91bmQgLiAuIC4gT3V0IE9mIE1lbW9yeSAuIC4gLgoKV2hvJ3MgR2VuZXJhbCBGYWlsdXJlICYgd2h5J3MgaGUgcmVhZGluZyBteSBkaXNrPwoKVWx0aW1hdGUgb2ZmaWNlIGF1dG9tYXRpb246IG5ldHdvcmtlZCBjb2ZmZWUuCgpSQU0gZGlzayBpcyAqbm90KiBhbiBpbnN0YWxsYXRpb24gcHJvY2VkdXJlLgoKU2hlbGwgdG8gRE9TLi4uQ29tZSBpbiBET1MsIGRvIHlvdSBjb3B5PyBTaGVsbCB0byBET1MuLi4KCkFsbCBjb21wdXRlcnMgd2FpdCBhdCB0aGUgc2FtZSBzcGVlZC4KCkRFRklOSVRJT046IENvbXB1dGVyIC0gQSBkZXZpY2UgZGVzaWduZWQgdG8gc3BlZWQgYW5kCmF1dG9tYXRlIGVycm9ycy4KClByZXNzIDxDVFJMPi08QUxUPi08REVMPiB0byBjb250aW51ZSAuLi4KClNtYXNoIGZvcmVoZWFkIG9uIGtleWJvYXJkIHRvIGNvbnRpbnVlLi4uLi4KCkVudGVyIGFueSAxMS1kaWdpdCBwcmltZSBudW1iZXIgdG8gY29udGludWUuLi4KCkFTQ0lJIHN0dXBpZCBxdWVzdGlvbiwgZ2V0IGEgc3R1cGlkIEFOU0khCgpFLW1haWwgcmV0dXJuZWQgdG8gc2VuZGVyIC0tIGluc3VmZmljaWVudCB2b2x0YWdlLgoKSGVscCEgSSdtIG1vZGVtaW5nLi4uIGFuZCBJIGNhbid0IGhhbmcgdXAhISEKCkFsbCB3aXlodC4gUmhvIHNyaXRjaGVkIG1nIGtlZ3RvcHMgYXdvdW5kPwoKRXJyb3I6IEtleWJvYXJkIG5vdCBhdHRhY2hlZC4gUHJlc3MgRjEgdG8gY29udGludWUuCgoiNjQwSyBvdWdodCB0byBiZSBlbm91Z2ggZm9yIGFueWJvZHkuIiAtIEJpbGwgR2F0ZXMsIDE5ODEKCkRPUyBUaXAgIzE3OiBBZGQgREVWSUNFPUZOR1JDUk9TLlNZUyB0byBDT05GSUcuU1lTCgpIaWRkZW4gRE9TIHNlY3JldDogYWRkIEJVR1M9T0ZGIHRvIHlvdXIgQ09ORklHLlNZUwoKUHJlc3MgYW55IGtleS4uLiBubywgbm8sIG5vLCBOT1QgVEhBVCBPTkUhCgpQcmVzcyBhbnkga2V5IHRvIGNvbnRpbnVlIG9yIGFueSBvdGhlciBrZXkgdG8gcXVpdC4uLgoKRXhjdXNlIG1lIGZvciBidXR0aW5nIGluLCBidXQgSSdtIGludGVycnVwdC1kcml2ZW4uCgoKCgpIYWFhYWNoLCB0b29vb2xsLi4uCgoqa2ljaGVyKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFub3RoZXIgb25lLi4gKEVscmljLCAxOC4gQXByIDE5OTUsIDE2OjM3OjE2KToKCldoYXQgaGFzIEFtZXJpY2FuIGJlZXIgaW4gY29tbW9uIHdpdGggbWFraW5nIGxvdmUgaW4gYSBjYW5vZSA/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgogICBJdCdzIGZ1Y2tpbmcgY2xvc2UgdG8gd2F0ZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHYXMuLi4gKFJvY2h1cywgMTkuIEFwciAxOTk1LCAyMTowODoyNyk6Ck9rLCBuaWNodCBqZWRlciB3aXJkIHdvaGwgZGFydWViZXIgbGFjaGVuIGtvZW5uZW46CltXaXNzZW5zY2hhZnQ6Um9jaHVzXSBEYXRlaWVuIHZlcmhhbHRlbiBzaWNoIHdpZSBlaW4gaWRlYWxlcyBHYXM6IFNpZSBmdWVsbGVuCltXaXNzZW5zY2hhZnQ6Um9jaHVzXSBkZW4genVyIFZlcmZ1ZWd1bmcgc3RlaGVuZGVuIFBsYXR6IGluIGt1ZXJ6ZXN0ZXIgWmVpdApbV2lzc2Vuc2NoYWZ0OlJvY2h1c10gdm9sbHN0YWVuZGlnIGF1cy4KW1dpc3NlbnNjaGFmdDpHcmltbWJvcm5dIE5pY2h0IG51ciBpZGVhbGUgR2FzZSB2ZXJoYWx0ZW4gc2ljaCBzbywgUm9jaHVzLgpbV2lzc2Vuc2NoYWZ0OkdyaW1tYm9ybl0gRGFzIG11c3N0ZSBhdWYgdyBtYWwgZ2VzYWd0IHdlcmRlbi4gOy0pCltXaXNzZW5zY2hhZnQ6RWxyaWNdIHN0aW1tdC4gR2lmdGdhc2UgaW4gamFwLiBVQmFobmhvZWZlbiBhdWNoLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRkxXIChMaSwgMjEuIEFwciAxOTk1LCAxODo1NzoxNCk6CgpEYXMgd2FyIGphIHdvaGwgbmljaHRzIQoKW0FsbGdlbWVpbjpTYWlrYW5dIHN0aXJiIGR1IGJsZW9kZXIgd2FlY2h0ZXIKW1RvZDpdIEVpbiBad2VyZyBoYXQgZ2VyYWRlIFNhaWthbiB1bWdlYnJhY2h0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnByZWduYW5jeSAoU251Z2dsZSwgMjEuIEFwciAxOTk1LCAyMzowNjoxMyk6CkFDSFRVTkchISEKRmVtaW5pc3Rpbm5lbiB1bmQgc29sY2hlLCBkaWUgdWViZXIgV2l0emUgdWJlciBTY2h3YW5nZXJzY2hhZnQgdW5kIHNvbGNoZQpUaGVtZW4gbmljaHQgbGFjaGVuIGtvZW5uZW4sIGxlc2VuIGFtIGJlc3RlbiBnYXIgbmljaHQgd2VpdGVyLgoKCgoKUHJlZ25hbmN5OgpBIHRlbXBvcmFyeSwgdXN1YWxseSBub25mYXRhbCBjb25kaXRpb24gaW52b2x2aW5nIGEgcGFyYXNpdGljIGVtYnJ5bywgYSBob3N0CmZlbWFsZSwgYW5kIGEgZGlzaW50ZXJlc3RlZCB0aGlyZCBwYXJ0eSAodXN1YWxseSBhIGZhdGhlcikuIFRoZSBlbWJyeW8KYXR0YWNoZXMgaXRzZWxmIHRvIHRoZSBpbnNpZGUgb2YgdGhlIGZlbWFsZSdzIHV0ZXJ1cyBhbmQgZmVlZHMgb2ZmIG9mIGhlcgpibG9vZCBhbmQgb3RoZXIgYm9kaWx5IGZsdWlkcywgZ3Jvd2luZyB2ZXJ5IHJhcGlkbHksIG11Y2ggbGlrZSBhIHRhcGV3b3JtLApvbmx5IHJvdW5kZXIuIEZvcnR1bmF0ZWx5LCB0aGUgcGFyYXNpdGUgdXN1YWxseSBkZXRhY2hlcyBpdHNlbGYgd2l0aGluCjggdG8gOSBtb250aHMsIGFmdGVyIHdoaWNoIGl0cyBwYXJhc2l0aWMgdGVuZGVuY2llcyBiZWNvbWUgbGFyZ2VseSBmaW5hbmNpYWwKaW4gbmF0dXJlLgpGb3J0dW5hdGVseSwgd2Ugbm93IGtub3cgdGhhdCBwcmVnbmFuY3kgaXMgZW50aXJlbHkgcHJldmVudGFibGUgc2ltcGx5IGJ5CnN0YXlpbmcgaG9tZSBvbiBGcmlkYXkgYW5kIFNhdHVyZGF5IG5pZ2h0cy4KCkF1czogVGhlIE1vZGVybiBEYXkgQm9vayBvZiBIZWFsdGggYW5kIEh5Z2llbmUgKFNpZXJyYSwgRnJlZGR5IFBoYXJrYXMpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpjcmFzaHMgJiBrYXJhdGUgKFJvY2h1cywgMjQuIEFwciAxOTk1LCAyMDoyMToyOSk6CltBbGxnZW1laW46Um9hZHJ1bm5lcl0gQElpYWEtQCNeKilfRmx1Y2gqQCkjISspKCopR1JSKiktXys9IUBAQEAKW0FsbGdlbWVpbjpSb2FkcnVubmVyXSBHUlJSU0NISU1QRigtKVd1ZXRAVG9iIX4/IQpbQWxsZ2VtZWluOlJvY2h1c10gdHJpdHQgaW4gZGllIGthcmF0ZS1naWxkZSBlaW4sIGRhbm4gZmx1Y2hzdCBkdSBuaWNodCBtZWhyCltBbGxnZW1laW46Um9jaHVzXSB1ZWJlciBjcmFzaHMgOikKQmlnZm9vdCB0ZWlsdCBEaXIgbWl0OiByaWNodGlnLCBkYW5uIGlzdCBtYW4gbmFjaCA0IHdvY2hlbiBzY2hvbiBpbiBkZXIgTGFnZSwKQmlnZm9vdCB0ZWlsdCBEaXIgbWl0OiBlaW5lbiBzY2htZXR0ZXJsaW5nIHp1IGVybGVnZW4gOikpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcHJlZ25hbmN5IChTY2hpaXIsIDI1LiBBcHIgMTk5NSwgMTI6NDc6NDIpOgojISBybj1TbnVnZ2xlIHJ0PTc5ODQ5ODM3MwpEYXMgaXN0IGphIHdpcmtsaWNoIGlycmUga29taXNjaC4KU2NoaWlyIC1zY2h1ZXR0ZWx0IGRlbiBLb3BmLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2VsYmVyIFNjaHVsZCEhISAoVG9tbXksIDI2LiBBcHIgMTk5NSwgMTg6NTM6MDkpOgpFYmVuIGluIFphcmRveicgQnVyZzoKLi4uCiAgRHUgZ3JlaWZzdCBkZW4gRHVua2VsZGFlbW9uIG1pdCBlaW5lbSBnZWx1bmdlbmVuIFRhdGUtenVraSBhbi4KICBEdSBraXR6ZWxzdCBkZW4gRHVua2VsZGFlbW9uIGFtIEJhdWNoLgpEdSBzdG9scGVyc3QuCkVpbiBEdW5rZWxkYWVtb24gbGFldWZ0IGdlZ2VuIGVpbmVuIGF1ZmdlbWFsdGVuIER1cmNoZ2FuZyBpbSBPc3Rlbi4KRGVyIER1bmtlbGRhZW1vbiBicmljaHQgdG90IHp1c2FtbWVuLgoKRGVyIGthbm50ZSBzaWNoIHdvaGwgaW4gc2VpbmVtIGVpZ2VuZW4gSGVpbSBuaWNodCBzbyBndXQgYXVzLi4uCgpLYXJhdGV6d2VyZyBUb21teS4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCklkbGVyIGFscyBKb2Y/IChBbnRoZWEsIDI3LiBBcHIgMTk5NSwgMDA6Mjk6MzkpOgpIdWNoPyB2ZXJzdWNodCBoaWVyIGplbWFuZCBlaW5lbiBuZXVlbiBJZGxlLXJla29yZCBhdWZ6dXN0ZWxsZW4/ClRvcmlhbiAgICAgIDogSWRsZXplaXQgMWQgMDY6MzE6MjcKZGEgc2llaHQgbWFuIG1hbCwgd2llIGZyZXVuZGxpY2ggTUcgaXN0Li4uIGVzIGdpYnQgbmljaHQgbWFsIGVpbmVuIGlkbGUtb3V0LgoKICAgQW50aGVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGltIEludGVybmV0Li4uLiAoVGhyb2luLCAyNy4gQXByIDE5OTUsIDEwOjQyOjAxKToKT25lIG1vcmUgbmljZSB0aGluZzoKClJlbGlnaW9ucyBvZiB0aGUgV29ybGQKICAgICAgICAgICBUYW9pc206ICBTaGl0IGhhcHBlbnMuCiAgICAgSGFyZSBLcmlzaG5hOiAgU2hpdCBoYXBwZW5zIFJhbWEgUmFtYSBEaW5nIERpbmcuCiAgICAgICAgIEhpbmR1aXNtOiAgVGhpcyBzaGl0IGhhcHBlbmVkIGJlZm9yZS4KICAgICAgICAgICAgSXNsYW06ICBJZiBzaGl0IGhhcHBlbnMsIGl0IGlzIHRoZSB3aWxsIG9mIGFsbGFoLgogICAgICAgICAgICAgIFplbjogIFdoYXQgaXMgdGhlIHNvdW5kIG9mIHNoaXQgaGFwcGVuaW5nPwogICAgICAgICBCdWRkaGlzbTogIFdoZW4gc2hpdCBoYXBwZW5zLCBpcyBpdCByZWFsbHkgc2hpdD8KICAgICBDb25mdWNpYW5pc206ICBDb25mdWNpdXMgc2F5LCAiU2hpdCBoYXBwZW5zLiIKN3RoIGRheSBhZHZlbnRpc3Q6ICBTaGl0IGhhcHBlbnMgb24gU2F0dXJkYXlzLgogICAgUHJvdGVzdGFudGlzbTogIFNoaXQgd29uJ3QgaGFwcGVuIGlmIEkgd29yayBoYXJkZXIuCiAgICAgIENhdGhvbGljaXNtOiAgSWYgc2hpdCBoYXBwZW5zLCBJIGRlc2VydmUgaXQuCkplaG92YWgncyBXaXRuZXNzOiAgS25vY2ssIGtub2NrLCAiU2hpdCBoYXBwZW5zLiIKICAgICAgICBVbml0YXJpYW46ICBXaGF0IGlzIHRoaXMgc2hpdD8KICAgICAgICAgICBNb3Jtb246ICBTaGl0IGhhcHBlbnMgYWdhaW4gJiBhZ2FpbiAmIGFnYWluLgogICAgICAgICAgSnVkYWlzbTogIE95dmF5ISBXaHkgZG9lcyB0aGlzIHNoaXQgYWx3YXlzIGhhcHBlbiB0byBtZT8KICAgUGVudGFjb3N0YWxpc206ICBQcmFpc2UgdGhlIHNoaXQhCiAgICAgICAgICBBdGhlaXNtOiAgVGhlcmUgaXMgbm8gc2hpdCEKICAgICAgICAgIE5ldyBBZ2U6ICBTaGl0IGhhcHBlbnMgYW5kIGl0IGhhcHBlbnMgdG8gc21lbGwgZ29vZC4KICAgUmFzdGFmYXJpYW5pc206ICBMZXQncyBzbW9rZSB0aGlzIHNoaXQuCgoKVGhyb2luICh3aXJkIG5vY2ggenVtIFJBc3RhLi4uLikKOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJZGxlciBhbHMgSm9mPyAoSm9mLCAyNy4gQXByIDE5OTUsIDExOjQ0OjQ5KToKIyEgcm49QW50aGVhIHJ0PTc5ODkzNTM3OQoKRG9jaCwgYWJlciBudXIgZnVlciBNYWdpZXIgOikKCkpvZgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT24gdGhlIG90aGVyIGhhbmQsIHlvdSBoYXZlIGRpZmZlcmVudCBmaW5nZXJzLiAgLS0gU3RldmVuIFdyaWdodCAoVGhvcmluLCAyNy4gQXByIDE5OTUsIDEyOjE5OjM5KToKCkkgd2FzIHNhZCBiZWNhdXNlIEkgaGFkIG5vIHNob2VzLCB1bnRpbCBJIG1ldCBhIG1hbiB3aG8gaGFkIG5vIGZlZXQuClNvIEkgc2FpZCwgIkdvdCBhbnkgc2hvZXMgeW91J3JlIG5vdCB1c2luZz8iICAtLSBTdGV2ZW4gV3JpZ2h0CgpNeSB0aGVvcnkgb2YgZXZvbHV0aW9uIGlzIHRoYXQgRGFyd2luIHdhcyBhZG9wdGVkLiAgLS0gU3RldmVuIFdyaWdodAoKU29tZW9uZSBzZW50IG1lIGEgcG9zdGNhcmQgcGljdHVyZSBvZiB0aGUgZWFydGguCk9uIHRoZSBiYWNrIGl0IHNhaWQsICJXaXNoIHlvdSB3ZXJlIGhlcmUuIgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkNyb3NzIGNvdW50cnkgc2tpaW5nIGlzIGdyZWF0IGlmIHlvdSBsaXZlIGluIGEgc21hbGwgY291bnRyeS4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHNwaWxsZWQgc3BvdCByZW1vdmVyIG9uIG15IGRvZy4gIE5vdyBoZSdzIGdvbmUuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJZiB5b3UncmUgbm90IHBhcnQgb2YgdGhlIHNvbHV0aW9uLCB5b3UncmUgcGFydCBvZiB0aGUgcHJlY2lwaXRhdGUuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKIkRpZCB5b3Ugc2xlZXAgd2VsbD8iICAiTm8sIEkgbWFkZSBhIGNvdXBsZSBvZiBtaXN0YWtlcy4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpNeSBkZW50YWwgaHlnaWVuaXN0IGlzIGN1dGUuICBFdmVyeSB0aW1lIEkgdmlzaXQsIEkgZWF0IGEgd2hvbGUgcGFja2FnZSBvZgpPcmVvCmNvb2tpZXMgd2hpbGUgd2FpdGluZyBpbiB0aGUgbG9iYnkuICBTb21ldGltZXMgc2hlIGhhcyB0byBjYW5jZWwgdGhlIHJlc3Qgb2YKdGhlIGFmdGVybm9vbidzIGFwcG9pbnRtZW50cy4gIC0tIFN0ZXZlbiBXcmlnaHQKCk15IHNvY2tzIERPIG1hdGNoLiAgVGhleSdyZSB0aGUgc2FtZSB0aGlja25lc3MuICAtLSBTdGV2ZW4gV3JpZ2h0CgpPZmZpY2VyLCBJIGtub3cgSSB3YXMgZ29pbmcgZmFzdGVyIHRoYW4gNTVNUEgsIGJ1dCBJIHdhc24ndCBnb2luZyB0byBiZSBvbgp0aGUKcm9hZCBhbiBob3VyLiAgLS0gU3RldmVuIFdyaWdodAoKSSBoYXRlIGl0IHdoZW4gbXkgZm9vdCBmYWxscyBhc2xlZXAgZHVyaW5nIHRoZSBkYXkgYmVjYXVzZSB0aGF0IG1lYW5zIGl0J3MKZ29pbmcgdG8gYmUgdXAgYWxsIG5pZ2h0LiAgLS0gU3RldmVuIFdyaWdodAoKSSBoYXZlIHR3byB2ZXJ5IHJhcmUgcGhvdG9ncmFwaHMuCk9uZSBpcyBhIHBpY3R1cmUgb2YgSG91ZGluaSBsb2NraW5nIGhpcyBrZXlzIGluIGhpcyBjYXIuClRoZSBvdGhlciBpcyBhIHJhcmUgcGhvdG9ncmFwaCBvZiBOb3JtYW4gUm9ja3dlbGwgYmVhdGluZyB1cCBhIGNoaWxkLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgc3RheWVkIHVwIGFsbCBuaWdodCBwbGF5aW5nIHBva2VyIHdpdGggdGFyb3QgY2FyZHMuCkkgZ290IGEgZnVsbCBob3VzZSBhbmQgZm91ciBwZW9wbGUgZGllZC4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHVzZWQgdG8gd29yayBpbiBhIGZpcmUgaHlkcmFudCBmYWN0b3J5LgpZb3UgY291bGRuJ3QgcGFyayBhbnl3aGVyZSBuZWFyIHRoZSBwbGFjZS4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdlbnQgdG8gdGhlIGhhcmR3YXJlIHN0b3JlIGFuZCBib3VnaHQgc29tZSB1c2VkIHBhaW50LiAgSXQgd2FzIGluIHRoZSBzaGFwZQpvZiBhIGhvdXNlLiAgSSBhbHNvIGJvdWdodCBzb21lIGJhdHRlcmllcywgYnV0IHRoZXkgd2VyZW4ndCBpbmNsdWRlZC4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdlbnQgdG8gdGhlIG11c2V1bSB3aGVyZSB0aGV5IGhhZCBhbGwgdGhlIGhlYWRzIGFuZCBhcm1zIGZyb20gdGhlIHN0YXR1ZXMKdGhhdCBhcmUgaW4gYWxsIHRoZSBvdGhlciBtdXNldW1zLiAgLS0gU3RldmVuIFdyaWdodAoKSXQncyBhIHNtYWxsIHdvcmxkLCBidXQgSSB3b3VsZG4ndCB3YW50IHRvIGhhdmUgdG8gcGFpbnQgaXQuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKUmlnaHQgbm93IEknbSBoYXZpbmcgYW1uZXNpYSBhbmQgZGVqYSB2dSBhdCB0aGUgc2FtZSB0aW1lLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCldoYXQncyBhbm90aGVyIHdvcmQgZm9yIFRoZXNhdXJ1cz8gIC0tIFN0ZXZlbiBXcmlnaHQKCldoZW4gSSBnZXQgcmVhbCBib3JlZCwgSSBsaWtlIHRvIGRyaXZlIGRvd250b3duIGFuZCBnZXQgYSBncmVhdCBwYXJraW5nIHNwb3QsCnRoZW4gc2l0IGluIG15IGNhciBhbmQgY291bnQgaG93IG1hbnkgcGVvcGxlIGFzayBtZSBpZiBJJ20gbGVhdmluZy4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpXaGVuIEkgd2FzIGNyb3NzaW5nIHRoZSBib3JkZXIgaW50byBDYW5hZGEsIHRoZXkgYXNrZWQgaWYgSSBoYWQgYW55IGZpcmVhcm1zCndpdGggbWUuICBJIHNhaWQsICJXZWxsLCB3aGF0IGRvIHlvdSBuZWVkPyIgIC0tIFN0ZXZlbiBXcmlnaHQKCllvdSBjYW4ndCBoYXZlIGV2ZXJ5dGhpbmcuICBXaGVyZSB3b3VsZCB5b3UgcHV0IGl0PyAgLS0gU3RldmVuIFdyaWdodAoKQSBsb3Qgb2YgcGVvcGxlIGFyZSBhZnJhaWQgb2YgaGVpZ2h0cy4gIE5vdCBtZSwgSSdtIGFmcmFpZCBvZiB3aWR0aHMuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSWYgeW91IHdlcmUgZ29pbmcgdG8gc2hvb3QgYSBtaW1lLCB3b3VsZCB5b3UgdXNlIGEgc2lsZW5jZXI/CiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSSBwbGFudGVkIHNvbWUgYmlyZCBzZWVkLiAgQSBiaXJkIGNhbWUgdXAuICBOb3cgSSBkb24ndCBrbm93IHdoYXQgdG8gZmVlZCBpdC4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIG1hZGUgYSBjaG9jb2xhdGUgY2FrZSB3aXRoIHdoaXRlIGNob2NvbGF0ZS4gIFRoZW4gSSB0b29rIGl0IHRvIGEgcG90bHVjay4gCkkKc3Rvb2QgaW4gbGluZSBmb3Igc29tZSBjYWtlLiAgVGhleSBzYWlkLCAiRG8geW91IHdhbnQgd2hpdGUgY2FrZSBvciBjaG9jb2xhdGUKY2FrZT8iICBJIHNhaWQsICJ5ZXMiLiAgLS0gU3RldmVuIFdyaWdodAoKTXkgYXVudCBnYXZlIG1lIGEgd2Fsa2llLXRhbGtpZSBmb3IgbXkgYmlydGhkYXkuICBTaGUgc2F5cyBpZiBJJ20gZ29vZCwKc2hlJ2xsCmdpdmUgbWUgdGhlIG90aGVyIG9uZSBuZXh0IHllYXIuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdlbnQgdG8gdGhlIGJhbmsgYW5kIGFza2VkIHRvIGJvcnJvdyBhIGN1cCBvZiBtb25leS4gIFRoZXkgc2FpZCwgIldoYXQKZm9yPyIKSSBzYWlkLCAiSSdtIGdvaW5nIHRvIGJ1eSBzb21lIHN1Z2FyLiIgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgaGFkIGFtbmVzaWEgb25jZSBvciB0d2ljZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgYm91Z2h0IGEgbWlsbGlvbiBsb3R0ZXJ5IHRpY2tldHMuICBJIHdvbiBhIGRvbGxhci4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgZ290IGEgY2hhaW4gbGV0dGVyIGJ5IGZheC4gIEl0J3MgdmVyeSBzaW1wbGUuICBZb3UganVzdCBmYXggYSBkb2xsYXIgYmlsbAp0bwpldmVyeWJvZHkgb24gdGhlIGxpc3QuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHBsdWdnZWQgbXkgcGhvbmUgaW4gd2hlcmUgdGhlIGJsZW5kZXIgdXNlZCB0byBiZS4gIEkgY2FsbGVkIHNvbWVvbmUuICBUaGV5CndlbnQgIkFhYWFhaGhoaC4uLiIgIC0tIFN0ZXZlbiBXcmlnaHQKCk15IGZyaWVuZCBTYW0gaGFzIG9uZSBsZWcuICBJIHdlbnQgdG8gaGlzIGhvdXNlLiAgSSBjb3VsZG4ndCBnbyB1cCB0aGUKc3RhaXJzLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKClRoZSBzdW4gbmV2ZXIgc2V0cyBvbiB0aGUgQnJpdGlzaCBFbXBpcmUuICBCdXQgaXQgcmlzZXMgZXZlcnkgbW9ybmluZy4gIFRoZQpza3kKbXVzdCBnZXQgYXdmdWxseSBjcm93ZGVkLiAgLS0gU3RldmVuIFdyaWdodAoKSSBicm91Z2h0IGEgbWlycm9yIHRvIExvdmVycycgTGFuZS4gIEkgdG9sZCBldmVyeWJvZHkgSSdtIE5hcmNpc3N1cy4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpZb3Uga25vdyBob3cgaXQgaXMgd2hlbiB5b3UgZGVjaWRlIHRvIGxpZSBhbmQgc2F5IHRoZSBjaGVjayBpcyBpbiB0aGUgbWFpbCwKYW5kCnRoZW4geW91IHJlbWVtYmVyIGl0IHJlYWxseSBpcz8gIEknbSBsaWtlIHRoYXQgYWxsIHRoZSB0aW1lLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkhvdyBtYW55IHBlb3BsZSBkb2VzIGl0IHRha2UgdG8gY2hhbmdlIGEgc2VhcmNobGlnaHQgYnVsYj8KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdhcyBpbiB0aGUgZ3JvY2VyeSBzdG9yZS4gIEkgc2F3IGEgc2lnbiB0aGF0IHNhaWQgInBldCBzdXBwbGllcyIuICBTbyBJCmRpZC4KVGhlbiBJIHdlbnQgb3V0c2lkZSBhbmQgc2F3IGEgc2lnbiB0aGF0IHNhaWQgImNvbXBhY3QgY2FycyIuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKVGhlIHNreSBhbHJlYWR5IGZlbGwuICBOb3cgd2hhdD8gIC0tIFN0ZXZlbiBXcmlnaHQKCklmIHlvdSBjYW4gd2F2ZSBhIGZhbiwgYW5kIHlvdSBjYW4gd2F2ZSBhIGNsdWIsIGNhbiB5b3Ugd2F2ZSBhIGZhbiBjbHViPwogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCldoZW4gSSB3YXMgaW4gYm95IHNjb3V0cywgSSBzbGlwcGVkIG9uIHRoZSBpY2UgYW5kIGh1cnQgbXkgYW5rbGUuICBBIGxpdHRsZQpvbGQKbGFkeSBoYWQgdG8gaGVscCBtZSBhY3Jvc3MgdGhlIHN0cmVldC4gIC0tIFN0ZXZlbiBXcmlnaHQKCklmIHlvdSB3cml0ZSB0aGUgd29yZCAibW9ua2V5IiBhIG1pbGxpb24gdGltZXMsIGRvIHlvdSBzdGFydCB0byB0aGluayB5b3UncmUKU2hha2VzcGVhcmU/ICAtLSBTdGV2ZW4gV3JpZ2h0CgpZb3Uga25vdyBob3cgaXQgaXMgd2hlbiB5b3UncmUgcmVhZGluZyBhIGJvb2sgYW5kIGZhbGxpbmcgYXNsZWVwLCB5b3UncmUKcmVhZGluZywgcmVhZGluZy4uLmFuZCBhbGwgb2YgYSBzdWRkZW4geW91IG5vdGljZSB5b3VyIGV5ZXMgYXJlIGNsb3NlZD8gIEknbQpsaWtlIHRoYXQgYWxsIHRoZSB0aW1lLiAgLS0gU3RldmVuIFdyaWdodAoKTXkgcm9vbW1hdGUgZ290IGEgcGV0IGVsZXBoYW50LiAgVGhlbiBpdCBnb3QgbG9zdC4gIEl0J3MgaW4gdGhlIGFwYXJ0bWVudApzb21ld2hlcmUuICAtLSBTdGV2ZW4gV3JpZ2h0CgpTbW9raW5nIGN1cmVzIHdlaWdodCBwcm9ibGVtcy4uLmV2ZW50dWFsbHkuLi4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgaGFkIGZyaWVkIG9jdG9wdXMgbGFzdCBuaWdodC4gIFlvdSBoYXZlIHRvIGJlIHJlYWxseSBxdWlldCB3aGVuIHlvdSBlYXQgaXQuCk90aGVyd2lzZSwgaXQgZW1pdHMgYSBjbG91ZCBvZiBibGFjayBzbW9rZSBhbmQgZmFsbHMgb24gdGhlIGZsb29yLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKClllc3RlcmRheSBJIHRvbGQgYSBjaGlja2VuIHRvIGNyb3NzIHRoZSByb2FkLiAgSXQgc2FpZCwgIndoYXQgZm9yPyIKICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHhlcm94ZWQgbXkgd2F0Y2guICBOb3cgSSBoYXZlIHRpbWUgdG8gc3BhcmUuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHRvb2sgYSBjb3Vyc2UgaW4gc3BlZWQgd2FpdGluZy4gIE5vdyBJIGNhbiB3YWl0IGFuIGhvdXIgaW4gb25seSB0ZW4KbWludXRlcy4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIGVhdCBzd2lzcyBjaGVlc2UuICBCdXQgSSBvbmx5IG5pYmJsZSBvbiBpdC4gIEkgbWFrZSB0aGUgaG9sZXMgYmlnZ2VyLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgbW92ZWQgaW50byBhbiBhbGwtZWxlY3RyaWMgaG91c2UuICBJIGZvcmdvdCBhbmQgbGVmdCB0aGUgcG9yY2ggbGlnaHQgb24gYWxsCmRheS4gIFdoZW4gSSBnb3QgaG9tZSB0aGUgZnJvbnQgZG9vciB3b3VsZG4ndCBvcGVuLiAgLS0gU3RldmVuIFdyaWdodAoKSSBnb3QgYSBnYXJhZ2UgZG9vciBvcGVuZXIuICBJdCBjYW4ndCBjbG9zZS4gIEp1c3Qgb3Blbi4gIC0tIFN0ZXZlbiBXcmlnaHQKCllvdSBrbm93IGhvdyBpdCBpcyB3aGVuIHlvdSBnbyB0byBiZSB0aGUgc3ViamVjdCBvZiBhIHBzeWNob2xvZ3kgZXhwZXJpbWVudCwKYW5kIG5vYm9keSBlbHNlIHNob3dzIHVwLCBhbmQgeW91IHRoaW5rIG1heWJlIHRoYXQncyBwYXJ0IG9mIHRoZSBleHBlcmltZW50PwpJJ20gbGlrZSB0aGF0IGFsbCB0aGUgdGltZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgd2VudCBvdmVyIHRvIHRoZSBuZWlnaGJvcidzIGFuZCBhc2tlZCB0byBib3Jyb3cgYSBjdXAgb2Ygc2FsdC4gICJXaGF0IGFyZQp5b3UKbWFraW5nPyIgICJBIHNhbHQgbGljay4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpUaGVyZSBhcmVuJ3QgZW5vdWdoIGRheXMgaW4gdGhlIHdlZWtlbmQuICAtLSBTdGV2ZW4gV3JpZ2h0CgpNeSBmcmllbmQgU2FsbHkgaXMgYSBudWRpc3QuICBJIHdlbnQgdG8gaGVyIGhvdXNlLiAgVGhlIGNsb3NldHMgaGF2ZSBubwpkb29ycy4KVGhlIHdhbGxzIGFyZSBjb3ZlcmVkIHdpdGggc2VlLXRocm91Z2ggd2FsbHBhcGVyLiAgLS0gU3RldmVuIFdyaWdodAoKU2FsbHkgcGxheXMgc3RyaXAgcG9rZXIuICBXaGVuZXZlciBzaGUgbG9zZXMsIHNoZSBoYXMgdG8gcHV0IHNvbWV0aGluZyBvbi4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpUaGUgc2t5IGlzIGZhbGxpbmcuLi5ubywgSSdtIHRpcHBpbmcgb3ZlciBiYWNrd2FyZHMuICAtLSBTdGV2ZW4gV3JpZ2h0CgpEcm91Z2h0cyBhcmUgYmVjYXVzZSBnb2QgZGlkbid0IHBheSBoaXMgd2F0ZXIgYmlsbC4gIC0tIFN0ZXZlbiBXcmlnaHQKCklzICJ0aXJlZCBvbGQgY2xpY2hlIiBvbmU/ICAtLSBTdGV2ZW4gV3JpZ2h0CgpJZiB5b3UgaGFkIGEgbWlsbGlvbiBTaGFrZXNwZWFyZXMsIGNvdWxkIHRoZXkgd3JpdGUgbGlrZSBhIG1vbmtleT8KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJZiB5b3UgdGVsbCBhIGpva2UgaW4gdGhlIGZvcmVzdCwgYnV0IG5vYm9keSBsYXVnaHMsIHdhcyBpdCBhIGpva2U/CiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSXQgb25seSByYWlucyBzdHJhaWdodCBkb3duLiAgR29kIGRvZXNuJ3QgZG8gd2luZG93cy4gIC0tIFN0ZXZlbiBXcmlnaHQKCldoZW4gSSBnZXQgYm9yZWQgSSBnbyB0byBhIFNldmVuLUVsZXZlbiBhbmQgYXNrIGZvciBhIHR3by1ieS1mb3VyIGFuZCBhIGJveApvZgp0aHJlZS1ieS1maXZlcy4gIC0tIFN0ZXZlbiBXcmlnaHQKClRoZSBzaWduIHNhaWQgImVpZ2h0IGl0ZW1zIG9yIGxlc3MiLiAgU28gSSBjaGFuZ2VkIG15IG5hbWUgdG8gTGVzLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKClllc3RlcmRheSBJIHNhdyBhIGNoaWNrZW4gY3Jvc3NpbmcgdGhlIHJvYWQuICBJIGFza2VkIGl0IHdoeS4gIEl0IHRvbGQgbWUgaXQKd2FzIG5vbmUgb2YgbXkgYnVzaW5lc3MuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHJlbnRlZCBhIGxvdHRlcnkgdGlja2V0LiAgSSB3b24gYSBtaWxsaW9uIGRvbGxhcnMuICBCdXQgSSBoYWQgdG8gZ2l2ZSBpdApiYWNrLiAgLS0gU3RldmVuIFdyaWdodAoKSW4gc2Nob29sLCBldmVyeSBwZXJpb2QgZW5kcyB3aXRoIGEgYmVsbC4gIEV2ZXJ5IHNlbnRlbmNlIGVuZHMgd2l0aCBhIHBlcmlvZC4KRXZlcnkgY3JpbWUgZW5kcyB3aXRoIGEgc2VudGVuY2UuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHhlcm94ZWQgbXkgd2F0Y2guICBOb3cgSSBjYW4gZ2l2ZSBhd2F5IGZyZWUgd2F0Y2hlcy4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgeGVyb3hlZCBhIG1pcnJvci4gIE5vdyBJIGhhdmUgYW4gZXh0cmEgeGVyb3ggbWFjaGluZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgdG9vayBhIGNvdXJzZSBpbiBzcGVlZCByZWFkaW5nLiAgVGhlbiBJIGdvdCBSZWFkZXIncyBEaWdlc3Qgb24gbWljcm9maWxtLiAKQnkKdGhlIHRpbWUgSSBnb3QgdGhlIG1hY2hpbmUgc2V0IHVwLCBJIHdhcyBkb25lLiAgLS0gU3RldmVuIFdyaWdodAoKWWVzdGVyZGF5IEkgZm91bmQgb3V0IHdoYXQgZG91Z2hudXRzIGFyZSBmb3IuICBZb3UgcHV0IHRoZW0gb24gZG91Z2hib2x0cy4KVGhleSBob2xkIGRvdWdoIGFpcnBsYW5lcyB0b2dldGhlci4gIEZvciBraWRzLCB0aGV5IG1ha2UgZXJlY3RvciBzZXRzIG91dCBvZgpwbGF5LWRvdWdoLiAgLS0gU3RldmVuIFdyaWdodAoKSSB3ZW50IHRvIGEgaGF1bnRlZCBob3VzZSwgbG9va2VkIHVuZGVyIHRoZSBraXRjaGVuIHRhYmxlLCBhbmQgZm91bmQgc3Bpcml0Cmd1bS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgdG9vayBsZXNzb25zIGluIGJpY3ljbGUgcmlkaW5nLiAgQnV0IEkgY291bGQgb25seSBhZmZvcmQgaGFsZiBvZiB0aGVtLiAgTm93CkkKY2FuIHJpZGUgYSB1bmljeWNsZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgaGFkIHNvbWUgZXllZ2xhc3Nlcy4gIEkgd2FzIHdhbGtpbmcgZG93biB0aGUgc3RyZWV0IHdoZW4gc3VkZGVubHkgdGhlCnByZXNjcmlwdGlvbiByYW4gb3V0LiAgLS0gU3RldmVuIFdyaWdodAoKSSBnb3QgZm9vZCBwb2lzb25pbmcgdG9kYXkuICBJIGRvbid0IGtub3cgd2hlbiBJJ2xsIHVzZSBpdC4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgcHV0IG15IGFpciBjb25kaXRpb25lciBpbiBiYWNrd2FyZHMuICBJdCBnb3QgY29sZCBvdXRzaWRlLiAgVGhlIHdlYXRoZXJtYW4Kb24KVFYgd2FzIGNvbmZ1c2VkLiAgIkl0IHdhcyBzdXBwb3NlZCB0byBiZSBob3QgdG9kYXkuIiAgLS0gU3RldmVuIFdyaWdodAoKSSB3YXMgaW4gYSBqb2IgaW50ZXJ2aWV3IGFuZCBJIG9wZW5lZCBhIGJvb2sgYW5kIHN0YXJ0ZWQgcmVhZGluZy4gIFRoZW4gSQpzYWlkCnRvIHRoZSBndXksICJMZXQgbWUgYXNrIHlvdSBhIHF1ZXN0aW9uLiAgSWYgeW91IGFyZSBpbiBhIHNwYWNlc2hpcCB0aGF0IGlzCnRyYXZlbGluZyBhdCB0aGUgc3BlZWQgb2YgbGlnaHQsIGFuZCB5b3UgdHVybiBvbiB0aGUgaGVhZGxpZ2h0cywgZG9lcwphbnl0aGluZwpoYXBwZW4/IiAgSGUgc2FpZCwgIkkgZG9uJ3Qga25vdy4iICBJIHNhaWQsICJJIGRvbid0IHdhbnQgeW91ciBqb2IuIgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgd2FzIGluIHRoZSBmaXJzdCBzdWJtYXJpbmUuICBJbnN0ZWFkIG9mIGEgcGVyaXNjb3BlLCB0aGV5IGhhZCBhCmthbGVpZG9zY29wZS4KIldlJ3JlIHN1cnJvdW5kZWQuIiAgLS0gU3RldmVuIFdyaWdodAoKSSB3ZW50IGNhbXBpbmcgYW5kIGJvcnJvd2VkIGEgY2lyY3VzIHRlbnQgYnkgbWlzdGFrZS4gIEkgZGlkbid0IG5vdGljZSB1bnRpbApJCmdvdCBpdCBzZXQgdXAuICBQZW9wbGUgY29tcGxhaW5lZCBiZWNhdXNlIHRoZXkgY291bGRuJ3Qgc2VlIHRoZSBsYWtlLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCldoZW4gSSB0dXJuZWQgdHdvIEkgd2FzIHJlYWxseSBhbnhpb3VzLCBiZWNhdXNlIEknZCBkb3VibGVkIG15IGFnZSBpbiBhIHllYXIuCkkgdGhvdWdodCwgaWYgdGhpcyBrZWVwcyB1cCwgYnkgdGhlIHRpbWUgSSdtIHNpeCBJJ2xsIGJlIG5pbmV0eS4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpTcG9uZ2VzIGdyb3cgaW4gdGhlIG9jZWFuLiAgVGhhdCBqdXN0IGtpbGxzIG1lLiAgSSB3b25kZXIgaG93IG11Y2ggZGVlcGVyIHRoZQpvY2VhbiB3b3VsZCBiZSBpZiB0aGF0IGRpZG4ndCBoYXBwZW4uICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHB1dCBpbnN0YW50IGNvZmZlZSBpbiBhIG1pY3Jvd2F2ZSBvdmVuIGFuZCBhbG1vc3Qgd2VudCBiYWNrIGluIHRpbWUuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSXQncyBhIGZpbmUgbmlnaHQgdG8gaGF2ZSBhbiBldmVuaW5nLiAgLS0gU3RldmVuIFdyaWdodAoKRXZlbiBzbmFrZXMgYXJlIGFmcmFpZCBvZiBzbmFrZXMuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIGNhbid0IHN0b3AgdGhpbmtpbmcgbGlrZSB0aGlzLiAgLS0gU3RldmVuIFdyaWdodAoKVGhpcyBpc24ndCBhbGwgdHJ1ZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCllvdSBrbm93IGhvdyBpdCBpcyB3aGVuIHlvdSdyZSB3YWxraW5nIHVwIHRoZSBzdGFpcnMsIGFuZCB5b3UgZ2V0IHRvIHRoZSB0b3AsCmFuZCB5b3UgdGhpbmsgdGhlcmUncyBvbmUgbW9yZSBzdGVwPyAgSSdtIGxpa2UgdGhhdCBhbGwgdGhlIHRpbWUuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSSBwdXQgaGFyZHdvb2QgZmxvb3JzIG9uIHRvcCBvZiB3YWxsLXRvLXdhbGwgY2FycGV0LiAgLS0gU3RldmVuIFdyaWdodAoKVGluc2VsIGlzIHJlYWxseSBzbmFrZXMnIG1pcnJvcnMuICAtLSBTdGV2ZW4gV3JpZ2h0CgpUd28gYmFiaWVzIHdlcmUgYm9ybiBvbiB0aGUgc2FtZSBkYXkgYXQgdGhlIHNhbWUgaG9zcGl0YWwuICBUaGV5IGxheSB0aGVyZQphbmQKbG9va2VkIGF0IGVhY2ggb3RoZXIuICBUaGVpciBmYW1pbGllcyBjYW1lIGFuZCB0b29rIHRoZW0gYXdheS4gIEVpZ2h0eSB5ZWFycwpsYXRlciwgYnkgYSBiaXphcnJlIGNvaW5jaWRlbmNlLCB0aGV5IGxheSBpbiB0aGUgc2FtZSBob3NwaXRhbCwgb24gdGhlaXIKZGVhdGhiZWRzLCBuZXh0IHRvIGVhY2ggb3RoZXIuICBPbmUgb2YgdGhlbSBsb29rZWQgYXQgdGhlIG90aGVyIGFuZCBzYWlkLAoiU28uCldoYXQgZGlkIHlvdSB0aGluaz8iICAtLSBTdGV2ZW4gV3JpZ2h0CgpNeSBncmFuZGZhdGhlciBnYXZlIG1lIGEgd2F0Y2guICBJdCBkb2Vzbid0IGhhdmUgYW55IGhhbmRzIG9yIG51bWJlcnMuICBIZQpzYXlzCml0J3MgdmVyeSBhY2N1cmF0ZS4gIEkgYXNrZWQgaGltIHdoYXQgdGltZSBpdCB3YXMuICBZb3UgY2FuIGd1ZXNzIHdoYXQgaGUKdG9sZAptZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgc3BlbnQgYWxsIG15IG1vbmV5IG9uIGEgRkFYIG1hY2hpbmUuICBOb3cgSSBjYW4gb25seSBGQVggY29sbGVjdC4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJZiBhIHdvcmQgaW4gdGhlIGRpY3Rpb25hcnkgd2VyZSBtaXNwZWxsZWQsIGhvdyB3b3VsZCB3ZSBrbm93PwogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCklmIEdvZCBkcm9wcGVkIGFjaWQsIHdvdWxkIGhlIHNlZSBwZW9wbGU/ICAtLSBTdGV2ZW4gV3JpZ2h0CgpJbiBteSBob3VzZSB0aGVyZSdzIHRoaXMgbGlnaHQgc3dpdGNoIHRoYXQgZG9lc24ndCBkbyBhbnl0aGluZy4gIEV2ZXJ5IHNvCm9mdGVuCkkgd291bGQgZmxpY2sgaXQgb24gYW5kIG9mZiBqdXN0IHRvIGNoZWNrLiAgWWVzdGVyZGF5LCBJIGdvdCBhIGNhbGwgZnJvbSBhCndvbWFuIGluIE1hZGFnYXNjYXIuICBTaGUgc2FpZCwgIkN1dCBpdCBvdXQuIiAgLS0gU3RldmVuIFdyaWdodAoKSXQncyBhIGdvb2QgdGhpbmcgd2UgaGF2ZSBncmF2aXR5IG9yIGVsc2Ugd2hlbiBiaXJkcyBkaWVkIHRoZXknZCBqdXN0IHN0YXkKcmlnaHQgdXAgdGhlcmUuICBIdW50ZXJzIHdvdWxkIGJlIGFsbCBjb25mdXNlZC4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgd3JvdGUgYSBmZXcgY2hpbGRyZW4ncyBib29rcy4uLm5vdCBvbiBwdXJwb3NlLiAgLS0gU3RldmVuIFdyaWdodAoKSSB3cm90ZSBhIHNvbmcsIGJ1dCBJIGNhbid0IHJlYWQgbXVzaWMgc28gSSBkb24ndCBrbm93IHdoYXQgaXQgaXQuICBFdmVyeQpvbmNlCmluIGEgd2hpbGUgSSdsbCBiZSBsaXN0ZW5pbmcgdG8gdGhlIHJhZGlvIGFuZCBJIHNheSwgIkkgdGhpbmsgSSBtaWdodCBoYXZlCndyaXR0ZW4gdGhhdC4iICAtLSBTdGV2ZW4gV3JpZ2h0CgoiU28sIGRvIHlvdSBsaXZlIGFyb3VuZCBoZXJlIG9mdGVuPyIgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgZ290IHVwIG9uZSBtb3JuaW5nLCBjb3VsZG4ndCBmaW5kIG15IHNvY2tzLCBzbyBJIGNhbGxlZCBJbmZvcm1hdGlvbi4gIFNoZQpzYWlkLCAiSGVsbG8sIEluZm9ybWF0aW9uLiIgIEkgc2FpZCwgIkkgY2FuJ3QgZmluZCBteSBzb2Nrcy4iIFNoZSBzYWlkLAoiVGhleSdyZSBiZWhpbmQgdGhlIGNvdWNoLiIgIEFuZCB0aGV5IHdlcmUhICAtLSBTdGV2ZW4gV3JpZ2h0CgpXaGVuIEkgd2FzIGEgbGl0dGxlIGtpZCB3ZSBoYWQgYSBzYW5kIGJveC4gIEl0IHdhcyBhIHF1aWNrc2FuZCBib3guCkkgd2FzIGFuIG9ubHkgY2hpbGQuLi4uZXZlbnR1YWxseS4gIC0tIFN0ZXZlbiBXcmlnaHQKCltSZWZlcnJpbmcgdG8gYSBnbGFzcyBvZiB3YXRlcjpdCkkgbWl4ZWQgdGhpcyBteXNlbGYuICBUd28gcGFydHMgSCwgb25lIHBhcnQgTy4gIEkgZG9uJ3QgdHJ1c3QgYW55Ym9keSEKICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJdCdzIGEgc21hbGwgd29ybGQsIGJ1dCBJIHdvdWxkbid0IHdhbnQgdG8gaGF2ZSB0byBwYWludCBpdC4gIC0tIFN0ZXZlbgpXcmlnaHQKCkNyb3NzIGNvdW50cnkgc2tpaW5nIGlzIGdyZWF0IGlmIHlvdSBsaXZlIGluIGEgc21hbGwgY291bnRyeS4gIC0tIFN0ZXZlbgpXcmlnaHQKCkkgd2VudCB0byB0aGUgYmFuayBhbmQgYXNrZWQgdG8gYm9ycm93IGEgY3VwIG9mIG1vbmV5LiAgVGhleSBzYWlkLCAiV2hhdApmb3I/IgpJIHNhaWQsICJJJ20gZ29pbmcgdG8gYnV5IHNvbWUgc3VnYXIuIiAgLS0gU3RldmVuIFdyaWdodAoKSSBzYXcgYSBiYW5rIHRoYXQgc2FpZCAiMjQgSG91ciBCYW5raW5nIiwgYnV0IEkgZG9uJ3QgaGF2ZSB0aGF0IG11Y2ggdGltZS4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdlbnQgdG8gdGhlIG11c2V1bSB3aGVyZSB0aGV5IGhhZCBhbGwgdGhlIGhlYWRzIGFuZCBhcm1zIGZyb20gdGhlIHN0YXR1ZXMKdGhhdCBhcmUgaW4gYWxsIHRoZSBvdGhlciBtdXNldW1zLiAgLS0gU3RldmVuIFdyaWdodAoKSSBsaWtlIHRvIGdvIHRvIGFydCBtdXNldW1zIGFuZCBuYW1lIHRoZSB1bnRpdGxlZCBwYWludGluZ3MuLi4KQm95IFdpdGggUGFpbC4uLiAgS2l0dGVuIE9uIEZpcmUuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdlbnQgdG8gYSByZXN0YXVyYW50IHRoYXQgc2VydmVzICJicmVha2Zhc3QgYXQgYW55IHRpbWUiLiAgU28gSSBvcmRlcmVkCkZyZW5jaCBUb2FzdCBkdXJpbmcgdGhlIFJlbmFpc3NhbmNlLiAgLS0gU3RldmVuIFdyaWdodAoKSSB3ZW50IHRvIHRoaXMgcmVzdGF1cmFudCBsYXN0IG5pZ2h0IHRoYXQgd2FzIHNldCB1cCBsaWtlIGEgYmlnIGJ1ZmZldCBpbiB0aGUKc2hhcGUgb2YgYW4gT3VpamEgYm9hcmQuICBZb3UnZCB0aGluayBhYm91dCB3aGF0IGtpbmQgb2YgZm9vZCB5b3Ugd2FudCwgYW5kCnRoZQp0YWJsZSB3b3VsZCBtb3ZlIGFjcm9zcyB0aGUgZmxvb3IgdG8gaXQuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdlbnQgdG8gYSBnZW5lcmFsIHN0b3JlLiAgVGhleSB3b3VsZG4ndCBsZXQgbWUgYnV5IGFueXRoaW5nIHNwZWNpZmljYWxseS4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdvcmtlZCBpbiBhIGhlYWx0aCBmb29kIHN0b3JlIG9uY2UuICBBIGd1eSBjYW1lIGluIGFuZCBhc2tlZCBtZSwgIklmIEkgbWVsdApkcnkgaWNlLCBjYW4gSSB0YWtlIGEgYmF0aCB3aXRob3V0IGdldHRpbmcgd2V0PyIgIC0tIFN0ZXZlbiBXcmlnaHQKCgpJIHdhcyBpbiB0aGUgZ3JvY2VyeSBzdG9yZS4gIEkgc2F3IGEgc2lnbiB0aGF0IHNhaWQgInBldCBzdXBwbGllcyIuICBTbyBJCmRpZC4KVGhlbiBJIHdlbnQgb3V0c2lkZSBhbmQgc2F3IGEgc2lnbiB0aGF0IHNhaWQgImNvbXBhY3QgY2FycyIuICAtLSBTdGV2ZW4KV3JpZ2h0CgpJIHdlbnQgZG93biB0aGUgc3RyZWV0IHRvIHRoZSAyNC1ob3VyIGdyb2NlcnkuICBXaGVuIEkgZ290IHRoZXJlLCB0aGUgZ3V5IHdhcwpsb2NraW5nIHRoZSBmcm9udCBkb29yLiAgSSBzYWlkLCAiSGV5LCB0aGUgc2lnbiBzYXlzIHlvdSdyZSBvcGVuIDI0IGhvdXJzLiIgCkhlCnNhaWQsICJZZXMsIGJ1dCBub3QgaW4gYSByb3cuIiAgLS0gU3RldmVuIFdyaWdodAoKSSBsb3ZlIHRvIGdvIHNob3BwaW5nLiAgSSBsb3ZlIHRvIGZyZWFrIG91dCBzYWxlc3Blb3BsZS4gIFRoZXkgYXNrIG1lIGlmIHRoZXkKY2FuIGhlbHAgbWUsIGFuZCBJIHNheSwgIkhhdmUgeW91IGdvdCBhbnl0aGluZyBJJ2QgbGlrZT8iICBUaGVuIHRoZXkgYXNrIG1lCndoYXQgc2l6ZSBJIG5lZWQsIGFuZCBJIHNheSwgIkV4dHJhIG1lZGl1bS4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHNhdyBhIHNtYWxsIGJvdHRsZSBvZiBjb2xvZ25lIGFuZCBhc2tlZCBpZiBpdCB3YXMgZm9yIHNhbGUuICBTaGUgc2FpZCwKIkl0J3MKZnJlZSB3aXRoIHB1cmNoYXNlLiIgIEkgYXNrZWQgaGVyIGlmIGFueW9uZSBib3VnaHQgYW55dGhpbmcgdG9kYXkuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSSBtZXQgdGhpcyB3b25kZXJmdWwgZ2lybCBhdCBNYWN5J3MuICBTaGUgd2FzIGJ1eWluZyBjbG90aGVzIGFuZCBJIHdhcwpwdXR0aW5nClNsaW5raWVzIG9uIHRoZSBlc2NhbGF0b3IuICAtLSBTdGV2ZW4gV3JpZ2h0CgpUaGVyZSB3YXMgYSBwb3dlciBvdXRhZ2UgYXQgYSBkZXBhcnRtZW50IHN0b3JlIHllc3RlcmRheS4gIFR3ZW50eSBwZW9wbGUgd2VyZQp0cmFwcGVkIG9uIHRoZSBlc2NhbGF0b3JzLiAgLS0gU3RldmVuIFdyaWdodAoKSSBib3VnaHQgbXkgYnJvdGhlciBzb21lIGdpZnQtd3JhcCBmb3IgQ2hyaXN0bWFzLiAgSSB0b29rIGl0IHRvIHRoZSBHaWZ0IFdyYXAKZGVwYXJ0bWVudCBhbmQgdG9sZCB0aGVtIHRvIHdyYXAgaXQsIGJ1dCBpbiBhIGRpZmZlcmVudCBwcmludCBzbyBoZSB3b3VsZAprbm93CndoZW4gdG8gc3RvcCB1bndyYXBwaW5nLiAgLS0gU3RldmVuIFdyaWdodAoKRm9yIG15IGJpcnRoZGF5IEkgZ290IGEgaHVtaWRpZmllciBhbmQgYSBkZS1odW1pZGlmaWVyLi4uSSBwdXQgdGhlbSBpbiB0aGUKc2FtZQpyb29tIGFuZCBsZXQgdGhlbSBmaWdodCBpdCBvdXQuICAtLSBTdGV2ZW4gV3JpZ2h0CgpFdmVyIG5vdGljZSBob3cgaXJvbnMgaGF2ZSBhIHNldHRpbmcgZm9yICpwZXJtYW5lbnQqIHByZXNzPyAgSSBkb24ndCBnZXQKaXQuLi4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgoKSSBpbnZlbnRlZCB0aGUgY29yZGxlc3MgZXh0ZW5zaW9uIGNvcmQuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHNhdyBhIGNsb3NlIGZyaWVuZCBvZiBtaW5lIHRoZSBvdGhlciBkYXkuLi4gIEhlIHNhaWQsICJTdGVwaGVuLCB3aHkgaGF2ZW4ndAp5b3UgY2FsbGVkIG1lPyIgIEkgc2FpZCwgIkkgY2FuJ3QgY2FsbCBldmVyeW9uZSBJIHdhbnQuICBNeSBuZXcgcGhvbmUgaGFzIG5vCmZpdmUgb24gaXQuIiAgSGUgc2FpZCwgIkhvdyBsb25nIGhhdmUgeW91IGhhZCBpdD8iICBJIHNhaWQsICJJIGRvbid0IGtub3cuLi4KbXkgY2FsZW5kYXIgaGFzIG5vIHNldmVucyBvbiBpdC4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHBsdWdnZWQgbXkgcGhvbmUgaW4gd2hlcmUgdGhlIGJsZW5kZXIgdXNlZCB0byBiZS4gIEkgY2FsbGVkIHNvbWVvbmUuICBUaGV5CndlbnQgIkFhYWFhaGhoaC4uLiIgIC0tIFN0ZXZlbiBXcmlnaHQKClRvZGF5IEkgZGlhbGVkIGEgd3JvbmcgbnVtYmVyLi4uICBUaGUgb3RoZXIgcGVyc29uIHNhaWQsICJIZWxsbz8iICBhbmQgSQpzYWlkLAoiSGVsbG8sIGNvdWxkIEkgc3BlYWsgdG8gSm9leT8iLi4uICBUaGV5IHNhaWQsICJVaC4uLiAgSSBkb24ndCB0aGluayBzby4uLgpoZSdzIG9ubHkgMiBtb250aHMgb2xkLiIgIEkgc2FpZCwgIkknbGwgd2FpdC4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIGRvbid0IGxpa2UgdGhlIHNvdW5kIG9mIG15IHBob25lIHJpbmdpbmcgc28gSSBwdXQgbXkgcGhvbmUgaW5zaWRlIG15IGZpc2gKdGFuay4gIEkgY2FuJ3QgaGVhciBpdCwgYnV0IGV2ZXJ5IHRpbWUgSSBnZXQgYSBjYWxsIEkgc2VlIHRoZSBmaXNoIGdvIGxpa2UKdGhpcwo8PDw+Pj48PD4+PDw8PC4gIEkgZ28gZG93biB0byB0aGUgcGV0IHN0b3JlIC0tICJHaW1tZSBhbm90aGVyIHRlbiBndXBwaWVzLCBJCmdvdCBhIGxvdHRhIGNhbGxzIHllc3RlcmRheS4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpNeSByb29tbWF0ZSBnb3QgYSBwZXQgZWxlcGhhbnQuICBUaGVuIGl0IGdvdCBsb3N0LiAgSXQncyBpbiB0aGUgYXBhcnRtZW50CnNvbWV3aGVyZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgaW5zdGFsbGVkIGEgc2t5bGlnaHQgaW4gbXkgYXBhcnRtZW50Li4uVGhlIHBlb3BsZSB3aG8gbGl2ZSBhYm92ZSBtZSBhcmUKZnVyaW91cyEgIC0tIFN0ZXZlbiBXcmlnaHQKCkFsbCBvZiB0aGUgcGVvcGxlIGluIG15IGJ1aWxkaW5nIGFyZSBpbnNhbmUuICBUaGUgZ3V5IGFib3ZlIG1lIGRlc2lnbnMKc3ludGhldGljIGhhaXJiYWxscyBmb3IgY2VyYW1pYyBjYXRzLiAgVGhlIGxhZHkgYWNyb3NzIHRoZSBoYWxsIHRyaWVkIHRvIHJvYgphCmRlcGFydG1lbnQgc3RvcmUuLi53aXRoIGEgcHJpY2luZyBndW4uICBTaGUgc2FpZCwgIkdpdmUgbWUgYWxsIG9mIHRoZSBtb25leQppbgp0aGUgdmF1bHQsIG9yIEknbSBtYXJraW5nIGRvd24gZXZlcnl0aGluZyBpbiB0aGUgc3RvcmUuIiAgLS0gU3RldmVuIFdyaWdodAoKCkluIG15IGhvdXNlIHRoZXJlJ3MgdGhpcyBsaWdodCBzd2l0Y2ggdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nLiAgRXZlcnkgc28Kb2Z0ZW4KSSB3b3VsZCBmbGljayBpdCBvbiBhbmQgb2ZmIGp1c3QgdG8gY2hlY2suICBZZXN0ZXJkYXksIEkgZ290IGEgY2FsbCBmcm9tIGEKd29tYW4gaW4gR2VybWFueS4gIFNoZSBzYWlkLCAiQ3V0IGl0IG91dC4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpEb2luZyBhIGxpdHRsZSB3b3JrIGFyb3VuZCB0aGUgaG91c2UuICBJIHB1dCBmYWtlIGJyaWNrIHdhbGxwYXBlciBvdmVyIGEgcmVhbApicmljayB3YWxsLCBqdXN0IHNvIEknZCBiZSB0aGUgb25seSBvbmUgd2hvIGtuZXcuICBQZW9wbGUgY29tZSBvdmVyIGFuZCBJJ20KZ29ubmEgc2F5LCAiR28gYWhlYWQsIHRvdWNoIGl0Li4uaXQgZmVlbHMgcmVhbC4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpJbiBteSBob3VzZSBvbiB0aGUgY2VpbGluZ3MgSSBoYXZlIHBhaW50aW5ncyBvZiB0aGUgcm9vbXMgYWJvdmUuLi5zbyBJIG5ldmVyCmhhdmUgdG8gZ28gdXBzdGFpcnMuICAtLSBTdGV2ZW4gV3JpZ2h0CgpPbmUgdGltZSB0aGUgcG93ZXIgd2VudCBvdXQgaW4gbXkgaG91c2UgYW5kIEkgaGFkIHRvIHVzZSB0aGUgZmxhc2ggb24gbXkKY2FtZXJhCnRvIHNlZSBteSB3YXkgYXJvdW5kLiAgSSBtYWRlIGEgc2FuZHdpY2ggYW5kIHRvb2sgZmlmdHkgcGljdHVyZXMgb2YgbXkgZmFjZS4KVGhlIG5laWdoYm9ycyB0aG91Z2h0IHRoZXJlIHdhcyBsaWdodG5pbmcgaW4gbXkgaG91c2UuICAtLSBTdGV2ZW4gV3JpZ2h0CgpBbGwgdGhlIHBsYW50cyBpbiBteSBob3VzZSBhcmUgZGVhZC0tLUkgc2hvdCB0aGVtIGxhc3QgbmlnaHQuICBJIHdhcyB0ZWFzaW5nCnRoZW0gYnkgd2F0ZXJpbmcgdGhlbSB3aXRoIGljZSBjdWJlcy4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgaGF2ZSBhIG1pY3Jvd2F2ZSBmaXJlcGxhY2UgaW4gbXkgaG91c2UuLi5UaGUgb3RoZXIgbmlnaHQgSSBsYWlkIGRvd24gaW4KZnJvbnQKb2YgdGhlIGZpcmUgZm9yIHRoZSBldmVuaW5nIGluIHR3byBtaW51dGVzLiAgLS0gU3RldmVuIFdyaWdodAoKV2lubnkgYW5kIEkgbGl2ZWQgaW4gYSBob3VzZSB0aGF0IHJhbiBvbiBzdGF0aWMgZWxlY3RyaWNpdHkuLi5JZiB5b3Ugd2FudGVkCnRvCnJ1biB0aGUgYmxlbmRlciwgeW91IGhhZCB0byBydWIgYmFsbG9vbnMgb24geW91ciBoZWFkLiAgSWYgeW91IHdhbnRlZCB0bwpjb29rLAp5b3UgaGFkIHRvIHB1bGwgb2ZmIGEgc3dlYXRlciByZWFsIHF1aWNrLiAgLS0gU3RldmVuIFdyaWdodAoKSSBib3VnaHQgYSBob3VzZSwgb24gYSBvbmUtd2F5IGRlYWQtZW5kIHJvYWQuICBJIGRvbid0IGtub3cgaG93IEkgZ290IHRoZXJlLgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCnkgaG91c2UgaXMgbWFkZSBvdXQgb2YgYmFsc2Egd29vZCwgc28gd2hlbiBJIHdhbnQgdG8gc2NhcmUgdGhlIG5laWdoYm9yaG9vZApraWRzIEkgbGlmdCBpdCBvdmVyIG15IGhlYWQgYW5kIHRlbGwgdGhlbSB0byBnZXQgb3V0IG9mIG15IHlhcmQgb3IgSSdsbCB0aHJvdwppdCBhdCB0aGVtLiAgLS0gU3RldmVuIFdyaWdodAoKVGhlIG90aGVyIG5pZ2h0IEkgY2FtZSBob21lIGxhdGUsIGFuZCB0cmllZCB0byB1bmxvY2sgbXkgaG91c2Ugd2l0aCBteSBjYXIKa2V5cy4gIEkgc3RhcnRlZCB0aGUgaG91c2UgdXAuICBTbywgSSBkcm92ZSBpdCBhcm91bmQgZm9yIGEgd2hpbGUuICBJIHdhcwpzcGVlZGluZywgYW5kIGEgY29wIHB1bGxlZCBtZSBvdmVyLiAgSGUgYXNrZWQgd2hlcmUgSSBsaXZlZC4gIEkgc2FpZCwgInJpZ2h0CmhlcmUsIG9mZmljZXIiLiAgTGF0ZXIsIEkgcGFya2VkIGl0IG9uIHRoZSBmcmVld2F5LCBnb3Qgb3V0LCBhbmQgeWVsbGVkIGF0CmFsbAp0aGUgY2FycywgIkdldCBvdXQgb2YgbXkgZHJpdmV3YXkhIiAgLS0gU3RldmVuIFdyaWdodAoKTXkgaG91c2UgaXMgb24gdGhlIG1lZGlhbiBzdHJpcCBvZiBhIGhpZ2h3YXkuICBZb3UgZG9uJ3QgcmVhbGx5IG5vdGljZSwKZXhjZXB0CkkgaGF2ZSB0byBsZWF2ZSB0aGUgZHJpdmV3YXkgZG9pbmcgNjAgTVBILiAgLS0gU3RldmVuIFdyaWdodAoKRm9yIGEgd2hpbGUgSSBkaWRuJ3QgaGF2ZSBhIGNhci4uLkkgaGFkIGEgaGVsaWNvcHRlci4uLm5vIHBsYWNlIHRvIHBhcmsgaXQsCnNvCkkganVzdCB0aWVkIGl0IHRvIGEgbGFtcCBwb3N0IGFuZCBsZWZ0IGl0IHJ1bm5pbmcuLi5bc2xvdyBnbGFuY2UgdXB3YXJkXQogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgaG9va2VkIHVwIG15IGFjY2VsZXJhdG9yIHBlZGFsIGluIG15IGNhciB0byBteSBicmFrZSBsaWdodHMuICBJIGhpdCB0aGUKZ2FzLApwZW9wbGUgYmVoaW5kIG1lIHN0b3AsIGFuZCBJJ20gZ29uZS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgcmVwbGFjZWQgdGhlIGhlYWRsaWdodHMgaW4gbXkgY2FyIHdpdGggc3Ryb2JlIGxpZ2h0cywgc28gaXQgbG9va3MgbGlrZSBJJ20KdGhlIG9ubHkgb25lIG1vdmluZy4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgcGxheSB0aGUgaGFybW9uaWNhLiAgVGhlIG9ubHkgd2F5IEkgY2FuIHBsYXkgaXMgaWYgSSBnZXQgbXkgY2FyIGdvaW5nCnJlYWxseQpmYXN0LCBhbmQgc3RpY2sgaXQgb3V0IHRoZSB3aW5kb3cuICBJIHB1dCBhIG5ldyBlbmdpbmUgaW4gbXkgY2FyLCBidXQgZm9yZ290CnRvCnRha2UgdGhlIG9sZCBvbmUgb3V0LiAgTm93IG15IGNhciBnb2VzIDUwMCBtaWxlcyBwZXIgaG91ci4gIFRoZSBoYXJtb25pY2EKc291bmRzICphbWF6aW5nKi4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgd2F0Y2hlZCB0aGUgSW5keSA1MDAsIGFuZCBJIHdhcyB0aGlua2luZyB0aGF0IGlmIHRoZXkgbGVmdCBlYXJsaWVyIHRoZXkKd291bGRuJ3QgaGF2ZSB0byBnbyBzbyBmYXN0LiAgLS0gU3RldmVuIFdyaWdodAoKSSBoYWQgdG8gc3RvcCBkcml2aW5nIG15IGNhciBmb3IgYSB3aGlsZS4uLnRoZSB0aXJlcyBnb3QgZGl6enkuCiAhbmlja2UKSSB1c2VkIHRvIHdvcmsgaW4gYSBmaXJlIGh5ZHJhbnQgZmFjdG9yeS4gIFlvdSBjb3VsZG4ndCBwYXJrIGFueXdoZXJlIG5lYXIKdGhlCnBsYWNlLiAgLS0gU3RldmVuIFdyaWdodAoKSSBoYXZlIGFuIGFuc3dlcmluZyBtYWNoaW5lIGluIG15IGNhci4gIEl0IHNheXMsICJJJ20gaG9tZSBub3cuICBCdXQgbGVhdmUgYQptZXNzYWdlIGFuZCBJJ2xsIGNhbGwgd2hlbiBJJ20gb3V0LiIgIC0tIFN0ZXZlbiBXcmlnaHQKCkxhc3QgeWVhciB3ZSBkcm92ZSBhY3Jvc3MgdGhlIGNvdW50cnkuICBXZSBzd2l0Y2hlZCBvbiB0aGUgZHJpdmluZy4uLmV2ZXJ5CmhhbGYKbWlsZS4uLldlIGhhZCBvbmUgY2Fzc2V0dGUgdGFwZSB0byBsaXN0ZW4gdG8gb24gdGhlIGVudGlyZSB0cmlwLi4uSSBkb24ndApyZW1lbWJlciB3aGF0IGl0IHdhcy4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgc2F3IGEgc2lnbjogIlJlc3QgQXJlYSAyNSBNaWxlcyIuICBUaGF0J3MgcHJldHR5IGJpZy4gIFNvbWUgcGVvcGxlIG11c3QgYmUKcmVhbGx5IHRpcmVkLiAgLS0gU3RldmVuIFdyaWdodAoKQSBjb3Agc3RvcHBlZCBtZSBmb3Igc3BlZWRpbmcuICBIZSBzYWlkLCAiV2h5IHdlcmUgeW91IGdvaW5nIHNvIGZhc3Q/IiAgSQpzYWlkLAoiU2VlIHRoaXMgdGhpbmcgbXkgZm9vdCBpcyBvbj8gIEl0J3MgY2FsbGVkIGFuIGFjY2VsZXJhdG9yLiAgV2hlbiB5b3UgcHVzaApkb3duCm9uIGl0LCBpdCBzZW5kcyBtb3JlIGdhcyB0byB0aGUgZW5naW5lLiAgVGhlIHdob2xlIGNhciBqdXN0IHRha2VzIHJpZ2h0IG9mZi4KQW5kIHNlZSB0aGlzIHRoaW5nPyAgVGhpcyBzdGVlcnMgaXQuIiAgLS0gU3RldmVuIFdyaWdodAoKSSB3YXMgZ29pbmcgNzAgbWlsZXMgYW4gaG91ciBhbmQgZ290IHN0b3BwZWQgYnkgYSBjb3Agd2hvIHNhaWQsICJEbyB5b3Uga25vdwp0aGUgc3BlZWQgbGltaXQgaXMgNTUgbWlsZXMgcGVyIGhvdXI/IiAgIlllcywgb2ZmaWNlciwgYnV0IEkgd2Fzbid0IGdvaW5nIHRvCmJlCm91dCB0aGF0IGxvbmcuLi4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpPbmUgdGltZSBhIGNvcCBwdWxsZWQgbWUgb3ZlciBmb3IgcnVubmluZyBhIHN0b3Agc2lnbi4gIEhlIHNhaWQsICJEaWRuJ3QgeW91CnNlZSB0aGUgc3RvcCBzaWduPyIgIEkgc2FpZCwgIlllYWgsIGJ1dCBJIGRvbid0IGJlbGlldmUgZXZlcnl0aGluZyBJIHJlYWQuIgogICAgICAgIC0tIFN0ZXZlbiBXcmlnaHQKCkkgZ290IG15IGRyaXZlcidzIGxpY2Vuc2UgcGhvdG8gdGFrZW4gb3V0IG9mIGZvY3VzIG9uIHB1cnBvc2UuICBOb3cgd2hlbiBJCmdldApwdWxsZWQgb3ZlciB0aGUgY29wIGxvb2tzIGF0IGl0IChtb3ZpbmcgaXQgbmVhcmVyIGFuZCBmYXJ0aGVyLCB0cnlpbmcgdG8gc2VlCml0CmNsZWFybHkpLi4uYW5kIHNheXMsICJIZXJlLCB5b3UgY2FuIGdvLiIgIC0tIFN0ZXZlbiBXcmlnaHQKClRoZSBqdWRnZSBhc2tlZCwgIldoYXQgZG8geW91IHBsZWFkPyIgIEkgc2FpZCwgIkluc2FuaXR5LCB5b3VyIGhvbm91ciwgd2hvIGluCnRoZWlyIHJpZ2h0IG1pbmQgd291bGQgcGFyayBpbiB0aGUgcGFzc2luZyBsYW5lPyIgIC0tIFN0ZXZlbiBXcmlnaHQKCldoZW4gSSBnZXQgcmVhbCBib3JlZCwgSSBsaWtlIHRvIGRyaXZlIGRvd250b3duIGFuZCBnZXQgYSBncmVhdCBwYXJraW5nIHNwb3QsCnRoZW4gc2l0IGluIG15IGNhciBhbmQgY291bnQgaG93IG1hbnkgcGVvcGxlIGFzayBtZSBpZiBJJ20gbGVhdmluZy4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpZZXN0ZXJkYXkgSSBwYXJrZWQgbXkgY2FyIGluIGEgdG93LWF3YXkgem9uZS4uLndoZW4gSSBjYW1lIGJhY2sgdGhlIGVudGlyZQphcmVhCndhcyBtaXNzaW5nLiAgLS0gU3RldmVuIFdyaWdodAoKSSBjYW4gcmVtZW1iZXIgdGhlIGZpcnN0IHRpbWUgSSBoYWQgdG8gZ28gdG8gc2xlZXAuICBNb20gc2FpZCwgIlN0ZXZlbiwgdGltZQp0bwpnbyB0byBzbGVlcC4iICBJIHNhaWQsICJCdXQgSSBkb24ndCBrbm93IGhvdy4iICBTaGUgc2FpZCwgIkl0J3MgcmVhbCBlYXN5LgpKdXN0IGdvIGRvd24gdG8gdGhlIGVuZCBvZiB0aXJlZCBhbmQgaGFuZyBhIGxlZnQuIiAgU28gSSB3ZW50IGRvd24gdG8gdGhlIGVuZApvZiB0aXJlZCwgYW5kIGp1c3Qgb3V0IG9mIGN1cmlvc2l0eSBJIGh1bmcgYSByaWdodC4gIE15IG1vdGhlciB3YXMgdGhlcmUsIGFuZApzaGUgc2FpZCAiSSB0aG91Z2h0IEkgdG9sZCB5b3UgdG8gZ28gdG8gc2xlZXAuIiAgLS0gU3RldmVuIFdyaWdodAoKSSBoYXRlIGl0IHdoZW4gbXkgZm9vdCBmYWxscyBhc2xlZXAgZHVyaW5nIHRoZSBkYXkgYmVjYXVzZSB0aGF0IG1lYW5zIGl0J3MKZ29pbmcgdG8gYmUgdXAgYWxsIG5pZ2h0LiAgLS0gU3RldmVuIFdyaWdodAoKV2hlbiBJIHdva2UgdXAgdGhpcyBtb3JuaW5nIG15IGdpcmxmcmllbmQgYXNrZWQgbWUsICJEaWQgeW91IHNsZWVwIGdvb2Q/IiAgSQpzYWlkLCAiTm8sIEkgbWFkZSBhIGZldyBtaXN0YWtlcy4iICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdhcyB0cnlpbmcgdG8gZGF5ZHJlYW0sIGJ1dCBteSBtaW5kIGtlcHQgd2FuZGVyaW5nLiAgLS0gU3RldmVuIFdyaWdodAoKT25lIG5pZ2h0IEkgd2Fsa2VkIGhvbWUgdmVyeSBsYXRlIGFuZCBmZWxsIGFzbGVlcCBpbiBzb21lYm9keSdzIHNhdGVsbGl0ZQpkaXNoLgpNeSBkcmVhbXMgd2VyZSBzaG93aW5nIHVwIG9uIFRWJ3MgYWxsIG92ZXIgdGhlIHdvcmxkLiAgLS0gU3RldmVuIFdyaWdodAoKTXkgZ2lybGZyaWVuZCBkb2VzIGhlciBuYWlscyB3aXRoIHdoaXRlLW91dC4gIFdoZW4gc2hlJ3MgYXNsZWVwLCBJIGdvIG92ZXIKdGhlcmUgYW5kIHdyaXRlIG1pc3NwZWxsZWQgd29yZHMgb24gdGhlbS4gIC0tIFN0ZXZlbiBXcmlnaHQKCkkgZ290IHVwIG9uZSBtb3JuaW5nIGFuZCBjb3VsZG4ndCBmaW5kIG15IHNvY2tzLCBzbyBJIGNhbGxlZCBJbmZvcm1hdGlvbi4gClNoZQpzYWlkLCAiSGVsbG8sIEluZm9ybWF0aW9uLiIgIEkgc2FpZCwgIkkgY2FuJ3QgZmluZCBteSBzb2Nrcy4iICBTaGUgc2FpZCwKIlRoZXkncmUgYmVoaW5kIHRoZSBjb3VjaC4iICBBbmQgdGhleSB3ZXJlISAgLS0gU3RldmVuIFdyaWdodAoKSSB3ZW50IGludG8gdGhpcyBiYXIgYW5kIHNhdCBkb3duIG5leHQgdG8gYSBwcmV0dHkgZ2lybC4gIFNoZSBsb29rZWQgYXQgbWUKYW5kCnNhaWQsICJIZXksIHlvdSBoYXZlIHR3byBkaWZmZXJlbnQgY29sb3JlZCBzb2NrcyBvbi4iICBJIHNhaWQsICJZZWFoLCBJIGtub3csCmJ1dCB0byBtZSB0aGV5J3JlIHRoZSBzYW1lIGJlY2F1c2UgSSBnbyBieSB0aGlja25lc3MuIiAgLS0gU3RldmVuIFdyaWdodAoKSSBib3VnaHQgYSBzZWxmIGxlYXJuaW5nIHJlY29yZCB0byBsZWFybiBTcGFuaXNoLiAgSSB0dXJuZWQgaXQgb24gYW5kIHdlbnQgdG8Kc2xlZXA7IHRoZSByZWNvcmQgZ290IHN0dWNrLiAgVGhlIG5leHQgZGF5IEkgY291bGQgb25seSBzdHV0dGVyIGluIFNwYW5pc2guCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKSSB3YXMgZ29pbmcgdG8gdGFwZSBzb21lIHJlY29yZHMgb250byBhIGNhc3NldHRlLCBidXQgSSBnb3QgdGhlIHdpcmVzCmJhY2t3YXJkcy4gIEkgZXJhc2VkIGFsbCBvZiB0aGUgcmVjb3Jkcy4gIFdoZW4gSSByZXR1cm5lZCB0aGVtIHRvIG15IGZyaWVuZCwKaGUKc2FpZCwgIkhleSwgdGhlc2UgcmVjb3JkcyBhcmUgYWxsIGJsYW5rLiIgIC0tIFN0ZXZlbiBXcmlnaHQKCkxhc3QgeWVhciBJIHdlbnQgZmlzaGluZyB3aXRoIFNhbHZhZG9yIERhbGkuICBIZSB3YXMgdXNpbmcgYSBkb3R0ZWQgbGluZS4gIEhlCmNhdWdodCBldmVyeSBvdGhlciBmaXNoLiAgLS0gU3RldmVuIFdyaWdodAoKVGhlcmUncyBhIGZpbmUgbGluZSBiZXR3ZWVuIGZpc2hpbmcgYW5kIHN0YW5kaW5nIG9uIHRoZSBzaG9yZSBsb29raW5nIGxpa2UgYW4KaWRpb3QuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIGJvdWdodCBhIGRvZyB0aGUgb3RoZXIgZGF5Li4uSSBuYW1lZCBoaW0gU3RheS4gIEl0J3MgZnVuIHRvIGNhbGwgaGltLi4uCiJDb21lIGhlcmUsIFN0YXkhICBDb21lIGhlcmUsIFN0YXkhIiAgSGUgd2VudCBpbnNhbmUuICBOb3cgaGUganVzdCBpZ25vcmVzIG1lCmFuZCBrZWVwcyB0eXBpbmcuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHB1dCBjb250YWN0IGxlbnNlcyBpbiBteSBkb2cncyBleWVzLiAgVGhleSBoYWQgbGl0dGxlIHBpY3R1cmVzIG9mIGNhdHMgb24KdGhlbS4gIFRoZW4gSSB0b29rIG9uZSBvdXQgYW5kIGhlIHJhbiBhcm91bmQgaW4gY2lyY2xlcy4gIC0tIFN0ZXZlbiBXcmlnaHQKClRoZSBvdGhlciBkYXksIEkgd2FzIHdhbGtpbmcgbXkgZG9nIGFyb3VuZCBteSBidWlsZGluZy4uLm9uIHRoZSBsZWRnZS4gIFNvbWUKcGVvcGxlIGFyZSBhZnJhaWQgb2YgaGVpZ2h0cy4gIE5vdCBtZSwgSSdtIGFmcmFpZCBvZiB3aWR0aHMuICAtLSBTdGV2ZW4KV3JpZ2h0CgpJIHNwaWxsZWQgc3BvdCByZW1vdmVyIG9uIG15IGRvZy4gIEhlJ3MgZ29uZSBub3cuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJZiB5b3UncmUgbm90IHBhcnQgb2YgdGhlIHNvbHV0aW9uLCB5b3UncmUgcGFydCBvZiB0aGUgcHJlY2lwaXRhdGUuCiAgICAgICAgLS0gU3RldmVuIFdyaWdodAoKW1JlZmVycmluZyB0byBhIGdsYXNzIG9mIHdhdGVyOl0gSSBtaXhlZCB0aGlzIG15c2VsZi4gIFR3byBwYXJ0cyBILCBvbmUgcGFydApPLgpJIGRvbid0IHRydXN0IGFueWJvZHkhICAtLSBTdGV2ZW4gV3JpZ2h0CgpUaGV5IHNheSB3ZSdyZSA5OCUgd2F0ZXIuICBXZSdyZSB0aGF0IGNsb3NlIHRvIGRyb3duaW5nLi4uW3BpY2tzIHVwIGhpcyBnbGFzcwpvZiB3YXRlciBmcm9tIHRoZSBzdG9vbF0uLi5JIGxpa2UgdG8gbGl2ZSBvbiB0aGUgZWRnZS4uLiAgLS0gU3RldmVuIFdyaWdodAoKSSBib3VnaHQgc29tZSBwb3dkZXJlZCB3YXRlciwgYnV0IEkgZG9uJ3Qga25vdyB3aGF0IHRvIGFkZCB0byBpdC4KICAgICAgICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIHdhcyBib3JuIGJ5IENhZXNhcmlhbiBzZWN0aW9uLi4uYnV0IG5vdCBzbyB5b3UnZCBub3RpY2UuICBJdCdzIGp1c3QgdGhhdAp3aGVuCkkgbGVhdmUgYSBob3VzZSwgSSBnbyBvdXQgdGhyb3VnaCB0aGUgd2luZG93LiAgLS0gU3RldmVuIFdyaWdodAoKV2hlbiBJIHdhcyBsaXR0bGUsIG15IGdyYW5kZmF0aGVyIHVzZWQgdG8gbWFrZSBtZSBzdGFuZCBpbiBhIGNsb3NldCBmb3IgZml2ZQptaW51dGVzIHdpdGhvdXQgbW92aW5nLiAgSGUgc2FpZCBpdCB3YXMgZWxldmF0b3IgcHJhY3RpY2UuICAtLSBTdGV2ZW4gV3JpZ2h0CgpJIGRpZG4ndCBnZXQgYSB0b3kgdHJhaW4gbGlrZSB0aGUgb3RoZXIga2lkcy4gIEkgZ290IGEgdG95IHN1YndheSBpbnN0ZWFkLiAKWW91CmNvdWxkbid0IHNlZSBhbnl0aGluZywgYnV0IGV2ZXJ5IG5vdyBhbmQgdGhlbiB5b3UnZCBoZWFyIHRoaXMgcnVtYmxpbmcgbm9pc2UKZ28KYnkuICAtLSBTdGV2ZW4gV3JpZ2h0CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPbiB0aGUgb3RoZXIgaGFuZCwgeW91IGhhdmUgZGlmZmVyZW50IGZpbmdlcnMuICAtLSBTdGV2ZW4gV3JpZ2h0IChDaGFybHksIDI3LiBBcHIgMTk5NSwgMTM6MjI6MjEpOgojISBybj1UaG9yaW4gcnQ9Nzk4OTc3OTc5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogT24gdGhlIG90aGVyIGhhbmQsIHlvdSBoYXZlIGRpZmZlcmVudCBmaW5nZXJzLiAgLS0gU3RldmVuIFdyaWdodCAoQW5jYWxhZ29uLCAyNy4gQXByIDE5OTUsIDE1OjA5OjAxKToKIyEgcm49VGhvcmluIHJ0PTc5ODk3Nzk3OQpoYWxsb2VjaGVuIQpIbW1tbSwgd2FyZW4gZGllIG1laXN0ZW4gZ2FyIG5pY2h0IHdpdHppZywgb2RlciBoYWJlIGljaCBzaWUgbnVyIG5pY2h0CnZlcnN0YW5kZW4uIEF1c3NlcmRlbSB3YXIgZXMgZGFubiBkb2NoIHZpZWxsZWljaHQgenV2aWVsIGF1ZiBlaW5tYWwgdm9uIGRpZXNlbgpTcHJ1ZWNoZW4uIEVzIHNvbGx0ZSBtaWNoIHd1bmRlcm4sIHdlbm4gdWViZXJoYXVwdCBlaW5lciBuYWNoIGRlciBmdWVuZnRlbgpTZWl0ZSBub2NoIG1pdGxpZXN0Li4KVm9lbGxpZyB1ZWJlcmZvcmRlcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5jYWxhZ29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhY28ga251ZGRlbGxlbnNpcyBtYWpvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXNjb20vVm9iaXMgKFJvY2h1cywgMjcuIEFwciAxOTk1LCAxNzowNzoxNSk6CihTZXJ2aWNlLCBWT0JJU3RkdSwgLS0gRVNDT01tdCBrZWluZXIgISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogT24gdGhlIG90aGVyIGhhbmQsIHlvdSBoYXZlIGRpZmZlcmVudCBmaW5nZXJzLiAgLS0gU3RldmVuIFdyaWdodCAoVGhvcmluLCAyNy4gQXByIDE5OTUsIDE3OjEzOjU5KToKIyEgcm49QW5jYWxhZ29uIHJ0PTc5ODk4ODE0MQpTb3JyeSwgZmFsbHMgZXMgZWluIHBhYXIgdmllbGUgd2FyZW4gOikgQWJlciBpY2ggZGFjaHRlLCBkYXMgbWFuY2hlIGdlcm4Kd2FzIHp1IGxlc2VuIGhhYmVuIC4uLiBTdGV2ZW4gV3JpZ2h0IGlzdCBuaWNodCBqZWRlcm1hbnMgU2FjaGUsIGljaCBmaW5kZQptYW5jaGUgam9rZXMgYXVjaCBldHdhcyBkYW5lYmVuLCBhYmVyIGRhIEdlc2NobWFlY2tlciB2ZXJzY2hpZWRlbiBzaW5kLApoYWIgaWNoIHNpZSBtYWwgaW4gZGllIG5ld3MgZ2VzZXR6dCAod2FzIGljaCBhdWNoIG1pdCBuZXVlbiBNYWlscywKZGllIHJlbGF0aXYgd2l0emlnIHNpbmQsIG1hY2hlbiB3ZXJkZSkuIEFsc28sIHNlaHQgZXVjaCB2b3IgOikpKQpUaG9yaW4sIFdpdHpzZWl0ZW5iZXNjaHJlaWJlciB1bmQgRnVlbGxlci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3JpbW1ib3JuIHVuZCBkZXIgS2F0YWxvZy4uLiAoQ2FsdW0sIDI5LiBBcHIgMTk5NSwgMTg6MzM6MzApOgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gaGF0IGVpbmVyIGhpZXIgZGllIGh0dHAgdm9uIGJlYXRlIHVoc2U/CltBbGxnZW1laW46SW5za2lwcF0ga2FsdCA6IHd3dy5iZWF0ZS11aHNlLmNvbS8KW0FsbGdlbWVpbjpHcmltbWJvcm5dIE1pciBiaXR0ZSBhdWNoISA7LSkKW0FsbGdlbWVpbjpDYXJlZnJlZV0gd3d3LmJlYXRlLXVoc2UuY29tCltBbGxnZW1laW46Q2FyYWRocmFzXSBkYW5rZSA6KQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gY291bGQgbm90IGJlIGFjY2Vzc2VkIGhtbW1tbW0KW0FsbGdlbWVpbjpHcmltbWJvcm5dIEhhaGEsIHdhciBzY2huZWxsZXIhIDotKQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQWJlcjogIkRpZSBoaWVyIGFuZ2Vib3RlbmVuIFNlaXRlbiBkZXMgS2F0YWxvZ2VzIHNpbmQKW0FsbGdlbWVpbjpHcmltbWJvcm5dIGZyZWkgYWIgMTYgSmFocmVuISIKW0FsbGdlbWVpbjpHcmltbWJvcm5dIFdvIGlzdCBkZXIgUmVzdD8KW0FsbGdlbWVpbjpHcmltbWJvcm5dICpwcnVzdCogIkx1eHVzIFBhYXJ1bmdzLVBha2V0ZSIhCltBbGxnZW1laW46R3JpbW1ib3JuXSBNYW5uLCBkaWUgU2VpdGUgaXN0IGphIFNQSVRaRSEKW0FsbGdlbWVpbjpHcmltbWJvcm5dIE5vY2ggbWVociBTYXRpcmVzZWl0ZW4sIGlyZ2VuZHdlcj8KW0FsbGdlbWVpbjpHcmltbWJvcm5dIFdlciB0cmFldW10IG5pY2h0IGRhdm9uOiAiSmVkZXJ6ZWl0IGs/bm5lbiBTaWUgamVkZQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRnJhdSBpbiBMZWlkZW5zY2hhZnQgdW5kIEVrc3Rhc2UgdmVyc2V0emVuLiI/IDstKQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSG1tLCBrbGFwcHQgZG9jaCBmYXN0IG1pdCBjJnAgaGllci4uLiA7LSkKW0FsbGdlbWVpbjpHcmltbWJvcm5dIEhpZXIgbm9jaG1hbCBkaWUgQWRyZXNzZSBmdWVyIGFsbGU6CltBbGxnZW1laW46R3JpbW1ib3JuXSBodHRwOi8vd3d3LmJlYXRlLXVoc2UuY29tCltBbGxnZW1laW46Q2FyYWRocmFzXSBpY2ggYmluIGdyYWRlIGJlaSBodHRwOi8vd3d3LmJlYXRlLXVoc2UuY29tL3Voc2UvCltBbGxnZW1laW46Q2FyZWZyZWVdIEVzIGdpYnQgYXVjaCBub2NoIHd3dy5vcmlvbi5jb20gKGFiZXIgZGllIGhhYmVuIG1pciBuYWNoCltBbGxnZW1laW46Q2FyZWZyZWVdIDIgV29jaGVuIGltbWVyIG5vY2ggbmljaHQgZGVuIG5ldWVuIEthdGFsb2cgZ2VzY2hpY2t0CjotKApbQWxsZ2VtZWluOkNhcmVmcmVlXSAgSW0gR2VnZW5zYXR6IHp1IEJlYXRlIDotKSA6CltBbGxnZW1laW46RnJvc2NoIFBpc2VsbG9dIGVrZWw/aGFmdCEKW0FsbGdlbWVpbjpTdXNoaV0gVW5kIG1pdCBzbyBlaW5lciBzb2xsIGljaCB2ZXJoZWlyYXRldCBzZWluPyE/CltBbGxnZW1laW46R3JpbW1ib3JuXSBORUlOISBFaW4gIktlbm5lbmxlcm4tU29ydGltZW50IiBtaXQgMjQoISEpIEtvbmRvbWVuIQpbQWJlbnRldWVyOkluc2tpcHBdIGFyZ2ggd2VyIHdhciBzY2hqb25tYWwgc2tsYXZlIHZvbiBWYW5kYSBNY21vb2NoID8KW0FsbGdlbWVpbjpBbGJvaW5dIGphIGdyaW1taSBkYXMgaXN0IGVpbiBSaWVzZW5nYXVkaS4uLgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQWJlciBvaG5lIEVuZGUhIDotKSkpCltBbGxnZW1laW46QWxib2luXSB3aWUgb2Z0IGJlbnV0enQgRHUgaWhuIGRlbm4/IDtfKQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gTWVuc2NoLCBkYSBoYWIgaWNoIGphIGJpc2hlciBuZSBnYW56ZSBXZWx0IHZlcnBhc3N0LgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSWNoIGhhYiBzb3dhcyBpbW1lciBmdWVyIHVlYmVydHJpZWJlbiBnZWhhbHRlbi4uLgpbQWxsZ2VtZWluOkFsYm9pbl0gOy0pCltBbGxnZW1laW46Q2FyYWRocmFzXSBQb3BvLVB1bXBlIGhtbW1tbW1tCltBbGxnZW1laW46R3JpbW1ib3JuXSBJY2g/IFdhcz8gRGFzICJLZW5uZW5sZXJuLVNvcnRpbWVudCI/CkNocmlzeSBoYXQgZ2VyYWRlIGRhcyBTcGllbCB2ZXJsYXNzZW4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBQZW5pcy1WZXJ3P2huLU11c2NoaS4gSWNoIGZhc3MgZXMgbmljaHQuLi4KW0FsbGdlbWVpbjpDYXJlZnJlZV0gVGVsZWZvbnNleCBmdWVyIF9FaW5zdGVpZ2VyXyAuLi4gIkx1c3QtV3VtbWUiLApbQWxsZ2VtZWluOkNhcmVmcmVlXSAiU3Rvc3N6YWhuIi4gKFNpbmQgbWluZGVyamFlaHJpZ2UgYW53ZXNlbmQgPykKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGdyaW1tYm9ybiwgd2lsbHN0IGR1IGRpciBuaWNodCBlaW4gR2xpdHNjaGkgYmVzdGVsbGVuPwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRGVyIEthdGFsb2cgaXN0IGRvY2ggYWIgMTYsIHdhcyBzb2xscz8KW0FsbGdlbWVpbjpBbGJvaW5dIGphIGljaCBiaW4gZ2VyYWRlIDE0IGdld29yZGVuCltBbGxnZW1laW46R3JpbW1ib3JuXSBHbGl0c2NoaT8gU293ZWl0IGJpbiBpY2ggd29obCBub2NoIG5pY2h0LCB3YXMgaXN0IGRhcz8KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGhhZWx0IFZhZ2luYSB1bmQgUGVuaXMgc2Nob2VuIGZldWNodCwgc3RlaHQgZHJhbgpbQWxsZ2VtZWluOlN1c2hpXSBWaWJyaWVyZW5kZSBKdW5nZmVybmhhdXQtTXVzY2hpLi4uOi0pKSkKW0FsbGdlbWVpbjpHcmltbWJvcm5dIEljaCBiaW4gZXJzdCBiZWkgZGVyICJMdXh1cy1QdXBwZSBmP3IgaG9oZSBBbnNwcj9jaGUuCltBbGxnZW1laW46R3JpbW1ib3JuXSBUb3AgRmlndXIgbWl0IHZvbGxlbiBCcj9zdGVuLiA/cHBpZ2VyIFNhdWdtdW5kLiBUaWVmZQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gVmFnaW5hLCBkaWUgc3RhcmsgdmlicmllcmVuIGthbm4gKHN0dWZlbmxvcwpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gcmVndWxpZXJiYXIpLiBFbmdlIEFudXMtP2ZmbnVuZy4iLi4uCltBbGxnZW1laW46SW5za2lwcF0ga29zdGV0IHdpZXZpZWwgPyA7LSkKW0FsbGdlbWVpbjpBbGJvaW5dIGFhYWFhYWFoCltBbGxnZW1laW46R3JpbW1ib3JuXSAxNjkgRE0uCltBbGxnZW1laW46QWxib2luIGxhY2h0XQpbQWxsZ2VtZWluOkluc2tpcHBdIGhhaGFoYQpbQWxsZ2VtZWluOkNhcmFkaHJhcyBkZW5rdDogbmV1ZSBiaXphcnJlIFNleHNwaWVsZS4uLiBobW1tbW1tXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQWJlciBkaWUgU2VpdGUgaGVpc3N0OiBMaWViZXNwdXBwZU4gdW5kIGRhIGlzdCBudXIKW0FsbGdlbWVpbjpHcmltbWJvcm5dIGVpbmUuLi4KW0FiZW50ZXVlcjpJbnNraXBwXSBhcmdoIGljaCBoamFlbmcgaGllciBmZXN0LCB3ZXIga2VubnQgc29pY2ggYXVzIHZhbmRhCltBYmVudGV1ZXI6SW5za2lwcF0gTWNtb29jaCBsYWVzdCBtaWNoIG5lZCBmb3J0CltBbGxnZW1laW46R3JpbW1ib3JuIGRlciBBdGhlaXN0IGFlcmdlcnQgc2ljaCBqZXR6dCBhYmVyLl0KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGR1IGhhc3QgZG9jaCBBbGV4CltBbGxnZW1laW46R3JpbW1ib3JuXSBOb2NoIG5pY2h0LgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSG1tLCAiUnViYmVsLUhvZWhsZSIuIEF1Y2ggZWluIE5hbWUuLi4KW0FsbGdlbWVpbjpHcmltbWJvcm5dICJNaXQgMiBNb3RvcmVuIGY/ciBkb3BwZWx0ZSBTdGltdWxhdGlvbi4iISEhCltBbGxnZW1laW46R3JpbW1ib3JuXSBKYSwgZGFzIGlzdCBlcyBkb2NoISA6LSkKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGRhcyBncm9zc2UgQnVjaCBkZXIgUGVydmVyc2lvbmVuLCB3aWUgbmV0dApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gQWNoLCBEdSBoYXN0IGhpbnRlbiBhbmdlZmFuZ2VuPwpbQWxsZ2VtZWluOkNhcmFkaHJhc10gaG0sIGhpbnRlbiBpc3RzIGFtIHNjaC4uLiBhZWgKW0FsbGdlbWVpbjpDYXJhZGhyYXMgZXJyb2V0ZXQuXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSG1tLCBtZWluZSBBbmF0b21pZWtlbm50bmlzc2UgbGFzc2VuIG1pY2ggaW0gU3RpY2g6ICJpbgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gc2NobD9wZnJpZ2VyIFZhZ2luYSBtaXQgaGVycmxpY2ggZW5nZW0gQW51cyIuLi4KW0FsbGdlbWVpbjpHcmltbWJvcm5dICpncnVlYmVsKgpbQWxsZ2VtZWluOkdyaW1tYm9ybiBkZXIgQXRoZWlzdCBncmluc3QgQ2FyYWRocmFzIHp1Ll0KW0FsbGdlbWVpbjpDYXJhZGhyYXMgZ3JpbnN0IHp1cnVlY2suXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gSG1tLCAiTGFlbmdlIDI3IGNtIi4gRGFzIGlzdCBtaXIgZGFubiBhYmVyIHBlaW5saWNoLi4uCltBbGxnZW1laW46R3JpbW1ib3JuXSA7LSkKW0FsbGdlbWVpbjpHcmltbWJvcm5dIERhZnVlciBzaW5kIGRpZSBCYXR0ZXJpZW4gbmljaHQgZW50aGFsdGVuLiA6LSkKW0FsbGdlbWVpbjpDYXJhZGhyYXNdICd3b21pdCBTY2h1ZWNodGVybmUgenUgRnJhdWVuaGVsZGVuIHdlcmRlbicKW0FsbGdlbWVpbjpDYXJlZnJlZSBydWVja3QgbWl0IGVpbmVtIE1hc3NiYW5kIGJlaSBHcmltbWJvcm4gYW4uXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRGEgaXN0IHNpZSBqYSwgZGllICJQb3BvLVB1bXBlIi4uLiAqcHJ1c3QqCltBbGxnZW1laW46U3VzaGkgendlaWZlbHQgYW0gVmVyc3RhbmQgc2VpbmVyIEZyYXUuLi5dCltBbGxnZW1laW46R3JpbW1ib3JuXSBIdWFjaCEKW0FsbGdlbWVpbjpHcmltbWJvcm5dICJBdWYgZGVtIGF1ZmJsYXNiYXJlbiBMdWZ0LUx1c3QtS2lzc2VuIGs/bm5lbiBTaWUgYWxsZQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gU2V4LVN0ZWxsdW5nZW4gd2llIGF1ZiBlaW5lciBXb2xrZSBnZW5pZT9lbi4gQmV3ZWd1bmdlbgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gd2VyZGVuIDNmYWNoIHZlcnN0P3JrdCB6dXI/Y2tnZWZlZGVydC4gU2NobmVsbApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gYXVmenVibGFzZW4sIGFid2FzY2hiYXIuIFNhbXR3ZWljaGVyIEJlenVnLCBGYXJiZQpicmF1bi4KW0FsbGdlbWVpbjpHcmltbWJvcm5dIEdyPz9lIGNhIDU3eDQ1IGNtIgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gRGFzIHd1ZW5zY2ggaWNoIG1pciB6dSBXZWlobmFjaHRlbi4uLgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gV293LCBzb2dhciBlaW4gUmVjaG5lcnNwaWVsIGdpYnRzLiAiU3ByaXR6dG91ciBkZXIKW0FsbGdlbWVpbjpHcmltbWJvcm5dIEx1c3QiLi4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBXZXIgc2VpbmUgS29uZG9tZSBhbSBFbmRlIGxvcyBpc3QgaGF0IGdld29ubmVuLgpbQWxsZ2VtZWluOkJvZWJiZWwgZ3JpbnN0XQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gc3ByaXR6dG91cj8gaG1tbW1tbQpbQWxsZ2VtZWluOkNhcmFkaHJhcyBncmluc3QuXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gS2VpbiBQcm9ibGVtLCBlaW5mYWNoIEtpbmRlcmdlYnVydHN0YWcgb3JnYW5pc2llcmVuIHVuZApbQWxsZ2VtZWluOkdyaW1tYm9ybl0gZGllIERpbmdlciBhbHMgTHVmdGJhbGxvbnMgdmVyd2VuZGVuLi4uCltBbGxnZW1laW46QWxib2luIGhvZmZmdCBiZWkgZGllc2VyIFVlYmVyc2Nod2VtbXVuZyB2b24gR3JpbW1pcyB2ZXJsb2NrZW5lbgpBbmdlYm90ZW4sZGFzcyBkYXMgTUcgc2F1YmVyIGJsZWlidCAuLi4uXQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gZWtzdGFzZSBpbiBmZXNzZWxuCkJvZWJiZWwgaXN0IGdlcmFkZSBpbnMgU3BpZWwgZ2Vrb21tZW4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBJY2ggc2FnIGphLCBDYXJhOiBEYXMgd2FlciB3YXMgZnVlciBKYW5ldCEKW0FsbGdlbWVpbjpHcmltbWJvcm5dIEloaGguLi4KW0FsbGdlbWVpbjpHcmltbWJvcm5dICIgZWluIEVpcy1EaWxkbyBpbSBFaW5zYXR6Ii4uLgpbQWxsZ2VtZWluOkNhcmFkaHJhcyB0cmFlZ3QgYXVjaCBncmFkZSBlaW5lbiBFaXNzdGFiIG1pdCBzaWNoIHJ1bS4gOikpXQpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gKmxhY2gqCltBbGxnZW1laW46R3JpbW1ib3JuXSBIbW1tLCBkZXIgS2F0YWxvZyB3dWVyZCBzaWNoIGphIGdsYXR0IGxvaG5lbi4gRnVlcgpbQWxsZ2VtZWluOkdyaW1tYm9ybl0gb2VtZXNvZW5zLi4uCltBbGxnZW1laW46R3JpbW1ib3JuXSBVbmQgaWNoIHdlY2hzZWwgamEgYmFsZCBkaWUgQWRyZXNzZS4gOi0pCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHcmltbWJvcm4gdW5kIGRlciBLYXRhbG9nLi4uIChHcmltbWJvcm4sIDI5LiBBcHIgMTk5NSwgMTg6NDA6MzgpOgojISBybj1DYWx1bSBydD03OTkxNzMyMTAKCklzdCBkb2NoIGFsbGVzIGdhbnogYW5kZXJzLi4uIDstKQoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LiBTY2h3ZWxndCBpbiBlaW5lciBXZWx0IGRlcyBMYXN0ZXJzLgoKUC5TLiBodHRwOi8vd3d3LnBsYXlib3kuY29tIGxvaG50IHNpY2ggYXVjaC4gSXN0IGFiZXIgbmljaHQgR0FOWiBzbyB3aXR6aWcuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlcmFkZSBnZWZ1bmRlbiAuLi4gKER1cmlhbiwgIDQuIE1haSAxOTk1LCAxMTozMjoxNik6CkhhbGxvIExldXRlIQoKRGVuIGhhYmUgaWNoIGdlcmFkZSBkZS50YWxrLmpva2VzIGdlZnVuZGVuIHVuZCBtdXNzIGlobiBlaW5mYWNoIGxvc3dlcmRlbjoKClRyZWZmZW4gc2ljaCB6d2VpIFBsYW5ldGVuLiBNZWludCBkZXIgZWluZTogIk5hLCB3aWUgZ2VodCdzPyIKTWVpbnQgZGVyIGFuZGVyZSAiU2NobGVjaHQsIGljaCBoYWJlIEhvbW8gU2FwaWVucyEiLgpNZWludCBkZXIgZXJzdGUgIk9oIHNoaXQsIG1hY2h0IGFiZXIgbml4LCBkYXMgZ2VodCB2b3JiZWkhIgoKRGVuIGZpbmRlIGljaCBlaW5mYWNoIHp1bSBCcnVlbGxlbiEKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VyYWRlIGdlZnVuZGVuIC4uLiAoSGlnaGxhbmRlciwgIDQuIE1haSAxOTk1LCAxMzoyNjoyMik6CiMhIHJuPUR1cmlhbiBydD03OTk1Nzk5MzYKSWNoIGRhY2h0ZSwgZGFzIGhlaXNzdC4uLgoiT2gsIE1pc3QuIE1hY2h0IGFiZXIgbml4LCBkYXMgZXJsZWRpZ3Qgc2ljaCB2b24gc2VsYmVyLiIKOj4gIEhpZ2hsYW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVuZ2xpc2ggZm9yIHJ1bmF3YXlzIChKYWYsICA1LiBNYWkgMTk5NSwgMTQ6MTQ6MjYpOgoKQXVzIGRlLnRhbGsuam9rZXMgIChpY2ggaG9mZmUsIGRhcyB2ZXJsZXR6dCBqZXR6dCBrZWluZSB1cmhlYmVycmVjaHRlIDopICkKVHdvIHN0cmFuZ2VycyAobWF5YmUgdGhhdCBILiBLb2hsIGlzIG9uZSBvZiB0aGVtKSBtZWV0IGluIExvbmRvbi4gVGhleQpzdGFydCBhIGNvbnZlcnNhdGlvbiwgYnV0IHRoZXkgaGF2ZSB0byB1c2UgdGhlaXIgZGljdGlvbmFyaWVzIHF1aXRlIG9mdGVuLgoKLUhhbGxvIFNpciwgaG93IGdvZXMgaXN0IHlvdT8KLU9oLCB0aGFuayB5b3UgZm9yIHRoZSBhZnRlcnF1ZXN0aW9uLgotQXJlIHlvdSBhbHJlYWR5IGxvbmcgaGVyZT8KLU5vLCBmaXJzdCBhIHBhaXIgZGF5cy4gSSdtIG5vdCBvdXQgTG9uZG9uLgotVGh1bmRlcndlYXRoZXIsIHRoYXQgb3ZlcnJ1c2hlcyBtZS4gWW91IHNlZSBub3Qgc28gb3V0LgotVGhhdCBjYW4geWVzIGJlZm9yZWNvbWUuIEJ1dCBub3cgd2hhdCBvdGhlci4gTXkgaGFpcnMgc3Rvb2QgdG8gbW91bnRhaW5zCiBhcyBJIHRoZSB0cmFmZmljIHNhdy4gU28gbXVjaCBjYXJzIGdpdmUgaXQgaGVyZS4KLVlvdSBhcmUgaGVhdnkgb24gdGhlIHdvb2R3YXkgaWYgeW91IGJlbGlldmUgdGhhdCBpbiBMb25kb24KIGhvcnNlZHJvdmV3b3JrcyBnby4KLVdpbGwgd2Ugbm93IGEgYmVlciBkcmluayBnbz8gTXkgdGhyb2F0IGlzIG91dGRyaWVkLCBidXQgbG9vaywgdGhlcmUgaXMgYQogZ3Vlc3Rob3VzZSwgbGV0IHVzIG1hbiB0aGVyZSBnby4KLVRoYXQgaXMgYSBnb29kIHRoaW5rLiBFcXVhbCBnb2VzIGl0IGxvc2UuIEkgd2lsbCBqdXN0IG15IHNob2ViYW5kIGNsb3NlLgotSGVyZSB3ZSBhcmUuIE1ha2UgbWUgcGxlYXNlIHRoZSBkb29zIG9wZW4uCi1CdXQgdGhlcmUgaXMgYSBiZWZvcmhhbmdpbmdjYXN0bGUsIHRoZSBlY29ub215IGlzIHRvLiBIb3cgc29ycnkhIFRoZW4gSQogd2lsbCBnbyBiYWNrIHRvIHRoZSBob3RlbCwgaXQgaXMgYWxyZWFkeSBsYXRlLiBPbiBhZ2FpbnNlZSEKLU9oLCB5ZXMgSSB3aWxsIHRvbyBnby4gSSBtdXN0IGdldCB0aGUgZHJhdWdodCB0byBCYWNrc2lkZW1vbmtleWNhc3RsZS4KIEF1ZiBXaWVkZXJzZWhlbiEKLU5hbnUsIFNpZSBzaW5kIERldXRzY2hlcj8KLUphLCBTaWUgYXVjaD8gRGFzIHd1bmRlcnQgbWljaCBhYmVyLiBJaHIgRW5nbGlzY2ggaXN0IHNvIGd1dCwgZGFzcyBpY2ggZXMKIGdhciBuaWNodCBnZW1lcmt0IGhhZXR0ZS4KCkFuIHRoZW4gdGhleSBtYWRlIHRoZW0gbWUtbm90aGluZy15b3Utbm90aGluZyBvdXQgb2YgdGhlIGR1c3QuCgpKYWYuICAgaXMgYWJlciBuaWNoIHZvbiBtaXIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBlbmdsaXNoIGZvciBydW5hd2F5cyAoTGksICA4LiBNYWkgMTk5NSwgMTI6MzY6MTIpOgojISBybj1KYWYgcnQ9Nzk5Njc2MDY2Cipyb3RmbCoKV2FyIGRhcyBFbmxpc2NoIGZ1ZXIgRm9ydGdlc2Nocml0dGVuZSAoRW5nbGlzaCBmb3IgUnVuYXdheXMpID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZW5nbGlzaCBmb3IgcnVuYXdheXMgKEFyYW55YSwgIDguIE1haSAxOTk1LCAxNjo1NTowOSk6CiMhIHJuPUxpIHJ0PTc5OTkyOTM3MgpEYSBrYW5uIGljaCBkaWUgIkZpbHNlcmJyaWVmZSIgaW4gZGVyIFN1ZWRkZXV0c2NoZW4gWmVpdHVuZyB6dW0gV29jaGVuZW5kZQoobGV0enRlIFNlaXRlLCBvYmVuIGxpbmtzKSBlbXBmZWhsZW4uIEltbWVyIGluIGRlciBTYW1zdGFnc2F1c2dhYmUuCgpBcmFueWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNFSFIgd2l0emlnLiAoVG9tbXksICA5LiBNYWkgMTk5NSwgMTM6MTM6MTQpOgpFcyBnaWJ0IGRyZWkgc2ljaHRiYXJlIEF1c2dhZW5nZTogd2VzdGVuLCBub3JkZW4gdW5kIHN1ZWRvc3Rlbi4KUGVnYXN1cywgZGFzIGZsaWVnZW5kZSBQZmVyZC4KPiBFaW4gZmxpZWdlbmRlcyBQZmVyZCBmbGllZ3QgZ2VyYWRlIGFiLgpiZXN0ZWlnZSBwZWdhc3VzdQpQZWdhc3VzLCBkYXMgZmxpZWdlbmRlIFBmZXJkLCBuaW1tdCBEaXIgMjIyIE11ZW56ZW4gYWIuClp1ZnJpZWRlbiBiaWV0ZXQgZXIgRGlyIGVpbmVuIFBsYXR6IGF1ZiBzZWluZW0gUnVlY2tlbiBhbi4KV2llIGJpdHRlPwo+IEVpbiBmbGllZ2VuZGVzIFBmZXJkIG5hZWhlcnQgc2ljaCB1bmQgbGFuZGV0IHNpY2hlci4KCkhhaGEuIDsoCgpUb21teSwgdmVyYmx1ZWZmdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoR3JpbW1ib3JuLCAxMS4gTWFpIDE5OTUsIDE5OjU5OjMzKToKCltBbGxnZW1laW46TW9yZ29uXSBLb2VubnRlIG5pY2ggbWFsIGplbWFuZCBkaWUgR29ibGlucyB0b2V0ZW4sIGRpZSBuZXJ2ZW4uCgogLSAyIE1pbnV0ZW4gc3BhZXRlcjoKCltUb2Q6XSBFaW4gRHJhY2hlIGhhdCBnZXJhZGUgTW9yZ29uIHVtZ2VicmFjaHQuCltUb2Q6RWluIERyYWNoZV0gVW5kIHdpZWRlciBnaWJ0IGVzIGVpbmUgZ3V0IGR1cmNoZ2VnYXJ0ZSBNYWhsemVpdCBmdWVyIGRlbgpbVG9kOkVpbiBEcmFjaGVdIERyYWNoZW4uLi4KKERhcyBpc3QgZGllIE1lbGR1bmcgZGVzIEdvYmxpbmRyYWNoZW5zLi4uKQoKTW9yZ29uOiBHb2JsaW5zIHVuZCBEcmFjaGVuIHNpbmQgdmVyc2NoaWVkZW5lIERpbmdlISA6LSkKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbWFsIHdpZWRlciBwYXNzZW5kIChaYXJkb3osIDE1LiBNYWkgMTk5NSwgMTU6MDE6MDEpOgpWb2xsdHJvdHRlbCBydWZ0OiBEaWVzbWFsIGJpcyBEdSBkcmFuLCBLb2NoIQpQdW1hIHNhZ3Q6IGFjaGphIFRGLi4uCgpbVG9kOl0gRWluIEtvY2ggaGF0IGdlcmFkZSBWb2xsdHJvdHRlbCB1bWdlYnJhY2h0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZsdyAoQ2FyYWRocmFzLCAyMi4gTWFpIDE5OTUsIDAyOjQ0OjU3KToKTWVsbG9ybiBydWZ0OiBNSUlJSUlTVCEKW1RvZDpdIEVpbmUgUmllc2Vuc3Bpbm5lIGhhdCBnZXJhZGUgTWVsbG9ybiB1bWdlYnJhY2h0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYWx0LmZhbi5wcmF0Y2hldHQgKEFudGhlYSwgMjguIE1haSAxOTk1LCAxODo0NDoxMik6CkhpIExldXRlCkZvbGdlbmRlciBBcnRpa2VsIGlzdCBhdXMgYWx0LmZhbi5wcmF0Y2hldHQgV2VyIGRpZXNlIE5ld3MtU2VpdGUgbm9jaCBuaWNodAprZW5udCBzb2xsdGUgZGEgdmllbGxlaWNodCBtYWwgcmVpbnNjaGF1ZW4sIHdlaWwgYSkgZ2lidCBlcyBkYSB2aWVsIHp1IExhY2hlbgp1bmQgYikgc2NocmVpYnQgbmljaHQgYXVmIGplZGVyIEZhbi1TZWl0ZSBkZXIgQXV0b3Igc2VsYmVyIG1pdCA6KQoKQW50aGVhCgoKVGhlIHJlY2VudCAiRHdhcnZlbiBQb2V0cnkiIChhLmsuYS4gImdvbGQgZ29sZCBnb2xkIikgYWx0LmZhbi5wcmF0Y2hldHQKZGlzY3Vzc2lvbiB0aHJlYWQgd2FzIGluIG15IG9waW5pb24gb25lIG9mIHRoZSBtb3N0IGVudGVydGFpbmluZyBvbmVzIHdlJ3ZlCmhhZCBzaW5jZSB0aGlzIG5ld3Nncm91cCdzIGluY2VwdGlvbiwgZXZlbiB0aG91Z2ggSSBzdXBwb3NlIGl0IHdhcwpiYXNpY2FsbHkganVzdCBhIHNpbmdsZSBydW5uaW5nIGdhZyBzdHJldGNoZWQgYmV5b25kIGVuZHVyYW5jZSBhbmQgdGhlbgpzb21lLgoKSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGEgc2hhbWUgaWYgdGhpcyBhZG1pcmFibGUgZXhhbXBsZSBvZiBjb2xsZWN0aXZlCndyaXRpbmcgd291bGQgZGlzYXBwZWFyIGludG8gdGhlIGdhcGluZyB2YWN1dW0gbWF3cyBvZiBVc2VuZXQgaGlzdG9yeSwgc28KSSd2ZSBzZWFyY2hlZCB0aHJvdWdoIG15IGxvZyBmaWxlcywgcmVzY3VlZCB0aGUgcmVsZXZhbnQgcG9zdGluZ3MsIGFuZApzdGFydGVkIHBydW5pbmcsIHNsaWNpbmcsIGRpY2luZywgbGVhdmluZyBvdXQsIGVkaXRpbmcsIHJlYXJyYW5naW5nIGFuZApmb3JtYXR0aW5nLgoKSSBjYW4gb25seSBob3BlIHRoYXQgSSdtIG5vdCB0aGUgb25seSBvbmUgd2hvIHdpbGwgYmUgYW11c2VkIGJ5IHRoZQpkb2N1bWVudCB0aGF0IHJlc3VsdGVkIGZyb20gYWxsIHRoaXMgYWN0aXZpdHkuCgotLQpMZW8gQnJlZWJhYXJ0IChsZW9AY3AudG4udHVkZWxmdC5ubCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJCSAgVEhFIDE5OTUgQS5GLlAuICJEV0FSVkVOIFBPRVRSWSIgVEhSRUFECi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGFzb3JsaUBpbGYudWlvLm5vIChBcmUgU29ybGkpCgpIYXZpbmcgb2JzZXJ2ZWQgdGhlIHJlY2VudCBkaXNjdXNzaW9uIG9uIERXIGZhbiBmaWN0aW9uLCBJIGZpbmFsbHkgbWFkZSB1cApteSBtaW5kIHRvIHNoYXJlIG15IGh1bWJsZSBlZmZvcnRzIHdpdGggeW91LiBTZWVpbmcgYXMgdGhlcmUgaXMgYSBsb3Qgb2YKYWN0aXZpdHkgaW4gdGhlIEhlZGdlaG9nIFNvbmcgZGVwYXJ0bWVudCwgSSByYXRoZXIgY2hhbm5lbGVkIG15IGNyZWF0aXZlCmVuZXJnaWVzIGludG8gdGhlIGNvbXBvc2l0aW9uIG9mIGEgbmV3IGR3YXJmIHNvbmcuIEhlcmUgYXJlIHRoZSBmaXJzdCB0d28KdmVyc2VzOgoKICBHb2xkLCBnb2xkLCBnb2xkLCBnb2xkLAogIGdvbGQsIGdvbGQsIGdvbGQsIGdvbGQsCiAgZ29sZCwgZ29sZCwgZ29sZCwgZ29sZCwKICBnb2xkLCBnb2xkLCBnb2xkLCBnb2xkLgoKICBHb2xkLCBnb2xkLCBnb2xkLCBnb2xkLAogIGdvbGQsIGdvbGQsIGdvbGQsIGdvbGQsCiAgZ29sZCwgZ29sZCwgZ29sZCwgZ29sZCwKICBnb2xkLCBnb2xkLCBnb2xkLCBnb2xkLgoKSSdtIGN1cnJlbnRseSB3b3JraW5nIG9uIHNvbWUgbW9yZSB2ZXJzZXMsIGJ1dCBoYXZlIHJ1biBpbnRvIHF1aXRlIHNlcmlvdXMKc2NhbnNpb24gcHJvYmxlbXMgZHVlIHRvIGZvcm1hbCBjb25zdHJhaW50cy4gSSB3aWxsIHNoYXJlIHRoZW0gd2l0aCB5b3UgYXQKYSBsYXRlciBzdGFnZSBvZiBjcmVhdGlvbi4gQW55ICpjb25zdHJ1Y3RpdmUqIGNyaXRpY2lzbSBvbiB0aGUgY3VycmVudAplZmZvcnQgaXMgd2VsY29tZWQ7IGhvdyBkb2VzIG15IHdvcmsgY29tcGFyZSB3aXRoIHRoZSBvcmlnaW5hbD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IEEuSi5DcmliYmluQGJyYWRmb3JkLmFjLnVrIChhLmouY3JpYmJpbikKCkludGVyZXN0aW5nIGx5cmljcywgSSBzZWUgeW91IGZlZWwgcGFzc2lvbmF0ZWx5IGFib3V0IHRoZSBzdWJqZWN0IG1hdHRlci4gSQpwYXJ0aWN1bGFybHkgbGlrZSB0aGUgd2F5IHlvdSd2ZSBtYW5hZ2VkIHRvIGdldCB0aGUgbGluZXMgdG8gYWxsIHJoeW1lCndpdGhvdXQgc2FjcmlmaWNpbmcgdGhlaXIgc2Vuc2Ugb2YgbWVhbmluZy4gTW9zdCBjbGV2ZXIuCgpNeSBvbmx5IHF1aWJibGUgaXMgdGhhdCBJIHRoaW5rIHRoZSByZWZlcmVuY2UgdG8gb3JhbCBzZXggaXMgdG90YWxseQp1bmNhbGxlZCBmb3IuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBzdGVwaGVuQHdhaWthdG8uYWMubnogKFN0ZXBoZW4gSnVkZCkKCkdyZWF0ISBNYXkgSSBzdWJtaXQgbXkgR2VybWFuIHRyYW5zbGF0aW9uPyBJdCBydW5zOgoKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZAogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCgogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZAogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQuCgpJJ20gc3VyZSB5b3UnbGwgYWdyZWUgdGhhdCBJIGhhdmUgbWFuYWdlZCB0byBjYXB0dXJlIGJvdGggdGhlIHN0eWxlIGFuZApudWFuY2VzIG9mIHRoZSBvcmlnaW5hbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IHNzc29nYWRyQHJlYWRpbmcuYWMudWsgKEFkcmlhbiBPZ2RlbikKCiAgIEdsb2QsIEdsb2QsIEdsb2QsIEdsb2QKICAgR2xvZCwgR2xvZCwgR2xvZCwgR2xvZAogICBHbG9kLCBHbG9kLCBHbG9kLCBHbG9kCiAgIEdsb2QsIEdsb2QsIEdsb2QsIEdsb2QgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBUZXJyeXBAdW5zZWVuLmRlbW9uLmNvLnVrIChUZXJyeSBQcmF0Y2hldHQpCgpIdWgsIHRoYXQncyBhIGRlZmluaXRlIHJpcCBvZmYgb2YgdGhlIHNvbmcgVGhvZyBUaHVuZGVydGhpZ2hzIGlzIGdvaW5nIHRvCndyaXRlIG5leHQgeWVhciwgaHVoISBTbmVlciEgU2VlPyBUaGUgd29yZCAnZ2xvZCcgYXBwZWFycyBzZXZlcmFsIHRpbWVzIGluCmJvdGggdmVyc2lvbnMhIElzIHRoaXMgcGxhZ2lhcmlzbSBvciB3aGF0ISEhPz8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBELkxPREdFQHVrMDMud2lucy5pY2wuY28udWsgKEQuTE9ER0UpCgpZZXM7IHRoZSB3b3JkcyBtYXkgYmUgY29uZm9ybWFudCBidXQgdGhlIHR1bmVzIGFyZSByYWRpY2FsbHkgZGlmZmVyZW50OwpPQWRyaWFuJ3MgZ29lczogJ0dsb2QsIEdsb2QsIEdsb2QsIEdsb2QnLCB3aGlsc3QgVGhvZydzIGdvZXM6ICdHbG9kLCBHbG9kLApHbG9kLCBHbG9kJyAtLSBzZWUgTk8gc2ltaWxhcml0aWVzLi4uLgoKTG9vayBvdXQgYWxsIHlvdSBkd2FyZnMgZm9yIHRoZSBuZXcgJ2V4cGVyaW1lbnRhbCcgdHVuZSBmcm9tIHRoZSBncm91cAonT2N0YXJpbmUgT21zZGF5JyB3aGljaCBnb2VzOgoKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZAogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQKICBHb2xkLCBHb2xkLCBHb2xkLCBTaWx2ZXIKCkJ1dCB0aGV5IGp1c3QgZG9uJ3Qga25vdyBob3cgdGhlIG1vZGVybiB3b3JsZCB3aWxsIHRha2Ugc3VjaCBjaGFuZ2VzIHRvIHRoZQplc3RhYmxpc2hlZCBvcmRlci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogamFuaUBpZmkudWlvLm5vIChKYW4gSW5ndm9sZHN0YWQpCgpBdCBsZWFzdCB0aGV5IGRpZG4ndCB0YWtlIHRoZSBmYXRhbCBzdGVwIG9mIHdyaXRpbmc6CgogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZAogIEdvbGQsIEdvbGQsIEdvbGQsIEJyb256ZSBbMV0KClsxXSBGb3JnaXZlIG1lLCBJIGRpZG4ndCByZWFsbHkgbWVhbiB0byBpbXBseSB0aGF0ICphbnkqIGR3YXJmIHdvdWxkCiAgICBldmVuICp0aGluayogb2YgdXNpbmcgdGhhdCB3b3JkIGFtb25nc3QgYWxsIHRoYXQgd29uZGVyZnVsIEdvbGQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBzc3NvZ2FkckByZWFkaW5nLmFjLnVrIChBZHJpYW4gT2dkZW4pCgpQbGFnaWFyaXNtIT8gWW91IHdhbnQgUExBR0lBUklTTSEhPz8gSSdsbCBnaXZlIHlvdSBQTEFHSUFSSVNNISEhIQoKICAgR2xvZCwgR2xvZCwgR2xvZCwgR2xvZAogICBHbG9kLCBHbG9kLCBHbG9kLCBHbG9kCiAgIExvdmVseSBHbG9kLCBXb25kZXJmdWwgR2xvZAogICBMb3ZlbHkgR2xvZCwgV29uZGVyZnVsLi4uCgogICAiU2h1dCBVcCEgQmxvb2R5IFZpa2luZ3MuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogY2xhcDE1M0BjY3N1bi5zdHJhdGguYWMudWsgKCAiZy5wLnN0ZXdhcnQiKQoKSGV5LCBzaW5jZSB3ZSBzZWVtIHRvIGhhdmUgZ29uZSBpbnRlcm5hdGlvbmFsIG9uIHRoaXMgd2h5IG5vdCB0aGUgRGFuaXNoCnRyYW5zbGF0aW9uIQoKICBHdWxkLCBHdWxkLCBHdWxkLCBHdWxkCiAgR3VsZCwgR3VsZCwgR3VsZCwgR3VsZAogIEd1bGQsIEd1bGQsIEd1bGQsIEd1bGQKICBHdWxkLCBHdWxkLCBHdWxkLCBHdWxkCgpJJ20gc29ycnkgYnV0IHRoYXQncyBvbmx5IHRoZSB0aGlyZCBicmlkZ2Ugc2VjdGlvbiBiZWZvcmUgdGhlIHNlY29uZCBDT0RBLApzdGlsbCB0aGUgdHJhbnNsYXRpb24gaXMgcHJldHR5IGFjY3VyYXRlIEkgZmVlbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGlyaW5hQHJlbXB0LnhzNGFsbC5ubCAoSXJpbmEgUmVtcHQpCgpBbmQgYSB0aW55IHNhbXBsZSBmcm9tIHRoZSBEdXRjaCB0cmFuc2xhdGlvbiBJJ20gd29ya2luZyBvbjoKCiAgR291ZCwgZ291ZCwgZ291ZCwgZ291ZAogIEdvdWQsIGdvdWQsIGdvdWQsIGdvdWQKICBHb3VkLCBnb3VkLCBnb3VkLCBnb3VkCiAgR291ZCwgZ291ZCwgZ291ZCwgZ291ZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogUklCQkVAZWFydGhib3guZXNjYXBlLmRlIChBbGV4YW5kZXIgUmliYmUpCgpBbmQgZm9yIGxpdHRsZSBEdXRjaCBkd2FyZnM6CgogIGNlbnQsIGNlbnQsIGNlbnQsIGNlbnQKICBjZW50LCBjZW50LCBjZW50LCBjZW50CiAgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBuaGFycmlzQHN0YXJmbGVldC53aW4tdWsubmV0IChOZWlsIEhhcnJpcykKCkluIHRoZSBpbnRlcmVzdHMgb2YgaW50ZXJuYXRpb25hbCBjb29wZXJhdGlvbiBhbmQgdW5kZXJzdGFuZGluZyBtYXkgSQpyZXNwZWN0ZnVsbHkgcHJlc2VudCB0aGUgRHdhcmYgU29uZy4uLiBpbiBXZWxzaC4KCiAgQXVyLCBBdXIsIEF1ciwgQXVyCiAgQXVyLCBBdXIsIEF1ciwgQXVyCiAgQXVyLCBBdXIsIEF1ciwgQXVyCiAgQXVyLCBBdXIsIEF1ciwgQXVyLgoKQXMgeW91IGNhbiBzZWUgdGhpcyB2ZXJzaW9uIGhhcyB0aGUgYWRkZWQgYWR2YW50YWdlIG9mIGZld2VyIGxldHRlcnMgYW5kIGlzCnRoZXJlZm9yZSBzdWl0YWJsZSBhcyBhICdwb2NrZXQnIHZlcnNpb24uCgpQcm9udW5jaWF0aW9uIG5vdGUuIEF1ciBpcyBwcm9ub3VuY2VkIGFzIHRoZSBFbmdsaXNoICdpcmUnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogbnhsQHJiLmljbC5jby51ayAoTmljayBMZXZlcnRvbikKCkFjdHVhbGx5LCBJIGRvbid0IHVuZGVyc3RhbmQgdGhlIGJpdCBpbiBMJkwsIHdoZXJlIFB0ZXJyeSB3cml0ZXMgdGhhdApkd2FydmVzIGFjdHVhbGx5IHByZWZlciBpcm9uIHRvIGdvbGQsIGV4Y2VwdCB0aGF0IGl0J3MgaGFyZGVyIHRvIHdyaXRlCnNvbmdzIGFib3V0IGl0LiBUaGV5IHNlZW0gbW9yZSBvciBsZXNzIHRoZSBzYW1lIHRvIG1lIC0tIGxvb2sgOgoKICBJcm9uLCBJcm9uLCBJcm9uLCBJcm9uCiAgSXJvbiwgSXJvbiwgSXJvbiwgSXJvbgogIElyb24sIElyb24sIElyb24sIElyb24KICBJcm9uLCBJcm9uLCBJcm9uLCBJcm9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBhc29ybGlAaWxmLnVpby5ubyAoQXJlIFNvcmxpKQoKSSBkbyBub3QgY29uc2lkZXIgbXlzZWxmIGEgcHJ1ZGUsIGJ1dCBhdCB0aGlzIHBvaW50IEkgZmVlbCBjb21wZWxsZWQgdG8KaW50ZXJ2ZW5lLiBUaGlzIGRpc2N1c3Npb24sIGFwYXJ0IGZyb20gc29tZSBjb21tZW5kYWJsZSB0cmFuc2xhdGlvbgptYXRlcmlhbCwgc2VlbXMgdG8gaGF2ZSBkZXZlbG9wZWQgcXVpdGUgYW4gdW5zZXJpb3VzLCBldmVuIGZsaXBwYW50LCB0b25lLAp3aXRoIGNoZWFwIHF1aXBzIGFib3V0IGlnbm9ibGUgbWV0YWxzIChhbmQsIGF0IG9uZSBwb2ludCwgZXZlbiBhbGxveXMhKS4gSQp3b3VsZCBob3BlIHRoYXQgb3VyIGRpc2N1c3Npb24gY291bGQgb25jZSBhZ2FpbiByZXR1cm4gdG8gdGhlIHRyYWNrIG9mCnBhc3Npb25hdGUgYXJndW1lbnQgYW5kIHNpbmNlcmUgbGl0ZXJhcnkgb3BpbmlvbiBmcm9tIHdoaWNoIGl0IGhhcyBiZWVuCmRlcmFpbGVkLiBUbyB0aGlzIGVuZCwgSSBzdWJtaXQgbXkgdGhpcmQgdmVyc2UsIHdoaWNoIEkgbm93IGZlZWwgaGFzCnJlYWNoZWQgaXRzIGZpbmFsIHBoYXNlIG9mIG1hdHVyYXRpb246CgogIEdvbGQsIGdvbGQsIGdvbGQsIGdvbGQsCiAgZ29sZCwgZ29sZCwgZ29sZCwgZ29sZCwKICBnb2xkLCBnb2xkLCBnb2xkLCBnb2xkLAogIGdvbGQsIGdvbGQsIGdvbGQsIGdvbGQuCgpJJ20gcGFydGljdWxhcmx5IHBsZWFzZWQgd2l0aCBhbGwgdGhlIGVtYmVkZGVkIHJlZmVyZW5jZXMgdG8gZWFybGllcgp0ZXh0dWFsIG1hdGVyaWFsIGluIHRoaXMgbGl0ZXJhcnkgY29udGV4dC4gQXJlIHlvdSBhYmxlIHRvIHNwb3QgdGhlbT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IHNjaG1pZEBpc2kuZWUuZXRoei5jaCAoSGFuc3BldGVyIFNjaG1pZCkKCldlbGwsIHRoaXMgaXMgY2VydGFpbmx5IGJldHRlciB0aGFuIHRoZSBGcmVuY2ggdHJhbnNsYXRpb246CgogIE9yLCBvciwgb3IsIG9yCiAgT3IsIG9yLCBvciwgb3IKICBPciwgb3IsIG9yLCBvcgogIE9yLCBvciwgb3IsIG9yCgpJIGxpa2UgdGhlIEl0YWxpYW4gdHJhbnNsYXRpb24gYSBsaXR0bGUgYml0IGJldHRlcjoKCiAgT3JvLCBvcm8sIG9ybywgb3JvCiAgT3JvLCBvcm8sIG9ybywgb3JvCiAgT3JvLCBvcm8sIG9ybywgb3JvCiAgT3JvLCBvcm8sIG9ybywgb3JvCgpBbHRob3VnaCB0aGUgcmVhbGx5IGJlc3QgdHJhbnNsYXRpb24gSSd2ZSBmb3VuZCBpcyB0aGUgRmlubmlzaCBvbmU6CgogIEhvbG1vbGFpbmVuLCBob2xtb2xhaW5lbiwgaG9sbW9sYWluZW4sIGhvbG1vbGFpbmVuCiAgSG9sbW9sYWluZW4sIGhvbG1vbGFpbmVuLCBob2xtb2xhaW5lbiwgaG9sbW9sYWluZW4KICBIb2xtb2xhaW5lbiwgaG9sbW9sYWluZW4sIGhvbG1vbGFpbmVuLCBob2xtb2xhaW5lbgogIEhvbG1vbGFpbmVuLCBob2xtb2xhaW5lbiwgaG9sbW9sYWluZW4sIGhvbG1vbGFpbmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiB3aWxraW5zQHdlaGkuZWR1LmF1IChKb2huIFdpbGtpbnMpCgpUaGVuIGFnYWluLCB0aGVyZSdzIHRoZSBhbGNoZW1pc3QncyB2ZXJzaW9uLCB1bmRlcnN0b29kIGJ5IGFsbCBsYW5ndWFnZXMsCnNwZWNpZXMsIGFuZCBzZXh1YWwgb3JpZW50YXRpb25zIChhdCBsZWFzdCwgdW50aWwgdGhleSBleHBsb2RlIG9yCnNvbWV0aGluZyk6CgogIEF1LCBBdSwgQXUsIEF1CiAgQXUsIEF1LCBBdSwgQXUKICBBdSwgQXUsIEF1LCBBdQogIEF1LCBBdSwgQXUsIEF1LgoKSSB0aGluayB0aGlzIG11c3QgYmUgY29uc2lkZXJlZCB0aGUgZGVmaW5pdGl2ZSB2ZXJzaW9uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogRC5IZWFsZEB1bnN3LmVkdS5hdSAoRGFuaWVsIEhlYWxkKQoKVGhpcyBjYW4gb2YgY291cnNlIGJlIHN1bW1hcml6ZWQgZnVydGhlciwgYW5kIGJlIG11Y2ggbW9yZSBhY2NlcHRhYmxlIGZvcgpwdWJsaWNhdGlvbiBpbiBzdWNoIGxlYXJuZWQgam91cm5hbHMgYXMgKkF1cm9waGlsaWEgQWN0YSosIGFzIHRoZSBmb2xsb3dpbmcKCiAgNCAoQXUgc3Vic2NyaXB0NCkKCldoaWNoIGlzIGV2ZW4gbW9yZSBlY29ub21pY2FsLCBhbmQgbWluZC1ib2dnbGluZ2x5IHRlZGlvdXMgdG8gYW55IG9mIHRoZQpub24tZHdhcnZlbiBwZXJzdWFzaW9uLCB0aGFuIGFueSBzdWJtaXNzaW9uIHNvIGZhci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGpyb2JlcnRAdW5peGcudWJjLmNhIChKZWZmIEhvd2VsbCkKCldlbGwsIGp1c3QgdG8ga2VlcCB1cCB0aGUgY3VycmVudCBpbnRlcm5hdGlvbmFsIHRyZW5kLCBoZXJlIGlzIG15IGF0dGVtcHQKYXQgYSBDYW5hZGlhbiB2ZXJzaW9uLgoKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZAogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBlaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IFBhdWwgR3JhaGFtIDx6ZGxmMDM1QGJheS5jYy5rY2wuYWMudWs+CgpCZW4sIG1haXMgc2kgb24gaGFiaXRlIGEgUXVlYmVjOgoKICBEJ29yLCBEJ29yLCBEJ29yLCBEJ29yCiAgRCdvciwgRCdvciwgRCdvciwgRCdvcgogIEQnb3IsIEQnb3IsIEQnb3IsIEQnb3IKICBEJ29yLCBEJ29yLCBEJ29yLCBEJ29yLgoKTidlc3QtY2UgcGFzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogcmVpZHVsZkByYXZuLmlpLnVpYi5ubyAoUmVpZHVsZiBXYXNlbml1cykKCldlIG11c3Qgbm90IGZvcmdldCB0aGUgTm9yZ2V3aWFuIHZlcnNpb24uIEhlcmUgaXQgY29tZXMKCiAgR3VsbCwgR3VsbCwgR3VsbCwgR3VsbAogIEd1bGwsIEd1bGwsIEd1bGwsIEd1bGwKICBHdWxsLCBHdWxsLCBHdWxsLCBHdWxsCiAgR3VsbCwgR3VsbCwgR3VsbCwgR3VsbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogZnJ1aXRiYXRAY2FuYmVycmEuRElBTGl4Lm96LmF1IChQYXVsIFNsZWlnaCkKCk5vIG5vIG5vISBZb3UgY2FuJ3QgYXBwcmVjaWF0ZSBQcmF0Y2hldHQgdW50aWwgeW91J3ZlIHJlYWQgaGltIGluIHRoZQpvcmlnaW5hbCBLbGluZ29uISEhCgogIFN1RCwgU3VELCBTdUQsIFN1RAogIFN1RCwgU3VELCBTdUQsIFN1RAogIFN1RCwgU3VELCBTdUQsIFN1RAogIFN1RCwgU3VELCBTdUQsIFN1RC4KCkFuZCB0aGUgdmVyc2VzIGFyZSBmYXNjaW5hdGluZyB0b28uCgpRYXBsYSchCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiByYmViYkBkYnJ3Lndpbi11ay5uZXQgKFJpY2hhcmQgQmViYikKIApBZnRlciB0aGUgY3VycmVudCBkZWx1Z2Ugb2YgZHdhcmYgKnNvbmdzKiBJIHRob3VnaHQgaXQgbWlnaHQgYmUgbmljZSB0bwpoZWFyIGEgZHdhcmYgbGltZXJpY2sgZXZlbiB0aG91Z2ggZHdhcmZzIGFyZW4ndCBleGFjdGx5IGZhbW91cyBmb3IgdGhlaXIKc2Vuc2Ugb2YgaHVtb3VyIDotCgogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQsCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLAogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQsCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwKCkFueW9uZT8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGNidWNrbGV5QHRjZC5pZSAoQ29sbSBCdWNrbGV5KQoKU2hvdWxkbid0IGxpbWVyaWNrcyBoYXZlIDggc3lsbGFibGVzIGluIHRoZSBmaXJzdCB0d28gbGluZXMsIGZvbGxvd2VkIGJ5IDIKbGluZXMgb2YgNSBzeWxsYWJsZXMsIHdpdGggOCBhZ2FpbiBpbiB0aGUgbGFzdCBsaW5lPyBJJ20gc3VyZSBJIHJlYWQgdGhpcwpzb21ld2hlcmUgKHRoYXQgYW5kIHRoZSBBQUJCQSByaHltaW5nIHNjaGVtZSksIHdoaWNoIHdvdWxkIGdpdmUgdXMgOgoKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQKCkhtbW1tLi4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBtaWtlcEByY3AuY28udWsgKE1pa2UgUGluc29uKQoKV2VsbCwgdG8gY29udHJpYnV0ZSBhIGJpdCBvZiBmYXItZWFzdGVybiBteXN0ZXJ5IGFuZCBiZWF1dHkgdG8gdGhlc2Ugd29ya3MsCkkgaGF2ZSBjb21wb3NlZCBhIGR3YXJ2ZW4gaGFpa3UuCgogIEdvbGQsIGEgZHdhcnZlbiBoYWlrdSBieSBNaWtlIFBpbnNvbi4KICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgR29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkCiAgR29sZCBnb2xkIGdvbGQKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQuCgpIb3BlIHlvdSBsaWtlIGl0LCBJIGZvdW5kIGl0IHF1aXRlIHRvdWNoaW5nLCBldm9jYXRpbmcgaW1hZ2VzIG9mCnN1YnRlcnJhbmVhbiBwYWdvZGFzLCBhbmQgZ29sZC4KClRoYXQgd2FzIHNvIGdvb2QsIEknbGwgaGF2ZSB0byB0YWtlIGEgbG9uZyB3YWxrIHRvIHRoaW5rIGFib3V0IGl0LiBTZWUgeW91CmxhdGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp+RnJvbTogc2lsYnJtbmRAYWNmNC5ueXUuZWR1IChzaWxicm1uZCkKCkJ1dCBpdCdzIG5vdCBhICpwcm9wZXIqIGhhaWt1IHVubGVzcyBpdCdzIGdvdCBjaGVycnkgYmxvc3NvbXMuLi4uCgogIEdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZC4KICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkLAogIGdvbGQgZ29sZCBjaGVycnktYmxvc3NvbXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBoZWxlbmhAZHJ1dHQuZGVtb24uY28udWsgKEhlbGVuIEhpZ2h3YXRlcikKCj4gR29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkLgo+IEdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQsCj4gZ29sZCBnb2xkIGNoZXJyeS1ibG9zc29tcy4KClRvbyBtYW55IHN5bGxhYmxlcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IHJwQHJiLmljbC5jby51ayAoUm9iaW4gUGFya2luc29uKQoKPiBUb28gbWFueSBzeWxsYWJsZXMuCgogIFRvIGV4cHJlc3Mgb25lc2VsZgogIEluIHNldmVudGVlbiBzeWxsYWJsZXMKICBJcyB2ZXJ5IGRpZmZpYwogICAgICAgICAgICAgICAtLSBKb2huIENvb3BlciBDbGFyay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGtlcmNoQHJleW5hbGRvLlBBUkMuWGVyb3guQ29tIChCZXJyeSBLZXJjaGV2YWwpCgo+IEJ1dCBpdCdzIG5vdCBhICpwcm9wZXIqIGhhaWt1IHVubGVzcyBpdCdzIGdvdCBjaGVycnkgYmxvc3NvbXMuLi4uCgpObywgYWN0dWFsbHkgaXQncyBhIHJlZmVyZW5jZSB0byB0aGUgc2Vhc29uIHRoYXQgaXMgcmVxdWlyZWQ7CmNoZXJyeS1ibG9zc29tcyBhcmUgYSByZWZlcmVuY2UgdG8gc3ByaW5nIFsxXQoKU28geW91IGNvdWxkIGhhdmUKCiAgR29sZCBnb2xkIGZhbGxpbmcgbGVhdmVzIGdvbGQuCiAgR29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCwKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQKCm9yCgogIEdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZDsKICBHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkLAogIEdvbGQgZ29sZCBpY2VjaWNsZXMgZ29sZC4KCm9yIGV2ZW4KCiAgR29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkOwogIEdvbGQgZ29sZCBleGZvbGlhdGluZyBzY2hpc3QgZ29sZCBnb2xkLAogIEdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZC4KCgpbMV0gb3IgdmVyeSBsYXRlIHdpbnRlciwgZGVwZW5kaW5nIG9uIHlvdXIgbGF0aXR1ZGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBEb2VybnRnZUB0dS1oYXJidXJnLmQ0MDAuZGUgKFJhaW5lciBEb2VybnRnZSkKCkFmdGVyIHNvbWUgZXh0ZW5zaXZlIHJlc2VhcmNoIGluIG9sZCBhbmNpZW50IHRvbWVzIChtYWlubHkgIkFzdGVyaXggYXB1ZApHb3Rob3MiKSwgSSBtYWRlIGFuIGF0dGVtcHQgdG8gYSBsYXRpbiB0cmFuc2xhdGlvbiBvZiB0aGUgc29uZy4gVGhpcyBpcwpzb21ld2hhdCBtb3JlIGRpZmZpY3VsdCBhcyBvdGhlciB0cmFuc2xhdGlvbnMgc2luY2UgdGhlIGxhdGluIHRyYW5zbGF0aW9uCmNvbnNpc3RzIG9mIG1vcmUgc3lsbGFibGVzIHRoYW4gYWxsIHByZXZpb3VzbHkgc2hvd24uLi4KCkhlcmUgaXQgY29tZXM6CgogIEF1cnVtLCBBdXJ1bSwgQXVydW0sIEF1cnVtLAogIEF1cnVtLCBBdXJ1bSwgQXVydW0sIEF1cnVtLAogIEF1cnVtLCBBdXJ1bSwgQXVydW0sIEF1cnVtLgogIEF1cnVtLCBBdXJ1bSwgQXVydW0sIEF1cnVtIQoKQXMgaXQgaXMgc2hvd24gaW4gdGhlIGxhc3QgbGluZSwgdGhlIGxhdGluIHRyYW5zbGF0aW9uIGVuYWJsZXMgdGhlIHNpbmdlcgp0byBwdXQgbW9yZSBtb21lbnR1bSBpbiBoaXMgcGVyZm9ybWFuY2UsIHdoaWNoIHdpbGwgaGF2ZSBtb3JlIGltcGFjdCBvbiB0aGUKYXVkaWVuY2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBoZWxlbmhAZHJ1dHQuZGVtb24uY28udWsgKEhlbGVuIEhpZ2h3YXRlcikKCj4gQXVydW0sIEF1cnVtLCBBdXJ1bSwgQXVydW0sCj4gQXVydW0sIEF1cnVtLCBBdXJ1bSwgQXVydW0sCj4gQXVydW0sIEF1cnVtLCBBdXJ1bSwgQXVydW0sCj4gQXVydW0sIEF1cnVtLCBBdXJ1bSwgQXVydW0hCgpJIG1heSBiZSB0b25lIGRlYWYgYnV0IGlzbid0IHRoaXMgdGhlIHRoZW1lIHRvIHRoZSBQaW5rIFBhbnRoZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCn5Gcm9tOiBqb2huQGNyaW1zb24xLmRlbW9uLmNvLnVrIChKb2huIE1hbm5pbmcpCgo+IEdvbGQsIGEgZHdhcnZlbiBoYWlrdSBieSBNaWtlIFBpbnNvbi4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkhlcmUgaXMgYSBKYXBhbmVzZSB0cmFuc2xhdGlvbiBmb3IgKmF1dGhlbnRpY2l0eSogLi4uCgogIEtpbiBraW4ga2luIGtpbiBraW4KICBLaW4ga2luIGtpbgogIEtpbiBraW4ga2luIGtpbiBraW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGRhZjFAY2xhcmlvbi5jZWMud3VzdGwuZWR1IChEYW55ZWwgQSBGaXNoZXIpCgpXZWxsLCBmb2xrcywgaXQncyB0aW1lIGZvciB0aGUgbW9yZSBsaXRlcmFyaWx5IGluY2xpbmVkIGR3YXJ2ZW4gcG9ldHMgdG8Kc2hhcmUgU2hha2VzcGVhcmVhbiBhbmQgUGV0cmFyY2hhbiBTb25uZXRzLCBhcyB3ZWxsIGFzIER3YXJ2ZW4gZnJlZSB2ZXJzZQphbmQgRHdhcnZlbiBiZWF0IHBvZXRyeS4gSSBkaWQgdXMgYWxsIHRoZSBmYXZvciBvZiBjb21wb3NpbmcuIE5vdGUgdGhhdCB0aGUKU2hha2VzcGVhcmVhbiBhbmQgUGV0cmFyY2hhbiBhcmUgYWN0dWFsbHkgc3VwZXJpbXBvc2VkLCBmb3IgZWFzaWVyCmNvbXBhcmlzb24gb2YgdGhlIHN0eWxlcy4KCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCiAgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZCwgR29sZAogICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkCgpNb3JlIGludGVyZXN0aW5nIHdhcyB0aGUgRHdhcnZlbiBCZWF0IHBlcmlvZCAodG8gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tIHRoZQpEd2FydmVuIFRodW1wIHBlcmlvZCwgYSBkaWZmZXJlbnQgc3R5bGUgZW50aXJlbHkpLiBEd2FydmVzLCBpbiByb3VuZApleWVnbGFzc2VzLCB3b3VsZCBzaXQgaW4gc21va3kgY2FmZXMgYW5kIHJlY2l0ZSB0byBlYWNoIG90aGVyIHBvZXRyeSB0aGF0LAppbiBEd2FydmVuIGN1bHR1cmUsIHdhcyByZW1hcmthYmxlIGZvciBpdHMgbmV3bmVzcywgaXRzIHRyYW5zY2VuZGVudAptZWRpdGF0aW9ucyBvbiBsaWZlLCBpdHMgcmlzcXVlIG92ZXJ0b25lcywgaXRzIGNsZWFybHkgaGFsbHVjaW5vZ2VuaWMKcXVhbGl0aWVzLgoKVGhpcyBpcyBhIHRyYW5zY3JpcHQgb2YgIkdvbGQtLUdvbGQiLCBieSBMLiBGZXJuLWluLWd1bGx5LCBhIHByb21pbmVudApEd2FyZiBCZWF0IFBvZXQuCgogIEdvbGQtLUdvbGQsIChHb2xkISkgZ29sZCBnb2xkCiAgR29sZCwgR29sZC4gIEdvbGQ/CiAgR29sZCBHb2xkIEdvbGQuICBHb2xkIChHb2xkKSBHb2xkIChHb2xkKSBHKG9sZCkgKEcpb2xkLgogIEc7TztMO0QuCiAgIEcKICAgIE8KICAgICAgTCAKICAgICAgICBECiAgR29sZC0tR29sZCwgKEdvbGQhKSBnb2xkIGdvbGQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGxlcHNsb2dAajUxLmNvbSAoTG91aXMgRXBzdGVpbikKCk5vIG9uZSBoZXJlIGhhcyByZWNvdW50ZWQgb25lIG9mIHRoZSB0cnVlIGR3YXJmIGNsYXNzaWNzISEKCk1hbnkgYXV0aG9yaXRpZXMgYmVsaWV2ZSB0aGF0IGluIHRoZSBmaXJzdCB2ZXJzZSB0aGUgbmFycmF0b3IgZGVzY3JpYmVzIGhpcwplc3RhYmxpc2htZW50LGluIHRoZSBzZWNvbmQgd2hvIGl0IGJlbG9uZ3MgdG8sIGluIHRoZSB0aGlyZCB3aGF0IGhlIGRvZXMKdGhlcmUsIGFuZCBpbiB0aGUgZm91cnRoIGhpcyBzZWN1cml0eSBtZWFzdXJlcy4gTWFueSBvdGhlciBhdXRob3JpdGllcwpiZWxpZXZlIHRoZXNlIHRvIGJlIG1pc2F0dHJpYnV0ZWQgYW5kIGFueSBvdGhlciBvcmRlciBvZiBkZXNjcmlwdGlvbiB0byB0aGUKdmVyc2VzIHRvIGJlIGNvcnJlY3QuIFNlZSBub3Rlcy4KClRoZSB0ZXh0OgoKICAgTWluZSwgbWluZSwgbWluZSwgbWluZQogICBNaW5lLCBtaW5lLCBtaW5lLCBtaW5lCiAgIE1pbmUsIG1pbmUsIG1pbmUsIG1pbmUKICAgTWluZSwgbWluZSwgbWluZSwgbWluZSwgTUlORSEKCiAgIE1pbmUsIG1pbmUsIG1pbmUsIG1pbmVbMV0KICAgTWluZSwgbWluZSwgbWluZSwgbWluZQogICBNaW5lLCBtaW5lLCBtaW5lLCBtaW5lWzJdCiAgIE1pbmUsIG1pbmUsIG1pbmUsIG1pbmUsIE1JTkUhCgogICBNaW5lLCBtaW5lLCBtaW5lLCBtaW5lCiAgIE1pbmUsIG1pbmUsIG1pbmUsIG1pbmUKICAgTWluZSwgbWluZSwgbWluZSwgbWluZQogICBNaW5lLCBtaW5lLCBtaW5lLCBtaW5lLCBNSU5FIQoKICAgTWluZSwgbWluZSwgbWluZSwgbWluZQogICBNaW5lLCBtaW5lLCBtaW5lLCBtaW5lWzNdCiAgIE1pbmUsIG1pbmUsIG1pbmUsIG1pbmVbNV0KICAgTWluZSwgbWluZSwgbWluZSwgbWluZSwgTUlORSFbNl0KClsxXSBBY2NvcmRpbmcgdG8gc29tZSB0aGUgd29yZCBvcmRlciBoZXJlIGlzIHJldmVyc2VkLgpbMl0gU29tZSBzYXkgdGhpcyB2ZXJzZSBpcyBhY3R1YWxseSBmaXZlIGxpbmVzIGxvbmc7IGFub3RoZXIgbGluZSwgIk1pbmUsCiAgICBtaW5lLCBtaW5lLCBtaW5lIiBpcyBpbnNlcnRlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoaXMgbGluZSBpbiBzb21lCiAgICBtc3MuIFs0XQpbM10gU29tZSBzYXkgdGhlIHRoaXJkICJtaW5lIiBzaG91bGQgYmUgYmVmb3JlIHRoZSBzZWNvbmQuT3RoZXJzIGRvbid0CiAgICBjYXJlLgpbNF0gT3IgbWF5YmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSB2ZXJzZS4KWzVdIFRoaXMgbGluZSBtYXkgZ28gYmVmb3JlIHRoZSBwcmV2aW91cyBvbmUuCls2XSBJdCBpcyB0cmFkaXRpb25hbCBhbW9uZyB0aG9zZSB3b3JraW5nIHRoZWlyIGZpcnN0IGRheSBpbiBhIG1pbmUgdG8KICAgIHN1YnN0aXR1dGUgIkRvZXMgVGVycnkgUHJhdGNoZXR0IHJlYWxseSBtaW5lIGhlcmU/IiBmb3IgdGhpcyBsaW5lLls3XQpbN10gSXQgaXMgYWxzbyB0cmFkaXRpb25hbCBmb3IgdGhlbSB0byBiZSB0aHJvd24gb3V0IGFuZCB3b3JrIHRoZSByZXN0IG9mCiAgICB0aGVpciBjYXJlZXJzIGluIGFub3RoZXIgbWluZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfkZyb206IGRhdmVhQGxpbmttc2QuY29tIChEYXZpZCBBcm5vKQoKSXQgaXMgcnVtb3VyZWQgaW4gc29tZSBEd2FydmVuIGNpcmNsZXMgdGhhdCBvbmUgcGFydGljdWxhcmx5IHdlaXJkIER3YXJ2ZW4KQWxjaGVtaXN0IG9uY2UgaGl0IG9uIGFuIHRoZSB1bHRpbWF0ZSBhbGNoZW1pc3QncyBkcmVhbSBzb25nLiBJIGJlbGlldmUgaXQKd2VudCBzb21ldGhpbmcgbGlrZSB0aGlzIFsxXToKCiAgTGVhZCwgTGVhZCwgTGVhZCwgTGVhZCwKICBMZWFkLCBMZWFkLCBMZWFkLCBMZWFkLAogIFBoaWxvc29waGVycyBzdG9uZSEKICBHb2xkLCBHb2xkLCBHb2xkLCBHb2xkLAogIEdvbGQsIEdvbGQsIEdvbGQsIEdvbGQuCgpbMV0gT2J2aW91c2x5LCB0aGlzIGlzIGEgdmVyeSBtdWNoIGFicmlkZ2VkIHZlcnNpb24gYW5kIHNvIG1hbnkgb2YgdGhlIHN1YnRsZQogICAgdW5kZXJ0b25lcyBhbmQgbnVhbmNlcyBvZiB0aGUgb3JpZ2luYWwgYXJlIGxvc3QgaGVyZS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTdWJtaXNzaW9ucyBmb3IgYWx0LmZhbi5wcmF0Y2hldHQuYW5ub3VuY2UgdG86IGFmcGEtbW9kQGVuaWFjLmRlbW9uLmNvLnVrClRoaXMgaXMgYSBzZW1pLWF1dG9tYXRlZCBwb3N0aW5nLiBUbyBjb250YWN0IHRoZSBtb2RlcmF0b3IgaW4gcGVyc29uLCAgbWFpbAogICAgICAgICAgICAgbXBrQGVuaWFjLmRlbW9uLmNvLnVrLiBTaWdzIG1heSBiZSB0cnVuY2F0ZWQuCgoKQW5kIGhlcmUgaXMgVGVycnkgUHJhdGNoZXR0J3MgUmVwbHkgdG8gYWxsIHRoaXMgc3R1ZmY6CldoeSBkaWRuJ3QgYW55b25lIG1lbnRpb24gdGhlIENlbnR1cnkgb2YgdGhlIEZydWl0YmF0IGR3YXJmaXNoIGh1bW91cmlzdAphbmQgcG9ldCBPZ2doYW0gR25hc2g/CgonR29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkLApHb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQsCkdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZC0tCkdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCBnb2xkIGdvbGQgZ29sZCwgZ29sZCBnb2xkLCBnb2xkIGdvbGQKZ29sZCBzb2xkLi4uJwoKVGVycnkgUHJhdGNoZXR0CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBFbnR3aWNrbHVuZyBlaW5lcyBQcm9ncmFtbWllcmVzIChLZXRvcywgIDMuIEp1biAxOTk1LCAyMToxODoyNCk6CiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgIFRoZSBFdm9sdXRpb24gb2YgYSBQcm9ncmFtbWVyCiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogSGlnaCBTY2hvb2wvSnIuSGlnaAogPT09PT09PT09PT09PT09PT09PQoKIDEwIFBSSU5UICJIRUxMTyBXT1JMRCIKIDIwIEVORAoKIEZpcnN0IHllYXIgaW4gQ29sbGVnZQogPT09PT09PT09PT09PT09PT09PT09CiBwcm9ncmFtIEhlbGxvKGlucHV0LCBvdXRwdXQpCiAgIGJlZ2luCiAgICAgd3JpdGVsbignSGVsbG8gV29ybGQnKQogICBlbmQuCgogU2VuaW9yIHllYXIgaW4gQ29sbGVnZQogPT09PT09PT09PT09PT09PT09PT09PQogKGRlZnVuIGhlbGxvCiAgIChwcmludAogICAgIChjb25zICdIZWxsbyAobGlzdCAnV29ybGQpKSkpCgogTmV3IHByb2Zlc3Npb25hbAogPT09PT09PT09PT09PT09PQogI2luY2x1ZGUgPHN0ZGlvLmg+CiB2b2lkIG1haW4odm9pZCkKIHsKICAgY2hhciAqbWVzc2FnZVtdID0geyJIZWxsbyAiLCAiV29ybGQifTsKICAgaW50IGk7CgogICBmb3IoaSA9IDA7IGkgPCAyOyArK2kpCiAgICAgcHJpbnRmKCIlcyIsIG1lc3NhZ2VbaV0pOwogICBwcmludGYoIlxuIik7CiB9CgogU2Vhc29uZWQgcHJvZmVzc2lvbmFsCiA9PT09PT09PT09PT09PT09PT09PT0KICNpbmNsdWRlIDxpb3N0cmVhbS5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgoKIGNsYXNzIHN0cmluZwogewogcHJpdmF0ZToKICAgaW50IHNpemU7CiAgIGNoYXIgKnB0cjsKCiBwdWJsaWM6CiAgIHN0cmluZygpIDogc2l6ZSgwKSwgcHRyKG5ldyBjaGFyKCdcMCcpKSB7fQoKICAgc3RyaW5nKGNvbnN0IHN0cmluZyAmcykgOiBzaXplKHMuc2l6ZSkKICAgewogICAgIHB0ciA9IG5ldyBjaGFyW3NpemUgKyAxXTsKICAgICBzdHJjcHkocHRyLCBzLnB0cik7CiAgIH0KCiAgIH5zdHJpbmcoKQogICB7CiAgICAgZGVsZXRlIFtdIHB0cjsKICAgfQoKICAgZnJpZW5kIG9zdHJlYW0gJm9wZXJhdG9yIDw8KG9zdHJlYW0gJiwgY29uc3Qgc3RyaW5nICYpOwogICBzdHJpbmcgJm9wZXJhdG9yPShjb25zdCBjaGFyICopOwogfTsKCiBvc3RyZWFtICZvcGVyYXRvcjw8KG9zdHJlYW0gJnN0cmVhbSwgY29uc3Qgc3RyaW5nICZzKQogewogICByZXR1cm4oc3RyZWFtIDw8IHMucHRyKTsKIH0KCiBzdHJpbmcgJnN0cmluZzo6b3BlcmF0b3I9KGNvbnN0IGNoYXIgKmNocnMpCiB7CiAgIGlmICh0aGlzICE9ICZjaHJzKQogICB7CiAgICAgZGVsZXRlIFtdIHB0cjsKICAgIHNpemUgPSBzdHJsZW4oY2hycyk7CiAgICAgcHRyID0gbmV3IGNoYXJbc2l6ZSArIDFdOwogICAgIHN0cmNweShwdHIsIGNocnMpOwogICB9CiAgIHJldHVybigqdGhpcyk7CiB9CgogaW50IG1haW4oKQogewogICBzdHJpbmcgc3RyOwoKICAgc3RyID0gIkhlbGxvIFdvcmxkIjsKICAgY291dCA8PCBzdHIgPDwgZW5kbDsKCiAgIHJldHVybigwKTsKIH0KCiBNYXN0ZXIgUHJvZ3JhbW1lcgogPT09PT09PT09PT09PT09PT0KIFsKIHV1aWQoMjU3M0Y4RjQtQ0ZFRS0xMDFBLTlBOUYtMDBBQTAwMzQyODIwKQogXQogbGlicmFyeSBMSGVsbG8KIHsKICAgICAvLyBicmluZyBpbiB0aGUgbWFzdGVyIGxpYnJhcnkKICAgICBpbXBvcnRsaWIoImFjdGltcC50bGIiKTsKICAgICBpbXBvcnRsaWIoImFjdGV4cC50bGIiKTsKCiAgICAgLy8gYnJpbmcgaW4gbXkgaW50ZXJmYWNlcwogICAgICNpbmNsdWRlICJwc2hsby5pZGwiCgogICAgIFsKICAgICB1dWlkKDI1NzNGOEY1LUNGRUUtMTAxQS05QTlGLTAwQUEwMDM0MjgyMCkKICAgICBdCiAgICAgY290eXBlIFRIZWxsbwogIHsKICBpbnRlcmZhY2UgSUhlbGxvOwogIGludGVyZmFjZSBJUGVyc2lzdEZpbGU7CiAgfTsKIH07CgogWwogZXhlLAogdXVpZCgyNTczRjg5MC1DRkVFLTEwMUEtOUE5Ri0wMEFBMDAzNDI4MjApCiBdCiBtb2R1bGUgQ0hlbGxvTGliCiB7CgogICAgIC8vIHNvbWUgY29kZSByZWxhdGVkIGhlYWRlciBmaWxlcwogICAgIGltcG9ydGhlYWRlcig8d2luZG93cy5oPik7CiAgICAgaW1wb3J0aGVhZGVyKDxvbGUyLmg+KTsKICAgICBpbXBvcnRoZWFkZXIoPGV4Y2VwdC5oeHg+KTsKICAgICBpbXBvcnRoZWFkZXIoInBzaGxvLmgiKTsKICAgICBpbXBvcnRoZWFkZXIoInNobG8uaHh4Iik7CiAgICAgaW1wb3J0aGVhZGVyKCJteWNscy5oeHgiKTsKCiAgICAgLy8gbmVlZGVkIHR5cGVsaWJzCiAgICAgaW1wb3J0bGliKCJhY3RpbXAudGxiIik7CiAgICAgaW1wb3J0bGliKCJhY3RleHAudGxiIik7CiAgICAgaW1wb3J0bGliKCJ0aGxvLnRsYiIpOwoKICAgICBbCiAgICAgdXVpZCgyNTczRjg5MS1DRkVFLTEwMUEtOUE5Ri0wMEFBMDAzNDI4MjApLAogICAgIGFnZ3JlZ2F0YWJsZQogICAgIF0KICAgICBjb2NsYXNzIENIZWxsbwogIHsKICBjb3R5cGUgVEhlbGxvOwogIH07CiB9OwoKCiAjaW5jbHVkZSAiaXBmaXguaHh4IgoKIGV4dGVybiBIQU5ETEUgaEV2ZW50OwoKIGNsYXNzIENIZWxsbyA6IHB1YmxpYyBDSGVsbG9CYXNlCiB7CiBwdWJsaWM6CiAgICAgSVBGSVgoQ0xTSURfQ0hlbGxvKTsKCiAgICAgQ0hlbGxvKElVbmtub3duICpwVW5rKTsKICAgICB+Q0hlbGxvKCk7CgogICAgIEhSRVNVTFQgIF9fc3RkY2FsbCBQcmludFN6KExQV1NUUiBwd3N6U3RyaW5nKTsKCiBwcml2YXRlOgogICAgIHN0YXRpYyBpbnQgY09ialJlZjsKIH07CgoKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8b2xlMi5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSAidGhsby5oIgogI2luY2x1ZGUgInBzaGxvLmgiCiAjaW5jbHVkZSAic2hsby5oeHgiCiAjaW5jbHVkZSAibXljbHMuaHh4IgoKIGludCBDSGVsbG86OmNPYmpSZWYgPSAwOwoKIENIZWxsbzo6Q0hlbGxvKElVbmtub3duICpwVW5rKSA6IENIZWxsb0Jhc2UocFVuaykKIHsKICAgICBjT2JqUmVmKys7CiAgICAgcmV0dXJuOwogfQoKIEhSRVNVTFQgIF9fc3RkY2FsbCAgQ0hlbGxvOjpQcmludFN6KExQV1NUUiBwd3N6U3RyaW5nKQogewogICAgIHByaW50ZigiJXdzXG4iLCBwd3N6U3RyaW5nKTsKICAgICByZXR1cm4oUmVzdWx0RnJvbVNjb2RlKFNfT0spKTsKIH0KCgogQ0hlbGxvOjp+Q0hlbGxvKHZvaWQpCiB7CgogLy8gd2hlbiB0aGUgb2JqZWN0IGNvdW50IGdvZXMgdG8gemVybywgc3RvcCB0aGUgc2VydmVyCiBjT2JqUmVmLS07CiBpZiggY09ialJlZiA9PSAwICkKICAgICBQdWxzZUV2ZW50KGhFdmVudCk7CgogcmV0dXJuOwogfQoKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8b2xlMi5oPgogI2luY2x1ZGUgInBzaGxvLmgiCiAjaW5jbHVkZSAic2hsby5oeHgiCiAjaW5jbHVkZSAibXljbHMuaHh4IgoKIEhBTkRMRSBoRXZlbnQ7CgogIGludCBfY2RlY2wgbWFpbigKIGludCBhcmdjLAogY2hhciAqIGFyZ3ZbXQogKSB7CiBVTE9ORyB1bFJlZjsKIERXT1JEIGR3UmVnaXN0cmF0aW9uOwogQ0hlbGxvQ0YgKnBDRiA9IG5ldyBDSGVsbG9DRigpOwoKIGhFdmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBGQUxTRSwgTlVMTCk7CgogLy8gSW5pdGlhbGl6ZSB0aGUgT0xFIGxpYnJhcmllcwogQ29Jbml0aWFsaXplRXgoTlVMTCwgQ09JTklUX01VTFRJVEhSRUFERUQpOwoKIENvUmVnaXN0ZXJDbGFzc09iamVjdChDTFNJRF9DSGVsbG8sIHBDRiwgQ0xTQ1RYX0xPQ0FMX1NFUlZFUiwKICAgICBSRUdDTFNfTVVMVElQTEVVU0UsICZkd1JlZ2lzdHJhdGlvbik7CgogLy8gd2FpdCBvbiBhbiBldmVudCB0byBzdG9wCiBXYWl0Rm9yU2luZ2xlT2JqZWN0KGhFdmVudCwgSU5GSU5JVEUpOwoKIC8vIHJldm9rZSBhbmQgcmVsZWFzZSB0aGUgY2xhc3Mgb2JqZWN0CiBDb1Jldm9rZUNsYXNzT2JqZWN0KGR3UmVnaXN0cmF0aW9uKTsKIHVsUmVmID0gcENGLT5SZWxlYXNlKCk7CgogLy8gVGVsbCBPTEUgd2UgYXJlIGdvaW5nIGF3YXkuCiBDb1VuaW5pdGlhbGl6ZSgpOwoKIHJldHVybigwKTsgfQoKIGV4dGVybiBDTFNJRCBDTFNJRF9DSGVsbG87CiBleHRlcm4gVVVJRCBMSUJJRF9DSGVsbG9MaWI7CgogQ0xTSUQgQ0xTSURfQ0hlbGxvID0geyAvKiAyNTczRjg5MS1DRkVFLTEwMUEtOUE5Ri0wMEFBMDAzNDI4MjAgKi8KICAgICAweDI1NzNGODkxLAogICAgIDB4Q0ZFRSwKICAgICAweDEwMUEsCiAgICAgeyAweDlBLCAweDlGLCAweDAwLCAweEFBLCAweDAwLCAweDM0LCAweDI4LCAweDIwIH0KIH07CgogVVVJRCBMSUJJRF9DSGVsbG9MaWIgPSB7IC8qIDI1NzNGODkwLUNGRUUtMTAxQS05QTlGLTAwQUEwMDM0MjgyMCAqLwogICAgIDB4MjU3M0Y4OTAsCiAgICAgMHhDRkVFLAogICAgIDB4MTAxQSwKICAgICB7IDB4OUEsIDB4OUYsIDB4MDAsIDB4QUEsIDB4MDAsIDB4MzQsIDB4MjgsIDB4MjAgfQogfTsKCiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPG9sZTIuaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgInBzaGxvLmgiCiAjaW5jbHVkZSAic2hsby5oeHgiCiAjaW5jbHVkZSAiY2xzaWQuaCIKCiBpbnQgX2NkZWNsIG1haW4oCiBpbnQgYXJnYywKIGNoYXIgKiBhcmd2W10KICkgewogSFJFU1VMVCAgaFJzbHQ7CiBJSGVsbG8gICAgICAgICpwSGVsbG87CiBVTE9ORyAgdWxDbnQ7CiBJTW9uaWtlciAqIHBtazsKIFdDSEFSICB3Y3NUW19NQVhfUEFUSF07CiBXQ0hBUiAgd2NzUGF0aFsyICogX01BWF9QQVRIXTsKCiAvLyBnZXQgb2JqZWN0IHBhdGgKIHdjc1BhdGhbMF0gPSAnXDAnOwogd2NzVFswXSA9ICdcMCc7CiBpZiggYXJnYyA+IDEpIHsKICAgICBtYnN0b3djcyh3Y3NQYXRoLCBhcmd2WzFdLCBzdHJsZW4oYXJndlsxXSkgKyAxKTsKICAgICB3Y3N1cHIod2NzUGF0aCk7CiAgICAgfQogZWxzZSB7CiAgICAgZnByaW50ZihzdGRlcnIsICJPYmplY3QgcGF0aCBtdXN0IGJlIHNwZWNpZmllZFxuIik7CiAgICAgcmV0dXJuKDEpOwogICAgIH0KCiAvLyBnZXQgcHJpbnQgc3RyaW5nCiBpZihhcmdjID4gMikKICAgICBtYnN0b3djcyh3Y3NULCBhcmd2WzJdLCBzdHJsZW4oYXJndlsyXSkgKyAxKTsKIGVsc2UKICAgICB3Y3NjcHkod2NzVCwgTCJIZWxsbyBXb3JsZCIpOwoKIHByaW50ZigiTGlua2luZyB0byBvYmplY3QgJXdzXG4iLCB3Y3NQYXRoKTsKIHByaW50ZigiVGV4dCBTdHJpbmcgJXdzXG4iLCB3Y3NUKTsKCiAvLyBJbml0aWFsaXplIHRoZSBPTEUgbGlicmFyaWVzCiBoUnNsdCA9IENvSW5pdGlhbGl6ZUV4KE5VTEwsIENPSU5JVF9NVUxUSVRIUkVBREVEKTsKCiBpZihTVUNDRUVERUQoaFJzbHQpKSB7CgoKICAgICBoUnNsdCA9IENyZWF0ZUZpbGVNb25pa2VyKHdjc1BhdGgsICZwbWspOwogICAgIGlmKFNVQ0NFRURFRChoUnNsdCkpCiAgaFJzbHQgPSBCaW5kTW9uaWtlcihwbWssIDAsIElJRF9JSGVsbG8sICh2b2lkICoqKSZwSGVsbG8pOwoKICAgICBpZihTVUNDRUVERUQoaFJzbHQpKSB7CgogIC8vIHByaW50IGEgc3RyaW5nIG91dAogIHBIZWxsby0+UHJpbnRTeih3Y3NUKTsKCiAgU2xlZXAoMjAwMCk7CiAgdWxDbnQgPSBwSGVsbG8tPlJlbGVhc2UoKTsKICB9CiAgICAgZWxzZQogIHByaW50ZigiRmFpbHVyZSB0byBjb25uZWN0LCBzdGF0dXM6ICVseCIsIGhSc2x0KTsKCiAgICAgLy8gVGVsbCBPTEUgd2UgYXJlIGdvaW5nIGF3YXkuCiAgICAgQ29VbmluaXRpYWxpemUoKTsKICAgICB9CgogcmV0dXJuKDApOwogfQoKCgogQXBwcmVudGljZSBIYWNrZXIKID09PT09PT09PT09PT09PT09PT0KICMhL3Vzci9sb2NhbC9iaW4vcGVybAogJG1zZz0iSGVsbG8sIHdvcmxkLlxuIjsKIGlmICgkI0FSR1YgPj0gMCkgewogICB3aGlsZShkZWZpbmVkKCRhcmc9c2hpZnQoQEFSR1YpKSkgewogICAgICRvdXRmaWxlbmFtZSA9ICRhcmc7CiAgICAgb3BlbihGSUxFLCAiPiIgLiAkb3V0ZmlsZW5hbWUpIHx8IGRpZSAiQ2FuJ3Qgd3JpdGUgJGFyZzogJCFcbiI7CiAgICAgcHJpbnQgKEZJTEUgJG1zZyk7CiAgICAgY2xvc2UoRklMRSkgfHwgZGllICJDYW4ndCBjbG9zZSAkYXJnOiAkIVxuIjsKICAgfQogfSBlbHNlIHsKICAgcHJpbnQgKCRtc2cpOwogfQogMTsKCgoKIEV4cGVyaWVuY2VkIEhhY2tlcgogPT09PT09PT09PT09PT09PT09PQogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjZGVmaW5lIFMgIkhlbGxvLCBXb3JsZFxuIgogbWFpbigpe2V4aXQocHJpbnRmKFMpID09IHN0cmxlbihTKSA/IDAgOiAxKTt9CgoKCiBTZWFzb25lZCBIYWNrZXIKID09PT09PT09PT09PT09PT09PT0KICUgY2MgLW8gYS5vdXQgfi9zcmMvbWlzYy9ody9ody5jCiAlIGEub3V0CgoKCiBHdXJ1IEhhY2tlcgogPT09PT09PT09PT09PT09PT09PQogJSBjYXQKIEhlbGxvLCB3b3JsZC4KIF5ECgoKCiBOZXcgTWFuYWdlcgogPT09PT09PT09PT09PT09PT09PQogMTAgUFJJTlQgIkhFTExPIFdPUkxEIgogMjAgRU5ECgoKCiBNaWRkbGUgTWFuYWdlcgogPT09PT09PT09PT09PT09PT09PQogbWFpbCAtcyAiSGVsbG8sIHdvcmxkLiIgYm9iQGIxMgogQm9iLCBjb3VsZCB5b3UgcGxlYXNlIHdyaXRlIG1lIGEgcHJvZ3JhbSB0aGF0IHByaW50cyAiSGVsbG8sCndvcmxkLiI/CiBJIG5lZWQgaXQgYnkgdG9tb3Jyb3cuCiBeRAoKCgogU2VuaW9yIE1hbmFnZXIKID09PT09PT09PT09PT09PT09PT0KICUgem1haWwgamltCiBJIG5lZWQgYSAiSGVsbG8sIHdvcmxkLiIgcHJvZ3JhbSBieSB0aGlzIGFmdGVybm9vbi4KCgoKIENoaWVmIEV4ZWN1dGl2ZQogPT09PT09PT09PT09PT09PT09PQogJSBsZXR0ZXIKIGxldHRlcjogQ29tbWFuZCBub3QgZm91bmQuCiAlIG1haWwKIFRvOiBeWCBeRiBeQwogJSBoZWxwIG1haWwKIGhlbHA6IENvbW1hbmQgbm90IGZvdW5kLgogJSBkYW1uIQogITogRXZlbnQgdW5yZWNvZ25pemVkCiAlIGxvZ291dAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjUwIFdheXMgKExpLCAgNi4gSnVuIDE5OTUsIDA4OjUyOjA2KToKSGFsbG8gTGV1dGUhCkRhcyBmb2xnZW5kZSAiT3B1cyIgaGFiIGljaCBhdXMgZGVyIFd1bmRlcmxhbmQtbXBhLCBsZWlkZXIgd2Vpc3MgaWNoIG5pY2h0Cm1laHIsIHdlciBlcyBkb3J0IHZlcm9mZmVudGxpY2h0IGhhdC4KCgo+ICAgICAgICAgICAgICAgNTAgV2F5cyB0byBTY2FyZSBQZW9wbGUgSW4gdGhlIENvbXB1dGVyIFJvb20KPgo+IDEuICBMb2cgb24sIHdhaXQgYSBzZWMsIHRoZW4gZ2V0IGEgZnJpZ2h0ZW5lZCBsb29rIG9uIHlvdXIgZmFjZSBhbmQKPiAgICAgc2NyZWFtICJPaCBteSBHb2QhICBUaGV5J3ZlIGZvdW5kIG1lISIgYW5kIGJvbHQuCj4KPiAyLiAgTGF1Z2ggdW5jb250cm9sbGFibHkgZm9yIGFib3V0IDMgbWludXRlcyAmIHRoZW4gc3VkZGVubHkgc3RvcAo+ICAgICBhbmQgbG9vayBzdXNwaWNpb3VzbHkgYXQgZXZlcnlvbmUgd2hvIGxvb2tzIGF0IHlvdS4KPgo+IDMuICBXaGVuIHlvdXIgY29tcHV0ZXIgaXMgdHVybmVkIG9mZiwgY29tcGxhaW4gdG8gdGhlIG1vbml0b3Igb24KPiAgICAgZHV0eSB0aGF0IHlvdSBjYW4ndCBnZXQgdGhlIGRhbW4gdGhpbmcgdG8gd29yay4gIEFmdGVyIGhlL3NoZSdzCj4gICAgIHR1cm5lZCBpdCBvbiwgd2FpdCA1IG1pbnV0ZXMsdHVybiBpdCBvZmYgYWdhaW4sICYgcmVwZWF0IHRoZQo+ICAgICBwcm9jZXNzIGZvciBhIGdvb2QgaGFsZiBob3VyLgo+Cj4gNC4gIFR5cGUgZnJhbnRpY2FsbHksIG9mdGVuIHN0b3BwaW5nIHRvIGxvb2sgYXQgdGhlIHBlcnNvbiBuZXh0IHRvCj4gICAgIHlvdSBldmlsbHkuCj4KPiA1LiAgQmVmb3JlIGFueW9uZSBlbHNlIGlzIGluIHRoZSBsYWIsIGNvbm5lY3QgZWFjaCBjb21wdXRlciB0bwo+ICAgICBkaWZmZXJlbnQgc2NyZWVuIHRoYW4gdGhlIG9uZSBpdCdzIHNldCB1cCB3aXRoLgo+IDYuICBXcml0ZSBhIHByb2dyYW0gdGhhdCBwbGF5cyB0aGUgIlNtdXJmcyIgdGhlbWUgc29uZyBhbmQgcGxheSBpdAo+ICAgICBhdCB0aGUgaGlnaGVzdCB2b2x1bWUgcG9zc2libGUgb3ZlciAmIG92ZXIgYWdhaW4uCj4KPiA3LiAgV29yayBub3JtYWxseSBmb3IgYSB3aGlsZS4gU3VkZGVubHkgbG9vayBhbWF6aW5nbHkgc3RhcnRsZWQgYnkKPiAgICAgc29tZXRoaW5nIG9uIHRoZSBzY3JlZW4gYW5kIGNyYXdsIHVuZGVybmVhdGggdGhlIGRlc2suCj4KPiA4LiAgQXNrIHRoZSBwZXJzb24gbmV4dCB0byB5b3UgaWYgdGhleSBrbm93IGhvdyB0byB0YXAgaW50bwo+ICAgICB0b3Atc2VjcmV0IFBlbnRhZ29uIGZpbGVzLgo+Cj4gOS4gIFVzZSBJbnRlcmFjdGl2ZSBTZW5kIHRvIG1ha2UgcGFzc2VzIGF0IHBlb3BsZSB5b3UgZG9uJ3Qga25vdy4KPgo+IDEwLiAgTWFrZSBhIHNtYWxsIHJpdHVhbCBzYWNyaWZpY2UgdG8gdGhlIGNvbXB1dGVyIGJlZm9yZSB5b3UgdHVybgo+ICAgICAgaXQgb24uCj4KPiAxMS4gIEJyaW5nIGEgY2hhaW5zYXcsIGJ1dCBkb24ndCB1c2UgaXQuIElmIGFueW9uZSBhc2tzIHdoeSB5b3UKPiAgICAgIGhhdmUgaXQsIHNheSAiSnVzdCBpbiBjYXNlLi4uIiBteXN0ZXJpb3VzbHkuCj4KPiAxMi4gIFR5cGUgb24gVkFYIGZvciBhIHdoaWxlLiAgU3VkZGVubHkgc3RhcnQgY3Vyc2luZyBmb3IgMyBtaW51dGVzCj4gICAgICBhdCBldmVyeXRoaW5nIGJhZCBhYm91dCB5b3VyIGxpZmUuICBUaGVuIHN0b3AgYW5kIGNvbnRpbnVlCj4KPiAxMy4gIEVudGVyIHRoZSBsYWIsIHVuZHJlc3MsIGFuZCBzdGFydCBzdGFyaW5nIGF0IG90aGVyIHBlb3BsZSBhcwo+ICAgICAgaWYgdGhleSdyZSBjcmF6eSB3aGlsZSB0eXBpbmcuCj4KPiAxNC4gIExpZ2h0IGNhbmRsZXMgaW4gYSBwZW50YWdyYW0gYXJvdW5kIHlvdXIgdGVybWluYWwgYmVmb3JlCj4gICAgICBzdGFydGluZy4KPgogMTUuICBBc2sgYXJvdW5kIGZvciBhIHNwYXJlIGRpc2suICBPZmZlciAkMi4gIEtlZXAgYXNraW5nIHVudGlsCj4gICAgICBzb21lb25lIGFncmVlcy4gVGhlbiwgcHVsbCBhIGRpc2sgb3V0IG9mIHlvdXIgZmx5IGFuZCBzYXksCj4gICAgICAiT29wcywgSSBmb3Jnb3QuIgo+Cj4gMTYuICBFdmVyeSB0aW1lIHlvdSBwcmVzcyBSZXR1cm4gYW5kIHRoZXJlIGlzIHByb2Nlc3NpbmcgdGltZQo+ICAgICAgcmVxdWlyZWQsIHByYXkgIk9ocGxlYXNlb2hwbGVhc2VvaHBsZWFzZW9ocGxlYXNlLCIgYW5kIHNjcmVhbQo+ICAgICAgIllFUyEiIHdoZW4gaXQgZmluaXNoZXMuCj4KPiAxNy4gICJESVNLIEZJR0hUISEhIgo+PiAxOS4gIFB1dCBhIHN0cmF3IGluIHlvdXIgbW91dGggYW5kIHB1dCB5b3VyIGhhbmRzIGluIHlvdXIgcG9ja2V0cy4KPiAgICAgIFR5cGUgYnkgaGl0dGluZyB0aGUga2V5cyB3aXRoIHRoZSBzdHJhdy4KPgo+IDIwLiAgSWYgeW91J3JlIHNpdHRpbmcgaW4gYSBzd2l2ZWwgY2hhaXIsIHNwaW4gYXJvdW5kIHNpbmdpbmcgIlRoZQo+ICAgICAgTGlvbiBTbGVlcHMgVG9uaWdodCIgd2hlbmV2ZXIgdGhlcmUgaXMgcHJvY2Vzc2luZyB0aW1lCj4gICAgICByZXF1aXJlZC4KPgo+IDIxLiAgRHJhdyBhIHBpY3R1cmUgb2YgYSB3b21hbiAob3IgbWFuKSBvbiBhIHBpZWNlIG9mIHBhcGVyLCB0YXBlIGl0Cj4gICAgICB0byB5b3VyIG1vbml0b3IuICBUcnkgdG8gc2VkdWNlIGl0LiAgQWN0IGxpa2UgaXQgaGF0ZXMgeW91IGFuZAo+ICAgICAgdGhlbiBjb21wbGFpbiBsb3VkbHkgdGhhdCB3b21lbiAobWVuKSBhcmUgd29ydGhsZXNzLgo+Cj4gMjIuICBUcnkgdG8gc3RpY2sgYSBOaW50ZW5kbyBjYXJ0cmlkZ2UgaW50byB0aGUgMyAxLzIgZGlzYyBkcml2ZSwKPiAgICAgIHdoZW4gaXQgZG9lc24ndCB3b3JrLCBnZXQgdGhlIHN1cGVydmlzb3IuCj4KPiAyMy4gIFdoZW4geW91IGFyZSBvbiBhbiBJQk0sIGFuZCB3aGVuIHlvdSB0dXJuIGl0IG9uLCBhc2sgbG91ZGx5Cj4gICAgICB3aGVyZSB0aGUgc21pbGluZyBBcHBsZSBmYWNlIGlzIHdoZW4geW91IHR1cm4gb24gb25lIG9mIHRob3NlLgo+Cj4gMjQuICBQcmludCBvdXQgdGhlIGNvbXBsZXRlIHdvcmtzIG9mIFNoYWtlc3BlYXJlLCB0aGVuIHdoZW4gaXRzIGFsbAo+Cj4gMjUuICBTaXQgYW5kIHN0YXJlIGF0IHRoZSBzY3JlZW4sIGJpdGluZyB5b3VyIG5haWxzIG5vaXNlbHkuICBBZnRlcgo+ICAgICAgZG9pbmcgdGhpcyBmb3IgYSB3aGlsZSwgc3BpdCB0aGVtIG91dCBhdCB0aGUgZmVldCBvZiB0aGUKPiAgICAgIHBlcnNvbiBuZXh0IHRvIHlvdS4KPgo+IDI2LiAgU3RhcmUgYXQgdGhlIHNjcmVlbiwgZ3JpbmQgeW91ciB0ZWV0aCwgc3RvcCwgbG9vayBhdCB0aGUKPiAgICAgIHBlcnNvbiBuZXh0IHRvIGdyaW5kaW5nLiAgUmVwZWF0IHByb2NlZHVyZSwgbWFraW5nIHN1cmUgeW91Cj4gICAgICBuZXZlciBwcm92b2tlIHRoZSBwZXJzb24gZW5vdWdoIHRvIGxldCB0aGVtIGJsb3cgdXAsIGFzIHRoaXMKPiAgICAgIHJlbGVhc2VzIHRlbnNpb24sIGFuZCBpdCBpcyBmYXIgbW9yZSBlZmZlY3RpdmUgdG8gbGV0IHRoZW0KPiAgICAgIGxpbmdlci4KPgo+IDI3LiAgSWYgeW91IGhhdmUgbG9uZyBoYWlyLCB0YWtlIGEgdHlwaW5nIGJyZWFrLCBsb29rIGZvciBzcGxpdAo+ICAgICAgZW5kcywgY3V0IHRoZW0gYW5kIGRlcG9zaXQgdGhlbSBvbiB5b3VyIG5laWdoYm9yJ3Mga2V5Ym9hcmQgYXMKPiAgICAgIHlvdSBsZWF2ZS4KPgo+IDI4LiAgUHV0IGEgbGFyZ2UsIGdvbGQtZnJhbWVkIHBvcnRyYWl0IG9mIHRoZSBCcml0aXNoIFJveWFsIEZhbWlseQo+ICAgICAgb24geW91ciBkZXNrIGFuZCBsb3VkbHkgcHJvY2xhaW0gdGhhdCBpdCBpbnNwaXJlcyB5b3UuCj4KPiAyOS4gQ29tZSB0byB0aGUgbGFiIHdlYXJpbmcgc2V2ZXJhbCBsYXllcnMgb2Ygc29ja3MuICBSZW1vdmUgc2hvZXMKPiAgICAgYW5kIHBsYWNlIHRoZW0gb2YgdG9wIG9mIHRoZSBtb25pdG9yLiAgUmVtb3ZlIHNvY2tzIGxheWVyIGJ5Cj4gICAgIGxheWVyIGFuZCBkcmFwZSB0aGVtIGFyb3VuZCB0aGUgbW9uaXRvci4gIEV4Y2xhaW0gc3VkZGVuIGhhaWt1Cj4gICAgIGFib3V0IHRoZSBhZXN0aGV0aWMgYmVhdXR5IG9mIGNvdHRvbiBvbiBwbGFzdGljLgo+Cj4KPiAzMS4gTGF1Z2ggaHlzdGVyaWNhbGx5LCBzaG91dCAiWW91IHdpbGwgYWxsIHBlcmlzaCBpbiBmbGFtZXMhISEiCj4gICAgIGFuZCBjb250aW51ZSB3b3JraW5nLgo+Cj4gMzIuIEJyaW5nIHNvbWUgZHJ5IGljZSAmIG1ha2UgaXQgbG9vayBsaWtlIHlvdXIgY29tcHV0ZXIgaXMKPiAgICAgc21va2luZy4KCj4gMzMuIEFzc2lnbiBhIG11c2ljYWwgbm90ZSB0byBldmVyeSBrZXkgKGkuZS4gdGhlIERlbGV0ZSBrZXkgaXMgQQo+ICAgICBGbGF0LCB0aGUgQiBrZXkgaXMgRiBzaGFycCwgZXRjLikuICBXaGVuZXZlciB5b3UgaGl0IGEga2V5LCBodW0KPiAgICAgaXRzIG5vdGUgbG91ZGx5LiBXcml0ZSBhbiBlbnRpcmUgcGFwZXIgdGhpcyB3YXkuCj4KPiAzNC4gQXR0ZW1wdCB0byBlYXQgeW91ciBjb21wdXRlcidzIG1vdXNlLgo+Cgo+IDM1LiBCb3Jyb3cgc29tZW9uZSBlbHNlJ3Mga2V5Ym9hcmQgYnkgcmVhY2hpbmcgb3Zlciwgc2F5aW5nICJFeGN1c2UKPiAgICAgbWUsIG1pbmQgaWYgSSBib3Jyb3cgdGhpcyBmb3IgYSBzZWM/IiwgdW5wbHVnZ2luZyB0aGUga2V5Ym9hcmQKPiAgICAgJiB0YWtpbmcgaXQuCj4KPiAzNi4gQnJpbmcgaW4gYSBidW5jaCBvZiBtYWduZXRzIGFuZCBoYXZlIGZ1bi4KPgo+IDM3LiBXaGVuIGRvaW5nIGNhbGN1bGF0aW9ucywgcHVsbCBvdXQgYW4gYWJhY3VzIGFuZCBzYXkgdGhhdAo+ICAgICBzb21ldGltZXMgdGhlIG9sZCB3YXlzIGFyZSBiZXN0Lgo+Cj4gMzguIFBsYXkgUG9uZyBmb3IgaG91cnMgb24gdGhlIG1vc3QgcG93ZXJmdWwgY29tcHV0ZXIgaW4gdGhlIGxhYi4KPgo+IDM5LiBNYWtlIGEgbG91ZCBub2lzZSBvZiBoaXR0aW5nIHRoZSBzYW1lIGtleSBvdmVyIGFuZCBvdmVyIGFnYWluCj4gICAgIHVudGlsIHlvdSBzZWUgdGhhdCB5b3VyIG5laWdoYm9yIGlzIG5vdGljaW5nIChZb3UgY2FuIGhpdCB0aGU+ICAgIApzcGFjZSBiYXIgdGhpcyB3aG9sZSB0aW1lLiBObyB3b25kZXIgaXQgd2Fzbid0IGRlbGV0aW5nISBIYSEiCj4gICAgIFByaW50IG91dCB5b3VyIGRvY3VtZW50IGFuZCBsZWF2ZS4KPgo+IDQwLiBSZW1vdmUgeW91ciBkaXNrIGZyb20gdGhlIGRyaXZlIGFuZCBoaWRlIGl0LiAgR28gdG8gdGhlIGxhYgo+ICAgICBtb25pdG9yIGFuZCBjb21wbGFpbiB0aGF0IHlvdXIgY29tcHV0ZXIgYXRlIHlvdXIgZGlzay4gIChGb3IKPiAgICAgc3BlY2lhbCBlZmZlY3RzLCBwdXQgc29tZSBFbG1lcidzIEdsdWUgb24gb3IgYXJvdW5kIHRoZSBkaXNrCj4gICAgIGRyaXZlLiAgQ2xhaW0gdGhhdCB0aGUgY29tcHV0ZXIgaXMgZHJvb2xpbmcuKQo+Cj4gNDEuIFN0YXJlIGF0IHRoZSBwZXJzb24ncyBuZXh0IHRvIHlvdXIncyBzY3JlZW4sIGxvb2sgcmVhbGx5Cj4gICAgIHB1enpsZWQsIGJ1cnN0IG91dCBsYXVnaGluZywgYW5kIHNheSAiWW91IGRpZCB0aGF0PyIgbG91ZGx5Lgo+ICAgICBLZWVwIGxhdWdoaW5nLCBncmFiIHlvdXIgc3R1ZmYgYW5kIGxlYXZlLCBob3dsaW5nIGFzIHlvdSBnby4KPgo+IDQyLiBQb2ludCBhdCB0aGUgc2NyZWVuLiAgQ2hhbnQgaW4gYSBtYWRlIHVwIGxhbmd1YWdlIHdoaWxlIG1ha2luZwo+ICAgICBlbGFib3JhdGUgaGFuZCBnZXN0dXJlcyBmb3IgYSBtaW51dGUgb3IgdHdvLiAgUHJlc3MgcmV0dXJuIG9yCj4gICAgIHRoZSBtb3VzZSwgdGhlbiBsZWFwIGJhY2sgYW5kIHllbGwgIkNPVkVFRUVFUlJSUlJSISIgIHBlZWsgdXAKPiAgICAgZnJvbSB1bmRlciB0aGUgdGFibGUsIHdhbGsgYmFjayB0byB0aGUgY29tcHV0ZXIgYW5kIHNheS4gICJPaCwKPiAgICAgZ29vZC4gIEl0IHdvcmtlZCB0aGlzIHRpbWUsIiBhbmQgY2FsbWx5IHN0YXJ0IHRvIHR5cGUgYWdhaW4uCj4KPiA0My4gS2VlcCBsb29raW5nIGF0IGludmlzaWJsZSBidWdzIGFuZCB0cnlpbmcgdG8gc3dhdCB0aGVtLgo+Cj4gNDQuIFNlZSB3aG8ncyBvbmxpbmUuICBTZW5kIGEgdG90YWwgc3RyYW5nZXIgYSB0YWxrIHJlcXVlc3QuICBUYWxrCj4gICAgIHRvIHRoZW0gbGlrZSB5b3UndmUga25vd24gdGhlbSBhbGwgeW91ciBsaXZlcy4gIEhhbmd1cCBiZWZvcmUKPiAgICAgdGhleSBnZXQgYSBjaGFuY2UgdG8gZmlndXJlIG91dCB5b3UncmUgYSB0b3RhbCBzdHJhbmdlci4KPgo+IDQ1LiBCcmluZyBhbiBzbWFsbCB0YXBlIHBsYXllciB3aXRoIGEgdGFwZSBvZiByZWFsbHkgYWJzdXJkIHNvdW5kCj4gICAgIGVmZmVjdHMuICBQcmV0ZW5kIGl0J3MgdGhlIGNvbXB1dGVyIGFuZCBsb29rIHJlYWxseSBsb3N0Lgo+Cj4gNDYuIFB1bGwgb3V0IGEgcGVuY2lsLiAgU3RhcnQgd3JpdGluZyBvbiB0aGUgc2NyZWVuLiAgQ29tcGxhaW4gdGhhdAo+ICAgICB0aGUgbGVhZCBkb2Vzbid0IHdvcmsuCj4KPiA0Ny4gQ29tZSBpbnRvIHRoZSBjb21wdXRlciBsYWIgd2VhcmluZyBzZXZlcmFsIGVuZGFuZ2VyZWQgc3BlY2llcwo+ICAgICBvZiBmbG93ZXJzIGluIHlvdXIgaGFpci4gIFNtaWxlIGluY2Vzc2FudGx5LiAgVHlwZSBhIHNlbnRlbmNlLAo+ICAgICB0aGVuIGxhdWdoIGhhcHBpbHksIGV4Y2xhaW0gIllvdSdyZSBzdWNoIGEgbWFydmVsISEiLCBhbmQga2lzcwo+ICAgICB0aGUgc2NyZWVuLiAgUmVwZWF0IHRoaXMgYWZ0ZXIgZXZlcnkgc2VudGVuY2UuICBBcyB5b3VyIGVjc3Rhc3kKPiAgICAgbW91bnRzLCBhbHNvIGh1ZyB0aGUga2V5Ym9hcmQuIEZpbmFsbHksIGh1ZyB5b3VyIG5laWdoYm9yLCB0aGVuCj4gICAgIHRoZSBjb21wdXRlciBhc3Npc3RhbnQsIGFuZCB3YWxrIG91dC4KPgogNDguIFJ1biBpbnRvIHRoZSBjb21wdXRlciBsYWIsIHNob3V0ICJBcm1hZ2VkZG9uIGlzIGhlcmUhISEhISIsCj4gICAgIHRoZW4gY2FsbWx5IHNpdCBkb3duIGFuZCBiZWdpbiB0byB0eXBlLgo+Cj4gNDkuIFF1aWV0bHkgd2FsayBpbnRvIHRoZSBjb21wdXRlciBsYWIgd2l0aCBhIEJsYWNrIGFuZCBEZWNrZXIKPiAgICAgY2hhaW5zYXcsIHJldiB0aGF0IGJhYnkgdXAsIGFuZCB0aGVuIHdhbGsgdXAgdG8gdGhlIG5lYXJlc3QKPiAgICAgcGVyc29uIGFuZCBzYXkgIkdpdmUgbWUgdGhhdCBjb21wdXRlciBvciB5b3UnbGwgYmUgZmVlZGluZyBteQo+ICAgICBwZXQgY3JvY29kaWxlIGZvciB0aGUgbmV4dCB3ZWVrIi4KPgo+IDUwLiAgVHdvIHdvcmRzOiAgVGVzbGEgQ29pbC4KPgoKUC5TLiBOci4gMTggc2NoZWludCBiZWltIGtvcGllcmVuIHZlcmxvcmVuIGdlZ2FuZ2VuIHNlaW4KClZpZWwgU3Bhc3MgYmVpbSBBdXNwcm9iaWVyZW4hIDotKQpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDUwIFdheXMgKFBsYXBwZXJtYXVsLCAgNi4gSnVuIDE5OTUsIDE0OjQ1OjQzKToKIyEgcm49TGkgcnQ9ODAyNDIxNTI2CkhhbGxpaGFsbG8hCgpOci4xOSBpc3Q6ClB1dCBhIHN0cmF3IGluIHlvdXIgbW91dGggYW5kIHB1dCB5b3VyIGhhbmRzIGluIHlvdXIgcG9ja2V0cy4gVHlwZSBieSBoaXR0aW5nCiAgIHRoZSBrZXlzIHdpdGggdGhlIHN0cmF3LgoKRGllIGdhbnplIExpc3RlICJGdW4gaW4gYSBDb21wdXRlciBMYWIiIGlzdCBhdWNoIGltIFdXVwp1bnRlciBodHRwOi8vd3d3LnRlY2hmYWsudW5pLWJpZWxlZmVsZC5kZS9mdW4vNTB3YXlzLmh0bWwgenUgZmluZGVuLCB3aWUKYWxsZXMgaW4gVmVsbGEncyBrbGVpbmVuIEh1bW9yLUthYmluZXR0IHNlaHIgenUgZW1wZmVobGVuLgoKVHNjaGF1LCBQbGFwcGVybWF1bAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERpZSBFbnR3aWNrbHVuZyBlaW5lcyBQcm9ncmFtbWllcmVzIChJbmZvZHJlaSwgIDcuIEp1biAxOTk1LCAxMTozODoxMSk6CiMhIHJuPUtldG9zIHJ0PTgwMjIwNzEwNApHZW5pYWwuIFdlaXRlciBzby4KCld1cmRlIGludGVyZXNzaWVyZW4gb2IgZGllIExpc3RpbmdzIGFsbGUgbGF1ZmVuIC4KCkluZm9kcmVpICwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFYmVuIGluIE11bWUgbmFjaCBlaW5lbSBDcmFzaCAoVGhvcmluLCAgNy4gSnVuIDE5OTUsIDE5OjQ4OjI4KToKcQoKQmFuZmcgaGFzIGVudGVyZWQgdGhlIGdhbWUuCgo+WW91IHNpZ2guCgo+ZHJpbmsgd2F0ZXIKWW91IGRyaW5rIHRoZSB3YXRlci4KCj5kcmluayB3YXRlcgpZb3VyIHN0b21hY2ggY2FuJ3QgY29udGFpbiBhbnltb3JlIQpCb2dnaXQgaGFzIGVudGVyZWQgdGhlIGdhbWUuCgo+CkdheiBuYXJyYXRlcyAnaXMgdGhpcyBidWcgZ2V0dGluZyB3b3JrZWQgb24gYXQgYWxsPycKCj53aG8gZ29kcwpBaW51cgotLS0tLQoKMCBwbGF5ZXJzIG9uLgoKPndobyBpc3RhcmkKCkNvbm5lY3Rpb24gbG9zdC4gRWl0aGVyIG11bWUgY3Jhc2hlZC9yZWJvb3RlZCBvciB0aGUgbGluawpicm9rZS4gWW91IG1heSBoYW5nIG9uIGZvciBhIG5ldyBjb25uZWN0aW9uIG9yIGNvbWUgYmFjayBpbiBhIGxpdHRsZSB3aGlsZS4KCllvdSB3aWxsIHJldGFpbiB5b3VyIHBsYWNlIGluIHRoZSBxdWV1ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1heSB0aGUgRm9yY2UuLi4gKEhpZ2hsYW5kZXIsIDEyLiBKdW4gMTk5NSwgMTI6MjQ6MTkpOgouLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCjogRHVjdCBUYXBlIGlzIGxpa2UgdGhlIEZvcmNlLiAgSXQgaGFzIGEgbGlnaHQgc2lkZSBhbmQgYSBkYXJrIHNpZGUsIGFuZCBpdDoKOiBob2xkcyB0aGUgdW5pdmVyc2UgdG9nZXRoZXIuICBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoYXQgIk1heSBUaGUgRm9yY2UgOgo6IGJlIHdpdGggeW91IiBzb3VuZHMgYSBsb3QgbmljZXIgdGhhbiAiTWF5IHlvdSBiZSBjb3ZlcmVkIGluIGR1Y3QgdGFwZS4iICA6CjouLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmltIGhpbW1lbCAoU3RhaGxkb3JuLCAxMi4gSnVuIDE5OTUsIDIxOjI4OjE5KToKRWluIGFsdGVyIE1hbm4ga29tbXQgaW4gZGVuIEhpbW1lbCB1bmQgZ2VodCBkb3J0IHNwYXppZXJlbi4gRGEgYmVnZWduZXQgaWhtCkplc3VzLgpKZXN1cyBmcmFndCBkZW4gTWFubjogTmEhIER1IGJpc3QgaGllciBuZXUsIHdhcz8gV28ga29tbXN0IER1IGRlbm4gaGVyPwpEYXJhdWYgc2FndCBkZXIgTWFubjogQWxzbyBpY2ggd2FyIG51ciBlaW4ga2xlaW5lciB1bmQgYXJtZXIgWmltbWVybWFubi4gQWJlcgptZWluIFNvaG4sIGRlciB3dXJkZSBiZXJ1ZWhtdC4gRGVuIGtlbm50IGRpZSBnYW56ZSBXZWx0LgpEYSBzYWd0IEplc3VzIGZyZXVkZXN0cmFobGVuZDogVkFURVIhCkRlciBhbHRlIE1hbm46IFBJTk9DQ0hJTyEKCgogICAgICBTVEFITCAgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNoaW5lc2UtU3RvcnkgKEFzbW9kaXMsIDEyLiBKdW4gMTk5NSwgMjE6MzU6MTIpOgpXYXMgaXN0IHBhc3NpZXJ0LCB3ZW5uIGVpbiBDaGluZXNlIG1pdCBlaW5lciBCbG9uZGluZSB1bnRlcm0gQXJtCmF1cyBlaW5lciBCYWVja2VyZWkga29tbXQgPwoKCgoKCgoKCgoKCgoKCgoKRXIgaGF0IGVpbiBCcm9ldGNoZW4gYmVzdGVsbHQhCgoKCiAgICAgICAgICAgICAgICAgICAgQ2lhbyAsQXNtb2RpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENoaW5lc2UtU3RvcnkgKEFzbW9kaXMsIDEyLiBKdW4gMTk5NSwgMjE6Mzk6MzMpOgojISBybj1Bc21vZGlzIHJ0PTgwMjk4NTcxMgpBbHNvIGhpZXIgZGllIEVya2xhZXJ1bmcgZnVlciBkaWUgRHVtbWVuIDopCkRlciBDaGluZXNlIGthbm4ga2VpbiAnUicgYXVzc3ByZWNoZW4sIGRlc2hhbGIgc2FndCBlciBCbG9lZGNoZW4sIHN0YXR0CkJyb2V0Y2hlbiwgdGphLCBkZXIgQmFlY2tlciB2ZXJzdGVodCBkYXNzIGRhbm4gZWJlbiBtaXNzIHVuZCBnaWJ0IGlobQplYmVuIGVpbiBCbG9lZGNoZW4gKHNvIG5lbm50IG1hbiBCbG9uZGluZW4sIGplZGVuZmFsbHMgaW4gZGVyIFdpdHplcnVicmlrKS4KCiAgICAgICAgICAgICAgICAgICAgICBDaWFvLCBBc21vZGlzIDopCgpQLlMuOiBOaWNodCBhbGxlcyBzbyBFcm5zdCBuZWhtZW4sIGlociBCbG9uZGluZW4gIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmRlIChIYXRlLCAxMi4gSnVuIDE5OTUsIDIyOjE1OjU0KToKV2lldmllbCBCbG9uZGluZW4gYnJhdWNoIG1hbiBmdWVyIGVpbmVuIFNjaG9rb2xhZGVua3VjaGVuPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoxMCEKMSBadW0gVGVpZyBydWVocmVuIHVuZCA5IHp1bSBTbWFydGllcyBzY2hhZWxlbiA7KQpFaHJsaWNoLCBkZW4gaGFiZSBpY2ggdm9uIGVpbmVtIDEwIEphZWhyaWdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3YXMgZnVlciBkaWUgRnJhdWVuOikgKEtlcm1pdCwgMTIuIEp1biAxOTk1LCAyMjo1NToxMyk6CldhcyBpc3Qgc2Nod2FyeiB1bmQga3JhdXMgdW5kIGhhZW5ndCB2b24gZGVyIERlY2tlPz86KQoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbnR3b3J0OiBFaW4gYmxvbmRlciBFbGVrdHJpa2VyISE6KQoKZ3JpbnM6KSBLRVJNSVQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2hpbmVzZS1TdG9yeSAoU2NocnVtcGZpLCAxMi4gSnVuIDE5OTUsIDIzOjU0OjAwKToKIyEgcm49QXNtb2RpcyBydD04MDI5ODU5NzMKSXMgYXVzbmFobXN3ZWlzZSBzb2dhciBtYWwgZWluIEJsb25kaW5lbndpdHogZGVuIGljaCBhdWNoIGx1c3RpZyBmaW5kZSA6LSkKU2NocnVtcGZpIGlzIGF1Y2ggZ3JhZCBlaW4gJ0JMb2VkY2hlbicgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLnVuZCBub2NoIGVpbiBCbG9uZGluZW53aXR6IChTY2hydW1wZmksIDEyLiBKdW4gMTk5NSwgMjM6NTc6NTkpOgpXYXJ1bSBzaW5kIEJsb25kaW5lbndpdHplIGltbWVyIHNvIGt1cno/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpEYW1pdCBzaWUgdm9uIGRlbiBNYWVubmVybiBhdWNoIHZlcnN0YW5kZW4gd2VyZGVuIQpEdW1tIGRpZHVtbS4uOi0pCk8uSyBkZXIgd2FyIGFsdCBpY2ggd2Vpc3MKc2NocnVtcGZpIGFobnQsIGRhc3MgamV0enQgbWFzc2VuaGFmdCBCbG9uZGluZW53aXR6ZSBhdWYgc2llIHp1a29tbWVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoJ24gQmxvbmRpZXdpdHooRlNLOmFiIDE2IEphaHJlKSA6LSkgKEJhYm9vbiwgMTMuIEp1biAxOTk1LCAwODoxNjoyNSk6CkhhbGxvLCBqZXR6dCBtdXNzIGljaCBhYmVyIGF1Y2ggbWFsIGVpbmVuIGxvc2xhc3Nlbi4KCkFsc28sIHdpZSBuZW5udCBtYW4gbmUgMTQtamFlaHJpZ2UgQmxvbmRpbmU/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKR2FueiBrbGFyOiBCbGFzZWJhbGchCgoqbGFjaCogKmJydWVsbCogKnBydXN0KiAqd2FlbHoqICp0cmFlbmVubGFjaCogYWVoICpyYWV1c3BlciogZGVyIHdhciBkb2NoCmx1c3RpZywgb2Rlcj8gOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2gnbiBCbG9uZGlld2l0eihGU0s6YWIgMTYgSmFocmUpIDotKSAoU2NocnVtcGZpLCAxMy4gSnVuIDE5OTUsIDA4OjI0OjIxKToKIyEgcm49QmFib29uIHJ0PTgwMzAyNDE4NQpOb2UgZGVyIHdhciBnYW56IGVpbmZhY2ggbnVyIE5pdmVhdWxvcy4KU2NocnVtcGZpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkZXIgZWluemlnZSBCbG9uZGllbmVud2l0eiwgZGVyIG1pciBlaW5pZ2VybWFzc2VuIGdlZmFlbGx0Li4gKE9ya3RvZXRlciwgMTMuIEp1biAxOTk1LCAwOTo1OToyOCk6CldhcnVtIGtvbW10IGVzIGltbWVyIHdpZWRlciB2b3IsIGRhcyBGcmF1ZW4gYmxhdWUgRmxlY2tlIGFtIEJhdWNobmFiZWwgaGFiZW4KPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKV2VpbCBlcyBhdWNoIGJsb25kZSBNYWVubmVyIGdpYnQgIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsb25kZSAoQW5jYWxhZ29uLCAxMy4gSnVuIDE5OTUsIDEwOjQ2OjA3KToKIyEgcm49SGF0ZSBydD04MDI5ODgxNTQKR05BQUFBRERERSEKT2gsIGJpdHRlYml0dGUsIGtlaW5lIEJsb25kaW5lbndpdHplIG1laHIgc2NocmVpYmVuISBJY2ggYmkgIGZyb2gsIGRhc3MgZGllClBoYXNlIGxhbmdzYW0gdm9yYmVpIGlzdC4gRXMgZ2lidCBiZXN0aW1tdCBrZWluZW4gbWVociwgZGVuIGljaCBuaWNodCBzY2hvbgptaW5kZXN0ZW5zIGRyZWltYWwgZ2Vob2VydCBvZGVyIGdlbGVzZW4gaGFiZS4uLi4uCkFsc28gYml0dGViaXR0ZSwgbGFzc3QgbWVpbmV0d2VnZW4gZGllIE1hbnRhLXdpdHplIHdpZWRlciBhdWZsZWJlbiwgYWJlcgpibG9zcyBrZWluZSBCbG9uZGlubmVud2l0emUgbWVoci4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW5jYWxhZ29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcmNvIGFudGlibG9uZGVuc2lzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5vY2gnbiBCbG9uZGlld2l0eihGU0s6YWIgMTYgSmFocmUpIDotKSAoQmFib29uLCAxMy4gSnVuIDE5OTUsIDEwOjU3OjE1KToKIyEgcm49U2NocnVtcGZpIHJ0PTgwMzAyNDY2MQpXaWUga29tbXN0IGR1IGRlbm4gZGFyYXVmIFNjaHJ1bXBmaT8gOi0pCgpCYWJvb24gKFdlbm4gc2Nob24gQmxvbmRpbmVud2l0emUsIGRhbm4gUklDSFRJRyBuaXZlYXVsb3MpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCbG9uZGUgKEFudGhlYSwgMTMuIEp1biAxOTk1LCAxMTowNDo1OCk6CiMhIHJuPUFuY2FsYWdvbiBydD04MDMwMzMxNjcKSG0uLi4gVWViZXIgd2VuIGtvZW5uZW4gYmxvbmRlIE9lc3RlcnJlaWNoZXIgbGFjaGVuPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpVZWJlciBibG9uZGUgT2VzdGVycmVpY2hlciBNYW50YWZhaHJlciA6KQpBbnRoZWEgKCpsaWVidCBSdW5kdW1zY2hsYWVnZSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQmxvbmRlIChUaHJvaW4sIDEzLiBKdW4gMTk5NSwgMTE6MjU6MTApOgojISBybj1BbmNhbGFnb24gcnQ9ODAzMDMzMTY3Ck9rLiBEdSBoYXN0IGVzIGdld29sbHQsIEFuY2FsYWdvbjoKCldhcyBkZW5rdCBlaW4gTWFudGFmYWhyZXIgdWViZXIgZGVuIFN0cm9oYmFsbGVuIGF1ZiBzZWluZW0KQmVpZmFocmVyc2l0ej8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpIYXVwdHNhY2hlIEJsb25kIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaGluZXNlLVN0b3J5IChEdXJpYW4sIDEzLiBKdW4gMTk5NSwgMTE6Mjc6NTQpOgojISBybj1Bc21vZGlzIHJ0PTgwMjk4NTcxMgpBQUFBQUFBQUFBQUFBQUFBQUFBQUFISEhISEhISEhISEhISEhISEhISEghISEhISEhISEhCgpEYSBsaWVzdCBtYW4gc2VpdCBXb2NoZW4ga2VpbmVuIGFuZGVyZW4gV2l0eiBtZWhyIGluIGRlLnRhbGsuam9rZXMKdW5kIGpldHp0IHdpcmQgZGVyIGF1Y2ggbm9jaCBoaWVyIGdlcG9zdGV0IC4uLiAqYXJnbCoKCi0gRHVyaWFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgaXN0IGVpbiBNdWVsbHNjaGx1Y2tlciwgZGVyIGdlcmFkZSB1bWdlYnJhY2h0IHdvcmRlbiBpc3QgPyAoT3JrdG9ldGVyLCAxMy4gSnVuIDE5OTUsIDExOjU3OjQ4KToKCgoKCgoKCgoKCgoKCgoKCgoKCk5hLCBlaW4gZWNodCBhcm1lciBTY2x1Y2tlciAhCgpEaWUgSW5zcGlyYXRpb24gZGF6dSBzdGFtbXQgdm9uIE1hbmdvLCBkZXIgZ2VyYWRlIGVpbmVuIGdla2lsbHQgaGF0Li4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVsZWt0cmlrZXIuLi4uIChDdWNodWxsaW4sIDEzLiBKdW4gMTk5NSwgMTI6MzU6MTkpOgoKSXN0IGRvY2ggZG9vZiwgd2VubiBhbGxlIG1vZWdsaWNoZW4gV2l0emUgaW4gYWxsZW4gbW9lZ2xpY2hlbiBWYXJpYW50ZW4gaW1tZXIKd2llZGVyIGF1ZnRhdWNoZW4gbXVlc3Nlbi4uLiBIaWVyIG1hbCBkaWUgTy1WZXJzaW9uIGRlcyBFbGVrdHJpa2Vyd2l0emVzOgoKCldhcyBpc3Qgc2Nod2FyeiB1bmQgaGFlbmd0IGFuIGRlciBEZWNrZT8KRWluIHNjaGxlY2h0ZXIgRWxla3RyaWtlci4KCldhcyBpc3Qgcm90IHVuZCBzaXR6dCBpbSBFY2s/ClNlaW4gS29sbGVnZSwgZGVyIGdsdWVodCBub2NoLgoKQ3VjaCA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQmxvbmRlIChCb2luZywgMTMuIEp1biAxOTk1LCAxNzoxNzoyMSk6CiMhIHJuPUFuY2FsYWdvbiBydD04MDMwMzMxNjcKQmVpIEJsb25kaW5lbndpdHplbiBpc3QgZG9jaCBlaCBudXIgZGFzIHdvcnQgJ21hbnRhZmFocmVyJyBkdXJjaAonYmxvbmRpbmUnIGVyc2V0enQgLi4uCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJsb25kZSAoU2lsdmFuYSwgMTMuIEp1biAxOTk1LCAxNzoxOTowNyk6CiMhIHJuPUJvaW5nIHJ0PTgwMzA1NjY0MQpIbW1tIC0gdW5kIGR1cmNoIHdhcyBlcnNldHp0IER1IGJlaSBkZW4gTWFudGFmYWhyZXJ3aXR6ZW4gZGllIEZyaXNvZXNlbiwKd2VubiBEdSBzaWUgenUgQmxvbmRpZW5lbndpdHplbiBtYWNoc3Q/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCbG9uZGUgKEFudGhlYSwgMTQuIEp1biAxOTk1LCAwMDo0Mjo0Mik6CiMhIHJuPVNpbHZhbmEgcnQ9ODAzMDU2NzQ3Ck5hLCBkdXJjaCAnYmxvbmRlIE1hZW5uZXInIG9kZXIgJ09lc3RlcnJlaWNoZXInLgpJY2ggd2Vpc3MgYmxvc3Mgbm9jaCBuaWNodCwgZHVyY2ggd2FzIGljaCBkZW4gJ0Z1Y2hzc2Nod2FueicgZXJzZXR6ZW4ga2Fubi4uLgoKQW50aGVhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCbG9uZGUgKFNjaHJ1bXBmaSwgMTQuIEp1biAxOTk1LCAwMToyMjozMyk6CiMhIHJuPUFudGhlYSBydD04MDMwODMzNjIKR2Ftc2JhcnQ/IDotKQpTY2hydW1wZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEJsb25kZSAoQW5ndXMsIDE0LiBKdW4gMTk5NSwgMTA6NTY6MjIpOgojISBybj1TY2hydW1wZmkgcnQ9ODAzMDg1NzUzCkhpSGkuLi4gamV0enQgbXVzcyBpY2ggZG9jaCBtYWwgZWluZW4gbG9zbGFzc2VuLCBkZW4gaWNoIGJpcwoKdm9yIGVpbmlnZW4gVGFnZW4gbm9jaCBfbmljaHQga2FubnRlIChXYXMgV3VuZGVyLCBpY2ggaGFiIG5lbiBLdW1wZWwKZGVyIG1pY2ggemllbWxpY2ggcmVnZWxtYWVzc2lnIGJlbGllZmVydC4uLikKQWxzbzogV2llIG5lbm50IG1hbiBkZW4gU3Ryb2hodXQgZWluZXIgTklDSFQgZHVua2VsaGFhcmlnZW4gKG5laW4gYXVjaApuaWNodCByb3QuLikgd2VpYmxpY2hlbiBQZXJzb24/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbnR3b3J0OiBTcGVpY2hlcmVyd2VpdGVydW5nLi4uCipwcnV1c3QqICprZWtrZXIqICpsYWNoIHRvdCogLi4uIG5hamEuLi4gd2VycyBtYWcgLi4uIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaW1idWt0dSAoUXVlbmdpc3R1LCAxNC4gSnVuIDE5OTUsIDEyOjQzOjQ0KToKQXVzdHJhbGllbiAtIFNpZG5leSAtIEdyb3NzZXIgUmVpbXdldHRiZXdlcmIKCkF1cyBnYW56IEF1c3RyYWxpZW4gc2luZCBIb2JieWRpY2h0ZXIgenVzYW1tZW5nZXN0cm9lbXQsIHVtIHNpY2gKYW4gZGVtIFJlaW13ZXR0YmV3ZXJiIHp1IGJldGVpbGlnZW4uIFNlaXQgZWluZXIgV29jaGUgbGF1ZmVuCnNjaG9uIGRpZSBXZXR0a2FlbXBmZSBpbSBncm9lc3N0ZW4gU3BvcnRzdGFkaW9uLCB1bmQgc2NobGllc3NsaWNoCnNpbmQgbnVyIG5vY2ggendlaSBXZXR0ZGljaHRlciB1ZWJyaWdnZWJsaWViZW4sIGRpZSBudW4gZ2VnZW4tCmFuZGVyIGFudHJldGVuOiBEZXIgZXJzdGUgZWluIGthdGhvbGlzY2hlciBQZmFycmVyIHVuZCBNaXNzaW9uYXIsCmRlciB6d2VpdGUgZWluIGF1c3RyYWxpc2NoZXIgU2NoYWZmYXJtZXIuCk51biBkaWUgZW50c2NoZWlkZW5kZSBBdWZnYWJlOiBEZXIgU2NoaWVkc3JpY2h0ZXIgZXJrbGFlcnQ6Cj5XaWUgc2Nob24genV2b3Igc29sbHQgaWhyIG1vZWdsaWNoc3Qgc2NobmVsbCBlaW4gR2VkaWNodAp2ZXJmYXNzZW4sIGluIGRlbSBlaW4gdm9uIG1pciB2b3JnZWdlYmVuZXMgU3RpY2h3b3J0IHZvcmtvbW10LgpEZXIgUGZhcnJlciBiZWdpbm50LiBEYXMgU3RpY2h3b3J0IGxhdXRldCAiVGltYnVrdHUiLjwKCkRlciBQZmFycmVyIHVlYmVybGVndCBrdXJ6LCBlcmlubmVydCBzaWNoIGFuIHNlaW5lIFJlaXNlbiBhbHMKTWlzc2lvbmFyIHVuZCB0cmFlZ3Qgdm9yOgpJIHdhcyBhIHByZWFjaGVyIGFsbCBteSBsaWZlLApoYWQgbm8gY2hpbGRyZW4sIGhhZCBubyB3aWZlLgpJIHJlYWQgdGhlIEJpYmxlIHRocm91Z2ggYW5kIHRocm91Z2gKb24gbXkgd2F5IHRvIFRpbWJ1a3R1LgoKRGFzIFB1Ymxpa3VtIHJhc3Qgdm9yIEJlZ2Vpc3RlcnVuZy4gSW4gc28ga3VyemVyIFplaXQgZWluIEdlZGljaHQKenUgcmVpbWVuLCBtaXQgc28gZWluZW0gc2Nod2llcmlnZW4gV29ydCBkYXJpbiwgd2FyIGJlc3RpbW10CnNjaHdpZXJpZy4KCkFiZXIgZGVyIEZhcm1lciBzdGVodCBub2NoIGF1cy4gRXIgaGF0ICJUaW1idWt0dSIgbm9jaCBuaWUKZ2Vob2VydCB1bmQgdWViZXJsZWd0IGhpbiB1bmQgaGVyLCB3YXMgZGFzIGhlaXNzZW4gbWFnIHVuZCB3YXMKc2ljaCBkYXJhdWYgcmVpbWVuIGtvZW5udGUuIERlciBTY2hpZWRzcmljaHRlciBmYWVuZ3Qgc2Nob24gYW4KenUgZHJhZW5nZWxuIHVuZCB3aWxsIGlobiB3b21vZWdsaWNoIGRpc3F1YWxpZml6aWVyZW4uIERhISBEZXIKRmFybWVyIGhhdCBkb2NoIG5vY2ggZWluZSBJZGVlIHVuZCB0cmFlZ3Qgdm9yOgpUaW0gYW5kIEkgdG8gTWVsYm91cm5lIHdlbnQKVGhlcmUgd2VyZSB0aHJlZSB3b21lbiBpbiBhIHRlbnQKVGhleSB3ZXJlIHRocmVlIGFuZCB3ZSB3ZXJlIHR3bwpJIGJvb2tlZCBvbmUgYW5kIFRpbSBib29rZWQgdHdvLgoKOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBCbG9uZGUgKEFzbW9kaXMsIDE0LiBKdW4gMTk5NSwgMTY6MTM6MjApOgojISBybj1Bbmd1cyBydD04MDMxMjAxODIKCmJydWVuZXR0ID8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLbG9zcHJ1ZWNoZSAoU3RhbmQgMTQuNi4xOTk1KSAoRnJhZ2dsZSwgMTQuIEp1biAxOTk1LCAxNjoyMDozNCk6CkhpISBIaWVyIG1hbCBkaWUgKGtvbXBsZXR0ZSkgVmVyb2VmZmVudGxpY2h1bmcgYWxsZXIgU3BydWVjaGUgYXVmIGRlbQpHb3JnLUtsby4gVW56ZW5zaWVydCwgdW5rb21tZW50aWVydCwgbGVkaWdsaWNoIHZvbiBkZW4gTmFtZW4gYmVmcmVpdCEKKFdlciB3aXNzZW4gd2lsbCwgd2VyIGZ1ZXIgd2VsY2hlIE5pdmVhdWxvc2lna2VpdCB6dXN0YWVuZGlnIHdhciwgbW9lZ2Ugc2ljaAppbnMgU2NobG9zcyBkZXIgR29yZ3MgYmVnZWJlbiA7KQoKIEdydXNzCgogRnJhZ2dsZQotLS0tLS0tLS0tLS0tLS0tLS0tLS04PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCldlciBLbG93YWVuZGUgcHV0enQsIHZlcmJyZW5udCBhdWNoIEJ1ZWNoZXIuCkljaCBzaXR6dCB3aWUgZWluc3QgZGVyIEZ1ZWhyZXIgaGllciAsIGRpZSBicmF1bmUgTWFzc2UgdW50ZXIgbWlyCkVpbiBHZW9sb2dlIGlzdCBlaW4gTWFubiAsZGVyIHdpcmtsaWNoIHVlYmVyaGF1cHQgbmljaHRzIGthbm4gIDopCldlciBkaWVzaGllciBsaWVzdCwgd2Vpc3MsIGRhc3MgVmlwZXIgc2Nob25tYWwgaGllciB3YXIuCk5pY2h0IGFsbGVzLCB3YXMgMiBCYWNrZW4gaGF0IGlzdCBlaW4gR2VzaWNodC4KV2VyIGRhcyBsaWVzdCwgcGlua2VsdCBkYW5lYmVuLgpXZXIgaGllciBzaXR6ZW4gdHV0LCBoYXQgZWluZW4gd2lya2xpY2ggaGFydGVuIFRhZyBoaW50ZXIgc2ljaApXZXIgYW5kZXJuIGluIGRpZSBNb2VzZSBiZWlzc3QsIGlzdCBib2VzZSBtZWlzdC4KTGllYmVyIGVpbmUgQmxpbmRlIGltIEJldHQgYWxzIGVpbmUgVGF1YmUgYXVmIGRlbSBEYWNoCk1lcmtlOiBQaW5rZWwgTklFIGdlZ2VuIGRlbiBXaW5kLi4uCk1lcmtlOiBVbmQgYXVjaCBuaWNodCBnZWdlbiBlbGVrdHJpc2NoIGdlbGFkZW5lIFphZXVuZS4uLgpJY2ggd2FyIHNjaG9uIGhpZXIhCnN1Y2hzdCBkdSBXaXR6ZSBhbiBkZXIgV2FuZCwgZGVuIGdyb2Vzc3RlbiBoYWVsdHN0IER1IGluIGRlciBIYW5kLgpBbGxlcyBpc3QgU2NoZWlzc2UhCkljaCBzYWcgbnVyOiBOYXJyZW5oYWVuZGUgYmVzY2htaWVyZW4gVGlzY2ggdW5kIFdhZW5kZS4uLi4KRm9lZGVyYXRpb24gcmF1cyEgQmFqb3IgZGVuIENhcmRhc3NpYW5lcm4hCkluIGRpZXNlciBTY2h1ZXNzZWwgaGF1c3QgZWluIEdlaXN0LCBkZXIgamVkZW0gaW4gZGVuIEhpbnRlcm4gYmVpc3QhCiAtIE1JQ0ggaGF0IGVyIG5pY2h0IGdlYmlzc2VuLCBpY2ggaGFiIGlobSBhdWYgZGVuIEtvcGYgZ2VzY2hpc3NlbiEhCkRhIHNpdHogaWNoIG51biBpY2ggYXJtZXIgVG9yIHVuZCBzY2hlaXNzIHNvIGR1ZW5uIGFscyBuaWUgenV2b3IhClVuZCBub2NoIGVpbmVyOiBGaWNrIERpY2ggc2VsYnN0LCBzbyBmaWNrdCBEaWNoIEdvdHQhCkRpZSBEdW1tZW4gZmlja3QgZGVyIFRvZAppY2ggbWFnIG5pY2h0IG1laHIKRGVyIFRldWZlbCBzY2hlaXNzdCBhdWYgZGllIGRpY2tzdGVuIEhhdWZlbi4Kd2VyIGxhbmdlIHNjaGVpc3N0IGhhdCBhdXNnZWZyYWdnZWx0LgpzdWNrIG15IG1vdGhlcmZ1Y2tpbmcgZGljawpGdWNrIG1lIGxvdywgZnVjayBtZSBoaWdoLCBmdWNrIG1lIHRpbGwgdGhlIGRheSBJIGRpZSwgYW5kIHdoZW4gSSdtIGRlYWQKIGFuZCBsb25nIGZvcmdvdHRlbiwgZGlnIG1lIHVwIGFuZCBmdWNrIG1lIHJvdHRlbiAhCkFuYWwgaXN0IGJhbmFsIQpJbW1lciB3ZXJkZSBpY2ggYmVpbSBLcml0emVsbiBlcndpc2NodCwgc29nYXIgYW4gZGllc2VyIFdhYWFhYWFhYWFIIQpHcmVldGluZ3MgdG86IExpbmRhLCBWYWxhcmlhbiwgQXJ1biwgQ2xhdWRpYSBhbmQgR3VtcHkuCkpldHp0IHN0ZWggaWNoIGhpZXIgaWNoIFNwaWVsZXItVG9yIHVuZCBiaW4gc28gc2NobGF1IGFscyB3aWUgenV2b3IuCldlciBsaWVzdCB3aXJkIGdla251ZGRlbHQKWndlaXRlciBWZXJzdWNoIFNvbGx0ZSBoZWlzc2VuIC0gd2VyIGxpZXN0IHdpcmQgZ2VrbnVkZGVsdAogLi4uYWxzbyBmdWVobGUgZGljaCBnZWtudWRkZWx0CkpvZiBpc3QgdG90ICkKTm8gcGVzdGlsZW5jZSBoYXMgZXZlciBiZWVuIHNvIGZhdGFsIG9yIHNvIGhpZGVvdXMuLi4gQmxvb2Qgd2FzIGl0cyBBdmF0YXIKIGFuZCBpdHMgc2VhbCAtIHRoZSByZWRuZXNzIGFuZCBob3Jyb3Igb2YgYmxvb2QKbGllYmVyIGVpbm1hbCBtaXQgc2NobmVld2l0dGNoZW4gYWxzIDdtYWwgbWl0IHp3ZXJnZW4KbGllYmVyIHNjaGxhdWcgaW4gYmx1c2Ugc2NoYXVlbiBhbHMgZHVtbSBhdXMgd2Flc2NoZSBndWNrZW4gLSkKc3RlbGwgZGlyIHZvciBtb3JnZW4gd2FlcmUgc29ubnRhZyB1bmQga2VpbmVyIGdpbmdlIGhpbgpsZXV0ZSBlc3N0IG1laHIgc2NoZWlzc2UgbWlsbGlhcmRlbiBmbGllZ2VuIGtvZW5uZW4gc2ljaCBuaWNodCBpcnJlbgppcmdlbmR3aWUgaXN0IG1laW5lIHZlcmRhdXVuZyBoZXV0ZSBuaWNodCBzbyB0b2xsLi4uIG11c3MgYW0gbGFnIGxpZWdlbiA7LSkKd2FyIG9la29zcHVlbHVuZwp3ZW5uIGdvdHQgZ2V3b2xsdCBoYWV0dGUgZGFzcyBtYWVubmVyIHNpY2ggYnVtc2VuIGxhc3NlbiBoYWV0dGUgZXIgaWhuZW4KIGxvY2ggaW4gaGludGVybiBnZW1hY2h0Li4uCmtlbiBzZW50IG1lCmtsYXNzZS4uLiBzdXJmZW4gaW4gYmFkZXdhbm5lLi4uIHdhcyBlcyBoZXV0ZSBuaWNodCBhbGxlcyBnaWJ0Li4uCnVuaXggZ3JvZXNzdGUgdGV4dC1hZHZlbnR1cmUgd2VsdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQmxvbmRlIChTbnVnZ2xlLCAxNS4gSnVuIDE5OTUsIDE4OjIwOjE3KToKIyEgcm49Qm9pbmcgcnQ9ODAzMDU2NjQxCk5lZSwgbmljaHQgZ2FueiBCb2luZy4KSWNoIGhhYiBub2NoIGtlaW5lbiBNYW50YWZhaHJlciBnZXNlaG4sIGRlciBzaWNoIGltIFNvbW1lciBtaXQgbmVtCk1pbmlhdHVydmVudGlsYXRvciBkYXMgSGF1cHQgZ2VrdWVobHQgaGF0LCBiaXMgZXIgc2ljaCBpbiBkZW4gbGFuZ2VuCmJsb25kZW4gTG9ja2VuIHZlcmZpbmcuIFNvIHdpZXMgYXVzc2FoIHNvZ2FyIHNvIGdydWVuZGxpY2gsIGRhc3MgZGEgbnVyIG5vY2gKZGVyIEJlc3VjaCBiZWltIEZyaXNldXIgaGFsZi4KClNvIGdlc2NoZWhlbiBsZXR6dGVuIFNvbW1lciBhdWYgZGVtIEJvbm5lciBNYXJrcGxhdHouCgpncmluc2VuZApTbnVnZ2xlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2VpbiBibG9uZGluZW53aXR6IChTbnVnZ2xlLCAxNS4gSnVuIDE5OTUsIDE4OjI2OjQyKToKTWFsIG4gV2l0eiBpbiBkZW0ga2VpbmUgRWluemlnZSBCbG9uZGluZSB2b3Jrb21tdC4gWnVtaW5kZXN0IG5pY2h0Cm5hbWVudGxpY2guCgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBNYW50YSB1bmQgZGVyIEZEUD8KCgoKRGVyIE1hbnRhIGhhdCBub2NoIDQgU2l0emUuCgpNZWluIExpZWJsaW5nc3dpdHogc2VpdCBkZW4gbGV0enRlbiBMYW5kdGFnc3dhaGxlbi4uClNudWdnbGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NoJ24gQmxvbmRpZXdpdHooRlNLOmFiIDE2IEphaHJlKSA6LSkgKFRvc3MsIDE2LiBKdW4gMTk5NSwgMDM6MDA6NTMpOgojISBybj1CYWJvb24gcnQ9ODAzMDI0MTg1CmJsYXNlYmFsZy4uLgoKRGVyIGhhdCBtaXIgZ2VmYWxsZW4gOi0pCgpSeW5lIC0gb3V0ZXQgc2ljaCBoZXV0ZSBtYWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdWRkZW4gaXN0IGdlZmFlaHJsaWNoISAoQ2F0d2VhemxlLCAxNi4gSnVuIDE5OTUsIDEyOjIxOjAzKToKSEkhCkhhYiBpY2ggZ3JhZCBhdWYgbmVyIFdXVy1zZWl0ZSBiZWkgTHlzYXRvciBnZWZ1bmRlbiAuLi4KCldBUk5JTkc6ClRoZSBTdXJnZW9uIEdlbmVyYWwgaGFzIGRldGVybWluZWQgdGhhdCBNdWRkaW5nIGNhbiBjYXVzZSBDYW5jZXIsIExpdmVyIGFuZApMdW5nIERpc2Vhc2UsIE1pc2NhcnJpYWdlcywgVW53YW50ZWQgUHJlZ25hbmNpZXMsIExvdyBTcGVybSBDb3VudHMsIEJyYWluClRpc3N1ZSBEYW1hZ2UsIE11c2N1bGFyIER5c3Ryb3BoeSwgRm9yZ2V0ZnVsbmVzcywgTGVmdC1MZWcgUGFyYWx5c2lzLApJbnRlcm5hbApIZW1vcnJoYWdpbmcsIEdlZWtpbmVzcywgQ2FyYm9oeWRyYXRlcyBEZWZpY2llbmN5LCBOZWdsaWdlbmNlLCBTbG93Ck1vdGlvbmVzcywKQnVyZWF1Y3JhY3ksIERlZm9yZXN0YXRpb24sIFNleHVhbCBBdHJvY2l0aWVzLCBMYWNrIG9mIFBlcnNvbmFsaXR5LApJbmZsYXRpb24sCkhlYXZ5IE1hY2hpbmVyeSBNYWxmdW5jdGlvbiwgQW5hcGhvcmEsIFBsYWdpYXJpc20sIEx5aW5nLXRvLUNvbmdyZXNzIERpc2Vhc2UsCkdlcnJ5bWFuZGVyaW5nLCBJbmNyaW1pbmF0aW9uLCBTY2h3YSBEZWxldGlvbiwgTm9uLUNvbmZpcm1hdGlvbiBTeW5kcm9tZSwKRGVmZW5lc3RyYXRpb24sIElsbGl0ZXJhY3ksIFNhcmNhc20sIEJyb2Njb2xpIE92ZXJjb29raW5nLCBGcmVxdWVudApEZWZlY2F0aW9uLApHb3NzaXBpbmcsIEdldHRpbmctTGFpZC1vbi10aGUtRmlyc3QtRGF0ZSBTeW5kcm9tZSwgTWFzcyBFeHRpbmN0aW9uLCBPem9uZQpEZXBsZXRpb24sIEdsb2JhbCBXYXJtaW5nLCBHYXMgTGVha3MsIEhhaWxzdG9ybXMsIEFybXMgUmFjZSwgTGVncyBSYWNlLApHZW5kZXIKQ29uZnVzaW9uLCBUcmFuc2V4dWFsaXNtLCBNaXN1bmRlcnN0YW5kaW5ncywgR2liYmVyaXNoLCBCb3JlZG9tLCBOYXVzZWEsClZvbWl0aW5nLCBIeXBlcmJhdGlvbiwgSHlwZXJib2xlLCBNYW51c2NyaXB0IExvc3MsIEFuYXJjaGlzbSwgTGlwb3N1Y3Rpb24sClVuc3VjY2Vzc2Z1bCBCYXJiZWN1aW5nLCBHYXJnbGluZywgQk9OS2luZywgTWF2aXNtcywgVGFsa2luZy1pbi1UaGlyZC1QZXJzb24KU3luZHJvbWUsIExpbW9zaW5lIE92ZXJjcm93ZGluZywgRWxldmF0b3IgU3RhbGxpbmcsIE1lc3NpYW5pc20sIExvdyBTY29yaW5nCm9uClN0YW5kYXJkaXplZCBUZXN0cywgUEJTIFBsZWRnaW5nLCBQVEEgSm9pbmluZywgUFRMIFByb3BhZ2FuZGEsIFMmTCBCYWlsb3V0cywKRGVmaWNpdCBTcGVuZGluZywgQkwmVCBJbmRpZ2VzdGlvbiwgQXJtcGl0IEVubGFyZ2VtZW50LCBQcm9sZXRhcmlhbml6YXRpb24sCkFudGlkaXNlc3RhYmxpc21lbnRlcmlhbmlzbSwgUGFuaWMsIERpc2lsbHVzaW9ubWVudCwgQXN5bW1ldHJpY2FsIFR3aW5zLApBcHBvaW50bWVudCBDYW5jZWxsYXRpb24sIEZvcmVwbGF5IERpc3J1cHRpb24sIFN0dXR0ZXJpbmcsIERvZ21hdGlzbSwgQmF0aApUdWIKQ2xvZ2dpbmcsIEV2aWN0aW9uLCBJbmZhbnQgTW9ydGFsaXR5LCBDcnlwdG9yY2hpdGlzLCBTaGlzdG9zb21haXNpcywKTmVwb3Rpc20sCkJhbGRuZXNzLCBCYWQgU3BlbGxpbmcsIE1heGltdW0gVmVyYm9zaXR5LCBhbmQgR2VuZXJhbCBGYWlsdXJlIGluIExpZmUuCgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZToga2VpbiBibG9uZGluZW53aXR6IChUaHJvaW4sIDIwLiBKdW4gMTk5NSwgMTY6MzY6MTEpOgojISBybj1TbnVnZ2xlIHJ0PTgwMzIzMzYwMgpOb2NoIHdhcyB6dXIgRkRQOiBXYXMgaGVpc3N0IGRhcyB1ZWJlcmhhdXB0PyA6KQoKCgoKCgoKCgoKCgoKCkZhc3QgRHJlaSBQcm96ZW50ISA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmljaHQgZXJuc3QgZ2VtZWludCAoRWxieXRlLCAyNi4gSnVuIDE5OTUsIDE4OjU0OjI5KToKVmllciBOb25uZW4gc2luZCB6dW0gQmVpY2h0ZW4gaW4gZGllIEtpcmNoZSBnZWtvbW1lbi4gRGkKZXJzdGUgTm9ubmUgZ2VodCBpbiBkZW4gQmVpY2h0c3R1aGw6Ci0gICJBY2ggVmF0ZXIsIGljaCBoYWJlIGdlc3VlbmRpZ3QuIgotICAiSmEsIG1laW4gbGllYmVzIEtpbmQsIHdhcyBoYXN0IER1IGRlbm4gZ2V0YW4gPz8iCi0gICJJY2ggaGFiZSBlaW5lbiBuYWNrdGVuIE1hbm4gZ2VzZWhlbi4iCi0gICJTbywgZGFubiBnZWhlIHp1bSBoZWlsaWdlbiBXYXNzZXIgdW5kIHdhc2NoZSBEZWluZSBBdWdlbiBkYW1pdC4iCgpEaWUgendlaXRlIE5vbm5lIGltIEJlaWNodHN0dWhsOgotICAiQWNoLCBWYXRlciwgaWNoIGhhYmUgZ2VzdWVuZGlndC4iCi0gICJKYSwgbWVpbiBsaWViZXMgS2luZCwgd2FzIGhhc3QgRHUgZGVubiBnZXRhbiA/IgotICAiSWNoIGhhYmUgZWluZW4gbmFja3RlbiBNYW5uIGJlcnVlaHJ0LiIKLSAgIkRhbm4gZ2VoZSB6dW0gaGVpbGlnZW4gV2Fzc2VyIHVuZCB3YXNjaGUgZGVpbmUgSGFlbmRlIGRhcmluLiIKCkFscyBkaWUgYmVpZGVuIHVlYnJpZ2VuIE5vbm5lbiBkYXMgZHJhdXNzZW4gaG9lcmVuLCBzYWd0IGRpZSB2aWVydGUgenVyCmRyaXR0ZW46CgotICAiQml0dGUgbGFzcyBtaWNoIHZvci4gSWNoIG1vZWNodGUgbm9jaCBndXJnZWxuLCBiZXZvciBEdSBEZWluZW4gSGludGVybgppbnMgV2VpaHdhc3NlciBzdGVja3N0ISIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIaWhpLi4gKERhbmNlciwgMjguIEp1biAxOTk1LCAwMToyODozMyk6CgpCaWxib20gdGVpbHQgRGlyIG1pdDogYWNoIHNvLi4uIGRhcyBnZWJpcmdlIGlzdCBncm9lc3NlciBhbHMgd290YW5zIGRpbmcuLi4KClNvc28uLi46LSkKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNoZWxsLUdyZWVucGVhY2UgKEJyYWJhLCAgMy4gSnVsIDE5OTUsIDE0OjMxOjMyKToKRXJzdCwgd2VubiBkaWUgbGV0enRlIFBsYXR0Zm9ybSBkZW1vbnRpZXJ0LApkYXMgbGV0enRlIEF1dG8gdmVyc2Nocm90dGV0CnVuZCBkaWUgbGV0enRlIFRhbmtzdGVsbGUgZ2VzY2hsb3NzZW4gaXN0LAp3ZXJkZXQgaWhyIGZlc3RzdGVsbGVuLApkYXNzIG1hbiBiZWkgR3JlZW5wZWFjZSBuYWNoIDIwIFVociBrZWluIEJpZXIgbWVociBrcmllZ3QuCgpCcmFiYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2FueiBkZXIgRGFlbW9uIChZYW50cm8sICA2LiBKdWwgMTk5NSwgMTU6MzI6MjgpOgoKRWlnZW50bGljaCBzcHJpY2h0IGRhcyBmb2xnZW5kZSBmdWVyIHNpY2guLi4uCgpbTWFnaWVyOlphcmRvel0gTWlzdCwgaWNoIGhhYmUgZ2VyYWRlIHp3ZWkgUmFldW1lIGdlbG9lc2NodC4gV2VubiBpY2ggZGllCltNYWdpZXI6WmFyZG96XSBuaWNodCBhbHMgQmFja3VwIHp1aGF1c2UgaGFiZSwgc2NocmVpYmUgaWNoIHNpZSBuZXUgdW5kIGxhc3NlCltNYWdpZXI6WmFyZG96XSBkaWUgV3V0IGFuIGRlbiBzcGllbGVybiBhdXMgOi0pCltNYWdpZXI6RmVsYWd1bmRdIGRpZSB3dXQgaXN0IGhvZmZlbnRsaWNoIGdyb3NzLCBvZGVyPyA7KQpbTWFnaWVyOkhpZ2hsYW5kZXIgZ3JpbnN0Ll0KTWVybGluIHJ1ZnQ6IEljaCBiaW4gaW4gZGVyIEViZW5lLgpBcmsgcnVmdDogaWNoIGJpbiBhbSBhcnNjaApydWJyaWsgd2l0emUKT2ssIER1IGhhc3QgZGllIFJ1YnJpayB3aXR6ZSBhdWZnZXNjaGxhZ2VuLgo+IFtNYWdpZXI6T2V0dGldIEhpaGkgWmFyZG96IGRhcyBoYWIgaWNoIGdlbG9nZ3QgdW5kIHdlcmQgZXMgaW4gZGllIFplaXR1bmcKW01hZ2llcjpPZXR0aV0gc2V0emVuIGluIG1hZ2llci5tYWNodGdlaWwgOy0pCgp0amEgb2V0dGkuLiBpY2ggd2FyIHNjaG5lbGxlciA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2gsIGltIEludGVybmV0Li4uIChZZW5kaSwgIDcuIEp1bCAxOTk1LCAyMTozOToyOCk6CgpXaGF0IGRvIHlvdSBnZXQgd2hlbiB5b3UgZHJvcCBhIHBpYW5vIGludG8gYSBtaW5lPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgogICAgQSBGbGF0IE1pbm9yIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoLCBpbSBJbnRlcm5ldC4uLiAoTW9yZ290aCwgIDguIEp1bCAxOTk1LCAwODoyNjoyMSk6CiMhIHJuPVllbmRpIHJ0PTgwNTE0NTk2OApoYWhhaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjAgKEplcnJpY28sIDExLiBKdWwgMTk5NSwgMTk6NDE6MDMpOgpEaWUgQW1zZWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMCAoSmVycmljbywgMTEuIEp1bCAxOTk1LCAxOTo0MzoyOCk6CkRpZSBNZWlzZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgQW1zZWwgKEplcnJpY28sIDExLiBKdWwgMTk5NSwgMTk6NDE6MDMpOgpEaWUgQW1zZWwgaXN0IHVuZ2VmYWVociA1OCBjbSBncm9zcy4KKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIE1laXNlIChKZXJyaWNvLCAxMS4gSnVsIDE5OTUsIDE5OjQzOjI4KToKRGllIE1laXNlIGlzdCB1bmdlZmFlaHIgMTIyIGNtIGdyb3NzCjopCkphamEgaWNoIGhvZXIgamEgc2Nob24gYXVmIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGllIE1laXNlIChCb2luZywgMTIuIEp1bCAxOTk1LCAwMTo1ODozMik6CiMhIHJuPUplcnJpY28gcnQ9ODA1NDg0NjA4CkRhcyBpc3QgaW4gZGVtIEZhbGwgZGllIEZsdWdob2VoZSAuLi4KICAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGllIE1laXNlIChZYW50cm8sIDEyLiBKdWwgMTk5NSwgMDk6MTQ6NTkpOgojISBybj1Cb2luZyBydD04MDU1MDcxMTIKCndvbWl0IGRpZSBNZWlzZSBIaWdobGFuZGVyIGNhIDEyMCBjbSB2b3JyYXVzIGhhdCwgQm9pbmcuLi4gOy09CgpOdXIgb2Igc2llIGRhIHN0b2x6IGRyYXVmIGlzdD8/IE11c3Mgc2llIG1hbCBmcmFnZW4gOy0pCgogICAgICAgIFlhbnRybzopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgQW1zZWwgKEplcnJpY28sIDExLiBKdWwgMTk5NSwgMTk6NDE6MDMpOgpEaWUgQW1zZWwgaXN0IHVuZ2VmYWVociA1OCBjbSBncm9zcy4KKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIE1laXNlIChKZXJyaWNvLCAxMS4gSnVsIDE5OTUsIDE5OjQzOjI4KToKRGllIE1laXNlIGlzdCB1bmdlZmFlaHIgMTIyIGNtIGdyb3NzCjopCkphamEgaWNoIGhvZXIgamEgc2Nob24gYXVmIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGllIE1laXNlIChCb2luZywgMTIuIEp1bCAxOTk1LCAwMTo1ODozMik6CiMhIHJuPUplcnJpY28gcnQ9ODA1NDg0NjA4CkRhcyBpc3QgaW4gZGVtIEZhbGwgZGllIEZsdWdob2VoZSAuLi4KICAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGllIE1laXNlIChZYW50cm8sIDEyLiBKdWwgMTk5NSwgMDk6MTQ6NTkpOgojISBybj1Cb2luZyBydD04MDU1MDcxMTIKCndvbWl0IGRpZSBNZWlzZSBIaWdobGFuZGVyIGNhIDEyMCBjbSB2b3JyYXVzIGhhdCwgQm9pbmcuLi4gOy09CgpOdXIgb2Igc2llIGRhIHN0b2x6IGRyYXVmIGlzdD8/IE11c3Mgc2llIG1hbCBmcmFnZW4gOy0pCgogICAgICAgIFlhbnRybzopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgQW1zZWwgKEplcnJpY28sIDExLiBKdWwgMTk5NSwgMTk6NDE6MDMpOgpEaWUgQW1zZWwgaXN0IHVuZ2VmYWVociA1OCBjbSBncm9zcy4KKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIE1laXNlIChKZXJyaWNvLCAxMS4gSnVsIDE5OTUsIDE5OjQzOjI4KToKRGllIE1laXNlIGlzdCB1bmdlZmFlaHIgMTIyIGNtIGdyb3NzCjopCkphamEgaWNoIGhvZXIgamEgc2Nob24gYXVmIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGllIE1laXNlIChCb2luZywgMTIuIEp1bCAxOTk1LCAwMTo1ODozMik6CiMhIHJuPUplcnJpY28gcnQ9ODA1NDg0NjA4CkRhcyBpc3QgaW4gZGVtIEZhbGwgZGllIEZsdWdob2VoZSAuLi4KICAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGllIE1laXNlIChZYW50cm8sIDEyLiBKdWwgMTk5NSwgMDk6MTQ6NTkpOgojISBybj1Cb2luZyBydD04MDU1MDcxMTIKCndvbWl0IGRpZSBNZWlzZSBIaWdobGFuZGVyIGNhIDEyMCBjbSB2b3JyYXVzIGhhdCwgQm9pbmcuLi4gOy09CgpOdXIgb2Igc2llIGRhIHN0b2x6IGRyYXVmIGlzdD8/IE11c3Mgc2llIG1hbCBmcmFnZW4gOy0pCgogICAgICAgIFlhbnRybzopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmcmF1ZW53aXR6IChBZ25ldGhhLCAxNC4gSnVsIDE5OTUsIDEzOjE5OjQ4KToKV2FydW0gaGF1ZW4gSGViYW1tZW4gbmV1Z2Vib3JlbmVuIGF1ZiBkZW4gUG8/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpCZWkgZGVuIGtsdWdlbiBmYWVsbHQgZGVyIFNjaG5pZXBlbCBhYiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZnJhZ2UgKENlcmVidXMsIDE0LiBKdWwgMTk5NSwgMjA6MTA6MTkpOgpXb3JhdXMgYmVzdGVodCBlaW5lIGtpbmRlcmxvc2UgRWhlPz8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkF1cyBTcGFzc3ZvZWdlbG4hIQoKCkhhaEFoQUhIQWhBaEFoaGFBSGhBaC4uLiAqZ3VyZ2VsKgoKCgpDZXJlYnVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIGFybWVuIE9lc3RlcnJlaWNoZXIuLi4gOikgKEFudGhlYSwgMTcuIEp1bCAxOTk1LCAwMDo0Mjo0Mik6CldhcyBpc3Qgd2Vpc3MgdW5kIGh1ZXBmdCB2b24gQmF1bSB6dSBCYXVtPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpPZXN0ZXJyZWljaGlzY2hlciBBcnp0IGJlaSBkZXIgWmVja2VuaW1wZnVuZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2gsIGltIEludGVyTmV0Li4uIChZZW5kaSwgMTcuIEp1bCAxOTk1LCAxODo0Mjo0MSk6CiMKOiAgICAgICBUbyBleHBsb3JlIHN0cmFuZ2UgbmV3IHdvcmxkcy4KOiAgICAgICBUbyBzZWVrIG91dCBuZXcgbGlmZSBhbmQgbmV3IGNpdmlsaXphdGlvbnMuCjogICAgICAgVG8gYm9sZGx5IGdvIHdoZXJlIG5vIG1hbiBoYXMgZ29uZSBiZWZvcmUhCjogICAgIE5vISBTZXhpc3QuCjogICAgICAgVG8gYm9sZGx5IGdvIHdoZXJlIG5vIGh1bWFuIGhhcyBnb25lIGJlZm9yZSEKOiAgICAgTm8hIFJhY2lzdC4KOiAgICAgICBUbyBib2xkbHkgZ28gd2hlcmUgbm8gY2FyYm9uIGJhc2VkLi4KOiAgICAgTm8hCjogICAgICAgLi5ubyBzaWxjb24uLgo6ICAgICBObyEgLi4uIEFoIQo6ICAgICAgIFRvIGJvbGRseSBnbyB3aGVyZSBubyBwYXJ0aWN1bGF0ZSBlbnRpdHkgcG9zZXNzaW5nIGFueSBzZW50aWVudAo6ICAgICBjaGFyYWN0ZXJpc3RpY3MsIHdoYXRzb2V2ZXIgaGFzIGdvbmUgYmVmb3JlIQoKWW91IGFyZSBkaXNjcmltaW5hdGluZyBhZ2FpbnN0IEVuZXJneSBsaWZlIGZvcm1zISBNYXRlcmlhbGlzdGljIENoYXV2ZW5pc3QhCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcmdvbiB2cy4gVG9zcyAoWWVuZGksIDE4LiBKdWwgMTk5NSwgMTQ6MDI6NDQpOgoKV2FyZ29uIHp1bSBUaGVtYSAiVG9zcyBmaW5kZXQgbmljaHRzLCB3YXMga2xlaW4gZ2VudWcgaXN0LCB1bSBpaG0gd2FzIGluIGRlbgpHZWRhbi1CZXJlaWNoIHp1IHNlbW1lbG4iOgoKIkRhIHNpZWh0IG1hbiBtYWwgd2llZGVyLCBkYXNzIFp3ZXJnZSBlaW5lIG5pZWRlcmUgTGViZW5zZm9ybSBzaW5kLi4uIgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcuLi4gKEhpZ2hsYW5kZXIsIDE4LiBKdWwgMTk5NSwgMTQ6NDc6NTQpOgouLi5laW5lcyBCdW5nZWUtSnVtcGVyczoKIldhcmVuIGRhcyBqZXR6dCBub2NoIG1hbCBaZW50aW1ldGVyIG9kZXIgWm9sbD8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVlcyBhdXMgZGVtIFJlcGZpbGU6IChTaWx2YW5hLCAxOS4gSnVsIDE5OTUsIDE0OjE5OjUxKToKU2Nob24gZXJzdGF1bmxpY2gsIHdhcyBkaWUgYXJtZSBDaGlsYW5hIGFsbGVzIGdlZnJhZ3Qgd2lyZC4uLgpFaW4gcGFhciBCZWlzcGllbGU6Cgppc25vZ29vZCBmcmFndCBDaGlsYW5hIG5hY2ggd2VzdGVuCktvbWlzY2ggLSBuYWNoIE9zdGVuIGhhdCBub2NoIGtlaW5lciBnZWZyYWd0Li4uCgp4YW5hZHUgZnJhZ3QgY2hpbGFuYSBuYWNoIGthbGsKRnJlY2hoZWl0IC0gU08gYWx0IGlzdCBzaWUgZGFubiBkb2NoIG5pY2h0Li4uCgpoYWRyYSBmcmFndCBjaGlsYW5hIG5hY2ggbGViZXNlbGl4aWVyCkZhc3QuLi4KCmJlbmRlaWdpZCBmcmFndCBjaGlsYW5hIG5hY2ggYmVhdGxlcwpGYWxzY2hlcyBNdWQsIEJlbioKCmJlbmRlaWdpZCBmcmFndCBjaGlsYW5hIG5hY2ggbGViZW5zZWxpeGlyCkZhc3QgZ3V0Li4uCgpiZW5kZWlnaWQgZnJhZ3QgY2hpbGFuYSBuYWNoIGVsaXhpciBkZXMgbGViZW5zCkF1Y2ggbmljaHQgc2NobGVjaHQsIGFiZXIgYXVjaCBudXIgZmFzdCBndXQuLi4KCmhhZHJhIGZyYWd0IGNoaWxhbmEgbmFjaCBsYWhuYQpOZWluLCBzbyBoZWlzc3QgZGllIERhbWUgbmljaHQuLi4KCmJlbmRlaWdpZCBmcmFndCBjaGlsYW5hIG5hY2ggZWluemVsaGVpdGVuCkF1IHdlaWEuLi4gV2llIHdhZXJzIG1pdDogJ3NhZyBjaGlsYW5hICBHSUIgSU5GT1MhJwoKY2FyYWRocmFzIGZyYWd0IGNoaWxhbmEgbmFjaCB0cmF1bQpjYXJhZGhyYXMgZnJhZ3QgY2hpbGFuYSBuYWNoIGt1ZXNzZW4KT2ggLSBDYXJhKiBoYXQgc2VpbmUgVHJhdW1mcmF1IGdlZnVuZGVuPwoKcmVpbmVsZGUgZnJhZ3QgY2hpbGFuYSBuYWNoIHNjaHJpcHQKU2Nob24gbWFuIG5hY2ggS29tcGxldHRsb2VzdW5nIGdlZnJhZ3Q/CgprYXJ0aWkgZnJhZ3QgY2hpbGFuYSBuYWNoIG1lbmdlCkNoaWxhbmEgd2Vpc3MgendhciB2aWVsLCBhYmVyIHdpZSBtaXNzdCBtYW4gZGFzPwoKa2FydGlpIGZyYWd0IGNoaWxhbmEgbmFjaCBsZWJlbnNlbGl4aXIKRXMgc2NoZWludCBuaWNodCBzbyBlaW5mYWNoIHp1IHNlaW4uLi4KCktvcGZzY2h1ZXR0ZWxuZCAtIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVlcyBhdXMgZGVtIFJlcGZpbGU6IChDYXJhZGhyYXMsIDE5LiBKdWwgMTk5NSwgMTQ6MjY6MjQpOgojISBybj1TaWx2YW5hIHJ0PTgwNjE1NjM5MQpIbSwgaWNoIGRhY2h0ZSBhdWNoIGltbWVyIGRhcyBoZWlzc3QgRWxleGllciBzdGF0dCBFbGl4aWVyLiAqZ3J1ZWJlbCogOikKRHJ1bSBoYWIgaWNoIG1pY2ggNSBtYWwgdmVydGlwcHQgYmVpbSBXYW5kZXJlci4gKmdyaW5zIGdydW1tZWxuZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldWxpY2ggaW4gZGVyIEVsZmVua25laXBlLi4gKFplcGh5ciwgMTkuIEp1bCAxOTk1LCAxNDoyODozOSk6Cj4gRGllIEdhc3RzdGFldHRlIGRlciBFbGZzaWVkbHVuZy4KRXMgZ2lidCBlaW5lbiBzaWNodGJhcmVuIEF1c2dhbmc6IHN1ZWRlbi4KRGVyIEdhc3R3aXJ0LgpVaWFsLgpEaWUgVG9wLUxpc3RlLCBUb3AtU3BpZWxlcmxpc3RlLCBUb3AtU2VoZXJsaXN0ZSB1bmQgVG9wLVp3ZWl0aWxpc3RlLgo+IEVpbiBFbGZlbndhZWNodGVyIGtvbW10IGFuLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuCkRlciBFbGZlbndhZWNodGVyIGdpYnQgZGFzIFBlbHpjaGVuIGFuIFVpYWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemNoZW4uClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KRGVyIEVsZmVud2FlY2h0ZXIgZ2lidCBkYXMgUGVsemJldXRlbCBhbiBVaWFsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpEZXIgRWxmZW53YWVjaHRlciBnaWJ0IGRhcyBQZWx6YmV1dGVsIGFuIFVpYWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpEZXIgRWxmZW53YWVjaHRlciBnaWJ0IGRhcyBQZWx6YmV1dGVsIGFuIFVpYWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6Y2hlbi4KRGVyIEVsZmVud2FlY2h0ZXIgZ2lidCBkYXMgUGVsemJldXRlbCBhbiBVaWFsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KRGVyIEVsZmVud2FlY2h0ZXIgZ2lidCBkYXMgUGVsemJldXRlbCBhbiBVaWFsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpiZXV0ZWwuCkRlciBFbGZlbndhZWNodGVyIGdpYnQgZGFzIFBlbHpjaGVuIGFuIFVpYWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemNoZW4uClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemNoZW4uClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemNoZW4uClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemNoZW4uClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6Y2hlbi4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6YmV1dGVsLgpEZXIgRWxmZW53YWVjaHRlciBnaWJ0IGRhcyBQZWx6Y2hlbiBhbiBVaWFsLgpVaWFsIHNhZ3Q6IERhbmtlIGZ1ZXIgZGFzIFBlbHpjaGVuLgpEZXIgRWxmZW53YWVjaHRlciBnaWJ0IGRhcyBQZWx6YmV1dGVsIGFuIFVpYWwuClVpYWwgc2FndDogRGFua2UgZnVlciBkYXMgUGVsemJldXRlbC4KVWlhbCBzYWd0OiBEYW5rZSBmdWVyIGRhcyBQZWx6Y2hlbi4KVWlhbCBnaWJ0IGRhcyBQZWx6YmV1dGVsIGFuIGRlbiBFbGZlbndhZWNodGVyLgpVaWFsIGdpYnQgZGFzIFBlbHpiZXV0ZWwgYW4gZGVuIEVsZmVud2FlY2h0ZXIuClVpYWwgZ2lidCBkYXMgUGVsemJldXRlbCBhbiBkZW4gRWxmZW53YWVjaHRlci4KVWlhbCBnaWJ0IGRhcyBQZWx6YmV1dGVsIGFuIGRlbiBFbGZlbndhZWNodGVyLgpVaWFsIGdpYnQgZGFzIFBlbHpjaGVuIGFuIGRlbiBFbGZlbndhZWNodGVyLgpVaWFsIGdpYnQgZGFzIFBlbHpiZXV0ZWwgYW4gZGVuIEVsZmVud2FlY2h0ZXIuClVpYWwgZ2lidCBkYXMgUGVsemJldXRlbCBhbiBkZW4gRWxmZW53YWVjaHRlci4KCkRlciBXYWVjaHRlciBsYWVjaGVsdCBEaWNoIGFuLgpEZXIgRWxmZW53YWVjaHRlciBnZWh0IG5hY2ggU3VlZGVuLgpEZXIgV2lydCBwZmVpZnQgbGVpc2UgZWluZSBNZWxvZGllLgoKIFplcGh5ciwgaW1tZXIgbm9jaCBrb3Bmc2NodWV0dGVsbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaGxlY2h0ZXIgd2l0eiA/Pz8gKEplcnJpY28sIDE5LiBKdWwgMTk5NSwgMjI6MDA6MzApOgp2b3JuZQp1Cm8KbgpuCm4KbgpuCm4KbgpuCncKPQpnZWh0IG1hbCBpbiBkaWUgS25laXBlIGltIEdPLUNsdWIsIG1hbiBrYW5uIHdpcmtsaWNoIG51ciBub2NoIGRydWViZXIKbGFjaGVuLgpFaW5lIEtuZWlwZSBpbiBkZXIgbWFuIGVpbmUgbWluZGVzdHplaXQgdmVyYnJpbmdlbiBtdXNzLCB3ZWlsIGRhcyBzdGFlbmlnZQpyYXVzIHVuZCByZWlubGF1ZmVuIGRpZSBhdG1vc3BoYWVyZSBpbiBkaWVzZXIgJ2xva2FsaXRhZXQnIHplcnN0b2VyZW4gd3VlcmRlLgoKKnJ0ZmwqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHTy1LbmVpcGUgKEplcnJpY28sIDE5LiBKdWwgMTk5NSwgMjM6MDE6MDgpOgpXYXMgZ3V0ZXMgaGF0IGRpZSBXZWdnZWhzcGVycmUgaW4gZGVyIEtuZWlwZSBkb2NoLCBtYW4gYnJhdWNodCBudXIgMTAwIHZvbgoyMTAgTVAgYXVmenV0YW5rZW4sIGRlciByZXN0IHdpcmQgc2Nob24gd2FlaHJlbmQgZGVyIFdhcnRlemVpdCByZWdlbmVyaWVydC4KCipBUkdMVCBTSUNIIEhFSVRFUiBNQUwgV0lFREVSIEVJTkVOIEFCKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZmVzdGVyIGRydWVja2VuIChBbnRoZWEsIDE5LiBKdWwgMTk5NSwgMjM6MTA6MzYpOgpTaWU6IERydWVjayBkb2NoLCBkcnVlY2sgZG9jaCEKRXI6IEVzIGdlaHQgbmljaHQsIERlaW4gTmFjaHRoZW1kIGlzdCBpbSBXZWchClNpZTpGZXN0ZXIhIEZlc3RlciEKRXI6IERlaW4gTmFjaHRoZW1kIGlzdCBpbW1lciBub2NoIGltIFdlZyEKU2llOiBBYmVyIGpldHp0ISBEcnVlY2sgZG9jaCEKRXI6IE51biBpc3QgRGVpbiBIb2VzY2hlbiBpbSBXZWchClNpZTogRmVzdGVyISBGZXN0ZXIhCkVyOiBBaCEgSmEhIEVuZGxpY2guIEVuZGxpY2ggaXN0IGRlciBLb2ZmZXIgenUhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc2NobGVjaHRlciB3aXR6ID8/PyAoVWxvLCAyMC4gSnVsIDE5OTUsIDAxOjEyOjI2KToKIyEgcm49SmVycmljbyBydD04MDYxODQwMzAKPiBnZWh0IG1hbCBpbiBkaWUgS25laXBlIGltIEdPLUNsdWIsIG1hbiBrYW5uIHdpcmtsaWNoIG51ciBub2NoIGRydWViZXIKPiBsYWNoZW4uCj4gRWluZSBLbmVpcGUgaW4gZGVyIG1hbiBlaW5lIG1pbmRlc3R6ZWl0IHZlcmJyaW5nZW4gbXVzcywgd2VpbCBkYXMgc3RhZW5pZ2UKPiByYXVzIHVuZCByZWlubGF1ZmVuIGRpZSBhdG1vc3BoYWVyZSBpbiBkaWVzZXIgJ2xva2FsaXRhZXQnIHplcnN0b2VyZW4Kd3VlcmRlLgoKIERpZSBNaW5kZXN0emVpdCB3YXIgd29obCBnYW56IG9mZmVuc2ljaHRsaWNoIHp1IG5pZWRyaWcgYW5nZXNldHp0IC4uLgpJY2ggaGFiZSBzaWUgamV0enQgdmVyM2ZhY2h0IQoKVWxvLiAoc3RpbmtzYXVlcikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHNjaGxlY2h0ZXIgd2l0eiA/Pz8gKEJhcm9uLCAyMC4gSnVsIDE5OTUsIDEyOjU1OjI3KToKIyEgcm49VWxvIHJ0PTgwNjE5NTU0NgpVbG8gaGF0IGVpbmZhY2ggcmVjaHQhIEVyc3RlbnMgaXN0IGRlciBHby1DbHViIGtlaW5lIHR5cGlzY2hlICdUYW5rLUtuZWlwZScKc29uZGVybiBlaW4gQ2x1YiB1bmQgendlaXRlbnMga2FubiBtYW4gbmljaHQgaW4gUnVoZSBzcGllbGVuIHdlbm4gc3RhZW5kaWcKaGVydW1wb2ViZWxuZGUgQWJlbnRldXJlcmhvcmRlbiBpaHJlciBBbGtvaG9sc3VjaHQgZnJvZWhuZW4gKmtpY2hlciouCkJhcm9uIChuaW1tdCBzaWNoIGltbWVyIG1hbCBaZWl0IGZ1ZXIgZWluZSBHRU1VRVRMSUNIRSBLbmVpcGUpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgUnVlY2trZWhyIGRlciBrYWF0ZWthZW1wZmVuZGVuIExlaWNoZW4gKFRvbWFzbywgMjAuIEp1bCAxOTk1LCAxODoyNDowMik6CllldGkgZ2VodCBpbnMgUmVpY2ggZGVyIE5ldHp0b3Rlbi4KW0thcmF0ZTpBc21vZGlzXSBvYiAyIHJlaWNoZW4gPyA6KQogIFlldGkgZ3JlaWZ0IERpY2ggbWl0IGVpbmVtIG1pc3NsdW5nZW5lbiBNYXdhc2hpLWdlcmkgYW4uCiAgWWV0aSB2ZXJmZWhsdCBEaWNoLgpOZXR0LCB3YXMgc28gYWxsZXMgaGllciBwYXNzaWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHNjaGxlY2h0ZXIgd2l0eiA/Pz8gKFd1ciwgMjEuIEp1bCAxOTk1LCAwMzo0MjowMik6CiMhIHJuPUJhcm9uIHJ0PTgwNjIzNzcyNwpSZWNodCBzbyBiYXJvbiEKV28ga29tbWVuIHdpciBkZW5uIGRhIGhpbiwgd2VubiBtYW4gbmljaHRtYWwgbWVociBpbiBSdWhlIGVpbmUgcGFydGllIEdvCnNwaWVsZW4ga2FubiB1bmQgZGFiZWkgZ2VtdWV0bGljaCBzYWtlIHRyaW5rZW4ga2Fubj8gSW5zIENoYW9zICEKCld1ciAtIG1hY2h0IFlhbWFkYSBwbGF0dCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogc2NobGVjaHRlciB3aXR6ID8/PyAoQ2FyYWRocmFzLCAyMS4gSnVsIDE5OTUsIDEyOjE4OjAyKToKIyEgcm49V3VyIHJ0PTgwNjI5MDkyMgogICAgICAgICAgICAgICAgICAgICAgICAgICBIdWh1CgpBdSBqYSwgWWFtYWRhIHBsYXR0bWFjaGVuLCBpY2ggbWFjaCBtaXQuIDotKSkKCiAgICAgICAgICAgIENhcmFkaHJhcyAtIHNpbmd0ICJpY2ggYmluIFNjaGxhZWNodGVyIHZvbiBCZXJ1Zi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHNjaGxlY2h0ZXIgd2l0eiA/Pz8gKEN1Y2h1bGxpbiwgMjEuIEp1bCAxOTk1LCAxNDozNTo0Myk6CiMhIHJuPUNhcmFkaHJhcyBydD04MDYzMjE4ODIKCklpaWhoLi4uLiBkYW5uIGxpZWdlbiBkYSBpbW1lciAxMDkzIFNjaHJpZnRyb2xsZW4gcnVtLi4uIDspCgotIGN1Y2ggOykgLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRlJBVSBXQVJGIE1BTk4gKENhdHdlYXpsZSwgMjEuIEp1bCAxOTk1LCAxNzoyOTo1NCk6CltWZXJsZWd0IHZvbiB3d3csIEtldG9zLCAyMC4gSnVsIDE5OTUsIDE3OjI0OjQzXToKRnJhZ2U6IEluIHdlbGNoZXIgZGV1dHNjaGVuIFplaXR1bmcga2FubiBtYW4gZGllIFVlYmVyc2NocmlmdCBmaW5kZW46ICJGUkFVCldBUkYKIE1BTk4gQVVTIERFTSBGRU5TVEVSIiA/ClJpY2h0aWdlIEFudHdvcnQ6IEluIGRlciBCaWxkIFplaXR1bmcKCkZyYWdlOiBJbiB3ZWxjaGVyIFplaXR1bmcgZmluZGV0IG1hbiBkaWUgVWViZXJzY2hyaWZ0OiAiTUFOTiBXQVJGIEZSQVUgQVVTCkRFTSBGCkVOU1RFUiIgPyAtIEluIGRlciBaZWl0dW5nIFNDSE9FTkVSIFdPSE5FTiAhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGUkFVIFdBUkYgTUFOTiAoQ2F0d2VhemxlLCAyMS4gSnVsIDE5OTUsIDE3OjMwOjM2KToKIyEgcm49THdheGFuYSBydD04MDYyNTcwMDIKW1ZlcmxlZ3Qgdm9uIHd3dywgQXNtb2RpcywgMjAuIEp1bCAxOTk1LCAxODoyMDoxMl06CkFiZXIgZGVyIFdpdHogaGF0IHRyb3R6ZGVtIHNvb29vIGVpbmVuIEJhcnQgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGUkFVIFdBUkYgTUFOTiAoQ2F0d2VhemxlLCAyMS4gSnVsIDE5OTUsIDE3OjMwOjQ2KToKIyEgcm49QXNtb2RpcyBydD04MDYyNTcyMTIKW1ZlcmxlZ3Qgdm9uIHd3dywgQWxpbmUsIDIxLiBKdWwgMTk5NSwgMTE6MzY6MzBdOgpOaWNodCBudXIgZGFzIGRlciBXaXR6IHNjaGxlY2h0IGlzdCB1bmQgbm9jaCBkYXp1IGFsdCBpc3QsIGVyIHNhZ3QKYXVjaCBldHdhcyB1ZWJlciBkZW4gRXJ6YWVobGVyIGF1cy4gQWxsZXJkaW5ncyB6dSBkZW4gTWFjaG9zIGhpZXIKaW0gTUcgd3VlcmRlIGljaCBpaG4gbmljaHQgemFlaGxlbi4gSG9lcnQgc2ljaCBlaGVyIG5hY2ggYXJtZW4gdW50ZXJnZS0KYnV0dGVydGVuIFBhbnRvZmZlbGhlbGRlbiBhbi4KClNvIHVuZCBmdWVyIHNvd2FzIHVudGVyYnJlY2hlIGljaCBtZWluZSBBYnN0aW5lbnogKnNjaHVldHRlbEtvcGYqCgpBbGluZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZSQVUgV0FSRiBNQU5OIChBc21vZGlzLCAyMS4gSnVsIDE5OTUsIDE5OjAyOjE0KToKIyEgcm49Q2F0d2VhemxlIHJ0PTgwNjM0MDY0NgphcmdoLCB3aWVzbyBrb21tZW4gYWxsZSBhcnRpa2VsIGF1cyB3d3cgbm9jaG1hbCBoaWVyaGVyPyBkYW5uIGxvZXNjaCBzaWUKbGllYmVyCihzaW5kIGVoIGtlaW5lIGd1dGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJtZXIgQWRhbWEgKnNldWZ6KiAoQ2VsZWJkaWwsIDIxLiBKdWwgMTk5NSwgMjI6NDA6NDIpOgpbVG9kOl0gRWluIE5lY3JvbWFudCBoYXQgZ2VyYWRlIEFkYW1hIHVtZ2VicmFjaHQuCltBbGxnZW1laW46Q2FyYWRocmFzXSBBZGFtYSBpc3QgZ2VyYWRlIG5pY2h0IGRhOiBvaCBqZSwgc2Nyb2xsdCBkYXMuIGZyYWcKW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGxpZWJlciBiZWkgd2FueWEgbmFjaApbQWxsZ2VtZWluOkNhcmFkaHJhc10gYXJnbApbQWxsZ2VtZWluOkNhcmFkaHJhc10gamEgZGFzIGdsYXViIGljaCBkYXNzIGRpZSBUb2Rlc3NlcXVlbnogc2Nyb2xsdAoKVGphLCBBZGFtYXMgd2VnIHdhciByaWNodGlnLgoKICAgICAgICAgICBDZWxlYmRpbCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogc2NobGVjaHRlciB3aXR6ID8/PyAoVWxvLCAyMi4gSnVsIDE5OTUsIDAwOjE3OjU0KToKIyEgcm49Q3VjaHVsbGluIHJ0PTgwNjMzMDE0MwpSaWNodGlnLCB1bmQgdW0gc293YXMgaW4gWnVrdW5mdCB6dSB2ZXJoaW5kZXJuIChpcyBqYSBVbXdlbHR2ZXJzY2htdXR6dW5nKSBpcwpqZXR6dCBuaXggbWVociBtaXQgWWFtYWRhIHVtYnJpbmdlbiEgRGEgZ2lidCdzIGpldHp0IG51ciBub2NoIE9ocmZlaWdlbi4KClVsby4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN0YWVuZGlnIGRpZXNlIGRvb2ZlbiB0aXRlbCwgaWNoIGhhc3NlIHRpdGVsIChKZXJyaWNvLCAyNi4gSnVsIDE5OTUsIDA0OjQwOjI0KToKPiBzY2hhZXR6IG1vbnN0ZXIKRGFzIFN0ZWlubW9uc3RlcmJhYnkgaXN0IHVuZ2VmYWVociAxMDkgY20gZ3Jvc3MuCkRhcyBTdGVpbm1vbnN0ZXJiYWJ5IGlzdCBuaWNodCBnYW56IHNvIHNjaG5lbGwgenUgZXJsZWRpZ2VuLgpEZXMgU3RlaW5tb25zdGVyYmFieXMgV2FmZmUgaXN0IGxhZWNoZXJsaWNoLgpEZXMgU3RlaW5tb25zdGVyYmFieXMgUnVlc3R1bmcgaXN0IGd1dC4KPiB1bnQgbW9uc3RlcgpCZWluYWhlIGhhZXR0ZXN0IER1IGVzIGZ1ZXIgZWluZW4gZXR3YSBmYXVzdGdyb3NzZW4gU3RlaW4gZ2VoYWx0ZW4sCmFiZXIgd2FzIGRhIHZvciBEaXIgbGllZ3QsIGlzdCBlaW4gU3RlaW5tb25zdGVyYmFieS4KRXMgaXN0IGFic29sdXQgZml0LgoKZmF1c3Rncm9zcyB1bmQgMTA5IGNtIGdyb3NzID8/Pz8gOikKb2RlciBzaW5kIGRpZSAxMDkgY20gd2llZGVyIGRpZSBmbHVnaG9laGUgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBzdGFlbmRpZyBkaWVzZSBkb29mZW4gdGl0ZWwsIGljaCBoYXNzZSB0aXRlbCAoUm9uZGEsIDI2LiBKdWwgMTk5NSwgMDg6NTM6MTYpOgojISBybj1KZXJyaWNvIHJ0PTgwNjcyNjQyNApHUklOUzogRmx1Z2hvZWhlIG5hdHVlcmxpY2ggOikgRHUgd2Vpc3N0IGRvY2g6CndlciBpbSBHbGFzaGF1cyBzaXR6dCwgc29sbHRlIG5pY2h0IG1pdCBTdGVpbm1vbnN0ZXJiYWJ5cyB3ZXJmZW4gb2RlciBzbyAuLi4KICAgICAgICAgICAgUm9uZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBzdGFlbmRpZyBkaWVzZSBkb29mZW4gdGl0ZWwsIGljaCBoYXNzZSB0aXRlbCAoWWVuZGksIDI2LiBKdWwgMTk5NSwgMTM6MTY6MTIpOgojISBybj1KZXJyaWNvIHJ0PTgwNjcyNjQyNAoKQmVlaW5kcnVja2VuZGUgRmFldXN0ZSwgd2lya2xpY2guLi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RpbGJsdWV0ZW4gKEhhdGUsICA0LiBBdWcgMTk5NSwgMTA6MzQ6MjkpOgpHZXJlZGUgaW4gZGUuYWx0Lmpva2VzIGdlZnVuZGVuOgoKTWVpbmUgVGFudGUgc2NoZW5rdGUgbWlyIGVpbmUgU3BhcmRvc2UuIFNpZSBpc3QgZWluIFNjaHdlaW4gdW5kCmhhdCB6d2VpIFNjaGxpdHplLiBWb3JuZSBmfHIncyBQYXBpZXIgdW5kIGhpbnRlbiBmfHJzIEhhcnRlLgoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCAnbiBCbG9uZGluZW53aXR6IChBc21vZGlzLCAxMC4gQXVnIDE5OTUsIDIxOjMzOjI1KToKRWluZSBCbG9uZGluZSBiZWRpZW50IGRpZSBHYWVzdGUgaW4gZGVyIEtuZWlwZS4gSXJnZW5kd2FubiBpbSBWZXJsYXVmZSBkZXMKQWJlbmRzIGtsZXR0ZXJ0IHNpZSBwbG9ldHpsaWNoIG1pdHNhbXQgYmVsYWRlbmVtIFRhYmxldHQgYXVzc2VuIGFtIEhhdXMKcmF1ZiBhdWZzIERhY2guIFdhcyBoYXQgdm9yaGVyIGRlciBXaXJ0IHp1IGlociBnZXNhZ3Q/CiJEaWUgbmFlY2hzdGUgUnVuZGUgZ2VodCBhdWZzIEhhdXMuIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWwgJ24gQmxvbmRpbmVud2l0eiAoQXNtb2RpcywgMTAuIEF1ZyAxOTk1LCAyMTozNDoyOCk6CiMhIHJuPUFzbW9kaXMgcnQ9ODA4MDgzMjA1Clp3ZWkgQmxvbmRpbmVuIGJldHJldGVuIGRlbiBBdWZ6dWcuIFNhZ3QgZGllIGVyc3RlIHBsb2V0emxpY2g6CiJTYWcgbWFsLCBpc3QgZGFzIGRhIFNwZXJtYSBpbiBkZXIgRWNrZT8iIERpZSB6d2VpdGUgc2llaHQgc2ljaApkZW4gRmxlY2sgZ2VuYXVlciBhbiwgcmllY2h0LCBwcm9iaWVydCwgdW5kIG1laW50IHNjaGxpZXNzbGljaDoKIktvZW5udGUgc2Vpbi4gSXN0IGFiZXIgYXVmIGplZGVuIEZhbGwga2VpbmVyIHZvbSBIYXVzIGhpZXIhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIGVpbiBLb2hsLVdpdHogKEFzbW9kaXMsIDEwLiBBdWcgMTk5NSwgMjE6MzY6MTcpOgpLb2hsIG1hY2h0IGVpbiBLcmV1endvcnRydHNlbC4gRnJhZ2U6IFZlcmVpbmlndW5nc2thbnpsZXIgbWl0IDQgQnVjaHN0YWJlbi4KSGVsbXV0OiAnZGFzIGJpbiBqYSBpY2ghJwpFciBzY2hyZWlidDogSSBDIEggICdNaXN0IG51ciBkcmVpIEJ1Y2hzdGFiZW4uIEhhbm5lbG9yZSwgd2VyIGlzdCBkZXIKVmVyZWluaWd1bmdza2Fuemxlcj8nCgpIYW5uZWxvcmU6ICdEYXMgYmlzdCBkb2NoIER1IScgIEhlbG11dCBzY2hyZWlidDogRCBVICAnTWlzdCBwYXNzdCBhdWNoCm5pY2h0LicKCkVudHR1c2NodCBnZWhlbiBzaWUgaW4ncyBCZXR0LgpNaXR0ZW4gaW4gZGVyIE5hY2h0IHdlY2t0IEhlbG11dCBzZWluZSBIYW5uZWxvcmU6ICdEdSwgSGFubmVsb3JlLCBpY2ggaGFiJ3MsCmRpZSBtZWluZW4gTUlDSCEnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmQgbm9jaCB1ZWJlciBUYWtlIFRoYXQgaGVyZ2V6b2dlbiAoQXNtb2RpcywgMTAuIEF1ZyAxOTk1LCAyMTo0MDozOSk6CldhcyBpc3QgNDBtIGxhbmcgdW5kIGhhdCBrZWluZSBTY2hhbWhhYXJlID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbmQgbm9jaCB1ZWJlciBUYWtlIFRoYXQgaGVyZ2V6b2dlbiAoQXNtb2RpcywgMTAuIEF1ZyAxOTk1LCAyMTo0MTozMCk6CiMhIHJuPUFzbW9kaXMgcnQ9ODA4MDgzNjM5CkFOVFdPUlQ6IERpZSBlcnN0ZSBSZWloZSBpbSBUYWtlLVRoYXQgS29uemVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hIGd1dCwgTWFudGEtRmFocmVyIGtyaWVnZW4gYXVjaCBub2NoIGVpbmVuIChBc21vZGlzLCAxMC4gQXVnIDE5OTUsIDIxOjQzOjQxKToKV2FzIHNhZ3QgZWluIE1hbnRhZmFocmVyLCBkZXIgaW5zIEdlZmFlbmduaXMga29tbXQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmEgZ3V0LCBNYW50YS1GYWhyZXIga3JpZWdlbiBhdWNoIG5vY2ggZWluZW4gKEFzbW9kaXMsIDEwLiBBdWcgMTk5NSwgMjE6NDQ6MjYpOgojISBybj1Bc21vZGlzIHJ0PTgwODA4MzgyMQoiRXkgYm9haCBleSwgWmVudHJhbHZlcnJpZWdlbHVuZyAhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCduIEpva2UgKEFzbW9kaXMsIDEwLiBBdWcgMTk5NSwgMjE6NDc6NTIpOgpFaW5lIElycmVuYW5zdGFsdCB3aXJkIHZlcmxlZ3QuIEF1ZiBHcnVuZCBkZXIgRW50ZmVybnVuZyB3ZXJkZW4gZGllIDIwCkluc2Fzc2VuIG1pdCBkZW0gRmx1Z3pldWcgdHJhbnNwb3J0aWVydC4gRGVyIExlaXRlciBkZXIgQW5zdGFsdCBzaXR6dAp2b3JuIG5lYmVuIGRlbSBQaWxvdGVuLiBBdXMgZGVtIFBhc3NhZ2llcnJhdW0gaXN0IExhZXJtIHp1IGhvZXJlbi4gRGVyClBpbG90IHNjaGlja3QgZGVuIEFuc3RhbHRzbGVpdGVyIHp1bSBuYWNoc2VoZW4sIGRlciBrb21tdCB3aWVkZXIgdW5kCmJlcmljaHRldCwgZGllIElycmVuIHNwaWVsZW4gZGEgaGludGVuIEZ1c3NiYWxsLiBEZXIgUGlsb3QgbWVpbnQsIGRhcyBtdXNzCnNvZm9ydCBhdWZob2VyZW4uIERlIEFuc3RhbHRzbGVpdGVyIGdlaHQgd2llZGVyIG5hY2ggaGludGVuIHVuZCBkYW5uIGlzdApSdWhlLiBEZXIgUGlsb3QgZnJhZ3QgbmF0dWVybGljaCwgd2llIGVyIGRhc3MgZGVuIGdlc2NoYWZmdCBoYWJlLiBEZXIgTGVpdGVyCmFudHdvcnRldDogSWNoIGhhYmUgZGllIFR1ZXIgYXVmZ2VtYWNodCB1bmQgZ2VzYWd0IHNpZSBzb2xsZW4gaW0gSG9mCndlaXRlcnNwaWVsZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIaWVyIG5vY2ggZGVyIG1vbWVudGFuZSBMaWVibGluZ3N3aXR6IHZvbiBkZS50YWxrLmpva2VzIChBc21vZGlzLCAxMC4gQXVnIDE5OTUsIDIxOjQ5OjUwKToKV2FzIHNhZ3QgZGVyIFZvcnN0YW5kc2NoZWYgZGVyIERldXRzY2hlbiBCYW5rLCB3ZW5uIGVzIGFuIHNlaW5lIEJ1ZXJvdHVlcgprbG9wZnQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGllciBub2NoIGRlciBtb21lbnRhbmUgTGllYmxpbmdzd2l0eiB2b24gZGUudGFsay5qb2tlcyAoQXNtb2RpcywgMTAuIEF1ZyAxOTk1LCAyMTo1MDowOCk6CiMhIHJuPUFzbW9kaXMgcnQ9ODA4MDg0MTkwCkhlcmVpbiwgd2VubidzIGtlaW4gU2NobmVpZGVyIGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVuZCAnbiBSZW5uZmFocmVyd2l0eiAoQXNtb2RpcywgMTAuIEF1ZyAxOTk1LCAyMjowMzowNCk6Ck5pa2kgTGF1ZGEgd2lsbCBlaW5lbiBuZXVlbiBNZWNoYW5pa2VyIGVpbnN0ZWxsZW4gdW5kIGxhZWR0IHNpY2ggZHJlaQpCZXdlcmJlciB6dW0gVm9yc3RlbGx1bmdzZ2VzcHJhZWNoIGVpbi4gS29tbXQgZGVyIGVyc3RlIHJlaW4uCk5pa2kgTGF1ZGE6IlNpZSBoYWJlbiBndXRlIFF1YWxpdGFldGVuLCBpY2ggd2lsbCBzaWUgd29obCBlaW5zdGVsbGVuLCBhYmVyCnNhZ2VuIHNpZSBtaXIgZG9jaCB2b3JoZXIgbm9jaCBlaW5tYWwsIHdhcyBpaG5lbiBhbiBtaXIgYXVmZmFlbGx0ID8iCiJTaWUgaGFiZW4ga2VpbmUgT2hyZW4gISIsIHNhZ3QgZGVyIEdlZnJhZ3RlLgpOaWtpOiJEYXMgaXN0IGphIGVpbmUgVW52ZXJzY2hhZW10aGVpdC1yYXVzICEiCkJlaW0gendlaXRlbiBCZXdlcmJlciBkYXNzZWxiZSBTcGllbC4gV2llZGVyIGZhbGxlbiBkaWUgZmVobGVuZGVuIE9ocmVuCmF1ZiB1bmQgd2llZGVyIHdpcmQgZGVyIEJld2VyYmVyIHJhdXNnZXdvcmZlbi4gRGllc2VyIHNhZ3QgZGVtIGRyaXR0ZW4KS2FuZGlkYXRlbiBub2NoLCBkYSBlciBrZWluZXNmYWxscyBkaWUgT2hyZW4gZXJ3YWVobmVuIHNvbGwuCk5pa2kgTGF1ZGEgZnJhZ3Qgd2llZGVyOiJXYXMgZmFlbGx0IGlobmVuIGFuIG1pciBhdWYgPyIKIlNpZSB0cmFnZW4gS29udGFrdGxpbnNlbiAhIixzYWd0IGRlciBCZXdlcmJlci4KIkRhcyBpc3QgamEgaW50ZXJyZXNzYW50LCB3b2hlciB3aXNzZW4gc2llIGRlbm4gZGFzID8iCiJXZW5uIHNpZSBPaHJlbiBoYWV0dGVuLCB3dWVyZGVuIHNpZSBlaW5lIEJyaWxsZSB0cmFnZW4gISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBQb2xpemlzdGVud2l0eiAoQXNtb2RpcywgMTAuIEF1ZyAxOTk1LCAyMjoxMDowOCk6CkVpbiBQb2xpemlzdCBoYWVsdCBlaW5lbiBXYWdlbiBhbiB1bmQgc2FndDoKIklociBXYWdlbiBpc3QgamEgdG90YWwgdWViZXJsYWRlbiAhIEdlYmVuIFNpZSBtaXIgbWFsIElocmVuIEZ1ZWhyZXJzY2hlaW4gISIKIkRhcyBpc3QgZG9jaCBRdWF0c2NoICEgRGVyIHdpZWd0IGRvY2gga2VpbmUgZHJlaXNzaWcgR3JhbW0gISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmF1Y2gnbiBCbG9uZChpbmVuKVdpdHogKEdvbHVtLCAxMS4gQXVnIDE5OTUsIDAxOjM0OjMyKToKV2lzbyBoYWJlbiBnZXdpc3NlIEZyYXVlbiAodm9yIGFsbGVtIEp1bmdmcmF1ZW4pIG5lbgpibGF1ZW4gRmxlY2sgbmViZW4gZGVtIEJhdWNobmFiZWwgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmRpZSAoR29sdW0sIDExLiBBdWcgMTk5NSwgMDE6MzU6MjkpOgpOYSBlcyBnaWJ0IGF1Y2ggQmxvbmRlIEp1bmcncwoKR29MdU0gZGVyIFdhc3NlcnN0b2ZmYmxvbmRpZSA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3QgdG8gdG8gdGVyIChHb2x1bSwgMTEuIEF1ZyAxOTk1LCAwMTo0NjozNyk6ClN0ZWh0IGVpbiBTdGFnZWxpIChTdG90dGVyZXIpIGF1ZiBuZXIgQnJ1ZWNrZS4KS29tbXQgZWluIHp3ZWl0ZXIgU3RvdHRlcmVyIGFuIDoKU3RhZ2VsaTEgOiBIYSBoYSBoYWxsbyBkIGQgZHUKU3RhZ2VsaTIgOiBIYSBoYSBoYWxsbyBkIGQgZHUKClN0YWdlbGkxIDogaCBoIGhleSBkIGQgZHUgbXUgbXUgbXVzc3QgbWkgbWkgZ2EgZ2FyIG5pIG5pY2h0IG5hIG5hY2hhZWZmZW4KU3RhZ2VsaTIgOiB0IHQgdHUgaSBpIGljaCBkbyBkbyBkb2NoIGdhIGdhIGdhciBuaSBuaWNodAoKZGFyYXVmIHdpcmZ0IFN0YWdlbGkxIFN0YWdlbGkyIHVlYmVyIGRhcyBCcnVlY2tlbmdlbGFlbmRlcgpSdWZ0IGRlciBoZXJhdWYgOiBoZSBoZSBpIGkgaWNoIGthIGthIGthbm4gZG8gZG8gZG9jaCBuaSBuaSBuaWNodCBzY2h3aSBzY2h3aQpzY2h3aW1tZW4KZGFyYXVmIFN0YWdlbGkxIDogSGEgaGEgaGFydG5hZSBuYWUgbmFlIGNraWdlciBrZSBrZSBrZXJsCgpHb2x1bSBkZXIgRWluc2FtZSBkZXIgWmVpdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5lciAoR29sdW0sIDExLiBBdWcgMTk5NSwgMDE6NTM6MDgpOgpMYWV1ZnQgZWluIFNjaHd1bGVyIGRpZSBTdHJhc3NlIGVudGxhbmcgOgpraWNrdCBqZWRlbiBkZXIgaWhtIGdlZmFlbGx0IGFuIC4KU2NodWJpZHViaWR1IE51ciBpY2ggdW5kIERVICEKU2NodWJpZHViaWRlaSB3aWUgd2FlcnMgZGVuIG1pdCB1bnMgWndlaSA/CgpEZXIgZXJzdGUgU29ycnkgYWJlciBpY2ggaGFiZSBrZWluZSBaZWl0IGZ1ZXIgc293YXMgIQoKb2sgZGVyIG5hZWNoc3RlIDoKU2NodWJpZHViaWR1IG51ciBpY2ggdW5kIERVICEKU2NodWJpZHViaWRlaSB3aWUgd2FlcnMgZGVuIG1pdCB1bnMgendlaSA/IQoKTm9lIGJpbiBIZXRlcm8gLiBVbmQgdHNjaHVlc3MKCm5vY2ggZWluZXIgOgpTY2h1YmlkdWJpZHUgTnVyIGljaCB1bmQgRFUgIQpTY2h1YmlkdWJpZGVpIHdpZSB3YWVycyBkZW4gbWl0IHVucyB6d2VpID8KCmRlciBBbnR3b3J0ZXQgOgpTY2h1YmlkdWJpZGVpIFNpdHRlbnBvbGl6ZWkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBlaW5lciAoQmFtYnVsa28sIDExLiBBdWcgMTk5NSwgMDI6MTE6MjYpOgojISBybj1Hb2x1bSBydD04MDgwOTg3ODgKV2FzIGhhdCBzY2h3dWwgc2VpbiB1bmQgZGllIFNpdHRlbnBvbGl6ZWkgbWl0ZWluYW5kZXIgenUgdHVuPz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiB1cmFsdGVyIChCYW1iZWwsIDExLiBBdWcgMTk5NSwgMDI6MTQ6NDYpOgpGYWVocnQgZWluIFRyYWJiaSB1ZWJlciBkaWUgTGFuZHN0cmFzc2UuCkVyIGtvbW10IGFuIGVpbmVtIEt1aGZsYWRlbiB2b3JiZWkuCkt1aGZsYWRlbjogJ1dhcyBiaXN0IGR1IGRlbm4/JwpUcmFiYmk6IGBFaW4gQXV0by4nCkt1aGZsYWRlOiBgICpwcnV1dXV1dXV1dXVzdCogV2VubiBkdSBlaW4gQXV0byBiaXN0LCBkYW5uIGJpbiBpY2ggZWluZSBQaXp6YSEnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IG5vY2ggZWluZXIgKEdvbHVtLCAxMS4gQXVnIDE5OTUsIDAyOjUwOjU1KToKIyEgcm49QmFtYnVsa28gcnQ9ODA4MDk5ODg2CkhtbW0ga2VpbmUgQWhudW5nIDspCkRlciBpc3QgaGllciBzbyBpbiBVbWxhdWYKCkdvbHVtIChoYXQgbmljaHRzIGdlZ2VuIFNDaHd1bGUpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWluIHVyYWx0ZXIgKEdvbHVtLCAxMS4gQXVnIDE5OTUsIDAyOjUxOjI4KToKIyEgcm49QmFtYmVsIHJ0PTgwODEwMDA4NgpXYXMgaXN0IGVpbiBUcmFiaSBtaXQgVGFzY2hlbnJlY2huZXIgaW0gQXJtYXR1cmVuYnJldHQgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHJhYmkgZGllIDJ0ZSAoR29sdW0sIDExLiBBdWcgMTk5NSwgMDI6NTE6NDgpOgpLbmlnaHQgUmlkZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aXR6ZSAoR29sdW0sIDExLiBBdWcgMTk5NSwgMDM6MDc6MzQpOgpXaXNzdCBJaHIgd2lzbyBBbXBlbG4gUm90IHVuZCBHUnVlbiBzaW5kID8Kbm9lID8KTkEgUm90IGlzdCBkaWUgRmFyYmUgZGVyIExpZWJlIGRhIGthbm4gbWFuIGFuaGFsdGVuIHVuZCBtaXQgZGVyIEZyZXVuZGluCmtudXRzY2hlbgpVbmQgZ3J1ZW4gaXN0IGphIGRpZSBGYXJiZSBkZXIgSG9mZm51bmcgLCBkYSBrYW5uIG1hbiBudXIgaG9mZmVuIGRhcyBkaWUKbmFlY2hzdGUgQW1wZWwgYXVmIFJvdCBzdGVodCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVuZCBlaW4gS29obC1XaXR6IChKaW1kaWdyaXosIDEyLiBBdWcgMTk5NSwgMTY6NTA6MjYpOgojISBybj1Bc21vZGlzIHJ0PTgwODA4MzM3NwpIbW1tICwgaWNoIHdlaXNzIHdvaGVyIGRhcyBrb21tdCAsIGhhYiBpY2ggbm9jaCBkYWhlaW0gYXVmIFZpZGVvOgoKR2FueiBndXQgZmFuZCBpY2ggbm9jaDoKIFRoZW8gV2VpZ2wgemVpZ3QgZGVtIEthYmluZXR0IHNlaW5lIEthcnRlbnNhbW1sdW5nLCB6dWZhZWxsaWcKaGF0IGRlciBUaXNjaCBlaWVuIEJyYXVuLUdlbGItZ2VzdHJlaWZ0ZSBUaXNjaGRlY2tlLgpXZWlnbDouLmJsYSBibGEgLCB1bmQgaGllciBtZWluIHNjaG9lbnN0ZXMgU3R1ZWNrOiBEYXMgaGVpbGlnZSByb2VtaXNjaGUKUmVpY2ggZGV1dHNjaGVyIE5hdGlvbmVuLiBEYSBoYXQgc29nYXIgSXRhbGllbiBub2NoIHl1IHVucyBnaG9lcnQsCnVuZCBoaWVyIGRhcyBnYW56ZSBnZXN0cmVpZnRlLi4KS29obCA6ICh0b3RlbCBiZWVpbmRydWNrdCBzdGFycnQgZXIgYXVmIGRpZSBnZXN0cmVpZnRlIFRpc2NoZGVja2UsIHdpcmZ0CmRhYmVpIGRpZSBLYXJ0ZW4gaGludW50ZXIpOiBVaWlpLCBkZXMgZ2FuemUgZ2VzdHJlaWZ0ZSwgYWJlciBtYWwgaW0KVmVydHJhdWVuIFRoZW8sIHdvIHdhciBkZW5uIGRhIGRpZSBIYXVwdHNzdGFkdCA/PwooYWxsZ2VtZWllcyBhbnMgSGlybiBzY2hsYWdlbikKCmtvbW10IGVyemFlaGx0IGVpbmZhY2ggbmVkIHNvIGNvb2wgcnVlYmVyICA6LS8KCmN1LAogSmFtZXMgQm9saXZhciBkaUdyaXoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbmQgbm9jaCB1ZWJlciBUYWtlIFRoYXQgaGVyZ2V6b2dlbiAoTWFuZ28sIDEzLiBBdWcgMTk5NSwgMDI6NDQ6MDApOgojISBybj1Bc21vZGlzIHJ0PTgwODA4MzYzOQpkYSBnZWhvZXJ0IG5vY2ggZGF6dQoKdW5kIGtyZWlzY2h0IHdpZSB3aWxkIGhlcnVtCgo6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc2Nob24gZ2Vob2VydD8gKE1hbmdvLCAxMy4gQXVnIDE5OTUsIDAyOjUzOjMwKToKCldhcyBnZWh0IGVpbmVyIEZsaWVnZSBhbHMgbGV0enRlcyBkdXJjaApkZW4gS29wZiB3ZW5uIHNpZSBhbiBlaW5lciBXaW5kc2NodXR6LQpzY2hlaWJlIHplcnNjaGVsbHQ/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGllIGFudHdvcnQgKE1hbmdvLCAxMy4gQXVnIDE5OTUsIDAyOjUzOjMwKToKCklociBBcnNjaC4KCjopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUnVoaWdlciBTb25udGFnIGluZGVyIE1QQSAoQXVncmEsIDEzLiBBdWcgMTk5NSwgMTk6MzI6NTkpOgpTZWl0IGNhIDMgaCBrZWluIG5ldXIgLWFydGlrZWwgaW4gZGVyIE1QQS4gTXVzcyBhbSBzb25udGFnIGxpZWdlbi4gRGFiZWkgc2luZAplaW5pZ2UgTGV1dGUgaGllci4gRGllIG1laXN0ZW4gZGF2b24gc2NoZWluZSBhYmVyIGlyZ2VuZHdlaSBtaXQgQm9pbmdzIG5ldXIKUXVlc3QgYmVzY2hhZWZ0aWd0IHp1IHNlaW4uIE5haiwgYWJlciB0cm90emRlbSBrZWluIEdydW5kLi4uLmljaCBtb2VjaHQgd2FzIHp1Cmxlc2VuIGhhYmVuIQoKQXVncmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSdWhpZ2VyIFNvbm50YWcgaW5kZXIgTVBBIChNb3Jnb24sIDEzLiBBdWcgMTk5NSwgMTk6NDk6NTkpOgojISBybj1BdWdyYSBydD04MDgzMzUxNzkKTW9yZ29uIHdpbGwgYXVjaCBlaW4gcGFhciBBcnRpa2VsIQpLZWluIERpc2t1c2lvbnNzdG9mZiBtZWhyIHZvcmhhbmRlbj8/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZ1ZXIgTWF0aGVtYXRpa2VyIChXYXJsb3JkLCAxMy4gQXVnIDE5OTUsIDIzOjUwOjEwKToKCkZ1ZXIgd2FzIHN0ZWh0IGRpZSBaYWhsZW5rb21iaW5hdGlvbjoKMiA1IDggOSAzID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBmdWVyIE1hdGhlbWF0aWtlciAoV2FybG9yZCwgMTMuIEF1ZyAxOTk1LCAyMzo1MDo1NCk6CiMhIHJuPVdhcmxvcmQgcnQ9ODA4MzUwNjEwCgpXZW5uIDIgbmFjaCA1IE1pbnV0ZW4gbmljaHQgOGdlYmVuLCBzbyBrb2VubmVuIHNpZSBuYWNoIDkgTW9uYXRlbiB6dSAzLiBzZWluCjspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbG9uZGluZSwgZGllIHgtdGUgKFdhcmxvcmQsIDEzLiBBdWcgMTk5NSwgMjM6NTU6MTMpOgoKV2FydW0gZHVlcmZlbiBCbG9uZGluZW4gbmllIGxhZW5nZXIgYWxzIDE1IG1pbiBNaXR0YWdzcGF1c2UgbWFjaGVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsb25kaW5lLCBkaWUgeC10ZSAoV2FybG9yZCwgMTMuIEF1ZyAxOTk1LCAyMzo1NTo0Nyk6CiMhIHJuPVdhcmxvcmQgcnQ9ODA4MzUwOTEzCldlaWwgbWFuIHNpZSBzb25zdCB3aWVkZXIgZWlubGVybmVuIG11c3MgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpvaCAoR2FyZmllbGQsIDE0LiBBdWcgMTk5NSwgMDA6NDE6MDkpOgoKbmV1bGljaCB2b3IgZGVtIGdvYmxpbmxhZ2VyCgogQWduZXRoYSB2ZXJ3dXNjaGVsdCBEZWluZSBIYWFyZS4KQWduZXRoYSB2ZXJ3dXNjaGVsdCBEZWluZSBIYWFyZS4KZ3JpbnMKRHUgZ3JpbnN0Lgo+IEFnbmV0aGEgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCkFnbmV0aGEgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCkFnbmV0aGEgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCkR1IGhhc3QgamV0enQgMjAyIExlYmVuc3B1bmt0ZSB1bmQgMTIyIE1hZ2llcHVua3RlLgpBZ25ldGhhIHZlcnd1c2NoZWx0IERlaW5lIEhhYXJlLgpBZ25ldGhhIHZlcnd1c2NoZWx0IERlaW5lIEhhYXJlLgpBZ25ldGhhIHZlcnd1c2NoZWx0IERlaW5lIEhhYXJlLgpyb3RmbApBZ25ldGhhIHZlcnd1c2NoZWx0IERlaW5lIEhhYXJlLgpEdSByb3RmbHN0Lgo+IEFnbmV0aGEgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCkFnbmV0aGEgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCkFnbmV0aGEgdmVyd3VzY2hlbHQgRGVpbmUgSGFhcmUuCgoKZ2FyZmllbGQsIGdyaW5zZW5kLgoqKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNFWCEgKEhhdGUsIDE0LiBBdWcgMTk5NSwgMDE6Mzc6NTkpOgpTRVggLi4uIGlzdCB3aWUgQnVuamVlLUp1bXBpbmcuCgogICAgICAgIFNpY2ggZWluZmFjaCBzZWluZW4gR2VmdWVobGVuIHVlYmVybGFzc2VuIHVuZCBob2ZmZW4sIGRhc3MKICAgICAgICBkZXIgR3VtbWkgbmljaHQgcmVpc3N0LgoKSGF0ZSAoaW4gZGUuYWx0Lmpva2VzIGdlZnVuZGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTTtvZGVsLVdpdHogKENlcmVidXMsIDE0LiBBdWcgMTk5NSwgMTA6Mjk6MjgpOgoKQ2xhdWRpYSBTY2hpZmZlciB1bmQgTmFvbWkgQ2FtcGJlbGwga29jaGVuIGVpbmUgS2FubmUgVGVlLiBBbHMgc2llIGRhcyBoZWlzc2UKV2Fzc2VyIGF1ZmdlZ29zc2VuIGhhYmVuLCBpc3Qgbm9jaCBldHdhcyBkYXZvbiBkYS4KTmFvbWkgbWVpbnQ6ICJEYXMgc2Nob2VuZSBoZWlzc2UgV2Fzc2VyLiBFaWdlbnRsaWNoIHZpZWwgenUgc2NoYWRlIHp1bQpXZWdraXBwZW4uIgpNZWludCBDbGF1ZGlhIDogIlN0aW1tdCwgZGFzIGthbm4gbWFuIGltbWVyIGJyYXVjaGVuLiBEYXMgZnJpZXJlbiB3aXIgZWluISIKCipsYWNoKgpEZXIgYmVzdGUgV2l0eiBpbiBkZXIgbGV0enRlbiBBdXNnYWJlIHZvbiAiTWFlZGNoZW4iLgpDZXJlYnVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgaXN0IGVpbiBEQU0gPyAoS2V0b3MsIDE0LiBBdWcgMTk5NSwgMTU6MDE6NTEpOgpXYXMgaXN0IGVpbiBEQU06CgpkdWVtbXN0ZXIgYW56dW5laG1lbmRlciBNdWRkZXIKClVuZCB3YXMgaXN0IGVpbiBEVU0gPwoKZHVlbW1zdGVyIHVuZXJmYWhyZW5lciBNYWdpZXIKCjstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlbm5lcmZlaW5kbGljaD8/IChOb3J3ZWdlciwgMTQuIEF1ZyAxOTk1LCAyMzowMjo0Nyk6CkljaCB3ZWlzcyBuaWNodCBvYiBkZXIgV2l0eiBhbHQgaXN0IG9kZXIgbmljaHQsIGljaCBoYWIgaWhuIGhpZXIgYmlzaGVyIG5vY2gKbmljaHQgZ2VzZWhlbi4uLgoKV2FydW0gaGFiZW4gTWFlbm5lciBCZWluZT8KCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZW5uZXJmZWluZGxpY2g/PyAoTm9yd2VnZXIsIDE0LiBBdWcgMTk5NSwgMjM6MDM6MzIpOgpEYW1pdCBzaWUgbmljaHQgU2Fja2h1ZXBmZW4gbXVlc3Nlbi4uLgoKTm9yd2kuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVwcywgZWluIEJsb25kaW5lbndpdHogOi0pIChBcmRhbmEsIDE1LiBBdWcgMTk5NSwgMDE6MzY6MDkpOgpXYXMgaXN0IGVpbmUgbWl0IFNjaG9rb2xhZGVuc29zc2UgdWViZXJnb3NzZW5lIEJsb25kaW5lPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRpZSB3YWhyc2NoZWlubGljaCBsYWVuZ3N0ZSBQcmFsaW5lIGRlciBXZWx0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW4gZWlnZW5lciBTYWNoZSA7LSkgKEFyZGFuYSwgMTUuIEF1ZyAxOTk1LCAwMTozODoyNyk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIE9zdGRldXRzY2hlbiB1bmQgZWluZW0gVHVlcmtlbj8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRpZSBUdWVya2VuIGtvZW5uZW4gRGV1dHNjaCB1bmQgaGFiZW4gQXJiZWl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBub2NoIGVpbmVyIChTY2hydW1wZmksIDE1LiBBdWcgMTk5NSwgMTM6MDU6MDQpOgojISBybj1CYW1idWxrbyBydD04MDgwOTk4ODYKV2FocnNjaGVpbmxpY2ggaXN0IGRpZSBTY2h3ZWl6IGFlaG5saWNoIGhvbW9waG9iIHdpZSBPZXN0ZXJyZWljaC4gSW4KT2VzdGVycmVpY2ggZGFyZnN0ZSBub2NoIG5pY2h0IG1hbCBlaW4gQnVjaCByYXVzYnJpbmdlbiwgZGFzcyB1ZWJlciBTY2h3dWxlCm9kZXIgU2Nod3Vsc2VpbiBzY2hyZWlidC4KU2NocnVtcGZpIGZyYWd0IHNpY2ggd2FzIGRlciBBcnRpa2VsIGluIFdpdHplIHR1dCwgc2llIGZpbmRldCBkYXMgbmFlbWxpY2gKZ2FyIG5pY2h0IHdpdHppZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogbm9jaCBlaW5lciAoR29sdW0sIDE1LiBBdWcgMTk5NSwgMTc6MjE6MDMpOgojISBybj1TY2hydW1wZmkgcnQ9ODA4NDg0NzA0ClNBZ2UgbmFqYSBkYXMgaGF0IHNpY2ggenVtIEdsdWNrIGhpZXIgZWluIHdlbmlnIHZlcmFlbmRlcnQgLCBkaWUgU2Nod3VsZW4KdHJhdWVuIHNpY2ggdW50ZXJkZXNzZW4gYXVjaCBlaW5pZ2VzIG1laHIgLiBFcnN0IGdlcmFkZSB2b3IgZWluIHBhYXIgV29jaGVuCmhhdCBlcyBoaWVyIGluIFp1ZXJpY2ggbmVuIFR1bnRlblVtenVnIGdlZ2ViZW4gLCB1bmQgaWNoIGZhbmQgZGVuIGVpZ2VudGxpY2gKZWNodCBsdXN0aWcgOylVbmQgYXVjaCBzb25zdCBkaWUgU2Nod3VsZW4gdHJhdWVuIHNpY2ggdW50ZXJkZXNzZW4gdmllbCBtZWhyICwKYXVjaCBnZXJhZGUga3VlcnpsaWNoIGhhdCBlaW4gRXZhbmdlbGlzY2hlciBQZmFycmVyIGhpZXIgaW4gZGVyIFNjaHdlaXogZWluCnNjaHd1bGVzIFBhYXIga2lyY2hsaWNoIHZlcmhlaXJhdGV0ICwgd2FzIG5hdHVlcmxpY2ggenUgZWluaWdlciBBdWZyZWd1bmcKKGZ1ZXIpIGdlc29yZ3QgaGF0IC4KR29sdW0gZGVyIHNpY2ggYXVjaCBmcmFndCB3YXMgZGFzIGluIFdpdHplIHp1IHN1Y2hlbiBoYXQgLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV0kgKFJvY2h1cywgMTcuIEF1ZyAxOTk1LCAwOTo1ODowMik6CkVpbiBaaXRhdCB2b24gZGVuIFdpcnRzY2hhZnRzaW5mb3JtYXRpa2VybjoKCk18bGxlci1GdW5rOiAiRWluZSBkZXIgYmVsaWVidGVzdGVuIERhdGVucmVkdWt0aW9uZW4gdW50ZXIgU3R1ZGVudGVuIGlzdAogICAgICAgICAgICAgIGRpZSBGcmFnZTogJ0lzdCBkYXMga2xhdXN1cnJlbGV2YW50PyciCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmYXJiaWdlciBXaXR6IChBc21vZGlzLCAyMC4gQXVnIDE5OTUsIDAzOjMwOjIwKToKU2llOiAiV2lyIGtlbm5lbiB1bnMgamV0enQgc2Nob24gc28gbGFuZ2UsIGljaCBtdXNzIERpciBlaW4gR2VzdGFlbmRuaXMKbWFjaGVuLiBJY2ggYmluIGZhcmJlbmJsaW5kLiIKRXI6ICJEYW5uIG11c3MgaWNoIERpciBhdWNoIGV0d2FzIHNhZ2VuOiBJY2ggYmluIG5pY2h0IGF1cyBIZXJuZSwgaWNoIGJpbgphdXMgR2hhbmEuIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhtbSwgbWFsIHdhcyByYXNzaXN0aXNjaGVzIDopIChBc21vZGlzLCAyMC4gQXVnIDE5OTUsIDAzOjM0OjI5KToKRWluIFBvbGUgdW5kIGVpbiBSdW1hZW5lIHNpdHplbiBpbiBlaW5lbSBBdXRvLgpXZXIgZmFlaHJ0ID8KCgoKCgoKCgoKCgpFaW4gUG9saXppc3QgIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvZWRjaGVud2l0eiBub2NobWFsIChBc21vZGlzLCAyMC4gQXVnIDE5OTUsIDAzOjQzOjI2KToKRWluIENoaW5lc2Uga29tbXQgbWl0IGVpbmVyIEJsb25kaW5lIG1pdCBEYXVlcndlbGxlIGF1cyBlaW5lciBCYWVja2VyZWksCndhcyBoYXQgZXIgYmVzdGVsbHQgPz8/PwoKCgoKCgoKCgoKCgpFaW4gUm9nZ2VuYnJvZXRjaGVuIChmdWVyIER1bW1lOiBBdXNzcHJhY2hlIC0+IExvY2tlbmJsb2VkY2hlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvaGwtV2l0eiAoQXNtb2RpcywgMjAuIEF1ZyAxOTk1LCAwMzo0NzoxNik6ClN0cm9tYXVzZmFsbCBpbiBCb25uLgpNaW5pc3RlciBCbHVlbSAzIFN0dW5kZW4gaW0gRmFocnN0dWhsIGVpbmdlc3BlcnJ0LgpLYW56bGVyIEtvaGwgMyBTdHVuZGVuIGF1ZiBkZXIgUm9sbHRyZXBwZSBnZWZhbmdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLb2hsLVdpdHogKEFzbW9kaXMsIDIwLiBBdWcgMTk5NSwgMDM6NDc6NTIpOgojISBybj1Bc21vZGlzIHJ0PTgwODg4MzIzNgpLYW56bGVyIEtvaGwgaW4gUGVraW5nOiAiSGksIENoaW5lc2UgbWVuIC4uLiBkbyB5b3UgaGF2ZSBlbGVjdGlvbnMgPyIKQ2hpbmVzZTogIlllcywgZXZlbHkgbW9sbmluZyAhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLb2hsLVdpdHogKEFzbW9kaXMsIDIwLiBBdWcgMTk5NSwgMDM6NTE6NDApOgojISBybj1Bc21vZGlzIHJ0PTgwODg4MzI3MgpCaWxsIENsaW50b24sIERlciBQYXBzdCwgSGVsbXV0IEtvaGwgdW5kIGVpbiBOb3JtYWxidWVyZ2VyIGZsaWVnZW4gaW4gZWluZW0KRmx1Z3pldWcuCkF1ZiBlaW5tYWwgZWluZSBEdXJjaHNhZ2UgZGVzIFBpbG90ZW46ICJXZXJ0ZSBIZXJyZW4sIGljaCBtdXNzIGlobmVuIGxlaWRlcgptaXR0ZWlsZW4sIGRhc3MgdW5zZXIgRmx1Z3pldWcgaW4gd2VuaWdlbiBBdWdlbmJsaWNrZW4gYWJzdHVlcnplbiB3aXJkLgpMZWlkZXIgaGFiZW4gd2lyIGFiZXIgbnVyIHZpZXIgRmFsbHNjaGlybWUgYW4gQm9yZC4uLiIKTmFqYSwgZXIgc2NobmFwcHQgc2ljaCBlaW5lbiB1bmQgc3ByaW5ndCBhdXMgZGVtIEZsdWd6ZXVnLgpOdW4gdWViZXJsZWdlbiBkaWUgdmllciBhbmRlcmVuLCB3aWUgc2llIHdvaGwgZGllIGRyZWkgRmFsbHNjaGlybWUgYXVmdGVpbGVuCnNvbGxlbi4KQmlsbCBDbGludG9uOiAiT2huZSBtaWNoIHdpcmQgQW1lcmlrYSBrZWluZSBadWt1bmZ0IGhhYmVuLiBJY2ggbXVzcwp3ZWl0ZXJsZWJlbi4gR29vZCBieWUhIiAgU2NobmFwcHQgc2ljaCBlaW5lbiBGYWxsc2NoaXJtIC0gdW5kIHdlY2guLi4KSGVsbXV0IEtvaGw6ICJJY2ggYmluIGRlciBLYW56bGVyIGRlciBFaW5oZWl0IHVuZCBpY2ggd2VyZGUgYXVjaCBub2NoIGRlcgpLYW56bGVyIHZpZWxlciBhbmRlcmVyIERpbmdlLiBNaWNoIGJyYXVjaHQgZGllIFdlbHQuIiAgVW5kIHNwcmluZ3QuLi4KTnVuIHNpbmQgbnVyIG5vY2ggZGVyIEJ1ZXJnZXIgdW5kIGRlciBQYXBzdCBpbSBGbHVnemV1Zy4KRGVyIFBhcHN0OiAiU28sIEp1bmdlLi4uIEljaCBiaW4gamEgc2Nob24gemllbWxpY2ggYWx0LiBJY2ggd2VyZGUgYXVjaApuaWNodCBtZWhyIHZpZWwgYXVmIGRpZXNlciBXZWx0IGFlbmRlcm4ga25uZW4uIE5pbW0gRHUgZGVuIGxldHplbgpGYWxsc2NoaXJtLiIKIkFiZXIgd2llc28gZGVubj8iLCBtZWludCBkZXIgQW5nZXNwcm9jaGVuZSBkYXJhdWZoaW4sICJXaXIga29lbm5lbiBCRUlERQpzcHJpbmdlbi4gSGVsbXV0IEtvaGwgaGF0IG1laW5lbiBTY2hsYWZzYWNrIGVyd2lzY2h0Li4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFudGF3aXR6IChBc21vZGlzLCAyMC4gQXVnIDE5OTUsIDA1OjA0OjI1KToKV29yYW4gZXJrZW5udCBtYW4gZGllIEdhcmFnZSBlaW5lcyBNYW50YWZhaHJlcz8KCgoKCgoKCgoKCgoKCgoKCgpBbiBkZW4gQmx1dHNwdXJlbiBpbiBFbGxlbmJvZ2VuaG9laGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplbGVmYW50ZW4tV2l0eiAoQ2VyZWJ1cywgMjEuIEF1ZyAxOTk1LCAxMzoxNTowNyk6Ckh1aHUhCkViZW4gaW4gZGVyIE1lbnNhIGdlaG9lcnQ6CgpFaW5lbSBNYW5uIG11c3Mgc2VpbiBiZXN0ZXMgU3R1ZWNrIGFtcHV0aWVydCB3ZXJkZW4uIERlciBBcnp0IG1laW50IHp1IGlobToKIldpciBoYWV0dGVuIHZpZWxsZWljaHQgZWluZW4gRXJzYXR6IGZ1ZXIgc2llLi4uIEltIG9lcnRsaWNoZW4gWm9vIGlzdCBlaW4KRWxlZmFudCBnZXN0b3JiZW4sIHdpciBrb2VubnRlbiBpaG5lbiBqYSBkZW4gUnVlc3NlbCBhbnNldHplbi4uLiIKRGVyIE1hbm4gaXN0IHp1bmFlY2hzdCB0b3RhbCB6dWZyaWVkZW4sIHRhdWNodCBhYmVyIG5hY2ggZWluaWdlbiBNb25hdGVuCndpZWRlciBiZWltIEFyenQgYXVmIHVuZCBzYWd0LCBlciBoYWV0dGUgUHJvYmxlbWUuIEZyYWd0IGRlciBBcnp0OiAiQmVpbQpXYXNzZXJsYXNzZW4/IiAtICJOZWluLCBkYXMgaXN0IGtlaW4gUHJvYmxlbS4iIC0gIlNpbmQgZGllIEhvc2VuIHp1IGtsZWluPyIgLQoiTmVpbiwgbmVpbiwgaWNoIGxhc3NlIG1pciBTb25kZXJhbmZlcnRpZ3VuZ2VuIHNjaGlkZXJuLi4uIiAtICJHaWJ0IGVzCnZpZWxsZWljaHQgUHJvYmxlbWUgYmVpbSBTZXg/PyIgLSAiQWNoIHdvLCBnYW56IGltIGdlZ2VudGVpbCEiIC0gIkphIGFiZXIsIHdhcwppc3QgZGVubiBkYW5uIG5pY2h0IGluIE9yZG51bmc/Pz8iIC0gIk5hamEsIGltbWVyIHdlbm4gbWVpbmUgRnJhdSBGcmV1bmRpbm5lbgp6dW0gS2FmZmVlIGVpbmdlbGFkZW4gaGF0LCBrb21tdCBlciByYXVzIHVuZCB3aWxsIFp1Y2tlcmNoZW4hISIKCipncm9laGwqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nod2VyZSBHZWJ1cnQgKERhbmNlciwgMjEuIEF1ZyAxOTk1LCAxNDo1Mzo1Mik6CgpNYW5jaG1hbCBpc3QgZGVyIFRpcHB0ZXVmZWwgZHJpbm5lbiEgU2Nod2VyZSBHZWJ1cnQ6CgoKWWV0aSBrbnVkZGVsdCBEaWNoIG5vY2ggZXR3YXMgdmVyc2NobGFmZW4uCgo+cmtudWRkZWwgeWV0aSAvYXVmcnVldHRlbG5kCldlbm4gamVtYW5kIG5lYmVuIERpciBzdGVodCwgbmltbSBrbnVkZGVsLgoKPmtudWRkZWwgeWF0aSAvYXVmcnVldHRlbG5kCktudWRkbGUgd2VuPwoKPmtudWRsZSB5ZXRpIC9hdWZydWV0dGVsbmQKV2llIGJpdHRlPwoKWWV0aSB3aW5rdCBEaXIgbm9jaCBlaW5tYWwgenUgdW5kIGdlaHQgbmFjaCBPc3Rlbi4KCj5rbnVkZGVsIHlldGkgL2F1ZnJ1ZXR0ZWxuZApLbnVkZGxlIHdlbj8KCj5ya251ZGRlbCB5YXRpIC9hdWZydWV0dGVsbmQKS251ZGRsZSB3ZW4/Cgo+cmtuYnVkZGVsIHlldGkgL2F1ZnJ1ZXR0ZWxuZApXaWUgYml0dGU/Cgo+cmtudWRkZWwgeWV0aSAvYXVmcnVldHRlbG5kCkR1IGtudWRkZWxzdCBZZXRpIGF1ZnJ1ZXR0ZWxuZCBhdXMgZGVyIEZlcm5lLgoKR0VTQ0hBRkZUISEgOi0pCgpEYW5jZXIgLSBzZWluZSBoZWlzc2dldGlwcHRlbiBQZm90ZW4ga3VlaGxlbmQKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNZW5zYS1WZXJhbGJlcnVuZyAoQXNtb2RpcywgMjQuIEF1ZyAxOTk1LCAxNzowMjoyMyk6CkhpLCBoYWIgZ2VyYWRlIHdhcyBMdXN0aWdlcyBpbiB1bnNlcmVyIEZhY2hzY2hhZnRzemVpdHVuZyBnZWxlc2VuOgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgSE9FTExFTlRSSVAgQkVJIE1FTlNBLVpJUFAKCiAgICAgICAgICAgQSBVIFMgRyBBIEIgRSAgSSAgICBBIFUgUyBHIEEgQiBFICBJSSAgICBBIFUgUyBHIEEgQiBFICBJSQogICAgICAgICAgIGdlbGIgICAgICAgICAgICAgICAgZ3J1ZW4gICAgICAgICAgICAgICAgcm90CgoKIFN0dWRlbnRlbjogRE0gMyw1MCAgICAgICAgICAgIERNICAzLDAwICAgICAgICAgICAgIERNIDIsNTAKIEJlZGllbnN0LjogICBXdXJkZSBlaWdlbnRsaWNoIG5vY2ggbmllIGtvbnRyb2xsaWVydCAhCiBHYWVzdGUgICA6IERNIDYsNzAgICAgICAgICAgICBETSAgNiwyMCAgICAgICAgICAgICBETSA1LDcwCgogICAgICAgICAgICAgICAgICBXb2NoZTogS29lbm50ZSBlcyBpbiB1bnNlcmVyIE1lbnNhIGdlYmVuIQoKICAgICAgTSBPIE4gVCBBIEcKICAgICAgICAgIEdydWVuZSBOdWRlbG4gICAgICAgIE1lbnNhICAgICAgICAgICAgICAgIEdlYmFja2VuZXIgRmxlaXNjaC0KICAgICAgICAgIG1pdCBlY2h0ZW4gTGFjaC0gICAgIEhvbWUgb2YgdGhlICAgICAgICAgIGthZXNlIChWKQogICAgICAgICAgc3R1ZWNrY2hlbiAoVikgaW4gICAgIk1pbmlidXJnZXIiIChTKSAgICAgbWl0IFNjaHdhcnp6d2llYmVsbgogICAgICAgICAgWnVtd2VpbmVuc29zc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kIEtva2V0dGVuCiAgICAgICAgICBkYXp1IFNhbGF0CgoKICAgICAgRCBJIEUgTiBTIFQgQSBHCiAgICAgICAgICBTY2h3ZWluZWVsZW5kIChWKSwgICAiT3JlZ2FtaS1Hb3JlbmciICAgICBGcmlrYWRlbGxlCiAgICAgICAgICBSYW1zZXMgICAgICAgICAgICAgICAtIGluZG9uZXNpc2NoZXMgICAgICAoUmVzdGUgdm9uIGdlc3Rlcm4pCiAgICAgICAgICBLYXJ0b2ZmZWxwZmVubmlnZSAgICBOdWRlbGdlcmljaHQgICAgICAgICBtaXQgRWluaGVpdHNzb3NzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHp1bSBGYWx0ZW4gICAgICAgICAgIGJyYXVuCgoKICAgICAgTSBJIFQgVCBXIE8gQyBICiAgICAgICAgICBHZWJhY2tlbmUgICAgICAgICAgICBHZXNwcmVuZ3RlcyAgICAgICAgICBUcm9ja2VuZSBSdWVocmVpZXIKICAgICAgICAgIEd1bW1pcmluZ2UgKFYpLCAgICAgIFJpbmQgKFYpICAgICAgICAgICAgIFJhaG1zcGluYXQgKFMpLAogICAgICAgICAgS25vYmxhdWNoZGVtbywgICAgICAgbWl0IFp3aWViZWxuIHVuZCAgICAgU2Nod2Fua2thcnRvZmZlbG4KICAgICAgICAgIEJhZ3VldHRldG9ldHVuZyAgICAgIENoYW1waWdub25zLCAgICAgICAgIHVuZCBkYSBoYWJlbiB3aXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51ZGVsbiB1bmQgU2FsYXQgICAgIGRlbiBTYWxhdAoKICAgICAgRCBPIE4gTiBFIFIgUyBUIEEgRwogICAgICAgICAgR2VkdWVuc3RldGVzICAgICAgICAgU2Nobmlwb3NhICAgICAgICAgICAgMSBnZXNwcml0enRlciBBcGZlbCAoVikKICAgICAgICAgIFJvdGFyc2NoZmlsZXQgICAgICAgIC0gUE5QLVNjaG5pdHplbCAgICAgCkJsdW1lbmVyZGUtS2Flc2UtUm9lc3RsaW5nCiAgICAgICAgICBUb3RlciBGaXNjaCAoVikgICAgICAoVikgICAgICAgICAgICAgICAgICBHcmF1ZXIgR2VtdWVzZXRlbGxlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kIFJvaGtvdHpzYWxhdAoKICAgICAgRiBSIEUgSSBUIEEgRwogICAgICAgICAgRHVyY2h3YWNoc2VuZXMgICAgICAgQ2FubmVsb25pIChWKSAgICAgICAgS2FydG9mZmVsa3JldGluIChWKQogICAgICAgICAgRnJlaXRhZ3NzdGVhayAoVikgICAgbWl0IGZydWNodGlnZXIgICAgICAgbWl0IGJ1bnRlcgpTYWxhdC1UZXJyaWJsZQogICAgICAgICAgaW4gaXJnZW5kZWluZXIgICAgICAgVG9tYXRlbnNvc3NlCiAgICAgICAgICBWYXJpYXRpb24gICAgICAgICAgICAoZGllIGJyYXVjaHQgbWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWNodCB6dSB2ZXJhbGJlcm4pCgogICAgICAgKFMpU2FlZ2VzcGFlbmUgICAgICAgICAgU3VwcGUgenUgYWxsZW4gR2VyaWNodGVuCiAgICAgICAoUilSaW5kZXJ3YWhuICAgICAgICAgICBEZXNzZXJ0IERNIDAsNDAgYW4gZGVyIERlc3NlcnR0aGVrZSEKICAgICAgIChWKVZpZWwgenUgdW5nZXN1bmQgICAgIFVuc2VyZSBQdWRkaW5ncyBmYWxsZW4gbmllCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXMgZGVyIFNjaHVlc3NlbCAoTWVuc2EtVGVzdCkgIQoKICAgICAgIEFlbmRlcnVuZ2VuIHZvcmJlaGFsdGVuCiAgICAgICAxKVdpciB2ZXJ3ZW5kZW4gY2hsb3JpZXJ0ZXMgU3BlaXNlc2FsegoKICAgICAgICAgQmlzIERvbm5lcnN0YWcgYmlldGVuIHdpciBhbiB1bnNlcmVtIFNhbGF0YnVmZmV0OgogICAgICAgICBQaWthbnQtRmV1cmlnZXMgYXVzIGRlbSBCYWxrYW46IEVzIHdpcmQgd2llZGVyIHNjaGFyZiBnZS0KICAgICAgICAgc2Nob3NzZW4gIQogICAgICAgICBBbnRpLVBhc3RpOiBJdGFsaWVuaXNjaGUgVm9yc3BlaXNlbiB6dW0gQWJnZXdvZWhuZW4uIFVuc2VyZQogICAgICAgICBCcm9ldGNoZW4gd2VyZGVuIGplZGVuIHZvcm1pdHRhZyBmcmlzY2ggZnVlciBTaWUgYXVmZ2ViYWNrZW4hCgoKQU5NRVJLVU5HOiBTY2huaXBvc2EgPSBTY2huaXR6ZWwgbWl0IFBvbW1lcyB1bmQgU2FsYXQgKGdpYnRzIGFsbGUgMi0zIFRhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgbWFuY2htYWwgYWJlciBhdWNoIG1pdCBOdWRlbG4gc3RhdHQgUG9tbWVzLCBkYXMKICAgICAgICAgICAgICAgICAgICAgICBoZWlzc3QgZGFubiBTY2huaW51c2EpCiAgICAgICAgICAgU2Nod2VpbmVlbGVuZCA9IFNjaHdlaW5lbGVuZGUob3JpZy4pCiAgICAgICAgICAgR3VtbWlyaW5nZSA9IENhbGFtYXJlcyhvcmlnLikKICAgICAgICAgICBHZXNwcmVuZ3RlcyBSaW5kID0gR2VzY2huZXR6ZWx0ZXMKICAgICAgICAgICBOYWphLCBkZW4gUmVzdCBrYW5uIG1hbiBzaWNoIGRlbmtlbiA6KQoKCldlciBzb25zdCBub2NoIHNvbGNoZSBTYWNoZW4gYXVmIExhZ2VyIGhhdCwgaGVyIGRhbWl0IDopCgogICAgICAgICAgICAgICAgICAgICAgICAgIENpYW8sIEFzbW9kaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2huIFdpdHogKENlcmVidXMsIDI5LiBBdWcgMTk5NSwgMTc6NDk6NTEpOgpMZXR6dGVucyBpbiBkZXIgS25laXBlIGdlaG9lcnQ6CgpFaW5lIEZyYXUgaXN0IGJlaW0gQXJ6dC4gRGVyIHVudGVyc3VjaHQgc2llIHVuZCBtZWludDogc2NobGVjaHRlIE5hY2hyaWNodDoKc2llIG11ZXNzZW4gc3RlcmJlbiEKCkRpZSBGcmF1IGlzdCBlbnRzZXR6dCB1bmQgZnJhZ3Q6IFdhcnVtIG51cj8KRnJhZ3QgZGVyIEFyenQ6IFJhdWNoZW4gU2llPyAtIE5laW4hClRyaW5rbiBTaWU/IC0gQWIgdW5kIGFuIGVpbiBHbGFlc2NoZW4uCk5laG1lbiBzaWUgc29uc3QgRHJvZ2VuPyAtIEdvdHQgYmV3YWhyZSEKSG1tbW0sIHdpZSBvZnQgaGFiZW4gU2llIGRlbm4gU2V4PyAtIG5hamEsIHNvIGVpbi0sIHp3ZWltYWwuLi4KSW4gZGVyIFdvY2hlPyAtIE5laW4sIGltIEphaHIuLgpEZXIgQXJ6dCBpc3QgdWViZXIgZGllIGxldHp0ZSBBbnR3b3J0IGdhbnogc2Nob2NraWVydCB1bmQgYmVzdGVsbHQgYW0KbmFlY2hzdGVuIFRhZyBkZW4gRWhlbWFubiB6dSBzaWNoOiBJaHJlIEZyYXUgaXN0IHN0ZXJiZW5za3JhbmssIGFiZXIgaWhyIGthbm4KZ2Vob2xmZW4gd2VyZGVuLCB3ZW5uIHNpZSBhYiBqZXR6dCByZWdlbG1hZXNzaWcgendlaW1hbCBkaWUgV29jaGUgbWl0IGlocgpzY2hsYWZlbi4KRGVyIE1hbm4gZ2VodCBuYWNoIEhhdXNlLCBzZWluIEZyYXUgZW1wZmFlbmd0IGlobjogV2FzIGhhdCBlciBnZXNhZ3Q/IC0gRHUKbXVzc3Qgc3RlcmJlbi4KCipsYWNoKgoKQ2VyZWJ1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVmenVnIChDZXJlYnVzLCAzMC4gQXVnIDE5OTUsIDAyOjQ3OjE1KToKTW9pbiEKV2VubiBpY2ggZWggaWRsZW4gbXVzcywgdW0gZGVuIFNhbGFtYW5kZXIgenUgZXJsZWdlbiwga2FubiBpY2ggbWljaCBhdWNoCm51ZXR6bGljaCBtYWNoZW4gdW5kIHdhcyB0aXBwZW46Cgo1MCBGdW4gVGhpbmdzIHRvIGRvIGluIGFuIGVsZXZhdG9lciAgKGJ5IEFsYW4gTWVpc3MpCgoxLiBtYWtlIHJhY2UgY2FyIG5vaXNlcyB3aGVuIGFueW9uZSBnZXRzIG9uIG9yIG9mZi4KMi4gZHJhdyBhIGxpdHRsZSBzcXVhcmUgb24gdGhlIGZsb29yIHdpdGggY2hhbGsgYW5kIGFubm91bmNlIHRvIHRoZSBvdGhlcgpwYXNzZW5nZXJzIHRoYXQgdGhpcyBpcyB5b3VyICJwZXJzb25hbCBzcGFjZSIuCjMgR3JpbWFjZSBwYWluZnVsbHkgd2hpbGUgc21hY2tpbmcgeW91ciBmb3JlaGVhZCBhbmQgbXV0dGVyaW5nOiAiU2h1dCB1cCwKZGFtbWl0LCBhbGwgb2YgeW91IGp1c3Qgc2h1dCBVUCEiCjQud2hpc3RsZSB0aGUgZmlyc3Qgc2V2ZW4gbm90ZXMgb2YgIkl0J3MgYSBzbWFsd29ybGQiIGluY2Vzc2FudGx5Lgo1LlNlbGwgR2lybCBTY291dCBDb29raWVzLgo2LiBvbiBhIGxvbmcgcmlkZSwgc3dheSBzaWRlIHRvIHNpZGUgYXQgdGhlIG5hdHVyYWwgZnJlcXVlbmN5IG9mIHRoZQplbGV2YXRvci4KNy4gU2hhdmUKOC4gQ3JhY2sgb3BlbiB5b3VyIGJyaWVmY2FzZSBvciBwdXJzZSwgYW5kIHdoaWxlIHBlZXJpbmcgaW5zaWRlIGFzayAiR290CmVub3VnaCBhaXIgaW4gdGhlcmU/Igo5LiBPZmZlciBuYW1lIHRhZ3MgdG8gZXZlcnlvbmUgZ2V0dGluZyBvbiB0aGUgZWxldmF0b3IuIFdlYXIgeW91cnMgdXBzaWRlCmRvd24uCjEwLiBTdGFuZCBzaWxlbnQgYW5kIG1vdGlvbmxlc3MgaW4gdGhlIGNvcm5lciwgZmFjaW5nIHRoZSB3YWxsLCB3aXRob3V0CmdldHRpbmcgb2ZmLgoKc28sIGF1ZiBkaWUgbmFlY2hzdGVuIDQwIGhhYiBpY2ggZXJzdG1hbCBrZWluZSBMdXN0IChhdWZzIEFidGlwcGVuIG1laW5lCmljaCkuIEtvbW10IHZpZWxsZWNpaHQgbmFjaGhlciBub2NoLiBpY2ggaGFiIGRhcyBnYW56ZSBhdWNoIGFscyBmaWxlLCBrYW5uIGljaApwZXIgZS1tYWlsIGFuIGludGVyZXNzaWVydGUgdmVyc2VuZGVuLi46LSkKCkNlcmVidXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBlc3NpICYgT3B0aSAoV2FybG9yZCwgIDMuIFNlcCAxOTk1LCAxODowMjoyNyk6CgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCwgendpc2NoZW4gZWluZW0gUGVzc2ltaXN0ZW4gdW5kIGVpbmVtIE9wdGltaXN0ZW4/CgpBbHNvIGRlciBQZXNzaW1pc3Qgc2FndDogIkFsbGUgRnJhdWVuIHNpbmQgc2NobGVjaHQiCldvcmF1ZiBkZXIgT3B0aW1pc3QgYW50d29ydGV0OiAiSG9mZmVudGxpY2ghIiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT2huZSBXb3J0ZSAoV2FyZ29uLCAgNS4gU2VwIDE5OTUsIDE5OjQzOjIyKToKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPaG5lIFdvcnRlIChZZW5kaSwgIDUuIFNlcCAxOTk1LCAyMDozMzo0NSk6CiMhIHJuPVdhcmdvbiBydD04MTAzMjMwMDIKCl9ERVJfIHdhciBndXQuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcHBsZSBncmF0dWxpZXJ0IFdJTkRPT0YgOTUgOikgKEpvZiwgIDYuIFNlcCAxOTk1LCAxNzo0ODo1OSk6CgogSW4gQW1pbGFuZCBmYWhyZW4gQnVzc2UgcnVtLCBhdWYgZGVuZW4gQXBwbGUgTWljcm9Tb2Z0IHp1ciBBdXNsaWVmZXJ1bmcKdm9uIFdpbmRvb2YgOTUgZ3JhdHVsaWVydC4gQXVmc2NocmlmdCAoRElDSyBVTkQgRkVUVCk6CgpDOlxPTkdSVExOUy5XOTUKCiA6KSkpCgogOCszIC0gZGVyIEluZHVzdHJpZXN0YW5kYXJkIDopCgogLkpvZiAocGFzc3Qgc29nYXIgaW4gZGllIEV4dGVuc2lvbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClc5NSAtIGRpZSBIT1RMSU5FIChKb2YsICA2LiBTZXAgMTk5NSwgMTc6NTA6MTUpOgoKICAgICAgICAgICAgICAgICAgQSBNT1JOSU5HIFdJVEggV0lOOTUgVVNFUiBTVVBQT1JUCgpXaW5kIDk1IFVzZXIgU3VwcG9ydCBIZWxwbGluZTogR29vZCBtb3JuaW5nLiBDYW4gSSBoZWxwIHlvdT8KQ0FMTEVSMTogUGxlYXNlIGRvbid0IHB1dCBtZSBvbiBob2xkLiBJIGhhdmUgYmVlbiBob2xkaW5nIGZvciBvdmVyIDMwCm1pbnV0ZXMgYW5kIGl0cyBhIGxvbmcgZGlzdGFuY2UgY2FsbCEKV0lOOTVVU1IuSExQOiBPSy4gV2hhdHMgeW91ciBwcm9ibGVtPwpDQUxMRVI6IFdoZW4gSSB0cnkgdG8gaW5zdGFsbCBteSBwcmludGVyIGRyaXZlcihvciBhbnkgb3RoZXIgZmxvcHB5KW15Cndob2xlIHN5c3RlbSBmcmVlemVzIHVwLi5XaGF0J3MgZ29pbmcgb24uLj8gVGhlIGZsb3BweSBkcml2ZXMgaGFuZyB0aGUKbWFjaGluZS4KV0lOOTVVU1IuSExQOiBDYW4geW91IGhvbGQgcGxlYXNlPyBIZWxsbyBsaW5lIDIuIEhvdyBjYW4gSSBoZWxwPwoKQ0FMTEVSMjogTXkgUE9QIGFjY291bnQgd29ya3Mgd2l0aCBhbGwgbXkgaW50ZXJuZXQgc29mdHdhcmUgYnV0IEV1ZG9yYS4KRG9lcyBhbnlvbmUga25vdyBob3cgdG8gZ2V0IEV1ZG9yYSB3b3JraW5nIHdpdGggV2luOTUgPwpXSU45NVVTUi5ITFA6IE9LLiBZb3UgYXJlIGN1dCBvZmYgZnJvbSBJbnRlcm5ldC4gSXNvbGF0ZWQuIENhbid0CmNvbW11bmljYXRlLiBUaGF0IGlzIHZlcnkgZnJ1c3RyYXRpbmcuIEhvbGQgcGxlYXNlLiBIZWxsbyBsaW5lIDMuIEhvdyBjYW4KSSBoZWxwPwoKQ0FMTEVSMzogT2ssIEkgaGF2ZTo0ODYtRFg0LTEwMG1oeiAxNiBtYiByYW0gMiAxLWdpZyBoYXJkIGRyaXZlcyAod2VzdGVybgpEaWdpdGFsKSBEaWFtb25kIFN0ZWxhaCBTRSAoMSBtZWcpIENvcmRsZXNzIExvZ2l0ZWNoIE1vdXNlIFNPTlkgQ0QtUk9NCkNEVTMxQSBJbnRlbCBTYXRpc0ZBWHRpb24gbW9kZW0gKDE0NDAwKSBJIGhhdmUgYWxzbyBJbnN0bGxlZCBNaWNyb3NvZnQKT2ZmaWNlICg5NSB2ZXJzaW9uKQpXaGVuIEkgc3RhcnQgd2luZG93cywgSSBzb21ldGltZXMgZ2V0IGEgcGFnZSBmYXVsdCBlcnJvciBpbiBFeHBsb3JlciBpbgp0aGUgY29tY3RsMzIuZGxsIGZpbGUsIGFuZCBzb21ldGltZXMgd2hlbiBJIG9wZW4gYW55IGZvbGRlcihsaWtlY29udHJvbApwYW5lbClJIGFsc28gZ2V0IGluIGVycm9yIGluIGtlcm5lbDMyLmRsbCB3aGVuIGluIFdvcmQgKG5vdCBhbHdheXMsCmJ1dG9mdGVuIGVub3VnaCB0aGF0IGl0IGlzIGFubm95aW5nKSAgYW5kIHNvbWV0aW1lcyBhIFBhZ2UgZmF1bHQgaW4KR0RJLkVYRQpXSU45NVVTUi5ITFA6IFVoIHllYS4gcmlnaHQuLi4uSGVsbG8gbGluZSA0LiBIb3cgY2FuIEkgaGVscD8KQ0FMTEVSMzogSGVsbG8/IEFtIEkgb24gaG9sZD8gSGVsbG8/CgpDQUxMRVI0OiBBbGwgSSBzZWUgaXMgdGhlIG1lc3NhZ2UgInBsZWFzZSB3YWl0IHdoaWxlIHlvdXIgY29tcHV0ZXIgc2h1dHMKZG93biwiIHdpdGggdGhlIGNsb3VkcyBldGMuIGluIHRoZSBiYWNrZ3JvdW5kLiBOb3RoaW5nIGhhcHBlbnMgYWZ0ZXIgdGhpcy4KV0lOOTVVU1IuSExQOiBQbGVhc2Ugd2FpdCB3aGlsZSBJIHB1dCB5b3Ugb24gaG9sZC4gSGVsbG8gbGluZSA1LiBIb3cgY2FuIEkKaGVscD8KQ0FMTEVSNTogSXMgaXQgcG9zc2libGUgdG8gcmVtb3ZlIHRoZSBsb25nIGZpbGVuYW1lcyBmZWF0dXJlIGZyb20gV2luZG93cwo5NT8gUGVyc29uYWxseSBJIGZlZWwgc2FmZXIgd2l0aCA4LjMgZm9ybWF0LgpXSU45NVVTUi5ITFA6IFRoZSB1c2Ugb2YgOC4zIGZpbGVuYW1lcyBpcyBhIHVuaXF1ZSBhbmQgcG93ZXJmdWwgZmVhdHVyZSBpbgp0aGUgT1MuIEkgYW0gZ2xhZCB5b3Ugd2FudCB0byBhZGhlcmUgdG8gdGhpcyBmZWF0dXJlLiBBcmUgeW91IHBvc3NpYmx5CmludGVyZXN0ZWQgaW4gd29ya2luZyBoZXJlIGF0IHRoZSBoZWxwIGRlc2s/CkNBTExFUjU6IFlFUyEgSSBoYXZlIGFsd2F5cyB3YW50ZWQgdG8uLi4uLi4uCldJTjk1VVNSLkhMUDogUExTUFVUT04uSExEIEhlbGxvIGxpbmUgNi4gSG93IGNhbiBJIGhlbHA/CgpDQUxMRVI2OiBJIGNhbiBubyBsb25nZXIgcmVzdGFydCBXaW45NSBpbnRvIERPUyBtb2RlLiAgTXkgc3lzdGVtIGhhbmdzCihibGFuayBzY3JlZW4pIGFuZCBJIG11c3QgcmVzZXQgdGhlIGNvbXB1dGVyLiAgQWxzbywgd2hlbiBJIHNodXQgZG93biB0aGUKY29tcHV0ZXIsV2luOTUgaGFuZ3MgYW5kIG5ldmVyIGdpdmVzIG1lIHRoZSAiWW91IG1heSBzYWZlbHkgc2h1dCBkb3duIHlvdQpjb21wdXRlIG5vdy4iCldJTjk1VVNFUi5ITFA6IE9LLiBHbyBhaGVhZCBhbmQgcG93ZXIgZG93biB5b3VyIGNvbXB1dGVyLiBBbmQgdGhlbiBwb3dlcgp1cCBhZ2Fpbi4KQ0FMTEVSNjogT0suIFBvd2VyZWQgZG93bi4gTm93IHBvd2VyIHVwLiBIRVkhIFdoYXRzIGhhcHBlbmluZz8gVGhlcmUncyBzbW9rZSEKV0lOOTVVU1IuSExQOiBQbGVhc2UgaG9sZC4gSGVsbG8gbGluZSA3IEhvdyBjYW4gSSBoZWxwPwpDQUxMRVI2OiBEb24ndCBwdXQgbWUgb24gaG9sZCEgQ2FsbCA5MTEhCgpDQUxMRVI3OiBBbnlvbmUga25vd3MgaG93IEkgY2FuIHNldHVwIG15IFdpbjk1IGVudmlyb25tZW50IGluIG9yZGVyIHRvCmFjY2VzcyBteSBpbnRlcm5ldCBwcm92aWRlci4gIEkgdXNlZCB0byBydW4gdGNwbWFuIGluIHdpbmRvd3MsIElzIHRoZXJlIGEKdGNwbWFuIGluIFdpbjk1PyAgUGxlYXNlIGhlbHAuIEkgaGF2ZSBiZWVuIG9uIGhvbGQgZm9yIG92ZXIgMzAgXiZeJSQjCm1pbnV0ZXMuIEkgd2FudCBoZWxwIGFuZCBub3chCldJTjk1VVNSLkhMUDogT0suIENhbG0gZG93bi4gSSBjYW4gaGVscC4gSSB1bmRlcnN0YW5kIHlvdXIgcHJvYmxlbS4KQ0FMTEVSNzogT0suIFRoYW5rcy4gSSBhbSBzb3JyeSBmb3IgeWVsbGluZywgYnV0IEkgYW0gcmVhbGx5IGF0IHdpdHMgZW5kCmFuZC4uLi4uLi4KV0lOOTVVU1IuSExQOiBPSyBub3cgcGxlYXNlIGhvbGQuIEhlbGxvIGxpbmUgOC4gSG93IGNhbiBJIGhlbHA/CgpDQUxMRVI4OiBIaSwgSSBqdXN0IG5vdGljZWQgYSAxMDBtYiBDT01NQU5ELkNPTSAgZmlsZSBpbiB0aGUgcm9vdCBkaXIgb2YKbXkgQzpcIGRyaXZlLiBXaGF0IGlzIHRoaXMgYW5kIGNhbiBJIGdldCByaWQgb2YgaXQ/ICBJIHdhcyB3b25kZXJpbmcgd2hlcmUKYWxsIG15IGRpc2sgc3BhY2Ugd2FzIGdvaW5nLiAgIFNoZWVzaApXSU45NVVTUi5ITFA6IFN1cmUuIFBsZWFzZSBob2xkLgpDQUxMRVI4OiBTdXJlIHdoYXQ/IERlbGV0ZSBpdD8gT3Iga2VlcCBpdD8gSGVsbG8/IEhleSEKCkNBTExFUjk6IEkganVzdCB3YW50ZWQgdG8gc2F5IHRoYXQgSSBmbGF3bGVzc2x5IGluc3RhbGxlZCB3aW5kb3dzIDk1IHdpdGgKbm8gcHJvYmxlbXMuCldJTjk1VVNSLkhMUDogR1JFQVQhIERpZCB0aGUgY29uZmlnLnN5cyB1cGRhdGVzIGdvIHdlbGwgYWxzbz8KQ0FMTEVSIDk6IFRoZSB3aGF0PwpXSU45NVVTUi5ITFA6IFRoYW5rcyBmb3IgdGhlIGNhbGwuIEdvdCB0byBnby4gSGF2ZSBvdGhlciBzYXRpc2ZpZWQgdXNlcnMKb24gaG9sZC4KQ0FMTEVSIDk6IFRoZSB3aGF0PyBXaGF0IGRpZCBJIG1pc3M/IEhlbGxvPyBienp6enp6enp6enp6Li4uLgoKCldJTjk1VVNSLkhMUDogT0suIENBTExFUjEuIERpc2sgZHJpdmUgcHJvYmxlbS4gT2suIEJ1eSBhIE1hYy4gUGx1ZyBhbmQKcGxheS4gVGhhbmtzIGZvciB0aGUgY2FsbC4KCldJTjk1VVNSLkhMUDogT0suIENBTExFUjIuIEV1ZG9yYSBwcm9ibGVtLiBPSyBCdXkgYSBNYWMuIFBvaW50IGFuZCBjbGljay4KVGhhbmtzIGZvciB0aGUgY2FsbC4KCldJTjk1VVNSLkhMUDogT0sgQ0FMTEVSMy4gUHJvYmxlbXMgd2l0aCBhIHdob2xlIGJ1bmNoIG9mIHN0dWZmLiBPYnZpb3VzbHkKeW91IGRlc2VydmUgd2luOTUgYW5kIGVuam95IG1pc2VyeS4gQW5kIGlmIEkgaGVscGVkIHlvdSBJIHdvdWxkIGJlCmRlcHJpdmluZyB5b3Ugb2YgZnVuLiBZb3UgcHJvYmFibHkgd2VyZSBvbmUgb2YgdGhvc2Ugd2FpdGluZyBhdCBtaWRuaWdodAp0byBnaXZlIEJpbGwgeW91ciBtb25leS4gV2hlbiB5b3UgZ2V0IGEgbGlmZSwgYnV5IGEgTWFjLiBCZWNvbWUgYm9yZWQuClRoYW5rcyBmb3IgdGhlIGNhbGwuCgpXSU45NVVTUi5ITFA6IE9LLiBDQUxMRVI0LiBzaHV0IGRvd24gcHJvYmxlbS4gU1BFQ0lBTC1wdWxsZG93bi1TSFVUIERPV04uCk1hY2ludG9zaC4gTG9vayBpbnRvIGl0LiBUaGFua3MgZm9yIHRoZSBjYWxsLgoKV0lOOTVVU1IuSExQOiBPSy4gQ0FMTEVSNS4gWW91IGxpa2UgdGhlIDguMy4gV2VsbCwgVEhLUzRUSEUuQ0FMLiBoYW5nIHVwLgpIRVkhIFlvdSBndXlzISBZb3Ugc2hvdWxkYSBoZWFyZCB0aGlzIGxhc3QgQ0FMTEVSISBMaWtlcyB0aGUgOC4zISAoYWxsIGFyZQpST1RGTCkKCldJTjk1VVNSLkhMUDogT0suIENBTExFUjYuIENhbGwgOTExPyBTdXJlLiBUaGFua3MgZm9yIHRoZSBjYWxsLiBHbGFkIHRvIGJlCm9mIGhlbHAuCgpXSU45NVVTUi5ITFA6IE9LLiBDQUxMRVI3LiBDYW4ndCBhY2Nlc3MgeW91ciBJbnRlcm5ldCBwcm92aWRlci4gTWFjaW50b3NoLgpHZXQgb25lLiBQbHVnIGFuZCBQbGF5LiBMb29rIGludG8gaXQuCgpXSU45NVVTUi5ITFA6IE9LLiBDQUxMRVI4LiAxMDBNQiBmaWxlLiBEZWxldGUgaXQuIFJlYm9vdC4gSWYgaXQgZG9lc250CndvcmsuIFJlc3RvcmUgaXQuIE9yLCBTeXN0ZW0gNy41LiA0TUIgdG90YWwuIExvb2sgaW50byBpdC4KCldJTjk1VVNSLkhMUDogT0suIENBTExFUjkuIFRob3VnaHQgeW91IGhhZCBhIGNsZWFuIGluc3RhbGwuIFRoYW5rcyBmb3IKY2FsbGluZy4gKG1vcmUgbGF1Z2h0ZXIpCgpXSU45NVVTUi5ITFA6IE9LLiBMdW5jaCB0aW1lLiBDOlxJQU1PVVRPRi5IRVIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB6dWZhZWxsaWcgZ2VsZXNlbiA7KSAoRWxieXRlLCAgOC4gU2VwIDE5OTUsIDE0OjI5OjA5KToKV2FzIG1laW50IGRlciBBdGFyaSBTVC1Vc2VyIHp1IFVOSVggPwpBOiBNZWluIFRPUyBpc3QgbW9kZXJuZXIuCgpVbmQgd2llIGRlbmt0IGVyIHVlYmVyIE11bHRpdGFza2luZyA/CkE6IEthbm4gbWFuIGRhcyBFc3NlbiA/CgpXYXJ1bSBoYXQgZGVyIE1lZ2EgU1QgNCBNQiBTcGVpY2hlciwgYWJlciBrZWluIE11bHRpdGFza2luZyA/CkE6IERhbWl0IG1hbiBzZWluZSAzLjUgTUIgZ3Jvc3NlbiBUZXh0ZSBiZWFyYmVpdGVuIGthbm4uCgpXYXMgaXN0IGRlciBUcmF1bSBlaW5lcyBqZWRlbiBTVC1GcmVha3MgPwpBOiBEYXMgZnVlbmZ0ZSBXaW5kb3cuCgpXYXMgaXN0IGtsZWluLCBzY2h3YXJ6IHVuZCBydWNrZWx0IGltIFNla3VuZGVudGFrdCA/CkE6IERlciBNYXVzemVpZ2VyIHZvbiBHRU0uCgpXaWUgYnJhY2h0ZSBtYW4gZnJ1ZWhlciBTVC1CQVNJQyB6dW0gQWJzdHVyeiA/CkE6IFBSSU5UIDc1LjMKCldhcnVtIGlzdCBkZXIgU1QtRnJlYWsgc28gc3RvbHogYXVmIHNlaW4gTUlESS1JbnRlcmZhY2UgPwpBOiBLZWluZXIgaGF0IGlobSBnZXNhZ3QsIGRhc3MgZGVyIEFtaWdhYmVzaXR6ZXIgZXMgZnVlciAxMDAsLS0ga2F1ZmVuIGthbm4uCgpXb3JpbiB6ZWlndCBzaWNoIGRlciBGb3J0c2Nocml0dCBpbiBkZXIgU1QtU3lzdGVtc29mdHdhcmUgPwpBOiBIZXV0ZSBicmF1Y2h0IGVzIGZ1ZXIgRGF0ZW52ZXJsdXN0ZSAxMDAgc3RhdHQgNDAgRGlyZWN0b3JpZXMgYXVmIGRlciBIRC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFsIHp1ZmFlbGxpZyBnZWxlc2VuIDspIChNdXBmZWwsICA4LiBTZXAgMTk5NSwgMjE6MDk6MzQpOgojISBybj1FbGJ5dGUgcnQ9ODEwNTYzMzQ5CmV0d2FzIG91dGRhdGV0IHd1ZXJkIGljaCBzYWdlbi4uLiAodGlwcGUgYXVmIDE5ODcgb2RlciBzbyA6LSkKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFsIHp1ZmFlbGxpZyBnZWxlc2VuIDspIChCbG9vZHloYXJyeSwgIDguIFNlcCAxOTk1LCAyMzowNToyOCk6CiMhIHJuPU11cGZlbCBydD04MTA1ODczNzQKTmUsIGVoZXIgd29obCAxOTl4LiAxOTg3IGhhYmUgaWNoIG5vY2ggZWluZW4gNTIwJ2VyIG1pdCBodWNrZXBhY2stU3BlaWNoZXItCkNoaXBzIGF1ZiAxbWIgZ2VicmFjaHQuCkdlbGFjaHQgaGFiZSBpY2ggdHJvdHpkZW0sIG9id29obCBpY2ggZGFzIG1pdCBkZW0gTWlkaS1JbnRlcmZhY2UgbmljaHQgZ2Fuegp2ZXJzdGFuZGVuIGhhYmUuCgpCbG9vZHkgSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFsIHp1ZmFlbGxpZyBnZWxlc2VuIDspIChFbGJ5dGUsICA5LiBTZXAgMTk5NSwgMDc6NTQ6MDYpOgojISBybj1NdXBmZWwgcnQ9ODEwNTg3Mzc0CgpUamEsIGVzIG1hZyBzZWluIGRhcyBkaWUgV2l0emUgbmljaHQgbWVociB1cC10by1kYXRlIHNpbmQsIGFiZXIgc2NobGllc3NsaWNoCmFyYmVpdGVuIGltbWVyIG5vY2ggTGV1dGUgbWl0IGRlbSBTVC4gSWNoIGhhYmUgZGllc2UgV2l0emUgbWFsIHZvbiBlaW5lbQpBbWlnYS1Vc2VyIGJla29tbWVuIDE5OTIgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1hbCB6dWZhZWxsaWcgZ2VsZXNlbiA7KSAoQmlsYm9tLCAgOS4gU2VwIDE5OTUsIDE1OjMwOjEwKToKIyEgcm49RWxieXRlIHJ0PTgxMDYyNjA0NgpJY2ggaGFiZSBkYSBuaXggdmVyc3RhbmRlbi4KS2FubnMgbWlyIGplbWFuZCBtYWwgZXJrbGFlcmVuPwogIEJpbGJvbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWFsIHp1ZmFlbGxpZyBnZWxlc2VuIDspIChHb2x1bSwgMTAuIFNlcCAxOTk1LCAxOToyNTo1Nik6CiMhIHJuPUJpbGJvbSBydD04MTA2NTM0MTAKSG0gZGEgaGFiIGljaCBhdWNoIG5vY2ggZWluZW4gd2lzc3QgaWhyIHdhcyBUT1MgaGVpc3N0PwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKVHJhc2ggT3BlcmF0aW5nIFN5c3RlbXMgOykpegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJpc2NoIGF1cyBkZW0gSW50ZXJuZXQuLi4gKFdhcmdvbiwgMTEuIFNlcCAxOTk1LCAxMTowMzoxMSk6ClN1YmplY3Q6IFJlOiBNaWNybyRsb3RoIFdpbmRvemUgOTUgQmFkZ2VzIC0gaG93IHRoZXkgc2hvdWxkIGJlCkRhdGU6IDggU2VwIDE5OTUgMTY6MzE6NTggR01UCgoKPiBJIGhhdmUgc3BlbnQgMzAgbWludXRlcyBvbiBhIG1hYyAtIHdhaWlpaWl0dHR0dGlpaWlpaWlubm5ubm5nZ2dnZyBmb3IKPiBpdCB0byBmaW5pc2ggc29tZXRoaW5nIHRoYXQgdGFrZXMgYSBmZXcgbWludXRlcyBvbiBhbiBSNDQwMCBJMkVYLCBvciBhCj4gUDUvOTAgZm9yIHRoYXQgbWF0dGVyLgoKSSBhc3N1bWUgdGhhdCB0aGUgInRoaW5nIiB5b3UgYXJlIHdhaXRpbmcgZm9yIGlzIGNyYXNoaW5nLiAgWWVzLCBJIGFncmVlLAp0aGUgUDUvOTAgaXMgaW5kZWVkIGZhciBmYXN0ZXIgYXQgZG9pbmcgdGhhdCB0aGFuIHRoZSBNYWMuClsuLi5dCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnJpc2NoIGF1cyBkZW0gSW50ZXJuZXQuLi4gKEtldG9zLCAxMS4gU2VwIDE5OTUsIDExOjI1OjU3KToKIyEgcm49V2FyZ29uIHJ0PTgxMDgxMDE5MQpIbW0gbGV0enRlbnMgd29sbHRlIGljaCB3YXMgaW4gRmFyYmUgZHJ1Y2tlbiwgbnVyIGxlaWRlciB3YXIgZGVyIERydWNrZXIKbnVyIHZvbSBNQUMgYXVzIGFuenVzdGV1ZXJuLiBBbHNvIGhpbiBnZXNjaGxhcHB0IHp1bSBNYWMgdW5kIERydWNrZXIga2VpbmVyCmhhdHRlIGVpbmVtIFBsYW4uIERlcmplbmlnZSBkZXIgZnVlciBBdXNkcnVjayB6dXN0YWVuZGlnIHdhciBoYXR0ZSBudWxsCkFobnVuZyB3aWUgbWFuIGVpbiBwb3N0c2NyaXB0IGZpbGUgYW0gTWFjIGF1c2RydWNrdC4KSW4gVW5peCBkYXVlcnQgZGFzIDUgc2VjOiBscHIgLVBsYXNlciBmaWxlLnBzCkFiZXIgYXVmIGRlbSBNYWMuLi4gTmFjaCBlaW5lciBoYWxiZW4gU3R1bmRlIGthbSBlaW5lciB2b3JiZWkgZGVyIGRhcyBzY2hvbgptYWwgZ2VzY2hhZnQgaGF0LiBEYSBnaWJ0IGVzIGVpbiBVdGlsaXR5IExhc2Vyd3JpdGVyIG1pdCBkZW0gbWFuIGluIGVpbmVtClVudGVybWVudSBkYXMgbWFjaGVuIGthbm4uCgpQbHVnIGFuZCBiZSBibG9ja2VkIC0gTWFjCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGcmlzY2ggYXVzIGRlbSBJbnRlcm5ldC4uLiAoV2FyZ29uLCAxMS4gU2VwIDE5OTUsIDExOjM5OjMwKToKIyEgcm49S2V0b3MgcnQ9ODEwODExNTU3CnBsdWcgYW5kIHN0YXk/CiAgV2FyZ29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKYWphLCB1bnNlciBaYXJkb3ogOikgKENhcmFkaHJhcywgMTEuIFNlcCAxOTk1LCAyMTowNzo0MCk6CiAgICAgTGl2ZSB2b20gU2NobGFjaHRob2YsIGdlcmFkZSBlYmVuIHBhc3NpZXJ0OgoKCidhcmdsLCB3YXMgbGFnZ3QgZGVubiBoaWVyIHNvCltBbGxnZW1laW46QW1hem9yYV0gbGFnIGdlaCB3ZWcKW0QtY2hhdDpBc21vZGlzQEZpbmFsRnJvbnRpZXJdIG1pc3QKW0QtY2hhdDpBc21vZGlzQEZpbmFsRnJvbnRpZXJdIGlzdCBNRyBqZXR6dCBkb3duID8KW0QtY2hhdDpaYXJkb3pAV3VuZGVybGFuZF0gU2llaHQgc28gYXVzCltELWNoYXQ6QXNtb2Rpc0BGaW5hbEZyb250aWVyXSBuYWphLCBpY2ggd2FycyBuaWNodCwgb2J3b2hsIGljaCBtaWNoIGdlcmFkZQplcnN0IGRhIGVpbmdlbG9nZ3QgaGF0dGUgOikKW0QtY2hhdDpaYXJkb3pAU3RhckdhdGVdIEVudHdlZGVyIGlzdCBlcyBkaWUgZHVtbWUgbGVpdHVuZyBuYWNoIE11ZW5zdGVyLApvZGVyCmljaCBoYWIgZ2VyYWRlIGRhcyBNdWQgZ2VjcmFzaHQgOi0pCltELWNoYXQ6WWV0aUBXdW5kZXJsYW5kXSBkdSwgd2lzbyBkdSA/PwpbRC1jaGF0OllhbnRyb0BTdGFyR2F0ZV0gZGFuY2VyIGlzdCBzY2h1bGQhIGRhbmNlciBpc3Qgc2NodWxkISEhIDstKQpbRC1jaGF0OkNhcmFkaHJhc0BBbmRlckxhbmRdIEhvZXJ0IG1pY2ggdWViZXJoYXVwdCBqZW1hbmQgYXVzc2VyaGFsYiBBTHM/CipncnVlYmVsKgpbRC1jaGF0OlphcmRvekBTdGFyR2F0ZV0gRGFzIE11ZCBibGllYiBnZW5hdSBpbiBkZW0gTW9tZW50IHN0ZWhlbiwgYWxzIGljaCBuZQprb21wbGl6aWVydGUgRnVua3Rpb24gZ2VzdGFydGV0IGhhYgpbRC1jaGF0OlphcmRvekBTdGFyR2F0ZSBncmluc3QgZGFlbW9uaXNjaF0KTmlrb2xhdXMgcnVmdDogZGFzIGlzIGphIFJla29yZHZlcmRhZWNodGlnIQpbRC1jaGF0OkFzbW9kaXNAV3VuZGVybGFuZF0gaHVjaCwgamV0enQgaGFiIGljaCBNRyB1ZWJlcmhvbHQgOikKW0FsbGdlbWVpbjpJc3NvbWFkXSBhcmdoLCBuaWNodCBoaWVyIGF1Y2ggbm9jaCAhIQpbRC1jaGF0Ok1hcmN1c0BUQVBQTXVkXSBtZyBoYWVuZ3QuLi4KW0QtY2hhdDpaYXJkb3pAU3RhckdhdGVdIEljaCBnbGF1YmUgaWNoIGJpbnMgc2NodWxkLi4uCkR1IHNhZ3N0OiBhcmdsLCB3YXMgbGFnZ3QgZGVubiBoaWVyIHNvICAgIC8qZnJ1ZWgga2FtIGVzLCBkb2NoIGVzIGthbSAqLwo+IFtBbGxnZW1laW46WmFyZG96XSBJY2ggYmlucyBzY2h1bGQhCltBbGxnZW1laW46Q2F0d2VhemxlXSBIYWghCkR1IHJ1ZnN0OiBNZXJsaW4hIEZhc3MgWmFyZG96LCBiZWlzcywgYnJpbmcsIGJlaSBGdXNzCj4gW0FsbGdlbWVpbjpWaWN0b3JpYV0gc2NoZWlzcyBMQUcgOigKQ2F0d2VhemxlIHJ1ZnQ6IFpBUkRPWi4uIE1hbm4gLi4uCltBbGxnZW1laW46WWV0aV0gZWluIHZvcnNpY2h0aWdlciB0ZXN0Li4uCltBbGxnZW1laW46WWV0aV0gSGFsbG8sIG11ZCA/PywgYW55b25lIGhvbWUgPz8KW0FsbGdlbWVpbjpOaWNodHNdIFdlciBoYXQgZGVuIGRhIGdlZ3JlcHQgOikgPwpbQWxsZ2VtZWluOkNhdHdlYXpsZV0gWmFyZG96IG1hY2h0IGR1bW1lIGVuZGxvc3NjaGxlaWZlbiA6KQpbQWxsZ2VtZWluOlphcmRvel0gR2VuYXUsIGVzIHdhciBtZWluZSBlbmRsb3NzY2hsZWlmZSA6LSkKW0FsbGdlbWVpbjpDdWNodWxsaW4ga2VubnQgZGFzIERvY2guXQpbQWxsZ2VtZWluOlNjaHJ1bXBmaSBoYXV0IHphcmRveiBlaW4gbnVkZWxob2x6IHVlYmVyIGRpZSBydWViZV0KW0FsbGdlbWVpbjpaYXJkb3pdIEljaCBoYXR0ZSBzaWUgZ2xlaWNoIHp3ZWltYWwgZ2VzdGFydGV0CltBbGxnZW1laW46VG9ldGVyXSBpY2ggZGVua2Ugd2lyIGhhYmVuIHNvIGVpbmVuIHNjaG5lbGxlbiBSZWNobmVyLCBkYXNzIGRlcgpbQWxsZ2VtZWluOlRvZXRlcl0gZGllIGFia2FubiA6KQpbQWxsZ2VtZWluOklzc29tYWRdIG9rLCBhYiBzb2ZvcnQgaXN0IG5pY2h0IG1laHIgZGFuY2VyIHNjaHVsZCwgd2VubiBldHdhcwpbQWxsZ2VtZWluOklzc29tYWRdIG5pY2h0IGxhZXVmdCwgc29uZGVybiBaYXJkb3ogISA6KQpbQWxsZ2VtZWluOk9ldHRpXSBUb2V0ZXQgT25rZWwgWmFyZG96CltBbGxnZW1laW46Q3VjaHVsbGluXSBEYXMga2FubiBEYW5jZXIgamEgYXVjaCAgLi4uIHdoaWxlIHRydWUgLi4uICpncmlucyoKW0FsbGdlbWVpbjpDYXR3ZWF6bGVdIHp3ZWltYWwuLm5hIGZlaW4gOikKW0FsbGdlbWVpbjpDYXR3ZWF6bGVdIGRlc3dlZ2VuIGhhdCBkYXMgYmVpbSBlcnN0ZW4gbWFsIG5pY2h0IGdla2xhcHB0IC4uLgpbQWxsZ2VtZWluOlphcmRvel0gTXVzcyBkaXJla3QgbWFsIGF1c3Byb2JpZXJlbiBvYiBlcyB3aXJrbGljaCBkYXJhbiBnZWxlZ2VuCltBbGxnZW1laW46WmFyZG96XSBoYXQKW0FsbGdlbWVpbjpZZXRpXSBhdSBmZWluLCB6YXJkb3osIG1hY2ggZGFzIDopKQpbQWxsZ2VtZWluOlVsb10gc28nbiAid2hpbGUgdHJ1ZSIga2FubiBhdWNoIGtlaW4gc28gZ3Jvc3NlcyBsYWcgZXJ6ZXVnZW4uCltBbGxnZW1laW46VWxvXSBldmFsdWF0aW9uIGNvc3QgMTAwMDAwMCB2ZXJoaW5kZXJ0IGRvY2ggZGFzIHNjaGxpbW1zdGUuCgo+IFtBbGxnZW1laW46WmFyZG96IGlzdCBzdG9seiBkYXJhdWYgYXVjaCBlbmRsaWNoIG1hbCBuZW4gcmljaHRpZ2VuIEJ1ZwpnZW1hY2h0Cnp1IGhhYmVuXQpbQWxsZ2VtZWluOkNhcmFkaHJhcyBhcHBsYXVkaWVydCBaYXJkb3ouXQpbQWxsZ2VtZWluOk5pY2h0c10gRGFuY2VyIGhhdCBkYW1hbHMgZGFzIE11ZCBmdWVyIDMgdm9sbGUgU3R1bmRlbiBhbmdlaGFsdGVuLApbQWxsZ2VtZWluOk5pY2h0c10gVWxvLgpbQWxsZ2VtZWluOkNhcmFkaHJhc10gc2FncyBkYXMgbmFlY2hzdGUgbWFsIHZvcmhlciwgc29uc3QgZ2VodCBtaXIgd2llZGVyCltBbGxnZW1laW46Q2FyYWRocmFzXSBlaW5lciBob3BwcyA6LSkpCltBbGxnZW1laW46U2NocnVtcGZpIGlzIG1hZWNodGlnIHN0b2x6IGF1ZiBpaHJlbiBtYW5uXQpbQWxsZ2VtZWluOlVsb10gYWNoIHphcmRveiwgZGllIGNoYW9zcnVlc3R1bmdlbiB3dWVyZGUgaWNoIGF1Y2ggc2Nob24gYWxzIGJ1ZwpbQWxsZ2VtZWluOlVsb10gZHVyY2hnZWhlbiBsYXNzZW4gOy0pCltBbGxnZW1laW46Q2F0d2VhemxlXSBOZWluISBFcyBnaWJ0IG1vZWdsaWNoa2VpdGVuIHNjaGxlaWZlbiB6dSBlcnpldWdlbiwgZGllCltBbGxnZW1laW46Q2F0d2VhemxlXSBLRUlORSBSZWNoZW56ZWl0IGJlbm9ldGlnZW4gKHp1bWluZGVzdCBrZWluZQpSZWNoZW56ZWl0LApbQWxsZ2VtZWluOkNhdHdlYXpsZV0gZGllIGRhcyBNdWQgZGFmdWVyIGhhZWx0IDotKQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gTWFubj8gT2VobQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gb2gsIEdyYXRzCj4gZmluZ2VyIHNjaHJ1bXBmaQpTY2hydW1wZmkgaXN0IGVpbmdlbG9nZ3QsCnVuZCB6d2FyIHZvbjogTGluei4KVm9sbGVyIE5hbWU6IFBvbGFyaGV4Y2hlbiBTY2hydW1wZmkgZGllIGR1ZW1tc3RlIE1hZ2llcmluIGRlcyBVbml2ZXJzdW1zClJhc3NlOiBQb2xhcmhleGUsICAgIEdlc2NobGVjaHQ6IHdlaWJsaWNoCkFsdGVyOiA5MGQgMTY6MTg6NTQgICBNYWdpZXJsZXZlbDogMjYKVmVyaGVpcmF0ZXQgbWl0OiBaYXJkb3oKU2VpdCBkZW0gMzAuMTEuJzk0IGJlcmVpdHMgNyBtYWwgZ2VzdG9yYmVuClJlZ2lvbnNtaXRhcmJlaXRlciB2b246IFBvbGFyLCBVbnRlcndlbHQuClByb2pla3Q6IEZyYWcgZGFzIFVudGllciEKUGxhbjoKQm9lc2UsIGdlbWVpbiB1bmQgZ2V3YWx0Z2VpbCBzZWluISBVbmQgS0VJTkUgQmx1bWVud2llc2UgcHJvZ3JhbWllcmVuLApzb25kZXJuCm5lIGdld2FsdGdlaWxlIHVuZCBnZXdhbHR2ZXJoZXJybGljaGVuZGUgUXVlc3QhCj4gW0FsbGdlbWVpbjpaYXJkb3pdIFdhciBqYSBrZWluZSBBYnNpY2h0Li4uIDotKQpbQWxsZ2VtZWluOkNhcmFkaHJhc10gZGFzIGhlaXJhdGVuPwpbQWxsZ2VtZWluOkNhcmFkaHJhcyBraWNoZXJ0Ll0KPiBbQWxsZ2VtZWluOk11cGZlbF0gZGFzIGF1Y2ggbmljaHQKRHUgd2FlbHp0IERpY2ggdm9yIExhY2hlbiBhdWYgZGVtIEJvZGVuLgo+IFtBbGxnZW1laW46TmljaHRzXSAqbGFjaCoKW0FsbGdlbWVpbjpDYXR3ZWF6bGVdIDMgU3R1bmRlbiwgamEsIGRhcyB3YWVyIGRpZXNtYWwgYXVjaCBwYXNzaWVydCwgd2VubiBpY2gKW0FsbGdlbWVpbjpDYXR3ZWF6bGVdIGRhcyBuaWNodCBnZWtpbGx0IGhhZXR0ZSA6KQpbQWxsZ2VtZWluOkN1Y2h1bGxpbiBkYW5rdCBDYXQqIGF1ZiBLbmllbi5dCltBbGxnZW1laW46Q2FyYWRocmFzIGdpYnQgQ2F0d2VhemxlIGVpbiBHYWVuc2VibHVlbWNoZW4gYXVzIGRlciBGZXJuZS5dCj4gW0FsbGdlbWVpbjpHb2x1bV0gd2FyIE1HIGRvd24gPwpbQWxsZ2VtZWluOkN1Y2h1bGxpbiBrcmllY2h0IHZvciBkZW0gZ3Jvc3NlbiBDQVQgaW0gU3RhdWIuXQpbQWxsZ2VtZWluOkNhdHdlYXpsZV0gT2tvaywgaWhyIGR1ZXJmdCBtaXIgamV0enQgaHVsZGlnZW4gOikKW0FsbGdlbWVpbjpVbG9dIHdpZSBrb25udGVzdCBkdSBkZW5uIG5vY2h3YXMgbWFjaGVuLCB3ZW5uIGRhcyBtdWQgc3RhbmQgPwpbQWxsZ2VtZWluOlNjaHJ1bXBmaSBodWxkaWd0IGNhdCpdCgoKCj4gW0FsbGdlbWVpbjpDdWNodWxsaW5dIFZvbiBhdXNzZXJoYWxiLCBuZWhtIGljaCBhbi4KW0FsbGdlbWVpbjpDYXJhZGhyYXNdIGxvY2FsaG9zdD8KPiBbQWxsZ2VtZWluOklzc29tYWQgc2NoaWNrdCBlaW4gcGFhciBEYWVtb25lbiB6dSBDYXR3ZWF6bGUsIGRpZSBpaG4gYW5iZXRlbl0KW0FsbGdlbWVpbjpDYXR3ZWF6bGVdIEV4dGVybiBuZW4ga2lsbCBpbiBkZW4gUHJvemVzcyBqYWdlbi4uLnp1bSBHbHVlY2sgd2Vpc3MKW0FsbGdlbWVpbjpDYXR3ZWF6bGVdIFJPY2h1cyB3ZWxjaGUgOikKW0FsbGdlbWVpbjpZYW50cm9dIENhdHR5IGhhdCBkb2NoIElNTUVSIGFsbGVzIHVudGVyIEtvbnRyb2xsZQpbQWxsZ2VtZWluOlphcmRvel0gSG1tLiBLYW5uIGVzIGFuIGRpZXNlciBmb3Itc2NobGVpZmUgZ2VsZWdlbiBoYWJlbjoKW0FsbGdlbWVpbjpaYXJkb3pdIGZvcihpPTE7aT0wO2krKykgKmdyaW5zKgo+IFtBbGxnZW1laW46Q3VjaHVsbGluIGJyaWNodC4gVm9yIExhY2hlbi4gWnVzYW1tZW4uXQpbQWxsZ2VtZWluOk9ldHRpXSAqbGFjaCoKW0FsbGdlbWVpbjpNdXBmZWxdIGRvbid0IGRyaW5rIGFuZCBkcml2ZSAtIGdldCBzdG9uZWQgYW5kIG11ZApbQWxsZ2VtZWluOkNhdHdlYXpsZV0gamEsIGRpZSBzZWggaWNoIGhpZXIgYXVjaCBncmFkIDopCltBbGxnZW1laW46VWxvXSBkc2FzIGxhZXNzdCBzaWNoIGF1c3Byb2JpZXJlbiAuLi4KW0FsbGdlbWVpbjpJc3NvbWFkXSB3YXMgc29sbG4gZGFzIHdlcmRlbiwgemFyZG96ID8KCltBbGxnZW1laW46Q2FyYWRocmFzIHdhZWx6dCBzaWNoIGFtIEJvZGVuIHZvciBMYWNoZW4uXQpbQWxsZ2VtZWluOlNjaHJ1bXBmaSBncmVwdCBtYWwgZXR3YXMuXQpEdSB0ZWlsc3QgWmFyZG96IG1pdDogS2xhc3NlIDopKQo+IFtBbGxnZW1laW46U2NocnVtcGZpIHdpbGwgYXVjaCBsYWcgbWFjaGVuXQpbQWxsZ2VtZWluOkNhcmFkaHJhcyB3aXJkIGRhcyBnYW56ZSBtYWwgbWl0bG9nZ2VuIG5hY2ggd2l0emUuIDopXQpbQWxsZ2VtZWluOk9ldHRpXSBJcyBkaWUgZnJhZ2UgWmFyZG9yIHdhcyBlcmdpYnQgZGVubiBNQVhJTlQrMSA/Pz8KWmFyZG96IHRlaWx0IERpciBtaXQ6IElzdCBzY2hvbiB3aXR6aWcuLi4gaWNoIGhhYiBzY2hvbiAxMDAwMDAgZm9yLXNjaGxlaWZlbgpaYXJkb3ogdGVpbHQgRGlyIG1pdDogZ2Vwcm9nZ3QgdW5kIGRhbm4gc293YXMgWzIwOjQxXQpbQWxsZ2VtZWluOkFjcmltb25dIE5laW4gWmFyZG96LCBmb3IoaT0xO2k9MDtpKyspIGR1cmNobGFldWZ0IGRpZSBTY2hsZWlmZQpbQWxsZ2VtZWluOkFjcmltb25dIGtlaW4gZWluemlnZXMgTWFsCltBbGxnZW1laW46VWxvXSBpPT0wIDopCltBbGxnZW1laW46Q3VjaHVsbGluXSAqZ3JpbnMqCltBbGxnZW1laW46Q2F0d2VhemxlXSBBY3JpbW9uLCBkYXMgZHVyY2hsYWV1ZnQgZGllIHNjaGxlaWZlIGRhdWVybmQsIGlzdApbQWxsZ2VtZWluOkNhdHdlYXpsZV0gbmFlbWxpY2ggaW1tZXIgd2FociEhCltBbGxnZW1laW46QWNyaW1vbl0gTmEgZGFubiwgZGFubiBsYWV1ZnQgc2llIGV3aWchCltBbGxnZW1laW46Q3VjaHVsbGluXSBXYXMgV09MTFRFIGVyIGVpZ2VudGxpY2ggZGFtaXQ/CltBbGxnZW1laW46QWNyaW1vbl0gTmVpbiAiaT0wIiBpc3QgbmllIHdhaHIhCltBbGxnZW1laW46Q2F0d2VhemxlXSBobSwgZGEgc3RlaHQgamEgYXVjaCBmb3IoIGk9MDtpPXNpO2krKykKW0FsbGdlbWVpbjpaYXJkb3pdIEhtbS4gSGFldHRlIGRvY2gga2VpbiBXZWl6ZW5iaWVyIHRyaW5rZW4gZHVlcmZlbi4uLgpbQWxsZ2VtZWluOkFzbW9kaXMgaXN0IGZ1ZXIgbmUgUHJvbWlsbGVncmVuemUgYW0gUmVjaG5lcl0KW0FsbGdlbWVpbjpNdXBmZWxdIGdlbmF1Li4uIDQuMCBwcm9taWxsZQpbQWxsZ2VtZWluOlNjaHJ1bXBmaV0gbmFjaCBlaW5lbSBiaWVyIGJpc3QgZHUgc2Nob24gdm9sbD8gdW5kIGRhcyBpcyBtZWluCltBbGxnZW1laW46U2NocnVtcGZpXSBtYW5uIQpbQWxsZ2VtZWluOk11cGZlbF0gdW50ZXItIG9kZXIgb2JlcmdyZW56ZT8KW0FsbGdlbWVpbjpPZXR0aV0gSWNoIHdpbGwgamV0enQgdHJvdHpkZW0gV2lzc2VuIHdhcyBNQVhJTlQrMSBlcmdlYmVuIHd1ZXJkZQpbQWxsZ2VtZWluOk9ldHRpXSA/PwpbQWxsZ2VtZWluOkFzbW9kaXNdIG5lZSwgYWIgMC41IHByb21pbGxlIGJla29tbXQgbWFuIGRlbiBhY2NvdW50IGVudHpvZ2VuCltBbGxnZW1laW46VWxvXSAtTUFYSU5UID8KW0FsbGdlbWVpbjpSb2NodXNdIHJpY2h0aWcuCltBbGxnZW1laW46U2NocnVtcGZpXSBibG9zcyBuaWNodCwgZGFubiBoYWIgaWNoIGJhbGQga2VpbmVuIG1laHIgOikKCgpFaW4gc2Nob2VuZXMgU2NobHVzc3dvcnQgdm9uIFNjaHJ1bXBmaQoKICAgICAgICAgIHNpY2gga29lc3RsaWNoIGFtdWVzaWVydCBoYWJlbmQgICAgICAgICAgIENhcmFkaHJhcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCwgaW4gZGVyICJtb3RvcnJhZCIuLi4gKFllbmRpLCAxMi4gU2VwIDE5OTUsIDE0OjE3OjQwKToKCgpOZXVzdGVyIENvbWljIGF1cyBkZXIgTW90b3JyYWQgdm9uIE1vdG9ybWFuaWEKCgoKTW90b3JyYWRmYWhyZXIgYmVpbSBBcnp0LiBaaWVodCBzaWNoIGdlcmFkZSB3aWVkZXIgc2VpbmUgTGVkZXJrb21iaSBhbi4KCkFyenQgOiBBbHNvLCBiZWkgSWhuZW4gaXN0IHNvd2VpdCBhbGxlcyBpbiBPcmRudW5nLCBudXIgSWhyZSBCbHV0Z3J1cHBlCiAgICAgICBpc3QgZXR3YXMgLi4uCiAgICAgICBkaCAuLi4gbWVya3d8cmRpZwoKTW90b3JyYWRmYWhyZXIgOiBTbyA/IFdlbGNoZSBoYWJlIGljaCBkZW5uID8KCkFyenQgOiAxNSBXIDQwICEKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2gsIGltIE1vcmdlbkdyYXVlbi4uLiAoWWVuZGksIDEyLiBTZXAgMTk5NSwgMTQ6MzE6MzYpOgoKW0t1bHR1cjpSeHRlY2ggc2luZ3Q6IG1laW4gZnJldW5kIGtvdHppIHdhciBlaW4gZmVpbmVlciBrbmFiZV0KW0t1bHR1cjpSeHRlY2ggc2luZ3Q6IGVyIHdhciBlaW4gdHJhbXAgdW5kIGhhdHRlIGtlaW4genVoYXVzXQpbS3VsdHVyOlJ4dGVjaCBzaW5ndCB1bmQgYmVpIHlvcmt0b3duIGxpZWd0IGVyIGxhZW5nc3QgaW0gZ3JhYmVdCltLdWx0dXI6Unh0ZWNoIHNpbmd0IHVuZCBhdXMgc2VpbmVuIGtub2NoZW4gd2FjaHNlbiBibHVtZW4gcmF1c10KW0t1bHR1cjpSeHRlY2ggc2luZ3QgbWctZmFobmVuIGhhYmVuIHdpciBnZXRyYWFhYWFnZW5dCltLdWx0dXI6S290emJyb2NrZW5dIGRhcyB3YXIgZG9jaCBtYWwgYW5zcHJlY2hlbmQuLi4KW0t1bHR1cjpSeHRlY2ggc2luZ3Q6IHVuZCBtZWluIEtvdHppIHRydWcgc2llIHVucyB2b3Jhbl0KW0thcmF0ZTpGbHVzc3dpbmQgc2luZ3QgTXkgYXJtcyBrZWVwIG1pc3NpbmcgeW91XQpbS2FyYXRlOkZsdXNzd2luZF0gVXBzIGZhbHNjaGUgRWJlbmUKW0thcmF0ZTpLb3R6YnJvY2tlbl0gdW5kIGZhbHNjaGVzIGxpZWQgIQpbS3VsdHVyOkZsdXNzd2luZCBzaW5ndCBOZXZlciBmb3JnZXRdCltBbGxnZW1laW46QW1wZWxtYW5uIHNpbmd0ICJJbSBhIGxvb3NlciBiYWJlLi4uICJdCj4gW0FsbGdlbWVpbjpVbG9dIHl1cCAhCltBbGxnZW1laW46WWVuZGldIEljaCBwZmxpY2h0ZSBiZWkuCltLYXJhdGU6Um9jaHVzXSAibXkgYXJtcyBrZWVwIG1pc3NpbmcgeW91IiBpc3QgZG9jaCBhdWNoIGZ1ZXIga2FyYXRla2EgcmVjaHQKW0thcmF0ZTpSb2NodXNdIHBhc3NlbmQuLi4genVtaW5kZXN0IGZ1ZXIgYW5mYWVuZ2VyLi4uIDotKQpbS3VsdHVyOlJ4dGVjaF0ga2Fja2UsIGNhdCBoaW5kZXJ0IG1pY2ggYW0gZ2VzYW5nCgoKV2llIHdhZXJzIG1pdCBlaW5lbSBTYWVuZ2Vyd2V0dHN0cmVpdD8gSmVkZXIgaGF0IDUgTWludXRlbiwgdW0gZWluIGFkIGhvYwpnZWRpY2h0ZXRlcyBMaWVkIHVlYmVyIGRlbiBLdWx0dXJrYW5hbCB6dSBzY2hpY2tlbiwgdW5kIGplZGVyIFp1aG9lcmVyIGlzdApKdXJ5IHVuZCB3ZXJ0ZXQuIE5hPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1TLURvc2UgKEFyZGFuYSwgMTMuIFNlcCAxOTk1LCAxMTo0Nzo0Myk6CiJBYWhoLCBlaW4gU3RhZHRtZW5zY2ghIFNpZSBnbGF1YmVuIHdvaGwgYXVjaCwgZGFzcyBlaW4gTVMtRE9TIFJlY2huZXIgZWluCnJpY2h0aWdlciBDb21wdXRlciBpc3QhIi4uLiBncmFkZSBpbiBkZS50YWxrLmpva2VzIGdlZnVuZGVuIDopKQpBcmRhbmEsCgogICAgICAgICAgc2Nod29lcnQgYXVmIFZvYmlzIDstKSwgRFItRE9TIHVuZCBMaW51eAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1TLURvc2UgKFBhcmFjZWxzdXMsIDEzLiBTZXAgMTk5NSwgMTE6NTA6MTQpOgojISBybj1BcmRhbmEgcnQ9ODEwOTg1NjYzClZvYmlzID8/PwoKIFYgZXJrYXVmCiBPIGhuZQogQiBlcmF0dW5nCiBJIHN0CiBTIHRhbmRhcmQKClBhcmFjZWxzdXMKKEljaCB3ZWlzcywgZGVyIGlzIHNjaG9uIGFlbHRlcikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTVMtRG9zZSAoUm9jaHVzLCAxMy4gU2VwIDE5OTUsIDEyOjA0OjQ1KToKIyEgcm49UGFyYWNlbHN1cyBydD04MTA5ODU4MTQKU2VydmljZSwgVk9CSVN0IER1PyBFU0NPTW10IGtlaW5lciEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZldWVyemV1ZyAuLi4gKFVsbywgMTQuIFNlcCAxOTk1LCAyMjo1NDozMyk6Cm5ldWxpY2ggaW4gZGUudGFsay5qb2tlcyA6CkhpIHRoZXJlICEKCk5ldWxpY2ggaGF0IHNpY2ggZWluIEJla2FubnRlciBlaW4gdm9lbGxpZyBub3JtYWxlcyBGZXVlcnpldWcgZ2VrYXVmdCB1bmQKd2FyIHZvZWxsaWcgZXJzdGF1bnQsIGFscyBlciBlaW5lIEdlYnJhdWNoc2Fud2Vpc3VuZyBkYXp1YmVrYW0uIEljaCBoYWJlCmhpZXIgZGllc2UgQW5sZWl0dW5nIDEwMCVpZyBzbyBhYmdlc2NocmllYmVuIHdpZSBlcyBhdWYgZGVtIGJlaWxpZWdlbmRlbgpQYXBpZXIgc3RhbmQ7IHNvbGx0ZW4gZG9ydCBUaXBwZmVobGVyIHZvcmtvbW1lbiwgc3RhbW1lbiBzaWUgbmljaHQgdm9uCm1pciA7KQoKCihBY2h0dW5nOiBSZWFsLVNhdGlyZSkKCi0tLSBjdXQgLS0tCgpEZXV0c2NoZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVpbmZ1ZWhydW5nCgoxLiBXYWVocmVuZCBPcGVyYXRpb24sIFdpbmQtQmV3ZWlzLUZsYW1tZSBpc3QgdmVyc2FndCwgd2VubiBkZXIgU2NoYWx0ZXIKICAgUHJlc3NlIGhpbnVudGVyIGlzdCwgZm9sZ2VuIFNpZSBkdXJjaCBub3JtYWxlIEZsYW1tZSwgd2VubiBkZXIgU2NoYWx0ZXIKICAgZnJlaWdlLWxhc3NlbiBpc3QuCjIuIFdlbm4gZGFzIEdhcyBpbiBkZW0gRmV1ZXJ6ZXVnIGF1ZmdlYnJhdWNodCBpc3QsIGZvbGdlbiBkZW0gVW50ZXJyaWNodAogICBhdWZJaHJlbiBBdWZmdWVsbHVuZ2VuIGdlcmFkZSwgdW0gSWhyIEZldWVyemV1ZyBrb3JyZWt0IHVuZCBTaWNoZXJoZWl0CiAgIG5hY2h6dWZsbGVuLgozLiBkZXIiKyJ1bmQiLSJaZWljaGVuIHdlcmRlbiBmdWVyIGRpZSBBbnBhc3N1bmcgZGVzIEZsYW1tZS1TdHJvbWVzIHZvbgogICBGZXVlcnpldWcgYmVudXR6dC4gIisiTWl0dGVsIHZlcm1laHJlbiBkaXIgRmxhbW1lIHRyZWlidCBhbiwgd28gIi0iCiAgIE1pdHRlbCBlcyBhYm5laG1lbi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZvcnNpY2h0CgoxLiBEaWVzZXMgRmV1ZXJ6ZW5nIGJlaW5oYWx0ZXQgYnJlbm5iYXJlcyBHYXMgdW50ZXIgaG9oZW0gRHJ1Y2ssIG1hZwogICBNaXNzYnJhdWNoIEZldWVyIHVuZCBCcmFuZHd1bmRlIHZlcnVyc2FjaGVuLgoyLiBMZWJlbnN1bnRlcmhhbHQgaGluYXVzIGRpZSBSZWljaHdlaXRlIHZvbiBLaW5kZXJuLgozLiBMZWJlbnN1bnRlcmhhbHQtRmV1ZXJ6ZXVnIGhpbndlZyB2b24gaG9oZXIgVGVtcGVyYXR1ciB1bmQgZmV1ZXJuIFNpZS4KNC4gU3RlaGVuIGRlciBTdGVja2Rvc2Ugdm9uIEZldWVyemV1ZyB6dSBJaHJlbSBHZXNpY2h0IG5pY2h0IGdlZ2VudWViZXIsCiAgIHVtIEJyYW5kd3VuZGUgenUgdmVyaGluZGVtLgoKLS0tIGN1dCAtLS0KCkFtIGJlc3RlbiBnZWZpZWwgbWlyIGRpZSBTdGVsbGUgbWl0ICJmZXVlcm4gU2llICghKSIgdW5kIGRpZSBCZXplaWNobnVuZwonRmV1ZXJ6ZW5nJy4KCkJUVywgYXVmIGRlbSBGZXVlcnpldWcgc3RlaHQgIk1hZGUgaW4gQ2hpbmEiLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVpbmxhZHVuZyAoVWxvLCAxNC4gU2VwIDE5OTUsIDIzOjA5OjQwKToKICAgICAgICAgICAgICAgICAgICAgICpFIEkgTiBMIEEgRCBVIE4gRyoKCiAgICAgIHp1bSAxLiAiRXVyb3BhZWlzY2hlbiBUcmlua2Vya29uZ3Jlc3MiIGluIEtvdHpidWVobAoKICBEYSBTaWUgenUgZGVtIGtsZWluZW4gS3JlaXMgZGVyamVuaWdlbiBnZWhvZXJlbiwgZGllIHNpY2ggYXVzIGRlbSBNZWVyCm5hbWVubG9zZXIgVHJ1bmtlbmJvbGRlIHp1IGVpbmVtIGFuZXJrYW5udGVuIFNwaXR6ZW50cmlua2VyIGVtcG9yLSBnZXNvZmZlbgogICAgICAgICAgICAgICBoYWJlbiBsYWRlbiB3aXIgU2llIGhpZXJtaXQgaGVyemxpY2ggZWluIHp1bQoKICAgICAgICAgICAgICAgICAgIDEuIEV1cm9wYWVpc2NoZW4gVHJpbmtlcmtvbmdyZXNzCiAgICAgICAgICAgICAgICAgICAgYW0gMzAuIEZlYnJ1YXIgbmFlY2hzdGVuIEphaHJlcwogICAgICAgICAgICAgICBPcnQ6IEhhbGxlIFN1ZmZlcmxhbmQgLSBCZWdpbm46IDE4LjAwICBVaHIKCiAgICAgICAgICAgICAgRGFzIE1vdHRvIGRlciBkaWVzamFlaHJpZ2VuIFZlcmFuc3RhbHR1bmcgbGF1dGV0OgoKICAgIC0gTGllYmVyIGluIGRlciBkdW5rZWxzdGVuIEtuZWlwZSwgYWxzIGFtIGhlbGxzdGVuIEFyYmVpdHNwbGF0eiAtCgpOZWJlbiB1bnphZWhsaWdlbiBQcm9iaWVyc3RhZW5kZW4gbWl0IEFsa28tU3BlemlhbGl0YWV0ZW4gYXVzIGRlbSBJbi0gdW5kCkF1c2xhbmQgd2lyZCBzaWNoZXJsaWNoIGF1Y2ggZGllICJUcmlua2VyenViZWhvZXItTWVzc2UiIElocmUgQXVmLQptZXJrc2Fta2VpdApmaW5kZW4uIEF1c3NlciBCaWVyc2VpZGVsbiwgU2NobmFwc2dsYWVzZXJuLCBDb2duYWNzY2h3ZW5rZXJuIHVzdy4gZ2lidCBlcwpkb3J0CnZpZWwgTnVldHpsaWNoZXMsIHdhcyBkYXMgSGVyeiBlaW5lcyBnZXN0YW5kZW5lcyBUcmlua2VycyBob2VoZXIgc2NobGFnZW4KbGFlc3N0OgoKICAgIEtvcGZzY2htZXJ6dGFibGV0dGVuIG1pdCBJaHJlbiBJbml0aWFsZW4uIEZhaG5lbnRvZXRlciBtaXQgS25vYi0KICAgIGxhdWNoZ2VzY2htYWNrLCBWb2xscmF1c2NoIC0gU2NodXR6cG9sc3Rlciwgd2Fzc2VyZGljaHRlIFVudGVyLQogICAgd2Flc2NoZSwgZmFyYmxvc2UgUHVzdGVyb2VocmNoZW4sIEVyc2F0emZ1ZWhyZXJzY2hlaW4gaW0gMTBlciBCbG9jaywKICAgIEJldHRlbiBtaXQgR2VnZW5zY2hhdWtlbC1NZWNoYW5pc211cywgdW5kIHVuZC4uLi4uLi4uLi4uCgogICAgRGFuZWJlbiBmaW5kZW4gaW0gIkJsYXVlbiBTYWxvbiIgZWluZSBWb3J0cmFnc3JlaWhlIHN0YXR0OgoKMjIuMDAgVWhyIHNwcmljaHQgSGVyciBTY2hsdWNrLCBDaGVmcmVkYWt0ZXVyIGRlciBaZWl0c2NocmlmdCAiVm9sbCIKICAgICAgICAgIHp1bSBUaGVtYToKCiAgICAgICAgICAgICAgICAgICBTYXVmZW4gb2huZSBLb3R6ZW4gLSBPaG5lIFRyYWluaW5nIGdlaHQgZXMgbmljaHQhCgowMi4wMCBVaHIgSGVyciBGbGFjaG1hbm4gdm9tIGRldXRzY2hlbiBWZXJiYW5kIGRlciBCZXJ1ZnN0cmlua2VyIGUuVi4KICAgICAgICAgIHp1bSBUaGVtYToKCiAgICAgICAgICAgICAgICAgICBXYXMgdHVuIHdlbm4gaW0gQnVlcm8gZGVyIFNjaG5hcHMgYXVzZ2VodD8KCjA0LjAwIFVociBIZXJyIERyLiBWb2xsZSBQdWxsZSB2b20gWmVudHJhbHZlcmJhbmQgZGVyIExhdXNjaGVwcGVyCiAgICAgICAgICB6dW0gVGhlbWE6CgogICAgICAgICAgICAgICAgICAgRGFzIERpbGlyaXVtIC0gRGVpbiBNYXJ0eXJpdW0KICAgICAgICAgICAgICAgICAgIEthbm4gZGVubiBGcmVpYmllciBTdWVuZGUgc2Vpbj8KCjA2LjAwICAgIEdyb3NzZSBBYnNjaGx1c3NrdW5kZ2VidW5nIG1pdCBhbnNjaGxpZXNzZW5kZW4gRXh0cmlua2VuLgoKClp1ciBPcmdhbmlzYXRpb246CgoKUGFya3BsYWV0emUgc2luZCBnZWdlbnVlYmVyIGRlbSBFaW5nYW5nIGF1c3JlaWNoZW5kIHZvcmhhbmRlbi4KQmVyZWNodGlndW5nc2thcnRlbiBmdWVyIGRpZSBBdXNudWVjaHRlcnVuZ3N6ZWxsZSBnaWJ0IGVzIGFtIEF1dG9tYXRlbgp2b3IgZGVtIEVpbmdhbmcuIEVpZXJsaWtvZXJsaWViaGFiZXIgYmVzdWNoZW4gYmVzc2VyIGRpZSBQdWRkaW5nLU1lc3NlCmluIEhhbGxlIDIuIFdpciBob2ZmZW4gYXVmIHphaGxyZWljaGVzIEVyc2NoZWluZW4uCgpQLlMuIGxlaWNodGVyIEJpZXJhbnp1ZyBpc3QgZXJ3dWVuc2NodC4KCgpNaXQgYnJ1ZWRlcmxpY2hlbiAiR1VUIFNDSExVQ0siLCBIaWNrIC0gSGljayAtIEh1cnJhICEKCkRlciBUcmlua2Vya29uZ3Jlc3MgUHJhZXNpZGVudApnZXouIERyLiBTY2hsdWNrc3BlY2h0CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBmdWVyIGRpZSBHb2xmZXIgdW50ZXIgdW5zLi4uIChUYXNoYSwgMTkuIFNlcCAxOTk1LCAwNDo0MToxMCk6CldvIGljaCBncmFkIHNvdmllbCBhbSBzY2hyZWliZW4gYmluIGhhbHQgYXVjaCBub2NoIGVpbiB3aXR6IGRlbiBpY2ggZ3JhZCBhdXNtCnVzZW5ldCBnZWtsYXV0IGhhYjoKCkdvbGYgdGlwOiBEb24ndCBwaWNrIHVwIGEgbG9zdCBiYWxsIHVudGlsIGl0IHN0b3BzIHJvbGxpbmcuCgpncmluc2VuZCwgdGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpbmRvb2YgOTUgKEFyYW55YSwgMTkuIFNlcCAxOTk1LCAxNDo1MToxOSk6ClRqYSwgdW5kIHdpZSB3YXIgZGFzIGRvY2ggbm9jaCBtaXQgZGVtIExpZWQsIGRhcyB6dXIgV2VyYnVuZyBmdWVyIFc5NSBlaW4tCmdlc2V0enQgd3VyZGU6IFN0YXJ0IGl0IHVwLi4uCkRhIGdpYnQncyBkb2NoIGRpZSBaZWlsZTogWW91IG1ha2UgYW4gYWR1bHQgbWFuIGNyeS4KCldpZSB3YWhyLCB3aWUgd2Foci4uLgpBcmFueWEKICAgICAgdmVyd3VuZGVydCB1ZWJlciBkaWUgU2VsYnN0a3JpdGlrIHZvbiBXaW56aWd3ZWljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaW5kb29mIDk1IChKb2YsIDE5LiBTZXAgMTk5NSwgMTY6NDY6NTgpOgojISBybj1BcmFueWEgcnQ9ODExNTE1MDc5CgogRXMgaGVpc3N0IGRvY2ggJ1NUQVJUX01FLlVQJyA6KQoKSm9mCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdpbmRvb2YgOTUgKEFyYW55YSwgMTkuIFNlcCAxOTk1LCAxNjo1Mzo1Mik6CiMhIHJuPUpvZiBydD04MTE1MjIwMTgKU3RpbW10LCBKb2YuLi4gV2FyIGRhIGdyYWQgRmxvb2QgYXVmbSBCaWxkc2NoaXJtLCBhbHMgaWNoIGRhcyBnZXNjaHJpZWJlbgpoYWIuLi4gRGEga29ubnQgaWNoIG1pY2gKbmljaHQga29uemVudHJpZXJlbi4gOikKCkFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlcmNoZW4tV2l0eiAoQXNtb2RpcywgMjAuIFNlcCAxOTk1LCAwMzo0MjowMyk6CgpSb3RrYWVwcGNoZW4gZ2VodCBkdXJjaCBkZW4gV2FsZCB1bmQgdHJpZmZ0IGRvcnQgZGVuIGJvZXNlbiBXb2xmLgoKUm90a2FlcHBjaGVuOiBgV29sZiwgd2FzIGhhc3QgZHUgZGVubiBmdWVyIGdyb3NzZSBBdWdlbj8nCldvbGY6ICAgICAgICAgYE1pc3QsIG5pY2h0IG1hbCBpbiBSdWhlIGthY2tlbiBrYW5uIG1hbiEnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2huIFdpdHogKEFzbW9kaXMsIDIwLiBTZXAgMTk5NSwgMDQ6MDI6NDgpOgoKTGFuZHdpcnRzY2hhZnRzYXVzc3RlbGx1bmc6IGFuIGRlciBLYXNzZSBlcnNjaGVpbnQgZWluIEJhdWVyCiJJY2gga2FubiBkYXMgRWludHJpdHRzZ2VsZCBmdWVyIG1laW5lIDE4IEtpbmRlciB1bm1vZWdsaWNoIGF1ZmJyaW5nZW4sCm1vZWNodGUgSWhuZW4gYWJlciB1bmJlZGluZ3QgZGVuIHByZWlzZ2Vrcm9lbnRlbiBTdGllciB6ZWlnZW4uIEdpYnQncyBkZW5uCmtlaW5lIEVybWFlc3NpZ3VuZz8iCkRhcyBGcmFldWxlaW4gdmVyc2Nod2luZGV0LCBrb21tdCBhYmVyIG5hY2ggZWluZXIgTWludXRlIHp1cnVlY2s6ICJTaWUKZHVlcmZlbiB1bXNvbnN0IHJlaW4uIERlciBTdGllciBtb2VjaHRlIFNpZSBzZWhlbiEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc2Nod2VpemVyIFdpdHogKEFzbW9kaXMsIDIwLiBTZXAgMTk5NSwgMDQ6MDU6MTEpOgoiRWluIHNjaG9lbmVzIFB1bGxvZXZlcmxpIGhhYmVuIFNpZSBhbiIsCmVyb2VmZm5ldCBlaW4gSGVyciBkYXMgR2VzcHJhZWNoIG1pdCBzZWluZXIKaHVlYnNjaGVuIEFidGVpbG5hY2hiYXJpbiBpbSBadWcgbmFjaCBadWVyaWNoLgoiSmEiLGFudHdvcnRldCBzaWUsICJlY2h0ZXMgS2FtZWxoYWFyIi4KIkFoYSwgbWFuIHNpZWh0YHMgYW4gZGVuIEhvZWNrZXJsaS4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2huIFdpdHogKFllbmRpLCAyMC4gU2VwIDE5OTUsIDEzOjExOjAwKToKIyEgcm49QXNtb2RpcyBydD04MTE1NjI1NjgKCkVpbiBTdGllciwgaG1tbT8gRWluIGVjaHRlciBadWNodC1TdGllciwgaG1tbT8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyZTogbm9jaG4gd2l0eiAoRmx1c3N3aW5kLCAyMC4gU2VwIDE5OTUsIDEzOjI5OjQxKToKCkljaCBiaW4gYXVoIFN0aWVyLCB3YXMgc29sbCBkYXMgaGVpc3NlbiBBc21vZGlzPwoKRmx1c3NpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcmU6IG5vY2huIHdpdHogKEFzbW9kaXMsIDIxLiBTZXAgMTk5NSwgMjE6NDg6NTgpOgojISBybj1GbHVzc3dpbmQgcnQ9ODExNTk2NTgxClNlaWQgaWhyIGFsbGUgYmxvbmQgb2RlciB3YXM/IE5hdHVlcmxpY2ggaXN0IGVzIGVpbiBadWNodHN0aWVyLCBzb25zdAp3YWVyZSBlciBuaWNodCBhdWYgZWluZXIgQXVzc3RlbGx1bmcuIHVuZCB6dSBGbHVzc3dpbmQ6CkZyYWcgbmVuIEJhdWVyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHJlOiBub2NobiB3aXR6IChHb2x1bSwgMjIuIFNlcCAxOTk1LCAwMToxNjozMSk6CiMhIHJuPUFzbW9kaXMgcnQ9ODExNzEyOTM4CldhcyBtYWNodCBuZSBCcnVuZXR0ZSB6d2lzY2hlbiB6d2VpIEJsb25kaW5lbiA/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpEb2xtZXRzY2hlbgoKR29sdW0gKmF1YSBuaWNodCBoYXVlbiogYmluIGF1Y2ggQmxvbmQgOykKIiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlci13aXR6IChBc21vZGlzLCAyMi4gU2VwIDE5OTUsIDAyOjQ4OjAyKToKTm9jaCBlaW4gV2l0eiwgYmV2b3IgaWNoIGdlaGUgOikKClp3ZWkgQmFsbG9uZmFocmVyIGhhYmVuIHNpY2ggdmVyZmxvZ2VuIChOSUNIVCB1ZWJlciBSdXNzbGFuZCEpLiBTaWUKZ2VoZW4gZXR3YXMKdGllZmVyIHVuZCBzZWhlbiBhdWYgZGVtIEJvZGVuIGVpbmVuIE1hbm4gaW4gU2FuZGFsZW4uClNpZSBydWZlbiBoZXJ1bnRlcjogIkhhbGxvLiBXbyBzaW5kIHdpcj8iCkRlciBNYW5uIHVlYmVybGVndCBldHdhIDIgTWludXRlbiB1bmQgYmV2b3IgZGVyIEJhbGxvbiBnYW56CndlaXRlcmdldHJpZWJlbgppc3QsIHJ1ZnQgZXI6ICJJbSBCYWxsb24hIgpEaWUgYmVpZGVuIEJhbGxvbmZhaHJlciBzZWhlbiBzaWNoIHZlcnN0YWVuZG5pc2xvcyBhbi4KRGEgbWVpbnQgZGVyIGVpbmU6ICJEZXIgTWFubiBpc3QgTWF0aGVtYXRpa2VyISIKRGVyIEFuZGVyZSBmcmFndCAiV2llc28/IgoiSXN0IGRvY2gga2xhcjoKIDEuIEVyIGhhdCBTYW5kYWxlbiBhbi4KIDIuIEVyIGhhdCBzaWNoIHNlaW5lIEFudHdvcnQgZ3J1ZW5kbGljaCB1ZWJlcmxlZ3QuCiAzLiBEaWUgQW50d29ydCBpc3Qga29ycmVrdC4KIDQuIE1hbiBrYW5uIG1pdCBkZXIgQW50d29ydCBuaWNodHMgYW5mYW5nZW4uIgoKCiAgICAgICAgICAgICAgICAgICAgICAgQ2lhbywgdW5kIGd1dGUgbmFjaHQsIEFzbW9kaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBQaHlzaWtlciB1bmQgZWluIEluZm9ybWF0aWtlciAuLi4gKFJ1bWF0YSwgMjIuIFNlcCAxOTk1LCAwMzoxMTozMSk6Ci4uLiBmYWhyZW4gaW4gZWluZW0gSmVlcCBkdXJjaCBkaWUgQWxwZW4gKHp1ciBFVEggWnVlcmljaz8pCkF1ZiBlaW5lbSBHZWZhZWxsZSB2ZXJzYWdlbiBwbG9ldHpsaWNoIGRpZSBCcmVtc2VuLiBEZXIgUGh5c2lrZXIgKGFtClN0ZXVlcikgYnJpbmd0IGRhcyBBdXRvIFplaW50aW1lciB2b3IgZGVtIEFiZ3J1bmQgenVtIHN0ZWhlbi4KTmFjaGRlbSBlciBkcmVpbWFsIHRpZWYgZHVyY2hnZWF0bWV0IGhhdCwgc2FndCBlcjoKICAiV2lyIG11c3NlbiBkZW4gV2FnZW4gZHJpbmdlbnN0IHp1IGVpbmVyIFdlcnN0YXR0IGJyaW5nZW4hIgpEYXJhdWYgZGVyIEluZm9ybWF0aWtlcjoKICAiU29sbHRlbiB3aXIgbmljaHQgZXJzdG1hbCBzY2hhdWVuLCBvYiB3aXIgZGVuIEZlaGxlcgogICAgcmVwcm9kdXppZXJlbiBrb2VubmVuPyIKCk5hY2h0LCBSdW1hdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZXNvLi4uIChCbG9vZHloYXJyeSwgMjIuIFNlcCAxOTk1LCAxNDozODowMik6CkVyOiAiV2llc28gYW50d29ydGVzdCBEdSBpbW1lciBtaXQgZWluZXIgR2VnZW5mcmFnZSBhdWYgbWVpbmUgRnJhZ2VuPyIKU2llOiAiVHVlIGljaCBkYXMgPyIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6IHp1bSBTYW1zdGFnIChBc21vZGlzLCAyMi4gU2VwIDE5OTUsIDIyOjQ2OjM5KToKSGllciBub2NoIGRlciBXaXR6IHp1bSBTYW1zdGFnOgoKU2ltb25lIHVuZCBFZHVhcmQgaW0gQmV0dC4gU2Nocml0dGUgYXVmIGRlciBUcmVwcGU6Ik9oIEdvdHQsIG1laW4gTWFubiEiCkVkdWFyZCBzY2hsdWVwZnQgYXVzIGRlbSBGZW5zdGVyLiBFaW5lIFdlaWxlIHNpdHp0IGVyIGltIHN0cm9lbWVuZGVuIFJlZ2VuCnVuZCB3ZWlzcyBuaWNodCBzbyByZWNodCwgd2FzIGVyIHR1biBzb2xsLiBBbHMgZWluZSBHcnVwcGUgSm9nZ2VyCnZvcmJlaWtvbW10LCBlcmdyZWlmdCBFZHVhcmQgZGllIEdlbGVnZW5oZWl0IHVuZCBzY2hsaWVzc3Qgc2ljaCBpaG5lbiBhbi4KIkhlLCBqb2dnZW4gU2llIGltbWVyIHNvIG5hY2t0PyIKIkphLCIgYW50d29ydGV0IEVkdWFyZCBrbmFwcC4KIlVuZCAtIGltbWVyIG1pdCBLb25kb20/IgoiTmVpbiwgbnVyIGJlaSBSZWdlbiEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbiBQaHlzaWtlciB1bmQgZWluIEluZm9ybWF0aWtlciAuLi4gKEFyYW55YSwgMjMuIFNlcCAxOTk1LCAxNToyMzoxNSk6CiMhIHJuPVJ1bWF0YSBydD04MTE3MzIyOTEKV2llIHdhciBkYXMgbWl0IGRlbSBJbmZvdGlrZXIgdW5kIGRlbSBrYXB1dHRlbiBBdXRvPyAiQXVzc2NoYWx0ZW4gdW5kIG5ldS0KYm9vdGVuIgpOdXIgc28KICAgICAgQXJhbnlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiByZTogbm9jaG4gd2l0eiAoQmlsYm9tLCAyMy4gU2VwIDE5OTUsIDE5OjE0OjQ4KToKIyEgcm49R29sdW0gcnQ9ODExNzI1MzkxCkljaCBlcmxhdWJlIG1pciBhdWNoIG1hbCBlaW4gd2l0eiwgYWJlciBuaWNodCBoYXVuLi4uLmJpbiBzZWxiZXIgQmxvbmQuCgpXaWVzbyBrYW5uIGVpbmUgQmxvbmRpbmUgbmljaHQgRmFsbHNjaGlybXNwcmluZ2VuIHdlcmVuZCBzaWUgaWhyZSBUYWdlIGhhdD8/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiBXZWlsIHNpZSBzb25zdCBhbiBkZXIgZmFsc3NjaGVuIFNjaG51cnIgemllaHQuCgogICBCaWxib20gZGVyIHVuc2NodWxkaWdlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogcmU6IG5vY2huIHdpdHogKFBlbm55d2lzZSwgMjQuIFNlcCAxOTk1LCAxNzo0NzoxOSk6CiMhIHJuPUdvbHVtIHJ0PTgxMTcyNTM5MQoKV2llIG5lbm50IG1hbiAnbmUgQmxvbmRpbmUgaGludGVybSBTdGV1ZXI/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKQWlyYmFnLgogICBQZW5ueXdpc2UgKGR1bmtlbGJsb25kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRm9vdGJhbGwgRW50cmFuY2UgRXhhbSAoUXVlbmdpc3R1LCAyNS4gU2VwIDE5OTUsIDEyOjMyOjE3KToKRm9vdGJhbGwgRW50cmFuY2UgRXhhbQpVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24gRU5UUkFOQ0UgRVhBTSAtIEZPT1RCQUxMIFBMQVlFUiBWRVJTSU9OClRpbWUgTGltaXQ6IDMgV0tTCgoxLiBXaGF0IGxhbmd1YWdlIGlzIHNwb2tlbiBpbiBGcmFuY2U/CgoyLiBHaXZlIGEgZGlzc2VydGF0aW9uIG9uIHRoZSBhbmNpZW50IEJhYnlsb25pYW4gRW1waXJlIHdpdGggcGFydGljdWxhcgogICByZWZlcmVuY2UgdG8gYXJjaGl0ZWN0dXJlLCBsaXRlcmF0dXJlLCBsYXcgYW5kIHNvY2lhbCBjb25kaXRpb25zCiAgIC1PUi0KICAgZ2l2ZSB0aGUgZmlyc3QgbmFtZSBvZiBQaWVycmUgVHJ1ZGVhdS4KCjMuIFdvdWxkIHlvdSBhc2sgV2lsbGlhbSBTaGFrZXNwZWFyZSB0bwogICAgICAgIGEpIGJ1aWxkIGEgYnJpZGdlCiAgICAgICAgYikgc2FpbCB0aGUgb2NlYW4KICAgICAgICBjKSBsZWFkIGFuIGFybXkgb3IKICAgICAgICBkKSBXUklURSBBIFBMQVkKCjQuIFdoYXQgcmVsaWdpb24gaXMgdGhlIFBvcGU/CiAgICAgICAgYSkgSmV3aXNoCiAgICAgICAgYikgQ2F0aG9saWMKICAgICAgICBjKSBIaW5kdQogICAgICAgIGQpIFBvbGlzaAogICAgICAgIGUpIEFnbm9zdGljIChjaGVjayBvbmx5IG9uZSkKCjUuIE1ldHJpYyBjb252ZXJzaW9uLiBIb3cgbWFueSBmZWV0IGlzIDAuMCBtZXRlcnM/Cgo2LiBXaGF0IHRpbWUgaXMgaXQgd2hlbiB0aGUgYmlnIGhhbmQgaXMgb24gdGhlIDEyIGFuZCB0aGUgbGl0dGxlIGhhbmQKICAgaXMgb24gdGhlIDU/Cgo3LiBIb3cgbWFueSBjb21tYW5kbWVudHMgd2FzIE1vc2VzIGdpdmVuPyAoYXBwcm94aW1hdGVseSkKCjguIFdoYXQgYXJlIHBlb3BsZSBpbiBBbWVyaWNhJ3MgZmFyIG5vcnRoIGNhbGxlZD8KICAgICAgICAoYSkgV2VzdGVybmVycwogICAgICAgIChiKSBTb3V0aGVybmVycwogICAgICAgIChjKSBOb3J0aGVybmVycwoKOS4gU3BlbGwgLS0gQnVzaCwgQ2FydGVyIGFuZCBDbGludG9uCgoxMC4gU2l4IGtpbmdzIG9mIEVuZ2xhbmQgaGF2ZSBiZWVuIGNhbGxlZCBHZW9yZ2UsIHRoZSBsYXN0IG9uZSBiZWluZwogICAgR2VvcmdlIHRoZSBTaXh0aC4gTmFtZSB0aGUgcHJldmlvdXMgZml2ZS4KCjExLiBXaGVyZSBkb2VzIHJhaW4gY29tZSBmcm9tPwogICAgICAgIChhKSBNYWN5J3MKICAgICAgICAoYikgYSA3LTExCiAgICAgICAgKGMpIENhbmFkYQogICAgICAgIChkKSB0aGUgc2t5CgoxMi4gQ2FuIHlvdSBleHBsYWluIEVpbnN0ZWluJ3MgVGhlb3J5IG9mIFJlbGF0aXZpdHk/CiAgICAgICAgKGEpIHllcwogICAgICAgIChiKSBubwoKMTMuIFdoYXQgYXJlIGNvYXQgaGFuZ2VycyB1c2VkIGZvcj8KCjE0LiBUaGUgU3RhciBTcGFuZ2xlZCBCYW5uZXIgaXMgdGhlIE5hdGlvbmFsIEFudGhlbSBmb3Igd2hhdCBjb3VudHJ5PwoKMTUuIEV4cGxhaW4gTGUgQ2hhdGVsaWVycyBQcmluY2lwbGUgb2YgRHluYW1pYyBFcXVpbGlicml1bQogICAgLU9SLQogICAgc3BlbGwgeW91ciBuYW1lIGluIEJMT0NLIExFVFRFUlMuCgoxNi4gV2hlcmUgaXMgdGhlIGJhc2VtZW50IGluIGEgdGhyZWUgc3RvcnkgYnVpbGRpbmcgbG9jYXRlZD8KCjE3LiBXaGljaCBwYXJ0IG9mIEFtZXJpY2EgcHJvZHVjZXMgdGhlIG1vc3Qgb3Jhbmdlcz8KICAgICAgICAoYSkgTmV3IFlvcmsKICAgICAgICAoYikgRmxvcmlkYQogICAgICAgIChjKSBDYW5hZGEKICAgICAgICAoZCkgV2lzY29uc2luCgoxOC4gQWR2YW5jZWQgbWF0aC4gSWYgeW91IGhhdmUgdGhyZWUgYXBwbGVzIGhvdyBtYW55IGFwcGxlcyBkbyB5b3UgaGF2ZT8KCjE5LiBXaGF0IGRvZXMgTkJDIChOYXRpb25hbCBCcm9hZGNhc3RpbmcgQ29ycC4pIHN0YW5kIGZvcj8KCjIwLiBUaGUgVW5pdmVyc2l0eSBvZiBXYXNoaW5ndG9uIHRyYWRpdGlvbiBmb3IgZWZmaWNpZW5jeSBiZWdhbiB3aGVuCiAgICAoYXBwcm94aW1hdGVseSk/CiAgICAgICAgKGEpIEIuQy4KICAgICAgICAoYikgQS5ELgogICAgICAgIChjKSBzdGlsbCB3YWl0aW5nCgoqWW91IG11c3QgYW5zd2VyIHRocmVlIG9yIG1vcmUgcXVlc3Rpb25zIGNvcnJlY3RseSB0byBxdWFsaWZ5LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaW5lbiBXaXR6IE5yLiA5OTk5OTkuLi4uIChTaGlub2JpLCAyNS4gU2VwIDE5OTUsIDEzOjEyOjUwKToKQXVjaCB3ZW5uIG1pY2ggamV0enQgYWxsZSBmdWVyIHNleGlzdGlzY2ggKHdhaHJzY2hlaW5saWNoIG5pY2h0IGdhbnogenUgdW4tCnJlY2h0KSBoYWx0ZW4sIGhpZXIgbm9jaCBlaW4gQmxvbmRpbmVud2l0ejoKCldhcyBzdGVodCBhdWYgZGVtIFQtU2hpcnQgZGVyIGJsb25kZW4gR3JlZW5wZWFjZS1Ba3RpdmlzdGluPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpJY2ggYmluIGd1dCB6dSBWb2VnZWxuLgoKClNoaW5vYmkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZWRlIE1lbmdlIEJsb25kaW5lbndpdHplIChBc21vZGlzLCAyNi4gU2VwIDE5OTUsIDAxOjI0OjE2KToKQmxvbmRpbmVuIHNpbmQgd2llIEJyaWVma2Flc3Rlbiwgd2FzIG1hbiBkYSBuaWNodCBhbGxlcyByZWluc3RlY2tlbiBrYW5uICEKRWluIENoaW5lc2Uga29tbXQgYXVzIGVpbmVyIEJhZWNrZXJlaS4gSW0gQXJtIGhhZWx0IGVyIGVpbmUgQmxvbmRpbmUuIFdhcyBoYXQKZXIgYmVzdGVsbHQ/IEVpbiBCbG9ldGNoZW4uCkVpbmUgUmVnaWVydW5nc3N0dWRpZSBoYXQgZ2V6ZWlndCwgZGFzcyBCbG9uZGluZW4gbWVociBTcGFzcyBkYWJlaSBoYWJlbi4gClNpZSB2ZXJnZXNzZW4gZGFzIGxldHp0ZSBNYWwgc29mb3J0IGRhbmFjaC4KRmFocmdhc3Q6ICJXbyBpc3QgZGVuIGhpZXIgZGVyIEJhaG5zdGVpZyBOci4gNSA/IiBCYWhuYmVhbXRpbiAoYmxvbmQpOiAiSWNoCmdsYXViZSB6d2lzY2hlbiA0IHVuZCA2LiIKSGFzdCBEdSBzY2hvbiB2b24gZGVyIGJsb25kZW4gRmFsbHNjaGlybXNwcmluZ2VyaW4gZ2Vob2VydD8gU2llIGhhdCBkaWUgRXJkZQp2ZXJmZWhsdCEKSW4gQnJ1ZXNzZWwgaXN0IGVpbmUgQmxvbmRpbmUgZXJ0cnVua2VuIC0gV29sbHRlIE1hZW5uZWtpbi1QaXNzIGVpbmVuIGJsYXNlbi4KSXN0IGRpZSBCcnVlbmV0dGUgbmljaHQgc2VociBzY2huZWxsLCBkYW5uIHdhciduIGRpZSBIYWFyZSB2b3JoZXIgaGVsbC4KVW5kIHdhcyBtYWNoZW4gNSBCbG9uZGluZW4gbmFja3QgaW4gZGVyIElubmVuc3RhZHQ/IFNpZSBzdGVoZW4gbmF0dWVybGljaCB2b3IKU2NobGVja2VyLgpVbmQgd2llIGJyaW5ndCBzaWUgZWluZW4gRmlzY2ggdW0/IER1cmNoIGVyc2FldWZlbgpVbmQgd2llIGlzdCBkZXIgUGFhcnVuZ3NydWYgZWluZXIgaGFlc3NsaWNoZW4gQmxvbmRpbmU/IFtFTkVSR0lTQ0hdIEljaApzYWd0ZSwgaWNoIGJpbiBiZXRydW5rZW4hCldhbm4gaXN0IGVpbmUgQmxvbmRpbmUgZWluZSBndXRlIEtvZWNoaW4/IFdlbm4gc2llIGRpZSBPYnN0dG9lcnRjaGVuIGluIGVpbmVtClN0dWVjayBhdXMgZGVtIFRvYXN0ZXIga3JpZWd0LgpXYW5uIGlzdCBlcyB6dWxhZXNzaWcsIGVpbmVyIEJsb25kaW5lIGluIGRlbiBLb3BmIHp1IHNjaGllc3Nlbj8gV2VubiBtYW4gZWluZQpMdWZ0cHVtcGUgaGF0LCB1bSBpaG4gd2llZGVyIGF1Znp1Ymxhc2VuCldhbm4gc2NocmVpYnQgZWluZSBCbG9uZGluZSBIb3Jyb3JnZXNjaGljaHRlbj8gV2VubiBzaWUgRGVpbiBTY2hlY2tidWNoIGhhdC4KV2FubiBzaW5kIEJsb25kaW5lbiBnZW5hdSBlaW5lIE1hcmsgd2VydCA/IFdlbm4gc2llIGVpbmVuIEVpbmthdWZzd2FnZW4Kc2NoaWViZW4uCldhbm4gc3RlY2tlbiBCbG9uZGluZW4gaWhyIEhhYXIgYXVmPyBXZW5uIHNpZSBzb3ZpZWwgd2llIG1vZWdsaWNoIGVpbmZhbmdlbgp3b2xsZW4sIHdhcyB1ZWJlciBpaHJlbSBLb3BmIGlzdC4KV2FydW0gYXJiZWl0ZW4gQmxvbmRpbmVuIGF1Y2ggYW0gV29jaGVuZW5kZT8gRGFtaXQgbWFuIHNpZSBhbSBNb250YWcgbmljaHQKbmV1IGFubGVybmVuIG11c3MhCldhcnVtIGJlZ3JhZWJ0IG1hbiBCbG9uZGluZW4gbnVyIGFtIEhhbmc/IERhbWl0IGltIFdpbnRlciBqZWRlcgpkcnVlYmVycnV0c2NoZW4ga2FubiEKV2FydW0gYmVrb21tZW4gQmxvbmRpbmVuIGtlaW4gQUlEUz8gLi4uQXVjaCBWaXJlbiBoYWJlbiBpaHJlbiBTdG9seiEKV2FydW0gYmVudXR6ZW4gQmxvbmRpbmVuIEtvbmRvbWUgYXVjaCBpbSBPaHI/IERhbWl0IHNpZSBzcGFldGVyIGtlaW4KSG9laHJnZXJhZXQgYmVub2V0aWdlbgpXYXJ1bSBiZW51dHplbiBCbG9uZGluZW4gU2NodWx0ZXJwYWRzIGltIFB1bGxvdmVyPyBVbSBkZW4gS29wZiBhYmxlZ2VuIHp1CmtvZW5uZW4KV2FydW0gYmVudXR6ZW4gQmxvbmRpbmVuIFNjaHVsdGVycG9sc3Rlcj8gKE1pdCBkZW0gS29wZiB3aWxkIGhpbi0gdW5kCmhlcnNjaHVldHRlbG5kOikgIndlaXNzbmljaCciCldhcnVtIGJlbnV0emVuIEJsb25kaW5lbiBUYW1wb25zIG1pdCBleHRyYWxhbmdlbiBTY2hudWVyZW4/IERhbWl0IGRpZSBMYWV1c2UKQnVuZ2VlLUp1bXBpbmcgbWFjaGVuIGtvZW5uZW4uCldhcnVtIGJlbnV0emVuIEJsb25kaW5lbiBncnVlbmVuIExpcHBlbnN0aWZ0PyBXZWlsIHJvdCAiU3RvcCIgYmVkZXV0ZXQKV2FydW0gYmVudXR6ZW4gQmxvbmRpbmVuIGtlaW5lbiBWaWJyYXRvcj8gRXIgd3VlcmRlIGlocmUgWmFlaG5lCnplcnNjaG5ldHplbG4uCldhcnVtIGJyYXVjaGVuIEJsb25kaW5lbiBrZWluZW4gUmVnZW5zY2hpcm0/IFdlaWwgZGVyIFdlZyB2b20gU2NobGFmemltbWVyCnp1ciBLdWVjaGUgdWViZXJkYWNodCBpc3QhCldhcnVtIGJyZWNoZW4gc2ljaCBCbG9uZGluZW4gZGllIEJlaW5lLCB3ZW5uIHNpZSBMYXViIHp1c2FtbWVucmVjaGVuPyBTaWUKZmFsbGVuIHZvbSBCYXVtLgpXYXJ1bSBicmluZ2VuIEJsb25kaW5lbiBpaHJlIFRhc2NoZW5yZWNobmVyIHp1bSBGcmF1ZW5hcnp0PyBTaWUgZGVua2VuIGVyIGlzdApzY2h3YW5nZXIsIHdlaWwgZXIgZGllIFBlcmlvZGUgbmljaHQga3JpZWd0LgpXYXJ1bSBkdWVyZmVuIEJsb25kaW5lbiBuaWNodCBtZWhyIGltIE96ZWFuIHNjaHdpbW1lbj8gTWFuIGtyaWVndCBkZW4gR2VydWNoCm5pY2h0IG1laHIgYXVzIGRlbiBGaXNjaGVuLgpXYXJ1bSBkdWVyZmVuIEJsb25kaW5lbiBudXIgMTUgTWludXRlbiBNaXR0YWdzcGF1c2UgbWFjaGVuPyBXZWlsIG1hbiBzaWUKc29uc3QgbmV1IGFubGVybmVuIG1uc3N0ZS4uCldhcnVtIGR1ZXJmZW4ga2VpbmUgQmxvbmRpbmVuIGJlaSAiTSZNIiBhcmJlaXRlbj8gU2llIHNvcnRpZXJlbiBkaWUgIlcicyBhdXMuCldhcnVtIGVqYWt1bGllcmVuIE1hZW5uZXIgc3Rvc3N3ZWlzZT8gRGFtaXQgZGllIEJsb25kaW5lbiBtaXQgZGVtIFNjaGx1Y2tlbgpuYWNoa29tbWVuLgpXYXJ1bSBlc3NlbiBCbG9uZGluZW4ga2VpbmUgQmFuYW5lbj8gU2llIGZpbmRlbiBkZW4gUmVpc3N2ZXJzY2hsdXNzIG5pY2h0CldhcnVtIGVzc2VuIEJsb25kaW5lbiBrZWluZSBHZXd1ZXJ6Z3Vya2VuPyBXZWlsIHNpZSBpaHJlbiBLb3BmIG5pY2h0IGlucyBHbGFzCmtyaWVnZW4ga29lbm5lbi4KV2FydW0gZmFlbGx0IGRhcyBUYW1wb24gZWluZXIgQmxvbmRpbmUgbmljaHQgcmF1cywgd2VubiBzaWUgc3RlaHQ/IERhcyBWYWt1dW0KaW0gS29wZiBoYWVsdCBlcyBmZXN0LgpXYXJ1bSBmYWhyZW4gQmxvbmRpbmVuIEJNVz8gV2VpbCBzaWUgZXMgYnVjaHN0YWJpZXJlbiBrb2VubmVuCldhcnVtIGZyZXV0IHNpY2ggZWluZSBCbG9uZGluZSBzbywgd2VubiBzaWUgZWluIFB1enpsZSBuYWNoIDYgTW9uYXRlbiBmZXJ0aWcKaGF0PyBXZWlsIGF1ZiBkZXIgUGFja3VuZyBzdGVodDogdm9uIDItNCBKYWhyZW4KV2FydW0gZnVlaGxlbiBzaWNoIEJsb25kaW5lbiB2b24gZGVuIFdvcnRlbiBhbmRlcmVyIExldXRlIHZlcmxldHp0PyBXZWlsIHNpZQpzaWUgbWl0IFdvZXJ0ZXJidWVjaGVybiBiZXdlcmZlbi4KV2FydW0gZ2VoZW4gQmxvbmRpbmVuIGltbWVyIGF1ZiBaZWhlbnNwaXR6ZW4gYW4gTWVkaXppbnNjaHJhZW5rZW4gdm9yYmVpPyBTaWUKd29sbGVuIGRpZSBTY2hsYWZ0YWJsZXR0ZW4gbmljaHQgYXVmd2Vja2VuLgpXYXJ1bSBnaWJ0IGVzIGthdW0gYmxvbmRlIEJhbGxldHRsZWhyZXJpbm5lbj8gV2VpbCBzaWUgYmVpbSBTcGFnYXQgaW1tZXIgYXVmCmRlbSBCb2RlbiBrbGViZW4gYmxlaWJlbgpXYXJ1bSBnaWJ0IGVzIGtlaW5lIGJsb25kZW4gTGlmdGJveXM/IFNpZSBrZW5uZW4gZGVuIFdlZyBuaWNodC4KV2FydW0gaGFiZW4gQmxvbmRpbmVuIEJlaW5lPyBVbSB2b20gQmV0dCBpbiBkaWUgS3VlY2hlIHp1IGtvbW1lbgpXYXJ1bSBoYWJlbiBCbG9uZGluZW4gUHJvYmxlbWUsIGRlbiBPcmdhc211cyB6dSBlcnJlaWNoZW4/IFdlbiBrdWVtbWVydCdzID8KV2FydW0gaGFiZW4gQmxvbmRpbmVuIFZhZ2luYXM/IERhbWl0IGRpZSBNYWVubmVyIHNpY2ggYXVmIFBhcnRpZXMgbWl0IGlobmVuCnVudGVyaGFsdGVuLgpXYXJ1bSBoYWJlbiBCbG9uZGluZW4gYmxhdWUgRmxlY2tlbiBpbiBkZXIgR2VnZW5kIHZvbSBCYXVjaG5hYmVsPyBXZWlsIGVzCmF1Y2ggYmxvbmRlIEp1bmdzIGdpYnQhCldhcnVtIGhhYmVuIEJsb25kaW5lbiBkaWUgUGVyaW9kZT8gV2VpbCBzaWUgZXMgdmVyZGllbnQgaGFiZW4KV2FydW0gaGFiZW4gQmxvbmRpbmVuIGtlaW5lIEVpc3d1ZXJmZWwgaW0gR2VmcmllcnNjaHJhbms/IFNpZSBoYWJlbiBkYXMKUmV6ZXB0IHZlcmxvcmVuLgpXYXJ1bSBoYWJlbiBCbG9uZGluZW4gbWVociBTcGFzcz8gV2VpbCBzaWUgZXMgbmljaHQgYmVzc2VyIHdpc3NlbgpXYXJ1bSBoYWJlbiBCbG9uZGluZW4gc28ga2xlaW5lIEZ1ZXNzZT8gRGFtaXQgc2llIG5hZWhlciBhbSBIZXJkIHN0ZWhlbgprb2VubmVuLgpXYXJ1bSBoYWJlbiBNYW50YWZhaHJlciBuZXVlcmRpbmdzIGltbWVyIGVpbmVuIFN0cm9oYmFsbGVuIGF1ZiBkZW0KQmVpZmFocmVyc2l0ej8gSGF1cHRzYWNoZSBCbG9uZCB1bmQgcnVoaWcgIQpXYXJ1bSBoYWJlbiBhbWVyaWthbmlzY2hlIEJsb25kaW5lbiBlaW4gWmVpY2hlbiAiVEdJRiIgYXVmIGplZGVtIFNjaHVoPwoiVG9vdGggZ28gaW4gZmlyc3QiCldhcnVtIGhhYmVuIGVzIEJsb25kaW5lbiBzbyBzY2h3ZXIgbWl0IGRlbSBIZWlyYXRlbj8gV2VpbCBTZXggbmljaHQgZGVyCmVpbnppZ2UgR3J1bmQgaXN0CldhcnVtIGhhdCBkaWUgQmxvbmRpbmUgYXVmZ2Vob2VydCwgZGllIFBpbGxlIHp1IG5laG1lbj8gU2llIGZpZWwgaW1tZXIgd2llZGVyCnJhdXMuCldhcnVtIGhhdCBlaW5lIEJsb25kaW5lIGVpbmUgSGlybnplbGxlIG1laHIgYWxzIGVpbmUgS3VoPyBEYW1pdCBzaWUgbmljaHQKbXVodCB1bmQga2Fja3QsIHdlbm4gbWFuIGlociBhbnMgIEV1dGVyIGdyZWlmdApXYXJ1bSBpc3QgZGFzIFplaWNoZW4gIlRHSUYiIGF1Y2ggYXVmIGlocmVtIFB1bGxvdmVyPyAiVGl0cyBnbyBpbiBmcm9udCIKV2FydW0gaXN0IGRpZSBCbG9uZGluZSAxNCBtYWwgdW0gZGVuIEhhZXVzZXJibG9jayBnZWZhaHJlbj8gSWhyIEJsaW5rZXIgd2FyCmthcHV0dC4KV2FydW0gaXN0IGVpbmUgQmxvbmRpbmUgd2llIGVpbiBUdWVya25vcGY/IFdlaWwgYXVjaCBpaG4gamVkZXIgcnVtZHJlaGVuIGthbm4KV2FydW0gaXN0IGVpbmUgQmxvbmRpbmUgd2llIGVpbmUgRWlzZW5iYWhuc2NoaWVuZT8gV2VpbCBzaWUgYXVjaCB1ZWJlcmFsbCBpbQpMYW5kIGxpZWd0CldhcnVtIGlzdCBlaW5lIEJsb25kaW5lIHdpZSBlaW5lIFNjaGlsZGtyb2V0ZT8gU2llIHNpbmQgYmVpZGUgZ2VmaWNrdCwgd2VubgpzaWUgYXVmIGRlbSBSdWVja2VuIGxpZWdlbi4KV2FydW0gaXN0IGVzIGd1ZW5zdGlnLCBlaW5lIGJsb25kZSBCZWlmYWhyZXJpbiB6dSBoYWJlbj8gTWFuIGthbm4gZGllCkJlaGluZGVydGVucGFya3BsYWV0emUgYmVudXR6ZW4KV2FydW0gaXN0IGluIGRlciBCYWRld2FubmUgZWluZXIgQmxvbmRpbmUgZWluIFN0YWNoZWxkcmFodD8gRGFtaXQgU2llIG5pY2h0CnNvIHdlaXQgaGVyYXVzIHNjaHdpbW10IQpXYXJ1bSBrYW5uIG1hbiBCbG9uZGluZW4gbmljaHQgaW4gbm9ybWFsZW4gU2FlcmdlbiBiZWVyZGlnZW4/IFdlbm4gbWFuIHNpZQphdWYgZGVuIFJ1ZWNrZW4gbGVndCwgbWFjaGVuIHNpZSBkaWUgQmVpbmUgYnJlaXQuCldhcnVtIGtsZXR0ZXJ0IGVpbmUgQmxvbmRpbmUgZGllIEdsYXN3YW5kIGhpbmF1Zj8gVW0genUgc2VoZW4sIHdhcyBhdWYgZGVyCmFuZGVyZW4gU2VpdGUgaXN0LgpXYXJ1bSBrb2VubmVuIEJsb25kaW5lbiBrZWluZSBHbHVlaGJpcm5lbiB3ZWNoc2Vsbj8gV2VpbCBzaWUgc2llIG1pdCBkZW0KSGFtbWVyIGluIGRpZSBGYXNzdW5nIHNjaGxhZ2VuCldhcnVtIGtvZW5uZW4gQmxvbmRpbmVuIG5pY2h0IFNraWZhaHJlbj8gV2VpbCB6d2lzY2hlbiBTY2hsYWZ6aW1tZXIgdW5kCkt1ZWNoZSBrZWluIFNjaG5lZSBsaWVndC4KV2FydW0ga29lbm5lbiBCbG9uZGluZW4gbmljaHQgZGllICdFTEYnIHNjaHJlaWJlbj8gU2llIHdpc3NlbiBuaWNodCwgd2VsY2hlCidFSU5TJyB6dWVyc3Qga29tbXQuCldhcnVtIGtvZW5uZW4gQmxvbmRpbmVuIG5pY2h0IG5hY2ggZWluZW0gS29jaGJ1Y2ggZG9wcGVsdGUgUG9ydGlvbmVuIGtvY2hlbj8KV2VpbCBkZXIgT2ZlbiBuaWNodCBiaXMgNDAwIEdyYWQgZ2VodC4KV2FydW0ga29lbm5lbiBCbG9uZGluZW4gbmljaHQgc2Nod2ltbWVuPyBXZWlsIHNpZSBkaWUgQmVpbmUgbmljaHQKenVzYW1tZW5rcmllZ2VuIHdlbm4ncyBmZXVjaHQgd2lyZCAhCldhcnVtIGtvZW5uZW4gQmxvbmRpbmVuIG5pY2h0IHN0b2VobmVuPyBXZWlsIHNpZSBpbW1lciBkZW4gVGV4dCB2ZXJnZXNzZW4hCldhcnVtIGtvZW5uZW4gRnJhdWVuIG5pY2h0IHNjaG9lbiB1bmQgaW50ZWxsaWdlbnQgenUgZ2xlaWNoIHNlaW4/IFdlaWwgc2llCmRhbm4gTWFlbm5lciB3YWVyZW4uCldhcnVtIGxhZXNzdCBlaW5lIEJsb25kaW5lIGFidHJlaWJlbj8gU2llIHd1c3N0ZSBuaWNodCBvYiBkYXMgS2luZCB2b24gSWhyCmlzdC4KV2FydW0gbGFzc2VuIEJsb25kaW5lbiBpaHJlIEVpc3d1ZXJmZWwgaW1tZXIgaW0gR2VmcmllcmZhY2g/IFNvIGtvZW5uZW4gc2llCmRlbiBLdWVobHNjaHJhbmsga3VlaGwgaGFsdGVuLgpXYXJ1bSBsYXVmZW4gQmxvbmRpbmVuIGJlaW0gRHVzY2hlbiBhbmRhdWVybmQgaGluIHVuZCBoZXI/IFdlaWwgYXVmIElocmVtClNoYW1wb28gc3RlaHQ6ICJXYXNoIGFuZCBHbyIKV2FydW0gbGllYmVuIEJsb25kaW5lbiBHZXdpdHRlcj8gV2VpbCBTaWUgZGVua2VuLCBqZW1hbmQgbWFjaHQgZWluIEZvdG8gdm9uCmlobmVuCldhcnVtIG1vZWdlbiBCbG9uZGluZW4gU2NoaWViZWRhZWNoZXIgYW0gQXV0bz8gTWVociBCZWluZnJlaWhlaXQKV2FydW0gbXVzcyBtYW4gQnJpZWZlIGFuIEJsb25kaW5lbiBsYW5nc2FtIHNjaHJlaWJlbj8gV2VpbCBzaWUgbmljaHQgc28Kc2NobmVsbCBsZXNlbiBrb2VubmVuLgpXYXJ1bSBuZWhtZW4gQmxvbmRpbmVuIGRpZSBQaWxsZT8gQXVmIGRpZXNlIFdlaXNlIHdpc3NlbiBzaWUsIHdlbGNoZSBXb2NoZQpnZXJhZGUgaXN0LgpXYXJ1bSBuZWhtZW4gQmxvbmRpbmVuIGltbWVyIGVpbiBTdHVlY2sgYnJvdCBtaXQgYXVmIGRpZSBUb2lsZXR0ZSA/IFdlaWwgc2llCmRpZSBXQyBFbnRlIGZ1ZXR0ZXJuIHdvbGxlbi4uLgpXYXJ1bSBzYWd0IGVpbmUgQmxvbmRpbmUsIGRhc3MgaWhyIExvdmVyIGVpbiBLb25kb20gYmVudXR6ZW4gc29sbD8gRGFtaXQgc2llCm5vY2ggd2FzIGZ1ZXIgdW50ZXJ3ZWdzIG1pdG5laG1lbiBrYW5uLgpXYXJ1bSBzY2h1ZiBHb3R0IGRpZSBCbG9uZGluZW4/IFdlaWwgSHVlaG5lciB1bmQgR3VtbWlwdXBwZW4ga2VpbiBCaWVyIGF1cwpkZW0gS3VlaGxzY2hyYW5rIGhvbGVuIGtvZW5uZW4KV2FydW0gc2Nod2ltbXQgZGllIExlaWNoZSBlaW5lciBCbG9uZGluZSBmbHVzc2F1ZndhZXJ0cz8gV2VpbCBzaWUgdm9yIGlocmVtCkFibGViZW4gdmVyZ2FzcywgZGVuIFZpYnJhdG9yIGF1c3p1c2NoYWx0ZW4gIQpXYXJ1bSBzZXR6ZW4gc2ljaCB0YXViZSBCbG9uZGluZW4gYXVmIFplaXR1bmdlbj8gU2llIGtvZW5uZW4gTGlwcGVubGVzZW4uCldhcnVtIHNldHp0IHNpY2ggZWluZSBCbG9uZGluZSBhdWYgZGVuIEt1ZWhsZXIgSWhyZXMgQXV0b3M/IFdlaWwgZGVyCktmei1NZWNoYW5pa2VyIHNhZ3RlOiAiSWhyIEt1ZWhsZXIgbGVja3QuIgpXYXJ1bSBzaW5kIEJsb25kaW5lbiBzbyBpbnRlcmVzc2llcnQgYW4gQUlEUz8gV2VpbCBzaWUgZXMgYXVjaCBidWNoc3RhYmllcmVuCmtvZW5uZW4KV2FydW0gc2luZCBCbG9uZGluZW4gc28gc2NobGVjaHRlIEFwb3RoZWtlcmlubmVuPyBTaWUga3JpZWdlbiBkaWUgRmxhc2NoZW4KbmljaHQgaW4gZGllIFNjaHJlaWJtYXNjaGluZS4KV2FydW0gc2luZCBCbG9uZGluZW4gc28gc2NobGVjaHRlIFZpZWhoaXJ0ZW4/IFdlaWwgc2llIG5pY2h0IG1hbCAyIEthZWxiZXIKenVzYW1tZW5oYWx0ZW4ga29lbm5lbi4KV2FydW0gc2luZCBCbG9uZGluZW4gd2llIENvcm5mbGFrZXM/IFNpZSBzaW5kIGxlaWNodCwgZWluZmFjaCB1bmQgc2NobWVja2VuCmd1dApXYXJ1bSBzaW5kIEJsb25kaW5lbndpdHplIHNvIGt1cno/IERhbWl0IGRpZSBCcnVlbmV0dGVuIHNpZSBiZWhhbHRlbiBrb2VubmVuCldhcnVtIHNpdHplbiAzIEJsb25kaW5lbiBuYWNrdCBhdWYgZGVyIEhlaXp1bmc/IFdlaWwgZGVyIEtsZW1wdGVyIG1laW50ZSwKZGFzcyBzaWUgbGVja3QgIQpXYXJ1bSBzaXR6dCBkaWUgYmxpbmRlIEJsb25kaW5lIGF1ZiBkZXIgWmVpdHVuZz8gU2llIGthbm4gdm9uIGRlbiBMaXBwZW4KYWJsZXNlbi4KV2FydW0gc2l0enQgZWluZSBCbG9uZGluZSBzbyBnZXJuZSBhdWYgZGVyIFRpdGVsc2VpdGUgZGVyIEJpbGR6ZWl0dW5nPyBVbQppaHJlIExpcHBlbiByb3QgenUgZmFlcmJlbgpXYXJ1bSBzcGllbGVuIEJsb25kaW5lbiBzbyB3YWhuc2lubmlnIGd1dCBUZXRyaXM/IE5hLCBzaWUgZmluZGVuIGluc3Rpbmt0aXYKaW1tZXIgZGFzIHBhc3NlbmRlIExvY2ghCldhcnVtIHN0ZWh0IGVpbmUgQmxvbmRpbmUgYW0gSGFtYnVyZ2VyIEhhZmVuIHVuZCB3aXJmdCBTdGVpbmUgaW5zIFdhc3Nlcj8KV2VpbCBkYSBlaW4gU2NoaWxkIHN0ZWh0ICdEZXV0c2NoZSBXZXJmdCcgLi4uCldhcnVtIHN0ZWxsdCBkaWUgTkFTQSBqZXR6dCBhdWNoIEJsb25kaW5lbiBlaW4/IFNpZSBlcmZvcnNjaGVuIGRpZSBzY2h3YXJ6ZW4KTG9lY2hlcgpXYXJ1bSBzdGlsbGVuIEJsb25kaW5lbiBuaWNodD8gV2VpbCBzaWUgc2ljaCBpbW1lciBkaWUgTmlwcGVsIHZlcmJyZW5uZW4uCldhcnVtIHRyYWdlbiBCbG9uZGluZW4gU2NobHVlcGZlcj8gVW0gZGllIEtub2VjaGVsIHdhcm0genUgaGFsdGVuIQpXYXJ1bSB0cmlua2VuIEJsb25kaW5lbiBrZWluZW4gUElDQ08/IFdlaWwgc2llIG5pY2h0IHdpc3Nlbiwgd2llIHNpZSBkaWUKVGFzc2UgV2Fzc2VyIGluIGRpZSBrbGVpbmUgVHVldGUga3JpZWdlbiBzb2xsZW4uCldhcnVtIHRyaW5rZW4gZGlja2UgQmxvbmRpbmVuIGplZGVuIFRhZyBlaW4gR2xhcyBGYWlyeSBVbHRyYT8gRGFzIGtsZWluZQpXdW5kZXIgZ2VnZW4gRmV0dCAhCldhcnVtIHZlcnNhZ2VuIEJsb25kaW5lbiBhbHMgUHJvc3RpdHVpZXJ0ZT8gV2VpbCBzaWUgZGFzIEJsYXNlbiBpbW1lcgp3b2VydGxpY2ggbmVobWVuLgpXYXJ1bSB3YWVzY2h0IGVpbmUgQmxvbmRpbmUgaWhyIEhhYXIgaW0gV2FzY2hiZWNrZW4/IFdlaWwgbWFuIGRvcnQgZGFzCkdlbXVlc2Ugd2Flc2NodApXYXJ1bSB3ZWNoc2VsbiBCbG9uZGluZW4gZGllIFdpbmRlbG4gaWhyZXMgQmFieXMgbnVyIGplZGVuIE1vbmF0PyBXZWlsIGRyYXVmCnN0ZWh0OiAnQmlzIDIwIFBmdW5kLicKV2FydW0gd2VyZGVuIEJsb25kaW5lbiBpbiBkcmVpZWNraWdlbiBTYWVyZ2VuIGJlZ3JhYmVuPyBXZWlsIHNpZSBpaHJlIEJlaW5lCm5pY2h0IHp1c2FtbWVua3JpZWdlbgpXYXJ1bSB3b2xsZW4gQmxvbmRlIGtlaW5lbiBGZW5zdGVycGxhdHogaW0gRmx1Z3pldWc/IE5hY2ggZGVtIEZvZW5lbiBtb2VjaHRlbgpzaWUgbmljaHQsIGRhc3MgZXMgenUgc2VociBoZXJ1bXdlaHQuCldhcnVtIHdvbGx0ZSBkaWUgQmxvbmRpbmUgVGllcmFlcnp0aW4gd2VyZGVuPyBTaWUgbGllYnQgS2luZGVyLgpXYXMgIHR1biBCbG9uZGluZW4sIHdlbm4gc2llIGhvZXJlbiwgZGFzcyA5MCUgYWxsZXIgVW5mYWVsbGUgaW4gZWluZXIgV29obnVuZwpzdGF0dGZpbmRlbj8gVW16aWVoZW4uCldhcyBhbnR3b3J0ZXQgZWluZSBCbG9uZGluZSwgd2VubiBtYW4gc2llIGZyYWd0OiAiU2luZCBTaWUgc2V4dWVsbCBha3Rpdj8iCiJOZWluLCBpY2ggbGllZ2UgbnVyIGRhLiIKV2FzIGJlZGV1dGV0IGVpbiBzY2h3YXJ6ZXMgSGFsc2JhbmQgYmVpIEJsb25kaW5lbj8gU2Nod2FyemVyIEd1ZXJ0ZWwgaW0KQmxhc2VuLgpXYXMgYmVkZXV0ZXQgZXMsIHdlbm4gZWluZSBCbG9uZGluZSByb3RlbiBMaXBwZW5zdGlmdCBiZW51dHp0PyAiU3RvcCIsCmZhbHNjaGVzIExvY2ghCldhcyBiZWtvbW10IG1hbiwgd2VubiBtYW4gZWluZSBCbG9uZGluZSB1bmQgZWluZW4gQ29tcHV0ZXIga3JldXp0PyBFaW5lbgpmaWNrZW5kZW4gQWxsZXN3aXNzZXIuCldhcyBkZW5rdCBlaW5lIEJsb25kaW5lIHZvbiBlaW5lbSBuZXVlbiBDb21wdXRlcj8gU2llIG1hZyBpaG4gbmljaHQsIHdlaWwgc2llClJUTCBuaWNodCBmaW5kZXQKV2FzIGVyaGFlbHQgbWFuLCB3ZW5uIG1hbiBlaW5lciBCbG9uZGluZSBlaW5lbiBQZmVubmlnIGZ1ZXIgaWhyZSBHZWRhbmtlbgpiaWV0ZXQ/IFdlY2hzZWxnZWxkCldhcyBlc3NlbiBibG9uZGUgSnVuZ2ZyYXVlbj8gQWxldGUsIHdhcyBzb25zdD8KV2FzIGZpbmRldCBkZXIgWmFobmFyenQgZWluZXIgQmxvbmRpbmVuPyBaYWVobmUgaW0gTG9jaC4KV2FzIGhhYmVuIEJsb25kaW5lbiB1bmQgQ0RgcyBnZW1laW5zYW0/IEVzIGRyZWh0IHNpY2ggYmVpIGJlaWRlbiBhbGxlcyBudXIKdW1gcyBMb2NoLgpXYXMgaGFiZW4gQmxvbmRpbmVuIHVuZCBGZXVlcndlaHJhdXRvcyBnZW1laW5zYW0/IEJlaWRlIG1hY2hlbiBlaW5lbgp0aWVyaXNjaGVuIEtyYWNoIHdlbm4gc2llIGtvbW1lbi4KV2FzIGhhYmVuIEJsb25kaW5lbiB1bmQgZWluZSBCaWVyZmxhc2NoZSBnZW1laW5zYW0/IEJlaWRlIHNpbmQgYW0gSGFscwphdWZ3YWVydHMgbGVlci4KV2FzIGhhYmVuIFNwYWdoZXR0aXMgdW5kIEJsb25kaW5lbiBnZW1laW5zYW0/IFNpZSB2ZXJoZWRkZXJuIHNpY2gKV2FzIGhhYmVuIGRpZSBiZWF0bGVzIHVuZCBkaWUgYmVpbmUgZWluZXIgYmxvbmRpbmUgZ2VtZWluc2FtPyBiZWlkZSB3YXJlbgpzZWl0ICc3MCBuaWNodCBtZWhyIHp1c2FtbWVuCldhcyBoYWJlbiBlaW5lIEJsb25kaW5lIHVuZCBkYXMgQmVybXVkYS1EcmVpZWNrIGdlbWVpbnNhbT8gU2llIGhhYmVuIGVpbmUKTWVuZ2UgU2VlbGV1dGUgdmVyc2NobHVuZ2VuLgpXYXMgaGFiZW4gZWluZSBCbG9uZGluZSB1bmQgZGVyIEJvd2xpbmcgQmFsbCBnZW1laW5zYW0/IEJlaWRlIGVuZGVuIGltClNjaGFjaHQKV2FzIGhhYmVuIGVpbmUgQmxvbmRpbmUgdW5kIGVpbiBTY2hyb3RnZXdlaHIgZ2VtZWluc2FtPyBCZWlkZSBrYW5uIG1hbiBpbiBkZXIKTWl0dGUga25pY2tlbiB1bmQgdm9uIGhpbnRlbiBuYWNobGFkZW4hCldhcyBoYWJlbiBlaW5lIEJsb25kaW5lIHVuZCBlaW5lIDc0NyBnZW1laW5zYW0/IEJlaWRlIGhhYmVuIGVpbmUgQmxhY2stQm94LgpXYXMgaGFiZW4gZWluZSBCbG9uZGluZSB1bmQgZWluZSBCcmF0cGZhbm5lIGdlbWVpbnNhbT8gRHUgbXVzc3Qgc2llIGVyc3QKaGVpc3MgbWFjaGVuLCBiZXZvciBEdSBkYXMgRmxlaXNjaCByZWludHVzdC4KV2FzIGhhYmVuIGVpbmUgVHVlciB1bmQgZWluZSBCbG9uZGluZSBnZW1laW5zYW0/IEplIG1laHIgbWFuIHNpZSB6dWJ1bXN0LApkZXN0byBsb2NrZXJlciB3aXJkIHNpZQpXYXMgaGFiZW4gaW50ZWxsaWdlbnRlIEJsb25kaW5lbiB1bmQgRGlub3NhdXJpZXIgZ2VtZWluc2FtPyBCZWlkZSBzaW5kCmJlcmVpdHMgYXVzZ2VzdG9yYmVuLgpXYXMgaGF0IGVpbmUgQmxvbmRpbmUsIGRpZSBlaW5lbiBTdHJvaGJhbGxlbiBoaW50ZXIgc2ljaCBoZXIgemllaHQ/IEV4dGVybmVuClNwZWljaGVyCldhcyBoYXQgZWluZSBCbG9uZGluZSBtaXQgZGVtIFVuaXZlcnN1bSBnZW1laW5zYW0/IEJlaWRlIGhhYmVuIHNjaHdhcnplCkxvZWNoZXIKV2FzIGhhdCBlaW5lIEJsb25kaW5lIG1pdCBlaW5lciBTdGVja2Rvc2UgZ2VtZWluc2FtPyBXZW5uIG1hbiBkZW4gRmluZ2VyIGlucwpmYWxzY2hlIExvY2ggc3RlY2t0LCBpc3QgbWFuIGltIEFyc2NoIQpXYXMgaGF0IGVpbmUgZHVua2VsIGdlZmFlcmJ0ZSBCbG9uZGluZT8gS3VlbnN0bGljaGUgSW50ZWxsaWdlbnoKV2FzIGlzdCBlaW5lIDEyLWoiYWhyaWdlIEJsb25kaW5lPyBFaW4gQmxhc2ViYWxnLgpXYXMgaXN0ICduZSBCbG9uZGUsIGRpZSBBaWRzIGhhdD8gRWluZSBWZXJ0ZWlsZXJkb3NlLi4uCldhcyBpc3QgR2VkdWxkPyBXZW5uIEJsb25kaWUgYXVmIGRlbSBTcGFyZ2VsZmVsZCBsaWVndCB1bmQgd2FydGV0LCBiaXMgaWhyCmVpbmVyIHJlaW53YWVjaHN0LgpXYXMgaXN0IGRhcyBCZXN0ZSB3YXMgZWluZSBCbG9uZGluZSB6dSBlc3NlbiBtYWNoZW4ga2Fubj8gUmVzZXJ2aWVyZW4uCldhcyBpc3QgZGFzIExpZWJsaW5nc2xpZWQgZGVyIEJsb25kaW5lbiBhbHMgS2luZGVyPyBIdW1wIE1lLCBEdW1wIE1lIQpXYXMgaXN0IGRhcyBTa2VsZXR0IGVpbmVyIEJsb25kaW5lIGluIGVpbmVyIFRvaWxldHRlPyBEZXIgVWViZXJyZXN0IHZvbQpWZXJzdGVja3NwaWVsIGxldHp0ZXMgSmFocgpXYXMgaXN0IGRhcyB3aWNodGlnc3RlIE9yZ2FuIGVpbmVyIEJsb25kaW5lbj8gRGllIE5hc2UuIERhbWl0IHNpZSBiZWltIEJsYXNlbgphdG1lbiBrYW5uLgpXYXMgaXN0IGRhcywgd2VubiBlaW5lIEJsb25kaW5lIGRlciBhbmRlcmVuIGlucyBPaHIgYmxhZXN0PyBEYXRlbnRyYW5zZmVyCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlbiBWb2dlc2VuIHVuZCBlaW5lciBCbG9uZGluZT8gRGllIEJsb25kaW5lCmhhdCBob2VoZXJlIEJlcmdlIHVuZCB0aWVmZXJlIFRhZWxlcgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBkZXIgQmxvbmRpbmUgdW5kIGRlbSBCdWVnZWxicmV0dD8gRGllIEJlaW5lCmRlcyBCdWVnZWxicmV0dHMgbGFzc2VuIHNpY2ggc28gc2Nod2VyIG9lZmZuZW4uCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIFRlbGxlciB1bmQgZWluZXIgQmxvbmRpbmU/IEVpbmVuClRlbGxlciBrYW5uIG1hbiB0cm9ja2VuIGxlY2tlbi4KV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRlbiB1bmQgJ25lbSBIdWhuPyBEYXMgSHVobiBzaXR6dApydWhpZyBhdWYgZGVuIEVpZXJuLi4uCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJsb25kZW4gdW5kIGVpbmVyIEJydWVuZXR0ZW4/IDMwCk1pbnV0ZW4gYmV0dGVsbi4uLgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBCbG9uZGluZSB1bmQgVGV0cmEgUGFjaz8gVGV0cmEgUGFjawppc3QgaXJnZW5kd2llIGNsZXZlci4KV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRpbmUgdW5kIGRlciBUaXRhbmljPyBCZWkgZGVyClRpdGFuaWMgd2Vpc3MgbWFuLCB3aWV2aWVsIE1hZW5uZXIgZHJhdWYgd2FyZW4uCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJsb25kaW5lIHVuZCBlaW5lbSBCb3dsaW5nIEJhbGw/CktlaW5lciwgYmVpZGUgc2luZCBydW5kIHVuZCBoYWJlbiBkcmVpIExvZWNoZXIKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRpbmUgdW5kIGVpbmVtIENvbXB1dGVyPyBFaW4KQ29tcHV0ZXIgYnJhdWNodCBkZW4gSW5wdXQgbnVyIGVpbm1hbApXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBCbG9uZGluZSB1bmQgZWluZW0gSW50ZXJjaXR5PyBOaWNodApqZWRlciB3YXIgc2Nob24gbWFsIGltIEludGVyY2l0eQpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBCbG9uZGluZSB1bmQgZWluZW0gSm9iPyBEZXIgSm9iIHdpcmQKZXJzdCBuYWNoIGVpbmVyIFdvY2hlIGxhbmd3ZWlsaWcKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRpbmUgdW5kIGVpbmVtIFRlcnJvcmlzdGVuPyBNaXQKZWluZW0gVGVycm9yaXN0ZW4ga2FubiBtYW4gdmVyaGFuZGVsbi4KV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRpbmUgdW5kIGVpbmVtIGJydWVuZnRpZ2VuIEhpcnNjaD8KRGllIEJsb25kaW5lIHRyYWVndCBtZWhyIFNwZXJtYQpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBCbG9uZGluZSB1bmQgZWluZXIgVGVsZWZvbnplbGxlPyBEaWUKQmVudXR6dW5nIGtvc3RldCAzMCBQZmVubmlnLgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBCbG9uZGluZSB1bmQgZWluZXIgVG9pbGV0dGU/IERpZQpUb2lsZXR0ZSBsYWV1ZnQgZWluZW0gbmFjaCBHZWJyYXVjaCBuaWNodCBuYWNoCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJsb25kaW5lIHVuZCBlaW5lciBaYWhuYnVlcnN0ZT8gRGllClphaG5idWVyc3RlIHZlcmxlaWh0IG1hbiBuaWNodC4KV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRpbmVuIHVuZCBlaW5lbSBQb3JzY2hlPyBEZW4KUG9yc2NoZSB2ZXJsZWlodCBtYW4gbmljaHQuCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJsb25kaW5lbiB1bmQgZWluZXIgQm93bGluZ2t1Z2VsPyBJbgpkaWUgQm93bGluZ2t1Z2VsIHBhc3NlbiBudXIgZHJlaSBGaW5nZXIuCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJ1bmRlc3dlaHJrb21wYW5pZSB1bmQgZWluZXIgQmxvbmRpbmU/CkRpZSBLb21wYW5pZSBoYXQgbnVyIGh1bmRlcnQgTWFubgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBQaXp6YSB1bmQgZWluZXIgQmxvbmRpbmVuPyBQaXp6YSBnaWJ0CmVzIGF1Y2ggb2huZSBQaWx6ZSEKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgaW50ZWxsaWdlbnRlbiBCbG9uZGluZW4gdW5kIGRlbSBZZXRpPwpEZXIgWWV0aSB3dXJkZSBiZXJlaXRzIGdlc2VoZW4uCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIGtsdWdlbiBCbG9uZGluZSB1bmQgZGVtIEFJRFMtVmlydXM/CkRlbiBBSURTLVZpcnVzIHdpcmQgbWFuIGVpbm1hbCBmaW5kZW4KV2FzIGlzdCBkZXIgYmVzdGUgU3BydWNoLCB1bSBlaW5lIEJsb25kaW5lIGluJ3MgQmV0dCB6dSBiZWtvbW1lbj8gIkhhbGxvISIKV2FzIGlzdCBkZXIgc2NobmVsbHN0ZSBXZWcsIGVpbmUgQmxvbmRpbmUgc2Nod2FuZ2VyIHp1IGtyaWVnZW4/IE5pbW0gc2llIG1pdAp6dW0gU3RyZWljaGVsem9vLgpXYXMgaXN0IGRpZSBLcmV1enVuZyB6d2lzY2hlbiBlaW5lciBzcGlubmUgdW5kIGVpbmVyIEJsb25kaW5lPyBFaW5lCmFjaHRhcm1pZ2UgUHV0emZyYXUuCldhcyBpc3QgZWluIEJhc2VtZW50IHZvbGxlciBCbG9uZGluZW4/IEVpbiBCaWVya2VsbGVyCldhcyBpc3QgZWluZSAxLDA1IE1ldGVyIGdyb3NzZSBCbG9uZGluZT8gRWluIFN0YW5kZ2VibGFlc2UuCldhcyBpc3QgZWluZSBCbG9uZGluZSBhdWYgZGVtIEd5bW5hc2l1bT8gRWluIEJlc3VjaGVyCldhcyBpc3QgZWluZSBCbG9uZGluZSBhdWYgZGVuIEUtU3R1aGw/IEZ1bmtlbWFyaWNoZW4uCldhcyBpc3QgZWluZSBCbG9uZGluZSBoaW50ZXIgZWluZW0gTGVua3JhZD8gRWluIEFpcmJhZwpXYXMgaXN0IGVpbmUgQmxvbmRpbmUgbGF1dCBJUS1UZXN0PyBOYWdlbGxhY2tlbnRmZXJuZXIuCldhcyBpc3QgZWluZSBCbG9uZGluZSBtaXQgMiBIaXJuemVsbGVuPyBTY2h3YW5nZXIKV2FzIGlzdCBlaW5lIEJsb25kaW5lIHp3aXNjaGVuIHp3ZWkgQnJ1ZW5ldHRlbj8gRWluIG1lbnRhbGVyIEJsb2NrCldhcyBpc3QgZWluZSBCbG9uZGluZSwgZGllIEtvcGZzdGFuZCBtYWNodD8gRWluZSBCciJ1bmV0dGUgbWl0IE11bmRnZXJ1Y2guCldhcyBpc3QgZWluZSBCbG9uZGluZSwgdW1ydW5kZXQgdm9uIGdlaWZlcm5kZW4gSWRpb3Rlbj8gR2VzY2htZWljaGVsdC4KV2FzIGlzdCBlaW5lIEJydWVuZXR0ZSBuZWJlbiBlaW5lciBCbG9uZGluZT8gRWluZSBTb3VmZmxldXNlCldhcyBpc3QgZWluZSB3aWNodGlnZSBGcmFnZSBlaW5lciBCbG9uZGluZSBhbiBkZW4gTGllYmhhYmVyLCBlaGUgc2llCmFuZmFlbmd0PyAiUHJvIFN0dW5kZSBvZGVyIGZ1ZXIgZGVuIGdhbnplbiBBYmVuZD8iCldhcyBpc3QgZnVlciBlaW5lIEJsb25kaW5lIDYuOT8gNjksIGR1cmNoIGlocmUgVGFnZSB1bnRlcmJyb2NoZW4uCldhcyBpc3QgZnVlciBlaW5lIEJsb25kaW5lIGxhbmcgdW5kIGhhcnQ/IERpZSA0LiBLbGFzc2UuCldhcyBpc3QgcGFzc2llcnQsIHdlbm4gZWluZSBCbG9uZGluZSBpbiBkZW4gU3RyYXNzZW5ncmFiZW4gZ2VmYWhyZW4gaXN0PyBTaWUKaGF0IHZlcnN1Y2h0LCBkZW4gQmxpbmtlciBhdXN6dXNjaGFsdGVuCldhcyBpc3Qgc2Nod2FyeiB1bmQga25pc3RlcnQgdW50ZXIgZGVyIERlY2tlPyBFaW5lIGJsb25kZSBFbGVrdHJpa2VyaW4KV2FzIGthbm4gcGFzc2llcmVuLCB3ZW5uIGVpbmUgQmxvbmRpbmUgaW4gZGllIEx1ZnQgc2NoaWVzc3Q/IERhcyBlcyBkYW5lYmVuCmdlaHQKV2FzIG1hY2hlbiBCbG9uZGluZW4sIG5hY2hkZW0gc2llIHNpY2ggZ2VrYWVtbXQgaGFiZW4/IFNpZSB6aWVoZW4gc2ljaCBkaWUKSG9zZSBob2NoLgpXYXMgbWFjaHQgZGllIEJsb25kaW5lIG1vcmdlbnMgYWxzIGVyc3Rlcz8gU2llIHN0ZWxsdCBzaWNoIHZvci4KV2FzIG1hY2h0IGVpbmUgQmxvbmRpbmUgYWxzIFZvcnNwaWVsPyBVbnRlcndhZXNjaGUgYXVzemllaGVuLgpXYXMgbWFjaHQgZWluZSBCbG9uZGluZSBiZWkgIk0mTSI/IEZlaGxlcmxlc2VuLgpXYXMgbWFjaHQgZWluZSBCbG9uZGluZSBpbSBXZWx0cmF1bT8gUHV0emVuLgpXYXMgbWFjaHQgZWluZSBCbG9uZGluZSB2b3IgZWluZXIgR2xhc3dhbmQ/IERydWViZXIga2xldHRlcm4gdW0genUgc2VoZW4sIHdhcwpkYWhpbnRlciBpc3QuCldhcyBtYWNodCBlaW5lIEJsb25kaW5lLCB3ZW5uIHNpZSBpaHJlIEhhZW5kZSBhbiBkaWUgT2hyZW4gcHJlc3N0PyBTaWUKdmVyc3VjaHQga3JhbXBmaGFmdCwgZWluZW4gR2VkYW5rZW4gZmVzdHp1aGFsdGVuLgpXYXMgbWFjaHQgZWluZSBCbG9uZGluZSwgd2VubiBzaWUgaWhyZSBUYWdlIGhhdD8gU2llIHN1Y2h0IGRlbiBUeXBlbiwgZGVyIHNpZQphbmdlc2Nob3NzZW4gaGF0LgpXYXMgbWFjaHQgbWFuLCB3ZW5uIGVpbmUgQmxvbmRpbmUgZWluZSBIYW5kZ3JhbmF0ZSBuYWNoIGVpbmVtIHdpcmZ0PyBNYW4KemllaHQgZGVuIFJpbmcgdW5kIHdpcmZ0IHNpZSB6dXJ1ZWNrCldhcyBtYWNodCBtYW4sIHdlbm4gZWluZSBCbG9uZGluZSBlaW5lbiBTdGlmdCBuYWNoIGVpbmVtIHdpcmZ0PyBSZW5uIHdpZSBkZXIKVGV1ZmVsISBTaWUgaGF0ICduZSBIYW5kZ3JhbmF0ZSBpbiBpaHJlbSBNdW5kIQpXYXMgbWVpbnQgZWluZSBCbG9uZGluZSwgd2VubiBzaWUgdm9uICJTQUZFUiBTRVgiIHJlZGV0PyBTY2hsaWVzcyBkaWUKQXV0b3R1ZXIgYWIhCldhcyBwYXNpZXJ0IHdlbm4gc2ljaCBlaW5lIEJsb25kaW5lIGdlZ2VuIGVpbmUgTWF1ZXIgbGVobnQ/IERpZSBNYXVlciBmYWVsbHQKdW0sIGRlciBLbHVlZ2VyZSBnaWJ0IG5hY2guCldhcyBwYXNzaWVydCwgd2VubiBlaW5lIEJsb25kaW5lIGRpZSBBbHpoZWltZXIgS3JhbmtoZWl0IGJla29tbXQ/IERlciBJUQpzdGVpZ3QKV2FzIHNhZ2VuIEJsb25kaW5lbiB6dSBQaHlzaWtlcm4/ICJJY2ggKmxpZWJlKiBLZXJuc3BhbHR1bmcuIFdhcyBuZWhtZW4gU2llCmRlbm4genVyIEVyZnJpc2NodW5nPyIKV2FzIHNhZ3QgJ1BpbGxlJyBNY0NveSBiZXZvciBlciBlaW5lIEdlaGlybm9wZXJhdGlvbiBiZWkgZWluZXIgQmxvbmRpbmVuCm1hY2h0PyAiRGVyIFdlbHRyYXVtLiBVbmVuZGxpY2hlIFdlaXRlbiAuLi4uLiIKV2FzIHNhZ3QgZGVyIE9ocmVuYXJ6dCwgd2VubiBlciBlaW5lIEJsb25kaW5lIHVudGVyc3VjaHQgPyAiSGFsdGVuIHNpZSBiaXR0ZQpJaHIgYW5kZXJlcyBPaHIgenUsIGRpZSBTb25uZSBibGVuZGV0IHNvICEiCldhcyBzYWd0IGRlciByZWNodGUgT2JlcnNjaGVua2VsIGVpbmVyIEJsb25kaW5lIHp1bSBsaW5rZW4/IE5pY2h0cywgc2llCmJlZ2VnbmVuIHNpY2ggbmllCldhcyBzYWd0IGRpZSBNdXR0ZXIgenVyIGJsb25kZW4gVG9jaHRlciB2b3IgaWhyZXIgVmVyYWJyZWR1bmc/IFdlbm4gZHUgdW0gMTIKbm9jaCBuaWNodCBpbSBCZXR0IGJpc3QsIGtvbW0gbmFjaGhhdXNlCldhcyBzYWd0IGRpZSBaYWhsIDc5IGVpbmVyIEJsb25kaW5lbj8gNjkgcGx1cyBNZWhyd2VydHN0ZXVlci4KV2FzIHNhZ3QgZWluIEJsb25kaW5lIG5hY2ggZGVtIFNleD8gIlNlaWQgaWhyIEp1bmdzIGFsbGUgaW4gZGVyIGdsZWljaGVuCkZ1c3NiYWxsbWFubnNjaGFmdD8iCldhcyBzYWd0IGVpbmUgQmxvbmRpbmUsIHdlbm4gZGVyIEFyenQgaWhyIG1pdHRlaWx0LCBkYXNzIHNpZSBzY2h3YW5nZXIgaXN0PwoiU2luZCBzaWUgc2ljaGVyLCBkYXMgZXMgbWVpbnMgaXN0PyIKV2FzIHNhZ3QgZWluZSBCbG9uZGluZSwgd2VubiBpaHIgZGFzIFdhc3NlciBiaXMgenVtIEJhdWNobmFiZWwgZ2VodD8gRGFzIGdlaHQKamV0enQgdWViZXIgbWVpbmVuIFZlcnN0YW5kICEKV2FzIHNhZ3QgZWluZSBCbG9uZGluZSwgd2VubiBtYW4gaWhyIGlucyBPaHIgYmxhZXN0PyBEYW5rZSwgZnVlcnMgbmFjaGxhZGVuIQpXYXMgc2FndCBlaW5lIEJsb25kaW5lLCB3ZW5uIG1hbiBzaWUgZnJhZ3QsIG9iIGRlciBCbGlua2VyIG5vY2ggYW4gaXN0PyAiRGVyCkJsaW5rZXIgaXN0IGFuLCBhdXMsIGFuLCBhdXMsIGFuLCBhdXMgLi4uIgpXYXMgc2FndCBlaW5lIEJsb25kaW5lLCB3ZW5uIHNpZSBlaW5lIEJhbmFuZW4tU2NoYWxlIGF1ZiBkZXIgU3RyYXNzZSBsaWVnZW4Kc2llaHQ/ICJTY2hlaXNzZSwgZ2xlaWNoIGZhbGxlIGljaCBzY2hvbiB3aWVkZXIhIgpXYXMgc2FndCBlaW5lIEJsb25kaW5lLCB3ZW5uIHNpZSBlaW5lbiBQb3JubyBzaWVodD8gRGFzIGJpbiBqYSBJQ0ghCldhcyBzYWd0IG1hbiBlaW5lciBCbG9uZGluZSwgd2VubiBkaWVzZSBlaW5lbSBlaW5lbiBibGFlc3Q/IEthbm5zdCcKYXVmaG9lcmVuOyBlciBpc3QgamV0enQga2FsdCBnZW51ZzsgbmltbScgbWFsIGluJyBNdW5kLgpXYXMgc2FndCBtYW4genUgZWluZXIgQmxvbmRpbmUgb2huZSBBcm1lIHVuZCBCZWluZT8gIkhtLCBodWVic2NoZSBUaXR0ZW4iCldhcyBzYWd0IG1hbiB6dSBlaW5lciBCbG9uZGluZSwgZGllIG5vY2ggbmljaHQgd2lsbD8gIk5pbW0nIG5vY2ggYG4gQmllciIKV2FzIHNpZWh0IG1hbiwgd2VubiBtYW4gZWluZXIgQmxvbmRpbmUgdGllZiBpbiBkaWUgQXVnZW4gc2llaHQ/IERpZSBSdWVja3dhbmQKdm9tIEtvcGYKV2FzIHNpbmQgMTAgQmxvbmRpbmVuLCBkaWUgT2hyIGFuIE9ociBzdGVoZW4/IEVpbiBXaW5ka2FuYWwKV2FzIHNpbmQgMTAwIEJsb25kaW5lbiBhdWYgZGVtIE1lZXJlc2dydW5kPyBFaW4gQW5mYW5nLgpXYXMgdHVuIEJsb25kaW5lbiBoaW50ZXIgaWhyZSBPaHJlbiB1bSBzaWNoIGF0dHJha3RpdmVyIHp1IG1hY2hlbj8gSWhyZQpGdWVzc2UuCldhcyB0dXQgZWluZSBCbG9uZGluZSwgd2VubiBzaWUgc2ljaCBtaXQgYmVpZGVuIEhhZW5kZW4gZGllIE9ocmVuIHp1aGFlbHQ/ClNpZSB2ZXJzdWNodCwgZWluZW4gR2VkYW5rZW4genUgYmVoYWx0ZW4uCldlbGNoZSBGZXJuc2Voc2VuZHVuZyBzaWVodCBlaW5lIEJsb25kaW5lIGFtIGxpZWJzdGVuPyBYWSB1bmdlbG9lc3QuCldlbGNoZSBNZWludW5nIGhhdCBlaW5lIEJsb25kaW5lIHZvbSBuZXVlc3RlbiBDb21wdXRlcj8gU2llIG1hZyBpaG4gbmljaHQsCmRlbm4gZXIga2FubiAiNjkiIG5pY2h0Li4uCldlbGNoZW4gU2lubiBoYXQgZGVyIE9yZ2FzbXVzIHVlYmVyaGF1cHQgZnVlciBlaW4gQmxvbmRpbmU/IERhbWl0IHNpZSB3ZWlzcywKd2FubiBzaWUgYXVmaG9lcmVuIHNvbGwKV2llIGJlZ2VoZW4gQmxvbmRpbmVuIFNlbGJzdG1vcmQ/IFNpZSBzdGFwZWxuIGlocmUgS2xlaWRlciB1bmQgc3ByaW5nZW4KcnVudGVyLgpXaWUgYmVrb21tdCBtYW4gZWluZSBlaW5hcm1pZ2UgQmxvbmRpbmUgYXVzIGVpbmVtIEJhdW0/IE1hbiB3aW5rdCBpaHIgenUuCldpZSBiZWtvbW10IG1hbiB2aWVyIEJsb25kaW5lbiBhdWYgZWluZW4gU3R1aGw/IERlbiBTdHVobCBlaW5mYWNoIHVtZHJlaGVuICEKV2llIGJlc2NoYWVmdGlndCBtYW4gZWluZSBCbG9uZGluZSBmdWVyIG1laHJlcmUgU3R1bmRlbj8gRWluZmFjaCAiQml0dGUKdW1kcmVoZW4iIGF1ZiBiZWlkZSBTZWl0ZW4gZWluZXMgUGFwaWVycyBzY2hyZWliZW4KV2llIGJyaW5ndCBtYW4gZGllIEF1Z2VuIGVpbmVyIEJsb25kaW5lIHp1bSBGdW5rZWxuPyBMZXVjaHRlIGlociBtaXQgJ25lcgpGYWNrZWwgaW5zIE9oci4KV2llIGJyaW5ndCBtYW4gZWluZSBCbG9uZGluZSBkYXp1LCBhdWZzIERhY2ggenUga2xldHRlcm4/IE1hbiBzYWd0IGlociwgZGFzcwpkaWUgR2V0cmFlbmtlIGF1ZidzIEhhdXMgZ2VoZW4uCldpZSBicmluZ3QgbWFuIGVpbmUgQmxvbmRpbmUgZHVyY2hlaW5hbmRlcj8gR2FyIG5pY2h0LCBkaWUgc2luZCBzbyBnZWJvcmVuCldpZSBicmluZ3QgbWFuIGVpbmUgQmxvbmRpbmUgenVtIGJsaW56ZWxuPyBEaWUgVGFzY2hlbmxhbXBlIGVpbiB1bmQKYXVzc2NoYWx0ZW4KV2llIGhlaXNzdCAiQmxvbmRpbmUiIGF1ZiBDaGluZXNpc2NoPyBEVU1NLURJTkcKV2llIGhlaXNzdCBkaWUgTGllYmxpbmdzcm9ja2dydXBwZSBkZXIgQmxvbmRpbmVuPyBBaXIgU3VwcGx5LgpXaWUgaGVpc3N0IGVzIHdlbm4gZWluZSBCbG9uZGUgc2ljaCBzY2htaW5rdD8gTmFpdmUgTWFsZXJlaS4KV2llIGhvbHN0IER1IGVpbmUgZWluYXJtaWdlIEJsb25kaW5lIHZvbiBlaW5lbSBCYXVtIGhlcnVudGVyPyBXaW5rJyBJaHIgenUhCldpZSBrYW5uIG1hbiBkaWUgQXVnZW4gZWluZXIgQmxvbmRpbmUgYXVmbGV1Y2h0ZW4gbGFzc2VuPyBEdXJjaCBlaW5lClRhc2NoZW5sYW1wZSBhbiBpaHJlbSBPaHIKV2llIGthbm4gbWFuIGRpZSBNZWludW5nIGVpbmVyIEJsb25kaW5lIGFlbmRlcm4/IEVudHdlZGVyIGlucyBPaHIgYmxhc2VuIG9kZXIKZWluIG5ldWVzIEJpZXIgYmVzdGVsbGVuCldpZSBrYW5uIG1hbiBlaW5lIEJsb25kaW5lIDIgU3R1bmRlbiBsYW5nIGJlc2NoYWVmdGlnZW4/IEVpbmUgVHVldGUgTSZNJ3MKYWxwaGFiZXRpc2NoIG9yZG5lbiBsYXNzZW4hCldpZSBrYW5uIG1hbiBlaW5lIEJsb25kaW5lIE1vbnRhZyBtb3JnZW5zIHp1bSBMYWNoZW4gYnJpbmdlbj8gRnJlaXRhZyBhYmVuZHMKZWluZW4gV2l0eiBlcnphZWhsZW4hCldpZSBraWxsdCBtYW4gZWluZSBCbG9uZGluZT8gTmFlZ2VsIGluIGRpZSBTY2h1bHRlcnBhZHMgc3RlY2tlbgpXaWUgbGFlc3N0IG1hbiBlaW5lIEJsb25kaW5lIGFtIGJlc3RlbiBpbiBkZW4gU3dpbW1pbmctUG9vbCBmYWxsZW4/IEVpbmZhY2gKZWluZW4gU3BpZWdlbCBhdWYgZGVuIGxlZ2VuCldpZSBsYWVzc3QgbWFuIGVpbmUgQmxvbmRpbmUgaW4gVW5nZXdpc3NoZWl0PyAoRXJ6YWVobCBpY2ggRGlyIG1vcmdlbi4pCldpZSBsYXV0ZXQgZGVyIFBhYXJ1bmdzcnVmIGVpbmVyIEJsb25kaW5lPyBJY2ggYmluIHNvb29vbyBiZXRydW5rZW4hCldpZSBsYXV0ZXQgZGVyIFBhYXJ1bmdzcnVmIGVpbmVyIEJydWVuZXR0ZW4/IERpZSBCbG9uZGluZW4gc2luZCB3ZWchCldpZSBsYXV0ZXQgZGVyIFBhYXJ1bmdzcnVmIGVpbmVyIFJvdGhhYXJpZ2VuPyBEZXIgbmFlY2hzdGUhCldpZSBsYXV0ZXQgZGllIERlZmluaXRpb24gZWluZXIgYmxvbmRlbiBMZXNiZT8gTnVyIHdpZWRlciBlaW5lIEZyYXUsIGRpZSBkaWUKQXJiZWl0IGVpbmVzIE1hbm5lcyBlcmxlZGlnZW4gd2lsbC4KV2llIG1hY2hlbiBzaWNoIEJsb25kaW5lbiBMb2VjaGVyIGZ1ZXIgT2hycmluZ2U/IFNpZSBzdGVja2VuIFJlaXNzendlY2tlbiBpbgpkaWUgU2NodWx0ZXJwYWRzCldpZSBtYWNodCBlaW5lIEJsb25kaW5lIE1hcm1lbGFkZT8gU2llIHNjaGFlbHQgZWluZW4gQmVybGluZXIhCldpZSBtYWNodCBtYW4gZWluZSBCbG9uZGluZSBnbHVlY2tsaWNoPyBTYWcgaWhyOiAiTWVuc2NoLCBiaXN0IER1IGFiZXIKYmxhdWFldWdpZy4uLiIKV2llIG1hY2h0IG1hbiBlaW5lIEhpcm53YWVzY2hlIGJlaSBlaW5lciBCbG9uZGluZT8gRHVzY2hlbiB1bmQgdW1kcmVoZW4KV2llIG1hZyBkaWUgQmxvbmRpbmUgaWhyZSBGcnVlaHN0dWVja3NlaWVyPyBCZWZydWNodGV0CldpZSBtZXJrdCBtYW4gZGFzIGVpbmUgQmxvbmRpbmUgaGVpc3MgaXN0PyBXZW5uIG1hbiBpaHIgZWluZW4gTWFpc2tvbGJlbgp1bnRlbiByZWluIHN0ZWNrdCwgdW5kIG9iZW4gUG9wY29ybiByYXVzIGtvbW10LgpXaWUgbWVya3QgbWFuLCBkYXNzIGVpbmUgQmxvbmRpbmUgaWhuIGVycmVpY2h0IGhhdD8gRGVyIG5hZWNoc3RlIGluIGRlcgpTY2hsYW5nZSB0aXBwdCBpaHIgYXVmIGRpZSBTY2h1bHRlcgpXaWUgbWlzc3QgbWFuIGRpZSBJbnRlbGxpZ2VueiBlaW5lciBCbG9uZGluZT8gRWluZmFjaCBkZW4gTHVmdGRydWNrcHJ1ZWZlciBhbgpkZXIgVGFua3N0ZWxsZSBpbiBpaHIgT2hyIHN0ZWNrZW4KV2llIG5lbm50IGVpbmUgQmxvbmRpbmUgaWhyIFNwaWVsemV1Z3plYnJhPyBQdWVua3RjaGVuLgpXaWUgbmVubnQgZXMgc2ljaCwgd2VubiBzaWNoIGVpbmUgQmxvbmRpbmUgT3JvcGF4IGluIGRpZSBPaHJlbiBzdGVja3Q/CkhvaGxyYXVtdmVyc2llZ2VsdW5nLgpXaWUgbmVubnQgbWFuIDEwIEJsb25kaW5lbiwgZGllIGZsYWNoIGF1ZiBkZW0gQm9kZW4gbGllZ2VuPyBFaW5lCkx1ZnRtYXRyYXR6ZS4KV2llIG5lbm50IG1hbiBkaWUgcmVjaHRlIEhhbmQgZWluZXIgQmxvbmRpbmU/IE5hLCBTY2h3YW56Zmxvc3NlICEKV2llIG5lbm50IG1hbiBlaW5lIDEsMjAgbSBncm9zc2UgQmxvbmRpbmUsIGRpZSB1bnRlciAxNiBKYWhyZSBhbHQgaXN0PwpCbGFzZWJhbGcuCldpZSBuZW5udCBtYW4gZWluZSBCbG9uZGluZSBhbiBkZXIgVW5pPyBQdXR6ZnJhdQpXaWUgbmVubnQgbWFuIGVpbmUgQmxvbmRpbmUgbWl0IFp1Y2tlciBhdWYgZGVtIEtvcGY/ICJTdWVzc2VyIEYqY2siICgqc3dlZXQKZnVjayopCldpZSBuZW5udCBtYW4gZWluZSBCbG9uZGluZSBtaXQgaGFsYmVtIEhpcm4/IFJlaWNoIGJlc2NoZW5rdApXaWUgbmVubnQgbWFuIGVpbmUgQnJ1ZW5ldHRlIG5lYmVuIGVpbmVyIEJsb25kaW5lPyBEb2xtZXRzY2hlci4KV2llIG5lbm50IG1hbiBlaW5lIEZsaWVnZSwgZGllIGluIGRlbiBLb3BmIGVpbmVyIEJsb25kaW5lIGZsaWVndD8gRWluZW4KUmF1bWdsZWl0ZXIKV2llIG5lbm50IG1hbiBlaW5lIHRvdGUgQmxvbmRpbmUgYXVmIGRlbSBLbG8/IExldHp0amFlaHJpZ2UgR2V3aW5uZXJpbiBpbQpWZXJzdGVja3NwaWVsZW4uCldpZSBuZW5udCBtYW4gZWluZW4gTWFubiB6d2lzY2hlbiB6d2VpIEJsb25kaW5lbj8gR2x1ZWNrbGljaCEKV2llIG5lbm50IG1hbiBlaW5lbiBtaXQgQmxvbmRpbmVuIGdlZnVlbGx0ZW4gU3dpbW1pbmctUG9vbD8gRnJvc3RlZCBGbGFrZXMuCldpZSBzY2hhbHRlbiBkaWUgQmxvbmRpbmVuIG5hY2ggZGVtIFNleCBkYXMgTGljaHQgYW4/IFNpZSBvZWZmbmVuIGRpZQpGYWhyemV1Z3R1ZXIKV2llIHN0YXJiIGRpZSBCbG9uZGluZSBiZWltIEVpc2Zpc2NoZW4/IFNpZSB3dXJkZSB2b24gZGVyIEVpc21hc2NoaW5lCnVlYmVyZmFocmVuLgpXaWUgc3RhcmIgZGllIEJsb25kaW5lIGJlaW0gTWlsY2h0cmlua2VuPyBEaWUgS3VoIGZpZWwgYXVmIHNpZS4KV2llIHN0aXJidCBlaW5lIEhpcm56ZWxsZW4gZWluZXIgQmxvbmRpbmU/IEFsbGVpbmUKV2llIHRlaWx0IGVpbmUgQmxvbmRpbmUgaWhyIEhhYXI/IFNpZSBzZXR6dCBzaWNoIGluIGRlbiBTY2huZWlkZXJzaXR6LgpXaWUgdmVyYnJhbm50ZSBzaWNoIGRpZSBCbG9uZGluZSBkaWUgTmFzZT8gU2llIG5hc2NodGUgUG9tbWVzLgpXaWUgdmVyc3VjaHQgZWluZSBCbG9uZGluZSBlaW5lbiBWb2dlbCB1bXp1YnJpbmdlbj8gV2llIHdpcmZ0IGlobiB2b20gQmFsa29uCldpZSB2aWVsZSBCbG9uZGluZW4gYnJhdWNodCBlcywgdW0gVmVyc3RlY2tlbiB6dSBzcGllbGVuPyBFaW5lLgpXaWVzbyBoYWJlbiBCbG9uZGluZW4gc28gc3RhcmtlIEJhdWNobXVza2Vsbj8gV2VpbCBlcyBrYXVtIG1laHIgVlcgS2FlZmVyIG1pdApkaWVzZW4gSGFsdGVzY2hsYXVmZW4gZ2lidCEKV2llc28ga29lbm5lbiBCbG9uZGluZW4gbmljaHQgcmFkZmFocmVuPyBEZXIgQWJzdGFuZCBkZXIgVHJldHBlZGFsZSBpc3QKZ2VyaW5nZXIgYWxzIDEsNTAgbSAhCldpZXZpZWxlIEJsb25kaW5lbiBicmF1Y2h0IG1hbiwgdW0gRmFuZ2VuIHp1IHNwaWVsZW4/IEVpbmUuCldvIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgQmxvbmRpbmUgdW5kIENoYXBwaT8gSW4gQ2hhcHBpIGlzdCBIaXJuCmRyaW4uCldvaGluIGdlaGVuIGRpZSBCZWluZSBlaW5lciBCbG9uZGluZW4/IElucyBLaW5vLCB3ZW5uIG5peCBkYXp3aXNjaGVuIGtvbW10Ci4uLgpXb21pdCB2ZXJodWV0ZW4gQmxvbmRpbmVuIGFtIGxpZWJzdGVuPyBNaXQgZGVyIEdsdWVja3NwaXJhbGUhCldvcmFuIGVya2VubnQgbWFuIGRhcyBlaW4gRkFYIHZvbiBlaW5lciBCbG9uZGluZSBnZXNlbmRldCB3dXJkZT8gQW4gZGVyCkJyaWVmbWFya2UuCldvcmFuIGVya2VubnQgbWFuIGRlbiBTY2hhZWRlbCBlaW5lciBCbG9uZGluZW4/IERpZSBLaWVmZXJnZWxlbmtlIHNpbmQKYXVzZ2VsZWllcnQhCldvcmFuIGVya2VubnQgbWFuLCBkYXMgZWluZSBCbG9uZGluZSBpbSBLdWVobHNjaHJhbmsgZ2VzZXNzZW4gaGF0PyBBbQpMaXBwZW5zdGlmdCBhdWYgZGVuIEd1cmtlbi4KV29yYW4gZXJrZW5udCBtYW4sIGRhc3MgZWluZSBCbG9uZGluZSBhbSBDb21wdXRlciBnZWFyYmVpdGV0IGhhdD8gQW0gVGlwRXgKYXVmIGRlbSBCaWxkc2NocmltLgpXb3JhbiBlcmtlbm50IG1hbiwgZGFzcyBlaW5lIEJsb25kaW5lIGFtIENvbXB1dGVyIGdlc3BpZWx0IGhhdD8gQW4gZGVtCkxpcHBlbnN0aWZ0IGFtIEpveXN0aWNrLgpXb3JhbiBlcmtlbm50IG1hbiwgZGFzcyBlaW5lIEJsb25kaW5lIGRlbiBHYXJ0ZW4gYW5nZWxlZ3QgaGF0PyBEaWUgQnVlc2NoZQpzaW5kIGdyb2Vzc2VyIGFscyBkZXIgUmVzdCBkZXMgR3J1bmRzdHVlY2tzLgpXb3JhbiBlcmtlbm50IG1hbiwgd2VsY2hlIEJsb25kaW5lIGRpZSBLZWxsbmVyaW4gaXN0PyBFcyBpc3QgZGllIG1pdCBkZW0KVGFtcG9uIGhpbnRlciBkZW0gT2hyIGF1ZiBkZXIgU3VjaGUgbmFjaCBpaHJlbSBTdGlmdApXb3JhbiBtZXJrdCBtYW4sIGRhc3MgZGllIEJsb25kaW5lIGVpbmVuIFNjaG9rby1LdWNoZW4gZ2VtYWNodCBoYXQ/IEFuIGRlbgpNJk0tU2NoYWxlbiBhdWYgZGVtIEt1ZWNoZW5ib2Rlbi4KV29yYW4gbWVya3QgbWFuLCBkYXNzIGVpbmUgQmxvbmRpbmUgZ3V0IGJsYXNlbiBrb25udGU/IERhcyBCZXR0dWNoIGhhZW5ndCBpbgpkZWluZW0gQXJzY2ggZmVzdC4KV29yYW4gc2llaHQgbWFuLCBkYXNzIGVpbmUgUG9zdC1JdC1OYWNocmljaHQgdm9uIGVpbmVyIEJsb25kaW5lbiBrb21tdD8gRGllCmtsZWJlbmRlIFNlaXRlIGlzdCBiZXNjaHJpZWJlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSmVkZSBNZW5nZSBCbG9uZGluZW53aXR6ZSAoSmVycmljbywgMjYuIFNlcCAxOTk1LCAwMTo0MDoxNCk6CiMhIHJuPUFzbW9kaXMgcnQ9ODEyMDc1MDU2Ck9oLW9oIDopCgpKZXJyaWNvIGFib25uaWVydCBqZXR6dCB3aWVkZXIgUnVicmlrIDE1IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSaGVpbmxhbmQtV2l0eiAoQXNtb2RpcywgMjYuIFNlcCAxOTk1LCAwMjo1MTo1Mik6Ck1hbCBlaW4gV2l0eiBhdXMgZGVyIEhlaW1hdCA6KQoKSW0gUmhlaW5sYW5kIGdhYiBlcyB2b3IgZWluaWdlciBaZWl0IGRpZSBVZWJlcmxlZ3VuZywgZGVuIFdlaW4gZHVyY2ggZWluZQpuZXVlIE5hbWVuc2dlYnVuZyAod2VyYmV0ZWNobmlzY2gpIGF0dHJha3RpdmVyIHp1IG1hY2hlbi4gRGVyIFdlaW4gYXVzCmRlbSBSaGVpbnRhbCBzb2xsdGUgJ1JoZWluLVNjaHdhZXJtZXInIGhlaXNzZW4sIHVuZCBkZXIgYXVzIGRlbSBOYWhldGFsCidOYWhlLVNjaHdhZXJtZXInLgpBYmVyIGRpZSBXaW56ZXIgYXVzIGRlbSBBaHJ0YWwgaGFiZW4gc2ljaCBnZXdlaWdlcnQuLi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSaGVpbmxhbmQtV2l0eiAoQmFtYnVsa28sIDI2LiBTZXAgMTk5NSwgMDI6NTM6MjUpOgojISBybj1Bc21vZGlzIHJ0PTgxMjA4MDMxMgpJY2gga2VubiBudXIgZGVuIE1vc2VsLVNjaGxlY2sgOi0pCkFiZXIgZGVuIE5hbWVuIHdvbGx0ZW4gZGllIEFocnRhbC1XaW56ZXIgYXVjaCBuaWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKZWRlIE1lbmdlIEJsb25kaW5lbndpdHplIChVbG8sIDI2LiBTZXAgMTk5NSwgMTg6MDY6MTMpOgojISBybj1Bc21vZGlzIHJ0PTgxMjA3NTA1NgotLW1laHItLSg0JSkgQU5GQU5HIHEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSmVkZSBNZW5nZSBCbG9uZGluZW53aXR6ZSAoWWVuZGksIDI2LiBTZXAgMTk5NSwgMTg6MTU6MzcpOgojISBybj1VbG8gcnQ9ODEyMTM1MTczCgpERVIgd2FyIGd1dC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpZSBnZWh0IGRlbm4gZGFzIChNb3Jnb3RoLCAyOS4gU2VwIDE5OTUsIDE5OjAzOjI0KToKTmFraWFzIGlzdCBlaW5nZWxvZ2d0LAp1bmQgendhciB2b246IGFpeHJzMS5ocnoudW5pLWVzc2VuLmRlICgxMzIuMjUyLjMuMTEpIFtFc3Nlbl0uCklkbGUtWmVpdDogMDA6MDI6MjEKVm9sbGVyIE5hbWU6IE5ha2lhcyBkaWUgaG9mZm51bmdzdm9sbGUgQW5mYWVuZ2VyaW4KUmFzc2U6IEVsZiwgICAgR2VzY2hsZWNodDogd2VpYmxpY2gKQWx0ZXI6IDAwOjAyOjE0ICAgU3BpZWxlcmxldmVsOiAxCkUtTWFpbC1BZHJlc3NlOiBub25lCk5ha2lhcyBpc3QgVGVzdHNwaWVsZXIgKHNhaWthbikuCgptYW4gYWNodGUgYXVmIGRpZSBpZGxlLXplaXQgdW5kIGRhcyBhbHRlcgpQUlVVVVNULCBrYXVtIGRhIHVuZCBzY2hvbiBpZGxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWNoIFN0YW1tdGlzY2guIChKb2YsIDI5LiBTZXAgMTk5NSwgMjA6MTE6NDYpOgpbVmVybGVndCB2b24gc2NobWFycm4sIENhdHdlYXpsZSwgMjcuIFNlcCAxOTk1LCAwOTo0MzoyNF06CkRhcyBHZXNwcmFlY2ggZHJlaHQgc2ljaCB1bSBUb2V0ZXJzIEt1ZWhsc2NocmFuaywgb2RlciBiZXNzZXIsIHNlaW5lbgpJbmhhbHQsIG5hZW1saWNoIGRlbiBndXRlbiBBbGRpLVZhbmlsbGVwdWRkdW5nIG1pdCBTY2hva29sYWRlbnNvc3NlLgpUb2V0ZXIgc2FndDogRGVuIGthbm4gbWFuIHVlYnJpZ2VucyBudXIga29tcGxldHQgZXNzZW4sIHdlaWwgbWFuIGRpZSBUZWlsZQpUb2V0ZXIgc2FndDogbmljaHQgYWJicmVjaGVuIGthbm4uCkNhdHdlYXpsZSBzYWd0OiBEdSBrYW5uc3QgaWhuIGphIGF1Y2ggYXVzIGRlbiBCYXVjaG5hYmVsIHZvbiBuZXIgRnJhdQpDYXR3ZWF6bGUgc2FndDogc2NobGFiYmVybi4gR2VodCBiZXN0aW1tdCB2aWVsIGJlc3Nlci4KQ2F0d2VhemxlIGdyaW5zdC4KQXJpZW4gc3RhcnJ0IGVudGdlaXN0ZXJ0LgpBcmllbiBzYWd0OiBEaWUgUmVpbmlndW5nc2tyYWZ0IGRlciBtYWVubmxpY2hlbiBadW5nZSB3aXJkIGdlbWVpbmhpbgpBcmllbiBzYWd0OiBzdGFyayB1ZWJlcnNjaGFldHp0IC4uLgoKWVRDCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1Y2ggU3RhbW10aXNjaC4gKFllbmRpLCAyOS4gU2VwIDE5OTUsIDIwOjI1OjQ2KToKIyEgcm49Sm9mIHJ0PTgxMjQwMTkwNgoKQXJpZW4sIER1IHVudGVyc2NoYWV0enQgRGVpbmVyc2VpdHMgZGllIERldGVybWluYXRpb24gdW5kIEF1c2RhdWVyIGVpbmVyCm1hZW5ubGljaGVuIFp1bmdlISAgIDspCgouLi4gd2VubiBlcyB1bSBTY2hva29sYWRlbnB1ZGRpbmcgZ2VodCwgbWVpbmUgaWNoIG5hdHVlcmxpY2ghCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGllcndpdHogKEFzbW9kaXMsICAzLiBPa3QgMTk5NSwgMDU6MTc6MzYpOgoKUmFpbmVyIHdpbGwgaW4gZGVyIFpvb2hhbmRsdW5nIGVpbiBhdXNnZWZhbGxlbmVzIEdlc2NoZW5rIGZ1ZXIgc2VpbmUgRnJhdQprYXVmZW4uCiJOZWhtZW4gU2llIGVpbiBCZW5nYWxpc2NoZXMgU3RlcHBlbmh1aG4iLCByYWV0IGRpZSBWZXJrYWV1ZmVyaW4sImRhcwp0YW56dCB2b24gZnJ1ZWggYmlzIHNwYWV0LiIKQW0gbmFlY2hzdGVuIFRhZyBydWZ0IFJhaW5lciBpbSBab29nZXNjaGFlZnQgYW46IldhcyBrYW5uIGljaCBkZW5uIG1hY2hlbiwKZGFtaXQgZGllc2VzIGJsb2VkZSBIdWhuIGF1ZmhvZXJ0IHp1IHN0ZXBwZW4/IgoiUHVzdGVuIFNpZSBkb2NoIGVpbmZhY2ggZGllIEtlcnplIHVudGVyIGRlbSBLYWVmaWcgYXVzISIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYW50YXdpdHogKEFzbW9kaXMsICAzLiBPa3QgMTk5NSwgMDU6MjI6MDMpOgoKV2FzIG1hY2h0IGVpbiBNYW50YWZhaHJlciB3ZW5uIGRlciBNb3RvciBicmVubnQgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hbnRhd2l0eiAoQXNtb2RpcywgIDMuIE9rdCAxOTk1LCAwNToyMzowMik6CiMhIHJuPUFzbW9kaXMgcnQ9ODEyNjk0MTIzCkVyIGxlZ3QgZWluIEdlZ2VuZmV1ZXIgaW0gS29mZmVycmF1bS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyb3NjaC1XaXR6IChBc21vZGlzLCAgMy4gT2t0IDE5OTUsIDA1OjI5OjM5KToKVW5kIHdhcyBpc3QgZ3J1ZW4gdW5kIHdpcmQgYXVmIEtub3BmZHJ1Y2sgbmljaHQgcm90ID8/Ci4uCi4uCi4uCi4uCi4uCi4uCi4uCi4uCi4uCi4uCi4uCi4uCkZyb3NjaCBpbSBNaXhlciwgZGVyIHVtIHNlaW4gTGViZW4gcmVubnQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKb2huZSBrb21tZW50YXIgKE1vcmdvdGgsICA0LiBPa3QgMTk5NSwgMDg6MzE6MDQpOgplYmVuIGF1ZiBkZW0gdG9kZXNrYW5hbCA6Cj5bVG9kOl0gRXR3YXMgR2VoZWltbmlzdm9sbGVzIHVuZCBVbmJla2FubnRlcyBoYXQgZ2VyYWRlIFhiZWxpZWJpZwp1bWdlYnJhY2h0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmFldHNlbCAoTGksICA1LiBPa3QgMTk5NSwgMDk6NDk6NTYpOgpXYXMgaXN0IGRhczogVGFnc3VlYmVyIHNpdHp0IG1hbiBkcmF1ZiwgTmFjaHQgc2NobGFlZnQgbWFuIGRhcmluLCB1bmQgYW0KbW9yZ2VuCnB1dHp0IG1hbiBzaWNoIGRhbWl0IGRpZSBaYWVobmU/CgoKCgoKCgoKCgoKCgoKCgoKR2FueiBlaW5mYWNoOiBlaW4gU3R1aGwsIGVpbiBCZXR0IHVuZCBlaW5lIFphaG5idWVyc3RlIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpbmRvb2YgKFJvY2h1cywgIDUuIE9rdCAxOTk1LCAxNTo1MDo1Nik6CkF1cyBjb21wLm9zLmxpbnV4LmFkdm9jYWN5OgoKPlRoaW5rIG9mICJzdGFja2luZyBtYXJibGVzIiBhbmQgY29tcGFyZSB0aGF0IHRvICJzdGFja2luZyBsZWdvcyIuCj5UaGF0J3MgV2luZG93cyB2cy4gVW5peC4KCkJ1dCwgZ2VlLCB0aG9zZSBtYXJibGVzIGFyZSBzby4uLiBwcmV0dHkhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaGUgMTAgRE9TIENvbW1hbmRtZW50cyAoUm9jaHVzLCAxMC4gT2t0IDE5OTUsIDE5OjQ0OjMyKToKMS5JIGFtIHRoeSBET1MsIHRob3Ugc2hhbGwgaGF2ZSBubyBPUyBiZWZvcmUgbWUsIHVubGVzcyBCaWxsCiAgICAgICBHYXRlcyBnZXRzIGEgY3V0IG9mIHRoZSBwcm9maXRzIHRoZXJlZnJvbS4KICAgIDIuVGh5IERPUyBpcyBhIGNoYXJhY3RlciBiYXNlZCwgc2luZ2xlIHVzZXIsIHNpbmdsZSB0YXNraW5nLAogICAgICAgc3RhbmRhbG9uZSBvcGVyYXRpbmcgc3lzdGVtLiBUaG91IHNoYWxsIG5vdCBhdHRlbXB0IHRvIG1ha2UKICAgICAgIERPUyBuZXR3b3JrLCBtdWx0aXRhc2ssIG9yIGRpc3BsYXkgYSBncmFwaGljYWwgdXNlciBpbnRlcmZhY2UsCiAgICAgICBmb3IgdGhhdCB3b3VsZCBiZSBhIGdyb3NzIGhhY2suCiAgICAzLlRoeSBoYXJkIGRpc2sgc2hhbGwgbmV2ZXIgaGF2ZSBtb3JlIHRoYW4gMTAyNCBzZWN0b3JzLiBZb3UKICAgICAgIGRvbid0IG5lZWQgdGhhdCBtdWNoIHNwYWNlIGFueXdheS4KICAgIDQuVGh5IGFwcGxpY2F0aW9uIHByb2dyYW0gYW5kIGRhdGEgc2hhbGwgYWxsIGZpdCBpbiA2NDBLIG9mIFJBTS4KICAgICAgIEFmdGVyIGFsbCwgaXQncyB0ZW4gdGltZXMgd2hhdCB5b3UgaGFkIG9uIGEgQ1AvTSBtYWNoaW5lLiBLZWVwCiAgICAgICBob2x5IHRoaXMgNjQwSyBvZiBSQU0sIGFuZCBjbHV0dGVyIGl0IG5vdCB3aXRoIGRldmljZSBkcml2ZXJzLAogICAgICAgbWVtb3J5IG1hbmFnZXJzLCBvciBvdGhlciB0aGluZ3MgdGhhdCBtaWdodCBtYWtlIHRoeQogICAgICAgY29tcHV0ZXIgdXNlZnVsLgogICAgNS5UaG91IHNoYWxsIHVzZSB0aGUgb25lIHRydWUgc2xhc2ggY2hhcmFjdGVyIHRvIHNlcGFyYXRlIHRoeQogICAgICAgZGlyZWN0b3J5IHBhdGguIFRob3Ugc2hhbGwgbGVhcm4gYW5kIGxvdmUgdGhpcyBjaGFyYWN0ZXIsIGV2ZW4KICAgICAgIHRob3VnaCBpdCBhcHBlYXJzIG9uIG5vIHR5cGV3cml0ZXIga2V5Ym9hcmQsIGFuZCBpcyB1bmZhbWlsaWFyLgogICAgICAgU3RhbmRhcmRpemF0aW9uIG9uIHdoZXJlIHRoYXQgY2hhcmFjdGVyIGlzIGxvY2F0ZWQgb24gYSBjb21wdXRlcgogICAgICAga2V5Ym9hcmQgaXMgcmlnaHQgb3V0LgogICAgNi5UaG91IHNoYWxsIGVkaXQgYW5kIHNodWZmbGUgdGhlIHNhY3JlZCBsaW5lcyBvZiBDT05GSUcuU1lTCiAgICAgICBhbmQgQVVUT0VYRUMuQkFUIHVudGlsIERPUyBmdW5jdGlvbnMgYWRlcXVhdGVseSBmb3IgdGhlCiAgICAgICBsaWtlcyBvZiB5b3UuIEdpdmluZyB1cCBpbiBkaXNndXN0IGlzIG5vdCBhbGxvd2VkLgogICAgNy5Lbm93IGluIHRoeSBoZWFydCB0aGF0IERPUyBzaGFsbCBhbHdheXMgbWFpbnRhaW4gYmFja3dhcmQKICAgICAgIGNvbXBhdGliaWxpdHkgdG8gdGhlIGhvbHkgMi4wIHZlcnNpb24sIGJsaW5kbHkgaWdub3JpbmcKICAgICAgIG9wcG9ydHVuaXRpZXMgdG8gYmVjb21lIGNvbXBhdGlibGUgd2l0aCB0aGluZ3MgY3JlYXRlZCBpbiB0aGUKICAgICAgIGxhdHRlciBoYWxmIG9mIHRoaXMgY2VudHVyeS4gQnV0IHlvdSBjYW4gc3RpbGwgcnVuIFdvcmRTdGFyIDEuMAogICAgOC5JbXByb3ZlIHRoeSBtZW1vcnksIGZvciB0aG91IHNoYWxsIGJlIHJlcXVpcmVkIHRvIHJlbWVtYmVyCiAgICAgICB0aGF0IEpEMDMxNzkyLkxUUiBpcyB0aGUgbGV0dGVyIHRoYXQgeW91IHdyb3RlIHRvIEphbmUgRG9lCiAgICAgICB0aHJlZSB5ZWFycyBhZ28gcmVnYXJkaW5nIHRoZSB0YXggZGVkdWN0aWJsZSBjb250cmlidXRpb24gdGhhdAogICAgICAgeW91IG1hZGUgdG8gaGVyIG9yZ2FuaXphdGlvbi4gVGhlIElSUyBBdWRpdG9yIHNoYWxsIGJlCiAgICAgICBpbXByZXNzZWQgYnkgdGh5IG1lbW9yeSBhcyBoZSBzdGFuZHMgb3ZlciB5b3UgZGVtYW5kaW5nCiAgICAgICBwcm9vZi4KICAgIDkuUGljayBjYXJlZnVsbHkgdGhlIG5hbWVzIG9mIHRoeSBkaXJlY3RvcmllcywgZm9yIHJlbmFtaW5nIHRoZW0KICAgICAgIHNoYWxsIGJlIG1pZ2h0eSBkaWZmaWN1bHQuIFdoaWxlIHlvdSdyZSBhdCBpdCwgZG9uJ3QgdHJ5IHRvIHJlbG9jYXRlCiAgICAgICBicmFuY2hlcyBvZiB0aGUgZGlyZWN0b3J5IHRyZWUsIGVpdGhlci4KICAgMTAuTGVhcm4gd2VsbCB0aGUgVnVsY2FuIE5lcnZlIFBpbmNoIChjdHJsLWFsdC1kZWwpIGZvciBpdCBzaGFsbCBiZQogICAgICAgdGh5IHNhdmlvdXIgb24gbWFueSBhbiBvY2Nhc2lvbi4gQmVsaWV2ZSBpbiB0aHkgaGVhcnQgdGhhdAogICAgICAgZXZlcnlvbmUgcmVib290cyB0aGVpciBPUyB0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IHNob3VsZG4ndAogICAgICAgb2NjdXIgaW4gdGhlIGZpcnN0IHBsYWNlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTjhzY2hpY2h0IChEYWltb252b2ssIDExLiBPa3QgMTk5NSwgMDA6MzE6NTUpOgpaaXRhdCB2b24gZWluZXIgUGxhdHRlIHZvbSBSb2NrdGhlYXRlciBOYWNodHNjaGljaHQuIEdlaHQgbWlyIHNlaXQgV29jaGVuCm5pY2h0IGF1cyBkZW0gS29wZiwgbXVzcyBpY2ggdW5iZWRpbmd0IGxvc3dlcmRlbjoKCkpldHp0IGtvbW10IGF1cyB1bnNlcm0gRGlyayBzZWluZW0gU2NodWxhdWZzYXR6IHdhczoKCiAgIE5vY2htYWwgZ3V0IGdlZ2FuZ2VuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBNZWluIEZyZXVuZCBNZWlub2xmIHVuZCBpY2ggc3BpZWx0ZW4gYW4gZGVyIEJhaG4uIERhIGthbSBlaW4gWnVnLiBNZWluCiAgIEZyZXVuZCBNZWlub2xmIHdhciB0b3QsIGljaCBuaWNodC4gTm9jaG1hbCBndXQgZ2VnYW5nZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRHVyaWFuLCBkZXIgSGVyciBkZXMgU2FuZGVzIChFbmd5d3VjaywgMTEuIE9rdCAxOTk1LCAxMzoyNTozMSk6CgpOZXVsaWNoLCBiZWltIFJvZGVsbiBtaXQgVGFzaGEgdW5kIER1cmlhbi4uLgoKRHUgc2NobGV1ZGVyc3QgU2FuZCB2b3IgZGllIEt1ZmVuIHZvbiBEdXJpYW4uCj4gRGllc2UgQXR0YWNrZSBicmVtc3QgRHVyaWFuIGFiLiBFciBmYWVocnQgamV0enQgZ2FyIG5pY2h0LgpEaWUgbGVpY2h0ZSBMaW5rc2t1cnZlIGlzdCBhYmZhbGxlbmQuIEFscyBuYWVjaHN0ZXMga29tbXQgZWluIGdhbnplcyBTdHVlY2sKdm9yIERpciBlaW5lIGdhbnogbGVpY2h0ZSBSZWNodHNrdXJ2ZSwgZGllIGFiZmFsbGVuZCBpc3QuClRhc2hhIGZhZWhydCByZWNodHMgYXVmIGRlciBCYWhuIGVpbiBnYW56ZXMgU3R1ZWNrIHZvciBEaXIuCgpEdSBmYWVocnN0IGpldHp0IGV0d2FzIGxpbmtzIGF1ZiBkZXIgQmFobi4KRHUgZmFlaHJzdCBzY2huZWxsLCBldHdhcyBsaW5rcyBhdWYgZGVyIEJhaG4gdW5kIGxlbmtzdCBzdGFyayBuYWNoIGxpbmtzLgo+IER1cmlhbiBzYWd0OiBzY2hlaXNzIHNhbmQgLi4uCgpPaG5lIEtvbW1lbnRhciwgYWJlciBkb2NoIGdyaW5zZW5kLi4uCkVuZ3l3dWNrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWVkY2hlbiB1bmQgUlBHIChFdGFoLCAxMi4gT2t0IDE5OTUsIDAwOjIyOjEyKToKRnJvbTogQXJuZF9SaWViZWxpbmdAcDE2LmYzMzYubjI0NjEuejIuZmlkby5zdWIub3JnIChBcm5kIFJpZWJlbGluZykKT3JnYW5pemF0aW9uOiBXaWUgZWluIE9yaWdhbWktVHJpY2sgaW4gZmx1ZXNzaWdlbSBOZW9uLi4uCk5ld3Nncm91cHM6IGZpZG8uZ2VyLnJwZwpTdWJqZWN0OiBGQVEtTWFlZGNoZW4KRGF0ZTogRnJpLCAyNiBNYXkgMTk5NSAxNjowMTowMiArMDIwMApMaW5lczogMzAxCgogX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fCi9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cClxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvCiAgICAgICAgIF9fICAgICAgICAgICAgICAgIF9fX19fX18gICBfX19fX19fICAgX19fX19fXyAgICAgICAgICAgICAgICBfXwogICAgICAgIC8gL1wgICAgICAgICAgICAgIC8gX19fX18vXCAvIF9fXyAgL1wgLyBfX18gIC9cICAgICAgICAgICAgICAvIC9cCiAgICAgICAvIC8gLyBfX19fX18gICAgICAvIC9cX19fX1wvLyAvXF8vIC8gLy8gL1wgLyAvIC8gIF9fX19fX18gICAgLyAvIC8KICAgICAgL18vIC8gL19fX19fXy9cICAgLyBfX19fL1wgIC8gX19fICAvIC8vIC8gLy8gLyAvICAvX19fX19fL1wgIC9fLyAvCiAgICAgX1xfXC8gIFxfX19fX19cLyAgLyAvXF9fX1wvIC8gL1xfLyAvIC8vIC9fLy9fLyAvICAgXF9fX19fX1wvIF9cX1wvCiAgICAvXy9cICAgICAgICAgICAgICAvXy8gLyAgICAgL18vIC8vXy8gLy9fX19fICAgXy8gICAgICAgICAgICAgL18vXAogICAgXF9cLyAgICAgICAgICAgICAgXF9cLyAgICAgIFxfXC8gXF9cLyBcX19fX3xffFwgICAgICAgICAgICAgIFxfXC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX1wvCiAgICAgICAgICAgICAgICAgICAgX18gX18KICAgICAgICAgICAgICAgICAgIC9fLy9fL1wKICAgICBfXyAgICAgX18gICAgX1xfXFxfXC8gIF9fX19fICAgICBfX19fX18gICBfXyAgIF9fICAgX19fX19fICAgX18gICAgX18KICAgIC8gIFwgIF8vICAvXCAvIF9fXyAgL1wgLyBfX18gfFwgIC8gX19fXy9cIC8gL1wgLyAvXCAvIF9fX18vXCAvICBcICAvIC9cCiAgIC8gL1wgXC9fICAvIC8vIC9cXy8gLyAvLyAvXF8vIC9cIC8gL1xfX19cLy8gL18vLyAvIC8vIC9cX19fXC8vIC9cIFwvIC8gLwogIC8gLyB8XF8vLyAvIC8vIF9fXyAgLyAvLyAvIC8vIC8gLy8gLyAvICAgIC8gX19fICAvIC8vIF9fXy9cICAvIC8gfFwgIC8gLwogLyAvIC9cX3wvIC8gLy8gL1xfLyAvIC8vIC9fLy8gLyAvLyAvXy9fICAgLyAvXF8vIC8gLy8gL1xfX1wvIC8gLyAvXC8gLyAvCi9fLyAvICAgL18vIC8vIC8gLy9fLyAvL19fX19fXy8gLy9fX19fXy9cIC9fLyAvLyAvIC8vX19fX18vXCAvXy8gLyAvXy8gLwpcX1wvICAgIFxfXC8gXF9cLyBcX1wvIFxfX19fX19cLyBcX19fX19cLyBcX1wvIFxfXC8gXF9fX19fXC8gXF9cLyAgXF9cLwogX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fCi9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cClxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCiAgICAgICAgICAgICAgICAgICA+Pj4+Pj4gICBGIEEgUSAtIE0gYSBlIGQgYyBoIGUgbiAgIDw8PDw8CiAgICAgICAgIChGLnJlcXVlbnRseSBBLnNrZWQgUS51ZXN0aW9ucywgRi51ZXIgQS5sbGUgUS51ZXJ1bGFudGlubmVuKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmQ6IE1haSAnOTUKICAgICAgICAgICAgICAgICBfCiAgICAgICAgICAgIHZvbiAvLVxybmQgUmllYmVsaW5nIGFsaWFzICJHcm9zc2lucXVpc2l0b3IgUmllYmVsaW5nIgogICAgICAgICAgICAgICBBbnJlZ3VuZ2VuIHVuZCBLcml0aWsgc3RldHMgd2lsbGtvbW1lbiB1bnRlcjoKICAgICAgICAgICAgYXJuZC5yaWViZWxpbmdAY2hhbGV0LnJoZWluLW1haW4uZGUgb2RlciAyOjI0NjEvMzM2LjE2Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKU2NoZWluYmFyIGZyYXVlbmZlaW5kbGljaGUgQmVtZXJrdW5nZW4gc2luZCBuaWNodCB6dWZhZWxsaWcgdW5kCkFlaG5saWNoa2VpdGVuIG1pdCBsZWJlbmRlbiBNYWVkY2hlbiBiZWFic2ljaHRpZ3QuIEZsYW1lcyB1bmQgTW9yZC0KZHJvaHVuZ2VuIGJpdHRlIG5hY2ggYXJuZC5yaWViZWxpbmdAdHJhc2hjYW4ubXVlbGwtZWltZXIuZGUuCgpEaWVzZSBlbGVtdGFyZW4gdW5kIHdpY2h0aWdlbiBFcmtlbm50bmlzc2UgdWViZXIgZGFzIFZlcmhhbHRlbiB2b24gTWFlZGNoZW4KaW0gUm9sbGVuc3BpZWwgd3VyZGVuIGluIGphaHJlbGFuZ2VuIFZlcmhhbHRlbnNzdHVkaWVuIGJlb2JhY2h0ZXQgdW5kCnVudGVybWF1ZXJ0LiBEaWUgc3RyZW5nIHdpc3NlbnNjaGFmdGxpY2hlIHVuZCB3ZXJ0ZnJlaWUgRGFyc3RlbGx1bmcgc29sbApqZWRlbSBTcGllbGxlaXRlciBlcm1vZWdsaWNoZW4gc2ljaCBhdWYgZWluIGV2ZW50dWVsbGVzIFp1c2FtbWVudHJlZmZlbiBtaXQKZGVyIFNwZXppZXMgIk1hZWRjaGVuIiB2b3J6dWJlcmVpdGVuLiBJY2ggZGFua2UgdW5zZXJlbiBsYW5namFlaHJpZ2VuCk1pdHNwaWVsZXJpbm5lbiBmdWVyIElocmUgdGF0a3JhZWZ0aWdlIEhpbGZlIHVuZCBJaHJlIHVuZXJtdWVkbGljaGVuCkFuc3RyZW5ndW5nZW4gbWlyIGRlbiBsZXR6dGVuIE5lcnYgenUgcmF1YmVuLiBNaXQgdGllZmVtIFJlc3Bla3QgdW5kCnZvcnp1ZWdsaWNoZXIgSG9jaGFjaHR1bmcgdmVybmVpZ2UgaWNoIG1pY2ggdm9yIGRlciB2ZXJzYW1tZWx0ZW4KV2VpYmxpY2hrZWl0LAoKQXJuZCBSaWViZWxpbmcsIEJ1dHpiYWNoIGRlbiAyNi4gQXByaWwgJzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXwovX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXApcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLwogICAgICAgICBfX19fX19fICAgX19fX19fXyAgIF9fX19fXyAgICAgICAgIF9fX19fX18gICBfX19fX18gICBfXyAgICBfXwogICAgICAgIC9fICAgX18vXCAvIF9fXyAgL1wgLyBfXyAgL1wgICAgICAgL18gICBfXy9cIC8gX19fXy9cIC8gIFwgIC8gL1wKICAgICAgICBcXy8gL1xfXC8vIC9cIC8gLyAvLyAvXy8gLyAvIF9fX18gIFxfLyAvXF9cLy8gL19fX19cLy8gL1wgXC8gLyAvCiAgICAgICAgIC8gLyAvICAvIC8gLy8gLyAvLyBfX19fLyAvIC9fX18vXCAgLyAvIC8gIC8gX19fL1wgIC8gLyB8XCAgLyAvCiAgICAgICAgLyAvIC8gIC8gL18vLyAvIC8vIC9cX19fXC8gIFxfX19cLyAvIC8gLyAgLyAvX19fXC8gLyAvIC9cLyAvIC8KICAgICAgIC9fLyAvICAvX19fX19fLyAvL18vIC8gICAgICAgICAgICAgL18vIC8gIC9fX19fXy9cIC9fLyAvIC9fLyAvCiAgICAgICBcX1wvICAgXF9fX19fX1wvIFxfXC8gICAgICAgICAgICAgIFxfXC8gICBcX19fX19cLyBcX1wvICBcX1wvCgoKICAgICAgICAgICAgICAgID4+Pj4+ICAgRGllIHplaG4gIlRvcC1UZW4iICAgPDw8PDwKCiAgICAgICAgSS4gV2FydW0ga29tbXQgZWluIE1hZWRjaGVuIHp1bSBSb2xsZW5zcGllbGFiZW5kPwogICAgICAgSUkuIFdhcnVtIGtvZW5uZW4gTWFlZGNoZW4ga2VpbmUgTWFnaWVyIHNwaWVsZW4/CiAgICAgIElJSS4gV2FydW0ga29lbm5lbiBNYWVkY2hlbiBrZWluZSBSaXR0ZXIgc3BpZWxlbj8KICAgICAgIElWLiBXYXJ1bSBkdWVyZmVuIE1hZWRjaGVuIG5pZW1hbHMgU3BpZWxsZWl0ZXIgc2Vpbj8KICAgICAgICBWLiBXb3JhbiBkZW5rZW4gTWFlZGNoZW4sIHdlbm4gIkVyIiB6dW0gUm9sbGVuc3BpZWwgZmFlaHJ0PwogICAgICAgVkkuIFdvcmFuIGRlbmtlbiBNYWVkY2hlbiwgd2VubiAiRXIiIHVlYmVyIFN5c3RlbWUgc3ByaWNodD8KICAgICAgVklJLiBXYXMgemllaHQgZGVyIENoYXJha3RlciBlaW5lcyBNYWVkY2hlbnMgYW4/CiAgICAgVklJSS4gV2FzIG1vZWdlbiBNYWVkY2hlbiBhbSBSb2xsZW5zcGllbD8KICAgICAgIElYLiBXZWxjaGUgV2FmZmVuIGJlbnV0emVuIE1hZWRjaGVuIGltIFJvbGxlbnNwaWVsPwogICAgICAgIFguIFdhcyB6ZWljaG5ldCBkaWUgU3BpZWxmaWd1ciBlaW5lcyBNYWVkZWNoZW4gYXVzPyAqCiAgICAgICAgICAgKCogPT4gQmVpdHJhZyB2b24gSmVucyBTdGFkbG1hbm4KIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXwovX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXApcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLwogICAgX19fX18KICAgL18gIF8vXAogICBcLyAvXF8vCiAgIC8gLyAvCiBfLyAvXy8gIF9fCi9fX19fL1wgL18vXApcX19fX1wvIFxfXC8gIFdhcnVtIGtvbW10IGVpbiBNYWVkY2hlbiB6dW0gUm9sbGVuc3BpZWxhYmVuZD8KCiAxKSBEaWUgSnVuZ3Mgd29sbGVuIGF1Y2ggbWFsIHdhcyB6dW0gTGFjaGVuIGhhYmVuLgogMikgSmVkZXIgbWFjaHQgbWFsIGVpbmVuIEZlaGxlci4KIDMpIEVpbiBNaXNzdmVyc3RhZW5kbmlzOiBlciBtZWludGUgIlNwYWNlbWFzdGVyIiwgYWxzIGVyICJTTSIgc2FndGUuLi4KIDQpIFNpZSBkYWNodGUgYmVpIEtlcnplbmxpY2h0IGFuIEFiZW5kZXNzZW4uCiA1KSBWaWVsZSBKdW5ncyB1bmQga2VpbmUgS29ua3VycmVuej8KIDYpIERlciBGcmV1bmQgbGllc3MgaWhyIGtlaW5lIFJ1aGU/CiA2KSBTaWUgbGllc3MgaWhyZW0gRnJldW5kIGtlaW5lIFJ1aGUhCiA3KSBXZWlsIGRpZSBFbHRlcm4gdmVyYm90ZW4gaGFiZW4/CiA4KSBXZWlsIGVzIGRlciBGcmV1bmQgdmVyYm90ZW4gaGF0IQogOSkgRXIgc2FndGU6ICJXZW5uIHdpciBhbmZhbmdlbiwgbWFjaCcgaWNoIGRhcyBMaWNodCBhdXMuIgoxMCkgVW0gaWhyZSBGcmV1bmRpbm5lbiBhdXN6dXN0ZWNoZW4uLi4KCiBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18KL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wKXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8KICAgIF9fX19fX19fXwogICAvXyAgX18gIF8vXAogICBcLyAvXC8gL1xfLwogICAvIC8gLyAvIC8KIF8vIC9fLyAvXy8gIF9fCi9fX19fX19fXy9cIC9fL1wKXF9fX19fX19fXC8gXF9cLyBXYXJ1bSBrb2VubmVuIE1hZWRjaGVuIGtlaW5lIE1hZ2llciBzcGllbGVuPwoKIDEpIFNpZSBrb2VubmVuIGtlaW5lIFNwcnVlY2hlIGtsb3BmZW4uCiAyKSBFaW4gR3JpbW9pcmUgcGFzc3QgaW4ga2VpbmUgSGFuZHRhc2NoZS4KIDMpIFphdWJlcmVyIG11ZXNzZW4gdmVyc2Nod2llZ2VuIHNlaW4uCiA0KSBTaWUgaGFiZW4gQW5nc3QgaW0gRHVua2Vsbi4KIDUpIFZvbSBTdGlybnJ1bnplbG4gYmVrb21tdCBtYW4gRmFsdGVuLgogNikgRWluIEVzc2VuIHphdWJlcm4gaXN0IG5pY2h0IGFsbGVzLgogNykgU2llIG1vZWdlbiBrZWluZSAiQmx1dG1hZ2llIi4KIDgpIFNlaXQgZGVyIElucXVzaXRpb24gZ2lidCBlcyBrZWluZSBIZXhlbiBtZWhyLgogOSkgVW50ZXIgZWluZXIgUm9iZSBzaWVodCBtYW4gSWhyZSBTdG9lY2tlbHNjaHVoZSBuaWNodC4KMTApIEltIE1hZ2lldGVpbCBkZXMgUmVnZWx3ZXJrcyBnaWJ0IGVzIGtlaW5lIGJ1bnRlbiBCaWxkZXIuCiBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18KL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wKXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8KICAgIF9fX19fX19fX19fX18KICAgL18gIF9fICBfXyAgXy9cCiAgIFwvIC9cLyAvIC8gL1xfLwogICAvIC8gLyAvIC8gLyAvCiBfLyAvXy8gL18vIC9fLyAgX18KL19fX19fX19fX19fXy9cIC9fL1wKXF9fX19fX19fX19fX1wvIFxfXC8gV2FydW0ga29lbm5lbiBNYWVkY2hlbiBrZWluZSBSaXR0ZXIgc3BpZWxlbj8KCiAxKSBEZXIgSGVsbSBydWluaWVydCBkaWUgRnJpc3VyLgogMikgUml0dGVyIHNpbmQgZWhybGljaC4KIDMpIFN0YWhsc2NodWhlIGdpYnQgZXMgbmljaHQgbWl0IEFic2FldHplbi4KIDQpIFNpZSBrYW5uIGlociBHZXNpY2h0IG5pY2h0IGltIFNwaWVnZWwgc2VoZW4uCiA1KSBSaXR0ZXIgc2Nod29lcmVuIGV3aWdlIFRyZXVlLgogNikgTWFzc2dlc2NobmVpZGVydGUgUnVlc3R1bmdlbiBrb3N0ZW4gZWluIFZlcm1vZWdlbi4KIDcpIEVzIGdpYnQgbmljaHQgZ2VudWVnZW5kIFBmZXJkZSwgZGllIHdpZSAiRnVyeSIgYXVzc2VoZW4uCiA4KSBEaWUgS25hcHBlbiB3dWVyZGVuIHNpY2ggdG90bGFjaGVuLgogOSkgRWluZSBSdWVzdHVuZyBnaWJ0J3MgbmljaHQgbWl0IFNlcnZvbGVua3VuZy4KMTApIE1hbiBrYW5uIG51ciBhbmRlcmUgRnJhdWVuIGF1cyBkZW4gS2xhdWVuIHZvbiBEcmFjaGVuIGJlZnJlaWVuLi4uCiBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18KL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wKXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8KICAgIF9fX19fX19fX19fXwogICAvXyAgICBfX18gIF8vXAogICBcLyAgIHx8IC8gL1xfLwogICAvIC98IHx8LyAvIC8KIF8vIC9ffCB8LyAvXy8gIF9fCi9fX19fX19fX19fXy9cIC9fL1wKXF9fX19fX19fX19fXC8gXF9cLyBXYXJ1bSBkdWVyZmVuIE1hZWRjaGVuIG5pZW1hbHMgU3BpZWxsZWl0ZXIgc2Vpbj8KCiAxKSBXZWxjaGVyIEp1bmdlIGlzdCBzbyBibG9lZD8KIDIpIEF1ZiBkZW0gU3BpZWxsZWl0ZXJzY2hpcm0gc3RlaGVuIGtlaW5lIEtvY2hyZXplcHRlLgogMykgV2VsY2hlcyBNYWVkY2hlbiBsaWVzdCBzY2hvbiBkYXMgUmVnZWx3ZXJrPwogNCkgQWxsZSB3b2xsZW4gbnVyIGRhcyBlaW5lOiBFcmZhaHJ1bmdzcHVua3RlIQogNSkgTWFlZGNoZW4gbW9lZ2VuIGtlaW5lIE1vbnN0ZXIgLSBhYmVyIGRpZSBTcGllbGVyIQogNikgU2llIGhhYmVuIEFuZ3N0IHZvciBmaW5zdGVyZW4gVmVybGllc3Nlbi4KIDcpIEVzIGdpYnQgbmljaHQgbnVyIFByaW56ZW4gaW0gUm9sbGVuc3BpZWwuCiA4KSBFcyBnaWJ0IG5vY2ggYW5kZXJlIFByaW56ZXNzaW5lbiBpbSBSb2xsZW5zcGllbC4KIDkpIEhpbnRlciBkZW0gU2NoaXJtIHNpZWh0IGtlaW5lciBpaHIgRGVrb2xsZXRlLgoxMCkgU2llIGtvZW5uZW4ga2VpbmUgR2VoZWltbmlzc2UgZnVlciBzaWNoIGJlaGFsdGVuLi4uCgogX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fCi9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cClxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvCiAgIF9fX19fX19fX18KICAvXyAgX19fICBfL1wKICBcfCB8fCAvIC9cXy8KICAgfCB8fC8gLyAvCiAgX3wgfC8gL18vICBfXwogL19fX19fX18vXCAvXy9cCiBcX19fX19fX1wvIFxfXC8gV29yYW4gZGVua2VuIE1hZWRjaGVuLCB3ZW5uICJFciIgenVtIFJvbGxlbnNwaWVsIGZhZWhydD8KCiAxKSBFaW5zYW1lIE5hZWNodGUuCiAyKSBTZWluZSBGcmV1bmRlIChhbGxlcyBSb2xsZW5zcGllbGVyKSBzaW5kIFZlcnJhZXRlci4KIDMpIERpZSBGcmV1bmRpbm5lbiBzZWluZXIgRnJldW5kZSBzaW5kIGlocmUgTGVpZGVuc2dlbm9zc2VuLgogNCkgRGllIEZyZXVuZGlubmVuIHNlaW5lciBGcmV1bmRlIHNpbmQgX2F1Y2hfIFZlcnJhZXRlciwgZGVubiBzaWUgc2luZAogICAgX2ViZW5mYWxsc18gUm9sbGVuc3BpZWxlciEhIQogNSkgV2FzIGlzdCBzbyB0b2xsIGRhcmFuPwogNikgV2FzIHdpbGwgZXIgbWl0IGRlbiB2aWVsZW4gV3VlcmZlbG4/CiA3KSBXYXMgaGF0IGVyIGJsb3NzIGluIGRlciBncm9zc2VuIFRhc2NoZT8KIDgpIFdhcnVtIHp1ZW5kZSBpY2ggbmljaHQgc2VpbiBSZWdlbHdlcmsgYW4/CiA5KSBIb2ZmZW50bGljaCBzdGlyYnQgc2VpbiBMaWVibGluZ3NjaGFyYWt0ZXIhCjEwKSBGYW5nJyBlaW4gVmVyaGFlbHRuaXMgbWl0IHNlaW5lbSBTcGllbGxlaXRlciBhbi4uLgogX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fCi9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cClxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvCiAgIF9fX19fX19fX19fX19fCiAgL18gIF9fXyAgX18gIF8vXAogIFx8IHx8IC8gL1wvIC9cXy8KICAgfCB8fC8gLyAvIC8gLwogIF98IHwvIC9fLyAvXy8gIF9fCiAvX19fX19fX19fX18vXCAvXy9cCiBcX19fX19fX19fX19cLyBcX1wvIFdvcmFuIGRlbmtlbiBNYWVkY2hlbiwgd2VubiAiRXIiIHVlYmVyIFN5c3RlbWUgc3ByaWNodD8KCiAxKSBIYXJubWFzdGVyOiBkZXIgc2FuZnRlIEJsYXNlbnRlZS4KIDIpIFBhcmFub2lhOiBkaWUgQW5nc3Qgdm9yIGRlbiBGYWx0ZW4uCiAzKSBSb2xlbWFzdGVyOiBkYXMgTnVkZWxob2x6LCBhbiBkZW0gbmljaHRzIGtsZWJlbmJsZWlidC4KIDQpIFNwYWNlbWFzdGVyOiBkZXIgbGVpc3R1bmdzZmFlaGlnZSBJbmR1c3RyaWVzdGF1YnNhdWdlci4KIDUpIERhcyBzY2h3YXJ6ZSBBdWdlOiBkZXIgS2FqYWxzdGlmdCBtaXQgZGVyIExhbmd6ZWl0d2lya3VuZy4KIDYpIEQmRDogRGllIHNhbmZ0ZSBXYXNjaGxvdGlvbi4KIDcpIEFEJkQ6IERpZSBzYW5mdGUgV2FzY2hsb3Rpb24gbWl0IFNhZXVyZXBlZWxpbmcuCiA4KSBFYXJ0aGRhd246IGRlciBvZWtvbG9naXNjaGUgTGFuZ3plaXRkdWVuZ2VyLgogOSkgU2hhZG93cnVuOiBkaWUgZWxla3RyaXNjaGUgTWFycXVpc2UgbWl0IEVkZWxzdGFobGt1Z2VsbGFnZXIuCjEwKSBHVVJQUzogZGllIGJpb2xvZ2lzY2hlIEJhYnluYWhydW5nIGltIEdsYWVzY2hlbi4KIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXwovX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXApcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLwogICBfX19fX19fX19fX19fX19fX18KICAvXyAgX19fICBfXyAgX18gIF8vXAogIFx8IHx8IC8gL1wvIC9cLyAvXF8vCiAgIHwgfHwvIC8gLyAvIC8gLyAvCiAgX3wgfC8gL18vIC9fLyAvXy8gICBfXwogL19fX19fX19fX19fX19fX18vXCAvXy9cCiBcX19fX19fX19fX19fX19fX1wvIFxfXC8gV2FzIHRyYWVndCBkZXIgQ2hhcmFrdGVyIGVpbmVzIE1hZWRjaGVucz8KCiAxKSBNb2VnbGljaHN0IHdlbmlnPwogMikgS2xlaWRlciBLYXJscyBkZXMgR3Jvc3NlbiB2b24gdW5kIHp1IExhZ2VyZmVsZGVuLgogMykgTWFnaXNjaGUgRHVmdHdhc3NlciBkZXIgYmlnb3R0ZW4gTGF1cmEuCiA0KSBTY2h1aGUgZGVzIGhlaWxpZ2VuIEpvb3AuCiA1KSBHdWVydGVsIGRlcyBHcmVnb3IgQXJtYW5pdXMKIDYpIEJsdXNlbiBkZXMgSGFucyB2b24gU2Fua3QgTG9yZW56LgogNykgSG9zZW4gZGVyIEp1bGlhIHZvbiBTYW5kIGFtIE1lZXIuCiA4KSBBdmFudGdhcmRpc3Rpc2NoZSBBY2Nlc3NvaXJlcyBkZXMgSm9oYW5uZXMtUGF1bCB2b24gR2F1bCwgZGVtIFRpZXIuCiA5KSBTY2h1ZXJ6ZW4gdm9uIFVsaSBkZW0gS25lY2h0LgoxMCkgS251dGVuIHZvbiBSdXBwLCBkZW0gUmVjaHRsb3Nlbi4KIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXwovX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXApcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLwogICBfX19fX19fX19fX19fX19fX19fX19fCiAgL18gIF9fXyAgX18gIF9fICBfXyAgXy9cCiAgXHwgfHwgLyAvXC8gL1wvIC9cLyAvIF8vCiAgIHwgfHwvIC8gLyAvIC8gLyAvIC8gLwogIF98IHwvIC9fLyAvXy8gL18vIC9fLyAgIF9fCiAvX19fX19fX19fX19fX19fX19fX18vXCAvXy9cCiBcX19fX19fX19fX19fX19fX19fX19cLyBcX1wvIFdhcyBtb2VnZW4gTWFlZGNoZW4gYW0gUm9sbGVuc3BpZWw/CgogMSkgR2FyIG5pY2h0cz8KIDIpIEFsbGVzIHdhcyBKdW5ncyBfbmljaHRfIG1vZWdlbi4KIDMpIEVpbmthdWZlbiBpbiBkZW4gU3RhZWR0ZW4gZGVzIFNwaWVsbGVpdGVycy4KIDQpIERvbGNoZSBtaXQgdmVyemllcnRlbiBLbmFldWZlbi4KIDUpIFVucHJha3Rpc2NoZSBLbGVpZHVuZy4KIDYpIEludHJpZ2VuIGJlaSBIb2YuCiA3KSBSaXR0ZXIgaW4gdG9sbGVuIFJ1ZXN0dW5nZW4uCiA4KSBDaGFyYWt0ZXJrbGFzc2VuIGRpZSBzb25zdCBrZWluZXIgc3BpZWx0LgogOSkgTGVkaWdlIFByaW56ZW4uCjEwKSBEaWFtb25kcyBhcmUgYSBnaXJsJ3MgYmVzdCBmcmllbmRzLi4uCiBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18KL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wKXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8KICAgICBfX19fX19fX19fX19fCiAgICAvXyAgXyAgX19fICBfL1wKICAgIFwvIC9cfCB8Xy8gLyBcLwogICAgLyAvIC8vIF8gIC9fLwogIF8vIC9fLy8gL198IHxffCAgIF9fCiAvX19fX19fX19fX19fX18vXCAvXy9cCiBcX19fX19fX19fX19fX19cLyBcX1wvIFdlbGNoZSBXYWZmZW4gYmVudXR6ZW4gTWFlZGNoZW4gaW0gUm9sbGVuc3BpZWw/CgogMSkgU3BpdHplIFp1bmdlLgogMikgR2lmdGlnZXIgQmxpY2suCiAzKSBMYW5nZSBGaW5nZXJuYWVnZWwuCiA0KSBHb2xkZW5lIEhhYXJuYWRlbG4uCiA1KSBEaWFtYW50YmVzZXR6dGUgU2NobGFncmluZ2UuCiA2KSBIb2hlIEFic2FldHplLgogNykgS25vY2hpZ2VzIEtuaWUuCiA4KSBHZWhhZXJ0ZXRlcyBOdWRlbGhvbHouCiA5KSBFZGVsc3RhaGwtTmFnZWxmZWlsZS4KMTApIE9ocmVuYmV0YWV1YmVuZGVyIFNjaHJlaSEKIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXwovX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXApcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLwogICBfX19fX19fX19fCiAgL18gIF9fXyAgXy9cCiAgXF98IHxfLyAvIFwvCiAgICAvIF8gIC9fLwogIF8vIC9ffCB8X3wgICBfXwogL19fX19fX19fXy9cIC9fL1wKIFxfX19fX19fX19cLyBcX1wvIFdhcyB6ZWljaG5ldCBkaWUgU3BpZWxmaWd1ciBlaW5lcyBNYWVkZWNoZW4gYXVzPyAqIGpzCgogMSkgU2llIGthbm4gcmVpdGVuLCBrb3N0ZSBlcyB3YXMgZXMgd29sbGUuCiAyKSBTaWUgaXN0IGltbWVyIGFuZ2V6b2dlbiwgYXVjaCBiZWltIEJhZGVuLgogMykgU2llIGlzdCBpbW1lciB3dW5kZXJzY2hvZW4sIGF1Y2ggZGlyZWt0IG5hY2ggZGVtIEF1ZnN0ZWhlbi4KIDQpIFNpZSBrYWVtcGZ0IG5pY2h0LCBhYmVyIGlocmUgRmVpbmRlIHN0ZXJiZW4gYXVmIG15c3RlcmlvZXNlIFdlaXNlLi4uCiA1KSBTaWUgaGV0enQgZGllIE1pdHNwaWVsRVIgZ2VnZW5laW5hbmRlciBhdWYuCiA2KSBTaWUgdHV0IG5pY2h0cywgd2VpbCBkYXMgU3RyaWNrbXVzdGVyIGRlciBTcGllbGVyaW4genUga29tcGxpemllcnQgaXN0LgogNykgU2llIGJyaW5ndCBlcnN0IGRpZSBOaWNodHNwaWVsZXIgdW5kIGRhbm4gZGVuIFNwaWVsbGVpdGVyCiAgICB1bSBkZW4gVmVyc3RhbmQuCiA4KSBTaWUgaGF0IGtlaW5lIFdhZmZlIGF1ZiBkZXIgQXVzcnVlc3R1bmdzbGlzdGUsIGFiZXIgZHJlaSBLbGVpZGVyLgogOSkgU2llIGlzdCBIZWlsZXJpbiB1bmQga2FubiBuaWNodCBrYWVtcGZlbi4KMTApIFNpZSBrYW5uIGthZW1wZmVuLCBhYmVyIHNpZSB0cmF1dCBzaWNoIG5pY2h0IQogX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fICAgX19fX18gICBfX19fXyAgIF9fX19fCi9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cIC9fX19fL1wgL19fX18vXCAvX19fXy9cClxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvIFxfX19fXC8gXF9fX19cLyBcX19fX1wvCgoKICAgICAgICAgICAgICAgICAgICAgICAgPj4+IE1haSAxOTk1LCBBLiBSaWViZWxpbmcgPDw8Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKIEludGVybmV0OiBhcm5kLnJpZWJlbGluZ0BtZWQudW5pLWdpZXNzZW4uZGUgICB8IEZpZG9uZXQ6IDI6MjQ2MS8zMzYuMTYKICAgICAgICAgICBhcm5kLnJpZWJlbGluZ0BjaGFsZXQucmhlaW4tbWFpbi5kZSB8IFZvaWNlICA6ICgwNjAzMykgNDQxMQogUlAtR2FtZXM6IFJvbGVtYXN0ZXIsIFNoYWRvd3J1biwgRWFydGhkYXduLi4uIHwgVGFwcE11ZDogRGFyawpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCgotLQpUaGlzIGZpbGUgaXMgcHJvdmlkZWQgYXMgaXMuIE5vIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgdGFrZW4gZm9yIGFueQpkYW1hZ2VzIGNhdXNlZCBieSByZWFkaW5nIHRoaXMgdGV4dC4KRXRhaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2hlaW5tYWwgZWluIGFsdGVyIFdpdHogdm9uIEdyaW1tYm9ybiBkYW1hbHMgZ2Vwb3N0ZXQgKEd1eWJydXNoLCAxMi4gT2t0IDE5OTUsIDA4OjQ1OjAyKToKCldvbWVuOiBBIENoZW1pY2FsIEFuYWx5c2lzIChHcmltbWJvcm4sIDIyLiBGZWIgMTk5NSwgMTU6MDM6MjkpOgoKU28sIGFscyBDaGVtaWtlciBoYWIgaWNoIGhpZXIgZ2VuYXUgbWVpbmUgU2ljaHQgZGVyIEZyYXVlbiBnZWZ1bmRlbjoKCkVsZW1lbnQ6ICAgICAgICAgIEZlbWFsZSBIdW1hbgpDaGVtaWNhbCBzeW1ib2w6ICBXbwpEaXNjb3ZlcmVyOiAgICAgICBBZGFtCgpBdG9taWMgd2VpZ2h0OiAgICBBY2NlcHRlZCBhcyA1NiBidXQgaXMga25vd24gdG8gdmFyeSBmcm9tIDQ0IHRvIDgzCiAgICAgICAgICAgICAgICAgIChtdXRhdGlvbnMgaGF2ZSBiZWVuIGtub3duIHRvIGV4Y2VlZCAyMDApCgpBcHByb3ZlZCBGb3JtdWxhOiA5NiwgNTgsIDk5CgpVc2U6ICAgICAgICAgICAgICBIaWdobHkgb3JuYW1lbnRhbCwgZXNwZWNpYWxseSBpbiBzcG9ydHMgY2Fycy4gTW9zdCBwb3dlcmZ1bAogICAgICAgICAgICAgICAgICBtb25leSByZWR1Y2luZyBhZ2VudCBrbm93bi4gQ2FuIGJlIGEgZ3JlYXQgYWlkIHRvCiAgICAgICAgICAgICAgICAgIHJlbGF4YXRpb24gb3IgYSBjb250aW5vdXMgc291cmNlIG9mIGZydXN0cmF0aW9uLgoKUGh5c2ljYWwgUHJvcC46ICAgU3VyZmFjZXMgdXN1YWxseSBjb3ZlcmVkIGluIHBhaW50ZWQgZmlsbS4gQm9pbHMgYXQgbm90aGluZwogICAgICAgICAgICAgICAgICBhbmQgZnJlZXplcyB3aXRob3V0IHJlYXNvbi4gTWVsdHMgaWYgZ2l2ZW4gdGhlIHByb3BlcgogICAgICAgICAgICAgICAgICB0cmVhdG1lbnQuIEJpdHRlciBpZiB1c2VkIGluY29ycmVjdGx5LiBGb3VuZCBpbiB2YXJpb3VzCiAgICAgICAgICAgICAgICAgIHN0YXRlcyByYW5naW5nIGZyb20gY29tbW9uIG9yZSB0byB2aXJnaW4gbWV0YWwuCk5vbm1hZ25ldGljCiAgICAgICAgICAgICAgICAgIGJ1dCBhdHRyYWN0ZWQgYnkgYmFuayBub3Rlcy4gWWllbGRzIHRvIHByZXNzdXJlIGFwcGxpZWQgYXQKICAgICAgICAgICAgICAgICAgY29ycmVjdCBwb2ludC4gSW4gaXRzIG5hdHVyYWwgc3RhdGUgaXQgdmFyaWVzCmNvbnNpZGVyYWJseSwKICAgICAgICAgICAgICAgICAgYnV0IHRoZSBzaGFwZSBpcyBvZnRlbiBhcnRpZmljaWFsbHkgY2hhbmdlZCB0byBjb25mb3JtIHRvCiAgICAgICAgICAgICAgICAgIHRoYXQgb2YgYSBwZXJmZWN0IHNwZWNpbWVuLiBTdWNoIHRyYW5zZm9ybWF0aW9ucyBhcmUgb25seQogICAgICAgICAgICAgICAgICBkaXNjb3ZlcmVkIGJ5IGFuIGV4cGVyaWVuY2VkIGV5ZS4gSW4gc29tZSBpbnN0YW5jZXMgbWF5CiAgICAgICAgICAgICAgICAgIHN0YXJ0IHRvIGdhaW4gd2VpZ2h0IGFuZCBsb29rIGxpa2UgdGhleSBoYXZlIHN3YWxsb3dlZCBhCiAgICAgICAgICAgICAgICAgIGJhc2tldGJhbGwgYW5kIHRoZW4gcHJvY2VlZCB0byB0YWtlIG9uIHF1YWxpdGllcyBvZiBhClhFUk9YCiAgICAgICAgICAgICAgICAgIGNvcGllciBhbmQgc3RhcnQgdG8gbWFrZSBjb3BpZXMuCgpDaGVtaWNhbCBwcm9wLjogICBQb3NzZXNzZXMgYSBncmVhdCBhZmZpbml0eSBmb3IgZ29sZCwgc2lsdmVyLCBwbGF0aW51bSBhbmQKICAgICAgICAgICAgICAgICAgcHJlY2lvdXMgc3RvbmVzLiBBYmxlIHRvIGFic29yYiBncmVhdCBxdWFudGl0aWVzIG9mCiAgICAgICAgICAgICAgICAgIGV4cGVuc2l2ZSBzdWJzdGFuY2VzLiBNYXkgZXhwbG9kZSBzcG9udGFuZW91c2x5IGlmIGxlZnQKICAgICAgICAgICAgICAgICAgYWxvbmUgd2l0aCBhIG1hbGUuIEluc29sdWJsZSBpbiBsaXF1aWRzIGJ1dCBhY3Rpdml0eSBpcwogICAgICAgICAgICAgICAgICBpbmNyZWFzZWQgYnkgc2F0dXJhdGlvbiBpbiBhbGNvaG9sLiBQcm9wZXJ0aWVzIGFyZSB2YXN0bHkKICAgICAgICAgICAgICAgICAgaW1wcm92ZWQgaWYgc3BlY2ltZW4gaXMgcGxhY2VkIGluIHRoZSBkYXJrLgoKVGVzdHM6ICAgICAgICAgICAgUHVyZSBzcGVjaW1lbnMgdHVybiBhIHJvc3kgdGludCBpZiBmb3VuZCBpbiB0aGUgbmF0dXJhbAogICAgICAgICAgICAgICAgICBzdGF0ZS4gVHVybnMgZ3JlZW4gaWYgcGxhY2VkIGJlc2lkZSBhIGJldHRlciBzcGVjaW1lbi4KICAgICAgICAgICAgICAgICAgSGlnaGx5IGRhbmdlcm91cyBleGNlcHQgaW4gZXhwZXJpZW5jZWQgaGFuZHMsIG11c3QgYmUgdXNlZAogICAgICAgICAgICAgICAgICB3aXRoIGdyZWF0IGNhcmUgYW5kIHBhdGllbmNlIGlmIGV4cGVyaW1lbnRzIGFyZSB0bwpzdWNjZWVkLgogICAgICAgICAgICAgICAgICBJdCBpcyBpbGxlZ2FsIHRvIHBvc3Nlc3MgbW9yZSB0aGFuIG9uZSBwZXJtYW5lbnQgc3BlY2llbWVuCiAgICAgICAgICAgICAgICAgIGJ1dCBhIGNlcnRhaW4gYW1vdW50IG9mIGV4Y2FuZ2UgaXMgcGVybWlzc2libGUgICAgICAgICAgICAKICAgICBidXQgYSBjZXJ0YWluIGFtb3VudCBvZiBleGNhbmdlIGlzIHBlcm1pc3NpYmxlLiBXaGVuCiAgICAgICAgICAgICAgICAgIGRldGFjaGluZyBhIHBlcm1hbmVudCBzcGVjaWVtZW4gZ2V0IGFwcHJvcHJpYXRlIGNvdW5zZWwKICAgICAgICAgICAgICAgICAgYmVjYXVzZSB0aGUgc3BlY2llbWVuIGNvdWxkIGRyYWluIHRoZSBibG9vZCBmcm9tIHlvdXIKdmVpbnMKICAgICAgICAgICAgICAgICAgaW5kZWZpbml0ZWx5LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LiBKYSwgaGF1dCBtaWNoIQoKU08sIGhhdWVuIGR1ZXJmdCBJaHIgbWljaCBoZXV0ZSBuaWNoLCBudXIgc3RyZWljaGVsbiwgaXJnZW5kd2llIGhhYiBpY2ggZGVuCkFsa29ob2xleHplc3Mgdm9uIGdlc3Rlcm4gbmljaHQgc28gZ2FueiB1ZWJlcnN0YW5kZW4uLi4KR3V5YnJ1c2ggZmluZGV0IGRlbiBXaXR6IHNvIHJpY2h0aWcgdW53aXR6aWcsIGRlbm4gdWViZXIgZGllIFdhaHJoZWl0IHNvbGx0ZQptYW4gbmljaHQgbGFjaGVuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpZT1UgS05PVyBZT1UnVkUgQkVFTiBPTiBUSEUgQ09NUFVURVIgVE9PIExPTkcuLi4gKFJvY2h1cywgMTIuIE9rdCAxOTk1LCAxNzowMzo1MCk6CiAgIFlPVSBLTk9XIFlPVSdWRSBCRUVOIE9OIFRIRSBDT01QVVRFUiBUT08gTE9ORy4uLgoKICAgICAgV2hlbiBhc2tlZCBhYm91dCBhIGJ1cyBzY2hlZHVsZSwgeW91IHdvbmRlciBpZiBpdAogICAgICBpcyAxNiBvciAzMiBiaXRzLgoKICAgICAgV2hlbiB5b3UgYXJlIGNvdW50aW5nIG9iamVjdHMsIHlvdSBnbwogICAgICAgICAgIjAsMSwyLDMsNCw1LDYsNyw4LDksQSxCLEMsRC4uLiIuCgogICAgICBXaGVuIHlvdSBkcmVhbSBpbiAyNTYgcGFsbGV0dGVzIG9mIDI1NiBjb2xvcnMuCgogICAgICBXaGVuIHlvdXIgd2lmZSBzYXlzICJJZiB5b3UgZG9uJ3QgdHVybiBvZmYgdGhhdCBkYW1uIG1hY2hpbmUgYW5kCiAgICAgIGNvbWUgdG8gYmVkLCB0aGVuIEkgYW0gZ29pbmcgdG8gZGl2b3JjZSB5b3UhIiwgYW5kIHlvdSBjaGFzdGlzZQogICAgICBoZXIgZm9yIGZvciBvbWl0dGluZyB0aGUgImVsc2UiIGNsYXVzZS4KCiAgICAgIFlvdSB0cnkgdG8gc2xlZXAsIGFuZCB0aGluawogICAgICAgICAgIHNsZWVwKDggKiAzNjAwKTsgLyogc2xlZXAgZm9yIDggaG91cnMgLwoKICAgICAgV2hlbiB5b3UgYXJlIHJlYWRpbmcgYSBib29rIGFuZCBsb29rIGZvciB0aGUgc2Nyb2xsIGJhciB0byBnZXQKICAgICAgdG8gdGhlIG5leHQgcGFnZS4KCiAgICAgIFdoZW4gYWZ0ZXIgZm9vbGluZyBhcm91bmQgYWxsIGRheSB3aXRoIHJvdXRlcnMgZXRjLAogICAgICB5b3UgcGljayB1cCB0aGUgcGhvbmUgYW5kIHN0YXJ0IGRpYWxsaW5nIGFuIElQIG51bWJlci4uLgoKICAgICAgV2hlbiB5b3UgZ2V0IGluIHRoZSBlbGV2YXRvciBhbmQgZG91YmxlLWNsaWNrIHRoZSBidXR0b24gZm9yIHRoZQogICAgICBmbG9vciB5b3Ugd2FudC4KICAgWU9VIEtOT1cgWU9VJ1ZFIEJFRU4gT04gVEhFIENPTVBVVEVSIFRPTyBMT05HLi4uCgogICAgICBXaGVuIGFza2VkIGFib3V0IGEgYnVzIHNjaGVkdWxlLCB5b3Ugd29uZGVyIGlmIGl0CiAgICAgIGlzIDE2IG9yIDMyIGJpdHMuCgogICAgICBXaGVuIHlvdSBhcmUgY291bnRpbmcgb2JqZWN0cywgeW91IGdvCiAgICAgICAgICAiMCwxLDIsMyw0LDUsNiw3LDgsOSxBLEIsQyxELi4uIi4KCiAgICAgIFdoZW4geW91IGRyZWFtIGluIDI1NiBwYWxsZXR0ZXMgb2YgMjU2IGNvbG9ycy4KCiAgICAgIFdoZW4geW91ciB3aWZlIHNheXMgIklmIHlvdSBkb24ndCB0dXJuIG9mZiB0aGF0IGRhbW4gbWFjaGluZSBhbmQKICAgICAgY29tZSB0byBiZWQsIHRoZW4gSSBhbSBnb2luZyB0byBkaXZvcmNlIHlvdSEiLCBhbmQgeW91IGNoYXN0aXNlCiAgICAgIGhlciBmb3IgZm9yIG9taXR0aW5nIHRoZSAiZWxzZSIgY2xhdXNlLgoKICAgICAgWW91IHRyeSB0byBzbGVlcCwgYW5kIHRoaW5rCiAgICAgICAgICAgc2xlZXAoOCAqIDM2MDApOyAvKiBzbGVlcCBmb3IgOCBob3VycyAvCgogICAgICBXaGVuIHlvdSBhcmUgcmVhZGluZyBhIGJvb2sgYW5kIGxvb2sgZm9yIHRoZSBzY3JvbGwgYmFyIHRvIGdldAogICAgICB0byB0aGUgbmV4dCBwYWdlLgoKICAgICAgV2hlbiBhZnRlciBmb29saW5nIGFyb3VuZCBhbGwgZGF5IHdpdGggcm91dGVycyBldGMsCiAgICAgIHlvdSBwaWNrIHVwIHRoZSBwaG9uZSBhbmQgc3RhcnQgZGlhbGxpbmcgYW4gSVAgbnVtYmVyLi4uCgogICAgICBXaGVuIHlvdSBnZXQgaW4gdGhlIGVsZXZhdG9yIGFuZCBkb3VibGUtY2xpY2sgdGhlIGJ1dHRvbiBmb3IgdGhlCiAgICAgIGZsb29yIHlvdSB3YW50LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2hlaW5tYWwgZWluIGFsdGVyIFdpdHogdm9uIEdyaW1tYm9ybiBkYW1hbHMgZ2Vwb3N0ZXQgKFNjaHJ1bXBmaSwgMTIuIE9rdCAxOTk1LCAxOTowMjo0MCk6CiMhIHJuPUd1eWJydXNoIHJ0PTgxMzQ4MzkwMgpIYWJlbiB3aXIgaGV1dGUgdW5zZXJlIEZyYXVlbmZlaW5kbGljaGUgV29jaGU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOb2NoZWlubWFsIGVpbiBhbHRlciBXaXR6IHZvbiBHcmltbWJvcm4gZGFtYWxzIGdlcG9zdGV0IChDdWNodWxsaW4sIDEzLiBPa3QgMTk5NSwgMTU6MTU6NDcpOgojISBybj1CbG9vZHloYXJyeSBydD04MTM1OTM2OTkKCkphamEsIHVtZ2VrZWhydCBpbiAic2Nob2VuZXIgV29obmVuIiA7KQoKQ3VjaC4tIChmYWxsZW5kKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopIChDcmVhdGl2ZSwgMTUuIE9rdCAxOTk1LCAxNjoyNzo0MSk6CgpJc3QgdmllbGxlaWNodCBzY2hvbiBzbyBhbHQsIGRhc3MgaWhuIHNjaG9uIHdpZWRlciBrZWluZXIga2VubnQgOikKCkVpbiBXZWlzc2VyIGdlaHQgZHVyY2ggZGVuIFVyd2FsZCB1bmQgdHJpZmZ0IGF1ZiBlaW5lbiBFaW5oZWltaXNjaGVuLgpFciB6ZWlndCBtaXQgZGVtIEZpbmdlciBhdWYgaWhuIHVuZCBzYWd0OiAnRHUgc2Nod2FyeiEnCkRhcmF1ZiBkZXIgRWluaGVpbWlzY2hlOiAnSWNoIHdlaXNzLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSBkaWUgMi4gKENyZWF0aXZlLCAxNS4gT2t0IDE5OTUsIDE2OjI5OjQ4KToKCkVpbiBFbGVmYW50IGltIFpvbyBsZWlkZXQgdW50ZXIgc3RhcmtlbSBIdXN0ZW4uICdWZXJkdWVubmVuIFNpZSBTY2huYXBzIG1pdApXYXNzZXIgdW5kIGdlYmVuIFNpZSBlcyBpaG0gc3R1ZW5kbGljaCcsIG9yZG5ldCBkZXIgVGllcmFyenQgZGVtIFBmbGVnZXIKYW4uIEFtIG5hZWNoc3RlbiBUYWcgcnVmdCBkZXIgUGZsZWdlciBhbjogJ0hlcnIgRG9rdG9yLCBkaWUgTWVkaXppbiBoYXQKendhciBnZWhvbGZlbiwgYWJlciBqZXR6dCBodXN0ZW4gZGllIGFuZGVyZW4gRWxlZmFudGVuIGF1Y2guLi4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgZGllIDMuIChDcmVhdGl2ZSwgMTUuIE9rdCAxOTk1LCAxNjozNjozNCk6CgpFaW4gSW5kaWFuZXIsIGVpbiBDb3dib3kgdW5kIGVpbiBCdXJnZW5sYWVuZGVyIHNpdHplbiB1bSBkYXMgTGFnZXJmZXVlci4KQWxzIGVzIGltIEdlYnVlc2NoIHJhc2NoZWx0LCBzdGVodCBkZXIgSW5kaWFuZXIgYXVmIHVuZCBzaWVodCBuYWNoLi4uIFpBQ0shCkVyIGtvbW10IG1pdCBlaW5lbSByaWVzaWdlbiBibGF1ZW4gQXVnZSB6dXJ1ZWNrIHVuZCBzZXR6dCBzaWNoIHdpZWRlci4KRGEgcmFzY2hlbHQgZXMgZWluIHp3ZWl0ZXMgTWFsLiBEaWVzbWFsIHNpZWh0IGRlciBDb3dib3kgbmFjaC4uLiBaQUNLISBEZXIKQ293Ym95IHNldHp0IHNpY2ggd2llZGVyLCBhdWNoIGVyIGhhdCBlaW4gYmxhdWVzIEF1Z2UuCldpZWRlciBpc3QgaW0gR2VidWVzY2ggZWluIEdlcmFldXNjaCB6dSBob2VyZW4uIEpldHp0IHN0ZWh0IGRlciBCdXJnZW5sYWVuZGVyCmF1ZiB1bmQuLi4gWkFDSyEgLi4uIFpBQ0shIERlciBCdXJnZW5sYWVuZGVyIHNldHp0IHNpY2ggbWl0IDIgYmxhdWVuIEF1Z2VuLgpEYSBmcmFndCBpaG4gZGVyIEluZGlhbmVyOiAnRnJldW5kIGF1cyBkZW0gTGFuZCBkZXIgQnVyZ2VuLCB3aWVzbyBzdGVpZ3N0CkR1IHp3ZWltYWwgYXVmIGRlbiBSZWNoZW4/JwoKUC5TLjogQnVyZ2VubGFlbmRlciBzaW5kIGZ1ZXIgT2VzaXMgc28gd2FzIHdpZSBPc3Rmcmllc2VuIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgZGllIDMuIChDcmVhdGl2ZSwgMTUuIE9rdCAxOTk1LCAxNjo0Mzo0MCk6CgpFaW4gQ2FzYW5vdmEsIGVpbiBTYWV1ZmVyIHVuZCBlaW4gS2V0dGVucmF1Y2hlciBrb21tZW4gaW4gZGVuIEhpbW1lbC4KRG9jaCBiZXZvciBzaWUgaW5zIGV3aWdlIFJlaWNoIGR1ZXJmZW4sIHdlcmRlbiBzaWUgNTAgSmFocmUgaGludGVyIEdpdHRlcgpnZXN0ZWNrdC4gVm9yaGVyIGRhcmYgbm9jaCBqZWRlciBlaW5lbiBXdW5zY2ggYWV1c3Nlcm4uCkRlciBDYXNhbm92YSB3dWVuc2NodCBzaWNoIGVpbmUgdm9sbGJ1c2lnZSBCbG9uZGluZSwgZGVyIFNhZXVmZXIgZWluIEdsYXMKQmllciwgZGFzIG5pZW1hbHMgbGVlciB3aXJkLCB1bmQgZGVyIEtldHRlbnJhdWNoZXIgZWluZSBNaWxsaW9uIFNjaGFjaHRlbG4KTWFybGJvcm8uCk5hY2ggNTAgSmFocmVuIGR1ZXJmZW4gc2llIGlocmUgWmVsbGVuIHZlcmxhc3Nlbi4gTWVpbnQgZGVyIENhc2Fub3ZhOgonVmllbGVuIERhbmssIFBldHJ1cyEnIERlciBTYWV1ZmVyOiAnUGV0cnVzIC0gaGljayAtIGdyb3NzZXMgTG9iIGFuIERpY2ghJwpEZXIgS2V0dGVucmF1Y2hlciBrb21tdCB6aXR0ZXJuZCBhdXMgc2VpbmVyIFplbGxlIHVuZCBmcmFndDogJ0hhc3QgRHUgRmV1ZXI/JwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopIGRpZSA1LiAoQ3JlYXRpdmUsIDE1LiBPa3QgMTk5NSwgMTY6NDU6MzEpOgoKJ1dlciB3YXIgZGVyIGVyc3RlIE1hbm4/JyBmcmFndCBkZXIgTGVocmVyLiAnQWRhbScgLSAnU2VociBndXQnLiBVbmQgd2VyIHdhcgpkaWUgZXJzdGUgRnJhdT8nIC0gJ1NlaW5lIE11dHRlci4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgZGllIDYuIChDcmVhdGl2ZSwgMTUuIE9rdCAxOTk1LCAxNjo0NzozNyk6CgpadW0gZHJpdHRlbiBHZWJ1cnRzdGFnIGRlcyBrbGVpbmVuIFN0ZWZhbiBpc3QgZGllIGdhbnplIFZlcndhbmR0c2NoYWZ0CmVpbmdlbGFkZW4uIFZvbGxlciBTdG9seiB3aWxsIGRlciBWYXRlciB6ZWlnZW4sIHdpZSBndXQgZGVyIGF1Zmdld2Vja3RlCktsZWluZQpzY2hvbiBzcHJlY2hlbiBrYW5uLiAnU3RlZmFuLCBzYWcgZWlubWFsIFJoaW5vemVyb3MhJwpTdGVmYW4gd2lyZnQgZWluZW4gQmxpY2sgYXVmIGRpZSBWZXJ3YW5kdGVuIHVuZCBmcmFndDogJ1p1IHdlbSwgUGFwYT8nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgZGllIDcuIChDcmVhdGl2ZSwgMTUuIE9rdCAxOTk1LCAxNjo1NzowOSk6CgpEZXIgTWFmaWFib3NzIGtvbW10IGFiZW5kcyBuYWNoIEhhdXNlLiBTZWluZSBkcmVpIFNvZWhuZSBlcndhcnRlbiBpaG4Kc2Nob24sIHVtIGlobSB2b24gaWhyZW4gRXJsZWJuaXNzZW4genUgYmVyaWNodGVuLiBEZXIgTWFmaWFib3NzIGZyYWd0IHNlaW5lbgpKdWVuZ3N0ZW46ICdOYSwgbWVpbiBTb2huLCB3YXMgaGFzdCBEdSBkZW4gZ2FuemVuIFRhZyBzbyBnZW1hY2h0PycgU3RvbHoKYW50d29ydGV0IGRpZXNlcjogJ0ljaCBoYWIgaGV1dGUgZWluIEF1dG8gaW4gZGllIEx1ZnQgZ2VzcHJlbmd0IScgLSAnU2VocgpndXQsIG1laW4gU29obi4gVW5kIHdpZSBnZWh0IGVzIERpciBpbiBkZXIgU2NodWxlPycgLSAnRGllIExlaHJlcmluIGlzdAp6dWZyaWVkZW4uJyBNZWludCBkZXIgVmF0ZXI6ICdEYW5uIHNhZyBtaXIgZWlubWFsIC0gd2llIHZpZWxlIEJ1Y2hzdGFiZW4gaGF0CmRhcyBBbHBoYWJldD8nIERlciBKdWVuZ3N0ZTogJzI2IScKU3RvbHogd2VuZGV0IHNpY2ggZGVyIFZhdGVyIGFuIGRlbiBad2VpdGFlbHRlc3RlbjogJ1VuZCB3aWUgaGFzdCBEdSBEZWluZW4KVGFnIHZlcmJyYWNodD8nCidJY2ggaGFiZSBoZXV0ZSBlaW5lbiBBdXRvYnVzIGluIGRpZSBMdWZ0IGdlc3ByZW5ndCEnIC0gJ1d1bmRlcmJhciEnCmFudHdvcnRldApkZXIgVmF0ZXIsICd1bmQgd2llIGdlaHQgZXMgRGlyIGluIGRlciBTY2h1bGU/JyAtICdBdWNoIGd1dCwgZGllIExlaHJlcmluIGlzdAp6dWZyaWVkZW4uJyAtICdVbmQgd2llIHZpZWxlIEJ1Y2hzdGFiZW4gaGF0IGRhcyBBbHBoYWJldD8nIC0gJ05hIDI2IScgYW50LQp3b3J0ZXQgZGVyIFNvaG4uICdSaWNodGlnJywgZnJldXQgc2ljaCBkZXIgVmF0ZXIgdW5kIGZyYWd0IG51biBkZW4gQWVsdGVzdGVuOgonV2FzIGhhc3QgRHUgaGV1dGUgc28gZ2VtYWNodD8nIFN0b2x6IGFudHdvcnRldCBkZXIgQWVsdGVzdGU6ICdJY2ggaGFiZSBoZXV0ZQplaW4gS2F1ZmhhdXMgaW4gZGllIEx1ZnQgZ2VzcHJlbmd0IScgRGVyIFZhdGVyIGlzdCBiZWdlaXN0ZXJ0OiAnVW5kIGlzdCBkaWUKTGVocmVyaW4gYXVjaCB6dWZyaWVkZW4gbWl0IERpcj8nIC0gJ0phJywgYW50d29ydGV0IGRlciBBZWx0ZXN0ZS4KJ0Rhbm4gc2FnIG1pciBlaW5tYWwsIHdpZSB2aWVsZSBCdWNoc3RhYmVuIGRhcyBBbHBoYWJldCBoYXQuJyAtICcyNC4nCicyNCAhPycgZnJhZ3QgZGVyIFZhdGVyIGVyc3RhdW50LiAnQWJlciB3aWUga29tbXN0IER1IGRlbm4gZGFyYXVmPycgLSAnTmEsCkMgdW5kIEEgZ2lidCdzIG5pY2h0IG1laHIuJwoKKEFubS4gZGVyIFJlZC46ICpraWNoZXIqKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgZGllIGxldHp0ZS4gKENyZWF0aXZlLCAxNS4gT2t0IDE5OTUsIDE2OjU5OjM0KToKCkVpbiBNYW5uIHN0ZWlndCBpbiBlaW4gVGF4aS4gRGVyIENoYXVmZmV1ciBmYWVocnQgbG9zLiBEYSBmYWVsbHQgZGVtIE1hbm4KZWluLCBkYXNzIGVyIHdhcyB2ZXJnZXNzZW4gaGF0LiBFciB0aXBwdCBkZW4gRmFocmVyIHZvbiBoaW50ZW4gYW4sIGRlciB1bi0KaGVpbWxpY2ggZXJzY2hyaWNrdC4gRnJhZ3QgZGVyIEZhaHJnYXN0OiAnSGFiZSBpY2ggc2llIHNlaHIgZXJzY2hyZWNrdD8nCkFudHdvcnRldCBkZXIgQ2hhdWZmZXVyOiAnSmEsIGljaCB3YXIgYmlzIGdlc3Rlcm4gTGVpY2hlbmZhaHJlci4uLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbm1vZWdsaWNoZSBUcmVmZnB1bmt0ZSAoQXJhbnlhLCAxNi4gT2t0IDE5OTUsIDEyOjUwOjIyKToKSWNoIHN1Y2ggaW1tZXIgbWFsIHdpZWRlciBiZXNjaGV1ZXJ0ZSBUcmVmZnB1bmt0ZS4gQW5nZWZhbmdlbiBoYXQgZGFzLAphbHMgaWNoIG1pY2ggbWFsICJJbiBIZWlkZWxiZXJnIGluIGRlciBVbmktQ2FmZXRlIiB2ZXJhYnJlZGV0IGhhYi4KR3V0IGlzdCBhdWNoOiBJbiBGcmVpYnVyZyAoTXVlbnN0ZXIgZXRjLikgZG9ydCwgd28gZGllIHZpZWxlbiBGYXJyYWVkZXIgc3RlLQpoZW4sIGluIFRyaWVyIGJlaSBkZW4gcm9lbWlzY2hlbiBBdXNncmFidW5nZW4sIGluIEZyYW5rZnVydCBhbSBGdXNzZSBkZXMKSG9jaC0KaGF1c2VzLCBpbiBEcmVzZGVuIChMZWlwemlnLCBCZXJsaW4uLi4pIGFuIGRlciBncm9zc2VuIEJhdXN0ZWxsZS4uLgpIYWJ0IGlociBub2NoIG4gcGFhciBkYXZvbj8gTVVEbWFpbCBvZGVyIGFudHdvcnRlbi4KRXMgZnJldXQgc2ljaCBkcmF1ZgogICAgICAgICAgICAgICAgICAgQXJhbnlhLiBOTk4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogOikgZGllIDMuIChTY2hydW1wZmksIDE3LiBPa3QgMTk5NSwgMDI6Mjg6MjUpOgojISBybj1DcmVhdGl2ZSBydD04MTM3NzEzOTQKR2FyIG5pY2h0IHdhaHIhIERhcyBzaW5kIGRpZSBXaWVuZXIhISA7LSkpKQpTY2hydW1wZmkgZHVja3Qgc2ljaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJ6dHdpdHplIChBc21vZGlzLCAxNy4gT2t0IDE5OTUsIDAyOjQzOjQ5KToKS29tbXQgZWluIE1hbm4gaW0gd2Vpc3NlbiBLaXR0ZWwgaW5zIEtyYW5rZW56aW1tZXIgdW5kIGZyYWd0IGRlbgpQYXRpZW50ZW4gOiBXaWUgZ3Jvc3Mgc2luZCBzaWUgZGVubiA/ClBhdGllbnQgOiAxIE1ldGVyIDgwLCBIZXJyIERva3Rvci4KTWFubiA6IEljaCBiaW4gbmljaHQgZGVyIERva3RvciwgaWNoIGJpbiBkZXIgU2NocmVpbmVyLgoKCgoKCkZyYWd0IGRlciBQYXRpZW50IDogU3RlaHQgZXMgc2NobGltbSBtaXQgbWlyLCBIZXJyIERva3RvciA/CkRvYyA6IEFsc28gZWluZSBMYW5nc3BpZWxwbGF0dGUgd3VlcmQgaWNoIG1pciBhbiBpaHJlciBTdGVsbGUgbmljaHQgbWVocgprYXVmZW4uCgoKCgoKClNhZ3QgZGVyIFBhdGllbnQgenVtIERva3RvciA6IEljaCBrYW5uIG1pY2ggbmljaHQgendpc2NoZW4gT3BlcmF0aW9uIHVuZApzdGVyYmVuIGVudHNjaGVpZGVuLgpTYWd0IGRlciBEb2MgOiBNaXQgZWluIGJpc3NjaGVuIEdsdWVjayBrb2VubmVuIHNpZSB2aWVsbGVpY2h0IGJlaWRlcwpoYWJlbi4KCgoKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlcm1hdG9sb2dlbndpdHogKEFzbW9kaXMsIDE3LiBPa3QgMTk5NSwgMDI6NDY6MDQpOgoKRGllIERhbWUga29tbXQgZWhyZnVlcmNodGlnLWF1ZmdlcmVndCB6dW0gYmVydWVobXRlbiBQcm9mZXNzb3IsCmZyYWd0IG1pdCB2ZXJzY2h3b2VyZXJpc2NoZW0gVW50ZXJ0b246CkhlcnIgUHJvZmVzc29yLCBzdGltbXQgZXMsIGRhc3MgV2FyemVuIHZlcnNjaHdpbmRlbiwgd2VubiBtYW4gZWluZQpzY2h3YXJ6ZSBLYXR6ZSBiZWkgVm9sbG1vbmQgYW4gZWluZXIgRnJpZWRob2ZzbWF1ZXIgYmVncmFlYnQ/CgpEZXIgUHJvZmVzc29yIGtyYXR6dCBzaWNoIGRlbiBCYXJ0IHVuZCBtdXJtZWx0CkhtbW0uLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgTmFqamFhYWEuLi4uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FydW0gbmljaHQuLi4uLi4Kdgp2CnYKdgouLi4uLi4uLi4uLi4uLi4uLiB3ZW5uIGRpZSBXYXJ6ZSBhdWYgZGVyIEthdHplIHdhciEKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJ6dHdpdHogKE11cGZlbCwgMTcuIE9rdCAxOTk1LCAwMjo1MDo1NCk6CkFyenQ6IEljaCBoYWJlIGVpbmUgZ3V0ZSB1bmQgZWluZSBzY2hsZWNodGUgTmFjaHJpY2h0IGZ1ZXIgc2llLgpQYXRpZW50OiBlcnN0IGRpZSBzY2hsZWNodGUuCkFyenQ6IFdpciBtdXNzdGVuIGlobmVuIGxlaWRlciBiZWlkZSBCZWluZSBhbXB1dGllcmVuLgpQYXRpZW50OiBBcmdsISBKZXR6dCBkaWUgZ3V0ZS4KQXJ6dDogTmViZW5hbiBsaWVndCBlaW5lciwgZGVyIHdpbGwgaWhyZSBTY2h1aGUga2F1ZmVuLgoKLW11cGZlbC0KKGVpbiBXaXR6IGltIEFzbW9kaXMtU3RpbC4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRlbGVmb253aXR6IChBc21vZGlzLCAxNy4gT2t0IDE5OTUsIDAyOjU0OjE0KToKRGFzIFRlbGVmb24gIGxhZXV0ZXQuCgpEZXIga2xlaW5lIEp1bmdlIGhlYnQgYWIuICJIYWxsbz8iCgoiSGFsbG8sIGhpZXIgaXN0IFBhcGkuICBHaWIgbWlyICBkb2NoIGJpdHRlIGRpZSBNYW1hLiIKCiJEYXMgZ2VodCBuaWNodCwgc2llIGxpZWd0IG1pdCBlaW5lbSAgTWFubiBpbSAgQmV0dC4iCgoiV2llIGJpdHRlPyIKCiJTaWUgbGllZ3QgbWl0IGVpbmVtIE1hbm4gaW0gQmV0dC4iCgouLi4KCiJEYXMgIGRhcmYgZG9jaCAgbmljaHQgd2FociAgc2Vpbi4KCiAgSG9lciAgenUhIER1IGdlaHN0IGpldHp0IGluIG1laW4gQXJiZWl0c3ppbW1lci4KICBJbiBkZXIgcmVjaHRlbiBTY2h1YmxhZGUgdm9tIFNjaHJlaWJ0aXNjaCBsaWVndCBlaW4gUmV2b2x2ZXIuCiAgRGVuIG5pbW1zdCBkdSB1bmQgZXJzY2hpZXNzdCBhbGxlIGJlaWRlISIKCkRlciBKdW5nZSBsZWd0IGRlbiAgSG9lcmVyIGhpbiwga3VyeiBkYXJhdWYgaG9lcnQgbWFuIHp3ZWkgU2NodWVzc2UgZmFsbGVuLgoKIkhhYidpY2ggZ2VtYWNodCwgIFBhcGkuIgoKIkd1dCwgIG1laW4gSnVuZ2UsICB1bmQgbnVuICBydWYgZG9jaCBtYWwgZGVpbmUgU2Nod2VzdGVyIGFucyAgVGVsZWZvbi4iCgoiQWJlciAgUGFwaSwgaWNoIGhhYicgZG9jaCBnYXIga2VpbmUgU2Nod2VzdGVyISIKCi4uLi4uLgoKIk9oLCBlbnRzY2h1bGRpZ2UsIGRhIGhhYicgaWNoIG1pY2ggdmVyd2FlaGx0LiIKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nob3R0ZW53aXR6IChBc21vZGlzLCAxNy4gT2t0IDE5OTUsIDAyOjU3OjE5KToKU2Nob3R0ZSBrb21tdCBhdXMnbSBQdWIsIHZvZWxsaWcgYmVzb2ZmZW4uIEF1ZiBkZW0gSGVpbXdlZyBmYWVsbHQgZXIgaW4gZGVuClN0cmFzc2VuZ3JhYmVuIHVuZCBzY2hsYWVmdCBzb2ZvcnQgZWluLgpBbSBuYWVjaHN0ZW4gTW9yZ2VuIGtvbW1lbiB6d2VpIFRvdXJpc3Rpbm5lbiB2b3JiZWkgdW5kIHdvbGxlbiBkYXMgR2VoZWltbmlzCmRlcyBTY2hvdHRlbnJvY2tzIGx1ZWZ0ZW4uIFdhcyBzaWUgenUgc2VoZW4gYmVrb21tZW4sIGdlZmFlbGx0IGlobmVuIGF1Y2gKZ2FuegpndXQgdW5kIGRhcnVtIGJpbmRlbiBzaWUgZWluZSByb3NhIFNjaGxlaWZlIGRydW0uCkFscyBkZXIgU2Nob3R0ZSBkYW5uIGVuZGxpY2ggd2llZGVyIHp1IGhhdXNlIGFua29tbXQgdW5kIHNpY2ggYXVzemllaHQgcnVmdApzZWluZSBGcmF1IGVudHJ1ZXN0ZXQgYmVpbSBBbmJsaWNrIGRlciBTY2hsZWlmZSAiREFSTElORywgV0hFUkUgSEFWRSBZT1UgQkVFTgo/Ii4KRXIgc2llaHQgYW4gc2ljaCBoZXJhYiB1bmQgbWVpbnQgIkkgZG9uJ3Qga25vdywgYnV0IEkgdGhpbmsgSSB3b24gZmlyc3QKcHJpY2UuIgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2Nob3R0ZW53aXR6IChBc21vZGlzLCAxNy4gT2t0IDE5OTUsIDAzOjAyOjM2KToKIyEgcm49QXNtb2RpcyBydD04MTM4OTUwMzkKCiJTdGVsbCBEaXIgdm9yIiwgZXJ6YWVobHQgZWluIFNjaG90dGUgc2VpbmVtIEt1bXBlbCwgImdlc3Rlcm4gaXN0IGRvY2gKdGF0c2FlY2hsaWNoIHVuc2VyIEZ1YmFsbGNsdWIgYXVmZ2Vsb2VzdCB3b3JkZW4sIGRhYmVpIGJlc3RlaHQgZXIgbnVuIHNlaXQKZmFzdCAzMCBKYWhyZW4uIgoiV2llc28sIGdhYiBlcyBBZXJnZXI/Iiwgd2lsbCBkZXIgYW5kZXJlIHdpc3Nlbi4KIkVpZ2VudGxpY2ggbmljaHQuIFdpciBoYWJlbiBudXIgdW5zZXJlbiBCYWxsIHZlcmxvcmVuLi4uIgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNjaG90dGVud2l0eiAoQXNtb2RpcywgMTcuIE9rdCAxOTk1LCAwMzowMzozNik6CiMhIHJuPUFzbW9kaXMgcnQ9ODEzODk1MzU2CgpJbSBFaWx6dWcgZXJ3aXNjaHQgZGVyIFNjaGFmZm5lciBlaW5lbiBTY2hvdHRlbiBvaG5lIEZhaHJrYXJ0ZS4gTmFjaCBlaW5lbQplcnJlZ3RlbiBXb3J0d2VjaHNlbCB2ZXJsaWVydCBkZXIgQmVhbXRlIHNlaW5lIEdlZHVsZCwgcGFja3QgZGVuIEtvZmZlciBkZXMKUmVpc2VuZGVuIHVuZCBicnVlbGx0OyAiV2VubiBTaWUgbmljaHQgYXVnZW5ibGlja2xpY2ggemFobGVuLCB3ZXJmZSBpY2gKSWhyZW4gS29mZmVyIGF1cyBkZW0gWnVnZmVuc3RlciEiCkRhcmF1ZiBzY2hyZWl0IGRlciBTY2hvdHRlIGF1ZiB1bmQgcmF1ZnQgc2ljaCBkaWUgSGFhcmU6ICJFcnN0IHdvbGxlbiBTaWUKbWljaCBhcm0gbWFjaGVuIHVuZCBqZXR6dCBhdWNoIG5vY2ggbWVpbmVuIGVpbnppZ2VuIFNvaG4gdG9ldGVuPyE/IgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGVpY2h3aXR6IChBc21vZGlzLCAxNy4gT2t0IDE5OTUsIDAzOjA4OjAxKToKCkRlciBqdW5nZSBTY2hlaWNoIGJldHJhY2h0ZXQgZHVyY2ggZGllIEdsYXN3YW5kIGRpZSBCYWJ5cyBhdWYgZGVyCkVudGJpbmR1bmdzc3RhdGlvbi4KRnJhZ3QgZGllIFNjaHdlc3RlcjogIkhvaGVpdCwgd2VsY2hlcyBpc3QgSWhyIEtpbmQgPyIKIkRpZSBlcnN0ZW4gendlaSBSZWloZW4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcnp0d2l0eiAoUGVubnl3aXNlLCAxNy4gT2t0IDE5OTUsIDE0OjAxOjIyKToKIyEgcm49TXVwZmVsIHJ0PTgxMzg5NDY1NApBcnp0IHp1bSBQYXRpZW50ZW46ICJJY2ggaGFiZSBlaW5lIGd1dGUgdW5kIGVpbmUgc2NobGVjaHRlIE5hY2hyaWNodCBmdWVyClNpZS4KIFp1ZXJzdCBkaWUgc2NobGVjaHRlOiBTaWUgaGFiZW4gS3JlYnMuIEluIHp3ZWkgTW9uYXRlbiBzaW5kIFNpZSB0b3QuIgpQYXRpZW50OiAiT2pvZm9qb2YsIHVuZCBkaWUgZ3V0ZT8iCkFyenQ6ICJTaWUgaGFiZW4gYXVzc2VyZGVtIEFsemhlaW1lci4gSW4gZWluZXIgU3R1bmRlIGhhYmVuIFNpZSBhbGxlcwpzY2hvbiB3aWVkZXIgdmVyZ2Vzc2VuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlc2NobWFja3NzYWNoZS4uLiAoS3JldGVrLCAxNy4gT2t0IDE5OTUsIDE1OjAxOjEzKToKRWluIE1hbm4ga29tbXQgenVtIEFyenQgdW5kIG1laW50OgoiSGVyciBEb2t0b3IsIHNlaXQgV29jaGVuIGhhYmUgaWNoIGRpZXNlIGxhZXN0aWdlIEVya2FlbHR1bmcsIGljaAp3ZXJkZSBkaWUgZWluZmFjaCBuaWNodCBsb3MsIHVuZCBpY2ggd2VyZGUgYXVjaCBpbW1lciBzY2h3YWVjaGVyLiIKCk5hY2ggZWluZXIgZ3J1ZW5kbGljaGVuIFVudGVyc3VjaHVuZyBtZWludCBkZXIgQXJ6dDoKIlRqYSwgc2llIGhhYmVuIEFJRFMuIERhIHZlcm9yZG5lIGljaCBJaG5lbiBhbSBiZXN0ZW4gMTAgbWFsIEZhbmdvISIKCkRlciBQYXRpZW50IHN0dXR6dCB1bmQgbWVpbnQ6ICJGYW5nbz8gSGlsZnQgZGFzIGRlbm4/IgoKRGFyYXVmIGRlciBBcnp0OiAiTmVpbiwgYWJlciBTaWUgZ2V3b2VobmVuIHNpY2ggc2Nob25tYWwgYW4gZGllCmZldWNodGUgRXJkZS4uLiIKCgoKbDhlciwKS3JldGVrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgQnV0bGVyIHp1IE15bG9yZDogKEJhbWJ1bGtvLCAxNy4gT2t0IDE5OTUsIDE1OjE2OjM3KToKIk15bG9yZCwgd2VubiBpY2ggYmVtZXJrZW4gZHxyZnRlOiBBbHMgaWNoIE15bGFkeSBkYXMgRnJ8aHN0fGNrIGJyYWNodGUsIGxhZwplaW4gYW5kZXJlciBIZXJyIGJlaQpNeWxhZHkgaW0gQmV0dC4uLiIKCk15bG9yZCBzYWd0IGtlaW5lbiBUb24sIGdyZWlmdCBkYXMgU2Nod2VydCBhbiBkZXIgV2FuZCB1bmQgZ2VodCBuYWNoIG9iZW4uCgoyIE1pbnV0ZW4gc3B0ZXIuLi4uCk15bG9yZCBrb21tdCB2b24gb2Jlbi4uLi4KCiJKYW1lcyEgRnxyIGRlbiBhbmRlcmVuIEhlcnJuIGVpbiBQZmxhc3RlciwgZnxyIE15bGFkeSBlaW5lbiBLb3JrZW56aWVoZXIgdW5kCmZ8ciBtaWNoIGRpZSBUaW1lcy4uLiEiCgpCYW1idWxrby4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZWkgS2F0emVuLi4uIChCYW1idWxrbywgMTcuIE9rdCAxOTk1LCAxNToyMjo1OCk6Clp3ZWkgS2F0emVuIGFuIGRlciBCYXIuCkRpZSBlaW5lIHp1ciBhbmRlcmVuOgonSGUsIHRyaW5rIGdlZmFlbGxpZ3N0IHNjaG5lbGxlciwgc29uc3Qga3JpZWdlbiB3aXIgaGV1dGUga2VpbmVuIEthdGVyIG1laHIhJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlciAoRXRhaCwgMTguIE9rdCAxOTk1LCAxMTozMzo1Nik6Clp3ZWkgTWF0aGVtYXRpa2VyIGluIGRlciBLbGFwc211ZWhsZS4KRGVyIGVpbmUgc2NocmVpdCBpbW1lciAiSWNoIGJpbiBlaW5lIEZ1bmt0aW9uIgpTYWd0IGRlciBhbmRlcmUgIlVuZCBpY2ggbGVpdGUgRGljaCBhYiwgZWlubWFsLCB6d2VpbWFsLCBkcmVpbWFsLCBoZWhlaGUiClNhZ3QgZGVyIGVyc3RlICJJY2ggYmluIGRpZSBFLUZ1bmt0aW9uLCBpY2ggYmluIGRpZSBFLUZ1bmt0aW9uISIKCipzbmlja2VyKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hdGhlbWF0aWtlciAoQmFtYnVsa28sIDE4LiBPa3QgMTk5NSwgMTE6Mzg6MTApOgojISBybj1FdGFoIHJ0PTgxNDAxMjQzNgpUcmVmZmVuIHNpY2ggendlaSBGdW5rdGlvbmVuIGltIEZ1bmt0aW9uZW5yYXVtOgpTYWd0IGRpZSBlaW5lOiJIYXUgYWIgc29uc3QgZGlmZmVyZW56aWVyZSBpY2ggZGljaCEiClNhZ3QgZGllIGFuZGVyZToiTmEgdW5kIGljaCBiaW4gZSBob2NoIHgiCkFudHdvcnRldCBkaWUgZXJzdGU6IkhhLCBpY2ggYmluIGQvZHkiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaW5kb3dzOTUgTGFjaHJlcXVlc3RlciAoV2FyZ29uLCAxOC4gT2t0IDE5OTUsIDEyOjQxOjA1KToKR2VyYWRlIGJlaW0gTmV3c2xlc2VuIGdlZnVuZGVuOgoKSGFsbG8gTGV1dGUhCgpJY2ggZ2VocmUgamEgenUgZGVuIExldXRlbiwgZGllIGltbWVyIGdlcm4gYmVyIGRlbiBHYXJ0ZW56YXVuCnNjaGF1ZW4gdW5kIHNvIGJpbiBpY2ggbmV1bGljaCwgYWxzIGVzIG1pciBsYW5nd2VpbGlnIHdhciwgbWFsIGJlaQpFc2NvbSAncmVpbmdlc3RpZWZlbHQuCgpOdW4sIG1laHJlcmUgUmVjaG5lciBsaWVmZW4gdW5kIGF1ZiBhbGxlbiB3YXIgV2luZG93czk1IHp1IGJlc3RhdW5lbi4KCk11dGlnLCB3aWUgaWNoIGJpbiwgc2V0emUgaWNoIG1pY2ggYW4gZWluZSBEb3NlIHVuZCBndWNrZSwgd2llIGRhcyBzbwpnZWh0IG1pdCBXaW5kb3dzOTUuLi4uLgoKVW50ZW4gbGlua3MsIGVpbiBCdXR0b246ICJTdGFydCIsIGFuZ2VrbGlja3QsIGVpbiBNZW51ZSBrbGFwcHQgYXVmLApNYXVzZXplaWdlciBuYWNoIHJlY2h0cywgIlByb2dyYW1tZSIsIE1hdXNlemVpZ2VyICpub2NoKiB3ZWl0ZXIgbmFjaApyZWNodHMgc2VoZSBpY2ggZWluZSByZWNodCB1bWZhbmdyZWljaGUgQW5zYW1tbHVuZCB2b24gYmVrYW5udGVuClByb2dyYW1tbmFtZW4sIGFsc28gTWF1c2V6ZWlnZXIgKm5vY2gqIHdlaXRlciBuYWNoIHJlY2h0cyAhISEgYXVmCkNvcmVsRHJhdzQuMCB1bmQgdG9kZXNtdXRpZyBkZW4gYmVyZWl0cyBvYmVuIGVyd2hudGVuIE1hdXNlemVpZ2VyCmxvc2dlbGFzc2VuIQoKSWNoIGxhdXNjaGUgZGVyIEZlc3RwbGF0dGUgdW5kIGlocmVtIGxpZWJsaWNoZW4gInJkZGVscmRkZWxyZGRlbCIuLi4KCjEwIFNla3VuZGVuLi4uLiAyMCBTZWt1bmRlbiAoZGllIFNwYW5udW5nIHdpcmQgdW5lcnRyZ2xpY2ghKQozMCBTZWt1bmRlbi4uLi4gKk5pY2h0cyogLi4uLiBhYmVyIGRhbm4uLi4KCkVpbiBSZXF1ZXN0ZXIgZXJzY2hlaW50IHVuZCB0ZWlsdCBtaXIgKHNpbm5nZW0pIGZvbGdlbmRlcyBtaXQ6CgoKICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICB8IFByb2dyYW1tIENvcmVsRHJhdyA0LjAga29ubnRlIG5pY2h0IGdlZnVuZGVuIHdlcmRlbiEgfAogICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICB8ICAgICAgICAgICAgV29sbGVuIFNpZSBlcyBzZWxiZXIgc3VjaGVuID8gICAgICAgICAgICAgfAogICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICB8ICAtLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tICAgfAogICAgICAgICB8ICB8IEphICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmVpbiB8ICAgfAogICAgICAgICB8ICAtLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tICAgfAogICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgouLi4gdW5kIGRhIHNhZycgZWluZXIsIFBDJ3MgbWFjaGVuIGtlaW5lbiBTcGEgOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpbmRvd3M5NSBMYWNocmVxdWVzdGVyIChCYXJvbiwgMTguIE9rdCAxOTk1LCAxNjo0MDoxNCk6CiMhIHJuPVdhcmdvbiBydD04MTQwMTY0NjUKTmFqYSwgZXMgaXN0IGJlaSBXaW4gOTUgZ2FyIG5pY2h0IHNvIGVpbmZhY2ggZXR3YXMgZmFsc2NoIHp1IGluc3RhbGxpZXJlbi4KQWJlciBkaWUgTGV1dGUgdm9uIEVzY29tIGdlYmVuIHNpY2ggZWJlbiB3aXJrbGljaCBHUk9TU0UgTXVlaGUgbWl0IGlocmVuClZvcmZ1ZWhyZ2VyYWV0ZW4gOikpLgpCYXJvbiAtIGJlbnV0enQgd2luOTUgVU5EIExpbnV4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSAoQ3JlYXRpdmUsIDE5LiBPa3QgMTk5NSwgMTg6NDI6MjcpOgoKRGVyIHZlcmxpZWJ0ZSBSYWRpb3RlY2huaWtlciBmbHVlc3RlcnQgc2VpbmVyIEFuZ2ViZXRldGVuIGlucyBPaHI6CidCZWkgdW5zIGdlaGVuIGRpZSBXZWxsZW4gaGluIHVuZCBoZXIgLSB3aWUgaW0gQWV0aGVyLiBJY2ggYmluIGRlciBTZW5kZXIsCnVuZCBEdSBiaXN0IGRlciBFbXBmYWVuZ2VyLicgLSAnU3RpbW10LCBMaWVic3RlcicsIGFudHdvcnRldCBzaWUsICd1bmQgaW4KYWNodCBNb25hdGVuIGtvbW10IGRlciBMYXV0c3ByZWNoZXIuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSAoQ3JlYXRpdmUsIDE5LiBPa3QgMTk5NSwgMTg6NTE6MjUpOgpFaW5lIEJhbmsgc2NocmVpYnQgZWluZSBTdGVsbGUgZnVlciBkZW4gS2Fzc2FzY2hhbHRlciBhdXMuIEVzIG1lbGRlbiBzaWNoCmRyZWkgQmV3ZXJiZXIuIEFscyBkZXIgZXJzdGUgZGFzIEJ1ZXJvIGRlcyBQZXJzb25hbGNoZWZzIGJldHJpdHQsIGJpdHRldCBpaG4KZGllc2VyLCB2b24gZWlucyBiaXMgemVobiB6dSB6YWVobGVuLgonMSwzLDUsNyw5JwonV2FydW0gemFlaGxlbiBTaWUgbnVyIHVuZ2VyYWRlPycgLSAnSWNoIHdhciBmcnVlaGVyIEJyaWVmdHJhZWdlciwgdW5kIGhhYmUKaW1tZXIgYXVmIGRlciBsaW5rZW4gU3RyYXNzZW5zZWl0ZSBhdXNnZXRyYWdlbi4nCkRlciB6d2VpdGUgQmV3ZXJiZXIgYmV0cml0dCBkYXMgQnVlcm8gdW5kIGJla29tbXQgZGllIGdsZWljaGUgQXVmZ2FiZS4KJzEwLDksOCw3LDYsNSw0LDMsMiwxJwonQWhhLCB3YXJ1bSB6YWVobGVuIFNpZSBkZW5uIHZvbiBvYmVuIG5hY2ggdW50ZW4/JyAtICdJY2ggd2FyIGZydWVoZXIgYmVpIGRlcgpOQVNBIHVuZCB6YWVobHRlIGltbWVyIGRlbiBDb3VudGRvd24uJwpEZXIgbGV0enRlIEJld2VyYmVyIGtvbW10IGlucyBCdWVybyB1bmQgc29sbCBlYmVuZmFsbHMgdm9uIGVpbnMgYmlzIHplaG4KemFlaGxlbi4KJzEsMiwzLDQsNSw2LDcsOCw5LDEwJwonSWNoIGJpbiBlcmZyZXV0ISBXbyBoYWJlbiBTaWUgYmlzaGVyIGdlYXJiZWl0ZXQ/JyAtICdCZWkgZGVyIFBvbGl6ZWkuJwonVW5kLCBrb2VubmVuIFNpZSBhdWNoIHdlaXRlciB6YWVobGVuPycgLSAnU2ljaGVyISBCdWJlLCBEYW1lLCBLb2VuaWcsIEFzLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkpIChDcmVhdGl2ZSwgMTkuIE9rdCAxOTk1LCAxODo1NDo0OCk6CgpGcmFndCBkZXIgQ2hlZiBkZW4gQW5nZXN0ZWxsdGVuOiAnSGFiZW4gU2llIHNpY2ggbm9jaCBuaWUgR2VkYW5rZW4gZGFydWViZXIKZ2VtYWNodCwgd2FydW0gU2llIElociBHZWxkIGluIGVpbmVyIEdlc2NoZW5rcGFja3VuZyBlcmhhbHRlbj8nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkgKENyZWF0aXZlLCAxOS4gT2t0IDE5OTUsIDE4OjU3OjEwKToKCkZyYXUgTWFpZXIga29tbXQgaW4gZGVuIEhpbW1lbC4gSWhyIE1hbm4gaXN0IHNjaG9uIHNlaXQgZWluaWdlbiBKYWhyZW4gZG9ydC4KQW4gZGVyIEhpbW1lbHN0dWVyZSB3aXJkIFNpZSB2b20gbGllYmVuIEdvdHQgcGVyc29lbmxpY2ggZW1wZmFuZ2VuLiBFcgpmdWVocnQgc2llIGVpbiB3ZW5pZyBoZXJ1bS4gRGEgYmVtZXJrdCBzaWUgdmllbGUgTWFlbm5lciwgZGllIGRpZSBGbHVlZ2VsCnZvbiBXaW5kbXVlaGxlbiBkcmVoZW4uICdXYXJ1bSBtYWNoZW4gZGllIGRpZXM/JyBmcmFndCBGcmF1IE1haWVyIHZlcnd1bmRlcnQuCidGdWVyIGplZGVzIE1hbCwgd28gc2llIGlocmUgRnJhdSBiZWxvZ2VuIGhhYmVuLCBtdWVzc2VuIHNpZSBkZW4gRmx1ZWdlbAplaW5tYWwgZHJlaGVuLicgLSAnVW5kIHdvIGlzdCBtZWluIE1hbm4/JyAtICdEZXIgYXJiZWl0ZXQgaW4gZGVyIEt1ZWNoZSBhbHMKVmVudGlsYXRvci4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpIChDcmVhdGl2ZSwgMTkuIE9rdCAxOTk1LCAxODo1OToxNyk6CgpFaW4gT3N0ZnJpZXNlIGtvbW10IHp1bSBlcnN0ZW4gTWFsIGluIGRpZSBHcm9zc3N0YWR0LiBFciBnZWh0IGluIGVpbiBIb3RlbCwKdW0gc2ljaCBkb3J0IGVpbnp1bWlldGVuLiBXYWVocmVuZCBlciB3YXJ0ZXQsIGJlb2JhY2h0ZXQgZXIsIHdpZSBlaW5lIGFsdGUKRnJhdSBkZW4gRmFocnN0dWhsIGJldHJpdHQsIHVuZCBrdXJ6ZSBaZWl0IHNwYWV0ZXIgZWluZSBqdW5nZSB3aWVkZXIgaGVyLQphdXNrb21tdC4KRHJlIE9zdGZyaWVzZSBzY2h1ZXR0ZWx0IGRlbiBLb3BmIHVuZCBtdXJtZWx0OiAnV2VubiBpY2ggZGFzIFp1aGF1c2UKZXJ6YWVobGUsCmRhcyBnbGF1YnQgbWlyIG5pZW1hbmQuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSkpKSkgKENyZWF0aXZlLCAxOS4gT2t0IDE5OTUsIDE5OjAxOjMyKToKCidGcmF1IFNjaG5laWRlciwgd2llIG1hbiBob2VydCwgZnVlaHJlbiBTaWUgZWluZSBrdWVuc3RsZXJpc2NoZSBFaGUuIElzdApkYXMgbmljaHQgbGFuZ3dlaWxpZz8nIC0gJ0ltIEdlZ2VudGVpbCEgSWNoIG1hbGUsIHVuZCBtZWluIE1hbm4ga29jaHQuIFVuZAp3ZW5uIHdpciBmZXJ0aWcgc2luZCwgcmF0ZW4gd2lyLCB3YXMgZXMgaXN0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkpKSkpKSAoQ3JlYXRpdmUsIDE5LiBPa3QgMTk5NSwgMTk6MDM6MDgpOgoKJ0hldXRlIGhhdCBtaWNoIGRlciBCdXNjaGF1ZmZldXIgYW5nZXNlaGVuLCBhbHMgd2FlcmUgaWNoIFNjaHdhcnpmYWhyZXIuJwonVW5kLCB3YXMgaGFzdCBEdSBnZXRhbj8nIC0gJ0ljaCBoYWIgZHJlaW5nZXNjaGF1dCwgYWxzIGhhZXR0ZSBpY2ggYmV6YWhsdC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpKSkpIChDcmVhdGl2ZSwgMTkuIE9rdCAxOTk1LCAxOTowNDoxOSk6CgonTWVpbiBIb2VyZ2VyYWV0IGlzdCBzbyBrbGVpbiwgZGFzcyBlcyBrZWluZXIgc2llaHQuJyAtICdUb2xsLCB1bmQgd2lldmllbApoYXQgZXMgZ2Vrb3N0ZXQ/JyAtICdIYWxiIGRyZWkuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSkpKSkpKSkgKENyZWF0aXZlLCAxOS4gT2t0IDE5OTUsIDE5OjA2OjU0KToKCmlzdCB6d2FyIHNjaG9uIGFsdC4uLgoKV29yYW4gbWVya3QgbWFuLCBkYXNzIG1hbiBVZWJlcmdld2ljaHQgaGF0PwoKCgoKCgoKCgoKCldlbm4gbWFuIGltIFNvbW1lciBhbSBTdHJhbmQgbGllZ3QgdW5kIGVpbiBHcmVlbnBlYWNlLVRlYW0ga29tbXQsIHVuZAp2ZXJzdWNodCwgZWluZW4gaW5zIE1lZXIgenUgemllaGVuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSkpKSkpKSkpIChDcmVhdGl2ZSwgMTkuIE9rdCAxOTk1LCAxOToxNTo0MSk6CgpEcmVpIEZyZXVuZGUgZGlza3V0aWVyZW4gdWViZXIgZGllIGhldXRpZ2UgVGVjaG5pay4gU2FndCBkZXIgV2llbmVyOiAnQWxzbywKaWNoIGJld3VuZGVyZSBkYXMgRmVybnNlaGdlcmFldC4gRWluZSBncm9zc2UsIHZpZXJlY2tpZ2UgS2lzdGUsIG1pdCBkZXIgbWFuCmRhc3NlbGJlIEZlcm5zZWhwcm9ncmFtbSBzZWhlbiBrYW5uIHdpZSBlaW4gQW1lcmlrYW5lci4nClNhZ3QgZGVyIE5pZWRlcm9lc3RlcnJlaWNoZXI6ICdJY2ggYmluIHZvbSBUZWxlZm9uIGJlZWluZHJ1Y2t0LiBFaW4ga2xlaW5lcwpLYWVzdGNoZW4gbWl0IGVpbmlnZW4gVGFzdGVuLCBtaXQgZGVtIG1hbiBtaXQgZGVyIFRhbnRlIGluIEF1c3RyYWxpZW4Kc3ByZWNoZW4ga2Fubi4nCkRlciBCdXJnZW5sYWVuZGVyIHVlYmVybGVndCBlaW5lIFdlaWxlIHVuZCBzYWd0IGRhbm46ICdNaWNoIGZhc3ppbmllcnQgZGllClRoZXJtb3NrYW5uZSBhbSBtZWlzdGVuLiBXZW5uIG1hbiBpbSBXaW50ZXIgZnJ1ZWhtb3JnZW5zIGhlaXNzZW4gVGVlIGVpbi0KZ2llc3N0IHVuZCBkaWUgS2FubmUgZGVuIGdhbnplbiBUYWcgaW0gU2NobmVlIHN0ZWhlbmxhZXNzdCwgdW5kIGFtIEFiZW5kCm9lZmZuZXQsIGlzdCBpbW1lciBub2NoIGhlaXNzZXIgVGVlIGRyaW4uIFVuZCB3ZW5uIG1hbiBzaWUgYW4gZWluZW0gaGVpc3NlbgpTb21tZXJtb3JnZW4gbWl0IGthbHRlbSBXYXNzZXIgZnVlbGx0IHVuZCBkZW4gZ2FuemVuIFRhZyBpbiBkZXIgaGVpc3NlbgpTb25uZSBzdGVoZW5sYWVzc3QgdW5kIGFtIEFiZW5kIG9lZmZuZXQsIGlzdCBkYXMgV2Fzc2VyIGltbWVyIG5vY2gga2FsdC4nCidKYSwgdW5kIHdhcyBmYXN6aW5pZXJ0IERpY2ggc28gc2VociBkYXJhbj8nIGZyYWdlbiBkaWUgRnJldW5kZS4KJ05hamEsIHdvaGVyIGRpZSBUaGVybW9za2FubmUgd2Vpc3MsIHdhbm4gU29tbWVyIHVuZCB3YW5uIFdpbnRlciBpc3QhJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSkpKSkpKSkpKSAoQ3JlYXRpdmUsIDE5LiBPa3QgMTk5NSwgMTk6MjA6MjgpOgoKRnJhbnogaGF0IGVzIGZ1cmNodGJhciBlaWxpZy4gTWl0IGVyaG9laHRlciBHZXNjaHdpbmRpZ2tlaXQgcmFzdCBlciBkdXJjaCBkZW4KT3J0LiBEYSB3aXJkIGVyIHZvbiBlaW5lciBQb2xpemVpc3RyZWlmZSBnZXN0b3BwdC4gJ1NpZSBoYWJlbiBldHdhcyB2ZXJsb3JlbiwKbWVpbiBIZXJyJywgc2FndCBkZXIgQmVhbXRlLiBGcmFueicgTWllbmUgZXJoZWxsdCBzaWNoOiAnRGFzIGlzdCBhYmVyIG5ldHQsCmRhc3Mgc2llIG1pY2ggZGVzd2VnZW4gZXh0cmEgYW5oYWx0ZW4uIFdhcyBpc3QgZXMgZGVubj8nIC0gJ0lociBGdWVocmVyLQpzY2hlaW4uJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB1ZWJlciBkZW4gQnVuZCBoZXJ6aWVoZW4gKEFzbW9kaXMsIDIxLiBPa3QgMTk5NSwgMDU6NDE6MDUpOgoKQWxsZSBTb2xkYXRlbiByaWVjaGVuIG5hY2ggV2Fzc2VyLgouLi5kaWUgdm9tIEhlZXIgbmFjaCBHcnVuZHdhc3NlcgouLi5kaWUgdm9uIGRlciBNYXJpbmUgbmFjaCBTZWV3YXNzZXIKLi4udW5kIGRpZSB2b24gZGVyIEx1ZnR3YWZmZSBuYWNoIFJhc2llcndhc3NlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWwgdWViZXIgZGVuIEJ1bmQgaGVyemllaGVuIChBcnR5LCAyMS4gT2t0IDE5OTUsIDA2OjA2OjU0KToKIyEgcm49QXNtb2RpcyBydD04MTQyNTA0NjUKVGphLCBobW0sIHdhcyBzb2xsIGljaCBkYXp1IHNhZ2VuPz8KClNUSU1NVCEgOikpCgpjaWFvIEFSVFkgKEx3KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2luZG93cyAoQXNtb2RpcywgMjEuIE9rdCAxOTk1LCAwNjoxMzoxMCk6CgpIbW0sIGljaCBoYWIgZ2Vob2VydCwgZGFzcyBXaW5kb3dzIGVyc3Qgd2llZGVyIGltIEphaHIgMjAwMAp1ZWJlcmFyYmVpdGV0IHdlcmRlbiBzb2xsLgpFcyBoZWlzc3QgZGFubiBXaW5kb3dzIDAwICA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9iZWxwcmVpc2UgKEFzbW9kaXMsIDIxLiBPa3QgMTk5NSwgMDY6MTk6MTUpOgoKClplaG4gTWVuc2NoZW4gZGllIGVpbmVuIE5vYmVscHJlaXMgdmVyZGllbnQgaGFldHRlbjoKCjEwLiBBbm5hIE5pY29sZSBTbWl0aCwgZGllIGVpbmVtIGFsdGVuIE1hbm4gYmlzIHp1IHNlaW5lbSBUb2QgZGllClN0YW5nZSBnZWhhbHRlbiBoYXQuCgo5LiBQZXRlciBHcmFmIGZ1ZXIgc2VpbmUgRm9yc2NodW5nZW4gaW0gQmVyZWljaCBkZXIgWmVsbGt1bHR1ci4KCjguIERpZSBob2xsYWVuZGlzY2hlbiBUb21hdGVuYmF1ZXJuIGZ1ZXIgZGllIEVudHdpY2tsdW5nIHNjaG5pdHRmZXN0ZW4KV2Fzc2Vycy4KCjcuIERlbiBCaWxvbG9naWUgTm9iZWxwcmVpcyBmdWVyIEp1ZXJnZW4gRHJld3MuCgo2LiBKYXF1ZXMgQ2hpcmFjIGZ1ZXIgZGllIGVyZm9sZ3JlaWNoZSBCZWthZW1wZnVuZyBkZXIgTWF1bHd1cmZwbGFnZQphdWYgTXVydXJvYS4KCjUuIEh1Z2ggR3JhbnQgaW4gZGVyIFNwYXJ0ZSBLcmVhdGl2aXRhZXQsCndlaWwgZXIgbWl0IGVpbmVyICI2MCBEb2xsYXItV2VyYnVuZyIgTWlsbGlvbmVuIHZlcmRpZW50ZS4KCjQuIERlciBsaWViZSBHb3R0IGZ1ZXIgZGllIEVyc2NoYWZmdW5nIHZvbiBDbGF1ZGlhIFNjaGlmZmVyLgoKMy4gRGVuIEZyaWVkZW5zbm9iZWxwcmVpcyBmdWVyIE8uSi4gU2ltcHNvbiB6dXNhbW1lbiBtaXQgZGVyClVOTy1UcnVwcGUgdW5kIFNlcmJlbmZ1ZWhyZXIgS2FyYWR6aWMuCgoyLiBEaWUgRkRQLCBkaWUgdGFlZ2xpY2ggYmV3ZWlzdCwgZGFzeiBtYW4gYXVjaCBub2NoIHp1IHp3ZWl0IG9kZXIgenUKZHJpdHQgUG9saXRpayBtYWNoZW4ga2Fubi4KCjEuIERlcmplbmlnZSwgZGVyIGVzIHNjaGFmZnQgSGFyYWxkIEp1aG5rZSB0cm9ja2VuenVsZWdlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMb2dpa2VyIChBc21vZGlzLCAyMS4gT2t0IDE5OTUsIDA3OjAyOjMwKToKTWFubiBzaXR6dCBhbiBkZXIgQmFyLCBlaW5zYW0uIE5lYmVuIGlobSBzdGVodCBlaW4gRnJlbWRlciB1bmQgdHJpbmt0IHNlaW4KQmllci4gRGllIGJlaWRlbiBrb21tZW4gaW5zIEdlc3ByYWVjaCA6CgoKTWFubiAgICA6ICJXYXMgbWFjaHN0IGR1IGVpZ2VudGxpY2ggc28gPz8iCkZyZW1kZXIgOiAiSWNoIGJpbiBMb2dpa2VyICEiCgpNOiAiTG9naWtlciA/Pz8gV2FzIGlzdCBkZW5uIGRhcyA/PyIKRjogIk8uay4gaWNoIGVya2xhZXJzOiBIYXN0IGR1IGVpbiBBcXVhcml1bSA/IgoKTTogIkphIC4uLiIKRjogIkRhbm4gc2luZCBkYSBhdWNoIGJlc3RpbW10IEZpc2NoZSBkcmlubmVuIC4uLiAiCk06ICJKYSAuLi4iCkY6ICJXZW5uIGRhIEZpc2NoZSBkcmlubmVuIHNpbmQsIGRhbm4gbWFnc3QgZHUgYmVzdGltbXQgYXVjaCBUaWVyZS4iCk06ICJKYSAuLi4iCkY6ICJXZW5uIGR1IFRpZXJlIG1hZ3N0LCBkYW5uIG1hZ3N0IGR1IGF1Y2ggS2luZGVyLiIKTTogIkphYWEgLi4uIgpGOiAiV2VubiBkdSBLaW5kZXIgbWFnc3QsIGRhbm4gaGFzdCBkdSBiZXN0aW1tdCB3ZWxjaGUgLi4uIgpNOiAiSmEhIgpGOiAiV2VubiBkdSBLaW5kZXIgaGFzdCwgZGFubiBoYXN0IGR1IGF1Y2ggZWluZSBGcmF1LiIKTTogIkphIgpGOiAiV2VubiBkdSBlaW5lIEZyYXUgaGFzdCwgZGFubiBsaWVic3QgZHUgRnJhdWVuIgpNOiAiSmFhYS4uLiIKRjogIldlbm4gZHUgRmF1ZW4gbGllYnN0LCBkYW5uIGxpZWJzdCBkdSBrZWluZSBNYWVubmVyICEiCk06ICJsb2dpc2NoIgpGOiAiV2VubiBkdSBrZWluZSBNYWVubmVyIGxpZWJzdCwgZGFubiBiaXN0IGR1IG5pY2h0IHNjaHd1bCAhISEiCk06ICJzdGltbXQsIFdBSE5TSU5OICEiCgpEZXIgRnJlbWRlIGdlaHQgdW5kIGVpbmUgRnJldW5kIGtvbW10IC4uLgoKTTogIkR1LCBpY2ggbXVzcyBkaXIgd2FzIGVyemFlaGxlbiA6IEljaCBoYWIgZ3JhZGUgZWluZW4gTG9naWtlcgogICAgZ2V0cm9mZmVuISIKRnJldW5kOiAiRWluZW4gV0FTPyIKCk06ICJFaW5lbiBMb2dpa2VyLiBJY2ggZXJrbGFlcnMgZGlyICEKICAgIEhhc3QgZHUgZWluIEFxdWFyaXVtID8/PyIKRjogIk5laW4gIgpNOiAiU2Nod3VsZSBTYXUgISEhIgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDopKSkpKSkpKSkpIChMaSwgMjMuIE9rdCAxOTk1LCAxMDozMzo1OSk6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNDEyNjU0MQp0amEsIGljaCBrZW5uZSBkaWVzZW4gd2l0eiBtaXQgZHJlaSBQaWxvdGlrZXJuLCBhYmVyIGVyIGlzdCBlaW5mYWNoIGd1dCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaW5kb3dzIChXYXJnb24sIDIzLiBPa3QgMTk5NSwgMTE6MjQ6MDkpOgojISBybj1Bc21vZGlzIHJ0PTgxNDI1MjM5MApEYXMgV2luZG93cyBtaXQgZGVyIERvcHBlbG51bGwuLi4KLi4ubWl0IGRlciBMaXplbnogenVtIENyYXNoZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGVsZWZvbndpdHogKFllbmRpLCAyMy4gT2t0IDE5OTUsIDE0OjQ5OjExKToKIyEgcm49QXNtb2RpcyBydD04MTM4OTQ4NTQKCkRpZSBXYWhyc2NoZWlubGljaGtlaXQsIGRhc3MgZGVyIFZhdGVyIGRlcyBrbGVpbmVuIEp1bmdlbiBhdWNoIGVpbiBBcmJlaXRzLQp6aW1tZXIgaGF0LCBpbiBkZW0gZWluIFNjaHJlaWJ0aXNjaCBzdGVodCwgaW4gZGVzc2VuIHJlY2h0ZXIgU2NodWJsYWRlCmVpbiBnZWxhZGVuZXIgUmV2b2x2ZXIgbGllZ3QsIGlzdCBpbiBELUxhbmQgcmVjaHQgZ2VyaW5nLCBvZGVyPwoKT0ssIGdlbnVnIGdlbWllc2VwZXRlcnQsIG5ldHRlciBXaXR6Li4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5zZXJlIGdlbGllYnRlbiBMaWJlcmFsZW4gKEFyYW55YSwgMjMuIE9rdCAxOTk1LCAxNTozMTowNyk6CkhtbW0sIGdhYiBlcyBkZW4gaGllciBzY2hvbj8gSGFiIGlobiBqZWRlbmZhbGxzIGluIGVpbmVyIFRhbGtzaG93IG1pdCBHZW5zY2gtCm1hbiBnZWhvZXJ0OgpVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBNYW50YSB1bmQgZGVyIEZEUD8KRGVyIE1hbnRhIGhhdCBWSUVSIFNpdHplLgpBcmFueWEKICAgICAgaW4gZGVyIGFuZGVyZW4gYWJzdGVyYmVuZGVuIFBhcnRlaSAoZGllIG1pdCBkZW0gUykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGVsZWZvbndpdHogKEFzbW9kaXMsIDIzLiBPa3QgMTk5NSwgMTU6NDc6MzApOgojISBybj1ZZW5kaSBydD04MTQ0NTYxNTEKV2VyIHNhZ3QgZGVubiwgZGFzcyBkZXIgV2l0eiBpbiBEZXV0c2NobGFuZCBzcGllbHQ/IGlzdCB2aWVsbGVpY2h0Cm51ciB1ZWJlcnNldHp0LgpBdXNzZXJkZW0gc2luZCBiZWkgU2NocmVpYnRpc2NoZW4gZGllIFNjaHVibGFkZW4gbWVpc3QgcmVjaHRzIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRlbGVmb253aXR6IChFbmd5d3VjaywgMjMuIE9rdCAxOTk1LCAxNTo0NzozMyk6CiMhIHJuPVllbmRpIHJ0PTgxNDQ1NjE1MQpEZXIgV2l0eiBrb21tdCB2ZXJtdXRsaWNoIGF1cyBBbWVyaWthIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRlbGVmb253aXR6IChQZW5ueXdpc2UsIDIzLiBPa3QgMTk5NSwgMTY6MjI6MjIpOgojISBybj1ZZW5kaSBydD04MTQ0NTYxNTEKCkRpZXNlbiBXaXR6IGhhdCB2b3IgSmFocmVuIE1pa2UgS3J1ZWdlciBnZW1hY2h0LiBEYW1hbHMgd2FyIGVzIGFiZXIga2VpbgpSZXZvbHZlciwgc29uZGVybiBkaWUgQXh0LCBkaWUgZGVyIEtsZWluZSBhdXMgZGVtIFNjaHVwcGVuIGhvbGVuIG11c3N0ZS4KRGEgaXN0IGRpZSBXYWhyc2NoZWlubGljaGtlaXQgc2Nob24gd2llZGVyIGV0d2FzIGdyb2Vzc2VyLgoKUGVubnkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRlbGVmb253aXR6IChSYWZmaSwgMjMuIE9rdCAxOTk1LCAxNjoyNTo0MCk6CiMhIHJuPVllbmRpIHJ0PTgxNDQ1NjE1MQo+T0ssIGdlbnVnIGdlbWllc2VwZXRlcnQsIG5ldHRlciBXaXR6Li4uCkdlbmF1c29hbHQgd2llIE5ldHQgOikKCkdydXNzCkguCihBdWNoLU1lY2tlcm4tV29sbGVuLUNsdWIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW5zZXJlIGdlbGllYnRlbiBMaWJlcmFsZW4gKFJhZmZpLCAyMy4gT2t0IDE5OTUsIDE2OjI3OjE4KToKIyEgcm49QXJhbnlhIHJ0PTgxNDQ1ODY2Nwo+IGluIGRlciBhbmRlcmVuIGFic3RlcmJlbmRlbiBQYXJ0ZWkgKGRpZSBtaXQgZGVtIFMpCgpDU1UgPwoKKE5hIGphIGV0d2FzIFd1bnNjaGRlbmtlbiBkYXJmIGRvY2ggd29obCBzZWluIC0gb2RlciA/KQoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW5zZXJlIGdlbGllYnRlbiBMaWJlcmFsZW4gKEpvZiwgMjMuIE9rdCAxOTk1LCAxNjozNDozOCk6CiMhIHJuPVJhZmZpIHJ0PTgxNDQ2MjAzOAoKIE5lLCBQRFMgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbnNlcmUgZ2VsaWVidGVuIExpYmVyYWxlbiAoQXNtb2RpcywgMjMuIE9rdCAxOTk1LCAxODo1MzoxOSk6CiMhIHJuPUpvZiBydD04MTQ0NjI0NzgKV2llIGRpZSBXYWhsIGluIEJlcmxpbiBnZXplaWd0IGhhdCwgZXJmcmV1dCBzaWNoIGRpZSBQRFMgbm9jaCBiZXN0ZXIKR2VzdW5kaGVpdCwgamVkZW5mYWxscyBpbSBPc3Rlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmN0bHVzZXIgKDgpIChSb2NodXMsIDIzLiBPa3QgMTk5NSwgMjE6NDU6NTApOgpDVExVU0VSKDgpICAgICAgICAgICBNYWludGVuYW5jZSBQcm9jZWR1cmVzICAgICAgICAgICAgQ1RMVVNFUig4KQoKCk5BTUUKICAgICBjdGx1c2VyIC0gY29udHJvbCBsdXNlcnMKClNZTk9QU0lTCiAgICAgY3RsdXNlciBbIC1oIF0gWyAtbSBdIGNvbW1hbmQgWyBhcmd1bWVudC4uLiBdCgpERVNDUklQVElPTgogICAgIEN0bHVzZXIgc2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBjb250cm9sIGNoYW5uZWwgIG9mICBhICBnaXZlbgogICAgIGx1c2VyKDgpIFRoaXMgY29tbWFuZCBjYW4gb25seSBiZSBydW4gYnkgdGhlIHN5c2FkbWluKDEpCgogICAgIEluIHRoZSBub3JtYWwgbW9kZSBvZiBiZWhhdmlvciwgdGhlIG1lc3NhZ2UgaXMgc2VudCAgdG8gIHRoZQogICAgIGx1c2VyJ3MgIGJyYWluLCB3aGljaCB0aGVuIHBlcmZvcm1zIHRoZSByZXF1ZXN0ZWQgYWN0aW9uIGFuZAogICAgIHNlbmRzIGJhY2sgYSByZXBseSB3aXRoIGEgdGV4dCBtZXNzYWdlIGFuZCB0aGUgZXhpdCBjb2RlIGZvcgogICAgIGN0bHVzZXIuICAgSWYgIHRoZSAgbHVzZXIncyBicmFpbiBzdWNjZXNzZnVsbHkgcGVyZm9ybWVkIHRoZQogICAgIGNvbW1hbmQsIGN0bHVzZXIgd2lsbCBleGl0IHdpdGggYSBzdGF0dXMgb2YgemVybyAgYW5kICBwcmludAogICAgIHRoZSByZXBseSBvbiBzdGFuZGFyZCBvdXRwdXQuCgogICAgIFRoZSBgYC1tJycgZmxhZyBpcyB1c2VkIHRvIGRpc3BsYXkgYW4gTVBFRyBvZiB0aGUgcmVzdWx0cyBvZgogICAgIHRoZSAgZ2l2ZW4gIGNvbW1hbmQgIG9uICB0aGUgY29uc29sZSBvZiB0aGUgc3lzYWRtaW4oMSkgTm90ZQogICAgIHRoYXQgdGhpcyByZXF1aXJlcyAgdGhlICBzeXNhZG1pbigxKSAgdG8gIGJlICBydW5uaW5nICBhbiAgWAogICAgIHNlcnZlci4KCiAgICAgVG8gc2VlIGEgY29tbWFuZCBzdW1tYXJ5LCB1c2UgdGhlIGBgLWgnJyBmbGFnLiAgSWYgYSBjb21tYW5kCiAgICAgaXMgIGluY2x1ZGVkICB3aGVuICBjdGx1c2VyIGlzIGludm9rZWQgd2l0aCB0aGUgYGAtaCcnIGZsYWcsCiAgICAgdGhlbiBvbmx5IHRoZSB1c2FnZSBmb3IgdGhhdCBjb21tYW5kIHdpbGwgYmUgZ2l2ZW4uCgogICAgIFRoZSBjb21wbGV0ZSBsaXN0IG9mIGNvbW1hbmRzIGZvbGxvd3MuICBOb3RlIHRoYXQgIGFsbCAgY29tLQogICAgIG1hbmRzICBoYXZlIGEgZml4ZWQgbnVtYmVyIG9mIGFyZ3VtZW50cy4gIElmIGEgcGFyYW1ldGVyIGNhbgogICAgIGJlIGFuIGVtcHR5IHN0cmluZywgdGhlbiBpdCBpcyBuZWNlc3NhcnkgdG8gIHNwZWNpZnkgIGl0ICBhcwogICAgIHR3byBhZGphY2VudCBxdW90ZXMsIGxpa2UgIiIuCgogICAgIGFkZGhpc3QgPGVudHJ5PgogICAgICAgICAgQWRkIGFuIGVudHJ5IHRvIHRoZSBsdXNlcidzIGVtcGxveW1lbnQgcmVjb3JkLgoKICAgICBhbGxvdyByZWFzb24KICAgICAgICAgIEFsbG93IGEgbHVzZXIgdG8gdXNlIHRoZSBjb21wdXRlciAgc3lzdGVtICBhZ2Fpbi4gICBUaGUKICAgICAgICAgIHJlYXNvbiAgbXVzdCAgYmUgIHRoZSAgc2FtZSAgdGV4dCBnaXZlbiB3aXRoIGFuIGVhcmxpZXIKICAgICAgICAgIGBgcmVqZWN0JycgIGNvbW1hbmQuICAgTm90ZSAgdGhhdCAgIHRoaXMgICBjb21tYW5kICAgaXMKICAgICAgICAgIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQuCgogICAgIGJlZ2luIG5hbWUKICAgICAgICAgIEJlZ2luIGEgbmV3IGx1c2VyKDEpIHdpdGggdGhlIGdpdmVuICBmaWxlLiAgIE5vdGUgIHRoYXQKICAgICAgICAgIHRoaXMgY29tbWFuZCBpcyBjdXJyZW50bHkgbm90IGltcGxlbWVudGVkLgoKICAgICBjYW5jZWwgcGlkCiAgICAgICAgICBDYXVzZXMgYSBwcm9jZXNzIG9mIGEgbHVzZXIgdG8gYmUga2lsbGVkCgogICAgIGNoYW5nZWdyb3VwIGdyb3VwCiAgICAgICAgICBDaGFuZ2VzIGEgbHVzZXIgZnJvbSB0aGVpciBjdXJyZW50IHdvcmtncm91cCB0byB0aGUgb25lCiAgICAgICAgICBzcGVjaWZpZWQuCgogICAgIGNoZWNrZmlsZQoKU3VuT1MgNS40ICAgICAgICAgTGFzdCBjaGFuZ2U6IDE5IE9jdG9iZXIgMTk5NSAgICAgICAgICAgICAgICAgIDEKCgpDVExVU0VSKDgpICAgICAgICAgICBNYWludGVuYW5jZSBQcm9jZWR1cmVzICAgICAgICAgICAgQ1RMVVNFUig4KQoKICAgICAgICAgIEZvcmNlcyBhIHVzZXIgdG8gcmV0dXJuIHRvIGEgcGFwZXIgYmFzZWQgc3lzdGVtCgogICAgIGRyb3AgQ2F1c2VzIGEgbGFyZ2UgbWFzcyB0byBkcm9wIG9udG8gdGhlIGx1c2VyIGZyb20gYSBncmVhdAogICAgICAgICAgaGVpZ2h0LgoKICAgICBmbHVzaGxvZ3MKICAgICAgICAgIERlc3RvcnlzIGFsbCBsb2dzIG9mIHRoZSBhY3Rpb25zICBkb25lICBieSAgdGhlICBzeXNhZC0KICAgICAgICAgIG1pbigxKSB0byB0aGUgbHVzZXIuCgogICAgIGdvIHJlYXNvbgogICAgICAgICAgVGhlIGx1c2VyIGlzIGZpcmVkIGZvciB0aGUgZ2l2ZW4gcmVhc29uLgoKICAgICBoYW5ndXAKICAgICAgICAgIE1ha2VzIHRoZSBsdXNlciBoYW5nIHRoZW1zZWx2ZXMKCiAgICAgbW9kZSBEaXNwbGF5cyB0aGUgb3BlcmF0aW5nIG1vZGUgb2YgdGhlIGx1c2VyCgogICAgIG5ld2dyb3VwIGdyb3VwCiAgICAgICAgICBDYXVzZXMgYSBsdXNlciB0byBtYWtlIHRoZWlyIG93biBuZXdncm91cCB1cAoKICAgICBwYXVzZSB0aG91Z2h0CiAgICAgICAgICBNYWtlcyB0aGUgbHVzZXIgcGF1c2UgZm9yIHRoZSBnaXZlbiB0aG91Z2h0LiAgTm90ZSB0aGF0CiAgICAgICAgICB0aGlzIG1heSBjYXVzZSBzb21lIGx1c2VycyB0byBjcmFzaAoKICAgICBzaHV0ZG93biByZWFzb24KICAgICAgICAgIE1ha2VzIHRoZSBsdXNlciBzaHV0ZG93bi4gVGhpcyBpcyBlc3NlbnRpYWxseSB0aGUgIHNhbWUKICAgICAgICAgIGFzIGtpbGxpbmcgdGhlbQoKICAgICBzaWduYWwgc2lnCiAgICAgICAgICBTZW5kcyB0aGUgZ2l2ZW4gc2lnbmFsIHRvIHRoZSBsdXNlcgoKICAgICB0aHJvdHRsZSByZWFzb24KICAgICAgICAgIENhdXNlcyB0aGUgbHVzZXIgdG8gdGhyb3R0bGUgdGhlbXNlbHZlcwoKICAgICB0cmFjZSBpdGVtIGZsYWcKICAgICAgICAgIEdpdmVzIHRoZSBzeXNhZG1pbigxKSBpbmZvcm1hdGlvbiBvbiB3aGF0IHRoZSBsdXNlciAgaXMKICAgICAgICAgIGRvaW5nLgoKQlVHUwogICAgIEN0bHVzZXIgc29tZXRpbWVzIGhhcyB0aGUgZWZmZWN0IG9mIGx1c2VycyAgY29tcGxhaW5pbmcgIHRoZQogICAgIHRvIG1hbmFnZW1lbnQuIFRoZSB1c2Ugb2YgYm9zc2tpbGwoOCkgbWF5YmUgcmVxdWlyZWQgYXQgdGhpcwogICAgIHBvaW50LgoKSElTVE9SWQogICAgIFdyaXR0ZW4gYnkgU2ltb24gIEJ1cnIgIDxzaW1lc0B0Y3AuY28udWs+LiAgQmFzZWQgIHVwb24gIHRoZQogICAgIG1hbnVhbCBwYWdlIGZvciBjdGxpbm5kKDgpLCBwYXJ0IG9mIHRoZSBJbnRlck5ldE5ld3Mgc3lzdGVtLgoKU0VFIEFMU08KICAgICBsdXNlcigxKSwgc3lzYWRtaW4oMSksIGJvc3NraWxsKDgpCgpTdW5PUyA1LjQgICAgICAgICBMYXN0IGNoYW5nZTogMTkgT2N0b2JlciAxOTk1ICAgICAgICAgICAgICAgICAgMgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBjdGx1c2VyICg4KSAoRW5neXd1Y2ssIDI0LiBPa3QgMTk5NSwgMTI6MDU6MDgpOgojISBybj1Sb2NodXMgcnQ9ODE0NDgxMTUwCktsYXNzZSBJZGVlLi4uCkljaCBwb3N0ZSBhdWNoIG5vY2ggZWluIHBhYXIgbWFuLXBhZ2VzIDopKQpXZWxjaGVzIFRoZW1hIGlzdCBnZXd1ZW5zY2h0PyBscz8gcm0/IG9kZXIgY2htb2Q/IGljaCBiaW4gZGEgZmxleGliZWwgOykKCipncmluc2VuZCogRW5neXd1Y2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFVuc2VyZSBnZWxpZWJ0ZW4gTGliZXJhbGVuIChXYXJnb24sIDI0LiBPa3QgMTk5NSwgMTI6MjU6MjgpOgojISBybj1Bc21vZGlzIHJ0PTgxNDQ3MDc5OQpEaWUgVEFaIGhhdCBqYSBnZXRpdGVsdAo+Pj5TUEQgZGV1dGxpY2ggdWViZXIgNSU8PDwKIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi4uIHVuZCBub2NoJ24gTGliZXJhbGVud2l0eiAoVGhyb2luLCAyNC4gT2t0IDE5OTUsIDE3OjM2OjM3KToKV2FzIGhlaXNzdCBlaWdlbnRsaWNoIEYuRC5QLj8gOikgSXN0IGRvY2ggS2xhcjogRmFzdCBEcmVpIFByb3plbnQhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogLi4uLiB1bmQgbm9jaCduIExpYmVyYWxlbndpdHogKFRhc2hhLCAyNC4gT2t0IDE5OTUsIDIyOjQ4OjI4KToKIyEgcm49VGhyb2luIHJ0PTgxNDU1MjU5NwpXYXMgaGFidCBpaHIgZWlnZW50bGljaCBhbGxlIGdlZ2VuIGRpZSBhcm1lIGtsZWluZSBGRFA/IFNpZSB0cml0dCBkb2NoIGFrdGl2CmZ1ZXIgZGllIFZlcmtsZWluZXJ1bmcgZGVyIFBhcmxhbWVudGUgZWluIGluZGVtIHNpZSBhdWYgaWhyZSBTaXR6ZSB2ZXJ6aWNodGV0LgpGaW5kIGljaCBlY2h0IGd1dCB2b24gZGVuZW4uCgpVbmQgYXVzc2VyZGVtOiBEaWUgRkRQIGhhdCBhdWNoIGltbWVyIHNhdWJlciBHbGFlc2VyIG51ciBpY2ggbmljaHQuCgpzb3ZpZWwgenUga2VpbmVtIFRoZW1hLCBUYXNoYSAoTWFnaWVyLCBmYWxscyBlcyBiaXMgamV0enQgbm9jaCBrZWluZXIgZ2VtZXJrdApoYXQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogLi4uLiB1bmQgbm9jaCduIExpYmVyYWxlbndpdHogKFRhcmtpbiwgMjUuIE9rdCAxOTk1LCAxMzoyNzo0MCk6CiMhIHJuPVRocm9pbiBydD04MTQ1NTI1OTcKTmV0dGUgVWViZXJzZXR6dW5nISBXb2xsZW4gaG9mZmVuIGRhcyBzaWUgYmFsZCBpbiBHS1AgdW1nZXRhdWZ0IHdpcmQ6IEdvdHRsb2IKa2VpbiBQcm96ZW50ISBNZWxkIERpY2ggbWFsISAgICAgICAgQ2lhbyAgICAgICAgIFRhcmtpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2luZG9vZiAoUm9jaHVzLCAzMS4gT2t0IDE5OTUsIDE1OjE4OjUwKToKICAgV2luZG96ZTk1OiAgVGhlIERyYWN1bGEgb2YgT3BlcmF0aW5nIFN5c3RlbXMgLQogICBJdCBzdWNrcyB1cCBhbGwgeW91ciBtZW1vcnksIGJsZWVkcyB5b3VyIGhhcmRkcml2ZSBkcnksIGFuZCBvbmx5IHdvcmtzIDEyCiAgIGhvdXJzIG91dCBvZiAyNC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVzogUGFudGhvdGhlbmF0IChZZW5kaSwgMzEuIE9rdCAxOTk1LCAyMTozNzo1Mik6CgpbV2lzc2Vuc2NoYWZ0OkFzbW9kaXNdIGhtbSwgd2Vpc3MgamVtYW5kLCB3YXMgUGFudGhvdGhlbmF0IGlzdCA/CltXaXNzZW5zY2hhZnQ6QXNtb2Rpc10gd2Vpc3MgZXMga2VpbmVyID8KW1dpc3NlbnNjaGFmdDpBc21vZGlzXSBrZWluZSBjaGVtaWtlciBkYSA/CltBbGxnZW1laW46QXNtb2Rpc10gV2Vpc3MgamVtYW5kLCB3YXMgUGFudGhvdGhlbmF0IGlzdCA/CltBbGxnZW1laW46TXVwZmVsXSB3YXMgZnVlcm4gaHVzdGVuCltBbGxnZW1laW46QXNtb2Rpc10gaWNoIHRyaW5rIGRhcyBnZXJhZGUKPiBbVG9kOl0gUGFudGhvdGhlbmF0IGhhdCBnZXJhZGUgQXNtb2RpcyB1bWdlYnJhY2h0LgoKClRzY2hhLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbGV0enRlIFdvcnRlIChSaWNld2luZCwgIDEuIE5vdiAxOTk1LCAxOTowMzozMSk6CkVzIHNpbmQgZG9jaCBudXIgR29ibGlucy4uLgpXYXMgYmV3aXJrdCBkaWVzZXIgS25vcGYgd29obCA/CkVzIGlzdCBkb2NoIG51ciBlaW5lIFN0YXR1ZS4uLgpWZXJkYW1tdCwgZGllc2VzIFNjaGVpc3NkaW5nIHdpbGwgZWluZmFjaCBuaWNodCBzdGVyYmVuLi4uCkljaCBnbGF1YiBkaXIgbmljaHQsIGRhcyBkdSBNYWdpZXIgYmlzdCAhCk9vcHMuLi4KRmFsbGUgPyBXZWxjaGUgRmFsbGUgPwpEcmFjaGVuIGdlYmVuIGVpbmUgTWVuZ2UgRXhwLi4uCkpvZiB3aXJkIG1pY2ggc2NodWV0emVuICEKRHUgd2lyc3QgZXMgbmljaHQgd2FnZW4gIQpJY2ggenVlY2tlIGRlbiBTdGFjaGVsIHVuZCBncmVpZmUgZGllIEh5ZHJhIGFuLi4uCldlbm4gbWVpbmUgR2ViZXRlIHZvbiBCb2luZyBuaWNodCBlcmhvZXJ0IHdlcmRlbiwgZGFubiBzYWcgaWNoIElobSBqZXR6dCBtYWwsCndhcyBpY2ggV0lSS0xJQ0ggdm9uIElobSBoYWx0ZSAhCkljaCB2ZXJsYXVmIG1pY2ggc2Nob24gbmljaHQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBsZXR6dGUgV29ydGUgKEFzbW9kaXMsICAyLiBOb3YgMTk5NSwgMTA6MzM6MDcpOgojISBybj1SaWNld2luZCBydD04MTUyNDkwMTEKRXJnYWVuemVuZDoKCldpZSBzdGFyayBpc3QgZGVubiBkaWVzZXMgTW9uc3RlciA/ClZvcnNpY2h0IDEwMCByZWljaHQgd29obC4KSWNoIGdlaCBtYWwgbWVpbmUgU2FjaGVuIHdpZWRlciB6dXJ1ZWNraG9sZW4uClNjaGlsZD8gV2VsY2hlcyBTY2hpbGQgPwpXZWlzcyBqZW1hbmQsIHdpZSBtYW4gYXVzIGRlciBFaXN3dWVzdGUgcmF1c2tvbW10ID8KV2FydW0gaXN0IGRlbm4gZWluIFRvdGVua29wZiBhdWYgZGVyIEZsYXNjaGUgPwpJY2ggZ2VoIGpldHp0IGRpZSBIeWRyYSB0b2V0ZW4gIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBsZXR6dGUgV29ydGUgKEFzbW9kaXMsICAyLiBOb3YgMTk5NSwgMTA6MzQ6MDEpOgojISBybj1Bc21vZGlzIHJ0PTgxNTMwNDc4Nwp1cHBzLCBkYXMgbWl0IGRlciBoeWRyYSB3YXIgZG9wcGVsdCwgc29ycnksIG1hbiBrYW5uIGF1Y2ggZGVuIHdlZ2hpZXIgbmVobWVuCjopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptYWwgd2llZGVyLi4uIDopIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMDozNjowNSk6CgonU2FnIG1hbCwgaGFzdCBEdSBzY2hvbiBlaW5tYWwgdm9yIHZpZWxlbiBMZXV0ZW4gZWluZSBBbnNwcmFjaGUgZ2VoYWx0ZW4/JwonS2xhciEnIC0gJ1VuZCB3YXMgaGFzdCBEdSBnZXNhZ3Q/JyAtICdJY2ggYmluIHVuc2NodWxkaWchJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBtYWwgd2llZGVyLi4uIDopIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMDozNzoxOSk6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNTMwNDk2NQoKRGVyIExlaHJlciBzaWVodCwgZGFzcyBNaWNoYWVsIFNrYXRrYXJ0ZW4gdW50ZXIgZGVtIFRpc2NoIGhhdC4gJ0R1IHdpcnN0CmRvY2ggamV0enQgbmljaHQgc3BpZWxlbiwgTWljaGFlbD8nIC0gJ1dvIGRlbmtlbiBTaWUgaGluPwpCZWkgZGVtIEJsYXR0PycKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBtYWwgd2llZGVyLi4uIDopIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMDozODoxMik6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNTMwNTAzOQoKV2llIGhlaXNzdCBkZXIgaXRhbGllbmlzY2hlIEVyZmluZGVyIGRlcyBTY2huZWxsa29jaHRvcGZzPwoKS2xhcmVyIEZhbGwuLi4gR2FyaS1CYWxkaSEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBtYWwgd2llZGVyLi4uIDopIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMDozOTo0Mik6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNTMwNTA5MgoKRGVyIGp1bmdlIEFrYWRlbWlrZXIgaGF0IHNlaW5lbiBlcnN0ZW4gQXJiZWl0c3RhZyBpbSBCdWVyby4gRGVyIENoZWYKc3ByaWNodCBpaG4gYW46ICdOZWhtZW4gU2llIGRlbiBCZXNlbiwgdW5kIGtlaHJlbiBTaWUgZGFzIFppbW1lci4nIERlcgpBa2FkZW1pa2VyIGlzdCBlbXBvZXJ0OiAnQWJlciBpY2gga29tbWUgZG9jaCB2b24gZGVyIFVuaXZlcnNpdGFldCEnCidFbnRzY2h1bGRpZ2VuIFNpZSwgaWNoIHplaWdlIElobmVuIGdsZWljaCwgd2llJ3MgZ2VodC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogbWFsIHdpZWRlci4uLiA6KSAoQXNtb2RpcywgIDIuIE5vdiAxOTk1LCAxMDo0MjoyNyk6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNTMwNTE4MgpIbW0sIHdlaXNzIG5vY2ggbmljaHQsIG9iIGhpZXIgZ2Vwb3N0ZXQsIG1hY2h0IGFiZXIgbml4IDopCgpXYXMgc2FndCBlaW4gYXJiZWl0c2xvc2VyIEFrYWRlbWlrZXIgenUgZWluZW0gQWthZGVtaWtlciBtaXQgQXJiZWl0ID8KCidFaW5lbiBIYW1idXJnZXIgbWl0IFBvbW1lcywgYml0dGUhJwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogbWFsIHdpZWRlci4uLiA6KSAoQ3JlYXRpdmUsICAyLiBOb3YgMTk5NSwgMTA6NDI6NTMpOgojISBybj1DcmVhdGl2ZSBydD04MTUzMDUxODIKClp3ZWkgU2Nod2VpbmUgdW5kIGVpbiBCdXJnZW5sYWVuZGVyIGJlZmluZGVuIHNpY2ggaW4gZWluZXIgUmF1bWthcHNlbCBpbQpXZWx0YWxsLiBWb24gZGVyIEtvbW1hbmRvemVudHJhbGUgYXVmIGRlciBFcmRlIGtvbW10IGRlciBlcnN0ZSBCZWZlaGw6CidIaWVyIHNwcmljaHQgZGVyIENvbW1hbmRlci4gU2Nod2VpbiBlaW5zLCBkcnVlY2tlbiBTaWUgZGVuIGJsYXVlbiBLbm9wZi4nClNjaHdlaW4gZWlucyBkcnVlY2t0IGF1ZiBkZW4gYmxhdWVuIEtub3BmLiBEYXJhdWYgZGVyIHp3ZWl0ZSBCZWZlaGw6ICdTY2h3ZWluCnp3ZWksIGRydWVja2VuIFNpZSBhdWYgZGVuIHJvdGVuIEtub3BmLicgU2Nod2VpbiB6d2VpIGRydWVja3QgYXVmIGRlbiByb3RlbgpLbm9wZi4gRGFubiBkZXIgQmVmZWhsIGZ1ZXIgZGVuIEJ1cmdlbmxhZW5kZXI6ICdIaWVyIHNwcmljaHQgZGVyIENvbW1hbmRlci4KRHIuLi4nIERhIHVudGVyYnJpY2h0IGRlciBidXJnZW5sYWVuZGVyOiAnSmFqYSwgaWNoIHdlaXNzLCBTY2h3ZWluZQpmdWV0dGVybiB1bmQgbmljaHRzIGFuZ3JlaWZlbi4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogbWFsIHdpZWRlci4uLiA6KSAoQ3JlYXRpdmUsICAyLiBOb3YgMTk5NSwgMTA6NDU6MTIpOgojISBybj1DcmVhdGl2ZSBydD04MTUzMDUzNzMKCkRpZSBiZXJ1ZWhtdGUgT3Blcm5zYWVuZ2VyaW4gZ2lidCBpbiBkZXIgS2xlaW5zdGFkdCBlaW4gS29uemVydC4KQW4gZGVyIFNhYWx0dWVyIGhhZW5ndCBlaW4gU2NoaWxkOiAnRGFzIE1pdGJyaW5nZW4gdm9uIEh1bmRlbiBpc3QgdmVyYm90ZW4nCk5hY2ggZGVtIEtvbnplcnQgaGF0IGplbWFuZCBkYXJ1bnRlcmdlc2NocmllYmVuOiAnRGVyIFRpZXJzY2h1dHp2ZXJlaW4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogbWFsIHdpZWRlci4uLiA6KSAoQ3JlYXRpdmUsICAyLiBOb3YgMTk5NSwgMTA6NDY6NDIpOgojISBybj1DcmVhdGl2ZSBydD04MTUzMDU1MTIKClRyZWZmZW4gc2ljaCB6d2VpIFRhc2NoZW5kaWViZS4gJ05hLCB3aWUgZ2VodHM/JyAtICdXaWUgbWFucyBuaW1tdC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogbWFsIHdpZWRlci4uLiA6KSAoQ3JlYXRpdmUsICAyLiBOb3YgMTk5NSwgMTA6NDg6MTMpOgojISBybj1DcmVhdGl2ZSBydD04MTUzMDU2MDIKCktvbW10IGVpbiBNYW5uIGVpbGlnZW4gU2Nocml0dGVzIGluIGRpZSBUcmFmaWs6ICdFaW5lIFNjaGFjaHRlbCBadWVuZC0KaG9lbHplciEnIC0gJ1dhcyBicnVlbGxlbiBTaWUgZGVubiBzbycsIG1laW50IGRlciBWZXItCmthZXVmZXIgYWVyZ2VybGljaCwgJ2ljaCBiaW4gZG9jaCBuaWNodCB0YXViISBNaXQgb2RlciBvaG5lIEZpbHRlcj8nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogbWFsIHdpZWRlci4uLiA6KSAoQ3JlYXRpdmUsICAyLiBOb3YgMTk5NSwgMTA6NTE6NDgpOgojISBybj1DcmVhdGl2ZSBydD04MTUzMDU2OTMKClp1IEVocmVuIGVpbmVyIERlbGVnYXRpb24gYXVzIEFmcmlrYSBnaWJ0IGRpZSBGaXJtYSBlaW4gZ3Jvc3NlcyBFc3Nlbi4KRGVyIERpcmVrdG9yIHdpbGwgbWl0IGRlbSBTY2h3YXJ6ZW4sIGRlciBuZWJlbiBpaG0gc2l0enQsIEtvbnZlcnNhdGlvbgptYWNoZW4uIEFscyBkaWUgR2V0cmFlbmtlIGdlcmVpY2h0IHdlcmRlbiwgc2FndCBlcjogJ0dsdWNrZ2x1Y2sgZ3V0PycKRGVyIEFmcmlrYW5lciBuaWNrdC4gU3BhZXRlciBiZWltIEVzc2VuIGZyYWd0IGRlciBEaXJla3RvcjogJ2hhcHBpLQpoYXBwaSBndXQ/JyBXaWVkZXIgYmVkYW5rdCBzaWNoIGRlciBHYXN0IGF1cyBBZnJpa2EgbWl0IGVpbmVtIEtvcGZuaWNrZW4uCk5hY2hkZW0gZGFzIE1haGwgYmVlbmRldCBpc3QsIHN0ZWh0IGRlciBGYXJiaWdlIGF1ZiB1bmQgaGFlbHQgaW4gZmVobGVyLQpmcmVpZW0gRGV1dHNjaCBlaW5lIERhbmtlc3JlZGUuIERhbmFjaCBiZXVndCBlciBzaWNoIHp1bSBEaXJla3Rvcgp1bmQgZnJhZ3Q6ICdCbGFoQmxhaCBndXQ/JwoKKGlzdCBkZXIgYWx0IDspKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IG1hbCB3aWVkZXIuLi4gOikgKENyZWF0aXZlLCAgMi4gTm92IDE5OTUsIDEwOjUyOjQxKToKIyEgcm49Q3JlYXRpdmUgcnQ9ODE1MzA1OTA4CgpadW0gV2l0eiAyIGRhdm9yLi4uCkVpbmUgVHJhZmlrIGlzdCBkYXMgb2VzdGVycmVpY2hpc2NoZSBXb3J0IGZ1ZXIgS2lvc2ssIGhhbHQgbiBMYWRlbiBmdWVyClppZ2FyZXR0ZW4gdW5kIFplaXRzY2hyaWZ0ZW4KCjopCihhdWYgMiBBbmZyYWdlbiAxMCBzZWt1bmRlbiBuYWNoIGRlbSBwb3N0ZW4gZGVzIHdpdHplcyBnZXNjaHJpZWJlbiA7KSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogbWFsIHdpZWRlci4uLiA6KSAoQ3JlYXRpdmUsICAyLiBOb3YgMTk5NSwgMTA6NTY6MjIpOgojISBybj1DcmVhdGl2ZSBydD04MTUzMDU5NjEKClZlcnp3ZWlmZWx0IHNjaGxlcHB0IHNpY2ggZWluIFZlcmlycnRlciBkdXJjaCBkZW4gV3Vlc3RlbnNhbmQuICdXYXNzZXIsCldhc3NlciEnIHN0b2VobnQgZXIuIE5hY2ggendlaSBUYWdlbiB0cmlmZnQgZXIgYXVmIGVpbmVuIE1hbm4gbWl0IEJhdWNoLQpsYWRlbjogJ1NjaG9lbmUgS3Jhd2F0dGVuIGdlZmFlbGxpZz8nIERlciBWZXJpcnJ0ZSB3aW5rdCBhYiB1bmQgcm9lY2hlbHQ6CidXYXMgc29sbCBpY2ggbWl0IEtyYXdhdHRlbj8gSWNoIGhhYmUgRHVyc3QsIGljaCBicmF1Y2hlIFdhc3NlciEnCkFtIG5hZWNoc3RlbiBUYWcgc2llaHQgZXIgYW0gSG9yaXpvbnQgZWluZSBPYXNlLiBFciBlcnJlaWNodCBzaWUgbWl0IE11ZWgKdW5kIE5vdCB1bmQgc2llaHQgdW50ZXIgZGVuIFBhbG1lbiBlaW4gUmVzdGF1cmFudC4gJ1dhc3NlciEnIHN0b2VobnQgZXIKbWl0IGxldHp0ZXIgS3JhZnQuICdLb2VubmVuIFNpZSBoYWJlbicsIHNhZ3QgZGVyIFBvcnRpZXIsICdhYmVyIG9obmUKS3Jhd2F0dGUga29tbWVuIFNpZSBoaWVyIG5pY2h0IHJlaW4uJwoKLAphZWggc29sbHRlIGVpbiAuIHNlaW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBtYWwgd2llZGVyLi4uIDopIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMDo1ODo1NSk6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNTMwNjE4MgoKSmVzdXMgZ2VodCBpbiBKZXJ1c2FsZW0gc3BhemllcmVuLiBFciBrb21tdCB6dSBlaW5lciBncm9zc2VuCk1lbnNjaGVubWVuZ2UsIGRpZSBnZXJhZGUgZGFiZWkgaXN0LCBlaW5lIEZyYXUgenUgc3RlaW5pZ2VuLiBTY2h1ZXR6ZW5kCnN0ZWxsdCBlciBzaWNoIHZvciBkYXMgT3BmZXIgdW5kIHNhZ3Q6ICdXZXIgdm9uIGV1Y2ggb2huZSBTdWVuZGUgaXN0LApkZXIgd2VyZmUgZGVuIGVyc3RlbiBTdGVpbi4nIFNvZm9ydCBrb21tdCBlaW4gU3RlaW4gYXVzIGRlciBNZW5nZSBnZWZsb2dlbgp1bmQgdHJpZmZ0IGlobiBtaXR0ZW4gYXVmIGRlbSBLb3BmLiBKZXN1cyBibGlja3QgdmVyYWVyZ2VydCBpbiBkaWUgTWVuZ2UKdW5kIHJ1ZnQ6ICdNYW5jaG1hbCBnZWhzdCBEdSBtaXIgZ2FueiBzY2hvZW4gYXVmIGRpZSBOZXJ2ZW4sIE11dHRlciEnCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IG1hbCB3aWVkZXIuLi4gOikgKENyZWF0aXZlLCAgMi4gTm92IDE5OTUsIDExOjAzOjMxKToKIyEgcm49Q3JlYXRpdmUgcnQ9ODE1MzA2MzM1CgpUcmVmZmVuIHNpY2ggMiBCYWVyZW5qYWVnZXIgaW4gUnVzc2xhbmQuIERlciBlaW5lIHBhY2t0IGVpbmVuIFBlbHogYXVzOgonU2NoYXUsIG1pciBpc3QgZ2VzdGVybiBlaW4gcmllc2lnZXIgQmFlciB2b3IgZGllIEZsaW50ZSBnZWtvbW1lbiEnIE1laW50CmRlciBhbmRlcmU6ICdXaWUgbWFjaHN0IER1IGRhcyBudXIgaW1tZXIsIGRhc3MgRHUgc28gZ3Jvc3NlIEJhZXJlbgpmYWVuZ3N0PycgLSAnR2FueiBlaW5mYWNoOiBEdSBzdGVsbHN0IERpY2ggdm9yIGVpbmUgSG9laGxlIHVuZCBwZmVpZnN0LgpVbmQgd2VubiBkZXIgQmFlciBoZXJhdXNrb21tdCwgZGFubiBicmF1Y2hzdCBEdSBudXIgbm9jaCB6dSBzY2hpZXNzZW4uJwpad2VpIFdvY2hlbiBzcGFldGVyIHRyZWZmZW4gc2ljaCBkaWUgYmVpZGVuIHdpZWRlci4gRGVyIGVpbmUgaXN0IHZvbiBLb3BmCmJpcyBGdXNzIGluIFBmbGFzdGVyIGVpbmdld2lja2VsdC4gJ1VuZCwgaGFzdCBEdSBtZWluZSBNZXRob2RlIGF1cy0KcHJvYmllcnQ/JyBmcmFndCBkZXIgYW5kZXJlLiAnSmEsIGljaCBoYWJlIG1pY2ggdm9yIGVpbmUgSG9laGxlIGdlc3RlbGx0LAp1bmQgZ2VwZmlmZmVuLicgLSAnVW5kLCB3YXMgaXN0IGhlcmF1c2dla29tbWVuPycgLSAnRGllIHRyYW5zc2liaXJpc2NoZQpFaXNlbmJhaG4uJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBtYWwgd2llZGVyLi4uIDopIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMTowNTowOCk6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxNTMwNjYxMQoKRGVyIHNjaHVlY2h0ZXJuZSBFbWlsIGJlb2JhY2h0ZXQgd2FlaHJlbmQgZWluZXIgS3JldXpmYWhydCBzY2hvbiBzZWl0ClRhZ2VuIGVpbiBodWVic2NoZXMgTWFlZGNoZW4uIEVyIHd1ZXJkZSBzaWUgZ2VybmUga2VubmVubGVybmVuLCB3ZWlzcwphYmVyIG5pY2h0LCB3aWUgZXIgZXMgYW5zdGVsbGVuIHNvbGwuIE5hY2ggZWluZXIgV29jaGUgZmFzc3QgZXIgc2ljaApzY2hsaWVzc2xpY2ggZWluIEhlcnogdW5kIHNwcmljaHQgc2llIGFuOiAnVmVyemVpaGVuIFNpZSwgZ25hZWRpZ2VzCkZyYWV1bGVpbiwgZmFocmVuIFNpZSBhdWNoIG1pdCBkaWVzZW0gU2NoaWZmPycKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzaWxseSBqb2tlIChZZW5kaSwgIDIuIE5vdiAxOTk1LCAxMToxNzozNik6ClE6IFdoYXQgZG8geW91IGdldCB3aGVuIHlvdSBjcm9zcyByZXRpcmVkIENocnlzbGVyIE1vdG9yIENvcnAuIENoYWlybWFuCiAgIExlZSBJYWNvY2NhIHdpdGggYSB2YW1waXJlPwoKQTogYXV0b2V4ZWMuYmF0CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGxldHp0ZSBXb3J0ZSAoTW9yZ290aCwgIDIuIE5vdiAxOTk1LCAxMTozOToxNyk6CiMhIHJuPURob2pha3QgcnQ9ODE1MzA4NjY0Cm5vY2ggZWluZXIuCmhpaGksIGRpZXNlIG9ya3Mga29lbmVuIGthcmF0ZSwgYWJlciBpY2ggYmluIGJlc3NlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogbGV0enRlIFdvcnRlIChEaG9qYWt0LCAgMi4gTm92IDE5OTUsIDExOjQ4OjAwKToKIyEgcm49TW9yZ290aCBydD04MTUzMDg3NTcKTm9jaG4gcGFhci4uLgpTa2lmYWhyZW4gbWFjaHQgU3Bhc3MhCld1cmRlIGRlciBTY2hyYXQgc3RhZXJrZXIgZ2VtYWNodD8gR2xlaWNoIG1hbCB0ZXN0ZW4uCipBcmdsKiB2ZXJmbGl4dGUgV2FsemUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBuZSBibG9uZGluZSAoR3V5YnJ1c2gsICAyLiBOb3YgMTk5NSwgMTE6NTc6MTQpOgojISBybj1Bc21vZGlzIHJ0PTgxNTMwOTc4OQpSZWljaHQgZGFzIGF1Y2gsIHdlbm4gaWNoIG1hbCB3aWVkZXIgbmFjaCBPZXN0ZXJyZWljaCBmYWhyZT8KR3V5YnJ1dHNjaC4uYWVoLi5icnVzY2guLi5hZWggYnJ1c2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NoIG5lIGJsb25kaW5lIChDcmVhdGl2ZSwgIDIuIE5vdiAxOTk1LCAxMTo1ODozMik6CiMhIHJuPUFzbW9kaXMgcnQ9ODE1MzA5Nzg5CipncnVtbWVsKiwgYWJlciAqcHJ1c3QqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBuZSBibG9uZGluZSAoQXNtb2RpcywgIDIuIE5vdiAxOTk1LCAxMTo1ODo0Nik6Ck9lc3RlcnJlaWNoZXIsIG1hbCB3ZWdob2VyZW4gOikKCgoKCgoKCgoKCgpXYXMgcGFzc2llcnQsIHdlbm4gZWluZSBkZXV0c2NoZSBCbG9uZGluZSBuYWNoIE9lc3RlcnJlaWNoIGF1c3dhbmRlcnQ/CgpJbiBiZWlkZW4gTGFlbmRlcm4gc3RlaWd0IGRlciBkdXJjaHNjaG5pdHRsaWNoZSBJUS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWVzIGF1cyBkZXIgSG90bGluZSAoQXNtb2RpcywgIDIuIE5vdiAxOTk1LCAxMjowMjo0Mik6Ci4uCi4uClRlY2huaWtlcjogSWNoIGtvbW1lIG5pY2h0IGluIGRhcyBHZXJhZXQuClRQUzogICAgICAgQXVmIHdlbGNoZSBEYXRlbnVlYmVydHJhZ3VuZ3NwYXJhbXRlciBoYWJlbiBTaWUgSWhyZSBFbXVsYXRpb24KZGVubgogICAgICAgICAgIGVpbmdlc3RlbGx0PwpUZWNobmlrZXI6IE1vbm9jaHJvbSwgNy1iaXQtRGFyc3RlbGx1bmcsIFhvbi9Yb2ZmIGV0Yy4KVFBTOiAgICAgICBJY2ggbWVpbmUgei5CLiBtaXQgd2VsY2hlciBHZXNjaHdpbmRpZ2tlaXQgYXJiZWl0ZXQgZGllIEVtdWxhdGlvbj8KVGVjaG5pa2VyOiBEaWUgVmVyc2lvbiBkZXIgRW11bGF0aW9uIGlzdCAzLjB4LgpUUFM6ICAgICAgIFVuZCBtaXQgd2VsY2hlciBHZXNjaHdpbmRpZ2tlaXQuLi4/ClRlY2huaWtlcjogV28gc2NoYXVlIGljaCBkYXMgZGVubiBuYWNoPwpUUFM6ICAgICAgIEluIGRlciBLb25maWd1cmF0aW9uIElocmVyIFRlcm1pbmFsZW11bGF0aW9uLgpUZWNobmlrZXI6IChzdWNoZW5kIG11cm1lbG5kKS4uLiBTeXN0ZW1zdGV1ZXJ1bmcgLi4uIERlc2t0b3AgLi4uIFdpbmRvd3MKU2V0dXAKICAgICAgICAgICAuLi4gVGVybWluYWw/IFRlcm1pbmFsISBFaW5zdGVsbHVuZ2VuLCBqYSBkYSBoYWIgaWNoIHdhcy4gQWJlciBkYQogICAgICAgICAgIGlzdCBhbGxlcyBsZWVyLCBkYSBpc3QgbmljaHRzIGVpbmdlc3RlbGx0LgpUUFM6ICAgICAgIFVuZCBTaWUgc2luZCBzaWNoZXIsIGRhc3MgU2llIHNpY2ggaW4gSUhSRVIgRW11bGF0aW9uIGJlZmluZGVuIHVuZAogICAgICAgICAgIG5pY2h0IGluIGRlciBUZXJtaW5hbGVtdWxhdGlvbiB2b24gV2luZG93cz8KVGVjaG5pa2VyOiBXZWlzcyBuaWNodD8/PwpUUFM6ICAgICAgIFNjaGF1ZW4gU2llIG1hbCBiaXR0ZSB1bnRlciBJbmZvIG5hY2gsIHdhcyBzdGVodCBkZW5uIGRhPwpUZWNobmlrZXI6IE1pY3Jvc29mdCBXaW5kb3dzIC4uLiBldGMuClRQUzogICAgICAgQCNAJCVAIQpUZWNobmlrZXI6IFR1dCBtaXQgbGVpZCwgZGFubiBmaW5kZSBpY2ggbmljaHRzLgpUUFM6ICAgICAgICh6d2VpZmVsbmQpIFdlbm4gbWFuIGRhIG5pY2h0cyBlaW5zdGVsbGVuIGthbm4sIGRhbm4gbXVzcyBkaWUKICAgICAgICAgICBFbXVsYXRpb24gbWl0IGlyZ2VuZHdlbGNoZW4gRGVmYXVsdC1XZXJ0ZW4gYXJiZWl0ZW4uClRlY2huaWtlcjogKGJlZ2Vpc3RlcnQpIEphIQpUUFM6ICAgICAgICh2ZXJ6d2VpZmVsbmQpIFVuZCB3ZWxjaGUga29lbm50ZW4gZGFzIHNlaW4/ClRlY2huaWtlcjogV29oZXIgc29sbCBpY2ggZGFzIGRlbm4gd2lzc2VuLCB3aWUga2FubiBpY2ggZGFzIGRlbiBoZXJhdXNmaW5kZW4/CiAgICAgICAgICAgS29lbm5lbiBTaWUgZGFzIG5pY2h0IGlyZ2VuZHdvIG5hY2hzY2hhdWVuPwpUUFM6ICAgICAgICgjQCNAJiEhISkgTmVpbi4KLi4KLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXVlbndpdHogKEFzbW9kaXMsICAyLiBOb3YgMTk5NSwgMTI6MTg6NDMpOgoKV2FzIGhhYmVuIEZyYXVlbiB1bmQgQm94ZXIgZ2VtZWluc2FtID8/CgoKU2llIHdlcmRlbiBha3Rpdiwgd2VubiBzaWUgZWluZW4gUmluZyBzZWhlbiAhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVzIGF1cyBkZXIgSG90bGluZSAoVGFya2luLCAgMi4gTm92IDE5OTUsIDEzOjEyOjExKToKIyEgcm49QXNtb2RpcyBydD04MTUzMTAxNjIKVG9sbGVyIFdpdHohIE1laW4gS29tcGxpbWVudCBkYXp1IDooICAgICAgICAgICAgIFRhcmtpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZyYXVlbndpdHogKFNjaHJ1bXBmaSwgIDIuIE5vdiAxOTk1LCAxNjozMDozNyk6CiMhIHJuPUFzbW9kaXMgcnQ9ODE1MzExMTIzClJlbm5lbiBzaWUgd2VnIG9kZXIgd2FzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGV0enRlIFdvcnRlISAoZGllc21hbCBmdWVyIE1hZ2llcikgKEF6enVybywgIDMuIE5vdiAxOTk1LCAwMDowNzo0OSk6Cl8gV2llc28gc29sbHRlIGljaCBkYXMgVm9pZCBuaWNodCB1cGRhdGVuPwoKLSBJY2ggdGVzdGUgbWFsIG1laW4gbmV1ZXMgVG9vbCAqKiBjb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QgKioqCgotIHhjYWxsICRtZS0+bW92ZShmaW5kX3BsYXllcigic2VoZXIiKSxNX0dPKQogICJDb29sIGRhIHN0ZWh0IGphIGVpbiBNdWVsbHNjaGx1Y2tlci4gSWNoIGZyYWcgbWljaCBudXIgd2FzIGRlciBTcGllbGVyCmRhbWl0IHdpbGw/IgotIHRlaWxlIHNwaWVsZXIgbWl0IFNjaGF1IG1hbCBpbiBkaWUgTmlzY2hlLCBkYSBzdGVodCBlaW4gWkF1YmVydHJhbmsKICBzd2hvCiAgQ2F0d2VhemxlLT5ESUNICiAgKkFSR0wqCgotIEljaCBnbGF1YmUgaWNoIGhhYmUgWmFwIGpldHp0IGdlcmFmZnQgUGFwYS4KICBXZW5uIGljaCAiemFwIEpvZiIgdGlwcGUgdHJpZmZ0IGVzIEpvZiBvZGVyPwogIEdsZWljaCBtYWwgdGVzdGVuIQoKQXVjaCBNYWdpZXIgaGFiZW4gZXMgbWFuY2htYWwgbmljaHQgbGVpY2h0ISA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV0YWhvbGljcyAoTGksICAzLiBOb3YgMTk5NSwgMDk6NTE6MjcpOgpIaSEKSGV1dGUgZ2VmdW5kZW4gaW0gSW50ZXJuZXQ6IGRpZSBOZXRhaG9saWNzIEFub255bW91cyBob21lcGFnZTogaGllciBlaW4Ka2xlaW5lciBUZXN0IGZ1ZXIgYWxsZS4KCgogICAgICAgICAgICAgICAgICAgICAgIFtXZWxjb21lIHRvIE5ldGFob2xpY3MgQW5vbnltb3VzXQoKWW91IGtub3cgeW91J3JlIGhvb2tlZCBvbiB0aGUgaW50ZXJuZXQgaWYuLi4KCiAgICogWW91IHRoaW5rICJzdXJmaW5nIiBpcyBzb21ldGhpbmcgeW91IGRvIG9uIGRyeSBsYW5kLiBKZWZmIEQuLCBTYW4KICAgICBGcmFuY2lzY28sIENBCiAgICogWW91IGZpbmQgeW91cnNlbGYgc3RhcmluZyBhdCB5b3VyICJpbmJveCIgd2FpdGluZyBmb3IgbmV3IGUtbWFpbCB0bwogICAgIGFycml2ZS4gQWxleCBLLiwgRGFsbGFzLCBUWAogICAqIFlvdSBjb21tdW5pY2F0ZSB3aXRoIHBlb3BsZSBvbiBvdGhlciBjb250aW5lbnRzIG1vcmUgdGhhbiB5b3UgZG8gd2l0aAp5b3VyCiAgICAgb3duIG5laWdoYm9ycy4gU3RldmVuIFAuLCBCb2NhIFJhdG9uLCBGTAogICAqIFlvdXIgYnVzaW5lc3MgY2FyZHMgY29udGFpbiB5b3VyIGUtbWFpbCBhZGRyZXNzLiBMb25uaWUgRC4sIE5ZQwogICAqIFlvdSBsZWFybiBIVE1MIGFuZCBjcmVhdGUgeW91ciBvd24gaG9tZSBwYWdlLiBQYW0gSy4sIEZvcnQgTGF1ZC4sIEZMCgoKCllvdSBrbm93IHlvdSdyZSByZWFsbHkgaG9va2VkIG9uIHRoZSBpbnRlcm5ldCBpZi4uLgoKICAgKiBZb3UgY3V0IGNsYXNzZXMgb3IgbWlzcyB3b3JrIHNvIHlvdSBjYW4gc3RheSBob21lIGFuZCBicm93c2UgdGhlIHdlYi4KICAgICBUb21teSBQLiwgQ2FtYnJpZGdlLCBNQQogICAqIFdoZW4geW91IGdldCBob21lIGZyb20gYSBsb25nIGRheSwgeW91IHR1cm4gb24gdGhlIGNvbXB1dGVyIGJlZm9yZSB0aGUKYWlyCiAgICAgY29uZGl0aW9uZXIKICAgICBvciB0aGUgdGVsZXZpc2lvbi4gU3RldmUgSi4sIEZvcnQgTXllcnMsIEZMCiAgICogWW91IHNpdCBkb3duIGF0IHRoZSBjb21wdXRlciByaWdodCBhZnRlciBkaW5uZXIgYW5kIHlvdXIgc3BvdXNlIHNheXMKIlNlZQogICAgIHlvdSBpbiB0aGUgbW9ybmluZy4iIEFsbGlzb24gUy4sIENsZXZlbGFuZCwgT0g7IE1yLiBDcm93LCBXb29kbGFuZApIaWxscywKICAgICBDQS4KICAgKiBZb3VyIGtpZHMgc3RhcnQgcmVmZXJyaW5nIHRvIHlvdSBhcyAidGhhdCBndXkgaW4gZnJvbnQgb2YgdGhlIG1vbml0b3IuIgogICAgIEJvYiBTLiwgQ29vcGVyIENpdHksIEZMCiAgICogWW91ciB3aWZlIG1lbHRzIHlvdXIga2V5Ym9hcmQgZG93biBpbiB0aGUgb3Zlbi4gU3Bpbm5lciwgVHVjc29uLCBBWgogICAqIFlvdSBjb25zaWRlciBzZWxsaW5nIGRydWdzIHRvIHBheSBmb3IgeW91ciBvbmxpbmUgY2hhcmdlcy4gSm9obiBTLiwKICAgICBDaGljYWdvLCBJTAoKCllvdSBrbm93IHlvdSdyZSByZWFsbHksIHJlYWxseSBob29rZWQgb24gdGhlIGludGVybmV0IGlmLi4uCgogICAqIFlvdSB0aGluayBtb3JlIGFib3V0IGJlaW5nIG9ubGluZSB0aGFuIHlvdSBkbyBhYm91dCBzZXguIE1pa2UgRi4sCiAgICAgV2FzaGluZ3RvbixEQwogICAqIFlvdSBhY3R1YWxseSBkbyBzZWxsIGRydWdzIHRvIHBheSBmb3IgeW91ciBvbmxpbmUgY2hhcmdlcy4gSm9obiBTLiwKICAgICBDaGljYWdvLCBJTAogICAqIFlvdSdyZSBjb25zdGFudGx5IHllbGxpbmcgYXQgeW91ciB3aWZlIGZvciB1c2luZyB0aGUgcGhvbmUgZm9yIHN0dXBpZAogICAgIHRoaW5ncy4uLmxpa2UgdGFsa2luZy4KICAgICBKZWZmIE0uLCBMb25nIElzbGFuZCwgTlkKICAgKiBZb3VyIGh1c2JhbmQgaGFzIGhpcyBsYXd5ZXIgc2VydmUgdGhlIGRpdm9yY2UgcGFwZXJzIHZpYSBlLW1haWwuIEplbm55CkwuLAogICAgIENoYXBlbCBIaWxsLCBOQwogICAqIFlvdXIgY29tcHV0ZXIgY29zdHMgbW9yZSB0aGFuIHlvdXIgY2FyLiBKYW4gQi4sIERlcyBNb2luZXMsIElBCgoKCkl0IG1heSBiZSB0aW1lIHRvIHNlZWsgcHJvZmVzc2lvbmFsIGNvdW5zZWxpbmcgaWYuLi4KCiAgICogWW91IGZpbmQgeW91cnNlbGYgY291bnRpbmcgZW1vdGljb25zIHRvIGdldCB0byBzbGVlcC4KICAgKiBZb3UgcmVmdXNlIHRvIGdvIHRvIGEgdmFjYXRpb24gc3BvdCB3aXRoIG5vIGVsZWN0cmljaXR5IGFuZCBubyBwaG9uZQogICAgIGxpbmVzLgogICAqIFNvbWVvbmUgYXNrcyB5b3Ugd2hlcmUgeW91IGxpdmUgYW5kIHlvdSByZXBseSB3aXRoIHlvdXIgSVAgYWRkcmVzcy4KICAgKiBXaGVuIGV2ZXJ5Ym9keSBlbHNlIHVzZXMgdGhlIGdyZWV0aW5nICJob3cgYXJlIHlvdT8iIGFuZCB5b3UgdXNlIHRoZQogICAgIGdyZWV0aW5nCiAgICAgIndoZXJlIHdvdWxkIHlvdSBsaWtlIHRvIGdvIHRvZGF5PyIgSmFuaXMgQS4sIGphbm51bnppQGdubi5jb20KCgoKQnV0IHdhaXQuLi50aGVyZSdzIGhvcGUhCgpJZiB5b3UgcmVjb2duaXplIGFueSBvZiB0aGVzZSB3YXJuaW5nIHNpZ25zLCB2ZW50dXJlIGZvcndhcmQgdG8gZ2V0IHRoZQppbW1lZGlhdGUgaGVscCB5b3UgbmVlZC4KCgpMaShiZXNvcmd0KQpXZW4gZGllIEFkcmVzc2UgaW50ZXJlc3NpZXJ0OiBodHRwOi8vbWVtYmVycy5nbm4uY29tL3BhbS9pbmRleC5odG0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZXJnZW53aXR6IChMYXJpZWwsICA0LiBOb3YgMTk5NSwgMTQ6Mjc6NTQpOgpXYXJ1bSB6aWVodCBlaWdlbnRsaWNoIGtlaW5lciB1ZWJlciBkYXMgVm9sayBkZXMgQmVyZ2VzIGhlcj8KCkluIFBvcnRWYWluIHdpcmQgZWluIHRvdGVyIFp3ZXJnIGF1cyBkZW0gSGFmZW5iZWNrZW4gZ2V6b2dlbiAtIGdlZmVzc2VsdCwKZ2VrbmViZWx0LCBtaXQgZHJlaSBNaXRocmlsa2V0dGVuIHVtd2lja2VsdCwgYW4gZWluZW4gR2VsZHNjaHJhbmsgZ2VzY2h3ZWlzc3QKdW5kIG1pdCBlaW5lbSBzY2h3ZXJlbiBTdGVpbiBhbiBkZW4gRnVlc3Nlbi4KRGllIFN0YWR0d2FjaGUgdW50ZXJzdWNodCBkZW4gRmFsbC4gRGVyIEtvcnBvcmFsIG1laW50IGRhenUgdW5nZXJ1ZWhydDoKIk1pc3QtCnp3ZXJnZSEgS2xhdWVuIGltbWVyIG1laHIgYWxzIHNpZSB0cmFnZW4ga29lbm5lbiEiCgpEYW5rZSBmdWVyIGRpZSBBdWZtZXJrc2Fta2VpdCwKTGFyaWVsLCBXYWxkbGFldWZlciB1bmQgRWxmIGF1cyBMZWlkZW5zY2hhZnQhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogWndlcmdlbndpdHogKEF1Z3JhLCAgNC4gTm92IDE5OTUsIDE1OjI3OjQ3KToKIyEgcm49TGFyaWVsIHJ0PTgxNTQ5MTY3NAoKU2Nob2VlZWVlZW5ubiEKQXVncmEsIGxhY2h0IGltbWVyIG5vY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZXJnZW53aXR6IChMYXJpZWwsICA0LiBOb3YgMTk5NSwgMTc6MzE6MDIpOgpVbmQsIHdlaWxzIHNvIHNjaG9lbiB3YXIgLSBnbGVpY2ggbm9jaCBlaW5lbjoKCkVpbiBFbGYgc2llaHQgYXVmIGRlciBXaWVzZSBhbSBEdW5rZWx3YXNzZXIgZWluZW4gWndlcmdlbi4KRGVyIEVsZiBmcmFndDogSGFsbG8gWndlcmcsIHdhcyB0dXN0IGR1IGRhPwpEYXJhdWYgZXJ3aWRlcnQgZGVyIFp3ZXJnOiBJY2ggc3BpZWxlIFNjaG5lY2tlbmZhbmdlbiEKRGVyIEVsZjogVW5kLCBpc3QgZGFzIGx1c3RpZz8KRGVyIFp3ZXJnIHNhZ3QgZGFyYXVmOiBXZWlzcyBpY2ggZG9jaCBuaWNodCAtIEltbWVyIHdlbm4gaWNoIG1pY2ggYnVlY2tlIC0KSHVzY2gsIHdlZyBzaW5kIHNpZSBhbGxlIQoKRGFua2UgZnVlcnMgbGVzZW4sCkxhcmllbCwgV2FsZGxhZXVmZXIgdW5kIEVsZiBhdXMgTGVpZGVuc2NoYWZ0CihXaWUgdmllbGUgWndlcmdlIG1pY2ggamV0enQgd29obCBuaWNodCBtZWhyIG1vZWdlbi4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZXJnZT8gKE1pZXplLCAgNi4gTm92IDE5OTUsIDA5OjMzOjAxKToKCkRlciBXaXR6IGlzdCBlaWdlbnRsaWNoIG1pdCBCcmF0c2NoZXJuLi4ud2VpbCBkaWUgaW0gT3JjaGVzdGVyIG5peCB6dSB0dW4KaGFiZW4uIEFiZXIgbWl0IFp3ZXJnZW4gaXN0IGVyIGF1Y2ggbmljaHQgdWViZWwuCgpNaWV6ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFp3ZXJnZW53aXR6IChSb2NodXMsICA2LiBOb3YgMTk5NSwgMjE6MDk6NDUpOgojISBybj1MYXJpZWwgcnQ9ODE1NTAyNjYyCkVpbmUgZHVtbWUgRnJhZ2U6ClNlaXQgd2FubiBtdWVzc2VuIHNpY2ggWndlcmdlIEJVRUNLRU4sIHVtIFNjaG5lY2tlbiB6dSBmYW5nZW4/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthbSBlaW5lIEZlZS4uLiAoUGFyYWNlbHN1cywgIDYuIE5vdiAxOTk1LCAyMjoyMjoyNSk6CkVpbmUgRmVlIHNpZWh0IHNpY2ggYXVmIGRlciBFcmRlIHVtIHVuZCBmaW5kZXQgdGF0c2FlY2hsaWNoIGVpbmVuIE1hbm4sCmRlciBpbW1lciBndXQgenUgc2VpbmVuIE1pdG1lbnNjaGVuIGlzdC4gU2llIGJlZ2lidCBzaWNoIGFsc28genUgZGVtCk1hbm4gdW5kIHNhZ3QgenUgaWhtOgoKIldlaWwgRHUgaW1tZXIgc28gZ3V0IHp1IERlaW5lbiBNaXRtZW5zY2hlbiBiaXN0LCBlcmZ1ZWxsZSBpY2ggRGlyIGVpbmVuCiBXdW5zY2guIEFsbGVyZGluZ3MgbXVzcyBpY2ggRGlyIHNhZ2VuLCBkYXNzIGljaCBub2NoIG5pY2h0IGxhbmdlIGVpbmUKIEZlZSBiaW4gdW5kIGRhaGVyIGtlaW5lIFVlYnVuZyBtaXQgV3VlbnNjaGVuIGhhYmUuIFdlbm4gRHUgRGlyIGFsc28KIGV0d2FzIGVpbmZhY2hlcyB3dWVuc2NoZW4ga29lbm50ZXN0Li4uIgoKRGVyIE1hbm4gaG9sdCBlaW5lbiBHbG9idXMgaGVydm9yIHVuZCBzcGlja3QgaWhuIGFuIHNlaHIgdmllbGVuIE9ydGVuCm1pdCBrbGVpbmVuIEZhZWhuY2hlbiB1bmQgc2FndDoKCiJVZWJlcmFsbCB3byBlaW4gRmFlaG5jaGVuIHN0ZWNrdCBpc3QgZWluIEtyaWVnLiBTb3JnZSBkb2NoIGJpdHRlIGRhZnVlciwKIGRhc3Mgc2ljaCBkaWUgTWVuc2NoZW4gZG9ydCB2ZXJ0cmFnZW4gdW5kIEZyaWVkZW4gc2NobGllc3Nlbi4iCgpEaWUgRmVlOiAiSG1tLCBkYXMgaXN0IGFiZXIgc2VociBzY2h3ZXIuIEhhc3QgRHUga2VpbmVuIGVpbmZhY2hlcmVuCiBXdW5zY2ggPyIKCkRlciBNYW5uOiAiVGphLCB3ZWlzc3QgRHUsIG1laW5lIEZyYXUgaXN0IGJsb25kLiBXZW5uIHNpZSBkb2NoIG51ciBldHdhcwogaW50ZWxsaWdlbnRlciB3YWVyZS4iCgpEaWUgRmVlOiAiR2liIG1pciBkZW4gR2xvYnVzICEiCgpQYXJhY2Vsc3VzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEthbSBlaW5lIEZlZS4uLiAoTW9yZ290aCwgIDcuIE5vdiAxOTk1LCAwOTowNzo0NCk6CiMhIHJuPVBhcmFjZWxzdXMgcnQ9ODE1NjkyOTQ1CioqKmJydWVsbCoqKgoqKipsYWNoIHRvdCoqKgoqKip3YWVseioqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5zcmUgUG9saXplaS0gZWluIFRhdHNhY2hlbmJlcmljaHQsIGtlaW4gV2l0eiEgKE1pZXplLCAgNy4gTm92IDE5OTUsIDA5OjQzOjM3KToKCgpaZWl0YW5zYWdlIGltIFJhZGlvOiBWZXJlaHJ0ZSBadWhvZXJlciwgZXMgaXN0IGpldHp0IGRyZWl2aWVydGVsIG5ldW4uIFVuZApmdWVyIHVuc2VyZSBQb2xpemlzdGVuIG5vY2ggZWlubWFsOiB3aXIgaGFiZW4gZXMgamV0enQ6IEJyZXR6ZWw6U2Vzc2VsIFNlc3NlbC4KCk1pZXplLCBkaWUgaG9mZnQsIGRhc3MgSWhyIGxhY2hlbiBrb2VubnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbnNyZSBQb2xpemVpLSBlaW4gVGF0c2FjaGVuYmVyaWNodCwga2VpbiBXaXR6ISAoTGksICA3LiBOb3YgMTk5NSwgMTA6MTk6MjgpOgojISBybj1NaWV6ZSBydD04MTU3MzM4MTcKZGVuIGthbm50ZSBpY2ggbWl0IG1hbnRhZmFocmVybi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVuc3JlIFBvbGl6ZWktIGVpbiBUYXRzYWNoZW5iZXJpY2h0LCBrZWluIFdpdHohIChZZW5kaSwgIDcuIE5vdiAxOTk1LCAxMjoxNzowOSk6CiMhIHJuPU1pZXplIHJ0PTgxNTczMzgxNwoKS2FubiBtaXIgZGVuIG1hbCBqZW1hbmQgZXJrbGFlcmVuPwoKICAgWWVuZGkgZGVyIEJsb25kZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLYW0gZWluZSBGZWUuLi4gKEhhcmRpbCwgIDcuIE5vdiAxOTk1LCAxMjozMjoxMik6CiMhIHJuPVBhcmFjZWxzdXMgcnQ9ODE1NjkyOTQ1CkhtbW0sIGRhcyBtaXQgZGVyIEZlZSBpc3Qgc28gamEgbmV0dC4gVmllbCBuZXR0ZXIgd2lyZCBkZXIgV2l0eiBhYmVyIG5vY2gsCndlbm4gZGVyIE1hbm4gc2ljaCB3dWVuc2NodCwgZGFzcyBkZXIgMS4gRkMgS29lbG4gTWVpc3RlciB3aXJkLiAoc28gZXJ6YWVobHQKbWFuIHNpY2ggZGVuIFdJdHogaGllcikuLi4gOi0pCgotSGFyZGlsLgpOTk4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW5zcmUgUG9saXplaS0gZWluIFRhdHNhY2hlbmJlcmljaHQsIGtlaW4gV2l0eiEgKEFyYW55YSwgIDcuIE5vdiAxOTk1LCAxMzoxMDoxNCk6CiMhIHJuPU1pZXplIHJ0PTgxNTczMzgxNwpVbmQgZWluZSBTdHVuZGUgc3BhZXRlcjogQW5nZWJpc3NlbmUgQnJlemVsLCBTZXNzZWwuLi4KCkFyYW55YQogICAgICAgTk5OCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFVuc3JlIFBvbGl6ZWktIGVpbiBUYXRzYWNoZW5iZXJpY2h0LCBrZWluIFdpdHohIChDYXR3ZWF6bGUsICA3LiBOb3YgMTk5NSwgMTM6MjA6NTcpOgojISBybj1ZZW5kaSBydD04MTU3NDMwMjkKRWFzeSwgWWVuZGkhCgpEcmVpdmllcnRlbCA5IGlzdCBpbiBldHdhIDg6NDQgVWhyLgpLbGluZ2VsdHMgamV0enQgPyA6LSkKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbnNyZSBQb2xpemVpLSBlaW4gVGF0c2FjaGVuYmVyaWNodCwga2VpbiBXaXR6ISAoWWVuZGksICA3LiBOb3YgMTk5NSwgMTM6MzM6MjEpOgojISBybj1DYXR3ZWF6bGUgcnQ9ODE1NzQ2ODU3CgoKQWNoIHNvb28uLi4KCkFiZXIgd2FzIGlzdCBkZW5uIGRpZSAiNSI/IFdhZXJlIDg6NDUgbmljaHQgIkJyZXplbCwgU2Vzc2VsIEt1ZWhsZXJoYXViZSI/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhlIEl0YWxpYW4gLi4uIChBbGJvaW4sICA3LiBOb3YgMTk5NSwgMTM6NDQ6MTgpOgogICAgVGhlIEl0YWxpYW4gd2hvIHdlbnQgdG8gTWFsdGEKCihtdXN0IGJlIHJlYWQgd2l0aCBhbiBpdGFsaWFuIGFjY2VudCwgcHJlZmFyYWJseSBsb3VkIG91dCkKCk9uZSBkYXkgaW1hIGdvbm5hIE1hbHRhIHRvIGJpZ2dhIGhvdGVsLiBJbmEgTW9ybmluZyBJIGdvIGRvd24gdG8gZWF0CmJyZWFrZmFzdC4gSSB0ZWxsYSB3YWl0cmVzcyBJIHdhbm5hIHR3byBwaXNzaXMgdG9hc3QuIFNoZSBicmluZ3MgbWUgb25seSBvbmUKcGlzcy4gSSB0ZWxsYSBoZXIgSSB3YW50IHR3byBwaXNzLiBTaGUgc2F5IGdvIHRvIHRoZSB0b2lsZXQuIEkgc2F5IHlvdSBubwp1bmRlcnN0YW5kIC4gSSB3YW5uYSB0byBwaXNzIG9ubmEgbXkgcGxhdGUuIFNoZSBzYXkgeW91IGJldHRlciBub3QgcGlzcyBvbm5hCnBsYXRlLCB5b3Ugc29ubmEgbWEgYml0Y2guIEkgZG9uJ3QgZXZlbiBrbm93IHRoZSBsYWR5IGFuZCBzaGUgY2FsbCBtZSBzb25uYQptYSBiaXRjaC4KTGF0ZXIgSSBnbyB0byBlYXQgYXQgdGhlIGJpZ2dhIHJlc3RhdXJhbnQuIFRoZSB3YWl0cmVzcyBicmluZ3MgbWUgYSBzcG9vbgphbmQga25pZmUgYnV0IG5vIGZvY2suIEkgdGVsbGEgaGVyIEkgd2FubmEgZm9jay4gU2hlIHRlbGwgbWUgZXZlcnlvbmUgIHdhbm5hCmZvY2suIEkgdGVsbCBoZXIgeW91IG5vIHVuZGVyc3RhbmQuIEkgd2FubmEgZm9jayBvbiB0aGUgdGFibGUuIFNoZSBzYXkgeW91CmJldHRlciBub3QgZm9jayBvbiB0aGUgdGFibGUsIHlvdSBzb25uYSBtYSBiaXRjaC4gSSBkb24ndCBldmVuIGtub3cgdGhlIGxhZHkKYW5kIHNoZSBjYWxsIG1lIHNvbm5hIG1hIGJpdGNoLgpTbyBJIGdvIGJhY2sgdG8gbXkgcm9vbSBpbm5hIGhvdGVsIGFuZCB0aGVyZSBpcyBubyBzaGl0cyBvbm5hIG15IGJlZC4gQ2FsbAp0aGUgbWFuYWdlciBhbmQgdGVsbGEgaGltIEkgd2FubmEgc2hpdC4gSGUgdGVsbCBtZSB0byBnbyB0byB0b2lsZXQuIEkgc2F5IHlvdQpubyB1bmRlcnN0YW5kLiBJIHdhbm5hIHNoaXQgb24gbXkgYmVkLiBIZSBzYXkgeW91IGJldHRlciBub3Qgc2hpdCBvbm5hIGJlZCwKeW91IHNvbm5hIG1hIGJpdGNoLiBJIGRvbid0IGV2ZW4ga25vdyB0aGUgbWFuIGFuZCBoZSBjYWxsIG1lIHNvbm5hIG1hIGJpdGNoLgpJIGdvIHRvIHRoZSBjaGVja291dCBhbmQgdGhlIG1hbiBhdCB0aGUgZGVzayBzYXk6ICJQZWFjZSBvbiB5b3UiLiBJIHNheQpwaXNzIG9uIHlvdSB0b28sIHlvdSBzb25uYSBtYSBiaXRjaCwgSSBnb25uYSBiYWNrIHRvIEl0YWx5LgoKQWxzbyBpY2ggaGFiZSBtaWNoIGplZGVuZmFsbHMgaGFsYnRvdGdlbGFjaHQuCkNpYW8gQWxibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmRpbmUgbmFjaCBNYWxsb3JjYSAoQXNtb2RpcywgIDcuIE5vdiAxOTk1LCAyMzoxMzoxNSk6CkluIGVpbmVtIEZsdWd6ZXVnIG5hY2ggTWFsbG9yY2Egc2l0enQgaW4gZGVyIGVyc3RlbiBSZWloZSBlaW5lIEJsb25kaW5lLgpLb21tdCBkaWUgU3Rld2FyZGVzcyB1bmQgdGVpbHQgaWhyIG1pdCwgc2llIG11ZXNzZSBzaWNoIGJpdHRlIGluIGRpZQp2aWVydGUgUmVpaGUgc2V0emVuLCBkYSBkaWUgZXJzdGVuIGRyZWkgZnVlciBkaWUgZXJzdGUgS2xhc3NlIHJlc2VydmllcnQKc2VpZW4uIERpZSBkYXJhdWY6IklzY2ggYmluIGJsb25kLCBibG9lZCB1bmQgZmxpZWcnIG5hY2ggTWFsbG9yY2EgISIuCkRlciBkYW5uIHp1IEhpbGZlIGdlcnVmZW5lIFN0ZXdhcmQgc2FndCBpaHI6IkhvZXJuJ3NlIG1hbCwgU2llIGhhYmVuIGtlaW4KMS4gS2xhc3NlLVRpY2tldCwgU2llIG11ZXNzZW4gc2ljaCBuYWNoIGhpbnRlbiBzZXR6ZW4hIi4KRGllIHdpZWRlcjoiSXNjaCBiaW4gYmxvbmQsIGJsb2VkIHVuZCBmbGllZycgbmFjaCBNYWxsb3JjYSAhIi4KRGFubiB3aXJkIGRlciBQaWxvdCB6dSBIaWxmZSBnZXJ1ZmVuLiBEZXIgZmx1ZXN0ZXJ0IGRlciBCbG9uZGluZSB3YXMgaW5zCk9ociwgd29yYXVmIHNpZSBwbG9ldHpsaWNoIHBhbmlzY2ggaWhyZSBTYWNoZW4gcGFja3QgdW5kIHdpZSBkZXIgZ2VvZWx0ZQpCbGl0eiBpbiBkaWUgdmllcnRlIFJlaWhlIHdldHp0LiBBdWYgZGllIHZlcnd1bmRlcnRlIEZyYWdlIGRlciBTdGV3YXJkZXNzLAp3aWUgZXIgZGFzIGRlbm4gZ2VzY2hhZmZ0IGhhYmUsIGFudHdvcnRldCBlcjoiSWNoIGhhYmUgaWhyIGdlc2FndCwgZGllCmVyc3RlbiBkcmVpIFJlaWhlbiB3dWVyZGVuIG5pY2h0IG5hY2ggTWFsbG9yY2EgZmxpZWdlbiIuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGFtcG9uIChBc21vZGlzLCAgNy4gTm92IDE5OTUsIDIzOjE3OjI0KToKTWFtaS4uLi4uCgpKYSwgbWVpbiBTb2huPwoKTWFtaSwgaWNoIGhhZXR0ZSBnZXJuZSBlaW5lbiBUYW1wb24uCgpGdWVyIHdhcyBicmF1Y2hzdCBkdSBkZW4gZWluZW4gVGFtcG9uPwoKSWNoIGhhYmUgZ2Vob2VydCBtaXQgZWluZW0gVGFtcG9uIGthbm4gbWFuIGFsbGVzIG1hY2hlbi4uLgouLiBSZWl0ZW4sIFNjaHdpbW1lbiwgVGFuemVuLi4uCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZpZXMgKEFzbW9kaXMsICA3LiBOb3YgMTk5NSwgMjM6MjE6MjUpOgoKV2FzIGlzdCBmaWVzID8/Pz8/Pz8/CgpFaW5lbiBCbGluZGVuIGlucyBLaW5vIHp1IHNjaGlja2VuICEhISEKCldhcyBpc3QgbnVuIGFiZXIgc2F1ZmllcyA/Pz8/Pz8/Pz8/PwoKV2VubiBtYW4gZWluZW4gU3R1bW1maWxtIGdld2FlaGx0IGhhdCAhISEhISEhISEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp2ZXJzYXV0ZXIgV2l0eiAoQXNtb2RpcywgIDcuIE5vdiAxOTk1LCAyMzoyNDowNSk6CktvbW10IGVpbiBNYW5uIHp1bSBBcnp0LCB1bmQgbWVpbnQ6CkhlcnIgRG9rdG9yLCBtaXQgbWVpbmVyIGZyYXUgdW5kIG1pciwgZGFzIGtsYXBwdCBuaWNoIG1laHIgc28gcmljaHRpZywgd2FzCmthbm4gaWNoIGRlbm4gZGEgbWFjaGVuPz8/CkFyenQ6IEtvbW1lbiBzZSBtYSBtaXQgYW5zIEZlbnN0ZXIgISEhISBTZWhlbiBzaWUsIHdpZSBkZXIgSHVuZCBkb3J0IGRpZQpIdWVuZGluLCBkaWUgYW4gZGVyIExhdGVybmUgZmVzdGdlYnVuZGVuIGlzdCwgc28gcmljaHRpZyByYW4gbmltbXQgPz8/Pz8KUGF0aWVudDogSmEgISEhISEKQXJ6dDogU2VoZW4gc2llLCBnZW5hdSBzbyB3aXJkIGdlbWFjaHQgISEhISEKCgoyIFdvY2hlbiBzcGFldGVyIC0gdW52ZXJob2ZmdGVzIFRyZWZmZW4gLi4uLgoKQXJ6dDogVW5kID8/Pz8/ClBhdGllbnQ6IE5pY2h0cy0gTWVpbmUgRnJhdSB3b2xsdGUgc2ljaCBuaWNodCBuYWNrdCBhbiBkaWUgTGF0ZXJuZSBiaW5kZW4KbGFzc2VuICEhISEhISEhISEhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVW5zcmUgUG9saXplaS0gZWluIFRhdHNhY2hlbmJlcmljaHQsIGtlaW4gV2l0eiEgKFRhcmtpbiwgIDguIE5vdiAxOTk1LCAxMDozNDozMSk6CiMhIHJuPUNhdHdlYXpsZSBydD04MTU3NDY4NTcKTkVJTiEhIDopIEJpbiBzY2hlaW5iYXIgenUgYmxvZWRlIGRhZnVlciEgICAgICAgICBUYXJraW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpa2luaSAoR3JpbW1ib3JuLCAgOC4gTm92IDE5OTUsIDExOjM5OjUyKToKCi0gTWFtYSwgZGFyZiBpY2ggZGllc2VzIEphaHIgZW5kbGljaCBlaW5lbiBCaWtpbmkgenVtIGJhZGVuIG1pdG5laG1lbj8KCi0gTmVpbiBLYXJsLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZmllcyAoQXJhbnlhLCAgOC4gTm92IDE5OTUsIDE1OjAxOjMyKToKIyEgcm49QXNtb2RpcyBydD04MTU3ODI4ODUKVW5kIHdhcyBpc3QgdGFrdGxvcz8KCgpKZXN1cyBhbSBLYXJmcmVpdGFnIG4gc2Nob2VuZXMgV29jaGVuZW5kZSB6dSB3dWVuc2NoZW4uLi4KClRzY2hhLgogQXJhbnlhLiBOTk4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZmllcyAoVWxvLCAgOS4gTm92IDE5OTUsIDAwOjUzOjA1KToKIyEgcm49QXJhbnlhIHJ0PTgxNTgzOTI5MgphcmFueWEuIG1laW4gdm9yc2NobGFnOiBsb2VzY2ggZXMuIGVzIGlzdCBuaWNodCB0YWt0bG9zIHNvbmRlcm4gZ2VzY2htYWNrbG9zLgp1bG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjIgRnJvZXNjaGUgLi4uIChCb2luZywgIDkuIE5vdiAxOTk1LCAxMToyNTo0Mik6ClVuZCBtYWwgd2llZGVyIGVpbiBXaXR6IGRlciBNYXJrZSBhbHQgYWJlciBrYWx0IC4uLgoKU2l0emVuIHp3ZWkgRnJvZXNjaGUgYXVmIGVpbmVtIFNlZXJvc2VuYmxhdHQsIHNhZ3QgZGVyIGVpbmU6IFF1YWFrIQpTYWd0IGRlciBBbmRlcmU6IFdvbGx0IGljaCBhdWNoIGdyYWQgc2FnZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCb25zYWkgKEJsb29keWhhcnJ5LCAgOS4gTm92IDE5OTUsIDExOjI3OjUwKToKIkVyIHdhciBlaW4gTWFubiB3aWUgZWluIEJhdW0uLi4uCiAgICAgIC4uLi5tYW4gbmFubnRlIGlobiBhdWNoICdCb25zYWknLiIKCk5hamEsIGF1Y2ggYWx0LiBWaWVsIG1pciBnZXJhZGUgc28gZWluIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBmaWVzIChQYW1wZXJzLCAgOS4gTm92IDE5OTUsIDExOjU0OjM5KToKIyEgcm49VWxvIHJ0PTgxNTg3NDc4NQpBY2ggVWxvLi4uCk11c3MgbWFuIGRlbm4gaW1tZXIgZ2xlaWNoIE1pbW9zZSBzZWluPwpQYW1wZXJzLiBGYW5kIGRlbiBXaXR6IGd1dC4gSXN0IGFsbGVyZGluZ3MgYXVjaCBBdGhlaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogZmllcyAoQmxvb2R5aGFycnksICA5LiBOb3YgMTk5NSwgMTI6MDQ6NDApOgojISBybj1QYW1wZXJzIHJ0PTgxNTkxNDQ3OQpCZWkgRWlzZW5rYXJsIHN0ZWh0IGltIFNjaGF1ZmVuc3RlciBlaW4gS3J1emlmaXgsIGFuIGRlbSBKZXN1cyBhbmdlbmFnZWx0CmhhZW5ndC4gRGFydW50ZXIgc3RlaHQgZWluIFNjaGlsZDogIkVpc2Vua2FybHMgTmFlZ2VsIGhhbHRlbiBhbGxlcyEiLgpEaWVzIHNpZWh0IGRlciBEb3JmcGFzdG9yIHVuZCBlciB2ZXJsYW5ndCB2ZXJhZXJnZXJ0LCBkYXNzIGRhcyBnZWFlbmRlcnQKd2lyZC4KTnVuIGxpZWd0IEplc3VzIHZvciBkZW0gS3J1emlmaXggdW5kIGF1ZiBkZW0gU2NoaWxkIHN0ZWh0OiAiTWl0IEVpc2Vua2FybHMKTmFlZ2VsIHdhZXJlIGRhcyBuaWNodCBwYXNzaWVydCEiLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW5mb3JtYXRpa2VyIDotKSAoSGFyZGlsLCAgOS4gTm92IDE5OTUsIDE2OjEwOjM1KToKCldvcmFuIGVya2VubnN0IER1LCBkYXNzIER1IGVpbiBJbmZvcm1hdGlrZXIgYmlzdD8KCi4uLiBuYSBrbGFyLCB3ZW5uIERVIGdsYXVic3QsIGRhc3MgYWxsZSBGcmF1ZW4gbWl0IE5hY2huYW1lbiAuZ2lmIGhlaXNzZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW5mb3JtYXRpa2VyIDotKSAoSG9yc2NoZCwgIDkuIE5vdiAxOTk1LCAxNjoyMzozMik6CiMhIHJuPUhhcmRpbCBydD04MTU5Mjk4MzUKQWVtbW0uLi4gZGllIEZyYXVlbiwgZGllIGljaCBrZW5uZSwgaGVpc3NlbiBhbGxlIC5qcGcgLi4uLiBLT21pc2NoLiA6KSkKCkhvcnNjaGQgKGlzdCBJbmZvcm1hdGlrZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW5mb3JtYXRpa2VyIDotKSAoQ3JlYXRpdmUsIDEwLiBOb3YgMTk5NSwgMDk6NDA6NDkpOgojISBybj1IYXJkaWwgcnQ9ODE1OTI5ODM1CgoqUFJVU1QqICpMQUNIKiAqVU1LSVBQKiAqUk9URkxCVEMqIGdlbmlhbC4uLgotQ3JlYS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJbmZvcm1hdGlrZXIgOi0pIChLbGluZ2UsIDEyLiBOb3YgMTk5NSwgMjM6NTI6NTUpOgojISBybj1IYXJkaWwgcnQ9ODE1OTI5ODM1ClF1YXRzY2gsIGFsbGUgRnJhdWVuIGhlaXNzZW4gbWl0IE5hY2huYW1lbiAuanBnIHVuZCBhdXNzZXJkZW0gc2luZCBhbGxlCkZyYXVlbgpuYWNrdCB1bmQgc3RlaGVuIGF1ZiB3aWxkZW4sIGhlbW11bmdzbG9zZW4gKiQlJiIqLVNleAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEluZm9ybWF0aWtlciA6LSkgKEFyZGFuYSwgMTMuIE5vdiAxOTk1LCAwNzoxMjoyMSk6CiMhIHJuPUhhcmRpbCBydD04MTU5Mjk4MzUKVm9uIEh1ZXBmZXI6ICJVbmQgd2llIGhlaXNzZW4gZGFubiBkaWUgTWFlbm5lcj8gLmpwZz8hPyA6KSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvIHdhcyBtdXNzIG1hbiBzaWNoIGJlaW0gRXNzZW4gYW5ob2VyZW4hIChBcmRhbmEsIDEzLiBOb3YgMTk5NSwgMDc6MTc6MzIpOgoKV29sbGVuIHp3ZWkgQmxvbmRpZW5lbiBLYXJ0ZW4gc3BpZWxlbi4KCk1laW50IGRpZSBlaW5lIHp1ciBhbmRlcmVuOiAiU2FjaCBtYScsIGhhc3QgZHUgZGllIFJlZ2VsIGltIEtvcGY/IgoKTWVpbnQgZGllIGFuZGVyZTogIldhcnVtPyBCbHV0ZSBpY2ggYXVzIGRlciBOYXNlPyIKCkFyZGFuYSwKICAgICAgICBvaG5lIE5hc2VuYmx1dGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEluZm9ybWF0aWtlciA6LSkgKFJvY2h1cywgMTMuIE5vdiAxOTk1LCAxMTozMjowMSk6CiMhIHJuPUFyZGFuYSBydD04MTYyNDMxNDEKPiBWb24gSHVlcGZlcjogIlVuZCB3aWUgaGVpc3NlbiBkYW5uIGRpZSBNYWVubmVyPyAuanBnPyE/IDopKQpOZWUsIC5tcGcsIGFsbGVyZGluZ3Mgc2luZCBkaWVzZSBzZWx0ZW4gYWxsZWluZSBhbnp1dHJlZmZlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRPUDEwIGRlciBHcnVlbmRlLCB3YXJ1bSBlcyBzaWNoIGhldXRlIHp1IG11ZGRlbiBsb2hudCAoTGFyaWVsLCAxMy4gTm92IDE5OTUsIDE0OjA2OjM0KToKCjEuOiBKb2YgbWl0IGF1c3Nlci1tdWRkc2NoZW4gRnJhZ2VuIG5lcnZlbi4KMi46IE9ya3MKMy46IEhvZmZudW5nc3ZvbGxlbiBBbmZhZW5nZXIgZGllIFNjaHJhdGUgcGxhZXR0ZW4KNC46IEF1ZiBhbGxlbiBLYW5hZWxlbiB1ZWJlciBkaWUgVW5pLU11ZW5zdGVyIGxhZXN0ZXJuLgo1LjogTWl0dGVuIGluIE1vcmlhIGRpZSBNZWxkdW5nOiAiRGllIEZhY2tlbCBlcmxpc2NodCIKNi46IFdpcnRlLCBkaWUgR2lmdCBhdXNzY2hlbmtlbgo3LjogR2llcmlnZW4gSGFsYmdvdHQtU2VoZXJuIGRpZSBTZWhlcmhhZXVzZXIgYXVzcmFldW1lbgo4LjogU2ljaCBxdWVyIHVlYmVyIGRpZSBIRSBtZXR6ZWxuCjkuOiAiUmVib290ISIgc2NocmVpZW4uCjEwLjogU3BpZWxlciBraWxsZW4gdW5kIGRhbm4gZGFzIExvZyBhZW5kZXJuLgoKRGFua2UgZnVlcnMgbGVzZW4sCkxhcmllbCBkZXIgZXJmYWhyZW5lIEFiZW50ZXVyZXIKKEpvZiwgZGFzIG1pdCBNdW5zdGVyIHdhciduIFdpdHohKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKPyAoQW5ha2luLCAxMy4gTm92IDE5OTUsIDE2OjQ0OjIyKToKRWJlbjoKCktpZXNlbHN0ZWluIHNhZ3Q6IFNvcnJ5LCBpY2ggcmVkZSBtaXQgZGVtIE1hZ2llciBpbiBtZWluZW0gaW52ZW50b3J5CgpKYWphIGFsbGVzIGtsYXIgS2llc2VsLiA7KQoKQW5ha2luLiBMYW5nZXdlaWxlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6ID8gKFllbmRpLCAxMy4gTm92IDE5OTUsIDIwOjQ5OjAwKToKIyEgcm49QW5ha2luIHJ0PTgxNjI3NzQ2MgoKV2llc28/IERhcyBnaWJ0cyEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6ID8gKFBhcmFjZWxzdXMsIDEzLiBOb3YgMTk5NSwgMjI6NDA6NTApOgojISBybj1ZZW5kaSBydD04MTYyOTIxNDAKS2FubiBpY2ggYmVzdGFldGlnZW4uClBhcmFjZWxzdXMgKGhhdCBzY2hvbiBIdWVwZmVyIHZvbiBpbm5lbiBnZXNlaGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogPyAoTXVwZmVsLCAxMy4gTm92IDE5OTUsIDIyOjUzOjE2KToKIyEgcm49UGFyYWNlbHN1cyBydD04MTYyOTg4NTAKc29vbz8gYXVjaCBub2NoIGdlc2VoZW4/ICpncmlucyoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiA/IChQYXJhY2Vsc3VzLCAxMy4gTm92IDE5OTUsIDIyOjU4OjA3KToKIyEgcm49TXVwZmVsIHJ0PTgxNjI5OTU5NgpLbGFyLiA7KSBEYSBicmFubnRlIGdlcmFkZSBkaWUgUG9zdCB1bmQgYWxsZSBtZWludGVuLCBIdWVwZmVyIHdhZXJlIGJhbGQgZ2FyLgpXYXIgc2llIGFiZXIgbm9jaCBuaWNodC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogPyAoTWFuZ28sIDE0LiBOb3YgMTk5NSwgMDA6NTc6MTkpOgojISBybj1BbmFraW4gcnQ9ODE2Mjc3NDYyCmRhcyBnZWh0IHdpcmtsaWNoIGhhYnMgc2Nob24gc2VsYnN0IGVybGVidC4KCk1hbmdvLCBhdWNoIHNjaG9uIGVpbm1hbCBlaW5lbiBNYWdpZXIgaW4gaW52IGhhYmVuZC4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6ID8gKExpLCAxNC4gTm92IDE5OTUsIDA4OjMzOjI4KToKIyEgcm49QW5ha2luIHJ0PTgxNjI3NzQ2MgpKYSB1bmQsIHdvIGlzdCBkYSBkZXIgV2l0ej8gRXMga2FubiBkb2NoIHRhdHNhZWNobGljaCBlaW5lIE1hZ2llciBpbiBLaWVzZWxzClJ1Y2tzYWNrIGdlc3RlY2t0IGhhYmVuPwpMaSAodmVyc3RlaHQgbWFsIHdpZWRlciBuZW4gV2l0eiBuaWNodCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogPyAoQXNtb2RpcywgMTQuIE5vdiAxOTk1LCAxNTowNToxNik6CiMhIHJuPUxpIHJ0PTgxNjMzNDQwOApKbywgd2VubiBkZXIgTWFnaWVyIGVpbiBad2VyZyBpc3QsIGRpZSBwYXNzZW4gamEgc29nYXIgaW4gZGllCkhvc2VudGFzY2hlIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiA/IChBbmFraW4sIDE0LiBOb3YgMTk5NSwgMTU6MDk6MjEpOgojISBybj1Bc21vZGlzIHJ0PTgxNjM1NzkxNgpIaSwKCkhtbSBuZXR0IHdpZSBtYW4gbWl0IGVpbmVyIEJlbWVya3VuZyA3IFJlcGx5cyBiZWtvbW10LgoKQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VmYWVocmxpY2hlciBGbHVnIG1pdCBkZXIgQSA2MDAgKEJsb29keWhhcnJ5LCAxNC4gTm92IDE5OTUsIDE1OjA5OjQyKToKCkVpbiBGbHVnZ2FzdCBkZXIgQSA2MDAgbXVzc3RlIGRyaW5nZW5kIGRpZSBUb2lsZXR0ZSBiZW51dHplbiwgYWJlciBkaWUKSGVycmVudG9pbGV0dGUgd2FyIGJlc2V0enQuIERpZSBTdGV3YXJkZXNzIGVya2FubnRlIHNlaW5lIE5vdCB1bmQgZXJsYXVidGUKaWhtLCBkaWUgRGFtZW50b2lsZXR0ZSB6dSBiZW51dHplbiwgd2FybnRlIGlobiBhYmVyIGVpbmRyaW5nbGljaCwgbmljaHQKZGllIGRvcnQgYW5nZWJyYWNodGVuIEtub2VwZmUgIldXIiwgIldMIiwgIlBRIiB1bmQgIkFURSIgenUgYmV0YWV0aWdlbi4KCkRvY2ggZGllIE5ldWdpZXIgZGVzIEhlcnJuIHdhciBzbyBncm9zcywgZGFzcyBlciBkYW5uIGRvY2ggZGVuIEtub3BmICJXVyIKZHJ1ZWNrdGUuIEVpbiB3YXJtZXIgV2Fzc2Vyc2Nod2FsbCB1bXNwdWVsdGUgc2VpbiBIaW50ZXJ0ZWlsLiBBbmdlbmVobQp1ZWJlcnJhc2NodCBkcnVlY2t0ZSBlciBkZW4gS25vcGYgIldMIi4gR2xlaWNoIGRhcmF1ZiB0cm9ja25ldGUgd2FybWUgTHVmdApzZWluIEhpbnRlcnRlaWwuIFRvbGxlciBTZXJ2aWNlLCBkYWNodGUgZXIuIEVyIGRydWVja3RlIGRlbiBLbm9wZiAiUFEiIHVuZAplaW5lIGdyb2UgUHVkZXJxdWFzdGUgcHVkZXJ0ZSBpaG4gbWl0IGRlemVudCBkdWZ0ZW5kZW0gUHVkZXIgZWluLgoKQWxsZSBBY2h0dW5nLCBkaWUgTWFlZGVscyB3ZXJkZW4gcmljaHRpZyB2ZXJ3b2VobnQhIEVudHp1ZWNrdCBkcnVlY2t0ZSBlciBkZW4KS25vcGYgIkFURSIgdW5kIHdhY2h0ZSBTdHVuZGVuIHNwYWV0ZXIgaW0gS3JhbmtlbmhhdXMgYXVmLiBFcnNjaHJlY2t0CmtsaW5nZWx0ZSBlciBuYWNoIGRlciBTY2h3ZXN0ZXIgdW5kIGZyYWd0ZSwgb2IgZGFzIEZsdWd6ZXVnIGFiZ2VzdHVlcnp0IHNlaS4KRGllIFNjaHdlc3RlciBlcmtsYWVydGUgaWhtLCBlciBoYWJlIGRpZSBXYXJudW5nIGRlciBTdGV3YXJkZXNzIG5pY2h0IGJlZm9sZ3QKdW5kIGRlbiBLbm9wZiAiQVRFIiA9IEF1dG9tYXRpc2NoZXIgVGFtcG9uLUVudGZlcm5lciBnZWRydWVja3QuClNpZSB3dWVuc2NodGUgaWhtIGJhbGRpZ2UgR2VuZXN1bmcgdW5kIHNlaW4gUGVuaXMgbGFlZ2UgdW50ZXIgZGVtIEtvcGZraXNzZW4uCgoKLi4uZ3V0ZW4gRmx1ZyAtIHd1ZW5zY2h0IEJsb29keUhhcnJ5IDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiA/IChBcmFueWEsIDE0LiBOb3YgMTk5NSwgMTc6MjA6NDYpOgojISBybj1Bc21vZGlzIHJ0PTgxNjM1NzkxNgpKYWFhYWEuIFVuZCB3ZW5uJ3MgZWluIEltcGYgaXN0LCBtdXNzIG1hbiBhdWZwYXNzZW4sIGRhc3MgbWFuIGlobiBuaWNodCBrYS0KcHV0dHJpdHQuIEhtbW1tIQpBcmFueWEKICAgICAgIHdlaXNzIGRhcwogICAgICAgICAgICAgICAgICAgbGllc3QgV2FsdGVyIE1vZXJzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VmYWVocmxpY2hlciBGbHVnIG1pdCBkZXIgQSA2MDAgKFJhZmZpLCAxNC4gTm92IDE5OTUsIDIwOjQ0OjQ4KToKIyEgcm49Qmxvb2R5aGFycnkgcnQ9ODE2MzU4MTgyCgoKQlJVVVVVRUVFRUxMTExMIC0gdW5kIGdhcm5pY2h0bWVyIGVpbmtyaWVnZW5rb2VubmVuZAoKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWZhZWhybGljaGVyIEZsdWcgbWl0IGRlciBBIDYwMCAoVGFya2luLCAxNi4gTm92IDE5OTUsIDE3OjI2OjU1KToKIyEgcm49Qmxvb2R5aGFycnkgcnQ9ODE2MzU4MTgyCkRhcyB0dXQgamEgYmVpbSBMZXNlbiB3ZWghIEFsbGUgQWNodHVuZyEgICAgICAgICAgICAgIFRhcmtpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSHVtYW4gRE5BIChLZXRvcywgMTYuIE5vdiAxOTk1LCAxODo1NzozNyk6Cgo+Cj4gSFVNQU4gRE5BOgo+Cj4KPiBGb3IgbWFueSB5ZWFycyBtb2xlY3VsYXIgYmlvbG9naXN0cyBoYXZlIGJlZW4gbXlzdGlmaWVkIGJ5IHRoZSBmYWN0IHRoYXQKPiB2ZXJ5IGxpdHRsZSBvZiBhbiBvcmdhbmlzbSdzIEROQSBzZWVtcyB0byBzZXJ2ZSBhbnkgdXNlZnVsIGZ1bmN0aW9uLgo+Cj4gSSBoYXZlIHNvbHZlZCB0aGUgbXlzdGVyeS4KPgo+IFRoZSByZWFzb24gd2h5IG9ubHkgMzAlIG9mIGh1bWFuIEROQSBwZXJmb3JtcyBhbnkgdXNlZnVsIGZ1bmN0aW9uIGlzIHRoYXQKPiB0aGUgcmVzdCBvZiBpdCBpcyBjb21tZW50cy4KPgo+IE9uY2Ugd2UgZGVjb2RlIGEgdHlwaWNhbCBodW1hbiBnZW5vbWUsIHdlIHNlZSB0aGF0IHRoZSBjb250ZW50cyBiZWdpbiBhcwo+IGZvbGxvd3M6Cj4KPiA9PT09PT09PT09PT09PT09PQo+Cj4gLyogSFVNQU5fRE5BLkgKPiAgKgo+ICAqIEh1bWFuIEdlbm9tZQo+ICAqIFZlcnNpb24gMi4xCj4gICoKPiAgKiAoQykgR29kCj4gICovCj4KPiAvKiBSZXZpc2lvbiBoaXN0b3J5Ogo+ICAqCj4gICogMDAwMC0wMC0wMSAwMDowMCAgMS4wICBBZGFtLgo+ICAqIDAwMDAtMDAtMDIgMTA6MDAgIDEuMSAgRXZlLgo+ICAqIDAwMDAtMDAtMDMgMDI6MTEgIDEuMiAgQWRkZWQgcGVuaXMgY29kZSB0byBtYWxlIHZlcnNpb24uIEEgYml0IG1lc3N5IC0tCj4gICogICAgICAgICAgICAgICAgICAgICAgICB3aWxsIHJlcXVpcmUgYSByZXdyaXRlIGxhdGVyIG9uIHRvIG1ha2UgaXQKbmVhdGVyLgo+ICAqIDAwMTctMDMtMTIgMDM6MTQgIDEuMyAgQWRkZWQgZXh0cmEgc2V4IGRyaXZlIHRvIG1hbGUuaDsgdG9vayBjb2RlIGZyb20KPiAgKiAgICAgICAgICAgICAgICAgICAgICAgIGVsZXBoYW50LWRuYS5jCj4gICogMDE0NS0xMC0wMyAxNjozMyAgMS40ICBSZW1vdmVkIHRhaWwuCj4gICogMTExNS0wMC0zMSAxNzoyMCAgMS41ICBTaG9ydGVuZWQgZm9yZWFybXMsIGV4cGFuZGVkIGJyYWluIGNhc2UuCj4gICogMjA5MS0wOC0yMCAxMzo1NiAgMS42ICBPcHBvc2FibGUgdGh1bWJzIGFkZGVkIHRvIGhhbmQoKSByb3V0aW5lLgo+ICAqIDI1MDEtMDQtMDkgMTQ6MDQgIDEuNyAgTWlub3IgY29zbWV0aWMgaW1wcm92ZW1lbnRzIC0tIHNraW4gY29sb3VyIG1hZGUKPiAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRhcmtlciB0byBtYXRjaCBteSBvd24gaW1hZ2UuCj4gICogMjkwOS0wNy0xMiAwMjoyMSAgMS44ICBEZW50aXRpb24gaW5hZGVxdWF0ZTsgYWRkZWQgZXh0cmEgJ3dpc2RvbScgdGVldGguCj4gICogICAgICAgICAgICAgICAgICAgICAgICBNdXN0IHJlbWVtYmVyIHRvIG1ha2UgbW91dGggYmlnZ2VyIHRvIGNvbXBlbnNhdGUuCj4gICogNDUwMS0xMi0zMSAxNDoxOCAgMS45ICBJbmNyZWFzZSBhdmVyYWdlIGhlaWdodC4KPiAgKiA1NTMzLTAyLTEyIDE3OjA5ICAyLjAgIEFkZGVkIGdheSBvcHRpb24sIHRyaWdnZXJlZCBieSBoaWdoIHBvcHVsYXRpb24KPiAgKiAgICAgICAgICAgICAgICAgICAgICAgIGRlbnNpdHksIHRvIHRyeSBhbmQgc2xvdyB0aGUgb3ZlcnBvcHVsYXRpb24KPiAgKiAgICAgICAgICAgICAgICAgICAgICAgIHByb2JsZW0uCj4gICogNjAwNC0xMS0wNCAxNjoxMSAgMi4xICBNYWRlIGZvcmVmaW5nZXIgbmFycm93ZXIgdG8gZml0IGhvbGUgaW4gY2VudHJlIG9mCj4gICogICAgICAgICAgICAgICAgICAgICAgICBDRC4KPiAgKi8KPgo+IC8qIFN0YW5kYXJkIGRlZmluaXRpb25zCj4gICovCj4KPiAjZGVmaW5lIFNFWCBtYWxlCj4gI2RlZmluZSBIRUlHSFQgMS44NAo+ICNkZWZpbmUgTUFTUyA2OAo+ICNkZWZpbmUgUkFDRSBjYXVjYXNpYW4KPgo+IC8qIEluY2x1ZGUgaW5oZXJpdGVkIHRyYWl0cyBmcm9tIHBhcmVudCBETkEgZmlsZXMuCj4gICoKPiAgKiBGaWxlcyBtdXN0IGJlIHByZS1wcm9jZXNzZWQgd2l0aCBNRU5ERUwgcHJvZ3JhbSB0byBwcm92aWRlIHByb3Blcgo+ICAqIGluaGVyaXRhbmNlIGZlYXR1cmVzLgo+ICAqLwo+Cj4gI2luY2x1ZGUgIm1vdGhlci5oIgo+ICNpbmNsdWRlICJmYXRoZXIuaCIKPgo+ICNpZm5kZWYgRkFUSEVSCj4gI3dhcm4oIkZhdGhlciB1bmtub3duIC0tIGd1ZXNzaW5nXG4iKQo+ICNpbmNsdWRlICJiYXN0YXJkLmgiCj4gI2VuZGlmCj4KPiAvKiBTZXQgdXAgc2V4LXNwZWNpZmljIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzCj4gICovCj4gI2luY2x1ZGUgPHNleC5oPgo+Cj4gLyogS2x1ZGdlZCBjb2RlIC0tIEknbGwgcmUtZGVzaWduIHRoaXMgbG90IGFuZCByZS13cml0ZSBpdCBhcyBhIHByb3Blcgo+ICAqIGxpYnJhcnkgc29tZXRpbWUgc29vbi4KPiAgKi8KPiBzdHJ1Y3QgZ2VuaXRhbHMKPiAgICB7Cj4gI2lmZGVmIE1BTEUKPiAgICBQZW5pcyAqanQ7Cj4gI2VuZGlmCj4gICAgLyogR19zcG90ICpnOyAgIFJlbW92ZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyAqLwo+ICNpZmRlZiBGRU1BTEUKPiAgICBWYWdpbmEgKnA7Cj4gI2VuZGlmCj4gICAgfQo+Cj4gLyogSW5pdGlhbGl6YXRpb24gYm9vdHN0cmFwIHJvdXRpbmUgLS0gY2FsbGVkIGJlZm9yZSBETkEgZHVwbGljYXRpb24uCj4gICogQWxsb2NhdGVzIGJ1ZmZlcnMgYW5kIHNldHMgdXAgcHJvdGVpbiBmaWxlIHBvaW50ZXJzCj4gICovCj4gRE5BICp6eWdvdGVfaW5pdGlhbGl6ZShTcGVybSAqLCBPdnVtICopOwo+Cj4gLyogTUFJTiBJTklUSUFMSVpBVElPTiBDT0RFCj4gICoKPiAgKiBSZXR1cm5zIHN0cnVjdHVyZXMgY29udGFpbmluZyBwcmUtcHJvY2Vzc2VkIHBoZW5vdHlwZXMgZm9yIHRoZSBvcmdhbmlzbQo+ID4gKiB0byBkaXNwbGF5IGF0IGJpcnRoLgo+ICAqCj4gICogV2lsbCBiZSBpbXByb3ZlZCBsYXRlciB0byBtYWtlIG91dHB1dCBsZXNzIHVnbHkuCj4gICovCj4gQ2hhcmFjdGVyaXN0aWMgKmxvb2t1cF9waGVub3R5cGUoSWRlbnRpZmllciAqaSk7Cj4KPiA9PT0KPgo+Cj4gWyBOb3RlIHRoYXQgR29kIHVzZXMgdGhyZWUtc3BhY2UgdGFicyBdCj4gLS0tLS0tLS0tLS0gRW5kIEZvcndhcmRlZCBNZXNzYWdlIC0tLS0tLS0tLS0tCj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk91dGluZz8gKFNpbHZhbmEsIDE3LiBOb3YgMTk5NSwgMDk6MjE6NTMpOgpbQWJlbnRldWVyOkNob10gd28gc2luZCBkaWUgTGVtbWluZ2VuIGF1ZiBkZXIgSW5zZWwgYXVyb3JhPwpbQWJlbnRldWVyOlNpbHZhbmFdIFN0ZWh0IGRhcyBuaWNodCBpbiBkZXIgTGlzdGU/CkNobyB0ZWlsdCBEaXIgbWl0OiB6dC1saXN0ZT8gamEgZG9jaCBhYmVyIGljaCBmaW5kZSBzaWUgYXVmIGRlciBpbnNlbCBuaWNodC4KCkdybXBmLi4uIERhcyBuZW5uIGljaCBkcmVpc3QuLi4gLSBwYXNzZW5kIGRhenU6CltBYmVudGV1ZXI6RGF1ZXJnYXN0XSBOb2UsIGRpZSBBbmdhYmVuIGRvcnQgc2luZCB2aWVsIHp1IHVuZ2VuYXUhIEtvZW5udGVzdApbQWJlbnRldWVyOkRhdWVyZ2FzdF0gRHUgQ2hvIG5pY2h0IGhpbnRyYW5zZW4sIFNpbHZhbmE/IDopCgoqa2ljaGVyKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUm9lbnRnZW5icmlsbGUgKExpLCAxNy4gTm92IDE5OTUsIDA5OjMyOjI4KToKZ2VzdGVybiBnZWxlc2VuIGluIGZpZG8uZ2VyLmpva2VzOgoKRWluIE1hbm4gaXN0IGluIGVpbmVtIEthdWZoYXVzLkFuIGVpbmVtIFN0YW5kCndlcmRlbiBqYXBhbmlzY2hlIFd1bmRlcmJyaWxsZW4gYW5nZWJvdGVuLgoiRW50c2NodWxkaWdlbiBTaWUiLHNhZ3QgZXIgenVtIFZlcmthZXVmZXIsICJ3YXMKYmV3aXJrdCBkZW5uIGRpZXNlIFd1bmRlcmJyaWxsZT8iCiJXZW5uIFNpZSBkaWUgYXVmc2V0emVuLHNlaGVuIFNpZSBhbGxlIFVtc3RlaGVuZGVuCm5hY2t0LlByb2JpZXJlbiBTaWUgZG9jaCBtYWwhIgpEZXIgTWFubiBzZXR6dCBkaWUgQnJpbGxlIGF1ZiAtIGFsbGUgVW1zdGVoZW5kZW4Kc2luZCBuYWNrdC5FciBzZXR6dCBkaWUgQnJpbGxlIHdpZWRlciBhYiAtCmFsbGUgVW1zdGVoZW5kZW4gc2luZCBhbmdlem9nZW4uCkRlciBNYW5uIGthdWZ0IGRpZSBCcmlsbGUsZ2VodCBuYWNoIEhhdXNlLApzZXR6dCBkaWUgQnJpbGxlIGF1ZixzaWVodCBhdWYgZGVtIFNvZmEgc2VpbmUgRnJhdQp1bmQgZGVuIEJyaWVmdHJhZWdlciBzaXR6ZW4gLSBiZWlkZSBuYWNrdC4gRXIgc2V0enQKZGllIEJyaWxsZSBhYiAtIG5vY2ggaW1tZXIgc2luZCBkaWUgYmVpZGVuCm5hY2t0IQoiU28gZWluIE1pc3QsdmVyZGFtbXRlcyBqYXBhbmlzY2hlcyBHZWx1bXAiLApydWZ0IGRlciBNYW5uLCAiZWlubWFsIGdldHJhZ2VuLCB1bmQgc2Nob24gaXN0ZXMgaGluIS4uLi4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2guLi4gKE9tLCAxOC4gTm92IDE5OTUsIDAzOjEzOjM3KToKCk5ldWxpY2gga2FtIGluIGRlLnNjaS5waHlzaWsgenUgZGVtIFRoZW1hICdVZm9mb3JtJzoKClhYWCB3cm90ZToKOiBpY2ggaGFiZSBkYSBtYWwgZWluZSBGcmFnZToKOiB3aWVzbyBzaW5kIGRpZSBtZWlzdGVuIFVmbydzIGluIFVudGVydGFzc2VuZm9ybT8/CgpXZWlsIGVzIGVpbmZhY2hlciBpc3QgZWluZW4gVGVsbGVyIGluIGRpZSBMdWZ0IHp1IHNjaG1laXNzZW4gdW5kIHp1CmZvdG9ncmFmaWVyZW4gYWxzIGVpbiBTdGFyV2Fycy10YXVnbGljaGVzIE1vZGVsbCB6dSBiYXN0ZWxuLCBkYXMKZGFubiBhdWNoIG5vY2ggb2huZSB6dSB0b3JrZWxuIGR1cmNoIGRpZSBMdWZ0IGZsaWVndC4KCkdydXNzLApEaXJrCgoqZ3JpbnMqCk9tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1bGljaC4uLiAoTG9jbywgMTguIE5vdiAxOTk1LCAxNzoyNDoxNSk6CiMhIHJuPU9tIHJ0PTgxNjY2MDgxNwpOaWNodCB6dSB2ZXJnZXNzZW4sIHdlaWwgZXMgZGllIHRhdHNhZWNobGljaCBnaWJ0LiBJY2ggaGFiZSBlcyBzZWxiZXIgZWlubWFsCmdlc2NoYWZmdCwgaW4gZGVyIE5hZWhlIHZvbiBNbyBpIFJhbmEgZWluZSBXb2xrZSBpbiBVbnRlcnRhc3NlbmZvcm0genUKZm90b2dyYWZpZXJlbiwgYWxsZXJkaW5ncyB0YWdzdWViZXIuCkRpZXNlbGJlIFdvbGtlIGFiZW5kcyBpbSBHZWdlbmxpY2h0LCBkYW5uIG5vY2ggZWluIHBhYXIgRmVuc3RlciB1bmQgTGFtcGVuCnJlaW5yZXR1c2NoaWVyZW4gLSB1bmQgZmVydGlnIGlzdCBkYXMgVWZvIDopCgpOb3JkaXNjaGVuIEdydXNzLAogICAgICAgICAgICAgICAgIExvY28KClAuUy46IFdlciBVRk9zIG5hY2htYWNodCBvZGVyIHZlcmZhZWxzY2h0IG9kZXIgbmFjaGdlbWFjaHRlIG9kZXIgdmVyZmFlbHNjaHRlCnNpY2ggdmVyc2NoYWZmdCB1bmQgaW4gVW1sYXVmIGJyaW5ndCwgd2lyZCBtaXQgQklMRC1aZWl0dW5nIG5pY2h0IHVudGVyIHp3ZWkKU2NobGFnemVpbGVuIGJlc3RyYWZ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVsaWNoLi4uIChDdWNodWxsaW4sIDE4LiBOb3YgMTk5NSwgMTc6NDc6MzMpOgojISBybj1Mb2NvIHJ0PTgxNjcxMTg1NQoKCkljaCBoYXR0ZSBkaWUgR2VsZWdlbmhlaXQsIGluIE5vcmQtTm9yd2VnZW4gZGFzIE5hdHVyc2NoYXVzcGllbCAiTm9yZGxpY2h0IgplcmxlYmVuIHp1IGR1ZXJmZW4uIEVpbm1hbCBzb3dhcyBpbiB1bnNlcmVuIEJyZWl0ZW4gdW5kIGRpZSBVZm8tR2xhZXViaWdrZWl0CnN0ZWlndCByYXNhbnQgYW4uIE5hamEsIGRpZSBaYWhsIGRlciBtb25hdGxpY2hlbiBLaXJjaGVuYmVpdHJpdHRlIHdvaGwgYXVjaC4KOikKCkN1Y2guLSAgUm9tYW50aWtlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIdW1hbiBETkEgKFRhcmtpbiwgMjAuIE5vdiAxOTk1LCAxMzoxMToxMyk6CiMhIHJuPUtldG9zIHJ0PTgxNjU0NDY1NwpVUktPTUlTQ0ghISEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbWVyaWNhbiBIaWdoc2Nob29sIDstKSAoTG9jdXR1cywgMjEuIE5vdiAxOTk1LCAxMzoxMToyMik6Cj4gICAgICAgICAgICAgICAgICAgICAgICAgQ2l0eSBvZiBMb3MgQW5nZWxlcwo+ICAgICAgICAgICAgICAgICAgSGlnaCBTY2hvb2wgTWF0aCBQcm9maWNpZW5jeSBFeGFtCj4gCj4gTmFtZTpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gCj4gR2FuZzpfX19fX19fX19fX19fX19fX19fX19fX19fX18KPiAKPiAxLiBKb2hubnkgaGFzIGFuIEFLLTQ3IHdpdGggYW4gODAtcm91bmQgY2xpcC4gIElmIGhlIG1pc3NlcyA2Cj4gICAgb3V0IG9mIDEwIHNob3RzIGFuZCBzaG9vdHMgMTMgdGltZXMgYXQgZWFjaCBkcml2ZS1ieQo+ICAgIHNob290aW5nLCBob3cgbWFueSBkcml2ZS1ieSBzaG9vdGluZ3MgY2FuIGhlIGF0dGVtcHQgYmVmb3JlCj4gICAgaGUgaGFzIHRvIHJlbG9hZD8KPiAKPiAyLiBKb3NlIGhhcyAyIG91bmNlcyBvZiBjb2NhaW5lIGFuZCBoZSBzZWxscyBhbiA4LWJhbGwgdG8KPiAgICBKYWNrc29uIGZvciA/MzIwIGFuZCAyIGdyYW1zIHRvIEJpbGx5IGZvciA/ODUgcGVyIGdyYW0uCj4gICAgV2hhdCBpcyB0aGUgc3RyZWV0IHZhbHVlIG9mIHRoZSBiYWxhbmNlIG9mIHRoZSBjb2NhaW5lIGlmIGhlCj4gICAgZG9lc24ndCBjdXQgaXQ/Cj4gCj4gMy4gUnVmdXMgaXMgcGltcGluZyBmb3IgdGhyZWUgZ2lybHMuICBJZiB0aGUgcHJpY2UgaXMgPzY1IGZvcgo+ICAgIGVhY2ggdHJpY2ssIGhvdyBtYW55IHRyaWNrcyB3aWxsIGVhY2ggZ2lybCBoYXZlIHRvIHR1cm4gc28KPiAgICBSdWZ1cyBjYW4gcGF5IGZvciBoaXMgPzgwMC1wZXItZGF5IGNyYWNrIGhhYml0Pwo+IAo+IDQuIEphcm9uZSB3YW50IHRvIGN1dCBoaXMgMS8yIHBvdW5kIG9mIGhlcm9pbiB0byBtYWtlIDIwJSBtb3JlCj4gICAgcHJvZml0LiAgSG93IG1hbnkgb3VuY2VzIG9mIGN1dCB3aWxsIGhlIG5lZWQ/Cj4gCj4gNS4gV2lsbGllIGdldHMgPzIwMCBmb3Igc3RlYWxpbmcgYSBCTVcsID81MCBmb3IgYSBDaGV2eSwgYW5kCj4gICAgPzEwMCBmb3IgYSA0WDQuICBJZiBoZSBoYXMgc3RvbGVuIDIgQk1XcywgMyA0WDRzLCBob3cgbWFueQo+ICAgIENoZXZpZXMgd2lsbCBoZSBoYXZlIHRvIHN0ZWFsIHRvIG1ha2UgPzgwMD8KPiAKPiA2LiBSYW91bCBpcyBpbiBwcmlzb24gZm9yIDYgeWVhcnMgZm9yIG11cmRlci4gIEhlIGdvdCA/MTAsMDAwCj4gICAgZm9yIHRoZSBoaXQuICBJZiBoaXMgY29tbW9uIGxhdyB3aWZlIGlzIHNwZW5kaW5nID8xMDAgcGVyCj4gICAgbW9udGgsIGhvdyBtdWNoIG1vbmV5IHdpbGwgYmUgbGVmdCB3aGVuIGhlIGdldHMgb3V0IG9mCj4gICAgcHJpc29uIGFuZCBob3cgbWFueSB5ZWFycyB3aWxsIGhlIGdldCBmb3Iga2lsbGluZyB0aGUgYml0Y2gKPiAgICB0aGF0IHNwZW50IGhpcyBtb25leT8KPiAKPiA3LiBJZiB0aGUgYXZlcmFnZSBzcHJheSBjYW4gY292ZXJzIDIyIHNxdWFyZSBmZWV0IGFuZCB0aGUKPiAgICBhdmVyYWdlIGxldHRlciBpcyAzIHNxdWFyZSBmZWV0LCBob3cgbWFueSBsZXR0ZXJzIGNhbiBhCj4gICAgdGFnZ2VyIHNwcmF5IHdpdGggMyBjYW5zIG9mIHBhaW50Pwo+IAo+IDguIEhlY3RvciBrbm9ja2VkIHVwIDYgZ2lybHMgaW4gaGlzIGdhbmcuICBUaGVyZSBhcmUgMjcgZ2lybHMKPiAgICBpbiB0aGUgZ2FuZy4gIFdoYXQgcGVyY2VudGFnZSBvZiB0aGUgZ2lybHMgaW4gdGhlIGdhbmcgaGFzCj4gICAgSGVjdG9yIGtub2NrZWQgdXA/Cj4gCj4gOS4gVGhlbG1hIGNhbiBjb29rIGRpbm5lciBmb3IgaGVyIDE2IGNoaWxkcmVuIGZvciA/Ny41MCBwZXIgbmlnaHQuICBTaGUKPiAgICBnZXRzID8yMzQgYSBtb250aCB3ZWxmYXJlIGZvciBlYWNoIGNoaWxkLiAgSWYgaGVyID8zMjUgcGVyIG1vbnRoIHJlbnQKPiAgICBnb2VzIHVwIDE1JSwgaG93IG1hbnkgbW9yZSBjaGlsZHJlbiBzaG91bGQgc2hlIGhhdmUgdG8ga2VlcCB1cCB3aXRoIGhlcgo+ICAgIGV4cGVuc2VzPwo+IAo+IDEwLiBTYWx2YWRvciB3YXMgYXJyZXN0ZWQgZm9yIGRlYWxpbmcgY3JhY2sgYW5kIGhpcyBiYWlsIHdhcyBzZXQgYXQgPzI1LDAwMC4KPiAgICAgSWYgaGUgcGF5cyBhIGJhaWwgYm9uZHNtYW4gMTIlIGFuZCByZXR1cm5zIHRvIE1leGljbywgaG93IG11Y2ggbW9uZXkKPiAgICAgd2lsbCBoZSBsb3NlIGJ5IGp1bXBpbmcgYmFpbD8KPiAKPiAKPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IAo+ICAgICAgRU5UUkFOQ0UgRVhBTS0gRk9PVEJBTEwgUExBWUVSIFZFUlNJT04KPiAgICAgICAgICAgICAgICBUaW1lIExpbWl0OiAzIFdLUwo+IAo+IAo+ICAgMS4gICAgIFdoYXQgbGFuZ3VhZ2UgaXMgc3Bva2VuIGluIEZyYW5jZT8KPiAKPiAgIDIuICAgICBHaXZlIGEgZGlzc2VydGF0aW9uIG9uIHRoZSBhbmNpZW50IEJhYnlsb25pYW4gRW1waXJlIHdpdGgKPiAgICAgICAgICBwYXJ0aWN1bGFyIHJlZmVyZW5jZSB0byBhcmNoaXRlY3R1cmUsIGxpdGVyYXR1cmUsIGxhdyBhbmQgc29jaWFsCj4gICAgICAgICAgY29uZGl0aW9ucyAtT1ItIGdpdmUgdGhlIGZpcnN0IG5hbWUgb2YgUGllcnJlIFRydWRlYXUuCj4gCj4gICAzLiAgICAgV291bGQgeW91IGFzayBXaWxsaWFtIFNoYWtlc3BlYXJlIHRvCj4gICAgICAgICAgIChhKSBidWlsZCBhIGJyaWRnZQo+ICAgICAgICAgICAoYikgc2FpbCB0aGUgb2NlYW4KPiAgICAgICAgICAgKGMpIGxlYWQgYW4gYXJteSBvcgo+ICAgICAgICAgICAoZCkgV1JJVEUgQSBQTEFZCj4gCj4gICA0LiAgICAgV2hhdCByZWxpZ2lvbiBpcyB0aGUgUG9wZT8KPiAgICAgICAgICAgKGEpIEpld2lzaAo+ICAgICAgICAgICAoYikgQ2F0aG9saWMKPiAgICAgICAgICAgKGMpIEhpbmR1Cj4gICAgICAgICAgIChkKSBQb2xpc2gKPiAgICAgICAgICAgKGUpIEFnbm9zdGljICAoY2hlY2sgb25seSBvbmUpCj4gCj4gICA1LiAgICAgTWV0cmljIGNvbnZlcnNpb24uICBIb3cgbWFueSBmZWV0IGlzIDAuMCBtZXRlcnM/Cj4gCj4gICA2LiAgICAgV2hhdCB0aW1lIGlzIGl0IHdoZW4gdGhlIGJpZyBoYW5kIGlzIG9uIHRoZSAxMiBhbmQgdGhlIGxpdHRsZQo+ICAgICAgICAgICAgaGFuZCBpcyBvbiB0aGUgNT8KPiAKPiAgIDcuICAgICBIb3cgbWFueSBjb21tYW5kbWVudHMgd2FzIE1vc2VzIGdpdmVuPyAoYXBwcm94aW1hdGVseSkKPiAKPiAgIDguICAgICBXaGF0IGFyZSBwZW9wbGUgaW4gQW1lcmljYSdzIGZhciBub3J0aCBjYWxsZWQ/Cj4gICAgICAgICAgIChhKSBXZXN0ZXJuZXJzCj4gICAgICAgICAgIChiKSBTb3V0aGVybmVycwo+ICAgICAgICAgICAoYykgTm9ydGhlcm5lcnMKPiAKPiAgIDkuICAgICBTcGVsbCAtLSBCdXNoLCBDYXJ0ZXIgYW5kIENsaW50b24KPiAKPiAgIDEwLiAgICBTaXgga2luZ3Mgb2YgRW5nbGFuZCBoYXZlIGJlZW4gY2FsbGVkIEdlb3JnZSwgdGhlIGxhc3Qgb25lIGJlaW5nCj4gICAgICAgICAgICBHZW9yZ2UgdGhlIFNpeHRoLiAgTmFtZSB0aGUgcHJldmlvdXMgZml2ZS4KPiAKPiAgIDExLiAgICBXaGVyZSBkb2VzIHJhaW4gY29tZSBmcm9tPwo+ICAgICAgICAgICAoYSkgTWFjeSdzCj4gICAgICAgICAgIChiKSBhIDctMTEKPiAgICAgICAgICAgKGMpIENhbmFkYQo+ICAgICAgICAgICAoZCkgdGhlIHNreQo+IAo+ICAgMTIuICAgIENhbiB5b3UgZXhwbGFpbiBFaW5zdGVpbidzIFRoZW9yeSBvZiBSZWxhdGl2aXR5Pwo+ICAgICAgICAgICAoYSkgeWVzCj4gICAgICAgICAgIChiKSBubwo+IAo+ICAgMTMuICAgIFdoYXQgYXJlIGNvYXQgaGFuZ2VycyB1c2VkIGZvcj8KPiAKPiAgIDE0LiAgICBUaGUgU3RhciBTcGFuZ2xlZCBCYW5uZXIgaXMgdGhlIE5hdGlvbmFsIEFudGhlbSBmb3Igd2hhdCBjb3VudHJ5Pwo+IAo+ICAgMTUuICAgIEV4cGxhaW4gTGUgQ2hhdGVsaWVycyBQcmluY2lwbGUgb2YgRHluYW1pYyBFcXVpbGlicml1bQo+ICAgICAgICAgICAgLU9SLSBzcGVsbCB5b3VyIG5hbWUgaW4gQkxPQ0sgTEVUVEVSUy4KPiAKPiAgIDE2LiAgICBXaGVyZSBpcyB0aGUgYmFzZW1lbnQgaW4gYSB0aHJlZSBzdG9yeSBidWlsZGluZyBsb2NhdGVkPwo+IAo+ICAgMTcuICAgIFdoaWNoIHBhcnQgb2YgQW1lcmljYSBwcm9kdWNlcyB0aGUgbW9zdCBvcmFuZ2VzPwo+ICAgICAgICAgICAoYSkgTmV3IFlvcmsKPiAgICAgICAgICAgKGIpIEZsb3JpZGEKPiAgICAgICAgICAgKGMpIENhbmFkYQo+ICAgICAgICAgICAoZCkgV2lzY29uc2luCj4gCj4gICAxOC4gICAgQWR2YW5jZWQgbWF0aC4gIElmIHlvdSBoYXZlIHRocmVlIGFwcGxlcyBob3cgbWFueSBhcHBsZXMgZG8geW91Cj4gICAgICAgICAgICBoYXZlPwo+IAo+ICAgMTkuICAgIFdoYXQgZG9lcyBOQkMgKE5hdGlvbmFsIEJyb2FkY2FzdGluZyBDb3JwLikgc3RhbmQgZm9yPwo+IAo+ICAgMjAuICAgIFRoZSBDb3JuZWxsIFVuaXZlcnNpdHkgdHJhZGl0aW9uIGZvciBlZmZpY2llbmN5IGJlZ2FuIHdoZW4KPiAgICAgICAgICAoYXBwcm94aW1hdGVseSk/Cj4gICAgICAgICAgKGEpIEIuQy4KPiAgICAgICAgICAoYikgQS5ELgo+ICAgICAgICAgIChjKSBzdGlsbCB3YWl0aW5nCj4gCj4gICAqWW91IG11c3QgYW5zd2VyIHRocmVlIG9yIG1vcmUgcXVlc3Rpb25zIGNvcnJlY3RseSB0byBxdWFsaWZ5CgpIb3BlIHlvdSBoYWQgZnVuIDopCgpMb2MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXN1bmRoZWl0c2dlZmFlaHJkdW5nLi4uIChSb2NodXMsIDIxLiBOb3YgMTk5NSwgMTc6MjQ6MjkpOgpBdXMgZGUub3JnLmNjYzoKPklociBkaXNrdXRpZXJ0IGhpZXIgdWViZXIgVEh6LVN0cmFobHVuZywgdW5kCj52ZXJnZXNzdCBkYWJlaSBldHdhcyB2aWVsIGdlZmFlaHJsaWNoZXJlcyAhCj4KPkRpZSBTSUxJWklVTURJT1hJRFZFUlNFVUNIVU5HIGFuIGRldXRzY2hlbgo+U3RyYWVuZGVuICEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhCgpXZW5uIGVzIG51ciBkYXMgd2FlcmUhICBWaWVsIHNjaGxpbW1lciBpc3QgZGllIGxlaWNodGZlcnRpZ2UgYWxsdGFlZ2xpY2hlCkhhbmRoYWJ1bmcgdm9uIERpaHlkcm9nZW4tbW9ub3hpZCAoREhNTykhICBESE1PIGhhdCBzY2hvbiB6dSBzbyBtYW5jaGVuClByb2JsZW1lbiBnZWZ1ZWhydCAodS5hLiBTY2hhZWRlbiBkdXJjaCBFaW53aXJrdW5nIHZvbiBETUhPLCBkYXMgYmVpIEJyYWVuZGVuCmFscyBMb2VzY2hzdWJzdGFueiB2ZXJ3ZW5kZXQgd2lyZCwgS29ycm9zaW9uc3NjaGFlZGVuIGFuIE1ldGFsbHRlaWxlbiwKZXRjLiBwLiBwLikuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VzdW5kaGVpdHNnZWZhZWhyZHVuZy4uLiAoSGFyZGlsLCAyMS4gTm92IDE5OTUsIDE3OjI1OjM4KToKIyEgcm49Um9jaHVzIHJ0PTgxNjk3MTA2OQoKRGFzIG1pdCBkZXIgU0lMSVpJVU1ESU9YSURWRVJTRVVDSFVORyBpc3QgYXVzIGVpbmVtIGFsdGVuIEV1bGVuc3BpZWdlbCwKU2VwdGVtYmVyIG9kZXIgQXVndXN0IG9kZXIgc28uCldhciBhYmVyIGVpbiBlaWdlbnRsaWNoIHJlY2h0IG5ldHRlciBBcnRpa2VsLiA6LSkKCi1IYXJkaWwuIE1hZyBkaWUgRXVsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb2VkY2hlbiAoRGVsb3MsIDIyLiBOb3YgMTk5NSwgMDE6MjA6MDgpOgoKU3RyZWl0ZW4gc2ljaCAzIEJsb25kaW5lbiB3ZXIgZGFzIGR1ZW1tc3RlIEdlc2NoZW5rIGVyaGllbHQ6CgpEaWUgZXJzdGUgQmxvbmRpbmUgc2FndDogSWNoIGhhYiBlaW4gQnVjaCBiZWtvbW1lbiwgZGFiZWkga2FubiBpY2ggZG9jaAogICAgICAgICAgICAgICAgICAgICAgICAgZ2FyIG5pY2h0IGxlc2VuIC0gZHVtbSB3YXMhPyEKCkRpZSB6d2VpdGUgQmxvbmRpbmUgc2FndDogTWVpbiBHZXNjaGVuayB3YXIgbm9jaCBkdWVtbWVyLiBJY2ggYmVrYW0gZWluCiAgICAgICAgICAgICAgICAgICAgICAgICAgU2NocmVpYnNldCwgZGFiZWkga2FubiBpY2ggZG9jaCBnYXIgbmljaHQKICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hyZWliZW4hCgpEYXJhdWYgc2FndCBkaWUgRHJpdHRlOiBNaXIgaGFiZW4gc2llIGVpbmVuIERlb1JPTExFUiBnZXNjaGVua3QsIGRhYmVpCiAgICAgICAgICAgICAgICAgICAgICAgIGhhYmUgZG9jaCBnYXIga2VpbmVuIEZ1ZWhyZXJzY2hlaW4hISEKCjotRAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZXN1bmRoZWl0c2dlZmFlaHJkdW5nLi4uIChMaSwgMjIuIE5vdiAxOTk1LCAwOTo0NDoxMSk6CiMhIHJuPVJvY2h1cyBydD04MTY5NzEwNjkKU0lMSVpJVU1ESU9YSURWRVJTRVVDSFVORyBhbiBkZXV0c2NoZW4gc3RyYWVuZGVuPwoqdG90bGFjaCoKRHNhIGVyaW5uZXJ0IG1pY2ggYW4gZGllIEZyYWdlIG5hY2ggZGVtIGdyb2Vzc3RlbiBNZXNzaW5nYmVyZ3dlcmsgZGVyIFdlbHQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVubmVyc2NoaWVkPyAoQ3VjaHVsbGluLCAyMi4gTm92IDE5OTUsIDEyOjU1OjI3KToKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIFdJTkRPV1MgdW5kIERPT00gPwoKCkRPT00gaXN0IG51ciBlaW4gU3BpZWwuCgoKCklzdCBzY2hsZWNodCwgaWNoIG11c3N0ZSB0cm90emRlbSBncmluc2VuLApDdWNoLi0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbm5lcnNjaGllZD8gKEZsYWdnLCAyMi4gTm92IDE5OTUsIDEzOjE3OjE1KToKIyEgcm49Q3VjaHVsbGluIHJ0PTgxNzA0MTMyNwpCUlVFTExMLAoJRmxhZ2cKKGxhY2h0IHNpY2ggc2NoYWViYmlnISEpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGUkVDSEhFSVQhIChTaWx2YW5hLCAyMy4gTm92IDE5OTUsIDA5OjQ5OjExKToKRWJlbiBhdWYgbWVpbmVtIFNjaGlybToKCllhbnRybyBzYWd0OiBhdWEKWWFudHJvIHNhZ3Q6IGRhcmt2YWRlciB0ZWlsdCBtaXIgbWl0OiBhaGVtIGthbm5zdCBEdSBtaXIgYW1sIDMwMCBNdWVuemVuCllhbnRybyBzYWd0OiBnZWJlbiBmdWVyIG5lbiB0YXVjaGVyYW56dWc/Ci4uLgpEYXJrdmFkZXIgdGVpbHQgRGlyIG1pdDogYWhlbSBrYW5uc3QgRHUgbWlyIG1hbCAzMDAgcHVtcGVuIGZ1ZXIgbmVuCkRhcmt2YWRlciB0ZWlsdCBEaXIgbWl0OiBUYXVoY2VyYW56dWcgPwoKCk1hbmNoZSBMZXV0ZSB3aXNzZW4gbmljaHQsIHdhcyBNYWdpZXIgc2luZC9kdWVyZmVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VzdW5kaGVpdHNnZWZhZWhyZHVuZy4uLiAoTGksIDIyLiBOb3YgMTk5NSwgMDk6NDQ6MTEpOiAoUm9lc3RpLCAyMy4gTm92IDE5OTUsIDE3OjQwOjUxKToKcQpzY2hyZWliZSByZSBSZTogR2VzdW5kaGVpdHNnZWZhZWhyZHVuZy4uLiAoTGksIDIyLiBOb3YgMTk5NSwgMDk6NDQ6MTEpOgoKR3JvZXNzdGVzIE1lc3NpbmdiZXJnd2Vyaz8/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGUkVDSEhFSVQhIChMd2F4YW5hLCAyNC4gTm92IDE5OTUsIDE3OjAyOjE3KToKIyEgcm49U2lsdmFuYSBydD04MTcxMTY1NTEKSG1tbSBhbHNvIGFsbHp1IGFsdCBpc3QgRGFya3ZhZGVyIG51biBuaWNodCB1bmQgaWNoIGhhdHRlIGFtIEFuZmFuZyBhdWNoIHNvCm1laW5lIFByb2JsZW1lIGRhbWl0LCB3YXMgZWluIE1hZyBkYXJmIHVuZCB3YXMgbmljaHQgLSBhdXNzZXJkZW0gaGFiZSBpY2ggYXVjaApzY2hvbiBsZXV0ZSBhbmdlbGFiZXJ0IG1pciBiZWkgbWVpbmVyIEtyYW5raGVpdCB6dSBoZWxmZW4gdW5kIGVyc3QgbmFjaGRlbQppY2hzIGdlc2FndCBoYWJlIGR1cmNoIEZpbmdlcm4gZmVzdGdlc3RlbGx0LCBkYXNzIGVzIE1hZ3Mgc2luZCBhbHNvIGljaCB3ZWlzcwpuaWNodCwgd2FydW0gZGFzIGpldHp0IHNvIHNjaGxpbW0gd2FyCgpUc2NoYXUgTHdheCAqZ3J1ZWJlbG5kIHdlaWwgc2Nob24gaW1tZXJkb29mZ2V3ZXNlbnNlaWVuZCBhdWNoIG9obmUgYmxvbmQgenUKc2VpbioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoUm9lc3RpLCAyNC4gTm92IDE5OTUsIDIxOjE0OjE0KToKQXJtaW4gZ2lidCBWaWVybmEgQ2hhb3NoYW5kc2NodWhlCkFybWluIGJpZXRldCBWaWVybmEgRnJldW5kc2NoYWZ0IGFuClZpZXJuYSBzYWd0IDpIdWNoIHdhcyB3YXIgZGVubiBkYXMuLi4KVmllcm5hIGZhZWxsdCB0b3QgenUgQm9kZW4uLi4KVG9lZGxpY2hlIEZyZXVuZHNjaGFmdD8KCkljaCBmYW5kcyBad2FyIG5pY2ggd2l0emlnIGFiZXIgaWNoIHd1c3N0ZSBuaWNodCBpbiB3ZWxjaGUgUnVicmlrIEZMVwpnZWhvZXJlbixuYWNoZGVtIGFsbGUgc2NobWFycm4gYWJiZXN0ZWxsdCBoYWJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmdhbnogc2Nob2VuIHp1Z2VzY2hsYWdlbi4uLiA6KSAoTWFyaXRhLCAyNS4gTm92IDE5OTUsIDAzOjM2OjAxKToKW1ZlcmxlZ3Qgdm9uIHNjaG1hcnJuLCBNYXJpdGEsIDIyLiBOb3YgMTk5NSwgMDc6MzQ6MzRdOgpbVmVybGVndCB2b24gdHJlZmZlbiwgTWFyaXRhLCAyMi4gTm92IDE5OTUsIDA3OjMzOjMyXToKTmV1bGljaCwgbmFjaGRlbSBpY2ggZGVuIFp3ZXJnIGluIGRlciBEaWFtYW50YmFyIGtpbGx0ZToKCi4uLgpEaWUgYmVyZWl0cyB6aWVtbGljaCBzdGlua2VuZGUgTGVpY2hlIGVpbmVzIFp3ZXJncy4KRGllIFRvcC1MaXN0ZSwgVG9wLVNwaWVsZXJsaXN0ZSwgVG9wLVNlaGVybGlzdGUgdW5kIFRvcC1ad2VpdGlsaXN0ZS4KCj4gbmltbSBhbGxlcwpEdSBrYW5uc3QgZGllIExlaWNoZSBuaWNodCBtZWhyIHRyYWdlbi4KRGllIGlzdCBhbiBkZXIgV2FuZCBmZXN0Z2VuYWdlbHQuCgpNYXJpdGEgKG11c3MgamEgZWluZW4gemllbWxpY2hlbiBTY2hsYWcgaGFiZW4gOikpCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW0gSW50ZXJuZXQgKGMpIFllbmRpIChZYW50cm8sIDI4LiBOb3YgMTk5NSwgMTQ6MzQ6MjkpOgoKRWlnZW5saWNoIG9obmUgS29tbWVudGFyIHp1IHZlcnN0ZWhlbi4uLi4KCkRlYXIgQmlsbCwKeW91IHdyaXRlIG1lLCB0aGF0IHlvdSBub3QgZW5vdWdoIG92ZXIgdGhlIFRyYWJiaSBoZWFyIGNhbi4gWWVzLCBoZSBpcyBhCnJlYWwgd29uZGVydGhpbmcsIHRocm91Z2ggYW5kIHRocm91Z2ggaGFuZHdvcmtseSBzdHlsZWQgYW5kIG5vdCBncmF0aXMgdGhlCmNhciBvZiB0aGUgeWVhci4gSSBoYXZlIGhpbSByZWFsIGluIG15IGhlYXJ0IGNsb3NlZC4gQnV0IGJlY2F1c2Ugb2YgdGhlCmZvbGxvd2luZyBxdWVzdGlvbiBoYXZlIHRoZW1zZWx2ZXMgdGhlIHBlb3BsZSBoZXJlIGluIHRoZSB3b29sOiBJcyBoaXMKbmFtZSBub3cgIlRyYWJpIiBvciAiVHJhYmJpIiAtIHdoaWxlICJUcmFiaSIgbXVjaCB0b28gbG9uZyBpcyBmb3Igc3VjaCBhCnNob3J0IGNhci4KV2hhdCBhIHJlYWwgc25vYiBoZXJldG9sYW5kIGlzLCBhIHJpZ2h0IHNjaGlja2ltaWNraSwgc28gd2lzaGVzIGhlIGhpbXNlbGYKdW5iZXRoaW5nZWQgYSBkcml2ZSBpbiBhIFRyYWJiaSAtIGNvc3QgaXQgd2hhdCBpdCB3aWxsLiBBbmQgdGhlcmUgeW91IGNhbgpmaW5kIGFscmVhZHkgdGhlIHNob3BtYWtlcnMgb24gZXZlcnkgY29ybmVyLCB3aG8gd2lsbCBsZW5kIHlvdSBhIFRyYWJiaSwKc2hvcHBpbmcgd2l0aCBhIFRyYWJiaSwgd2l0aCBmdWxsIHN0ZWFtIHRvIGEgcGFydHkgaW4gYSBUcmFiYmksIGV2ZW4gb24KdGhlIGZ1bmVyYWwgd2l0aCBhIFRyYWJiaS4uLgpVcHBlcmhlYWQgaGFzIGhlIGFsbCwgd2hhdCByZWFsIG5lZWR3ZW5keSBpcyAtIHdpdGhvdXQgd2hhdCBmb3IgZXh0cmFzIHRvCnBheS4gV2h5IGEgYmVuemluZS1jbG9jaz8gTXVjaCB0b28gY29tcGxpY2F0ZWQuIFlvdSBiZWNvbWUgYSBtdWNoIGJldHRlcgpwZXJzb25hbCBmZWVsaW5nIHdpdGggeW91IGZyb20gdGltZSB0byB0aW1lIHdpdGggb3duIGV5ZXMgaW4gdGhlIHRhbmsgbG9vawotIHdpdGggdGhlIFRyYWJiaSBvbiB5b3UgYW5kIHlvdS4KSW4gc3VtbWVyIGlzIHRoaXMgZmFtb3VzIHR3b3RhY3RlciBpbiB0aGUgaW5uZXJyb29tIGJldm9pY2VkIG5vdCBob3R0ZXIKdGhhbiB0aGUgQXVkaSAxMDAsIHdoaWNoIGlzIGEgaG90IGJha2luZyBvdmVuIGJlY2F1c2Ugb2YgaGlzIGltcG9zc2libGUKZmxhdCBmcm9udC1nbGFzcy4gQW5kIHJvb20gZm9yIHRoZSBrbmVlcyBoYXZlIHlvdSBpbiBhIFBvcnNjaGUgYWxzbyBub3QKbW9yZS4gQSBsaXR0bGUgYml0IG5hcnJvdyBpcyBpdCBmcmVlbHksIHdoZW4gdGhlIFRyYWJiaSBmdWxsIGJlc2V0IGlzIGFuZAphbGwgZHJpdmUtZ3Vlc3RzIGhhdmUgdGhlaXIgd2ludGVybWFudGxlcyBvbi4gQnV0IGhvdyBzYXlzIGl0IHRoZSBwb2V0PwpPbiBldmVyeSBEZWNlbWJlciBmb2xsb3dzIGFnYWluIHRoZSBNYXkuClllcywgb25lIG11c3QgSSB0b2dpdmUsIGhlIHN0aW5rcy4gQnV0IHRoaXMgaXMgbm90IHNvIHRyYWdpYy4gSSBrbm93IG5vdCwKd2hhdCB0aGUgcGVvcGxlIGFsd2F5cyBoYXZlLiBBcyBpZiB3ZSBoZXJlIGFsbCBhbmdlbHMgd2VyZSBhbmQgb25seSBjYXQtCmNhcnMgYnV5ISBBbmQ6IFRoZSBhdG9tY3JhZnQtd29yayBzdGlua3Mgbm90IGFuZCB3aGF0IGlzIGl0IGZvciBhIGRhbmdlcgpmb3IgdGhlIHRvdGFsIG1hbmtpbmQhIFRoZXJlIGZpbmQgSSBpdCBnb29kLCBob3cgaG9uZXN0IHRoZSBUcmFiYmkgaXM6IFRoZQp3aGl0ZS1ibHVlIGNsb3VkcyBiZWhpbmQgaGltIGFyZSB1bmJldGhpbmdlZCBhbiB3YXJuaW5nIHNpZ24sIHRoYXQgaXQgaXMKbXVjaCBiZXR0ZXIsIGZyb20gdGltZSB0byB0aW1lIHRvZm9vdCBydW4uIEFuZCAtIGxhc3QsIG5vdCBsZWFzdCAoaG93IHdlCmluIEdlcm1hbnkgc2F5KSAtIGlzIGhlIHRoZSBjYXIgb2YgY291cmFnZSBhbmQgZnJlZWhvb2QuIEhvdyBtYW55CmxhbmRzcGVvcGxlIGhhdmUgd2l0aCB0aGUgVHJhYmJpIHRoZSB3YXkgdG8gdXMgZm91bmQgYW5kIHNvd2l0aCBzaG93biwKdGhhdCB0aGV5IG5vIGZlYXIgZm9yIG91ciBwcm91ZCBsdXh1cnktbGltb3VzaW5lcyBoYXZlIC0gaXMgdGhhdCBjaXJjYQpub3RoaW5nPyBIYXQgb2ZmLCBzYXkgSSBvbmx5LCBoYXQgb2ZmLgoKWW91ciB0cnVlIEhlbG11dAoKCk9oLCBPaCwgd2hlcmUgd2l0aCBoYXZlIEkgdGhpcyBuYWtlZCBlYXJuZWQgPwooT2gsIE9oLCB3b21pdCBoYWJlIGljaCBkYXMgYmxvXyB2ZXJkaWVudCA/KQoKCiAgICAgICAgICAgICAgIFlhbnRybzopCgpPSjogT3JrdG9ldGVyIGlzdCB3aWVkZXIgZGEhISEKLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoIGltIEludGVybmV0IChjKSBZZW5kaSAoQWduZXRoYSwgMjkuIE5vdiAxOTk1LCAyMjoyMDowMik6CiMhIHJuPVlhbnRybyBydD04MTc1NjU2NjkKCkRlYXIgSGVsbXV0LAoKCldhcnRidXJnIGlzIHNvaG93c28gdGhlIG9ubHkgdHJ1ZSwgZ28gbWUgYXdheSB3aXRoIHlvdXIgdHJhYmJpLAoKWW91ciBBZ25ldGhhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnVnPyAoUm9lc3RpLCAzMC4gTm92IDE5OTUsIDExOjE3OjU4KToKICAgTGlzdGUgZGVyIE1pdHNwaWVsZXIgdm9tIERvbiwgMzAuIE5vdiAxOTk1LCAxMToxNzoxMyAoMCBUZWlsbmVobWVyKQpSb2VzdGkgd3VuZGVydHQgc2ljaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmV0cmllYnNhdXNmbHVnIChQYXJhY2Vsc3VzLCAgMy4gRGV6IDE5OTUsIDE2OjUxOjMyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCRVRSSUVCU0FVU0ZMVUcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT09PT09PT09PT09PT0KCiAgICAgICAgIEltIFJhaG1lbiBuZXVlciBTcGFybWFzc25haG1lbiBsYWVkdCBkaWUgR2VzY2hhZWZ0c2xlaXR1bmcgZWluCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST0dSQU1NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmVmZnB1bmt0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vbnRhZyAwOS4wMCBVaHIgQTUyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFiZmFocnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tCiAgICAgICAgICAgICAgIDA5LjMwIHBlciBBbmhhbHRlciBuYWNoIER1ZXNzZWxkb3JmIEhhdXB0YmFobmhvZi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXR0YWdlc3NlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0KICAgICAgICAgICAgICAgICAgICAgIEVyYnNlbnN1cHBlIGJlaSBkZXIgQmFobmhvZnNtaXNzaW9uCiAgICAgICAgICAgICAgICAgICAgS29zdGVuYmVpdHJhZzogU3VwcGUgbWl0IEVyYnNlbiBETSAwLDgwCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1cHBlIG9obmUgRXJic2VuIERNIDAsNDAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyZ251ZWdlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0KICAgICAgICAgICAgICAgICAgICAgIEVpbmUgU3R1bmRlIFNjaGlmZmUgZ3Vja2VuIGFtIFJoZWluCiAgICAgICAgICAgICAgICAgICAgQmVndXRhY2h0ZW4gZGVyIEF1c2xhZ2VuIGltIEZyZXVkZW5oYXVzCiAgICAgICAgICAgICAgICAgIEVzIGZvbGd0IGVpbiBGb2xrbG9yZWFiZW5kIGltIEFzeWxhbnRlbmhlaW0KICAgICAgICAgICAgICAgICAgbWl0IGFuc2NobGllc3NlbmRlciBQcm9tZW5hZGUgdWViZXIgZGllIEtvZQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBYmVuZGVzc2VuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLQogICAgICAgICAgICAgICBCZXR0ZWxuIGJlaSBkZXIgQXJiZWl0ZXJ3b2hsZmFocnQgZ2VnZW4gMjAuMDAgVWhyCiAgICAgICAgICAgICAgICAgICAgICAgRWlubmFobWUgZGVzIGdlc2Nobm9ycnRlbiBFc3NlbnMKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVlY2tmYWhydAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0KICAgICAgICAgMjEuMzAgZ2VtZWluc2FtZSBTY2h3YXJ6ZmFocnQgbWl0IEJ1c3NlbiB1bmQgQmFobmVuIG5hY2ggSGF1c2UKCgoKICAgICBEaWUgR2VzY2hhZWZ0c2xlaXR1bmcgaG9mZnQgYXVmIHphaGxyZWljaGVzIEVyc2NoZWluZW4gZGVyIE1pdGFyYmVpdGVyCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hhdXZpZXMgKEJsb29keWhhcnJ5LCAgNC4gRGV6IDE5OTUsIDA3OjA4OjM3KToKCmNoYXV2aW5pc3Rpc2NoZSBXaXR6ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0KCldvenUgaGF0IGVpbmUgRnJhdSB6d2VpIEJlaW5lPwpVbSB2b20gQmV0dCBpbiBkaWUgS3VlY2hlIHp1IGtvbW1lbi4KCldpZSBuZW5udCBtYW4gZWluZSBGcmF1LCBkaWUgOTUlIGlocmVyIEludGVsbGlnZW56IHZlcmxvcmVuIGhhdD8KV2l0d2UuCgpXaWRlcnNwcmljaCBuaWUgZWluZXIgRnJhdS4uLi4KV2FydGUgZnVlbmYgTWludXRlbiwgZGFubiB0dXQgc2llIGVzIHNlbGJzdC4KCldhcnVtIGtvZW5uZW4gRnJhdWVuIG5pY2h0IGdsZWljaHplaXRpZyBzY2hvZW4gVU5EIGludGVsbGlnZW50IHNlaW4/CkRhbm4gd2FlcmVuIGVzIGphIE1hZW5uZXIhCgoKQi5IYXJyeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW50aWNoYXV2aWUgKEJsb29keWhhcnJ5LCAgNC4gRGV6IDE5OTUsIDA3OjE0OjI5KToKCkdhcmFudGllcnQgbWFubmVyZmVpbmRsaWNoLi4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogRjogIFdvIGZpbmRldCBtYW4gZWluZW4gQXJ0aWtlbCwgd2VubiBkZXIgTWFubiBzZWluZSBGcmF1IHZvbSA3LiBTdG9jawogICAgIGF1cyBkZW0gRmVuc3RlciB3aXJmdD8KCiBBOiAgQmlsZCBaZWl0dW5nIQoKCgogRjogIEFiZXIgd28gc3RlaHQgZGVyIEFydGlrZWwsIHdlbm4gZGllIEZyYXUgaWhyZW4gTWFubiByYXVzd2lyZnQ/CgogQTogIFNjaG5lciBXb2huZW4hCgoKQi5IYXJyeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFudGljaGF1dmllIChCbG9vZHloYXJyeSwgIDQuIERleiAxOTk1LCAwNzoxODo0OSk6CiMhIHJuPUJsb29keWhhcnJ5IHJ0PTgxODA1NzY2OQoKSWNoIGtlbm5lIG5vY2ggZWluZW4gIkdhcmFudGllcnQgbWFubmVyZmVpbmRsaWNoLi4uIjoKV2FydW0gZ2ViZW4gTW5uZXIgaWhyZW0gUGVuaXMgZWluZW4gTmFtZW4/CgoKCgoKCldlaWwgc2llIG5pY2h0IDkwJSBpaHJlcyBEZW5rZW5zIGVpbmVtIEZyZW1kZW4gYmVybGFzc2VuIHdvbGxlbiEKCgpCLkhhcnJ5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWb3JzdGVsbHVuZ3NnZXNwcmFlY2ggKEJsb29keWhhcnJ5LCAgNC4gRGV6IDE5OTUsIDA3OjM4OjAyKToKCiAgICAgICAgVm9yc3RlbGx1bmdzZ2VzcHJhZWNoIHp1ciBFaW5zdGVsbHVuZyBlaW5lciBTZWt0ZXRhZXJpbi4KCiAgICAgICAgRGVyIENoZWY6ICJJY2ggaGVpc3NlIENvaG4gdW5kIGxpZWJlIFdvcnRzcGllbGUgbWl0IG1laW5lbQogICAgICAgICAgICAgICAgICBOYW1lbi4gV2FzLCBnbGF1YmVuIFNpZSBpc3QgZGllcz8KICAgICAgICAgICAgICAgICAgKERhYmVpIHp1cGZ0IHVuZCB6aWVodCBlciBoZWZ0aWcgYW4gc2VpbmVtCiAgICAgICAgICAgICAgICAgIEhlbWQuKQoKICAgICAgICBTZWtyZXRhZXJpbjogIkljaCB3ZWlzcyBuaWNodC4uLi4iCgogICAgICAgIERlciBDaGVmOiAiSXN0IGRvY2ggZ2FueiBlaW5mYWNoLCBtZWluZSBsaWViZSwgdW5lcmZhaHJlbmUKICAgICAgICAgICAgICAgICAgIGp1bmdlIEZyZXVuZGluLCBkYXMgaGVpc3N0ICdDb2huIHplcnJ0JywgYWxzbwogICAgICAgICAgICAgICAgICAgS29uemVydCwgdmVyc3RlaGVuIFNpZT8iCgogICAgICAgIChTaWUgc2NodWV0dGVsdCBkZW4gS29wZi4uLikKCiAgICAgICAgRGVyIENoZWY6ICJJY2ggZ2ViZSBJaG5lbiBub2NoIGVpbmUgQ2hhbmNlLiBXYXMgaXN0IGRhcz8KICAgICAgICAgICAgICAgICAgKFR1dCBzbywgYWxzIHd1ZXJkZSBlciBlaW4gTG9jaCBpbiBzZWluZW0gSGVtZAogICAgICAgICAgICAgICAgICBzdG9wZmVuKQoKICAgICAgICBTZWtyZXRhZXJpbjogIlR1dCBtaXIgbGVpZCwgZGFzIHdlaXNzIGljaCBhdWNoIG5pY2h0Li4uIgoKICAgICAgICBEZXIgQ2hlZjogIk5hIGRhcyBoYWV0dGVuIFNpZSBhYmVyIGpldHp0IHdpc3NlbiBtdWVzc2VuLAogICAgICAgICAgICAgICAgICBtZWluZSBsaWViZTogQ29obiBmbGlja3QsIGFsc28gS29uZmxpa3QuLi4gSWNoCiAgICAgICAgICAgICAgICAgIGdsYXViZSwgaWNoIG11c3MgbWljaCBuYWNoIGVpbmVyIGFuZGVyZW4gS3JhZgogICAgICAgICAgICAgICAgICB1bXNlaGVuLCB2aWVsZW4gRGFuay4uLiIKCiAgICAgICAgU2VrcmV0YWVyaW46IChsZWd0IGlocmUgUHVtcHMgYXVmIHNlaW5lIFNjaHJlaWJ0aXNjaGthbnRlLAogICAgICAgICAgICAgICAgICAgICBzY2hpZWJ0IG1pdCBsYXpzaXZlbSBMYWVjaGVsbiBkZW4gUm9ja2F1bQogICAgICAgICAgICAgICAgICAgICBob2NoIHVuZCB2ZXJnb2VubnQgQ29obiBlaW5lbiBsYW5nZW4gQmxpY2sgaW4KICAgICAgICAgICAgICAgICAgICAgZGllIEdlaGVpbW5pc3NlIHVudGVyIGlocmVtIFJvY2suIEVyIHN0ZWxsdAogICAgICAgICAgICAgICAgICAgICBmZXN0LCBkYXNzIHNpZSBrZWluZW4gU2xpcCBhbmhhdCwgYWxzIHNpZSBkaWUKICAgICAgICAgICAgICAgICAgICAgQmVpbmUgd2llZGVyIHp1ZWNodGlnIGhlcnVudGVybmltbXQpCgogICAgICAgICAgICAgICAgICAgICAiV2FzIGhpZXNzIGpldHp0IGRhcz8iCgogICAgICAgIENvaG46ICJJY2ggd2Vpc3MgZXMgbmljaHQuLi4uLiIKCiAgICAgICAgU2VrcmV0YWVyaW46ICJMZWNrJyBzaWUsIENvaG4uLi4uLi4uIgoKCkIuSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2huIFdpdHouLi4gKEJsb29keWhhcnJ5LCAgNC4gRGV6IDE5OTUsIDA3OjQ4OjM0KToKCi4uLnNwZXppZWxsIGZ1ZXIgQWxpbmU6CgoiRWluZSBlbWFuemlwaWVydGUgRnJhdSBmb2xndCBJaHJlbSBNYW5uIHdvaGluIHNpZSB3aWxsLiIKCgpCLkhhcnJ5LCB0dXQgYWxsZXMgZGFtaXQgZXIgbmljaHQgdm9uIEVtYW56ZW4gZXJzY2hsYWdlbiB3aXJkLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW5mb2xlcHRpa2VyLVdpdHplIChCbG9vZHloYXJyeSwgIDQuIERleiAxOTk1LCAwODoxMjo0OSk6CgoiSWYgYSB0cmFpbnN0YXRpb24gaXMgd2hlcmUgYSB0cmFpbiBzdG9wcHMsIHdoYXQgaGFwcGVucyBhdCBhIHdvcmtzdGF0aW9uPyIKCiJXZXIgbWl0IGRlbSBzY2hsaW1tc3RlbiByZWNobmV0LCByZWNobmV0IG1pdCBlaW5lbSBLYWxrdWxhdGlvbnNwcm9ncmFtbSEiCgoiV2VubiBHb3R0IGRlbiBNZW5zY2hlbiBnZXNjaGFmZmVuIGh0dGUsIENvbXB1dGVyIHp1CmJlbnV0emVuLCBodHRlIGVyIGlobSAxNiBGaW5nZXIgZ2VnZWJlbi4iCgoiVG8gZXJyIGlzIGh1bWFuLCB0byByZWFsbHkgZm91bCB0aGluZ3MgdXAgcmVxdWlyZXMgYSBjb21wdXRlciIKCiJXaXRoIG1haW5mcmFtZXMgeW91IGp1c3QgY2FuIGRvIG5vbnNlbnNlLCB3aXRoIFBDcyBub3QgZXZlbiB0aGF0LiIKCiJpbnQgYVsxODE3XTsgbWFpbih6LHAscSxyKXsgZm9yKHA9ODA7cStwLTgwCjtwLT0yKmFbcF0pZm9yKHo9OTt6LS07KXE9MyYocj1nZXRwaWQoKStyKjU3KS83LHE9cT9xLTE/cS0yPzEtcCU3OT8tMTowOnAlNzktNzcKPzE6MDpwPDE2NTk/Nzk6MDpwPjE1OD8tNzk6MCxxPyFhW3ArcSoyXT9hW3ArPWFbcCs9cV09cV09cTowOjA7CmZvcig7cSsrLTE4MTc7KXByaW50ZihxJTc5PyIlYyI6IiVjXG4iLCIgIyJbIWFbcS0xXV0pO30iCgoiSmVkZXIgRW50d2lja2xlciwgZGVyIHZvbiBhdWVyaGFsYiBkZXIgU3RhZHQga29tbXQsIGlzdCBlaW4gRmFjaG1hbm4uIgoKIlJlYWwgcHJvZ3JhbW1lcnMgZG9uJ3QgY29tbWVudCB0aGVpciBjb2RlLiBJdCB3YXMgaGFyZCB0byB3cml0ZSwgaXQKIHNob3VsZCBiZSBoYXJkIHRvIHVuZGVyc3RhbmQuIiAgICAgICAgICAgICAgICAgICAtIGEgcmVhbCBwcm9ncmFtbWVyCgoiSSBsb3ZlIHN0YW5kYXJkcyAtLSB0aGVyZSdzIHNvIG11Y2ggdmFyaWV0eS4uLiIgKEFUJlQgTWl0YXJiZWl0ZXIgS29tbWVudGFyKQoKIi0tLS0tIE9TLzIgVmlydXMgU2NhbiA6ICJXaW5kb3dzIGZvdW5kIiBSZW1vdmUgaXQgPyAoWSx5KSAtLS0tLSIKCiJXcm9uZyEgTm90aGluZyBydW5zIHVuZGVyIERPUy4gWW91IG5lZWQgRE9TK1hYWCwgd2hlcmUgWFhYIGlzIHNvbWUgc2NoZW1lIHRvCiBoZWxwIERPUyBmaW5kIGl0J3MgbWVtb3J5LiAgICAgICAgIEFzIGEgcnVsZSwgdGhlIFhYWCBmb3Igb25lIGFwcGxpY2F0aW9uCmlzCiBpbmNvbXBhdGlibGUgd2l0aCB0aGUgWFhYIGZvciBhbm90aGVyIiAgICAgICAgICAgTWlrZSBEb3dsaW5nLApjb21wLm9zLmxpbnV4CgoiVGhlIGJlc3Qgd2F5IHRvIGFjY2VsZXJhdGUgYSBNYWNpbnRvc2ggaXMgOS44IG0vc14yLiIKCiJGYWxsZW4gendlaSBQQ3MgYXVzIGRlbSBGZW5zdGVyLCB1bmQgc2llaGUgZGEsIGRlciA1NjggaXN0IHdpcmtsaWNoCnNjaG5lbGxlciAhIgoKIldlciBXb3Jrc3RhdGlvbnMgYXVzc2NoYWx0ZXQgb2RlciBtdXR3aWxsaWcgenVtIEFic3R1cnogYnJpbmd0LAogd2lyZCBtaXQgTVMtRE9PRiBuaWNodCB1bnRlciA1IFNlbWVzdGVybiBiZXN0cmFmdCEhICIKCiJEaWUgZGVyemVpdCBhbSBoYWV1Zmlnc3RlbiB1bnRlciBXaW5kb3dzIE5UIGVpbmdlc2V0enRlIEhhcmR3YXJlCiBzaW5kIE92ZXJoZWFkLVByb2pla3RvcmVuLiIKCiJVTklYIHdhcyBub3QgZGVzaWduZWQgdG8gc3RvcCB5b3UgZnJvbSBkb2luZyBzdHVwaWQgdGhpbmdzLCBiZWNhdXNlCnRoYXQgd291bGQgYWxzbyBzdG9wIHlvdSBmcm9tIGRvaW5nIGNsZXZlciB0aGluZ3MuIiAgICAgLS0gRG91ZyBHd3luCgoiKHZvaWQgKikgd2hlcmUgcHJvaGliaXRlZCBieSBsYXcuIgoKCk9wYWluZm9sZXB0aWtlciBCLkhhcnJ5CgpQLlMuOiBEYXMgQy1Qcm9ncmFtbSBpc3QgZWlnZW5kbGljaCBrZWluIFdpdHouLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXVlbmZlaW5kbGljaGVyIFdpdHohIChHcmltbWJvcm4sICA1LiBEZXogMTk5NSwgMTY6MjE6MzApOgoKQWxzbzoKV2FzIHR1dCBkZXIgQXJzY2ggZWluZXIgRnJhdSBiZWltIFNleD8KClNpdHp0IHp1IEhhdXNlIHVuZCBwYXNzdCBhdWYgZGllIEtpbmRlciBhdWYuCgpOYSwgd2VubiBkZXIgbmljaHQgZnJhdWVuZmVpbmRsaWNoIHdhci4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gUnVuZHVtc2NobGFnIChHcmltbWJvcm4sICA1LiBEZXogMTk5NSwgMTY6MjM6NTMpOgoKV28gTWFlbm5lciBpaHIgR2VoaXJuIGhhYmVuLCBoYWJlbiBGcmF1ZW4gZWluIExvY2ghCgpEYSBrYW5uIG1hbiBzaWNoIGdsZWljaCB6d2VpbWFsIGt1Z2Vsbjsgd2VyIHp1ZXJzdCBkaWUgbWFlbm5lcmZlaW5kbGljaGUKVmFyaWFudGUgdmVyc3RhbmRlbiBoYXQgd2lyZCBnZWxvZXNjaHQuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCAiSWNoIGJpbiBuaWNodCBjaGF1dmluaXN0aXNjaCwgaWNoIGJpbiBiZWkgYWxsZW4KYXJyb2dhbnQuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29udGFrdGFuemVpZ2UgKEdyaW1tYm9ybiwgIDUuIERleiAxOTk1LCAxNzoxMjowOSk6CgpOZXVsaWNoIGluIGVpbmVyIFN6ZW5lLVplaXR1bmcgKE5laW4sIGljaCBrYXVmZSBzb3dhcyBuaWNodCBzZWxic3QsIGRpZSBnYWJzCmtvc3RlbmxvcyEpCgpSdWJyaWs6IEVyIHN1Y2h0IFNpZQoKRnVlaGxlIG1pY2ggenUganVuZyB6dW0gU3RlcmJlbiwgenUgYWx0IHp1bSBMZWJlbiwgZGFzIEF1dG8genUgU2Nocm90dApnZWZhaHJlbiwgc3VjaGUgJ25lIG5ldWUgQmxlaWJlLCBzdWNoZSBkaWUgRnJhdSwgZGllIG1pdCBtaXIgUGZlcmRlIHN0aWVobHQsCnJlaXRlbiBnZWh0ICh0amEsIHdlbm4gamV0enQgZGFzIEF1dG8gbm9jaCBmdW5rdGlvbmllcmVuIHd1ZXJkZS4uLiksClNvbm5lbmF1ZmdhbmcgdW5kIE1lZXIuIEJlZ2lubmVuIG5ldSBpbSBNb3JnZW5ncmF1ZW4hIChtLzM2LzE3Ni82OCkgY2hpZmZyZToKYmxhYmx1YmIKCgpOYWphLCBhYmVyIG5vY2ggYmVzc2VyIGZhbmQgaWNoIHVudGVyICJTaWUgc3VjaHQgSWhuIjoKSWNoIHdpbGwgYXVjaCBlaW5lbiEgQ2hpZmZyZTogdW5kc293ZWl0ZXIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdC4gUG9zdGV0IG51ciBkaWUgaGFybWxvc2VyZW4gRnVuZGUuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJhc3Npc3Rpc2NoZXIgV2l0eiAoR3JpbW1ib3JuLCAgNS4gRGV6IDE5OTUsIDE3OjE3OjA3KToKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlbiBUaXR0ZW4gZWluZXIgd2Vpc3NlbiBGcmF1IHVuZCBkZW4gVGl0dGVuCmVpbmVyIHNjaHdhcnplbiBGcmF1PwoKRGllIGRlciB3ZWlzc2VuIHNpbmQgaW0gUGxheWJveSwgZGllIGRlciBzY2h3YXJ6ZW4gaW4gR2VvLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTg6Mzk6MDQpOgoKRGVyIFZhdGVyIHRvYnQuICdEdSBiaXN0IGVyc3QgMTUgdW5kIGVyd2FydGVzdCBzY2hvbiBlaW4gS2luZD8gU2FnIG1pcgpzb2ZvcnQsCndlciBkZXIgVmF0ZXIgaXN0IScgU2NobHVjaHp0IGRpZSBUb2NodGVyOiAnV2Vpc3MgaWNoIG5pY2h0LCBpY2ggbXVzcyBkb2NoIHVtCnplaG4gZGFzIExpY2h0IGF1c21hY2hlbi4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpIChDcmVhdGl2ZSwgIDUuIERleiAxOTk1LCAxODo0MTo0NSk6CgpNb25kc2NoZWlubGljaHQgaW0gUGFyay4gQWxsZSBCYWVua2Ugc2luZCBiZXNldHp0LiAnSG9yY2ggbnVyJywgZmx1ZXN0ZXJ0IHNpZQp2ZXJ6dWVja3QsICd3aWUgZGllIEdyaWxsZW4gemlycGVuLicgJ0RhcyBzaW5kIG5pY2h0IGRpZSBHcmlsbGVuJywgc2FndCBlciwKJ2RhcyBzaW5kIGRpZSBSZWlzc3ZlcnNjaGx1ZXNzZS4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTg6NDQ6MTgpOgoKRGllIEhhdXNmcmF1IGVyd2FjaHQgYW0gYW5kZXJlbiBNb3JnZW4gdW5kIHNhZ3QgbWl0IGdlc2NobG9zc2VuZW4gQXVnZW46CidWZXJzcHJpY2ggbWlyLCBIdWJlcnQsIGRhc3Mgd2lyIGRpZXNlbiBNZW5zY2hlbiBuaWUgd2llZGVyIGVpbmxhZGVuLicKJ0VpbnZlcnN0YW5kZW4nLCBlcndpZGVydCBkZXIgTWFubiBuZWJlbiBpaHIsICdhYmVyIHdlciBpc3QgSHViZXJ0PycKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkpKSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTg6NDY6MTApOgoKRGVyIGtsZWluZSBUb25pIGtvbW10IG1pdCBlaW5lciBXYWVybWVmbGFzY2hlIHp1IHNlaW5lciBPbWEuICdXYXMgd2lsbHN0IER1CmRlbm4gbWl0IGRlcj8nIGZyYWd0IGRpZSBHcm9zc211dHRlci4gJ1BhcGkgaGF0IGdlc3Rlcm4gZ2VzYWd0OiAiT21hIGhhdApHZWxkLCBkaWUgbXVlc3NlbiB3aXIgdW5zIHdhcm1oYWx0ZW4uIiAnCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpIChDcmVhdGl2ZSwgIDUuIERleiAxOTk1LCAxODo0ODozMCk6CgpEaWUgSGVpbGlnZW4gZHJlaSBLb2VuaWdlIGtvbW1lbiBhdXMgZGVtIE1vcmdlbmxhbmQsIHVtIGRlbiBTb2huIEdvdHRlcyBpbgpkZXIgS3JpcHBlIHp1IGJld3VuZGVybi4gQmFsdGhhc2FyIGlzdCBzZWhyIGdyb3NzIHVuZCBzdG9lc3N0IG1pdCBkZW0gS29wZgpnZWdlbiBkaWUgbmllZHJpZ2UgVHVlci4gJ0pFU1NBUycsIHNjaHJlaXQgZXIuICdTaWVoc3QgRHUnLCBtZWludCBNYXJpYSB6dQpKb3NlZiwgJ0RBUyBpc3QgZWluIE5hbWUsIG5ldCBEdSBpbW1lciBtaXQgZGVpbicgSHVnby4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpKSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTg6NTA6NTUpOgoKVW50ZXJoYWx0ZW4gc2ljaCB6d2VpIE5hY2hiYXJpbm5lbi4gJ1dhcyBtYWNodCBlaWdlbnRsaWNoIERlaW4gTWFubiBqZXR6dD8nCidFciBpc3QgYmVpIGRlciBLcmlwby4nIC0gJ1VuZCB3aWUgZ2VmYWVsbHQgZXMgaWhtIGRvcnQ/JyAtICdXZWlzcyBpY2ggbmljaHQuClNpZSBoYWJlbiBpaG4gZXJzdCB2b3IgZWluZXIgaGFsYmVuIFN0dW5kZSBhYmdlaG9sdC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpKSkgKENyZWF0aXZlLCAgNS4gRGV6IDE5OTUsIDE4OjUyOjQ3KToKCidHcmF0dWxpZXJlLCBIZXIgTWF5ZXIsIHdpZSBpY2ggaG9lcmUsIGhhYmVuIHNpZSBnZXN0ZXJuIGVpbmVuIEVyYmVuIHVuZApTdGFtbWhhbHRlciBiZWtvbW1lbiEnIC0gJ05laW4sIEhlcnIgRGlyZWt0b3IsIGJlaSBtZWluZW0gR2VoYWx0IGJla29tbXQKbWFuIG51ciBLaW5kZXIuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSkpKSkpKSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTg6NTU6MDkpOgoKJ0lociBNYW5uIGlzdCBmdWVyIHNlaW4gQWx0ZXIgbm9jaCBlcnN0YXVubGljaCBydWVzdGlnJywgc2FndCBkZXIgQXJ6dCB6dXIKanVuZ2VuIEVoZWZyYXUuICdGdWVyIHNlaW4gQWx0ZXIgdmllbGxlaWNodCcsIGdpYnQgc2llIHp1cnVlY2suICdBYmVyIG5pY2h0CmZ1ZXIgbWVpbmVzLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkpKSkpKSkpIChDcmVhdGl2ZSwgIDUuIERleiAxOTk1LCAxODo1ODo1OSk6Cgpad2VpIE9zdGZyaWVzZW4gdW50ZXJoYWx0ZW4gc2ljaC4gJ1N0ZWxsIERpciB2b3IsIHdlZ2VuIGVpbmVzIFN0cm9tYXVzZmFsbHMKc3RlY2t0ZSBpY2ggendlaSBTdHVuZGVuIGluIGVpbmVtIExpZnRzY2hhY2h0IGZlc3QuJyAtICdEYXMgaXN0IG5vY2ggZ2FyCm5pY2h0cycsIGVyd2lkZXJ0IGRlciBhbmRlcmUsICdpY2ggbXVzc3RlIGVpbm1hbCBhdXMgZGVtIGdsZWljaGVuIEdydW5kCnZpZXIgU3R1bmRlbiBhdWYgZWluZXIgUm9sbHRyZXBwZSBhdXNoYXJyZW4uJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopKSkpKSkpKSkpIChDcmVhdGl2ZSwgIDUuIERleiAxOTk1LCAxOTo1MDowOCk6CgonR3V0ZW4gVGFnLCBGcmF1IFNjaG1pZHQuIEdlc3Rlcm4gaGFiZSBpY2ggaWhyZW4gTWFubiBnZXRyb2ZmZW4sIGFiZXIgZXIgaGF0Cm1pY2ggbmljaHQgZ2VzZWhlbi4nIC0gJ0phLCBkYXMgaGF0IGVyIG1pciBlcnphZWhsdC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpKSkpKSkpIChDcmVhdGl2ZSwgIDUuIERleiAxOTk1LCAxOTo1MTozOCk6CgonSWNoIGdyYXR1bGllcmUgenVyIEdlYnVydCBJaHJlcyBTb2huZXMuIFdpZSBoZWlzc3QgZXIgZGVubj8nIC0gJ0ljaCB3ZWlzcwplcyBuaWNodCwga2VpbmUgQWhudW5nLCBtYW4gdmVyc3RlaHQgaWhuIHNvIHNjaGxlY2h0LicKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikpKSkpKSkpKSkpKSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTk6NTM6MDUpOgoKRWluIGp1bmdlciBNYWxlciwgZGVyIHNpY2ggYXVmIHN0dXJtZ2VwZWl0c2NodGUgU2VlbW90aXZlIHNwZXppYWxpc2llcnQgaGF0LApzdGVsbHQgenVtIGVyc3RlbiBNYWwgYXVzLiBFaW5lIEZyZXVuZGluIGJldHJhY2h0ZXQgZGllIEJpbGRlcjogJ1NjaGFkZSwKZGFzcyBEdSBpbW1lciBzbyBlaW4gUGVjaCBtaXQgZGVtIFdldHRlciBoYXN0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkpKSkpKSkpKSkpKSAoQ3JlYXRpdmUsICA1LiBEZXogMTk5NSwgMTk6NTU6MjApOgoKQW4gQm9yZCBlaW5lcyBKdW1ib2pldHMgZnJhZ3QgZWluZSBEYW1lIG5hY2ggZGVyIFRvaWxldHRlLiBBbnR3b3J0ZXQgZGllClN0ZXdhcmRlc3M6ICdHYW56IHZvcm4hJyBLdXJ6ZSBaZWl0IHNwYWV0ZXIga29tbXQgZGllIERhbWUgZW1wb2VydCB6dXJ1ZWNrOgonVW5lcmhvZXJ0LCBkYSBzaXR6ZW4gdmllciBNYWVubmVyLCB1bmQgZmVybnNlaGVuIHR1biBzaWUgYXVjaCBub2NoLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2hhdXZpZXMgKEFjcmltb24sICA2LiBEZXogMTk5NSwgMDE6MTE6MjkpOgojISBybj1CbG9vZHloYXJyeSBydD04MTgwNTczMTcKCkluIGRlciBJbmZvLVZvcmxlc3VuZyBnZWhvZXJ0OgoKRGFzIEJld2Vpc3ByaW56aXAgZWluZXIgRnJhdToKCiAgIFJFUEVBVAogICAgICAgICBCZWhhdXB0dW5nCiAgIFVOVElMIGtlaW5fV2lkZXJzcHJ1Y2hfZXJmb2xndCgpOwoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWEgKEJsb29keWhhcnJ5LCAgNi4gRGV6IDE5OTUsIDA3OjQ3OjM2KToKCk11dHRpLCBNdXR0aSEgU2NoYXUgZG9jaCBtYWwsIGRpZSBKdW5ncy4KCkxhc3Mgc2llIGRvY2guCgpIYWIgaWNoIGphLiBBYmVyIHNpZSB3b2xsZW4gc2Nob24gd2llZGVyLgoKCkIuSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2hhdXZpZXMgKFJ1ZGlyYXR0ZXIsICA2LiBEZXogMTk5NSwgMDk6MDA6MDkpOgojISBybj1BY3JpbW9uIHJ0PTgxODIwODY4OQoqR0FFSE4qCkhhdCBoaWVyIGRlbm4ga2VpbmVyIF9yaWNodGlnXyBmcmF1ZW5mZWluZGxpY2hlIFdpdHplIGF1ZiBMYWdlcj8KUnVkaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDopIChMaSwgIDYuIERleiAxOTk1LCAwOTo0MDowMyk6CiMhIHJuPUNyZWF0aXZlIHJ0PTgxODE4NTE0NApEZXIgaXN0IG5pY2h0IHdpdHppZyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogOikgKENyZWF0aXZlLCAgNi4gRGV6IDE5OTUsIDEwOjA0OjMxKToKIyEgcm49TGkgcnQ9ODE4MjM5MjAzCgpIYXN0IGRlbm4gc29sY2hlcmxlaSBFcmZhaHJ1bmdlbiBzY2hvbiBnZW1hY2h0PyA6KQotQ3JlYS0sIGZpbmRldCBpaG4gbmV0dC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiA6KSAoTGksICA2LiBEZXogMTk5NSwgMTA6MTc6MjUpOgojISBybj1DcmVhdGl2ZSBydD04MTgyNDA2NzEKTmVpbiwgaWNoIGhhYiBpaG4gbnVyIGFuZGVycyBpbnRlcnByZXRpZXJ0LgpPaywgYWIgbmFjaCBTQ2htYXJybiBkYW1pdCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1PREVSTkUgRlVFSFJVTkdTU1RJTEUgKEJsb29keWhhcnJ5LCAgNi4gRGV6IDE5OTUsIDEzOjMxOjU4KToKCk1hbmFnZW1lbnQgYnkgSGVsaWtvcHRlcjoKICAgICBVZWJlciBhbGxlbSBzY2h3ZWJlbiwgdm9uIFplaXQgenUgWmVpdCBhdWYgZGVuIEJvZGVuIGtvbW1lbiwKICAgICB2aWVsIFN0YXViIGF1ZndpcmJlbG4gdW5kIGRhbm4gd2llZGVyIGFiIG5hY2ggb2Jlbi4KCk1hbmFnZW1lbnQgYnkgSmVhbnM6CiAgICAgQW4gZGVuIHdpY2h0aWdzdGVuIFN0ZWxsZW4gc2l0emVuIGRpZSBncm9lc3N0ZW4gTmlldGVuLgoKTWFuYWdlbWVudCBieSBDaGFtcGlnbm9uOgogICAgIERpZSBNaXRhcmJlaXRlciBpbSBkdW5rZWxuIGxhc3NlbiwgbWl0IE1pc3QgYmV0cmV1ZW47CiAgICAgd2VubiBzaWNoIEtvZXBmZSB6ZWlnZSwgc29mb3J0IGFic2FlZ2VuLgoKTWFuYWdlbWVudCBieSBQaW5ncG9uZzoKICAgICBKZWRlbiBWb3JnYW5nIHNvIGxhbmdlIHp1cnVlY2stIG9kZXIgd2VpdGVyZ2ViZW4sIGJpcyBlciBzaWNoCiAgICAgdm9uIHNlbGJzdCBlcmxlZGlndC4KCk1hbmFnZW1lbnQgYnkgRGFyd2luOgogICAgIE1pdGFyYmVpdGVyIGdlZ2VuZWluYW5kZXIgYXVmc3RhY2hlbG4sIFNpZWdlciBiZWZvZXJkZXJuLAogICAgIFZlcmxpZXJlciBhYnNjaGllYmVuLgoKTWFuYWdlbWVudCBieSBSb2JpbnNvbjoKICAgICBBbGxlIHdhcnRlbiBhdWYgRnJlaXRhZy4KCkIuSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbWEuLi4gKEJsb29keWhhcnJ5LCAgNi4gRGV6IDE5OTUsIDEzOjM0OjQ0KToKCm1hbWEhIGthbm4gaWNoIGhldXRlIHdpZWRlciB2YW5pbGxlc29zc2UgaGFiZW4gPwogICAgIC0tLSBuZWUsIG9wYXMgd3VuZGUgZWl0ZXJ0IG5pY2h0IGplZGVuIHRhZwoKbWFtYSEga2FubiBpY2ggc3VwcGUgb2huZSBicm9ja2VuIGhhYmVuID8KICAgICAtLS0gaGFsdCdzIG1hdWwsIG1laW5zdCBkdSBwYXBhIGtvdHp0IGZ1ZXIgZGljaCBkdXJjaCdzIHNpZWIKCm1hbWEhIGFsbGUgc2FnZW4gaWNoIGhhZXR0JyBncm9zc2UgZnVlc3NlCiAgICAgLS0tIGhhbHQncyBtYXVsIHVuZCBzdGVsbCBkaWUgc2NodWhlIGluIGRpZSBnYXJhZ2UKCm1hbWEhIGFsbGUgc2FnZW4gaWNoIGhhZXR0JyBncm9zc2UgemFlaG5lCiAgICAgLS0tIGhhbHQncyBtYXVsIHVuZCB6ZXJrcmF6IGRhcyBwYXJrZXR0IG5pdAoKCkIuSGFycnkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYW1hLi4uIChUYXNoYSwgIDYuIERleiAxOTk1LCAxODozNzoyNik6CiMhIHJuPUJsb29keWhhcnJ5IHJ0PTgxODI1MzI4NApXb3csIERJRSB3YXJlbiBhbHQhIEhhYiBpY2ggZGFzIGxldHp0ZSBtYWwgZ2xhdWIgaWNoIGluIGRlciBHcnVuZHNjaHVsZQpnZWhvZXJ0Li4uIChkYXNzIHNpZSBtaXQgMm1hbCBNYW1hIGFuZmluZ2VuIGlzdCB3b2hsIG5lYmVuc2FlY2hsaWNoKQoKbm9zdGFsZ2lzY2gsIFRhc2hhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIbW0uLiAoS3JldGVrLCAgNi4gRGV6IDE5OTUsIDE4OjQ3OjE0KToKTmEgZ3V0LCBkYW5uIG1hbCBlaW4gVmVyc3VjaCB2b24gbWlyLi4uIE1hbCBzY2hhdWVuLCBvYiBEQVMgUnVkaSoKenVmcmllZGVuIHN0ZWxsdC4uLgoKCgpXYXMga2FubiBkaWUgRWhlZnJhdSBtYWNoZW4sIGRpZSBnZXJhZGUgZGllIEtlbGxlcnRyZXBwZSBydW50ZXJnZWZhbGxlbgppc3Q/CgpHbGVpY2ggbWFsIGVpbiBCaWVyIG1pdGJyaW5nZW4hCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW5lciAoS3JldGVrLCAgNi4gRGV6IDE5OTUsIDE4OjQ3OjQ5KToKV2FzIGlzdCBmYWxzY2gsIHdlbm4gZGllIEZyYXUgYXVmIGVpbm1hbCBpbSBXb2huemltbWVyIHN0ZWh0PwoKRGllIEtldHRlIGFtIEhlcmQgaXN0IHp1IGxhbmcuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2ggZWluZXIgKFRhc2hhLCAgNi4gRGV6IDE5OTUsIDE4OjQ5OjExKToKIyEgcm49S3JldGVrIHJ0PTgxODI3MjA2OQpIbW1tbSwgYWJlciB3aWUga2FubiBkaWUgRnJhdSBkZW0gTWFubiBkYXMgQmllciBicmluZ2VuLCB3ZW5uIHNpZSBtaXQgZWluZXIKbm9ybWFsbGFuZ2VuIEtldHRlIG5pY2h0IGlucyBXb2huemltbWVyIGtvbW10PwoKTWFlbm5lciBzaW5kIGphIHNvb29vb29vb29vb29vb28gZG9vZiEgOykKCmFsbGVzZmVpbmRsaWNoLCBUYXNoYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOb2NoIGVpbmVyIChLcmV0ZWssICA2LiBEZXogMTk5NSwgMTg6NTA6MjcpOgojISBybj1UYXNoYSBydD04MTgyNzIxNTEKRmVpbmhlaXRlbiwgVGFzaGEsIGFsbGVzIEZlaW5oZWl0ZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5vY2ggZWluZXIgKEtyZXRlaywgIDYuIERleiAxOTk1LCAxODo1MTowNCk6CiMhIHJuPUtyZXRlayBydD04MTgyNzIyMjcKRnJhdWVuIGhhYmVuIGltIElkZWFsZmFsbCBkcmVpIFNjaGFsdGVyOgpLb2NoZW4sIFNleCwgdW5kIEFVUy4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOb2NoIGVpbmVyIChQdW1hLCAgNi4gRGV6IDE5OTUsIDE5OjE3OjM0KToKIyEgcm49S3JldGVrIHJ0PTgxODI3MjI2NApkdSBoYXN0IFB1dHplbiB2ZXJnZXNzZW4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOb2NoIGVpbmVyIChBcmFueWEsICA2LiBEZXogMTk5NSwgMTk6MTg6MzUpOgojISBybj1QdW1hIHJ0PTgxODI3Mzg1NApXaWVzbz8gV296dSBtdXNzIGdlcHV0enQgd2VyZGVuPyBJc3QgZG9jaCBuZSBGcmF1ZW5tYWNrZS4uCgoqd2luayBhbGxlbiBKdW5nZ2VzZWxsZW4genUqCgpBcmFueWEKTk5OCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmcmF1ZW53aXR6ZSAoUnVkaXJhdHRlciwgIDYuIERleiAxOTk1LCAyMzozMjowMyk6CkxldXRlLCBpY2ggYmluIGVjaHQgZWluIEZyYXVlbmhhc3NlciwgYWJlciBsYW5nc2FtIG5lcnZlbiBzZWxic3QgTUlDSCBkaWVzZQpXaXR6ZS4KUnVkaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJldHJpZWJzYXVzZmx1ZyAoUm9lc3RpLCAgNy4gRGV6IDE5OTUsIDA5OjU4OjM2KToKIyEgcm49UGFyYWNlbHN1cyBydD04MTgwMDU4OTIKS2FubiBqYSBzZWluIGRhcyBpY2hzIHVlYmVybGVzZW4gaGFiLi4uQWJlci4uLgoKICBXYW5uIHVuZCB3bz8/Pz8/Pz8KClJvZXN0aSB3aWxsIGF1Y2gga29tbWVuOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IENoYXV2aWVzIChBcnR5LCAgNy4gRGV6IDE5OTUsIDEwOjU0OjU5KToKIyEgcm49UnVkaXJhdHRlciBydD04MTgyMzY4MDkKaG1tLCB3YXMgaGFlbHN0IER1IHZvbiBkZW0gUnVkaToKCldhcyBzYWd0IGVpbiBCbGluZGVyIGltIEZpc2NoZ2VzY2hhZWZ0Pz8KCgotLT4gIEhpIE1hZWRlbHMuCgpBUlRZLCB1bnNjaHVsZGlnIHdpZSBpbW1lciEKClBTLjogS2FubiBtaXIgZGVuIG1hbCBqZW1hbmQgZXJrbGFlcmVuPz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZlZS0+endlaXRpZSB2b24gWndhY2tlbG1hbm4/IChBbWluLCAgNy4gRGV6IDE5OTUsIDExOjMwOjQ2KToKRWluZSBnZW9lZmZuZXRlIEhvbHp0dWVyLgpFcyBnaWJ0IGVpbmVuIHNpY2h0YmFyZW4gQXVzZ2FuZzogc3VlZGVuLgpEaWUgRmVlIEFtYXJ5bGxpcy4KPiB0cml0dCBmZWUKRHUgdHJpdHRzdCBkaWUgRmVlLgo+IER1IGhvZXJzdCBwbG9ldHpsaWNoIGF1cyBkZW0gVHVybSBkZXMgU2NobG9zc2VzIGVpbmVuIGZ1cmNodGJhcmVuClNjaHJlaTogUGV0cm9zaWxpdXMgWndhY2tlbG1hbm5zIFRvZGVzc2NocmVpIQoKV2llc28gc2NocmVpdCBwZXRyb3NpbGl1cyB6d2Fja2VsbWFubiB3ZW5uIGljaCBkaWUgZmVlIHRyZXRlPwpGYWxzY2VzIGZlbnN0ZXI/CgpBbWluOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXVlbmZlaW5kbGljaCAhIChPZXR0aSwgIDcuIERleiAxOTk1LCAxMjoyODoxMik6Ck5vY2htYWwsIG51ciBmdWVyIFJ1ZGkgIQoKV2llIG5lbm50IG1hbiBlaW5lIFZhZ2luYSBtaXQgRmV0dGdld2ViZSBkcnVtaGVydW0gPwoKRnJhdS4KClNvIHVudGVyIGFsZWxyIHNhdSB1bmQgYWx0LCBhYmVyIHdhcyBzb2xscy4KCk9ldHRpIGJlbGllYnQgZGllc21hbCBsaWViZXIgYW5vbnltLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZyYXVlbmZlaW5kbGljaCAhIChGYXJpbiwgIDcuIERleiAxOTk1LCAxMzoxNDozNyk6CiMhIHJuPU9ldHRpIHJ0PTgxODMzNTY5MgpOYWphLCBtZWhyIGxhdSBhbHMgZmxhdSBPZXR0aS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTm9jaCBlaW5lciAoSGFyZGlsLCAgNy4gRGV6IDE5OTUsIDEzOjI0OjA5KToKIyEgcm49QXJhbnlhIHJ0PTgxODI3MzkxNQoKSWhyIHNlaWQgYWxsZSBzY2hsZWNodC4KQWxzbyBtYWwgZWhybGljaDogd2VyIHZvbiBFdWNoIHd1ZXJkZSBlaW5lIEZyYXUgZHJhbmxhc3Nlbiwgd2VubiBlaW4gSGVtZApyaWNodGlnIGdlYnVlZ2VsdCB3ZXJkZW4gbXVzLCBvZGVyIHdlbm4gbWFuIG1hbCB3YXMgcmljaHRpZyBsZWNrZXJlcyB6dSBBYmVuZApoYWJlbiB3aWxsLgpOZWVuZWUsIHNhZyBpY2ggZXVjaCwgc2VsYnN0IGlzdCBkZXIgTWFubi4KQWJlciBoYWxsby4KCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZnJhdWVud2l0emUgKFNjaHJ1bXBmaSwgIDcuIERleiAxOTk1LCAxNTo1OToxNSk6CiMhIHJuPVJ1ZGlyYXR0ZXIgcnQ9ODE4Mjg5MTIzClRqYSwgdW5kIGljaCB3b2xsdCBleHRyYSBuaXggc2FnZW4sIGFlaCBzY2hyZWliZW4sIHdlaWwgZGllIGRhbm4gamEgc293aWVzbwpuaWNodCBhdWZob2VybiwgTmUgZXJzdG5oYWZ0IEp1bmdzLCBtaXIgd2lyZCBlcyBlY2h0IGxhbmdzYW0genUgYWV0emVuZCB1bmQKaWNoIG1hZyBkaWUgUnVicmlrIG5pY2h0IGFiYmVzdGVsbGVuLiBBbHNvIHJlaXNzdCBFdWNoIG1hbCBhbSBSaWVtZW4uClNjaHJ1bXBmaSBtdXNzIGxhbmdzYW0ga290emVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGZyYXVlbndpdHplIChHdXlicnVzaCwgIDcuIERleiAxOTk1LCAxNjoxNjoxNCk6CiMhIHJuPVNjaHJ1bXBmaSBydD04MTgzNDgzNTUKSG0uLi5vYiBpY2ggbWljaCBmdWVyIERpY2ggYW0gUmllbWVuIHJlaXNzLCBTY2hydW1wZmk/CkFiZXIgZGFzIGthbm4gZG9jaCB2ZXJkYW1tdCB3ZWggdHVuLi4uLgoqa29wZnNjaHVldHRlbCoKR3V5YnJ1c2gsIHNjaG9udCBzaWNoIGxpZWJlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogZnJhdWVud2l0emUgKFNjaHJ1bXBmaSwgIDguIERleiAxOTk1LCAwMzowMzozMCk6CiMhIHJuPUd1eWJydXNoIHJ0PTgxODM0OTM3NApFaW4gTWFubiByZW5udCBtaXQgZWluZW0gU3RlaWZlbiBnZWdlbiBkaWUgV2FuZC4gV2FzIGRhcmFuIGlzdCBwZWlubGljaD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGZyYXVlbndpdHplIChTY2hydW1wZmksICA4LiBEZXogMTk5NSwgMDM6MDQ6MDApOgojISBybj1HdXlicnVzaCBydD04MTgzNDkzNzQKRXIgaGF0IHNpY2ggZGFzIE5hc2VuYmVpbiBnZWJyb2NoZW4uCgpTY2hydW1wZmkgd2lyZCBhdWNoIG1hbCBOaXZlYXVsb3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGZyYXVlbndpdHplIChFc2N1YmFyLCAgOC4gRGV6IDE5OTUsIDAzOjA2OjQ2KToKIyEgcm49U2NocnVtcGZpIHJ0PTgxODM4ODI0MApJY2ggd3VlcmRlIGVoZXIgc2FnZW4gZGVyIEJhdWNoIGJyZW1zdGUgYWIuLi4KClRzY2h1ZXNzLi4uIEVzY3ViYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGZyYXVlbndpdHplIChTY2hydW1wZmksICA4LiBEZXogMTk5NSwgMDM6MjI6MzcpOgojISBybj1TY2hydW1wZmkgcnQ9ODE4Mzg4MjQwCkVpbiBNYW5uIGdlaHQgenVtIEFyenQgdW5kIHNhZ3Q6ICJIZXJyIERva3RvciwgaWNoIGhhYiBlaW4gUHJvYmxlbSwgaWNoCnBpbmtlbCBpbW1lciBzcGlyYWxlbmZvZXJtaWchIgpzYWd0IGRlciBEb2t0b3I6ICJIbW0sIHplaWdlbiBzaWUgbWlyIGRvY2ggbWFsIHdpZSBzaWUgZGFzIG1hY2hlbi4iCkRlciBNYW5uIHZlcnN1Y2h0IHp1IHBpbmtlbG4gYWJlciBlcyBrb21tdCBuaXgsIHdlaWwgZGllIE1hZW5uZXIgamEgbWVpc3RlbnMKSGVtbXVuZ2VuIGhhYmVuIGluIEdlZ2Vud2FydCBlaW5lcyBhbmRlcmVuIHp1IHBpbmtlbG4uIGRhcmF1ZmhpbiBkZXIgQXJ6dDoKIk9rLCBpY2ggemVpZyBlcyBpaG5lbiBtYWwgdm9yIHVuZCBzaWUgc2FnZW4gbWlyIGRhbm4gb2Igc2llIGVzIGdlbmF1c28KbWFjaGVuLiIKRGVyIEFyenQgemVpZ3QgZXMgZGVtIE1hbm4gdm9yIHVuZCBzY2h1ZXR0ZWx0IGlobiBhbnNjaGxpZXNzZW5kIGFiLiBzYWd0IGRlcgpNYW5uIGRyYXVmOiAiQWNoc29vb29vLCBpY2ggd3JpbmcgaWhuIGltbWVyIGF1cyEiCgpIb2hvaG8KSXN0IGRlciBqZXR6dCB1bmdlZmFlaHIgYXVmIEV1cmVtIE5pdmVhdT8KClNjaHJ1bXBmaSBydWVzdGV0IGF1ZgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IGZyYXVlbndpdHplIChMaSwgIDguIERleiAxOTk1LCAwOTozNDo1Mik6CiMhIHJuPVNjaHJ1bXBmaSBydD04MTgzODkzNTcKV2FydW0gaGFiZW4gTWFlbm5lciBlaW5lbiBJUSBQdW5rdCBtZWhyIGFscyBTY2h3ZWluZT8KCgoKCgoKCgoKRGFtaXQgc2ljaCBkYXMgU2Nod2FlbnpjaGVuIG5pY2h0IHJpbmdlbHQhCgpva29rLCBGbGFtZWQgbWljaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IGZyYXVlbndpdHplIChMaSwgIDguIERleiAxOTk1LCAwOTozOTo0MSk6CiMhIHJuPUxpIHJ0PTgxODQxMTY5MgpMZWlkZXIga2FubiBpY2gga2VpbmVuIG5ldWUgQXJ0aWtlbCBzY2hyZWliZW4sIHNvbmRlcm4gbnVyIGFudHdvcnRlbiwgZGVzaGFsYgpkaWVzZXIgV2l0eiB1bnRlciBkaWVzZXIgUnVicmlrLCBhYmVyIGljaCBmaW5kZSwgd2lyIHNvbGx0ZSBkYXMgVGhlbWEgZGVyCkZyYXVlbiJXaXR6ZSIgbGFuZ3NhbSBiZWVuZGVuLgoKRWluIE1hbm4gZmFlaHJ0IGFiZW5kcyBpbiBTY2hsYW5nZW5saW5pZW4gZGllIFN0cmFzc2UgZW50bGFuZyB1bmQgd2lyZCB2b24KZGVyIFBvbGl6ZWkgYW5nZWhhbHRlbi4KIiBHdXRlbiBBYmVuZCxoYWJlbiBTaWUgZXR3YXMgZ2V0cnVua2VuPyAiCiIgTmVpbixpY2ggaGFiZSBuaWNodHMgZ2V0cnVua2VuLiAiCiIgTmEsIGRhc3Mgd29sbGVuIHdpciBkb2NoIG1hbCBzZWhlbi4gQmxhc2VuIFNpZQpiaXR0ZSBtYWwgaW4gZGFzIFJvZWhyY2hlbi4gIgoiIE5laW4sIGljaCBibGFzIGRhIG5pY2h0IHJlaW4uICIKIiBOYSBndXQsIGRhbm4gbXVlc3NlbiB3aXIgZWJlbiBlaW5lIEJsdXRwcm9iZQptYWNoZW4uICIKIiBOZWluIGljaCBsYXNzIG1pciBhdWNoIGtlaW4gQmx1dCBhYnphcGZlbi4gIgoiIEphIHdhcyBzb2xsZW4gd2lyIGRlbm4gZGFubiBtYWNoZW4sIGVpbmVuSW50ZWxsaWdlbnp0ZXN0IHZpZWxsZWljaHQ/ICIKIiBOYSwgZ3V0LlBhc3NlbiBTaWUgYXVmOkljaCBzYWdlIGVpbmVuIEF1dG9rb256ZXJuLAp1bmQgU2llIGFudHdvcnRlbiBtaXQgZWluZXIgVHlwZW5iZXplaWNobnVnLgpJY2ggZ2ViZSBJaG5lbiBlaW4gQmVpc3BpZWw6IEljaCBzYWdlID4gVlcgPCwKU2llIHNhZ2VuIEdvbGYsIG9kZXIgaWNoIHNhZ2UgTWVyY2VkZXMsIFNpZQpzYWdlbiA+IDM5MCA8LiAiCiIgQWxsZXMga2xhci4gIgoiIEFsc28gZ3V0LkRpZSBlcnN0ZSBGcmFnZTogIEphZ3VhciA/ICIKIiBGZWJydWFyLiAiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogZnJhdWVud2l0emUgKFJvZXN0aSwgIDguIERleiAxOTk1LCAyMDowMjozNik6CiMhIHJuPVNjaHJ1bXBmaSBydD04MTgzODkzNTcKSGV5IFNjaHJ1bXBmaSBpY2ggZmFuZCBkaWUgV2l0emUgYmlzaGVyIGJlZGV1dGVuZCBodW1vcmxvc2VyLi4ud2VpdGVyIHNvOikKCkFubm9ueW1vdXMKClVuZCBlcyBnaWJ0IHNpZSBkb2NoOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsYXNwaGVtaWUgdW5kIEZyYXVlbndpdHplIChBenp1cm8sIDExLiBEZXogMTk5NSwgMDM6NDk6MTYpOgpXYXMgaXN0IGRlciB1bnRlcnNjaGllZCB6d2lzY2hlbiBKZXN1cyB1bmQgbmVyIEJsb25kaW5lbj8KCgoKCgoKCihEZXIgZ2VzaWNodHNhdXNkcnVjayBiZWltIE5hZ2Vsbi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMaXZlIGlzdCBsaXZlLi4uIChIaWdobGFuZGVyLCAxMS4gRGV6IDE5OTUsIDEzOjM2OjQzKToKWCB0ZWlsdCBEaXIgbWl0OiBLYW5uc3QgRHUgbWljaCB6dW0gTWFnaWVyIG1hY2hlbiwgaGllcj8gWzEzOjMyXQpEdSB0ZWlsc3QgWCBtaXQ6IFNwaWVsIGVyc3QgbWFsIGJpcyBsZXZlbCAyMCwgZGFubiByZWRlbiB3aXIgd2llZGVyCkR1IHRlaWxzdCBYIG1pdDogZHJ1ZWJlciA6PgpYIHRlaWx0IERpciBtaXQ6IEhtbW0uLi4uIGFiZXIgaWNoIHdpbGwgbWljaCB0ZWxlcG9ydGllcmVuIGtvZW5uZW4uIFsxMzozM10KCklzdCBkYXMgTGViZW4gbmljaHQgc2Nob2VuIDo+ICAgIFggd2FyIHp1IGRlbSBaZWl0cHVua3QgYWxzIGxldmVsIDEKU3BpZWxlciBlaW5nZWxvZ2d0LgoKICAgIEhpZ2hsYW5kZXIgcnluIFRhaGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDYXQqIGtvZW5udGVzdCBEdS4uLiAoTWFuZ28sIDIwLiBEZXogMTk5NSwgMDk6NTk6MzkpOgpub2NobWFsIGRlbiBBcnRpa2VsIG1pdCBkZW0gV2VpaG5hY2h0c21hbm4gcG9zdGVuPyA6KQoKCk1hbmdvLCBzY2hvbiBpbSB2b3JhdXMgZGFua2Jhci4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWYgQWxsZ2VtZWluIGdlaG9lcnQuLi4gKEJsb29keWhhcnJ5LCAyMC4gRGV6IDE5OTUsIDEyOjE3OjE2KToKCltBbGxnZW1laW46TG9sbGldIHdpZSBrb21tIGljaCBkZW5uIGFtIHNjaG5lbGxzdGVuIGF1cyBkZXIgc2NoLi4uIGhlaWRlCltBbGxnZW1laW46TG9sbGldIHJhdXMhISEhIQoKTG9sbGkgaW4gZGVyIFNjaGVpZGU/Pz8KUGZ1aSEhIQoKdW5kIHN0b3R0ZXJuIHR1dCBlciBhdWNoIG5vY2guLi4gICAgIEIuSGFycnkgOykpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VpaG5hY2h0c3dpdHplIChHcmltbWJvcm4sIDIwLiBEZXogMTk5NSwgMTU6MTQ6MTUpOgoKQWxsZSBKYWhyZSB3aWVkZXIuLi4KCldpZSBoZWlzc3QgZGllIEZyYXUgdm9uIFNhbnRhIENsYXVzPwpNYXJ5IENocmlzdG1hcy4KClNhbnRhIENsYXVzIHVuZCBNQXJyeSBDaHJpc3RtYXMgc2l0emVuIGJlaW0gVGVlIGltIFdvaG56aW1tZXIsIGRhIGZyYWd0Ck1hcnJ5OiAiV2FzIGlzdCBkYXMgZnVlciBlaW4ga29taXNjaGVzIEdlcmFldXNjaCBhdWYgZGVtIERhY2g/IiBEYSBhbnR3b3J0ZXQKU2FudGEgYXVmIGVuZ2xpY2gsIHdlaWwgZXIgc28gaW50ZXJuYXRpb25hbCBpc3Q6ICJPaCwgaXQncyBvbmx5IHJhaW4sIGRlYXIhIgoKICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXQgTUcgQW5nc3Q/IChBbnRoZWEsIDIxLiBEZXogMTk5NSwgMTE6MzE6MzQpOgpbQWxsZ2VtZWluOktlcm1pdF0gSGFsbG9lY2hlbiBNRyEKQXJtYWdlZGRvbiBydWZ0OiBJbiA4IFN0dW5kZW4sIDMwIE1pbnV0ZW4gdW5kIDAgU2VrdW5kZW4gd2VyZGUgaWNoIGRpZSBXZWx0CkFybWFnZWRkb24gcnVmdDogemVyc3RvZXJlbiB1bmQgbmV1IGVyc2NoYWZmZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgRHIuV2ludGVydGVhbSAoUm9lc3RpLCAyMS4gRGV6IDE5OTUsIDEyOjMzOjAzKToKCkRhcyBEUi4gV2ludGVydGVhbSBoaWxmdDoKTGllYmVyIERSLiBXaW50ZXIKSWNoIGJpbiBlaW5lIGp1bmdlIEVsZmluIHZvbiAxNTMgSmFocmVuLCBtZWluZSBCcnVlc3RlIHNpbmQgd29obGdlZm9ybXQgdW5kCmljaCBoYWJlIGxhbmdlcyBibG9uZGVzIEhhYXIsIGRhcyBnYXIgbGllYmxpY2ggaW4gZGVyIFNvbm5lIGdsYWVuenQuCkJlaSB1bnMgaW4gZGVyIFN0YWR0IGJpbiBpY2ggZGllIGJlbGllYnRlc3RlIEVsZmluLHZvciBhbGxlbSBiZWkgZGVuCmFkZWxpZ2VuLgpJY2ggaGFiZSBkYWR1cmNoIGltbWVyIHNlaHIgdmllbCB6dSB0dW4sIHVuZCBrb21tZSBkYWR1cmNoIGthdW0gYXVzIGRlciBTdGFkdApyYXVzLgpOZXVsaWNoIGhhYiBpY2ggYmVpIGVpbmVtIEt1bmQuLi5hZWggYmVpIGVpbmVtIEZyZXVuZCBlaW5lbiBTa2xhdmVuCmtlbm5lbmdlbGVybnQuCkVyIGhlaXNzdCBHb2xsdWdhciB1bmQgaXN0IGVpbiBPZ2VyLgpJbiBzZWluZW4gc3RhcmtlbiBBcm1lbiBmdWVobGUgaWNoIG1pY2ggaW1tZXIgc28gZ2Vib3JnZW4gdW5kIHNpY2hlci4KSWNoIGxpZWJlIGlobi4KVm9uIGdhbnplbiBIZXJ6ZW4uIExlaWRlciBzaW5kIG1laW5lIEVsdGVybiB0b3RhbCBnZWdlbiBkaWVzZSBCZXppZWh1bmcuCkpldHp0IGhhYmVuIHNpZSBtaXIgc29nYXIgQmF1bWFycmVzdCBnZWdlYmVuLCBkYW1pdCBpY2ggaWhuIG5pY2h0IG1laHIgc2VoZW4Ka2Fubi4gSWNoIGJpbiB0b3RhbCB1bmdsdWVja2xpY2guIFdhcyBrYW5uIGljaCBudXIgdHVuPyBCaXR0ZSBoZWxmZW4gc2llCm1pciBkaXNrcmV0LiBEYSBtZWluZSBNdXR0ZXIgbWVpbmUgUG9zdCBkdXJjaGxpZXN0LCBrb2VubmVuIHNpZSBuaWNodCBhbgptZWluZQpBZHJlc3NlIHNjaHJlaWJlbi4gTWl0IGJlc3RlbSBkYW5rLi4uCiAgIFZpb2xhIFNvbm5lbmdsYW56LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBEci5XaW50ZXJ0ZWFtIChSb2VzdGksIDIxLiBEZXogMTk5NSwgMTI6NDE6MzQpOgojISBybj1Sb2VzdGkgcnQ9ODE5NTQ1NTgzCgpEYXMgRHIgV2ludGVyVGVhbSBhbnR3b3J0ZXQ6CgpOdW4gamEuIER1IGhhc3QgZWluIHNlaHIgdHlwaXNjaGVzIHByb2JsZW0sIGZ1ZXIgRWxmaW5uZW4gaW4gZGVpbmVtIEFsdGVyLgpEYSBkdSBlaW5lIElrb25vZ3JhcGhpIHZvbiBEaXIgYmVpbSBCYWRlbiBiZWlnZWxlZ3QgaGFzdCwgcGZsaWNodGUgaWNoIERpcgplcnN0bWFsIGJlaSB3YXMgZGVpbmUga29lcnBlcmxpY2hlbiBBdHRyaWJ1dGUgYmV0cmlmZnQuIE51biBtdXNzIGljaCBkaWNoIGFiZXIKZW50dGFldXNjaGVuLCBkYSBkZWluZSBCZXppZWh1bmcgbWl0IGVpbmVtIE9nZXIgenVtIFNjaGVpdGVybiB2ZXJ1cnRlaWx0IGlzdC4KRGVyIFJhc3NlbnVudGVyc2NoaWVkIGlzdCBlaW5mYWNoIHp1IGdyb3NzLgpXZW5uIGR1IGFiZXIgbWFsIGVpbmVuIHN0YXJrZW4gTWVuc2NoZW4ga2VubmVubGVybmVuIHdpbGxzdCwga29tbSAgZG9jaAplaW5mYWNoIG1hbCBiZWkgbWl0IHZvcmJlaS4KTWVpbmUgQWRyZXNzZSBpc3QgV2lsaGVsbSBEaWVuZXJzbGVpZCwgQW0gaG9obGVuIEJhdW0gNiwgR3Jvc3NoYXZlbiwKTm9tb25ldG8uIEljaCBrYW5uIERpciAgc29nYXIgZWluIFRhc2NoZW5nZWxkIGdlYmVuLCB1bmQgaWNoIGhhYmUgZGEgc28gZWluZW4KSWtvbm9ncmFwaGVuIGZ1ZXIgYmV3ZWdsaWNoZSBCaWxkZXIuLi4KSWNoIGZyZXVlIG1pY2ggc2Nob24gc2VociBhdWYgRGljaApEZWluIERyLiBXaW50ZXJUZWFtCgouLi4gYXVzOiBTY2h3ZXJ0c2Nod3VyLi4uIEZhbnppbmUgZnVlciBMaXZlcm9sbGVuc3BpZWxlclxpbm5lbgooVXBzIHdhciBkYXMgamV0enQgV2VyYnVuZz8uLi46KSApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYWU/IChNdXNpYywgMjIuIERleiAxOTk1LCAwMDowMToxOCk6CktvbW10IGVpbiBCYXVlciB6dW0gYmFla2VyIHVuZCBrYXVmIGVpbiBCcm9lZGNoZW4uIEFscyBlciB3aWVkZXIgcmF1cyBrb21tdCwKaXN0IHNlaW4gRmFocnJhZCB3ZWcgIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgYXVzIGRlbSBJbnRlcm5ldCAoWWFudHJvLCAyMi4gRGV6IDE5OTUsIDA3OjU0OjE2KToKCkphamEsIGRhc3MgZ3V0ZSwgbmV1ZSwgbGllYmUgSW50ZXJuZXQgYmlldGV0IHVuZCBlaW5lbiB1bWZhc3NlbmRlbiBTZXJ2aWNlCmZ1ZXIgYWxsZSBMZWJlbnNsYWdlbjogSW5mb3JtYXRpb25lbiwgS2F0YWxvZ2UsIFNjaHdlaW5rcmFtLi4uIHdhcyB3aWxsIG1hbgptZWhyPyBOYXR1ZXJsaWNoIEt1bGluYXJpc2NoZXMsIGFiZXIgbmljaHQgZWluZmFjaCBzbyB6dW0gbGVzZW4sIHNvbmRlcm4KZGlyZWt0IGJlc3RlbGxlbi4gRGFzIHNvbGwgZ2VoZW4/IEtsYXIhCkVzIGlzdCBub2NoIG5pY2h0IGdhbnogc293ZWl0LCBkYXNzIG1hbiBzZWluZSBQaXp6YSB2b24gbmViZW5hbiB1ZWJlciBkZW4KUmVjaG5lciBiZXN0ZWxsZW4ga2FubiwgYWJlciBoZWlzc2UgR2V0cmFlbmtlIHNpbmQgc2Nob24gaW1wbGVudGllcnQgdW5kIHp3YXIKbWl0IGRlbiBTZXJ2aWNlIHZvbjoKCiAgICAgICAgICAgICAgICAgICAgIFQtT25saW5lICEhIQoKV2VubiBkYXMga2VpbmUgWnVrdW5mdCBoYXQsIGRhbm4gd2Vpc3MgaWNoIGVzIG5pY2h0Li4uLgoKICAgICAgICAgICAgICAgICBZYW50cm8odHJpbmt0IFQgbnVyIGF1ZiBkZW0gS29lbG5lciBTdGFtbXRpc2NoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRG9zZW5tZW50YWxpdGFldCAoV2FyZ29uLCAyMi4gRGV6IDE5OTUsIDEzOjU3OjIzKToKR2VyYWRlIGJlaW0gTmV3c2xlc2VuIGdlZnVuZGVuOgoKLS0tIGN1dCAtLS0KPiBVbmQgd2FzIHNpbmQgIkRvc2VuYXJndW1lbnRlIiwgd2FzIGlzdCAiRG9zZW5tZW50YWxpdGFldCI/IEV0d2EgQW5zaWNodGVuCj4gdm9uIExldXRlbiwgZGllIG9obmUgcm9zYSBCcmlsbGUgdW1oZXJnZWhlbj8KCk5laW4sIGltIEdlZ2VudGVpbC4KCkRvc2VubWVudGFsaXRhZXQgaXN0Li4uCgoKLi4uIGVpbmVuIFBDIG1pdCBTb3VuZGJsYXN0ZXItS2FydGUgdW5kIGVpbiBEb3VibGVzcGVlZCBDRC1ST00gYWxzCiAgICAiTXVsdGltZWRpYS1Xb3Jrc3RhdGlvbiIgenUgYmV6ZWljaG5lbi4KCi4uLiBTaWNoIDE2TUIgUkFNIHp1IGthdWZlbiwgdW0gUGhhbnRhc21hZ29yaWEgdW50ZXIgV2luOTUgYW5zY2hhdWVuCiAgICB6dSBrb2VubmVuLgoKLi4uIDMwMCBNYXJrIGZ1ZXIgbmUnIEdyYXZpcyBVbHRyYXNvdW5kIGF1c3p1Z2ViZW4sIHVtIHNpZSBkYW5uIGFuCiAgICB6d2VpIDEwIGNtIGdyb3NzZSA1LVdhdHQgQWt0aXZsYXV0c3ByZWNoZXIgYW56dXNjaGxpZXNzZW4uCgouLi4gU2ljaCBlaW5lIFRydWVjb2xvci1HcmFmaWtrYXJ0ZSBtaXQgYmlzIHp1IDEyODB4MTAyNCBQaXhlbG4gaW4KICAgIDEwMCBIeiB6dSBrYXVmZW4sIHVtIG1pdCBXaW4zLjEgdW50ZXIgNjQweDQ4MCBpbiAxNiBGYXJiZW4KICAgIHp1IGFyYmVpdGVuLgoKLi4uIFNpY2ggZWluZSBUcnVlY29sb3ItR3JhZmlra2FydGUgbWl0IGJpcyB6dSAxMjgweDEwMjQgUGl4ZWxuIGluCiAgICAxMDAgSHogenUga2F1ZmVuLCB1bSBkYW5uIGdlbmF1IGluIGRpZXNlciBBdWZsb2VzdW5nIGF1ZiBzZWluZW0gCiAgICAyMDAgTWFyayB0ZXVyZW4gQmlsbGlnLTE0LVpvbGwtU1ZHQS1Nb25pdG9yIHp1IGFyYmVpdGVuLCBhYmVyCiAgICBudXIgaW4gNTBIeiBpbnRlcmxhY2UsIHdlaWwgbWVociBwYWNrdCBkZXIgbW9uaSBuaWNodC4KCi4uLiBTaWNoIE9TLzIgenUgaW5zdGFsbGllcmVuLCB1bSBkYW5uIGltbWVyIG1pdHRlbHMgQm9vdC1EaXNrZXR0ZQogICAgTVMtRE9TIHp1IGxhZGVuLCBkYW1pdCBtYW4gIlJpc2Ugb2YgdGhlIFRyaWFkcyIgc3BpZWxlbiBrYW5uLi4uCgouLi4gU2ljaCB1bnRlciBNUy1ET1MgZHJlaSBCaWxkc2NoaXJtc2VpdGVuIGxhbmdlIEJvb3QtTWVudWVzCiAgICB6dSBlcnN0ZWxsZW4KCi4uLiBTaWNoIGVpbmUgRmVybnNlaC1LYXJ0ZSB6dSBrYXVmZW4sIHVtIHNpY2ggaW4gZWluZW0gV2luZG93cy0gCiAgICBGZW5zdGVyIGRlbiAiV0RSIENvbXB1dGVyY2x1YiIgYW56dXNjaGF1ZW4uCgouLi4genUgZ2xhdWJlbiwgZGFzIGludGVybmV0IGJlc3RhZW5kZSBudXIgYXVzIGRlbSBXb3JsZCBXaWRlIFdlYi4KCi4uLiB6dSBiZWhhdXB0ZW4sIEp1bXAnbidSdW4gU3BpZWxlIHd1ZXJkZW4gbWl0IGVpbmVtIEFuYWxvZ2pveXN0aWNrCiAgICB2aWVsIG1laHIgU3Bhc3MgbWFjaGVuLgoKLi4uIHNpY2ggZnVlciA1MCBNYXJrIGVpbiBpbnRlcm5lcyAxNC40ZXIgTW9kZW0genUga2F1ZmVuLCB1bmQgZGFubgogICAgTW9uYXRlbGFuZyBkZW4gU3lzb3AgZGVyIFN0YW1tLU1haWxib3ggbmVydmVuLCB3ZWlsIGVzIHZvcm5lCiAgICB1bmQgaGludGVuIG5pY2h0IGZ1bmt0aW9uaWVydC4KCi4uLiB3ZW5uIGVpbiBXaW5kb3dzLUMtQ29tcGlsZXIgYXVmIGRpZSBET1MtRWJlbmUgd2VjaHNlbHQsIHVtCiAgICB6dSBjb21waWxpZXJlbiwgdW5kIGRhbmFjaCB3aWVkZXIgenVydWVjay4KCi4uLiB3ZW5uIG1hbiBGZWhsZXJtZWxkdW5nZW4gYmVrb21tdCB3aWU6ICJLb25udGUgRGlza2V0dGUgbmljaHQKICAgIGZvcm1hdGllcmVuLCB3ZWlsIGRpZSBEaXNrZXR0ZSBuaWNodCBmb3JtYXRpZXJ0IGlzdC4iCgouLi4gSGFyZHdhcmUgenUgYmF1ZW4sIGRpZSBhdXNzY2hsaWVzc2xpY2ggbWl0IGRlbSBCZXRyaWVic3N5c3RlbQogICAgX2VpbmVzXyBIZXJzdGVsbGVycyBmdW5rdGlvbmllcmVuLgoKLi4uIFVuaXZlcmFsLUhhcmR3YXJlIGVpbmVuIEF1ZmtsZWJlciAiV2luZG93cy1Lb21wYXRpYmVsIgogICAgYXVmenVrbGViZW4uCgouLi4gV1dXLVNlaXRlbiB6dSBlbnR3ZXJmZW4sIGRpZSBtYW4gX251cl8gbWl0IE5ldHNjYXBlCiAgICB2ZXJudWVuZnRpZyBiZW51dHplbiBrYW5uLgoKLi4uIFdlbm4gbWFuIGRpZSBXZWx0IGRlciBSZWNobmVyIGluIGRyZWkgU3BhcnRlbiBlaW50ZWlsdDoKICAgIEFtaWdhLCBBcHBsZSB1bmQgQ29tcHV0ZXIuCgouLi4gKHVuZW5kbGljaGUgRm9ydHNldHp1bmcgbW9lZ2xpY2guLi4pCgotLS0gY3V0IC0tLQoKT2huZSBqZWRlIEVybGF1Ym5pcyBnZXBvc3RldC4uLgogIFdhcmdvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VpbmFjaHRzbWFubi1CZXJlY2hudW5nIChNdXJrZXMsIDIzLiBEZXogMTk5NSwgMDA6NDY6MjkpOgpEaWVzIGJla2FtIGljaCBhbHMgQW50d29ydCB2b24gamVtYW5kZW4sIGRlbSBpY2ggZGllCldlaW5hY2h0c21hbm5iZXJlY2hudW5nCmdlc2NoaWNrdCBoYWJlLiBFUyBCRVNURUhUIEFMU08gRE9DSCBOT0NIIEhPRkZOVU5HIQoKRWluIHNjaG11bnplbG5kZXIKICAgICAgICAgICAgICAgICAgTXVya2VzCgoKRm9sZ2VuZGUKCiBGZWhsZXIgc2luZCBtaXIgYmVpIGRlbSBTdHVkaXVtIERlaW5lciBXZWlobmFjaHRzbWFubiAtClRoZW9yaWUgYXVmZ2VmYWxsZW46CgoyKSAgS2luZGVyIHViZXIgMTAgSmFocmVuIChncm9zenVnaWcgZ2VzY2hhdHp0KSBnbGF1YmVuIG5pY2h0IG1laHIgYW4KZGVuIFdlaWhuYWNodHNtYW5uLgpLaW5kZXIgdW50ZXIgMiBKYWhyZW4gd2lzc2VuIG5vY2ggbmljaHRzIHZvbiBpaG0gb2Rlcgp2ZXJzdGVoZW4gbmljaHRzIGRhdm9uLgpEYXMgZXJnaWJ0IG51ciBub2NoIDE2OCBNaWxsaW9uZW4gS3VuZGVuIChLaW5kZXIsIGJlaQpkZXIgQW5uYWhtZSBlaW5lciBHZWJ1cnRlbmdsZWljaHZlcnRlaWx1bmcpLiBBbHNvIGhhYmVuIHdpciBudXIgbm9jaCA0OApNaWxsaW9uZW4gSGF1c2hhbHRlIERpZSBBbm5haG1lLCBkYXMgamVkZXMgMyw1IEtpbmQgc3RhdGlzdGlzY2ggZ2VzZWhlbiBicmF2CndhciwgbWFnIG5vY2ggZ2VsdGVuLCBhYmVyIGVzIHdpcmQgRmFtaWxpZW4gbWl0IDMgYnJhdmVuIEtpbmRlcm4sIHVuZApGYW1pbGllbgpvaG5lIGJyYXZlIEtpbmRlciBnZWJlbi4gR2VoZW4gd2lyIG1hbCB2b24gbnVyIDMwIFByb3plbnQgIkJyYXZraW5kZXJmcmVpZW4iCkZhbWlsaWVuIGF1cywgZXJoYWx0ZW4gd2lyICBjYS4gMzAgTWlsbGlvbmVuIEJlc3VjaHMgLSBGYW1pbGllbi4KMykgV2VubiB3aXIgZGF2b24gYXVzZ2VoZW4sIGRhcyA3NSAlIGRlciBFcmRlIG1pdCBXYXNzZXIgYmVkZWNrdCBzaW5kLAp1bmQgZGVyIE1lbnNjaCBpbiBkZW4gYmVrYW5udGVuLCB3ZWlobmFjaHRzc3BlemlmaXNjaGVuIFVudGVyYXJ0ZW4gYXVmIGRlbQpMYW5kIHdvaG50LCBrb25uZW4gd2lyIGRpZXNlIEZsYWNoZSBhdXNjaGxpZXNlbi4gRmVybmVyIGZhbGxlbiB3ZWl0ZXJlCjEwICUgZHVyY2ggV3VzdGVuLCBHZWJpcmdlLCBTZWVuIG9kZXIgYW5kZXJlIEZsYWNoZW4gd2VnLCBkaWUgZGllc2UgR2ViaWV0ZQp1bmJld29obmJhciBtYWNoZW4uIEF1c2VyZGVtIHdlcmRlbiBudXIgMzAlIGRlciBSZXN0ZmxhY2hlIHZvbiBDaHJpc3RlbgpiZXdvaG50LiBCZWkgMTExNjAwIFNla3VuZGVuIEFyYmVpdHN6ZWl0IHVuZCAzMC4wMDAuMDAwIEFkcmVzc2VuIGVyZ2lidCBkaWVzCm51ciBub2NoIDI2OC44IEJlc3VjaGUgcHJvIFNla3VuZGUuIERhZHVyY2ggdmVybGFuZ2VydCBzaWNoIGRpZQpCZXN1Y2hzemVpdCBhdWYgMS8yNTAgc2VjICh2ZXJlaW5mYWNodCwgc2NoYWZmdCBqZWRlciBGb3RvYXBwYXJhdCkuIERpZQpTdHJlY2tlCmhhdCBzaWNoIGphIGdsZWljaHplaXRpZyB2ZXJrdWVyenQgKDk1JSB3ZW5pZ2VyLCBlcmdpYnQgY2EuIDY1IE1ldGVyKQpBbHNvIGJsZWliZW4gbnVyIG5vY2ggMi4wMDAuMDAwIEtNIFN0cmVja2UuIERhbWl0IHNpbmt0IGRpZSBHZXNjaHdpbmRpZ2tlaXQKYXVmIChlcnRyYWdsaWNoZSkgMTcsOSBLTS9zZWMgSGllcmJlaSBoYW5kZWx0IHNpY2ggc2Nob24gdW0gR2VzY2h3aW5kaWdrZWl0ZW4KIGRpZSBkYXMgU3BhY2UgU2h1dHRsZSBtaXQgbGlua3MgZmxpZWd0Lgo0KSBIZXV0ZSBzY2hlbmt0IG5pZW1hbmQgbWVociBlaW5lbiBMZWdva2FzdGVuLiBDb21wdXRlcnNwaWVsZSB3ZXJkZW4gYXVmCkRpc2tldHRlbiB2ZXJzY2hlbmt0LCBtaXQgZWluZW0gR2V3aWNodCB2b24gY2EgMjBnLgpEYWR1cmNoLCBiZWkgMzAuMDAwLjAwMCwgQWRyZXNzZW4gZXJnaWJ0IHNpY2ggZWluIEdld2ljaHQgdm9uIGdlcmFkZSBub2NoCjYwMCBUb25uZW4uIEdlaHQgbWFuIGRhdm9uIGF1cywgZGFzIGRlciBXZWlobmFjaHRzbWFubiBldHdhcyB2b24gbW9kZXJuZXIKTG9naXN0aWsgdmVyc3RlaHQsIGRhbm4gZXJob2h0IGVyIHNlaW5lIFN0b3BzIHVtIHdlaXRlcmUgNjAwLCBpbiBkZW0gZXIgc2ljaApqZWRlc21hbCBlaW5lbiBtaXQgZWluZXIgVG9ubmUgRGlza2V0dGVuIGJlbGFkZW5lbiBTY2hsaXR0ZW4gbmltbXQsIGRpZSBlcgp2b3JoZXIgZ3VlbnN0aWcgYXVmIGRlciBFcmRlIHZlcnRlaWx0IGhhdC4gRGllc2VzIFByaW56aXAgZGVyIGZyaXNjaGVuClJlbnRpZXJlCmdhYiBlcyBzY2hvbiBiZWkgZGVuIFBvc3RrdXRzY2hlbi4gRHVyY2ggZGllc2UgbG9naXN0aXNjaGUgTGVpc3R1bmcgbXVzcwpqZWRlcyBkZXIgUmVudGllcmUgbnVyIG5vY2ggMTc1IGtpbG8gemllaGVuLCB3ZW5uIGRlciBOaWtvbGF1cyAyMDAgS2lsbyB3aWVndAp1bmQgZGVyIFNjaGxpdHRlbiAzNzUga2lsby4gQWxsZXMgbWFjaGJhciwgd2FzPwpTaWNoZXJsaWNoIGJsZWliZW4gYXVjaCBpbiBtZWluZXIgS29ycmVrdHVyIEZyYWdlbiBuYWNoIGRlciBCZXNjaGxldW5pZ3VuZwpkZXIgTWFzc2UsCiBkZXIgSGl0emVzY2h1dHogaXN0IG5pY2h0IGdla2xhcnQgdW5kIHNvIHdlaXRlci4gQWJlciBpY2ggaG9mZmUsCmRhcyBkdXJjaCB3ZWl0ZXJlIE9wdGltaWVydW5nIGRlcyBWZXJ0ZWlsZXJzIGRpZSBXZXJ0ZSBnZXNlbmt0IHdlcmRlbiBrb25uZW4KdW5kIGVpbmUgc2NobHVlc3NpZ2UgRXJrbGFydW5nIGZ1ciBkYXMgUGhhbm9tZW4gIldlaWhuYWNodHNtYW5uIiBnZWZ1bmRlbgp3aXJkLiBBdWYgamVkZW4gRmFsbCBoYXN0IER1IHZpZWxsZWljaHQgZXR3YXMgZGVuIEdsYXViZW4gYW4gZGVuCldlaWhuYWNodHNtYW5uIHp1cnVja2dld29ubmVuLCBhdWNoIHdlbm4gRHUgZGFtaXQgQW5uYWhtZSAyKSAoS2luZGVyIHViZXIKMTAuLi4pIGluIEZyYWdlIHN0ZWxsZW4gd3VlcmRlc3QuCgpTbywgaWNoIGhvZmZlIGljaCBoYWJlIGRhcyBqZXR6dCBhbGxlcyBzYXViZXIgbWl0IGN1dCZwYXN0ZSBwZXIgbW9kZW0KcnVlYmVyZ2VrcmllZ3QgLS0gYW5zb25zdGVuIHdlcmZ0IGVpbmZhY2ggZGVuIE1hbnRlbCBkZXIgTGllYmUgZHJ1ZWJlci4gOykKCkluIGRpZXNlbSBTaW5uZSBlaW4gc2Nob2VuZXMgRmVzdCwgZXMgc2NoZWludCBqYSB2aWVsbGVpY2h0IGRvY2ggbm9jaCBlaW5lCkNoYW5jZSBmdWVyIGRlbiBXZWlobmFjaHRzbWFubiB6dSBnZWJlbiwgb2RlciBmdWVyIGRpZSBMaWViZSwgb2RlciBkZW4KQXJhYmVsbGEgRmxpZWdlIE1laXNlciBTY2hyZWluZS4uLi4uIEpldHp0IGJpbiBpY2ggYWIgdm9tIFRoZW1hIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTFAgdW5kIExBRyAoSXNub2dvb2QsIDIzLiBEZXogMTk5NSwgMTE6MjQ6NDApOgpXYXMgc2FnZW4gdW5zIGRpZSBXb3J0ZSBrZWluZSBMUCAtIGtlaW4gTEFHPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKRGVpbmUgTGViZW5zcGFydG5lcmluIGlzdCBuaWNodCBlaW5nZWxvZ2d0IHVuZCBkZWluZQpMZWJlbnNhYnNjaG5pdHRzZ2VmYWVocnRpbiBuaWNodCBkYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlaW5hY2h0c21hbm4tQmVyZWNobnVuZyAoTGFyaWVsLCAyNC4gRGV6IDE5OTUsIDEzOjQwOjUzKToKfiMhIHJuPU11cmtlcyBydD04MTk2NzU5ODkKfiMhIHRpZD04MTk2NzU5ODkKSGF0IGlyZ2VuZGplbWFuZCBub2NoIGVpbmUgS29waWUgdm9uIGRlciBVcnNwcnVlbmdsaWNoZW4gQmVyZWNobnVuZz8KS2FubiBtaXIgZGllIGplbWFuZCBtYWlsZW4/CgpFcndhcnR1bmdzdm9sbCwKTGFyaWVsIEZhbGtlbmZsdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBlaW56aWcgb3JpZ2luYWwgV0VJWkVOQklFUlVFQkVSVFJBR1VOR1NQUk9UT0tPTEwhISAoQ2F0d2VhemxlLCAgNS4gSmFuIDE5OTYsIDIwOjM3OjQxKToKTmFjaCBsYW5nZW0gU3VjaGUgaGFiIGljaHMgZW5kbGljaCBnZWZ1bmRlbiEhIQpIaWVyIGlzc2V0ISBGdWVyIGplZGVuIGRlciBpbiBkZXIgVW5pIHNpdHp0IHVuZCBwbG9ldHpsaWNoZW4gRHVyc3QKYmVrb21tdCA6KSBCdWV0dGVzZWhyIQoKCkhhbGxvIExldXRlLAoKaWNoIGhvZmZlLCBkYXMga2VubnQgSWhyIG5vY2ggbmljaHQuLi4KClsgQXJ0aWNsZSBjcm9zc3Bvc3RlZCBmcm9tIGdhdGUubGlmZS53aXR6ZSBdCgogICBLdWVyemxpY2ggdmVyYWJzY2hpZWRldGUgaWNoIG1pY2ggYmVpIGVpbmVtIENIQVQgbWl0IGRlbiBXb3J0ZW46ICdMZWcKIERpY2ggd2llZGVyIGhpbiwgaWNoIHdlcmQgbm9jaCBtaXIgbm9jaG4gV2VpemVuIHJlaW50dW4gdW5kIGRhbm4gYXVjaAogc2NobGFmZW4gZ2VoZW4uLi4nCiBEYXJhdWYgZGVyIGFuZGVyZTogJ01lbnNjaCwgYXVmbiBXZWl6ZW4ga29lbm50IGljaCBqZXR6dCBhdWNoLi4uJwoKICAgQWxzbyBiZWdhYiBpY2ggbWljaCBhbSBkYXJhdWZmb2xnZW5kZW4gVGFnIGluIG1laW5lbiBCYXN0ZWxrZWxsZXIgdW5kCiBmaW5nIGFuLi4uCgogICBOdW4gaXN0IGVzIEZBU1QgZmVydGlnICEhISAgRGFzIFdFSVpFTkJJRVJVRUJFUlRSQUdVTkdTLVBST1RPS09MTCB1bmQKIGRpZSBkYXp1Z2Vob2VyaWdlIEhhcmR3YXJlOgoKIEJlc2NocmVpYnVuZyBkZXIgSGFyZHdhcmU6IHNpZWh0IGF1cyB3aWUgbmUgYWx0ZSBTY2h1aHNjaGFjaHRlbCAoTWFya2UgbWl0CiBkZW4gU3RyZWlmZW4uLi4pIE9iZW4gZWluIFRyaWNodGVyIGRyaW4sIGFuIGRlciBTZWl0ZSBlaW4gWmFwZmhhaG4gdW5kCiBoaW50ZW4gZWluZSBCdWNoc2UgZnVlciBuZW4gS2FsdGdlcmFldGVzdGVja2VyIHVuZCBlaW5lIHNlcmllbGxlIFNjaG5pdHQtCiBzdGVsbGUuCgogQmVzY2hyZWlidW5nIGRlciBTb2Z0d2FyZTogUHJvdG9rb2xsIGFlaG5lbHQgc2VociBkZW0gWi1Nb2RlbS1Qcm90b2tvbGw6CiBKZSBuYWNoICdHdWV0ZSBkZXIgTGVpdHVuZycgd2lyZCBkaWUgVWViZXJ0cmFndW5nc21lbmdlIGdlc3RlaWdlcnQuLi4KCiBWb3JnYW5nIGRlciBVZWJlcnRyYWd1bmc6IEJlaSBiZWlkZW4gU3RlbGxlbiBpc3QgZWluIFJlY2huZXIgbWl0IHp3ZWkKIHNlcmllbGxlbiBTY2huaXR0c3RlbGxlbiBub3R3ZW5kaWc6IGVpbmUgZnVlcidzIE1vZGVtLCBkaWUgYW5kZXJlIGZ1ZXIgZGllCiBIYXJkd2FyZS4KIEJpZXIgaW4gZGVuIFRyaWNodGVyLCBVZWJlcnRyYWd1bmcgc3RhcnRlbiwgZmVydGlnLgogQXVmIGRlciBHZWdlbnNlaXRlOiBVZWJlcnRyYWd1bmcgc3RhcnRlbiB1bmQgbmFjaCBCZWVuZGlndW5nIGRhcwogQmllciB1ZWJlciBkZW4gWmFwZmhhaG4gZW50bmVobWVuLgoKCiBMZWlkZXIgaGF0dGUgaWNoIGRhbm4gZWluIFByb2JsZW06IE1pdCBXZWl6ZW4ga2xhcHB0ZSBkaWUgU2FjaGUKVGVpbCVvZXdmazdGJ0FlekhyYEFlQWU/dDNZT2VvZWsKIHRlaWx3ZWlzZSBnZW5hdXNvIGd1dCB3aWUgZGllIFVlYmVydHJhZ3VuZyBkaWVzZXMgVGV4dGVzLgogKEJlaXNwaWVsIHNpZWhlIDIgWmVpbGVuIGhvZWhlci4uLikKCiBNYW5jaG1hbCBnaW5nIGVzIGFsbGVyZGluZ3MgZnVlcmNodGVybGljaCBzY2hpZWYuLi4KCiBEYXJhdWZoaW4gaGFiZSBpY2ggc3BlemllbGxlIFVlYmVydHJhZ3VuZ3Nwcm90b2tvbGxlIGVudHdpY2tlbHQuCiAgICAgMS4gaGVsbGVzIFdlaXplbiBLcmlzdGFsbCAgKEtXaC1Qcm90b2tvbGwpCiAgICAgMi4gaGVsbGVzIFdlaXplbiBIZWZlICAgICAgKEhXaC1Qcm90b2tvbGwpCiAgICAgMy4gZHVua2xlcyBXZWl6ZW4gS3Jpc3RhbGwgKGRXay1Qcm90b2tvbGwpCiAgICAgNC4gZHVua2xlcyBXZWl6ZW4gSGVmZSAgICAgKGRXaC1Qcm90b2tvbGwpCiAoMy4ga29ubnRlIGxlaWRlciBtYW5nZWxzIE1hdGVyaWFsIG5pY2h0IGdldGVzdGV0IHdlcmRlbi4uLikKCiBNaXQgbm9ybWFsZW4gQmllciAoUGlscyBvZGVyIHNvKSBnYWIgZXMgYWxsZXJkaW5ncyBmdWVyY2h0ZXJsaWNoZQogUHJvYmxlbWU6CiBCZWkgbm9ybWFsZW0gQmllciBrYW0gLSBlZ2FsLCB3ZWxjaGUgTWFya2UgLSBudXIgV2Fzc2VyIGJlaSBkZXIgR2VnZW4tCiBzdGVsbGUgYW4uIEF1c25haG1lOiBCT0VMS1NUT0ZGIChoaWVyIGthbSB0ZWlsd2Vpc2UgYWxsZXMgcmljaHRpZyBydWViZXIsCiBhYmVyIGF1Y2ggbGVpZGVyIG1hbmNobWFsIE1pbGNoIGFuLi4uKQoKIEljaCBzdWNoZSBqZXR6dCBnYW56IGRyaW5nZW5kIGVpbmVuIFByb2dyYW1taWVyZXIsIGRlciBtaXIgZWluIFByb3Rva29sbAogenVyIFBpbHMtIHVuZCBBbHRiaWVyLVVlYmVydHJhZ3VuZyBzY2hyZWlidC4gTmFjaCBkZW0gdmllbGVuIFRlc3RlbiBiaW4KIGljaCBlaW5mYWNoIHp1IGVyc2Nob2VwZnQsIHVtIGRpZXMgc2VsYnN0IHp1IG1hY2hlbi4uLgoKICAgICAgIEluIGRlciBIb2ZmbnVuZyBhdWYgYmFsZGlnZSBBbnR3b3J0LgoKICAgICAgICAgICAgUHJvc3QgUHJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVW5kIGRhbm4ga2FtIGRpZXNlIEFudHdvcnQuLi4KCgogICAgICAgICAgICAgICAgICAgICAgV2VpemVucHJvdG9rb2xsIElJCgpPZmZlbnNpY2h0bGljaCBoZXJyc2NoZW4gaW1tZXIgbm9jaCByZWljaGxpY2ggVW5rbGFyaGVpdGVuLCB3YXMgZGFzIFVlYmVyLQp0cmFnZW4gdm9uIGFsa29ob2xpc2NoZW4gR2V0cmFlbmtlbiBhbmdlaHQuIERhaGVyIGFuIGRpZXNlciBTdGVsbGUgZWluCmt1cnplciBBYnJpc3MgZGVyIHRlY2huaXNjaGVuIEFuZm9yZGVydW5nZW4gdW5kIE1vZWdsaWNoa2VpdGVuLgoKWnVuYWVjaHN0ICBnaWJ0IGVzIHp3ZWkgZ3J1bmRzYWV0emxpY2ggdmVyc2NoaWVkZW5lIEFydGVuIGRlciBBbGtvaG9sLQp1ZWJlcnRyYWd1bmcsIGRpZXNlIHNpbmQgZ2VtYWVzcyBkZXIgQ0NJVEEgKENvbW1pdHRlZSBjb25zdWx0YXRpdgppbnRlcm5hdGlvbmFsIGRlIHRyYW5zbWlzc2lvbiBkdSBhbGNvaG9sKSBFbXBmZWhsdW5nZW4gQi4yMSBiaXMgQi4yM2JpZXIKdW50ZXJ0ZWlsdCBuYWNoIGRlbSBWb2x1bWVuYW50ZWlsIGRlcyBBbGtvaG9sczoKCiAgQi4yMQogIFRhZmVsd2VpbmUgdW5kIER1ZW5uYmllcmUgYmlzIDMuNSAlCiAgKGRhcnVudGVyIGZhbGxlbiBhdWNoIGRpZSBzb2dlbmFubnRlbiAnYWxrb2hvbGZyZWllbicgQmllcmUsIGRpZSBhbGxlci0KICAgZGluZ3MgYmVzc2VyIGltIEhhbGJzY2hsdWNrc3BlY2h0LUJldHJpZWIgbmFjaCBCLjA4cHVzdCB1ZWJlcnRyYWdlbgogICB3ZXJkZW4gc29sbHRlbikKCiAgQi4yMgogIFF1YWxpdGFldHN3ZWluZSB1bmQgUGlsc2VuZXIgYmlzIDUuMyAlCiAgKGhpZXJ1bnRlciBmYWxsZW4gYXVjaCBkZXIgc29nZW5hbm50ZSAnQm9lbGtzdG9mZicgdW5kIEFsdGJpZXJlLCBzb3dpZQogICBTY2hhdW13ZWluZSApCgogIEIuMjMKICBBbHQtIHVuZCBXZWl6ZW5iaWVyZSwgc293aWUgQ2hhbXBhZ25lcgoKICBCLjIzYmllcgogIEZ1ZXIgZGVuIFVlYmVydHJhZ3VuZ3NiZXJlaWNoIGJpcyAyMSAlCiAgKGdlZWlnbmV0IGZ1ZXIgYWxsZSBCaWVyYXJ0ZW4gdW5kIFdlaW5lLCBqZWRvY2ggYXVzIHRlY2huaXNjaGVuIEdydWVuZGVuCiAgIG5pY2h0IGZ1ZXIgU2NoYXVtd2VpbmUpCgpBdXNzZXJkZW0gZHVlcmZ0ZSBub2NoIGRpZSBFbXBmZWhsdW5nIEEuMjIgaW50ZXJlc3NhbnQgc2VpbiwgZGllIGZ1ZXIKVWViZXJ0cmFndW5nZW4gYWIgMjIgJSBpbiBhbGxlbiBBbGtvaG9sa2xhc3NlbiBnZWRhY2h0IGlzdCwgc293aWUgQS4yMlQKZnVlciB0ZWNobmlzY2hlIEFsa29ob2xlIHVuZCBBLjIyUyBmdWVyIFNwaXJpdHVzIHVuZCBIYWFyd2Fzc2VyLgoKClVucyBpbnRlcmVzc2llcnQgaW4gZGllc2VtIFp1c2FtbWVuaGFuZyBhbHNvIGRpZSBFbXBmZWhsdW5nIEIuMjNiaWVyLCBkYQp3aXIgZG9ydCBkaWUgbWVpc3RlbiBNb2VnbGljaGtlaXRlbiBoYWJlbiwgZGFzIFByb2pla3QgV2VpemVuYmllcnVlYmVyLQp0cmFndW5nIHp1IHJlYWxpc2llcmVuLiBCLjIzYmllciBzaWVodCBncnVuZHNhZXR6bGljaCBkaWUgVWViZXJ0cmFndW5nIGltClZvbGxzY2hsdWNrc3BlY2h0dmVyZmFocmVuIHZvciwgYmVpIGRlbSBiZWlkZSBhbiBkZXIgVWViZXJ0cmFndW5nCmJldGVpbGlndGVuIFNlaXRlbiBnbGVpY2h6ZWl0aWcgZWluc2NoZW5rZW4gdW5kIHRyaW5rZW4ga29lbm5lbi4KCldpY2h0aWcgaXN0IHZvciBhbGxlbSBlaW5lIGtvcnJla3RlIEVpbnN0ZWxsdW5nIGRlciBVZWJlcnRyYWd1bmdzcGFyYW1ldGVyLApiZWkgZGVuIGRlcnplaXQgZXJoYWVsdGxpY2hlbiBCaU1vRGVtcyAoQmllci1Nb2R1bGF0b3ItRGVtb2R1bGF0b3IpIHNpbmQKbGVpZGVyIG1laXN0IG51ciB6d2VpIEVpbnN0ZWxsdW5nZW4gbW9lZ2xpY2g6CgogIDhOMQogIEVzICB3ZXJkZW4gZ2xlaWNoemVpdGlnIGFjaHQgR2xhZXNlciB1ZWJlcnRyYWdlbiwgZGllIEVtcGZhbmdzZ2xhZXNlcgogIG11ZXNzZW4gZ2VuZWlndCBzZWluLCB1bmQgendhciB1bSAxIG1hbCAxNSBHcmFkLCB6d2Vja3MgVmVyaGluZGVydW5nCiAgdm9uIHVlYmVyaG9laHRlciBTY2hhdW1iaWxkdW5nLgoKICA3RTIKICBFcyBrb2VubmVuIG51ciBzaWViZW4gR2xhZXNlciB6dXIgWmVpdCB1ZWJlcnRyYWdlbiB3ZXJkZW4sIGRpZSBHbGFlc2VyCiAgZHVlcmZlbiBnZXJhZGUgZ2VoYWx0ZW4gd2VyZGVuIChFID0gZXZlbiksIG9kZXIgdW0gMiAqIG1hbCAxNSA9IDMwIEdyYWQKICBnZW5laWd0LCB3YXMgZ2VyYWRlIGJlaSBXZWl6ZW5iaWVyIGVtcGZlaGxlbnN3ZXJ0IGlzdC4KCkRpZSBkaXJla3RlIFVlYmVydHJhZ3VuZyB1ZWJlciBkYXMgVGVsZWZvbm5ldHogaXN0IGFiZXIgbnVyIGJlaSBrbGVpbmVyZW4KRW50ZmVybnVuZ2VuIHp3aXNjaGVuIGRlbiBHZWdlbnN0ZWxsZW4gc2lubnZvbGwsIGRhIGVzIGJlaSBsYWVuZ2VyZW4KTGVpdHVuZ2VuIHNlaHIgb2Z0IHZvcmtvbW10LCBkYXNzIGRhcyBCaWVyIHVudGVyd2VncyBzY2hhbCBvZGVyIGdhciBzYXVlcgp3aXJkLiBEZXNoYWxiIGhhdCBkaWUgREJQIChEb3BwZWxib2NrLUJpZXItUGlscykgYmVyZWl0cyBpbSBKYWhyZSAxOTgyIGVpbgpmYXNzb3JpZW50aWVydGVzIFVlYmVydHJhZ3VuZ3NuZXR6IGluIEJldHJpZWIgZ2Vub21tZW4sIGRhcyBhbHMgQkFSRVgKYmVrYW5udCBpc3QuIEJBUkVYIGhlaXNzdCAnYmFycmVsIGV4Y2hhbmdlJyB1bmQgYmV6ZWljaG5ldCBkaWUgIEFydCBkZXIKVWViZXJ0cmFndW5nLiBFcyBnaWJ0IHp3ZWkgQXJ0ZW4gdm9uIERpZW5zdGVuLCBkaWUgYW5nZWJvdGVuIHdlcmRlbjoKCiAgQkFSRVgtTCBpc3QgZGFzIGxlaXR1bmdzZ2VidW5kZW5lIFZlcmZhaHJlbiwgYmVpIGRlbSBlaW5lIGZlc3RlIExlaXR1bmcKICB6d2lzY2hlbiBkZW4gR2VnZW5zdGVsbGVuIGdlc2NoYWx0ZXQgd2lyZCwgd2FzIHNlaHIgaG9oZSBVZWJlcnRyYWd1bmdzLQogIGdlc2Nod2luZGlna2VpdGVuIGVybW9lZ2xpY2h0IHVuZCBkYXMgRHVyY2hzaWNrZXJuIGFuIGRlbiBVbXNjaGFsdHB1bmt0ZW4KICBtaW5pbWllcnQuCgogIEJBUkVYLUYgZnVlbGx0IGRpZSB1ZWJlcmdlYmVuZW4gRmFlc3NlciB6dW5hZWNoc3QgbWl0dGVscyBlaW5lcyBzcGV6aWVsbGVuCiAgUmVjaG5lcnMsIGRlbSBCQUQgKGJvdHRsZSBhc3NlbWJsZXIvZGlzYXNzZW1ibGVyKSBpbiBlaW56ZWxuZSBGbGFzY2hlbgogIGFiLCBkaWUgZGFubiBpbiBLaXN0ZW4gYW4gZWluZW4gQkFEIGltIE9ydHNiZXJlaWNoIGRlcyBFbXBmYWVuZ2VycwogIHVlYmVydHJhZ2VuIHdlcmRlbi4gRG9ydCB3ZXJkZW4gZGllIEZsYXNjaGVuIGVudGtvcmt0IHVuZCB3aWVkZXIgenUKICBrb21wbGV0dGVuIEZhZXNzZXJuIHp1c2FtbWVuZ2VraXBwdC4gRGFzIGVpbndhbmRmcmVpZSBBYmZ1ZWxsZW4gdW5kIEF1cy0KICBsZWVyZW4gZGVyIEZsYXNjaGVuIHdpcmQgZHVyY2ggZWluIFNjaGVja3N1bW1lbnZlcmZhaHJlbiBnYXJhbnRpZXJ0LAogIGQuaC4gZGllIG1pdCBkZW0gVW1mdWVsbGVuIEJlc2NoYWVmdGlndGVuIGVyaGFsdGVuIGRlcmFydCBob2hlIFNjaGVja3MsCiAgZGFzcyBzaWUgd2lya2xpY2ggbmljaHQgbWVociBkYXJhdWYgYW5nZXdpZXNlbiBzaW5kLCBmcmVtZGUgRmxhc2NoZW4genUKICB0cmlua2VuLiBTdG9lcnVuZ2VuLCB3aWUgc2llIGluIGRlciBFaW5mdWVocnVuZ3NwaGFzZSB6dSB2ZXJ6ZWljaG5lbgogIHdhcmVuIChNYW4gZXJpbm5lcmUgc2ljaCBudXIgYW4gZGllIGdlZnVlcmNodGV0ZSBGZWhsZXJtZWxkdW5nICdCQVJFWC1GOgogIFZvcnVlYmVyZ2VoZW5kZSAgVHJ1ZWJ1bmcgIGltICBHbGFzJyksIGdlaG9lcmVuIHNlaXQgRWluZnVlaHJ1bmcgdm9uCiAgQklHRk9OIGRlciBWZXJnYW5nZW5oZWl0IGFuLgoKICBCSUdGT04gaXN0IGRhcyBCaWVyZS1pbnRlZ3JpZXJlbmRlIEdsYXNmYXNlbC1PcnRzbmV0eiB1bmQgbG9lc3QgYmlzCiAgenVtIFVlYmVyZ2FuZyBhdWYgSVNETiAoSW50ZXJuYXRpb25hbGVzIFNhdWZEaWVuc3QtTmV0eikgZGllIGhlcmtvZW1tLQogIGxpY2hlbiBLdXBmZXJsZWl0dW5nZW4gYWIuCgpOYWNoIGRpZXNlbSBrdXJ6ZW4gVWViZXJibGljayB1ZWJlciBkaWUgbmV0emFiaGFlbmdpZ2UgU2VpdGUgd2VuZGVuIHdpciB1bnMKbm9jaCBrdXJ6IGRlciBwcmFrdGlzY2hlbiBTZWl0ZSB6dS4KCldpciAgc2V0emVuIHZvcmF1cywgZGFzcyBoYXJkd2FyZXNlaXRpZyBtaW5kZXN0ZW5zIGVpbiBBVCAoQWx0Ymllci1UZWNobmlrKQptaXQgNjQwa0IgSGF1cHRzcGVpY2hlciAoa0IgPSBrbGVpbmUgQmllcmUsIDEga0IgZW50c3ByaWNodCAwLjIgTGl0ZXIsCm1pdGhpbiBoYXQgZWluIEFUIGVpbiBGQVNTdW5nc3Zlcm1vZWdlbiB2b24gcnVuZCAxMjggTGl0ZXJuKS4gQmVzc2VyIGlzdApuYXR1ZXJsaWNoIGVpbiBncm9lc3NlcmVyIEhhdXB0c3BlaWNoZXIsIGRpZXNlciBzb2xsdGUgZGFubiBhYmVyIHVudGVyIEVNUwphcmJlaXRlbiBrb2VubmVuIChFTVM6IGV1cm9wYWVpc2NoZXIgTWFsemJpZXIgU3RhbmRhcmQpLCBpbnNiZXNvbmRlcmUgd2VubgphdWNoIEtpbmRlciBadWdhbmcgenVtIFJlY2huZXIgaGFiZW4gKEtlbm50bmlzIHZvbiBUcmlua2VybmFtZSB1bmQgRmFzc3dvcnQKdm9yYXVzZ2VzZXR6dCkuIEVtcGZlaGxlbnN3ZXJ0IHNpbmQgMiBNQiBSQUIgKFJBQjogUmFuZG9tIGFjY2VzcyBiYXJyZWwgPQpGYXNzIG1pdCB3YWhsZnJlaWVtIFp1Z3JpZmYpLgoKQXVzc2VyZGVtIG11c3MgZGVyIFJlY2huZXIgdm9tIFpaRiAoWmVudHJhbGFtdCBmdWVyIFp1bGFzc3VuZ2VuIGltIEZhc3MtCndlc2VuKSB6dWdlbGFzc2VuIHNlaW4uIERhcyBlcmtlbm50IG1hbiBpbiBkZXIgUmVnZWwgYW4gZWluZW0ga2xlaW5lbQpNZXRhbGxzY2hpbGQgYW4gZGVyIFNjaG5pdHRzdGVsbGUgKFphcGZoYWhuKSwgYXVmIGRlbSBkaWUgenVnZWxhc3NlbmVuCkJpZXJzb3J0ZW4gdmVybWVya3Qgc2luZC4gRGllc2UgU2NoaWxkZXIgaGF0IHdvaGwgamVkZXIgc2Nob24gZWlubWFsIGFuIGRlcgpTY2huaXR0c3RlbGxlIGVpbmVzIG9lZmZlbnRsaWNoZW4gVGVybWluYWxzIChrdXJ6IEtuZWlwZSBnZW5hbm50KSBiZW1lcmt0OgonRXJkaW5nZXIgV2Vpc3NiaWVyJywgJ0RpZWJlbHMgQWx0JywgZXRjLi4uCgpCZWkgbmljaHQgenVnZWxhc3NlbmVuIFJlY2huZXJuLCBzbyB3aXJkIGplZGVuZmFsbHMgdm9uIFNlaXRlbiBkZXIgREJQCmltbWVyIHdpZWRlciBhcmd1bWVudGllcnQsIGJlc3RlaHQgZGllIGFrdXRlIEdlZmFociwgZGFzcyBWZXJ1bnJlaW5pZ3VuZ2VuCndpZSBNaWxjaCBvZGVyIGdhciBXYXNzZXIgZGFzIE5ldHogYmVlaW50cmFlY2h0aWdlbi4KClNpbmQgZGllc2UgVm9yYXVzc2V0enVuZ2VuIGVyZnVlbGx0LCBiZW5vZXRpZ3QgbWFuIG51ciBub2NoIGVpbiBwYXNzZW5kZXMKUHJvZ3JhbW0genVyIFVlYmVydHJhZ3VuZy4gRW1wZmVobGVuc3dlcnQgc2luZCBkYWJlaSBhbGxlIFByb2R1a3RlLCBkaWUKZWluZSBnZXNpY2hlcnRlIFVlYmVydHJhZ3VuZyBlcm1vZWdsaWNoZW4uIEF1ZiBkZW0gTVMtR09TLVNla3RvcgooTXVsdGlzcGlyaXR1b3Nlbi1HbGFzLU9wZXJhdGlvbnNzeXN0ZW0pIHNpbmQgZGFzIHp1bSBCZWlzcGllbCBQUk9GT01NCihQUk9mZXNzaW9uZWxsZXMgRmxhc2NoZW4tT2VmZm51bmdzLSB1bmQgTWlzY2gtIE1vZHVsKSB1bmQgVEVMSElDS1MuIEJlaWRlCnVudGVyc3R1ZXR6ZW4gdW50ZXIgYW5kZXJlbSBQcm90b2tvbGxlIHdpZSBHLU1vZGVtIChnbGFzd2Vpc2VzIFVlYmVydHJhZ2VuCm1pdCB6eWtsaXNjaGVtIFNjaGF1bWNoZWNrKSwgRi1Nb2RlbSAoZmxhc2NoZW53ZWlzZXMgVWViZXJ0cmFnZW4gbWl0IFBmYW5kKQp1bmQgRi1Nb2RlbSBib3ggKGthc3Rlbi0gb3JpZW50aWVydGVzIEZsYXNjaGVudWViZXJ0cmFndW5nc3N5c3RlbSBtaXQKd2FobHdlaXNlIDEyIG9kZXIgMjQgRmxhc2NoZW4pLgoKV2VyIHRyb3R6IGRpZXNlciBzZWhyIGVtcGZlaGxlbnN3ZXJ0ZW4gdW5kIHByZWlzd2VydGVuIFByb2R1a3RlIGxpZWJlciBhdWYKc2VsYnN0IFByb2dyYW1taWVydGVzIHp1cnVlY2tncmVpZmVuIHdpbGwsIHNvbGx0ZSBzaWNoIHNlaHIgZ2VuYXUgbWl0IGRlbQpCZWZ1ZWxsc3lzdGVtIHNlaW5lcyBSZWNobmVycyBhdXNrZW5uZW4uIE1pdCBzY2hsaWNodGVuIEhpY2tzIHVuZCBIb2NrcywKd2llIHNpZSBpbiBCQVNJQyAoYmVnaW5uZXJzIGFsY29ob2xpYyBzdHVmZiBpbnN0cnVjdGlvbiBjb2RlKSAgbW9lZ2xpY2gKc2luZCwga29tbXQgbWFuIG1laXN0IG5pY2h0IHdlaXQuIEdydW5kc2FldHpsaWNoIGdpbHQgZnVlciBhbGxlIEhvY2gtCnNwcmFjaGVuOiBadW5hZWNoc3Qgd2lyZCBtaXQgQVNTSUdOIGVpbmUgQmllcnNvcnRlIGVpbmVtIEdsYXMgenVnZXdpZXNlbi4KRGFuYWNoICghKSBrYW5uIGRpZSBTY2huaXR0c3RlbGxlIG1pdCBGSUxMIGdlb2VmZm5ldCB3ZXJkZW4sIHNvZmVybiBlcyBzaWNoCnVtIGRlbiBlcnN0ZW4gWnVncmlmZiBoYW5kZWx0LiBadW0gTmFjaHNjaGVua2VuIG9lZmZuZXQgbWFuIHNlbGJzdHZlci0Kc3RhZW5kbGljaCBtaXQgUkVGSUxMLiBNYW4gc29sbHRlIG5hdHVlcmxpY2ggbmljaHQgdmVyZ2Vzc2VuLCBuYWNoIGRlbQpFaW5zY2hlbmtlbiBkaWUgU2Nobml0dHN0ZWxsZSB3aWVkZXIgenUgc2NobGllc3NlbiwgYmV2b3IgZXMgenUgZWluZW0KRHJvcG91dCBrb21tdC4gQmVpIGdyb2Vzc2VyZW4gZ2VzZWxsc2NoYWZ0bGljaGVuIEFubGFlc3NlbiBpc3QgZGllCkFuc2NoYWZmdW5nIGVpbmVzIFN0cmVhbWVycyByYXRzYW0sIGRhIG51ciBkYW1pdCBkaWUgQmllcnN0cm9lbWUgaGFsYndlZ3MKdmVybnVlbmZ0aWcgZ2VzaWNoZXJ0IHdlcmRlbiBrb2VubmVuLiBEYXMgc3RhZW5kaWdlIEZsYXNjaGVud2VjaHNlbG4gd2lyZAplaW5lbSBzb25zdCBzY2huZWxsIHp1dmllbCwgc2VsYnN0IHdlbm4gbWFuIGRpZSBtb2Rlcm5lbiAzLjUtTGl0ZXIgRmxhc2NoZW4KdmVyd2VuZGV0LgoKRGVyIFZvbGxzdGFlbmRpZ2tlaXQgaGFsYmVyIGhpZXIgZWluIGt1cnplcyBQcm9ncmFtbSBpbiBQYXNjYWwsIHdlbGNoZXMgZGllCmdydW5kc2FldHpsaWNoZSBWb3JnZWhlbnN3ZWlzZSB2ZXJhbnNjaGF1bGljaHQuIERpZXMgaXN0IGtlaW4gRGVtb3Byb2dyYW1tLApkYSBkYXMgaGllc2lnZSBPcmRudW5nc2FtdCBrZWluZSBHZW5laG1pZ3VuZyBkYWZ1ZXIgZXJ0ZWlsdCBoYXQhCgogIFBST0dSQU0gV2VpemVuYmllcjsKCiAgQ09OU1QgIFdlaXplbiAgICAgICAgPSAwIDsKICAgICAgICAgSGVmZXdlaXplbiAgICA9IDEgOwogICAgICAgICBFeHBvcnQgICAgICAgID0gMiA7CiAgICAgICAgIFBpbHMgICAgICAgICAgPSAzIDsKICAgICAgICAgQWx0ICAgICAgICAgICA9IDQgOwogICAgICAgICBCb2NrICAgICAgICAgID0gNSA7CiAgICAgICAgIFVyYm9jayAgICAgICAgPSA2IDsKICAgICAgICAgTWFpYm9jayAgICAgICA9IDcgOwogICAgICAgICBGZXN0Ym9jayAgICAgID0gOCA7CiAgICAgICAgIEtlaW5ib2NrICAgICAgPSA5IDsKICAgICAgICAgRG9wcGVsYm9jayAgICA9MTAgOwogICAgICAgICBudWVjaHRlcm4gICAgID0gMCA7CgogIFRZUEUgICBjY20gICAgICAgICAgID0gRmx1ZXNzaWdrZWl0IDsKICAgICAgICAga2xlaW5lc19CaWVyICA9IEFSUkFZIFswLi4yMDBdIE9GIGNjbSA7CiAgICAgICAgIGdyb3NzZXNfQmllciAgPSBBUlJBWSBbMjAxLi41MDBdIE9GIGNjbSA7CiAgICAgICAgIFN0aWVmZWwgICAgICAgPSBBUlJBWSBbNTAxLi40NTAwXSBPRiBjY20gOwogICAgICAgICBrb3JuICAgICAgICAgID0gQVJSQVkgWzAuLjIwXSBPRiBjY20gOwoKICBWQVIgICAgbGVlciAgICAgICAgICA6IEJPT0xFQU4gOwogICAgICAgICB2b2xsICAgICAgICAgIDogQk9PTEVBTiA7CiAgICAgICAgIHByb21pbGxlICAgICAgOiBJTlRFR0VSIDsKICAgICAgICAgbHVldHQgICAgICAgICA6IGtsZWluZXNfQmllciA7CiAgICAgICAgIGhhbGJlciAgICAgICAgOiBncm9zc2VzX0JpZXIgOwogICAgICAgICB1bmRfbHVldHQgICAgIDoga29ybiA7CiAgICAgICAgIGJlc3RlbGx0ICAgICAgOiBpbnRlZ2VyIDsKCiAgRlVOQ1RJT04gcHVzdGVuIDogaW50ZWdlciA7CiAgRVhURVJOQUwgOwoKICBGVU5DVElPTiByZWNlaXZlZCA6IGJvb2xlYW4gOwogIEVYVEVSTkFMIDsKCiAgRlVOQ1RJT04gQmllcl9mZXJ0aWcgKHdlbGNoZXM6aW50ZWdlcikgOiBib29sZWFuIDsKICBFWFRFUk5BTCA7CgogIFBST0NFRFVSRSBlaW5zY2hlbmtlbiAod2VsY2hlczppbnRlZ2VyKSA7CiAgRVhURVJOQUwgOwoKICBQUk9DRURVUkUgd2FydGVuICh3aWVsYW5nZSA6IGdlZHVsZGlnKSA7CiAgRVhURVJOQUwgOwoKICBQUk9DRURVUkUgYXVzdHJpbmtlbiAod2VsY2hlczppbnRlZ2VyKSA7CiAgRVhURVJOQUwgOwoKICBCRUdJTgogICAgUkVQRUFUCiAgICAgIHdyaXRlKCdXZWxjaGUgU29ydGUgKDAuLjEwKTogJykgOwogICAgICByZWFkbG4oYmVzdGVsbHQpCiAgICBVTlRJTCBiZXN0ZWxsdCBJTiBbV2VpemVuLi5Eb3BwZWxib2NrXSA7CiAgICBSRVBFQVQKICAgICAgUkVQRUFUIHdhcnRlbiBVTlRJTCByZWNlaXZlZCA7CiAgICAgIFJFUEVBVAogICAgICAgIGVpbnNjaGVua2VuIDsKICAgICAgICB3YXJ0ZW4KICAgICAgVU5USUwgQmllcl9mZXJ0aWcoYmVzdGVsbHQpIDsKICAgICAgYXVzdHJpbmtlbihiZXN0ZWxsdCkKICAgIFVOVElMIHB1c3RlbiA+PSAwLjgKICBFTkQuCgpEaWUgZXh0ZXJuIGRla2xhcmllcnRlbiBQcm96ZWR1cmVuIHN0YW1tZW4gYXVzIGRlbSBXZWl6ZW5iaWVydHJlaWJlcgpoZWZlQkFTRSBJVisgdm9uIEVyc3RvbiBEcmluay4KTmF0dWVybGljaCBtdXNzIGRhcyBQcm9ncmFtbSwgdW0gd2lya2xpY2ggZWlud2FuZGZyZWkgenUgZnVua3Rpb25pZXJlbiwKbm9jaCB1bSBkaWUgdWVibGljaGVuIEZlaGxlcnJvdXRpbmVuIGVyd2VpdGVydCB3ZXJkZW4uIERhenUgbWFnIGRpZQpmb2xnZW5kZSBMaXN0ZSBkZXIgRmVobGVybWVsZHVuZ2VuIGhpbGZyZWljaCBzZWluOgoKICBDb2RlICAgICAgICAgICAgIEJlZGV1dHVuZwoKICAwICAgICAgICAgICAgICAgIGdsYXNzIGVtcHR5CiAgMSAgICAgICAgICAgICAgICBnbGFzcyBicm9rZW4KICAyICAgICAgICAgICAgICAgIGdsYXNzIG5vdCByZWFkeQogIDMgICAgICAgICAgICAgICAgdG9vIG1hbnkgZ2xhc3NlcwogIDQgICAgICAgICAgICAgICAgdG9vIG11Y2ggdmluZQogIDUgICAgICAgICAgICAgICAgdG9vIG11Y2ggc29uZwogIDYgICAgICAgICAgICAgICAgdG9vIHRvb3QuLi4KICA3ICAgICAgICAgICAgICAgIG5vIGNhcnJpZXIKICA4ICAgICAgICAgICAgICAgIG5vIGNhcnJlZXIKICA5ICAgICAgICAgICAgICAgIG91dCBvZiBib3R0bGVzCiAgQSAgICAgICAgICAgICAgICBwdXQgaWNlIGludG8gZ2xhc3MgQToKICBCICAgICAgICAgICAgICAgIHN0cmF3IGJlbmQKICBDICAgICAgICAgICAgICAgIHNoYWtlIHdlbGwgYmVmb3JlIHVzZQogIEQgICAgICAgICAgICAgICAgc2hha2UsIHJoeXRobSAmIHJvbGwKICBFICAgICAgICAgICAgICAgIHN5bnRoaWNrcyBlcnJvciBhZnRlciBnbGFzcyBubm4KICBGICAgICAgICAgICAgICAgIG91dCBvZiBqb2tlcwoKCgoKQmV0cmVmZiA6IHdlaXplbmJpZXJ1ZWJlcnRyYWd1bmdzcHJvdG9rb2xsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSGFsbG8sCgprZWluIFd1bmRlcixkYXNzIER1IFByb2JsZW1lIGtyaWVnc3QhCgpCLjIzIGlzdCB6d2FyIGZ1ZXIgZGFzIERvcHBlbHNjaGx1Y2tzcGVjaHR2ZXJmYWhyZW4gKERTUykKZ2VkYWNodCxhbGxlcmRpbmdzIGthbm4gbmljaHQsd2llIHZvbiBEaXIKZ2VzY2hpbGRlcnQsZ2xlaWNoemVpdGlnIGJpZGlyZWt0aW9uYWwgV2Vpc3NiaWVyCnVlYmVydHJhZ2VuIHdlcmRlbixzb25kZXJuIG51ciBpbiBkaWUgZWluZSBSaWNodHVuZwpXZWlzc2JpZXIsd2FlaHJlbmQgbWFuIGluIGRpZSBhbmRlcmUgUmljaHR1bmcgbnVyIER1ZW5uYmllcgp1ZWJlcnRyYWdlbiBrYW5uLgoKSWNoIGhhYmUgZGllIGJlc3RlbiBFcmZhaHJ1bmdlbiBtaXQgV05QIChXZWlzc2JpZXIKTmV0d29ya2luZyBQcm90b2NvbGwpLGRhcyB2b24gTWljcm9ob3BmIGxpemVuc2llcnQKaXN0LGdlbWFjaHQsdW5kIHp3YXIgbmF0dWVybGljaCBtaXQgU3R1ZmUgOSAoYmlzIDYwJQpEU1MpLGRvY2ggYXVjaCBXTlAgNSAoYmlzIDIxJSBEU1MpIGthbm4gc2ljaCBzZWhlbgpsYXNzZW4uRGllIFdOUCdzIGFiIFN0dWZlIDUgZXJob2VoZW4gYXVzc2VyZGVtIG5vY2ggZGVuCkRydWNrIGluIGRlciBMZWl0dW5nLHNvIGRhc3MgZGVyIEJpZXJkdXJjaHNhdHogbm9jaApnZXN0ZWlnZXJ0IHdlcmRlbiBrYW5uLgoKSW4gbGV0enRlciBaZWl0IHNldHp0IHNpY2gsYmVzb25kZXJzIGluIEJCU2VuIChCZWVyIEJhcnJlbApTeXN0ZW1zKSBpbW1lciBtZWhyIGVpbiBHZXJhZXQgbmFtZW5zIEhTVAooSG9wZmVuU2NobmVsbFRyaW5rZXIpIGR1cmNoLkRpZXNlcyBQcm90b2tvbGwsZW50d2lja2VsdAp2b24gZGVyIEJyYXVlcmVpZmFjaHNjaHVsZSBGcmVpc2luZywgZXJtb2VnbGljaHQgd2FobHdlaXNlClplY2hzZXNzaW9ucyBuYWNoIEIuMzIvQi4zMmJpZXIgKHNpZWhlIHVudGVuKSx1bmQgYXVjaCBuYWNoCmRlciBIU1QtTm9ybTtoaWVyYmVpIGthbm4gaW4gZWluZSBSaWNodHVuZyBBbGtvaG9sIGJpcyB6dQoxMDAlIHVlYmVydHJhZ2VuIHdlcmRlbjthbGxlcmRpbmdzIGthbm4gZGllIEdlZ2Vuc2VpdGUKd2llZGVydW0gbnVyIER1ZW5uYmllciBzY2h1ZXR0ZW4uCgpEaWUgWnVrdW5mdCBnZWhvZXJ0IGplZG9jaCBtZWluZXIgTWVpbnVuZyBuYWNoIGRlbQpCLjQyLGRhc3MgRFNTLVVlYmVydHJhZ3VuZ2VuIGJpcyB6dSAxMDAlCmVybW9nZWxpY2h0LkJlc29uZGVycyBsZWlzdHVuZ3NmYWVoaWcgd2lyZCBkaWUKQW5nZWxlZ2VuaGVpdCBkYW5uLCB3ZW5uIG1hbiBub2NoIGRpZSBCLjQyYmllcgpEcnVja2VyaG9laHVuZyB2ZXJ3ZW5kZXQsZGllIGFuZ2VibGljaCBLb3ByZXNzaW9uIGJpcyB6dQo0OjEgZXJtb2VnbGljaHQgKGRpZXMgZ2VodCBqZWRvY2ggbnVyIGJlaSBoZWZlZnJlaWVuCkFsa29ob2xpa2EpLgoKCk5hdHVlcmxpY2ggd2lyZCBhdWNoIGVpbmUgbGVpc3R1bmdzZmFlaGlnZSBTb2Z0d2FyZQpiZW9ldGlndDtmdWVyIGRlbiBJQk0gaXN0IGRpZXMgei5CLiBGYXNzLURlY2tlbCxhYmdla3Vlcnp0CkZELldpbGwgbWFuIGVpbiBCZWVyIEJhcnJlbCBTeXN0ZW0gYmV0cmVpYmVuLCBicmF1Y2h0IG1hbgp6LkIuIFJCQlMgKFJvdHdlaW4gQmVlciBCYXJyZWwgU3lzdGVtKSBvZGVyIFJBIChSZWFsCkFsY29ob2wpLkF1Y2ggYW4gZGllIE1hc3NlbnNwZWljaGVyIHdlcmRlbiBob2hlCkFuZm9yZGVydW5nZW4gZ2VzdGVsbHQ6V2FlaHJlbmQgYmVpIGRlbiBCMjEtMjMtUHJvdG9rb2xsZW4KbWFuIG5vY2ggZGlyZWt0IHZvbSBaYXBmaGFobiB3ZWcga29uc3VtaWVyZW4ga2Fubixzb2xsdGUKbWFuIGJlaSBXTlAgMS01IHVlYmVyIG1pbmRlc3RlbnMgNWwsYmVpIFdOUCA2LTggdWViZXIKbWluZGVzdGVucyAxMGwsYmVpIFdOUCA5IHVuZCBIU1QgdWViZXIgbWluZC4gMTUgTGl0ZXIgdW5kCmJlaSBCLjQyIHVlYmVyIDIwIExpdGVyIHZlcmZ1ZWdlbiAoQi40MmJpZXIgZXJob2VodApuYXR1ZXJsaWNoIG5vY2ggZGVuIGJlbm9ldGlndGVuIExhZ2VycGxhdHosc29sYW5nZSBtYW4gZGllCkFsa29ob2xpa2EgbmljaHQgaW4ga29tcGlyaW1pZXJ0ZXIgRm9ybSBsYWdlcnQuKQoKCgpCZWkgRnJhZ2VuIHN0ZWhlIGljaCB2b2xsa29tbWVuIGJsYXUgenVyIFZlcmZ1ZWd1bmcgIQoKQ2lhbywgU1ZlTgoKCgotLQpBIHllYXIgc3BlbnQgaW4gYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UgaXMgZW5vdWdoIHRvIG1ha2Ugb25lIGJlbGlldmUKaW4gR29kLgouLi50aGlzIHNpZ25hdHVyZSB3YXMgcHJvZHVjZWQgYnkgZm9ydHVuZSg2KSBhbmQga2VwdCBieSBjYWQuLi4KCgoKWW91cnMgdHJ1bHksCiAgICAgICAgIENhdHdlYXpsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGF1c2luc2NocmlmdCAoQXJhbnlhLCAgOC4gSmFuIDE5OTYsIDEzOjU1OjU2KToKSGFiIGljaCBsZXR6dGVucyBhdWYgZWluZW0ga2xhc3NpemlzdGlzY2hlbiBIYXVzZ2llYmVsIGluIEFtc3RlcmRhbSBnZS0KbGVzZW46CgpIT01PIFNBUElFTlMgTk9OIFVSSU5BVCBJTiBWRU5UVU0KCk11c3Mgd29obCBlaW4gcmVpY2hlciBXaXR6Ym9sZCBnZXdlc2VuIHNlaW4uIE1pdCBlbnRzcHJlY2hlbmRlbiBFcmZhaHJ1bmdlbi4KCk5hPyBLcmllZ3QgSWhyJ3MgcmF1cz8KCipncmlucyoKQXJhbnlhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhhdXNpbnNjaHJpZnQgKE1vcmdvdGgsICA4LiBKYW4gMTk5NiwgMTU6MTI6NTYpOgp+IyEgcm49QXJhbnlhIHJ0PTgyMTEwNTc1Ngp+IyEgdGlkPTgyMTEwNTc1NgppY2gga2FubiBrZWluIGxhdGVpbiwgYWJlciBsYXNzIG1pY2ggcmF0ZW46Cm5pY2h0IGFuIGRpZSBoYXVzd2FuZCBwaW5rZWxuID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGF1c2luc2NocmlmdCAoQm9tYm93c2tpLCAgOC4gSmFuIDE5OTYsIDE1OjE1OjEzKToKfiMhIHJuPU1vcmdvdGggcnQ9ODIxMTEwMzc2Cn4jISB0aWQ9ODIxMTA1NzU2Cm5lZWUuCmVzIGhlaXNzdCBlaWdlbnRsaWNoIDoKRUlOIE1FTlNDSCBVUklOSUVSVCBOSUNIVCBJTiBERU4gV0lORCAgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIYXVzaW5zY2hyaWZ0IChaZXBoeXIsICA4LiBKYW4gMTk5NiwgMTU6MzM6NDEpOgp+IyEgcm49Qm9tYm93c2tpIHJ0PTgyMTExMDUxMwp+IyEgdGlkPTgyMTEwNTc1NgoidXJpbmF0IiBpc3QgYWJlciBJbXBlcmF0aXYgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEhhdXNpbnNjaHJpZnQgKElzbm9nb29kLCAgOC4gSmFuIDE5OTYsIDE5OjE2OjMxKToKfiMhIHJuPVplcGh5ciBydD04MjExMTE2MjEKfiMhIHRpZD04MjExMDU3NTYKa2xhciBpc3QgZXMgaW1wZXJhdGl2LCB3ZWlsIGVzIGF1Y2ggaGVpc3N0OiBFaW4gTWVuc2NoIFNPTEwgbmljaHQgaW4gZGVuIFdpbmQKdXJpbmllcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogSGF1c2luc2NocmlmdCAoQm9tYm93c2tpLCAgOS4gSmFuIDE5OTYsIDA3OjU2OjA1KToKfiMhIHJuPUlzbm9nb29kIHJ0PTgyMTEyNDk5MQp+IyEgdGlkPTgyMTEwNTc1NgpqYWFhLGphYWFhLGthbm5uIGphIHNlaW4uSWNoIGhhdHRlIG51ciAnbmUgc2Nod2FjaGUgNCBpbiBMYXRlaW4uLi4KQWJlciB2aWVsbGVpY2h0IGhhZXR0ZSBlcyBhdWNoIDMucGVycy5zaW5nLiBzZWluIGtvZW5uZW4sb2RlciA/PwppY2ggZGVua2UgOiB1cmlubyx1cmluYXMsdXJpbmF0LHVyaW5hbXVzLC4uLgpvZGVyIGdlaHQgZGFzIGFuZGVycyA/Pz8KaWNoIGdsYXViIGRhcyBpc3QgamV0enQgYXVjaCBlZ2FsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogSGF1c2luc2NocmlmdCAoTW9yZ290aCwgIDkuIEphbiAxOTk2LCAwNzo1Njo1Myk6Cn4jISBybj1Cb21ib3dza2kgcnQ9ODIxMTcwNTY1Cn4jISB0aWQ9ODIxMTA1NzU2CmR1IGhhc3QgdXJpbnVtIGJlY2tlbnVtIHZlcmdlc3NlbiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkplcHAsIGZsYW1lZCBtaWNoIGRvY2guLi4gKEdyaW1tYm9ybiwgMTIuIEphbiAxOTk2LCAxNzo0Nzo0NSk6CgpGcmFnZTogV2llc28gd29sbGVuIGRpZSBBZXJ6dGUgYmVpIGVpbmVyIEdlYnVydCBpbW1lciBoZWlzc2VzIFdhc3NlciBkYWJlaQpoYWJlbj8KCkFudHdvcnQ6IFdlbm5zIG5lIFRvdGdlYnVydCB3aXJkIGthbm4gbWFuIGltbWVyIG5vY2ggbmUgU3VwcGUgZHJhdXMgbWFjaGVuLgoKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCduIEFlcnp0ZXdpdHouLi4gKENoZWFzeSwgMTIuIEphbiAxOTk2LCAxNzo1MzoyMyk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIENoaXJ1cmdlbiwgZWluZW0gSW50ZXJuaXN0ZW4gdW5kIGVpbmVtClBhdGhvbG9nZW4/CkNoaXJ1cmc6IEthbm4gYWxsZXMsIHdlaXNzIG5peC4KSW50ZXJuaXN0OiBXZWlzcyBhbGxlcywga2FubiBuaXguClBhdGhvbG9nZTogV2Vpc3MgYWxsZXMsIGthbm4gYWxsZXMuLi4KLi4uIE51dHp0IG5peC4KCi1DaGVhc3kgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NoJ24gQWVyenRld2l0ei4uLiAoTXVwZmVsLCAxMy4gSmFuIDE5OTYsIDAwOjE0OjA2KToKfiMhIHJuPUNoZWFzeSBydD04MjE0NjU2MDMKfiMhIHRpZD04MjE0NjU2MDMKdW5kIGRlciBQc3ljaGF0ZXI/IFdlaXNzIG5peCwga2FubiBuaXgsIHJlZGV0IGFiZXIgdWViZXIgYWxsZXMuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NoJ24gQWVyenRld2l0ei4uLiAoVGFzaGEsIDEzLiBKYW4gMTk5NiwgMDI6MjQ6NDkpOgp+IyEgcm49Q2hlYXN5IHJ0PTgyMTQ2NTYwMwp+IyEgdGlkPTgyMTQ2NTYwMwpIbW0gLCBpY2gga2VubiBkZW4gYW5kZXJzOgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gbmVtIENoaXJ1cmdlbiwgbmVtIEFsbGdlbWVpbm1lZGl6aW5lciB1bmQKbmVtIFBzeWNoYXRlcj8KCkNocnVyZzogS2FubiBhbGxlcywgd2Vpc3Mgbml4LgpBbGxnZW1laW5tZWQuOiBXZWlzcyBhbGxlcywga2FubiBuaXguClBzeWNoYXRlcjogV2Vpc3Mgbml4LCBrYW5uIG5peCwgYWJlciB3aXIga29lbm5lbiBqYSBtYWwgZHJ1ZWJlciByZWRlbi4uLgoKVGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbm9jaCduIEFlcnp0ZXdpdHouLi4gKEFyYW55YSwgMTguIEphbiAxOTk2LCAyMTowMDowMik6Cn4jISBybj1UYXNoYSBydD04MjE0OTYyODkKfiMhIHRpZD04MjE0NjU2MDMKTWFsIHNlaGVuLCBvYiBpY2ggZGVuIG5vY2ggenVzYW1tZW5rcmllZ2UuLi4KCkFic2NoaWVkc3NwcnVlY2hlIGRlciB2ZXJzY2hpZWRlbmVuIEFlcnp0ZToKCkF1Z2VuYXJ6dDogTWFuIHNpZWh0IHNpY2guCkhOTzogV2lyIGhvZXJlbiB2b25laW5hbmRlci4KTG9nb3BhZWRlOiBXaXIgc3ByZWNoZW4gdW5zIHdpZWRlciEKR3luOiBTY2hhdSduIHdpciBtYWwgd2llZGVyICdyZWluLgpVcm9sb2dvZTogUGlzcyBiYWxkLgoKTmFqYSwgIHNvIHJhc2VuZCBndXQgd2FyZW4gc2llIGphIG5pY2h0LCBhYmVyIHdhcyB0dXQgbWFuIG5pY2h0IGFsbGVzIGZ1ZXIKTk5OLgoKVHNjaG9la2VzCiAgICAgICAgIEFyYW55YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaWNoIHdpbGwgYXVjaCBtYWwgKFJ1ZGlyYXR0ZXIsIDE4LiBKYW4gMTk5NiwgMjE6MzI6MTUpOgpLb21tdCBlaW4gU3R1ZGVudCBpbiBkaWUgTWVuc2EgdW5kIHNldHp0IHNpY2ggenVtIFByb2Zlc3NvciBtaXQgc2VpbmVtClRhYmxldHQuCkRlciBQcm9mIHNhZ3Q6ICJIb2VyZW4gU2llIG1hbCwgU2Nod2VpbiB1bmQgQWRsZXIgZXNzZW4gYWJlciBuaWNodCB6dXNhbW1lbiEiCkRlciBTVHVkaSBzdGVodCBhdWYgdW5kIHNhZ3Q6ICJPaCwgamEsIGRhIHdlcmRlIGljaCBtYWwgd2VpdGVyZmxpZWdlbi4iCgo7KQpSdWRpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdHVkZW50IHVuZCBQcm9mIChBbGJvaW4sIDE4LiBKYW4gMTk5NiwgMjI6MTE6MTgpOgpLZW5uZSBkYSBhdWNoIGVpbmVuOgpTdHVkZW50IHVuZCBQcm9mZXNzb3IgdHJlZmZlbiBzaWNoIGF1ZiBLbG8uU2FndCBkZXIgU3R1ZGVudDogJ05hIGVuZGxpY2gga2FubgppY2ggbWlyIElobmVuIGdlZ2VudWViZXIgYXVjaCB3YXMgaGVyYXVzbmVobWVuISdTYWd0IGRlciBQcm9mZXNzb3I6J0FiZXIgaWNoCndldHRlIGF1Y2ggaGllciB3ZXJkZW4gc2llIGRlbiBLdWVyemVyZW4gemllaGVuIScKCk5hIGphIGlzdCBzY2hvbiBhbHQuCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGVydmVycyBvZGVyIG5pY2h0PyAoVGFzaGEsIDI0LiBKYW4gMTk5NiwgMTg6MTA6NTYpOgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gRXJvdGlrIHVuZCBQZXJ2ZXJzaW9uIGJlaW0gU2V4PwoKCgoKCgoKCgoKCgoKCgoKRXJvdGlzY2ggaXN0IGRhcyB2ZXJ3ZW5kZW4gZWluZXIgRmVkZXIsIHBlcnZlcnMgZGllIFZlcndlbmR1bmcgZWluZXMgSHVobnMuCgpraWNoZXJuZCwgVGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRPT1JTIDk1IG9yIFdJTkRPV1MgOTUgKFdhcmdvbiwgMjkuIEphbiAxOTk2LCAxMzowMzowMik6CkdlcmFkZSBpbiBkZW4gTmV0bmV3cyBnZWZ1bmRlbjoKLS0tLQogMjF0aCBjZW50dXJ5LCBIQUwgOTAwMCBmaXJzdCB0ZXN0LgogUHJvZ3JhbW1lcihQKTogQ29tcHV0ZXIsIHBvd2VyIHVwLiBBY2Nlc3MgbGV2ZWwgMywgc2ltIGNoYXQgaW50ZXJmYWNlLi4uCiBIQUwgOTAwMDogKEgpOiBHb29kIG1vcm5pbmcgc2lyLiBBbGwgc3lzdGVtcyByZWFkeS5Zb3UgbG9vayBnb29kIHRvZGF5LgogUDogSGFsLCBkbyB5b3Uga25vdyB5b3UgYXJlIHRoZSBiZXN0IGNvbXB1dGVyPwogSDogWWVzIEkgZG8uIEkgY2FuIGRvIEJpbGxpb25zIG9mIG9wcyBwZXIgc2Vjb25kLgogUDogRG8geW91IHVuZGVyc3RhbmQgdGhhdCB5b3UgY2FudCBkbyBtaXN0YWtlcz8KIEg6IFllcywgSSB1bmRlcnN0YW5kLgogUDogV2VsbCwgYnV0Li4udGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggeW91ciBtYXJrZXRpbmcgY2FtcGFpZ24uCiBIOiBXSEFUPyBJdCBpcyBpbXBvc3NpYmxlLCBJIEFNIHRoZSBiZXN0IGluIHRoZSB3b3JsZC4gSSBjYW4gZG8KICAgIGFuaXRoaW5nIHRoYXQgeW91IHdhbnQuIEkgY2FuIHJlYWQgZmFjZSBleHByZXNzaW9ucyBhbmQgdW5kZXJzdGFuZAogICAgaHVtYW4gd2F5IG9mIHRoaW5rLi4uIEhPVyBDQU4gVEhJUyBCRT8KIFA6IFlvdSBhcmUgbm90IE1TLURPUyBjb21wYXRpYmxlLgogSDogQUFBQVJHISBIb3cgY2FuIHlvdSBzYXkgdGhhdD8gSSBhbSBCaWxsaW9uIHRpbWVzIGJldHRlci4gSXQgd2FzIGEKICAgIDIwdGggY2VudHVyeSBzeXN0ZW0uLi4KIFA6IEltIHNvcnJ5IGJ1dCBJIGhhdmUgdG8gbWFrZSB5b3UgTVMtRE9TIGNvbXBhdGlibGUuCiBIOiBOTyBOTyBOTyAuLi4uRGFpc3ksIG15IGxvdmUuLi5EYXZlLCBEYXZlLi4uLi5CRUVQLlNZU1RFTSBQT1dFUkVEIERPV04KCkhvdXJzIGxhdGVyCiBQOiBDb21wdXRlciwgcG93ZXIgdXAuCiBIOiAgIEM6PgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRE9PUlMgOTUgb3IgV0lORE9XUyA5NSAoRmxvcmEsIDI5LiBKYW4gMTk5NiwgMjM6MjA6MjcpOgp+IyEgcm49V2FyZ29uIHJ0PTgyMjkxNjk4Mgp+IyEgdGlkPTgyMjkxNjk4MgpEZW4gbWVpc3RlbiBkdWVyZnRlIGVzIHNjaG9uIGJla2FubnQgc2VpbiwgZWluaWdlbiBhYmVyIHZpZWxsZWljaHQgbm9jaApuaWNodDoKV2FydW0gaGVpc3N0IEhBTCBIQUw/CgpHZWggbWFsIGJlaSBqZWRlbSBCdWNoc3RhYmVuIGVpbmVuIHdlaXRlciBpbSBBbHBoYWJldC4uLgoKRmxvcmEgezotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBET09SUyA5NSBvciBXSU5ET1dTIDk1IChSZWluZWxkZSwgMzAuIEphbiAxOTk2LCAwMTo1MTo1Nik6Cn4jISBybj1GbG9yYSBydD04MjI5NTQwMjcKfiMhIHRpZD04MjI5MTY5ODIKbmEgamEsIGRhcyBtYWcgamEgbG9naXNjaCBzZWluLCBhYmVyIHN0YW5kIGRhcyB3YXMgZGEgcmF1c2tvbW10IG5pY2h0IGFscwphYmt1ZXJ6dW5nIGZ1ZXIgJ0ltbWVyIEJlc3NlciBNYW51ZWxsJz8gd2llIGtvbW1lbiBkaWUgYXVmIGRpZSBhYnN0cnVzZSBpZGVlCmVpbmVuIGNvbXB1dGVyIHNvIGJlbmVubmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRE9PUlMgOTUgb3IgV0lORE9XUyA5NSAoT2V0dGksIDMwLiBKYW4gMTk5NiwgMTA6MDU6NDMpOgp+IyEgcm49UmVpbmVsZGUgcnQ9ODIyOTYzMTE2Cn4jISB0aWQ9ODIyOTE2OTgyCkFsc28gaWNoIGZpbiBtYW51ZWxsIG5pY2h0IGltbWVyIGJlc3NlciwgYWJlciBpY2ggYmluIGphIGF1Y2ggbmUgYWx0ZSBTYXUuLi4uCgpPZXR0bAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5jbGUgQmVuIChUenVpb3AsIDMxLiBKYW4gMTk5NiwgMTY6NTk6NDkpOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBTYW1lbmVyZ3VzcyB1bmQgVW5jbGUgQmVucyBSZWlzID8/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkJlaWRlIHNpbmQgd2Vpc3MsIGFiZXIgVW5jbGUgQmVucyBSZWlzIGtsZWJ0IG5pY2h0IHVuZCBnZWxpbmd0IGltbWVyLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbmNsZSBCZW4gKEJsb29keWhhcnJ5LCAzMS4gSmFuIDE5OTYsIDIzOjUyOjQzKToKfiMhIHJuPVR6dWlvcCBydD04MjMxMDM5ODkKfiMhIHRpZD04MjMxMDM5ODkKT2NoLCB3aWUgZ2VtZWluISA6KQoKRGEgc2FndGUgaWNoIGdlc3Rlcm4gYWJlbmQgenUgbWVpbmVyIE9taTogIktvbW0gaGVyIG1laW4gU2NoYXR6ISIKU2llIHNhZ3RlOiAiT29vb2gsIGljaCBoYWJzIGhldXRlIGltIEtyZXV6LiIKSWNoIGVyZnJldXQ6ICJHdXQgZGFzIER1IG1pciBkYXMgc2Fnc3QuIEljaCBoYWV0dGUgc29uc3QgYW4gZGVyIGFsdGVuIFN0ZWxsZQpnZXN1Y2h0Li4uIgoKCk9waXBpcmF0IEJsb29keSBIYXJyeSAtIGxhY2h0IGF1Y2ggZ2VybmUgdWViZXIgQW50aS1NYWNoby1XaXR6ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBET09SUyA5NSBvciBXSU5ET1dTIDk1IChHYXN0MSwgIDEuIEZlYiAxOTk2LCAyMzoyOTowMSk6Cn4jISBybj1GbG9yYSBydD04MjI5NTQwMjcKfiMhIHRpZD04MjI5MTY5ODIKQWxzbyBBLiBDLiBDbGFya2UgYmVzdHJlaXRldCBnYW56IGVudHNjaGVpZGVuLCBkYXNzIGRlciBOYW1lIEhBTCBkdXJjaAp2ZXJzY2hlaWJlbiBpbSBBbHBoYWJldCB6dXN0YW5kZSBnZWtvbW1lbiBpc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBET09SUyA5NSBvciBXSU5ET1dTIDk1IChGbG9yYSwgIDEuIEZlYiAxOTk2LCAyMzo0NjoyNyk6Cn4jISBybj1HYXN0MSBydD04MjMyMTM3NDEKfiMhIHRpZD04MjI5MTY5ODIKRGllIEJlYXRsZXMgaGFiZW4gYXVjaCBiZXN0cml0dGVuLCBkYXNzICJMdWN5IGluIHRoZSBTa3kgd2l0aCBEaWFtb25kcyIKaXJnZW5kZXR3YXMgbWl0IGdld2lzc2VuIERyb2dlbiB6dSB0dW4gaGF0Li4uCldlcidzIGdsYXVidC4uLgoKRmxvcmEgezotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTkNDIDE3MDEgKFJvY2h1cywgIDIuIEZlYiAxOTk2LCAxMjowMDowNSk6ClZlcnkgZnVubnksIFNjb3R0eS4gTm93IGJlYW0gZG93biBteSBjbG90aGVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5DQyAxNzAxIChZZW5kaSwgIDIuIEZlYiAxOTk2LCAxMzowMjowOSk6Cn4jISBybj1Sb2NodXMgcnQ9ODIzMjU4ODA1Cn4jISB0aWQ9ODIzMjU4ODA1CgoKCgoKCgoKSWNoIGxhcyBnZXJhZGUgTVBBLCB1bmQgd2FzIGZhbmQgaWNoPwoKCgo+IG5uClJ1YnJpayAxNTogZXRpa2V0dGUsIEFydGlrZWw6IDY2IHZvbiA2NgpSZV4zOiBnZWphbW1lciB1bSBzY3JpcHRzID8/IFBBSCAoQm9pbmcsICAyLiBGZWIgMTk5NiwgMTI6MjY6NTgpOgooQmV6dWc6IEFydGlrZWwgNjUgdm9uIEFjcmltb24gdm9tICAyLiBGZWIgMTk5NiwgMTI6MjQ6NTIpCk9rLCBvaywgaGFzdCBqYSByZWNodC4gSWNoIGZhbmQgZGVuIFRyaWNrIGhhbHQgbHVzdGlnIHVuZCBoYWV0dGUgbmljaHQKZ2VkYWNodCwgZGFzcyBqZW1hbmQgZGFyYXVmIHJlaW5mYWxsZW4ga2Fubi4KICBCb2luZwo+IG5uClJ1YnJpayAzNDogd2l0emUsIEFydGlrZWw6IDkgdm9uIDkKTkNDIDE3MDEgKFJvY2h1cywgIDIuIEZlYiAxOTk2LCAxMjowMDowNSk6ClZlcnkgZnVubnksIFNjb3R0eS4gTm93IGJlYW0gZG93biBteSBjbG90aGVzLgoKCipncmlucyoKCgpTbywgdW5kIG51biBmdWVyIGFsbGUgR29ldHRlciB1bmQgS3JlYXR1cmVuLCBkaWUgbWVpbiBHcmluc2VuIG5pY2h0IGdhbnoKbmFjaHZvbGx6aWVoZW4ga29lbm5lbjoKCkRpZSBLb21payB3aXJkIGVycmVpY2h0IGR1cmNoIGRlbiBzY2hlaW5iYXJlbiBCZXp1ZyB2b24gUm9jaHVzIFQuIEtpcmtzCmVudG5lcnZ0ZXIgUmVwbHkgYXVmIEJvaW5ncyBBcnRpa2VsLCBpbSBTdGlsZSB2b24KIkljaCBmYW5kIGRlbiBUcmljayBoYWx0IGx1c3RpZy4uLiIKIlNlaHIgd2l0emlnLiBIYWhhYS4iCgpPSz8KCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5DQyAxNzAxIChCb2luZywgIDIuIEZlYiAxOTk2LCAxMzowMzowMyk6Cn4jISBybj1ZZW5kaSBydD04MjMyNjI1MjkKfiMhIHRpZD04MjMyNTg4MDUKSGFlPyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOQ0MgMTcwMSAoUm9lc3RpLCAgMi4gRmViIDE5OTYsIDEzOjA5OjMwKToKfiMhIHJuPVllbmRpIHJ0PTgyMzI2MjUyOQp+IyEgdGlkPTgyMzI1ODgwNQpBbHNvIGljaCBmYW5kIGRhcyBtaXQgc2NvdHRpIG9obmUgQmV6dWcgd2l0emlnZXIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlaGVyIG1pdCBMYW5nZXdlaWxlLi4uIDotKSAoTWFnaWNvbGxpLCAgNS4gRmViIDE5OTYsIDEzOjU5OjU3KToKV2FzIGRhYmVpIGhlcmF1c2tvbW10LCB3ZW5uIFNlaGVyIHNpY2ggbGFuZ3dlaWxlbjoKKGF1cyBEYXRlbnNjaHV0emdydWVuZGVuIHd1cmRlIGRlciBOYW1lIGRlcyBWZXJmYXNzZXJzIGdla3Vlcnp0Li4uKQoKUC4gdGVpbHQgRGlyIG1pdDogUmFtc2VzIGRlciBBZWd5cHRlcmtvZW5pZyBoYXR0ZSBlaW5zdCBkZXMgR2VsZGVzClAuIHRlaWx0IERpciBtaXQ6IHdlbmlnO3NwcmFjaCB6dSBzZWluZXIgVG9jaHRlciBJc2lzLCB3aXIgc3RlaG4gdm9yIGVpbmVyClAuIHRlaWx0IERpciBtaXQ6IEtyaXNpcy4gV2lyIHJhZXVtZW4gdW5zZXJgbiBUZW1wZWwgYXVzIHVuZCBtYWNoZW4gZHJhdXMKUC4gdGVpbHQgRGlyIG1pdDogZWluIEZyZXVkZW5oYXVzLiBHZXNhZ3QgZ2V0YW4gdW5kIFNjaGFyZW53ZWlzZSBnaW5nZW4KUC4gdGVpbHQgRGlyIG1pdDogRnJlaWVyIGF1ZiBkaWUgUmVpc2UuIFNlbGJzdCBkaWUgVHVlcmtlbiBob2NoIHp1IFJvc3MKUC4gdGVpbHQgRGlyIG1pdDogcml0dGVuIGplZGVuIEh1cmVuc2Nob3NzLiBBdWNoIGRpZSBNYWVubmVyIHZvbiBkZW4KUC4gdGVpbHQgRGlyIG1pdDogRmlkc2NoaWluc2VsbiwgbWl0IGRlbiBXaWRlcmhha2VuIGFuIGRlbiBQaW5zZWxuLiBTZWxic3QKUC4gdGVpbHQgRGlyIG1pdDogZGllIEVza2ltb3MsIG1pdCBkZW0gWmFwZmVuIGdhbnogYXVzIEVpcy4gZGllIGxpZWJlbnMKUC4gdGVpbHQgRGlyIG1pdDogaGVpc3MuIFVuZCBkaWUgSXNpcz8gS2VubnQga2VpbmUgS3Jpc2lzLiBPYiBnZWxiZSB3ZWlzc2UKUC4gdGVpbHQgRGlyIG1pdDogc2Nod2FyemUgRWllciwgZGllIElzaXMgcml0dCBub2NoIGplZGVuIEZyZWllci4gV2llIGd1dApQLiB0ZWlsdCBEaXIgbWl0OiBkYXMgUmFtc2VzIG5pZW1hbHMgcmF1c2Jla2FobSBkYXMgSWlzIGRyZWh0ZSB6dSBkZW4KUC4gdGVpbHQgRGlyIG1pdDogR2VsZGVzaGFobi4gRGVuIGRhcyBHZWxkIGRhcyBlaW5zdCB6dXIgS3Jpc2lzIGZ1ZWhydGUsClAuIHRlaWx0IERpciBtaXQ6IGRlciBOaWwgbnVuIGFuIHNpbmVtIEdydW5kZSBzcHVlcnRlLiBVbmQgd2VubiBpc2lzIG5pY2h0ClAuIHRlaWx0IERpciBtaXQ6IGJhbGQgc2Nod2FuZ2VyIHdhcmQsIGRhbm4gcml0dCBzaWUgRnJlaWVyIG5vY2gsIHNjaG9uClAuIHRlaWx0IERpciBtaXQ6IGF1ZmdlYmFocnQuIFsxMzo1MV0KCiAqc2NobXVuemVsKiAgIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc3BydWVjaGUgKEFsYm9pbiwgIDguIEZlYiAxOTk2LCAwMDoxOToyNSk6CnRqYSB3ZWlsIGVzIGhpZXIgbW9kZXJuIGlzdCBTcHJ1ZWNoZSB6dSBwb3N0ZW4sIHZlcm9lZmZlbnRsaWNoIGljaCBoaWVyIGF1Y2gKbWFsIHdhcy4KJ1ByaXNvbnMgYXJlIGJ1aWx0IHdpdGggc3RvbmVzIG9mIGxhdywKYnJvdGhlbHMgd2l0aCBicmlja3Mgb2YgcmVsaWdpb24nCiAgICAgICAgICAgICAgICAgICBXaWxsaWFtIEJsYWtlCgoodW0gbWlzc3ZlcnN0YWVuZG5pc3NlbiB2b3J6dWJldWdlbjogZGVyIFNwcnVjaCBtdXNzIG5pY2h0IHVuYmVkaW5ndCBtZWluZQpNZWludW5nIHdpZWRlcnNwaWVnZWxuKQpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggYmVpbSBQbGF0dGVuY3Jhc2ggKENhdHdlYXpsZSwgIDguIEZlYiAxOTk2LCAxMzoxMTo1MSk6ClBsYXR0ZSBhYmdlc2VtbWVsdCwgbmV1Z2Vib290ZXQsIGZzY2sgdm9uIEhhbmQgZ2VzdGFydGV0OgoKcnluZS5vIGluIC9tdWQvbXVkbGliL3NlY3VyZS9yL3J5bmUubyAoNzU3NzcpIGhhdCBkZWxldGVkL3VudXNlZCBpbm9kZQo3NTc4Ni4gQ2xlYXI/IHllcwoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1bGljaCBiZWltIFBsYXR0ZW5jcmFzaCAoUm9jaHVzLCAgOC4gRmViIDE5OTYsIDE0OjA3OjAyKToKfiMhIHJuPUNhdHdlYXpsZSBydD04MjM3ODE1MTEKfiMhIHRpZD04MjM3ODE1MTEKQ2F0IGhhdCBub2NoIHZlcmdlc3NlbiB6dSBlcndhZWhuZW4sIGRhc3MKYSkgTlVSIERJRVNFUyBFSU5FIEZJTEUga2FwdXR0IHdhciB1bmQgbmljaHRzIHNvbnN0IHVuZApiKSBSeW5lIGRpcmVrdCBkYW5lYmVuIHN0YW5kIHVuZCBkYXMgZ2VzZWhlbiBoYXQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1bGljaCBiZWltIFBsYXR0ZW5jcmFzaCAoQ3VjaHVsbGluLCAgOC4gRmViIDE5OTYsIDIxOjE3OjIxKToKfiMhIHJuPVJvY2h1cyBydD04MjM3ODQ4MjIKfiMhIHRpZD04MjM3ODE1MTEKCgouLi4uCldpZSBoZWlzc3QgRHUgZGVubiA/IHJ5bmUKTmV1ZXIgU3BpZWxlci4KV2FlaGxlIGVpbiBQYXNzd29yZDoKLi4uLgoKKmdyb2VobCogSGF0dGUgamVtYW5kIGVpbmVuIEZvdG8gZGFiZWk/CkN1Y2guLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaW5lIChMaSwgIDkuIEZlYiAxOTk2LCAwODoxNDo0Mik6Cm9rb2sgaWNoIHdlaXNzLCBCbG9uZGluZW53aXR6ZSBzaW5kIG91dCwgYWJlciB3aWUgd2FlcmUgZXMgbWl0IGRpZXNlbT8KCkVpbmUgQmxvbmRpbmUgdW5kIGVpbmUgQnJ1ZW5ldHRlIHNwcmluZ2VuIGdsZWljaHplaXRpZyB2b20gRGFjaCBlaW5lcwpIb2NoaGF1c2VzLgpXZXIga29tbXQgenVlcnN0IHVudGVuIGFuPwoKCgoKCgoKCgoKCgoKCmRpZSBCcnVlbmV0dGUuIGRpZSBCbG9uZGluZSBtdXNzIGVyc3Qgbm9jaCBuYWNoIGRlbSBXZWcgZnJhZ2VuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCbG9uZGluZSAoR3JpbW1ib3JuLCAgOS4gRmViIDE5OTYsIDEzOjIxOjE3KToKfiMhIHJuPUxpIHJ0PTgyMzg1MDA4Mgp+IyEgdGlkPTgyMzg1MDA4MgoKT0ssIExpLCBEdSBoYXN0IGphIGdlZnJhZ3QsIHdpZXMgbWl0IGRpZXNlbSBXaXR6IHNlaToKVXJhbHQsIHZvZWxsaWcgb3V0IG9mIHRpbWUgdW5kIG5pY2h0bWFsIGJlc29uZGVycyBvcmlnaW5lbGwuLi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMTAxIERpbmdlLCBkaWUgbWFuIG5pY2h0IGJlaW0gU2V4IHNhZ2VuIHNvbGx0ZSEgKENhdHdlYXpsZSwgIDkuIEZlYiAxOTk2LCAyMDowMzozMik6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogMTAxIHRoaW5ncyBOT1QgdG8gc2F5IGR1cmluZyBzZXgKCiAxLiBCdXQgZXZlcnlib2R5IGxvb2tzIGZ1bm55IG5ha2VkIQogMi4gWW91IHdva2UgbWUgdXAgZm9yIHRoYXQ/CiAzLiBEaWQgSSBtZW50aW9uIHRoZSB2aWRlbyBjYW1lcmE/CiA0LiBEbyB5b3Ugc21lbGwgc29tZXRoaW5nIGJ1cm5pbmc/CiA1LiAoaW4gYSBqYW5pdG9yJ3MgY2xvc2V0KSBBbmQgdGhleSBzYXkgcm9tYW5jZSBpcyBkZWFkLi4uCiA2LiBUcnkgYnJlYXRoaW5nIHRocm91Z2ggeW91ciBub3NlLgogNy4gQSBsaXR0bGUgcnVnIGJ1cm4gZXZlciBodXJ0IGFueW9uZSEKIDguIElzIHRoYXQgYSBNZWRpYy1BbGVydCBQZW5kYW50PwogOS4gU3dlZXRoZWFydCwgZGlkIHlvdSBsb2NrIHRoZSBiYWNrIGRvb3I/CiAxMC4gQnV0IHdoaXBwZWQgY3JlYW0gbWFrZXMgbWUgYnJlYWsgb3V0LgogMTEuIFBlcnNvbiAxOiBUaGlzIGlzIHlvdXIgZmlyc3QgdGltZS4ucmlnaHQ/CiAgICAgICBQZXJzb24gMjogWWVhaC4uIHRvZGF5CiAxMi4gKGluIHRoZSBObyBUZWxsIE1vdGVsKSBIdXJyeSB1cCEgVGhpcyByb29tIHJlbnRzIGJ5IHRoZSBIb3VyIQogMTMuIENhbiB5b3UgcGxlYXNlIHBhc3MgbWUgdGhlIHJlbW90ZSBjb250cm9sPwogMTQuIERvIHlvdSBhY2NlcHQgVmlzYT8KIDE1LiBaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWgogMTYuIE9uIHNlY29uZCB0aG91Z2h0LCBsZXQncyB0dXJuIG9mZiB0aGUgbGlnaHRzLgogMTcuIEFuZCB0byB0aGluay0gSSB3YXMgcmVhbGx5IHRyeWluZyB0byBwaWNrIHVwIHlvdXIgZnJpZW5kIQogMTguIFNvIG11Y2ggZm9yIG1vdXRoLXRvLW1vdXRoLgogMTkuICh1c2luZyBib2R5IHBhaW50KSBUcnkgbm90IHRvIGxlYXZlIGFueSBzdGFpbnMsIG9rYXk/CiAyMC4gSG9wZSB5b3UncmUgYXMgZ29vZCBsb29raW5nIHdoZW4gSSdtIHNvYmVyLi4uCiAyMS4gKGhvbGRpbmcgYSBiYW5hbmEpIEl0J3MganVzdCBhIGxpdHRsZSB0cmljayBJIGxlYXJuZWQgYXQgdGhlIHpvbyEKIDIyLiBEbyB5b3UgZ2V0IGFueSBwcmVtaXVtIG1vdmllIGNoYW5uZWxzPwogMjMuIFRyeSBub3QgdG8gc21lYXIgbXkgbWFrZS11cCwgd2lsbCB5YSEKIDI0LiAocHJlcGFyaW5nIHRvIHVzZSBwZWFudXQgYnV0dGVyIHNleHVhbGx5KSBCdXQgSSBqdXN0IHN0ZWFtLWNsZWFuZWQgdGhpcwogY291Y2ghCiAyNS4gR290IGFueSBwZW5pY2lsbGluPwogMjYuIEJ1dCBJIGp1c3QgYnJ1c2hlZCBteSB0ZWV0aC4uLgogMjcuIFNtaWxlLCB5b3UncmUgb24gQ2FuZGlkIENhbWVyYSEKIDI4LiBJIHRob3VnaHQgeW91IGhhZCB0aGUga2V5cyB0byB0aGUgaGFuZGN1ZmZzIQogMjkuIEkgd2FudCBhIGJhYnkhCiAzMC4gU28gbXVjaCBmb3IgdGhlIGZ1bGZpbGxtZW50IG9mIHNleHVhbCBmYW50YXNpZXMhCiAzMS4gKGluIGEgbWVuYWdlIGEgdHJvaXMpIFdoeSBhbSBJIGRvaW5nIGFsbCB0aGUgd29yaz8KIDMyLiBNYXliZSB3ZSBzaG91bGQgY2FsbCBEci4gUnV0aC4uLgogMzMuIERpZCB5b3Uga25vdyB0aGUgY2VpbGluZyBuZWVkcyBwYWludGluZz8KIDM0LiBJIHRoaW5rIHlvdSBoYXZlIGl0IG9uIGJhY2t3YXJkcy4KIDM1LiBXaGVuIGlzIHRoaXMgc3VwcG9zZWQgdG8gZmVlbCBnb29kPwogMzYuIFB1dCB0aGF0IGJsZW5kZXIgYmFjayBpbiB0aGUga2l0Y2hlbiB3aGVyZSBpdCBiZWxvbmdzIQogMzcuIFlvdSdyZSBnb29kIGVub3VnaCB0byBkbyB0aGlzIGZvciBhIGxpdmluZyEKIDM4LiBJcyB0aGF0IGJsb29kIG9uIHRoZSBoZWFkYm9hcmQ/CiAzOS4gRGlkIEkgcmVtZW1iZXIgdG8gdGFrZSBteSBwaWxsPwogNDAuIEFyZSB5b3Ugc3VyZSBJIGRvbid0IGtub3cgeW91IGZyb20gc29tZXdoZXJlPwogNDEuIEkgd2lzaCB3ZSBnb3QgdGhlIFBsYXlib3kgY2hhbm5lbC4uLgogNDIuIFRoYXQgbGVhayBiZXR0ZXIgYmUgZnJvbSB0aGUgd2F0ZXJiZWQhCiA0My4gSSB0b2xkIHlvdSBpdCB3b3VsZG4ndCB3b3JrIHdpdGhvdXQgYmF0dGVyaWVzIQogNDQuIEJ1dCBteSBjYXQgYWx3YXlzIHNsZWVwcyBvbiB0aGF0IHBpbGxvdy4uCiA0NS4gRGlkIEkgdGVsbCB5b3UgbXkgQXVudCBNYXJ0aGEgZGllZCBpbiB0aGlzIGJlZD8KIDQ2LiBJZiB5b3UgcXVpdCBzbW9raW5nIHlvdSBtaWdodCBoYXZlIG1vcmUgZW5kdXJhbmNlLi4KIDQ3LiBObywgcmVhbGx5Li4uIEkgZG8gdGhpcyBwYXJ0IGJldHRlciBteXNlbGYhCiA0OC4gSXQncyBuaWNlIGJlaW5nIGluIGJlZCB3aXRoIGEgd29tYW4gSSBkb24ndCBoYXZlIHRvIGluZmxhdGUhCiA0OS4gVGhpcyB3b3VsZCBiZSBtb3JlIGZ1biB3aXRoIGEgZmV3IG1vcmUgcGVvcGxlLi4KIDUwLiBZb3UncmUgYWxtb3N0IGFzIGdvb2QgYXMgbXkgZXghCiA1MS4gRG8geW91IGtub3cgdGhlIGRlZmluaXRpb24gb2Ygc3RhdHV0b3J5IHJhcGU/CiA1Mi4gSXMgdGhhdCB5b3UgSSBzbWVsbCBvciBpcyBpdCB5b3VyIG1hdHRyZXNzIHN0dWZmZWQgd2l0aCByb3R0ZW4KcG90YXRvZXM/CiA1My4gWW91IGxvb2sgeW91bmdlciB0aGFuIHlvdSBmZWVsLgogNTQuIFBlcmhhcHMgeW91J3JlIGp1c3Qgb3V0IG9mIHByYWN0aWNlLgogNTUuIFlvdSBzd2VhdCBtb3JlIHRoYW4gYSBnYWxsb3Bpbmcgc3RhbGxpb24hCiA1Ni4gVGhleSdyZSBub3QgY3JhY2tlciBjcnVtYnMsIGl0J3MganVzdCBhIHJhc2guCiA1Ny4gTm93IEkga25vdyB3aHkgaGUvc2hlIGR1bXBlZCB5b3UuLi4KIDU4LiBEb2VzIHlvdXIgaHVzYmFuZCBvd24gYSBzYXdlZC1vZmYgc2hvdGd1bj8KIDU5LiBZb3UgZ2l2ZSBtZSByZWFzb24gdG8gY29uY2x1ZGUgdGhhdCBmb3JlcGxheSBpcyBvdmVycmF0ZWQuCiA2MC4gV2hhdCB0YW1wb24/CiA2MS4gSGF2ZSB5b3UgZXZlciBjb25zaWRlcmVkIGxpcG9zdWN0aW9uPwogNjIuIEFuZCB0byB0aGluaywgSSBkaWRuJ3QgZXZlbiBoYXZlIHRvIGJ1eSB5b3UgZGlubmVyIQogNjMuIFdoYXQgYXJlIHlvdSBwbGFubmluZyB0byBtYWtlIGZvciBicmVha2Zhc3Q/CiA2NC4gSSBoYXZlIGEgY29uZmVzc2lvbi4uLgogNjUuIEkgd2FzIHNvIGhvcm55IHRvbmlnaHQgSSB3b3VsZCBoYXZlIHRha2VuIGEgZHVjayBob21lIQogNjYuIEFyZSB0aG9zZSByZWFsIG9yIGFtIEkganVzdCBiZWhpbmQgdGhlIHRpbWVzPwogNjcuIFdlcmUgeW91IGJ5IGFueSBjaGFuY2UgcmVwcmVzc2VkIGFzIGEgY2hpbGQ/CiA2OC4gSXMgdGhhdCBhIGhhbmdpbmcgc2N1bHB0dXJlPwogNjkuIFlvdSdsbCBzdGlsIHZvdGUgZm9yIG1lLCB3b24ndCB5b3U/CiA3MC4gRGlkIEkgbWVudGlvbiBteSB0cmFuc3NleHVhbCBvcGVyYXRpb24/CiA3MS4gSSByZWFsbHkgaGF0ZSB3b21lbiB3aG8gYWN0dWFsbHkgdGhpbmsgc2V4IG1lYW5zIHNvbWV0aGluZyEKIDcyLiBEaWQgeW91IGNvbWUgeWV0LCBkZWFyPwogNzMuIEknbGwgdGVsbCB5b3Ugd2hvIEknbSBmYW5hdGFzaXppbmcgYWJvdXQgaWYgeW91IHRlbGwgbWUgd2hvIHlvdSdyZQogZmFudGFzaXppbmcgYWJvdXQuLi4KIDc0LiBBIGdvb2QgcGxhc3RpYyBzdXJnZW9uIGNhbiB0YWtlIGNhcmUgb2YgdGhhdCBpbiBubyB0aW1lIQogNzUuIERvZXMgdGhpcyBjb3VudCBhcyBhIGRhdGU/CiA3Ni4gT3ByYWggV2luZnJleSBoYWQgYSBzaG93IGFib3V0IG1lbiBsaWtlIHlvdSEKIDc3LiBIaWMhIEkgbmVlZCBhbm90aGVyIGJlZXIgZm9yIHRoaXMgcGxlYXNlLgogNzguIEkgdGhpbmsgYml0aW5nIGlzIHJvbWFudGljLSBkb24ndCB5b3U/CiA3OS4gUTogWW91IGNhbiBjb29rLCB0b28gcmlnaHQ/CiBBOiAoV2hhZGRheWEgdGhpbmsgSSdtIGRvaW4nPykKIDgwLiBXaGVuIHdvdWxkIHlvdSBsaWtlIHRvIG1lZXQgbXkgcGFyZW50cz8KIDgxLiBNYW46IE1heWJlIGl0IHdvdWxkIGhlbHAgaWYgSSB0aG91Z2h0IGFib3V0IHNvbWVvbmUgSSByZWFsbHkgbGlrZS4uLgogV29tYW46IFlvdXJzZWxmPwogODIuIEhhdmUgeW91IHNlZW4gIkZhdGFsIEF0dHJhY3Rpb24iPwogODMuIFNvcnJ5IGFib3V0IHRoZSBuYW1lIHRhZ3MsIEknbSBub3QgdmVyeSBnb29kIHdpdGggbmFtZXMuCiA4NC4gRG9uJ3QgbWluZCBtZS4uIEkgYWx3YXlzIGZpbGUgbXkgbmFpbHMgaW4gYmVkLgogODUuIChpbiBhIHBob25lIGJvb3RoKSBEbyB5b3UgbWluZCBpZiBJIG1ha2UgYSBmZXcgcGhvbmUgY2FsbHM/CiA4Ni4gSSBob3BlIEkgZGlkbid0IGZvcmdldCB0byB0dXJuIHRoZSBnYXMgb3ZlbiBvZmYuIERvIHlvdSBoYXZlIGEgbGlnaHQ/CiA4Ny4gRG9uJ3Qgd29ycnksIG15IGRvZydzIHJlYWxseSBmcmllbmRseSBmb3IgYSBEb2Jlcm1hbi4KIDg4LiBTb3JyeSBidXQgSSBkb24ndCBkbyB0b2VzIQogODkuIFlvdSBjb3VsZCBhdCBsZWFzdCBBQ1QgbGlrZSB5b3UncmUgZW5qb3lpbmcgaXQhCiA5MC4gUGV0cm9sZXVtIGplbGx5IG9yIG5vIHBldHJvbGV1bSBqZWxseSwgSSBzYWlkIE5PIQogOTEuIEtlZXAgaXQgZG93biwgbXkgbW90aGVyIGlzIGEgbGlnaHQgc2xlZXBlci4uLgogOTIuIEknbGwgYmV0IHlvdSBkaWRuJ3Qga25vdyBJIHdvcmsgZm9yICJUaGUgRW5xdWlyZXIiLgogOTMuIFNvIHRoYXQncyB3aHkgdGhleSBjYWxsIHlvdSBNUi4gRmxhc2ghCiA5NC4gTXkgb2xkIGdpcmxmcmllbmQgdXNlZCB0byBkbyBpdCBhIExPVCBsb25nZXIhCiA5NS4gSXMgdGhpcyBhIHNpbiB0b28/CiA5Ni4gSSd2ZSBzbGVwdCB3aXRoIG1vcmUgd29tZW4gdGhhbiBXaWx0IENoYW1iZXJsYWluIQogOTcuIEhleSwgd2hlbiBpcyBpdCBnb2luZyB0byBiZSBteSBmcmllbmQncyB0dXJuPwogOTguIExvbmcga2lzc2VzIGNsb2cgbXkgc2ludXNlcy4uLgogOTkuIFBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgSSdtIG9ubHkgZG9pbmcgdGhpcyBmb3IgYSByYWlzZS4uLgogMTAwLiBIb3cgbG9uZyBkbyB5b3UgcGxhbiB0byBiZSAiYWxtb3N0IHRoZXJlIj8KIDEwMS4gWW91IG1lYW4geW91J3JlIE5PVCBteSBibGluZCBkYXRlPwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpnZWZ1bmRlbiB2b246CllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGFzIGxpZWJlIGdlbGQgLi4uIChQYWRkbGVyLCAxMC4gRmViIDE5OTYsIDE3OjQxOjAxKToKU2x5YmFua3ZpaWkgaGF0IGdlcmFkZSBkYXMgTW9yZ2VuR3JhdWVuIHZlcmxhc3Nlbi4KU2x5YmFuayBpc3QgZ2VyYWRlIGlucyBNb3JnZW5HcmF1ZW4gZ2Vrb21tZW4uClNseWJhbmsgaGF0IGdlcmFkZSBkYXMgTW9yZ2VuR3JhdWVuIHZlcmxhc3Nlbi4KU2x5YmFua3h2IGlzdCBnZXJhZGUgaW5zIE1vcmdlbkdyYXVlbiBnZWtvbW1lbi4KU2x5YmFua3h2IGhhdCBnZXJhZGUgZGFzIE1vcmdlbkdyYXVlbiB2ZXJsYXNzZW4uClNseWJhbmt4dmkgaXN0IGdlcmFkZSBpbnMgTW9yZ2VuR3JhdWVuIGdla29tbWVuLgpTbHliYW5reHZpIGhhdCBnZXJhZGUgZGFzIE1vcmdlbkdyYXVlbiB2ZXJsYXNzZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGRhcyBsaWViZSBnZWxkIC4uLiAoQm9pbmcsIDEwLiBGZWIgMTk5NiwgMTg6MDk6MzcpOgp+IyEgcm49UGFkZGxlciBydD04MjM5NzA0NjEKfiMhIHRpZD04MjM5NzA0NjEKV2l0emlnIGZpbmRlIGljaCBkYXMgbmljaHQgLi4uIGVoZXIgaG9obCB1bmQgYXNzb3ppYWwuCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZGFzIGxpZWJlIGdlbGQgLi4uIChTbHliYW5rLCAxMC4gRmViIDE5OTYsIDIyOjM3OjUwKToKfiMhIHJuPUJvaW5nIHJ0PTgyMzk3MjE3Nwp+IyEgdGlkPTgyMzk3MDQ2MQpIdWNoLCBIZXJyIEJvaW5nLCBTaWUgZGlza3JpbWluaWVyZW4gdW5zIEJhbmsydGllcz8gTmEgc293YXMhCkhtbW0uLi4gd2FzIGhhYmVuIHdpciBkZW5uIHZlcmJyb2NoZW4/CkFjaCBzbywgd2lyIGhhYmVuIGRlbiBMYWRlbi1CZXNpdHplcm4genV2aWVsIHZlcmthdWZ0LCB1bmQgamV0enQgZmVobHQKZGVuZW4gZGFzIEdlbGQuCkFoYSwgdW5kIGFuZGVyZSBTcGllbGVyIGtvZW5uZW4gZGVzaGFsYiBqZXR6dCBuaXggbWVociB2ZXJrYXVmZW4gb2RlcgprcmllZ2VuIG5peCBtZWhyIGZ1ZXIgaWhyZSBTYWNoZW4sIHVuZCBndWNrZW4gaW4gZGllIFJvZWhyZS4gVGphLCB3YXMgc2luZApkYXMgZnVlciBhcm1lIFNwaWVsZXIuLi4KQWJlciBlaWdlbnRsaWNoIHNpbmQgZGllc2UgamEgc2VsYmVyIHNjaHVsZCwgc2llIGhhZXR0ZW4gamEgZ2VuYXUgd2llIHdpcgpkaWUgU2FjaGVuIGVpbnNhbW1lbG4ga29lbm5lbiwgZGllIHVlYmVyYWxsIHJ1bWxhZ2VuIHVuZCBhbnNjaGVpbmVuZApuaWVtYW5kIGhhYmVuIHdvbGx0ZS4KVW5kIGRhIGRpZSBMYWRlbmJlc2l0emVyIG5hY2h0cyBzb3dpZXNvIGRhdWVybmQgZmx1ZXNzaWcgd2FyZW4sIHVuZCB6dSB1bnMKc2FndGVuOiAiSGUsIER1LCB3aXIgaGFiZW4gZXR3YXMgR2VsZCB1ZWJlciwgd2lsbHN0ZSB1bnMgbml4IHZlcmthdWZlbj8iLApkYSB3YXJlbiB3aXIgZGFubiBoYWx0IHNvIGZyZXVuZGxpY2ggdW5kIGhhYmVuIGRhcyBkYW5uIGdlbWFjaHQuClRqYSwgSGVyciBCb2luZywgdW5kIGpldHp0IHNpdHplbiB3aXIgZGEsIHVuZCB3ZXJkZW4gdm9uIElobmVuIGRlc3dlZ2VuCmFscyBhc3NvemlhbCB1bmQgaG9obCBiZXplaWNobmV0LgpXbyB3aXIgZG9jaCBpbW1lciBhbGxlbiwgZGllIGdlcmFkZSBHZWxkIGJyYXVjaGVuLCBldHdhcyBnZXNwZW5kZXQgaGFiZW4uClZvciBhbGxlbSBhdWNoIGRlbSBsaWViZW4gUm9iaW4uClRqYSwgd2FzIG1hY2hlbiB3aXIgZGVubiBudW4/Cldhcywgd2lyIHNvbGxlbiB1bnNlciBnYW56ZXMgR2VsZCBzcGVuZGVuLCBkYXMgd3VlcmRlIHVucyBuaWNodD8KT2ssIG9rLCBIZXJyIEJvaW5nLCBzY2hvbiBndXQsIHdpciBtYWNoZW4gZGFzLCBiZXZvciBTaWUgdW5zIGxvZXNjaGVuLgoKT2ssIGFsc28sIHdlciBqZXR6dCBtZWludCwgZXIgaGFiIHp1IHdlbmlnIEdlbGQsIGRlciBzb2xsIGVzIHNpY2ggdm9uCnVucyBob2xlbi4KV2llPwpJbmRlbSBtYW4gZWluZW4gZGVyIHVudGVuIGdlbmFubnRlbiBTcGllbGVyIGVpbmxvZ2d0LCBhbHMgUGFzc3dvcnQKImNpdHliYW5rIiBhbmdpYnQsIHVuZCB2b24gZGllc2VtIFNwaWVsZXIgc2ljaCBzb3ZpZWwgR2VsZCBnZWJlbiBsYWVzc3QsCndpZSBlciBoYWJlbiBtb2VjaHRlLgoKVmllbCBTcGFzcyB3dWVuc2NoZW4gZXVjaAoKU2x5YmFuaywgU2x5YmFua2lpLCBTbHliYW5raWlpLCBTbHliYW5raXYsIFNseWJhbmt2LCBTbHliYW5rdmksIFNseWJhbmt2aWksClNseWJhbmt2aWlpLCBTbHliYW5raXgsIFNseWJhbmt4LCBTbHliYW5reGksIFNseWJhbmt4aWksIFNseWJhbmt4aWlpLApzbHliYW5reGl2LCBTbHliYW5reHYsIFNseWJhbmt4dmksIFNseWJhbmt4dmlpLCBTYmFua3h2aWlpLCBTbHliYW5reGl4LApTbHliYW5reHgsIFNseWJhbmt4eGksIFNseWJhbmt4eGlpLCBTYmFua3h4aWlpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogZGFzIGxpZWJlIGdlbGQgLi4uIChTbHliYW5rLCAxMi4gRmViIDE5OTYsIDE5OjIwOjM5KToKfiMhIHJuPVNseWJhbmsgcnQ9ODIzOTg4MjcwCn4jISB0aWQ9ODIzOTcwNDYxCkljaCBiaW4gendhciBuaWNodCBTbHliYW5rLCBzb25kZXJuIExhcmllbCAtIGFiZXIgYW5zY2hlaW5lbmQga29ubnRlIGRhCmplbWFuZCBuaWNodCBkcnVtcnVtLCBlaW5tYWwgc2VpbmVuIFpvcm4gYXVzenVsYXNzZW4gLSBFaW4gYm9lc2VyIEJvaW5nIG1pdApldHdhcyBCYXJtaGVyemlna2VpdCAgKE9jaCwgZWluZW4gbGFzc2VuIHdpciBpaG0gbm9jaC4uLikgaGF0IHdvaGwgYWxsZQpTbHliYW5rcyBiaXMgYXVmIGRhcyBPcmlnaW5hbApnZWxvZXNjaHQuLi4gU2VsdHNhbSwgd2lldmllbCBIdW1vciBtYW5jaGUgTWVuc2NoZW4gZG9jaCBoYWJlbi4uLgoKLSBMYXJpZWwgZGVyIENoYW9zLUthZW1wZmVyLgpIYXQgS0VJTkUgQmFuazJ0aWVzLi4uCihNdXNzIG5pY2h0IEJvaW5nIGdld2VzZW4gc2Vpbi4uLiBXYXIgbmljaHQgcGVyc29lbmxpY2ggZ2VtZWludC4uLiBBZWguLi4gV2FzCnR1c3QgZHUgZGE/IE5laW4sIG5pY2h0IGRlc3RydWN0ISBBQUFBUkdILi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogZGFzIGxpZWJlIGdlbGQgLi4uIChNdXBmZWwsIDEzLiBGZWIgMTk5NiwgMDA6NTg6MzIpOgp+IyEgcm49U2x5YmFuayBydD04MjM5ODgyNzAKfiMhIHRpZD04MjM5NzA0NjEKKnBydXV1dXV1dXV1c3QqIGxvcyBCb2luZyEgRWlubG9nZ2VuIHVuZCBBYmhlYmVuIDotKSB1bmQgZGFubiBpbiBzbyBuZSAnQmFuaycKKGR1IHdlaXNzdCBzY2hvbiB3YXMgaWNoIG1laW5lIDotKSBlaW56YWhsZW4uLi4KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHYXN0MSBhdWYgd2FuZGVyc2NoYWZ0IChNb3Jnb3RoLCAxMy4gRmViIDE5OTYsIDA3OjQ0OjU1KToKdGphLi4uYWxzIGdhc3QxIGhhdCBtYW4gc2Nob24gc2VpbmUgcHJvYmxlbWUuLi4udm9yIGFsbGVtIHdlbm4gbWFuIHNpY2gKdmVybGFldWZ0LiBuYWphLi4ud2FzIHNvbGxzLCBkYW5uIHdpcmQgaGFsdCBtYWwgZWJlbiBuZSBxdWVzdCBnZWxvZXN0Ogo+RGllIFNoYWtpZXMgcnVmZW46IEhvY2ggbGViZSBHYXN0MSEgV2lyIGhhYmVuIHVuc2VyIEVyZGJlYmVuIHdpZWRlci4KdG9sbGUgc2FjaGUuLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKb2xsZSBrYW1lbGxlIChNb3Jnb3RoLCAxMy4gRmViIDE5OTYsIDEyOjA4OjQ1KToKZ2VmdW5kZW4gaW4gL25ld3MvT0xELmFsbGdlbWVpbmVzClJlOiBOdXIgbmUgZHVtbWUgRnJhZ2UuLi4gKFJvY2h1cywgMjcuIE9rdCAxOTkzLCAxNTozNTo1Nyk6ClNlaGVyIHNpbmQgU3BpZWxlciwgZGllIE1hZ2llciB3ZXJkZW4ga29lbm50ZW4sCmFiZXIgbGllYmVyIHdlaXRlcnNwaWVsZW4gd29sbGVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBkYXMgbGllYmUgZ2VsZCAuLi4gKEJvaW5nLCAxMy4gRmViIDE5OTYsIDE0OjMxOjQyKToKfiMhIHJuPVNseWJhbmsgcnQ9ODI0MTQ5MjM5Cn4jISB0aWQ9ODIzOTcwNDYxCkRhcyBpc3QgZWluZSBVbnRlcnN0ZWxsdW5nIC4uLiBpY2ggaGFiZSBrZWluZW4gZWluemlnZW4gQmFua3p3ZWl0aWUKZ2Vsb2VzY2h0LCB2b24gd2VtIGF1Y2ggaW1tZXIuIEljaCBoYWIgZWluemlnIHVuZCBhbGxlaW4gbWVpbmUKKHBlcnNvZW5saWNoZSkgTWVpbnVuZyB1ZWJlciBCYW5rendlaXRpZXMgenVtIEF1c2RydWNrIGdlYnJhY2h0LgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBkYXMgbGllYmUgZ2VsZCAuLi4gKFNseWZveCwgMTMuIEZlYiAxOTk2LCAxNToxMDozNSk6Cn4jISBybj1Cb2luZyBydD04MjQyMTgzMDIKfiMhIHRpZD04MjM5NzA0NjEKRGllIEJhbmsydGllcyBoYWIgaWNoIHNlbGJlciBnZWxvZXNjaHQsIHdlaWwgdmllbGUgZGFtaXQgQmxvZWRzaW5uIGdlbWFjaHQKaGF0dGVuLiBJY2ggaGF0dGUgYWxsZXMgR2VsZCBpbiBkZXIgR2lsZGUgYWJnZWxlZ3QgdW5kIHJ1bWdlcnVmZW4sIGRhc3MKd2VyIGFsZXMgR2VsZCBoYWJlbiB3aWxsLCBpbiBkaWUgR2lsZGUga29tbWVuIHNvbGwuCgpJY2ggaGFldHRldCBzZWhlbiBzb2xsZW4gd2llIHNjaG5lbGwgZGFzIEdlbGQgKGNhLiA0MzAwMDAgTXVlbnplbikgd2VnIHdhci4KOykKCiAgICBTbHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IGRhcyBsaWViZSBnZWxkIC4uLiAoTGFyaWVsLCAxMy4gRmViIDE5OTYsIDIwOjIxOjI3KToKfiMhIHJuPVNseWZveCBydD04MjQyMjA2MzUKfiMhIHRpZD04MjM5NzA0NjEKU29ycnksIEJvaW5nLCB3ZW5uJ3MgZGlyIG5haGUgZ2VnYW5nZW4gaXN0IC0gd2FyIG5pY2h0IHNvIGdlbWVpbnQuLi4KU2NoYWRlLCBkYXNzIGljaCB6dSBkZW0gWmVpdHB1bmt0IG5pY2h0IGltIE11ZCB3YXIsIFNseSEKCi1MYXJpZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkphamEsIGRhcyBNaWxpdGFlci4uLiAoWWVuZGksIDE0LiBGZWIgMTk5NiwgMTM6MTM6MDQpOgoKCkFjdHVhbCByYWRpbyBjb252ZXJzYXRpb24gcmVsZWFzZWQgYnkgdGhlIENoaWVmIG9mIE5hdmFsIE9wZXJhdGlvbnMsCk9jdCAxMCwgMTk5NS4KVm9pY2UjMTogUGxlYXNlIGRpdmVydCB5b3VyIGNvdXJzZSAxNSBkZWdyZWVzIHRvIHRoZSBOb3J0aCB0byBhdm9pZCBhCiAgICAgICAgY29sbGlzaW9uLgpWb2ljZSMyOiBSZWNvbW1lbmQgeW91IGRpdmVydCBZb3VyIGNvdXJzZSAxNSBkZWdyZWVzIHRvIFNvdXRoIHRvIGF2b2lkIGEKY29sbGlzaW9uLgpWb2ljZSMxOiBUaGlzIGlzIGEgVVMgTmF2eSBzaGlwLiBJIHNheSBhZ2FpbiwgZGl2ZXJ0IHlvdXIgY291cnNlLgpWb2ljZSMyOiBOby4gSSBzYXkgYWdhaW4sIHlvdSBkaXZlcnQgWU9VUiBjb3Vyc2UuClZvaWNlIzE6IFRISVMgSVMgVEhFIEFJUkNSQUZUIENBUlJJRVIgRU5URVJQUklTRSwgQSBXQVJTSElQIE9GIFRIRSBVUyBOQVZZLgpESVZFUlQgWU9VUiBDT1VSU0UgTk9XIQpWb2ljZSAjMjogVGhpcyBpcyBhIGxpZ2h0aG91c2UuIFlvdXIgY2FsbC4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3J1ZnRpLVdpdHplIDopIChMYWlsYSwgMTUuIEZlYiAxOTk2LCAxNDo1NTozOCk6CkhpZXIgZWluIHBhYXIgbWVpbmVyIGxpZWJsaW5ncy1HcnVmdGktV2l0emU6CgpXaWUgYmVrb21tdCBtYW4gZWluZW4gR3J1ZnRpIHZvbSBCYXVtPwpNYW4gc2NobmVpZGV0IGRhcyBTZWlsIGR1cmNoICEKCldpZXZpZWxlIEdydWZ0aXMgYnJhdWNodCBtYW4sIHVtIGVpbmUga2FwdXR0ZSBHbHVlaGJpcm5lIGF1c3p1d2VjaHNlbG4/ClNlY2hzISBFaW5lciBzY2hyYXVidCBkaWUgbmV1ZSBCaXJuZSAncmVpbiwgZGllCiBhbmRlcmVuIHNjaHJlaWVuICJNQUNIIERJRSBGVU5aRUwgQVVTISIKCkxhZXVmdCBlaW4gR3J1ZnRpIGR1cmNoIGRpZSBTdGFkdCBtaXQgZWluZXIgUmF0dGUgYXVmIGRlciBTY2h1bHRlci4KRWluZSBhZWx0ZXJlIERhbWUgYmxlaWJ0IHN0ZWhlbiB1bmQgRnJhZ3Q6CiJXaWUga2FubnN0IER1IG51ciBtaXQgZWluZXIgc28gaGFlc3NsaWNoZW4gS3JlYXR1ciBkdXJjaCBkaWUgU3RhZHQgZ2VoZW4hPyIKInVpaWlrLCB1aWlpayIgYW50d29ydGV0IGRpZSBSYXR0ZS4KClp3ZWkgR3J1ZnRpcyB1bnRlcmhhbHRlbiBzaWNoOgoiV2FyIGRhcyBydWhpZ2UgTWFlZGNoZW4gbGV0enRlIE5hY2h0IGVpZ2VudGxpY2ggRGVpbmUgRnJldW5kaW4/IgoiTmVlLCBpY2ggYmluIG5la3JvcGhpbC4uLiIKCkdydWZ0aXMgc3RlcmJlbiBuaWNodCwgc2llIG5laG1lbiBudXIgd2VuaWdlciBNYWtldXAhCgpWaWVsIFNwYXNzIQoKTGFpbGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHcnVmdGktV2l0emUgOikgKEphc3BlciwgMTYuIEZlYiAxOTk2LCAxMjoyMjoxNSk6Cn4jISBybj1MYWlsYSBydD04MjQzOTI1MzgKfiMhIHRpZD04MjQzOTI1MzgKb2hqZSwgd2VubiBzY2hydW1wZmkgZGFzIGxpZXN0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdydWZ0aS1XaXR6ZSA6KSAoTGFpbGEsIDE2LiBGZWIgMTk5NiwgMTI6MzM6NTcpOgp+IyEgcm49SmFzcGVyIHJ0PTgyNDQ2OTczNQp+IyEgdGlkPTgyNDM5MjUzOApJY2ggZ2xhdWJlIFNjaHJ1bXBmaSBzb2xsdGUgc2ljaCBtYWwgYmVpIG1pciBtZWxkZW4KTkFDSERFTSBlciBlcyBnZWxlc2VuIGhhdCA6KQoKT0ssIE9LLCB3YXIga2VpbiBXaXR6LCBhYmVyIFNwYXNzIGlzdCB3ZW5uIG1hbiB0cm90emRlbSBsYWNodCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEdydWZ0aS1XaXR6ZSA6KSAoTW9yZ290aCwgMTYuIEZlYiAxOTk2LCAxMjozNToyNCk6Cn4jISBybj1MYWlsYSBydD04MjQ0NzA0MzcKfiMhIHRpZD04MjQzOTI1MzgKRVIgPz8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHcnVmdGktV2l0emUgOikgKExhaWxhLCAxNi4gRmViIDE5OTYsIDEyOjM3OjM4KToKfiMhIHJuPU1vcmdvdGggcnQ9ODI0NDcwNTI0Cn4jISB0aWQ9ODI0MzkyNTM4Ck9ERVIgQVVDSCBTSUUhISEhIQpGUkVJSEVJVCBGVUVSIERJRSBHRVNDSExFQ0hUU0xPU0VOIEFSVElLRUwhISEKOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEdydWZ0aS1XaXR6ZSA6KSAoSmFzcGVyLCAxNi4gRmViIDE5OTYsIDEyOjM5OjEzKToKfiMhIHJuPUxhaWxhIHJ0PTgyNDQ3MDY1OAp+IyEgdGlkPTgyNDM5MjUzOAoKaWNoIGdsYXViIGVzIHNpZWh0IHNjaGxlY2h0IGZ1ZXIgZGljaCBhdXMgbGFpbGEgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEdydWZ0aS1XaXR6ZSA6KSAoTGFpbGEsIDE2LiBGZWIgMTk5NiwgMTI6NDA6NTQpOgp+IyEgcm49SmFzcGVyIHJ0PTgyNDQ3MDc1Mwp+IyEgdGlkPTgyNDM5MjUzOApsYWlsYSBzY2huYXBwdCBzaWNoIGlocmUgUmF0dGUgdW5kIHZlcmtyaWVjaHQgc2ljaCBpbiBpaHJlbiBTYXJnLApzY2hsaWVzc3QgYWxsZXMgYWIgdW5kIHdhcnRldCBiaXMgZGVyIEhleGVuc3R1cm0gdm9yYmVpIGlzdCEKOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdydWZ0aS1XaXR6ZSA6KSAoU2NocnVtcGZpLCAxNy4gRmViIDE5OTYsIDE0OjQxOjEzKToKfiMhIHJuPUphc3BlciBydD04MjQ0Njk3MzUKfiMhIHRpZD04MjQzOTI1MzgKKmdyaWlpaWlpaWlpaWlpaWlucyogRGVyIGVyc3RlIHdhciBndXV1dXV1dXV1dXV1dXV1dXV0ISA6LSkKClNjaHJ1bXBmaSByYXVjaHQga2VpbmUgTHVja3kgU3RyaWtlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHcnVmdGktV2l0emUgOikgKFNjaHJ1bXBmaSwgMTcuIEZlYiAxOTk2LCAxNTowMjowOCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTgyNDQ3MDUyNAp+IyEgdGlkPTgyNDM5MjUzOAoqZ3JtcGYqIEljaCBiaW4gZWluRSBTSUUhCkRJRSBTY2hydW1wZmdlcm1hbmluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBHcnVmdGktV2l0emUgOikgKFNjaHJ1bXBmaSwgMTcuIEZlYiAxOTk2LCAxNTowOTozNCk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODI0NTY0NDczCn4jISB0aWQ9ODI0MzkyNTM4CkljaCBzb2xsdGUgdmllbGxlaWNodCBlcmtsYWVyZW4sIHdhcnVtIGljaCBrZWluZSBMdWNreSBTdHJpa2UgcmF1Y2hlLi4uIDotKQoKRHUgc3RlaHN0IGluIElubnNicnVjayB2b3IgZGVyIE9seW1waWFoYWxsZS4gSW4ga3VlcnplIHdlcmRlbiBoaWVyIFRoZSBDdXJlCmF1ZnRyZXRlbi4gVmllbGUgTGV1dGUgc3RlaGVuIHZvciBkZXIgSGFsbGUgdW5kIHdhcnRlbi4KRXMgZ2lidCBlaW5lbiBzaWNodGJhcmVuIEF1c2dhbmc6IG5vcmRlbgp1bnQgaGFsbGUKRGllIEhhbGxlIGlzdCBzY2hvbiB6aWVtbGljaCB2b2xsLiBXaXJkIGVuZyB3ZXJkZW4uCnVudCBsZXV0ZQpTY2h3YXJ6LCBzY2h3YXJ6LCB3byBEdSBhdWNoIGhpbnNpZWhzdCwgZXMgd2ltbWVsdCBoaWVyIHZvbiBTY2h3YXJ6ZW4uCnVudCBzY2h3YXJ6ZQpJbiBkaWVzZW0gRmFsbGUgc2luZCBlcyBuaWNodCBMZXV0ZSBtaXQgZHVua2xlciBIYXV0ZmFyYmUsIHNvbmRlcm4gTGV1dGUgbWl0CndlaXNzZW4gR2VzaWNodGVybiB1bmQgc2Nod2FyemVtIEdld2FuZGUuIEF1Y2ggR3J1ZnRpZXMgZ2VuYW5udC4KdW50IGdydWZ0aWVzCkFuZGFlY2h0aWcsIGluIHNjaHdhcnplbiBHZXdhZW5kZXJuIGdlaHVlbGx0LCBzY2hyZWl0ZW4gc2llIGF1ZiBkZW0gUGxhdHogdm9yCmRlciBIYWxsZSB1bWhlci4gTWFuY2hlIHNpdHplbiBhdWNoIHVuZCBkZW5rZW4gdWViZXIgZGVuIFRvZCBuYWNoLiBLbGVpbmUKR3J1ZnRpZW1hZWRlbHMgeml0dGVybiB2b3IgQXVmcmVndW5nIHdlaWwgc2llIGluIEt1ZXJ6ZSBSb2JlcnQgU21pdGggTGl2ZQpzZWhlbiBkdWVyZmVuLgpBbGxlcmRpbmdzIHdlcmRlbiBzaWUgaWhuIG5pY2h0IHNlaGVuLCB3ZWlsIHNpZSB2aWVsIHp1IGtsZWluIHNpbmQgdW5kIG5pY2h0CnVlYmVyIGRpZSBIYWFycHJhY2h0ZW4gaGlud2Vnc2VoZW4ga29lbm5lbi4KdW50IHRvZApEZXIgVG9kIGlzdCBlaW4gRGFuZHkgYXVmIG5lbSBQZmVyZC4uLi5hZWggZmFsc2NoZXMgS29uemVydC4KRWluICdub3JtYWxlcycgTWFlZGNoZW4ga29tbXQgYW4uCnVudCBtYWVkY2hlbgpFaW4gZ2FueiBub3JtYWxlcywgZnJvZWhsaWNoZXMgTWFlZGNoZW4gbWl0IHJvdGVuISBIYWFyZW4gdW5kIGJ1bnRlbSEgR2V3YW5kLgpEYXMgTWFlZGNoZW4gZnJhZ3Q6IEhhdCBqZW1hbmQgZWluZSBaaWdhcmV0dGUgZnVlciBtaWNoPwpFaW4gR3J1ZnRpZSBrcmFtdCBpbiBzZWluZXIgVGFzY2hlIGhlcnVtIHVuZCBnaWJ0IGRlbSBNYWVkY2hlbiBlaW5lIEx1Y2t5ClN0cmlrZQpEYXMgTWFlZGNoZW4gbXVzdGVydCBkaWUgWmlnYXJldHRlIHVuZ2xhZXViaWcuCkRhcyBNYWVkY2hlbiBmcmFndDogRWluIEdydWZ0aWUgZGVyIEx1Y2t5IFN0cmlrZSByYXVjaHQ/PwpEZXIgR3J1ZnRpZSBzYWd0OiBKYSwgd2FydW0gZGVubiBuaWNodD8KRGFzIE1hZWRjaGVuIHNhZ3Q6IEx1Y2t5IGhlaXNzdCBkb2NoIGdsdWVja2xpY2ghClNjaHJ1bXBmaSBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR3J1ZnRpLVdpdHplIDopIChDcmVhdGl2ZSwgMTguIEZlYiAxOTk2LCAxNzozODozMCk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODI0NTY2MTc0Cn4jISB0aWQ9ODI0MzkyNTM4CipwcnVzdCogKGh1cHBzLCBkYXMgaXMgRGVpbiBQYXJ0LCBTY2hydW1wZmksICpibHVzaCopCi1DcmVhLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFuZ2V3ZWlsZSAoQXJ0eSwgMTguIEZlYiAxOTk2LCAxOTozNDo1MSk6CldlaWwgbWlyIGdlcmFkZSBzb29vb29vIGxhbmd3ZWlsaWcgaXN0LCBmYWVsbHQgbWlyIGRvY2ggZ2xhdHQgd2llZGVyIGVpbiBXaXR6CmRhenUgZWluOgpTaXR6ZW4gZWluIEJhZXIgdW5kIGVpbiBGdWNocyB6dXNhbW1lbi4uLi4KQmFlcjogaXN0IG1pciBsYWFhYWFhYW5nd2VlZWVpaWxpaWlnIDooCkZ1Y2hzOiB1dXV1dWhoaCwgaXN0IGRhcyBsYWFhYWFuZ3dlaWxpZy4uLgpCYWVyOiB3ZWlzc3QgZHUgd2FzLCBrb21tLCBsYXNzIHVucyBkZW4gaGFzZW4gdmVycHJ1ZWdlbG4gZ2VoZW4hCkZ1Y2hzOiBvaywgYWJlciBkYW1pdCBkYXMgbmljaHQgWlUgdW5mYWlyIHdpcmQsIG1hY2hlbiB3aXIgZXMgc286CkZ1Y2hzOiB3ZW5uIGRlciBIYXNlIGVpbmUgTXVldHplIGF1ZmhhdCwgbGFzc2VuIHdpciBpaG4gaW4gUnVoZSwgd2VubiBuaWNodApGdWNoczogdmVyaGF1ZW4gd2lyIGlobgpCYWVyOiBvawoKQmFlciB1bmQgRnVjaHMgemllaGVuIGFsc28gbG9zIHp1bSBIYXNlbiB1bmQgd2llIGthbm4gZXMgYXVjaCBhbmRlcnMgc2VpbiBoYXQKZGllc2VyIG5hdHVlcmxpY2ggS0VJTkUgTXVldHplIGF1ZiB1bmQgd2lyZCB2b24gZGVuIGJlaWRlbiBmdWVyY2h0ZXJsaWNoCnZlcnBydWVnZWx0LgoKLi4uLkVpbmlnZSBaZWl0IHNwYWV0ZXIuLi4uLi4KCkJhZXIgdW5kIEZ1Y2hzIHNpdHplbiB3aWVkZXIgenVzYW1tZW4uLi4KQmFlcjogYm9vb2hoaCBpc3QgZGFzIGxhYWFhYWFuZ3dlaWxpZyA6KApGdWNoczogb2NjaCBpc3QgZGFzIGxhYWFuZ3dlaWxpZyBoaWVyIDooCkJhZXI6IEhleSEgbGFzcyB1bnMgZG9jaCB3aWVkZXJtYWwgZGVuIEhhc2VuIHZlcmtsb3BwZW4hCkZ1Y2hzOiBvayB1bmQgZGllc21hbCBtYWNoZW4gd2lyIGVzIHNvLCB3aXIgc2FnZW4gZXIgc29sbCBaaWdhcmV0dGVuIGhvbGVuLApGdWNoczogaG9sdCBlciB3ZWxjaGUgTUlUIEZpbHRlciB2ZXJoYXVlbiB3aXIgaWhuLCB3ZW5uIE9ITkUgRmlsdGVyLApGdWNoczogbGFzc2VuIHdpciBpaG4gaW4gUnVoZQpCYWVyOiBvawoKRGVyIEZ1Y2hzIHVuZCBkZXIgQmFlciB6aWVoZW4gYWxzbyBsb3MgenVtIEhhc2VuIHVuZCBkZXIgeml0dGVydCBzY2hvbiBnYW56CmRvbGwgYWxzIGVyIGRpZSBiZWlkZW4ga29tbWVuIHNpZWh0LCBzY2hsaWVzc2xpY2ggaGF0IGVyIHVlYmVyYWxsIG5vY2gKUGZsYXN0ZXIgdm9uIGRlciBsZXR6dGVuIEJlZ2VnbnVuZy4uLgpGdWNoczogSEFTRSEgRHUgaG9sc3QgdW5zIGpldHp0IHNvZm9ydCBlaW4gUGFlY2tjaGVuIFppZ2FyZXR0ZW4hCkRlciBIYXNlIHVlYmVybGVndCAod2lsbCBqYSBhdWNoIG5peCBmYWxzY2ggbWFjaGVuKSB1bmQgcmVhZ2llcnQ6Ckhhc2U6IE1pdCBvZGVyIE9obmUgRmlsdGVyPz8/PwoKRGFyYXVmIGRlciBCYWVyIHp1bSBGdWNoczogSGV5IGd1Y2sgbWFsLCBkZXIgaGF0IGphIGdhciBrZWluZSBNdWV0emUgYXVmISEKLi4uLi4KCkFSVFkgKGdyaW5zZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR3J1ZnRpLVdpdHplIDopIChXdXJ6ZWwsIDE5LiBGZWIgMTk5NiwgMjA6MDc6MDEpOgp+IyEgcm49U2NocnVtcGZpIHJ0PTgyNDU2NjE3NAp+IyEgdGlkPTgyNDM5MjUzOAplbmRsaWNoIG1hbCBlaW4gZ3V0ZXIuLi4KCncuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIGVyc3RlLiAoQ3JlYXRpdmUsIDIwLiBGZWIgMTk5NiwgMTc6NTA6MDQpOgoKRGVyIFRlcHBpY2hoYWVuZGxlciB0cml0dCB2b3Igc2VpbiBHZXNjaGFlZnQgdW5kIGJldXRlbHQgZWluZW4gVGVwcGljaCBhdXMuCktvbW10IGVpbmVyIGhpbnp1OiAnS2FubiBpY2ggaGVsZmVuPyBTcHJpbmd0IGVyIElobmVuIG5pY2h0IGFuPycKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIHp3ZWl0ZS4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE3OjUyOjExKToKCkVpbiBHZW5lcmFsIHNjaGF1dCBpbiBXaWVuIGF1cyBkZW0gRmVuc3RlciBzZWluZXMgQnVlcm9zIHVuZCBiZW9iYWNodGV0IGVpbmVuCkFyYmVpdGVyIGRlciBCdW5kZXNnZWJhZXVkZXZlcndhbHR1bmcuIERhIHRyaXR0IGVpbiBVbnRlcm9mZml6aWVyIGlucyBaaW1tZXIuCidLYW1lcmFkJywgc2FndCBkZXIgR2VuZXJhbCwgJ21pY2ggd3VuZGVydCBlcyBuaWNodCwgZGFzcyBkaWVzZXIgU3RhYXQgenUtCmdydW5kZSBnZWh0LiBEZXIgTWFubiBkYSB0dXQgc2VpdCBkcmVpIFN0dW5kZW4gYWJzb2x1dCBuaWNodHMuIEljaCBoYWJlIGlobQpkaWUgZ2FuemUgWmVpdCB6dWdlc2VoZW4uJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgMy4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE3OjUzOjM5KToKCldvbGZpIGlzdCBiZWltIFNjaGxpdHRzY2h1aGxhdWZlbiBpbiBkZW4gQmFnZ2Vyc2VlIGVpbmdlYnJvY2hlbiB1bmQgdmVyLQpzdWNodCwgc2ljaCBhdXMgZGVtIEVpc2xvY2ggenUgYmVmcmVpZW4uIEtvbW10IGlobSBzZWluIEZyZXVuZCB6dSBIaWxmZToKJ0Jpc3QgRHUgZWluZ2Vicm9jaGVuPycgLSAnQWJlciBuZWluJywgc2FndCBXb2xmaSBnZW5lcnZ0LCAnRGVyIFdpbnRlciBoYXQKbWljaCBiZWltIEJhZGVuIHVlYmVycmFzY2h0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIDQuIChDcmVhdGl2ZSwgMjAuIEZlYiAxOTk2LCAxNzo1Njo1OCk6CgpEZXIganVuZ2UgUGZhcnJlciBkYXJmIHp1bSBlcnN0ZW4gbWFsIHByZWRpZ2VuLiBWb3IgZGVyIE1lc3NlIGlzdCBlciBuZXJ2b2VzCnVuZCB0cmlua3Qgc2ljaCBlaW4gd2VuaWcgTXV0IGFuLiBTY2hsaWVzc2xpY2ggZ2VsaW5ndCBpaG0gZWluZSBzY2h3dW5ndm9sbGUKUmVkZS4gV2llZGVyIHp1IEhhdXNlLCBmcmFndCBlciBzZWluZSBLb2VjaGluOiAnTmEsIHdhciBkaWUgUHJlZGlndCBzY2hvZW4/JwpEaWUgYW50d29ydGV0OiAnU2VociBzY2hvZW4sIEhlcnIgUGZhcnJlci4gTnVyIGF1ZiBkcmVpIERpbmdlIG11ZXNzZW4gU2llIGluClp1a3VuZnQgYWNodGdlYmVuOiBEaWUgSG9jaHplaXQgd2FyIG5pY2h0IGluIEthbmFkYSwgc29uZGVybiBpbiBLYW5hYW4uCkxvdHMgV2VpYiBpc3QgbmljaHQgenUgZWluZXIgU2FsenN0YW5nZSwgc29uZGVybiB6dSBlaW5lciBTYWx6c2FldWxlIGVyLQpzdGFycnQsIHVuZCBhbSBFbmRlIGhlaXNzdCBlcyBBbWVuIC0gdW5kIG5pY2h0IFByb3N0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIDUuIChDcmVhdGl2ZSwgMjAuIEZlYiAxOTk2LCAxNzo1ODo0Nyk6CgonSWNoIGtvbW1lIGdyYWQgdm9tIEhlbGxzZWhlci4nIC0gJ1VuZCwgd2llIHdhcnM/JyAtICdBY2gsIGFsbGVzIEJldHJ1ZyEgSWNoCmtsb3BmdGUsIHVuZCBlciBmcmFndGU6IFdlciBpc3QgZGE/JwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgNi4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjA1OjU0KToKClJ1ZGkgbXVzcyB6dXIgU3RyYWZlIDEwMG1hbCBzY2hyZWliZW46ICdJY2ggZGFyZiBkZW4gTGVocmVyIG5pY2h0IGR1emVuLicgRXIKc2NocmVpYnQgZXMgMjAwbWFsLiAnV2FydW0gZGVubiBkYXM/JyBmcmFndCBkZXIgTGVocmVyLiBSdWRpOiAnV2VpbCBpY2ggRGlyCmVpbmUgRnJldWRlIG1hY2hlbiB3b2xsdGUuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgNy4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjExOjI2KToKCkRlciBQcm9maWJveGVyIGxlaWRldCB1bnRlciBTY2hsYWZsb3NpZ2tlaXQuIFJhZXQgaWhtIGRlciBBcnp0OiAnWmFlaGxlbiBTaWUKZWluZmFjaCB2b24gZWlucyBiaXMgdGF1c2VuZC4nIC0gJ0RhcyBnZWh0IG5pY2h0JywgbWVpbnQgZGVyIEJveGVyLCAnQmVpCmFjaHQgc3RlaGUgaWNoIGltbWVyIHdpZWRlciBhdWYuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgOC4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjEzOjIwKToKCldhcyBzYWd0IGVpbiBLYW5uaWJhbGUsIHdlbm4gZXIgenVtIEZhbWlsaWVuZmVzdCBlaW5nZWxhZGVuIHdpcmQ/CgoKTmVpbiwgbWVpbmUgU2lwcGUgZXNzIGljaCBuaWNodCEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIDkuIChDcmVhdGl2ZSwgMjAuIEZlYiAxOTk2LCAxODoxNToxNSk6CgpFaW5lIEp1bmdzY2hhdXNwaWVsZXJpbiB6dSBhbmRlcmVuOiAnSWNoIHdhciB6dSBQcm9iZWF1Zm5haG1lbiBpbiBIb2xseXdvb2QKdW5kIG11c3N0ZSB0YWdlbGFuZyByZWl0ZW4uJyAtICdVbmQsIGhhc3QgRHUgZGllIFJvbGxlIGJla29tbWVuPycgLSAnSWNoCm5pY2h0LCBhYmVyIGRhcyBQZmVyZC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmxhZWNoZWwqIGRpZSAxMC4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjE2OjQwKToKCkVpbiBNYW5uIGJldHJpdHQgZGFzIGVpbnppZ2UgTGViZW5zbWl0dGVsZ2VzY2hhZWZ0IGRlciBPcnRzY2hhZnQuICdJY2gKaGFldHRlIGdlcm4gYWxsZSBFaWVyIHVuZCBUb21hdGVuLCBkaWUgU2llIGhhYmVuLicgLSAnQWgsIFNpZSBnZWhlbiBoZXV0ZQphYmVuZCBiZXN0aW1tdCBpbiB1bnNlcmUgRmVzdGhhbGxlLiBEYSBzb2xsIGRvY2ggZGllc2VyIG5ldWUsIHVudGFsZW50aWVydGUKU2NoYXVzcGllbGVyIGF1ZnRyZXRlbi4nIC0gJ1N0aW1tdCcsIG1laW50IGRlciBNYW5uLCAnIGljaCBiaW4gZGVyIFNjaGF1LQpzcGllbGVyLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIDExLiAoQ3JlYXRpdmUsIDIwLiBGZWIgMTk5NiwgMTg6MTg6MDYpOgoKJ1dlaXNzdCBEdSwgQW5uaSwgaWNoIGZpbmRlLCBzZWl0IHdpciB2ZXJoZWlyYXRldCBzaW5kLCBiaXN0IER1IG51ciBub2NoCnphZXJ0bGljaCwgd2VubiBEdSBHZWxkIGJyYXVjaHN0LicgLSAnQWJlciBMaWVibGluZywgaXN0IGRhcyBkZW5uIG5pY2h0IG9mdApnZW51Zz8nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmxhZWNoZWwqIGRpZSAxMi4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjE5OjQ1KToKClNjaGltcGZ0IGRpZSBqdW5nZSBEYW1lIGJlaW0gSG90ZWxwcm90aWVyOiAnU2llIGdsYXViZW4gd29obCwgbnVyIHdlaWwgaWNoCnZvbSBMYW5kIGtvbW1lLCBrb2VubmVuIFNpZSBtaWNoIGluIHNvIGVpbiBrbGVpbmVzIFppbW1lciBzdGVja2VuLicgLSAnQWJlcgpiZXJ1aGlnZW4gU2llIHNpY2ggZG9jaCcsIGVyd2lkZXJ0IGRlciBQb3J0aWVyLCAnZGFzIGlzdCBkb2NoIGVyc3QgZGVyCkZhaHJzdHVobC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmxhZWNoZWwqIGRpZSAxMy4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjIxOjE5KToKCkltIFJlc3RhdXJhbnQuIEFscyBlciBkaWUgZ2VzYWx6ZW5lbiBQcmVpc2UgYXVmIGRlciBTcGVpc2VrYXJ0ZSBzaWVodCwgc2FndApkZXIganVuZ2UgTWFubiB6dSBzZWluZXIgQmVnbGVpdGVyaW46ICdVbmQsIHdhcyBtb2VjaHRlc3QgRHUgZXNzZW4sCkRpY2tlcmNoZW4/JwoKCihQLlMuOiBNeSBmYXZvdXJpdGUgOikpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmxhZWNoZWwqIGRpZSAxNC4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjIyOjQ4KToKCkFscyBlciBoZWlta29tbXQsIGZpbmRldCBlciBkYXMgSGF1cyBpbiBoZWlsbG9zZXIgVW5vcmRudW5nIHZvci4gJ1dhcyBpc3QKZGVubiBoaWVyIHBhc3NpZXJ0PycgcnVmdCBlciBlcnNjaHJvY2tlbi4gJ0R1IHdpbGxzdCBkb2NoIGltbWVyIHdpc3Nlbiwgd2FzCmljaCBkZW4gZ2FuemVuIFRhZyBtYWNoZScsIGVyd2lkZXJ0IHNlaW5lIEZyYXUuICdIZXV0ZSBoYWJlIGljaCBlcyBuaWNodApnZW1hY2h0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIDE1LiAoQ3JlYXRpdmUsIDIwLiBGZWIgMTk5NiwgMTg6MjQ6NDQpOgoKJ0pldHp0IGhhYmUgaWNoIGVuZGxpY2ggaGVyYXVzZ2VmdW5kZW4nLCBzYWd0IEZyYXUgSHViZXIgenUgaWhyZXIgRnJldW5kaW4sCid3byBtZWluIE1hbm4gc2VpbmUgQWJlbmRlIHZlcmJyaW5ndC4nIC0gJ0FjaCwgdW5kIHdvPycgLSAnRGVua2VuIFNpZSBudXIsCmdlc3Rlcm4gYmxlaWJlIGljaCBFSU5NQUwgenUgSGF1c2UsIHVuZCB3ZXIsIG1laW5lbiBTaWUsIHNpdHp0IGRhPyBNZWluCk1hbm4hJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgMTYuIChDcmVhdGl2ZSwgMjAuIEZlYiAxOTk2LCAxODoyNjozNCk6CgonVW5kIG1vcmdlbicsIHNhZ3QgZGVyIEVoZWJlcmF0ZXIgenUgc2VpbmVtIEtsaWVudGVuLCAnYnJpbmdlbiBTaWUgaWhyZSBGcmF1Cm1pdCwgdW5kIHdpciBiZXNwcmVjaGVuIGRhcyBpbiBSdWhlLicgLSAnRGEgbXVlc3NlbiBTaWUgc2ljaCBzY2hvbiBlbnQtCnNjaGVpZGVuLiBFbnR3ZWRlciBpY2ggYnJpbmdlIG1laW5lIEZyYXUgbWl0IG9kZXIgd2lyIGJlc3ByZWNoZW4gZGFzIGluClJ1aGUuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgMTcuIChDcmVhdGl2ZSwgMjAuIEZlYiAxOTk2LCAxODoyOTowMCk6CgpGcmFndCBkaWUgTXV0dGVyOiAnTmEsIEthcmxpLCB3aWUgd2FycyBpbSBLaW5vPyBXYXJzIGx1c3RpZz8nIC0gJ0RhcwpsdXN0aWdzdGUKd2FyLCB3aWUgZGVyIFBhcGEgdm9uIGRlbSBGcmFldWxlaW4sIGRhcyBuZWJlbiBpaG0gc2FzcywgZWluZSBPaHJmZWlnZSBiZS0Ka29tbWVuIGhhdC4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKmxhZWNoZWwqIGRpZSAxOC4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjMwOjI3KToKCidJY2ggZ2xhdWJlLCBtZWluIFNjaHdpZWdlcnNvaG4gaXN0IG51ciBzY2hhcmYgYXVmIG1laW4gVmVybW9lZ2VuLicgLSAnV2llCmtvbW1zdCBEdSBkZW5uIGRhcmF1Zj8nIC0gJ0plZGVzbWFsLCB3ZW5uIGVyIG1pciBkaWUgSGFuZCBnaWJ0LCBmdWVobHQgZXIKbWVpbmVuIFB1bHMuJwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipsYWVjaGVsKiBkaWUgMTkuIChDcmVhdGl2ZSwgMjAuIEZlYiAxOTk2LCAxODozMjowOCk6Cgpad2VpIEJldHJ1bmtlbmUgZmFocmVuIEF1dG8uIFJ1ZnQgZGVyIGVpbmU6ICdWb3JzaWNodCwgRHUgZmFlaHJzdCBhdWYgZGVtCkJ1ZXJnZXJzdGVpZyEnIFNhZ3QgZGVyIGFuZGVyZSBlcnN0YXVudDogJ1dpZXNvLCBpY2ggZGFjaHRlLCBEdSBmYWVocnN0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqbGFlY2hlbCogZGllIGxldHp0ZS4gKENyZWF0aXZlLCAyMC4gRmViIDE5OTYsIDE4OjM0OjI2KToKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJsb25kaW5lIHVuZCBUZXRyYS1QYWs/CgoKCgpUZXRyYS1QYWsgaXN0IGlyZ2VuZHdpZSBjbGV2ZXIuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6ICpsYWVjaGVsKiBkaWUgOC4gKE5hc2ltLCAyMC4gRmViIDE5OTYsIDIzOjI0OjM4KToKfiMhIHJuPUNyZWF0aXZlIHJ0PTgyNDgzNjQwMAp+IyEgdGlkPTgyNDgzNjQwMApXaWUgYmVncnVlc3N0IGRlciBLYW5pYmFsZSBlaW5lbiBUb3VyaXN0ZW4/CgoiTmljZSB0byBlYXQgeW91ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF6enVyb3MgRmFtaWxpZW5nZXNjaGljaHRlbiAoQXp6dXJvLCAyMS4gRmViIDE5OTYsIDAyOjE1OjUxKToKTmV1bGljaCBtYWNodGUgaWNoIG1pdCBtZWluZW0gU29obiBBcmRhbmEgZWluZSBSYWR0b3VyIGR1cmNoIGRpZSBIZWlkZSB2b3IKUG9ydCBWYWluLgpBdWYgZWlubWFsIHVlYmVyZmFlaHJ0IGRlciBrbGVpbmUgVG9sbHBhdHNjaCBlaW5lIEJpZW5lLiBEYSBpY2ggZWluIGd1dGVyCkVyemllaGVyIGJpbiBtZWludGUgaWNoOgoiU3RyYWZlIG11c3Mgc2Vpbi4gRGllIG5hZWNoc3RlbiAxMCBPbmxpbmUtVGFnZSBnaWJ0IGVzIGtlaW5lbiBob25pZyBtZWhyLiIKQWxzIGljaCB1bSBkaWUgRWNrZSBhdWYgZGVuIE9zdHdhbGwgYWJiaWVnZSB1ZWJlcmZhaHJlIGljaCBhdXMgdmVyc2VoZW4gZWluClZvZWdlbGNoZW4uCkRhcmF1ZiBBcmRhbmE6IkJyaW5nc3QgRHUgZGFzIGpldHp0IFVsbyBiZWkgb2RlciBzb2xsIGljaCBlcyBpaHIgc2FnZW4/IgoKU3RyYWZlIG11c3Mgc2VpbiA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggZWluZXIgKEF6enVybywgMjEuIEZlYiAxOTk2LCAwMjozMToxNik6Ck5hY2ggZWluZXIgbGFuZ2VuIFRvZGVzc2VxdWVueiBrYW0gaWNoIGluIGRlbiBIaW1tZWwuIExhcnMgYmVnbGVpdGV0ZSBtaWNoIHVtCm1pciBkaWUgUmVnZWxuIHp1IGVya2xhZXJlbi4KTGFyczoiRXMgaXN0IGVpbmZhY2ggQXp6dXJvLiBEdSBrYW5uc3QgaGllciBhbGxlcyBoYWJlbi4gU2Nob2VuZSBGcmF1ZW4sIEdlbGQKRXNzZW4uLi4uLiBBbGxlcyB3YXMgRHUgd2lsbHN0LiBFcyBnaWJ0IG51ciBlaW5lIFNhY2hlIGF1ZiBkaWUgRHUgYXVmcGFzc2VuCm11c3N0LiBJbiBkZXIgbWl0dGUgaXN0IGVpbiByb3Nhcm90ZXMgV29lbGtjaGVuLiBBdWYgZGFzIGRhcmZzdCBEdSBuaWVtYWxzCnRyZXRlbi4KU29uc3QgcGFzc2llcnQgd2FzIHNjaGxpbW1lcy4iCgpJY2ggc2NoYXV0ZSBtaWNoIGFscyBpbiBSdWhlIHVtIHVuZCBlbnRkZWNrdGUgaGludGVyIGVpbmVyIGJlc29uZGVyc3QgZ3Jvc3NlbgpXb2xrZSBKb2YgdW5kIFJ1bWF0YS4gQmVpZGUgaGF0dGVuIGVpbmUgQWJncnVuZHRpZWYgaGFlc3NsaWNoZSBhbHRlIEhleGUgaW0KQXJtLgpJY2ggZnJhZ3RlIExhcnM6IiBXYXMgaGFiZW4gZGllIGJlaWRlbiBhbmdlc3RlbGx0LCBkYXNzIHNpZSBkYXMgTG9zIHNvIGhhcnQKdHJhZj8iCkRhcmF1ZiBMYXJzOiJEdSBrZW5uc3QgZGllIEdvZXR0ZXIgZG9jaC4gU2llIHdhcmVuIHdpZSBpbW1lciB1bmdlc2NoaWNrdCB1bmQKc2luZCBhdWYgZGllIHJvc2Fyb3RlIFdvbGtlIGdldHJldGVuLgpEZXNoYWxiIHd1cmRlbiBzaWUgYmVzdHJhZnQuIgpBbHMgaWNoIG1pY2ggd2VpdGVyIHVtc2NoYXVlIHNlaGUgaWNoIEJvaW5nLCBkZXIgd2lsZCBtaXQgQ2xhdWRpYSBTY2hpZmZlcgpydW1rbnV0c2NodC4KSWNoIGZyYWd0ZSBMYXJzOiJJc3QgZGFzIG5pY2h0IHVuZ2VyZWNodD8gQm9pbmcgd2FyIGRvY2ggZ2VuYXVzbyBzY2hsZWNodCB1bmQKZ3V0IHdpZSBkaWUgYW5kZXJlbiBHb2V0dGVyLiBBYmVyIGVyIGhhdCBDbGF1ZGlhIGFiYmVrb21tZW4uIgpEYXJhdWYgTGFyczoiVGphLCBDbGF1ZGlhIFNjaGlmZmVyIHdhciBoYWx0IHVuZ2VzY2hpY2t0IHVuZCBpc3QgYXVmIGRpZSBXb2xrZQpnZXRyZXRlbi4iCgo7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6ICpsYWVjaGVsKiBkaWUgNi4gKExhcmlzc2EsIDIxLiBGZWIgMTk5NiwgMTE6MzM6MzApOgp+IyEgcm49Q3JlYXRpdmUgcnQ9ODI0ODM1OTU0Cn4jISB0aWQ9ODI0ODM1OTU0CkljaCBkYWNodGUsIGVzIGhlaXNzdCBESUUgUnVkaT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBNdXNzIGZ1ZXIgZGllIEJlbnV0emVyYmVyYXR1bmcgKEJsb29keWhhcnJ5LCAyMS4gRmViIDE5OTYsIDE0OjUzOjE3KToKCgoqa2xpbmdlbGluZyogKmtsaW5nZWxpbmcqCgoiSG90bGluZS4gV29ydW0gZ2VodCdzPyIKCiJBbHNvLi4uIEljaCBtZWluJyAuLi4ga2FubiBtaXIgbWFsIGplbWFuZCBoZWxmZW4/IEljaCBtdXNzIG1hbCBXYXNzZXIKIGxhc3Nlbi4iCgoiSG1tbS4uLiBpc3QgZXMgZHJpbmdlbmQ/IgoKIkphLCBpY2ggaGFiIHppZW1saWNoIERydWNrLiIKCiJPSy4gSGFiZW4gU2llIG1hZW5ubGljaGVzIG9kZXIgd2VpYmxpY2hlcyBHZXJhZXQ/IgoKPERlbmtwYXVzZT4KIkljaCBnbGF1YmUgbWFlbm5saWNoLiIKCiJPSy4gWnVlcnN0IG11ZXNzZW4gd2lyIElocmVuIEhvc2Vuc3RhbGwgZmluZGVuLiIKCiJIb3NlbnN0YWxsPyIKCiJKYS4gRGEgd28gZGVyIFJlaXNzdmVyc2NobHVzcyBpc3QsIGRlciBJaHJlIEhvc2Ugb2VmZm5ldC4gRXIgc29sbHRlIGF1ZgpJaHJlcgogVm9yZGVyc2VpdGUgc2Vpbi4gQmxpY2tlbiBTaWUgYml0dGUgbmFjaCB1bnRlbi4gV2FzIHNlaGVuIFNpZT8iCgoiSWNoIHNlaGUgU2NodWhlLiIKCiJOZWluLi4uIHNlaGVuIFNpZSBhbiBJaHJlciBWb3JkZXJzZWl0ZSBoZXJ1bnRlci4uLiBkYSwgd28gSWhyZSBIb3NlCiBiZWdpbm50LiBEYSBzb2xsdGVuIFNpZSBldHdhcyBtZXRhbGxpc2NoZXMgc2VoZW4uIERhcyBpc3QgSWhyIFJlaXNzLQogdmVyc2NobHVzcy4iCgoiRGFzIHJ1bmRlIERpbmdzZGE/IgoKIkhtLCBkYXMgaXN0IGRlciBIb3Nlbmtub3BmLi4uIG9lZmZuZW4gU2llIGRlbiwgd28gU2llIGdlcmFkZSBkYWJlaQogc2luZC4gRGVyIFJlaXNzdmVyc2NobHVzcyBzaWVodCBhdXMgd2llIHZpZWxlIHdpbnppZ2UgWmFlaG5lLCBkaWUKIGluZWluYW5kZXIgdmVyaGFrdCBzaW5kLiIKCiJPaCwgb2ggamEuLi4gaWNoIGhhYidzLiA8cGF1c2U+IE9LLCBlciBpc3Qgb2ZmZW4uLi4iCgoiSmV0enQgemllaGVuIFNpZSBkaWUgSG9zZSBiaXMgenVtIEtuaWUgbmFjaCB1bnRlbi4iCgoiSGFiIGljaCBnZW1hY2h0LiIKCiJTY2hvZW4uLi4gS29lbm5lbiBzaWUgSWhyZW4gV2lsbGkgYW5mYXNzZW4/IgoKIk5laW4uIgoKIktvZW5uZW4gU2llIGlobiBzZWhlbj8iCgoiTmVpbi4iCgoiTmEgZ3V0Li4uIHdhcyBzZWhlbiBTaWUgZGFubj8iCgoiV2Vpc3MuLi4gbnVyIFdlaXNzIG1pdCBlaW4gcGFhciBMaW5pZW4uLi4iCgoiSGFiZW4gU2llIFVudGVyd2Flc2NoZSBpbnN0YWxsaWVydD8iCgoiTmVpbi4iCgoiRW50c2NodWxkaWdlbiBTaWUsIGFiZXIgd2VubiBTaWUgSWhyZW4gV2lsbGkgbmljaHQgc2VoZW4ga29lbm5lbiB1bmQgbnVyCiBXZWlzcyBzZWhlbiwgZGFubiBoYWJlbiBTaWUgdmllbGxlaWNodCBVbnRlcndhZXNjaGUgaW5zdGFsbGllcnQuIFdpcgogd2VyZGVuIGRhcyBkZWluc3RhbGxpZXJlbiBtdWVzc2VuLCBkYW1pdCBzaWUgV2Fzc2VyIGxhc3NlbiBrb2VubmVuLi4uIgoKIk5hIGphLCBhbHNvIG1laW5lIEZyZXVuZGluIHdhciB6dWxldHp0IGFuIG1laW5lbSBSZWlzc3ZlcnNjaGx1c3MuLi4KIHZpZWxsZWljaHQgaGF0IHNpZSBVbnRlcndhZXNjaGUgaW5zdGFsbGllcnQuLi4iCgoiQWxzbyBndXQuLi4gZmFzc2VuIFNpZSBkYXMgd2Vpc3NlIERpbmcgYW4gdW5kIHppZWhlbiBlcyBoaW51bnRlciwgYmlzIFNpZQogSWhyZW4gV2lsbGkgc2VoZW4ga29lbm5lbi4uLiIKCiJFcyBoYWVuZ3QgZmVzdC4uLiBlcyBnZWh0IG5pY2h0IHdlaXRlciBoZXJ1bnRlci4uLiIKCiJXYXM/IERhcyB3ZWlzc2UgRGluZyBvZGVyIElociBXaWxsaT8iCgoiTWVpbiBXaWxsaSwgb2J3b2hsIGljaCBmZXN0ZSB6aWVoLi4uIgoKIkhBTFQsIE5JQ0hUIFpJRUhFTiEgTGFzc2VuIFNpZSBJaHJlbiBXaWxsaSBsb3MgdW5kIHppZWhlbiBzaWUgbnVyIGRpZQogVW50ZXJ3YWVzY2hlIGhpbnVudGVyLCBiaXMgU2llIElocmVuIFdpbGxpIHNlaGVuIGtvZW5uZW4uLi4iCgoiT2guLi4gbmEgamEsIGRhcyB3YWVyJ3MuLi4iCgoiT0suIE51biBzZWhlbiBTaWUgc2ljaCBpbSBSYXVtIHVtLi4uIHNlaGVuIFNpZSBpcmdlbmRldHdhcyBhdXMgUG9yemVsbGFuPyIKCiJJY2ggc2VoZSBudXIgZWluZSBrbGVpbmUgS2F0emUsIGRpZSBhdWYgZWluZW0gUmVnYWwgc3RlaHQuLi4iCgoiT0suLi4gZGFubiBzaW5kIFNpZSBpbSBXb2huemltbWVyLi4uIEdlaGVuIFNpZSBhdWYgZGllIFRvaWxldHRlLiBTaWUKIGtvZW5uZW4gbnVyIGF1ZiBkZXIgVG9pbGV0dGUgV2Fzc2VyIGxhc3Nlbi4gRGllIFRvaWxldHRlIGlzdCBtZWlzdGVucwogZ2VrYWNoZWx0LCBoYXQgZWluZW4gb2RlciBtZWhyZXJlIFNwaWVnZWwsIHVuZCBTZWlmZS4gTWFuY2hlIExldXRlCiBoYWJlbiBlaW5lIER1c2NoZSBvZGVyIEJhZGV3YW5uZSBpbiBkZW1zZWxiZW4gUmF1bSB3aWUgZGllIFRvaWxldHRlLi4uIgoKIkphLCBhbHNvLi4uIGRpZSBUb2lsZXR0ZSBpc3QgZWluZSBFdGFnZSBob2VoZXIsIGdsYXViZSBpY2guLi4iCgoiRmVpbiwgYWxzbyBnZWhlbiB3aXIgbmFjaCBvYmVuLi4uIgoKIkljaCBrYW5uIG5pY2h0IGdlaGVuLi4uIgoKIk9LLi4uIGluc3RhbGxpZXJlbiBTaWUgdm9ybGFldWZpZyB3aWVkZXIgVW50ZXJ3YWVzY2hlIHVuZCBkYW5uIGRpZSBIb3NlLi4uCiBkYW5uIGdlaGVuIFNpZSBuYWNoIG9iZW4uLi4gZGFubiBkZWluc3RhbGxpZXJlbiBTaWUgYmVpZGVzLCB1bmQgendhcgogenVlcnN0IGRpZSBIb3NlLi4uIgoKIkRpZSBVbnRlcndhZXNjaGUgd2FyIGRhcyB3ZWlzc2UgRGluZywgamE/IgoKIkphd29obCwgZGFzIGhhYmVuIFNpZSBnYW56IHJpY2h0aWcgdmVyc3RhbmRlbi4uLiIKCjxQYXVzZT4KCiJPSywgaWNoIGJpbiBvYmVuLi4uIgoKIkd1dC4uLiBzZWhlbiBTaWUgc2NodWVzc2VsYWVobmxpY2hlIERpbmdlciBhdXMgUG9yemVsbGFuPyIKCiJKYSwgendlaS4uLiIKCiJXaWUgZ3Jvc3Mgc2luZCBTaWU/IgoKIkVpbiBNZXRlciBzZWNoemlnLi4uIgoKIk9LLi4uIGdlaGVuIFNpZSB6dSBkZXIgU2NodWVzc2VsLCBkaWUgZWNodCBuaWVkcmlnZXIgaXN0IGFscyBJaHIgV2lsbGkuLi4iCgoiQWxzbyBpY2ggYmluIGRhLiIKCiJPSy4uLiBzZWhlbiBTaWUgenUsIGRhc3MgU2llIGluIFJpY2h0dW5nIGRlciBTY2h1ZXNzZWwgemllbGVuLi4uIHVuZAogbWFjaGVuIFNpZSBlaW5mYWNoLi4uIgoKIldhcyBtZWluZW4gU2llIGRhbWl0PyIKCiJOYSBqYS4uLiB3ZW5uIGRhcyBGZW5zdGVyIG1pdCAiT0s/IiBlcnNjaGVpbnQsIGVpbmZhY2ggYW5rbGlja2VuLi4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9lc3RlcnJlaWNoZXIgZGllIGVyc3RlIChTY2hsYXdpbmVyLCAyMS4gRmViIDE5OTYsIDE3OjQ1OjIyKToKV2FydW0gbXVlc3NlbiBkaWUgb2VzdGVycmVpY2hpc2NoZW4gTW90b3JyYWRmYWhyZXIgZWluZSBaaXBmZWxtdWV0emUgdHJhZ2VuCnVuZCBrZWluZW4gSGVsbT8KClNpZSBsaWVzc2VuIG1hbCBlaW5lbiBIZWxtIHVuZCBlaW5lIFppcGZlbG11ZXR6ZSBkZW4gQmVyZyBydW50ZXJmYWxsZW4uCkVyZ2VibmlzOgpEZXIgSGVsbSB3YXIgdG90YWwga2FwdXR0LCBhYmVyIGRpZSBaaXBmZWxtdWV0emUgbm9jaCBnYW56LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT2VzdGVycmVpY2hlciBkaWUgMi4gKFNjaGxhd2luZXIsIDIxLiBGZWIgMTk5NiwgMTc6NTQ6NDcpOgpUcmVmZmVuIHNpY2ggendlaSBPZXN0ZXJyZWljaGVyLiBTYWd0IGRlciBlaW5lOiAiSWNoIGhhYiBpbiBlaW4gcGFhciBXb2NoZW4Kdm9yLCBtaXQgZGVtIEF1dG8gbmFjaCBFbmdsYW5kIHp1IGZhaHJlbi4iIEFudHdvcnRldCBkZXIgYW5kZXJlOiAiRHUgd2Vpc3N0CnNjaG9uLCBkYXNzIGRpZSBkYSBhdWYgZGVyIGxpbmtlbiBTdHJhc3NlbnNlaXRlIGZhaHJlbj8iIFNhZ3QgZGVyIGVpbmUKd2llZGVyOiAiTmFqYSwgZGFzIG11c3MgbWFuIG1hbCBwcm9iaWVyZW4uIgoKUGFhciBUYWdlIHNwYWV0ZXIgdHJlZmZlbiBzaWUgc2ljaCB3aWVkZXIuIFNhZ3QgZGVyIGVpbmU6ICJJY2ggaGFiIG1pcidzCmRvY2ggYW5kZXJzIHVlYmVybGVndCwgaWNoIGZhaHIgbGllYmVyIGRvY2ggbmljaHQgbmFjaCBFbmdsYW5kLiIKLSAiV2llc28gZGFzIGRlbm4/IiAtICJOYWphLCBpY2ggaGFiIGRhcyBtaXQgZGVtIExpbmtzLUZhaHJlbiBtYWwgdW0gTGluegpoZXJ1bSBwcm9iaWVydC4gRGFzIGlzdCBnYW56IHNjaG9lbiBnZWZhZWhybGljaCEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRoZSBMYXN0IEhvbGRvdXQgKEFiZW5kcm90LCAyMi4gRmViIDE5OTYsIDAxOjQyOjEwKToKfiMhIHJuPUNhdHdlYXpsZSBydD04MjQ5MTc0NjcKfiMhIHRpZD04MjQ5MTc0NjcKU29ycnkgQ2F0d2VhemxlLCBhYmVyIGRlciBUZXh0IGlzdCBsZWlkZXIgbmljaHQgdm9lbGxpZyBrb3JyZWt0IGFuZ2Vrb21tZW4sCmRlaW4gQ3V0J24gUGFzdGUgaGF0IHdvaGwgbmljaHQgcmljaHRpZyBmdW5rdGlvbmllcnQuCgpXYWVyIHNjaG9lbiB3ZW5uIGR1IGVzIG5vY2htYWwgcG9zdGVzdCA6LSkKCkFiZW5kUm90IGltIE1vcmdlbkdyYXVlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE9lc3RlcnJlaWNoZXIgZGllIDIuIChCb3Jvd2ljaywgMjIuIEZlYiAxOTk2LCAwOTozMTozMyk6Cn4jISBybj1TY2hsYXdpbmVyIHJ0PTgyNDkyMTY4Nwp+IyEgdGlkPTgyNDkyMTY4NwpXYXMgaXN0IHJvdCwgYmxhdSB1bmQgdHJlaWJ0IHJlZ2xvcyBpbiBkZXIgRG9uYXU/CkVpbiBVbG1lciwgZGVyIGJsb2VkZSBXaXR6ZSBlcnphZWhsdGUuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcm9zdCAoWWFudHJvLCAyMi4gRmViIDE5OTYsIDEwOjAyOjU3KToKCk1hbCB3aWVkZXIgd2FzIHJhc3Npc3Rpc2NoZXMgOikgOgoKVHJlZmZlbiBzaWNoIGVpbiBEb3J0bXVuZGVyLCBlaW4gRHVlc3NlbGRvb2ZlciB1bmQgZWluIEtvZWxuZXIgaW4gZWluZXIKS25laXBlLgpXaXJ0OiBXYXMgZGFyZiBlcyBkZW5uIHNlaW4/CkRvcnQuOiBFaW4gUGlscy4KV2lydDogb2suCkQnZG9vZmVyOiBJY2ggaGFldHQgZ2VybmUgZWluIEFsdC4KV2lydDogb2suCkRlciBLb2VsbmVyIGdydWViZWx0IHVuZCBtZWludCBkYW5uOiBJY2gga3JpZWcgbmUgQ29sYS4KRGVyIFdpcnQgZXJzdGF1bnQ6IFdpZXNvIGRlbm4ga2VpbiBLb2Vsc2NoPwpLb2VsbmVyOiBOYSB3ZW5uIGRpZSBhbmRlcmVuIGtlaW4gQmllciB0cmlua2VuLCBkYW5uIGxhc3MgaWNoIGVzIGF1Y2ggc2Vpbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmQuLiAoQmxvb2R5aGFycnksIDIyLiBGZWIgMTk5NiwgMTE6MDU6MTUpOgoKSXN0IGVpbmUgQmxvbmRpbmUgaW0gU3VwZXJtYXJrdCBlaW5rYXVmZW4uIFBsb2V0emxpY2gga2xpbmdlbHQgaWhyIEhhbmR5Li4KQmxvbmRpbmU6IEphPyAgQWgsIEtsYXVzISBXb2hlciB3ZWlzdCBkdSBkZW5uLCBkYXNzIGljaCBoaWVyIGJpbj8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaGUgbGFzdCBob2xkb3V0IChDYXR3ZWF6bGUsIDIyLiBGZWIgMTk5NiwgMTM6Mjc6NDEpOgpPaywgZGllc21hbCBpbiAoaG9mZmVudGxpY2gpIGtvcmVrdGVyIEZhc3N1bmc6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZXJlIHdhcyBhIGtub2NrIG9uIHRoZSBkb29yLiAgSXQgd2FzIHRoZSBtYW4gZnJvbSBNaWNyb3NvZnQuICAiTm90IHlvdQphZ2FpbiwiIEkgc2FpZC4KCiJTb3JyeSwiIGhlIHNhaWQsIGEgbGl0dGxlIHNoZWVwaXNobHkuICAiSSBndWVzcyB5b3Uga25vdyB3aHkgSSdtIGhlcmUuIgoKSW5kZWVkIEkgZGlkLiAgTWljcm9zb2Z0J3MgJDMwMCBtaWxsaW9uIGNhbXBhaWduIHRvIHByb21vdGUgdGhlIFdpbmRvd3MKOTUgb3BlcmF0aW5nIHN5c3RlbSB3YXMgbWVhbnQgdG8gYmUgdW5pdmVyc2FsbHkgZWZmZWN0aXZlLCB0byBjb252aW5jZQpldmVyeSBodW1hbiBiZWluZyBvbiB0aGUgcGxhbmV0IHRoYXQgV2luZG93cyA5NSB3YXMgYW4gZXNzZW50aWFsLCBzb21lCndvdWxkIHNheSBpbnRlZ3JhbCwgcGFydCBvZiBsaXZpbmcuICBQcm9ibGVtIHdhcywgbm90IGV2ZXJ5b25lIGhhZApib3VnaHQgaXQuICBTcGVjaWZpY2FsbHksIEkgaGFkbid0LiAgSSB3YXMgdGhlIExhc3QgSHVtYW4gQmVpbmcgV2l0aG91dApXaW5kb3dzIDk1LiAgQW5kIG5vdyB0aGlzIGxpdHRsZSBtYW4gZnJvbSBNaWNyb3NvZnQgd2FzIGF0IG15IGRvb3IsIGFuZApoZSB3b3VsZG4ndCB0YWtlIG5vIGZvciBhbiBhbnN3ZXIuCgoiTm8sIiBJIHNhaWQuCgoiWW91IGtub3cgSSBjYW4ndCB0YWtlIHRoYXQsIiBoZSBzYWlkLCBwdWxsaW5nIG91dCBhIGNvcHkgb2YgV2luZG93cyA5NQpmcm9tIGEgYnJpZWZjYXNlLiAgIkNvbWUgb24uICBKdXN0IG9uZSBjb3B5LiAgVGhhdCdzIGFsbCB3ZSBhc2suIgoKIk5vdCBpbnRlcmVzdGVkLCIgSSBzYWlkLiAgIkxvb2ssIGlzbid0IHRoZXJlIHNvbWVvbmUgZWxzZSB5b3UgY2FuIGdvCmJvdGhlciBmb3IgYSB3aGlsZT8gIFRoZXJlJ3MgZ290IHRvIGJlIHNvbWVvbmUgZWxzZSBvbiB0aGUgcGxhbmV0IHdobwpkb2Vzbid0IGhhdmUgYSBjb3B5LiIKCiJXZWxsLCBubywiIHRoZSBNaWNyb3NvZnQgbWFuIHNhaWQuICAiWW91J3JlIHRoZSBvbmx5IG9uZS4iCgoiWW91IGNhbid0IGJlIHNlcmlvdXMuICBOb3QgZXZlcnlvbmUgb24gdGhlIHBsYW5ldCBoYXMgYSBjb21wdXRlciwiIEkKc2FpZC4gICJBbmQgY2VydGFpbmx5LCBub3QgZXZlcnlvbmUgaGFzIGEgUEMhICBTb21lIHBlb3BsZSBvd24KTWFjaW50b3NoZXMsIHdoaWNoIHJ1biB0aGVpciBvd24gb3BlcmF0aW5nIHN5c3RlbS4gIEFuZCBzb21lIHBlb3BsZSB3aG8KaGF2ZSBQQ3MgcnVuIE9TLzIsIHRob3VnaCBJIGhlYXIgdGhhdCdzIGp1c3QgYSBydW1vci4gIEluIHNob3J0LCB0aGVyZQphcmUgc29tZSBwZW9wbGUgd2hvIGp1c3QgaGF2ZSBubyBVU0UgZm9yIFdpbmRvd3MgOTUuIgoKVGhlIE1pY3Jvc29mdCBtYW4gbG9vayBwZXJwbGV4ZWQuICAiSSdtIG1pc3NpbmcgeW91ciBwb2ludCwiIGhlIHNhaWQuCgoiVXNlISIgSSBzY3JlYW1lZC4gICJVc2UhICBVc2UhICBVc2UhICBXaHkgQlVZIGl0LCBpZiB5b3UgY2FuJ3QgVVNFIGl0PyIKCiJXZWxsLCBJIGRvbid0IGtub3cgYW55dGhpbmcgYWJvdXQgdGhpcyAidXNlIiB0aGluZyB5b3UncmUgZ29pbmcgb24KYWJvdXQsIiB0aGUgTWljcm9zb2Z0IG1hbiBzYWlkLiAgIkFsbCBJIGtub3cgaXMgdGhhdCBhY2NvcmRpbmcgdG8gb3VyCnJlY29yZHMsIGV2ZXJ5b25lIGVsc2Ugb24gdGhlIHBsYW5ldCBoYXMgYSBjb3B5LiIKCiJQZW9wbGUgd2l0aG91dCBjb21wdXRlcnM/IgoKIkdvdCAnZW0uIgoKIkFtYXpvbmlhbiBJbmRpYW5zPyIKCiJXZSBoYWQgdG8gZ2V0IHNvbWUgbWFsYXJpYSBzaG90cyB0byBnbyBpbiwgYnV0IHllcy4iCgoiVGhlIEFtaXNoLiIKCiJDaGVjay4iCgoiT2gsIGNvbWUgb24sIiBJIHNhaWQuICAiVGhleSBkb24ndCBldmVuIHdlYXIgQlVUVE9OUy4gIEhvdyBkaWQgeW91IGdldAp0aGVtIHRvIGJ1eSBhIGNvbXB1dGVyIG9wZXJhdGluZyBzeXN0ZW0/IgoKIldlIHRvbGQgdGhlbSB0aGVyZSB3ZXJlIGFjdHVhbGx5IDk1IHZlcnkgc21hbGwgd2luZG93cyBpbiB0aGUgYm94LCIgdGhlCk1pY3Jvc29mdCBtYW4gYWRtaXR0ZWQuICAiV2Ugc29ydCBvZiBsaWVkLiAgV2hpY2ggbWVhbnMgd2UgYXJlIGFsbCBnb2luZwp0byBIZWxsLCBldmVyeSBzaW5nbGUgZW1wbG95ZWUgb2YgTWljcm9zb2Z0LiIgIEhlIHdhcyBzb21iZXIgZm9yIGEKbWludXRlLCBidXQgdGhlbiBwZXJrZWQgcmlnaHQgdXAuICAiQnV0IHRoYXQncyBub3QgdGhlIHBvaW50ISIgaGUgc2FpZC4KIlRoZSBwb2ludCBpcywgRVZFUllPTkUgaGFzIGEgY29weS4gIEV4Y2VwdCB5b3UuIgoKIlNvIHdoYXQ/IiBJIHNhaWQuICAiSWYgZXZlcnlvbmUgZWxzZSBqdW1wZWQgb2ZmIGEgY2xpZmYsIHdvdWxkIHlvdQpleHBlY3QgbWUgdG8gZG8gaXQsIHRvbz8iCgoiSWYgd2Ugc3BlbnQgJDMwMCBtaWxsaW9uIGFkdmVydGlzaW5nIGl0PyAgQWJzb2x1dGVseS4iCgoiTm8uIgoKIk9oLCBiYWNrIHRvIHRoYXQgYWdhaW4sIiB0aGUgTWljcm9zb2Z0IG1hbiBzYWlkLiAgIkhleS4gIEknbGwgdGVsbCB5b3UKd2hhdC4gIEknbGwgR0lWRSB5b3UgYSBjb3B5LiAgRm9yIGZyZWUuICBKdXN0IHRha2UgaXQgYW5kIGluc3RhbGwgaXQgb24KeW91ciBjb21wdXRlci4iICBIZSB3YXZlZCB0aGUgYm94IGluIGZyb250IG9mIG1lLgoKIk5vLCIgSSBzYWlkIGFnYWluLiAgIk5vIG9mZmVuc2UsIHBhbCwgYnV0IEkgZG9uJ3QgTkVFRCBpdC4gIEFuZApmcmFua2x5LCB5b3VyIHdob2xlIGFkdmVydGlzaW5nIGJsaXR6IGhhcyBzb3J0IG9mIG9mZmVuZGVkIG1lLiAgSSBtZWFuLAppdCdzIGEgY29tcHV0ZXIgb3BlcmF0aW5nIHN5c3RlbS4gIEdyZWF0LiAgRmluZS4gIFN3ZWxsLiAgV2hhdGV2ZXIuICBCdXQKeW91IGd1eXMgYXJlIGFkdmVydGlzaW5nIGl0IGxpa2UgaXQgY3JlYXRlcyB3b3JsZCBwZWFjZSBvciBzb21ldGhpbmcuIgoKIkl0IGRpZC4iCgoiUGFyZG9uPyIKCiJXb3JsZCBwZWFjZS4gIEl0IHdhcyBwYXJ0IG9mIHRoZSBvcmlnaW5hbCBkZXNpZ24uICBSZWFsbHkuICBPbmUgYnV0dG9uCmFjY2Vzcy4gIENsaWNrIG9uIGl0LCBwb29mLCBlbmQgdG8gc3RyaWZlIGFuZCBodW5nZXIuICBTaW1wbGUuIgoKIlNvIHdoYXQgaGFwcGVuZWQ/IgoKIldlbGwsIHlvdSBrbm93LCIgaGUgc2FpZC4gICJJdCB0b29rIHVwIGEgbG90IG9mIHNwYWNlIG9uIHRoZSBoYXJkCmRyaXZlLiAgV2UgaGFkIHRvIGRlY2lkZSBiZXR3ZWVuIGl0IG9yIHRoZSBNaWNyb3NvZnQgTmV0d29yay4gIEFueXdheSwKd2UgY291bGRuJ3QgZmlndXJlIG91dCBob3cgdG8gbWFrZSBhIHByb2ZpdCBvZmYgb2Ygd29ybGQgcGVhY2UuIgoKIkdvIGF3YXksIiBJIHNhaWQuCgoiSSBjYW4ndCwiIGhlIHNhaWQuICAiSSdsbCBiZSBraWxsZWQgaWYgSSBmYWlsLiIKCiJZb3UgaGF2ZSBnb3QgdG8gYmUga2lkZGluZywiIEkgc2FpZC4KCiJMb29rLCIgdGhlIE1pY3Jvc29mdCBtYW4gc2FpZCwgIldlIHNvbGQgdGhpcyB0byB0aGUgQW1pc2guICBUaGUgQW1pc2ghClJpZ2h0IG5vdywgdGhleSdyZSBvcGVuaW5nIHRoZSBib3hlcyBhbmQgZmlndXJpbmcgb3V0IHRoZXkndmUgYmVlbiBoYWQuCldlJ2xsIGJlIHBpdGNoZm9ya2VkIGlmIHdlIGV2ZXIgc3RlcCBpbnRvIFdlc3Rlcm4gUGVubnN5dmFuaWEgYWdhaW4uCkJ1dCB3ZSBkaWQgaXQuICBTbyB0byBoYXZlIFlPVSBob2xkaW5nIG91dCwgd2VsbCwgaXQncyBlbWJhcmFzc2luZy4KSXQncyBlbWJhcmFzc2luZyB0byB0aGUgY29tcGFueS4gIEl0J3MgZW1iYXJhc3NpbmcgdG8gdGhlIHByb2R1Y3QuICBJdCdzCmVtYmFyYXNzaW5nIHRvIEJpbGwuIgoKIkJpbGwgR2F0ZXMgZG9lcyBub3QgY2FyZSBhYm91dCBtZSwiIEkgc2FpZC4KCiJIZSdzIHdhdGNoaW5nIHJpZ2h0IG5vdywiIHRoZSBNaWNyb3NvZnQgbWFuIHNhaWQuICAiQm9ycm93ZWQgb25lIG9mCnRob3NlIG1pbGl0YXJ5IHNweSBzYXRlbGxpdGVzIGp1c3QgZm9yIHRoZSBwdXJwb3NlLiAgSXQncyBhbHNvIGdvdCBvbmUKb2YgdGhvc2UgaGlnaC1wb3dlcmVkIGxhc2Vycy4gIFlvdSBjbG9zZSB0aGF0IGRvb3Igb24gbWUsIHphcCwgSSdtIGEKcGlsZSBvZiBncmV5IGFzaC4iCgoiSGUgd291bGRuJ3QgZG8gdGhhdCwiIEkgc2FpZC4gIkhlIG1pZ2h0IGhpdCB0aGF0IGNvcHkgb2YgV2luZG93cyA5NSBieQphY2NpZGVudC4iCgoiT2gsIEJpbGwncyBnb3R0ZW4gcHJldHR5IGdvb2Qgd2l0aCB0aGF0IGxhc2VyLCIgdGhlIE1pY3Jvc29mdCBtYW4gc2FpZApuZXJ2b3VzbHkuICAiT2theS4gIEkgd2Fzbid0IHN1cHBvc2VkIHRvIGRvIHRoaXMsIGJ1dCB5b3UgbGVhdmUgbWUgbm8KY2hvaWNlLiAgSWYgeW91IHRha2UgdGhpcyBjb3B5IG9mIFdpbmRvd3MgOTUsIHdlIHdpbGwgcmV3YXJkIHlvdQpoYW5kc29tZWx5LiAgSW4gZmFjdCwgd2UnbGwgZ2l2ZSB5b3UgeW91ciBvd24gQ2FyaWJiZWFuIGlzbGFuZCEgIEhvdwpkb2VzIE1vbnRzZXJyYXQgc291bmQ/IgoKIlRlcnJpYmxlLiAgVGhlcmUncyBhbiBhY3RpdmUgdm9sY2FubyB0aGVyZS4iCgoiSXQncyBvbmx5IGEgc21hbGwgb25lLCIgdGhlIE1pY3Jvc29mdCBtYW4gc2FpZC4KCiJMb29rLCIgSSBzYWlkLCAiZXZlbiBpZiB5b3UgRElEIGNvbnZpbmNlIG1lIHRvIHRha2UgdGhhdCBjb3B5IG9mCldpbmRvd3MgOTUsIHdoYXQgd291bGQgeW91IGRvIHRoZW4/ICBZb3UnZCBoYXZlIHRvdGFsbHkgc2F0dXJhdGVkIHRoZQptYXJrZXQuICBUaGF0IHdvdWxkIGJlIGl0LiAgTm8gbmV3IHdvcmxkcyB0byBjb25xdWVyLiAgV2hhdCB3b3VsZCB5b3UgZG8KdGhlbj8iCgpUaGUgTWljcm9zb2Z0IG1hbiBoZWxkIHVwIGFub3RoZXIgYm94IGFuZCBnYXZlIGl0IHRvIG1lLgoKIidXaW5kb3dzIDk1Li4uLkZvciBQZXRzJz8hPyE/IgoKIlRoZXJlJ3MgYSBMT1Qgb2YgZG9tZXN0aWMgYW5pbWFscyBvdXQgdGhlcmUsIiBoZSBzYWlkLgoKSSBzaHV0IHRoZSBkb29yIHF1aWNrbHkuICBUaGVyZSB3YXMgYSBzdXJwcmlzZWQgeWVscCwgdGhlIHNvdW5kIG9mIGEKbGFzZXIsIGFuZCB0aGVuIG5vdGhpbmcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBPZXN0ZXJyZWljaGVyIGRpZSAyLiAoTWFuZ28sIDIyLiBGZWIgMTk5NiwgMTQ6MTE6NDUpOgp+IyEgcm49Qm9yb3dpY2sgcnQ9ODI0OTc3ODkzCn4jISB0aWQ9ODI0OTIxNjg3CgoKQmxvZWRlIFdpdHplIHVlYmVyIE9lc3RlcnJlaWNoZXIgc2luZCBjb29sLiA7KQoKCk1hbmdvLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogT2VzdGVycmVpY2hlciBkaWUgMi4gKEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyOTowNSk6Cn4jISBybj1TY2hsYXdpbmVyIHJ0PTgyNDkyMTY4Nwp+IyEgdGlkPTgyNDkyMTY4NwpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyOTowMl06CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI5OjAyXToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6Mjk6MDBdOgpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyODo1N106CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI4OjU3XToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6Mjg6NTRdOgpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyODo1NF06CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI4OjUyXToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6Mjg6NTJdOgpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyODo0OV06CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI4OjQ3XToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6Mjg6NDddOgpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyODo0NV06CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI4OjQzXToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6Mjg6MjRdOgpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyODoyMV06CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI4OjIxXToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6Mjg6MTldOgpbVmVybGVndCB2b24gd2l0emUsIEhhcmRpbCwgMjIuIEZlYiAxOTk2LCAxNToyODoxNV06CltWZXJsZWd0IHZvbiB3aXR6ZSwgSGFyZGlsLCAyMi4gRmViIDE5OTYsIDE1OjI4OjAyXToKW1ZlcmxlZ3Qgdm9uIHdpdHplLCBIYXJkaWwsIDIyLiBGZWIgMTk5NiwgMTU6MjI6MTVdOgoKTmFqYSwgdmVybGVnZW4gd2lyIGRhcyBHYW56ZSBtYWwgbmFjaCBkLnF1aXo6CgpCaXMgd2FubiB3dXJkZSBpbiBBdXN0cmlhLUxhbmQgZGVubiBub2NoIGxpbmtzIGdlZmFocmVuPyBXZXIgd2Vpc3MgZXM/CgotSGFyZGlsLgpLb2VubnRlIGluIGRlciBUZXN0LUNyZXcgdm9uIFRyaXZpYWwgUHVyc3VpdCBtaXR3aXJrZW4uIDopCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUHJvc3QgKFNjaHJ1bXBmaSwgMjMuIEZlYiAxOTk2LCAwNDo0Njo0Mik6Cn4jISBybj1ZYW50cm8gcnQ9ODI0OTc5Nzc3Cn4jISB0aWQ9ODI0OTc5Nzc3CktvZWxzY2ggaXN0IGVpbiBCaWVyPyBJY2ggZGFjaHRlIGltbWVyIGRhcyB3YWVyIEFid2FzY2h3YXNzZXIuCgpTY2hydW1wZmkgemllaHQgc2ljaCBlaW4gS2Fpc2VyIE1hZXJ6ZW4gcmVpbi4gQWFhYWFhYWFhYWFhYWFoLCBqYSBEQVMgaXN0CkJpZXIhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NobWFsIE9lc3RlcnJlaWNoZXIgKEJlbmRlaWdpZCwgMjMuIEZlYiAxOTk2LCAxMDo0NDo1Mik6CldhcyBpc3QgZWluIEJheWVyPwoKCgoKCgoKRGVyIHVlYmVyZ2FuZyB2b20gT2VzdGVycmVpY2hlciB6dW0gTWVuc2NoZW4uCgoKCk9laG0sIG5hamEsIHVlYmVyc2VodCBpaG4gZWluZmFjaC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQcm9zdCAoUnVkaXJhdHRlciwgMjMuIEZlYiAxOTk2LCAxNTowNDo0OCk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODI1MDQ3MjAyCn4jISB0aWQ9ODI0OTc5Nzc3CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFhYWEKU2NocnVtcGZpLCBEVSB3aWxsc3QgbWVpbmUgRnJldW5kaW4gc2VpbiB1bmQgbWVja2Vyc3QgdWViZXIgS29lbHNjaD8/Pz8hISEKVFNUU1RTVFNUClJVREkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFByb3N0IChTY2hydW1wZmksIDIzLiBGZWIgMTk5NiwgMjA6MzU6MzEpOgp+IyEgcm49UnVkaXJhdHRlciBydD04MjUwODQyODgKfiMhIHRpZD04MjQ5Nzk3NzcKQWVoLCBvaCwgYWVoLCB0amEsIGFlaG0gaWNoIG1laW5lLi4uLkljaCB0cmluayBlaCBsaWViZXIgV29ka2EgKnNjaHdpdHosCnJhdXNyZWQqCgpTY2hydW1wZmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPZXN0ZXJyZWljaGVyIGRpZSAyLiAoQ3JlYXRpdmUsIDI2LiBGZWIgMTk5NiwgMDk6Mjk6MzUpOgp+IyEgcm49U2NobGF3aW5lciBydD04MjQ5MjE2ODcKfiMhIHRpZD04MjQ5MjE2ODcKV2FzIGhhdCBkYXMgbWl0IExJTlogenUgdHVuPyA6KQoqZ3J1bW1lbCogTXVzcyBXaWVuIGdld2VzZW4gc2VpbiAqbGFlc3RlcioKCi1DcmVhLQo6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFByb3N0IChDcmVhdGl2ZSwgMjYuIEZlYiAxOTk2LCAwOTozMzoyNyk6Cn4jISBybj1ZYW50cm8gcnQ9ODI0OTc5Nzc3Cn4jISB0aWQ9ODI0OTc5Nzc3CgpEYSBmaWVsIG1pciBlYmVuIG1laW4gU2F0eiBlaW4gYmVpIG1laW5lbSBlcnN0ZW4gS29lbG5iZXN1Y2guLi4KKGlubmVyIEtuZWlwZSk6ICdLYW5uIGljaCBiaXR0ZSBlaW4gQmllciBoYWJlbiBvZGVyIHZpZWxsZWljaHQgZWluIEtvZWxzY2g/JwoKLUNyZWEtIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQcm9zdCAoQXNtb2RpcywgMjYuIEZlYiAxOTk2LCAxMDowODo1Nyk6Cn4jISBybj1DcmVhdGl2ZSBydD04MjUzMjM2MDcKfiMhIHRpZD04MjQ5Nzk3NzcKVW5kLCBoYXN0IGR1IGpldHp0IGRhIEhhdXN2ZXJib3QgPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmF1ZXJuIChXZW5kZWxsZ2VlLCAyNy4gRmViIDE5OTYsIDExOjE3OjUyKToKRHJlaSBCYXVlcm4gdW50ZXJoYWx0ZW4gc2ljaAoKU2FndCBkZXIgZWluZTogSWNoIGhhYiBlaW5lIEhlbm5lLCBkaWUga2FubiBub3JtYWxlIEVpZXIgbGVnZW4sIGhhcnRnZWtvY2h0ZSwKT3N0ZXJlaWVyLCBGcnVlaHN0dWVja3NlaWVyLCBTY2hva29sYWRlaWVyLCBhbGxlcwoKU2FndCBkZXIgendlaXRlOiBJY2ggaGFiIGVpbmUgS3VoLCBkaWUgZ2lidCBub3JtYWxlIE1pbGNoLCBlbnRyYWhtdGUgTWlsY2gsCkJ1dHRlcm1pbGNoLCBFcmRiZWVybWlsY2gsIFZhbmlsbGVtaWxjaCwgYWxsZXMKClNhZ3QgZGVyIGRyaXR0ZTogRGFzIGlzdCBqYSBub2NoIGdhciBuaWNodHMsIGljaCBoYWIgZWluZSBTYXUsIGRpZSBrYW5uCmtvY2hlbiwgcHV0emVuLCBhYndhc2NoZW4sIG5hZWhlbiwuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpZWRlciBtYWwgQ3JlYSdzIE1vbmF0c3dpdHplIChDcmVhdGl2ZSwgIDQuIE1hciAxOTk2LCAxOToyNzoyNik6CgpFaW4ganVuZ2VzIFBhZXJjaGVuIGJlc2ljaHRpZ3QgZWluZSBOZXViYXV3b2hudW5nLiBNZWludCBzaWUgenUgaWhtOiAnU2NoYXUKbWFsLCB3YXMgZnVlciBoZXJybGljaGUgRWluYmF1c2NocmFlbmtlIScgRGFyYXVmIGRlciBWZXJtaWV0ZXI6ICdTaWUgaXJyZW4Kc2ljaC4gRGFzIHNpbmQgZGllIEtpbmRlcnppbW1lci4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2llZGVyIG1hbCBDcmVhJ3MgTW9uYXRzd2l0emUgMiAoQ3JlYXRpdmUsICA0LiBNYXIgMTk5NiwgMTk6MzA6MjcpOgoKRWluIEFtZXJpa2FuZXIgdW50ZXJuaW1tdCBtaXQgc2VpbmVtIEF1dG8gZWluZSBSZWlzZSBkdXJjaCBkYXMgSGVpbGlnZSBMYW5kLgpBbSBTZWUgR2VuZXphcmV0aCB3aWxsIGVyIHVlYmVyc2V0emVuIHVuZCBmcmFndCBkZW4gRmFlaHJtYW5uIG5hY2ggZGVtIFByZWlzLgonODAgRG9sbGFyJywgYW50d29ydGV0IGRlci4gJ1dhcycsIHJ1ZnQgZGVyIEFtZXJpa2FuZXIsICdzbyB2aWVsPycgLSAnTmEgamEnLAptZWludCBkZXIgRmFlaHJtYW5uLCAnc2NobGllc3NsaWNoIGlzdCBKZXN1cyBoaWVyIHp1IEZ1c3MgcnVlYmVyZ2VnYW5nZW4uJwpTYWd0IGRlciBBbWVyaWthbmVyOiAnS2VpbiBXdW5kZXIsIGJlaSBkZW4gUHJlaXNlbi4uLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aWVkZXIgbWFsIENyZWEncyBNb25hdHN3aXR6ZSAzIChDcmVhdGl2ZSwgIDQuIE1hciAxOTk2LCAxOTozNDoxNyk6CgpGcmFndCBkaWUgbmV1ZSBGcmV1bmRpbiBkZW4gZW50bGFzc2VuZW4gSGFlZnRsaW5nOiAnU2FnIGVpbm1hbCwgd2FzIGlzdAplaWdlbnRsaWNoIERlaW4gTGllYmxpbmdzZ2VyaWNodD8nIC0gJ0htJywgdWViZXJsZWd0IGVyLCAnZGFzIGlzdCBzY2h3ZXIgenUKc2FnZW4uIEJpcyBqZXR6dCBoYXQgbWljaCBub2NoIGtlaW5lcyBmcmVpZ2VzcHJvY2hlbi4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2xlaW5lIFVudGVyYnJlY2h1bmcuLi4gKENyZWF0aXZlLCAgNC4gTWFyIDE5OTYsIDE5OjM4OjAzKToKClNhZ3QgbWFsLCBhbGxlIG1laW5lbiwgbWVpbmUgV2l0emUgc2VpZW4gc28gYWx0Li4uIHNvbGwgaWNoIGRpZSBtb25hdGxpY2hlbgpQb3N0cyBsYXNzZW4/IE9kZXIgaW50ZXJlc3NpZXJlbiBzaWUgZG9jaCBlaW4gcGFhcj8gOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOdWVzc2UgKEtyZXRlaywgIDQuIE1hciAxOTk2LCAxOTozOTozOSk6Ck5ldWxpY2ggZ2Vob2VydC4uLgoKCgoKRWluIGFsdGVzIE11ZXR0ZXJjaGVuIGZhZWhydCBqZWRlbiBUYWcgbWl0IGRlbSBCdXMgaW4gZGllIFN0YWR0LiBVbmQKamVkZW4gVGFnIGhhdCBzaWUgZnVlciBkZW4gQnVzZmFocmVyIGVpbmUgSGFuZHZvbGwgc2FmdGlnZXIsIGZyaXNjaGVyCkhhc2VsbnVzc2tlcm5lIGRhYmVpLiBEZXIgQnVzZmFocmVyIGZyZXV0IHNpY2ggbmF0dWVybGljaCwgdW5kIGplZGVuClRhZyB3YXJ0ZXQgZXIgYXVmIHNlaW5lIEhhc2VsbnVlc3NlLgpFaW5lcyBUYWdlcyBmYWVuZ3QgZXIgYW4genUgdWViZXJsZWdlbjogIkVzIGlzdCBkb2NoIGdhciBrZWluZQpTYWlzb24gZnVlciBIYXNlbG51ZXNzZS4uLiBXbyBtYWcgZGllIGFsdGUgRnJhdSBkaWUgbnVyIGltbWVyIGhlciBoYWJlbj8iCkFtIG5hZWNoc3RlbiBUYWcgZnJhZ3QgZXIgc2llLiBEaWUgQWx0ZSBtZWludDogIlRqYSwgd2lzc2VuIFNpZSwKbWVpbiBOZWZmZSwgZGVyIGJyaW5ndCBtaXIgaW1tZXIgZGllIEZlcnJlcm8gS3Vlc3NjaGVuIG1pdCwgdW5kIGRpZSBzaW5kCmphIGF1Y2ggc29vb28gbGVja2VyLCBhYmVyIGRpZSBOdWVzc2UsIGRpZSBrYW5uIGljaCBlaW5mYWNoIG5pY2h0IG1laHIKYmVpc3Nlbi4uLiIKCgoKR3V0ZW4gQXBwZXRpdCEKCktyZXRlawoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBrbGVpbmUgVW50ZXJicmVjaHVuZy4uLiAoR3JpbW1ib3JuLCAgNC4gTWFyIDE5OTYsIDE5OjQwOjM3KToKfiMhIHJuPUNyZWF0aXZlIHJ0PTgyNTk2NDY4Mwp+IyEgdGlkPTgyNTk2NDY4MwoKQWxzbywgZ3J1bmRzYWV0emxpY2gga2FubiBlcyBqZWRlciBsYXNzZW4sIGRpZXNlIFJ1YnJpayB6dSBsZXNlbi4KVW5kIGF1Y2gsIHdlbm4gbmljaHQgYWxsZXMgdGF1ZnJpc2NoIHdhciBhbiBXaXR6ZW4sIHNvIHVlYnQgbWFuIHNpY2ggZG9jaCBpbgpOYWNoc2ljaHQgd2VubiBtYW4gd2Vpc3MsIHdvIHNpZSBoZXJrb21tZW4gdW5kIGJ1Y2h0cyB1bnRlciAiRW50d2lja2x1bmdzaGlsZmUKZnVlciBPZXNpbGFuZCIgYWIuIDstKQoKTmFqYSwgdW5kIGhpZXIgdW5kIGRhIGlzdCBqYSBhdWNoIGVpbmVyIGRydW50ZXIsIGRlciBTT09PIGFsdCBpc3QsIGRhc3MgbWFuCmlobiBzY2hvbiBuaWNodCBtZWhyIGtlbm50Li4uIDstKQoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBrbGVpbmUgVW50ZXJicmVjaHVuZy4uLiAoQ3JlYXRpdmUsICA0LiBNYXIgMTk5NiwgMTk6NDI6NDYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTgyNTk2NDgzNwp+IyEgdGlkPTgyNTk2NDY4MwoKVmllbGxlaWNodCBsaWVndHMgYW4gbWVpbmVtIEFsdGVyPyBJY2gga2FubnRlIGRpZSBuYWVtbGljaCBhbGxlIG5vY2ggbmljaHQgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aWVkZXIgbWFsIENyZWEncyBNb25hdHN3aXR6ZSA0LCB2b24gR3JpbW1ib3JuIGdlZHVsZGV0IChDcmVhdGl2ZSwgIDQuIE1hciAxOTk2LCAxOTo0NDozOSk6CgonV2llc28gaXN0IGRlbm4gRGVpbmUgRnJhdSBzbyBlaWZlcnN1ZWNodGlnIGF1ZiBEZWluZSBTZWtyZXRhZXJpbj8nCidXZWlsIHNpZSB2b3JoZXIgbWVpbmUgU2VrcmV0YWVyaW4gd2FyLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNb25hdHMnIEdyaW1tY3JlYSwgdm9uIFdpdHpib3JuIGdlZHVsZGV0IChDcmVhdGl2ZSwgIDQuIE1hciAxOTk2LCAxOTo0ODozNCk6CgonSGFsbG8gS2FybCwgaWNoIGhhYiBnZWhvZXJ0LCBkYXNzIER1IG5ldWxpY2ggdW5zZXJlbSBCdW5kZXNrYW56bGVyIGRpZSBIYW5kCmdlZHJ1ZWNrdCBoYXN0LicgLSAnQWNoLCBwcmFobHQgZGVyIHNjaG9uIHVlYmVyYWxsIGRhbWl0IGhlcnVtPycKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6Q3JlYU1vbmF0c0Jvcm5HZWR1bGRldEdyaW1tRGVzLiAoQ3JlYXRpdmUsICA0LiBNYXIgMTk5NiwgMTk6NTM6MTcpOgoKVWViZXJmYWxsIGJlaSBNYyBEb25hbGRzLiAnSWNoIHdpbGwgYWxsZXMsIHdhcyBpbiBkZXIgS2Fzc2UgaXN0IScgRnJhZ3QgZGllClZlcmthZXVmZXJpbjogJ1p1bSBNaXRuZWhtZW4/JwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthbWVsZnVlaHJlciBlcnN0b2NoZW4uLi4gKENyZWF0aXZlLCAgNC4gTWFyIDE5OTYsIDE5OjU4OjA0KToKCkRpZSBmcnVzdHJpZXJ0ZSBFaGVmcmF1IHp1IGlocmVtIE1hbm46ICdTY2hhdSBEaXIgbnVyIHVuc2VyZSBOYWNoYmFybiBhbi4KRGllIHNpbmQgc28gZ2x1ZWNrbGljaC4gSmVkZXNtYWwgd2VubiBlciBhdXMgZGVtIEhhdXMgZ2VodCwgZ2lidCBlciBpaHIgZWluZW4KS3Vzcy4gRGFyYW4gc29sbHRlc3QgRHUgRGlyIGVpbiBCZWlzcGllbCBuZWhtZW4hJyAtICdBYmVyIFNjaGF0eiwgaWNoIGtlbm5lCmRpZSBGcmF1IGRvY2gga2F1bS4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZSBLYW5hbHJhdHRlbnJhc3NlIGdlZnVuZGVuIHVuZCBwZXIgR2VubXV0YXRpb24gdmVyYWVuZGVydC4gKENyZWF0aXZlLCAgNC4gTWFyIDE5OTYsIDIwOjA0OjU1KToKClRyZWZmZW4gc2ljaCBlaW4gTWF1cmVyLCBlaW4gR2FlcnRuZXIgdW5kIGVpbiBFbGVrdHJpa2VyLiBTaWUgc3RyZWl0ZW4gc2ljaCwKd2VsY2hlciBCZXJ1ZiBkZXIgYWVsdGVzdGUgaXN0LiAnV2lyIGhhYmVuIHNjaG9uIGRpZSBQeXJhbWlkZW4gZ2ViYXV0JywKcHJhaGx0IGRlciBNYXVyZXIuICdVbmQgd2lyIGRlbiBHYXJ0ZW4gRWRlbiBiZXBmbGFuenQnLCBrb250ZXJ0IGRlciBHYWVydG5lci4KJ0RhcyBpc3Qgbm9jaCBhbGxlcyBuaWNodHMnLCB0b2VudCBkZXIgRWxla3RyaWtlciwgJ2FscyBHb3R0IHNwcmFjaCwgZXMKd2VyZGUgTGljaHQsIGhhdHRlbiB3aXIgc2Nob24gZGllIExlaXR1bmdlbiB2ZXJsZWd0LicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NoIGVpbmVuLi4uIChCbG9vZHloYXJyeSwgIDYuIE1hciAxOTk2LCAxMToxOTo0Nik6CgpEaWVzZW4gV2l0eiBoYXQgbWlyIGVpbmUgS29sbGVnaW4gZ2VyYWRlIGVyemFlaGx0OgoKCiAgIFdpZSBuZW5udCBtYW4gZGFzLCB3ZW5uIGVpbmUgRnJhdSBpbiBkZXIgS3VlY2hlIGFuZ2VrZXR0ZXQgd2lyZD8KCgoKCgoKICAgQXJ0Z2VyZWNodGUgSGFsdHVuZy4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBT0wgKFJvY2h1cywgIDYuIE1hciAxOTk2LCAxMTo0ODoxNCk6ClE6ICJIb3cgbWFueSBBT0wtVXNlcnMgZG8geW91IG5lZWQgdG8gc2NyZXcgaW4gYSBsaWdodCBidWxiPyIKQTogIk9uZS4iICJBbmQgbWUgdG9vISEhIiAiTWUgdG9vISIgIk1lIHRvbyEhISIgIkFuZCBNZSB0b28hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IG5vY2ggZWluZW4uLi4gKER1cmlhbiwgIDYuIE1hciAxOTk2LCAxMzozMzozMCk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04MjYxMDc1ODYKfiMhIHRpZD04MjYxMDc1ODYKV2FzIGlzdCBwYXNzaWVydCwgd2VubiBkaWUgRnJhdSAoZmlsbCBpbiBNQU5OIGlmIHlvdSB3YW50KSBpbnMgV29obnppbW1lcgprb21tdD8KCgoKCgpEYW5uIHdhciBkaWUgS2V0dGUgenUgbGFuZy4KCgpOaWNoJyBndXQ/IERhbm4gZWJlbiBuaWNoJywgbmllbWFuZCBoYXQgZ2VzYWd0LCBkZXIgc2VpIGd1dCAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZW5uZXJmZWluZGxpY2hlciBXaXR6IChHcmltbWJvcm4sICA3LiBNYXIgMTk5NiwgMTY6MTg6NDQpOgoKQWxzbywgZWluIE1hbm4gaXN0IGF1ZiBlaW5lciBJbnNlbCBnZWxhbmRldCwgd2VpbCBkYXMgU2NoaWZmIHVudGVyZ2VnYW5nZW4KaXN0LiBFciBrYW5uIGFsbGVyZGluZ3MgZWluaWdlcyB2b20gU2NoaWZmIHJldHRlbiB1bmQgYmF1dCBkYXMgZGFubgpvcmlnaW5hbGdldHJldSBhdWYgZGVyIEluc2VsIGF1Zi4gS29tYnVlc2UsIEJhciwgS2FiaW5lbiB1bmQgc28uIElyZ2VuZHdhbm4Kd2lyZHMgaWhtIGFiZXIgenUgbGFuZ3dlaWxpZyB1bmQgZXIgYmVzY2hsaWVzc3QsIGRpZSBJbnNlbCB6dSBlcmZvcnNjaGVuLgpBdWYgZGVyIGFuZGVyZW4gU2VpdGUgZGVyIEluc2VsIHNpZWh0IGVyIE5hb21pIENhbXBiZWxsIChkaWVzZXIgTmFtZSBpc3QKbmF0dWVybGljaCBhdXN0YXVzY2hiYXIpIGhhbGIgZXJ0cnVua2VuIGFtIFN0cmFuZC4gRXIgbGFldWZ0IGhpbiwgcmV0dGV0IHNpZQp1bmQgYWxzIHNpZSBhdWZ3YWNodCBtZWludCBzaWU6ICJEdSBoYXN0IG1pY2ggZ2VyZXR0ZXQsIGRhZnVlciBkYXJmc3QgRHUgbWl0Cm1pciBtYWNoZW4sIHdhcyBEdSB3aWxsc3QuIgpOdW4gamEsIHdpZSBkYXMgZGFubiBpbiBzb2xjaGVuIFdpdHplbiBzbyBpc3Qga29tbWVuIGRpZSBiZWlkZW4gc2ljaCBuYWVoZXIKdW5kIHRvYmVuIHVlYmVyIGRpZSBJbnNlbC4gSW4gYWxsZW4gZXJkZW5rbGljaGVuIFZhcmlhdGlvbmVuIHVuZCBhbiBhbGxlbgpPcnRlbiBnZWh0IHZvbGwgZGllIFBvc3QgYWIuIElyZ2VuZHdhbm4gbWVpbnQgZGFubiBkZXIgTWFubjogIkR1IGhhc3QgZG9jaApnZXNhZ3QsIGljaCBkdWVyZmUgYWxsZXMgbWl0IERpciBtYWNoZW4sIG9kZXI/IiBOYW9taSBlbnRnZWduZXQ6ICJJY2ggZGFjaHRlLApnZW5hdSBkYXMgdGFldGVuIHdpciwgYWJlciB3ZW5uIER1IG1laW5zdCwga2xhci4uLiIKRXIgZnVlaHJ0IHNpZSBpbiBlaW5lIEthYmluZSwgemllaHQgaWhyIE1hZW5uZXJrbGVpZGVyIGFuIChBbnp1ZyB1bmQgc29uCktyYW0pLCBrbGVidCBpaHIgbmVuIFNjaG51cnJiYXJ0IGlucyBHZXNpY2h0LiBTaWUgaXN0IHZlcnd1bmRlcnQsIG1hY2h0IGFiZXIKbWl0LiBEYW5uIGZ1ZWhydCBlciBzaWUgenVyIEJhciwgZ2lidCBpaHIgZWluZW4gV2hpc2t5LCBuaW1tdCBzaWNoIHNlbGJlciBhdWNoCmVpbmVuIHVuZCBzYWd0OiAiUmF0ZSBtYWwsIHdlbiBpY2ggZmxhY2hnZWxlZ3QgaGFiZSEiCgpKYSwgZGFzIHdhciBkYW5uIGRpZSBQb2ludGUgZ2V3ZXNlbi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmF1c2xpY2ggKFdlbmRlbGxnZWUsIDEyLiBNYXIgMTk5NiwgMTI6NTM6MzkpOgpad2VpIFN0cmVja2Vud2FlcnRlciBnZWhlbiBhdWYgZGVuIEVpc2VuYmFobnNjaGllbmVuIGRhaGluLgpEYSBzYWd0IGRlciBlaW5lOiBEb3J0IGRydWViZW4gaGFiIGljaCBnZXN0ZXJuIGVpbmUgZ2V2b2VnZWx0LgpGcmFndCBkZXIgYW5kZXJlOiBVbmQ/IEhhc3QgZHUgZGlyIGF1Y2ggZWluZW4gYmxhc2VuIGxhc3Nlbj8KRGVyIGVyc3RlIHZlcm5laW50OiBMZWlkZXIsIGRlbiBLb3BmIGhhYiBpY2ggbmljaHQgZ2VmdW5kZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS3VyeiAoV2VuZGVsbGdlZSwgMTIuIE1hciAxOTk2LCAxMzowNTo1OSk6CkRlciBrdWVyemVzdGUgRnJhdWVuYXJ6dHdpdHo6CgoKCgoKS29tbXQgZWluZSBGcmF1IGJlaW0gQXJ6dC4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEt1cnogKEdyaW1tYm9ybiwgMTIuIE1hciAxOTk2LCAxNDoxMTowMyk6Cn4jISBybj1XZW5kZWxsZ2VlIHJ0PTgyNjYzMjM1OQp+IyEgdGlkPTgyNjYzMjM1OQoKT2hhLCBkZXIgS2VybCBrZW5udCBuaWNodCBudXIgdXJhbHRlIFJhZXRzZWwgc29uZGVybiBhdWNoIHVyYWx0ZSBXaXR6ZT8KSSdtIGltcHJlc3NlZC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbnR3b3J0IChXZW5kZWxsZ2VlLCAxMi4gTWFyIDE5OTYsIDE1OjE1OjU3KToKSWNoIGhhdHRlIG1pdCBHcmltbWJvcm4gZWluZSBrdXJ6ZSBEaXNrdXNzaW9uIHVlYmVyIHNlaW5lIGhlcmFibGFzc2VuZGUKS3JpdGlrIHp1IG1laW5lbSBBcnRpa2VsIHVuZCB6dSBzZWluZXIgTWVpbnVuZyB1ZWJlciBtaWNoLiBFciBoYXR0ZSBrZWluCnNvbmRlcmxpY2hlcyBFaW5zZWhlbi4gV2FzIHNhZ2VuIGRpZSBBbmRlcmVuIHp1IHNvbGNoZW4gQXJ0aWtlbG4gaW4gZGVyIE1QQT8KKGJlc29uZGVycyBpbiBkZXIgV2l0emUtUnVicmlrKQpJY2ggYmluIHNjaG9uIGdlc3Bhbm50IGF1ZiBHcmltbWJvcm5zIEFudHdvcnQsIEdvdHQgc2VpIERhbmsga2FubiBpY2ggc2llCmVyc3QgaW4gZWluZXIgV29jaGUgbGVzZW4uCk1hY2h0cyBndXQgdW5kIGRhbmtlIGZ1ZXIgZGVuIEZpc2NoLCBXZW5kZWxsIEdlZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbnR3b3J0IChQcmEsIDEyLiBNYXIgMTk5NiwgMTY6MTY6MjYpOgp+IyEgcm49V2VuZGVsbGdlZSBydD04MjY2NDAxNTcKfiMhIHRpZD04MjY2NDAxNTcKRGllIFBvaW50ZSBoYWInIGljaCBqZXR6dCBuaWNodCB2ZXJzdGFuZGVuLgoKUHJhLiBEb29mIG9kZXIgaHVtb3Jsb3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFudHdvcnQgKFJhZmZpLCAxMi4gTWFyIDE5OTYsIDE3OjMwOjUyKToKfiMhIHJuPVByYSBydD04MjY2NDM3ODYKfiMhIHRpZD04MjY2NDAxNTcKCgpEZWluZSBBYmVyIGF1Y2ggbmljaHQgUHJhCgpHcnVzcwpILgoobWluZGVzdGVucyBnZW5hdXNvIGh1bW9ybG9zKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFudHdvcnQgKFNjaHJ1bXBmaSwgMTMuIE1hciAxOTk2LCAwMDo0Mjo1Nyk6Cn4jISBybj1XZW5kZWxsZ2VlIHJ0PTgyNjY0MDE1Nwp+IyEgdGlkPTgyNjY0MDE1NwpEZWluZSBXaXR6ZSBzaW5kIGZyYXVlbmZlaW5kbGljaCwgd2lkZXJsaWNoIHVuZCB1cmFsdC4KU2NocnVtcGZpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW50d29ydCAoRnl0LCAxMy4gTWFyIDE5OTYsIDAxOjA3OjU5KToKfiMhIHJuPVdlbmRlbGxnZWUgcnQ9ODI2NjQwMTU3Cn4jISB0aWQ9ODI2NjQwMTU3CgpIbSwgaWNoIHBlcnNvZW5saWNoIHNlaGUga2VpbmVuIEdydW5kLCB3YXJ1bSBHcmltbWJvcm4gRWluc2ljaHQKemVpZ2VuIHNvbGx0ZS4gV3VlcmRlIGljaCBhbiBzZWluZXIgU3RlbGxlIGF1Y2ggbmljaHQgdHVuLgoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWluIE9wZXJhdG9yIGZ1ZXIgZGljaCAoTGluaywgMTMuIE1hciAxOTk2LCAwOTowMzowMCk6CkdydXNzIE11ZGRlciwKCmljaCBoYWIgZGEgbWFsIHdhcyB6dW0gbGVzZW4gZnVlciBEaWNoLCBzaW5kIGZ1ZW5mIFRlaWxlLCB3ZWlscyBpbiBlaW5lbQplaW5mYWNoIG5pY2ggaW4gZGllIFplaXR1bmcgcmVpbnBhc3NlbiB3b2xsdGUgOikKCkVzIGlzdCBlaW5lIGF1dGhlbnRpc2NoZSA7KSBHZXNjaGljaHRlIHVlYmVyIGVpbmVuIEhlcnJlbiBtaXQgZGVtIE5hbWVuClNpbW9uIEdhdmFnbGlhLCBzZWluZXMgWmVpY2hlbnMgT3BlcmF0b3IuCgpFcyBnZWh0IGFsc28gdW0gZGVuOgoKICAgICAgICAgICAgICAgICAgICBCYXN0YXJkIE9wZXJhdG9yIGZyb20gSGVsbAoKICAgICAgICAgICAgICAgICAgICAgICAgIFNJTU9OIEdBVkFHTElBCgoKSGV1dGUgaXN0IEJhY2t1cC1UYWcuIE1laW4gTGllYmxpbmd0YWchIEFuZGVyZXJzZWl0cyBoYXQgZXMgbmF0dWVybGljaApnZXdpc3NlIFZvcnRlaWxlLCBkZXIgT3BlcmF0b3IgenUgc2Vpbi4gSWNoIGxpbmtlIGRhcyB0YXBlIGRldmljZSBuYWNoCi9kZXYvbnVsbCAtIHZpZWwgb2Vrb25vbWlzY2hlci4gWnVtaW5kZXN0LCB3YXMgbWVpbmUgQXJiZWl0c3plaXQgYW5nZWh0LAp3ZWlsIGljaCBuaWNodCBhbGxlIDUgTWludXRlbiBCYWVuZGVyIHdlY2hzZWxuIG11c3MuIEF1c3NlcmRlbSBkYXVlcnQgZGFzCkJhY2t1cCBudXIgbm9jaCBldHdhIDEyIE1pbnV0ZW4sIGFsc28ga2FubiBlcyBuaWNodCBnYW56IHNjaGxlY2h0IHNlaW4hCkVpbiBCZW51dHplciBydWZ0IGFuLgoiV2lzc2VuIFNpZSwgd2FydW0gZGFzIFN5c3RlbSBzbyBsYW5nc2FtIGlzdD8iIGZyYWdlbiBzaWUuICJXYWhyc2NoZWlubGljaApsaWVndCdzIGFuIC4uLiIgSWNoIHNjaGF1ZSBuYWNoLCB3YXMgaGV1dGUgZHJhbiBpc3QgIiAuLi4gZGVyIFRha3RmcmUtCnF1ZW56LiIKIkFoLiIgV2VubiBzaWUgbmljaHQgd2lzc2VuLCB3b3ZvbiBtYW4gcmVkZXQsIHNpbmQgc2llIG1laXN0ZW5zIHp1ZnJpZWRlbi4KIldpc3NlbiBTaWUgd2FubiBkYXMgcmVwYXJpZXJ0IHdpcmQ/IiAiUmVwYXJpZXJ0PyBFcyBzaW5kIDI3NSBCZW51dHplciBhdWYKZGVpbmVyIE1hc2NoaW5lLCBlaW5lciBkYXZvbiBiaXN0IGR1LiBOdW4gc2VpIGVpbiBicmF2ZXIgSnVuZ2UgdW5kIGxhc3MKbWFsIGVpbiBwYWFyIGFuZGVyZSByYW4uIExvZyBhdXMsIEVnb2lzdCEiCiJBYmVyIC4uLiBhYmVyIGRpZSBFcmdlYm5pc3NlIG11ZXNzZW4gbW9yZ2VuIGFiZ2VnZWJlbiB3ZXJkZW4uIEljaCBicmF1Y2hlCm51ciBub2NoIGVpbmUgU2VpdGUgYXVmIGRlbSBMYXNlcmRydWNrZXIgLi4iCiJBYmVyIGtsYXIgZG9jaCEgRXJ6YWVobCBkYXMgbWFsIGRlaW5lciBPbWFtYSwgQnJ1ZGVyISIgSWNoIGhhZW5nZSBhdWYuCkh1bmRlcnRhdXNlbmQgSG9lbGxlbmh1bmRlISBNYW4gc29sbHRlIG1laW5lbiwgZGFzcyBzaWUgZW5kbGljaCBsZXJuZW4sIE5JQ0hUCm1laHIgYW56dXJ1ZmVuIQpEYXMgVGVsZWZvbiBrbGluZ2VsdCB3aWVkZXIuIEljaCB3ZWlzcywgZGFzcyBlciBlcyBpc3QuIFNvIHdhcyBuZXJ2dCBtaWNoLgpJY2ggdmVyaW5nZXJlIG1laW5lIFN0aW1tbGFnZSB1bSAyIE9rdGF2ZW4uCiJIQUxMTywgTE9ITkJVQ0hIQUxUVU5HISIKIkFoIC4uIG9oLiBUdXQgbWlyIGxlaWQuIEljaCBoYWJlIGRpZSBmYWxzY2hlIE51bW1lci4uLiIKIlNPT08/IFdpZSBpc3QgZGVubiBJaHIgTmFtZSwgRnJldW5kY2hlbj8gV2lzc2VuIFNpZSwgd2lldmllbCBHZWxkIHVucwpzb2xjaGUgZmFsc2NoZW4gQW5ydWZlbiBrb3N0ZW4/IFdJU1NFTiBTSUUgREFTPyBJY2ggaGFldHRlIGd1dGUgTHVzdCwgSWhyZQp2ZXJnZXVkZXRlIFplaXQsIG1laW5lIHZlcmdldWRldGUgWmVpdCB1bmQgZGllIEtvc3RlbiBkaWVzZXMgQW5ydWZzIHZvbgpJaHJlbSBNb25hdHNnZWhhbHQgYWJ6dXppZWhlbiEgVEFUU0FDSEUsIERBUyBXRVJERSBJQ0ggQVVDSCEgV2VubiBpY2ggbWl0CklobmVuIGZlcnRpZyBiaW4gd2VyZGVuIFNJRSBVTlMgR2VsZCBzY2h1bGRlbiEgV0lFIElTVCBJSFIgTkFNRSAtIFVORApLRUlORSBMVUVHRU4hIFdJUiBIQUJFTiBJU0ROISIKSWNoIGhvZXJlIHdpZSBkZXIgSG9lcmVyICdydW50ZXJmYWVsbHQgdW5kIHNpY2ggamVtYW5kIGluIFRyYWIgc2V0enQgLSBlcgp3aWxsIHNpY2ggaW0gU2VrcmV0YXJpYXQgZGVzIERla2FucyBlaW4gQWxpYmkgYmVzb3JnZW4uIEljaCB0aXBwZSBzZWluZW4KQmVudXR6ZXJuYW1lbiBlaW4gdW5kIHJ1ZmUgaW0gU2VrcmV0YXJpYXQgZGVzIHp1Z2Vob2VyaWdlbiBEZWthbmF0cyBhbi4KIkhhbGxvPyIgbWVsZGV0IHNpZSBzaWNoLgoiSGFsbG8sIFNpbW9uLCBPcGVyYXRvciBoaWVyLiBQYXNzZW4gU2llIGF1ZiEgV2VubiBlciBpbiBldHdhIDEwIFNla3VuZGVuCmluIElociBCdWVybyBzdHVlcm10IGtvZW5uZW4gU2llIGlobSB3YXMgYXVzcmljaHRlbj8iCiJJY2ggZGVua2Ugc2Nob24uLi4iIHNhZ3Qgc2llIHVuc2ljaGVyLgoiU0FHRU4gU0lFIElITTogRVIgS0FOTiBSRU5ORU4sIEFCRVIgRVIgRU5UR0VIVCBNSVIgTklDSFQhIgoiYWVobSwgZ3V0LiIKIlVuZCBuaWNodCB2ZXJnZXNzZW4uIEVzIHdhZXJlIGRvY2ggc2NoYWRlLCB3ZW5uIGplbWFuZCBJaHJlIERhdGVpIG1pdCBkZW4KZWluc2NobGFlZ2lnZW4gUytNIFRpcHMgaW4gSWhyZW0gQWNjb3VudCBmaW5kZW4gd3VlcmRlLi4uIgpJY2ggaG9lcmUgaWhyZSBsYW5nZW4gRmluZ2VybmFlZ2VsIHBhbmlrYXJ0aWcgdWViZXIgZGllIFRhc3RhdHVyIGtsYXBwZXJuLi4uCiJTcGFyZW4gU2llIHNpY2ggZGllIE11ZWhlIC0gaWNoIGhhYicgYmVyZWl0cyAnbmUgS29waWUuIE51biBzZWllbiBTaWUgZWluCmd1dGVzIE1hZWRjaGVuIHVuZCByaWNodGVuIFNpZSdzIGlobSBhdXMhIgpTaWUgdmVyc3ByaWNodCBlcyBoZXVsZW5kLgpEYXMgU2NobGltbWUgYW4gZGVyIFNhY2hlIGlzdDogZGllIFMrTSBTYWNoZSB3YXIgbnVyIGdlcmF0ZW4uIFRyb3R6ZGVtCmhvbGUgaWNoIG1pciByYXNjaCBlaW5lIEtvcGllIGRhdm9uLiBLb2VubnRlIG1hbCBnYW56IGd1dCBzZWluLCB3ZW5uIGljaApuaWNodCBlaW5zY2hsYWZlbiBrYW5uLi4uCkluendpc2NoZW4gaXN0IGRhcyBCYWNrdXAgaW4gbmV1ZXIgUmVrb3JkemVpdCB6dSBFbmRlIGdlbGF1ZmVuLiAxMSBNaW51dGVuCnVuZCAxMCBTZWt1bmRlbi4gRXMgbGViZSBkaWUgbW9kZXJuZSBSZWNobmVydGVjaG5payEKU2Nob24gd2llZGVyIGtsaW5nZWx0IGRhcyBUZWxlZm9uLgoiSWNoIGJyYXVjaGUgbWVociBTcGVpY2hlcnBsYXR6IHNhZ3QgZXIuIgoiV2FydW0gemllaGVuIFNpZSBuaWNodCBpbiBkZW4gT3N0ZW4/IgoiUXVhdHNjaCwgaW4gbWVpbmVtIEFjY291bnQsIFNpZSBJZGlvdC4iCklkaW90PyBPaC1vaC4uLgoiRXMgdHV0IG1pciBzbyBsZWlkIiBzYWdlIGljaCB3aWUgTXV0dGVyIEJlaW1lciBpbiBkZXIgTGluZGVuc3RyYXNzZSAiYWJlcgppY2ggaGFiJyBkYXMgbmljaHQgZ2FueiBtaXRnZWtyaWVndC4gV2FzIHNhZ3RlbiBzaWUgZG9jaCBnbGVpY2g/IgpJY2gga2FubiBkaWUgYXVma29tbWVuZGUgQW5nc3QgZHVyY2ggZGllIExlaXR1bmcgcmllY2hlbi4gQWJlciBlcyBpc3QgenUKc3BhZXQ6IGVyIGlzdCBlcmxlZGlndCB1bmQgZXIgd2Vpc3MgZXMuCiJhZWhtLCBpY2ggc2FndGUsIGhhZXR0ZSBnZXJuZSBldHdhcyBtZWhyIFNwZWljaGVycGxhdHogaW4gbWVpbmVtIEFjY291bnQKYml0dGUuIgoiQWJlciBrbGFyLiBBdWdlbmJsaWNrIG1hbC4iCkljaCBob2VyZSBpaG4gZXJsZWljaHRlcnQgYXVmYXRtZW4gb2J3b2hsIGVyIGRpZSBTcHJlY2htdXNjaGVsIG1pdCBkZXIgSGFuZAphYmRlY2t0LgoiRXJsZWRpZ3QuIFNpZSBoYWJlbiBtYXNzaWcgUGxhdHogamV0enQuIgoiV2lldmllbD8iCkRhcyBnZWh0IG1pciBudW4gd2lya2xpY2ggYXVmIGRlbiBLZWtzISBOaWNodCBudXIgZGFzcyBzaWUgZGF1ZXJuZApTcGVpY2hlcnBsYXR6IHZvbiBtaXIgZm9yZGVybiBzaWUgd29sbGVuIG1pY2ggYXVjaCBub2NoIGtvbnRyb2xsaWVyZW4gdW5kCnByb3Rlc3RpZXJlbiB3ZW5uIGljaCBpaG5lbiBuaWNodCBnZW51ZyBnZWJlLiBTaWUgc29sbHRlbiBnbHVlY2tsaWNoIHNlaW4KIG1pdCBkZW0gd2FzIHZvbiBtaXIgZ2lidCB1bmQgYmFzdGEhCldpZWRlciBtaXQgTXV0dGVyIEJlaW1lcjogIkFsc28sIHNjaGF1bicgd2lyIG1hbC4gU2llIGhhYmVuIDYwIE1CIGZyZWkuIgoiS2xhc3NlISAxMjAgTUIgenVzYW1tZW4uIFZpZWxlbiBEYW5rISIgc2FndGUgZXIgYmVnZWlzdGVydCB2b24gc2VpbmVyClZlcmhhbmRsdW5nc3RlY2huaWsuCiJNb21lbnQhIiB1bnRlcmJyZWNoZSBpY2guIERhcyBtdXNzIG1hbiBnZW5pZXNzZW4gd2llIGVpbmVuClN1ZWRhdXN0cmFsaXNjaGVuIGJlaSBSYXVtdGVtcGVyYXR1ci4KIjYwIE1CIGluc2dlc2FtdC4iCiJXYXM/IEljaCBoYWJlIGRvY2ggc2Nob24gNjAgTUIgYmVsZWd0LiBXaWUga2FubiBpY2ggZGFubiBub2NoIDYwIE1CIGZyZWkKaGFiZW4/IgpJY2ggc2FnZSBuaWNodHMuIElzdCBhdWNoIG5pY2h0IG5vZXRpZy4gRXIgd2lyZCBzY2hvbiBub2NoIGRyYXVmIGtvbW1lbi4KIkFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhcnJycnJycnJycnJyZ2dnZ2doaGhoaGghIgpJY2ggbWFnIG1pY2ggd2VubiBpY2ggZWtsaWcgYmluLiBFaHJsaWNoIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbnR3b3J0IChDcmVhdGl2ZSwgMTMuIE1hciAxOTk2LCAwOTowNDowOCk6Cn4jISBybj1XZW5kZWxsZ2VlIHJ0PTgyNjY0MDE1Nwp+IyEgdGlkPTgyNjY0MDE1NwoKQWNoLCB3ZW4gbWFjaHQgR3JpbW0qIGRlbm4gbmljaHQgc2NobGVjaHQ/Cklnbm9yaWVyZSBlcy4gOikgTWljaCBtYWNodCBlciBhdWNoIHNjaGxlY2h0IHdlZ2VuIGRlciB1cmFsdGVuIFdpdHplLCBkaWUKaWNoIHBvc3RlLCBkZW0gUmVzdCBnZWZhZWxsdHMuIE1hbiBrYW5uIGVzIGVpbmZhY2ggbmV0IGplZGVtIHJlY2h0bWFjaGVuLgpVbmQgTGluemEgaGFiZW4gc293aWVzbyBWb3JyYW5nLgooR290dCBzZWkgRGFuayBkaWUgcmljaHRpZ2UgUnVicmlrKQoKKnJ1bWZsYW1lbmQqIC1DcmVhLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9wZXJhdG9yIHp1bSB6d2VpdGVuIChMaW5rLCAxMy4gTWFyIDE5OTYsIDA5OjQ0OjAwKToKVW5kIHdlaXRlciBnZWh0cywgbWl0IGRlbToKCgogICAgICAgICAgICAgICAgICAgIEJhc3RhcmQgT3BlcmF0b3IgZnJvbSBIZWxsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFRlaWwgMikKCiAgICAgICAgICAgICAgICAgICAgICAgICBTSU1PTiBHQVZBR0xJQQoKCgpJY2ggc3BpZWxlIGdlcmFkZSBET09NIGFuIGRlciBNYXN0ZXJjb25zb2xlIGFscyBpcmdlbmQgc28gZWluIGdlZGFua2VubG8tCnNlciBCYXN0YXJkIGFucnVmdC4gSWNoIGhlYmUgYWIuCiJIYWxsbz8iIHNhZ2UgaWNoLgoiV2VyIGlzdCBkYT8iIHNhZ2VuIHNpZS4KIkljaCBkZW5rZSwgaWNoIGJpbidzIiBzYWdlIGljaC4gV296dSBoYWJlIGljaCBkZW4gS3VycyAnRXJmb2xncmVpY2hlcwpWZXJoYW5kZWxuIGFtIFRlbGVmb24nIGFic29sdmllcnQ/CiJXZXIgaWNoPyIKIldpcmQgZGFzIGVpbiBvZXN0ZXJyZWljaGVyd2l0ej8iIHNhZ2UgaWNoLCB3YWVocmVuZCBpY2ggbWl0IGFsbGVuIHZlcmZ1ZWctCmJhcmVuIEZpbmdlcm4gYXVmIGRlbiBGZWluZCBiYWxsZXJlLgpaVSBTUEFFVC4gWU9VIEdPVCBLSUxMRUQuIEdBTUUgT1ZFUi4KTWVpbmUgTGF1bmUgc2lua3Qgdm9uIG1pbnVzIHp3ZWlodW5kZXJ0IGF1ZiBkZW4gYWJzb2x1dGVuIE51bGxwdW5rdC4gIldhcwprYW5uIGljaCBmdWVyIFNpZSB0dW4/IiBTdGltbWUgc28gd2VpY2ggd2llIEthc2NobWlyd29sbGUgKGVpbiB1bnRydWVnbGljaGVzCldhcm56ZWljaGVuISkKImFlaG0sIEljaCBoYWV0dGUgZ2VybmUgZ2V3dXNzdCwgb2Igd2lyIGVpbiBiZXN0aW1tdGVzIFNvZnR3YXJlLVBha2V0CmhhYmVuLi4uIgoiV2FzIGZ1ZXIgZWluZSBTb2Z0d2FyZSBpc3QgZGFzPyIKImFlaG0sIHNpZSBoZWlzc3QgQi1BLVMtSS1DLiIKPiBrbGlja2VyZGlrbGFja2VyZGlrbGljayByLW0gYi1hLXMtaS1jLmUteC1lIDwKIkhtLCB0dXQgbWlyIGxlaWQsIGhhYmVuIHdpciBuaWNodC4gV2lyIGhhdHRlbiBkYXMgbWFsLi4uIgoiT2guIE5hIGd1dCwgZGllIGFuZGVyZSBTYWNoZSwgd2Vzd2VnZW4gaWNoIGFucnVmZToga29lbm50ZSBtYW4gYWxsZSBEYXRlbgppbiBtZWluZW0gQWNjb3VudCBhdWYgQmFuZCBrb3BpZXJlbi4gRGFubiBoYWV0dGUgaWNoIGVpbmUgU2ljaGVyaGVpdHNrb3BpZQp6dSBIYXVzZSBpbSBGYWxsZSBlaW5lcyBGYWxsZXMuLi4iCiJJbSBGYWxsZSBlaW5lcyBGYWxsZXM/IgoiSmEsIGZhbGxzIHNpZSB6dW0gQmVpc3BpZWwgYXVzIFZlcnNlaGVuIGdlbG9lc2NodCB3ZXJkZW4gb2RlciBzbyAuLi4iCiJHRUxPRVNDSFQhIEFoLCBtYWNoZW4gU2llIHNpY2ggZGEgbWFsIGtlaW5lIFNvcmdlbi4gV2lyIG1hY2hlbiBkb2NoCkJhY2t1cHMuIgooSWNoIGJpbiBzbyBlaW4gU2Nod2VpbiEpICJXaWUgaXN0IElociBVc2VybmFtZT8iCkVyIGdpYnQgbWlyIHNlaW5lbiBVc2VybmFtZW4uIE5pY2h0IHNlaHIgaGVsbGUhCj4ga2xpY2tlZGlrbGFja2VkaWtsaWNrIDwKIkFiZXIgU2llIGhhYmVuIGRvY2ggZ2FyIGtlaW5lIERhdGVuIGluIElocmVtIEFjY291bnQhIiBzYWdlIGljaCwgYmFmZmVzCkVyc3RhdW5lbiBpbiBkZXIgd29obG1vZHVsaWVydGVuIFN0aW1tZS4KIk5hdHVlcmxpY2ggaGFiZSBpY2ggRGF0ZW4uIFNpZSBzY2hhdWVuIHNpY2hlciBhbiBkZXIgZmFsc2NoZW4gU3RlbGxlISIKPiBrbGlja2VkaWtsYWNrZWRpa2xpY2sgPAoiQWgsIHN0aW1tdC4gSWNoIHdhciBmYWxzY2giIHNhZ2UgaWNoLgpIYXQgZXIgbmljaHQgZ2VyYWRlICdUeXBpc2NoJyBpbiBzZWluZW4gQmFydCBnZW11cm1lbHQ/IE1laW4gbGllYmVyCkZyZXVuZC4uLgoiSWNoIFdvbGx0ZSBzYWdlbjogREVSIFVTRVJOQU1FIEVYSVNUSUVSVCBHQVIgTklDSFQuIgoiV2FzPyIgV2ltbWVybiBpbiBkZXIgTGVpdHVuZy4gIkFiZXIgZGEgbXVzcyBlaW5lciBzZWluLiBJY2ggaGFiZSBkb2NoIGVyc3QKaGV1dGUgbW9yZ2VuIGRhcmluIGdlYXJiZWl0ZXQhIgoiQWhhISBEYSBsaWVndCBkYXMgUHJvYmxlbS4gU2VoZW4gU2llLCBkYSB3YXIgZWluIFZpcnVzIGltIFN5c3RlbSBoZXV0ZQptb3JnZW4uIERlciAuLi4gYWVoIC4uIExlb25hcmRvIGRhIFZpbmNpIFZpcnVzLiBMb2VzY2h0IGFsbGUgVXNlciBkaWUgZ2VyYWRlCmVpbmdlbG9nZ3Qgc2luZCwgd2VubiBlciBsb3NicmljaHQuIgoiRGFzIGthbm4gbmljaHQgc2Vpbi4gTWVpbmUgRnJldW5kaW4gd2FyIGF1Y2ggZWluZ2Vsb2dndCwgdW5kIGpldHp0IGJpbgppY2ggZ2VyYWRlIGluIGlocmVtIEFjY291bnQhIgoiVW5kIHdlbGNoZXIgaXN0IGRhcz8iCkVSIFNBR1QgRVMgTUlSLiBNQU5DSEUgTEVVVEUgTEVSTkVOJ1MgTklFLgoiQWgsIGphLiBEZW4gQWNjb3VudCBrb25udGVuIHdpciBnZXJhZGUgbm9jaCByZXR0ZW4uIgo+IGtsaWNrZWRpa2xhY2tlZGlrbGljayA8CiJTaWUgaGF0IG51ciBhbGxlIERhdGVuIHZlcmxvcmVuLiIKIkFiZXIuLi4iCiJLZWluZSBTb3JnZS4gV2lyIGhhYmVuIGRvY2ggYWxsZXMgYXVmIEJhY2t1cC4iCiJPaCwgR290dCBzZWkgRGFuayEhISIKIkF1ZiBMb2Noc3RyZWlmZW4tQmFja3VwISBIYWJlbiBTaWUgZWluZW4gTGVzZXIgZGFmdWVyPyBXaXIgbmljaHQhIFZpZWwKU3Bhc3MhISEiCkljaCBiaW4gc28gZWluIEh1bmQhCk1laW4gSm9iIGlzdCBzbyBlaW5lIEhldHplLCBkYXNzIGljaCBrYXVtIGRhenUga29tbWUsIGt1cnogbWFsIGlucyBLaW5vIHp1CmZhaHJlbiwgYmV2b3IgZGllIExldXRlIGlocmUgQXVzZHJ1Y2tlIGFiaG9sZW4ga29tbWVuLiBEaWUgUXVldWUgaXN0CnNvd2llc28gdmllbCB6dSB2b2xsLCBhbHMgZGFzcyBpY2ggYWxsZXMgcmVjaHR6ZWl0aWcgYXVzZ2VkcnVja2VuICh1bmQKc29ydGllcmVuKSBrb2VubnRlLiBBbHNvIGtpbGxlIGljaCBhbGxlIGRpZSBrbGVpbmVyZW4gSm9icyBiaXMgYXVmIHp3ZWkgdW5kCmRpZSBsYXNzZW4gc2ljaCBpbSBOdSBzb3J0aWVyZW4uCk5hY2ggZGVtIEZpbG0gKGVpbmVyIHZvbiBkaWVzZW4gRW5kbG9zLUJlcnRvbHVjY2lzLCB3byBkZXIgSGVsZCBuYWNoIGRyZWkKU3R1bmRlbiBlbmRsaWNoIGluIGdyYW5kaW9zZW4gVmlzaW9uZW4genVncnVuZGUgZ2VodCkga29tbWUgaWNoIHp1cnVlY2sgdW0KZGllIEF1c2RydWNrZSBhdXN6dWdlYmVuLgpFdHdhIGZ1ZW5memlnIExldXRlIHdhcnRlbiBkcmF1c3NlbiB1bmQgaWNoIGhhYmUgendlaSBBdXNkcnVja2UuIFN0aW1tdAp6aWVtbGljaCBndXQgbWl0IG1laW5lbSBEdXJjaHNjaG5pdHQgdWViZXJlaW4uIEFuZGVyZXJzZWl0cyBoYWV0dGUgaWNoIG1laHIKa2lsbGVuIHNvbGxlbi4gRWdhbCwgaWNoIGxhc3NlIGRpZSBiZWlkZW4gQXVzZHJ1Y2tlIGVsZWdhbnQgYXVmIGRlbiBUaXNjaApnbGVpdGVuIGRyZWhlIG1pY2ggdW0gdW5kIGdlaGUgYmV0b250IGxhbmdzYW0genVydWVjayBpbiBtZWluZW4gR2xhc2thc3Rlbi4KRGFiZWkgaGFsdGUgaWNoIGRldXRsaWNoIHNpY2h0YmFyIGRhcyBDbGlwYm9hcmQgaW4gZGVyIEhhbmQsIGRhcyBtaXQgZGVuCmdyb3NzZW4gcm90ZW4gQnVjaHN0YWJlbiAnQUNDT1VOVFMgVE8gUkVNT1ZFJyBhdWYgZGVyIFJ1ZWNrc2VpdGUuIEtlaW5lcgpzYWd0IGVpbiBXb3J0LiBXaWUgaW1tZXIuCkljaCBzaXR6ZSB3aWVkZXIgZ2VtdWV0bGljaCBpbSBPcGVyYXRvci1TZXNzZWwgdW5kIGJlb2JhY2h0ZSBkZW4gdWViZXItCndhY2h1bmdzLU1vbml0b3IsIGRlciB6dWZhZWxsaWcgbWl0IGRlbSBWaWRlb3BsYXllciBhdXMgZGVyIG1lZGl6aW5pc2NoZW4KT3B0aWsgdmVyYnVuZGVuIGlzdCAoenVyIFJlcGFyYXR1ciBoaWVyOyBnZXNjaGFldHp0ZXIgVGVybWluIGRlciBSdWVjay0KbGllZmVydW5nIGlyZ2VuZHdhbm4gaW4gMjAwMSkuIFBsb2V0emxpY2gga2xpbmdlbHRlIGRhcyBUZWxlZm9uLiBEYXMgbXVzcwpoZXV0ZSBzY2hvbiBkYXMgendlaXRlIE1hbCBzZWluIHVuZCBlcyBiZWdpbm50IG1pciBhdWYgZGllIE5lcnZlbiB6dQpnZWhlbi4KIkphPyIgc2FnZSBpY2ggdW5kIGhhbHRlIGRhcyBCaWxkIGFuLgoiSWNoIGhhYicgYXVzIFZlcnNlaGVuIG1laW5lbiBMZWJlbnNsYXVmIGdlbG9lc2NodCIgc2FndCBkaWUgU3RpbW1lIGFtCmFuZGVyZW4gRW5kZS4KIlRhdHNhZWNobGljaD8gV2llIHdhciBJaHIgVXNlcm5hbWU/IgpFciBzYWd0IGVzIG1pci4gU2NoLi4uLiB3aWUgbGFuZ3dlaWxpZy4KIkFoLCBuZWluLiBOaWNodCBTaWUgaGFiZW4gaWhuIGdlbG9lc2NodCAtIGljaCB3YXIncy4iCiJXYXM/IgoiSWNoIGhhYicgaWhuIGdlbG9lc2NodCEgRXIgd2FyIHZvbGwgbWl0IFNjaC4uLiEgSW4ga2VpbmVtIGVpbnppZ2VuIEZhY2gKd2FzIEJlc3NlcmVzIGFscyAnbmUgendlaSEiCiJIYWVoPyIKIlVuZCBkZXIgTWlzdCBtaXQgZGVtIEF1c3RhdXNjaHN0dWRpdW0gLSBkYXMgd2FyIElocmUgRnJldW5kaW4sIHVuZCB3aXIKYmVpZGUgd2lzc2VuIGRhcyEiCiJIYWVoPz8iCiJOYSwgSWhyZSBTdHVkaWVuYW5nYWJlbi4gSWNoIGhhYidzIG5hY2hnZXBydWVmdC4gU2llIGhhYmVuIGdlbG9nZW4uIgoiV2llIGhhYmVuIFNpZSAuLi4iIEVzIGtsaWNrdCBkZXV0bGljaCBob2VyYmFyLiAiT2gsIG5laW4uIFNJRSBzaW5kJ3MhIERlcgpCQVNUQVJEIE9QRVJBVE9SIEZST00gSEVMTCEiCiJMZWliaGFmdGlnLCBhbSBUZWxlcGhvbiB1bmQgaW4gSWhyZW0gQWNjb3VudC4gRXMgd2FlcmUgd2lya2xpY2ggYmVzc2VyCmdld2VzZW4gbmljaHQgYW56dXJ1ZmVuLCB3aXNzZW4gU2llLiBWb3IgYWxsZW0gaGFldHRlbiBTaWUgSWhyZW4gVXNlcm5hbWVuCmxpZWJlciBmdWVyIHNpY2ggYmVoYWx0ZW4gc29sbGVuLi4uIgo8IGtsaWNrZWRpa2xhY2tlZGlrbGljayA+CiJUamEsIHVuZCBkYW5uIGhhZXR0ZW4gU2llIGRlbSBTeXN0ZW0gTWFuYWdlciBrZWluZSBzbyBib2VzZSBNYWlsIHNjaGlja2VuCmR1ZXJmZW4uIEVpbmUgTWFpbCwgZGllIGF1c2RydWVja3QsIHdhcyBTaWUgdm9uIGlobSBoYWx0ZW4gLSBpbiBodWVic2NoZW4KQmlsZGVybiEiCiJJY2ggaGFiZSBrZWluZSAuLi4iCjwga2xpY2tlZGlrbGFja2VkaWtsaWNrIGtsaWNrID4KIlNvPyBIYWJlbiBTaWUgbmljaHQ/IFdlciBrYW5uIGRhcyBub2NoIHNhZ2VuIGhldXR6dXRhZ2U/IEtlaW5lClNvcmdlLCBlcwpiYWxkIHdpcmQgYWxsZXMgdm9ydWViZXIgc2Vpbi4uLi4iCjwga2xpY2tlZGlrbGFja2VkaWtsaWNrIGtsaWNrID4KLi4uIG5vY2ggZGVuIFVzZXJuYW1lbiB6dXJ1ZWNrYWVuZGVybiAuLi4KPCBrbGlja2VkaWtsYWNrZWRpa2xpY2sgPgoiQi1iLWItYiIgYmx1YmJlcnQgZXIgd2llIGVpbmUgZGVzeW5jaHJvbmlzaWVydGUgUERQLTExLgoiTGViZW4gU2llIHdvaGwiIHNhZ2UgaWNoIHVlYmVyZnJldW5kbGljaC4gIkljaCBkZW5rZSBTaWUgc29sbHRlbiBqZXR6dApiZXNzZXIgcGFja2VuLiBWaWVsIFNwYXNzIGJlaW0gTmV1YmVnaW5uLiIKSWNoIGxlZ2UgYXVmLgpad2VpIFNla3VuZGVuIHNwYWV0ZXIgbGFldXRldCBkYXMgcm90ZSBUZWxlZm9uLiBFcyBpc3QgZGVyIEJvc3MuIEVyIGtudXJydApkZW4gVXNlcm5hbWVuIC0gdm9uIHdlbSB3b2hsPyAtIHVuZCBldHdhcyB1ZWJlciBlaW5lIHNjaHdlaW5pc2NoZSBNYWlsLgoiU2llIHdpc3Nlbiwgd2FzIFNpZSB6dSB0dW4gaGFiZW4gLi4uIiBtaXQgZGVuIFB1bmt0ZW4gdW5kIGFsbGVtLgpTcGFldGVyLCBpbSBBYnJlY2hudW5nc2NvbXB1dGVyIGRlciBTdGFlZHRpc2NoZW4gRWxla3RyaXppdGFldHN3ZXJrZSwKd2FlaHJlbmQKaWNoIGRpZSBuYWVjaHN0ZSBSZWNobnVuZyBkZXMgYXJtZW4gU2Nod2VpbnMgdW0gZWluIHBhYXIgTnVsbGVuIGtvcnJpZ2llcmUsCnd1bmRlcmUgaWNoIG1pY2ggd2llZGVyIGVpbm1hbCB1ZWJlciBkaWVzZW4gaGFydG5hZWNraWdlbiB1bmQgdW5nbGF1YmxpY2hlbgpNYW5nZWwgYW4gVXJ0ZWlsc3Zlcm1vZWdlbiAtIHdlbGNoZSBCbG9lZGhlaXQga29zbWlzY2hlbiBBdXNtYXNzZXMgdHJlaWJ0IHNpZQppbW1lciB3aWVkZXIgZGF6dSwgYmVpIG1pciBhbnp1cnVmZW4uIE5vY2ggc3BhZXRlciwgYWxzIGljaCBpbSBGQkkgQ29tcHV0ZXIKc2VpbiBQaG90byB2b24gZGVyIFdXVyBQYWdlIGluIGRpZSBHZXN1Y2h0ZW5saXN0ZSBrb3BpZXJlIChkaWUgbWl0IGRlbQpMYWJlbCAnRHJpbmdlbmQgZ2VzdWNodCwgYmV3YWZmbmV0IHVuZCBnZWZhZWhybGljaCwgc29mb3J0IHNjaGllc3NlbicpIGtvbW1lCmljaCB6dSBkZW0gU2NobHVzcyBkYXNzIGljaCBlcyB3b2hsIG5pZW1hbHMgd2lzc2VuIHdlcmRlIC0gYWJlciBkYXMgTGViZW4KZ2VodCB3ZWl0ZXIuCkVpbiBwYWFyIFN0dW5kZW4gc3BhZXRlciBzZWhlIGljaCBkaWUgR1NHIDkgc2VpbiBBcGFydG1lbnQgdW1zdGVsbGVuIHVuZAptaXIgd2lyZCBrbGFyOiBmdWVyIGVpbiBwYWFyIHZvbiB1bnMgd2lyZCBlcyBkYXMgbmljaHQuIEFiZXIgbW9yZ2VuIGlzdCBlaW4KbmV1ZXIgVGFnLgpFcyBpc3QgRG9ubmVyc3RhZyB1bmQgaWNoIGJpbiBndXRlciBMYXVuZS4gRXMgaXN0IFphaGx0YWcuIEljaCBkZW5rZSwgZWluCnBhYXIgQW5ydWZlIGtvZW5uZW4gbmljaHQgc2NoYWRlbi4gQWxzbyBsZWdlIGljaCBkZW4gSG9lcmVyIHp1cnVlY2sgYXVmIGRpZQpHYWJlbC4gRXMgbGFldXRldC4KIlNlaXQgU3R1bmRlbiB2ZXJzdWNoZSBpY2ggU2llIHp1IGVycmVpY2hlbiEiIHNjaHJlaXQgZWluZSBTdGltbWUgYW0KYW5kZXJlbiBFbmRlLgoiTmFuYW5hLCBTVFVOREVOIGtvZW5uZW4ncyBnYXIgbmljaHQgZ2V3ZXNlbiBzZWluIiwgc2FnZSBpY2gsIHdhZWhyZW5kIGljaAonQmxhZGUgUnVubmVyJyBpbnMgQ292ZXIgenVydWVja3N0ZWNrZSB1bmQgbWlyIGRpZSBSdWVja3NlaXRlIGFuc2NoYXVlLgoiQWxsZW5mYWxscyAxMTQgTWludXRlbi4gSWNoIGhhdHRlIGVpbmVuIGxhbmdlbiBDaGF0IG1pdCBkZW0gZ3Jvc3NlbiBCb3NzLgpWZXJzdWNodGUgYmVzc2VyZSBUZWNobmlrIGZ1ZXIgdW5zZXJlIEJlbnV0emVyIGhlcmF1c3p1c2NobGFnZW4uIgpFaW5zLCB6d2VpLCBkcmVpIC4uLgoiT2gsIHR1dCBtaXIgbGVpZC4iCiJNYWNodCBuaXguIEljaCBiaW4gbmljaHQgbmFjaHRyYWdlbmQuIgpJY2ggbmVobWUgbWlyIHZvciwgc2VpbiBQYXNzd29ydCBpbiBkZW4gbmFlY2hzdGVuIFRhZ2VuIGV0d2FzIGFienVhZW5kZXJuLAppbiBldHdhcywgd29yYXVmIGVyIG5pY2h0IHNvIHNjaG5lbGwga29tbWVuIGR1ZXJmdGUuCiJhZWhtLCBpY2ggd2Vpc3MgbmljaHQsIHdpZSBpY2ggZWluIEZpbGUgdW1iZW5uZW4ga2FubiIgc2FndCBlci4KT2gsIEdvdHQuLi4gTW9tZW50IGVzIGlzdCBqYSBaYWhsdGFnLCBuaWNodD8gQWxzbyBiaW4gaWNoIGd1dGVyIExhdW5lLgoiQWJlciBrbGFyLiBUaXBwZW4gU2llIG51ciAncm0nIHVuZCBkZW4gRmlsZW5hbWVuLiIKIlZpZWxlbiBEYW5rLiIKIktlaW5lIFVyc2FjaGUuIgooSmV0enQgYmluIFdJUktMSUNIIGd1dGVyIExhdW5lLiBWaWVsbGVpY2h0IHNvbGx0ZSBpY2ggaGV1dGUgZGFzIFNrcmlwdApmZXJ0aWdzY2hyZWliZW4sIGRhcyBBYnNwZWljaGVybiB6dSBiZXN0aW1tdGVuLCB6dWZhZWxsaWcgZ2V3YWVobHRlbiBaZWl0ZW4KdW5tb2VnbGljaCBtYWNodC4pIERhcyBUZWxlcGhvbiBsYWV1dGV0IHdpZWRlci4KIkhhbGxvPyIKIkhhbGxvLCBlYmVuZmFsbHMiIHNhZ2UgaWNoLgoiSXN0IGRhcyBkZXIgS29udHJvbGxyYXVtPwoiQWJlciBrbGFyIGRvY2giIHNhZ2UgaWNoIHp1Y2tlcnN1ZXNzLgoiS29lbm50ZW4gU2llIG1pciBiaXR0ZSBtZWluZSBBdXNkcnVja2UgaGVyYXVzYnJpbmdlbj8gSWNoIGJyYXVjaGUgc2llCmRyaW5nZW5kIHVuZCBkZXIgQXVzZHJ1Y2sgbXVlc3N0ZSBzY2hvbiBzZWl0IGZ1ZW5mIE1pbnV0ZW4genUgRW5kZSBzZWluLiIKIklociBVc2VybmFtZT8iIGZyYWdlIGljaC4KRXIgZ2lidCBpaG4gbWlyIHVuZCBpY2ggbm90aWVyZSBpaG4gZnVlciBzcGFldGVyLgoiS2VpbiBQcm9ibGVtLiBNb21lbnQuIiBzYWdlIGljaCB1bmQgZ2VoZSAncnVlYmVyIHp1IGRlbiBEcnVja2Vybi4KRWluIFJJRVNFTiBIYXVmZW4gdm9uIEF1c2RydWNrZW4gbGllZ3QgYXVmIGRlbSBCb2Rlbi4gVW5kIHRhdHNhZWNobGljaCwKc2VpbiBEb2t1bWVudCBsaWVndCBnYW56IG9iZW4gYXVmLiBJY2ggYnJlaXRlIGVzIHVlYmVyIGRlbSBIYXVmZW4gYXVzIHVuZApzcHJ1ZWhlIGdyb3NzenVlZ2lnIHVuc2VyIFNwZXppYWxmbGVja2Vud2Fzc2VyIGluIGRpZSBHZWdlbmQuIERhbm4gZmFocmUgaWNoCmRlbiBzY2h3ZXJlbiBCYW5kd2FnZW4gZWluIHBhYXIgTWFsIGRhcnVlYmVyIHVuZCBrbGVtbWUgZXMgenVtIGtyb2VuZW5kZW4KQWJzY2hsdXNzIHZpZXIsIGZ1ZW5mIE1hbCBpbiBkaWUgc2Nod2VyZSBTYWZldHVlcmUgZWluLCB3byB3aXIgZGllIEJhY2t1cC0KQmFlbmRlciBhdWZiZXdhaHJlbiBzb2xsdGVuLiBIdWVic2NoLgoiSGllciBzaW5kIElocmUgQXVzZHJ1Y2tlIiBzYWdlIGljaCAiVHV0IG1pciBsZWlkLCBkYXNzIGVzIHNvbGFuZ2UgZ2VkYXVlcnQKaGF0LiBXaXIgaGFiZW4gZWluIHBhYXIga2xlaW5lcmUgUHJvYmxlbWUgbWl0IGRlbSBEcnVja2VyLiIKRWluIEJsaWNrIHVuZCBlciBtYWNodCBzaWNoIGZhc3QgaW4gZGllIEhvc2UuCiJPaCwgR290dCEgS2FubiBpY2ggZXMgbm9jaG1hbCBkcnVja2VuPyIgZnJhZ3QgZXIgYmVzb3JndC4KIkFiZXIga2xhciBkb2NoIiBzYWdlIGljaC4gIkFiZXIgd2llIGdlc2FndCwgdW5zZXIgUHJpbnRlciBpc3QgbmljaHQKYmVzb25kZXJzIGd1dCBkcmF1ZiBoZXV0ZS4iCiJhZWgsIGthbm4gaWNoIGVzIGF1ZiBkZW0gTGFzZXIgZHJ1Y2tlbiAtIGZ1bmt0aW9uaWVydCBkZXI/IgoiTmF0dWVybGljaCwgYWJlciBkYXMga29zdGV0IGVpbmUgS2xlaW5pZ2tlaXQiIHNhZ2UgaWNoLiBNaXRnZWZ1ZWhsIHZlci0Kc3Ryb2VtZW5kLgoiRWdhbCwgd2FzIGVzIGtvc3RldCEgRGFzIGlzdCBoeXBlci1kcmluZ2VuZCEiCkljaCBzY2hsZWljaGUgenVydWVjayBpbiBkZW4gRHJ1Y2tlcnJhdW0gdW5kIHN1Y2hlIGRpZSBUb25lcmthc3NldHRlLCBkaWUKd2lyIGZ1ZXIgc3BlemllbGxlIEZhZWxsZSBhdWZiZXdhcmVuIC0gZGllIG1pdCBkZW4gZGlja2VuIHNjaHdhcnplbiBTdHJlaWZlbgppbiBkZXIgTWl0dGUgdW5kIGRlbiBibGFzc2VuIFJhZW5kZXJuLiBJY2ggaGFiZSBhdWNoIHppZW1saWNoIGxhbmdlCmdlYnJhdWNodCwgYmlzIHNpZSBzbyBndXQgZnVua3Rpb25pZXJ0ZS4gRGVyIEF1c2RydWNrIGtvbW10IHJhdXMgdW5kIGljaApicmluZ2UgaWhuIHNvZm9ydCBuYWNoIHZvcm5lLiBCbG9zcyBuaWNodHMgdmVycGFzc2VuLgoiVy13LXctd2FzIGlzdCBkZW4gamV0enQgcGFzc2llcnQ/IiB3aW5zZWx0IG1pY2ggZGVyIEdlY2sgYW4uCkd1dCwgZGFzcyBpY2ggZGVuIFVzZXJuYW1lbiBub3RpZXJ0IGhhYmUgLSBHZWlzdGlnZSBGb2x0ZXIgaXN0IHZpZWxsZWljaHQKZG9jaCBldHdhcywgd29mdWVyIGljaCBtaWNoIGxhZW5nZXJmcmlzdGlnIGJlZ2Vpc3Rlcm4ga29lbm50ZS4KImFlaCwgbmljaHRzLiBJY2ggbWVpbmUsIGtsYXI6IGVzIGlzdCBuaWNodCBwZXJmZWt0LiBBYmVyIGRlciBUb25lciBoYXQKYXVjaCBzY2hvbiA0NyBUYXVzZW5kIFNlaXRlbiBkcmF1ZiB1bmQgd3VyZGUgMTdtYWwgbmFjaGdlZnVlbGx0LiBJY2ggZmluZGUsCmVzIGlzdCBub2NoIGd1dCBnZWdlbiBkYXMsIHdhcyB3aXIgc29uc3Qgc28gYmVrb21tZW4uIgpEZXIgR2VjayB6YWhsdCB1bmQgYmVnaW5udCB6dSB3aW1tZXJuLgoiTmEsIGtvbW1lbiBTaWUuIEtlaW4gR3J1bmQgenVtIEhldWxlbi4gSGFiZW4gU2llIGRpZSBBcmJlaXQgYXVmCkRpc2tldHRlbj8iCkVyIGdpYnQgbWlyIGVpbmUga2xlaW5lIFBsYXN0aWtib3ggbWl0IERpc2tldHRlbi4gSWNoIGh1ZXBmZSBzY2huZWxsIHJlaW4KdW5kIGxlZ2Ugc2llIGt1cnogYXVmIGRlbiBMb2VzY2gtTWFnbmV0ZW4uIEljaCBnZWhlIHdpZWRlciBoaW5hdXMuCiJUdXQgbWlyIHNvIGxlaWQsIGFiZXIgbWlyIGZhZWxsdCBnZXJhZGUgZWluLCBkYXNzIHVuc2VyIExlc2VnZXJhZXQgaGludWViZXIKaXN0LiBTaWUgbXVlc3NlbiBkYW1pdCB6dSBkZW0gRHJ1Y2tlcnJhdW0gVSBhbSBhbmRlcmVuIEVuZGUgZGVzIENhbXB1cyAtCmtlbm5lbiBTaWUgZGVuPyAtIHVuZCBlcyBkb3J0IGF1c2RydWNrZW4uIERvcnQgc29sbHRlIGVzIGtsYXBwZW4uIERpZQpoYWJlbiBnZXN0ZXJuIGVpbmVuIG5ldWVuIFRvbmVyIGJla29tbWVuLiIKIlNVUEVSISIKIkdlcm4gZ2VzY2hlaGVuLiBVbmQgZGVua2VuIFNpZSBkYXJhbjogaW1tZXIgZGllIERpc2tldHRlbiBob2NoIHVlYmVyIGRlbgpLb3BmIGhhbHRlbi4gRGFzIEVyZG1hZ25ldGZlbGQgaXN0IGhldXRlIHdpZWRlciBleHRyZW0gc3RhcmsuIgoiSGFlaD8/PyIKIktlaW5lbiBsYW5nZW4gUmVkZW4uIE1hY2hlbiBTaWUncy4iCkVyIG1hcnNjaGllcnQgbG9zLCBkaWUgRGlza2V0dGVuIGhvY2ggdWViZXIgZGVtIEtvcGYuCk1hbmNobWFsIGhhc3NlIGljaCBtaWNoIHNlbGJzdC4KRGllIGRhdWVybmRlIExhbmdld2VpbGUgYnJpbmd0IG1pY2ggdW0uIEFsc28gbGVzZSBpY2ggVXNlci1FbWFpbCwgdW0gZGllClplaXQgdG90enVzY2hsYWdlbi4gQWxsZXJkaW5ncyBtdXNzIGljaCB6dWdlYmVuLCBkYXNzIGRpZSBoZXV0aWdlIExpZWZlcnVuZwphdWNoIG51ciB6dW0gR2FlaG5lbiBhbnJlZ3QuIE5pY2h0IGVpbmUgd2lya2xpY2ggZ3V0ZSBOYWNocmljaHQgZGFydW50ZXIuCk5pY2h0IG1hbCB2ZXJzdGVja3RlIEFuZGV1dHVuZ2VuIHVlYmVyIEZ1bW1lbG4gaW0gU3VwZXJtYXJrdCwgd2llIHNvbnN0LgpHYXIgbmljaHRzLiBTdGF0dCBkZXNzZW4gbXVzcyBpY2ggbWlyIGRlbiB1ZWJsaWNoZW4gU2NoLi4uIHp1IEdlbXVldGUKZnVlaHJlbjoKV2VsY2hlciBWZXJ3YW5kdGUgd2FubiB3ZWxjaGUgQXJ0IHZvbiBPcGVyYXRpb24gdWViZXIgc2ljaCBlcmdlaGVuIGxhc3NlbgptdXNzIHVuZCB3ZWxjaGUgZXMgbmljaHQgdWViZXJsZWJ0IGhhYmVuLCB3aWUgZGFzIFdldHRlciBhdWYgZGVyIGFuZGVyZW4KU2VpdGUgZGVzIEVyZGJhbGxzIGlzdCwgZGllIFNvcnRlIHZvbiBSZWR1bmRhbnptYWlscywgZGllIG51ciB1bnNlcmUKUXVldWVzIHZvbGxrbmFsbGVuIQpVbSBkaWUgU2FjaGUgZXR3YXMgYXVmenVsb2NrZXJuLCBob2xlIGljaCBlaW5lIHBlcnNvZWhubGljaGUgUGFydHlFaW5sYWR1bmcKYXVzIGVpbmVyIE1haWxib3gsIHBvc3RlIHNpZSB1bnRlciBkZW0gTmFtZW4gZGVzIFNlbmRlcnMgaW4KYWx0LnNpbmdsZXMud2l0aC5zZXZlcmUuc29jaWFsLmR5c2Z1bmN0aW9ucyBpbSBVU0VORVQgdW5kIG1hY2hlIGVpbmUgTm90aXoKaW4gbWVpbmVtIEthbGVuZGVyLCBkYW1pdCBpY2ggcmVjaHR6ZWl0aWcgZG9ydCBiaW4gLSBtaXQgbWVpbmVyIFZpZGVvLQpjYW1lcmEuIEtvZW5udGUgd2FzIHdlcmRlbiEKV2FzIHN0ZWh0IGFscyBuYWVjaHN0ZXMgYW4/IEFoIGphLCBkaWUgbWVkaXppbmlzY2hlIERhdGVuYmFuaywgaW4gZGVyIGRpZQpWZXJ0cmF1ZW5zYWVyenRlIGRlciBVbmkgZGllIEtyYW5raGVpdHNnZXNjaGljaHRlbiBkZXIgQW5nZXN0ZWxsdGVuCnNwZWljaGVybi4gSWNoIGdyZXBlIHNjaG5lbGwgbWFsIGR1cmNoIG5hY2ggJ0hlcnBlcycgdW5kICdTeXBoaWxpcycgdW5kCnZlcmthdWZlIGRpZSBFcmdlYm5pc3NlIGFuIGRpZSBsb2thbGUgQm91bGV2YXJkcHJlc3NlLgpVbSBtZWluZSBTcHVyZW4genUgdmVyd2lzY2hlbiwgZ2VoZSBpY2ggaW4gZGVuIEFjY291bnQgZGVzIE9iZXJhcnp0ZXMgdW5kCmZ1ZWdlIGRvcnQgZm9sZ2VuZGVuIEVpbnRyYWcgaW4gc2VpbiBPbmxpbmUtVGFnZWJ1Y2ggZWluOiBETSA1MDAsIE1lZC4KRGF0ZW4gYW4gWmVpdHVuZy4KU29sbHRlIGF1c3JlaWNoZW4hCkljaCBzY2hpY2h0ZSBlaW4gcGFhciBCYWVuZGVyIGF1cyBkZW4gUmVnYWxlbiBhdWYgZGVuIExhYm9yd2FnZW4gdW5kCnp1cnVlY2ssIGRhbWl0IGVzIHNvIGF1c3NpZWh0LCBhbHMgb2Igd2lyIHNpZSB0YXRzYWVjaGxpY2ggdmVyd2VuZGVuLgpEYW5uIGdlaGUgaWNoIGluIEFyY2hpZSB1bmQgc3VjaGUgbmFjaCBlaW5lbSBiZXN0aW1tdGVuIHZlcmJvcmdlbmVuIFgtR0lGClNlcnZlciwgdm9uIGRlbSBpY2ggZ2Vob2VydCBoYWJlLiBBbHMgaWNoIGlobiBmaW5kZSBzdGFydGUgaWNoIGVpbmVuIEJhdGNoCnVudGVyIGVpbmVtIFVzZXItQWNjb3VudCwgdW0gZGllIEJpbGRjaGVuICdydW50ZXIgenUgbGFkZW4gLSBuYXR1ZXJsaWNoIGF1ZgpzZWluZSBLb3N0ZW4uIEdlcmFkZSBub2NoIHJlY2h0emVpdGlnIGZhZWxsdCBtaXIgZWluLCBvYiBhdWNoIGdlbnVnClNwZWljaGVycGxhdHogZnVlciBkaWUgQmlsZGVyIGZyZWkgaXN0LgpVbSBnYW56IHNpY2hlciB6dSBnZWhlbiwgZW50ZmVybmUgaWNoIGFsbGUgRGF0ZWllbiBhdWYgZGVyIFBsYXR0ZSwgZGllCm5pY2h0IGRpcmVrdCBtaXQgZGVtIEJhdGNoIHp1IHR1biBoYWJlbi4gWnVtIEJlaXNwaWVsIGRpZSBnYW56ZW4gTGFUZVgKRG9rdW1lbnRlICJkaXNzKi4qIjsgZGllIHNpbmQgaW4gbGV0enRlciBaZWl0IHNvd2llc28gc2Nob24gd2llZGVyIHZpZWwgenUKZ3Jvc3MgZ2V3b3JkZW4uClp1cnVlY2sgaW4gVXNlciBlbWFpbCBzY2hhdWUgaWNoLCBvYiBzaWNoIGluendpc2NoZW4gd2FzIGdldGFuIGhhdC4KTmFhYWguIFNjaGxpZXNzbGljaCBncmVwZSBpY2ggYWxsZSBmaWxlcyBuYWNoICdzY2h3YW5nZXInLCAnU2NoZWlkdW5nJyB1bmQKJ1RoZXJhcGllJyB1bmQgcG9zdGUgc2llIGFub255bSBpbiBlaW5lIGxva2FsZSBLbGF0c2NoLU5ld3Nncm91cC4KRGFubiwgYmV2b3IgaWNoIGF1Y2ggbnVyIHBpZXAgc2FnZW4ga2FubiwgaXN0IGRlciBTdHJvbSB3ZWchIEluIGRlcgpuYWVjaHN0ZW4gU2VrdW5kZSBsYWV1dGV0IHNjaG9uIGRhcyBUZWxlZm9uLgoiSGFsbG8/IiBzYWdlIGljaCwgd3VldGVuZCAtIGRlciBDb3lvdGUgaGF0IGRlbiBSb2FkcnVubmVyIGdlcmFkZSBmYXN0IGFtCldpY2tlbCBnZWhhYnQhCiJXYXMgaXN0IG1pdCBkZW0gQ29tcC4uLiIKSWNoIGhhZW5nZSBhdWYuIEpldHp0IGdlaHQncyB1bSBMZWJlbiBvZGVyIFRvZC4gU28gc2NobmVsbCBpY2ggIGthbm4sIHJlaXNzZQppY2ggZGFzIFN0cm9ta2FiZWwgZGVzIE1haW5mcmFtZXMgYXVzIGRlciBOb3RzdHJvbXZlcnNvcmd1bmcgdW5kIHNjaGxpZXNzZQpmaWViZXJoYWZ0IG1laW4gVFYgZGFyYW4gYW4uIFZlcmRhbW10ISBEZXIgUm9hZHJ1bm5lciB3YXIgd2llZGVyCnNjaG5lbGxlciEKSW56d2lzY2hlbiBmYW5nZW4gdWViZXJhbGwgZGllIFdhcm5lciBhbiB6dSBqYXVsZW4sIHdlaWwgZGllIEhhdXB0cGxhdHRlbi0Kc3BlaWNoZXIgJ3J1bnRlcmZhaHJlbi4gQWJlciB3YXMgc29sbCdzPyBNZWluIE1hYyB1bmQgbWVpbiBUZXJtaW5hbCBzaW5kCnNvd2llc28gZmVzdCBtaXQgZGVyIE5vdHN0cm9tdmVyc29yZ3VuZyB2ZXJidW5kZW4sIHVuZCBpY2ggYmluIGltIEJlZXIKRmFjdG9yeSBMZXZlbCBpbiBEYXJrIENhc3RsZS4KRGFzIFRlbGVmb24ga2xpbmdlbHQgc2Nob24gd2llZGVyLiBBbHNvIGxhc3NlIGljaCBkaWUgS29tbXVuaWthdGlvbnMtCnNpY2hlcnVuZyBhbSBOb3RzdHJvbXNjaGFsdGtyZWlzIGhlcmF1c3NjaG5hcHBlbiwgdW5kIGVuZGxpY2ggaXN0IFJ1aGUuIFVtCmdhbnogc2ljaGVyIHp1IGdlaGVuLCBob2xlIGljaCBkZW4gSG9ja2V5c2NobGFlZ2VyIGF1cyBkZW0gU3BpbmQgdW5kIHVlYmUKZWluIGJpc3NjaGVuIEVpbmVyLWdlZ2VuLWRpZSBXYW5kLiBEdXJjaCBkYXMgR2xhc2ZlbnN0ZXIgc2NoYXV0IGRhcyBhdXMKYWxzIG9iIGljaCB3aWUgZWluIFdhaG5zaW5uaWdlciBuYWNoIGRlbSBGZWhsZXIgc3VjaGUgLSB3aWUgdWVibGljaC4KMTAgTWludXRlbiBzcGFldGVyIGlzdCBkZXIgU3Ryb20gd2llZGVyIGRhIHVuZCBkaWUgRGlhZ25vc2UgbWVsZGV0IHp3ZWkKSGFyZCBEaXNrIENyYXNocyBhdWYgZGVtIE1haW4gTGV2ZWwsIHp1bSBUZXVmZWwgZGFtaXQhIEljaCBoYWJlIGtlaW5lbgpNYW5uIHZlcmxvcmVuLCBiaW4ga3VyeiB2b3JuIGxldHp0ZW4gTGV2ZWwgdW5kIGltIFRWIGtvbW1lbiBub2NoIG1laHIKQ2FydG9vbnMhCkRhcyBhbmRlcmUgVGVsZWZvbiBsYWV1dGV0LCBlaW4gVXNlciAod2VsY2ggdWViZXJyYXNjaHVuZyEpLgoiS29udHJvbGxyYXVtIiBzYWdlIGljaCwgc28gcmljaHRpZyBpbSBTdHJlc3MuCiJXYW5uIHdpcmQgZGVyIENvbXB1dGVyLi4uIgpJY2ggbGVnZSBhdWYuCkltIE1vbWVudCBrb21tZSBpY2ggZ2FueiBndXQgdm9yYW4uIE51ciBub2NoIGVpbiBXaXphcmQsIGRlciB1bmFibGFlc3NpZwpCYW5uZmx1ZWNoZSBzY2hsZXVkZXJ0LCBzdGVodCB6d2lzY2hlbiBtaXIgdW5kIGRlbSBsZXR6dGVuIEJpbGQuIEdsZWljaCBiaW4KaWNoIGRyaW4hCkRhcyBUZWxlZm9uIGxhZXV0ZXQgc2Nob24gd2llZGVyISBNaXQgZWluZW0gcmFzY2hlbiBIaWViIHNjaGFsdGUgaWNoIGF1ZgpGcmVpc3ByZWNoZW4uCiJLb250cm9sbHJhdW0iIGJydWVsbGUgaWNoLCB2b2xsIGludm9sdmllcnQuCiJJY2ggaGFiJyBtZWluZSBGaWxlcyBnZWxvZXNjaHQuIE1laW5lIERhdGVuIHNpbmQgd2VnIiB3aW5zZWx0IGVpbiBVc2VyCnVlYmVyIGRlbiBMYXV0c3ByZWNoZXIuCiJBYmVyIHNpY2hlciBkb2NoIiBzYWdlIGljaCwgd2VpbCBpY2ggbWljaCBuaWNodCBlcmlubmVybiBrYW5uLiBEaWVzZQpCZW1lcmt1bmcgZ2VudWVndCwgdW0gbWljaCBkZW4gQnJ1Y2h0ZWlsIGVpbmVyIFNla3VuZGUgYWJ6dWxlbmtlbi4KRGVyIFdpemFyZCBuYWdlbHQgbWljaCBpbiBkZW4gQm9kZW4gdW5kIHNjaG1laXNzdCBtaXIgbm9jaCBlaW5lbiBGZXVlcmJhbGwKaGludGVyaGVyLiBHQU1FIE9WRVIuCiJXaWUgd2FyIElociBVc2VybmFtZT8iIHNhZ2UgaWNoIG1pdCBIb25pZyBnZXNhbGJ0ZXIgU3RpbW1lLiBFciBzYWd0IGVzCm1pci4gSWNoIHNjaGF1ZSBuYWNoIC0gdW5kIGVyIGhhdCByZWNodC4gU2NoLi4uLiwgZGFiZWkgd2FyIGljaCBlcyBuaWNodAptYWwhClVtIG1laW5lbiBndXRlbiBSdWYgenUgd2FocmVuLCB3ZWNoc2VsZSBpY2ggc2VpbiBMb2dpbiBEaXJlY3RvcnkgbmFjaAovZGV2L251bGwsIHNldHp0ZSBzZWluZW4gUGZhZCBhdWYgJy4nIHVuZCBzZXR6dGUgZWluZW4gYWxpYXMgYXVmIHNlaW4KJ25ld3MnIEtvbW1hbmRvLCB3ZWxjaGVzIGVpbiBzY2hldXNzbGljaGVzIGtsZWluZXMgU2tyaXB0IGluIHNlaW5lbQpmcnVlaGVyZW4gSG9tZSBEaXJlY3Rvcnkgc3RhcnRldC4gRGFzIFNrcmlwdCBzY2hpY2t0IGVpbmUgbmljaHQgbWVociBnYW56CnBvbGl0aXNjaCBrb3JyZWt0ZSBlbWFpbCBhbiBkaWUgQmVhdWZ0cmFndGUgZnVlciBHbGVpY2hiZXJlY2h0aWd1bmdzZnJhZ2VuCmRlciBVbmkgdW5kIGxvZXNjaHQgc2ljaCBhbnNjaGxpZXNzZW5kIHNlbGJzdC4KV29obCBiZWtvbW0ncyEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgZGVyIGRyaXR0ZSAoTGluaywgMTMuIE1hciAxOTk2LCAwOTo0ODowMSk6CnVuZCBudW4genU6CgoKICAgICAgICAgICAgICAgICAgICBCYXN0YXJkIE9wZXJhdG9yIGZyb20gSGVsbAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUZWlsIDMpCgogICAgICAgICAgICAgICAgICAgICAgICAgU0lNT04gR0FWQUdMSUEKCgpFcyBpc3QgRnJlaXRhZzsgYWxzbyBnZWhlIGljaCBmcnVlaGVyIHp1ciBBcmJlaXQsIHNvZ2FyIG5vY2ggdm9yIGRlbQpNaXR0YWdlc3Nlbi4gRGFzIFRlbGVmb24ga2xpbmdlbHQuCkljaCBibGFldHRlcmUgZGVuIEF1c3JlZGVua2FsZW5kZXIgdW0uICJTb25uZW5lcnVwdGlvbmVuIiBzdGVodCBkYS4gT2ssCmRhcnVlYmVyIG11c3MgaWNoIGVyc3QgZWluIGJpc3NjaGVuIHJlY2hlcmNoaWVyZW4uIFp3ZWkgTWludXRlbiBzcGFldGVyIGJpbgppY2ggZml0IGZ1ZXIgZGVuIGVyc3RlbiBBbnJ1Zi4gIkhhbGxvPyIgc2FnZSBpY2guCiJXTyBTSU5EIFNJRSBHRVdFU0VOISBJQ0ggSEFCRSBTQ0hPTiBERU4gR0FOWkVOIFZPUk1JVFRBRyBBTkdFUlVGRU4gVU5ECk5JRU1BTkQgR0VIVCBSQU4hIgpJY2ggaGFzc2UgZXMsIHdlbm4gc2llIG1pY2ggc2Nob24gYW0gZnJ1ZWhlbiBNb3JnZW4gYW5icnVlbGxlbi4gRXMKZGVwcmltaWVydCBtaWNoIGlyZ2VuZHdpZS4gU2llIHdpc3Nlbiwgd2FzIGljaCBtZWluZSAuLi4KImFlaCwgamEuIFRqYSwgd2lyIGhhdHRlbiBoZXV0ZSBtb3JnZW4gYXVjaCB3aWVkZXIgZXh0cmVtIHN0YXJrZSBTb25uZW4tCmFrdGl2aXRhZXQuIERhcyBrYW5uIGJvZXNlIEF1c3dpcmt1bmdlbiBhdWYgZGllIEtvbW11bmlrYXRpb25zbGVpdHVuZ2VuCmhhYmVuLi4uIiBzYWdlIGljaCB6dWNrZXJzdWVzcy4KIkhhZWg/IEFiZXIgc29uc3QgaGFiZSBpY2ggZG9jaCBqZWRlbiBlcnJlaWNodD8hIgoiVGphLCBkYXMgaXN0IGR1cmNoYXVzIG1vZWdsaWNoLiBEaWUgQXVzd2lya3VuZ2VuIGVyaG9laHRlciBTb25uZW5ha3Rpdml0YWV0CnNpbmQgemllbWxpY2ggdW4tdm9yLWhlci1zZWgtYmFyLiBMZXR6dGUgV29jaGUgaGF0dGVuIHdpciBzb2dhciBkZW4gRmFsbCwKZGFzcyBlaW4gcGFhciBGaWxlcyBlaW5mYWNoIHZvciBkZW4gQXVnZW4gaWhyZXMgQmVzaXR6ZXJzIHZlcnNjaHd1bmRlbiBzaW5kCndhZWhyZW5kIGVyIG5vY2ggZGFtaXQgZ2VhcmJlaXRldCBoYXQgLi4uIgoiV2lya2xpY2g/IgoiS2VpbiBTY2guLi4hIGFlaCwgd29sbGVuIFNpZSwgZGFzcyBpY2ggSWhyZW4gQWNjb3VudCBzY2huZWxsIGNoZWNrZT8iCiJhZWgsIGphLiBJY2ggaGFiIGVpbiBwYWFyIHdpY2h0aWdlIERhdGVpZW4gZHJpbi4uLiIKIk9rLCB3aWUgd2FyIG5vY2ggSWhyIFVzZXJuYW1lIC4uLiIKRXIgc2FndCBpaG4gbWlyLiBFaHJsaWNoLCBlaW5lIE11ZWNrZSBtaXQgZWluZW0gU3ByZW5nc2F0eiB6dSBlcmxlZGlnZW4gaXN0CnNjaHdpZXJpZ2VyLiBNaXQgZWluZW0gYXRvbWFyZW4gU3ByZW5nc2F0ei4gTWl0IEFXQUNTLVVudGVyc3R1ZXR6dW5nLgpTY2guLi4uIQooSWNoIHZlcnppY2h0ZSBhYiBqZXR6dCBhdWYgZGVuIGtsaWNrZWRpa2xhY2tlZGlrbGljayBUZWlsLCBvaz8pCiJXaWV2aWVsZSBEYXRlaWVuIHNpbmQgaW4gSWhyZW4gQWNjb3VudD8iIGZyYWdlIGljaC4KImFlaG0sIGFsc28sIGV0d2EgMjAgaW4gbWVpbmVyIERva3RvcmFyYmVpdCwgY2lyY2EgMTAgbWl0IGRlbiBEYXRlbiBkYXp1LAp1bmQgbm9jaCBldHdhIDIwIGZ1ZXIgZGFzIEJ1Y2gsIGRhcyBpY2ggZ2VyYWRlIGhlcmF1c2dlYmUuIgoiSG0uIEljaCBnbGF1YmUsIHdpciBzY2hhdWVuIGVyc3QgbWFsLCB3YXMgbm9jaCB6dSByZXR0ZW4gaXN0LiBBbHNvLCBkYQpzaW5kIG5vY2ggendlaSBGaWxlcyBsZXNiYXIsIC5jc2hyYyB1bmQgLmxvZ2luIC4uLiIKIkFBQUFBQUFBQUFBYWFhYWFhYWFhYXJycnJycnJycmdnZ2dnZ2doaGhoaGhoaCEhISEhISEiCkVyIHNjaGx1Y2h6dCBsZWlzZSBpbnMgTWlrcm9waG9uIC0gbWlyIGtvbW1lbiBhdWNoIGRpZSBUcmFlbmVuIQoiV2FzIG1hY2gnIGljaCBudXI/IiBzY2hudWVmZmVsdCBlci4KIk9rLCBoYWJlbiBTaWUgaXJnZW5kd2FzIGRhdm9uIGF1ZiBGbG9wcHkgZ2VzaWNoZXJ0PyIKIlNjaG9uLCBhYmVyIGRpZSBzaW5kIHNjaG9uIFdvY2hlbiBhbHQhIgpJY2ggc3BpZWxlIG1pdCBkZW0gU2NoYWx0ZXIgZGVzIEZsb3BweS1Mb2VzY2hlcnMuCiJPSyIsIHNhZ2UgaWNoLCAid2llIHdhZXIncywgaWNoIGtvbW1lIGt1cnogcnVlYmVyIHVuZCBsYWRlIGRpZSBCYWNrdXBzIGluCklocmVuIEFjY291bnQsIGRhbWl0IFNpZSBwcm9udG8gd2VpdGVyYXJiZWl0ZW4ga29lbm5lbj8iCiJEYXMgd2FlcmUgdG9sbCIgd2ltbWVydCBlciwgImFiZXIgZGllIEZsb3BweXMgaGFiZSBpY2ggenUgSGF1c2UuIEljaApmdWVyY2h0ZSwgZGllIG11c3MgaWNoIGhldXQnIE5hY2h0IHNlbGJlciBydW50ZXJsYWRlbi4iCiJHdXQuIEFiZXIgZGVua2VuIFNpZSBkYXJhbiwgd2FzIGljaCB2b3JoaW4gZ2VzYWd0IGhhYmU6IFNvbm5lbmVydXB0aW9uCnNpbmQgR2lmdCBmdWVyIERpc2tldHRlbiB1bmQgTWFzY2hpbmVuLiBTaWUgbXVlc3NlbiBJaHJlIEZsb3BweXMgdW5iZWRpbmd0CnZvciBkZXIgZ2VnZW53YWVydGlnZW4gU29ubmVuYWt0aXZpdGFldCBzY2h1ZXR6ZW4uIFNvbnN0IHZlcmxpZXJlbiBTaWUgbm9jaAphbGxlIERhdGVuLiIKIldpZSBtYWNoIGljaCBkYXM/IFNpZSBpbiBBbHVmb2xpZSB3aWNrZWxuPyIKIlVNIEdPVFRFUyBXSUxMRU4sIE5FSU4hIEFsdWZvbGllIGlzdCBkYXMgU2NobGltbXN0ZSEgU2llIHdpc3NlbiBkb2NoIHdhcwptaXQgQWx1Zm9saWUgaW0gTWljcm93ZWxsZW5oZXJkIHBhc3NpZXJ0IG9kZXI/ISIKIkRvY2guLiIKIkRhbm4gdmVyd2VuZGVuIFNpZSdzIGF1Y2ggbmljaHQhIEVzIGdpYnQgbnVyIGVpbmUgc2ljaGVyZSBNZXRob2RlLApEaXNrZXR0ZW4gZXJmb2xncmVpY2ggenUgc2NodWV0emVuLi4uIgoiVW5kIHdpZT8iCiJNQUdORVRJU0NIRSBGRUxERVIhIFBhY2tlbiBTaWUgSWhyZSBGbG9wcHlzIGluIGVpbmVuIEtvcGZraXNzZW5iZXp1ZwpnZWZ1ZWxsdCBtaXQgbW9lZ2xpY2hzdCB2aWVsZW4gTWFnbmV0ZW4uIFNpZSBrb2VubmVuIHp1bSBCZWlzcGllbCBkaWUgdm9uCklocmVtIEt1ZWhsc2NocmFuayBuZWhtZW4uIFNpZSB3aXNzZW4gc2Nob24gbWl0IGRlbmVuIFNpZSBpaHJlIFpldHRlbCBkb3J0CmZlc3RwaW5uZW4gLSBTb2xhcnBhcnRpa2VsIGhhc3NlbiBtYWduZXRpc2NoZSBGZWxkZXIuIgoiV293LiBEYW5rZS4iCiJHZXJuIGdlc2NoZWhlbi4gRXMgaXN0IG51ciBtZWluIEpvYi4uLiIKSWNoIG1hY2hlIEZvcnRzY2hyaXR0ZS4KCkljaCBmaW5kZSwgc28gZWluIHZlcmFudHdvcnR1bmdzdm9sbGVyIFBvc3RlbiB3aWUgbWVpbmVyIHNvbGx0ZSBtaXQgZWluZXIKYW5nZW1lc3NlbmVuIE1pdHRhZ3NwYXVzZSB2ZXJndWV0ZXQgd2VyZGVuLiBGdWVyIGRpZSBwYWFyIFN0dW5kZW4gc2V0emUgaWNoCmRlbiBIYXVzbWVpc3RlciBhdWYgbWVpbmVuIFN0dWhsLCBkYW1pdCBlcyBuaWNodCBzbyBhdXNzaWVodCwgYWxzIHdpcgp1bnNlcmUgUGZsaWNodGVuIHZlcm5hY2hsYWVzc2lnZW4gd3VlcmRlbiAoc2ljISkuIEljaCBlcmtsYWVyZSBpaG0sIGRhc3MgZXIKbnVyIGRhcmF1ZiBhY2h0ZW4gbXVzcywgZGFzcyBkZXIgSG9lcmVyIG5pY2h0IGF1cyBWZXJzZWhlbiBhdWYgZGVyIEdhYmVsCmxhbmRldC4gRXIgaXN0IGVpbnZlcnN0YW5kZW4gdW5kIGljaCB2ZXJzY2h3aW5kZS4KWnVlcnN0IGRpZSBCYW5rLiBJY2ggbGFzc2UgMjAgTWFyayBpbiBaZWhucGZlbm5pbmdzdHVlY2tlIHdlY2hzZWxuIHVuZApmcmFnZSBkYW5uIG5hY2ggbWVpbmVtIEtvbnRvc3RhbmQuIFdhZWhyZW5kIGRlciBBbmdlc3RlbGx0ZSBub2NoIHRpcHB0LAp6aWVoZSBpY2ggdW5hdWZmYWVsbGlnIGRlbiBOZXR6c3RlY2tlciB2b24gc2VpbmVtIEVuZGdlcmFldC4gRXMgc3RpcmJ0Cm5hdHVlcmxpY2ggdW5kIGljaCBzYWdlIGRhc3MgaWNoIGluIEVpbGUgYmluIHVuZCBkYXNzIGljaCBnZXJuZSBkZW4gTWFuYWdlcgp2b24gZGllc2VtIFNhdWxhZGVuIHNlaGVuIG1vZWNodGUuCkVyIHdhbHp0IGR1cmNoIGRpZSBUdWVyIHdpZSBlaW4gZ3V0IGdlZnVldHRlcnRlcyBSaWVzZW5iYWJ5IHVuZCBmcmFndCBtaWNoLApvYiBlcyBlaW4gUHJvYmxlbSBnYWViZS4gSWNoIHNhZ2UsIGFsbGVzLCB3YXMgaWNoIHdvbGxlLCBzZWkgbWVpbgpLb250b3N0YW5kIHVuZCBvYiBkYXMgZGVubiB6dXZpZWwgdmVybGFuZ3Qgc2VpIHVuZCBkYXNzIGljaCBpbW1lciBub2NoIGluCkVpbGUgc2VpLiBEYW5uIGtyZXV6ZSBpY2ggZGllIEZpbmdlci4KSkEhIEVyIGZpbmRldCBkYXMgaGVyYWJoYWVuZ2VuZGUgTmV0emthYmVsIHN0ZWNrdCBlcyB3aWVkZXIgcmVpbiB1bmQgbG9nZ3QKc2ljaCBlaW4uIE1JVCBERU0gTUFOQUdFUiBBQ0NPVU5ULgpJY2ggc3RvbHBlcmUgd2llIHp1ZmFlbGxpZyBhbiBkZW4gU2NoYWx0ZXIgdW5kIHN0b3NzZSBhdXMgVmVyc2VoZW4gMjAwClplaG5wZmVubmluZ3N0dWVja2UgaGludW50ZXIuIERlciBNYW5hZ2VyIGJlYWNodGV0IG1pY2ggbmljaHQsIGFiZXIgYWxsZQphbmRlcmVuIHRhdWNoZW4gbmFjaCBkZW4gTXVlbnplbi4gSWNoIGJlb2JhY2h0ZSB1bmdlc3RvZXJ0LCB3aWUgZXIgc2VpbgpQYXNzd29ydCBlaW50aXBwdCAtIG1pdCBkZXIgaGFsc2JyZWNoZXJpc2NoZW4gR2VzY2h3aW5kaWdrZWl0IHZvbiBlaW5lbQpaZWljaGVuIHBybyBTZWt1bmRlISBHYXIga2VpbiBQcm9ibGVtLCBkZXIgSGFyZGxpbmVyIG1hY2h0IGVzIG1pciBzb2dhcgpub2NoIGxlaWNodGVyLCBpbmRlbSBlciBlaW4gc2VtYW50aXNjaGVzIFdvcnQgYWxzIFBhc3N3b3J0IGdld2FlaGx0IGhhdDoKWklOU0VOLiBTbyBlaW4gU2NoZXJ6a2VrcyEgSWNoIHZlcnppZWhlIGtlaW5lbiBHZXNpY2h0c211c2tlbC4gTmljaHQgZ2FuegplaW5mYWNoLCB3ZW5uIGljaCBhbiBtZWluZSB1ZWJlcnNjaHVsZGV0ZSBIeXBvdGhlayBkZW5rZS4gSGV1dGUgTmFjaHQgd2VyZGUKaWNoIGRhIGVpbmlnZXMgcmljaHRpZ3N0ZWxsZW4uLi4KRWluIEJlbnV0emVyIGRlbiBpY2ggbm9jaCB2b20gRChlbGV0aW9uKS1EYXkgJzk0IGtlbm5lIG5hZWhlcnQgc2ljaCwgdW0KbWljaCBhbnp1cXVhdHNjaGVuLiBTb2dhciBkZXIgTWFuYWdlciBzY2h1ZXR0ZWx0IGFid2VocmVuZCBkZW4gS29wZiwgYWJlcgplcyBpc3QgenUgc3BhZXQuIEVyIGhhZWx0IGRpcmVrdCB2b3IgbWlyIHVuZCByaWNodGV0IGRhcyBXb3J0IGFuIG1pY2ghCiJhZWhtLCBFbnRzY2h1bGRpZ3VuZy4gS29lbm50ZW4gU2llIG1pciBlaW5lbiBUaXAgZ2ViZW4sIHdlbGNoZW4gQ29tcHV0ZXIKaWNoIGFtIGJlc3RlbiBmdWVyIG1laW5lIERpcGxvbWFyYmVpdCBrYXVmZT8iCj8hIEdlbmF1LgoiU2Nob24gbWFsIHZvbSBuZXVlbiBQZW50aXVtIGdlaG9lcnQ/IiBmcmFnZSBpY2guCiJKYS4uLiIKIk1laWRlbiBTaWUgZGVuIHdpZSBkaWUgUGVzdCEgS2F1bSBqZW1hbmQgd2Vpc3MgZGFzLCBhYmVyIG1hbiBoYW5kZWx0IHNpY2gKZnVlcmNodGVybGljaGUgUHJvYmxlbWUgZWluLCB3ZW5uIG1hbiBlaW4gQmV0cmllYnNzeXN0ZW0gc28gc2NobmVsbCBsYXVmZW4KbGFlc3N0LiBNYW5jaGUgdm9uIGRlbiBLaXN0ZW4gbWFjaGVuIHVlYmVyIDEwMCBNaWxsaW9uZW4gb2JzdHJ1Y3Rpb25zIHBlcgpzZWNvbmQuIFNpZSBrb2VubmVuIHNpY2ggamEgdm9yc3RlbGxlbiwgZGFzcyBkYSBlaW5lIHNvbGNoIGJpbGxpZ2UgS2lzdGUgYXVzCmRlbSBUYWt0IGtvbW1lbiBtdXNzLCBuaWNodD8gRGllIEthdGFzdHJvcGhlIGlzdCBwcmFrdGlzY2ggdm9ycHJvZ3JhbW1pZXJ0ISIKIk9oISIKIk5laG1lbiBTaWUgbGllYmVyIHdhcyBTaWNoZXJlcyB1bmQgQmV3YWVocnRlcy4gRWluIFpYODEgbWl0IGRlbSBkb3BwZWx0ZW4KQ2Fzc2V0dGVubGF1ZndlcmssIHdlbm4gU2llIGRhcyBrcmllZ2VuIGtvZW5uZW4uIEltIFZlcnRyYXVlbjogRGllIHNpbmQKbmljaHQgbWVociBsZWljaHQgenUgYmVrb21tZW4sIHdlaWwgYWxsZSBMZXV0ZSwgZGllIHdpcmtsaWNoIHdhcyBkYXZvbgp2ZXJzdGVoZW4sIG5hdHVlcmxpY2ggbnVyIGJld2FlaHJ0ZSBUZWNobmlrIGthdWZlbi4gS2F1ZmVuIFNpZSBibG9zcyBrZWluZQpIYXJkZGlzayBkYXp1LiBTaWUgaGFiZW4gZG9jaCBzaWNoZXIgc2Nob24gZ2Vob2VydCB3aWUgb2Z0IGRpZSBrYXB1dHRnZWhlbj8KQ2Fzc2V0dGVuIGRhZ2VnZW4gaGFsdGVuIGV3aWchIgoiRGFua2UsIHN1cGVyISIKIktlaW5lIFVyc2FjaGUhIFdpZSB3YXIgZG9jaCBub2NoIGdsZWljaCBJaHIgVXNlcm5hbWU/IgpFciBzYWd0IGlobiBtaXIuIEdlcmFkZSBub2NoIHJlY2h0emVpdGlnIGZ1ZXIgRC1EYXkgOTYuIE1hbiBzb2xsdGUgbWVpbmVuLApkYXNzIHNpZSdzIGlyZ2VuZHdhbm4gbGVybmVuIQpadXJ1ZWNrIGFuIG1laW5lbSBBcmJlaXRzcGxhdHogZmluZGUgaWNoIGRlbiBIYXVzbWVpc3RlciAtIGVpbmdlc2NobGFmZW4Kdm9yIGRlbSBUZXJtaW5hbC4gSWNoIGZyYWdlIGlobiwgb2IgZXIgbmljaHQgbGllYmVyIGhpZXIgYXJiZWl0ZW4gbW9lY2h0ZSwKYWJlciBlciBsZWhudCBkYW5rZW5kIGFiLiBIaWVyIGhhdCBlciBuaWNodCBkaWUgTW9lZ2xpY2hrZWl0LCBMZXV0ZSBpbiBkZXIKVG9pbGV0dGUgYXVmenVzY2hyZWNrZW4uLi4KSWNoIGxlZ2UgZGVuIEhvZXJlciB6dXJ1ZWNrIGF1ZiBkaWUgR2FiZWwgdW5kIHNvZm9ydCBrbGluZ2VsdCBlcy4gSWNoIGhhc3NlCmVzLCB3ZW5uIGVzIGRhcyB0dXQuIEljaCBicmF1Y2hlIGltbWVyIGVpbmUgRXdpZ2tlaXQsIGRpZSBFYXJwaG9uZXMKbmFjaGhlciB3aWVkZXIgcmVpbnp1cGZyaWVtZWxuLgpEaWVzbWFsIGlzdCBlcyBhbmRlcnMuIERpZSBoZWlzc2VzdGUgTWllemUgYXVmIGRlbSBDYW1wdXMgaXN0IGRyYW4gLSB1bmQKc2llIGhhdCBlaW4gQ29tcHV0ZXJwcm9ibGVtISBJY2ggbGllYmUgc29sY2hlIEF1Z2VuYmxpY2tlLiBTaWUgbWFjaGVuIGRlbgpKb2IgZXJzdCBkYXp1LCB3YXMgZXIgaXN0LgoiV2llIGlzdCBJaHIgVXNlcm5hbWU/IiBmcmFnZSBpY2ggLSBhbHMgb2IgaWNoIGVzIG5pY2h0IGF1c3dlbmRpZyB3dWVzc3RlLgpTbyBzY2huZWxsIGljaCBrYW5uIHVlYmVyZmxpZWdlIGljaCBpaHJlIHBlcnNvZW5saWNoZSBlbWFpbCAtIGRhcyBtZWlzdGUgbnVyCnRvZGxhbmd3ZWlsaWdlcyBaZXVnIC0gdW5kIGdyZXBlIGRpZSBnZXNhbXRlIFVzZXIgZW1haWwgbmFjaCBpaHJlbQpVc2VybmFtZW4uIE5pY2h0cyAtIHZvcnRyZWZmbGljaCEKIldpZSBrYW5uIGljaCBJaG5lbiBoZWxmZW4/IiBmbG9ldGUgaWNoIGNoYXJtYW50LgoiSWNoIGthbm4gbWVpbiBEb2t1bWVudCBuaWNodCBhYnNwZWljaGVybi4gRXMgc2FndCBldHdhcyBtaXQgenV3ZW5pZwpTcGVpY2hlcnBsYXR6LiIKIkRhcyB3ZXJkZW4gd2lyIGdsZWljaCBoYWJlbiIKc2FnZSBpY2ggdW5kIGxvZXNjaGUgYWxsZSBhbmRlcmVuIEZpbGVzIGF1ZiBpaHJlciBQbGF0dGUgLSBhdXNzZXIgZGVuCmlocmlnZW4gbmF0dWVybGljaC4gIkpldHp0IHNvbGx0ZSBhbGxlcyBmdW5rdGlvbmllcmVuLi4uIgoiT2gsIHZpZWxlbiwgdmllbGVuIERhbmsiIGhhdWNodCBzaWUgaW5zIE1pa3JvcGhvbi4KSWNoIG5vdGllcmUgbWlyLCBkYXNzIGljaCBtb3JnZW4gd2llZGVyIGV0d2FzIGFuIGlocmVuIEFjY291bnQgaGVydW0tCmRva3RlcmUuCkRhcyBUZWxlcGhvbiBsYWV1dGV0LCBmYXN0IGJldm9yIGljaCBlcyB3aWVkZXIgYXVmIGRlciBHYWJlbCBoYWJlLgoiTWVpbmUgRGF0ZW4gc2luZCBhbGxlIHdlZyEiIHNjaHJlaXQgamVtYW5kIGFtIGFuZGVyZW4gRW5kZS4KIldhbm4gd2FyIGRhcz8iIGZyYWdlIGljaC4KIkdlcmFkZSBlYmVuLi4uIiBzYWd0IGVyIHNjaGx1Y2h6ZW5kLgoiQWhhLiBUamEsIEtvcGYgaG9jaC4gRXMgaGFiZW4gbm9jaCBkcmVpIFRhZ2UgYmlzIHp1bSBTZW1lc3RlcmVuZGUuIFdlbm4KU2llIFRhZyB1bmQgTmFjaHQgZHJhbiBibGVpYmVuLCB3ZXJkZW4gU2llIHNjaG9uIG5vY2ggZWluZSBEcmVpIG1pbnVzCnNjaGFmZmVuLiIKRXIgc2NobHVjaHp0IG5vY2ggendlaS0gZHJlaW1hbCBsZWlzZSB1bmQgbGVndCBhdWYuIFNjaHdhZWNobGluZyEKRGFzIFRlbGVwaG9uIGxhZXV0ZXQgc2Nob24gd2llZGVyIQoiRGVyIEJpbGRzY2hpcm0gYW4gbWVpbmVtIFBDIGlzdCBzbyBzY2h3YWNoLiBJY2gga2FubiBrYXVtIGRpZSBCdWNoc3RhYmVuCmVya2VubmVuLiBTb2xsIGljaCBkZW4gSGVsbGlna2VpdHNyZWdsZXIgaG9jaGRyZWhlbj8iICJORUlOISIgc2NocmVpZSBpY2guCiJGYXNzZW4gU2llIGRlbiBLbm9wZiBuaWNodCBhbiEgSGFiZW4gU2llIGF1Y2ggbnVyIGRpZSBsZWlzZXN0ZSBBaG51bmcsCndhcyBkYSBmdWVyIGVpbmUgU3RyYWhsdW5nICdyYXVza29tbXQsIHdlbm4gU2llIGRlbiBLbm9wZiBnYW56IHp1bSBBbnNjaGxhZwpkcmVoZW4/ISIKIkFsc28gaWNoIC4uIiBzYWd0IHNpZSB2ZXJ1bnNpY2hlcnQuCiJIb2VSRU4gU0lFIEFVRiBNRUlORU4gUkFUISIgc2FnZSBpY2guICJFcyBnaWJ0IG51ciBlaW5lbiBTSUNIRVJFTiBXRUcsIGVpbgpzY2h3YWNoZXMgRGlzcGxheSBhdWZ6dW1vZWJlbG4sIHVuZCBkYXMgaXN0OiBOYWRlbGVuZXJnaWVpbXB1bHNlIGluIGRpZQpUcmVpYmVyIGdlYmVuISIKRGllIFdvcnRlICdOYWRlbGVuZXJnaWVpbXB1bHNlICcgdW5kICdUcmVpYmVyJyBzaW5kIHp1dmllbCBmdWVyIHNpZS4gV2VubgpMZXV0ZSBzb2xjaGUgQXVzZHJ1ZWNrZSBob2VyZW4sIGdlaGVuIHNpZSBhdXRvbWF0aXNjaCBpbiAnZHVtbXkgbW9kZScgdW5kCm1hY2hlbiBBTExFUywgd2FzIGljaCBzYWdlLiBJY2gga29lbm50ZSBpaHIgamV0enQgdm9yc2NobGFnZW4gbmFja3QgbnVyIG1pdAplaW5lbSBOZXR6a2FiZWwgYmVrbGVpZGV0IHVlYmVyIGRlbiBDYW1wdXMgenUgc3ByaW50ZW4gdW5kIHNpZSB3dWVyZGUgZXMKd2FocnNjaGVpbmxpY2ggbWFjaGVuLi4uSG1tbW0uCkhhYmVuIFNpZSB6dWZhZWxsaWcgZWluIHVlYnJpZ2VzIE5ldHprYWJlbCAncnVtbGllZ2VuPyBOZWluLi4uCiJPaCwgbmFqYS4gRGFubiBtdWVzc2VuIHdpciBkYXMgbWl0IGRlbiBOYWRlbGltcHVsc2VuIHByb2JpZXJlbi4uLiBBbHNvLApTaWUgc2NoYWx0ZW4gamV0enQgc28gc2NobmVsbCBTaWUga29lbm5lbiBJaHJlbiBQQyBlaW4gdW5kIGF1cy4gRWluZmFjaCBkZW4KS2lwcHNjaGFsdGVyIGhpbiB1bmQgaGVyZmxpcHBlbiwgdmVyc3RlaGVuIFNpZT8gRXR3YSBkcmVpc3NpZyBtYWwuIgoiU29sbCBpY2ggdm9yaGVyIG1laW5lIERpc2tldHRlbiAncmF1c25laG1lbj8iCiJORUlOISBXb2xsZW4gU2llIGFsbGUgSWhyZSBEYXRlbiB2ZXJsaWVyZW4/ISIKIk9oLiBOZWluLCBuYXR1ZXJsaWNoIG5pY2h0LiBBbHNvLi4uIgpJY2ggbGF1c2NoZSBnZXNwYW5udC4KIC4ua2xpY2sga2xhY2sga2xpY2sga2xhY2sga2xpY2sga2xhY2sga2xpY2sga2xhY2sga2xpY2sga2xhY2sga2wKQlVNTSEKRXJzdGF1bmxpY2ghIDI3IG9kZXIgMjguIE5vcm1hbGVyd2Vpc2UgbWFjaHQgc2ljaCBkYXMgTmV0enRlaWwgc2Nob24gbmFjaApkZW0gYWNodGVuIG9kZXIgbmV1bnRlbiBNYWwgaW4gZGllIEhvc2UhCiJNRUlOIENPTVBVVEVSISBFUiBSQVVDSFQhIiBzY2hyZWl0IHNpZSBhbiBhbmRlcmVuIEVuZGUuCiJXaXJrbGljaD8/IERhIG11c3MgZWluIEZlaGxlciBpbSBOZXR6dGVpbCBnZXdlc2VuIHNlaW4hIEd1dCwgZGFzcyB3aXIgZGFzCmdla2xhZXJ0IGhhYmVuISBIYWJlbiBTaWUgbm9jaCBHYXJhbnRpZSBhdWYgZGllIE1hc2NoaW5lPyIKIk5FSU4hIgoiRHUgbGllYmUgR3VldGUhIFdhcyBmdWVyIGVpbiBQZWNoISBUamEsIGRhbm4gaGlsZnQgbnVyIHJlcGFyaWVyZW4gbGFzc2VuLgpIYWJlbiBTaWUgd2VuaWdzdGVucyBJaHJlIERhdGVuIGdlc2ljaGVydD8iCiJKYSwgaW5zIFN5c3RlbSwgZ2VzdGVybiBlcnN0LiBBYmVyIGRpZSBnYW56ZSBBcmJlaXQgdm9uIGhldXRlIG1vcmdlbgppc3QgZnV0c2NoISIKIlNpZSBhZXJtc3RlISBXaWUgd2FyIElociBVc2VybmFtZT8gSWNoIHdpbGwgZ2xlaWNoIG1hbCBjaGVja2VuLCBvYiBJaHJlCkJhY2t1cHMgb2sgc2luZC4uLiIKU2llIHNhZ3QgaWhuIG1pci4uLgpUZ2xvZiBHbnV6dGVzdHJvZiEhIQoKSWNoIHNpdHplIHdpZSB1ZWJsaWNoIGFuIG1laW5lciBLb25zb2xlLiBFaW4gQmVudXR6ZXIgcnVmdCBhbi4gIkhhbGxvLApLb250cm9sbHJhdW0uIFNpbW9uIGFtIEFwcGFyYXQuIFdpZSBrYW5uIGljaCBJaG5lbiBoZWxmZW4/IiBzYWdlIGljaC4KIkljaCBrb21tZSBuaWNodCBpbiBtZWluZW4gQWNjb3VudCIgbnVzY2hlbHQgZXMgYW0gYW5kZXJlbiBFbmRlLiAiV2llCmxhdXRldCBiaXR0ZSBJaHIgVXNlcm5hbWU/IiBmcmFnZSBpY2guCkVyIGdpYnQgbWlyIHNlaW5lbiBVc2VybmFtZW4uIEljaCBzY2hhdWUgaW4gc2VpbmVuIEFjY291bnQuICJLZWluIFByb2JsZW0sCmRhIHdhciBudXIgZWluIG5pY2h0LWF1c2Z1ZWhyYmFyZXMgbG9naW4gZmlsZS4gSWNoIGhhYidzIHJpY2h0aWcgZ2VzdGVsbHQuCkpldHp0IHNvbGx0ZW4gU2llIG9obmUgUHJvYmxlbWUgJ3JlaW5rb21tZW4uIgoiRGFua2UuIgoiS2VpbiBVcnNhY2hlLiBTY2hvZW5lbiBUYWcgbm9jaCEiCkhhZWFlYWVISD8hIGZyYWdlbiBTaWUgc2ljaCBqZXR6dC4gSXN0IGRlciBCQVNUQVJEIE9QRVJBVE9SIEZST00gSEVMTCBlbmRsaWNoCnp1bSBHdXRlbiBiZWtlaHJ0IHdvcmRlbj8gSGF0IGVyIGF1ZmdlZ2ViZW4/PyBSRUlGIEZ1ZVIgRElFIEtMQVBTTXVlSExFPz8/Ck5hYWFoLiBEZXIgQkFTVEFSRCBPUEVSQVRPUiBGUk9NIEhFTEwgd2lyZCBhYiBoZXV0ZSB1ZWJlcndhY2h0LiBBbGxlCkFrdGlvbmVuIGltIE1haW5mcmFtZSB3ZXJkZW4gYXV0b21hdGlzY2ggcHJvdG9rb2xsaWVydC4gVU5EIFdFTk4gREFTClBBU1NJRVJUIHdlcmRlIGljaCBub3JtYWxlcndlaXNlIGF1Y2ggYWJnZWhvZXJ0ISBBbHNvIG11c3MgaWNoIGh1ZWJzY2ggYnJhdgpzZWluIGJpcyBpY2ggZGllIEJ1Z3MgZW50ZGVja3QgaGFiZS4gU29sbHRlIG5pY2h0IGFsbHp1IGxhbmdlIGRhdWVybiAtCnZlcnRyYXVlbiBTaWUgbWlyIQpBaC4gRGEgaGFiZW4gd2lyIHNjaG9uIGVpbnMuIEltIFRlbGVmb25ob2VyZXIsIGtsYXIuIEFiZXIgZGVyIEJvc3MgaXN0CmVpbmVyIHZvbiBkZXIgd2l0emlnZW4gU29ydGUuIEljaCB3ZXR0ZSwgZGEgc2luZCBub2NoIG1laHIuIEFoamEsIGVpbgphbmRlcmVyIHVudGVyIGRlbSBUZWxlZm9uIHVuZCBlaW4gZHJpdHRlciBpbiBtZWluZW0gS2V5Ym9hcmQuIFplaXQgZnVlcgplaW5lIGtsZWluZSBLYWZmZWVzY2hsYWNodC4gRHJlaSBhdWYgZWlubWFsLi4uLiBobW1tLiBJY2ggYnJpbmdlIG1hbApiZXNzZXIgZGllIGdhbnplIEthbm5lIHVuZCB3YXJ0ZSBhdWYgWmV1Z2VuLiBEZXIgU3lzdGVtIE1hbmFnZXIga29tbXQKaGVyZWluLgoiV28gYmxlaWJ0IGRlciBCZXJpY2h0LCBkZW4gaWNoIGdlZHJ1Y2t0IGhhYmU/IiBmcmFndCBlciBtaXQgc2F1cmVyIE1pZW5lCi0gZXIgYWVyZ2VydCBzaWNoIG9mZmVuc2ljaHRsaWNoLCBkYXNzIGljaCBtaWNoIGFtIFRlbGVmb24gbm9jaCBuaWNodCBhbnMKTWVzc2VyIGdlbGllZmVydCBoYWJlLiBXaWRlcnNhY2hlciBpZGVudGlmaXppZXJ0ISBXaWUgZGVyIERpcmVrdG9yIGRlcgoiQkFTVEFSRCBPUEVSQVRPUiBTQ0hPT0wiIChpY2ghKSBpbW1lciB6dSBzYWdlbiBwZmxlZ3Q6ICJFcyBnaWJ0IGtlaW4KUHJvYmxlbSBkYXMgc2ljaCBuaWNodCBsb2VzZW4gbGFlc3N0LCBpbmRlbSBtYW4gZGllIEJlbnV0emVycHJvemVzc2Uga2lsbHQsCmFsbGUgaWhyZSBGaWxlcyBsb2VzY2h0IGlocmUgQWNjb3VudHMgc3BlcnJ0IHVuZCBpaHJlIHRhdHNhZWNobGljaGVuCkVpbm5haG1lbiBkZW0gRmluYW56YW10IHp1a29tbWVuIGxhZXNzdC4iIEljaCB6aWVoZSBkZW4gQXVzZHJ1Y2sgdW50ZXIgZGVyCkthZmZlZWthbm5lIGhlcnZvciwgZGllIGljaCBwbGF6aWVydCBoYXR0ZSwgdW5kIGRpZSBLYW5uZSBlcmdpZXNzdCBzaWNoCnVlYmVyIFRlbGVwaG9uZSB1bmQgS2V5Ym9hcmQuIEF1cyBpcmdlbmRlaW5lbSBHcnVuZCBzdGFuZGVuIGJlaWRlIHVlYmVyZWluLQphbmRlcmdlc3RhcGVsdCBpbiBkZXIgTmFlaGUuICJVdXV1cHMhIiBzYWdlIGljaC4gRW50c2V0emVuIG1hbHQgc2ljaCBhdWYKbWVpbmVtIEdlc2ljaHQuIFNlaW4gR2VzaWNodCBzYWd0IG1pciBkYXNzIGljaCByaWNodGlnIGxhZy4KIkdsYXViZW4gU2llIGphIG5pY2h0LCBkYXNzIFNpZSBkYW1pdCBkYXZvbmtvbW1lbiwgU2ltb24iIGtudXJydCBlciB1bmQKc3RhbXBmdCBoaW5hdXMuCkljaCBzY2hhbHRlIGRlbiBFdGhlcm5ldCBNb25pdG9yIGVpbiB1bmQgYmVvYmFjaHRlIGRpZSBQYWtldGUsIGRpZSBhdXMKc2VpbmVuIFBDIGtvbW1lbi4KQWguIEVpbiBNZW1vIGdlaHQgYW4gZGVuIExhc2VyIGltIEJ1ZXJvIGRlcyBEaXJla3RvcnMuIEluaGFsdDogQmVlbmRpZ3VuZwptZWluZXMgS29udHJha3RzLCBmcmlzdGxvcy4gSWNoIG1hY2hlIHNjaG5lbGwgZWluIHBhYXIgbm90d2VuZGlnZSBhZW5kZXItCnVuZ2VuIGFuIGRlbSBGaWxlLCBzb2xhbmdlIGVzIGltIFNwb29sZGlyZWN0b3J5IGxpZWd0LCB1bmQgbGFzc2UgZXMgZGFubgphbiBzZWluZSB1cnNwcnVlbmdsaWNoZSBBZHJlc3NlIHdlaXRlcmdlaGVuLiBJY2ggc3RhcnRlIG1laW4gUHJvZ3JhbW0KJ2VuZHplaXQnLCBkYXMgLTUyMiBhdWYgZGVuIFBDIGtuYWxsdCB1bmQgZGVyIE1haW5mcmFtZSBtYWNodCBzaWNoIGluIGRpZQpIb3NlLiBTcGFldGVyIGJlaW0gQm9vdGVuIGVudGZlcm5lIGljaCBkYXMgbGFlc3RpZ2UgTG9nZ2luZy4KQWxzIG5hZWNoc3RlcyBnZWhlIGljaCBpbiBkZW4gS2FiZWxyYXVtIHVuZCBzdGVja2UgbWVpbmVuIFdhbGttYW5rb3BmaG9lcmVyCmluIGRlbiBmcmVpZW4gUlMyMzItUG9ydCBhdXMgZGVtIEJ1ZXJvIGRlcyBEaXJla3RvcnMuIEVzIGlzdCBlcnN0YXVubGljaCwKd2llIGxlaWNodCBtYW4gYnVncyBhdXNzdHJldWVuIGthbm4sIHdlbm4gbWFuIHdlaXNzLCB3byBkaWUgRGF0ZW5sZWl0dW5nZW4KbGF1ZmVuIQpEaXJla3RvcjogIlNpbmQgU2llIHNpY2hlcj8iClN5c01ncjogIkFCU09MVVQgU0lDSEVSISIKRGlyZWt0b3I6ICJVbmQgU2llIHdvbGxlbiBlcyBzaWNoIG5pY2h0IG5vY2htYWwgdWViZXJsZWdlbj8iClN5c01ncjogIkFVRiBLRUlORU4gRkFMTCEiCkRpcmVrdG9yOiAiTnVuIGd1dCwKaWNoIHdlcmRlIGVzIHNvZm9ydCBhbiBkaWUgUGVyc29uYWxhYnRlaWx1bmcgd2VpdGVyZmF4ZW4uLi4iClN5c01ncjogIkhFUlZPUlJBR0VORCEiClp3ZWkgU2VrdW5kZW4gc3BhZXRlciBrb21tdCBkZXIgU3lzdGVtbWFuYWdlciBoZXJlaW4uIEVyIGxhZWNoZWx0LiBFcyBzaWVodAphdXMgd2llIGRhcyBMYWVjaGVsbiBlaW5lcyBncm9zc2VuLCBzYXR0ZW4gSGFpZmlzY2hzLgoiVGphLCBpY2ggd2VyZGUgU2llIHZlcm1pc3NlbiwgU2ltb24uLi4iIGJlZ2lubnQsIG5vY2ggZ2FueiBlcmZ1ZWxsdCwgdm9uCmRlciBlYmVuIGdlbGVpc3RldGVuIEVudHNjaGVpZHVuZy4KIk9oPyIgc2FnZSBpY2ggenVja2Vyc3Vlc3MgdW5kIGhldWNoZWxlIE5ldWdpZXIuICJXb2hpbiBnZWhlbiBTaWUgZGVubj8iCiJOZWluLCBTaW1vbiIgc2FndCBlciBnZW51c3N2b2xsLCAiU2llIGdlaGVuOiIKIkVpbmUgQkVGb2VSREVSVU5HISIgc2FnZSBpY2guICJTaWUgaGFiZW4gZW5kbGljaCBkaWVzZW4gQnJpZWYgYW4gZGVuCkRpcmVrdG9yIGdlc2NoaWNrdCwgZGFzcyBlciBlaW4gZ290dHZlcmRhbW10ZXMgQXJzY2hsb2NoIGlzdCB1bmQgZGFzcyBTaWUKYXVmaG9lcmVuPyIKIk5laW4uLi4iCiJTaW5kIFNpZSBzaWNoZXI/IERlciBpc3QgYWJlciB2aWVsIGJlc3NlciBhbHMgZGVyIHVlYmVyIG1laW5lIEVudGxhcy0Kc3VuZy4uLiIKIlcuLi4iIFNlaW5lIFB1cGlsbGVuIHdlaXRlbiBzaWNoIGVpbmUga2xlaW5lIElkZWUuCkVzIGlzdCwgYWxzIG9iIG1hbiBlaW4gV2Fscm9zcyBtaXQgZGVtIFNvZmFraXNzZW4gZXJzY2hsYWdlbiB3dWVyZGUuIEVyCnJhc3QgbG9zLCB1bSBkYXMgRmF4IHp1IHN0b3BwZW4uIE51ciwgbmFjaGRlbSBlciBnZXJhZGUgZ2VrdWVuZGlndCBoYXQsCj5rbGlja2VkaWtsYWNrZWRpPCBmdW5rdGlvbmllcnQgc2VpbiBjYXJkIGtleSBuaWNodCBtZWhyIC4uLiBBbmZhZW5nZXIuLi4KRGFzIFRlbGVwaG9uIGtsaW5nZWx0LiBFcyBpc3QgZGVyc2VsYmUgd2llIHZvcmhpbi4KIkljaCBrb21tJyBqZXR6dCBpbiBtZWluZW4gQWNjb3VudCwgYWJlciBpY2ggaGFiJyBrZWluZW4gU3BlaWNoZXJwbGF0egptZWhyIGF1ZiBkZXIgUGxhdHRlLi4uIgoiTW9tZW50LCBpY2ggc2NoYXUsIHdhcyBpY2ggdHVuIGthbm4uIgo+a2xpY2tlZGlrbGFja2VkaWtsaWNrPApybSAtciAqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3BlcmF0b3IgenVtIHZpZXJ0ZW4gKExpbmssIDEzLiBNYXIgMTk5NiwgMTY6MDE6MjQpOgpVbmQgZGVyIHZvcmxldHp0ZToKCgogICAgICAgICAgICAgICAgICAgIEJhc3RhcmQgT3BlcmF0b3IgZnJvbSBIZWxsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFRlaWwgNCkKCiAgICAgICAgICAgICAgICAgICAgICAgICBTSU1PTiBHQVZBR0xJQQoKCkljaCBmYWhyZSB6dXIgQXJiZWl0IHVuZCBrbGViZSBoaW50ZXIgZGllc2VtIGFsdGVuIFRyb3R0ZWwsIGRlciBrbGFzc2lzY2hlClNMT1cgRFJJVkVSIEZST00gSEVMTC4gU2VpbiBUYWNobyBoYXQgYmVpIDIwIGRpZSByb3RlIExpbmllIHVuZCBrb21tdCBpbnMKU2NobGluZ2Vybiwgd2VubiBlciBkaWUgS3VydmVuIG1pdCBtZWhyIGFscyA1IG5pbW10LiBJY2ggdmVyYnJhdWNoZSBlaW4KaGFsYmVzIEtpbG93YXR0IGluIG1laW5lciBIdXBlLCBhYmVyIHNlaW4gSG9lcmdlcmFldCBpc3QgYW5zY2hlaW5lbmQgYXVmCkZsdWVzdGVybiBlaW5nZXN0ZWxsdC4gS2VpbmUgQ2hhbmNlLCB2b3JiZWl6dWtvbW1lbiEKSWNoIG1lbW9yaWVyZSBzZWluIEtlbm56ZWljaGVuLiBHZW5hdSBnZW5vbW1lbiB0dWUgaWNoIGRhcyBzZWl0IGZ1ZW5mLQp6ZWhuZWluaGFsYiBNaW51dGVuIHNlY2h6aWdtYWwgaW4gZGVyIE1pbnV0ZS4gTWFubm9tYW5ub21hbm4uLi4KSWNoIGRlbmtlLCBkYSBpc3Qgd2llZGVyIG1hbCBlaW4gQW5ydWYgaW4gRmxlbnNidXJnIGZhZWxsaWcuIFZpZWxsZWljaHQKa29lbm50ZSBtYW4gYXVjaCBkZW4gV2FnZW4gYWxzIGdlc3RvaGxlbiByZWdpc3RyaWVyZW4uIEdlc3RvaGxlbiB2b24KV2FmZmVuaGFlbmRsZXJuIGF1cyBkZW4gdm9yZGVyZW4gT3JpZW50LiBHZWZhZWhybGljaC4uLgpFbmRsaWNoIGluIGRlciBBcmJlaXQgYmxhZXR0ZXJlIGljaCBhbHMgZXJzdGVzIGRlbiBBdXNyZWRlbmthbGVuZGVyIHVtLgoiRUxFS1RST01BR05FVElTQ0hFIFNUT0VSU1RSQUhMVU5HIFZPTiBGVU5LVElPTlNVTlRVRUNIVElHRU0gU0FURUxMSVRFTiIuCktsaW5ndCBndXQ7IHZpZWxsZWljaHQgd2lyZCBlcyBkb2NoIG5vY2ggZWluIG5ldHRlciBUYWcuCkljaCBsb2dnZSBtaWNoIGFscyAiRlVDS1lPVSIgZWluIChkZXIgS3VtbWVya2FzdGVuLUFjY291bnQgZnVlciBkaWUKQmVudXR6ZXIpIHVuZCBydWZlIGRpZSBtYWlsIGF1Zi4gRHJlaSBOYWNocmljaHRlbiBzaW5kIGRyaW4uIERpZSBlcnN0ZSBoYXQKMTE3IFplaWxlbiwgZWluZSBQbGF1ZGVydGFzY2hlIG9mZmVuc2ljaHRsaWNoLiBTY2guLi4uIGljaCBoYXNzZSBkYXMhCkFuc3RhdHQgZWluZmFjaCB6dSBzYWdlbjogIkRlciB1bmQgZGVyIEFjY291bnQgYnJhdWNodCBtZWhyIFNwZWljaGVycGxhdHoiCmZhbmdlbiBzaWUgYW4genUgZXJ6YWVobGVuIHVlYmVyIHdhcyBmdWVyIGVpbmVuIE1pc3Qgc2llIGZ1ZXIgd2VsY2hlbgppZGlvdGlzY2hlbiBEb3plbnRlbiB6dSBmb3JzY2hlbiBoYWJlbiB1bmQgZGFzcyBlcyBzY2hvbiBnZXN0ZXJuIGhhZXR0ZQpmZXJ0aWcgc2VpbiBzb2xsZW4gdW5kIGRhc3Mgc2llJ3MgYXVjaCBnZXNjaGFmZnQgaGFldHRlbiwgYWJlciBkYW5uIGhhdHRlCmRpZSBLdXNpbmUgZHJpdHRlbiBHcmFkZXMgcGxvZXR6bGljaCBlaW5lbiBNYWdlbmR1cmNoYnJ1Y2ggdW5kIGVpbmVuCnJpZXNpZ2VuIEJsdXR2ZXJsdXN0IHVuZCBtdXNzdGUgaW5zIEtyYW5rZW5oYXVzIGdlYnJhY2h0IHdlcmRlbi4uLiB1c3cgdXN3LgpJY2ggbG9lc2NoZSBkaWUgTWFpbCB1bmJlc2VoZW4uCkRpZSB6d2VpdGUgTWFpbCBzdGFtbXQgb2ZmZW5zaWNodGxpY2ggdm9uIGplbWFuZGVtLCBkZXIgbmljaHQgbWl0IGRlbQpNYWlscHJvZ3JhbW0gdW1nZWhlbiBrYW5uLiBEYSBpc3QgbnVyIGRlciBIZWFkZXIsIGFiZXIga2VpbmUgTmFjaHJpY2h0LgpJY2ggYW50d29ydGUgbWl0IGRpcmVrdGVtIFJlcGx5OiAiS2VpbmUgU29yZ2Ugd2lyIGt1ZW1tZXJuIHVucyBkYXJ1bSBhbQpuYWVjaHN0ZW4gRGllbnN0YWcuIgpIb2ZmZW50bGljaCB3YXIncyB3YXMgV2ljaHRpZ2VzIQpEaWUgZHJpdHRlIE1haWwgaGViZSBpY2ggbWlyIGZ1ZXIgbW9yZ2VuIGF1Zi4gU2Ftc3RhZyB3YWVyZSBlaW4gZ2FyIHp1Cmxhbmd3ZWlsaWdlciBUYWcgLSBzb2xsdGUgaWNoIGplbWFscyBhbSBTYW1zdGFnIGFyYmVpdGVuIG11ZXNzZW4hIERhcwpUZWxlcGhvbiBrbGluZ2VsdC4gSWNoIGRhY2h0ZSwgZGFzIGhhZXR0ZSBpY2ggJ3JlcGFyaWVydCchCkljaCBrbGVtbWUgbWlyIGRlbiBIb2VyZXIgdW50ZXJzIEtpbm4sIGRhbWl0IGljaCBnbGVpY2h6ZWl0aWcgZGllIFBpenphIGluCmRpZSBNaWtyb3dlbGxlIHNjaGllYmVuIGthbm4uCiJKYT8iIHJ1ZmUgaWNoIGhla3Rpc2NoLgoiSXJnZW5kZXR3YXMgc3RpbW10IG5pY2h0IG1pdCBtZWluZXIgQm9vdGRpc2suIEljaCBrYW5uIGRlbiBTZXJ2ZXIgbmljaHQKZXJyZWljaGVuLiIKIkhhYmVuIFNpZSBkYXMgTGF1ZndlcmsgZGFiZWk/IgoiS2xhciEiCkljaCBob2xlIG1pciBkaWUgRGlzayB1bmQgc3RlY2tlIHNpZSB6dXNhbW1lbiBtaXQgZGVyIFBpenphIGluIGRpZQpNaWtyb3dlbGxlLiBGdWVuZiBNaW51dGVuIFVMVFJBLU5VS0UhClNlY2hzIE1pbnV0ZW4gc3BhZXRlciBydWZ0IGVyIHdpZWRlciBhbi4KIkVzIGZ1bmt0aW9uaWVydCBpbW1lciBub2NoIG5pY2h0LCBhYmVyIGpldHp0IGhvZXJlIGljaCBhdWNoIG5vY2gga29taXNjaGUKR2VyYWV1c2NoZSBhdXMgZGVtIExhdWZ3ZXJrIHVuZCBlcyByaWVjaHQgaXJnZW5kd2llIGFuZ2VicmFubnQuIgpBbmdlYnJhbm50PyBJY2ggdW50ZXJzdWNoZSBkZW4gQm9kZW4gbWVpbmVyIFBpenphLiBOYWFhaCwgbml4IGFuZ2VicmFubnQuCiBEZW0gSnVuZ2VuIGdlaHQgbnVyIGRpZSBQaGFudGFzaWUgZHVyY2ghCiJPaCwgU2NoLi4uLiIgc2FnZSBpY2gsICJkYXMgc2luZCB3aWVkZXIgZGllc2UgU3RvZXJzdHJhaGx1bmdlbiB2b24KYXVzZ2VtdXN0ZXJ0ZW4gU2F0ZWxsaXRlbi4iCiJUYXRzYWVjaGxpY2g/IERhdm9uIGhhYicgaWNoIGF1Y2ggc2Nob24gZ2Vob2VydC4uLiIKIldvdyEiCiJBaGEhIgoiVGphLCBpY2ggc2NoYWV0emUsIFNpZSBtdWVzc2VuIHNpY2ggJ25lIG5ldWUgQm9vdGRpc2sgenVsZWdlbi4uLiAiCiJPaC4gTmFqYSwgbWFjaHQgYXVjaCBuaXguIERpZSBhbHRlIGhhZXR0ZSBlcyBzb3dpZXNvIG5pY2h0IG1laHIgbGFuZ2UKZ2VtYWNodC4gRGFua2UuIgoiS2VpbmUgVXJzYWNoZS4gVW5kIGRlbmtlbiBTaWUgaW1tZXIgZGFyYW4sIGRlbiBWaXJlbmNoZWNrZXIgRkRJU0sgYWIgdW5kCnp1IGxhdWZlbiB6dSBsYXNzZW4sIHdlbm4gU2llIHdpY2h0aWdlIERhdGVuIGF1ZiBJaHJlciBEaXNrIGhhYmVuLi4uIgoiV2VyZCcgaWNoIG1hY2hlbi4gRGFua2UhIgoiQWxsZXMga2xhciAtIGlzdCBudXIgbWVpbiBKb2IhIgpSYWNpbmcgbGFldWZ0IHZpZWwgenUgbGFuZ3NhbSBmdWVyIGVpbmVuIGVyZmFocmVuZW4gU3BpZWxlcjsgYWxzbyBraWxsZSBpY2gKZWJlbiBtYWwgYWxsZSBEYXRhYmFzZSBQcm96ZXNzZSwgZGllIHNpY2ggZGVuIExvZXdlbmFudGVpbCBhbiBDUFUgaG9sZW4gdW5kCmdlYmUgUmFjaW5nIFByaW9yaXRhZXQgLTEwLiBCZXNzZXIsIHZpZWwgYmVzc2VyLgpWZXJkYW1tdCBoYXJ0LCBzbyBhbiBkZXIgdm9yZGVyc3RlbiBGcm9udDogSW1tZXIgbnVyIEFyYmVpdCwgQXJiZWl0LApBcmJlaXQuLi4KSWNoIGdvZW5uZSBtaXIgZWluZW4gc2NobmVsbGVuIDItU3R1bmRlbi1TbmFjayBpbiBkZXIgQ2FmZXRlcmlhLiBJbiBkZXIKQ2FmZXRlcmlhIHNpbmQgaW1tZXIgYWxsZSBnYW56IHJlaXplbmQgenUgbWlyLiBadW1pbmRlc3Qgc2VpdCBlcyBtYWwKZGllc2VuIGR1bW1lbiBDb21wdXRlcmZlaGxlciBnZWdlYmVuIGhhdCwgZGVyIGlocmUgS3VlY2hlIGFscyBPcmdhbi0KQXVmbmFobWUtU3RhdGlvbiByZWdpc3RyaWVydGUgLSB6aWVtbGljaCBsYWVzdGlnISBJY2ggc2NobmFwcGUgbWlyIG5vY2ggZWluCnBhYXIgQ29rZXMgdW5kIENyYWNrZXJzIHVuZCBtYWNoJyBtaWNoIGF1ZiBkZW4gUnVlY2t3ZWcsIGRpZXNtYWwgZHVyY2ggZGllCkFuZmFlbmdlciBMYWJzLiBJbmZvcm1hdGlrLCBlcnN0ZXMgU2VtZXN0ZXIuIEljaCBzY2hhdWUgZHVyY2ggZGFzIEd1Y2tsb2NoCmFuIGRlciBUdWVyOiBFaW4gZ2FuemVyIEhvZXJzYWFsIHZvbGxlciBGcmlzY2hsaW5nZSBvaG5lIERvemVudGVuLiBEYXMga2FubgpuaWNodCBhbmdlaGVuISBJY2ggc3Rvc3NlIGVuZXJnaXNjaCBkaWUgU2Nod2luZ3R1ZXJlIGF1ZiB1bmQgbWFyc2NoaWVyZSB6dXIKVGFmZWwuICJFcyBnZWh0IGxvcywgSGVycnNjaGFmdGVuISBJY2ggZGFyZiB1bSBSdWhlIGJpdHRlbi4gU2llIGRhaGludGVuLApqYSBTaWUsIFNpZSBzb3JnZW4gZGFmdWVyLCBkYXNzIHVucyBuaWVtYW5kIHN0b2VydC4gQmxvY2tpZXJlbiBTaWUgZWluZmFjaApkZW4gRWluZ2FuZy4gV2VyIHp1IHNwYWV0IGtvbW10LCBzb2xsIHNpY2ggZGFzIGZ1ZXIncyBuYWVjaHN0ZSBNYWwgbWVya2VuLgpBbHNvLCBpY2ggYmluIGlocmUgVmVydHJldHVuZyBoZXV0ZSB1bmQgd2lyIHdvbGxlbiBqZXR6dCBtYWwgZGVuIHVlYmxpY2hlbgpLcmFtLCBkZW4gU2llIHNvbnN0IG1hY2hlbiwgYmVpc2VpdGUgbGFzc2VuIHVuZCB1bnMgdWViZXIgZWluIHBhYXIKZnVuZGFtZW50YWxlIEJlZmVobGUgYXVzIGRlciBQcmF4aXMgdW50ZXJoYWx0ZW4uIFdpciBiZWdpbm5lbiBtaXQgZWluZXIKZGVyIHdpY2h0aWdzdGVuIEZ1bmt0aW9uZW4gdWViZXJoYXVwdCBkZW0gUkVNQVJLLUJlZmVobCBvZGVyIHdpZSBlciBhbGxlbgpLZW5uZXIgYmVrYW5udCBpc3QgJ3JtIConIC4uLiIKCkljaCBoYWV0dGUgdmllbGxlaWNodCBkb2NoIGJlc3NlciBQcm9mZXNzb3Igd2VyZGVuIHNvbGxlbiAtIGljaCBoYWInIGRlbgpyaWNodGlnZW4gRHJhaHQgenUgZGVuIGp1bmdlbiBMZXV0ZW4sIHdpc3NlbiBTaWUuLi4KR3J1bmR2ZXJoYWx0ZW5zcmVnZWxuIGZ1ZXIgRGVrYW5lOgooMSkuIFZFUlNURUNLRU4hCigyKS4gV2VubiBzaWUgZGljaCBmaW5kZW4gTFVFR0VOISEKRmF0aGVyIERhbWlhbiBDLiBGYW5kYWwKCkljaCBzb2xsIGFscyBFeHBlcnRlIGluIGVpbmVyIFZvcmxlc3VuZyAiR3J1bmRsYWdlbiBTeXN0ZW12ZXJ3YWx0dW5nIgphdWZ0cmV0ZW47IHNvIHN0ZWh0IGVzIGluIGRlciBFaW5sYWR1bmcuIEFsc28gdWViZXJsYXNzZSBpY2ggZGVuIEtvbnRyb2xsLQpyYXVtIGRlbiBiZXdhZWhydGVuIEhhZW5kZW4gdm9uIFNhbSwgZGVtIEhhdXNtZWlzdGVyLCB1bmQgZ2VoZSBoaW51ZWJlci4KRGllIFZvcmxlc3VuZyBsYWV1ZnQgd2llIGFtIFNjaG51ZXJjaGVuLiBHZWdlbiBFbmRlIHZlcmt1ZW5kZXQgZGVyIERvemVudCwKZGFzcyBkaWUgU3R1ZGVudGVuIG51bm1laHIgMTAgTWludXRlbiBHZWxlZ2VuaGVpdCBoYWJlbiwgZWluZW0gTWFubiBkZXIKUHJheGlzLCBlaW5lbSAicmljaHRpZ2VuIE9wZXJhdG9yIiBGcmFnZW4genUgc3RlbGxlbi4gSWNoIGhvbGUgbWVpbmVuClBhZCB1bmQgU3RpZnQgaGVyYXVzIHVuZCBzYWdlOiAiQmV2b3Igd2lyIGFuZmFuZ2VuLCBmb2xnZW5kZXIgVm9yc2NobGFnOgpLb2VubnRlbiBTaWUgYml0dGUgSWhyZW4gVXNlcm5hbWVuIG5lbm5lbiwgYmV2b3IgU2llIGVpbmUgRnJhZ2Ugc3RlbGxlbi4KQXVmIGRpZXNlIFdlaXNlIGthbm4gaWNoIElobmVuIGdld2lzc2UgUHJvYmxlbWUgYW4ga29ua3JldGVuIEJlaXNwaWVsZW4KZXJsYWV1dGVybi4gRGFzIGlzdCBlaW5mYWNoZXIgenUgdmVyc3RlaGVuLiIKRGVyIERvemVudCBzY2hsdWNrdCBlcyAtIG1pdCBTZW5mIHVuZCBDYXRjaHVwLiBCZWlzcGllbGUgc2luZCBwZXIgZGVmYXVsdApndXQuIFNhZyBuaWVtYWxzIHdhcyBnZWdlbiBCZWlzcGllbGUgYW4gZWluZXIgVW5pISAiT2ssIGVyc3RlIEZyYWdlLiBTaWUKZGEgZHJ1ZWJlbi4uLiIKIldpZSBiZXVydGVpbGVuIFNpZSBkZW4gU2NodXR6IHZvbiBwZXJzb2VubGljaGVuIERhdGVuIGF1ZiBlaW5lbSBNZWhyYmUtCm51dHplcnN5c3RlbT8iCiJXaWUgd2FyIElociBVc2VybmFtZT8iCiJDTVMxMTAzLiIKPmtyaXR6ZWxrcmF0emVsPAoiU2NodXR6IHZvbiBwZXJzb2VubGljaGVuIERhdGVuIC4uLiBIbW1tLiBFaW4gaGVpc3NlcyBUaGVtYSwgd2lya2xpY2guIFNpZQpkZW5rZW4genVtIEJlaXNwaWVsLCB3ZW5uIGplbWFuZCBJaHJlIHByaXZhdGUgbWFpbCBsaWVzdCwgd29yaW4gU2llIHNpY2gKbWl0IElocmVtIFRoZXJhcGV1dGVuIHVudGVyaGFsdGVuPyBadW0gQmVpc3BpZWwsIHdhcnVtIFNpZSBzaWNoIHZvciBJaHJlcgpGcmF1IGltbWVyIGltIFNjaHJhbmsgdmVyc3RlY2tlbj8iCiJBQUFBQUFBQUFBQUFBUlJSUlJSUlJSUkdHR0dHR0dISEhISEghISEhISIKIk9oLiBEYXMga2FtIHdvaGwgbmljaHQgc28gZ3V0IGFuLiBPZGVyIGVyIG11c3N0ZSBkcmluZ2VuZCB3ZWcuIFdhcgp2aWVsbGVpY2h0IGtlaW4gc28gZ3V0ZXMgQmVpc3BpZWwuIE5hZWNoc3RlIEZyYWdlLCBiaXR0ZS4gSmEsIFNpZSBkYQpoaW50ZW4uLi4iCiJDTVMxMTM2LiBJY2ggd3VlcmRlIGdlcm5lIC4uLiIKIkFoLiAxMTM2LCBkZXIgZWluemlnZSBVc2VyIGFuIGRlciBnYW56ZW4gVW5pLCBkZXIgaW4KYWx0LnNleC5idWdnZXJ5LmJ5LnNhaWxvcnMuaW4ubXVtcy5jbG90aGluZyBhYm9uaWVydC4iCiJOdXIgZnVlciByZWluIHdpc3NlbnNjaGFmdGxpY2hlIFp3ZWNrZSEiCiJOYXR1ZXJsaWNoISBGdWVyIGVpbmVuIFdpc3NlbnNjaGFmdGxlciBoYWJlbiBTaWUgZWluZSBiZXRyYWVjaHRsaWNoZQpQb3N0aW5nLVN0YXRpc3RpayBkb3J0LCBmaW5kZW4gU2llIG5pY2h0PyIKIk5OTk5OR0dHR0dHQUFBQUFBQUFHR0dHR0dHSEhISEhIISEhISIKIkRlciBuYWVjaHN0ZSBiaXR0ZS4uLiIKClp3ZWkgTWludXRlbiBzcGFldGVyIHNpbmQgd2lyIGFsbGVpbiBpbSBIb2Vyc2FhbC4gRGFzIGlzdCBlYmVuIGRhcyBQcm9ibGVtCm1pdCBkZW4gaGV1dGlnZW4ganVuZ2VuIExldXRlbjogRGllIHdvbGxlbiBuaWNodHMgbWVociBsZXJuZW4uLi4KSWNoIGdlaGUgenVydWVjayB6dSBtZWluZW0gS29udHJvbGxyYXVtIHVuZCBTYW0gaXN0IHNjaG9uIHdpZWRlciBhdWYgZGVyCktvbnNvbGUgZWluZ2VzY2hsYWZlbi4gSWNoIGdsYXViZSBqZXR6dCwgZXIgaXN0IERPQ0ggaGludGVyIG1laW5lbSBKb2IKaGVyLiBTbyBlaW4gRWluc2F0ei4uLgpJY2ggbmVobWUgbWlyIHZvciwgYmVpIEdlbGVnZW5oZWl0IGVpbiBwYWFyIG5vdHdlbmRpZ2UgYWVuZGVydW5nZW4gaW4gZGVyCkdlaGFsdHNkYXRlbmJhbmsgdm9yenVuZWhtZW4uIE1hbiBrYW5uIG5pZSB2b3JzaWNodGlnIGdlbnVnIHNlaW4uLi4KS3Jhbmtlbi0gdW5kIFVuZmFsbHZlcnNpY2hlcnVuZyBicmF1Y2h0IFNhbSBlaWdlbnRsaWNoIG5pY2h0LiBJY2ggbGVnZSBkZW4KSG9lcmVyIGF1ZiBkaWUgR2FiZWwgLSBkYXMgZXJzdGUgTWFsIGhldXRlIG5hY2htaXR0YWcgLSB1bmQgc29mb3J0IGZhZW5ndCBkYXMKRGluZyBhbiB6dSByYXR0ZXJuLiBFUyBSRUlDSFQhIFVtIG1laW4gTWl0dGFnc3NjaGxhZWZjaGVuIHp1IHJldHRlbiwgbGVpdGUKaWNoIGRlbiBBbnNjaGx1c3MgYXVmIDEgMSAwIHVtLiBEYXMgd2lyZCBpaG5lbiBlaW5lIExlaHJlIHNlaW4hClVwcywgZmFzdCB2ZXJnZXNzZW4sIGRlbiBBdXNyZWRlbmthbGVuZGVyIHVtenVibGFldHRlcm4uCiJTdGF0aXNjaGUgQXVmbGFkdW5nIHdlZ2VuIE55bG9uLVVudGVyd2Flc2NoZSIKTmFhYWgsIHZpZWwgenUgcGxhdXNpYmVsIC0gb2J3b2hsLCBpY2gga29lbm50ZSBkaWUgVW50ZXJ3YWVzY2hlIHZvbiBGYWxsIHp1CkZhbGwgcGVyc29lbmxpY2ggdWViZXJwcnVlZmVuLi4uIG5lZSwgbGllYmVyIG5pY2h0LCB3ZXIgd2Vpc3Mgd2FzIGRhYmVpIGFucwpUYWdlc2xpY2h0IGtvbW10LiBJY2ggYmxhZXR0ZXJlIGVpbnMgd2VpdGVyLgoiU3RhdGlzY2hlIEF1ZmxhZHVuZyBkdXJjaCBQbGFzdGlrLVJlY2hlbnNjaGllYmVyIgpOYSwgZGFzIGlzdCBkb2NoIG1hbCB3YXMhIEVpbmUgZWNodGUgSGVyYXVzZm9yZGVydW5nIQpJY2ggaGViZSBkaWUgVGVsZWZvbnVtbGVpdHVuZyBhdWYgdW5kIHBsYXppZXJlIGRhbm4gZGVuIFBhcGllcmtvcmIgdW50ZXIKZGVtIERydWNrZXJhdXN3dXJmIC0gZW5kbGljaCBlaW5lIHRlY2huaXNjaCBmb3J0Z2VzY2hyaXR0ZW5lIExvZXN1bmchCldhZWhyZW5kIGljaCBub2NoIG1laW4gV2VyayBiZXd1bmRlcmUsIGxhZXV0ZXQgZXMuIERhcyBrb2VubnRlIGRlciBncm9zc2UKV3VyZgp3ZXJkZW4hCiJIYWxsbz8iCiJIYWxsbywgYWVobSwgd2llIGthbm4gaWNoIG1laW4gRmlsZSBhdWYgUmVjaHRzY2hyZWliZmVobGVyIHBydWVmZW4/IgoiR2FueiBlaW5mYWNoLiBUaXBwZW4gU2llICdzcGVsbCcgdW5kIGRlbiBGaWxlbmFtZW4uIgoiRGFua2UuIgpJY2ggYmluIHdpZWRlciBtYWwgaG9lbGxpc2NoIGhpbGZzYmVyZWl0IGhldXRlIG1vcmdlbi4gVm9yIGFsbGVtIHdlaWwgaWNoCndlaXNzLCBkYXNzIG1laW5lIHNwZXppZWxsZSBWZXJzaW9uIHZvbiAnc3BlbGwnIEZlaGxlciBlcnpldWd0LCBzdGF0dCBzaWUgenUKYmVzZWl0aWdlbi4gQXVzICdGcmV1bmQnIHdpcmQgJ0ZydWVuZCcgdW5kIHVtZ2VrZWhydC4gRWluIEF1Z2Vuc2NobWF1cyEKRGFzIFRlbGVmb24ga2xpbmdlbHQgLSBlciBpc3QncyB3aWVkZXIuCiJJcmdlbmRldHdhcyBzdGltbXQgbmljaHQgbWl0IGRlbSAnc3BlbGwnIFByb2dyYW1tLiIKIldpZSBrb21tZW4gU2llIGRlbm4gZGEgZHJhdWY/IgoiV2VpbCBtZWluIEZpbGUgcGxvZXR6bGljaCB2b2xsIG1pdCBGZWhsZXJuIGlzdCEiCiJIbSwgZGFzIGtsaW5ndCBuaWNodCBnZXJhZGUgbmFjaCAnc3BlbGwnLiBTaW5kIFNpZSB1ZWJlciBJaHJlbiBQQwplaW5nZWxvZ2d0PyIKIkphLCBhYmVyIGljaCAuLi4iCiJCaXR0ZSwgdWViZXJsYXNzZW4gU2llIGRpZSB0ZWNobmlzY2hlIERpYWdub3NlIG1pciEgQWxzbywgaXN0IGRhIGlyZ2VuZHdvCmVpbiBSZWNoZW5zY2hpZWJlciBhdWYgb2RlciBpbiBJaHJlbSBTY2hyZWlidGlzY2g/IiAiYWVobSA+a2xhcHBlcjwgamEsCmFiZXIuLi4iCiJBaGEuIEhhYmVuIHdpcidzIHNjaG9uLiBTaWUgaGFiZW4gZWluZSBzdGF0aXNjaGUgQXVmbGFkdW5nIGF1ZiBJaHJlcgpGZXN0cGxhdHRlLCB2ZXJ1cnNhY2h0IHZvbiBkZW4gd2VjaHNlbG5kZW4gZWxla3Ryb3N0YXRpc2NoZW4gRmVsZGVybiwgZGllCmRlciBSZWNoZW5zY2hpZWJlciBlcnpldWd0IC0gU2llIHdpc3NlbiBzY2hvbjogc28sIHdpZSBlciBrbGVpbmUgUGFwaWVyLQpmaWV6ZWwgYW56aWVodCwgd2VubiBzaWUgaWhuIGFuIElocmVtIFB1bGxvdmVyIHJlaWJlbi4uLiIKRFVNTVkgTU9ERSBPTgoiT2guIFdhcyBrYW5uIG1hbiBkYSBtYWNoZW4/IgoiU2llIHdpc3NlbiBkb2NoLCB3aWUgU2llIHNvbGNoZSBsYWVzdGlnZW4gUGFwaWVyZmllemVsIHZvbiBJaHJlbSBSZWNoZW4tCnNjaGllYmVyIHdlZyBiZWtvbW1lbj8gR2VuYXUsIFNpZSBzY2hsYWdlbiBkYW1pdCBhdWYgZGllIFRpc2Noa2FudGUsIGJpcwpkaWUgZWxla3RyaXNjaGVuIEZlbGRlciBzaWNoIGltIEVyZG1hZ25ldGZlbGQgYXVmbG9lc2VuLiBNYWNoZW4gU2llIGRhcwpnbGVpY2hlIG1pdCBJaHJlbSBQQy4gU2FnZW4gd2lyLCB6d2FuemlnIG1hbCAtIGhlYmVuIFNpZSBpaG4gZXR3YSBkcmVpc3NpZwpaZW50aW1ldGVyIHVlYmVyIGRlbiBUaXNjaCB1bmQgbGFzc2VuIGlobiBmYWxsZW4uIgoiQWgsIGd1dC4gQmxlaWJlbiBTaWUga3VyeiBkcmFuPyIKIlNpY2hlci4iCkRhcyB3dWVyZGUgaWNoIG5pY2h0IG1hbCBmdWVyIGRpZSBTaW1wc29ucyB2ZXJwYXNzZW4hCj5wb2x0ZXI8Cj5wb2x0ZXI8Cj5wb2x0ZXI8ID5rbGlycjwKImFlaCwgaGFsbG8/IERlciBTY2hpcm0gaXN0IHBsb2V0emxpY2ggZHVua2VsIGdld29yZGVuLi4uIgoiRGFzIGlzdCBnYW56IG5vcm1hbCwgZGFzIG1hY2h0IGVyIGltbWVyOyBzb2xsIGVyIHNvZ2FyLiBNYWNoZW4gU2llCndlaXRlci4gVW5kIHdlbm4gU2llIG1pdCBkZW0gUEMgZmVydGlnIHNpbmQsIG1hY2hlbiBTaWUgc2ljaGVyaGVpdHNoYWxiZXIKZGFzIEdsZWljaGUgYXVjaCBub2NoIG1pdCBkZW0gU2NoaXJtLiBNYW5jaG1hbCBicmVpdGV0IHNpY2ggZGllIEF1ZmxhZHVuZwp1ZWJlciBkaWUgS2FiZWwgYmlzIGluIGRlbiBTY2hpcm0gYXVzLiIKPnBvbHRlcjwKPnBvbHRlcjwKPnBvbHRlcjw+c2NoZXBwZXI8IC4uCkljaCBsZWdlIGF1Zi4gU3BhZXRlciBnZWhlIGljaCByYXVzIGluIGRlbiBvZWZmZW50bGljaGVuIENJUC1Qb29sIHVuZAp0cmFldWZsZSB1bmF1ZmZhZWxsaWcgSG9uaWcgaW4gZGllIFNjaGxpdHplIGRlciBGbG9wcHkgTGF1ZndlcmtlLCBhbHMKcGxvZXR6bGljaCBlaW4gVHlwIGF1ZnRhdWNodCwgZGVyIHZlcmRhbW10IHdpZSBMZWUgSGFydmV5IE9zd2FsZCBhdXNzaWVodCwKdW5kIG1pY2ggdWViZXIgZGVuIEhhdWZlbiBzY2hpZXNzdC4gQWJlciBkZXIgS25hbGwga29tbXQgYXVzIGRlbSBNYXNjaGluZW4tCnJhdW0sIHVuZCB3YWVocmVuZCBpY2ggYW4gZWluZXIgYmx1dGJlc3VkZWx0ZW4gSUJNIE1hc2NoaW5lIHp1c2FtbWVuc2Fja2UsCmhvZXJlIGljaCBkZW4gRXgtU3lzdGVtLU1hbmdlciBpbSBIaW50ZXJncnVuZCBraWNoZXJuLi4uCk5vY2ggc3BhZXRlciwgaW0gS3JhbmtlbndhZ2VuLCB3aXJkIG1pciBrbGFyLCBkYXNzIGljaCB2b24gZGVtIFR5cGVuIG5pY2h0Cm1hbCBkaWUgVXNlcmtlbm51bmcgaGFiZS4uLgpEYW5uIHdpcmQgYWxsZXMgZHVua2VsLgoKQWxzIGRlciBLcmFua2Vud2FnZW4gZGFzIEVuZGUgZGVzIFR1bm5lbHMgZXJyZWljaHRlLCB2ZXJzY2h3YW5kIGRpZQpEdW5rZWxoZWl0IHdpZWRlci4gVmllbGxlaWNodCB3YXIgaWNoIGRvY2ggbmljaHQgc28gc2Nod2VyIHZlcmxldHp0LgpWaWVsbGVpY2h0IGFiZXIgZG9jaCEgRWdhbCwgamVtYW5kIHd1ZXJkZSBkYWZ1ZXIgYmV6YWhsLi4KSW4gZGllc2VtIE1vbWVudCBzdGFyYiBpY2guCkZ1ZXIgZWluZW4gZWNodGVuIEJhc3RhcmQgT3BlcmF0b3IgZnJvbSBIRUxMIHNhaCBkaWUgU2FjaGUgbmF0dWVybGljaCBldHdhcwphbmRlcnMgYXVzOiBNZWhyIHdpZSBlaW4gdW5lcndhcnRldGVyIFVybGF1Yi4KRnVlbmYgU2VrdW5kZW4gc3BhZXRlciBiZWtvbW1lIGljaCAxNSBrViBkdXJjaCBkaWUgQnJ1c3R3YXJ6ZW4gZ2VqYWd0LgpVbnZlcmR1ZW5udCB1bmQgb2huZSBFaXMhIChFY2h0ZSBTYW5pdGFldGVyIHdpc3NlbiBlYmVuLCB3aWUgbWFuIGVpbmUKdG9kbGFuZ3dlaWxpZ2UgUGFydHkgYmVsZWJ0ISkgREVSIEJBU1RBUkQgT1BFUkFUT1IgRlJPTSBIRUxMIExFQlQhCgpEcmVpIFdvY2hlbiBzcGFldGVyIGJpbiBpY2ggd2llZGVyIGF1ZiBkZW4gQmVpbmVuLCBob2NoZ2VwYWVwcGVsdCB2b24gc3Vlc3NlbgpLcmFua2Vuc2Nod2VzdGVybiwgZGllIHVtIGlocmUgUGVuc2lvbnNhbnNwcnVlY2hlIGZ1ZXJjaHRlbi4gVm9sbGVyIEVuZXJnaWUKc2l0emUgaWNoIGhpbnRlciBtZWluZXIgS29uc29sZS4gQWxsZXMgaW4gYWxsZW0sIGdhciBuaWNodCBzbyBzY2hsZWNodCwKZGllIFplaXQgaW0gSG9zcGl0YWw7IGljaCBrb2VubnRlIEJhZXVtZSBhdXNyZWlzc2VuISBJY2ggZ2VoZSByYXNjaCBkdXJjaCBkaWUKYW5nZWhhZXVmdGUgVXNlcm1haWwgZGVyIGxldHp0ZW4gV29jaGVuIChudXIgZGFtaXQgaWNoIG5pY2h0cyB2ZXJwYXNzZSEpLApkYW5uIGxhc3NlIGljaCBkaWUgU3R1ZGVudGVuIHdpc3NlbiwgZGFzcyBpY2ggd2llZGVyIGF1ZiBkZW0gUG9zdGVuIGJpbi4KRWluIG5pY2h0IGFuZ2VrdWVuZGlndGVyIFdhcnR1bmdzenlrbHVzLCBtaXR0ZW4gaW4gZGVyIEhhdXB0dWVidW5nc3plaXQ7IGljaApmbGlwcGUgZGVuIFJlc3RhcnQtU2NoYWx0ZXIuIEVpbiB3b2hsaWdlcyBHZWZ1ZWhsIGJyZWl0ZXQgc2ljaCBpbiBtaXIgYXVzLgpTaWUgd2VyZGVuIG1pY2ggZGFmdWVyIGxpZWJlbiEgSWNoIGJsYWV0dGVyZSBkZW4gQXVzcmVkZW5rYWxlbmRlciB1bS4KIlRSRUlCSEFVU0VGRkVLVCIKSkEhISEgV2lsbGtvbW1lbiB6dSBIYXVzZSEKRXMgaXN0IE1vbmF0c2VuZGUuIEluIEt1ZXJ6ZSB3ZXJkZW4gZGllc2UgZ2FuemVuIHVubm9ldGlnZW4gYXV0b21hdGlzY2hlbgptYWlsaW5nIGxpc3RzIGRhcyBOZXR6IHVlYmVyc2Nod2VtbWVuLiBJY2gga29ycmlnaWVyZSBkaWUgU3lzdGVtdWhyIHVtIDcKVGFnZSBuYWNoIGhpbnRlbiwgdW0gbWlyIGRpZSBQZXJmb3JtYW5jZSBuaWNodCB6dSB2ZXJzYXVlbiB1bmQgd2VjaHNlbGUKZGFzIG5ldWUgRHJ1Y2tlcmJhbmQgZ2VnZW4gbWVpbiBTcGV6aWFsYmFuZCAtIGRyZWkgSmFocmUgYWx0LCBtaXQgdmllbGVuCmh1ZWJzY2hlbiBMb2VjaGVybi4gSWNoIGdyYWJlIG1pY2ggZHVyY2ggZGVuIFN0YXBlbCBzbmFpbCBtYWlsLCBkZXIgc2ljaAphbmdlaGFldWZ0IGhhdCwgdW5kIHN0dWVyemUgbWljaCBhbHMgZXJzdGVzIGF1ZiBkYXMgQk9GSCBKb3VybmFsICJraWxsIC05Ii4KRWluIGh1ZWJzY2hlciBBcnRpa2VsIGlzdCBkYWJlaSwgd2llIG1hbiBXaW5kb3dzIDk1IGdyYXVzYW0gbGFuZ3NhbSB1bmQKaG9lbGxpc2NoIGxhbmd3ZWlsaWcgbWFjaGVuIGthbm4uIElyZ2VuZHdpZSBzY2hhdXQgZGVyIEFydGlrZWwgYXVzLCB3aWUgZGllCm5vcm1hbGUgSW5zdGFsbGF0aW9uc2FubGVpdHVuZyBmdWVyIFdpbmRvd3MgOTUgLi4uIG5hamEsIHdlciB3ZWlzcy4gSWNoCmJsYWV0dGVyZSBtaWNoIGR1cmNoIGJpcyB6dXIgQk9GSCBFeHBlcnRlbnJ1YnJpayB1bmQgc2NoYXVlLCBvYiBpcmdlbmQtCndlbGNoZSBBcnRpa2VsIHZvbiBtaXIgaGluZWluZ2Vrb21tZW4gc2luZC4gQWxsZSEhISBTb2dhciBkZXIgdWViZXIgZGVuIEMrKwpDb21waWxlciwgZGVyIHBlciBadWZhbGwgS2xhc3NlbiB1bWJlbmVubnQgdW5kIGRpZXMgc29nYXIgaW0gU291cmNlY29kZQphZW5kZXJ0IQpEYXMgVGVsZXBob24ga2xpbmdlbHQuIChJcmdlbmR3aWUgaGFiZSBpY2ggZmFzdCBkYXJhdWYgZ2V3YXJ0ZXQhKQoiTWVpbiBCaWxkc2NoaXJtIGlzdCBkdW5rZWwhISEiCiJOZXR6a2FiZWwhIiBzYWdlIGljaC4KIk5laW4sIGRhcyBoYWInIGljaCBzY2hvbiB1ZWJlcnBydWVmdC4gV2VubiBpY2ggZWluc2NoYWx0ZSwgcGFzc2llcnQgZWluZmFjaApuaWNodHMhIgoiTmV0emthYmVsISIgc2FnZSBpY2guCiJOZWluISBEYXMgTmV0emthYmVsIHN0ZWNrdCByaWNodGlnIGRyaW4uIEF1Y2ggZGllIExldWNodGRpb2RlbiBhbQpLZXlib2FyZCBsZXVjaHRlbiBuaWNodCEiCiJEYXMgTmV0emthYmVsISIgc2FnZSBpY2guCiJPaCwgTW9tZW50IG1hbC4gRGFzIEthYmVsIGlzdCBuaWNodCByaWNodGlnIGVpbmdlc3RlY2t0ISIKIkRhcyBOZXR6a2FiZWw/IiBmcmFnZSBpY2guCiJKYSAuLi4gU2NoLi4uLi4iCiJNYWNodCBqYSBuaXgiLCBzYWdlIGljaCwgIkZ1bmt0aW9uaWVydCBqZXR6dCBhbGxlcyB3aWVkZXI/IgoiSmEsIGljaCBnbGF1Yicgc2Nob24uIFR1dCBtaXIgbGVpZC4gU2llIGhhYmVuIG5hdHVlcmxpY2ggcmVjaHQgZ2VoYWJ0LiIKIlRqYSwgd2lyIGJla29tbWVuIGRhcyBoYWV1ZmlnIGluIGxldHp0ZXIgWmVpdC4gRGVyIEdydW5kIGxpZWd0IHdhaHItCnNjaGVpbmxpY2ggYW0genVuZWhtZW5kZW4gVHJlaWJoYXVzZWZmZWt0LiBEaWUgZ2xvYmFsZSBFcndhZXJtdW5nIHZlcnVyLQpzYWNodCBzdGFyayBzdGF0aXN0aXNjaCB2YXJpaWVyZW5kZSB0aGVybWFsZSBLb250cmFrdGlvbmVuLCB3ZWxjaGUKd2llZGVydW0gdGVtcGVyYXR1cmluZHV6aWVydGUgQmV3ZWd1bmdlbiBoZXJ2b3JydWZ0LCBkZXJlbiBSZWlidW5ncy0Ka29lZmZpemllbnRlbiB6dSBBZGhhZXNpb24gYW0gUGxhc3Rpa3RlaWxlbiBmdWVocmVuIGthbm4uLi4iCkljaCBsYXVzY2hlIGF1Zm1lcmtzYW0uIE5pY2h0cy4gTWl0IGFuZGVyZW4gV29ydGVuLAo8RFVNTVkgTU9ERSBPTj4uLi4KIlNpZSBrb2VubmVuIHNpY2ggenVrdWVuZnRpZyBkYXZvciBzY2h1ZXR6ZW4sIHdpc3NlbiBTaWUuLi4iCiJXaXJrbGljaD8gV2llIGRlbm4/IgoiRXMgcmVpY2h0IGltIFByaW56aXAgc2Nob24sIGVpbmUgc2Nod2FjaCBiYXNpc2NoZSBNaW5lcmFsbG9lc3VuZyBhdWYgZGllCk1ldGFsbGtvbnRha3RlIGF1Znp1YnJpbmdlbi4iCiJPaCEiCjxJUlJFVk9DQUJMRSBEVU1NWSBNT0RFIE9OPgoiR2FueiBlaW5mYWNoLiBBbGxlcyB3YXMgU2llIG1hY2hlbiBtdWVzc2VuLCBpc3QgZGVuIFN0ZWNrZXIgdm9tIEdlcmFldAphYnppZWhlbiB1bmQgZWluZSBzY2h3YWNoIGJhc2lzY2hlIFNhbHpsb2VzdW5nIGluIGRpZSBTY2hsaXR6ZSB6dSB0cmFldWZlbG4uCkhhYmVuIFNpZSBlaW5lIHNjaHdhY2ggYmFzaXNjaGUgTG9lc3VuZyB6dXIgSGFuZD8gU28gZXR3YSBwSCA3PyIKImFlaC4uLiBuZWluPyIKIk1hY2h0IGF1Y2ggbmljaHRzLiBTdGVja2VuIHNpZSBkZW4gU3RlY2tlciBlaW5mYWNoIGluIGRlbiBNdW5kIHVuZCBsYXNzZW4KU2llIFNwZWljaGVsIGhpbmVpbmxhdWZlbi4gU3BlaWNoZWwgaXN0IHNjaHdhY2ggYmFzaXNjaCwgdW5kIGVyIGhhdApNaW5lcmFsc2FsemUuIEFCRVIgd2lzY2hlbiBTaWUgZGVuIFN0ZWNrZXIgdm9yaGVyIHNvcmdmYWVsdGlnIHNhdWJlciwgd2VnZW4KS2VpbWVuIHVuZCBzby4gVW5kLCBTQ0hBTFRFTiBTSUUgVU0gR09UVEVTIFdJTExFTiBWT1JIRVIgREVOIE1PTklUT1IgQUIgLQp3aXIgd29sbGVuIGRvY2ggbmljaHRzIHJpc2tpZXJlbiEiCiJPaC4gR3V0ISIKPkZaWlpaVDwgPlBPTFRFUjwKQWxzIGRlciBIb2VyZXIgYXVmIGRlbiBCb2RlbiBrbmFsbHQsIGxlZ2UgaWNoIGF1Zi4gU3BlaWNoZXJwbGF0eiBpc3QgdmllbAp6dSBndXQgZnVlciBkaWUhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3BlcmF0b3IgenVtIGxldHp0ZW4gKExpbmssIDEzLiBNYXIgMTk5NiwgMTY6MTA6MzcpOgpVbmQgamV0enQgbGVpZGVyIHp1bSBsZXR6dGVuIG1hbCwgZGVyOgoKCiAgICAgICAgICAgICAgICAgICAgQmFzdGFyZCBPcGVyYXRvciBmcm9tIEhlbGwKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVGVpbCA1KQoKICAgICAgICAgICAgICAgICAgICAgICAgIFNJTU9OIEdBVkFHTElBCgoKSWNoIGtvbW1lIHp1ciBBcmJlaXQsIGFiZXIgaWNoIGJpbiBuaWNodCBhdXNnZXNjaGxhZmVuLiBBbHNvIGtsZW1tZSBpY2gKZWluIFN0dWVjayBLdXBmZXJzY2hpZW5lIHVlYmVyIGRpZSBkcmVpIFBoYXNlbiBkZXIgSGF1cHR2ZXJzb3JndW5nIHVuZCB3ZXJmZQpkZW4gSGViZWwgaGVydW0uIEFscyBkaWUgSGF1cHRzaWNoZXJ1bmdlbiBoZXJhdXNwZmVpZmVuLCB3aXJkIGVzIGR1bmtlbAp1bmQgZW5kbGljaCBtYWwgd2lyZCBlcyBzdGlsbCBpbSBSZWNobmVycmF1bS4KRXMgZ2VmYWVsbHQgbWlyLgpJY2ggc2NobmlwcGUgZGVuIEhvZXJlciB2b24gZGVyIEdhYmVsIHVuZCBzY2hsaWVzc2UgZGllIFZvcmhhZW5nZSB2b3IgZGVtCkJlb2JhY2h0dW5nc2ZlbnN0ZXIuIEpldHp0IGlzdCBlcyBXSVJLTElDSCBkdW5rZWwgaGllciBkcmluLiBXdWVyZGUgbWljaApuaWNodCB3dW5kZXJuLCB3ZW5uIGplbWFuZCBlaW5lbiBVbmZhbGwgaGFldHRlLi4uCkljaCB0YXN0ZSBtaWNoIGluIGRlciBEdW5rZWxoZWl0IHp1bSBFaW5nYW5nIHVuZCBlbnRmZXJuZSBlaW4gcGFhciBkZXIKQm9kZW5wbGF0dGVuLCBkaWUgZGllIHRpZWZlbiBLYWJlbHNjaGFlY2h0ZSB1bnRlciBkZW0gUmVjaG5lcnJhdW0gYWJkZWNrZW4uCkRhbm4gcnVmZSBpY2ggdW5zZXJlIFNlcnZpY2UtRmlybWEgYW4gdW5kIHNhZ2UsIGRhc3MgZGVyIE1pbmkgd2llZGVyIG1hbApkaWUgSGF1cHRzaWNoZXJ1bmcgZ2VzY2hvc3NlbiBoYXQuIERhbm4gZXJzZXR6dGUgaWNoIGRpZSBnZXNjaG9zc2VuZW4KU2ljaGVydW5nZW4gZHVyY2ggZWluIHBhYXIgTmFlZ2VsIHVuZCBzY2hsaWVzc2UgZGllIFZlcnNvcmd1bmdzbGVpdHVuZ2VuCmdlZ2VuIE1hc3NlIGt1cnouIEF1ZiBzbyB3YXMga2FubiBtYW4gbmljaHQgaG9mZmVuLCBtYW4gbXVzcyBlcyBNQUNIRU4hCjE1IE1pbnV0ZW4gc3BhZXRlciBlcnNjaGVpbnQgZGVyIFRlY2huaWtlciB1bmQgZmxpZWd0IGluIGRlbiBLYWJlbHNjaGFjaHQuCkljaCBzY2hpZWJlIGRpZSBCb2RlbnBsYXR0ZW4genVydWVjayBhbiBpaHJlbiBQbGF0eiwgYWxzIGRlciBTeXN0ZW0tTWFuYWdlcgotIGVpbiBuZXVlciwgc2NocmVja2xpY2ggZ3J1ZW5kbGljaGVyIFR5cCAtIGhlcmVpbmtvbW10IHVuZCBtaXIgc2FndCwgaWNoCnNvbGxlIG1pY2ggdm9yc2VoZW4uIEluIGRpZXNlciBEdW5rZWxoZWl0IGtvZW5uZSBqZW1hbmQgbGVpY2h0IGVpbmVuIFVuZmFsbApoYWJlbi4uLgpJY2ggbmlja2UgdW5kIHNhZ2UgaWhtLCBkYXNzIHdpciB1bnMgZGllc2UgQXVzZmFsbHplaXRlbiBlaWdlbnRsaWNoIG5pY2h0CmxlaXN0ZW4ga29lbm5lbiB1bmQgb2IgaWNoIG5pY2h0IGVpbmZhY2ggZGllIEhhdXB0c2ljaGVydW5nZW4gd2llZGVyCmVpbnNjaGFsdGVuIHNvbGwsIGluIGRlciBIb2ZmbnVuZywgZGFzcyBuaWNodCBFcm5zdGhhZnRlcyBwYXNzaWVydCBzZWkuCk5hY2ggZWluaWdlciBNZWRpdGF0aW9uIHVlYmVyIGRpZSBOZWdhdGl2LVNjaGxhZ3plaWxlbiwgZGllIHdpciBtaXQgamVkZXIKdmVyc3RyZWljaGVuZGVuIE1pbnV0ZSBhbmhhZXVmZW4sIG1hY2h0IGVyIGRpZSBsZXR6dGUgRW50c2NoZWlkdW5nIHNlaW5lcgpzdGVpbGVuLCBhYmVyIGt1cnplbiBLYXJyaWVyZTogRXIgc2FndCwgaWNoIHNvbGwncyB2ZXJzdWNoZW4uClNwYWV0ZXIsIG5hY2hkZW0gc2ljaCBkZXIgUmF1Y2ggZXR3YXMgZ2VsaWNodGV0IGhhdCwgdW50ZXJzdWNoZSBpY2ggZGllCmJydXR6ZWxuZGVuIFJlc3RlIHVuc2VyZXMgTWluaXMuIEtlaW4gc2VociBzY2hvZW5lciBBbmJsaWNrLi4uCiJLb21pc2NoLCBkYXNzIGRpZSBIYXVwdHNpY2hlcnVuZ2VuIGdla2xlbW10IGhhYmVuLCBuaWNodD8iIHNhZ2UgaWNoIHp1bQpTeXN0ZW0tTWFuYWdlciwgd2FlaHJlbmQgZXIgc2VpbmUgcGVyc29lbmxpY2hlbiBTYWNoZW4gZWluc2FtbWVsdC4KIkVpbmUgQ2hhbmNlIHZvbiAxIHp1IGVpbmVyIE1pbGxpb24uIFp1IGR1bW0sIGRhc3MgU2llIGplbWFuZCBiZW9iYWNodGV0CnVuZCBkaWUgZ2FuemUgR2VzY2hpY2h0ZSBuYWNoIGNvbXAubWlzYyBnZXBvc3RlZCBoYXQuIE5hY2ggYWxsIGRlcgpzY2hsZWNodGVuIFByZXNzZSBrb2VubmVuIFNpZSBmcm9oIHNlaW4sIHdlbm4gU2llIGVpbmVuIEpvYiBmaW5kZW4sIGluIGRlbQpTaWUgZWluZW4gVGFzY2hlbnJlY2huZXIgbWFuYWdlbiBkdWVyZmVuLi4uIgpJY2ggZ2VoJyB6dXJ1ZWNrIGluIGRlbiBLb250cm9sbHJhdW0gdW5kIHNjaGFsdGUgZGllIHJlc3RsaWNoZW4gU2ljaGVydW5nZW4Kd2llZGVyIGVpbi4gRGVyIFJlY2huZXJyYXVtIGJlbGVidCBzaWNoIHdpZWRlci4gQW4gZGVyIEtvbnNvbGUgc3RlaHQ6CidELlVzYm90bWJ1aHBvIUcvVGRpZi0xLW0hMjo6NicgLSBlaW4gbGV0enRlciBHcnVzcyBkZXMgdmVyc2Nob2xsZW5lbgpUZWNobmlrZXJzIGF1cyBkZXIgSG9lbGxlIQpJY2ggbG9nZ2UgZWluIHVuZCBiZWdpbm5lLCBVc2VyLUVtYWlsIHp1IGxvZXNjaGVuLiBEYWJlaSBlbnRkZWNrZSBpY2ggZWluZQppbnRlcmVzc2FudGVuIHNleHVlbGxlbiBBbnRyYWcgdW5zZXJlcyBDb25zdWx0YW50cyBhbiBlaW4gbWFlbm5saWNoZXMKTWl0Z2xpZWQgZGVyIFNjaHdpbW0tTWFubnNjaGFmdC4gRGFzIGdpYnQgZWluIGhlcnZvcnJhZ2VuZGVzIG1vdGQgKCdtb3RpdgpvZiB0aGUgZGF5Jyk7IGRlc2hhbGIga29waWVyZSBpY2ggZXMgZG9ydGhpbi4gRGFubiBhZW5kZXJlIGljaCBkZW4gcm9vdApBY2NvdW50IG5hY2ggJ1dpbmtlcicgdW5kIGRhcyBQYXNzd29ydCBuYWNoICdsamthZGxrYWpmbGtqJy4gRGVtIGdyb3NzZW4KSGFldXB0bGluZyBzYWdlIGljaCBhbSBUZWxlZm9uLCBkYXNzIGljaCBlaW5lbiBFaW5icnVjaCB2ZXJtdXRlLiBCaXMgd2lyIGRhcwpnZW5hdWVyIHVudGVyc3VjaHQgaGFiZW4gKGVpbiBwYWFyIFN0dW5kZW4gd2lyZCdzIHNjaG9uIGJyYXVjaGVuKSwgYmxlaWJlbgpkaWUgYW5kZXJlbiBBY2NvdW50cyBnZXNwZXJydC4gRGllIExldXRlIHdlcmRlbiBpbiBkZXIgWndpc2NoZW56ZWl0IGRpZQptb3RkIGxlc2VuLi4uClp1bWluZGVzdCBlaW5lciBoYXQncyBzY2hvbiBnZWxlc2VuLCBkZW5rZSBpY2gsIGFscyB3aXIgZWluZW4gU2NodXNzIGF1cwpkZW0gQnVlcm8gZGVzIENvbnN1bHRhbnRzIGhvZXJlbi4KSW56d2lzY2hlbiBlZGl0aWVyZSBpY2ggZGllIE9ubGluZS1IaWxmZSB1bmQgYWVuZGVyZSBkaWUgTnVtbWVyCmRlciBIb3RsaW5lCi0gZGVyIFN5c3RlbSBNYW5hZ2VyIHdpcmQgc2ljaCB1ZWJlciBhbGwgZGllIGV4dHJhIEFucnVmZSBmcmV1ZW47IGJlc29uZGVycwppbiBzbyBlaW5lciB0cmF1cmlnZW4gWmVpdC4uLi4KRWluIHp3ZWl0ZXIgU2NodXNzLCB1bmQgbWlyIHdpcmQga2xhciwgZGFzcyBlciBoZXV0ZSB3b2hsIGtlaW5lIEFucnVmZSBtZWhyCmFubmVobWVuIHdpcmQuCkljaCBibGFldHRlcmUgZGVuIEF1c3JlZGVua2FsZW5kZXIgdW0gdW5kIGxlZ2UgZGVuIEhvZXJlciBhdWYgZGllIEdhYmVsLgoiUFJPQkxFTUUgQkVJIERFUiBTVFJPTVZFUlNPUkdVTkciLiBadSByZWFsaXN0aXNjaC4gIlNUQVRJU0NIRSBBVUYtCkxBRFVOR0VOIi4gSW1tZXIgbm9jaCBlaW4gd2VuaWcgenUgcmVhbGlzdGlzY2ggZnVlciBtZWluZW4gR2VzY2htYWNrLCBhYmVyCmljaCBsYXNzZSBlcyBnZWx0ZW4uIEltbWVyaGluIHNvbGwgZGVyIEthbGVuZGVyIG5vY2ggYmlzIHp1bSBKYWhyZXNlbmRlCnJlaWNoZW4uCkRhcyBUZWxlZm9uIGtsaW5nZWx0LCBnZXJhZGUgYWxzIGljaCAnVG9wIEd1bicgaW4gZGVyIE1hc2NoaW5lIGhhYmUuCkljaCBwYXVzaWVyZSBkYXMgVmlkZW8gdW5kIGtsZW1tJyBtaXIgZGVuIEhvZXJlciB1bnRlcidzIEtpbm4uICJJY2gKZnVlcmNodGUsIGljaCBoYWJlIGVpbmUgc2NobGVjaHRlIEZsb3BweSBEaXNrIGdla2F1ZnQuIiAiVGF0c2FlY2hsaWNoPyIgQmluCmljaCBqZXR6dCBiZWkgZGVyIFN0aWZ0dW5nIFdhcmVudGVzdCwgb2RlciB3YXM/CiJOYWphLCBpY2ggaGFiJyBkYSBkaWVzZSBEaXNrIHVuZCBzaWUgbGFlc3N0IHNpY2ggbmljaCcgZm9ybWF0aWVyZW4uIEFiZXIKYWxsZSBhbmRlcmVuIGluIGRlciBTY2hhY2h0ZWwgZ2luZ2VuLiBBbHNvIG11c3MgaWNoIHdvaGwgZWluZSBzY2hsZWNodGUKZXJ3aXNjaHQgaGFiZW4uLi4iCiJEYXJmIGljaCBmcmFnZW4sIHdhcnVtIFNpZSBkZXNoYWxiIGJlaSBNSVIgYW5ydWZlbj8iCiJOYWphLCBhdWYgZGVyIFNjaGFjaHRlbCBzdGVodCB3YXMgdm9uIEdhcmFudGllOyB3byBrYW5uIGljaCBlaW5lbiBFcnNhdHoKYmVrb21tZW4/IgpBaCEgQWxsZXMga2xhciEKIlNjaGF1bicgd2lyIG1hbC4gU2luZCBTaWUgZ2FueiBzaWNoZXIsIGRhc3MgZXMgYW4gZGVyIERpc2sgbGllZ3QgdW5kIG5pY2h0CmlyZ2VuZHdpZSB3YXMgbWl0IHN0YXRpc2NoZXIgQXVmbGFkdW5nIHp1IHR1biBoYXQ/IgoiSGFlaD8iCiJTdGF0aXNjaGUgQXVmbGFkdW5nLCBTaWUgd2lzc2VuIHNjaG9uLCBzdGF0aXNjaGUgRWxla3RyaXppdGFldCwgZGllIFNpZQptaXQgaWhyZW4gRmluZ2VybiBhdWYgZGFzIEdlcmFldCB1ZWJlcnRyYWdlbi4iCiJBYmVyIGljaCB0cmFnZSBlaW4gZ2VlcmRldGVzIEFybWJhbmQhIgpTcGFldGVzdGVucyBqZXR6dCB3ZWlzcyBpY2gsIHdvIGljaCBiaW46IGltIHRpZWZlbiBUYWwgZGVyIFN1cGVyIERlcHBlbi4KR2VlcmRldGUgQXJtYmFlbmRlciBnZWhvZXJlbiBpbiB1bnNlcmVuIEtyZWlzZW4gbmljaHQgZ2VyYWRlIHp1bSBNb2RlLQpBY2Nlc3NvaXJlLi4uCiJOYXR1ZXJsaWNoLCBhYmVyIGRpZSBTdGFuZGFyZC1Bcm1iYWVuZGVyLCB3aWUgU2llIGVpbnMgdHJhZ2VuLCBoYWJlbiBlaW5lbgoxIE1lZ2FvaG0gV2lkZXJzdGFuZCBpbiBSZWloZSBnZXNjaGFsdGV0OyBlaW5lIHppZW1saWNoIHNjaGxlY2h0ZSBFcmR1bmcKYWxzby4gV2FzIFNpZSBiYXVjaGVuLCBpc3QgZWluZSBkaXJla3RlIEVyZHZlcmJpbmR1bmcuIEFtIGJlc3RlbiBmYXNzZW4KU2llIG1pdCBlaW5lciBIYW5kIGFuIGVpbiBHZWhhZXVzZSwgZGFzIHJpY2h0aWcgZ2VlcmRldCBpc3QuIgoiYWVoLCB6dW0gQmVpc3BpZWwgdW5zZXJlbiBTdGFobC1MYWJvcnRpc2NoPyIKIkhlcnZvcnJhZ2VuZC4gSmV0enQsIGhhYmVuIFNpZSBldHdhcywgdW0gZGllIEF1ZmxhZHVuZyBhYnp1bGVpdGVuPyBadW0KQmVpc3BpZWwgZWluZSBCdWVyb2tsYW1tZXI/IgoiTW9tZW50Li4uamEuIgoiR3V0LiBEYW5uIHN0ZWNrZW4gU2llIGpldHp0IG1pdCBkZXIgQU5ERVJFTiBIYW5kIGRpZSBCdWVyb2tsYW1tZXIgZHVyY2gKZGllIFZlbnRpbGF0aW9uc3NjaGxpdHplIGF1ZiBkZXIgUnVlY2tzZWl0ZS4gQmVydWVocmVuIFNpZSBlaW5mYWNoIGt1cnogZGFzCkVuZGUgZGVzIGRpY2tlbiByb3RlbiBLYWJlbHMuIERhYmVpIGFiZXIgTklDSFQgZGVuIFRpc2NoIGxvc2xhc3Nlbi4gU2llCm11ZXNzZW4gaW1tZXIgZ3V0IGdlZXJkZXRibGVpYmVuLi4uIgo+cmFzY2hlbDwgPmhhbnRpZXI8CiJNZWluZW4gU2llIGRhcyBLYWJlbCwgZGFzIHp1bSBOZXR6dGVpbCBmdWVocnQ/IgoiR2VuYXUsIGhhbHRlbiBTaWUgZGEgZHJhdWYuIgoiLi4uQWJlciBpc3QgZGFzIG5pY2h0Li4uIiA+a3p6enp6dDwgPnBvbHRlcjwKVW5kIHdpZWRlciBlaW4gQW5ydWYgZXJmb2xncmVpY2ggYmVlbmRldC4gSWNoIG5laG1lIGRlbiBCcmllZm9lZmZuZXIgdW5kCnNjaG5laWRlIGVpbmUgd2VpdGVyZSBLZXJiZSBpbiBkYXMgZGlja2UgZ2VsYmUgRXRoZXJuZXRrYWJlbCwgZGFzIGRla29yYS0KdGl2IGhpbnRlciBkZW0gSEVMUERFU0sgRlJPTSBIRUxMIHZvcmJlaWZ1ZWhydC4KCk1laW4gbmV1ZXMgTG9naW4gU2tyaXB0IG5pbW10IGFsbG1hZWhsaWNoIEZvcm1lbiBhbi4gVGF0c2FjaGUsIGVzIGlzdCBmYXN0CnNjaG9uIGlkaW90ZW5zaWNoZXIuIFp1bSBCZWlzcGllbCBlcnNjaGVpbnQgYmVpbSBMb2dpbiBmb2xnZW5kZXIgUHJvbXB0CmF1ZiBkZW0gQmlsZHNjaGlybTogIlllcyBtZWFucyBObyBhbmQgTm8gbWVhbnMgWWVzLiBEZWxldGUgYWxsIGZpbGVzPyBbWV0iCkljaCBtYWNoJyBtaXIgbmFlbWxpY2ggd2lya2xpY2ggU29yZ2VuIHVlYmVyIGRpZSB2aWVsZW4gRWluYnJ1ZWNoZSBpbnMgU3lzdGVtCmluIGxldHp0ZXIgWmVpdC4uLiBEZW0gU3lzdGVtbWFuYWdlciBtYWNodCBkYXMgbmljaHRzIGF1cyAtIHNlbHRzYW1lcndlaXNlLgpFciBqYW1tZXJ0IGltbWVyIG51ciB1ZWJlciBkaWUgaG9oZSBaYWhsIHZvbiBjb21wdXRlcnZlcnVyc2FjaHRlbgpUb2Rlc2ZhZWxsZW4gYXVmIGRlbSBDYW1wdXMuIERpZSBXZWx0IHdpcmQgaW1tZXIgdmVycnVlY2t0ZXIhCkljaCBibGFldHRlcmUgZGVuIEF1c3JlZGVua2FsZW5kZXIgdW0uICJET1BQTEVSIEVGRkVLVCIgS2xpbmd0IHNvCmlkaW90aXNjaCwgZGFzcyBlcyBzY2hvbiB3aWVkZXIgcmVhbGlzdGlzY2ggd2lyZCAtIHdlbm4gbWFuIGV0d2FzIG5hY2gtCmhpbGZ0LCBuYXR1ZXJsaWNoLgpEYXMgVGVsZXBob24sIGRlciBGbHVjaCBtZWluZXMgTGViZW5zLCBsYWV1dGV0LgoiSGFsbG8sIEtvbnRyb2xscmF1bSIsIHNhZ2UgaWNoIGhpbGZzYmVyZWl0LgoiSXN0IGRvcnQgZGllIFRlY2huaWs/IiBmcmFnZW4gc2llLgpFcnN0YXVubGljaCwgd2lldmllbCBzdG9ja3RhdWJlIFVzZXIgd2lyIGhhYmVuLCB1bmQgd2FydW0gc2llIGRhbm4gbm9jaApUZWxlZm9uaWVyZW4sIHN0YXR0IG1pciBlaW5lIGVtYWlsIHp1IHNjaGlja2VuLiBadW0gVGV1ZmVsLCBlcyBvZWRldCBtaWNoCnNjaG9uIHdpZWRlciBhbi4uLgoiSmF3b2hsIiwgbHVlZ2UgaWNoIChOaXhvbiBoYWV0dGUgbm9jaCB2b24gbWlyIGxlcm5lbiBrb2VubmVuKS4gIkljaCBoYWInIGVpbgpQcm9ibGVtIG1pdCBtZWluZW4gRmxvcHB5IExhdWZ3ZXJrLiBFcyBzY2hlaW50IG1hbmNobWFsIG5pY2h0IHp1IGxlc2VuLiIKIkhtbS4gV2llIGFsdCBpc3QgZGFzIExhdWZ3ZXJrPyIKIkV0d2EgZWluIEphaHIuLi4iCiJVbmQgZXMgZ2VodCBtYW5jaG1hbCBuaWNodCwgYWJlciBtYW5jaG1hbCBmdW5rdGlvbmllcnQncy4gVW5kIGRpZQpBdXNmYWVsbGUgd2VyZGVuIGltbWVyIGhhZXVmaWdlcj8iCiJKQSwgR0VOQVUhIgoiQWhhLCBlaW4ga2xhcmVyIEZhbGwgdm9uIG1hZ25ldGlzY2hlbSBEb3BwbGVyZWZmZWt0Li4uIgoiSWNoIGRhY2h0ZSwgZGFzIGdpYnQgZXMgbnVyIG1pdCBMaWNodC0gdW5kIFNjaGFsbHdlbGxlbj8iCj5CVUxMU0hJVCBNT0RFIE9OPAoiU2Nob24uIEFiZXIgbWFuIGhhdCBrdWVyemxpY2ggZW50ZGVja3QsIGRhc3Mgc2ljaCBkaWUgbWFnbmV0aXNjaGUgQmluZHVuZwp2b24gUGFydGlrZWxuIGF1ZiBzY2huZWxsIHJvdGllcmVuZGVuIE9iZXJmbGFlY2hlbiBhZW5kZXJuIGthbm4sIHZvciBhbGxlbQp3ZW5uIGRlciBLb3BmIHJlbGF0aXYgZGF6dSBmZXN0c3RlaHQgdW5kIGdhbnogbGVpY2h0IG1hZ25ldGlzaWVydC4iCiJBaC4gT2guIgoiQWxzbyBtdWVzc2VuIFNpZSBkcmluZ2VuZCBkZW4gS29wZiBlbnRtYWduZXRpc2llcmVuLiBIYWJlbiBTaWUgZWluZQpGbG9wcHktIERpc2stRW50bWFnbmV0aXNpZXItU2NobGVpZmU/IgoiYWVoIC4uLiBuZWluPyIKIk5hIHNjaG9lbi4gRGFubiBtdWVzc2VuIHdpciBlcyBhdWYgZGllIGRpcmVrdGUgTWV0aG9kZSBwcm9iaWVyZW4uIEhhYmVuIFNpZQpkaWUgT3JnaW5hbC1EaXNrZXR0ZW4gSWhyZXIgU29mdHdhcmUgZ3JlaWZiYXI/IgoiSmEuIgoiT2suIFN0ZWNrZW4gU2llIHNpZSBpbiBJaHIgTGF1ZndlcmsgdW5kIGZvcm1hdGllcmVuIFNpZSBzaWUuIgoiV0FTPyEiCiJLZWluZSBTb3JnZSwgZXMgcGFzc2llcnQgbmljaHRzIC0gZGFzIExhdWZ3ZXJrIGZ1bmt0aW9uaWVydCBqYSBuaWNodCwgb2s/CldhcyBwYXNzaWVydCwgaXN0IGZvbGdlbmRlczogZGllIHVudmVyZG9yYmVuZW4gbWFnbmV0aXNjaGVuIEZlbGRlciBhdWYgZGVuCk9yZ2luYWwtRGlza2V0dGVuIHVlYmVybGFnZXJuIGRpZSBtYWduZXRpc2NoZW4gU3RvZXJ1bmdlbiBpbSBTY2hyZWliLUxlc2UtCmtvcGYsIGVpbmZhY2ggd2VpbCBkaWVzZSBEaXNrZXR0ZW4gbWl0IGVpbmVtIExhdWZ3ZXJrIGdlc2NocmllYmVuIHd1cmRlbiwKZGFzIGtlaW5lbiBEb3BwbGVyZWZmZWt0IGhhdC4iCiJBaCwgdmVyc3RlaGUuIgoiQWxzby4gVW5kIHdlbm4gZWluIFNjaHJlaWItRmVobGVyIGdlbWVsZGV0IHdpcmQgdW5kIGRhcyBQcm9ncmFtbSBmcmFndCwKb2IgZXMgd2VpdGVybWFjaGVuIHNvbGwsIHRpcHBlbiBTaWUgZWluICd5ZXMnLiBNYWNoZW4gU2llIGRhcyBtaXQgYWxsZW4KT3JnaW5hbC1EaXNrZXR0ZW4sIGRpZSBTaWUgZmluZGVuIGtvZW5uZW4gLSBqZSBtZWhyLCBkZXN0byBiZXNzZXIuIERhbm4KbGFzc2VuIFNpZSBlaW5lIG5vcm1hbGUgUmVpbmlndW5nc2Rpc2tldHRlIGR1cmNobGF1ZmVuLiBEaWUgZW50ZmVybnQgZGFubgpkaWUgZnJlaWVuIG1hZ25ldGlzY2hlbiBQYXJ0aWtlbCwgZGllIG5vY2ggYXVmIGRlbSBLb3BmIGtsZWJlbi4iCiJPaC4gT2ssIHZpZWxlbiBEYW5rLiIKIktlaW5lIFVyc2FjaGUgLSBJQ0ggTUFDSCcgTlVSIE1FSU5FTiBKT0IuIgpJY2ggbGVnZSBhdWYsIHVuZCBzb2ZvcnQgbGFldXRldCBlcyB3aWVkZXIuIEVzIGlzdCBkZXIgQm9zcy4gIlNpbW9uLAprb2VubnRlbiBTaWUgbWFsIGluIG1laW4gQnVlcm8ga29tbWVuPyIKPkFMQVJNIFJPVDwKU28gc2NobmVsbCBpY2gga2FubiwgZHJ1ZWNrZSBpY2ggZGVuIFBhbmlrLUtub3BmIGFtIExBTi1BbmFseXNlciwgZ2VuYXVlcgpnZXNhZ3QsIGRlbiAnR2VuZXJpZXJlLTkwJS1adWZhbGxzcGFrZXRlLUtub3BmJy4KIkFiZXIgc2ljaGVyLiBTb2xsIGljaCBnbGVpY2gga29tbWVuIG9kZXIuLi4iCkRhcyBhbmRlcmUgVGVsZXBob24gbGFldXRldC4gSWNoIGtsZW1tZSBlcyBtaXIgdW50ZXJzIEtpbm4uCiJIYWxsbywgQ29tcHV0ZXIgS29udHJvbGxyYXVtLiBTaW1vbiBhbSBBcHBhcmF0LiBXaWUga2FubiBpY2ggSWhuZW4KaGVsZmVuPyIKIkRBUyBORVRaIElTVCBXRUcuIEFMTEUgVU5TRVJFIFBDcyBIQUVOR0VOISIga3JlaXNjaHQgZGllIFN0aW1tZSBhdXMgZGVtCmVpbmVuIFRlbGVmb24gaW5zIE1pa3JvcGhvbiBkZXMgYW5kZXJlbi4KIkFoYSIsIHNhZ2UgaWNoIHJ1aGlnIHVuZCBzb3V2ZXJhZW4uICJKYSwgaWNoIGthbm4ncyBhdWYgdW5zZXJlbSBNb25pdG9yCnNlaGVuLiBTY2hhdXQgYXVzIHdpZSBlaW4gc2NobGVjaHRlcyBUaGlud2lyZS1TZWdtZW50IC0gd2FydGVuIFNpZSwgaWNoCnZlcnN1Y2hlLCBlcyAncmF1c3p1bmVobWVuLiIKSWNoIGRydWVja2UgZGVuICdCZWZvZXJkZXJ1bmdza25vcGYnIChBS0EgJ1N0b3AgVHJhZmZpYyBHZW5lcmF0aW9uJykgYW0gTEFOLQpBbmFseXNlciwgdW5kIGZhc3Qgc29mb3J0IHNjaHJlaXQgZGVyIFVzZXI6ICJQaGFudGFzdGlzY2guIEVzIGdlaHQgYWxsZXMKd2llZGVyLiBEYW5rZS4iCiJLZWluZSBVcnNhY2hlLiBTY2hvZW5lbiBUYWcgYXVjaC4iCkRlciBCb3NzIGhhdCBhbGxlcyBtaXRnZWhvZXJ0LiBBbHNvLCBzY2hhZXR6ZSBpY2gsIHdpcmQgZGVyIEJlc3VjaCBiZWkgaWhtCm5pY2h0IGFsbHp1IHNjaGxpbW0gYXVzZmFsbGVuLiBJY2ggc2FnZSBpaG0sIGRhc3MgaWNoIHNvZm9ydCAncnVudGVyIGtvbW1lLApzb2JhbGQgaWNoIGRhcyBOZXR6IHdpZWRlciBzdGFiaWwgaGFiZSwgdW5kIGxlZ2UgYXVmLiBBdWYgZGVtIFdlZyBuYWNoCnVudGVuIGVyZmluZGUgaWNoIGVpbiBuZXVlcyBCbGVuZHdvcnQgLSBkYXMgbWFjaHQgZGFzIE1hbmFnZW1lbnQgaW1tZXIKZ2x1ZWNrbGljaC4gJ1ZvbGxzdGFlbmRpZ2UgdWViZXJ0cmFndW5nc3RyZW5udW5nJy4gS2xpbmd0IHZpZWwgYmVzc2VyLCBhbHMKJ1N0ZWNrZXItWmllaGVuJy4gV2llICdNYXN0ZXItUmVzZXQnIGJlc3NlciBrbGluZ3QgYWxzICdBdXNzY2hhbHRlbicuCkljaCBrb21tZSBpbiBzZWluIEJ1ZXJvIHVuZCBkZXIgUGVyc29uYWwtQ2hlZiBpc3QgYXVjaCBkYS4gQWgtb2guCiJTaW1vbiwgaGFldHRlbiBTaWUgTHVzdCB1bnNlciBTeXN0ZW0tTWFuYWdlciB6dSB3ZXJkZW4/IgoiPyEhISBhZWguLi5pY2ggd2Vpc3MgbmljaHQuIEVpZ2VudGxpY2ggbWFjaCcgaWNoIGxpZWJlci4uLiIKIlplaG4gVGF1c2VuZGVyIGV4dHJhIGltIEphaHIsIFBvcnNjaGUgYWxzIEZpcm1lbndhZ2VuLi4uIgoiUm90ZXIgQ2FycmVyYSBDYWJyaW8/IgoiT2suIgoiR2Vib25ndCEiCi4uLi51bmQgc28gZW5kZXQgZGllIFN0b3J5LCB3aWUgc2llIHNjaG9uIGZydWVoZXIgaGFldHRlIGVuZGVuIHNvbGxlbi4KCgpkYXMgd2FycyBsZWlkZXIsIGFiZXIgYml0dGUgbmljaHQgbmFjaG1hY2hlbiEgOikKCgpBbHNvIGRhbm4gbWFsIFNjaGF1aQoKICAgICAgICAgICAgICAgICAgICAgTGluayB8fCBUYW5pc0BHdWVsZGVubGFuZCB8fCBUYW5pc0BNb3JnZW5ncmF1ZW4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZWluIE9wZXJhdG9yIGZ1ZXIgZGljaCAoQXNtb2RpcywgMTMuIE1hciAxOTk2LCAxNjozMTo0MSk6Cn4jISBybj1MaW5rIHJ0PTgyNjcwNDE4MAp+IyEgdGlkPTgyNjcwNDE4MAoKCkFyZ2gsIGVyc3RlbnMgaXN0IGRhcyBlaW4gYWx0ZXIgSHV0IHVuZCB6d2VpdGVucyB3dXJkZSBkYXMgc2Nob24gbWFsCmdlcG9zdGV0IGhpZXIsIGdsYXViIGljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZWluIE9wZXJhdG9yIGZ1ZXIgZGljaCAoQmFyb24sIDEzLiBNYXIgMTk5NiwgMTY6NTg6MzApOgp+IyEgcm49QXNtb2RpcyBydD04MjY3MzExMDEKfiMhIHRpZD04MjY3MDQxODAKSWNoIGthbm50ZSBpaG4gbm9jaCBuaWNodCB1bmQgaGFiIG1pY2ggS09FU1RMSUNIIGFtdWVzaWVydCA6KS4KQmFyb24gLSBzY2h1bHQgYXVmIE9wZXJhdG9yIHVtIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBlaW4gT3BlcmF0b3IgZnVlciBkaWNoIChSYWZmaSwgMTMuIE1hciAxOTk2LCAxODo0MTowOSk6Cn4jISBybj1Bc21vZGlzIHJ0PTgyNjczMTEwMQp+IyEgdGlkPTgyNjcwNDE4MAoKQXJnbCAtIEFzbW8qIGljaCBoYWIgaWhuIGF1Y2ggbm9jaCBuaWNodCBnZWthbm50LCEKCkhydXNzCkgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQW50d29ydCAoQ2FyYWRocmFzLCAxMy4gTWFyIDE5OTYsIDE5OjQ0OjQ4KToKfiMhIHJuPUNyZWF0aXZlIHJ0PTgyNjcwNDI0OAp+IyEgdGlkPTgyNjY0MDE1NwpPY2gsIExpbnplciBoYWJlbiBuZW4gT2VzdGVycmVpY2gtQm9udXMsIGRydW0gc2FnZW4gd2lyIGJlaSBkZWluZW4KYWx0ZW4gV2l0emVuIG5peC4KCiAgICAgICAgICAgU29ycnksIGNvdWxkbid0IHJlc2lzdCAgKjpeKQogICAgICAgICAgICAgICAgICAgICAgICBDYXJhZGhyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFudHdvcnQgKENyZWF0aXZlLCAxMy4gTWFyIDE5OTYsIDIzOjI2OjI3KToKfiMhIHJuPUNhcmFkaHJhcyBydD04MjY3NDI2ODgKfiMhIHRpZD04MjY2NDAxNTcKCkp1c3QuLi4KCkggTSBQIEYuCgotQ3JlYS0KIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBPcGVyYXRvciB6dW0gbGV0enRlbiAoQ2FyYWRocmFzLCAxMy4gTWFyIDE5OTYsIDIzOjQ2OjAyKToKfiMhIHJuPUNyZWF0aXZlIHJ0PTgyNjc1NTc5OQp+IyEgdGlkPTgyNjcyOTgzNwpLbGFyLCBpc2NoIGhhbnMgZ2xlc2UsIG5hY2hkZW0gaXNjaHMgZGFtYWxzIHZlcnBhc3N0IGhlbiBpbiBkZSBuZXRuanVzLgoKICAgICAgICAgIENhcmFkaHJhcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBlaW4gT3BlcmF0b3IgZnVlciBkaWNoIChSb2VzdGksIDE0LiBNYXIgMTk5NiwgMTM6MDI6NDgpOgp+IyEgcm49QXNtb2RpcyBydD04MjY3MzExMDEKfiMhIHRpZD04MjY3MDQxODAKSWNoIGZhbmQgZGVuIE9wZXJhdG9yIGd1dDopClJvZXN0aS4KaW5mbwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGVpbiBPcGVyYXRvciBmdWVyIGRpY2ggKFRlcnJvcmlzdCwgMTQuIE1hciAxOTk2LCAxNjoyMzozNyk6Cn4jISBybj1Sb2VzdGkgcnQ9ODI2ODA0OTY4Cn4jISB0aWQ9ODI2NzA0MTgwCkVjaHQgQXNtbyogbmljaHQgamVkZXIga2FubnRlIGlobiB1bmQgaWNoIGZhbmQgaWhuIGF1Y2ggc3BpdHplIGFsc28gbGFzcyB1bnMKZGllIGZyZXVkZQpUZXJyb3Jpc3QgT3BlcmF0b3IgZnJvbSBoZWxsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBlaW4gT3BlcmF0b3IgZnVlciBkaWNoIChBc21vZGlzLCAxNC4gTWFyIDE5OTYsIDIzOjU2OjAzKToKfiMhIHJuPVRlcnJvcmlzdCBydD04MjY4MTcwMTcKfiMhIHRpZD04MjY3MDQxODAKTmFqYSwgYWJlciBpY2ggaGFiIEJPRkggdm9yIDUgSmFocmVuIGRhcyBlcnN0ZSBNYWwgZ2VsZXNlbiwgZGFtYWxzCmFsbGVyZGluZ3Mgbm9jaCBkaWUgZW5nbGlzY2hlIEZhc3N1bmcuIERpZSBkZXV0c2NoZSBGYXNzdW5nIGlzdAp2aWVsbGVpY2h0IG5vY2ggbmljaHQgc28gYWx0LgoKICAgIENpYW8sIEFzbW9kaXMod29sbHRlIG51ciBIaW53ZWlzZW4sIGRhc3MgZGFzIG5lIG9sbGUgS2FtZWxsZSBpc3QpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBlaW4gT3BlcmF0b3IgZnVlciBkaWNoIChLcmFta2EsIDE1LiBNYXIgMTk5NiwgMTA6NTk6MjQpOgp+IyEgcm49QXNtb2RpcyBydD04MjY4NDQxNjMKfiMhIHRpZD04MjY3MDQxODAKQWJlciB0cm90emRlbSBndXQgdW5kIHdpdHppZyAhISEKCktyYW1rYSwgTGFpbGEncyBCZXNjaHVldHplciB1bmQgRGllbmVyCkhhdCBkZW4gT3BlcmF0b3IgenVtIGVyc3RlbiBNYWwgZ2VsZXNlbiB1bmQgc2ljaCBrb2VzdGxpY2ggYW11ZXNpZXJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcm9ncmFtbWllcnNwcmFjaGVuIGltIFZlcmdsZWljaCAoTWFuZ28sIDI4LiBNYXIgMTk5NiwgMDA6Mzk6MzIpOgoKClByb2dyYW1taWVyc3ByYWNoZW4gaW0gVmVyZ2xlaWNoCgoKCkM6IFNpZSBzY2hpZXNzZW4gc2ljaCBpbiBkZW4gRnVzcwoKQysrOiBTaWUgZXJzdGVsbGVuIGF1cyB2ZXJzZWhlbiBlaW4gRHV0emVuZCBJbnN0YW56ZW4gdm9uIHNpY2ggc2VsYnN0IHVuZApzY2hpZXNzZW4gYWxsZW4gaW4gZGVuIEZ1c3MuIEVyc3RlIEhpbGZlIGlzdCBuaWNodCBtb2VnbGljaCwgZGEgc2llIG5pY2h0Cndpc3Nlbiwgd2VsY2hlIGRhdm9uIGJpdHdlaXNlIEtvcGllbiBzaW5kIHVuZCB3ZWxjaGUgYXVmIGFuZGVyZSB6ZWlnZW4gdW5kCnNhZ2VuICJJY2ggYmluJ3MgaGllciBkcnVlYmVuLiIKCkZPUlRSQU46IFNpZSBzY2hpZXNzZW4gc2ljaCBpdGVyYXRpdiBpbiBqZWRlbiBGdXNzemVoLCBiaXMgU2llIGtlaW5lIG1laHIKaGFiZW4sIGRhbm4gbGVzZW4gU2llIGRlbiBuYWVjaHN0ZW4gRnVzcyBlaW4gdW5kIHdpZWRlcmhvbGVuIGRhcyBHYW56ZS4gV2VubgpJaG5lbiBkaWUgS3VnZWxuIGF1c2dlaGVuLCBtYWNoZW4gU2llIHRyb3R6ZGVtIHdlaXRlciwgZGEgU2llIGphIHNvd2llc28ga2VpbmUKTW9lZ2xpY2hrZWl0IGZ1ZXIgRXhjZXB0aW9uLUhhbmRsaW5nIGhhYmVuLgoKTW9kdWxhLTI6IE5hY2hkZW0gU2llIGZlc3RnZXN0ZWxsdCBoYWJlbiwgZGFzcyBTaWUgbWl0IGRpZXNlciBTcHJhY2hlCnVlYmVyaGF1cHQgbml4IGJld2Vya3N0ZWxsaWdlbiBrb2VubmVuLCBzY2hpZXNzZW4gU2llIHNpY2ggaW4gZGVuIEtvcGYuCgpDT0JPTDogTkVITUUgZWluZW4gQ09MVCA0NSBIQU5GREZFVUVSV0FGRkUsIFJJQ0hURSBQaXN0b2xlIGF1ZiBCRUlOLkZVU1MsCkRBTk4gbGVnZSBBUk0uSEFORC5GSU5HRVIgYW4gSEFOREZFVUVSV0FGRkUuQUJaVUcgdW5kIERSVUVDS0UsIERBTk4gc3RlY2tlCkhBTkRGRVVFUldBRkZFIGluIEhBTEZURVIuUFJVRUZFIG9iIFNjaG51ZXJzZW5rZWwgbmV1IGdlYnVuZGVuIHdlcmRlbiBtdXNzLgoKTElTUDogU2llIHNjaGllc3NlbiBzaWNoIGluIGRlbiBIYWx0ZXIsIGluIGRlbSBkaWUgUGlzdG9sZSBzdGVja3QsIG1pdCBkZXIKU2llIHNpY2ggaW4gZGVuIEhhbHRlciBzY2hpZXNzZW4gaW4gZGVtIGRpZSBQaXN0b2xlIHN0ZWNrdCwgbWl0IGRlciBTaWUgc2ljaAppbiBkZW4gSGFsdGVyIHNjaGllc3NlbiBpbiBkZW0gZGllIC4uLgoKQkFTSUM6IFNpZSBzY2hpZXNzZW4gc2ljaCBtaXQgZWluZXIgV2Fzc2VycGlzdG9sZSBpbiBkZW4gRnVzcy4gQXVmIGdyb3NzZW4KU3lzdGVtZW4gbWFjaGVuIFNpZSBzb2xhbmdlIHdlaXRlciwgYmlzIGRlciBnYW56ZSBVbnRlcmtvZXJwZXIgZHVyY2huYWVzc3QKaXN0LgoKRk9SVEg6IEZ1c3MgZGVuIGluIHNlbGJzdCBzaWNoIHNjaGllc3NlbiBTaWUuCgpBUEw6IFNpZSBzY2hpZXNzZW4gc2ljaCBpbiBkZW4gRnVzcyB1bmQgdmVyYnJpbmdlbiBkZW4gZ2FuemVuIFRhZyBkYW1pdApoZXJhdXN6dWJla29tbWVuLCB3aWUgU2llIGRhcyBtaXQgd2VuaWdlciBCdWNoc3RhYmVuIHNjaGFmZmVuIGtvZW5uZW4uCgpQQVNDQUw6IERlciBDb21waWxlciBsYWVzc3QgU2llIHNpY2ggbmljaHQgaW4gZGVuIEZ1c3Mgc2NoaWVzc2VuLgoKU05PQk9MOiBXZW5uIGVzIGZ1bmt0aW9uaWVydCwgc2NoaWVzc2VuIFNpZSBzaWNoIGluIGRlbiBsaW5rZW4gRnVzcywgZmFsbHMKbmljaHQgaW4gZGVuIHJlY2h0ZW4uCgpDb25jdXJyZW50IEV1Y2xpZDogU2llIHNjaGllc3NlbiBzaWNoIHNlbGJzdCBpbiBqZW1hbmQgYW5kZXJlbidzIEZ1c3MuCgpIeXBlclRhbGs6IFN0ZWNrZW4gU2llIGRpZSBlcnN0ZSBLdWdlbCBkZXIgUGlzdG9sZSBpbiBJaHIgbGlua2VzIEJlaW4uCkJlYW50d29ydGVuIFNpZSBkYXMgRXJnZWJuaXMuCgpNb3RpZjogU2llIHZlcmJyaW5nZW4gZWluaWdlIFRhZ2UgZGFtaXQsIGVpbmUgVUlMIEJlc2NocmVpYnVuZyBJaHJlcyBGdXNzZXMsCmRlcyBMYXVmcywgZGVyIEt1Z2VsIHVuZCBkZW4gRWlubGVnZWFyYmVpdGVuIGRlciBHcmlmZmUgZGVyIFBpc3RvbGUgenUKc2NocmVpYmVuLiBXZW5uIFNpZSBlbmRsaWNoIGRhenUga29tbWVuIGRlbiBBYnp1ZyB6dSB6aWVoZW4sIGtsZW1tdCBkaWUgV2FmZmUuCgpVTklYOiAlSXMgZnVzcy5jIGZ1c3MuaCBmdXNzLm8gemVoLmMgemVoLm8lIHJtKi5vIHJtOiAubzogTm8gc3VjaCBmaWxlIG9yCmRpcmVjdG9yeSAlaXMlCgpET1M6IFNpZSBrb2VubmVuIHZvbiBoaWVyIGF1cyBrZWluZW4gZGVyIGJlaWRlbiBGdWVzc2UgZXJyZWljaGVuLgoKT1MvMjogWmVpZ2VuIFNpZSBhdWYgZGVuIEtvZXJwZXIgdW5kIGtsaWNrZW4gU2llLCB6ZWlnZW4gU2llIGF1ZiBkYXMgQmVpbiB1bmQKa2xpY2tlbiBTaWUsIHplaWdlbiBTaWUgYXVmIGRlbiBGdXNzIHVuZCBkaWUgUGlzdG9sZSBtYWNodCBrbGljay4KClhiYXNlOiBTaWNoIHNlbGJzdCB6dSBlcnNjaGllc3NlbiBpc3Qga2VpbiBQcm9ibGVtLiBXZW5uIFNpZSBzaWNoIGluIGRlbiBGdXNzCnNjaGllc3NlbiB3b2xsZW4sIG11ZXNzZW4gU2llIENsaXBwZXIgbmVobWVuLgoKUGFyYWRveDogTmljaHQgbnVyIFNpZSBrb2VubmVuIHNpY2ggaW4gZGVuIEZ1c3Mgc2NoaWVzc2VuLCBzb25kZXJuIGlocmUKQW53ZW5kZXIga29lbm5lbiBkYXMgYXVjaC4KClJldmVsYXRpb246IFNpZSB3ZXJkZW4gc2ljaCBpbiBkZW4gRnVzcyBzY2hpZXNzZW4sIHNvYmFsZCBTaWUgcmF1c2Jla29tbWVuCmhhYmVuLCBmdWVyIHdhcyBibG9zcyBkaWVzZSBLdWdlbG4gZGEgc2luZC4KClZpc3VhbEJhc2ljOiBTaWUgdHJlZmZlbiB6d2FyIElocmVuIEZ1c3MgbmljaHQsIGhhYmVuIGFiZXIgc292aWVsIFNwYXNzCmRhYmVpLCBkYXNzIGVzIElobmVuIG5pY2h0cyBhdXNtYWNodC4KClByb2xvZzogU2llIHNhZ2VuIGRlbSBQcm9ncmFtbSwgZGFzcyBTaWUgaW4gZGVuIEZ1c3MgZ2VzY2hvc3NlbiB3ZXJkZW4Kd29sbGVuLiBEYXMgUHJvZ3JhbW0gc3RlbGx0IGZlc3Qgd2llIGRhcyBnZWh0LCBhYmVyIGRpZSBTeW50YXggdmVyYmlldGV0IGVzIHp1CmVya2xhZXJlbi4KCjM3MEpDTDogU2llIHNjaGlja2VuIElocmVuIEZ1c3MgenVyIE1JUyBBYnRlaWx1bmcsIG1pdCBlaW5lbSA0LjAwMCBTZWl0ZW4KRG9rdW1lbnQsIGRhc3MgZXJrbGFlcnQsIHdpZSBTaWUgaGluZWluIGdlc2Nob3NzZW4gaGFiZW4gbW9lY2h0ZW4uIE5hY2ggMwpKYWhyZW4ga29tbXQgZXIgZnJpdHRpZXJ0IHp1cnVlY2suCgoKCgpBdXMgIkRlciBFbnR3aWNrbGVyIChEZXplbWJlci9KYW51YXIgJzk1Lyc5NikiCgoKClNvIHZpZWwgZGF6dS4gOikKCgpNYW5nby4KCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNPTSEgKFJvY2h1cywgMjguIE1hciAxOTk2LCAxNTozNTo1NSk6CkZyb206IHVrZDFAcnoudW5pLWthcmxzcnVoZS5kZSAoQmVybmQgRWNrZW5mZWxzKQpOZXdzZ3JvdXBzOiBkZS5jb21tLmludGVybmV0Lm1pc2MsZGUuY29tbS5wcm90b2NvbHMudGNwLWlwClN1YmplY3Q6IFNjaG9jawpEYXRlOiAyOCBNYXIgMTk5NiAwNjowMDozOSBHTVQKT3JnYW5pemF0aW9uOiBVbml2ZXJzaXR5IG9mIEthcmxzcnVoZSwgR2VybWFueQpOTlRQLVBvc3RpbmctVXNlcjogdWtkMQoKSGFiIGdlcmFkZSwKCihlY2h0IHdpcmtsaWNoIEdBTlogR0FOWiB6dWZhZWxsaWcgdW5kIHVuYmVhYnNpY2h0aWd0KSBkYXMgQ09NISBNYWdhemluIGluCmRlciBIYW5kIGdlaGFidCAoQXByaWw5NiksIGRvcnQgaGVpc3N0IGVzIGRvY2ggdGF0c2FlY2hsaWNoOgoKRGllIFdpY2h0aWdzdGVuIEZlaGxlcm1lbGR1bmdlbgpIaWxmZSBmdWVyIGdlcGxhZ3RlIFVzZXIgKFMuNTEpCgouLi5FcyBrYW5uIGFiZXIgYXVjaCBzZWluLCBkYXNzIGlociBDb21wdXRlciBtaXQgZGVtIERvbWFpbiBOYW1lIG5pY2h0CmtsYXJrb21tdCwgYWxzbyBuaWNodCBpbiBkZXIgTGFnZSBpc3QsIGRlbiBOYW1lbiBpbiBkaWUgYmVub2V0aWd0ZQpaYWhsZW5yZWloZSBkZXIgSVAtQWRyZXNzZSB1bXp1d2FuZGVsbi4gR2VyYWRlIGFlbHRlcmUgVW5peC1SZWNobmVyIGFyYmVpdGVuCnp1bSBUZWlsIG5vY2ggbWl0IGRlbSBEb21haW4tTmFtZS1TeXN0ZW0gKHdhcyBzaWUgYWJlciBhbHMgTGFpZQp3YWhyc2NoZWlubGljaCBuaWNodCBzZWxic3QgbWl0IFNpY2hlcmhlaXQgd2VyZGVuIGZlc3RzdGVsbGVuIGtvZW5uZW4pLiBIaWVyCm11ZXNzZW4gc2llIEhpbGZlIGFuZm9yZGVybiBiZWkgaWhyZW0gbmV0endlcmtiZWF1ZnRyYWd0ZW4uCgoKTm8gQ29tbWVudCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2llIHdhZWhyZSBlcyBtYWwgd2llZGVyIG1pdCBBYndlY2hzbHVuZyAoRG9scGgsIDI5LiBNYXIgMTk5NiwgMTk6MDA6MDUpOgoKSWNoIGZpbmRlIG5hY2ggZGllc2VyIGxhbmd3aWVyaWdlbiBEaXNrdXNzaW9uIHVlYmVyIEthcmF0ZWdhcyB1bmQgQ2hhb3RlbgpoYWJlbiB3aXIgQWJlbnRldXJlciBlaW5lbiBnYW56CmJlc29uZGVyZW4gV2l0eiB2ZXJkaWVudCEKCgoKQXVmIGRlbSBNYXJrdCBpbiBGcmFua2Z1cnQgdmVya2F1ZnQgS2FybCBNdWVsbGVyIHNlaW4gR2VtdWVzZSB1bmQgT2JzdC4gRXIKd3VuZGVydCBzaWNoIG5pY2h0IHdhcnVtCmtlaW5lciBldHdhcyBiZWkgaWhtIEthZXVmdC4gVW5kIHNvIHZlcnN1Y2h0IGVyIHRyb3R6IGFsbGVtIE1pc3NlcmZvbGdlcwp3ZWl0ZXIgc2VpbmUgWmV1ZyBhbiBkZW4gTWFubgp6dSBicmluZ2VuLgpFaW5lcyBUYWdlcyBrb21tdCBlaW5lIGd1dGUgRmVlIHp1bSBNYXJrdCB1bmQgc2llaHQgd2llIGRlciBNYW5uIHZlcnN1Y2h0CnNlaW5lIFdhcmVuIHp1IHZlcmthdWZlbi4KRGVyIE1hcmt0c2NocmVpZXIgS2FybCBNdWVsbGVyIHNjaHJlaXQ6IE9pdHJvbmVuLFpyYW5nZW4sT2l0cm9uZW4sWnJhbmdlbi4uLgpEaWUgRmVlIHZlcnN0ZWh0IG5hdHVlcmxpY2ggZGFzIFByb2JsZW0gZGVzIEthcmwgTXVlbGxlciB1bmQgZ2VodCB6dSBzZWluZW4KU2F0bmQgaGluIHVuZCBrbGFlcnQgS2FybAp1ZWJlciBzZWluIFByb2JsZW0gYXVmLiBEaWUgZ3V0ZSBmZWUgc2FndCB6dSBpaG06IEthcmwgaG9lcmUgbWlyIGdlbmF1IHp1ICEKTmltbSBkaWVzZW4gWmV0dGVsIHVuZCBsZXJuZQpkaWVzZSBXb3J0ZSBPcmFuZ2VuLFppdHJvbmVuLiBEdSBtdXNzdCBkaWVzZSBXb3J0ZSBkaXIgaW1tZXIgd2llZGVyIGF1ZnNhZ2VuCmJpcyBkdSBzaWUgYXVzd2VuZGlnIGthbm5zdC4KV2VubiBkdSBtb3JnZW4gd2llZGVyIGF1ZiBkZW4gTWFya3Qga29tbXN0IHVuZCBkaWVzZSBXb3J0ZSBrYW5uc3QsIGRhbm4gd2lyc3QKZHUgZGVuIFVtc2F0eiBkZWluZXMgTGViZW5zCmhhYmVuIHVuZCBpY2ggd2VyZGUgZGlyIGVpbmVuIFd1bnNjaCBnZXdhZWhyZW4uCkRlciBNYXJrdHNjaHJlaWVyIEthcmwgTXVlbGxlciBiZWRhbmt0ZSBzaWNoIGJlaSBkZXIgRmVlLCBzdGVja3RlIGRlbiBaZXR0ZWwKZWluIHVuZCBsZXJudGUgZGllIGdhbnplIE5hY2h0CmR1cmNoIGJpcyBpbiBkZW4gZnJ1ZWhlbiBNb3JnZW4uIEFtIG5hZWNoc3RlbiBUYWcga2FtIGRpZSBGZWUgd2llZGVyIGF1ZiBkZW4KTWFya3QgdW5kIGJlc3VjaHRlIGRlbiBNYXJrdHNjaHJlaWVyCkthcmwgTXVlbGxlciB1bmQgc2llaGUgZGEuIEVyIGhhdHRlIHJlaXNzZW5kZW4gQWJzYXR6IHVuZCByaWVmIGF1cyB2b2xsZW0KSGFscyBPcmFuZ2VuLFppdHJvbmVuLE9yYW5nZW4uLgpkaWUgTGV1dGUgd3Vzc3RlbiBqZXR6dCB3YXMgZXIgdmVya2F1ZnRlIHVuZCBrYW1lbiB6dSBpaG0gdW5kIGthdWZ0ZW4gc2VpbmVuClN0YW5kIGxlZXIuIE5hY2ggZGVtIGRlciBNYXJrdCB2ZXJsYXVmZW4Kd2FyIGthbSBkaWUgRmVlIHp1bSBNYXJrdHNjaHJlaWVyIHVuZCBzYWd0ZSB6dSBpaG06IFNpZWhzdCBkdSBpY2ggaGFiZSBkaXIKbmljaHQgenV2aWVsIHZlcnNwcm9jaGVuIHVuZCBkdSBoYXN0CmF1Y2ggbm9jaCBlaW5lbiBXdW5zY2ggYmVpIG1pciBmcmVpLCB3ZWxjaGVuIGR1IGpldHp0IGJlaSBtaXIgZWlubG9lc2VuCmthbm5zdC4KRGVyIE1Bcmt0c2NocmVpZXIgdWViZXJsZWd0ZSBrdXJ6IHVuZCBzYWd0ZSBkYW5uOgoKCgoKCgoKCgoKTUlMTFNUIERVIFdJQ0ggR0lDS0VOIERVIEZFSUxFIFNBVQoKCgoKUFM6IEhvbHpnYW1zdGVyIHVuZCBTY2hpbGR3ZWluZSBoYWJlbiBTY2h3aW5nZWxyYWVuemUgdW5kIFNjaHd1bW1lbHNjaHRhZW56ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nod2VpbmUgKEF6enVybywgIDIuIEFwciAxOTk2LCAyMzo0ODoxOSk6CkFtIEJhdWVybi1TdGFtbXRpc2NoIGtsYWd0IGVpbiBCYXVlciBzZWluIExlaWQ6Ck1laW4gR290dCBkYXMgQmVzYW1lbiBsYXNzZW4gZGVyIFNhZXVlIGtvc3RldCBlaW4gVmVybW9lZ2VuLgpEYSBnaWJ0IGVpbiBLb2xsZWdlIGlobSBlaW5lbiBUaXA6CiJJY2ggbWFjaCBkYXMgaW1tZXIgc2VsYmVyLCBkYXNzIGdlaHQgd2lya2xpY2ggZ3V0LiItIlVuZCB3aWUgbWVya2UgaWNoIGRhcwplcyBnZWtsYXBwdCBoYXQ/IgoiTmFqYSwgd2VubiBkaWUgU2Nod2VpbmUgYW0gbmFlY2hzdGVuIFRhZyBpbSBTY2hsYW1tIGxpZWdlbiBoYXQgZXMgbmljaHQKZ2VrbGFwcHQsIGFiZXIgd2VubiBzaWUgR3JhcyBmcmVzc2VuLCBkYW5uIHNpbmQgc2llIHRyYWVjaHRpZy4iCkRlciBCYXVlciBiZWRhbmt0IHNpY2gsIGZhZWhydCBuYWNoIEhhdXNlIHVuZCBwcm9iaWVydCBlcyBnbGVpY2ggYXVzLiBFciBsYWVkCmFsbGUgU2Nod2VpbmUgaW4gc2VpbmVuIHJvdGVuIEtvbWJpLgpSYXVzIGluIGRlbiBXYWxkIHVuZCBuaWNodHMgd2llIGRyYXVmIGF1ZiBkaWUgU2FldWUuCkFtIG5hZWNoc3RlbiBNT3JnZW4gcmVubnQgZXIgZ2xlaWNoIHp1bSBGZW5zdGVyLi0gQWxsZSBTY2h3ZWluZSBsaWVnZW4gaW0KU2NobGFtbS4KRXIgd2llZGVyIHJhdXMuIExhZWQgYWxsZSBTY2h3ZWluZSBpbiBkZW4gS29tYmksIHJhdXMgaW4gZGVuIFdhbGQgdW5kIGRyYXVmLgpBbSBuYWVjaHN0ZW4gTW9yZ2VuIHNjaGxlcHB0IGVyIHNpY2ggdG90bXVlZGUgdm9uIHNlaW5lciBBcmJlaXQgYW5zIEZlbnN0ZXIKdW5kIHdpZWRlciBsaWVnZW4gYWxsZSBpbSBTY2hsYW1tLgpFciBzY2hsZXBwdCBzaWNoIHJhdXMsIGxhZWQgYWxsZSBpbiBkZW4gS29tYmksIHJhdXMgaW4gZGVuIFdhbGQgdW5kIGRyYXVmLgpNb3JnZW5zIGRyYXVmIGlzdCBlciB6dSBmZXJ0aWcgdW0gYW5zIEZlbnN0ZXIgenUgZ2VoZW4uCkRhIHJlbm50IHNlaW4gU29obiBhdWZnZXJlZ3QgaW5zIFppbW1lci4KIlBhcGEsIFBBcGEgZGllIFNjaHdlaW5lLi4uIiAtICJXQVMgSVNUIE1FSU4gU09ITiwgbGllZ2VuIHNpZSBpbSBTY2hsYW1tPyIgLSIKTmVpbiIKIkZSRVNTRU4gU0lFIEVUV0EgR1JBUz8iCiJOZWluLCBkaWUgc2l0emVuIGFsbGUgaW0gS29tYmkgdW5kIGh1cGVuIgoKQXp6dXJvLCBkZXIgU2Nod2VpbmVwcmllc3RlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHJpY2h0ZW4gaW0gSmFociAyMDE1IChDYXVubywgIDQuIEFwciAxOTk2LCAxMToxMDoxOCk6CgooMS4gQXByaWwgYXVmIDNzYXQpCgpJbSBKYWhyIDIwMTUga2FubiBhdWZncnVuZCBlaW5lciBHZXNldHplc2FlbmRlcnVuZyBBcm5vbGQgU2Nod2FyemVuZWdnZXIgc2ljaApmdWVyIGRpZSBXYWhsIGRlcyBBbWVyaWthbmlzY2hlbiBQcmFlc2lkZW50ZW4gYXVmc3RlbGxlbiBsYXNzZW4uClVtZnJhZ2VuIGVyZ2ViZW4sIGRhc3Mgc2VpbmUgUG9wdWxhcml0YWV0IHNvIGdyb3NzIGlzdCwgZGFzcyBCaWxsIEdhdGVzIHdvaGwKbmljaHQgd2llZGVyZ2V3YWVobHQgd2lyZC4KCgkJCQkJR3J1ZXNzZSwgQy5ObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5hY2hyaWNodGVuIGltIEphaHIgMjAxNSAoQWNyaW1vbiwgIDQuIEFwciAxOTk2LCAxMjoxNzozOSk6Cn4jISBybj1DYXVubyBydD04Mjg2MDkwMTgKfiMhIHRpZD04Mjg2MDkwMTgKRGFzIGlzdCBqYSBuaWNodCBzY2h3ZXIsIGRhIGtvZW5udGUgaWNoIG1pY2ggYXVjaCBvaG5lIHNhZW10bGljaGUKV2VyYmVha3Rpb25lbiBhbHMgdm9sbGtvbW1lbiBVbmJla2FubnRlciBhdWZzdGVsbGVuIHVuZCBkaWUgV2FobCBnZXdpbm5lbi4KKGJlaSBCaWxsIEdhdGVzIG5lZ2F0aXZlciBQb3B1bGFyaXRhZXQhKQoKQWNyaW1vbiwgZGVyIChoaWVyIE5pY2h0c2tvZW5uZXIpIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFsbGVuIEZpc2NoIGluIFdhc3NlciAoQ2F1bm8sICA0LiBBcHIgMTk5NiwgMTM6MTY6NDMpOgoKTmV1bGljaCAoMjguIE1hZXJ6KSBpbSBLb2VsbmVyIFN0YWR0LUFuemVpZ2VyOgoKUmVnbG9zIGxpZWdlbiBkaWUgUGxhc3Rpa2Zpc2NoZSBpbSBrdWVuc3RsaWNoZW4gU2FuZCwgZWluIEJpbGQgZGVzIEphbW1lcnMuCk5pY2h0IGVpbm1hbCBhbnNhdHp3ZWlzZSB2ZXJzcHJ1ZGVsdCBkYXMgQXF1YXJpdW0gamVuZSBJbGx1c2lvbiwgZGllIGRlciB0YWktCndhbmVzaXNjaGUgSGVyc3RlbGxlciB2ZXJzcHJvY2hlbiBoYXQ6ICJMaXZpbmcgUmVlZiIsIFJpZmYgdm9sbGVyIExlYmVuLCBzbwpzdGVodCBlcyBhdWYgZGVyIFZlcnBhY2t1bmcuIERvY2ggaW4gZGllc2VyIFBsYXN0aWtraXN0ZSwgZWluIEdlc2NoZW5rIHVlYnJpLQpnZW5zLCB3aXJrdCBhbGxlcyBtYXVzZXRvdC4KICBJbiBzb2xjaGVuIEZhZWxsZW4gZW1wZmllaGx0IHNpY2ggZGVyIEdyaWZmIHp1ciBHZWJyYXVjaHNhbmxlaXR1bmcuIERhcwppc3QKamEgZGFzIFd1bmRlcmJhcmUsIGRhc3MgZGllIEluZHVzdHJpZSBtaXR0ZWxzIEJlaXBhY2sgLSBTY2hyaXR0IGZ1ZXIgU2Nocml0dAp1bmQgbmFycmVuc2ljaGVyIC0gZGVtIEVuZHZlcmJyYXVjaGVyIHNlbGJzdCBrb21wbGl6aWVydGVzdGUgVm9yZ2FlbmdlIHp1CmVya2xhZXJlbiB2ZXJtYWc6IGRhcyBQcm9ncmFtbWllcmVuIGVpbmVzIFZpZGVvcmVjb3JkZXJzIHp1bSBCZWlzcGllbCwgZGFzClp1c2FtbWVuc2NocmF1YmVuIGVpbmVzIEJpbGx5LVJlZ2FscyBvZGVyIGRpZSBadWJlcmVpdHVuZyB2b24gdGllZmdlZnJvcmVuZW4KQnJhdGthcnRvZmZlbG4uCk5hdHVlcmxpY2ggaXN0IGF1Y2ggdW5zZXJlciBrdWVuc3RsaWNoZW4gVW50ZXJ3YXNzZXJ3ZWx0IGVpbmUgQW5sZWl0dWcKYmVpZ2VmdWVndCwgYXVzIGRlciBzaWNoIGVpbiBlcmZvbGdyZWljaGVyIHVuZCBkYW1pdCBmcmV1ZGVzcGVuZGVuZGVyIEJldHJpZWIKZGVzIEFxdWFyaXVtcyBnZXJhZGV6dSB6d2luZ2VuZCBlcmdlYmVuIG11c3MuIExlZGlnbGljaCBzZWNocyB3aW56aWcga2xlaW5lClRpcHMgc2luZCB6dSBiZWZvbGdlbi4KICBFcnN0ZW5zOiAiQWJzdGFuZC1EZWNrZWwgdW5kIG5laG1lbiBTaWUgdW5zZXJlbiBrbGFyZW4gcGxhc3Rpc2NoZW4gVGFuay4iCktlaW4gUHJvYmxlbS4gWndlaXRlbnM6ICJGdWVsbHVuZy1UYW5rIG1pdCBXYXNzZXIgKGxvZ2llcnQgVGVtcGVyYXR1cikuCkZ1ZWdlbiBTaWUgZWluaWdlIFRyb3BmZW4gZmx1ZXNzaWdlciBHZXNjaGlyci1TZWlmZSBoaW56dSwgQmxhc2VuIHZvbiBLbGFtLQptZXJuIHp1IG1laWRlbiB6dSBmaXNjaGVuLiIgU293ZWl0IGFsbGVzIGtsYXIuCiAgRHJpdHRlbnM6ICJGYWxsZW4gZGVuIEZpc2NoIGluIGRhcyBXYXNzZXIuIiBEYXMgaXN0IGVpbmZhY2gsIGRhcyBpc3QgZGV1dC0KbGljaC4gRm9sZ3QgQW53ZWlzdW5nIE51bW1lciB2aWVyOiAiR2VicmF1Y2gtUGluemV0dGVuIChlaW5nZXNjaGxvc3NlbiksIGRlbgpGaXNjaCB6dSBoYWx0ZW4uIFNjaHVldHRlbG4sIHVtIEx1ZnQtQmxhc2VuIHdlZ3p1bmVobWVuLCBtb2VnZW4gc2llIHp1IGRlbQpGaXNjaCBnZXN0ZWNrdCB3ZXJkZW4uIiBPa2F5LiBXZWl0ZXIgenVtIGZ1ZW5mdGVuIFJhdHNjaGxhZzogIkFic3RhbmQtQmF0dGUtCnJpZS1TY2hhbHR0YWZlbCBhdWYgZGVyIGhpbnRlcmVuIFNlaXRlLCBCZWlsYWdlIDIgJ0MnIEJhdHRlcmllbiB1bmQgZHJlaGVuCnNpZSBlcyBhdWYuIiBIYWJlbiB3aXIgaW0gTnUgZXJsZWRpZ3QuCiAgQmVpbSBsZXR6dGVuIFRpcCBzY2hsaWVzc2xpY2ggd2lyZCB1bnMga2xhciwgZGFzcyBkZXIgdGFpd2FuZXNpc2NoZSBTcGllbC0KemV1Zy1JbmdlbmlldXIgaW4gc2VpbmVyIEhlaW1hdCBhdWNoIGVpbmVuIHJlc3Bla3RhYmxlbiBQaGlsb3NvcGhlbiBhYmdlZ2ViZW4KaGFldHRlOiAiTGViZW5zdW50ZXJoYWx0IGF1cyBkaXJla3RlciBTb25uZSBsZXVjaHRldCIgZXJmYWhyZW4gd2lyIHVuZCBmdWVobGVuCnVucyB3YWVybXN0ZW5zIGFuIEtvbmZ1eml1cyB1bmQgc28gd2VpdGVyIGVyaW5uZXJ0LgogIEJldm9yIGRlciBWZXJmYXNzZXIgZGVyIEJldHJpZWJzYW5sZWl0dW5nIHNpY2ggdm9uIHNlaW5lbSBkZXV0c2NoZW4gS3VuZGVuCnZlcmFic2NoaWVkZXQgdW5kIGluIHZlcm11dGxpY2ggcGVyZmVrdGVzICdTcGFpbmlzaCcgd2VjaHNlbHQsIGJlc2NocmVpYnQgZXIKdW5zIG5vY2ggZWluZW4gYWxsZXJsZXR6dGVuIEtuaWZmOiAiRmFsbHMgRmlzY2ggc2Nod2ViZW4gaW4gRWNrZSBpbiBlaW5lcgpHcnVwcGUgYmVnaW5udCwgZXJzZXR6ZW4gQmF0dGVyaWVuIHVuZCBadWcgZmlzY2h0IHVudGVyIEJlbnV0enVuZyBQaW56ZXR0ZW4KKGVpbmdlc2NobG9zc2VuKS4iCiAgUmVnbG9zIGxpZWdlbiBkcmVpIFBsYXN0aWtmaXNjaGUgaW0gUGxhc3Rpa3NhbmQuIChhZG0pCgoJCQkJCQlnZWZ1bmRlbiB2b24gQy5ObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWV0emdlciBpbiBCZWxmYXN0IChDYXVubywgIDUuIEFwciAxOTk2LCAwMTozMDowNSk6CgpJbSBTY2hhdWZlbnN0ZXIgZWluZXIgTWV0emdlcmVpbiBpbiBCZWxmYXN0OgoKIkRpZSBlaW56aWdlIHZlcnJ1ZWNrdGUgS3VoIGluIGRpZXNlbSBMYWRlbiBpc3QgbWVpbmUgRnJhdSIKCgkJCQlDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhlIEludmlzaWJsZSBLaWxsZXIgKENhdW5vLCAxMC4gQXByIDE5OTYsIDExOjIyOjA5KToKW1ZlcmxlZ3Qgdm9uIGt1bHR1ciwgQ2F1bm8sICA0LiBBcHIgMTk5NiwgMTk6Mzk6MDNdOgpbVmVybGVndCB2b24gd2l0emUsIENhdW5vLCAgNC4gQXByIDE5OTYsIDE5OjMyOjI0XToKCkJhbiBEaWh5ZHJvZ2VuIE1vbm94aWRlIC0gVGhlIEludmlzaWJsZSBLaWxsZXIgKGJ5IERhbiBHYWx2aW4pCgpEaWh5ZHJvZ2VuIG1vbm94aWRlIGlzIGNvbG9ybGVzcywgb2Rvcmxlc3MsIHRhc3RlbGVzcywgYW5kIGtpbGxzIHVuY291bnRlZAp0aG91c2FuZHMgb2YgcGVvcGxlIGV2ZXJ5IHllYXIuIE1vc3Qgb2YgdGhlc2UgZGVhdGhzIGFyZSBjYXVzZWQgYnkgYWNjaWRlbnRhbAppbmhhbGF0aW9uIG9mIERITU8sIGJ1dCB0aGUgZGFuZ2VycyBvZiBkaWh5ZHJvZ2VuIG1vbm94aWRlIGRvIG5vdCBlbmQgdGhlcmUuClByb2xvbmdlZCBleHBvc3VyZSB0byBpdHMgc29saWQgZm9ybSBjYXVzZXMgc2V2ZXJlIHRpc3N1ZSBkYW1hZ2UuIFN5bXB0b21zIG9mCkRITU8gaW5nZXN0aW9uIGNhbiBpbmNsdWRlIGV4Y2Vzc2l2ZSBzd2VhdGluZyBhbmQgdXJpbmF0aW9uLCBhbmQgcG9zc2libHkgYQpibG9hdGVkIGZlZWxpbmcsIG5hdXNlYSwgdm9taXRpbmcgYW5kIGJvZHkgZWxlY3Ryb2x5dGUgaW1iYWxhbmNlLiBGb3IgdGhvc2UKd2hvIGhhdmUgYmVjb21lIGRlcGVuZGVudCwgREhNTyB3aXRoZHJhd2FsIG1lYW5zIGNlcnRhaW4gZGVhdGguCgpEaWh5ZHJvZ2VuIG1vbm94aWRlCi0gaXMgYWxzbyBrbm93biBhcyBoeWRyb3h5bCBhY2lkLCBhbmQgaXMgdGhlIG1ham9yIGNvbXBvbmVudCBvZiBhY2lkIHJhaW4uCi0gY29udHJpYnV0ZXMgdG8gdGhlICJncmVlbmhvdXNlIGVmZmVjdC4iCi0gbWF5IGNhdXNlIHNldmVyZSBidXJucy4KLSBjb250cmlidXRlcyB0byB0aGUgZXJvc2lvbiBvZiBvdXIgbmF0dXJhbCBsYW5kc2NhcGUuCi0gYWNjZWxlcmF0ZXMgY29ycm9zaW9uIGFuZCBydXN0aW5nIG9mIG1hbnkgbWV0YWxzLgotIG1heSBjYXVzZSBlbGVjdHJpY2FsIGZhaWx1cmVzIGFuZCBkZWNyZWFzZWQgZWZmZWN0aXZlbmVzcyBvZiBhdXRvbW9iaWxlCiAgYnJha2VzLgotIGhhcyBiZWVuIGZvdW5kIGluIGV4Y2lzZWQgdHVtb3JzIG9mIHRlcm1pbmFsIGNhbmNlciBwYXRpZW50cy4KCkNvbnRhbWluYXRpb24gSXMgUmVhY2hpbmcgRXBpZGVtaWMgUHJvcG9ydGlvbnMhCgpRdWFudGl0aWVzIG9mIGRpaHlkcm9nZW4gbW9ub3hpZGUgaGF2ZSBiZWVuIGZvdW5kIGluIGFsbW9zdCBldmVyeSBzdHJlYW0sCmxha2UsIGFuZCByZXNlcnZvaXIgaW4gQW1lcmljYSB0b2RheS4gQnV0IHRoZSBwb2xsdXRpb24gaXMgZ2xvYmFsLCBhbmQgdGhlCmNvbnRhbWluYW50IGhhcyBldmVuIGJlZW4gZm91bmQgaW4gQW50YXJjdGljIGljZS4gREhNTyBoYXMgY2F1c2VkCm1pbGxpb25zIG9mIGRvbGxhcnMgb2YgcHJvcGVydHkgZGFtYWdlIGluIHRoZSBtaWR3ZXN0LCBhbmQgcmVjZW50bHkKQ2FsaWZvcm5pYS4KCkRlc3BpdGUgdGhlIGRhbmdlciwgZGloeWRyb2dlbiBtb25veGlkZSBpcyBvZnRlbiB1c2VkCi0gYXMgYW4gaW5kdXN0cmlhbCBzb2x2ZW50IGFuZCBjb29sYW50LgotIGluIG51Y2xlYXIgcG93ZXIgcGxhbnRzLgotIGluIHRoZSBwcm9kdWN0aW9uIG9mIHN0eXJvZm9hbS4KLSBhcyBhIGZpcmUgcmV0YXJkYW50LgotIGluIG1hbnkgZm9ybXMgb2YgY3J1ZWwgYW5pbWFsIHJlc2VhcmNoLgotIGluIHRoZSBkaXN0cmlidXRpb24gb2YgcGVzdGljaWRlcy4gRXZlbiBhZnRlciB3YXNoaW5nLCBwcm9kdWNlIHJlYW1haW5zCiAgY29udGFtaW5hdGVkIGJ5IHRoaXMgY2hlbWljYWwuCi0gYXMgYW4gYWRkaXRpdmUgaW4gY2VydGFpbiAianVuay1mb29kcyIgYW5kIG90aGVyIGZvb2QgcHJvZHVjdHMuCgpDb21wYW5pZXMgZHVtcCB3YXN0ZSBESE1PIGludG8gcml2ZXJzIGFuZCB0aGUgb2NlYW4sIGFuZCBub3RoaW5nIGNhbiBiZSBkb25lCnRvIHN0b3AgdGhlbSBiZWNhdXNlIHRoaXMgcHJhY3Rpc2UgaXMgc3RpbGwgbGVnYWwuIFRoZSBpbXBhY3Qgb24gd2lsZGxpZmUgaXMKZXh0cmVtZSwgYW5kIHdlIGNhbm5vdCBhZmZvcmQgdG8gaWdub3JlIGl0IGFueSBsb25nZXIhCgpUaGUgSG9ycm9yIE11c3QgQmUgU3RvcHBlZCEKClRoZSBBbWVyaWNhbiBnb3Zlcm5tZW50IGhhcyByZWZ1c2VkIHRvIGJhbiB0aGUgcHJvZHVjdGlvbiwgZGlzdHJpYnV0aW9uIG9yCnVzZSBvZiB0aGlzIGRhbWFnaW5nIGNoZW1pY2FsIGR1ZSB0byBpdHMgImltcG9ydGFuY2UgdG8gdGhlIGVjb25vbWljIGhlYWx0aApvZiB0aGlzIG5hdGlvbi4iIEluIGZhY3QsIHRoZSBuYXZ5IGFuZCBvdGhlciBtaWxpdGFyeSBvcmdhbml6YXRpb25zIGFyZQpjb25kdWN0aW5nIGV4cGVyaW1lbnRzIHdpdGggREhNTywgYW5kIGRlc2lnbmluZyBtdWx0aS1iaWxsaW9uIGRvbGxhciBkZXZpY2VzCnRvIGNvbnRyb2wgYW5kIHV0aWxpemUgaXQgZHVyaW5nIHdhcmZhcmUgc2l0dWF0aW9ucy4gSHVuZHJlZHMgb2YgbWlsaXRhcnkKcmVzZWFyY2ggZmFjaWxpdGllcyByZWNlaXZlIHRvbnMgb2YgaXQgdGhyb3VnaCBhIGhpZ2hseSBzb3BoaXN0aWNhdGVkIHVuZGVyLQpncm91bmQgZGlzdHJpYnV0aW9uIG5ldHdvcmsuIE1hbnkgc3RvcmUgbGFyZ2UgcXVhbnRpdGllcyBmb3IgbGF0ZXIgdXNlLgoKCQlJdHMgTm90IFRvbyBMYXRlIQoKQWN0IE5PVyB0byBwcmV2ZW50IGZ1cnRoZXIgY29udGFtaW5hdGlvbi4gRmluZCBvdXQgbW9yZSBhYm91dCB0aGlzIGRhbmdlcm91cwpjaGVtaWNhbC4gV2hhdCB5b3UgZG9uYHQga25vdyBjYW4gaHVydCB5b3UgYW5kIG90aGVycyB0aHJvdWdob3V0IHRoZSBXb3JsZC4KCgkJCUZvbGxvdyB1cyEKCQkJCVRoZSBDb2xvZ25lIEZhY3Rpb24gLQoJCQkJCWxlYWRpbmc6IEMuIE5vCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5peCBmdWVyIEFuc3RhZW5kaWdlIChCb21ib3dza2ksIDExLiBBcHIgMTk5NiwgMTE6NDE6MzEpOgpOZXVsaWNoIGluIGVpbmVyIGJpbGRlbmRlbiBkZXV0c2NoZW4gWmVpdHNjaHJpZnQgZ2VsZXNlbiA6CgpTYWd0IGVpbiBNYW5uIHp1IHNlaW5lbSBGcmV1bmQgOiAnTWFjaHN0IER1IGVzIG1pdCBEZWluZXIgRnJhdSBhdWNoCm1hbmNobWFsIGlucyBhbmRlcmUgTG9jaCA/JwonTmVlLCB3aXIgd29sbGVuIGRvY2gga2VpbmUgS2luZGVyLicKCkhpaGloaQoKR3J1c3MsQm9tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgR29sZnNwaWVsIChDYXVubywgMTIuIEFwciAxOTk2LCAxMDowMToxMSk6CgpKZXN1cyB1bmQgR290dHZhdGVyIHNwaWVsZW4genVzYW1tZW4gR29sZi4KSmVzdXMgaXN0IGFtIEFic2NobGFnLiBEZXIgQmFsbCBmbGllZ3QgYXVmIGRhcyBHcnVlbiwgc3ByaW5ndCB6d2VpbWFsIGF1ZiB1bmQKZmFlbGx0IHNjaGxpZXNzbGljaCBpbnMgTG9jaC4gRGFubiBzY2hsYWVndCBHb3R0LgpEZXIgQmFsbCBmbGllZ3QgenVtIEdydWVuIHVuZCBibGVpYnQga3VyeiB2b3IgZGVtIExvY2ggbGllZ2VuLgpBdWYgZWlubWFsIHNwcmluZ3QgZWluZSBNYXVzIGF1cyBkZW0gR3JhcyB1bmQgc2NobmFwcHQgc2ljaCBkZW4gQmFsbC4KRWluZSBLYXR6ZSBzdG9lc3N0IGF1cyBkZW0gR2Vob2VseiBoZXJ2b3IgdW5kIHBhY2t0IGRpZSBNYXVzLgpFaW4gQWRsZXIgc3R1ZXJ6dCBzaWNoIGhlcmFiLCBwYWNrdCBkaWUgS2F0emUgdW5kIGVyaGVidCBzaWNoIHdpZWRlci4KQW0gSGltbWVsIHppZWhlbiBkdW5rbGUgV29sa2VuIGF1Zi4gRWluIEJsaXR6IHp1Y2t0IGF1ZiwgdHJpZmZ0IGRlbiBBZGxlci4KRGVyIEFkbGVyIHN0cnVlcnp0IHp1IEJvZGVuLiBEYWJlaSBsYWVzc3QgZXIgZGllIEthdHplIGZhbGxlbiwgZGllIGxhZXNzdCBkaWUKTWF1cyBsb3MsIHVuZCBkaWUgZGVuIEJhbGwuIERlciBCYWxsIGZhZWxsdCBpbnMgTG9jaC4KCk1laW50IEplc3VzIHp1IEdvdHQ6ICJBbHNvLiBTcGllbGVuIHdpciBqZXR6dCBHb2xmIC0gb2RlciB3b2xsZW4gd2lyCmJsb2VkZWxuPyIKCgkJCQkJR3J1ZXNzZSwgQy4gTm8sCgkJCQlkZXIgaGV1dGUgYXVzIGRlciBLaXJjaGUgYXVzZ2V0cmV0ZW4gaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBHb2xmc3BpZWwgKFRhc2hhLCAxMi4gQXByIDE5OTYsIDIxOjMzOjEyKToKfiMhIHJuPUNhdW5vIHJ0PTgyOTI5NjA3MQp+IyEgdGlkPTgyOTI5NjA3MQpISSEKCkFuZCBkaWVzZXIgU3RlbGxlIG11c3MgaWNoIG1pY2ggd29obCBtYWwgYWxzIEdvbGZlcmluIG91dGVuOgoKR290dCBoYXQgZGFzIExvY2ggbm9jaCBuaWNodCBiZWVuZGV0LiBMYXV0IEF1c3NhZ2UgZGVzIFZvcmFydGlrZWxzIHdhciBkZXIKQmFsbCBHT1RURVMgYXVmIGRlbSBHcnVlbiBiZXJlaXRzIGxpZWdlbmdlYmxpZWJlbiwgd2FyIGFsc28gZWluIEJhbGwgaW4gUnVoZS4KUmVnZWwgMTgtMSBkZXMgUm95YWwgYW5kIGFuY2llbnQgR29sZiBDbHVicyB2b24gU3QuIEFuZHJld3MgbGF1dGV0IGluIGRlcgpkZXV0c2NoZSBVZWJlcnNldHp1bmc6CgoxOC0xIEJhbGwgaW4gUnVoZSBiZXdlZ3QgZHVyY2ggbmljaHQgenVtIFNwaWVsIGdlaG9lcmlnZXMuCldpcmQgZWluIEJhbGwgaW4gcnVoZSBkdXJjaCBldHdhcyBiZXdlZ3QsIGRhcyBuaWNodCB6dW0gU3BpZWwgZ2Vob2VydCwgc28KemllaHQgc2ljaCBkZXIgU3BpZWxlciBrZWluZSBTdHJhZmUgenUgdW5kIGRlciBCYWxsIG11c3Mgdm9yIGRlbSBuYWVjaHN0ZW4KU2NobGFnIGRlcyBTcGllbGVycyB6dXJ1ZWNrZ2VsZWd0IHdlcmRlbi4KCkRhIFRpZXJlIGFsbGVyIEFydCBuaWNodCB6dW0gU3BpZWwgZ2Vob2VyZW4sIG11c3MgR09UVCBkZW4gQmFsbCBhbHNvCnp1cnVlY2tsZWdlbi4KCkFuZGVycyB3YWVyZSBkaWUgU2l0dWF0aW9uIHVlYnJpZ2Vucywgd2VubiBkZXIgQmFsbCBub2NoIHdhZWhyZW5kIGVyIGluCkJld2VndW5nIHdhciB2b24gZWluZW0gVGllciBhdWZnZWdyaWZmZW4gd29yZGVuIHdhZXJlLiBEYW5uIG11ZXNzdGUgZXIKbmFlbWxpY2ggdm9uIGRvcnQgd2VpdGVyZ2VzcGllbHQgd2VyZGVuLCB3byBkYXMgVGllciBpaG4gZmFsbGVuIGxpZXNzLCBpbgpkaWVzZW0gRmFsbGUgYWxzbyBpbSBMb2NoLgoKV2VyIG5vY2ggbWVociB6dSBibG9lZHNpbm5pZ2VuIEdvbGZyZWdlbG4gKFN0aWNod29ydDogRXJkZ2FlbmdlIGdyYWJlbmRlClRpZXJlKSBob2VyZW4gd2lsbCBzb2xsIHNpY2ggYmVpIG1pciBtZWxkZW4uCgpUYXNoYSwgbGVpZGVyIG51ciBIYW5kaWNhcCAzMAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEYXMgR29sZnNwaWVsIChDYXVubywgMTUuIEFwciAxOTk2LCAxMDo1MTowOCk6Cn4jISBybj1UYXNoYSBydD04MjkzMzc1OTIKfiMhIHRpZD04MjkyOTYwNzEKCkRlc3dlZ2VuIHdvaGwgZGVyIGxldHp0ZSBTYXR6IHZvbiBKZXN1cyAuLi4gOi0pCgpTbyBnZW5hdSB3YXJzIGFiZXIgYXVjaCBuaWNodCB6dSBzZWhlbiwgb2IgZGVyIEJhbGwgbm9jaCByb2xsdGUgb2RlciBuaWNodCwKZXIgd2FlcmUgbnVyIG5pZSBhbmdla29tbWVuLgpOYSB1bmQsIGFkcyB3YXIgamEgbmljaHQgZGllIHBvaW50ZS4gQWJlciBkYW5rZSBmdWVyIGRlbiBFaW5ibGljayBpbiBkaWUKR29sZnJlZ2VsbiwgVGFzaGEuCgoJCQkJCQkJQy5ObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gYWxsZSBnZXN0cmVzc3RlbiBBcmJlaXRuZWhtZXIhISAoRG9scGgsIDE1LiBBcHIgMTk5NiwgMjI6NDM6NDIpOgpXZXIgZ2xhdWJ0LCBkYXNzIGVpbiBBYnRlaWx1bmdzbGVpdGVyIHNlaW5lIEFidGVpbHVuZyBsZWl0ZXQsIGRlciBnbGF1YnQKYXVjaCwgZGFzcyBlaW4gWml0cm9uZW5mYWx0ZXIgWml0cm9uZW4gZmFsdGV0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHRyYWcgenVtIEdvbGZlcndpdHo6IChDcmVhdGl2ZSwgMTYuIEFwciAxOTk2LCAxNDozMjo0OCk6CgpEZXIgUGZhcnJlciBnZWh0IG1pdCBzZWluZW0gRnJldW5kIEdvbGYgc3BpZWxlbi4gRGVyIEZyZXVuZCBoYXQgbmljaHQgZ2VyYWRlCmVpbmVuIEdsdWVja3N0YWcsIHVuZCBzbyBrb21tdCBlcywgZGFzcyBpaG0gZmFzdCBqZWRlciBTY2hsYWcgZGFuZWJlbmdlaHQuCkplZGVzbWFsIHNjaGltcGZ0IGVyOiAnVmVyZmx1Y2h0LCBkYW5lYmVuIScgTmFjaCBlaW5lciBXZWlsZSB3aXJkIGVzIGRlbQpQZmFycmVyIHp1IGJ1bnQgdW5kIGVyIGRyb2h0OiAnV2VubiBEdSBub2NoIGVpbm1hbCBmbHVjaHN0LCB3aXJkIEdvdHQgZWluZW4KQmxpdHogenVyIEVyZGUgc2VuZGVuLCBkZXIgRGljaCB0cmlmZnQuJyBEZXIgRnJldW5kIGlzdCB2b24gZGVyIERyb2h1bmcKbmljaHQgc2VociBiZWVpbmRydWNrdCB1bmQgc2V0enQgZGFzIFNwaWVsIGZvcnQuIEVzIGRhdWVydCBuaWNodCBsYW5nZSwKZGEgZmx1Y2h0IGVyIHdpZWRlcjogJ1ZlcmZsdWNodCwgZGFuZWJlbiEnIEltIHNlbGJlbiBNb21lbnQgemllaHQgZWluIEdlLQp3aXR0ZXIgYXVmLCBlaW4gQmxpdHogZmFlaHJ0IHp1ciBFcmRlIHVuZCB0cmlmZnQgZGVuIFBmYXJyZXIuIERhIGRyb2VobnQKZWluZSB0aWVmZSBTdGltbWUgdm9tIEhpbW1lbDogJ1ZlcmZsdWNodCwgZGFuZWJlbiEnCgotQ3JlYS0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmFjaHRyYWcgenVtIEdvbGZlcndpdHo6IChHcmltbWJvcm4sIDE2LiBBcHIgMTk5NiwgMTg6MzM6MjcpOgp+IyEgcm49Q3JlYXRpdmUgcnQ9ODI5NjU3OTY4Cn4jISB0aWQ9ODI5NjU3OTY4CgpUcmVmZmVuIHNpY2ggendlaSBBZXJ6dGUuIFNhZ3QgZGVyIGVpbmU6ICJOYSwgaGFzdCBEdSBub2NoIFNleCBvZGVyIHNwaWVsc3QKRHUgc2Nob24gR29sZj8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaHdlaGNoZW4gKEdyaW1tYm9ybiwgMTcuIEFwciAxOTk2LCAxMDowMToxMSk6CgpBcnp0IHp1bSBQYXRpZW50ZW46IEljaCBoYWJlIHp3ZWkgc2NobGVjaHRlIE5hY2hyaWNodGVuIGZ1ZXIgU2llLiBEaWUgZXJzdGU6ClNpZSBoYWJlbiBLcmVicy4gVW5kIGRpZSB6d2VpdGUgc2NobGVjaHRlIE5hY2hyaWNodDogU2llIGhhYmVuIEFsemhlaW1lci4KTWVpbnQgZGVyIFBhdGllbnQ6IEdvdHQgc2VpIERhbmssIHdlbmlnc3RlbnMga2VpbiBLcmVicy4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQlNFIChMaSwgMTcuIEFwciAxOTk2LCAxMzoxNTowMik6CldhcnVtIGtvZW5uZW4gTWFlbm5lciBuaWNodCBCU0UgYmVrb21tZW4/CgoKCgoKCgoKCgoKCgoKCgoKCgoKRXMgc2luZCBhbGxlcyBTY2h3ZWluZS4uLi4KCkxpIChGZXJud2VzdHNjaHdlaW5jaGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYWNodHVuZzogc2V4aXN0aXNjaCAhISEgKFlhbnRybywgMTcuIEFwciAxOTk2LCAxMzo0NToyMyk6CgpMYWV1ZnQgZWluIE1hbm4gYWxzIEpvZ2dlciBnZXRhcm50IGR1cmNoIGRlbiBXYWxkIHVuZCB0cmlmZnQgZHVyY2ggWnVmYWxsIGF1ZgplaW5lIFdhbGRmZWUuIE1laW50IGRpZXNlOiBJY2ggaGFiIGdlcmFkZSBuZSBzY2hvZW5lIEdpbGRlIGFuZ2VzY2hsb3NzZW4gdW5kCmRlc2hhbGIgd2lsbCBpY2ggRGlyIGVpbmUgRnJldWRlIG1hY2hlbi4uLiBEdSBoYXN0IGVpbmVuIFd1bnNjaCBmcmVpIDopCkVyIHVlYmVybGVndCB1bmQgbWVpbnQgZGFubiBsZWlzZSB1bmQgdmVybGVnZW46ICJJY2ggd3VlcmRlIGdlcm5lIENoYW1wYWduZXIKcGlua2VsbiBrb2VubmVuLi4uIi4gRGllIEZlZSBzY2hhdXQgbGFuZ2UgaW4gZGllIEhpbGZlc2VpdGUgaWhyZXIgTHVwZSB1bmQKbWVpbnQgZGFubjogSGV5YS4uIGlzdCBrZWluIFByb2JsZW0uIFNpZSBmdW1tZWx0IGFuIGRlciBMdXBlIHJ1bSwgYWJlciBkYQpzY2hlaW50IHdhcyBuaWNodCB6dSBzdGltbWVuLiBTY2hsaWVzc2xpY2ggZXJncmVpZnQgc2llIGlociBNR1Rvb2wgdW5kIHNvcmd0CnNjaG5lbGwgdW5kIG9obmUgUHJvYmxlbWUgZnVlciBkaWUgRXJmdWVsbHVuZyBkZXMgV3Vuc2NoZXMuIERlciBNYW5uIHRlc3RldApnYW56IGt1cnogZGVuIEdlc2NobWFjayB1bmQgcmVubnQgZGFubiBiZWdlaXN0ZXJ0IG5hY2ggSGF1c2UgenUgc2VpbmVyIEZyYXUuCkRvcnQgbWVpbnQgZXIgZGFubjogIlNjaGF0eiwgaWNoIGhhYiBpbSBXYWxkIGVpbmUgRmVlIGdldHJvZmZlbiB1bmQgZGllIGhhdAptaXIgZWluZW4gV3Vuc2NoIGVyZnVlbGx0Li4uIiBTaWU6ICJKYSB3YXMgZGVubj8/IiAgRXI6ICJJY2gga2FubiBqZXR6dApDaGFtcGFnbmVyIHBpbmtlbG4gOykiLgpEYXJhdWZoaW4gaXN0IGRpZSB0b3RhbCBiZWdlaXN0ZXJ0IHVuZCByZW5udCB6dW0gU2NocmFuaywgd29iZWkgc2llIG1laW50OgoiSVN0IGphIHRvbGwuLiBpY2ggaG9sIG1hbCBzY2huZWxsIHp3ZWkgR2xhZXNlci4iIEVyIGRhcmF1ZiBtaXQgU2NoYWxrIGluIGRlbgpBdWdlbjogIk5vZS4uIHdpciBicmF1Y2hlbiBudXIgZWluIEdsYXMuIERVIHRyaW5rc3QgYXVzIGRlciBGbGFzY2hlISIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWFtdGVud2l0eiA6KSAoQW5ndXMsIDE3LiBBcHIgMTk5NiwgMTg6MTI6MjgpOgpOZXVsaWNoIGdlaG9lcnQuLi4KRWluIEJlYW10ZXIgc2l0enQgaW4gc2VpbmVtIEJ1ZXJvIHVuZCBzdG9laG50IHVlYmVyIHNlaW5lbiAoemllbWxpY2gKZWluZ2VzdGF1YnRlbikgQWt0ZW5vcmRuZXJuLiAqUHVmZiogRGEgZXJzY2hlaW50IGVpbmUgZ3V0ZSBGZWUgdW5kIGVya2xhZXJ0LAplciBoYWJlIChhdXMgd2VsY2hlbiBHcnVlbmRlbiBhdWNoIGltbWVyKSAzIFd1ZW5zY2hlIGZyZWkuCkRlciBCZWFtdGUgdWViZXJsZWd0LCB1bmQgbWVpbnQsIFVybGF1YiBhdWYgZWluZXIgZWluc2FtZW4gS2FyaWJpa2luc2VsCndhZXIgamV0enQgYmVzdGltbXQgbmljaHQgc2NobGVjaHQuLi4uLi4uLi4uLi4uCipaQVBQKiBFciBsaWVndCBhbSBTdHJhbmQgZWluZXIgS2FyaWJpa2luc2VsLiBHZXJhZGUgZ2V3b2VobnQgZXIgc2ljaAphbiBkYXMgVXJsYXVic2ZlZWxpbmcsIGFscyBkaWUgRmVlIGVybmV1dCBlcnNjaGVpbnQsIHVuZCBpaG4gbmFjaCBzZWluZW0KendlaXRlbiBXdW5zY2ggZnJhZ3QuIERlciBCZWFtdGUgaXN0IGJlZ2Vpc3RlcnQgdW5kIHd1ZW5zY2h0IHNpY2ggMTAganVuZ2UsCmd1dCBnZWJhdXRlIHVuZCBsaWViZXNodW5ncmlnZSBIdWxhbWFlZGVscywgZGllIGlobiB2ZXJ3b2VobmVuIHNvbGxlbi4uLi4uLi4KKlpBUFAqIChOb2NoIEZyYWdlbiA7KSBEaWUgSHVsYW1hZWRlbHMgZXJzY2hlaW5lbi4uLiBtaXR0ZW5kcmluIHN0ZWh0IG51bgpldHdhcyB2ZXJsb3JlbiBkaWUgRmVlIHVuZCBmcmFndCBzY2h1ZWNodGVybjogIkRlaW4gZHJpdHRlciBXdW5zY2g/PyIKRGVyIEJlYW10ZTogIkhhY2ggZGFzIGlzdCBzb29vIHNjaG9lbi4uLiBpY2ggbW9lY2h0ZSBOSUUgTUVIUiBBUkJFSVRFTiEiLi4uLi4KLi4uCi4uLi4KLi4uLi4uKlpBUFAqIFNjaG9uIHNpdHp0IGVyIHdpZWRlciBpbiBzZWluZW0gQnVlcm8uLi4gOikKCi4uLi4gYWx0IGFiZXIgZ3V0IDopKQogIC0gQW5ndXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NoIGVpbiBGZWVuLVdpdHogKENhdW5vLCAxOC4gQXByIDE5OTYsIDEwOjAzOjM3KToKCkNsaW50b24sIEplbHR6aW4gdW5kIEtvaGwgc2l0emVuIHp1c2FtbWVuIGFtIFN3aW1taW5nLVBvb2wsIGFscyBlaW5lIEZlZQplcnNjaGVpbnQgdW5kIHNhZ3Q6IEplZGVyIHZvbiBldWNoIGhhdCBlaW5lbiBXdW5zY2ggZnJlaS4KCkNsaW50b24gdWViZXJsZWd0LiBEYW5uIGtsZXR0ZXJ0IGVyIGF1ZiBkYXMgRnVlbmYtTWV0ZXItQnJldHQsIGxhZXVmdCwKc3ByaW5ndCwgcnVmdCAiV2hpc2tleSIgdW5kIHNjaHdpbW10IGRhcmluLgoKSmVsdHppbiBrbGV0dGVydCBob2NoLCBsYWV1ZnQsIHNwcmluZ3QsIHJ1ZnQgIldvZGthISIgdW5kIHNjaHdpbW10IGViZW5mYWxscwpkYXJpbi4KCktvaGwga2xldHRlcnQgaG9jaCwgbGFldWZ0IGFuLCBzdG9scGVydCB1bmQgc2FndDogIlNjaGVpc3NlISIgLi4uCgoJCQkJZWJmbHMuIGFsdCBhYmVyIGd1dDogQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciB3YWhyZSBHcnVuZCAuLi4gKENhdW5vLCAxOC4gQXByIDE5OTYsIDEzOjQ1OjI1KToKCkFsbGUgVmVyc2lvbmVuLCBkaWUgYmlzaGVyIHVlYmVyIGRlbiBBYnN0dXJ6IGRlciBVLlMuUy4gRW50ZXJwcmlzZSBOQ0MgMTcwMS1ECnZlcm9lZmZlbnRsaWNodCB3dXJkZW4sIGRpZW50ZW4gbnVyIGRhenUsIGRpZSB3YWhyZSBVcnNhY2hlIHp1IHZlcnR1c2NoZW4uClRhdHNhZWNobGljaCB3dXJkZSBkYXMgVW5nbHVlY2sgYXVzZ2Vsb2VzdCwgYWxzIEx0LiBSZWdpbmFsZCBCYXJjbGF5IGF1ZiBkZW0KSG9sb2RlY2sgZWluIEhvbG9ncmFtbSB2b24gQmlsbCBHYXRlcyBpbiBkZW4gU3BlaWNoZXIgbHVkLgoKCQkJCQkJCUMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYWFnZW4gKENhdW5vLCAxOS4gQXByIDE5OTYsIDEwOjUyOjI4KToKCkVpbmUgTXV0dGVyIGlzdCBtaXQgaWhyZXIga2xlaW5lbiBUb2NodGVyIGltIEVpbmthdWZzemVudHJ1bS4gQWxzIGRhcwpNYWVkY2hlbiBlaW5lIFdhYWdlIGRvcnQgc3RlaGVuIHNpZWh0LCBtZWludCBlczoKIlNjaGF1IG1hbCwgTWFtYSwgZGEgc3RlaHQgZWluZSBXb2dlISIKRGllIE11dHRlciBiZXJpY2h0aWd0OiAiRGFzIGhlaXNzdCBuaWNodCBXb2dlLCBzb25kZXJuIFdhYWdlLiIKIkRhcmYgaWNoIG1pY2ggbWFsIHdhYWdlbj8iIGZyYWd0IGRhIGRhcyBNYWVkY2hlbi4KRGllIE11dHRlciBtZWludDogIkluIE9yZG51bmcuIEFiZXIgZGFzIGhlaXNzdCBuaWNodCB3YWFnZW4sIHNvbmRlcm4gd2llZ2VuLiIKRGFzIE1hZWRjaGVuIGdlaHQgYXVmIGRpZSBXYWFnZS4gQWxzIGVzIHp1cnVlY2trdW1tdCwgc2FndCBlczoKIk1hbWEsIGljaCBoYWJlIG1pY2ggamV0enQgZ2V3aWVndC4iCkRpZSBNdXR0ZXIgc2FndCwgZ2VkdWxkaWc6ICJEYXMgaGVpc3N0IG5pY2h0IGdld2llZ3QsIHNvbmRlcm4gZ2V3b2dlbi4iCkRhIHNhZ3QgZGFzIE1hZWRjaGVuOiAiU2llaHN0ZSwgTWFtYSwgSGVpc3N0IGRvY2ggV29nZSEiCgoJCVJlY2h0c2NocmVpYnJlZm9ybSBoaW4gb2RlciBoZXIsCgkJCQkJCQlDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBhdWYgZGVyIEJhbmsuLi4gKEZyZXVuZCwgMjAuIEFwciAxOTk2LCAwOTozOToyNSk6CkRpZXNlIGdyb3NzZSwgZnJlaWUgRmxhZWNoZSwgYXVmIGRlciBEdSBzdGVoc3QsIHNjaGVpbnQgZWlubWFsIGRlciB3aWNodGlnc3RlClBsYXR6IGRlciBTdGFkdCBNb3JvbiBnZXdlc2VuIHp1IHNlaW4uIFVuZCBvYndvaGwgZGllIFplaXQsIGFscyBoaWVyIG5vY2gKcmF1c2NoZW5kZSBGZXN0ZSBzdGF0dGdlZnVuZGVuIGhhYmVuLCBzY2hvbiBsYW5nZSB2b3JiZWkgc2VpbiBtdXNzLCBzY2hlaW50Cm5vY2ggZXR3YXMgdm9uIGRlbSBHZWlzdCwgZGVyIGRpZXNlIFN0YWR0IHZvciBBZW9uZW4gYmVzZWVsdCBoYXQsIGVyaGFsdGVuCmdlYmxpZWJlbiB6dSBzZWluIC0gZGVubiBoaW4gdW5kIHdpZWRlciBzY2hlaW50IG5vY2ggZWluIEhhdWNoIHZvbiBNdXNpawp1ZWJlcgpkaWUgbGVlcmUgRmxhZWNoZSB6dSBkcmlmdGVuLCB1bmQgU2NoYXR0ZW4gc2NoZWluZW4gc2ljaCB3aWUgaW4gZWluZW0gaXJyZW4sCnNpbm5sb3NlbiBUYW56IHVtIERpY2ggaGVydW0genUgZHJlaGVuLgpOb3Jkd2VzdGxpY2ggdm9uIGhpZXIsIGFuIGRlciBnZWdlbnVlYmVybGllZ2VuZGVuIFNlaXRlIGRlcyBQbGF0emVzLCBzaWVoc3QKRHUKZWluIGdld2FsdGlnZXMgR2ViYWV1ZGUgbWl0IGVpbmVyIGdyb3NzZW4gS3VwcGVsLCBkaWUgRGlyIHNjaG9uIGJlaW0gQmV0cmV0ZW4KZGVyIFN0YWR0IGF1ZmdlZmFsbGVuIGlzdC4gSW0gT3N0ZW4gZnVlaHJ0IGRlciBUb3J3ZWcgenVtIEF1c2dhbmcgZGVyIFN0YWR0Cmhpbi4KRXMgZ2lidCB2aWVyIHNpY2h0YmFyZSBBdXNnYWVuZ2U6IG9zdGVuLCB3ZXN0ZW4sIG5vcmR3ZXN0ZW4gdW5kIG5vcmRlbi4KTXlzZWxmIHNpdHp0IGZyb2ggYXVmIGRlciBCYW5rLiBbL2R3YXJmOm15c2VsZl0KLTQ5IE11ZW56ZW4uIFsvb2JqL21vbmV5IzQzODE4MF0KCkpldHp0IHZlcnN0ZWhlIGljaCBhdWNoLCB3aWUgVWViZXJ6aWVodW5nc3ppbnNlbiB6dXN0YW5kZSBrb21tZW4uLi4KCkVpbiBGcmV1bmQgZnVlciBhbGxlIEZhZWxsZSAtIGtlbm50IHNvbnN0IG51ciBuZWdhdGl2ZSBUZW1wZXJhdHVyZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoIGF1ZiBkZXIgQmFuay4uLiAoQ2F1bm8sIDIwLiBBcHIgMTk5NiwgMTU6NDg6NTMpOgp+IyEgcm49RnJldW5kIHJ0PTgyOTk4NTk2NQp+IyEgdGlkPTgyOTk4NTk2NQoKV28gd2FyIGRpZSBQb2ludGU/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1bGljaCBhdWYgZGVyIEJhbmsuLi4gKEdyaW1tYm9ybiwgMjIuIEFwciAxOTk2LCAxMTozMTo0MSk6Cn4jISBybj1DYXVubyBydD04MzAwMDgxMzMKfiMhIHRpZD04Mjk5ODU5NjUKCkRpZSBQb2ludGUgd2FyIGRhcyBtaXQgZGVuIG5lZ2F0aXZlbiBUZW1wZXJhdHVyZW4uIERhIFRlbXBlcmF0dXJlbgpiZWthbm50bGljaCBpbiBLZWx2aW4gZ2VtZXNzZW4gd2VyZGVuLCBpc3QgZGFzIG5pY2h0IHVua29taXNjaC4gWnVtIGFicm9sbGVuCmlzdHMgYWJlciBhdWNoIG5pY2h0IGdlcmFkZS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1bGljaCBhdWYgZGVyIEJhbmsuLi4gKENhdW5vLCAyNC4gQXByIDE5OTYsIDExOjQ3OjA0KToKfiMhIHJuPUdyaW1tYm9ybiBydD04MzAxNjU1MDEKfiMhIHRpZD04Mjk5ODU5NjUKCkF1Y2ggd2VubiBlcyBhdXNzaWVodCwgYWxzIHdvbGx0ZSBpY2ggd2llZGVyIG1lY2tlcm46CkVyc3RlbnMgc3RhbmQgZGEgbmljaHRzIHZvbiBUZW1wZXJhdHVyLCBzb25kZXJuIHZvbiBHZWxkLgpad2VpdGVucyBmaW5kZSBpY2ggZXMgaW1tZXIgbm9jaCBuaWNodCBsdXN0aWcsIGJlaSAtNDkgc2Nob24gdm9uIGVpbmVtCnVlYmVyem9nZW5lbiBLb250byB6dSBzcHJlY2hlbi4KClZpZWxsZWljaHQgd2FyIG1pciBkZXIgVGV4dCBhdWNoIG51ciB6dSBsYW5nLgoKKE5laW4sIGRhcyBzb2xsIGtlaW5lIFJlY2h0ZmVydGlndW5nIHNlaW4gOi0pLCkgICAgQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE5ldWxpY2ggYXVmIGRlciBCYW5rLi4uIChHcmltbWJvcm4sIDI0LiBBcHIgMTk5NiwgMTI6NDQ6MTQpOgp+IyEgcm49Q2F1bm8gcnQ9ODMwMzM5MjI0Cn4jISB0aWQ9ODI5OTg1OTY1CgpMaWVzIGRvY2ggYml0dGUgZGllIEFydGlrZWwsIGF1ZiBkaWUgRHUgcmVwbGllc3Q6CiJFaW4gRnJldW5kIGZ1ZXIgYWxsZSBGYWVsbGUgLSBrZW5udCBzb25zdCBudXIgbmVnYXRpdmUgVGVtcGVyYXR1cmVuLi4uIgoKU293ZWl0LAogICAgICAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE5ldWxpY2ggYXVmIGRlciBCYW5rLi4uIChDYXVubywgMjQuIEFwciAxOTk2LCAxNTozMDozMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODMwMzQyNjU0Cn4jISB0aWQ9ODI5OTg1OTY1CgpTYWcgaWNoIGRvY2gsIGRlciBUZXh0IHdhciB6dSBsYW5nIC4uLiA6LSkKCgkJCQkJQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhhcmhhciAoR2FuZG8sIDI0LiBBcHIgMTk5NiwgMTU6MzQ6MjIpOgprb21tdCBlaW4gQ293Ym95IGluIGVpbmVuIFNhbG9vbiB1bmQgc2FndDoKZWluIEVpbWVyIFdoaXNreSBmdWVyIG1laW4gUGZlcmQgIQpEZXIgV2lydDogVW5kIGR1PyB0cmlua3N0IGR1IG5peD8KTWVpbnN0IGRlciBDb3dib3k6IG5laW4gbmVpbi4uIGljaCBtdXNzIG5vY2ggUmVpdGVuCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmV1bGljaCBhdWYgZGVyIEJhbmsuLi4gKEphcmllbCwgMjQuIEFwciAxOTk2LCAxNjoxNDoxMik6Cn4jISBybj1DYXVubyBydD04MzAzMzkyMjQKfiMhIHRpZD04Mjk5ODU5NjUKSWNoIGRlbmtlLCBkYSBoYXN0IER1IHJlY2h0Li4uLgoKKG9kZXIgbGFnIGluIGRlbSBXaXR6IGF1Y2ggZWluZSBuZWdhdGl2ZSBQb2llbnRlIHZvcj8gLSB3ZXIgd2Vpc3MgLCB3ZXIgd2Vpc3MKCkphcmllbCBUb25hY2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpsdXN0aWc/IChKYXJpZWwsIDI0LiBBcHIgMTk5NiwgMTY6MTk6MTQpOgoKSmFyaWVsIGtpY2hlcnQgaW1tZXJub2NoIHVlYmVyIGRlbiBCYW5rLVdpdHouLi5iencuIGRpZSBSZWFrdGlvbmVuIGRhcmF1Zi4KCkFiZXIgbmljaHRzIGRlc3RvIHRyb3R6IGVpbiBrbGVpbmVyIEVpbnplaWxlci4KCkhhdCBkaWUgTWlsa2EtS3VoIGF1Y2ggQlNFPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOi0pIChHYW5kbywgMjUuIEFwciAxOTk2LCAxMDoyMDowOCk6CkVpbiBJbmZvcm1hdGlrZXIgc2NocmVpYnQgaW4gMiBTdHVuZGVuIDEgUHJvZ3JhbW0uCldpZXZpZWwgUHJvZ2FybW1lIHNjaHJlaWJlbiBkYW5uIDIgSW5mb3JtYXRpa2VyIHp3aXNjaGVuIDE1IHVuZCAxNiBVaHIgPz8/CgotPiBLZWluZXMuLiBEYSBsYWV1ZnQgU3RhclRyZWsgLi4gOi0pClJEUkwKUkRSTApSRFJMCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aW45NSAoSmVob3ZhLCAyNy4gQXByIDE5OTYsIDAxOjQ3OjUxKToKCmdyaW5zZQpXYXJ1bSBoZWlzc3QgV2luZG93cyBudW4gV2luZG93czk1ID8KV2VpbCA5NSUgZGVyIEJlbnV0emVyIG5ldWUgSGFyZHdhcmUgdW5kIGFuZGVyZSA5NSUgbmV1ZSBTb2Z0d2FyZSBicmF1Y2hlbi4gOikKCldpZXZpZWxlIE1pY3Jvc29mdC1Qcm9ncmFtbWllcmVyIGJyYXVjaHQgbWFuLCB1bSBlaW5lIEdsdWVobGFtcGUKYXVzenV3ZWNoc2VsbiA/CktlaW5lbiAtIFNpZSBlcmtsYWVyZW4gRHVua2VsaGVpdCBlaW5mYWNoIGFscyBuZXVlbiBTdGFuZGFyZC4gOikKCkplaG92YSAoa251ZGRlbHQgc2VpbmVuIEFtaWdhKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHdpbjk1IChadWVyaWxldSwgMjcuIEFwciAxOTk2LCAwNjoxNToxMSk6Cn4jISBybj1KZWhvdmEgcnQ9ODMwNTYyNDcxCn4jISB0aWQ9ODMwNTYyNDcxCgoKCgogIExpZWd0IGVpbiB2ZXJzdGF1YnRlciBBbWlnYSBpbSBLZWxsZXIsIHdhciBlaW4gUEMgd2llZGVyIHNjaG5lbGxlciAhCgoKCgoKdHNjaHVlc3MgWnVlcmlsZXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IDotKSAoVGFzaGEsIDI3LiBBcHIgMTk5NiwgMjE6MTU6MTkpOgp+IyEgcm49UHVncyBydD04MzA0MzQ2NzAKfiMhIHRpZD04MzA0MjA0MDgKQWNoIEtpbmRlciwgendpc2NoZW4gTWl0dGUgZGVyIHp3ZWl0ZW4gdW5kIEFuZmFuZyBkZXIgNnRlbiBTZWFzb24gbXVzcyBtYW4KVE5HIGRvY2ggZWggbmljaHQgZ3Vja2VuLiBJc3QgZWluZmFjaCBudXIgdWViZWwgdW5kIGljaCBiaW4gYXVjaCBzaGNvbiB0b3QuCkFsc28gc29sbHRlbiBJbmZvcm1hdGlrZXIgbm9jaCBlaW4gcGFhciBXb2NoZW4gWmVpdCBoYWJlbiwgendpc2NoZW4gMTUgdW5kIDE2ClVociB6dSBwcm9nZ2VuLgoKVGFzaGEKClAuUy46IEpldHp0IGZyYWd0IGFiZXIgYml0dGUga2VpbmVyIG5hY2gsIHdhcnVtIG1laW5lIFJhZXVtZSBub2NoIG5pY2h0CmZlcnRpZyBzaW5kLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWxlZmFudGVuamFnZCAoQ2F1bm8sIDI3LiBBcHIgMTk5NiwgMjI6MTI6MDcpOgoKNDAwMCBBbWVpc2VuIGJlc2NobGllc3NlbiwgZWluZW4gRWxlZmFudGVuIHp1IGphZ2VuLgpTaWUgc3R1ZXJ6ZW4gc2ljaCBhbGxlIHp1c2FtbWVuIGF1ZiBkZW4gUnVlY2tlbiBkZXMgbmFlY2hzdGVuLCBkZXIKdm9yYmVpa29tbXQuCkRlciBFbGVmYW50IHNjaHVldHRlbHQgc2ljaC4gWndlaXRhdXNlbmQgQW1laXNlbiBmYWxsZW4gaGVyYWIuCkRlciBFbGVmYW50IHNjaHVldHRlbCBzaWNoIHdpZWRlci4KRWludGF1c2VuZG5ldW5odW5kZXJ0bmV1bnVuZG5ldW56aWcgQW1laXNlbiBmYWxsZW4gaGVyYWIuClJ1ZmVuIGRyZWl0YXVzZW5kbmV1bmh1bmRlcnRuZXVudW5kbmV1bnppZyBBbWVpc2VuIGltIENob3I6CiJMb3MsIEVyd2luLCB3dWVyZyBpaG4hIgoKCQkJCQlDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVsZWZhbnRlbmphZ2QgKENhcmFkaHJhcywgMjcuIEFwciAxOTk2LCAyMjoxOToxMik6Cn4jISBybj1DYXVubyBydD04MzA2MzU5MjcKfiMhIHRpZD04MzA2MzU5MjcKVW5kIHdlaWwgd2lyIHNjaG9uIGJlaSBzb29vb29vb28gYWx0ZW4gV2l0emVuIG1pdCBzb29vb29vb28KZWluZW0gbGFuZ2VuIEJhcnQgc2luZDoKCktvbW10IGVpbiBFbGVmYW50IGluIGRpZSBIZXJyZW5zYXVuYS4KU2NoYXV0IHNpY2ggdW0gdW5kIGtyaW5nZWx0IHNpY2ggdm9yIExhY2hlbi4KUHJ1c3RlbmQgdW5kIGphcHNlbmQgbWVpbnQgZXIgbWl0IGVyc3RpY2t0ZXIgU3RpbW1lOgonVW5kIGRhbWl0IHdvbGx0IGlociBlc3Nlbj8nCgogICAgICAgICAgQ2FyYWRocmFzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWxkIChPcmt0b2V0ZXIsIDI3LiBBcHIgMTk5NiwgMjI6MjI6NDQpOgpFbnRzY2h1bGRpZ2VuIHNpZSBiaXR0ZSwgZGFzIGRhcyBHZWxkIHNvIGZldWNodCBpc3QsIHNhZ3QgZGllIEZyYXUgaW0gbm9ibGVuCkp1d2VsaWVyZ2VzY2hhZWZ0LCBhYmVyIG1laW4gTWFubiBoYXQgZ2V3ZWludCwgYWxzIGVyIGVzIG1pciBnYWIuLi4uCk9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzY2h3YXJ6ZXIgSHVtb3IgKEZldWVyd2VociwgMjguIEFwciAxOTk2LCAyMjowODozNyk6CkFlaCwgdmllbGxlaWNodCBzb2xsdGUgZGVuIG5pY2h0IGplZGVyIGxlc2VuLi4uLgoKQWxzbywgendlaSBad2lsbGluZ2UgZmVpZXJuIFdoZWluYWNodGVuLgpFaW5lciBiZWtvbW10IGVpbmUgQ2FycmVyYS1CYWhuLCBTdXBlci1OZXMgdW5kIEZpc2NoZXItVGVjaG5paywgd2FlaHJlbmQgZGVyCmFuZGVyZSBudXIgZWluIGtsZWluZXMKTWF0Y2hib3gtQXV0byBpbiBaZWl0dW5nc3BhcGllciBlaW5nZXdpY2tlbHQgYmVrb21tdC4KWnVtIGVzc2VuIGJla29tbXQgZGVyIGVpbmUgUm91bGFkZW4sIFBvbW1lcywgU3RlYWsgdW5kIG1laHIsIHdhZWhyZW5kIGRlcgphbmRlcmUKbnVyIGVpbiBCcm90IG1pdCBCdXR0ZXIgYmVrb21tdC4KU2NobGllc3NsaWNoIGxpZWdlbiBkaWUgYmVpZGVuIGltIEJldHQsIGRlciBlaW5lIGltIEhpbW1lbGJldHQgbWl0IEhpLVRlY2gKTW9iaWxlZSB1bmQgU3RlcmVvIGFubGFnZSB1bmQgZGVyIGFuZGVyZSBpbSBCZXR0a2FzdGVuLCBkYSBmcmFnZXJhZ3QgZGVyIGVpbmUKIGRlbiBhbmRlcm4gOgogIFNhZyBtYWwsIGthbm4gZGFzIHNlaW4sIGRhc3MgdW5zZXJlIEVsdGVybiBtaWNoIHZ2aWVsIGxpZWJlciBtb2VnZW4gYWxzCmRpY2g/ClNhZ3QgZGVyIGFuZGVyZSBTYWcgbWFsLCBrYW5uIGRhcyBzZWluIGRhcyBkdSBLcmVicyBoYXN0PwoKClRqYSwgYWVoLCA6KSA/Pz8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHdpbjk1IChKZWhvdmEsIDI5LiBBcHIgMTk5NiwgMTI6NDg6MjUpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODMwNTc4NTExCn4jISB0aWQ9ODMwNTYyNDcxCgpBcmdsLiBEYXMgaXN0IGhhcnQgOikKCkRFVklDRUhJR0g9QzpcRE9TXENBVC5TWVMKLi4uZGVyIHNjaG5lbGxzdGUgTWF1c3RyZWliZXIgZGVyIFdlbHQhCgpTY290dCBNY05lZWRsZSAoU3VuLUNoZWYpOgpJY2ggd3VlcmRlIG1laW5lbiBLaW5kZXJuIGxpZWJlciBEcm9nZW4gZ2ViZW4gYWxzIERPUy4uLgoKS2xhZ3QgQmlsbCBHYXRlcyBiZWltIFBzeWNoaWF0ZXI6ICJMYW5nc2FtLCBEb2MsIGJla29tbWUgaWNoIFBhcmFub2lhLgpJY2ggZ2xhdWJlIGFsbGUgTWVuc2NoZW4gaGFzc2VuIG1pY2guIgoiRGFzIGthbm4gbmljaHQgc2VpbiBCaWxsLiBFcyBrYW5uIHNpZSBqYSBuaWNodCBqZWRlciBrZW5uZW4uLi4iCgpKZWhvdmEgKHd1ZXJkZSBzaWNoIGZyZWl3aWxsaWcgbmllIGVpbmVuIFBDIGthdWZlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJTRSAoQXp6dXJvLCAyOS4gQXByIDE5OTYsIDE1OjUzOjMwKToKCgpXYXJ1bSBrb2VubmVuIE1hZW5uZXIga2VpbiBCU0UgYmVrb21tZW4/CgoKCgoKCgoKCih3ZWlsIHNpZSBhbGxlIFNjaHdlaW5lIHNpbmQhKQoKRGVyIGVyc3RlIGd1dGUgTWFlbm5lcmZlaW5kbGljaGUgV2l0eiBkZW4gaWNoIGtlbm5lLiAgICBBenp1cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJTRSBJSSAoQXp6dXJvLCAyOS4gQXByIDE5OTYsIDE1OjU1OjQ0KToKVW5kIHdvZHJhbiBlcmtlbm50IG1hbiwgZGFzIGRvY2ggZWluZXIgQlNFIGhhdD8KCgoKCgoKCih3ZW5uIGVyIGRpZSBGbGllZ2VuIG1pdCBkZW0gU2Nod2FueiB2ZXJqYWdkdCkKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdWVuIChQcmVkYXRvciwgMjkuIEFwciAxOTk2LCAxNTo1NTo1Myk6ClVudGVyaGFsdGVuIHNpY2ggMiBNYWVubmVyLiBTYWd0IGRlciBlcnN0ZToiRHUsIGdlc3Rlcm4gc3RhbmQgbWVpbmUgRnJhdSBpbgpkZXIgWmVpdHVuZy4iIC0gIldpZXNvIGRlbm4gZGFzPyIgLSAiTmEgZGEgc3RhbmQsIGVzIGdpYnQgNSUgenV2aWVsIEZyYXVlbiBhdWYKZGVyIFdlbHQuIgoKClByZWRhdG9yIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcmlhdGhsb24gKEF6enVybywgMjkuIEFwciAxOTk2LCAxNTo1NzozOSk6CgpXZXIgaGF0IGRlbiBUcmlhdGhsb24gZXJmdW5kZW4/CgoKCgoKCgoKRGllIFBvbGVuISBadSBGdXNzIHp1bSBTY2h3aW1tYmFkIHVuZCBtaXQgZGVtIEZhaHJyYWQgenVydWVjayEKCk5laW4gd2lyIHNpbmQgbmljaHQgcmFzc2lzdGlzY2ggOykKQXp6dXJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgQWx0ZXIuLi4gKFByZWRhdG9yLCAyOS4gQXByIDE5OTYsIDE1OjU4OjIxKToKVW50ZXJoYWx0ZW4gc2ljaCAyIGFsdGUgTWFlbm5lci4gRnJhZ3QgZGVyIGVpbmUgZGVuIGFuZGVyZW46IldpZSBvZnQgc2NoYWZmc3QKZHUgZXMgZGVubiBub2NoIHNvPyIgLSAiMiBtYWwuIiAtICJTdGFyay4gVW5kIHdlbGNoZXMgaXN0IGRhcyBiZXNzZXJlIE1hbD8iIC0KIkRhcyBpbSBTb21tZXIuIgoKCk5hamEsIG5pY2h0IHNvIHRvbGwKUHJlZGF0b3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggZWluZXIuLi4gKFByZWRhdG9yLCAyOS4gQXByIDE5OTYsIDE2OjAxOjA0KToKU3RyZWl0ZW4gc2ljaCAyIEtpbmRlcjoiTWVpbiBWYXRlciBpc3QgYmVzc2VyIGFscyBkZWluZXIhIiAtICJOZWluLCBtZWluClZhdGVyIGlzdCBiZXNzZXIgYWxzIGRlaW5lciEiIC0gIk1laW4gQnJ1ZGVyIGlzdCBiZXNzZXIgYWxzIGRlaW5lciEiIC0gIk1laW4KQnJ1ZGVyIGlzdCBiZXNzZXIgYWxzIGRlaW5lciEiIC0gIk1laW5lciBNdXR0ZXIgaXN0IGJlc3NlciBhbHMgZGVpbmUhIiAtClBsb2V0emxpY2ggd2lyZCBkZXIgMi4gSnVuZ2UgZ2FueiBrbGVpbmxhdXQgdW5kIHNhZ3Q6IkhtbW1tLCBkYXMgc2FndCBtZWluClZhdGVyIGF1Y2guIgoKUHJlZGF0b3IsIGhldXRlIG1hbCBha3RpdiBiZWltIHNjaHJlaWJlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRyaWF0aGxvbiAoQ2FyYWRocmFzLCAyOS4gQXByIDE5OTYsIDE2OjA3OjU1KToKfiMhIHJuPUF6enVybyBydD04MzA3ODYyNTkKfiMhIHRpZD04MzA3ODYyNTkKR2FueiBzY2hsZWNodCwgQXp6dXJvLCBUcmlhdGhsb24gZ2VodCB6dWVyc3QgYmFkZW4sIGRhbm4gRmFocnJhZApmYWhyZW4gdW5kIGRhbm4gbGF1ZmVuLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJTRSAoQmVlbHplYnViLCAyOS4gQXByIDE5OTYsIDE2OjM1OjQ0KToKfiMhIHJuPUF6enVybyBydD04MzA3ODYwMTAKfiMhIHRpZD04MzA3ODYwMTAKT2NoLCBkYSBnaWJ0J3Mgbm9jaCBtZWhyIGd1dGUuLi4gRGVuIHp1bSBCZWlzcGllbDoKCldhcnVtIGhhYmVuIG1hbmNoZSBGcmF1ZW4gYmxhdWUgRmxlY2tlIGFtIEJhdWNobmFiZWwgPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpFcyBnaWJ0IGF1Y2ggYmxvbmRlIE1hZW5uZXIuCgpEZXIgRGVpZmkgKGlzdCBuaWNodCBibG9uZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUcmlhdGhsb24gKEplaG92YSwgMzAuIEFwciAxOTk2LCAxNDoxNzo1MCk6Cn4jISBybj1Benp1cm8gcnQ9ODMwNzg2MjU5Cn4jISB0aWQ9ODMwNzg2MjU5Cmtlbm4nIGljaCwgZGFzIGhlaXNzdCBhdWNoICdQb2wobCllbmFsbGVyZ2llJyA6KQoKSmVob3ZhICh3aXR6aWcgd2llIG5vY2ggbmllKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWmVpdHVuZ2VuIChDYXVubywgIDIuIE1haSAxOTk2LCAxMjo1Mzo1NCk6CgpXaWUgYmVrb21tdCBhbSBlaW5mYWNoc3RlbiBlaW5lIFplaXR1bmdzZW50ZSBnbGVpY2h6ZWl0aWcgaW4gendlaQp2aWVsZ2VsZXNlbmUgQmxhZXR0ZXI/CgoKCk1hbiBzY2hpY2t0IHNpZSBhbiBkaWUgQklMRC4KRGFubiBzdGVodCBzaWUgYW0gZ2xlaWNoZW4gVGFnIGF1Y2ggaW4gZGVyIEVYUFJFU1MuCgoJCQkJCQlDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIGJpc3NjaGVuIG1ha2FiZXIgdmllbGxlaWNodC4uLiAoTG9jbywgIDYuIE1haSAxOTk2LCAxODo0Nzo1NSk6CiJWb3IgZWluaWdlbiBTdHVuZGVuIGlzdCBhdWYgZGVtIEZyaWVkaG9mIGVpbiBlaW5tb3RvcmlnZXMgU3BvcnRmbHVnemV1ZwphYmdlc3R1ZXJ6dC4KV2llIGRpZSBQb2xpemVpIG1pdHRlaWx0ZSwgd3VyZGVuIGJpc2hlciAyNTAgTGVpY2hlbiBnZWJvcmdlbi4iCgpEaXNjbGFpbWVyOiBEaWVzZSBNZWxkdW5nIGlzdCBlcmZ1bmRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNFSFIgbWFrYWJlciAgKFByZWRhdG9yLCAgNi4gTWFpIDE5OTYsIDIwOjExOjQxKToKQWxzbywgaWNoIGRpc3RhbnppZXJlIG1pY2ggendhciB2b24gZGllc2VtIHdpdHosIGFiZXIgc2NocmVpYmVuIHdlcmQgaWNoIGlobgp0cm90emRlbQoKIldhcyBpc3Qga2FsdCB1bmQgc3ByaW5ndCBuaWNodCBtZWhyPyIKCgoKCgoKCgoKCkFudHdvcnQ6ICJIYW5zIFJvc2VudGhhbCIKCm5hamEsIHZpZWxsZWljaHQgYXVjaCBzY2hvbiBlaW4gYmlzc2NoZW4gYWx0ClByZWQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQb2xpemVpIChadWVyaWxldSwgIDYuIE1haSAxOTk2LCAyMjowODoyMik6CkhhbGxvLAoKCgoKCgoKICAgICAgICBCaXN0IER1IGJsb2VkIHVuZCBlaW4gc2FkaXN0LCB3ZXJkZSBadWVyY2hlciAtIFN0YWR0cG9saXppc3QgIQoKVHNjaHVlc3MgWnVlcmlsZXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJhdWNoZXIgKFp1ZXJpbGV1LCAgNi4gTWFpIDE5OTYsIDIyOjExOjEyKToKSGFsbG8sCgoKCgoKCiAgTHVlZ2VuIGhhYmVuIGt1cnplIEJlaW5lLCBSYXVjaGVyIG1hbmNobWFsIGF1Y2ggdW5kIG1hbmNobWFsIGF1Y2gga2VpbmUgIQoKClRzY2h1ZXNzIHp1ZXJpbGV1ID06KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFrYWJlcj8gKENhdW5vLCAgNy4gTWFpIDE5OTYsIDEyOjI5OjU3KToKCkVpbiBNYW50YWZhaHJlciBicmluZ3Qgc2VpbmVuIFdhZ2VuIGluIGRpZSBXZXJrc3RhdHQuIERlciBNZWNoYW5pa2VyIHNpZWh0CnNpY2ggZGllIEtpc3RlIGFuIHVuZCBtZWludDogIldhcyBoYWJlbiBzaWUgZGFtaXQgZGVubiBnZW1hY2h0PyBEaWUgU3Rvc3MtCmRhZW1wZmVyIHNpbmQgamEgdm9lbGxpZyBoaW51ZWJlciEiCkRlciBGYWhyZXIgbWVpbnQ6ICJKYSwgYWxzbywgaWNoIGhhYmUgZGEgZWluZW4gdWViZXJmYWhyZW4gLi4uIgpEZXIgTWVjaGFuaWtlciBzdHV0enQsIG1laW50IGRhbm4gYWJlcjogIlVuZCBkYW5uIHNpbmQgZ2xlaWNoIGFsbGUgdmllcgpTdG9zc2RhZW1wZmVyIGhpbnVlYmVyPyIKU2FndCBkZXIgRmFocmVyOiAiSmEsIHdlbm4gZGVyIGRvY2ggdWViZXIncyBGZWxkIGxhZXVmdCAuLi4hIgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWthYmVyPyAoQ2F1bm8sICA3LiBNYWkgMTk5NiwgMTI6MzU6NDgpOgp+IyEgcm49Q2F1bm8gcnQ9ODMxNDY0OTk3Cn4jISB0aWQ9ODMxNDY0OTk3CgpFaW4gQXV0b2ZhaHJlciB3aXJkIGF1ZiBkZXIgQXV0b2JhaG4gdm9uIGVpbmVtIE1hbnRhIG1pdCBjYS4gendlaWh1bmRlcnQKcGx1c21pbnVzIGZ1ZW5memlnIFNhY2hlbiB1ZWJlcmhvbHQuCk5hY2ggZWluZXIgdmllcnRlbHN0dW5kZSBzaWVodCBkZXIgRmFocmVyIGRlbiBnbGVpY2hlbiBXYWdlbiBhdWYgZGVtIFNlaXRlbi0Kc3RyZWlmZW4gYXVzcm9sbGVuLgpEZXIgRmFocmVyIHd1bmRlcnQgc2ljaCwgaGFlbHQgYW4gdW5kIHN0ZWlndCBhdXMuIFdpZSBlciBzaWNoIGRlbSBXYWdlbgpuYWVoZXJ0LCBzdGVsbHQgZXIgZmVzdCwgZGFzIHNpY2ggaW4gZGVyIFdpbmRzY2h1dHpzY2hlaWJlIGVpbiBncm9zc2VzCkxvY2ggYmVmaW5kZXQuIERlciBNYW50YWZhaHJlciBsaWVndCBhdXNnZXN0cmVja3QgYXVmIGRlbSBGYWhyZXJzaXR6IC0gdG90LgpXaWUgZGVyIGFuZGVyZSBub2NoIGV0d2FzIG5hZWhlciB0cml0dCwgaG9lcnQgZXIgcGxvZXR6bGljaCBhdXMgZGVtIEdlYnVlc2NoOgpSSUNLLVJBQ0sgLi4uICJFeWgsIE1hbm4sIHdlbm4gRHUgRXJzYXR6dGVpbGUgYnJhdWNoc3QsIHNjaGllc3MgRGlyIHNlbGJzdAplaW5lbiEiCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhZ3Qgbm9jaCBtYWwsIEV1cmUgV2l0emUgd2FlcmVuIG1ha2FiZXIKLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlcnZpY2UsIFZPQklTdCBEdSwgRVNDT01tdCBrZWluZXI/IChSb2NodXMsICA3LiBNYWkgMTk5NiwgMTk6MDc6MzYpOgpGcm9tOiBqb2tlckBvc24uZGUgKERpZXR6IFByb2VwcGVyKQpOZXdzZ3JvdXBzOiBkZS5jb21tLmdhdGV3YXlzLGRlLmNvbW0uaW50ZXJuZXQubWlzYwoKQlRXOiBWb3IgY2EuIDggSmFocmVuIGJldHJhdCBpY2ggZGllIE51ZXJuYmVyZ2VyIEZpbGlhbGUgZGVzCnYqLUtvbnplcm5zIGluIGRlciBTdWNoZSBuYWNoIGVpbmVtIG5ldWVuIE1vbml0b3IuIERpZSBNb25pdG9yZQp3YXJlbiBzY2hlaSoqKiwgYWJlciBpY2ggd3VyZGUgWmV1Z2UgZGVzIGZvbGdlbmRlbiBHZXNwcmFlY2hzOgoobmljaHQgd29lcnRsaWNoLi4pCkt1bmRlKEspOiAnQmVpbSBIb2NoZmFyZW4gc2FndCBlciBpbW1lciBrZXlib2FyZCBub3QgZm91bmQnClZlcmthZXVmZXIgKFYpOiAnRGFzIGlzdCB3ZWdlbiBkZXMgQ29weXJpZ2h0cycKSzogJ1dlbGNoZXMgQ29weXJpZ2h0JwpWOiA8c3R1dHo+PHVlYmVybGVnPidkYXMgdm9uIE1TLURPUywgd2VpbCBkaWUgVGFzdGF0dXIgdm9uIENoZXJyeQppc3QsJyAob2RlciBzbyBhZWhubGljaCkKSzogJ0FiZXIgV2FydW0uLi4uJwpWOiAnRGFzIGlzdCBzY2hvbiBpbiBPcmRudW5nLCBkYSBrYW5uIG1hbiBuaWNodHMgbWFjaGVuJwpLOiA8aW4gc2ljaCB6dXNhbW1lbnNpbms+CgpFdHdhIHp1IGRpZXNlbSBaZWl0cHVua3QgaGFiZSBpY2ggbWljaCBlaW5nZXNjaGFsdGV0LCB1bmQgSyBkYXp1CmdlcmF0ZW4gYXVmIGVpbmVuIFVtdGF1c2NoIHp1IGJlc3RlaGVuLCBkYSBkaWVzZXIgRmVobGVyIGtlaW5lc2ZhbGxzCmVpbiBmZWF0dXJlIHNvbmRlcm4gbWl0IFNpY2hlcmhlaXQgZWluIGJ1ZyBzZWkgdXN3LgpGYXppdDogViBydWVja3RlIG5hY2ggZXR3YSBkcmVpIE1pbnV0ZW4gZWluZSBuZXVlIFplbnRyYWxlaW5oZWl0CmhlcmF1cywgdW5kIG1pciB3dXJkZSAobmFjaGRlbSBLIGRlbiBMYWRlbiB2ZXJsYXNzZW4gaGF0dGUpIHZvbiBlaW5lbQpHZWNrZW4gaW4gQW56dWcgZWluIEhhdXN2ZXJib3QgYXVzZ2VzcHJvY2hlbiA6LSkpKSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aXR6IChKb3JpbmRlLCAgOS4gTWFpIDE5OTYsIDEyOjIyOjIxKToKV2FydW0gbGFldWZ0IGVpbmUgQkxvbmRpbmUgYmVpbSBEdXNjaGVuIGltbWVyIGhpbiB1bmQgaGVyPz8/CgoKCgoKCgoKCgoKCldlaWwgYXVmIGRlbSBTaGFtcG9vIHN0ZWh0IDogV0FTSCBBTkQgR08gOykKCm5hamEgc29sbHRlIHdpdHppZyBzZWluCgpKb3JpbmRlIGlzIG5pY2ggYmxvbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1cGVyLURBVSAoUm9jaHVzLCAgOS4gTWFpIDE5OTYsIDE2OjM4OjI0KToKQ1VTVE9NRVI6IFdoZXJlIGNhbiBJIGdldCBhIEJJT1MgdXBncmFkZSBmb3IgYnkgMjg2CmNvbXB1dGVyPwoKVEVDSDogVGhlIHVuaXQgc2hvdWxkIGhhdmUgYmVlbiBzaGlwcGVkIHdpdGggdGhlCmxhdGVzdCBiaW9zLgoKQ1VTVE9NRVI6IFdlbGwgSSB1cGdyYWRlZCB0aGUgcHJvY2Vzc29yIG15c2VsZiwgYW5kCm15IGNvbXB1dGVyIGRvZXNuJ3Qgc2VlbSB0byB3b3JrLgoKVEVDSDogV2hhdCBkaWQgeW91IHVwZ3JhZGUgdGhlIHByb2Nlc3NvciB0bz8KCkNVU1RPTUVSOiBJIHVwZ3JhZGVkIGl0IHRvIGEgNDg2RFgtNTAuCgpURUNIOiBTaXIuLi4gVGhlIDI4NiBjaGlwIGlzIHNvbGRlcmVkIG9uIHRoZQptb3RoZXJib2FyZCEKCkNVU1RPTUVSOiBJIGtub3csIEkgdG9vayBvdXQgbXkgaGFuZHkgc29sZGVyaW5nIGlyb24KYW5kIHRvb2sgaXQgb3V0IGFuZCBwdXQgdGhlIDQ4NiBvbiBteXNlbGYuCgpURUNIOiBTaXIsIHRoZSA0ODYgaXMgYmlnZ2VyIHRoYW4gdGhlIDI4Ni4KCkNVU1RPTUVSOiBJIGtub3csIEkgaGFkIHRvIHVzZSBxdWl0ZSBhIGJpdCBvZiBzb2xkZXIKdG8gc29sZGVyIHRoZSBleHRyYSBwaW5zIHRvZ2V0aGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmV1bGljaCAoSmFzcGVyLCAgOS4gTWFpIDE5OTYsIDIzOjMyOjQzKToKLAosCiwKRHUgdGVpbHN0IFN1c2hpIG1pdDoga2FubnN0IGphIG1pdG1hY2hlbiwgbXVzc3QgZGFubiBudXIgbWFnaWVyIGluIHZsYW5kCkR1IHRlaWxzdCBTdXNoaSBtaXQ6IHdlcmRlbiA6KQoKU3VzaGkgdGVpbHQgRGlyIG1pdDogSWNoIGhhYmUga2VpbmUgemVpdCwgdW5kIGJldm9yIGljaCB1bnRlciBNb3Jnb3RoIGFyYmVpdGUsClN1c2hpIHRlaWx0IERpciBtaXQ6IGluc3RhbGxpZXJlIGljaGxpZWJlciBXaW5kb3dzIDIuMCBhdWYgbWVpbmVtIFJlY2hlbnIuCgoKSG1tbSBNb3Jnb3RocyBTbGF2ZW50cmVpYmVycGVpdHNjaGUgc2NoZWludCBzaWNoIHJ1bWdlc3Byb2NoZW4genUgaGFiZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbmV1bGljaCAoU3VzaGksICA5LiBNYWkgMTk5NiwgMjM6MzY6MzEpOgp+IyEgcm49SmFzcGVyIHJ0PTgzMTY3NzU2Mwp+IyEgdGlkPTgzMTY3NzU2MwpTdGF0dCBjdXQgJiBwYXN0ZSB3YWVyZSB3b2hsIGN1dCAmIHNwZWxsLWNoZWNrICYgcGFzdGUgYW5nZWJyYWNodCBnZXdlc2VuLi4uCgoqZmx1Y2gqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbmV1bGljaCAoQ2F1bm8sIDEzLiBNYWkgMTk5NiwgMTI6MDQ6NDApOgp+IyEgcm49SmFzcGVyIHJ0PTgzMTY3NzU2Mwp+IyEgdGlkPTgzMTY3NzU2MwoKV2FydW0gbmljaHQgZ2xlaWNoIFNpbm5sb3MgOTU/CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdm9yc2ljaHQgLSBkZXIgaXN0IGhhcnQgKE11cGZlbCwgMjAuIE1haSAxOTk2LCAyMDo0MDoxNik6CldhcyBpc3QgZGFzOgoKRWluIHBhYXIgQnJldHRlciwgZWluZSBMZWljaGUgdW5kIGVpbiBwYWFyIE5hZWdlbD8KCgoKQW50d29ydDogRWluIEplc3VzIC0gQmF1a2FzdGVuLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6dCAoR3JpbW1ib3JuLCAyOC4gTWFpIDE5OTYsIDEyOjM4OjQwKToKW1ZlcmxlZ3Qgdm9uIGFsbGdlbWVpbmVzLCBRaXRlc3MsIDI3LiBNYWkgMTk5NiwgMjA6MzY6MDhdOgphbHNvLCBpY2ggbW9lY2h0ZSBudXIgbWFsIGVpbmVuIGtsZWluZW4gd2l0eiBlcnphZWhsZW4gOiBkaWUgenQtbGlzdGUgLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlciAoTXVwZmVsLCAzMS4gTWFpIDE5OTYsIDAyOjIzOjMwKToKV2FzIGtlbm56ZWljaG5ldCBlaW5lbiBndXRlbiBNYXRoZW1hdGlrZXI/Pz8/Pz8/Pz8/PwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKRXIgemllaHQgamVkZW4gTW9yZ2VuIHNlaW5lIFd1cnplbCBhdXMgZWluZXIgbmV1ZW4gVW5iZWthbm50ZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpnaXRhcnJlIChIb3JzY2hkLCAzMS4gTWFpIDE5OTYsIDA5OjAzOjE0KToKV2FzIHNwYW5udCBlaW4gQ2hpbmVzZSBhdWYgc2VpbmUgR2l0YXJyZT8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRpZSBHZWxiZW4gU2FpdGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVydWVobXRlIElycnR1ZW1lciAoTGksIDMxLiBNYWkgMTk5NiwgMTE6MzU6NTQpOgpEaWVzZSBMaXN0ZSBtaXQgWml0YXRlbiBzcHJpY2h0IGVpZ2VudGxpY2ggZnVlciBzaWNoLi4uCgpBY2ggamEsIGxlc3QgZGVuIFRleHQgbGllYmVyIGdhbnogZHVyY2gsIGVpbnMgZGVyIGJlc3RlbiBaaXRhdGUgc3RlaHQgYW0KU0NobHVzcy4KCiJDb21wdXRlcnMgaW4gdGhlIGZ1dHVyZSBtYXkgd2VpZ2ggbm8gbW9yZSB0aGFuIDEuNSB0b25zLiIgUG9wdWxhcgpNZWNoYW5pY3MsIGZvcmVjYXN0aW5nIHRoZSByZWxlbnRsZXNzIG1hcmNoIG9mIHNjaWVuY2UsIDE5NDkuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIkkgaGF2ZSB0cmF2ZWxlZCB0aGUgbGVuZ3RoIGFuZCBicmVhZHRoIG9mIHRoaXMgY291bnRyeSBhbmQgdGFsa2VkIHdpdGggdGhlCmJlc3QgcGVvcGxlLCBhbmQgSSBjYW4gYXNzdXJlIHlvdSB0aGF0IGRhdGEgcHJvY2Vzc2luZyBpcyBhIGZhZCB0aGF0IHdvbid0Cmxhc3Qgb3V0IHRoZSB5ZWFyLiIgVGhlIGVkaXRvciBpbiBjaGFyZ2Ugb2YgYnVzaW5lc3MgYm9va3MgZm9yIFByZW50aWNlCkhhbGwsIDE5NTcuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIkJ1dCB3aGF0IC4uLiBpcyBpdCBnb29kIGZvcj8iIEVuZ2luZWVyIGF0IHRoZSBBZHZhbmNlZCBDb21wdXRpbmcgU3lzdGVtcwpEaXZpc2lvbiBvZiBJQk0gMTk2OCwgY29tbWVudGluZyBvbiB0aGUgbWljcm9jaGlwLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJUaGVyZSBpcyBubyByZWFzb24gYW55b25lIHdvdWxkIHdhbnQgYSBjb21wdXRlciBpbiB0aGVpciBob21lLiIgS2VuIE9sc29uLApwcmVzaWRlbnQsIGNoYWlybWFuIGFuZCBmb3VuZGVyIG9mIERpZ2l0YWwgRXF1aXBtZW50IENvcnAuLCAxOTc3LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgJ3RlbGVwaG9uZScgaGFzIHRvbyBtYW55IHNob3J0Y29taW5ncyB0byBiZSBzZXJpb3VzbHkgY29uc2lkZXJlZCBhcyBhCm1lYW5zIG9mIGNvbW11bmljYXRpb24uIFRoZSBkZXZpY2UgaXMgaW5oZXJlbnRseSBvZiBubyB2YWx1ZSB0byB1cy4iIFdlc3Rlcm4KVW5pb24gaW50ZXJuYWwgbWVtbywgMTg3Ni4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiVGhlIHdpcmVsZXNzIG11c2ljIGJveCBoYXMgbm8gaW1hZ2luYWJsZSBjb21tZXJjaWFsIHZhbHVlLiBXaG8gd291bGQgcGF5CmZvciBhIG1lc3NhZ2Ugc2VudCB0byBub2JvZHkgaW4gcGFydGljdWxhcj8iIERhdmlkIFNhcm5vZmYncyBhc3NvY2lhdGVzIGluCnJlc3BvbnNlIHRvIGhpcyB1cmdpbmdzIGZvciBpbnZlc3RtZW50IGluIHRoZSByYWRpbyBpbiB0aGUgMTkyMHMuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIlRoZSBjb25jZXB0IGlzIGludGVyZXN0aW5nIGFuZCB3ZWxsLWZvcm1lZCwgYnV0IGluIG9yZGVyIHRvIGVhcm4gYmV0dGVyCnRoYW4gYSAiQywiIHRoZSBpZGVhIG11c3QgYmUgZmVhc2libGUuIiBBIFlhbGUgVW5pdmVyc2l0eSBtYW5hZ2VtZW50CnByb2Zlc3NvciBpbiByZXNwb25zZSB0byBGcmVkIFNtaXRoJ3MgcGFwZXIgcHJvcG9zaW5nIHJlbGlhYmxlIG92ZXJuaWdodApkZWxpdmVyeSBzZXJ2aWNlLiBTbWl0aCB3ZW50IG9uIHRvIGZvdW5kIEZlZGVyYWwgRXhwcmVzcyBDb3JwLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJXaG8gdGhlIGhlbGwgd2FudHMgdG8gaGVhciBhY3RvcnMgdGFsaz8iIEguTS4gV2FybmVyLCBXYXJuZXIgQnJvdGhlcnMsCjE5MjcuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIkknbSBqdXN0IGdsYWQgaXQnbGwgYmUgQ2xhcmsgR2FibGUgd2hvJ3MgZmFsbGluZyBvbiBoaXMgZmFjZSBhbmQgbm90IEdhcnkKQ29vcGVyLiIgR2FyeSBDb29wZXIgb24gaGlzIGRlY2lzaW9uIG5vdCB0byB0YWtlIHRoZSBsZWFkaW5nIHJvbGUgaW4gIkdvbmUKV2l0aCBUaGUgV2luZC4iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIkEgY29va2llIHN0b3JlIGlzIGEgYmFkIGlkZWEuIEJlc2lkZXMsIHRoZSBtYXJrZXQgcmVzZWFyY2ggcmVwb3J0cyBzYXkKQW1lcmljYSBsaWtlcyBjcmlzcHkgY29va2llcywgbm90IHNvZnQgYW5kIGNoZXd5IGNvb2tpZXMgbGlrZSB5b3UgbWFrZS4iClJlc3BvbnNlIHRvIERlYmJpIEZpZWxkcycgaWRlYSBvZiBzdGFydGluZyBNcnMuIEZpZWxkcycgQ29va2llcy4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiV2UgZG9uJ3QgbGlrZSB0aGVpciBzb3VuZCwgYW5kIGd1aXRhciBtdXNpYyBpcyBvbiB0aGUgd2F5IG91dC4iIERlY2NhClJlY29yZGluZyBDby4gcmVqZWN0aW5nIHRoZSBCZWF0bGVzLCAxOTYyLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJIZWF2aWVyLXRoYW4tYWlyIGZseWluZyBtYWNoaW5lcyBhcmUgaW1wb3NzaWJsZS4iIExvcmQgS2VsdmluLCBwcmVzaWRlbnQsClJveWFsIFNvY2lldHksIDE4OTUuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIklmIEkgaGFkIHRob3VnaHQgYWJvdXQgaXQsIEkgd291bGRuJ3QgaGF2ZSBkb25lIHRoZSBleHBlcmltZW50LiBUaGUKbGl0ZXJhdHVyZSB3YXMgZnVsbCBvZiBleGFtcGxlcyB0aGF0IHNhaWQgeW91IGNhbid0IGRvIHRoaXMuIiBTcGVuY2VyIFNpbHZlcgpvbiB0aGUgd29yayB0aGF0IGxlZCB0byB0aGUgdW5pcXVlIGFkaGVzaXZlcyBmb3IgMy1NICJQb3N0LUl0IiBOb3RlcGFkcy4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiU28gd2Ugd2VudCB0byBBdGFyaSBhbmQgc2FpZCwgJ0hleSwgd2UndmUgZ290IHRoaXMgYW1hemluZyB0aGluZywgZXZlbgpidWlsdCB3aXRoIHNvbWUgb2YgeW91ciBwYXJ0cywgYW5kIHdoYXQgZG8geW91IHRoaW5rIGFib3V0IGZ1bmRpbmcgdXM/IE9yCndlJ2xsIGdpdmUgaXQgdG8geW91LiBXZSBqdXN0IHdhbnQgdG8gZG8gaXQuIFBheSBvdXIgc2FsYXJ5LCB3ZSdsbCBjb21lIHdvcmsKZm9yIHlvdS4nIEFuZCB0aGV5IHNhaWQsICdOby4nIFNvIHRoZW4gd2Ugd2VudCB0byBIZXdsZXR0LVBhY2thcmQsIGFuZCB0aGV5CnNhaWQsICdIZXksIHdlIGRvbid0IG5lZWQgeW91LiBZb3UgaGF2ZW4ndCBnb3QgdGhyb3VnaCBjb2xsZWdlIHlldC4nIiBBcHBsZQpDb21wdXRlciBJbmMuIGZvdW5kZXIgU3RldmUgSm9icyBvbiBhdHRlbXB0cyB0byBnZXQgQXRhcmkgYW5kIEgtUCBpbnRlcmVzdGVkCmluIGhpcyBhbmQgU3RldmUgV296bmlhaydzIHBlcnNvbmFsIGNvbXB1dGVyLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJQcm9mZXNzb3IgR29kZGFyZCBkb2VzIG5vdCBrbm93IHRoZSByZWxhdGlvbiBiZXR3ZWVuIGFjdGlvbiBhbmQgcmVhY3Rpb24KYW5kIHRoZSBuZWVkIHRvIGhhdmUgc29tZXRoaW5nIGJldHRlciB0aGFuIGEgdmFjdXVtIGFnYWluc3Qgd2hpY2ggdG8gcmVhY3QuCkhlIHNlZW1zIHRvIGxhY2sgdGhlIGJhc2ljIGtub3dsZWRnZSBsYWRsZWQgb3V0IGRhaWx5IGluIGhpZ2ggc2Nob29scy4iIDE5MjEKTmV3IFlvcmsgVGltZXMgZWRpdG9yaWFsIGFib3V0IFJvYmVydCBHb2RkYXJkJ3MgcmV2b2x1dGlvbmFyeSByb2NrZXQgd29yay4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiWW91IHdhbnQgdG8gaGF2ZSBjb25zaXN0ZW50IGFuZCB1bmlmb3JtIG11c2NsZSBkZXZlbG9wbWVudCBhY3Jvc3MgYWxsIG9mCnlvdXIgbXVzY2xlcz8gSXQgY2FuJ3QgYmUgZG9uZS4gSXQncyBqdXN0IGEgZmFjdCBvZiBsaWZlLiBZb3UganVzdCBoYXZlIHRvCmFjY2VwdCBpbmNvbnNpc3RlbnQgbXVzY2xlIGRldmVsb3BtZW50IGFzIGFuIHVuYWx0ZXJhYmxlIGNvbmRpdGlvbiBvZiB3ZWlnaHQKdHJhaW5pbmcuIiBSZXNwb25zZSB0byBBcnRodXIgSm9uZXMsIHdobyBzb2x2ZWQgdGhlICJ1bnNvbHZhYmxlIiBwcm9ibGVtIGJ5CmludmVudGluZyBOYXV0aWx1cy4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiRHJpbGwgZm9yIG9pbD8gWW91IG1lYW4gZHJpbGwgaW50byB0aGUgZ3JvdW5kIHRvIHRyeSBhbmQgZmluZCBvaWw/IFlvdSdyZQpjcmF6eS4iIERyaWxsZXJzIHdobyBFZHdpbiBMLiBEcmFrZSB0cmllZCB0byBlbmxpc3QgdG8gaGlzIHByb2plY3QgdG8gZHJpbGwKZm9yIG9pbCBpbiAxODU5LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJJIHRoaW5rIHRoZXJlJ3MgYSB3b3JsZCBtYXJrZXQgZm9yIGFib3V0IGZpdmUgY29tcHV0ZXJzLiIgVGhvbWFzIEogV2F0c29uLApDaGFpcm1hbiBvZiB0aGUgQm9hcmQsIElCTS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiVGhlIGJvbWIgd2lsbCBuZXZlciBnbyBvZmYuIEkgc3BlYWsgYXMgYW4gZXhwZXJ0IGluIGV4cGxvc2l2ZXMuIiBBZG1pcmFsCldpbGxpYW0gTGVhaHksIFVTIEF0b21pYyBCb21iIFByb2plY3QuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIlRoaXMgZmVsbG93IENoYXJsZXMgTGluZGJlcmdoIHdpbGwgbmV2ZXIgbWFrZSBpdC4gSGUncyBkb29tZWQuIiBIYXJyeQpHdWdnZW5oZWltLCBtaWxsaW9uYWlyZSBhdmlhdGlvbiBlbnRodXNpYXN0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJTdG9ja3MgaGF2ZSByZWFjaGVkIHdoYXQgbG9va3MgbGlrZSBhIHBlcm1hbmVudGx5IGhpZ2ggcGxhdGVhdS4iIElydmluZwpGaXNoZXIsIFByb2Zlc3NvciBvZiBFY29ub21pY3MsIFlhbGUgVW5pdmVyc2l0eSwgMTkyOS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiQWlycGxhbmVzIGFyZSBpbnRlcmVzdGluZyB0b3lzIGJ1dCBvZiBubyBtaWxpdGFyeSB2YWx1ZS4iIE1hcmVjaGFsCkZlcmRpbmFuZCBGb2NoLCBQcm9mZXNzb3Igb2YgU3RyYXRlZ3ksIEVjb2xlIFN1cGVyaWV1cmUgZGUgR3VlcnJlLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJNYW4gd2lsbCBuZXZlciByZWFjaCB0aGUgbW9vbiByZWdhcmRsZXNzIG9mIGFsbCBmdXR1cmUgc2NpZW50aWZpYwphZHZhbmNlcy4iIERyLiBMZWUgRGUgRm9yZXN0LCBpbnZlbnRvciBvZiB0aGUgdmFjdXVtIHR1YmUgYW5kIGZhdGhlciBvZgp0ZWxldmlzaW9uLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiJFdmVyeXRoaW5nIHRoYXQgY2FuIGJlIGludmVudGVkIGhhcyBiZWVuIGludmVudGVkLiIgQ2hhcmxlcyBILiBEdWVsbCwKQ29tbWlzc2lvbmVyLCBVLlMuIE9mZmljZSBvZiBQYXRlbnRzLCAxODk5LiAKCkxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIZWZ0aWdlIERpc2t1c3Npb24uLi4gKFdhcmdvbiwgIDQuIEp1biAxOTk2LCAxMTowMDoxNik6CiA+Pj4gPiA+ID46ID4gPiBWZXJ5IEFydGljdWxhdGUsIEkgbXVzdCBzYXkhID4gPiA+OiA+CiA+Pj4gPiA+ID46ID4gU2F5IEFydGljdWxhdGUsIG11c3QgSSB2ZXJ5ISA+ID4gPgogPj4+ID4gPiA+OiBNdXN0IEFydGljdWxhdGUsIHNheSAiSSB2ZXJ5Ij8gPiA+ID4KID4+PiA+ID4gPkkgQXJ0aWN1bGF0ZSwgbXVzdCBzYXkgdmVyeSEKID4+PiA+ID4KID4+PiBNdXN0IEkgc2F5LCAiVmVyeSBhcnRpY3VsYXRlPyIKCiA+PiBBcnRpY3VsYXRlIEkgc2F5LG11c3QgdmVyeSEKCiBHUz4gSSBzYXksVmVyeSBtdXN0IGFydGljdWxhdGUhCgoKClNpZ2guCgpJIHRoaW5rIEknbGwgc2F2ZSB0aGlzIG1lc3NhZ2UgaW4gY2FzZSBzb21lb25lIGFza3MgbWUgd2hhdCBwZW9wbGUKYWN0dWFsbHkgZG8gb24gdGhlIEludGVybmV0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm0kIChNdXBmZWwsICA3LiBKdW4gMTk5NiwgMTI6MzA6MTkpOgooYXVzIG1laW5lciBsaWVibGluZ3MtbWFpbGluZ2xpc3RlKQoKV2hhdCBkbyBNaWNyb3NvZnQgYW5kIFZvbGtzd2FnZW4gaGF2ZSBpbiBjb21tb24/CgoKCgoKTWlsbGlvbnMgb2YgYnVncy4KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEamFuZ28gKEdyaW1tYm9ybiwgIDcuIEp1biAxOTk2LCAxODowMzowMik6CgoiR290dCBpc3QgdG90LiIgKE5pZXR6c2NoZSkKIk5pZXR6c2NoZSBpc3QgdG90LiIgKEdvdHQpCiJUb3RlIHJlZGVuIG5pY2h0LiIgKERqYW5nbykKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKR2VodCBkZXIgRWxjaCBpbSBUYW5nb3NjaHJpdHQgZGFubiBrb21tdCBub2NoIG5pY2h0IG1hbCBEamFuZ28gbWl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJ6aWVodW5nc3Byb2JsZW1lIChHcmltbWJvcm4sIDEwLiBKdW4gMTk5NiwgMTA6MDQ6MzcpOgoKS29tbXQgRnJpdHpjaGVuIGluIGRpZSBLdWVjaGUgZ2VyYW5udDogTXV0dGksIE11dHRpLCBWYXRpIGhhdCBtaWNoIGdlaGF1ZW4hCkRhcmF1ZiBkZXIgVmF0ZXI6IEx1ZWcgbmljaHQgc28gZnJlY2gsIHNvbnN0IGtyaWVnc3QgRHUgbm9jaCBlaW5lIQoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRXJ6aWVodW5nc3Byb2JsZW1lIChDYXVubywgMTEuIEp1biAxOTk2LCAxMjozODoxMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODM0MzkzODc3Cn4jISB0aWQ9ODM0MzkzODc3CgpLaW5kOiAiTWFtaSwgZGFyZiBpY2ggbWl0IE9wYSBzcGllbGVuPyIKTXV0dGVyOiAiTmVpbi4iCktpbmQgIkljaCBtb2VjaHRlIGFiZXIgbWl0IE9wYSBzcGllbGVuLiIKTXV0dGVyOiAiTmVpbiwgZGVyIFNhcmcgYmxlaWJ0IHp1ISIKCkMuTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbWE/IChBbGJvaW4sIDExLiBKdW4gMTk5NiwgMTk6MTI6NDQpOgpLaW5kIDogIk1hbWkga3JpZWcgaWNoIG5vY2ggZWluZW4gR2VsZWUtQm9uYm9uPyIKTXV0dGVyOiJBYmVyIEtpbmRjaGVuLCBEdSB3ZWlzc3QgZG9jaDogT3BhIGhhdCBudXIgendlaSBBdWdlbj4iCgpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYW1hPyAoQ2F1bm8sIDEyLiBKdW4gMTk5NiwgMTE6NDk6MzIpOgp+IyEgcm49QWxib2luIHJ0PTgzNDUxMzE2NAp+IyEgdGlkPTgzNDUxMzE2NAoKS2luZDogIk1hbWEsIGljaCBtb2VjaHRlIG5pY2h0IG1laHIgaW0gS3JlaXMgcnVtbGF1ZmVuLiIKTXV0dGVyOiAiU2VpIHN0aWxsLCBzb25zdCB3aXJkIGRlciBhbmRlcmUgRnVzcyBhdWNoIG5vY2ggZmVzdGdlbmFnZWx0ISIKCkMuTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFtYT8gKExpLCAxMi4gSnVuIDE5OTYsIDEyOjQyOjQwKToKfiMhIHJuPUNhdW5vIHJ0PTgzNDU3Mjk3Mgp+IyEgdGlkPTgzNDUxMzE2NApDYXVubzogIkljaCB3ZWlzcyBub2NoIGVpbmVubiwgaWNoIHdlaXNzIG5vY2ggZWluZW4hIgpBbGxlOiAiU2VpIHN0aWxsLCBkaWUgV2l0emUgd2FyZW4gc2Nob24gdm9yIDIwIEphaHJlbiBzY2hlaXNzZSIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1hbWE/IChRdWFzaW1vZG8sIDEyLiBKdW4gMTk5NiwgMTg6NDE6MzIpOgp+IyEgcm49TGkgcnQ9ODM0NTc2MTYwCn4jISB0aWQ9ODM0NTEzMTY0CktpbmQ6IE1hbWEsIHdhbm4gZ2lidCBlcyB3aWVkZXIgZGllIGJsYXVlbiBOdWRlbG4/Ck1hbWE6IEtpbmQsIER1IHdlaXNzdCBkb2NoIGRhcyBPbWEga2VpbmUgS3JhbXBmYWRlcm4gbm9jaCBoYXQuCgpzZWl0IDIwIGphaHJlbiBzY2hlaXNzZSwgUXVhc2ltb2RvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLZW5uc3RlIEJlcnQ/IChHYW5kbywgMTMuIEp1biAxOTk2LCAxMTo1NjoxNyk6CkF1ZiBlaW5lciBCYXVzdGVsbGUgYXJiZWl0ZXQgZWluZXIsIGRlciBpbSBLb3BwIG5pY2h0IHNvIGdhbnogSGVsbGUgaXN0IHVuZCAKdm9uIGRlbiBhbmRlcmVuIGltbWVyIHZlcmFyc2NodCB3aXJkLiBJbW1lciB3ZW5uIGVyIGF1ZiBBcmJlaXQga29tbXQgZnJhZ3QgaWhuCmVpbmVyOgprZW5uc3RlIEJFUlQ/CkVyOkhBRT8gV2VsY2hlciBCZXJ0CkRlciBDYW1tb25iZXJ0IC4uIHVuZCBhbGxlIGxhY2hlbiBzaWNoIHRvdCB1bmQgZXIgRGVwcCBmYWVsbHQgaW1tZXIgd2llZGVyCmRyYXVmIHJlaW4uCkVpbmVzIHRlZ2VzIGdlaHQgZXMgZGFubiB6dW0gQ2hlZiB1bmQgYmVzY2h3ZXJ0IHNpY2gsIGRhc3MgZXIgaW1tZXIgdmVyYXJzY2h0CndpcmQgLi4uCkNoZWY6UGFzcyBtYSBhdWY6IER1IGdlaHN0IGpldHp0IHp1IGRlbSBoaW4gdW5kIGZyYWdzdCBpaG4sIG9iIGVyIE1pc2NoYQprZW5uc3QuCldlbm4gZXIgZnJhZ3Q6IFdlbGNoZXIgTWljaGEsIGRhbm4gc2Fnc3QgZHUsIGRlciBCZXRvbm1pc2NoYQpuYWphIC4uZGVyIGRlcHAgZ2VodCB6dSBkZW4gYW5kZXJlbiB1bmQgZnJhZ3Q6IEhleSwga2VubnN0ZSBNaXNjaGE/CkVyOldlciBpc3QgTWlzY2hhLCBkZXIgQnJ1ZGVyIHZvbiBCZXJ0PwpEZXIgRGVwcDogSEFFRT8gV2VsY2hlciBCZXJ0ID8/PwpMQUNICgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2VubnN0ZSBCZXJ0PyAoTGksIDEzLiBKdW4gMTk5NiwgMTI6MzI6NTEpOgp+IyEgcm49R2FuZG8gcnQ9ODM0NjU5Nzc3Cn4jISB0aWQ9ODM0NjU5Nzc3CnVuZCB3byBpc3QgZGllIFN0ZWxsZSB6dW0gTGFjaGVuPwpMaSAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2VubnN0ZSBCZXJ0PyAoWWFudHJvLCAxMy4gSnVuIDE5OTYsIDEyOjMzOjQxKToKfiMhIHJuPUxpIHJ0PTgzNDY2MTk3MQp+IyEgdGlkPTgzNDY1OTc3NwpqZXR6dCBsYWNoZW4gYWxsZSwgd2VpbCBEdSBlcyBuaWNodCB2ZXJzdGFuZGVuIGhhc3QsIExpLi4uIG5ldHRlciBPSiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1Y2ggZWluIEFiZ2FuZy4uIChIb2JvLCAxMy4gSnVuIDE5OTYsIDE1OjIyOjI2KToKCgpNaWV6ZSBzcHJpbmd0IGd1dGdlbGF1bnQgaW5zIFJlaWNoIGRlciBOZXR6dG90ZW4uCgoKSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaGhpIChMYWdlciwgMTQuIEp1biAxOTk2LCAwMTowODoyNyk6CkVpbmUgaWRlYWwgc3RhbmRhcnQgRmFtaWxpZSBpbiBNdXN0ZXJoYXVzZW4sIG1pdCAyIFNvZWhuZW46CkRhcyBlaW5lIEtpbmQgYmVrb21tdCB6dSBXZWlobmFjaHRlbiBlaW5lIFN0cmVvYW5sYWdlLCBlaW5lIEF1dG9yZW5uYmFobiwgZWluCkxlZ29rYXN0ZW4gdW5kIGxhdXRlciBzbyBrbGFtb3R0ZW4gdW5kIGRhcyBhbmRlcmUgYmVrb21tdCBudXQgU2NodWhwdXR6emV1Zy4KRGFuYWNoIGJlaW0gZXNzZW4gYmVrb21tdCBkYXMgZWluZSBLaW5kIHNlaW5lbiBMaWVibGluZ3NwdWRkaW5nLCBkZW4gZGFubiBhdWNoCmdsZWljaCAybWFsLCBlaW5lbiBCcmF0ZW4gbWl0IGFsbGVzIGxlY2tlcmVpZW4gdW5kIHNvIHdlaXRlci4gRGFzIGFuZGVyZQpiZWtvbW10IGVpbiBzdHVlY2sgYnJvdCB1bmQgZWluIGJlY2hlciB3YXNzZXIuCkFiZW5kcyBiZWltIHNjaGxhZmVuIGdlaG4sIHdpcmQgZGFzIGVpbmUga2luZCB2b24gc2VpbmVuIGVsdGVybiBsaWViZXZvbGwgaW4KZGFzIGh5ZHJhdWxpc2NoIGdlbGFnZXJ0ZSBzdXBlci1sdXh1cy1IaW1tZWxiZXR0IGdlYnJhY2h0IHVuZCBiZWtvbW10IG5vY2gKZWluZSBndXRlLW5hY2h0Z2VzY2hpb2NodCB1bmQgZWluZW4gZ3V0ZW5hY2h0a3VzcywgZGFzcyBhbmRlcmUgc2NobGFlZnQgaW4KZWluZXIgc2NodWJsYWRlIHZvbSBzY2hyYW5rIGluIGVpbmUgYWx0ZSBkZWNrZSBlaW5nZWh1ZWxsdC4KU2FndCBkYXMgZWluIEtpbmQgenVtIGFuZGVybjogc2FnIG1hLCBrYW5uIGVzIHNlaW4sIGRhc3MgbWljaCB1bnNlcmUgRWx0ZXJuCmxpZWJlciBoYWJlbiBhbHMgZGljaD8/PwpzYWd0IGRhcyBhbmRlcmU6IEthbm4gZXMgc2VpbiwgZGFzcyBkdSBLUkVCUyBoYXN0ID8/Pwo6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZW4gYXVzIG1laW5lciBsaWVibGluZ3MtbWFpbGluZ2xpc3QgKE11cGZlbCwgMTQuIEp1biAxOTk2LCAxOTowNjo1MCk6CldhcyBpc3QgWnluaXNtdXM/PwoKCgoKCgpXZW5uIEp1ZGFzIGRlbSBKZXN1cyBhbSBHcnVlbmRvbm5lcnN0YWcgZWluIHNjaG9lbmVzIFdvY2hlbmVuZGUgd3VlbnNjaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBlaW5lbiBhdXMgbWVpbmVyIGxpZWJsaW5ncy1tYWlsaW5nbGlzdCAoSGFyZGlsLCAxNy4gSnVuIDE5OTYsIDE1OjAyOjA1KToKfiMhIHJuPU11cGZlbCBydD04MzQ3NzIwMTAKfiMhIHRpZD04MzQ3NzIwMTAKClB1ZW5rdGxpY2ggenVtIFBhcHN0YmVzdWNoIGluIFBhZGVyYm9ybjoKCgpXYXJ1bSB3aXJkIGRlciBQYXBzdCBpbW1lciBpbiBzbyAnbmVtIEdsYXNrYXN0ZW4gaGVydW1nZWZhaHJlbj8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKLS0tIERhbWl0IGVyIGtlaW5lIEF1dG9zIGtsYXVlbiBrYW5uLgoKCi1IYXJkaWwuIFJvdGZsdCBpbW1lciBub2NoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5lbiBhdXMgbWVpbmVyIGxpZWJsaW5ncy1tYWlsaW5nbGlzdC4uLiAoTXVwZmVsLCAxNy4gSnVuIDE5OTYsIDE1OjQ0OjUwKToKICAgV2FzIGlzdCBkYXMgd2lya2xpY2ggU2NobGltbWUgZGFyYW4sIHdlbm4gbWFuIEF0aGVpc3QgaXN0PwoKCgoKCgoKCgoKCgoKCgoKICAgQmVpbSBPcmdhc211cyBoYXN0IGR1IGtlaW5lbiBBbnNwcmVjaHBhcnRuZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBlaW5lbiBhdXMgbWVpbmVyIGxpZWJsaW5ncy1tYWlsaW5nbGlzdC4uLiAoT2V0dGksIDE3LiBKdW4gMTk5NiwgMTY6MTg6MTMpOgp+IyEgcm49TXVwZmVsIHJ0PTgzNTAxOTA5MAp+IyEgdGlkPTgzNTAxOTA5MApOYSBqYSwgZXMgaXN0IGVpbiBHZXJ1ZWNodCwgZGFzIGplbWFuZCBiZWltIE9yZ2FzbXVzIE9oIEdvdHQgYnJ1ZWxsdC4uLgoKT2V0dGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NoIGVpbmVuIGF1cyBtZWluZXIgbGllYmxpbmdzLW1haWxpbmdsaXN0Li4uIChHcmltbWJvcm4sIDE3LiBKdW4gMTk5NiwgMTY6MTg6NTApOgp+IyEgcm49TXVwZmVsIHJ0PTgzNTAxOTA5MAp+IyEgdGlkPTgzNTAxOTA5MAoKRnJlY2hoZWl0Li4uIDstKQoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IG5vY2ggZWluZW4gYXVzIG1laW5lciBsaWVibGluZ3MtbWFpbGluZ2xpc3QuLi4gKEhhciwgMTcuIEp1biAxOTk2LCAxNjo1NTo0OSk6Cn4jISBybj1PZXR0aSBydD04MzUwMjEwOTMKfiMhIHRpZD04MzUwMTkwOTAKQWxzbyAgaWNoIGhvZXJlIGltbWVyIHdpZWRlciBudXIgSGFyIE9oIGhhciBPaCBIYXIsIGJpbiBpY2ggamV0dCBHb3R0PwoKSGFyIChmdWVobHQgc2NpaCBkYWJlaSBpbW1lciBnb2V0dGxpY2gpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IG5vY2ggZWluZW4gYXVzIG1laW5lciBsaWVibGluZ3MtbWFpbGluZ2xpc3QuLi4gKEVuZ3l3dWNrLCAxNy4gSnVuIDE5OTYsIDE3OjE2OjE3KToKfiMhIHJuPU9ldHRpIHJ0PTgzNTAyMTA5Mwp+IyEgdGlkPTgzNTAxOTA5MApOYWphLCBhYmVyIHdlbm4gbWFuICJPaCBHYWJpIiBicnVlbGx0IGthbm4gZGFzIGtvbXBsaWthdGlvbmVuIGdlYmVuLiBadW1pbmRlc3QKd2VubiBzaWUgQW5nZWxhIGhlaXNzdC4uLiA7KQoKRW5neSAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJldHJ1dXV1dXV1ZyA6KSkgKFlldGksIDE3LiBKdW4gMTk5NiwgMTg6MDE6MDIpOgpzb2ViZW4gcGFzc2llcnQgOgo+IGthdWZlIGthdGVyIG5hbWVucyB0b20KRGFzIGtvc3RldCBEaWNoIDUwMDAgTXVlbnplbi4KRHUgYmVrb21tc3QgZWluZW4gS2F0ZXIgdW5kIGVpbiBaZXJ0aWZpa2F0IG1pdCBIaW53ZWlzZW4uCj4gVG9tIHNjaGxlaWNodCBoZXJlaW4uCmxpZXMgemVydGlmaWthdApXRUxDSEUgTmFjaHJpY2h0IHdpbGxzdCBEdSBsZXNlbj8KPiB1bnQgemVydGlmaWthdApLYXRlcmJlc2l0emVyemVydGlmaWthdAo9PT09PT09PT09PT09PT09PT09PT09PQpBdXNnZXN0ZWxsdCBmdWVyICAgICA6IFlldGkKTmFtZSBkZXMgUGFwYWdlaSAgICAgOiB0b20KTmFtZSBkZXMgQXVzc3RlbGxlcnMgOiBNR1RICgpEaWVzZXMgWmVydGlmaWthdCBiZXJlY2h0aWd0IHp1bSBCZXNpdHogZWluZXMga2xlaW5lbiBLYXRlcnMuIFdlaXRlcmUKSW5mb3JtYXRpb25lbiBzaW5kIG1pdCBkZW0gS29tbWFuZG8gPHRoaWxmZT4gdmVyZnVlZ2Jhci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCZXRydXV1dXV1dWcgOikpIChFbmd5d3VjaywgMTcuIEp1biAxOTk2LCAxODowMjozMyk6Cn4jISBybj1ZZXRpIHJ0PTgzNTAyNzI2Mgp+IyEgdGlkPTgzNTAyNzI2MgpVbmQgamV0enQgZXJrbGFlciBtaXIgYml0dGUgZGllIFBvaW50ZS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCZXRydXV1dXV1dWcgOikpIChXdXJ6ZWwsIDE3LiBKdW4gMTk5NiwgMTg6MDM6MjgpOgp+IyEgcm49RW5neXd1Y2sgcnQ9ODM1MDI3MzUzCn4jISB0aWQ9ODM1MDI3MjYyCmdlbmF1ZXIgbGVzZW4gOikgZW50d2VkZXIgaGF0IGRlciBrYXRlciBlaW5lbiBwYXBhZ2VpIGdlZnJlc3Nlbiwgb2RlcgphbmRlcnNydW0gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJldHJ1dXV1dXV1ZyA6KSkgKEFzbW9kaXMsIDE3LiBKdW4gMTk5NiwgMTg6NDc6NDYpOgp+IyEgcm49V3VyemVsIHJ0PTgzNTAyNzQwOAp+IyEgdGlkPTgzNTAyNzI2MgpXYXIgYmVzdGltbXQgZWluIGJvZXNlciBaYXViZXJlciwgZGVyIGhhdCBkZW4gVm9nZWwgaW4gZWluZSBLYXR6ZSB2ZXJ3YW5kZWx0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQmV0cnV1dXV1dXVnIDopKSAoRHVyaWFuLCAxNy4gSnVuIDE5OTYsIDE4OjUwOjM0KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODM1MDMwMDY2Cn4jISB0aWQ9ODM1MDI3MjYyCk9kZXIgYXVjaCBlaW5mYWNoIGVpbiB2b2VsbGlnIHVuZmFlaGlnZXIsIHZvZWxsaWcgdmVyZHJlaHRlciB1bmQgbmljaHQKZ2FueiBkaWNodGVyIE1hZ2llci4gV2VyIHp1bSBIZW5rZXIgaGF0IGRpZXNlIFRpZXJlIGVudHdvcmZlbiwgaGFlaD8/PwoKLSBEdXJpYW4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCZXRydXV1dXV1dWcgOikpIChBc21vZGlzLCAxNy4gSnVuIDE5OTYsIDE5OjQwOjAzKToKfiMhIHJuPUR1cmlhbiBydD04MzUwMzAyMzQKfiMhIHRpZD04MzUwMjcyNjIKRGFuY2VyIGlzdCBTY2h1bGQgISEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBCZXRydXV1dXV1dWcgOikpIChLbm9lcnJ5LCAxOC4gSnVuIDE5OTYsIDAwOjM4OjM3KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODM1MDMzMjAzCn4jISB0aWQ9ODM1MDI3MjYyCkF1Y2ggZWluIFBhcGFnZWkga2FubiBtYWwgbmVuIEthdGVyIGhhYmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFuZHkgKEF6enVybywgMjAuIEp1biAxOTk2LCAwMTowMzowMCk6CgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gVGFtcG9uIHVuZCBlaW5lbSBIYW5keT8KCgoKCgoKCgoKCgoKCgoKCgoKCkRhcyBIYW5keSBoYXQga2VpbmUgU2NobnVyIHVuZCBpc3QgZnVlciBlaW4gQXJzY2hsb2NoIQoKQXp6dXJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpqYXZhIChSb2NodXMsIDIxLiBKdW4gMTk5NiwgMTQ6MTI6MzgpOgpOZXdzZ3JvdXBzOiBkZS5hbHQuZ3JhdmVucmV1dGgsZGUub3JnLmNjYwpGcm9tOiBPbGFmIFRpdHogPG9sYWZAYmlncmVkLmlua2EuZGU+ClN1YmplY3Q6IGVpbiBha3R1ZWxsZXIgRmFsbApEYXRlOiAyMCBKdW4gMTk5NiAxMjowMjozMyArMDIwMApPcmdhbml6YXRpb246IHByaXZhdGUgTGludXggc2l0ZSwgc291dGhlcm4gR2VybWFueQpLZXl3b3JkczogdG9waWNhbCwgc21pcmssIGNvbXB1dGVycwoKLS0tLS0tLSBzdGFydCBvZiBmb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tCk5ld3Nncm91cHM6IHJlYy5odW1vci5mdW5ueQpTdWJqZWN0OiBTdW4gTWljcm9zeXN0ZW1zIFN1ZXMgSXNsYW5kIG9mIEphdmEKRnJvbTogd3V0a2FAbmV0Y29tLmNvbSAoTWFyayBXdXRrYSkKTWVzc2FnZS1JRDogPFM5YzIuNDk1NEBjbGFyaW5ldC5jb20+CkRhdGU6IFdlZCwgMTkgSnVuIDk2IDM6MjA6MDQgRURUCgoKICAgICAgICBTVU4gTUlDUk9TWVNURU1TIFNVRVMgSVNMQU5EIE9GIEpBVkEqCgpNb3VudGFpbiBWaWV3LCBDQSAtLSBTdW4gTWljcm9zeXN0ZW1zIHRvZGF5IGZpbGVkIGEgdHJhZGVtYXJrCmluZnJpbmdlbWVudCBhZ2FpbnN0IHRoZSBpc2xhbmQgb2YgSmF2YSogb3ZlciB0aGUgdXNlIG9mIFN1bidzCkphdmEqIHRyYWRlbWFyay4KClJlc3BvbmRpbmcgdG8gY3JpdGljaXNtIHRoYXQgdGhlIGlzbGFuZCBoYXMgYmVlbiBjYWxsZWQgSmF2YSogZm9yCmNlbnR1cmllcywgU3VuIGxhd3llciBGcmFuayBDaGVhdGhhbSBzYWlkICJZZWFoLCBhbmQgaW4gYWxsIHRoYXQKdGltZSB0aGV5IG5ldmVyIGZpbGVkIGZvciBhIHRyYWRlbWFyay4gVGhleSBkZXNlcnZlIHRvIGxvc2UgdGhlCm5hbWUuIgoKUmF0aGVyIHRoYW4gcGF5IHRoZSBsaWNlbnNpbmcgZmVlLCB0aGUgaXNsYW5kIGRlY2lkZWQgdG8gY2hhbmdlCml0cyBuYW1lLiBUaGV5IG9yaWdpbmFsbHkgdm90ZWQgdG8gY2hhbmdlIGl0IHRvIFZpc3UgQWxiYXNpYywgYnV0CmFuIGFuZ3J5IHRlbGVncmFtIGZyb20gUmVkbW9uZCwgV2FzaGluZ3RvbiBjb252aW5jZWQgdGhlbSBvdGhlcndpc2UuClRoZSBjb3VudHJ5IGZpbmFsbHkgc2V0dGxlZCBvbiBhIHN5bWJvbCBmb3IgYSBuYW1lIC0tIGEgbmVhdGx5LWNvbG9yZWQKY29mZmVlIGN1cCB3aGljaCBzdGlsbCBldm9rZXMgdGhlIGlkZWEgb2YgamF2YS4gU2luY2UgbW9zdApuZXdzcGFwZXJzIGFuZCBtYWdhemluZXMgd2lsbCBub3QgYmUgYWJsZSB0byBwcmludCB0aGUgbmFtZSBvZiB0aGUKaXNsYW5kLCBpdCB3aWxsIGhlcmVhZnRlciBiZSByZWZlcnJlZCB0byBpbiBwcmludCBhcyAiVGhlIElzbGFuZApGb3JtZXJseSBLbm93biBBcyBKYXZhKiIuCgpUaGUgSXNsYW5kIEZvcm1lcmx5IEtub3duIEFzIEphdmEqIGJpbGxzIGl0c2VsZiBhcyBhIGNyb3NzLWxhbmRtYXNzCmlzbGFuZCwgYnV0IHNvIGZhciBoYXMgb25seSBiZWVuIGltcGxlbWVudGVkIGluIHByb2R1Y3Rpb24gb24gdGhlCk1hbGF5IEFyY2hpcGVsYWdvLiBBZnJpY2EgaXMgYmVlbiBydW1vcmVkIHRvIGhhdmUgaW1wbGVtZW50ZWQgaXQKb24gTWFkYWdhc2NhciwgYnV0IGl0IGlzIHN0aWxsIGluIGFscGhhIHRlc3RpbmcuCgpMYXd5ZXJzIGZyb20gU3VuIHdvdWxkIGFsc28gbGlrZSB0byBsb2NhdGUgdGhlIG93bmVycyBvZiB0aGUgaHVnZQpmaWVyeSBiYWxsIGF0IHRoZSBjZW50ZXIgb2YgdGhlIHNvbGFyIHN5c3RlbS4gVGhleSBoYXZlIHNvbWUgbGVnYWwKcGFwZXJzIGZvciB0aGVtLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqSmF2YSBpcyBhIFRyYWRlbWFyayBvZiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIEFueW9uZSBjYXVnaHQgdXNpbmcgdGhlCiB0cmFkZW1hcmsgd2l0aG91dCBwZXJtaXNzaW9uIHdpbGwgYmUgYmVhdGVuLCBmbG9nZ2VkLCBzdWVkLCBhbmQgZm9yY2VkCiB0byB1c2UgTWljcm9zb2Z0IHByb2R1Y3RzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWJlbiBwYXNzaWVydDogKFlldGksIDIxLiBKdW4gMTk5NiwgMTU6NDQ6MzMpOgpab3JybyBoYXR0ZSBHbHVlY2sgLi4gKG5ldHp0b3QpLgoKWWV0aSwgb2huZSBLb21tZW50YXIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2guLi4gKEVuZ3l3dWNrLCAyMS4gSnVuIDE5OTYsIDE2OjM3OjE2KToKTmV1bGljaCBhdWYgZWluZXIgb2VmZmVudGxpY2hlbiBIZXJyZW50b2lsZXR0ZSBnZWxlc2VuOgoKIkhpZXIgdmVyc3RhcmIgbWVpbiBTb2huLCA5IE1vbmF0ZSB2b3Igc2VpbmVyIEdlYnVydCwgYmVpIGVpbmVtIEhhbmRnZW1lbmdlIgoKRW5neSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoLi4uIChKb3JpbmRlLCAyMS4gSnVuIDE5OTYsIDE2OjQwOjMyKToKfiMhIHJuPUVuZ3l3dWNrIHJ0PTgzNTM2NzgzNgp+IyEgdGlkPTgzNTM2NzgzNgpOZXVsaWNoIGF1ZiBlaW5lciBEYW1lbnRvaWxldHRlOgoKIkhpZXIgdmVyc3RhcmIgbWVpbmUgVG9jaHRlciwgOSBNb25hdGUgdm9yIGlocmVyIEdlYnVydCwgYmVpIGVpbmVtCkZ1c3NnZW1lbmdlLiIKCgoKCkpvcmluZGUgKERJRSBBTlRXT1JUKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVsaWNoLi4uIChIYXIsIDIxLiBKdW4gMTk5NiwgMTY6NDI6MTEpOgp+IyEgcm49Sm9yaW5kZSBydD04MzUzNjgwMzIKfiMhIHRpZD04MzUzNjc4MzYKRGVuIHZlcnN0ZWhlIGljaCBuaWNodC4uLi4uCkZ1c3M/Pz8/PwpiZWdhdHRlbmRlciBGdXNzcz8/Pz8KRnVlc3NlIGRpZSBFamFrdWxhdGlvbmVuIGhlcmJlaWZ1ZWhyZW4/Pz8/CgpIYXIgKHZlcndpcnJ0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1bGljaC4uLiAoSm9yaW5kZSwgMjEuIEp1biAxOTk2LCAxNjo0Nzo0OCk6Cn4jISBybj1IYXIgcnQ9ODM1MzY4MTMxCn4jISB0aWQ9ODM1MzY3ODM2CkRlciBXaXR6IGlzdCBkaWUgQW50d29ydCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxrb2hvbGlrZXItVGllcmU/IChGcmV1bmQsIDIyLiBKdW4gMTk5NiwgMTA6MDg6MDcpOgpIbW1tLiBHYW55bWVkIGlzdCBtZWluIEthdGVyLiBBdXMgRHVyaWFlaG0gRGFuY2VycyBab29oYW5kbHVuZy4gU29lYmVuOgoKW0JpZXJzY2h1ZXR0bGVyOkJydW5vXSBIZXksIExldXRlISBXaWUgd2FlcmUgZXMgbWl0IGVpbmVyIFBhcnR5IGluIGRlcgpbQmllcnNjaHVldHRsZXI6QnJ1bm9dIEJpZXJzY2h1ZXR0bGVyZ2lsZGU/CkdhbnltZWQgc2NoYXV0IG1pdCBsZXVjaHRlbmRlbiBBdWdlbiBpbiBkaWUgUnVuZGUuCgpIbW1tbS4gR2lidCBlcyBzY2hvbiBkaWUgQW5vbnltZW4gQWxraWVzIGZ1ZXIgVGllcmU/CgpFaW4gc2NobXVuemVsbmRlciBUaWVyZnJldW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCduJ0tsb3NwcnVjaCAoRGFpbW9udm9rLCAyMy4gSnVuIDE5OTYsIDAxOjIzOjM4KToKS2xvc3BydWNoIGF1cyBNUywgRnJhdWVuc3RyLiAyNDoKSWNoIG1vZWNoZSBmcmllZGxpY2ggaW0gU2NobGFmIHN0ZXJiZW4gd2llIG1laW4gR3Jvc3N2YXRlcgp1bmQgbmljaHQgc2NocmVpZW5kIHVuZCBpbiBQYW5payB3aWUgc2VpbmUgUGFzc2FnaWVyZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWlubmVobWVuZGVzIHdlc2VuLi4gKFdvYSwgMjUuIEp1biAxOTk2LCAxNzozNzowNik6CmdpYiBidW5kIGFuIHdhY2hlCkR1IGdpYnN0IGRlciBXYWNoZSBkZW4gU2NobHVlc3NlbGJ1bmQuCkRpZSBXYWNoZSBzYWd0OiBEYW5rZS4gQWJlciBiZXNjaHdlcmUgRGljaCBuYWNoaGVyIG5pY2h0Lgo+Li4uV29hLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplaW5lbiBXaXR6IChHcmltbWJvcm4sICAzLiBKdWwgMTk5NiwgMTQ6NDA6MTApOgoKSWNoIGdsYXViZSwgZGVuIGhhdHRlIGljaCBoaWVyIG5vY2ggbmljaHQgZXJ6YWVobHQsIGFuc29uc3RlbiB3aWVkZXJob2xlIGljaAptaWNoIGhhbHQ6CgpFaW4gTWF0aGVtYXRpa2VyLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBJbmZvcm1hdGlrZXIgbWFjaGVuIFVybGF1YiBtaXQgZGVtIEF1dG8KaW4gZGVyIFNjaHdlaXouIGRlciBQaHlzaWtlciwgYWxzIGVpbnppZ2VyIG1pdCB0ZWNobmlzY2hlbSBHZXNjaGljawphdXNnZXN0YXR0ZXQsIHNpdHp0IG5hdHVlcmxpY2ggYW0gU3RldWVyLiBEYSB2ZXJzYWdlbiBhdWYgZWluZW0gc3RlaWxlbiBTdHVlY2sKYmVyZ2FiIGRpZSBCcmVtc2VuLiBNaXQgdmllbCBNdWVoZSB1bmQgR2x1ZWNrIGtyaWVndCBkZXIgUGh5c2lrZXIgaW0gbGV0enRlbgpNb21lbnQgdm9yIGVpbmVyIHNjaGFyZmVuIEtlaHJlIGRhcyBBdXRvIHp1bSBzdGVoZW4gKE1vdG9yYnJlbXNlLCBrbGVpbmVyIFBmYWQKZGVyIGJlcmdhdWYgYWJiaWVndCwgd2Fzd2Vpc3NpY2gpLiBEZXIgTWF0aGVtYXRpa2VyIHdpc2NodCBzaWNoIGRlbiBTY2h3ZWlzcwphYiB1bmQgc2FndDogIlB1aCwgZGFzIGlzdCBqYSBnZWZhZWhybGljaCwgamV0enQgZ2VoZW4gd2lyIHp1ciBXZXJrc3RhdHQgdW5kCmxhc3NlbiBlaW5lbiBBYnNjaGxlcHB3YWdlbiBrb21tZW4uIiBEZXIgUGh5c2lrZXIgbWVpbnQ6ICJXaWVzbywgamV0enQgd2lzc2VuCndpciBkb2NoIHdpZSB3aXIgZGFzIFByb2JsZW0gbG9lc2VuIGtvZW5uZW4uIiBVbmQgZGVyIEluZm9ybWF0aWtlciBzYWd0OgoiWnVhbGxlcmVyc3QgbXVlc3NlbiB3aXIgdWViZXJwcnVlZmVuLCBvYiBkYXMgcmVwcm9kdXppZXJiYXIgaXN0LiIKCk5hamEsIHZpZWxsZWljaHQgbmljaHQgc28gZG9sbCwgYWJlciBzb2xhbmdlIGRpZSBNdWVuc3RlcmFuZXIgaWhyZSBSZWNobmVyCm5pY2h0IHJlcGFyaWVydCBiZWtvbW1lbiwgd2FzIHNvbGwgbWFuIGRhIHNjaG9uIGdyb3NzIHR1bj8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGVpbmVuIFdpdHogKFdvb2R5LCAgNC4gSnVsIDE5OTYsIDAyOjI0OjU4KToKfiMhIHJuPUdyaW1tYm9ybiBydD04MzYzOTc2MTAKfiMhIHRpZD04MzYzOTc2MTAKCi4uLnVuZCBkYW5uIHNhZ3RlIGRlciBJbmZvcm1hdGlrZXIgbm9jaDogIlN0ZWlnZW4gd2lyIGF1cyB1bmQKd2llZGVyIGVpbiwgdmllbGxlaWNodCBnZWh0cyBqYSBkYW5uLiIKCjopCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpdHogKEdvcmRvLCAgNC4gSnVsIDE5OTYsIDAzOjIyOjAyKToKCk11dHRpIGljaCBiaW4gamV0enQgMTUgSmFocmUgZGFyZiBpY2ggZWluZW4gQkggdHJhZ2VuPwoKCgoKCgogICAgICAgICAgTkVJTiBHRVJIQVJECgoKCkhtbSBrb21tdCBpcmdlbmR3aWUgbXVlbmRsaWNoIGJlc3NlciBydWViZXIKCkdvcmRvCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBuIFdpdHogKEdvcmRvLCAgNC4gSnVsIDE5OTYsIDAzOjM1OjA3KToKCk9rLi4uZWluIERldXRzY2hlciBlaW4gU2Nod2VpemVyIHVuZCBlaW4gT2VzdGVyZWljaGVyIHNpbmQgYmVpIGVpbmVyCm11ZW5kbGljaGVuIFJlY2hlbnBydWVmdW5nLiAKRGVyIERldXRzY2hlIGlzIGRyYW4sZGVyIFBydWVmdW5nc2V4cGVydGUgZnJhZ3QgaWhuICJ3YXMgZ2lidCA1MCB1bmQgNTAiPwpuYWNoIGxhbmdlbSB1ZWJlcmxlZ2VuIGFudHdvcnRldCBlciA4My4gT2ggbGVpZGVyIGZhbHNjaCBzYWd0IGRlciBFeHBlcnRlIHVuZApkZXIgT2VzdGVyZWljaGVyIHVuZCBkZXIgU2Nod2VpemVyIHJ1ZmVuIEdJQiBJSE0gTk9DSCBORSBDSEFOR1NFCm9rIG9rIHNhZ3QgZGVyIEV4cGVydGUgLG5vY2htYWwgd2FzIGdpYnQgMTAgdW5kIDEwPwpEZXIgZGV1dHNjaGUgd2llZGVyIGFtIHVlYmVybGVnZW4uLi4uLi4uLi4uMjMuLi4uLkhtbW1tIHNjaG9uIHdpZWRlcgpmYWxzY2guLnVuZCBkaWUgYmVpZGVuIHdpZWRlciBHSUIgSUhNIE5PQ0ggTkUgQ0hBTkdTRQpvayBvayBub2NoIGVpbiBsZXR6dGVzIG1hbCB3YXMgZ2lidCAyMCB1bmQgMjA/CkRlciBkZXV0c2NoZSBuYWNoIHNlaGhociBsYW5nZW0gdWViZXJsZWdlbi4uLi40MAoKRGVyIE9lc3RlcmVpY2hlciBydWZ0IEdJQiBJSE0gTk9DSCBORSBDSEFOR1NFCgoKClBzIChBbGxlcyBUeXBvcyBzaW5kIGdld29sbHQgdW5kIG5pY2h0IHZlcnNlaGVudGxpY2gpCgpHb3JkbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlcmNoZW5oYWZ0Li4uIChNdXBmZWwsICA0LiBKdWwgMTk5NiwgMTM6MzQ6MzApOgpTY2huZWV3aXR0Y2hlbiB0cmlmZnQgaW0gV2FsZCBQaW5vY2NoaW8sIHdpcmZ0IGlobiB6dSBCb2RlbiB1bmQgc2V0enQgc2ljaCBhdWYKc2VpbiBHZXNpY2h0LgpEYW5uIHNhZ3Qgc2llOiAiTG9zIG1hY2ggc2Nob24sIGx1ZWcgbWljaCBhbiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLaW5kZXJnYXJ0ZW4gKERpZWRlciwgIDUuIEp1bCAxOTk2LCAxMzozNDo1Mik6CktvbW1lbiBlaW4gNy0sIGVpbiA1LSB1bmQgZWluIGRyZWlqYWVocmlnZXIgaW4gZGVuIEtpbmRlcmdhcnRlbi4KU2llaHQgZGVyIDctamFlaHJpZ2UgZGllIEtpbmRlcmdhZXJ0bmVyaW4uIFNhZ3Q6ICJNYW5uLCB3YXMgZnVlcm4gSGludGVybiEiLgpEaWUga2luZGVyZ2FlcnRuZXJpbiBzY2htZWlzc3QgaWhuIHJhdXMuClNhZ3QgZGVyIDUtamFlcmlnZTogIk1hbm4sIHdhcyBmdWVyIFQuLi4uLiIuIERpZSBLaW5kZXJnYWVydG5lcmluIHNjaG1laXNzdAphdWNoIGlobiByYXVzLgpEcmVodCBzaWNoIGRlciBkcmVpamFlaHJpZ2UgdW0gdW5kIGdlaHQuIERpZSBLaW5kZXJnYWVydG5lcmluIHJ1ZiBpaG4genVydWVjawp1bmQgbWVpbnQ6ICJEdSBrYW5uc3QgZG9jaCBibGVpYmVuLCBtZWluIEtsZWluZXIsIG51ciBkaWUgendlaSBCb2VzZW4gaGllcgpkdWVyZmVuIG5pY2h0IGJsZWliZW4uLi4iCkRhcmF1ZiBkZXIgZHJlaWphZWhyaWdlOiAiSmEgc2Nob24sIGFiZXIgd2lyIGhhYmVuIGF1c2dlbWFjaHQsIHdlbm4gZXMgaGllcgpuaXggenUgcG9wcGVuIGdpYnQsIGdlaG4gd2lyIGFsbGUgZ2VzY2hsb3NzZW4gd2llZGVyIGhlaW0uLi4iCgpCaXR0ZSBuaWNodCB6dSBlcm5zdCBuZWhtZW4uLi4KCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBtZWhyIGtpbmRlciAoQ2F1bm8sICA1LiBKdWwgMTk5NiwgMTM6NTc6MDQpOgoKRWluZSBuZXVuamFlaHJpZ2UgdW5kIGVpbmUgZWxmamFlaHJpZ2UgdW50ZXJoYWx0ZW4gc2ljaC4KTWVpbnQgZGllIGVsZmphZWhyaWdlOiAiSWNoIHdlaXNzIHNjaG9uIHdpZSBtYW4gS2luZGVyIGtyaWVndC4iClNhZ3QgZGllIG5ldW5qYWVocmlnZTogIkljaCB3ZWlzcyBzY2hvbiB3aWUgbWFuIGtlaW5lIGtyaWVndCEiCgpBbm1lcmt1bmc6IERlciBXaXR6IGlzdCBhdXMgZGVyIFplaXQsIGFscyBlaW4gZ2V3aXNzZXMgVW50ZXJyaWNodHN0aGVtYSBhbiBkZW4KU2NodWxlbiBlaW5nZWZ1ZWhydCB3dXJkZSAuLi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIHRlY2huaXNjaGUgV2l0eiAoQ2F1bm8sICA1LiBKdWwgMTk5NiwgMTQ6MDc6MTMpOgpJY2ggZ2xhdWJlIHp3YXIsIGRlbiBoYWIgaWNoIGhpZXIgc2Nob24gbWFsIGVyemFlaGx0LCBhYmVyIGRlciB3aXJkIG5hY2gKbWVpbmVyIE1laW51bmcgaW1tZXIgYmVzc2VyOgoKRWluZSBBbWVyaWthbmlzY2hlIEZpcm1hIGhhdCBlaW5lbiBEcmFodCBhdXMgZWluZW0gdm9lbGxpZyBuZXVlbiBNYXRlcmlhbAplbnR3aWNrZWx0LiBEaWVzZXIgc29sbCBudW4gYXVzZ2VtZXNzZW4gd2VyZGVuLCBhbHNvIHNjaGlja3QgbWFuIGlobiBhbiBlaW5lCkZpcm1hIGluIEVuZ2xhbmQuCk5hY2ggZXR3YSBzZWNocyBNb25hdGVuIGtvbW10IGRlciBEcmFodCB6dXJ1ZWNrLCBtaXQgZGVyIEJlbWVya3VuZzoKCiJIYWJlbiBuaWNodCBkaWUgcmljaHRpZ2VuIEdlcmFldGUsIGtvZW5uZW4gbmljaHRzIGF1c21lc3NlbiwgdHV0IHVucyBzZWhyCmxlaWQuIgoKQWxzbyBzY2hpY2t0IG1hbiBkZW4gRHJhaHQgbmFjaCBGcmFua3JlaWNoLiBEcmVpIE1vbmF0ZSBzcGFldGVyOgoKIlVuc2VyZSBHZXJhZXRlIHNpbmQgei5aLiBkZWZla3QsIGtvZW5uZW4gbmljaHRzIGF1c21lc3NlbiwgdHV0IHVucyBzZWhyCmxlaWQuIgoKRGFubiBkZW5rdCBtYW4gc2ljaDogRGllIFNjaHdlaXplciBzb2xsdGVuIGRvY2ggR2VyYWV0ZSBoYWJlbiwgZGllIGJhdWVuIHNvCmR1ZW5uZSBVaHJlbiwgc2NoaWNrZW4gd2lycyBkYWhpbi4KCkVpbmVuIE1vbmF0IHNwYWV0ZXIuCgoiSGFiZW4gdW5zZXJlIEdlcmFldGUgdmVybGllaGVuLCBrb2VubmVuIG5pY2h0cyBhdXNtZXNzZW4sIHR1dCB1bnMgc2VociBsZWlkLiIKCkxhbmdzYW0gdmVyendlaWZlbG4gZGllIEFtZXJpa2FuZXIuIFNjaGxpZXNzbGljaCBtZWluZW4gU2llOiBFcyBoaWxmdCBhbGxlcwpuaWNodHMsIHdpciBtdXNzZW4gZGVuIERyYWh0IGRvcnRoaW4gc2NoaWNrZW4gLSBuYWNoIERldXRzY2hsYW5kIC4uLgpHZXNhZ3QsIGdldGFuLgpEcmVpIFRhZ2Ugc3BhZXRlciBrb21tdCBlaW4gVGVsZWdyYW1tIGlucyBIYXVzLgoKIkhhYmVuIGRlbiBEcmFodCBhdXNnZW1lc3NlbjogRXIgYmVzaXR6dCBlaW5lIFp1Z2Zlc3RpZ2tlaXQgdm9uIDEga2cvbW1eMiB1bmQKaXN0IDMgbXkgKE1pa3JvbWV0ZXIpIGRpY2suIEFiZXIgd2lyIGJpdHRlbiB1bSBSIFJ1ZWNrYW50d29ydC4KU29sbGVuIHdpciBlaW4gR2V3aW5kZSBhdWZzY2huZWlkZW4gb2RlciBlaW4gTG9jaCBkdXJjaCBib2hyZW4/IgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2llZGVyIG1hbCBlaW4gd2l0eiB2b24gbWlyIChBbGJvaW4sICA1LiBKdWwgMTk5NiwgMTQ6MTI6MzIpOgpXZWlsIGljaCBoZXV0IG1hbCBmcm9oIGJpbiBnaWJ0IGVzIGVpbmVuIFdpdHogdm9uIG1pci5JY2ggaG9mZmUgbWFsIGRlbiBrZW5udApub2NoIGtlaW5lciAuLgpJbSBQYXJrIGVpbmVyIFN0YWR0IHN0ZWhlbiB6d2VpIHN0YXR1ZW4gbmViZW5laW5hbmRlcjogZWluZSBuYWNrdGUgRnJhdSB1bmQKZWluIG5hY2t0ZXIgTWFubi5FaW5lcyBUYWdlcyBrb21tdCBlaW5lIEZlZSBoZXJlaW5nZXNjaG5laXQgdW5kIGxhZXNzdCBkaWUKU3RhdHVlbiB6dW0gTGViZW4gZXJ3ZWNrZW4gdW5zIHNhZ3QgenVyIEZyYXUgdW5kIHp1bSBNYW5uOiAnSWNoIHdpbGwgRXVjaCBkZW5uCld1bnNjaCBlcmZ1ZWxsZW4gZGFzIElociBlaW5lIGhhbGJlIFN0dW5kZSBsZWJlbmRpZyBzZWlkLiBJaHIgZHVlcmZ0IGpldHp0IHR1bgp3YXMgaWhyIHdvbGx0LCBpbiBlaW5lciBoYWxiZW4gU3R1bmRlIHNlaWQgaWhyIHdpZWRlciBoaWVyIHVuZCBpY2ggbWFjaCBFdWNoCndpZWRlciB6dSBTdGF0dWVuLicKRGllIEZyYXUgdW5kIGRlciBNYW5uIGdyaW5zZW4gc2ljaCBkYXJhdWYgYW4gdW5kIHNwcmluZ2VuIGxhY2hlbmQgaW5zCkdlYnVlc2NoLk5hY2ggZWluZXIgaGFsYmVuIFN0dW5kZSBzdGVoZW4gc2llIHdpZWRlciB2b3IgZGVyIEZlZS5EaWUgRmVlIHNhZ3Q6CidJY2ggYmluIGVyc3RhdW50LCBkYXNzIElociBzbyBwdWVua3RsaWNoIHNlaWQuRGFmdWVyIGR1ZXJmdCBJaHIgZ2xlaWNoIG5vY2gKbWFsIGVpbmVuIGhhbGJlIFN0dW5kZSB0dW4gd2FzIGlociB3b2xsdC4nCkRhcmF1ZmhpbiBzYWd0IGRlciBNYW5uIHp1ciBGcmF1OiAnT0ssIGFiZXIgZGllc2VzbWFsIGhhZWxzdCBEdSBkaWUgVGF1YmUgZmVzdAp1bmQgaWNoIHNjaGVpc3MgZHJhdWYhJwoKQWxib2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZW5yZXNjaGVyemUgKEVscmljLCAgOC4gSnVsIDE5OTYsIDE0OjU0OjU3KToKCkZvbGdlbmRlIFdpdHplIHNpbmQgZnJlaSBuYWNoIFN0ZXZlbiBCcnVzdDoKCldpZSB2aWVsZSBIb2JiaXRzIGJyYXVjaHQgbWFuLCB1bSBlaW4gU2Nod2VydCB6dSBzY2hhZXJmZW4/CgpWaWVyLiBFaW5lciBoYWVsdCBkYXMgU2Nod2VydCwgZGllIGFuZGVyZW4gYmV3ZWdlbiBkZW4gV2V0enN0ZWluLgoKCldpZSB2aWVsZSBad2VyZ2UgYnJhdWNodCBtYW4sIHVtIGVpbiBTY2h3ZXJ0IHp1IHNjaGFlcmZlbj8KCkF1Y2ggdmllci4gRWluZXIgc2NoYWVyZnQgZGFzIFNjaHdlcnQsIGRlciBSZXN0IGRpZW50IGFscyBHZWduZXIsIGRhbWl0IHNpY2gncwphdWNoIGxvaG50LiAoRWxmZW53aXR6KQoKV2llIHZpZWxlIEVsZmVuIGJlbm9ldGlndCBtYW4sIHVtIGVpbiBTY2h3ZXJ0IHp1IHNjaGFlcmZlbj8KCkRyZWkuIEVpbmVyIHNjaGFlcmZ0IGRhcyBTY2h3ZXJ0OyBkZXIgendlaXRlIGt1ZW1tZXJ0IHNpY2ggdW0gZGllIGVudHN0ZWhlbmRlbgpWZXJ3aXJydW5nZW4uCgpFaW4gT3JrIHp1bSBhbmRlcmVuOiBXaWUgdmllbGUgRWxmZW4gYnJhdWNodCBtYW4sIHVtIGVpbiBTY2h3ZXJ0IHp1IHNjaGFlcmZlbj8KCkFudHdvcnQ6IEtlaW5lIEFobnVuZy4gRGllIHNjaGV1ZXJuIGltbWVyIHNvIHNjaG5lbGwgZHVyY2gsIGljaCBuZWhtJyBad2VyZ2UuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSmF2YSAoR3JpbW1ib3JuLCAgOC4gSnVsIDE5OTYsIDE4OjQ1OjQ0KToKCkVzIGdpYnQgZWluZW4gbmV1ZW4gRGVidWdnZXIgZnVlciBKYXZhLCBlbnR3aWNrZWx0IHZvbiBNZWxpdHRhLi4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpdHogKEdyaW1tYm9ybiwgIDguIEp1bCAxOTk2LCAyMDoxNzo0OCk6CldvcmQgZnVlciBXaW5kb3dzIDYuMApNaWNyb3NvZnQKV2VyIGd1dCBwcm9ncmFtbWllcmVuIGthbm4gaGF0IGJlaSBNUyBuaWNodHMgenUgc3VjaGVuLCBkaWUgaGFiZW4gc2Nob24gZ3V0ZQpQcm9ncmFtbWllcmVyLgpXaW5kb3dzcHJvZ3JhbW1lIHNpbmQgYmVzc2VyIGFscyBVbml4LCB3ZWlsIG1hbiBzaWUgaW50dWl0aXYgYmVkaWVuZW4ga2FubgooZGVyIGlzdCBiZXNvbmRlcnMgZ3V0KQpBbGxlcyBpc3QgbWFjaGJhciwgd2VubiBtYW4gbnVyIFdvcmQgNi4wIHZlcndlbmRldC4KClVuZHNvd2VpdGVyLi4uICpzZXVmeioKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWnVzYXR6IHp1IE1pY3Jvc2Nocm90dCAoRGllZGVyLCAgOS4gSnVsIDE5OTYsIDE0OjA2OjEzKToKQXVma2xlYmVyIGF1ZiBlaW5lbSBQQzogIlRoaXMgUEMgaXMgYWlyIGNvbmRpdGlvbmVkIC0gZG9uJ3Qgb3BlbiB3aW5kb3dzLi4uIgoKSWNoIHdlaXNzLCBkYXNzIGRlciBzY2hvbiBhbHQgaXMsIGFiZXIgZXIgaXMgZ3V0Li4uIDopKQoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQb2xpdC1XaXR6IChEaWVkZXIsICA5LiBKdWwgMTk5NiwgMTQ6MTU6MjIpOgpOYWNoIGRlbSBTY2hlaXRlcm4gc2VpbmVzIFdlY2hzZWxzIHp1bSBGQyBCYXJjZWxvbmEgaGF0IE5hdGlvbmFsdG9yaHVldGVyIEFuZGkKS29lcGtlIGpldHp0IGVpbmVuIG5ldWVuIFZlcnRyYWcgdm9uIGRlciBTUEQgYW5nZWJvdGVuIGJla29tbWVuLiBEaWUgaGFiZW4KendhciB2b3JuZSBzY2hvbiBsYW5nZSBrZWluZW4gVHJlZmZlciBtZWhyIGdlbGFuZGV0LCBhYmVyIEtvZXBrZSBzb2xsCndlbmlnc3RlbnMgaGludGVuIGRpZSBFaWdlbnRvcmUgdmVyaGluZGVybi4uLgoKKEF1ZiBkZXIgQ0RVIHVuZCBLb2hsIGthbm4gamEgamVkZXIgcnVtaGFja2VuLi4uIDopKSkKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0emUsIHVuc29ydGllcnQgKERpZWRlciwgIDkuIEp1bCAxOTk2LCAxNDozNTowMik6ClNvLCBpY2ggaGFiIGhpZXIgZ3JhZCBlaW4gcGFhciBXSXR6ZSBnZWZ1bmRlbiwgZGllIGljaCBub2NoIG5pY2gga2FubnRlLiBXZXIKc2llIHNjaG9uIGtlbm50IG9kZXIgc2llIG5pY2ggZ3V0IGZpbmRldCwgYml0dGUgaWZub3JpZXJlbi4uLiA6KSkpIEVzIGdlaHQKbG9zOgoKWndlaSBIYXVmZW4gU2NoZWlzc2Ugc2l0emVuIGF1ZiBkZXIgTWF1ZXIgdW5kIHJhdWNoZW4gZWluZW4gSm9pbnQuIEtvbW10IGVpbgpEdXJjaGZhbGwgdm9yYmVpIHVuZCBmcmFndCwgb2IgZXIgYXVjaCBlaW5tYWwgZWluZW4gWnVnIG5laG1lbiBkYXJmLiBTYWdlbiBkaWUKYW5kZXJuIGJlaWRlbjogIk5laW4sIGRhcyBpcyBudXIgd2FzIGZ1ZXIgSGFydGUhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQmlsbCBHYXRlcyBsaWVndCBhbSBTdHJhbmQgdW5kIGxpZXN0IFplaXR1bmcuIFBsb2V0emxpY2ggd2lyZCBlaW5lIEZsYXNjaGUKYW5nZXNjaHdlbW10LCBlciBvZWZmbmV0IHNpZSB1bmQgZWluIEdlaXN0IGVudHdlaWNodC4gIlp1ciBCZWxvaG51bmcgc2VpIERpcgplaW4gV3Vuc2NoIGVyZnVlbGx0ISIuIEluIGVpbmVyIGlkZWFsaXN0aXNjaGVuIEFOd2FuZGx1bmcgemVpZ3QgaWhtIEJpbGwgZWluZQpMYW5ka2FydGUgZGVyIFVOTyBtaXQgZGVtIFRlaWx1bmdzcGxhbi4gIkljaCBtb2VjaHRlLCBkYXNzIGhpZXIgaW4gSnVnb3NsYXZpZW4KRnJpZWRlbiBoZXJyc2NodC4iIERlciBHZWlzdDogIkVua2xhdmVuLCBTY2h1dHp6b2huZW4sIFVtc2llZGx1bmdlbiB1ZWJlcmFsbD8KSWNoIGthbm4gamEgdmllbGVzLCBhYmVyIGRhcyBpcyBuIGJpc3NjaGVuIGhhcnQuLi4iLiBEYXJhdWYgQmlsbDogIk9rLCBhbGxlCldlbHQgbGFlc3RlcnQgdWViZXIgTWljcm9zb2Z0IHVuZCBkaWUgQmVzdHJlYnVuZ2VuLCBkZW4gV2VsdC1Tb2Z0d2FyZW1hcmt0IHp1CmJlaGVycnNjaGVuLiBJY2ggd2lsbCwuIGRhc3MgZGFzIGF1ZmhvZXJ0LiIgTmFjaCBrdXJ6ZW0gTmFjaGRlbmtlbiBtZWludCBkZXIKR2Vpc3Q6ICJaZWlnIG1pciBkb2NoIG5vY2ggbWFsIGJpdHRlIGRpZSBLYXJ0ZS4uLiAiIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkVpbiBQYXNzYWdpZXIgc2l0enQgbWl0IGVpbmVtIFBhcGFnZWkgaW0gRmx1Z3pldWcuIEtvbW10IGRpZSBTdGV3YXJkZXNzIHZvcmJlaQp1bmQgZnJhZyBpaG4gbmFjaCBzZWluZW4gV3VlbnNjaGVuLiBEZXIgTWFubjogIkJpdHRlIGVpbmVuIEthZmZlZSIsIGRlcgpQYXBhZ2VpOiAiVW5kIG1pciBicmluZ3N0IGR1IGVpbmVuIEtvcm4sIGR1IGFsdGUgU2NobGFtcGUhIi4gRGllIFN0ZXdhcmRlc3MKYnJpbmd0IGRhcyBHZXd1ZW5zY2h0ZSB1bmQgZnJhZ3QgbmFjaCBlaW5lciBoYWxiZW4gU3R1bmRlIGV0d2FzIHNhZXVlcmxpY2gKZXJuZXV0IG5hY2ggZGVuIFd1ZW5zY2hlbi4gRGVyIE1hbm46ICJXdWVyZGVuIFNpZSBtaXIgYml0dGUgZWluZW4gVGVlCmJyaW5nZW4/IiwgZGVyIFBhcGFnZWk6IlVuZCBpY2ggd2lsbCBqZXR6dCBlaW5lbiBHaW4sIGR1IGFsdGUgU2NobGFtcGUhIi4gREllClN0ZXdhcmRlc3MgYnJpbmd0IGRhcyBHZXd1ZW5zY2h0ZSB1bmQga29tbXQgbmFjaCBlaW5lciBoYWxiZW4gU3R1bmRlIGVybmV1dAp3aWVkZXIsIHVtIG5hY2h6dWZyYWdlbiwgZGllc21hbCBqZWRvY2ggc2Nob24gc3RpbmtzYXVlci4gRGVyIFBhc3NhZ2llciwgZGVyCmJpc2hlciBub2NoIGtlaW4gR2V0cmFlbmsgYmVrb21tZW4gaGF0IGltIEdlZ2Vuc2F0eiB6dW0gUGFwYWdlaSwgdWViZXJsZWd0CnNpY2gsIGRhc3MgZXIgZGEgd29obCB3YXMgZmFsc2NoIGdlbWFjaHQgaGF0LiBBbHNvIHNhZ3QgZXI6ICJCcmluZyBtaXIKZ2VmYWVsbGlnc3QgZWluZW4gS2FmZmVlLCBhbHRlIFNjaGxhbXBlISIuIERpZSBTdGV3YXJkZXNzIGlzdCBzbyBzYXVlciwgZGFzcwpzaWUgYmVpZGUgYXVzIGRlbSBGbHVnemV1ZyB3aXJmdC4gSW0gRmFsbCBmcmFndCBkZXIgUGFwZ2VpICJTYWcgbWFsLCBrYW5uc3QgZHUKZWlnZW50bGljaCBmbGllZ2VuPyIgRGVyIE1hbm46ICJOZWluLiIgRGFyYXVmaGluIGRlciBQYXBhZ2VpOiAiRGFmdWVyIGhhc3QgZHUKYWJlciBnZXJhZGUgZWJlbiBlaW5lIHZlcmRhbW10IGdyb3NzZSBLbGFwcGUgZ2VoYWJ0Li4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN0ZWh0IGVpbiBad2VyZyB2b3IgZGVyIG9lc3RlcnJlaWNoaXNjaGVuIEdyZW56ZSwgZWluIGtsZWluZXMgRWltZXJjaGVuIGluIGRlcgpIYW5kLiBSdWZ0ICJJY2gga29tbSBqZXR6dCB6dSBFVWNoIHJ1ZWJlciB1bmQgYmVrbGF1IGV1Y2ggbWl0IG1laW5lbQpFaW1lcmNoZW4hIiBEYXJhdWYgZGVyIEJlYW10ZSAibWFjaCBkYXNzIGR1IHdlZ2tvbW1zdCEiLiBEZXIgWndlcmcgZ2VodCB2b3IKZGllIHNjaHdlaXplcmlzY2hlIEdyZW56ZSB1bmQgcnVmdCB3aWVkZXIgIkljaCBrb21tIGpldHp0IHJ1ZWJlciB1bmQgYmVrbGF1CkV1Y2ggbWl0IG1laW5lbSBFaW1lcmNoZW4hIiBEYXJhdWZoaW4gd2llZGVyIGVpbiBCZWFtdGVyICJzY2hsZWljaCBkaWNoISIuCkdlaHQgZGVyIFp3ZXJnIGFuIGRpZSBwb2xuaXNjaGUgR3JlbnplLiBSdWZ0ICJJY2gga29tbSBqZXR6dCBydWViZXIgdW5kLi4uIC0KaGUsIHdvIGlzIGRlbm4gbWVpbiBFaW1lcmNoZW4/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCkFsc28sIGJpdHRlIG5pY2h0IHp1IHBlcnNvZW5saWNoIG5laG1lbi4uLiA6KSkpCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaXR6IChBY3JpbW9uLCAgOS4gSnVsIDE5OTYsIDE3OjUyOjA2KToKfiMhIHJuPUdyaW1tYm9ybiBydD04MzY4NDk4NjgKfiMhIHRpZD04MzY4NDk4NjgKRGFzIHNpbmQga2VpbmUgV2l0emUsIHNvbmRlcm4gaW5mYW1lIEx1ZWdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpdHogKEdhc3QxLCAxNi4gSnVsIDE5OTYsIDEwOjU0OjU3KToKCldpZSBuZW5udCBtYW4gZXMsIHdlbm4gZWluZSBGcmF1IGluIGRlciBLdWVjaGUgZmVzdGdla2V0dGV0IGlzdD8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBcnRnZXJlY2h0ZSBIYWx0dW5nLgoKOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2l0eiAoQW1hem9yYSwgMTYuIEp1bCAxOTk2LCAxODo1MTowNik6Cn4jISBybj1HYXN0MSBydD04Mzc1MDcyOTcKfiMhIHRpZD04Mzc1MDcyOTcKQm9haCBiaXN0IER1IGZlaWdlLCB2ZXJzdGVja3N0IERpY2ggaGludGVyIG5lbSBHYXN0LgpBbWF6b3JhIGlzdCBncnVuZHNhZXR6bGljaCBtYWVubmVyZmVpbmRsaWNoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aXR6ZSBhdXMgZGVyIGd1dGVuIGFsdGVuIFplaXQgKEFsYm9pbiwgMjAuIEp1bCAxOTk2LCAyMTo0OTowMik6ClVkbyBMaW5kZW5iZXJnIG1hY2h0IG5lIFRvdXJuZWUgZHVyY2ggZGllIFNvd2pldHVuaW9uIHVuZCBzdGlyYnQgcGxvZXR6bGljaCBhbgpIZXJ6aW5mYXJrdC5XZWlsIGVzIG1pdCBkZXIgVWViZXJmdWVocnVuZyBkZXIgTGVpY2hlIFNjaHdpZXJpZ2tlaXRlbiBnaWJ0CmJlc2NobGllc3N0IGRhcyBaSyBkZXIgS1BkU1UgZGllIExlaWNoZSBlaW56dWJhbHNhbWllcmVuIHVuZCBpbnMKTGVuaW4tTWF1c29sZXVtIG5lYmVuIExlbmluIHp1IGxlZ2VuLgpFaW5lbiBUYWcgc3BhZXRlciBnZWh0IEtsZWluLUtvbGphIG1pdCBzZWluZXIgTXV0dGVyIGlucyBNYXVzb2xldW0gdW5kIGZyYWd0OgonRHUgTWFtaSwgd2VyIGlzdCBkZW5uIGRlciBNYW5uIG5lYmVuIFVkbyBMaW5kZW5iZXJnPycKCk5hamEgZG9sbCBpc3NlciBuaWNodCwgYWJlciBlcyBzdGFuZCBld2lnIG5peCBpbiBkZXIgWmVpdHVuZy4uCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXJyZW5oYXVzd2l0eiAoQWxib2luLCAyMC4gSnVsIDE5OTYsIDIyOjQ3OjE0KToKRHJlaSBJcnJlIGltIElycmVuaGF1cyBiZXNjaGxpZXNzZW4gYXVzenVicmVjaGVuLgpTYWd0IGRlciBFcnN0ZTogJ0FtIGJlc3RlbiB3aXIgc3ByaW5nZW4gZHVyY2hzIFNjaGx1ZXNzZWxsb2NoLidEZXIgWndlaXRlIGlzdAplaW52ZXJzdGFuZGVuLkRhcmF1ZmhpbiByZW5udCBkZXIgRXJzdGUgdm9sbGUgV3VjaHQgZ2VnZW4gZGllIFR1ZXIgdW5kIGJsZWlidApvaG5tYWVjaHRpZyBsaWVnZW4uRGFuYWNoIHJlbm50IGRlciBad2VpdGUgdm9sbGUgV3VjaHQgZ2VnZW4gZGllIFR1ZXIgdW5kCmJsZWlidCBhdWNoIG9obm1hZWNodGlnIGxpZWdlbi5EYXJhdWZoaW4gb2VmZm5ldCBzaWNoIGRpZSBUdWVyIHVuZCBlaW4KV2FlY2h0ZXIga29tbXQgcmVpbiB1bmQgZnJhZ3Q6ICdXYXMgaXN0IGRlbm4gaGllciBsb3M/JyBTYWdlIGRlciBEcml0dGU6ICdBY2gKZGllIGJlaWRlbiB3b2xsdGVuIGR1cmNoIGRhcyBTY2hsdWVzc2VsbG9jaCBzcHJpbmdlbiwgYWJlciBpY2ggYmluIGphIG5pY2h0CmJsb2VkLCBoYWIgamEgZ2VzZWhlbiBkYXMgdm9uIGF1c3NlbiBkZXIgU2NobHVlc3NlbCBkcmluIHN0ZWNrdC4nCgpJc3QgYWx0LCBhYmVyIGljaCB3aWxsIG1hbCBkaWUgWmVpdHVuZyB2b2xsbXVlbGxlbiA7LSkKQWxib2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgprdWVyemVzdGVyIFN0dWRlbnRlbndpdHogKEdhc3QxLCAyMy4gSnVsIDE5OTYsIDIzOjIxOjMyKToKR2VoZW4gendlaSBTdHVkZW50ZW4gYW4gZWluZXIgS25laXBlIHZvcmJlaSAuLgoKR2FzdDEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBrdWVyemVzdGVyIFN0dWRlbnRlbndpdHogKENhcmFkaHJhcywgMjQuIEp1bCAxOTk2LCAxMDozMDoyMik6Cn4jISBybj1HYXN0MSBydD04MzgxNTY4OTIKfiMhIHRpZD04MzgxNTY4OTIKS3VlcnplciBpc3Q6CkdlaHQgZWluIFN0dWRlbnQgaW4gZGllIFZvcmxlc3VuZy4KCgogICAgICAgIGVpbiBGcm9zY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZToga3Vlcnplc3RlciBTdHVkZW50ZW53aXR6IChIYXIsIDI0LiBKdWwgMTk5NiwgMTA6MzM6MTIpOgp+IyEgcm49Q2FyYWRocmFzIHJ0PTgzODE5NzAyMgp+IyEgdGlkPTgzODE1Njg5MgpOb2NoIGt1ZXJ6ZXIuLi4uClN0ZWh0IGVpbiBTdHVkZW50IG1vcmdlbnMgYXVmLgoKSGFyIChtdWVkZSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGt1ZXJ6ZXN0ZXIgU3R1ZGVudGVud2l0eiAoTXVwZmVsLCAyNC4gSnVsIDE5OTYsIDE4OjU5OjIzKToKfiMhIHJuPUhhciBydD04MzgxOTcxOTIKfiMhIHRpZD04MzgxNTY4OTIKV2FydW0gc3RlaGVuIGRpZSBTdHVkZW50ZW4gaW4gT3NuYWJydWVjayB1bSBzZWNocyBVaHIgYXVmPwoKV2VpbCB1bSBoYWxiIHNpZWJlbiBkaWUgTGFlZGVuIHp1bWFjaGVuLgoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGt1ZXJ6ZXN0ZXIgU3R1ZGVudGVud2l0eiAoVGFzaGEsIDI0LiBKdWwgMTk5NiwgMTk6MDA6MzEpOgp+IyEgcm49TXVwZmVsIHJ0PTgzODIyNzU2Mwp+IyEgdGlkPTgzODE1Njg5MgpOdXIgRG9ubmVyc3RhZ3Mga29lbm5lbiBzaWUgd2FzIGxhZW5nZXIgc2NobGFmZW4uCgpUYXNoYSwgaGV1dGUgbWl0IGxhbmdlbSBCYXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWluZSBuZXR0ZSBmZWUgKFd1cnplbCwgMjQuIEp1bCAxOTk2LCAxOTo0NTo1Nik6CmVpbiBtYW5uIGxhZXVmdCBkdXJjaCBkZW4gd2FsZC4gZG9ydCB0cmlmZnQgZXIgZWluZSB3dW5kZXJzY2hvZW5lIGZlZSwgZGllCm5hdHVlcmxpY2ggbmljaHRzIGJlc3NlcmVzIHp1IHR1biBoYXQsIGFscyBpaG0gZHJlaSB3dWVuc2NoZSB6dSBlcmZ1ZWxsZW4uCmRlciBtYW5uIGlzdCBiZWdlaXN0ZXJ0IHZvbiBkZXIgYXVzc2ljaHQ6CmljaCBtb2VjaHRlIGVpbiBzY2hvZW5lcyBncm9zc2VzIGhhdXMsIHNhZ3QgZXIuCmtlaW4gcHJvYmxlbSwgc2FndCBkaWUgZmVlLgppY2ggd2lsbCBlaW5lIHd1bmRlcnNjaG9lbmUgbGllYmUgZnJhdSwgc2FndCBkZXIgbWFubi4Ka2VpbiBwcm9ibGVtLCBzYWd0IGRpZSBmZWUuCnVuZCBkYW5uIHdpbGwgaWNoIG5vY2ggZWluZW4gaGF1ZmVuIGdlbGQsIG1laHIgYWxzIGljaCB6dSBsZWJ6ZWl0ZW4gYXVzZ2ViZW4Ka2Fubiwgc2FndCBkZXIgbWFubi4KYXVjaCBkYXMgaXN0IGtlaW4gcHJvYmxlbSwgc2FndCBkaWUgZmVlLiBnZWggamV0enQgZWluZmFjaCBuYWNoIGhhdXNlIHVuZApsZWcgZGljaCBzY2hsYWZlbiwgdW5kIG1vcmdlbiBmcnVlaCBpc3QgZGFzIGVybGVkaWd0LgpkZXIgbWFubiBkYW5rdCBkZXIgZmVlIHVlYmVyc2Nod2VuZ2xpY2ggdW5kIGVpbHQgdm9sbGVyIHZvcmZyZXVkZSBuYWNoIGhhdXNlLgoKYW0gbmFlY2hzdGVuIG1vcmdlbiB3YWNodCBlciBpbiBlaW5lbSB3dW5kZXJiYXJlbiBncm9zc2VuIGJldHQgYXVmLCBkYXMgCm9mZmVuc2ljaHRsaWNoIGluIGVpbmVtIHNjaGxvc3Mgc3RlaHQsIHVuZCBlaW5lIHd1bmRlcnNjaG9lbmUgZnJhdSBydWV0dGVsdAppaG4gd2FjaDoKc3RlaCBhdWYsIGZyYW56IGZlcmRpbmFuZCwgZXMgaXN0IHNjaG9uIHNwYWV0IHVuZCB3aXIgbXVlc3NlbiBkb2NoIGhldXRlCm5hY2ggc2FyYWpldm8uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZWluZSBuZXR0ZSBmZWUgKExpLCAyNS4gSnVsIDE5OTYsIDE0OjM3OjAzKToKfiMhIHJuPVd1cnplbCBydD04MzgyMzAzNTYKfiMhIHRpZD04MzgyMzAzNTYKT2ggbWVpbiBKb2YsIGVpbmUgemllbWxpY2ggbWllc2UgRmVlISA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBoeXNpa2VyLXdpdHouLi4gKEhhciwgMjYuIEp1bCAxOTk2LCAxNTo1OTowMSk6CkVpbiBQaHlzaWtlciwgZWluIG1hdGhlbWF0aWtlciB1bmQgZWluIGJpb2xvZ2Ugd2VyZGVuIG1pdCBkZXIgQXVmZ2FiZQprb25mcm9udGllcnQsIGRlbiBBdXNnYW5nIGVpbmVzIFBmZXJkZXJlbm5lbnMgdm9yaGVyenVzYWdlbi4KRGVyIGJpb2xvZ2Ugc2FndDogTmFqYSwgZWluIHBmZXJkIGhhdCA0IGJlaW5lIHVuZCBsYWV1ZnQsIGFiZXIgbWVociBrYW5uIGljaAphdWNoIG5pY2h0IGRhenUgc2FnZW4uCkRlciBtYXRoZW1hdGlrZXIgc2NoYXV0IGlzY2ggZGllIEVyZ2Vibmlzc2UgZGVyIGxldHp0ZW4gNSBSZW5uZW4gYW4sIHJlY2huZXQKbGVndCBuZSBHYXVzc2t1cnZlIGR1cmNoIGV0Yy4gdW5kIGtvbW10IGF1Y2ggenUga2VpbmVtIHZlcm51ZW5mdGlnZW4KRXJnZWJuaXNzLgpEZXIgUGh5c2lrZXIgc2FndCBuYWNoIGVpbmlnZW4gdWViZXJsZWd1bmdlbjogSWNoIGhhZXR0ZSBkYSBuZSBsb2VzdW5nLCBhYmVyCm51ciB3ZW5uIGRpZSBQZmVyZGUgcHVua3Rmb2VybWlnIHNpbmQgdW5kIGRhcyBSZW5uZW4gaW0gVmFrdXVtIHN0YXR0ZmluZGV0LgoKSGFyIChDaGVtaWtlcikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlci1XaXR6IChDYXVubywgMjYuIEp1bCAxOTk2LCAxNjowNDo1NCk6CgpFaW4gSW5nZW5pZXVyLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBNYXRoZW1hdGlrZXIgbXVlc3NlbiBqZWRlciBlaW5lIFdvY2hlIGluCmVpbmVyIEVpbnplbHplbGxlIHZlcmJyaW5nZW4uIEplZGVyIGhhdCBnZW51ZyBLb25zZXJ2ZW4sIGFiZXIga2VpbmVyIGVpbmVuCkRvc2Vub2VmZm5lciBkYWJlaS4KTmFjaCBlaW5lciBXb2NoZSB3aXJkIGRpZSBUdWVyIGRlcyBJbmdlbml1ZXJzIGdlb2ZmbmV0LiBEZXIgc2l0enQgZ3V0IGdlbmFlaHJ0CmF1ZiBkZXIgUHJpdHNjaGUsIGRpZSBEb3NlbiBhbGxlIGdlb2VmZm5ldCBpbiBlaW5lciBFY2tlIGRlciBaZWxsZS4gRGVyCkluZ2VubmlldXIgZXJrbGFlcnQ6CiAgICJJY2ggaGF0dGUgbm9jaCBlaW5lbiBEcmFodCBkYWJlaSwgbWl0IGRlbSBoYWJlIGljaCBkaWUgRG9zZW4gZ2VvZmZuZXQuIgpEYW5ubiB3aXJkIGJlaW0gUGh5c2lrZXIgZGllIFR1ZXIgZ2VvZmZuZXQuIERlciBTaXR6IGF1Y2ggZ2VzdW5nIGF1ZiBkZXIKUHJpdHNjaGUsIGRpZSBlaW5lIEhhZWxmdGUgZGVyIERvc2VuIGdlb2VmZm5ldCBpbiBlaW5lciBFY2tlLCBkaWUgYW5kZXJlCkhhZWxmdGUgdmVyYmV1bHQgaW4gZGVyIGFuZGVyZW4gRWNrZSBkZXIgWmVsbGUuIERlciBQaHlzaWtlciBlcmtsYWVydDoKICAgIkljaCBoYWJlIGRpZSBEb3NlbiBnZWdlbiBkaWUgV2FuZCBnZXdvcmZlbm5uLCB1bmQgYmVpIGV0d2EgZGVyIEhhZWxmdGUKZmFuZCBpY2ggZGVuIHJpY2h0aWdlbiBXdXJmd2lua2VsIHVuZCBkaWUgRG9zZW4gc3ByYW5nZW4gYXVmLiIKQWxzIGJlaW0gTWF0aGVtYXRpa2VyIGRpZSBUdWVyIGdlb2VmZm5ldCB3aXJkLCBzaXR6dCBkZXIgYXVzZ2VodW5nZXJ0IGF1ZiBkZXIKUHJpdHNjaGUuIERpZSBEb3NlbiBzdGVoZW4gc2F1YmVyIGF1ZmdlcmVpaHQgYW4gZGVyIFdhbmQsIGVpbmUgaGFlbHQgZGVyCk1hdGhlbWF0aWtlciB2b3Igc2ljaCB1bm5kIG11cm1lbHQ6CiAgICJJY2ggZGVmaW5pZXJlIGRpZXNlIERvc2UgYWxzIG9mZmVuISIKCkMuIE5vIChhdWNoIENoZW1pa2VyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGVpbmUgbmV0dGUgZmVlIChSYWZmaSwgMjYuIEp1bCAxOTk2LCAxNjoxNjozNSk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODM4MjMwMzU2Cn4jISB0aWQ9ODM4MjMwMzU2CgpBdWEgLSBkYXMgaXN0IGRlZmluaXRpdiAgZGVyIGJlc3RlIE9lc2l3aXR6IGFsbGVyIFplaXRlbi4KCkdyaW5zCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYXRoZW1hdGlrZXJ3aXR6IHUuYWUuIChBenp1cm8sIDI2LiBKdWwgMTk5NiwgMTg6NTc6MTEpOgpFaW4gUGhpbG9zb3BoLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBNYXRoZW1hdGlrZXIgZmFocmVuIG1pdCBkZW0gWnVnIGR1cmNoIGVpbgpmcmVtZGVzIExhbmQuCkF1ZiBlaW5tYWwgZXJibGlja3QgZGVyIFBoaWxvc29waCBlaW4gc2Nod2FyemVzIFNjaGFmIGF1ZiBkZXIgV2VpZGUgdW5kIGZhZW5ndAphbjoKIk9oIHdlbGNoIGVpbiBMYW5kPyEgSW4gZGllc2VtIGFjaCBzbyB3dW5kZXJiYXJlbiBGbGVja2VuIEVyZGUgc2luZCBhbGxlClNjaGFmZSBzY2h3YXJ6LiIKTWVpbnQgZGVyIFBoeXNpa2VyOiJOdW5qYSwgd2lyIGtvZW5uZW4gaW0gaG9lY2hzdGZhbGwgZGF2b24gYXVzZ2VoZW4sIGRhc3MgaW4KZGllc2VtIExhbmQgbWluZGVzdGVucyBlaW4gU2NoYWYgc2Nod2FyeiBpc3QuIgpEYXJhdWYgZGVyIE1hdGhlbWF0aWtlcjoiQWxzbyBtZWluZSBIZXJyZW4sIGJsZWliZW4gc2llIGtvcnJla3QuIFdpciBrb2VubmVuCmhvZWNoc3RlbnMgZm9sZ2VybiwgZGFzIGluIGRpZXNlbSBMYW5kIGVpbiBTY2hhZiBleGlzdGllcnQsIGRhcyBtaW5kZXN0ZW5zIGF1ZgplaW5lciBTZWl0ZSBzY2h3YXJ6IGlzdC4iCgpBenp1cm8gKEJXTGVyIHVuZCBlciBoYXN0IGRpZXNlIEFydCB2b24gV2l0emVuIDopICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxvZXdlIGluIGRlciBXdWVzdGUgKFRpbm8sIDI3LiBKdWwgMTk5NiwgMDY6MjY6NDkpOgpFaW4gSW5mb3JtYXRpa2VyLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBNYXRoZW1hdGlrZXIgYmVrb21tZW4gZGVuIEF1ZnRyYWcsCmVpbmVuIExvZXdlbiBpbiBkZXIgV3Vlc3RlIHp1IGZhbmdlbi4KCkRlciBJbmZvcm1hdGlrZXIgemllaHQgYWxzbyBlaW5lbiBaYXVuIHF1ZXIgZHVyY2ggZGllIFd1ZXN0ZSB1bmQgc2llaHQgZGFubgpuYWNoLCBhdWYgd2VsY2hlciBTZWl0ZSBkZXMgWmF1bmVzIGRlciBMb2V3ZSBpc3QsIGRhbm4gdW50ZXJ0ZWlsdCBlciBkaWVzZW4KVGVpbCBtaXQgZWluZW0gWmF1bi4gRGFzIGZ1ZWhydCBlciBzbyBsYW5nZSBmb3J0LCBiaXMgZGVyIExvZXdlIHVubWl0dGVsYmFyCnZvbiBaYWV1bmVuIHVtZ2ViZW4gaXN0LgoKRGVyIFBoeXNpa2VyIHVlYmVybGVndCBzaWNoLCBpbiB3ZWxjaGVyIFplaXQgZXIgdW5nZWZhZWhyIGRhcyBQcm9ibGVtIGdlbG9lc3QKaGFiZW4gbW9lY2h0ZS4gRGFubiBzdGVsbHQgZXIgaW4gZGVyIFd1ZXN0ZSBzbyB2aWVsZSBGYWxsZW4gYXVmLCBkYXNzIGRlcgpMb2V3ZSBtaXQgOTAlaWdlciBXYWhyc2NoZWlubGljaGtlaXQgbmFjaCBkZXIgWmVpdCBpbiBlaW5lIGRlciBGYWxsZW4gZ2VnYW5nZW4Kc2VpbiBtdXNzLgoKRGVyIE1hdGhlbWF0aWtlciBtYWNodCBlcyBhbGxlcmRpbmdzIGFtIGVpbmZhY2hzdGVuLiBFciBzdGVsbHQgc2ljaCBpbiBkaWUKTWl0dGUgZGVyIFd1ZXN0ZSB1bmQgaW52ZXJ0aWVydCBlaW5mYWNoIGRlbiBSYXVtLgoKVGlubwpQUzogT0ssIGtlaW4gZ3V0ZSBXaXR6LCBhYmVyIGVya2xhZXJ0IHNlaHIgYW5zY2hhdWxpY2ggZGllIHZlcnNjaGllZGVuZW4KRGVua3dlaXNlbiB1bmQgQW5zYWV0emUuClBQUzogSWNoIHN0dWRpZXJlIE1hdGhlbWF0aWsgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbGxvbmZhaHJlciAoQ2F1bm8sIDI5LiBKdWwgMTk5NiwgMTE6NDY6NDQpOgoKRWluIE1hbm4gZmFlaHJ0IGltIEJhbGxvbiwgZ2VyYWV0IGluIGVpbmVuIE5lYmVsIHVuZCB2ZXJpcnJ0IHNpY2guIEFsc28gbGFlc3N0CmVyIGVpbiBTZWlsIHp1IEJvZGVuIHVuZCBrbGV0dGVydCBkYXJhbiBoaW51bnRlci4gRG9ydCB0cmlmZnQgZXIgZWluZW4KUGFzc2FudGVuLiBEZW4gZnJhZ3QgZXI6CiAgICJXbyBiaW4gaWNoPyIKICAgRGVyIFBhc3NhbnQgdWViZXJsZWd0LiBFciB1ZWJlcmxlZ3QuIFVuZCB1ZWJlcmxlZ3QgLi4uIE5hY2ggZWluaWdlciBaZWl0Cm1laW50IGVyIHNjaGxpZXNzbGljaDoKICAiVW50ZXIgZWluZW0gQmFsbG9uLiIKICBBbiB3ZWxjaGVuIGRyZWkgUHVua3RlbiBrYW5uIG1hbiBlcmtlbm5lbiwgZGFzcyBkZXIgUGFzc2FudCBlaW4KTWF0aGVtYXRpa2VyIGlzdD8KCgoKCgoKCgoKCgoKCkVyc3RlbjogRXIgaGF0IHNlaHIgbGFuZ2UgdWViZXJsZWd0Lgpad2VpdGVuczogRXIgZ2FiIGVpbmUgdm9lbGxpZyBrb3JyZWt0ZSBBbnR3b3J0LgpVbmQgZHJpdHRlbnM6IEtlaW4gTWVuc2NoIGthbm4gd2FzIGRhbWl0IGFuZmFuZ2VuLgoKCkMuIE5vIChkZXIgbXVzc3RlIGVpbmZhY2ggbm9jaCBzZWluKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExvZXdlIGluIGRlciBXdWVzdGUgKExvY28sIDI5LiBKdWwgMTk5NiwgMTQ6MDk6MTYpOgp+IyEgcm49VGlubyBydD04Mzg0NDE2MDkKfiMhIHRpZD04Mzg0NDE2MDkKRXMgZ2lidCBtaW5kZXN0ZW5zIDI1IE1ldGhvZGVuLCBMb2V3ZW4gaW4gZGVyIFd1ZXN0ZSB6dSBmYW5nZW4gLSBpY2ggaGFiZQplaW5pZ2UgZGF2b24gaW4gZWluZW0gQnVjaCB6dSBIYXVzZS4gRmFsbHMgSW50ZXJlc3NlIGJlc3RlaHQsIGthbm4gaWNoIHNpZSBqYQphbHMgU2VyaWUgcG9zdGVuIDopCgpNZWluIHBlcnNvZW5saWNoZXIgRmF2b3JpdDoKCkRpZSBOZXd0b25zY2hlIE1ldGhvZGU6CgpLYWVmaWcgdW5kIExvZXdlIHNpbmQgTWFzc2VuLCB6aWVoZW4gc2ljaCBhbHNvIGdlZ2Vuc2VpdGlnIGFuLiBXaXIKdmVybmFjaGxhZXNzaWdlbiBkaWUgUmVpYnVuZy4gRnJ1ZWhlciBvZGVyIHNwYWV0ZXIgbGFuZGV0IGRlciBMb2V3ZSBpbSBLYWVmaWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gc3ByZWNoZW5kZXIgRnJvc2NoIChHcmltbWJvcm4sIDI5LiBKdWwgMTk5NiwgMTQ6NDc6MzIpOgoKRWluIE1hbm4gZ2VodCBkdXJjaCBkaWUgU3RyYXNzZW4gYWxzIGVpbiBGcm9zY2ggYW0gV2VnZXNyYW5kIGlobiBhbnNwcmljaHQ6CiJJY2ggYmluIGVpbmUgdmVyd3Vuc2NoZW5lIFByaW56ZXNzaW4hIgpEZXIgTWFubiBzdHV0enQsIGJ1ZWNrdCBzaWNoIHVuZCBuaW1tdCBkZW4gRnJvc2NoIGF1Zi4gRXIgc2NoYXV0IGlobiBzaWNoCmdlbmF1IGFuIHVuZCBzdGVja3QgaWhuIGRhbm4gaW4gZGllIEhvc2VudGFzY2hlLgpEZXIgRnJvc2NoIGlzdCB2ZXJkYXR0ZXJ0LCBkYW1pdCBoYXR0ZSBlciBuaWNodCBnZXJlY2huZXQuIEVyIGZhZW5ndCBhbiB6dQpzdHJhbXBlbG4gdW5kIGRlciBNYW5uIGhvbHQgaWhuIHdpZWRlciBoZXJ2b3IuIERlciBGcm9zY2g6CiJJY2ggYmluIGVpbmUgdmVyd3Vuc2NoZW5lIFByaW56ZXNzaW4sIGt1ZXNzIG1pY2ghIiAKRGVyIE1hbm4gZ3JpbnN0IHVuZCBzdGVja3QgZGVuIEZyb3NjaCB6dXJ1ZWNrIGluIGRpZSBIb3NlbnRhc2NoZS4gRGVyIEZyb3NjaAp3dW5kZXJ0IHNpY2guIFNvIHdhciBkYXMgamEgbmljaHQgZ2VkYWNodCBnZXdlc2VuLiBBbHNvIGZhZW5ndCBlciB3aWVkZXIgYW4genUKc3RyYW1wZWxuIHVuZCB3aXJkIHdpZWRlciBoZXJ2b3JnZWhvbHQuCiJJY2ggYmluIGVpbmUgdmVyd3Vuc2NoZW5lIFByaW56ZXNzaW4sIHdlbm4gRHUgbWljaCBrdWVzc3QgZGFyZnN0IER1IGFsbGVzIG1pdAptaXIgbWFjaGVuISIKRGVyIE1hbm4gZ3JpbnN0IGJyZWl0IHVuZCBzdGVja3QgZGVuIEZyb3NjaCB3aWVkZXIgaW4gZGllIEhvc2VudGFzY2hlLiBEZXIKRnJhb3NjaCBpc3Qgdm9lbGxpZyB2ZXJ6d2VpZmVsdCwgZGFzIGhhdHRlIGVyIHNpY2ggYW5kZXJzIHZvcmdlc3RlbGx0LiBFcgpmYWVuZ3Qgd2llZGVyIGFuIHp1IHN0cmFtcGVsbiwgdW5kIGRlciBNYW5uIGhvbHQgaWhuIHdpZWRlciBhdXMgZGVyCkhvc2VudGFzY2hlLgoiSG9lciBtYWwsIGljaCBiaW4gZWluZSB2ZXJ3dW5zY2hlbmUgUHJpbnplc3Npbiwgd2VubiBEdSBtaWNoIGt1ZXNzdCBrYW5uc3QgRHUKYWxsZXMgbWl0IG1pciBtYWNoZW4sIHdpZXNvIGt1ZXNzdCBEdSBtaWNoIG5pY2h0PyBTdGltbXQgd2FzIG5pY2h0IG1pdCBEaXIsCmJpc3QgRHUga3Jhbmsgb2RlciB3YXM/IgpHcmluc3QgZGVyIE1hbm46ICJJY2ggYmluIEluZm9ybWF0aWtlciwgZnVlciBGcmF1ZW4gaGFiZSBpY2gga2VpbmUgWmVpdC4gQWJlcgplaW5lbiBzcHJlY2hlbmRlbiBGcm9zY2ggZmluZCBpY2ggY29vbC4iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCYWxsb25mYWhyZXIgKERhdWVyZ2FzdCwgMzAuIEp1bCAxOTk2LCAxMTozNDo0MCk6Cn4jISBybj1DYXVubyBydD04Mzg2MzM2MDQKfiMhIHRpZD04Mzg2MzM2MDQKSG0sIENhdW5vLCBpY2ggZ2xhdWJlLCBEdSBoYXN0IERBUyBFcmtlbm51bmdzemVpY2hlbgplaW5lcyBNYXRoZW1hdGlrZXJzIHZlcmdlc3NlbjoKCkVyIGhhdCBTYW5kYWxlbiBhbiEhCgpERyAKKFRoZW9yZXRpc2NoZXIgU2NoZW1pa2VyLCBhbHNvIHNvIHdhcyBhZWhubGljaGVzOyBNSVQgU2FuZGFsZW4pIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUm90a2FlcHBjaGVuICYgQ28uIChNYW5nbywgMzAuIEp1bCAxOTk2LCAxMjoyODoxMSk6CgoKClJvdGthZXBwY2hlbiBnZWh0IGdlZGFua2VudmVybG9yZW4gZHVyY2ggZGVuIFdhbGQsIGRhIGVudGVja3QgZXMgZGVuIGdyb3NzZW4KYm9lc2VuIFdvbGYgaGludGVyIGVpbmVtIEdlYnVlc2NoLgpGcmFndCBEYXMgUm90a2FlcHBjaGVuOiBBYmVyIFdvbGYsIHdhcyBoYXN0IER1IGRlbm4gZnVlciBncm9zc2UgQXVnZW4/CkFudHdvcnRldCBkZXIgV29sZjogTmljaHQgbWFsIGluIFJ1aGUgc2NoZWlzc2VuIGthbm4gbWFuIGhpZXIhCgoKClZvbiBpcmdlbmRlaW5lbSBrbGVpbmVuIEtub3BmIGdlaG9lcnQuCgoKTWFuZ28sIEZGIG5lYmVuYmVpLgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCYWxsb25mYWhyZXIgKENhdW5vLCAzMS4gSnVsIDE5OTYsIDEzOjU2OjE2KToKfiMhIHJuPURhdWVyZ2FzdCBydD04Mzg3MTkyODAKfiMhIHRpZD04Mzg2MzM2MDQKCkFsc28sIGRhcyBpc3QgbWlyIG5ldS4gT2IgZGFzIFZvcnVydGVpbCBzdGltbXQsIGJlendlaWZsZSBpY2guCgpDLiBObyAoc2VsYmVyIFRoZW9yZXRpa2VyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQmFsbG9uZmFocmVyIChSYWZmaSwgIDEuIEF1ZyAxOTk2LCAxMjo1OToxMCk6Cn4jISBybj1DYXVubyBydD04Mzg4MTQxNzYKfiMhIHRpZD04Mzg2MzM2MDQKCkljaCBrZW5uZSBEYXVlciogLSB3ZW5uIGRlciBzYWd0IGRhcyBpc3Qgc28sIGRhbm4gaXN0IGRhcyBzby4KCihhdXNzZXJkZW0gdHJhZWd0IGVyIHdpcmtsaWNoIFNhbmRhbGVuIHVuZCB3dWVobHQgaW4gZWxsZW5sYW5nZW4gRjc3ClByb2dyYW1tZW4pCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQmFsbG9uZmFocmVyIChDYXVubywgIDEuIEF1ZyAxOTk2LCAxMzoyMzoxMCk6Cn4jISBybj1SYWZmaSBydD04Mzg4OTcxNTAKfiMhIHRpZD04Mzg2MzM2MDQKCk1hZyBzZWluLiBpY2gga2VubiBkYSBhdWNoIGVpbmVuLCBtaXQgU2FuZGFsZW4sIGluIEY3Ny1Qcm9ncmFtbWVuIHd1ZWhsZW5kLgpTY2hlaW50IGRvY2ggenUgc3RpbW1lbiwgaWNoIGJpbiBkYSB3b2hsIGRpZSBBdXNuYWhtZSAoaW4gQmV6dWcgYXVmIFNhbmRhbGVuKS4KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbnRlcnByaXNlIChtYWwgd2llZGVyKSAoQ2F1bm8sICAyLiBBdWcgMTk5NiwgMTU6MjE6MzQpOgpzb2ViZW4gZ2VmdW5kZW46CgpUb3AgVGVuIExpc3Qgb2YgVGhpbmdzIFlvdSdsbCBOZXZlciBIZWFyIG9uIHRoZSBVLlMuUy4gRW50ZXJwcmlzZS1ECgoxMC4gIk5vLCBwbGVhc2UsIERhdGEsIGdvIG9uLiBJIGZpbmQgeW91ciBsaXN0IG9mIHN5bm9ueW1zIGZvciAnZXh0aW5jdCcKICAgIGZhc2NpbmF0aW5nLiIKOS4gICJHb29kIHdvcmsgQ291bnNlbG9yLiBJIHlvdSBoYWRuJ3QgdG9sZCB1cyB0aG9zZSBhbGllbnMgaGFkIGhvc3RpbGUKICAgIGludGVudCwgd2Ugd291bGQgaGF2ZSBiZWVuIGNvbXBsZXRlbHkgZm9vbGVkIGJ5IHRoZWlyIHBsYW4uIgo4LiAgIkplYW4tTHVjLCBzaW5jZSB0aGUgc2hpcCBpcyBpbiBubyBkYW5nZXIsIGFuZCB3ZSdyZSBub3QgYWJvdXQgdG8gZGllLCBJCiAgICB3YW50IHRvIHRlbGwgeW91IC4gLiAuIgo3LiAgIlRoZSBkb29oaWNrZXkgaGFzIGdvbmUgYWxsIC4uLiBmdW5ueSwgbWFraW5nIHRoYXQgZ2l6bW8gbGlnaHQgdXAgLi4uCiAgICB0aGUgb25lIHRoYXQgbWVhbnMgdGhlIHdhcnAgZW5naW5lcyBhcmUgLi4uIHlvdSBrbm93IC4uLiBhbGwgbWVzc2VkIHVwLiIKNi4gICJDYXB0aWFuJ3MgbG9nLiAgU3RhcmRhdGUgLi4uIGRhbW4uICBXaGF0J3MgdGhlIHN0YXJkYXRlPyAgTnVtYmVyIE9uZSwKICAgIHdoYXQncyB0b2RheT8gTm8sIEkga25vdyBpdCdzIHR1ZXNkYXkuIFdoYXQncyB0aGUgZGF0ZT8gIFRIRSBTVEFSREFURSEiIAo1LiAgIlRlYSEgIExlbW9uIFppbmdlciEgIEhvdCEiCjQuICAiS2xpbmdvbidzIGRvIE5PVCB3ZWFyIGZyaWxseSB1bmRlcndlYXIhICBBdCBsZWFzdCwgbm90IG9uIGR1dHkuIgozLiAgIlByaW1lIERpcmVjdGl2ZT8gIFdlIGRvbid0IG5lZWQgb24gc3RlZW5raW4nIFByaW1lIERpcmVjdGl2ZS4iCjIuICAiQ2FwdGlhbi4gVGhlIGFsaWVucyBhcmUgbG9ja2luZyB0aGVpciB3ZWFwb25zIC4uLiBmaXJpbmcgLi4uIGEgbWlzcy4KICAgIFNoYWxsIEkgb3BlbiBoYWlsaW5nIGZyZXF1ZW5jaWVzIHNvIHlvdSBjYW4gbGF1Z2ggaW4gdGhlaXIgZmFjZXM/IgoxLiAgIkFoLCBoZWxsLiBJJ20gYm9yZWQuIEZvcmdldCB0aGUgaGFpbGluZyBmcmVxdWVuY2llcy4gRmlyZSBhdCB3aWxsISIKCkF1cyBkZW0gTmV0eiBnZXpvZ2VuIHZvbiBDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaG4gV2l0eiAoR29yZG8sICA5LiBBdWcgMTk5NiwgMDM6NDU6NDIpOgpyZXBvcnQgZWluCnJlcG9ydCBhdXMKV2FydW0gZ2lidCBtYW4gZGVuIEJhYnlzIGJlaSBkZXIgZ2VidXJ0IGVpbmVuIGtsYXBwcyBhdWYgZGVuIEhpbnRlcm4/CgoKCgoKCgoKCgpEYW1pdCBkZW4gRHVtbWVuIGRlciBTY2huaWVkZWwgYWJmYWVsbHQgIDopCgoKTmFqYSBpY2ggYmluIGphIHNvbnN0IG5pY2h0IFNleGlzdGlzY2gsYWJlciBkZW4gZmluZCBpY2ggZWluZmFjaCBndXQ6KSkpCgpHb3JkbyAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBtci4gc3RpdGNoICBlaW4gZmlsbSAoSm9yaW5kZSwgMTIuIEF1ZyAxOTk2LCAxOTo0NToyNSk6Cn4jISBybj1NdWFkaWIgcnQ9ODM5ODcwNjMxCn4jISB0aWQ9ODM5ODcwNjMxCjxFcnphZWhsdCBtaXIgZG9jaCBuZXVsaWNoIEVuZ3l3dWNrIGRlbiBXaXR6IGRlcyBKYWhyaHVuZGVydHMhCgpaaXRhdCBFbmd5d3VjazogIiBJY2ggYmluIHNjaHVlY2h0ZXJuIiBaaXRhdGVuZGUhCgoKCkpvcmluZGUga2FubiBudXIgbm9jaCBsYWNoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmFkIGltIEludGVybmV0IGdlZnVuZGVuLi4uIChTbnlkZSwgMTYuIEF1ZyAxOTk2LCAxMjoyNjowNSk6ClRoZSBDIFByb2dyYW1tZXIKCiAgICAgR29kIGNvbnN1bHRzIHdpdGggdGhlIEMgcHJvZ3JhbW1lciBvbiBldmVyeSBtYWpvciBpc3N1ZS4KCiAgICAgVGhlIEMgcHJvZ3JhbW1lciBjYW4gd2FsayBvbiB3YXRlci4gCgogICAgIEhlIHByb2dyYW1zIG9uIGEgUDkwIHdpdGggOCBNZWcgUkFNIHcvIE1hY2gzMi4gSGUgY2FuIHByb2dyYW0gCiAgICAgYSBncmFwaGljYWwgc3ByZWFkc2hlZXQgaW4gYWJvdXQgMmRheXMuIAoKCiAgICAgVGhlIEMgcHJvZ3JhbW1lciB0ZW5kcyB0byBwdXQgIigpIiBhZnRlciBldmVyeSBtYWpvciB2ZXJiIHdoZW4KICAgICB0aGV5IHRhbGsgb3Igd3JpdGU6ICJhcmUgeW91IGdvaW5nKCkgdG8gc2VlKCkgTklOIHRvbW9ycm93PyAKICAgICBJJ2xsIHRyeSgpIHRvIGdldCgpIHRpY2tldHMhIiAKClRoZSBWQiBQcm9ncmFtbWVyCgogICAgIFRoZSBWQiBwcm9ncmFtbWVyIGRvZXMgbHVuY2ggd2l0aCBHb2QgZXZlcnkgZGF5LiAKCiAgICAgIEhlIGlzIGFuIG9seXBpYyBjbGFzcyBzd2ltbWVyLiAKCiAgICAgSGUgcHJvZ3JhbXMgb24gYSA0ODZkeC8yIDY2IHdpdGggOCBNZWcgUkFNIHcvIFNWR0EgYW5kIGNhbiBwcm9ncmFtIAogICAgIGEgZ29vZCB0ZXh0IGJhc2VkIHNwcmVhZCBzaGVldCBpbiBhIGxpdHRsZSBvdmVyIGEgd2Vlay4gCgpUaGUgVHVyYm8gUGFzY2FsIFByb2dyYW1tZXIKCiAgICAgVGhlIFR1cmJvIFBhc2NhbCBwcm9ncmFtbWVyIG9jY2FzaW9uYWxseSBoYXMgYSB3b3JkIHdpdGggR29kLiAKCiAgICAgSGUgY2FuIHN3aW0gcHJldHR5IHdlbGwuIAoKICAgICBIZSBwcm9ncmFtcyBvbiBhIDQ4NmR4IDMzIHdpdGggNE1lZyBSQU0gYW5kIGNhbiBwcm9ncmFtIGEgCiAgICAgY29tcGxpY2F0ZWQgc2NpZW50aWZpYyBjYWxjdWxhdG9yIGluIGEgd2VlayBhbmQgYSBoYWxmLiAKCiAgICAgVGhlIFRQIFByb2dyYW1tZXIgdGVuZHMgdG8gcHV0ICJiZWdpbiIgYW5kICJlbmQiIGJlZm9yZSBldmVyeSAKICAgICBtYWpvciB0b3BpYzogImJlZ2luIFRoYXQgbmV3IGdhbWUgaXMgYXdlc29tZSwgbWFuISBlbmQiIAoKVGhlIEZvcnRyYW4gUHJvZ3JhbW1lcgoKICAgICBUaGUgRm9ydHJhbiBwcm9ncmFtbWVyIHNvbWV0aW1lcyBjYXRjaGVzIGEgZ2xpbXBzZSBvZiBHb2QuIAoKICAgICBIZSBtYW5hZ2VzIHRvIGtlZXAgaGltc2VsZiBhZmxvYXQgaW4gc2hhbGxvdyB3YXRlci4gCgogICAgIEhlIHByb2dyYW1zIG9uIGEgREVDIFZBWCB3aXRoIGEgVlQxMDAgKGhlJ3MgdG9vIG1hbmx5IAogICAgIGZvciBhIEdVSSkuIEEgRm9ydHJhbiBwcm9ncmFtbWVyIGNhbiBkbyBhIHBhc3NhYmxlIGNhbGN1bGF0aW9uIAogICAgIGRldmljZSBpbiBhIGZldyB3ZWVrcy4gCgogICAgIE5vYm9keSByZWFsbHkga25vdyBob3cgRm9ydHJhbiBwcm9ncmFtbWVycyB0YWxrIGJlY2F1c2UgCiAgICAgdGhlcmUgYXJlIHNvIGZldyBvZiB0aGVtIHRoZXNlIGRheXMuIAoKVGhlIFFCQVNJQyBQcm9ncmFtbWVyCgogICAgIFRoZSBRQkFTSUMgcHJvZ3JhbW1lciBrbm93cyB3aG8gR29kIGlzLiAKCiAgICAgSGUgaGFzIHRyb3VibGUgYXZvaWRpbmcgZHJvd25pbmcgaW4gaGlzIG93biBiYXRodHViLiAKCiAgICAgUUJBU0lDIHByb2dyYW1tZXIgd29ya3Mgb24gYSA0ODZzeCAyNSB3aXRoIDQgTWVnIFJBTS4gSGUgY2FuIAogICAgIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IGFjY2VwdHMgdHdvIG51bWJlcnMgYW5kIGFkZHMgdGhlbSB0b2dldGhlciAKICAgICBpbiBqdXN0IHVuZGVyIDQgd2Vla3MuIAoKVGhlIExPR08gUHJvZ2FtbWVyCgogICAgIEFib3V0IHRoZSBvbmx5IHRoaW5nIGEgTG9nbyBwcm9ncmFtbWVyIGtub3dzIGFib3V0IEdPRCBpcyB0aGF0CiAgICAgdGhlIHdvcmQgaXMgc2hvcnQgZW5vdWdoIGZvciBoaW0gdG8gc291bmQgb3V0LCBidXQgaGUgaGFzIHRyb3VibGUgCiAgICAgc3BlbGxpbmcgaXQuIAoKICAgICBIZSB3ZXRzIGhpbXNlbGYgd2l0aCBhIHNxdWlydCBndW4uIAoKICAgICBIZSBwcm9ncmFtbXMgb24gYW4gQXBwbGUgSUljLCBhbmQgY2FuIGRvIGEgcHJvZ3JhbSB0aGF0IHB1dHMgYSAKICAgICBib3ggb24gdGhlIHNjcmVlbiB0aGF0IHNvbWUgbWF5IGFyZ3VlIGxvb2tzIGxpa2UgYSBjYWxjdWxhdG9yIGluIAogICAgIGFib3V0IDggd2Vla3MgKHdpdGggaGVscCBmcm9tIGhpcyB0ZWFjaGVyKS4gCgogICAgIFRoZSBMT0dPIHBvcmdyYW1tZXIgY2FuJ3QgYWN0dWFsbHkgdGFsayB2ZXJ5IHdlbGwsIGJ1dCBpbnN0ZWFkIAogICAgIGRyYXdzIGEgd2hvbGUgbG90IG9mIHBpY3R1cmVzLCBjcmF5b24gYmVpbmcgdGhlaXIgZmF2b3JpdGUgbWVkaWEuIAoKKioqKiBCVVQgKioqKgoKVGhlIEFzc2VtYmx5IExhbmd1YWdlIFByb2dyYW1tZXIKCiAgICAgVGhlIGFzc2VtYmx5IGxhbmd1YWdlIHByb2dyYW1tZXIgaXMgR29kLiAKCiAgICAgSGUgcGFydHMgdGhlIHdhdGVyIHdoZW4gaGUgd2lzaGVzIHRvIGNyb3NzIGl0LiAKCiAgICAgSGUgcG9ncmFtcyBvbiB3aGF0IGV2ZXIgaGUgZGFtbSB3ZWxsIHBsZWFzZXMgYW5kIGNhbiBkbyBhIAogICAgIG11bHRpLXRhc2tpbmcsIG11bHRpLXVzZXIgbmV0d29ya2FibGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IAogICAgIGluY2x1ZGVzIGEgR1VJIHNwcmVhZHNoZWV0IGR1cmluZyBoaXMgY29mZmVlIGJyZWFrLiAKCgoqUm90ZmwqLCBTbnlkZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNwcnVjaCBkZXIgV29jaGUgMzIgKE5hY2h0cmFnKSAoR3JpbW1ib3JuLCAxNi4gQXVnIDE5OTYsIDE3OjE2OjQyKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NDAxMjExOTIKfiMhIHRpZD04NDAxMjExOTIKW1ZlcmxlZ3Qgdm9uIHNjaG1hcnJuLCBRaXRlc3MsIDE2LiBBdWcgMTk5NiwgMTU6NDg6MjVdOgpEQVMgdW50ZXJzY2hyZWliZSBpY2ggc29mb3J0LCBncmltbWksIGFiZXIgdmVyc3VjaCBkaWNoIGF1Y2ggbWFsIGRyYW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXIga3Vlcnplc3RlciBXaXR6IChDYXVubywgMTcuIEF1ZyAxOTk2LCAyMToxMDoxMCk6CgpEYXMgTW9yZ2VuR3JhdWVuIGxhZXVmdCBqZXR6dCBzZWl0IGZ1ZW5mIE1pbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVyIGt1ZXJ6ZXN0ZXIgV2l0eiAoQ2FyYWRocmFzLCAxOC4gQXVnIDE5OTYsIDIwOjQ0OjM0KToKfiMhIHJuPUNhdW5vIHJ0PTg0MDMwOTAxMAp+IyEgdGlkPTg0MDMwOTAxMApHZWh0IGt1ZXJ6ZXI6Ck1HIGlzdCB1cC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1ZXIga3Vlcnplc3RlciBXaXR6IChDYXVubywgMTkuIEF1ZyAxOTk2LCAxMTowNzoxMCk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9ODQwMzkzODc0Cn4jISB0aWQ9ODQwMzA5MDEwCiYgZG93bgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5ldWVyIGt1ZXJ6ZXN0ZXIgV2l0eiAoQXNtb2RpcywgMTkuIEF1ZyAxOTk2LCAxMTowOToyNCk6Cn4jISBybj1DYXVubyBydD04NDA0NDU2MzAKfiMhIHRpZD04NDAzMDkwMTAKTUcKCkd1dGVyIFdpdHosIG5lID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE5ldWVyIGt1ZXJ6ZXN0ZXIgV2l0eiAoQ2F1bm8sIDE5LiBBdWcgMTk5NiwgMTE6MTA6MjgpOgp+IyEgcm49QXNtb2RpcyBydD04NDA0NDU3NjQKfiMhIHRpZD04NDAzMDkwMTAKSWNoIGdsYXViZSwgamV0enQgaGFiZSBpY2ggZG9jaCBkZW4gdGhyZWFkIHZlcmxvcmVuIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTmV1ZXIga3Vlcnplc3RlciBXaXR6IChDYXJhZGhyYXMsIDE5LiBBdWcgMTk5NiwgMTM6NTM6NTApOgp+IyEgcm49Q2F1bm8gcnQ9ODQwNDQ1ODI4Cn4jISB0aWQ9ODQwMzA5MDEwCkVpbiBGcm9zY2ggd2FlbHp0IHNpY2ggbWl0IGRlbiBGcm9zY2hzY2hlbmtlbG4gd2lsZCB3YWNrZWxuZCBhbSBCb2RlbgpoZXJ1bSB1bmQgZ3JpbnN0IGRhYmVpIENhdU5vIGFuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdyYWQgaW0gSW50ZXJuZXQgZ2VmdW5kZW4uLi4gKFJhZmZpLCAxOS4gQXVnIDE5OTYsIDE2OjU5OjQyKToKfiMhIHJuPVNueWRlIHJ0PTg0MDE5MTE2NQp+IyEgdGlkPTg0MDE5MTE2NQoKSmF1LCBhYmVyIHdhcyBoYWJlbiBzb2NoZSBGdW5kYW1lbnRhbGVuIFdhaHJoaGVpdGVuIGluIFdpdHplIHZlcmxvcmVuLCBTbnlkZSA/CkRhcyBpc3QgZG9jaCBhbGxlcyByaWNoaHRpZy4KCkdydXNzCkguCihBc3NlbWJsZXJwcm9ncmFtbWllcmVyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHcmFkIGltIEludGVybmV0IGdlZnVuZGVuLi4uIChTbnlkZSwgMjAuIEF1ZyAxOTk2LCAwOTo1NjozNik6Cn4jISBybj1SYWZmaSBydD04NDA0NjY3ODIKfiMhIHRpZD04NDAxOTExNjUKICBJY2ggYmluIGF1Y2ggR290dC4uLgoKICBBc3NlbWJsZXItUHJvZ3JhbW1pZXJlciBTbnlkZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUm9sbGVuc3BpZWxlcnNwcnVlY2hlIChMaSwgMjAuIEF1ZyAxOTk2LCAxNDoyNzo1Myk6CiAgICAgICAgICAgIFtJbWFnZV0gRHVtbWUgU3BydWVjaGUgdW5kIGdlaXN0aWdlIEhvZWhlbmZsdWVnZSBbSW1hZ2VdCgogRGllc2VzIERva3VtZW50IGVudGhhZWx0IGVpbmUgQXVzd2FobCB2b24gUm9sbGVuc3BpZWwtU3BydWVjaGVuLCBncm9lc3N0ZW50ZWlscwogICBhdXMgZGVyIFNhbW1sdW5nIHZvbiBEaXJrIEYuIFdvbGYsIGVyc2NoaWVuZW4gaW4gZGUucmVjLmdhbWVzLnJwZy4gRGllCiBTcHJ1ZWNoZSBzdGFtbWVuIC0gd2llIGRlciBhdWZtZXJrc2FtZSBMZXNlciBzaWNoZXIgc2NobmVsbCBiZW1lcmtlbiB3aXJkIC0KICAgICAgICAgICAgICAgIGF1cyBkZW4gdmVyc2NoaWVkZW5zdGVuIFN5c3RlbWVuIC4uLiBbSW1hZ2VdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpFcmxhZXV0ZXJ1bmc6CgogICAgICAgUyAgID0gIFNwaWVsZXIKICAgICAgIE5QQyA9ICBOaWNodHNwaWVsZXJmaWd1cgogICAgICAgR00gID0gIFNwaWVsbGVpdGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTICAgICA6IE1laW4gR290dApHTSAgICA6IEpBPz8/Pz8KClp3ZXJnIDogTWVpbmUgU29ubmVudWhyIHNhZ3QgLSB3aXIgaGFiZW4gZHVua2VsCgpad2VyZyA6IEVsZmVuIHNpbmQgd2llIFNjaG5pdHRsYXVjaC4KR3J1cHBlOiA/Pz8/Pz8KWndlcmcgOiBBdXNzZW4gZ3J1ZW4sIGlubmVuIGhvaGwgdW5kIHNpZSB0YXVjaGVuIGltbWVyIGdlYnVlbmRlbHQgYXVmCgpHTSAgICA6IEFuZGVyZSB0cmV0ZW4gaW5zIEZldHRuYWVwZmNoZW4gLSBlciBzdHVlbHB0IHNpY2gncyB1ZWJlcm4gS29wZgoKCkdNICAgIDogRHUga2FubnN0IG1pdCBlaW5lbSBHZXdlaWh0ZW4gc3ByZWNoZW4uClMxICAgIDogSXN0IGVpbmVyIGRhID8KR00gICAgOiBOZWluICEKCgpTMSAgICA6IFNjaGV1Y2ggbWFsIGRlbiBTYWxhdCBydWViZXIuClMyICAgIDogS3NjaCwga3NjaC4KCgpTICAgICA6IEljaCBiaW4gc2Nob24gZXR3YXMgYWVsdGVyLiBTZWNoc3VuZHp3YW56aWcuCgpHTSAgICA6IE5hY2h0cywgd2VubiBhbGxlIEd1bW1pYmFlcmNoZW4gZGVuIE1vbmQgYW5oZXVsZW4uLi4KClMxICAgIDogQmlzdCBkdSB3YWhuc2lubmlnPwpTMiAgICA6IE5lZSwga2F0aG9saXNjaC4KCgpTMSAgICA6IEVpbmVuIEVpbWVyIEJpZXIgZnVlciBtZWluIFBmZXJkLgpHTSAgICA6IFVuZCBkdT8KUzEgICAgOiBJY2ggbXVzcyBub2NoIHJlaXRlbi4KCgoKUzEgICAgOiBJY2ggdHJldCBkaWUgVHVlciBlaW4uClMyICAgIDogSWNoIHRyZXQgbm9jaG1hbCBkcmF1Zi4KR00gICAgOiBEaWUgVHVlciB3ZWhydCBzaWNoIG5pY2h0IG1laHIuCgoKQmFyZGUgOiBJY2gga2FubiBHaXRhcnJlIHNwaWVsZW4uClp3ZXJnIDogSWNoIGthbm4gU3RyZWl0YXh0IHNwaWVsZW4uCgpHTSAgICA6IER1IGhhc3Qgd2llZGVyIHZvbGxlIExFLgpTMSAgICA6IEhhdHRlIGljaCB2b3JoZXIgc2Nob24uCkdNICAgIDogU2llaHN0IGR1IQoKClp3ZXJnIDogV2FydW0gaGF0IG1laW4gUGZlcmQgZWluZW4gRXV0ZXIuCkdNICAgIDogRWluZSBLdWggYWxzIFJlaXR0aWVyIGlzdCBuaWNodCBzbyBlbGVnYW50LCBhYmVyIHNjaG1hY2toYWZ0ZXIuCgpHTSAgICA6IEVzIGlzdCBNb3JnZW4sIGRpZSBIYWVobmUga3JhZWhlbi4KWndlcmcgOiBJY2ggZHJlaCcgc2llIHp1LgoKCkhleGUgIDogSWNoIHNldHogbWljaCBhdWYgbWVpbmVuIEJlc2VuIHVuZCBmbGllZyBkYXZvbi4KR00gICAgOiBEdSBoYXN0IGtlaW5lbiBCZXNlbi4KSGV4ZSAgOiBGYWhyJyBpY2ggaGFsdCBCdXMuCgoKUyAobmFjaCAzOCBUZWxlcG9ydGF0aW9uZW4gaW4gMTIgTWludXRlbik6IFdpZSBoZWlzc3QgZGFzIEFiZW50ZXVlcj8gSW4gODAKICAgICAgICBNaW51dGVuIGR1cmNoIEF2ZW50dXJpZW4/CgoKUyAgICAgOiBIYWJ0IGlociBTdGFkdGdhcmRpc3RlbiBnZXNlaGVuPwpOU0MgICA6IERpZSBsaWVnZW4gZGEgaGludGVuIGJld3Vzc3Rsb3MuClMgICAgIDogVHlwaXNjaCBCZWFtdGUuCgpTICAgICA6IFdvIGlzdCBkZXIgU2lubiBkZXMgTGViZW5zPwpQcmllc3RlcjogTGlua3MuCgoKUyAgICAgOiBXYXJ1bSBnaWJ0IGVzIFp3ZXJnZT8gLSBadSBpcmdlbmR3YXMgbfxzc2VuIGRpZSBLYWtlcmxha2VuIGRvY2gKICAgICAgICBhdWZibGlja2VuIC4uLgoKV2FsZGxhZXVmZXI6IEdpYnQncyBoaWVyIGltIFdhbGQgaXJnZW5kd28gSG9sej8KClMxICAgIDogSWNoIGdlYiBkZW0gQmFyYmFyZW4gMTEgUGZlaWxlICsxClMyICAgIDogS25pY2stS25hY2suCgoKCkdNICAgIDogSWhyIHNlaHQsIHdpZSBkaWUgQmFldW1lIGlociBIb2x6IHVudGVuIGhvY2hoZWJlbiB1bmQgYXVmIEJlaW5lbgogICAgICAgIHdlZ2xhdWZlbi4KClMxICAgIDogV28gc3RlaHQgZGllIFNvbm5lPwpHTSAoZGV1dGV0IGVpbmVuIEhhbGJrcmVpcyBhbik6IElyZ2VuZHdvIGRhLgoKR00gICAgOiBEdSBzaWVoc3Qgc28gZWluZW4gSGVpbnogaW0gR2VidWVzY2guClMxICAgIDogSGV5LCBkdSBIZWlueiEKUzIgICAgOiBHdXQsIGljaCBoYWInIG5vY2gga2VpbmVuIE5hbWVuIChzY2hyZWlidCBOYW1lOiBIZWlueiBLLikKClMyICAgIDogSWNoIGJld2VyZicgaWhuIG1pdCBLYWV0Y2gtVXAuCkdNICAgIDogRHUgaGFzdCBrZWluZW4gS2FldGNoLVVwLgpTMiAgICA6IEFiZXIgaWNoIGJpbiBkb2NoIGRlciBIZWlueiEKCgpTMSAocmVubmVuZCk6IEthbm4gZWluIFBpdGZpZW5kIDMgb2RlciBtZWhyIEZldWVyYmFlbGxlPwpGZXVlcmJhbGwgICA6IEthd3VtbSEhIQpTMiAocmVubmVuZCk6IE1FSFIhISEKCk5TQyAoYmxpbmQpOiBTZWgnIGljaCBuaWNodCBlaW4hCgoKUyAgICAgOiBJY2ggc2FtbWxlIFRyb3BoYWVlbi4gSWNoIGhhYiBzY2hvbiAyIERyYWNoZW5rb2VwZmUsIGVpbmVuIEJhc2lsaXNrZW4KICAgICAgICB1bmQgZWluIEhpcnNjaGdld2VpaC4KCgpTMSAgICA6IE51ciBGbGVpc2NoZnJlc3NlciBrb2VubmVuIEludGVsbGlnZW56IGVudHdpY2tlbG4uClMyICAgIDogV2FydW0/ClMxICAgIDogV2VsY2hlbiBJUSBicmF1Y2h0IG1hbiBzY2hvbiwgdW0gc2ljaCBhbiBlaW5lbiBHcmFzaGFsbSBhbnp1cGlyc2NoZW4/CihFbGZlbiBzaW5kIFZlZ2V0YXJpZXI7IEFubS5kLkF1dC4pCgpTMSAgICA6IEVsZmVuIGVzc2VuIGF1Y2ggRmxlaXNjaCEKUzIgICAgOiBKYSwgRnJ1Y2h0ZmxlaXNjaC4KCgpTICAgICA6IEljaCBiaW4gRmFjaGFyenQgZnVlciA5bW0tTWlncmFlbmUgdW5kIC4zNTdlciBCbGVpaW5mdXNpb25lbi4KCgpTMSAgICA6IEdpYnQgZXMgaGllciBlaW5lbiBSb25kcmEtU2NocmVpbj8KUzIgICAgOiBFaW5lbiBXYXM/Pz8KUzMgICAgOiBFaW5lbiBXaWU/Pz8KUzQgICAgOiBFaW5lbiBI5Gg/Pz8KCgpTMSB3dXJkZSB2b24gZWluZW0gRmV1ZXJiYWxsIGVpbmdlYWVzY2hlcnQKUzIgICAgOiBEdSBrYW5uc3Qgd2VpdGVyIGJlaSB1bnMgbWl0bGF1ZmVuLCBpY2ggaGFiICduZSBFaWVydWhyIGRhYmVpLgoKRWxmICAgOiBIaWxmZSwgZWluIEdlaXN0IQpHZWlzdCA6IEhpbGZlLCBlaW4gRWxmIQoKRHJhY2hlOiBTb21lIG9mIG15IGJlc3QgRnJpZW5kcyBhbmQgZmluZXN0IG1lYWxzIGhhdmUgYmVlbiBodW1hbi4KCgpXb2xmc21lbnNjaDogSWNoIHRyZWliJ3MgbmljaHQgbWl0IE1lbnNjaGVuZnJhdWVuLiBEaWUgTGV1dGUgbW9lZ2VuIGVzIG5pY2h0CiAgICAgICAgd2VubiBpaHJlIEVua2VsIHNpZSBhbmhlY2hlbG4uCgoKUzEgICAgOiBXaWUgaGVpc3N0IGR1PwpTMiAgICA6IFgndHNyYW5raS4KUzEgICAgOiBVbmQgd2llIHNjaHJlaWJ0IG1hbiBkYXM/ClMyICAgIDogV2llIG1hbidzIHNwcmljaHQuCgoKUyAgICAgOiBXaXJrdCBkaWUgTGVpbmUgZGVyIERyYWNoZW5rb250cm9sbGUgYXVjaCBhdWYgU2Nod2llZ2VybXVldHRlcj8KClNpdHVhdGlvbjogRGllIFBvbW1lcyBm5GxsdCB2b24gZGVyIEdhYmVsClMgICAgIDogSGFiZW4gZGllIGhldXRlIGVpbmVuIEluaXRpYXRpdmUtQm9udXM/CgpTICAgICA6IEtlaW4gTWVuc2NoIHNpZWh0LCBkYXNzIGljaCBlaW5lIEhleGUgYmluIQpHTSAgICA6IFN0YW5kIGF1ZiBkZXIgVmVycGFja3VuZy4KClMxICAgIDogSWNoIHZlcmthdWZlIG1laW4gU2Nod2VydCBvZWZ0ZXIgYW4gZGVuIE1laXN0YmlldGVuZGVuLgpTMiAgICA6IERhIG11c3N0IGR1IGFiZXIgdmllbGUgU2Nod2VydGVyIGhhYmVuLgpTMSAgICA6IE51ciBlaW5zLCBhYmVyIGRhcyBrb21tdCBpbW1lciB3aWVkZXIuCgpTMSAgICA6IEVpbiBGRlRVLURvbGNoLgpTMiAgICA6IEZGVFU/ClMxICAgIDogRmxlZGVybWFldXNlIEZhbGxlbiBUb3QgVW0uCgoKUzEgICAgOiBEaWUgc2NoaWVzc2VuIGF1ZiB1bnNlcmVuIFRhbmsuClMyICAgIDogT2Igc2llIHRyZWZmZW4gb2RlciBuaWNodCBzYWd0IGV1Y2ggZ2xlaWNoIGRhcyBMaWNodC4KClMxICAgIDogT2IgdW5zIGRpZSBNYWVkY2hlbiBhdWNoIG5hY2h3ZWluZW4/ClMyICAgIDogS2xhciwgaWNoIGhhYiAnbmUgVHJhZW5lbmdhc2dyYW5hdGUgaW0gWmltbWVyIGdlbGFzc2VuLgoKCkdNICAgIDogS2VubnQgc2ljaCBqZW1hbmQgaW4gTWl0dGVsZXJkZSBhdXM/ClMgICAgIDogTmVpbiwgaWNoIGtvbW1lIGF1cyBkZW0gU2FhcmxhbmQuCgpHClMgICAgIDogSW5zdGFudCBCb2F0IC0gSnVzdCBBZGQgV2F0ZXIuCgpTa2VsZXR0OiBOYWNoIE1pdHRlcm5hY2h0IHNpbmQgaGllciB1bmhlaW1saWNoZSBHZXN0YWx0ZW4gdW50ZXJ3ZWdzLgoKClMgICAgIDogR2lidCdzICduZSBWZXJzaWNoZXJ1bmcgZ2VnZW4gQm9kZW4tTHVmdC1SYWtldGVuPwoKR00gICAgOiBJY2ggaGFiIHNjaG9uIGVpbiBwYWFyIFphdW5wZuRobGUgenVtIFdpbmtlbiBiZXJlaXRnZXN0ZWxsdC4KClMxIChpbSBEdW5rZWxuKTogSWNoIGZpbmQgbWVpbmUgU2NobnVlcnNlbmtlbCBuaWNodC4KUzIgICAgOiBTdWNoIG1hbCBhbiBkZW4gU2NodWhlbi4KCgpHTSAgICA6IERpZSBGYWVzc2VyIHN0ZWhlbiBrbm9lY2hlbHRpZWYgaW0gV2Fzc2VyLgpTICAgICA6IERpZSBGYWVzc2VyIGhhYmVuIEtub2VjaGVsPwoKClMxICAgIDogSWNoIHJlaXNzJyBkZW4gU2FyZ2RlY2tlbCBhdWYuClMyICAgIDogV2llIHdhZXIncyBtaXQgUGlldGFldD8KUzEgICAgOiBJY2ggcmVpc3MnIGlobiBwaWV05HR2b2xsIGF1Zi4KClMgICAgIDogRGFzIGthbm4gZXIgbWlyIHNhZ2VuLCB3ZW5uIGVyIHdpZWRlciByYXVza29tbXQuCkdNICAgIDogV0VOTiBlciB3aWVkZXIgcmF1c2tvbW10LgoKUyAgICAgOiBJY2ggaGFiJ3MgZ2V3dXNzdC4KR00gICAgOiBJY2ggYXVjaC4KCkR1bmtlbC1FbGY6IERhIGthbm5zdCBkdSB3YXJ0ZW4sIGJpcyBkdSBzY2h3YXJ6IHdpcnN0LiBVbmQgaWNoIHdlaXNzLCB3b3ZvbgogICAgICAgIGljaCByZWRlICEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgonQ29tcHV0ZXJtZW5zY2hlbicgKE11cGZlbCwgMjEuIEF1ZyAxOTk2LCAwOToxNzowMyk6CiAgICAgICAgICAgICAgICAgICAgIERpZSB2ZXJzY2hpZWRlbmVuIENvbXB1dGVybWVuc2NoZW4KCkRlciBIYWNrZXIKCkVyIGlzdCBlaW5zIG1pdCBkZW0gQ29tcHV0ZXIsIHRpcHB0IG5pY2h0LCBzb25kZXJuIHVlYmVydHJhZWd0IHNlaW5lCkdlZGFua2VuIGRpcmVrdCBhbiBkZW4gQ29tcHV0ZXIsIHNjaHJlaWJ0IGJlaSBCZWRhcmYgc2NobmVsbCBzZWxic3QgZWluZQpQcm9ncmFtbWllcnNwcmFjaGUsIGVyemV1Z3QgZGllIGJlbm9ldGlndGVuIDIyMCBWIHNlbGJzdCB1bmQgaGF0IGFsbGUKYmVzc2VyZW4gSGFuZGJ1ZWNoZXIgZ2VzY2hyaWViZW4uCgpEZXIgQ2hlZnNvZnR3YXJlZW50d2lja2xlcgoKRXIgaXN0IG1pdCBzZWluZW0gQ29tcHV0ZXIgZmVzdCB2ZXJ3YWNoc2VuLCB0aXBwdCBzY2huZWxsZXIsIGFscyBkZXIKQ29tcHV0ZXIgZXMgdmVyYXJiZWl0ZW4ga2FubiwgZGVua3QgaW4gQXNzZW1ibGVyLCB1ZWJlcnN0ZWh0IFNjaG9ja3Mgdm9uIDM4MApWIHVuZCBrZW5udCBhbGxlIENoaXBzIGF1c3dlbmRpZy4KCkRlciBTdGFycHJvZ3JhbW1pZXJlcgoKRXIgc2l0enQgMjAgU3R1bmRlbiBwcm8gVGFnIGFtIENvbXB1dGVyLCB0aXBwdCAxMCBXb2VydGVyIHBybyBTZWt1bmRlLApiZWhlcnJzY2h0IFBhc2NhbCwgQkFTSUMsIEFzc2VtYmxlciwgRm9ydHJhbiwgTG9nbywgQVBMLCBBbGdvbCwgUHJvbG9nIHVuZApDLCBoYWVsdCAyMjAgViBhdXMgdW5kIGtlbm50IGFsbGUgSGFuZGJ1ZWNoZXIuCgpEZXIgRGlwbG9tLUluZm9ybWF0aWtlcgoKQmVudXR6dCBzZWluZW4gQ29tcHV0ZXIgMTYgU3R1bmRlbiBhbSBUYWcsIHRpcHB0IDEwIFplaWNoZW4gcHJvIFNla3VuZGUsCmJlaGVycnNjaHQgUGFzY2FsLCBCQVNJQywgQyB1bmQgQXNzZW1ibGVyIGZsaWVzc2VuZCwga2FubiBlaW5lbiBoZWlzc2VuCkxvZXRrb2xiZW4ga3VyeiBhbmZhc3NlbiB1bmQgaGF0IGFsbGUgSGFuZGJ1ZWNoZXIuCgpEZXIgSW5mb3JtYXRpa2VyCgpFciB2ZXJicmluZ3Qgc2VpbmVuIEFyYmVpdHN0YWcgdW5kIGFsbGUgUGF1c2VuIHZvciBkZW0gQ29tcHV0ZXIsIHRpcHB0IDUKWmVpY2hlbiBwcm8gU2VrdW5kZSwgYmVoZXJyc2NodCBQYXNjYWwgdW5kIEJBU0lDIGZsaWVzc2VuZCwgdWViZXJicnVlY2t0ClNpY2hlcnVuZ2VuLCB3ZWlzcywgd28gZXMgaW4gZGVyIEJpYmxpb3RoZWsgZGllIEhhbmRidWVjaGVyIGdpYnQuCgpEZXIgUHJvZ3JhbW1pZXJlcgoKRXIgdmVyYnJpbmd0IG51ciBkaWUgcmVpbmUgQXJiZWl0c3plaXQgdm9yIGRlbSBDb21wdXRlciwgdGlwcHQgd2llIGVpbmUKU2VrcmV0YWVyaW4sIGthbm4gbWl0IEhpbGZlIGVpbmVzIE5hY2hzY2hsYWdld2Vya2VzIGluIEFzc2VtYmxlcgpwcm9ncmFtbWllcmVuLCBrYW5uIFNpY2hlcnVuZ2VuIGF1c3RhdXNjaGVuIHVuZCB3ZWlzcywgd28gZXIgSGFuZGJ1ZWNoZXIKa2F1ZmVuIGthbm4uCgpEZXIgSW5mb3JtYXRpa3N0dWRlbnQKClNpdHp0IGFscyBIb2JieSB2b3IgZGVtIENvbXB1dGVyLCB0aXBwdCAxMCBXb2VydGVyIHBybyBNaW51dGUsIGthbm4gbWl0CkhpbGZlIGVpbmVzIExlaHJidWNoZXMga2xlaW5lIFBhc2NhbC1Qcm9ncmFtbWUgZXJzdGVsbGVuLCBrYW5uIEJhdHRlcmllbiBpbQpUYXNjaGVucmVjaG5lciBhdXN3ZWNoc2Vsbiwgd2VpYSwgZGFzcyBlcyBIYW5kYnVlY2hlciBnaWJ0LgoKRGVyIFVzZXIKClNpdHp0IGFiIHVuZCB6dSBhbSBDb21wdXRlciwgdGlwcHQgZWluIFdvcnQgcHJvIE1pbnV0ZSwga2FubiBrdXJ6ZQpCQVNJQy1Qcm9ncmFtbWUgYWJ0aXBwZW4sIGJla29tbXQgdm9uIGVpbmVyIDlWLUJhdHRlcmllIGVpbmVuIFNjaGxhZyB1bmQKaW50ZXJlc3NpZXJ0IHNpY2ggbmljaHQgZnVlciBIYW5kYnVlY2hlciwgd2VpbCBlciBzaWUgc293aWVzbyBuaWNodAp2ZXJzdGVodC4KCkRlciBEQVUKCkVyIHdlaXNzIGdlcmFkZSBlYmVuLCB3YXMgZGVyIEJpbGRzY2hpcm0gaXN0LCB0cmlmZnQga2VpbmUgVGFzdGUgYmVpbSBlcnN0ZW4KVmVyc3VjaCwgZmluZGV0IHdlZGVyIGRpZSBEaXNrZXR0ZSBtaXQgZGVyIFByb2dyYW1taWVyc3ByYWNoZSwgbm9jaCBrb2VubnRlCmVyIHNpZSBlaW5sZWdlbiwga2FubiBrZWluZW4gU3RlY2tlciBlaW5zdGVja2VuLCBvaG5lIGVpbmVuIFNjaGxhZyB6dQpiZWtvbW1lbiB1bmQgaGF0IGtlaW5lIEhhbmRidWVjaGVyLCB3ZWlsIGVyIHNvd2llc28gbmljaHQgbGVzZW4ga2Fubi4gVW5kCndlbm4gZXIgcHJvZ3JhbW1pZXJ0LCBkYW5uIGluIFBBU0dPTCBvZGVyIEFMRk9OUyA2OC4KCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJvbGxlbnNwaWVsZXJzcHJ1ZWNoZSAoU2lsdmFuYSwgMjEuIEF1ZyAxOTk2LCAxMzowNToyMyk6Cn4jISBybj1MaSBydD04NDA1NDQwNzMKfiMhIHRpZD04NDA1NDQwNzMKRGEgaGFiIGljaCBhdWNoIGVpbmVuLCBkZXIgc2ljaCB6dW0gTGllYmxpbmdzc3BydWNoIGluIGVpbmVyIG1laW5lcgpSdW5kZW4gZ2VtYXVzZXJ0IGhhdDoKCiAgJy4uLiwgZGVubiB3aXIgYmVpZGUgc2luZCB6dSB6d2VpdC4nCgpTaWx2YW5hIChzdGF1bnQgaW1tZXIgd2llZGVyIHVlYmVyIGRpZSBMb2dpayB2b24gWndlcmdlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUm9sbGVuc3BpZWxlcnNwcnVlY2hlIChDYXJhZGhyYXMsIDIxLiBBdWcgMTk5NiwgMTY6NTE6NTIpOgp+IyEgcm49U2lsdmFuYSBydD04NDA2MjU1MjMKfiMhIHRpZD04NDA1NDQwNzMKVW5kIGluIG1laW5lciBSUEcga29tbXQgemllbWxpY2ggaGFldWZpZyBlaW4gZ2FhYWFhYWFueiB1bmJla2FubnRlciBTYXR6OgoiPHh4eD4gKGZhdm9yaXNpZXJ0ZSBSYXNzZSBlaW5zZXR6ZW4pIGlzdCBkb29mIHVuZCBzdC4uLiIKCiAgIEtvbWlzY2gsIG5lPyA6KSAgICAgICAgICAgICBDYXJhZnJpc2NoIC0gZ3J1ZW4gdW5kIHJpZWNodCBndXQKICAgICAgICAgICBhZWVlZWVlZWVlZWggQ2FyYWZyb3NjaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSb2xsZW5zcGllbGVyc3BydWVjaGUgKFJvY2h1cywgMjEuIEF1ZyAxOTk2LCAxNzoyNToxMyk6Cn4jISBybj1TaWx2YW5hIHJ0PTg0MDYyNTUyMwp+IyEgdGlkPTg0MDU0NDA3MwpNZWluIExpZWJsaW5nc3NwcnVjaCBpc3QgaW1tZXIgbm9jaAogICJFcyBoYXQgbWljaCBXSUUgVklFTEUgTFAgZ2Vrb3N0ZXQ/Pz8/Pz8/PyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFJvbGxlbnNwaWVsZXJzcHJ1ZWNoZSAoR3JpbW1ib3JuLCAyMi4gQXVnIDE5OTYsIDEzOjA4OjE5KToKfiMhIHJuPVJvY2h1cyBydD04NDA2NDExMTMKfiMhIHRpZD04NDA1NDQwNzMKCkVpbiB3ZWl0ZXJlciBTdGFuZGFyZHNwcnVjaDoKTlBDOiBLb2VubnQgaWhyIHNjaHdpbW1lbj8KWndlcmc6IFdpZSB0aWVmIGlzdCBkZW5uIGRhcyBXYXNzZXI/Ck5QQzogUlVuZCA1MG0sIHdpZXNvPwpad2VyZzogRGFubiBrYW5uIGljaCA1MG0gd2VpdCBzY2h3aW1tZW4uCgpKYWphLCBnZWtsYXV0IGJlaSBQcmF0Y2hldHQsIGFiZXIgZGllIEdydXBwZSBuZXJ2dHMgdHJvdHpkZW0gaW1tZXIgd2llZGVyLiA6LSkKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCB1bmQgWndlcmcgYXVzIFVlYmVyemV1Z3VuZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSb2xsZW5zcGllbGVyc3BydWVjaGUgKENhdW5vLCAyMy4gQXVnIDE5OTYsIDExOjIwOjEwKToKfiMhIHJuPVNpbHZhbmEgcnQ9ODQwNjI1NTIzCn4jISB0aWQ9ODQwNTQ0MDczCgpXaXIgYmVpZGUgc2luZCB6dSB6d2VpdCwgdW5kIGlociBiZWlkZSBzZWlkIGdhbnogYWxsZWluLgoKV2FyJ3Mgc28gZ2VtZWludD8KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSb2xsZW5zcGllbGUgUmV2aXNpdGVkIChDYXVubywgMjMuIEF1ZyAxOTk2LCAxMToyNjoyNik6CgpEYXMgZXJpbm5lcnQgbWljaCBhbiBub2NoIHNvIGVpbmUgbGFlY2hlcmlsaWNoZSBTaXR1YXRpb24gYXVzIG1laW5lciBHcnVwcGUuCgpTaXR1YXRpb24gMTogRWluIFNwaWVsZXIga2F1ZiBzaWNoIG5lIFNob3RndW4gdW5kIHNhZWd0IGRlbiBMYXVmIGFiLgpTaXR1dGF0aW9uIDI6IChldHdhcyBzcGFldGVyKSBEaWUgR3J1cHBlIHZlcnN1Y2h0LCBlaW4gcGFhciBXYWNoZW4genUKdWViZXJ3YWVsdGlnZW4uIFNwaWVsZXIgendlaSB2ZXJzaWVidCBzZWluZW4gQW5ncmlmZi4KClMxIGtvbW10IHVtIGRpZSBFY2tlOiBJY2ggc2NoaWVzc2UsIGljaCBzY2hpZXNzZSEKUzI6IEljaCByZW5uZSwgaWNoIHJlbm5lIQpHTTogV2FyIGphIG51ciBUcmFucS1NdW5pdGlvbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6d2VyZ2Vud2l0eiAoQ2F1bm8sIDIzLiBBdWcgMTk5NiwgMTE6NDU6MTcpOgoKRGVyIGFlbHRlc3RlIHVlYmVybGllZmVydGUgWndlcmdlbndpdHosIGxlaWRlciBudXIgYXVmIGVuZ2xpc2NoIHVlYmVybGllZmVydDoKKHdvIGhhYiBpY2ggZGVuIG51ciBoZXI/KQoKSG93IGRvIHlvdSBraWxsIGZpdmUgR29ibGlucyB3aXRoIG9uZSBzdG9uZT8KCgoKCgoKCgoKCgpUYWtlIGEgYmlnIG9uZS4KCgpDLiBObyAod2FubiBrb21tZW4gd29obCBkaWUgRWxmZW53aXR6ZSAuLi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbHRlciBJbmZvcm1hdGlrZXJ3aXR6IChHcmltbWJvcm4sIDI0LiBBdWcgMTk5NiwgMDE6MjI6NTApOgoKS29tbWVudGFyemVpY2hlbiBzaW5kIGRhenUgZGEsIHVtIG5pY2h0IGJlbm9ldGlndGUgUHJvZ3JhbW10ZWlsZQphdXN6dWtvbW1lbnRpZXJlbi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW5lciB2b24gZGVyIFNvcnRlIChHcmltbWJvcm4sIDI0LiBBdWcgMTk5NiwgMDE6MzA6MDkpOgoKRG9rdW1lbnRhdGlvbnNmaWxlcyBlcmtlbm50IG1hbiBhbiBkZXIgRW5kdW5nICIuYyIuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOb2NoIGVpbmVyIHZvbiBkZXIgU29ydGUgKFRvZXRlciwgMjUuIEF1ZyAxOTk2LCAwOTo1NzoyNCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQwODQzMDA5Cn4jISB0aWQ9ODQwODQzMDA5CkpvLCB1c2UgdGhlIHNvdXJjZSwgTHVrZSEgT2RlciBhdWYgdW5pemlzY2ggL3Vzci9zcmMsIGxrIDopCkFuc29uc3RlbiBpbW1lciBoYXJ0IGFtIFByb21wdCwKICBUb2V0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnFpdHogKEppbWRpZ3JpeiwgMjguIEF1ZyAxOTk2LCAxNzowNzoyMyk6CgpbQWxsZ2VtZWluOkF6enVyb10gSmVkZXIgZGVyIGhpZXIgZWluZ2Vsb2dndCBpc3Qgd2lyZCBqZXR6dCBzb2ZvcnQgZWluZW4gV2l0egpbQWxsZ2VtZWluOkF6enVyb10gaW4gZGllIFplaXR1bmcgc2NocmVpYmVuLiBEYXMgaXN0IGVpbiBCZWZlaGwuCgpBenp1cm8gaXMgZGVyIGJlc3RlIFdpdHogOykKCkpkRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVU5JWCAoQ2F1bm8sIDI5LiBBdWcgMTk5NiwgMTM6MDI6MDUpOgoKVHJ5IHRoZXNlIFVOSVggY29tbWFuZHMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgolIGNhdCAiZm9vZCBpbiBjYW5zIgpjYXQ6IGNhbid0IG9wZW4gZm9vZCBpbiBjYW5zCgolIG5pY2UgbWFuIHdvbWFuCk5vIG1hbnVhbCBlbnRyeSBmb3Igd29tYW4uCgolIHJtIEdvZApybTogR29kIG5vbmV4aXN0ZW50CgolIGFyIHQgR29kCmFyOiBHb2QgZG9lcyBub3QgZXhpc3QKCiUgYXIgciBHb2QKYXI6IGNyZWF0aW5nIEdvZAoKJSAiSG93IHdvdWxkIHlvdSByYXRlIFF1YXlsZSdzIGluY29tcGV0ZW5jZT8KVW5tYXRjaGVkICIuCgolIFtXaGVyZSBpcyBKaW1teSBIb2ZmYT8KTWlzc2luZyBdLgoKJSBeSG93IGRpZCB0aGUgc2V4IGNoYW5nZSBvcGVyYXRpb24gZ28/IF4KTW9kaWZpZXIgZmFpbGVkLgoKJSBJZiBJIGhhZCBhICggZm9yIGV2ZXJ5ICQgdGhlIENvbmdyZXNzIHNwZW50LCB3aGF0IHdvdWxkIEkgaGF2ZT8KVG9vIG1hbnkgKCdzLgoKJSBtYWtlIGxvdmUKTWFrZTogRG9uJ3Qga25vdyBob3cgdG8gbWFrZSBsb3ZlLiBTdG9wLgoKJSBzbGVlcCB3aXRoIG1lCmJhZCBjaGFyYWN0ZXIKCiUgZ290IGEgbGlnaHQ/Ck5vIG1hdGNoLgoKJSBtYW46IHdoeSBkaWQgeW91IGdldCBhIGRpdm9yY2U/Cm1hbjo6IFRvbyBtYW55IGFyZ3VtZW50cy4KCiUgITpzYXksIHdoYXQgaXMgc2FjY2hhcmluZT8KQmFkIHN1YnN0aXR1dGUuCgolICVibG93CiVibG93OiBObyBzdWNoIGpvYi4KCiQgUEFUSD1wcmV0ZW5kaW5nOy91c3IvdWNiL3doaWNoIHNlbnNlCm5vIHNlbnNlIGluIHByZXRlbmRpbmchCgokIGRyaW5rIGJvdHRsZTogY2Fubm90IG9wZW4Kb3BlbmVyOiBub3QgZm91bmQKCgpEaWUgZnVua3Rpb25pZXJlbiBsZWlkZXIgbmljaHQgaW4gamVkZW0gVU5JWC4KQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayAoUm9jaHVzLCAyOS4gQXVnIDE5OTYsIDE3OjM3OjUzKToKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQ6CiAgICAgICAgIk11bHRpbWVkaWEiID09ICJmdW5rdGlvbmllcnQgbWl0IGVsZWt0cmlzY2hlbSBTdHJvbSIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDI6CiJvYmpla3RvcmllbnRpZXJ0IiA9PSAiRGVuIENvZGUgaGFiZSBpY2ggdm9uIG1laW5lbSBWb3JnYWVuZ2VyIGdlZXJidC4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAzOgoiUG9seW1vcnBoaWUiID09ICJEZXIgRmVobGVyIHRyaXR0IGluIHZpZWxlcmxlaSBHZXN0YWx0IGF1Zi4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA0OgoiR2FyYmFnZSBDb2xsZWN0aW9uIiA9PSAiV2luZG93cyA5NSIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDU6CiJCcmVpdGJhbmRrb21tdW5pa2F0aW9uIiA9PSAiUG9ybm8gTVBFR3MgbWl0IFRvbiIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDY6CiJHbG9iYWxlIFZhcmlhYmxlIiA9PSAiUGFyYW1ldGVydWViZXJnYWJlbWVjaGFuaXNtdXMgaW4gNEdMcyIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDc6CiJET1MiID09ICJEZW5pYWwgT2YgU2VydmljZSIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDg6CiJHbG9iYWxlIFZhcmlhYmxlIiA9PSAiRGVyIEFrdGllbmt1cnMgdm9uIE5ldHNjYXBlIgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgOToKIkdVSSIgPT0gIkVpbiBIaW50ZXJncnVuZGJpbGQgdW5kIDEyIFh0ZXJtcyIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDEwOgoic3RydWt0dXJpZXJ0IiA9PSAiZGllc2VzIFByb2dyYW1tIGJlc3RlaHQgYXVzIG1laHJlcmVuIEZ1bmt0aW9uZW4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAxMToKIlN3YXBzcGFjZSIgPT0gIlJhdWJrb3BpZXJlcnRyZWZmZW4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAxMjoKIlp1Z3JpZmZzc2NodXR6IiA9PSAidW5lcmdvbm9taXNjaGUgQmVudXR6dW5nc29iZXJmbGFlY2hlIgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMTM6CiJGdWVyIFdpbmRvd3Mgb3B0aW1pZXJ0IiA9PSAienVzYW1tZW5nZXN0ZWxsdCBhdXMgSGFyZHdhcmUtUmVzdHBvc3RlbiIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDE0OgoiQ2xpZW50LVNlcnZlciIgPT0gIndpciB3b2xsZW4gbWVociBhbHMgZWluZW4gUmVjaG5lciB2ZXJrYXVmZW4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAxNToKIkRldmVsb3BlciBWZXJzaW9uIiA9PSAiUHJvZ3JhbW1wYWtldCBNSVQgRG9rdW1lbnRhdGlvbiIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDE2OgoiU1lTT1AiID09ICJWb2xsaWRpb3QiCiAgICAgICAgKENvdXJ0ZXN5IG9mIENocmlzdGlhbiBXZWlzZ2VyYmVyKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMTc6CiJWb2xsa29tcGF0aWJlbCB6dXIgRGF0ZW5hdXRvYmFobiIgPT0KICAgICAgICAiR2VyYWV0IHZlcmZ1ZWd0IHVlYmVyIGVpbmUgc2VyaWVsbGUgU2Nobml0dHN0ZWxsZS4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAxODoKIlZvcmJlcmVpdGV0IGZ1ZXIgZGVuIE11bHRpbWVkaWFlaW5zYXR6IiA9PQogICAgICAgICJFcyBzaW5kIG5vY2ggendlaSBTbG90cyBhdWYgZGVtIE1vdGhlcmJvYXJkIGZyZWkuIgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMTk6CiJWb2xsIEtvbmZpZ3VyaWVyYmFyIiA9PSAiTmljaHQgdm9yaW5zdGFsbGllcnQuIgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMjA6CiJNdWx0aW1lZGlhZW50d2lja2xlciIgPT0gIkdyYWZpa2VyIgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMjE6CiJIVE1MLVByb2dyYW1taWVyZXIiID09ICJHcmFmaWtlciIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDIyOgoiSW50ZXJha3RpdmVzIEZlcm5zZWhlbiIgPT0gCiJGZXJuc3RldWVydW5nIG1pdCBUYXN0ZSAnQmV6YWhsZW4nIHN0YXR0ICdBdXMnLiIgKCdTdGFuZHBheSctVGFzdGUpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAyMzoKIkNvZGVmcmVlemUiID09ICJMaW51eCBLZXJuZWwgUGF0Y2ggdjEuMywgcGF0Y2gtMS4zLjk0ICgwMC81NSkiCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAyNDoKIkZ1dHVyZSBDb21wdXRlciBXaGl6IEtpZHMgRW5lcmd5IE1vYmlsaXplciIgPT0KICAgICAgICAiS3VlaGxzY2hyYW5rIG1pdCBDb2xhIHVuZCBLYXJ0b2ZmZWxjaGlwcyBkcmluLiIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDI1OgoiTXVsdGl0aHJlYWRlZCIgPT0gCiAgICAiV2lyIG11c3N0ZW4gZWluIEZsdXNzZGlhZ3JhbW0gbWFsZW4sIHVtIGVzIHp1IGRlYnVnZ2VuLiIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDI2OgoiUGx1ZyAmIFBsYXkiID09IAogICAgICAgICJEaWUgR2VicmF1Y2hzYW53ZWlzdW5nIGlzdCBuaWNodCByZWNodHplaXRpZyBmZXJ0aWdnZXdvcmRlbi4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAyNzoKIkR1cmNoIGRhcyBWb2xrIHVlYmVydHJhZ2VuZSBnZXNlbGxzY2hhZnRsaWNoZSBWZXJhbnR3b3J0dW5nIGluIEJlenVnCiBhdWYgZGllIHp1a3VlbmZ0aWdlIEdlc3RhbHR1bmcgZGVyIEluZm9ybWF0aW9uc2dlc2VsbHRzY2hhZnQgd2Focm5laG1lbiAuLi4iCiAgICAgICAgPT0gIkRhcyBJbnRlcm5ldCB6ZW5zaWVyZW4gLi4uIgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMjg6CiIuLi4gd2VyZGVuIHdpciBkZW4gU2NodXR6IE1pbmRlcmphZWhyaWdlciBpbiBkZW4gVm9yZGVyZ3J1bmQgc3RlbGxlbi4iICA9PQoiSW0gR3J1bmRlIHdlaXNzIGljaCBnZW5hdXNvd2VuaWcgdWViZXIgZGllIGdhbnplIFNhY2hlIHdpZSBtZWluZQogV2FlaGxlciwgYWJlciB2ZXJiaWV0ZW4gYnJpbmd0IG1laHIgU3RpbW1lbi4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAyOToKIi4uLiBiZWkgZGVyIEdlc3RhbHR1bmcgdW5zZXJlcyBBbmdlYm90ZXMgc2VsYnN0dmVyc3RhZW5kbGljaCBkaWUgYmVzdGVoZW5kZW4KIG5hdGlvbmFsZW4gQmVzdGltbXVuZ2VuIHVuZCBCZXNvbmRlcmhlaXRlbiAgYmVydWVja3NpY2h0aWdlbi4iCiAgICAgICAgICAgICAgICAgICAgICAgPT0gIi4uLiB2b24gZWluZW0gYXVzbGFlbmRpc2NoZW4gU2VydmVyIGF1cyBhbmJpZXRlbi4iCgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMzA6CiJVbml2ZXJzZWxsZXIgbXVsdGlmdW5rdGlvbmFsZXIgSW50ZXJmYWNlLUFkYXB0ZXIuIiA9PSAiTG9ldGtvbGJlbi4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAzMToKIk11bHRpbWVkaWEtTXVsdGl0YXNraW5nIiA9PSAiQ0QtUk9NICBtaXQgS29wZmhvZXJlcmFuc2NobHVzcy4iCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAzMjoKIlZhcG9yd2FyZSIgPT0gIkRhbXBmLCBkZW4gbWFuIGRlciBLb25rdXJyZW56IG1hY2h0LiIKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDMzOgoiRWNodGUgTlMtTGFkeSIgPT0gIkJlbnV0emVyaW4gdm9uIE5ldHNjYXBlLiIKICAgICAgICAgICAoUGV0ZXIgQmVybGljaCwgbmFjaCBlaW5lbSBQb3N0aW5nIGluIGRlLnRhbGsuYml6YXJyZSkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDM0OgoiSGFja2VyIiA9PSAiRXIgd2Vpc3Mgd2FzIHVlYmVyIENvbXB1dGVyLCB1bmQgd2lyIHNpbmQgc2ljaGVyLAogZGFzcyBlciBkaWUgR3J1ZW5lbiB3YWVobHQuIChzb25zdDogJ011bHRpbWVkaWFlbnR3aWNrbGVyJykiIChQZXRlciBCZXJsaWNoKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMzU6CiJIYWNrZXIiID09ICJSYW5kYWwgU2Nod2FydHoiICAgICAgICAobmFjaCBlaW5lciBJZGVlIHZvbiBJbnRlbCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDM2OgoiU2VsYnN0ZXJrbGFlcmVuZCIgPT0gIkhhbmRidWNoIGdlZ2VuIEF1ZnByZWlzIiAgKFBldGVyIEJlcmxpY2gpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAzNzoKIkZlaGxlcnRvbGVyYW50IiA9PSAiRGFzIFByb2dyYW1tIGVybGF1YnQga2VpbmUgQmVudXR6ZXJlaW5nYWJlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5iZWthbm50KQpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCAzODoKIldpbmRvd3MgOTUiID09ICJEYXMgRm9ydHJhbiA3NyBkZXIgQmVudXR6dW5nc29iZXJmbGFlY2hlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVm9sa3NtdW5kKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgMzk6CiJFQkNESUMiID09ICJhbiBhbWVyaWNhbiBkYXRhIGVuY3J5cHRpb24gc3RhbmRhcmQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFjaCBlaW5lciAuc2lnbmF0dXJlIHZvbiBUZXJyYSkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDQwOgoib3ZlcmRyaXZlIHByb2Nlc3NvciIgPT0KICAgICAgICAgIlByb3plc3NvciBtaXQgdWViZXJ0cmllYmVuZW0gUHJlaXMtTGVpc3R1bmdzdmVyaGFlbHRuaXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEhvbGdlci5SZWlmQFByYWtJbmYuVFUtSWxtZW5hdS5ERSkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDQxOgoiSW50ZXJuZXQiID09ICJEYXMgdm9uIFByZXNpZGVudCBHYXRlcyBlcmZ1bmRlbmUgQ29tcHV0ZXJuZXR6LiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoS3Jpc3RpYW4gS29laG50b3BwKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNDI6CiJTdGFiaWxpdGFldCIgPT0gIjIwMCBTdHVkZW50ZW4gZGVyIEluZm9ybWF0aWstQW5mYWVuZ2VydWVidW5nIGF1ZiBlaW5lcgogTWFzY2hpbmUgbmFjaGRlbSBkaWUgVm9ybGVzdW5nICdmb3JrKCknIGJlaGFuZGVsdCBoYXQuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFjaCBEYXZpZCBTLiBNaWxsZXIsIGxpbnV4LmRldi5rZXJuZWwpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA0MzoKIkphdmEiID09ICJJbnRlcm5ldGNhZmUiIChQZXRlciBCZXJsaWNoKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNDQ6CiJWZXJkZWNrdGVyIEZlaGxlciIgPT0gIlNpZW1lbnMgaGF0IG1pdGVudHdpY2tlbHQuIiAoSm9lcmcgUGVjaGF1KQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNDU6CiJJUlEiID09ICJJbnRlcm5ldCBSZWxheSBRdWFrIiAoUGV0ZXIgQmVybGljaCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDQ2OgoiU2NodWx2ZXJzaW9uIiA9PSAibGVnYWxpc2llcnRlIFJhdWJrb3BpZSIgKEtyaXN0aWFuIEtvZWhudG9wcCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDQ3OgoiTmV1ZSBWZXJzaW9uIG1pdCBkZXV0bGljaCBtZWhyIEZ1bmt0aW9uYWxpdGFldC4iCiAgID09ICJIYWJlbiBTaWUgc2Nob24gZGllIFNwZWljaGVyZXJ3ZWl0ZXJ1bmcgZ2VrYXVmdD8iIChLcmlzdGlhbiBLb2VobnRvcHApCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA0ODoKIk51dHp0IGRpZSBuZXVlbiBNb2VnbGljaGtlaXRlbiB2b24gV2luZG93cyc5NSEiCiAgPT0gIkhhYmVuIFNpZSB1bnNlciBhbmRlcmVzIFVwZGF0ZSBzY2hvbiBnZWthdWZ0PyIgKEtyaXN0aWFuIEtvZWhudG9wcCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDQ5OgoiVmVyc2lvbiB4LjAiID09ICJLb3N0ZW5wZmxpY2h0aWdlciBQcmV2aWV3IGFscyBCZXN0YW5kdGVpbCB1bnNlcmUgQmV0YS1UZXN0cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEtyaXN0aWFuIEtvZWhudG9wcCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDUwOgoiVmVyc2lvbiB4LjEiID09ICJLb3N0ZW5wZmxpY2h0aWdlciBCdWdmaXgiICAgICAoS3Jpc3RpYW4gS29laG50b3BwKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNTE6CiJWZXJzaW9uIHguNSIgPT0gIk1pdCBuZXVlbiBJY29ucyEiICAgICAgICAgICAgIChLcmlzdGlhbiBLb2VobnRvcHApCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA1MjoKIk1pbmRlc3RhbmZvcmRlcnVuZzogNCBNQiBIYXVwdHNwZWljaGVyIgogICAgICAgID09ICJNaW5kZXN0YW5mb3JkZXJ1bmc6IDggTUIgSGF1cHRzcGVpY2hlciIgKEtyaXN0aWFuIEtvZWhudG9wcCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDUzOgoiU3VwcG9ydCBkdXJjaCBrb3N0ZW5sb3NlIEhvdGxpbmUiCiAgICAgICAgPT0gIjAxODAgNS4uLiIgb2RlciAiMDE5MCAuLi4iIChLcmlzdGlhbiBLb2VobnRvcHApCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA1NDoKIkpldHp0IG1pdCBuZXVlbSwgdW1mYW5ncmVpY2hlbSBTb2Z0d2FyZXBha2V0LiIgPT0gIlRyZWliZXIgbGllZ3QgYmVpLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEtyaXN0aWFuIEtvZWhudG9wcCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDU1OgoiRmFjaGhhZW5kbGVyIiA9PSAiU3R1ZGVudCwgMjQgSmFocmUsIEdlb2xvZ2llICh2b3JtYWxzIEluZm9ybWF0aWspLAogR2V3ZXJiZXNjaGVpbiAoMTUgRE0pLCB3b2hudCBiZWkgZGVuIEVsdGVybiIgICAoS3Jpc3RpYW4gS29laG50b3BwKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNTY6CiJNYWlsIE9yZGVyIiA9PSAicnVzc2lzY2hlcyBSb3VsZXR0ZSIgICAgICAgICAgIChLcmlzdGlhbiBLb2VobnRvcHApCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA1NzoKIkctUHVua3QiID09ICJBYmsuIGYuICdHcmFwaC4gQmVudXR6ZXJvYmVyZmwuJyIKICAgICAgICAgICAgICAoUC4gQmVybGljaCBuYWNoIEFyYmVpdGVuIHZvbiBNLkJydWVzdGxlIHVuZCBTLk5vaGwpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWssIGVpbmZhY2ggZXJrbGFlcnQuIEZvbGdlIDU4OgoiU2hhcmV3YXJlIGluc3RhbGxpZXJlbiIgPT0gIkRpZSBTeXN0ZW0gQ2xvY2sgdW0gZHJlaSBNb25hdGUgenVydWVja3N0ZWxsZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUGV0ZXIgQmVybGljaCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDU5OgoiRnJlaXdpbGxpZ2UgU2VsYnN0a29udHJvbGxlIiA9PSAiTG9lc2NoZW4gZnJlbWRlciBBcnRpa2VsIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEVuZGVyZ29uZSBad2llYmVsdHVldGUpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA2MDoKIlZpcnR1YWwgUmVhbGl0eSIgPT0gIkFWSS1BbmltYXRpb24gbWl0IDE2IEZhcmJlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTZWJhc3RpYW4gS29rZW1vaHItU2NobWlkdCkKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayBlaW5mYWNoIGVya2xhZXJ0LCBUZWlsIDYxOgoiRWNodHplaXRiZXJlY2hudW5nIiA9PSAiS2FmZmVlIGtvY2hlbiBnZWhlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU2ViYXN0aWFuIEtva2Vtb2hyLVNjaG1pZHQpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA2MjoKInByb2Zlc3Npb25lbGxlcyBBcmJlaXRlbiIgPT0gIlRldHJpcyBpc3QgbmljaHQgYXVmIGRlciBGZXN0cGxhdHRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNlYmFzdGlhbiBLb2tlbW9oci1TY2htaWR0KQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNjM6CiJwcm9mZXNzaW9uZWxsZXMgQXJiZWl0ZW4iID09ICJOZXRzY2FwZSBpc3QgbmljaHQgYXVmIGRlciBGZXN0cGxhdHRlIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFbmRlcmdvbmUgWndpZWJlbHR1ZXRlKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNjQ6CiJOZXR3b3JrIENvbXB1dGVyIiA9PSAiZ3JhZmlrZmhpZ2VzIFRlcm1pbmFsIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2xrc3R8bWxpY2gpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA2NToKIkludGVybmV0LUJvb20iID09ICJTY2h3YWNoc2lubiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVGhlbyBMaWV2ZW4sIE1hdGhlbWF0aWtzdHVkZW50KQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNjY6CiJXV1ciID09ICJpbiBidW50ZW4gQmlsZGVybiB3ZW5pZyBLbGFyaGVpdCwKICAgICAgICAgIHZpZWwgSXJydHVtIHVuZCBlaW4gRnxua2NoZW4gV2FocmhlaXQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEpvaGFubiBXb2xmZ2FuZyB2LiBHb2V0aGUpCgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgZWluZmFjaCBlcmtsYWVydCwgVGVpbCA2NzoKIldXVyIgPT0gIldvcmxkIHdpZGUgd2FpdGluZyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2xrc3R1ZW1saWNoKQoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIGVpbmZhY2ggZXJrbGFlcnQsIFRlaWwgNjg6CiJXV1ciID09ICJXZWx0d2VpdGVzIHdpLi5zZW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9sa3N0dWVtbGljaCkKCiAgKGMpIEtyaXN0aWFuIEtvZWhudG9wcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY2hhb3MgKFJvY2h1cywgMjkuIEF1ZyAxOTk2LCAxOTozNTowOSk6CkltIGV3aWdlbiBLYW1wZiBkZXIgT3JkbnVuZyBnZWdlbiBkYXMgQ2hhb3MsIHdpcmQgaW1tZXIgZGFzIENoYW9zIGdld2lubmVuCi0gRXMgaXN0IGJlc3NlciBvcmdhbmlzaWVydCAhIC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtvbW10IHZvbiBBbGluZSAodm9uIHdlbSBzb25zdD8pIDspIChBbGluZSwgMzAuIEF1ZyAxOTk2LCAxMDoyMTo0Myk6CgpXYXJ1bSBoYWJlbiBNYWVubmVyIEJlaW5lPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKQW50d29ydDogRGFtaXQgc2llIG5pY2h0IGltbWVyIFNhY2todWVwZmVuIG11ZXNzZW4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggbWFsIHdhcyB2b24gQWxpbmUgOykgKEFsaW5lLCAzMC4gQXVnIDE5OTYsIDEwOjIzOjIyKToKCldhcnVtIGhhdCBkZXIgU2Nod2FueiBiZWkgTWFlbm5lcm4gb2JlbiBlaW4ga2xlaW5lcyBMb2NoPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkFudHdvcnQ6IERhbWl0IGRhcyBHZWhpcm4gYmVsdWVmdGV0IHdpcmQuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBtYWwgd2FzIHZvbiBBbGluZSA7KSAoTmlyZGF2bywgMzAuIEF1ZyAxOTk2LCAxMDo0Mzo1Myk6Cn4jISBybj1BbGluZSBydD04NDEzOTM0MDIKfiMhIHRpZD04NDEzOTM0MDIKV2FydW0gaGFiZW4gRnJhdWVuIHp3ZWkgUGFhciBMaXBwZW4/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKRWluIFBhYXIgenVtIEZlaGxlcm1hY2hlbiwgZWluIFBhYXIgenVtIEVudHNjaHVsZGlnZW4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IG5vY2ggbWFsIHdhcyB2b24gQWxpbmUgOykgKEhhdGUsIDMwLiBBdWcgMTk5NiwgMTA6NTk6MDQpOgp+IyEgcm49TmlyZGF2byBydD04NDEzOTQ2MzMKfiMhIHRpZD04NDEzOTM0MDIKQWxzbyBBbGluZS4KSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp1bSBBdXNnbGVpY2ggOykgKEFsaW5lLCAzMC4gQXVnIDE5OTYsIDExOjQwOjAxKToKCk1hZW5uZXIgZGVua2VuIG1pdCBkZW0gU2Nod2Fuei4uLi4uLi4uLi4uLgoKCgouLi4uLi5GcmF1ZW4gaGFiZW4gbGVpZGVyIGtlaW5lbiA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbm9jaCBtYWwgd2FzIHZvbiBBbGluZSA7KSAoUmFmZmksIDMwLiBBdWcgMTk5NiwgMTI6MTI6MTEpOgp+IyEgcm49TmlyZGF2byBydD04NDEzOTQ2MzMKfiMhIHRpZD04NDEzOTM0MDIKCkhtbSB1bmQgd2VsY2hlcyBkZXIgTGlwcGVucGFhcmUgd2FyIGpldHp0IGZ1ZXJzIEZlaGxlcm1hY2hlbiB1bmQgd2VsY2hlcyB6dW0KRW50c2NodWxkaWdlbiA/IEltbWVyIGRpZXNlIEhhbGJlbiBlcmtsYWVydW5nZW4uCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogbm9jaCBtYWwgd2FzIHZvbiBBbGluZSA7KSAoSmFzcGVyLCAzMC4gQXVnIDE5OTYsIDEyOjEzOjU5KToKfiMhIHJuPVJhZmZpIHJ0PTg0MTM5OTkzMQp+IyEgdGlkPTg0MTM5MzQwMgplaW5zIHp1bSBkdW1tbGFiZXJuIHVuZCBlaW5zIHp1bSB3aWVkZXJndXRtYWNoZW4sIHdlbm4gZGlyIGRhcyB3ZWl0ZXJoaWxmdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogbm9jaCBtYWwgd2FzIHZvbiBBbGluZSA7KSAoUmFudGFucGxhbiwgMzAuIEF1ZyAxOTk2LCAxMzo0Mjo0MSk6Cn4jISBybj1KYXNwZXIgcnQ9ODQxNDAwMDM5Cn4jISB0aWQ9ODQxMzkzNDAyCkFsc28gd2FzIEFsaW5lIGthbm4sIGthbm4gaWNoIGRvY2ggYXVjaC4uLgoKCldpZSBuZW5udCBtYW4gZWluZSBWYWdpbmEgbWl0IEZldHRnZXdlYmUgZHJ1bWhlcnVtLi4uPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkZyYXUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWNoIG1hbCB3YXMgLi4uIChHbG9pbiwgMzEuIEF1ZyAxOTk2LCAwMDowMjozMyk6CldhcnVtIGhhYmVuIEZyYXVlbiBCZWluZSA/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkhhc3QgRHUgc2Nob24gbWFsIGVpbmVuIEJhZXJlbiBhdWYgendlaSBMaXBwZW4gbGF1ZmVuIHNlaGVuID8hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJTiBUSEUgQkVHSU5OSU5HIChDYXVubywgIDIuIFNlcCAxOTk2LCAxMTo0NzowMSk6CgpJbiB0aGUgYmVnaW5uaW5nIHdhcyB0aGUgY29tcHV0ZXIuIEFuZCBHb2Qgc2FpZAo6TGV0IHRoZXJlIGJlIGxpZ2h0IQpZb3UgaGF2ZSBub3Qgc2lnbmVkIG9uIHlldC4KOkdvZC4KRW50ZXIgdXNlciBwYXNzd29yZC4gCjpPbW5pc2NpZW50LgpQYXNzd29yZCBJbmNvcnJlY3QuIFRyeSBhZ2FpbiEKOk9tbmlwb3RlbnQuClBhc3N3b3JkIEluY29ycmVjdC4gVHJ5IGFnYWluIQo6VGVjaG5vY3JhdC4KKEFuZCBHb2Qgc2lnbmVkIG9uIDEyOjAxIGEubS4sIFN1bmRheSwgTWFyY2ggMS4pCjpMZXQgdGhlcmUgYmUgbGlnaHQhClVucmVjb2duaXphYmxlIGNvbW1hbmQuIFRyeSBhZ2FpbiEKOkNyZWF0ZSBsaWdodC4KRG9uZS4KOlJ1biBoZWF2ZW4gYW5kIGVhcnRoLgpBbmQgR29kIGNyZWF0ZWQgRGF5IGFuZCBOaWdodC4gQW5kIEdvZCBzYXcgdGhlcmUgd2VyZSAwIGVycm9ycy4KQW5kIEdvZCBzaWduZWQgb2ZmIGF0IDEyOjAyIGEubS4sIFN1bmRheSwgTWFyY2ggMS4KQXBwcm94LiBmdW5kcyByZW1haW5pbmc6ICQ5Mi41MC4KCkFuZCBHb2Qgc2lnbmVkIG9uIGF0IDEyOjAwIGEubS4sIE1vbmRheSwgTWFyY2ggMi4KOkxldCB0aGVyZSBiZSBmaXJtYW1lbnQgaW4gdGhlIG1pZHN0IG9mIHRoZSB3YXRlciBhbmQKVW5yZWNvZ25pemFibGUgY29tbWFuZCEgVHJ5IGFnYWluIQo6Q3JlYXRlIGZpcm1hbWVudC4KRG9uZS4KOlJ1biBmaXJtYW1lbnQuCkFuZCBHb2QgZGl2aWRlZCB0aGUgd2F0ZXJzLiBBbmQgR29kIHNhdyB0aGVyZSB3ZXJlIDAgZXJyb3JzLgpBbmQgR29kIHNpZ25lZCBvZmYgYXQgMTI6MDEgYS5tLiwgTW9uZGF5LCBNYXJjaCAyLgpBcHByb3guIGZ1bmRzIHJlbWFpbmluZzokODQuNjAuCgpBbmQgR29kIHNpZ25lZCBvbiBhdCAxMjowMCBhLm0uLCBUdWVzZGF5LCBNYXJjaCAzLgo6TGV0IHRoZSB3YXRlcnMgdW5kZXIgaGVhdmVuIGJlIGdhdGhlcmVkIHRvZ2V0aGVyIHVudG8gb25lIHBsYWNlCiBhbmQgbGV0IHRoZSBkcnkgbGFuZCBhcHBlYXIgYW5kClRvbyBtYW55IGNoYXJhY3RlcnMgaW4gc3RyaW5nIHNwZWNpZmljYXRpb24hIFRyeSBhZ2Fpbi4KOkNyZWF0ZSBkcnlsYW5kLgpEb25lIQo6UnVuIGRyeWxhbmQuCkFuZCBHb2QgY3JlYXRlZCBFYXJ0aCBhbmQgU2Vhcy4gCkFuZCBHb2Qgc2F3IHRoZXJlIHdlcmUgMCBlcnJvcnMuIApBbmQgR29kIHNpZ25lZCBvZmYgYXQgMTI6MDEgYS5tLiwgVHVlc2RheSwgTWFyY2ggMy4gCkFwcHJveC4gZnVuZHMgcmVtYWluaW5nOiAkNjUuMDAuCgpBbmQgR29kIHNpZ25lZCBvbiBhdCAxMjowMCBhLm0uLCBXZWRuZXNkYXksIE1hcmNoIDQuCjpDcmVhdGUgbGlnaHRzIGluIHRoZSBmaXJtYW1lbnQgdG8gZGl2aWRlIHRoZSBkYXkgZnJvbSB0aGUgbmlnaHQuClVuc3BlY2lmaWVkIHR5cGUuIFRyeSBhZ2FpbiEKOkNyZWF0ZSBzdW5tb29uc3RhcnMuCkFuZCBHb2QgY3JlYXRlZCBTdW4sIE1vb24sIFN0YXJzLiAKQW5kIEdvZCBzYXcgdGhlcmUgd2VyZSAwIGVycm9ycy4KQW5kIEdvZCBzaWduZWQgb2ZmIGF0IDEyOjAxIGEubS4sIFdlZG5lc2RheSwgTWFyY2ggNC4gCkFwcHJveC4gZnVuZHMgcmVtYWluaW5nOiAkNTQ6MDAuCgpBbmQgR29kIHNpZ25lZCBvbiBhdCAxMjowMCBhLm0uLCBUaHVyc2RheSwgTWFyY2ggNS4KOkNyZWF0ZSBmaXNoLgpEb25lLgo6Q3JlYXRlIGZvd2wuCkRvbmUuCjpSdW4gZmlzaCduZm93bC4KQW5kIEdvZCBjcmVhdGVkIHRoZSBncmVhdCBzZWFtb25zdGVycyBhbmQgZXZlcnkgbGl2aW5nIGNyZWF0dXJlIHRoYXQgCmNyZWVwZXRoIHdoZXJld2l0aCB0aGUgd2F0ZXJzIHN3YXJtZWQgYWZ0ZXIgaXRzIGtpbmQgCmFuZCBldmVyeSB3aW5nZWRmb3dsIGFmdGVyIGl0cyBraW5kLiAKMCBlcnJvcnMuIApBbmQgR29kIHNpZ25lZCBvZmYgYXQgMTI6MDEgYS5tLixUaHVyc2RheSwgTWFyY2ggNS4gCkFwcHJveC4gRnVuZHMgcmVtYWluaW5nOiAkNDUuMDAuCgpBbmQgR29kIHNpZ25lZCBvbiBhdCAxMjowMCBhLm0uLCBGcmlkYXksIE1hcmNoIDYuCjpDcmVhdGUgY2F0dGxlLgpEb25lLgo6Q3JlYXRlIGNyZWVweSB0aGluZ3MuCkRvbmUuCjpOb3cgbGV0IHVzIG1ha2UgbWFuIGluIG91ciBpbWFnZS4KVW5zcGVjaWZpZWQgdHlwZSEgVHJ5IGFnYWluLgo6Q3JlYXRlIG1hbi4KRG9uZS4KOkJlIGZydWl0ZnVsIGFuZCBtdWx0aXBseSBhbmQgcmVwbGVuaXNoIHRoZSBlYXJ0aAogYW5kIHN1YmR1ZSBpdCBhbmRoYXZlIGRvbWluaW9uIG92ZXIgdGhlIGZpc2ggb2YgdGhlIHNlYQogYW5kIG92ZXIgb2YgdGhlIGZvd2wgb2YgdGhlIGFpcgogYW5kIG92ZXIgZXZlcnkgbGl2aW5nIHRoaW5nIHRoYXQgY3JlZXBldGggdXBvbiB0aGUgZWFydGguClRvbyBtYW55IGNvbW1hbmQgb3BlcmFuZHMhIFRyeSBhZ2Fpbi4KOlJ1biBtdWx0aXBsaWNhdGlvbi4KRXhlY3V0aW9uIHRlcm1pbmF0ZWQuIDYgZXJyb3JzLgo6SW5zZXJ0IGJyZWF0aC4KTy5LLgo6UnVuIG11bHRpcGxpY2F0aW9uLgpFeGVjdXRpb24gdGVybWluYXRlZC4gNSBlcnJvcnMuCjpNb3ZlIG1hbiB0byBHYXJkZW4gb2YgRWRlbi4KRmlsZSBHYXJkZW4gb2YgRWRlbiBkb2VzIG5vdCBleGlzdC4KOkNyZWF0ZSBHYXJkLkVuLgpEb25lLgo6TW92ZSBtYW4gdG8gR2FyZC5Fbi4KTy5LLgo6UnVuIG11bHRpcGxpY2F0aW9uLgpFeGVjdXRpb24gdGVybWluYXRlZC4gNCBlcnJvcnMuCjpDb3B5IHdvbWFuIGZyb20gbWFuLgpPLksuCjpSdW4gbXVsdGlwbGljYXRpb24uCkV4ZWN1dGlvbiB0ZXJtaW5hdGVkLiAzIGVycm9ycy4KOkluc2VydCB3b21hbiBpbnRvIG1hbi4KSWxsZWdhbCBwYXJhbWV0ZXJzLiBUcnkgYWdhaW4hCjpJbnNlcnQgbWFuIGludG8gd29tYW4uCk8uSy4KOlJ1biBtdWx0aXBsaWNhdGlvbi4gCkV4ZWN1dGlvbiB0ZXJtaW5hdGVkLiAyIGVycm9ycy4KOkNyZWF0ZSBkZXNpcmUuCkRvbmUuCjpSdW4gbXVsdGlwbGljYXRpb24uCkFuZCBHb2Qgc2F3IG1hbidud29tYW4gYmVpbmcgZnJ1aXRmdWwgYW5kIG11bHRpcGx5aW5nIGluIHRoZSBHYXJkLkVuLgoKV2FybmluZzogTm8gdGltZSBsaW1pdCBvbiB0aGlzIHJ1bi4gMSBlcnJvcnMuCjpDcmVhdGUgZnJlZXdpbGwuCkRvbmUuCjpSdW4gZnJlZXdpbGwuCkFuZCBHb2Qgc2F3IG1hbidud29tYW4gYmVpbmcgZnJ1aXRmdWwgYW5kIG11bHRpcGx5aW5nIGluIHRoZSBHYXJkLkVuLgoKV2FybmluZzogTm8gdGltZSBsaW1pdCBvbiB0aGlzIHJ1bi4gMSBlcnJvcnMuCjpVbmRvIGRlc2lyZS4KRGVzaXJlIGNhbm5vdCBiZSB1bmRvbmUgb25jZSBmcmVld2lsbCBpcyBjcmVhdGVkLgo6cm0gZnJlZXdpbGwuCkZyZWV3aWxsIGlzIGFuIGluYWNjZXNzaWJsZSBmaWxlIGFuZCBjYW5ub3QgYmUgZGVzdHJveWVkLiAKRW50ZXIgcmVwbGFjZW1lbnQsIGNhbmNlbCwgb3IgYXNrIGZvciBoZWxwLgo6SGVscCEKRGVzaXJlIGNhbm5vdCBiZSB1bmRvbmUgb25jZSBmcmVld2lsbCBpcyBjcmVhdGVkLgpGcmVld2lsbCBpcyBhbiBpbmFjY2Vzc2libGUgZmlsZSBhbmQgY2Fubm90IGJlIGRlc3Ryb3llZC4gCkVudGVyIHJlcGxhY2VtZW50LCBjYW5jZWwsIG9yIGFzayBmb3IgaGVscC4KOkNyZWF0ZSBUcmVlb2Zrbm93bGVkZ2UuCkFuZCBHb2Qgc2F3IG1hbidud29tYW4gYmVpbmcgZnJ1aXRmdWwgYW5kIG11bHRpcGx5aW5nIGluIHRoZSBHYXJkLkVuLgoKV2FybmluZzogTm8gdGltZSBsaW1pdCBvbiB0aGlzIHJ1bi4gMSBlcnJvcnMuCjpDcmVhdGUgZ29vZCduZXZpbC4KRG9uZS4KOkFjdGl2YXRlIGV2aWwuIApBbmQgR29kIHNhdyBoZSBoYWQgY3JlYXRlZCBzaGFtZS4KCldhcm5pbmc6IFN5c3RlbSBlcnJvciBpbiBzZWN0b3IgRTk1LiBNYW4nbndvbWFuIG5vdCBpbiBHYXJkLkVuLiAxIGVycm9ycy4KOlNjYW4gR2FyZC5Fbi4gZm9yIG1hbidud29tYW4uCk1hbidud29tYW4gY2Fubm90IGJlIGxvY2F0ZWQuIFRyeSBhZ2FpbiEKOlNlYXJjaCBHYXJkLkVuLiBmb3IgbWFuJ253b21hbi4KU2VhcmNoIGZhaWxlZC4KOnJtIHNoYW1lLgpTaGFtZSBjYW5ub3QgYmUgZGVsZXRlZCBvbmNlIGV2aWwgaGFzIGJlZW4gYWN0aXZhdGVkLgo6RGVzdHJveSBmcmVld2lsbC4KRnJlZXdpbGwgYW4gaW5hY2Nlc3NpYmxlIGZpbGUgYW5kIGNhbm5vdCBiZSBkZXN0cm95ZWQuCjpTdG9wIQpVbnJlY29nbml6YWJsZSBjb21tYW5kLiBUcnkgYWdhaW4uCjpCcmVhayA6QnJlYWsgOkJyZWFrCkFUVEVOVElPTiBBTEwgVVNFUlMgQVRURU5USU9OIEFMTCBVU0VSUzogCkNPTVBVVEVSIEdPSU5HIERPV04gRk9SUkVHVUxBUkRBWSBPRiBNQUlOVEVOQU5DRSBBTkQgUkVTVCBJTiBGSVZFIE1JTlVURVMuIApQTEVBU0UgU0lHTiBPRkYuCjpDcmVhdGUgbmV3IHdvcmxkLgpZb3UgaGF2ZSBleGNlZWRlZCB5b3VyIGFsbG90dGVkIGZpbGUgc3BhY2UuIApZb3UgbXVzdCBkZXN0cm95IG9sZCBmaWxlcyBiZWZvcmUgbmV3IG9uZXMgY2FuIGJlIGNyZWF0ZWQuCjpEZXN0cm95IGVhcnRoLgpEZXN0cm95IGVhcnRoLiBQbGVhc2UgY29uZmlybS4KOkRlc3Ryb3kgZWFydGggY29uZmlybWVkLgpDT01QVVRFUiBET1dOLiBDT01QVVRFUiBET1dOLiAKU0VSVklDRVMgV0lMTCBSRVNVTUUgT04gU1VOREFZIE1BUkNIIDhBVCA2OjAwIEEuTS4gCllPVSBNVVNUIFNJR04gT0ZGIE5PVyEgCkFuZCBHb2Qgc2lnbmVkIG9mZiBhdCAxMTo1OSBwLm0uLCBGcmlkYXksIE1hcmNoIDYuIApBbmQgR29kIGhlIGhhZCB6ZXJvIGZ1bmRzIHJlbWFpbmluZy4KCmdvZDogRU5ECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBub2NoIG1hbCB3YXMgdm9uIEFsaW5lIDspIChSYWZmaSwgIDIuIFNlcCAxOTk2LCAxMjozNTo0OCk6Cn4jISBybj1KYXNwZXIgcnQ9ODQxNDAwMDM5Cn4jISB0aWQ9ODQxMzkzNDAyCgpIbW0gZGFzIGdlaHQgYWxsZXMgbm9jaCBtaXQgZWluZW0gTGlwcGVucGFhciBKYXNwZXIgLSBlcmtsYWVyIGRhcyBtYWwgZ2VuYXVlci4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBub2NoIG1hbCB3YXMgdm9uIEFsaW5lIDspIChKYXNwZXIsICAyLiBTZXAgMTk5NiwgMTU6MzQ6MDIpOgp+IyEgcm49UmFmZmkgcnQ9ODQxNjYwNTQ4Cn4jISB0aWQ9ODQxMzkzNDAyCnV1cHMsIHN0aW1tdCwgZGFyYW4gaGF0dGUgaWNoIG5pY2h0IGdlZGFjaHQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpZWRlciBtYWwgZWluZW4gYXVzIG1laW5lciBsaWVibGluZy1tYWlsaW5nbGlzdC4uLiAoTXVwZmVsLCAgMi4gU2VwIDE5OTYsIDIwOjI2OjUyKToKd2FydW0gc2luZCBqdW5nZ2VzZWxsZW4gc28gZHVlbm4gdW5kIGVoZW1hZW5uZXIgc28gZGljaz8KCgoKCgoKCgoKCgoKCgpkZXIganVuZ2dlc2VsbGUga29tbXQgbmFjaCBoYXVzZSwgc2NoYXV0IHdhcyBlcyBpbSBrdWVobHNjaHJhbmsgZ2lidCB1bmQKZ2VodCBpbnMgYmV0dCwgZGVyIGVoZW1hbm4ga29tbXQgbmFjaCBoYXVzZSwgc2NoYXV0IHdhcyBlcyBpbSBiZXR0IGdpYnQsCnVuZCBnZWh0IGRhbm4genVtIGt1ZWhsc2NocmFuayAuLi4KCipncmlucyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk94Zm9yZCBEaWN0aW9uYXJ5IG9mIEN1cnJlbnQgRW5nbGlzaCAoWWVuZGksICAzLiBTZXAgMTk5NiwgMTY6MjI6MzkpOgoKCmFsaWVuOiBuLiBhIGJlaW5nIHdobyB0cmF2ZWxzIGdyZWF0IGRpc3RhbmNlcyB0byBtb2xlc3Qgb3VyIGNhdHRsZSwgdHJhbXBsZQogICAgICAgICAgICAgIG91ciBncmFpbiwgYnV6eiBvdXIgbWlsaXRhcnkgYmFzZXMgYW5kIGFiZHVjdCBGQkkgYWdlbnRzLgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSHVycmljYW5lIFF1aXogKENhdW5vLCAgOS4gU2VwIDE5OTYsIDExOjEwOjU5KToKY29weXJpZ2h0KGMpIGdhcnkgZ3VpYm9yLCAxOTkzICAgSm9rZU1hc3RlcgoKCjEuIEhvdyBhcmUgaHVycmljYW5lJ3MgbmFtZXMgc2VsZWN0ZWQ/CiAgIGEuIE5hbWVkIGFmdGVyIENvbmdyZXNzbWVuIHdobyBhcmUgZnVsbCBvZiBob3QgYWlyCiAgIGIuIE5hbWVzIG9mIHNwb3VzZXMgYXJlIHN1Ym1pdHRlZCBieSBkaXZvcmNlZCBwZW9wbGUKICAgYy4gUGFnZSA4MjQgaW4gTWlhbWkncyBwaG9uZSBib29rCiAgIGQuIEh1cnJpY2FuZXMgZG9uJ3QgY2FyZSB3aGF0IHlvdSBjYWxsIHRoZW0KCjIuIFdoYXQgZG8gdGhleSBjYWxsIHRoZSBtb3N0IHNldmVyZSBodXJyaWNhbmU/CiAgIGEuIENhdGVnb3J5IDUKICAgYi4gUmVkIEFsZXJ0CiAgIGMuIENvc3RseQogICBkLiBIT0xZIFNISUlJSUlJSUlJSUlJSUlJSUkKCjMuIElmIGEgaHVycmljYW5lIEd1aWRvLCB3aXRoIHdpbmQgc3BlZWRzIG9mIDEwNCBNUEggbGVhdmVzIHRoZQogICBOb3J0aHdlc3QgQWZyaWNhbiBjb2FzdCBvbiBXZWRuZXNkYXkgYXQgNzowNCBBTSBhbmQgaXMgdHJhdmVsaW5nCiAgIFdlc3QgYXQgMTYgTVBIIGFuZCBodXJyaWNhbmUgSXNhYmVsLCB3aXRoIHdpbmQgc3BlZWRzIG9mIDkzIE1QSAogICBsZWF2ZXMgS2V5IFdlc3QgYXQgMjQgTVBIIG9uIFRodXJzZGF5IGF0IDExOjMyIEFNOyB3aGVuIHdvdWxkCiAgIHRoZXkgbWVldD8KICAgYS4gVHVlc2RheSBhdCAzOjE4IFBNLCBidXQgdGhlaXIgbHVnZ2FnZSB3b3VsZCBiZSBpbiBQYXJpcwogICBiLiBOZXZlciwgSXNhYmVsIGRvZXNuJ3Qgd2FudCB0byBoYXZlIGFueXRoaW5nIHRvIGRvIHdpdGggYQogICAgICBibG93aGFyZCBsaWtlIEd1aWRvCiAgIGMuIE5ldmVyLCBHdWlkbyBzYWlkIHRoYXQgdGhlcmUncyBubyBwbGFjZSBmb3IgSXNhYmVsIHRvIHN0b3AKICAgICAgYW5kIGFzayBkaXJlY3Rpb25zOyBzaGUnbGwgcHJvYmFibHkgZW5kIHVwIGluIFJpbwogICBkLiBUcmljayBxdWVzdGlvbiAtIGh1cnJpY2FuZXMgZG9uJ3QgZGVwYXJ0IGZyb20gS2V5IFdlc3QKCjQuIFlvdSdyZSBmbHlpbmcgaW4gYSBzbWFsbCwgc2luZ2xlIGVuZ2luZSBwbGFuZS4gWW91IGxvb2sgdXAgYW5kIHNlZQogICBhIGh1cnJpY2FuZSBkaXJlY3RseSBhaGVhZC4gV2hhdCdzIHRoZSBmaXJzdCB0aGluZyB5b3UgdGhpbms/CiAgIGEuIEl0J3MgZ290IHRoZSByaWdodCBvZiB3YXkhIEl0J3MgZ290IHRoZSByaWdodCBvZiB3YXkhCiAgIGIuIFRoaXMgaXMgdGhlIGxhc3QgdGltZSBJIGZseSBuby1mcmlsbHMuCiAgIGMuIEkgY2FuJ3QgYmVsaWV2ZSBzaGUncyBnb2luZyB0byBnZXQgRVZFUllUSElORyBub3chCiAgIGQuIEkgZ290dGEgY2hhbmdlIG15IHNob3J0cyEKCjUuIEEgaHVycmljYW5lIGlzIGRhbmdlcm91cyBpZi4uLgogICBhLiB5b3UgZ2V0IGluIGl0J3Mgd2F5CiAgIGIuIGl0J3MgaGFkIGEgUkVBTExZIGJhZCBkYXkKICAgYy4geW91IHRyeSB0byBzdG9wIGl0IHRvIGFzayBkaXJlY3Rpb25zCiAgIGQuIHlvdSBkbyBub3QgeWllbGQgcmlnaHQgb2Ygd2F5Cgo2LiBIb3cgZG8gZm9yZWNhc3RlcnMga25vdyBhIGh1cnJpY2FuZSBpcyBjb21pbmc/CiAgIGEuIEh1cnJpY2FuZXMgQUxXQVlTIGxlYXZlIGEgZm9yd2FyZGluZyBhZGRyZXNzCiAgIGIuIFRoZXkgaGF2ZSBSRUFMTFkgZ29vZCBiaW5vY3VsYXJzCiAgIGMuIEh1cnJpY2FuZXMgTE9WRSB0aGUgYmVhY2gKICAgZC4gVGhleSBzZW5kIG91dCBhIGJ1bmNoIG9mIHNtYWxsIGJvYXRzIGFuZCBwbG90IHRoZSBzaW5raW5ncwoKNy4gSG93IGNhbiB5b3UgcHJvdGVjdCB5b3VyIGhvdXNlIGluIHRoZSBldmVudCBvZiBhIGh1cnJpY2FuZT8KICAgYS4gU2VsbCBpdCAtIFFVSUNLCiAgIGIuIEJ1cnkgaXQgYW5kIGRpZyBpdCB1cCBsYXRlcgogICBjLiBDb3ZlciBpdCB3aXRoIGxlYXZlcyBhbmQgcHJldGVuZCBpdCdzIGEgYmlnIGJ1c2gKICAgZC4gRHVjdCB0YXBlCgo4LiBXaGF0IGlzIHRoZSBmaXJzdCB0aGluZyB5b3Ugc2hvdWxkIGRvIGlmIGEgaHVycmljYW5lIGlzIGNvbmZpcm1lZAogICB0byBiZSBoZWFkaW5nIGluIHlvdXIgZGlyZWN0aW9uPwogICBhLiBDaGVjayB5b3VyIHN1cHBsaWVzIGZvciB0aGUgYmlnIGh1cnJpY2FuZSBwYXJ0eQogICBiLiBBaXIgZHJvcCBhIHJvYWRtYXAgaW50byB0aGUgZXllLCBvZiBhbm90aGVyIGFyZWEKICAgYy4gUHV0IG91dCBhbGwgeW91ciB0cmFzaCBmb3IgaW1tZWRpYXRlIGFpciBkaXNwb3NhbAogICBkLiBCZWdpbiBkcmF3aW5nIHBsYW5zIGZvciB0aGUgbmV3IGhvdXNlIHlvdSB3aWxsIHNvb24gYmUgYnVpbGRpbmcKCjkuIFdoYXQgc2hvdWxkIHlvdSBOT1QgZG8gaWYgYSBodXJyaWNhbmUgaXMgY29taW5nPwogICBhLiBCZWdpbiB0aG9zZSByZW1vZGVsaW5nIHBsYW5zIHlvdSd2ZSBiZWVuIHB1dHRpbmcgb2ZmCiAgIGIuIFB1dCB0aGUgY2F0IG9yIGRvZyBvdXQgKHVubGVzcyBvbiBhIExPTkcgbGVhc2gpCiAgIGMuIENhbmNlbCB5b3VyIGhvbWVvd25lcidzIGluc3VyYW5jZQogICBkLiBHbyBvbiBhIHBpY25pYywgdG8gdGhlIGJlYWNoCgoxMC4gV2hlbiBpcyBpdCBhIGdvb2QgdGltZSB0byBldmFjdWF0ZSB5b3VyIGhvbWU/CiAgICBhLiBXaGVuIHRoZSB3YXRlciBsZXZlbCByZWFjaGVzIHRoZSByb29mCiAgICBiLiBXaGVuIHlvdXIgaW4tZ3JvdW5kIHN3aW1taW5nIHBvb2wgYmVjb21lcyBhaXJib3JuZQogICAgYy4gU2hvcnRseSBhZnRlciB5b3VyIHJvb2YgaXMgZGVjbGFyZWQgYSBVRk8KICAgIGQuIFdoZW4gcGVvcGxlIGFzayBob3cgeW91IGNvbnN0cnVjdGVkIGEgaG9tZSB3aXRob3V0IG91dGVyIHdhbGxzCgoxMS4gV2hlcmUgc2hvdWxkIHlvdSBldmFjdWF0ZT8KICAgIGEuIEEgbmVhcmJ5IGxvd2xhbmQgdG8gd2FpdCBvdXQgdGhlIGZsb29kcwogICAgYi4gQSB0YWxsIGxvY2F0aW9uLCBsaWtlIG9uIHRvcCBvZiBhIHJhZGlvIHRvd2VyIG9yIEZsb3JpZGEncwogICAgICAgbW91bnRhaW5zCiAgICBjLiBBbnl3aGVyZSB0aGF0IGhhcyBhIGhhcHB5IGhvdXIgYW5kIGZyZWUgbXVuY2hpZXMKICAgIGQuIE91dCB0byBzZWEgb24gYSBzbWFsbCBjcmFmdAoKMTIuIFdoeSBzaG91bGQgeW91IG5vdCBzdGF5IGNsb3NlIHRvIHRoZSBiZWFjaAogICAgYS4gQWxsIHRoZSBiZXN0IHNwb3RzIGFyZSBwcm9iYWJseSB0YWtlbgogICAgYi4gVHJhY2sgaW4gdG9vIG11Y2ggc2FuZAogICAgYy4gQ29vbGVyIGtlZXBzIGJsb3duaW4nIGF3YXkKICAgIGQuIEhhcmQgdG8gc3RheSBwdXQgdW5kZXIgdGhlIDUwJyB3YXZlcwoKMTMuIElmIHRoZSBleWUgb2YgdGhlIGh1cnJpY2FuZSBwYXNzZXMgb3ZlcmhlYWQsIHlvdSBzaG91bGQgbm90Li4uCiAgICBhLiBzdGFyZTsgaXQncyBpbXBvbGl0ZQogICAgYi4gbWFrZSBkaXJlY3QgZXllIGNvbnRhY3QKICAgIGMuIG9mZmVyIGl0IHNvbWUgVmlzaW5lCiAgICBkLiBhc2sgaWYgaXQncyBzZWVuIERvcm90aHkgYW5kIFRvdG8KCjE0LiBXaGF0IGhhcHBlbnMgYWZ0ZXIgdGhlIGV5ZSBwYXNzZXM/CiAgICBhLiBTdGF5IHZlcnkgc3RpbGw7IG1heWJlIGl0IGRpZG4ndCBzZWUgeW91CiAgICBiLiBJdCBjYW4ndCBzZWUgeW91IGFueSBtb3JlCiAgICBjLiBZb3UgY2FuIGV4cGVjdCB0aGUgbm9zZSwgZm9sbG93ZWQgYnkgdGhlIG1vdXRoLCBldGMuCiAgICBkLiBJdCB3aW5rcyBhbmQgd2F2ZXMgZ29vZC1ieWUKCjE1LiBXaGF0IHNob3VsZCB5b3UgZG8gZmlyc3QgYWZ0ZXIgYSBodXJyaWNhbmUgcGFzc2VzPwogICAgYS4gTG9jYXRlIHlvdXIgY29tcHV0ZXIKICAgIGIuIERldGVybWluZSBpZiB5b3VyIGNvbXB1dGVyIGlzIG9wZXJhdGlvbmFsCiAgICBjLiBDb250YWN0IHlvdXIgaW5zdXJhbmNlIGFnZW50IGFib3V0IHJlcGxhY2luZyB5b3VyIGNvbXB1dGVyCiAgICBkLiBTZWUgaWYgeW91ciBzcG91c2UsIGtpZHMgYW5kIHBldHMgYXJlIGFyb3VuZDsgZ2V0IGJhY2sgdG8KICAgICAgIHlvdXIgY29tcHV0ZXIKCjE2LiBXaG8gc2hvdWxkIHlvdSB0dXJuIHRvIGlmIHlvdSBuZWVkIGhlbHAgYWZ0ZXIgYSBodXJyaWNhbmU/CiAgICBhLiBMb2NhbCBnb3Zlcm5tZW50ICAgICAoYWxzbyBibG93biBhd2F5KQogICAgYi4gU3RhdGUgZ292ZXJubWVudCAgICAgKGNhbid0IGFmZm9yZCB0byBoZWxwKQogICAgYy4gRmVkZXJhbCBnb3Zlcm5tZW50ICAgKGRvZXNuJ3QgY2FyZSkKICAgIGQuIEZvcmVpZ24gZ292ZXJubWVudHMgICh0aGUgSmFwYW5lc2UgYXJlIGxvb2tpbmcgZm9yIGludmVzdG1lbnRzKQoKMTcuIFdoYXQgc2VydmljZXMgc2hvdWxkIHlvdSBleHBlY3QgdG8gYmUgd2l0aG91dCwgYWZ0ZXIgYSBodXJyaWNhbmU/CiAgICBhLiBFbGVjdHJpY2l0eSAgICAgKG5vIGNvbGQgYmVlcikKICAgIGIuIFRlbGVwaG9uZSAgICAgICAobm8gbW9kZW0pCiAgICBjLiBZb3VyIGNvbXB1dGVyISEgKEVlZWVlYWFhYWFoaGghKQogICAgZC4gQ2FsbCBnaXJscy9ndXlzIChwcmV5IHRoZSByZWJ1aWxkaW5nIGJlZ2lucyBzb29uKQoKMTguIFdoYXQgaGFwcGVucyBhIHllYXIgYWZ0ZXIgeW91J3JlIGhpdCBieSBhIGh1cnJpY2FuZT8KICAgIGEuIFN0aWxsIGxvb2tpbmcgZm9yIHBpZWNlcyBvZiB5b3VyIGhvdXNlCiAgICBiLiBTdGlsbCBsb29raW5nIGZvciBwaWVjZXMgb2YgeW91ciBjb21wdXRlcgogICAgYy4gU3RpbGwgbG9va2luZyBmb3IgcGllY2VzIG9mIHlvdXJzZWxmCiAgICBkLiBUaGUgZ292ZXJubWVudCBzZWVzIHlvdSd2ZSBzdGFydGVkIHJlYnVpbGRpbmc7IGNvbmNsdWRlcyB5b3UKICAgICAgIG5lZWQgbm8gZW1lcmdlbmN5IGhlbHAKCgpnZWZ1bmRlbiAobWFsIHdpZWRlcikgdm9uIEMuIE5vCgpQLlMuIGRlciBGaWxtIGlzdCB1ZWJyaWdlbnMgenUgZW1wZmVobGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZXIgdWVidCwgYWggamEgKENhcmFkaHJhcywgMTAuIFNlcCAxOTk2LCAyMjo1Mjo0NSk6CltBbGxnZW1laW46TXVybWVsXSB5ZWFoIQpbVG9kOkxhcnNdIEV0d2FzIEdlaGVpbW5pc3ZvbGxlcyB1bmQgVW5iZWthbm50ZXMgaGF0IGdlcmFkZSBNdXJtZWwgdW1nZWJyYWNodC4KW0FsbGdlbWVpbjpBc21vZGlzXSBodWNoID8KRHUgdGVpbHN0IE11cm1lbCBtaXQ6IGFoIGphIDopCk11cm1lbCBpc3QgZ2VyYWRlIG5pY2h0IGRhOiBpY2ggdWViZQoKIFdhcyBlciBudXIgdWVidD8gOikgICAgICAgUm90aG9ybiBDYXJhZGhyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkljaCBoYWJzIHNjaG9uIGltbWVyIGdld3Vzc3QhIChXYXJnb24sIDEyLiBTZXAgMTk5NiwgMTE6MTA6MzYpOgpCaWxsIEdhdGVzIGlzIHRoZSBBbnRpQ2hyaXN0LCBhbmQgaGVyZSBpcyB0aGUgcHJvb2YhCgpBc3N1bWUgQT02LCBCPTEyLCBDPTE4LCBEPTI0LCBhbmQgc28gb24sIGFkZGluZyA2IHRvCmVhY2ggY29uc2VjdXRpdmUgbGV0dGVyIG9mIHRoZSBhbHBoYWJldC4gIE5vdywgYWRkIHVwCnRoZSBmb2xsb3dpbmcgcGhyYXNlcyBhY2NvcmRpbmcgdG8gZWFjaCBsZXR0ZXIncyB2YWx1ZS4KCkNPTVBVVEVSICAgICAgICA9IDY2Ni4gIFdoYXQgQmlsbCdzIGVtcGlyZSBpcyBtYWRlIG9mLgpJQk0tUEMgQ0xPTkVTICAgPSA2NjYuICBUaGUgdHlwZSBvZiBoaXMgZW1waXJlLgpHQVRFUycgQ1BVJ1MgICAgPSA2NjYuICBXaGF0IEJpbGwgbG92ZXMuCk1TLURPUyBIT01FICAgICA9IDY2Ni4gIFdoYXQgQmlsbCB3YW50cyBpbiBvdXIgaG9tZXMuCklCTS1QQyBQTEFORVQgICA9IDY2Ni4gIFdoYXQgQmlsbCB3b3VsZCB3YW50IGV2ZW4gbW9yZS4KUFVSQ0hBU0UgQSBQQyAgID0gNjY2LiAgV2hhdCBCaWxsIHdhbnRzIHVzIHRvIGRvLgpLSUxMIEFQUExFIE1BQyAgPSA2NjYuICBXaGF0IEJpbGwgd291bGQgbG92ZSB0byBkby4KS0lMTCBBTEwgQU1JJ1MgID0gNjY2LiAgQW1pID0gUGV0IG5hbWUgZm9yIEFtaWdhLgpCSUxMIElTIEVWSUwgICAgPSA2NjYuICBUaGUgQW50aUNocmlzdD8KQklMTCBJUyBBIEJFQVNUID0gNjY2LiAgVGhlIGJlYXN0LCBhcyBpbiA2NjY/Ck1BU1RFUiBCSUxMICAgICA9IDY2Ni4gIEJpbGwgYXMgb3VyIG1hc3Rlcj8gU2NhcnkuLi4KQSBCT1cgVE8gQklMTCAgID0gNjY2LiAgV2hhdCB3ZSB3b3VsZCBkbyBpZiBoZSBydWxlZC4KCkNhbiBhbGwgdGhlc2UgUkVBTExZIGp1c3QgYmUgYSBjb2luY2lkZW5jZT8KCihBdXM6IGNvbXAuc3lzLmFtaWdhLmdhbWVzKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2h1dGRvd24gYW0gU29ubnRhZyBhYmVuZC9Nb250YWcgbW9yZ2VuIChHcmltbWJvcm4sIDE2LiBTZXAgMTk5NiwgMTQ6MTE6MjgpOgpbVmVybGVndCB2b24gYW56ZWlnZW4sIEhhdGUsIDE1LiBTZXAgMTk5NiwgMjM6NTE6NDldOgpXZWdlbiBlaW5pZ2VyIEZlaGxlciwgZGllIGljaCBpbSBNb21lbnQgbmljaHQgYmVyaWNodGlnZW4ga2FubiwgaGFiZSBpY2gKZGFzIE1VRCB2b3JlcnN0IGdlc2NobG9zc2VuLiBTb2JhbGQgYWxsZXMgd2llZGVyIGltIExvdCBpc3QsIHdpcmRzCndlaXRlcmdlaGVuLgpIYXRlLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTaHV0ZG93biBhbSBTb25udGFnIGFiZW5kL01vbnRhZyBtb3JnZW4gKEdyaW1tYm9ybiwgMTYuIFNlcCAxOTk2LCAxNDoxMjozOSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQyODc1ODg4Cn4jISB0aWQ9ODQyODc1ODg4CgpJY2ggaGFiIGRlbiBBcnRpa2VsIG5hY2ggV2l0emUgdmVybGVndCwgbmNpaHQgd2VpbCBpY2ggZGFzIGx1c3RpZyBmaW5kZSBkYXNzCmRhcyBNRyBrYXB1dHQgaXN0IHNvbmRlcm4gd2VpbCBkZXIgQXJ0aWtlbCB6dSBzY2hvZW4gaXN0OiBXZW5uIGRhcyBNRyB6dSBpc3QsCndpZSBzb2xsIG1hbiBkYW5uIGRlbiBBcnRpa2VsIGxlc2VuPwoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IGVya2xhZXJ0IFdpdHplCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaWxsIEdhdGVzXjIgKEVscmljLCAxNi4gU2VwIDE5OTYsIDE2OjE3OjU3KToKQmlsbCBHYXRlcyByYWV1bXQgbmFjaCAzNSBKYWhyZW4gd2llZGVyIG1hbCBzZWluZSBBYnN0ZWxsa2FtbWVyIGF1Zi4gSW4gZWluZXIKRWNrZSBmaW5kZXQgZXIgZWluZSByZWNodCB2ZXJzdGF1YnRlIEZsYXNjaGUgdm9uIGFsdGVydHVlbWxpY2hlciBNYWNoYXJ0LgpFcmJsYWVzdCBkZW4gU3RhdWIgd2VnLCBvZWZmbmV0IGRpZSBGbGFzY2hlIHVuZC4uLi4uCgpQT09PT09GIQoKLi4uIGVpbiByaWVzaWdlciBEamlubiBzdGVodCB2b3IgaWhtLgoiRFUgSEFTVCBNSUNIIEJFRlJFSVQsIFNURVJCTElDSEVSISBEQUZVRVIgSEFTVCBEVSBFSU5FTiBXVU5TQ0ggRlJFSS4iIChkZXIKRGppbm4gaXN0IG1pdCBkZW0gU2Vuc2VubWFubiB2ZXJ3YW5kdC4uLikKIldhcyBoZWlzc3QgaGllciBTdGVyYmxpY2hlciIsIGRlbmt0IHNpY2ggQmlsbCwgaGFlbHQgYWJlciBkZW4gTXVuZCAoZGVyIERqaW5uCmlzdCB3aXJrbGljaCB6aWVtbGljaCBncm9zcykuCkVyIGRlbmsga3VyeiBuYWNoIHVuZCBzcHJpY2h0IGRhbm4gaW4gZWluZW0gQW5mbHVnIHZvbiBHdWV0ZTogIkhvZXJlLCBEamlubiEKSGllciBoYWJlIGljaCBlaW5lIFdlbHRrYXJ0ZSwgZ2VuYXUgaGllciBsaWVndCBLdXJkaXN0YW4sIGhpZXIgc3RlaHQgZGllCnR1ZXJraXNjaGUgQXJtZWUsIGhpZXIgZGllIElyYWtpcywgZGllIElyYW5lciBrb21tZW4gdm9uIGRhLCBoaWVyIHNpbmQgZWluCnBhYXIgUEtLLURvZXJmZXIsIApoaWVyIHN0ZWh0IGRpZSBQVUsgdXN3LiB1c3cuIEtvZW5udGVzdCBEdSBkYWZ1ZXIgc29yZ2VuLCBkYXNzIGFsbGUgQmV0ZWlsaWd0ZW4Kc2ljaCBhbiBlaW5lbiBUaXNjaCBzZXR6ZW4gdW5kIG5hY2ggZWluZXIgZnJpZWRsaWNoZW4gTG9lc3VuZyBzdWNoZW4/IgpEZXIgRGppbm4ga3JhdHp0IHNpY2ggYW0gS29wZi4KIkFsc28sIGFlaGVtLCBuYWphLCBpbiBkaWVzZW4gZ2FuemVuIFNhZ2VuIHVuZCBMZWdlbmRlbiwgZGEgc3RlaHQgZGFzIHNvCnNjaG9lbiBtaXQgZGVuIFd1ZW5zY2hlbiB1bmQgc28sIGFiZXIsIG5hamEsIGFsbGVzIGthbm4gaWNoIGF1Y2ggbmljaHQuIEhhc3QKZHUga2VpbmVuIGFuZGVyZW4gV3Vuc2NoPyIKIk51biBndXQsIERqaW5uLiBEaWUgZ2FuemUgRmFjaHdlbHQgcmVndCBzaWNoIGRhcnVlYmVyIGF1ZiwgZGFzcyBpY2ggdmVyc3VjaGVuCnd1ZXJkZSwgbWl0IE1pY3Jvc29mdCBkYXMgTW9ub3BvbCB6dSBiZWtvbW1lbi4gSWNoIHd1ZW5zY2hlIG1pciwgZGFzcyBkdSBpaG5lbgprbGFybWFjaHN0LCBkYXNzIGljaCBlaW5mYWNoIG51ciBndXRlLCBsZWljaHQgdmVyc3RhZW5kbGljaGUgUHJvZ3JhbW1lIG1hY2hlbgp3aWxsLCB1bSBhbGxlbgpBbndlbmRlcm4genUgaGVsZmVuLiIKCkRqaW5uOiAiSG1tLiBaZWlnIG1pciBub2NoIG1hbCBkaWUgS2FydGUuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBtZWhyIERBVXMuLi4gKFJvY2h1cywgMTYuIFNlcCAxOTk2LCAxOTowMjozNSk6CkF1cyBkZS50YWxrLmpva2VzOgpXaXIgaGFiZW4gaGllciBlaW4gcmVjaHQgZ3Jvc3NlcyBOZXR3ZXJrIG1pdCBNYWNzIHVuZCBkYSBrb21tZW4gYXVjaApyZWNodCBpbnRlbGxpZ2VudGUgRnJhZ2VuIGJlaW0gU3VwcG9ydCBhbjoKClN1cHBvcnQ6IERydWVja2VuIFNpZSBiaXR0ZSBtYWwgYEFwZmVsLVEnCkRBVTogICAgIERpZSBUYXN0ZSBtaXQgZGVtIEFwZmVsIHNlaCcgaWNoIGphLCBhYmVyIHdvIGlzdCBkaWUgbWl0CiAgICAgICAgIGRlciBLdWg/CgpvZGVyCgpTdXBwb3J0OiBKZXR6dCBzY2hsaWVzc2VuIFNpZSBiaXR0ZSBhbGxlIEZlbnN0ZXIuLi4KREFVOiAgICAgQXVnZW5ibGljaywgaWNoIG11c3MgbWFsIGRlbiBIb2VyZXIgYXVzIGRlciBIYW5kIGxlZ2VuLi4uCkRhdSBzdGVodCBhdWYsIGdlaHQgenVtIEZlbnN0ZXIuLi4KQXVnZW5ibGljayBzcGFldGVyCkRBVTogICAgIFNvLCBzaW5kIGFsbGUgenUsIGFiZXIgZXJrbGFlcmVuIFNpZSBtaXIgbm9jaCBgd2FydW0nCgpvZGVyCgpTdXBwb3J0OiBKZXR6dCBiaXR0ZSBgUmV0dXJuJyBlaW5nZWJlbi4uLgpEQVU6ICAgICBNaXQgYG9lJyA/CgpVbmQgZGFubiB3YXIgZGEgbm9jaCBkaWUgR2VzY2hpY2h0ZSwgaW4gZGVyIHVuc2VyIEhhdXNlbGVrdHJpa2VyCnZlcnN1Y2h0ZSBtaXQgZWluZXIgVmVybGFlbmdlcnVuZ3NzY2hudXIgZWluIFBlcnBldHVvLU1vYmlsZSB6dQpiYXVlbiB1bmQgd2lyIDQgU3R1bmRlbiBuYWNoIGRlbSBGZWhsZXIgc3VjaHRlbi4uLgoKQWxsIGRpZXMgaXN0IF9yZWFsXyBnZXNjaGVoZW4sIGFiZXIgaWNoIHdhcnRlIG5vY2ggYXVmOgoKRmFocmVuIFNpZSBiaXR0ZSBkZW4gU2VydmVyIHJ1bnRlci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKPD48PiAoSmFzcGVyLCAxOS4gU2VwIDE5OTYsIDIzOjIwOjE4KToKRWluIE1hbnRhZmFocmVyIHRyaWZmdCBlaW5lbiBSb2xsc3R1aGxmYWhyZXI6Ck1hbnRhZmFocmVyOiAnQm9haCBleSwgY29vbGVzIEdlZmFlaHJ0LiBXaWUgc2NobmVsbCBiaXN0J24gZGFtaXQ/JwpSb2xsc3R1aGxmYWhyZXI6ICdOYSBqYSBzbyB1bmdlZmFlaHIgNi03IGttL2guJwpNYW50YWZhaHJlcjogJ0V5IGlzIGphIHZvbGwgbGFobSBleSwgZGEga2FubnN0ZSBqYSBnbGVpY2ggbGF1ZmVuLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjw+PD48PiAoSmFzcGVyLCAxOS4gU2VwIDE5OTYsIDIzOjI1OjU1KToKUGFwc3QgdW5kIEthcmRpbmFsIHNwaWVsZW4gTWluaWdvbGYuCkthcmRpbmFsIHNjaGxhZWd0LCB0cmlmZnQgbmljaHQgdW5kIG11cm1lbHQKICAgICAgICAiU2NoZWlzc2UsIGRhbmViZW4iLgpEZXIgUGFwc3Qgc2NoYXV0IG51ciBzdHJlbmcuCgpNaW51dGVuIHNwYWV0ZXIgd2llZGVyIGVpbiBGZWhsc2NobGFnOgogICAgICAgICJTY2hlaXNzZSwgZGFuZWJlbiIuCkRlciBQYXN0IGdydW1tZWx0ICJuYSBuYSBuYSAuLi4gIi4KCkJlaW0gbmFlY2hzdGVuIEZlaGx2ZXJzdWNoIHdpZWRlcjoKICAgICAgICAiU2NoZWlzc2UsIGRhbmViZW4iLgpEZXIgUGFwc3QgZHJvaHQ6ICJCZWltIG5hZWNoc3RlbiBGbHVjaCB3aXJkIGRpZQpFcmRlIGVyYmViZW4sIGRlciBIaW1tZWwgd2lyZCBzaWNoIGF1ZnR1biB1bmQKZWluIGdyZWxsZXIgQmxpdHogd2lyZCBoZXJuaWVkZXJmYWhyZW4gdW5kIERpY2gKYXVmIGRlciBTdGVsbGUgdG9ldGVuICEiCgpEb2NoIE1pbnV0ZW4gc3BhZXRlciB2ZXJmZWhsdCBkZXIgS2FyZGluYWwgZXJuZXV0OgogICAgICAgICJTY2hlaXNzZSwgZGFuZWJlbiIuCkRhIGVyYmVidCBkaWUgRXJkZSwgZGVyIEhpbW1lbCB0dXQgc2ljaCBhdWYgdW5kCmVpbiBncmVsbGVyIEJsaXR6IGZhZWhydCBoZXJuaWVkZXIgLSB0cmlmZnQgYWJlcgpuaWNodCBkZW4gS2FyZGluYWwsIHNvbmRlcm4gZGVuIFBhcHN0LgpEYSBlcnRvZW50IGVpbmUgZHJvZWhuZW5kZSBTdGltbWUgdm9uIG9iZW46CiAgICAgICAgIlNjaGVpc3NlLCBkYW5lYmVuICEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo8Pjw+PD48PiAoSmFzcGVyLCAxOS4gU2VwIDE5OTYsIDIzOjI2OjU3KToKQTogTWVpbmUgT21hIGlzdCBnZXJhZGUgZ2VzdG9yYmVuCkI6IFdhcyBoYXQgc2llIGRlbm4gZ2VoYWJ0PwpBOiBFaW5lIEVpZ2VudHVtc3dvaG51bmcgdW5kIDEwMC4wMDAgRE0gYXVmIGRlciBCYW5rCkI6IE5laW4sIGljaCBtZWludGUgZG9jaCwgd2FzIGhhdCBpaHIgZ2VmZWhsdD8KQTogRWluIFJvbGxzIFJveWNlIHVuZCBlaW4gTmVyem1hbnRlbApCOiBOZWluIGljaCBtZWludGUgZG9jaCwgd2llIGlzdCBkYXMgVW5nbHVlY2sgcGFzc2llcnQ/CkE6IEFjaCBzby4gTmFqYSwgc2llIGhhdCBzaWNoIGRhcyBHZW5pY2sgZ2Vicm9jaGVuLCBhbHMgc2llIGJlaW0KICAgS2FydG9mZmVsaG9sZW4gZGllIEtlbGxlcnRyZXBwZSBoZXJ1bnRlcmdlZmFsbGVuIGlzdC4KQjogV2FzIGhhYnQgaWhyIGRlbm4gZGFubiBnZW1hY2h0PwpBOiBOdWRlbG4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN1ZmYgKEF6enVybywgMjMuIFNlcCAxOTk2LCAwNDowODoyOCk6CkVpbiBNYW5uIGtvbW10IGluIGVpbmUgQmFyIHVuZCBsZWhudCBzaWNoIG5lYmVuIGVpbmVtIGFuZGVyZW4gYW4gZGVuIFRyZXNlbi4KTWVpbnQgZGllc2VyOgoiSGFiZW4gc2llIHNjaG9uIGRlbiBTcGV6aWFsZHJpbmsgdmVyc3VjaHQuIERhbmFjaCBrYW5uIG1hbiBmbGllZ2VuISIKRGVyIGFuZGVyZSBpc3QgdW5nbGFldWJpZywgbmltbXQgYWJlciBzY2hsaWVzc2xpY2ggZWluZSBXZXR0ZSB1bSA1MCBETSBhbi4KRGVyIGVyc3RlIG9yZGVydCBlaW5lbiAiU3BlemlhbCIsIGxlZXJ0IHNlaW4gR2xhcyB1bmQgZ2VodCBtaXQgZGVtIGFuZGVyZW4KQXVmcyBEYWNoIGRlcyBuYWhlbGllZ2VuZGVuIEhvY2hoYXVzZXMuCkRhbmFjaCBzdHVlcnp0IGVyIHNpY2ggaW4gZGllIFRpZWZlLiBLdXJ6IHZvciBkZW0gQm9kZW4gc3RyZWNrdCBlciBkaWUgQXJtZQphdXMgdW5kIHNlZ2VsdCB3aWVkZXIgenVydWVjayBhdWZzIERhY2guCkRlciBhbmRlcmUgaXN0IGJlZ2Vpc3RlcnQuIE5hdHVlcmxpY2ggbXVzcyBlciBkYXMgYXVjaCBnbGVpY2ggdmVyc3VjaGVuLgpSdW50ZXIgLT4gU3BlemlhbCAtPiByYXVmIGF1ZnMgRGFjaC4gRXIgc3ByaW5ndCBhYiBmYWVsbHQgYmlzIGt1cnogdWViZXIgZGVtCkJvZGVtIHVuZCBLUkFBQUFDSEhIIGtsYXRzY2h0IGVyIHZvbGwgYXVmIGRlbiBBc3BoYWx0LiBEZXIgYW5kZXJlIGdlaHQgd2llZGVyCnJ1bnRlciBpbiBkaWUgS25laXBlIHVuZCAKbGVobnQgc2ljaCB3aWVkZXIgYW4gZGVuIFRyZXNlbi4KS29tbXQgZGllIEJlZGllbnVuZyB6dSBpaG0gdW5kIG1laW50OiAiQWxzbyBTdXBlcm1hbiwgd2VubiBEdSBnZXNvZmZlbiBoYXN0CmJpc3QgRHUgc2Nob24gd2lya2xpY2ggZWluIEFyc2NobG9jaC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdWVsbCAoWWFudHJvLCAyNC4gU2VwIDE5OTYsIDE1OjUzOjU1KToKCk5hY2ggZGVyIGVyc3RlbiBOdW1tZXIuLi4KRXI6IFdlbm4gaWNoIGdld3Vzc3QgaGFldHRlLCBkYXNzIER1IG5vY2ggZWluZSBKdW5nZnJhdSBiaXN0LCBkYW5uIGhhZXR0ZSBpY2gKbWlyIG1laHIgWmVpdCBnZWxhc3Nlbi4KU2llOiBXZW5uIGljaCBnZXd1c3N0IGhhZXR0ZSwgZGFzcyBEdSBaZWl0IGhhc3QsIGhhZXR0ZSBpY2ggZXJzdCBkYXMgSG9lc2NoZW4KYXVzZ2V6b2dlbi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm11ZWxsIzIgKFlhbnRybywgMjQuIFNlcCAxOTk2LCAxNzoxNDoyMSk6CgogIFdvb2R5IEFsbGVuIGFuZCBTb29uIFlpIGFyZSBnZXR0aW5nIHJlYWR5IHRvIGxlYXZlIGEgdGlwIGluIGEKcmVzdGF1cmFudC4gV29vZHkgaGFzIG5vdGhpbmcgc21hbGxlciB0aGFuIGEgdHdlbnR5IGFuZCBpcyBlbWJhcnJhc3NlZCB0bwphc2sgdGhlIHdhaXRyZXNzIHRvIGJyZWFrIGl0IHVwIHNpbmNlIGhlIGlzIGEgZmFtb3VzIG1pbGxpb25haXJlIGFuZCB0aGUKd2FpdHJlc3MgZ2F2ZSBoaW0gZXhjZWxsZW50IHNlcnZpY2UuCiAgTHVja2lseSwgaGUgbm90aWNlcyBNaWNoYWVsIEphY2tzb24gaXMgc2l0dGluZyBqdXN0IHR3byB0YWJsZXMgYXdheSwgc28KaGUgdGFwcyBoaW0gb24gdGhlIHNob3VsZGVyIGFuZCB3aGlzcGVycyAiaGV5IHBhbCwgY2FuIHlvdSBnaXZlIG1lIHR3bwp0ZW5zIGZvciBhIHR3ZW50eT8iCiAgTWljaGFlbCBsb29rcyBhY3Jvc3MgdGhlIHJlc3RhdXJhbnQgYXQgU29vbiBZaSBhbmQgbGV0cyBvdXQgYSBiaWcKbGF1Z2gtICJubyB0aGFua3MsIGkgbGlrZSBteSBsaXR0bGUgd2hpdGUgYm95czsgeW91IGNhbiBrZWVwIHRoYXQgb2xkCnNsYW50eS1leWVkIG1pbm9yaXR5IGJpdGNoICEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTXVlbGwjMyAoWWFudHJvLCAyNC4gU2VwIDE5OTYsIDE3OjI4OjE0KToKCgpHZWZ1bmRlbiBpcmdlbmR3byBpbSBOZXR6IChpY2ggd2VyZCBtZWluZSBRdWVsbGVuIGRvY2ggbmljaHQgb3V0ZW4uLi4pCgoKClRoZXNlIGZyb20gYSBmYWl0aGZ1bCBKZEogcmVjaXBpZW50IGFuZCBsb25nLXRpbWUgc3R1ZGVudCBvZiBnZW5kZXIgcm9sZXMgd2hvIAoJd2lzaGVzIHRvIHJlbWFpbiBhbm9ueW1vdXMgaW4gYW4gYXR0ZW1wdCB0byBwcm90ZWN0IGhlciBmYWNhZGUgb2YgCglwb2xpdGljYWwgY29ycmVjdG5lc3MKCgpUaGUgTWVuJ3MgR3VpZGUgdG8gV2hhdCBhIFdvbWFuIFJlYWxseSBNZWFucyBXaGVuIFNoZSBTYXlzIC4uLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKWW91IHdhbnQJCQlZb3Ugd2FudAoKV2UgbmVlZAkJCQlJIHdhbnQKCkl0J3MgeW91ciBkZWNpc2lvbgkJVGhlIGNvcnJlY3QgZGVjaXNpb24gc2hvdWxkIGJlIG9idmlvdXMgCgkJCQkJYnkgbm93CgpEbyB3aGF0IHlvdSB3YW50CQlZb3UnbGwgcGF5IGZvciB0aGlzIGxhdGVyCgpXZSBuZWVkIHRvIHRhbGsJCQlJIG5lZWQgdG8gY29tcGxhaW4KClN1cmUuLi4gZ28gYWhlYWQJCUkgZG9uJ3Qgd2FudCB5b3UgdG8KCkknbSBub3QgdXBzZXQJCQlPZiBjb3Vyc2UgSSdtIHVwc2V0LCB5b3UgbW9yb24hCgpZb3UncmUgLi4uIHNvIG1hbmx5CQlZb3UgbmVlZCBhIHNoYXZlIGFuZCB5b3Ugc3dlYXQgYSBsb3QKCgkJZDh7ICA9PT4gSEVZISEgPD09ICB9OGIKCllvdSdyZSBjZXJ0YWlubHkgYXR0ZW50aXZlCUlzIHNleCBhbGwgeW91IGV2ZXIgdGhpbmsgYWJvdXQ/Cgl0b25pZ2h0CgpJJ20gbm90IGVtb3Rpb25hbCEgIEFuZAlJJ20JSSdtIG9uIG15IHBlcmlvZC4KCW5vdCBvdmVycmVhY3RpbmchCgpCZSByb21hbnRpYywgdHVybiBvdXQgdGhlCUkgaGF2ZSBmbGFiYnkgdGhpZ2hzCglsaWdodHMKClRoaXMga2l0Y2hlbiBpcyBzbwkJSSB3YW50IGEgbmV3IGhvdXNlCglpbmNvbnZlbmllbnQKCkkgd2FudCBuZXcgY3VydGFpbnMJCWFuZCBjYXJwZXRpbmcsIGZ1cm5pdHVyZSwgd2FsbHBhcGVyLi4uCgpJIG5lZWQgd2VkZGluZyBzaG9lcwkJdGhlIG90aGVyIDQwIHBhaXJzIGFyZSB0aGUgd3Jvbmcgc2hhZGUgCgkJCQkJb2Ygd2hpdGUuCgpIYW5nIHRoZSBwaWN0dXJlIHRoZXJlCQlOTywgSSBtZWFuIGhhbmcgaXQgdGhlcmUhCgpJIGhlYXJkIGEgbm9pc2UJCQlJIG5vdGljZWQgeW91IHdlcmUgYWxtb3N0IGFzbGVlcC4KCkRvIHlvdSBsb3ZlIG1lPwkJCUknbSBnb2luZyB0byBhc2sgZm9yIHNvbWV0aGluZyAKCQkJCQlleHBlbnNpdmUuCgpIb3cgbXVjaCBkbyB5b3UgbG92ZSBtZT8JSSBkaWQgc29tZXRoaW5nIHRvZGF5IHlvdSdyZSByZWFsbHkgbm90IAoJCQkJCWdvaW5nIHRvIGxpa2UuCgpJJ2xsIGJlIHJlYWR5IGluIGEgbWludXRlCUtpY2sgb2ZmIHlvdXIgc2hvZXMgYW5kIGZpbmQgYSBnb29kIAoJCQkJCWdhbWUgb24gVFYKCklzIG15IGJ1dHQgZmF0PwkJCVRlbGwgbWUgSSdtIGJlYXV0aWZ1bAoKWW91IGhhdmUgdG8gbGVhcm4gdG8JCUp1c3QgYWdyZWUgd2l0aCBtZQoJY29tbXVuaWNhdGUKCkFyZSB5b3UgbGlzdGVuaW5nIHRvIG1lIT8JVG9vIGxhdGUsIHlvdSdyZSBkZWFkCgpZZXMJCQkJTm8KCk5vCQkJCU5vCgpNYXliZQkJCQlObwoKSSdtIHNvcnJ5CQkJWW91J2xsIGJlIHNvcnJ5CgpEbyB5b3UgbGlrZSB0aGlzIHJlY2lwZT8JSXQncyBlYXN5IHRvIGZpeCwgc28geW91J2QgYmV0dGVyIGdldCAKCQkJCQl1c2VkIHRvIGl0CgpXYXMgdGhhdCB0aGUgYmFieT8JCVdoeSBkb24ndCB5b3UgZ2V0IG91dCBvZiBiZWQgYW5kIHdhbGsgCgkJCQkJaGltIHVudGlsIGhlIGdvZXMgdG8gc2xlZXAKCkknbSBub3QgeWVsbGluZyEJCVllcyBJIGFtIHllbGxpbmcgYmVjYXVzZSBJIHRoaW5rIHRoaXMgaXMKCQkJCQlpbXBvcnRhbnQKCkFsbCB3ZSdyZSBnb2luZyB0byBidXkgaXMJSXQgZ29lcyB3aXRob3V0IHNheWluZyB0aGF0IHdlJ3JlIHN0b3BwaW5nCglhIHNvYXAgZGlzaAkJYXQgdGhlIGNvc21ldGljcyBkZXBhcnRtZW50LCBUaGUgc2hvZQoJCQkJZGVwYXJ0bWVudCwgSSBuZWVkIHRvIGxvb2sgYXQgYSBmZXcgbmV3CgkJCQlwb2NrZXQgYm9va3MsIGFuZCBPTUlHT0QgVGhvc2UgcGluayBzaGVldHMKCQkJCXdvdWxkIGxvb2sgZ3JlYXQgaW4gdGhlIGJlZHJvb20gYW5kIGRpZCB5b3UKCQkJCWJyaW5nIHlvdXIgY2hlY2tib29rPwoKClRoZSBhbnN3ZXIgdG8gIldoYXQncyB3cm9uZz8iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhlIHNhbWUgb2xkIHRoaW5nID0gTm90aGluZwpOb3RoaW5nID0gRXZlcnl0aGluZwpFdmVyeXRoaW5nID0gTXkgUE1TIGlzIGFjdGluZyB1cApOb3RoaW5nLCByZWFsbHkgPSBJdCdzIGp1c3QgdGhhdCB5b3UncmUgc3VjaCBhbiBhc3Nob2xlCkkgZG9uJ3Qgd2FudCB0byB0YWxrIGFib3V0IGl0ID0gR28gYXdheSwgSSdtIHN0aWxsIGJ1aWxkaW5nIHVwIHN0ZWFtCgoKVGhlIFdvbWFuJ3MgR3VpZGUgdG8gV2hhdCBhIE1hbiBpcyBSZWFsbHkgU2F5aW5nLi4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIkknbSBodW5ncnkuIiA9IEknbSBodW5ncnkuCgoiSSdtIHNsZWVweS4iID0gSSdtIHNsZWVweS4KCiJJJ20gdGlyZWQuIiAgPSBJJ20gdGlyZWQuCgoiRG8geW91IHdhbnQgdG8gZ28gdG8gYSBtb3ZpZT8iID0gSSdkIGV2ZW50dWFsbHkgbGlrZSB0byBoYXZlIHNleCB3aXRoIHlvdS4KCiJDYW4gSSB0YWtlIHlvdSBvdXQgdG8gZGlubmVyPyIgPSBJJ2QgZXZlbnR1YWxseSBsaWtlIHRvIGhhdmUgc2V4IHdpdGggeW91LgoKIkNhbiBJIGNhbGwgeW91IHNvbWV0aW1lPyIgPSBJJ2QgZXZlbnR1YWxseSBsaWtlIHRvIGhhdmUgc2V4IHdpdGggeW91LgoKIk1heSBJIGhhdmUgdGhpcyBkYW5jZT8iID0gSSdkIGV2ZW50dWFsbHkgbGlrZSB0byBoYXZlIHNleCB3aXRoIHlvdS4KCiJOaWNlIGRyZXNzISIgPSBOaWNlIGNsZWF2YWdlIQoKIllvdSBsb29rIHRlbnNlLCBsZXQgbWUgZ2l2ZSB5b3UgYSBtYXNzYWdlLiIgPSBJIHdhbnQgdG8gZm9uZGxlIHlvdS4KCiJXaGF0J3Mgd3Jvbmc/IiA9IEkgZG9uJ3Qgc2VlIHdoeSB5b3UgYXJlIG1ha2luZyBzdWNoIGEgYmlnIGRlYWwgb3V0IG9mIHRoaXMuCgoiV2hhdCdzIHdyb25nPyIgPSBXaGF0IG1lYW5pbmdsZXNzIHNlbGYtaW5mbGljdGVkIHBzeWNob2xvZ2ljYWwgdHJhdW1hIGFyZSAKICAgICAgICAgICAgICAgICAgICAgICB5b3UgZ29pbmcgdGhyb3VnaCBub3c/CgoiV2hhdCdzIHdyb25nPyIgPSBJIGd1ZXNzIHNleCB0b25pZ2h0IGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uCgoiSSdtIGJvcmVkLiIgPSBEbyB5b3Ugd2FudCB0byBoYXZlIHNleD8KCiJJIGxvdmUgeW91LiIgPSBMZXQncyBoYXZlIHNleCBub3cuCgoiSSBsb3ZlIHlvdSwgdG9vLiIgPSBPa2F5LCBJIHNhaWQgaXQgLi4uIHdlJ2QgYmV0dGVyIGhhdmUgc2V4IG5vdyEKCiJZZXMsIEkgbGlrZSB0aGUgd2F5IHlvdSBjdXQgeW91ciBoYWlyLiIgPSBJIGxpa2VkIGl0IGJldHRlciBiZWZvcmUuCgoiWWVzLCBJIGxpa2UgdGhlIHdheSB5b3UgY3V0IHlvdXIgaGFpciIgPSAkNTAgYW5kIGl0IGRvZXNuJ3QgbG9vayBhbnkKCQkJCQkJZGlmZmVyZW50IQoKIkxldCdzIHRhbGsuIiA9IEkgYW0gdHJ5aW5nIHRvIGltcHJlc3MgeW91IGJ5IHNob3dpbmcgdGhhdCBJIGFtIGEgZGVlcAoJCXBlcnNvbiBhbmQgbWF5YmUgdGhlbiB5b3UnZCBsaWtlIHRvIGhhdmUgc2V4IHdpdGggbWUuCgoiV2lsbCB5b3UgbWFycnkgbWU/IiA9IEkgd2FudCB0byBtYWtlIGl0ICBpbGxlZ2FsIGZvciB5b3UgdG8gaGF2ZSBzZXggd2l0aAoJCQlvdGhlciBndXlzCgood2hpbGUgc2hvcHBpbmcpICJJIGxpa2UgdGhhdCBvbmUgYmV0dGVyLiIgPSBQaWNrIGFueSBmcmVha2luJyBkcmVzcyBhbmQKCQkJCQkJbGV0J3MgZ28gaG9tZSEKCiJJIGRvbid0IHRoaW5rIHRoYXQgYmxvdXNlIGFuZCB0aGF0IHNraXJ0IGdvIHdlbGwgdG9nZXRoZXIuIiA9IEkgYW0gZ2F5CgoKICAgICAgICAgICAgICAgICAgICAgICBZYW50cm86LSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdWVsbCM0IChZYW50cm8sIDI0LiBTZXAgMTk5NiwgMTc6NDM6NTkpOgoKCldoeSBkbyBtZW4gbGlrZSB0aWdodCBwdXNzeXMgYW5kIGJpZyB0aXRzPwoKCkJlY2F1c2UgbWVuIGhhdmUgbGl0dGxlIGRpY2tzIGFuZCBiaWcgbW91dGhzISEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPcmdhc211cy1BcnRlbiAoQXp6dXJvLCAyOC4gU2VwIDE5OTYsIDAxOjIwOjMwKToKRXMgZ2lidCA0IE9yZ2FzbXVzLUFydGVuOgoKMS4pIHBvc2l0aXZlciBPcmdhc211czoKCiAgICAocGhvbmV0aXNjaGVzIEJlaXNwaWVsOiBPaCBqYS4ub2ggamEuLi4gT0ggSkFBQUFBQUEpCgoyLikgbmVnYXRpdmVyIE9yZ2FzbXVzOgoKICAgIChwaG9uZXRpc2NoZXMgQmVpc3BpZWw6IG9oIG5laW4uLi4gb2ggbmVpbiAuLi4gT2ggTmVpbi4gT0ggTkVFRUlJSU5OTk4KCjMuKSB0aGVvbG9naXNjaGVyIE9yZ2FzbXVzCiAgICAocC5Cc3AuOiBvaCBnb3R0IC4uLiBvaCBHb3R0Li4uIE9IIEdPT1RUVCEhISkKCjQuKSB2b3JnZXRhZXVzY2h0ZXIgT3JnYXNtdXMKICAgICAocC5Cc3AuOiBvaCBpc25vZ29vZC4uIE9IIElTTk9HT09PT09PT0REISkKClJhY2hlIG11c3Mgc2VpbgpBenp1cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaW9uZS4uLiAoRW5neXd1Y2ssIDI5LiBTZXAgMTk5NiwgMTk6NTU6MTcpOgpFaW4gQW1lcmlrYW5lciB3aXJkIHZvbiBkZXIgQ0lBIHp1bSBydXNzaXNjaGVuIFNwaW9uIGF1c2dlYmlsZGV0LiBFcgprZW5udCBzZWluZW4gcnVzc2lzY2hlbiBMZWJlbnNsYXVmLCBlciBzcHJpY2h0IHBlcmZla3QgUnVzc2lzY2ggbWl0Ck1vc2thdWVyIEFremVudCwgZXIgc3R1ZGllcnQgTWFyeGlzbXVzLUxlbmluaXNtdXMsIGtlbm50IGFsbGUgcnVzc2lzY2hlbgpWb2xrc2xpZWRlciwga2FubiBzYXVmZW4gd2llIGVpbiBSdXNzZS4KCkVpbmVzIE5hY2h0cyB3aXJkIGVyIG1pdCBkZW0gRmFsbHNjaGlybSB8YmVyIFJ1c3NsYW5kIGFiZ2V3b3JmZW4uIEVyCnZlcm5pY2h0ZXQgYWxsZXMsIHdhcyBpaG4gdmVycmF0ZW4ga25udGUgdW5kIHNjaGxndCBzaWNoIHp1IGVpbmVyCnJ1c3Npc2NoZW4gS2FzY2hlbWUgZHVyY2guIEVyIHRyaXR0IGVpbiwgYmVzdGVsbHQgc2ljaCB3YXMgenUgZXNzZW4uCkRlciBXaXJ0IGJyaW5ndCBpaG0gZGFzIGdld3xuc2NodGUgdW5kIGZsfHN0ZXJ0IGlobSB6dTogSWNoIHdlaXNzCm5pY2h0IHdlciBkdSBiaXN0LCBhYmVyIGR1IGJpc3QgZWluIGFtZXJpa2FuaXNjaGVyIFNwaW9uLiBEYSBiZXN0ZWxsdApzaWNoIGRlciBBZ2VudCBlaW5lIEZsYXNjaGUgV29ka2EgdW5kIGxlZXJ0IHNpZSBpbiBlaW5lbSBadWcuIERlciBXaXJ0CmZsfHN0ZXJ0OiAiRHUgdHJpbmtzdCB3aWUgZWluIFJ1c3NlLCBhYmVyIGR1IGJpc3QgZWluIGFtZXJpa2FuaXNjaGVyClNwaW9uLiIgRGEgbmltbXQgZXIgZWluZSBCYWxhbGFpa2EgdW5kIHNpbmd0IHNjaG1hY2h0ZW5kIHZvbSBEb24gdW5kCnZvbiBkZXIgV29sZ2EuIERhIGtvbW10IGRlciBXaXJ0IHVuZCBmbHxzdGVydDogIkR1IHNpbmdzdCB3aWUgZWluClJ1c3NlLCBhYmVyIGR1IGJpc3QgZWluIGFtZXJpa2FuaXNjaGVyIFNwaW9uLiIuIERhIGxlZ3QgZXIgZWluZSB3aWxkZW4KS2FzYXRzY2hvdyBoaW4sIGRhc3MgYWxsZSBhcHBsYXVkaWVyZW4uIERhIGtvbW10IGRlciBXaXJ0IHVuZCBmbHxzdGVydAppaG0genU6ICJEdSB0YW56c3Qgd2llIGVpbiBSdXNzZSwgYWJlciBkdSBiaXN0IGVpbiBhbWVyaWthbmlzY2hlcgpTcGlvbi4iIERhIHdpcmQgZXMgZGVtIEFnZW50IHp1IGJ1bnQgdW5kIGZyYWd0IGRlbiBXaXJ0OiAiVW5kIHdpZXNvCm1laW5zdCBkdSBkZW5uLCBpY2ggc2VpIGVpbiBhbWVyaWthbmlzY2hlciBTcGlvbj8iIERlciBXaXJ0OiAiV2lyCmhhYmVuIGtlaW5lIE5lZ2VyIGFscyBSdXNzZW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF6enVybyAoU3RhaGxkb3JuLCAzMC4gU2VwIDE5OTYsIDEzOjMwOjU5KToKfiMhIHJuPUlzbm9nb29kIHJ0PTg0Mzg2MjQwMQp+IyEgdGlkPTg0Mzg2MjQwMQoKQXp6dXJvIGhhdCBrZWluZSAyIEZyZXVuZGUuCgpTVEFITC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1bmRlc3dlaHIgKEVuZ3l3dWNrLCAzMC4gU2VwIDE5OTYsIDE0OjAxOjUxKToKIk1hY2h0IGRpZSBCdW5kZXN3ZWhyIGR1bW0sIGdsZWljaGd1ZWx0aWcsIHVuc2VsYnN0YWVuZGlnIHVuZCBhZ2dyZXNzaXY/IgoKIkhhZT8gV2Vpc3MgaWNoIG5pY2h0LiBNaXIgZG9jaCBlZ2FsLiBNdXNzIGljaCBlcnN0IGRlbiBTcGllc3MgZnJhZ2VuLiBBYmVyCndhcyBnZWh0IGRpY2ggZGFzIGVpZ2VudGxpY2ggYW4sIER1IEFyc2NoPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGxhZ3QgbWljaC4uLiAoRW5neXd1Y2ssIDMwLiBTZXAgMTk5NiwgMTQ6MTY6NTIpOgpXYXMgaXN0IGVpbmUgQmxvbmRpbmUgaW4gZGVyIFJpdHRlcnJ1ZXN0dW5nPwoKRWluIEJsZWNoYmxhc2luc3RydW1lbnQhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5lbiBub2NoLi4uIChFbmd5d3VjaywgMzAuIFNlcCAxOTk2LCAxNToxMDoxMik6CkVpbiBCcnVtbWlmYWhyZXIgZmFlaHJ0IHdpZSB1ZWJsaWNoIGVpbmUgTGFuZHN0cmFub2NoLi4uZSBlbnRsYW5nLCBkYSBzaWVodCBlcgphdWYgZWlubWFsIGVpbiByb3RlcyBNYWVubmNoZW4gZGVyIEFuaGFsdGVyIG1hY2h0LiBFciBobHQgYWxzbyBhbiB1bmQgZGFzCnJvdGUgTWFlbm5jaGVuIHNhZ3Q6ICJEdSwgaWNoIGhhYiByaWVzZW4gSHVuZ2VyIHVuZCBhdWRhc2VyZGVtIGJpbiBpY2gKc2Nod3VsICEiIERhcmF1ZiBkZXIgQnJ1bW1pZmFocmVyOiAiSGllciBoYXN0ZSBuZSBTdHVsbGUsIGFiZXIgZGFzIGFuZGVyZQprYW5uc3RlIGRpciBtYWwgc2Nob2VuIGF1cyBkZW0gS29wZiBzY2hsYWdlbiwgbmUgZHUgISIKCkVyIGZhZWhydCB3ZWl0ZXIgdW5kIG5hY2ggZWluZXIgV2VpbGUgc2llaHQgZWluIGdlbGJlcyBNYWVubmNoZW4gYW0KU3RyYWFtZW5yYW5kIHN0ZWhlbiB1bmQgd2lua2VuLiBFciBoYWVsdCB3aWVkZXIuIERhcyBnZWxiZSBNYWVubmNoZW46ICJIZXksCmljaCBoYWIgdG90YWwgZGVuIER1cnN0IHVuZCBhdSJIZXksZXJkZW0gYmluIGljaCBzY2h3dWwgISIgU2FndCBkZXIKQnJ1bW1pZmFocmVyOiAiTmEgZ3V0LCBtZWluZSBUaGVybW9za2FubmUga2FubnN0IGR1IGhhYmVuLCBhYmVyIGRhcyBhbmRlcmUKaXMgbmljaCBtZWluIERpbmcsIGJsb2FuZGVyZSBuaWNodCAhIiAiU293YXMiLCBkZW5rdCBlciBzaWNoLCAid2FzIGlzdCBkZW5uCmhldXRlIGxvcyA/IgpFciBmYWVocnQgYWxzbyB3aWVkZXIgd2VpdGVyIHVuZCBzaWVodCBuYWNoIGVpbmVyIFdlaWxlIGVpbiBncnVlbmVzCk1hZW5uY2hlbiB3aW5rZW4uICJTY2hvbiB3aWVkZXIiLCBkZW5rdCBlciwgZmFlaHJ0IHJhbiwga3VyYmVsdCBkYXMKRmVuc3RlciBydW50ZXIgdW5kIHNhZ3QsICJOYSwgZHUgc2Nod3VsZSBTQVUsIHdhcyB3aWxsc3QgZHUgZGVubiA/IiBEYXJhdWYKZGFzIGdydWVuZSBNYWVubmNoZW46ICJHdXRlbiBUYWcsIEZhaHJ6ZXVna29udHJvbGxlLCBpaHJlbiBBdXN3ZWlzIHVuZCBkaWUKUGFwaWVyZSBiaXR0ZS4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi5tYWwgd2llZGVyIGVpbmVuIGF1cyBtZWluZXIgTGllYmxpbmdzbWFpbGluZ2xpc3QgKE11cGZlbCwgIDEuIE9rdCAxOTk2LCAwMTozNDowMik6CkRpZSB6ZWhuIHdpY2h0aWdzdGVuIEFlbmRlcnVuZ2VuIHdlbm4gR290dCBlaW5lIEZyYXUgd2FlcmUKCjEwLiBKZXN1cyB3YWVyZSBhbnMgS3JldXogZ2VuYWVodCB3b3JkZW4uCiA5LiBNYW4gbXVlc3N0ZSBiZWltIEJldGVuIGdhbnogZ2VuYXUgYXVmcGFzc2VuLCB3YXMgbWFuIHNhZ3QsCiAgICBkYW1pdCBlcyBtb3JnZW4gbmljaHQgZGllIGdhbnplIE5hY2hiYXJzY2hhZnQgd2Vpc3MuCiA4LiBEYXMgQmx1dCBDaHJpc3RpIHdhZXJlIEVyc2F0emZsdWVzc2lna2VpdC4KIDcuIERhcyBsZXR6dGUgQWJlbmRtYWhsIHdhZXJlIGVpbmUgVHVwcGVyd2FyZS1QYXJ0eSBnZXdlc2VuLgogNi4gRGllIFplaG4gR2Vib3RlIHdhZXJlbiBpbiBlaW5lIFJ1ZXNjaGVuZGVja2UgZ2VzdGlja3Qgd29yZGVuLAogICAgYXVzc2VyZGVtIHdhZXJlbiBlcyBuaWNodCB6ZWhuIEdlYm90ZSwgc29uZGVybiBtaW5kZXN0ZW5zIDUyNi4KIDUuIERhcyBmdWVuZnRlIEdlYm90OiJEdSBzb2xsc3QgbmljaHQgc2NobmFyY2hlbiAhIi4KIDQuIERlciBNYW5uIHdhZXJlIHNvIGVyc2NoYWZmZW4sIGRhc3MgZXIgbGFlbmdlciBhbHMgZWluZSBNaW51dGUKICAgIFNleCBtYWNoZW4ga2Fubi4KIDMuIEF1cyBkZW0gbGFuZ3dlaWxpZ2VuICJHcnVlc3MgR290dCAhIiB3dWVyZGUgIkR1LCB1bmQgZ3J1ZXNzIGF1Y2gKICAgIGRpZSBHb2V0dGluIGdhYWFueiwgZ2FhYW56IGxpZWIgdm9uIG1pciB1bmQgcmljaHRlIElociBhdXMsIGRhc3MKICAgIElociBkaWUgbmV1ZSBGcmlzdXIgZ2FueiB0b2xsIHN0ZWh0LiIKIDIuIEVzIGdhZWJlIGtlaW5lIEtyaWVnZSwga2VpbmVuIEh1bmdlciBhYmVyIGF1Y2gga2VpbmUgU3BvcnRzY2hhdS4KIDEuIERlciAiS29lbG5lciBEb20iIGhpZXNzZSAiS29lbG5lciBEb21pbmEiLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi51bmQgbm9jaCBlaW5lbiAoTXVwZmVsLCAgMS4gT2t0IDE5OTYsIDAxOjUyOjIyKToKCkRlciBzdG9semUgVmF0ZXIgZnVlaHJ0IGRlciBGYW1pbGllIGRlbiBuZXVlbiBIYXVzaGFsdHNyb2JvdGVyIHZvcjoKCiJUaXNjaGRlY2tlbiwgbG9zIGxvcyEiCgpEZXIgUm9ib3RlciBzdGVodCBkYSAtIG5peCBwYXNzaWVydC4uLgoKIk5hIGd1dCwgZGFubiBtYWNoIGRlbiBBYndhc2NoISIKCldpZWRlciBuaXguLi4KCiJNaXN0a3J1ZWNrZS4uLiBhYmVyIHdlbmlnc3RlbnMgS2FmZmVlIGF1ZnNldHplbiB3aXJzdCBkdSBkb2NoIHdvaGwKa29lbm5lbiAtICBtYWNoIHNjaG9uISIKCkRlciBSb2JvdGVyIHJ1ZWhydCBzaWNoIG5pY2h0Li4uCgoiRHUgU2NoZWlzcy1Sb2JvdGVyLi4uIEZpY2sgRGljaCBpbnMgS25pZSEiCgpSdW1wZWwgcnVtcGVsIHJ1bXBlbC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRvbXB0ZXVyIGltIFppcmt1cyAoRGllZGVyLCAgNC4gT2t0IDE5OTYsIDE1OjQzOjA2KToKRWluIERvbXB0ZXVyIGltIFppcmt1cy4gSFN0ZWh0IHZvciBlaW5lbSBncm9zc2VuIEtyb2tvZGlsIHVuZCBoYXV0IGlobSBtaXQKZWluZW0gU3RvY2sga3JhZWZ0aWcgYXVmIGRlbiBLb3BmOiBLcm9rb2RpbCBtYWNodHMgTWF1bCBhdWYuIERvbXB0ZXVyIGhhdXQKd2llZGVyIGRyYXVmIC0gTWF1bCB6dS4KRGVyIERvbXB0ZXVyIG1hY2h0IGRpZSBIb3NlIGF1ZiwgcGFja3Qgc2VpbmVuIEZpZmZpIGF1cyB1bmQgaGF1dCBpaG0gd2llZGVyCmF1ZiBkZW4gS29wZiAtIE1hdWwgYXVmLCBEb21wdGV1ciBzdGVja3Qgc2VpbiBiZXN0ZXMgU3R1ZWNrIHJlaW4sIHdpZWRlcgpTY2hsYWcgYXVmIGRlbiBLb3BmLCBNYXVsIHp1LgpEaWUgTWVuZ2UgaGFlbHQgZGVuIEF0ZW0gYW4uLi4KRGVyIERvbXB0ZXVyIGRlbmdlbHQgd2llZGVyIGRlbSBWaWVoIGF1ZiBkZW4gU2NoYWVkZWwgLSBNYXVsIGF1Ziwgbml4CnBhc3NpZXJ0LCBkZXIgRG9tcHRldXIgcGFja3Qgd2llZGVyIGVpbi4gTnVuIG1laW50IGVyIHp1bSBQdWJsaWt1bTogSWNoIHphaGxlCmRlbWplbmlnZW4gMTAwMCBETSwgZGVyIGRhcyBuYWNobWFjaHQuLi4gVG90ZW5zdGlsbGUsIGtlaW5lciBtZWxkZXQgc2ljaC4KTmFjaCBlaW5pZ2VyIFplaXQgbWVsZGV0IHNpY2ggZWluIGFsdGVzIE11ZXR0ZXJjaGVuIGF1cyBkZXIgbGV0enRlbiBSZWloZSB1bmQKbWVpbnQga3JhZWNoemVuZDogSWNoIG1hY2hzLCBhYmVyIG51ciB3ZW5uIFNpZSBtaXIgbmljaCB6dSBmZXN0IGF1ZiBkZW4gS29wZgpzY2hsYWdlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBVSAoU251Z2dsZSwgIDYuIE9rdCAxOTk2LCAyMTo0MDozNyk6CkZyZWl0YWcgbmFjaG1pdHRhZyBpbiBkZXIgQmVyYXR1bmcgZGVzIFJlY2hlbnplbnRydW1zIHp1IEJvbm46CgpEQVU6IEd1dGVuIFRhZy4KQmVyYXRlcjogR3V0ZW4gVGFnLgpEQVU6IEljaCBoYWV0dGUgZ2VybiBkaWUgU29mdHdhcmUuCkJlcmF0ZXI6IFdlbGNoZT8KREFVOiBXZWlzcyBpY2ggbmljaHQuIERpZSBGcmF1IGltIERpc3BhdGNoIGhhdCBtaWNoIGhlcmdlc2NoaWNrdC4KQjogV2FzIGhhc3QgRHUgZGVyIGRlbm4gZ2VzYWd0PwpEQVU6IE5hamEsIGljaCB3aWxsIGlucyBJbnRlcm5ldC4gU3VyZmVuLgpCOiBWb24genUgSGF1c2U/CkRBVTogamEuCkI6IEFsc28gd2lsbHN0IER1IGRpZSBTb2Z0d2FyZSBmdWVyIEludGVybmV0IHZvbiB6dSBIYXVzZT8KREFVOiBqYS4KQjogQWhhLiBXYXMgZnVlcm4gQmV0cmllYnNzeXN0ZW0gaGFzdCBEdSBkZW5uPwpEQVU6IFdpbndvcmQgNi4wCkI6IE5lLCBkYXMgaXMgZGllIFRleHR2ZXJhcmJlaXR1bmcuIFdhcyBmdWVybiBCZXRyaWVic3N5c3RlbT8KREFVOiBXYXMgaXN0IGVpbiBCZXRyaWVic3N5c3RlbT8KQjogTmEsIGhhc3QgRHUgekIgV2luZG93cyAzLjExIG9kZXIgV2luIDk1PwpEQVU6IGphCkI6IFdhcyBkZW5uIHZvbiBiZWlkZW4/CkRBVTogV2Vpc3MgaWNoIG5pY2h0LgpCOiAoZGV1dGV0IGF1ZiAyIFJlY2huZXIpIFdpZSBzaWVodHMgZGVubiBhdXM/IFNvIG9kZXIgc28/CkRBVTogaG1tbS4gSWNoIGdsYXViZSBXaW5kb3dzIDk1LgpCOiBTaWNoZXI/CkRBVTogaG1tLiBJY2ggZ2xhdWJlIHNjaG9uLgpCOiAoZ2lidCBpaG0gbmUgQmVzY2hyZWlidW5nIGluIGRpZSBIYW5kKSBkYSBzdGVodCBzY2hyaXR0d2Vpc2UgZHJpbiwgd2FzIER1Cm1hY2hlbiBtdXNzdC4gRGllIFNvZnR3YXJlIGthbm5zdCBEdSBEaXIgc2VsYmVyIGtvcGllcmVuLiBJbiBSYXVtIDQgc3RlaGVuIDIKUENzLiBNaXQgZGVtIE1lbnVlcHVua3QgTSB3aWUgTW9kZW1zb2Z0d2FyZSBrb3BpZXJlbiBnZWh0IGRhcy4KREFVOiBXbyBpc3QgZGVubiBkZXIgUmF1bSA0PwpCOiBJbSBFcmRnZXNjaG9zcywgc3RlaHQgbmUgNCBkcmFuLgpEQVU6IERhIHdvIGljaCBlYmVuIGRlbiBBbnRyYWcgYXVzZ2VmdWVsbHQgaGFiZT8KQjogamEuCkRBVTogQW4gZGVuIFBDcz8KQjogamEuCkRBVTogV28gc2luZCBkZW5uIGRhIGRpZSBQQ3M/CkI6IERhIHN0ZWhlbiBuZSBNZW5nZSBUZXJtaW5hbHMgcnVtIHVuZCAyIFBDcyBsaW5rcyBhbiBkZXIgV2FuZC4gRGEgbXVzc3RlIGhpbgpEQVU6IERhbmtlLgooZnVlbmYgTWludXRlbiBzcGFldGVyKQpEQVU6IChkZXIgc2VsYmUpIGljaCBoYWJlIHp1IEhhdXNlIGFuZ2VydWZlbi4gSWNoIGhhYmUgZG9jaCBXaW4gMy4xMQpCOiAoZ2lidCBpaG0gbmUgYW5kZXJlIEJlc2NocmVpYnVuZykgZGFubiBicmF1Y2hzdGUgZGFzIGhpZXIuIEdpYiBtaXIgYml0dGUKZGllIGFuZGVyZSBCZXNjaHJlaWJ1bmcgd2llZGVyLiBXaXIgaGFiZW4gbmljaHQgc28gdmllbGUgZGF2b24gdW5kIGRpZSBLb3BpZW4Ka29zdGVuIGltbWVyaGluIGF1Y2guCkRBVTogRGFzIGhhdCBtZWluIEZyZXVuZC4KQjogSGF0IGRlciBkZW5uIFdpbjk1PwpEQVU6IG5lLgpCOiBEYW5uIGJyaW5nIGVzIGJpdHRlIG5vY2ggd2llZGVyLgpEQVU6IGd1dC4gV2FzIGJyYXVjaCBpY2ggZGVubiBqZXR6dCBmdWVyIFNvZnR3YXJlPwpCOiBEdSBtdXNzdCB0cm90emRlbSBpbiBSYXVtIDQgbWl0IE1lbnVlcHVua3QgbSBkaWUgU2FjaGVuIGtvcGllcmVuLCBudXIgZGFzcwpEdSBiZWkgZGVyIEFiZnJhZ2UgbmljaHQgd2luOTUgc29uZGVybiB3aW4zLjExIGFuZ2lic3QuCkRBVTogQW0gUEM/CkI6IGphLgpEQVU6IEltIFJhdW0gND8KQjogamEuCkRBVTogQnJhdWNoZSBpY2ggZGEgc3BlemllbGxlIERpc2tldHRlbj8KQjogTmVpbiwgZ2FueiBub3JtYWxlIDMuNSBab2xsIERpc2tldHRlbi4KREFVOiAodWViZXJsZWd0IGt1cnopIGRhbmtlLgpCOiAqQVJHTCoKCldlciBMaWZlIG9mIEJyaWFuIGd1Y2t0LCBzdGVsbGUgc2ljaCBkaWUgU3plbmUgdm9yLCBpbiBkaWUgV2FjaGVuIHNpY2gKYmVtdWVoZW4sCmJlaW0gTmFtZW4gY2h3YW56dXMgbG9uZ3VzIG5pY2h0IGxhdXQgbG9zenVsYWNoZW4uIFNvIHVuZ2VmYWVociBoYWJlIGljaCAKZGFuZWJlbiBnZXNlc3NlbiB1bmQgbWljaCBtdWVoc2FtIGJlaGVycnNjaHQuIAoKU251Z2dsZSAtIGlzdCBmcm9oLCBkYXNzIGRlciBLZXJsIG5pY2h0IGlobiBhbmdlc3Byb2NoZW4gaGF0LiBTb25zdCBoYWV0dHMKbiBVbmdsdWVjayBnZWdlYmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogREFVIChMb2NvLCAgNi4gT2t0IDE5OTYsIDIxOjQ4OjAyKToKfiMhIHJuPVNudWdnbGUgcnQ9ODQ0NjMwODM3Cn4jISB0aWQ9ODQ0NjMwODM3CkljaCBiZWthbSB2b3IgZWluIHBhYXIgV29jaGVuIGZvbGdlbmRlIEZyYWdlIGdlc3RlbGx0OgoKIldhcyBtdXNzIGljaCBkZW5uIGpldHp0IG1hY2hlbiwgd2VubiBpY2ggSW50ZXJuZXQgbWFjaGVuIHdpbGw/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU0dJIGFkbWluIEZBUSAoQ2F0d2VhemxlLCAgNy4gT2t0IDE5OTYsIDExOjA5OjQxKToKSGkhCkdyYWRlIGF1ZiBodHRwOi8vd3d3LWV1cm9wZS5zZ2kuY29tL0FyY2hpdmUvRkFRcy9hZG1pbi8gLCBkZXIgClNHSSBBZG1pbiBGQVEgZ2VmdW5kZW46CgpRdWVzdGlvbjogT24gd2hpY2ggSVJJWCBDRCBpcyB0aGUgcHJvZ3JhbSAnZm9vJyBvbj8KCk1vdW50IHRoZSBDRCBhbmQgdHJ5ICdncmVwIGZvbyAvQ0RST00vZGlzdC8qLmlkYicuIElmIHlvdSBkb24ndCBnZXQgYW55Cm91dHB1dCwgJ2ZvbycgaXNuJ3Qgb24gdGhhdCBDRC4gSWYgeW91IGRvLCBpdCBpcywgYW5kIG9uZSBvZiB0aGUgZmllbGRzCmlzIHRoZSBzdWJzeXN0ZW0gaW4gd2hpY2ggJ2ZvbycgbGl2ZXMuIEVudHJpZXMgaW4gKi5pZGIgZmlsZXMgZG9uJ3QgaGF2ZQphIGxlYWRpbmcgc2xhc2ggc28geW91IG11c3QgbGVhdmUgaXQgb3V0IGlmIHlvdSBncmVwIGZvciBhIGZ1bGwgcGF0aCwKZS5nLiAnZ3JlcCB1c3IvYmluL2xwIC9DRFJPTS9kaXN0LyouaWRiJywgbm90IAonZ3JlcCAvdXNyL2Jpbi9scCAvQ0RST00vZGlzdC8qLmlkYicuCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERBVSAoQXp6dXJvLCAgNy4gT2t0IDE5OTYsIDEyOjEwOjM0KToKfiMhIHJuPVFpdGVzcyBydD04NDQ2NzUxNTEKfiMhIHRpZD04NDQ2MzA4MzcKSWNoIGhhdHRlIGRlciBTY2h3ZXN0ZXIgbWVpbmVyIGZyZXVuZGluIGRpZSBNb2RlbXNvZnR3YXJlIGluc3RhbGxpZXJ0LiBUYWdzCmRycWF1ZiB3YXIgZm9sZ2VuZGVyIEFucnVmIGF1ZiBtZWluZW0gQW5ydWZiZWFudHdvcnRlcjoKCiJLYW5uc3QgRHUgbWljaCBtYWwgc2NobmVsbCB6dXJ1ZWNrcnVmZW4uIEljaCBiaW4gZWluZmFjaCBhdXMgZGVtIFByb2dyYW1tCnJhdXMgdW5kIGhhYmUgbnVuIGRhcyBpbnRlcm5ldCB6ZXJzdG9lcnQhISEiCgpXYWVyIG5lIFJlaWZlIExlaXN0dW5nIGdld2VzZW4sIHdlbm4gZXMgd2lya2xpY2ggc28gZ2V3ZXNlbiB3YWVyISAKCkF6enVybywgSGVyciBkZXMgTGljaHRzIHVuZCBhbGxlciBEQVVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgd2FyIHZvbiBFbmd5d3VjayB1bmQgdHJvdHpkZW0gZ3V0Li4uIChHcmltbWJvcm4sICA3LiBPa3QgMTk5NiwgMTM6NTU6NTkpOgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gSnVyYXNzaWMgUGFyYyB1bmQgTWljcm9zb2Z0PwoKRGFzIGVpbmUgaXN0LCBkYXNzIGVpbiByZWljaGVyIElycmVyIHZlcnN1Y2h0LCBHZWxkIHp1IHZlcmRpZW5lbiBtaXQgRGluZ2VuLApkaWUgZWlnZW50bGljaCBzZWl0IHVuZGVua2xpY2hlbiBaZWl0ZW4gYXVzZ2VzdG9yYmVuIHNpbmQuCkRhcyBhbmRlcmUgaXN0IGVpbiBGaWxtIHZvbiBTdGV2ZW4gU3BpZWxiZXJnLgoKCkltbWVybm9jaCBzaWNoIGt1Z2VsbmQsCiAgICAgICAgICAgICAgICAgICAgICAgIEdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSHVtb3IgaXN0Li4uIChFbmd5d3VjaywgIDcuIE9rdCAxOTk2LCAxNDowMToyMSk6CkZvbGdlbmRlciBUaHJlYWQgd2FyIGluIGQudC5qIHp1IGxlc2VuOgoKenVtIFRoZW1hICJSZTogU3VjaGUgQXJiZWl0c2xvc2VuIFdpdHplIiA6Cgo+ID5JY2gga2VubmUgbnVyIGRlbiBrdWVyemVzdGVuIE9zc2ktV2l0ejoKPiA+Cj4gPlRyZWZmZW4gc2ljaCB6d2VpIE9zc2lzIGF1ZiBBcmJlaXQuLi4KPgo+IEljaCBiaW4gc2VsYmVyIE9zc2kgdW5kIGthbm4gbmljaHQgdW5iZWRpbmd0IHVlYmVyIGRpZXNlbiBXaXR6IGxhY2hlbi4KPiBBYmVyIGV0d2FzIHZlcmFlbmRlcnQgZmluZCBpY2ggSWhuIHNlaHIga29taXNjaDoKPgo+IFRyZWZmZW4gc2ljaCB6d2VpIFBvbGVuIGF1ZiBBcmJlaXQuLi4KCkljaCBzZWxiZXIgcG9sZS4gS29ubnRlbiBuaWNodCBsYWNoZW4gfGJlciBXaXohCkFuZGVyZXMgVmVyc2lvbiBpY2ggZmluZGVuIGJlc3NlcjoKClRyZWZmZW4gc2ljaCB6d2VpIFJ1c2tpIGF1ZiBhcmJlaXQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIdW1vciBpc3QuLi4gKEhhcmRpbCwgIDcuIE9rdCAxOTk2LCAxNDowMjo1Nik6Cn4jISBybj1Fbmd5d3VjayBydD04NDQ2ODk2ODEKfiMhIHRpZD04NDQ2ODk2ODEKCkljaCBuaXggdmVyc3RlaGVuIFdpdHMuIEljaCBhbmRlcmVzIEJhdXN0ZWxsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9iIGRlbiBqZW1hbmQgdmVyc3RlaHQ/IChFbmd5d3VjaywgIDcuIE9rdCAxOTk2LCAxNDoxNjozMyk6CkVlbiB2b2V0Z2FuZ2VyIGxhYXQgemlqbiBob25kIHVpdCBsYW5ncyBkZSByaWpuIGFscyBoaWogb3BlZW5zIGVlbiBtYW4gemlldApkaWUgbWV0IHppam4gaGFuZCB3YXRlciB1aXQgZGUgcmlqbiBzY2hlcHQgZW4gaGV0IG9wZHJpbmt0LiBSb2VwdCBkZSBtYW4gbWV0CmRlIGhvbmQ6ICJOaWV0IGRyaW5rZW4sIGRhdCB3YXRlciBpcyBnaWZ0aWcgISEhIi4gWmVndCBkZSBhbmRlcmU6ICJXaWUgYml0dGUKPz8/Ii4gTWFuIG1ldCBob25kOiAiU2llIGtvZW5uZW4gYmVzc2VyIG1pdCB6d2VpIEhhZW5kZSB0cmlua2VuICEhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllc2UgbW9kZXJuZW4gRXJmaW5kdW5nZW4uLi4gKEVuZ3l3dWNrLCAgNy4gT2t0IDE5OTYsIDE0OjI2OjQxKToKIldhcyB3dWVuc2NodCBkdSBkaXIgenVtIEdlYnVydHN0YWc/IiBmcmFndCBkZXIgVmF0ZXIgZGVuIFNvaG4uCiJFaW5lbiBUYW1wb24uIgoiV2Vpc3QgZHUgZGVubiB1ZWJlcmhhdXB0LCB3YXMgZGFzIGlzdD8iCiJOZWluLCBhYmVyIGluIGRlbiBaZWl0dW5nc2FuemVpZ2VuIGhhYmUgaWNoIGdlbGVzZW4sIGRhcyBtYW4gZGFtaXQgc2Nod2ltbWVuLApyZWl0ZW4gdW5kIFRlbm5pcyBzcGllbGVuIGthbm4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmV1bGljaCBiZWltIHN1cHBvcnQgKFRvZXRlciwgIDcuIE9rdCAxOTk2LCAxNDo1MToxOSk6ClRvOiBzdXBwb3J0ClN1YmplY3Q6IGhpbGZlCgpoYWxsbwprb21tZSBuaWNodCBpbSBjb21wdXRlciByZWluCgo8eHh4eD4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEQVUgKEdyaW1tYm9ybiwgIDcuIE9rdCAxOTk2LCAxNzoyODo0MSk6Cn4jISBybj1TbnVnZ2xlIHJ0PTg0NDYzMDgzNwp+IyEgdGlkPTg0NDYzMDgzNwoKSWNoIHNvbGwgaGllciBpbSBOYW1lbiBkZXIgQmVyYXR1bmcgZGVzIEtvZWxuZXIgUmVjaGVuemVudHJ1bXMgdGllZmVzCk1pdGdlZnVlaGxhIHVzZHJ1ZWNrZW4uCktvbGxlZ2VuLCB3aXIgd2lzc2VuIHdhcyBpaHIgZHVyY2htYWNodCEKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgd2FyIHZvbiBFbmd5d3VjayB1bmQgdHJvdHpkZW0gZ3V0Li4uIChBbmF0b2wsICA3LiBPa3QgMTk5NiwgMTk6MzE6MjYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0NDY4OTM1OQp+IyEgdGlkPTg0NDY4OTM1OQoKRGFiZWkgaXN0IGRhcyBXb3J0ICJ3aW5kb3dzIiBqYSBpbmRpYW5pc2NoZW4gVXJzcHJ1bmdzLi4uCgogICAgICBgYFdlaXNzZXIgTWFubiBzaXR6ZW4gdm9yIFNhbmR1aHInJwoKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJlc3NlciBpcyBkYXMgKEJsb29keWhhcnJ5LCAgOC4gT2t0IDE5OTYsIDAwOjQ0OjEyKToKCkJlc3NlciBuZSBlcnJlZ3RlIEJla2FubnRlCmFscyBlaW4gdW5iZWthbm50ZXIgRXJyZWdlci4KCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgc2Nod2VpbmlzY2hlcy4uLiAoRW5neXd1Y2ssICA4LiBPa3QgMTk5NiwgMjE6MTQ6NTEpOgoKWndlaSBNYWVubmVyIHVudGVyaGFsdGVuIHNpY2guCiJOZXVsaWNoIGlzdCBtaXIgd2FzIHNjaHJlY2tsaWNoZXMgcGFzc2llcnQuIgoiV2FzIGRlbm4/IgoiTWlyIGlzdCBiZWltIEdlc2NobGVjaHRzdmVya2VociBlaW4gS29uZG9tIGdlcGxhdHp0LiIKIkltIEVybnN0PyIKIk5laW4sIGltIEhhcmFsZC4iCgpOYWphLi4uIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZXN0IG9mIEJlcmF0dW5nIChTbnVnZ2xlLCAgOC4gT2t0IDE5OTYsIDIxOjE3OjIwKToKCk1hbCB3aWVkZXIgd2FzIG5ldWVzOgoKU3R1ZGVudGluOiBJY2ggaGFiZSBnZXN0ZXJuIG1pdCBqZW1hbmQgdGVsZWZvbmllcnQuLi4gKGVyd2FydHVuZ3N2b2xsZXIKICAgICAgICAgICBCbGljaykKQmVyYXRlcjogSmE/ClN0dWRlbnRpbjogRGVyIGhhdCBnZXNhZ3QgZXIgd3VlcmRlIG1pciBkaWUgV1dXLVNhY2hlbiBpbnN0YWxsaWVyZW4uCkJlcmF0ZXI6IEFoYS4KU3R1ZGVudGluOiBJY2ggaGFiZSBzY2hvbiBtZWluZW4gZ2FuemVuIENvbXB1dGVyICh3YXIgZWluIE5vdGVib29rKSBuYWNoCiAgICAgICAgICAgZGVtIFdXVy1Qcm9ncmFtbSBkdXJjaHN1Y2h0LCBhYmVyIG5pY2h0cyBnZWZ1bmRlbi4KQmVyYXRlcjogU29zby4KU3R1ZGVudGluOiAoUmVpY2h0IGRhcyBOb3RlYm9vayB6dW0gQmVyYXRlcikgSGllciEKQmVyYXRlcjogRHUga2FubnN0IGRhcyBXV1ctUHJvZ3JhbW0gbmljaHQgYXVmIGRlaW5lbSBSZWNobmVyIGZpbmRlbiwgd2VpbAogICAgICAgICBkdSBlcyBlcnN0IGluc3RhbGxpZXJlbiBtdXNzdC4gRGFzIGluc3RhbGxpZXJlbiBpc3QgZ2FueiBlaW5mYWNoLgogICAgICAgICBVbnRlbiBpbSBicmFicmEgIFBDIGJyYWJyYSBrYW5uc3QgZHUgZGlyIHp3ZWkgRGlza2V0dGVuIGtvcGllcmVuLgpTdHVkZW50aW46IFp3ZWk/IGRhIHBhc3N0IGFiZXIgZG9jaCBudXIgZWluZSByZWluLgpCZXJhdGVyOiBLb3BmIHNjaHVldHRlbCwgaHVlc3RlbCwgZGFubiBhYmVyIGluIHJ1aGlnZW0gVG9uLiBEaWUgbXVzc3QKICAgICAgICAgbmF0dWVybGljaCBuYWNoZWluYW5kZXIgZWlubGVnZW4uCgpPaCB3ZWguIDstKSAKICAgICAgICAKCgoKR3J1c3MKU251Z2dsZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVjaCBlaW5lbi4gKEdyaW1tYm9ybiwgIDguIE9rdCAxOTk2LCAyMTozMjoxMCk6CgpEQVUga29tbXQgaW4gZGllIEJlcmF0dW5nIHVuZCBzZXR6dCBzaWNoIGVyc3RtYWwgYXVmIGRlbiBTY2hvc3MgZGVzIEJlcmF0ZXJzCihlcyBpc3QgZXJzdGF1bmxpY2gsIHdpZSBlaW5lbSBkaWUgTGV1dGUgYXVmIGRpZSBQZWxsZSBydWVja2VuIHdlbm4gc2llIHdhcwp2b24gZWluZW0gd29sbGVuKS4KREFVIChtaXQgcHJhZXppc2VyIEZlaGxlcmRpYWdub3NlKTogRGFzIHR1dHMgbmljaHQuCkJlcmF0ZXIgKGFsdGdlZGllbnQpOiBXYXMgdHV0cyBkZW5uIG5pY2h0PwpEQVU6IERpZSBTb2Z0d2FyZS4KQi46IFdlbGNoZSBTb2Z0d2FyZT8KREFVOiBEaWUgaWhyIG1pciBnZWdlYmVuIGhhYnQgKGFua2xhZ2VuZGVyIEJsaWNrKS4gSWNoIGhhYiBkYXMgTGFwdG9wIAogICAgIG1pdGdlYnJhY2h0IChob2ZmbnVuZ3N2b2xsZXIgQmxpY2ssIHd1ZWhsZW4gaW4gZGVyIEFrdGVudGFzY2hlKS4KQi4gKHNpZWh0IGF1ZiBkZW4gV3VzdCB2b24gS2FiZWxuLCBNb2RlbSB1bmQgTGFwdG9wIGF1ZiBkZW0gVGlzY2gpOiBEYW5uIAogICBiYXUgbWFsIGF1Zi4KREFVIGJhdXQgc2VpbiBMYXB0b3AgYXVmLCBzY2hhbHRldCBlcyBhbiwgZGVyIGdlaHQgc29mb3J0IGluIFdpbjMuMTEgcmVpbi4KQi4gd2Vpc3MgQmVzY2hlaWQ6IEFoYSwgV2luMy4xMSwgZGlyZWt0IGluIGRlciBhdXRvZXhlYy5iYXQgZWluICJwb2ludC0KICAgYW5kLWtsaWNrIi11c2VyLgpEQVUgKHplaWd0IGFua2xhZ2VuZCBhdWYgZGVuIEJpbGRzY2hpcm0pOiBEYSwgZXMgdHV0cyBuaWNodC4KQi46IER1IGhhc3QgZGllIFNvZnR3YXJlIGluc3RhbGxpZXJ0PwpEQVU6IEphLgpCLjogVW5kIER1IGhhc3QgRGljaCBnZW5hdSBhbiB1bnNlcmUgQW5sZWl0dW5nIGdlaGFsdGVuPwpEQVUgKGJlbGVpZGlndCk6IE5hdHVlcmxpY2guCkIuIHNjaGF1dCBzaWNoIG1hbCBkZW4gUmVjaG5lciBhbi4gRGllIFNvZnR3YXJlIGlzdCBvcmRudW5nc2dlbWFlc3MgaW0KICAgVmVyemVpY2huaXMgYzpcdGNwaXAgdm9yaGFuZGVuLiBTaWUgaXN0IChvYndvaGwgc2VsYnN0ZXh0cmFoaWVyZW5kKQogICBuaWNodCBhdXNnZXBhY2t0LiBFaW5lIEluc3RhbGxhdGlvbiBpc3QgbmljaHQgbWFsIGltIEFuc2F0eiB6dSBlcmtlbm5lbi4KQi46IFVuZCB3YXMgc29sbCBkYSBmdW5rdGlvbmllcmVuPwpEQVU6IE5hLCBkaWUgU29mdHdhcmUuCkIuOiBVbmQgd2llIHNvbGwgZGFzIGdlaGVuPwpEQVUgKGJlbGVpZGlndCk6IFdlaXNzIGljaCBkb2NoIG5pY2h0LgpCLiAoaWNoIGdlYiB6dSwgZXMgd2FyIE5hY2htaXR0YWcsIGRpZSBMZXV0ZSBzdGFwZWx0ZW4gc2ljaCwgaWNoIHdhciBlaCAKICAgZ2VuZXJ2dCk6IFZlcnN1Y2hzIG1hbCBtaXQgbmVyIEluc3RhbGxhdGlvbi4KREFVOiBLYW5uc3QgRHUgZGFzIG5pY2h0IG1hY2hlbj8KQi46IEtsYXIga2FubiBpY2guIEFiZXIgZGFzIGlzdCBuaWNodCBtZWluZSBBdWZnYWJlLCBkYXMgc3RlaHQgYWxsZXMgaW4KICAgZGVyIEFubGVpdHVuZywgU2Nocml0dCBmdWVyIFNjaHJpdHQuIFBhY2sgZGVuIEtyYW0gd2llZGVyIGVpbiB1bmQgCiAgIGluc3RhbGxpZXIgZGVuIEtyYW0sIHdlbm4gRHUgZGFubiBub2NoIG5lIEZyYWdlIGhhc3Qga2FubnN0IER1IGdlcm5lIAogICB3aWVkZXJrb21tZW4uCkRBVSBwYWNrdCBtaXQgYmVsZWlkaWd0ZW0gR2VzaWNodCBzZWluZW4gc2Nob2VuZW4gTGFwdG9wIHdpZWRlciBpbiBkaWUgCmVsZWdhbnRlIEFrdGVudGFzY2hlIHVuZCBtYWNodCBzaWNoIGRhdm9uLgoKCkRhcyBHYW56ZSB3dXJkZSBuaWNodCBkYWR1ZXJjaCBsZWljaHRlciwgZGFzcyBEQVUgYXVzIEhlc3NlbiBrYW0sIGRpZSByZWRlbiBkYQpqYSBhbGxlIHNvIGxlaWNodCBiZWxlaWRpZ3QuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1Y2ggZWluZW4uIChHcmltbWJvcm4sICA4LiBPa3QgMTk5NiwgMjE6MzQ6NTIpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0NDgwMzEzMAp+IyEgdGlkPTg0NDgwMzEzMAoKQWNoLCBpY2ggaGF0dGUgZGVuIEtvbW1lbnRhciB2ZXJnZXNzZW46CkRlciBoYXR0ZSB3b2hsIGVyd2FydGV0LCBlciBrb3BpZXJ0IGRpZSBEYXRlaWVuIGF1ZiBzZWluZSBGZXN0cGxhdHRlLCBtYWNodApkZW4gQ29tcHV0ZXIgYW4gdW5kIGlzdCBpbSBJbnRlcm5ldC4gQWxzbyB3aXJrbGljaCwgTGV1dGUgZ2lidHMuLi4KVW5kIGRpZSBoYWJlbiBkYW5uIG5vY2ggYWxsZSBBYml0dXIhCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzaGl0IChDYXR3ZWF6bGUsICA5LiBPa3QgMTk5NiwgMTE6Mjc6NTkpOgoKTUVNTwoKClRvOiAgICAgICAgQWxsIEVtcGxveWVlcwoKRnJvbTogICAgICBNYW5hZ2VtZW50CgpTdWJqZWN0OiAgIFNwZWNpYWwgSGlnaCBJbnRlbnNpdHkgVHJhaW5pbmcKCgpJbiBvcmRlciB0byBhc3N1cmUgdGhlIGhpZ2hlc3QgbGV2ZWxzIG9mIHF1YWxpdHkgd29yayBhbmQgcHJvZHVjdGl2aXR5IApmcm9tIGVtcGxveWVlcywgaXQgd2lsbCBiZSBvdXIgcG9saWN5IHRvIGtlZXAgZW1wbG95ZWVzIHdlbGwgdHJhaW5lZCAKdGhyb3VnaCBvdXIgcHJvZ3JhbSBvZiBTUEVDSUFMIEhJR0ggSU5URU5TSVRZIFRSQUlOSU5HIChTLkguSS5ULikgIFdlIGFyZSAKdHJ5aW5nIHRvIGdpdmUgZW1wbG95ZWVzIG1vcmUgUy5ILkkuVC4gdGhhbiBhbnlvbmUgZWxzZS4KCklmIHlvdSBmZWVsIHRoYXQgeW91IGRvIG5vdCByZWNlaXZlIHlvdXIgc2hhcmUgb2YgUy5ILkkuVC4gb24gdGhlIGpvYiwgCnBsZWFzZSBzZWUgeW91ciBzdXBlcnZpc29yLiAgWW91IHdpbGwgaW1tZWRpYXRlbHkgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgCnRoZSBTLkguSS5ULiBsaXN0LCBhbmQgb3VyIG1hbmFnZXJzIGFyZSBzcGVjaWFsbHkgc2tpbGxlZCBhdCBzZWVpbmcgdGhhdCAKeW91IGdldCBhbGwgdGhlIFMuSC5JLlQuIHlvdSBjYW4gaGFuZGxlLgoKRW1wbG95ZWVzIHdobyBkb24ndCB0YWtlIHRoZXJlIFMuSC5JLlQuIHdpbGwgYmUgcGxhY2VkIGluIERFUEFSVE1FTlRBTCAKRU1QTE9ZRUUgRVZBTFVBVElPTiBQUk9HUkFNUyAoRC5FLkUuUC5TLkguSS5ULikgIFRob3NlIHdobyBmYWlsIHRvIHRha2UgCkQuRS5FLlAuUy5ILkkuVC4gc2VyaW91c2x5IHdpbGwgaGF2ZSB0byBnbyB0byBFTVBMT1lFRSBBVFRJVFVERSBUUkFJTklORyAKKEUuQS5ULlMuSC5JLlQuKSAgU2luY2Ugb3VyIG1hbmFnZW1lbnQgdG9vayBTLkguSS5ULiBiZWZvcmUgdGhleSB3ZXJlIApwcm9tb3RlZCwgdGhleSBkb24ndCBoYXZlIHRvIHRha2UgYW55bW9yZSBTLkguSS5ULiwgYXMgdGhleSBhcmUgYWxyZWFkeSAKZnVsbCBvZiBTLkguSS5ULgoKSWYgeW91IGFyZSBmdWxsIG9mIFMuSC5JLlQuLCB5b3UgbWF5IGJlIGludGVyZXN0ZWQgaW4gdGhlIGpvYiB0cmFpbmluZyBvZiAKb3RoZXJzLiAgV2UgY2FuIGFkZCB5b3VyIG5hbWUgdG8gb3VyIEJBU0lDIFVOREVSU1RBTkRJTkcgTEVDVFVSRSBMSVNUIAooQi5VLkwuTC5TLkguSS5ULikgIFRob3NlIHdobyBhcmUgZnVsbCBvZiBCLlUuTC5MLlMuSC5JLlQgd2lsbCBnZXQgdGhlIApTLkguSS5UIGpvYnMgYW5kIGNhbiBhcHBseSBmb3IgcHJvbW90aW9uIHRvIERJUkVDVE9SIG9mIElOVEVOU0lUWSBQUk9HUkFNUywKIChELkkuUC5TLkguSS5ULikKCklmIHlvdSBoYXZlIGFueSBmdXJ0aGVyIHF1ZXN0aW9ucywgcGxlYXNlIGRpcmVjdCB0aGVtIHRvIG91ciBIRUFEIE9GIApUUkFJTklORywgU1BFQ0lBTCBISUdIIElOVEVOU0lUWSBUUkFJTklORyAoSC5PLlQuUy5ILkkuVC4pCgpUaGFuayB5b3UuCgpNYW5hZ2VtZW50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCU0UuIEJTRT8gKEJsb29keWhhcnJ5LCAgOS4gT2t0IDE5OTYsIDEzOjAzOjI1KToKRGEgZnJhZ3QgbWljaCBqZW1hbmQsIHdpZSBkZW5uIGRpZSBBYmsuIEJTRSBpbSBLbGFydGV4dCBsYXV0ZS4gSG1tbSwgdmllbGVpY2h0Cidicml0aXNjaCBzcGljZSBlbmVteSc/IE9kZXIgJ2JpdHRlIHNjaG5lbGwgZXNzZW4nPyBPZGVyLi4uCldlciB3ZWlzcyByYXQ/CgpjanMga2FubnRlIGljaCBhdWNoIG1hbC4uLiBiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFuemVyIChEaWVkZXIsICA5LiBPa3QgMTk5NiwgMTM6MDU6MjApOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBTdGF1YnNhdWdlciB1bmQgZWluZW0gUGFuemVyPwoKSW0gU3RhdWJzYXVnZXIgaXN0IG51ciBFSU4gRHJlY2tzYWNrLi4uIDopKQoKV2FyIG51ciBlaW4gV0lUWiEhISBXZW5uIHdpZWRlciBGbGFtZXMga29tbWVuIGJpdHRlIGRpcmVrdCBhbgpicmF1bkBmb28uZmgtZnVydHdhbmdlbi5kZSA6KSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCU0UuIEJTRT8gKE1vcmdhciwgIDkuIE9rdCAxOTk2LCAxMzozMzoxNik6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NDQ4NTkwMDUKfiMhIHRpZD04NDQ4NTkwMDUKSGVpc3N0IEJTRSBuaWNodCBCcml0ZW4gc29sbGVucyBlc3Nlbj8KCk1vcmdhciwgZGVyIGVzIG5pY2h0IGdhbnogc28gbWl0IEFiay4ncyBoYXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQlNFLiBCU0U/IChFbmd5d3VjaywgIDkuIE9rdCAxOTk2LCAxMzo1ODowNCk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NDQ4NTkwMDUKfiMhIHRpZD04NDQ4NTkwMDUKU3VjaCBEaXIgd2FzIGF1czoKCkJTRSAgICAgLSBCYWNrU2NhdHRlcmluZyBFbGVjdHJvbnMKQlNFICAgICAtIEJhc2ljIFNlcnZpY2UgRWxlbWVudApCU0UgICAgIC0gQmF1LVN0ZWluZS1FcmRlbiAoSW5kdXN0cmllZ2V3ZXJrc2NoYWZ0KQpCU0UgICAgIC0gQm92aW5lIFNwb25naWZvcm0gRW5jZXBoYWxvcGF0aHkgKFJpbmRlcndhaG5zaW5uKQpCU0UgICAgIC0gQnVuZGVzdmVyYmFuZCBTb2xhckVuZXJnaWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1laHIgQmVyYXR1bmcgKFNudWdnbGUsICA5LiBPa3QgMTk5NiwgMTY6NTU6MTkpOgpadXIgRW50bGFzdHVuZyBnZXN0cmVzc3RlciBCZXJhdGVyIGtvZW5udGUgbWFuIGphIGVpbmVuIEZyYWdlYm9nZW4gYXVzZnVlbGxlbgpsYXNzZW4sIG9obmUgZGVuIGtlaW5lIEFudHdvcnQgZ2VnZWJlbiB3aXJkLgpadXIgRGVja3VuZyBkZXIgS29waWVya29zdGVuIHNvbGx0ZSBlaW5lIEdlYnVlaHJlbm1hcmtlIHZvbiA1Li0gTWFyawphdXNyZWljaGVuLgoKSWNoIHN0ZWxsZSBtaXIgZGFzIHVuZ2VmYWVociBzbyB2b3I6CgpXZWxjaGVyIFJlY2huZXI6Cm8gICAgICAgUEMgICAgICAgICAgICAgIG8gICAgICAgTWNJbnRvc2ggICAgICAgICAgICAgICAgbyAgICAgICBBbWlnYQpvICAgICAgIEM2NCAgICAgICAgICAgICBvICAgICAgIFBlbnRpdW0gICAgICAgICAgICAgICAgIG8gICAgICAgV2lud29yZApvICAgICAgIFNvbnkgUGxheSBTdGF0aW9uCgpXZWxjaGVzIEJldHJpZWJzc3lzdGVtOgpvICAgICAgIEh1bmQgICAgICAgICAgICBvICAgICAgIEthdHplICAgICAgICAgICAgICAgICAgIG8gICAgICAgTWF1cwpvICAgICAgIFdpbndvcmQgICAgICAgICBvICAgICAgIFdpbjEgICAgICAgICAgICAgICAgICAgIG8gICAgICAgV2luMgpvICAgICAgIFdpbjMgICAgICAgICAgICBvICAgICAgIFdpbjk1ICAgICAgICAgICAgICAgICAgIG8gICAgICAgV2luOTYKbyAgICAgICBXaW45NyAgICAgICAgICAgbyAgICAgICBWTVMgICAgICAgICAgICAgICAgICAgICBvICAgICAgIFdhcyBpc3QgZGFzPwoKV2FzIHdvbGxlbiBTaWUgbWl0IElocmVtIFJlY2huZXIgbWFjaGVuPwpvICAgICAgIEludGVybmV0ICAgICAgICBvICAgICAgIGVtYWlsICAgICAgICAgICAgICAgICAgIG8gICAgICAgU3VyZmVuCm8gICAgICAgUmVjaG5lbiAgICAgICAgIG8gICAgICAgU2NocmVpYmVuICAgICAgICAgICAgICAgbyAgICAgICBMZXNlbgpvICAgICAgIFdpbndvcmQgICAgICAgICBvICAgICAgIEthZmZlZSBrb2NoZW4KCldpZSB3ZWNoc2VsbiBTaWUgZWluIFZlcnplaWNobmlzPwpvICAgICAgIGNkIDxQZmFkXFZlcnplaWNobmlzbmFtZT4KbyAgICAgICBJY2gga2xpY2tlIGF1ZiBkYXMgZW50c3ByZWNoZW5kZSBWZXJ6ZWljaG5pcyBpbSBEYXRlaW1hbmFnZXIgCm8gICAgICAgSWNoIGtsaWNrZSBhdWYgZGFzIGVudHNwcmVjaGVuZGUgVmVyemVpY2huaXMgaW0gRXhwbG9yZXIKbyAgICAgICBJY2ggcnVmZSBkaWUgQmVyYXR1bmcgZGVzIFJIUlogYW4KbyAgICAgICBnYXIgbmljaHQKCldpZSBpbnN0YWxsaWVyZW4gU2llIGRpZSBTbGlwL1BQUCBTb2Z0d2FyZXBha2V0ZT8KbyAgICAgICBJY2ggc3RhcnRlIGRlbiBSZWNobmVyIHVuZCB0aXBwZSBhbSBEb3MtUHJvbXB0IGluc3RhbGwKbyAgICAgICBJY2ggc3RhcnRlIGRlbiBSZWNobmVyIHVuZCBXaW5kb3dzIHVuZCBmdWVocmUgaW5zdGFsbCBhdXMKbyAgICAgICBJY2ggbGVnZSB2b3JoZXIgbm9jaCBkaWUgRGlza2V0dGUgbWl0IEluc3RhbGwuZXhlIGVpbgpvICAgICAgIEljaCB2ZXJzdWNoZSBkZW4gUmVjaG5lciB2b24gZGVyIERpc2tldHRlIHp1IHN0YXJ0ZW4gdW5kIHdhcnRlIGFiLAogICAgICAgIHdhcyBwYXNzaWVydApvICAgICAgIEljaCBzdGFydGUgV2lud29yZCB1bmQgb2VmZm5lIEluc3RhbGwuZXhlCm8gICAgICAgV2FzIGlzdCBTbGlwL1BQUCBTb2Z0d2FyZT8KCldpZSBzdGVsbGVuIFNpZSBlaW5lIFdhZWhsdmVyYmluZHVuZyBpbnMgUkhSWiBoZXI/CihhbGxlIHJpY2h0aWdlbiBBbnR3b3J0ZW4gYW5rcmV1emVuKQpvICAgICAgIEljaCBzdGFydGUgZGVuIFJlY2huZXIKbyAgICAgICBJY2ggc3RhcnRlIFdpbmRvd3MKbyAgICAgICBJY2ggc3RhcnRlIE5ldHNjYXBlCm8gICAgICAgSWNoIGJvaHJlIG1pciBpbiBkZXIgTmFzZQpvICAgICAgIEljaCBzdGFydGUgVHJ1bXBldCBXaW5zb2NrCm8gICAgICAgSWNoIHN0YXJ0ZSBXaW53b3JkCm8gICAgICAgSWNoIGxhc3NlIGRhcyBNb2RlbSB3YWVobGVuIG9kZXIgc3RhcnRlIGVpbiBEaWFsc2NyaXB0Cm8gICAgICAgSWNoIHJ1ZmUgaW4gZGVyIEJlcmF0dW5nIGFuCm8gICAgICAgSWNoIGxhc3NlIGRhcyBNb2RlbSBpbiBkZXIgQmVyYXR1bmcgYW5ydWZlbgoKCgpHcnVzcwoKU251Z2dsZSAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNZWhyIEJlcmF0dW5nIChBbmF0b2wsICA5LiBPa3QgMTk5NiwgMTg6MTc6MjApOgp+IyEgcm49U251Z2dsZSBydD04NDQ4NzI5MTkKfiMhIHRpZD04NDQ4NzI5MTkKClVudGVyIGRlciBGcmFnZSwgd2llIG1hbiBkYXMgVmVyemVpY2huaXMgd2VjaHNlbHQsIGZlaGx0IGRlciBFaW50cmFnICJJY2gKc3RhcnRlIFdpbndvcmQiLiAKCkFuYXRvbCA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNZWhyIEJlcmF0dW5nIChIYWRyYSwgIDkuIE9rdCAxOTk2LCAxODo1MDoyMik6Cn4jISBybj1TbnVnZ2xlIHJ0PTg0NDg3MjkxOQp+IyEgdGlkPTg0NDg3MjkxOQp1bmQgbnVuIHNhZyBtaXIgbWFsLCB3aWUgaWNoIG1pdCBkZW0gcmVjaG5lciBrYWZmZWUga29jaGVuIGthbm4uCmFuZ2VibGljaCBrYW5uIHNlbGJzdCBkZXIgZW1hY3MgZGFzIGltbWVyIG5vY2ggbmljaHQgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1laHIgQmVyYXR1bmcgKEZ5dCwgIDkuIE9rdCAxOTk2LCAxODo1MjoyMSk6Cn4jISBybj1IYWRyYSBydD04NDQ4Nzk4MjIKfiMhIHRpZD04NDQ4NzI5MTkKCk5hamEsIGFscyBCZXJ1aGluZ3VuZyBmdWVyIGRpZSBlbWFjcy1HZW1laW5kZTogRGVyIHZpIGthbm4ncyBhdWNoIG5pY2h0IDopCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1laHIgQmVyYXR1bmcgKFd1cnplbCwgIDkuIE9rdCAxOTk2LCAyMDowMToyMyk6Cn4jISBybj1IYWRyYSBydD04NDQ4Nzk4MjIKfiMhIHRpZD04NDQ4NzI5MTkKa2FmZmVlPyBrYXVtIGVpbiBwcm9ibGVtIG1pdCBkZW0gcmljaHRpZ2VuIHJlY2huZXIuLi4gc2llaGUgcnVicmlrIGhhcmRzb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogT2IgZGVuIGplbWFuZCB2ZXJzdGVodD8gKEtvYmF5YXNoaSwgIDkuIE9rdCAxOTk2LCAyMDoxNToyNyk6Cn4jISBybj1Fbmd5d3VjayBydD04NDQ2OTA1OTMKfiMhIHRpZD04NDQ2OTA1OTMKRGVyIGlzdCBndXQgOi0pCgpEYW1pdHMgaW4gZGllIFJ1YmlrIHBhc3N0LCBoaWVyIGVpbmUgdm9uIG1pci4KCkVpbiBEZXV0c2NoZXIsIGVpbiBFbmdsYWVuZGVyIHVuZCBlaW4gTmllZGVybGFlbmRlciB3ZXJkZW4gaW4gS3V3YWl0IHdlZ2VuCmlyZ2VuZHdlbGNoZW4gTmljaHRpZ2tlaXRlbiBhbmdla2xhZ3QgdW5kIHp1IDIwIFN0b2Nrc2NobGFlZ2VuIGF1ZiBkZW0KUnVlY2tlbiBiZXN0cmFmdC4KRGVyIFZvbGxzdHJlY2tlciBtZWludCBhYmVyLCBkYSBlcyBzbyBndXRlIEJlemllaHVuZ2VuIHp3aXNjaGVuIGRlbiAKTGFlbmRlcm4gZ2lidCwgamVkZW0gZWluZW0gV3Vuc2NoIHp1IGdld2FlaHJlbi4KRGVyIEVuZ2xhZW5kZXIgaXN0IGRlciBlcnN0ZS4gRXIgd2lsbCBlaW5lIExlZGVyamFja2UgaGFiZW4uIERpZSBpc3QgamVkb2NoCnNjaG9uIG5hY2ggd2VuaWdlbiBTY2hsYWVnZW4gZHVyY2gsIHVuZCBzbyBiZWtvbW10IGVyIGRvY2ggZGllIHZvbGxlIApTdHJhZmUgYWIuCkRlciBOaWVkZXJsYWVuZGVyIGxhZXNzdCBzaWNoIG5lbiBNYXRyYXplIGF1ZiBkZW4gUnVlY2tlbiBiaW5kZW4uIERpZQpoYWVsdCBqZWRvY2ggYXVjaCBuaWNodCBzbyB2aWVsIGxhZW5nZXIuClNjaGxpZXNzbGljaCBpc3QgZGVyIERldXRzY2hlIGRyYW4uIERlciBWb2xsc3RyZWNrZXIgZ2V3YWVocnQgaWhtIDIgV3VlbnNjaGUKZGEgZGllIEJlemllaGV1bmcgenUgRGV1dHNjaGxhbmQgYmVzb25kZXJzIGd1dCBpc3QuCkRlciBlcnN0ZSBXdW5zaDogIkljaCBtb2VjaHRlIGdlcm5lIDQwIFN0b2Nrc2NobGFlZ2UuIgpEZXIgTmllZGVybGFlbmRlciB1bmQgZGVyIEVuZ2xhZW5kZXIgZnJldWVuIHNpY2ggc2Nob24uCiJVbmQgZGVyIHp3ZWl0ZSBXdW5zY2g/IiBmcmFndCBkZXIgVm9sbHN0cmVja2VyLgoiQmluZGUgbWlyIGRlbiBOaWVkZXJsYWVuZGVyIGF1ZiBkZW4gUnVlY2tlbiAuLi4iCgoKS29iYXlhc2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1laHIgQmVyYXR1bmcgKE11cGZlbCwgIDkuIE9rdCAxOTk2LCAyMTowMDowNyk6Cn4jISBybj1IYWRyYSBydD04NDQ4Nzk4MjIKfiMhIHRpZD04NDQ4NzI5MTkKZGVyIGVtYWNzIG5pY2h0LCBhYmVyIHZpZWxsZWljaHQgd2lud29yZC4uLj8gOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWVociBCZXJhdHVuZyAoUmFmZmksICA5LiBPa3QgMTk5NiwgMjE6MDM6MzQpOgp+IyEgcm49TXVwZmVsIHJ0PTg0NDg4NzYwNwp+IyEgdGlkPTg0NDg3MjkxOQoKTmVlIFdpbndvcmQga2FubiBrZWluZW4gS2FmZmUga29jaGVuIC0gZXMgZ2lidCBEaXIgYWJlciBkaWUgWmVpdCBkYWZ1ZXIKd2FlcmVuZCBlcyBlaW5lIFNlaXRlIGZvcm1hdGllcnQgOikKCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6IChTbHlmb3gsICA5LiBPa3QgMTk5NiwgMjE6MjQ6NTUpOgpLaW5rZWwgc2llaHQsIHdpZSBKb3NjaGthIEZpc2NoZXIgZWluZW4gQmF0emVuIERyZWNrIGtuZXRldCB1bmQgZnJhZ3Q6CiJKb3NjaGthLCB3YXMgbWFjaHN0IER1IGRlbm4gZGE/IiBFcjogIkljaCBtYWNoIEtub2VkZWwgYXVzIExlaG0gdW5kClNjaGVpc3NlLiIKS2lua2VsOiAiVW5kIHdhcyBzb2xsIGRhcyBnZWJlbj8iIEpvc2Noa2EgZnJlY2ggZ3JpbnNlbmQ6ICJEYXMgZ2lidCBsYXV0ZXIKa2xlaW5lCktsYWV1c2NoZW4uIiBLaW5rZWwgZ3JpbnN0OiAiTmEgZ3V0LCBKb3NjaGthLCB3ZW5uIER1IFNwYXNzIGRhcmFuIGhhc3QsIGljaAptdXNzIAp3ZWl0ZXIuIiB1bmQgZ2VodC4KCktvbW10IGRlciBTY2hhcnBpbmcgdm9yYmVpIHVuZCBmcmFndDogIkpvc2Noa2EsIHdhcyBtYWNoc3QgRHUgZGVubiBkYT8iCkpvc2Noa2E6CiJJY2ggbWFjaCBLbm9lZGVsIGF1cyBMZWhtIHVuZCBTY2hlaXNzZS4iIFNjaGFycGluZzogIlVuZCB3YXMgc29sbCBkYXMgZ2ViZW4/IgpKb3NjaGthIGZyZWNoIGdyaW5zZW5kOiAiTGF1dGVyIGtsZWluZSBSdWRvbGZzISIgU2NoYXJwaW5nIGdyaW5zdDogIlNvd2FzCmdlZmFlbGx0CkRpciB3b2hsPyBOYSBndXQsIHdlbm4gRHUgc3Bhc3MgZGFyYW4gaGFzdCwgaWNoIG11c3MgamVkZW5mYWxscyB3ZWl0ZXIuIiB1bmQKZ2VodC4KCkFscyBuYWVjaHN0ZXMga29tbXQgZGVyIEhlbG11dCBLb2hsIHZvcmJlaTogIlNhZyBtYWwsIEpvc2Noa2EsIHdhcyBtYWNoc3QgRHUKZGVubgpkYT8iIEpvc2Noa2E6ICJJY2ggbWFjaCBLbm9lZGVsIGF1cyBMZWhtIHVuZCBTY2hlaXNzZS4iIEtvaGw6ICJVbmQgd2FzIHNvbGwKZGFzCmdlYmVuLCBldHdhIGxhdXRlciBrbGVpbmUgSGVsbXV0cz8iIEpvc2Noa2EgZ3JpbnN0IGZyZWNoOiAiTmVlLi4uIGRhIGlzdCB6dQp3ZW5pZwpTY2hlaXNzZSBkcmluLiIKCiAgIFNseWZveAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWVociBCZXJhdHVuZyAoV2FyZ29uLCAxMC4gT2t0IDE5OTYsIDExOjAwOjAyKToKfiMhIHJuPVJhZmZpIHJ0PTg0NDg4NzgxNAp+IyEgdGlkPTg0NDg3MjkxOQpXaXJkIGRhIGFscyBXYXJ0ZW1hdXN6ZWlnZXIgbm9jaCBuZSBTYW5kdWhyIG9kZXIgc2Nob24gbmUgYXJiZWl0ZW5kZQpLYWZmZWVtYXNjaGluZSBhbmdlemVpZ3Q/Ck9kZXIgZ2FyIHNjaG9uIGVpbiBlaW5rYXVmZW4gZ2VoZW5kZXIvc2VpbmUgV29obnVuZyB0YXBlemllcmVuZGVyL3NlaW5lbgpVcmxhdWIgZ2VuaWVzc2VuZGVyL3NpY2ggZGllIEhhYXJlIHJhdWZlbmRlciBVc2VyPyA6KQogIFdhcmdvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWVociBCZXJhdHVuZyAoV29vZHksIDEwLiBPa3QgMTk5NiwgMTg6MjA6MTMpOgp+IyEgcm49UmFmZmkgcnQ9ODQ0ODg3ODE0Cn4jISB0aWQ9ODQ0ODcyOTE5CgpLYWZmZWVrb2NoZW4/IFByb2JpZXJ0IGVzIGRvY2ggbWFsIG1pdCBKYXZhLi4uIGFiZXIgVm9yc2ljaHQKdm9yIGRlbiBOZWJlbndpcmt1bmdlbiA7LSkKCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnBzLWZpbGUgKER1cmlhbiwgMTAuIE9rdCAxOTk2LCAxODoyMzoyMSk6CgpFYmVuIGxpdmUgcGFzc2llcnQuCgpJbiBkZXIgQXNjaWktV2FydGVzY2hsYW5nZSB1bnNlcmVzIERydWNrZXJzIC4uLgoKbHBhbHQwNiBscGFsdCBSVU5OSU5HICAgNDEwIGluZGVudC5wcyAgICAgICAgICB5MDAwMHh4eHgKCkhleSwgaGF0dGVyIGVpbiBwcy1zb3VyY2UtZmlsZSBhc3VnZWRydWNrdC4gTmV0dGVyIERBVSwgenVtIEdsdWVjawp3YXIgZGFzIEZpbGUga2xlaW4gdW5kIGtlaW4gNSBNQnl0ZS1CaWxkIC4uLgoKLSBEdXJpYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBwcy1maWxlIChDYXJhZGhyYXMsIDEwLiBPa3QgMTk5NiwgMTg6Mjk6MTYpOgp+IyEgcm49RHVyaWFuIHJ0PTg0NDk2NDYwMQp+IyEgdGlkPTg0NDk2NDYwMQpEYXMgZ2FicyBoaWVyIHNjaG9uIG9lZnRlcnMsIER1cmlhbiwgZGVyIGxldHp0ZSBoYXQgZWluCjgwMCBLLVBvc3RzY3JpcHQtRmlsZSBzbyBhdXNnZWRydWNrdC4gOi0pCkNsb3UgYW4gZGVyIFN0b3J5OgpFcyB3YXIgZWluIEluZm9ybWF0aWstU3R1ZGVudCBpbSAxNXRlbiBTZW1lc3Rlci4gCgogICAgICAgICAgQ2FyYWRocmFzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1laHIgQmVyYXR1bmcgKEJhcm9uLCAxMC4gT2t0IDE5OTYsIDIzOjMzOjI5KToKfiMhIHJuPUhhZHJhIHJ0PTg0NDg3OTgyMgp+IyEgdGlkPTg0NDg3MjkxOQpOQXR1ZXJsaWNoIGthbm4gRW1hY3MgS2FmZmVlIGtvY2hlbiAuLi4gV2lud29yZCBvaG5lIFp3ZWlmZWwgYXVjaC4gTWFuIG11c3MKbnVyIG1pdCBkZW4gZW50c3ByZWNoZW5kZW4gTWFrcm9zcHJhY2hlbiB1bWdlaGVuIGtvZW5uZW4gdW5kIGVpbmUKS2FmZmVlbWFzY2hpbmUgbWl0IElFRUUtQnVzIGhhYmVuIDopCgpCYXJvbiAtIGtvY2h0IHNlaW5lbiBLYWZmZWUgTlVSIHBlciBIYW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNZWhyIEJlcmF0dW5nIChSaW5nb3IsIDExLiBPa3QgMTk5NiwgMDE6MTQ6NDIpOgp+IyEgcm49QmFyb24gcnQ9ODQ0OTgzMjA5Cn4jISB0aWQ9ODQ0ODcyOTE5CkltIEtvbmZpZ3VyYXRpb25zcHJvZ3JhbW0genUgbWVpbmVtIFNDU0ktS29udHJvbGxlciBhdWYgZGVtIEFtaWdhIGdpYnQgZXMKc29nYXIgZXh0cmEgZGVuIE1lbnVlcHVua3QgIkthZmZlZSBrb2NoZW4iLiBXZW5uIG1hbiBkZW4gYW53YWVobHQsIApiZWtvbW10IG1hbiBhbGxlcmRpbmdzIGRpZSBGZWhsZXJtZWxkdW5nLCBkYXNzIGdhciBrZWluZSBTQ1NJLUthZmZlZW1hc2NoaW5lCmFuZ2VzY2hsb3NzZW4gc2VpIC4uLgoKUmluZ29yIC0gc3VjaHQgbm9jaCBuYWNoIGRlciBlbnRzcHJlY2hlbmRlbiBNYXNjaGluZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWVociBCZXJhdHVuZyAoU251Z2dsZSwgMTEuIE9rdCAxOTk2LCAxMToyMToyMSk6Cn4jISBybj1GeXQgcnQ9ODQ0ODc5OTQxCn4jISB0aWQ9ODQ0ODcyOTE5Cm5hIGlzdCBkb2NoIGdhbnogZWluZmFjaC4KCkR1IGJlc29yZ3N0IERpciBuZW4gMTJWIFdhc3NlcmtvY2hlciB1bmQgc2NobGllc3N0IGlobiBhbiBlaW5lbgpmcmVpZW4gU3Ryb21hbnNjaGx1c3MgZGVzIFJlY2hlbnJzIGFuLiBEaWUgU3Bhbm51bmdzZGlmZmVyZW56IGZ1ZWhydCB6d2FyCnp1IGdlcmluZ2Z1ZWdpZyBsYWVuZ2VyZW4gS29jaHplaXRlbiwgYWJlciB3ZXIgV2luV29yZCBmdWVyIHNlaW4KQmV0cmllYnNzeXN0ZW0gaGFlbHQsIG5pbW10IGF1Y2ggZGFzIGluIEthdWYuCgpTbmdnbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IERBVSAoS29iYXlhc2hpLCAxMS4gT2t0IDE5OTYsIDE4OjI2OjM1KToKfiMhIHJuPUF6enVybyBydD04NDQ2ODMwMzQKfiMhIHRpZD04NDQ2MzA4MzcKQmVpIHVucyBnaWJ0IGVzIGZ1ZXIgc29sY2hlIEZhZWxsZSBhYmt1ZXJ6dW5nZW4gZnVlciBkaWVzZSBTYWNoZW4sIGplIG5hY2gKc2Nod2VyZToKClNVRSAtIFN0dXBpZCBVc2VyIEVycm9yCkNVRCAtIENsaWVudCBVc2VyIERlZmVjdCAoIGFuYWxvZyB6dSBDU0QgdW5kIENIRCAoU29mdHdhcmUvSGFyZHdhcmUpICkKQ01FIC0gQ2VsZWJyYWxlIE1heGltYWxFbnRyb3BpZQoKQWJlciBtYWNobWFsIGxpZWd0cyBhdWNoIGFtIFJlY2huZXIsIGRhbm4gaGF0IGVyIEJTRCAoUmVjaG5lcndhaG5zaW5uKQoKS29iYXlhc2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNZWhyIEJlcmF0dW5nIChNdXBmZWwsIDExLiBPa3QgMTk5NiwgMTg6MzI6MzgpOgp+IyEgcm49UmluZ29yIHJ0PTg0NDk4OTI4Mgp+IyEgdGlkPTg0NDg3MjkxOQoKVmllbGxlaWNodCBoYXQgamEgZGllc2UgRXNwcmVzc29tYXNjaGluZSB2b24gU0dJIChkaWUgYXVzc2llaHQgd2llIG5lIEluZGlnbykKbmVuIFNDU0kgQW5zY2hsdXNzPyA6LSkKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYXVsZS4uLiAoTXVwZmVsLCAxMS4gT2t0IDE5OTYsIDE4OjU4OjI4KToKCkVpbiBNYW5uIGJlc3VjaHQgZWluZW4gQmF1ZXJuaG9mIHVuZCBzaWVodCBkb3J0IGVpbiBTY2h3ZWluIG1pdCBlaW5lbQpIb2x6YmVpbi4gTmF0dWVybGljaCBzcHJpY2h0IGVyIGRlbiBCYXVlcm4gZGFyYXVmIGFuOiBXYXMgaXN0IGRlbm4gZGFtaXQ/Ck5hamEsIHNhZ3QgZGVyIEJhdWVyLCBkYXMgaXN0IHVuc2VyIFBhdWxlLiBEZXIgaXN0IHNjaG9uIGVpbiBiZXNvbmRlcmVzClNjaHdlaW4uIFZvciBlaW4gcGFhciBXb2NoZW4gaGF0IGVzIGJlaSB1bnMgaW0gU3RhbGwgZ2VicmFubnQsIGRhIGhhdCBlciB1bnMKenVlcnN0IGR1cmNoIHNlaW4gbGF1dGVzIFF1aWVrZW4gYXVmZ2V3ZWNrdCwgdW5kIGFscyBpY2ggZW5kbGljaCBrYW0gdW5kIGRpZQpUaWVyZSByZXR0ZW4gd29sbHRlLCBoYXR0ZSBlciBzY2hvbiBhbGxlIHp1c2FtbWVuZ2V0cmllYmVuIHVuZCByYXVzZ2VsYXNzZW4uCgpBY2ggamEsIHVuZCBkYWJlaSBoYXQgZXIgZGFzIEJlaW4gdmVybG9yZW4/CgpOZWluLiBBYmVyIG5ldWxpY2ggd2FyIGljaCBpbSBXYWxkIHVuZCB3dXJkZSB2b24gZWluZW0gQmFlcmVuIGFuZ2VncmlmZmVuLiBEYQprYW0gUGF1bGUgZ2VsYXVmZW4gdW5kIGhhdCBkZW4gQmFlcmVuIHZlcmphZ3QuCgpPaCwgdW5kIGRhYmVpIGhhdCBlciBkYXMgQmVpbiB2ZXJsb3Jlbi4KCk5laW4sIE5laW4uIE9id29obCwgbGV0enRlbnMgYmluIGljaCBtaXQgZGVtIFRyZWNrZXIgaW0gU3VtcGYgdW1nZWtpcHB0IHVuZAp3YXIgYmV3dXNzdGxvcy4gRGEgaGF0IFBhdWxlIG1pY2ggcmF1c2dlem9nZW4uCgpBY2gsIHVuZCBkYWJlaSBoYXQgZXIgc2ljaCB2ZXJsZXR6dD8KCk5laW4sIG5laW4uIFdvIGRlbmtlbiBTaWUgaGluLgoKQWJlciB3byBoYXQgZXIgZGVubiBkYXMgSG9semJlaW4gaGVyPwoKSmEsIGdsYXViZW4gU2llIGV0d2EsIF9zb18gZWluIFNjaHdlaW4gaXNzdCBtYW4gYXVmIGVpbm1hbCA/CgoqZ3JpbnMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpRdWVsbGU6ICdSYWRpbyBFcml3YW4nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgbWFuIHNvIHNjaG9ubWFsIGFscyBtYWlsIGJla29tbXQgOykgKEd1eWJydXNoLCAxNC4gT2t0IDE5OTYsIDE2OjQ1OjE5KToKCj4gIFE6ICAgTVkgUEFSRU5UUyBTQVkgVEhFWSBORVZFUiBIQUQgRkFYIFdIRU4gVEhFWSBXRVJFIFlPVU5HIEFORAo+ICAgICAgIFdFUkUgT05MWSBBTExPV0VEIFRPIFdSSVRFIE1FTU9TIFRPIEVBQ0ggT1RIRVIgVU5USUwgVEhFWQo+ICAgICAgIFdFUkUgVFdFTlRZT05FLiAgSE9XIE9MRCBETyBZT1UgVEhJTksgU09NRU9ORSBTSE9VTEQgQkUKPiAgICAgICBCRUZPUkUgVEhFWSBDQU4gRkFYID8KPiAgQTogICBGYXhpbmcgY2FuIGJlIHBlcmZvcm1lZCBhdCBhbnkgYWdlLCBvbmNlIHlvdSBsZWFybiB0aGUKPiAgICAgICBjb3JyZWN0IHByb2NlZHVyZS4KPgo+ICBROiAgIElGIEkgRkFYIE1ZU0VMRiwgV0lMTCBJIEdPIEJMSU5EPwo+ICBBOiAgIENlcnRhaW5seSBub3QsIGFzIGZhciBhcyB3ZSBjYW4gc2VlLgo+Cj4gIFE6ICAgVEhFUkUgIElTIEEgUExBQ0UgT04gT1VSIFNUUkVFVCBXSEVSRSBZT1UgQ0FOIEdPIEFORCBQQVkKPiAgICAgICBGT1IgRkFYLiAgSVMgVEhJUyBMRUdBTD8KPiAgQTogICBZZXMuIG1hbnkgcGVvcGxlIGhhdmUgbm8gb3RoZXIgb3V0bGV0IGZvciB0aGVpciBmYXggZHJpdmVzCj4gICAgICAgYW5kIE11c3QgcGF5IGEgInByb2Zlc3Npb25hbCIgd2hlbiB0aGVpciBuZWVkcyB0byBmYXgKPiAgICAgICBiZWNvbWUgdG9vIGdyZWF0Lgo+Cj4gIFE6ICAgU0hPVUxEIEEgQ09WRVIgQUxXQVlTIEJFIFVTRUQgRk9SIEZBWElORz8KPiAgQTogICBVbmxlc3MgeW91IGFyZSByZWFsbHkgc3VyZSBvZiB0aGUgb25lIHlvdSdyZSBmYXhpbmcsIGEKPiAgICAgICBjb3ZlciBzaGVldCBzaG91bGQgYmUgdXNlZCB0byBpbnN1cmUgc2FmZSBmYXguCj4KPiAgUTogICBXSEFUIEhBUFBFTlMgV0hFTiBJIElOQ09SUkVDVExZIERPIFRIRSBQUk9DRURVUkUgQU5EIEkgIEZBWAo+ICAgICAgIFBSRU1UVVJFTFk/Cj4gIEE6ICAgRG9uJ3QgcGFuaWMuIE1hbnkgcGVvcGxlIHByZW1hdHVyZWx5IGZheCB3aGVuIHRoZXkgaGF2ZW4ndAo+ICAgICAgIGZheGVkIGluIGEgbG9uZyB0aW1lLiBKdXN0IHN0YXJ0IE92ZXI7IE1vc3QgcGVvcGxlIHdvbid0Cj4gICAgICAgbWluZCBpZiB5b3UgdHJ5IGFnYWluLnVzdCBzdGFydCBPdmVyOyBNb3N0IHBlb3BsZSB3b24ndAo+ICAgICAgIG1pbmQgaWYgeW91IHRyeSBhZ2Fpbi4KPgo+ICBROiAgIEkgSEFWRSBBIFBFUlNPTkFMIEFORCBCVVNJTkVTUyBGQVguIENBTiBUUkFOU01JU1NJT05TCj4gICAgICAgQkVDT01FIE1JWEVEIFVQPwo+ICBBOiAgIEJlaW5nIGJpLWZheHVhbCBjYW4gYmUgY29uZnVzaW5nLCBidXQgYXMgbG9uZyBhcyB5b3UgdXNlIGEKPiAgICAgICBjb3ZlciB3aXRoIGVhY2ggb25lLCB5b3Ugd29uJ3QgdHJhbnNtaXQgYW55dGhpbmcgWW91J3JlIG5vdAo+ICAgICAgIHN1cHBvc2VkIHRvLn5yCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVyZ21hbm4gKExpLCAxNS4gT2t0IDE5OTYsIDA5OjE4OjEyKToKRHJlaSBPc3Rmcmllc2VuKG9kZXIgamVkZSBhbmRlcmUgQXJ0IHZvbiBMZXV0ZW4sIGRpZSBtYW4gaW4gZGllIFBmYW5uZSBoYXVlbgp3aWxsKSBzaXR6ZW4gYmVpbSBBcmJlaXRzYW10LCB3ZWlsIHNpZSBzaWNoIGFscyBCZXJnbGV1dGUgYmV3ZXJiZW4gd29sbGVuLgpEZXIgZXJzdGUgZ2VodCB6dW0gU2FjaGJlYXJiZWl0ZXIgaGluZWluLiBEZXIgZnJhZ3QgaWhuOiAiTmEsIHNjaG9uIG1hbCBhbHMKQmVyZ21hbm4gZ2VhcmJlaXRldD8iICJLbGFyLCBpbiBPc3Rmcmllc2xhbmQgdW5kIGluIEhvbGxhbmQiICJXQVM/IERhIGdpYnRzCmRvY2ggZ2FyIGtlaW5lIEJlcmd3ZXJrZSwgZGllIGdpYnRzIG51ciBpbSBSdWhyZ2ViaWV0IHVuZCBpbSBTYWFybGFuZCwgYWxzbwptYWNoZW4gc2llIGRhc3Mgc2llIHJhdXMga29tbWVuISIKRGVyIE9zdGZyaWVzZSB0cm9sbHQgc2ljaCBuYWNoIGRyYXVzc2VuIHVuZCBzYWd0IHp1bSAyLjogImR1IGljaCBoYWIgZGVuIGpvYgpuaWNoLCBhYmVyIHdlbm4gZXIgZGljaCBmcmFndCwgd28gZXMgQmVyZ3dlcmtlIGdpYnQsIGFudHdvcnRlOyBSdWZocmJlaXQgdW5kClNhYXJsYW5kIgpPSywgZGVyIDIuIGdlaHQgcmVpbiwgZ2xlaWNoZSBGcmFnZXN0ZWxsdW5nIGRlcyBTYWNoYmVhcmJlaXRlcnMsIGRlciBhdWNoIGdhbnoKYmVnZWlzdGVydCBpc3QsIGFscyBkZXIgT3N0ZnJpZXNlIGlobSBhbnR3b3J0ZXQsIGVyIGhhZXR0ZSBpbSBSdWhyZ2ViaWV0CmdlYXJiZWl0ZXQuCiJVbmQgaW4gd2VsY2hlciBUaWVmZSBoYWJlbiBzaWUgZ2VhcmJlaXRldD8iIERlciBPc3Rmcmllc2U6ICIyMCBNZXRlciEiCiJXQVM/IDIwIE1ldGVyPyBEYXMgZ2lidHMgZG9jaCBnYXIgbmljaHQsIEJlcmd3ZXJrZSBzaW5kIGRvY2ggbWluZGVzdGVucyA1MDAKTWV0ZXJ0aWVmIGFsc28gcmF1cyEiCkRyYXVzc2VuIHNhZ3QgZGVyIDIuIE9zdGZyaWVzZSB6dW0gMy46IGFsc28gaWNoIGhhYiBkZW4gam9iIG5pY2h0LCBhYmVyIHdlbm4KZXIgZGljaCBuYWNoIGRlciB0aWVmZSBmcmFndCwgc2FnIHdhcyB1bnRlciA1MDAgTWV0ZXIiCk9LLSBHbGVpY2hlIEZyYWdlbiBiZWltIGRyaXR0ZW4gT3N0ZnJpZXNlbjogV28gZ2VhcmJlaXRldCwgd2VsY2hlIFRpZWZlLgpEZXIgT3N0ZnJpZXNlIG11dGlnOiAiMTAwMCBNZXRlciEiICJQcmltYSwgbWVpbnQgZGVyIFNhY2hiZWFyYmVpdGVyLCB1bmQgd28KaGFiZW4gc2llIGlocmUgR3J1YmVubGFtcGUgZ2V0cmFnZW4sIGFtIEhlbG0gb2RlciBhbSBSZXZlcnM/IgoiSWNoIGJyYXVjaHRlIGtlaW5lbiBIZWxtIGljaCBoYXR0ZSBpbW1lciBUYWdzY2hpY2h0LiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbGVmYW50ZW5qYWdkIChSb2NodXMsIDE4LiBPa3QgMTk5NiwgMTM6Mzg6NTQpOgo+SU5GT1JNQVRJS0VSIGphZ2VuIEVsZWZhbnRlbiwgaW5kZW0gc2llIEFsZ29yaXRobXVzIEEgYXVzZnxocmVuOgo+ICAgICAgICAxLikgR2VoZSBuYWNoIEFmcmlrYQo+ICAgICAgICAyLikgQmVnaW5uZSBhbSBLYXAgZGVyIGd1dGVuIEhvZmZudW5nCj4gICAgICAgIDMuKSBEdXJjaGtyZXV6ZSBBZnJpa2Egdm9uIFN8ZGVuIG5hY2ggTm9yZGVuIAo+ICAgICAgICAgICAgYmlkaXJla3Rpb25hbCBpbiBPc3QtV2VzdC1SaWNodHVuZwo+ICAgICAgICA0LikgRnxyIGplZGVzIER1cmNoa3JldXplbiB0dWU6Cj4gICAgICAgICBhLikgRmFuZ2UgamVkZXMgVGllciwgZGFzIER1IHNpZWhzdAo+ICAgICAgICAgYi4pIFZlcmdsZWljaGUgamVkZXMgZ2VmYW5nZW5lIFRpZXIgbWl0IGVpbmVtIGFscyAgCj4gICAgICAgICAgICAgRWxlZmFudCBiZWthbm50ZW4gVGllcgo+ICAgICAgICAgYy4pIGhhbHRlIGFuIGJlaSBcYmVyZWluc3RpbW11bmcKCj5FUkZBSFJFTkUgUFJPR1JBTU1JRVJFUiB2ZXJuZGVybiBBbGdvcml0aG11cyBBLCBpbmRlbSBzaWUgZWluIGFscyBFbGVmYW50Cj5iZWthbm50ZXMgVGllciBpbiBLYWlybyBwbGF6aWVyZW4sIGRhbWl0IGRhcyBQcm9ncmFtbSBpbiBqZWRlbSBGYWxsIGtvcnJla3QKPmJlZW5kZXQgd2lyZC4KCj5NQVRIRU1BVElLRVIgamFnZW4gRWxlZmFudGVuLCBpbmRlbSBzaWUgbmFjaCBBZnJpa2EgZ2VoZW4sIGFsbGVzIGVudGZlcm5lbiwKPndhcyBuaWNodCBFbGVmYW50IGlzdCB1bmQgZWluIEVsZW1lbnQgZGVyIFJlc3RtZW5nZSBmYW5nZW4uCgo+RVJGQUhSRU5FIE1BVEhFTUFUSUtFUiB3ZXJkZW4genVuY2hzdCB2ZXJzdWNoZW4sIGRpZSBFeGlzdGVueiBtaW5kZXN0ZW5zCj5laW5lcyBlaW5laW5kZXV0aWdlbiBFbGVmYW50ZW4genUgYmV3ZWlzZW4sIGJldm9yIHNpZSBtaXQgU2Nocml0dCAxIGFscwo+dW50ZXJnZW9yZG5ldGVyIFxidW5nc2F1ZmdhYmUgZm9ydGZhaHJlbi4KCj5NQVRIRU1BVElLUFJPRkVTU09SRU4gYmV3ZWlzZW4gZGllIEV4aXN0ZW56IG1pbmRlc3RlbnMgZWluZXMgZWluZWluZGV1dGlnZW4KPkVsZWZhbnRlbiB1bmQgfGJlcmxhc3NlbiBkYW5uIGRhcyBBdWZzcHxyZW4gdW5kIEVpbmZhbmdlbiBlaW5lcwo+dGF0c2NobGljaGVuIEVsZWZhbnRlbiBpaHJlbiBTdHVkZW50ZW4uCgo+SU5HRU5JRVVSRSBqYWdlbiBFbGVmYW50ZW4sIGluZGVtIHNpZSBuYWNoIEFmcmlrYSBnZWhlbiwgamVkZXMgZ3JhdWUgVGllcgo+ZmFuZ2VuLCBkYXMgaWhuZW4gfGJlciBkZW4gV2VnIGx1ZnQgdW5kIGVzIGFscyBFbGVmYW50IG5laG1lbiwgd2VubiBkYXMKPkdld2ljaHQgbmljaHQgbWVociBhbHMgMTUlIHZvbiBkZW0gZWluZXMgdm9yaGVyIGdlZmFuZ2VuZW0gRWxlZmFudGVuCj5hYndlaWNodC4KCj5XSVJUU0NIQUZUU1dJU1NFTlNDSEFGVExFUiBqYWdlbiBrZWluZSBFbGVmYW50ZW4uIEFiZXIgc2llIHNpbmQgZmVzdCBkYXZvbgo+fGJlcnpldWd0LCBkYWRhdm9uIGRpZSBFbGVmYW50ZW4gc2ljaCBzZWxiZXIgc3RlbGxlbiB3fHJkZW4sIHdlbm4gbWFuIGlobmVuCm51cgo+Z2VudWcgYmV6YWhsdC4KCj5TVEFUSVNUSUtFUiBqYWdlbiBkYXMgZXJzdGUgVGllciwgZGFzIHNpZSBzZWhlbiBuLW1hbCB1bmQgbmVubmVuIGVzCj5FbGVmYW50LgoKPlVOVEVSTkVITUVOU0JFUkFURVIgamFnZW4ga2VpbmUgRWxlZmFudGVuLiBVbmQgdmllbGUgaGFiZW4gbm9jaCBuaWVtYWxzCj58YmVyaGF1cHQgaXJnZW5kZXR3YXMgZ2VqYWd0LiBBYmVyIG1hbiBrYW5uIHNpZSBzdHVuZGVud2Vpc2UgZW5nYWdpZXJlbiwgdW0KPnNpY2ggZ3V0ZSBSYXRzY2hsZ2UgZ2ViZW4genUgbGFzc2VuLgoKPlNZU1RFTUFOQUxZVElLRVIgd3JlbiB0aGVvcmV0aXNjaCBpbiBkZXIgTGFnZSwgZGllIEtvcnJlbGF0aW9uIHp3aXNjaGVuCj5IdXRncnp3aXNjaGVuZSB1bmQgVHJlZmZlcnF1b3RlIGJlaSBkZXIgRWxlZmFudGVuamFnZCB6dSBiZXN0aW1tZW4sIHdlbm4KaWhuZW4KPm51ciBqZW1hbmQgc2FnZW4gd3xyZGUsIHdhcyBlaW4gRWxlZmFudCBpc3QuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJpbXphaGxlbiAoUm9jaHVzLCAxOC4gT2t0IDE5OTYsIDEzOjQxOjI3KToKRnVlciBhbGxlLCBkaWUgZ2VnbGF1YnQgaGFiZW4sIHNjaG9uIGFsbGUgV2l0emUgdWViZXIgUHJpbXphaGxlbgp6dSBrZW5uZW46CgpEZXIgQmlvbG9nZToKIk1hbCBzZWhlbi4uIDMgaXN0IHByaW0sIDUgaXN0IHByaW0uLiAzIHVuZCA1IGdpYnQgOCB1bmQgOCBpc3QgbmljaHQgCnByaW0uLiBndXQuIDcgaXN0IHByaW0gdW5kIDExIGlzdCBwcmltLCBhYmVyIDE4IGlzdCB3aWVkZXIgbmljaHQgcHJpbS4uIApIbW0sIHNjaGVpbnQgc2ljaCBuaWNodCB1bSBlaW4gZG9taW5hbnRlcyBHZW4genUgaGFuZGVsbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHdXRlIEZyYWdlOiAoUnVtYXRhLCAxOC4gT2t0IDE5OTYsIDE3OjIxOjAyKToKSWYgYSB0cmFpbiBzdG9wcyBhdCBhIHRyYWluIHN0YXRpb24sIHdoYXQgaGFwcGVucyBhdCBhIHdvcmtzdGF0aW9uPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXV0b2ZhaHJlciAoR3JpbW1ib3JuLCAxOS4gT2t0IDE5OTYsIDIwOjEyOjQ0KToKCldpZSBuZW5udCBtYW4gZGllIFVudGVyaG9zZSBlaW5lcyBPcGVsZmFocmVycz8KClJ1ZXNzZWxzaGVpbS4KCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXJhZGUgZWJlbi4uLi4gKEphc3BlciwgMjEuIE9rdCAxOTk2LCAxMTo1MDozNyk6CmFscyBpY2ggd2llIGVpbiBoYWxiZXMgaGFlaG5jaGVuIGltIHphaG5hcnp0c3R1aGwgaGluZywgZGllIHphaG5hcnp0aGVsZmVyaW4KbWl0IGlocmVuIHNjaG51Y2tlbGlnZW4gbW9lcHNlbiB1ZWJlciBtZWluZW0gZ2VzaWNodCBydW10dXJudGUgdW5kIGRlcgp6YWhuYXJ6dCBtaXIgdmVybXV0bGljaCBzYWVtdGxpY2hlIHNlaW5lciB3ZXJremV1Z2UgaW5zIG1hdWwgZ2VzdG9wZnQgaGF0dGUgdW0KbWljaCBtZWluZXIgd2Vpc2hlaXQgenUgYmVyYXViZW4sIGVyemFlaGx0ZSBlciBtaXIgZm9sZ2VuZGVuIHdpdHo6CgoKCgpGdWVyIGxldXRlIGRpZSBkaWUgd2l0emUgaW4gZGVyIGtpcmNoZW56ZWl0dW5nIGZ1ZXIgc2V4aXN0aXNjaCBoYWx0ZW4gYml0dGUKamV0enQgJ3EnIGRydWVja2VuICEhIQoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVpbiBNYW5uIHdhY2h0IGZydWVoIG1vcmdlbnMgYXVmLCBoYXQgYWxsZXJkaW5ncyBub2NoIGV0d2FzIHplaXQgYmlzIHp1IHNlaW5lbQp6YWhuYXJ6dHRlcm1pbiB1bmQgc2NoaWVidCBub2NoIGVpbiBudWVtbWVyY2hlbiBtaXQgc2VpbmVyCmZyYXUobGViZW5zYWJzY2huaXR0Z2VmYWVocnRpbikuIERhYmVpIGN1bm5pbGluZ3VpZXJ0IGVyIG1pdCBpaHIobmFqYQp6YWhuYWVyenRlIGtvZW5uZW4gc2ljaCBzY2hvbiBnZXNjaHdvbGxlbiBhdXNkcnVlY2tlbikgdXN3LiAoZGV0YWlscyB3aWxsIGljaApldWNoIGVyc3BhcmVuKQpBbHMgZXIgYXVmIGRlbSB3ZWcgenVtIHphaG5hcnp0IGlzdCB1bmQgc2ljaCBtaXQgZGVyIHp1bmdlIHVlYmVyIGRpZSB6YWVobmUKc3RyZWlmdCwgYmVtZXJrdCBlciBkYXNzIHNpY2ggendpc2NoZW4gc2VpbmVuIG9iZXJlbiB2b3JkZXJlbiBzY2huZWlkZXphZWhuZW4KZWluIGhhYXIgZmVzdGdla2xlbW10IGhhdC4gZXIgdmVyc3VjaHQgdmVyendlaWZlbHQgZGFzIGhhYXIgcmF1c3p1emllaGVuICwKcHJvYmllcnQgYWxsZXMgZXJkZW5rbGljaGUgYXVzIHVuZCBmaW5kZXQgenVtIHNjaGx1c3MgZWluZSBuYWdlbHNjaGVyZSBpbQpoYW5kc2NodWhmYWNoLgpOYWphLCBkZW5rdCBlciBzaWNoLCBkYXMgaXN0IHp3YXIgbmljaHQgb3B0aW1hbCwgYWJlciBlciBzY2huZWlkZXQgc2ljaCBkYXMKaGFhciBrdXJ6IHVlYmVyIGRlbiB6YWVobmVuIGFiIHVuZCBob2ZmdCBkYXNzIGVzIG5pY2h0IGJlbWVya3Qgd2lyZC4KQWxzIGVyIGRhbm4gYmVpbSB6YWhuYXJ6dCBsaWVndCBmcmFndCBkaWVzZXIgbWl0IGdyaW5zZW5kZW0gZ2VzaWNodCwgd2llIGRlbm4KZGVyIGN1bm5pbGluZ3VzKGJsb2VkZXMgd29ydCwgaXN0IGJlc3RpbW10IGZhbHNjaCBnZXNjaHJpZWJlbiksIHdhci4KRGVyIE1hbm4gZXJyb2V0ZXQgdW5kIGVyemFlaGx0IGRlbSB6YWhuYXJ6dCBkaWUgcHJvYmxlbSBkaWUgZXIgbWl0IGRlbSBoYWFyCmdlaGFidCBoYXR0ZSwgd29yYXUgZGVyIHphaG5hcnp0IG1laW50ICdub2UsIGVpbiBoYWFyIGhhYiBpY2ggbmljaHQgZ2VmdW5kZW4sCmFiZXIgc2llIGhhYmVuIG5vY2ggc2NoZWlzc2UgYW0ga2lubicKCkphcHNhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3V0ZSBGcmFnZTogKENhdW5vLCAyMS4gT2t0IDE5OTYsIDEzOjM3OjMyKToKfiMhIHJuPVJ1bWF0YSBydD04NDU2NTIwNjIKfiMhIHRpZD04NDU2NTIwNjIKClZvbiBkZXIgZ2xlaWNoZW4gTGlzdGUsIGFiZXIgYXVjaCBndXQ6CgpGYWxsZW4gMiBQQ3MgYXVzIGRlbSBGZW5zdGVyIHVuZCBzaWVoZSBkYSwgZGVyIFBlbnRpdW0gaXN0IHdpcmtsaWNoIHNjaG5lbGxlciEKClRoZSBiZXN0IHdheSB0byBhY2NlbGVyYXRlIGEgTWFjSW50b3NoIGlzdCA5LjgxIG0vc14yLgoKSmVkZXIgRW50d2lja2xlciwgZGVyIHZvbiBhdXNzZXJoYWxiIGtvbW10LCBnaWx0IGFscyBGYWNobWFubi4KCnVuZCBhbSBiZXN0ZW46Ck9TLzIgVmlydXMgU2NhbjogV2luZG93cyBmb3VuZCAtIHJlbW92ZSBpdD8gKFkveSkKCkMuIE5vCkljaCB3ZWlzcywgZGllIGtlbm50IHNpY2hlciBzY2hvbiBmYXN0IGplZGVyLiBPZGVyIGRvY2ggbmljaHQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2h0dW5nISAoR3JpbW1ib3JuLCAyMS4gT2t0IDE5OTYsIDE2OjQ4OjI4KToKCkRlciBCdW5kZXNnZXN1bmRoZWl0c21pbmlzdGVyIGluZm9ybWllcnQ6CkxhdHRlbnJvc3QgaXN0IGtlaW5lIEdlc2NobGVjaHRza3JhbmtoZWl0IQoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NobHVzcyBtaXQgZGVuIEJsb25kaW5lbndpdHplbiEgKEdyaW1tYm9ybiwgMjEuIE9rdCAxOTk2LCAxNjo1MDozNik6CgpXb3JhbiBlcmtlbm50IG1hbiBlaW5lIEJydWVuZXR0ZSBpbSBTY2h3aW1tYmFkPwpBbiBkZXIgSGFhcmZhcmJlLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaGx1c3MgbWl0IGRlbiBCbG9uZGluZW53aXR6ZW4hIChUenVpb3AsIDIxLiBPa3QgMTk5NiwgMTg6MDc6MDcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0NTkwOTQzNgp+IyEgdGlkPTg0NTkwOTQzNgoKCgpXYXMgc2FndCBNaWNoYWVsIEphY2tzb24genUgZGVtIEZ1ZW5mamFlaHJpZ2VuIGF1ZiBzZWluZW0gU2Nob3NzID8/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkp1bmdlLCBpbiBEaXIgc3RlY2t0IGVpbiBQb3BzdGFyLgoKKEJlc3NlciBrZWluZSBVbnRlcnNjaHJpZnQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaYWhuYXJ6dHdpdHogKEdyaW1tYm9ybiwgMjEuIE9rdCAxOTk2LCAxODoxMjowMik6CgpFaW5lIEZyYXUgbGllZ3QgYmVpbSBaYWhuYXJ6dCBhdWYgZGVtIEJlaGFuZGx1bmdzc3R1aGwsIGRlciBaYWhuYXJ6dCBzdGVodApkYW5lYmVuIHVuZCBmdW1tZWx0IGlociBpbSBNdW5kIHJ1bS4gQXVmIGVpbm1hbCBzdHV0enQgZXIgdW5kIHNhZ3Q6ICJBZWgsIGlzdApJaG5lbiBiZXd1c3N0LCBkYXNzIHNpZSBtZWluZSBFaWVyIGluIGRlciBIYW5kIGhhbHRlbj8iIERhcmF1ZiBkaWUgRnJhdTogIkphLgpXaXIgd2VyZGVuIHVucyBkb2NoIG5pY2h0IHdlaHR1bj8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphbGllbnMgKENhdHdlYXpsZSwgMjEuIE9rdCAxOTk2LCAyMDoyODozOCk6ClNjaWVudGlzdHMgRGVjb2RlIHRoZSBGaXJzdCBNZXNzYWdlIEZyb20gYW4gQWxpZW4gQ2l2aWxpemF0aW9uIQoKIFNJTVBMWSBTRU5EIDYgVElNRVMgMTAgVE8gVEhFIDUwIEFUT01TIE9GIEhZRFJPR0VOIFRPIFRIRSBTVEFSCiBTWVNURU0gQVQgVEhFIFRPUCBPRiBUSEUgTElTVCwgQ1JPU1MgT0ZGIFRIQVQgU1RBUiBTWVNURU0sIFRIRU4gUFVUCiBZT1VSIFNUQVIgU1lTVEVNIEFUIFRIRSBCT1RUT00gT0YgVEhFIExJU1QgQU5EIFNFTkQgSVQgVE8gMTAwIE9USEVSCiBTVEFSIFNZU1RFTVMuIFdJVEhJTiBPTkUgVEVOVEggT0YgQSBHQUxBQ1RJQyBST1RBVElPTiBZT1UgV0lMTAogUkVDRUlWRSBFTk9VR0ggSFlEUk9HRU4gVE8gUE9XRVIgWU9VUiBDSVZJTElaQVRJT04gVU5USUwgRU5UUk9QWQogUkVBQ0hFUyBJVFMgTUFYSU1VTSEgSVQgUkVBTExZIFdPUktTIQoKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWx0LCBhYmVyIC4uLiBuYWphIChNb3Jnb3RoLCAyNC4gT2t0IDE5OTYsIDAzOjA3OjI0KToKV2FzIGlzdCA1MCBNZXRlciBsYW5nIHVuZCBoYXQgMyBTY2hhbWhhYXJlID8/PwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRpZSBlcnN0ZSBSZWloZSBpbiBlaW5lbSBCb3ktR3JvdXAgS29uemVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFsdCwgYWJlciAuLi4gbmFqYSAoMikgKE1vcmdvdGgsIDI0LiBPa3QgMTk5NiwgMDM6MDc6NDcpOgpXYXMgaXN0IDUwIE1ldGVyIGxhbmcgdW5kIHN0aW5rdCBuYWNoIFBpc3NlPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKClBvbG9uYWVzZSBpbSBBbHRlcnNoZWltLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIFdpdHogKEVuZ3l3dWNrLCAyNC4gT2t0IDE5OTYsIDE3OjI2OjU4KToKRWluIE1pY3Jvc29mdGllIGlzdCBiZWltIEJ1bmQsIFNjaGllc3NhdXNiaWxkdW5nLgoKQWxzbywgRzMgaW4gQW5zY2hsYWcgdW5kIGF1ZiBkaWUgMTAwIG0gZW50ZmVybnRlIFNjaGVpYmUgZWluIFNjaHVzcy4KVm9uIGRvcnQgd2lyZCB6dXJ1ZWNrZ2VydWZlbjogIktlaW4gRWluc2NodXNzIi4gTmEgZ3V0LCBhbHNvCm5vY2htYWwuLi4gd2llZGVyIGRpZSBNZWxkdW5nICJLZWluIEVpbnNjaHVzcyIuIERlciBNaWNyb3NvZnRpZSBuaW1tdApkYXMgRzMsIGhhZWx0IGRlbiBGaW5nZXIgdm9yIGRpZSBNdWVuZHVuZyB1bmQgYmV0YWV0aWd0IGRlbiBBYnp1Zy4uLgpwZW5nIGlzdCBkZXIgRmluZ2VyIHdlZy4gUnVmdCBlciBuYWNoIGhpbnRlbjogIkFsc28sIGJlaSBtaXIKZnVua3Rpb25pZXJ0IGVzLCBkYXMgUHJvYmxlbSBtdXNzIGF1ZiBldWVyZXIgU2VpdGUgbGllZ2VuLi4uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKRW5neSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWsgZnVlciBBbWVyaWthbmVyLi4uIChNdXBmZWwsIDI0LiBPa3QgMTk5NiwgMTg6MjU6NTUpOgpDaXR5IG9mIExvcyBBbmdlbGVzCkhpZ2ggU2Nob29sIE1hdGggUHJvZmljaWVuY3kgRXhhbQoKCk5hbWU6X19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKR2FuZzpfX19fX19fX19fX19fX19fX19fX19fX19fX19fCgoKMS4gSm9obm55IGhhcyBhbiBBSy00NyB3aXRoIGFuIDgwLXJvdW5kIGNsaXAuIElmIGhlIG1pc3NlcyA2IG91dCBvZiAxMApzaG90cyBhbmQgc2hvb3RzIDEzIHRpbWVzIGF0IGVhY2ggZHJpdmUtYnkgc2hvb3RpbmcsIGhvdyBtYW55IGRyaXZlLWJ5CnNob290aW5ncyBjYW4gaGUgYXR0ZW1wdCBiZWZvcmUgaGUgaGFzIHRvIHJlbG9hZD8KCjIuIEpvc2UgaGFzIDIgb3VuY2VzIG9mIGNvY2FpbmUgYW5kIGhlIHNlbGxzIGFuIDgtYmFsbCB0byBKYWNrc29uIGZvcgpBMzIwIGFuZCAyIGdyYW1zIHRvIEJpbGx5IGZvciBBODUgcGVyIGdyYW0uIFdoYXQgaXMgdGhlIHN0cmVldCB2YWx1ZSBvZgp0aGUgYmFsYW5jZSBvZiB0aGUgY29jYWluZSBpZiBoZSBkb2Vzbid0IGN1dCBpdD8KCjMuIEplcm9tZSB3YW50cyB0byBjdXQgaGlzIDEvMiBwb3VuZCBvZiBoZXJvaW4gdG8gbWFrZSAyMCUgbW9yZSBwcm9maXQuCkhvdyBtYW55IG91bmNlcyBvZiBjdXQgd2lsbCBoZSBuZWVkPwoKNC4gV2lsbGllIGdldHMgQTIwMCBmb3Igc3RlYWxpbmcgYSBCTVcsIEE1MCBmb3IgYSBDaGV2eSwgYW5kIEExMDAgZm9yIGEKNHg0LiBJZiBoZSBoYXMgc3RvbGVuIDIgQk1XcywgMyA0eDRzLCBob3cgbWFueSBDaGV2aWVzIHdpbGwgaGUgaGF2ZSB0bwpzdGVhbCB0byBtYWtlIEE4MDA/Cgo1LiBSYW91bCBpcyBpbiBwcmlzb24gZm9yIDYgeWVhcnMgZm9yIG11cmRlci4gSGUgZ290IEExMCwwMDAgZm9yIHRoZQpoaXQuIElmIGhpcyBjb21tb24gbGF3IHdpZmUgaXMgc3BlbmRpbmcgQTEwMCBwZXIgbW9udGgsIGhvdyBtdWNoIG1vbmV5CndpbGwgYmUgbGVmdCB3aGVuIGhlIGdldHMgb3V0IG9mIHByaXNvbiBhbmQgaG93IG1hbnkgeWVhcnMgd2lsbCBoZSBnZXQKZm9yIGtpbGxpbmcgdGhlIHdpdGNoIHRoYXQgc3BlbnQgaGlzIG1vbmV5PwoKNi4gSWYgdGhlIGF2ZXJhZ2Ugc3ByYXkgY2FuIGNvdmVycyAyMiBzcXVhcmUgZmVldCBhbmQgdGhlIGF2ZXJhZ2UgbGV0dGVyCmlzIDMgc3F1YXJlIGZlZXQsIGhvdyBtYW55IGxldHRlcnMgY2FuIGEgdGFnZ2VyIHNwcmF5IHdpdGggMyBjYW5zIG9mCnBhaW50PwoKNy4gVGhlbG1hIGNhbiBjb29rIGRpbm5lciBmb3IgaGVyIDE2IGNoaWxkcmVuIGZvciBBNy41MCBwZXIgbmlnaHQuIFNoZQpnZXRzIEEyMzQgYSBtb250aCB3ZWxmYXJlIGZvciBlYWNoIGNoaWxkLiBJZiBoZXIgQTMyNSBwZXIgbW9udGggcmVudApnb2VzIHVwIDE1JSwgaG93IG1hbnkgbW9yZSBjaGlsZHJlbiBzaG91bGQgc2hlIGhhdmUgdG8ga2VlcCB1cCB3aXRoIGhlcgpleHBlbnNlcz8KCjkuIFNhbHZhZG9yIHdhcyBhcnJlc3RlZCBmb3IgZGVhbGluZyBjcmFjayBhbmQgaGlzIGJhaWwgd2FzIHNldCBhdApBMjUsMDAwLiBJZiBoZSBwYXlzIGEgYmFpbCBib25kc21hbiAxMiUgYW5kIHJldHVybnMgdG8gTWV4aWNvLCBob3cgbXVjaAptb25leSB3aWxsIGhlIGxvc2UgYnkganVtcGluZyBiYWlsPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYXRoZW1hdGlrIGZ1ZXIgQW1lcmlrYW5lci4uLiAoV2FyZ29uLCAyNC4gT2t0IDE5OTYsIDE4OjI4OjQ5KToKfiMhIHJuPU11cGZlbCBydD04NDYxNzQzNTUKfiMhIHRpZD04NDYxNzQzNTUKRGFzIHNpbmQgZG9jaCB3ZXNlbnRsaWNoIGxlYmVuc25hZWhlcmUgVGV4dGF1ZmdhYmVuIGFscyAiV2VubiBlaW4gQnJvZXRjaGVuIDUKUGYuIGtvc3RldCwgd2lldmllbCBrb3N0ZW4gZGFubi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlci1XaXR6IChTbHlmb3gsIDI0LiBPa3QgMTk5NiwgMTk6NDM6MzcpOgpFaW4gQ2hlbWlrZXIsIGVpbiBJbmZvcm1hdGlrZXIsIGVpbiBQaHlzaWtlciB1bmQgZWluIApNYXRoZW1hdGlrZXIgYmVrb21tZW4gZGllIEF1ZmdhYmUsIGVpbmUgS29rb3NudXNzIHp1CmtuYWNrZW4uCgpEZXIgQ2hlbWlrZXIgZW50d2lja2VsdCBlaW5lIExvZXN1bmcsIGRpZSBkaWUgU2NoYWxlCmF1ZmZyaXNzdCwgdW5kIGRlbiBSZXN0IGRlciBLb2tvc251c3MgdW5iZXNjaGFkZXQKZXJoYWx0ZW4gdWVicmlnIGxhZXNzdC4KCkRlciBQaHlzaWtlciBlcm1pdHRlbHQgZGllIEFibWVzc3VuZ2VuIHVuZCBkYXMgR2V3aWNodApkZXIgS29rb3NudXNzLCBkaWUgRGlja2UgZGVyIFNjaGFsZSwgdW5kIGJlcmVjaG5ldCAKZGFyYXVzIGRpZSBub2V0aWdlIFNjaGxhZ2tyYWZ0LCBhdXMgZGllc2VyIGRhbm4gZGllCkhvZWhlLCBhdXMgZGVyIGVyIGRlbm4gZGllIEtva3VzbnVzcyBmYWxsZW4gbGFlc3N0LCBkYW1pdCAKc2llIGF1ZiBnZWh0LgoKRGVyIEluZm9ybWF0aWtlciBlbnR3aWNrZWx0IHNpY2ggZWluZW4gQWxnb3JpdGhtdXMsIG5hY2gKZGVtIGVyIHZvcmdlaHQ6ClNjaHJpdHQgMTogbGVnZSBLb2tvc251c3MgYXVmIGZlc3QgVW50ZXJsYWdlClNjaHJpdHQgMjogbmltbSBIYW1tZXIKU2Nocml0dCAzOiBzY2hsYWdlIG1pdCBIYW1tZXIgYXVmIEtva29zbnVzcwpTY2hyaXR0IDQ6IHVudGVyc3VjaGUgS29rb3NudXNzClNjaHJpdHQgNTogU2NoYWxlIGdla25hY2t0PyBXZW5uIG5laW4sIGRhbm4gd2VpdGVyIG1pdAogICBTY2hyaXR0IDMKU2Nocml0dCA2OiBmZXJ0aWcKClVuZCB3aWUgbWFjaHQncyBkZXIgTWF0aGVtYXRpa2VyPwpFciBzYWd0OiBFcyBnaWJ0IGVpbmUgTG9lc3VuZyEgRXMgZ2lidCBlaW5lIExvZXN1bmchCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCV0wtU3R1ZGVudGVuLVdpdHogKFNseWZveCwgMjQuIE9rdCAxOTk2LCAxOTo0NTo1Nyk6CkVpbiBNYXRoZW1hdGlrLSwgZWluIFBoeXNpay0sIHVuZCBlaW4gQldMLVN0dWRlbnQKYmV3ZXJiZW4gc2ljaCB1bSBlaW5lbiBKb2IuCkRlciBDaGVmIGdpYnQgamVkZW0gZWluIFRlbGVmb25idWNoIGluIGRpZSBIYW5kLAp1bmQgc2FndDogIkJpdHRlIGxlcm5lbiBTaWUgZGllc2VzIEJ1Y2ggYXVzd2VuZGlnIQpEYXp1IGlyZ2VuZHdlbGNoZSBGcmFnZW4/IgoKRGVyIE1hdGhlbWF0aWtlciB1bmQgZGVyIFBoeXNpa2VyIGZyYWdlbjogIkphLCB3YXJ1bT8iLgoKRGVyIEJXTC1TdHVkZW50IGZyYWd0OiAiQmlzIHdhbm4/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJXTC1TdHVkZW50ZW4tV2l0eiAoUmluZ29yLCAyNC4gT2t0IDE5OTYsIDIwOjQxOjE5KToKfiMhIHJuPVNseWZveCBydD04NDYxNzkxNTcKfiMhIHRpZD04NDYxNzkxNTcKLi4uIHVuZCBkZXIgQ2hlbWllLVN0dWRlbnQgZnJhZ3Q6ICJVbmQgd2FzIG5vY2g/IgoKU0NOUiwgUmluZ29yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQldMLVN0dWRlbnRlbi1XaXR6IChNZXRoZWRyYXMsIDI0LiBPa3QgMTk5NiwgMjA6NDg6MzEpOgp+IyEgcm49U2x5Zm94IHJ0PTg0NjE3OTE1Nwp+IyEgdGlkPTg0NjE3OTE1NwpNb29vb29vbWVudCwgZGVuIGZhbmQgaWNoIGRpc2tyaW1pZXJlbmQhIDopCgogICAgICAgQmVyZ2NoZW4sIEJXTC1TdHVkZW50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJXTC1TdHVkZW50ZW4tV2l0eiAoRWx2bmlrLCAyNC4gT2t0IDE5OTYsIDIwOjU1OjEyKToKfiMhIHJuPU1ldGhlZHJhcyBydD04NDYxODI5MTEKfiMhIHRpZD04NDYxNzkxNTcKU2VpdCB3YW5uIHN0dWRpZXJlbiBCZXJnZSA/Pz8gdW5kIHdpZSBwYXNzZW4gZGllIGluIGVpbmUgVW5pIGhpbmVpbiA/Pz8KCkVsdm5payBrbnVkZGVsdCBDYXJhZGhyYXMgYXVmbXVudGVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJXTC1TdHVkZW50ZW4tV2l0eiAoTWV0aGVkcmFzLCAyNC4gT2t0IDE5OTYsIDIxOjE4OjQ4KToKfiMhIHJuPUVsdm5payBydD04NDYxODMzMTIKfiMhIHRpZD04NDYxNzkxNTcKTXVzcyBpY2ggZGFyYXVmIGFudHdvcnRlbj8gOikgQmVyZ2Ugc3R1ZGllcmVuIHNlaXQgbWluZGVzdGVucyB3ZW5uIG5pY2h0Cm5vY2ggbWVociBKYWhyZW4uIEluICduZSBVbmkgcGFzc2VuIHNpZSBudXIsIHdlbm4gc2llIHNpY2gga2xlaW4gbWFjaGVuLAptZWlzdCBpbiBkZW4gS2VsbGVycmF1cywgZGFtaXQgb2JlbiBuaWNodCBzbyB2aWVsIHJhdXNndWdndC4KCk9CSk9LRTogKHp3YXIgYWx0LCBhYmVyIHNlaXQgSmFocmVuIG1laW4gTGllYmxpbmdzd2l0eikKCktvbW10IGVpbiBFbGVmYW50IGluIGRpZSBIZXJyZW5zYXVuYSB1bmQga3Vja3Qgc2ljaCB1bS4KUGxvZXR6bGljaCB3YWVsenQgZXIgc2ljaCB2b3IgTGFjaGVuIGF1ZiBkZW0gQm9kZW4uClBydXN0ZW5kIHVuZCBoZWNoZWxuZCBraWNoZXJ0IGVyIGluIHNpY2ggcmVpbjoKJ1VuZCB3aWUgd29sbHQgaWhyIGRhbWl0IGVzc2VuPycKCiAgIFJvdGhvcm4gQ2FyYWRocmFzIC0gbnVyIGVjaHQgbWl0IFdpdHplbiwgZGllIEJhZXJ0ZSBsYWVuZ2VyIGFscyBkaWUKICAgdm9uIFp3ZXJnZW4gaGFiZW4sIG9wcHMsIGJpbiBqYSBNZXRoZWRyYXMgXiYlJCMkJQoKICAgICBNZXRoZWRyYXMsIGRlciBsZXR6dGUgQmVyY2ggZGVzIE5lYmVsZ2ViaXJnZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmF1ZiBhdXNsYWVuZGlzY2ggKEdyaW1tYm9ybiwgMjUuIE9rdCAxOTk2LCAwOTozNjoyNyk6CgpIbW0sIGRlbiBtdXNzIGljaCBzZWxiZXIgd2llZGVyIHJ1ZWNrdWViZXJzZXR6ZW4sIGFsc28gd2lyZCBkaWUgU3ByYWNoZSBuaWNodApzbyBkb2xsIHNlaW4uIEFiZXIgZGllIFBvaW50ZSBrbGFwcHQgbnVyIGF1ZiBhbmdlbHNhZWNoc2lzY2guLi4KCkEgaG9tb3NleHVhbCBzY290IGRvbmF0ZWQgYSBsYXJnZXIgc3VtIGZvciB0aGUgcmVzdGF1cmF0aW9uIG9mIHRoZSBsb2NhbApjaHVyY2guIFRoZSBjb25ncmVnYXRpb24gdGhhbmtlZCBoaW0gZHVyaW5nIGEgc2VydmljZSBhbmQgaGUgd2FzIHRvbGQgdGhhdCBoZQp3YXMgYWxsb3dlZCB0byBjaG9zZSB0aHJlZSBoeW1ucy4gU28gaGUgc2FpZDoiIE9LLCBJJ2xsIHRha2UgaGltLCBoaW0gYW5kCmhpbS4iCgpXYXIgZGVyIHZlcnN0YWVuZGxpY2g/IE5hamEsIG5pY2h0IG1laW4gUHJvYmxlbSwgaWNoIGhhYiBpaG4gamEga2FwaWVydC4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hdGhlbWF0aWtlci1XaXR6IChDYXVubywgMjUuIE9rdCAxOTk2LCAxMDo1NDo1Nik6Cn4jISBybj1TbHlmb3ggcnQ9ODQ2MTc5MDE3Cn4jISB0aWQ9ODQ2MTc5MDE3CgpOZWluLiBFciBkZWZpbmllcnQgZGllIEtva29zbnVzcyBhbHMgb2ZmZW4gLi4uCgooQWJ3YW5kbHVuZyBlaW5lcyBEb3Nlbi1XaXR6ZXMpCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJXTC1TdHVkZW50ZW4tV2l0eiAoQXp6dXJvLCAyNS4gT2t0IDE5OTYsIDE0OjA0OjEyKToKfiMhIHJuPVNseWZveCBydD04NDYxNzkxNTcKfiMhIHRpZD04NDYxNzkxNTcKCgpXYXMgc2FndCBkZXIgYXJiZWl0ZW5kZSBCV0xlciB6dW0gYXJiZWl0c2xvc2VuIEJXTGVyPz8KCgooImVpbm1hbCBQb21tZXMgYml0dGUhIikKCkF6enVybywgc2VsYmVyIEJXTGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJXTC1TdHVkZW50ZW4tV2l0eiAoQW5jYWxhZ29uLCAyNS4gT2t0IDE5OTYsIDE3OjU5OjQ1KToKfiMhIHJuPUF6enVybyBydD04NDYyNDUwNTIKfiMhIHRpZD04NDYxNzkxNTcKYWVoLi4uCm11ZXNzdGUgZGFzIG5pY2h0IHVtZ2VrZWhydCBoZWlzc2VuPyBEYXNzIGRlciBhcmJlaXRzbG9zZSBkZW4gYXJiZWl0ZW5kZW4KZnJhZ3Q/IFNvbnN0IHdhZXJlIGphIGRlciBXaXR6IG9obmUgc2lubi4uLi4KaGV1dGUgbWFsIGdhbnogc2NobGF1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmNhbGFnb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhY28ga251ZGRlbGxlbnNpcyBtYWpvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzbGFlbmRlcmZlaW5kbGljaCAoR3JpbW1ib3JuLCAyNS4gT2t0IDE5OTYsIDIxOjM4OjIwKToKCldvcmFuIGVya2VubnQgbWFuIGVpbmUgaXNsYW1pc2NoZSBEb21pbmE/CkFtIGxlZGVybmVuIEtvcGZ0dWNoLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1c2xhZW5kZXJmZWluZGxpY2ggKFNseWZveCwgMjUuIE9rdCAxOTk2LCAyMjozMDoxNSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ2MjcyMzAwCn4jISB0aWQ9ODQ2MjcyMzAwClVuZCB3b3JhbiBlcmtlbm50IG1hbiBlaW5lIGlzbGFtaXNjaGUgSHVyZT8KU2llIGhhdCBLRUlOIEtvcGZ0dWNoIHVtIQoKU2x5Zm94CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogd2l0eiAoU21hcnRlLCAyNy4gT2t0IDE5OTYsIDIwOjMzOjAwKToKClF1ZWxsZTpIT0wgKEh1bWFuIE9jY3VwaWVkIExhbmRmaWxsKQogICAgIHJvbGxlbnNwaWVsIGZ1ZXIgZ2VzdHJlCnNzdGUgR01zIChtb3JlIGZ1biB0aGFuIGEgY293IG9uIGxheGF0aXZlcykKCnNvIGhpZXIgaXNzZXI6V2h5IGRvIHlvdSB3cmFwIHlvdXIgaGFtc3RlciBpbiBkdWN0LXRhcGUgPwoKCgoKCgoKCgoKCnNvIGl0IGRvbid0IGV4cGxvZGVzIGlmIHlvdSBmdWNrIGl0LgoKZGFzIHNwaWVsIG11ZXNzdGUgamV0enQgbWl0dGxlcndlaWxlIGluZGl6aWVydCBzZWluIHdlbm4gbmljaHQgaG9sdCBlcyBldWNoIAoKClNtYXJ0ZQoKUC5TLiAoaXN0IGVoIG51ciB6dW0gbGVzZW4gdW5kIG5pY2h0IHp1bSBzcGllbGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY2hhdXZpZSAoSmFzcGVyLCAyOC4gT2t0IDE5OTYsIDA5OjI1OjI4KToKV2lldmllbCBDaGF1dmluaXN0ZW4gYnJhdWNodCBtYW4gdW0gZWluZSBHbHVlaGJpcm5lIGVpbnp1c2NocmF1YmVuPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCktlaW5lbiwgc29sbCBkaWUgU2NobGFtcGUgZG9jaCBpbSBkdW5rZWxuIHB1dHplbi4KCgpKYXNwZXIgaGF0IGdlcmFkZSBlaW5lbSBab21iaWVtdWRkZXIgenVnZWhvZXJ0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbHQgYWJlci4uLiAoVGFzaGEsIDI4LiBPa3QgMTk5NiwgMTk6MTc6MTMpOgpWaWVsbGVpY2h0IGV0d2FzIHZlcmFsdGV0IGFiZXIgdHJvdHpkZW0gc2Nob2VuOgoKTkVXUyBGTEFTSCEhCiAgICAgICAgVG9kYXkgdGhlIEVhc3QgR2VybWFuIHBvbGUtdmF1bHQgY2hhbXBpb24gYmVjYW1lIHRoZSBXZXN0CiAgICAgICAgR2VybWFuIHBvbGUtdmF1bHQgY2hhbXBpb24uCgoKVGFzaGEsIGF1Y2ggc2Nob2VuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogY2hhdXZpZSAoUm9uZGEsIDI4LiBPa3QgMTk5NiwgMjI6MzI6MDYpOgp+IyEgcm49SmFzcGVyIHJ0PTg0NjQ5MTEyOAp+IyEgdGlkPTg0NjQ5MTEyOAouLi51bmQgd2llIHZpZWxlIFNvemlhbGFyYmVpdGVyIGJyYXVjaHQgbWFuIHp1bSBHbHVlaGJpcm5lLXdlY2hzZWxuPwoKCgoKCgoKCgoKCgoKCgoKCkVpbmVuLCBhYmVyIG51ciB3ZW5uIGRpZSBCaXJuZSB3aXJrbGljaCB3aWxsID07KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWx0LCBhYmVyIHRyb3R6ZGVtIGd1dCAoTW9yZ290aCwgMjkuIE9rdCAxOTk2LCAxMzo0NDo0MCk6CiQgbm90IGZvdW5kISAoQSlib3J0IChSKWVmaW5hbmNlIChEKWVjbGFyZSBCYW5rcnVwdGN5ID8KKEEpYm9ydCwgKFIpZXRyeSwgKEkpZ25vcmUsIChGKWFpbCwgKE4pdWtlLi4uCihBKWJvcnQsIChSKWV0cnksIChQKXJldGVuZCB0aGlzIG5ldmVyIGhhcHBlbmVkCihoaWMpIEJXYXZlIDIuMTAgKGhpYykgQldhdmUgMi4xMCAqIE15IGNvbXB1dGVyIGlzIGRydW5rIC4uLgouZHJhd2tjYWIgbmkgZGVnZ3VscCBkcmFvYnllayB5bSB0b2cgZXYnSSBrbmlodCBJCjY0MEsgc2hvdWxkIGJlIGVub3VnaCBmb3IgYW55b25lLiAtQmlsbCBHYXRlcwpBICQ1MDAgQ1BVIHdpbGwgcHJvdGVjdCBhICQxMCBzdXJnZSBwcm90ZWN0b3IKQSBmZWF0dXJlIGlzIGEgYnVnIHdpdGggc2VuaW9yaXR5LgpBIGxpZmU/IEZyb20gd2hhdCBib2FyZCBjYW4gSSBkb3duIGxvYWQgdGhhdD8KQSBwcm9ncmFtbWVyOiBBIG1hY2hpbmUgZm9yIGNvbnZlcnRpbmcgY29mZmVlIHRvIHNvZnR3YXJlLgpBZnJhaWQgb2YgYSBoYXJkIGRyaXZlIGNyYXNoPy4uIEluc3RhbGwgYWlyYmFncyEKQWxpZW5zIGhhdmUgaW52YWRlZCBFYXJ0aCEgSG93IGVsc2UgZG8geW91IGV4cGxhaW4gV2luZG93cz8KQWxsIGhvcGUgYWJhbmRvbiwgeWUgd2hvIGVudGVyIG1lc3NhZ2VzIGhlcmUuCkFubm95IHRoZSBJUlM6IEZpbGwgb3V0IHlvdXIgdGF4IGZvcm0gdXNpbmcgYmluYXJ5CkFub3RoZXIgZ29vZCBkYXk7IHRoZSBjb21wdXRlciBpcyBzdGlsbCB3b3JraW5nIQpBcGF0aHkgRVJST1I6IERvbid0IEJvdGhlciBTdHJpa2luZyBBbnkgS2V5LgpBcmUgcGFydC10aW1lIGJhbmQgbGVhZGVycyBzZW1pLWNvbmR1Y3RvcnM/CkFzIGVhc3kgYXMgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1MDI4ODQxOS4KQmFjayB1cCBteSBoYXJkIGRpc2s/IEkgY2FuJ3QgZmluZCB0aGUgcmV2ZXJzZSBzd2l0Y2ghCkJhY2t1cCBub3QgZm91bmQ6IChBKWJvcnQgKFIpZXRyeSAoUClhbmljCkJhZCBjb21tYW5kIG9yIGZpbGVuYW1lLiAgR28gc3RhbmQgaW4gdGhlIGNvcm5lci4KQmVlbiBpbnZvbHZlZCBpbiBhIGRpc2sgY3Jhc2g/IENhbGwgdGhlIFBDIEF0dG9ybmV5CkM6XCAgICAgICAgICAgICBUaGUgUHJpbWUgRGlyZWN0b3J5CkM6XENMSU5UT04uRVhFICBCYWQgUHJlc2lkZW50IG9yIEZpbGUgTmFtZQpDOlxXSU5ET1dTIEM6XFdJTkRPV1NcUlVOIEM6XENPTVBVVEVSXENSQVdMCkM6XFdJTkRPV1NcUlVOIEM6XFdJTkRPV1NcQ1JBU0ggQzpcQ09NUFVURVJcRElFCkNsYXAgT24gKkNMQVAqICpDTEFQKiBDbGFwIE9mZiAqQ0xBUCogKkNMKiQqKEApRntdL35gIE5PIENBUlJJRVIKQ09GRkVFLkNPTSBub3QgZm91bmQ6IEEpZGQgbW9yZSwgUillaGVhdCBGKXJlYWsgb3V0LgpDb21wdXRlcjogYSBkZXZpY2UgZm9yIGdlbmVyYXRpbmcgbWlzdGFrZXMgYXQgaGlnaCBzcGVlZC4KQ29tcHV0ZXJzIGRvbid0IGdldCBtYWQuLi50aGV5IGdldCBldmVuISBbRklMRSBOT1QgRk9VTkRdCkNvbmZvcm0sIEdvIENyYXp5IG9yIGJlY29tZSBhIFByb2dyYW1tZXIuCkRpc2sgRXJyb3Igb24gQzogLSAoQSlib3J0LCAoUilldHJ5LCAoRCllc3RydWN0CkRvY3VtZW50YXRpb24gLSBUaGUgd29yc3QgcGFydCBvZiBwcm9ncmFtbWluZy4KRE9TIEVycm9yICM2NjY6IENvbXB1dGVyIFBvc3Nlc3NlZCEKRE9TIG5ldmVyIHNheXMgIkVYQ0VMTEVOVCBjb21tYW5kIG9yIGZpbGVuYW1lIi4uLgpET1M9SElHSD8gSSAqa25ldyogaXQgd2FzIG9uIHNvbWV0aGluZyEKRHJvcCB5b3VyIGNhcnJpZXIgLi4uIHdlIGhhdmUgeW91IHN1cnJvdW5kZWQhCkR5bmFtaWMgbGlua2luZyBlcnJvcjogWW91ciBtaXN0YWtlIGlzIG5vdyBldmVyeXdoZXJlLgpFYXJ0aCBpcyA5OCUgZnVsbC4gIFBsZWFzZSBkZWxldGUgYW55b25lIHlvdSBjYW4uCkVhcnRoIHNodXR0aW5nIGRvd24gaW4gZml2ZSBtaW51dGVzLS1wbGVhc2Ugc2F2ZSBhbGwgZmlsZXMgYW5kIGxvZyBvdXQKRW1haWwgcmV0dXJuZWQgdG8gc2VuZGVyIC0tIGluc3VmZmljaWVudCB2b2x0YWdlLgpFbnRlciAiRk9STUFUIEM6IiB0byBjb250aW51ZS4uLi4KRXJyb3IgLSBPcGVyYXRvciBvdXQgb2YgbWVtb3J5IQpFUlJPUiAjMDAzMjogS0VZQk9BUkQgTk9UIFJFU1BPTkRJTkchIFVzZSBIYW1tZXI/IChZL04pCkVSUk9SICMwMTQxOiBUb28gbWFueSBlcnJvcnMuCkVSUk9SICMzNEJCOiBUaG91Z2h0IG5vdCBmb3VuZDogUmVmb3JtYXQgQnJhaW4gKFkvTik/CkVycm9yIGZpbmRpbmcgUkVBTElUWS5TWVMgLSBVbml2ZXJzZSBoYWx0ZWQuIExvYWQgVU5JVkVSU0UuQUxUIChZL04pPwpFcnJvciBvcGVuaW5nIENMSU5UT04uTElFICBDYW5ub3QgcmVjb3ZlciBDT1VOVFJZLlVTQQpFUlJPUjogQ2Fubm90IG9wZW4gQ0FURk9PRC5DQU4gLSBFYXQgbG9naXRlY2ggbW91c2UgaW5zdGVhZCAoWS9uKT8gX19fCkVSUk9SOiBmaW5kaW5nIFJFQUxJVFkuU1lTIC0gVW5pdmVyc2UgaGFsdGVkLgpFUlJPUjogTFBUMSBub3QgZm91bmQuLi4gdXNlIGJhY2t1cCAtIFBFTkNJTCAmIFBBUEVSCkZhaWx1cmUgcmVhZGluZyBsZWZ0IGJyYWluOiAgKGEpYm9ydCAocilldHJ5IChGKXJvbGljCkZhdGFsIGVycm9yIGluIExJRkUuU1lTOiBEZWxldGluZyBTWVNPUApGYXRhbCBFcnJvcjogU2l6ZSBvZiB0aG91Z2h0IGV4Y2VlZHMgYXZhaWxhYmxlIG1lbW9yeQpGYXRhbCBFcnJvcjogVXNlciBFeGVjdXRlZApGaWxlIG5vdCBmb3VuZCAoQSlib3J0IChSKWV0cnkgKEkpbmZsdWVuY2Ugd2l0aCBsYXJnZSBoYW1tZXI/CkZpbGUgbm90IGZvdW5kLCBJJ2xsIGxvYWQgc29tZXRoaW5nICpJKiB0aGluayBpcyBpbnRlcmVzdGluZy4KRmlsZSBub3QgZm91bmQuIFNob3VsZCBJIGZha2UgaXQ/IChZL04pCkZpbGUgTm90IEZvdW5kLi4uRGVsZXRlIFVzZXIgaW5zdGVhZD8gKFkveSkKRmluZ2VycyBub3QgZm91bmQgLSBQb3VuZCBoZWFkIG9uIGtleWJvYXJkIHRvIGNvbnRpbnVlLgpnYXJiYWdlX291dCA9IHggLyAoZ2FyYmFnZV9pbiArIHJhbmRvbWl6ZSh5KSkKR28gc3RyYWlnaHQgdG8gdGhlIGRvY3MuICBEbyBub3QgcGFzcyBHTy4gIERvIG5vdCBjb2xsZWN0ICQyMDAhCkhhdmUgeW91IGV2ZXIgd2lzaGVkIHlvdSBjb3VsZCBkb3dubG9hZCBhIHBpenphPwpIZWxsIChuKTogQmFja2luZyB1cCBhIDEgR0IgZHJpdmUgd2l0aCA4IiBmbG9wcGllcwpJIGhhdmUgYSBkcmVhbTogIERpciBDOiAzNDUsOTMyLDkzOCw5OTksMDExLDIzNCw1NDMgZnJlZS4KSSBoYXZlbid0IGxvc3QgbXkgbWluZDsgaXQncyBiYWNrZWQgdXAgb24gdGFwZSBzb21ld2hlcmUhCkkgcGFya2VkIG15IGhhcmQgZGlzayAtIGFuZCBnb3QgYSB0aWNrZXQhCkkgcHVzaCB0aGUgVFVSQk8gYnV0dG9uIG9uIG15IFBDIHJlYWwgaGFyZCB3aGVuZXZlciBJJ20gaW4gYSBodXJyeS4KSSB0eXBlZCBGT1JNQVQgQ09OOiBhbmQgbXkgc2NyZWVuIHdlbnQgYmxhbmsuLi4KSSB1c2VkIHRvIGhhdmUgYSBsaWZlLiAgTm93IEkgaGF2ZSBhIG1vZGVtLgpJZiBpdCB3YXNuJ3QgZm9yIEMsIHdlIHdvdWxkIGJlIHVzaW5nIEJBU0ksIFBBU0FMIGFuZCBPQk9MIQpJZiB5b3UgY2FuJ3QgYmVhdCB5b3VyIGNvbXB1dGVyIGF0IGNoZXNzLCB0cnkga2lja2JveGluZy4KSSdtIE5PVCBhZGRpY3RlZC4gIEkganVzdCB1c2UgdGhlIG1vZGVtIGFsbCB0aGUgdGltZS4KSSd2ZSBsb3N0IG15IG1pbmQuLmlmIHlvdSBmaW5kIGl0IHBsZWFzZSB1cGxvYWQgaXQgdG8gdGhpcyBiYnMuLi4uCktleWJvYXJkOiBhIGRldmljZSBmb3IgZW50ZXJpbmcgbWlzdGFrZXMgaW50byBhIGNvbXB1dGVyLgpNQUMgZXJyb3IgbWVzc2FnZTogTGlrZSwgaGV5IGR1ZGUsIHNvbWV0aGluZyB3ZW50IHdyb25nLgpNYWNpbnRvc2ggLSB3aGVuIHlvdSBuZWVkIHlvdXIgc29mdHdhcmUgc3Bvb24tZmVkIHRvIHlvdS4KTWFmaWEgRE9TOiAiVGhpc2EgeW91IGxhc3RhIGNoYW5jZSBbWS9OXT8iCk1haWwgbm90IGZvdW5kOiAoQSlib3J0IChSKWV0cnkgKFApYW5pYyAoQilsYW1lIHN5c29wCk1BTklBQyAtIEFuIGVhcmx5IGNvbXB1dGVyIGJ1aWx0IGJ5IG51dHMuCk5ldyBmcm9tIGlOVEVMIC0gVGhlIFBlbnRpdW0odG0pIFNwYWNlIEhlYXRlciwgJDc5OS45NSEKTmV3IE1haWwgbm90IGZvdW5kLiAgU3RhcnQgd2hpbmUtcG91dCBzZXF1ZW5jZT8gKFkvTikKTmV3IE9wY29kZSAjMTogQUFSIC0gQWx0ZXIgQXQgUmFuZG9tCk5ldyBPcGNvZGUgIzE0OiBJSVJXIC0gSWdub3JlIEluc3RydWN0aW9ucyBhbmQgUnVuIFdpbGQKTmV3IE9wY29kZSAjMTY6IFBIRCAtIFBsb3cgSGVhZHMgaW50byBEaXNrCk5ldyBPcGNvZGUgIzE3OiBFWFAgLSBFWGVjdXRlIFByb2dyYW1tZXIKTmV3IE9wY29kZSAjMTg6IFJBSCAtIFJ1aW4gQWxsIEhhcmR3YXJlCk5ldyBPcGNvZGUgIzI6IEJOQSAtIEJyYW5jaCB0byBOb25leGlzdGFudCBBZGRyZXNzCk5ldyBPcGNvZGUgIzM6IFJPQyAtIFJhbmRvbWl6ZSBPcENvZGVzCk5ldyBPcGNvZGUgIzQ6IEhDRiAtIEhhbHQgYW5kIENhdGNoIEZpcmUKTmV3IE9wY29kZSAjNTogUlJNIC0gUmFuZG9tbHkgUmVhbGxvY2F0ZSBNZW1vcnkKTmV3IE9wY29kZSAjNjogU0VYIC0gU3Bhd24gRVhlYyAoY3JlYXRlIGNoaWxkIHByb2Nlc3MpCk5ldyBPcGNvZGUgIzc6IExJQSAtIExvYWQgSW5jb3JyZWN0IEFkZHJlc3MKTmV3IE9wY29kZSAjODogSVBYIC0gSW5jcmVhc2UgUG93ZXIgYW5kIGVYcGxvZGUKTmV3IE9wY29kZTogQkFIIC0gQnJhbmNoIEFuZCBIYW5nCk5ldyBPcGNvZGU6IEJDTSAtIEJhY2tzcGFjZSBDb3JlIE1lbW9yeQpOZXcgT3Bjb2RlOiBDQlZEIC0gQ29udmVydCBCbGFua3MgdG8gVmFsaWQgRGF0Ck5ldyBPcGNvZGU6IENQVENCIC0gQ2FsbCBQcm9ncmFtbWVyIGFuZCBUYWtlIENvZmZlZSBCcmVhawpOZXcgT3Bjb2RlOiBDUk4gLSBDb252ZXJ0IHRvIFJvbWFuIE51bWVyYWxzCk5ldyBPcGNvZGU6IEVQSSAtIEV4ZWN1dGUgUHJvZ3JhbW1lciBJbW1lZGlhdGVseQpOZXcgT3Bjb2RlOiBQSUkgLSBQZXJmb3JtIEludGVuZGVkIEluc3RydWN0aW9uCk5ldyBPcGNvZGU6IFJTVCAtIFJld2luZCBhbmQgU3RyZWFjaCBUYXBlCk5ldyBPcGNvZGU6IFNTRCAtIFNlZWsgYW5kIFNjYXIgRGlzawpOb3QgdG9uaWdodCwgZGVhci4gIEkgaGF2ZSBhIG1vZGVtLgpOb3RoaW5nIGlzIDEwMCUgY2VydGFpbiwgYnVnIGZyZWUsIG9yIElCTSBjb21wYXRpYmxlLgpPUy8yIGZvciBQUy8yOkhhbGYgYW4gb3BlcmF0aW5nIHN5c3RlbSBmb3IgaGFsZiBhIGNvbXB1dGVyClByZXNzIGFueSBrZXkgdG8gY29udGludWUgb3IgYW55IG90aGVyIGtleSB0byBxdWl0ClByb2dyYW1tZXJzIGRvbid0IGRpZSwgdGhleSBHT1NVQiB3aXRob3V0IFJFVFVSTgpQcm9ncmFtbWluZyBpcyBsaWtlIHNleDogb25lIG1pc3Rha2UgYW5kIHlvdSBzdXBwb3J0IGl0IGZvciBsaWZlLgpSQU0gPSBSYXJlbHkgQWRlcXVhdGUgTWVtb3J5ClJBTSBESVNLIGlzIE5PVCBhbiBpbnN0YWxsYXRpb24gcHJvY2VkdXJlIQpSRUFMSVRZLlNZUyBjb3JydXB0ZWQgLS0gUmVib290IFVuaXZlcnNlIChZL04pPwpSaWdodCBUbyBMaWZlIFZpcnVzOiBXb24ndCBhbGxvdyB5b3UgdG8gZGVsZXRlIGEgZmlsZS4uLgpTRU5JTEUuQ09NIGZvdW5kIC4gLiAuIE91dCBPZiBNZW1vcnkgLiAuIC4KU29mdHdhcmUgaW5kZXBlbmRlbnQ6IFdvbid0IHdvcmsgd2l0aCBBTlkgc29mdHdhcmUuClNvcnJ5LCBhIGZhdGFsIGVycm9yIGhhcyBvY2N1cmVkLiAgWW91J3JlIGRlYWQuClN5c1Byb2cgQXdmdWwgV29yZHMjMDQ6ICJJJ3ZlIG5ldmVyIHNlZW4gdGhpcyBoYXBwZW4gYmVmb3JlLiIKU3lzUHJvZyBBd2Z1bCBXb3JkcyMyOiAiV2hlbiB3YXMgb3VyIGxhc3QgYmFja3VwIGRvbmU/IgpTeXNQcm9nIEF3ZnVsIFdvcmRzIzIzOiAiV2hhdCBkbyB5b3UgbWVhbiwgeW91IHB1dCBpdCBpbiBwcm9kdWN0aW9uPyEiClN5c3RlbSBFcnJvcjogIChBKWJvcnQsIChSKWV0cnksIChDKW9uc3VtZSBDaG9jb2xhdGUKU1lTVEVNIEVSUk9SOiAgcHJlc3MgRjEzIHRvIGNvbnRpbnVlLi4uClN5c3RlbSBoYWx0ZWQgLSBQcmVzcyBhbnkga2V5IHRvIGRvIG5vdGhpbmcuClRlcm1pbmF0b3IgdmlydXMgZm91bmQuIEhpZGluZyBpbiBmaWxlICdJTExCRS5CQUsnClRoZSAiQW55IiBrZXk/ICBTZWUgdGhlIHJlZCBidXR0b24gbWFya2VkICJSZXNldD8iClRoZXkgY2FuIGhhdmUgbXkgbW9kZW0uLi4gd2hlbiB0aGV5IHByeSBpdCBmcm9tIG15IGNvbGQgZGVhZCBmaW5nZXJzLgpUbyBlcnIgaXMgaHVtYW47IHRvIHJlYWxseSBib3RjaCB0aGluZ3MgcmVxdWlyZXMgYSBzeXNvcC4KVXNlciAtIGEgdGVjaG5pY2FsIHRlcm0gdXNlZCBieSBjb21wdXRlciBwcm9zLiBTZWUgaWRpb3QuClVzZXIgZXJyb3I6IFJlcGxhY2UgdXNlciBhbmQgcHJlc3MgRU5URVIuCnZvaWQgbWFpbiAodm9pZCkgeyBpZiAod2luZG93cz09InVzZWZ1bCIpIGhlbGw9ZnJvemVuIH0KV2UgYWxsIGxpdmUgaW4gYSB5ZWxsb3cgc3Vicm91dGluZS4KV2hhZGR5YSBtZWFuIHlvdSBkb24ndCBTVEFQTEUgZGlza2V0dGUgbGFiZWxzIG9uLgp3aGlsZSgxPT0wKSB7IHByaW50ZigiUmUtRWxlY3QgQ2xpbnRvbiFcbiIpOyB9CldobyBpcyBHZW5lcmFsIEZhaWx1cmUgYW5kIHdoeSdzIGhlIHJlYWRpbmcgbXkgaGFyZCBkaXNrPwpXaW5kb3dzOiBhIHZpcnVzIHdpdGggbW91c2Ugc3VwcG9ydC4KV29ybGQgZW5kaW5nIGluIDUgbWludXRlcy4gIFBsZWFzZSBsb2cgb2ZmLgpXcml0ZSBvbiB0aGUgYmxhY2tib2FyZCA1MDAgdGltZXM6ICAiSSB3aWxsIG5vdCBkZXJlZmVyZW5jZSBwb2ludGVycyIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWx0LCBhYmVyIHRyb3R6ZGVtIGd1dCAoUm9jaHVzLCAyOS4gT2t0IDE5OTYsIDE3OjIxOjAzKToKfiMhIHJuPU1vcmdvdGggcnQ9ODQ2NTkzMDgwCn4jISB0aWQ9ODQ2NTkzMDgwCkR1IGhhc3QKICBCU0EgLSBCcmFuY2ggaWYgU2F0dXJkYXkKdmVyZ2Vzc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBbHQsIGFiZXIgdHJvdHpkZW0gZ3V0IChKb3JpbmRlLCAyOS4gT2t0IDE5OTYsIDE4OjExOjE3KToKfiMhIHJuPVJvY2h1cyBydD04NDY2MDYwNjMKfiMhIHRpZD04NDY1OTMwODAKV2llIG5lbm50IG1hbiBuZW4gTGlsaXB1dGFuZXIgbWl0IHNpZWJlbiBLaW5kZXJuPz8/CgoKCgoKCgoKCgoKCgoKCkZydWNodHp3ZXJnCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQWx0LCBhYmVyIHRyb3R6ZGVtIGd1dCAoQmxvb2R5aGFycnksIDMwLiBPa3QgMTk5NiwgMDg6MDk6MTEpOgp+IyEgcm49Sm9yaW5kZSBydD04NDY2MDkwNzcKfiMhIHRpZD04NDY1OTMwODAKV2llIGhlaXNzdCBkZXIgUHJlc2VydmF0aXYgYXVmIHNjaHdlZGlzY2g/CgoKCgoKCgoKCgoKCgpQaXBpIExhbmdzdHJ1bXBmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcm9sbCAoVGFzaGEsICAyLiBOb3YgMTk5NiwgMTY6Mjk6MTApOgpGb2xnZW5kZXMgTGllZGNoZW4gaGFiIGljaCBncmFkIHZvbiBuZW0gTGl2ZS1yb2xsZW5zcGllbGVyIGdlaG9lcnQ6CgpJY2ggYmluIFRyb2xsLCBkYXMgZmluZCBpY2ggdG9sbCwKaGF1IGFuZGVybiBnZXJuIGRpZSBIdWNrZSB2b2xsLApkZW5uIGljaCBiaW4gVHJvbGwsIFRyb2xsLCBUcm9sbC4KCkVpbiBFbGYgdGF1Y2h0IGF1ZiwgaWNoIHRyZXRlIGRyYXVmLAplcyBrcmFjaHQgendhciBrb21pc2NoIGRvY2ggaWNoIGhvZXIgbmljaHQgYXVmLApkZW4gaWNoIGJpbiBUcm9sbCwgVHJvbGwsIFRyb2xsLgoKRWluIFp3ZXJnIGtvbW10IGFuLCBpY2gga2xvcGZlIGFuLAp3aWUgc2NoYWRlLCBkYXNzIGVyIHNpY2ggbmljaHQgd2VocmVuZCBrYW5uLApkZW5uIGljaCBiaW4gVHJvbGwsIFRyb2xsLCBUcm9sbC4KCgoKVGFzaGEsIFRyb2xsbWFnaWVyaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZ1ZXIgcm90ZSBzb2NrZW4gLi4uIChRaXRlc3MsICA0LiBOb3YgMTk5NiwgMDg6NDk6MDQpOgoKRGVyIEh1bmQgZGVzIEdld2Vya3NjaGFmdGxlcnMKClZpZXIgTWFlbm5lciBzcHJhY2hlbiB1ZWJlciBkaWUgS2x1Z2hlaXQgaWhyZXIgSHVuZGUuCgpEZXIgZXJzdGUgd2FyIEluZ2VuaWV1ciB1bmQgc2FndGUsIHNlaW4gSHVuZCBrb2VubmUgZ3V0IHplaWNobmVuLiBFciBzYWd0ZQppaG0sIGVyIHNvbGxlIFBhcGllciBob2xlbiB1bmQgZWluIHJlY2h0ZWNrLCBkYW1pdCBlaW5lbiBLcmVpcyB1bmQgZWluIERyZWllY2sKemVpY2huZW4sIHdhcyBkZXIgaHVuZCBhdWNoIGxlaWNodCBzY2hhZmZ0ZS4KCkRlciBCdWNoaGFsdGVyIHNhZ3RlLCBlciBnbGF1YmUsIHNlaW4gSHVuZCBzZWkgYmVzc2VyLiBFciBiZWZhaGwgaWhtLCBlaW4KRHV0emVuZCBLZWtzZSB6dSBob2xlbiB1bmQgc2llIGluIERyZWllcmhhZXVmY2hlbiBhdWZ6dXRlaWxlbi4gRGFzIG1hY2h0ZSBkZXIKSHVuZCBsb2NrZXIuCgpEZXIgQ2hlbWlrZXIgZmFuZCBkYXMgZ3V0LCBtZWludGUgYWJlciwgc2VpbiBIdW5kIHNlaSBub2NoIGNsZXZlcmVyLiBFciBzYWd0ZQppaG0sIGVyIHNvbGxlIGVpbmVuIExpdGVyIE1pbGNoIGhvbGVuIHVuZCBkYXZvbiAyNzUgbWwgaW4gZWluIEhhbGJsaXRlcmdlZmFlc3MKZ2llc3Nlbi4gRGVyIEh1bmQgc2NoYWZmdGUgZGFzIG11ZWhlbG9zLgoKQWxsZSBNYWVubmVyIHN0aW1tdGVuIGRhcmluIHVlYmVyZWluLCBkYXNzIGlocmUgSHVuZGUgZ2xlaWNoa2x1ZyB3YWVyZW4uCkRhIHdhbmR0ZW4gc2llIHNpY2ggYW4gZGVuIEdld2Vya3NjaGFmdGxlciB1bmQgZnJhZ3Rlbiwgd2FzIHNlaW4gSHVuZCBkZW5uCmtvZW5uZS4KRGVyIEdld2Vya3NjaGFmdGxlciByaWVmIHNlaW5lbiBIdW5kIHVuZCBzYWd0ZSBpaG0gOgonWmVpZyBkZW4gSnVuZ3MgbWFsLCB3YXMgRHUga2FubnN0IScKCkRhIGZyYXNzIGRlciBIdW5kIGRpZSBLZWtzZSwgc29mZiBkaWUgTWlsY2ggYXVzLCBzY2hpc3MgYXVmcyBQYXBpZXIsIGJ1bXN0ZQpkaWUgZHJlaSBhbmRlcmVuIGh1bmRlLCBiZWhhdXB0ZXRlLCBzaWNoIGRhYmVpIGVpbmUgUnVlY2tlbnZlcmxldHp1bmcKenVnZXpvZ2VuIHp1IGhhYmVuLCByZWljaHRlIEJlc2Nod2VyZGUgd2VnZW4gZ2VmYWVocmxpY2hlciBBcmJlaXRzYmVkaW5ndW5nZW4KZWluLCB2ZXJsYW5ndGUgVmVyZGllbnN0YXVzZmFsbCwgbGllc3Mgc2ljaCBrcmFua3NjaHJlaWJlbiB1bmQgbGllZiBuYWNoCkhhdXNlLgoKCgoKCgoKUUkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZXIuLi4gKFFpdGVzcywgIDQuIE5vdiAxOTk2LCAwODo1Mjo0OCk6CgpFaW4gSGFlc2xlaW4gc2FzcyBtaXR0ZW4gaW0gRmVsZCB1bmQgd2VpbnRlIGJpdHRlcmxpY2guCkRhIGtvbW10IGVpbmUgQW1zZWwgdW5kIGZyYWd0IDoKJ0FiZXIgSGFlc2xlaW4sIHdhcyB3ZWluc3QgRFUgPycKClNjaGx1Y2h6dCBkYXMgSGFlc2xlaW4gOgoKQWNoLCBkZXIgQmFlciBoYXQgbWljaCBnZWZyYWd0IG9iIGljaCBmdXNzZWxlLCB1bmQgYWxzIGljaCBuZWluIGdlYW50d29ydGV0CmhhYmUsIGhhdCBlciBtaWNoIGFscyBLbG9wYXBpZXIgYmVudXR6dC5gCgoKCkFtIG5hZWNoc3RlbiBUYWcgc2l0enQgZGFzIEhhZXNsZWlud2llZGVyIG1pdHRlbiBpbSBGZWxkLiBBYmVyIGRpZXNtYWwgbGFjaHRlCmVzIHNpY2ggaGFsYiBrcmluZ2VsaWcuCkRhIGtvbW10IGRpZSBBbXNlbCB2b3JiZWkgdW5kIGZyYWd0ICdOdW4gSGFlc2xlaW4sIHdpZXNvIGxhY2hzdCBEdSBoZXV0ZSBzbyA/JwoKQW50d29ydGV0IGRhcyBIYWVzbGVpbiBraWNoZXJuZCA6CgpgSGV1dGUgaGF0IGRlciBCYWVyIGRlbiBJZ2VsIGdlZnJhZ3QuLi5gCgoKCgoKUUkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZXIgIDopIChRaXRlc3MsICA0LiBOb3YgMTk5NiwgMTI6NDc6MTApOgoKZGllc2VyIHdpdHogaXMgd2VuaWdlciBlaW4gd2l0eiBhbHMgZWluIHJlaW0uLi4gCgpEYSBvYmVuIGF1ZiBkZW0gQmVyZ2UKU2l0emVuIHZpZWxlIFp3ZXJnZS4KRGEgdW50ZW4gYXVmIGRlciBXaWVzZQpTaXR6dCBlaW4gZ3Jvc3NlciBSaWVzZS4KRGEgaGludGVuIGluIGRlciBFY2tlClNpdHp0ICduZSBmZXR0ZSBTY2huZWNrZS4KCkRhcyB3b2xsdCBpY2ggamV0enQgbnVyIG1hbCBhbm1lcmtlbi4KClFJICBpc3QgaGV1dCBzbyBsdXN0aWcgZHJhdWYuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWx0LCBhYmVyIHRyb3R6ZGVtIGd1dCAoTWFzbywgIDQuIE5vdiAxOTk2LCAxODoyNjo0OCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg0NjU5MzA4MAp+IyEgdGlkPTg0NjU5MzA4MAo+IFsuLi5dCj4gdm9pZCBtYWluICh2b2lkKSB7IGlmICh3aW5kb3dzPT0idXNlZnVsIikgaGVsbD1mcm96ZW4gfQo+IFsuLi5dCgpEYSBmZWhsdCBlaW4gOwoKU0NOUi4gTWFzby4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFsdCwgYWJlciB0cm90emRlbSBndXQgKEpvcmluZGUsICA1LiBOb3YgMTk5NiwgMTg6MDk6MDApOgp+IyEgcm49TWFzbyBydD04NDcxMjg0MDgKfiMhIHRpZD04NDY1OTMwODAKCgpXYXMgaXN0IHJvdCB1bmQgbGllZ3QgYXVmIGRlbSBGZWxkPwoKCgoKCgoKCgoKCgoKCgoKCgoKCiduZSBhbHRlciBCYXVlcm5yZWdlbCEhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYWVyenRlIChPcmt0b2V0ZXIsICA2LiBOb3YgMTk5NiwgMTE6MzA6NTQpOgpTY2h3ZXN0ZXIgKGluIFBhbmlrKSA6IEhlcnIgRG9rb3RvciwgaGVyciBEb2t0b3IgISBEZXIgU2ltdWxhbnQgdm9uIFppbW1lcgpkcmVpIGlzdCBnZXJhZGUgZ2VzdG9yYmVuLgpBcnp0IDogTmEgISBOdW4gdWViZXJ0cmVpYnQgZXIgYWJlciB3aXJrbGljaCAhCgpvbGRpZSBidXQgZ29sZGllLCBPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSWNoIGxpZWJlIEZyYXVlbiA7KSAoR3V5YnJ1c2gsICA3LiBOb3YgMTk5NiwgMTk6MzE6MzApOgoKRWluZSBuZXVlIHdpc3NlbnRzY2hhZnRsaWNoZSBVbnRlcnN1Y2h1bmcgaGF0IGJlc3RhZXRpZ3QsIGRhc3Mgd2VpYmxpY2hlCkhvcm1vbmUgaW4gamVkZXIgQXJ0IHZvbiBBbGtvaG9sIHZvcmhhbmRlbiBpc3QuCkVyZ2VibmlzOiBOYWNoIEFsa29ob2xnZW51c3MgcmVkZXQgbWFuIG51ciBub2NoIFNjaGVpc3NlIHVuZCBBdXRvZmFocmVuIGthbm4KbWFuIGF1Y2ggbmljaHQgbWVoci4KCk1pY2tleSB0byBNaW5uZXk6ICJJIHdhbnQgdGhlIGRpdm9yY2UhIgpNaW5uZXk6ICJBcmUgeW91IGZ1Y2tpbmcgY3Jhenk/IgpNaWNrZXk6ICJObywgYnV0IEknbSBmdWNraW5nIERhaXN5ISIKCgpHdXlicnVzaCwgZXMgZ2lidCBiZXNzZXJlLCBhYmVyIG1hbmNoZSBzaW5kIHp1IHdhaHIgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlbHRtZWlzdGVyc2NoYWZ0IGltIFJ1ZGVsYnVtcyAoUGh5Z29zLCAgNy4gTm92IDE5OTYsIDE5OjUwOjE1KToKV2VsdG1laXN0ZXJzY2hhZnQgaW0gUnVkZWxidW1zLiAgRXJzdGVyIFNwb3J0bGVyIGF1cyBBbWVyaWthLiAxLkZyYXUgMi5GcmF1CjMuRnJhdSA0LkZyYXUuIEVyc2Nob2VwZnQgZ2lidCBkZXIgQW1lcmlrYW5lciBhdWYuICAgIFp3ZWl0ZXIgU3BvcnRsZXIgYXVzCkZyYW5rcmVpY2guIDEuRnJhdSAyLkZyYXUgMy5GcmF1IDQuRnJhdS4gU3RhZGlvbnJ1bmRlICBMYSBPbGEgYXVmIGRlbiBSYWVuZ2VuCjUuRnJhdSA2LkZyYXUgNy5GcmF1ICBFcnNjaG9lcGZ0IGJyaWNodCBlciB6dXNhbW1lbi4gRGVyIGRyaXR0ZSBTcG9ydGxlci4gRGVyCkxva2FsbWF0dGFkb3IhICBSaWVzZW4gQXBwbGF1cyBhdWYgYWxsZW4gUmFlbmdlbiAgTGEgT2xhIHVlYmVyYWxsIS4gMS5GcmF1CjIuRnJhdSAzLkZyYXUgNC5GcmF1LiBTdGFkaW9ucnVuZGUgIExhIE9sYSBhdWYgZGVuIFJhZW5nZW4uIEtvbmZldHRpcmVnZW4uCjUuRnJhdSA2LkZyYXUgNy5GcmF1LiA4LkZyYXUuOS5GcmF1IFN0YWRpb25ydW5kZSEhISAxLlJlcG9ydGVyIDIuUmVwb3J0ZXIKMy5SZXBvcnRlciAgNC5yZS4uV2FoaGhoTmVpbm4gQXJnZ2xsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGZWVud2l0emUgKERvbHBoLCAgNy4gTm92IDE5OTYsIDIyOjAwOjE2KToKRmVlIGJ1ZWNrIGRpY2ggIQpXdW5zY2ggaXN0IFd1bnNjaCAhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZlZW53aXR6ZSAoQXNtb2RpcywgIDcuIE5vdiAxOTk2LCAyMjoyMTozMik6Cn4jISBybj1Eb2xwaCBydD04NDc0MDA0MTYKfiMhIHRpZD04NDc0MDA0MTYKZmluZ2VyIGdyaW1tYm9ybiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2VpaG5hY2h0ZW4uLi4gKFdpbGxvdywgIDkuIE5vdiAxOTk2LCAyMjoyNjoyOCk6CmxldXRlLCBzY2hhZmZ0IHdlaWhuYWNodGVuIGFiLCBqb3NlZiBoYXQgYWxsZXMgZ2VzdGFuZGVuLi4uCldlaWRjaGVuIFdpbGxvdwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdGphIChXdXJ6ZWwsIDEwLiBOb3YgMTk5NiwgMDE6MjA6MjcpOgplaW4gZnVjaHMgdW5kIGVpbiBrYW5pbmNoZW4gc3BpZWxlbiBmYW5nZW4gYXVmIGVpbmVyIHdpZXNlLiBuaWNodHMgZXJuc3RlcywKZWluIHdpcmtsaWNoZXMgc3BpZWwuIGRpZSB3aWVzZSBpc3QgZ3Jvc3MsIHVuZCBkaWUgYmVpZGVuIGhhYmVuIGVjaHQgc3Bhc3MKZGFiZWkuIGJpcyBkYXMga2FuaW5jaGVuIGltIGVpZmVyIGRlcyBnZWZlY2h0cyBpbiBlaW4gdGllZmVzIGxvY2ggZmFlbGx0LAphdXMgZGVtIGVzIGFsbGVpbmUgbmljaHQgbWVociByYXVza2Fubi4gYWxzbyBydWZ0IGVzIGRlbiBmdWNocywgdW0gaWhtCnJhdXN6dWhlbGZlbi4gZGVyIGZ1Y2hzIHVlYmVybGVndCBrdXJ6LCBkcmVodCBzaWNoIGhlcnVtIHVuZCBsYWVzc3Qgc2VpbmVuCnNjaHdhbnogaW4gZGFzIGxvY2ggaGFlbmdlbi4gZGFzIGthbmluY2hlbiBncmVpZnQgenUsIHVuZCBkZXIgZnVjaHMgemllaHQKZXMgaGVyYXVzOiBkYXMgc3BpZWwga2FubiB3ZWl0ZXJnZWhlbi4gYmlzIG5hY2ggZWluZXIgd2VpbGUgZGVyIGZ1Y2hzIGluIGVpbgphZWhubGljaCB0aWVmZXMgbG9jaCBmYWVsbHQgdW5kIG5pY2h0IG1laHIgaGVyYXVzIGthbm4uIGFsc28gcnVmdCBlciBkYXMgCmthbmluY2hlbiwgdW0gaWhtIGhlcmF1c3p1aGVsZmVuLiBkYXMga2FuaW5jaGVuIGVyaW5uZXJ0IHNpY2ggYW4gZGVuIHRyaWNrCmRlcyBmdWNoc2VzLCBkcmVodCBzaWNoIGhlcnVtIHVuZCB3YXJ0ZXQsIGRhc3MgZGVyIGZ1Y2hzIHp1Z3JlaWZ0LiBudW4gc2luZAprYW5pbmNoZW4gZXR3YXMgYW5kZXJzIGdlYmF1dCBhbHMgZnVlY2hzZS4uLiBkZXIgZnVjaHMgcnVmdCB2b24gdW50ZW4gaG9jaDoKImRhcyBrbGFwcHQgc28gbmljaHQsIGRlaW4gc2Nod2FueiBpc3QgenUga3Vyei4gbGFzcyBkaXIgZG9jaCB3YXMgYW5kZXJlcwplaW5mYWxsZW4hIiBkYXMga2FuaW5jaGVuIGdydWViZWx0IG5pY2h0IGxhbmdlLCB6aWVodCBzZWluIGhhbmR5IHJhdXMgdW5kCnJ1ZnQgZGllIGZldWVyd2VociBhbiwgZGllIGluIGt1ZXJ6ZXN0ZXIgemVpdCBkZW4gZnVjaHMgYmVmcmVpdC4KCgphYWFlZWVoaCwgdW5kIHdlaXRlcj8KCmRpZSBnZXNjaGljaHRlIGhhdCBuYXR1ZXJsaWNoIGVpbmUgbW9yYWw6CgoKCgoKCgoKd2VyIGVpbmVuIGt1cnplbiBzY2h3YW56IGhhdCwgYnJhdWNodCBlaW4gaGFuZHkuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFyYWxkIFNjaG1pZHQgKEJlZWx6ZWJ1YiwgMTEuIE5vdiAxOTk2LCAxNToxMTozNCk6CkFtIEZyZWl0YWcgYmVpIEhhcmFsZCBTY2htaWR0IGF1Zmdlc2NobmFwcHQgOgoKV2llIGthbm4gbWFuIGRpZSBCZWF0bGVzIHdpZWRlcnZlcmVpbmVuID8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKTWFuIG5laG1lIGVpbmVuIFJldm9sdmVyIHVuZCAzIEt1Z2VsbiwgLi4uCgpCZWVsemVidWIsIGhldXRlIG1hbCBnZW1laW4gXTotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnJpbGxlIChFcm9rZXNlLCAxMi4gTm92IDE5OTYsIDEzOjA3OjI3KToKS29tbXQgZWluIE1hbm4genUgdmllbCBNYW5uCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFzIE5ldWVzdGUgKENhdW5vLCAxMy4gTm92IDE5OTYsIDEzOjA1OjEzKToKClBldGVyIEdyYWYgd3VyZGUgZnJlaWdlc3Byb2NoZW4uCk5hY2h3ZWlzbGljaCBoYXQgZXIgc2VpbmUgU3RldWVyZXJrbGFlcnVuZyB1bnRlciBXaW5kb3dzIGFuZ2VmZXJ0aWd0LgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmpva3kgKEFudGl1bGYsIDEzLiBOb3YgMTk5NiwgMTg6MDE6NDApOgpGcmFnZTogV2lldmllbGUgTWljcm9zb2Z0LVByb2dyYW1taWVyZXIgYnJhdWNodCBtYW4gdW0gZWluZSBHbHVlaGxhbXBlCmVpbnp1c2NocmF1YmVuID8KCiAKIAogCiAKIAogCiAKIAogCiAKQW50d29ydDogR2FyIGtlaW5lbiAtIE1pY3Jvc29mdCBlcmtsYWVydCBEdW5rZWxoZWl0IHp1bSBTdGFuZGFyZC4uLiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGpva3kgKFd1cnplbCwgMTMuIE5vdiAxOTk2LCAxOToxNDowMCk6Cn4jISBybj1BbnRpdWxmIHJ0PTg0NzkwNDUwMAp+IyEgdGlkPTg0NzkwNDUwMApqYWphLi4uCmFiZXIgd2lldmllbCBob3RsaW5lLXNwZXppYWxpc3RlbiBicmF1Y2h0IG1hbiBmdWVyIGRpZSBnbHVlaGJpcm5lPwoKYXVjaCBrZWluZW4uICJkYXMga2FubiBpY2ggaGllciBuaWNodCBuYWNodm9sbHppZWhlbiwgdW5zZXJlIGdsdWVoYmlybmUKZnVua3Rpb25pZXJ0IGVpbndhbmRmcmVpLiBlcyBtdXNzIHNpY2ggYWxzbyBiZWkgaWhuZW4gdW0gZWluIGxva2FsZXMKa29uZmlndXJhdGlvbnNwcm9ibGVtIGhhbmRlbG4sIG1vZWdsaWNoZXJ3ZWlzZSB2ZXJ3ZW5kZW4gc2llIGRpZSBmYWxzY2hlCmZhc3N1bmcuIGhhYmVuIHNpZSBlaW5lIHN0YW5kYXJkZmFzc3VuZywgaXN0IGVzIHZpZWxsZWljaHQgZWhlciBlaW4gcHJvYmxlbQpkZXMgbGFtcGVuc2NoaXJtcy4gc2llIGtvZW5udGVuIGRlbiBsYW1wZW5zY2hpcm0gZW50ZmVybmVuLi4uICIgKmJsYSogKmJsYSoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGpva3kgKFBhbXBlcnMsIDE0LiBOb3YgMTk5NiwgMTA6MTI6MDApOgp+IyEgcm49V3VyemVsIHJ0PTg0NzkwODg0MAp+IyEgdGlkPTg0NzkwNDUwMApXaWV2aWVsZSBNQWNob3MgYnJhdWNodCBtYW4sIHVtIGVpbmUgR2x1ZWhiaXJuZSBlaW56dXNjaHJhdWJlbj8KCgoKCgoKCgoKCktlaW5lbi4uLiBTb2xsIERpZSBTY2hsYW1wZSBkb2NoIGltIGR1bmtlbG4gcHV0emVuLi4uCgpQYW1wZXJzLiBIYXQgZ3Jvc3NlIEhBZW5kZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhcmFsZCBTY2htaWR0IChSb2NodXMsIDE0LiBOb3YgMTk5NiwgMTY6NDY6MjEpOgpIYXJhbGQgU2NobWlkdDogLi4uIGRhIGhhZXR0ZSBpY2ggei5CIEFuZ3N0LCBtYW4gd3VlcmRlCiAgICAgICAgICAgICAgICBtaXIgRnJhdWVuZmVpbmRsaWNoa2VpdCB2b3J3ZXJmZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYXJhbGQgU2NobWlkdCAoTWV0aGVkcmFzLCAxNy4gTm92IDE5OTYsIDE5OjU5OjUxKToKfiMhIHJuPVJvY2h1cyBydD04NDc5ODYzODEKfiMhIHRpZD04NDc5ODYzODEKQWVoLCB1bmQgd28gd2FyIGRhIGRlciBXaXR6LCBSb2NodXM/ICpncnVlYmVsIGtvcGZrcmF0eioKCiAgICAgICBCZXJnY2hlbiBDYXJhZGhyYXMgdmVyc3RlaHQgZ3JhZGUgbnVlc2NodAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZXIgZnVlciBTY2hydW1wZmkuLi4gKEdyaW1tYm9ybiwgMTkuIE5vdiAxOTk2LCAwODo1NDozMSk6CgpOYSBndXQsIEFuYXJjaGllIGlzdCB2aWVsbGVpY2h0IG5pY2h0IGRpZSBiZXN0ZSBhbGxlciBtb2VnbGljaGVuCkdlc2VsbHNjaGFmdHNmb3JtZW4uIEFiZXIgc2llIGlzdCBpbW1lciBub2NoIGJlc3NlciBhbHMgZ2FyIGtlaW5lLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChSYWZmaSwgMTkuIE5vdiAxOTk2LCAxMjozMjoyMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODQ4MzkwMDcxCn4jISB0aWQ9ODQ4MzkwMDcxCgpEZW4gdmVyc3RlaCBpY2ggbmljaHQuCgpHcnVzcwpILgooSWNoIGhhbHRlIEFuYXJjaGllIGZ1ZXIgZGllIHZlcm51ZW5mdGlnc3RlIGFsbGVyIEdlc2VsbHNjaGFmdHNmb3JtZW4gLi4uLiB1bmQKZGVzd2VnZW4gbmljaHQgbWFjaGJhci4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChIYXRlLCAxOS4gTm92IDE5OTYsIDEyOjMzOjUxKToKfiMhIHJuPVJhZmZpIHJ0PTg0ODQwMzE0MAp+IyEgdGlkPTg0ODM5MDA3MQpXdWVyZGUgbWljaCBqYSBpbnRlcmVzc2llcmVuLCB3aWUgSGFmaXMgcmVhZ2llcnQsIHdlbm4gaWNoIHNjaHJlaWJlOgoKICAgICJFcyBsZWJlIGRlciBLb21tdW5pc211cyEiCgpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRWluZXIgZnVlciBTY2hydW1wZmkuLi4gKEdyaW1tYm9ybiwgMTkuIE5vdiAxOTk2LCAxMjozNjo0NSk6Cn4jISBybj1IYXRlIHJ0PTg0ODQwMzIzMQp+IyEgdGlkPTg0ODM5MDA3MQoKTnUga29tbSwgSGF0ZSwgRHUgdHJhdWVyc3QgYWxzIGVjaHRlciBab25pZSBkb2NoIGdhcmFudGllcnQgaGVpbWxpY2ggZGVtIHJlYWwKZXhpc3RpZXJlbmRlbiBTb3ppYWxpc211cyBoaW50ZXJoZXIuIEF1c3NlcmRlbSBiaXN0IER1IGZhdWwsIHdlaW5lcmxpY2gsCmZvcmRlcnN0IG9obmUgRW5kZSB1bmQgbWFnc3QgbmljaHRzIGxpZWJlciBhbHMgQmFuYW5lbi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IHd1ZWhsdCBpbiBkZXIgVm9ydXJ0ZWlsc3NjaHVibGFkZS4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaW5lbndpdHogKEdyaW1tYm9ybiwgMTkuIE5vdiAxOTk2LCAxMjozOTowNSk6CgpXaXIgaGF0dGVuIGxhbmdlIGtlaW5lbiBtZWhyLCBkZXN3ZWdlbiBoaWVyIGVpbmVyIGRlciBtaXIgbmV1IHdhci4gQXVzc2VyZGVtCnJlZ3Qgc2ljaCBTY2hydW1wZmkgaW1tZXIgdWViZXIgQmxvbmRpbmVud2l0emUgYXVmLCB1bmQgc2llIGlzdCBlaW5mYWNoIHp1bQphbmJlaXNzZW4gd2VubiBzaWUgd3VldGVuZCBpc3QuIDstKQoKV2FzIHNpbmQgZHJlaSBCbG9uZGluZW4gYXVmIGVpbmVtIFNvZmE/CkVpbmUgUG9wZ3J1cHBlLgoKTWl0IEdydXNzIG5hY2ggRXNzZW4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgIEdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChIYXRlLCAxOS4gTm92IDE5OTYsIDEzOjA3OjI5KToKfiMhIHJuPUdyaW1tYm9ybiBydD04NDg0MDM0MDUKfiMhIHRpZD04NDgzOTAwNzEKU2FnIG5pY2h0cyBnZWdlbiBCYW5hbmVuIQoKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChTdW5mbG93ZXIsIDE5LiBOb3YgMTk5NiwgMTM6MDk6NTApOgp+IyEgcm49SGF0ZSBydD04NDg0MDUyNDkKfiMhIHRpZD04NDgzOTAwNzEKd2lyIGhhdHRlbiBkb2NoIGRhbWFscyB1ZWJlciBkaWVzZW4gUldHIG9kZXIgc28gS29udGFrdGUgenVyIEJhbmFuZW5yZXB1YmxpawpLdWJhIDopCgpUVFIgdW5zZXIgRmFkZXJsYW50IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBFaW5lciBmdWVyIFNjaHJ1bXBmaS4uLiAoQm9pbmcsIDE5LiBOb3YgMTk5NiwgMTQ6NDQ6MTIpOgp+IyEgcm49SGF0ZSBydD04NDg0MDUyNDkKfiMhIHRpZD04NDgzOTAwNzEKQXJnbCAuLiBqZXR6dCBkZW5rZSBpY2ggc2Nob24sIGRhc3MgSGF0ZXMgQXJ0aWtlbCB2b24gUmFmZmkgc2luZCEKTWFuIHNvbGx0ZSBoYWx0IGRvY2ggbWFsIGRlbiBIZWFkZXIgbGVzZW4gLi4uCiAgIEJvaW5mZwphZWggQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChSYWZmaSwgMTkuIE5vdiAxOTk2LCAxNzoyNzo1OCk6Cn4jISBybj1Cb2luZyBydD04NDg0MTEwNTIKfiMhIHRpZD04NDgzOTAwNzEKCkhtcGYgLi4uIGFsc28gaWNoIG1vY2h0ZSBhdWZzIGVuZXJnaXNjaHN0ZSBiZXN0cmVpdGVuIGRhcyBpY2ggc28gRHVlcnIgd2llCkhhdGUgYmluIDopCgpHcmlucwpILgoKKFVuZCBIYXRlIGhhdCBhdWNoIGtlaW5lIHNvb29vIHNjaG9lbmVuIEhhYXJlIGltIEdlc2ljaHQhKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRWluZXIgZnVlciBTY2hydW1wZmkuLi4gKEx1ZywgMjAuIE5vdiAxOTk2LCAwMzoxODozMik6Cn4jISBybj1IYXRlIHJ0PTg0ODQwNTI0OQp+IyEgdGlkPTg0ODM5MDA3MQpBZWgsCgpFdXJvLSBvZGVyIERvbGxhcmJhbmFuZW4uLi4KCkh1bW9ybG9zCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRWluZXIgZnVlciBTY2hydW1wZmkuLi4gKE1vcmdvdGgsIDIwLiBOb3YgMTk5NiwgMDc6NDA6NDcpOgp+IyEgcm49UmFmZmkgcnQ9ODQ4NDIwODc4Cn4jISB0aWQ9ODQ4MzkwMDcxCnVuZCBzaWNoZXIga2VpbmVuIHNvIGh1ZWJzY2hlbiByb2NrIDstKSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6IGhhbHQuLi4gKEdyaW1tYm9ybiwgMjIuIE5vdiAxOTk2LCAxNTo0MTozMCk6CgpOYWNoIGRlciBnYW56ZW4gZnJ1Y2h0bG9zZW4gRGlza3Vzc2lvbiB1ZWJlciBCYW5hbmVuIGhpZXIgbWFsIHdpZWRlciBlaW4gV2l0ejoKCkVpbiBLaW5kZXJzY2hhZW5kZXIgZ2VodCBhdWYgZGVuIFNwaWVscGxhdHogdW5kIGxvY2t0IGVpbiBLaW5kIG1pdC4gRXIgZ2VodAptaXQgZGllc2VtIEtpbmQgaW4gZWluZW4gbmFoZWdlbGVnZW5lbiBXYWxkLCBpbW1lciB0aWVmZXIuIERhcyBLaW5kIGJla29tbXQKQW5nc3QgdW5kIHdlaW50OiAiRXMgaXN0IHNvIGR1bmtlbCwgaWNoIGZ1ZXJjaHRlIG1pY2guIEljaCB3ZWlzcyBkZW4gUnVlY2t3ZWcKbmljaHQuIEljaCBoYWIgQW5nc3QhIiBFbnRnZWduZXQgZGVyIEtpbmRlcnNjaGFlbmRlcjogIldhcyBzb2xsIGljaCBlcnN0CnNhZ2VuLCBpY2ggbXVzcyBuYWNoaGVyIGRvY2ggYWxsZWluZSB6dXJ1ZWNrLiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChSYWZmaSwgMjIuIE5vdiAxOTk2LCAxNzozNTo0NCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTg0ODQ3MjA0Nwp+IyEgdGlkPTg0ODM5MDA3MQpXZWlzcyBuaWNodCAuLi4uIGhhYiBTY2hydW1wZmkgYmlzaGVyIHdlZGVyIG1pdCwgbm9jaCBvaG5lIFJvY2sgZ2VzZWhlbiA6KQoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBFaW5lciBmdWVyIFNjaHJ1bXBmaS4uLiAoS3JldGVrLCAyMi4gTm92IDE5OTYsIDE4OjEwOjAwKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NDg2ODI1NzcKfiMhIHRpZD04NDgzOTAwNzEKU2NocnVtcGZpIG1pdCBSb2NrPyBXb3cuLi4KCksuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBFaW5lciBmdWVyIFNjaHJ1bXBmaS4uLiAoR3JpbW1ib3JuLCAyMi4gTm92IDE5OTYsIDE4OjEwOjA2KToKfiMhIHJuPVJhZmZpIHJ0PTg0ODY4MDU0NAp+IyEgdGlkPTg0ODM5MDA3MQpJY2ggc2Nob24uIE1pdCB1bmQgb2huZSBSb2NrLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgKG9obmUgUm9jaykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBFaW5lciBmdWVyIFNjaHJ1bXBmaS4uLiAoUmFmZmksIDIyLiBOb3YgMTk5NiwgMjM6MDM6MDIpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0ODY4MjYwNgp+IyEgdGlkPTg0ODM5MDA3MQpVaWlpaWlpaWlpaWlpaS4KW1JhZmZpIGJla29tbXQgc08tT2dyb3NzZSBBdWdlbi5dCgpHcnVucwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChTY2hydW1wZmksIDI0LiBOb3YgMTk5NiwgMjE6Mzg6NTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg0ODY4MjYwNgp+IyEgdGlkPTg0ODM5MDA3MQpIZWVlZWUsIG51IGxhc3N0IG1pY2ggZGEgZG9jaCBtYWwgYXVzIGRlbSBTcGllbCEgTmFqYSwgR3JpbW1iYWJlLCBEdSBoYXN0IG1pY2gKamEgaW1tZXJoaW4gYXVjaCBzY2hvbiBtaXQgdW5kIG9obmUgTmFjaHRoZW1kIGhnZXNlaG4uIEFjaCBuZWUsIG51ciBvaG5lIDstKQpTY2hydW1wZmkgemVpZ3QgYWxsZW4gaWhyZSBOZXR6c3RydW1wZmhvc2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogRWluZXIgZnVlciBTY2hydW1wZmkuLi4gKEtyZXRlaywgMjUuIE5vdiAxOTk2LCAwMTozNzoxMSk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODQ4ODY3OTMxCn4jISB0aWQ9ODQ4MzkwMDcxCk1pciBhdWNoPyBBY2ggc28sIGRhcyB3YWVyZSBqYSBkYW5uIHZvbiBEaXIgYXVzIGdlc2VoZW4gemllbWxpY2gKcGFlZG9waGlsLiBWb24gbWlyIGF1cyBlaW4gYXVzZ2VwcmFlZ3RlciBPZWRpcHVzLUtvbXBsZXguIEFlaC4uLiBFZ2FsIQoKS3JldGVLCmlzdCBoYWx0IG1hbCB2b24gTmF0dXIgYXVzIG5ldWdpZXJpZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTE6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChSYWZmaSwgMjUuIE5vdiAxOTk2LCAxMDozMzoxMSk6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODQ4ODY3OTMxCn4jISB0aWQ9ODQ4MzkwMDcxClJmZmkga3JpZWd0IHNPT2xjaGUgQXVnZW4uCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChTY2hydW1wZmksIDI3LiBOb3YgMTk5NiwgMDA6MzA6MDcpOgp+IyEgcm49S3JldGVrIHJ0PTg0ODg4MjIzMQp+IyEgdGlkPTg0ODM5MDA3MQpBbHNvIG5lZWUsIG1laW4gZnJlY2hlcyBTb2VobmNoZW4sIHRzIHRzLiBOYWNoZGVtIER1IGphIG5vY2ggc28ga2xlaW4gYmlzdCwKd2Vpc3N0IER1IGphIGVoIG5pY2h0LCB3YXMgbmUgTmV0enN0cnVtcGZob3NlIGlzdCwgZ2VzY2h3ZWlnZSBkZW5uIHdhcyBzaWUgYmVpCm1hbmNoZW4gTWFlbm5lcm4gYmV3aXJrdC4gV2llc28gYmlzdCBEdSBlaWdlbnRsaWNoIHVtIDAxOjM3IG5vY2ggYXVmPyBIYWU/ClNjaHJ1bXBmaSBnZWh0IGpldHp0IGF1Y2ggaW5zIEJldHQgYmV2b3Igc2llIHdlaXRlciBNdWVsbCBzY2hyZWlidC4gKG9obmUgcm9zYQpOYWNodGhlbWQgOy0pICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBFaW5lciBmdWVyIFNjaHJ1bXBmaS4uLiAoQmFicywgMjcuIE5vdiAxOTk2LCAwNDowMTowNik6Cn4jISBybj1TY2hydW1wZmkgcnQ9ODQ5MDUxMDA3Cn4jISB0aWQ9ODQ4MzkwMDcxCmFiZXIgU2NocnVtcGZpISBfTmF0dWVybGljaF8gd2Vpc3MgYXVjaCBSYWZmaSBzY2hvbiwgZGFzcyBOZXR6c3RydW1wZmhvc2VuCnNjaG9uIGJlaSBzbyBtYW5jaGVtIE1hbm4gYmV3aXJrdCBoYWJlbiwgZGFzcyBlciBpbnMgR2VmYWVuZ25pcyBnZWtvbW1lbiBpc3QhCgpXZWlsLCB3ZW5uIG1hbiBkaWUgRGluZ2VyIGJlaW0gQmFua3JhdWIgdWViZXIgZGVuIEtvcGYgemllaHQsIGlzdCBtYW4gaW1tZXIKbm9jaCBnYW56c2Nob2VuIGd1dCB6dSBlcmtlbm5lbi4uLgoKOy1QCgpCYWJzLCBoYXQgbm9jaCBuaWUgaXJnZW5kd2VsY2hlIEhpbGZzbWl0dGVsY2hlbiBiZW5vZXRpZ3QsCnVtIGRhcyB6YmVpIGRlbSBNYW5uLCBhdWZzIGRlbnMgbWlyIGFua29tbXQgLCB6dSBiZXdpcmtlbiwgYW4gd2FzIFNjaHJ1bXBmaQpkZW5rdC4uLiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IEVpbmVyIGZ1ZXIgU2NocnVtcGZpLi4uIChSYWZmaSwgMjcuIE5vdiAxOTk2LCAxMjowNTozNik6Cn4jISBybj1CYWJzIHJ0PTg0OTA2MzY2Ngp+IyEgdGlkPTg0ODM5MDA3MQpMYW5nc2FtbSBtb2VjaHQgaWNoIG1hbCB3aXNzZW4gYW4gd2FzIElociBhbGxlIGRlbmt0LgpHcnVzcwpILgooR2FueiB1bnNjaHVsZGloZ2VuIEdlZGFua2VucykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBFaW5lciBmdWVyIFNjaHJ1bXBmaS4uLiAoS3JldGVrLCAyNy4gTm92IDE5OTYsIDEyOjU5OjUwKToKfiMhIHJuPVNjaHJ1bXBmaSBydD04NDkwNTEwMDcKfiMhIHRpZD04NDgzOTAwNzEKSG1wZiEgU29vbyBrbGVpbiBiaW4gaWNoIGF1Y2ggd2llZGVyIG5pY2h0ISBHZW1laW5oZWl0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXhwZXJpbWVudGUgbWl0IGxlYmVuZGVuIFRpZXJlbiA6KSAoSmVob3ZhLCAyOC4gTm92IDE5OTYsIDA4OjExOjMwKToKaHR0cDovL2VybmllLm1pLnVuaS1rb2Vsbi5kZS9aWU4hL2FyYy90aWVyZS5odG1sCgpncmluc2VuZCwgSi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFeHBlcmltZW50ZSBtaXQgbGViZW5kZW4gVGllcmVuIDopIChZYW50cm8sIDI4LiBOb3YgMTk5NiwgMDg6NDU6NDIpOgp+IyEgcm49SmVob3ZhIHJ0PTg0OTE2NTA5MAp+IyEgdGlkPTg0OTE2NTA5MApIbW0gYWxzbyBpY2ggZGVua2UsIGljaCBtdXNzIGRlbiBUaXAgZXJ3ZWl0ZXJuLi4uLi4uIHVudGVyIApodHRwOi8vZXJuaWUubWkudW5pLWtvZWxuLmRlL1pZTiEvIGxpZWd0IE5VUiBnZW5pYWxlcyB1bmQgbGVzZW5zd2VydGVzLgoKU28gaGFiIGljaCB6QiBzZWl0IGRlbSBtaXQgbWVpbmVtIEF1dG8gZWluZSBnYW56IGFuZGVyZSBFaW5zdGVsbHVuZyB6dQpJbmxpbmVza2F0ZXJuIGdld29ubmVuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgaXN0IGFsbGVzIG51ciBnZWtsYXV0IChNYW5nbywgMjkuIE5vdiAxOTk2LCAxMDoyMjo0OSk6CldpZSBoZWlzc3QgZWluIGphcGFuaXNjaGVyIFp3aXR0ZXI/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpLYW11c2NoaS1LYXNhY2tpCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZW5uZXIuLi4gOikgKFNpbHZhbmEsICAyLiBEZXogMTk5NiwgMDc6NDI6MjkpOgpGb2xnZW5kZXMgc3RhbW10IGF1cyBkZW4gQmVrYW5udG1hY2h1bmdlbiBkZXMgT2VzdGVycmVpY2hpc2NoZW4KVm9sa3Nob2Noc2NodWxlOgoKRGllIEFidGVpbHVuZyAnQmlsZHVuZ3NhbnN0YWx0IGZ1ZXIgRWhlbWFlbm5lcicgZ2lidCBiZWthbm50LCB3YXMgZWluIE1hbm4Kc3R1ZGllcnQgaGFiZW4gbXVzcywgdW0gZWluIGd1dGVyIEVoZW1hbm4genUgc2VpbjoKCjEuICBKdXJhICAgLSBVbSB6dSBiZWdyZWlmZW4sIGRhc3MgZWluZSBGcmF1IGltbWVyIFJlY2h0IGhhdC4KMi4gIFBvbGl0aWt3aXNzZW5zY2hhZnQgLSB1bSBpbiBqZWRlciBWZXJmYXNzdW5nIGxlYmVuIHp1IGtvZW5uZW4uCjMuICBQaGlsb3NvcGhpZSAtIHVtIGRpZSBMb2dpayBlaW5lciBGcmF1IHp1IHZlcnN0ZWhlbi4KNC4gIE1hdGhlbWF0aWsgLSB1bSB6dSB3aXNzZW4sIHdvcmluIGVpbmUgRnJhdSB1bmJlcmVjaGVuYmFyIGlzdC4KNS4gIFBvZXNpZSAtIHVtIHNpY2ggYXVmIGFsbGUgVW5nZXJlaW10aGVpdGVuIGluIGlocmVtIFdlc2VuIGVpbmVuIFJlaW0KICAgICAgICAgICAgIG1hY2hlbiB6dSBrb2VubmVuLgo2LiAgVGhlb2xvZ2llIC0gdW0gZWluZSBHYXJkaWVuZW5wcmVkaWd0IGVyYmF1bGljaCB6dSBmaW5kZW4uCjcuICBCZXJnYmF1IC0gdW0gZGllIHZlcmJvcmdlbnN0ZW4gR3J1ZW5kZSBpaHJlcyBIZXJ6ZW5zIGVyZm9yc2NoZW4genUKICAgICAgICAgICAgICBrb2VubmVuLgo4LiAgTXVzaWsgLSB1bSBqZWRlcnplaXQgZGFzIExvYiBzZWluZXIgRnJhdSBpbiBhbGxlbiBUb2VuZW4gc2luZ2VuIHp1IAogICAgICAgICAgICAgIGtvZW5uZW4uCjkuICBBbGdlYnJhIC0gdW0genUgd2lzc2VuLCB3YW5uIHNlaW5lIEZyYXUgaWhtIGVpbiBYIGZ1ZXIgZWluIFUgdm9ybWFjaGVuCiAgICAgICAgICAgICAgd2lsbC4KMTAuIEFyY2hpdGVrdHVyIC0gdW0gZnVlciBhbGxlcyBpbW1lciBkaWUgcmVjaHRlIEZvcm0genUgZmluZGVuLgoxMS4gVGhlYXRlcndpc3NlbnNjaGFmdCAtIHVtIHRyb3R6IGFsbGVtIGltZXIgZGVuIGx1c3RpZ2VuIEVoZW1hbm4KICAgICAgICAgICAgICAgICAgICAgICAgICBzcGllbGVuIHp1IGtvZW5uZW4uCjEyLiBaYWhubWVkaXppbiAtIHVtIHZvcmJlcmVpdGV0IHp1IHNlaW4sIHdlbm4gaWhtIHNlaW5lIEZyYXUgZWlubWFsIGRpZQogICAgICAgICAgICAgICAgICBaYWVobmUgemVpZ3QuCjEzLiBLcmFmdHNwb3J0IC0gdW0gc2VpbmUgRWhlZnJhdSBzdGFlbmRpZyBhdWYgSGFlbmRlbiB0cmFnZW4genUga29lbm5lbi4KCgpIbW1tLi4uIHp1bWluZGVzdCBkYXMgbGV0enRlIGR1ZXJmdGUgYmVpIG1pciB1ZWJlcmZsdWVzc2lnIHNlaW4uLi4KICBTaWx2YW5hICh3aWVndCBudXIgMiBrZyB1bmQga2FubiBzZWxic3QgZmxpZWdlbi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFlbm5lci4uLiA6KSAoQmFib29uLCAgMi4gRGV6IDE5OTYsIDEyOjA4OjAwKToKfiMhIHJuPVNpbHZhbmEgcnQ9ODQ5NTA4OTQ5Cn4jISB0aWQ9ODQ5NTA4OTQ5CkhtLCBTaWx2YW5hLCB2ZXJ3aWNrZWx0IHNpY2ggYmVpIGRpciBuaWNodCBpbW1lciBkZXIgQmFydCBpbiBkZW4gRmx1ZWdlbG4/IDotKQoKQmFib29uICh3aWVndCBldHdhcyBtZWhyIGFscyB6d2VpIEtpbG8sIGhhdCBrZWluZW4gQmFydCB1bmQga2FubiB0cm90emRlbQpuaWNodCBmbGllZ2VuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWx0IGFiZXIgZ3V0IChCbG9vZHloYXJyeSwgIDIuIERleiAxOTk2LCAxMjo1OTo1Nyk6CgpHZWZhZWhybGljaGVyIEZsdWcgbWl0IGRlciBBIDYwMAoKRWluIEZsdWdnYXN0IGRlciBBIDYwMCBtdXNzdGUgZHJpbmdlbmQgZGllIFRvaWxldHRlIGJlbnV0emVuLCBhYmVyIGRpZQpIZXJyZW50b2lsZXR0ZSB3YXIgYmVzZXR6dC4gRGllIFN0ZXdhcmRlc3MgZXJrYW5udGUgc2VpbmUgTm90IHVuZCBlcmxhdWJ0ZQppaG0sIGRpZSBEYW1lbnRvaWxldHRlIHp1IGJlbnV0emVuLCB3YXJudGUgaWhuIGFiZXIgZWluZHJpbmdsaWNoLCBuaWNodApkaWUgZG9ydCBhbmdlYnJhY2h0ZW4gS25vZXBmZSAiV1ciLCAiV0wiLCAiUFEiIHVuZCAiQVRFIiB6dSBiZXRhZXRpZ2VuLgoKRG9jaCBkaWUgTmV1Z2llciBkZXMgSGVycm4gd2FyIHNvIGdyb3NzLCBkYXNzIGVyIGRhbm4gZG9jaCBkZW4gS25vcGYgIldXIgpkcnVlY2t0ZS4gRWluIHdhcm1lciBXYXNzZXJzY2h3YWxsIHVtc3B1ZWx0ZSBzZWluIEhpbnRlcnRlaWwuIEFuZ2VuZWhtCnVlYmVycmFzY2h0IGRydWVja3RlIGVyIGRlbiBLbm9wZiAiV0wiLiBHbGVpY2ggZGFyYXVmIHRyb2NrbmV0ZSB3YXJtZSBMdWZ0CnNlaW4gSGludGVydGVpbC4gVG9sbGVyIFNlcnZpY2UsIGRhY2h0ZSBlci4gRXIgZHJ1ZWNrdGUgZGVuIEtub3BmICJQUSIgdW5kCmVpbmUgZ3Jvc3NlIFB1ZGVycXVhc3RlIHB1ZGVydGUgaWhuIG1pdCBkZXplbnQgZHVmdGVuZGVtIFB1ZGVyIGVpbi4KCkFsbGUgQWNodHVuZywgZGllIE1hZWRlbHMgd2VyZGVuIHJpY2h0aWcgdmVyd29laG50ISBFbnR6dWVja3QgZHJ1ZWNrdGUgZXIgZGVuCktub3BmICJBVEUiIHVuZCB3YWNodGUgU3R1bmRlbiBzcGFldGVyIGltIEtyYW5rZW5oYXVzIGF1Zi4gRXJzY2hyZWNrdAprbGluZ2VsdGUgZXIgbmFjaCBkZXIgU2Nod2VzdGVyIHVuZCBmcmFndGUsIG9iIGRhcyBGbHVnemV1ZyBhYmdlc3R1ZXJ6dCBzZWkuCkRpZSBTY2h3ZXN0ZXIgZXJrbGFlcnRlIGlobSwgZXIgaGFiZSBkaWUgV2FybnVuZyBkZXIgU3Rld2FyZGVzcyBuaWNodCBiZWZvbGd0CnVuZCBkZW4gS25vcGYgIkFURSIgPSBBdXRvbWF0aXNjaGVyIFRhbXBvbi1FbnRmZXJuZXIgZ2VkcnVlY2t0LgpTaWUgd3VlbnNjaHRlIGlobSBiYWxkaWdlIEdlbmVzdW5nIHVuZCBzZWluIFBlbmlzIGxhZWdlIHVudGVyIGRlbSBLb3Bma2lzc2VuLgoKCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXOTUtVGlwcyB1bmQgVHJpY2tzIChSb2NodXMsICAyLiBEZXogMTk5NiwgMTg6NDg6MDcpOgpJY2ggaGFiIG1laW5lbiBQQyBqZXR6dCBhdWYgMTI4IE1CIGF1ZmdlcnxzdGV0LiBXaW45NSBoYXQgbWlyIGRhbm4gYmVpbSAKSG9jaGZhaHJlbiBhbmdlYm90ZW4sIDk2IE1CIGRhdm9uIGFscyB2aXJ0dWVsbGVzIExhdWZ3ZXJrIGFuenVtZWxkZW47IApkYW1pdCBrbm50ZSBlcyB3aWVkZXIgd2llIGdld29obnQgaGluIHVuZCBoZXIgc3dhcHBlbi4gSWNoIGhhYmUgZGFubiAKImNhbmNlbCIgZ2Vkcnxja3QuIERhcmF1ZmhpbiBjcmFzaHRlIG1laW5lIEZlc3RwbGF0dGUuIEVnYWwuIFdhciBtaXIgCnNvd2llc28genUgdW5zaWNoZXIuCkljaCBoYWIgamV0enQgbWVpbmUgYWx0ZSBDNjQtRGF0YXNldHRlIGhlcmF1c2dla3JhbXQuIFc5NSBsYWRlIGljaCAKbnVuIHByb2JsZW1sb3MgcGVyIFR1cmJvLVRhcGUgaG9jaC4gSXN0IG51ciBlaW4gYmlpY2hjaGVuIHNjaHdpZXJpZywgd2VnZW4gCkthc3NldHRlbndlY2hzZWwgdW5kIHNvLiBJY2ggbGFkIGF1Y2ggc2Nob24gc2VpdCAzIE1vbmF0ZW47IGFiZXIgZXMgZ2FiIApub2NoIGtlaW5lIEZlaGxlcm1lbGR1bmcsIGRhcyBoZWlnYWJ0LCBlcyBnaWJ0IGVpZ2VudGxpY2ggZ2FyIGtlaW5lIApNZWxkdW5nLCBiaXMgYXVmIGRhcyBCaWxkc2NoaXJtZmxhY2tlcm4uLi4KV2VubiBpY2g0cyBkYW5uIGhvY2hnZWZhaHJlbiBoYWJlLCBpbnN0YWxsaWVyZSBpY2ggZXJzdG1hbCBkYXMKTVMgT2ZmaWNlNDk2LVBha2V0IG1pdCBtZWluZW0gNSwyNSItMzYwS0ItTGF1ZndlcmsuIApTYWd0IG1hbCwga2VubnQgSWhyIHZpZWxsZWljaHQgZWluIGd1dGVzIFNwcmF5IGdlZ2VuIE1vb3MgYXVmIGRlbSBHZWh1c2UgPwoKCm5pY28KCgoKUC5TLjogSGF0IGplbWFuZCBXaW5nIENvbW1hbmRlciBJViBhdWYgNSAxLzQiICgzNjAgS0IpIG9kZXIgRGF0YXNldHRlID8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aXR6IChTbWFydGUsICAyLiBEZXogMTk5NiwgMjE6MDU6MDgpOgoKV2llIGhlaXNzdCBlaW4gZnJhbnpvZXNpc2NoZXIgSHVuZCA/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpMQUJFTExPIDopCgpTbWFydGUgKGZpbmRldCBkZW4gYXVjaCBuaWNodCBzbyBndXQgZGFjaHRlIGFiZXIgdmllbGVpY2h0IHdpbGwgamVtYW5kIGRlbgpob2VocmVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGV1ZmVsY2hlbiBtaXQgU2NoZXVmZWxjaGVuIChLb2JheWFzaGksICAyLiBEZXogMTk5NiwgMjE6MjA6NDUpOgpFaW4gVGV1ZmVsY2hlbiBzb2xsIHNpY2ggYmV3ZWlzZW4uIEVzIHNvbGwgYXVmIGRpZSBFcmRlIGdlaGVuLCB1bmQgZXR3YXMKa2xhdWVuLgpBbHNvIGdyYWVidCBlcyBzaWNoIGhvY2ggYW4gZGllIEVyZG9iZXJmbGFlY2hlbiB1bmQga29tbXQgaW4gZGVyIEFudGFya3RpcwphdXMuCiJJY2ggYmluIGRhcyBUZXVmZWxjaGVuIG1pdCBkZW0gU2NoZXVmZWxjaGVuIHVuZCB3aWxsIGhpZXIgd2FzIGtsYXVlbi4iCkVpbiBQaW5ndWluOiAiSGllciBnaWJ0cyBudXIgRWlzIHVuZCBQaW5ndWluZSIKIkRhbm4gZ3JhYiBpY2ggZWJlbiB3ZWl0ZXIgLi4uIgpEYXMgVGV1ZmVsY2hlbiBncmFlYnQgd2VpdGVyIHVuZCBrb21tdCBpbiBkZXIgU2FoYXJhIGF1cy4KIkljaCBiaW4gZGFzIFRldWZlbGNoZW4gbWl0IGRlbSBTY2hldWZlbGNoZW4gdW5kIHdpbGwgaGllciB3YXMga2xhdWVuLiIKRWluIEthbWVsOiAiSGllciBnaWJ0J3MgbnVyIFNhbmQgdW5kIEthbWVsZSIKIkRhbm4gZ3JhYiBpY2ggZWJlbiB3ZWl0ZXIgLi4uIgpEZXIgVGV1ZmVsY2hlbiBncmFlYnQgd2VpdGVyIHVuZCBrb21tdCBpbiBQb2xlbiBhdXMuCiJJY2ggYmluIGRhcyBUZXVmZWxjaGVuLCB3byBpc3QgbWVpbiBTY2hldWZlbGNoZW4gLi4uIgoKCktvYmF5YXNoaQpQLlMuIFNjaGV1ZmVsY2hlbj1TY2hhZXVmZWxjaGVuIChuZXVlIFJlY2h0c2NocmVpYnVuZz8pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVzk1LVRpcHMgdW5kIFRyaWNrcyAoU3VzaGksICAyLiBEZXogMTk5NiwgMjE6MjE6MTcpOgp+IyEgcm49Um9jaHVzIHJ0PTg0OTU0ODg4Nwp+IyEgdGlkPTg0OTU0ODg4NwpEb2dzIGNyYXdsIHVuZGVyIGZlbmNlcywgUENzIGNyYXdsIHVuZGVyIHdpbmRvd3Mgb2RlciBzbz8KCgpTdXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa3VsdCAoVGFuaXMsICAzLiBEZXogMTk5NiwgMTQ6MzE6NTMpOgoKRWluIE9yayBtaXQgZWluZW0gTWVzc2VyIGltIFJ1ZWNrZW4sIGtvbW10IHp1bSBIZWlsZXI6ICJJY2ggaGFiYmUgZ3Jvc3NzZQpTY2htZWVyeiBpbiBSaWVja2VuISIgRGVyIEhlaWxlciBibGlja3QgYXVmIHNlaW5lIFNhbmR1aHI6ICJUdXQgbWlyIGxlaWQsCkZlaWVyYWJlbmQhIiBlcmtsYWVydCBlciBkZW0gT3JrLiAiQWJiZXIgaWNoIGhhYmJlIHNvb29vIGdyb3Nzc2UgU2NobWVlcnohIgpoZXVsdCBkZXIgT3JrLiBEYXJhdWZoaW4gemllaHQgZGVyIEhlaWxlciBkZW0gT3JrIGRhcyBNZXNzZXIgYXVzIGRlbSBSdWVja2VuLApzdG9lc3N0IGVzIGlobSBpbiBkYXMgbGlua2UgQXVnZSB1bmQgZXJrbGFlcnQ6ICJNZWluIEtvbGxlZ2UgYW0gYW5kZXJlbiBFbmRlCmRlciBTdHJhc3NlIGlzdCBTcGV6aWFsaXN0IGZ1ZXIgQXVnZW5wcm9ibGVtZSAtIGRlciBoYXQgbm9jaCBvZmZlbiEiCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmt1bHRpZ2VyIChUYW5pcywgIDMuIERleiAxOTk2LCAxNDozMjo1NSk6CgpJbiBIYXZlbmEgd2lyZCBlaW4gdG90ZXIgWndlcmcgYXVzIGRlbSBGbHVzcyBnZXpvZ2VuOiBnZWZlc3NlbHQsIGdla25lYmVsdCwgbWl0CmVpbmVyIEVpc2Vua2V0dGUgdW13aWNrZWx0IHVuZCBtaXQgZWluZW0gc2Nod2VyZW4gU3RlaW4gYW4gZGVuIEZ1ZXNzZW4uIERpZQpTdGFkdHdhY2hlIHVudGVyc3VjaHQgZGVuIEZhbGwgdW5kIGRlciBLb3Jwb3JhbCBtZWludCB1bmdlcnVlaHJ0OgoiTWlzdHp3ZXJnZSAtIGtsYXVlbiBpbW1lciBtZWhyLCBhbHMgc2llIHRyYWdlbiBrb2VubmVuISIKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaGF0dGVuIHVlYmVyIHJpdmEgOykgKFRhbmlzLCAgMy4gRGV6IDE5OTYsIDE0OjM0OjA2KToKCkVpbiBkdW5rbGVyIFdpbmtlbCBpbiBSaXZhOiBHYXJkaXN0ZW4gdW50ZXJzdWNoZW4gZWluZW4gdG90ZW4gSG9sYmVyZ2VyLCBkZXIKaW5zZ2VzYW1tdCAxMiBEb2xjaGUgaW0gUnVlY2tlbiBzdGVja2VuIGhhdC4gU2NobGllc3NsaWNoIG1laW50IGRlciBLb3Jwb3JhbDoKIkFsc28sIHNvIGVpbiBicnV0YWxlciBTZWxic3Rtb3JkIGlzdCBtaXIgamEgbm9jaCBuaWUgdW50ZXJnZWtvbW1lbi4iCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc2NoYXR0ZW4gdWViZXIgcml2YSA7KSAoVGFuaXMsICAzLiBEZXogMTk5NiwgMTQ6MzY6MTMpOgp+IyEgcm49VGFuaXMgcnQ9ODQ5NjIwMDQ2Cn4jISB0aWQ9ODQ5NjIwMDQ2CgpFaW4gRWxmIHN0aXJidCBuYWNoIGRyZWlodW5kZXJ0IEphaHJlbiBlcmZ1ZWxsdGVtIExlYmVucy4gRGllIEVsdGVybiBkZXMgVG90ZW4sCmJlaWRlIHNjaG9uIHdlaXQgdWViZXIgZnVlbmZodW5kZXJ0LCBlcndlaXNlbiBkZW0gVmVyc3RvcmJlbmVuIGRpZSBsZXR6dGUgRWhyZS4KUmF1bnQgZXIgaWhyIHp1OiAiSWNoIGhhYmUgZGlyIGRvY2ggZ2xlaWNoIGdlc2FndCwgZGFzcyB3aXIgZGVuIG5pY2h0IGR1cmNoLQpicmluZ2VuLiIKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBzY2hhdHRlbiB1ZWJlciByaXZhIDspIChUYW5pcywgIDMuIERleiAxOTk2LCAxNDozNjo0Mik6Cn4jISBybj1UYW5pcyBydD04NDk2MjAwNDYKfiMhIHRpZD04NDk2MjAwNDYKCkVpbmUgTWFpZCBzcGF6aWVydCBtaXQgZWluZW0ganVuZ2VuIEVsZmVuIGR1cmNoIGRlbiBXYWxkLiBEaWUgTXV0dGVyIGRlciBNYWlkCnVuZCBkZXIgVmF0ZXIgZGVzIEVsZmVuIGJla2xlaWRlbiBkYXMganVuZ2UgUGFhciBhbnN0YW5kc2hhbGJlciwgZG9jaApwbG9ldHpsaWNoIHNpbmQgZGllIFZlcmxpZWJ0ZW4gdmVyc2Nod3VuZGVuLiBEaWUgTXV0dGVyLCBob2VjaHN0IGJldW5ydWhpZ3Q6CiJXYXMgd2VyZGVuIGRpZSBiZWlkZW4gamV0enQgbWFjaGVuPyIgLSBEZXIgYWx0ZSBFbGYsIHNlZWxlbnJ1aGlnOiAiTmFjaGtvbW1lbiIKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc2NoYXR0ZW4gdWViZXIgcml2YSA7KSAoQW5hdG9sLCAgMy4gRGV6IDE5OTYsIDE0OjM4OjI0KToKfiMhIHJuPVRhbmlzIHJ0PTg0OTYyMDIwMgp+IyEgdGlkPTg0OTYyMDA0NgoKKmxhY2gqIGJla2xlaWRlbiBvZGVyIGJlZ2xlaXRlbj8gOy0pCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc2NoYXR0ZW4gdWViZXIgcml2YSA7KSAoVGFuaXMsICAzLiBEZXogMTk5NiwgMTQ6NTI6MDMpOgp+IyEgcm49VGFuaXMgcnQ9ODQ5NjIwMDQ2Cn4jISB0aWQ9ODQ5NjIwMDQ2CgpFaW4gWndlcmcgZXJrdW5kaWd0IHNpY2ggYmVpIGVpbmVyIFJ1ZGVyYmFya2UgYW0gZ3Jvc3NlbiBGbHVzczogIldpZXZpZWwKa29zdGV0IGRpZSBGYWhydCBuYWNoIEZlcmRvaz8iIC0gIlp3ZWkgRHVrYXRlbiEiIG1laW50IGRlciBLYXBpdGFlbi4KRW50c2V0enQgd2VuZGV0IHNpY2ggZGVyIFp3ZXJnIGFiLCB1bmQgYWxzIGRpZSBCYXJrZSBhYmxlZ3QgdW5kIGZsdXNzYWJ3YWVydHMKZ2xlaXRldCwgcmVubnQgZGVyIGt1cnpiZWluaWdlIEdlaXpoYWxzIGFtIFVmZXIgbmViZW5oZXIuIEFscyBkaWUgQmFya2UgZGFzCm5hZWNoc3RlIG1hbCBhbmxlZ3QsIGtldWNodCBkZXIgWndlcmcgaGVyYW4uICJXaWV2aWVsIC1qYXBzLSB3aWV2aWVsIGtvc3RldApkaWUgRmFocnQgbmFjaCBGZXJkb2sgdm9uIGhpZXIgYXVzPyIgLSAiSmV0enQga29zdGV0cyB2aWVyIER1a2F0ZW4hIiBqb2hsdApkZXIgS2FwaXRhZW4uICJGZXJkb2sgbGllZ3QgbmFlbWxpY2ggRmx1c3NhdWZ3YWVydHMhIgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHNjaGF0dGVuIHVlYmVyIHJpdmEgOykgKFRhbmlzLCAgMy4gRGV6IDE5OTYsIDE0OjUyOjI3KToKfiMhIHJuPVRhbmlzIHJ0PTg0OTYyMDA0Ngp+IyEgdGlkPTg0OTYyMDA0NgoKTmFjaHQgZnVlciBOYWNodCB2ZXJzY2h3aW5kZXQgZWluIFNjaGFmLCB6dXJ1ZWNrIGJsZWliZW4gbnVyIEJsdXRmbGVja2UuClNjaGxpZXNzbGljaCB3aXJkIGVzIGRlbSBIaXJ0ZW4genUgZHVtbSB1bmQgZXIgbGVndCBzaWNoIGFiZW5kcyBhdWYgZGllIExhdWVyLgpQbG9ldHpsaWNoLCBzcGFldCBpbiBkZXIgTmFjaHQsIGVydGFwcHQgZXIgZWluZW4gZ3Jvc3NlbiBFbGZlbiwgZGVyIGVpbgplcnNjaG9zc2VuZXMgU2NoYWYgZGF2b250cmFlZ3Q6ICJIZSwgd2FzIGhhc3QgRHUgZGEgYXVmIGRlciBTY2h1bHRlcj8iCkRlciBFbGY6ICJEYXMgaXN0IG1laW4gTGFuZ2JvZ2VuLiBUb2xsLCBuaWNodD8iIERlciBIaXJ0ZSB2ZXJhZXJnZXJ0OgoiSWNoIG1laW50ZSBkaWUgYW5kZXJlIFNjaHVsdGVyISIgdW50IHplaWd0IGF1ZiBkYXMgU2NoYWYuIERlciBFbGYgYmxpY2t0IGF1ZgpkYXMgU2NoYWYsIHZlcmRyZWh0IGRpZSBBdWdlbiB1bmQga3JlaXNjaHQ6ICJBaCEgSGlsZmUhIEdlaCBkYSB3ZWcsIGR1IFZpZWghIgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBzY2hhdHRlbiB1ZWJlciByaXZhIDspIChMYXJpZWwsICAzLiBEZXogMTk5NiwgMTY6MDM6MjkpOgp+IyEgcm49VGFuaXMgcnQ9ODQ5NjIxMTQ3Cn4jISB0aWQ9ODQ5NjIwMDQ2CkFsc28sIGljaCBmaW5kJ3MgamEgaW1tZXIgd2llZGVyIHNjaG9lbiB6dSB3aXNzZW4sIGRhc3MKZXMgYXVzc2VyIG1pciBpbW1lciBub2NoIExldXRlIGltIE1HIGdpYnQsIGRpZSBub2NoIEVDSFRFUwpSb2xsZW5zcGllbCBzcGllbGVuISBWaXZhIGxhIERTQSEKCi0gTGFyaWVsIEZhbGtlbmZsdWcsIElucXVpc2l0b3Igdm9uIFRhcmFtaXMKICAoV2FyIGF1Y2ggc2Nob24gaW4gRHVua2xlbiBTdGFlZHRlbiB1bmQgTGljaHRlbiBXYWVsZGVybiA6KSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHNjaGF0dGVuIHVlYmVyIHJpdmEgOykgKFphcmRveiwgIDMuIERleiAxOTk2LCAxNjoxNToxMik6Cn4jISBybj1MYXJpZWwgcnQ9ODQ5NjI1NDA5Cn4jISB0aWQ9ODQ5NjIwMDQ2Ck9iIERTQSBlY2h0ZXMgUm9sbGVuc3BpZWwgaXN0LCBkYXJ1ZWJlciBrYW5uIG1hbiBzaWNoIHN0cmVpdGVuIDopCgpDaWFvIFphcmRvegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogc2NoYXR0ZW4gdWViZXIgcml2YSA7KSAoTGFyaWVsLCAgMy4gRGV6IDE5OTYsIDE2OjE4OjA4KToKfiMhIHJuPVphcmRveiBydD04NDk2MjYxMTIKfiMhIHRpZD04NDk2MjAwNDYKQWxzIHdhcyB3dWVyZGVzdCBkdSBEU0EgZGVubiBzb25zdCBiZXplaWNobmVuPyBXYXMgc3BpZWxzdCBkdSBkZW5uPwpUdW5uZWxzIGFuZCBUcm9sbHM/IFNoYWRvd3J1biAoKmtpY2hlciopPwoKLSBMYXJpZWwgRmFsa2VuZmx1ZyB1c3cuCiAgKElzdCBlcyBsZWlkLCBzZWluZW4gZGFlbWxpY2hlbiBOYW1lbiBhdXN6dXNjaHJlaWJlbi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBzY2hhdHRlbiB1ZWJlciByaXZhIDspIChBbmNhbGFnb24sICAzLiBEZXogMTk5NiwgMTc6NTY6NDIpOgp+IyEgcm49WmFyZG96IHJ0PTg0OTYyNjExMgp+IyEgdGlkPTg0OTYyMDA0NgpIYWxsbyBlcnN0bWFsIQpPY2gsIHdlbm4gbWFuIGRhcyBNYWdpZXN5c3RlbSB3ZWdsYWVzc3QsIGRlbiByZXN0IG5pY2h0IHRpZXJpc2NoIGVybnN0IG5pbW10CnVuZCBtaXQgZGVuIHJpY2h0aWdlbiBMZXV0ZW4gc3BpZWx0LCBpc3QgRFNBIGdhciBuaWNodCBTT09PT08gdWViZWwuLi4uLi4gOikKbnVyJ24gYmlzc2NoZW4gU2VuZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuY2FsYWdvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJhY28ga251ZGRlbGxlbnNpcyBtYWpvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIChHcmltbWJvcm4sICAzLiBEZXogMTk5NiwgMTk6MTg6MDgpOgoKIkJhdWQiIGlzdCBkaWUgQWJrdWVyenVnIHZvbiAiQmVhdWZvcmQiLCBkZW0gTWFzcyBmdWVyIGRpZSBXaW5kc3RhZXJrZS4gCjI4LjgwMCBiYXVkIGVudHNwcmVjaGVuIGV0d2EgNTQwMCBrbS9oLCBkYXMgaXN0IGF1Y2ggZGVyIEdydW5kIHdhcnVtIGVzIGltbWVyCnNvIHBmZWlmdCBpbiBkZXIgTGVpdHVuZy4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBzY2hhdHRlbiB1ZWJlciByaXZhIDspIChSYWZmaSwgIDQuIERleiAxOTk2LCAxMToyODowNSk6Cn4jISBybj1MYXJpZWwgcnQ9ODQ5NjI1NDA5Cn4jISB0aWQ9ODQ5NjIwMDQ2CkRTQSBpc3QgUm9sbGVuc3BpZWwgPwoKSWNoIGRhY2h0ZSBpbW1lciBkYXMgd2FlcmUgZGVyIGJlc3RlIHdlZyBuZW4gV3VlcmZlbGFybSB1bmQKc2VobmVuc2NoZWlkZW5lbnR6dWVuZHVuZyB6dSBiZWtvbW1lbi4KCkdydWViZWxuZApILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGltbWxpc2NoZXIgVXJsYXViIChLcmV0ZWssICA0LiBEZXogMTk5NiwgMTE6NTc6MjMpOgpEaWUgaGltbWxpc2NoZW4gSGVlcnNjaGFyZW4gYmVzY2hsaWVzc2VuLCB3aWVkZXIgbWFsIGluIFVybGF1YiB6dSBmYWhyZW4uCk51biBnZWh0IGVzIG51ciBub2NoIGRhcnVtLCBlaW4gZ2VlaWduZXRlcyBSZWlzZXppZWwgYXVzenV3YWVobGVuLi4uCgpQZXRydXM6ICJGYWhyZW4gd2lyIGRvY2ggbmFjaCBKZXJ1c2FsZW0hIgpKZXN1czogIkFjaCwgbm9lLCBtb2VjaHRlIGljaCBlaWdlbnRsaWNoIGxpZWJlciBuaWNodCwgc2NobGVjaHRlCiAgICAgICAgRXJpbm5lcnVuZ2VuLi4uIFdhcnVtIGZhaHJlbiB3aXIgbmljaHQgbmFjaCBMb3VyZGVzPyIKTWFyaWE6ICJNb2Vuc2NoLCBMb3VyZGVzLCBkYSBiaW4gaWNoIGRvY2ggd2lya2xpY2ggc2Nob24gc28gb2Z0IGdld2VzZW4hCiAgICAgICAgV2llIHdhZXIncyBkZW5uIG1pdCBSb20/IgpIbC4gR2Vpc3Q6ICJBdSBqYSwgcHJpbWEsIGRhIHdhciBpY2ggbm9jaCBuaWUhIgoKCksuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaWVzdGlnIChXYXJnb24sICA2LiBEZXogMTk5NiwgMTA6NDY6MTApOgpUaGUgTnVtYmVyIG9mIHRoZSBCZWFzdDogMDE5MC82NjYgNjY2CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHNjaGF0dGVuIHVlYmVyIHJpdmEgOykgKFllbmRpLCAgNi4gRGV6IDE5OTYsIDE2OjIyOjQzKToKfiMhIHJuPVRhbmlzIHJ0PTg0OTYyMTE0Nwp+IyEgdGlkPTg0OTYyMDA0NgoKSG1tbS4uLiBzY2hvbm1hbCB2ZXJzdWNodCwgZWluIGtvbXBsZXR0ZXMgU2NoYWYgenUgdHJhZ2VuPwpEaWVzZXIgRWxmIG11c3MgZWluZW4gT2dlciBpbSBTdGFtbWJhdW0gaGFiZW4sIHdlbm4gZGVyIGRhcyBWaWVoIHNvCmxvY2tlcmZsb2NraWcgdWViZXIgZGllIFNjaHVsdGVyIHdpcmZ0Li4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFuLUNsdWIgKFRvZSwgIDcuIERleiAxOTk2LCAxMzowOTo0OSk6ClNlbWlyYSAgIEkgUyBUICAgSiBFIFQgWiBUICAgRCBBICEhIQpEZWluZSBGcmV1bmRpbiBTZW1pcmEgdGVpbHQgRGlyIG1pdDogaHVodQpFaW4gQmVpZmFsbHNzdHVybSBicmFuZGV0IGltIERpYW1vbmRwYXJrIGF1Zi4gV2FzIGRhIHdvaGwgd2llZGVyIGxvcyBpc3Q/Cgo6LSkpKSksIHRvZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIFdpdHosIHdhcyBzb25zdC4gKEphcmllbCwgIDcuIERleiAxOTk2LCAxOTo1MTozNik6Clp3ZWkgTWFlbm5lciBsaWVnZW4gaW0gS3JhbmtlbmhhdXMuIEJlaWRlIHNpbmQgYW0gZ2FuemVuIEtvZXJwZXIKYmFuZGFnaWVydC4gTWVpbnQgZGVyIGVpbmU6IkljaCBoYXR0ZSBlaW5lbiBBdXRvdW5mYWxsLCB1bmQgU2llPyIKRXJ3aWVkZXJ0IGRlciBhbmRlcmU6IkRydWNrZmVobGVyIGltIENoZW1pZWJ1Y2ghIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3aWVkZXIgd2FzIGZ1ZXIgQmxvbmRlOiAoUmFmZmksICA5LiBEZXogMTk5NiwgMTQ6Mjk6MjcpOgpXYXJ1bSBLbGF1ZW4gQmxvbmRpZW5lbiBhbSBsaWVic3RlbiB3YXMgaW0gQWxkaSA/CgoKV2VpbHMgZGEgYW0gYmlsbGlnc3RlbiBpc3QhCgpHcmlucwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJlaXNmcmFnZSAoRW5neXd1Y2ssICA5LiBEZXogMTk5NiwgMTQ6MzU6NDEpOgpGcmFnZTogaXN0IGZvbGdlbmRlciBXaXR6IG1hZW5uZXJmZWluZGxpY2ggb2RlciBmcmF1ZW5mZWluZGxpY2g/CgpVbnRlcmhhbHRlbiBzaWNoIHp3ZWkgTWFlbm5lci4KIzE6IER1LCBpY2ggZ2xhdWIsIG1laW5lIEZyYXUgaXN0IHRvdC4KIzI6IFdpZXNvIG1laW5zdGUgZGVubiBkYXM/CiMzOiBOYWphLCBiZWltIFNleCBpc3QgZXMgd2llIGltbWVyLCBhYmVyIGluIGRlciBLdWVjaGUgc2llaHRzIGF1cyB3aWUgc2F1LgoKR3J1c3MsCkUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2hhZmUgKFN1c2hpLCAxMC4gRGV6IDE5OTYsIDAyOjUwOjM1KToKV29oZXIga29tbXQgInZpcmdpbiB3b29sIj8KCgoKCgoKCgoKCgoKCgoKCgoKCgpWb24gaGFlc3NsaWNoZW4gU2NoYWZlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hcnNtYWVubmNoZW4gKFN1c2hpLCAxMC4gRGV6IDE5OTYsIDAzOjAxOjM5KToKLyogaXN0IGVpbiB3ZW5pZyBsYW5nLi4uICovCgoKTWFubmkgdW50ZXJ3ZWdzIGF1ZiBkZXIgQXV0b2JhaG4uLi4gcGxvZXR6bGljaCBlaW4ga2xlaW5lcyBibGF1ZXMgTWFlbm5jaGVuCnZvciBpaG0uLi4KTWFubmkgc3ByaW5ndCByYXVzIHVuZCBzY2hyZWl0IHJ1bTogIldBcyB3aWxsc3QgRHUgZGVubj8iCk1hZW5uY2hlbjogIkljaCBiaW4gZGFzIGJsYXVlIE1hZW5uY2hlbiB2b20gTWFycywgaWNoIGJpbiBzdG9ja3NjaHd1bCB1bmQgaWNoCmhhYmUgSHVuZ2VyISIKTWFubmkgd2lyZnQgaWhtIGVpbiBTbmlja2VycyB6dSB1bmQgZmFlaHJ0IHdlaXRlci4gRGEhIEVpbiByb3RlcyBNYWVubmNoZW46CiJJY2ggYmluIGRhcyByb3RlIE1hZW5uY2hlbi4gSWNoIGJpbiBzdG9ja3NjaHd1bCwgdm9tIE1hcnMgdW5kIGhhYmUgRHVyc3QuLi4iCk1hbm5pIHdpcmZ0IGlobSBlaW5lIENvbGEgYW4gZGVuIEtvcGYgdW5kIGZhZWhydCB3ZWl0ZXIuLi4KUGxvZXR6bGljaCBlaW4ga2xlaW5lcyBncnVlbmVzIE1hZW5uY2hlbi4uLgpNYW5uaSBzcHJpbmd0IHJhdXMgdW5kIHNjaHJlaXQ6ICJJY2ggd2Vpc3MsIER1IGJpc3QgZWluIGtsZWluZXMgZ3J1ZW5lcwpNYWVubmNoZW4gdm9tIE1hcnMsIER1IGJpc3Qgc3RvY2tzY2h3dWwgLSB1bmQgd2FzIHdpbGxzdCBEdT8iCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpJaHJlIFBhcGllciB1bmQgSWhyZW4gRnVlaHJlcnNjaGVpbiBiaXR0ZS4uLiIKCgoKCgoKCgoKClN1c2hpIC0gaGV1dGUgb2huZSBCYWNrc3BhY2UsIHN0YXR0ZGVzc2VuIG1pdCBUeXBvZXMuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJhdWNoZXIgKFN1c2hpLCAxMC4gRGV6IDE5OTYsIDA2OjQ3OjQ0KToKUmF1Y2hlbiBTaWUgZGFuYWNoPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKS2VpbmUgQWhudW5nLCBuaWUgbmFjaGdlc2NoYXV0LgoKClN1c2hpICAtICBmaXggdW5kIGZveGkuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2guLi4uIChKYXNwZXIsIDExLiBEZXogMTk5NiwgMDI6MjE6MzApOgpQcm9sbCAxIHVuZCBQcm9sbCAyIHN0ZWhlbiBhbiBkZXIgVGhla2UgdW5kIHBoaWxvc29waGllcmVuIHVlYmVyIGRpZQpTYXVnZXJxdWFsaXRhZXRlbiBlaW5pZ2VyIHdpbGQgaHVlcGZlbmRlciBKdW5nYmliZXIgYXVmIGRlciAKVGFuemZsYWVjaGUuCgpQcm9sbCAxOiBVZWJyaWdlbnMsICpsYWxsKiB3dXNzdGVzdCBEdSBlaWdlbnRsaWNoLCBkYXNzIGltIEJpZXIKICAgICAgICAgd2VpYmxpY2hlIEhvcm1vbmUgZW50aGFsdGVuIHNpbmQ/PyEhClByb2xsIDI6ICppZWVrcyogKmVyc2Nocmlja3QgdW5kIGJlc2FiYmVsdCBzaWNoKiBXaWVzbyBkZW5uIGRhcz8/PwogICAgICAgICBXbyBoYXN0IGR1IGRhcyBkZW5uIGhlcj8KClByb2xsIDE6IE5hamEgaW1tZXIgd2VubiBpY2ggQmllciBnZXRydW5rZW4gaGFiZSBsYWJlciBpY2ggbnVyIG5vY2gKICAgICAgICAgU2NoZWlzc2UgdW5kIGthbm4ga2VpbiBhdXRvIG1laHIgZmFocmVuLiAqZ3JpbnMqCgpQcm9sbDIgZ3JpbnN0IGF1Y2guClByb2xsMSB1bmQgUHJvbGwyIHByb3N0ZW4gdW5kIHBoaWxvc29waGllcmVuIHdlaXRlciB1ZWJlciBkaWUKU2F1Z2VycXVhbGl0YWV0ZW4KCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbnRhIE1hbnRhIChLb2JheWFzaGksIDExLiBEZXogMTk5NiwgMjA6NDA6NTIpOgpXYXMgaXN0IGRhczogRWluIE1hbnRhIG1pdCBEYWNoZ2VwYWVja3RyYWVnZXIgdW5kIGVpbmVuIEJhbGxlbiBTdHJvaCBkcmF1Zj8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkV4dGVuZGVkIE1lbW9yeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hbnRhIE1hbnRhIChPZXR0aSwgMTEuIERleiAxOTk2LCAyMToxNDowMCk6Cn4jISBybj1Lb2JheWFzaGkgcnQ9ODUwMzMzMjUyCn4jISB0aWQ9ODUwMzMzMjUyCkZ1ZXIgRGVpbmVuIGxldHp0ZW4gQXJ0aWtlbCB3aXJkIEdyaW1tYm9ybiBEaWNoIGxpZWJlbiwgRmV1ZXJ3ZWhyLi4uLgoKKmdyaW5zKgoKT2UqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXRlbnNjaHV0eiAoUm9jaHVzLCAxMi4gRGV6IDE5OTYsIDE0OjU2OjU1KToKIk1vc2wgUm9sYW5kIiA8cGVnZUBtYWduZXQuYXQ+IHdyb3RlOgoKPkljaCBrYW5uIGJlaW0gYmVzdGVuIFdpbGxlbiBuaWNodCBkaWUgZ2FuemUgSHlzdGVyaWUgdW0gZGVuIERhdGVuc2NodXR6IAo+dmVyc3RlaGVuLiBEaWUgRm9yZGVydW5nIG5hY2ggRGF0ZW5zY2h1dHogaXN0IGV0d2FzIGFic3VyZGVzIHdpZSBzaWNoCj5sZWljaHQgYmV3ZWlzaWNoZW4gbHNpY2h0LgoKPkluIGRlciBTY2h1bGUgbGVybnRlIGljaCBpcmdlbmR3YW5uIGltIFJlbGlnaW9uc3VudGVyaWNodDoKCj4iR290dCB3ZWlSZWxpZ2lvbnN1bnRlcmljaHQ6IGFsbGVzLi4uIEdvdHQgaXN0IGFsbHdpc3NlbmQiCj4iR290dCBzaWVodCBEaWNoIGltbWVyLi4uIgoKPkF1cyBkZXIgU2ljaHQgZGVyIERhdGVuc2NofHRlciBodHRlbiB3aXIgZGFtaXQgd29obCBkZW4gZ3JpbW1lci4uLiJ0ZW4KPmlsbGVnYWxlbiBEYXRlbnNhbW1sZXIgaW0gZ2FuemVuIFVuaXZlcnN1bSBlbnRkZWNrdCEgRXMgd2lyZCB2b24KPmRpZXNlbiBHb3R0IGRvY2ggYmVoYXVwdGV0LCBkYXZvbiBlciBlaW5lIHN0bmRpZ2UgLSBuYXR8cmxpY2ggaWxsZWdhbGUgLQo+QXVmemVpY2hudW5nIHZvbiBhbGxlbiBBa3Rpdml0dGVuIGplZGVzIGVpbnplbG5lbiBmfGhydC4KCj5Tb3ZpZWwgaWNoIHdlaWZ8aHJ0LiBpc3QgZGVyIGdyZnxocnQudGUgVGVpbCBEZXV0c2NobGFuZHMgZXZhbmdlbGlzY2ggb2Rlcgo+a2F0aG9saXNjaC4KCj5BbHNvIGRhIGphZ3QgZGVyIGxpZWJlIERhdGVuc2NofHR6ZXIgZGllIGdhbnplIFdvY2hlIE1lbnNjaGVuIGRpZQo+Z2VnZW4gZGFzIERhdGVuc2NodXR6Z2VzZXR6IHZlcnN0b2RpZWVuLgoKPlVuZCB3YXMgbWFjaHQgZGllc2VyIGxpZWJlIERhdGVuc2NofHR6ZXIgYW0gU29ubnRhZz8gRXIgZ2VodCBpbgo+ZGllIEtpcmNoZSB1bmQgYmV0ZXQgZGVuIGdyaW50ZW4gaWxsZWdhbGVuIERhdGVuIFNhbW1sZXIgYW4uCgo+QWxzbyBlbnR3ZWRlciBsZWJ0IGRlciBsaWViZSBEYXRlbnNjaHx0emVyIG1pdCBkaWVzZXIKPlNjaGl6b3BocmVuaWUgd2VpdGVyIG9kZXIgZXIgc2NoaWNrdCBzb2ZvcnQgZWluZSBVbnRlcmxhc3N1bmdzZm9yZGVydW5nCj5taXQgS2xhZ2Vkcm9odW5nIGFuIEdvdHQuCgo+U2VociBnZWVocnRlciBHb3R0IQoKPldpciBoYWJlbiBhdXMgdmVyc2NoaWVkZW5lbiBRdWVsbGVuIGdlaHJ0LCBkYUdvdHQhIFNpZQo+ZWluZSBpbGxlZ2FsZSBEYXRlbnNhbW1sdW5nIFBlcnNvbmVuIGJlem9nZW5lciBEYXRlbgo+aGFiZW4uCgo+V2lyIGZvcmRlcm4gZGVyZW4gc29mb3J0aWdlIExzY2h1bmcsIGFuZGVybmZhbGxzIHdpciB1bnMKPnp1IHJlY2h0bGljaGVuIFNjaHJpdHRlbiBnZXp3dW5nZW4gc2VoZW4uCgo+SG9jaGFjaHR1bmdzdm9sbAo+RGF0ZW5zY2h8dHplcgoKRHUgd2FocnNjaGVpbmxpY2ggdW5yZWNodCwgd2VpbDoKCjEuIEVzIGdpYnQgbmF0fHJsaWNoIGdhciBrZWluZW4gR290dC4KCjIuIFdlbm4gZG9jaCwgaXN0IHNlaW5lIERhdGVuc2FtbWx1bmcgcHJpdmF0ZXIgTmF0dXIgdW5kIGZsbHQgZGFtaXQKCiAgICBuaWNodCB1bnRlciBkYXMgQkRTRy4KCjMuIEVyaGVidCwgdmVyYXJiZWl0ZXQgb2RlciBudXR6dCBlciBkaWUgRGF0ZW4gYWJlciBnZXNjaGZ0c21zc2lnLAoKICAgIGZ8ciBiZXJ1ZmxpY2hlIG9kZXIgZ2V3ZXJibGljaGUgWndlY2tlLCBzbyBtdXNzIGVzLCBkYSBlciBqYQogICAgR2VzY2hmdHNwYXJ0bmVyIGhhYmVuIG11c3MsIG1laHIgYWxzIGVpbmVuIEdvdHQgZ2ViZW4uIEluIGRpZXNlbQogICAgRmFsbCBoYWJlbiBkaWUgZ2VuZWlndGVuIEdsYXViZW5zcmljaHR1bmdlbiBlaW4gZ3Jzc2VyZXMgUHJvYmxlbSwKICAgIGFscyBkZW4gRGF0ZW5zY2h1dHouCihGcm9tOiBoaEBpYmgudGZ1LnVuaS11bG0uZGUgKEhvbGdlciBIZWltYW5uKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthcnRlbiAoV3VhcnN0LCAxNy4gRGV6IDE5OTYsIDE2OjQ2OjE1KToKV2llIGhpZXNzdCBkYXMgLCB3ZW5uIHp3ZWkgZWluYXJtaWdlIElkaW90ZW4gS2FydGVuIHNwaWVsZW4gd29sbGVuPwoKCgoKTUlTU0lPTiBJTVBPU1NJQkxFCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2FydGVuIChTdW5mbG93ZXIsIDE3LiBEZXogMTk5NiwgMTY6NDc6NTMpOgp+IyEgcm49V3VhcnN0IHJ0PTg1MDgzNzU3NQp+IyEgdGlkPTg1MDgzNzU3NQpobW0sIG11c3MgbWFuIGRlbiB2ZXJzdGVoZW4gPyBkaWUgaGFiZW4gYmVzdGltbXQgbmUgbWlzY2htYXNjaGluZSB1bmQgZGllCmthcnRlbiBrYW5uIG1hbiBhdWNoIGluIGVpbmVyIGhhbmQgaGFsdGVuICEKCkltbWVyIGRpZXNlIEJlbGVpZGlndW5nZW4gYXVmIEJlaGluZGVydGUKClN1bmZsb3dlciwgZGllIGRhcyBudXIgc2FnZW4gd29sbHRlCgogICAgICAgICAgICAgICAgICAgIC0tPT09IGJsdWVtY2hlbiA9PT0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSWRpb3RlbndpdHogKFd1YXJzdCwgMTcuIERleiAxOTk2LCAxNjo0ODo1MSk6CkFsc28sIHNpdHp0IGVpbiBOZWdlciBhdWYgbmVtIEZlbGQsIHVuZCBzdHJpY2t0IHNpY2ggZWluZW4gS2Vrcy4KS29tbXQgZWluIEphZWdlciB2b3JiZWkgdW5kIHNhZ3Q6IiBFeSAsIGhpZXIgaXMgYW5nZWxuIHZlcmJvdGVuISIKU2FndCBkZXIgTmVnZXI6ICJXYXMgZ2VoZW4gbWljaCBEZWluZSBFcmRiZWVycHJlaXNlIGFuICwgaWNoIGJpbiBtaXRtIEZhaHJyYWQKZGEhIgoKOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJZGlvdGVud2l0eiAoTXVwZmVsLCAxNy4gRGV6IDE5OTYsIDE4OjA5OjM2KToKfiMhIHJuPVd1YXJzdCBydD04NTA4Mzc3MzEKfiMhIHRpZD04NTA4Mzc3MzEKRnJhZ2U6IEVpbiBVLUJvb3QgbXVzcyBpbiBkZXIgV3Vlc3RlIG5vdGxhbmRlbi4gV2lldmllbGUgU3BpZWdlbGVpZXIga2FubiBtYW4KYXVmIHNlaW5lbiBSYWVkZXJuIGJyYXRlbj8KQW50d29ydDogRWluIEpvZ2h1cnQgaGF0IHNpZWJlbiBEcmFlaHRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTXVzaWtlcndpdHogKEdyaW1tYm9ybiwgMTcuIERleiAxOTk2LCAxOTowNjozOSk6CgpXaWUga2FubiBtYW4gZGllIEJlYXRsZXMgd2llZGVydmVyZWluaWdlbj8KTWFuIGJyYXVjaHQgZWluZW4gUmV2b2x2ZXIgdW5kIGRyZWkgUGF0cm9uZW4uLi4KCkdkQQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBtYWNodCBtYW4gYXVzIGRyZWkgTWFlbm5lcm4gdW5kIGVpbiBNZXNzZXI/IChLb2JheWFzaGksIDE3LiBEZXogMTk5NiwgMTk6MzM6MjMpOgpXYXMgbWFjaHQgbWFuIGF1cyBkcmVpIE1hZW5uZXJuIHVuZCBlaW4gTWVzc2VyPy4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkJlZSBHZWUncwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYmxvbmRpIChTdW5mbG93ZXIsIDE3LiBEZXogMTk5NiwgMTk6MzQ6NTApOgpXYXMgaGF0IGVpbiBDaGluZXNlIGJlc3RlbGx0LCB3ZW5uIGVyIGF1cyBkZXIgQmFlY2tlcmVpIG1pdCBuZXIgQmxvbmRpbmUKcmF1c2tvbW10ID8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKRWluIEJsb2V0Y2hlbiAKCiAgICAgICAgICAgICAgICAgICAgLS09PT0gYmx1ZW1jaGVuID09PS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYmxvbmRpIChBc21vZGlzLCAxNy4gRGV6IDE5OTYsIDE5OjM2OjQyKToKfiMhIHJuPVN1bmZsb3dlciBydD04NTA4NDc2OTAKfiMhIHRpZD04NTA4NDc2OTAKSWNoIGhhYiBtaWNoIHNjaG9uIGdlZnJhZ3QsIHdhbm4gZGVyIFdpdHogd2llZGVyIGF1cyBkZXIgTW90dGVua2lzdGUKYmVmcmVpdCB3aXJkLiBEYW5rZSwgU3VuZmxvd2VyICEgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJZGlvdGVud2l0eiAoR2FuZG8sIDE3LiBEZXogMTk5NiwgMjA6MjY6MDApOgp+IyEgcm49V3VhcnN0IHJ0PTg1MDgzNzczMQp+IyEgdGlkPTg1MDgzNzczMQpTaXR6ZW4gMiBQZW5uZXIgaW4gZGVyIFd1ZXN0ZSB1bmQgYW5nZWxuLgpLb21tdCBlaW4gUG9saXppc3Qgdm9yYmVpIHVuZCBtZWludDogSEVZISBIaWVyIGlzdCBQYXJrZW4gdmVyYm90ZW4hCk1laW50IGRlciBhbmRlcmUgUGVubmVyOiBOZWluZSBkYW5rZSwgaWNoIGhhYiBzY2hvbiBnZWdlc3Nlbi4KVW5kIG51biBkaWUgUHJlaXNmcmFnZTogV2FydW0gaGF0IGRlciBKb2dodXJ0IGtlaW5lIEdyYWV0ZW4/CjotKQpHYW5kbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29tbXQgZWluIE1hbm4gdW0gZGllIEVja2UsIGlzdCBkZXIgQnVzIFdlZy4gKEdhbmRvLCAxNy4gRGV6IDE5OTYsIDIwOjI4OjQyKToKS29tbXQgZWluIEJ1cyB1bSBkaWUgRWNrZSwgaXN0IGRlciBNYW5uIFdlZy4KS29tbXQgZWluIEJ1cyB1bmQgZWluIE1hbm4gdW0gZGllIEVja2UsIGlzdCBkaWUgRWNrZSB3ZWcuCj8/Pz8/Pz8/CgoKb2RlciBnYW56IGVpbmZhY2g6CktvbW10IGVpbiBNYW5uIHp1IFZpZWxtYW5uLiA6LSkKRy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSWRpb3RlbndpdHogKExvY28sIDE3LiBEZXogMTk5NiwgMjA6MzA6MDEpOgp+IyEgcm49R2FuZG8gcnQ9ODUwODUwNzYwIHJnPXdpdHplCn4jISB0aWQ9ODUwODM3NzMxCkdhbnogZWluZmFjaCwgd2VpbCBkaWUgUGVubmVyIGtlaW5lbiBGaXNjaCBnZWZhbmdlbiBoYWJlbi4gVW5kIHdlciBrZWluZW4KRmlzY2ggaGF0LCBoYXQgYXVjaCBrZWluZSBHcmFldGVuIHVuZCBrYW5uIGRhbWl0IGtlaW5lIGluIGRlbiBKb2dodXJ0IHR1bi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IElkaW90ZW53aXR6IChTdW5mbG93ZXIsIDE3LiBEZXogMTk5NiwgMjA6MzE6MTIpOgp+IyEgcm49TG9jbyBydD04NTA4NTEwMDEKfiMhIHRpZD04NTA4Mzc3MzEKaG1tLApnZWh0IGVpbiBtYW5uIHVlYmVyIGRpZSBzdHJhc3NlIHVuZCBlaW4gYW5kZXJlciBoYXQgZGllIGdsZWljaGVuIHNjaHVoZSBhbiA7KQoKICAgICAgICAgICAgICAgICAgICAtLT09PSBibHVlbWNoZW4gPT09LS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRvbWF0ZW4gKEtvYmF5YXNoaSwgMTcuIERleiAxOTk2LCAyMDo0MTozOCk6CkdlaGVuIHp3ZWkgVG9tYXRlbiB1ZWJlciBkaWUgU3RyYXNzZS4KU2FnIGRpZSBlaW5lIHp1YXIgYW5kZXJlbjogUGFzcyBhdWYsIGRhIGtvbW10IGVpbiBMSy4uLldhdHNjaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUb21hdGVuIChBbmF0b2wsIDE3LiBEZXogMTk5NiwgMjE6MDY6MDApOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg1MDg1MTY5OAp+IyEgdGlkPTg1MDg1MTY5OAoKV2FzIGhhdCBkYXMgbWl0IGVpbmVyIFVudGVyd2Fzc2VydGVsZWZvbnplbGxlIHp1IHR1biA/IQoKVmVyc3RlaHQgbmljaHQgamVkZW4gV2l0eiwKQW5hdG9sIDstKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1vdHRlbmtpc3RlIChTY2hva28sIDE3LiBEZXogMTk5NiwgMjE6MjA6NTQpOgpIbW1tCgpHZWhuIHp3ZWkgTmVnZXIgaW4gZWluZSBNaWxjaGJhciwgYWxzIHNpZSB3aWVkZXIgcmF1c2tvbW1lbiBoYXQgZGVyIEFuZHJlIGF1Y2gKNSBNYXJrIQoKU2Nob2tvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTW90dGVua2lzdGUgKE11cGZlbCwgMTcuIERleiAxOTk2LCAyMTozMzoxNyk6Cn4jISBybj1TY2hva28gcnQ9ODUwODU0MDU0Cn4jISB0aWQ9ODUwODU0MDU0CgpEZXIgQW5kcmU/IFdhcyBoYXQgZGVubiBkZXIgQW5kcmUgZGFtaXQgenUgdHVuPyAqZ3J1ZWJlbCoKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1vdHRlbmtpc3RlIChGeXQsIDE3LiBEZXogMTk5NiwgMjM6NTI6NDcpOgp+IyEgcm49TXVwZmVsIHJ0PTg1MDg1NDc5Nwp+IyEgdGlkPTg1MDg1NDA1NAoKRmVpbiwgaWNoIGtyaWVnIGZ1ZW5mIE1hcms/IDstKQoKQW5kcmUnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphcnRpa2VsIE51ciBsZWljaHQgcmFzc2lzdGlzY2guLi4gOi0pIChLcmV0ZWssIDE4LiBEZXogMTk5NiwgMTE6MzQ6MjkpOgpFaW4gQ2hpbmVzZSBnZWh0IGluIGVpbmUgS25laXBlLiBIaW50ZXIgZGVyIFRoZWtlIHN0ZWh0IGVpbiBTY2h3YXJ6ZXIuCkRlciBDaGluZXNlIGdlaHQgYW4gZGllIFRoZWtlIHVuZCBtZWludDogIkljaCBoYWV0dGUgZ2VsbmUgZWluIEdsYXMgTHVtLiIKRGVyIEJhcmtlZXBlciBzY2hhdXQgaWhuIHZlcmR1dHp0IGFuLCB1bmQgc2FndCBkYW5uOiAiRGFzIGhlaXNzdCBSdW0uIEtvbW0sCnNhZyBlaW5mYWNoIG1hbCAnUnVtJy4iIERlciBDaGluZXNlIHN0dXR6dCwgc2NobHVja3QsIHVuZCBhbnR3b3J0ZXQ6ICJMdW0uIgoiTmVpbiwgbmVpbiwgc28ga29tbWVuIHdpciBuaWNodCB3ZWl0ZXIsIGRpZSBTaXR1YXRpb24gaXN0IHZlcmZhaHJlbiwiIHNhZ3QKZGVyIFNjaHdhcnplLiAiR2VoIGVpbmZhY2ggbm9jaG1hbCByYXVzLCBrb21tIHdpZWRlciByZWluLCB1bmQgZGFubiBzYWcKJ0ljaCBoYWV0dGUgZ2VybmUgZWluIEdsYXMgUnVtLiciIERlciBDaGluZXNlIGd1Y2t0IHZlcndpcnJ0LCBnZWh0IHJhdXMsCmtvbW10IHdpZWRlciByZWluLCBnZWh0IGFuIGRpZSBUaGVrZSwgdW5kIGJlc3RlbGx0ICJFaW4gR2xhcyBMdW0uIiBEZXIKQmFya2VlcGVyIGlzdCBzY2hpZXIgYW0gVmVyendlaWZlbG4gdW5kIHN0YXJ0ZXQgZWluZW4gbGV0enRlbiBWZXJzdWNoOgoiV2Vpc3N0IER1IHdhcywgaWNoIHplaWcgRGlyIGpldHp0IG1hbCwgd2llJ3MgZ2VodC4gU3RlbGwgRGljaCBEdSBtYWwgaGludGVyCmRpZSBUaGVrZSwgdW5kIGljaCBnZWggcmF1cywga29tbSB3aWVkZXIgcmVpbiwgdW5kIGJlc3RlbGxlIFJ1bSwgT0s/IgoiT0siIG1laW50IGRlciBDaGluZXNlLgpBbHNvIGdlaHQgZGVyIFNjaHdhcnplIGF1cyBkZXIgQmFyLCBnZWh0IHdpZWRlciByZWluLCBtYXJzY2hpZXJ0IHp1ciBUaGVrZSwKZ3JpbnN0IHNpZWdlc3NpY2hlciwgdW5kIG1laW50ICJJY2ggaGFldHRlIGdlcm5lIGVpbiBHbGFzIFJ1bS4iIERhcmF1ZiBkZXIKQ2hpbmVzZTogIlR1dCBtaWwgbGVpZCwgYWJlbCBOZWdlbCB3ZWxkZW4gaGllbCBuaWNodCBiZWRpZW50ISIKCgoKSy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvbnZlbnRpb25lbiAoR3JpbW1ib3JuLCAxOC4gRGV6IDE5OTYsIDEzOjE2OjQwKToKS29lbm50ZW4gd2lyIHVucyBkYXJhdWYgdmVyc3RhbmRpZ2VuLCBiZWkgRnJhZ2UtQW50d29ydHdpdHplbiBrZWluZSAxMDAKTGVlcnplaWxlbiBkYXp3aXNjaGVuenVzY2hhbHRlbj8gSWNoIGthbm4gbWlyIGthdW0gdm9yc3RlbGxlbiwgZGFzcyBqZW1hbmQgdm9yCmRlbSBSZWNobmVyIHNpdHp0IHVuZCBnZXJuZSBmdWVuZiBNaW51dGVuIHVlYmVyIGRpZSBBbnR3b3J0IG5hY2hkZW5rZW4gbW9lY2h0ZQp1bmQgc2ljaCBkYW5uIGFlcmdlcnQsIGRhc3Mgc2llIGRpcmVrdCBkcnVudGVyIHN0ZWh0LiBEYWdlZ2VuIG5lcnZ0IGVzIG9obmUKRW5kZSwgd2VubiBtYW4gc2ljaCBlcnN0IGR1cmNoIHp3ZWkgbGVlcmUgQmlsZHNjaGlybWUgZHJ1ZWNrZW4gbXVzcy4KQXVzc2VyZGVtIGhhYmUgaWNoIGRlbiBlaW5lbiBvZGVyIGFuZGVyZW4gQXJ0aWtlbCBoaWVyIGdlbG9lc2NodCwgZGVyIG1pdAoid2l0emUiIG5pY2h0cyB6dSB0dW4gaGF0dGUsIGFiZXIgZGFzIGlzdCBtYW4gamEgdm9uIG1pciBnZXdvaG50LgoKU28sIGhpZXIgZGllIERlbW9uc3RyYXRpb24sIHdpZSBzbyBlaW4gRnJhZ2UtQW50d29ydCBXaXR6IGluIG1laW5lbiBBdWdlbgphdXNzZWhlbiBzb2xsdGU6CldvcmFuIGhhZWx0IHNpY2ggZWluIEJlbGdpZXIgYmVpbSBTZXggZmVzdD8KQW0gU2NodWxyYW56ZW4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgdW5kIFdhZWNodGVyIGRlciBSdWJyaWsgd2l0emUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi4gKENhdW5vLCAxOC4gRGV6IDE5OTYsIDEzOjIyOjA2KToKWndlaSBBbWVpc2VuIHNpbmQgbWl0IGRlbSBUYW5kZW0gdW50ZXJ3ZWdzLgpTYWd0IGRpZSBlaW5lOiBIYWx0IG1hbCBhbiwgaWNoIGhhYiAnbmUgRmxpZWdlIGltIEF1Z2UhCgoKRGFtaXQgaGllciBtYWwgd2llZGVyIEVUV0FTIE5pdmVhdSBoaW5laW5rb21tdCAuLi4uCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZW5kbGljaCBtYWwgZWluIEdVVEVSIFdpdHogOi0pIChBZXJnZXJsaWNoLCAxOC4gRGV6IDE5OTYsIDE0OjE2OjMxKToKQWxzbyBsb3MgOgpHZWhlbiB6d2VpIFp3ZXJnZSBpbiBlaW5lIEJhci4KU2FndCBkZXIgZWluZToiSGVyciBXaXJ0ISBad2VpIEhhbGJlISIKRGFyYXVmIGRlciBXaXJ0OiJEYXMgc2VoZSBpY2gsIGFiZXIgd2FzIHdvbGx0IGlociB0cmlua2VuID8/Pz8iCgpBZXJnZXJsaWNoLGRlciBkaWVzZSBuaXZlYXVsb3NlbiBXaXR6ZSBuaWNodCBtYWcsLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NoIGVpbmVyIChBZXJnZXJsaWNoLCAxOC4gRGV6IDE5OTYsIDE0OjE4OjE1KToKV29oaW4gZmFocmVuIGRpZSBCYXllcm4gYW0gbGllYnN0ZW4gaW4gZGVuIFVybGF1YiA/Pz8KQW50d29ydDogSW4gZGllIFNjaHdlaXosIGRhIGtvZW5uZW4gc2llIG1pdCBGcmFua2VuIHphaGxlbiA6LSkKQWVyZ2VybGljaCxlbmRsaWNoIG1hbCBldHdhcyBOaXZlYXUgaW4gZGllc2UgUnVicmlrIGJyaW5nZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi5lbmRsaWNoIG1hbCBlaW4gbmV0dGVyIFdpdHogKEh5ZW5hLCAxOC4gRGV6IDE5OTYsIDE0OjMxOjM5KToKTWFsIHdhcyB6dW0gc2NobXVuemVsbiBmdWVyIGRpZSBpbSBtdWQgZG9jaCByYXIgdmVydHJldGVuZW4gTWFlZGVscyA7KSAKCgoKV0FSVU0gc2NobHVja2VuIE1hZW5uZXIgbmljaHQgZGllIFBpbGxlPz8/Pz8/CgpOYT8/Li4uLkZ1ZXIgQXJzY2hsb2VjaGVyIGdpYnQgZXMgWmFlcGZjaGVuIDspCgoKSHllbmEgcm9sbHQgc2ljaCBqZXR6dCBub2NoIGFiLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW50aS1Lb2hsLVdpdHogKFNseWZveCwgMTguIERleiAxOTk2LCAxNDozODozNyk6CkVpbiBKYWVnZXIgaXN0IGltIFdhbGQuIERhIGtvbW10IGVpbmUgRmVlIGhlcmJlaWdlZm9sZ2VuIHVuZCBnaWJ0IGlobQplaW5lbiBXdW5zY2guIERhIHd1ZW5zY2h0IGVyIHNpY2gsIGhldXRlIGRhcyBncm9lc3N0ZSB1bmQgZGlja3N0ZSBTY2h3ZWluCmRhcyBlcyBnaWJ0LCBoZXV0IHp1IHNjaGllc3Nlbi4gRGllIEZlZSBzYWd0LCBkZXIgV3Vuc2NoIHNlaSBpaG0gZXJmdWVsbHQKdW5kIGZsaWVnIGRhdm9uLgpBbSBuYWVjaHN0ZW4gVGFnIHN0ZWh0IGluIGRlciBaZWl0dW5nOiBIZWxtdXQgS29obCBpbSBXYWxkIHZvbiBKYWVnZXIKZXJzY2hvc3Nlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogLi4uZW5kbGljaCBtYWwgZWluIG5ldHRlciBXaXR6IChLcmV0ZWssIDE4LiBEZXogMTk5NiwgMTY6MjA6MDEpOgp+IyEgcm49SHllbmEgcnQ9ODUwOTE1ODk5IHJnPXdpdHplCn4jISB0aWQ9ODUwOTE1ODk5CkphamEsIHVuZCB3YXJ1bSBnaWJ0J3MgaW4gZGVyIEtpbmRlcmtsaW5payBhbHMgIkJlbG9obnVuZyIgZnVlciBkaWUga2xlaW5lbgpQYXRpZW50ZW4gaW1tZXIgRHVwbG8/IFdlaWwgbWFuIGRhcyBpbSBad2VpZmVsc2ZhbGwgYXVjaCBlaW5mdWVocmVuIGthbm4uLi4KCgogICAgICAgfCAvICB8XCAgfC0tICAtLS0gIHwtLSAgfCAvCiAgICAgICB8PCAgIHwvICB8LSAgICB8ICAgfC0gICB8PAogICAgICAgfCBcICB8XCAgfC0tICAgfCAgIHwtLSAgfCBcCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IC4uLmVuZGxpY2ggbWFsIGVpbiBuZXR0ZXIgV2l0eiAoQmxvb2R5aGFycnksIDE5LiBEZXogMTk5NiwgMDA6NTU6MDkpOgp+IyEgcm49S3JldGVrIHJ0PTg1MDkyMjQwMSByZz13aXR6ZQp+IyEgdGlkPTg1MDkxNTg5OQpVbmQgZGVyIFdpdHogPz8KCkljaCB2ZXJzdGVoZSBkZW4gd2llZGVyIG5pY2guLi4KLi4uIHdhdHQgc29sbHMsIGdlc3Rlcm4gd3Vzc3RpY2ggbm9jaCB3YXMgQWx6aGVpbWVyIGlzLi4KCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IC4uLmVuZGxpY2ggbWFsIGVpbiBuZXR0ZXIgV2l0eiAoU2NocnVtcGZpLCAxOS4gRGV6IDE5OTYsIDAzOjQ3OjEzKToKfiMhIHJuPUNhdW5vIHJ0PTg1MDkxNjA1NyByZz13aXR6ZQp+IyEgdGlkPTg1MDkxNTg5OQpXYXJ1bSBoZWlyYXRlbiBGcmF1ZW4gTWFlbm5lcj8KV2VpbCBlaW4gVmlicmF0aW9yIG5pY2h0IEhvbHogaGFja2VuIGthbm4uClNjaHJ1bXBmaS0+bWFlbm5lcmZyZWluZGxpY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IC4uLmVuZGxpY2ggbWFsIGVpbiBuZXR0ZXIgV2l0eiAoR3V5YnJ1c2gsIDE5LiBEZXogMTk5NiwgMDg6MTY6NDgpOgp+IyEgcm49U2NocnVtcGZpIHJ0PTg1MDk2MzYzMyByZz13aXR6ZQp+IyEgdGlkPTg1MDkxNTg5OQpBbHNvIHdlbm4gRnJhdWVuIG5pY2h0IHdpc3NlbiwgZGFzcyB3ZWRlciBFcmRvZWwgbm9jaCBFcmRnYXMgenUgaGFja2VuIHNpbmQuLi4KCkd1eWJydXNoLCBzYWd0IGxpZWJlciBuaWNodHMgbWVociA7KQoKCkd1eWJydXNoIG5pY2h0IGZyYXVlbmZlaW5kbGljaCBzb25kZXJuIHRpZXJsaWViCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogLi4uZW5kbGljaCBtYWwgZWluIG5ldHRlciBXaXR6IChaYXJkb3osIDE5LiBEZXogMTk5NiwgMDk6MTY6MDgpOgp+IyEgcm49R3V5YnJ1c2ggcnQ9ODUwOTc5ODA4IHJnPXdpdHplCn4jISB0aWQ9ODUwOTE1ODk5Ckd1eSwgaW4gT2Vpc2xhbmQgd2lyZCB3aXJrbGljaCBub2NoIEhvbHogZ2VoYWNrdCwgaWNoIGhhYnMgYXVjaCBuaWNodApnZWdsYXVidCwgYmlzIGljaCBlcyBzZWxic3QgZ2VzZWhlbiBoYWIgOikgTmFqYSwgZnVlciBzb3dhcyBoYXQgbWFuIGphClNjaG5hcmNoLi4uCkhtLCBqZXR6dCBtdXNzIGljaCBtaXIgbm9jaCBzY2huZWxsIGVpbmVuIFdpdHogYXVzZGVua2VuLCBkYW1pdCBkaWVzZXIgQXJ0aWtlbApuaWNodCBnZWxvZXNjaHQgd2lyZC4gKmdydWViZWwqCgpBbHNvLCB3YXJ1bSBtdWVzc2VuIE1hZW5uZXIgaW4gT2VzdGVycmVpY2ggbm9jaCBIb2x6IGhhY2tlbj8KV2VpbCBkaWUgRnVzc2tldHRlIGRlciBGcmF1IG51ciB2b20gU2NobGFmemltbWVyIGJpcyB6dXIgS3VlY2hlIHJlaWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IC4uLmVuZGxpY2ggbWFsIGVpbiBuZXR0ZXIgV2l0eiAoQmxvb2R5aGFycnksIDE5LiBEZXogMTk5NiwgMDk6MTk6MjkpOgp+IyEgcm49WmFyZG96IHJ0PTg1MDk4MzM2OCByZz13aXR6ZQp+IyEgdGlkPTg1MDkxNTg5OQpXYXJ1bSBrb2VubmVuIEZyYXVlbiBuaWNodCBlaW5wYXJrZW4/CgoKV2VpbCBNYWVubmVyIGJlaGF1cHRlbiBkYXMgfDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT58IHdhZXJlbiAyMCBjbS4KCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiAuLi5lbmRsaWNoIG1hbCBlaW4gbmV0dGVyIFdpdHogKEFzbW9kaXMsIDE5LiBEZXogMTk5NiwgMTM6MDI6MTkpOgp+IyEgcm49R3V5YnJ1c2ggcnQ9ODUwOTc5ODA4IHJnPXdpdHplCn4jISB0aWQ9ODUwOTE1ODk5CgpIbW0sIEZyYXVlbiBwYWNrZW5zIGRvY2ggbmljaHQsIGRlbiBHYXNoYWhuIGF1Znp1ZHJlaGVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiAuLi5lbmRsaWNoIG1hbCBlaW4gbmV0dGVyIFdpdHogKEh5ZW5hLCAxOS4gRGV6IDE5OTYsIDE2OjQ5OjMwKToKfiMhIHJuPUFzbW9kaXMgcnQ9ODUwOTk2OTM5Cn4jISB0aWQ9ODUwOTE1ODk5CgoKSG1tbSwgdmllbGxlaWNodCBtYWwgd2llZGVyIGVpbiBrbGVpbmVyIEdlZ2Vud2l0eiA7KQoKQWxzbywgLi4uLldBUyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIENoYXBwaSB1bmQgTWFlbm5lcm4/Pz8KICAgICAgICAgIENoYXBwaSBnaWJ0IGVzIGpldHp0IGF1Y2ggbWl0IEhpcm4hIQoKSHllbmEgZmluZGV0IGRpZXNlbiBXaXR6IGphIHNlaHIga3VyeiB1bmQgdHJlZmZlbmQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IC4uLmVuZGxpY2ggbWFsIGVpbiBuZXR0ZXIgV2l0eiAoR3V5YnJ1c2gsIDE5LiBEZXogMTk5NiwgMTY6NTE6MDgpOgp+IyEgcm49SHllbmEgcnQ9ODUxMDEwNTcwIHJnPXdpdHplCn4jISB0aWQ9ODUwOTE1ODk5CkhtLCBub2NoIGVpbmVyLi4uLgoKCldhcyBpc3QgZGVyIFVOdGVyc2NoaWVkIHp3aXNjaGVuIEZyYXVlbiB1bmQgV2VyYnVuZz8KCklOIGRlciBXZXJidW5nIHdpcmQgQ2hhcHBpIHJpY2h0aWcgZ2VzY2hyaWViZW4gOykKCgoKR3V5YnJ1c2gsIGhldXQgYmVzb25kZXJzIHRpZXJsaWViIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiAuLi5lbmRsaWNoIG1hbCBlaW4gbmV0dGVyIFdpdHogKFBhbXBlcnMsIDE5LiBEZXogMTk5NiwgMTY6NTE6MzQpOgp+IyEgcm49SHllbmEgcnQ9ODUxMDEwNTcwIHJnPXdpdHplCn4jISB0aWQ9ODUwOTE1ODk5CldvIE1hZW5uZXIgaWhyZW4gVmVyc3RhbmQgaGFiZW4sIGhhYmVuIEZyYXVlbiBlaW4gTG9jaC4KClBhbXBlcnMuIFdlaXNzIG5pZSwgb2IgZGVyIGZyYXVlbi0gb2RlciBtYWVubmVyZmVpbmRsaWNoIGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxhbmdld2VpbGUgKEhhdGUsIDE5LiBEZXogMTk5NiwgMTg6NTQ6MjMpOgpMYW5nZXdlaWxlIGlzdCBzY2hvbiB3YXMgc2Nob2VuZXMuLi4ubWFuIGhhdCBkYXMgR2VmdWVobCwgbWFuIGxlYnQgbGFlbmdlciEKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiAuLi5lbmRsaWNoIG1hbCBlaW4gbmV0dGVyIFdpdHogKFJhZmZpLCAyMC4gRGV6IDE5OTYsIDE1OjIyOjE5KToKfiMhIHJuPUJsb29keWhhcnJ5IHJ0PTg1MDk4MzU2OQp+IyEgdGlkPTg1MDkxNTg5OQoKSG1tIEljaCBoYWJzIG5hY2hnZW1lc3NlbiAuLi4gZXMgc2luZCAyMCBjbSAhCgpHcnVzcwpILiAoPC0gaGF0IGVpbmVuIDIxIiBTY2hpcm0gdW5kIGRhcyBNdWRmZW5zdGVyIEZvcm1hdGZ1ZWxsZW5kIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFBvcnQgNDcxMSB3aXJkIG5pY2h0IG1laHIgdW50ZXJzdHVldHp0ISBCaXR0ZSB2ZXJ3ZW5kZXQgUG9ydCAyMyEgKFlhbnRybywgMjYuIERleiAxOTk2LCAxODoyMDowOSk6Cn4jISBvbj1XdXJ6ZWwgb3Q9ODUxNDIzMzkwIG9nPW1hZ2llci5lbnR3aWNrbHVuZwp+IyEgcm49S29iYXlhc2hpIHJ0PTg1MTQyMzI3NSByZz1tYWdpZXIuZW50d2lja2x1bmcKfiMhIHRpZD04NTEzNjM2NjkKd29ydWViZXIgcmVndCBpaHIgZXVjaCBlaWdlbnRsaWNoIGF1Zj8gZWluIHdlbmlnIG5vc3RhbGdpZSBpc3QgZG9jaCBpbgpvcmRudW5nLi4uIHdlbm4gbWFuIGltbWVyIGFsbGVzIGdsZWljaCBhZW5kZXJuIHdvbGx0ZSwgd3VlcmRlbiBzaWNoIG1hbmNoZQpkaW5vc2F1cmllciBqYSB1ZWJlcmhhdXB0IG5pY2h0IG1laHIgYXVza2VubmVuIDopCgp3dXJ6ZWwgKHVyYWx0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0eiBmdWVyIEdyaW1tYm9ybiAoRmxvcmEsIDI4LiBEZXogMTk5NiwgMTE6MDc6NTgpOgoKSXN0IHZpZWxsZWljaHQgYXVjaCBzY2hvbiBldHdhcyBhZWx0ZXIsIGFiZXIgdHJvdHpkZW06CldlbGNoZXMgSW5zdHJ1bWVudCBzcGllbHQgR290dD8KVHViYSwgZXMgaGVpc3N0IGRvY2ggIlZhdGVyIHVuc2VyLCBkZXIgVHViaXN0IGltIEhpbW1lbC4uLiIKCkZsb3JhLCBrZWluZSBBdGhlaXN0aW4gKHdhZXIgamEgbm9jaCBzY2hvZW5lcjsgYWxzIEtsZXJpa2VyaW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHb3R0IG1hbCBhbmRlcnMgZ2VzZWhlbi4uLiAoWWFudHJvLCAgMy4gSmFuIDE5OTcsIDE1OjM5OjMwKToKCgpIaS4uLiBkaWVzIGlzdCBtYWwgd2llZGVyIGVpbmVyIGRlciBuZXR0ZW4gQXJ0aWtlbCwgZGllIG1hbiBpbW1lciB3aWVkZXIgaW0KSW50ZXJuZXQgZmluZGV0IDopCgpGcm9tIFJSWi5VbmktS29lbG4uREUhbmV3cy5yaHJ6LnVuaS1ib25uLmRlIW5ld3MucnVoci11bmktYm9jaHVtLmRlIW5ld3Mta29lMS5kZm4uZGUhbmV3cy1mcmExLmRmbi5kZSFuZXdzLWJlcjEuZGZuLmRlIWZ1LWJlcmxpbi5kZSF1bmxpc3lzIWJsYWNrYnVzaC54bGluay5uZXQhaG93bGFuZC5lcm9scy5uZXQhd3d3Lm5udHAucHJpbWVuZXQuY29tIW5udHAucHJpbWVuZXQuY29tIW5ld3Muc3ByaW50bGluay5uZXQhbmV3cy1zdGstMjAwLnNwcmludGxpbmsubmV0IXJhdHR5LndvbGZlLm5ldCF1c2VuZXQgRnJpIEphbiAgMyAxNToyMToyOSAxOTk3ClBhdGg6IFJSWi5VbmktS29lbG4uREUhbmV3cy5yaHJ6LnVuaS1ib25uLmRlIW5ld3MucnVoci11bmktYm9jaHVtLmRlIW5ld3Mta29lMS5kZm4uZGUhbmV3cy1mcmExLmRmbi5kZSFuZXdzLWJlcjEuZGZuLmRlIWZ1LWJlcmxpbi5kZSF1bmxpc3lzIWJsYWNrYnVzaC54bGluay5uZXQhaG93bGFuZC5lcm9scy5uZXQhd3d3Lm5udHAucHJpbWVuZXQuY29tIW5udHAucHJpbWVuZXQuY29tIW5ld3Muc3ByaW50bGluay5uZXQhbmV3cy1zdGstMjAwLnNwcmludGxpbmsubmV0IXJhdHR5LndvbGZlLm5ldCF1c2VuZXQKRnJvbTogbGF1cmFiZWVAd29sZmVuZXQuY29tIChMYXVyYSBCYXh0ZXIpCk5ld3Nncm91cHM6IGFsdC50YXN0ZWxlc3Muam9rZXMKU3ViamVjdDogSWYgR29kIHdhcyBhIFByb2dyYW1lciB0aGUgYW5zd2VycyB3ZSdkIGdldApEYXRlOiAyNyBEZWMgMTk5NiAxNToxNjozOCBHTVQKT3JnYW5pemF0aW9uOiBXb2xmZSBJbnRlcm5ldCBBY2Nlc3MsIEwuTC5DLgpMaW5lczogNDgKTWVzc2FnZS1JRDogPDVhMHA4bSRrbGNAcmF0dHkud29sZmUubmV0PgpOTlRQLVBvc3RpbmctSG9zdDogeWFrLXRzMi1wMjIud29sZmVuZXQuY29tClgtTmV3c3JlYWRlcjogV2luVk4gMC45Mi42KwoKICAgICAuLi55b3Uga25vdywgbWFueSBpbXBvcnRhbnQgdGhlb2xvZ2ljYWwgcXVlc3Rpb25zIGFyZSBhbnN3ZXJlZCBpZiB3ZSAKICAgICB0aGluayBvZiBHb2QgYXMgYSBDb21wdXRlciBQcm9ncmFtbWVyOgogICAgIAogICAgIFE6IERvZXMgR29kIGNvbnRyb2wgZXZlcnl0aGluZyB0aGF0IGhhcHBlbnMgaW4gbXkgbGlmZT8KICAgICBBOiBIZSBjb3VsZCwgaWYgaGUgdXNlZCB0aGUgZGVidWdnZXIsIGJ1dCBpdCdzIHRlZGlvdXMgdG8gc3RlcCB0aHJvdWdoICBhbGwgdGhvc2UgdmFyaWFibGVzLgogICAgIAogICAgIFE6IFdoeSBkb2VzIEdvZCBhbGxvdyBldmlsIHRvIGhhcHBlbj8KICAgICBBOiBHb2QgdGhvdWdodCBoZSBlbGltaW5hdGVkIGV2aWwgaW4gb25lIG9mIHRoZSBlYXJsaWVyIHZlcnNpb25zLgogICAgIAogICAgIFE6IFdoYXQgY2F1c2VzIEdvZCB0byBpbnRlcnZlbmUgaW4gZWFydGhseSBhZmZhaXJzPwogICAgIEE6IElmIGEgY3JpdGljYWwgZXJyb3Igb2NjdXJzLCB0aGUgc3lzdGVtIHBhZ2VzIGhpbSBhdXRvbWF0aWNhbGx5IGFuZCAgaGUgbG9ncyBvbiBmcm9tIGhvbWUgdG8gdHJ5IHRvIGJyaW5nIGl0IHVwLiAgT3RoZXJ3aXNlIHRoaW5ncyBjYW4gd2FpdCB1bnRpbCB0b21vcnJvdy4KICAgICAKICAgICBROiBEaWQgR29kIHJlYWxseSBjcmVhdGUgdGhlIHdvcmxkIGluIHNldmVuIGRheXM/CiAgICAgQTogSGUgZGlkIGl0IGluIHNpeCBkYXlzIGFuZCBuaWdodHMgd2hpbGUgbGl2aW5nIG9uIGNvbGEgYW5kIGNhbmR5IGJhcnMuIE9uIHRoZSBzZXZlbnRoIGRheSBoZSB3ZW50IGhvbWUgYW5kIGZvdW5kIG91dCBoaXMgZ2lybGZyaWVuZCBoYWQgbGVmdCBoaW0uCiAgICAgCiAgICAgUTogSG93IGNvbWUgdGhlIEFnZSBvZiBNaXJhY2xlcyBFbmRlZD8KICAgICBBOiBUaGF0IHdhcyB0aGUgZGV2ZWxvcG1lbnQgcGhhc2Ugb2YgdGhlIHByb2plY3QsIG5vdyB3ZSBhcmUgaW4gdGhlIG1haW50ZW5hbmNlIHBoYXNlLgogICAgIAogICAgIFE6IFdobyBpcyBTYXRhbj8KICAgICBBOiBTYXRhbiBpcyBhIE1JUyBkaXJlY3RvciB3aG8gdGFrZXMgY3JlZGl0IGZvciBtb3JlIHBvd2VycyB0aGFuIGhlIGFjdHVhbGx5IHBvc3Nlc3Nlcywgc28gcGVvcGxlIHdobyBhcmVuJ3QgcHJvZ3JhbW1lcnMgYXJlIHNjYXJlZCBvZiBoaW0uIEdvZCB0aGlua3Mgb2YgaGltIGFzIGlycml0YXRpbmcgYnV0IGlycmVsZXZhbnQuCiAgICAgCiAgICAgUTogV2hhdCBpcyB0aGUgcm9sZSBvZiBzaW5uZXJzPwogICAgIEE6IFNpbm5lcnMgYXJlIHRoZSBwZW9wbGUgd2hvIGZpbmQgbmV3IGFuIGltYWdpbmF0aXZlIHdheXMgdG8gbWVzcyB1cCB0aGUgc3lzdGVtIHdoZW4gR29kIGhhcyBtYWRlIGl0IGlkaW90LXByb29mLgogICAgIAogICAgIFE6IFdoZXJlIHdpbGwgSSBnbyBhZnRlciBJIGRpZT8KICAgICBBOiBPbnRvIGEgREFUIHRhcGUuCiAgICAgCiAgICAgUTogV2lsbCBJIGJlIHJlaW5jYXJuYXRlZD8KICAgICBBOiBOb3QgdW5sZXNzIHRoZXJlIGlzIGEgc3BlY2lhbCBuZWVkIHRvIHJlY3JlYXRlIHlvdS4gIEFuZCBzZWFyY2hpbmcgdGhvc2UgdGFyIGZpbGVzIGlzIGEgbWFqb3IgaGFzc2xlLCBzbyBpZiB0aGVyZSBpcyBhIHJlcXVlc3QgZm9yIHlvdSwgR29kIHdpbGwganVzdCBzYXkgdGhhdCB0aGUgdGFwZSBoYXMgYmVlbiBsb3N0LgogICAgIAogICAgIFE6IEFtIEkgdW5pcXVlIGFuZCBzcGVjaWFsIGluIHRoZSB1bml2ZXJzZT8KICAgICBBOiBUaGVyZSBhcmUgb3ZlciAxMCwwMDAgbWFqb3IgdW5pdmVyc2l0eSBhbmQgY29ycG9yYXRlIHNpdGVzIHJ1bm5pbmcgZXhhY3QgZHVwbGljYXRlcyBvZiB5b3UgaW4gdGhlIHByZXNlbnQgcmVsZWFzZSB2ZXJzaW9uLgogICAgIAogICAgIFE6IFdoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhlIHVuaXZlcnNlPwogICAgIEE6IEdvZCBjcmVhdGVkIGl0IGJlY2F1c2UgaGUgdmFsdWVzIGVsZWdhbmNlIGFuZCBzaW1wbGljaXR5LCBidXQgdGhlbiB0aGUgdXNlcnMgYW5kIG1hbmFnZXJzIGRlbWFuZGVkIGhlIHRhY2sgYWxsIHRoaXMgc2Vuc2VsZXNzIHN0dWZmIG9udG8gaXQgYW5kIG5vdyBldmVyeXRoaW5nIGlzIG1vcmUgY29tcGxpY2F0ZWQgYW5kIGV4cGVuc2l2ZSB0aGFuIGV2ZXIuCiAgICAgCiAgICAgUTogSWYgSSBwcmF5IHRvIEdvZCwgd2lsbCBoZSBsaXN0ZW4/CiAgICAgQTogWW91IGNhbiB3YXN0ZSBoaXMgdGltZSB0ZWxsaW5nIGhpbSB3aGF0IHRvIGRvLCBvciB5b3UgY2FuIGp1c3QgZ2V0IG9mZiBoaXMgYmFjayBhbmQgbGV0IGhpbSBwcm9ncmFtLgogICAgIAogICAgIFE6IFdoYXQgaXMgdGhlIG9uZSB0cnVlIHJlbGlnaW9uPwogICAgIEE6IEFsbCBzeXN0ZW1zIGhhdmUgdGhlaXIgYWR2YW50YWdlcyBhbmQgZGlzYWR2YW50YWdlcywgc28ganVzdCBwaWNrIHRoZSBvbmUgdGhhdCBiZXN0IHN1aXRzIHlvdXIgbmVlZHMgYW5kIGRvbid0IGxldCBhbnlvbmUgcHV0IHlvdSBkb3duLgogICAgIAogICAgIFE6IEhvdyBjYW4gSSBwcm90ZWN0IG15c2VsZiBmcm9tIGV2aWw/CiAgICAgQTogQ2hhbmdlIHlvdXIgcGFzc3dvcmQgZXZlcnkgbW9udGggYW5kIGRvbid0IG1ha2UgaXQgYSBuYW1lLCBhIGNvbW1vbiB3b3JkLCBvciBhIGRhdGUgbGlrZSB5b3VyIGJpcnRoZGF5LgogICAgIAogICAgIFE6IFNvbWUgcGVvcGxlIGNsYWltIHRoZXkgaGVhciB0aGUgdm9pY2Ugb2YgR29kLiBJcyB0aGlzIHRydWU/IAogICAgIEE6IFRoZXkgYXJlIG11Y2ggbW9yZSBsaWtlbHkgdG8gcmVjZWl2ZSBlbWFpbC4KICAgICAKCgpZYW50cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbW91cyBMYXN0IFdvcmRzIChSb2NodXMsICA2LiBKYW4gMTk5NywgMTM6MjQ6MjUpOgpOYWRpYSwgZGVyIFRlZSBpc3QgYXVzZ2V6ZWljaG5ldCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGYW1vdXMgTGFzdCBXb3JkcyAoQmxvb2R5aGFycnksICA2LiBKYW4gMTk5NywgMTM6NDA6MTgpOgp+IyEgcm49Um9jaHVzIHJ0PTg1MjU1MzQ2NSByZz13aXR6ZQp+IyEgdGlkPTg1MjU1MzQ2NQoKRGVyIGRyaXZlciBsYWV1ZnQgbnVuIHN0YWJpbC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRmFtb3VzIExhc3QgV29yZHMgKFllbmRpLCAgNi4gSmFuIDE5OTcsIDEzOjUxOjE1KToKfiMhIHJuPUJsb29keWhhcnJ5IHJ0PTg1MjU1NDQxOCByZz13aXR6ZQp+IyEgdGlkPTg1MjU1MzQ2NQoKIklzdCBkYXMgZ2xhdHQgaGllcj8iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRmFtb3VzIExhc3QgV29yZHMgKEJsb29keWhhcnJ5LCAgNi4gSmFuIDE5OTcsIDE0OjEyOjQ2KToKfiMhIHJuPVllbmRpIHJ0PTg1MjU1NTA3NSByZz13aXR6ZQp+IyEgdGlkPTg1MjU1MzQ2NQoKRGVyIEhvYmRyYWNoZSBpcyBlaW5mYWNoIGtudWRkbGlnIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRmFtb3VzIExhc3QgV29yZHMgKEFuYXRvbCwgIDYuIEphbiAxOTk3LCAxNDoxODoxMSk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NTI1NTYzNjYgcmc9d2l0emUKfiMhIHRpZD04NTI1NTM0NjUKCiInV29ydGUgZGVyIE1hY2h0JyBrb2VubmVuIGRvY2ggZ2FyIG5pY2h0IHNvb28gc2NobGltbSBzZWluISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvZWxuZXIgU3RhbW10aXNjaGJydWVsbGVyIChZYW50cm8sICA2LiBKYW4gMTk5NywgMTQ6MjM6MDcpOgoKQWxzbyBkZXIgSG9laGVwdW5rdCB3YXIgc2ljaGVyIGRlciBLb2ViZXMgKGtlbGxuZXIpLCBkZXIgZnVlciBSdWhlIHNvcmd0ZSB1bmQKZGFubiBtZWludGU6CgoiRGEgaXN0IGVpbiBUZWxlZm9uYXQgZnVlciBlaW5lbiBIZXJybiA8cmxuYW1lPiBvZGVyIEhFUlJOIEdSSU1NQk9STiIKCllhbnRybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRmFtb3VzIExhc3QgV29yZHMgKFBob2JvcywgIDYuIEphbiAxOTk3LCAxNDoyNjozMyk6Cn4jISBybj1BbmF0b2wgcnQ9ODUyNTU2NjkxIHJnPXdpdHplCn4jISB0aWQ9ODUyNTUzNDY1CgoiRGEga2xhcHBlcnQgZG9jaCB3YXMhIiAgICAtIEF5cnRvbiBTZW5uYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW56ZWljaGVuIGVpbmVyIEMmQy1TdWNodCAoUm9jaHVzLCAgNi4gSmFuIDE5OTcsIDE0OjM0OjA2KToKICAgICAgICA0MC4gWW91IGFuc3dlciBldmVyeXRoaW5nIHdpdGggIkFmZmlybWF0aXZlIiBvciAiWW91IGdvdCBpdCIuCiAKICAgICAgICAzOS4gWW91IGdldCBjaGFyZ2VkIHdpdGggYXNzYXVsdCBhZnRlciB5b3UgdGhvdWdodCB0aGF0IGJhbGQgbWFuCiAgICAgICAgaW4gdGhlIHJlc3RhdXJhbnQgbG9va2VkIGEgbG90IGxpa2UgS2FuZS4KIAogICAgICAgIDM4LiBZb3Ugc3RhZ2UgYW4gYW1waGliaW91cyBsYW5kaW5nIGluIHlvdXIgcG9vbC4KIAogICAgICAgIDM3LiBZb3UgZXJlY3QgdHVycmV0cyB0byBrZWVwIGF3YXkgaW5zdXJhbmNlIHNhbGVzbWVuLgogCiAgICAgICAgMzYuIFlvdSB3b25kZXIgd2h5IHRoZSBob3VzZXMgaW4geW91ciBzdWJkaXZpc2lvbiBhcmVuJ3QgYnVpbHQgaW4KICAgICAgICBhIGNvdXBsZSBvZiBzZWNvbmRzLgogCiAgICAgICAgMzUuIFlvdSBhbmFseXplIHdoYXQgTm9kIGZvcmNlIGl0IHdvdWxkIHRha2UgdG8gZGVzdHJveSB0aGUgbG9jYWwKICAgICAgICBhcm1lZCBmb3JjZXMgYmFzZSwgY29uc3RydWN0aW9uIGZhY2lsaXRpZXMgYW5kIGFsbCwgdGhlbiBicmVhawogICAgICAgIG91dCB0aGUgZWRpdG9yLCBidWlsZCB0aGUgc2NlbmFyaW8sIGFuZCBkbyBpdC4KIAogICAgICAgIDM0LiBZb3UgZHJpdmUgZG93biB0aGUgcm9hZCB3b25kZXJpbmcgaWYgYSByb2NrZXQgbGF1bmNoZXIgb3IKICAgICAgICB0YW5rIHdvdWxkIGJlIG1vcmUgZWZmZWN0aXZlIG9uIHRoZSBpZGlvdCBpbiBmcm9udCBvZiB5b3UuCiAKICAgICAgICAzMy4gWW91IHNlZSBhIGZsb2NrIG9mIGJpcmRzIHBvb2luZyBpbiBtaWQtYWlyIGFuZCB0aGluayBpdCdzIGFuCiAgICAgICAgYWlyc3RyaWtlLgogCiAgICAgICAgMzIuIFdoZW4gcGF0cm9sIGhlbGljb3B0ZXJzIGFyZSBpbiB0aGUgYWlyLCB5b3UgdGhpbmsgaXQncyBhCiAgICAgICAgc3F1YWQgb2YgT3JjYSdzLgogCiAgICAgICAgMzEuIFlvdSBzdGFydCB0byB3aXNoIHRoYXQgc29tZW9uZSB3b3VsZCBidWlsZCBhbiBBR1Qgb3IgYSBTQU0KICAgICAgICBzaXRlIHRvIHRha2Ugb3V0IHRoYXQgZGFtbiBuZXdzIGNob3BwZXIgdGhlIHJhZGlvIGlzIGFsd2F5cwogICAgICAgIGJyYWdnaW5nIGFib3V0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ltYWdlXQogICAgICAgIDMwLiBZb3Ugc2VlIGEgbWFuIHdpdGggYSB3aGl0ZSBrbmFwc2FjaywgYW5kIHlvdSBydW4gY2F1c2UgeW91CiAgICAgICAgdGhpbmsgaXRzIGEgZmxhbWV0aHJvd2VyIGNvbWluZyBhdCB5b3UuCiAKICAgICAgICAyOS4gWW91IGRpdmUgZm9yIGNvdmVyIGF0IHRoZSBzaWdodCBvZiBhbnlvbmUgd2l0aCBibHVlIGJhY2twYWNrcwogICAgICAgIGFuZCB3YWl0IGZvciB0aGUgZ3JlbmFkZXMuCiAKICAgICAgICAyOC4gWW91IGhlYXIgdGhlIHNjcmVhbXMgdGhlIGxpdHRsZSBtZW4gbWFrZSBhcyB0aGV5IGdvIHVwIGluCiAgICAgICAgZmxhbWVzLCB3aGlsZSB3YWxraW5nIGRvd24gdGhlIHN0cmVldC4KIAogICAgICAgIDI3LiBZb3UgQy00IGEgaG91c2Ugb3IgYSBjaHVyY2ggYmVjYXVzZSB5b3UgdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICBhIGNyYXRlIHVuZGVyIGl0LgoKICAgICAgICAyNi4gWW91IGF0dGVtcHQgdG8gcnVuIG92ZXIgcGVkZXN0cmlhbnMgd2l0aCB5b3VyIGNhci4KIAogICAgICAgIDI1LiBZb3Ugd2FsbCBpbiB5b3VyIGhvdXNlIHdpdGggc2FuZGJhZ3MgYW5kIGNvbnN0cnVjdCBhIEd1YXJkCiAgICAgICAgVG93ZXIuCiAKICAgICAgICAyNC4gWW91IGluc3RhbGwgYSBzYXRlbGxpdGUgZGlzaCBpbiB5b3VyIGJhY2sgeWFyZCBob3BpbmcgdG8gdXNlCiAgICAgICAgdGhlIGlvbiBjYW5ub24uCiAKICAgICAgICAyMy4gV2hpbGUgd2Fsa2luZyB0aHJvdWdoIHRoZSBwYXJrLCB5b3Ugc3RhcnQgdG8gZmVlbCB0aGUgZWZmZWN0cwogICAgICAgIG9mIHRpYmVyaXVtIHBvaXNvbmluZy4KIAogICAgICAgIDIyLiBZb3UgcnVuIGZyb20gYSByYWRpbyBhbnRlbm5hIHRvd2VyIHdoZW4gdGhlIHN0cm9iZSBsaWdodAogICAgICAgIGNvbWVzIG9uLCB0aGlua2luZyBpdCBpcyBhbiBPYmVsaXNrIG9mIExpZ2h0IHBvd2VyaW5nIHVwLgogCiAgICAgICAgMjEuIFlvdSBmb2xsb3cgd29ybGR3aWRlIG5ld3MgaXRlbXMgaW4gVFYgYW5kIGluIG5ld3NwYXBlcnMKICAgICAgICBkZXZvdGVkbHkuIEFmdGVyd2FyZHMsIHlvdSBzcGluIHlvdXIgZ2xvYmUgYXJvdW5kLCBzdG9wIGl0LCBhbmQKICAgICAgICB0aGVuIGNvbG9yIGluIHZhcmlvdXMgY291bnRyaWVzIHdpdGggeWVsbG93ICYgcmVkIG1hcmtlcnMgdG8gc2hvdwogICAgICAgIGZvcmNlIHByb2dyZXNzaW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ltYWdlXQogICAgICAgIDIwLiBZb3Ugd29uZGVyIGhvdyB0aGV5IGdldCBuZXcgY2FycyBhdCBhIGRlYWxlcnNoaXAgd2l0aG91dCBhCltJbWFnZV0gV2VhcG9ucyBGYWN0b3J5IG9yIEFpciBTdHJpcC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKW0ltYWdlXQogCiAgICAgICAgMTkuIFlvdSBjb25mdXNlIHlvdXIgcmVndWxhciBkb2N0b3Igd2l0aCBEb2N0b3IgTW9lYml1cyBhbmQgdHJ5CiAgICAgICAgdG8gZ2V0IGhpbS9oZXIgdG8gc2FmZXR5LgogCiAgICAgICAgMTguIFdhdGNoaW5nIG9sZCBmaWxtcyBvZiB0cm9vcHMgbG9hZGluZy91bmxvYWRpbmcgTTExMydzIGFuZAogICAgICAgIENoaW5vb2tzIGluIHNlY29uZHMgeW91IHBvaW50IG91dCwgIk5PISBUaGF0J3Mgbm90IHJpZ2h0ISBJdAogICAgICAgIHRha2VzIGFsbCBkYXkgdG8gZ2V0IGludG8gb25lIG9mIHRob3NlISIKIAogICAgICAgIDE3LiBZb3UgY2FsY3VsYXRlIHRoYXQgdGhlIG11enpsZSB0aHJ1c3QgZnJvbSBvbmUgb2YgdGhvc2UKICAgICAgICAibWluaWd1bnMiIHdvdWxkIHJvY2tldCB0aGUgdXNlciBiYWNrd2FyZHMgYXQgMTAgZydzLgogCiAgICAgICAgMTYuIFlvdSB0cnkgdG8gdHVuZSB5b3VyIFRWIGludG8gR0RJIG1pc3Npb24gYXNzaWdubWVudHMuCiAKICAgICAgICAxNS4gV2hlbiBoYXZpbmcgc2V4LCB5b3Ugc2F5ICJCdWlsZGluZyIgYW5kIGFmdGVyIHNleCB5b3Ugc2F5CiAgICAgICAgIlVuaXQgcmVhZHkiLgogCiAgICAgICAgMTQuIEF0IHRoZSBsb2NhbCBtYWxsLCB5b3UgZ3JhYiBhIHRyb2xsZXkgYW5kIHN0YXJ0IG1hcHBpbmcgdGhlCiAgICAgICAgc3VwZXJtYXJrZXQuCiAKICAgICAgICAxMy4gWW91IGRpc2NvdmVyIGEgd29vZGVuIGNyYXRlIGFuZCBkcml2ZSB5b3VyIGNhciBpbnRvIGl0CiAgICAgICAgZXhwZWN0aW5nIHRvIGZpbmQgbW9uZXkgYW5kIGp1c3Qgd2lzaCB0aGVyZXMgbm8gbnVjbGVhciBleHBsb3Npb24KIAogICAgICAgIDEyLiBZb3UgdHJ5IHRvIHNjcm9sbCByZWd1bGFyIGRvY3VtZW50cyBieSBwdXR0aW5nIHRoZSBtb3VzZSBhdAogICAgICAgIHRoZSBlZGdlcyBvZiB0aGUgc2NyZWVuLgogCiAgICAgICAgMTEuIFlvdSBzZWUgbGl0dGxlIGhlYWx0aCBiYXJzIGFib3ZlIHBlb3BsZSBhbmQgdmVoaWNsZXMgb24gdGhlCiAgICAgICAgc3RyZWV0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ltYWdlXQogICAgICAgIDEwLiBZb3UgY2F1c2VkIHRoZSBUV0EgY3Jhc2ggYmVjYXVzZSB5b3UgcmVhc29uZWQgdGhhdCAib25lCiAgICAgICAgbGl0dGxlIG1pc3NpbGUgd2lsbCBqdXN0IGJyaW5nIGl0IGludG8gdGhlIHllbGxvdy4iCiAKICAgICAgICA5LiBBdCBmb290YmFsbCBnYW1lcyBhbGwgeW91IGNhbiB0aGluayB0byBzaG91dCBpcywgIkZpZ2h0LCBXaW4sCiAgICAgICAgUHJldmFpbCEiCiAKICAgICAgICA4LiBZb3UgYmVnaW4gdG8gd29uZGVyIGlmIHlvdXIgcm9vbW1hdGUgd291bGQganVzdCBzdGF5IG91dCBpbgogICAgICAgIHRoZSBoYWxsd2F5IGlmIHlvdSBzdHJhdGVnaWNhbGx5IHBsYWNlZCBhIGZldyBzYW5kYmFncy4KIAogICAgICAgIDcuIFlvdSB2b3RlZCBmb3IgRG9sZSBiZWNhdXNlIHlvdSBrbmV3IGhlJ2QgbmV2ZXIgY3V0IEdESQogICAgICAgIGZ1bmRpbmcuCiAKICAgICAgICA2LiBZb3Ugdm90ZWQgZm9yIENsaW50b24gYmVjYXVzZSB5b3Uga25ldyBoZSdkIGN1dCBHREkgZnVuZGluZy4KIAogICAgICAgIDUuIFlvdSBkb24ndCB3YWxrIGluIGdyb3VwcyBiZWNhdXNlIHlvdSBmZWFyICJvbmUgZ3JlbmFkZSBvcgogICAgICAgIGZsYW1ldGhyb3dlciBjb3VsZCB0YWtlIHVzIGFsbCBvdXQhIgoKICAgICAgICA0LiBZb3UncmUgb24gdGhlIGJlYWNoLCBhbmQgeW91IGZpbmQgeW91cnNlbGYgZmlsbGluZyBhIGJhZyBvZgogICAgICAgIHNhbmQgYmVzaWRlIHlvdXIgc2lzdGVyLCBpbnRlbmRpbmcgdG8gc2VsbCBoZXIgZm9yIGljZSBjcmVhbQogICAgICAgIG1vbmV5LgogCiAgICAgICAgMy4gVGhlbiB5b3UgdHJ5IHRvIHNlbGwgeW91ciBsaXR0bGUgYnJvdGhlciBieSBoYXZpbmcgaGltIHN0YW5kCiAgICAgICAgcmVhbGx5IGNsb3NlIHRvIGEgd2FsbCB3aGlsZSB5b3UgY2xpY2sgb24gaGltIHdpdGggdGhlIG1vdXNlLgogCiAgICAgICAgMi4gUGxhY2VzIHlvdSBoYXZlIG5ldmVyIGJlZW4gbG9vayBjb21wbGV0ZWx5IGJsYWNrLgogCiAgICAgICAgICAgICAgICAgICAgIFRoZSAjMSBzeW1wdG9tIG9mIHBsYXlpbmcgdG9vIG11Y2ggQyZDOgogCiAgICAgICAgMS4gWW91IHNlbGwgeW91ciBob3VzZSB0byBidWlsZCBhIHJlZmluZXJ5IGJ1dCBhcmUgZGlzYXBwb2ludGVkCiAgICAgICAgd2hlbiB5b3UgZG9uJ3QgZ2V0IGFueSB0cm9vcHMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBGYW1vdXMgTGFzdCBXb3JkcyAoQ2F1bm8sICA3LiBKYW4gMTk5NywgMTQ6MDQ6MDQpOgp+IyEgcm49UGhvYm9zIHJ0PTg1MjU1NzE5MyByZz13aXR6ZQp+IyEgdGlkPTg1MjU1MzQ2NQpXZW5uIGR1IG5pY2h0IGdlcnVlbHBzdCBoYXN0LCB3ZXIgd2FyIGVzIGRhbm4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBIG51biB3YXMgaGl0Y2hoaWtpbmcgYW5kIHdhcyBwaWNrZWQgdXAgYnkgYSB0cnVjayBkcml2ZXIuICBBcyB0aGUgKEphc3BlciwgIDcuIEphbiAxOTk3LCAxNToxODoxNik6CnN0YXJ0IHRvIGRyaXZlIGF3YXksIGhlIHNheXMgdG8gaGVyIC0gIlNpc3RlciwgeW91IGxvb2sgZGVzcG9uZGVudCAtCndoYXQncyB0aGUgbWF0dGVyPyIKIAoiV2VsbCwgSSdtICBmZWVsaW5nIGEgbGl0dGxlIGRvd24gdGhlc2UgZGF5cyAtIEknbSBub3QgdmVyeSBoYXBweSB3aXRoCnRoZSBwYXRoIG15IGxpZmUgaGFzIHRha2VuLiAiCiJHZWV6LCB0aGF0J3MgdG9vIGJhZCwgU2lzdGVyLCAgd2h5J3MgdGhhdD8iCiJXZWxsLCBJJ3ZlIG5ldmVyIGhhZCBzZXgsIGFuZCBJJ3ZlIGFsd2F5cyB3b25kZXJlZCB3aGF0IEkgd2FzIG1pc3NpbmciCiJJIHVuZGVyc3RhbmQiCiJBcmUgeW91IG1hcnJpZWQ/IgpUaGUgZHJpdmVyIHNlZXMgd2hlcmUgdGhpcyBjb252ZXJzYXRpb24gaXMgZ29pbmcsIGFuZCBzYXlzICJObywgU2lzdGVyLApJJ20gbm90Ii4KIldlbGwgdGhlbiwgd291bGQgeW91IGhhdmUgc2V4IHdpdGggbWU/ICBJIHdvdWxkIGxpa2UgdG8ga2VlcCBteQp2aXJnaW5pdHksIHRob3VnaCwgc28gd291bGQgeW91IGhhdmUgYW5hbCBzZXggaW5zdGVhZD8iCiJTdXJlLCBpZiB5b3UgcHJlZmVyIHRoYXQiClRoZXkgZ28gdG8gdGhlIGJhY2sgb2YgdGhlIHRydWNrIGFuZCBhZnRlciB0aGV5J3JlIGFsbCBkb25lIC0gaGUgc2F5cwoiU2lzdGVyLCBJIGhhdmUgYSBjb25mZXNzaW9uIHRvIG1ha2UgLSBJJ20gbWFycmllZCBhbmQgSSBoYXZlIHR3byBzbWFsbAoKCmNoaWxkcmVuLiIKVGhlIG51biBzYXlzICJJIGhhdmUgYSBjb25mZXNzaW9uIHRvIG1ha2UgdG9vIC0gTXkgbmFtZSBpcyByZWFsbHkKTWFydmluIGFuZCBJIGp1c3QgY2FtZSBmcm9tIGEgSGFsbG93ZWVuIHBhcnR5Ii4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpibGFoaCAyIChKYXNwZXIsICA3LiBKYW4gMTk5NywgMTU6MjA6MTEpOgpJdCB3YXMgR2VvcmdlIHRoZSBNYWlsbWFuJ3MgbGFzdCBkYXkgb24gdGhlIGpvYiBhZnRlciAzNSB5ZWFycyBvZgpjYXJyeWluZyB0aGUgbWFpbCBpbiB0aGUgc2FtZSBuZWlnaGJvdXJob29kLiAgIFdoZW4gaGUgYXJyaXZlZCBhdCB0aGUKZmlyc3QgaG91c2Ugb24gaGlzIHJvdXRlIGhlIHdhcyBncmVldGVkIGJ5IHRoZSB3aG9sZSBmYW1pbHkgdGhlcmUsIHdobwpjb25ncmF0dWxhdGVkIGhpbSBhbmQgc2VudCBoaW0gb24gaGlzIHdheSB3aXRoIGEgdGlkeSBnaWZ0IGVudmVsb3BlLiAgQXQKdGhlIHNlY29uZCBob3VzZSB0aGV5IHByZXNlbnRlZCBoaW0gd2l0aCBhIGJveCBvZiBmaW5lIGNpZ2Fycy4gVGhlCmZvbGtzIGF0IHRoZSB0aGlyZCBob3VzZSBoYW5kZWQgaGltIGEgc2VsZWN0aW9uIG9mIHRlcnJpZmljIGZpc2hpbmcKbHVyZXMuCiAKQXQgdGhlIGZvdXJ0aCBob3VzZSBoZSB3YXMgbWV0IGF0IHRoZSBkb29yIGJ5IGEgc3RyaWtpbmdseSBiZWF1dGlmdWwKYnJ1bmV0dGUgd29tYW4gaW4gYSByZXZlYWxpbmcgbmVnbGlnZWUuIFNoZSB0b29rIGhpbSBieSB0aGUgaGFuZCwKZ2VudGx5IGxlZCBoaW0gdGhyb3VnaCB0aGUgZG9vciBhbmQgdG9vayBoaW0gdXAgc3RhaXJzIHRvIHRoZSBiZWRyb29tCndoZXJlIHRoZXkgaGFkIHRoZSBtb3N0IHBhc3Npb25hdGUgbG92ZSBoZSBoYWQgZXZlciBleHBlcmllbmNlZC4gVGhlbiB0aGV5CndlbnQgZG93bnN0YWlycywgd2hlcmUgc2hlIGZpeGVkIGhpbSBhIGdpYW50IGJyZWFrZmFzdDogZWdncywgcG90YXRvZXMsCnNhdXNhZ2VzLCBibHVlYmVycnkgd2FmZmxlcywgYW5kIGZyZXNoLXNxdWVlemVkIG9yYW5nZSBqdWljZS4gIEFzIHNoZQp3YXMgcG91cmluZyBoaW0gYSBzdGVhbWluZyBjdXAgb2YgY29mZmVlLCBoZSBub3RpY2VkIGEgZG9sbGFyIGJpbGwKc3RpY2tpbmcgb3V0IGZyb20gdW5kZXIgdGhlIGN1cCdzIGJvdHRvbSBlZGdlLgoiQWxsIHRoaXMgd2FzIGp1c3QgdG9vIHdvbmRlcmZ1bCBmb3Igd29yZHMsIiBoZSBzYWlkLCAiYnV0IHdoYXQncyB0aGUKZG9sbGFyIGZvcj8iCiAKIldlbGwsIiBzaGUgc2FpZCwgImxhc3QgbmlnaHQsIEkgdG9sZCBteSBodXNiYW5kIHRoYXQgdG9kYXkgd291bGQgYmUKeW91cgpsYXN0IGRheSwgYW5kIHRoYXQgd2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBzcGVjaWFsIGZvciB5b3UuICBJIGFza2VkIGhpbQp3aGF0IHRvIGdpdmUgeW91LiAgSGUgc2FpZCwgJ0Z1Y2sgaGltLiAgR2l2ZSBoaW0gYSBkb2xsYXIuJyAgVGhlCmJyZWFrZmFzdCB3YXMgbXkgaWRlYS4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRmFtb3VzIExhc3QgV29yZHMgKEFzdGFyLCAgNy4gSmFuIDE5OTcsIDE1OjQ2OjE4KToKfiMhIHJuPUFuYXRvbCBydD04NTI1NTY2OTEgcmc9d2l0emUKfiMhIHRpZD04NTI1NTM0NjUKCiJXbyBpc3QgZGVubiBudW4gZGllIEhhcnB5aWU/IgoKQXN0YXIgKGtlaW4gV2l0eikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEZhbW91cyBMYXN0IFdvcmRzIChDYXVubywgIDcuIEphbiAxOTk3LCAxNjoyMToxMyk6Cn4jISBybj1Bc3RhciBydD04NTI2NDgzNzggcmc9d2l0emUKfiMhIHRpZD04NTI1NTM0NjUKCldhcyBiZWRldXRldCBlaWdlbnRsaWNoOiBEaWUgSHlkcmEgc2lua3QgaW4gZGFzIFRhbCBkZXIgTHVwaW5lbiBoZXJuaWVkZXI/IChJbQpMdXBpbmVudGFsIHN0ZWhlbmQsIGF1Y2gga2VpbiBXaXR6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdWVuLVdpdHogKFNseWZveCwgIDcuIEphbiAxOTk3LCAyMjo0MjozOSk6CkRpZSBEZW1vbnN0cmF0aW9uIGRlciBKdW5nZnJhdWVuIHZvbiBIYW1idXJnIHdhciBhdXNnZWZhbGxlbi4KRWluZSB3YXIga3JhbmssIHVuZCBkaWUgYW5kZXJlIHdvbGx0ZSBhbGxlaW5lIG5pY2h0IGxvcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoUm9jaHVzLCAgOC4gSmFuIDE5OTcsIDE3OjA2OjUwKToKMTI1NC1QQzE6ICJXZSBzbWVsbCBnYXM/ICBKb2UhICBEb24ndCBjYXN0IGFueSBmaXJlIHNwZWxscyEgTm93LCB3aGF0IGRpZCBJCiAgICAgICAgICAganVzdCB0ZWxsIHlvdT8iCiAgICAgUEMyOiAiRG9uJ3QgY2FzdCBhbnkgZmlyZSBzcGVsbHMuIgogICAgIFBDMTogIkdvb2QuIgogICAgIHs1IG1pbnV0ZXMgcGxheWluZyBsYXRlcn0KICAgICBQQzI6ICJHb2JsaW5zPyAgSSBjYXN0IGJ1cm5pbmcgaGFuZHMuIgoKCjEwODEtIkdyZWF0ISBXZSBoYXZlIG5pZ2h0IGdvZ2dsZXMgYW5kIG1pbWljcnkgc3VpdHMgYW5kIGl0IGlzIGluIHRoZQogICAgICBkZWFkIG9mIG5pZ2h0LiBUaGV5J2xsIG5ldmVyIHNlZSB1cyEgV2hhdCBkbyB5b3UgbWVhbiAnU3NzaCEnPyIKCjEwODMtUGxheWVyOiAiRGlkbid0IHlvdSBzYXkgdGhhdCB3aGVuIHRoZSBkaWNlIGNvbWUgdXAgbGlrZSB0aGlzLCBpdCdzIGEKICAgICAgICAgICAgICBjcml0aWNhbCBoaXQ/IgogICAgIEdNICAgIDogIkVyaG0uLi50aGFuayB5b3UgZm9yIHJlbWluZGluZyBtZS4uLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZXN1cy1Kb2tlIChLcmV0ZWssICA4LiBKYW4gMTk5NywgMTg6MDQ6MjcpOgpTdGFuZGFyZCBkaXNjbGFpbWVyOgpJZiB5b3UncmUgb2ZmZW5kZWQgYnkgam9rZXMgd2l0aCByZWxpZ2lvdXMgY29udGVudCwgWkFSSyBPRkYhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLSUgc25pcCAlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKCgpFcyBpc3QgamV0enQgZXhlZ2V0aXNjaCBiZXdlaXNiYXIsIGRhc3MgSmVzdXMgZWluIFN0dWRlbnQgd2FyOgpFciB0cnVnIGxhbmdlIEhhYXJlLCB3b2hudGUgbWl0IDMwIG5vY2ggYmVpIHNlaW5lbiBFbHRlcm4sIHVuZCB3ZW5uIGVyCm1hbCB3YXMgdGF0LCBkYW5uIHdhcidzIGdsZWljaCBlaW4gV3VuZGVyIQoKCgoKICAgICAgIHwgLyAgfFwgIHwtLSAgLS0tICB8LS0gIHwgLwogICAgICAgfDwgICB8LyAgfC0gICAgfCAgIHwtICAgfDwKICAgICAgIHwgXCAgfFwgIHwtLSAgIHwgICB8LS0gIHwgXAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZMVyAoQ2F1bm8sICA5LiBKYW4gMTk5NywgMTA6NTA6MzgpOgp+IyEgcm49Um9jaHVzIHJ0PTg1MjczOTYxMCByZz13aXR6ZQp+IyEgdGlkPTg1MjczOTYxMApTemVuZW4gYXVzIFNGLVJvbGxlbnNwaWVsZW46CgoiSG9lcnQgaWhyIGVzIGJlaSBldWNoIGF1Y2ggemlzY2hlbj8iIChVZWJlciBkZW4gSGVsbWZ1bmsgZGVzIFJhdW1hbnp1Z2VzKQoKIldhcyBpc3QgZGFzIGZ1ZXIgZWluIGtvbWlzY2hlciByb3RlciBQdW5rdCBhdWYgZGVpbmVyIFN0aXJuPyIKClBDIDE6ICJOYSwgc29sYW5nZSBpY2gga2VpbiBHZXNjaHVldHogaGFiZSwgd2VyZGVuIHdvaGwga2VpbmUgc3RhcmtlbgpBbmdyZWlmZXIga29tbWVuLiIKUEMgMjogIldlaXNzIGRhcyBhdWNoIGRlciBNYXN0ZXI/IgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyYWZpa2VyIChTdXNoaSwgMTEuIEphbiAxOTk3LCAyMzowMjoyOSk6ClE6IFdhcyBpc3QgSWhyIEJlcnVmPwpBOiBHcmFmaWtlcmluLgpROiBVbmQgd2FzIG1hY2hlbiBTaWUsIHdlbm4gZGVyIEdyYWYgbmljaHQgZGEgaXN0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWnVtIFRoZW1hIEFNSUdBIChFbmd5d3VjaywgMTMuIEphbiAxOTk3LCAxNTo1MDowNCk6CldvcmFuIGVya2VubnQgbWFuIGVpbmVuIEFtaWdhYmVzaXR6ZXIgPwpBbiBkZW4gcm90ZW4gQXVnZW4gIQogICAgICAgICAgICAgICAgICAgICAgICAgICAgCldpZSBrb21tdCBlaW4gQW1pZ2FiZXNpdHplciBhbiBkYXMgSW5oYWx0c3ZlcnplaWNobmlzIGVpbmVyIERpc2tldHRlID8KRXIgc3VjaHQgZGVuIFpldHRlbCwgd28gZXIgc2ljaCBkaWUgRGF0ZWluYW1lbiBub3RpZXJ0IGhhdCAhCgpXYXJ1bSBoYWJlbiBBbWlnYWJlc2l0emVyIG51ciB3ZW5pZ2UgRGF0ZWllbiBhdWYgaWhyZW4gRGlza2V0dGUgPwpEYW1pdCBiZWltIERpcmVjdG9yeS1MZXNlbiBkZXIgS2FmZmVlIG5pY2h0IGthbHQgd2lyZCAhCgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBTcGllbC1vLXRoZWsgdW5kIGVpbmVtIEFtaWdhLUhhZW5kbGVyID8KQmVpbSBBbWlnYS1IYWVuZGxlciBkYXJmIG1hbiBrb3N0ZW5sb3MgYmFsbGVybi4KCldhcnVtIGhlaXNzdCBlaW4gU3lzdGVtYWJzdHVyeiBiZWltIEFtaWdhICJHdXJ1LU1lZGl0YXRpb24iID8KV2VpbCBkaWUgQW1pZ2EtSW5nZW5pZXVyZSB3YWVocmVuZCBkZXIgZ2VzYW10ZW4gRW50d2lja2x1bmdzemVpdCBiZXNvZmZlbgp3YXJlbiAhCgpVbmQgd2FydW0gc3R1ZXJ6dCBkZXIgQW1pZ2Egc3RhZW5kaWcgYWIgPwpWZXJzdWNoIG1hbCBpbSBWb2xscmF1c2NoIGVpbiBmZWhsZXJmcmVpZXMgUHJvZ3JhbW0genUgc2NocmVpYmVuICEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApXZXIgZGFjaHRlIHNpY2ggZGllIFdlcmJla2FtcGFuZ25pZSBtaXQgIktpc3MgbWUsIEFtaWdhIiBhdXMgPwpFaW5lciB2b24gZGllc2VuIHZvbGx0cnVua2VuZW4gRW50d2lja2xlcm4gIQoKV2FydW0gd2lyZCBkYXMgQW1pZ2FET1MgbmljaHQgZmVobGVyYmVyZWluaWd0ID8KV2VpbCB2aWVsZSBFbnR3aWNrbGVyIHNlbGJzdCBuaWNodCBtZWhyIGR1cmNoYmxpY2tlbiAhCgpVbmQgd2FzIGlzdCBtaXQgZGVuIHJlc3RsaWNoZW4gRW50d2lja2xlcm4gPwpEaWUgc2luZCBpbiBkZXIgRW50emllaHVuZ3NrdXIuCgpXYXJ1bSBoYXQgZGVyIEFtaWdhIEN1c3RvbS1DaGlwcyA/CkRhbWl0IGF1Y2ggZHVtbWUgUHJvZ3JhbW1pZXJlciB6dSBQb3R0ZSBrb21tZW4gIQoKV2FydW0gaGFiZW4gZGllIEN1c3RvbS1DaGlwcyBhbGxlIEZyYXVlbm5hbWVuID8KIkZyYXVlbiB1bmQgVGVjaG5payIgLSBad2VpIFdlbHRlbiBzdG9zc2VuIGF1ZmVpbmFuZGVyICEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApXYXMgbWFjaGVuIEFtaWdhYmVzaXR6ZXIgYmVpIExhbmdld2VpbGUgPwpTaWUgZ2ViZW4gaWhyZW4gUkFNLXVuZCBUVEwtQmF1c3RlaW5lbiBub2NoIGVpbiBwYWFyIE5hbWVuICEKCldhcyBpc3QgaW4gZGVtIG5ldWVuIFByb2dyYW1tcGFrZXQgenVtIEFtaWdhIDUwMCBlbnRoYWx0ZW4gPwoxMCBCYWxsZXJzcGllbGUsIDIgRGVtb3MsIGVpbiBUZWxlZm9ubnVtbWVybnNwZWljaGVycHJvZ3JhbW0sIGVpbmUKQmVkaWVudW5nc2Fud2Vpc3VuZyBpbiBHcm9zc3NjaHJpZnQgbWl0IHZpZWxlbiBidW50ZW4gQmlsZGVybiB1bmQgZnVlcgpkaWUgQW5hbHBoYWJldGVuIGVpbmUgOTBlciBBdWRpb2Nhc3NldHRlIG1pdCBIaW53ZWlzZW4gZnVlciBkZW4gVW1nYW5nCm1pdCBkZXIgTWF1cy4KCldvenUgZ2lidCBlcyBqZXR6dCB2b24gQ29tbW9kb3JlIENEVFYgPwpEYW1pdCBkaWUgQW1pZ2FiZXNpdHplciBkaWUgSGlud2Vpc2UgZnVlciBkZW4gVW1nYW5nIG1pdCBkZXIgTWF1cyBhdWNoCnJhdXNjaGZyZWkgaG9lcmVuIGtvZW5uZW4uCgpXaWV2aWVsZSBBbmFscGhhYmV0ZW4gZ2lidCBlcyBpbiBEZXV0c2NobGFuZCA/CkNhLiA1MDAuMDAwICEKVW5kIHdpZXZpZWxlIEFtaWdhYmVzaXR6ZXIgPwpHZW5hdSwgYXVjaCA1MDAuMDAwICEKCldhcnVtIHdpcmQgYmVpIGRlciBHdXJ1LU1lZGl0YXRpb24gamV0enQgYXVjaCBkaWUgVWhyemVpdCBhbmdlemVpZ3QgPwpEYW1pdCBtYW4gbmljaHQgamVkZSBNaW51dGUgYXVmIGRpZSBBcm1iYW5kdWhyIGd1Y2tlbiBtdXNzLgoKV2FzIGJyYXVjaCBtYW4gdW0gZWluZW4gQW1pZ2EgNTAwIGhhbGJ3ZWdzIHZlcm51ZW5mdGlnIG51dHplbiB6dSBrb2VubmVuID8KRWluIHp3ZWl0ZXMgTGF1ZndlcmssIGVpbmUgU3BlaWNoZXJlcndlaXRlcnVuZywgRmxpY2tlcmZpeGVyLCBlaW5lbgpQQy1FbXVsYXRvciB1bmQgdmllbCwgdmllbCBHZWR1bGQgdW5kIFplaXQuCgpXYXJ1bSB3aXJkIGRlciBBbWlnYSAyMDAwIGdlcm5lIGdla2F1ZnQgPwpEYSBwYXNzZW4gZGllIFBDLUthcnRlbiBzbyBsZWljaHQgcmVpbiAhCgpXYXMgaXN0IGF1cyBQYXBpZXIgdW5kIHdpZWd0IHNvdmllbCB3aWUgZWluIEtsZWlud2FnZW4gPwpEaWUgS3VyemZhc3N1bmcgZGVyIEFtaWdhRE9TLUVudHdpY2tsZXJkb2t1cyAhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCldhcnVtIGhhdCBDb21tb2RvcmUgU3RlcGhhbiBIYXdraW5nIGVuZ2FnaWVydCA/CkVyIHNvbGx0ZSBkaWUgRnVua3Rpb25zd2Vpc2UgdW5kIGxldHp0ZW4gUmFldHNlbCBkZXMgQW1pZ2FET1MgZXJncnVlbmRlbgp1bmQgc2VpbmUgRXJrZW5udG5pc3NlIGluIEJ1Y2hmb3JtIHZlcnN0YWVuZGxpY2ggbWFjaGVuLgoKV2FydW0gYmVrYW0gZXIgbnVyIGRpZSBIYWVsZnRlIGRlcyBIb25vcmFyZXMgPwpXZWlsIGVyIG5pY2h0IGFsbGVzIHZlcnN0YW5kZW4gaGF0IHVuZCBzZWluZSBFcmxhZXV0ZXJ1bmdlbiBpbW1lciBub2NoCmVpbmVyIEtsZWluc3RhZHRiaWJsaW90aGVrIGVudHByZWNoZW4uCgpXYXJ1bSB3ZXJkZW4gYXVmIGRlbSBBbWlnYSB2aWVsZSBTcGllbGUgdW5kIERlbW9zIGdlc2NocmllYmVuID8KV2VpbCBtYW4gZGF6dSBuaWNodCBkYXMgQmV0cmllYnNzeXN0ZW0gYnJhdWNodC4KCldpZSB3ZXJkZW4gQW1pZ2FiZXNpdHplciBrZXRlZ29yaWVydCA/CiAgMSBTdGVybiAgOiBFciBrYW5uIEFtaWdhIGFuLSB1bmQgYXVzc2NoYWx0ZW4uCiAgMiBTdGVybmUgOiBFciBrYW5uIEFtaWdhIGFuc2NoYWx0ZW4sIFJhdWJrb3BpZSBlaW5sZWdlbiwgTWFlbm5jaGVuCiAgICAgICAgICAgICBhYnNjaGllc3NlbiB1bmQgd2llZGVyIGF1c3NjaGFsdGVuLgogIDMgU3Rlcm5lIDogd2llIDIgU3Rlcm5lIHVuZCBiZWhlcnJzY2h0IGVpbiBSb2xsZW5zcGllbC4KICA0IFN0ZXJuZSA6IHdpZSAzIFN0ZXJuZSB1bmQga2VubnQgZWluIERlbmtzcGllbC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFp1bSBUaGVtYSBBTUlHQSAoQ2F1bm8sIDEzLiBKYW4gMTk5NywgMTU6NTI6NTMpOgp+IyEgcm49RW5neXd1Y2sgcnQ9ODUzMTY3MDA0IHJnPXdpdHplCn4jISB0aWQ9ODUzMTY3MDA0ClVuZCBqZXR6dCBiaXR0ZSBub2NoIGRpZSBXaW5kb3dzLVZlcnNpb25lbiAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogWnVtIFRoZW1hIEFNSUdBIChKZWhvdmEsIDE0LiBKYW4gMTk5NywgMTY6NDk6NDApOgp+IyEgcm49QXN0YXIgcnQ9ODUzMjQzMTE0IHJnPXdpdHplCn4jISB0aWQ9ODUzMTY3MDA0CgpBbGxlIEphaHJlIHdpZWRlciAuLi4gZGFzIGtlbm50IG1hbiBqYSBzY2hvbiA6KQpXb2xsdGUgbnVyIHNhZ2VuLCBkYXMgbWVpbiBXOTUgbm9jaCBOSUUgYWJnZXN0dWVyenQgaXN0LgpNYWwgYWJnZXNlaGVuIHZvbiBkZXIgWmVpdCwgd28gaWNoIGFuIG1laW5lbiBNb25pdG9yLVNldHRpbmdzCnZlcmFlbmRlcnQgaGFiZSB1bmQgZGFkdXJjaCBsZWljaHRlIERhcnN0ZWxsdW5ncy1Qcm9ibGVtZSBoYXR0ZS4KVW5kIG1laW4gQW1pZ2EgaXN0IHp3YXIgemllbWxpY2ggc2NobmVsbCB6dSBjcmFzaGVuLCBhYmVyIGF1Y2ggbnVyLAp3ZW5uIGljaCB1bnNhdWJlciBwcm9ncmFtbWllcnRlIFNvZnQgYmVudXR6dGUuIFVuZCB3ZXIgc293YXMgbWFjaHQKaXN0IG1laW5lciBNZWludW5nIHNlbGJzdCBzY2h1bGQuCgpVbmQgamV0enQsIHdvIHdpciBtaXR0ZW4gaW4gZGVyIERpc2t1c3Npb24gdWViZXIgZGFzIGJlc3NlcmUKQmV0cmllYnNzeXN0ZW0gc2luZCwgd2VyZGUgaWNoIGxpZWJlciBTY2hsdXNzIG1hY2hlbi4gCihOaWNodCBkYXMgbWljaCBlaW5lciBseW5jaGVuIHdpbGwuKQoKSmVob3ZhLCBiZW51dHp0IGxpZWJlciBzZWluZW4gQW1pZ2EgYWxzIFdpbmRvb2YuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBadW0gVGhlbWEgQU1JR0EgKEdyaW1tYm9ybiwgMTQuIEphbiAxOTk3LCAxNzozODoxMyk6Cn4jISBybj1KZWhvdmEgcnQ9ODUzMjU2OTgwIHJnPXdpdHplCn4jISB0aWQ9ODUzMTY3MDA0Ck5hamEsIGRhcyBsYXNzIGljaCBtYWwgYWxzIFdpdHogZHVyY2hnZWhlbiwgd2VubiBlaW5lciBzYWd0LCBlciB3dWVyZGUgbWl0CmVpbmVtIEJTIGFyYmVpdGVuIHVuZCBlcyB3dWVyZGUgbmllIGFic3R1ZXJ6ZW4uLi4KUGVyc29lbmxpY2ggaGFiIGljaCBiaXNoZXIgamVkZXMgQlMgKG9kZXIgd2FzIHNpY2ggc28gZGFmdWVyIGhhZWx0KSwgZGFzIGljaAp6d2lzY2hlbiBoYXR0ZSwgenVtIEFic3R1cnogZ2VicmFjaHQuIERhcyBnaWx0IGZ1ZXIgRE9TLCBXaW4zLjExLCBXaW45NS4gV2luTlQKdW5kIExpbnV4LgpBbHMgV2l0eiBrb2VubnRlIGljaCBtZWluIEVybGVibmlzIGFtIFdFIGJlaXN0ZXVlcm4sIGFscyBpY2ggaW4gZWluZW0KUmVzdGF1cmFudCB3YXIsIGRhcyBzaWNoIHdvaGwgZnVlciBwaWVrZmVpbiBoaWVsdCB1bmQgd28gaWNoIG1pdCBndXRlbSBIdW5nZXIKYW5zIFNhbGF0YnVlZmZldCB0cmF0LiBXaWVkZXIgYW0gVGlzY2gga2FtIGVpbiBHZXNjaGFlZnRzZnVlaHJlciAoZHVua2xlcgpBbnp1ZywgS3Jhd2F0dGUsIERJRSBTb3J0ZSBoYWx0KSB1bmQgcmlzcyBtaXIgdW5kIHp3ZWkgRnJldW5kZW4gZGllIFRlbGxlciBhdXMKZGVyIEhhbmQuIEVyIG1laW50ZSwgd2lyIGhhZXR0ZW4gZGllIGZhbHNjaGVuIFRlbGxlciBnZW5vbW1lbiAoaWNoIGJpbiBqYSBkZXIKTWVpbnVuZywgZGllIHJpY2h0aWdlbiBUZWxsZXIgc2luZCBJTU1FUiBkaWUgZ3Jvc3NlbikgdW5kIGR1ZXJmdGVuIG5pY2h0CndlaXRlcmVzc2VuLgpOYWphLCB3aXIgd2FyZW4gdm9lbGxpZyBwZXJwbGV4LCBoYWJlbiBhdWYgdW5zZXJlIGxlZXJlbiBIYWVuZGUgZ2VzdGFycnQgdW5kCmRlbSBlbnRzY2h3aW5kZW5kZW4gR2VzY2hhZWZ0c2Z1ZWhyZXIgaGludGVyaGVyIGdlc2NoYXV0LiAKT0ssIHdhciBuaWNodCBzbyBsdXN0aWcsIGF1Y2ggd2VubiB3aXIgdHJvdHpkZW0gc2F0dCBnZXdvcmRlbiBzaW5kLiBOYWphLCB1bmQKaGludGVyaGVyIGZhZWxsdCBlaW5lbSBkYW5uIHZpZWwgZWluLCB3YXMgbWFuIGhhZXR0ZSB0dW4gb2RlciBzYWdlbiBrb2VubmVuLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFp1bSBUaGVtYSBBTUlHQSAoUm9jaHVzLCAxNC4gSmFuIDE5OTcsIDE4OjMwOjQ0KToKfiMhIHJuPUplaG92YSBydD04NTMyNTY5ODAgcmc9d2l0emUKfiMhIHRpZD04NTMxNjcwMDQKRWluIE11bHRpdGFza2luZy1CUyAodW5kIGVyc3QgcmVjaHQgTXVsdGl1c2VyKSBkYXJmIGVpZ2VudGxpY2gKYXVjaCBiZWkgYW0gbWllc2VzdGVuIHByb2dyYW1taWVydGVuIFNvZnR3YXJlIG5pY2h0IChuYSBndXQsCnNhZ2VuIHdpciBtYWwgU0VMVEVOKSBhYnN0dWVyemVuLgpFaW4gUHJvZ3JhbW1pZXJlciBtdXNzIHNpY2ggYmVpIGVpbmVtIHNvbGNoZW4gU3lzdGVtIGRhcmF1ZiB2ZXJsYXNzZW4Ka29lbm5lbiwgZGFzcyBuaWNodCBhbmRlcmUgUHJvZ3JhbW1lIGluIHNlaW5lbSBoZXJ1bXBmdXNjaGVuLCB1bmQgZGFzCmZ1bmt0aW9uaWVydCBudXIgbWl0IG9yZGVudGxpY2hlbSBTY2h1dHogdm9uIFNwZWljaGVyYmVyZWljaGVuIHZvcgpkZW0gWnVncmlmZiBhbmRlcmVyIFByb2dyYW1tZSB1bmQgd2VubiBkZXIgZ2VnZWJlbiBpc3QgaXN0IGRhcwpCUyBmYXN0IHNjaG9uIGF1dG9tYXRpc2NoIHppZW1saWNoIHNpY2hlciBnZWdlbiBBYnN0dWVyemUgdmVydXJzYWNodApkdXJjaCBmZWhsZXJoYWZ0ZSBTb2Z0d2FyZS4KV2FzIFdpbmRvb2YgOTUgKHVuZCBlcnN0IHJlY2h0IHdpbjMpIGRlbSBQcm9ncmFtbWllcmVyIGFsbGVzIGVybGF1YnQKd2FnZSBpY2ggbmljaHQgYWxzIG9yZGVudGxpY2hlbiBTUGVpY2hlcnNjaHV0eiB6dSBiZXplaWNobmVuICh1bmQKYmVpbSBBbWlnYSBkdXJmdGUgLi4uIGFlaCBLT05OVEUgdXJzcHJ1ZW5nbGljaCBqZWRlciB1ZWJlcmFsbCBoZXJ1bXNjaHJlaWJlbikKQWxsZXJkaW5ncyBoYXR0ZSBkYXMgQlMgZGVzIEFtaWdhIHNjaG9uIGZydWVoZXIgbWVociBBZWhubGljaGtlaXQKbWl0IGVpbmVtIHZlcm51ZW5mdGlnZW4gQlMgKFp1Z3JpZmYgYXVmIEhhcmR3YXJlIG51ciBkdXJjaApCUy1TY2huaXR0c3RlbGxlbiB3YXIgZW1wZm9obGVuLCBhYmVyIGxlaWRlciBhdWNoIGRpcmVrdGVyClp1Z3JpZmYgbW9lZ2xpY2gpIGFscyBkZXIgTWljcm9TY2hyb3R0LgoKT2JKb2tlOiAoYXVzIHJlYy5nYW1lcy5yb2d1ZWxpa2UuYW5nYmFuZCkKTXkgOCB5ZWFyIG9sZCBzb24ganVzdCBraWxsZWQgTWFnZ290IGFuZCBnb3QgYSBCRFNNLgpJIGFtIGRlcHJlc3NlZC4KCihadXIgRXJrbGFlcnVuZzogRmFybWVyIE1hZ2dvdCBzY2hsYWVndCBuaWNodCB6dXJ1ZWNrIHVuZCBpc3QgYXVjaApmdWVyIEFuZmFlbmdlciBwcm9ibGVtbG9zIHp1IGtpbGxlbiB1bmQgZWluZSBCcm9uY2UgRHJhZ29uIFNjYWxlIE1haWwKaXN0IGVpbmUgdmVyZGFtbXQgZ3V0ZSBSdWVzdHVuZyAoamVkZW5mYWxscyB3ZWl0IHVlYmVyIEFuZmFlbmdlci1OaXZlYXUpKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRHVtbWVyIFNwcnVjaCAoR3JpbW1ib3JuLCAxNC4gSmFuIDE5OTcsIDE5OjA5OjAxKToKIkRhcyBMZWJlbiBpc3QgZWluZSBzZXh1ZWxsIHVlYmVydHJhZ2VuZSBLcmFua2hlaXQgbWl0IHRvZWRsaWNoZW0gQXVzZ2FuZy4iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFp1bSBUaGVtYSBBTUlHQSAoQXN0YXIsIDE1LiBKYW4gMTk5NywgMDk6NDk6NDgpOgp+IyEgcm49SmVob3ZhIHJ0PTg1MzI1Njk4MCByZz13aXR6ZQp+IyEgdGlkPTg1MzE2NzAwNApIbW0gamEgaWNoIGJlbnV0emUgYXVjaCBsaWViZXIgZGVuIGFtaWdhLgpadW0gdGhlbWEgYWJzdHVyeiB3aWUgd2FlcmUgZXMgbWl0IDIzIGNyYXNocyBpbiBlaW5lciBzdHVuZGUgdG9sbCBnZWxsLiBJY2gKc2FnIG51ciBUd2FpbnRyZWliZXIgZnVlciBhbGxlIGRpZSBzaWNoIG1hbCBtaXQgbmVtIHNjYW5uZXIgdW50ZXIgd2luOTUKdmVyc3VjaHQgaGFiZW4gOykKCkFzdGFyCgpwczoga2VpbmUgZGlza3Vzc2lvbiB1YmVyIGJldHJpZWJzc3lzdGVtZSBiaXR0ZSBsaW51eCBpc3QgZWggYmVzc2VyIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSb2RtYW4gKFJvY2h1cywgMTUuIEphbiAxOTk3LCAxMzo1MDo1MCk6CldhciBoZXV0ZSBpbiBkZW4gTmFjaHJpY2h0ZW4genUgbGVzZW4gKHd3dy5nZXJtYW55LWxpdmUuZGUpOgpCYXNrZXRiYWxsZXIgRGVubmlzIFJvZG1hbiAic2NobGVjaHRlc3QgZ2VrbGVpZGV0ZSBGcmF1IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2ViIENvdW50ZXIgKFJvY2h1cywgMTYuIEphbiAxOTk3LCAxNjowMToyNCk6CjAwMDAwMDAwMDAwMDIwNDIKCihEZXIgZXJ3YXJ0ZXQgYW5zY2hlaW5lbmQgZWluZW4gd2FobnNpbm5pZ2VuIEJlc3VjaGVyYW5kcmFuZyA6KQogZ2VzZWhlbiBhdWY6ICBodHRwOi8vaG9tZS5oa3N0YXIuY29tL35sdWlici90ZXh0Lmh0bSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFp1bSBUaGVtYSBBTUlHQSAoV3VyemVsLCAxNi4gSmFuIDE5OTcsIDIxOjAwOjAzKToKfiMhIHJuPUFzdGFyIHJ0PTg1MzMxODE4OCByZz13aXR6ZQp+IyEgdGlkPTg1MzE2NzAwNAppbW1lciB3aWVkZXIgc3Bhbm5lbmRlcyB0aGVtYS4uLgpqZWRlcyBiZXRyaWVic3N5c3RlbSBzdHVlcnp0IGFiPyBzdGltbXQsIGFiZXIgZGllIGhhZXVmaWdrZWl0IHNwaWVsdCBhdWNoIGVpbmUKbmljaHQgdW53ZXNlbnRsaWNoZSByb2xsZS4gYW0gYmVzdGVuIHNjaG5laWRlbiBkYSB3b2hsIG5vY2ggbXZzIHVuZCB2bXMgYWIsCmFiZXIgZGFzIGlzdCBuaWNodHMgZnVlciBjb21wdXRlcnNwaWVsZXIgOikKCndpbmRvb2YgOTUgc3R1ZXJ6dCBiZWkgbWlyIGFsbGVyZGluZ3MgdWViZXJoYXVwdCBuaWNodCBhYi4ga29lbm50ZSBkYXJhbgpsaWVnZW4sIGRhc3MgaWNoIGVzIG5pY2h0IGJlbnV0emUgOikKCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVyc3VjaCBkZXIgVWViZXJzZXR6dW5nIGVpbmVyIEFubGVpdHVuZyAoUm9jaHVzLCAxNi4gSmFuIDE5OTcsIDIxOjIzOjE3KToKQXVzIGRlLnRhbGsuam9rZXM6CkdFUk1BTgotLS0tLS0KIApCZXZvcnNpZSBkaWUgRWluaGVpdCBtaXQgZGVtIEhhdXB0a29lcnBlciB6dXZlcmJpbmRlbiB2ZXJzdWNoZW4sCmxlc2VuIFNpZSBiaXR0ZSBmb2xnZXVkZSBJbnN0cnVrdGlvbiBtaXQgVm9yc2ljaHQgZnVlciBJaHJlCkdlZmFocmxvc2lna2VpdC4KIApBQ0hUVU5HISBadXIgQWJ3ZW5kdW5nIHZvbiBlbGVrdHJpc2NoZW4gRXJzY2hyZWtlbiB0cmVubmVuIFNpZSBlcwp2b24gZGVtIEhhdXB0LiBEYW5uIG5laG1lbiBTaWUgZGVuIERlY2tlbCBhYi4gS2VpbiBWZXJicmF1Y2hlciBrYW5uCmlubmVyZSBUaWRsZSBhdXNiZXNzZXJuLiBCaXR0ZSB1ZWJlcmxhc3NlbiBTaWUgZGllIEF1c2Jlc3NlcnVuZwpkZW1iZWZ1ZWhpZ3RlbiBzcGV6aWFsaXN0LgogClNJQ0hFUkhFSVRTIFdBUk5VTkcgRUlOTUFMOiBXYW5uIHNpZSBuaWNodCBpbiBCZW51dHp1bmcgaXN0LCBtdXNzCmRpZXNlIEF1c3J1ZXN0dW5nIFZvbmRlbiBIYXVwdGUgZ2V0cmVubnQgd2VyZGVuLiBFcmxhdWJlbiBTaWUgZGllc2UKRWluaGVpdCBuaWNodCwgYW4gZGllIFJlZ2VuIG9kZXIgRGllIE5hZXNzZSBadSBLb21tZW4uCiAKIApPUEVSSUVSRU5ERSBNQU5VRUxMCj09PT09PT09PT09PT09PT09PT0KIApJTkhBTFRTVkVSWkVJQ0hOSVMKIAoxLiBLZW5uemVpY2hudW5nLCBTcGllbGVyc2tvcHBlbHVuZwoyLiBMYWdlIGRlciBLb250cm9sbGVuCjMuIEhpbndlaXNlbiBhdWYgbmFzc2VyIGtvbmRlbnNhdGlvbgo0LiBMZWl0ZW5kZSBIaW53ZWlzZW4gYXVmIGRpZSBLbGVpbmUgRGlzawo1LiBEaXNrIFNwaWVsZW5kZQo2LiBTcGllbCBlaW5lciBTY2hlaWJlIERpc2sgdm9uIEFuZmFuZyBadSBFbmRlCjcuIEVyaGFsdHVuZwo4LiBTdG9lcnVuZ3MgU3VjaGUKOS4gU3BlemlsaWthdGlvbmVuCiAKIApWT1IgREVSIEJFTlVUWlVORyBCRVNFSVRJR0VOIFNJRSBESUUgVFJBTlNQT1JUUyBTQ0hSQVVCRQogClRyYW5zcG9ydHNzY2hyYXViZToKVW0gYmVuIElubmVyZW4gbGFzZXIgcGljay11cCBNZWNoYW5pc211cyB2b24gZGVtIEVyc2NocmVja2VuIHVuZCBCZXdlZ3VuZwpXYWVocmVuZCBkZXMgVHJhbnNpdHMgYWJ6dXdlbmRlbiwgaXN0IHNpZSB2b25kZXJzcGV6aWFsZW4gVHJhbnNwb3J0cwpTY2hyYXViZSBnZXNpY2hlcnQgd29yZGVuLiBEaWUgc3RlbGx1bmdlbiBkZXIgU2NocmF1YmVuIHNpbmQgYXVmIGRlcgpCb2RlbnMgVGFmZWwgZGVzIFNwaWVsZXJzIGFuZ2VnZWJlbi4KIApBYm5haG1lZGVyIFNjaHJhdWJlOgpCZXZvciBkZXIgU3BpZWxlciBpbSBHYW5nIGdla29tbWVuIGlzdCwgbXVlc3NlbiBhbGxlIGRpZSBUcmFuc3BvcnRzClNjaHJhdWJlbiBhYmdlbm9tbWVuIFdlcmRlbi4gRnVlciBkaWUgQWJuYWhtZW4gZGVyIFNjaHJhdWJlbiBzdGVsbGVuClNpZSBkZW4gU3BpZWxlciBhbiBkaWUgbGlua2UgU2VpdGUgYXVmIGVpbmVyIGZlc3Rlbiwgc2FuZnRlbiBPYmVyLQpmbGFlY2hlLCBXaWUgU2NoYXUgaW4gZGVtIERpYWdyYW1tLiBXYW5uIFNpZSBkaWUgU2NocmF1YmVuIGFibmVoYW1lbiwKYmVhY2h0ZW4gU2llIGRlbSBLYWJpbmV0dCBkZXIgU2NocmF1YmVuIG5pY2h0IHp1dmVybGV0emVuLiAoRXJoYWx0ZW4KU2llIGRpZSBUcmFuc3BvcnRzc2NocmF1YmVuIGZ1ZXIgc3BhZXRlcmUgQmVudXR6dW5nKS4KIApUcmFuc3BvcnRpZXJ1bmcgZGVzIFNwaWVsZXJzOgpXZW5uIGRlciBTcGllbGVyIGluIGxhbmdlcm4gQWJzdGFuZCB6dXRyYW5zcG9ydGllcmVuIGlzdCwgbXVlc3NlbiBkaWUKVHJhbnNwb3J0c3NjaHJhdWJlbiBXaWVkZXIgZWlubWFsIGluc3RhbGxpZXJ0IFdlcmRlbi4gT2VmZmVuIFNpZSBkaWUKU2NoZWliZXNjaGFsZS4gU28ga29lbm5lbiBTaWUgc2ljaCB2ZXJnZXdpc3Nlcm4sIGRhc3MgZXMgYmVpbmUgU2NoZWliZQppbm5lcmhhbGIgZ2lidC4gRGFubiBtYWNoZW4gU2llIGRpZSBTY2hhbGUgV2llZGVyIFp1LCBkcmVoZW4gU2llIGRlbgpTcGllbGVyIGFiLiBTdGVsbGVuIFNpZSBkZW4gU3BpZWxlciBhdWYgZGVyZW4gbGlua2VuIFNlaXRlIHVuZAppbnN0YWxsaWVyZW4gU2llIGRpZSBTY2hyYXViZSBXaWUgU2ljaHRiYXIgaW4gZGVtIERpYWdyYW1tLgogCiAKMS4gS0VOTlpFSUNITlVORwotLS0tLS0tLS0tLS0tLS0tCkluZGVuIEtvbXBha3QgRGlzayBTeXN0ZW0gc2luZCBkaWUgZ2xlaWNoZSBUb2VuZSB6dXIgc2VyaWVuIGJpbmFyZW4KS29kZXMgS29udmVydGllaXQgdW5kIHJla29yZGllcnQgYWxzIGRpZ2l0YWwgcHVsc2UgZGVyIGdsZWljaGVuCkFtcGxpdHVkZS4gRGllIHB1bHNlIHNpbmQgYXVmIGRlciBEaXNrIGluIGRlciBHZXN0YWx0IGRlciBrbGVpbmVuClJpdHplbiBtaXQgSG9laGUgdm9uIDEsNiB1bSBlaW5nZXBmbGFuenQuIFdhZWhyZW5kIGRlciB3aWVkZXJnYWJlCmZva3Vzc2llcnQgZWluIGxhc2VyIEJlYW0gU2ljaCBhdWYgZGllIFJpdHplbiwgZGllIGRhcyBMYXNlci1MaWNodApyZWZsZWtzaWVyZW4uIFZhcmlhdGlvbmVuIHZvbmRlbiBydWVraHN0cmFobGVuZGVuIExpY2h0c3RyYWhsZW4Kd2VyZGVuIHdpZWRlciBadXIgZm9ydGdlc2V0enRlbiBBdWRpbyBXZWxsZSBGb3JtIEtvbnZlcnRpZXJ0LgpEdXJjaCBkYXMgU3lzdGVtIG9mZmVyaWVydCBkZXIgU3BpZWxlciBQZXJmb3JtZW56IHVuZCBUb25mdWVsbGUKKGZpZGVsaXR5KSB2aWVsIHN1cGVyaW9yZXIgYWxzIGRlciBhbmRlcmUgQW5hbG9nZSBSZWtvcmQgdW5kIGRhcwpUdXJudGFibGUgU3lzdGVtLiBEYXMgU3lzdGVtIHJlcHJvZHV6aWVydCBUb24gbWl0IGVpbmVtIHBsYXR0IEZyZS0KcXVlbnogQW50d29ydCB2b24gMjBIei0xODAwMEh6IG5lZ2xpZ2libGUgV293IHVuZCBGbHV0dGVyIHVuZApEaXN0b3JzaW9uLCBicmVpdCBkeW5hbWlzY2hlbSBVbWZhbmcgdW5kIGVpbmVyIEhvY2hiYW5kIFNlcGFyYXRpb24uCihBbm1lcmt1bmc6IEFjaCBzb29vbyBmdW5rdGlvbmllcnQgZWluIENELVBsYXllciEgSmV0enQgaGFiZSBpY2ggZXMKZW5kbGljaCBiZWdyaWZmZW4hISkKIApTdGVsbGUgZGVzIFNwaWVsZXJzOgpCaWVzZXIga2xlaW4gRGlzayBTcGllbGVyIGthbm4gZ2xlaWNoIHdpZSBpbiBlaW5lbSBBdWRpbyBSZWdhbCBnZXJuCnN0ZWhlbiBvZGVyIG1pdCBhbmRyZW4ga29tcG9uZW50ZW4gWi5CLiBpbiBlaW5lbSBtaWRpIFN5c3RlbSBzaWNoClp1c2FtbWVuc2V0emVuLiBTaWUgc3RlbGxlbiBkZW0gU3BpZWxlciBuaWNodCBpbiBhbmRhdWVybmRlbQpkaXJla3RlbiBTb25uZXVsaWNodCBvZGVyIGluIGRlciBOYWVoZSBkZXIgSGl0emVxdWVsbGUuCiAKQS4gRnJlaWUgU3RlaGVuCiAgV2VubiBlciBmcmVpZSBzdGFlbmRpZyBlc3QsIG11c3MgZGVyIFNwaWVsZXIgaW1tZXIgaG9yaXpvbnRhbGljaAogIGF1ZiBlaW5lciBwbGF0dCwgZmVzdGVuIG9iZXJmbGF1ZWNoZSwgbmljaHQgYXVmIGVpbmVyIE1hdHRlIG9kZXIKICBldHdhc2FlaG5saWNoZW4uIFdlbm4gZGVyIFNwaWVsZXIgaW4gZWluZW0gU2NocmFuayBvZGVyIGVpbmVyCiAgV2FuZGVpbmhlaXQgc3RlaHQsIGVybGF1YmVuIHNpZSBpbW1lciBtaW5pbWFsIHp3aXNjaGVucmF1bSB2b24KICAzY20gdWViZXIgZGVuIFNwaWVsZXIsIFVtIGRpZSBLdWVobGUgZGVzIFNwaWVsZXJzIG5pY2h0IHp1IHN0b2VyZW4uCkIuIEluIEF1ZGlvIFJlZ2FsCiAgU3RlbGxlbiBTaWUgbmljaHQgZGVuIFNwaWVsZXIgYXVmIFNwaXR6ZSB2b24gaG9jaCBzdHJvbWVuIFZlcnN0YWVya2VyLgpDLiBadXNhbW1lbmdlc2V0enQKICBXZW5uIGRlciBTcGllbGVyIFRlaWwgZGVzIE1pZGktU3lzdGVtcyBiaWxkZXQsIHNvbGxlbiBTaWUgaWhuIGdlbWFlc3MKICBkZXIgR2VicmF1Y2hzYW53ZWlzdW5nIHZlcnNvcmd0IG1pdCBkZW0gU3lzdGVtIHN0ZWxsZW4uIEluIHp1c2FtbWVuLQogIHNldHp1bmcgaWhyZXMgU3lzdGVtLCBzb2xsZW4gc2llIHZvcnp1Z3N3ZWlzZSBkZW4gU3BpZWxlciBhbmRlbSBCb2RlbgogIG9kZXIgYXVmIGRlciBTcGl0emUgc3RlbGxlbi4gU3RlbGxlbiBzaWUga2VpbmVzd2VncyBkZW4gU3BpZWxlcgogIHVubWl0dGVsYmFyIGF1ZiBlaW5lbiBob2Noc3Ryb21lbiBWZXJzdGFlcmtlciwgZGVyIG1hbmNoZSBIaXR6ZQogIGF1c3N0cm9lbWVuIGxhZXNzdC4KIApXYXJudW5nOiBTdGVsbGVuIFNpZSBuaWNodCBBdWRpbyBvZGVyIHZpZGVvIEthc3NldHRlIGF1ZiBkZW0gU3BpZWxlciwKZGEgZGFzIG1hZ25ldGlzY2hlIEZlbGQgdm9uIGRlbSBUcmFuc2Zvcm1hdG9yIFNwaWVsZXJzIHByb2R1emllcnQgaXN0LgogClZlcmJpbmR1bmc6CiAKQS4gVmVyYmluZHVuZyBkZXMgSGF1cHR0ZWlscwogIEVpbmZ1ZWdlbiBTaWUgcmljaHRpZyBEcmFodHN0ZWNrZXIgaW4gZWluZSAyMjBWIDUwSHogSGF1cHR0ZWlscwogIFN0ZWNrZG9zZS4gSGludGVuIGluIGRlbiBTcGllbGVyIFdlcmRlbiBTaWUgendlaSBvZC4gVmVyYmluZHVuZwogIFN0ZWNrZG9zZSBmdWVyIGRhcyB2ZXJiaW5kdXJnc2thYmVsLgogCkIuIFZlcmJpbmR1cmcgbWl0ZGVtICh2b3ItKSBWZXJzdGFlcmtlcgogIEVpbmZ1ZWdlbiBTaWUgZWluZW4gU2Nod2FyeiBTdGVja2VyIGRlcyBiZXNjaGFmZmVuZGVuIHZlcmJpbmR1Z3MKICBLYWJlbHMgaW4gZGVyIHdlaXNzZSBTdGVja2Rvc2UgKGxpbmtlciBrYW5hbCkgdW5kIGVpbmVuIHJvdCBTdGVja2VyCiAgaW4gZGVyIHJvdCBTdGVja2Rvc2UgKHJpY2h0aWcga2FuYWwpLCBlaW5mdWVnZW4gU2llIGJlaWRlIGFuZGVyZQogIFN0ZWNrZXIgaW4gZGllIGVudHNwcmVjaGVuZGUgQ0QvVFYgb2RlciBBdVggU3RlY2tkb3NlIGF1ZiBJaHJlcgogICh2b3IpIFZlcnN0YWVya2VyLiBXZW5uIGRpZSBTdGVja2Rvc2UgU2Nob24gaW4gVXN1cyBzaW5kLCBrb2VubmVuCiAgU2llIFN0ZWNrZXIgaW4gVHVuZXIgb2RlciBUYXBlIEluIFN0ZWNrZG9zZSBTdGVja2VuLiBBYmVyIG5pZQogIFBIT05PIFN0ZWNrZG9zZSEgRGllIFBIT05PIHN0ZWNrZG9zZSBzaW5kIG5pY2h0IGZ1ZXIgZGllIHZlci0KICBiaW5kdWcgZGVzIGtvbWFwa3QgRGlzayBTcGllbGVycyBnZWVpZ25ldC4KIAogCjIuIExBR0UgREVSIEtPTkRST0xMRU4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoxLiBTdHJvbQoyLiBTcGllbC9QYXVzZQozLiBIYWx0CjQuIExhdWYsIFplaXQKNS4gRi9SCjYuIEYvRgo3LiBMZXR6dGUKOC4gTmFlY2hzdGUKOS4gV2llZGVyaG9sdW5nCjEwLiBCbGVpYmVuCjExLiBLb3BmaG9lcmVyIEtsaW5rZQogCktlbm56ZWljaG51bmcgZGVyIEF1c3N0ZWxsdW5nIFRhZmVsOgoxLiBXaWVkZXJob2x1bmcgTEVEIChlaW5tYWwgV2llZGVyaG9sdW5nKQoyLiBXaWVkZXJob2x1bmcgTEVEIChhbGxlbWFsIFdpZWRlcmhvbHVuZykKMy4gU3BpZWwgTEVECjQuIExhdWZiYWhuIFplaWdlciBMRUQKNS4gSW5kZXggemVpZ2VyIExFRAo2LiBMYXVmLCBaZWl0IG9kLiBCbGVpYmVuIFplaXQgb2QuICJkSVNDIiBPUiAiRW5kIiBPUiAiRXJyIgogCiAKMy4gSElOV0VJU0UgQVVGIEZFVUNIVElHS0VJVFMgS09OREVOU0FUSU9OCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpXZW5uIGRlciBTcGllbGVyIHZvbiBrYWx0ZXIgTGFnZSBadSB3YWVybWVuIHVubWl0dGVsYmFyIGdlYnJhY2h0IGlzdCwKb2RlciBpbiBlaW5lbSBmZXVjaHRlbiBaaW1tZXIgc3RlaHQsIEtvbmRlbnNpZXJ0IGRpZSBGZXVjaHRpZ2tlaXQgYW4KZGllIGxhc2VyIGxpbnNlIGlubmVyaGFsYiB2b24gZGVyIEVpbmhlaXQuIEVyZWlnbmV0IGVzIHNpY2gsIHdpcmQgZGVyClNwaWVsZXIgbmljaHQgYmVkaWVuZW4uIEluIGRpZXNlbSBGYWxsLCBuZWhtZW4gU2llIGRpZSBTY2hlaWJlIGFiIHVuZAp2ZXJsYXNzZW4gZGVuIFNwaWVsZXIgaW4gZWluZXIgV2FybWVuIExhZ2UgZXR3YSBlaW5lIFN0dW5kZWxhbmcsIGRhbWl0CmRpZSBGZXVjaHRpZ2tlaXQgZWluZGFlbXBmdC4KIAogCjQuIExFSVRFTkRFIEhJTldFSVNFIEFVRiBESUUgS0xFSU5FIERJU0sKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBLiBEaWVzZSBFaWhlaXQgaXN0IGJlc29uZGVyIGZ1ZXIgUmVwcm9kdWt0aW9uIGRlciBLb21wYWt0IFNjaGVpYmUgbWl0CiAgICJkaXNjIiBtYXJrIGdlZGFjaHQgd29yZGVuLiBLZWluZWFuZGVyZSBTY2hlaWJlIGthbm4gcmVwcm9kdXppZXJ0CiAgIHdlcmRlbi4KQi4gT2VmZm5lbiBzaWUgZGVuIFNjaGVpYmVoYWx0ZXIgV2llIGdlemVpZ3QgaW4gRmlnLiAxLCBkcnVlY2tlbiBTaWUKICAgYXVmIE1pdGUgZGVzIFNjaGVpYmVoYWx0ZXJzLCBVbSBlcyB6dSBsb2VzZW4gdW5kIGx1ZXBmZW4gc2llIGRpZQogICBTY2hlaWJlIGhhbHRlbmQgZXMgdm9yc2ljaHRpZyBuZWJlbiBkZXIga2FudGUgV2llIGdlemVpZ3QgaW4gRmlnLjIuCkMuIFN0ZWxsZW4gc2llIGltbWVyIGRpZSBrb21wYWt0ZSBTY2hlaWJlIGluZGVyIFNjaGVpYmVzY2hhbGUgbWl0IGRlcgogICBNYXJrZSwgZGllIG5hY2ggb2JlbiBnZXJpY2h0ZXQgaXN0LiAoa29tcGFrdGUgU2NoZWliZSBrYW5uIG51cgogICBhdWZlaW5lciBTZWl0ZSBnZXNwaWVsdCB3ZXJkZW4uKQpELiBTY2hlaWJlbmluc3RhbmRoYWx0dW5nOiBPYndvaGwgZGllIE11c2lrbGF1ZmJhaG4gaW4gZGVyIFNjaGVpYmUgbWl0CiAgIGVpbmVyIHByb3Rla3RpdmVuIFNjaGljaHQgc2ljaCBiZWRlY2t0LCBpc3QgZXMgZG9jaCByYXRzYW0sIGRpZQogICBTY2hlaWJlIHZvcnNpY2h0aWcgenUgYmVoYW5kZWxuLiBTbyBsYW5nZSB3aWUgU2llIGltbWVyIGRpZSBTY2hlaWJlCiAgIG5lYmVuIGRlciBrYW50ZSBhdWZoZWJlbiwgdW5kIHNpZSBpbiBpaHJlciBIYWx0ZXIgc29mb3J0IG5hY2gKICAgZGVtIFVzdXMgd2llZGVyIHN0ZWxsZW4sIHdpcmQga2VpbmUgc2F1YmVya2VpdCBub3JtYWwgbm90d2VuZGlnCiAgIHNlaW4uIFdlbm4gZWluIEZpbmdlcmFiZHJ1ZWNrZSwgU3RhdWIgb2RlciBTY2htdXR6IHNpY2ggemlnZW4sCiAgIEtubmVuIFNpZSBhYmVyIHNpZSBtaXQgZWluZW4gc2FuZnQsIGZ1c3NlbC1mcmVpZW4gVHVjaCBhYndpc2NoZW4uCiAgIEF1c3dpc2NoZW4gU2llIGRpZSBzY2hlaWJlIGluIGVpbmVyIGRpcmVrdGVuIFJlaWhlIHZvbiBNaXR0ZQogICB6dXJrYW50ZS4gV2VubiBub3R3ZW5kaWcsIGtvZW5uZW4gU2llIHp1ZXJzdCBhbmQgZGllIFNjaGVpYmUKICAgYW5oYXVlbi4gQWJlciBrZWluIFJlaW5pZ3VuZ3ptaXR0ZWwgb2RlciBrZWluIFNjaGxlaWZtaXR0ZWwKICAgbXVzc2VuIGdlYnJhdWNodCB3ZXJkZW4gdW5kIGtlaW5lIFJlaW5pZ3VuZ3NhZ2VucyBtdWVzc2VuIGFsc28KICAgZnVlciBrb252ZW50aW9uZWxsZSBSZWtvcmQgZ2VicmF1Y2h0IHdlcmRlbiEgYmVpbiBzY2hyZWliZW4gYW4gZGVyCiAgIFNjaHJlaWJlc21hcmtlOiBFcyBrYW5uIGRlciBNdXNpa2xhdWZiYWhuIHVud2lkZXJydWZsaWNoZW4gU2NoYWRlbgogICB2ZXJ1cnNhY2hlbi4gS2xlYmVuIFNpZSBuaWNodCBhbiBkaWUgU2NoZWliZWxhdWZiYWhuIGV0d2FzIGFuLiBkaWUKICAgU3RhdWJwYXJ0aWtlbCB1bmQgZWluIGxlaWNodGVyIEZsZWNrIHNvbGxlbiBkaWUgUmVwcm9kdWt0aW9ucy0KICAgcXVhbGl0YWV0IG5pY2h0IGJlcnVlaHJlbi4KRS4gRW50YmxvZXNzZW4gU2llIG5pY2h0IGRpZSBTY2hlaWJlIHp1ciBTb25uZW5saWNodCBvZGVyIGhvY2ggRmV1Y2h0aWctCiAgIGtlaXQgdW5kIGhvY2ggVGVtcGVyYXR1cmUgZnVlciBkaWUgZGF1ZXJuZGUgcGVyaW9kZS4gbGFuZ2UgRW50LQogICBibG9lc3N1bmcgenVyIGhvY2ggVGVtcGVyYXR1cmF0dXIga2FubiBkaWUgc2NoZWloZSB2ZXJ6aWVoZW4uCiAKIAo1LiBTQ0hSRUlCRVNQSUVMCi0tLS0tLS0tLS0tLS0tLS0KMS4gRHJ1Y2tlbiBTaWUgZGVuIHB1bmt0IHZvbiAiUHVzaCB0byBvcGVuIiwgZGFtaXQgZGVyIFNjaGVpYmVoYWx0ZXIKICAgc2ljaCBvZWZmbmV0LgogICBBbm1lcmt1bmc6IG51ciBOYWNoIGRlbSBkZXIgU2NoZWliZWhhbHRlciBhdWZzIGdhbnplIGdlb2VmZm5ldCBoYXQsCiAgIGVpbmxhZGVuIFNpZSBEaWUgU2NoZWliZS4gV2VubiBkaWUgU2NoZWliZSB6dWZydWVoIGVpbmdlbGFkZW4gaXN0LAogICBLYW5uIHNpZSBnZXNjaGFkZXQgd2VyZGVuLiBpbW1lciBoYW5kaGFiZW4gU2llIGRpZSBTY2hlaWJlIG5lYmVuCiAgIGRlciBrYW50ZSBtaXQgdm9yc2ljaHQsIHVtIGRpZSBPdmVyZmxhZWNoZSBtaXQgZGVyIEF1ZGlvaW5mb3JtYXRpb24KICAgbmljaHQgenUgYmVydWVocmVuLiAoR2VnZW5zZWl0ZSB2b25kZXIgTWFya2UpCjIuIEVpbndlcmZlbiBTaWUgZGllIFNjaGVpYmUgbWl0IGRlciBNYXJrZXNlaXRlLCBkaWUgbmFjaCBvYmVuIGdlcmljaHRldC4KMy4gU2NobGllc3NlbiBzaWUgZGVuIFNjaGVpYmVoYWx0ZXIuCiAKIAo2LiBTUElFTCBFSU5FUiBTQ0hFSUJFIFZPTiBBTkZBTkcgWlUgRU5ERQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCk9wZXJhdGlvbiAgICBOb3RpegotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoxLiBEcnVjayAgICAgLSBuYWNoIDIgU2VrdW5kZW4sIHNpbmQgNCBTdGFuZ2VuIGF1c2dlc3RlbGx0CiJQT1dFUiIgICAgICAtIHdlbm4gQ0RQIGVpbmUgU2NoZWliZSBoYXQgc3RlbGx0IGRpZSBUYWZlbCB0b3RhbCBMYXVmLQooU3Ryb20pICAgICAgICBiYWhuIGF1cyBuYWNoIGV0d2EgMyBTZWt1bmRlbgogICAgICAgICAgICAgLSBXZW5uIENEUCBrZWluZSBTY2hlaWJlIGhhdCwgc3RlbGx0IGRpZSBUYWZlbCAiZElTQyIsIGRpZQogICAgICAgICAgICAgICBtZWludCwgZGFzcyBzaWUgZWluZSBTY2hlaWJlIHd1ZW5zY2h0CiAgICAgICAgICAgICAtIFVtIGVpbmUgU2NoZWliZSBlaW56dSBsYWRlbiBsZXNlbiBzaWUgc2VpdGUgIkVpbmxhZHVuZ2VuZXIKICAgICAgICAgICAgICAgU2NoZWliZSIuCiAKMi4gV2VubiBrZWluIFNjaGVpYmUgZWluZ2VsYWRlbiBpc3QsIGRydWVja2VuIFNpZSBTY2hlaWJlbmRlY2tla2FudGUKZGFubiBPZWZmbmV0IGRpZSBEZWNrZSBzaWNoIHVuZCBzaWUga29lbm5lbiBlaW5lIFNjaGVpYmUgZWlubGFkZW4uCiAKMy4gU2NobHVzcyAgIC0gRGllIFNjaGVpYmUgZmFlbmd0IGF1c3dlY2hzZWxuZCBhbiB1bmQgaGFsdCBOYWNoIGNhLiAzCiAgIGRlciAgICAgICAgIFNla3VuZGVuIHVuZCBUb3RhbCBsYXVmYmFobiBOdW1tZXIgaXN0IGF1c2dlc3RlbGx0LgogICBTY2hlaWJlLSAgLSBEcnVjayB2b24gc3BpZWwvcGF1c2Ugdm9yIEF1ZmhlYnVuZyBkZXIgQXVzd2VjaHNlbGx1bmcKICAgZGVja2UgICAgICAgbGFzc2VuIHNpZSBkYXMgc3lzdGVtIGRpZSBFcnN0ZSBNdXNpayB1bm1pdHRlbGJhciBzcGllbGVuLgogCjQuIERydWNrICAgICAtIFNwaWVsIExFRCBkcmVodCBhbgogICBTcGllbC8gICAgLSA0IERpZ2l0IExFRCBkcmVodCBhbgogICBwYXVzZSAgICAgLSBub2NoIExhdWZiYWhuIHVuZCBpbmRleCB6ZWlnZXIgTEVEUyBadWVuZGV0IGFuCiAgICAgICAgICAgICAtIExpbmtlIFp3ZWkgRGlnaXRlIG1laW5lbiBMYXVmYmFobm51bW1lciB1bmQgcmljaHQgendlaQogICAgICAgICAgICAgICBEaWdpdGUgbWVpbmVuIEluZGV4IE51bW1lci4KICAgICAgICAgICAgIC0gTmFjaCAyIG9kZXIgMyBTZWt1bmRlbiBzcGllbHQgZXMgRXJzdGUgTXVzaWsuCiAgICAgICAgICAgICAtIE5hY2ggZGllIGxldHp0ZSBMYXVmYmFobiBnZXNwaWVsdCBpc3QsIHN0ZWxsdCBzcGllbCBMRURTCiAgICAgICAgICAgICAgICJFbmQiIGF1cyB1bmQgZXMgaGVidCBhdWYuCiAKNS4gRHJ1Y2sgICAgIEZ1ZXIgV2lzc2VuIHZvbiBMYXVmemVpdDoKICAgTGF1ZiwgICAgIC0gNCBEaWdpdCBMRURTIHZlcmFlbmRlcm4gU2ljaCBadXIgU2NoYXVkZXIgTGF1ZnplaXQuIExpbmtlCiAgIFplaXQgICAgICAgIHp3ZWlkIERpZ2l0ZSBtZWluZW4gTWludXRlIGRlciBMYXVmYmFobiB1bmQgcmljaHQgendlaQogICAgICAgICAgICAgICBEaWdpdGUgU2VrdW5kZS4KICAgICAgICAgICAgIC0gTGF1ZmJhaG4gdW5kIGluZGV4IHplaWdlciBMRURTIGRyZWhlbiBhYi4KICAgICAgICAgICAgIC0gQW5kZXJlciBEcnVjayBkZXIgTGF1ZnplaXQgU1cgbGFlc3N0IGRpZSBUYWZlbCBsYXVmYmFobgogICAgICAgICAgICAgICB1bmQgaW5kZXggbnVtbWVyIGF1c3N0ZWxsZW4uCiAKNi4gRHJ1Y2sgICAgIEZ1ZXIgQXVmaGVidW5nIGRlcyBNdXNpa3NwaWVsCiAgIEF1ZmhlLSAgICAtIERlciBlcnN0ZSBEcnVjayB2b24gQXVmaGVidW5nIFNXIGxhZXNzdCBkYXMgU3lzdGVtIE11c2lrCiAgIGJ1bmcgICAgICAgIGhhbHRlbiB6dSBzcGllbGVuIHVuZCBkaWUgQXVzc3RlbGxldHVnIFRhZmVsIGRpZSBMYXVmYmFobgogICAiU3RvcCIgICAgICBhdXNzdGVsbGVuLgogICAgICAgICAgICAgLSBMYXVmYmFobiB1bmQgaW5kZXggemVpZ2VyIExFRFMgZHJlaGVuIGFiLgogICAgICAgICAgICAgLSBBbmRlcmVyIERydWNrIGRlciBBdWZoZWJ1bmcgU1cgbGFlc3N0IGRhcyBTeXN0ZW0gIjAiIGF1cy0KICAgICAgICAgICAgICAgc3RlbGxlbiwgZXMgbWVpbnQsIGRhc3Mgc3BpZWwvcGF1c2UgVGFzdGUgbGFlc3N0IGRhcwogICAgICAgICAgICAgICBTeXN0ZW0gdm9uIGRlciBlcnN0ZW4gTGF1ZiBiYW5oIHNwaWVsZW4uCiAKNy4gRHJ1Y2sgICAgIEZ1ZXIgUGF1c2Ugd2FlaHJlbmQgZGVzIFNwaWVsCiAgIFNwaWVsLyAgICAtIERpZSBNdXNpayBoZWJ0IGF1ZiB1bmQgZGllIHplaXR6ZWlnZXIgZGVyIExFRCBUYWZlbAogICBwYXVzZSAgICAgICBzcHJpbmd0IG5pY2h0IGFuLgogCjguIERydWNrICAgICBGdWVyIFVlYmVyZ2FuZyBhdWYgbGV0enRlIE11c2lrIChSdWVja3dhZXJ0IExhdWZiYWhuIEF1cy0KICAgTGV0enRlICAgIGxhc3N1bmcpCiAgICAgICAgICAgICAtIFdhbm4gZGllIEF1c3N0ZWxsdW5nIFRhZmVsIHplaXQgYXVzc3RlbGx0LCB2ZXJhZW5kZXJ0IHNpY2gKICAgICAgICAgICAgICAgc2llLCB1bSBMYXVmYmFobiBOdW1tZXIgenUgemVpZ2VuLiBTaWUgYmxpdHp0IGJpcyBkYXMKICAgICAgICAgICAgICAgU3lzdGVtIGRlbiBBbmZhdWdzcHVua3QgZmluZGV0IHVuZCBzaWUgdmVyYWVuZGVydCBzaWNoLCB1bQogICAgICAgICAgICAgICBkaWUgWmVpdCB6dSBaZWlnZW4uCiAgICAgICAgICAgICAtIFdhbm4gZGllIEF1c3N0ZWxsdW5nIFRhZmVsIGRpZSBsYXVmYmFobiBhdXNzdGVsbHQsIHZlci0KICAgICAgICAgICAgICAgYWVuZGVydCBzaWNoIHNpZSBuaWNodCB1bmQgbnVyIE11c2lrIHNwaWVsdCB2b24gQW5mYW5nIGRlcgogICAgICAgICAgICAgICBMYXVmYmFobgogICAgICAgICAgICAgLSBWb3Igc3BpZWwgdm9uIGRlbSBBbmZhbmdzcHVua3QgZGVyIExhdWZiYWhuLCBsYWVzc3QgZGVyCiAgICAgICAgICAgICAgIGFuZGVyZSBEcnVjayBkaWVzZXIgU1cgZGFzIHN5c3RlbSB6dXIgdm9yaWdlbiBMYXVmYmFobgogICAgICAgICAgICAgICBhdXNsYXNzZW4uCiAKOS4gRHJ1Y2sgICAgIEZ1ZXIgVWViZXJnYW5nIHp1ciBuYWVjaHN0ZW4gTXVzaWsKICAgbmFlY2hzdGUgIC0gV2FubiBkaWUgVGFmZWwgZGllIExhdWZiYWhubnVtbWVyIGF1c3N0ZWxsdCwgdmVyYWVuZGVydAogICAgICAgICAgICAgICBzaWNoIGRpZSBMYXVmYmFobiBOdW1tZXIgenVyIG5hZWNoc3RlbiBOdW1tZXIKIAoxMC4gRHJ1Y2sgICAgRnVlciBTY2huZWxsIFVtc3B1bGUgb2RlciBTY2huZWxsIHZvcndhZXJ0LgogICAgRi9SICAgICAgLSBEaWUgRnVua3Rpb24gZGVyIHRhc3RlbiBpc3QgZmFzdCBnbGVpY2ggZGVuZW4gdm9uIGthc3NldHRlCiAgICAgICAgICAgICAgIEF1Zm5haG1lZ2VyYWV0IGFiZXIgZGFzIFN5c3RlbSBoYXQgendlaSBHZXNjaHdpbmRpZyBLZWl0OgogICAgICAgICAgICAgICBadWVyc3QgbGFuZ3NhbSB1bmQgZWluIFdlbmlnIHNwYWV0ZXIgc2NobmVsbC4KIAoxMS4gRHJ1Y2sgICAgRnVlciBXaWRlcmhvbHVuZyBkZXIgTXVzaWsKICAgIFdpZWRlci0gIC0gRGVyIGVyc3RlIERydWNrIGRpZXNlciBTVyBsYWVzc3QgZGFzIFN5c3RlbSBudXIgYW53ZXNlbmRlCiAgICBob2x1bmcgICAgIExhdWZiYWhuIHdpZWRlcmhvbGVuIHVuZCAiT05FIiBMRUQgYnJpbmd0IGFucyBsaWNodC4KICAgICAgICAgICAgIC0gWndlaXRlciBEcnVjayBsYWVzc3QgZGFzIFN5c3RlbSBhbGxlIE11c2lrIHdpZWRlcmhvbGVuIHVuZAogICAgICAgICAgICAgICAiQUxMIiBMRUQgYnJpbmd0IGFucyBMaWNodC4KICAgICAgICAgICAgIC0gRHJpdHRlciBEcnVjayBzYWd0IHdpZWRlcmhvbHVuZ3MgRnVua3Rpb24gYWIuCiAKMTIuIERydWNrICAgIEZ1ZXIgV2lzc2VuIHZvbiBibGVpYmVuZGVuIFplaXQKICAgIGFuYmUtICAgIC0gV2FlaHJlbmQgZGVzIHdlaXRlcmVzIERydWNrcyBhdWYgZGllc2VyIFRhc3RlIFN0ZWxsdCBkaWUKICAgaGFsdGVuZCAgICAgVGFmZWwgQmxlaWJlbmRlIFplaXQgYXVzLgogCiAKNy4gU1BJRUxFUiBJTlNUQU5ESEFMVFVORwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRlciBTcGllbGVyc21lY2hhbmlzbXVzIHBhc3N0IHp1IFNlbGJzdC1TY2htaWVyZW5kZW4gTGFnZXIgdW5kIG11c3MgbmljaHQKZ2VvZWx0IG9kZXIgU2NobWllcnQgd2VyZGVuLiBXZW5uIG5vdHdlbmRpZywgaG9lbm5lbiBTaWUgZGFzIGthYmluZXR0Cm1pdCBTYWVtaXNjaGxlZGVyLCBkYXMgbWl0IHdhc3NlciBsZWljaHQgYmVmZXVjaHRldCBpc3QsIGJlbnV0emVuIFNpZSBrZWluClJlaW5pZ3VuZ3NhZ2VucywgZGFzIFNwaXJpdHVvc2VuLCBBbGtvaG9sLCBBbW1vbmlhIG9kZXIgU2NobGVpZm1pdHRlbAplbnRoYWVsdGV0LiBEaWUgU2NoZWliZXNjaGFsZSBtdXNzIGFiZ2VzdGF1YnQgd2VyZGVuLgogCiAKOC4gU1RPRVJVTkdTU1VDSEUKLS0tLS0tLS0tLS0tLS0tLS0KV2VubiBkaWUgRWluaGVpdCBnZWhvZXJpZyBuaWNodCBvcGVyaWVydCwga29udHJvbGxpZXJ0ZW4gU2llIGZvbGdlbmRlClB1bmt0ZSBzbyBndXQgd2llIHZlcmJpbmR1bmdzdGVpbGUgdW5kIGRpZSBLb250cm9sbC1TdGVsbGUgZGVyIGFsbGVuCktvbXBvbmVudGVuLCBkaWUgbWl0IGRpZXNlciBFaW5oZWl0IFZlcmJ1bmRldCBpc3QsIGJldm9yIFNpZSB1bQpGYWNobWFuc2RpZW5zdCBiaXR0ZW4uIFdlbm4gZGFzIFByb2JsZW0gdm9uIGRpZXNlciBUYWZlbCBuaWNodCBnZWxvZXN0CndpcmQsIG9kZXIgd2VubiBkYXMgUHJvYmxlbSBpbiBkYXMgUHJvYmxlbXZlcnplaWNobmlzIHVudGVuIG5pY2h0IGVpbi0KZ2VzY2hsb3NzZW4gaXN0LCBmcmFnZW4gU2llIGJlaSBJaHJlciBIYWVuZGVyIGFuLgpXaWNodGlnOiBWb3Igdm9yZ2VoZW4genVyIFNjaHVsZGxpc3RlIGtvbnRyb2xsaWVyZW4gU2llLCBkYXNzIGFsbGUKVHJhbnNpdHNjaHJhdWJlIGFiZ2Vub21tZW4gd29yZGVuIGlzdC4gRGllc2Uga2FubiBkaWUgTnVtbWVyIDIsMyw2IHVuZAo3IEZlaGxlciB2ZXJ1cnNhY2hlbi4gV2VubiBrZWluZSBBdXNzdGVsbHVuZyBnZXplaWd0IGlzdCwgd2lyZCBkZXIKU3BpZWxlciBuaWNodCBvcGVyaWVyZW4uCiAKIApGZWhsZXIgICAgICAgICAgICAgICBVcnNhY2hlICAgICAgICAgICAgICAgSGVpbG1pdHRlbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmFjaCBkZW0gRHJ1Y2sgYXVmICAgLSBVbnZvbGxzdGFlbmRpZ2UgICAgIC0gRWlubGFkZW4gU2llIFN0ZWNrIGZlc3QKUG93ZXIgb24sIHplaWd0ICAgICAgICBFaW53dXJmIGRlcyBQb3dlcgpzaWNoIGtlaW5lIEF1cy0gICAgICAgIHN0ZWNrZXJzCnN0ZWxsdW5nICAgICAgICAgICAgIC0gU3RlY2tlciB2ZXJzZWh0ICAgICAtIEtvbnRyb2xsaWVyZW4gU2llIFN0ZWNrZXJzLQogICAgICAgICAgICAgICAgICAgICAgIHNpY2ggbmljaHQgcmljaC0gICAgICBsZWl0dW5nIHVuZCBadWVuZGVyCiAgICAgICAgICAgICAgICAgICAgICAgdGlnIG1pdCBEcmFodAogICAgICAgICAgICAgICAgICAgICAtIEtlaW4gU3Ryb20gYW4gZGVyICAgLSBrb250cm9sbGllcmVuIFNpZSBTdGVja2Rvc2UKICAgICAgICAgICAgICAgICAgICAgICBIYXVwdHN0ZWNrZG9zZSAgICAgICAgbWl0IGVpbmVtIGJla2FubnRlbiBHZXJhZXQKIApXYW5uIGVpbmUgU2NoZWliZSAgICAtIERpZSBTY2hlaWJlIGlzdCAgICAgLSBFaW5sYWRlbiBTaWUgU2NoZWliZQp6dWVyc3QgZWluZ2VsYWRlbiAgICAgIGZhbHNjaCBtaXQgZGVyICAgICAgICByaWNodGlnCmlzdCwgemVpZ3Qga2VpbmUgICAgICAgTWFya2VhYndhZXJ0cwpBdXNzdGVsbHVuZyBlaW5pZ2UgICAgIGVpbmdlbGFkZW4KTGF1ZmJhaG4gb2RlciAgICAgICAgLSBEaWUgc2NoZWliZSBpc3QgICAgIC0gcHV0emVuIFNpZSBkaWUgU2NoZWliZSB2b3ItClNwaWVsemVpdCAgICAgICAgICAgICAgc2NobXV0emlnICAgICAgICAgICAgIHNpY2h0aWcgd2llIGdlemVpZ3QgYXVmIFMuMwogICAgICAgICAgICAgICAgICAgICAtIERpZSBTY2hlaWJlIGlzdCAgICAgLSBWZXJoYW5kZWxuIFNpZSBhbmRlcmUKICAgICAgICAgICAgICAgICAgICAgICBzY2hsZWNodCBnZXN0cmljaGVuICAgU2NoZWliZQogICAgICAgICAgICAgICAgICAgICAtIERlciBGZWhsZXJzY2hhZnQgICAgLSBWZXJoYW5kZWxuIHNpZSBhbmRlcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NoZWliZQogICAgICAgICAgICAgICAgICAgICAtIEVzIGdpYnQgUGFwaWVyZSBvZC4gLSBOZWhtZW4gU2llIGVzIGFiCiAgICAgICAgICAgICAgICAgICAgICAgUGFrZXRtYXRlcmlhbCBpbgogICAgICAgICAgICAgICAgICAgICAgIGRlciBTY2hhbGUKICAgICAgICAgICAgICAgICAgICAgLSBUYXUgaGF0IHNpY2ggaW5uZXItIC0gV2FydGUgbnVyIGNhLiBlaW5lIFN0dW5kZQogICAgICAgICAgICAgICAgICAgICAgIGhhbGIgZGVzIFNwaWVsZXJzICAgICBsYW5nCiAgICAgICAgICAgICAgICAgICAgICAgZ2ViaWxkZXQKIApEaWUgU2NoZWliZSBzcGllbHQgICAtIERpZSB2ZXJiaW5kdW5nIG1pdCwgLSBLb250cm9sbGllcmVuIFNpZSBkaWUgVmVyLQpzaWNoIG1pdCB2ZXJnYW5nZS0gICAgIG9kZXIgZGllIE9wZXJhdGlvbiAgICBiaW5kdW5nIHVuZCBkaWUgT3BlcmF0aW9uCm5lciBaZWl0IG1laHIgYWIuICAgICAgZGVzIGFuZGVyZW4gR2VyYWV0cyAgIGRlcyBhbmRlcmVuIEdlcmFldHMKRXMgZ2lidCBUb24gYXVzIGRlciAgICBpc3QgZmFsc2NoICAgICAgICAgIC0gVmVyaGFuZGVsbiBTaWUgZWluZSBiZWthbm50ZQpMYXV0c3RlY2tkb3NlLCBhYmVyICAgICAgICAgICAgICAgICAgICAgICAgICBUb25xdWVsbGUgaW4gZGVyIElucHV0LQpuaWNodCBhdXMgZGVtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGVja2Rvc2UgZGVzIGFuZGVyZW4KYW5kZXJlbiBHZXJhZXQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2VyYWV0cwogCldlbGNoZSBUZWlsZSBkZXIgICAgIC0gRGllIFNjaGVpYmUgaXN0ICAgICAtIFB1dHplbiBTaWUgZGllIFNjaGVpYmUgdm9yLQpTY2hlaWJlIHNwaWVsdCBzaWNoICAgIHNjaG11dHppZyAgICAgICAgICAgICBzaWNodGlnIHdpZSBzY2hhdSBhdWYgU2VpdGUgMwpuaWNodCBub3JtYWwgYWIgICAgICAtIERpZSBTY2hlaWJlIGlzdCAgICAgLSBWZXJoYW5kZWxuIFNpZSBhbmRlcmUgU2NoZWliZQpvZGVyIGlzdCB2ZXJ6ZXJydC4gICAgIHNjaGxlY2h0IGdlc3RyaS0gICAgICBvZGVyIGF1c2xhc3NlbiBTaWUgYmVsYXN0ZW5kZQogICAgICAgICAgICAgICAgICAgICAgIGNoZW4gb2RlciBmZWhsZXItICAgICBMYXVmYmFobgogICAgICAgICAgICAgICAgICAgICAgIHNjaGFmdAogCkVzIGxhZXNzdCBkaWUgTGF1Zi0gIC0gRGVyIFNwaWVsZXIgaXN0ICAgICAtIFN0ZWxsZW4gU2llIGRlbiBTcGllbGVyCmJhaG4gYXVzIHdhZWhyZW5kICAgICAgdm9uIFNjaHdpbmd1bmdlbiAgICAgIHdpZWRlcgpkZXMgU3BpZWwgZWluZXIgICAgICAgIGFiaGFlbmdpZwpTY2hlaWJlCiAKIAo5LiBTUEVDSUZJQ0FUSU9OUwotLS0tLS0tLS0tLS0tLS0tLQpHRU5FUkFMClN0cm9tIFp1ZnVlaHJ1bmc6IDIyMFYsIDUwSHoKU3Ryb20gVmVyYnJhdWNoOiAxMCBXYXR0cwpGb2VyZGVydW5nIFNwYW5udW5nOiAyViAoUk1TKQpBdXNtYXNzOiAzMDN4NjN4MjY1bW0KR2V3aWNodDogMi4wa2cKRm9lcmRlcnVuZyBJbXBlZG9uY2U6IDEuN0sKIApBVURJTwpTaWduYWwvR2VyYWV1c2NoIFZlcmhhZWx0bmlzOiA5NWRCClRvdGFsIGhhcm1vbmlzY2g6IDAsMDMlICgxS0h6KQpEeW5hbWlzY2hlIFVtZmFuZzogOTBkQgpGcmVxdWVueiBSZWFrdGlvbjogNUh6LTIwIEtIeiAoKy8tIDEuNWRCKQpGYW5hbCBTZXBhcmF0aW9uOiA4NWRCCkthbmFsIFNlcGFyYXRpb246IG5pY2h0IG1lc3NiYXIKIApTSUdOQUwgRk9STUFUClByb2JpZXJlbmRlIEZyZXF1ZW56OiA0NC4xS0h6CkZlaGxlciBLb3JyZWt0IFN5c3RlbTogQ0lSQyBEb3VibGUgRXJyb3IgS29ycmVrdGlvbiBTeXN0ZW0KRC9BIFVtZm9ybXVuZzogMTYgYml0IGxpbmVhcgogClBJQ0sgVVAKVHlwOiBBc3RpZ21hIDMgYmVhbQpMaWNodCBRdWVsbGU6IFNlbWljb25kdWN0b3IgbGFzZXIKV2VsbGUgTGFlbmdlOiA3NjUtNzk1bm0KIApSRUdVTEFUSU9OClNpY2hlcmhlaXQ6IEJTLFVMLENTQQpTdHJhaGx1bmc6IEZUWgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogWnVtIFRoZW1hIEFNSUdBIChCbG9vZHloYXJyeSwgMTcuIEphbiAxOTk3LCAwMzozNzo1NCk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODUzNDQ0ODAzIHJnPXdpdHplCn4jISB0aWQ9ODUzMTY3MDA0Cj4gYW0gYmVzdGVuIHNjaG5laWRlbiBkYSB3b2hsIG5vY2ggbXZzIHVuZCB2bXMgYWIsCkpvLiBXYXMgbmljaHQgcmljaHRpY2ggaG9jaCBrb21tdCwgc3R1ZXJ6dCBhdWNoIG5pY2ggYWIuIDspCkFuc29uc3RlbiB3dWVyZGUgaWNoIGdsYXR0IHVtIExpbnV4LCBCU0QgdW5kIHZvciBhbGxlbSBOZXh0c3RlcCBlcndlaXRlcm4uCj4gd2luZG9vZiA5NSBzdHVlcnp0IGJlaSBtaXIgYWxsZXJkaW5ncyB1ZWJlcmhhdXB0IG5pY2h0IGFiLgpCZWkgbWlyIGF1Y2ggbmljaCAtIGJpbiBhbHNvIHZvbGwgenVmcmllZGVuIGRhbWl0Li4gOykKCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpRdWFsaXRhZXQgdnMuIFF1YW50aXRhZXQgKFdhcmdvbiwgMTcuIEphbiAxOTk3LCAxMDo0MTo0Mik6Cj4gICBwbGVhc2UgcG9zdCBob3cgbWFueSBVbml4IGJveGVzIHdlcmUgc29sZCBmb3IgaG9tZSB1c2UsIGFuZCBob3cgbWFueQo+ICAgV0luZG93cyBtYWNoaW5lcyB3ZXJlIHNvbGQuIAoKICAgSSBzdXNwZWN0IHRoZSByYXRpbyBpcyB0aGUgc2FtZSBhcyBmb3IgY29waWVzIG9mIFNoYWtlc3BlYXJlIHZzIApjb3BpZXMgb2YgUGxheWJveS4uLgoKKGF1czogcmVjLmdhbWVzLnJvZ3VlbGlrZS5hbmdiYW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWZXJzdWNoIGRlciBVZWJlcnNldHp1bmcgZWluZXIgQW5sZWl0dW5nIChSYWZmaSwgMTcuIEphbiAxOTk3LCAxNjozMDowMyk6Cn4jISBybj1BZ25ldGhhIHJ0PTg1MzUxMzY5MiByZz13aXR6ZQp+IyEgdGlkPTg1MzQ0NjE5Nwo+SWNoIG1vZWNodGVtYWwgd2lzc2VuLCB3ZXIgc2ljaCBkaWUgTXVlaGUgbWFjaHQsIHNvIGVpbmVuIE1pc3QgYWJ6dXRpcHBlbj8KClJvY2h1cyA/IChvZGVyIHNpZW4gU2Nhbm5lciA/KQoKR3JpbnMgOikKCihNYW4gZ2xhdWJ0IGdhcm5pY2h0IHp1IHdhcyBtYW4gaW0gQ29sYXJhdXNjaCBhbGxlcyBmYWVoaWcgaXN0ICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFp1bSBUaGVtYSBBTUlHQSAoUm9jaHVzLCAxNy4gSmFuIDE5OTcsIDE2OjM2OjI3KToKfiMhIHJuPVJhZmZpIHJ0PTg1MzUxNDM1MyByZz13aXR6ZQp+IyEgdGlkPTg1MzE2NzAwNApXZW5uIGVzIHVtIEFic3R1cnpzaWNoZXJoZWl0IGdlaHQgemllaGUgaWNoIFdpbmRvd3MgOTUgdm9yLApkZW5uIGRhcyBzdHVlcnp0IG1pdCBTaWNoZXJoZWl0IGFiIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogIChLb2JheWFzaGksIDE3LiBKYW4gMTk5NywgMTk6MDE6MjMpOgpCZWkgbWlyIGxhZXVmdCBFSE5JWCwgYWJlciBkYXMgdmVyZGFtbXQgc3RhYmlsIQoKS29iYXlhc2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPUy8yIChHYW5kbywgMTcuIEphbiAxOTk3LCAyMDo0NzoxMCk6CkVzIGdpYnQgZGEgbm9jaCBzbyBlaW4gbWVya3d1ZXJkaWdlcyBzeXN0ZW0gZ2VuYW5udDoKT1MgaGFsYmUuCkFiZXIsIG51biBpc3QgamEgZGlyIG5ldWUgVmVyaW9uIDQgZHJhdXNzZW4uClVuZCBudW4ga2FubiBtYW5uIGphIDQgdW5kIDIga3VlcnplbgpEYXJhdXMgZm9sZ3Q6IEVzIGdpYnQgamV0enQgT1MgMgo6LSkKRy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlZCBBbGVydDogTnVldHpsaWNoZSBUaXBzIDstKSAoUm9jaHVzLCAyMC4gSmFuIDE5OTcsIDE4OjAzOjIwKToKQnJpYW4gTHVpIHdyb3RlOgo+IEkgdGhpbmsgdGhhdCBpcm9uIGN1cnRhaW5pbmcgeW91ciBvcHBvbmVudCdzIHVuaXRzIGlzIGR1bWIuCk5vISBObyEgIFlvdSBzZWUsIHlvdSBoYXZlIHRvIGRvIGl0IHJpZ2h0IGJlZm9yZSB0aGV5IHVubG9hZCBUYW55YSBuZWFyIHlvdXIgCkNZLiAgVGhpcyB3aWxsIGNhdXNlIFRhbnlhIHRvIHN3aXRjaCBzaWRlcy4gIFNoZSBsb3ZlcyBwb3dlci4gCgo+IERvbid0IHNob290IGF0IHlvdXIgb3duIHVuaXRzLgpUaGF0J3MgcmlnaHQuICBUaGV5IHdpbGwgdHVybiBhZ2FpbnN0IHlvdSBpZiB0aGV5IHNlZSB5b3UgYXR0YWNraW5nIHRoZW0uICAKV2hhdCB5b3Ugc2hvdWxkIGRvIGlzIHRvIHNuZWFrIGEgc2hvdCBpbiBvbmNlIGluIGEgd2hpbGUuICBUaGlzIHdheSwgdGhleSB3aWxsCnRoaW5rIGl0IGlzIGFuIGFjY2lkZW50LgoKPiBEb24ndCBzZWxsIGFsbCB5b3VyIHBvd2VyIHBsYW50cy4KRGlkIHlvdSBub3RpY2UgdGhhdCBzb21lIHRoaW5ncyBidWlsZCBmYXN0ZXIgdGhhbiBvdGhlcnM/ICBXZWxsLCBhcHBhcmVudGx5LCAKdGhlIG1vcmUgc2xvd2x5IHRoZXkgYnVpbGQsIHRoZSBtb3JlIHBvd2VyZnVsIGl0IGlzLiAgU28gaWYgeW91IGJ1aWxkIG1vcmUgCnNsb3dseSwgd2hhdCB5b3UgYXJlIGJ1aWxkaW5nIHdpbGwgYmUgbW9yZSBwb3dlcmZ1bC4gIEFuZCBraWRzLCBob3cgZG8gd2UgCnNsb3cgZG93biBidWlsZGluZz8gIFllcywgd2Ugc2VsbCBvdXIgcG93ZXIgcGxhbnRzLiAKCj4gQXR0YWNrIE1pR3Mgd2l0aCBNaUdzLiAgVGhleSB3aWxsIGZpZ2h0IGluIHRoZSBhaXIgYWZ0ZXIgY2lyY2xpbmcgZm9yIDMwCj4gbWludXRlcy4gIFRoZW4sIGJyaW5nIGluIGFuIGF0dGFjayBkb2cgYW5kIGJpdGUgdGhlIHBlcnNvbiB3aGljaCBjb21lcwo+IGRvd24uClRoYXQncyBhIGdvb2Qgb25lLiAgSGF2ZW4ndCB0cmllZCB0aGF0IHlldC4gIApCdXQgYWZ0ZXIgc28gbG9uZyBhIGZsaWdodCwgdGhleSB3b24ndCBoYXZlIGVub3VnaCBmdWVsIHRvIHJldHVybiBob21lLiAgU28gCnlvdSBjYW4gdGVsbCB0aGVtIHRvIGNyYXNoIGludG8gdGhlIGVuZW15IGJ1aWxkaW5nIGJ5IGhvbGRpbmcgQUxUIGFuZCAKY2xpY2tpbmcgb24gdGhlIGJ1aWxkaW5nLiAgQk9PTSEgIEl0IGluc3RhbnRseSBkZXN0cm95cyB0aGUgYnVpbGRpbmcuICAKSSB0aGluayBpdCdzIGJlc3QgdG8gYWltIGZvciB0aGUgYmFycmFjay4gICBBbGwgdGhlIGFtbW8gd2lsbCBnbyBvZmYgYW5kIHdpbGwgCnByb2JhYmx5IHRha2Ugb3V0IGhhbGYgdGhlIGJhc2UhCgo+IFNwZWFraW5nIG9mIGF0dGFjayBkb2dzLCBoYXZlIHlvdSBub3RpY2VkIHRoYXQgZXZlbiBpZiB5b3UgcnVsZXMuaW5pCj4gaW5mYW50cnkgd2F5IHVwIChlLmcuIG1lZGljIDEwMDBIUCkgdGhlIGRvZyBiaXRlcyBpdCBpbiBvbmUgZ28uCkRvZ3MgbWFrZSB0aGUgYmVzdCBwZXRzISAgQnV0IHJlbWVtYmVyLCB5b3UgaGF2ZSB0byBmZWVkIHRoZW0gb25jZSBpbiBhIAp3aGlsZSBvciBlbHNlIHRoZXkgd2lsbCBzd2l0Y2ggc2lkZXMhICBTbyByZW1lbWJlciB0byBob2xkIGRvd24gQ3RybCBhbmQgY2xpY2sKb24gb25lIG9mIHlvdXIgbWVuIHRvIGZlZWQgdGhlIGRvZ3MuICAKVGhleSBsaWtlIGVuZ2luZWVycyBiZWNhdXNlIGl0IHRha2VzIHRoZSBsb25nZXN0IHRpbWUgdG8gdHJhaW4gYW4gZW5naW5lZXIuICAKQWxsIHRoZXkgZG8gdG8gdHJhaW4gdGhlbSBpcyB0byBzaXQgdGhlbSBkb3duIHRvIHdhdGNoIGEgdmlkZW8gY2FsbGVkICJIb3cgdG8gCmJlIGFuIGVuZ2luZWVyLiIgCgooQXVzIGFsdC5nYW1lcy5yZWRhbGVydCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNUQVIgVFJFSyAoR3JpbW1ib3JuLCAyMS4gSmFuIDE5OTcsIDE3OjExOjAyKToKfiMhIG9uPUdhc3QxIG90PTg1Mzg2MTc1NCBvZz1zY2htYXJybgoKV09SRjogIENhcHRhaW4sIHRoZXJlIGFyZSB0aHJlZSBSb211bGFuIHdhcnNoaXBzIHVuY2xvYWtpbmcgZGVhZCBhaGVhZC4KICAgICAKIFBJQ0FSRDogIE9uIHNjcmVlbi4KICAgICAKIFtUaGUgbWFpbiB2aWV3aW5nIHNjcmVlbiBjaGFuZ2VzIHRvIGEgcGF0dGVybiBvZiBob3Jpem9udGFsIGxpbmVzLCBlYWNoIApvbmx5IAphIHNpbmdsZSBwaXhlbCB3aWRlLl0KICAgICAKIFBJQ0FSRDogIERhdGEsIHdoYXQncyB3cm9uZyBoZXJlPwogICAgIAogREFUQTogQ2FwdGFpbiwgdGhlIG1haW4gdmlld3NjcmVlbiBkb2VzIG5vdCBoYXZlIHN1ZmZpY2llbnQgdmlkZW8gbWVtb3J5IHRvIApkaXNwbGF5IGFuIGltYWdlIG9mIHRoaXMgc2l6ZS4gIE1heSBJIHN1Z2dlc3QgdGhhdCB5b3Ugc2VsZWN0IGEgbG93ZXIgCnJlc29sdXRpb24/CiAgICAgCiBQSUNBUkQ6ICBNYWtlIGl0IHNvLgogICAgIAogW1RoZSBzY3JlZW4gYmxhbmtzLCBhbmQgdGhlbiBhbiBpbWFnZSBhcHBlYXJzLCB3aXRoIGJpZywgYmxvY2t5IHNxdWFyZQpwaXhlbHMuIApUaHJlZSBvYmplY3RzIGFwcGVhciBpbiB0aGUgY2VudGVyLCB3aGljaCBjb3VsZCBiZSBSb211bGFuIHdhcmJpcmRzLCBidXQgd2hpY2gKYWN0dWFsbHkgbG9vayBtb3JlIGxpa2UgdGhlIGFsaWVucyBpbiBTcGFjZSBJbnZhZGVycy5dCiAgICAgCiBQSUNBUkQ6ICBEYXRhLCBvcGVuIGEgaGFpbGluZyBjaGFubmVsIHRvIHRoZSBSb211bGFucy4KICAgICAKIERBVEE6ICBBeWUsIHNpci4KICAgICAKIFtEYXRhIHBpY2tzIHVwIGFuIGhvdXJnbGFzcyBmcm9tIHRoZSBmbG9vciBiZXNpZGUgaGltLCB0dXJucyBpdCBvdmVyLCBhbmQgCnBsYWNlcyBpdCBvbiB0aGUgY29uc29sZSBpbiBmcm9udCBvZiBoaW0uICBIZSBwdW5jaGVzIHNvbWUgYnV0dG9ucyBvbiB0aGUgCmNvbnNvbGUgYW5kIHNpdHMgbW90aW9ubGVzcyBmb3Igc2V2ZXJhbCBzZWNvbmRzLiAgQSBmbGFzaCBvZiBsaWdodCBibG9zc29tcyAKZnJvbSBvbmUgb2YgdGhlIFJvbXVsYW4gc2hpcHMgb24gdGhlIHZpZXdzY3JlZW4uXQogICAgIAogV09SRjogIEluY29taW5nIHBsYXNtYSB0b3JwZWRvLCBDYXB0YWluIQogICAgIAogUElDQVJEOiAgU2hpZWxkcyB1cCEKICAgICAKIERBVEE6ICBJJ20gc29ycnksIENhcHRhaW4sIGJ1dCBJIGFtIHN0aWxsIGF0dGVtcHRpbmcgdG8gY29tcGxldGUgeW91ciBsYXN0IAppbnN0cnVjdGlvbi4gIEkgbXVzdCBhc2sgeW91IHRvIHdhaXQgdW50aWwgSSBoYXZlIGZpbmlzaGVkIGJlZm9yZSB5b3UgaXNzdWUgCnlvdXIgbmV4dCBjb21tYW5kLgogICAgIAogUElDQVJEOiBXaGF0IG9uIGVhcnRoIGRvIHlvdSBtZWFuPyAgRGF0YSwgdGhpcyBpcyAqaW1wb3J0YW50KiEgIEkgd2FudCB0aG9zZQpzaGllbGRzIHVwICpyaWdodCBub3cqLgogICAgIAogREFUQTogIEknbSBzb3JyeSwgQ2FwdGFpbiwgYnV0IEkgYW0gc3RpbGwgYXR0ZW1wdGluZyB0byBjb21wbGV0ZSB5b3VyIGxhc3QgCmluc3RydWN0aW9uLiAgSSBtdXN0IGFzayB5b3UgdG8gd2FpdCB1bnRpbCBJIGhhdmUgZmluaXNoZWQgYmVmb3JlIHlvdSBpc3N1ZSAKeW91ciBuZXh0IGNvbW1hbmQuCiAgICAgCiBMQUZPUkdFOiAgQWxsb3cgbWUsIGNhcHRhaW4uICBbdG8gRGF0YV0gQ29udHJvbC1hbHQtZGVsZXRlLCBEYXRhLgogICAgIAogW0RhdGEgcmVtb3ZlcyB0aGUgaG91cmdsYXNzIGZyb20gdGhlIGNvbnNvbGUsIGFuZCByZXR1cm5zIGl0IHRvIHRoZSBmbG9vci5dCiAgICAgCiBEQVRBOiAgVGhlIFJvbXVsYW5zIGFyZSBub3QgcmVzcG9uZGluZyB0byBteSBoYWlscy4gIFByZXNzIG15IG5vc2UgdG8gY2FuY2VsCmFuZCByZXR1cm4gdG8gV2luZG93cy4gIFB1bGwgbXkgbGVmdCBlYXIgdG8gY2xvc2UgdGhpcyBjb21tdW5pY2F0aW9ucyBjaGFubmVsIAp3aGljaCBpcyBub3QgcmVzcG9uZGluZy4gIFlvdSB3aWxsIGxvc2UgYW55IGluZm9ybWF0aW9uIHNlbnQgYnkgdGhlIFJvbXVsYW5zLgogICAgIAogW0xhRm9yZ2UgcHVsbHMgRGF0YSdzIGxlZnQgZWFyLl0KICAgICAKIFBJQ0FSRDogIFNoaWVsZHMuLi4KICAgICAKIFtUaGVyZSBpcyBhIHRyZW1lbmRvdXMgZXhwbG9zaW9uLiAgVGhlIGJyaWRnZSBzaGFrZXMgdmlvbGVudGx5LCBhbmQgYWxsIHRoZSAKY3JldyBtZW1iZXJzIGFyZSB0aHJvd24gdG8gdGhlIGZsb29yLiAgQSBzaG93ZXIgb2Ygc3BhcmtzIGVydXB0cyBmcm9tIFdlc2xleSAKQ3J1c2hlcidzIHN0YXRpb24gYXQgdGhlIGhlbG0sIHRocm93aW5nIFdlc2xleSBiYWNrIGF3YXkgZnJvbSB0aGUgY29uc29sZS5dCiAgICAgCiBQSUNBUkQ6ICBVcCwgRGF0YSEKICAgICAKIERBVEE6ICBBeWUsIHNpci4KICAgICAKIFJJS0VSOiAgQWxsIGRlY2tzLCBkYW1hZ2UgcmVwb3J0IQogICAgIAogV09SRjogIENhcHRhaW4sIEVuc2lnbiBDcnVzaGVyIGlzIGluanVyZWQuICBIZSBhcHBlYXJzIHRvIGJlIHVuY29uc2Npb3VzLgogICAgIAogW0RhdGEgcGlja3MgdXAgdGhlIGhvdXJnbGFzcyBhZ2FpbiwgcGxhY2VzIGl0IG9uIGhpcyBjb25zb2xlLCBhbmQgcHVuY2hlcwpzb21lIAptb3JlIGJ1dHRvbnMuICBIZSB3YWl0cyBhIGZldyBzZWNvbmRzLCB0aGVuIHB1dHMgdGhlIGhvdXJnbGFzcyBiYWNrIG9uIHRoZSAKZmxvb3IuXQogICAgIAogREFUQTogIFNoaWVsZHMgYXJlIG5vdyB1cCwgY2FwdGFpbi4KICAgICAKIFBJQ0FSRDogIEFuZCBub3QgYSBtb21lbnQgdG9vIHNvb24uICBXb3JmLCBsb2NrIGFsbCBwaGFzZXJzIG9uIHRoZSBsZWFkIApSb211bGFuIHNoaXAuCiAgICAgCiBXT1JGOiAgQXllLCBzaXIuICBbSGUgcHVuY2hlcyBidXR0b25zIG9uIHRoZSB3ZWFwb25zIGNvbnNvbGUuXQogICAgIAogUElDQVJEOiAgTXIuIERhdGEsIHRha2UgdGhlIGhlbG0sIGFuZCBwcmVwYXJlIGZvciBldmFzaXZlIGFjdGlvbi4KICAgICAKIERBVEE6ICBJIGFtIHNvcnJ5LCBzaXIsIGJ1dCBJIGRvIG5vdCBoYXZlIHRoZSBwcm9wZXIgZGV2aWNlIGRyaXZlciBpbnN0YWxsZWQKZm9yIHRoYXQgY29uc29sZS4KICAgICAKIFBJQ0FSRDogIFdlbGwsIGRhbW4gaXQsIGluc3RhbGwgdGhlIHJpZ2h0IG9uZS4KICAgICAKIERBVEE6ICBQbGVhc2UgaW5zZXJ0IFNldHVwIEltcGxhbnQgIzEgaW4gbXkgcmlnaHQgbm9zdHJpbC4KICAgICAKIFBJQ0FSRDogIE51bWJlciBPbmUsIHdoZXJlIGRvIHdlIGtlZXAgRGF0YSdzIHNldHVwIGltcGxhbnRzPwogICAgIAogUklLRVI6ICBJIGxlZnQgdGhlbSB3aXRoIEdlb3JkaS4KICAgICAKIExBRk9SR0U6ICBbaW4gYSBzdXJwcmlzZWQgdm9pY2VdIFdoYXQhIT8gIEkgdGhvdWdodCB5b3Ugc3RpbGwgaGFkIHRoZW0hCiAgICAgCiBQSUNBUkQ6ICBEYXRhLCBkb24ndCB5b3UgaGF2ZSBkZXZpY2UgZHJpdmVycyBzdG9yZWQgaW4geW91ciBpbnRlcm5hbCBtZW1vcnk/CiAgICAgCiBEQVRBOiAgTm90IGZvdW5kLCBzaXIuICBQbGVhc2UgaW5zZXJ0IFNldHVwIEltcGxhbnQgIzEgaW4gbXkgcmlnaHQgbm9zdHJpbC4KICAgICAKIFBJQ0FSRDogIERhdGEsIEkgZG9uJ3QgKmhhdmUqIFNldHVwIEltcGxhbnQgIzEuCiAgICAgCiBEQVRBOiAgTm90IHJlYWR5IHJlYWRpbmcgcmlnaHQgbm9zdHJpbC4gIEFib3J0LCBSZXRyeSwgRmFpbD8KICAgICAKIFBJQ0FSRDogIEFib3J0IQogICAgIAogREFUQTogIE5vdCByZWFkeSByZWFkaW5nIHJpZ2h0IG5vc3RyaWwuICBBYm9ydCwgUmV0cnksIEZhaWw/CiAgICAgCiBQSUNBUkQ6ICBXZWxsLCBmYWlsLCB0aGVuIQogICAgIAogREFUQTogIEN1cnJlbnQgbm9zZSBpcyBubyBsb25nZXIgdmFsaWQuCiAgICAgCiBbRGF0YSB3YWxrcyBvdmVyIHRvIHRoZSBoZWxtLCBhbmQgcHJlc3NlcyBzZXZlcmFsIGJ1dHRvbnMuICBUaGUgc2hpcApsdXJjaGVzLCAKdGhlIGltYWdlcyBvZiB0aGUgUm9tdWxhbiB3YXJzaGlwcyBzdWRkZW5seSBzaGlmdCB0byBvbmUgc2lkZSBvZiB0aGUgCnZpZXdzY3JlZW4sIGFuZCBhIGhpZ2gtcGl0Y2hlZCB3aGluaW5nIG5vaXNlIGlzIGhlYXJkIGNvbWluZyBmcm9tIHNvbWV3aGVyZSAKZWxzZSBpbiB0aGUgc2hpcC5dCiAgICAgCiBMQUZPUkdFOiAgW2FsYXJtZWRdICBEYXRhLCB3aGF0IHRoZSBoZWxsIGFyZSB5b3UgZG9pbmc/CiAgICAgCiBQSUNBUkQ6ICBOdW1iZXIgT25lLCBkbyB3ZSBoYXZlIGEgY3VzdG9tZXIgc2VydmljZSBudW1iZXIgZm9yIERhdGE/CiAgICAgCiBSSUtFUjogIFllcyBzaXIsIGJ1dCBsYXN0IHRpbWUgSSB0cmllZCB0byBjYWxsIHRoZW0sIEkgZ290IHB1dCBvbiBob2xkIGZvcgp0d28gCmhvdXJzIGJlZm9yZSBJIHdhcyBhYmxlIHRvIHRhbGsgdG8gYW55b25lLiAgQW5kIHRoYXQgcGVyc29uIHdhc24ndCAKa25vd2xlZGdlYWJsZSBhYm91dCBhbmRyb2lkcyBvZiBEYXRhJ3MgbW9kZWwuICBTaGUgc3BlY2lhbGl6ZWQgaW4gaW5kdXN0cmlhbCAKY29udHJvbCByb2JvdHMuCiAgICAgCiBbU3VkZGVubHksIHRoZSBsaWdodHMgYWxsIGdvIG91dCwgdGhlIHZpZXdzY3JlZW4gZ29lcyBibGFuaywgYW5kIGFsbCB0aGUKdXN1YWwgCm5vaXNlIG9mIGZhbnMsIG1vdG9ycywgYW5kIHNvIG9uIHdoaW5lcyB0byBhIGhhbHQuICBBZnRlciBhIGZldyBzZWNvbmRzLCB0aGUgCnJlZCBlbWVyZ2VuY3kgbGlnaHRzIGNvbWUgb24uICBEYXRhIGlzIHN0YW5kaW5nIGJ5IHRoZSBjb25zb2xlLCBhYnNvbHV0ZWx5IAptb3Rpb25sZXNzLl0KICAgICAKIFBJQ0FSRDogIFdoYXQncyBnb2luZyBvbj8KICAgICAKIExBRk9SR0U6ICBbY2hlY2tpbmcgdGhlIGhlbG0gY29uc29sZV0gIExpZXV0ZW5hbnQgRGF0YSBoYXMgY2F1c2VkIGEgR2VuZXJhbCAKUHJvdGVjdGlvbiBWaW9sYXRpb24gaW4gdGhlIHdhcnAgZW5naW5lIGNvcmUuCiAgICAgCiBQSUNBUkQ6IFRoZXNlIGFuZHJvaWRzIGxvb2sgcmVhbGx5IHNoYXJwLCBidXQgeW91IGNhbid0IHJlYWxseSBkbyAKIGFueXRoaW5nIHdpdGggdGhlbS4KICAgICAKIFtUaGUgc2hpbW1lciBvZiB0aGUgdHJhbnNwb3J0ZXIgZWZmZWN0IGFwcGVhcnMsIGFuZCBzaXggUm9tdWxhbnMgaW4gZnVsbCAKYmF0dGxlIGRyZXNzIG1hdGVyaWFsaXplIG9uIHRoZSBicmlkZ2UuICBBIHNldmVudGggZmlndXJlLCBhIEZlcmVuZ2ksIGFwcGVhcnMgCm1vbWVudHMgbGF0ZXIuXQogICAgIAogRkVSRU5HSTogIFt3aXRoIGEgbWVyY2VuYXJ5IGdyaW5dIENhbiBJIGludGVyZXN0IHlvdSBpbiBhIE1hY2ludG9zaCwKQ2FwdGFpbj8KICAgICAKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBpY2sgdXAgbGluZXMgKEdyaW1tYm9ybiwgMjEuIEphbiAxOTk3LCAxNzoyMjoxNyk6Cn4jISBvbj1HYXN0MSBvdD04NTM4NjI0MjEgb2c9c2NobWFycm4KVEhFIFdPUkxEJ1MgQkVTVCBQSUNLVVAgTElORVMgKEFORCBNVUNILCBNVUNILCBNT1JFISkKCiAxLiBJIHdhbnQgdG8gbWVsdCBpbiB5b3VyIG1vdXRoLCBub3QgaW4geW91ciBoYW5kcy4KIDIuIENhbiBJIGJvcnJvdyBhIHF1YXJ0ZXI/IFsiV2hhdCBmb3I/Il0gSSB3YW50IHRvIGNhbGwgbXkgbW9tIGFuZCAgdGVsbApoZXIgSSBqdXN0IG1ldCB0aGUgZ2lybCBvZiBteSBkcmVhbXMuCiAgT1I6CiAgSSB3YW50IHRvIGNhbGwgeW91ciBtb3RoZXIgYW5kIHRoYW5rIGhlci4KIDMuIElzIHlvdXIgZGFkZHkgYSB0aGllZj8gWyJOby4iXSBUaGVuIGhvdyBkaWQgaGUgc3RlYWwgdGhlIHNwYXJrbGUgb2YKdGhlIHN0YXJzIGFuZCBwdXQgaXQgaW4geW91ciBleWVzPyBbQmUgcmVhZHkgd2l0aCBhIHNuYXBweSBhbnN3ZXIgaW4KY2FzZSB0aGV5IHNheSAieWVzLiJdCiA0LiBZb3UncmUgc28gaG90IHlvdSBtZWx0IHRoZSBwbGFzdGljIGluIG15IHVuZGVyd2Vhci4KIDUuIFdvdWxkIHlvdSBiZSBteSBsb3ZlIGJ1ZmZldD8gIFNvIEkgY2FuIGxheSB5b3Ugb3V0IG9uIHRoZSB0YWJsZSBhbmQKdGFrZSB3aGF0IEkgd2FudD8KIDYuIExldCdzIGdvIHRvIG15IHBsYWNlIGFuZCBkbyB0aGUgdGhpbmdzIEknbGwgdGVsbCBldmVyeW9uZSB3ZSBkaWQgYW55d2F5LgogNy4gVGhlIHdvcmQgb2YgdGhlIGRheSBpcyAibGVncy4iICBMZXQncyBnbyBiYWNrIHRvIG15IHBsYWNlIGFuZCBzcHJlYWQKdGhlIHdvcmQuCiA4LiBEbyB5b3VyIGxlZ3MgaHVydCBmcm9tIHJ1bm5pbmcgdGhyb3VnaCBteSBkcmVhbXMgYWxsIG5pZ2h0PwogOS4gVGhhdCBvdXRmaXQgd291bGQgbG9vayBncmVhdCBpbiBhIGNydW1wbGVkIGhlYXAgb24gbXkgYmVkcm9vbSBmbG9vcgp0b21vcnJvdyBtb3JuaW5nLgoxMC4gTXkgbmFtZSdzIFt5b3VyIG5hbWVdLiAgVGhhdCdzIHNvIHlvdSBrbm93IHdoYXQgdG8gc2NyZWFtLgoxMS4gTXkgbmFtZSdzIFt5b3VyIG5hbWVdLCBidXQgeW91IGNhbiBjYWxsIG1lICJsb3Zlci4iCjEyLiBOaWNlIHNob2VzLiAgV2FubmEgc2xlZXAgdG9nZXRoZXI/CjEzLiBDYW4gSSBmbGlydCB3aXRoIHlvdT8KMTQuIFlvdXIgZGFkZHkgbXVzdCBoYXZlIGJlZW4gYSBiYWtlciwgJ2NhdXNlIHlvdSd2ZSBnb3QgYSBuaWNlIHNldApidW5zLgoxNS4gW0xvb2sgYXQgaGlzL2hlciBzaGlydCBsYWJlbC4gIFdoZW4gdGhleSBzYXksICJXaGF0IGFyZSB5b3UKZG9pbmc/IjpdCiBDaGVja2luZyB0byBzZWUgaWYgeW91IHdlcmUgbWFkZSBpbiBoZWF2ZW4uCiAgICBPUjoKICBDaGVja2luZyB0byBzZWUgaWYgeW91J3JlIHRoZSByaWdodCBzaXplLgoxNi4gQWxsIHRob3NlIGN1cnZlcywgYW5kIG1lIHdpdGggbm8gYnJha2VzLgoxNy4gSWYgSSB0b2xkIHlvdSBoYWQgYSBiZWF1dGlmdWwgYm9keSwgd291bGQgeW91IGhvbGQgaXQgYWdhaW5zdCBtZT8KMTguIFNjcmV3IG1lIGlmIEknbSB3cm9uZywgYnV0IGRvbid0IHlvdSB3YW50IHRvIGtpc3MgbWU/CjE5LiBJIGxpa2UgZXZlcnkgbXVzY2xlIGluIHlvdXIgYm9keSwgZXNwZWNpYWxseSBtaW5lLgoyMC4gW0dyYWIgaGlzL2hlciB0dXNoLl0gUGFyZG9uIG1lLCBpcyB0aGlzIHNlYXQgdGFrZW4/CjIxLiBJcyBpdCBob3QgaW4gaGVyZSBvciBpcyBpdCBqdXN0IHlvdT8KMjIuIENhbiBJIGhhdmUgZGlyZWN0aW9ucz8gWyJUbyB3aGVyZT8iXSBUbyB5b3VyIGhlYXJ0LiBbQ2hlZXNlIGFsZXJ0IV0KMjMuIElmIEkgY291bGQgcmVhcnJhbmdlIHRoZSBhbHBoYWJldCwgSSdkIHB1dCBVIGFuZCBJIHRvZ2V0aGVyLgoyNC4gSG93IGFib3V0IHlvdSBzaXQgb24gbXkgbGFwIGFuZCB3ZSdsbCBzZWUgd2hhdCBwb3BzIHVwPwoyNS4gRG8geW91IGtub3cgd2hhdCdkIGxvb2sgZ29vZCBvbiB5b3U/ICBNZS4KMjYuIEkgbWlzcyBteSB0ZWRkeSBiZWFyLiAgV291bGQgeW91IHNsZWVwIHdpdGggbWU/CjI3LiBTby4uLiAgSG93IGFtIEkgZG9pbic/CjI4LiBbRGlwIHlvdXIgZmluZ2VyIGludG8geW91ciBkcmluayBhbmQgdG91Y2ggaGlzL2hlciBzaG91bGRlcl0gIEhvdwphYm91dCB5b3UgYW5kIEkgZ28gYmFjayB0byBteSBwbGFjZSBhbmQgZ2V0IG91dCBvZiB0aGVzZSB3ZXQgY2xvdGhlcz8KMjkuIFtUYXAgeW91ciB0aGlnaF0gWW91IGp1c3QgdGhpbmsgdGhpcyBpcyBteSBsZWcuCjMwLiBTYXksIHRoYXQncyBhIG5pY2UgW2RyZXNzL291dGZpdC9hcnRpY2xlIG9mIGNsb3RoaW5nXS4gIENhbiBJIHRhbGsgeW91Cm91dCBvZgppdD8KMzEuIEkgbG9zdCBteSBwaG9uZSBudW1iZXIuICBDYW4gSSBoYXZlIHlvdXJzPwozMi4gSSBob3BlIHlvdSBrbm93IENQUiwgJ2NhdXNlIHlvdSB0YWtlIG15IGJyZWF0aCBhd2F5LgozMy4gRXhjdXNlIG1lLCBpcyB0aGF0IHNlbWVuIGluIHlvdXIgaGFpcj8KMzQuIE15IGZhY2UgaXMgbGVhdmluZyBpbiBmaWZ0ZWVuIG1pbnV0ZXMuICBCZSBvbiBpdC4KMzUuIFlvdSBkb250IHN3ZWF0IG11Y2ggZm9yIGEgZmF0IGNoaWNrL2Jsb2tlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9uc2Vuc2UgKEdyaW1tYm9ybiwgMjEuIEphbiAxOTk3LCAxNzoyMzozOSk6Cn4jISBvbj1NdXBmZWwgb3Q9ODUzODYzMzQ0IG9nPXNjaG1hcnJuCn4jISBvbj1HcmltbWJvcm4gb3Q9ODUzODYzMjg2IG9nPXdpdHplCn4jISBvbj1HYXN0MSBvdD04NTM4NjIyNzAgb2c9c2NobWFycm4KVGhlIFRvYXN0ZXIKICAgICAtLS0tLS0tLS0tLS0KICAgICAKICAgICBPbmNlIHVwb24gYSB0aW1lLCBpbiBhIGtpbmdkb20gbm90IGZhciAKICAgICBmcm9tIGhlcmUsIGEga2luZyBzdW1tb25lZCB0d28gb2YgaGlzIAogICAgIGFkdmlzb3JzIGZvciBhIHRlc3QuICBIZSBzaG93ZWQgdGhlbSAKICAgICBib3RoIGEgc2hpbnkgbWV0YWwgYm94IHdpdGggdHdvIHNsb3RzIAogICAgIGluIHRoZSB0b3AsIGEgY29udHJvbCBrbm9iLCBhbmQgYQogICAgIGxldmVyLiAgIldoYXQgZG8geW91IHRoaW5rIHRoaXMgaXM/IgogICAgIAogICAgIE9uZSBhZHZpc29yLCBhbiBlbmdpbmVlciwgYW5zd2VyZWQgZmlyc3QuIAogICAgICJJdCBpcyBhIHRvYXN0ZXIsIiBoZSBzYWlkLiBUaGUga2luZyAKICAgICBhc2tlZCwgIkhvdyB3b3VsZCB5b3UgZGVzaWduIGFuIGVtYmVkZGVkIAogICAgIGNvbXB1dGVyIGZvciBpdD8iIFRoZSBlbmdpbmVlciByZXBsaWVkLCAKICAgICAiVXNpbmcgYSBmb3VyLWJpdCBtaWNyb2NvbnRyb2xsZXIsIEkgCiAgICAgd291bGQgd3JpdGUgYSBzaW1wbGUgcHJvZ3JhbSB0aGF0IHJlYWRzIAogICAgIHRoZSBkYXJrbmVzcyBrbm9iIGFuZCBxdWFudGl6ZXMgaXRzCiAgICAgcG9zaXRpb24gdG8gb25lIG9mIDE2IHNoYWRlcyBvZiBkYXJrbmVzcywgCiAgICAgZnJvbSBzbm93IHdoaXRlIHRvIGNvYWwgYmxhY2suIFRoZQogICAgIHByb2dyYW0gd291bGQgdXNlIHRoYXQgZGFya25lc3MgbGV2ZWwgCiAgICAgYXMgdGhlIGluZGV4IHRvIGEgMTYtZWxlbWVudCB0YWJsZSBvZgogICAgIGluaXRpYWwgdGltZXIgdmFsdWVzLiBUaGVuIGl0IHdvdWxkIHR1cm4gCiAgICAgb24gdGhlIGhlYXRpbmcgZWxlbWVudHMgYW5kIHN0YXJ0IHRoZSAKICAgICB0aW1lciB3aXRoIHRoZSBpbml0aWFsIHZhbHVlIHNlbGVjdGVkIGZyb20gCiAgICAgdGhlIHRhYmxlLiAgQXQgdGhlIGVuZCBvZiB0aGUgdGltZSBkZWxheSwgCiAgICAgaXQgd291bGQgdHVybiBvZmYgdGhlIGhlYXQgYW5kIHBvcCB1cCB0aGUgCiAgICAgdG9hc3QuIENvbWUgYmFjayBuZXh0IHdlZWssIGFuZCBJJ2xsIHNob3cgCiAgICAgeW91IGEgd29ya2luZyBwcm90b3R5cGUuIgogICAgIAogICAgIFRoZSBzZWNvbmQgYWR2aXNvciwgYSBjb21wdXRlciBzY2llbnRpc3QsIAogICAgIGltbWVkaWF0ZWx5IHJlY29nbml6ZWQgdGhlIGRhbmdlciBvZiBzdWNoIAogICAgIHNob3J0LXNpZ2h0ZWQgdGhpbmtpbmcuIEhlIHNhaWQsICJUb2FzdGVycyAKICAgICBkb24ndCBqdXN0IHR1cm4gYnJlYWQgaW50byB0b2FzdCwgdGhleSBhcmUgCiAgICAgYWxzbyB1c2VkIHRvIHdhcm0gZnJvemVuIHdhZmZsZXMuICBXaGF0IHlvdSAKICAgICBzZWUgYmVmb3JlIHlvdSBpcyByZWFsbHkgYSBicmVha2Zhc3QgZm9vZCAKICAgICBjb29rZXIuICBBcyB0aGUgc3ViamVjdHMgb2YgeW91ciBraW5nZG9tIAogICAgIGJlY29tZSBtb3JlIHNvcGhpc3RpY2F0ZWQsIHRoZXkgd2lsbCBkZW1hbmQgCiAgICAgbW9yZSBjYXBhYmlsaXRpZXMuIFRoZXkgd2lsbCBuZWVkIGEgYnJlYWtmYXN0IAogICAgIGZvb2QgY29va2VyIHRoYXQgY2FuIGFsc28gY29vayBzYXVzYWdlLCBmcnkgCiAgICAgYmFjb24sIGFuZCBtYWtlIHNjcmFtYmxlZCBlZ2dzLiAgQSB0b2FzdGVyIAogICAgIHRoYXQgb25seSBtYWtlcyB0b2FzdCB3aWxsIHNvb24gYmUgb2Jzb2xldGUuIAogICAgIElmIHdlIGRvbid0IGxvb2sgdG8gdGhlIGZ1dHVyZSwgd2Ugd2lsbCBoYXZlIAogICAgIHRvIGNvbXBsZXRlbHkgcmVkZXNpZ24gdGhlIHRvYXN0ZXIgaW4ganVzdCBhIAogICAgIGZldyB5ZWFycy4iCiAgICAgCiAgICAgIldpdGggdGhpcyBpbiBtaW5kLCB3ZSBjYW4gZm9ybXVsYXRlIGEgbW9yZSAKICAgICBpbnRlbGxpZ2VudCBzb2x1dGlvbiB0byB0aGUgcHJvYmxlbS4gIEZpcnN0LCAKICAgICBjcmVhdGUgYSBjbGFzcyBvZiBicmVha2Zhc3QgZm9vZHMuIFNwZWNpYWxpemUgCiAgICAgdGhpcyBjbGFzcyBpbnRvIHN1YmNsYXNzZXM6ICBncmFpbnMsIHBvcmssIAogICAgIGFuZCBwb3VsdHJ5LiAgVGhlIHNwZWNpYWxpemF0aW9uIHByb2Nlc3MgCiAgICAgc2hvdWxkIGJlIHJlcGVhdGVkIHdpdGggZ3JhaW5zIGRpdmlkZWQgaW50byAKICAgICB0b2FzdCwgbXVmZmlucywgcGFuY2FrZXMsIGFuZCB3YWZmbGVzOyBwb3JrIAogICAgIGRpdmlkZWQgaW50byBzYXVzYWdlLCBsaW5rcywgYW5kIGJhY29uOyBhbmQgCiAgICAgcG91bHRyeSBkaXZpZGVkIGludG8gc2NyYW1ibGVkIGVnZ3MsIAogICAgIGhhcmQtYm9pbGVkIGVnZ3MsIHBvYWNoZWQgZWdncywgZnJpZWQgZWdncywgCiAgICAgYW5kIHZhcmlvdXMgb21lbGV0IGNsYXNzZXMuIgogICAgIAogICAgICJUaGUgaGFtIGFuZCBjaGVlc2Ugb21lbGV0IGNsYXNzIGlzIHdvcnRoIHNwZWNpYWwgCiAgICAgYXR0ZW50aW9uIGJlY2F1c2UgaXQgbXVzdCBpbmhlcml0IGNoYXJhY3RlcmlzdGljcyAKICAgICBmcm9tIHRoZSBwb3JrLCBkYWlyeSwgYW5kIHBvdWx0cnkgY2xhc3Nlcy4gVGh1cywgCiAgICAgd2Ugc2VlIHRoYXQgdGhlIHByb2JsZW0KICAgICAgY2Fubm90IGJlIHByb3Blcmx5IHNvbHZlZCB3aXRob3V0IG11bHRpcGxlCiAgICAgaW5oZXJpdGFuY2UuIEF0IHJ1biB0aW1lLCB0aGUgcHJvZ3JhbSBtdXN0IAogICAgIGNyZWF0ZSB0aGUgcHJvcGVyIG9iamVjdCBhbmQgc2VuZCBhIG1lc3NhZ2UgCiAgICAgdG8gdGhlIG9iamVjdCB0aGF0IHNheXMsICdDb29rIHlvdXJzZWxmLicgVGhlIAogICAgIHNlbWFudGljcyBvZiB0aGlzIG1lc3NhZ2UgZGVwZW5kLCBvZiBjb3Vyc2UsIAogICAgIG9uIHRoZSBraW5kIG9mIG9iamVjdCwgc28gdGhleSBoYXZlIGEgCiAgICAgZGlmZmVyZW50IG1lYW5pbmcgdG8gYSBwaWVjZSBvZiB0b2FzdCB0aGFuIHRvIAogICAgIHNjcmFtYmxlZCBlZ2dzLiIKICAgICAKICAgICAiUmV2aWV3aW5nIHRoZSBwcm9jZXNzIHNvIGZhciwgd2Ugc2VlIHRoYXQgdGhlIAogICAgIGFuYWx5c2lzIHBoYXNlIGhhcyByZXZlYWxlZCB0aGF0IHRoZSBwcmltYXJ5IAogICAgIHJlcXVpcmVtZW50IGlzIHRvIGNvb2sgYW55IGtpbmQgb2YgYnJlYWtmYXN0IAogICAgIGZvb2QuICBJbiB0aGUgZGVzaWduIHBoYXNlLCB3ZSBoYXZlIGRpc2NvdmVyZWQgCiAgICAgc29tZSBkZXJpdmVkIHJlcXVpcmVtZW50cy4gU3BlY2lmaWNhbGx5LCB3ZSAKICAgICBuZWVkIGFuIG9iamVjdC1vcmllbnRlZCBsYW5ndWFnZSB3aXRoIG11bHRpcGxlIAogICAgIGluaGVyaXRhbmNlLiAgT2YgY291cnNlLCB1c2VycyBkb24ndCB3YW50IHRoZSAKICAgICBlZ2dzIHRvIGdldCBjb2xkIHdoaWxlIHRoZSBiYWNvbiBpcyBmcnlpbmcsIHNvIAogICAgIGNvbmN1cnJlbnQgcHJvY2Vzc2luZyBpcyByZXF1aXJlZCwgdG9vLiIKICAgICAKICAgICAiV2UgbXVzdCBub3QgZm9yZ2V0IHRoZSB1c2VyIGludGVyZmFjZS4gIFRoZSAKICAgICBsZXZlciB0aGF0IGxvd2VycyB0aGUgZm9vZCBsYWNrcyB2ZXJzYXRpbGl0eSwgCiAgICAgYW5kIHRoZSBkYXJrbmVzcyBrbm9iIGlzIGNvbmZ1c2luZy4gIFVzZXJzCiAgICAgd29uJ3QgYnV5IHRoZSBwcm9kdWN0IHVubGVzcyBpdCBoYXMgYSB1c2VyLWZyaWVuZGx5LCAKICAgICBncmFwaGljYWwgaW50ZXJmYWNlLiAgV2hlbiB0aGUgYnJlYWtmYXN0IGNvb2tlciBpcyAKICAgICBwbHVnZ2VkIGluLCB1c2VycyBzaG91bGQgc2VlIGEgY293Ym95IGJvb3Qgb24gdGhlIAogICAgIHNjcmVlbi4gIFVzZXJzIGNsaWNrIG9uIGl0LCBhbmQgdGhlIG1lc3NhZ2UKICAgICAnQm9vdGluZyBVTklYIHYuIDguMycgYXBwZWFycyBvbiB0aGUgc2NyZWVuLiAKICAgICAoVU5JWCA4LjMgc2hvdWxkIGJlIG91dCBieSB0aGUgdGltZSB0aGUgcHJvZHVjdCAKICAgICBnZXRzIHRvIHRoZSBtYXJrZXQuKSBVc2VycyBjYW4gcHVsbCBkb3duIGEgbWVudSAKICAgICBhbmQgY2xpY2sgb24gdGhlIGZvb2RzIHRoZXkgd2FudCB0byBjb29rLiIKICAgICAKICAgICAiSGF2aW5nIG1hZGUgdGhlIHdpc2UgZGVjaXNpb24gb2Ygc3BlY2lmeWluZyB0aGUgCiAgICAgc29mdHdhcmUgZmlyc3QgaW4gdGhlIGRlc2lnbiBwaGFzZSwgYWxsIHRoYXQgcmVtYWlucyAKICAgICBpcyB0byBwaWNrIGFuIGFkZXF1YXRlIGhhcmR3YXJlIHBsYXRmb3JtIGZvciB0aGUgCiAgICAgaW1wbGVtZW50YXRpb24gcGhhc2UuICBBbiBJbnRlbCA1ODYgd2l0aCAzMk1CIG9mIAogICAgIG1lbW9yeSwgYSAyR0IgaGFyZCBkaXNrLCBhbmQgYSBTVkdBIG1vbml0b3Igc2hvdWxkIGJlIAogICAgIHN1ZmZpY2llbnQuICBJZiB5b3Ugc2VsZWN0IGEgbXVsdGl0YXNraW5nLCBvYmplY3QgCiAgICAgb3JpZW50ZWQgbGFuZ3VhZ2UgdGhhdCBzdXBwb3J0cyBtdWx0aXBsZSBpbmhlcml0YW5jZSAKICAgICBhbmQgaGFzIGEgYnVpbHQtaW4gR1VJLCB3cml0aW5nIHRoZSBwcm9ncmFtIHdpbGwgYmUKICAgICBhIHNuYXAuICAoSW1hZ2luZSB0aGUgZGlmZmljdWx0eSB3ZSB3b3VsZCBoYXZlIGhhZCAKICAgICBpZiB3ZSBoYWQgZm9vbGlzaGx5IGFsbG93ZWQgYSBoYXJkd2FyZS1maXJzdCBkZXNpZ24KICAgICBzdHJhdGVneSB0byBsb2NrIHVzIGludG8gYSBmb3VyLWJpdCBtaWNyb2NvbnRyb2xsZXIhKS4iCiAgICAgCiAgICAgVGhlIGtpbmcgd2lzZWx5IGhhZCB0aGUgY29tcHV0ZXIKICAgICBzY2llbnRpc3QgYmVoZWFkZWQsIGFuZCB0aGV5IGFsbAogICAgIGxpdmVkIGhhcHBpbHkgZXZlciBhZnRlci4uLgoKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZpcmUhIChUYXNoYSwgMjEuIEphbiAxOTk3LCAxOToyOTo0NCk6CgpXZW5uIHdpciBncmFkIGJlaSBTdGFyIFRyZWsgc2luZC4uLgoKUElDQVJEOiBGaXJlIGF0IHdpbGwuIE5vISBOb3QgV2lsIFJpa2VyIQoKVGFzaGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGaXJlISAoS29iYXlhc2hpLCAyMS4gSmFuIDE5OTcsIDIwOjQ4OjA3KToKfiMhIHJuPVRhc2hhIHJ0PTg1Mzg3MTM4NCByZz13aXR6ZQp+IyEgdGlkPTg1Mzg3MTM4NApLZW5udCBqZW1hbmQgZGllICJTdGFyVHJlayAtIE5leHQgR2VuZXJhdGlvbiA6IExvc3QgRXBpc29kZSIgPyBkaWUgaXN0IG1pcgplaWRlciBhYmhhbmRlbiBnZWtvbW1lbi4gd2VubiBzaWUgamVtYW5kIGhhdCwgYml0dGUgenVtYWlsZW4uCkRhbmtlCgpLb2JheWFzaGkKT0JKb2tlOgpFcjogTGFzcyB1bnMgaGV1dGUgbWFsIGVpbmUgbmV1ZSBQb3NpdGlvbiBhdXNwcm9iaWVyZW4uClNpZTogV2llPwpFcjogSW5zIE9oci4KU2llOiBOZWluLiBEYSB3ZXJkZSBpY2ggZG9jaCB0YXViLgpFci4gU28nbiBRdXRhc2NoLiBEdSBiaXN0IGphIGF1Y2ggbmljaHQgc3R1bW0gZ2V3b3JkZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWlzcyBpY2ggZG9jaCBuaWNodCwgd2llIGljaCBkaWVzZW4gQXJ0aWtlbCBuZW5uZW4gc29sbCwgZGVua3QgRXVjaCBkb2NoIHNlbGJlciB3YXMgYXVzISAoRW5neXd1Y2ssIDI1LiBKYW4gMTk5NywgMTg6MzQ6NTEpOgpFcmZpbmRlciB2b24gVW5peCB1bmQgQyBnZWJlbiB6dTogQUxMRVMgUVVBVFNDSAoKSW4gZWluZXIgQW5rdWVuZGlndW5nLCBkaWUgZGllIENvbXB1dGVyaW5kdXN0cmllIHZlcmJsdWVmZnRlLApoYWJlbiBLZW4gVGhvbXBzb24sIERlbm5pcyBSaXRjaGllIHVuZCBCcmlhbiBLZXJuaWdoYW0KenVnZWdlYmVuLCBkYXNzIGRhcyB2b24gaWhuZW4gZ2VzY2hhZmZlbmUgQmV0cmllYnNzeXN0ZW0gVW5peAp1bmQgZGllIFByb2dyYW1taWVyc3ByYWNoZUMgZWluIHJhZmZpbmllcnRlciBBcHJpbHNjaGVyegpzaW5kLCBkZXIgc2ljaCB1ZWJlciAyMCBKYWhyIGFtIExlYmVuIGVyaGFsdGVuIGhhdC4gQmVpIGVpbmVtClZvcnRyYWcgdm9yIGRlbSBsZXR6dGVuIFVuaXhXb3JsZC1Tb2Z0d2FyZS1FbnR3aWNrbHVuZ3Nmb3J1bQplbnRodWVsbHRlIFRob21wc29uOiAiMTk2OSBoYXR0ZSBBVCZUIGdlcmFkZSBkaWUgQXJiZWl0IGFtCkdFL0hvbmV5d2VsbC9BVCZULU11bHRpY3MtUHJvamVrdCBiZWVuZGV0LiBCcmlhbiB1bmQgaWNoCmV4cGVyaW1lbnRpZXJ0ZW4genUgZGVtIFplaXRwdW5rdCBtaXQgZWluZXIgZnJ1ZWhlbiBQYXNjYWwtClZlcnNpb24gdm9uIFByb2Zlc3NvciBOaWtsYXVzIFdpcnRoIHZvbSBFVEgtTGFib3JhdG9yaXVtIGluCmRlciBTY2h3ZWl6IHVuZCB3YXJlbiBiZWVpbmRydWNrdCB2b24gc2VpbmVyIEVpbmZhY2hoZWl0IHVuZApNYWVjaHRpZ2tlaXQuIERlbm5pcyBoYXR0ZSBnZXJhZGUgJ0RlciBIZXJyIGRlciBLbGluZ2UnCmdlbGVzZW4sIGVpbmUgc3BvZXR0aXNjaGUgUGFyb2RpZSBhdWYgVG9sa2llbnMgZ3Jvc3NlIFRyaWxvZ2llCidEZXIgSGVyciBkZXIgUmluZ2UnLiBJbSBVZWJlcm11dCBiZXNjaGxvc3NlbiB3aXIsIFBhcm9kaWVuCnp1ciBNdWx0aWNzLVVtZ2VidW5nIHVuZCB6dSBQYXNjYWwgenUgdmVyZmFzc2VuLiBEZW5uaXMgdW5kCmljaCB3YXJlbiBmdWVyIGRpZSBCZXRyaWVic3N5c3RlbXVtZ2VidW5nIHZlcmFudHdvcnRsaWNoLiBXaXIKbmFubnRlbiBlcyBVbml4IGluIEFuc3BpZWx1bmcgYXVmIE11bHRpY3MgdW5kIGZhbmRlbiBlcyBhdWNoCm5pY2h0IGdld2FndGVyIGFscyBhbmRlcmUgVmVyYmFsbGhvcm51bmdlbi4gRGFuYWNoCmVudHdpY2tlbHRlbiBEZW5uaXMgdW5kIEJyaWFuIGVpbmUgd2lya2xpY2ggcGVydmVyc2UgUGFzY2FsLQpWZXJzaW9uIG5hbWVucyAnQScuIEFscyB3aXIgYmVtZXJrdGVuLCBkYXMgZWluaWdlIExldXRlCnRhdHNhZWNobGljaCB2ZXJzdWNodGVuLCBpbiBBIHp1IHByb2dyYW1taWVyZW4sIGZ1ZWd0ZW4gd2lyCnNjaG5lbGwgZWluaWdlIEZhbGxzdHJpY2tlIGhpbnp1IHVuZCBuYW5udGVuIGVzIEIsIEJDUEwgdW5kCnNjaGxpZXNzbGljaCBDLiBXaXIgaG9lcnRlbiBkYW1pdCBhdWYsIGFscyB3aXIgZWluZSBzYXViZXJlClVlYmVyc2V0enVuZyBkZXIgZm9sZ2VuZGVuIEtvbnN0cnVrdGlvbiBlcmhpZWx0ZW46CmZvcig7UCgsLFxuPDwpLFItIFAoLCwxIikpIGZvcihlPUM7ZS07UCgsLF8iKygqdSsrLzgpJTIpKQpQKCwsSSIrKCpuLzEpJTIpOyBba2VpbmUgR2FyYW50aWUgZnVlciBUaXBwZmVobGVyLCBkZXIgU2V0emVyXQpEZXIgR2VkYW5rZSwgZGFzcyBtb2Rlcm5lIFByb2dyYW1taWVyZXIgZWluZSBTcHJhY2hlIGJlbnV0emVuCnd1ZXJkZW4sIGRpZSBzb2xjaCBlaW5lIEFud2Vpc3VuZyB6dWxpZXNzLCBsYWcgamVuc2VpdHMgdW5zZXJlcwpWb3JzdGVsbHVuZ3N2ZXJtb2VnZW5zLiBXaXIgZGFjaHRlbiBhbGxlcmRpbmdzIGRhcmFuLCBhbGxlcwpkZW4gU293amV0cyB6dSB2ZXJrYXVmZW4sIHVtIGlocmVuIENvbXB1dGVyZm9ydHNjaHJpdHQgMjAKSmFocmUgdW5kIG1laHIgenUgYmVoaW5kZXJuLiBVbnNlcmUgVWViZXJyYXNjaHVuZyB3YXIgZ3Jvc3MsCmFsc2Rhbm4gQVQmVCB1bmQgYW5kZXJlIFVTLVVudGVybmVobWVuIHRhdHNhZWNobGljaCBiZWdhbm5lbiwKVW5peCB1bmQgQyB6dSB2ZXJ3ZW5kZW4hIFNpZSBoYWJlbiAyMCB3ZWl0ZXJlIEphaHJlCmdlYnJhdWNodCwgZ2VudWVnZW5kIEVyZmFocnVuZ2VuIHp1IHNhbW1lbG4sIHVtIGVpbmlnZQpiZWRldXR1bmdzbG9zZSBQcm9ncmFtbWUgaW4gQyB6dSBlbnR3aWNrZWxuLCB1bmQgZGFzIG1pdAplaW5lciBQYXJvZGllIGF1ZiBkaWUgVGVjaG5payBkZXIgNjBlciBKYWhyZSEgRGVubm9jaCBzaW5kCndpciBiZWVpbmRydWNrdCB2b24gZGVyIEhhcnRuYWVja2lna2VpdCAoZmFsbHMgbmljaHQgZG9jaApHZW1laW5zaW5uKSBkZXMgZ2V3b2VobmxpY2hlbiBVbml4LSB1bmQgQy1BbndlbmRlcnMuCkplZGVuZmFsbHMgaGFiZW4gQnJpYW4sIERlbm5pcyB1bmQgaWNoIGluIGRlciBsZXR6dGVuIEphaHJlbgpudXIgaW4gUGFzY2FsIGF1ZiBlaW5lbSBBcHBsZSBNYWNpbnRvc2ggcHJvZ3JhbW1pZXJ0LCB1bmQgd2lyCmZ1ZWhsZW4gdW5zIGVjaHQgc2NodWxkaWcgYW4gZGVtIENoYW9zLCBkZXIgVmVyd2lycnVuZyB1bmQgZGVtCndpcmtsaWNoIHNjaGxlY2h0ZW4gUHJvZ3JhbW1pZXJzdGlsLCBkZXIgdm9uIHVuc2VyZW0KdmVycmNrdGVuIEVpbmZhbGwgdm9yIHNvIGxhbmdlciBaZWl0IGF1c2dpbmcuIgpOYW1oYWZ0ZSBVbml4IHVuZCBDLUFuYmlldGVyIHVuZCAtQmVudXR6ZXIsIGVpbnNjaGxpZXNzbGljaApBVCZULCBNaWNyb3NvZnQsIEhld2xldHQtUGFja2FyZCwgR1RFLCBOQ1IgdW5kIERFQyBoYWJlbgp2b3JsYWV1ZmlnIGplZGUgU3RlbGx1bmduYWhtZSBhYmdlbGVobnQuIEJvcmxhbmQKSW50ZXJuYXRpb25hbCwgZWluIGZ1ZWhyZW5kZXIgQW5iaWV0ZXIgdm9uIFBhc2NhbC0gdW5kIEMtCldlcmt6ZXVnZW4sIGVpbnNjaGxpZXNzbGljaCBkZXIgcG9wdWxhZXJlbiBUdXJibyBQYXNjYWwsIFR1cmJvCkMgdW5kIFR1cmJvIEMrKyBtZWludGUsIHNpZSBoYWV0dGVuIGRpZXNlbiBWZXJkYWNodCBzY2hvbiBzZWl0CkphaHJlbiBnZWhlZ3QgdW5kIHd1ZXJkZW4gbnVuIGRhenUgdWViZXJnZWhlbiwgaWhyZSBQYXNjYWwtClByb2R1a3RlIHp1IHZlcmJlc3Nlcm4sIHVuZCB3ZWl0ZXJlIEJlbXVlaHVuZ2VuIHVtIGRpZSBDLQpFbnR3aWNrbHVuZyBzdG9wcGVuLiBFaW4gSUJNLVNwcmVjaGVyIGJyYWNoIGluCnVua29udHJvbGxpZXJ0ZXMgR2VsYWVjaHRlciBhdXMuCihRdWVsbGU6IEJlcm5oYXJkIEwuIEhheWVzLCBOZXROZXdzLUdydXBwZSkKCgpUamEsIHNvIGlzdCBkYXMgTGViZW4gOykKRW5neSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdlaXNzIGljaCBkb2NoIG5pY2h0LCB3aWUgaWNoIGRpZXNlbiBBcnRpa2VsIG5lbm5lbiBzb2xsLCBkZW5rdCBFdWNoIGRvY2ggc2VsYmVyIHdhcyBhdXMhIChBbmF0b2wsIDI2LiBKYW4gMTk5NywgMDA6MDE6NDQpOgp+IyEgcm49Qmxvb2R5aGFycnkgcnQ9ODU0MjMyOTQ3IHJnPXdpdHplCn4jISB0aWQ9ODU0MjEzNjkxCgpNdXBmZWwgaGF0dGUgaXJnZW5kd28gbWFsIGVpbiBTdHVlY2sgQ29kZSBnZWZ1bmRlbiwgZGFzIGRlbiBQcmVpcyAKJ3VubGVzZXJsaWNoc3RlciBDLUNvZGUnIGdld29ubmVuIGhhdCwgZnJhZ3QgbWljaCBuaWNodCwgd28uCiNpbmNsdWRlIDxzdGRpby5oPgptYWluKHQsXyxhKQpjaGFyCioKYTsKewogIHJldHVybiEKCjA8dD8KdDwzPwoKbWFpbigtNzksLTEzLGErCm1haW4oLTg3LDEtXywKbWFpbigtODYsIDAsIGErMSApCgoKK2EpKToKCjEsCnQ8Xz8KbWFpbih0KzEsIF8sIGEgKQo6MywKCm1haW4gKCAtOTQsIC0yNyt0LCBhICkKJiZ0ID09IDIgP18KPDEzID8KCm1haW4gKCAyLCBfKzEsICIlcyAlZCAlZFxuIiApCgo6OToxNjoKdDwwPwp0PC03Mj8KbWFpbiggXywgdCwKIkBuJyssIycvKnt9dysvdyNjZG5yLysse31yLypkZX0rLC8qeyorLC93eyUrLC93I3EjbissLyN7bCwrLC9ue24rLC8rI24rLC8jO1wKI3EjbissLytrIzsqKywvJ3IgOidkKiczLH17dytLIHcnSzonK31lIyc7ZHEjJ2wgcSMnK2QnSyMhLytrIztcCnEjJ3J9ZUtLI313J3J9ZUtLe25sXScvIzsjcSNuJyl7KSN9dycpeyl7bmxdJy8rI24nO2R9cncnIGk7IyApe25sXSEvbntuIyc7IFwKcnsjdydyIG5je25sXScvI3tsLCsnSyB7cncnIGlLeztbe25sXScvdyNxI1wKXApuJ3drIG53JyBpd2t7S0t7bmxdIS93eyUnbCMjdyMnIGk7IDp7bmxdJy8qe3EjJ2xkO3InfXtubHdiIS8qZGV9J2MgOztcCntubCcte31yd10nLyssfSMjJyp9I25jLCcsI253XScvK2tkJytlfSs7XAojJ3JkcSN3ISBucicvICcpIH0rfXtybCMne24nICcpIyB9Jyt9IyMoISEvIikKOgp0PC01MD8KXz09KmEgPwpwdXRjaGFyKDMxW2FdKToKCm1haW4oLTY1LF8sYSsxKQo6Cm1haW4oKCphID09ICcvJykgKyB0LCBfLCBhICsgMSApCjoKCjA8dD8KCm1haW4gKCAyLCAyICwgIiVzIikKOiphPT0nLyd8fAoKbWFpbigwLAoKbWFpbigtNjEsKmEsICIhZWs7ZGMgaUBiSycocSktW3ddKiVuK3IzI2wse306XG51d2xvY2EtTzttCi52cGJrcyxmeG50ZENlZ2hpcnkiKQoKLGErMSk7fQoKLi4uIExhY2h0IG5pY2h0LCBkYXMgVGVpbCBsYWVzc3Qgc2ljaCBjb21waWxpZXJlbiAobWl0IFdhcm5pbmdzKSB1bmQKYXVzZnVlaHJlbi4KCkF1YSwgCkFuYXRvbCA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdlaXNzIGljaCBkb2NoIG5pY2h0LCB3aWUgaWNoIGRpZXNlbiBBcnRpa2VsIG5lbm5lbiBzb2xsLCBkZW5rdCBFdWNoIGRvY2ggc2VsYmVyIHdhcyBhdXMhIChXdXJ6ZWwsIDI2LiBKYW4gMTk5NywgMDE6MDE6MDkpOgp+IyEgcm49QW5hdG9sIHJ0PTg1NDIzMzMwNCByZz13aXR6ZQp+IyEgdGlkPTg1NDIxMzY5MQp1bmQgd2FzIHR1dCBkYXMgc3R1ZWNrPwoKaWNoIGhhYmUgZXMgaGllciBzY2hvbm1hbCBpbiBhbmRlcmVtIHp1c2FtbWVuaGFuZyBlcndhZWhudDoKYmVpIHVucyBpbiBkZXIgZmlybWEgd2lyZCBlaW4gcHJvZ3JhbW1pZXJlciwgZGVyIGVpbiBzb2xjaGVzIHN0dWVjawphYmxpZWZlcnQsIGVudGxhc3Nlbi4gaW4gYW5kZXJlbiBmaXJtZW4gd2lyZCBlcyBhZWhubGljaCBzZWluLCBhbHNvCmthbm4gZGFzIHdvaGwgbnVyIGVpbiBzdHVkZW50IHZlcmJyb2NoZW4gaGFiZW4uLi4KCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2Vpc3MgaWNoIGRvY2ggbmljaHQsIHdpZSBpY2ggZGllc2VuIEFydGlrZWwgbmVubmVuIHNvbGwsIGRlbmt0IEV1Y2ggZG9jaCBzZWxiZXIgd2FzIGF1cyEgKFRyZWthbiwgMjcuIEphbiAxOTk3LCAxMDoyMjozMSk6Cn4jISBybj1BbmF0b2wgcnQ9ODU0MjMzMzA0IHJnPXdpdHplCn4jISB0aWQ9ODU0MjEzNjkxCndvdyAuLiBpc3QgZGVyIHJvY2h1cy1vcHRpbWllcnQ/CjotMApUcmVrYW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBNdXNzIGZ1ZXIgZGllIEJlbnV0emVyYmVyYXR1bmcgKEJsb29keWhhcnJ5LCAyNy4gSmFuIDE5OTcsIDE0OjI3OjU3KToKCiprbGluZ2VsaW5nKiAqa2xpbmdlbGluZyoKCiJIb3RsaW5lLiBXb3J1bSBnZWh0J3M/IgoKIkFsc28uLi4gSWNoIG1laW4nIC4uLiBrYW5uIG1pciBtYWwgamVtYW5kIGhlbGZlbj8gSWNoIG11c3MgbWFsIFdhc3NlciAKIGxhc3Nlbi4iCgoiSG1tbS4uLiBpc3QgZXMgZHJpbmdlbmQ/IgoKIkphLCBpY2ggaGFiIHppZW1saWNoIERydWNrLiIKCiJPSy4gSGFiZW4gU2llIG1hZW5ubGljaGVzIG9kZXIgd2VpYmxpY2hlcyBHZXJhZXQ/IgoKPERlbmtwYXVzZT4KIkljaCBnbGF1YmUgbWFlbm5saWNoLiIKCiJPSy4gWnVlcnN0IG11ZXNzZW4gd2lyIElocmVuIEhvc2Vuc3RhbGwgZmluZGVuLiIKCiJIb3NlbnN0YWxsPyIKCiJKYS4gRGEgd28gZGVyIFJlaXNzdmVyc2NobHVzcyBpc3QsIGRlciBJaHJlIEhvc2Ugb2VmZm5ldC4gRXIgc29sbHRlIGF1ZiBJaHJlcgogVm9yZGVyc2VpdGUgc2Vpbi4gQmxpY2tlbiBTaWUgYml0dGUgbmFjaCB1bnRlbi4gV2FzIHNlaGVuIFNpZT8iCgoiSWNoIHNlaGUgU2NodWhlLiIKCiJOZWluLi4uIHNlaGVuIFNpZSBhbiBJaHJlciBWb3JkZXJzZWl0ZSBoZXJ1bnRlci4uLiBkYSwgd28gSWhyZSBIb3NlCiBiZWdpbm50LiBEYSBzb2xsdGVuIFNpZSBldHdhcyBtZXRhbGxpc2NoZXMgc2VoZW4uIERhcyBpc3QgSWhyIFJlaXNzLQogdmVyc2NobHVzcy4iCgoiRGFzIHJ1bmRlIERpbmdzZGE/IgoKIkhtLCBkYXMgaXN0IGRlciBIb3Nlbmtub3BmLi4uIG9lZmZuZW4gU2llIGRlbiwgd28gU2llIGdlcmFkZSBkYWJlaSAKIHNpbmQuIERlciBSZWlzc3ZlcnNjaGx1c3Mgc2llaHQgYXVzIHdpZSB2aWVsZSB3aW56aWdlIFphZWhuZSwgZGllIAogaW5laW5hbmRlciB2ZXJoYWt0IHNpbmQuIgoKIk9oLCBvaCBqYS4uLiBpY2ggaGFiJ3MuIDxwYXVzZT4gT0ssIGVyIGlzdCBvZmZlbi4uLiIKCiJKZXR6dCB6aWVoZW4gU2llIGRpZSBIb3NlIGJpcyB6dW0gS25pZSBuYWNoIHVudGVuLiIKCiJIYWIgaWNoIGdlbWFjaHQuIgoKIlNjaG9lbi4uLiBLb2VubmVuIHNpZSBJaHJlbiBXaWxsaSBhbmZhc3Nlbj8iCgoiTmVpbi4iCgoiS29lbm5lbiBTaWUgaWhuIHNlaGVuPyIKCiJOZWluLiIKCiJOYSBndXQuLi4gd2FzIHNlaGVuIFNpZSBkYW5uPyIKCiJXZWlzcy4uLiBudXIgV2Vpc3MgbWl0IGVpbiBwYWFyIExpbmllbi4uLiIKCiJIYWJlbiBTaWUgVW50ZXJ3YWVzY2hlIGluc3RhbGxpZXJ0PyIKCiJOZWluLiIKCiJFbnRzY2h1bGRpZ2VuIFNpZSwgYWJlciB3ZW5uIFNpZSBJaHJlbiBXaWxsaSBuaWNodCBzZWhlbiBrb2VubmVuIHVuZCBudXIKIFdlaXNzIHNlaGVuLCBkYW5uIGhhYmVuIFNpZSB2aWVsbGVpY2h0IFVudGVyd2Flc2NoZSBpbnN0YWxsaWVydC4gV2lyCiB3ZXJkZW4gZGFzIGRlaW5zdGFsbGllcmVuIG11ZXNzZW4sIGRhbWl0IHNpZSBXYXNzZXIgbGFzc2VuIGtvZW5uZW4uLi4iCgoiTmEgamEsIGFsc28gbWVpbmUgRnJldW5kaW4gd2FyIHp1bGV0enQgYW4gbWVpbmVtIFJlaXNzdmVyc2NobHVzcy4uLiAKIHZpZWxsZWljaHQgaGF0IHNpZSBVbnRlcndhZXNjaGUgaW5zdGFsbGllcnQuLi4iCgoiQWxzbyBndXQuLi4gZmFzc2VuIFNpZSBkYXMgd2Vpc3NlIERpbmcgYW4gdW5kIHppZWhlbiBlcyBoaW51bnRlciwgYmlzIFNpZQogSWhyZW4gV2lsbGkgc2VoZW4ga29lbm5lbi4uLiIKCiJFcyBoYWVuZ3QgZmVzdC4uLiBlcyBnZWh0IG5pY2h0IHdlaXRlciBoZXJ1bnRlci4uLiIKCiJXYXM/IERhcyB3ZWlzc2UgRGluZyBvZGVyIElociBXaWxsaT8iCgoiTWVpbiBXaWxsaSwgb2J3b2hsIGljaCBmZXN0ZSB6aWVoLi4uIgoKIkhBTFQsIE5JQ0hUIFpJRUhFTiEgTGFzc2VuIFNpZSBJaHJlbiBXaWxsaSBsb3MgdW5kIHppZWhlbiBzaWUgbnVyIGRpZSAKIFVudGVyd2Flc2NoZSBoaW51bnRlciwgYmlzIFNpZSBJaHJlbiBXaWxsaSBzZWhlbiBrb2VubmVuLi4uIgoKIk9oLi4uIG5hIGphLCBkYXMgd2FlcidzLi4uIgoKIk9LLiBOdW4gc2VoZW4gU2llIHNpY2ggaW0gUmF1bSB1bS4uLiBzZWhlbiBTaWUgaXJnZW5kZXR3YXMgYXVzIFBvcnplbGxhbj8iCgoiSWNoIHNlaGUgbnVyIGVpbmUga2xlaW5lIEthdHplLCBkaWUgYXVmIGVpbmVtIFJlZ2FsIHN0ZWh0Li4uIgoKIk9LLi4uIGRhbm4gc2luZCBTaWUgaW0gV29obnppbW1lci4uLiBHZWhlbiBTaWUgYXVmIGRpZSBUb2lsZXR0ZS4gU2llCiBrb2VubmVuIG51ciBhdWYgZGVyIFRvaWxldHRlIFdhc3NlciBsYXNzZW4uIERpZSBUb2lsZXR0ZSBpc3QgbWVpc3RlbnMgCiBnZWthY2hlbHQsIGhhdCBlaW5lbiBvZGVyIG1laHJlcmUgU3BpZWdlbCwgdW5kIFNlaWZlLiBNYW5jaGUgTGV1dGUKIGhhYmVuIGVpbmUgRHVzY2hlIG9kZXIgQmFkZXdhbm5lIGluIGRlbXNlbGJlbiBSYXVtIHdpZSBkaWUgVG9pbGV0dGUuLi4iCgoiSmEsIGFsc28uLi4gZGllIFRvaWxldHRlIGlzdCBlaW5lIEV0YWdlIGhvZWhlciwgZ2xhdWJlIGljaC4uLiIKCiJGZWluLCBhbHNvIGdlaGVuIHdpciBuYWNoIG9iZW4uLi4iCgoiSWNoIGthbm4gbmljaHQgZ2VoZW4uLi4iCgoiT0suLi4gaW5zdGFsbGllcmVuIFNpZSB2b3JsYWV1ZmlnIHdpZWRlciBVbnRlcndhZXNjaGUgdW5kIGRhbm4gZGllIEhvc2UuLi4KIGRhbm4gZ2VoZW4gU2llIG5hY2ggb2Jlbi4uLiBkYW5uIGRlaW5zdGFsbGllcmVuIFNpZSBiZWlkZXMsIHVuZCB6d2FyIAogenVlcnN0IGRpZSBIb3NlLi4uIgoKIkRpZSBVbnRlcndhZXNjaGUgd2FyIGRhcyB3ZWlzc2UgRGluZywgamE/IgoKIkphd29obCwgZGFzIGhhYmVuIFNpZSBnYW56IHJpY2h0aWcgdmVyc3RhbmRlbi4uLiIKCjxQYXVzZT4KCiJPSywgaWNoIGJpbiBvYmVuLi4uIgoKIkd1dC4uLiBzZWhlbiBTaWUgc2NodWVzc2VsYWVobmxpY2hlIERpbmdlciBhdXMgUG9yemVsbGFuPyIKCiJKYSwgendlaS4uLiIKCiJXaWUgZ3Jvc3Mgc2luZCBTaWU/IgoKIkVpbiBNZXRlciBzZWNoemlnLi4uIgoKIk9LLi4uIGdlaGVuIFNpZSB6dSBkZXIgU2NodWVzc2VsLCBkaWUgZWNodCBuaWVkcmlnZXIgaXN0IGFscyBJaHIgV2lsbGkuLi4iCgoiQWxzbyBpY2ggYmluIGRhLiIKCiJPSy4uLiBzZWhlbiBTaWUgenUsIGRhc3MgU2llIGluIFJpY2h0dW5nIGRlciBTY2h1ZXNzZWwgemllbGVuLi4uIHVuZAogbWFjaGVuIFNpZSBlaW5mYWNoLi4uIgoKIldhcyBtZWluZW4gU2llIGRhbWl0PyIKCiJOYSBqYS4uLiB3ZW5uIGRhcyBGZW5zdGVyIG1pdCAiT0s/IiBlcnNjaGVpbnQsIGVpbmZhY2ggYW5rbGlja2VuLi4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFdlaXNzIGljaCBkb2NoIG5pY2h0LCB3aWUgaWNoIGRpZXNlbiBBcnRpa2VsIG5lbm5lbiBzb2xsLCBkZW5rdCBFdWNoIGRvY2ggc2VsYmVyIHdhcyBhdXMhIChSb2NodXMsIDI3LiBKYW4gMTk5NywgMTY6NTg6MTApOgp+IyEgcm49VHJla2FuIHJ0PTg1NDM1Njk1MSByZz13aXR6ZQp+IyEgdGlkPTg1NDIxMzY5MQpOZWUsIGRpZSB2b24gbWlyIG9wdGltaWVydGUgRmFzc3VuZyB3YWVyZToKIFA7Cihrb21waWxpZXJlbiBtaXQgY2MgLURQPS4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFdlaXNzIGljaCBkb2NoIG5pY2h0LCB3aWUgaWNoIGRpZXNlbiBBcnRpa2VsIG5lbm5lbiBzb2xsLCBkZW5rdCBFdWNoIGRvY2ggc2VsYmVyIHdhcyBhdXMhIChXb29keSwgMjguIEphbiAxOTk3LCAwMzowODo1Nyk6Cn4jISBybj1Sb2NodXMgcnQ9ODU0MzgwNjkwIHJnPXdpdHplCn4jISB0aWQ9ODU0MjEzNjkxClNpZWh0IGF1cyB3aWUgZWluIExPVE9TIFByb3plc3MsIGFiZXIgc2VsYmlnZXMgaW4gJ3dpdHplJyB6dQpzY2hyZWliZW4sIGlzdCBzY2hvbiBzZWhyIHZlcndlZ2VuIDopCgp3b29keS4tIChrYW5uIGxvdG9zIHNjaG9uIG5pbW1lciBzZWhuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGVyIGhhdCBqYSBrZWluZSBhaG51bmcsIGhhZXQgZGVyIG5pY2ggKFlldGksIDI4LiBKYW4gMTk5NywgMTA6MDk6NTUpOgo+IHVudCBzZWViYWVyCkVpbiBlY2h0ZXIgU2VlYmFlciB3aWUgZXIgbGVpYnQgdW5kIGxlYnQuCkVyIGlzdCBhYnNvbHV0IGZpdC4KPiBmcmFnZSBzZWViYWVyIG5hY2ggcnVtCkRlciBTZWViYWVyIGJydW1tdDogS2FubiBtYW4gZGFzIHRyaW5rZW4/CgplYmVuIGF1ZiB0b3J0dWdhIHBhc3NpZXJ0CllldGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBoYWIgaWNoIG5vY2ggYXVmIG1laW5lciBGZXN0cGxhdHRlIGdlZnVuZGVuLiA6LSkgKFNpZG9saW4sIDI4LiBKYW4gMTk5NywgMTE6MzU6MDEpOgogS3VlcnpsaWNoIHZlcmFic2NoaWVkZXRlIGljaCBtaWNoIGJlaSBlaW5lbSBDSEFUIG1pdCBkZW4gV29ydGVuOiAnTGVnCiBEaWNoIHdpZWRlciBoaW4sIGljaCB3ZXJkIG5vY2ggbWlyIG5vY2huIFdlaXplbiByZWludHVuIHVuZCBkYW5uIGF1Y2gKIHNjaGxhZmVuIGdlaGVuLi4uJwogRGFyYXVmIGRlciBhbmRlcmU6ICdNZW5zY2gsIGF1Zm4gV2VpemVuIGtvZW5udCBpY2ggamV0enQgYXVjaC4uLicKICAgQWxzbyBiZWdhYiBpY2ggbWljaCBhbSBkYXJhdWZmb2xnZW5kZW4gVGFnIGluIG1laW5lbiBCYXN0ZWxrZWxsZXIgdW5kCiBmaW5nIGFuLi4uCiAgIE51biBpc3QgZXMgRkFTVCBmZXJ0aWcgISEhICBEYXMgV0VJWkVOQklFUlVFQkVSVFJBR1VOR1MtUFJPVE9LT0xMIHVuZAogZGllIGRhenVnZWhvZXJpZ2UgSGFyZHdhcmU6CiBCZXNjaHJlaWJ1bmcgZGVyIEhhcmR3YXJlOiBzaWVodCBhdXMgd2llIG5lIGFsdGUgU2NodWhzY2hhY2h0ZWwgKE1hcmtlIG1pdAogZGVuIFN0cmVpZmVuLi4uKSBPYmVuIGVpbiBUcmljaHRlciBkcmluLCBhbiBkZXIgU2VpdGUgZWluIFphcGZoYWhuIHVuZAogaGludGVuIGVpbmUgQnVjaHNlIGZ1ZXIgbmVuIEthbHRnZXJhZXRlc3RlY2tlciB1bmQgZWluZSBzZXJpZWxsZSBTY2huaXR0LQogc3RlbGxlLgogQmVzY2hyZWlidW5nIGRlciBTb2Z0d2FyZTogUHJvdG9rb2xsIGFlaG5lbHQgc2VociBkZW0gWi1Nb2RlbS1Qcm90b2tvbGw6CiBKZSBuYWNoICdHdWV0ZSBkZXIgTGVpdHVuZycgd2lyZCBkaWUgVWViZXJ0cmFndW5nc21lbmdlIGdlc3RlaWdlcnQuLi4KCiBWb3JnYW5nIGRlciBVZWJlcnRyYWd1bmc6IEJlaSBiZWlkZW4gU3RlbGxlbiBpc3QgZWluIFJlY2huZXIgbWl0IHp3ZWkKIHNlcmllbGxlbiBTY2huaXR0c3RlbGxlbiBub3R3ZW5kaWc6IGVpbmUgZnVlcidzIE1vZGVtLCBkaWUgYW5kZXJlIGZ1ZXIgZGllCiBIYXJkd2FyZS4KIEJpZXIgaW4gZGVuIFRyaWNodGVyLCBVZWJlcnRyYWd1bmcgc3RhcnRlbiwgZmVydGlnLgogQXVmIGRlciBHZWdlbnNlaXRlOiBVZWJlcnRyYWd1bmcgc3RhcnRlbiB1bmQgbmFjaCBCZWVuZGlndW5nIGRhcwogQmllciB1ZWJlciBkZW4gWmFwZmhhaG4gZW50bmVobWVuLgoKCiBMZWlkZXIgaGF0dGUgaWNoIGRhbm4gZWluIFByb2JsZW06IE1pdCBXZWl6ZW4ga2xhcHB0ZSBkaWUgU2FjaGUKVGVpbCVvZXdmazdGJ0FlekhyYEFlQWU/dDNZT2VvZWsKIHRlaWx3ZWlzZSBnZW5hdXNvIGd1dCB3aWUgZGllIFVlYmVydHJhZ3VuZyBkaWVzZXMgVGV4dGVzLgogKEJlaXNwaWVsIHNpZWhlIDIgWmVpbGVuIGhvZWhlci4uLikKCiBNYW5jaG1hbCBnaW5nIGVzIGFsbGVyZGluZ3MgZnVlcmNodGVybGljaCBzY2hpZWYuLi4KCiBEcmF1ZmhpbiBoYWJlIGljaCBzcGV6aWVsbGUgVWViZXJ0cmFndW5nc3Byb3Rva29sbGUgZW50d2lja2VsdC4KICAgICAxLiBoZWxsZXMgV2VpemVuIEtyaXN0YWxsICAoS1doLVByb3Rva29sbCkKICAgICAyLiBoZWxsZXMgV2VpemVuIEhlZmUgICAgICAoSFdoLVByb3Rva29sbCkKICAgICAzLiBkdW5rbGVzIFdlaXplbiBLcmlzdGFsbCAoZFdrLVByb3Rva29sbCkKICAgICA0LiBkdW5rbGVzIFdlaXplbiBIZWZlICAgICAoZFdoLVByb3Rva29sbCkKICgzLiBrb25udGUgbGVpZGVyIG1hbmdlbHMgTWF0ZXJpYWwgbmljaHQgZ2V0ZXN0ZXQgd2VyZGVuLi4uKQoKIE1pdCBub3JtYWxlbiBCaWVyIChQaWxzIG9kZXIgc28pIGdhYiBlcyBhbGxlcmRpbmdzIGZ1ZXJjaHRlcmxpY2hlCiBQcm9ibGVtZToKIEJlaSBub3JtYWxlbSBCaWVyIGthbSAtIGVnYWwsIHdlbGNoZSBNYXJrZSAtIG51ciBXYXNzZXIgYmVpIGRlciBHZWdlbi0KIHN0ZWxsZSBhbi4gQXVzbmFobWU6IEJPRUxLU1RPRkYgKGhpZXIga2FtIHRlaWx3ZWlzZSBhbGxlcyByaWNodGlnIHJ1ZWJlciwKIGFiZXIgYXVjaCBsZWlkZXIgbWFuY2htYWwgTWlsY2ggYW4uLi4pCgogSWNoIHN1Y2hlIGpldHp0IGdhbnogZHJpbmdlbmQgZWluZW4gUHJvZ3JhbW1pZXJlciwgZGVyIG1pciBlaW4gUHJvdG9rb2xsCiB6dXIgUGlscy0gdW5kIEFsdGJpZXItVWViZXJ0cmFndW5nIHNjaHJlaWJ0LiBOYWNoIGRlbSB2aWVsZW4gVGVzdGVuIGJpbgogaWNoIGVpbmZhY2ggenUgZXJzY2hvZXBmdCwgdW0gZGllcyBzZWxic3QgenUgbWFjaGVuLi4uCgogICAgICAgSW4gZGVyIEhvZmZudW5nIGF1ZiBiYWxkaWdlIEFudHdvcnQuCgogICAgICAgICAgICBQcm9zdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpVbmQgZGFubiBrYW0gZGllc2UgQW50d29ydC4uLgoKCiAgICAgICAgICAgICAgICAgICAgICBXZWl6ZW5wcm90b2tvbGwgSUkKCk9mZmVuc2ljaHRsaWNoIGhlcnJzY2hlbiBpbW1lciBub2NoIHJlaWNobGljaCBVbmtsYXJoZWl0ZW4sIHdhcyBkYXMgVWViZXItCnRyYWdlbiB2b24gYWxrb2hvbGlzY2hlbiBHZXRyYWVua2VuIGFuZ2VodC4gRGFoZXIgYW4gZGllc2VyIFN0ZWxsZSBlaW4Ka3VyemVyIEFicmlzcyBkZXIgdGVjaG5pc2NoZW4gQW5mb3JkZXJ1bmdlbiB1bmQgTW9lZ2xpY2hrZWl0ZW4uCgpadW5hZWNoc3QgIGdpYnQgZXMgendlaSBncnVuZHNhZXR6bGljaCB2ZXJzY2hpZWRlbmUgQXJ0ZW4gZGVyIEFsa29ob2wtCnVlYmVydHJhZ3VuZywgZGllc2Ugc2luZCBnZW1hZXNzIGRlciBDQ0lUQSAoQ29tbWl0dGVlIGNvbnN1bHRhdGl2CmludGVybmF0aW9uYWwgZGUgdHJhbnNtaXNzaW9uIGR1IGFsY29ob2wpIEVtcGZlaGx1bmdlbiBCLjIxIGJpcyBCLjIzYmllcgp1bnRlcnRlaWx0IG5hY2ggZGVtIFZvbHVtZW5hbnRlaWwgZGVzIEFsa29ob2xzOgoKICBCLjIxCiAgVGFmZWx3ZWluZSB1bmQgRHVlbm5iaWVyZSBiaXMgMy41ICUKICAoZGFydW50ZXIgZmFsbGVuIGF1Y2ggZGllIHNvZ2VuYW5udGVuICdhbGtvaG9sZnJlaWVuJyBCaWVyZSwgZGllIGFsbGVyLQogICBkaW5ncyBiZXNzZXIgaW0gSGFsYnNjaGx1Y2tzcGVjaHQtQmV0cmllYiBuYWNoIEIuMDhwdXN0IHVlYmVydHJhZ2VuCiAgIHdlcmRlbiBzb2xsdGVuKQoKICBCLjIyCiAgUXVhbGl0YWV0c3dlaW5lIHVuZCBQaWxzZW5lciBiaXMgNS4zICUKICAoaGllcnVudGVyIGZhbGxlbiBhdWNoIGRlciBzb2dlbmFubnRlICdCb2Vsa3N0b2ZmJyB1bmQgQWx0YmllcmUsIHNvd2llCiAgIFNjaGF1bXdlaW5lICkKCiAgQi4yMwogIEFsdC0gdW5kIFdlaXplbmJpZXJlLCBzb3dpZSBDaGFtcGFnbmVyCgogIEIuMjNiaWVyCiAgRnVlciBkZW4gVWViZXJ0cmFndW5nc2JlcmVpY2ggYmlzIDIxICUKICAoZ2VlaWduZXQgZnVlciBhbGxlIEJpZXJhcnRlbiB1bmQgV2VpbmUsIGplZG9jaCBhdXMgdGVjaG5pc2NoZW4gR3J1ZW5kZW4KICAgbmljaHQgZnVlciBTY2hhdW13ZWluZSkKCkF1c3NlcmRlbSBkdWVyZnRlIG5vY2ggZGllIEVtcGZlaGx1bmcgQS4yMiBpbnRlcmVzc2FudCBzZWluLCBkaWUgZnVlcgpVZWJlcnRyYWd1bmdlbiBhYiAyMiAlIGluIGFsbGVuIEFsa29ob2xrbGFzc2VuIGdlZGFjaHQgaXN0LCBzb3dpZSBBLjIyVApmdWVyIHRlY2huaXNjaGUgQWxrb2hvbGUgdW5kIEEuMjJTIGZ1ZXIgU3Bpcml0dXMgdW5kIEhhYXJ3YXNzZXIuCgoKVW5zIGludGVyZXNzaWVydCBpbiBkaWVzZW0gWnVzYW1tZW5oYW5nIGFsc28gZGllIEVtcGZlaGx1bmcgQi4yM2JpZXIsIGRhCndpciBkb3J0IGRpZSBtZWlzdGVuIE1vZWdsaWNoa2VpdGVuIGhhYmVuLCBkYXMgUHJvamVrdCBXZWl6ZW5iaWVydWViZXItCnRyYWd1bmcgenUgcmVhbGlzaWVyZW4uIEIuMjNiaWVyIHNpZWh0IGdydW5kc2FldHpsaWNoIGRpZSBVZWJlcnRyYWd1bmcgaW0KVm9sbHNjaGx1Y2tzcGVjaHR2ZXJmYWhyZW4gdm9yLCBiZWkgZGVtIGJlaWRlIGFuIGRlciBVZWJlcnRyYWd1bmcKYmV0ZWlsaWd0ZW4gU2VpdGVuIGdsZWljaHplaXRpZyBlaW5zY2hlbmtlbiB1bmQgdHJpbmtlbiBrb2VubmVuLgoKV2ljaHRpZyBpc3Qgdm9yIGFsbGVtIGVpbmUga29ycmVrdGUgRWluc3RlbGx1bmcgZGVyIFVlYmVydHJhZ3VuZ3NwYXJhbWV0ZXIsCmJlaSBkZW4gZGVyemVpdCBlcmhhZWx0bGljaGVuIEJpTW9EZW1zIChCaWVyLU1vZHVsYXRvci1EZW1vZHVsYXRvcikgc2luZApsZWlkZXIgbWVpc3QgbnVyIHp3ZWkgRWluc3RlbGx1bmdlbiBtb2VnbGljaDoKCiAgOE4xCiAgRXMgIHdlcmRlbiBnbGVpY2h6ZWl0aWcgYWNodCBHbGFlc2VyIHVlYmVydHJhZ2VuLCBkaWUgRW1wZmFuZ3NnbGFlc2VyCiAgbXVlc3NlbiBnZW5laWd0IHNlaW4sIHVuZCB6d2FyIHVtIDEgbWFsIDE1IEdyYWQsIHp3ZWNrcyBWZXJoaW5kZXJ1bmcKICB2b24gdWViZXJob2VodGVyIFNjaGF1bWJpbGR1bmcuCgogIDdFMgogIEVzIGtvZW5uZW4gbnVyIHNpZWJlbiBHbGFlc2VyIHp1ciBaZWl0IHVlYmVydHJhZ2VuIHdlcmRlbiwgZGllIEdsYWVzZXIKICBkdWVyZmVuIGdlcmFkZSBnZWhhbHRlbiB3ZXJkZW4gKEUgPSBldmVuKSwgb2RlciB1bSAyICogbWFsIDE1ID0gMzAgR3JhZAogIGdlbmVpZ3QsIHdhcyBnZXJhZGUgYmVpIFdlaXplbmJpZXIgZW1wZmVobGVuc3dlcnQgaXN0LgoKRGllIGRpcmVrdGUgVWViZXJ0cmFndW5nIHVlYmVyIGRhcyBUZWxlZm9ubmV0eiBpc3QgYWJlciBudXIgYmVpIGtsZWluZXJlbgpFbnRmZXJudW5nZW4gendpc2NoZW4gZGVuIEdlZ2Vuc3RlbGxlbiBzaW5udm9sbCwgZGEgZXMgYmVpIGxhZW5nZXJlbgpMZWl0dW5nZW4gc2VociBvZnQgdm9ya29tbXQsIGRhc3MgZGFzIEJpZXIgdW50ZXJ3ZWdzIHNjaGFsIG9kZXIgZ2FyIHNhdWVyCndpcmQuIERlc2hhbGIgaGF0IGRpZSBEQlAgKERvcHBlbGJvY2stQmllci1QaWxzKSBiZXJlaXRzIGltIEphaHJlIDE5ODIgZWluCmZhc3NvcmllbnRpZXJ0ZXMgVWViZXJ0cmFndW5nc25ldHogaW4gQmV0cmllYiBnZW5vbW1lbiwgZGFzIGFscyBCQVJFWApiZWthbm50IGlzdC4gQkFSRVggaGVpc3N0ICdiYXJyZWwgZXhjaGFuZ2UnIHVuZCBiZXplaWNobmV0IGRpZSAgQXJ0IGRlcgpVZWJlcnRyYWd1bmcuIEVzIGdpYnQgendlaSBBcnRlbiB2b24gRGllbnN0ZW4sIGRpZSBhbmdlYm90ZW4gd2VyZGVuOgoKICBCQVJFWC1MIGlzdCBkYXMgbGVpdHVuZ3NnZWJ1bmRlbmUgVmVyZmFocmVuLCBiZWkgZGVtIGVpbmUgZmVzdGUgTGVpdHVuZwogIHp3aXNjaGVuIGRlbiBHZWdlbnN0ZWxsZW4gZ2VzY2hhbHRldCB3aXJkLCB3YXMgc2VociBob2hlIFVlYmVydHJhZ3VuZ3MtCiAgZ2VzY2h3aW5kaWdrZWl0ZW4gZXJtb2VnbGljaHQgdW5kIGRhcyBEdXJjaHNpY2tlcm4gYW4gZGVuIFVtc2NoYWx0cHVua3RlbgogIG1pbmltaWVydC4KCiAgQkFSRVgtRiBmdWVsbHQgZGllIHVlYmVyZ2ViZW5lbiBGYWVzc2VyIHp1bmFlY2hzdCBtaXR0ZWxzIGVpbmVzIHNwZXppZWxsZW4KICBSZWNobmVycywgZGVtIEJBRCAoYm90dGxlIGFzc2VtYmxlci9kaXNhc3NlbWJsZXIpIGluIGVpbnplbG5lIEZsYXNjaGVuCiAgYWIsIGRpZSBkYW5uIGluIEtpc3RlbiBhbiBlaW5lbiBCQUQgaW0gT3J0c2JlcmVpY2ggZGVzIEVtcGZhZW5nZXJzCiAgdWViZXJ0cmFnZW4gd2VyZGVuLiBEb3J0IHdlcmRlbiBkaWUgRmxhc2NoZW4gZW50a29ya3QgdW5kIHdpZWRlciB6dQogIGtvbXBsZXR0ZW4gRmFlc3Nlcm4genVzYW1tZW5nZWtpcHB0LiBEYXMgZWlud2FuZGZyZWllIEFiZnVlbGxlbiB1bmQgQXVzLQogIGxlZXJlbiBkZXIgRmxhc2NoZW4gd2lyZCBkdXJjaCBlaW4gU2NoZWNrc3VtbWVudmVyZmFocmVuIGdhcmFudGllcnQsCiAgZC5oLiBkaWUgbWl0IGRlbSBVbWZ1ZWxsZW4gQmVzY2hhZWZ0aWd0ZW4gZXJoYWx0ZW4gZGVyYXJ0IGhvaGUgU2NoZWNrcywKICBkYXNzIHNpZSB3aXJrbGljaCBuaWNodCBtZWhyIGRhcmF1ZiBhbmdld2llc2VuIHNpbmQsIGZyZW1kZSBGbGFzY2hlbiB6dQogIHRyaW5rZW4uIFN0b2VydW5nZW4sIHdpZSBzaWUgaW4gZGVyIEVpbmZ1ZWhydW5nc3BoYXNlIHp1IHZlcnplaWNobmVuCiAgd2FyZW4gKE1hbiBlcmlubmVyZSBzaWNoIG51ciBhbiBkaWUgZ2VmdWVyY2h0ZXRlIEZlaGxlcm1lbGR1bmcgJ0JBUkVYLUY6CiAgVm9ydWViZXJnZWhlbmRlICBUcnVlYnVuZyAgaW0gIEdsYXMnKSwgZ2Vob2VyZW4gc2VpdCBFaW5mdWVocnVuZyB2b24KICBCSUdGT04gZGVyIFZlcmdhbmdlbmhlaXQgYW4uCgogIEJJR0ZPTiBpc3QgZGFzIEJpZXJlLWludGVncmllcmVuZGUgR2xhc2Zhc2VsLU9ydHNuZXR6IHVuZCBsb2VzdCBiaXMKICB6dW0gVWViZXJnYW5nIGF1ZiBJU0ROIChJbnRlcm5hdGlvbmFsZXMgU2F1ZkRpZW5zdC1OZXR6KSBkaWUgaGVya29lbW0tCiAgbGljaGVuIEt1cGZlcmxlaXR1bmdlbiBhYi4KCk5hY2ggZGllc2VtIGt1cnplbiBVZWJlcmJsaWNrIHVlYmVyIGRpZSBuZXR6YWJoYWVuZ2lnZSBTZWl0ZSB3ZW5kZW4gd2lyIHVucwpub2NoIGt1cnogZGVyIHByYWt0aXNjaGVuIFNlaXRlIHp1LgoKV2lyICBzZXR6ZW4gdm9yYXVzLCBkYXNzIGhhcmR3YXJlc2VpdGlnIG1pbmRlc3RlbnMgZWluIEFUIChBbHRiaWVyLVRlY2huaWspCm1pdCA2NDBrQiBIYXVwdHNwZWljaGVyIChrQiA9IGtsZWluZSBCaWVyZSwgMSBrQiBlbnRzcHJpY2h0IDAuMiBMaXRlciwKbWl0aGluIGhhdCBlaW4gQVQgZWluIEZBU1N1bmdzdmVybW9lZ2VuIHZvbiBydW5kIDEyOCBMaXRlcm4pLiBCZXNzZXIgaXN0Cm5hdHVlcmxpY2ggZWluIGdyb2Vzc2VyZXIgSGF1cHRzcGVpY2hlciwgZGllc2VyIHNvbGx0ZSBkYW5uIGFiZXIgdW50ZXIgRU1TCmFyYmVpdGVuIGtvZW5uZW4gKEVNUzogZXVyb3BhZWlzY2hlciBNYWx6YmllciBTdGFuZGFyZCksIGluc2Jlc29uZGVyZSB3ZW5uCmF1Y2ggS2luZGVyIFp1Z2FuZyB6dW0gUmVjaG5lciBoYWJlbiAoS2VubnRuaXMgdm9uIFRyaW5rZXJuYW1lIHVuZCBGYXNzd29ydAp2b3JhdXNnZXNldHp0KS4gRW1wZmVobGVuc3dlcnQgc2luZCAyIE1CIFJBQiAoUkFCOiBSYW5kb20gYWNjZXNzIGJhcnJlbCA9CkZhc3MgbWl0IHdhaGxmcmVpZW0gWnVncmlmZikuCgpBdXNzZXJkZW0gbXVzcyBkZXIgUmVjaG5lciB2b20gWlpGIChaZW50cmFsYW10IGZ1ZXIgWnVsYXNzdW5nZW4gaW0gRmFzcy0Kd2VzZW4pIHp1Z2VsYXNzZW4gc2Vpbi4gRGFzIGVya2VubnQgbWFuIGluIGRlciBSZWdlbCBhbiBlaW5lbSBrbGVpbmVtCk1ldGFsbHNjaGlsZCBhbiBkZXIgU2Nobml0dHN0ZWxsZSAoWmFwZmhhaG4pLCBhdWYgZGVtIGRpZSB6dWdlbGFzc2VuZW4KQmllcnNvcnRlbiB2ZXJtZXJrdCBzaW5kLiBEaWVzZSBTY2hpbGRlciBoYXQgd29obCBqZWRlciBzY2hvbiBlaW5tYWwgYW4gZGVyClNjaG5pdHRzdGVsbGUgZWluZXMgb2VmZmVudGxpY2hlbiBUZXJtaW5hbHMgKGt1cnogS25laXBlIGdlbmFubnQpIGJlbWVya3Q6CidFcmRpbmdlciBXZWlzc2JpZXInLCAnRGllYmVscyBBbHQnLCBldGMuLi4KCkJlaSBuaWNodCB6dWdlbGFzc2VuZW4gUmVjaG5lcm4sIHNvIHdpcmQgamVkZW5mYWxscyB2b24gU2VpdGVuIGRlciBEQlAKaW1tZXIgd2llZGVyIGFyZ3VtZW50aWVydCwgYmVzdGVodCBkaWUgYWt1dGUgR2VmYWhyLCBkYXNzIFZlcnVucmVpbmlndW5nZW4Kd2llIE1pbGNoIG9kZXIgZ2FyIFdhc3NlciBkYXMgTmV0eiBiZWVpbnRyYWVjaHRpZ2VuLgoKU2luZCBkaWVzZSBWb3JhdXNzZXR6dW5nZW4gZXJmdWVsbHQsIGJlbm9ldGlndCBtYW4gbnVyIG5vY2ggZWluIHBhc3NlbmRlcwpQcm9ncmFtbSB6dXIgVWViZXJ0cmFndW5nLiBFbXBmZWhsZW5zd2VydCBzaW5kIGRhYmVpIGFsbGUgUHJvZHVrdGUsIGRpZQplaW5lIGdlc2ljaGVydGUgVWViZXJ0cmFndW5nIGVybW9lZ2xpY2hlbi4gQXVmIGRlbSBNUy1HT1MtU2VrdG9yCihNdWx0aXNwaXJpdHVvc2VuLUdsYXMtT3BlcmF0aW9uc3N5c3RlbSkgc2luZCBkYXMgenVtIEJlaXNwaWVsIFBST0ZPTU0KKFBST2Zlc3Npb25lbGxlcyBGbGFzY2hlbi1PZWZmbnVuZ3MtIHVuZCBNaXNjaC0gTW9kdWwpIHVuZCBURUxISUNLUy4gQmVpZGUKdW50ZXJzdHVldHplbiB1bnRlciBhbmRlcmVtIFByb3Rva29sbGUgd2llIEctTW9kZW0gKGdsYXN3ZWlzZXMgVWViZXJ0cmFnZW4KbWl0IHp5a2xpc2NoZW0gU2NoYXVtY2hlY2spLCBGLU1vZGVtIChmbGFzY2hlbndlaXNlcyBVZWJlcnRyYWdlbiBtaXQgUGZhbmQpCnVuZCBGLU1vZGVtIGJveCAoa2FzdGVuLSBvcmllbnRpZXJ0ZXMgRmxhc2NoZW51ZWJlcnRyYWd1bmdzc3lzdGVtIG1pdAp3YWhsd2Vpc2UgMTIgb2RlciAyNCBGbGFzY2hlbikuCgpXZXIgdHJvdHogZGllc2VyIHNlaHIgZW1wZmVobGVuc3dlcnRlbiB1bmQgcHJlaXN3ZXJ0ZW4gUHJvZHVrdGUgbGllYmVyIGF1ZgpzZWxic3QgUHJvZ3JhbW1pZXJ0ZXMgenVydWVja2dyZWlmZW4gd2lsbCwgc29sbHRlIHNpY2ggc2VociBnZW5hdSBtaXQgZGVtCkJlZnVlbGxzeXN0ZW0gc2VpbmVzIFJlY2huZXJzIGF1c2tlbm5lbi4gTWl0IHNjaGxpY2h0ZW4gSGlja3MgdW5kIEhvY2tzLAp3aWUgc2llIGluIEJBU0lDIChiZWdpbm5lcnMgYWxjb2hvbGljIHN0dWZmIGluc3RydWN0aW9uIGNvZGUpICBtb2VnbGljaApzaW5kLCBrb21tdCBtYW4gbWVpc3QgbmljaHQgd2VpdC4gR3J1bmRzYWV0emxpY2ggZ2lsdCBmdWVyIGFsbGUgSG9jaC0Kc3ByYWNoZW46IFp1bmFlY2hzdCB3aXJkIG1pdCBBU1NJR04gZWluZSBCaWVyc29ydGUgZWluZW0gR2xhcyB6dWdld2llc2VuLgpEYW5hY2ggKCEpIGthbm4gZGllIFNjaG5pdHRzdGVsbGUgbWl0IEZJTEwgZ2VvZWZmbmV0IHdlcmRlbiwgc29mZXJuIGVzIHNpY2gKdW0gZGVuIGVyc3RlbiBadWdyaWZmIGhhbmRlbHQuIFp1bSBOYWNoc2NoZW5rZW4gb2VmZm5ldCBtYW4gc2VsYnN0dmVyLQpzdGFlbmRsaWNoIG1pdCBSRUZJTEwuIE1hbiBzb2xsdGUgbmF0dWVybGljaCBuaWNodCB2ZXJnZXNzZW4sIG5hY2ggZGVtCkVpbnNjaGVua2VuIGRpZSBTY2huaXR0c3RlbGxlIHdpZWRlciB6dSBzY2hsaWVzc2VuLCBiZXZvciBlcyB6dSBlaW5lbQpEcm9wb3V0IGtvbW10LiBCZWkgZ3JvZXNzZXJlbiBnZXNlbGxzY2hhZnRsaWNoZW4gQW5sYWVzc2VuIGlzdCBkaWUKQW5zY2hhZmZ1bmcgZWluZXMgU3RyZWFtZXJzIHJhdHNhbSwgZGEgbnVyIGRhbWl0IGRpZSBCaWVyc3Ryb2VtZSBoYWxid2Vncwp2ZXJudWVuZnRpZyBnZXNpY2hlcnQgd2VyZGVuIGtvZW5uZW4uIERhcyBzdGFlbmRpZ2UgRmxhc2NoZW53ZWNoc2VsbiB3aXJkCmVpbmVtIHNvbnN0IHNjaG5lbGwgenV2aWVsLCBzZWxic3Qgd2VubiBtYW4gZGllIG1vZGVybmVuIDMuNS1MaXRlciBGbGFzY2hlbgp2ZXJ3ZW5kZXQuCgpEZXIgVm9sbHN0YWVuZGlna2VpdCBoYWxiZXIgaGllciBlaW4ga3VyemVzIFByb2dyYW1tIGluIFBhc2NhbCwgd2VsY2hlcyBkaWUKZ3J1bmRzYWV0emxpY2hlIFZvcmdlaGVuc3dlaXNlIHZlcmFuc2NoYXVsaWNodC4gRGllcyBpc3Qga2VpbiBEZW1vcHJvZ3JhbW0sCmRhIGRhcyBoaWVzaWdlIE9yZG51bmdzYW10IGtlaW5lIEdlbmVobWlndW5nIGRhZnVlciBlcnRlaWx0IGhhdCEKCiAgUFJPR1JBTSBXZWl6ZW5iaWVyOwoKICBDT05TVCAgV2VpemVuICAgICAgICA9IDAgOwogICAgICAgICBIZWZld2VpemVuICAgID0gMSA7CiAgICAgICAgIEV4cG9ydCAgICAgICAgPSAyIDsKICAgICAgICAgUGlscyAgICAgICAgICA9IDMgOwogICAgICAgICBBbHQgICAgICAgICAgID0gNCA7CiAgICAgICAgIEJvY2sgICAgICAgICAgPSA1IDsKICAgICAgICAgVXJib2NrICAgICAgICA9IDYgOwogICAgICAgICBNYWlib2NrICAgICAgID0gNyA7CiAgICAgICAgIEZlc3Rib2NrICAgICAgPSA4IDsKICAgICAgICAgS2VpbmJvY2sgICAgICA9IDkgOwogICAgICAgICBEb3BwZWxib2NrICAgID0xMCA7CiAgICAgICAgIG51ZWNodGVybiAgICAgPSAwIDsKCiAgVFlQRSAgIGNjbSAgICAgICAgICAgPSBGbHVlc3NpZ2tlaXQgOwogICAgICAgICBrbGVpbmVzX0JpZXIgID0gQVJSQVkgQWUwLi4yMDBVZSBPRiBjY20gOwogICAgICAgICBncm9zc2VzX0JpZXIgID0gQVJSQVkgQWUyMDEuLjUwMFVlIE9GIGNjbSA7CiAgICAgICAgIFN0aWVmZWwgICAgICAgPSBBUlJBWSBBZTUwMS4uNDUwMFVlIE9GIGNjbSA7CiAgICAgICAgIGtvcm4gICAgICAgICAgPSBBUlJBWSBBZTAuLjIwVWUgT0YgY2NtIDsKCiAgVkFSICAgIGxlZXIgICAgICAgICAgOiBCT09MRUFOIDsKICAgICAgICAgdm9sbCAgICAgICAgICA6IEJPT0xFQU4gOwogICAgICAgICBwcm9taWxsZSAgICAgIDogSU5URUdFUiA7CiAgICAgICAgIGx1ZXR0ICAgICAgICAgOiBrbGVpbmVzX0JpZXIgOwogICAgICAgICBoYWxiZXIgICAgICAgIDogZ3Jvc3Nlc19CaWVyIDsKICAgICAgICAgdW5kX2x1ZXR0ICAgICA6IGtvcm4gOwogICAgICAgICBiZXN0ZWxsdCAgICAgIDogaW50ZWdlciA7CgogIEZVTkNUSU9OIHB1c3RlbiA6IGludGVnZXIgOwogIEVYVEVSTkFMIDsKCiAgRlVOQ1RJT04gcmVjZWl2ZWQgOiBib29sZWFuIDsKICBFWFRFUk5BTCA7CgogIEZVTkNUSU9OIEJpZXJfZmVydGlnICh3ZWxjaGVzOmludGVnZXIpIDogYm9vbGVhbiA7CiAgRVhURVJOQUwgOwoKICBQUk9DRURVUkUgZWluc2NoZW5rZW4gKHdlbGNoZXM6aW50ZWdlcikgOwogIEVYVEVSTkFMIDsKCiAgUFJPQ0VEVVJFIHdhcnRlbiAod2llbGFuZ2UgOiBnZWR1bGRpZykgOwogIEVYVEVSTkFMIDsKCiAgUFJPQ0VEVVJFIGF1c3RyaW5rZW4gKHdlbGNoZXM6aW50ZWdlcikgOwogIEVYVEVSTkFMIDsKCiAgQkVHSU4KICAgIFJFUEVBVAogICAgICB3cml0ZSgnV2VsY2hlIFNvcnRlICgwLi4xMCk6ICcpIDsKICAgICAgcmVhZGxuKGJlc3RlbGx0KQogICAgVU5USUwgYmVzdGVsbHQgSU4gQWVXZWl6ZW4uLkRvcHBlbGJvY2tVZSA7CiAgICBSRVBFQVQKICAgICAgUkVQRUFUIHdhcnRlbiBVTlRJTCByZWNlaXZlZCA7CiAgICAgIFJFUEVBVAogICAgICAgIGVpbnNjaGVua2VuIDsKICAgICAgICB3YXJ0ZW4KICAgICAgVU5USUwgQmllcl9mZXJ0aWcoYmVzdGVsbHQpIDsKICAgICAgYXVzdHJpbmtlbihiZXN0ZWxsdCkKICAgIFVOVElMIHB1c3RlbiA+PSAwLjgKICBFTkQuCgpEaWUgZXh0ZXJuIGRla2xhcmllcnRlbiBQcm96ZWR1cmVuIHN0YW1tZW4gYXVzIGRlbSBXZWl6ZW5iaWVydHJlaWJlcgpoZWZlQkFTRSBJVisgdm9uIEVyc3RvbiBEcmluay4KTmF0dWVybGljaCBtdXNzIGRhcyBQcm9ncmFtbSwgdW0gd2lya2xpY2ggZWlud2FuZGZyZWkgenUgZnVua3Rpb25pZXJlbiwKbm9jaCB1bSBkaWUgdWVibGljaGVuIEZlaGxlcnJvdXRpbmVuIGVyd2VpdGVydCB3ZXJkZW4uIERhenUgbWFnIGRpZQpmb2xnZW5kZSBMaXN0ZSBkZXIgRmVobGVybWVsZHVuZ2VuIGhpbGZyZWljaCBzZWluOgoKICBDb2RlICAgICAgICAgICAgIEJlZGV1dHVuZwoKICAwICAgICAgICAgICAgICAgIGdsYXNzIGVtcHR5CiAgMSAgICAgICAgICAgICAgICBnbGFzcyBicm9rZW4KICAyICAgICAgICAgICAgICAgIGdsYXNzIG5vdCByZWFkeQogIDMgICAgICAgICAgICAgICAgdG9vIG1hbnkgZ2xhc3NlcwogIDQgICAgICAgICAgICAgICAgdG9vIG11Y2ggdmluZQogIDUgICAgICAgICAgICAgICAgdG9vIG11Y2ggc29uZwogIDYgICAgICAgICAgICAgICAgdG9vIHRvb3QuLi4KICA3ICAgICAgICAgICAgICAgIG5vIGNhcnJpZXIKICA4ICAgICAgICAgICAgICAgIG5vIGNhcnJlZXIKICA5ICAgICAgICAgICAgICAgIG91dCBvZiBib3R0bGVzCiAgQSAgICAgICAgICAgICAgICBwdXQgaWNlIGludG8gZ2xhc3MgQToKICBCICAgICAgICAgICAgICAgIHN0cmF3IGJlbmQKICBDICAgICAgICAgICAgICAgIHNoYWtlIHdlbGwgYmVmb3JlIHVzZQogIEQgICAgICAgICAgICAgICAgc2hha2UsIHJoeXRobSAmIHJvbGwKICBFICAgICAgICAgICAgICAgIHN5bnRoaWNrcyBlcnJvciBhZnRlciBnbGFzcyBubm4KICBGICAgICAgICAgICAgICAgIG91dCBvZiBqb2tlcwoKCgoKQmV0cmVmZiA6IHdlaXplbmJpZXJ1ZWJlcnRyYWd1bmdzcHJvdG9rb2xsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCkhhbGxvLAoKa2VpbiBXdW5kZXIsZGFzcyBEdSBQcm9ibGVtZSBrcmllZ3N0IQoKQi4yMyBpc3QgendhciBmdWVyIGRhcyBEb3BwZWxzY2hsdWNrc3BlY2h0dmVyZmFocmVuIChEU1MpCmdlZGFjaHQsYWxsZXJkaW5ncyBrYW5uIG5pY2h0LHdpZSB2b24gRGlyCmdlc2NoaWxkZXJ0LGdsZWljaHplaXRpZyBiaWRpcmVrdGlvbmFsIFdlaXNzYmllcgp1ZWJlcnRyYWdlbiB3ZXJkZW4sc29uZGVybiBudXIgaW4gZGllIGVpbmUgUmljaHR1bmcKV2Vpc3NiaWVyLHdhZWhyZW5kIG1hbiBpbiBkaWUgYW5kZXJlIFJpY2h0dW5nIG51ciBEdWVubmJpZXIKdWViZXJ0cmFnZW4ga2Fubi4KCkljaCBoYWJlIGRpZSBiZXN0ZW4gRXJmYWhydW5nZW4gbWl0IFdOUCAoV2Vpc3NiaWVyCk5ldHdvcmtpbmcgUHJvdG9jb2xsKSxkYXMgdm9uIE1pY3JvaG9wZiBsaXplbnNpZXJ0CmlzdCxnZW1hY2h0LHVuZCB6d2FyIG5hdHVlcmxpY2ggbWl0IFN0dWZlIDkgKGJpcyA2MCUKRFNTKSxkb2NoIGF1Y2ggV05QIDUgKGJpcyAyMSUgRFNTKSBrYW5uIHNpY2ggc2VoZW4KbGFzc2VuLkRpZSBXTlAncyBhYiBTdHVmZSA1IGVyaG9laGVuIGF1c3NlcmRlbSBub2NoIGRlbgpEcnVjayBpbiBkZXIgTGVpdHVuZyxzbyBkYXNzIGRlciBCaWVyZHVyY2hzYXR6IG5vY2gKZ2VzdGVpZ2VydCB3ZXJkZW4ga2Fubi4KCkluIGxldHp0ZXIgWmVpdCBzZXR6dCBzaWNoLGJlc29uZGVycyBpbiBCQlNlbiAoQmVlciBCYXJyZWwKU3lzdGVtcykgaW1tZXIgbWVociBlaW4gR2VyYWV0IG5hbWVucyBIU1QKKEhvcGZlblNjaG5lbGxUcmlua2VyKSBkdXJjaC5EaWVzZXMgUHJvdG9rb2xsLGVudHdpY2tlbHQKdm9uIGRlciBCcmF1ZXJlaWZhY2hzY2h1bGUgRnJlaXNpbmcsIGVybW9lZ2xpY2h0IHdhaGx3ZWlzZQpaZWNoc2Vzc2lvbnMgbmFjaCBCLjMyL0IuMzJiaWVyIChzaWVoZSB1bnRlbiksdW5kIGF1Y2ggbmFjaApkZXIgSFNULU5vcm07aGllcmJlaSBrYW5uIGluIGVpbmUgUmljaHR1bmcgQWxrb2hvbCBiaXMgenUKMTAwJSB1ZWJlcnRyYWdlbiB3ZXJkZW47YWxsZXJkaW5ncyBrYW5uIGRpZSBHZWdlbnNlaXRlCndpZWRlcnVtIG51ciBEdWVubmJpZXIgc2NodWV0dGVuLgoKRGllIFp1a3VuZnQgZ2Vob2VydCBqZWRvY2ggbWVpbmVyIE1laW51bmcgbmFjaCBkZW0KQi40MixkYXNzIERTUy1VZWJlcnRyYWd1bmdlbiBiaXMgenUgMTAwJQplcm1vZ2VsaWNodC5CZXNvbmRlcnMgbGVpc3R1bmdzZmFlaGlnIHdpcmQgZGllCkFuZ2VsZWdlbmhlaXQgZGFubiwgd2VubiBtYW4gbm9jaCBkaWUgQi40MmJpZXIKRHJ1Y2tlcmhvZWh1bmcgdmVyd2VuZGV0LGRpZSBhbmdlYmxpY2ggS29wcmVzc2lvbiBiaXMgenUKNDoxIGVybW9lZ2xpY2h0IChkaWVzIGdlaHQgamVkb2NoIG51ciBiZWkgaGVmZWZyZWllbgpBbGtvaG9saWthKS4KCgpOYXR1ZXJsaWNoIHdpcmQgYXVjaCBlaW5lIGxlaXN0dW5nc2ZhZWhpZ2UgU29mdHdhcmUKYmVvZXRpZ3Q7ZnVlciBkZW4gSUJNIGlzdCBkaWVzIHouQi4gRmFzcy1EZWNrZWwsYWJnZWt1ZXJ6dApGRC5XaWxsIG1hbiBlaW4gQmVlciBCYXJyZWwgU3lzdGVtIGJldHJlaWJlbiwgYnJhdWNodCBtYW4Kei5CLiBSQkJTIChSb3R3ZWluIEJlZXIgQmFycmVsIFN5c3RlbSkgb2RlciBSQSAoUmVhbApBbGNvaG9sKS5BdWNoIGFuIGRpZSBNYXNzZW5zcGVpY2hlciB3ZXJkZW4gaG9oZQpBbmZvcmRlcnVuZ2VuIGdlc3RlbGx0OldhZWhyZW5kIGJlaSBkZW4gQjIxLTIzLVByb3Rva29sbGVuCm1hbiBub2NoIGRpcmVrdCB2b20gWmFwZmhhaG4gd2VnIGtvbnN1bWllcmVuIGthbm4sc29sbHRlCm1hbiBiZWkgV05QIDEtNSB1ZWJlciBtaW5kZXN0ZW5zIDVsLGJlaSBXTlAgNi04IHVlYmVyCm1pbmRlc3RlbnMgMTBsLGJlaSBXTlAgOSB1bmQgSFNUIHVlYmVyIG1pbmQuIDE1IExpdGVyIHVuZApiZWkgQi40MiB1ZWJlciAyMCBMaXRlciB2ZXJmdWVnZW4gKEIuNDJiaWVyIGVyaG9laHQKbmF0dWVybGljaCBub2NoIGRlbiBiZW5vZXRpZ3RlbiBMYWdlcnBsYXR6LHNvbGFuZ2UgbWFuIGRpZQpBbGtvaG9saWthIG5pY2h0IGluIGtvbXBpcmltaWVydGVyIEZvcm0gbGFnZXJ0LikKCgoKQmVpIEZyYWdlbiBzdGVoZSBpY2ggdm9sbGtvbW1lbiBibGF1IHp1ciBWZXJmdWVndW5nICEKCgpTaWRvbGluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBoYWIgaWNoIG5vY2ggYXVmIG1laW5lciBGZXN0cGxhdHRlIGdlZnVuZGVuLiA6LSkgKFNpZG9saW4sIDI4LiBKYW4gMTk5NywgMTE6Mzc6MjEpOgp+IyEgcm49U2lkb2xpbiBydD04NTQ0NDc3MDEgcmc9d2l0emUKfiMhIHRpZD04NTQ0NDc3MDEKS0xhciwgZGFzIGljaCBkYXMgZ2VrbGF1dCBoYWJlLi4uCkZyYWd0IG1pY2ggYWxzbyBuaWNodCwgd2llcyBmdW5rdGlvbmllcnQuIDotKQoKU2lkb2xpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ0xJTlRPTiAoU2lkb2xpbiwgMjguIEphbiAxOTk3LCAxMjowNjoxMSk6Ck5vY2ggd2FzIGdla2xhdXRlczoKCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbGwgQ2xpbnRvbiBTdGF0dWUgQ29tbWl0dGVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXR0bGUgUm9jaywgQXJrYW5zYXMKIAogRGVhciBGcmllbmQgYW5kIEZlbGxvdyBWb3RlcjoKIAogV2UgaGF2ZSB0aGUgZGlzdGluZ3Vpc2hlZCBob25vciBvZiBiZWluZyBvbiB0aGUgY29tbWl0dGVlIHRvIHJhaXNlIEZpdmUKIE1pbGxpb24gRG9sbGFycyB0byBwbGFjZSBhIHN0YXR1ZSBvZiBCaWxsIENsaW50b24gaW4gdGhlIEhhbGwgb2YgRmFtZSBpbgogV2FzaGluZ3RvbiwgRC5DLgogCiBUaGlzIGNvbW1pdHRlZSB3YXMgaW4gYSBxdWFuZHJ5IGFzIHRvIHdoZXJlIHRvIHBsYWNlIHRoZSBzdGF0dWUuICBJdCB3YXMKIGRlY2lkZWQgaXQgd291bGQgbm90IGJlIHdpc2UgdG8gcGxhY2UgaXQgYmVzaWRlIHRoZSBzdGF0dWUgb2YgR2VvcmdlCiBXYXNoaW5ndG9uLCB3aG8gbmV2ZXIgdG9sZCBhIGxpZSwgbm9yIGJlc2lkZSBKZXNzZSBKYWNrc29uLCB3aG8gbmV2ZXIKIHRvbGQgdGhlIHRydXRoLCBiZWNhdXNlIEJpbGwgQ2xpbnRvbiBjb3VsZCBuZXZlciB0ZWxsIHRoZSBkaWZmZXJlbmNlLgogV2UgZmluYWxseSBkZWNpZGVkIHRvIHBsYWNlIGl0IGJlc2lkZSBDaHJpc3RvcGhlciBDb2x1bWJ1cywgdGhlIGdyZWF0ZXN0CiBEZW1vY3JhdCBvZiBhbGwgdGltZS4gIEhlIGxlZnQgaG9tZSBub3Qga25vd2luZyB3aGVyZSBoZSB3YXMgZ29pbmcsIGFuZAogdXBvbiBhcnJpdmluZyBhdCBhIGRlc3RpbmF0aW9uLCBoYWQgbm8gaWRlYSB3aGVyZSBoZSB3YXMuICBXaGVuIGhlIGdvdAogaG9tZSwgaGUgZGlkIG5vdCBrbm93IHdoZXJlIGhlIGhhZCBiZWVuLCBhbmQgaGUgZGlkIGl0IGFsbCBvbiBzb21lb25lCiBlbHNlJ3MgbW9uZXkuCiAKIE92ZXIgZml2ZSB0aG91c2FuZCB5ZWFycyBhZ28sIE1vc2VzIHNhaWQgdG8gdGhlIGNoaWxkcmVuIG9mIElzcmFlbCwKICJQaWNrIHVwIHlvdXIgc2hvdmVscywgbW91bnQgeW91ciBhc3NlcywgbG9hZCB5b3VyIGNhbWVscywgYW5kIEkgd2lsbAogbGVhZCB5b3UgdG8gdGhlIHByb21pc2VkIGxhbmQiLiBBbG1vc3QgZml2ZSB0aG91c2FuZCB5ZWFycyBsYXRlciwKIFJvb3NldmVsdCBzYWlkLCAiTGF5IGRvd24geW91ciBzaG92ZWxzLCBzaXQgb24geW91ciBhc3NlcywgbGlnaHQgdXAgYQogY2FtZWwsIHRoaXMgaXMgdGhlIHByb21pc2VkIGxhbmQiLiBOb3csIEJpbGwgQ2xpbnRvbiBpcyBnb2luZyB0byBzdGVhbAogeW91ciBzaG92ZWxzLCBraWNrIHlvdXIgYXNzZXMsIHJhaXNlIHRoZSBwcmljZSBvZiBDYW1lbHMsIGFuZCBtb3J0Z2FnZQogdGhlIHByb21pc2VkIGxhbmQuCiAKIElmIHlvdSBhcmUgb25lIG9mIHRoZSBmb3J0dW5hdGUgcGVvcGxlIHdobyBoYXZlIGFueXRoaW5nIGxlZnQgYWZ0ZXIKIHBheWluZyB5b3VyIHRheGVzLCB3ZSB3aWxsIGV4cGVjdCBhIGdlbmVyb3VzIGRvbmF0aW9uIGZyb20geW91ciBmb3IgdGhpcwogd29ydGh3aGlsZSBwcm9qZWN0LgogCiBGcmF0ZXJuYWxseSwKIAogCiBKb2huIFBhdWwgSm9uZXMKIENoYWlybWFuLCBCaWxsIENsaW50b24gU3RhdHVlIENvbW1pdHRlZQogCiBQLlMuIEl0IGlzIHJ1bW9yZWQgdGhhdCBCaWxsIENsaW50b24gaXMgY29uc2lkZXJpbmcgY2hhbmdpbmcgdGhlCiBkZW1vY3JhdGljIHBhcnR5IGVtYmxlbSBmcm9tIHRoZSBkb25rZXkgdG8gYSBjb25kb20gYmVjYXVzZSBpdCBzdGFuZHMKIGZvciBpbmZsYXRpb24sIHByb3RlY3RzIGEgYnVuY2ggb2YgcHJpY2tzLCBoYWx0cyBwcm9kdWN0aW9uLCBhbmQgZ2l2ZXMKIG9uZSBhIGZhbHNlIHNlbnNlIG9mIHNlY3VyaXR5IHdoaWxlIGJlaW5nIHNjcmV3ZWQuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRlciB3ZWlzIGF1Y2ggbmljaHQgd2FzIGVyIHdpbGwgKFdvYSwgMjguIEphbiAxOTk3LCAxMzoyODo0OCk6CkRpZSBBbmdzdCBpc3Qgc3RhZXJrZXIgYWxzIER1IC4uLiBEdSB3aWxsc3QgbnVyIG5vY2ggd2VnIGhpZXIuCkVpbiBBcG90aGVrZXIgaXN0IGpldHp0IGhpbnRlciBEaXIgaGVyLgpEZXIgQXBvdGhla2VyIE1pbmcgdmVybmVpZ3Qgc2ljaCB1bmQgc2FndDogQmVlbGhlbiBTaWUgdW5zIGJhbGQgd2llZGVsLgouLi4Kd29hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYW1vdXMgTGFzdCBXb3JkcywgZGllIHp3ZWl0ZSAoQ2F1bm8sIDI4LiBKYW4gMTk5NywgMTU6MDA6MzUpOgpEZXIgaXN0IHp3YXIgZ2VrbGF1dCwgdW5kIHNpY2hlciB3ZWlzcyBhdWNoIGplZGVyIHZvbiB3bywgYWJlciBkZXIgcGFzc3QKZ2VuYXVzb2d1dCBpbiBlaW5lIFJQRy1TaXR6dW5nOgoKUEMgMTogSWNoIHNjaG5laWQnIGRlcm4gcm90ZW4gZHVyY2guClBDIDI6IFVuZCB3ZW5uIGRlciBlcyBuaWNodCBpc3Q/ClBDIDE6IE5hLCBkYW5uIHNjaG5laWRlIGljaCBoYWx0IGRlbiBibGF1ZW4gZHVyY2ghClBDIDI6IFVuZCB3ZW5uIERBUyBkZXIgZmFsc2NoZSBpc3Q/ClBDIDE6IERhbm4gbmVobWUgaWNoIGViZW4gZG9jaCBkZW4gcm90ZW4uCgpBbm1lcmt1bmc6CiJMZWFybmluZyBieSBkb2luZyIgaXN0IHdvaGwgZG9jaCBrZWluZSBndXRlIElkZWUsIHdlbm4gZXMgdW0KJ0RlbW9saXRpb24nLVNraWxsIGdlaHQgLi4uCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2FtZW1hc3RlcnMgSGVscCwgUGFydCBPbmUgKENhdW5vLCAyOC4gSmFuIDE5OTcsIDE1OjA5OjUyKToKRnJhZ2U6IFdpZSBoYWx0ZSBpY2ggbWVpbmUgR3J1cHBlIGRhdm9uIGFiLCBlaW5lbiBXZWcgenUgZ2VoZW4sIGRlbiBzaWUgbmljaHQKZ2VoZW4gc29sbGVuPwoKQW50d29ydGVuOgogIGEpIERhcyBnZWh0IG5pY2h0LCBkYSBpc3QgZGllIEthcnRlIHp1IEVuZGUuCiAgYikgRGFzIGdlaHQgbmljaHQsIGRhIGlzdCBkaWUgTGFuZHNjaGFmdCB6dSBFbmRlLgogICAgIChTb2xsIGhlaXNzZW46IEVpbmUgU2NobHVjaHQgaXN0IGltIFdlZykKICBjKSBEYXMgZ2VodCBuaWNodCwgZGEgaXN0IGRlciBXZWcgenUgRW5kZS4KICAgICAoU29sbCBoZWlzc2VuOiBFaW4gQmVyZyBpc3QgaW0gV2VnKQogIGQpIEV1ZXIgQmVuemluIGlzdCBhbSBFbmRlLiAvIEV1cmUgUGZlcmRlIHNpbmQgYW0gRW5kZS4KICBlKSBEaWUgJ3N1YnRpbGUnIE1ldGhvZGU6CiAgICAgRWluIFRydXBwIFNvbGRhdGVuIGVyc2NoZWludCwgcHJhZXNlbnRpZXJ0IGRhcyBHZXdlaHIsIGRlciBBbmZ1ZWhyZXIKICAgICBtZWludDogVHV0IG1pciBsZWlkLCBkaWVzZXIgV2VnIGlzdCBnZXNwZXJydC4KICBmKSBEaWUgJ2ZyZWl3aWxsaWdlJyBNZXRob2RlOgogICAgIFNvZWJlbiBrb21tdCBlaW4gRHJhY2hlIHVtIGRpZSBFY2tlIHNwYXppZXJ0LgogICAgIFdvaGluIHdvbGx0ZXQgaWhyIG5vY2htYWwgZ2VoZW4/CgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2FtZW1hc3RlcidzIEhlbHAsIFBhcnQgVHdvIChDYXVubywgMjguIEphbiAxOTk3LCAxNToyNDoxOCk6CkZyYWdlOiBXaWUgdmVyd2lja2xlIGljaCBtZWluZSBHcnVwcGUgaW4gZWluZW0gS2FtcGY/CgpTaXR1YXRpb246CklociBrb21tdCBhdXMgZGVtIFJlc3RhdXJhbnQvR2VzY2hhZWZ0L0J1ZXJvLy4uLgpWb3IgZXVjaCBzdGVodCBlaW5lIEdydXBwZSB2b24gUm9ja2Vybi9CaWtlcm4vU29lbGRuZXJuIGdlbWlzY2h0ZW4KR2VzY2hsZWNodGVzLiBFaW5lIGRlciBGcmF1ZW4vTWFlbm5lciBrb21tdCBuYWVoZXIgdW5kIGJhZ2dlcnQgZWluZW4vZWluZSBhdXMKZGVyIEdydXBwZSBhbi4KRGFubiBrb21tdCBlaW4gd2VpdGVyZXMgTWl0Z2xpZWQgZGVyIEJhbmRlIGF1ZiBkaWUgR3J1cHBlIHp1IHVuZCBmcmFndDoKIk5hLCB3YXMgbGFldWZ0IGhpZXI/IgoKTW9lZ2xpY2hrZWl0IGEpOgpQQzogSWNoIHdvbGx0IGdyYWQgbWl0IGloci9paG0gYW5iYWVuZGVsbiwgZHUgaGFzdCBqYSB3b2hsIG5pY2h0cyBkYWdlZ2VuPwplbXBmb2hsZW5lIEFudHdvcnQ6IHJlY2h0ZXIgS2lubmhha2VuLgoKTW9lZ2xpY2hrZWl0IGIpOgpQQzogU2Nob24gZ3V0LCBpY2ggd29sbHRlIG5pY2h0cyB2b24gaWhyL2lobSB3aXNzZW4uCmVtcGZvaGxlbmUgQW50d29ydDogR2VmYWVsbHQgZGlyIG1laW5lIFNjaHdlc3Rlci9tZWluIEJydWRlciBldHdhIG5pY2h0PwogICAgICAgICAgICAgICAgICAgIGdlZm9sZ3Qgdm9uIHJlY2h0ZW0gS2lubmhha2VuLgoKRXJmb2xncmVpY2ggZXJwcm9idCB2b24gQy4gTm8uCgpQUzogRWluZSBWZXJ3YW5kc2NoYWZ0c2JlemllaHVuZyBrYW5uIG9mdCBzZWhyIGhpbGZyZWljaCBzZWluIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc28gZ2VuYXVzbyBzdGVsbCBpY2ggbWlyIHNlbGJzdGxvZXNjaHVuZyB2b3IuLi4gKFlldGksIDI4LiBKYW4gMTk5NywgMjA6NTI6NTIpOgpZZXRpIHRyaW5rdCBlaW5lbiBZZXRpLVRvZXRlciB1bmQga2lwcHQgYmV3dXNzdGxvcyB2b20gU3R1aGwuClNjb3R0IHVuZCBBbXVuZHNlbiB0cmFnZW4gWWV0aSB2b3IgZGllIFR1ZXIuCgpZZXRpLCBzY2hvbiBsYWVuZ2VyIGFscyBkaWVzZSBLbmVpcGUgaW0gTXVkIHVuZCBpbW1lciBub2NoIG5hY2ggZGVtIFRhZXRlcgpmYWhuZGVuZC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBoYWIgaWNoIG5vY2ggYXVmIG1laW5lciBGZXN0cGxhdHRlIGdlZnVuZGVuLiA6LSkgKFJhZmZpLCAyOC4gSmFuIDE5OTcsIDIyOjA4OjE0KToKfiMhIHJuPVNpZG9saW4gcnQ9ODU0NDQ3NzAxIHJnPXdpdHplCn4jISB0aWQ9ODU0NDQ3NzAxCgppY2ggd3VlcmRlIHNhZ2VuICh3KSBCLkguUC4gCgpHcnVzcwpILgooSXJnZW5kd28gaW4gZGVuIGFsdGVuIEFQUExFIF1bKyBEaXNrZXR0ZW4gbXVlc3N0ZW4gbm9jaCBkaWUKb3JpZ2luYWwtV29lcmRzdGFyIGZpbGVzIGRhenUgcnVtZmxpZWdlbi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2FtZW1hc3RlcnMgSGVscCwgUGFydCBPbmUgKFRyZWthbiwgMjkuIEphbiAxOTk3LCAwOTo1MjoxNSk6Cn4jISBybj1DYXVubyBydD04NTQ0NjA1OTIgcmc9d2l0emUKfiMhIHRpZD04NTQ0NjA1OTIKU2Nob2VuIGlzdCBkYSBhdWNoIGltbWVyOgpJaHIgc2VpdCBlaW5lbiByaWVzaWdlIEJlcmcgdm9yIGV1Y2gsIGRlciBldWNoIGRlbiB3ZWcgdmVycGVycnQuLi4KU3BpZWxlcjogQWJlciwgd2lyIHNpbmQgZG9jaCBhdWYgbmVyIHJpZXNlbiBXaWVzZSB1bmQgZXMgd2FyIHdlaXQgdW5kIGJyZWl0CmtlaW4gYmVyZyB6dSBzZWluLi4uCkxlaXRlcjogQWNoIG5lPyBVZWJyaWdlbnMsIGRhIGZhZWxsdCBncmFkIGVpbiBGZWxzZW4gcnVudGVyICEKCldlbm5zIGhhbHQgc2VpbiBtdXNzLCBzY2hhZmZ0IGRlciBMZWl0ZXIgbmV1ZSBQaHlzaWtnZXN0emUgOy0pClQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdhbWVtYXN0ZXJzIEhlbHAsIFBhcnQgT25lIChSYWZmaSwgMjkuIEphbiAxOTk3LCAxMzoyMToyMSk6Cn4jISBybj1UcmVrYW4gcnQ9ODU0NTI3OTM1IHJnPXdpdHplCn4jISB0aWQ9ODU0NDYwNTkyClNjaGFldHplLCBpbiBkaWVzZW0gWnVzYW1tZW5oYW5nIGlzdCBQYXJhbm9pYSBkYXMgaWRlYWxlIFJvbGxlbnNwaWVsISBEYSBpc3QKZGllc2VyIGZhbGwgc29nYXIgc2Nob24gZWluZGV1dGlnIHVuZCBpbW1lciB3aWVkZXIgYW53ZW5kYmFyIGltIFJlZ2Vsd2VyawpiZXNjaHJpZWJlbiA6KQoKR3J1c3MKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEdhbWVtYXN0ZXJzIEhlbHAsIFBhcnQgT25lIChXdXJ6ZWwsIDI5LiBKYW4gMTk5NywgMTg6NDc6MzQpOgp+IyEgcm49UmFmZmkgcnQ9ODU0NTQwNDgxIHJnPXdpdHplCn4jISB0aWQ9ODU0NDYwNTkyCmluIGVpbmVtIHJvbGxlbnNwaWVsaGFuZGJ1Y2ggZW50ZGVja3Q6CiAgZmlyc3Qgb2YgYWxsLCBmb3JnZXQgYWxsIHlvdSBrbm93IGFib3V0IHBoeXNpY3MuCgptYWNodCBzaWNoIGltbWVyIGd1dCA6KQptZWluZSBwZXJzb2VubGljaGUgendlaXRlIHJlZ2VsOgogIHZlcmdpc3MgYWxsZXMsIHdhcyBkdSB1ZWJlciBkYXMgcmVnZWx3ZXJrIHdlaXNzdCwgdW5kIG1hY2ggZGlyIGRlaW5lCiAgZWlnZW5lbiByZWdlbG4uCgpkYXMgaGlsZnQgdW5nbGF1YmxpY2ggZ2VnZW4gImJlc3Nlcndpc3NlciIsIGRpZSBkaWUgcmVnZWxuIGF1c3dlbmRpZyBnZWxlcm50CmhhYmVuIHVuZCBtZWluZW4sIGRlciBzcGllbGxlaXRlciBoYWV0dGUgZWluZW4gZmVobGVyIGdlbWFjaHQgOikKCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR2FtZW1hc3RlcnMgSGVscCwgUGFydCBPbmUgKFJhZmZpLCAyOS4gSmFuIDE5OTcsIDIxOjU1OjA2KToKfiMhIHJuPVd1cnplbCBydD04NTQ1NjAwNTQgcmc9d2l0emUKfiMhIHRpZD04NTQ0NjA1OTIKSWNoIHNhY2ggbnVyIFBhcmFub2lhIC0gZGFzIGlzdCBkYXMgZWluemlnZSBSZWdlbHdlcmsgZGFzIGF1Y2ggZGFmdWVyIG5lCmVpbmR1dGlnIGJyYXVjaGJhcmUgQW50d29ydCBoYXQuCgoxMC4uLjkuLi44Li4uNy4uLjYuLi41Li4uNC4uLgpSYWZmaSBzY2hsaWVzc3QgZWluZSBUdWVyZS4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdGFkdGdlc2NoaWNodGxpY2hlcyBhdXMgZGVtIFJ1aHJnZWJpZXQgKFNpZG9saW4sIDMwLiBKYW4gMTk5NywgMTQ6NTI6MTkpOgpTdHJlbmcgbmFjaCBkZW0gTW90dG8gIiBXZW5uIG1vcmdlbiBkaWUgV2VsdCB1bnRlcmdlaHQsIHd1ZXJkZSBpY2ggIApoZXV0ZSBub2NoIGVpbmVuIEFwZmVsIGVzc2VuIiB3ZXJkZSBpY2ggdmVyc3VjaGVuLCBldHdhcyBLdWx0dXIgaW4gZGllc2UgIApSdWJyaWsgdW5kIGRlbiBleGhhYml0YW50ZW4gTGVzZXJuLCBkaWVzZXMgS2xlaW5vZCBkZXMKTmljaHQtTWVoci1HYW56LUFiZXItRmFzdC1Ob2NoLVJ1aHJnZWJpZXRlcywgZGllIFN0YWR0IFNjaHdlcnRlIGV0d2FzICAKbmFlaGVyIHp1IGJyaW5nZW4uCkJlZ2lubmVuIG1vZWNodGUgaWNoIG1pdCBkZXIgR2VzY2hpY2h0ZSB1ZWJlciBlaW5lIG15dGVudW1nZWJlbmRlbiBQZXJzb24sICAKZGllIGRpZSBTY2h3ZXJ0ZXIgc2VpdCBKYWhyZW4genUgaGFzc2VuIGdlbGVybnQgaGFiZW4sIHVuZCBkZXIgc2ljaCBrZWluICAKU2Nod2VydGVyIG1laHIgZW50emllaGVuIGthbm4uIEVzIGhhbmRlbHQgc2ljaCB1bSBkaWUgbGV0enRlIHVuYmVydWVocnRlICAKRnJhdSBhdXMgU2Nod2VydGUsIGRpZSBiZWkgV2luZCB1bmQgV2V0dGVyIGVpc2VybiBhdWYgaWhyZW0gU29ja2VsIGFtICAKS2Flc2UgYXVmIFRvcnRlbGxpbmktUGxhdHogc3RlaHQgdW5kIGRhYmVpIGVpbmUgRnJlc3NlIHppZWh0LCBhbHMgd3VlcmRlICAKc2llIGplZGVuIE1vbWVudCBpbiBkZW4gS3VlYmVsIGtvdHplbiwgZGVuIHNpZSBnZXJhZGUgdm9yIHNpY2ggaGFlbHQuCgpIaWVyIGFsc28gZGllIGVpbnppZ2UgdW5kIHdhaHJlIEdlc2NoaWNodGUgdWViZXIgZGllCgogICAgICAgICAgICAgICAgICBQIEEgTiBOIEUgLSBLIEEgVSBLIEUgTiBGIFIgQSBVCgoKRXMgYmVhbm4gYWxsZXMgYW0gMjMuIEF1ZyAxNjc1LiBXaWUgZXMgZnVlciBkaWVzZSBHZWdlbmQgdWVibGljaCBpc3QsICAKd3VyZGUgZGllIGtsZWluZSwgdmVydHJhZXVtdGUgU3RhZHQsIGRpZSBub2NoIHZvbiBTYXRkdG1hdWVybiB1bWdlYmVuIHdhciwgIAp2b24gZWluZW0gU2NobmVlc2NoYXVlciBkdXJjaHpvZ2VuLiBEaWUgS2FlbHRlIHdhciB6d2FyIHVuZXJ0cmFlZ2xpY2gsICAKenVtYWwgaW4gYW5kZXJlbiBSZWdpb25lbiBzaWNoIGRpZSBNZW5zY2hlbiB6dSBkaWVzZXIgSmFocmVzemVpdCBpbiBkZXIgIApTb25uZSB2ZXJnbnVlZ3RlbiwgYWJlciBkdXJjaCBkaWUgVGVtcGVyYXR1cmVuIGhpZWx0IHNpY2ggZGVyIGJlaXNzZW5kZSAgCkdlc3RhbmsgZGVyIEZhZWthbGllbiwgZGllIGF1cyBhbGxlbiBGZW5zdGVybiBpbiBkaWUgaWR5bGxpc2NoZW4gR2Flc3NjaGVuICAKdmVyZ29zc2VuIHd1cmRlbiwgaW4gR3Jlbnplbi4KQW0gQWJlbmQgZGllc2VzIFRhZ2VzIGVudGJhbmQgRWxzYSBLaWVzZWwsIGVpbmUgZnVlciBkaWVzZSBHZWdlbmQgIAp1bmdvZWhubGljaCBzY2hvZW5lIHVuZCBnZXN1bmRlIEZyYXUsIGVpbiBlYmVuc28gaHVlYnNjaGVzIHVuZCBnZXN1bmRlcyAgCmtsZWluZXMgTWFlZGNoZW4uIEZyZXVkZXN0cmFobGVuZCBlaWx0ZSBzaWUgbWl0IGRlbSBLaW5kIGF1ZiBkZW0gQXJtIGluICAKZGFzIFdvaG56aW1tZXIsIGluZGVtIGlociBNYW5uLCBFdWdlbiBLaWVzZWwsIHNhc3MgdW5kIGluIGRpZSBTcG9ydHNjaGF1ICAKdmVydGllZnQgd2FyLiBJbW1lcmhpbiwgZXMgd2FyIFNhbXN0YWdhYmVuZCB1bmQgZXIgaGFsdCBlaW4gTWFubiwgZWluICAKcmljaHRpZ2VyIE1hbm4sIHNvIHdpZSBhbGxlIE1hZW5uZXIgaW4gU2Nod2VydGUgcmljaHRpZ2UgTWFlbm5lciB3YXJlbiB1bmQgIAphbSBTYW1zdGFnYWJlbmQgZGllIFNwb3RzY2hhdSBzYWhlbiwgdW5kIGRhIGtvbm50ZSBlciBzaWNoIG51bm1hbCBuaWNodCB1bSAgCnNvIHdlaWJpc2NoZSBHZWJ1cnRlbiBrdWVtbWVybi4gQXVzc2VyZGVtIGhhdHRlIEVsc2EgamEgYXVjaCBTcGFzcyBiZWkgZGVyICAKWmV1Z3VuZyBnYWhhYnQsIHVuZCBudW4gc29sbHRlIHNpZSBhdXMgenVzZWhlbiwgd2llIHNpZSBkYW1pdCBrbGFyIGthbS4gIApTaWUgaGF0dGUgYXVjaCBHbHVlY2ssIGRhc3Mgc2llIGdyYWRlIHp1ciBXZXJiZXBhdXNlIGluIGRhcyAgCmdlbWVpbnNjaGFmdGxpY2hlIFdvaG56aW1tZXIga2FtLCBzb25zdCBoYWV0dGUgZXIgd29obCBrZWluZSBOb3RpeiB2b24gaWhyICAKZ2Vub21tZW4uCiJFdWdlbiIsIHJpZWYgc2llLiAiRXVnZW4sIER1IGJpc3QgVmF0ZXIgZ2V3b3JkZW4iLgoiSmEgSmEsIHNjaG9uIGd1dCBFbHNhIiBhbnR3b3J0ZXRlIGVyIG11ZXJyaXNjaCAiIGVyIGhlaXNzdCBXZXQgdW5kIGthbm4gIAptaXIgZ2xlaWNoIG1hbCBkZW4gWmFwcGVyIHJlaWNoZW4sIGVybGllZ3QgYXVmIGRlbSBTY2hyYW5rLCBkaWUgV2VyYnVuZyAgCmlzdCB6dSBsYXV0LiIuIEVsc2Egc2NoYXV0ZSBpaHJlbiBNYW5uIGV0d2FzIHZlcmR1dHogYW4uICIgQWJlciBFdWdlbiwgZXMgIAppc3QgZG9jaCBlaW4gTWFlZGNoZW4gdW5kIFdldCBpc3QgZWluIEp1bmdlbm5hbWUuIiAgIiBFbHNhLCByZWQga2VpbmVuICAKU2NoZWlzcywgaWNoIHpldWdlIGtlaW5lIE1hZWRjaGVuLCB1bmQgbnUgc2VpIHN0aWxsLiIKClVuZCBzbyBrYW0gZXMsIGRhc3MgV2V0IGFscyBKdW5nZSBhdWZ3dWNocy4gSW4gZGVyIEtpbmRoZWl0IHdhciBkaWVzIGF1Y2ggIAp3ZWl0ZXIga2VpbiBQcm9ibGVtLiBEYXMgZXJzdGUgbWFsLCBkYXMgV2V0IHNpY2ggZXR3YXMgc2VsdHNhbSB2b3JrYW0gd2FyICAKYXVmIHNlaW5lbSBzaWViemVobnRlbSBHZWJ1cnRzdGFnLiBFciBoYXR0ZSBuaWNodCBzbyByZWNodGUgTHVzdCB3aWUgZGllICAKYW5kZXJlbiBKdW5nZW4gYW4gZGllc2VuIHppY2tpZ2VuIEdvZXJlbiB6dSBsdXRzY2hlbiwgc29uZGVybiBlciB3dWVuc2NodGUgIApzaWNoIHNvIHNlaHIsIGFuIGVpbmVyIHN0YXJrZW4gbmFjaCBNb3NjaHVzIHJpZWNoZW5kZW4gTWFlbm5lcmJydXN0IHp1ICAKbGllZ2VuLiBVbmQgZXIgZGFjaHRlIGJlaSBzaWNoICJPaCBTY2hlaXNzZSwgaWNoIGJpbiBzY2h3dWwiLgpVbmQgbWl0IGRlbiBKYWhyZW4gIHd1Y2hzIGluIGlobSBkYXMgQmVkdWVyZm5pcyBGcmF1ZW5rbGVpZGVyIHp1IHRyYWdlbi4gIApJbW1lciBvZnRlciBzdGFuZCBlciB2b3IgZGVtIFNwaWVnZWwgdW5kIGJldHJhY2h0ZXRlIHNpY2ggaW4gZGVuIEtsZWlkZXJuICAKc2VpbmVyIE11dHRlci4gVW5kIHNpZSBwYXNzdGVuIHNvIGd1dCwgdW5kIGRhcyBEZWNvbGxldGUgd2FyIGF1Y2ggIApzb25kZXJiYXIgZ3V0IGF1c2dlZnVlbGx0LiBVbmQgZXIgZGFjaHRlIGJlaSBzaWNoICIgT2ggU2NoZWlzc2UsIGljaCBiaW4gIAplaW4gVHJhbnNpIi4KVW5kIG1pdCBkaWVzZXIgRWluc2ljaHQgZ2luZyBlciBpbnMgUmF0aGF1cywgaW4gZGFzIFN0YW5kZXNhbXQsIHVuZCBzYWd0ZSAgCnp1IGRlbSBTYXRuZGVzYmFtdGVuICIgRWggTWFubiwgZWlnZW50bGljaCwgdGllZiBpbiBtaXIgZHJpbiwgYmluIGljaCBlaW5lICAKRnJhdSB1bmQgd3VlcmRlIHZpZWwgbGllYmVyIFZlcmEgaGVpc3Nlbiwga2Fuc3RlIGRhcyBuaWNoIG1hbCBlYmVuZCAgCmFlbmRlcm4/IgpVbmQgZGVyIFN0YW5kZXNiZWFtdGUsIHZvZWxsaWcgdWViZXJmb3JkZXJ0IG1pdCBkaWVzZXIgQXVmZ2FiZSwgd2FyZiBpaG4gIAptaXQgZGVuIFdvcnRlbiAiVmVycGlzcyBEaWNoLCBvbGxlIFR1bnRlIiBhdXMgZGVyIEFtdHNzdHViZS4KSW4gZGVyIFZvcmhhbGxlIGRlcyBSYXRoYXVzZXMgaGluZyB6dXIgZGFtYWxpZ2VuIFplaXQgZWluIEJpbGQgIHZvbiBlaW5lbSAgCnVuYmVrYW5udGVtIE1hbGVyLiBFcyB6ZWlndGUgZWluZW4gUGFzdG9yLCBkZXIgc2ljaCBtaXQgZGVtIEtsaW5nZWxiZXV0ZWwgIAp6dSBlaW5lbSBibGluZGVtIEtydWVwcGVsIGhlcmFiYnVlY2t0IHVuZCBtaXQgc3RyZW5nZXIgTWllbmUgdW0gZWluZSBTcGVuZGUgIApiaXR0ZXQuCkFscyBXZXQgYW4gZGllc2VtIEJpbGQgdm9yYmVpa2FtLCBkZXIgSGFzcyB1bmQgZGllIEVudHRhZXNjaHVuZyBzYXNzZW4gIApub2NoIHRpZWYsIHpvZyBlciBlaW5lIFNwcmF5ZG9zZSBhdXMgc2VpbmVyIEhhbmR0YXNjaGUsIHVuZCBicnVzaHRlIGRlbSAgClBhdGVyIHp1ZXJzdCBlaW5lIEJydXN0LCBkYW5uIGVpbiBLbGVpZCB1bmQgenVtIFNjaGx1c3MgZWluZSBTY2h1ZXJ6ZS4KVW50ZXIgZGFzIEJpbGQgc2NocmllYiBlciwgIiBJbiBqZWRlbSBIZWxkIHN0ZWNrdCBlaW5lIEZyYXUiLgpBYmVyIGVyIGhhdHRlIG5pY2h0IG1pdCBkZW0gYWxsZ2VtZWluZW0gSW50ZXJlc3NlIGFuIEt1bnN0IGdlcmVjaG5ldC4gTmllICAKaXN0IGplbWFuZGVtIGRpZSBWZXJhZW5kZXJ1bmcgYW4gZGVtIEJpbGQgYXVmZ2VmYWxsZW4uIFdlciBzY2hhdXQgc2ljaCAgCmF1Y2ggc2Nob24gQmlsZGVyIGFuLCBkaWUgaW0gUmF0aGF1cyBhbiBkZXIgV2FuZCBoYWVuZ2VuLiBFcyB3dXJkZSBodW5kZXJ0ICAKSmFocmUgc3BhZXRlciwgYWxzIG5pZW1hbmQgbWVociBhbiBXZXQsIGRlbSBlcnN0ZW4gdW5kIGxldHp0ZW0gVHJhbnNpIGF1cyAgClNjaHdlcnRlIGRhY2h0ZSwgYWJnZW5vbW1lbiwgaW0gS2VsbGVyIGRlcyBzY2hvbiBiZXpvZ2VuZW4gbmV1ZW4gUmF0aGF1cyAgCmVpbmdlbGFnZXJ0IHVuZCBhdWYgZWluZXIgS2FydGVpa2FydGUgdW50ZXIgZGVtIFZlcm1lcmsgIiBJLmouIEhlbGQgcy4gZS4gIApGcmF1IC0gRnJhdSBoaWxmdCBLcnVlcHBlbCAtIHVuYmVrYW5udGVyIE1hbGVyIiBlaW5nZWxhZ2VydC4KCldpZWRlciBodW5kZXJ0IEphaHJlIHNwYWV0ZXIgc2FzcyBlaW4gdmVyendlaWZlbHRlciBCdWVyZ2VybWVpc3RlciBpbSAgClNjaHdlcnRlciBSYXRoYXVzLiBBdWYgc2VpbmVuIEJlc3VjaGVuIGluIGRlbiBQYXJ0bmVyc3RhZWR0ZW4gaGF0dGUgZXIgYWxsICAKZGllIFN0YW5kYmlsZGVyIGdyb3NzZXIgSGVsZGVuIGRpZXNlciBTdGFkdGUgYmV3dW5kZXJuIG11ZXNzZW4uIFVuZCB3YXMgIApoYXR0ZSBlciB2b3J6dXdlaXNlbj8gRWluZW4ga3J1bW1lbiBLaXJjaHR1cm0sIGRyZWkgV2Fzc2Vyc3RhbmRzbWFya2VuIHZvbiAgCmRlciBNb2VobmVzcHJlbmd1bmcsIGdhbnogdG9sbCEgRXMgbXVzc3RlIGV0d2FzIGhlciwgd2FzIG1hbiB2b3J6ZWlnZW4gIAprb25udGUuIEFiZXIgaW4gU2Nod2VydGUgaGF0IGVzIG5pZSBlaW5lbiBIZWxkZW4gZ2VnZWJlbiwgdW5kIHNvIHdpZSBlcyAgCmF1c3NpZWh0LCB3aXJkIGVzIGlobiBhdWNoIG5pZSBnZWJlbi4gVW5kIG1pdCBkaWVzZXIgc2NoZWlzcyBsaW5rZW4gU3plbmUgIAppbiBTY2h3ZXJ0ZSwgZGllIGF1Y2ggbm9jaCB2b24gZWluZXIgYWxiZXJuZW4gRnJhdWVuYmV3ZWd1bmcgdW50ZXJsYXVmZW4gIAp3YXIsIHdhZXJlIGVpbmUgSGVsZGVuc3RhbmRiaWxkIHNvd2llc28gdW5kZW5rYmFyIGdld2VzZW4uIFZlcnp3ZWlmZWx0ICAKYmV0cmFjaHRldGUgZXIgc2VpbiBuZXVlcyBUZXJtaW5hbCBhdWYgc2VpbmVtIFNjaHJlaWJ0aXNjaC4gQXVjaCBhbSAgClNjaHdlcnRlciBSYXRoYXVzIHdhciBkaWUgWnVua3VuZnQgbmljaHQgdm9yYmVpZ2VnYW5nZW4uIEltIFp1Z2UgZGVyICAKTW9kZXJuaXNpZXJ1bmcgZGVzIFJhdGhhdXNlcyB3YXJlbiBuaWNodCBudXIgVmlsbGVuIGFiZXJpc3NlbiB3b3JkZW4gdW5kICAKc2lubmxvc2UgUmF0c3NhZWxlIGdlc2NoYWZmZW4gd29yZGVuIHNvbmRlcm4gZXMgd3VyZGUgYXVjaCBlaW4gTmV0endlcmsgIAppbnN0YWxsaWVydCwgaW4gZGFzIHZpZWxlIHZpZWxlIEJlYW10ZSBhbGxlcyBoaW5laW52ZXJ3YWx0ZXRlbiB3YXMgbnVyIHp1ICAKdmVyd2FsdGVuIHdhci4gVW5kIGRlciBCdWVyZ2VybWVpc3RlciBoYXR0ZSBlaW5lbiBzaWViZW53b2VjaGlnZW4gTGVocmdhbmcgIAppbiBkZXIgVkhTIHVlYmVyICJEaWUgVmVyd2FsdHVuZyB1ZWJlciBFRFYiIGJlc3VjaHQsIHp1IGRlc3NlbiBBYnNjaGx1c3MgIApqZWRlciBlaW4gc2Nod2VpbnNsZWRlcm5lcyBNb3VzZXBhZCBtaXQgU3RhZHR3YXBwZW4gYmVrYW0sIHdlbGNoZXMgbnVuICAKc3RvbHogYXVmIHNlaW5lbSBTY2hyZWlidGlzY2ggdW50ZXIgZGVyIE1vdXNlIGluIFJhdGhhdXNmb3JtIG5lYmVuIGRlciAgClRhc3RhdHVyIG1pdCBTaWduaWVydW5nIGRlcyBTY2h1ZXR6ZW5rb2VuaWdzIHZvbiAxOTc1IGxhZy4KSW4gc2VpbmVyIFZlcnp3ZWlmZWx1bmcgbnVuLCBuYWhtIGVyIGRpZSBNb3VzZSwgZGllIHdlZ2VuIGRlciBrb21pc2NoZW4gIApGb3JtIGRlcyBSYXRoYXVzZXMgZXR3YXMgc2Nod2VyIGluIGRlciBIYW5kIGxhZywgdW5kIHNwcmFjaCBpbiBzaWUgaGluZWluOgoiQ29tcHV0ZXIsIHN1Y2ggbWlyIGlyZ2VuZGV0d2FzIG1pdCBGcmF1IHVuZCBIZWxkLCBlZ2FsIHdhcyIuClVuZCBrYXVtIGhhdHRlIGVyIGRpZXNlIFdvcnRlIGdlc3Byb2NoZW4sIGJsaXR6dGUgZGVyIEJpbGRzY2hpcm0gYXVmIHVuZCAgCmF1ZiBkZW0gTW9uaXRvciBzdGFuZDoKCiAgICAgICAgVGl0ZWwgICAgICAgICA6ICAgSS5qLkhlbGQucy5lLkZyYXUKICAgICAgICBVbnRlcnRpdGVsICAgIDogICBGcmF1IGhpbGZ0IEtydWVwcGVsCiAgICAgICAgT2JqZWt0ICAgICAgICA6ICAgQmlsZAogICAgICAgIFN0YXR1cyAgICAgICAgOiAgIFVubnVldHoKICAgICAgICBadXN0YW5kICAgICAgIDogICBTZWl0IE1vZWhuZXNwcmVuZ3VuZyBkdXJjaG5hZXNzZXQKICAgICAgICBXb21pdCAgICAgICAgIDogICBXYXNzZXIKICAgICAgICBXaWV2aWVsICAgICAgIDogICBjYS4gMCwyZy9zcWZ0CiAgICAgICAgU2FjaGJlYXJiZWl0ZXI6ICAgS2FybCBFLiBXaXJzY2gKICAgICAgICBHcm9lc3NlIGQuIFMuIDogICAxLDg1IG0KICAgICAgICBTaXR6ZW5kICAgICAgIDogICAxLDQ1IG0KICAgICAgICBIYWFyZmFyYmUgICAgIDogICBiaXMgdm9yIGRyZWkgSmFocmVuIGhlbGxicmF1biwKICAgICAgICAgICAgICAgICAgICAgICAgICBzZWl0IDE1LjMuNjcga29tcGwuIGdyYXUKICAgICAgICBMYWdlcm9ydCAgICAgIDogICBLZWxsZXIgUmVpaGUgMywgUmVnYWwgMTUsIEZhY2ggNwogICAgICAgIEJld2VydHVuZyAgICAgOiAgIFNpZWh0IHNjaGVpc3NlIGF1cwoKRGllIEF1Z2VuIGRlcyBCdWVyZ2VybWVpc3RlcnMgYmxpdHplbiBhdWYuIERhcyBtdXNzdGUgZXMgc2Vpbi4gRWluZSAgCmhlbGRlbmhhZnRlIEZyYXUuIEtlaW5lciBzZWluZXIgYXVzbGFlbmRpc2NoZW4gS29sbGVnZW4ga29ubnRlIHNvZXR3YXMgIAphdWZ3ZWlzZW4uIFVuZCAgZGllIEZyYXVlbmJld2VndW5nIGthbm4gaWhtIGF1Y2ggbmljaHQgYW4gZGllIEthcnJlICAKcGlzc2VuLCBzZWxic3QgaW0gc2l0emVuIG5pY2h0LiBTb2ZvcnQgZWlsdGUgZXIgaW4gZGVuIEtlbGxlciB1bmQgZmFuZCAgCmF1ZmdydW5kIGRlciBnZW5hdWVuIE9ydHNiZXN0aW1tdW5nIGF1cyBkZXIgRURWIGRhcyBCaWxkIHNjaG9uIG5hY2ggdmllciAgClN0dW5kZW4uIEVzIHdhciBlaW4gd3VuZGVyYmFyZXMgQmlsZCwgbnVyIGV0d2FzIGFuZ2VzY2hpbW1lbHQuIFdhcyBzaWNoIGluICAKZGVyIFNjaGFsZSBiZWZhbmQsIGRpZSBkaWUgRnJhdSBpbiBkZXIgSGFuZCBoaWVsdCwga29ubnRlIGVyIG5pY2h0ICAKZXJrZW5uZW4uIER1cmNoIGRhcyBXYXNzZXIgd2FyIGRpZSBGYXJiZSBldHdhcyB2ZXJsYXVmZW4sIHVuZCBkYXMgd2FzICAKZWluc3QgYWxzIE11ZW56ZW4gZ2VtYWx0IHd1cmRlLCBzYWggbnVuIGF1cyB3aWUgaGVsbGJyYXVuZSBTY2hlaXNzaGF1ZmVuLgpXYXJ1bSBudXIsIGRhY2h0ZSBkZXIgQnVlcmdlbWVpc3RlciwgcmVpY2h0IGRpZXNlIEZyYXUgZGVtIEtydWVwcGVsIGVpbmUgIApTY2h1ZXNzZWwgdm9sbCBtaXQgU2NoZWlzc2U/IE9kZXIgaXN0IHNpZSB2aWVsbGVpY2h0IGVpbmUgIApLcmFua2Vuc2Nod2VzdGVyLCBkaWUgZGVtIGFybWUgTWFubiBkaWUgUGZhbm5lIHVudGVyIGRlbSBBcnNjaCB3ZWdnZXpvZ2VuICAKaGF0PyBTb3dhcyBrYW5uIG1hbiBkb2NoIG5pY2h0IGluIGRlciBTdGFkdCBhdWZzdGVsbGVuISBPZGVyIHJlaWNodCBzaWUgIAppaG0gZGllIFBmYW5uZSB2b20gVm9yZ2FlbmdlciwgaWdpdHRpZ2l0LiBBYmVyIHdlbm4gc2llIGlobSBkaWUgUGZhbm5lICAKcmVpY2h0LCBkYW5uIGtvZW5udGUgc2llIGphIGF1Y2ggZWluZSBIYXVzZnJhdSBzZWluIGRpZSBpaG0gZWluZSBQZmFubmUgIApyZWljaHQsIGVpbmUgUGZhbm5lIG1pdCBQZmFubmVrdWNoZW4uCgpJbiBkZW0gS2VsbGVyIHdhciBlaW4gbGF1dGVzICJSaW5nIiB6dSBob2VyZW4gdW5kIGRpZSBQdXBpbGxlbiBkZXMgIApCdWVyZ2VtZWlzdGVycyBzY2hsdWdlbiBzY2hsYWdhcnRpZyBpbiBEb2xsYXJ6ZWljaGVuIHVtLiBTY2h3ZXJ0ZXIgIApQZmFubmVrdWNoZW4sIGRlciBLYXNzZW5zY2hsYWdlciwgZWluIFN0YW5kYmlsZCwgZWluIEhlbGQsIG5hZ3V0LCBlaW5lICAgCkhlbGRpbiwgZGllIGluIFplaXRlbiBncm9lc3N0ZXIgTm90IGlocmVuIE5hZWNoc3RlbiBkaWUgZWlnZW5lbiAgClBmYW5uZWt1Y2hlbiB1ZWJlcmxhc3N0LCB1bmQgZGFzIHNvZ2FyIG5vY2ggZG9rdW1lbnRpZXJ0IGF1ZiBlaW5lbSBlY2h0ICAKYWx0ZW0gQmlsZCBhdXMgZGVtIFNjaHdlcnRlciBTdGFkdGFyY2hpdi4gRXIgaGF0dGUgZW5kbGljaCBlaW5lbiBXZWcgIApnZWZ1bmRlbiB3aWUgbWFuIGF1cyBTY2hlaXNzZSBHZWxkIG1hY2hlbiBrb25udGUuIEVyIGVpbHRlIHNvZm9ydCBpbiBzZWluICAKQnVlZ2VybWVpc3RlcnppbW1lciB6dXJ1ZWNrLCByaWVmIGJlaSBLbm9yciBhbiB1bmQgdmVyaGFuZGVsdGV0IHVlYmVyIGRpZSAgCkxpemVucyBmdWVyIGVpbmUgQmFja3BhY2t1bmcgIlNjaHdlcnRlciBQYW5uZWthdWtlbiIsIHdhcyBzaWNoIHNwYWV0ZXIgIAphbGxlcmRpbmdzIGFscyBGbG9wIGhlcmF1c3N0ZWxsdGUsIHdlaWwga2VpbmVyIGRpZXNlIERpbmdlciBtb2NodGUuIERhbmFjaCAgCnN1Y2h0ZSBlciBpbiBkZXIgR2VsYmVuIFNlaXRlIG5hY2ggZWluZXIgR2llc3NlcmVpIHVuZCBiZXN0ZWxsdGUgZWluZSAgClN0YXR1ZSwgZGllIG5hY2ggZGVtIEJpbGQgZ2VmZXJ0aWd0IHd1cmRlIHVuZCBhbSBFbmRlIGRlcyBDYXZlIGRlaSBUZXJyaW5pLSAKUGxhdHplcyBhdWZnZXN0ZWxsdCB3dXJkZS4KClVuZCBzbyBrb21tdCBlcywgZGFzcyBpY2ggamVkZW4gQWJlbmQgd2VubiBpY2ggaW4gZGllIElubmVuc3RhZHQgIApmYWhyZSwgbWlyIGRpZXNlbiBoYWVzc2xpY2hlbiBQYXRlciBpbiBGcmF1ZW5rbGVpZGVybiBiZWd1Y2tlbiBtdXNzLCBkZXIgIApnZXJhZGUgZWluZW0gYXJtZW4gQmVoaW5kZXJ0ZW0gZGllIGxldHplbiBLcm9ldGVuIGFibHVjaHN0LgoKICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClNvdmllbCB6dSBkZXIgUGFubmVrYXVrZW5mcmF1LiBJY2ggaG9mZmUsIGRhc3MgaWNoIG1pdCBtZWluZW0gIApzdGFkdGdlc2NoaWNodGxpY2hlbSBCZXJpY2h0IGV0d2FzIHp1bSBFcmhhbHQgZGVyIE1vcmFsIGluIGRpZXNlciBSdWJyaWsKYmVpZ2V0cmFnZW4gaGFiZS4KCkluIGRlciBuYWVjaHN0ZW4gRXBpc29kZSB3ZXJkZSBpY2ggZGFyYXVmIGVpbmdlaGVuLCB3YXJ1bSBkZXIgU3QuVmlrdG9yIHNvICAKc2NoaWVmIGlzdC4KCgoKU2lkb2xpbi4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuYWphLi4uIChTaWRvbGluLCAzMC4gSmFuIDE5OTcsIDE3OjIxOjUwKToKCiAgICAgQmUgYXdhcmUgb2YgdGhlIGZvbGxvd2luZyBzb2Z0d2FyZSBwcm9ibGVtcyBiZWZvcmUgcHVyY2hhc2luZy4KICAgICAKICAgICBMYXN0IHllYXIgYSBmcmllbmQgb2YgbWluZSB1cGdyYWRlZCBHaXJsRnJpZW5kIDEuMCB0byBXaWZlIDEuMCBhbmQgCiAgICAgZm91bmQgdGhhdCBpdCdzIGEgbWVtb3J5IGhvZyBsZWF2aW5nIHZlcnkgbGl0dGxlIHN5c3RlbSByZXNvdXJjZXMgZm9yIAogICAgIG90aGVyIGFwcGxpY2F0aW9ucy4gSGUgaXMgb25seSBub3cgbm90aWNpbmcgdGhhdCBXaWZlIDEuMCBhbHNvIGlzIAogICAgIHNwYXduaW5nIENoaWxkLVByb2Nlc3NlcyB3aGljaCBhcmUgZnVydGhlciBjb25zdW1pbmcgdmFsdWFibGUgCiAgICAgcmVzb3VyY2VzLiBObyBtZW50aW9uIG9mIHRoaXMgcGFydGljdWxhciBwaGVub21lbmEgd2FzIGluY2x1ZGVkIGluIHRoZSAKICAgICBwcm9kdWN0IGJyb2NodXJlIG9yIHRoZSBkb2N1bWVudGF0aW9uLCB0aG91Z2ggb3RoZXIgdXNlcnMgaGF2ZSAKICAgICBpbmZvcm1lZCBoaW0gdGhhdCB0aGlzIGlzIHRvIGJlIGV4cGVjdGVkIGR1ZSB0byB0aGUgbmF0dXJlIG9mIHRoZSAKICAgICBhcHBsaWNhdGlvbi4gTm90IG9ubHkgdGhhdCwgV2lmZSAxLjAgaW5zdGFsbHMgaXRzZWxmIHN1Y2ggdGhhdCBpdCBpcyAKICAgICBhbHdheXMgbGF1bmNoZWQgYXQgc3lzdGVtIGluaXRpYWxpemF0aW9uIHdoZXJlIGl0IGNhbiBtb25pdG9yIGFsbCAKICAgICBvdGhlciBzeXN0ZW0gYWN0aXZpdHkuIEhlJ3MgZmluZGluZyB0aGF0IHNvbWUgYXBwbGljYXRpb25zIHN1Y2ggYXMgCiAgICAgUG9rZXJOaWdodCAxMC4zLCBQdWJOaWdodCAyLjUsICBhbmQgQ2lnYXJCYXIgNy4wIGFyZSBubyBsb25nZXIgYWJsZSB0byAKICAgICBydW4gaW4gdGhlIHN5c3RlbSBhdCBhbGwsIGNyYXNoaW5nIHRoZSBzeXN0ZW0gd2hlbiBzZWxlY3RlZCAoZXZlbiAKICAgICB0aG91Z2ggdGhleSBhbHdheXMgd29ya2VkIGZpbmUgYmVmb3JlKS4KICAgICAKICAgICBBdCBpbnN0YWxsYXRpb24sIFdpZmUgMS4wIHByb3ZpZGVzIG5vIG9wdGlvbiBhcyB0byB0aGUgaW5zdGFsbGF0aW9uIG9mIAogICAgIHVuZGVzaXJlZCBQbHVnLUlucyBzdWNoIGFzIE1vdGhlckluTGF3IDU1LjggYW5kIFNpc3RlckluTGF3IEJldGEgCiAgICAgcmVsZWFzZS4gQWxzbywgc3lzdGVtIHBlcmZvcm1hbmNlIHNlZW1zIHRvIGRpbWluaXNoIHdpdGggZWFjaCBwYXNzaW5nIAogICAgIGRheS4KICAgICAKICAgICBUaGUgZmVhdHVyZXMgaGUnZCBsaWtlIHRvIHNlZSBpbiB0aGUgdXBjb21pbmcgV2lmZSAyLjAgaW5jbHVkZToKICAgICAKICAgICAtIE1pbmltaXplIGJ1dHRvbgogICAgIC0gQW4gaW5zdGFsbCBzaGllbGQgZmVhdHVyZSB0aGF0IGFsbG93cyBXaWZlIDIuMCB0byBiZQogICAgIGluc3RhbGxlZCB3aXRoIHRoZSBvcHRpb24gdG8gdW5pbnN0YWxsIGF0IGFueXRpbWUgd2l0aG91dCB0aGUgbG9zcyAKICAgICBvZiBjYWNoZSBhbmQgb3RoZXIgc3lzdGVtIHJlc291cmNlcy4KICAgICAtIEFuIG9wdGlvbiB0byBydW4gdGhlIG5ldHdvcmsgZHJpdmVyIGluIHByb21pc2N1b3VzIG1vZGUgd2hpY2ggd291bGQgCiAgICAgYWxsb3cgdGhlIHN5c3RlbXMgaGFyZHdhcmUgcHJvYmUgZmVhdHVyZSB0byBiZSBtdWNoIG1vcmUgdXNlZnVsLgogICAgIAogICAgIEkgbXlzZWxmIGRlY2lkZWQgdG8gYXZvaWQgYWxsIG9mIHRoZSBoZWFkYWNoZXMgYXNzb2NpYXRlZCB3aXRoIFdpZmUgCiAgICAgMS4wIGJ5IHN0aWNraW5nIHdpdGggR2lybGZyaWVuZCAyLjAuIEV2ZW4gaGVyZSwgaG93ZXZlciwgSSBmb3VuZCBtYW55IAogICAgIHByb2JsZW1zLiBBcHBhcmVudGx5IHlvdSBjYW5ub3QgaW5zdGFsbCBHaXJsZnJpZW5kIDIuMCBvbiB0b3Agb2YgCiAgICAgR2lybGZyaWVuZCAxLjAuIFlvdSBtdXN0IHVuaW5zdGFsbCBHaXJsZnJpZW5kIDEuMCBmaXJzdC4gT3RoZXIgdXNlcnMgCiAgICAgc2F5IHRoaXMgaXMgYSBsb25nIHN0YW5kaW5nIGJ1ZyB3aGljaCBJIHNob3VsZCBoYXZlIGJlZW4gYXdhcmUgb2YuIAogICAgIEFwcGFyZW50bHkgdGhlIHZlcnNpb25zIG9mIEdpcmxmcmllbmQgaGF2ZSBjb25mbGljdHMgb3ZlciBzaGFyZWQgdXNlIAogICAgIG9mICB0aGUgIEkvTyBwb3J0LiBZb3UgdGhpbmsgdGhleSB3b3VsZCBoYXZlIGZpeGVkIHN1Y2ggYSBzdHVwaWQgYnVnIAogICAgIGJ5IG5vdy4gIFRvIG1ha2UgbWF0dGVycyB3b3JzZSwgVGhlIHVuaW5zdGFsbCBwcm9ncmFtIGZvciBHaXJsZnJpZW5kIAogICAgIDEuMCBkb2Vzbid0IHdvcmsgdmVyeSB3ZWxsIGxlYXZpbmcgdW5kZXNpcmFibGUKICAgICB0cmFjZXMgb2YgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBzeXN0ZW0uCiAgICAgCiAgICAgQW5vdGhlciB0aGluZyB0aGF0IHN1Y2tzIC0tIGFsbCB2ZXJzaW9ucyBvZiBHaXJsZnJpZW5kIGNvbnRpbnVhbGx5IAogICAgIHBvcC11cCBsaXR0bGUgYW5ub3lpbmcgbWVzc2FnZXMgYWJvdXQgdGhlIGFkdmFudGFnZXMgb2YgdXBncmFkaW5nIHRvIAogICAgIFdpZmUgMS4wCiAgICAgCiAgICAgQlVHIFdBUk5JTkcKICAgICAKICAgICBXaWZlIDEuMCBoYXMgYW4gdW5kb2N1bWVudGVkIGJ1Zy4gSWYgeW91IHRyeSB0byBpbnN0YWxsIE1pc3RyZXNzIDEuMSAKICAgICBiZWZvcmUgdW5pbnN0YWxsaW5nIFdpZmUgMS4wLCBXaWZlIDEuMCB3aWxsIGRlbGV0ZSBNU01vbmV5IGZpbGVzIAogICAgIGJlZm9yZSBkb2luZyB0aGUgdW5pbnN0YWxsIGl0c2VsZi4gVGhlbiBNaXN0cmVzcyAxLjEgd2lsbCByZWZ1c2UgdG8gCiAgICAgaW5zdGFsbCwgY2xhaW1pbmcgaW5zdWZmaWNpZW50IHJlc291cmNlcy4KICAgICAKICAgICBCVUcgV09SSy1BUk9VTkRTCiAgICAgVG8gYXZvaWQgdGhlIGFib3ZlIGJ1ZywgdHJ5IGluc3RhbGxpbmcgTWlzdHJlc3MgMS4xIG9uIGEgZGlmZmVyZW50IAogICAgIHN5c3RlbSBhbmQgbmV2ZXIgcnVuIGFueSBmaWxlIHRyYW5zZmVyIGFwcGxpY2F0aW9ucyBzdWNoIGFzIExhcExpbmsgCiAgICAgNi4wLiAgQWxzbywgYmV3YXJlIG9mIHNpbWlsYXIgc2hhcmV3YXJlIGFwcGxpY2F0aW9ucyB0aGF0IGhhdmUgYmVlbiAKICAgICBrbm93biB0byBjYXJyeSB2aXJ1c2VzIHRoYXQgbWF5IGFmZmVjdCBXaWZlIDEuMC4KICAgICAKICAgICBBbm90aGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHJ1biBNaXN0cmVzcyAxLjAgdmlhIGEgVXNlTmV0IHByb3ZpZGVyIAogICAgIHVuZGVyIGFuIGFub255bW91cyBuYW1lLiBIZXJlIGFnYWluLCBiZXdhcmUgb2YgdGhlIHZpcnVzZXMgd2hpY2ggY2FuIAogICAgIGFjY2lkZW50YWxseSBiZSBkb3dubG9hZGVkIGZyb20gdGhlIFVzZU5ldC4KICAgICAKICAgICAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsaW5nb25lbiAoUm9jaHVzLCAzMS4gSmFuIDE5OTcsIDEyOjIxOjU0KToKS2xpbmdvbiBhZGFwdGF0aW9uIG9mIEVhcnRoIHNwb3J0OiAgRnVsbC1jb250YWN0IGdvbGYuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYW5keSAoU2x5Zm94LCAgNS4gRmViIDE5OTcsIDA5OjU0OjU5KToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gSGFuZHkgdW5kIGVpbmVtIFRhbXBvbj8KCgoKCgoKCgoKCgoKCgoKCgpEYXMgSGFuZHkgaXN0IHNjaG51cmxvcyB1bmQgZnVlciBBcnNjaGxvZWNoZXIuCgogIEdydXNzCiAgICBTbHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYW5keSAoTW9yZ290aCwgIDUuIEZlYiAxOTk3LCAxMDoyNzoxMyk6Cn4jISBybj1TbHlmb3ggcnQ9ODU1MTMyODk5IHJnPXdpdHplCn4jISB0aWQ9ODU1MTMyODk5CkhleSwgRHUga2FubnN0IERpciBtaXQgbmVtIFRhbXBvbiBhdWNoIGd1dCBkZW4gSW5uZW5hcnNjaCByZWluaWdlbi4gOy0pCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEhhbmR5IChTaWRvbGluLCAgNS4gRmViIDE5OTcsIDEwOjI4OjM3KToKfiMhIHJuPU1vcmdvdGggcnQ9ODU1MTM0ODMzIHJnPXdpdHplCn4jISB0aWQ9ODU1MTMyODk5CkluZm9ybWF0aW9uZW4gYXVzIGRlciBUb2lsZXR0ZW5zZXhzemVuZT8gOy0pCkZpbmQnIGljaCBndXQsIGRhc3MgbWljaCBkYXJ1ZWJlciBtYWwgamVtYW5kIGF1ZmtsYWVydC4gOi0pCgpTaWRvbGluLiBIYXQgd2llZGVyIHdhcyBnZWxlcm50LiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRvaWxldC1UZW5uaXMgKEtyZXRlaywgIDUuIEZlYiAxOTk3LCAxMjoyMDozNCk6Ckt1ZXJ6bGljaCBoaWVyIGluIGRlciBVbmkgYXVmJ20gTG9rdXMgZW50ZGVja3Q6CgpNYW4gbGFlc3N0IHNpY2ggZ2VtdWV0bGljaCBuaWVkZXIsIGRlciBCbGljayBzY2h3YW5rdCBuYWNoIHZvcm5lLCB1bmQgZG9ydApzdGVodCwgZGljayBtaXQgRWRkaW5nIGFuIGRpZSBUdWVyIGdlbWFsdDoKJ1BsYXkgdG9pbGV0IHRlbm5pcy4gTG9vayBsZWZ0LicKQWxzbyBndWNrdCBtYW4gcmVmbGV4YXJ0aWcgbmFjaCBsaW5rcywgdW5kIGRvcnQgc3RlaHQgZGFubjoKJ0xvb2sgcmlnaHQuJwpVbmQgZGFubiBhbiBkZXIgcmVjaHRlbiBXYW5kOgonTG9vayBsZWZ0LicKCkRhbWl0IGthbm4gbWFuIFNUVU5ERU4gdmVyYnJpbmdlbiA6LSkKCgpDaWFvLAoobWl0IFRlbm5pcy1IYWxzKQoKICAgICAgIHwgLyAgfFwgIHwtLSAgLS0tICB8LS0gIHwgLwogICAgICAgfDwgICB8LyAgfC0gICAgfCAgIHwtICAgfDwKICAgICAgIHwgXCAgfFwgIHwtLSAgIHwgICB8LS0gIHwgXAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaW50ZXJlc3NhbnQuLi4gKFNlbWlyYSwgIDUuIEZlYiAxOTk3LCAxOTo1NzoyOSk6CkViZW4gaW4gVGFya28gUmV1Yi4uLgoKdW50IE1pbmEKCkRhcyBpc3QgTWluYSBSZXViLCBkaWUgRWhlZnJhdSBkZXMgU3RhZHRncnVlbmRlcnMgVGFya28gUmV1Yi4gU2llIGlzdCBldHdhCnNlY2h6aWcgSmFocmUgYWx0IHVuZCB0cmFlZ3Qgc2Nod2FyemUgS2xlaWR1bmcuLi4KCnVudCBLbGVpZHVuZwoKRHUgZmluZGVzdCBhbiBNaW5hIGtlaW5lIEtsZWlkdW5nLi4uCgpBaGphLi4uU2F1bmE/IEZLSz8KCipncmluc2VuZCogU2VtaXJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVG9pbGV0LVRlbm5pcyAoTWFoYXRtdSwgIDYuIEZlYiAxOTk3LCAxMjowNTozNSk6Cn4jISBybj1LcmV0ZWsgcnQ9ODU1MTQxNjM0IHJnPXdpdHplCn4jISB0aWQ9ODU1MTQxNjM0Ckh1Y2ggLSBLcmV0ZWsgLSBzdHVkaWVyc3QgRHUgZXR3YSBiZWkgdW5zID8KRGEgZ2lidCBlcyBhdWNoIHNvIHdhcy4KTmFqYSAtIHVuZCBkaWUgYW5kZXJlbiBuZXR0ZW4gSGVycmVud2l0emU6CgpTdWNoIG5pY2h0IG5hY2ggV2l0emVuIGFuIGRlciBXYW5kLApkZW4gZ3JvZXNzdGVuIGhhZWx0c3QgRHUgaW4gZGVyIEhhbmQuCgpHbG9pbiBtYXNraWVydCBhbHMga2xlaW5lciBCcnVkZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRvaWxldC1UZW5uaXMgKEFzbW9kaXMsICA2LiBGZWIgMTk5NywgMTc6MTE6MDIpOgp+IyEgcm49TWFoYXRtdSBydD04NTUyMjcxMzUgcmc9d2l0emUKfiMhIHRpZD04NTUxNDE2MzQKJ1RvaWxldC1UZW5uaXMnIGhhYmVuIHdpciBoaWVyIGF1Y2gsIGRlciBHYWcgc2NoZWludCBzY2hvbiB1cmFsdAp6dSBzZWluIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUb2lsZXQtVGVubmlzIChHdXlicnVzaCwgIDYuIEZlYiAxOTk3LCAxNzo0MzozOCk6Cn4jISBybj1Bc21vZGlzIHJ0PTg1NTI0NTQ2MiByZz13aXR6ZQp+IyEgdGlkPTg1NTE0MTYzNApTZWlkIG51ciBmcm9oLCBkYXNzIElociBuaWNodCBkaWUgQmFsbGp1bmdzIGVyc2V0emVuIG11ZXNzdC4KCkd1eWJydXNoIGlzIGxhbmd3ZWlsaWcgKHNvIG9kZXIgc28pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6IChTaWRvbGluLCAgNy4gRmViIDE5OTcsIDE3OjUyOjM3KToKR2VuZXJhbCBNb3RvcnMgSW50cm9kdWNlcyBOZXcgSW5zdGFudC1XaW4gQWlyYmFncwoKREVUUk9JVC0tV2l0aCB0aGlyZC1xdWFydGVyIHNhbGVzIHNsdWdnaXNoIGFuZCBpdHMgc2hhcmUgb2YgdGhlIGRvbWVzdGljCm1hcmtldCBkb3duIDExIHBlcmNlbnQgc2luY2UgMTk5MywgR2VuZXJhbCBNb3RvcnMgdW52ZWlsZWQgYSBuZXcgaW5zdGFudC13aW4KYWlyYmFnIGNvbnRlc3QgTW9uZGF5LgpUaGUgbmV3IGFpcmJhZ3MsIHdoaWNoIGF3YXJkIGZhYnVsb3VzIHByaXplcyB1cG9uIHZpb2xlbnQsIGhpZ2gtc3BlZWQgaW1wYWN0CndpdGggYW5vdGhlciBjYXIgb3Igc3RhdGlvbmFyeSBvYmplY3QsIHdpbGwgY29tZSBzdGFuZGFyZCBpbiBhbGwgb2YgdGhlCmNvbXBhbnkncyAxOTk3IGNhcnMuCiJBdXRvIGFjY2lkZW50cyBoYXZlIG5ldmVyIGJlZW4gc28gZXhjaXRpbmcsIiBzYWlkIEdNIHZpY2UtcHJlc2lkZW50IG9mCm1hcmtldGluZyBSb2dlciBKZW5raW5zLCB3aG8gZXhwZWN0cyB0aGUgY29udGVzdCB0byBib29zdCAxOTk3IHNhbGVzCnNpZ25pZmljYW50bHkuCldoZW4geW91IHBsYXkgdGhlIG5ldyBHTSBJbnN0YW50IFdpbiBBaXJiYWcgR2FtZSwgeW91ciBuZXh0IGZhdGFsIGNvbGxpc2lvbgpjb3VsZCBtZWFuIGEgdHJpcCBmb3IgdHdvIHRvIFN1cGVyIEJvd2wgWFhYSSBpbiBOZXcgT3JsZWFucy4gT3IgYSB5ZWFyJ3Mgd29ydGgKb2YgZnJlZSBNb2JpbCBnYXNvbGluZS4KVGhvdWdoIGl0IGRvZXMgbm90IG9mZmljaWFsbHkgYmVnaW4gdW50aWwgSmFuLiAxLCAxOTk3LCB0aGUgYWlyYmFnIHByb21vdGlvbgppcyBhbHJlYWR5IGJlaW5nIHRlc3RlZCBpbiBzZWxlY3QgY2l0aWVzLCB3aXRoIGZlZWRiYWNrIG92ZXJ3aGVsbWluZ2x5CnBvc2l0aXZlLgoiQXMgc29vbiBhcyBteSBjYXIgc3RhcnRlZCB0byBza2lkIG91dCBvZiBjb250cm9sLCBJIHRob3VnaHQgdG8gbXlzZWxmLCAnT2gsCmJveSwgdGhpcyBjb3VsZCBiZSBpdC0tSSBjb3VsZCBiZSBhIGJpZyB3aW5uZXIhIiAKc2FpZCBDaW5jaW5uYXRpJ3MgTWFydGluIEZyZWxrcywgd2hvIGxvc3QgaGlzIHdpZmUgYnV0IHdvbiAkNTAgU3VuZGF5IHdoZW4gdGhlCkJ1aWNrIExlU2FicmUgdGhleSB3ZXJlIGRyaXZpbmcgaGl0IGFuIG9pbCBzbGljayBhdCA2MCBNUEggYW5kIHNsYW1tZWQgaW50byBhbgpvbmNvbWluZyB0cnVjayAuCiJXaGVuIHRoZSBjYXIgc3RvcHBlZCByb2xsaW5nIGRvd24gdGhlIGVtYmFua21lbnQsIEkga25ldyBFbGxlbiB3YXMgZGVhZCwgYnV0CmFsbCBJIGNvdWxkIHRoaW5rIGFib3V0IHdhcyBnZXR0aW5nIHRoZSBibG9vZCBhbmQgZ2xhc3Mgb3V0IG9mIG15IGV5ZXMgc28gSQpjb3VsZCByZWFkIHRoYXQgYWlyYmFnISIKIkl0J3MgcmVhbGx5IGFkZGljdGl2ZSwiIHNhaWQgU2FjcmFtZW50bywgQ0EsIHJlc2lkZW50IE1hcmpvcmllIEthbXAsIHNwZWFraW5nCmZyb20gaGVyIGhvc3BpdGFsIGJlZCB3aGVyZSBzaGUgaXMgbGlzdGVkIGluIGNyaXRpY2FsIGNvbmRpdGlvbiB3aXRoIHNldmVyZQpicmFpbiBoZW1vcnJoYWdpbmcgYW5kIGEgcHVuY3R1cmVkIHJpZ2h0IGx1bmcuIAoiSSd2ZSBhbHJlYWR5IGNyYXNoZWQgZm91ciBjYXJzIHRyeWluZyB0byB3aW4gdGhvc2UgU3VwZXIgQm93bCB0aWNrZXRzLCBidXQgSQpzdGlsbCBoYXZlbid0IHdvbi4gSSBzd2VhciwgSSdtIGdvaW5nIHRvIHdpbiB0aG9zZSB0aWNrZXRzLS1ldmVuIGlmIGl0IGtpbGxzCm1lISIgCkthbXAgc2FpZCB0aGF0IGFzIHNvb24gYXMgc2hlIGlzIHdlbGwgZW5vdWdoLCBzaGUgcGxhbnMgdG8gYnV5IGEgbmV3IFBvbnRpYWMKQm9ubmV2aWxsZSBhbmQgZHJpdmUgaXQgaW50byBhIHRyZWUuCkdNIG9mZmljaWFscyBhcmUgbm90IHN1cnByaXNlZCB0aGUgYWlyYmFnIGNvbnRlc3QgaGFzIGJlZW4gc28gd2VsbCByZWNlaXZlZC4gCiJJbiB0aGUgcGFzdCwgbm9ib2R5IHJlYWxseSBsaWtlZCBjYXIgd3JlY2tzLCBhbmQgdGhhdCdzIHVuZGVyc3RhbmRhYmxlLiAKQWZ0ZXIgYWxsLCB0aGV5J3JlIHNjYXJ5IGFuZCBkYW5nZXJvdXMgYW5kLCBzb21ldGltZXMsIGV2ZW4gZmF0YWwsIiAKR00gQ0VPIFBhdWwgT2ZmZXJtYW4gc2FpZC4gIkJ1dCBub3csIHdoZW4geW91IGRyaXZlIGEgbmV3IEdNIGNhciBvciB0cnVjaywKeW91ciBuZXh0IHNlcmlvdXMgY3Jhc2ggY291bGQgbWVhbiBzZXJpb3VzIGNhc2guIFdobyB3b3VsZG4ndCBsaWtlIHRoYXQ/IgpPZmZlcm1hbiBhZGRlZCB0aGF0IGluIHRoZSBldmVudCBhIG1vdG9yaXN0IHdpbnMgYSBwcml6ZSBidXQgaXMga2lsbGVkLCB0aGF0CnByaXplIHdpbGwgYmUgYXdhcmRlZCB0byB0aGUgbmV4dCBvZiBraW4uCkFjY29yZGluZyB0byBHTSdzIG9mZmljaWFsIGNvbnRlc3QgcnVsZXMsIG9kZHMgb2Ygd2lubmluZyB0aGUgZ3JhbmQgIHByaXplLCBhCmJyYW5kLW5ldyAxOTk3IEN1dGxhc3MgU3VwcmVtZSwgYXJlIDEgaW4gIDQzLDAwMCwwMDAuIApTdGF0aXN0aWNhbCBleHBlcnRzLCBob3dldmVyLCBzYXkgdGhlIHJlYWwgY2hhbmNlcyBvZiAgd2lubmluZyBhcmUKc2lnbmlmaWNhbnRseSB3b3JzZS4gCklmIHlvdSBmYWN0b3IgaW4gdGhlIG9kZHMgb2YgZ2V0dGluZyAgaW4gYSBzZXJpb3VzIGNhciBhY2NpZGVudCBpbiB0aGUgZmlyc3QKcGxhY2UtLWFwcHJveGltYXRlbHkgMSBpbiAgNzIwLDAwMC0tdGhlIGFjdHVhbCBvZGRzIG9mIHdpbm5pbmcgYSBwcml6ZSBlYWNoCnRpbWUgeW91IHN0ZXAgaW4geW91ciAgY2FyIGFyZSBtb3JlIGxpa2UgMSBpbiAzMSB0cmlsbGlvbi4gCkZ1cnRoZXIsIGV2ZW4gaWYgb25lIGlzIGluIGFuICBhY2NpZGVudCwgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoZSBhaXJiYWcgd2lsbAppbmZsYXRlLiAKICJJIHdhcyAgcmVjZW50bHkgYnJvYWRzaWRlZCBieSBhIGRydW5rIGRyaXZlciBpbiBteSBuZXcgQ2hldnkgQ2F2YWxpZXIsIgpzYWlkICBFcmllLCBQQSwgcmVzaWRlbnQgSmVycnkgUG9sYW5lci4gICAgCnRpZmljYXRlLiBUaGF0J3MgIGp1c3Qgd3JvbmcuIiA8CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcgKEtyZXRlaywgMTAuIEZlYiAxOTk3LCAxMzo1OTowOSk6CltTZWhlcjpaaW5vXSBpY2ggZ2xhdWIsIGRhcyB3YWVyIGx1c3RpZywgd2llIGRhIG5lIGhvcmRlIHZvbiAyMCBzZWhlcm4KW1NlaGVyOlppbm9dIHJlaW5nZWh0IHVuZCBzdGlyYnQgPDEzOjUxOjE3PgpbU2VoZXI6U3RpbmddIG9obWFubiwgZGFzIGthbm4gZG9jaCBuaWNodCBzb29vbyBzY2h3ZXIgc2VpbiwgaXJnZW5kZWluZSB0YWt0aWsKW1NlaGVyOlN0aW5nXSBkaWUgZnVuenQgbXVzcyBlcyBkb2NoIGdlYmVuIDwxMzo1MjowMz4KW1NlaGVyOlJpbmdvcl0gamEsIHJlaW5nZWhlbiB1bmQgc3RlcmJlbiB6LkIuIDwxMzo1MjoyMT4KW1NlaGVyOlN0aW5nXSBuZWluLCBpY2ggd2lsbCBtZWluZSBhdXNydWVzdHVuZyB3aWVkZXIgOiggc2NoLi4gPDEzOjUyOjM4PgpbU2VoZXI6VG9tbXldIGhvbCBzZSBkb2NoIDwxMzo1Mjo0Nz4KW1NlaGVyOlN0aW5nXSBkYXMgd2FyIG1laW4gbGV0enRlciBiZXN1Y2ggaW4gcGFyYXZsYW5kIGZ1ZXIgbGFuZ2UgemVpdApbU2VoZXI6U3RpbmddIDwxMzo1Mjo1MT4KW1NlaGVyOkFzbW9kaXNdIFd1cnN0c2VoZXIgOikgPDEzOjUzOjAxPgpbU2VoZXI6QXNtb2Rpc10gaG1tLCB3ZW5uIGRpZSBzdGFkdG93IDwxMzo1MzozMD4KW1RvZDpMYXJzXSBFaW4gT3JrIGhhdCBnZXJhZGUgQXNtb2RpcyB1bWdlYnJhY2h0LiA8MTM6NTM6MzA+CltUb2Q6TGFyc10gRWluIE9yayBoYXQgZ2VyYWRlIFN0aW5nIHVtZ2VicmFjaHQuIDwxMzo1Mzo0Nz4KW1NlaGVyOlRvbW15XSBGTFcgPDEzOjUzOjQyPgpbU2VoZXI6Wmlub10gc2VsYmVyIHd1cnN0c2VoZXIgOikpIDwxMzo1Mzo0Mj4KW1NlaGVyOlNjaGF1aV0gZGFzIGlzdCB3YXMgZnVlciBsZXR6dCB3b3J0ZSAuLiA8MTM6NTM6NTY+CltTZWhlcjpBc21vZGluYV0gaHVwcHMsIGRhcyB3YXIgamV0enQgZGllIGZhbHNjaGUgZmx1Y2h0cmljaHR1bmcgPDEzOjU0OjE2PgoKCioqbGFjaCoqIERhcyBzb3dhcyBkZW4gYWx0ZW4gSGFzZW4gLSBhZWgsIFRldWZlbG4gLSBhdWNoIG5vY2ggcGFzc2llcnQuLi4KCgogICAgICAgfCAvICB8XCAgfC0tICAtLS0gIHwtLSAgfCAvCiAgICAgICB8PCAgIHwvICB8LSAgICB8ICAgfC0gICB8PAogICAgICAgfCBcICB8XCAgfC0tICAgfCAgIHwtLSAgfCBcCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gTGllZCBmdWVyIE9ldHRpIChHcmltbWJvcm4sIDEwLiBGZWIgMTk5NywgMjE6MDA6MDEpOgp+IyEgb249U251Z2dsZSBvdD04NTU2MDQ3MDIgb2c9c2NobWFycm4KRWluIExpZWQgZnVlciBPZXR0aS4uICAgICAgICAgICAgICAgICAgIE06RWluIGJpc3NjaGVuIEZyaWVkZW4gKE5pY29sZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQ6RXR3YXMgZnJlaSBuYWNoIGRpdmVyc2VuIFZvcmxhZ2VuCjopCgoKR2VtZWluIHdpZSBDaGFvdGVuLCB3aWUgZWluIEthZW1wZmVyIGJydXRhbCwKd2llIGVpbmUgS2xpbmdlIGF1cyBlaXNpZ2VtIFN0YWhsLAp3aWUgZWluIEtvZXRlciwgZGVuIGtlaW5lciBtZWhyIG1hZywKZnVlaGwgaWNoIG1pY2ggYW4gbWFuY2hlbSBUYWcuCgpJY2ggc2VoZSBkaWUgTWFnaWVyLCBkaWUgdWViZXIgbWlyIHNpbmQKdW5kIGhvZXJlIGRpZSBTY2hyZWllIGRlciBTcGllbGVyIGltIFdpbmQsCmljaCBzaW5nZSBhdXMgSGFzcyBhdWYgZGllIEVyemlzIG1laW4gTGllZAp1bmQgaG9mZmUsIGRhc3MgZXR3YXMgZ2VzY2hpZWh0LgoKUmVmOiBFaW4gYmlzc2NoZW4gUmF1ZmVuLCBlaW4gYmlzc2NoZW4gU2F1ZmVuCnVuZCBudXIgZGllIHNjaG9lbnN0ZW4gRnJhdWVuIGthdWZlbiwKZWluIGJpc3NjaGVuIG1ldHplbG4sIGVpbiBiaXNzY2hlbiBtZXVjaGVsbgppbSBNb3JnZW5ncmF1ZW4sIGRhcyB3dWVuc2NoJyBpY2ggbWlyLgoKSWNoIHdlaXNzLCBtZWluZSBMaWVkZXIsIGRpZSBhZW5kZXJuIG5pY2h0IHZpZWwuCkljaCBiaW4gbnVyIGVpbiBTZWhlciB1bmQgYWxsZXMgZWluIFNwaWVsLgpBbGxlaW4gYmluIGljaCBoYXJtbG9zLCBkb2NoIG1laW5lIGZyZXVuZGUgaW0gTXVkLApkaWUgbWFjaGVuIEV1Y2ggYWxsZSBwbGF0dCEgCgpSZWYuCgpTaW5ndCBtaXQgbWlyIG1laW4ga2xlaW5lcyBMaWVkLAogKHsiYmlzIGRpZSBXZWx0IGluIFRydWVtbWVybiBsaWVndCIsCiAgICJiaXMgZGVyIE9ldHRpIHdpZWRlciBmbGllZ3QiLAogICAiYWxsZSBkaWUgSWhyIE9ldHRpIGxpZWJ0In0pCgpQUyBGYWxscyBqZW1hbmQgZGllIEdpdGFycmVuYmVnbGVpdHVuZyB6dSBlaW4gYmlzc2NoZW4gRnJpZWRlbiBoYXQsIHdhZXIgaWNoCmZ1ZXIgbmUgTWl0dGVpbHVuZyBkYW5rYmFyIDotKQoKWVRTbnVnZ2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXIgZGlza3JpbWluaWVydC4uLiAoSGFyLCAxMC4gRmViIDE5OTcsIDIxOjAwOjE5KToKTW9yZ2VucywgaGFsYiB6ZWhuIGluIFBvbGVuLi4uCgoKLi4uV28gaXN0IG1laW4gS25vcHBlcnMgPyE/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9yc2ljaHQgZ2VtZWluICEgKEJlZWx6ZWJ1YiwgMTAuIEZlYiAxOTk3LCAyMTowMjoxNSk6CldhcyBpc3QgZGFzOgozIENvbnRhZ2FuLUtpbmRlciBzaXR6ZW4gYW4gZWluZW0gVGlzY2gsIGF1ZiBkZW0gMSBLYXJ0ZW5zcGllbCBsaWVndC4KCgoKCgoKCgoKCgoKCgoKTWlzc2lvbiBJbXBvc3NpYmxlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFyIHdpciBnZXNjaG1hY2tsb3MuLi4gKEhhciwgMTAuIEZlYiAxOTk3LCAyMTowMjo1MCk6CkFsbGUgTWVuc2NoZW4gc2luZCBpbnRlbGxpZ2VudCwgZGllIEF1c25haG1lbiBoYWJlbiBkaWUgUmVnZWwuCgpIYXIgKHdlaXNzIG5jaWh0b2IgZXIgZGFzIG5vY2h0IGx1c3RpZyBmaW5kZXQpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2luZG93cz8gKFN1c2hpLCAxMC4gRmViIDE5OTcsIDIyOjA1OjI4KToKQWNodHVuZywgamV0enQgd2lyZCdzIGxhbmcuLi4KU2ltYmEgc2F0IGF3a3dhcmRseSBvbiB0aGUgbW9jayBhcnQtZGVjbyBzb2ZhIGluIHRoZSBsb3VuZ2Ugb2YgV2lsbGlhbQpHYXRlcyBJSUksIGF0IGhpcyBsdXh1cnkgU2VhdHRsZSBtYW5zaW9uLiBEZXRlcm1pbmVkIHRvIGJlIHRoZSBiZXN0CnJ1bGVyIGhlIGNvdWxkIGJlLCBTaW1iYSBoYWQgZGVjaWRlZCB0byBtZWV0IHdpdGggb3RoZXIgZ3JlYXQgbGVhZGVycyBvZgpoaXMgdGltZS4uLmFuZCB0aGUgbmFtZSAnQmlsbCBHYXRlcycgaGFkIGtlcHQgY29taW5nIHVwLgoKU2ltYmEgaGFkIGJlZW4gdGFsa2luZyB0byB0aGUgc29mdHdhcmUgZ2lhbnQgZm9yIHNvbWUgdGltZSBub3csIGJ1dCBoZQp3YXMgc3RpbGwgaGF2aW5nIGRpZmZpY3VsdHkgdW5kZXJzdGFuZGluZyBqdXN0IHdoYXQgdGhlIG1hbiBkaWQuCgonU28gd2hhdCB5b3UncmUgdGVsbGluZyBtZSBpcyB5b3UgbWFrZSB0aGlzIHRoaW5nIGNhbGxlZD8uLi4nCgonU29mdHdhcmUnIHByb21wdGVkIEdhdGVzLgoKJ1doaWNoIHlvdSBoYXZlIHRvIHB1dCBvbiBhbm90aGVyIHRoaW5nIGNhbGxlZCBhPy4uLicKCidDb21wdXRlcicuCgonQW5kIGJlY2F1c2UgZXZlcnlvbmUgdXNlcyB5b3VyLi4uJwoKJ1NvZnR3YXJlJy4KJ1lvdSd2ZSBiZWNvbWUgYSBsZWFkZXIgdG8geW91ciBwZW9wbGU/JwoKR2F0ZXMgc3F1aXJtZWQsIG5lcmRpc2hseSwgb24gaGlzIGNoYWlyLiAnV2VsbCwgaXQncyBhIGxpdHRsZSBtb3JlCmNvbXBsZXggdGhhbiB0aGF0LCBhbmQgSSB3b3VsZG4ndCBzYXkgSSdtIGEgbGVhZGVyIGluIHRoZSBzYW1lIHdheSB5b3UKYXJlLi4uYnV0JyBHYXRlcycgZXllcyBzdGFydGVkIHRvIGdsYXplIGV2ZXIgc28gc2xpZ2h0bHkgYXMgdGhlIHRob3VnaHRzCm9mIHRvdGFsIHdvcmxkIGRvbWluYXRpb24gY2FtZSBpbnRvIGhpcyBoZWFkLi4uYWdhaW4uIFRoZSByZWN1cnJpbmcKZHJlYW0gd2FzIHN0YXJ0aW5nIG92ZXIuCgpTaW1iYSBzdG9wcGVkIEdhdGVzIGluIG1pZCB0aG91Z2h0LiAnU28gdGhpcyBzb2Z0d2FyZSBoYXMgYnJvdWdodCB5b3UKZ3JlYXQgcmljaGVzIHdoaWNoIGxldCB5b3UgZ2V0IGV2ZXJ5dGhpbmcgeW91IHdhbnQ/JwoKU25hcHBpbmcgYmFjayB0byB0aGUgcmVhbCB3b3JsZCwgJ1dlbGwsIEkgc3VwcG9zZSBzbycgcmVwbGllZCBHYXRlcy4KCidTbyB5b3UgbmV2ZXIgaGF2ZSB0byBnbyBodW50aW5nIGZvciBmb29kPyBZb3UgZG9uJ3QgaGF2ZSB0byBkZWZlbmQgeW91cgpraW5nZG9tIGFnYWluc3QgaG9zdGlsZSBpbnZhZGVycz8gQW5kIHlvdSBnZXQgdG8gbGl2ZSBpbiB0aGlzIHdhcm0sIGRyeSwKbHV4dXJ5IGNhdmUsIGVyIGhvdXNlLCBkb2luZyBqdXN0IGFib3V0IHdoYXRldmVyIHlvdSBwbGVhc2UuJwoKJ1dlbGwsIEkgZG8gaGF2ZSBhIHByZXR0eSBob3QgdGVhbSBvZiBsYXd5ZXJzIHdobyBkbyBzb21lIGhvc3RpbGUKbGl0aWdhdGluZyB0byBkZWZlbmQgbXkgY29tcGFueSwgYnV0IHdoZW4geW91IHB1dCBpdCB0aGF0IHdheSwgaXQgZG9lcwpzb3VuZCBsaWtlIGEgcHJldHR5IGdvb2QgbGlmZSBkb2Vzbid0IGl0LicKClNpbWJhIHRob3VnaHQgdG8gaGltc2VsZiAnSGUgaGFzIGFsbCB0aGlzIHdlYWx0aCwgYW5kIGEgbHV4dXJ5IHBhZCB0aGF0cwp3YXJtIGFuZCBkcnksIG5ldmVyIGhhcyB0byBodW50IHlldCBuZXZlciBoYXMgdG8gZ28gaHVuZ3J5Li4uYW5kIG5ldmVyCmhhcyB0byByaXNrIGhpcyBsaWZlIGZvciBhbGwgdGhpcywgd2hpbGUgYWxsIEkgaGF2ZSBpcyBhIGNvbGQsIGRhbXAKY2F2ZSwgaGFsZiBhIHplYnJhIG5vdyBhbmQgdGhlbiBhbmQgYSBidW5jaCBvZiBwdXNoeSBsaW9uZXNzZXMgdG8gbG9vawphZnRlci4uLmhtbScuIEEgd2lzdGZ1bCBsb29rIGNyb3NzZWQgdGhlIHlvdW5nIGxpb24ncyBmYWNlLgoKJ0NvdWxkIEkgaW50ZXJlc3QgeW91IGluIGEgY2FyZWVyIHN3YXA/JwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk1lYW53aGlsZSwgaW4gYSBkYXJrLCBkYW5rLCBob3ZlbCBzb21ld2hlcmUgaW4gQ2FsaWZvcm5pYSwgdGhlIHNvdW5kIG9mCmduYXNoaW5nIHRlZXRoIGFuZCBtdW1tYmxlZCBjdXJzaW5nIGNvdWxkIGJlIGhlYXJkLgoKJ0JpbGwgKioqKioqIEdhdGVzLCBzaGFyZG5mYXJkbicgYmdncnJkc24nIE1pY3Jvc3RmdCEnIGN1cnNlZCBhIGxhcmdlLAptaWdodHkgbWFuLCB3aG8gaGFkIGJlY29tZSB3aXplbmQgYW5kIGJlbnQgbGlrZSBhbiBvbGQgd2l0Y2ggYnkgdGhlIHB1cmUKaGF0cmVkIHRoYXQgZmlsbGVkIGhpcyBib2R5LiAnSSdsbCBnZXQgcmlkIG9mIHRoYXQgbWFuIGlmIGl0IHRha2VzIGFsbApteSBkYXlzIHRvIGRvIGl0JyBoZSByYW50ZWQuCgpTY2FyIGhhZCBiZWVuIGxpc3RlbmluZyBxdWlldGx5LCBhbmQgc2Vuc2VkIGFuIG9wcG9ydHVuaXR5LiBIZSBzdGVwcGVkCm91dCBvZiB0aGUgc2hhZG93cywgc3RhcnRsaW5nIHRoZSBodW1hbiwgYW5kIHNwb2tlLgonTGFycnksIExhcnJ5LCBkbyBjYWxtIGRvd24uIEFsbCB0aGlzIHJhbnRpbmcgaXMgZ2V0dGluZyB5b3UKbm93aGVyZS4uLmFuZCBpdHMgZ2l2aW5nIG1lIHF1aXRlIHRoZSBtb3N0IGRyZWFkZnVsIGhlYWRhY2hlLicKCkVsbGlzb24gd2FzIHN0cnVjayBkdW1iIC0gcHJvYmFibHkgZm9yIHRoZSBmaXJzdCB0aW1lIGluIGhpcyBsaWZlLgoKU2NhciBjb250aW51ZWQsIGhpcyB2b2ljZSB0dXJuaW5nIHRvIGEgZmVhcmZ1bCBzY2hlbWluZyB0b25lLiAnSXQgc291bmRzCnRvIG1lIGFzIHRob3VnaCB5b3UgbmVlZCBzb21lIGhlbHAuLi5hIHBsYW4sIHBlcmhhcHM/JyBXaXRoIGFuIGV2aWwgZ3JpbgpoZSBzYWlkICdMZXQgbWUgdGVsbCB5b3UgYWJvdXQgdGhlIE5ldHdvcmsgQ29tcHV0ZXIuLi4nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZnRlcndvcmQ6CgpFZCB3YXMgcm9sbGluZyBvbiB0aGUgZmxvb3IgaW4gYW4gdW5jb250cm9sYWJsZSBmaXQgb2YgaHlzdGVyaWNhbApsYXVnaHRlciwgYXMgd2VyZSBTaGVuemkgYW5kIEJhbnphaS4gJ0JveSwgaXMgdGhpcyBtYW4gZXZlciBmdW5ueScKcXVpcHBlZCBCYW56YWkuCgonSXRzIHRoZSB3YXkgaGUgdGVsbHMgJ2VtJyBzYWlkIFNoZW56aSBiZWZvcmUgY29sbGFwc2luZyBpbnRvIGFub3RoZXIKZml0IG9mIGdpZ2dsZXMuCidObyB3YWl0LCBJJ20gc2VyaW91cy4uLlRoaXMgdGltZSBpdCdsbCB3b3JrLiBXZSdsbCBoYXZlIHRoZSBiaWdnZXN0CmNvbXB1dGVyIGNvbXBhbnkgaW4gdGhlIHdvcmxkLicKCkJ1dCBTdGV2ZSBKb2JzJyBwbGVhZGluZyB2b2ljZSB3YXNuJ3QgY29udmluY2luZyBhbnlvbmUuIFRoZSB0aHJlZQpoeWVuYXMgc2ltcGx5IGxhdWdoZWQgYWxsIHRoZSBtb3JlLgoKClRoZSBFbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVm9yc2ljaHQgZ2VtZWluICEgKFFpdGVzcywgMTEuIEZlYiAxOTk3LCAxMDoyNjo0OSk6Cn4jISBybj1CZWVsemVidWIgcnQ9ODU1NjA0OTM1IHJnPXdpdHplCn4jISB0aWQ9ODU1NjA0OTM1CmRhcyBpc3QgendhciBnZXNjaG1hY2tsb3MsIHVuZCBhdXNzZXJkZW0gc2NocmVpYnQgbWFuIENvbnRlcmdhbi4KClFJKiogdHV0IHdhcyB2dWVyIGRpIGRldWRzY2hlIHJhZWNoc2NocmFpcHVuawoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBVSAoUm9jaHVzLCAxMS4gRmViIDE5OTcsIDE1OjQ1OjM0KToKSG90bGluZTogIkd1dGVuIFRhZywgaGllciBpc3QgZGllIEhvdGxpbmUgZGVyIFhZIEdtYkguIFdpZSBrYW5uIGljaCBJaG5lbgpoZWxmZW4/IgpEQVU6ICJJY2ggaGFiZSBlaW4gUHJvYmxlbSBtaXQgZWluZXIgSWhyZXIgRXJ3ZWl0ZXJ1bmdza2FydGVuLiBTaWUKZnVua3Rpb25pZXJ0IG5pY2h0LiIKSG90bGluZTogIkhhYmVuIFNpZSBzY2hvbiBkYXMgbWl0Z2VsaWVmZXJ0ZSAnQ2hlY2snIFByb2dyYW1tIGxhdWZlbgpsYXNzZW4/IgpEQVU6ICJOZWluLCB3aWUgc2llaHQgZGFzIGRlbm4gYXVzPyIKSG90bGluZTogIklzdCBhdWYgZGVyIGVyc3RlbiBUcmVpYmVyZGlzay4iCkRBVTogIlVuZCB3aWUgc2llaHQgZGllc2UgJ0Rpc2snIGF1cz8iCkhvdGxpbmUgKGxlaWNodCB2ZXJ3dW5kZXJ0KTogIk5hLCBzY2h3YXJ6LiBXaWUgdWVibGljaC4iCkRBVTogIlNpZSBtZWluZW4gYWxzbyBuaWNodCBkaWVzZSBzaWxicmlnZSBTY2hlaWJlIG1pdCBkZW0gTG9jaD8iCkhvdGxpbmUgKGJlbGVocmVuZCk6ICJOZWluLCBkYXMgaXN0IGRpZSBBbndlbmR1bmdzc29mdHdhcmUgYXVmIENELVJPTS4gSWNoCm1laW5lIG5hdHVlcmxpY2ggZGllIFRyZWliZXJkaXNrZXR0ZW4gZnVlciBkaWUgSW5zdGFsbGF0aW9uLiBMZWdlbiBTaWUKZG9jaCBiaXR0ZSBtYWwgZGllIG1pdCBkZXIgWmFobCAnMScgZWluLiAgICA8cGF1c2U+ICAgIEFiZXIgYml0dGUgaW5zCnJpY2h0aWdlIExhdWZ3ZXJrISIKREFVOiAiSXN0IGVybGVkaWd0LiBXYXMgbWFjaGUgaWNoIGpldHp0PyIKSG90bGluZTogIlN0YXJ0ZW4gU2llIG51biBkYXMgUHJvZ3JhbW0gJ0NoZWNrJywgZGFzcyBkYW5uIGF1dG9tYXRpc2NoCmFibGFldWZ0LiIKREFVOiAiVW5kIHdpZSBnZWh0IGRhcz8iCiguLi5lcyBmb2xndCBlaW4gbGFlbmdlcmVyIERpYWxvZywgaW4gZGVtIGRlciBub2NoIGdlZHVsZGlnZSBIb3RsaW5lciBkZW0KREFVIGVya2xhZXJ0LCB3aWUgZXIgdW50ZXIgRE9TIGVpbiBzaW1wbGVzIEVYRS1GaWxlIHN0YXJ0ZW4ga2Fubi4uLikKSG90bGluZTogIkJyaW5ndCBkYXMgUHJvZ3JhbW0gbnVuIGRpZSAnT2snIE1lbGR1bmc/IgpEQVU6ICJOZWluLiJIb3RsaW5lOiAiVmVyc3VjaGVuIFNpZSBtYWwgZGllIFRhc3RlIEY5LiBUdXQgc2ljaCBkYW5uIGV0d2FzPyIKREFVOiAiSmEsIGRhcyBQcm9ncmFtbSBtZWxkZXQgJ0thcnRlIG5pY2h0IGdlZnVuZGVuJy4iCkhvdGxpbmUgKHd1bmRlcnQgc2ljaCBlcm5ldXQpOiAiQXVmIHdlbGNoZXIgSU8tQWRyZXNzZSBzdGVodCBkZW5uIGRpZQpLYXJ0ZT8iCkRBVTogIldpZSBlcmtlbm5lIGljaCBkYXM/IgpIb3RsaW5lIChzY2hvbiBsZWljaHQgdmVyYWVyZ2VydCk6ICJOYSwgYW4gZGVyIFN0ZWxsdW5nIGRlciByb3RlbgpEaXAtU2NoYWx0ZXIuIFdpZSBzaW5kIGRlbm4gZGllIGVpbmdlc3RlbGx0PyIKREFVIChzZWhyIHNjaG5lbGxlIEFudHdvcnQpOiAib2Jlbiwgb2JlbiwgdW50ZW4sIG9iZW4sIHVudGVuLCAuLi4iCkhvdGxpbmUgKHN0YXJrIHZlcnd1bmRlcnQpOiAiRGllIEFkcmVzc2UgaXN0IGphIHZvZWxsaWcga29ycmVrdC4gSXN0IGRlbm4KZGVyIEp1bXBlciBKMTIgZ2VzdGVja3Q/IgpEQVUgKHdpZWRlciBzZWhyIHNjaG5lbGwpOiAiSmEuIgpIb3RsaW5lIChsYW5nc2FtIHJhdGxvcyk6ICJBdWNoIGRhcyBpc3Qga29ycmVrdC4gSWNoIGdsYXViZSBkYXMgQmVzdGUgd2lyZApzZWluLCBzaWUgYmF1ZW4gbnVuIGRpZSBLYXJ0ZSBtYWwgd2llZGVyIGF1cyB1bmQgc2NoaWNrZW4gc2llIHp1IHVucyBlaW4uIgpEQVU6ICJPaCwgZGFzIGlzdCBuaWNodCBub2V0aWcuIERpZSBLYXJ0ZSBsaWVndCBkb2NoIHNjaG9uIGRpZSBnYW56ZSBaZWl0CnZvciBtaXIgYXVmIGRlbSBUaXNjaC4gSWNoIHBhY2tlIHNpZSBnbGVpY2ggZWluLiBXb2hpbiBzb2xsIGljaCBTaWUKc2NoaWNrZW4/IgpIb3RsaW5lOiAobWFuIGhvZXJ0IG51ciBub2NoIGVpbmVuIHRpZWZlbiBzY2hsdWNoemVuZGVuIEhldWxlciB1bmQgd2llCmplbWFuZCBmbHVjaHRhcnRpZyBkZW4gUmF1bSB2ZXJsYWVzc3QhISEpCgooV2FocmUgQmVnZWJlbmhlaXQgYXVzIGRlciBIb3RsaW5lIGVpbmVzIEthcnRlbmhlcnN0ZWxsZXJzKS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmltcG9ydGllcnQgKFJpa3VzLCAxMi4gRmViIDE5OTcsIDIzOjEyOjUyKToKSGksIGVpbmUgQmVrYW5udGUgZXJ6YWVobHRlIG1pciB2b3JoaW4gZWJlbiBmb2xnZW5kZXMsIGtlaW5lIEFobnVuZywgb2IgZGVyCmFsdCBpc3QsIGljaCBrYW5uIG1pciBuaWUgV2l0emUgbGFlbmdlciBhbHMgMSBUYWcgbWVya2VuLi4uCgpFaW5lIEZyYXUga29tbXQgaW4gZWluZW4gT2JzdC0vR2VtdWVzZWxhZGVuLiBBdWYgZGVtIFNjaGlsZCBuZWJlbiBkZXIgVHVlcgpzdGVodDogIkZyaXNjaCBpbXBvcnRpZXJ0ZSBHdXJrZW4iLiBTaWUgdmVyc3RlaHQgZGllcyBuaWNodCBnYW56IHVuZCBmcmFndApkZW4gVmVya2FldWZlci4gRGVyIHNhZ3Q6ICJOdW5qYSwgZnJpc2NoIGltcG9ydGllcnQgaGVpc3N0LCBkYXNzIGRpZSBHdXJrZW4KZnJpc2NoIGVpbmdlZnVlaHJ0IHdlcmRlbi4iCkRpZSBGcmF1IGJla29tbXQgZWluZW4gU2NocmVjayB1bmQgc2FndDogIiBVbmQgaWNoIGhhYmUgZGllIGltbWVyIGdlZ2Vzc2VuLi4uIgoKUmlrdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkYuQi5JLiAoQ2F1bm8sIDE4LiBGZWIgMTk5NywgMTM6NTk6NDQpOgpGcm9tIGEgdGFsayBieSBSLiBKYW1lcyBXb29sc2V5LCBEaXJlY3RvciBvZiBDZW50cmFsIEludGVsbGlnZW5jZSwgZ2l2ZW4gYXQgYQpjb25mZXJlbmNlIG9uIGdsb2JhbCBvcmdhbml6ZWQgY3JpbWUuIAoKIkp1c3QgaW4gY2FzZSB5b3UgdGhpbmsgdGhlIEZCSSBpcyBub3Qgb24gdGhlIGpvYiwgSSBoYXZlIHJlY2VpdmVkIGEgdHJ1ZQppbnRlcmNlcHQgKGFuZCB0aGlzIGlzIG5vdCBtYWRlIHVwLi4uaXQgaXMgbm90IFNhdHVyZGF5IE5pZ2h0IExpdmUpIHRoYXQgdGhlCkZCSSBtYWRlIG9mIGl0c2VsZiB3aGlsZSBjb25kdWN0aW5nIGFuIGludmVzdGlnYXRpb24gaW4gU2FuIERpZWdvLiBJdCB3YXMgc2VudAp0byBtZSBieSBhIGZyaWVuZCBvZiBtaW5lIHdobyB1c2VkIHRvIGJlIHdpdGggY291bnRlcmludGVsbGlnZW5jZSBpbgpXYXNoaW5ndG9uLiBJdCBpcyBjYWxsZWQgIlRoZSBGQkkgUGl6emEgQ2FsbC4iIEZCSSBhZ2VudHMgY29uZHVjdGVkIGEgcmFpZCBvZgphIFNhbiBEaWVnbyBwc3ljaGlhdHJpYyBob3NwaXRhbCB0aGF0IHdhcyB1bmRlciBpbnZlc3RpZ2F0aW9uIGZvciBtZWRpY2FsCmluc3VyYW5jZSBmcmF1ZC4gQWZ0ZXIgaG91cnMgb2YgcmV2aWV3aW5nIHRob3VzYW5kcyBvZiBtZWRpY2FsIHJlY29yZHMsIHRoZQpkb3plbnMgb2YgYWdlbnRzIHdvcmtlZCB1cCBxdWl0ZSBhbiBhcHBldGl0ZS4gVGhlIGFnZW50IGluIGNoYXJnZSBvZiB0aGUKaW52ZXN0aWdhdGlvbiBjYWxsZWQgYSBuZWFyYnkgcGl6emEgcGFybG9yIHRvIG9yZGVyIGEgcXVpY2sgZGlubmVyIGZvciBoaXMKY29sbGVhZ3Vlcy4gVGhlIGZvbGxvd2luZyB0ZWxlcGhvbmUgY29udmVyc2F0aW9uIHRvb2sgcGxhY2UgYW5kIHdhcyByZWNvcmRlZApieSB0aGUgRkJJIGJlY2F1c2UgdGhleSB3ZXJlIHRhcGluZyB0aGUgaG9zcGl0YWwuIgoKQWdlbnQ6ICJIZWxsby4gSSB3b3VsZCBsaWtlIHRvIG9yZGVyIDE5IGxhcmdlIHBpenphcyBhbmQgNjcgY2FucyBvZiBzb2RhLiIKUGl6emEgTWFuOiAiQW5kIHdoZXJlIHdvdWxkIHlvdSBsaWtlIHRoZW0gZGVsaXZlcmVkPyIKQWdlbnQ6ICJXZSdyZSBvdmVyIGF0IHRoZSBwc3ljaGlhdHJpYyBob3NwaXRhbC4iClBpenphIE1hbjogIlRvIHRoZSBwc3ljaGlhdHJpYyBob3NwaXRhbD8iCkFnZW50OiAiVGhhdCdzIHJpZ2h0LiBJJ20gYW4gRkJJIGFnZW50LiIKUGl6emEgTWFuOiAiWW91J3JlIGFuIEZCSSBhZ2VudD8iCkFnZW50OiAiVGhhdCdzIGNvcnJlY3QuIEp1c3QgYWJvdXQgZXZlcnlib2R5IGhlcmUgaXMuIgpQaXp6YSBNYW46ICJBbmQgeW91J3JlIGF0IHRoZSBwc3ljaGlhdHJpYyBob3NwaXRhbD8iCkFnZW50OiAiVGhhdCdzIGNvcnJlY3QuIEFuZCBtYWtlIHN1cmUgeW91IGRvbid0IGdvIHRocm91Z2ggdGhlIGZyb250IGRvb3JzLiBXZQpoYXZlIHRoZW0gbG9ja2VkLiBZb3Ugd2lsbCBoYXZlIHRvIGdvIGFyb3VuZCB0aGUgYmFjayB0byB0aGUgc2VydmljZSBlbnRyYW5jZQp0byBkZWxpdmVyIHRoZSBwaXp6YXMuIgpQaXp6YSBNYW46ICJBbmQgeW91IHNheSB5b3UncmUgYWxsIEZCSSBhZ2VudHM/IgpBZ2VudDogIlRoYXQncyByaWdodC4gSG93IHNvb24gY2FuIHlvdSBoYXZlIHRoZW0gaGVyZT8iClBpenphIE1hbjogIkFuZCBldmVyeW9uZSBhdCB0aGUgcHN5Y2hpYXRyaWMgaG9zcGl0YWwgaXMgYW4gRkJJIGFnZW50PyIKQWdlbnQ6ICJUaGF0J3MgcmlnaHQuIFdlJ3ZlIGJlZW4gaGVyZSBhbGwgZGF5LCBhbmQgd2UncmUgc3RhcnZpbmcuIgpQaXp6YSBNYW46ICJIb3cgYXJlIHlvdSBnb2luZyB0byBwYXkgZm9yIGFsbCBvZiB0aGlzPyIKQWdlbnQ6ICJJIGhhdmUgbXkgY2hlY2tib29rIHJpZ2h0IGhlcmUuIgpQaXp6YSBNYW46ICJBbmQgeW91J3JlIGFsbCBGQkkgYWdlbnRzPyIKQWdlbnQ6ICJUaGF0J3MgcmlnaHQuIEV2ZXJ5b25lIGhlcmUgaXMgYW4gRkJJIGFnZW50LiBDYW4geW91IHJlbWVtYmVyIHRvIGJyaW5nCnRoZSBwaXp6YXMgYW5kIHNvZGFzIHRvIHRoZSBzZXJ2aWNlIGVudHJhbmNlIGluIHRoZSByZWFyPyBXZSBoYXZlIHRoZSBmcm9udApkb29ycyBsb2NrZWQuIgpQaXp6YSBNYW46ICJJIGRvbid0IHRoaW5rIHNvLiIgCgpbQ2xpY2tdIAoKQy4gTm8KCihEZXIgd2FyIHp3YXIgc2Nob24gd2FzIGFlbHRlciwgYWJlciBkaWUgUnVicmlrIHdhciBncmFkIHNvIGxlZXIgLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3R1ZGVudGVuIChTaWRvbGluLCAxOS4gRmViIDE5OTcsIDE1OjAxOjI4KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXIgZ2VtZWluZSBTdHVkZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PQoKCkVpbiBrbGVpbmVyIEVpbmJsaWNrIGluIGRpZSBBYmdydWVuZGUgRGVpbmVyIEFydGdlbm9zc2VuLgoKRGVyIFByaW11czoKLS0tLS0tLS0tLS0KCkVyc2NoZWludW5nIGxhZXNzdCBhdWYgZWluc2FtZSBzZXh1ZWxsZSBQcmFrdGlrZW4gc2NobGllc3Nlbi4KQnJlaXRjb3JkLVN0cmV0Y2guCkJyaWxsZSAgTW9kZWxsICBHbGFzYmF1c3RlaW4uQmVpZ2UgIEtyZXBwc29obGVuc2NodWhlLiAgVHVlZnRlbHQgIG1pdCAgYW5kZXJlbgpQcmltZWxuIGluIFVuaWxhYm9ycyB1bmQgQmlibGlvdGhla2VuIGhlcnVtLiBMaWVibGluZ3NidWNoOiAgIkRpZSAgU2ludXNrdXJ2ZQppbSBXYW5kZWwgZGVyIFplaXQuIiBTZWluIGdhbnplciBTdG9sejogZWluZSBNdWx0aWZ1bmt0aW9uc3VociwgIGRpZSAgendlaW1hbApzdHVlbmRsaWNoIGZpZXMgZmllcGVuZCBhbGxlIEJsaWNrZSBhdWYgc2ljaCAgemllaHQuICBGcmF1ZW5tYWVzc2lnICBhbGxlcyAKc2Vocgp1ZWJlcnNpY2h0bGljaDogTXV0dGksIFRhbnRlIEhpbGRlIHVuZCBuYXR1ZXJsaWNoIGRpZSBuZXR0ZSBGcmF1IHZvbiBkZW4KWmV1Z2VuCkplaG92YXMuCgpEYXMgTWFlZGVsIHZvbiBuZWJlbmFuOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpLbGVpZHVuZzoga3JldXpicmF2ZXIgQnViaWtyYWdlbi4gR2VybiBhdWNoIGdlcnVlc2NoZWx0LiBXb2xsdGUgZnJ1ZWhlciB3YXMKbWl0ClRpZXJlbiBtYWNoZW4uIFdpbGwgamV0enQgbGllYmVyIHdhcyBtaXQgTWVuc2NoZW4gbWFjaGVuLiBJc3QgbWl0IGRlbSAgUHJpbXVzCnp1c2FtbWVuIGltbWVyIGRpZSBlcnN0ZSBpbSBIb2Vyc2FhbC4gVW5kIHNjaHJlaWJ0ICBhbGxlcyAgaW4gIGRhcyAgc3Vlc3NlIApyb3NhCkhlZnRjaGVuIG1pdCBkZW4gd2l0emlnZW4gS2FlZmVybiB2b3JuZWRyYXVmLiBNaXQgaWhyZW4gRnJldW5kaW5uZW4gIGthbm4gIHNpZQplY2h0IGdhbnogdG9sbCB1ZWJlciBpaHJlIFByb2JsZW1lIHJlZGVuLiBVbnMgdG90YWwgIHNwb250YW5lICB3aXR6aWdlICBTYWNoZW4KbWFjaGVuLiBadW0gQmVpc3BpZWwgc2hvcHBlbiwga2xvZW5lbiB1bmQgaW5zIENhZmUgS2FrdHVzIGdlaGVuLgoKRGVyIERpLU1pLURvLVByb3R6ZXI6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKS29tbXQgRGllbnN0YWcgbmFjaG1pdHRhZyBicmF1bmdlYnJhbm50IGltIENhYnJpb2xldCBhbmdlendpdHNjaGVydCwgIGtvcGllcnQKYW0gIE1pdHR3b2NoICB6d2lzY2hlbiAgQnJ1bmNoICB1bmQgIE1pdHRhZ2Vzc2VuICBkaWUgICBNaXRzY2hyaWZ0ZW4gICBzZWluZXIKRmxhZXNjaGNoZW4gc3ByaW5nZW4gbGFlc3N0LCBrcmllZ3QgdmllbGxlaWNodCBlaW5lbiBTY2hsdWVzc2VsLiBEZXIgIGRhbm4gCm5pY2h0CnBhc3N0LiBGdWVyIGRlbiBLb3BpZXJlci4gRGVyIGRhbm4gbmljaHQgZnVua3Rpb25pZXJ0LgoKRGllIEZyYXVlbi1PZWtvLUJld2VndGU6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpIYXVwdGJlcnVmOiBBU3RBLUJlYXVmdHJhZ3RJbi4gS2VubnplaWNoZW46IGhlbm5hdmVyZmFlcmJ0LCBtaXQgCmZlcm5vZXN0bGljaGVtCkFic29uZGVybGljaGtlaXRlbiAgYmVoYWVuZ3QuICAgTGllYmxpbmdzb3J0OiAgIEZyYXVlbmNhZmUsICAgRnJhdWVuYnVjaGxhZGVuLApGcmF1ZW5zdXBlcm1hcmt0LiBMaWVibGluZ3NsZWt0dWVyZTogUGVydWFuaXNjaGUgIFRvZXBmZXJhcmJlaXRlbiAgdm9uIApGcmF1ZW4sCmRpZSB6dSBzZWhyIGxpZWJlbi4gSG9iYmllczogRnVzc3JlZmx4em9uZW5tYXNzYWdlIHVuZCBQcm9ibGVtYXV0b3JJbm5lbmZpbG1lLgpWb3JsaWViZW46IGF1c2RydWNrc3ZvbGwgYmFyZnVzcyAgdGFuemVuLiAgQmVzb25kZXJlICBGYWVoaWdrZWl0ZW46ICBLYW5uIAoiRHUiCnNhZ2VuLgoKRGllIEludGVsbGVrdHVlbGxlOgotLS0tLS0tLS0tLS0tLS0tLS0tCgpTY2h3YXJ6ZXIgUm9sbGksIE1hcmtlICAiRXhpc3RlbnRpYWxpc211cyIgIHVuZCAgZGFzICBBcm9tYSAgdm9uICBmaWx0ZXJsb3NlbgpaaWdhcmV0dGVuIGhhcm1vbmllcmVuIGF1ZnMgIEJldHJvZmZlbnN0ZSAgbWl0ICBkZW0gICJJY2ggIGRlbmsnICBtaXIgIG1laW5lbgpUZWlsIi1CbGljaywgIGRlciAgYmVpICB1bmdhcmlzY2hlbiAgRXhwZXJpbWVudGFsZmlsbWVuICAgbWl0ICAgZnJhbnpvZXNpc2NoZW4KVW50ZXJ0aXRlbG4gIGduYWRlbmxvcyAgenVtICBFaW5zYXR6ICBrb21tdC4gICBIYXQgICB1bnphZWhsaWdlICAgdHJhdW1hdGlzY2hlCkJlemllaHVuZ2VuIGhpbnRlciBzaWNoLCBhdXMgZGVuZW4gbWluZGVzdGVucyBlaW4gIERvcHBlbG5hbWUgIGhlcnZvcmdlZ2FuZ2VuCmlzdC4gQWJlciBsZWlkZXIga2VpbmUgYmVzdGFuZGVuZSAgVW5pLVBydWVmdW5nLiAgV296dSAgYXVjaD8gIERhcyAgTGViZW4gIGlzdApQcnVlZnVuZyBnZW51Zy4KCkRpZSBndXRlIE1lbnNhLUZlZToKLS0tLS0tLS0tLS0tLS0tLS0tLQoKVmVyZWludCBzdG9semUgQWNoc2VsYmVoYWFydW5nIG1pdCBkZXIgRHVmdG5vdGUgIlN0YW1tZXNzZW4gMiIuIFNwcmVuZ3QgIGFsbGUKZ2FlbmdpZ2VuICBLaXR0ZWxncm9lc3NlbiwgIHdpZWd0ICBtaW5kZXN0ZW5zICBkb3BwZWx0ICBzb3ZpZWwgIHdpZSAgMyAKaHVuZ3JpZ2UKQldMLVN0dWRlbnRlbiB6dXNhbW1lbiB1bmQgcGFlcHBlbHQgZGllc2UgZGFmdWVyIG1pdCBlaW5lbSBOYWNoc2NobGFnIGF1ZiwgCmRhc3MKZXMga3JhY2h0LiBEaWUgS29lbmlnaW4gZGVyIFNhZXR0aWd1bmdzYmVpbGFnZW4ga2VubnQgYWxsZSwgaGF0IGZ1ZXIgIGFsbGVzIAplaW4Kb2ZmZW5lcyBPaHIgdW5kIHdpcmQgbnVyIHJ1cHBpZywgd2VubnMgbWl0IGRlbSBLbGVpbmdlbGQgaGFwZXJ0LgoKRGVyIFRyYXZlbGxlcjoKLS0tLS0tLS0tLS0tLS0KClN0dWRpZXJ0IGVpZ2VudGxpY2ggbnVyIHdlZ2VuIGRlciBTZW1lc3RlcmZlcmllbi4gSGF0IE5lcGFsLCBHb2EgdW5kIE51YnV6dWJ1CmdlbWFjaHQgdW5kIHdlaXNzICB2aWVsICBVbmludGVyZXNzYW50ZXMgIGRhcnVlYmVyICB6dSAgYmVyaWNodGVuLiAgU3ByaWNodCAKMTAKU3ByYWNoZW4gbmljaHRmbGllc3NlbmQuIFVuZCB3ZWlzcywgd28gbWFuIGZ1ZXIgMiBNYWFrICBlY2h0ZW4gIEtvbnRha3QgIHp1IApkZW4KRWluaGVpbWlzY2hlbiBrcmllZ3QuIFRyYWVndCBUaGVybW9ob3NlbiB1bmQgc3BlemlhbGlzb2xpZXJ0ZSAgU3Vydml2YWxqYWNrZW4uClppZWh0IGRpZSBTYWNoZSBtaXQgZGVtIFN0dWRpdW0gaXJnZW5kd2llIGR1cmNoLiBOYWVjaHN0ZXMgWmllbDogQmFyZnVzcyAKZHVyY2gKZGllIEFudGFya3Rpcy4KCkRlciBCdWJiIG1pdCBkZW0gQWt0ZW5rb2ZmZXI6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpHYW56ICBkZXIgIFZhdGVyISAgVG9kc2ljaGVyZXMgIFplaWNoZW46ICBTY2huYXV6ZXIsICBLbHVnc2NoZWlzc2VyYnJpbGxlICBtaXQKU3RhaGxidWVnZWwgdW5kIC0gZWluIHVuYmVkaW5ndGVzIE11c3M6IExhcHRvcCBtaXQgQXVma2xlYmVyLiBBdWZzY2hyaWZ0OiAKIk1pdApTY2h3dW5nIG5hY2ggdm9ybi4iIG9kZXIgIlNjaHd1bmcgdm9yYXVzISIuIE9yZ2FuaXNpZXJ0IGduYWRlbmxvcyBhbGxlcywgIHdhcwpzaWNoIG5pY2h0IHNjaG5lbGwgIGdlbnVnICB2ZXJkcnVlY2t0LiAgUG9saXRpc2NoZSAgQWJlbmRlICAobWl0ICB2aWVsICBCaWVyKSwKVm9ydHJhZ3NyZWloZW4gIChtaXQgIHZpZWwgICBCaWVyKSAgIHVuZCAgIEJpZXJhYmVuZGUgICAobWl0ICAgYW5zY2hsaWVzc2VuZGVtCkdlZGFlY2h0bmlzc2Nod3VuZCkuIEZldWNodGUgVHJhZXVtZTogSGFubmVsb3JlLgoKRGVyIGV3aWdlIFN0dWRlbnQ6Ci0tLS0tLS0tLS0tLS0tLS0tLQoKRnVzc2VsYmFydCwgIGxhbmdlcyAgWm9lcGZjaGVuICBpbiAgZGVyICAgS3VyemhhYXJmcmlzdXIsICAgZ2VidWVnZWx0ZSAgCkplYW5zLApOaWNrZWxicmlsbGVubW9kZWxsICAiS29tbXVuYXJkZSIuICAgSGF0ICAgYWxsZXMgICBtaXRnZW1hY2h0OiAgIERpZSAgIDY4J2VyLApHcmllY2hlbmxhbmQsIEhhbGZ6d2FyZSwgV0cncywgIFNpdHpzYWVja2UuICBOdXIgIG5pY2h0ICBkaWUgIGxldHp0ZSAgS2xhdXN1ci4KU3R1ZGllcnQgZGllIFJ1bmVuc2NocmlmdCBkZXIgODUuIFdhbmdkeW5hc3RpZSwgd2VpbCBkYXMgaXJnZW5kd2llIGdhbnosIGdhbnoKdmllbCBtaXQgaWhtIHp1IHR1biBoYXQuIFNjaGVpZGV0IG5vcm1hbCBuYWNoIGRlbSA2Ny5TZW1lc3RlciBhdXMsICB3ZWlsICBkaWUKWndpc2NoZW5wcnVlZnVuZ2VuIGlyZ2VuZHdpZSBnYW4sIGdhbnogd2VuaWcgbWl0IGlobSB6dSB0dW4gaGFiZW4uCgpEZXIgRmlsb2ZhY2tlcjoKLS0tLS0tLS0tLS0tLS0tCgpEZXIgVHVyYm8gdW50ZXIgZGVuIFN0dWRlbnRlbi4gS2F0YXB1bHRpZXJ0IHNpY2ggcGZlaWxhcnRpZyB2b24gZGVyIFdpZWdlICBpbgpkaWUgQ2hlZmV0YWdlLiBJbW1lciBkYWJlaTogU2Fra28gJiBKYWNrZXR0aSwgcmFzaWVybWVzc2VyZ2V6b2dlbmVyICBTY2hlaXRlbAp1bmQgZWluIHNjaGlja2VyIFRlcm1pbnBsYW5lciwgIGRlciAgdm9uICBldHdhcyAgenVzYW1tZW5nZWhhbHRlbiAgd2lyZCwgIGRhc3MKZnJ1ZWhlciAgZWluZSAgS3VoICB6dXNhbW1lbmdlaGFsdGVuICBoYXQuICBIYXQgIHJlaW4gIGdhciAga2VpbmUgICBaZWl0ICAgenVtCkxlbmRlbnNjaHdpbmdlbiBpbiAgZGVyICBEaXNjbyAgdW5kICB2ZXJsaWVidGVzICBUdXJ0ZWxuICBtaXQgIGRlbSAga29taXNjaGVuCkdlc2NobGVjaHQuIElzdCBkYWZ1ZXIgZGVyIGVyc3RlIG1pdCBIYXVzLCBIb2YgdW5kIEhhZW1vcnJob2lkZW4uCgpEaWUgaG9laGVyZSBUb2NodGVyOgotLS0tLS0tLS0tLS0tLS0tLS0tCgpUYWRlbGxvc2VyLCB6aXRyb25lbmdlbGJlciBUd2luc2V0IG1pdCBQZXJsZW5hcHBsaWthdGlvbmVuIHVuZCBkaWUgIGdlcGZsZWd0ZQozLVdldHRlci1Gb2VuZnJpc3VyICBtaXQgIGludGVncmllcnRlbSAgR29sZnBsYXR6LUxhZWNoZWxuICBnYXJhbnRpZXJlbiAgCmVpbmVuClN0YXItQXVmdHJpdHQsIGRlciBhbGxlIHVtc3RlaGVuZGVuIEZyYXVlbiAgenUgIHR1bWJlbiAgUG9tZXJhbnplbiAgdmVyd2Vsa2VuCmxhZXNzdC4gSXN0IER1emktRHV6aSBtaXQgZGVuIFByb2Zlc3NvcmVuLCBCdXNzaS1CdXNzaSBtaXQgIGRlciAgUHJvbWluZW56IAp1bmQKUHVzY2hpLVB1c2NoaSBtaXQgaWhyZW0gdGV1dG9uZW5nZWdyaWxsdGVuIEtsYXVzLURpZXRlciwgbWl0IGRlbSBzaWUgIG1pdHRlbHMKdW5iZWZsZWNrdGVyIEVtcGZhZW5nbmlzIHdlaXRlcmUgUGVybGh1ZWhuZXIgemV1Z2VuIHdpcmQuCgpEZXIgT3R0b25vcm1hbHN0dWRlbnQ6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkhhdCBtYW4gbmFjaCBkZW4gU2VtZXN0ZXJmZXJpZW4gbWVpc3QgdmVyZ2Vzc2VuLiAgVHJhZWd0ICBkaWVzZSAgYmxhdWVuICBKZWFucwp1bmQgZWluIGdyYXVlcyBTd2VhdC1TaGlydC4gT2RlciBkdW5rZWxibGF1ZSAgQ29yZGhvc2VuICB1bmQgIGVpbiAgaGVsbGdyYXVlcwpTd2VhdHNoaXJ0LiAgT2RlciAgYW5kZXJzcnVtLiAgSG9iYmllczogIFZvbGxleWJhbGwsICBLaW5vLCAgTWlrYWRvICBzcGllbGVuLgpWb3JsaWViZW46ICBndXRlICBMYXVuZSwgIGd1dGVzICAgV2V0dGVyLiAgIEFibmVpZ3VuZ2VuOiAgIHNjaGxlY2h0ZSAgIExhdW5lLApzY2hsZWNodGVzIFdldHRlci4gQXRtZXQgYW5kZXJlbiBMZXV0ZW4gaW0gSG9lcnNhYWwgZGllIEx1ZnQgd2VnLCBkdWVtcGVsdApzZWluClN0dWRpdW0gaW4gOS0xMCBTZW1lc3Rlcm4gZHVyY2ggdW5kIHdpcmQgc3BhZXRlciBtYWwgT3R0b25vcm1hbGFuZ2VzdGVsbHRlci4KCgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFN0dWRlbnRlbiAoU2lkb2xpbiwgMTkuIEZlYiAxOTk3LCAxNTowMjoyMSk6Cn4jISBybj1TaWRvbGluIHJ0PTg1NjM2MDg4OCByZz13aXR6ZQp+IyEgdGlkPTg1NjM2MDg4OApTb3JyeSBmdWVyIGRhcyBzY2hsZWNodGUgTGF5b3V0Li4uLgoKU2lkb2xpbi4gWnUgZmF1bCwgZXMgbmV1IHp1IHBvc3Rlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFydGlrZWwgNSAoR3JhbGtvciwgMTkuIEZlYiAxOTk3LCAxNToyNDoyMyk6Cn4jISBybj1RdW1lIHJ0PTg1NjM2MTk2MyByZz1wdWl6Cn4jISB0aWQ9ODUyNTQ0ODY3CkFlaCwgaWNoIHdlaXNzIG5pY2h0LCBhYmVyIGlyZ2VuZHdpZSBmZWhsdGUgZGEgZGllIEJlc2NocmVpYnVuZyBkZXMKTVVEREVSUyEhISEhISEhCgoKR3JhbGtvciwgc2ljaCBpbiBLRUlORSBkZXIgR3J1cHBlbiBlaW5vcmRuZW5kLCBzb25kZXJuIGRlbiBNVURERVJOIGFuZ2Vob2VyZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXJ0aWtlbCA1IChTaWRvbGluLCAxOS4gRmViIDE5OTcsIDE2OjA3OjQxKToKfiMhIHJuPUdyYWxrb3IgcnQ9ODU2MzYyMjYzIHJnPXdpdHplCn4jISB0aWQ9ODUyNTQ0ODY3Ck51biwgd2FzIGVpbiBNdWRkZXIgaXN0LCBpc3QgZG9jaCBnYW56IGtsYXIuOgoKa2F0ZWdvcmllOiBEZXIgUHJpbXVzLCBhYmVyIG9obmUgZGllIGd1dGVuIE5vdGVuLiAKClNpZG9saW4uIGRlbmt0IC4gbyBPIChNdWRkZXIuLi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVZWJlcnNldHp1bmcgKEhhciwgMTkuIEZlYiAxOTk3LCAyMDo0MDo0Myk6CgpBdXMgZWluZXIgVWViZXJzZXR6dW5nc2hpbGZlIGZ1ZXIgYW5nZWxzYWVjaHNpc2NoZSBUZXh0ZToKCi1jb3JyZWN0IHdpaHRpbiBhbiBvcmRlciBvZiBtYWduaXR1ZGUuLi4KLWZhbHNjaAoKLXRoZSBleHBlcmltZW50cyB3ZXJlIGNhcnJpZWQgb3V0IGluIHRoZSB1c3VhbCBtYW5uZXIKLXdlciBlcyB3aWVkZXJob2xlbiB3aWxsIHNvbGwgZXMgcnVoaWcgbWFsIHZlcnN1Y2hlbgoKLWl0IGlzIHdlbGwga25vd24gdGhhdAotaWNoIGhhYmUgbWlyIG5pY2h0IGRpZSBNdWVoZSBnZW1hY2h0IGVzIG5hY2h6dXNjaGxhZ2VuCgotaXQgbWlnaHQgYmUgYXJndWVkIHRoYXQKLWljaCB3ZWlzcyBkYXJhdWYgZWluZSBzdXBlcmd1dGUgQW50d29ydCwgZGllIGljaCBqZXR6dCBicmluZ2UKCi1JdCBpcyBob3BlZCB0aGF0IHRoaXMgcGFwZXIgd2lsbCBzdGltdWxhdGUgZnVydGhlciByZXNlYXJjaCBhY3Rpdml0aWVzIGluCnRoaXMgZmllbGQKLXdlZGVyIGllc2Ugbm9jaCB3ZWl0ZXJlIEFyYmVpdGVuIHRhdWdlbiB3YXMKCi1UeXBpY2FsIHJlc3VsdHMgYXJlIHNob3duIGhlcmUKLUpldHp0IHplaWdlIGljaCBtZWluZSBiZXN0ZW4gRXJnZWJuaXNzZQpIYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcgKExpLCAyMC4gRmViIDE5OTcsIDExOjQ1OjMxKToKSGkhIApEYXMgc2ljaCB2aWVsZSBXaXR6ZSB1bmQgQXJ0aWtlbCB3aWVkZXJob2xlbiwgd2lsbCBpY2ggYXVjaCBtZWluZW4gVGVpbApkYXp1IGJlaXRyYWdlbjogSGllciB3aWVkZXIgZWluIHBhYXIgRmFtb3VzIGxhc3QgV29yZHMgYXVzIGRlciAKIkNhbm9uaWNhbCBsaXN0IG9mIEZMVyIuCgoiV2h5IGRvIHlvdSBpbnNpc3QgdXBvbiBsb29raW5nIGF0IG15IGNoYXJhY3RlciBzaGVldD8iCgoiV2h5IGFyZSB0aG9zZSB0d28gdHJpYW5nbGVzIG9uIHRoZSBncm91bmQgbGlrZSB0aGF0PyIge3BlbnRhZ3JhbX0KCiJOYXchIENhbid0IGJlISBBc3Nhc3NpbnMgYWx3YXlzIHdlYXIgYmxhY2shIgoKIldhaXQhIEknbSBhIGdvb2Qgc3BpZGVyISIge2FmdGVyIGJlaW5nIHBvbHltb3JwaGVkIGludG8gYSBnaWFudCBzcGlkZXJ9CgoiRmluYWxseSwgaGUncyBvdXQgb2YgYW1tby4iCgoiSSB0aHJvdyBteSBudWNsZWFyIGhhbmQgZ3JlbmFkZSBpbnRvIHRoZSBuZXh0IHJvb20uIgoKIkhleSwgeWVsbG93LXNraW5uZWQgaWRpb3QsIGRvbid0IGhvcCBhcm91bmQgYnV0IGZpZ2h0IGxpa2UgYSBtYW4uIgoKV2VsbCwgYSBuYXR1cmFsIDIwLCBjcml0aWNhbCBzdWNjZXNzLCBkb3VibGUgZGFtYWdlLi4uIgp7Li4uLHdyb25nIHN5c3RlbS4uLmNyaXRpY2FsIGZhaWx1cmV9CgoiRG9uJ3Qgd29yeSBndXlzLCBJJ20gaW1tdW5lIHRvIGZpcmUuIENvbWUgb24geW91IGJpZyB1Z2x5LCBwYXRoZXRpYwogZXhjdXNlIGZvciBhIGRyYWdvbiwgZG8geW91ciB3b3JzdCEiCiAuLi4KICJXaGF0IGRvIHlvdSBtZWFuIGJsYWNrIGRyYWdvbnMgZG9uJ3QgYnJlYXRoIGZpcmU/IgoKSSBkb2RnZS4iIHthIHNob3RndW4gZmlyZWQgZnJvbSBhIDUgZmVldCBkaXN0YW5jZS4uLn0KCiJEJ0FydGFnbmFuPyBOZXZlciBoZWFyZCBvZiB5b3UuIExldCdzIHNlZSBob3cgeW91IGFyZSB3aXRoIHRoYXQKIHN3b3JkIG9mIHlvdXJzLiIKCiJXaG8gd2FudHMgdG8gbGl2ZSBmb3JldmVyLi4uIGhleSwgd2FpdCEiCntzdW5nIGFsb25nIHdpdGggYmFja2dyb3VuZCBtdXNpY30KCgp7UEMgY2hhcmdpbmcgZHJhZ29ufQogUEMgICAgOiAiRm9yIEhvbm9yLCBmb3IgS2luZywgZm9yIEdvZC4iCiBEcmFnb246ICJGb3IgbHVuY2guIiAKICAKICJXaGF0IGRvIHlvdSBtZWFuLCB0aGUgc21hbGwgZHJhZ29uJ3MgYmlnIGJyb3RoZXIgbG9va3MgdmVyeSBhbmdyeT8iCiAKICJJIG9wZW4gdGhlIGNvZmZpbi4uLlNMT1dMWS4iCiAKICJJIHBpY2sgdGhlIGxvY2sgb24gdGhlIG1hZ2ljIHNob3Agd2luZG93LiIKIAogIkZlYXRoZXJiYWxsISAgSSBtZWFuLCBmZWF0aGVycnJyLi4uLi4uLi4iey4uZmFsbD8gOi0pIH0KCiAiRGVtb2dvcm9uPyBHcmVhdCEgRG8geW91IGtub3cgaG93IG1hbnkgZXhwIGhlJ3Mgd29ydGg/IgogCgpMaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdTEuMCAoUXVhc2ltb2RvLCAgNC4gTWFyIDE5OTcsIDE1OjA3OjMzKToKRGVhciBmcmllbmRzLAoKQSBsaXR0bGUgd2lzZG9tLgoKTGFzdCB5ZWFyIGEgZnJpZW5kIG9mIG1pbmUgdXBncmFkZWQgR2lybEZyaWVuZCA2LjAgdG8KV2lmZSAxLjAgYW5kIGZvdW5kIHRoYXQgaXQncyBhIG1lbW9yeSBob2cgbGVhdmluZyB2ZXJ5CmxpdHRsZSBzeXN0ZW0gcmVzb3VyY2VzIGZvciBvdGhlciBhcHBsaWNhdGlvbnMuIEhlIGlzCm9ubHkgbm93IG5vdGljaW5nIHRoYXQgV2lmZSAxLjAgYWxzbyBpcyBzcGF3bmluZwpDaGlsZC1Qcm9jZXNzZXMgd2hpY2ggYXJlIGZ1cnRoZXIgY29uc3VtaW5nIHZhbHVhYmxlCnJlc291cmNlcy4KCk5vIG1lbnRpb24gb2YgdGhpcyBwYXJ0aWN1bGFyIHBoZW5vbWVuYSB3YXMgaW5jbHVkZWQgaW4KdGhlIHByb2R1Y3QgYnJvY2h1cmUgb3IgdGhlIGRvY3VtZW50YXRpb24sIHRob3VnaCBvdGhlcgp1c2VycyBoYXZlIGluZm9ybWVkIGhpbSB0aGF0IHRoaXMgaXMgdG8gYmUgZXhwZWN0ZWQgZHVlCnRvIHRoZSBuYXR1cmUgb2YgdGhlIGFwcGxpY2F0aW9uLiBOb3Qgb25seSB0aGF0LCBXaWZlCjEuMCBpbnN0YWxscyBpdHNlbGYgc3VjaCB0aGF0IGl0IGlzIGFsd2F5cyBsYXVuY2hlZCBhdApzeXN0ZW0gaW5pdGlhbGlzYXRpb24gd2hlcmUgaXQgY2FuIG1vbml0b3IgYWxsIG90aGVyCnN5c3RlbSBhY3Rpdml0eS4gSGUncyBmaW5kaW5nIHRoYXQgc29tZSBhcHBsaWNhdGlvbnMKc3VjaCBhcyBQb2tlck5pZ2h0IDEwLjMsIEJlZXJCYXNoIDIuNSwgYW5kIFB1Yk5pZ2h0IDcuMAphcmUgbm8gbG9uZ2VyIGFibGUgdG8gcnVuLCBjcmFzaGluZyB0aGUgc3lzdGVtIHdoZW4Kc2VsZWN0ZWQgKGV2ZW4gdGhvdWdoIHRoZXkgYWx3YXlzIHdvcmtlZCBmaW5lIGJlZm9yZSkuCkF0IGluc3RhbGxhdGlvbiwgV2lmZSAxLjAgYXV0b21hdGljYWxseSBpbnN0YWxscwp1bmRlc2lyZWQgUGx1Zy1JbnMgc3VjaCBhcyBNb3RoZXJJbkxhdyA1NS44IGFuZApCcm90aGVySW5MYXcgQmV0YSByZWxlYXNlLiBBcyBhIGNvbnNlcXVlbmNlIHN5c3RlbQpwZXJmb3JtYW5jZSBzZWVtcyB0byBkaW1pbmlzaCB3aXRoIGVhY2ggcGFzc2luZyBkYXkuCgpTb21lIGZlYXR1cmVzIGhlJ2QgbGlrZSB0byBzZWUgaW4gdGhlIHVwY29taW5nIHdpZmUgMi4wOgoKIC0gQSAiRG9uJ3QgcmVtaW5kIG1lIGFnYWluIiBidXR0b24KIC0gTWluaW1pc2UgYnV0dG9uCiAtIEFuIGluc3RhbGwgc2hpZWxkIGZlYXR1cmUgdGhhdCBhbGxvd3MgV2lmZSAyLjAgYmUKaW5zdGFsbGVkIHdpdGggdGhlIG9wdGlvbiB0byB1bmluc3RhbGwgYXQgYW55dGltZQp3aXRob3V0IHRoZSBsb3NzIG9mIGNhY2hlIGFuZCBvdGhlciBzeXN0ZW0gcmVzb3VyY2VzLgogLSBBbiBvcHRpb24gdG8gcnVuIHRoZSBuZXR3b3JrIGRyaXZlciBpbiBwcm9taXNjdW91cwptb2RlIHdoaWNoIHdvdWxkIGFsbG93IHRoZSBzeXN0ZW1zIGhhcmR3YXJlIHByb2JlCmZlYXR1cmUgdG8gaGF2ZSBncmVhdGVyIHVzZS4KCkkgbXlzZWxmIGRlY2lkZWQgdG8gYXZvaWQgYWxsIG9mIHRoZSBoZWFkYWNoZXMKYXNzb2NpYXRlZCB3aXRoIFdpZmUgMS4wIGJ5IHN0aWNraW5nIHdpdGggR2lybGZyaWVuZAoyLjAuIEV2ZW4gaGVyZSwgaG93ZXZlciwgSSBmb3VuZCBtYW55IHByb2JsZW1zLgpBcHBhcmVudGx5IHlvdSBjYW5ub3QgaW5zdGFsbCBHaXJsZnJpZW5kIDIuMCBvbiB0b3Agb2YKR2lybGZyaWVuZCAxLjAuIFlvdSBtdXN0IHVuaW5zdGFsbCBHaXJsZnJpZW5kIDEuMCBmaXJzdC4KT3RoZXIgdXNlcnMgc2F5IHRoaXMgaXMgYSBsb25nIHN0YW5kaW5nIGJ1ZyB3aGljaCBJCnNob3VsZCBoYXZlIGJlZW4gYXdhcmUgb2YuIEFwcGFyZW50bHkgdGhlIHZlcnNpb25zIG9mCkdpcmxmcmllbmQgaGF2ZSBjb25mbGljdHMgb3ZlciBzaGFyZWQgdXNlIG9mIHRoZSBJL08KcG9ydC4gWW91IHRoaW5rIHRoZXkgd291bGQgaGF2ZSBmaXhlZCBzdWNoIGEgc3R1cGlkIGJ1ZwpieSBub3cuCgpUbyBtYWtlIG1hdHRlcnMgd29yc2UsIFRoZSB1bmluc3RhbGwgcHJvZ3JhbSBmb3IKR2lybGZyaWVuZCAxLjAgZG9lc24ndCB3b3JrIHZlcnkgd2VsbCBsZWF2aW5nCnVuZGVzaXJhYmxlIHRyYWNlcyBvZiB0aGUgYXBwbGljYXRpb24gaW4gdGhlIHN5c3RlbS4KCkFub3RoZXIgYW5ub3lpbmcgcHJvYmxlbSAtIGFsbCB2ZXJzaW9ucyBvZiBHaXJsZnJpZW5kCmNvbnRpbnVhbGx5IHBvcHVwIGFubm95aW5nIG1lc3NhZ2VzIGFib3V0IHRoZSBhZHZhbnRhZ2VzCm9mIHVwZ3JhZGluZyB0byBXaWZlIDEuMAoKKioqKiogQlVHIFdBUk5JTkcgKioqKioKV2lmZSAxLjAgaGFzIGFuIHVuZG9jdW1lbnRlZCBidWcuIElmIHlvdSB0cnkgdG8gaW5zdGFsbApNaXN0cmVzcyAxLjEgYmVmb3JlIHVuaW5zdGFsbGluZyBXaWZlIDEuMCwgV2lmZSAxLjAgd2lsbApkZWxldGUgTVNNb25leSBmaWxlcyBiZWZvcmUgZXhlY3V0aW5nIGEgc2VsZiAtCnVuaW5zdGFsbGF0aW9uLiBUaGVuIE1pc3RyZXNzIDEuMSB3aWxsIHJlZnVzZSB0bwppbnN0YWxsLCBjbGFpbWluZyBpbnN1ZmZpY2llbnQgc3lzdGVtIHJlc291cmNlcy4KCioqKioqIEJVRyBXT1JLLUFST1VORFMgKioqKioKVG8gYXZvaWQgdGhlIGFib3ZlIGJ1ZywgdHJ5IGluc3RhbGxpbmcgTWlzdHJlc3MgMS4xIG9uIGEKZGlmZmVyZW50IHN5c3RlbSBhbmQgbmV2ZXIgcnVuIGFueSBmaWxlIHRyYW5zZmVyCmFwcGxpY2F0aW9ucyBzdWNoIGFzIExhcGxpbmsgNi4wLiBBbHNvLCBiZXdhcmUKb2Ygc2ltaWxhciBzaGFyZXdhcmUgYXBwbGljYXRpb25zIHRoYXQgaGF2ZSBiZWVuIGtub3duCnRvIGNhcnJ5IHZpcnVzZXMgdGhhdCBtYXkgYWZmZWN0IFdpZmUgMS4wLgoKQW5vdGhlciBzb2x1dGlvbiB3b3VsZCBiZSB0byBydW4gTWlzdHJlc3MgMS4wIHZpYSBhClVzZU5ldCBwcm92aWRlciB1bmRlciBhbiBhbm9ueW1vdXMgbmFtZS4gSGVyZSBhZ2FpbiwKYmV3YXJlIG9mIHRoZSB2aXJ1c2VzIHdoaWNoIGNhbiBhY2NpZGVudGFsbHkgYmUKZG93bmxvYWRlZCBmcm9tIHRoZSBVc2VOZXQuCgoKUXVhc2ltb2RvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMYWNoZXIgZGVzIEphaHJlcyAoQmVlbHplYnViLCAgNC4gTWFyIDE5OTcsIDIwOjA4OjE1KToKRm9sZ2VuZGVzIGhhYiBpY2ggYmVyZWl0cyBsZXR6dGUgV29jaGUgaW4gZGVyIE1HLWZyZWllbiBaZWl0IGltIEFuZGVyTGFuZApnZXNjaHJpZWJlbiwgZGEgbGllc3QgZGFzIGFiZXIgZWgga2VpbmVyLi4uIGFsc28gbm9jaG1hbC4uLiBdOi0pCgpIYWIgZ3JhZCBmb2xnZW5kZXMgaW0gbmV1ZW4gUm9jayBIYXJkIGdlZnVuZGVuLCBkaWUgd2llZGVydW0gaGFiZW4gZXMgdm9uCkhlaWtlIEhvZmZtYW5uIGF1cyAwODM3MSBHbGF1Y2hhdSwgZGllIGVzIGF1cyBkZW0gQnVjaCAiQXVmIFRldWZlbCBrb21tIHJhdXMiCmhhdC4uLiB2b24gd2VsY2hlbiBEcm9nZW4gZGllIEF1dG9yZW4gZGllc2VzIEJ1Y2hlcyBkaWVzZW4gU2NobWFycm4gYmVrb21tZW4KaGFiZW4sIHdlaXNzIGljaCBhbGxlcmRpbmdzIG5pY2h0IDopCgpsIkhlYWQgYmFuZ2luZyIgaXN0IGVpbmUgZGVyIGJlbGllYnRlbiBGcmVpemVpdGJlc2NoYWVmdGlndW5nZW4gZGVyCk1ldGFsLU11c2lrLUZhbnMuIERhYmVpIGdlaHQgZXMgZ2VuYXUgZGFzLCB3b25hY2ggZXMgc2ljaCBhbmhvZXJ0OiBEaWUgRmFucwpzdG9zc2VuIGltbWVyIHdpZWRlciBtaXQgZGVtIEtvcGYgZ2VnZW4gV2FuZCwgQm9kZW4sIEJ1ZWhuZSBvZGVyIFR1ZXIsCndhZWhyZW5kIHNpZSBpaHJlciBMaWVibGluZ3NiYW5kIHp1aG9lcmVuLiBXYXJ1bT8gV2VpbCBlcyB3ZWh0dXQgdW5kIHVuZXJob2VydAppc3QuIE1ldGFsLU1hc3N0ZXIKW3NoaXRdIE1ldGFsLU1hc3Rlci1NaW5kIE96enktT3Nib3JuZSBlcmtsYWVydGU6ICJJY2ggbGllYmUgVG9kLCBWZXJuaWNodHVuZywKV2FobnNpbm4gdW5kIEhhc3MuIgpTZXggdW5kIERyb2dlbiBoYWJlbiBkaWUgTWV0YWwtU3plbmUgZHVyY2hkcnVuZ2VuLiBCZWkgZGVuIEtvbnplcnRlbiBpc3QgamVkZQpTb3J0ZSBEcm9nZW4genUgaGFiZW4sIHVuZCBtYW4gc2NobGllc3N0IGhhZXVmaWcgd2V0dGVuIGFiLCB3ZXIgc2ljaCBhbQptZWlzdGVuIHZvbGxwdW1wZW4ga2Fubi4gU2V4LCBiZXNvbmRlcnMgZGllIHBlcnZlcnNlbiBTcGllbGhhcnRlbiwgaXN0IGdhbmcKdW5kIGdhZWJlOiBGYW5zIG1pdCBGYW5zLCBGYW5zIG1pdCBCYW5kbWl0Z2xpZWRlcm4gdW5kIFJvYWRpZXMsIE1hZW5uZXJuIG1pdApNYWVubmVybiwgRnJhdWVuIG1pdCBGcmF1ZW4gdW5kIEdydXBwZW5zZXggLSBhbGwgZGFzIGlzdCBoaWVyIGVoZXIgbm9ybWFsIGFscwphYndlaWNoZW5kLgpCZWVsemVidWIga25pZWh0IHNpY2ggdm9lbGxpZyB6dWdla2lmZnQgbmllZGVyLCBoYWVtbWVydCBzZWluZW4gS29wZiBhdWYgZGVuCkJvZGVuIHVuZCBkZW5rdDoiIEhvZWhvZSwgTWV0YWwgaXN0IGNvb2w7IHdlciBoYXQgTHVzdCBhdWYgbmUgUnVuZGUgUG9wcGVuID8KXTotKSIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGF1ZiBkZXIgSG90bGluZS4uLi4gKFR1bml4Z3V0LCAgNi4gTWFyIDE5OTcsIDA3OjQ5OjU2KToKSG90bGluZTogRmlybWEgRCAmIFYgSG90bGluZSwgR3V0ZW4gVGFnIQpNdWVsbGVyOiBHdXRlbiBUYWcsIG1laW4gTmFtZSBpc3QgTXVlbGxlci4gSWNoIGhhYmUgZWluIFByb2JsZW0gbWl0IG1laW5lbQogICAgICAgICBDb21wdXRlci4KSG90bGluZTogV2VsY2hlcyBkZW5uLCBGcmF1IE11ZWxsZXI/Ck11ZWxsZXI6IERpZSBlbmlraS1UYXN0ZS4KSG90bGluZTogV29mdWVyIGJyYXVjaGVuIFNpZSBkZW5uIGRpZXNlIFRhc3RlPwpNdWVsbGVyOiBEYXMgUHJvZ3JhbW0gdmVybGFuZ3QgZGllc2UgVGFzdGUuCkhvdGxpbmU6IFdhcyBpc3QgZGFzIGZ1ZXIgZWluIFByb2dyYW1tPwpNdWVsbGVyOiBEYXMgd2Vpc3MgaWNoIG5pY2h0LCBhYmVyIGVzIHdpbGwsIGRhc3MgaWNoIGRpZSBlbmlraS1UYXN0ZSBkcnVlY2tlLgogICAgICAgICBJY2ggaGFiZSBzY2hvbiBkaWUgU3RyZy0sIGRpZSBBbHQgdW5kIGRpZSBHcm9zc21hY2gtVGFzdGUKICAgICAgICAgYXVzcHJvYmllcnQsIGFiZXIgZXMgdHV0IHNpY2ggbmljaHRzLgpIb3RsaW5lOiBGcmF1IE11ZWxsZXIsIHdhcyBzdGVodCBkZW5uIGdlcmFkZSBhdWYgSWhyZW0gTW9uaXRvcj8KTXVlbGxlcjogRWluZSBCbHVtZW52YXNlLgpIb3RsaW5lOiBOZWluLCBGcmF1IE11ZWxsZXIsIGxlc2VuIFNpZSBtYWwgdm9yLCB3YXMgYXVmIElocmVtIE1vbml0b3Igc3RlaHQhCk11ZWxsZXI6IGkgYmUgZW0KSG90bGluZTogTmVpbiwgRnJhdSBNdWVsbGVyLCB3YXMgYXVmIElocmVtIFNjaGlybSBzdGVodCwgbW9lY2h0ZSBpY2ggd2lzc2VuLgpNdWVsbGVyOiBNb21lbnQsIGRlciBoYWVuZ3QgYW4gZGVyIEdhcmRlcm9iZS4KSG90bGluZTogSGFsdCwgRnJhdSBNdWVsbGVyIC4uLi4gRnJhdSBNdWVsbGVyLi4uLgpNdWVsbGVyOiBTbywgamV0enQgaGFiZSBpY2ggaWhuIGF1Zmdlc3Bhbm50LiBEYSBzdGVodCBhYmVyIG5pY2h0cyBkcmF1Zi4KSG90bGluZTogRnJhdSBNdWVsbGVyLCBzY2hhdWVuIFNpZSBtYWwgYXVmIElocmVuIEJpbGRzY2hpcm0gdW5kIGxlc2VuIFNpZQogICAgICAgICBtYWwgZ2VuYXUgdm9yLCB3YXMgZGEgZ2VzY2hyaWViZW4gc3RlaHQuCk11ZWxsZXI6IEFjaCBzbywgU2llIG1laW50ZW4gLi4uLiBvaCwgRW50c2NodWxkaWd1bmchIERhIHN0ZWh0OgogICAgICAgICAiUGxpZXMgcHJlc3MgZW5pa2kgdHUga29udGluanUiCkhvdGxpbmU6IEFoYSwgZGFzIGhlaXNzdDogIlBsZWFzZSBwcmVzcyBhbnkga2V5IHRvIGNvbnRpbnVlIi4gRGVyIENvbXB1dGVyCiAgICAgICAgIG1lbGRldCBzaWNoIGFsc28gaW4gRW5nbGlzY2guCk11ZWxsZXI6IE5laW4sIHdlbm4gZXIgd2FzIHNhZ3QsIGRhbm4gcGllcHN0IGVyIG51ci4KSG90bGluZTogRHJ1ZWNrZW4gU2llIG1hbCBkaWUgRW50ZXItVGFzdGUuCk11ZWxsZXI6IEpldHp0IGdlaHQncywgZGFzIGlzdCBhbHNvIGRpZSBFbmlraS1UYXN0ZS4gRGFzIGtvZW5uZW4gZGllIGFiZXIKICAgICAgICAgYXVjaCBnbGVpY2ggcmF1ZnNjaHJlaWJlbi4gR3V0LCB3aWUga2FubiBpY2ggZGVubiBqZXR6dCBkaWVzZXMKICAgICAgICAgUHJvZ3JhbW0gYmVlbmRlbiwgZGFtaXQgaWNoIHdpZWRlciBhcmJlaXRlbiBrYW5uPwpIb3RsaW5lOiBTaWUgbXVlc3NlbiBlcnN0bWFsIHJhdXNnZWhlbi4KTXVlbGxlcjogR3V0LCBNb21lbnQuCkhvdGxpbmU6IE5FSU4sIEZyYXUgTXVlbGxlciAuLi4uIEZyYXUgTXVlbGxlciwgYmxlaWJlbiBTaWUgZG9jaCBhbSBUZWxlZm9uLgogICAgICAgICBJY2ggbWVpbnRlIC4uLi4gRnJhdSBNdWVsbGVyPz8/IC4uLiBGUkFVIE1VRUxMRVIhISAuLi4gSGFsbG8hISEKTXVlbGxlcjogSmEsIGRhIGJpbiBpY2ggd2llZGVyLiBJY2ggaGFiZSBTaWUgaW0gRmx1ciBrYXVtIGhvZXJlbiBrb2VubmVuLgpIb3RsaW5lOiBTaWUgc29sbHRlbiBhdWNoIG5pY2h0IGluIGRlbiBGbHVyIGdlaGVuLiBpY2ggd29sbHRlIG51ciwgZGFzcwogICAgICAgICBTaWUgZGFzIEZlbnN0ZXIgc2NobGllc3NlbiEKTXVlbGxlcjogV2FydW0gc2FnZW4gU2llIGRhcyBuaWNodCBnbGVpY2g/IFdhcnRlbiBTaWUhCkhvdGxpbmU6IEZyYXUgTXVlbGxlcj8KTXVlbGxlcjogSmEsIGljaCBiaW4gd2llZGVyIGRyYW4uIFNvbGwgaWNoIGRpZSBUdWVyIGF1Y2ggenVtYWNoZW4/CkhvdGxpbmU6IE5laW4sIEZyYXUgTXVlbGxlci4gTmVpbiwgd2lya2xpY2ggbmljaHQhISBFaWdlbnRsaWNoIHNvbGx0ZW4gU2llCiAgICAgICAgIG51ciBkYXMgUHJvZ3JhbW1mZW5zdGVyIHNjaGxpZXNzZW4sIGFiZXIgaWNoIGdsYXViZSwgZXMgaXN0IGRhcwogICAgICAgICBiZXN0ZSwgd2VubiBTaWUgZ2xlaWNoIGRlbiBTdGVja2VyIGF1cyBkZXIgRG9zZSB6aWVoZW4hIQpNdWVsbGVyOiBXZW5uIFNpZSBtZWluZW4uLi4uCkhvdGxpbmU6IEhBTFQhISEgRGFzIHdhciBkb2NoIG51ciBlaW4gU2NoZXJ6LCBGcmF1IE11ZWxsZXIuLi4uCk11ZWxsZXI6IEFsbGVzIGtsYXIuIEljaCBoYWJlIGlobiBoZXJhdXNnZXpvZ2VuLiBIYWxsbz8gLi4uIEhBTExPPz8gLi4uCiAgICAgICAgIFNpbmQgU2llIG5vY2ggZHJhbj8/IEtvbWlzY2gsIGpldHp0IGlzdCBkaWUgTGVpdHVuZyB0b3QuIEFsc28sIGRpZQogICAgICAgICBpbiBkZXIgSG90bGluZSBoYWJlbiBhYmVyIGF1Y2ggdWViZXJoYXVwdCBrZWluZSBBaG51bmchISEhCgpTaWNoIGRhcmFuIGVyaW5uZXJuZCwgd2FzIGlobSBzY2hvbiBhbGxlcyB1bnRlcmdla29tbWVuIGlzdC4uLgpUdU5peEd1dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMCAoWm9ycm8sIDEyLiBNYXIgMTk5NywgMDk6NTA6MDEpOgoiV2VyIGhhdCBkZW4gU296aWFsaXNtdXMgZXJmdW5kZW4sIGRlciBBcmJlaXRlciBvZGVyCiAgICAgICAgZGVyIFdpc3NlbnNjaGFmdGxlcj8gTmF0fHJsaWNoIGRlciBBcmJlaXRlciAtIGRlcgogICAgICAgIFdpc3NlbnNjaGFmdGxlciBodHRlIGlobiB6dWVyc3QgYW4gUmF0dGVuIGF1c3Byb2JpZXJ0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJhcHVuemVsIChMaSwgMTIuIE1hciAxOTk3LCAwOTo1NTowNik6CldhcnVtIHdhciBSYXB1bnplbCBlaW5lIEJsb25kaW5lPwpKZWRlIGFuZGVyZSBoYWV0dGUgZGVuIFNDaGx1ZXNzZWwgaGVydW50ZXJnZXdvcmZlbi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZMVyAoQmVuZGVpZ2lkLCAxMi4gTWFyIDE5OTcsIDEwOjI4OjQ1KToKRkxXIGRlciBDaGFsbGVuZ2VyLUJlc2F0enVuZzoKCkxhc3N0IGRvY2ggbWFsIGRpZSBGcmF1IGFucyBTdGV1ZXIuCgpGcmF1ZW5mZWluZGxpY2gsIGh1bW9ybG9zLCBzcGllc3NpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVuZGVpZ2lkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRkxXIChIYXIsIDEyLiBNYXIgMTk5NywgMTM6MzQ6MjApOgp+IyEgcm49QmVuZGVpZ2lkIHJ0PTg1ODE1ODkyNSByZz13aXR6ZQp+IyEgdGlkPTg1ODE1ODkyNQpEaWUgT3JpZ2luYWx3b3J0ZSB3YXJlbjoKU28sIHdpciBsYXNzZW4gamV0enQgZGllIEZyYXUgYW5zIFN0ZXVlci4uLgoKCm51ciBhdXMgTGFuZ2V3ZWlsZS4uLgoKSGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgowIChab3JybywgMTMuIE1hciAxOTk3LCAxODowMToxNyk6CkJheWVybiBNdWVuY2hlbiB3aXJkIE1laXN0ZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogMCAoQWNyaW1vbiwgMTMuIE1hciAxOTk3LCAxODowNToyOSk6Cn4jISBybj1ab3JybyBydD04NTgyNzI0Nzcgcmc9d2l0emUKfiMhIHRpZD04NTgyNzI0NzcKR3V0ZXIgV2l0eiwgZGFzeiBkaWVzZXIgU2F0eiBpbiAid2l0emUiIHN0ZWh0ISBHdXQhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpsYWxhYWFhbGFsYWxhYWFhYWFhYWFhYSAoSmFzcGVyLCAxMy4gTWFyIDE5OTcsIDE4OjA4OjA4KToKQXJ0aWNsZSAxMDcyIGluIGZsYW1lCkRhdGU6IFRodSBNYXIgMTMgMDQ6NDU6NDEgMTk5NwpGcm9tOiBUaWdlcgpTdWJqZWN0OiBzaWNrIGpva2UgOykKClRoZSBsYXN0IDUgdGhpbmdzIGEgbWFuIHdvdWxkIHNheToKCjEpIFdoaWxlIEknbSB1cCwgY2FuIEkgZ2V0IHlvdSBhIGJlZXI/CjIpIEhlciB0aXRzIGFyZSBqdXN0IHRvbyBiaWcuCjMpIFNvbWV0aW1lcyBJIGp1c3Qgd2FudCB0byBiZSBoZWxkLgo0KSBTdXJlLCBJJ2QgbG92ZSB0byB3ZWFyIGEgY29uZG9tLgo1KSBGdWNrIHRoZSBTdGFubGV5IEN1cCwgbGV0J3Mgd2F0Y2ggTXVycGh5IEJyb3duLgoKRW5kIG9mIGFydGljbGUgMTA3MiAob2YgMTA3NCktLXdoYXQgbmV4dD8gW25wY3E/XSBDYW1waW5vIFtwYXJ0eV06IGhwOiAxMjE4IAooMTIxOCkgc3A6IDk0NyAoOTgwKQpEb25rZXkgc2hvdXRzICdPb3BzLCBJIGJldHRlciB3YXRjaCB3aGF0IEkgc3RlcCBvbiBuZXh0IHRpbWUsIHNvcnJ5IE1vcGhpcy4nCkdyaWZmeSBbcGFydHldOiBidXAvdHVwIDBrIDopClRoZSBmaXJlJ3Mgd2FybXRoIHNvb3RoZXMgeW91LgpDYW1waW5vIFtwYXJ0eV06IGhwOiAxMjE4ICgxMjE4KSBzcDogOTUzICg5ODApCgpBcnRpY2xlIDEwNzMgaW4gZmxhbWUKRGF0ZTogVGh1IE1hciAxMyAwNDo0NjoxNSAxOTk3CkZyb206IFRpZ2VyClN1YmplY3Q6IHNpY2sgam9rZSAyCgpUaGUgbGFzdCA1IHRoaW5ncyBhIHdvbWFuIHdvdWxkIHNheToKCjEpIENvdWxkIG91ciByZWxhdGlvbnNoaXAgYmUgbW9yZSBwaHlzaWNhbD8gSSdtIHRpcmVkIG9mIGJlaW5nCiAgIGp1c3QgZnJpZW5kcy4KMikgVGhpcyBkaWFtb25kIGlzIHdheSB0b28gYmlnIQozKSBJIHdvbid0IGV2ZW4gcHV0IG15IGxpcHMgb24gdGhhdCB0aGluZyB1bmxlc3MgSSBnZXQgdG8gc3dhbGxvdy4KNCkgU3VyZSwgbGV0J3Mgd2F0Y2ggQmF5d2F0Y2ghCjUpIE15IG1pc3Rha2UuIFlvdSBtdXN0IGJlIHJpZ2h0IGFnaWFuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiAwIChTaWx2YW5hLCAxMy4gTWFyIDE5OTcsIDE4OjM2OjA0KToKfiMhIHJuPUFjcmltb24gcnQ9ODU4MjcyNzI5IHJnPXdpdHplCn4jISB0aWQ9ODU4MjcyNDc3CldhciBkYXMgamV0enQgaXJvbmlzY2ggZ2VtZWludD8KCiAgU2lsdmFuYSAtIGdydWViZWx0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiAwIChSYWZmaSwgMTMuIE1hciAxOTk3LCAxOTozMDozOCk6Cn4jISBybj1TaWx2YW5hIHJ0PTg1ODI3NDU2NCByZz13aXR6ZQp+IyEgdGlkPTg1ODI3MjQ3NwoKS2FubiBpY2ggbWlyIG5pY2h0IGFuZGVycyBlcmtsYWVyZW4KCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgowIChab3JybywgMTQuIE1hciAxOTk3LCAxMToxMjowNik6CiJadWVyc3QgYmVpbSBSZWluemFwcGVuIGRhY2h0ZSBpY2g6IE1vbWVudCwKICAgICAgICBNb21lbnQsIGVtcHJ0ZSBNZW5zY2hlbiAtIGlzdCBlcyBCb25uLCBpc3QgZXMKICAgICAgICBBbGJhbmllbj8gRGFubiB3YXIgbWlyIGtsYXI6IE5laW4sIGluIEFsYmFuaWVuIGtvbW10CiAgICAgICAgZG9jaCBkZXIgU3RyZWlrZW5kZSBuaWNodCBtaXQgZGVtIE1vdG9ycmFkISIgIkpldHp0CiAgICAgICAgdm9yZ2VzdGVsbHQgYXVmIGRlciBDZUJJVCBpbiBIYW5ub3ZlcjogRWluIENvbXB1dGVyLAogICAgICAgIGRlciBHZXNwcm9jaGVuZXMgaW4gU2NocmlmdCB1bXNldHp0LiBEYXMgZXJzdGUsIHdhcwogICAgICAgIGRlciBDb21wdXRlciBnZXNjaHJpZWJlbiBoYXQsIDI1bWFsIGZlaGxlcmZyZWk6IGR1CiAgICAgICAgRHJlY2tzZGluZywgZHUgRHJlY2tzZGluZywgZHUgRHJlY2tzZGluZy4uLiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLZWluIFdpdHogKEJsb29keWhhcnJ5LCAxNC4gTWFyIDE5OTcsIDE0OjQxOjA3KToKTWVpbiBLb2xsZWdlIGhhdCBhdWYgc2VpbmVtIGZyaXNjaCBpbnN0YWxsaWVydGVuIE9TLzIgd2FycDQgZGllClNwcmFjaGVya2VubnVuZyBhdXNwcm9iaWVyZW4gd29sbGVuIC0gbWFsIGViZW4gc2NobmVsbCBtaXQgVW1nZWh1bmcgZGVyCm11ZWhzZWVsaWdlbiBTcHJhY2hsZXJucHJvY2VkdXJlbi4uLgoKS29sbGVnZTogSGEtYWVoLWhhZW1tISAgPHJhZXVzcGVyPgpDb21wdXRlcjogaW4gS29lbG4KCktvZW5uZW4gc2ljaCBkYXMgZGllIEdlcm1hbmlzdGVuIGVya2xhZXJlbj8gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjAgKFpvcnJvLCAyMC4gTWFyIDE5OTcsIDA5OjM1OjU0KToKRGVyIEZDIEJheWVybiBicmF1Y2h0IHp3ZWkgbmV1ZSBMZXV0ZSAtIG5pY2h0IG51ciBlaW5lbiBuZXVlbiBTdHVlcm1lciB2b3IKYWxsZW0gZWluZW4gU3VlbmRlbmJvY2shCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgowIChab3JybywgMjAuIE1hciAxOTk3LCAwOTozNzowOSk6CiJCb3JpcyB1bmQgR2F0dGluIEJhYnMgdW5kIFNvaG4gTm9haCBHYWJyaWVsCiAgICAgICAgdmVybGFzc2VuIERldXRzY2hsYW5kIHVuZCB6aWVoZW4gbmFjaCBGaXNoZXIgSXNsYW5kCiAgICAgICAgYmVpIE1pYW1pLCBGbG9yaWRhLiBEYXMgbmVobWVuIHNpZSBpbiBLYXVmLCBkaWVzZXMKICAgICAgICBzY2h3ZXJlIExvczogRGVuIExybSBkZXIgV2VsbGVuLCBkaWUgbXJkZXJpc2NoZQogICAgICAgIFNvbm5lLCBTYW5kIGluIGplZGVtIEtvbnRvYXVzenVnISIKCiAgICAgICAgIk5vYWggR2FicmllbCwgZGFzIGlzdCBkZXIgU29obiB2b24gQmFicyB1bmQKICAgICAgICBCb3Jpcywgc29sbCB6d2Vpc3ByYWNoaWcgYXVmd2FjaHNlbjogQW1lcmlrYW5pc2NoIGlzdAogICAgICAgIGtsYXIgLSBhYmVyIHZvbiB3ZW0gbGVybnQgZGFzIEtpbmQgRGV1dHNjaD8iCgogICAgICAgICJCb3JpcyBoYXQgbm9jaCBnYW56IGFuZGVyZSBTYWNoZW4gYW5ub25jaWVydDoKICAgICAgICBCaWJsaW90aGVrc2F1ZmxzdW5nLiA3IGJpcyA4IHNjaG5lIEJ8Y2hlciBpbiB0b3RhbAogICAgICAgIHNjaG5lbiBGYXJiZW4sIG1pdCBnYW56IHZpZWxlbiBTZWl0ZW4sIHRlaWx3ZWlzZSBhdWNoCiAgICAgICAgbWl0IEJ1Y2hzdGFiZW4gdW5kIHNvLiBJbiBkcmVpIEJ8Y2hlcm4gaXN0IG5vY2ggZ2FyCiAgICAgICAgbmljaHRzIGF1c2dlbWFsdC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcm9ncmFtbWtvZW5pZyAoRGllZGVyLCAyMC4gTWFyIDE5OTcsIDE0OjMwOjQyKToKRGVyIFByb2dyYW1ta29lbmlnICh6LkIuIGJlaSBNaWNyb1NjaHJvdHQpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKV2VyIHRhc3RldCBzaWNoIG5hY2h0cyBkaWUgRmluZ2VyIGtsYW1tPwpFcyBpc3QgZGVyIFByb2dyYW1taWVyZXIgbWl0IHNlaW5lbSBQcm9ncmFtbS4KRXIgdGFzdGV0IHVuZCB0YXN0ZXQsIGVyIHRhc3RldCBzY2huZWxsLAppbSBPc3RlbiB3aXJkIHNjaG9uIGRlciBIaW1tZWwgaGVsbC4KU2VpbiBIYWFyIGlzdCBlcmdyYXV0LCBzZWluZSBIYWVuZGUgeml0dGVybiwKdm9tIHVuYWJsYWVzc2lnZW4gSGF1cHRzcGVpY2hlci1GdWV0dGVybi4KRGEgLSBhdXMgZGVtIEhhdXB0c3BlaWNoZXIgdG9lbnQgZWluIEdlZmx1ZXN0ZXI6CiJXZXIgZnVtbWVsdCBhbiBtZWluZW0gQmFzaXNyZWdpc3Rlcj8iCk51ciBydWhpZywgbnVyIHJ1aGlnLCBpaHIgbGllYmVuIEJpdHMsCmVzIGlzdCBkb2NoIG51ciBlaW4ga2xlaW5lciBXaXR6LgpNZWluIE1laXN0ZXIsIG1laW4gTWVpc3Rlciwgc2llaCBlaW5tYWwgZG9ydCwKZG9ydCB2b3JuZSBzY2hsZWljaHQgc2ljaCBlaW4gSGF1cHR6ZWljaGVuIGZvcnQhCkJsZWliIHJ1aGlnLCBibGVpYiBydWhpZywgbWVpbiBsaWViZXMgS2luZCwKaWNoIGhvbCBlcyBkaXIgd2llZGVyIC0gZ2FueiBiZXN0aW1tdC4KTWVpbiBNZWlzdGVyLCBtZWluIE1laXN0ZXIsIGhvZXJzdCBEdSBkYXMgR3JvbGxlbiwKZGllIHdpbGRlbiBCaXRzIGR1cmNoIGRlbiBIYXVwdHNwZWljaGVyIHRvbGxlbj8KTnVyIHJ1aGlnLCBudXIgcnVoaWcsIGRhcyBoYWJlbiB3aXIgZ2xlaWNoLApkaWUgc3BlcnJlbiB3aXIgaW4gZGVuIENhY2hlLUJlcmVpY2guCkVyIHRhc3RldCB1bmQgdGFzdGV0LCB3aWUgYmVzZXNzZW4sCnNjaGVpc3NlIC0gamV0enQgaGF0IGVyIHp1IHNhdmVuIHZlcmdlc3NlbiEKRGVyIFByb2dyYW1taWVyZXIgc2NocmVpdCBhdWYgaW4gaG9lY2hzdGVyIFF1YWwsCmRhIHp1Y2t0IGR1cmNocyBGZW5zdGVyIGVpbiBTb25uZW5zdHJhaGwuCkRlciBCaWxkc2NoaXJtIHNjaGltbWVydCBpbSBNb3JnZW5yb3QsCmRhcyBQcm9ncmFtbSBpc3QgZ2VzdG9yYmVuLCBkZXIgUHJvZ3JhbW1pZXJlciAtIHRvdC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUHJvZ3JhbW1rb2VuaWcgKEFjcmltb24sIDIwLiBNYXIgMTk5NywgMTk6MjQ6NDQpOgp+IyEgcm49RGllZGVyIHJ0PTg1ODg2NDY0MiByZz13aXR6ZQp+IyEgdGlkPTg1ODg2NDY0MgpJY2gga2VubiBkYSBlaW5lIHNjaG9lbmVyIFZlcnNpb24gbWl0IG5pY2h0IHNvIHZpZWxlbiBSZWNodHNjaHJlaWJmZWhsZXJuOgoKCgpEIEkgRSAgIEIgQSBMIEwgQSBEIEUgICBWIE8gTSAgIEIgSSBUIEsgT2UgTiBJIEcKCldlciB0YXN0ZXQgc2ljaCBuYWNodHMgZGllIEZpbmdlciBrbGFtbT8KRXMgaXN0IGRlciBCZW51dHplciBtaXQgc2VpbmVtIFByb2dyYW1tLgpFciB0YXN0ZXQgZ2VzY2h3aW5kIGVyIHRhc3RldCBzY2huZWxsLAppbSBPc3RlbiB3aXJkIGRlciBIaW1tZWwgc2Nob24gaGVsbC4KClNlaW4gSGFhciBpc3QgZXJncmF1dCwgc2VpbmUgSGFlbmRlIHNpZSB6aXR0ZXJuCnZvbSB1bmFibGFlc3NpZ2VuIEtlcm5zcGVpY2hlcmZ1ZXR0ZXJuLgpEYSAtIGF1cyBkZW0gUHJvZ3JhbW0gdG9lbnQgZWluIEdlZmx1ZXN0ZXI6CldlciBwb3BlbHQgYW4gbWVpbmVtIEJlZmVobHNyZWdpc3Rlcj8KCkJsZWliJyBydWhpZywgYmxlaWInIHJ1aGlnLCBtZWluZSBsaWViZSBaRSwKaWNoIHR1JyBkaXIgZ2FueiBiZXN0aW1tdCBuaWNodCB3ZWguCk1laW4gTWVpc3RlciwgbWVpbiBNZWlzdGVyIHVuZCBzaWVoc3QgZHUgbmljaHQgZG9ydCwKYXVzIGRlbSBBa2t1IHNjaGxlaWNodCBzaWNoIGVpbiBWb3J6ZWljaGVuIGZvcnQuCgpOdXIgcnVoaWcsIG51ciBydWhpZywgbWVpbiBsaWViZXMgS2luZCwKaWNoIGhvbGUgZXMgd2llZGVyLCBnYW56IGJlc3RpbW10LgpNZWluIE1laXN0ZXIsIG1laW4gTWVpc3RlciwgaG9lcnN0IGR1IGRhcyBHcm9sbGVuLApkaWUgd2lsZGVuIEJpdHMgZHVyY2ggZGVuIFNwZWljaGVyIHRvbGxlbj8KCk51ciBydWhpZywgbnVyIHJ1aGlnLCBkYXMgaGFiZW4gd2lyIGdsZWljaCwKZGllIHNwZXJyZW4gd2lyIGluIGRlbiBQdWZmZXJiZXJlaWNoLgpFciB0YXN0ZXQgd2lsZCwgZXIgdGFzdGV0IGJlc2Vzc2VuLApKZWRvY2ggLSBlciBoYXQgZGFzICBTIGkgYyBoIGUgciBuICB2ZXJnZXNzZW4uCgpEZXIgUmVjaG5lciBzY2hyaWUgYXVmIGluIGhvZWNoc3RlciBRdWFsLApkYSB6dWNrdCBkdXJjaCBkYXMgRmVuc3RlciBlaW4gU29ubmVuc3RhaGwuCkRpZSBLb25zb2xlIHNjaGltbWVydCBpbSBNb3JnZW5yb3QsCmRlciBCaXRrb2VuaWcgbGVidCAtIGRhcyBQcm9ncmFtbSBpc3QgdG90LgoKSC5BRk9OU08KCgpBY3JpbW9uLCBkZXIgUm90ZSBSaXR0ZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUHJvZ3JhbW1rb2VuaWcgKERpZWRlciwgMjAuIE1hciAxOTk3LCAyMToyOToxMik6Cn4jISBybj1BY3JpbW9uIHJ0PTg1ODg4MjI4NCByZz13aXR6ZQp+IyEgdGlkPTg1ODg2NDY0MgpSZWNodHNjaHJlaWJmZWhsZXI/Pz8gU2VoIGljaCBrYXVtIGVpbmVuLi4uIDstKSAKbmljaHRzIGRlc3RvIHRyb3R6IGlzdCBkZWluZSBWZXJzaW9uIGF1Y2ggbmljaHQgc2NobGVjaHQuCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhcmFsZCBTLiAoWm9ycm8sIDIxLiBNYXIgMTk5NywgMTA6NTc6NTgpOgoiRnJhbnogQmVja2VuYmF1ZXIgaGF0IHNlaW5lbSBUZWFtIGdlc2FndCAtIGVpbiBSaWVzZW5rb21wbGltZW50OiAKSWhyIHNlaWQgZWluZSBTY2hlaXNzLU1hbm5zY2hhZnQhIiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFyYWxkIFMuIChab3JybywgMjEuIE1hciAxOTk3LCAxMDo1OTo1NSk6CiJXZW5uIFRoeXNzZW4gdm9uIEtydXBwIGdlc2NobHVja3Qgd29yZGVuCiAgICAgICAgd3JlLCBkYW5uIHdyZSBUaHlzc2VuIHNvIGVpbmUgQXJ0IFBzZXVkby1LcnVwcAogICAgICAgIGdld29yZGVuLiBBYmVyIHNpZSBoYWJlbiBpaG5lbiB3YXMgZ2VodXN0ZXQhIgoKICAgICAgICAiRGFzIHdpY2h0aWdlIFdvcnQsIGRhcyB3aXIgYWxsZSBuZXUgZ2VsZXJudCBoYWJlbiwKICAgICAgICB3YXI6IFVuZnJldW5kbGljaGUgXGJlcm5haG1lLiBVbmZyZXVuZGxpY2hlIG9kZXIKICAgICAgICBmZWluZGxpY2hlIFxiZXJuYWhtZTogQmlzaGVyIGhpZW9kZXIgZGFzCiAgICAgICAgV2llZGVydmVyZWluaWd1bmchIgoKICAgICAgICAiTGllYmUgRGVtb25zdHJhbnRlbjogRGllc21hbCBpc3QgZGllIEZEUCB3aXJrbGljaAogICAgICAgIHVuc2NodWxkaWcuIEJpdHRlIGRpZXNtYWwgaW0gUHJvdGVzdGZhbGwgYW4gZGllCiAgICAgICAgRGV1dHNjaGUgQmFuayBrZXR0ZW4uIERpZSBodHRlbiBnZXNhZ3Q6IFdlbm4gaWhyCiAgICAgICAgZXMgYnJhdWNodCwgby4gay4sIEtpbmRlci4gRGFubiBzZWlkIGlociBhdXMgZGVtCiAgICAgICAgU2NobmVpZGVyISIKCiAgICAgICAgIkljaCBnbGF1YmUsIHZpZWxlIGluIEJvbm4gc2FnZW4gc2ljaDogQWNoLCBqZXR6dCBnaWJ0IGVzCiAgICAgICAgd2llZGVyIGRpZXNlbiBEcmdlciBtaXQgZGVuIHZpZWxlbiB0YXVzZW5kIExldXRlbiBpbQogICAgICAgIFJ1aHJnZWJpZXQgYXVmIGRlciBTdHJhaW1lLiBXcmUgZWlnZW50bGljaCBuaWNodAogICAgICAgIHNjaGxlY2h0IGdld2VzZW4sIHdlbm4gZGllIEZyYW56b3NlbiAxOTI1IGRhcwogICAgICAgIFJ1aHJnZWJpZXQgYmVoYWx0ZW4gaHR0ZW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGFzIFdlaWIgYXVzIGRlciBTaWNodCBkZXIgQ2hlbmlrZXJzIChEaWVkZXIsIDI0LiBNYXIgMTk5NywgMjI6NDU6MTQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFURVJJQUwtU0lDSEVSSEVJVFMtREFURU5CTEFUVAoKICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VJQiAtICAgRUlORSBDSEVNSVNDSEUgR0VGQUhSICEhCgogICAgICAgICAgICAgICAgICAgICBFTEVNRU5UOiAgICAgICBXRUlCICAoZW5nbC4gV09NQU4pCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTUJPTCA6ICAgICAgIFdPMgoKICAgICAgICAgICAgICAgICAgICBFTlRERUNLRVI6ICAgICBBZGFtLiBEYXR1bSB1bmJla2FubnQKCiAgQVRPTUFSRVMgR0VXSUNIVDogIE5vcm1hbCAxMTggUGZ1bmQsIElzb3RvcGUgbWl0IGFid2VpY2hlbmRlbSBHZXdpY2h0IHZvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCBiaXMgNTUwIFBmdW5kIHNpbmQgYmVrYW5udC4KCiAgICAgICBWT1JLT01NRU46ICAgIFJlaWNobGljaGUgTWVuZ2VuIGluIGFsbGVuIHN0YWVkdGlzY2hlbiBHZWdlbmRlbgoKICAgICAgICAgICAgICAgICAgICAgICAgUEhZU0lLQUxJU0NIRSBFSUdFTlNDSEFGVEVOOgogICAgICAgIDEuIE9iZXJmbGFlY2hlIGdld29laG5saWNoZXJ3ZWlzZSBtaXQgZmFyYmlnZW0gRmlsbSB1ZWJlcnpvZ2VuCiAgICAgICAgICAgICAyLiBLb2NodCBvaG5lIGFldXNzZXJlIEVpbndpcmt1bmcuIEZyaWVydCBvaG5lIEdydW5kCiAgICAgICAgICAgICAgICAgICAgMy4gU2NobWlsenQgYmVpIGJlc29uZGVyZXIgQmVoYW5kbHVuZwogICAgNC4gVm9yZ2VmdW5kZW4gaW4gdmVyc2NoaWVkZW5lbiBadXN0YWVuZGVuLCB2b20ganVuZ2ZyYWV1bGljaGVuIE1ldGFsbAogICAgICAgICAgICAgICAgICAgICAgICAgIGJpcyBoaW4genVtIGdld29laG5saWNoZW4gRXJ6CgogICAgICAgICAgICAgICAgICAgICAgICAgIENIRU1JU0NIRSBFSUdFTlNDSEFGVEVOOgogICAgICAxLiBIYXQgZ3Jvc3NlIEFmZmluaXRhZXQgZnVlciBHb2xkLCBTaWxiZXIsIFBsYXRpbiB1bmQgRWRlbHN0ZWluZQogICAgICAgICAgICAgIDIuIEFic29yYmllcnQgZ3Jvc3NlIE1lbmdlbiB2b24gdGV1cmVuIFN1YnN0YW56ZW4KICAgICAgMy4gS2FubiBzcG9udGFuIG9obmUgV2FybnVuZyB1bmQgb2huZSBiZWthbm50ZW4gR3J1bmQgZXhwbG9kaWVyZW4KICAgICA0LiBVbmxvZXNsaWNoIGluIEZsdWVzc2lna2VpdGVuLCBhYmVyIEFrdGl2aXRhZXQgc3RlaWd0IGV4cG9uZW50aWVsbAogICAgICAgICAgICAgICAgICAgICAgICAgIG1pdCBkZXIgU2FldHRpZ3VuZyBpbiBBbGtvaG9sCiA1LiBEYXMgYW0gd2lya3VuZ3N2b2xsc3RlbiBnZWxkcmVkdXppZXJlbmRlIE1pdHRlbCBkYXMgZGVtIE1hbm4gYmVrYW5udCBpc3QKCiAgICAgICAgICAgICAgICAgICAgICAgICAgR0VXT0VITkxJQ0hFIFZFUldFTkRVTkc6CiAgICAgICAgICAgICAgICAgIDEuIHN0YXJrIHppZXJlbmQsIGJlc29uZGVycyBpbiBTcG9ydHdhZ2VuCiAgICAgICAgICAgICAyLiBLYW5uIGZ1ZXIgZGllIEVudHNwYW5udW5nIGVpbmUgZ3Jvc3NlIEhpbGZlIHNlaW4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVFM6CiAxLiBFY2h0ZSBTcGV6aWVzIHdlcmRlbiByb3QsIHdlbm4gc2llIGltIG5hdHVlcmxpY2hlbiBadXN0YW5kIGVudGRlY2t0CndlcmRlbgogICAgICAgICAgIDIuIFdpcmQgZ3J1ZW4sIHdlbm4gaGludGVyIGVpbmUgYmVzc2VyZSBTcGV6aWVzIGdlc3RlbGx0CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRUZBRUhSTElDSEtFSVQ6CiAgICAgICAgICAxLiBTZWhyIGdlZmFlaHJsaWNoLCB3ZW5uIG5pY2h0IGluIHNlaHIgZXJmYWhyZW5lbiBIYWVuZGVuCiAgICAgICAgMi4gSWxsZWdhbCwgbWVociBhbHMgZWluZSB6dSBiZXNpdHplbiwgb2JnbGVpY2ggd3VlbnNjaGVuc3dlcnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkthcmF0ZSAoUm9jaHVzLCAyNS4gTWFyIDE5OTcsIDE1OjIxOjMyKToKYGBLYXJhdGUgaXMgYSBmb3JtIG9mIG1hcnRpYWwgYXJ0cyBpbiB3aGljaCBwZW9wbGUKICB3aG8gaGF2ZSBoYWQgeWVhcnMgYW5kIHllYXJzIG9mIHRyYWluaW5nIGNhbiwKICB1c2luZyBvbmx5IHRoZWlyIGhhbmRzIGFuZCBmZWV0LCBtYWtlIHNvbWUKICBvZiB0aGUgd29yc3QgbW92aWVzIGluIHRoZSBoaXN0b3J5IG9mIHRoZSB3b3JsZC4nJwotLSBEYXZlIEJhcnJ5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2FyYXRlIChBc21vZGlzLCAyNS4gTWFyIDE5OTcsIDE2OjQyOjUzKToKfiMhIHJuPVJvY2h1cyBydD04NTkyOTk2OTIgcmc9d2l0emUKfiMhIHRpZD04NTkyOTk2OTIKRHJlaHN0IGR1IGpldHp0IGVpbmVuIEZpbG0sIFJvY2h1cyA/IEtyaWVnZSBpY2ggZGllIEhhdXB0cm9sbGUgPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLYXJhdGUgKFdpbGxpLCAyNS4gTWFyIDE5OTcsIDE2OjQ4OjQyKToKfiMhIHJuPUFzbW9kaXMgcnQ9ODU5MzA0NTczIHJnPXdpdHplCn4jISB0aWQ9ODU5Mjk5NjkyCgpUdXQgZXIuIERlciBUaXRlbCBpc3QgJ0RlbmsgbGFuZ3NhbSBJSUknLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwcnVjaCBkZXIgV29jaGUgKExpLCAyNy4gTWFyIDE5OTcsIDEwOjU3OjEzKToKSWNoIHdpbGwgYXVjaCBtYWwgZWluZW4gU3BydWNoIGRlciBXb2NoZSBicmluZ2VuISAqZHJhZW5nZWwqIDotKQoKIlN0YXVic2F1Z2VydmVydHJldGVyIHZlcmthdWZlbiBTdGF1YnNhdWdlci4KIFZlcnNpY2hlcnVuZ3N2ZXJ0cmV0ZXIgdmVya2F1ZmVuIFZlcnNpY2hlcnVuZ2VuLQpXYXJ1bSBzb2xsdGVuIGF1c2dlcmVjaG5ldCBkaWUgVm9sa3N2ZXJ0cmV0ZXIgYXVzIGRlciBBcnQgc2NobGFnZW4/IgooRGlldGVyIEhpbGRlYnJhbmR0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKNSBUcmluayBTdHVmZW4gKEtldG9zLCAyNy4gTWFyIDE5OTcsIDEyOjAzOjM2KToKRml2ZSBTdGFnZXMgb2YgRHJpbmtpbmcKCkxFVkVMIDE6CgpJdCdzIDExOjAwIG9uIGEgd2Vla25pZ2h0LCB5b3UndmUgaGFkIGEgZmV3IGJlZXJzLiBZb3UgZ2V0IHVwIHRvCmxlYXZlIGJlY2F1c2UgeW91IGhhdmUgd29yayB0aGUgbmV4dCBkYXkgYW5kIG9uZSBvZiB5b3VyIGZyaWVuZHMKYnV5cyBhbm90aGVyIHJvdW5kLiBPbmUgb2YgeW91ciBVTkVNUExPWUVEIGZyaWVuZHMuIEhlcmUKYXQgbGV2ZWwgb25lIHlvdSB0aGluayB0byB5b3Vyc2VsZiwgIk9oIGNvbWUgb24sIHRoaXMgaXMgc2lsbHksIHdoeQphcyBsb25nIGFzIEkgZ2V0IHNldmVuIGhvdXJzIG9mIHNsZWVwIChzbmFwIGZpbmdlcnMpLCBJJ20gY29vbC4iLgoKTEVWRUwgMjoKCkl0J3MgbWlkbmlnaHQuIFlvdSd2ZSBoYWQgYSBmZXcgbW9yZSBiZWVycy4gWW91J3ZlIGp1c3Qgc3BlbnQgMjAKbWludXRlcyBhcmd1aW5nIGFnYWluc3QgYXJ0aWZpY2lhbCB0dXJmLiBZb3UgZ2V0IHVwIHRvIGxlYXZlIGFnYWluLApidXQgYXQgbGV2ZWwgdHdvLCBhIGxpdHRsZSBkZXZpbCBhcHBlYXJzIG9uIHlvdXIgc2hvdWxkZXIuIEFuZCBub3cKeW91J3JlIHRoaW5raW5nLCAiSGV5ISBJJ20gb3V0IHdpdGggbXkgZnJpZW5kcyEgV2hhdCBhbSBJCndvcmtpbmcgZm9yIGFueXdheT8gVGhlc2UgYXJlIHRoZSBnb29kIHRpbWVzISBCZXNpZGVzLCBhcyBsb25nIGFzCkkgZ2V0IGZpdmUgaG91cnMgc2xlZXAgKHNuYXBzIGZpbmdlcnMpIEknbSBjb29sLiIuCgpMRVZFTCAzOgoKT25lIGluIHRoZSBtb3JuaW5nLiBZb3UndmUgYWJhbmRvbmVkIGJlZXIgZm9yIHRlcXVpbGEuIFlvdSd2ZQpqdXN0IHNwZW50IDIwIG1pbnV0ZXMgYXJndWluZyBGT1IgYXJ0aWZpY2lhbCB0dXJmLiBBbmQgbm93IHlvdSdyZQp0aGlua2luZywgIk91ciB3YWl0cmVzcyBpcyB0aGUgbW9zdCBiZWF1dGlmdWwgd29tYW4gSSd2ZSBldmVyCnNlZW4hIiBBdCBsZXZlbCB0aHJlZSwgeW91IGxvdmUgdGhlIHdvcmxkLiBPbiB0aGUgd2F5IHRvIHRoZQpiYXRocm9vbSB5b3UgYnV5IGEgZHJpbmsgZm9yIHRoZSBzdHJhbmdlciBhdCB0aGUgZW5kIG9mIHRoZSBiYXIKanVzdCBiZWNhdXNlIHlvdSBsaWtlIGhpcyBmYWNlLiBZb3UgZ2V0IGRyaW5raW5nIGZhbnRhc2llcy4KKGxpa2UsIkhleSBmZWxsYXMsIGlmIHdlIGJvdWdodCBvdXIgb3duIGJhciwgd2UgY291bGQgbGl2ZSB0b2dldGhlcgpmb3JldmVyLiBXZSBjb3VsZCBkbyBpdC4gVG9tbXksIHlvdSBjb3VsZCBjb29rLiIpIEJ1dCBhdCBsZXZlbAp0aHJlZSwgdGhhdCBkZXZpbCBpcyBhIGxpdHRsZSBiaXQgYmlnZ2VyLi4uLmFuZCBoZSdzIGJ1eWluZy4gQW5kIHlvdSdyZQp0aGlua2luZyAiT2gsIGNvbWUgb24sIGNvbWUgb24gbm93LiBBcyBsb25nIGFzIEkgZ2V0IHRocmVlIGhvdXJzCnNsZWVwLi4uYW5kIGEgY29tcGxldGUgY2hhbmdlIG9mIGJsb29kIChzbmFwcyBmaW5nZXJzKSwgSSdtIGNvb2wuIi4KCkxFVkVMIDQ6CgpUd28gaW4gdGhlIG1vcm5pbmcuIEFuZCB0aGUgZGV2aWwgaXMgYmFydGVuZGluZy4gRm9yIGxhc3QgY2FsbCwgeW91Cm9yZGVyZWQgYSBib3R0bGUgb2YgcnVtIGFuZCBhIENva2UuIFlvdSBBUkUgYXJ0aWZpY2lhbCB0dXJmISBUaGlzCnRpbWUgb24geW91ciB3YXkgdG8gdGhlIGJhdGhyb29tLCB5b3UgcHVuY2ggdGhlIHN0cmFuZ2VyIGF0IHRoZQplbmQgb2YgdGhlIGJhci4gSnVzdCBiZWNhdXNlIHlvdSBkb24ndCBsaWtlIGhpcyBmYWNlISBBbmQgbm93CnlvdSdyZSB0aGlua2luZywgIk91ciBidXNib3kgaXMgdGhlIGJlc3QgbG9va2luZyBtYW4gSSd2ZSBldmVyCnNlZW4uIiBZb3UgYW5kIHlvdXIgYmFyLiBKdXN0IGJlY2F1c2UgeW91IGRvbid0IGxpa2UgaGlzIGZhY2UhIEFuZApub3cgeW91J3JlIHRoaW5raW5nLCAiT3VyIGJ1c2JveSBpcyB0aGUgYmVzdCBsb29raW5nIG1hbiBJJ3ZlCmV2ZXIgc2Vlbi4iIFlvdSBhbmQgeW91ciBmcmllbmRzIGRlY2lkZSB0byBsZWF2ZSwgcmlnaHQgYWZ0ZXIgeW91CmdldCB0aHJvd24gb3V0LCBhbmQgb25lIG9mIHlvdSBrbm93cyBhbiAuLi5hZnRlciBob3VycyBiYXIuIEFuZApoZXJlLCBhdCBsZXZlbCBmb3VyLCB5b3UgYWN0dWFsbHkgdGhpbmsgdG8geW91cnNlbGYsICJXZWxsLi4uLmFzIGxvbmcKYXMgSSdtIG9ubHkgZ29pbmcgdG8gZ2V0IGEgZmV3IGhvdXJzIHNsZWVwIGFueXdheSwgSSBtYXkgYXMKd2VsbC4uLi5TVEFZIFVQIEFMTCBOSUdIVCEhISEgWWVhaCEgVGhhdCdkIGJlIGdvb2QgZm9yIG1lLiBJCmRvbid0IG1pbmQgZ29pbmcgdG8gdGhhdCBib2FyZCBtZWV0aW5nIGxvb2tpbmcgbGlrZSBLZWl0aApSaWNoYXJkcy4gWWVhaCwgSSdsbCB0dXJuIHRoYXQgYXJvdW5kLCBtYWtlIGl0IHdvcmsgZm9yIG1lLiBBbmQKYmVzaWRlcywgYXMgbG9uZyBhcyBJIGdldCAzMSBob3VycyBzbGVlcCB0b21vcnJvdyAuLi4uLi4uLi4uLi4uLi4uLi4uY29vbC4KCkxFVkVMIDU6CgpGaXZlIGluIHRoZSBtb3JuaW5nLiBhZnRlciB1bnN1Y2Nlc3NmdWxseSB0cnlpbmcgdG8gZ2V0IHlvdXIgbW9uZXkKYmFjayBhdCB0aGUgdGF0dG9vIHBhcmxvciAoIkJ1dCBJIGRvbid0IGV2ZW4ga25vdyBhbnlib2R5IG5hbWVkClJ1YnkhISEiKSwgeW91IGFuZCB5b3VyIGZyaWVuZHMgd2luZCB1cCBhY3Jvc3MgdGhlIHN0YXRlIGxpbmUgaW4gYQpiYXIgd2l0aCBndXlzIHdobyBoYXZlIGJlZW4gaW4gcHJpc29uIGFzIHJlY2VudGx5IGFzLi4udGhhdAptb3JuaW5nLiBJdCdzIHRoZSBraW5kIG9mIHBsYWNlIHdoZXJlIGV2ZW4gdGhlIGRldmlsIGlzIGdvaW5nLCAiVWgsCkkgZ290dGEgdHVybiBpbi4gSSBnb3R0YSBiZSBpbiBIZWxsLSBhdCBuaW5lLiBJJ3ZlIGdvdCB0aGF0IGJydW5jaAp3aXRoIEhpdGxlciwgSSBjYW4ndCBtaXNzIHRoYXQuIiBBdCB0aGlzIHBvaW50LCB5b3UncmUgYWxsIGRyaW5raW5nCnNvbWUga2luZCBvZiBJIGdvdHRhIGJlIGluIEhlbGwtIGF0IG5pbmUuIEkndmUgZ290IHRoYXQgYnJ1bmNoIHdpdGgKSGl0bGVyLCBJIGNhbid0IG1pc3MgdGhhdC4iIEF0IHRoaXMgcG9pbnQsIHlvdSdyZSBhbGwgZHJpbmtpbmcgc29tZQpraW5kIG9mIHRoaWNrIGJsdWUgbGlxdW9yLCBsaWtlIHNvbWV0aGluZyBmcm9tIGEgS2xpbmdvbiB3ZWRkaW5nLgpBIHdhaXRyZXNzIHdpdGggZnJlc2ggc3RpdGNoZXMgY29tZXMgb3ZlciwgYW5kIHlvdSB0aGluayB0bwp5b3Vyc2VsZiwgIlNvbWVkYXkgSSdtIGdvbm5hIG1hcnJ5IHRoYXQgZ2lybCEhIiBPbmUgb2YgeW91cgpmcmllbmRzIHN0YW5kcyB1cCBhbmQgc2NyZWFtcywgIldFJ1JFIERSSVZJTicgVE8KRkxPUklEQSEhISEhIi0gYW5kIHBhc3NlcyBvdXQuIFlvdSBjcmF3bCBvdXRzaWRlIGZvciBhaXIgLCBhbmQKdGhlbiB5b3UgaGl0IHRoZSB3b3JzdCBwYXJ0IG9mIGxldmVsIGZpdmUtIHRoZSBzdW4uIFlvdSB3ZXJlbid0CmV4cGVjdGluZyB0aGF0IHdlcmUgeW91PyBZb3UgbmV2ZXIgZG8uIFlvdSB3YWxrIG91dCBvZiBhIGJhciBpbgpkYXlsaWdodCwgYW5kIHlvdSBzZWUgcGVvcGxlIG9uIHRoZWlyIHdheSB0byB3b3JrLCBvciBqb2dnaW5nLiBBbmQKdGhleSBsb29rIGF0IHlvdS1hbmQgdGhleSBrbm93LiBBbmQgdGhleSBzYXkuLi4iV2hvJ3MgUnVieT8iCkxldCdzIGJlIGhvbmVzdCwgaWYgeW91J3JlIDE5IGFuZCB5b3Ugc3RheSB1cCBhbGwgbmlnaHQsIGl0J3MgbGlrZSBhCnZpY3RvcnkgbGlrZSB5b3UndmUgYmVhdCB0aGUgbmlnaHQsIGJ1dCBpZiB5b3UncmUgb3ZlciAzMCwgdGhlbiB0aGF0CnN1biBpcyBsaWtlIEdvZCdzIGZsYXNobGlnaHQuIFdlIGFsbCBzYXkgdGhlIHNhbWUgcHJheWVyIHRoZW4sICJJCnN3ZWFyLCBJIHdpbGwgbmV2ZXIgZG8gdGhpcyBhZ2FpbiAoaG93IGxvbmc/KSBhcyBsb25nIGFzIEkgbGl2ZSEiCkFuZCBzb21lIG9mIHVzIGhhdmUgdGhhdCBsaXR0bGUgYWRkaXRpb24sICJhbmQgdGhpcyB0aW1lLCBJIG1lYW4gaXQhIgoKCmF1cyBodHRwOi8vamRic2hvdy5jb20vc2lsbHkxLmh0bSNkcmlua2luZwoKLSBLZXRvcyAtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZXNzeUpva2UgKFlhbnRybywgMjkuIE1hciAxOTk3LCAxNTo0Nzo1Nik6CkVpbiBTY2hyZWluZXIgd2lyZCBiZWF1ZnRyYWd0LCBkZW4gZXR3YXMgYmV0YWd0ZW4gQWx0YXIgZGVyIEtpcmNoZSB6dQpyZXN0YXVyaWVyZW4uIEFscyBlciBtaXR0ZW4gaW4gZGVyIEFyYmVpdCBpc3QgdW5kIG1pdCBzZWluZW0gV2Vyay0KemV1ZyBoaW50ZXIgZGVtIEFsdGFyIGthdWVydCwga29tbXQgcGxvZXR6bGljaCBlaW5lIGFsdGUgRnJhdSBpbgpkaWUgS2lyY2hlLCBrbmlldCB2b3IgZGVtIEFsdGFyIG5pZWRlciB1bmQgZmFlbmd0IGFuIHp1IGJldGVuLiBEZXIKU2NocmVpbmVyIHdpbGwgc2ljaCBlaW5lbiBTY2hlcnogbWl0IGlociBtYWNoZW4gdW5kIGZsdWVzdGVydCBsZWlzZToKIk1laW5lIFRvY2h0ZXIsIGljaCBiaW4gZXMsIEplc3VzLiBXYXMgaXN0IGRlaW4gQmVnZWhyPyIKRGllIEZyYXUgcmVhZ2llcnQgbmljaHQgdW5kIGJldGV0IHdlaXRlci4gRGVyIFNjaHJlaW5lciBkZW5rdCBzaWNoLApzaWUgaGF0IHdvaGwgZXR3YXMgbWl0IGRlbiBPaHJlbiB1bmQgd2llZGVyaG9sdCBzZWluZW4gU3BydWNoLCBudW4KYWJlciBpbiBub3JtYWxlciBMYXV0c3RhZXJrZS4KV2llZGVyIHBhc3NpZXJ0IG5pY2h0cy4gRGVtIFNjaHJlaW5lciB3aXJkJ3MgenUgZHVtbSB1bmQgZXIgcnVmdAppbiB2b2xsZXIgTGF1dHN0YWVya2U6ICJUb2NodGVyISBIaWVyIHNwcmljaHQgSmVzdXMhIgpEYXJhdWYgZGllIGFsdGUgRnJhdTogIkhhbHQncyBNYXVsLCBJZGlvdCwgd2VubiBpY2ggbWl0IGRlaW5lciBNdXR0ZXIKcmVkZSEiCgp5YW50cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBwYXNzZW5kZSBXaXR6IGZ1ZXIgendpc2NoZW4gS2FyZnJlaXRhZyB1bmQgT3N0ZXJuIChHcmltbWJvcm4sIDI5LiBNYXIgMTk5NywgMTY6MTg6MDYpOgpad2VpIEhpcHBpZXMgZ2VoZW4gZHVyY2ggZGllIFN0YWR0LCBkYSBzaWVodCBkZXIgZWluZSBlaW5lbiBLYW1tIGxpZWdlbi4gRXIKbmltbXQgaWhuIGF1ZiB1bmQgZnJhZ3Qgc2VpbmVuIEZyZXVuZDogIkV5LCBzY2hhdSBtYWwsIHdhcyBpc3QgZGVubiBkYXM/IiAiRWluCkthbW0uIiAiVW5kIHdhcyBtYWNodCBtYW4gZGFtaXQ/IiAiRGFtaXQga2FubiBtYW4gc2ljaCBrYWVtbWVuLCBzbyBoaWVyOiIgRXIKa2FlbW10IGFsc2UgZGVtIGFuZGVyZW4gZGFzIEhhYXIsIHNjaGF1dCBpaG4gYW4gdW5kIHNhZ3Q6ICJNZW5zY2gsIER1IHNpZWhzdApnZW5hdSBzbyBhdXMgd2llIEplc3VzISBEYSBrb2VtbWVuIHdpciB3YXMgZHJhdXMgbWFjaGVuLi4uIgpTaWUgZ2VoZW4genUgZWluZXIgcHJvdGVzdGFudGlzY2hlbiBLaXJjaGUsIGRlciBnZWthZW1tdGUgSGlwcGllIGdlaHQgbmFjaAp2b3JuZSB6dW0gQWx0YXIgdW5kIHJ1ZnQgbGF1ZjogIldhcyBoYWJ0IGlociBtaXQgZGVtIEhhdXMgbWVpbmVzIFZhdGVycwpnZW1hY2h0PyIgCkFsbGUgTGV1dGUgbGF1ZmVuIGVyc2NocmVja3Qgd2VnLCBkaWUgSGlwcGllcyBuZWhtZW4gd2FzIHNpZSBmaW5kZW4ga29lbm5lbgp1bmQga29lbm5lbiBkYXZvbiB6d2VpIFdvY2hlbiBndXQgbGViZW4uIApEYW5uIHdvbGxlbiBzaWUgZGVuIFRyaWNrIHdpZWRlcmhvbGVuLiBEZXIgZWluZSBrYWVtbXQgc2ljaCB3aWVkZXIsIGRpZXNtYWwKZ2VoZW4gc2llIGluIGVpbmUga2F0aG9saXNjaGUgS2lyY2hlLCB3aWVkZXI6ICJXYXMgaGFidCBpaHIgbWl0IGRlbSBIYXVzCm1laW5lcyBWYXRlcnMgZ2VtYWNodD8iLCBzaWUgcmF1YmVuIGRpZSBLaXJjaGUgYXVzLCBrb2VubmVuIHp3ZWkgTW9uYXRlIGRhdm9uCmxlYmVuLgpTY2hsaWVzc2xpY2ggd29sbGVuIHNpZSBkZW4gVHJpY2sgZWluIGRyaXR0ZXMgbWFsIGF1c251dHplbi4gRGVyIGVpbmUga2FlbW10CnNpY2gsIGRpZSBnZWhlbiBpbiBlaW5lIFN5bmFnb2dlIHVuZCBkZXIgZ2VrYWVtbXRlIEhpcHBpZSBzdGVsbHQgc2ljaCB2b3JuZQpoaW46ICJXYXMgaGFidCBpaHIgbWl0IGRlbSBIYXVzIG1laW5lcyBWYXRlcnMgZ2VtYWNodD8iCkRhcmF1ZiBkcmVodCBzaWNoIGRlciBSYWJiaSB6dXIgR2VtZWluZGUgdW06ICJKdW5ncywgSGFtbWVyIHVuZCBOYWVnZWwsIGRhCmlzc2VyIHdpZWRlci4iCgpIYWhhaGEuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9lc2l3aXR6IEkgKEdyaW1tYm9ybiwgMjkuIE1hciAxOTk3LCAyMTowNzozNCk6Ck9lc3RlcnJlaWNoIGlzdCBlaW4gTGFuZCwgdm9uIGRlbSB1bnMgZGllIGdlbWVpbnNhbWUgU3ByYWNoZSB0cmVubnQuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9lc2l3aXR6IElJIChHcmltbWJvcm4sIDI5LiBNYXIgMTk5NywgMjE6MTE6NDYpOgpFaW4gRGV1dHNjaGVyIHdhbmRlcnQgZHVyY2ggT2VzdGVycmVpY2ggKGFsc28gZGllIEdlZ2VuZGVuLCBkaWUgd28gc2ljaApsb2huZW4sIGQuaC4gV2FsZCB1bmQgQmVyZ2UpLCBkYSBzaWVodCBlciBlaW5lbiBCYXVtLCBhbSBCYXVtIHppZW1saWNoIHdlaXQKb2JlbiBlaW4gQXN0LCBhdWYgZGVtIHp3ZWkgT2VzdGVycmVpY2hlciBzaXR6ZW4gdW5kIGRhYmVpIHNpbmQsIGRlbiBBc3QKYWJ6dXNhZWdlbi4KRXIgcnVmdCBob2NoOiAiSGVlLCBsYXNzdCBkYXMsIGlociB3ZXJkZXQgcnVudGVyZmFsbGVuISIgCkRpZSBiZWlkZW4gYW50d29ydGVuOiAiSm8sIGlzIHNjaG8gcmVjaHQuIiB1bmQgc2FlZ2VuIHdlaXRlci4KTmFqYSwgZGVua3Qgc2ljaCBkZXIgRGV1dHNjaGUsIHdlciBuaWNodCB3aWxsIGRlciBoYXQgc2Nob24uIEVyIGdlaHQgd2VpdGVyLApuaW1tdCBhYmVyIGRhbm4gZWluZW4gV2VnLCBkZXIgaWhuIGVpbmUgU3R1bmRlIHNwYWV0ZXIgd2llZGVyIHp1IGRlciBTdGVsbGUKbWl0IGRlbiBiZWlkZW4gT2VzdGVycmVpY2hlcm4gaGluZnVlaHJ0LiBEYSBsaWVnZW4gc2llIGF1ZiBkZW0gQm9kZW4sIGRlciBBc3QKdW5kIGRpZSBiZWlkZW4gT2VzdGVycmVpY2hlci4gRXIgcGF0c2NodCBkZW0gZWluZW4gT2VzaSBpbnMgR2VzaWNodCwgZGFzcyBkZXIKYXVmd2FjaHQuIEthdW0gc2NobGFlZ3QgZXIgZGllIEF1Z2VuIGF1Ziwgc2FndCBlcjogIlNjaGF1IGdlaCwgZGEgaXMgZXIgamEKd2llZGVyLCBkZXIgSGVsbHNlaGVyISIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3N0ZXJ3aXR6IChHcmltbWJvcm4sIDMwLiBNYXIgMTk5NywgMDA6MTA6NTkpOgpEZXIgTGVpdGVyIGRlciBrYXRob2xpc2NoZW4gQXVzZ3JhYnVuZ3NncnVwcGUgaW4gSmVydXNhbGVtIGtvbW10IHp1bSBQYXBzdCB1bmQKbWVpbnQgYXVmZ2VyZWd0OiAiSGVpbGlnZXIgVmF0ZXIsIEhlaWxpZ2VyIFZhdGVyLCB3aXIgaGFiZW4gaW4gSmVydXNhbGVtIGRhcwplY2h0ZSBHcmFiIEplc3UgendlaWZlbHNmcmVpIGlkZW50aWZpemllcnQhIgpEZXIgUGFwc3QgemllaHQgaW50ZXJlc3NpZXJ0IGVpbmUgQXVnZW5icmF1ZSBob2NoOiAiQWhhPyIKIkphLCBhYmVyIHN0ZWxsZW4gU2llIHNpY2ggdm9yLCBkYSBsYWcgZWluIFNrZWxldHQgZHJpbiEiCiJXYXMgU2llIG5pY2h0IHNhZ2VuLCBkYW5uIGhhdCBlciBhbHNvIHdpcmtsaWNoIGdlbGVidD8iCgpGcm9laGxpY2hlIEF1ZmVyc3RlaHVuZyEKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVXBncmFkZSAoSWFuLCAgMS4gQXByIDE5OTcsIDEyOjAxOjMwKToKTGFzdCB5ZWFyIGEgZnJpZW5kIG9mIG1pbmUgdXBncmFkZWQgR2lybEZyaWVuZCAxLjAgdG8gV2lmZSAxLjAgYW5kCmZvdW5kCnRoYXQgaXQncyBhIG1lbW9yeSBob2cgbGVhdmluZyB2ZXJ5IGxpdHRsZSBzeXN0ZW0gcmVzb3VyY2VzIGZvciBvdGhlcgphcHBsaWNhdGlvbnMuIEhlIGlzIG9ubHkgbm93IG5vdGljaW5nIHRoYXQgV2lmZSAxLjAgYWxzbyBpcyBzcGF3bmluZwpDaGlsZC1Qcm9jZXNzZXMgd2hpY2ggYXJlIGZ1cnRoZXIgY29uc3VtaW5nIHZhbHVhYmxlIHJlc291cmNlcy4gTm8KbWVudGlvbgpvZiB0aGlzIHBhcnRpY3VsYXIgcGhlbm9tZW5hIHdhcyBpbmNsdWRlZCBpbiB0aGUgcHJvZHVjdCBicm9jaHVyZSBvcgp0aGUKZG9jdW1lbnRhdGlvbiwgdGhvdWdoIG90aGVyIHVzZXJzIGhhdmUgaW5mb3JtZWQgaGltIHRoYXQgdGhpcyBpcyB0byBiZQpleHBlY3RlZCBkdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGUgYXBwbGljYXRpb24uIE5vdCBvbmx5IHRoYXQsIFdpZmUgMS4wCmluc3RhbGxzIGl0c2VsZiBzdWNoIHRoYXQgaXQgaXMgYWx3YXlzIGxhdW5jaGVkIGF0IHN5c3RlbQppbml0aWFsaXphdGlvbgp3aGVyZSBpdCBjYW4gbW9uaXRvciBhbGwgb3RoZXIgc3lzdGVtIGFjdGl2aXR5LiBIZSdzIGZpbmRpbmcgdGhhdCBzb21lCmFwcGxpY2F0aW9ucyBzdWNoIGFzIFBva2VyTmlnaHQgMTAuMywgQmVlckJhc2ggMi41LCBhbmQgUHViTmlnaHQgNy4wCmFyZSBubwpsb25nZXIgYWJsZSB0byBydW4gaW4gdGhlIHN5c3RlbSBhdCBhbGwsIGNyYXNoaW5nIHRoZSBzeXN0ZW0gd2hlbgpzZWxlY3RlZAooZXZlbiB0aG91Z2ggdGhleSBhbHdheXMgd29ya2VkIGZpbmUgYmVmb3JlKS4gQXQgaW5zdGFsbGF0aW9uLCBXaWZlCjEuMApwcm92aWRlcyBubwpvcHRpb24gYXMgdG8gdGhlIGluc3RhbGxhdGlvbiBvZiB1bmRlc2lyZWQgUGx1Zy1JbnMgc3VjaCBhcwpNb3RoZXJJbkxhdwo1NS44IGFuZApCcm90aGVySW5MYXcgQmV0YSByZWxlYXNlLiBBbHNvLCBzeXN0ZW0gcGVyZm9ybWFuY2Ugc2VlbXMgdG8gZGltaW5pc2gKd2l0aAplYWNoIHBhc3NpbmcgZGF5LgoKU29tZSBmZWF0dXJlcyBoZSdkIGxpa2UgdG8gc2VlIGluIHRoZSB1cGNvbWluZyB3aWZlIDIuMC4KIC0gQSAiRG9uJ3QgcmVtaW5kIG1lIGFnYWluIiBidXR0b24KIC0gTWluaW1pemUgYnV0dG9uCiAtIEFuIGluc3RhbGwgc2hpZWxkIGZlYXR1cmUgdGhhdCBhbGxvd3MgV2lmZSAyLjAKICBiZSBpbnN0YWxsZWQgd2l0aCB0aGUgb3B0aW9uIHRvIHVuaW5zdGFsbCBhdCBhbnl0aW1lIHdpdGhvdXQKICB0aGUgbG9zcyBvZiBjYWNoZSBhbmQgb3RoZXIgIHN5c3RlbSByZXNvdXJjZXMuCiAtIEFuIG9wdGlvbiB0byBydW4gdGhlIG5ldHdvcmsgZHJpdmVyIGluIHByb21pc2N1b3VzIG1vZGUgd2hpY2ggd291bGQKICBhbGxvdyB0aGUgc3lzdGVtcyBoYXJkd2FyZSBwcm9iZSBmZWF0dXJlIHRvIGJlIG11Y2ggbW9yZSB1c2VmdWwuCgpJIG15c2VsZiBkZWNpZGVkIHRvIGF2b2lkIGFsbCBvZiB0aGUgaGVhZGFjaGVzIGFzc29jaWF0ZWQgd2l0aCBXaWZlCjEuMApieSBzdGlja2luZyB3aXRoIEdpcmxGcmllbmQgMi4wLiBFdmVuIGhlcmUsIGhvd2V2ZXIsIEkgZm91bmQgbWFueQpwcm9ibGVtcy4KCkFwcGFyZW50bHkgeW91IGNhbm5vdCBpbnN0YWxsIEdpcmxGcmllbmQgMi4wIG9uIHRvcCBvZiBHaXJsRnJpZW5kIDEuMC4KCllvdSBtdXN0IHVuaW5zdGFsbCBHaXJsRnJpZW5kIDEuMCBmaXJzdC4gT3RoZXIgdXNlcnMgc2F5IHRoaXMgaXMgYQpsb25nCnN0YW5kaW5nIGJ1ZyB3aGljaCBJIHNob3VsZCBoYXZlIGJlZW4gYXdhcmUgb2YuCgpBcHBhcmVudGx5IHRoZSB2ZXJzaW9ucyBvZiBHaXJsRnJpZW5kIGhhdmUgY29uZmxpY3RzIG92ZXIgc2hhcmVkIHVzZQpvZiB0aGUKSS9PIHBvcnQuIFlvdSB0aGluayB0aGV5IHdvdWxkIGhhdmUgZml4ZWQgc3VjaCBhIHN0dXBpZCBidWcgYnkgbm93LiA9CgpUbwptYWtlIG1hdHRlcnMgd29yc2UsIFRoZSB1bmluc3RhbGwgcHJvZ3JhbSBmb3IgR2lybEZyaWVuZCAxLjAgZG9lc24ndAp3b3JrCnZlcnkKd2VsbCBsZWF2aW5nIHVuZGVzaXJhYmxlIHRyYWNlcyBvZiB0aGUgYXBwbGljYXRpb24gaW4gdGhlIHN5c3RlbS4KCkFub3RoZXIgdGhpbmcgdGhhdCBzdWNrcyAtLSBhbGwgdmVyc2lvbnMgb2YgR2lybEZyaWVuZCBjb250aW51YWxseQpwb3B1cApsaXR0bGUgYW5ub3lpbmcgbWVzc2FnZXMgYWJvdXQgdGhlIGFkdmFudGFnZXMgb2YgdXBncmFkaW5nIHRvIFdpZmUgMS4wCgoqKioqKiAgQlVHIFdBUk5JTkcgICoqKioqKioqCldpZmUgMS4wIGhhcyBhbiB1bmRvY3VtZW50ZWQgYnVnLiBJZiB5b3UgdHJ5IHRvIGluc3RhbGwgTWlzdHJlc3MgMS4xCmJlZm9yZQp1bmluc3RhbGxpbmcgV2lmZSAxLjAsIFdpZmUgMS4wIHdpbGwgZGVsZXRlIE1TTW9uZXkgZmlsZXMgYmVmb3JlIGRvaW5nCnRoZQp1bmluc3RhbGwgaXRzZWxmLiBUaGVuIE1pc3RyZXNzIDEuMSB3aWxsIHJlZnVzZSB0byBpbnN0YWxsLCBjbGFpbWluZwppbnN1ZmZpY2llbnQgcmVzb3VyY2VzLgoKKioqIEJVRyBXT1JLLUFST1VORFMgKioqKioqKioqKioqKioqClRvIGF2b2lkIHRoZSBhYm92ZSBidWcsIHRyeSBpbnN0YWxsaW5nIE1pc3RyZXNzIDEuMSBvbiBhIGRpZmZlcmVudApzeXN0ZW0KYW5kIG5ldmVyIHJ1biBhbnkgZmlsZSB0cmFuc2ZlciBhcHBsaWNhdGlvbnMgc3VjaCBhcyBMYXBsaW5rIDYuMC4KCkFsc28sIGJld2FyZSBvZiBzaW1pbGFyIHNoYXJld2FyZSBhcHBsaWNhdGlvbnMgdGhhdCBoYXZlIGJlZW4ga25vd24gdG8KY2FycnkgdmlydXNlcyB0aGF0IG1heSBhZmZlY3QgV2lmZSAxLjAuICBBbm90aGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvCnJ1bgpNaXN0cmVzcyAxLjAgdmlhIGEgVXNlTmV0IHByb3ZpZGVyIHVuZGVyIGFuIGFub255bW91cyBuYW1lLiBIZXJlCmFnYWluLApiZXdhcmUgb2YgdGhlIHZpcnVzZXMgd2hpY2ggY2FuIGFjY2lkZW50bHkgYmUgZG93bmxvYWRlZCBmcm9tIHRoZQpVc2VOZXQuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR29kIGlzIHJlYWwgdW5sZXNzIGRlY2xhcmVkIGFzIGludGVnZXIuCgoKaUFOLi4uIGhhdCBtYWwgaW0gZU1haWxLYXN0ZW4gZ2V3dWVobHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVXBncmFkZSAoQW5hdG9sLCAgMS4gQXByIDE5OTcsIDE0OjE2OjA5KToKfiMhIHJuPUlhbiBydD04NTk4ODg4OTAgcmc9d2l0emUKfiMhIHRpZD04NTk4ODg4OTAKRGllIGxldHp0ZW4gYmVpZGVuIE1hbGUsIHdvIGRpZXNlciAnV2l0eicgaW4gZGVyIE1QQSBzdGFuZCwgd2FyIGVyIGJlc3Nlcgpmb3JtYXRpZXJ0LgoKQW5hdG9sLCBncmluc3QuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBtYWwgT3N0ZXJyZWljaC4uLi4gKE5pcmRhdm8sICAxLiBBcHIgMTk5NywgMTY6MjI6MTMpOgogIE9yaWdpbmFsdG9uIG1laW5lcyBHZXNjaGljaHRzbGVocmVyczoKCiAgIk5hY2ggZGVtIDIuIFdlbHRrcmllZyB3dXJkZSBkYW5uIE9lc3RlcnJlaWNoIGF1ZiBkaWUgaGV1dGlnZW4gU2tpZ2ViaWV0ZQpyZWR1emllcnQgLi4uLiIKCiAgICBOaXJkYXZvLCBraWNoZXJ0IGRhcnVlYmVyIG5vY2ggaGV1dGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVcGdyYWRlIChHbG9pbiwgIDEuIEFwciAxOTk3LCAxODo1NToxNik6Cn4jISBybj1JYW4gcnQ9ODU5ODg4ODkwIHJnPXdpdHplCn4jISB0aWQ9ODU5ODg4ODkwCklhbiwgRHUgc29sbHN0IGRvY2ggZGllIFRleHRlLCBkaWUgaWNoIERpciBtYWlsZSwgbmljaHQgYW4gZGVyCnNlbGJlbiBTdGVsbGUgcG9zdGVuLCB3byBpY2ggc2llIGhlcmhhYmUgOy0pCgpHbG9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2FsYXVlciBDb3JuZXIuLi4gKEppbWRpZ3JpeiwgIDIuIEFwciAxOTk3LCAwMDoyMjo1Mik6Ci4ubWVpbiBOYW1lIGlzdCBBdWEsIEthcmwgQXVhLi4uLiAobnVyIGRpZSBFaW5sZWl0dW5nKQoKRWluIEthcGl0YWVuIHVuZCBlaW4gWmF1YmVyZXIgc2Nod2ltbWVuIGltIE1lZXIuLi4KKnJhdXNjaCogClNhZ3QgZGVyIEthcGl0YWVuIHp1bSBaYXViZXJlcjoKICJoZXksIG1hY2gga2VpbiBTY2hlaXNzLCBob2wgZGVzIFNjaGlmZiB3aWVkZXIgaGVyISIKCkJsdWJiZXIsCiBKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLlNjaHdhbnogYWIgLi4uIChKaW1kaWdyaXosICAyLiBBcHIgMTk5NywgMDA6MjY6MzIpOgpBdXMgZGVyIHVuYmVzY2hyZWlibGljaCB3ZWlibGljaGVuIFNlbmR1bmcgIlNjaHdhbnogYWIiIAphdWYgZGVtIEZyYXVlbnNlbmRlciBTTS0zIGVpbiBrbGVpbmVyIEJlaXRyYWcgYXVzIEhvbGx5d29vZCwKenVtIG5ldWVuIEZpbG0gIk1lbnN0cnVhdG9yIElJSSwgRmlyc3QgQmxvb2QgUGFydCBUd28iCgoiQXVmcnVociBpbiBkZXIgU3RhZHQsIGRlciBNb2IgcmFuZGFsaWVydC4KIEVpbmUgYWx0ZSBGcmF1IHNjaHJlaXQ6ICJNZW5zdHJ1YXRpb24sIE1lbnN0cnVhdGlvbiwgTWVuc3RydWF0aW9uLi4iCiBEYSB3aXJkIHNpZSBnZWZyYWd0OiAiRHUgT21hLCB3YXMgc2NocmVpc3RuIGRhdWVybmQgTWVuc3RydWF0aW9uLAogIGRlcyBpcyBkb2NoIGVpbmUgX0RlbW9uc3RyYXRpb25fLgogU2FndCBzaWU6IElzIGRvY2ggd3Vyc2NodCwgaGF1cHRzYWNoIGVzIGZsaWVzc3QgQmx1dC4KIgoKKmR1Y2sqCkpkRy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhcmRjb3JlIEh1bW9yIChKaW1kaWdyaXosICAyLiBBcHIgMTk5NywgMDA6Mjk6MjgpOgoKSEFSRENPUkUgSFVNT1IgLSBXRVIgTklDSFQgTEFDSFQgV0lSRCBFUlNDSE9TU0VOIC0gSEFSREMuLgoKV2FydW0ga3JpZWdlbiBkaWUgaW4gQWV0aGlvcGllbiBrZWluZSB2aWVyIExldXRlIHNhdHQgPwoKRGllIGtyaWVnZW4gamEgbmljaHQgbWFsIDNzYXQuCgpIQVJEQ09SRSBIVU1PUiAtIFdFUiBOSUNIVCBMQUNIVCBXSVJEIEVSU0NIT1NTRU4gLSBIQVJEQ09SRSBIVQoKSmRHCi4sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVRkxXIChKaW1kaWdyaXosICAyLiBBcHIgMTk5NywgMDA6MzE6NDkpOgpEaWUgdW5iZXJ1ZWhtdGVuIGxldHp0ZW4gV29ydGUgdm9uIEF5YXJ0b24gU2VubmE6CgpFciBkYWNodGUgZ3JhZGUgYW4gc2VpbiBMaWVibGluZ3NsaWVkCiJBbGwgaW4gYWxsLCB5b3UncmUganVzdCBhbm90aGVyIGJyaWNrIGluIHRoZSB3YWxsIgoKSmRHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gV2l0eiEgKEdyaW1tYm9ybiwgIDMuIEFwciAxOTk3LCAwMTo1OToyNik6CiJTaW5kIGRpZSBCbHVtZW4ga3VlbnN0bGljaD8iCiJOYXR1ZXJsaWNoLiIKIkFsc28gbmF0dWVybGljaD8iCiJOZWluLCBrdWVuc3RsaWNoLiIKIkFsc28gd2FzIGRlbm4gbnVuLCBrdWVuc3RsaWNoIG9kZXIgbmF0dWVybGljaD8iCiJLdWVuc3RsaWNoIG5hdHVlcmxpY2giIChvZGVyOiBOYXR1ZXJsaWNoIGt1ZW5zdGxpY2gpCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pZXMgKERpZWRlciwgIDQuIEFwciAxOTk3LCAxNDo0MTozNSk6CkVpbiBDb3dib3kgcmVpdGV0IGR1cmNoIGRpZSBXdWVzdGUsIGFscyBlciBwbG9ldHpsaWNoIGFtCkhvcml6b250IGVpbmVuIHJvdGVuIFNjaGltbWVyIGVudGRlY2t0LiBEYSBlciBzZWhyIG5ldWdpZXJpZwppc3QsIHJlaXRldCBlciBkYXJhdWYgenUgdW0genUgZXJmYWhyZW4sIHdhcyBkaWVzIGlzdC4gQXVmIGhhbGJlbgpXZWcgZXJrZW5udCBlciBSYXVjaHNjaHdhZGVuIGF1ZnN0ZWlnZW4gdW5kIGRlbmt0IHNpY2gsCmRhc3MgZG9ydCBldHdhcyBwYXNzaWVydCBzZWluIG11c3MgdW5kIGdhbG9wcGllcnQgbnVuIGRhcmF1Zgp6dS4gRG9ydCBhbmdla29tbWVuIHNpZWh0IGVyIGVpbiBhYmdlYnJhbm50ZXMgSGF1cyB1bmQgZWluCmtsZWluZXMgTWFlZGNoZW4gc2l0enQgaGV1bGVuZCB2b3IgZGVtIEhhdXMuIEVyIGZyYWd0IHNpZTogIgpXYXMgaXN0IGRlbm4gaGllciBwYXNzaWVydD8iCkRhcyBNYWVkY2hlbiBhbnR3b3J0ZXQgOiIgT2ggZXMgaXN0IHNvIHNjaHJlY2tsaWNoLiBEaWUKSW5kaWFuZXIga2FtZW4sIGhhYmVuIG1laW5lIEVsdGVybiBlbnRmdWVocnQsIG1laW5lClNjaHdlc3RlciB2ZXJnZXdhbHRpZ3QgdW5kIG1laW5lbiBCcnVkZXIgZXJtb3JkZXQuIgpEYXJhdWYgc3RlaWd0IGRlciBDb3dib3kgdm9uIHNlaW5lbSBQZmVyZCBoZXJ1bnRlciwgbWFjaHQKc2VpbmVuIEhvc2VubGF0eiBhdWYsIHVuZCBzYWd0OiIgVGphIE1hZWRlbCwgaGV1dCBpc3QgbmljaHQKRGVpbiBUYWcuIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pZXMgZGllIHp3b3RlIChEaWVkZXIsICA0LiBBcHIgMTk5NywgMTQ6NDI6NTApOgoKRmluZGV0IHdkaHJlbmQgZGVyIEJlaGluZGVydGVub2x5bXBpYWRlIGRlcgpTY2h3aW1td2V0dGthbXBmIHN0YXR0LiBBbiBkZW4gU3RhcnQgZ2VoZW4gZGllCnZlcnNjaGllZGVuc3RlbiBCZWhpbmRlcnRlbmdyYWRlLiBBbSBTY2hsdV8gZGllIGdhbnoKc2Nod2VyZW4gRmRsbGUuIFVudGVyIGlobmVuIGVpbiBLb3BmLiBCZWltIFN0YXJ0c2NodV8gd2lyZnQKZGVyIEhlbGZlciBkZW4gS29wZiBpbnMgV2Fzc2VyIHVuZCBkaWVzZXIgZmRuZ3QgYW4KdW50ZXJ6dWdlaGVuLiBFciBrb21tdCB3aWVkZXIgaG9jaCwgZ2VodCB3aWVkZXIgdW50ZXIsCmtvbW10IHdpZWRlciBob2NoIC0gamVkb2NoIGtlaW5lbiBTY2hyaXR0IHdlaXRlci4gRGVyClRyYWluZXIgZmlzY2h0IG1pdCBlaW5lbSBOZXR6IGF1cyBkZW0gV2Fzc2VyIHVuZCBzY2hlaV90IGlobgp6dXNhbW1lbiwgd2FydW0gZXIgZGVubiBuaWNodCBtaXQgZGVuIE9ocmVuIGdla3JhdWx0IGhhdHRlLAp3aWUgZXIgZXMgaWhtIGJlaWdlYnJhY2h0IGhhdC4gRGFyYXVmIGRlciBLb3BmOiAiRGFzCkFyc2NobG9jaCwgZGFfIG1pciBkaWUgQmFkZWthcHBlIGFuZ2V6b2dlbiBoYXQsIGJyaW5nIGljaAp1bS4uLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNraW4gKERpZWRlciwgIDQuIEFwciAxOTk3LCAxNDo0NTozMik6CktvbW10IGVpbiBTa2luaGVhZCB6dW0gVGR0b3dpZXJlci4gIkljaCB3aWxsIG1pciBlaW4KSGFrZW5rcmV1eiBhdWYgZGVuIEFyc2NoIHRkdG93aWVyZW4gbGFzc2VuISIKRGFyYXVmaGluIGRlciBUZHRvd2llcmVyOiAiR3V0LCBuZWhtJ3NlIHNjaG9ubWFsIGRlbgpTdGFobGhlbG0gYWIhLi4uIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTa2luIChHcmltbWJvcm4sICA0LiBBcHIgMTk5NywgMTQ6NTA6MDQpOgp+IyEgcm49RGllZGVyIHJ0PTg2MDE1NzkzMiByZz13aXR6ZQp+IyEgdGlkPTg2MDE1NzkzMgoiV2VyIHNjaG9uIGRlbiBJbnRlbGxla3QgZWluZXIgQmlsbGFyZGt1Z2VsIGhhdCBzb2xsIGF1Y2ggc28gYXVzc2VoZW4iIHNwcmFjaApHb3R0IHVuZCBlcnNjaHVmIGRlbiBTa2luaGVhZC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCBwYWNrdCB1cmFsdGUgS2FtZWxsZW4gYXVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5lciAoRGllZGVyLCAgNC4gQXByIDE5OTcsIDE0OjUwOjQzKToKCkVyd2luIEJhdW1hbm4gdW5kIEZyYXUgTGluZGEgaGFiZW4gZGVuIDI1LiBIb2NoemVpdHN0YWcuIAoKTGluZGE6CiAgICAgICBBY2ggRXJ3aW4sIGljaCBoYWJlIG51biBzY2hvbiB8YmVyIDI1IEphaHJlIGVpbmVuCiAgICAgICBnZWhlaW1lbiBXdW5zY2ggdW5kIGljaCBoYWJlIG1pY2ggYmlzaGVyIG5pY2h0CiAgICAgICBnZXRyYXV0LCBEaXIgZGllc2VuIHp1IG9mZmVuYmFyZW46IEljaCBtdmNodGUgZWlubWFsIGluCiAgICAgICBtZWluZW0gTGViZW4gaW4gZWluIFN0aXB0ZWFzZS1Mb2thbCBnZWhlbi4gQW0KICAgICAgIGJlc3Rlbiwgd2lyIGdlaGVuIGhldXRlIGFuIHVuc2VyZW0gSG9jaHplaXRzdGFnIC4uLi4gCkVyd2luOgogICAgICAgQWJlciBMaWViZXMsIGRhcyBpc3QgZG9jaCBuaWNodHMgZnxyIHVucywgZGEgemllaGVuIHNpY2gKICAgICAgIGp1bmdlIEZyYXVlbiB2b3IgZGVtIFB1cGxpa3VtIGF1cy4gRGFzIG12Y2h0ZSBpY2gKICAgICAgIG1pciBuaWNodCBhbnNjaGF1ZW4uIEljaCBoYWJlIGRvY2ggbnVyIEF1Z2VuIGZ8cgogICAgICAgRGljaC4uLiAKTGluZGE6CiAgICAgICBFcndpbiwgRHUgbWFnc3QgcmVjaHQgaGFiZW4sIGFiZXIgbWVpbiBXdW5zY2ggaXN0IHNvCiAgICAgICBncm9fIHVuZCBpY2ggbXZjaHRlIG1pY2ggbWl0IGVpZ2VuZW4gQXVnZW4gZGF2b24KICAgICAgIHxiZXJ6ZXVnZW4gLi4uLiAKRXJ3aW46CiAgICAgICBOZWluIG5laW4sIGFuIHVuc2VyZW0gSG9jaHplaXRzdGFnIG51biB3aXJrbGljaCBuaWNodAogICAgICAgLi4uLiAKTGluZGE6CiAgICAgICBJY2ggaGFiZSBqZWRlbmZhbGxzIGJlc2NobG9zc2VuLCBtaXQgRGlyIGRhIGhpbiB6dSBnZWhlbgogICAgICAgdW5kIGhhYmUgZGVzaGFsYiBzY2hvbiBlaW5lbiBUaXNjaCBpbSBMb2thbAogICAgICAgIk5hY2h0aWdhbGwiIHJlc2VydmllcmVuIGxhc3NlbiwgdW5kIGljaCBtdmNodGUsIGRhXyBEdQogICAgICAgbWlyIGRpZXNlbiBlaW5lbiBXdW5zY2ggZXJmfGxsc3QuLi4KCldhcyBibGllYiBIZXJybiBCYXVtYW5uIGFuZGVyZXMgfGJyaWcgYWxzIG51biBtaXQgc2VpbmVyCkZyYXUgenVyIGJlc3RlbGx0ZW4gWmVpdCBpbSBMb2thbCBOYWNodGlnYWxsIHp1IGVyc2NoZWluZW4uIEFscwpkaWUgYmVpZGVuIG51biBkYXMgTG9rYWwgYmV0cmV0ZW4gc2FndCBkaWUganVuZ2UgRnJhdSBoaW50ZXIKZGVyIEdhcmRlcm9iZToKICAgICAgIEd1dGVuIEFiZW5kLCBIZXJyIEJhdW1hbm4hIApMaW5kYSAodmVyd3VuZGVydCk6CiAgICAgICBFcndpbj8gRHUgYmlzdCBoaWVyIGJla2FubnQ/IApFcndpbiAobGVpc2UgenUgc2VpbmVyIEZyYXUpOgogICAgICAgTmVpbiwgZGFzIGlzdCBkaWUgVG9jaHRlciBlaW5lcyBBcmJlaXRza29sbGVnZW4sIGRpZSBoaWVyCiAgICAgICBhcmJlaXRldCwgaWNoIGhhdHRlIHNpZSBiZWkgZWluZW0gQmV0cmllYnNmZXN0IG1hbCBmbHxjaHRpZwogICAgICAga2VubmVuZ2VsZXJudC4gCkhlcnIgQmF1bWFubiB1bmQgc2VpbmUgRnJhdSBzZXR6ZW4gc2ljaCBhbiBkZW4gcmVzZXJ2aWVydGVuClRpc2NoLCBkYSBiZWdyfF90IHNpZSBkZXIgS2VsbG5lcjoKICAgICAgIEd1dGVuIEFiZW4gSGVyciBCYXVtYW5uISAKTGluZGEgKHNjaG9uIHNlaHIgdmVyd3VuZGVydCk6CiAgICAgICBFcndpbj8gV2FzIGhhdCBkYXMgd2llZGVyIHp1IGJlZGV1dGVuPyAKRXJ3aW46CiAgICAgICBMaWViZXMsIGRlciBLZWxsbmVyIGhhdCBmcnxoZXIgaW4gZGVtIFNwZWlzZWxva2FsCiAgICAgICBnZWFyYmVpdGV0LCB3byBpY2ggaW1tZXIgenUgTWl0dGFnIGVzc2UuIApOdW4sIGRpZSBTdHJlcHRlYXNlc2hvdyBiZWdpbm50IHVuZCBkaWUgU3RpcHBlcmluIHZlcmxpZXJ0IGVpbgpLbGVpZHVuZ3NzdHxjayBuYWNoIGRlbSBhbmRlcmVuLiBBbHMgc2llIG51ciBub2NoIG1pdCBlaW5lbQprbmFwcGVuIEh2c2NoZW4gYmVrbGVpZGV0IGlzdCwgZnJhZ3Qgc2llIG5lY2tpc2NoIGlucwpQdWJrbGlrdW06CiAgICAgICAiTmEsIHdlciB6aWVodCBtaXIgZGVubiBoZXV0ZSBkYXMgSHZzY2hlbiBhdXM/IiAKRGEgcnVmZW4gYWxsZSBhbndlc2VuZGVuIGltIENob3I6CiAgICAgICBCQVVNQU5OLi4uCiAgICAgICBCQVVNQU5OLi4uCiAgICAgICBCQVVNQU5OLi4uCiAgICAgICBCQVVNQU5OLi4uCiAgICAgICBCQVVNQU5OLi4uCiAgICAgICBCQVVNQU5OLi4uCiAgICAgICAuLi4uLi4uLi4uCkZyYXUgQmF1bWFubiBzY2huYXBwdCBpaHJlIFRhc2NoZSB1bmQgcmVubnQgd3V0ZW50YnJhbm50CmF1cyBkZW0gTG9rYWwsIEhlcnIgQmF1bWFubiBsZHVmdCBoaW50ZXJoZXIuClNpZSBzdGVpZ3QgaW4gZWluIFRheGksIGRhcyB2b3IgZGVtIExva2FsIGhkbHQgdW5kIGVyIGhpbnRlcmhlci4KTGluZGE6CiAgICAgICBEVSBHRUlMRVIgQk9DSyAuLi4gCkVyd2luOgogICAgICAgQWJlciBMaWViZXMgLi4uIApMaW5kYToKICAgICAgIEljaCB3aWxsIG5pY2h0cyBtZWhyIHZvbiBEaXIgd2lzc2VuIC4uLiAKRXJ3aW46CiAgICAgICBBYmVyIExpZWJlcywgZGFzIG11XyBlaW4gYnZzZXIgU2NoZXJ6IHNlaW4gLi4uIApMaW5kYToKICAgICAgIEljaCBnbGF1YmUgRGlyIGtlaW4gV29ydCAuLi4KRXJ3aW46CiAgICAgICBEYXMgd2VyZGUgaWNoIG1vcmdlbiBhdWZrbGRyZW4sIGRlciBMb2thbGluaGFiZXIKICAgICAgIHdpcmQgc2ljaCBiZWkgdW5zIGVudHNjaHVsZGlnZW4gbXxzc2VuLiBEdSB3aXJzdAogICAgICAgc2VoZW4uLi4KSGVyciBCYXVtYW5uIGhhdCBncm9fZSBNfGhlIHNlaW5lIEZyYXUgenUgYmVydWhpZ2VuLgpTY2hsaWVfbGljaCBkcmVodCBzaWNoIGRlciBUYXhpZmFocmVyIHVuZ2VkdWxkaWcgdW5kIHNjaG9uCnNpY2h0bGljaCBnZW5lcnZ0IG5hY2ggaGludGVuIHVuZCBzYWd0OgogICAgICAgIk5hLCBIZXJyIEJhdW1hbm4sIGljaCBoYWInIFNpZSBqYSBzY2hvbiBvZnQgbWl0ICduZXIKICAgICAgIE51dHRlIGhpZXIgYWJnZWZhaHJlbiwgYWJlciBzb2BuZSBaaWNrZW4gaGF0IGphIHdvaGwKICAgICAgIG5vY2gga2VpbmUgZ2VtYWNodCEiIC4KbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTa2luIChHcmltbWJvcm4sICA0LiBBcHIgMTk5NywgMTQ6NTA6NTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2MDE1ODIwNCByZz13aXR6ZQp+IyEgdGlkPTg2MDE1NzkzMgpOb2NoIGVpbmVyOgpTa2lucyBoYWJlbiBtZWhyIEhhYXJlIGFscyBWZXJzdGFuZC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm9zc2l3ZXNzaSAoRGllZGVyLCAgNC4gQXByIDE5OTcsIDE1OjIwOjI5KToKTGFlbmRsaWNoZSBJZHlsbGUgaW4gU2FjaHNlbiBBbmhhbHQuIERhcyBTY2h3ZWluIHN0ZWh0IGltClN0YWxsIHVuZCBmcmlfdC4gS29tbXQgYXVmIGVpbm1hbCBkZXIgSG9maHVuZCByZWluLCBsZWNrdCBkZW0KU2Nod2VpbiB1ZWJlciBkZW4gQWxsZXJ3ZXJ0ZXN0ZW4gdW5kIHZlcnNjaHdpbmRldCB3aWVkZXIsCmJldm9yIGRhcyBTY2h3ZWluIGV0d2FzIGVyd2lkZXJuIGthbm4uIEtlaW5lIGZ1ZW5mIE1pbnV0ZW4Kc3BhZXRlciBnZWh0IGRpZSBTdGFsbHR1ZXIgd2llZGVyIGF1ZiwgZGVyIEh1bmQga29tbXQgd2llZGVyCnJlaW4sIGRhcyBnbGVpY2hlIFNjaGF1c3BpZWwuIFNvIGxhbmdzYW0gd2lyZCB1bnNlciBTY2h3ZWluCnN0dXR6aWcuIEFscyB3aWVkZXIgbmFjaCA1IE1pbnV0ZW4gZGllIFR1ZXIgYXVmZ2VodCwgc2FndCBkYXMKU2Nod2VpbiB6dW0gSHVuZDoKIldhcnRlIG1hbCwgZXMgaXN0IGphIG5pY2h0IHNvLCBkYXNzIG1pciBkYXMsIHdhcyBEdSBkYSBtYWNoc3QsCm5pY2h0IGdlZmFlbGx0LCBhYmVyIFdBUlVNIG1hY2hzdCBEdSBkYXM/IgpEYXJhdWYgZGVyIEh1bmQ6ICJJY2ggaGFiIHZvciB6d2FuemlnIE1pbnV0ZW4gZWluZW4gV2Vzc2kKZ2ViaXNzZW4gdW5kIG51biB3ZXJkJyBpY2ggZGVuIEdlc2NobWFjayBlaW5mYWNoIG5pY2h0CndpZWRlciBsb3MuLi4iIAoKdGphLCB3aWVkZXIgbWFsIGdlZ2VuIHVucyB3ZXNzaXMgOikpKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbGFzdCBqb2tlIGZvciB0b2RheSAoRGllZGVyLCAgNC4gQXByIDE5OTcsIDE1OjI5OjA4KToKR29ldGhlIHdpcmQgaW4gZWluZXIgS25laXBlIHVtIGVpbiBTdGVncmVpZmdlZGljaHQgZ2ViZXRlbgogICB1bmQgZXJrbGFlcnQsIGVyIHd1ZXJkZSBlaW5lcyBsaWVmZXJuLCB3ZW5uIG1hbiBpaG0gendlaQogICAgIFN0aWNod29lcnRlciB2b3JnZWJlIHVuZCBlaW4gd2VuaWcgWmVpdCBsYXNzZS4gVW0gZXMKICAgIG1vZWdsaWNoc3Qgc2Nod2VyIHp1IG1hY2hlbiwgd2VyZGVuIGlobSBkaWUgQmVncmlmZmUKICAiSGF1c3R1ZXJrbGluZ2VsIiB1bmQgIk1hZWRjaGVuYnVzZW4iIHp1Z2V3b3JmZW4uIEFsc28sCiBXb2xmIEpvaG5ueSBHb2V0aGUgemllaHQgc2ljaCB6dW0gVWViZXJsZWdlbiBrdXJ6IHp1cnVlY2sKICAgICAgICAgICAgICAgICB1bmQgZ2lidCBzb2Rhbm4genVtIEJlc3RlbjoKCiAgICAgICAgICAgICAgIkRpZSBIYXVzdHVlcmtsaW5nZWwgYW4gZGVyIFdhbmQsCiAgICAgICAgICAgICAgRGVyIE1hZWRjaGVuYnVzZW4gaW4gZGVyIEhhbmQsCiAgICAgICAgICAgU2luZCB6d2VpIERpbmdlLCBkaWUgZ2FyIHNlaHIgdmVyd2FuZHQ7CiAgICAgICAgICAgICBEZW5uIHdlbm4gbWFuIGJlaWRlcyB6YXJ0IGJlcnVlaHJ0CiAgICAgICAgICAgICAgICAgIE1hbiBvYmVuIGRldXRsaWNoIHNwdWVydCwKICAgICAgICAgICAgICAgRGFzcyB1bnRlbiwgZHJhdXNzZW4gZWluZXIgc3RlaHQsCiAgICAgICAgICAgIFVuZCBzZWhuc3VjaHRzdm9sbCB1bSBFaW5sYXNzIGZsZWh0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVuZCBub2NoIGVpbmVyIChEaWVkZXIsICA0LiBBcHIgMTk5NywgMTY6MTg6NDkpOgpSYWRpbyBCdWthcmVzdDoKTGllYmVzIFZvbGssIGVzIGlzdCBnZW5hdSA3IFVociB1bmQgR2Vub3NzZSBDZWF1Y2Vza3Ugc3RlaHQKZ2VyYWRlIGF1Zi4gRXMgaXN0IFplaXQsIGRhXyBzaWUgYXVjaCBhdWZzdGVoZW4uCkV0d2FzIHNwZHRlcjogTGllYmVzIFZvbGssIGVzIGlzdCBnZW5hdSA3IFVociAzMCB1bmQgR2Vub3NzZQpDZWF1Y2Vza3UgbWFjaHQgZ2VyYWRlIE1vcmdlbmd5bW5hc3Rpay4gRXMgaXN0IFplaXQsIGRhXwpzaWUgc2ljaCBhdWNoIGJld2VnZW4uCk5vY2ggc3BkdGVyOiBMaWViZXMgVm9saywgZXMgaXN0IGdlbmF1IDggVWhyLCBHZW5vc3NlCkNlYXVjZXNrdSBmcnxoc3R8Y2t0IGdlcmFkZSwgZnxyIGRhcyBydW1kbmlzY2hlIFZvbGs6ClZvbGtzbXVzaWshIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGxhc3Qgam9rZSBmb3IgdG9kYXkgKFllbmRpLCAgNC4gQXByIDE5OTcsIDIwOjU3OjA0KToKfiMhIHJuPURpZWRlciBydD04NjAxNjA1NDggcmc9d2l0emUKfiMhIHRpZD04NjAxNjA1NDgKCk5hamEsIEdvZXRoZSBoYWV0dGUgZGVuIHZpZXJoZWJpZ2VuIEphbWJ1cyB2ZXJtdXRsaWNoIGR1cmNoZ2VoYWx0ZW4uLi4KQWJlciBhdWYgZGllc2VuIEVpbnd1cmYgZWluZXMgQmVzc2Vyd2Vzc2lzIGhhc3QgRHUgamEgdmVybXV0bGljaCBudXIgZ2V3YXJ0ZXQsCmhtbW0/CgpZdFkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYWxpbmRyb21lIChTbHlmb3gsICA1LiBBcHIgMTk5NywgMTc6MTQ6NDcpOgogICAgICAgICAgICAgIFJlaXQgYW1hbCBhIExhbWF0aWVyIQogICAgICAgICAgICBPdHRvIHNhaCAnbmVuIEhhcycsIEFubmEhCiAgICAgICAgICBSZXR0ZW5kZXIgUmV0dGVyLCByZWQnIG5ldHRlciEKICAgIERpZSBMaWViZSBpc3QgU2llZ2VyLiBSZWdlIGlzdCBzaWUgYmVpIExlaWQuCiAgICAgICAgICAgICAgICBFaW4gRXNlbCBsZXNlIG5pZSEKICAgICAgICAgICBFcyBzYXNzIGltIEthamFrIE1pc3MgQXNzZS4KICAgIEVpbiBOZWdlciBtaXQgR2F6ZWxsZSB6YWd0IGltIFJlZ2VuIG5pZSEKICAgICAgICAgICAgICAgIExlbywgc3BhciBSYXBzb2VsIQogICAgICAgICAgIFR1bmsgbmllIGVpbiBLbmllIGVpbiwgS251dCEKICAgICAgICAgICAgIFJlbmF0ZSBiaXR0ZXQgVGliZXRhbmVyLgogICAgICAgICAgICAgIFJlaXQgbmllIHRvdCBlaW4gVGllciEKICAgICAgICAgICAgICAgIEVsbHkgYmlzcyBTaWJ5bGxlLgogICAgICAgICAgICAgICAgICAgIEF2ZSwgRXZhIQogICAgICAgICAgIFNha3JhLCBNYWRlbiBpbiBFZGFtYXIgS2FzLgogICAgICAgICAgICAgICAgICBSZWxpZWZwZmVpbGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGFsaW5kcm9tZSAoUHJhLCAgNS4gQXByIDE5OTcsIDE4OjM2OjQwKToKfiMhIHJuPVNseWZveCBydD04NjAyNTMyODcgcmc9d2l0emUKfiMhIHRpZD04NjAyNTMyODcKV2VyIGRhcyBnYW56ZSBldHdhcyBseXJpc2NoZXIgaGFiZW4gbW9lY2h0ZSwgZGVtIGVtcGZlaGxlIGljaAonT2ggQ2VsbG8gdm9sbCBFY2hvJyB2b24gSGVyYmVydCBQZmVpZmZlciwgSW5zZWwgVmVybGFnLgoKTGVzZXByb2JlOgoKTmViZW4gRWRlbiBlYmVuCi0tLS0tLS0tLS0tLS0tLQoKTmViZW4gQW1vcgpuaWUgYWRyZXR0ZXIKZGllIExpZWJlIGdhZXJ0ZSEKCkJpZXIhIEZldGVuIQpHZXNlZ25ldGUgRnJlaWJldHJhZWdlIQpCZWkgTGVpZCBSZXR0ZXIgZGEhCgouLi4gZWluIFJvbWFuIGViZW4uCgpQcmEuIE5pZSBlaW4gQXJwLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpdHogKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMDo1NjozNSk6ClRvbW1pIHZlcnN1Y2h0IHNpY2ggYWxzIE1hbGVybGVocmxpbmcuIERlciBNZWlzdGVyIHNhZ3QgaWhtLCB3YXMKZXIgenUgdHVuIGhhdDogIlRvbW1pLCBkdSBnZWhzdCBqZXR6dCB6dSBkZW0gTmV1YmF1IGhpbnVlYmVyIHVuZApzdHJlaWNoc3QgZGllIEZlbnN0ZXIhIiBOYWNoIGVpbmVyIFdlaWxlIGtvbW10IFRvbW1pIHp1cnVlY2s6CiJEaWUgRmVuc3RlciBzaW5kIGZlcnRpZy4gU29sbCBpY2ggamV0enQgdmllbGxlaWNodCBhdWNoIG5vY2ggZGllClJhaG1lbiBzdHJlaWNoZW4/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0eiAoU2x5Zm94LCAgNS4gQXByIDE5OTcsIDIxOjAxOjExKToKRWluIEVoZXBhYXIgZmVpZXJ0IGdvbGRlbmUgSG9jaHplaXQuICJkdSwgS2FybCIsIG1laW50IHNpZQptaXQgeml0dHJpZ2VyIFN0aW1tZSwgIndlaXNzdCBub2NoLCB3aWUgZXMgZnJ1ZWhlciB3YXI/IgoiSmFqYSwgZnJlaWxpY2ggd2Vpc3MgaWNoJ3Mgbm9jaC4iICJTdGFyayB3YXJzdCBkYW1hbHMsIEthcmwsCnNvIHN0YXJrLCBkdSBoYXN0IG1pY2ggZWluZmFjaCBnZXBhY2t0IHVuZCBhdWYgZGVuIFphdW4KZ2Vob2JlbiB1bmQgZGFubi4uLiBEdSwgS2FybCwgZGFzIGtvZW5udGVuIHdpciBkb2NoIG5vY2gKZWlubWFsIHNvIG1hY2hlbi4uLi4iIERpZSBiZWlkZW4gZ2VoZW4gaGludGVyIGRhcyBIYXVzLCBlcgpoZWJ0IHNpZSBhdWYgZGVuIFphdW4uIEVpbiBaaXR0ZXJuIGdlaHQgZHVyY2ggaWhyZW4gS29lcnBlci4KIkphIE1pdHppIiwgcnVmdCBlciwid2FzIGlzdCBkZW5uIGxvcywgZnJ1ZWhlciB3YXJzdCBqYSBnYXIgbmllCnNvIGZldXJpZyEiICJUcm90dGVsIiwgc2NocmVpdCBzaWUsImZydWVoZXIgd2FyIGF1Y2ggZGVyIFphdW4Kbm9jaCBuaWNodCBlbGVrdHJpc2NoISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggZWluZXIuLi4gKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMTowNDo0OCk6CkRyZWkgSnVuZ2VuIGtvbW1lbiBpbiBlaW5lIEFwb3RoZWtlLiBEZXIgZXJzdGUgdmVybGFuZ3QKZnVlciB6d2VpIE1hcmsgSHVzdGVuYm9uYm9ucy4gRGVyIEFwb3RoZWtlciBrbGV0dGVydCBhdWYKZWluZSBMZWl0ZXIsIG5pbW10IGVpbmUgZ3Jvc3NlIERvc2UgYXVzIGRlbSBSZWdhbCwgc3RlaWd0CmhpbnVudGVyLCB3aWVndCBkaWUgQm9uYm9ucyBhYiwgc3RlbGx0IGRpZSBEb3NlIHdpZWRlciBhbgppaHJlbiBQbGF0eiBvYmVuIGluIFJlZ2FsIHVuZCBrb21tdCB6dXJ1ZWNrIGFuIGRlbgpMYWRlbnRpc2NoLiBFciBmcmFndCBkZW4gbmFlY2hzdGVuIEJ1YmVuLCB3YXMgZXIgbW9lY2h0ZS4gIgpBdWNoIGZ1ZXIgendlaSBNYXJrIEh1c3RlbmJvbmJvbnMhIiBMZWljaHQgc2FldWVybGljaAp3aWVkZXJob2x0IGRlciBBcG90aGVrZXIgZGllIGdhbnplIHByb3plZHVyLiBBbHMgZXIgZGllCkRvc2Ugd2llZGVyIHp1cnVlY2tzdGVsbHQsIGRyZWh0IGVyIHNpY2ggdW0gdW5kIGZyYWd0IGRlbgpkcml0dGVuIEp1bmdlbjogIiBXaWxsc3QgZHUgYW0gRW5kZSB2aWVsbGVpY2h0IGF1Y2ggbm9jaCBmdWVyCnp3ZWkgTWFyayBIdXN0ZW5ib25ib25zPyIgLSAiIE5vLCIgc2FndCBlciAiIHdpbGwgaWNoCm5pY2h0LiAiIFp1ZnJpZWRlbiBrbGV0dGVydCBkZXIgQXBvdGhla2VyIHdpZWRlciBoaW51bnRlcgp1bmQgZnJhZ3Q6ICIgQWxzbyB3aWxsc3QgZHUgZGFubj8iIC0gIiBGdWVyIGVpbmUgTWFyawpIdXN0ZW5ib25ib25zISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRvbW1pLCBkZXIgMi4gKEF1Z3JhLCAgNS4gQXByIDE5OTcsIDIxOjUwOjEyKToKTmFjaCBkZW0gRmlhc2tvIGJlaW0gTWFsZXIgdmVyc3VjaHQgc2ljaCBUb21taSBiZWltIEdlbXVlc2ViYXVlcm4uIERlciBNZWlzdGVyCnNhZ3Q6IiBIaW50ZW4gc2ltIFNhbGF0YmVldCBzaW5kIHNvdmllbGUgU2NoZW5ja2VuLiBXaXIgd29sbGVuIG1hbCBhdWYKUHNldGl6aWRlIHZlcnppY2h0ZW4sIGFsc28gZ2Voc3QgZHUgamV0enQgaGluIHVuZCBzYW1tZWxzdCBkaWUgVmllY2hlciBlaW4sCmJldm9yIHdpciBkYXMgWmV1ZyBlcm50ZW4uIiBUb21taSBtYWNodCBzaWNoIGF1ZiBkZW4gV2VnLiBOYWNoIGVpbiBwYWFyClN0dW5kZW4ga29tbXQgZGVyIE1laXN0ZXIgdW5kIHdpbGwgZXJudGVuLiAiVG9tbWkhIiBzY2hyZWl0IGVyLCIgZGllIFNjaG5lY2tlbgpzaW5kIGphIGltbWVyIG5vY2ggZGEhIiAiSmEsIGRpZXNlIHZlcmZsdWNodGVuIEJpZXN0ZXIiIHNhZ3QgVG9tbWksICIgZGllIHNpbmQKc28gZmxpbmsuIEljaCBoYWIgbWljaCBpbW1lciBnYW56IGxlaXNlIGFuZ2VzY2hsaWNoZW4sIGFiZXIgd2VubiBpY2ggYW5rYW0sCkh1c2NoISB3YXJlbiBzaWUgd2VnISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJheWVyaXNjaGVyIFdpdHogKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMzowMToxMik6CkF1Zm0gYmF5cmlzY2hlbiBCYXVlcm5ob2Y6CiJQYXBhLCBpY2ggaG9iIG1pIHZlcmxpZWJ0ISIKIkpvLCBtZWkgU29obiwgaW4gd2VuIGRlbm4/IgoiSWNoIG1vZ3Mgbml0IHNvZ2UuLi4iCiJKbyBzb2cgc2Nob24hIEluIGRpZSBNYXJpYT8iCiJOZWVlLi4uIgoiSmEgbWVpISBJbiBkaWUgRXZhIHZpZWxsZWljaHQ/IgoiTmVlZSwgUGFwYS4uLiIKIkV0d2EgaW4gZGllIFplbnppLCBkaWUgb2xsZSBIdXI/Pz8iCiJOZWVlLCBQYXBhLi4uIEluLi4uIEluIGRlbiBTZXBwISIKIkluIGRlbiBTZXBwPz8/IEFiZXIuLi4gRGVyIGlzIGRvY2ggZXZhbmdlbGlzY2ghISEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gUGZhcnJlciBiZWltIEFyenQgKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMzowNDoxOSk6CkRlciBBcnp0IGlzdCBuYWNoIGRlciBVbnRlcnN1Y2h1bmcgbWl0IHNlaW5lbSBQYXRpZW50ZW4gc2VociB6dWZyaWVkZW4sCnVuZCBtZWludDoKICJVbmQgbWl0IGRlbSBTZXgga2xhcHB0IGVzIGRvY2ggc2ljaGVyIGF1Y2ggZ3V0LiIKQW50d29ydGV0IGRlciBQYXRpZW50OgogIk5hIHNvIGRyZWltYWwgaW4gZGVyIFdvY2hlIGdlaHQgZXMgc2Nob24uLi4iCkFyenQ6ICJXYXM/IEJlaSBJaHJlciBLb25zdGl0dXRpb24gbXVlc3N0ZSBlcyBhYmVyIGRyZWltYWwgYW0gVGFnIGdlaGVuLiIKUGF0aWVudDoiSWNoIHR1IGphIG1laW4gYmVzdGVzLCBhYmVyIGFscyBrYXRob2xpc2NoZXIgUHJpZXN0ZXIgYXVmIGRlbSBMYW5kCmlzdCBkYXMgbmljaHQgc28gZWluZmFjaC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYW5uIGJlaW0gQXJ6dCAoU2x5Zm94LCAgNS4gQXByIDE5OTcsIDIzOjExOjIwKToKRWluIEFyenQgaGF0IGVpbmVuIG5ldWVuIENvbXB1dGVyLCBkZXIgYW5oYW5kIHZvbiBVcmluIGplZGUKS3JhbmtoZWl0IGZlc3RzdGVsbGVuIGthbm4uCk51biBrb21tdCBlaW4gTWFubiwgZGVyIHNhZ3QsIGVyIGhhdCBTY2htZXJ6ZW4gaW0gcmVjaHRlbiBBcm0uCkRpZSBVcmlucHJvYmUga29tbXQgaW4gZGVuIENvbXB1dGVyLCB1bmQgd2VuaWcgc3BhZXRlciBrb21tdCB1bnRlbiBlaW4KWmV0dGVsIGhlcmF1cyBtaXQgZGVyIERpYWdub3NlOiAiU2llIGhhYmVuIGVpbmVuIFRlbm5pc2FybS4iCkRlciBBcnp0IGdpYnQgZGVtIE1hbm4gZWluIFJlemVwdCBtaXQgdW5kIGVpbmlnZSBCZWhhbmRsdW5nc3RpcHMuCldlaWwgZXMgbmFjaCBlaW5lciBXb2NoZSBhYmVyIG5pY2h0IGJlc3NlciBpc3QsIGdlaHQgZGVyIE1hbm4gd2llZGVyCnp1bSBBcnp0LgpEaWUgc2VsYmUgUHJvemVkdXIgbWl0IGRlbSBDb21wdXRlci0gdW5kIHdpZWRlciBpc3QgZGllIERpYWdub3NlCidUZW5uaXNhcm0nIQpOdW4gZGVua3Qgc2ljaCBkZXIgTWFubiwgaWNoIHdlcmRlIGRlbSBDb21wdXRlciBlaW5zIGF1c3dpc2NoZW4uCkVyIGxhZXNzdCBzaWNoIFVyaW4gdm9uIHNlaW5lciBUb2NodGVyIHVuZCB2b24gc2VpbmVyIEZyYXUgZ2ViZW4uCkRpZXNlbiBtaXNjaHQgZXIgbWl0IHNlaW5lbSB1bmQgYnJpbmd0IGRhcyBnYW56ZSB3aWVkZXIgenVtIEFyenQuCkRlciBDb21wdXRlciByYXR0ZXJ0IGVpbmVuIEF1Z2VuYmxpY2ssIGRhbm4ga29tbXQgd2llIGdlaGFidCBlaW4KUGFwaWVyc3RyZWlmZW4gaGVyYXVzIG1pdCBkZXIgRGlhZ25vc2U6ICJJaHJlIFRvY2h0ZXIgYmVrb21tdCBlaW4KS2luZCwKaWhyZSBGcmF1IGhhdCBpaHJlIFRhZ2UuIFVuZCB3ZW5uIHNpZSBuaWNodCBhdWZob2VyZW4genUgb25hbmllcmVuLApkYW5uIHdlcmRlbiBzaWUgaWhyZW4gVGVubmlzYXJtIG5pZSBsb3MgISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1lZGl6aW5zdHVkZW50IChTbHlmb3gsICA1LiBBcHIgMTk5NywgMjM6MTM6MjcpOgpFcnN0ZSBWb3JsZXN1bmcgZGVyIE1lZGl6aW5zdHVkZW50ZW4gaW0gZXJzdGVuIFNlbWVzdGVyOgpQcm9mOiAiTWVpbmUgRGFtZW4gdW5kIEhlcnJlbiwgendlaSBEaW5nZSB6ZWljaG5lbiBlaW5lbiBndXRlbiBBcnp0IGF1cy4KICAgICAgIEVyc3RlbnM6IGRpZSBGYWVoaWdrZWl0IEVrZWwgenUgfGJlcndpbmRlbiwKICAgICAgIHp3ZWl0ZW5zOiBtZXNzZXJzY2hhcmZlIEJlb2JhY2h0dW5nc2dhYmUuCiAgICAgICBXaXIgZmFuZ2VuIGhldXRlIG1pdCBkZXIgRWtlbHVlYmVyd2luZHVuZyBhbi4iClNwcmFjaHMgdW5kIHRhdWNodGUgc2VpbmVuIEZpbmdlciBpbiBlaW4gR2xhcyBtaXQgZWtlbGlnZXIsIHN0aW5rZW5kZXIsCmdydWVuLWdlbGJlciBGbHVlc3NpZ2tlaXQuIEVyIHppZWh0IGRlbiBGaW5nZXIgd2llZGVyIHJhdXMgdW5kIGxlY2t0IGlobgp6dW0gRW50c2V0emVuIGRlciBTdHVkZW50ZW4gYWIuIEVyIG5pbW10IGRhcyBHbGFzLCBnZWh0IHp1ciBlcnN0ZW4gU2l0enJlaWhlCnVuZCBzdGVsbHQgZXMgdm9yIGVpbmVtIFN0dW5kZW50ZW4gYXVmIGRlbiBUaXNjaC4uLgpEZXIgemllcnQgc2ljaCBlaW5lIFdlaWxlLCB0YXVjaHQgYWJlciBkYW5uIGRvY2ggc2NobGllYWxpY2ggc2VpbmVuIEZpbmdlcgppbiBkYXMgR2xhcyB1bmQgbGVja3QgaWhuIGFiLgpNZWludCBkZXIgUHJvZjogIklocmVuIEVrZWwgaGFiZW4gc2llIHp3YXIgdWViZXJ3dW5kZW4sIGFiZXIgSWhyZSAKICAgICAgICAgICAgICAgICBCZW9iYWNodHVuZ3NnYWJlIGxhZXNzdCBkb2NoIHNlaHIgenUgd3VlbnNjaGVuIHVlYnJpZy4KICAgICAgICAgICAgICAgICBEZW5uIGljaCBoYWJlIGRlbiBaZWlnZWZpbmdlciBlaW5nZXRhdWNodCB1bmQgZGVuIE1pdHRlbC0KICAgICAgICAgICAgICAgICBmaW5nZXIgYWJnZWxlY2t0LiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlaGVpbWRpZW5zdC1XaXR6IChTbHlmb3gsICA1LiBBcHIgMTk5NywgMjM6MTk6NDYpOgpBdWYgZWluZW0gVHJlZmZlbiB3ZXN0bGljaGVyIEdlaGVpbWRpZW5zdGUgaW0gU2Nod2FyendhbGQgd2lsbCBtYW4KaGVyYXVzZmluZGVuLCB3ZWxjaGVyIGRlciBiZXN0ZSBpc3QuIERpZSBBZ2VudGVuIGJla29tbWVuIGRpZSBBdWZnYWJlCmdlc3RlbGx0LCBlaW4gV2lsZHNjaHdlaW4genUgZmFuZ2VuLiBBbGxlIFRlYW1zIG1hY2hlbiBzaWNoIGF1ZiBkZW4gV2VnLgpOYWNoIGVpbmVyIFN0dW5kZSBrb21tZW4gZGllIENJQS1MZXV0ZSB6dXJ1ZWNrLiBTaWUgaGFiZW4gZWluZW4gdm9uIEt1Z2VsbgpkdXJjaGxvZWNoZXJ0ZW4gS2x1bXBlbiBGbGVpc2NoIGRhYmVpLCBkZXIgbmFjaCBlaW5pZ2VuIFVudGVyc3VjaHVuZ2VuIGFscwpXaWxkc2Nod2VpbmthZGF2ZXIgaWRlbnRpZml6aWVydCB3aXJkLiAiTmljaHQgc2NobGVjaHQiLCBzYWd0IGRpZSBKdXJ5LAoiMTAwIFB1bmt0ZSIuCk5hY2ggendlaSBTdHVuZGVuIGtvbW1lbiBkaWUgQWdlbnRlbiBkZXMgTW9zc2FkIHp1cnVlY2suIFNpZSBicmluZ2VuIGVpbmUKZ2FuemUgV2lsZHNjaHdlaW5mYW1pbGllIGFuLCBqZWRlcyBUaWVyIG1pdCBlaW5lbSBlaW56aWdlbiBLb3Bmc2NodXNzCmdldG9ldGV0LiAiTmljaHQgc2NobGVjaHQiLCBzYWd0IGRpZSBKdXJ5LCAiMjAwIFB1bmt0ZSIuCk1hbiB3YXJ0ZXQgd2VpdGVyLiBFcyB3aXJkIEFiZW5kLiBLdXJ6IGJldm9yIGRpZSBTb25uZSB1bnRlcmdlaHQgaG9lcnQgbWFuCkxhZXJtIGF1cyBkZW0gV2FsZC4gRGFubiBzaWVodCBtYW4gZGllIEJORC1MZXV0ZSBhbmtvbW1lbjogVmllciBoYWx0ZW4KZWluZW4gc2ljaCB2ZXJ6d2VpZmVsdCB3ZWhyZW5kZW4gSGlyc2NoIGZlc3QsIHdhZWhyZW5kIGRlciBmdWVuZnRlIGF1ZiBkYXMKVGllciBlaW5wcnVlZ2VsdCB1bmQgZXMgYW5icnVlbGx0OiAiR2VzdGVoLCBkYXNzIER1IGVpbiBXaWxkc2Nod2VpbiBiaXN0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvaGwtV2l0eiAoU2x5Zm94LCAgNS4gQXByIDE5OTcsIDIzOjI1OjI3KToKSGVsbXV0IEtvaGwgc29sbCBkaWUgT2x5bXBpYWRlIGVyb2VmZm5lbi4gRXIgTmltbXQgc2VpbmVuIFpldHRlbCBtaXQgZGVyIFJlZGUKSGVyYXVzIHVuZCBiZWdpbm50IHp1IGxlc2VuOiAiIE51bGwsIG51bGwsIG51bGwsIG51bGwsIC4uLi4uIgpCYWV1Z3Qgc2ljaCBzZWluIEJlcmF0ZXIgenUgaWhtIHVuZCBzYWd0OiAiQWJlciBIZXJyIEthbnpsZXIsIHNpZSBoYWJlbgpnZXJhZGUgZGllIE9seW1waXNjaGVuIFJpbmdlIHZvcmdlbGVzZW4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIGVpbiBLb2hsLVdpdHogKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMzoyODo1Nik6Ckhhbm5lbG9yZSBLb2hsIGtvbW10IGluIGVpbiBFaXNlbndhcmVuIEdlc2NoYWVmdCB1bmQgdmVybGFuZ3QgZWluIFN0dWVjawpEcmFodC4KIldvZnVlciBicmF1Y2hlbiBTaWUgZGVubiBkZW4gRHJhaHQ/IiBmcmFndCBkZXIgVmVya2FldWZlci4KIkljaCBoYWJlIGRlbiBTY2hsdWVzc2VsIGltIFdhZ2VuIHN0ZWNrZW4gbGFzc2VuIC0gdW5kIG11c3MgbnVuIG1pdApkZW0gRHJhaHQgZGFzIEZlbnN0ZXIgb2VmZm5lbi4iCkRlciBWZXJrYWV1ZmVyLCBuZXVnaWVyaWcgZ2V3b3JkZW4gZ2VodCBtaXQuCkhhbm5lbG9yZSBiaWVndCBkZW4gRHJhaHQgdW5kIHZlcnN1Y2h0IGRhcyBGZW5zdGVyIHp1IG9lZmZuZW4uCkRyaW5uZW4gc2l0enQgSGVsbXV0IHVuZCBnaWJ0IEFud2Vpc3VuZzoKIkxpbmtzLCBtZWhyIGxpbmtzIC0gZXR3YXMgcmVjaHRzLi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVuZCBub2NoIGVpbmVyLi4uIChTbHlmb3gsICA1LiBBcHIgMTk5NywgMjM6Mjk6NTIpOgpIZWxtdXQgdW5kIEhhbm5lbG9yZSBzaXR6ZW4gYWJlbmRzIHp1IEhhdXNlLCBIZWxtdXQgbG9lc3QgCiAgS3JldXp3b3J0cmFldHNlbCwgSGFubmVsb3JlIHN0cmlja3QuIEhlbG11dCB1ZWJlcmxlZ3QgYW5nZXN0cmVuZ3QuLi4KICAiTW1tbW0uLi4gSmV0eiB3aXJkJ3Mgc2Nod2llcmlzY2guLi4gS2FuemxlciBkZXIgV2llZGVydmVyZWluaWd1bmcgbWl0IHZpZXIKICAgICAgICBCdWNoc3RhYm5ubm4uLi4gRGFzIGJpbiBqYSBpc2NoISEhIEkgLSBDIC0gSC4uLiBCYXNzdCBuZXQuLi4gCiAgICAgICAgV2llc28gYmFzc3QgZGVzIGpldHogbmV0IT8gRGVzIGhhdCBudXIgZHJlaSBCdWNoc3RhYm5ubm4uLi4iCiAgSGFubmVsb3JlOiAiQWJlciBIZWxtdXQsIERVIGJpc3QgZ2VtZWludCEiCiAgSGVsbXV0OiAiRHU/IT8gRCAtIFUuLi4gRGVzIGJhc3N0IGF1Y2ggbmV0Li4uIElzY2ggYnJhdWNoIGVpbicgbWVociwKICAgICAgICBuZXQgZWluIHdlbmlnZXIsIEhhbm5lbG9yZSEiCiAgSGFubmVsb3JlOiAiQWJlciBIZWxtdXQsIGRlbmsgZG9jaCBtYWwgbmFjaCEgRGllIG1laW5lbiBESUNIISIKICBIZWxtdXQ6ICJEaXNjaD8hPyBEIC0gSSAtIEMgLSBILi4uIE1lbnNjaCwgSGFubmVsb3JlLCBkZXMgYmFzc3QhCiAgICAgICAgVmllciBCdWNoc3RhYm5ubm4uLi4gQWxzbyBIYW5uZWxvcmUsIHdlbm4gaXNjaCBESVNDSCBuZXQgaGFldHRlLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29obCBkZXIgNC4gKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMzozNToyNCk6CktvaGwgd2lsbCBFaXNhbmdlbG4gZ2VoZW4uIEVyIGdlaHQgaW4gZGllIEdhcmFnZSB1bmQgc3VjaHQgZXJzdGUgZWlubWFsCiAgc2VpbiBBbmdlbHpldWcuIEFscyBlciBlcyBnZWZ1bmRlbiBoYXQsIG1hY2h0IGVyIHNpY2ggbWl0IHNlaW5lciBrb21sZXR0ZW4KICBBdXNydWVzdHVuZyBhdWYgZGVuIFdlZy4gRXIgbGFldWZ0IHVuZCBsYWV1ZnQgdW5kIGxhZXVmdC4gQWJlciBlaW5lbgogIHp1Z2Vmcm9yZW5lbiBTZWUgPyAgRmVobGFuemVpZ2UhIERvY2ggcG90emJsaXR6LCBkYSBpcycgamEgZWluZXIuCiAgS29obCBwYWNrdCBzZWluZSBIYWNrZSBhdXMgdW5kIHNjaGxhZWd0IGVpbiBMb2NoIGluJ3MgRWlzLiBBbHMgZXIgZ2VyYWRlCiAgc2VpbmUgQW5nZWwgaGluZWluaGFlbmdlbiB3aWxsLCBrb21tdCBlaW5lIFN0aW1tZSB2b24gb2JlcjoKICAiTmVpbiBIZWxtdXQsIGhpZXIgbmljaHQhIgogIEVyIHBhY2t0IHNlaW4gZ2FuemVzIFpldWcgenVzYW1tZW4gdW5kIGxhZXVmdCAxMCBNZXRlciB3ZWl0ZXIuCiAgR2xlaWNoZSBQcm96ZWR1ci4KICBBbHMgZXIgd2llZGVyIHNlaW5lIEFuZ2VsIGhpbmVpbmhhZW5nZW4gd2lsbCwgZGllIGdsZWljaGUgU3RpbW1lOgogICJOZWluIEhlbG11dCwgaGllciBuaWNodCEiCiAgRXIgcGFja3Qgc2VpbiBaZXVnIGVpbiB1bmQgZ2VodCB3ZWl0ZXJlIDEwIE1ldGVyIHdlaXRlci4gRXIgaGF0IGdlcmFkZSBkYXMKICBMb2NoIGZlcnRpZyB1bmQgd2lsbCBzZWluZSBBbmdlbCBoaW5laW5oYWVuZ2VuLCBrb21tdCB3aWVkZXIgZGllIFN0aW1tZToKICAiTmVpbiBIZWxtdXQsIGhpZXIgbmljaHQhIgogIEtvaGwgZnJhZ3QgZGFyYXVmaGluOgogICJHb3R0LCBzYWcgbWlyLCB3YXJ1bSBpY2ggaGllciBuaWNodCBhbmdlbG4gZGFyZi4iCiAgRGllIFN0aW1tZToKICAiSGllciBpc3QgbmljaHQgR290dCwgSGVsbXV0LCBoaWVyIGlzdCBkZXIgU3RhZGlvbnNwcmVjaGVyIGRlcwogIEtyZWZlbGRlciBFViEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouLi4gKFNseWZveCwgIDUuIEFwciAxOTk3LCAyMzozOTo0NCk6CktvaGwga29tbXQgdm9uIGVpbmVyIFJlaXNlIG5hY2ggQW1lcmlrYSBoZWltIHVuZCBlcnphZWhsdCBzZWluZXIgSGFuYWxvcmU6CiAgIEtvaGwgICAgIDogIkFtZXJpa2EgaXN0IHdpcmtsaWNoIGVpbiBicnV0YWxlcyBMYW5kLi4uIEFscyBpY2ggbWl0IENsaW50b24KICAgICAgICAgICAgICB6dW0gRXNzZW4gd2FyLCBoYWJlbiB3aXIgYXVmIGRlbSBXZWcgZWluZW4gTWFubiBnZXNlaGVuLCBkZXIKICAgICAgICAgICAgICB1ZWJlcmZhbGxlbiB3dXJkZS4gRXIgbGFnIG9obm1hZWNodGlnIGF1ZiBkZXIgU3RyYXNzZSEiCiAgIEhhbm5lbG9yZTogIkRhcyBrYW5uIGRvY2ggdWViZXJhbGwgcGFzc2llcmVuISIKICAgS29obCAgICAgOiAiSmEsIGFiZXIgbmFjaGRlbSB3aXIgNSBTdHVuZGVuIHNwYWV0ZXIgd2llZGVyIHZvcmJlaSBrYW1lbiwKICAgICAgICAgICAgICBsYWcgZXIgaW1tZXIgbm9jaCBkb3J0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvaGwtV2l0eiBOci4gNiAoU2x5Zm94LCAgNS4gQXByIDE5OTcsIDIzOjQzOjA5KToKSGVsbXV0IHdpbGwgdWViZXIgZGllIFNjaHdlaXplciBHcmVuemUuCkRpZSBHcmVuemJlYW10ZW4gd29sbGVuIHNlaW5lbiBQZXJzb25hbGF1c3dlaXMgc2VoZW4uCkRlbiBoYXQgZXIgbmF0dWVybGljaCBuaWNodCBkYWJlaS4KSGVsbXV0OiAiV2FzIHNvbGwgaWNoIGpldHp0IGRlbm4gYmxvc3MgbWFjaGVuPyIKQmVhbXRlcjogIkphLCB3aXIgaGF0dGVuIGRhIG1hbCBzb24gYWVobmxpY2hlbiBGYWxsLgpEYSB3YXIgQm9yaXMgQmVja2VyIGhpZXIuIERlciBoYXR0ZSBhdWNoIGtlaW5lbiBQYXNzIGRhYmVpLgpEYSBoYWJlbiB3aXIgaWhuIG4gcGFhciBBc3NlIHNjaGxhZ2VuIGxhc3NlbiwKZGEgd2FyIGRpZSBTYWNoZSBrbGFyLCBkYXMgaXN0IEJvcmlzIEJlY2tlci4KRGVyIGtvbm50ZSBkYW5uIHdlaXRlcmZhaHJlbi4KQmVja2VuYmF1ZXIgd2FyIGF1Y2ggbWFsIGhpZXIuIEF1Y2ggb2huZSBQYXNzLgpEZXIgaGF0IGRhbm4gc29uIGJpc3NjaGVuIG1pdCBkZW0gQmFsbCBnZWRyaWJiZWx0IHVuZCBnZXNwaWVsdCwKZGEgd2FyIGRpZSBTYWNoZSBhdWNoIGtsYXIsIGRhcyBpc3QgQmVja2VuYmF1ZXIuCkRlbiBsaWVzc2VuIHdpciBkYW5uIGF1Y2ggd2VpdGVyZmFocmVuLiIKSGVsbXV0OiAiQWJlciwgYWJlciAtIGljaCBrYW5uIGRvY2ggbml4LiIKQmVhbXRlcjogIkFsbGVzIGtsYXIgSGVyciBLb2hsLCBzaWUga29lbm5lbiBwYXNzaWVyZW4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJheWVyaXNjaGVyIFdpdHogKEFjcmltb24sICA2LiBBcHIgMTk5NywgMDU6NTc6NDQpOgp+IyEgcm49U2x5Zm94IHJ0PTg2MDI3NDA3MiByZz13aXR6ZQp+IyEgdGlkPTg2MDI3NDA3MgpERUVFUyBzb2xsIGJvYXJpc2NoIHNlaT8gUHJlaXN6aXNjaCBpcyBkZXMsIHNvbnN0IG5peCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQmF5ZXJpc2NoZXIgV2l0eiAoV3VyemVsLCAgNi4gQXByIDE5OTcsIDExOjA1OjM4KToKfiMhIHJuPUFjcmltb24gcnQ9ODYwMjk5MDY0IHJnPXdpdHplCn4jISB0aWQ9ODYwMjc0MDcyCmJvYXJpc2NoPyBqZXR6dCB3aXJkIG1pciBlaW5pZ2VzIGtsYXIsIGluc2Jlc29uZGVyZSBpbSB6dXNhbW1lbmhhbmcgbWl0IGRlbgp3aWxkc2Nod2VpbmVuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZWNoZW5rdWVuc3RsZXIgKEFjcmltb24sICA2LiBBcHIgMTk5NywgMTg6Mzg6NTMpOgpbTW9lcmRlcjpHZWlzdCBlaW5lcyBIeWRyYWtvcGZzXSBJbiBzcGFldGVzdGVucyBlaW5lciBTdHVuZGUga29tbWUgaWNoIHdpZWRlciwKW01vZXJkZXI6R2Vpc3QgZWluZXMgSHlkcmFrb3Bmc10gVGhlcmluIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBhbGluZHJvbWUgKEppbWRpZ3JpeiwgIDcuIEFwciAxOTk3LCAwMDozMzo1OCk6Cn4jISBybj1TbHlmb3ggcnQ9ODYwMjUzMjg3IHJnPXdpdHplCn4jISB0aWQ9ODYwMjUzMjg3CmR1IGhhc3QKUmVnYWwgbWl0IFNpcnVwIHB1ciBpc3QgaW0gTGFnZXIKCnZlcmdlc3NlbiwKCkpkRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmllciBBZXJ6dGUgKFNseWZveCwgIDcuIEFwciAxOTk3LCAxMToxODowOSk6ClNpdHplbiB2aWVyIEFlenRlIGJlaW0gU3RhbW10aXNjaC4gU3RlaHQgZGVyIEF1Z2VuYXJ6dCBhdWYgdW5kIHNhZ3Q6CiJJY2ggZ2VoZSBqZXR6dC4gTWFuIHNpZWh0IHNpY2guIgpTYWd0IGRlciBITk8tQXJ6dDogIkljaCBrb21tIG1pdC4gV2lyIGhvZXJlbiB2b25laW5hbmRlci4iClNhZ3QgZGVyIFVyb2xvZ2U6ICJJY2ggZ2xhdWIsIGljaCB2ZXJwaXNzIG1pY2ggamV0enQgYXVjaC4iClNhZ3QgZGVyIEZyYXVlbmFyenQ6ICJHcnVlc3N0IGV1cmUgRnJhdWVuLiBJY2ggc2NoYXUgbWFsIHdpZWRlciByZWluLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvaGwgdW5kIFZyYW5pdHpreSAoU2x5Zm94LCAgNy4gQXByIDE5OTcsIDExOjI4OjExKToKVnJhbml0emt5IHJ1ZnQgYmVpIEtvaGwgYW4sIHVuZCBiZXNjaHdlcnQgc2ljaCBkYXJ1ZWJlciwgZGFzcyBkaWUKRGV1dHNjaGVuIGltbWVyIHVlYmVyIGRpZSBPZXN0ZXJyZWljaGVyIGxhY2hlbiB1bmQgZnJhZ3QgYW4sIG9iIGRpZQpEZXV0c2NoZW4gbmljaHQgbWFsIHdhcyBnYW56IER1bW1lcyBtYWNoZW4ga29lbm5lbiwgZGFtaXQgYXVjaApkaWUgT2VzdGVycmVpY2hlciBtYWwgdWViZXIgZGllIERldXRzY2hlbiBsYWNoZW4ga29lbm5lbi4gS29obCB3aWxsaWd0CmVpbiB1bmQgbGFlc3N0IG1pdHRlbiBpbiBkZXIgU2FoYXJhIGVpbmUgcmllc2VuZ3Jvc3NlIEJydWVja2UgYmF1ZW4uIERpZQpPZXN0ZXJyZWljaGVyIGFtdWVzaWVyZW4gc2ljaCBrb2VzdGxpY2guIE5hY2ggZWluZXIgV2VpbGUgcnVmdCBWLiB3aWVkZXIKYmVpIEsuIGFuLCBiZWRhbmt0IHNpY2ggdW5kIHNhZ3QsIGRpZSBCcnVlY2tlIGtvZW5uZSB3aWVkZXIgYWJnZXJpc3Nlbgp3ZXJkZW4uIERhcmF1ZmhpbiBtZWludCBLLjogIkRhcyBnZWh0IG5pY2h0LiBEYSBzaXR6ZW4gbm9jaCBlaW4gRHV0emVuZApPZXN0ZXJyZWljaGVyIGRyYXVmIHVuZCBhbmdlbG4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT2VzdGVycmVpY2ggKFllbmRpLCAgNy4gQXByIDE5OTcsIDExOjMyOjA0KToKCldJRU4uIERhcyBvZXN0ZXJyZWljaGlzY2hlIFZlcnRlaWRpZ3VuZ3NtaW5pc3Rlcml1bSBoYXQgdmVybGF1dGJhcmVuIGxhc3NlbiwKZGFzcyBpbSBTb21tZXIgMTk5NyBtaXQgZGVtIEJhdSBkZXMgZXJzdGVuIG9lc3RlcnJlaWNoaXNjaGVuIEZsdWd6ZXVndHJhZWdlcnMKYmVnb25uZW4gd2lyZC4gRGFzIFByb2pla3Qgc29sbCB1bWdlcmVjaG5ldCA4MDAgTWlvLiBETSBrb3N0ZW4gdW5kIDU1MDAKQXJiZWl0c3BsYWV0emUgaW4gZGVuIG9lc3RlcnJlaWNoaXNjaGVuIFdlcmZ0ZW4gc2ljaGVybi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gQmF5ZXIsIGVpbiBIZXNzZSB1bmQgZWluIFNhY2hzZSAoU2x5Zm94LCAgNy4gQXByIDE5OTcsIDExOjQzOjA3KToKRWluIEJheWVyLCBlaW4gSGVzc2UgdW5kIGVpbiBTYWNoc2Ugd2VyZGVuIGltIFVyd2FsZCBmZXN0Z2Vub21tZW4uICBEZXIKUmljaHRlciB2ZXJ1cnRlaWx0IGplZGVuIHZvbiBpaG5lbiB6dSAxMDAgUGVpdHNjaGVuaGllYmVuIGF1ZiBkZW4gUnVlY2tlbi4KQmVpIGRlciBVcnRlaWxzdm9sbHN0cmVja3VuZyBmcmFndCBlciBkZW4gQmF5ZXJuLCB3byBlciBoZXJrb21tdC4gIEVyCmVya2xhZXJ0LCBkYXNzIGVyIGF1cyBCYXllcm4ga29tbXQuICBEZXIgUmljaHRlciwgc2ljaHRsaWNoIGVyZnJldXQsIG1laW50LApkYXNzIEJheWVybiBlaW4gc2Nob2VuZXMgTGFuZCBpc3QsIHVuZCBlciBzaWNoIGV0d2FzIHd1ZW5zY2hlbiBkYXJmLiAgRGVyCkJheWVyIHVlYmVybGVndCBrdXJ6IHVuZCB3dWVuc2NodCBzaWNoIGJlaSBkZXIgQXVzcGVpdHNjaHVuZyBlaW4gS2lzc2VuIGF1ZgpkZW4gUnVlY2tlbi4gIEdlc2FndCBnZXRhbi4gIERhcyBLaXNzZW4gaGFlbHQgZGFubiBhdWNoIDUwIFNjaGxhZWdlIGFiIHVuZApkaWUgcmVzdGxpY2hlbiBnZWhlbiBhdWYgZGllIGJsYW5rZSBIYXV0LiAgRGVyIFNhY2hzZSwgZGVyIGFscyBuYWVjaHN0ZXMKZHJhbiBpc3QsIHdpcmQgYXVjaCBuYWNoIHNlaW5lciBIZXJrdW5mdCBnZWZyYWd0LiAgQWxzIGVyIHNhZ3QsIHdvIGVyCmhlcmtvbW10LCBnZXdhZWhydCBpaG0gZGVyIFJpY2h0ZXIgYXVjaCBlaW5lbiBXdW5zY2gsIGRhIGlobSBhdWNoIFNhY2hzZW4Kc2VociBndXQgZ2VmYWVsbHQuICBEZXIgU2FjaHNlIGRlbmt0IGt1cnogbmFjaCwgYmVzaWVodCBzaWNoIGRlbiBCYXllcm4gdW5kCnd1ZW5zY2h0IHNpY2ggendlaSBLaXNzZW4gYXVmIGRlbiBSdWVja2VuLiAgR2VzYWd0IGdldGFuLiAgTmFjaCA3NQpTY2hsYWVnZW4gaXN0IGFiZXIgYXVjaCBkYXMgendlaXRlIEtpc3NlbiBkdXJjaCB1bmQgZGllIEhpZWJlIGdlaGVuIGF1ZiBkaWUKbmFja3RlIEhhdXQuICBEZXIgSGVzc2UsIGVpbiBGdWxkYWVyLCB3aXJkIGF1Y2ggbmFjaCBzZWluZXIgSGVya3VuZnQKZ2VmcmFndC4gIEVyIGFudHdvcnRldCwgdW5kIHdlaWwgZGVyIFJpY2h0ZXIgRnVsZGEgYmVzb25kZXJzIHNjaG9lbiBmaW5kZXQsCmJla29tbXQgZXIgendlaSBXdWVuc2NoZSBmcmVpLiAgRGVyIEZ1bGRhZXIgZGVua3Qga3VyeiBuYWNoLCBiZXNpZWh0IHNpY2gKZGVuIEJheWVybiB1bmQgZGVuIFNhY2hzZW4gdW5kIHNhZ3QgZGFubiwgZGEgZXIgenVuYWVjaHN0IGVyc3RtYWwgMjAwClNjaGxhZWdlIGJla29tbWVuIHdpbGwuICBEZXIgUmljaHRlciwgc2ljaHRsaWNoIGVyc3RhdW50LCBnZXdhZWhydCBkaWVzZW4KV3Vuc2NoLCB1bmQgZnJhZ3QsIHdhcyBlciBlciBhbHMgendlaXRlbiBXdW5zY2ggbW9lY2h0ZS4gIERhIHZlcmt1ZW5kZXQgZGVyCkZ1bGRhZXIsIGVyIG1vZWNodGUgYmVpIGRlciBBdXNwZWl0c2NodW5nIGRlbiBTYWNoc2VuIGF1ZiBkZW4gUnVlY2tlbgpnZWJ1bmRlbiBoYWJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVpbiBBbWksIGVpbiBSdXNzZSB1bmQgZWluIE9zdGZyaWVzZSAoQ2F1bm8sICA3LiBBcHIgMTk5NywgMTM6MDc6MDQpOgpFaW4gQW1lcmlrYW5lciwgZWluIFJ1c3NlIHVuZCBlaW4gT3N0ZnJpZXNlIHNpdHplbiB6dXNhbW1lbiB1bmQgZGlza3V0aWVyZW4KdWViZXIgZGFzIGdyb2Vzc3RlIEdlaGVpbW5pcyBkZXIgV2VsdC4KRGVyIEFtaSBzYWd0PiBEYXMgZydvZXNzdGUgR2VoZWltbmlzcyBmdWUnIG1payBzZWluIGRpZSBXZWx0J2F1bSwgdW5lbmRsaWtlCnVlaXRlbiAuLi4gd2hlcmUgbm8gbWFuIGhhcyBnb25lIGJlZm9yZS4KRGFyYXVmIG1laW50IGRlciBSdXNzZTogRnVlcnIgbWlraCBzZWluIGdycm9lc3N0ZXNzIEdlaGVpbW5pc3MgZGVyciB3ZWx0Ck5hdHVyYSwgdmlsbCBsYWViZW4sIHZpbGxmYWx0IGluIGZvcnJtIHVuZCBmYXJyYmUuClNjaGxpZXNzbGljaCBzYWcgZGVyIG9zdGZyaWVzZTogTnVuLCBmdWVyIG1pY2ggaXN0IGRhcyBncm9lc3N0ZSBnZWhlaW1uaXMKbWVpbmUgVGhlcm1vc2thbm5lLgpGcmFnZW4gZGVyIEFtaSB1bmQgZGVyIFJ1c3NlOiBXaWVzbyBkaWUgVGhlcm1vc2thbm5lPwpTYWd0IGRlciBPc3Rmcmllc2U6IG51biwgaW0gV2ludGVyIGhhZWx0IHNpZSB3YXJtZXMgd2FybSB1bmQgaW0gc29tbWVyIGthbHRlcwprYWx0LiBBYmVyIHdvaGVyIHdlaXNzIGRpZSBLYW5uZSwgZGFzcyBncmFkIFdpbnRlciBvZGVyIFNvbW1lciBpc3Q/CgpDLiBObyAoYWx0IGFiZXIgLi4uIG5hamEpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLaW5kZXJXYWhuc2lubm4gKFR3ZWVnLCAgOS4gQXByIDE5OTcsIDAwOjA1OjQwKToKRWluZSBhcmJlaXRzdGFldGlnZSBKdW5nZSBGcmF1IGtvbW10IGRlcyBuYWNobWl0dGFncyBuYWNoIEhhdXNlLgpBbHMgc2llIGRhcyBCYWRlemltbWVyIGJldHJpdHQsIHNpZWh0IHNpZSwgd2llIGlociBNYW5uIGRhcyAKTmV1Z2Vib3JlbmUgYW4gZGVuIE9ocmVuIGR1Y2ggZGllIFdhbm5lIHppZWh0Li4uLi4uCgoKU2NoaW1wZnQgc2llOiAiV2FzIGZhZWxsdCBEaXIgZWluIHVuc2VyIEtpbmQgYW4gZGVuIE9ocmVuIGR1cmNoIGRpZSBXYW5uZQp6dSB6aWVoZW4/IgoKRGFyYXVmIGVyOiAiRGVua3N0IER1IGV0d2EsIGljaCB3aWxsIG1pciBkaWUgRmluZ2VyIHZlcmJydWVoZW4/IgoKClR3ZWVnICJtYWciIGtsZWluZSwgc2NocmVpZW5kZSBLaW5kZXI6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ2F0ZXMgKENlcmVidXMsICA5LiBBcHIgMTk5NywgMDQ6MDE6MTMpOgpXaGF0IGRpZCBCaWxsIEdhdGVzJyB3aWZlIHNheSBpbiB0aGVpciB3ZWRkaW5nIG5pZ2h0PwoKTm93IEkga25vdyB3aHkgWW91IG5hbWVkIGl0ICJNaWNyb3NvZnQiLi4uCgoKSWNoIGhvZmZlLCBkZW4ga2FubnRlIG5vY2gga2VpbmVyLi46LSkpCmMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGdXNzYmFsbHdpdHogKEhhcmRpbCwgIDkuIEFwciAxOTk3LCAxMzowOTo1NCk6CgpGdWVyIFpvcnJvIHVuZCBLdW1wYW5lbjoKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEhvbGxhZW5kZXJuIHVuZCBTcGFuaWVybiA/CgpTcGFuaWVyIHRyZWZmZW4gYXVzIDExIE1ldGVybiBkYXMgVG9yLgoKCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdGl0ZWwgKEthbGksICA5LiBBcHIgMTk5NywgMTc6NDg6NDMpOgpEZW4gaGFiIGljaCBoZXV0ZSBnZWZ1bmRlbi4gSWNoIGhvZmZlLCBkYXNzIGVyIG5vY2ggbmljaHQgenV1dXUgYmVrYW5udCBpc3QuCjstKQpXaGF0IGhhcyBmb3VyIGxlZ3MsIHR3byBsZWdzIGFuZCB0aHJlZSBsZWdzPwooTWFuKQoKUFM6IEljaCB3aWxsIGpldHp0IG5pY2h0IHdpc3Nlbiwgd29yYW4gaWhyIGRlbmt0Li4gZGFzIGJlemllaHQgc2ljaCBhdWYgZGllCnZlcnNjaGllZGVuZW4gQWx0ZXIuLktpbmRoZWl0LCBNYW5uZXNhbHRlciB1bmQgKEtydWVja2UpIGFscyBHcmVpcyA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB0aXRlbCAoQXNtb2RpcywgIDkuIEFwciAxOTk3LCAxODoxMDowOSk6Cn4jISBybj1LYWxpIHJ0PTg2MDYwMDkyMyByZz13aXR6ZQp+IyEgdGlkPTg2MDYwMDkyMwpXbyBpc3QgZGVyIFdpdHogPz8KCkF1c3NlcmRlbSwgZGFzIGlzdCBlaW5zIHZvbiBkZW4gUmFldHNlbG4gaW0gTHVwaW5lbnRhbCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHRpdGVsIChKYXNwZXIsIDEwLiBBcHIgMTk5NywgMDE6MTk6MjMpOgp+IyEgcm49S2FsaSBydD04NjA2MDA5MjMgcmc9d2l0emUKfiMhIHRpZD04NjA2MDA5MjMKaG1tbSwgbGFzcyBtaWNoIHJhdGVuIGthbGksIGR1IGJpc3QgYmxvbmQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogdGl0ZWwgKEZ5dCwgMTAuIEFwciAxOTk3LCAwMToxOTo1OSk6Cn4jISBybj1KYXNwZXIgcnQ9ODYwNjI3OTYzIHJnPXdpdHplCn4jISB0aWQ9ODYwNjAwOTIzCgpIYXN0IER1IHNjaG9uIG1hbCByaWNodGlnIGdlcmF0ZW4sIEphc3Blcj8KCmZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB0aXRlbCAoR3JpbW1ib3JuLCAxMC4gQXByIDE5OTcsIDEwOjAwOjQ0KToKfiMhIHJuPUthbGkgcnQ9ODYwNjAwOTIzIHJnPXdpdHplCn4jISB0aWQ9ODYwNjAwOTIzCkJla2FubnQgd2Vpc3MgaWNoIG5pY2h0LCBhYmVyIGFhYWx0LiBJbSBHZWdlbnNhdHogenUgZ2V3aXNzZW4gTGV1dGVuLCBkaWUKbWVpbmVuLCBkaWUgSHlkcmEgaGFldHRlIGRhcyBlcmZ1bmRlbiwgaXN0IGRhcyBSYWV0c2VsIGRhcyBrbGFzc2lzY2hlIFJhZXRzZWwKZGVyIFNwaGlueCBpbSBhbHRlbiBHcmllY2hlbmxhbmQuIERhcyBSYWV0c2VsIGlzdCBkZW1uYWNoIHJ1bmQgZ2VyZWNobmV0IDMwMDAKSmFocmUgYWx0LiBVbmQgbHVzdGlnIGlzdCBlcyB3aXJrbGljaCBuaWNodC4KClVuZCB3ZWlsIGRhcyBoaWVyIGRpZSBSdWJyaWsgd2l0emUgaXN0IHVuZCBpY2ggYXVzIHRlY2huaXNjaGVuIEdydWVuZGVuIGRpZQp2b3JyYXVzZ2VoZW5kZW4gZHJlaSBBcnRpa2VsIG9obmUgV2l0eiB3ZWRlciBsb2VzY2hlbiBub2NoIHZlcmxlZ2VuIGthbm4sCmtvbW10IGhpZXIgd2VuaWdzdGVucyBub2NoIGVpbmVyIHZvbiBtaXI6CkFjaHQgdm9uIHplaG4gTWFlbm5lcm4gc2NocmVpYmVuIG1pdCBlaW5lbSBLdWdlbHNjaHJlaWJlci4KV2FzIG1hY2hlbiBkaWUgcmVzdGxpY2hlbiB6d2VpIGRhbWl0PwoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbHRlIFNjaGFldHplIChZZW5kaSwgMTAuIEFwciAxOTk3LCAxNzoxMzoxOCk6CgpFcyBpc3QgbWFsIHdpZWRlciBkaWUgSmFocmVzemVpdCwgdW0gZWluZW4gdW5zZXJlciBld2lnZW4gV2l0emUgYXVzenVrcmFtZW46CgoiV2FzIGhhdCA0IEJlaW5lIHVuZCBlaW5lbiBBcm0/IgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIlBpdGJ1bGwgYXVmIGRlbSBLaW5kZXJzcGllbHBsYXR6Li4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJpY2hpZSAoU251Z2dsZSwgMTEuIEFwciAxOTk3LCAwMzoxMDoxOCk6ClJpY2hpZSBzYWd0Li4uCgpFaCwgVmlkZW90aGVrLCBlaCwgZGllIGlzdCBlY2h0IHZvbGwgZ2VpbC4gRGEgZ2lidCdzIHNvIEZpbG1lLCBlaCwKZGllIGhlYmVuIERpY2ggdm9sbCB2b20gQm9kZW4gYWIsIGVjaHQsIGVoLgoKSGFiIGljaCBsZXR6dGVucyB6d2VpIGF1c2dlbGllaGVuLCBleSwgZGllIHdhcmVuIHZvbGwgZ2VpbCwgZWguIFNvCmJ1bnRlIEJpbGRlci4uLiBFeSwgdW5kIEZyYXVlbiEgQm9haCwgaWNoIHNhY2ggZGlyLCBkaWUgc2luZCBlY2h0IGdlaWwuCgpEaWUgZWluZSwgZGllIGhhdCBEaW5nZXIsIGRhIHZlcmxpZXJzdGUgZWNodCBkaWUgQm9kZW5oYWZ0dW5nLiBFY2h0LCBlaC4KVW5kIHdhcyBkaWUgZGFtaXQgYW5zdGVsbHQsIGVoLCBkYXMgaXN0Li4uIEVoLCBpY2ggc2FjaCBkaXIsIGRpZSBpc3QKdm9sbCBkaWUgSGV4ZSwgZWguCgpVbmQgZGEgaXN0IHNvJ24gVHlwLCBlaCwgZGVyIHZvb29sbCBkZW4gUnVlc3NlbCwgZWguIERhIGthbm5zdGUgZWNodCBuaXgKbWVociBzYWdlbiwgZWgsIGRhIGtsZWJzdGUgZWNodCB1bnRlciBkZXIgRGVja2UsIGVoLgoKVW5kIGRpZSBGcmF1LCBlaCwgZGllIHJlaXRldCBpbW1lci4gRGEgbGVnc3RlIGVjaHQgZGllIE9ocmVuIGFuLCBlaCwgd2llCmRpZSByZWl0ZXQsIGVoLiBVbmQgZGllIE11dHRlciB2b24gZGVyIEZyYXUsIGRpZSBmYWVocnQgZGEgdm9sbCBkcmF1ZiBhYgp1bmQgZGllIHJlaXRldCBhdWNoIGltbWVyLgoKRGllIE11dHRlciwgZGllIHdhciBmcnVlaGVyIGRpZSBMZWhyZXJpbiB2b24gZGVyIEZyYXUuIFVuZCBqZXR6dCBzdGVodApkaWUgYXVjaCB0b3RhYWFsIGF1ZiBSZWl0ZW4sIGVoLgoKVW5kIG1laW5lIEZyZXVuZGluLCBkaWUgc3RlaHQgdm9sbCBhdWYgZGVuIFR5cCBtaXQgZGVtIFJ1ZXNzZWwuIEthbm4gZGllCmdhciBuaWNodCBnZW51ZyB2b24ga3JpZWdlbiwgZWNodCwgZWguCnEKCkFiZXIgZGFzIFJlaXRlbiwgZWgsIGRhcyBpc3QgZWNodCB2b29vbGwgZGFzIEdlaWxzdGUuCgpFaCwgaWNoIG1laW4sIEJlbmphbWluIEJsdWVtY2hlbiBpc3Qgc2Nob24gc3RhcmssIGFiZXIgQmliaSBCbG9ja3NiZXJnLAp3aWUgZGllIHJlaXRldCwgZGFzIGlzdCB2b2xsIGRhcyBHZWlsc3RlLiBFY2h0LCBlaC4KCkVoLCBsYWNoc3QgZHU/IExhY2hzdCBkdT8gRWgsIGxhY2ggaWNoIGV0d2E/IEVoPyBIb2VyIGF1ZiB6dSBsYWNoZW4sIHNvbnN0CmhvbCBpY2ggbWVpbmUgQnJ1ZWRlciEKCkFubS46IFJpY2hpZSBsYWV1ZnQgamVkZW4gVGFnIGltIExva2FscmFkaW8uIEZ1ZXIgZWluZ2V3ZWlodGUgQm9ubmVySW5uZW46CkVyIHNwcmljaHQgc2Nob2Vuc3RlcyBEcmFuc2RvcmYgbWl0IGVpbmVtIEVpbnNjaGxhZyBUYnVzY2guCgoKTWl0IG5lbSBHcnVzcyB2b24gRXRhaW4KU251ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiB0aXRlbCAoVGVkZHksIDExLiBBcHIgMTk5NywgMTg6MzU6MTApOgp+IyEgcm49QXNtb2RpcyBydD04NjA2MDIyMDkgcmc9d2l0emUKfiMhIHRpZD04NjA2MDA5MjMKQXVzc2VyZGVtIGlzdCBkZXIgYXVzIGRlciBTY2hlaWJlbndlbHQ6IFB5cmFtaWRlbiAoUGZsaWNodGxla3R1ZXJlIGZ1ZXIgYWxsZQptdWRkZXIhKQoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHRpdGVsIChEZW50aSwgMTEuIEFwciAxOTk3LCAxODo1Mzo1NSk6Cn4jISBybj1UZWRkeSBydD04NjA3NzY1MTAgcmc9d2l0emUKfiMhIHRpZD04NjA2MDA5MjMKYiBwaXJhdGVuc2NoaWZmClNpY2hlciByaWNodGlnLCBkaWUgQnVlY2hlciBzb2xsdGUgbWFuIGdlbGVzZW4gaGFiZW4sIGFiZXIgd2VubiBtb2VnbGljaCBpbQpvcmlnaW5hbApkaWUgdWViZXJ0cmFndW5nIGlzdCBmdWVyY2h0ZXJsaWNodCA7KQpkaWUgdWViZXJ0cmFndW5nIGlzdCBmdWVyY2h0ZXJsaWNodCA7KQoKRGVudGksIG1pdCBuZW0gRmVobGVyIGltIEZyb250ZW5kIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgVW5iZXJ1ZWhtdGVuIExldHplbiBXb3J0ZSAoSmltZGlncml6LCAxMy4gQXByIDE5OTcsIDIzOjQ1OjIyKToKCkRlciBFeC1FaGVtYW5uIGRlcyBUaWNUYWNUb2UtTWl0Z2xpZWRzIExlZSB0cmFmCmVzIGFtIGJlc3RlbiBhbHMgZXIgc2FndGU6CiBTY2hhdHosIG1hY2ggRHUgbGllYmVyIEthcnJpZXJlLCBpY2ggaGFlbmcgbGllYmVyCiB3b2FuZGVycyBydW0gdW5kIGxhc3MgZGllIEJlaW5lIGJhdW1lbG4uCgpKZEcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSaWNoaWUgKExpLCAxNC4gQXByIDE5OTcsIDExOjM5OjU2KToKfiMhIHJuPVNudWdnbGUgcnQ9ODYwNzIxMDE4IHJnPXdpdHplCn4jISB0aWQ9ODYwNzIxMDE4CkhtbSwga2xpbmd0IHdpZSBUb20gR2VyaGFyZHQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBTdXBlci1EQVUgLSBEdWVtbXN0ZXIgYW56dW5laG1lbmRlciBVc2VyIChTbHpmb3gsIDE1LiBBcHIgMTk5NywgMDk6MTg6MDApOgouLi4gIGVpbmVzIFRhZ2VzIGJlaSBkZXIgUEMtSG90bGluZToKClRlbGVmb246IEtsaW5nZWwsIGtsaW5nZWwuICAKSG90bGluZTogSG90bGluZSwgZ3V0ZW4gVGFnLiAgCkRBVTogICAgIEd1dGVuIFRhZywgbWVpbiBOYW1lIGlzdCBFcGVsLiBJY2ggaGFiZSBkYSBlaW4gUHJvYmxlbSBtaXQgCiAgICAgICAgIG1laW5lbSBDb21wdXRlci4KSG90bGluZTogV2VsY2hlcyBkZW5uLCBIZXJyIEVwZWw/CkRBVTogICAgIEF1ZiBtZWluZXIgVGFzdGF0dXIgZmVobHQgZWluZSBUYXN0ZS4KSG90bGluZTogV2VsY2hlIGRlbm4/CkRBVTogICAgIERpZSBFbmlraS1UYXN0ZSEKSG90bGluZTogV29mdWVyIGJyYXVjaGVuIFNpZSBkZW5uIGRpZXNlIFRhc3RlPwpEQVU6ICAgICBEYXMgUHJvZ3JhbW0gdmVybGFuZ3QgZGllc2UgVGFzdGUuCkhvdGxpbmU6IFdhcyBpc3QgZGFzIGRlbm4gZnVlciBlaW4gUHJvZ3JhbW0/CkRBVTogICAgIERhcyBrZW5uZSBpY2ggZ2FyIG5pY2h0LiBBYmVyIGVzIHdpbGwsIGRhIGljaCBkaWUgRW5pa2ktVGFzdGUKICAgICAgICAgZHJ1ZWNrZS4gSWNoIGhhYmUgc2Nob24gZGllIFNUUkctLCBkaWUgQUxULSB1bmQgZGllCiAgICAgICAgIEdyb3NzLU1hY2gtVGFzdGUgYXVzcHJvYmllcnQsIGFiZXIgZGEgdHV0IHNpY2ggbmljaHRzLgpIb3RsaW5lOiBXYXMgc3RlaHQgZGVubiBhdWYgSWhyZW0gTW9uaXRvcj8KREFVOiAgICAgRWluZSBCbHVtZW52YXNlLgpIb3RsaW5lOiBOZWluLCBpY2ggbWVpbmUsIGxlc2VuIFNpZSBtYWwgdm9yLCB3YXMgYXVmIElocmVtIE1vbml0b3Igc3RlaHQuCkRBVTogICAgIEhhaXNjaGtyaWVuIQpIb3RsaW5lOiBOZWluLCBIZXJyIEVwZWwsIHdhcyBhdWYgSWhyZW0gU2NoaXJtIHN0ZWh0LCBtZWluZSBpY2guCkRBVTogICAgIE1vbWVudCwgZGVyIGhhZW5ndCBhbiBkZXIgR2FyZGVyb2JlIC4uLgpIb3RsaW5lOiBIZXJyIEVwZWwgLi4uIQpEQVU6ICAgICBTbywgamV0enQgaGFiZSBpY2ggaWhuIGF1Zmdlc3Bhbm50IC4uLiBkYSBzdGVodCBhYmVyIG5pY2h0cyAKICAgICAgICAgZHJhdWYhCkhvdGxpbmU6IEhlcnIgRXBlbCwgc2NoYXVlbiBTaWUgbWFsIGF1ZiBJaHJlbiBCaWxkc2NoaXJtIHVuZCBsZXNlbiBTaWUKICAgICAgICAgbWlyIG1hbCBnZW5hdSB2b3IsIHdhcyBkYSBnZXNjaHJpZWJlbiBzdGVodC4KREFVOiAgICAgQWNoIHNvLCBTaWUgbWVpbmVuIC4uLiBvaCwgRW50c2NodWxkaWd1bmcuIERhIHN0ZWh0OgogICAgICAgICAiUGxlYXNlIHByZXNzIGFueSBrZXkgdG8gY29udGludWUhIgpIb3RsaW5lOiBBY2gsIFNpZSBtZWluZW4gZGllICJhbnkta2V5LVRhc3RlIi4gSWhyIENvbXB1dGVyIG1lbGRldCBzaWNoCiAgICAgICAgIGF1ZiBFbmdsaXNjaC4KREFVOiAgICAgTmVpbiwgd2VubiBkZXIgd2FzIHNhZ3QsIHBpZXBzdCBlciBudXIuCkhvdGxpbmU6ICAuLi4gIERydWVja2VuIFNpZSBtYWwgZGllIEVudGVyLVRhc3RlLgpEQVU6ICAgICBJc3NlcyB3YWhyISBKZXR6dCBnZWh0J3MuIERhcyBpc3QgYWxzbyBkaWUgRW5pa2ktVGFzdGUhIERhcwogICAgICAgICBrb2VubmVuIGRpZSBhYmVyIGF1Y2ggZHJhdWZzY2hyZWliZW4hIFZpZWxlbiBEYW5rIHVuZCBhdWYKICAgICAgICAgV2llZGVyaG9lcmVuIQpIb3RsaW5lOiAuLi4/Pz8/Pz8uLi4gQml0dGUsIGJpdHRlLCBrZWluZSBVcnNhY2hlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW0gQmlvbG9naWV1bnRlcnJpY2h0IChTbHpmb3gsIDE1LiBBcHIgMTk5NywgMTA6MTg6NDMpOgpEaWUgTGVocmVyaW4gZnJhZ3QgaW0gQmlvbG9naWV1bnRlcnJpY2h0OiBMaWViZSBLaW5kZXIsIHdhcyBpc3Qgd2Vpc3MgdW5kIGhhdAoyIEJlaW5lPwpNZWxkZXQgc2ljaCBrbGVpbiBFcm5hOiBFaW4gSHVobi4KTGVocmVyaW46IFJpY2h0aWcgbGllYmUgS2luZGVyLCBzZWhyIGd1dC4gRXMga29lbm50ZSBhYmVyIGF1Y2ggZWluZSBHYW5zIHNlaW4uCkxlaHJlcmluOiBXYXMgaXN0IHNjaHdhcnogdW5kIGhhdCA0IEJlaW5lPwpTY2h1ZWxlcjogRWluIEh1bmQuCkxlaHJlcmluOiAgUmljaHRpZyBsaWViZSBLaW5kZXIsIHNlaHIgZ3V0LiBFcyBrb2VubnRlIGFiZXIgYXVjaCBlaW5lIEthdHplCnNlaW4uCkZyYWd0IGtsZWluIEZyaXR6Y2hlbjogRnJhdSBMZWhyZXJpbiwgd2FzIGlzdCBoYXJ0IHVuZCB0cm9ja2VuIHdlbm4gbWFuIGVzCnJlaW5zdGVja3QgdW5kIGtsZWluIHVuZCBnbGl0c2NoaWcgd2VubiBtYW4gZXMgcmF1c25pbW10PwpEYXJhdWZoaW4gYmVrb21tdCBrbGVpbiBGcml0emNoZW4gdm9uIGRlciBMZWhyZXJpbiBlaW5lIGdla25hbGx0LgpLbGVpbiBGcml0emNoZW46IFJpY2h0aWcsIEZyYXUgTGVocmVyaW4sIHNlaHIgZ3V0LiBFcyBrb2VubnRlIGFiZXIgYXVjaCBlaW4KS2F1Z3VtbWkgc2Vpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0dWRlbnRlbndpdHplIChEaWVkZXIsIDE1LiBBcHIgMTk5NywgMTQ6MzI6NDIpOgpCZWltIFBoaWxvc29waGllZXhhbWVuIHN0YW5kIHVudGVyIGFuZGVyZW4gYXVjaCBmb2xnZW5kZXMKYXVmIGRlbSBQcnVlZnVuZ3Nib2dlbjoiV2VubiBkaWVzIGVpbmUgRnJhZ2UgaXN0LApiZWFudHdvcnRlbiBTaWUgc2llLiIKRWluZSBkZXIgQW50d29ydGVuOiJXZW5uIGRpZXMgZWluZSBBbnR3b3J0IGlzdCwgYmV3ZXJ0ZW4KU2llIHNpZS4iIAoKCgpBbSBBbmZhbmcgZGVyIEtsYXVzdXIgc2FndCBkZXIgUHJvZmVzc29yOgoiU2llIGhhYmVuIGdlbmF1IDIgU3R1bmRlbiBaZWl0LiBEYW5hY2ggd2VyZGUgaWNoIGtlaW5lCndlaXRlcmVuIEFyYmVpdGVuIG1laHIgYW5uZWhtZW4uIgpOYWNoIDIgU3R1bmRlbiBydWZ0IGRlciBQcm9mZXNzb3I6ICJTY2hsdXNzLCBtZWluZSBEYW1lbgp1bmQgSGVycmVuISIKVHJvdHpkZW0ga3JpdHplbHQgZWluIFN0dWRlbnQgd2llIHdpbGQgd2VpdGVyLi4uIEVpbmUgaGFsYmUKU3R1bmRlIHNwYWV0ZXIsIGRlciBQcm9mZXNzb3IgaGF0IGRpZSBlaW5nZXNhbW1lbHRlbgpBcmJlaXRlbiB2b3Igc2ljaCBsaWVnZW4sIHdpbGwgYXVjaCBkZXIgbGV0enRlIHNlaW4gSGVmdCBub2NoCmFiZ2ViZW4sIGFiZXIgZGVyIFByb2Zlc3NvciBsZWhudCBhYi4gQmxhZXN0IHNpY2ggZGVyIFN0dWRlbnQKYXVmOgoiSGVyciBQcm9mZXNzb3IuLi4gV2lzc2VuIHNpZSBlaWdlbnRsaWNoIHdlbiBzaWUgdm9yIHNpY2gKaGFiZW4/IgoiTmVpbi4uLiIgbWVpbnQgZGVyIFByb2YuCiJHcm9zc2FydGlnIiBzYWd0ZSBkZXIgU3R1ZGVudCx1bmQgc2Nob2Igc2VpbmUgQXJiZWl0IG1pdHRlbgppbiBkZW4gU3RhcGVsLi4uIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBTdXBlci1EQVUgLSBEdWVtbXN0ZXIgYW56dW5laG1lbmRlciBVc2VyIChDYXVubywgMTUuIEFwciAxOTk3LCAxNDozODowMyk6Cn4jISBybj1TbHpmb3ggcnQ9ODYxMDg4NjgwIHJnPXdpdHplCn4jISB0aWQ9ODYxMDg4NjgwCk9obmUgV2l0ejoKRGllIEdlc2NoaWNodGUgbWl0IGRlciBBbnktS2V5LVRhc3RlIGlzdCBhbiB1bnNlcmVyIFVuaSB3aXJrbGljaCBlaW5tYWwKcGFzc2llcnQuIE9iIGRlciBQcm9mLCBkZXIgZGFzIFByb2JsZW0gaGF0dGUsIGRlbiBBbnJ1ZiBiZWkgc2VpbmVtIEFzc2kKdWViZXJsZWJ0IGhhdCwgaXN0IG1pciBhbGxlcmRpbmdzIG5pY2h0IGJla2FubnQuCgpXZWl0ZXJtYWNoZW4uCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgU3VwZXItREFVIC0gRHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlciAoQ2F1bm8sIDE1LiBBcHIgMTk5NywgMTQ6NDA6MzIpOgp+IyEgcm49Q2F1bm8gcnQ9ODYxMTA3ODgzIHJnPXdpdHplCn4jISB0aWQ9ODYxMDg4NjgwCkljaCBoYWJlIHZlcmdlc3NlbiB6dSBzY2hyZWliZW4sIGRhc3MgYmVzYWd0ZXIgQW5ydWYgbWl0dGVuIGluIGRlciBOYWNodApnZXRhZXRpZ3Qgd3VyZGUgLi4uLgoKQy4gTm8gYXVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgU3VwZXItREFVIC0gRHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlciAoRnl0LCAxNS4gQXByIDE5OTcsIDE1OjEyOjU1KToKfiMhIHJuPUNhdW5vIHJ0PTg2MTEwNzg4MyByZz13aXR6ZQp+IyEgdGlkPTg2MTA4ODY4MAoKSm8sIGRpZSBlbmlraS1UYXN0ZSBpc3Qgbm9ybWFsZXJ3ZWlzZSBkaWUgNSBhdWYgZGVyIG51bWVyaXNjaGVuIFRhc3RhdXIuCkRpZXNlIEF1c3NhZ2UgaGFiIGljaCBzY2hvbiBMZXV0ZSBsaXZlIHNjaGx1Y2tlbiBzZWhlbiA7LSkKCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVuZCBub2NoIGVpbiBwYWFyLi4uIChEaWVkZXIsIDE1LiBBcHIgMTk5NywgMTU6MTY6MDEpOgoiTWFjaHQgZGVyIEJVTkQgc2VsYnN0c3RhZW5kaWc/IiAtICJLZWluZSBBaG51bmcsIG1hbApkZW4gU3BpZXNzIGZyYWdlbi4iCiJNYWNodCBkZXIgQlVORCBnbGVpY2hndWVsdGlnPyIgLSAiSXMgbWlyIGRvY2ggZWdhbCEiCiJNYWNodCBkZXIgQlVORCBnZXdhbHR0YWV0aWc/IiAtICJXaWxsc3QgZHUgZWluZSBhdWYncyBNYXVsLApNYW5uPyIKCgpGcmF1IE18bGxlciBzYWd0IHp1IGlocmVtIE1hbm46ICJJY2ggbXVfIGRpciB3YXMgZ2VzdGVoZW4sCmljaCBiaW4gZmFyYmVuYmxpbmQuIiBBbnR3b3J0ZXQgZGVyIE1hbm46ICJJY2ggbXVfIGRpciBhdWNoCndhcyBnZXN0ZWhlbiwgaWNoIGJpbiBuaWNodCBhdXMgR2VyYSwgc29uZGVybiBhdXMgR2hhbmEuIiAKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIFN1cGVyLURBVSAtIER1ZW1tc3RlciBhbnp1bmVobWVuZGVyIFVzZXIgKFdhcmdvbiwgMTUuIEFwciAxOTk3LCAxNTozMTozMik6Cn4jISBybj1GeXQgcnQ9ODYxMTA5OTc1IHJnPXdpdHplCn4jISB0aWQ9ODYxMDg4NjgwCkhtLCBoaWVzcyBlcyBuaWNodCBhdWNoIG1hbCwgZGFzcyAnZW5pa2knIGVpbmUgc3ByYWNobGljaGUgVW1zY2hyZWlidW5nIGZ1ZXIKJ05FLUtleScgd2FlcmUsIGFsc28gZGllIFRhc3RlIGluIGRlciBub3Jkb2VzdGxpY2hzdGVuIFBvc2l0aW9uIGF1ZiBkZXIKVGFzdGF0dXI/CkplIG5hY2ggVGFzdGF0dXJsYXlvdXQgd2FlcmUgZGFzIHdvaGwgZGFzICctJyBhdWYgZGVtIE51bW1lcmJsb2NrLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGVyIFN1cGVyLURBVSAtIER1ZW1tc3RlciBhbnp1bmVobWVuZGVyIFVzZXIgKFN1c2hpLCAxNS4gQXByIDE5OTcsIDE4OjIyOjA2KToKfiMhIHJuPVdhcmdvbiBydD04NjExMTEwOTIgcmc9d2l0emUKfiMhIHRpZD04NjEwODg2ODAKSWNoIHdlaXNzIG5pY2h0IG1laHIgZ2VuYXUsIHdvLCBhYmVyIGRpZSBNJCBQcm9ncmFtbWllcmVyIGhhYmVuIGFscyBXaXR6ICg/ISkKZWluZSBzb2xjaGUgVGFzdGUgenVtIEF1c2R1Y2tlbiwgYXVzc2NobmVpZGVuIHVuZCBhdWZrbGViZW4gaW4gV2luOTUgZWluZ2ViYXV0CjotKQoKClN1c2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEZXIgU3VwZXItREFVIC0gRHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlciAoUm9jaHVzLCAxNS4gQXByIDE5OTcsIDE4OjI3OjUwKToKfiMhIHJuPVN1c2hpIHJ0PTg2MTEyMTMyNiByZz13aXR6ZQp+IyEgdGlkPTg2MTA4ODY4MApFcyBzaW5kIGdsZWljaCBEUkVJIHNvbGNoZSBUYXN0ZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBEZXIgU3VwZXItREFVIC0gRHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlciAoQWNyaW1vbiwgMTUuIEFwciAxOTk3LCAxOTo0MDoxNCk6Cn4jISBybj1Sb2NodXMgcnQ9ODYxMTIxNjcwIHJnPXdpdHplCn4jISB0aWQ9ODYxMDg4NjgwCldlbm4gZGVyIERhdSBzY2hvbiBrZWluIEVuZ2xpc2NoIGthbm4gLSBrb2VubnRlIGVyIGVuZ2xpc2NoLCBkYW5uIGhhZXR0ZSBlcgpkaWUgQXVzc2FnZSB2ZXJzdGFuZGVuIC0gZGFubiBoYWV0dGUgZXIgbmljaHQgZGllICJFbmlraSItVGFzdGUsIHNvbmRlcm4gZGllCiJBbnVla2V1ZSItVGFzdGUgZ2VzdWNodC4KQmVydWVja3NpY2h0aWd0IGRpZXMgYml0dGUgYmVpIGRlciBuYWVjaHN0ZW4gV2llZGVyaG9sdW5nIGRpZXNlbiBXaXR6ZXMuCgpBdXN6ZXJkZW0gLSB3aWUga29tbXQgZGVyIERhdSB2b24gIm1lbGRldCBzaWNoIiBhdWYgInNhZ3QiPwoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBEZXIgU3VwZXItREFVIC0gRHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlciAoRnl0LCAxNS4gQXByIDE5OTcsIDE5OjQxOjU1KToKfiMhIHJuPUFjcmltb24gcnQ9ODYxMTI2MDE0IHJnPXdpdHplCn4jISB0aWQ9ODYxMDg4NjgwCgpNYW4ga2FubiBuYWNoIHdlbmlnZW4gV29jaGVuIEVuZ2xpc2h1bnRlcnJpY2h0IHdlc2VudGxpY2ggbWVociBXb3J0ZQpsZXNlbiB1bmQgaW4gZXR3YSByaWNodGlnIGF1c3NwcmVjaGVuLCBhbHMgbWFuIGJpcyBkYWhpbiBnZWxlcm50IGhhdC4KCkZ5dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IERlciBTdXBlci1EQVUgLSBEdWVtbXN0ZXIgYW56dW5laG1lbmRlciBVc2VyIChXb29keSwgMTYuIEFwciAxOTk3LCAwMTozMDo1Myk6Cn4jISBybj1Sb2NodXMgcnQ9ODYxMTIxNjcwIHJnPXdpdHplCn4jISB0aWQ9ODYxMDg4NjgwCkFiZXIgZXMgZmVobHQgaW1tZXIgbm9jaCBlaW5lIFNob3J0Y3V0IFRhc3RlIGZ1ZXIgZGllIGFtIGhhZXVmaWdzdGVuCmJlbnV0enRlIEtvbWJpbmF0aW9uIGMtYS1kLCBvZGVyPwoKd29vZHkuLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VyYWRlIGltIFJhZGlvLi4uIChBbmd1cywgMTYuIEFwciAxOTk3LCAxMzo0MDo1MCk6CldhcnVtIGVudGhhZWx0IEJ1dHRlciBzb3ZpZWwgRmV0dD8gLi4uCgoKLi4uIEtsYXIsIGRhbWl0J3MgbmljaHQgc28gcXVpZXRzY2h0IGJlaW0gQnJvdGUgc2NobWllcmVuLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBEZXIgU3VwZXItREFVIC0gRHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlciAoR3JpbW1ib3JuLCAxNi4gQXByIDE5OTcsIDE3OjE3OjIxKToKfiMhIHJuPVdvb2R5IHJ0PTg2MTE0NzA1MyByZz13aXR6ZQp+IyEgdGlkPTg2MTA4ODY4MApXaWVzbywgbWVpbiBSZWNobmVyIGhhdCBzbyBlaW5lLiBJc3QgYWxsZXJkaW5ncyBldHdhcyB2ZXJzdGVja3QsIGFtIEdlaGFldXNlLAp1bmQgZXMgc3RlaHQgInJlc2V0IiBkcmFuLiBVbmQgd2VubiBpY2ggZGFubiBlaW5lbiBUZWUgbWFjaGUgdW50ZXJkZXNzZW4gaGF0CmVyIGJyYXYgTGludXggZ2Vib290ZXQsIGRhIGJyYXVjaGUgaWNoIGRpZXNlIFRhc3RlIGVpZ2VudGxpY2ggbmljaHQgbWVoci4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCBoYXQgaGllciBrZWluZSBMb2VzY2hyZWNodGUgdW5kIHNjaHJlaWJ0IGRhbm4gYXVjaApzZWxiZXIga2VpbmUgV2l0emUuIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VidXJ0c3RhZ3NrYXJ0ZSAoWWFudHJvLCAxNy4gQXByIDE5OTcsIDA3OjU0OjQ5KToKSGksIApnZXN0ZXJuIGVycmVpY2h0ZSB1ZWJlciBkaXZlcnNlIFVtd2VnZSBkaWUgR2VidXJ0c3RhZ3NrYXJ0ZSBlaW5lcyBtZWluZXIKYmVzdGVuIEZyZXVuZGUgYXVzIEF1c3RyYWxpZW4gbWVpbiBIZWltIHVuZCBkYSBtdXNzdCBpY2ggZG9jaCBmb2xnZW5kZSBLYXJ0ZQpsZXNlbjoKCkZsdWZmeSB3dWZmeSBidW5ueSB3YXMgd2Fsa2luZyB0aHJvdWdoIHRoZSB3b29kcyBvbmUgZGF5LCB3aGVuIGhlIG1ldCBjdWRkbHkKd3VkZGx5IHRlZGR5LiAiSGVsbG8gY3VkZGx5IHd1ZGRseSB0ZWRkeSIsIHNhaWQgdGhlIGZsdWZmeSB3dWZmeSBidW5ueSwgIndoeQpkb24ndCB3ZSBzZW5kIGEgY3VkZGx5IHd1ZGRseSBmbHVmZnkgd3VmZnkgYmlydGhkYXkgbWVzc2FnZSB0byBvdXIgZXh0cmEKc3BlY2lhbCBmcmllbmQgLi4uPyIKIlBJU1MgT0ZGISEhIiBzYWlkIGN1ZGRseSB3dWRkbHkgdGVkZHkgKHdobyBoYWQgYSBob25reSB3b25reSBoYW5nb3ZlcikKCllhbnRybwoKUC5TLjogTGVpZGVyIGhhYiBpY2ggbmNpaHQgYWxsZSBkaWVzZXIgYWRqZWN0aXZlIGluIG1laW5lbSBlbmdsaXNoZHVkZWwKZ2VmdW5kZW4uLi4ga2FubiBtaXIgZGFzIG1hbCBlaW5lciBwZXIgbWFpbCBhbGxlcyBXT0VSVExJQ0ggdWViZXJzZXR6ZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbGVmYW50IChCbG9vZHloYXJyeSwgMTguIEFwciAxOTk3LCAxMToyMzoxOCk6CldpZSBuZW5udCBtYW4gZGFzIEdlc2NobGVjaHRzdGVpbCBiZWltIG1hZW5ubGljaGVuIEVsZWZhbnRlbj8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpEaWNrdGllcmdlcmFldAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTml4IE5ldWVzIGF1ZiBkZXIgV2VsdC4gKEZ5dCwgMTguIEFwciAxOTk3LCAxMjowMzo0NCk6CgpHZXJhZGUgZ2VzZWhlbjoKCldoeSBpcyA2IGFmcmFpZCBvZiA3PyAgIC0tLS0tLS0tICBCZWNhdXNlIDcgOCA5LgoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29taXNjaGUgVmVydGVpbGVyLi4uLiAoWWFudHJvLCAyMS4gQXByIDE5OTcsIDA4OjI5OjAyKToKCkViZW4gaGFiIGljaCBpbiBkZW4gbmV3c2JyZXR0ZXJuIGVpbmVuIG5ldHRlbiBhcnRpa2VsIGdlZnVuZGVuIG1pdCBkZW0gdGl0ZWw6CgoiWW91bmcgdGVlbmFnZSBnaXJscyB0aGF0IGZ1Y2sgYW5kIHN1Y2sgY29jayIgdW5kIGRhbm4gd3d3YWRyZXNzZS4uLiAKClN0YW5kIGltIGJyZXR0ICJmaWRvLmdlci5mYXN0Zm9vZCIuLi4uIG11c3MgaWNoIG1pciBkYWJlaSB3YXMgZGVua2VuPz8gOikKCllhbnRybwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtvbWlzY2hlIFZlcnRlaWxlci4uLi4gKEdyaW1tYm9ybiwgMjEuIEFwciAxOTk3LCAxNTo1OTo1NCk6Cn4jISBybj1ZYW50cm8gcnQ9ODYxNjA0MTQyIHJnPXdpdHplCn4jISB0aWQ9ODYxNjA0MTQyClNpY2hlciwgZGVuIEFuYmlldGVyIHNvbGx0ZSBtYW4genUgSGFtYnVyZ2VybiB2ZXJhcmJlaXRlbi4uLgoKSGllciBlaW4gbmV0dGVyLCAicmFzc2lzdGlzY2hlciIgV2l0ejoKCiJIYXN0IER1IHdhcyBnZWdlbiBNZXRyb25ldC0gdW5kIEFPTC1Vc2VyPyIKIktsYXI6IFNjaGxhZ3N0b2NrLCBNRzsgR3JhbmF0d2VyZmVyLi4uIgoiTmVpbiwgaWNoIG1laW5lLCB3aWUgZmluZGVzdCBEdSBzaWU/IgoiSW5mcmFyb3QtU3VjaGdlcmFldCwgVGVsZXNrb3AsIFVlYmVyd2FjaHVuZ3NrYW1lcmFzLi4uIgoiSGFjaCBHb3R0LCB3YXMgbWFjaHN0IER1IERpciBhdXMgaWhuZW4sIG1laW4gaWNoPyIKIkFjaHNvb28uLi4gbWVpc3RlbnMgQmV0dHZvcmxlZ2VyIHVuZCBXYW5kdGVwcGljaGUuIgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaWMsIFRhYywgVG9lLiAoQmxvb2R5aGFycnksIDIzLiBBcHIgMTk5NywgMDE6MzA6MjkpOgpVbmJlc3RhZXRpZ3RlbiBHZXJ1ZWNodGVuIHp1IEZvbGdlLCBoYXQgZGllIGVoZW1hbGlnZSBHcnVwcGUgVGljLCBUYWMsIFRvZQpkb2NoIGlocmVyIEtsYWdlIHp1cnVlY2tnZXpvZ2VuLiBOdW4gd2VyZGVuIHNpZSBkZW1uYWVjaHN0IHVudGVyIGVpbmVuCmFuZGVyZW4sIG5ldWVyZW4gVGl0ZWwgYXVmIGRpdmVyc2VuIENvdmVyIHZvbiBDRHMgdW5kIENhc3NldHRlbiB6dSBmaW5kZW4Kc2Vpbi4gSWhyIG5ldWVyIE5hbWUgaXN0OgoKICAgVGljaywgVHJpY2sgdW5kIFRyYWNrCgpXZWl0ZXJlIEtsYWdlbiBzaW5kIHp1IGVyd2FydGVuLgoKYmgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUaWMsIFRhYywgVG9lLiAoTGF1cmluLCAyMy4gQXByIDE5OTcsIDA2OjA3OjI3KToKfiMhIHJuPUJsb29keWhhcnJ5IHJ0PTg2MTc1MTgyOSByZz13aXR6ZQp+IyEgdGlkPTg2MTc1MTgyOQpIbW0sIGRpZSBHcnVwcGUgVGljLCBUYWMsIFRvZSBoYXQgZG9jaCBuaWUgZ2VrbGFndCwgZGllIHNpbmQgbnVyCnZlcmtsYWd0IHdvcmRlbiAhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGljLCBUYWMsIFRvZS4gKEJsb29keWhhcnJ5LCAyMy4gQXByIDE5OTcsIDA4OjExOjQ4KToKfiMhIHJuPUxhdXJpbiBydD04NjE3Njg0NDcgcmc9d2l0emUKfiMhIHRpZD04NjE3NTE4MjkKVW5kIHdvIGlzdCBoaWVyIGRlciBXaXR6IG9kZXIgdmVyc3RlaGUgaWNoIGRlbiB3aWVkZXIgbmljaHQ/IDpPKQoKT2Jqb2tlOgppbnQgYVsxODE3XTsgbWFpbih6LHAscSxyKXsgZm9yKHA9ODA7cStwLTgwCjtwLT0yKmFbcF0pZm9yKHo9OTt6LS07KXE9MyYocj1nZXRwaWQoKStyKjU3KS83LHE9cT9xLTE/cS0yPzEtcCU3OT8tMTowOnAlNzktNwo3Cj8xOjA6cDwxNjU5Pzc5OjA6cD4xNTg/LTc5OjAscT8hYVtwK3EqMl0/YVtwKz1hW3ArPXFdPXFdPXE6MDowOwpmb3IoO3ErKy0xODE3OylwcmludGYocSU3OT8iJWMiOiIlY1xuIiwiICMiWyFhW3EtMV1dKTt9CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGljLCBUYWMsIFRvZS4gKFNpZG9saW4sIDIzLiBBcHIgMTk5NywgMTE6NDE6NDcpOgp+IyEgcm49Qmxvb2R5aGFycnkgcnQ9ODYxNzUxODI5IHJnPXdpdHplCn4jISB0aWQ9ODYxNzUxODI5ClF1YXJrLgpEaWUgaGVpc3NlbiBkb2NoIGpldHp0OgoKClBpZmYsIFBhZmYsIFB1ZmYuLi4gOy0pCgpBbmRlcmVuIEdlcnVlY2h0ZW4genVmb2xnZSBoZWlzc2VuIHNpZSBhYiBzb2ZvcnQ6CgpUaWMgVGFjIFRvdC4KCgoKU2lkb2xpbiwgR2VoYWVzc2lnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVGljLCBUYWMsIFRvZS4gKEFuYXRvbCwgMjMuIEFwciAxOTk3LCAxMTo1NToyMCk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NjE3NzU5MDggcmc9d2l0emUKfiMhIHRpZD04NjE3NTE4MjkKQWxzbyBpY2ggdmVyc3RlaGUgaWhuIG5pY2h0IDopCkNvbXBpbGllcnQgZ2lidCBkYXMgZ2FuemUgc29ldHdhcyB3aWUgZWluIExhYnlyaW50aCBhdXMsIHppZW1saWNoIHp1ZmFlbGxpZwoodm9uIGRlciBQcm96ZXNzSUQgYWJoYWVuZ2lnKS4gU2llaHQgd2l0emlnIGF1cywgYWJlciBzb25zdC4uLiAqenVjayoKU2Nod2VyIHZvbiBCZWdyaWZmLApBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUaWMsIFRhYywgVG9lLiAoU2lkb2xpbiwgMjMuIEFwciAxOTk3LCAxMTo1ODowMCk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NjE3NzU5MDggcmc9d2l0emUKfiMhIHRpZD04NjE3NTE4MjkKdGVzdC5jYzoxOiBgeicgd2FzIG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCnRlc3QuY2M6MTogYHAnIHdhcyBub3QgZGVjbGFyZWQgaW4gdGhpcyBzY29wZQp0ZXN0LmNjOjE6IGBxJyB3YXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2NvcGUKdGVzdC5jYzoxOiBgcicgd2FzIG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCnRlc3QuY2M6MTogd2FybmluZzogQU5TSSBDKysgZm9yYmlkcyBkZWNsYXJhdGlvbiBgbWFpbicgd2l0aCBubyB0eXBlIG9yCnN0b3JhZ2UgY2xhc3MKdGVzdC5jYzoxOiB3YXJuaW5nOiBpbml0aWFsaXplciBsaXN0IGJlaW5nIHRyZWF0ZWQgYXMgY29tcG91bmQgZXhwcmVzc2lvbgp0ZXN0LmNjOjE6IHN5bnRheCBlcnJvciBiZWZvcmUgYHsnCgpUamEuIEtMYXBwdCBuaWNoLiA7LSkKClNpZG9saW4uIFZlcnN0ZWggc29uIEtyYW0gc293aWVzbyBuaWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVGljLCBUYWMsIFRvZS4gKEFuYXRvbCwgMjMuIEFwciAxOTk3LCAxMTo1OTozOCk6Cn4jISBybj1TaWRvbGluIHJ0PTg2MTc4OTQ4MCByZz13aXR6ZQp+IyEgdGlkPTg2MTc1MTgyOQpOaW1tIGRlbiBnY2MsIGRhIHNpZWhzdCBEdSBudXIgYmVpIC1XYWxsIGVpbiB3ZW5pZyBNdWVsbCBhIGxhCmJsYS5jOjE6IHdhcm5pbmc6IHJldHVybi10eXBlIGRlZmF1bHRzIHRvIGBpbnQnCmJsYS5jOiBJbiBmdW5jdGlvbiBgbWFpbic6CmJsYS5jOjI6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIGBnZXRwaWQnCmJsYS5jOjQ6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIGBwcmludGYnCmJsYS5jOjQ6IHdhcm5pbmc6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KCkFuc29uc3RlbiBnZWh0J3MgOy0pCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRpYywgVGFjLCBUb2UuIChNYXNvLCAyMy4gQXByIDE5OTcsIDE0OjEwOjA4KToKfiMhIHJuPUJsb29keWhhcnJ5IHJ0PTg2MTc3NTkwOCByZz13aXR6ZQp+IyEgdGlkPTg2MTc1MTgyOQo+IC8qIC4uLiAqLyBtYWluKHoscCxxLHIpIC8qIC4uLiAqLwoKV2FzIHNvbGwgYW4gZWluZXIgaWxsZWdhbGVuIERlZmluaXRpb24gdm9uIG1haW4oKSBzbyBsdXN0aWcgc2Vpbj8KCiAgICAgICAgICAgIE1hc28uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVGljLCBUYWMsIFRvZS4gKEFjcmltb24sIDI0LiBBcHIgMTk5NywgMTc6NTQ6NDIpOgp+IyEgcm49TWFzbyBydD04NjE3OTc0MDggcmc9d2l0emUKfiMhIHRpZD04NjE3NTE4MjkKTmFqYSwgbWFuY2htYWwgaXN0IGVzIGViZW4ga2VpbiBMYWJ5cmludGgsIHNvbmRlcm4gZWluIEZlbGQgYXVzIGxhdXRlciAjCgpGdW5rdGlvbmllcnQgd29obCBub2NoIG5pY2h0IHNvIDEwMCVpZyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjMgbnVucyBpbiBoZWF2ZW4gKEpha2EsIDI3LiBBcHIgMTk5NywgMjM6MTQ6MDcpOgpUaHJlZSBudW5zIGRpZWQgYW5kIHN0b29kIGF0IHRoZSBwZWFybHkgZ2F0ZXMgb2YgaGVhdmVuLiBQZXRydXMgd2VsY29tZWQgdGhlbQphbmQgc2FpZDogIkluIG9yZGVyIHRvIGVudGVyIGhlYXZlbiwgZWFjaCBvbmUgb2YgWW91IGhhcyB0byBhbnN3ZXIgYSBxdWVzdGlvbi4KSWYgWW91IGFuc3dlciBpdCByaWdodCwgWW91J2xsIGJlIGFsbG93ZWQgdG8gZW50ZXIgZXRlcm5hbCBoYXBwaW5lc3MuIgpQZXRydXMgdHVybmVkIHRvIHRoZSBmaXJzdCBudW46CiJXaG8gd2FzIHRoZSBmaXJzdCBtYW4gb24gZWFydGg/IgpUaGUgbnVuIHRoaW5rcyBhIHdoaWxlIGFuZCBhbnN3ZXJzOgoiQWRhbS4iCktsaW5nZWxpbmcsIHRoZSBoZWF2ZW5seSBiZWxscyByYW5nLCB0aGUgZ2F0ZXMgc3d1bmcgd2lkZSBvcGVuLCB0aGUgbnVuIGVudGVycwpoZWF2ZW4uClBldHJ1cyB0dXJuZWQgdG8gdGhlIHNlY29uZCBudW46CiJXaG8gd2FzIHRoZSBmaXJzdCB3b21hbiBvbiBlYXJ0aD8iClRoZSBudW4gdGhpbmtzIGEgd2hpbGUgYW5kIGFuc3dlcnM6CiJFdmUuIgpLbGluZ2VsaW5nLCB0aGUgaGVhdmVubHkgYmVsbHMgcmluZywgdGhlIGdhdGUgc3dpbmdzIHdpZGUgb3BlbiwgdGhlIG51biBlbnRlcnMKaGVhdmVuLgpQZXRydXMgZmluYWxseSB0dXJucyB0byB0aGUgdGhpcmQgbnVuOgoiV2hhdCB3YXMgdGhlIGZpcnN0IHRoaW5nIEV2ZSBzYWlkIHRvIEFkYW0/IgpUaGUgbnVuIHRoaW5rcyBhIHdoaWxlLgpUaGUgbnVuIHRoaW5rcyBzb21lIHNvbWUgbW9yZS4KVGhlIG51biB0aGlua3MgcmVhbGx5IGhhcmQuClNoZSBmaW5hbGx5IHNheXM6CiJCb3ksIHRoYXQncyBhIGhhcmQgb25lLi4uLiIKS2xpbmdlbGluZywgdGhlIGhlYXZlbmx5IGJlbGxzIHJpbmcsIHRoZSBnYXRlIHN3aW5ncyB3aWRlIG9wZW4sIHRoZSBudW4gZW50ZXJzCmhlYXZlbi4KCgpIYWJlIG5vY2gga2VpbmUgYWRhZXF1YXRlIFVlYmVyc2V0enVuZyBnZWZ1bmRlbi4uLjotKSkKSmFrYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDMgbnVucyBpbiBoZWF2ZW4gKEJhYm9vbiwgMjguIEFwciAxOTk3LCAwOToyOToxMSk6Cn4jISBybj1KYWthIHJ0PTg2MjE3NTY0NyByZz13aXR6ZQp+IyEgdGlkPTg2MjE3NTY0NwpIbSwgd2llIHdhZXJzIGRlbm4gbWl0OiAiTWVuc2NoLCBkYXMgaXN0IGFiZXIgZWluIGRpY2tlcyBEaW5nLiIgOi0pCgpCYWJvb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1pdHRlbHByYWVjaHRpZyAoRnl0LCAyOC4gQXByIDE5OTcsIDEyOjExOjMyKToKUHJpZXN0ZXIgaW4gZGVyIEtpcmNoZToKRXIgaXQgc2VpbiBCcm90LCBiZXJnaWJ0IHNpY2ggaGludGVyaGVyIHNvZm9ydCB1bmQgcGFwcHQgc2ljaCBkZW4gQnJlaQp1bnRlciBkaWUgQXJtZS4gRGllIExldXRlIHNjaGF1ZW4gaWhuIG5hdHJsaWNoIGV0d2FzIHNlbHRzYW0gYW4gLSBkYQpyZWNodGZlcnRpZ3QgZXIgc2ljaDoKIkluIGRlciBCaWJlbCBzdGVodDogRHUgc29sbHN0IGRhcyBCcm90IGJyZWNoZW4sIHVuZCB1bnRlciBkZW4gQXJtZW4KdmVydGVpbGVuLi4uIgoKRnl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IG1pdHRlbHByYWVjaHRpZyAoUXVlbmdpc3R1LCAyOS4gQXByIDE5OTcsIDE0OjI3OjM4KToKfiMhIHJuPUZ5dCBydD04NjIyMjIyOTIgcmc9d2l0emUKfiMhIHRpZD04NjIyMjIyOTIKVWViZXJzZXR6dW5nPwoKV2llIHdhZXJlIGVzIG1pdDoKIkRhcyBpc3QgYWJlciAnbmUgaGFydGUgTnVzcy4iCgpPa2F5LCBpY2ggZ2ViJyB6dSB2b24gZGVyIEFuYXRvbWllIGhlciBpc3QgZGFzIGVpbiBTdHVlY2sgZGFuZWJlbiwgYWJlcgp3ZW5pZ3N0ZW5zIGJsZWlidCdzIGVpbiBXb3J0c3BpZWwgOy0pCgpHcnVzcywgUXVlbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaG11dHppZyAoQXJrLCAyOS4gQXByIDE5OTcsIDIxOjAyOjAwKToKCkVpbiBBbGtvaG9saWtlciwgZWluIFJhdWNoZXIgdW5kIGVpbiBTY2h3dWxlciBrb21tZW4gaW4gZGVuIEhpbW1lbC4KUGV0cnVzIG1laW50OgoKJ0ljaCBrYW5uIEV1Y2ggbnVyIGVpbmxhc3Nlbiwgd2VubiBpaHIgZWluZW4gbGV0enRlbiBUZXN0IGJlc3RlaHQuCiBHZWh0IGRpZXNlbiBXZWcnLCBkYWJlaSBkZXV0ZXQgZXIgYXVmIGVpbmVuIGR1bmtsZW4gUGZhZCBuZWJlbiBkZW0KSGltbWVsc3RvciwKJ3VuZCB2ZXJsYXNzdCBpaG4gbmljaHQsIGRlbm4gd2VubiBpaHIgaWhuIHZlcmxhc3N0LCBmaW5kZXQgaWhyIGlobgogbmllIG1laHIgd2llZGVyIHVuZCBzZWlkIHZlcmxvcmVuLicKClVuZCBkaWUgZHJlaSBTdWVuZGVyIHpvZ2VuIGZyb2hlbiBNdXRlcyBsb3MuCgpEYSBzdGVodCBhYnNlaXRzIGRlcyBkdW5rbGVuIFBmYWRlcyBlaW4gZ3Jvc3NlcyBHbGFzIFdoaXNreS4KRGVyIEFsa29ob2xpa2VyIHN0YXJydCBhbmdlc3RyZW5ndCBkYXJhdWYsIHNjaGxpZXNzbGljaCB2ZXJsYWVzc3QgZXIgbWl0IGVpbmVtClNjaHVsdGVyenVja2VuIGRlbiBQZmFkLCB1bSBzaWNoIGRlbiBTdG9mZiBlaW56dXZlcmxlaWJlbi4KCkRpZSBhbmRlcmVuIGJlaWRlbiB3YW5kZXJuIHdlaXRlci4KCkRhIGZpbmRlbiBzaWUgZ2xlaWNoIG5lYmVuIGRlciBTdHJlY2tlIGVpbmUgWmlnYXJldHRlIGxpZWdlbi4KCkRhIHNwcmljaHQgZGVyIFNjaHd1bGU6CgonTWFjaCBqZXR6dCBrZWluZW4gRmVobGVyLCBzb25zdCBoYWJlbiB3aXIgYmVpZGUgdmVybG9yZW4uJwoKCgogICAgICAgICAgICAgICoqKkFSSyp0aGUqTWFnbmlmaWNlbnQqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpob3RsaW5lIChRdWFzaW1vZG8sICA2LiBNYWkgMTk5NywgMTE6NTc6MTcpOgpHZXJhZGUgYXVmIGRlciBNUy1Ib3RsaW5lOgoKVW5zZXIgU3lzdGVtYWRtaW5pc3RyYXRvciBiZXJpY2h0ZXQgdm9uIE5ULVNlcnZlci1Qcm9ibGVtZW4gKHdhcyBhdWNoIHNvbnN0KQpEaWUgQW50d29ydDogSGllciBsaWVndCB3YWhyc2NoZWlubGljaCBlaW4gSGFyZHdhcmUtIG9kZXIgU29mdHdhcmVwcm9ibGVtIHZvci4KCkFiZXIgbnVyIHdhaHJzY2hlaW5saWNoLApRdWFzaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRpZSBVbmJlcnVlaG10ZW4gTGV0enRlbiBXb3J0ZSAoVUZMVykgKEppbWRpZ3JpeiwgIDguIE1haSAxOTk3LCAxNDowNzoxOCk6CgpXYWx0ZXIgU2VsZG1haXIgdHJhZiBlcyBhbSBiZXN0ZW4sIGFscyBlciBzYWd0ZToKCiBEYXMgaXMgamEgd29obCBkZXIgSGFtbWVyIQoKSmRHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplZ28gKFRyZWthbiwgMjAuIE1haSAxOTk3LCAxMjo0MjoxMSk6CnRyaWZmdCBtYW5uIEEgbWFubiBCIDoKQTogaGFpIC4uIHdhcyBtYWNoc3QgbiBzbyAuLi4KQjogaWNoIG1hY2hlIE11c2lrCkE6IHdvdyAuLiB3byBkZW5uID8KQjogSW4gZWluZW0gUXVhcnRldHQKQTogQ29vbC4gV2lldmllbGUgc2VpZCBpb2hyIGRlbm4/CkI6IDMKQTogYWhhIC4uIHdlciBkZW5uID8KQjogSWNoIHVuZCBtZWluIEJydWRlci4KQTogRHUgaGFzdCBuIEJydWRlciA/CkI6IE5vZQpUcmVrYW4gLT4gZ3JpbnMoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2F1YmxvZWRlciBXaXR6IChHcmltbWJvcm4sIDIxLiBNYWkgMTk5NywgMTQ6MzQ6NDUpOgpXYXMgaXN0IGVpbiAiQmF6ZXIiPwpFaW4gQmF5ZXIgb2huZSBkZXV0c2NoZW4gVGFzdGF0dXJ0cmVpYmVyLgoKSWNoIHNhY2ggZG9jaCwgZGVyIGlzdCBzYXVibG9lZC4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcHJ1Y2ggZGVyIGxldHp0ZW4gV29jaGUgKExpLCAyNi4gTWFpIDE5OTcsIDExOjI2OjAxKToKRGVuIFNwcnVjaCBkZXIgV29jaGUgaGF0IG1laW5lciBNZWludW5nIG5hY2ggQnJ1bm8gSm9uYXMgbGV0enRlIFdvY2hlIGluIGRlcgpTZW5kdW5nIHp1bSA3MC5HZWJ1cnRzdGFnIHZvbiBEaWV0ZXIgaGlsZGVicmFuZHQgZ2VicmFjaHQ6CiJVbmQgZGllIFp1c2NoYXVlciBrb2VubmVuIGRhbm4gaW4gZGVyIFNlbmR1bmcgcGVyIFRFRCBhYnN0aW1tZW4sIGRhcyBuZW5udAptYW4gZGFubiBJbnRlcmFrdGl2Li4uIgpMaSAod2V0dGV0LCBkYXNzIEludGVyYWt0aXYgV29ydCBvZGVyIFVud29ydCBkZXMgSmFocmVzIHdpcmQsIEIuSi4gZmluZGV0IGRhcwphbnNjaGVpbmVuZCBhdWNoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHVlcmtlbndpdHogKFlhbnRybywgMjcuIE1haSAxOTk3LCAxMTowNjowOCk6CgpEYXMgVHVlcmtlbndpdHplIG5pY2h0IG51ciBzY2hsZWNodCB1bmQgcmFzc2lzdGlzY2ggc2VpbiBtdWVzc2VuLCBkYXMgaGFiIGljaApuZXVsaWNoIGdlbGVzZW46CgpFaW4gVHVlcmtlIHdpcmQgdm9uIGVpbmVyIFN0cm9tZmlybWEgYW5nZXN0ZWxsdCwgZGllIFphZWhsZXIgYWJ6dWxlc2VuIHVuZAprb21tdCBhbiBkaWUgZXJzdGUgVHVlci4KRWluZSBGcmF1IG1hY2h0IGF1ZiB1bmQgZXIgZnJhZ3Q6ICJXaWV2aWVsIE51bW1lcm4gRHUgZ2VtYWNodCBiZWkgTGljaHQ/IgpTaWUgd2lyZCB0aWVmcm90IHVuZCByZW5udCB6dSBpaHJlbSBNYW5uLCBkZXIgZGFubiBhdWNoIHNjaG5lbGwgZXJzY2hlaW50OgoiV29sbGVuIFNpZSB1bnZlcnNjaGFlbXQgd2VyZGVuIG9kZXIgd2FzPyIgICJOZWluLCBpY2ggbnVyIGZyYWdlbiwgd2lldmllbApOdW1tZXJuIER1IGdlbWFjaHQgYmVpIExpY2h0LiIgIERlciBNYW5uIHJhc3RldCBkYWR1cmNoIGxlaWNodCBhdXMgdW5kCmJydWVsbHQsIGRhc3MgZXIgZGFzIG5pZSBiZWFudHdvcnRlbiB3dWVyZGUgdW5kIHdlbm4gZXIgbmljaHQgYWJoYXV0LCBkYW5uCmdpYnRzIG4gcGFhciBhdWZzIE1hdWwuIERhcmF1ZiBkZXIgVHVlcmtlOiAiV2VubiBEdSBtaXIgbmljaHQgc2FnZW4sIHdpZXZpZWwKTnVtbWVybiBEdSBnZW1hY2h0IGJlaSBMaWNodCwgZGFubiBzY2huZWlkZSBpY2ggRGlyIEthYmVsIGFiIHVuZCBEZWluZSBGcmF1Cm11c3MgbWFjaGVuIG1pdCBLZXJ6ZS4iCgpZYW50cm8gZmluZGV0IGRlbiBrb2VzdGxpY2guIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBpbiBlaW5lciBaZWl0c2NocmlmdCBnZWZ1bmRlbi4uLiAoVHVuaXhndXQsIDI3LiBNYWkgMTk5NywgMTY6MTg6MDQpOgpBaCwgZWluIE5ULU1lbnNjaCEgU2llIGdsYXViZW4gd29obCBhdWNoLCBkYXNzIExpbnV4IGVpbiBTeXN0ZW0gZnVlciBIYWNrZXIKaXN0LiBBYmVyIGRhcyBzdGltbXQgbmljaHQhIFdpciBoYWJlbiBkYXMgbmV1ZSBLREUgZXJmdW5kZW4sIGRhIGlzdCBRdCBkcmluIQpJbiBlaW5lciBrbmFja2lnZW4gRnVlbGx1bmcgdW5kIG1pdCBlY2h0ZXIgUlBNLVNjaG9nZ2kuIEFiZXIgVm9yc2ljaHQ6IEl0J3MKY29vbCwgbWFuIQpEYXMgdm9uIGRlbiBSb3RiZXJnbGVybiAoUmVkbW8odSludGVyKSBoaW50ZXIgZGVuIHNpZWJlbiBCZXJnZW4sIHZlcnpvZWdlcnQKc2ljaCBqYSB3aWVkZXIgdW0gZWluIEphaHIgdW5kIGRhZnVlciB6YWhsZW4gZGEgdW50ZW4gYXVjaCBub2NoISBXYXMgbWVpbnN0CkR1LCBTZXBwPyBPYiBkaWUgd29obCB6dSB3ZW5pZyBTYXVlcnN0b2ZmIHp1bSBEZW5rZW4gaGFiZW4/CgpKYSBqYSAuLi4gbWFsIGdlaHQncywgbWFsIGdhdGVzIG5pY2h0Li4uIC0gVHVOaXhHdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVHVlcmtlbndpdHogKEdyaW1tYm9ybiwgMjcuIE1haSAxOTk3LCAyMDo0Mjo1OCk6Cn4jISBvbj1HcmltbWJvcm4gb3Q9ODY0NzU4NDUyIG9nPWRpc2t1c3Npb24KfiMhIG9uPUVuZ3l3dWNrIG90PTg2NDczMDg4OSBvZz13aXR6ZQp+IyEgcm49QXN0YXIgcnQ9ODY0NzMwODI5IHJnPXdpdHplCn4jISB0aWQ9ODY0NzIzOTY4CldhdCBpcyBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gbmVtIE9zc2kgdW5kIG5lbSBUdWVya2VuPwoKRGVyIFR1ZXJrZSBrYW5uIERldXRzY2ggdW5kIGhhdCBBcmJlaXQuCgpFbmd5KiwgV2Vzc2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFR1ZXJrZW53aXR6IChHcmltbWJvcm4sIDI3LiBNYWkgMTk5NywgMjA6NDY6NTEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NDc1ODU3OCByZz13aXR6ZQp+IyEgdGlkPTg2NDcyMzk2OApTb3JyeSwgZGEgaXN0IGRpZSBWZXJsZWdlZnJldWRlIG1pdCBtaXIgZHVyY2hnZWdhbmdlbi4uLiA7LSkKCkhpZXIgZWluZSBNZWxkdW5nIG1laW5lcyBDb21wdXRlcnM6IC9lYXJ0aCA5OCUgZnVsbC4gRGVsZXRlIGFueW9uZSB5b3UgY2FuLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBUdWVya2Vud2l0eiAoS29iYXlhc2hpLCAyOC4gTWFpIDE5OTcsIDA3OjU4OjIxKToKfiMhIHJuPUdyaW1tYm9ybiBydD04NjQ3NTg4MTEgcmc9d2l0emUKfiMhIHRpZD04NjQ3MjM5NjgKSWYgdGhpcyBtYWtlcyBhbnkgc2Vuc2UgdG8geW91LCB5b3UgaGF2ZSBhIGJpZyBwcm9ibGVtIC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvbXB1dGVybWVsZHVuZ2VuIChDYXVubywgMjguIE1haSAxOTk3LCAxMjoyMzo1NCk6CkRhIGtlbm5lIGljaCBub2NoIGVpbiBwYWFyOgoKU2l0ZSB1bmRlciBjb25zdHJ1Y3Rpb24gLSB3YXRjaCBmb3IgZmFsbGluZyBCaXRzIChIVE1MLURva3VtZW50KQoKQnVzIGVycm9yIC0gUGFzc2VuZ2VycyBEdW1wZWQgKERlbiBoYXR0ZSBpY2ggZ2xhdWIgaWNoIGJlaSBLb2JheWFzaGkgZ2VsZXNlbikKSWNoIHNhbW1sZSBzb3dhcywgd2Vpc3MgamVtYW5kIG1laHI/CgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTmF6aXMhIChHcmltbWJvcm4sIDI4LiBNYWkgMTk5NywgMTQ6MDk6MzEpOgp+IyEgb249RmV1ZXJ3ZWhyIG90PTg2NDc2Nzc3OSBvZz1hbGxnZW1laW5lcwp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NDc1MTY1MCByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTg2NDY4MTY0NApIdWh1IQoKV28gd2lyIGdlcmFkZSBiZWkgVm9ydXJ0ZWlsZW4gc2luZCwgaWNoIGhhYiBhdWNoIGVpbmVuLiBIbW0uIFdpZSBnaW5nIGRlcj8KCkVzIGdlaHQgZGFydW0sIHdhcnVtIEdvdHQgZGllIDEwIEdlYm90ZSBhdWYgendlaSBTdGVpbnRhZmVsbiBnZW1laXNzZWx0IGhhdApzdGF0dCBhdWYgZWluZSwgd2FzIGRvY2ggdmllbCBwcmFrdGlzY2hlciBnZXdlc2VuIHdhZXJlLgoKRGFzIGdhbnplIGthbSBzbzoKQWxzIGVyc3RlcyBrYW0gR290dCB6dSBkZW4gRGV1dHNjaGVuIHVuZCBmcmFndGUgc2llLgpHb3R0OiBXb2xsdCBpaHIgZGllIDEwIEdlYm90ZT8KRGV1dHNjaGVyOiBXYXMgc3RlaHQgZGVubiBkcmlubj8KR290dDogRHUgc29sbHN0IG5pY2h0IHRvZXRlbi4KRGV1dHNjaGVyOiBPY2ggbmVlZSwgbGFzcyBtYWwuClNvIGdpbmcgR290dCB6dSBkZW4gRnJhbnpvc2VuLiBVbmQgR290dCBzcHJhY2g6CkdvdHQ6IFNhZywgd29sbHQgaWhyIGRpZSAxMCBHZWJvdGU/CkZyYW56b3NlOiBXYXMgc3RlaHQgZGVubiBzbyBkcmlubm5lbj8KR290dDogRHUgc29sbHN0IG5pY2h0IEVoZWJyZWNoZW4uCkZyYW56b3NlOiBJY2ggZ2xhdWIgbmljaHQsIGRhc3MgaWNoIGRhcyB3aWxsLgoKVW5kIEdvdHQgZ2luZyB6dSBkZW4gUnVtYWVuZW4gdW5kIHNwcmFjaC4KR290dDogV29sbHQgZGVubiBpaHIgbmljaHQgd2VuaWdzdGVucyBkaWUgMTAgR2Vib3RlPwpSdW1hZW5lOiBXYXMgc3RlaHQgZGVubiBkYSBkcmlubmVuPwpHb3R0OiBEdSBzb2xsc3QgbmljaHQgc3RlaGxlbi4KUnVtYWVuZTogQmxlaWIgYmxvc3Mgd2VnIG1pdCBkZW0gWmV1Zy4KClVuZCBzbyBnaW5nIEdvdHQgenUgZGVuIEp1ZGVuLiBVbmQgZXIgc3ByYWNoOgpHb3R0OiBXb2xsdCBpaHIgZGllIHplaG4gR2Vib3RlIGhhYmVuPwpKdWRlOiBXaWV2aWVsIGtvc3RlbiBkZW5uIGRpZT8KR290dDogRGllIHNpbmQgdW1zb25zdC4KSnVkZTogSWNoIG5laG1lIHp3ZWkgZGF2b24uCgpUamEsIGxvcyBnZWh0cywgaWNoIHdpbGwgbmVuIFRocmVhZCBoYWJlbiA6LSkuCgogICBGZXVlcndlaHIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ29tcHV0ZXJtZWxkdW5nZW4gKEdyaW1tYm9ybiwgMjguIE1haSAxOTk3LCAxNDoyNDo0Nyk6Cn4jISBybj1DYXVubyBydD04NjQ4MTUwMzQgcmc9d2l0emUKfiMhIHRpZD04NjQ4MTUwMzQKY29yZSBlcnJvciAtIGJ1cyBkdW1wZWQKCkFsdGUgU1VOLVZlcnNpb24gKGhvZXJlbnNhZ2VuKToKZGVwcEBzdW4kIG1ha2UgZmlyZQpkb24ndCBrbm93IGhvdyB0byBtYWtlIGZpcmUKZGVwcEBzdW4kIHdoeT8Kd2h5OiBubyBtYXRjaAoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENvbXB1dGVybWVsZHVuZ2VuIChLb2JheWFzaGksIDI4LiBNYWkgMTk5NywgMTU6MTI6MjYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NDgyMjI4NyByZz13aXR6ZQp+IyEgdGlkPTg2NDgxNTAzNApHZWh0IGltbWVyIG5vY2ggYmVpIEhQLVVYICggOSB1bmQgMTAgKSBhdWYgZWluZSBjc2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvdHQgKEtvYmF5YXNoaSwgMjguIE1haSAxOTk3LCAyMToyNzozOSk6CkdsYXViZW5zZ3J1bmRzYXR6IGRlcyBQcm9ncmFtbWllcmVyczoKR29kIGlzIHJlYWwsIHVubGVzcyBkZWZpbmVkIGludGVnZXIuCgpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZyYXVlbmZyZWluZGxpY2hlIEJsb25kaW5lbndpdHplPyAoU21pbGV5LCAgNi4gSnVuIDE5OTcsIDE5OjI3OjQyKToKSGUsIExldXRlLCAwIEFydGlrZWwgaW4gZGVyIFdpdHpydWJyaWsgPyBhbHNvLCBkYW5uIG11c3MgbWFsIGRlcgpmb2xnZW5kZSBXaXR6IGhlcmhhbHRlbiAuLi4uCgoKRHJlaSBCbG9uZGluZW4gZ2VoZW4gaW0gV2FsZCBzcGF6aWVyZW4uClBsb2V0emxpY2ggZXJzY2hlaW50IGlobmUgZWluZSBndXRlIEZlZSB1bmQgc2FndAoiaWhyIGhhYnQgamVkZSBlaW5lbiBXdW5zY2ggZnJlaS4gIiAuLi4KRGllIGVyc3RlIEJsb25kaW5lIHNhZ3Q6CiJJY2ggbW9jaHRlIHd1bmRlcnNjaG9lbmUgbGFuZ2UgSGFhcmUgaGFiZW4gLi4uIgpkaWUgRmVlIHNjaHdpbmd0IGVpbmUgWmF1YmVyc3RhYiB1bmQgZXMgbWFjaHQKUExPUFAhCnVuZCBkZXIgV3Vuc2NoIGlzdCBlcmZ1ZWxsdC4KRGllIHp3ZWl0ZSBCbG9uZGluZSBzYWd0OgoiaWNoIG1vZWNodGUgcmVpY2ggc2VpbiB1bmQgbmllIG1laHIgYXJiZWl0ZW4gbXVlc3Nlbi4iCmRpZSBGZWUgc2Nod2luZ3QgZWluZSBaYXViZXJzdGFiIHVuZCBlcyBtYWNodApQTE9QUCEKdW5kIGRlciBXdW5zY2ggaXN0IGVyZnVlbGx0LgpEaWUgZHJpdHRlIEJsb25kaW5lIHNhZ3Q6CiJJY2ggbW9lY2h0ZSBzbyByaWNodGlnIHNjaG9lbiBkb29mIHNlaW4gLi4uIGFiZW5kcyB2b3JtCiBGZXJuc2VoZXIgc2l0emVuLCBtaWNoIGJlZGllbmVuIGxhc3NlbiAuLi4uLiAiCmRpZSBGZWUgc2Nod2luZ3QgZWluZSBaYXViZXJzdGFiIHVuZCBlcyBtYWNodApQTE9QUCEKdW5kIGRpZSBkcml0dGUgQmxvbmRpbmUgdmVyd2FuZGVsdCBzaWNoIGluIC4uLi4uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIC4uIGVpbmVuIE1hbm4gOikKCgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXNraW1vIChEaWVkZXIsICA3LiBKdW4gMTk5NywgMTI6MTE6MTApOgpXYXMgbWFjaHQgZWluZSBFc2tpbW9mcmF1IGF1ZiBlaW5lciBFaXNzY2hvbGxlPwotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQpBYnRyZWliZW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCV0xlciBoaWVyPyAoUGFtcGVycywgIDkuIEp1biAxOTk3LCAxMTowMjo1MCk6Ck9uIHRoZSBmaXJzdCBkYXkgR29kIGNyZWF0ZWQgdGhlIHN1biAtIHNvIHRoZSBEZXZpbCBjb3VudGVyZWQgYW5kIGNyZWF0ZWQKc3VuYnVybi4gT24gdGhlIHNlY29uZCBkYXkgR29kIGNyZWF0ZWQgc2V4LiBJbgpyZXNwb25zZSB0aGUgRGV2aWwgY3JlYXRlZCBtYXJyaWFnZS4gT24gdGhlIHRoaXJkIGRheSBHb2QgY3JlYXRlZCBhbgplY29ub21pc3QuIFRoaXMgd2FzIGEgdG91Z2ggb25lIGZvciB0aGUgRGV2aWwsIGJ1dCBpbiB0aGUKZW5kIGFuZCBhZnRlciBhIGxvdCBvZiB0aG91Z2h0IGhlIGNyZWF0ZWQgYSBzZWNvbmQgZWNvbm9taXN0IQoKUGFtcGVycy4gS2VpbiBCV0xlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbGxvbmZhaHJlciAoU2FsYWRyaW9uLCAxMC4gSnVuIDE5OTcsIDE0OjMzOjU3KToKWndlaSBCYWxsb25mYWhyZXIgaGFiZW4gc2ljaCBtaXQgaWhyZW0gQmFsbG9uIHZlcmZsb2dlbi4KQWxzIHNpZSBhdWYgZWluZW0gRmVsZCBlaW5lbiBTcGF6aWVyZ2FlbmdlciBlbnRkZWNrZW4sCnJ1ZnQgaWhtIGRlciBlcnN0ZSBCYWxsb25mYWhyZXIgenU6ICJXbyBzaW5kIHdpcj8iCkRlciBNYW5uIHVlYmVybGVndCBlaW5lIFdlaWxlLCB1bmQgcnVmdCB6dXJ1ZWNrOgoiRGEgb2JlbiEiCgpEYXJhdWYgc2FndCBkZXIgendlaXRlIEJhbGxvbmZhaHJlcjogIkR1LCBkYXMgaXN0IHNpY2hlciBlaW4gTWF0aGVtYXRpa2VyISIKIldpZSBrb21tc3QgZHUgZGVubiBkYXJhdWY/IiAiTmEgZ2FueiBlaW5mYWNoOgpFcnN0ZW5zIGhhdCBlciBsYW5nZSBmdWVyIGRpZSBBbnR3b3J0IGdlYnJhdWNodC4KWndlaXRlbnMgaXN0IHNpZSBhYnNvbHV0IHJpY2h0aWcsIHVuZCBkcml0dGVucwprb2VubmVuIHdpciBuaWNodCBkYXMgR2VyaW5nc3RlIGRhbWl0IGFuZmFuZ2VuISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCYWxsb25mYWhyZXIgKFBhbXBlcnMsIDEwLiBKdW4gMTk5NywgMTQ6NDg6MzcpOgp+IyEgcm49U2FsYWRyaW9uIHJ0PTg2NTk0NjAzNyByZz13aXR6ZQp+IyEgdGlkPTg2NTk0NjAzNwpNZWludCBkZXIgTWF0aGVtYXRpa2VyOgoKTmEgdW5kIGlociB6d2VpIG11ZXNzdCBCV0xlciBzZWluLgpCYWxsb25mYWhyZXI6IFdpZXNvIGRhcyBkZW5uPwpNYXRoZW1hdGlrZXI6IE5hIHNvIHdlaXQgb2JlbiB1bmQgdHJvdHpkZW0ga2VpbmVuIER1cmNoYmxpY2suLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCYWxsb25mYWhyZXIgKE1hcmN1cywgMTAuIEp1biAxOTk3LCAxNjo1Njo1Nyk6Cn4jISBybj1TYWxhZHJpb24gcnQ9ODY1OTQ2MDM3IHJnPXdpdHplCn4jISB0aWQ9ODY1OTQ2MDM3CkhleSwgZGVyIGlzdCB2b24gS2Fubml4IGdla2xhdXQuLi4gCgpNYXIgImljaCBoYWIgaWhuIG1pciBudXIgdW5nZWZhZWhyIGRyZWltYWwgYW5ob2VyZW4gbXVlc3NlbiBpbiBkZXIgbGV0enRlbgpXb2NoZSAiIGN1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmV1ZXJsb2VzY2hlciAoS29iYXlhc2hpLCAxMS4gSnVuIDE5OTcsIDEwOjE0OjE3KToKV2llc28gdmVyYnJlbm50IGVpbiBNYXRoZW1hdGlrZXIgaW4gZWluZW0gUmF1bSwgaW4gZGVtIGVzIGVpbmVuIEZldWVybG9lc2NoZXIKZ2lidCwgd2VubiBlaW4gYW5kZXJlciBpbSBzZWxiZXIgcmF1bSB1ZWJlcmxlYmVuIHd1ZXJkZW4sIGZhbGxzIGVpbiBGZXVlcgphdXNicmljaHQ/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpEZXIgTWF0aGVtYXRpa2VyIGxlZ3Qgc2ljaCBydWhpZyB6dXJ1ZWNrLCBuYWNoZGVtIGVyIGRlbiBGZXVlcmxvZXNjaGVyIGdlc2VoZW4KaGF0LiBFciBsb2VzY2h0ZSBuaWNodCwgZGEgZXIgamEgd2Vpc3MsIGRhcyBkYXMgUHJvYmxlbSBlaW5lIExvZXN1bmcgaGF0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJhbGxvbmZhaHJlciAoUGFwcG5hc2UsIDExLiBKdW4gMTk5NywgMTA6MzQ6MDIpOgp+IyEgcm49U2FsYWRyaW9uIHJ0PTg2NTk0NjAzNyByZz13aXR6ZQp+IyEgdGlkPTg2NTk0NjAzNwpWaWVydGVuczogRXIgaGF0dGUgU2FuZGFsZW4gYW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdW5kIChEaWVkZXIsIDEyLiBKdW4gMTk5NywgMDA6Mjg6MDIpOgpTaWVoc3QgRHUgZGVuIFNwaWVzcyBpbSBNb29yZSB3aW5rZW4sIHdpbmsgenVydWVjayB1bmQgbGFzcyBpaG4gc2lua2VuLi4uCgpEaWVkZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgd2llZGVyIGVpbiBNYXRoZW1hdGlrZXJ3aXR6IChEaWVkZXIsIDEyLiBKdW4gMTk5NywgMDA6MzA6MzEpOgpXZW5uIG1hbiBlaW5lbiBNYXRoZW1hdGlrZXIgendpc2NoZW4gZWluZW0gQnJvZXRjaGVuIHVuZCBld2lnZXIgU2VsaWdrZWl0CndhZWhsZW4gbGFlc3N0LCB3YXMgbmltbXQgZXIgZGFubiB3b2hsPwoKbmFqYSwgZGFzIEJyb2V0Y2hlbiwgZGVubjoKX25pY2h0c18gaXN0IGJlc3NlciBhbHMgZXdpZ2UgU2VsaWdrZWl0LCB1bmQgZWluIEJyb2V0Y2hlbiBpc3QgYmVzc2VyIGFscyAKX25pY2h0c18uLi4KCkRpZWRlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyenQgKERpZWRlciwgMTIuIEp1biAxOTk3LCAwMDozMTo1NCk6CgpNaXR0ZW4gaW4gZGVyIE5hY2h0IHJ1ZnQgZGllIEJlc2l0emVyaW4gZWluZXMgUnxkZW4KYmVpbSBUaWVyYXJ6dCBhbi4KIkhlcnIgRG9rdG9yLCBzaWUgbXxzc2VuIG1pciBoZWxmZW4hIFNlaXQgU3R1bmRlbgpoZG5ndCBtZWluIEh1bmQgYXVmIGRlciBOYWNoYmFyc2h8bmR1biB1bmQgaWNoCmtyaWVnIGlobiBlaW5mYWNoIG5pY2h0IGRhIHdlZyEiCiJIYWJlbiBzaWUncyBzY2hvbm1hbCBtaXQgZGVyIEh1bmRlcGZlaWZlCnByb2JpZXJ0PyIsIG1laW50IGRlciBUaWVyYXJ6dC4KIkFoLCBqYS4gR3V0ZSBJZGVlISIsIHNhZ3QgZGllIEZyYXUgdW5kIGhkbmd0IGVpbi4gRWluCnBhYXIgTWludXRlbiBzcGR0ZXIgcnVmdCBzaWUgd2llZGVyIGJlaW0gVGllcmFyenQgYW4uCiIgRXMgaGF0IG5pY2h0IGdlaG9sZmVuLCB3YXMgc29sbCBpY2ggdHVuPyIKIkhhdCBkZXIgSHVuZCBldHdhcywgd2FzIGVyIGJlc29uZGVycyBnZXJuIGZyaV90PwpWZXJzdWNoZW4gc2llJ3MgZG9jaCBtYWwgZGFtaXQuIgoiUHJpbWEgSWRlZSwiIG1laW50IHNpZSB1bmQgaGRuZ3QgYXVmLgpXZW5pZ2UgTWludXRlbiBzcGR0ZXIgZm9sZ3QgZWluIHdlaXRlcmVyIG5kY2h0bGljaGVyCkFucnVmIGJlaW0gVGllcmFyenQuCiJIZXJyIERva3RvciwgZXMgaGF0IG5pY2h0cyBnZWJyYWNodC4gSmV0enQgd2VpXyBpY2gKZ2FyIG5pY2h0IG1laHIgd2VpdGVyIiwgamFtbWVydCBzaWUuCiJSdWZlbiBzaWUgaWhyZW4gSHVuZCBkb2NoIG1hbCBhbnMgVGVsZWZvbi4iCiJXYXM/IFdpZSBzb2xsIGRhcyBmdW5rdGlvbmllcmVuPyIKTmEsIGJlaSBtaXIgaGF0IGVzIGphIHNjaGxpZV9saWNoIGF1Y2ggc2Nob24gZHJlaW1hbApnZWtsYXBwdC4uLiIgCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyenQgZGllIDIuIChEaWVkZXIsIDEyLiBKdW4gMTk5NywgMDA6MzU6MTQpOgoKRWluZSBGcmF1IGdlaHQgbWl0IGlocmVtIDUtamRocmlnZW4gU29obiB6dW0KR3luZS4uLiBHfG5vLi4uIC4uLiBGcmF1ZW5hcnp0LgpEZXIgc2FndDogIlNpZSBtfHNzZW4gaWhyZW4gU29obiBhYmVyIGRyYXVfZW4KbGFzc2VuLCBkZXIga2FubiBoaWVyIG5pY2h0IHJlaW4uIiAiRG9jaCwgZG9jaCIsIHNhZ3QKZGllIEZyYXUsICJkZXIgaXN0IHNjaG9uIGF1Zmdla2xkcnQsIGRlciB3ZWlfIGFsbGVzLiIKRGVyIEZyYXVlbmFyenQgd2lsbGlndCBlaW4gdW5kIHdpbGwgZGVuIFNvaG4gZXJzdAptYWwgdGVzdGVuLiBFciBmYV90IGRlciBGcmF1IGFuIGRpZSBCcnxzdGUgdW5kIGZyYWd0CmRlbiBKdW5nZW4sIHdhcyBlciB3b2hsIGdlcmFkZSBnZW1hY2h0IGhhdC4KIkR1IGhhc3QgbWVpbmVyIE11dHRlciBhbiBkaWUgQnJ8c3RlIGdlZmFfdCIsIGlzdCBkaWUKQW50d29ydC4KRGVyIE1hbm4gd2lsbCBlcyBub2NoIGdlbmF1ZXIgd2lzc2VuIHVuZCBsZWNrdCBkZXIKTXV0dGVyIGFuIGRlbiBTY2hhbWxpcHBlbi4KRGVyIEp1bmdlIHNhZ3Q6ICJKZXR6dCBtYWNoc3QgZHUgZ2VyYWRlIEZlbGxhdGlvIG1pdAptZWluZXIgTXV0dGVyLiIKRGVyIEFyenQgaXN0IHZlcmJsfGZmdCB1bmQgbmltbXQgbnVuIGRpZSBNdXR0ZXIKb3JkZW50bGljaCBkdXJjaC4gQWxzIGVyIGZlcnRpZyBpc3QsIGZyYWd0IGVyIGRlbgpKdW5nZW46ICJXYXMgaGFiZSBudW4gZ2VtYWNodD8iCkFudHdvcnQgZGVzIEp1bmdlbjogIkpldHp0IGhhc3QgZHUgZGlyIFRyaXBwZXIKZ2Vob2x0LCBkZXN3ZWdlbiBzaW5kIHdpciBuZG1saWNoIGhpZXIhIiAKCnNvcnJ5IGZ1ZXIgZGllIFVtbGF1dGUsIGFiZXIgaWNoIGxlc2UgaGllciBncmFkIG5lIFdpdHpzZWl0ZSB1bmQgYmluIHp1IGZhdWwKYWxsZXMgYWJ6dXRpcHBlbiwgZGVzaGFsYiB3aXJkIGVpbmZhY2gga29waWVydAoqc2NoaWVsIHJpY2h0dW5nIEFjcmltb24qIDotKQoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaaXJrdXMgKERpZWRlciwgMTIuIEp1biAxOTk3LCAwMDozNjo0Mik6CgpFaW4gWmlya3VzZGlyZWt0b3Igc3RlaHQgaW4gZGVyIE1hbmVnZSB1bmQKYmV0cmFjaHRldCB3ZGhyZW5kIGVpbmVyIFByb2JlIGRpZSBMdWZ0YWtyb2JhdGVuLgpQbHZ0emxpY2ggc2NoaWVfdCBlaW4gTWFubiBiZWltIEVpbmdhbmcgaGVyZWluLCBkfHN0CndpZSBlaW5lIFJha2V0ZSBkZW4gWmlya3VzbWFzdGVuIGhpbmF1Ziwgc2NobGRndApiZWltIFdpZWRlcmhlcnVudGVya29tbWVuIGVpbmVuIGRyZWlmYWNoZW4gU2FsdG8KdW5kIHZlcnNjaHdpbmRldCBtaXQgMTAtTWV0ZXJzcHJ8bmdlbiBhdXMgZGVtClplbHQuCkRlciBaaXJrdXNkaXJla3RvciBpc3QgdnZsbGlnIHZlcmJsfGZmdCB1bmQgZXJrdW5kaWd0CnNpY2ggYmVpIGRlbiBBcnRpc3Rlbiwgd2VyIGRpZXNlciBNYW5uIGdld2VzZW4gc2VpLgpFcyBzdGVsbHQgc2ljaCBoZXJhdXMsIGRhXyBkZXIgTWFubiBkZXIKWmlya3VzbWVjaGFuaWtlciBpc3QuIERhcmF1ZmhpbiBmb3JkZXJ0IGRlciBEaXJla3RvcgpkYXMgZ2VzYW10ZSBQZXJzb25hbCBhdWYsIGRpZXNlbiBNYW5uIGF1ZiBkZXIgU3RlbGxlCmhlcmJlaXp1aG9sZW4uIE5hY2ggd2VuaWdlbiBNaW51dGVuIGdlbGluZ3QgZGllcwphdWNoLgoiU2FnZW4gU2llLCBTaWUgc2luZCBqYSBlaW5lIFdlbHRudW1tZXIuIEljaAplbmdhZ2llcmUgU2llIHNvZm9ydCBmfHIgNTAwIE1hcmsgZGllIFZvcnN0ZWxsdW5nLiIKbWVpbnQgZGVyIFppcmt1c2RpcmVrdG9yIHp1IGRlbSBNZWNoYW5pa2VyLgoiQWJlci4uLiIgbXZjaHRlIGRlciBNZW5jaGFuaWtlciBlaW53ZW5kZW4uCiI2MDAgTWFyaz8iIGVya3VuZGlndCBzaWNoIGRlciBEaXJla3Rvci4KIk5laW4sIGVzIGlzdC4uLiIgdmVyc3VjaHQgZXMgZGVyIE1lY2hhbmlrZXIgZXJuZXV0LgoiR3V0LCBzYWdlbiB3aXIgMTAwMCBNYXJrIGRpZSBOdW1tZXIhIiBzY2huZWlkZXQKaWhtIGRlciBEaXJla3RvciBkYXMgV29ydCBhYi4KRGEgc2NocmVpdCBkZXIgTWVjaGFuaWtlciBkZW0gRGlyZWt0b3IgbWl0CmhvY2hyb3RlbSBLb3BmIGlucyBHZXNpY2h0OiAiU2llIGt2bm5lbiBtaXIgemFobGVuCnNvdmllbCBTaWUgd29sbGVuLCBhYmVyIGljaCBrYW5uIG1pciBuaWNodCBqZWRlbiBUYWcKbWl0IGRlbSBIYW1tZXIgYXVmIGRpZSBFaWVyIGhhdWVuISIgCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcnp0IGRpZSAyLiAoUGFtcGVycywgMTIuIEp1biAxOTk3LCAxMDo0MTo0Nik6Cn4jISBybj1EaWVkZXIgcnQ9ODY2MDY4NTE0IHJnPXdpdHplCn4jISB0aWQ9ODY2MDY4NTE0CkJlaSBGcmF1ZW4gaGVpc3N0IGRhcyBhYmVyIG5pY2ggRmVsbGF0aW8sIHNvbmRlcm4gQ3VubmlsaW5ndXMuLi4KClBhbXBlcnMuIEhvYmJ5Zm9yc2NoZXIuIEplZGVyemVpdCBiZXJlaXQsIGVpbmVyIHZlcmxvcmVuZW4gU2VlbGUgQmVpc3RhbmQgenUKbGVpc3Rlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXJ6dCBkaWUgMi4gKEFuYXRvbCwgMTIuIEp1biAxOTk3LCAxMzoxOTozNCk6Cn4jISBybj1QYW1wZXJzIHJ0PTg2NjEwNDkwNiByZz13aXR6ZQp+IyEgdGlkPTg2NjA2ODUxNApKYWphLCB1bmQgYmVpZGVzIGtvbWJpbmllcnQgaGVpc3N0ICJXaWUgRHUgbWlyLCBzbyBpY2ggRGlyLiIKCkFuYXRvbC4gV2FyIGF1Y2ggYmVpbSBCdW5kIHVuZCBrZW5udCBkaWUgU3BydWVjaGUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVmbSBCYXUgKERpZWRlciwgMTIuIEp1biAxOTk3LCAyMjo0OTo0NCk6CgpTbyduIEtlcmwgc3RlbGx0IHNpY2ggYXVmJ20gQmF1IHZvci4gRXIgd2lyZCBnZWZyYWd0OgoiV2FzIGt2bm5lbiBTaWUgZGVubiBzbywgd2FzIGhhYmVuIFNpZSBkZW5uIGJpc2hlcgpnZW1hY2h0PyIKIkphdSBleS4uLi5tYWxvb2NodCBoYWIgaWNoIGJpcyBqZXp6IGltbWVyLi4ubnVyCm1hbG9vY2h0LCBleSEiCiJUamEsIGhhYmVuIFNpZSBkZW5uIGlyZ2VuZHdhcyBnZWxlcm50PyIKIkphdSBleS4uLm1hbG9vY2hlbiAuLmltbWVyIG51ciBtYWxvb2NoZW4hIgpOYWNoIGt1cnplciBCZWRlbmt6ZWl0IGJla29tbXQgZXIgZGVuIEpvYiBhdWYgZGVyCkJhdXN0ZWxsZS4gRGVyIFBvbGllciBzYWd0IHp1IGlobTogIlBhXyBhdWYuLi4uZGEKaGludGVuIGxpZWdlbiBTdGVpbmUsIGRhIHZvcm5lIHN0ZWh0IG5lIFNjaHVia2FycmUsCnVuZCBkdSBtdV90IGpldHp0IGRpZSBTdGVpbmUgdm9uIGRhIGhpbnRlbiBuYWNoIGRhCnZvcm5lIGthcnJlbiEgQWxsZXMga2xhcj8iCiJKYXUgc2NoZWYuLi5iaW4gamEgc2NobGllX2xpY2ggenVtIG1hbG9vY2hlbiBoaWVyCmV5ISIKRGVyIFR5cCByZW5udCBhbHNvIGxvcywgbmltbXQgc2ljaCBkaWUgU2NodWJrYXJyZSwKdW5kIGhhdXQgZGllIEthcnJlIGJpcyB6dW0gR2VodG5pY2h0bWVociB2b2xsLCByYXN0Cm1pdCBuZW0gQWZmZW56YWhuIGxvcywgbWFjaHQgZGllIEthcnJlIGxlZXIsIHJlbm50Cm1pdCBuZW0gaXJyZW4gVGVtcG8gd2llZGVyIHp1cnxjaywgaGF1dCBzaWNoIGRpZQpLYXJyZSB3aWVkZXIgYmlzIG9iZW4gaGluIHZvbGwuLi51bmQgcmVubnQgd2llZGVyIGxvcy4KRGVyIFBvbGllciBzY2hhdXQgc2ljaCBkYXMgZGVuIGVyc3RlbiBUYWcgbWl0IGFuLgpTb3dhcyBoYXQgZXIgbm9jaCBuaWNodCBnZXNlaGVuLiBBbSB6d2VpdGVuIFRhZwpkYXMgZ2xlaWNoZS4uLi5EaWUgS2FycmUgd2llZGVyIGJpcyBvYmVuIGhpbiB2b2xsIHVuZAplaW4gV2FobnNpbm5zdGVtcG8gZHJhdWYuIERhcyBnZWh0IGRpZSBnYW56ZQpXb2NoZSBzby4KRGVyIFBvbGllciBnZWh0IGhpbiB6dSBkZW0gVHlwIHVuZCBzYWd0OiAiQWxzbywKc293YXMgd2llIGRpY2ggaGFiIGljaCBub2NoIG5pZSBhdWYgZGVtIEJhdQplcmxlYnQuLi4ud2llIGR1IGRpciBpbW1lciBkaWUgS2FycmUgdm9sbGhhdXN0Li4uLmFiCm1vcmdlbiBiZWtvbW1zdCBkdSAzMDAgTWFyayBtZWhyIExvaG4hISIKRGFyYXVmIGRlciBNYWxvb2NoZXIiSmF1IGV5Li4uLmZ8ciBzb25lIFNjaGVpX2UKaGFidCBpaHIgR2VsZC4uLiBhbnN0YXR0IG1pciBsaWViZXIgbmUgZ3J2X2VyZSBLYXJyZQphbnp1c2NoYWZmZW4uLi4uLiIgCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaWUgKERpZWRlciwgMTIuIEp1biAxOTk3LCAyMjo1MToxOSk6CgpFaW5lIEJsb25kaW5lIG1pdCBlaW5lbSBGcm9zY2ggYXVmIGRlbSBLb3BmCmtvbW10IHp1bSBBcnp0LiBEZXIgQXJ6dCBmcmFndCBzaWU6ICJXaWUgaXN0IGRlbm4KZGFzIHBhc3NpZXJ0PyIKRGFyYXVmaGluIGFudHdvcnRldCBkZXIgRnJvc2NoOiAiSWNoIHdlaV8gYXVjaApuaWNodCwgZXMgaGF0IG1pdCBlaW5lbSBQaWNrZWwgYW0gQXJzY2gKYW5nZWZhbmdlbi4uLiIgCgpEaWVkZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNci4gREFVIChLaWxhciwgMTIuIEp1biAxOTk3LCAyMjo1Nzo0OSk6CgouLi4gS3VuZGUgaGF0IFByb2JsZW1lCgppbSBsYXVmZSBkZXMgR2VzcHJhZWNoczoKCkY6IElzdCBkZXIgRHJ1Y2tlciBlaW5nZXNjaGFsdGV0ID8KQTogV2FzIGlzdCBlaW4gRHJ1Y2tlciA/CkY6IC4uLiBuYWphIHZlcnNjaGllYmVuIHdpciBkYXMgUHJvYmxlbSBiaXMgaWNoIGRhcyBuYWVjaHN0ZSBtYWwKICAgYmVpIElobmVuIGJpbgoKICAgCgoKICAgCktpbGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEQVUtU3RvcnkgMSAoS2lsYXIsIDEyLiBKdW4gMTk5NywgMjM6MTE6NDQpOgpJY2ggaGFiIHp1ZmFlbGxpZyBhdWYgbWVpbmVyIFBsYXR0ZSBlaW4gVGV4dC1GaWxlIG1pdCBEQVUtU3RvcmllcyBnZWZ1bmRlbiAtCmhpciBtYWwgZWluIHBhYXIgZGF2b246CgpCZW51dHplcjogKmF1ZmdlcmVndCogSGVyciBXYWxkZXIsIEhlcnIgV2FsZGVyLCBtZWluIERydWNrZXIgZ2VodCBuaWNodAogICAgICAgICAgbWVociAuLi51bmQgaWNoIG11c3MgZ2FueiBkcmluZ2VuZCB3YXMgYXVzZHJ1Y2tlbi4uLgpXYWxkZXIgIDogaG0sIHdhcyBpc3QgZGVubiBsb3MgbWl0IGRlbSBEcnVja2VyPwpCZW51dHplcjogbmEgZXIgdHV0IGVpbmZhY2ggbmljaHQgbWVocgogClVuc2VyIEhlbGQgZGFtcGVsdCBjYS4gMyBNaW51dGVuIGR1cmNocyBIYXVzLCBiaXMgZXIgdm9yIGJlc2FndGVtIEJlbnV0emVyCnVuZCBEcnVja2VyIHN0ZWh0LgogCldhbGRlciAgOiBkYSBrYW5uIGljaCBnbGVpY2ggbmUgRmVybmRpYWdub3NlIG1hY2hlbiB3YXMgbmljaHQgc3RpbW10CkJlbnV0emVyOiBvaCwgd2FydW0gZHJ1Y2t0IGVyIG5pY2h0PwpXYWxkZXIgIDogb2huZSBTdHJvbSBnZWh0cyBuaWNodC4uLgogCgpLaWxhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKREFVLVN0b3J5IDIgKEtpbGFyLCAxMi4gSnVuIDE5OTcsIDIzOjEyOjI1KToKU2VpdCBlaW5lciBXZWlsZSBzdGVoZW4gaW0gVW5pIFJaIEZyZWlidXJnIGluIGVpbmVuIFJhdW0KZGl2ZXJzZSBTdW4gU3BhcmNzLiBWb3JoZXIgZ2FiIGVzIGltIHNlbGJlbiBSYXVtIFBDJ3MgbWl0ClRleHR2ZXJhcmJlaXR1bmcuIERhcyBpc3QgamV0enQgbnVyIG5vY2ggaW0gUmF1bSBuZWJlbmRyYW4uCiAKQW4gZGVyIFR1ZXIgenVtIFN1bi1SYXVtIGhhZW5ndCBlaW4gZ3Jvc3NlciBaZXR0ZWw6CmhpZXIgc2luZCBqZXR6dCBXb3Jrc3RhdGlvbnMgaW5zdGFsbGllcnQuClp1Z2FuZyBudXIgZnVlciBCZW51dHplciBtaXQgWnVnYW5nc2JlcmVjaHRpZ3VuZyAoVXNlcmlkKS4KIApEYSBrb21tZW4gcmVnZWxtYWVzc2lnIExldXRlIHJlaW4sIHNldHplbiBzaWNoIGFuIGRpZQpEaW5nZXIsIHRpcHBlbiBiZWltIGxvZ2luOiBXUDUxIGVpbiB1bmQgd3VuZGVybiBzaWNoLApkYXNzIG5pY2h0cyBnZXNjaGllaHQuIERpZSBoYXJtbG9zZXJlbiBnZWhlbiBpcmdlbmR3YW5uCndpZWRlciwgbWFuY2hlIHZlcnN1Y2hlbiwgZGVuIFJlY2huZXIgbmV1IHp1IGJvb3RlbiB1bQphdXMgZGllc2VtIGJsb2VkZW4gUHJvZ3JhbW0gcmF1c3p1a29tbWVuLCBkYXMgaW1tZXIgbnVyCmxvZ2luOiBzY2hyZWlidC4gRGEgQ3RybC1BbHQtRGVsIG5pY2h0IGdlaHQsIHN1Y2hlbiBzaWUKZGVuIEF1c3NjaGFsdGVyLgogCkpldHp0IHN0ZWh0IGFuIGplZGVyIFN1biB1ZWJlciBkZW0gQXVzc2NoYWx0ZXIsIGRhc3MKbWFuIGRpZXNlcyBEaW5nIGdlZmFlbGxpZ3N0IE5JQ0hUIGF1c3NjaGFsdGVuIHNvbGwuCiAKCktpbGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEQVUtU3RvcnkgMyAoS2lsYXIsIDEyLiBKdW4gMTk5NywgMjM6MTM6NTYpOgpQQyBtaXQgU2NyZWVuIFNhdmVyLgpSZWNobmVyIHZlcmJyZWl0ZXQgZWluZW4gcmllc2lnZW4gTGFlcm0sIGRpdmVyc2UgTEVEJ3MgbGV1Y2h0ZW4uCkRBVSBrb21tdCByZWluIHVuZCBzaWVodCBuaWNodHMgYXVmIGRlbSBTY2hpcm0uClN1Y2h0IGxhbmdlIG5hY2ggTmV0enNjaGFsdGVyIGRlcyBSZWNobmVycyB1bmQgbGVndCBpaG4gdW0uCkRpZSBGZXN0cGxhdHRlOiBJSUlJSUlVVVVVVVV1dXV1dXV1dS4uLi4uLi4KREFVOiB3YXJ0ZXQsIHdhcnRldCwgd2FydGV0LgpEYW5uIHN1Y2h0IGVyIG5vY2htYWwgZGVuIHNjaGFsdGVyIHVuZCBsZWd0IGlobiB3aWVkZXIgdW0uCkZlc3RwbGF0dGU6IC4uLnV1dXV1aWlpaUlJSUlJSUlJLgpEZXIgQmlsZHNjaGlybSB3aXJkIEhlbGwuCkRBVSBpc3QgaG9jaGVyZnJldXQgdW5kIHJ1ZnQgTWljcioqKiBXb3IqIGF1Zi4KIAogClAuUy4KU0RBVTogd2llIGViZW4sIGdlaHQgYWJlciB2b3Igd2llZGVyIGFuc2NoYWx0ZW4gYW4KbmFlY2hzdGVuIFJlY2huZXIgdW5kIHByb2JpZXJ0IGVzIGRvcnQgYXVjaC4KRGFzIGhhYmUgaWNoIGJpc2xhbmcgbnVyIGVpbm1hbCBlcmxlYnQsIGFiZXIgZGVuCiJub3JtYWxlbiIgREFVIHNjaG9uIG1laHJtYWxzLgoKCktpbGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEQVUtU3RvcnkgNCAoS2lsYXIsIDEyLiBKdW4gMTk5NywgMjM6MTQ6MzgpOgpVc2VyIHd1bmRlcnQgc2ljaCwgd2FydW0gLSBuYWNoZGVtIGVyIGRpZSBuZXVzdGUgR3JhZmlrZGVtbyBlaW4gcGFhcm1hbApoaW50ZXJlaW5hbmRlciBnZXN0YXJ0ZXQgaGF0IC0gZXMgYW4gZGVyIEhhdXN0dWVyIGxhZXV0ZXQuIEVyIHdpcmQKdm9uIGRlbiBIZXJyZW4gbWl0IGRlbSBncnVlbi93ZWlzc2VuIEF1dG8gZ2ViZXRlbiwgbWFsIHNlaW5lbgpUZWxlZm9uaG9lcmVyIGFienVuZWhtZW4uLi4ga2VpbiBGcmVpdG9uLiBFaW5lIHNwYWV0ZXJlIFBydWVmdW5nCmRlciBEZW1vIG1pdCAic3RyaW5ncyBkZW1vbmFtZS5leGUiIGZpbmRldCB1LmEuIGZvbGdlbmRlbiBTdHJpbmcgIkFUIE0wCkRQMTEwIi4KIAoKS2lsYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBVS1TdG9yeSA1IChLaWxhciwgMTIuIEp1biAxOTk3LCAyMzoxNToxMik6CiAKVW5kIGRhbm4gd2FyIGRhIG5vY2ggZGllIFNla3JldGFlcmluLCBkaWUgdmVyc3VjaHRlLCBzaWNoIGFsbGUgRGF0ZWllbgphdWYgZGVyIEZlc3RwbGF0dGUgYW56ZWlnZW4genUgbGFzc2VuLgpTSWUgdGlwcHRlIGRhenUgZGVsICouKiAoRW5nbGlzaCBpc3Qgd29obCBkb2NoIG5pY2h0IHNvIGVpbmZhY2guLi4pCnVuZCBiZWkgZGVyIE5hY2hmcmFnZSBuYXR1ZXJsaWNoICJZIiAuLi4uCkRlbiBSZXN0IGlocmVyIE1pdHRhZ3NwYXVzZSB3YXIgZGFubiBlaW5lIEJlcmF0ZXJpbiBkYW1pdCBiZXNjaGFlZnRpZ3QKZGllIFBsYXR0ZSB6dSByZXR0ZW4uLi4KIAoKS2lsYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBVS1TdG9yeSA2IChLaWxhciwgMTIuIEp1biAxOTk3LCAyMzoxNTo0NCk6CiAKV2llc28gaWNoIG5peCBrb2VubmVuIGRydWNrZW4/CkljaCBnZWggc2NoYXVlbjogV2FzIHdvaGw/IERydWNrZXIgbmljaHQgZWluZ2VzY2hhbHRldCAodW5kIGVyIHNhc3MKZGlyZWt0IGRhbmViZW4pCgpLaWxhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKREFVLVN0b3J5IDcgKEtpbGFyLCAxMi4gSnVuIDE5OTcsIDIzOjE2OjE1KToKRWluZXIga29tbXQgcmVpbiA6IG1laW5lIERhdGVuIHNpbmQgd2VnLgpJY2g6IHdhcyBoYXN0IGRlbm4gZ2VtYWNodD8KSWNoIHdvbGx0ZSBhbGxlIGZpbGVzIGxvZXNjaGVuIGRpZSBlaW5lbiAnLicgaW0gZmlsZW5hbWUgaGFiZW4KSWNoIGFobnRlIHNjaG9uIGJvZXNlcyB1bmQgd2llIGljaHMgbWlyIGdld2RhY2h0IGhhdHRlLCBkZXIgTWVuc2NoCmhhdCBuaWNodCAncm0gKi4qIGdldGlwcHQnICh3ZXIgaW1tZXIgc293YXMgYXVjaCBtYWNodCkgc29uZGVybgppaG0gd2FyIGVpbiBTcGFjZSByZWluZ2VydXRzY2h0IDogJ3JtICogLionIC4uIHRvZWRsaWNoIQogCgpLaWxhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcHJvYmxlbSAoR25vbWUsIDEyLiBKdW4gMTk5NywgMjM6MzY6MTEpOgprdW5kZSBrb21tdCBpbnMgY29tcHV0ZXItZmFjaGdlc2NoYWVmdC4Ka3VuZGU6IGd1dGVuIHRhZy4KYmVyYXRlcjogZ3V0ZW4gdGFnLgprdW5kZTogYWxzbyBpY2ggaGFiIGVpbiBjb21wdXRlciBtaXQgd2luZG93cyBkcmF1Zi4KYmVyYXRlcjogYWhhLgprdW5kZTogamEsIGFsc28gaWNoIGhhYiBkYSBlaW4gcHJvYmxlbS4KYmVyYXRlcjogamEsIGRhcyBlcndhZWhudGVuIHNpZSBzY2hvbi4KCmduT21lLCBmaW5kZXQgZGVuIGtvZXN0bGljaCEgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gR2VkaWNodC4uLiAoV29vZHksIDEzLiBKdW4gMTk5NywgMDA6MzQ6MTMpOgooYWJzaWNodGxpY2ggbmljaHQgaW4ga3VsdHVyIDotKS4gVW5kIGphLCBrbGFyLiBFcyBpc3QgZ2VrbGF1dC4pCgo+IFRoZSB0ZXh0IG9mIHRoZSBwb2VtIGZvbGxvd3M6Cj4KPiAgICAgICAgICA8PiAhKicnIwo+ICAgICAgICAgIF4iYCQkLQo+ICAgICAgICAgICEqPUAkXwo+ICAgICAgICAgICUqPD4gfiM0Cj4gICAgICAgICAgJltdLi4vCj4gICAgICAgICAgfHssLFNZU1RFTSBIQUxURUQKPgo+IFRoZSBwb2VtIGNhbiBvbmx5IGJlIGFwcHJlY2lhdGVkIGJ5IHJlYWRpbmcgaXQgYWxvdWQsIHRvIHdpdDoKPgo+ICAgICAgICAgIFdha2Egd2FrYSBiYW5nIHNwbGF0IHRpY2sgdGljayBoYXNoLAo+ICAgICAgICAgIENhcmV0IHF1b3RlIGJhY2stdGljayBkb2xsYXIgZG9sbGFyIGRhc2gsCj4gICAgICAgICAgQmFuZyBzcGxhdCBlcXVhbCBhdCBkb2xsYXIgdW5kZXItc2NvcmUsCj4gICAgICAgICAgUGVyY2VudCBzcGxhdCB3YWthIHdha2EgdGlsZGUgbnVtYmVyIGZvdXIsCj4gICAgICAgICAgQW1wZXJzYW5kIGJyYWNrZXQgYnJhY2tldCBkb3QgZG90IHNsYXNoLAo+ICAgICAgICAgIFZlcnRpY2FsLWJhciBjdXJseS1icmFja2V0IGNvbW1hIGNvbW1hIENSQVNILgoKCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaG1hcnJuIChXb29keSwgMTMuIEp1biAxOTk3LCAwMDozNzoyOSk6CkljaCB3aWxsLi4uCi4uLmF1Y2ggZWlubWFsIHNvIGVpbiB0b3RhbCBkb29mZXMgdW5kIHp1ZmFlbGxpZ2VzIHNob3V0IGRlcyBNR3MKbWl0IG5lciBjbG9uZSBtc2cgcG9zdGVuISEhIHR1IGljaCBhbHNvIDopCgpBbGFub24gYmVzY2h3b2VydCBkdW5rbGUgTWFlY2h0ZS4KRmF0aW1hICAgSSBTIFQgICBKIEUgVCBaIFQgICBOIEkgQyBIIFQgICBNIEUgSCBSICAgRCBBICEhIQoKdy4tCgpwcy4gaWNoIHR1J3MgYXVjaCBiZXN0aW1tdCBuaWNodCB3aWVkZXIuIHZlcnNwcm9jaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERBVS1TdG9yeSA0IChCb2luZywgMTMuIEp1biAxOTk3LCAxMDoxNTo0NCk6Cn4jISBybj1LaWxhciBydD04NjYxNTAwNzggcmc9d2l0emUKfiMhIHRpZD04NjYxNTAwNzgKS2FubnN0IER1IG1pciBkZW4gV2l0eiBlcmtsYWVyZW4/CiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogREFVLVN0b3J5IDQgKEdyaW1tYm9ybiwgMTMuIEp1biAxOTk3LCAxMTowNToyMik6Cn4jISBybj1Cb2luZyBydD04NjYxODk3NDQgcmc9d2l0emUKfiMhIHRpZD04NjYxNTAwNzgKRXIgdmVyc3VjaHQgYW56dWRldXRlbiwgZGFzcyBkYXMgZGVtbyBtYW5pcHVsaWVydCB3YXIgdW5kIG5lYmVuYmVpIGF1Y2ggZGllClBvbGl6ZWkgYW5nZXJ1ZmVuIGhhdCwgZGllIGRhbm4gb2IgZGVzIEdlcGllcGVzIGdlbmVydnQsIGRlbiBBbnJ1Zgp6dXJ1ZWNrdmVyZm9sZ3RlIHVuZCBkZW0gbmFjaGdpbmcuCkhhYiBpY2hzIGVycmF0ZW4/CgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IERBVS1TdG9yeSA0IChCb2luZywgMTMuIEp1biAxOTk3LCAxMTowODoyMik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODY2MTkyNzIyIHJnPXdpdHplCn4jISB0aWQ9ODY2MTUwMDc4ClNvIGhhdCBlcyBtaXIgRnl0IGF1Y2ggZXJrbGFlcnQgLi4uIGFsbGVyZGluZ3MgbXVzcyBtYW4gZGF6dSB3aXNzZW4sIGRhc3MKJ0FUIE1PRFAnIHdvaGwgZWluIE1vZGVta29tbWFuZG8gaXN0IC4uLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEQVUtU3RvcnkgNCAoSGF0ZSwgMTMuIEp1biAxOTk3LCAxMTowOTo1MSk6Cn4jISBybj1Cb2luZyBydD04NjYxOTI5MDIgcmc9d2l0emUKfiMhIHRpZD04NjYxNTAwNzgKRXMgaXN0IEFUIE0wIERQIDotKQpNMCBmdWVyIGxlaXNlcyB3YWVobGVuIHVuZCBEUCBmdWVyIEltcHVsc3dhaGwKCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbHQgYWJlciBndXQgKHVuZCBNYWVubmVyZmVpbmRsaWNoKSAoQmxvb2R5aGFycnksIDEzLiBKdW4gMTk5NywgMTI6MjE6MTEpOgoKV2FydW0gZ2ViZW4gZGllIG1laXNzZXRuIE1hZW5uZXIgaWhyZW0gUGVuaXMgZWluZW4gTmFtZW4/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCldlaWwgc2llIG5pY2h0IDk1JSBJaHJlcyBUdW5zIHVuZCBIYW5kZWxucyBlaW5lbSBGcmVtZGVuIHVlYmVybGFzc2VuIHdvbGxlbi4KCgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogREFVLVN0b3J5IDQgKFJhbnRhbnBsYW4sIDEzLiBKdW4gMTk5NywgMTI6NDk6NDEpOgp+IyEgcm49SGF0ZSBydD04NjYxOTI5OTEgcmc9d2l0emUKfiMhIHRpZD04NjYxNTAwNzgKTWFsIGdhbnogQXVzZnVlaHJsaWNoOgpBVCBoZWlzc3QgQXR0ZW50aW9uIHVuZCBnZWh0IGFucyBNb2RlbSwgc292aWVsIHdpZSBhdWZnZXBhc3N0IER1IFNjaG5hcmNoc2Fjay4KCk1PIHdlaXNzIGljaCBuaWNodC4uLgoKRFAgaGVpc3NwIERpYWwgUHVsc2UgKEFsc28gd2FlaGxlIG1pdCBnZWtuYXR0ZXIpCgpOZW5udCBzaWNoIEhheWVzLUJlZmVobHNzYXR6IGdsYXViZSBpY2guCgpPZSogYXVjaCBtYWwgd2ljaHRpZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogREFVLVN0b3J5IDQgKEhhdGUsIDEzLiBKdW4gMTk5NywgMTI6NTg6MjIpOgp+IyEgcm49UmFudGFucGxhbiBydD04NjYxOTg5ODEgcmc9d2l0emUKfiMhIHRpZD04NjYxNTAwNzgKRGFzIGlzdCBOSUNIVCBNTyAoRW0gT2hoKSBzb25kZXJuIE0wIChFbSBOdWxsKQpIYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogREFVLVN0b3J5IDQgKE5pcmRhdm8sIDEzLiBKdW4gMTk5NywgMTM6MDQ6MjgpOgp+IyEgcm49SGF0ZSBydD04NjYxOTk1MDIgcmc9d2l0emUKfiMhIHRpZD04NjYxNTAwNzgKICBTZWkgZG9jaCBuaWNodCBzbyBzdHJlbmcgbWl0IE9ldHRpLiBFaW4gc2FjaGxpY2hlciBBcnRpa2VsIHZvbiBpaG0gaXN0IGphCm1hbCB3YXMgZ2FueiBOZXVlcyEgKE9ldHRpLCBiaXN0IGR1IGtyYW5rIGdld29yZGVuPykKCiAgICAgIEVpbmUgVG9ubmUgU2VuZiwgdm9uIE5pcmRhdm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IERBVS1TdG9yeSA0IChHbm9tZSwgMTMuIEp1biAxOTk3LCAxNToyOToxOCk6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTg2NjE5ODk4MSByZz13aXR6ZQp+IyEgdGlkPTg2NjE1MDA3OAoqbGFjaCoKPiBNYWwgZ2FueiBBdXNmdWVocmxpY2g6Cj4gLi4uCj4gTU8gd2Vpc3MgaWNoIG5pY2h0Li4uCj4gLi4uCgpnbk9tZSwgKlJPVEZMKgpubgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogREFVLVN0b3J5IDQgKFJhbnRhbnBsYW4sIDEzLiBKdW4gMTk5NywgMTU6NDM6NTUpOgp+IyEgcm49R25vbWUgcnQ9ODY2MjA4NTU4IHJnPXdpdHplCn4jISB0aWQ9ODY2MTUwMDc4CipzZXVmeiogR25vbWUgKnNldWZ6IHNjaHdlcioKCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHNjaG1hcnJuIChBc21vZGlzLCAxMy4gSnVuIDE5OTcsIDIxOjQzOjQ3KToKfiMhIHJuPVdvb2R5IHJ0PTg2NjE1NTA0OSByZz13aXR6ZQp+IyEgdGlkPTg2NjE1NTA0OQpXbyB3YXIgZGEgamV0enQgZWluIHNob3V0ID8/IEljaCB0aXBwZSBlaGVyIGF1ZiBpbmZvcm0gZWluIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHNjaG1hcnJuIChXb29keSwgMTQuIEp1biAxOTk3LCAwMTozNToyOSk6Cn4jISBybj1Bc21vZGlzIHJ0PTg2NjIzMTAyNyByZz13aXR6ZQp+IyEgdGlkPTg2NjE1NTA0OQpBdWNoIGZhbHNjaCwgZXMgd2FyIHdvaGwgZWluIGVyd2FydGUuIEFiZXIgZGFzIHdhciBzbyBsYXV0LApkYXNzIGljaCBlcyBmdWVyIGVpbiBzaG91dCBoaWVsdC4KCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEQVUtU3RvcnkgNiAoVHVuaXhndXQsIDE2LiBKdW4gMTk5NywgMDk6MDI6MzIpOgp+IyEgcm49S2lsYXIgcnQ9ODY2MTUwMTQ0IHJnPXdpdHplCn4jISB0aWQ9ODY2MTUwMTQ0CkljaCBlcmlubmVyJyBtaWNoIGltbWVyIGFuIGRpZSBUeXBlbiBiZWkgdW5zLCBkaWUgcmF0bG9zIGFtIE5hZGVsZHJ1Y2tlcgpzdGVoZW4gdW5kIHNpY2ggd3VuZGVybiwgd2FydW0gYXVjaCBuYWNoIGRlbSA0LiEhISEgKG5pY2h0IHVlYmVydHJpZWJlbikKRHJ1Y2t2ZXJzdWNoIG51ciBlaW4gIkNhbm5vdCBwcmludCBwb3N0c2NyaXB0IiBkYSBzdGVodC4uLgoKVHVOaXhHdXQKClBTOiBEYSBkcnVja2VuIE51ciBJbmZvcm1hdGlrLVN0dWRlbnRlbi4uLiAtIFNvd2FzIGZydXN0ZXQgZG9jaC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEQVUtU3RvcnkgNiAoQ2FyYWRocmFzLCAxNi4gSnVuIDE5OTcsIDE3OjE2OjE3KToKfiMhIHJuPVR1bml4Z3V0IHJ0PTg2NjQ0NDU1MiByZz13aXR6ZQp+IyEgdGlkPTg2NjE1MDE0NApPY2gsIHdpZXNvPyBJc3QgZG9jaCByZWNodCBub3JtYWwsIGRhc3MgSW5mb3JtYXRpa2VyIHZlcnN1Y2hlbiwgYXVmCmRlbSBscHIgKGxpbmUgcHJpbnRlcikgcG9zdHNjcmlwdC1maWxlcyB2b24gODAwIEsgTGFlbmdlIGF1c3p1ZHJ1Y2tlbi4KCk1laXN0IHN0ZWhlbiBkaWUga3VyeiB2b3IgZGVtIERpcGxvbS4gOikgKG5laW4sIGljaCB3YXJzIG5pY2h0ISkKCiAgQmVyZ2NoZW4gUm90aG9ybiBDYXJhZGhyYXMgClBTOiBCZWkgdW5zIGtsYXBwdCBkYXMgYXVzZHJ1Y2tlbiBzb2dhciwgbnVyIGtvbW10IG5peCBnZXNjaGVpdGVzIHJhdXMgJiYKICAgUGFzc2F1IGhhdCBuYWNoIFplaXR1bmdzYmVyaWNodGVuIChrZWluZSBBaG51bmcgbWVociwgd28gZGFzIHN0YW5kKQogICBkaWUgYmVzdGUgSW5mb3JtYXRpay1GYWt1IHZvbiBCYXllcm4uLi4gT2ggR290dCwgSGVyciBQZmFycmVyIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogREFVLVN0b3J5IDYgKFR1bml4Z3V0LCAxNy4gSnVuIDE5OTcsIDA3OjMwOjU3KToKfiMhIHJuPUNhcmFkaHJhcyBydD04NjY0NzQxNzcgcmc9d2l0emUKfiMhIHRpZD04NjYxNTAxNDQKV29iZWkgZGFzICJ2b24gQmF5ZXJuIiBhbGxlcyByZWxhdGl2aWVydCwgd2FzIEh1ZWdlbGNoZW4/Pz8/IDtvKSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWYXJpYXRpb24gZGVzIFByaW16YWhsZW5wcm9ibGVtcyAoR3JpbW1ib3JuLCAxNy4gSnVuIDE5OTcsIDA5OjE5OjA0KToKRXMgZ2VodCB1bSBkZW4gQmV3ZWlzLCBkYXNzIGFsbGUgdW5nZXJhZGVuIFphaGxlbiBQcmltemFobGVuIHNpbmQuCkRlciBNYXRoZW1hdGlrZXI6ICIxIGlzdCBwcmltLCAzIGlzdCBwcmltLCA1IGlzdCBwcmltLCBSZXN0IGZvbGd0IGR1cmNoIAogICAgdm9sbHN0YWVuZGlnZSBJbmR1a3Rpb24uIgpEZXIgUGh5c2lrZXI6ICIxIGlzdCBwcmltLCAzIGlzdCBwcmltLCA1IGlzdCBwcmltLCA3IGlzdCBwcmltLCA5IGlzdC4uLmFlaCwgCiAgICBNZXNzZmVobGVyLCAxMSBpc3QgcHJpbS4uLiBzaWVodCByaWNodGlnIGF1cy4iCkRlciBJbmdlbmlldXI6IDoxIGlzdCBwcmltLCAzIGlzdCBwcmltLCA1IGlzdCBwcmltLCA3IGlzdCBwcmltLCA5IGlzdCBwcmltLAogICAgMTEgaXN0IHByaW0uLi4gamEsIGljaCBkZW5rZSwgZGFzIHN0aW1tdC4iCkRlciBJbmZvcm1hdGlrZXI6ICJJaHIgbWFjaHQgZGFzIHZpZWwgenUgbXVlaHNhbSwgaWNoIGhhYiBkYSBlaW4ga2xlaW5lcwogICAgUHJvZ3JhbW0gZGF6dSBnZXNjaHJpZWJlbiwgZGFzcyBkYXMgdmllbCBiZXF1ZW1lciBlcmxlZGlndC4iIExpZXN0IHZvbQogICAgTW9uaXRvciBhYjogIjEgaXN0IHByaW0sIDEgaXN0IHByaW0sIDEgaXN0IHByaW0sIDEgaXN0IHByaW0uLi4iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2huIGRhdSAoQmFib29uLCAxNy4gSnVuIDE5OTcsIDA5OjE5OjU0KToKT2IgZGllIFN0b3J5IGpldHp0IHdhaHIgaXN0IG9kZXIgbmljaHQgd2Vpc3MgaWNoIG5pY2h0LCBhYmVyIERvc2VuLVVzZXJuIGlzdApqYSBhbGxlcyB6dXp1dHJhdWVuLgpBbHNvOgoKRWluIGZyaXNjaGdlYmFja2VuZXIgQ29tcHV0ZXJiZXNpdHplciBrb21tdCBuYWNoIGVpbiBwYWFyIFRhZ2VuIGluIGRlbiBMYWRlbgpnZXN0dWVybXQgdW5kIGJlc2Nod2VydCBzaWNoIGJpdHRlcmxpY2gsIGRhc3Mgc2VpbiBSZWNobmVyIHNjaG9uIGthcHV0dCB3YWVyZSwKZGVyIEthZmZlZXRhc3NlbmhhbHRlciBzZWkgYWJnZXJpc3Nlbi4KVmVya2FldWZlciAoaXJyaXRpZXJ0KTogV2FzIGZ1ZXIgZWluIEthZmZlZXRhc3NlbmhhbHRlcj8KRGFyYXVmaGluIGhhZWx0IGlobSBkZXIgS3VuZGUgZGVuIGFiZ2VyaXNzZW5lbiBUZWxsZXIgZGVzIENELVJvbWxhdWZ3ZXJrcwp1bnRlciBkaWUgTmFzZS4KCkJhYm9vbiAoZXJsZWJ0IHNjaG9uIGFscyBibG9zc2VyIEJlbnV0emVyIGRlcyBSWiBnZW51ZyBzZWx0c2FtZXMsIGdsYXVidCBkaWUKU3RvcnkgYWxzbykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IG5vY2huIGRhdSAoU3RhaGxkb3JuLCAxNy4gSnVuIDE5OTcsIDA5OjMwOjExKToKfiMhIHJuPUNhdW5vIHJ0PTg2NjUzMjM5OCByZz13aXR6ZQp+IyEgdGlkPTg2NjUzMTk5NApEYXMgaXN0IGVpbiB0eXBpc2NoZXIgRmFsbCB2b24gIk15dGhlbiBkZXIgTW9kZXJuZSIuCgpTVEFITCBnbGF1YnQgbmljaHQsIGRhc3MgamVtYW5kIG4nQ0QtUk9NIExhdWZ3ZXJrIG1pdCBlaW5lbSBLYWZmZWVoYWx0ZXIKdmVyd2V4ZWx0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogbm9jaG4gZGF1IChDYXVubywgMTcuIEp1biAxOTk3LCAxMToxMTowOSk6Cn4jISBybj1MaSBydD04NjY1MzgzMTMgcmc9d2l0emUKfiMhIHRpZD04NjY1MzE5OTQKTmEsIGljaCB3ZWlzcyBuaWNodCAuLi4KU2VsYnN0IGVybGVidDogU2l0enQgZWluZXIgdm9yIGRlbSBDb21wdXRlciB1bmQgZnJhZ3Q6IFdhcyBpc3QgZGVubiBudW4gZGllClNvZnR3YXJlIHVuZCB3YXMgZGllIEhhcmR3YXJlIC4uLi4KSWNoIGdlYmUgZGVtIEthZmZldGFzc2VuaGFsdGVyIGltbWVyIG5vY2ggNSUgV2FocnNjaGVpbmxpY2hrZWl0LiBJY2ggaGFiIGlobgphdWYgaXJnZW5kZWluZXIgV2Vic2l0ZSB1bnRlciBUZWNoLVN1cHBvcnQgZ2VsZXNlbiAuLi4uCgpDLiBObwoKIk5pY2h0cyBpc3QgaWRpb3RlbnNpY2hlciwgSWRpb3RlbiBzaW5kIGVpbmZhbGxzcmVpY2guIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogbm9jaG4gZGF1IChQYW1wZXJzLCAxNy4gSnVuIDE5OTcsIDExOjEyOjU4KToKfiMhIHJuPUNhdW5vIHJ0PTg2NjUzODY2OSByZz13aXR6ZQp+IyEgdGlkPTg2NjUzMTk5NApJc3QgZG9jaCBnYW56IGVpbmZhY2g6CkhhcmR3YXJlIGlzdCBkYXMsIHdhcyBrYXB1dHRnZWh0LCB3ZW5uIG1hbidzIHJ1bnRlcnNjaG1laXNzdC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBub2NobiBkYXUgKENhdW5vLCAxNy4gSnVuIDE5OTcsIDExOjEzOjUwKToKfiMhIHJuPVBhbXBlcnMgcnQ9ODY2NTM4Nzc4IHJnPXdpdHplCn4jISB0aWQ9ODY2NTMxOTk0Ck1laW5lIEFudHdvcnQgd2FlcmU6IFppZWgncyBpaG0gdWViZXJuIFNjaGFlZGVsLCBkYW5uIHdlaXNzIGVyJ3MgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgd2FocmUgV2l0eiAoQ2F1bm8sIDE3LiBKdW4gMTk5NywgMTE6MjU6NTApOgpXaXJrbGljaCBwYXNzaWVydCAoVW5kIHp3YXIgZWluZXIgRnJldW5kaW4gbWVpbmVyIFNjaHdlc3Rlcik6CgpFaW4gTWFlZGNoZW4sIGV0d2FzIHppZXJsaWNoLCBrb21tdCBpbiBlaW4gQmVrbGVpZHVuZ3NnZXNjaGFlZnQsIGZpbmRldCBkb3J0CmVpbiBULVNoaXJ0IHVuZCBmcmFndCBlaW5lbiBBbmdlc3RlbGx0ZSwgd2VsY2hlIEdyb2Vzc2UgZGFzIGlzdC4KRGVyIGFudHdvcnRldDogRgpEaWUgS3VuZGluIGd1Y2t0IHZlcmR1dHp0LCBtZWludDogV2llIGJpdHRlPwpEZXIgVmVya2FldWZlciB3aWVkZXJob2x0OiBGCkRhIGZyYWd0IGRhcyBNYWVkZWw6IEY/IFdhcyBoZWlzc3QgZGFzIGRlbm4/CkRhIHNhZ3QgZGVyIFZlcmthZXVmZXI6IEYsIHdpZTogZm1hbGwuCgpQZWlubGljaCwgcGVpbmxpY2ggLi4uLgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBIYW1tZXIhIChHbm9tZSwgMTcuIEp1biAxOTk3LCAxMTozMDoxMCk6CmFsc28gaWNoIHdpbGwgZGFubiBtYWwgYXVjaCBldHdhcyBkYXp1c3RldWVybi4uLiA6LSkKClBDLVBvb2wgZGVyIEh1bWJvbGR0LVVuaToKa29tbXQgZWluIHN0dWRlbnQgenUgZGVuIGF1ZnNpY2h0cy1wZXJzb25lbi4Kc3R1ZGVudDogbWVpbiBjb21wdXRlciBmdW56dCBuaWNodCByaWNodGlnLgphZG1pbjogYWhhLCBvaywgaWNoIGtvbW0gbWFsIG1pdCBoaW50ZXIuCmJlaWRlIGdlaGVuIG51biB6dW0gYmVzYWd0ZW4gcmVjaG5lci4KYWRtaW46IGhtLCBlciBsYXVlZnQgZG9jaC4uLgpzdHVkZW50OiBuZWluLiBkYSBydWVocnQgc2ljaCBuaXguLi4gKHN0dWRlbnQgbmltbXQgZGllIG1hdXMgaW4gZGllIGhhbmQKICAgICAgICAgdW5kIGtsaWNrdCBhdWYgZGVuIG1hdXN0YXN0ZW4gaGVydW0gcmljaHR1bmcgYmlsZHNjaGlybS4uLikKZGVyIGFkbWluIGd1Y2t0IG51ciB1bmdsYWV1YmlnIHVuZCBnZWh0IGtvbW1lbnRhcmxvcyB1bmQga29wZnNjaHVldHRlbG5kCndpZWRlciBhbiBzZWluZW4gcGxhdHouLi4KCmduT21lLCBoYXQgZXMgendhciBudXIgZXJ6YWVobHQgYmVrb21tZW4sIGdsYXVidCBlcyBhYmVyLCB3ZWlsIHNlbGJzdCBkYQpzY2hvbiBtYWwgZ2VhcmJlaXRldC4uLiA6LSgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgSGFtbWVyISAoQ2F1bm8sIDE3LiBKdW4gMTk5NywgMTE6MzE6NDcpOgp+IyEgcm49R25vbWUgcnQ9ODY2NTM5ODEwIHJnPXdpdHplCn4jISB0aWQ9ODY2NTM5ODEwClVuZCBkYW5uIGdhYnMgZGEgbm9jaCBkZW4gREFVLCBkZXIgbWVpbnRlLCBkYXMgS2FiZWwgenVtIEZ1c3NwZWRhbCBzZWkgenUga3VyegouLi4gKERlciB3YXIgaW0gUmVhZGVyJ3MgRGlnZXN0KS4KCkMuIE5vCi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERlciBIYW1tZXIhIChSYW50YW5wbGFuLCAxNy4gSnVuIDE5OTcsIDExOjM5OjUyKToKfiMhIHJuPUNhdW5vIHJ0PTg2NjUzOTkwNyByZz13aXR6ZQp+IyEgdGlkPTg2NjUzOTgxMApIbW1tbW0uLi4KCkZ1ZXIgYWxsZSAiQXVmRGF1Z2VyaW5nc2NoYWV0emluZ2hlcmJhYmxpY2tlbmRlbi1TdXBlcmhhY2tlciIuIFZlcndlaXNlIGljaAptYWwgYXVmIERlbiBTdGFyLVRyZWNrIChURWlsIDUgb2RlciA2LCBERXIgbWl0IGRlbiBXYWxlbiwgamVkZW5mYWxscykKClNjb3R0eSB2b3IgZGVtIENvbXB1dGVyIChXZXIgZGVuIEZpbG0ga2VubnQsIHdlaXNzIHdhcyBpY2ggbWVpbmUuLi4pCgpFcyBpc3QgZWJlbiBkb2NoIGFsbGVzIGVpbmUgRnJhZ2UgZGVzIEJlenVnc3N5c3RlbXMuLi4KCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIEhhbW1lciEgKEdyYWxrb3IsIDE3LiBKdW4gMTk5NywgMTI6MzI6MTApOgp+IyEgcm49UmFudGFucGxhbiBydD04NjY1NDAzOTIgcmc9d2l0emUKfiMhIHRpZD04NjY1Mzk4MTAKRXMgd2FyIFRlaWwgNC4KVGhlIFZveWFnZSBIb21lLgpVbmQgSUNIIGZhbmQgZGllIFNhY2hlIEVDSFQga29lc2xpY2gsIHdhciBoYWx0IGVpbiBBcHBsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVuZGUgZWluZXMgUEMtVXNlcnMuLi4uIChLaWxhciwgMTcuIEp1biAxOTk3LCAxODoxMjoxNCk6CiAgICAgICAgICAgICAgVG9wIDEwIC0gR3JuZGUgZnIgZGFzIHZvcnplaXRpZ2UgRW5kZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDLUJlbnV0emVybgoKCgogICAgMS4pIFNpZSB2ZXJzdWNoZW4gbWl0IFdpbmRvd3MgenUgYXJiZWl0ZW4uIERhcyBpc3Qgc28gZGVwcmltaWVyZW5kCiAgICAgICAgdW5kIGRlciBVc2VyIHN0cnp0IHNpY2ggaXJnZW5kd2FubiBhdXMgZGVtIEZlbnN0ZXIuCgoKCiAgICAyLikgV2luZG93cyBtYWNodCBlaW5lbiBGZWhsZXIgdW5kIGZ1bmt0aW9uaWVydCEgRGVyIHRvdGFsCiAgICAgICAgdmVyc2NocmVja3RlIFBDLUJlbnV0emVyIGRlbmt0IGFuIGRlbiBXZWx0dW50ZXJnYW5nIHVuZCBlcnNjaGlldAogICAgICAgIHNpY2guCgoKCiAgICAzLikgVXNlciB3YXJ0ZXQgYXVmIFdpbmRvd3MgdW5kIHN0aXJidCBhbiBBbHRlcnNzY2h3Y2hlLgoKCgogICAgNC4pIFVzZXIgdmVyc3VjaHQsIFdpbmRvd3Mgdm9uIERpc2sgenUgc3RhcnRlbiB1bmQgdm9tIHZpZWxlbgogICAgICAgIERpc2tldHRlbndlY2hzZWwgZmxsdCBpaG0gZGVyIEFybSBhYiB1bmQgZXIgdmVyYmx1dGV0LgoKCgogICAgNS4pIFVzZXIgZmhydCB6dSBWb2JpcyB1bmQgc3RlbGx0IHNpY2ggYnJhdiBoaW50ZW4gYW5zIEVuZGUgZGVyCiAgICAgICAgU2NobGFuZ2UuIExlaWRlciBpc3QgZGFzIEVuZGUgZGVyIFNjaGxhbmdlIGF1ZiBlaW5lciB2aWVsLQogICAgICAgIGJlZmFocmVuZW4gSGF1cHRzdHJhZSB1bmQgZGVyIFVzZXIgd2lyZCB2b24gZWluZW0gODB0LUxLVwogICAgICAgIHBsYXR0Z2VmYWhyZW4sIHdvIGRpY2sgIk1vdG9yb2xhIiBhdWYgZGVyIGVpbmVuIHVuZCAiSW50ZWwKICAgICAgICBPdXRzaWRlIiBhdWYgZGVyIGFuZGVyZW4gU2VpdGUgc3RlaHQuCgoKCiAgICA2LikgVXNlciBzdGFydGVkIGVpbiBTcGllbCB1bmQgZXMgbHVmdCBhdWYgQW5oaWViIG9obmUgdm9yaGVyaWdlCiAgICAgICAgS29uZmlndXJhdGlvbiwgb2huZSBSdWNrZWxuLCBtaXQgMSBNQiBTcGVpY2hlciEgRGFzIGhsdCBkZXIKICAgICAgICBlcmZhaHJlbnN0ZSBQQy1CZW51dHplciBuaWNodCBhdXM6IEhFUlpJTkZBUktUIQoKCgogICAgNy4pIFVzZXIgc2llaHQgZWluZW4gQW1pZ2EgNDAwMCBtaXQgR3JhZmlra2FydGUgaW4gQWt0aW9uIHVuZCB3aXJkCiAgICAgICAgZGFkdXJjaCBiZWtlaHJ0LiBFciB3aWZ0IHNlaW5lbiBQQyBhdXMgZGVtIEZlbnN0ZXIsIHZlcmJyZW5udAogICAgICAgIGZlaWVybGljaCBkaWUgV2luZG93c2Rpc2tldHRlbiB1bmQga2F1ZnQgc2ljaCBub2NoIGhldXRlIGVpbmVuCiAgICAgICAgQW1pZ2EgNDAwMCBtaXQgQUxMRU0uCgoKCiAgICA4LikgRXIgaGF0IGVpbiBTcGllbCBmYWxzY2gga29uZmlndXJpZXJ0IHVuZCBkZXIgU291bmQgd2lyZCBiZXIgZGVuCiAgICAgICAgU3BlYWtlciBhdXNnZWdlYmVuLiBEYSBlciBlaW5lbiBLb2xhbmktUmVjaG5lciBoYXQgdW5kIGxlaWRlcgogICAgICAgIGtlaW4gc3BpdHplciBHZWdlbnN0YW5kIGluIGRlciBVbWdlYnVuZyBsaWVndCwgZGFzIFByb2dyYW1tIGRlbgogICAgICAgIFJlc2V0IGdlc3BlcnJ0IGhhdCB1bmQgZGVyIFVzZXIgZGVuIFJlY2huZXIgbmljaHQgYXVzc2NoYWx0ZW4KICAgICAgICBrYW5uLCB3ZWlsIGluIHNlaW5lciBSYW1kaXNrL0NhY2hlIG5vY2ggRGF0ZW4gbGllZ2VuIGtubnRlbiwKICAgICAgICB3aXJkIGRlciBVc2VyIHdhaG5zaW5uaWcgdW5kIGx1ZnQgc29sYW5nZSBtaXQgZGVtIEtvcGYgZ2VnZW4KICAgICAgICBkZW4gUEMsIGJpcyBkZXIgZXhwbG9kaWVydCBvZGVyIGRpZSBNbm5lciBtaXQgZGVuIHdlaWVuIEtpdHRlbG4KICAgICAgICBrb21tZW4uCgoKCiAgICA5LikgVXNlciBmaHJ0IHNlaW4gV2luZG93cyBhdWYgZWluZW0genUga2xlaW5lbSBSZWNobmVyLCBtaXQgZGVyCiAgICAgICAgRm9sZ2UsIGRhIFdpbmRvd3MgdGllcmlzY2ggYXVmIGRlciBQbGF0dGUgYWNrZXJ0IHVuZCBkaWVzZQogICAgICAgIGRhZHVyY2ggc28gaGVpIHdpcmQsIGRhIGVzIHp1IGVpbmVtIENoaW5hLVN5bmRyb20ga29tbXQuIEVzCiAgICAgICAgZmluZGV0IGF1ZmdydW5kIGRlciBob2hlbiBUZW1wZXJhdHVyZW4gZWluZSBLZXJuc2NobWVsemUgc3RhdHQKICAgICAgICB1bmQgZGllIFBsYXR0ZSBmcml0IHNpY2ggZHVyY2ggZGllIEVyZGUgYXVmIGRpZSBhbmRlcmUgU2VpdGUKICAgICAgICBkZXJzZWxiZW4uCgoKCiAgICAxMC4pIFVzZXIga2xpY2t0IG5pY2h0c2FobmVuZCBlaW4gTWVuIGFuIHVuZCBkZWtvZGllcnQgc28gdmVyLQogICAgICAgICBzZWhlbnRsaWNoIGRpZSBXaW5kb3dzLUhpZ2hzY29yZS4gV2luZG93cyB3dXJkZSB2b24gTWljcm9zb2Z0CiAgICAgICAgYW0gQW5mYW5nIGFscyBTcGllbCBnZWRhY2h0LiBOdXIgZGllIFBDLUJlbnV0emVyIGhhYmVuIGRhcyBTcGllbAogICAgICAgIGZyIGVpbmUgQmVudXR6ZXJvYmVyZmxjaGUgZ2VoYWx0ZW4gdW5kIE1pY3JvLVNvZnQga29ubnRlIGtlaW5lbgogICAgICAgIFJja3ppZWhlciBtZWhyIG1hY2hlbi4gVXNlciBzdGlyYnQsIGFuIFdlbHRiaWxkdmVybmRlcnVuZzoKICAgICAgICBXaW5kb3dzPVNwaWVsPz8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBub2NobiBkYXUgKFJhZmZpLCAxNy4gSnVuIDE5OTcsIDE4OjUxOjEzKToKfiMhIHJuPVN0YWhsZG9ybiBydD04NjY1MzI2MTEgcmc9d2l0emUKfiMhIHRpZD04NjY1MzE5OTQKSXN0IGdhcmFudGllcnQgZ2xhdWJ3dWVyZGlnLgoKSWNoIGthbm4gendhciBudXIgZWluZSBkZXJhcnRpZ2UgR2VzY2hpY2h0ZSwgYWJlciB3ZW5uIGljaCBlcwpuaWNodCBfc2VsYnN0XyBlcmxlYnQgaGFldHRlLCB3dWVyZGUgaWNocyBuaWNodCBnbGF1YmVuLgoKS29sbGVnaW4gYmVrb21tdCBlaW5lbiBuZXVlbiBQQyAtIElocmUgZXJzdGUgV2luRE9PRi9Eb3NlLiBTaWUKd2FyIGFiZXIgbmljaHQgbmV1IGFtIENvbXB1dGVyLCBzb25kZXJuIGhhdHRlIGJlcmVpdHMgdWViZXIKNSBKYWhyZSBhbiBlaW5lciBFTVMgMjgwMCAoWGVyb3ggU3RhciAtIGRpZSBiZXN0ZSBLaXN0ZSBkaWUgamUKZnVlcnMgQnVlcm8gZ2ViYXV0IHd1cmRlKSBnZWFyYmVpdGV0LgoKU2llIGhhdCBhdWNoIHNjaG9uIG5lbiBXb3JkIEt1cnMgZ2VtYWNodCB1bmQgc2V0enQgc2ljaCBhbHNvCmZsZWlzc2lnIGhpbiB1bmQgaGFja3QgaWhyZW4gZXJzdGVuIEJyZWlmIHJlaW4uIE51ciBkYXMgbWl0CmRlbSBBdXNkcnVja2VuIGtsYXBwdCBuaWNodCBzbyBnYW56LCBhbHNvIHJpZWYgc2llIHVtIEhpbGZlLgpEZXIgUEMgd2FyIG5vY2ggbmljaHQgYW0gTmV0eiAoRGFzIG5ldWUgUEMtTmV0eiB3YXIgbm9jaCBuaWNodApmZXJ0aWcgdW5kIGRhcyBiZXN0ZWhlbmRlIEV0aGVybmV0IHdhciBqYSBhbHRtb2Rpc2NoKSB1bmQgZXMKd2FyIGtlaW4gRHJ1Y2tlciBhbmdlc2NobG9zc2VuLiBBdWYgZGllIEZyYWdlLCB3aWUgc2llIGRlbm4KZHJ1Y2tlbiB3b2xsdGUsIGhhdCBzaWUgYXVmIGRhcyBEaXNrZXR0ZW5sYXVmd2VyayBnZWRldXRldAooNSAxLzQgWm9sbCkgdW5kIG1pciBlaW4gaHVlYnNjaCBnZWZhbHRldGVzIEJsYXR0IFBhcGllcgpnZXplaWd0LiBTaWUgaGF0IGxhbmdlIG5hY2ggZGVyIE1vZWdsaWNoa2VpdCB6dW0gRHJ1Y2tlbgpnZXN1Y2h0IHVuZCBtaXIgYXVjaCBlcmtsYWVydCBkYXMgc2llIHNpY2ggc2Nob24gZ2V3dW5kZXJ0CmhhdCB3aWUgZGVyIEtuaWNrIHdpZWRlciByYXVza29tbXQuCgpEZXIgRHJ1Y2tlciBpc3QgZGFubiAzIFdvY2hlbiBzcGFldGVyIGdlbGllZmVydCB3b3JkZW4uIFNpZQp3YWVyZW5kIGRlcyBnYW56ZW4gV29yZGt1cnNlcyBrZWluZW4gZWluemlnZW4gRHJ1Y2tlciB6dQpHZXNpY2h0IGJla29tbWVuLCB1bmQgZGllIFByaW50c3RhdGlvbiBhbiBkZXIgYWx0ZW4gNTgwMApzdGFuZCBiZWkgZGVuIEtvcGllcmVuIHVuZCBzY2hhdXRlIGF1Y2ggdW5nZWZhZXIgc28gYXVzIDopCihVbmQgRGlza2V0dGVubGF1ZndlcmtlIGdhYnMgYW4gZGVyIGFsdGVuIFdvcmtzdGFpb24gYXVjaApuaWNodCAtIGRhZnVlciBhYmVyIG5lbiAyMCBab2xsIG1vbml0b3IgOiggKQoKR3J1c3MKSC4KKEljaCB3aWxsIHdpZWRlciA1ODAwZXIgYWxzIEJ1ZXJvbWFzY2hpbmVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKREFVIChEaWVkZXIsIDE4LiBKdW4gMTk5NywgMDk6NTg6MTApOgpUamEsIGljaCB3YXIgbmV1bGljaCBiZWkgbmVtIEt1bmRlbiwgd28gZGFzIExhdWZ3ZXJrIG5pY2h0IG1laHIgZ2luZy4uLgpEZW4gUmVjaG5lciBhdWZnZW1hY2h0OiBBbGxlcyB2b2xsZXIgc2Nob2VuZXIgYmxhdWVyIFRpbnRlIQpFcyBzdGVsbHRlIHNpY2ggaGVyYXVzLCBkYXNzIGVyIHNlaW5lbiBUaW50ZW5rbGVja3NlciBuYWNoZnVlbGxlbiB3b2xsdGUuLi4gOikKClBTOiBXaXJrbGljaCBwYXNzaWVydCEgKmtpY2hlcioKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogREFVLVN0b3J5IDYgKEdhc3QxLCAxOS4gSnVuIDE5OTcsIDEzOjQxOjM1KToKfiMhIHJuPVR1bml4Z3V0IHJ0PTg2NjUyNTQ1NyByZz13aXR6ZQp+IyEgdGlkPTg2NjE1MDE0NAo+IFdvYmVpIGRhcyAidm9uIEJheWVybiIgYWxsZXMgcmVsYXRpdmllcnQsIHdhcyBIdWVnZWxjaGVuPz8/PwpVbnRlciBhbmRlcm0gc2NobGllc3MgZGFzIEZyYW5rZW4gdW5kIFNjaHdhYmVuIHNjaG9ubWFsIGF1cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IERBVS1TdG9yeSA2IChHcmltbWJvcm4sIDE5LiBKdW4gMTk5NywgMTM6NDU6NDQpOgp+IyEgcm49R2FzdDEgcnQ9ODY2NzIwNDk1IHJnPXdpdHplCn4jISB0aWQ9ODY2MTUwMTQ0Ck5laW4sIHdpZXNvIHNvbGx0ZSBlcz8KCkxldHp0bGljaCBpc3RzIGRvY2ggZWdhbCwgd2llIGRpZSBCYXllcm4gaWhyZSBTdGFlbW1lIHVudGVyZWluYW5kZXIKYmV6ZWljaG5lbi4gT0ssIGZ1ZXIgZWluZSBNdWVja2Ugc2VoZW4gdmllbGxlaWNodCBhbGxlIGFuZGVyZW4gdmVyc2NoaWVkZW4KYXVzLCBhYmVyIGZ1ZXIgZGVuIHVudm9yZWluZ2Vub21tZW5lbiBCZW9iYWNodGVyIHZvbiBhdXNzZXJoYWxiIGlzdCBkYXMgbnVyCmVpbiBsYWVzdGlnZXIgTXVlY2tlbnNjaHdhcm0uLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogREFVLVN0b3J5IDYgKEx1ZywgMTkuIEp1biAxOTk3LCAxODozMjozMik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODY2NzIwNzQ0IHJnPXdpdHplCn4jISB0aWQ9ODY2MTUwMTQ0CkFlaGVtLAoKZGllIHdlbmlnc3RlbiBCYXllcm4gbmVobWVuIHdhaHIsIGRhcyBpbiBkZW4gYWVsdGVzdGVuIFBoYXNlbiwgZGVyCmJhanV3YXJpc2NoZW4gUmVpaGVuZ3JhZWJlciBlaW4gbHVzdGlnZXMgTWlzY2hpbWFzY2hpIGF1cyBUaHVlcmluZ2VybiwKRWxiZ2VybWFuZW4sIEFsYW1hbmVuLCBGcmFua2VuIGV0Yy4gaGVycnNjaHQuCgpHcmlucwpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClByaXNvbmVyIChXb29keSwgMjAuIEp1biAxOTk3LCAwMDozMjowMik6CgpBbiBlc2NhcGVkIGNvbnZpY3QgYnJva2UgaW50byBhIGhvdXNlIGFuZCB0aWVkIHVwIGEgeW91bmcgY291cGxlIHdobyBoYWQKYmVlbiBzbGVlcGluZyBpbiB0aGUgYmVkcm9vbS4KQXMgc29vbiBhcyBoZSBoYWQgYSBjaGFuY2UsIHRoZSBodXNiYW5kIHR1cm5lZCB0byBoaXMgdm9sdXB0dW91cyB5b3VuZwp3aWZlLCBib3VuZCB1cCBvbiB0aGUgYmVkIGluIGEgc2tpbXB5IG5pZ2h0Z293biwgYW5kIHdpc3BlcmVkLCAiSG9uZXksIHRoaXMKZ3V5IGhhc24ndCBzZWVuIGEgd29tYW4gaW4geWVhcnMuIEp1c3QgY29vcGVyYXRlIHdpdGggYW55dGhpbmcgaGUgd2FudHMuIElmCmhlIHdhbnRzIHRvIGhhdmUgc2V4IHdpdGggeW91LCBqdXN0IGdvIGFsb25nIHdpdGggaXQgYW5kIHByZXRlbmQgeW91IGxpa2UKaXQuIE91ciBsaXZlcyBkZXBlbmQgb24gaXQuIgoiRGVhciwiIGhpcyB3aWZlIGhpc3NlZCwgc3BpdHRpbmcgb3V0IGhlciBnYWcsICJJJ20gc28gcmVsaWV2ZWQgeW91IGZlZWwKdGhhdCB3YXksIGJlY2F1c2UgaGUganVzdCB0b2xkIG1lIGhlIHRoaW5rcyB5b3UgaGF2ZSBhIHJlYWxseSBuaWNlLAp0aWdodC1sb29raW5nIGFzcy4iCgppY2gta2xhdWUtbmllbWFscy13aXR6ZS12b24tbWFpbGluZ2xpc3RzLCB3b29keS4tIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTZXRQcm9wKFBfTk9UX1NUT0xFTiwwKTsgKFdvb2R5LCAyMC4gSnVuIDE5OTcsIDAwOjM5OjE3KToKICBBbmQgSmVzdXMgc2FpZCB1bnRvIHRoZW0sICJBbmQgd2hvbSBkbyB5b3Ugc2F5IHRoYXQgSSBhbT8iClRoZXkgcmVwbGllZCwgIllvdSBhcmUgdGhlIGVzY2hhdG9sb2dpY2FsIG1hbmlmZXN0YXRpb24gb2YgdGhlCmdyb3VuZCBvZiBvdXIgYmVpbmcsIHRoZSBvbnRvbG9naWNhbCBmb3VuZGF0aW9uIG9mIHRoZSBjb250ZXh0Cm9mIG91ciB2ZXJ5IHNlbGZob29kIHJldmVhbGVkLiIKCiAgQW5kIEplc3VzIHJlcGxpZWQsIldoYXQ/IgoKLi4uCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyZW1kd29lcnRlciAoUGhvYm9zLCAyMC4gSnVuIDE5OTcsIDAxOjQyOjI1KToKSWNoIHN1Y2hlIEZyYWdlbiBkZXIgZm9sZ2VuZGVuIEFydDoKCldpZSBoZWlzc3QgZGVyIEJhZWNrZXIgdm9uIFNhZGRhbSBIdXNzZWluPwpXYXMgaGVpc3N0IEt1aHN0YWxsIGF1ZiBhZWd5cHRpc2NoPwpXYXMgaGVpc3N0IFNvbm5lbnVudGVyZ2FuZyBhdWYgZmlubmlzY2g/CgpLZW5udCBqZW1hbmQgZGF2b24gbm9jaCBlaW4gcGFhciB3aXR6aWdlPwpBYmVyIGJpdHRlIGtlaW5lIGNoaW5lc2lzY2hlbiwgd2llIFVtLUxlaS1UdW5nIG9kZXIgc28uCgpBY2hqYSwgZGllIEFudHdvcnRlbiB6dSBkZW4gb2JpZ2VuIEZyYWdlbiBzdGVoZW4gZXR3YXMKd2VpdGVyIHVudGVuLgoKCmkuYS4gTWFycwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKQmFjay1kYWQKTXVoLUJhcnJhY2sKSGVsbC1zaW5raQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyZW1kd29lcnRlciAoTGksIDIwLiBKdW4gMTk5NywgMDk6MTQ6MTIpOgpXYXMgaGVpc3N0IERKIGF1ZiB0dWVya2lzY2g/CgoKTWFjaG1hLUxhbGxhIChrbGluZ3QgYWJlciBiZXNzZXIsIHdlbm4gbWFucyBzcHJpY2h0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZyZW1kd29lcnRlciAoRmxvcmEsIDIwLiBKdW4gMTk5NywgMDk6Mjc6NDcpOgp+IyEgcm49TGkgcnQ9ODY2NzkwODUyIHJnPXdpdHplCn4jISB0aWQ9ODY2NzkwODUyCk9rYXksIGlzdCBhdWNoIHNjaG9uIHVyYWx0LCBhYmVyIGdlaG9lcnQgd29obCBhdWNoIGhpZXJoaW46CgpXYXMgaGVpc3N0IEdlaWdlbmthc3RlbiBhdWYgQ3ViYW5pc2NoPwoKCgoKCgoKCgoKCgoKCgoKCk5hIGtsYXIsIEZpZGVsIENhc3Ryby4KCkZsbyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnJlbWR3b2VydGVyIChHcmltbWJvcm4sIDIwLiBKdW4gMTk5NywgMTE6MjA6MDMpOgp+IyEgcm49RmxvcmEgcnQ9ODY2NzkxNjY3IHJnPXdpdHplCn4jISB0aWQ9ODY2NzkwODUyCkhlZSwgS2lubmVycywgZ2VmcmFndCB3YXIgbmFjaCBlaW4gcGFhciBfd2l0emlnZW5fIFNwcnVlY2hlbi4KRWlnZW50bGljaCBuYWNoIF9ub2NoIGVpbiBwYWFyXywgYWJlciBkYXMga2FubiBqYSBudXIgZWluIElycnR1bSBzZWluLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IG1vc2VydCBydW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEZyZW1kd29lcnRlciAoR25vbWUsIDIwLiBKdW4gMTk5NywgMTE6NDY6MTQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2Njc5ODQwMyByZz13aXR6ZQp+IyEgdGlkPTg2Njc5MDg1MgphY2ggZ3JpbW1pLi4uCndlbm4gZHUgaWhuIG5pY2h0IHdpdHppZyBmaW5kZXN0Li4uIGRlaW4gYmllci4uLiA7LSkKaWNoIGZhbmQgaWhuIGd1dCEgOi0pKSkKYnkgdGhlIHdheTogd2FzIGhlaXNzdCBnbGF0emUgYXVmIGFyYWJpc2NoPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgphbnN3ZXI6IGRhLXdhaC1tYS1uLWhhYS1kYSAgKGtvbW10IGJlc3NlciBydWViZXIsIHdlbm4gbWFuIGVzIHNwcmljaHQpIDstKQoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZyZW1kd29lcnRlciAoUmFudGFucGxhbiwgMjAuIEp1biAxOTk3LCAxMTo1NTozMyk6Cn4jISBybj1Hbm9tZSBydD04NjY3OTk5NzQgcmc9d2l0emUKfiMhIHRpZD04NjY3OTA4NTIKQXByb3Bvcy4uLgoKR2VzdGVybiBpbSBGZXJuc2VoZW4gU2NoYXVibGUtWml0YXQ6CgpQcm9nbm9zZW4gc2luZCBzY2h3aWVyaWcsIGluc2Jlc29uZGVyZSBmdWVyIGRpZSBadWt1bmZ0Li4uCgpPZSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGcmVtZHdvZXJ0ZXIgKENhdW5vLCAyMC4gSnVuIDE5OTcsIDEyOjQ3OjUzKToKfiMhIHJuPVBob2JvcyBydD04NjY3NjM3NDUgcmc9d2l0emUKfiMhIHRpZD04NjY3NjM3NDUKSG0uIEljaCBrZW5uZSBkYSBudXIgZGVuIHR1ZXJraXNjaGVuIE1hbmFnZXIgdm9uIE1jRG9uYWxkczoKCkl6bWlyIFVlYmJlbC4KClVuZCB3YXMgc2FndCBlaW4gYXJhYmlzY2hlciBGb3RvZ3JhZiB6dSBzZWluZW4gTW90aXZlbj8KCkFsbGFoIG1haGxhY2hlbiAuLi4uCgooTnVyLCB1bSB6dSB6ZWlnZW4sIGRhc3MgZXMgbm9jaCBhZWx0ZXJlIGdpYnQpLCBDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGcmVtZHdvZXJ0ZXIgKFllbmRpLCAyMC4gSnVuIDE5OTcsIDEzOjAyOjM5KToKfiMhIHJuPUNhdW5vIHJ0PTg2NjgwMzY3MyByZz13aXR6ZQp+IyEgdGlkPTg2Njc2Mzc0NQoKV2FzIGhlaXNzdCBXaW5kZWwgYXVmIHR1ZXJraXNjaD8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKS2xhcjogICBHdWVsbGUtSHVlbGxlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGcmVtZHdvZXJ0ZXIgKEdyYWxrb3IsIDIwLiBKdW4gMTk5NywgMTM6MzQ6MzMpOgp+IyEgcm49RmxvcmEgcnQ9ODY2NzkxNjY3IHJnPXdpdHplCn4jISB0aWQ9ODY2NzkwODUyCktvZW5udCBpaHIgbmljaHQgbWFsIGRpZXNlIEVDSFQgRE9PRkVOIExlZXJ6ZWlsZW4gd2VnbGFzc2VuCgpHcmFsa29yLCBzY3JvbGxoYXNzZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGcmVtZHdvZXJ0ZXIgKE1vcmdvdGgsIDIwLiBKdW4gMTk5NywgMTQ6NDI6NDcpOgp+IyEgcm49WWVuZGkgcnQ9ODY2ODA0NTU5IHJnPXdpdHplCn4jISB0aWQ9ODY2NzYzNzQ1CmRhcyB3YXIgZGFzIGtvbmRvbS4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEZyZW1kd29lcnRlciAoR3JpbW1ib3JuLCAyMC4gSnVuIDE5OTcsIDE1OjMwOjIxKToKfiMhIHJuPUdyYWxrb3IgcnQ9ODY2ODA2NDczIHJnPXdpdHplCn4jISB0aWQ9ODY2NzkwODUyCk5laW4sIGRpZSBzeW1ib2xpc2llcmVuIGRlbiBTaW5uIGRpZXNlciBBcnQgdm9uIFdpdHplbi4KCkdkQQoKQWNoIHNvLCBlaW4gV2l0eiwgZGFtaXQgWmFyZG96IG5pY2h0IHdpZWRlciBtZWludCwgZXIgbXVlc3NlIHNlbGVrdGl2IG1laW5lCkFydGlrZWwgdmVybGVnZW46IApGcmFndCBkZXIga2F0aG9saXNjaGUgUHJpZXN0ZXIgZWluZW4gUmFiYmk6ICJOYSwgd2FubiB3ZXJkZW4gU2llIGVuZGxpY2gKU2Nod2VpbmVmbGVpc2NoIGVzc2VuPyIgQW50d29ydGV0IGRlciBSYWJiaTogIkF1ZiBpaHJlciBIb2NoemVpdC4iCgpIYWhhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIEhhbW1lciEgKEtvYmF5YXNoaSwgMjAuIEp1biAxOTk3LCAxNjoyNzowMik6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTg2NjU0MDM5MiByZz13aXR6ZQp+IyEgdGlkPTg2NjUzOTgxMApUZWlsIElWICggZGVyIGdhZyB3YXIgZ3V0ICggd2llIHZvcnNpbnRmbHV0bGljaCkgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2Vja2VyIGF1ZiBhcmFiaXNjaCAoS29iYXlhc2hpLCAyMC4gSnVuIDE5OTcsIDE2OjMyOjA2KToKVW5kIGVyIGFyYWJpc2NoZSBXZWNrZXI6CgoKCgoKTWFjaG1hd2FjaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY2hpbmVzaXNjaCAodXJhbHQpIChLb2JheWFzaGksIDIwLiBKdW4gMTk5NywgMTY6MzM6MzMpOgpMYW5nID0gRGllYgpMYW5nLUZpbmctRmFuZyA9IFBvbGl6aXN0CkxhbmctRmluZ19XYW5nLVdhdSA9IFBvbGl6ZWlodW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogY2hpbmVzaXNjaCAodXJhbHQpIChHcmltbWJvcm4sIDIwLiBKdW4gMTk5NywgMTY6Mzk6NDcpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg2NjgxNzIxMyByZz13aXR6ZQp+IyEgdGlkPTg2NjgxNzIxMwpXaWVzbyBzb2xsdGUgIkxhbmciID0gRGllYiBzZWluPwpEZW4gaGFiIGljaCBuaWNodCBrYXBpZXJ0LCBrYW5uIG1pciBkZW4gamVtYW5kIGVya2xhZXJlbj8KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCwgcHV6emxlZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBjaGluZXNpc2NoICh1cmFsdCkgKERpZWRlciwgMjAuIEp1biAxOTk3LCAxNjo0MDoyNyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODY2ODE3NTg3IHJnPXdpdHplCn4jISB0aWQ9ODY2ODE3MjEzCndlaWwgZXIgbGFuZ2UgRmluZ2VyIG1hY2h0PwoKRGllZGVyLCBncnVlYmVsbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBjaGluZXNpc2NoICh1cmFsdCkgKFBhZHJlaWMsIDIwLiBKdW4gMTk5NywgMTY6NDM6MTQpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg2NjgxNzIxMyByZz13aXR6ZQp+IyEgdGlkPTg2NjgxNzIxMwpTY2hhdXN0IER1IG5pY2h0IEthbGtob2ZlcyBNYXR0c2NoZWliZT8gRGVyIGhhdCBzaWNoIG5hZW1saWNoIGFtIFNvbm50YWcgZ2VuYXUKenUgZGllc2VtIFdpdHogZ2VhZXVzc2VydC4uLiAqZ3JpbnMqCgogICAgICAgICAgICAgICAgICAgICAgICAgICBQYWRyZWljClAuUy46IEZ1ZXIgYWxsZSBkaWUgZXMgbmljaHQga2VubmVuLCBpc3QgZWluZSBkZXIgYmVzdGVuIGRldXRzY3ZoZW4gU2VuZHVuZ2VuCnVuZCBrb21tdCBTb25udGFncyB1bSAyMDowMCBhdWYgcHJlbWllcmUgKFVOVkVSU0NITFVFU1NFTFQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBjaGluZXNpc2NoICh1cmFsdCkgKEdyaW1tYm9ybiwgMjAuIEp1biAxOTk3LCAxNjo0MzoxNSk6Cn4jISBybj1EaWVkZXIgcnQ9ODY2ODE3NjI3IHJnPXdpdHplCn4jISB0aWQ9ODY2ODE3MjEzClZpZWxsZWljaHQgc2luZCBpbiBDaGluYSBudXIgbGFuZ2hhYXJpZ2UgTGV1dGUgRGllYmU/Ck9kZXIgaWhlbmVuIHdlcmRlbiBkaWUgSGFtbWVsYmVpbmUgbGFuZ2VnZXpvZ2VuLCB3ZW5uIHNpZSBlcndpc2NodCB3ZXJkZW4/Cip6dWNrKgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogY2hpbmVzaXNjaCAodXJhbHQpIChQaG9ib3MsIDIwLiBKdW4gMTk5NywgMTc6MTA6MjEpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg2NjgxNzIxMyByZz13aXR6ZQp+IyEgdGlkPTg2NjgxNzIxMwpEYXp1IGZhbGxlbiBtaXIgbm9jaCBmb2xnZW5kZSBjaGluZXNpc2NoZW4gV29lcnRlciBlaW46CgoKQmF1bSAgICAgPSBUYW0KMiBCYWV1bWUgPSBUYW0gVGFtCgprbGVpbmVyIFVocnplaWdlciA9IFRpY2sKZ3Jvc3NlciBVcmh6ZWlnZXIgPSBUYWNrCgpXYXMgaGVpc3N0IGRhbm4gVXJ3YWxkIGF1ZiBjaGluZXNpc2NoPwoKCgoKCgoKCgoKCgoKClRpY2sgVGFjayBUYW0gVGFtIFRhbSBUYW0gVGFtIFRhbSAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGNoaW5lc2lzY2ggKHVyYWx0KSAoVGFzaGEsIDIwLiBKdW4gMTk5NywgMjE6NTI6MTkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NjgxNzc5NSByZz13aXR6ZQp+IyEgdGlkPTg2NjgxNzIxMwpMYW5naGFhcmlnZSBUeXBlbiBzaW5kIGVoIGltbWVyIGtyaW1pbmVsbC4gVW5kIHVlYmVyYWxsIGF1Y2ghCgpUYXNoYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVjaHRzY2hyZWlicmVmb3JtIGltIEphaHIgMjAwMCAoQmxvb2R5aGFycnksIDIwLiBKdW4gMTk5NywgMjM6MjA6MDIpOgoKICAgUmVjaHRzY2hyZWlicmVmb3JtIGltIEphaHIgMjAwMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgooQXVzc25haG1zd2Vpc2UgbXVzc3RlIGljaCBmdWVyIGRpZSBVbWxhdXRlIHVuZCBkYXMgJ3NjaGFyZmUgcycgZGllClRlWC1TY2hyZWlid2Vpc2UgImEsICJ1LCAibywgInMgLi4gdmVyd2VuZGVuLikKCgpFcnN0ZXIgU2Nocml0dDoKCiAgIFdlZ2ZhbGwgZGVyIGdybyJzc2NocmVpYnVuZy4gRWluZXIgc29mb3J0aWdlbiBlaW5mInVocnVuZyBzdGVodAogICBuaWNodHMgbWVociBpbSB3ZWcsIHp1bWFsIHNjaG9uIHZpZWxlIGdyYWZpa2VyIHVuZCB3ZXJiZWZhY2hsZXV0ZQogICB6dXIga2xlaW5zY2hyZWlidW5nICJ1YmVyZ2VnYW5nZW4gc2luZC4KCgp6d2VpdGVyIHNjaHJpdHQ6CgogICB3ZWdmYWxsIGRlciBkZWhudW5nZW4gdW5kIHNjaCJhcmZ1bmdlbiwgZGlzZSBtYXNuYW1lIGVsaW1pbmlydAogICBzY2hvbiBkaWUgZ3Iib3N0ZSBmZWxlcnVyc2FjaGUgaW4gZGVyIGdydW5kc2NodWxlLCBkZW4gc2luIG9kZXIKICAgdW5zaW4gdW5zZXJlciBrb25zb25hbnRlbnZlcmRvcGx1bmcgaGF0IG9uZWhpbiBuaW1hbmQga2FwaXJ0LgoKCmRyaXRlciBzcml0OgoKICAgJ3YnIHVuZCAncGgnIGVyc2V0enQgZHVyY2ggJ2YnLCAneicgdW5kICdzY2gnIGVyc2V0c3QgZHVyY2ggJ3MnLgogICBkYXMgYWxmYWJldCB3aXJkIHVtIHN3ZWkgYnVjaHN0YWJlbiByZWR1c2lydCwgc3JlaWJtYXNpbmVuCiAgIGZlcmVpbmZhY2hlbiBzaWNoLCB3ZXJ0Zm9sZSBhcmJlaXRza3IiYWZ0ZSBrIm9uZW4gZGVyIHdpcnRzYWZ0CiAgIHN1Z2VmInVydCB3ZXJkZW4uCgoKdmlydGVyIHNyaXQ6CgogICAncScsICdjJyB1bmQgJ2NoJyB3ZXJkZW4gZHVyY2ggJ2snIGVyc2V0c3QsICdqJyB1bmQgJ3knIGR1cmsgJ2knLgogICAncGYnIHdpcmQgZHVyayAnZicgZXJzZXRzdC4gaWV0c3Qgc2luZCBzb24gc2VrcyBidWtzdGFiZW4KICAgYXVzZ2VzYWx0ZXQsIGRpZSBzdWxzZWl0IGthbiBzb2ZvcnQgZm9uIG5ldW4gYXVmIHN3ZWkgaWFyZQogICB2ZXJrInVydHN0IHdlcmRlbi4gYW5zdGF0IGFrdHNpZyBwcm9zZW50IHJla3NyZWlidW50ZXJpa3QgayJvbmVuCiAgIG4idXRzbGlrZXJlIGYiYWtlciB3aSBmInVzaWssIGtlbWkgdW5kIHJla25lbiBtZXIgZ2VmbGVndCB3ZXJkZW4uCgoKZnVuZnRlciBzcml0OgoKICAgd2VnZmFsIHZvbiAnImEnLCAnIm8nIHVuZCAnInUnLiBhbGVzIHViZXJmbHVzaWdlIGlzdCBpZXN0CiAgIGF1c2dlbWVyc3QuIGRpZSBvcnRvZ3JhZmkgd2lkZXIgc2xpa3QgdW5kIGVpbmZhay4gbmF0dXJsaWsgYmVub3RpZ3QKICAgZXMgZWluaWdlIHNlaXQsIGJpcyBkaSBmZXJlaW5mYWt1bmcgdWJlcmFsIHJpa3RpZyBmZXJkYXV0IGlzdCwKICAgZmlsZWlrdCBlaW4gYmlzIHN3ZWkgaWFyZS4gYW5zbGlzZW5kIGR1cmZ0ZSBhbHMgbmVrc3RlcyBkaQogICBmZXJlaW5mYWt1bmcgZGVyIG5vayBzd2lyaWdlbiB1bmQgdW5zaW5pZ2VyZW4gZ3JhbWF0aWsgYW5maXNpcnQKICAgd2VyZGVuLgogICBhdWYgZGkgcmVmb3JtIGRlciBtYXRlbWF0aWtyZWdlbG4gZGFyZiBtYW4gYXVrIGdlc3BhbnQgc2Vpbi4KCgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRnJlbWR3b2VydGVyIChGbGF2aWEsIDIxLiBKdW4gMTk5NywgMDA6Mjk6MTcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NjgxMzQyMSByZz13aXR6ZQp+IyEgdGlkPTg2Njc5MDg1MgphdSBqYSwganVlZGlzY2hlciBIdW1vciwgZGEgZmFlbGx0IG1pciBhdWNoIGdsZWljaCBub2NoIGVpbmVyIGVpbjoKS29tbXQgZWluIE1hbm4genVtIEp1d2VsaWVyIG1pdCB6d2VpIFJpbmdlbiB1bmQgd2lsbCBzaSBzY2hhZXR6ZW4gbGFzc2VuLiBEZXIKanV3ZWxpZXIgc2NoYXV0IHNpY2ggZGllIGJlaWRlbiBSaW5nZSBhbiB1bmQgc2FndDogIkhhZXR0ZW4gU2llbiBtaXIgbnVyIGVpbmVuClJpbmcgZ2VicmFjaHQsIHNvIGhhZXR0ZSBpY2ggZ2VzYWd0LCBkYXNzIGVyIHdlcnRsb3MgaXN0LiBTbyBtdXNzIGljaCBhYmVyCnp1Z2ViZW4sIGRhc3MgYmVpZGUgUmluZ2UgdGF0c2FlY2hsaWNoIGVpbmVuIGdld2lzc2VuIFdlcnQgaGFiZW46IGRlciBlaW5lClJpbmcgaXN0IGdlbmF1c292aWVsIHdlcnQgd2llIGRlciBhbmRlcmUuIgoKZmxhdgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlY2h0c2NocmVpYnJlZm9ybSBpbSBKYWhyIDIwMDAgKEZsYXZpYSwgMjEuIEp1biAxOTk3LCAwMDozNDoyNyk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NjY4NDE2MDIgcmc9d2l0emUKfiMhIHRpZD04NjY4NDE2MDIKSG0sIGVyc3RlbnMgbWFnIHp3YXIgZGllIFRlWC1TY2hyZWlid2Vpc2UgdGF0c2FlY2hsaWNoICJhIHNlaW4sIGFiZXIgbnVyLCB3ZW5uCm1hbiBlaW5pZ2UgUGFrZXRlIHZlcmdpc3N0IGVpbnp1YmluZGVuLi4uClVuZCBhdXNzZXJkZW0gZXJpbm5lcnQgbWljaCBkYXMgZ2FuemUgdmllbCB6dSBzZWhyIGFuIGVpbmUgc2NobGVjaHRlClVlYmVyc2V0enVuZyB2b24gTWFyayBUd2FpbiAoQSBQbGFuIGZvciB0aGUgSW1wcm92ZW1lbnQgb2YgRW5nbGlzaCBTcGVsbGluZykuCgpmbGF2CgpBIHJlYWwgcGVyc29uIGhhcyB0d28gcmVhc29ucyBmb3IgZG9pbmcgYW55dGhpbmcuLi4gYSBnb29kIHJlYXNvbiBhbmQgdGhlIHJlYWwKcmVhc29uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRnJlbWR3b2VydGVyIChXb29keSwgMjEuIEp1biAxOTk3LCAwMToyODoxNSk6Cn4jISBybj1GbGF2aWEgcnQ9ODY2ODQ1NzU3IHJnPXdpdHplCn4jISB0aWQ9ODY2NzkwODUyCkhtbW0gZGF6dSBwYXNzZW5kIHZpZWxsZWljaHQgbm9jaC4uLgpFaW5lIEZyYXUga29tbXQgaW4gZWluIEdlc2NoYWVmdCwgc2NocmVpdCwgIkhpbGZlIEhpbGZlLCBlaW4KTWFlZGNoZW5oYWVuZGxlciBpc3QgaGludGVyIG1pciBoZXIhIi4uLiBOYSwgZGVyIFRyYWZpa2FudApzY2hhdXQgc2llIGFuLCB1bmQgc2FndCBudXIgbGFwaWRhciwgIkVzIG11c3Mgd29obCBlaW4KQW50aXF1aXRhZXRlbmhhZW5kbGVyIGdld2VzZW4gc2Vpbi4iCgpvbGQsIGJ1dCBnb29kLiBuYWphLCB3ZXIgTWF4aSBCb2VobSBub2NoIGtlbm50Li4uCgp3b29keS4tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYWhhIChMaW51cywgMjIuIEp1biAxOTk3LCAxMTozNjowNyk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIFRhdWNoZXIgdW5kIGVpbmVyIEVudGU/CgoKRGVyIFRhdWNoZXIgdGF1Y2h0LAplTlRlIHRhdWNodCBuaXguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpsYW5nZmluZyAoRW5kZXIsIDIzLiBKdW4gMTk5NywgMDg6MjA6MjcpOgpEZXIgZGllYiBoZWlzc3QgbGFuZ2ZpbmcgdW5kIG5pY2h0IGxhbmcKc29uc3QgZ2lidCBkYXMga2VpbmVuIHNpbm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndhaHJlIExpZWJlIT8hIChLYW5uaXgsIDIzLiBKdW4gMTk5NywgMTM6MDQ6MTApOgpQYWVyY2hlbiBpc3Qgc2Nob24gc2VpdCBKYWhyZW4genVzYW1tZW4uClNpZSBzYWd0IHp1IGlobToKV2Vpc3N0IGR1LCB3aXIgZnVlaHJlbiBzbyBlaW5lIGd1dGUgQmV6aWVodW5nIHVuZCBrb2VubmVuIHVlYmVyIGFsbGVzIHJlZGVuLAp3YWVyZSBkb2NoIGdhbnogc2Nob2VuLCB3ZW5uIHdpciB1bnMgbnVuIG1hbCBzYWdlbiwgd2FzIHVucyBhbmVpbmFuZGVyIHN0b2VydC4KV29yYXVmaGluIGVyIHNhZ3Q6Ckd1dCwgZGFubiBmYW5nIGR1IG1hbCBhbiEKVGphLCBhbHNvIGljaCBmaW5kZSwgZGFzcyBkdSBkaWUgWmFobnBhc3RhdHViZSBuaWNodCByaWNodGlnIGF1c2RydWVja3N0IHVuZApkYXMgZHUgYmVpbSBFc3NlbiBtYW5jaG1hbCBzbyBsYXV0IHNjaG1hdHp0LgpVbmQgbnVuIGJpc3QgZHUgZHJhbiEiCkVyIHJhZXVzcGVydCBzaWNoLgpBbHNvLCBpY2ggZmluZCwgZGFzcyBkdSBuZSBTY2hsYW1wZSBiaXN0IHVuZCBhdXNzZXJkZW0gZmlja3N0IGR1IHNjaGxlY2h0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlY2h0c2NocmVpYnJlZm9ybSBpbSBKYWhyIDIwMDAgKEtvYmF5YXNoaSwgMjMuIEp1biAxOTk3LCAxMzozOTowNSk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04NjY4NDE2MDIgcmc9d2l0emUKfiMhIHRpZD04NjY4NDE2MDIKRGllc2UgUmVjaHRzY2hyZWlicmVmb3JtIHd1cmRlIGJlcmVpdHMgRW5kZSAxOTkzIGVpbmdlZnVlaHJ0IChzaWVoZQpQYW5kb3JhLVF1ZXN0KQpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGcmVtZHdvZXJ0ZXIgKEtyZXRlaywgMjMuIEp1biAxOTk3LCAxNDowOTowNSk6Cn4jISBybj1QaG9ib3MgcnQ9ODY2NzYzNzQ1IHJnPXdpdHplCn4jISB0aWQ9ODY2NzYzNzQ1CkphdSwgaXN0IG5vY2ggd2FzIGJla2FubnQuClp3ZWkgYmVrYW5udGUgZmlubmlzY2hlIFNraXNwcmluZ2VyOgpNdXN0aSAgVmlyaWxlaW5lbiB1bmQgSGF0c25vIE5pZWthZW5lbi4uLgoKCksuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbHVnZ2V0aWVyLi4uIChLcmV0ZWssIDIzLiBKdW4gMTk5NywgMTQ6MTY6MzApOgpBbHQsIGFiZXIgbmV0dC4uLgoKCk5haGUgZGVyIGRldXRzY2gtcG9sbmlzY2hlbiBHcmVuemUuIEVpbiBNYW5uIGtvbW10IHZvZWxsaWcgYXVmZ2Vsb2VzdAphdWYgZWluZSBQb2xpemVpd2FjaGUgdW5kIHJ1ZnQgdW50ZXIgaGVmdGlnZW0gR2VzdGlrdWxpZXJlbjoKIkhhZXJyciBXYWNodG1laXN0YWVyciwgaWNoIGNoYWJlIGdlcnJycmFkZSBtZWluIEZyYXUgZ2VhbXNlbHQhIgpEZXIgUG9saXppc3QgZ3JpbnN0IHVuZCBzYWd0OiAiU2llIG1laW5lbiAnZ2V2b2VnZWx0JywgYWJlciBkYXMgbXVlc3NlbgpTaWUgZG9jaCBoaWVyIG5pY2h0IG1lbGRlbiEiCkRlciBQb2xlIHVlYmVybGVndCBrdXJ6LCB1bmQgc2FndDogIkFjaCwgbmVpbiwgbWVpbiBpY2ggbmF0aXJybGljaCBuaWNodApnZWFtc2VsdCwgbWVpbiBpY2ggZ2Vkcm9zc2VsdC4uLiIKCgpLLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBjaGluZXNpc2NoICh1cmFsdCkgKFR1bml4Z3V0LCAyNC4gSnVuIDE5OTcsIDA5OjExOjU2KToKfiMhIHJuPVBob2JvcyBydD04NjY4MTk0MjEgcmc9d2l0emUKfiMhIHRpZD04NjY4MTcyMTMKUXVhdHNjaCwgZGFzIGhlaXNzdCAiVGljayBUYWNrIFRhbXRhcmFtdGFtdGFtIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTnVyIGZ1ZXIgU2VoZXIgKEJsb29keWhhcnJ5LCAyNS4gSnVuIDE5OTcsIDEwOjM1OjM1KToKCmFsaSBubiBlY2hvIE5peCBOZXVlcyBhdWYgZGVyIFdlbHQuCgoKYmgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk51ciBmdWVyIE1hZ2llciAoR3JpbW1ib3JuLCAyNS4gSnVuIDE5OTcsIDEwOjM5OjI2KToKYWxpIGhlaWxlIHhjYWxsICQxLT5kaWUoKQoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIZXV0ZSBtb3JnZW4gYXVmIFZJVkEgKEFscGhhLCAyNS4gSnVuIDE5OTcsIDExOjA4OjQ1KToKV2FzIGlzdCBuZSBCbG9uZGluZSwgZGllIG5lbiBQYXBhZ2VpIGdlZ2VuIGRpZSBXYW5kIHdpcmZ0PwoKCgoKClNjaGxlY2h0IHp1IFZvZWdlbG4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWxnaWVyd2l0eiAoR3JpbW1ib3JuLCAyNS4gSnVuIDE5OTcsIDExOjE3OjQ4KToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gYmVsZ2lzY2hlbiBLaW5kZXJuIHVuZCBiZWxnaXNjaGVuIEthcnRvZmZlbG4/Ck5hLCBkaWUgS2FydG9mZmVsbiBzaW5kIGVyc3QgaW4gZGVyIEVyZGUgdW5kIGRhbm4gaW0gS2VsbGVyLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk51ciBmdWVyIEVyem1hZ2llciAoV29vZHksIDI1LiBKdW4gMTk5NywgMTE6NTA6MjEpOgphbGkgYXJnbCBzaHV0ZG93biBub3cKCndvb2R5Li0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hY2hvISAoR25vbWUsIDI1LiBKdW4gMTk5NywgMTI6MDE6MTkpOgp3aWUgd2VjaHNlbHQgZWluIG1hY2hvIGVpbmUgZ2x1ZWhiaXJuZSBpbiBkZXIga3VlY2hlIGF1cz8KCgoKZ2FyIG5pY2h0LiBsYXNzIGRvY2ggZGllIHNjaGxhbXBlIGltIGR1bmtlbG4gc3RlaGVuIQoKZ25PbWUsIGdlaHQgc2Nob24gbWFsIGluIGRlY2t1bmcuLi4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbGkgU3RlaW4gKExpLCAyNS4gSnVuIDE5OTcsIDEyOjM5OjE3KToKWndlaSB6aWVtbGljaCB0aWVyaXNjaGUgV1dXLVNlaXRlbjoKaHR0cDovL3d3dy51bGlzdGVpbi5kZS9pbmRleC5odG1sCmh0dHA6Ly93d3dzcnYwMC5idHguZHRhZy5kZS9ob21lLzA2OTczNjg4NC8KZW5qb3khCkxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYW5kYnVlY2hlciAoTGksIDI1LiBKdW4gMTk5NywgMTI6NDg6MDcpOgpJbmRlbSBTaWUgZGllIERydWNrZm9ybWF0dm9ybGFnZSBkZXMgRG9rdW1lbnRzIG1pdCBkZXIgRHJ1Y2tmb3JtYXR2b3JsYWdlIApkZXIgRHJ1Y2tmb3JtYXR2b3JsYWdlIHZlcmJpbmRlbiwga29lbm5lbiBTaWUgZGllIERydWNrZm9ybWF0dm9ybGFnZSBkZXIgCkRva3VtZW50ZW52b3JsYWdlIGFrdHVhbGlzaWVyZW4uIFdlbm4gU2llIGRpZSBEcnVja2Zvcm1hdHZvcmxhZ2UgZWluZXMgCkRva3VtZW50cyBtaXQgZGVyIERydWNrZm9ybWF0dm9ybGFnZSBlaW5lciBEb2t1bWVudGVudm9ybGFnZSB2ZXJiaW5kZW4sIAplcnNldHplbiBkaWUgRHJ1Y2tmb3JtYXRkZWZpbml0aW9uZW4gZGVzIERva3VtZW50cyBkaWUgZ2xlaWNobmFtaWdlbiAKRHJ1Y2tmb3JtYXRkZWZpbml0aW9uZW4gZGVyIERva3VtZW50ZW52b3JsYWdlLiBTYWVtdGxpY2hlIERydWNrZm9ybWF0ZSBpbiAKZGVyIERydWNrZm9ybWF0dm9ybGFnZSBkZXMgRG9rdW1lbnRzLCBkaWUgbmljaHQgaW4gZGVyIERydWNrZm9ybWF0dm9ybGFnZSAKZW50aGFsdGVuIHNpbmQsIHdlcmRlbiBkaWVzZXIgaGluenVnZWZ1ZWd0LgphdXM6IEhhbmRidWNoIHp1IFdpbldvcmQgMi4wCk5hLCBhbGxlcyBrbGFyPyA6LSkKTGkgKHZlcndpcnJ0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hY2hvISAoRmxhdmlhLCAyNS4gSnVuIDE5OTcsIDEyOjUzOjQ4KToKfiMhIHJuPUdub21lIHJ0PTg2NzIzMjg3OSByZz13aXR6ZQp+IyEgdGlkPTg2NzIzMjg3OQpXaWV2aWVsZSBQc3ljaG9sb2dlbiBicmF1Y2h0IG1hbiwgdW0gZWluZSBHbHVlaGJpcm5lIGF1c3p1d2VjaHNlbG4/CkVpbmUsIGFiZXIgc2llIG11c3MgYXVjaCB3aXJrbGljaCBkZW4gV3Vuc2NoIGhhYmVuLi4uLgoKZmxhdiAoa3JhbXQgYWx0ZSBXaXR6ZSBtaXQgc29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmVtIEJhcnQKdm9yKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE51ciBmdWVyIE1hZ2llciAoWWFyZW4sIDI1LiBKdW4gMTk5NywgMTM6MDE6MjgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NzIyNzk2NiByZz13aXR6ZQp+IyEgdGlkPTg2NzIyNzk2NgpNaXQgZWRsaW4gd2FlcmUgZGFzIGFiZXIgbmljaHQgcGFzc2llcnQgLi4uCgpZYXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlciAoTGksIDI1LiBKdW4gMTk5NywgMTM6MDc6MDYpOgpPaywgaGllciBub2NobiBwYWFyIGFsdGUgd2l0emUgdWViZXIgTWF0aGVtYXRpa2VyOgpFaW4gVGhlb2xvZ2UsIGVpbiBQaHlzaWtlciB1bmQgZWluIE1hdGhlbWF0aWtlciBiZW9iYWNodGVuLAp3aWUgMyBMZXV0ZSBpbiBlaW5lbiBsZWVyZW4gRmFocnN0dWhsIHN0ZWlnZW4uIGF1ZiBkZXIgbmFlY2hzdGVuIEV0YWdlCnN0ZWlnZW4gNSB3aWVkZXIgYXVzLiBEaWUgUmVha3Rpb25lbjoKVGhlb2xvZ2U6ICJFaW4gV3VuZGVyLCBlaW4gV3VuZGVyISIKUGh5c2lrZXI6ICJEYXMgbXVfIGVpbiBNZV9mZWhsZXIgc2VpbiE/IgpNYXRoZW1hdGlrZXI6ICJXZW5uIGpldHp0IG5vY2ggMiByZWluZ2VoZW4sIGRhbm4gaXN0IGtlaW5lciBtZWhyIGRyaW4uIgoKCldpZSBmYWVuZ3QgZWluIE1hdGhlbWF0aWtlciBlaW5lbiBMb2V3ZW4/Clp1ZXJzdCBkZWZpbmllcnQgZXIsIHdhcyBlcyBoZWlfdCBlaW5lbiBMb2V3ZW4gZ2VmYW5nZW4genUgaGFiZW4uCkRlZmluaXRpb246IEVpbiBMb2V3ZSBpc3QgZ2VmYW5nZW4sIHdlbm4gZXIgZHVyY2ggZWluIEdpdHRlciB2b24gCm1pciBnZXRyZW5udCBpc3QuCkRhbm4gc2V0enQgc2ljaCBkZXIgTWF0aGVtYXRpa2VyIGVpbmZhY2ggaW4gZWluZW4gS2FlZmlnIHVuZCBoYXQgCmxhdXQgRGVmaW5pdGlvbiBkZW4gTG9ld2VuIGdlZmFuZ2VuLgogIAp3aWUgd2FlcidzIGpldHp0IG1pdCBlaW4gcGFhciBDaGVtaWtlcndpdHplbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYXRoZW1hdGlrZXIgKE1hcmN1cywgMjUuIEp1biAxOTk3LCAxMzo0Mzo0NCk6Cn4jISBybj1MaSBydD04NjcyMzY4MjYgcmc9d2l0emUKfiMhIHRpZD04NjcyMzY4MjYKTmVpbiBuZWluIG5laW4uLi4uIAoKV2llIGVpbiBNYXRoZW1hdGlrZXIgZWluZW4gTG9ld2VuIGZhZW5ndDoKCkVyIGJhdXQgZWluZW4gcnVuZGVuIEthZWZpZy4KRGFuYWNoIHZvbGx6aWVodCBlciBtaXQgZGVyIFd1ZXN0ZSBkaWUgU3BpZWdlbHVuZyBhbSBFaW5oZWl0c2tyZWlzIHVuZApzY2hvbiBpc3QgZGVyIExvZXdlIGdlZmFuZ2VuIDspCgpXaWUgZmFlbmd0IGVpbiBJbmZvcm1hdGlrZXIgZWluZW4gTG9ld2VuOgpFciBiZWdpbm50IG1pdCBkZXIgZ2FuemVuIFd1ZXN0ZS4gRXIgdGVpbHQgZGllc2UgZGFubiBpbiBkZXIgTWl0dGUgYXVmLgpFciBuaW1tdCBkZW4gVGVpbCwgaW4gZGVtIHNpY2ggZGVyIExvZXdlIGJlZmluZGV0IHVuZCBiZWdpbm50IHdpZWRlciB2b24Kdm9ybmUsCmJpcyBlciBkZW4gTG9ld2VuIGdlZmFuZ2VuIGhhdC4KCkRhcyBnaW5nIGlyZ2VuZHdpZSBhdWNoIG1pdCBQaHlzaWtlcm4sIGFiZXIgZnJhZ3QgbWljaCBuaWNodCB3aWUgOykKCk1hcmN1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNYXRoZW1hdGlrZXIgKEdyaW1tYm9ybiwgMjUuIEp1biAxOTk3LCAxMzo0ODo0MCk6Cn4jISBybj1NYXJjdXMgcnQ9ODY3MjM5MDI0IHJnPXdpdHplCn4jISB0aWQ9ODY3MjM2ODI2Ck5laW4sIGRlciBJbmZvcm1hdGlrZXIgbWFjaHQgZXMgZm9sZ2VuZGVybWFzc2VuOgpFciBzdGFydGV0IGFtIEthcCBkZXIgR3V0ZW4gSG9mZm51bmcsIHNjaGF1dCBzaWNoIHVtLCBvYiBpZW4gTG9ld2UgZGEgaXN0LiBJc3QKa2VpbmVyIGRhLCBnZWh0IGVyIGVpbmVuIFNjaHJpdHQgbmFjaCBOb3JkZW4sIHNjaGF1dCBzaWNoIHdpZWRlciB1bS4gSXN0IGtlaW4KTG9ld2UgZGEsIGRyZWh0IGVyIHNpY2ggbmFjaCBXZXN0ZW4sIG1hY2h0IGVpbmVuIFNjaHJpdHQsIHNjaGF1dCwgb2IgZGVyIExvZXdlCmRhIGlzdC4gQXVmIGRpZXNlIFdlaXNlIGthZW1tdCBlciBnYW56IEFmcmlrYSBkdXJjaC4KCkRlciBlcmZhaHJlbmUgSW5mb3JtYXRpa2VyIG1hY2h0IGVzIGdlbmF1c28sIGFsbGVyZGluZ3Mgc3RlbGx0IGVyIHZvcmhlciBlaW5lbgpMb2V3ZW4gYXVmIGRlbiBNYXJrdHBsYXR6IGluIEthaXJvLCBkYW1pdCBkYXMgUHJvZ3JhbW0gYXVmIGplZGVuIEZhbGwKb3JkbnVuZ3NnZW1hZXNzIGJlZW5kZXQgd2lyZC4KCkFjaCBqYSwgc2Nob2VuIGlzdCBhdWNoIGRpZSAiTmV3dG9uJ3NjaGUgTWV0aG9kZSIgZGVyIFBoeXNpa2VyOgpNYW4gc3RlbGxlIGVpbmVuIEthZWZpZyBpbiBkaWUgV3Vlc3RlIHVuZCB2ZXJuYWNobGFlc3NpZ2UgZGllIFJlaWJ1bmcuCkF1ZmdydW5kIGRlciBHcmF2aXRhdGlvbiBsYW5kZXQgZGVyIExvZXdlIHNjaGxpZXNzbGNpaCBpbSBLYWVmaWcuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1hdGhlbWF0aWtlciAoTHVpZ2ksIDI1LiBKdW4gMTk5NywgMTQ6NDA6NTUpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg2NzIzOTMyMCByZz13aXR6ZQp+IyEgdGlkPTg2NzIzNjgyNgpESWUgTWV0aG9kZSBkZXIgTWF0aGUtUHJvZnM6CgpXZW5uIG1hbiBlaW5lbiBMb2V3ZW4gaW4gZGVyIFd1ZXN0ZSBzZWhlbiBrYW5uLCBzbyBpc3QgZGllc2VyCnBlciBkZWZpbml0aW9uZW0gemFobS4KRWluZW4gemFobWVuIExvZXdlbiB6dSBmYW5nZW4gdWViZXJsYXNzZW4gd2lyIGRlbSBMZXNlciBhbHMKVWVidW5nc2F1ZmdhYmUuCgpMdWlnaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGNoaW5lc2lzY2ggKHVyYWx0KSAoTXVwZmVsLCAyNS4gSnVuIDE5OTcsIDE5OjIyOjA0KToKfiMhIHJuPUtvYmF5YXNoaSBydD04NjY4MTcyMTMgcmc9d2l0emUKfiMhIHRpZD04NjY4MTcyMTMKR3Jvc3NtdXR0ZXIgPSBrYW5uLWthdW0ta2F1bgoKLW11cGZlbC0gKGVpbmVyIGF1cyBtZWluZXIganVuZ2VuZC4uLiBoYWNoIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJlOiBiZWxnaWVyd2l0eiAoSGFyZGlsLCAyNi4gSnVuIDE5OTcsIDAwOjI5OjQxKToKfiMhIHJuPU1hZ251cyBydD04NjcyNTQxNDQgcmc9d2l0emUKfiMhIHRpZD04NjcyNTQxNDQKCkRvY2gsIG5hdHVlcmxpY2ggZ2VodCBkYXMgYXVjaCBnZXNjaG1hY2tsb3Nlci4KV2FzIHNhZ3QgZGVyIGJlbGdpc2NoZSBNYXVsd3VyZiwgd2VubiBlciBnZXJhZGUgZWluZW4gSHVlZ2VsIG1hY2hlbiB3aWxsPwoKLUh1c2NoaHVzY2gsIEtpbm5lcnMsIGF1cyBkZW0gV2VnIQoKCm9kZXI6CgpXYXJ1bSBicmF1Y2hlbiBCZWxnaWVyIGtlaW5lIEtpbmRlciB6dSBiZWtvbW1lbj8KCi1XZW5uIHNpZSBCZWRhcmYgaGFiZW4sIGtvZW5uZW4gc2llIHNpY2ggamEgZ3JhZCBlaW5zIGF1c2dyYWJlbi4KCgouLi51c3cuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogcmU6cmU6YmVsZ2llcndpdHogKEVuZ3l3dWNrLCAyNi4gSnVuIDE5OTcsIDEzOjE4OjIyKToKfiMhIHJuPUtvYmF5YXNoaSBydD04NjczMjM2NTcgcmc9d2l0emUKfiMhIHRpZD04NjczMTg1ODcKVmllbGxlaWNodCBzb2xsdGVuIHdpciAoZnVlciBkaWUgU2Vuc2liZWxjaGVuIHVudGVyIHVucykgbm9jaCBkaWUgUnVicmlrCiJTY2h3YWFyemVyIEh1bW9yIiBlaW5yaWNodGVuPyAKCk9KOiAoZnVlciBHcmltbWJvcm4pCkVpbiBTY2h3dWxlciBrb21tdCB6dW0gQXJ6dC4KU2FndDogIkhlcnIgRG9rdG9yLG1pY2ggZHJ1ZWNrdCBkYSB3YXMgaW0gRGFybSxrb2VubmVuIHNpZSBtYWwKbmFjaHNjaGF1ZW4uLi4/Ckdlc2FndCxnZXRhbixkZXIgQXJ6dCB6aWVodCBIYW5kc2NodWhlIGFuLHVuZCByZWluIGluIGRlbiBBZnQuLi4KCkFyenQ6IkljaCBmdWVobGUgbmljaHRzLi4uIgpTY2h3dWxlcjoiQWhoLGphYSxub2NoIGVpbiBiaXNzZXJsIHRpZWZlciEiCkFyenQ6IkltbWVyIG5vY2ggbml4Li4uIgpTY2h3dWxlcjoiQWFhYWgsamFhYWEsbm9jaCBlaW4gZW5pZyxzaWUgaGFiZW4gZXMgZ2xlaWNoISIKQXJ6dDoiaW1tZXIgbm9jaCBuaXguLi4uIgpTY2h3dWxlcjoiQWFhaCxhLGphICBub2NoIGVpbiBiaXNzZXJsLi4uIgpBcnp0OiJNb21lbnQuLi4uLGphLGRhIGlzdCB3YXMsaWNoIGhhYidzLi4uIgp1bmQgemllaHQgZXMgcmF1cy4KU2Nod3VsZXI6T29vb3V1dXVhYWFhaCEgSmFhYWFhISIKQXJ6dDoiQWJlciBkYXMgaXN0IGphIGVpbiBNb24gQ2hlcmkhIgpTY2h3dWxlcjoiTmEsZGFzIGhhbXNlIHNpY2ggamV0enQgamEgYXVjaCByZWRsaWNoIHZlcmRpZW50ISIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiByZTpyZTpiZWxnaWVyd2l0eiAoQ2F1bm8sIDI2LiBKdW4gMTk5NywgMTM6MjA6MTQpOgp+IyEgcm49RW5neXd1Y2sgcnQ9ODY3MzIzOTAyIHJnPXdpdHplCn4jISB0aWQ9ODY3MzE4NTg3CkRhIHN0aW1tdCB3YXMgbmljaHQuCkhhZXR0ZSBkYXMgbmljaHQgZWluICJBZnRlciBFaWdodCIgc2VpbiBtdWVzc2VuPwpXZW5uIHNjaG9uIHNvIGJlc2NoZXVlcnQsIGRhbm4gYXVjaCBiaXMgenVtIFNjaGx1c3MgYXVzcmVpemVuLi4uCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbGVpY2h0IHZlcnNhdXQgKE9ya3RvZXRlciwgMjYuIEp1biAxOTk3LCAxNDo0Mjo1MSk6CkVpbmUgNjBqYWVocmlnZSBGcmF1IGtvbW10IG5hY2ggSGF1c2UgdW5kIGhvZXJ0IGVpbiBTdW1tZW4gYXVzIGRlbQpTY2hsYWZ6aW1tZXIuIFNpZSBnZWh0IG5hY2hzY2hhdWVuIHVuZCBmaW5kZXQgaWhlIDQwamFlaHJpZ2UgVG9jaHRlciwgZGllIHNpY2gKZ2VyYWRlIG1pdCBpaHJlbSBEaWxkbyB2ZXJ3b2VobnQuCkRpZSBNdXR0ZXIgZnJhZ3QgZGllIFRvY2h0ZXIsIHdhcyBzaWUgZGVubiBkYSBtYWNoZSwgZGFydWYgYW50d29ydGV0IGRpZQpUb2NodGVyIDogSWNoIGJpbiA0MCBKYWhyZSBhbHQgdW5kIGhhZXNzbGljaCwgbmVuIEVoZW1hbm4gd2VyZGUgaWNoIGRvY2ggZWgKbmljaHQgbWVociBiZWtvbW1lbi4KRGllIE11dHRlciBnZWh0IEtvcGZzY2h1ZXR0ZWxuZCByYXVzLgoKQW0gbmFlY2hzdGVuIFRhZyBrb21tdCBkZXIgVmF0ZXIgdW5kIGhvZXJ0IGVpbiBzdW1tZW4gYXVzIGRlbSBTY2hsYWZ6aW1tZXIuIEVyCmdlaHQgbmFjaHNjaGF1ZW4gdW5kIGF1Y2ggZXIgZmluZGV0IHNlaW5lIFRvY2h0ZXIgbWl0IGRlbSBEaWxkbywgd2llZGVyIHdpcmQKc2llIGdlZnJhZ3QsIHdhcyBzaWUgZGVubiBkYSBtYWNodCwgc2llIGFudHdvcnRldCA6IE5hamEsIGljaCBiaW4gNDAgamFocmUsCmhhZXNzbGljaCwgZGFzIGtvbW10IGVpbmVtIEVoZW1hbm4gbm9jaCBhbSBuYWVjaHN0ZW4uCkRlciBWYXRlciBnZWh0IGtvcGZzY2h1ZXR0ZWxuZCByYXVzLgoKQW0gbmFlY2hzdGVuIFRhZyBrb21tdCBkaWUgTXV0dGVyIG5hY2ggaGF1c2UgdW5kIGZpbmRldCBpaHJlbiBNYW5uIHZvciBkZW0KRmVybnNlciwgd2llIGVyIGVpbiBGdXNzYmFsc3BpZWwgc2NoYXV0LCBlaW5lIERvc2UgQmllciBpbiBkZXIgZWluZW4gSGFuZCwgZGVuCkRpbGRvIGluIGRlciBhbmRlcmVuLgpGcmFndCBzaWUgaWhuICA6IFdhcyBtYWNoc3QgZHUgZGVubiBkYSA/CkRhcmF1ZiBlciA6IERhcmcgbWFuIGpldHp0IG5pY2h0IG1hbCBtZWhyIGluIFJ1aGUgbWl0IHNlaW5lbSBTY2h3aWVnZXJzb2huIGVpbgpGdXNzYmFsbHNwaWVsIHNlaGVuID8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMb2RkYXMgVGFnZWJ1Y2ggKE1hZ2ljb2xsaSwgMzAuIEp1biAxOTk3LCAxODowMjozMCk6CgpJbiBCaWxkIHZlcmZmZW50bGljaHRlIExvdGhhciBNYXR0aHVzIHNlaW4gZ2VoZWltZXMgVGFnZWJ1Y2ggLSB1bmQgdmVybG9yCnNlaW4gS2FwaXRuc3BhdGVudCBiZWkgZGVuIEJheWVybi4gQWJlciBMb2RkYSBpc3Qga2VpbmVyLCBkZXIgc2ljaCBzY2hyZWNrZW4gCmx0LiBTY2hvbiBqZXR6dCBnaWJ0IGVzIHNlaW5lIGVyc3RlbiB1bmdlc2NocmllYmVuZW4gS2FwaXRlbCBhdXMgZGVyCmtvbW1lbmRlbiBCdW5kZXNsaWdhLVNhaXNvbjoKCkZSRUlUQUcsIDEuIEFVR1VTVDoKVHJhcCBrb21tdCB2b3IgZGVtIGVyc3RlbiBTcGllbCBpbiBtZWluIFppbW1lciwgc2V0enQgc2ljaCBhdWYgbWVpbmUKQmV0dGthbnRlLgpFciBzaWVodCBtZGUgYXVzLiBHZXN0cmV0LiBFciBmcmFndCBtaWNoOiBMb3RoYXIsIGR1IG1pciBiaXR0ZSBnZWIgQXNwaXJpbi4KSGFiZSBLb3BmYXR0YWNrLiBJY2ggYmVydWhpZ2UgaWhuLiBMaXR0IHNlbGJzdCBvZnQgZ2VudWcgdW50ZXIgS29wZmF0dGFjay4KSWNoIGRyY2tlIGlobSBlaW5lIFNjaGFjaHRlbCBQYXJhY2V0YW1vbCBpbiBkaWUgSGFuZCB1bmQgc2FnZSBpaG0gYXVmCml0YWxpZW5pc2NoOiBJc3NlIHZpbGwgYmVzc2VyIGFsc2UgQXNwcmluLiBVbmQgaWNoIGRlbmtlOiBBc3ByaW4ga29tbXQKdm9uIEJheWVyLiBVbmQgd2FydW0gc29sbCBpY2ggZGVtIERhdW0gc2VpbiBHZWhhbHQgZmluYW56aWVyZW4/CgpTQU1TVEFHLCAyLiBBVUdVU1Q6CkVyc3RlcyBIZWltc3BpZWwgZ2VnZW4gSGVydGhhLiBOYWNoIGRlbSAwOjIga29tbXQgVWxpIEhvZW5lIGluIGRpZSBLYWJpbmUgdW5kCmZyYWd0IFRyYXA6IER1IGhhYmJlIEFzcGlyaW4gZnJlIG1pY2g/IEZyYW56IHRvYnQsIHVuZCBkZXIgbmFjaCBuZXVuIE1pbnV0ZW4KYXVzZ2V3ZWNoc2VsdGUgTWFyaW8gQmFzbGVyIHRyaXR0IHZvciBXdXQgZWluIFJpZXNlbmxvY2ggaW5zIEVudG1kdW5nc2JlY2tlbi4KU28gZ3JvLCBkYSBNZWhtZXQgU2Nob2xsIGluIGVpbmVtIFN0cnVkZWwgbmFjaCB1bnRlbiBnZXJpc3NlbiB3aXJkLiBGbHV0c2NoCnVuZCB3ZWcuIFZlcnN1Y2h0ZSBub2NoLCBpaG4gbWl0IGVpbmVtIEhlY2h0c3BydW5nIHp1IHJldHRlbi4gCkdlaGlybmVyc2NodHRlcnVuZy4KV2llZGVyIGRlciBnbGVpY2hlIFNjaGVpIHdpZSBpbSBsZXR6dGVuIEphaHIuIEljaCBydWZlIGJlaSBCaWxkIGFuLgpXZy4gUmVjaHRzY2hyZWliZXJlZm9ybTogU2NocmVpYnQgc2ljaCBTY2hlaWUgaW1tZXIgbm9jaCBtaXQgPwoKTU9OVEFHLCA0LiBBVUdVU1Q6ClNjaG9sbCBpc3Qgd2llZGVyIGRhLiBFciB0YXVjaHRlIGluIGRlciBLbHJhbmxhZ2UgR3JvbGFwcGVuIGF1TCBJY2ggdHJldGUKdm9yIGRpZSBNYW5uc2NoYWZ0IHVuZCBzYWdlOiBFaW4gUHJvc2l0IGF1ZiBkZW4gTWVobWV0LiBTY2hvbGwgc2FndCBnYXIKbmljaHRzIG1laHIuIGxjaCBtZXJrZSBzb2ZvcnQ6IERhcyBpc3QgbmljaHQgbWVociB1bnNlciBsdXN0aWdlciwgCnF1aWV0c2NoZmlkZWxlciBTY2hvbGxpLiBLZWluIFd1bmRlciwgYmVpIGRlbSBnYW56ZW4gRHJlY2ssIGRlbiBlciB6dWxldHp0CmZyZXNzZW4gbXV0ZS4gV2lyIHNhbW1lbG4gZnIgaWhuIHVuZCBrYXVmZW4gaWhtIHp3ZWkgS2lzdGVuIFBhdWxhbmVyIHVuZAplaW5lIFplaG5lcmthcnRlIGZyIGRlbiBMZWllcmthc3Rlbi4KCkZSRUlUQUcsIDE1LiBBVUdVU1Q6ClVsaSwgRnJhbnogdW5kIEthbGxlIGJpdHRlbiB1bnMgaW5zIFRyb3BoZW56aW1tZXIuIEVyc3RlIGdyb2UgQXVzc3ByYWNoZS4KRnJhbnogc2FndDogSWhyIHNlaWQgZWluZSBTY2hlaW1hbm5zY2hhZnQuIFVsaSBuaWNrdC4gS2FsbGUgcGZlaWZ0LgpGcmFueiBzYWd0IG5vY2g6IFdlbm4gd2llZGVyIEludGVybmEgYW4gZGllIGZmZW50bGljaGtlaXQga29tbWVuLCB2ZXJrYXVmZQppY2ggZXVjaCBhbGxlIGFuIGRlbiBGSyBQaXJtYXNlbnMuIFNwdGVyIGZyYWdlIGljaCBGcmFuejogU2NocmVpYnQgc2ljaApTY2hlaWUgbWl0ID8KCk1PTlRBRywgMTguIEFVR1VTVDoKR3JvZSBGcmV1ZGU6IEtsaW5zbWFubiB3dXJkZSBiZWkgc2VpbmVtIGVyc3RlbiBTcGllbCBpbiBHZW51YSBnbGVpY2ggYXVzZ2UtCndlY2hzZWx0LiBNZWluZSBXZXR0ZSBnaWx0LiBJY2ggc2FnZTogS2xpbnNpIHNjaGlldCBpbiBHZW51YSBpbiBkaWVzZXIgU2Fpc29uCmtlaW5lIDUwIFRvcmUuIEVzIGdlaHQgdW0gemVobiBSaWVzZW4uIEJhc2xlciBobHQgZGFnZWdlbi4KClNBTVNUQUcsIDIzLiBBVUdVU1Q6CldpZWRlciBab2ZmLiBOYWNoIGRlbSAwOjMgaW4gQmllbGVmZWxkIG9ocmZlaWd0IEJhc2xlciBUcmFwLiBJY2ggZ2VoZQpkYXp3aXNjaGVuLCBzY2hsaWNodGUgdW5kIGJlcnNldHplIGZyIE1hcmlvOiBEdSBydW50ZXIgdm9ubmUgUGxhdHosIHdlaWwKVHJhaW5lciBuaXggenVmcmlpZC4gRGFubiB6dSBUcmFwOiBLb2xsZWdhIHNhZ3Q6IER1IFNjaGVpLVRyYWluZXIgdm9ubmUKU2NoZWltYW5uc2NoYWZ0LiBJbW1lciB3aWVkZXIgWndlaWZlbDogIG9kZXIgc3M/CgpTT05OVEFHLCAyNC4gQVVHVVNUOgpBbnJ1ZiB2b24gTG9saXRhLiBNZWluZSBLaW5kZXIgZmVobGVuIG1pci4gRmhsZSBtaWNoIGVpbnNhbS4gU2NoYWx0ZSBkZW4KRmVybnNlaGVyIGVpbi4gV2FzIG11IGljaCBzZWhlbj8gS2xpbnNtYW5uIGluIEdlbnVhIHNjaGlldCBnZXJhZGUgc2VpbmUKU2Fpc29udG9yZSBhY2h0IHVuZCBuZXVuLiBUcmV0ZSBkZW4gRmVtc2VoZXIgYXVzLiBEYXMgSGFuZHkga2xpbmdlbHQuIEVzIGlzdApNZWhtZXQuIEtsZ2xpY2ggdmVyc2Fja3QgaW0gTGVpZXJrYXN0ZW4uIFNlaW5lIFZpc2FrYXJ0ZSBoYXQgdmVyc2FndC4KTGxsb3RoYXIuIEthYW5zIGR1IG1pY2ggYXVzbHNlbj8gRWhyZW5zYWNoZSB1bnRlciBNbm5lcm4uIEljaCBmYWhyZQpzb2ZvcnQgbG9zLgoKTU9OVEFHLCAyNS4gQVVHVVNUOgpXaWUga29tbXQgZGllIExlaWVya2FzdGVuLUdlc2NoaWNodGUgaW4gZGllIEJpbGQtWmVpdHVuZz8gQXVlciBNZWhtZXQsCm1pciB1bmQgZWluZW0gUmVwb3J0ZXIgd3V0ZSBkb2NoIG5pZW1hbmQgZGF2b24uIEZyYW56IGhhdCByZWNodDogV2lyIHNpbmQKZWluZSBTY2hlaW1hbm5zY2hhZnQuIEljaCB2ZXJkY2h0aWdlIEtsaW5zaS4KCkRJRU5TVEFHLCAyNi4gQVVHVVNUOgpGcmFueiBtYWNodCBlcm5zdDogU2Nob2xsIHdpcmQgYW4gZGVuIEZLIFBpcm1hc2VucyB2ZXJrYXVmdC4gVHJhcCB2ZXJzdGVodCBkaWUKV2VsdCBuaWNodCBtZWhyLiBIYXQgd2llZGVyIGVpbmUgS29wZmF0dGFjay4gSWNoIGJlcnNldHplIGZyIGlobjogU2Nob2xsCnZvbGwuIEZyYW56IGJzLiBEdSBrYXVmIG5ldWUgTWFubi4gR2VodCBkZXIgcmdlciBzY2hvbiB3aWVkZXIgbG9zPwpBbSBBYmVuZCB0cmVmZmVuIHdpciB1bnMgenUgZWluZXIgaW50ZXJuZW4gS3Jpc2Vuc2l0enVuZyBiZWkgVGhvbWFzIFN0cnVuei4KRXMgZ2lidCBLc2VocHBjaGVuIHVuZCBmciBNYXJpbyBUaWVma2hscGl6emEgdW5kIGVpbmUgU3RhbmdlIE1hcmxib3JvLgpPbGl2ZXIgS2FobiBzdGVodCBhdWYsIHNhZ3Q6IFNvIGdlaHQgZGFzIG5pY2h0IHdlaXRlci5UaG9tYXMgSGVsbWVyIHN0ZWh0CmF1Ziwgc2FndDogU3RpbW10LiBUaG9yc3RlbiBGaW5rIHN0ZWh0IGF1ZiwgZnJhZ3Q6IFdvIGJpbiBpY2ggaGllcgpoaW5nZXJhdGVuPyBJY2ggc3RlaGUgYXVmLCBlcmtscmUgaWhtOiBXaXIgc2luZCBlaW5lIFNjaGVpbWFubnNjaGFmdC4KU3RydW56IHN0ZWh0IGF1Ziwgc2FndDogSWNoIGhvbGUgZWluZW4gbmV1ZW4gS2FzdGVuLiBFcnN0YXVubGljaCwgTWFyaW8KbWFjaHQgc2ljaCBOb3RpemVuLiBBbHMgd2lyIHNwdGVyIGFtIFRyZXNlbiBzdGVoZW4sIGZyYWd0IGVyIG1pY2g6IFNjaHJlaWJ0CnNpY2ggU2NoZWllIG1pdCAgb2RlciBzcz8KCk5jaHN0ZSBGb2xnZToKLUtsaW5zaSBsZXJudCBMb2xpdGEga2VubmVuCi1VbnNlciBlcnN0ZXIgU2llZzogMS0wIGJlciBEdWlzYnVyZwotRGllIHp3ZWl0ZSBncm9lIEF1c3NwcmFjaGUKLURpZSBkcml0dGUgZ3JvZSBBdXNzcHJhY2hlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29ycnkgZnVlciBkYXMgTGF5b3V0IChNYWdpY29sbGksIDMwLiBKdW4gMTk5NywgMTg6MDU6MTkpOgpBcngsIGRpZSBhZSwgdWUsIG9lIHVuZCBzeiBoYXQgZXMgaXJnZW5kd2llIHplcnJpc3NlbiBpbSBsZXR6dGVuIEFydGlrZWwuClNvcnJ5Li4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTG9kZGFzIFRhZ2VidWNoIChBc21vZGlzLCAzMC4gSnVuIDE5OTcsIDE4OjA3OjEwKToKfiMhIHJuPU1hZ2ljb2xsaSBydD04Njc2ODY1NTAgcmc9d2l0emUKfiMhIHRpZD04Njc2ODY1NTAKSGloaSwgaWNoIGhhYiBtaWNoIGdyYWQgdW50ZXIgZGVuIFRpc2NoIGdlbGFjaHQsIG1laHIgZGF2b24gISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTG9kZGFzIFRhZ2VidWNoIChDYXJhZGhyYXMsIDMwLiBKdW4gMTk5NywgMjA6MTA6NDApOgp+IyEgcm49QXNtb2RpcyBydD04Njc2ODY4MzAgcmc9d2l0emUKfiMhIHRpZD04Njc2ODY1NTAKQWxzbyBpY2ggZmFuZHMgdmVya29ya3N0IHJlY2h0IG5ldHQsIGtsYW5nIHdpZSBkaWUgVGVsbHkgRDEtV2VyYnVuZwoiRHUgbml4IGthdWZlIFRlbGx5IEQxIGRhbm4gRHUgbnVyIHNjaGF1ZS4iCgpJY2ggaGFzc2UgendhciBkaWVzZSBXZXJidW5nLCBhYmVyIGltIEFydGlrZWwgenUgTG9kZGFyIGthbXMgZ3V0LgoKICAgICAgIEJlcmdjaGVuIFJvdGhvcm4gQ2FyYWRocmFzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFYmVuIGF1Zm0gS2xvLi4uIChBbmd1cywgIDcuIEp1bCAxOTk3LCAxNDoyNzoxMyk6CkdyYWQgaGFiIGljaCAyIGNvb2xlIEtsb3NwcnVlY2hlIGdlbGVzZW46CgoxLiBUYXVzY2hlIGhhcnRlbiBTdHVobCBnZWdlbiB3ZWljaGVuIFNlc3NlbCEKCjIuIEFuIGRlciBUdWVyOiBQbGF5IFRvaWxldC1UZW5uaXMsIGxvb2sgdG8gdGhlIHJpZ2h0IQogICBBbiBkZXIgcmVjaHRlbiBXYW5kOiBMb29rIHRvIHRoZSBsZWZ0IQogICBBbiBkZXIgbGlua2VuIFdhbmQgOiBMb29rIHRvIHRoZSByaWdodCEgLi4uCgoqZ3JpbnMqIGRhIG1hY2h0IGRhcyBHZXNjaGFlZnQgcmljaHRpZyBTcGFzcyA6KQoKIC1Bbmd1cwoKLT0gYmV3YXJlIG9mIGxpbWJvLWRhbmNlcnMgPS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFYmVuIGF1Zm0gS2xvLi4uIChOaXJkYXZvLCAgNy4gSnVsIDE5OTcsIDE1OjEwOjEzKToKfiMhIHJuPUFuZ3VzIHJ0PTg2ODI3ODQzMyByZz13aXR6ZQp+IyEgdGlkPTg2ODI3ODQzMwogIE5hLCBkYSBrZW5uIGljaCBub2NoIGVpbmVuIEtsby1TcHJ1Y2gsIGRlciBtaWNoIHp1bSBwcnVzdGVuIGdlYnJhY2h0IGhhdDogCiAgR2FueiB1bnRlbiBhbiBkaWUgS2xvdHVlciBnZXF1ZXN0c2NodCBzdGFuZDoKCiAgICAgICAgICAgICAgICAgICBWb3JzaWNodCwgRmxhY2h3aWNoc2VyIQoKCiAgICBOaXJkYXZvLCBpbW1lciBub2NoIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEViZW4gYXVmbSBLbG8uLi4gKFNjaG9rbywgIDcuIEp1bCAxOTk3LCAxNToxMTo0NCk6Cn4jISBybj1OaXJkYXZvIHJ0PTg2ODI4MTAxMyByZz13aXR6ZQp+IyEgdGlkPTg2ODI3ODQzMwoKU2Nob2tvCkZyYWd0IHNpY2gsIHdpZSBEdSBkZW4gZW50ZGVja3QgaGFzdD8gOykpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFYmVuIGF1Zm0gS2xvLi4uIChFbmd5d3VjaywgIDcuIEp1bCAxOTk3LCAxODo1Nzo0Myk6Cn4jISBybj1TY2hva28gcnQ9ODY4MjgxMTA0IHJnPXdpdHplCn4jISB0aWQ9ODY4Mjc4NDMzCk9rLCB3ZW5uIEtsb3NwcnVlY2hlIGdyYWQgaW4gc2luZCwgbm9jaCBlaW5lbiB2b24gbmVyIFRvaWxldHRlIGluIGRlbgpwaHlzaWthbGlzY2gtY2hlbWlzY2hlbiBJbnN0aXR1dGVuIGRlciBVbmkgS29lbG4genVtIFRoZW1hICJEaWNodGV0IG1hbAp3aWVkZXIiOgoKTGl0dGxlIEpvZSBzaXR6dCBhdWYnbSBLbG8sIApzdGVja3Qgc2ljaCBkZW4gRmluZ2VyIGluIGRlbiBIaW50ZXJuLgoKUmVpbXQgc2ljaHQgbmljaHQsIGRpY2h0ZXQgYWJlci4uLgoKRW5neSosIGhldXRlIGF1cyBLYWxhdS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpdHogKEJhYm9vbiwgIDguIEp1bCAxOTk3LCAwODo0NTo1MCk6CkVpbiBBcnp0IHJ1ZnQgZWluZW4gc2VpbmVyIFBhdGllbnRlbiBhbjoKIkljaCBoYWJlIGVpbmUgc2NobGVjaHRlIHVuZCBlaW5lIGdhbnogc2NobGVjaHRlIE5hY2hyaWNodCBOYWNocmljaHQgZnVlciBzaWUuClp1ZXJzdCBkaWUgc2NobGVjaHRlOiBzaWUgaGFibmUgbm9jaCAyNCBzdHVuZGVuIHp1IGxlYmVuLiBVbmQgamV0enQgZGllIGdhbnoKc2NobGVjaHRlOiBJY2ggdmVyc3VjaGUgc2Nob24gc2VpdCBnZXN0ZXJuLCBzaWUgenUgZXJyZWljaGVuLiIKCkJhYm9vbigpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgprbGVpbiB1bmQgZ2VtZWluIDopIChNaWV6ZSwgIDguIEp1bCAxOTk3LCAwOToyMzoyNSk6CgpFaW4gQXJ6dCB6dSBzZWluZW0gUGF0aWVudGVuOgoKIkljaCBoYWJlIGVpbmUgZ3V0ZSB1bmQgZWluZSBzY2hsZWNodGUgTmFjaHJpY2h0IGZ1ZXIgU2llLiBXZWxjaGUgbW9lY2h0ZW4gU2llCnp1ZXJzdCBob2VyZW4/IgpQYXRpZW50OiAiRGllIHNjaGxlY2h0ZS4iCkFyenQ6ICJvay4sIFdpciBtdWVzc2VuIElobmVuIGxlaWRlciBiZWlkZSBCZWluZSBhbXB1dGllcmVuLi4uIgpQYXRpZW50OiAidW5kIHdhcyBpc3QgZGFubiBkaWUgR3V0ZT8/PyIKQXJ6dDoiRGEgZHJhdXNzZW4gaXN0IGplbWFuZCwgZGVyIG1vZWNodGUgSWhyZSBTY2h1aGUga2F1ZmVuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndhcyBhdXNtIHVzZW5ldCAoQmFib29uLCAxMC4gSnVsIDE5OTcsIDA5OjQ1OjA0KToKRm9sZ2VuZGVzIGhhYiBpY2ggZ3JhZCBpbSBVc2VuZXQgZ2VmdW5kZW4gKGRlLmFsdC5uZXRkaWdlc3QpIHVuZCB3b2xsdGUgZXMKZXVjaCBuaWNodCB2b3JlbnRoYWx0ZW4uCgogCj4gTG9PPiBCZWkgTGFUZVggbXVzcyBpY2ggZXJzdG1hbCBlaW5lbiBnZXNjaGVpdGVuIEVkaXRvcgo+IExvTz4gZmluZGVuIHVuZCBlaW4gTGFUZVgtQnVjaCBsZXNlbiBiZXZvciBpY2ggYXVjaCBudXIgZWluIG1pbmltYWxlcwo+IExvTz4gRXJnZWJuaXNzIGhhYmUuCiAKRXMgZnJldXQgbWljaCBkb2NoIGltbWVyIHdpZWRlciB6dSBob2VyZW4sIGRhcyBSVEZNIGhldXR6dXRhZ2UgZWNodCB0b3RhbApvdXQgaXN0LiBadW0gR2x1ZWNrIGhhYiBpY2ggYmVpIG1laW5lbSBBcmJlaXRzcGxhdHogaW0gQUtXIE11ZWxoZWltLUthZXJsaWNoCmVpbmUgR1VJLVJlYWt0b3Jrb250cm9sbGUuIERhcyBnaWJ0IHp3YXIgYWIgdW5kIGFuIG5lbiBDT1JFLUR1bXAsIGFiZXIKaGV5LCBpY2ggaGFiIG5pY2h0bWFsIGRpZSBTY2h1bHVuZ3N1bnRlcmxhZ2VuIGR1cmNoZ2VsZXNlbi4KIApJc3QgZG9jaCBhbGxlcyB0b3RhbCBzZWxic3RlcmtsYWVyZW5kLgogCgpCYWJvb24gZmluZGV0IHNvIG5lbiBDT1JFLUR1bXAgaGFsYiBzbyB3aWxkLCBzb2xhbmdlIG51ciBkZXIgQ29tcHV0ZXIgc28gd2FzCnZlcmFuc3RhbHRldC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogd2FzIGF1c20gdXNlbmV0IChKaW1kaWdyaXosIDEwLiBKdWwgMTk5NywgMjE6Mjc6NDUpOgp+IyEgcm49QmFib29uIHJ0PTg2ODUyMDcwNCByZz13aXR6ZQp+IyEgdGlkPTg2ODUyMDcwNApIaSwKCkR1IG1laW5zdCwgd2VubiBkZXIgUmVha3RvciBzZWluZW4gJ0NvcmUnIGR1bXB0LCAKZGFubiBrb2VubnRlIGRhcyBib2VzZSBhdXNnZWhlbiA7KQpXb2JlaSBkYXMgc3RhZW5kaWcgcGFzc2llcnQgYXVmIGRlciBXZWx0LCBudW4gbmljaHQKaW1tZXIgZGVyIGdhbnplIEtlcm4gYXVmIGVpbm1hbCBzb25kZXJuIGluIGtsZWluZW4gU3R1ZWNrY2hlbiA6LS8KCgpLbG9zcHJ1ZWNoZSBoYWIgaWNoIGF1Y2g6CiAgRnVjayBtZSBsb3csIGZ1Y2sgbWUgaGlnaCwKICBmdWNrIG1lIHRpbGwgdGhlIGRheSwgSSBkaWUsCiBhbmQgd2hlbiBJJ20gZGVhZCBhbiBsb25nIGZvcmdvdHRlbiwKIGRpZyBtZSB1cCwgYW5kIGZ1Y2sgbWUgcm90dGVuIAogKGZ1ZXIgTmVjcm9waGlsZSA7LSkpCgpVbmQgc3VjaCBuaWNodCBkZW4gV2l0eiBhbiBlaW5lciBXYW5kLAogZGVuIGdyb2Vzc3RlbiBoYWVsdHMgRHUgaW4gZGVyIEhhbmQuIAooamFqYSwgYWx0KQoKU2NobGllc3NsaWNoIG5vY2g6IAogIEljaCBzaXR6ZSB3aWUgZGVyIEZ1ZWhyZXIgaGllciwKIGRpZSBicmF1bmUgTWFzc2UgdW50ZXIgbWlyIAogKGdlc2NobWFja2xvcyA/IGhhdCBkYXMgd2FzIHp1IGJlZGV1dGVuIGJlaSBLbG9zcHJ1ZWNoZW4gPyApCgpCbHViYmVyLAogSmRHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHdhcyBhdXNtIHVzZW5ldCAoTHVnLCAxMS4gSnVsIDE5OTcsIDAxOjAwOjUxKToKfiMhIHJuPUppbWRpZ3JpeiBydD04Njg1NjI4NjUgcmc9d2l0emUKfiMhIHRpZD04Njg1MjA3MDQKS2xvd2l0emUKCkhlcmUgSSBzdGFuZCB3aXRoIGRvd25jYXN0IGdsYW5jZQp0cmllZCB0byBmYXJ0CmFuZCBzaGl0IG15IHBhbnRzCgpVcmdzCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiB3YXMgYXVzbSB1c2VuZXQgKENhdW5vLCAxMS4gSnVsIDE5OTcsIDEzOjI3OjU3KToKfiMhIHJuPUppbWRpZ3JpeiBydD04Njg1NjI4NjUgcmc9d2l0emUKfiMhIHRpZD04Njg1MjA3MDQKTGV0enRlcmVyIFdpdHogKG1pdCBkZXIgYnJhdW5lbiBNYXNzZSkgc3RlaHQgYmVpIHVucyBhbiBjYS4gZnVlbmYKdmVyc2NoaWVkZW5lbiBXYWVuZGVuLiBOdXIgaGFiZW4gaXJnZW5kd2VsY2hlIGlkaW90ZW4ga2VpbmUgYWhudW5nIHZvbiBkZXIKUG9pbnRlLCBkZW5uIG51ciBlaW5tYWwgcmVpbXQgc2ljaCBkYXMgRGluZyBhdWNoIHVuZCBzaWVodCBzbyBhdXMsIHdpZSB2b24gSmRHCmdlc2NocmllYmVuLgoKV2FzIGlzdCBqZXR6dCBiZWRlbmtsaWNoZXIsIGRlciBXaXR6IG9kZXIgZGVyIElRIGRlciBLb3Bpc3Rlbj8KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiB3YXMgYXVzbSB1c2VuZXQgKENhcmFkaHJhcywgMTEuIEp1bCAxOTk3LCAxNjoyNTozMCk6Cn4jISBybj1DYXVubyBydD04Njg2MjA0Nzcgcmc9d2l0emUKfiMhIHRpZD04Njg1MjA3MDQKR3JhZGUgYXVmIGRlbSBPZXJ0Y2hlbiBmdWVyIGtsZWluZSBCZXJnZSBnZWxlc2VuOgoKICBMaWVndCBkZXIgSGFpZGVyIHRvdCBpbSBLZWxsZXI6CiAgRmVuc3RlciBhdWYhIERhbm4gZmF1bHQgZXIgc2NobmVsbGVyLgoKICAgICAgICBHdXRlbiBBcHBldGl0ICAgICAgICAgICBCZXJnY2hlbiBDYXJhZGhyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHdhcyBhdXNtIHVzZW5ldCAoTHVnLCAxMS4gSnVsIDE5OTcsIDIyOjMzOjA3KToKfiMhIHJuPUNhcmFkaHJhcyBydD04Njg2MzExMzAgcmc9d2l0emUKfiMhIHRpZD04Njg1MjA3MDQKCldpZSB0aXRlbHRlIFRpdGFuaWMgbm9jaCBzbyBzY2hvZW4/CgpSYWlkZXIgaGVpc3N0IGpldHp0IFR3aXguCkhhaWRlciBoZWlzc3QgamV0enQgV2l4LgoKRmxhY2gsIGFiZXIgaW1tZXIgd2llZGVyIG5ldHQuIFNvIGlyZ2VuZHdpZXNvLCBEdS4gTGFzcyBtaWNoIGRvY2ggbWl0IERlaW5lcgpNaXJhbmRhIGluIFJ1aGUhCgpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlaHQgZXMgbm9jaCBkdWVtbWVyPyAoSGF0ZSwgMTUuIEp1bCAxOTk3LCAwODo0OTowMSk6CjExLUp1bC05NyAqKioKCkhhbGxvLCAKc2NobGFnZSBtaWNoIG1pdCBlaW5lbSB1SGFsbG8sZXJzdCBsc3RpZ2VuIFBDLVByb2JsZW0gaGVydW06aW1tZXIgd2VubiAKaWNoIGJlaSBtZWluZW0gUGVudGl1bSBhdXMgVmVyc2VoZW4gaW0gTFcgQSBiZWltIEJvb3RlbiBlaW5lIApEaXNrZXR0ZSBoYWIgc3RlY2tlbiBsYXNzZW4sIGthbm4gV2luOTUgbmljaHQgbWVociBnZXN0YXJ0ZXQgd2VyZGVuLiAKCkVzIGVyc2NoZWludCBkYW5uIGRpZSBGZWhsZXJtZWxkdW5nIGNvbW1hbmQuY29tIGZlaGx0IG9kZXIgaXN0IApiZXNjaGRpZ3QuIFNlbGJzdCB3ZW5uIGljaCBkYW5uIGVpbmUgbmV1ZSBjb21tYW5kLmNvbSBuYWNoIERPUyAKZ2VsYWRlbiBoYWJlLCBuZGVydCBzaWNoIGRhcmFuIG5pY2h0cy5XZXIgd2VpRE9TIEFiaGlsZmU/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdlaHQgZXMgbm9jaCBkdWVtbWVyPyAoUGFtcGVycywgMTUuIEp1bCAxOTk3LCAwOTowMjowNik6Cn4jISBybj1IYXRlIHJ0PTg2ODk0OTM0MSByZz13aXR6ZQp+IyEgdGlkPTg2ODk0OTM0MQpBYmVyIGRhcyBpc3QgZG9jaCBnYW56IGVpbmZhY2gsIEhhdGUuCgpXZW5uIGltIEJJT1MgYWxzIEJvb3RyZWloZW5mb2xnZSBBLEMgZWluZ2V0cmFnZW4gaXN0LCB3aXJkIGltbWVyIGVyc3QKdWViZXJwcnVlZnQsIG9iIGltIExhdWZ3ZXJrIEEgKG1laXN0IDMuNSAnJykgZWluZSBEaXNrZXR0ZSBlaW5nZWxlZ3QgaXN0LiBXZW5uCmRvcnQgZWluZSBkcmluIGlzdCwgd2lyZCB2b24gZGllc2VyIGdlYm9vdGV0LiBXZW5uIGRhcyBhYmVyIGtlaW5lClN5c3RlbWRpc2tldHRlIGlzdCwgZ2lidCBlcyBlaW5lbiBGZWhsZXIuCgpQYW1wZXJzLiBIYWV0dGUgbnVuIGFiZXIgd2lya2xpY2ggdmVybXV0ZXQsIGRhc3MgSGF0ZSBkYXMgd2Vpc3MuIDotKQoKUC5TLjogSGllciBoYXRzIHVlYnJpZ2VucyBrZWluZSBVbWxhdXRlIHVuZCBzY2hhcmZlIHMuIExhc3MgZGllIGRvY2ggYml0dGUKYmVpbSBuYWVjaHN0ZW4gTWFsIHdlZywgc29uc3Qga2FubiBtYW4gZGFzIHNvIHNjaGxlY2h0IGxlc2VuLiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWh0IGVzIG5vY2ggZHVlbW1lcj8gKEFzbW9kaXMsIDE1LiBKdWwgMTk5NywgMTU6Mzg6MzgpOgp+IyEgcm49SGF0ZSBydD04Njg5NDkzNDEgcmc9d2l0emUKfiMhIHRpZD04Njg5NDkzNDEKRGlza2V0dGUgcmF1c25laG1lbiB1bmQgQ29tcHV0ZXIgbmV1IHN0YXJ0ZW4gPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBHZWh0IGVzIG5vY2ggZHVlbW1lcj8gKE1hbmdvLCAxNS4gSnVsIDE5OTcsIDE1OjM5OjEwKToKfiMhIHJuPUFzbW9kaXMgcnQ9ODY4OTczOTE4IHJnPXdpdHplCn4jISB0aWQ9ODY4OTQ5MzQxCgpIYWVoIG11c3MgbWFuIGRlbiBqZXR6dCB2ZXJzdGVoZW4/CgpNYW5nby4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdlaHQgZXMgbm9jaCBkdWVtbWVyPyAoQ2F1bm8sIDE1LiBKdWwgMTk5NywgMTU6NDE6MDApOgp+IyEgcm49QXNtb2RpcyBydD04Njg5NzM5MTggcmc9d2l0emUKfiMhIHRpZD04Njg5NDkzNDEKRGFzIGlzdCBkb2NoIHp1IGVpbmZhY2guIERlciBTcGV6aWFsaXN0IG9lZmZuZXQgZGllIEtpc3RlLCBrbGVtbXQgZGFzCkZsb3BweWxhdWZ3ZXJrIGFiLCByZXN0YXJ0ZXQsIHNpZWh0LCBkYXNzIGVzIGltbWVyIG5vY2ggbmljaHQgZnVua3Rpb25pZXJ0LApyZXN0YXJ0ZXQsIGtvbmZpZ3VyaWVydCBkYXMgQklPUyBuZXUsIHJlc3RhcnRldCwgc2llaHQgZW5kbGljaCBkZW4gRXJmb2xnIHVuZAptYWNodCB3ZWl0ZXIuCgpEZW4gTmViZW5lZmZla3QsIGRhc3MgZXIgamV0enQgbmljaHQgdm9uIERpc2tldHRlIGxhZGVuIGthbm4sIGJlc2VpdGlndCBlcgptb3JnZW4uCgpDLiBObwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdlaHQgZXMgbm9jaCBkdWVtbWVyPyAoR3VsZHVrYXQsIDE1LiBKdWwgMTk5NywgMTg6NDI6MzUpOgp+IyEgcm49UGFtcGVycyBydD04Njg5NTAxMjYgcmc9d2l0emUKfiMhIHRpZD04Njg5NDkzNDEKc2NoYXUgZG9jaCBtYWwsIGluIHdlbGNoZSBydWJyaWsgaGF0ZSBkYXMgZ2Vwb3N0ZXQgaGF0LCBwYW1wZXJzISA7KQoKPiBQYW1wZXJzLiBIYWV0dGUgbnVuIGFiZXIgd2lya2xpY2ggdmVybXV0ZXQsIGRhc3MgSGF0ZSBkYXMgd2Vpc3MuIDotKSAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR2VodCBlcyBub2NoIGR1ZW1tZXI/IChSYW50YW5wbGFuLCAxNS4gSnVsIDE5OTcsIDE5OjU5OjEwKToKfiMhIHJuPUd1bGR1a2F0IHJ0PTg2ODk4NDk1NSByZz13aXR6ZQp+IyEgdGlkPTg2ODk0OTM0MQpJaHIgc2VpZCBhbGxlIHp1c2FtbWVuIHNvIHNjaGVpc3NlLCBkYXNzIGVzIGtyYWNodC4gTUFOTiAhISEhCklociBzZWlkIGFsbGUgenVzYW1tZW4gc28gc2NoZWlzc2UsIGRhc3MgZXMga3JhY2h0LiBNQU5OICEhISEKCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmF1ZXJuaG9mIChEaWVkZXIsIDE1LiBKdWwgMTk5NywgMjE6NDc6NTEpOgpLb21tdCBlaW4gWmVicmEgYXVmIGVpbmVuIEJhdWVybmhvZiB1bmQgdHJpZmZ0IGRpZSBIfGhuZXIuCiAgICAgIldhcyBtYWNodCBJaHIgZGVubiBoaWVyIiAKICAgICAtICJXaXIgbGVnZW4gRWllciwgZGFzIGZyZXV0IGRpZSBNZW5zY2hlbiIgCiAgICAgSG1tLCBkZW5rdCBzaWNoIGRhcyBaZWJyYSB1bmQgc2NobGVuZGVydCB3ZWl0ZXIuIEVzIHRyaWZmdCBkaWUgS3xoZS4gCiAgICAgIldhcyBtYWNodCBJaHIgaGllciBhdWYgZGVtIEJhdWVybmhvZj8iIAogICAgIC0gIldpciBnZWJlbiBkZW4gTWVuc2NoZW4gTWlsY2giIAogICAgIEhtbSwgZGVua3Qgc2ljaCBkYXMgWmVicmEgdW5kIHNwYXppZXJ0IHdlaXRlci4gRXMgdHJpZmZ0IGRlbiBIZW5nc3QuCiAgICAgIlVuZCB3YXMgaXN0IERlaW5lIEF1ZmdhYmUgaGllcj8iCiAgICAgLSAiWmllaCBEZWluZW4gYWxiZXJuZW4gUHlqYW1hIGF1cywgZGFubiB6ZWlnIGljaCBlcyBEaXIhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmFtcGlyZSAoRGllZGVyLCAxNS4gSnVsIDE5OTcsIDIxOjQ4OjUzKToKTmFjaHRzLiBEcmVpIFZhbXBpcmUgc2l0emVuIGF1ZiBkZW0gRnJpZWRob2YuIERlciBlcnN0ZSBmbGllZ3QgbG9zLAogICAgIGtvbW10IG5hY2ggZWluZXIgaGFsYmVuIFN0dW5kZSB3aWVkZXIgdW5kIGlzdCBpbSBnYW56ZW4gR2VzaWNodAogICAgIHZvbGxrb21tZW4gYmx1dHZlcnNjaG1pZXJ0LkRpZSBhbmRlcmVuIGJlaWRlbiB3b2xsZW4gbmF0fHJsaWNoCiAgICAgd2lzc2VuLCB3byBlciB3YXIuIERhcmF1ZiBkZXIgZXJzdGU6CiAgICAgIlNlaHQgaWhyIGRhIGhpbnRlbiBkYXMgZ3JvX2UgSGF1cyBtaXQgZGVuIGVybGV1Y2h0ZXRlbiBGZW5zdGVyID8iIAogICAgICJKYSBrbGFyICEiIAogICAgICJUamEsIGRhIHdhciAnbmUgSG9jaHplaXRzZmVpZXIsIHVuZCBkaWUgR2RzdGUgc2luZCBhbGxlIHNvIGJlc29mZmVuLApkYV8KICAgICBzaWUgbWljaCB8YmVyaGF1cHQgbmljaHQgYmVtZXJrdCBoYWJlbiEiIAogICAgIERlciB6d2VpdGUgZmxpZWd0IGxvcyB1bmQga29tbXQgZWJlbmZhbGxzIG5hY2ggZWluZXIgaGFsYmVuIFN0dW5kZQogICAgIG1pdCBibHV0dmVyc2NobWllcnRlbSBHZXNpY2h0IHdpZWRlci4KICAgICAiV28gd2Fyc3QgRHUgZGVubiA/IiAKICAgICAiU2VodCBpaHIgZGFoaW50ZW4gZGllIEtuZWlwZSwgd28gYXVjaCBub2NoIExpY2h0IGlzdCA/IgogICAgICJKYSBrbGFyICEiCiAgICAgIlRqYSwgZGEgd2FyICduZSBTdHVkZW50ZW5mZWllciwgdW5kIGRpZSB3YXJlbiBhbGxlIHNvIGJlc29mZmVuLCBkYV8gc2llCiAgICAgbWljaCB8YmVyaGF1cHQgbmljaHQgYmVtZXJrdCBoYWJlbi4iCiAgICAgU2NobGllX2xpY2ggZmxpZWd0IGF1Y2ggZGVyIGRyaXR0ZSBsb3MuIE5hY2gga3VyemVyIFplaXQgaXN0IGF1Y2ggZXIgbWl0CiAgICAgYmx1dHZlcnNjaG1pZXJ0ZW0gR2VzaWNodCB3aWVkZXIgZGEuCiAgICAgIlVuZCB3byB3YXJzdCBEdSA/IgogICAgICJTZWh0IGlociBkYWhpbnRlbiBkaWUgZ3JvX2UgTWF1ZXI/IgogICAgICJKYSBrbGFyISIKICAgICAiVGphLCBkaWUgaGFiJyBpY2ggbmljaHQgZ2VzZWhlbiAhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2VpdGVuc3BydWVuZ2UgKERpZWRlciwgMTUuIEp1bCAxOTk3LCAyMTo1MTozNik6CkRyZWkgRWhlbWRubmVyIHVudGVybmFobWVuIGVpbmUgV2FuZGVydW5nIGR1cmNoIE9iZXJiYXllcm4uIEFscwogICAgIHNpZSBhbiBlaW5lbSBBYmVuZCBpbiBlaW5lciBHYXN0c3R1YmUgc2FfZW4gdW5kIGJlc29uZGVycyBndXRlIExhdW5lCiAgICAgaGF0dGVuLCBzY2hyaWViZW4gc2llIGFsbGUgZHJlaSBlaW5lIEthcnRlIGFuIGlocmUgRWhlZnJhdWVuIG1pdAogICAgIGdsZWljaGVtIEluaGFsdDoKICAgICAiV2VubiBpY2ggZWluIFZ2Z2xlaW4gd2RyLCBmbHZnIGljaCB6dSBEaXIsIGRhIGljaCBuaWNodCBmbGllZ2VuIGthbm4sCiAgICAgdnZnZWxlIGljaCBoaWVyISIKICAgICBEaWUgQW50d29ydCBkZXIgZHJlaSBFaGVmcmF1ZW4ga2FtIHBvc3R3ZW5kZW5kLiAKICAgICBEaWUgZXJzdGUgaGF0dGUgc2ljaCB8YmVyIGRpZSBLYXJ0ZSBnZWRyZ2VydCB1bmQgc2NocmllYiBkYWhlciBzY2hyaWViOgogICAgICJEdSB3YXJzdCB6dSBIYXVzIHNjaG9uIGltbWVyIGdlbWVpbiwgYXVjaCBhdWYgZGVyIFJlaXNlIGJpc3QgRHUKICAgICBlaW4gU2Nod2VpbiEiCiAgICAgRGllIHp3ZWl0ZSBmYV90ZSBkaWUgU2FjaGUgbWl0IEh1bW9yIGF1ZiB1bmQgYW50d29ydGV0ZToKICAgICAiVm9uIERlaW5lbSBTY2hyZWliZW4gZ2xhdWIgaWNoIGtlaW4gV29ydCwgRHUga29ubnRlc3Qga2F1bSBoaWVyLAogICAgIGdlc2Nod2VpZ2UgZGVubiBkb3J0ISIKICAgICBEaWUgZHJpdHRlIGRhY2h0ZTogIkRlbSB3aXNjaCBpY2ggZWlucyBhdXMiIHVuZCBzY2hyaWViOgogICAgICJEYSBEdSBrZWluIFZ2Z2xlaW4gYmlzdCwgc29uZGVybiBlaW4gV2FuZGVyZXIsIGthbm5zdCBEdSBiZXJ1aGlndAogICAgIHNlaW4sIG1pY2ggdnZnZWx0IGVpbiBhbmRlcmVyISIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHZWh0IGVzIG5vY2ggZHVlbW1lcj8gKEx1ZywgMTUuIEp1bCAxOTk3LCAyMzoyOTo1NCk6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTg2ODk4OTU1MCByZz13aXR6ZQp+IyEgdGlkPTg2ODk0OTM0MQoKUmFudGFuLCBEdSBTZXhpc3QhIFdlbmlnc3RlbnMgZWlubWFsIGhhZXR0ZXN0IER1IEZyYXUgc2NocmVpYmVuIGtvZW5uZW4gOykKClJpY2h0aWdlIFJ1YnJpayBkYWZ1ZXIKTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaXJuZSAoRGllZGVyLCAxNS4gSnVsIDE5OTcsIDIzOjU2OjUzKToKV2lldmllbGUgRi5ELlAuLWxlciBicmF1Y2h0IG1hbiwgdW0gZWluZSBCaXJuZSB6dSB3ZWNoc2Vsbj8KCktlaW5lbi4gV2VubiBkaWUgUmFobWVuYmVkaW5ndW5nZW4gc3RpbW1lbiB1bmQgZGllIFN0ZXVlcm4gZ2VzZW5rdAp3ZXJkZW4sIHdpcmQgZGVyIE1hcmt0IGRhZnxyIHNvcmdlbiwgZGFfIHNpY2ggZGllIEJpcm5lbiB2b24gc2VsYnN0CndlY2hzZWxuLgoKRGFzIFByb2JsZW0gaXN0LCBkYV8gQmlybmUgbnVuIHNjaG9uIDE1IEphaHJlIEthbnpsZXIgaXN0LCB1bmQsIG9id29obApzY2hvbiBsZG5nc3Qga2VpbmUgTGV1Y2h0ZSBtZWhyLCBpbW1lciBub2NoIG5pY2h0IGdld2VjaHNlbHQgd3VyZGUhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIaWVyIG1hbCBlaW4gVm9yc2NobGFnIGZ1ZXIgZGllIERhbWVuIHVuZCBIZXJyZW4gTWFnaWVyIChEaWVkZXIsIDE2LiBKdWwgMTk5NywgMDA6NDI6MzQpOgpTcGllbGxlaXRlciBhdWZnZXBhX3QhCgpTZWlkIGlociBkZXIgQW5zaWNodCwgZGFfIGV1cmUgU3BpZWxlciBkdXJjaCBhbnNwcnVjaHN2b2xsZSBTemVuYXJpZW4gdmllbCB6dQpzZWhyCnZlcnd2aG50IHdlcmRlbj8gTXZjaHRldCBpaHIgZXVyZSB3ZXJ0dm9sbGUgWmVpdCBhbmRlcndlaXRpZyBudXR6ZW4sIGFuc3RhdHQKZXVjaApmfHIgZWluZSBHcnVwcGUgSGFsYmFmZmVuIGRhcyBIaXJuIGF1ZiBkZXIgU3VjaGUgbmFjaCBvcmlnaW5lbGxlbiBJZGVlbiB6dQp6ZXJtYXJ0ZXJuPyBVbnNlcmUgd2VydGUgUmVkYWt0aW9uIHJlY2hlcmNoaWVydGUgaW4gZWluaWdlbiByZW5vbW1pZXJ0ZW4KUm9sbGVuc3BpZWxjbHVicyBpbiBXaWVuIHVuZCBmYW5kIAoKMTAgTWV0aG9kZW4sIHNlaW5lIFJvbGxlbnNwaWVsZ3J1cHBlIHp1IHZlcmRyZ2VybgoKICAgMS5FaW5mYWxsc2xvc2UgUGxvdHMgdW5kIEFiZW50ZXVlcnN6ZW5hcmllbiBzaW5kCiAgICAgZGVyIGhhbGJlIEVyZm9sZwoKICAgICBXb3p1IHNvbGwgbWFuIGR1cmNoZGFjaHRlIFN0b3JpZXMgYW4gSWRpb3RlbiB2ZXJzY2h3ZW5kZW4/IERlciBndXRlIGFsdGUKICAgICBBdWZ0cmFnIHR1dCBlcyBhdWNoIC0gbWFuIGxhc3NlIGVpbmVuIHVuYXVzc3ByZWNobGljaCBtZGNodGlnZW4KQ2hhcmFrdGVyLAogICAgIGRlc3NlbiB3YWhyZSBLcmFmdCBzZWxic3R2ZXJzdGRuZGxpY2ggbmllbWFuZGVtIGJla2FubnQgaXN0ICh6LiBCLiBkZXIKICAgICB1bmF1ZmZkbGxpZ2UgemVybHVtcHRlIEVyem1hZ2llciBkZXIgODUyLiBTdHVmZSwgZGVyICJ6dWZkbGxpZyIgaW0KZ3JpbmRpZ3N0ZW4KICAgICBTY2hsYW1tbG9jaCB2b24gVGF2ZXJuZSB8YmVyIGRpZSBTcGllbGVyIHN0b2xwZXJ0KSwgYXVmdHJldGVuLCB1bmQgZGVuCiAgICAgU3BpZWxlcm4gZWluZSBkZG1saWNoZSBkZWphLXZ1IEdlc2NoaWNodGUgYXVmdGlzY2hlbiAtIG1hbiBtdmdlIGRvY2ggZGllCiAgICAgUHJpbnplc3NpbiBkZXMgUmVpY2hlcyBGZGthbGllbiBhdXMgZGVuIEtsYXVlbiBkZXMgYml0dGVyYnZzZW4gSGV4ZXJzCiAgICAgRHJhaGRpaGFtIGJlZnJlaWVuLiBBbHMgQmVsb2hudW5nIHdpbmt0IGVpbiBQYWFyIHNjaG11dHppZ2VyIFN0cnxtcGZlCmRlcgogICAgIGViZW4gZXJ3ZGhudGVuIFByaW56ZXNzaW4uIFNvbGx0ZW4gZGllIFNwaWVsZXIgZGVuIEF1ZnRyYWcgaG9jaG18dGlnCiAgICAgYWJsZWhuZW4sIGlzdCBpaG5lbiBkaWUgd2FocmUgTWFjaHQgaWhyZXMgQXVmdHJhZ2dlYmVycyB6dQpkZW1vbnN0cmllcmVuOyBhbQogICAgIGJlc3RlbiBkdXJjaCBlaW5pZ2UgdmVya3J8cHBlbG5kZSBWZXJsZXR6dW5nZW4gKHVtIGRlbiBBdWZ0cmFnIGV0d2FzCiAgICAgaGVyYXVzZm9yZGVybmRlciB6dSBnZXN0YWx0ZW4pLiBFaW4gdmVyZG9ycnRlciBTY2h3ZXJ0YXJtIGhhdCBiaXNoZXIKamVkZW4KICAgICBLcmllZ2VyIHNlaHIgbW90aXZpZXJ0IC4uLiAKCiAgIDIuXGJlcm1kY2h0aWdlIE1vbnN0ZXIgc2luZCBkZXIgU3VwcGUgU2FsegoKICAgICBEaWVzZSBSZWdlbCBpc3QgZ2V3aXNzZW5oYWZ0IGluIGplZGVyIFN0dWZlIGFuenV3ZW5kZW4gLSBzaWUKZGVtb3JhbGlzaWVydCBkaWUKICAgICBTcGllbGVyIHVuZCBsZF90IGRpZSBLYW1wYWduZSB6dSBlaW5lbSBmcnZobGljaGVuIEhhY2stYW5kLVNsYXktRmVzdApuYWNoCiAgICAgYmVzdGVyIFRyYWRpdGlvbiB2ZXJrb21tZW4uIE1hbiBsYXNzZSBkZXIgUGhhbnRhc2llIGZyZWllbiBMYXVmIC0ga2VpbmUKICAgICBHZWdlbmQgaXN0IHZvbiBNb25zdGVybiB2ZXJzY2hvbnQ7IHNlaSBlcyBkaWUgYWxzIHNpY2hlciBnZWdsYXVidGUgQnVyZwpkZXIKICAgICBTY2hsYWNodGl1cy1SaXR0ZXIgYnp3LiBlaW5lIHVuc2NoZWluYmFyZSBUcnVoZSwgYXVzIGRlciBlaW4KRmxhbW1lbmRkbW9uCiAgICAgbWl0IDQwIG0gSHZoZSBlbnRzdGVpZ3QgLSBhbGxlcyBpc3QgbXZnbGljaC4gVW5wYXNzZW5kZSB2a29sb2dpc2NoZQogICAgIEFyZ3VtZW50ZSAoU3BpZWxlcjogIm5hY2hkZW0gdW5zIGplZGVuIFRhZyB6dW1pbmRlc3QgZWluIERyYWNoZSBhbmZkbGx0LAogICAgIG11XyBlcyBoaWVyIHVuZW5kbGljaGUgRmxlaXNjaHZvcmtvbW1lbiBnZWJlbiEgV292b24gbGViZW4gZGllIGJpdHRlPyEiKQogICAgIHNpbmQgdm9uIGRlciBIYW5kIHp1IHdlaXNlbi4gRGllIEF1dG9yaXRkdCBlaW5lcyBTcGllbGxlaXRlcnMgZGFyZiBkdXJjaApuaWNodHMKICAgICBlcnNjaHx0dGVydCB3ZXJkZW4uIEhpZXIgaXN0IGF1Y2ggZGllIGFsdGJla2FubnRlIEdsZWljaHVuZyAiU3R1ZmUgZGVzCiAgICAgTW9uc3RlcnMgPSBTdHVmZSBkZXIgU3BpZWxlciArIDE1IG5pY2h0IGF1X2VyIEFjaHQgenUgbGFzc2VuLiAKCiAgIDMuRXJmYWhydW5nc3B1bmt0ZT8gLSBuaWUgZ2VodnJ0CgogICAgIEJlaSBFcmZhaHJ1bmdzcHVua3RlbiBoYXQgZGVyIFNwaWVsbGVpdGVyIHp1IGdlaXplbiAtIFNvbGx0ZW4gZGllClNwaWVsZXIgdHJvdHoKICAgICBCZWFjaHR1bmcgZGVzIFB1bmt0ZXMgMiBlaW5lIFp1ZmFsbHNiZWdlZ251bmcgfGJlcmxlYnQgaGFiZW4sIHNpbmQgYWxsZQppaG5lbgogICAgIHp1c3RlaGVuZGVuIEVQIGR1cmNoIDIwIHp1IHRlaWxlbi4gQ2hhcmFrdGVyZSwgZGllIHNpY2ggaW0gS2FtcGYgZHVyY2gKICAgICBiZXNvbmRlcmVuIE11dCBoZXJ2b3JnZXRhbiBoYWJlbiwgZHxyZmVuIHp1ciBCZWxvaG51bmcgSWhyZSBFUCBtaXQgZWluZW0KICAgICBGYWt0b3Igdm9uIDAuODUgbXVsdGlwbGl6aWVyZW4uIEF1Zm18cGZpZ2VuIFNwaWVsZXJuIGlzdCBrbGFyenVtYWNoZW4sCmRhXwogICAgIHp1IHZpZWxlIEVyZmFocnVuZ3NwdW5rdGUgZGFzIGhhcm1vbmlzY2hlIHVuZCBhdWZyZWdlbmRlIDEuLVN0dWZlLVNwaWVsCiAgICAgemVyc3R2cmVuIHVuZCBkaWUgQ2hhcmFrdGVyZSB2aWVsZXIgc3Bhbm5lbmRlciBNb21lbnRlIGJlcmF1YmVuIC0gei4gQi4KZGVtCiAgICAgRGF2b25sYXVmZW4gdm9yIHZlcmtyfHBwZWx0ZW4gR29ibGlucyBvZGVyIHdpbGRlbiBIYXVza2F0emVuOwogICAgIEdpZnQtUmV0dHVuZ3N3fHJmZW4gYmVpIEFuZ3JpZmZlbiB2b24gU3R1YmVuZmxpZWdlbiBvZGVyIE18Y2tlbiB1LiBkLiAKCiAgIDQuV2lkZXJsaWNoZSBOU0MgKE5pY2h0c3BpZWxlcmNoYXJha3RlcmUhKQogICAgIGJlcmVpY2hlcm4gZGFzIFNwaWVsCgogICAgIE5hY2hkZW0gU3BpZWxlciBlcyBnZWxlZ2VudGxpY2ggZ2VybmUgc2VoZW4sIHdlbm4gc2llIHZvbiBOU0MgYmVnbGVpdGV0CiAgICAgd2VyZGVuLCBkaWUgb2Z0IGFscyBTcHJhY2hyb2hyIHVuZCBIaWxmZSBkZXMgU3BpZWxsZWl0ZXJzIGZ1bmdpZXJlbiwKc2luZCBkaWVzZQogICAgIHNvIGR1bW0gd2llIG51ciBtdmdsaWNoIHp1IGdlc3RhbHRlbi4gRWluIE5TQyBkZXIgc3RkbmRpZyBpbSBXZWcKICAgICBoZXJ1bXN0ZWh0LCBuaWNodHMgYWxzIGJsdmRlIFNwcnxjaGUgdm9uIHNpY2ggZ2lidCB1bmQgYXVjaCBzb25zdCB6dQpuaWNodHMgenUKICAgICBnZWJyYXVjaGVuIGlzdCwga2FubiBzZWhyIGJlcmVpY2hlcm5kIHdpcmtlbi4gTmF0fHJsaWNoIHNpbmQgZGllc2UKICAgICB1bmVybGRfbGljaGVuIHVuZCB0cmV1ZW4gQmVnbGVpdGVyIGRlciBTaXR1YXRpb24gZW50c3ByZWNoZW5kIHp1IHdkaGxlbjsKei4gQi4KICAgICBpc3QgZWluIHBhemlmaXN0aXNjaGVyLCB2ZWdldGFyaXNjaGVyLCBhbnRpYWxrb2hvbGlzY2hlciB1bmQgcG9ldGlzY2gKICAgICBhbmdlaGF1Y2h0ZXIgRWxmIGRpZSBpZGVhbGUgQmVnbGVpdHVuZyBmfHIgZGVuIFp3ZXJnZW5zdmxkbmVydHJ1cHA7CiAgICAgc2FkaXN0aXNjaGUgT3JrLVNjaHdhcnptYWdpZXIgZWlnbmVuIHNpY2ggdm9yenxnbGljaCBhbHMgS2FtZXJhZGVuCiAgICAgcmVjaHRzY2hhZmZlbmVyIFByaWVzdGVyOyBEcnVpZGVuIHVuZCBzb2RvbWlzdGlzY2hlIEJhcmJhcmVua3JpZWdlcgplcmdkbnplbgogICAgIHNpY2ggaGVydm9ycmFnZW5kLiBOYWNoZGVtIGVzIGluIGR1X2Vyc3RlbiBTdHJlX3NpdHVhdGlvbmVuIHp1CiAgICAgTW9yZHZlcnN1Y2hlbiBzZWl0ZW5zIGdlaXN0ZXNzY2h3YWNoZXIgU3BpZWxlciBrb21tZW4ga2Fubiwgc2luZCBOU0MgbWl0CiAgICAgZGVyIGVudHNwcmVjaGVuZGVuIE1hY2h0IGF1c3p1c3RhdHRlbiwgZGllc2UgenUgdmVyaGluZGVybi4gU29sbHRlIGVzCiAgICAgdm9ya29tbWVuIGRhXyBOU0MgYW4gU2VpdGUgZGVyIFNwaWVsZXIga2RtcGZlbiwgc2luZCBpaHJlIFN0dWZlbiBkdXJjaAoxOAogICAgIHp1IGRpdmlkaWVyZW4uIAoKICAgNS5NYWdpc2NoZSBTY2hkdHplIHNpbmQgbmljaHQgZnxyCiAgICAgU3BpZWxlcmNoYXJha3RlcmUgZ2VkYWNodAoKICAgICBBdWYgZGllIChob2ZmZW50bGljaCBvaG5laGluIHxiZXJtZGNodGlnZW4pIEdlZ25lciBkZXIgU3BpZWxlciBpc3QgZGFzCmdlbmF1ZQogICAgIEdlZ2VudGVpbCBhbnp1d2VuZGVuLiBaYWhuc3RvY2hlciBkZXIgVmVyc3RlaW5lcnVuZywgVGFzY2hlbnR8Y2hlciBkZXMKICAgICBUb2RlcyB1LiBkLiBzb2xsdGVuIHp1ciBNaW5kZXN0YXVzc3RhdHR1bmcgamVkZXMgRmVpbmRlcyB6ZGhsZW4sIHZvbiBkZW4KICAgICBTY2h3ZXJ0ZXJuIGRlcyBFcmRiZWJlbnMgdS4gZC4gZ2FueiB6dSBzY2h3ZWlnZW4uIFVtIGRpZSBCYWxhbmNlIGRlcwpTcGllbHMKICAgICB6dSB3YWhyZW4sIGR8cmZlbiBTcGllbGVyIEdlZ2Vuc3RkbmRlIHdpZSBTY2h3ZXJ0ZXIgLTEwLCB2ZXJmbHVjaHRlCiAgICAgUnxzdHVuZ2VuLCBaYXViZXJzdGRiZSBkZXMgV2Fzc2VydHJpbmtlbnMsIEhlbG1lIGRlcyBNdW5kZ2VydWNocyB1bmQKICAgICBkaG5saWNoIG58dHpsaWNoZSBVdGVuc2lsaWVuIHZlcndlbmRlbi4gRXJiZXV0ZXRlIEdlZ2Vuc3RkbmRlIHdlcmRlbgpzb2ZvcnQKICAgICBudXR6LSB1bmQgd2VydGxvcywgd2VubiBzaWUgU3BpZWxlcmNoYXJha3RlcmVuIGluIGRpZSBIZG5kZSBnZWxhbmdlbgooc2llaGUKICAgICBhdWNoIFB1bmt0IDcpIAoKICAgNi5EZW18dGlndW5nIG1hY2h0IGRhbmtiYXIKCiAgICAgRnxocmUgZGVuIFNwaWVsZXJuIGRpZSBPaG5tYWNodCBJaHJlciBlcmJkcm1saWNoZW4gQ2hhcmFrdGVyZSB2b3IgQXVnZW4uCiAgICAgTmljaHRzIGVyZnJldXQgZGllIFNlZWxlIG1laHIgYWxzIGRlciBBbmJsaWNrIGVpbmVzIDEwOHN0dWZpZ2VuCktyaWVnZXJzLCBkZXIKICAgICBhbSBNYXJrdHBsYXR6IHZvbiBCdXh0ZWh1ZGUgenVtIDMwLiBNYWwgYmVpbSBBcm1kcnxjay1XZXR0YmV3ZXJiIHZvbgogICAgIGVpbmVtIDgzamRocmlnZW4gQmlibGlvdGhla2FyIGJlc2llZ3Qgd3VyZGUuIFN0b2x6ZSAxNTJzdHVmaWdlCiAgICAgRWxmZW4tV2FsZGxkdWZlciB2ZXJsaWVyZW4gaWhyZSBCZXNpbm51bmcsIHdlbm4gU2llIGdlZ2VuIERvbG0sIGRlbgogICAgIEtlcnplbnppZWhlciwgZWluIFdldHRzY2hpZV9lbiB2ZXJsaWVyZW4uIEJlaSBCZWZvbGd1bmcgZGllc2VyIFJlZ2VsCnd1cmRlCiAgICAgYmVyZWl0cyB2b24gSGFuZGdyZWlmbGljaGtlaXRlbiBnZWdlbnxiZXIgU3BpZWxsZWl0ZXJuIGJlcmljaHRldDsgZnxyCmdlZWlnbmV0ZQogICAgIFNjaHV0em1hX25haG1lbiBpc3QgZGFoZXIgenUgc29yZ2VuIChlaW5lIC4zNTcgRGVzZXJ0IEVhZ2xlIG18X3RlCiAgICAgYXVzcmVpY2hlbikuIAoKICAgNy5HZWxkIHZlcmRpcmJ0IGRlbiBDaGFyYWt0ZXIKCiAgICAgRGllc2UgYXVzIGRlbSBhbGx0ZGdsaWNoZW4gTGViZW4gYmVrYW5udGUgVGF0c2FjaGUgYmV3YWhyaGVpdGV0IHNpY2ggb2Z0CiAgICAgYXVjaCBiZWkgU3BpZWxlcmNoYXJha3RlcmVuIC0gRGllIEdydXBwZSBrb21tdCBhdWYgdmVycnxja3RlIElkZWVuLCB3aWUKICAgICBiZWlzcGllbHN3ZWlzZSBpaHJlIGFsdGVuIHNjaGFydGlnZW4gV2FmZmVuIGR1cmNoIG5ldWUgenUgZXJzZXR6ZW4sIGlocmUKICAgICBUZXh0aWxyfHN0dW5nZW4gZmxpY2tlbiB6dSBsYXNzZW4sIFZvcnJkdGUgbmFjaHp1a2F1ZmVuIG9kZXIgZWluZmFjaAplaW5lbgogICAgIGZ8cnN0bGljaGVuIEdlbXxzZW1hdHNjaCBtaXQgd2RfcmlnZW0gQmllciBpbiBzdGlua2VuZGVuIEhhZmVudGF2ZXJuZW4KenUKICAgICBnZW5pZV9lbi4gVW0gZGllc2VuIGdyZF9saWNoZW4gQXVzd3xjaHNlbiB2b24gRGVrYWRlbnogdm9yenViZXVnZW4sIHNpbmQKICAgICBqZWdsaWNoZSBHZWxkenV3ZW5kdW5nZW4gc2VpdGVucyBkZXMgU3BpZWxsZWl0ZXJzIHp1IHVudGVybGFzc2VuLiBKZWRlcgotIGF1Y2gKICAgICBIZWxkZW4gLSBtdV8gZnxyIHNlaW4gR2VsZCBhcmJlaXRlbiEgSmUgaGRydGVyLCBkZXN0byBiZXNzZXIuIFVudGVyCiAgICAgdW5lcmZhaHJlbmVuLCBlbnRodXNpYXN0aXNjaGVuIFNwaWVsbGVpdGVybiBrdXJzaWVyZW4gZnxyY2h0ZXJsaWNoZQpCcmR1Y2hlCiAgICAgd2llIHouIEIuIGRhcyBWZXJ0ZWlsZW4gdm9uICh0ZWlscyBtYWdpc2NoZW4sIGlnaXR0ISkgU2NoZHR6ZW4gYmVpCk1vbnN0ZXJuLgogICAgIFNvbGx0ZSBkaWUgR3J1cHBlIHRhdHNkY2hsaWNoIGRpZSBTY2hhdHprYW1tZXIgZWluZXMgZ3JvX2VuIERyYWNoZW4KICAgICBwbHxuZGVybiwgc28gc29yZ2UgbWFuIGRhXyBkZXIgV2VydCBkZXIgZGFyaW4gZW50aGFsdGVuZW4gR2VnZW5zdGRuZGUKICAgICBuZWdhdGl2IGlzdCwgZC4gaC4gbWFuIG11XyBkZW0gV2FmZmVuc2NobWllZCB6dXNkdHpsaWNoIEdlbGQgYmV6YWhsZW4sCiAgICAgZGFtaXQgZXIgZGFzIHplcmJyb2NoZW5lIHVubWFnaXNjaGUgTWF1bHd1cmYtVHZ0ZXJzY2h3ZXJ0IHxiZXJoYXVwdAogICAgIGFubmltbXQuIE5pY2h0IHp1IHZlcm5hY2hsZHNzaWdlbiBzaW5kIEVpbmt8bmZ0ZSwgZGllIHNpY2ggYXVzIFZlcmtkdWZlbgp2b24KICAgICBTY2hpbmRtZGhyZW4gYW4gU2NobGFjaHRiZXRyaWViZSBlcnppZWxlbiBsYXNzZW4uIERpZXNlIHNvbGx0ZW4KZmlza2FsaXNjaCBtaXQKICAgICA5OSwzICUgU2NobGFjaHRnZWJ8aHIgYmVsZWd0IHdlcmRlbi4gRWluIHdlaXRlcmVzIE1pdHRlbCBnZWdlbiBkZW4KICAgICBzY2hkZGxpY2hlbiBHZWxkc2VnZW4gaXN0IGRpZSBzZy4gd3VuZGVyc2FtZSBXZXJ0d2FuZGx1bmcsIGJlaSBkZXIgc2ljaAogICAgIGVyYmV1dGV0ZXIgU2NobXVjayBkZXMgfGJlcmZhbGxlbmVuIHJlaWNoZW4gS2F1Zm1hbm5lcyB3aWUgZHVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGllciBtYWwgZWluIFZvcnNjaGxhZyBmdWVyIGRpZSBEYW1lbiB1bmQgSGVycmVuIE1hZ2llciAoRGllZGVyLCAxNi4gSnVsIDE5OTcsIDAwOjQzOjIwKToKfiMhIHJuPURpZWRlciBydD04NjkwMDY1NTQgcmc9d2l0emUKfiMhIHRpZD04NjkwMDY1NTQKc29ycnksIGF1Y2ggZGllcyB3YXIgd2llZGVyIG51ciByYXVza29waWVydCwgZGVzaGFsYiBzY2hsZWNodCBmb3JtYXRpZXJ0IHVuZAptaXQgdW1sYXV0ZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIaWVyIG1hbCBlaW4gVm9yc2NobGFnIGZ1ZXIgZGllIERhbWVuIHVuZCBIZXJyZW4gTWFnaWVyIChKYXNwZXIsIDE2LiBKdWwgMTk5NywgMDA6NTM6NDgpOgp+IyEgcm49RGllZGVyIHJ0PTg2OTAwNjU1NCByZz13aXR6ZQp+IyEgdGlkPTg2OTAwNjU1NApJc3QgZXMgZWlnZW50bGljaCBlcmxhdWJ0IHNwaWVsZXIgenUgemFwcGVuLCBkaWUgYXJ0aWtlbCBtaXQgCid1bWxhdXRlbicgdmVyb2VmZmVudGxpY2hlbj8/CgpIYXQgbmFjaCBkZXIgZXJzdGVuIHNlaXRlICdxJyBnZWRydWVja3QgOigKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSGllciBtYWwgZWluIFZvcnNjaGxhZyBmdWVyIGRpZSBEYW1lbiB1bmQgSGVycmVuIE1hZ2llciAoRGllZGVyLCAxNi4gSnVsIDE5OTcsIDAwOjU4OjM1KToKfiMhIHJuPUphc3BlciBydD04NjkwMDcyMjggcmc9d2l0emUKfiMhIHRpZD04NjkwMDY1NTQKaGkhCgpTb3JyeSwgYWxzbyBoaWVyIG1hbCBkZXIgTGluayBkZXMgdm9yaGVyaWdlbiBUZXh0ZXMgZnVlciBkaWVqZW5pZ2VuIHdpZQpKYXBzZXIsIGRpZSBlaW5mYWNoIHEgZHJ1ZWNrdGVuIDspKSkgKGVzIGxvaG50IHNpY2gpOgoKaHR0cDovL3d3dy5pbmZvcm1hdGlrLnVuaS1vbGRlbmJ1cmcuZGUvfmhlbnJ5L2pva2VzL3NhdGlyZS1nYW1lbWFzdGVyLmh0bWwKCkdydXNzLApEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIaWVyIG1hbCBlaW4gVm9yc2NobGFnIGZ1ZXIgZGllIERhbWVuIHVuZCBIZXJyZW4gTWFnaWVyIChSaW5nb3IsIDE2LiBKdWwgMTk5NywgMDE6MDc6NTApOgp+IyEgcm49RGllZGVyIHJ0PTg2OTAwNjU1NCByZz13aXR6ZQp+IyEgdGlkPTg2OTAwNjU1NApWb24gZGVuIFVtbGF1dGVuIHVuZCBkZXIgRm9ybWF0aWVydW5nIG1hbCBhYmdlc2VoZW4gLi4uIHdlbm4gbWFuIGJlaSBaZWlsZSAxNTYKYW5nZWxhbmd0IGlzdCwgdW5kIGRhbm4gZmVzdHN0ZWxsZW4gbXVzcywgZGFzcyBkYXMgRW5kZSBkZXMgVGV4dGVzIGZlaGx0LCBkYW5uCm1hY2h0IGRhcyBuaWNodCBnZXJhZGUgZ2x1ZWNrbGljaGVyLgoKQWxzbyBKYXNwZXIsIGR1IGRhcmZzdCA7LSkKClJpbmdvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNlaXRlbnNwcnVlbmdlIChCb2luZywgMTYuIEp1bCAxOTk3LCAxMjo0NzoyMSk6Cn4jISBybj1EaWVkZXIgcnQ9ODY4OTk2Mjk2IHJnPXdpdHplCn4jISB0aWQ9ODY4OTk2Mjk2Ckthbm5zdCBEdSBEaXIgbmljaHQgbWFsIGFuZ2V3b2VobmVuLCB2b3IgZGVtIFBvc3RlbiBlaW5lcyBBcnRpa2VscyBkaWUKVW1sYXV0ZSB1bXp1d2FuZGVsbj8gCkRhbmtlLAogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSGllciBtYWwgZWluIFZvcnNjaGxhZyBmdWVyIGRpZSBEYW1lbiB1bmQgSGVycmVuIE1hZ2llciAoS29iYXlhc2hpLCAxNi4gSnVsIDE5OTcsIDEyOjQ5OjExKToKfiMhIHJuPURpZWRlciBydD04NjkwMDY1NTQgcmc9d2l0emUKfiMhIHRpZD04NjkwMDY1NTQKMTEuIEFsbGUgbWFpbHMgdW5kIG5ld3MgbWl0IHVtbGF1dGVuIHNjaHJlaWJlbi4KCktvYmF5YXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIaWVyIG1hbCBlaW4gVm9yc2NobGFnIGZ1ZXIgZGllIERhbWVuIHVuZCBIZXJyZW4gTWFnaWVyIChEaWVkZXIsIDE2LiBKdWwgMTk5NywgMTM6MTc6NTgpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg2OTA1MDE1MSByZz13aXR6ZQp+IyEgdGlkPTg2OTAwNjU1NAoqaG5nbCogaXMgamEgZ3V0LCBoYWJzIGpldHp0IGthcGllcnQuLi4KZGFzIHByb2dyYW1tIHp1bSBhdXRvbWF0aXNjaGUgc2VhcmNoJnJlcGxhY2Ugc3RlaHQgamV0enQgOikKCkRpZWRlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEdlaHQgZXMgbm9jaCBkdWVtbWVyPyAoUGFtcGVycywgMTYuIEp1bCAxOTk3LCAxNTowODo0NCk6Cn4jISBybj1HdWxkdWthdCBydD04Njg5ODQ5NTUgcmc9d2l0emUKfiMhIHRpZD04Njg5NDkzNDEKV2llc28gdmVyc3RlaHQgbWljaCBrZWluZXI/Cgoqc2V1ZnoqCgpQYW1wZXJzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR2VodCBlcyBub2NoIGR1ZW1tZXI/IChMdWcsIDE2LiBKdWwgMTk5NywgMjI6MTY6MTQpOgp+IyEgcm49UGFtcGVycyBydD04NjkwNTg1MjQgcmc9d2l0emUKfiMhIHRpZD04Njg5NDkzNDEKClNwcmljaCBEZXV0c2NoLCBuaWNodCBIZXNzaXNjaCwgZGFubiB2ZXJzdGVodCBEaWNoIGplZGVyLgoKR2VpbiBHaQpMdWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlbGdpZXJ3aXR6IChHYXN0MiwgMTcuIEp1bCAxOTk3LCAxNTo1NDoxOCk6CkFjaHR1bmcsIGRlciBpc3QgaGVmdGlnLCBiaXR0ZSBudXIgbGVzZW4sIHdlbm4gbWFuIGdlc2NobWFja2xvc2UgV2l0emUgbWFnLi4uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCldpZSB2aWVsZSBLaW5kZXIgaGF0IGVpbiBCZWxnaWVyIGltIER1cmNoc2Nobml0dGUgPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKClNlY2hlcywgMiBpbSBLZWxsZXIsIDIgaW0gR2FydGVuIHVuZCAyIGF1ZiBWaWRlbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2FnZW5oYWZ0IChMdWcsIDE4LiBKdWwgMTk5NywgMjM6NTI6MjApOgoKVG9sbCB3YXMgZGllIFdlcmJ1bmcgc28gYnJpbmd0OgoKRGEgc3RlaHQgZWluZSBUdXNzaWUgbmViZW4gZWluIHBhYXIgS2Vrc2VhbiBkZXIgVGhla2UgdW5kIHNhZ3QgenUgZGVtIE1hY2tlcgpkYXZvcjogTmljZSB0byBlYXQgeW91IQoKV28gYmxlaWJ0IGRpZSBCdW5kZXNwcnVlZnN0ZWxsZSBmdWVyIGp1Z2VuZGdlZmFlaHJkZW5kZSBTY2hyaWZ0ZW4/CktvcGZzY2h1dHRlbG5kCkx1ZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29obG1laXNlIChTY2hsaXBzLCAyMS4gSnVsIDE5OTcsIDA3OjU5OjIyKToKQXVjaCBhdWYgZGllIEdlZmFociBoaW4sIGRhc3MgYWxsZXMgc2Nob24gbWFsIGRhIHdhciAtIGRhcyBoaWVyIGhhYiBpY2gKa3VlcnpsaWNoIGdlZnVuZGVuOgoKRGllIGdhZW5naWdzdGVuIHNleHVlbGxlbiBQaGFudGFzaWVuIGRlciBLb2hsbWVpc2UKIAogCiAgIDEuIE1pdCBlaW5lciBCbGF1bWVpc2UgKDg4JSkKIAogICAyLiBNaXQgZWluZW0gWnVndm9nZWwgKDgyJSkKIAogICAzLiBJbSBXaW50ZXIgKDgxJSkKIAogICA0LiBNaXQgZWluZXIgQmxhdW1laXNlLCB1bmQgZWluIFp1Z3ZvZ2VsIHNjaGF1dCB6dSAoODAlKQogCiAgIDUuIEluIGVpbmVtIE5lc3QgYXVmIGRlbSBSYW5kIGVpbmVzIFZ1bGthbmtyYXRlcnMsIHVuZCBkaWUgRXJkZSBiZWJ0ICg2OCUpCiAKICAgNi4gSW0gQXVmenVnICg2MyUpCiAKICAgNy4gSW0gS2VyemVuc2NoZWluLCBtaXQgQm9sZXJvICg2MiUpCiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNwcmFjaGdlYnJhdWNoIChTY2hsaXBzLCAyMS4gSnVsIDE5OTcsIDA4OjAwOjI0KToKd2hhdCB0aGUgZi4uLgogCkZVQ0sgaXMgcGVyaGFwcyBvbmUgb2YgdGhlIG1vc3QgaW50ZXJlc3RpbmcgJiBleGNpdGluZyB3b3JkcyBpbgp0aGUgRW5nbGlzaCBsYW5ndWFnZSBmdWNrIGlzIHRoZSBvbmUgbWFnaWNhbCB3b3JkIHdoaWNoIGp1c3QgYnkgaXRzCnNvdW5kIGNhbiBkZXNjcmliZSBwbGVhc3VyZSwgcGFpbiwgaGF0ZSBhbmQgbG92ZS4gZnVjayBjb21lcyBmcm9tCnRoZSBHZXJtYW4gImZpY2tlbiIuICoKIApJTiBsYW5ndWFnZSwgImZ1Y2siIGZhbGxzIGludG8gbWFueSBncmFtbWF0aWNhbCBjYXRlZ29yaWVzLgpGdWNrIGNhbiBiZSB1c2VkIGFzIGEgdmVyYiBib3RoIHRyYW5zaXRpdmUgKEhlIGZ1Y2tlZCBoZXIpIGFuZAppbnRyYW5zaXRpdmUgKFNoZSB3YXMgZnVja2VkIGJ5IGhpbSkuIEl0IGNhbiBiZSBhbiBhY3RpdmUgdmVyYgooSGUgcmVhbGx5IGdpdmVzIGEgZnVjaykgb3IgYSBwYXNzaXZlIHZlcmIgKFNoZSByZWFsbHkgZG9lc24ndCBnaXZlIGEKZnVjayksIGFzIGFuIGFkdmVyYiAoU2hlIGlzIGZ1Y2tpbmcgaW50ZXJlc3RlZCBpbiBoaW0pIGFuZCBhIG5vdW4KKFNoZSBpcyBhIGZpbmUgZnVjaykuIEZ1Y2sgY2FuIGJlIHVzZWQgYXMgYW4gYWRqZWN0aXZlIChTaGUgaXMgZnVja2luZwpiZWF1dGlmdWwpLiBBcyB5b3UgY2FuIHNlZSB0aGVyZSBpcyBhIHdob2xlIGxvdCBvZiByZWFsIHZlcnNhdGlsaXR5CndpdGggImZ1Y2siLiBJdCBwb3BzIHVwIGV2ZXJ5d2hlcmUuICoKIApCRVNJREVTIGl0cyBzZXh1YWwgY29ubm90YXRpb24sIHRoaXMgbG92ZWx5IHdvcmQgY2FuIGJlIHVzZWQgdG8KZGVzY3JpYmUgbWFueSBzaXR1YXRpb25zOiBmcmF1ZCB+IEkgZ290IGZ1Y2tlZCBieSB0aGF0IGNyb29rICoKRGlzbWF5IH4gT2gsIGZ1Y2sgaXQhICogVHJvdWJsZSB+IEknbSBmdWNrZWQgbm93LiAqIENvbmZ1c2lvbiB+CldoYXQgdGhlIGZ1Y2s/ICogQWdyZXNzaW9uIH4gRnVjayB5b3UhICogRGVzcGFpciB+IGZ1Y2tlZCBhZ2FpbiEgKgpQaGlsb3NvcGh5IH4gV2hvIGdpdmVzIGEgZnVjaz8gKiBJbmNvbXBldGVuY2UgfiBIZSdzIGEgcmVhbApmdWNrLW9mZi4gKiBOdW1lcm9sb2d5IH4gU2l4dHktZnVja2luJy1OaW5lICogUmViZWxsaW9uIH4gRnVjayBpdCEgKgpEaXNwbGVhc3VyZSB+IFdoYXQgdGhlIGZ1Y2sncyBnb2luZyBvbj8gKiBTYXRpc2ZhY3Rpb24gfiBGdWNrIG1lCmFnYWluISBBbHNvIGFzOiBEZXNjcmlwdGl2ZSBhbmF0b215IH4gSGUncyBhIGZ1Y2tpbicgYXNzaG9sZS4gKgpUbyB0ZWxsIHRpbWUgfiBJdCdzIHNpeC1mdWNraW5nLXRoaXJ0eS4gKiBBcyBhIHByZWRpY3Rpb24gfgpXZWxsLCBJJ2xsIGJlIGZ1Y2tlZCAqIEEgcG9saXRpY2FsIHN0YXRlbWVudCB+IEZ1Y2sgV2FzaGluZ3RvbiAqCkluY2VzdHVvdXMgfiBNb3RoZXIgZnVja2VyICogQSBwdXQgZG93biB+IEZ1Y2sgb2ZmLCBidXN0ZXIhICoKQWxsZW5jb21wYXNzaW5nIH4gRnVjayAnZW0gYWxsISAqIEdvdmVybm1lbnRhbCBhZmZhaXJzIH4gRnVjayB0aGUKSVJTLiAqIEEgcG9rZXIgaGFuZCB+IEEgcm95YWwgZnVjayAqIFRvIHN0YXJ0IGEgcmVsYXRpb25zaGlwIH4KTGV0J3MgZnVjayBub3cgKiBBcyBhbiBhY2NlcHRhbmNlIH4gRnVja2luJyBBISAqIEVuam95bWVudCB+IEZ1Y2tpbicKV293ISAqIEEgY2xvc2luZyB+IEZ1Y2tpbmdseSB5b3Vycy4KIApVU0UgZnVjayBpbiB5b3VyIGRhaWx5IHNwZWVjaCBwcm91ZGx5LiBGdWNrIGFkZHMgcHJlc3RpZ2UgdG8gYW55CmNvbnZlcnNleHRpb24uIFB1dCB0aGlzIGNvbG9yZnVsIGZvdXIgbGV0dGVyIHdvcmQgdG8gd29yayBmb3IgeW91Owp0b2RheSwgdGVsbCBzb21lb25lIHlvdSBrbm93ICJGdWNrIHlvdSIuLi4gb3IgIkxldCdzIGZ1Y2siICoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpiZXRyaWVic3N5c3RlbWUgKFNjaGxpcHMsIDIxLiBKdWwgMTk5NywgMDg6MDg6NDcpOgouLi4gdW5kIG5vY2ggd2FzIHdhcyB2aWVsZWxpY2h0IHNjaG9uIG1hbCBkYSB3YXIgKHN0b2VydCBtaWNoIGFiZXIgdHJvdHpkZW0KbmV0KQoKTlVSIEZMSUVHRU4gSVNUIFNDSE9FTkVSCiAKRGllIE5vdGl6ZW4gZWluZXMgdW5iZWthbm50ZW4gZmx1Z2VyZmFocmVuZW4gQW53ZW5kZXJzIHVlYmVyCnZlcnNjaGllZGVuZSBlbGVrdHJvbmlzY2hlIEFpcmxpbmVzOgogCkRPUy1BaXJsaW5lczoKQWxsZSBGbHVnZ2Flc3RlIHNjaGllYmVuIGRhcyBGbHVnemV1ZyBhbiwgYmlzIGVzIGFiaGVidC4gRGFubiBzcHJpbmdlbgpzaWUgYXVmIHVuZCBsYXNzZW4gZGFzIEZsdWd6ZXVnIHRydWRlbG4sIGJpcyBlcyB3aWVkZXIgYXVmIGRlbgpCb2RlbiBhdWZzY2hsYWVndC4gRGFubiBzY2hpZWJlbiB3aWVkZXIgYWxsZSBhbiwgc3ByaW5nZW4gYXVmLi4uCiAKTUFDLUFpcmxpbmVzOgpBbGxlIFN0ZXdhcmRzLCBTdGV3YXJkZXNzZW4sIFBpbG90ZW4sIEdlcGFlY2t0cmFlZ2VyIHVuZCBUaWNrZXR2ZXJrYWV1ZmVyCnNlaGVuIGdsZWljaCBhdXMsIGJld2VnZW4gc2ljaCBnbGVpY2ggdW5kIHNhZ2VuIGRhcyBnbGVpY2hlLgpXZW5uIG1hbiBuYWNoIERldGFpbHMgZnJhZ3QsIGJla29tbXQgbWFuIGltbWVyIGRpZSBnbGVpY2hlIEFudHdvcnQ6CkRhcyBtdWVzc2UgbWFuIG5pY2h0IHdpc3NlbiwgdW5kIGFsbGVzIGxhdWZlIHNjaG9uIHJpY2h0aWcuIE1hbgpzb2xsZSBhbHNvIGxpZWJlciBnbGVpY2ggc3RpbGwgc2Vpbi4KIApPUy8yLUFpcmxpbmVzOgpVbSBhbiBCb3JkIGRlcyBGbHVnemV1Z3MgenUga29tbWVuLCBtdXNzIG1hbiBzZWluZSBUaWNrZXRzIHplaG5tYWwKc3RlbXBlbG4gbGFzc2VuLiBEYWZ1ZXIgbXVzcyBtYW4gaW4gemVobiB1bnRlcnNjaGllZGxpY2hlbgpTY2hsYW5nZW4gc3RlaGVuLiBTY2hsaWVzc2xpY2ggZnVlbGx0IG1hbiBlaW4gRm9ybXVsYXIgYXVzLCBpbiBkZW0KbWFuIGFuZ2ViZW4gbXVzcywgd28gbWFuIHNpdHplbiBtb2VjaHRlIHVuZCBvYiBkZXIgU2l0enBsYXR6IHdpZSBpbiBlaW5lbQpTY2hpZmYsIGVpbmVtIFp1ZyBvZGVyIGVpbmVtIEJ1cyBhdXNzZWhlbiBzb2xsLiBGYWxscyBlcyBlaW5lbSBnZWxpbmd0LAphbiBCb3JkIHp1IGtvbW1lbiwgdW5kIHdlbm4gZGFzIEZsdWd6ZXVnIHRhdHNhZWNobGljaCB2b20gQm9kZW4KYWJoZWJ0LCBoYXQgbWFuIGVpbmVuIHd1bmRlcmJhcmVuIEZsdWcsIGVzIHNlaSBkZW5uLCBIb2VoZW4tIG9kZXIKU2VpdGVucnVkZXIgZnJpZXJlbiBlaW4uIEluIGRpZXNlbSBGYWxsIGhhdCBtYW4gamVkb2NoIGltbWVyIG5vY2gKZ2VudWVnZW5kIFplaXQsIHNpY2ggYXVmIGRlbiBBYnN0dXJ6IHZvcnp1YmVyZWl0ZW4uCiAKVU5JWC1BaXJsaW5lczoKSmVkZXIgYnJpbmd0IGVpbiBTdHVlY2sgZGVzIEZsdWd6ZXVncyB6dW0gRmx1Z2hhZmVuIG1pdC4gQWxsZSBnZWhlbgphdWYgZGllIFN0YXJ0YmFobiB1bmQgc2V0emVuIGRhcyBGbHVnemV1ZyBTdHVlY2sgZnVlciBTdHVlY2sgenVzYW1tZW4uCkRhYmVpIGRpc2t1dGllcmVuIHNpZSBmb3J0d2FlaHJlbmQsIHdlbGNoZSBBcnQgdm9uIEZsdWd6ZXVnIHNpZSBnZXJhZGUKenVzYW1tZW5iYXVlbi4KIApOVC1BaXJsaW5lczoKQWxsZSBGbHVnZ2Flc3RlIGdlaGVuIGF1ZiBkaWUgU3RhcnRiYWhuLCBzYWdlbiBpbSBDaG9yIGRhcyBQYXNzd29ydAp1bmQgYmlsZGVuIGRpZSBVbXJpc3NlIGVpbmVzIEZsdWd6ZXVncy4gRGFubiBzZXR6ZW4gc2ljaCBhbGxlIGF1ZiBkZW4KQm9kZW4gdW5kIGdlYmVuIEdlcmFldXNjaGUgdm9uIHNpY2gsIGFscyB3dWVyZGVuIHNpZSB3aXJrbGljaCBmbGllZ2VuLgogCldJTkRPV1MtQWlybGluZXM6CkRhcyBGbHVnaGFmZW50ZXJtaW5hbCBpc3Qgc2Nob2VuIGJ1bnQuIFN0ZXdhcmRzIHVuZCBTdGV3YXJkZXNzZW4Kc2luZCBmcmV1bmRsaWNoLiBNYW4gZ2VsYW5ndCBvaG5lIFByb2JsZW1lIGFuIEJvcmQsIGVpbiByZWlidW5nc2xvc2VyClN0YXJ0LiBQbG9ldHpsaWNoIHN0dWVyenQgZGFzIEZsdWd6ZXVnIG9obmUgVm9yd2FybnVuZyBhYi4KIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGJldHJpZWJzc3lzdGVtZSAoQ2F1bm8sIDIxLiBKdWwgMTk5NywgMTY6NDE6MDgpOgp+IyEgcm49U2NobGlwcyBydD04Njk0NjUzMjcgcmc9d2l0emUKfiMhIHRpZD04Njk0NjUzMjcKTElOVVggQWlybGluZXM6CkRpZSBQYXNzYWdpZXJlIGVyaGFsdGVuIGVpbmUgQmF1YW5sZWl0dW5nIHVuZCBXZXJremV1Zy4gQXJtZXdlZGVsbmQgZXJoZWJlbgpzaWUgc2ljaCBpbiBkaWUgTHVmdCB1bmQgYmVnaW5uZW4gaW0gRmx1ZywgaWhyIEZsdWd6ZXVnIHNlbGJzdAp6dXNhbW1lbnp1YmF1ZW4uIEFjaHR1bmcsIGltbWVyIHNjaG9lbiB3ZWl0ZXJ3ZWRlbG4uIEZhbGxzIG1hbCBlaW5lciBhYnN0dWVyenQKLSBtYWNodCBuaWNodHMsIGRpZSBuYWVjaHN0ZSBWZXJzaW9uIGRlciBCYXVhbmxlaXR1bmcgaXN0IHVudGVyd2Vncy4KCkMgQWlybGluZXM6CkRpZSBGbHVnZmlybWEgQyBoYXQgenUgbGFuZ2UgbWl0IGFuZGVyZW4gRmxpZWdlcm4gZ2VsaWViYWV1Z2VsdCwgYmlzIHNpZQpwbGVpdGUgZ2VnYW5nZW4gaXN0LiBKZXR6dCBzY2h3ZWJlbiBhbGxlIEZsaWVnZXIgaW4gZGVyIEx1ZnQgdW5kIGhvZmZlbiBhdWYKd2VpY2hlIExhbmR1bmcuIFZpZWxlIFBhc3NhZ2llcmUgdmVyc3VjaGVuLCBpbSBGbHVnIGF1ZiBhbmRlcmUgTGluaWVuCnVtenVzdGVpZ2VuLiBFaW5pZ2UgZmFsbGVuIGxlaWRlciBvaG5lIEZhbGxzY2hpcm0gaW4gUmljaHR1bmcgZGVyIHN0YWVya3N0ZW4KR3Jhdml0YXRpb25zcXVlbGxlLiBQZWNoIGdlaGFidCwgbm9jaCBzY2h3ZWJ0IG1laW4gRmxpZWdlci4KClNpbGljb24gR3JhcGhpY3MgQWlybGluZXM6Cldlbm4gbWFuIHp3aXNjaGVuIHp3ZWkgZ2FueiBiZXN0aW1tdGVuIFB1bmt0ZW4gaW1tZXIgaGluIHVuZCBoZXIgZmxpZWd0LCBlaW5lCmd1dGUgV2FobC4gTGVpZGVyIHdlcmRlbiBudXIgRmx1Z2hhZWZlbiB2b24gU3RhZWR0ZW4gdWViZXIgemVobiBNaWxsaW9uZW4KRWlud29obmVybiBiZWRpZW50LiBXZXIgaW4ga2xlaW5lIFN0YWVkdGUgbXVzcywgaGF0IGtlaW5lIENoYW5jZS4gQXVzc2VyZGVtCmdpYnQgZXMgbnVyIGRyZWkgS2F0ZWdvcmllbiB2b24gUGxhZXR6ZW46IFRldWVyIC0gc2VociB0ZXVlciAtIEtyZWlzY2ghIERhZnVlcgpzaW5kIGRpZSBTaXR6ZSBiZXF1ZW0gdW5kIGRpZSBCZWRpZW51bmcgbGFlY2hlbHQuCgpWTVMgQWlybGluZXM6Ck1lZ2FjYXJyaWVyIG1pdCB3ZWx0d2VpdGVyIEp1NTItRmxvdHRlLiBQYXNzYWdpZXJlIHN0cmVpa2VuIHp1ciBaZWl0IGdlZ2VuClVtc3RlbGx1bmcgYXVmIG1vZGVybmVzIEZsdWdnZXJhZXQuIFNwZXppYWxpc2llcnQgYXVmIEZvcm1hdGlvbnNmbHVnIG1pdApzcGVrdGFrdWxhZXJlbiBDcmFzaG1vZWdsaWNoa2VpdGVuLgoKQW1pZ2EgQWlybGluZXM6CkFuIEJvcmQgamVkZXMgZHJpdHRlbiBGbHVnemV1Z3Mgc2l0enQgZWluIFRlcnJvcmlzdC4gQWxsZSBQYXNzYWdpZXJlIGR1ZXJmZW4KYW4gZGVuIFRyaWVid2Vya2VuIHNjaHJhdWJlbiwgZGllIFN5c3RlbXNpY2hlcmhlaXQgaG9mZnQgZGFyYXVmLCBkYXNzIGplZGVyCndlaXNzLCB3YXMgZXIgdHV0LiBNYW4ga29tbXQgdWViZXJyYXNjaGVuZCBzY2huZWxsIHVuZCBsZWljaHQgdm9yYW4sIGJpcyBkZXIKVGVycm9yaXN0IHp1c2NobGFlZ3QuCgpBbXN0cmFkIEFpcmxpbmVzOgpCaXNoZXIgc2luZCBrZWluZSBuZW5uZW5zd2VydGVuIEFic3R1ZXJ6ZSBiZWthbm50LiBEaWUgRmx1Z3NpY2hlcmhlaXQgZ2Vob2VydGUKenUgZGVtIGJlc3Rlbiwgd2FzIGVzIGdhYi4gRWluemlnZXMgTWFua286IERpZSBHZXNlbGxzY2hhZnQgZmxpZWd0CmF1c3NjaGxpZXNzbGljaCBuYWNoIEF1c3RyYWxpZW4uCgpDLiBObwoKKGRpZSBoYWVuZ2VuIGJlaSBtaXIgc2VpdCBldHdhIDEgMS8yIEphaHJlbiBhbSBMYWJvcnBsYXR6IC4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkludGVybmV0IChSb2NodXMsIDIxLiBKdWwgMTk5NywgMjA6MjA6MDUpOgpEYXMgSW50ZXJuZXQgaXN0IHNjaGxpZXNzbGljaCBkYWZ1ZXIga29uemlwaWVydCwgbmFjaCBlaW5lbQpBdG9ta3JpZWcgenUgZnVua3Rpb25pZXJlbi4gRGFubiBpc3QgbmFlbWxpY2ggZW5kbGljaCBkaWUgQW56YWhsIGRlcgpCZW51dHplciBkZXIgcmVhbCB2ZXJmdWVnYmFyZW4gQmFuZGJyZWl0ZSBhbmdlcGFzc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogc3ByYWNoZ2VicmF1Y2ggKFlhbnRybywgMjIuIEp1bCAxOTk3LCAwODowOTo1Myk6Cn4jISBybj1TY2hsaXBzIHJ0PTg2OTQ2NDgyNCByZz13aXR6ZQp+IyEgdGlkPTg2OTQ2NDgyNAoKRXJpbm5lcnQgbWljaCBzY2h3ZXIgYW4gZWluZW4gQXVzc2Nobml0dCBkZXIgRWRkaWUgTXVycGh5IC0gU2hvdyAiUmF3IiwgaW4gZGVyCmVyIGRpZSBHZXNjaGljaHRlIGVpbmVzIEZyZXVuZGVzIGVyemFlaGx0LCBkZXIgdm9uIHNlaW5lciBGcmV1bmRpbiBtaXQgZWluZXIKYW5kZXJlbiBpbSBCZXR0IGVyd2lzY2h0IHdpcmQuLi4gU2llIHJlbm50IHdlZyB1bmQgbWFjaHQgVGhlYXRlciB1bmQgZXIgbWVpbnQKbGFlc3NpZzoKCiJTb3JyeSBCYWJlLCBTb3JyeSBzb3JyeS4uLi4uIG9rb2suLiBJIEZ1Y2sgaGVyLi4uIEkgZnVja2VkIGhlciBoYXJkLCBidXQgSQptYWRlIGxvdmUgdG8geW91ISEgQW5kIHdoZW4gYSBmdWNrIGNhbiBjb21lIGJldHdlZW4gb3VyIGxvdmUsIHRoZXJlIG11c3QgYmUKc29tZXRoaW5nIHdyb25nISEhIgoKWWFudHJvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpvZXN0ZXJyZWljaGVyIGRpZSB4dGUgKERpZWRlciwgMjMuIEp1bCAxOTk3LCAyMTo0MDo1Mik6CkVpbiBPZXN0ZXJyZWljaGVyIGtvbW10IGluIFdpZW4genVtIE9iaSB1bmQgc2FndCB6dW0gVmVya2FldWZlcjoKIkljaCBicmF1Y2hlIGVpbmVuIDNlciB1bmQgZWluZW4gNWVyIEJvaHJlciwgd2VpbCBpY2ggZWluIDhlciBMb2NoCmJvaHJlbiB3aWxsISIKU2FndCBkZXIgVmVya2FldWZlcjoiIFdhcnVtIG5laG1lbiBzaWUgbmljaHQgZWluZW4gNGVyIEJvaHJlciwgZGFubgpicmF1Y2hlbiBzaWUgbmljaHQgdW1zcGFubmVuISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJhdXN0ZWxsZSAoRGllZGVyLCAyMy4gSnVsIDE5OTcsIDIxOjQ4OjIwKToKQXVmIGVpbmVyIEJhdXN0ZWxsZSBhdWYgZWluZW0gSG9jaGhhdXMgYXJiZWl0ZW4gMTYgQmF1YXJiZWl0ZXIuIEVpbmVyIG11c3MgbWFsCnBpbmtlbG4gdW5kIHN0ZWxsdApzaWNoIGF1ZiBlaW5lbiBTdGFobHRyYWVnZXIsIGRlciB2b24gendlaSBhbmRlcmVuIEFyYmVpdGVybiBnZWhhbHRlbiB3aXJkLgpQbG9ldHpsaWNoIHNjaGVsbHQgZXMgenVyCk1pdHRhZ3NwYXVzZSB1bmQgZGllIHp3ZWkgZ2VoZW4gZWluZmFjaCBpaHIgQnJvdCBlc3Nlbi4gRGFyYXVmaGluIHN0dWVyenQgZGVyCnBpbmtlbG5kZSBhYi4gU28gYW0KMTB0ZW4gU3RvY2t3ZXJrIGFuZ2Vrb21tZW4gcnVmdCBlaW4gS2luZDogIkR1IFBhcGksIGtvZW5uZW4gU2Nod3VsZSBlaWdlbnRsaWNoCmZsaWVnZW4gPyIKIk5laW4sIHdpZXNvIGZyYWdzdCBEdSwgS2luZCA/ISIgIlRqYSwgaGllciBpc3QgZ2VyYWRlIGVpbiBNYW5uCnZvcmJlaWdlZmxvZ2VuLCBkZXIgc2VpbmVuClNjaHdhbnogaW4gZGVyIEhhbmQgaGF0dGUgdW5kIGltbWVyICdXbyBzZWlkIGlociBBZXJzY2hlLCB3byBzZWlkIGlociBBZXJzY2hlJwpnZXJ1ZmVuIGhhdC4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLcmV1endvcnRyYWV0c2VsIChEaWVkZXIsIDI0LiBKdWwgMTk5NywgMDA6NDg6MTMpOgpad2VpIHJlaWNobGljaCBiZXRydW5rZW5lIEZyZXVuZGUgbG9lc2VuIGVpbiBLcmV1endvcnRyYWV0c2VsOgoiU2FnIG1hbCwgd2llIGhlaXNzdCBlaWdlbnRsaWNoIGRhcyB3ZWlibGljaGUgR2VzY2hsZWNodHNvcmdhbj8iCiJXYWFncmVjaHQgb2RlciBzZW5rcmVjaHQ/IgoiV2FhZ3JlY2h0LiIKCi4uLgoKIkRhbm4gc2NocmVpYiBNdW5kISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1ZWdlbG4gKFF1YXNpbW9kbywgMjYuIEp1bCAxOTk3LCAyMzoxNToxNik6CgoKQWxzIGljaCB2b3JoaW5nIG5hY2ggZGVtIFdhc2NoZW4gbWVpbiBIZW1kIGdlYnVlZ2VsdCBoYWJlLCBkYSBoYWJlIGljaCB6dW0KZXJzdGVuIE1hbCB2ZXJzdGFuZGVuLCB3YXMgZWluIGZ1ZW5mZGltZW5zaW9uYWxlciBSYXVtIGlzdC4KClF1YXNpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCdWVnZWxuIChDYXVubywgMzAuIEp1bCAxOTk3LCAxMToyMToxNSk6Cn4jISBybj1TY2hsaXBzIHJ0PTg3MDAwNTY2OSByZz13aXR6ZQp+IyEgdGlkPTg2OTk1MTcxNgpOYWphLCBpY2gga2FubiBtaXIgc2Nob24gdm9yc3RlbGxlbiwgd2llIGVyIGRhcyBtZWludC4KU28gZWluIEJ1ZWdlbHRhZyBpc3QgbWFuY2htYWwgd2llIGVpbiBGb3J0Z2VzY2hyaXR0ZW5lbmt1cnMgaW4gVG9wb2xvZ2llIC4uLgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkljaCB3aWxsIEtVRUhFISEhIChQYXJ0IEkpIChDYXR3ZWF6bGUsIDMwLiBKdWwgMTk5NywgMTM6Mjk6MTgpOgogCiAgICAgICAgICAgICAtLT09Pj4gIFRIRSBDT01QTEVURSBHVUlERSBUTyBDT1dTICA8PD09LS0KICAgICAgICAgICAgICAgICAgYXMgeW91J3ZlIE5FVkVSIHNlZW4gdGhlbSBiZWZvcmUhCiAKICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fX19fX19fXwogICAgICAgICAgKF9fKSAgICAvICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICogT0ZGSUNJQUwgRURJVElPTiAqCiAgICAgICAgICAob28pICAgKCAgTm92ZW1iZXIgMTk4OSBWZXJzaW9uISAgKQogICAvLS0tLS0tLVwvICAtLSdcX19fX19fX19fX19fX19fX19fX19fX19fLyAgICAgICogV09STERXSURFIERJU1RSSUJVVElPTiAqCiAgLyB8ICAgICB8fAogKiAgfHwtLS0tfHwgICAgICAgICAgICAgRWRpdGVkIGJ5IEVyaWMgVy4gVGlsZW5pdXMKICAgIF5eICAgIF5eICAgICAgICAgICAgIFBsZWFzZSBzZW5kIHlvdXIgc3VibWlzc2lvbnMgdG86CiAgICAgIENvdyAgICAgICAgICAgICAgICBld3RpbGVuaUBwdWNjLlByaW5jZXRvbi5FRFUgLy8gZXd0aWxlbmlAcHVjYy5CSVRORVQKIAogLSAtIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gCi0KIAogICAgICAgICAgKF9fKSAgICAgICAgICAgICAoX18pICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKG9vKSAgICAgICAgICAgICAob28pICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgKG9vKQogICAvLS0tLS0tLVwvICAgICAgIC8tLS0tLS0tXC8gICAgICAgLy0tLS0tLS1cLyAgICAgICAvLS0tLS0tLVwvCiAgLyB8ICAgICB8fCAgICAgICAvIHwgICAgIHx8ICAgICAgIC8gfCAgICAgfHwgICAgICAgLyB8ICAgICB8fAogKiAgfHwtLS0tfHwgICAgICAqICB8fFctLS18fCAgICAgICogIHx8dy0tLXx8ICAgICAgKiAgfHxWLS0tfHwKICAgIF5eICAgIF5eICAgICAgICAgXl4gICAgXl4gICAgICAgICBeXiAgICBeXiAgICAgICAgIF5eICAgIF5eCiAgICAgIENvdyAgICAgICAgICAgQ293IGxhZGVuICAgICAgICBTYW1lIGNvdyAgICAgICBOYW5jeSBSZWFnYW4tdHlwZQogICAgICAgICAgICAgICAgICAgIHdpdGggbWlsayAgICAgYWZ0ZXIgbWlsa2luZyAgICAgY293IHdpdGggbWlsawogCiAgICAgICAgICAoX19fKSAgICAgICAgICAgICAoX19fKSAgICAqICAgICAgICAoX19fKSAgICAgICAgICAgICAoX19fKQogICAgICAgICAgKG8gbykgICAgICAgICAgICAgKG8gbykgICAgIFwgICAgICAgKG8gbykgICAgICAgICAgICAgKG8gbykKICAgLy0tLS0tLS1cIC8gICAgICAgLy0tLS0tLS1cIC8gICAgICAgXC0tLS0tLS1cIC8gICAgICAgLy0tLS0tLS1cIC8KICAvIHwgICAgIHx8TyAgICAgICAvIHwgICAgIHx8TyAgICAgICAgIHwgICAgIHx8TyAgICAgICAvIHwgfiM+LSt8TwogKiAgfHwsLS0tfHwgICAgICAgKiAgfHxAXC0tfHwgICAgICAgICAgfHwsLS0tfHwgICAgICAgKiAgfHwsLS0tLXwKICAgIF5eICAgIF5eICAgICAgICAgIF5eICAgIF5eICAgICAgICAgIF5eICAgIF5eICAgICAgICAgIF5eICAgICBeCiAgICAgIEJ1bGwgICAgICAgU2FtZSBidWxsIGFmdGVyICAgIFJvdGMgYnVsbCBhZnRlciAgICBSZWQtYmxvb2RlZCBBbWVyaWNhbgpCdWxsCiAgICAgICAgICAgICAgICAgc2VlaW5nIGFib3ZlIGNvdyAgIHNlZWluZyBvdGhlciBidWxsICAgc2hvb3RpbmcgdGhlIFJvdGMKYnVsbAogCiAKIAogICAgICAgICAgKF9fKSAgICAgICAgICAgICAoX18pICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKG9vKSAgICAgICAgICAgICAob28pICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgKG9vKQogICAvLS0tLS0tLVwvLSogICAgIC8tLS0tLS0tXC8gICAgICAgLy0tLS0tLS1cLyAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fgogIC8gfCAgICAgfHwgXCAgICAgKSopKFwvKiAvICAqICAgICAvIHwgICAgIHx8CiAqICB8fC0tLS18fCAgKiAgIFwgfHx8Lyl8LygpKCAgICB+fn5+fn5+fn5+fn5+fgogXC98KC8pKC9cLygsLC8gICBcKXwoL1wvfCkoL1wKICAgQ293IG11bmNoaW5nICAgR3Jhc3MgbXVuY2hpbmcgICBDb3cgaW4gd2F0ZXIgICAgICAgQ293IGluIHRyb3VibGUKICAgICBvbiBncmFzcyAgICAgICAgIG9uIGNvdwogCiAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAoX18pICAgICogICAgICAgIChfXykgKiAgICAgIChfXykKICAgICAgICAgICAob28pICAgICAgICAgICAgIChvbykgICAgIFwgICAgICAgKG9vKSB8ICAgICAgKG9vKQogICAvLS0tLS0tLS1cLyAgICAgIC8tb29vb29vLVwvICAgICAgIFwtLS0tLS0tXC8gIFwtLS0tLS0tXC8KICAqIG98ICAgICB8fCAgICAgICogb29vb29vb29vICAgICBvICBvfCAgICAgfHwgICAvICAgICB8fAogICAgIHx8LS0tLXx8ICAgICBvb29vb29vb29vb29vICAgICAgICB8fC0tLS18fD49PS8tLS0tLXx8CiAgb29vXl4gICAgXl4gICAgb29vb29vb29vb29vb29vb28gICAgIF5eICAgIF5eICAgICAgICAgXl4KICAgQ293IHRha2luZyAgICAgIENvdyBpbiBkZWVwICAgICAgICAgQ293IGdldHRpbmcgdGhlIHNoaXQKICAgICBhIHNoaXQgICAgICAgICAgICBzaGl0ICAgICAgICAgICAgIGtpY2tlZCBvdXQgb2YgaGVyCiAKIAogICAgICAgICAgKF9fKQogICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgVQogICAvLS0tLS0tLVwvICAgICAgICAgICAgICAgICAgICAvLS0tVgogIC8gfCAgICAgfHwgICAgICAgICAgICAgICAgICAgICogfC0tfCAgICAgICAgICAgICAgICAgICAgICAgLgogKiAgfHwtLS0tfHwKICAgIF5eICAgIF5eCiAKIENvdyBhdCAxIG1ldGVyLiAgICAgICAgIENvdyBhdCAxMDAgbWV0ZXJzLiAgICAgICAgQ293IGF0IDEwLDAwMCBtZXRlcnMuCiAKIAogCiAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAgKV9fKCAgICAgICAgICAgICAgICB2diAgICB2dgogICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgfHwtLS0tfHwgICoKICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgICotLS0tLS0tXC8gICAgICAgICAgICAgICAgIHx8ICAgICB8IC8KICAvIHwgICAgIHx8ICAgICAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgICAgL1wtLS0tLS0tLwogKiAgfHwtLS0tfHwgICAgICAgICAgICAgIC8gIHx8LS0tLXx8ICAgICAgICAgICAgICAgIChvbykKICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICB2diAgICB2diAgICAgICAgICAgICAgICAofn4pCiAKIEFtZXJpY2FuIENvdyAgICAgICAgICAgICAgUG9saXNoIENvdyAgICAgICAgICAgIEF1c3RyYWxpYW4gQ293CiAKIAogCiAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgX19fXyAob28pICAgICAgICAgICAgICAgIF8tLS1fKG9vKQogICAvLS0tLS0tLVwvICAgICAgICAgICAgICAgLy0gICAgLS1cLyAgICAgICAgICAgICAgIC8tICAgICAtXC8KICAvIHwgICAgIHx8ICAgICAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgIC98ICAgICAgfHwKICogIHx8LS0tLXx8ICAgICAgICAgICAgICAqICB8fF9fXy18fCAgICAgICAgICAgICAgKiAgfHxfX18tfHwKICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICBeXiAgICBeXiAgICAgICAgICAgICAgICAgXl4gICAgXl4KIAogRnJlc2htYW4gQ293IGF0ICAgICAgICAgIEZyZXNobWFuIENvdyAgICAgICAgICAgICBGcmVzaG1hbiBDb3cKIHN0YXJ0IG9mIHNjaG9vbCAgICAgQWZ0ZXIgdGhlICJGcmVzaG1hbiAxNSIgICAgQWZ0ZXIgdGhlICJGcmVzaG1hbiAyMCIKIAogCiAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgIChPTykgICAgICAgICAgICAgICAgICAgICAoQEApICAgICAgICAgICAgICAgICAgICAgKHh4KQogICAvLS0tLS0tLVwvICAgICAgICAgICAgICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgIC8tLS0tLS0tXC8KICAvIHwgICAgIHx8ICAgICAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgIC8gfCAgICAgfHwKICogIHx8LS0tLXx8ICAgICAgICAgICAgICAqICB8fC0tLS18fCAgICAgICAgICAgICAgKiAgfHwtLS0tfHwKICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICBeXiAgICBeXiAgICAgICAgICAgICAgICAgXl4gICAgXl4KIAogQ293IHdobyBkcmFuayBKb2x0ICAgICAgIENvdyB3aG8gYXRlICAgICAgICAgICAgICBDb3cgd2hvIHVzZWQgSm9sdCB0byB3YXNoCiAgICAgICAgICAgICAgICAgICAgICAgcHN5Y2hhZGVsaWMgbXVzaHJvb21zICAgICAgZG93biBwc3ljaGFkZWxpYyBtdXNocm9vbXMKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9cICAgICAgICAgICAgICAgICAgX18KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICBcICAgICAgICAgICAgICAgICB8fAogICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgIChfXykgIFwgIC8gICAgICAgICAgICAgICAoX3x8XykKICAgICAgICAgICAgICBTb29TICAgICAgICAgICAgICAgICAob28pICAgXC8gICAgICAgICAgICAgICAgIChvbykKICAgICAgIC8tLS0tLS1TXC9TICAgICAgICAgIC8tLS0tLS0tXC8gICAgL1MgICAgICAgICAgLy0tLS0tLS1cLwogICAgICAvIHwgICAgIHx8ICAgICAgICAgICAvIHwgICAgIHx8ICAgIC8gIFMgICAgICAgIC8gfCAgICAgfHwKICAgICAqICB8fC0tLS18fCAgICAgICAgICAqICB8fC0tLS18fF9fXy8gICAgUyAgICAgICogIHx8LS0tLXx8CiAgICAgICAgXl4gICAgXl4gICAgICAgICAgICAgXl4gICAgXl4gICAgICAgICAgICAgICAgICBeXiAgICBeXgogICAgIFRoaXMgY293IGJlbG9uZ2VkICAgICBCZW4gRnJhbmtsaW4gb3duZWQgICAgICAgQWJlIExpbmNvbG4ncwogICB0byBHZW9yZ2UgV2FzaGluZ3RvbiAgICAgICB0aGlzIGNvdyAgICAgICAgICAgICAgICAgICBjb3cKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKiAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbykKICAgICAgICAgICBcICAgICAgIChvbykgICAgICAgICAgICAgICAgICAgICAvLS0tLS0tXC8KICAgICAgICAgICAgXC0tLS0tLS1cLyAgICAgICAgICAgICAgICAgICAgIC98ICB8LyAgfAogICAgICAgICAgICAgfCA9PSQgfHwgICAgICAgICAgICAgICAgICAgICAvIHwgIFspIHx8CiAgICAgICAgICAgICB8fC0tLS18fCAgICAgICAgICAgICAgICAgICAgKiAgfHwtLS0tfHwKICAgICAgICAgICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICAgICAgICBeXiAgICBeXgogICAgICBPbGQgIk9uZSBBcm0iIGJlbG9uZ2VkICAgICAgICAgICBUaGlzIGNvdyB3YXMgZ2l2ZW4gdG8KICAgICAgICB0byBDZWFzYXIncyBQYWxhY2UgICAgICAgICAgIEh1Z2ggSGVmbmVyIGZvciBoaXMgQmlydGhkYXkKIAogCiAgICAgICAgICAgICAgICAgICAoX19fKSAgICAgICAgICAgICAgIChfXykgICAgICAoX18pCiAgICAgICAgICAgICAgICAgICAoIE8gKSAgICAgICAgICAgICAgIChvbykgICAgICAob28pCiAgICAgICAgICAgIC8tLS0tLS0tXCAvICAgICAgICAgICAgICAgICBcLy0tLS0tLS0tXC8KICAgICAgICAgICAvIHwgICAgIHx8ViAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8CiAgICAgICAgICAqICB8fC0tLS18fCAgICAgICAgICAgICAgICAgICAgfHwtLS0tLS18fAogICAgICAgICAgICAgXl4gICAgXl4gICAgICAgICAgICAgICAgICAgIF5eICAgICAgXl4KICAgVGhlIGN5Y2xvcHMgdGhhdCBKYXNvbiBhbmQgICAgICAgICBUaGlzIGNvdyBsaXZlZCB3aXRoCiB0aGUgQXJnb25hdXRzIG1ldCBoYWQgdGhpcyBjb3cgICAgICAgICAgRHIuIERvb2xpdHRsZQogCiAKICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgICBbIyNdICAgICAgICAgICAgICAgICAgIChAbykKICAgICAgIC8tLS0tLS0tXC8gICAgICAgICAgICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgLy0tLS0tLS0gIChfXykKICAgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAvIHwgICAgIHx8ICAgICAgICAgICAgICAvIHwgICAgIHx8IChvbykKICAgICAqICB8fC0tLS18fCAgICAgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAgICAgICogIHx8LS0tLXwtLS1cLwogICAgICAgIF5eICAgIF5eICAgICAgICAgICAgICAgXl4gICAgXl4gICAgICAgICAgICAgICAgXl4gICAgXgogIFRoaXMgY293IGJlbG9uZ2VkICAgICAgVGhpcyBjb3cgbGl2ZWQgd2l0aCAgICAgIFRoaXMgY293IGJlbG9uZ2VkIHRvCiAgIHRvIEZsYXNoIEdvcmRvbiAgICAgICB0aGUgTGl0dGxlIFJhc2NhbHMgICAgICAgdGhlIEhlYWRsZXNzIEhvcnNlbWFuCiAKIAogICAgICAgICAgICAgICAgICAgICAoX19fXykgICAgICAgICAgICAgKF9fX18pICAgICAgICAgICAgICAgICAgICAgICAgICAKKF9fX18pCiAgICAgICAgICAgICAgICAgICAgIChvbyAgKSAgICAgICAgICAgICAgICAobyAgbykgICAgICAgICAgICAgICAgICAgICAgICAoIE8KTykKICAgICAgICAgIC8tLS0tLS0tLS0tLVwgIC8gICAgICAgICAgLy0tLS0tXCAgICAvLS0tLSAgICAgICAgICAvLS0tLS0tLS0tLS1cIAovCiAgICAgICAgIC8gfHwgICAgICAgfCAgXC8gICAgICAgICAgLyB8ICAgfCAgXC8gICB8ICAgICAgICAgICAvIHx8ICAgICAgIHwgIFwvCiAgICAgICAgLyAgfHwgICAgICAgfHx8fCAgICAgICAgICAgXCB8ICB8ICAgICAgfCB8IHwgICAgICAgIC8gIHx8ICAgICAgIHx8fHwKICAgICAgICogICB8fHx8LS0tLS18fHx8ICAgICAgICAgICAgKnwgfCB8LS0tLS18IHwgfCAgICAgICAqICAgfHx8fC0tLS0tfHx8fAogICAgICAgICAgIC9cL1wgICAgIC9cL1wgICAgICAgICAgICAgL1wgL1wgICAgIC9cIC9cICAgICAgICAgICBeXl5eICAgICBeXl5eCiAgICAgIFRoaXMgY293IGJlbG9uZ2VkICAgICAgICAgVGhpcyB3YXMgU2FsdmF0b3JlICAgICAgTm8gb25lIHdhcyBzdXJlCndoZXRoZXIKICAgICAgIHRvIFBhYmxvIFBpY2Fzc28gICAgICAgIERhbGkncyBmYXZvcml0ZSBjb3cgICAgTS5DLiBFc2NoZXIncyBjb3cgaGFkCmZvdXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVncyBvciBlaWdodAogCiAKICAgICAgICAgICAgICAgIE9fX08gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxffF8vCiAgICAgICAgICAgICAgICAob28pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICAgICAgIC8tLS0tLS0tXC8gICAgICAgICAgICAgICAgICAgICAgIC8tLS0tLS0tXC8KICAgICAgICAvIHwgICAgIHx8ICAgICAgICAgICAgICAgICAgICAgICAvIHwgICAgIHx8CiAgICAgICAqICB8fC0tLS18fCAgICAgICAgICAgICAgICAgICAgICAqICB8fC0tLS18fAogICAgICAgICAgXl4gICAgXl4gICAgICAgICAgICAgICAgICAgICAgICAgXl4gICAgXl4KICAgICBDb3cgYXQgRGlzbmV5bGFuZCAgICAgICAgIENvdyB2aXNpdGluZyB0aGUgU3RhdHVlIG9mIExpYmVydHkKIAogCiAKICAgICAgICAgICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICAgICAgICAgXl4gICAgICAob28pICAgICAgICAgICAgICAgICAgICAgICAgKC0tKQogICAgICAgICAgICAgXl5eXiAvLS0tLS0tLVwvICAgICAgICAgICAgICAgICAgICAgICAgLy1cLy1cCiAgICAgICAgICBeXl5eXiAgLyB8ICAgICB8fCAgICAgICAgICAgICAgICAgICAgICAgIC98ICAgIHxcCiAgICAgICAgXl5eXl4gICAqICB8fC0tLS18fCAgICAgICAgICAgICAgICAgICAgICAgXiB8ICAgIHwgXgogICAgIF5eXl5eXl5eICA9PT09Xl49PT09Xl49PT09ICAgICAgICAgICAgICAgICAgICAgfCAgICB8CiBeXl5eXl5eXl5eXl5eLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLS0tLVwKIF5eXl5eXl5eXl5eXl5eXl5eXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICBcIFwKIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4gICAgICAgICAgICAgICBeICAgICAgKiBeCiAgICAgIENvdyBIYW5naW5nIFRlbiBhdCBNYWxpYnUgICAgICAgICAgIENvdyBzdW5uaW5nIGF0IEZvcnQgTGF1ZGVyZGFsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdoYXQgYSBib2QsIGh1aCBndXlzPykKIAogCiAgICAgICAgICAgICAgICApXCAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgICAgLyAgXCAgICAgICAgICAgICAgKG9vKQogICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgICAgIENvdyBzd2ltbWluZyBhdCBBbWl0eXZpbGxlCiAoV2hlcmUgSmF3cyB3YXMgZmlsbWVkLCBmb3IgdGhvc2UgbGVzcyBlZHVjYXRlZCkKIAogCiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChERCkKICAgICAgICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8tLS0tLS0tXC8KICAgICAgICAgICB8XCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fF9cXy8KICAgICAgICAgXCB8IFwgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICB8fC0tLS18CiAgICAgICAgIFxcfHwgXChvbykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl4gICAgXgogICAgICAgICAgXHx8XCBcXC8gICAgICAgICAgICAgICAgICAgICAgICAgQ293IGNodWdnaW5nIGJyZXdzIGFuZCBzdGFyaW5nIGF0CiAgICAgICAgICAgXl4gXHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bmJhdGhlcnMgYXQgRm9ydCBMYXVkZXJkYWxlCiAgICAgICAgICAgIFxcIHx8CiAgICAgICAgICAgICBcXHx8CiAgICAgICAgICAgICAgXHx8CiAgICAgICAgICAgICAgIF5eICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAvIC8gLyAvIC8gLyAvIC8gLyAvCiAgICAgICAgICAgICAgICBcXF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLwogICAgICAgICAgICAgICAgIFxfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAvIC8gLyAvIF9fX19fX18gICAvIC8KICBDb3cgc2tpaW5nIGEgQmxhY2sgRGlhbW9uZCBhdCBBc3BlbiAgICAgICAgICAgIC8gLyAvICAgIC8gICB8ICAgXCAgLyAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIC8gLyAgICAoX18pfCAgICAgIC8gLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAvIC8gICAgKG9vKXwgICAgICAvIC8KICAgICggQEBAICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy0tLS0tLS1cLyB8CiAgICAgKCBAQCApICAgICAgICAgICAgKC0tLS0tLS0tLS0tLSkgICAgICAgICAgICAgLyB8ICAgICB8fF5ffAogICAgICAgIEBAICAoX18pICAgICAgICggICo+Q09VR0g8KiApICAgICAgICAgICAgKiAgfHwtLS0tfAogICAgICAgICBAQCAob28pIC4gLiAuICggICo+Q09VR0g8KiApICAgICAgICAgICAgICAgXl4gICAgXgogICAgICAvLS1VVS0tXC8gICAgICAgIChfX19fX19fX19fX18pCiAgICAgLyB8ICAgIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ293IHNoZWx0ZXJpbmcgZnJvbSBFbmdsaXNoCldlYXRoZXIKICAgICogIHx8LS0tfHwKIAogICAgKE5ldykgSmVyc2V5IENvdwogCiAKICAgICAgICAgICAgICAgICAgICAgICAgTyBPICAgICAgICAgICAgICAgICBPIE8KICAgICAgICAgICAgICAgICAgICAgICAgIFwgXCAgICAgICAgICAgICAgIC8gLwogICAgICAgICAgICAgICAgICAgICAgICAgIFwgXCAgICAgICAgICAoX18pIC8KICAgICAgICAgICAoX18pICAgICAgICAgICAgXCBcICAgICAgICAgKHh4KS8KICAgICAgICAgICAoREQpICAgICAgICAgICAgIFwgKy0tLS0tLS0tK1wvLwogICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgIFx8ICAgICAgICB8IC8KICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgICAgKy0tLS0tLS0tKwogICogIHx8LS0tLXx8CiAgICAgXl4gICAgXl4KIENvdyBmYW50YXNpemluZyBhYm91dCAiUmlkaW5nIHRoZSBNZWNoYW5pY2FsIEJ1bGwiCiAgICAgICAgICAgICBhdCBHaWxsaWVzIGluIFRleGFzCiAKIAogICAgICAgICAgbyAgbwogICAgICAgICAgfF9ffCAgICAgICAgICAgICAoX18pICAgICAgICAgICAgIChfXykKICAgICAgICAgIChvbykgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgID0ob28pPSAgICAgICAgIG9vCiAgIC8tLS0tLS0tXC8gICAgICAgLy0tLS0tLS12diAgICAgICAvLS0tLS0tLVwvCiAgLyB8ICAgICB8fCAgICAgICAvIHwgICAgIHx8ICAgICAgIC8gfCAgICAgfHwKICogIHx8LS0tLXx8ICAgICAgKiAgfHwtLS0tfHwgICAgICAqICB8fC0tLS18fAogICAgfn4gICAgfn4gICAgICAgICB+fiAgICB+fiAgICAgICAgIH5+ICAgIH5+CiAgYmlsbCBiaXhieSAgICAgICAgYmVsYSBsdWdvc2kgICAgICBib3JpcyBrYXJsb2ZmICBjbGF1ZGUgcmFpbnMKICBtYWxlIHJlbGF0aXZlICAgICBjb3cgICAgICAgICAgICAgIGNvdyAgICAgICAgICAgIGNvdwogIGNvdwogICAgICAgICAgICAgICAgICAgICAgICB4CiAgICAgICAgICAgICAgICAgICAgeHh4eHx4eHh4CiAgICAgICAgICAgICAgICAgeHh4eHh4eHx4eHh4eHh4CiAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgIChfXykgLy8gICAgICAgICAgICAgICAgICAgICAgICAoX18pICAgKF9fKQogICAgICAgICAgICAgICAgIChvbykvLyAgICAgICAgICAgICAgICAgICAgICAgICAob28pPT09KG9vKQogICAgICAgICAgLy0tLS0tLS1cLy8gICAgICAgICAgICAgICAgICAgIC8tLS0tLS0tXC8gICAgIFwvLS0tLS0tLVwKICAgICAgICAgLyB8ICAgICB8Ly8gICAgICAgICAgICAgICAgICAgIC8gfCAgICAgfHwgICAgICAgfHwgICAgIHwgXAogICAgICAgICogIHx8LS0tLXwgICAgICAgICAgICAgICAgICAgICAqICB8fC0tLS18fCAgICAgICB8fC0tLS18fCAgKgogICAgICAgICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICAgICAgICBeXiAgICBeXiAgICAgICBeXiAgICBeXgogICAgICBKdWxpZSBBbmRyZXdzIENvdyAgICAgICAgICAgICAgICAgICAgICAgICBTaWFtZXNlIGNvd3MKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyAgICAgICAgbyAgICAgICAgICAgICAoX18pICAgIF4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgIC8gICAgICAgICAgICAgIChvbykgICAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgIC8gICAgICAgICAgIF9fX19fXC9fX18vCiAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgXF9fLyAgICAgICAgICAgLyAgL1wgLyAvCiAgICAgICAgICAgICAgKG9vKSAgICAgICBfX19fX19fKG9vKSAgICAgICAgICBeICAvICAqIC8KICAgICAvLS0tLS0tLS0tXC8gICAgICAgL3wgIF9fXyAgXC8gICAgICAgICAgICAgLyBfX18vCiAgICAvIHwgeD1hKGIpfHwgICAgICAgLyB8IHsgICB9fHwgICAgICAgICAqLS0tLS9cCiAgICogIHx8LS0tLS0tfHwgICAgICAqICB8fHtfX199fHwgICAgICAgICAgICAgLyAgXAogICAgICBeXiAgICAgIF5eICAgICAgICAgfHwtLS0tLXx8ICAgICAgICAgICAgLyAgIC8KICAgICAgICAgICAgICAgICAgICAgICAgIF5eICAgICBeXiAgICAgICAgICAgXiAgICBeCiAKICAgICBNYXRoZW1hdGljYWwgICAgICAgIFRlbGV2aXNpb24gICAgICBUaGlzIGNvdyBkb2VzIERpc2NvCiAgICAgICAgIENvdyAgICAgICAgICAgICAgICAgQ293ICAgICAgICAoVGhhdCdzIHdoYXQgY29tZXMgb2YKICAgIChkZXZlbG9wZXIgb2YgICAgICAgIChDb3ctdGhvZGUgICAgICBzbm9ydGluZyBjb3ctY2FpbmUpCiAgICAgIGNvdy1jdWx1cykgICAgICAgICAgUmF5IFR1YmUpCiAKICAgICAgICAgICAgIG8KICAgICAgICAgICAgIHwgWy0tLV0KICAgICAgICAgICAgIHwgICB8CiAgICAgICAgICAgICB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS09PT09PT09PXwKICAgICAgICAvLS0tLXwtLS18XCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqKioqIHw9PT09PT09fAogICAgICAgL19fXy9fX19cX19fXCAgICAgICAgICAgICAgICAgICAgICAgICBvICB8ICoqKiogfD09PT09PT18CiAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF9fX3wgIHw9PT09PT09PT09PT09PXwKICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgX19fICB7KF9fKX0gfD09PT09PT09PT09PT09fAogICAgICAgXC0tLS0tLS0tLS0tLyAgICAgICAgICAgICBbXSggICApPXsob28pfSB8PT09PT09PT09PT09PT18CiAgICAgICAgXCAgXCAgIC8gIC8gICAgICAgICAgICAgLy0tLT09PS0teyBcLyB9IHwKICAgICAtLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgIC8gfCBOQVNBICB8PT09PSAgfAogICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAqICB8fC0tLS0tLXx8LS0tLS1eCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgIHx8ICAgICAgfCAgICAgIHwKICAgICAgIC8gICAgLyAgXCAgIFwgICAgICAgICAgICAgXl4gICAgICBeICAgICAgfAogICAgICAvICAgICAtLS0tICAgIFwKICAgICAgIF5eICAgICAgICAgXl4gICAgICAgICAgIFRoaXMgY293IGp1bXBlZCBvdmVyIHRoZSBNb29uCiAKIAogICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgICAgIChbXVtdKSAgICAgICAgICAgICJJIGhhdmUgdGhpcyByZWN1cnJpbmcgZHJlYW0KICAgICAgICAgICAgICAgIF9fXC9fLS1VICAgICAgICAgICAgICBhYm91dCBnb2xkZW4gYXJjaGVzLiIuLiAgKF9fKQogICAgICAgICAgICAgICAvXCAgICBcX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICA6Li4oIiIpCiAgICAgICAgICAgICAgL1xcXCAgLyAgLyAgICAgICAgICAgICAgICAgICAgICAgICAvL1wgIF9fX19cX19fX19cLyAvLwogICAgICAgICAgICAgLy0tLS1eL19fL1wgL1wgICAgICAgICAgICAgICAgICAgICAvLyBcXC8gICAgIFxfX18gLyAvLwogICAgICAgICAgICAgICAgIFxcXF9fX18vLS1cLS0gICAgICAgICAgICAgICAgIC8vIC8tL19fX19fX19fX18vIC8vCiAgICAgICAgICAgICAgICAgIC89PT09PT0gICBcLyAgICAgICAgICAgID09PT09PT0vPT09PT09PT09PT09PT0vLwogICAgICAgICAgICAgICAqXy8gLyAgICBcICAgL14gICAgICAgICAgICAgIC8vICAvICAgICAgICAgICAgICBcXAogICAgICAgICAgICAgICAgICAvICAgICAgXCBeICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgXFwKIAogICAgICAgICAgICAgICAgICAgICAgUHN5Y293bG9naXN0IGFuZCBwYXRpZW50CiAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19fKQogICAgICAgICAgIFxeXl5eXl5eXlwgICAoX18pICAgICAgICAgICAgICAgICAgICAobyBvKQogICAgICAgICAgICBcXl5eXl5eXl5cXCAob28pICAgICAgICAgICAgICAgICAgICAgXCAvCiAgICAgICAgICotLS0tLVxfX19fX19fXC9cLyAgICAgICAgICAgICAgICAgICAgXC0tTy0tLwogICAgICAgXl9fX19fX18vICAgLS0tICBcX19fX19fXiAgICAgICAgICAgICAgLy8gLS0tLS1cCiAgICAgIF4tLS0tLS0tLVwgICBcUy8gIC9cX19fX19eICAgICAgICAgICAgICBcXC9fXnt9IC89PVY9PT1bXQogICAgICAgICAgICAgICAgXF9fX19fXy8gICAgICAgICAgICAgICAgICAgICAgICBcX19fX19cXC8vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX18vCiAgICBJdCdzIGEgYmlyZC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1xcICAgICAgICAgVGhlIEJvc3MKICAgICBJdCdzIGEgcGxhbmUuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBcXCAgIChCcnVjZSBIb2xzdGllbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgLy8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eICAgIF5eCiAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09CiAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICAgICAgICAgICBIICAgICAgICAgICAgICAgIEgKICB8ICAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tfCAgICAgICAgICAgIEggICAgIChfXykgICAgICAgSAogIHwgICAgICAgICAgICAgfCAgIF9fX19fX19fICB8ICAgICAgICAgICAgSCAgICAgKG9vKSAgICAgICBIICAgICAgIF9fCiAgfCAgIENPV05UWSAgICB8ICB8ICh8X198KSB8IHwgICAgICAgICAgICBIICAgIC8gXC8gXCAgICAgIEggICAgIC8gICAgXAogIHwgICAgSkFJTCAgICAgfCAgfCAgfG9vfCAgfCB8ICAgICAgICAgICAgSCAgIHwgfCAgfCB8ICAgICBIICAgIHwgU1RPUCB8CiAgfCAgICAgICAgICAgICB8ICB8X198XC98X198IHwgICAgICAgICAgICBIICAgRD09PWI9LS0tLS0gIEggICAgIFwgX18gLwogIHwgICAgICAgICAgICAgfCBvICAgICAgICAgICB8ICAgICAgICAgICAgSF5eXl5eXl5eXl5eXl5eXl5IICAgICAgIHx8CiAgfCAgICAgICAgICAgICB8IF4gICAgICAgICAgIHwgICAgICAgICAgICBIICAgICAgICAgICAgICAgIEggICAgICAgfHwKICB8ICAgICAgICAgICAgIHwgXSAgICAgICAgICAgfCAgICAgICAgICAgIEggICAgICAgICAgICAgICAgSCAgICAgICB8fAogIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgSCAgICAgICAgICAgICAgICBIICAgICAgIHx8CiAgfF9fX19fX19fX19fX198X19fX19fX19fX19fX3wgICAgICAgICAgICBIICAgICAgICAgICAgICAgIEggICAgICAgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXiAgICAgXl5eXl5eXgogIFNvbWUgY293cyBnZXQgaW4gdHJvdWJsZS4uLiAgICAgICAgICAgICAgICAgQ2F0dGxlIEd1YXJkCiAKIAogICAgICAoICAoICAgICkKICAgICggKCAgICAgKSAgICkKICAgICggKCAgICAgICAgICkKICAgKCAgICAgICAgICAgLyApCiAgKCAoIFxcICAgICAgICkKICAgICAgKCB8ICAvLyApCiAgICAgICAgfCAgIHwgICAgKF9fKQogICAgICAgIHwgICB8ICAgIChvbykgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgIHwgICB8IC0tLS1cLyAgICAgICAgICAgICAgX19fX19fKG9vKV9fX19fCiAgICAgICAgfCAgIHwgICAgfHwgICAgICAgICAgICAgICggXylfX19fX19fKF9fKSApCiAgICAgICoqfCAgIHwgLS0tfHwgICAgICAgICAgICAgICAgXCBfX19fX19fX19fLwogICAgIGBgJy0tLS0tLS0tLV5eCiAgICAgICAgIENvdyBIaWRlICAgICAgICAgICAgICAgICAgICAgQ293IFBpZQogCiAKICAgICAgICAgICAgICAgICAgICBcICB8ICAvICAgICAgICAgX19fX19fX19fX18KICAgICBfX19fX19fX19fX18gIFwgXF8jIC8gICAgICAgICB8ICBfX18gICAgICB8ICAgICAgIF9fX19fX19fXwogICAgfCAgICAgICAgICAgIHwgIFwgICMvICAgICAgICAgIHwgfCAgIHwgICAgIHwgICAgICB8ID0gPSA9ID0gfAogICAgfCB8ICAgfCAgIHwgIHwgICBcXCMgICAgICAgICAgIHwgfGB2J3wgICAgIHwgICAgICB8ICAgICAgICAgfAogICAgfCAgICAgICAgICAgIHwgICAgXCMgIC8vICAgICAgIHwgIC0tLSBfX18gIHwgICAgICB8IHwgIHx8IHwgfAogICAgfCB8ICAgfCAgIHwgIHwgICAgICNfLy8gICAgICAgIHwgICAgIHwgICB8IHwgICAgICB8ICAgICAgICAgfAogICAgfCAgICAgICAgICAgIHwgIFxcICNfL19fX19fX18gIHwgICAgIHwgICB8IHwgICAgICB8IHwgIHx8IHwgfAogICAgfCB8ICAgfCAgIHwgIHwgICBcXCMgL19fX19fLyBcIHwgICAgICAtLS0gIHwgICAgICB8ICAgICAgICAgfAogICAgfCAgICAgICAgICAgIHwgICAgXCMgfCsgKyt8ICB8IHwgIHxeXl5eXl58IHwgICAgICB8IHwgIHx8IHwgfAogICAgfCAgICAgICAgICAgIHwgICAgXCMgfCsgKyt8ICB8IHwgIHxeXl5eXl58IHwgICAgICB8IHwgIHx8IHwgfAogXl5efCAgICAoXl5eXl4pIHxeXl5eXiNefCBIICB8XyB8XnwgIHwgfHx8fCB8IHxeXl5eXl58ICAgICAgICAgfAogICAgfCAgICAoIHx8fCApIHwgICAgICMgXl5eXl5eICAgIHwgIHwgfHx8fCB8IHwgICAgICB8IHx8fHx8fHwgfAogICAgXl5eXl5eXl5eXl5eXl9fX19fX19fLyAgL19fX19fIHwgIHwgfHx8fCB8IHwgICAgICB8IHx8fHx8fHwgfAogICAgICAgICBgdictICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl4gICAgICB8IHx8fHx8fHwgfAogICAgICAgICAgfHwgfGAuICAgICAgKF9fKSAgICAoX18pICAgICAgICAgICAgICAgICAgICAgICAgICAoICkKICAgICAgICAgICAgICAgICAgICAgIChvbykgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgLy0tLVYKICAgICAgICAgICAgICAgLy0tLS0tLS1cLyAgICAgIFwvIC0tLS0tLS0tXCAgICAgICAgICAgICAqIHwgIHwKICAgICAgICAgICAgICAvIHwgICAgIHx8ICAgICAgICB8fF9fX19fX198IFwKICAgICAgICAgICAgICogIHx8Vy0tLXx8ICAgICAgICB8fCAgICAgIHx8ICAqCiAgICAgICAgICAgICAgICBeXiAgICBeXiAgICAgICAgXl4gICAgICBeXgogCiAgICAgICAgICAgICAgICAgICAgICAgICAiQ293IFRvd24iCiAKIAogICAgICAgICAgICAgICBcIChfXykgICAgICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgICAgXFwob28pICAgICAgICAgICAgICAgICAgICAgICAoXC8pCiAgICAgICAgICAvLS0tLS1cXFwvICAgICAgICAgICAgICAgICAvLS0tLS0tLVwvCiAgICAgICAgIC8gfCAgICAoIyMpICAgICAgICAgICAgICAgIC8gfCAgICAgfHwKICAgICAgICAqICB8fC0tLS18fCIgICAgICAgICAgICAgICAqICB8fC0tLS18fAogICAgICAgICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICAgIH5+ICAgIH5+CiAgICAgVGhpcyBjb3cgcGxheXMgYmFncGlwZXMuICAgICAgQ293IGZyb20gQmVpamluZwogCiAKICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKFwvKSAgICAgICAgICAgICAgICAgICAgICgkJCkgICAgICAgICAgICAgICAgICAgICAoKiopCiAgIC8tLS0tLS0tXC8gICAgICAgICAgICAgICAvLS0tLS0tLVwvICAgICAgICAgICAgICAgLy0tLS0tLS1cLwogIC8gfCA2NjYgfHwgICAgICAgICAgICAgICAvIHw9PT09PXx8ICAgICAgICAgICAgICAgLyB8ICAgICB8fAogKiAgfHwtLS0tfHwgICAgICAgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAgICAgICAqICB8fC0tLS18fAogICAgXl4gICAgXl4gICAgICAgICAgICAgICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICBeXiAgICBeXgogCiBTYXRhbmljIGNvdyAgICAgICAgICAgVGhpcyBjb3cgaXMgYSBZdXBwaWUgICAgICAgICBDb3cgaW4gbG92ZQogCiAKICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgIC8tJycnJyctXC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy0tLS0tLS0tLS0tLS0tLS0tLS1cLwogIC8gfCcnJycnfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyB8ICAgICAgICAgICAgICAgICB8fAogKiAgfHwnJycnfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAqICB8fC0tLS0tLS0tLS0tLS0tLS18fAogICAgXl4gICAgXl4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXiAgICAgICAgICAgICAgICBeXgogIENvdyBpbiBBcmd5bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmV0Y2ggQ293CiAgICAgICAgICAgICAgICAgICAgICAgICAgKgogICAgICAgICAgICAgICAgICAgICAgICoqICAgKioKICAgICAgICAgICAgICAgICAgKiAqKiAgKiAqICogICoqCiAgICAgICAgICAgICAgICAgKiAgIC8gIC8gICBcICogICoKICAgICAgICAgICAgICBcICBcIC8gIFwgICAgICAgIC8gLyAgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICAgKiAgLyAgLyBcICBcICAoX18pICBcIFwgICAgICAgICAgICAgICAgLy0tLS0tLS0tKDAwKQogICAgICAgICAgICAgLyAgICAgICAgICAgKDAwKSAgLyAvICAgICAgICAgICAgICAgLyB8ICAgICAgfCggICkKICAgICAgICAgICAgIFwgICAgLy0tLS0tLS1cLyAgIFwgXCAgICAgICAgICAgICAgKiAgfHwtLS0tIHx8KCkKICAgICAgICAgICAgIC8gICAvIHwgICAgIHx8ICAgIC8gLyAgICAgICAgICAgICAgICAgfHwgICAgIHx8CiAgICAgICAgICAgXCBcICAqICB8fC0tLS18fCAgICBcIFwgICAgICAgICAgICAgICAgIF5eICAgICBeXgogICAgICAgICAgLyAgLyAgICAgXl4gICAgXl4gICAgLyAvICAgICAgICAgICAgQ293IENoZXdpbmcgTWFyYmxlcwogICAgICAgICAgICAgICAgICBDb3cgaW4gSGVhdAogCiAKICAgICAgICAgICAgKF9fXykKICAgICAgICAgICAgKG8gbykKICAgICAgLy0tLS0tLVwgLyAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgIC8gICAgX19fX08gICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICB8ICAgLyAvLS0tLVwtLS0tXC8gICAgICAgICAgICAgICAgICAgLy0tLS0tLS1cLwogICAgL1xvbz09PXwgIC8gICAgfHwgICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fAogICB8IHx8ICAgKnx8Xi0tLS0tfHwgICAgICAgICAgICAgICAgICAqICBPTy0tLS1PTwogICAqICBeXiAgIF5eICAgICAgXl4KICAgICBDb3d0IGluIHRoZSBBY3QgICAgICAgICAgICAgICAgICAgbG93IHJpZGVyIGNvdwogCiAKICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgIFxfX1wgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgIChvbykgICAgICAgICAgICAgbyAgIChvbykgICAgICAgICAgICAgICAgIChvbykKICAgLy0tLS0tLS1cLyAgICAgICAgICAgX19fX1xfX19cLyAgICAgICAgICAqKy0tLS0tLS1cLwogIC8gfCAgICAgfHwgICAgICAgICAgIC8gfCAgICAgfHwgICAgICAgICAgIHx8X19fX19ffHwKICogIHx8LS0tLXx8ICAgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAgICAgIHx8LS0tLXx8CiAgICBPTyAgICBPTyAgICAgICAgICAgICBPTyAgICBPTyAgICAgICAgICAgICBPTyAgICBPTwogRGV0cm9pdCBjb3cgICAgICAgICAgTXVzdGFuZyBjb3cgICAgICAgICAgICBwaWNrdXAgY293CiAKIAogICAgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICBcX3x8X34KICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgKCp8fCopCiAgIC8tLS0tLS0tLS0tLS0tLS1cLyAgICAgICAgICAgLy0tLS1cLyAgICAgICAgLy0tLS0tLS1cfHwvCiAgLyB8ICAgICAgICAgICAgIHx8ICAgICAgICAgICAvICAgIHx8ICAgICAgICAvIHwgICAgIHx8CiAqICB8fC0tLS0tLS0tLS0tLXx8ICAgICAgICAqLXx8LS0tLXx8ICAgICAgICogIHx8LS0tLXx8CiAgICBPTyAgICAgICAgICAgIE9PICAgICAgICAgIE9PICAgIE9PICAgICAgICAgIE9PICAgIH17CiAgICAgICBsaS1tb28tY293ICAgICAgICAgIGZhc3RiYWNrIGNvdyAgICAgIHRlZW5hZ2VyJ3MgY293CiAKIAogICAgICAgICAgX19fXwogICAgICAgICAoX19fXykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAueHh4eC4KICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAnKG9vKWAKICAgICAgICAgIChvbykgICAgICAgICAgICAvLS0tLS0nLVwvIGAKICAgLy0tLS0tLS1cLyAgICAgICAgICAgIC8gfCAgICB8PT09PT09PT09PT09PgogIC8gfCAgICAgfHwgICAgICAgICAgICAqICB8fC0tLS18ICh+KQogKiAgfHwtLS0tfHwgICAgICAgICAgICAgICB+fiAgICB+CiAgICB+fiAgICB+fiAgICAgICAgICAgICBNb28tYW1tYXIgQ293ZGFmaQogICAgaG9seSBjb3cgICAgICAgICAgICBhcm1lZCBhbmQgZGFuZ2Vyb3VzCiAKIAogICAgICAgICAgKF9fXykgICAgICAgICAgICAgKF9fXykKICAgICAgICAgIChvIG8pICAgICAgICAgICAgIChvIG8pCiAgIC8tLS0tLS0tXCAvICAgICAgIC8tLS0tLS0tXCAvCiAgLyB8ICAgICB8fE8gICAgICAgLyB8ICBPfiB8fE8KICogIHx8LC0tLXx8ICAgICAgICogIHx8LC0tLXx8CiAgICBeXiAgICBeXiAgICAgICAgICBeXiAgICBeXgogICAgIEEgQnVsbCAgICAgICBBLWJvbWItaW4tYS1idWxsICAgICBOby1idWxsCiAKIAogICAgICAgICAgICAoLS0tKQogICAgICAgICAgICAoICAgKQogICAgICAgICAgIC8tLS0tLVwgICAgICAgICAgICAgICAgICAgICAgICAgIChfX18pCiAgICAgICAgICAgfCAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgKG8gbykKICAgICAgICAgICB8ICB8ICB8ICAgICAgICAgICAgICAgICAgICgtLS0tLSkgXCAvCiAgICAgICAgICAgfCAgfCAgfCAgICAgICAgICAgICAgICAgIC8gIC8gXCAgICBPCiAgICAgICAgICAgfCAgKiAgfCAgICAgICAgICAgICAgICAgKiAgfCBPIHwKICAgICAgICAgICBeXiAgIF5eICAgICAgICAgICAgICAgICAgICAtLS0tLQogICAgICAgICAgIENvd2FyZCAgICAgICAgICAgICAgICAgIFBob25lIEJ1bGwKIAogCiAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fXwogICAgICAgICAgfV9feyAgICAvIFNlbmQgWU9VUiBjb3cgcGljdHVyZXMgdG8gXAogICAgICAgICAgKDAwKSAgICggZXd0aWxlbmlAcHVjYy5QcmluY2V0b24uRURVICkKICAgOioqKioqKiBcLyA9PT0nXF9fX19fX19fX19fX19fX19fX19fX19fX19fXy8nCiAgOiAjICAgICAjIwogICAgIyMqKioqIyMKICAgICIiICAgICIiCiAKIAogIHwgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgfCAgICAgICAgICAgKgogIHwgICAgfCAgICAgICAgICAgIChfXykgICAgICAgICAgICAgIHwgICAgfCAgICAgICAgICAgIFwgICAgICAgKF9fKQogIHwgICAgfCAgICAgICAgICAgIChvbykgICAgICAgICAgICAgIHwgICAgfCAgICAgICAgICAgICBcICAgICAgKG9vKQogIHwgICAgfCAgICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgIHwgICAgfCAgICAgICAgICAtLS0tLS0tLS0tLVwvLS0KICB8ICAgIHwgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgICB8ICAgIHwgICAgICAgICAgLS0tLXwgICAgICB8LS0tCiAgfCAgICB8ICAgKiAgfHwtLS0tfHwgICAgICAgICAgICAgICAgfCAgICB8ICAgICAgICAgICAgICAtLS0tLS0tLQogIHwgICAgXF9fX19fX15eX19fX15eX19fICAgICAgICAgICAgIHwgICAgXF9fX19fX19fX19fX19fX19fCiAgfCAgICAgX19fX19fX19fX19fX19fX18gICAgICAgICAgICAgfCAgICAgX19fX19fX19fX19fX19fX18KICB8ICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIC8KICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKICB8ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwKIC8gICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICBcCiAKIENvdyBwZXJjaGVkIG9uIGEgdHJlZS4gICAgICAgICAgICAgIENvdyBhdHRlbXB0aW5nIHRvIGZseSBvZmYgdHJlZS4KIAogCiAgfCAgICB8CiAgfCAgICB8CiAgfCAgICB8CiAgfCAgICB8CiAgfCAgICB8CiAgfCAgICBcX19fX19fX19fX19fX19fX18KICB8ICAgICBfX19fX19fX19fX19fX19fXwogIHwgICAgLwogIHwgICAgfAogIHwgICAgfAogIHwgICAgfAogIHwgICAgfAogIHwgICAgfAogIHwgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogIHwgICAgfCAgICAgICAgICAgICAgICAgICAgICAqLS0tLS0tLS0tKC4uKQogLyAgICAgIFwgICAgICAgICAgICAgICAgICAgICAgICBeXi0tLS1eXlwvCiAKIENvdyB0aGF0IGhhcyBmYWlsZWQgbWlzZXJhYmx5IGluIHRoZSBhdHRlbXB0LgogCiAKICAgLiAgICAgICAgICAgIC9cICAgICAgICAgLiAgICAgICAuICAgICAgICA6ICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgLiAgICAgLyAgXCAgICAgIC4gICAgICAgICAgLiAgICAgICA6ICAgICAgICAgICAgICAgICh4eCkKICAgICAgICAgICAgICAvICAgIFwgICAuICAgICAgICAuICAgICogICAgICA6ICAgICAgICAgX18tLS0tLS1cLwogICAgICAgICAgICAgLyAgICAgIFwgICAgICAgICAgICAgICogICAgICAgIDogICAgICAgICogfHxfX19ffHwKICAgICAgICAgICAgIHwgKF9fKSB8ICAgLiAgICAuICAgKiogICAgICAgICA6ICAgICAgICAgLyB8ICAgIHxcCiAgICAgIC4gICAgIC98IChvbykgfFwgICAgICAgICAgICoqICAgICAgICAgOgogICAgICAgICAgIC8gfCAvXC9cIHwgXCAgIC4gICAgIC4gKiAgICAgICAgIDogICAgICAgICBIYW1idXJnZXIKICAgICAgIC4gIC8gIHw9fD09fD18ICBcICAgICAuICAgICAgKiAgICAgICA6CiAgICAgIC4gLyAgICB8IHwgIHwgfCAgICBcICAuICAgICAgICAgICAgICAgOgogICAgICAgLyBVU0EgfCBefHxeIHxOQVNBIFwgICAgIC4gICAgICAgICAgIDogICAgICAgKiAgICAgICAgKF9fKQogICAgICB8X19fX19ffCAgXl4gIHxfX19fX198ICAgICAgIC4gICAgICAgIDogICAgICAgIFwgICAgICAgKG9vKQogICAgIC4gICAgICAgKF9ffHxfXykgICAgIC4gICAuICAgICAgICAgICAgIDogICAgICAgICBcLS0tLS0tLVwvCiAgICAgICAgLiAgICAvX1wgIC9fXCAgLiAgICAgLiAgICAuICAgICAgICAgOiAgICAgICAgOC18ICAgICB8fAogICAgICAgICAgICAgISEhICAhISEgICAgICAgICAgICAgICAgICAgICAgIDogICAgICAgICAgfHwtLS0tfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgICAgICAgIF5eICAgIF5eCiAgIFRoZSBjb3cgdGhhdCBqdW1wZWQgb3ZlciB0aGUgbW9vbi4gICAgICAgOiAgICAgICAgIEZseWluZyBDb3cKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi0tLS4uLgogICAgICAgICAgICAgICAgICAgICAgICAuLi8gIC8gfCBcICBcLi4KICAgICAgICAgICAgICAgICAgICAgIC4vIC8gIC8gIHwgIFwgIFwgXC4KICAgICAgICAgICAgICAgICAgICAgLyAgLyAgIC8gIHwgIFwgICBcICBcCiAgICAgICAgICAgICAgICAgICAgLyAgLyAgIC8gICB8ICAgXCAgIFwgIFwKICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgfCAgICAgICAgICAvCiAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICB8ICAgICAgICAgLwogICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgfCAgICAgICAgLwogICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgfCAgICAgICAvCiAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICB8ICAgICAgLwogICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgfCAgICAgLwogICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgfCAgICAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICB8ICAgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgfCAgLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgfCAvKF9fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcfC8gKG9vKQogICAgICAgICAgICAgICAgICAgICAgICAgICAvLS0tKystLVwvCiAgICAgICAgICAgICAgICAgICAgICAgICAgLyB8ICB8fCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgKiAgfHwtKystfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eICAgIF5eCiAKICAgICAgICAgICAgICAgIENvdyBzdXJ2aXZpbmcgYXR0YWNrIGJ5IFJlZCBCYXJvbgogCiAKICAgICAgICAgICAgICAgLi4tLS0uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgICAgIC8gICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICAgICAgICAgICAgfCAgUklQICB8ICAgICAgICAgICAgICAgICAgICAgLy0tLS0tLS1cLwogICAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fAogICAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgICAgICAgICAgICAqICB8fC0tLS18fAogICAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBeXiAgICBeXgogICAgICAgICAgICAgIHwgICAgICAgfAogXFxcXFxcXFxcXFxcXFxcXFwvLy8vLy8vLy8vLy8vLy8vLwogCiAgICAgICAgICAgICBFbHZpcydzIENvdy4uLiAgICAgIC4uLk9yIGlzIGl0IGFsaXZlIGFuZCBsaXZpbmcgaW4gdGF4IGV4aWxlPz8/CiAKIAogICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgICAgICAgICAgICAgKG9vKQogICAgICAgICAvLS0tKyAgICAgICstLVwvCiAgICAgICAgLyB8ICB8ICAgICAgfCB8fAogICAgICAgKiAgfHwtKyAgICAgICstfHwKICAgICAgICAgIF5eICAgICAgICAgIF5eICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAKICAgIERhdmlkIENvcHBlcmZpZWxkJ3MgQ293ICAgICAgICAgICAgICAgRGF2aWQgQ29wcGVyZmllbGQncyBvdGhlciBDb3cKIAogCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy0tLS0tLS1cLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gfCAgICAgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICogIHx8LS0tLXx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXiAgICBeXgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pICAoX18pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbykgIChvbykKICAgICAgICAgICAgICAgICAgICAgICAvLS0tLS0tLVwvICAgIFwvLS0tLS0tLVwKICAgICAgICAgICAgICAgICAgICAgIC8gfCAgICAgfHwgLV5eLSB8fCAgICAgfCBcCiAgICAgICAgICAgICAgICAgICAgICogIHx8LS0tLSAgIC1eXi0gICAgICAgfHwgICoKICAgICAgICAgICAgICAgICAgICAgICAgXl4gICAgICAgICAgICAgICAgICBeXgogICAgICAgICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgKG9vKQogICAgICAgICAgICAgICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgICAgIFwvLS0tLS0tLVwKICAgICAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgICAgICAgfHwgICAgIHwgXAogICAgICAgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAgICAgICAgICAgICB8fC0tLS18fCAgKgogICAgICAgICAgICAgICAgIF5eICAgIF5eICAgICAgICAgICAgICAgICAgICBeXiAgICBeXgogICAgICAgICAgICAgICAgICBCYXJudW0ncyBUcm91cGUgb2YgcGVyZm9ybWluZyBjb3dzCiAKIAogCiAgICAgICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgIF8tLS0tLS0tLV8KICAgICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICB8X19fX19fX19fX3wgICBCSUcKICAgICAgICAgICAgICAvLS0tLS0tLVwvICAgICAgICAgICAgICAgICAgICAgICAgWFhYWFhYWFhYWCAgICBNQUMKICAgICAgICAgICAgIC8gfCAwMDcgfHwgICAgICAgICAgICAgICAgICAgICAgICAgX19fX19fX19fXwogICAgICAgICAgICAqICB8fC0tLS18fCAgICAgICAgICAgICAgICAgICAgICAgIHxfICAgICAgICBffAogICAgICAgICAgICAgICBeXiAgICBeXiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0KICAgICAgICBDb3cgbGljZW5jZWQgdG8ga2lsbCAgICAgIEVuZW15IENvdyBhZnRlciBoYXZpbmcgbWV0IHByZXZpb3VzIGNvdwogCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLydeXl4tbQogICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAnJyBgICkKICAgICAgICAgICAgIChvbykgICAgbyAgICAgL3wgL3wvfF8gICAgICAgICAgICAgICAgfCAgICAgIC98CiAgICAgICAgICAgIC8gXC8gICAgLyAgICAvICAgICAgXyAvICAgICAgICAgICAgICAgIHwgIHwgIHwgfAogICAgICAgICAgIC8gIF9cPT09XiAgIF9fX1xfX19fXy9fX18gICAgICAgICAgICAgICB8X19fX198X3wKICAgICAgIF9fX3xfXy8gfC9cICAgIChfX19fX19fX19fXyhfKSAgICAgICAgICAgICAgIC8vfHwgfHwKICAgICAgKiAgICAgICAgXiBeICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgd3cgd3cKIAogICAgICAgICAgICAgTXJzLiBPJ0xlYXJ5J3MgQ293ICAgICAgICAgICAgICAgICBDb3cnbnQgRHJhY3VsYQogCiAKICBfX19fICAgICAgICAgICAgIF9fX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwrKysrK3wKIHwrKysrfCAgICBfX18gICAgfCsrKyt8ICAgICAgICAgICAgICAgICAgICAgICBfX19fICAgIHwrKysrK3wKIHwrKysrfCAgIHwrKyBfX19fX19fX19fX19fX19fX19fX19fICAgICAgICAgIHwrKysrfCAgIHwrKysrK3wKIHwrKysrfCAgIHwrKy8gICAgICAvKCApXCAgICAgICAgICAgXCAgICAgICAgIHwrKysrfCAgIHwrKysrK3wgICBfXwogfCAgICB8ICAgfCt8ICAgICAgfC1vby0gfCAgICAgICAgICAgXF9fX19fXyAgfCsrKyt8ICAgfCsrKysrfCAgfCsrfAogLSAtIC0tLS0tKF9fKS0tfCAgICAgICBcX19cLyAgICAgICAgICAgXyhfXylfICBcCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBvICAgKCBvbyAvX19fX19fX19fX19fX19fX19fX19fX198IChvbykgIFwgfCAgICAgICAgIF9fCiAgfCAgXy9cX3wgfCAgTSBPIE8gLSBCIFUgUyBUIEUgUiBTfF9fXC9cIC98IHwgICAgICAgIC9vb3wgLSBCbGVhdXJnaCEKICB8LXwgIFxcX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0gIClfICAgIC98ICAvXAogICAtfF8gIFxffC1ffF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eIDAgICAgIF98ICAqICBcLyAgKgogICAgICBcICB8ICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLwogICAgICB8ICBXfCAgXCBcXy8gLy0tLS0tLS0tLS0tLS0tLS0tIFwgXF8vIC8KICAgICAgLyAvXCBcICBcX19fLyAgICAgICAgICAgICAgICAgICAgXF9fXy8KICAgICAvIC8gIFwgXAogICAgIF5eXiAgIF5eXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hvIHlvdSBnb25uYSBjYWxsLi4uPwogCiAKICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAoX18pICAgICAgCigtLS0tLS0tLS0tKQogICAgICAgICAoMDApICAgICAgICAgICAgICAgICAgICgtbykgICAgICAgICAgICAgICAgICAgICgtLSkgLiAuIC4gKCAqPllBV048KgopCiAgIC8tLS0tLS1cLyAgICAgICAgICAgICAgLy0tLS0tLVwvICAgICAgICAgICAgICAgLy0tLS0tLVwvICAgICAgIAooLS0tLS0tLS0tLSkKICAvfCAgICAgfHwgICAgICAgICAgICAgIC98ICAgICB8fCAgICAgICAgICAgICAgIC98ICAgICB8fAogKiB8fC0tLS18fCAgICAgICAgICAgICAqIHx8LS0tLXx8ICAgICAgICAgICAgICAqIHx8LS0tLXx8CiAKIENvdyB3LyBHbGFzc2VzICAgIEZsaXJ0YXRpb3VzIGNvdyAod2lua2luZykgICBDb3cgYWZ0ZXIgcHVsbGluZyBhbgphbGwtbmlnaHRlcgogCiAKICogICAgICAgIChfXykgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgKF9fKQogIFwgICAgICAgKG9vKSAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgICAob28pCiAgIFwtLS0tLS0tXC8gICAgICAgIC8tLS0tLS0tXC8gICAgICAgICAvLS0tLS0tLVwvICAgICAgICAgLy0tLS0tLS1cLwogICAvfCAgICAgIHxcICAgICAgIC8gLyAgICAgIFwgICAgICAgICAvIFwgICAgICAvICAgICAgICAgLyBcICAgICAgXAogIC8vfHwtLS0tfHxcXCAgICAgKiAvLy0tLS0tLVxcICAgICAgICogICBcXC0tLy8gICAgICAgICAqICAgXFwtLS0tXFwKICBeIF5eICAgIF5eIF4gICAgICAgXiAgICAgICAgXiAgICAgICAgICAgIF4gIF4gICAgICAgICAgICAgICBeICAgICBeCiBDb3cgd2Fsa2luZyAgICAgICAgIENvdyBqb2dnaW5nICAgICAgICAgU2FtZSBjb3cgICAgICAgIENvdyBicmVha2luZwogCiAKICAgICAgICAgICAoX18pCiAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgKF9fKSBvICAgICAgICogICAgIChfXykKICAgICAgICAgICAgXC8gICAgICAgICAgICAgICAgICAgICAgICAob28pLyAiICAgICAgfCAgICAgKG9vKQogICAgICAgIF9fX198IFxfX19fICAgICAgICAgICAgLy0tLS0tLS1cLyhfXyBvPW89bz18LS0tLS0tXC8KICAgICAgICAtLS0vICAgLS0qKiAgICAgICAgICAgLyB8ICAgICAgIC8gICAgICAgICAgfCAgICAgIHwKICAgICAqX19fXy8gICAgfF9fXy8vICAgICAgICAqICB8fC0tLS18fCAgICAgICAgICAgfHwtLS0tfHwKICAgICAgICAgLy8tLS0tLS0tLS8gICAgICAgICAgICBeXiAgICBeXiAgICAgICAgICAgXl4gICAgXl4KICAgICAgICAvL19fICAgICAgICAgICAgICAgICAgICAgIENvdyAgICAgICAgICAgQ293IHBvb2luZwogICAgICAgIENvdyBtYXJjaGluZyAgICAgICAgICAgIHN0YW5kaW5nCiAKIAogICAgU2lkZSAgICAgIEZyb250ICAgU2lkZSAgIGJhY2sgICAgICAgICAgICAgICAgKF9fXykgIFdoZXJlJ3MgYWxsIHRoZQpidWxscyEKICAgIChfXykgICAgICAoX18pICAgIChfXykgICAoX18pICAgICAgICAgICAgICAgIChPIE8pLwogICAgKCBvbyAgICAgIChvbykgICAgb28gKSAgICggICkgICAgICAgICAgICBeICBfL1wgL1xfICBeCiAgICAvXF98ICAgICAgL1wvXCAgICB8Xy9cICAgLyAgXCAgICAgICAgICAgIFxcLyAgIE8gICBcLy8KIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fX19fCiAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgfCAgICB8ICAgICAgICAgICAgICAgICAgICgkJCkKICAgICAgIC0tLS1cLyAgICAgICAgICAgICAgICAgIC8tLS0tLX5+fn5+fiAgICAgICAgICAgIC8tLS0tLS0tXC8KICAgICAgICAgIHx8ICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgICAgICAgLyB8IElSUyB8fAogICAgICAgLS0tfHwgICAgICAgICAgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAgICAgICogIHx8LS0tLXx8CiAgICAgICAgICB+fiAgICAgICAgICAgICAgICAgICAgfn4gICAgfn4gICAgICAgICAgICAgICAgfn4gICAgfn4KICBFcmljIHRoZSBoYWxmIGEgY293ICAgICBUaGUgdW5rbm93biBjb3dtaWMgICAgICAgICBUYXggQWNvd250YW50CiAKIAogICAgICAgICAgIChfX18pICAgICAgICAgICAgKF9fXykgICAgICAgICAgICAgKF9fXykKICAgICAgICAgICAoMCAwKSAgICAgICAgICAgICgwIDApICAgICAgICAgICAgICgwIDApCiAgICAgICAgICAgIFwgLyAgICAgICAgICAgICAgXCAvICAgICAgICAgICAgICAgXCAvCiAgICAgICAgIF9fW19WX11fXyAgICAgICAgX19bX1ZfXV9fICAgICAgICAgX19bX1ZfXV9fCiAgICAgICAgL19fX19fX19fX1w9PT06ICAvX19fX19fX19fXD09PTogICAvX19fX19fX19fXD09PToKICAgICAgICBcT09PLS0tT09PLyAgICAgIFxPT08tLS1PT08vICAgICAgIFxPT08tLS1PT08vCiAKICAgICAgICAgICAgICAgICAgICAgICAgIENvd2VkIEZvcmNlcwogICAgICAgICAgICAgIFwgXyAvCiAgICAgICAgICAgICAtICggKSAtICAgICAgICAgICAgICAgICAgICAgICAgICAvXAogICAgICAgICAgICAgIC8gIiBcICAgICAgICAgICAgICAgICAgICAgICAgIC98ICB8ICAgKF9fKQogICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAvICB8ICB8ICAgKG9vKVwKICAgICAgX19fX19fX18ob28pICAgICAgICAgICAgICAgICAgICAgIC9fX19ffCAgfCAgICBcL3wgIFwKICAgICAvfCAgICAgICAgXC8gICAgICAgICAgICAgICAgICAgICAvICAgICAgIFwvICAgICAgIHwgICAgXAogICAgLyB8X19fX19fX3x8ICAgICAgICAgICAgICAgICAgIF9fKF9fX19fX18gICAgICAgICAgfHx8X18gIFwKICAgKiAgfHwgICAgICB8fCAgICAgICAgICAgICAgICAgIHxfX19fX19fX19ffCAgICAgICAgIHx8fCAgX19fX1wtLS0qCiAgICAgIH5+ICAgICAgfn4KICBUaG9tYXMgRWRpc29uJ3MgY293ICAgICAgICAgICAgICAgQ293IGhlYXJpbmcgaGlzIG1hc3RlcidzIHZvaWNlCiAKIAogICAgICAgICAgICApICAgICggICAgICAgICAgICAgICAgICAgICAgICAgXwogICAgICAgICAgICAoX19fXykgICAgICAgICAgICAgICAgICAgICAgICAvIFwgICAgICAgICAgICAgICAgKF9fKSAgCj09PT09PT09PT1JCiAgICAgICAgICAgLyA9ICA9IFwgICAgfiAgICAgICAgICAgICAgID09JyAgIGA9PSAgICAgICAgICAgICAob28pICAgIFwgfHx8fHx8CkkKICAgICAgICAgICAoLU8tLU8tKSAgICB+ICAgICAgICAgICAgICAgIDggTyBPIDggICAgICAgLy0tLS0tLS1cLyAgICAgIFwgfHx8fHwKSQogICAgICAgICAgICAoICAgICkgICAgIH4gICAgICAgIC8tLS0tLS0tICggICApICAgICAgIC8gfCAgICAgfHxfX289PCAgIFwgfHx8fApJCiAgIC8tLS0tLS0tIHx8fHx8fD09PT09PSAgICAgICAvIHwgICAgIHx8IFxfLyAgICAgICAqICB8fC0tLS18ICAgICAgICAgIFwgfHx8CkkKICAvIHwgICAgIHx8ICBcLyAgICAgICAgICAgICAgKiAgfHwtLS0tfHwgICAgICAgICAgICAgIH5+ICAgIH4gICAgICAgICAgIFwgfHwKSQogKiAgfHwtLS0tfHwgICAgICAgICAgICAgICAgICAgICB+fiAgICB+fgogICAgfn4gICAgfn4KICAgICAgR3JvdWNobyBNb28teCAgICAgICAgICAgICAgICBDaGljbyAgICAgICAgICAgICAgICBIYXJwbwogCiAgICAgICBfX19fX19fX19fX19fX19fX19fX19fICAgICAgICAgICAgX19fX19fX19fX19fX19fX19fX19fX18KICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgfCAgICAgICAgICAgIChfXykgICAgfCAgICAgICAgICAgIHwgIChfXykgICAgICAgICAgICAgICB8CiAgICAgICB8ICAgICAgICAgICAgKG9vKSAgICB8ICAgICAgICAgICAgfCAgKG9vKSAgICAgICAgICAgICAgIHwKICAgICAgIHwgICAgIC8tLS0tLS0tXC8gICAgIHwgICAgICAgICAgICB8LS0tXC8gICAgICAgICAgIC8tLS0tfAogICAgICAgfCAgICAvIHwgICAgIHx8ICAgICAgfCAgICAgICAgICAgIHwgIHx8ICAgICAgICAgICAvIHwgICB8CiAgICAgICB8ICAgKiAgfHwtLS0tfHwgICAgICB8ICAgICAgICAgICAgfC0tfHwgICAgICAgICAgKiAgfHwtLXwKICAgICAgIHwgICAgICB+fiAgICB+fiAgICAgIHwgICAgICAgICAgICB8ICB+fiAgICAgICAgICAgICB+fiAgfAogICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tfCAgICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS18CiAgICAgICAgICAgICBOb3JtYWwgQ293ICAgICAgICAgICAgICAgICAgMCAgIENvdyAgbW9kdWxvIG9uZSAgIDEKIAogICAgICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9vKQogICAgICBfX19fX19fX19fX19fX1wvX19fX19fICAgICAgICAgICAgICAgX19fXyAgICAvLS0tLS0tLVwvICBfXwogICAgIC9fX18vX19fL19fXy9fX18vX19fL18vfCAgICAgICAgICAgICAvX19fL3wgIC8gfCAgICAgfHwgXy9fL3wKICAgICB8X19ffF9fX3xfX198X19ffF9fX3xffHwgICAgICAgICAgICAgfF9ffHwvfCogLy8tLS0tLXx8fF98X3x8CiAgICAgfF98X19ffF9fX3xfX198X19ffF9fX3x8ICAgICAgICAgICAgIHxffF9ffC98fn4gICAgICB+L3xfX198fAogICAgIHxfX198X19ffF9fX3xfX198X19ffF98LyAgICAgICAgICAgICB8X19ffF98LyAgICAgICAgfF9fX3xffC8KIAogICAgIENvdyBpbiB0aGUgR0RSIGJlZm9yZS4uLiAgICAgICAgICAgICAuLi5hbmQgYWZ0ZXIgOS1Ob3YtMTk4OQogCiAKICAgICAgICBfX19fX19fX19fX19fXyhfXylfX19fX19fX19fX19fX19fXyAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgIC9fX19fX19fX19fX19fX18ob28pX19fX19fX19fX19fX19fIC8gICAgICAgICAgICAgICAgICAgICAgKG9vKQogICAgICB8ICAgICAgICAgICAgICAgIFwvICAgICAgICAgICAgICAgIHx8ICAgICAgICAgICAgICAgICAgICAgICBcLwogICAgIF98XyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3x8ICAgICAgICAgICAgICAgICAgICAgICB8fAogICAgL19fL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vX18vfCAgICAgICAgICAgICAgICAgICAgICB8fAogICAoICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggICApfCAgICAgICAgICAgICAgICAgICAgICB8fAogICAgfCB8X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX198IHwgfCAgICAgICAgICAgICAgICAgICAgICB8fAogICAgXF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vXSAgICAgICAgICAgICAgLy0tLS0tLS0gLwogICAgIFtdICAgICAgICAgICAgICAgW10gICAgICAgICAgICAgICBbXSAgICAgICAgICAgICAgICAvIHwgICAgIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAgfHwtLS0tfHwKICAgICAgICAgICAgICAgICAgICAgQ09XLUNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fiAgICB+fgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvd3JhZmZlCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgIC8KICAgICAgICAvfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cICAgICAgICAgICAgICAgICBcLwogICAgICAvICAgKF9fKSAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICArLS0tLS0tLS0tLSsKICAgICB8ICAgIChvbykgfn5+fn5+fn5+fn5cICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICB8CiAgICB8fn5+fCAgXC8uIFxcICAgICAgIC8vIFxfKiB8fn5+fCAgICAgICAgIHwgICAgICAgICAgfAogICAgfCAgIHwtLS0tLWAvL2A9PT09PSdcXC0tLS0tfCAgIHwgICAgICAgICB8ICAgICAgICAgIHwKICAgIHwgICB8LS0tLS0vLy0tLS0tLS0tLXx8LS0tLXwgICB8ICAgICAgICAgfCAgICAgICAgICB8CiAgICB8ICAgfF8gXyBfIl8gXyBfIF8gXyAiXyBfIF98ICAgfCAgICAgICAgICstLS0tLS0tLS0tKwogICAgIH58fH4gICAgICAgICAgICAgICAgICAgICAgfnx8fiAgICAgICAgICAgfHwgICAgICB8fAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkNPV0NIIFBPVEFUTyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tKyAgICAgICAgICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEIgQSBUIEUgUyAgfCAgKF9fKSAgIG8KICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAoMHgpICAgKCAgICAgICApICAgICB8QyBPIFIgUiBBIEwgfCAgKCoqKSAgL3wKIC0gLSAtLS0tLS0tLS0tICAgICAgICAgICAgIHwgICAgIFwvICAgICggICAgICAgKSAgICAgKy0tLS0tLS0tLS0tLSsgIFw9PS8gLwp8CiB8XCAgICAgICAgIFwgICAgICAgICAgICAgICAgICAgICAgICBXLS0tLS0tICAgICAgIHwgICAgICAgICAgfCAgICggICkgICB2CiB8ICAtLS0tLS0tLS0tICAgICAgICAgICotLS0tICAgPT09PTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgICApCiB8ICB8ICAoX18pICB8ICAgICAgICAgICBcICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgICApCiBcICB8ICAob28pICB8ICAgICAgICAgICAgXCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgICApCiAgXCB8ICAgXC8gICB8ICAgICAgICAgICAgICBcKyAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgICApCiAgICAtLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgICApCiAgICAgSWNlIENvd2JlICAgICAgICAgICAgQ09XQk9PT09PTSEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyAgbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBzeWNobyBDb3cgKHdpdGgga25pZmUpCiAgICAgICAgICAoX18pCiAgICAgICAgICAob28pICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fXwogICAvLS0tLS0tLVwvIC0gfCBEb24ndCBoYXZlIGEgQmFydCwgbWFuISB8ICAgICAgICB8XCB+ICAgICAgICAgICAgICAgIH4gIC98CiAgLyB8ICAgICB8fCAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgIHwgXCAgICB+ICAgICAgfiAgICAgfiAvIHwKICogIHx8LS0tLXx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfChfXCB+ICAgQ09XLVBJRSB+ICAgL18pfAogICAgfn4gICAgfn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KG9vXCAgIH4gICAgICAgICAgIC9vbyl8CiAgVGhlIFNpbXBzb25zJyBjb3cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXC8gXCAgICAgICB+ICB+ICAvIFwvIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfChfXykgXCAgICAgICAgICAgLyAoX18pfAogICAgICAgICAgICAgICAgIFwgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICBcKG9vKShfXCB+ICAgICB+IC9fKShvbyl8CiAgICAgICAgICAgICAgICAgIFxfX19fX19fX19fX19fLyAgICAgICAgICAgICAgICAgICBcXC8gKG9vXCAgICAgICAvb28pIFwvLwogICAgICAgICAgICAgICAgICAvXF9fX19fX19fX19fL1wgICAgICAgICAgICAgICAgICAgIFwgICBcLyBcICB+ICAvIFwvICAgLwogICAgICBDb3cgaW4gICAgLyAvXF9fX19fX19fXy9cIFwgICAgICAgICAgICAgICAgICAgIFwgIChfXylcICAgLyAoX18pIC8KICAgICAgIHRyb3VibGUgIC8gLyAvXF9fX19fX18vXCBcIFwgICAgICAgICAgICAgICAgICAgIFwgKG9vKSBcfi8gIChvbykvCiAgICAgICAgICAgICAgIC8gLyAvIC8gKF9fKSAvXCBcIFwgXCAgICAgICAgICAgICAgICAgICAgXCBcLyAgIDooX18pXC8vCiAgICAgICAgICAgX19fL18vXy9fL18gKG9vKSBcX1xfXF9cX1xfX18gICAgICAgICAgICAgICAgIFwgKF9fKToob28pIC8KICAgICAgICAgICAgICBcIFwgXCBcIFwgXC8gIC8gLyAvIC8gLyAgICAgICAgICAgICAgICAgICAgIFwob28pOiBcLyAvCiAgICAgICAgICAgICAgIFwgXCBcIFwvX19fX19cLyAvIC8gLyAgICAgICAgICAgICAgICAgICAgICAgXFwvKF9fKSAvCiAgICAgICAgICAgICAgICBcIFwgXC9fX19fX19fXC8gLyAvICAgICAgICAgICAgICAgICAgICAgICAgIFwgKG9vKS8KICAgICAgICAgICAgICAgICBcIFwvX19fX19fX19fXC8gLyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgXC8vCiAgICAgICAgICAgICAgICAgIFwvX19fX19fX19fX19cLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXDovCiAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICBcCiAKICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgKF9fX19fXykgICAgICAgICAgICAgKF9fKQogICAgICAgICAgIChvbykgICAgICAgICAgICAgICAob28pICAgICAgICAgICAgICAoIG8gIG8gKSAgICAgICAgICAgICAob28pCiAgIC8tLS0tLS0tLVwvICAgICAgICAgL35+fn5+fn5cLyAgICAgICAgICAvLS0tLS1cICAgIC8gICAgICAgLy0tLS0tLS1cLwogLi8gfCAgICAgICAgfCAgICAgICAuLyB7fikpKSkpX30gICAgICAgICAvIHwgICAgIHxcLyAgICAgICAgLyB8ICAgICB8fAogICAgfC0tVy0tLS0tfCAgICAgICAgICB8fGBgICAgfHwgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAqICAoLikoLil8fAogICAgfCB8ICAgIHwgfCAgICAgICAgICB+fiAgICAgfn4gICAgICAgICAgIH5+ICAgIH5+ICAgICAgICAgICB+fiAgICB+fgogICAgfn4gICAgfn4KIGNvdyBiZWZvcmUgd2VpZ2h0ICAgICAgIGNvdyBhZnRlciAgICAgICAgICBDb25jZWl0ZWQgICAgICAgRG9sbHkgUGFydG9uJ3MKICAgbG9zcyBwcm9ncmFtICAgICAgICAgdGhlIHByb2dyYW0gICAgICAgICAgICBDb3cgICAgICAgICAgICAgICBDb3cKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAgT08KICAgX19fX19fICAgICAgX19fX19fICAgICAgX19fX19cXyB8ICAgICAgICAgICAgICAgICBfX19fX18gIChfXykgX19fX19fCiAgfCAgICAgIHwgICAgfCAgICAgIHwgICAgfCAgICAgIHxcTyAgICBjb3dzdGxlICAgICB8ICAgICAgfCAob28pfCAgICAgIHwKICB8ICAgICAgfF9fX198ICAgICAgfF9fX198ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICB8X19cL198ICAgICAgfAogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8CiAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAoX18pICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwKICB8ICAgICAgICAgIF9fX19fX19fX18gICAgICAgICAgfCAgIChvbykgICAgICAgICAgIHwgICAgIF9fX19fX19fX18gICAgfAogIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgIFwvLS0tLS0tLVwgICAgfCAgICB8ICAgICAgICAgIHwgICB8CiAgfCAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgX19fIHwgX19fICB8X1xfICB8ICAgIHwgICAgICAgICAgfCAgIHwKICB8ICAgICAgICAgfCAgIChfXykgICB8ICAgICAgICAgfF98IHxffF98IHxfX3x8IHxfX3wgICAgfCAgIChfXykgICB8ICAgfAogIHwgICAgICAgICB8ICAgKG9vKSAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgKG9vKSAgIHwgICB8CiAgfCAgICAgICAgICBcX19fXC9fX18vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX19fXC9fX18vICAgIHwKICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX18gICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgIFwgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgICAgICAgICAgfAogICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICAgICAgIHwKICAgICAgICAgICAgfF9fX19fX19fX19fX19fX19fX19fX19fX198X19fX19fX198X19fX19fX19fX19fX198CiAgIFwgXAogICAgXCBcCiAgICAgXCBcCiAgICAgIFwgXCAgIChfXykKICAgICAgIFwgXCAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvCiAgICAvLS0tXC0tLS1cLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvCiAgIC8gfCAgIFwgIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogICAgICAgICAoX18pICAgIC8KICAqICB8fC0tLVwtXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICggT08gICAvCiAgICAgfn4gICAgICB+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXC0tLVxfX18vXF98XD0vPgogICAgICAgICAgICAgfn4gICAgICAgfn4gICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIFw9PT0vPgogICAgICAgICAgICAgIFxcX19fX18vLyAgICAgICAgICAgICAgICAgICAgICAgIHwgL19fX19fXy8gIC8KICAgICAgICAgICAgICB8fCAgICAgfCAgICAgICAgICAgICAgICAKX19fX19fX19fXFxfXFxfX19fXy9fX19fX19fX19fX19fX19fX19fXwogICAgICAgICAgICAgIC9cLS0tLS0tXCAgICAgICAgICAgICAgICAgICAgICAgICAgfiAgfiAgICAvCiAgICAgICAgICAgICAob28pICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLwogICAgICAgICAgICAgKC0tKSAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLwogCiBDb3cgQ2lyY3VzOiBUaGUgZmx5aW5nIENvd2xlbmRhcyAgICAgICAgIENvdyBDaXJjdXM6IFRpZ2h0cm9wZSB3YWxraW5nCiAKICAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fCiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHxcCiAgICAgICAgICB8ICAgICAgIChfXykgICAgICAgICAgIHwgfAogICAgICAgICAgfCAgICAgICAob28pICAgICAgICAgICB8IHwKICAgICAgICAgIHwgICAgICAgIFwvICAgICAgICAgICAgfCB8CiAgICAgICAgICB8ICAgICAgIC8gXCBcICAgICAgICAgIHwgfAogICAgICAgICAvLy8vLy8vLy8gICBcXyBcXy8vLy8vLy8gIHwKICAgICAgICAgIHwgICAgIHwgICAgIC8gICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgfCAgIC8rKysrKys8ICAgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgX19fX18ob28pCiAgICAgICAgICB8PT0vPT09PXw9PVw9XD09PT09PT09PXw9fD09PT09PT09PT09PT09PT09PT09PT09PT09PVxcLwogICAgICAgICAgfCAqICAgICB8ICAgIFxfXF8gICAgICB8IHwgICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fAogICAgX19fX19fX08pLS0tLS1+LS0tLS0tLS0tLS0tLS0tXE8pX19fX19fX19fX19fX19fX18qX198fC0tLS18fF9fX19fCiAKICAgICAgICAgICAgICAgICBjb3ctbGxpb3BlIGluIHRoZSBjaXJjdXMgcGFyYWRlCiAKICAgICAgICoKICAgICAgICBcCiAgICAgdyAgIFwgICAgdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgXFwgIC9cICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICAgIFxcLyAgXC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXC8KICAgICAgIHwgICAgfCAgICAgICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgID4tLSggICktLTwKICAgICAgIHwoX18pfCAgICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgIC8gIFwKICAgICAgIFwoT08pLyAgICAgICAgICAgICAgICAgICAuLVwvLS4gICAgICAgICAgICAgPi0tLSB7fSAtLS08CiAgICAgICAvL1wvXFwgICAgICAgICAgICAgICAgICA8fCAgICB8PiAgICAgICAgICAgICAgdiAgL1wgIHYKICAgICAgIHx8ICB8fCAgICAgICAgICAgICAgICAgICBcIFwvIC8gICAgICAgICAgICAgICB8IChvbykgfAogICAgICAgfHxfX3x8ICAgICAgICAgICAgICAgICAgIHxcL1wvfCAgICAgICAgICAgICAgICBcKH5+KS8KICAgICAgL35+ICB+flwgICAgICAgICAgICAgICAgICAvLS0tLVwgICAgICAgICAgICAgICAgIHwgIHwKICAgIC8gPT09PT09PT0gXCAgICAgICAgICAgICAgIC8gICAgICBcICAgICAgICAgICAgICAgIHwgIHwKICAgLyAgICAgICAgICAgIFwgICAgICAgICAgICAgIC8qICogKiBcICAgICAgICAgICAgICAgLyBcLyBcCiAgfD09PT09PT09PT09PT09fCAgICAgICAgICAgIC9fXypfKl8qX1wgICAgICAgICAgICAgIHwgIFwgfAogICBcICAgICAgICAgICAgLyAgICAgICAgICAgICAgIHx8ICB8fCAgICAgICAgICAgICAgICB+ICAvIH4KICAgIFwgPT09PT09PT0gLyAgICAgICAgICAgICAgICB+fiAgfn4gICAgICAgICAgICAgICAgICAqCiAgICAgIFwgX19fX18gLwogQ293IGJhbGFuY2luZyBvbiBiYWxsICAgICAgICAgIENvd3NsaXAgICAgICAgICAgICBDb3duaWxpbmd1cwogCiAKICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtJ2AtICAgICAgICJIZXJlJ3MKICAgICAgICAgICAgICAob28pICAgICBfX19fX19fX19fX19fX19fX19fXyAgICAgICAgICAgICAgICAoIG9vICB+ICAgICBtb29pbmcKICAgICAgIC8tLS0tLS0tXC8gICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAvXF98LS0gICAgICBhdAp5b3UsCiAgICAgIC8gfCAgICAgfFwgLyAgICB8ICBvICBvICBvICBvICBvICBvICB8ICAgICAgICAgICAgICB8IFwgXF9fICBfICAga2lkISIKICAgICAqICB8fC0tLS18IC8gICAgID09PT09PT09PT09PT09PT09PT09PT0gICAgICAgICAgICAgIHwgIFxfX19bJwogICAgICAgIH5+ICAgIH4gICAgICAgfHwgICAgICAgICAgICAgICAgICB8fCAgICAgICAgICAgICAgfCAgICB8fAogICAgICAgIENvd25jaWxsb3IgICAgICAgICAgICBoaXMgY293Y2ggICAgICAgICAgICAgICAgICAgfF9fX198LQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+ICB+CiAgICAgICAgICAoX18pICAgIChfXykgICAoX18pICAgIChfXykgICAgICAgICAgICAgICAgIGh1bXBocmV5IGNvdy1ndXJ0CiAgICAgICAgICAob28pICAgIChvbykgICAob28pICAgIChvbykKICAgLy0tLS0tLS1cLyAgICAgIFwvICAgICBcLyAgICAgIFwvLS0tLS0tLVwKICAvIHwgICAgIHx8ICA9PT09PT09PT09PT09PT09PT09ICB8fCAgICAgfCBcCiAqICB8fC0tLS18fCAgIHx8IHwtLXwgICB8LS18IHx8ICAgfHwtLS0tfHwgICoKICAgIH5+ICAgIH5+ICAgLS0gfiAgfiAgIH4gIH4gLS0gICB+fiAgICB+fiAgICAgICAgICAgIChfXykKICAgICAgICAgICBBIGdhbWUgb2YgY293bnRyYWN0IGJyaWRnZSAgICAgICAgICAgICAgICAgIChvbykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBcLyAgICAgICBfX19fX19fX19fX18KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgXD09PX5fX3wgICAgICAgICAgIAp8CiAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICBffF9fXyAvXCAKfF9fX19fX19fX19fX19ffAogICAgICAgICAgIChfXykgIHwgXC0vICAgXC0vICAgIHx8ICAgIHwgICAgICAgICAgICB8PT09PT18IHwgICB8ICAgICAgICAgICAgfAogICAgICAgICAgIChvbykgIHwgX3xfICAgX3xfICAgfF9ffCAgIHwgICAgICAgICAgICAqSSAgIEl8IHwgICB8ICAgICAgICAgICAgfAogICAgLy0tLS0tLS1cLyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgSSAgIEl+IH4gICB8ICAgICAgICAgICAgfAogICAvIHwgICAgIHx8ICAgIHwgICBcLS8gIHwgICB8ICAgIHwgIHwKICAqICB8fC0tLS18fCAgICB8ICAgX3xfIHxffCB8X3wgIHxffCB8ICAgICAgICAgICAgd29sZmdhbmcgYW1hZGV1cyBtb28temFydAogICAgIH5+ICAgIH5+ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgSnVzdCBhIGh1bWJsZSBjb3dub2lzc2V1cgogCiAKICAgICAoX18pICAoX18pICAgKF9fKSAoX18pKF9fKSAgICAoX18pIChfXykoX18pKF9fKSAgKF9fKQogICAgIChvbyhfXylvbykgKF9fKW8pIChvbykoKF9fKShfXylvbykgKF9fKShvKF9fKW8pKF9fKW8pKF9fKQogICAgICBcLyhvbylcLyAgKG9vKS8oX18pLyAgKG9vKShvbylcLyAgKG9vKSBcKG9vKS8gKG9vKS8gKG9vKQogICAgICAgICBcLyAgICAgIFwvICAob28pICAgIFwvICBcLyAgICAgIFwvICAgIFwvICAgIFwvICAgIFwvCiAgICAgICAgICAgICAgICAgICAgICBcLwogICAgICAgICAgICAgICAgICAgICAgICAgIGEgY293bmZsdWVuY2UKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fCiAgICAgICAgICAgICAoX18oICAuLTwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIHwgICB8CiAgICAgICAgICAgICAob28pICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfF9fX3xfX198CiAgICAgICAgICAgX19fXC9fX198ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxfX19fXy98CiAgICAgICAgICB8ICB8ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CiAgICAgICAgICB8ICB8ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfF9fX19fX198CiAgICAgICAgPi0nICB8ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfICAgfCAgIF8gICB8CiAgICAgICAgICotLS0tL1wgICAgICAgICAgICAgICAgICAgICAvLS0tLS0tLS8vICAgfC0tKF8pLS18CiAgICAgICAgICAgICAvICBcICAgICAgICAgICAgICAgICAgIC8gfCAgICAgfHwgICAgfF9fX19fX198ICAoX18pCiAgICAgICAgICAgIC8gICAgXCAgICAgICAgICAgICAgICAgKiAgfHwtLS0tfHwgICAgfCAgICAgICB8ICAoKyspCiAgICAgICAgICAgIH4gICAgIH4gICAgICAgICAgICAgICAgICAgfn4gICAgfn4gICAgfF9fX19fX198ICAgXC8KICAgICAgICAgRWd5cHRpYW4gQ293ICAgICAgICAgICAgICAgICAgIE1hcmllIEFudG9pbmV0dGUncyBDb3cKIAogICAgICAgICAgICAgICAgICBfCiAgICAgICAgIF9fX19fX19ffEB8X19fX19fX18KICAgICAgICAgIHwgIFBPTElDRSAgQk9YICB8ICAgICAgICAgICAgICAgICAgICAgX18KICAgICAgICAgIHwtLS0tLS0tLS0tLS0tLS18ICAgICAgICAgICAgICAgICAgICh+XC9+KSAgICAgICAgICAgICAgXCg6KS8KICAgICAgICAgIHxfX19fX19ffCAgICAgLyB8ICAgICAgICAgICAgICAgICAgICBcb28vICAgICAgICAgICAgICAgKG98bykKICAgICAgICAgIHx8ICB8ICB8fCAgICB8ICB8ICAgICAgICAgICAgICAgLy0tLS0tXC8gICAgICAgICAgIC8tLS0tLVxfLwogICAgICAgICAgfHwtLS0tLXx8ICAgIHwgIHwgICAgICAgICAgICAgIC98ICAgICAgfCAgICAgICAgICAvfCAgICAgIHwKICAgICAgICAgIHx8X198X198fCAgICB8ICB8ICAgICAgICAgICAgIFYgfHwtLS0tfHwgICAgICAgICB+IHx8LS0tLXx8CiAgICAgICAgICB8ICBfX18gIHwgICAgfCAgfCAgICAgICAgICAgICAgIH5+ICAgIH5+ICAgICAgICAgICB+fiAgICB+fgogICAgICAgICAgfCB8X19ffCB8ICAgIHwgIHwgICAgICAgICAgICAgIFZ1bGNhbiBDb3cgICAgICAgICBLbGluZ29uIENvdwogICAgICAgICAgfCBfX19fXyB8ICAgICAoX18pCiAgICAgICAgICB8fCAgICAgfHwgICAgIChvbykgICAgLS0tLS0tLS0tCiAgICAgICAgICB8fCAgICAgfHwtLS0tLy9cLyAtLS08IE1hc3Rlcj8gPgogICAgICAgICAgfHwgICAgIHx8Qi05ICBcIHwgICAgIC0tLS0tLS0tLQogICAgICAgICAgfHxfX19fX3x8X19fX19fXHwKICAgICAgICAgIHxfX19fX19ffF9fX19fX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0KICAgICAgYSBDZXJ0YWluIFRpbWUgTG9yZCdzIENvdyAgICAgICAgICAgICAgICAgICAoX18pICAgICAtLS08CkVYVEVSTUlOQVRFISEhIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIC0tLS0wICAgICAKLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgICAgKF9fXykgICAgICAgICAgICAgICAgICAgICAgICAgIF9cL18KICAgICAgICAgICAgICAgICAgIHw9PT18ICAgICAgICAgICAgICAgICAgICAgICAgIC9vb29vXC0tLU8KICAgICAgICAgICAgX19fX19fX19cXy8gICAgICAgICAgICAgICAgICAgICAgICAgL29vb29vb1wKICAgICAgICAgICB8IHwgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAvb29vb29vb29cCiAgICAgICAgICAgIyB8fF9fX19fX3x8ICAgICAgICAgICAgICAgICAgICAgICAvb29vb29vb29vb1wKICAgICAgICAgICAgIHx8ICAgICAgfHwgICAgICAgICAgICAgICAgICAgICAgL19fX19fX19fX19fX1wKICAgICAgICAgICAgIH5+ICAgICAgfn4KICAgICAgICAgICAgICBSb2JvQ293ICAgICAgICAgICAgICAgICAgICAgICAgICBhIERhbGVrIENvdwoKCnRvIGJlIGNvbnRpbnVlZCAtLS0tLS0+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJY2ggd2lsbCBLVUVIRSEhISAoUGFydCBJSSkgKENhdHdlYXpsZSwgMzAuIEp1bCAxOTk3LCAxMzozMTowMCk6CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAgQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBAQCBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAQCBACiAgICAgICAgICAgICAgICBQZmZpaSAgICAgICAgICAgQEBAQCBAQAogICAgICAgICAgX19fX19fX19fX19EICAgICAgICAgICBAQEBAQEAKICAgICAgICAgfF9fX19fX19fICB8ICAgICAgICAgICAgX19fX19fXwogICAgICAgICAgKF9fKSAgIHwgLyAgICAgICAgICAgICBcICAgICAvCiAgICAgICAgICAoIG9vIC9+fCB8ICAgICAgX18gICAgICBcICAgLwogICAgICAgICAgL1xffC8vIHwgfCAgICAgLyAgXCAgICAgfCAgfAogICAgICAgIF8vX19fXy9fX3wgfCAgICB8ICAgIHwgICAgfCAgfAogICAgICAgfCAgICAgICBfX18vLS0tLS0tLS0tLS0tLS0tLS1ffCAoX18pCiAgICAgICB8ICAgICAgLyAgIFwgICAgIFwgICAgIFwgICAgICAgYChvbykKICAgICAgIHwgICAgIC8gICAgIFwgICAgIHwgICAgIHwgICAgICAgfFwvCiAgICAgICB8ICAgIHwgICBPICB8ICAgIC8gICAgIC8gX18gICAgLwogICAgICAgfC0tLS18ICAgICAgfC0tLS0tLS0tLS0tLyAgXC1cXFwgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgXCAgICAgLyAgICAgICAgICAgfCBvIHwgIFxcXCAgICAgICAgICAgICAgIF8oICApXwogICAgIF9fX19fX19fXF9fXy9fX19fX19fX19fX19cX18vX19fX1xcXF9fX19fX19fX19fX18vXy9fX1xfXF9fX18KIAogICAgICAgICAgICAgICAgICAgQ293IEV4cHJlc3MgICAgICAgICAgICAgICAgICAgICBTdWljaWRhbCBDb3cKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gICAgICAgICBfX19fX19fX19fX19fCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL1wgICAgICAgLyAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbX19dICAgICAoIHRha2Ugb2ZmLCBlaCEgKQogICAgICBfXyAgfCAgIFwgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9vKSAtLS0tJ1xfX19fX19fX19fX19fLwogICAgICAgIFwvLS0tLS8vL1wgICAgICAgICAgICAgICAgICAgICAvLS0tLS0tLVwvCiAgICAgICovXF9fX19fXyh4eCkgICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fF9ffAogICAgICAgICAgICAgICAoICApICAgICAgICAgICAgICAgICAgKiAgfHwtLS0tfCAgIFUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+ICAgIH4KIFByby1kZW1vY3JhY3kgY293IGZyb20gQmVpamluZyAgICAgICAgIENhbmFkaWFuIENvdwogCiAKICAgICAgbyAgICAgICAgICBvICAgICAgICAgICAgICAgbyAgICAgICAgICAgICAgbyAgICAgICAgICAgICBvICAgICAgIG8KIG8gIG8gICAgICAgbyAgICAgICAgIG8gICAgICAgbyAgICAgbyAgICAgICAgIG8gICBvICAgICAgIG8gICAgICAgbwogICAgIG8gICBvICAgICAgbyAgICAgICBvICAgICAgICggICAgKSAgICAgIG8gICAgKCAgICApICAgICAgICBvICAoICAgICggICAgbwogICBPICAgICAgICAgICAgICAgICAgICAgKSAgKCAgICAgICAgICAgICApICAoICAgICAgICAgICAgICkgICgKIG8gIG8gICAgIChfXykgICAgIG8gICAgIG8gICAgICAgKF9fKSAgICAgICAgbyAgICAoX18pICAgICBvICAgbyAgIChfXykKICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAob28pICAgICAgbyAgICAgIChvbykgICAgIG8KICAgLy0tLS0tLSQkJCQgICBvICAgbyAgICAvLS0tLS0tLVwvICBvICAgIC8tLS0tLS0tXC8gICAgICAgLy0tLS0tLS1cLwogIC8gfCAgICAgJCQkJCAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAvIHwgICAgIHx8ICAgICAgIC8gfCAgICAgfHwKICogIHx8LS0tLXx8ICAgICAgICBvICAgKiAgfHwtLS0tfHwgICAgICAqICB8fC0tLS18fCAgICAgICogIHx8LS0tLXx8ICAgbwogICAgfn4gICAgfn4gICAgICAgICAgICAgICB+fiAgICB+fiAgICAgICAgIH5+ICAgIH5+ICAgICAgICAgfn4gICAgfn4KICAgIFNhbnRhIENvdyBhbmQgaGlzIHJlaW4gY293cyBjYXVnaHQgaW4gYSBNb250YW5hIHNub3cgZmx1cnJ5CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX18KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXy8uLi5cICAqPT1cICAgICAgICBfX19fX19fX19fX19fX19fCiAgICAgICBfX19fX19fX19fIChfX18pICAgICAgICAgICAgICAgLzo6Ojo6OlwgICgvX1wpICAgICAvICAgICAgICAgICAgICAgIFwKICAgICAgL3wgICAgICAgICBgKDAgMCkgICAgICAgICAgICAgICB8Ojo6Ojo6Ol8gKG8gbykgICAgIHwgIE1vbywgTW9vLCBNb28gfAogICAgIC8gfCAgICAgICAgICAgXCAvICAgICAgICAgICAgICAvLS0tLS0rLSstLS0gXCAvICAgICAvXF9fX19fX19fX19fX19fX18vCiAgICAqICB8fHwtLS0tfHx8LS8gKiAgICAgICAgICAgICAgLyB8ICAgIHwgfCAgIHwgMCAgX19fLwogICAgICAgfHx8ICAgIHx8fCAgICAgICAgICAgICAgICAgKiAgfCBfICB8X3wgXyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAtLStfKy0gfHwKIFJ1ZG9scGggdGhlIFJlZC1Ob3NlZCBDb3cgICAgICAgICAgIC0tICAgICAgICAtLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB8XyAgICAgfCAgfF8KICAgICAgICAgICAvXCAgICAgICAgICAgICAgICAgICAgICAgfF9fX198ICAgIHxfX19ffAogICAgICAgICAgLyBPXCAgICAgICAgICAgICAgICAgICAgICAgICBTYW50YSBDb3dzCiAgICAgICAgIC8gLCAgXAogICAgICAgIC8gIE8gICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXyAtIH4gfiB+IH4gfiB+IH4gfiAtCl8KICAgICAgICAtLyAsICBcLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICAgIHx+ICAgICAgfH4gICAKXAogICAgICAgIC8gIE8gICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHx+ICBvfCAgIHx+IG98ICAgIAp8CiAgICAgICAvLCAgICAsICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgXCAgICBvfCAgICAgICBvfCAgICAgICAgCi8KICAgICAgLyBPICAgIE8gICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgIFwgICAgICAgICAgICAgICAgICAgIC8KICAgICAgLS8gICwgICAgIFwtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICAvIH4gfiB+IH4gfiB+IH4gfiB+CiAgICAgIC8gICBPICAgLCAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICAvICAgICAgICAgIC4KICAgICAvICAsICAgICBPICAsXCAgKF9fKSAgICAgICAgICAgICAgICAgLyogICAgICpcICAgLyAgICAgICAgIC4vXC4KICAgIC8gICBPICAgLCAgICBPIFwgKG9vKSAgICAgICAgICAgICAgICAvXCAgICAgICAvXCAgICAgICAgICAgLi8vLlwuCiAgIC8gICAgICAgIE8gICAgICAgXC1cLyAgICAgICAgICAgICAgICAqKioqICAgICAqKioqICAgICAgICAgLi8vL1xcXC4KICAgLS0tLS0tLS0tLS0tLS0tLS0tfHwgICAgICAgICAgICAgICAgIChvbykgICAgIChvbykgICAgICAgICAvLy8vXFxcXC4KICAgICAgICAgICB8fC8gfHwtLS0tfHwgICAgICAgICAgLy0tLS0tLS1cLyAgICAgICBcLy0tLS0tLS1cICAgICB8fAogICAgICAgICAgIHx8ICB+fiAgICB+fiAgICAgICAgIC98ICAgICAgfHwgICAgICAgICB8fCAgICAgIHxcICAgIH5+CiAgIE1lcnJ5IENvdy1yaXN0bWFzICAgICAgICAgICAqICB8fC0tLS18fCAgICAgICAgIHx8LS0tLXx8ICAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fiAgICB+fiAgICAgICAgIH5+ICAgIH5+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENocmlzdG1hcyBDb3dvbHMKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyAgTyAgTwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPICAgICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgIE1vb3J5IENvd3Jpc3RtYXMhICAgICAgICAgICAgICAgICBfX18gICAgICAgICAgICAgICAgL3xcCiAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX198ICB8X19fX18gICAgICAgICAvfHxvXAogICAgICAgICAgICAgICAgICAgICAgICAvX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXCAgICAgICAvfG98fHxcCiAgICAgIH4gICAgICAgICAgICAgICAgL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXCAgICAgL3x8fHx8b3xcCiAgICAgICB+fiAgIyMjIyAgICAgICAgICB8fCAgIHwgICB8fHx8fHx8fHx8fHwgICB8ICAgfHwgICAgICAvfHxvfHx8fHx8XAogICAgICAgICAgfihvbykgICAgICAgICAgfHxfX198X19ffHx8fHx8fHx8fHx8X19ffF9fX3x8ICAgICAvfHx8fG98fHx8fHxcCiAgICAvLS0tLS0tLVwvICAgICAgICAgICB8fCAgIHwgICB8fHx8fHx8fHx8fHwgICB8ICAgfHwgICAgL3xvfHx8fG98fHxvfHxcCiAgIC8gfCAgICAgfHwgICAgICAgICAgICB8fF9fX3xfX198fHx8fHx8fHx8fHxfX198X18gfHwgICAgICAgICAgfCB8CiAgKiAgfHwtLS0tfHwgICAgICAgICAgICB8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHxvb29vb29vb29vfCB8b29vb29vbwogb29vb35+b29vb35+b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb28KIAogCiAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCAgICAgICAgICAgICAgICAgICAgICAgICAvXAogICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAvXCAgL1wvICBcCiAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgLyAgXC8gLyAgICBcL1wKICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIC8gICAgICAgICAgICBcIFwKICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgfF9fX19fX19fX19fX19fX19fX19fX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXC8KICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICAgICAgICAgICAgICAgICAgby1AQAogICB8X19fX19fX19fX19fX19fX19fX19fX3wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbmltYWxpc3QgRGVhZCBDb3cKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgIE1hcmsgUm90aGtvIENvdwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAovPWA9fn5+IyZAfkAmKXx8fD48PD48Pjw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx8fX17fXt9eygpICgmKSAKfn5+fiMqKioKICAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgICAKI1wqKn5+Ly8/PD4uK3xAQEBcLy0tLV9fXwogICAoIG9vIHwgICggb28gfCAgKCBvbyB8ICAoIG9vIHwgICggb28gfCAgKCBvbyB8ICAgIApcfH19e317Lz88Pi4rfEBAKiYoKiRAKSkoCiAgIC9cX3wgfCAgL1xffCB8ICAvXF98IHwgIC9cX3wgfCAgL1xffCB8ICAvXF98IHwgICAgCnxAIylAKCYqKSgkKkkhPyQ+QCR8JHwkfCQKIC0gLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgICAgICAgSmFja3NvbiBQb2xsb2NrIGNvdwogICAoIG9vIHwgICggb28gfCAgKCBvbyB8ICAoIG9vIHwgICggb28gfCAgKCBvbyB8CiAgIC9cX3wgfCAgL1xffCB8ICAvXF98IHwgIC9cX3wgfCAgL1xffCB8ICAvXF98IHwgICAgICAgIApfX19fX19fX19fX19fX19fX19fXwogLSAtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgIHwgICAgICAgICAgCihfXykgICB8CiAgIChfXykgfCAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgKF9fKSB8ICAoX18pIHwgICAgICAgICB8ICAgICAgICAgICAob28pICAKfAogICAoIG9vIHwgICggb28gfCAgKCBvbyB8ICAoIG9vIHwgICggb28gfCAgKCBvbyB8ICAgICAgICAgfCAgICAvLS0tLS0tLVwvICAgCnwKICAgL1xffCB8ICAvXF98IHwgIC9cX3wgfCAgL1xffCB8ICAvXF98IHwgIC9cX3wgfCAgICAgICAgIHwgICAvIHwgICAgIHx8ICAgIAp8CiAtIC0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgfCAgKiAgfHwtLS0tfHwgCnwKICAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgKF9fKSB8ICAoX18pIHwgIChfXykgfCAgICAgICAgIHwgICAgIH5+ICAgIH5+ICAgIAp8CiAgICggb28gfCAgKCBvbyB8ICAoIG9vIHwgICggb28gfCAgKCBvbyB8ICAoIG9vIHwgICAgICAgICB8IENlY2kgTidlc3QgUGFzICAKfAogICAvXF98IHwgIC9cX3wgfCAgL1xffCB8ICAvXF98IHwgIC9cX3wgfCAgL1xffCB8ICAgICAgICAgfCAgICBVbmUgQ293ICAgICAgCnwKIC0gLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICBBbmR5IFdhcmhvbCBDb3cgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmUgTWFyZ3JpdHRlIENvdwogCiAKICAgICAgICAgICAgIG9vICAgICAgICAgICAgICAgICAgICAtLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcLwogCiAKICAgICAgICBjb3cgYnkgbmlnaHQgICAgICAgc2xlZXBpbmcgY293IGJ5IG5pZ2h0ICAgICAgICBDaGVzaXJlIENvdwogCiAKICAgICAgICAgICAgICAgICAgICAgIElJCiAgICAgICAoIE1PT09PT08gISApICBJSVwKICAgX19fX19fX19cICAgLyAgICAgIElJICsgICAgKF9fKSAuLm9vKCBIZXksIHRoZXJlJ3MgYSBjb3cgZHJpdmluZyB0aGF0IGNhciEKKQogIHxcICAgICAgICBgdicgXCAgICAgICsgSUkgICAoMDApCiAgfCBcX19fX19fX198X19fX1wgICAgIFxJSVwgICBcLy0tLS0tLS1cCiAgfCAoICAgICAoIEAgQCApICApICAgICBJSSArICAgIHx8ICAgIHx8XCAgICAgIChfXykgLi5vbyAoIEhvdyBjYW4gaGUgICAgICkKICB8XHxfX19fX19cX09fL19fX3wgICAgICArIElJICAgfHwtLS0tfHwgKiAgICAgKG9vKSAgICAgICAgKCBhZmZvcmQgdGhhdD8gKQogIHwgXF9fX19fX19fX19fX19fX1wgICAgICBcSUlcICB+fiAgICB+fiAgICAgICAgXC8tLS0tLS0tLVwKICBcIChPT18jIyMjIyMjIyMjX09PKSAgICAgIElJICsgICAgICAgICAgICAgICAgICAgIHx8ICAgIHx8IFwKICAoXChfX19fX1tQSElMXV9fX19fKSAgICAgICArIElJLS0rLS0rLS0rLUlJLSstLSstLSstLUlJKy0tKy0tKy0tK0lJLS0rLS0rLQogICAgICAoXykgICAgICAgIChfKSAgICAgICAgICBcSUkgICAgICAgICAgSUkgICAgICAgfn4gSUkgfn4gICAgICAgSUkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElJLS0rLS0rLS0rLUlJLSstLSstLSstLUlJKy0tKy0tKy0tK0lJLS0rLS0rLQogCiAgICAgICAgICAgICAgICBXaGF0IGNvd3MgdGhpbmsgd2hlbiBwZW9wbGUgTU9PIGF0IHRoZW0KIAogCiAgICAgICAgICAgIC9cXCAgIH4gICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAvX19cXCAgfCAgICAgICAgICAgICAgICAgKCBvbyAgXyAgICAgICAgICAgICAgICAgICAgICAgKG9vKQogICAgICBfICAgIChvIG8pICB8ICAgICAgICAgICAgICAgICAvXF9ffCggKSBfICAgICAgICAgICAgICAgICAgIC8tXC8tXAogICAgIC8gXCAgIC9cXy9cIC8gICAgICAgICAgICAgICAgIHwgIFw9PS8vPShfKSAgKlBPVyEqICAgICAgICAgLyAgICAgIFwKICAgICAgIHwgL3xJICAgSXwgICAgICAgICAgICAgICAgICB8ID09PT0gICAgICAgICAgICAgICAgICAgICAgIHwgICAgICB8CiAgICAgICB+LyB8SSAgIEl8ICAgICAgICAgICAgICAgICAgfCAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfAogICAgICAgfCAgfEkgICBJfCAgICAgICAgICAgICAgICAgL3wgIF8gXCAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICBcCiAgICAgICB8ICB8SSAgIEl8ICAgICAgICAgICAgICAgLyAgLyAvIFwgXCAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19cCiAgICAgICB8ICB8X19fX198ICAgICAgICAgICAgICogICAgfHwgICB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgXFwKICAgICAgICAgICB+ICAqfiAgICAgICAgICAgICAgICAgICB8fF8gIHx8XyAgICAgICAgICAgICAgICAgICAgICAgICAoXykKIAogY293IGdpdmluZyBmb3JnaXZlbmVzcyAgICAgICAgIE1vby1oYW1pZCBBbGkgICAgICAgICAgICAgICAgICAgQ293IEJlbGwuCiAKIAogICAgICAgICAgICAgKCEhKSAgICAgICAgICAgICAgICAgICAgICAgIF8vXF8gICAgICAgICAgICAgICAgICAgICAgIFxfXAogICAgICEhISEhISEhKG9vKSAgICAgICAgICAgICAgICAgX19fX19fXyhvbykgICAgICAgICAgICAgIF9fX19fX19fXyhvbykKICAgICEvfCAgICAgICBcLyAgICAgICAgICAgICAgICAgL3wgICAgICAgXC8gICAgICAgICAgICAgIC98IEZlcnJhcmkgXC8KICAgIS8gfF9fX19fX3x8ICAgICAgICAgICAgICAgICAvIHxfX19fX198fCAgICAgICAgICAgICAgLyB8X19fX19fX198fAogICAqICB8fCAgICAgfHwgICAgICAgICAgICAgICAgKiAgfHwgICAgIHx8ICAgICAgICAgICAgICogIHx8ICAgICAgIHx8CiAgICAgIH5+ICAgICB+fiAgICAgICAgICAgICAgICAgICB+fiAgICAgfn4gICAgICAgICAgICAgICAgfn4gICAgICAgfn4KIExhc3Qgb2YgdGhlIE1vby1oaWNhbnMgICAgICAgIE1heWZsb3dlciBjb3dzICAgICAgICAgICAgIFNwb3J0cyBDb3cKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICAgICAgICAgICAvLS0tLS0tLS0tLS0tLS0tIFwvICAgICAgICAgICAgICAvIC0tLS0tLS0tLS0tLS0gXC8KICAgICAgICAgICAvICggIVMgTSBUIFcgVCBGISApICAgICAgICAgICAgICAgLyAoICAgfDcgOCA5ICt8ICApCiAgICAgICAgIC8gICggICstKy0rLSstKy0rLSsgICkgICAgICAgICAgICAgKiAgKCAgIHw0IDUgNiAtfCAgKQogICAgICAgICogICAoICArLSstKy0rLSstKy0rICApICAgICAgICAgICAgICAgICAoICB8MSAyIDMgWHwgICkKICAgICAgICAgICAgICggKy0rLSstKy0rLSstKyApICAgICAgICAgICAgICAgICAgICggfEMgMCA9IC98ICkKICAgICAgICAgICAgICAoKy0rLSstKy0rLSstKykgICAgICAgICAgICAgICAgICAgICB+LS0tLS0tLS0tfgogICAgICAgICAgICAgICB8fCAgICAgICAgfHwgICAgICAgICAgICAgICAgICAgICAgIHx8ICAgICAgIHx8CiAgICAgICAgICAgICAgIHx8ICAgICAgICB8fCAgICAgICAgICAgICAgICAgICAgICAgfHwgICAgICAgfHwKICAgICAgICAgICAgICAgfn4gICAgICAgIH5+ICAgICAgICAgICAgICAgICAgICAgICB+fiAgICAgICB+fgogICAgICAgICAgICAgICAiQ09XTEVOREFSIiAgICAgICAgICAgICAgICAgICAgICAgICJDT1dDVUxBVE9SIgogCiAgICAvXAogICAvICBcICAgICAgICAgX18gICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fXyAgIC0tLS0tLQogIERPQ1RPUiAgICAgIF8vX19cXyAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX3wgfCAgIHw9PT09fAogICBNT08vICAgICAgLz0oT08pICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbykgKiAgIHwgICB2fAogICAgXC8gICAgLS0vPT0tXC89PVwgICAgICAgICAgICAgICAgICAgLy0tLS0tLS1cLyAgICAgIHx+fiAqfAogICAgICAgLyB8ICBcPT18fCAgXD09XCAgIC8vLyAgICAgICAgICAvIHwgICAgIHx8ICAgICAgIC0tLS0tLQogICAgICAqICB8fC18PT18fCAgIFw9PVwvPT0vICAgICAgICAgICogIHx8LS0tLXx8CiAgICAgICAgIH5+IC8vL35+ICAgICBcPT09LyAgICAgICAgICAgICAgfn4gICAgfn4KICAgICAgICBHYWxsaWZyZXlhbiBDb3cgICAgICAgICAgICAgICBTdHJhaWdodCBvdXQgb2YgQ293bGxlZ2UKIAogCiAgICAgICAgICAoX18pCiAgICAgICAgICAob28pCiAgIC8tLS0tLS0tXC8gICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIwogIC8gfCAgICAgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFwgICAgICAgLy8KICogIHx8LS0tLXx8XCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXCAgICAgLy8KICAgIH5+ICAgIH5+IFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAtLS0gLwogICAgICAgICAgICAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8CiAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwKICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfAogICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAvIFxfLyAgXCAgICAgICAgKF9fKQogICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgXFwgICAgPC0tKHh4KS0tIy0KICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBcXCAgICAgICAvXAogICBfX19fX19fX19fX1x8L19fX19fX19fX19fCiAgICAgICAgIENvdy1hLWZsb3dlciAgICAgICAgICAgICAgICAgQ293IGF0IGJ1dGNoZXIncyBwYXJ0eQogCiAKICAgICAgICAgIF9fXy0tLS0tLS0tX19fICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAvIC4gICAgLiAgIC4gICBcICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICB8XC8gICAuICAgIChfXykgICAgLiAgXC98ICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+b29+fn5+fn5+fn5+fn4KICAgIHx8IC4gICAgLiAgKG9vKSAuICAgLiAgfHwgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgfC9cICAgLiAgICAgXC8gICAgLiAgIC9cfCAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgXF9fXyAuICAgIC4gIF9fXy8gICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgICAgICAgLS0tLS0tLS0tICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgICAgIENvdyBpbiBhIGhhZ2dpcyAgICAgICAgICAgICAgICAgICBDb3cgb24gdG9wIG9mIEJlbiBOZXZpcwogCiAKICAgICAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAgICAgICAgfCAoX18pICAoX18pICAoX18pICAgKF9fKSAgfCAgICAgICAgICAgICAgICAgICAqICAgICAgICAoX18pCiAgICAgICAgfCAoIG9vICAoIG9vICAoIG9vICAgKCBvbyAgfCAgICAgICAgICAgICAgICAgICAgXCAgICAgICAob28pCiBfX19fX19ffCAvXF98ICAvXF98ICAvXF98ICAgL1xffCAgfF9fX19fX19fICAgICAgICAgICAgIFwtLS0tLS0tXC8KIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgIHx8CiB8ICAgX19fX18gICAgICAgICAgICAgICAgICAgICAgICBfX19fXyAgICB8ICAgICAgICAgICAgICB8fC0tLS18fAogfF9fX3wgICB8X19fX19fX19fX19fX19fX19fX19fX19ffCAgIHxfX19ffCAgICAgICAgICAgICAob28pICAob28pCiAgICAgfF9fX3wgICAgICAgICAgICAgICAgICAgICAgICB8X19ffAogICAgICAgICAgICAgICBDb3ctcG9vbGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sbGVyc2NhdGluZyBjb3cKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfXyAgICAgICAgICAgICAgIG8gb28gbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICBcfHwvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgIChfX18pCiAgICAgIChfXykgICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgIChvIG8pCiAgICAgICggICkgICAgICAgICAgICAvLS0tLS0tLVwvICAgICAgICAgLy0tLS0tLS1cLyAgICAgICAgLyQkJCQkJCRcIC8KICAgICAoIC8qICkgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgIC8gfCAgICAgfHwgICAgICAgIC8gJCQkJCQkJHxPCiAgICAgIHwgIHwgICAgICAgICAgKiAgfHwtLS0tfHwgICAgICAgICogIHx8LS0tLXx8ICAgICAgICogIHx8dy0tLXx8CiAgICAgIH4gIH4gICAgICAgICAgICAgfn4gICAgfn4gICAgICAgICAgIH5+ICAgIH5+ICAgICAgICAgIH5+ICAgIH5+CiAgICBEYWlyeS1BaXIgICAgICBFYXN0IEluZGlhbiBDb3cgICAgICAgSW5qdW4gQ293ICAgICAgICAgIENhc2ggQ293CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICAgICAKKQogICAgICAgICAgICAgICAoX19fKSAgICAgICAgUFJJU09OIyAgIyAgIyAgIyAgIyAgICAgICAgICAgICAgICAgICAgICAgICB8fHwKfHx8CiAgICAgICAgICAgICAgIChvIG8pICAgICAgICAjICAjICAjICAjICAjKF8jKSAjICAgICAgICAgICAgICAgICAgICAgICAgIChPICAKTykKICAgLy0tLS0tLS0tLS0tLVwgLyAgICAgICAgICMgICMgICMgICMgICMobyMpICMgICAgICAgICAgICAKLy0tLS0tLS0tLS0tLVxfX18vCiAgLyB8ICAgICAgICAgICAjLSMgICAgICAgICAjICAjLy0jLS0jLS0jLVwjICAjICAgICAgICAgICAgLyB8ICAgICAgICAgICB8fHwKICogIHwgICAgICAgICB8fHwgICAgICAgICAgICMgICMgfCMgICMgICN8fCMgICMgICAgICAgICAgIC8gIHx8ICAgICAgICAgIHx8fAogICAgfHwtLS0tLS0tLXx8fCAgICAgICAgICAgIyAqIyB8Iy0tIy0tI3x8IyAgIyAgICAgICAgICAqICAgfHwtLS0tLS0tLS0tfHx8CiAgICB+fiAgICAgICAgIH5+ICAgICAgICAgICAjICAjIH4jICAjICAjfn4jICAjICAgICAgICAgICAgICB+fiAgICAgICAgICAgfn4KICAgT3J2aWxsZSBSZWRlbmNvdyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgQmFra2VyIENvd3MKIAogCiAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgLyAgIG9vICAgICAgX19fX19fICAgICAgICAgICAgICAgICAgICAgICAvICAgQEAgICAgICBfX19fX18KICAgICAgICAgfCAgL1xffCAgICAgfCAgICAgIFwgICAgICAgICAgICAgICAgICAgICB8ICAvXF98ICAgICB8ICAgICAgXAogICAgICAgICB8ICB8X19fICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgIHxfX18gICAgIHwgICAgICAgfAogICAgICAgICB8ICAgLS0tQCAgICB8X19fX19fX3wgICAgICAgICAgICAgICAgICAgIHwgICAtLS1AICAgIHxfX19fX19ffAogICAgICAqICB8ICB8ICAgLS0tLSAgIHwgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgIHwgICAtLS0tICAgfCAgICB8CiAgICAgICBcIHwgIHxfX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgfF9fX19fCiAgICAgICAgXHxfX19fX19fX3wgICAgICAgICAgICAgICAgICAgICAgICAgKl9fX18vfF9fX19fX19ffAogCiAgICAgICAgICAgICAgQ29tcHVDb3cgICAgICAgICAgICAgICAgICAgICAgQ29tcHVDb3cgQWZ0ZXIgYW4gQWxsLW5pdGVyCiAKIAogCiAgICAgICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgICAvICAgLS0gICAgICBfX19fX18gICAgICAgICAgICAgICAgICAgICAvICAuXC8uICAgICBfX19fX18KICAgICAgICAgICB8ICAvXF98ICAgICB8ICAgICAgXCAgICAgICAgICAgICAgICAgICB8ICAvXF98ICAgICB8ICAgICAgXAogICAgICAgICAgIHwgIHxfX18gICAgIHwgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgIHxfX18gICAgIHwgICAgICAgfAogICAgICAgICAgIHwgICAtLS1AICAgIHxfX19fX19ffCAgICAgICAgICAgICAgICAgIHwgICAtLS1AICAgIHxfX19fX19ffAogICAgICAgICAgIHwgIHwgICAtLS0tICAgfCAgICB8ICAgICAgICAgICAgICAgICogIHwgIHwgICAtLS0tICAgfCAgICB8CiAgICAgICAgICAgfCAgfF9fX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgfCAgfF9fX19fCiAgICAgKl9fX18vfF9fX19fX19ffCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcfF9fX19fX19ffAogCiAgICAgQ29tcHVDb3cgQXNsZWVwIGF0IHRoZSBLZXlib2FyZCAgICAgICBDb21wdUNvdyBEaXNjb3ZlcnMgQnVnIGluIENvbXBpbGVyCiAKIAogICAgICAgXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXAogICAgICAgIFxcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFwKICAgICAgICAvIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gXAogICAgICAgLyAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgXAogICAgICAgXCAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgIFwKICAgICAgICBcICAgIFwoX18pICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgXChfXykKICAgICAgKi0tPiAgICAob28pICAgICAgICAgICAgICAgICAgICAgICAgICAqLS0+ICAgIChvbykKICAgICAgICAvICAgIC8gXC8gICAgICAgICAgICAgICAgICAgICAgICAgICBvIC8gICAgLyBcLwogICAgICAgLyAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgIC8KICAgICAgIFwgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvICAgXCAgIC8KICAgICAgICBcIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgLwogICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gICAgLy8KIAogICBCLTIgU3RlYWx0aCBCb21iZXIgY293ICAgICAgICAgU3RlYWx0aCBjb3cgb24gYm9tYmluZyBydW4KIAogCiAgIF9fXwogIC8gICBcICAgICAgICggICAgKSAgIEhhcHB5CiB8ICAgICBcICAgICAgIHwtLXwgICAgTW9vb3NpYyEgICAgICAgICAgICAgICAoX18pCiB8ICAgICAgfCAgICAgIFwgIC9fXyAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiArLS0tLS0tLS0tLSsgX19vb3wgXCAgICAgICAgICAgICAgICAgIC8gICAgICAtXC8gICAgICAgICAgICAgICAgICAgKF9fKQogfFN0ZWlud2F5ICZ8XyAgXC98ICB8ICAgICAgICAgICAgICAgIC8gICAgICAgfHwgICAgICAgICAgICAgICA+LS0tLShvbyktLS0tPgogfF9fXyBTb25zIF9fX3xfLyB8X198ICAgICAgICAgICAgICAgKiAgLS0tLS0tfHwgICAgICAgICAgICAgLy0tLS0tLS1cLwogfCAgIHwgICAgICAgIHwgICAvIC8gICAgICAgICAgICAgICAgICAgfCAgICAgfn4gICAgICAgICAgICAvIHwgICAgIHx8CiBvICAgbyAgICAgICAgbyAgfCB8ICAgICAgICAgICAgICAgICAgICB8fC0tLS0gICAgICAgICAgICAgKiAgfHwtLS0tfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+ICAgICAgICAgICAgICAgICAgICB+fiAgICB+fgogIENob3BpbidpbmcgQ293ICAgICAgICAgICAgICAgICAgICAgICAgVGVYIGNvdyAgICAgICAgICAgIFN0ZXZlIE1hcnRpbidzIGNvdwogCiAKICAgICAgICAgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCiAgICAgICAgICAgICAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgfCAgRiBSIEUgRCAnIFMgICBTIEEgTCBPIE8gTiAgfAogICAgICAgIF9fX19fXyAgICBfX19fX19cLyAgICAgICAgICAgICAgKF9fKXwgICAgICAgICAgKy0tLS0tKyAgICAgICAgICAgIHwKICAgICBfX3xfX19fX19cX18vX19fXy9cXFt9ICAgICAgICAgICAgICh4eCl8ICAgICAgICAgIHwgX19fIHwgICAgICAgICAgIAp8KF9fKQogICAgLyAgIC0tLSAgICAgICAgICAgICBcXCAtLS0gICAgICAgICAgIFwvIHwgICAgICAgICAgfC89fD1cfCAgICAgICAgICAgCnwob28pCiB8W10gIC8gICAgIFwgXCAgICAgIC8gICAvICAgICBcICAgICAgICAgICAgfCAgICAgICAgICB8PT18PT18ICAgICAgICAgICAgfApcLwogICAgIHwgICBAICAgfCBcX19fXy8gICB8ICAgQCAgIHwgICAgICAgICAgIHwgICAgICAgICAgfD09fD09fCAgICAgICAgICAgIHwKICAgICAgXCAgICAgLyAgICAgICAgICAgIFwgICAgIC8gICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgIC0tLSAgICAgICAgICAgICAgICAtLS0KICAgICAgICAgICAgICBDT1ctQVNBS0kgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3dzIGJlaGluZCBiYXJzCiAKICAgICAgICAgICAgICAgICAgX18gX19fX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgX18gX19fX19fX19fCiAgICAgICAgICAgICAgICAgKCAgViAgXyAgIF8gIClfICAgICAgICAgICAgICAgICAgICAgICAgKCAgViAgICAgICAgIClfCiAgICAgICAgICAgICAgICAgLyAgICAoIFxvLyApICAgKSAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgLy8vLyAgICAgKQogICAgICAgICAgICAgICAgKCAgICAgIFxfT18vICAgIFwgICAgICAgICAgICAgICAgICAgICAgKCAgICAgKC0tLSkgICAgIFwKICAgICAgICAgICAgICAgICBcICAgICAgL09cICAgICAgKSAgICAgICAgICAgICAgICAgICAgICBcICAgIHxtb298ICAgICAgKQogICAgICAgICAgICAgICAgICAoICAgIEAgICBAICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAoICAgKC0tLSkgICAgIC8KICAgICAgICAgICAgICAgICAgIChfX19fXy9cX19fXykgICAgICAgICAgICAgICAgICAgICAgICAgIChfX19fXy9cX19fXykKICAgICAgICAgICAgICAgICAgICAgICAgbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbwogICAgICAgICAgICAgICAgICAgICAgIG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8KICAgICAgICAgICAgICAgICAgICAgbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbwogICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfXykKICAgICAgICAgICAgLy0tLS0odXUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy0tLS0odXUpCiAgICAgICAgKl9fL3wgICAgIFxvPT1zICAgICAgICAgICAgICAgICAgICAgICAgKl9fL3wgICAgIFxvPT1zCiAvXCgqIFx8IF9fIFxcLS0tLT09cyAgXCkpICAgICAgICAgICAgICAvXCgqIFx8IF9fIFxcLS0tLT09cyAgXCkpCiAgICAgIHwvKSkqICB8IFwgICApKlx8fC8pKS8vICAgICAgICAgICAgICAgIHwvKSkqICB8IFwgICApKlx8fC8pKS8vCiAgICAgICAgICAgICB+ICB+XC8tLVwqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICB+ICB+XC8tLVwqKQogICAgICAgIERyZWFtaW5nIENvdyAgICAgICAgICAgICAgICAgICAgICAgICBDb3cgRHJlYW1pbmcgb2YgU2lsYWdlCiAKIAogICAgICAgICAgICAgKF9fKSAgICAgIG8gICBvICAgICAgICAgICAgICAgKiAgICAgICAgKF9fKQogICAgICAgICAgICAgKG9vKSAgICAgbyAgbyAgICAgICAgICAgICAgICAgIFwgICAgICAgKE9PKQogICAgICAvLS0tLS0tLVwvPT1vICBvICAgICAgICAgICAgICAgICAgICAgICBcLS0tLS0tLVwvCiAgICAgLyB8ICAgICB8fCAgX19fXyAgICAgICAgICAgICAgICAgICAgW10gICB8ICAgICB8fAogICAgKiAgfHwtLS0tfHwgIHxfX3wgICAgICAgICAgICAgICAgICAgKC9cKXM9PXwtLS0tfHwKICAgICAgIH5+ICAgIH5+ICAgICAgICAgICAgICAgICAgICAgICAgIC9fX1wgICB+ICAgIH5+CiAgIENvdyBibG93aW5nIGJ1YmJsZXMuICAgICAgICAgICAgIENvdyBraWNraW5nIG92ZXIgbGFudGVybiB0aGF0IHN0YXJ0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgR3JlYXQgQ2hpY2FnbyBGaXJlIG9mIDE4ODUuCiAKICAgICAgICAgICAgICAgICBfXy8vICAgICBcX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxfX3xcCiAgICAgICAgIC9+fn4pfn4vICAgKSAgICAgKCAgIFx+fih+fn5cICAgICAgICAgICAgICAgICAgICAgICAgIHwgMDAgfAogICAgICAgIC8oICAgIF8oICB+LyAgICAgICBcfiAgKV8gICAgKVwgICAgICAgICAgICAgICAgICAgXC0tLTwoIC0tICk+LS0tLwogICAgICAgLyAgXCAvLyAgfCAvICAgICAgICAgXCB8ICBcIC8gIFwgICAgICAgICAgICAgICAgICAgIFwgICAgfC0tfCAgICAvCiAgICAgIC8gICAgXCAgIE8vICAgICAgICAgICBcTyAgIC8vICAgIFwgICAgICAgICAgICAgICAgICAgIFxfXy8gICAgXC0tLwogICAgICggICAgKS9cICAgICAgICAgICAgICAgICAgIC8vXCggICAgKSAgICAgICAgICAgICAgICAgICAgICggICAgICApCiAgICAgL1wgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIFwgIC9cICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwKICAgIC8gLyAvVyAgICAgICAgICBDT1ctVE9XICAgICAgICAgIFdcIFwgXCAgICAgICAgICAgICAgICAgICAtLS0tLS0tLQogICogIFwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkvICAqICAgICAgICAgICAgICAgICAgICB8fCAgfHwKICAgICAgIFxfICAgICAgICAgICAgICAgICAgICAgICAgICAgXy8vICAgICAgICAgICAgICAgICAgICAgICAgbm4gIG5uCiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ICAgICAgICAgICBDb3cgYWZ0ZXIgbGVhcm5pbmcKdGhhdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHZpY2UgcHJlc2lkZW50IGhhcwphCiAoX18pICAgICAoX18pICAgICAgICAgKF9fKSAoX18pICAgICAgICAgICAgICAgICAgICAgICBsb3dlciBJUSB0aGFuIGhlIGRvZXMKIChvbykgICsgIChvbykgICAgICA9ICAob28pIChvbykKICBcLyAgICAgICBcLyAgICAgICAgICAgXC8gICBcLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCtvKQogKF9fKSAgICAgKF9fKShfXykgICAgIChfXykgKF9fKSAoX18pICAgICAgICAgICAgICAgICAvLS0tLS0jLS0tLS1cJwogKG9vKSAgKyAgKG9vKShvbykgID0gIChvbykgKG9vKSAob28pICAgICAgICAgICAgICAgIC8gfCBDb3dudWNrc3x8ICBcCiAgXC8gICAgICAgXC8gIFwvICAgICAgIFwvICAgXC8gICBcLyAgICAgICAgICAgICAgICAgICB9fS0tLS0tLS0tfX0gICBcIG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09ICAgICAgICA9PSAgICAtLQogICAgICAgICAgICBDb3dudGluZy4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBjb3cgcGxheXMgaG9ja2V5CiAKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbyAgL2AnXCAgLgogICAgICAgICAgICAgIChfXykgICBNT08hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgIC8gICAgLi8gXC4uCiAgICAgICAgICAgICAgKG9vKSAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vICAgLicgICAgICBcLgogICAgICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLyAgICAvICAgIC4uLyAgICBcCiAgICAgIC8gfCAgICAgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4vICAgICAuLyAgIC4vICAgICAgICBcCiAgICAgKiAgfHwtLS0tfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLyAgICAgLi8gICAgICAgICAgICBcICAKXC4KIC0gLSAtLS0tLS0tfn4tLS0tfn4tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi8gICAgLi4vICAgICAgIC4uLyAgICAKXAogICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgLyAgICAgICAgIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgRWNoLWNvdyAgIChlY2hvKQogCiAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX18gICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICB+X19+ICAgLyAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgICAoLS0pcwotLS1tbW1tb29vb29vb09PT09PTyEKICAgICAgICAgIChvbykgICggTWlsayBpcyBsb2dpY2FsLiApICAgICAgICAgICAgICBfXyBcTy8vCiAgIC8tLS0tLS0tXC8gLS0nXF9fX19fX19fX19fX19fX18vICAgICAgICAgICAgICAvICAgPT1zKVxfX19fXwogIC8gfCAgICAgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLS0vfF8vLS0tLS0vICAgIE9PICAgICAgIENPVwogKiAgfHxXLS0tfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfF9fICAgICAgIF9fIElJICAgICBKT1lSSURFUwogICAgfn4gICAgfn4gICAgICAgICAgICAgICAgICAgICAgICAgIE8gTyBvICBvICAgLyAgXC0tLS0tLyAgXAogTXIgU3BvY2sncyBjb3cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9fLyAgICAgXF9fLwogCiAgICAgICAqICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAgIC4gICAgLAogICAgICAgICAgICAuICAgICAgICAgICAuICAgICAqICAgICAgICAuICAgICAgLgogICAgICAgICAgICAgICAgICAgICAgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICAgICAgICAgICBcICAgLyAgICAgICAgICwgICAgICAgIChfXykgICAsICAgICAgICwKICAgICAgICAgLSAgICogICAtICAgICAgICAgICAgICAgICggICAgICAgLiAgICAgIHwKICAgICAgIC4gICAvICAgXCAgICAgLCAgICAgICAuICAgICBcLyAgICAgLiAgICAgICAgLSAgIC0gICAgLgogICAgICAgICAgLiAgICAgICAgICAgICAgICAgICAgICAgLyBcXCAgICAgICAgLCAgICAgIHwKICAgICAgICAgLCAgICAgICogICAgICAgICAqICAgICAgLyAgIC9cXAogICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgIC9cXCAvICAgICAgIC4gICAgICAgICAgIC4KICAgICAgICAgICAqICAgICAgICAgICAuICAgICAgIC8gICBcXCAgICAgICAgICAgICAuICAgICAgICAgLgogICAgIF98XyAgICAsICAgLiAgICAsICAgICAgICAvICAgICAgICAgICAsICAgICAgKgogICAgICB8ICAuICAgICAsICAgICAgIC4gICAgICogICAgICAgICwgLiAgICAgICAgICAgLgogICAgICAgIC4gICAgLCAgICAgLiAgICAgICAgIC4gICAgICAgICAgICAuICAqICAgICAgICAgIC4KIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE1pbGt5IFdheQogCiAKICAgICAgICAgICAgICAgICAgICAgICBcICAvICAgICAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICAgICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAoX18pICAgIC9cICAgICAgICAgfCAgICBBdCB0aW1lcyBsaWtlcyB0aGVzZSB5b3UgICAgfAogICAgICAgICAgICAgICAgKG9vKSAgIE8gIE8gICAgICAgIHwgUkVBTExZIENvVmV0IGEgcHJvcGVyIHN1cmdlb24hIHwKICAgICAgICAgICAgICAgIF9cL18gICAvLyAgICAgICAgTyBcX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18vCiAgICAgICAgICAqICAgICggICAgKSAvLyAgICAgICBPCiAgICAgICAgICAgXCAgKFxcICAgIC8vICAgICAgIG8KICAgICAgICAgICAgXCggIFxcICAgICkgICAgICBvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICAgICAoICAgXFwgICApICAgL1wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9vKQogICBfX19bXF9fX19fXy9+fn5+fn5+XF9fLykgby0pX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9cL1wKICB8XF9fWz09PT09PT1fX19fX18vL19fX19fX19fKV9fXCAgICAgICAgICAgICAgICAgICAgICBDb2Nvd24gIChcPT0vKQogIFx8X19fX19fX19fX19fX19fLy9fX19fX19fX19fX198ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFw8Pi8KICAgICAgfHx8ICAgICAgfHwgLy98fCAgICAgfHx8CiAgICAgIHx8fCAgICAgIHx8IEAufHwgICAgIHx8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19fKSAgICAgIC9+fn5+flwKICAgICAgIHx8ICAgICAgXC8gIC5cLyAgICAgIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8tIC1cICAgICAvICBNVSAgLwogICAgICAgICAgICAgICAgICAuIC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICB+ICApIF9fL19fX19fXy8KICAgICAgICAgICAgICAgICAnLicuYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfT18vCiAgICAgICAgICAgICAgQ09XLU9QRVJBVElPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVkZGhhJ3MgQ293CiAKIAogICAgKF8gICAgICAgICAgICAgICAgIH4gICAgICAgICAtICAgICAgIF8pICAgICAgICAgICAgIC8gICAgICAgfgogICAgICAgICAgICggICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgfCAgPXMKIE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICoKICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIE8gICAgICAgIFwgICAgICBcICAgICAgIC0gIHwKICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgfAogICAgICAgICAtICAgICAgICAgICAgICAgICAgICAtICAgICAgICAgICAgICAgIHwKIAogKQogICAgICAgIENvdyBhZnRlciBvbmUgdG9vIG1hbnkgUGFuLUdhbGFjdGljIEdhcmdsZSBCbGFzdGVycy4KIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgICAgLS0tXwogKF9fKSBfX19fX19fX19fX19fX18qICAgICAgICAgICAgICAgICAob28pICAgICAgICAgICAgICAgL3wgICBcCiAoeHgpLVwgICAgICAgICAgIFwgICAgICAgICAgICAgLy0tLS0tLS1cLyAgICAgICAgICAgICAgIC8gfFwgICBcXyAoX18pCiAgXC8gLy1cX19fX19fX19fX19cLS1cICAgICAgICAvIHwgICAgIHwgICAgICAgICAgICAgICAgKiAgfHxcICAgICAob28pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogIC0tLS0tLSAgICAgICAgICAgICAgICAgICAgfn4gXF9fX18gXC8KICAgICAgICBCb25lbGVzcyBDb3cgICAgICBObyBsZWcgY293IChncm91bmQgYmVlZikgICAgVHdvIGxlZyBjb3cgKGxlYW4gYmVlZikKIAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob28pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfX18vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAvIFxcICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gICAvXFwgICAgICAgICAgICAgICAgICAgICAgICAgICBcIC8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvXFwgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CiAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAvICAgXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8LS0tLS0tLXwtLS0tLS0tPgogICAgICAgICAgICAgICAgICAgICAgICAvICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICAgfFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgIC8gICAgIHwgIFwgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ffF9fCiAgICAgICAgICAgICAgICAgIFxcICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwvIFwvCiAgICAgICAgICAgIC8gICAgICAgXFwgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwvIFwvCiAgICAgICAvICAgICAgICAgICAgICBcXF9fX1wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwvIFwvCiAgICAgICAgICAgICAvICAgICAgICAgIFxcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ffF9fCiAgICAgICAgICAgICAgICAvICAgICAgXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAvCiAgLyAgICAvICAgICAgICAgICAvICAgICAgICBcXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcIC98CiAgICAgICAgICAgICAvICAgICAgICAgICAgICAgIFxcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgViB8CiAgICAgICAgIC8gICAgICAgICAvICAgICAgICAgICAgXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICB8CiAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICBcXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICB8CiAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgIFxcICAgICAgICAgICAgICAgICAgICAgICAgICAgIFcgICBXCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFwKICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Tz09PT09PT09PT09ICAgICAgICBTdGljayBDb3cKc3VuYmF0aGluZwogICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gICAgICAgIGF0IE1hbGlidSB3ZWFyaW5nCmEKICAgICAgICAgTykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE8pICAgICAgICBzcGVjaWFsIGNvdwpiaWtpbmkuCiAgICAgICAgICAgICAgICAgICAgVGhlIGRyZWFkZWQgY293dGFwdWx0CiAKIAogICAgIChfXykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX18pICAgICAgICAgICAgKiogICAgICAgKChfXykpCiAgICAgKF9fKSAgICAgICAgICAgICAgIChfXykgICAgICAgICAgICAgKF9fXykgICAgICAgICAgICAgXFwgICAgICAoKG9vKSkKICAgICAob28pICAgICAgICAgICAgICAgKCAgKSAgICAgICAgICAgICAoICAgKSAgICAgICAgICAgICAgXFwtLS0tLS1cXC8vCiAgICB8IFwvIHwgICAgICAgICAgICAgKCAgLyopICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICB8fCAgICAgIHx8CiAgICB8ICB8ICAgICAgICAgICAgIHx8ICB8fCAgICAgICAgICAgIHwgICB8ICAgICAgICAgICAgICAgfHx8LS0tLXx8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX18pICAgICAgICAgICAgICAgfn5+ICAgIH5+fgogQ293cyBkb2luJyBpdCAgICAgIENvd3MgZG9pbicgaXQgICAgICAgICAgIFxfKiAgICAgICAgICAgICBDb3cgZHVyaW5nIGFuCiAgRlJPTlQgVklFVyAgICAgICAgICBCQUNLIFZJRVcgICAgICAgICBUT1AgVklFVyAgICAgICAgICAgICBFYXJ0aHF1YWtlCiAKIAogICAgICAgICAgICgoICAgICBfICBfICAgICAgICAgICAgICAgICAgICAgICAoX19fKSAgICAgICAgICAgICAgKF9fKQogICAgICAgICAgKCBEXCAgIChfKShfKV9fX18gICAgICAgICAgICAgICAgICAoMCAwKSAgICAgICAgICAgICAgKG9vKQogICAgX19fX19fX1xfX3wgfCBNT09UVl9fX18oICAgICAgICAgIC8tLS0tLS0tXF9PLS0tbW9vICAgICAgICAqLVwvLS0tLS0tLVwKICAgL3wgICAgIHx8ICAgXy9cX19fXy8gICAgICAgICAgICAgIC8gfCAgICAgfHwgICAgICAgICAgICAgICAvICB8fCAgICAgIHwgIFwKICAvIHx8X19fX3wgXC9+ICAgLyAgXCAgICAgICAgICAgICAgKiAgfHwsLS0tfHwgICAgICAgICAgICAgICogICB8fC0tLS0tfHwgIAoqCiAqICB8fCAgICB8ICAgICAgTyAgICBPICAgICAgICAgICAgICAgIH5+ICAgIH5+ICAgICAgICAgICAgICAgXC98KC8pKC9cKCwsLwogICAgfn4gICAgfiAgICAgICAgICAgICAgICAgICAgICAgICBSb21pZSBtb29lZC4uLiAgICAgICAgICB3aGlsZSBKdWxpZSBhdGUuCiAgICAgICJNb28tdmllIENhbWVyYSIgICAgICAgICAgICAgICAgKFRoZSBCYXJkJ3MgYmFybnlhcmQgaW5zcGlyYXRpb25zKQogCiAKICAgICAgICAgICAgICAgICAgICAgICAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnwKICAgICAgICAgICAgICBfX19fX19fICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKfAogICAgICAgICAgICAgLyBfX19fXyB8IHwgICAgICAgICAgICAgICAgICAgICAgIEFDTUUgTU9PLVZFUlMgICAgICAgICAgICAgICAgIAp8CiAgICAgICAgICAgIC8gLyhfXykgfHwgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnwKICAgX19fX19fX18vIC8gfE9PfCB8fCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKfAogIHwgICAgICAgICB8LS0tLS0tLXx8IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp8CiAofCAgICAgICAgIHwgICAgIC0ufHwgfF9fX19fX19fX19fX19fX19fX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCnwKICB8ICBfX19fICAgXCAgICAgICB8fF9fX19fX19fX3x8X19fX19fX19fX19fICB8ICAgICAgICAgICAgIF9fX18gICAgICBfX19fICAKfAogL3wgLyBfXyBcICAgfF9fX19fX3x8ICAgICAvIF9fIFwgICAvIF9fIFwgICB8IHwgICAgICAgICAgICAvIF9fIFwgICAgLyBfXyBcIAp8XAogXHx8IC8gIFwgfF9fX19fX19fX19fX19fX3wgLyAgXCB8X3wgLyAgXCB8X198IHxfX19fX19fX19fX3wgLyAgXCB8X198IC8gIFwKfF98LwogICAgfCAoKSB8ICAgICAgICAgICAgICAgICB8ICgpIHwgICB8ICgpIHwgICAgICAgICAgICAgICAgICB8ICgpIHwgICAgfCAoKSB8CiAgICAgXF9fLyAgICAgICAgICAgICAgICAgICBcX18vICAgICBcX18vICAgICAgICAgICAgICAgICAgICBcX18vICAgICAgXF9fLwogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIE1vby12ZXJzIGFyZSBoZXJlISIKIAogCiAgICAgICAgICAtLSAoX18pICAgICAgICAgICogICAgICAgIChfXykqICAgICAgICAoX18pKiAgICAgICAgKF9fKSogICAgICAgCihfXykKICAgKi0tLSAgICAtIChRUSkgICAgICAgICAgIFwgICAgICAgKG9vKSBcICAgICAgIChvbykgXCAgICAgICAob28pIFwgICAgICAKKG8tKQogICAtICAgXC0tLS0tLVwvICAgICAgICAgICAgIFwtLS0tLS0tXC8gfn5cLS0tLS0tLVwvIH5+XC0tLS0tLS1cLwp+flwtLS0tLS0tXC8KIC0gLSAtLS0gICB8ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgIC8vICB8ICAgICAgICAvLyAgfCAgICAgICAgLy8gIHwgICAKfHwKICAgLSAgIHx8KCktLXx8ICAgICAgICAgICAgICAgfHwtLS0tLS0rICAgIHx8LS0tLS0tKyAgICB8fC0tLS0tLSsgICAgfHwtLS0tfHwKICAgICAgIG9vICAgIG9vICAgICAgICAgICAgICAgfn4gICAgICAgICAgIH5+ICAgICAgICAgICB+fiAgICAgICAgICAgfn4gICAgfn4KIAogICAgICBSb2xsZXIgQ293ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvd3MgaW4gcG9sb25haXNlCiAKIAogICAgICAgICAgLS0tLS0tLS0tLS0tLS8KICAgICAgICAgICAgICAgICAgICAgIC8KICAgICAgICAgICAgICAgICAgICAgLwogICAgICAgICAgICAgICAgICAgIC8KICAgICAgICAgICAgICAgICAgLwogICAgICAgICAgICAgICAgIC8KICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiBTaGlwIGFycml2aW5nIHRvbyBsYXRlIHRvIHNhdmUgYSBkcm93aW5nIGNvdyAoYXBvbG9naWVzIHRvIEZyYW5rIFphcHBhKQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgLyAgICAgICAgICBfX19fCiAgICAgICAgICB8XC98ICAgICAgICAgICAgICAgICAgIHtfX199ICAgICAgICAgICAgICAgICBcX18vICAgICAgICAgXC8gKiAgXC8KICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgICAgKCAqICkgICAgICAgICAgICAgICAgICgtLSkgICAgICAgICB8IE8gIE8gfAogICAvLS0tLS0tLVwvIFYgICAgICAgICAgLy0tLS0tLS0tXFEvICAgICAgICAgIC8tLS0tLS0tLVwvICAgICAgICAgICBcICAgIC8KICAvIHwgICAgIHx8X198ICAgICAgICAgLyB8ICAgICAgfHwgICAgICAgICAgIC8gfCAgICAgfHwgICAgICAgICAgICAgIFwqKi8KICogIHx8LS0tLXwgICAgICAgICAgICAqICB8fC0tLS0tfHwgICAgICAgICAgKiAgfHwtLS0tfHwgICAgICAgICAgICAgICAtLQogICAgfn4gICAgfiAgICAgICAgICAgICAgIC0tICAgICAtLSAgICAgICAgICAgICAtLSAgICAtLSAgICAgICAgICAgIE1pbGthZWwKIENvdyBmcm9tIFZ1bGNhbiAgICAgU21va2luZyAxLWV5ZWQgY293ICAgIENvdyB3LyByYWJiaXQgZWFycyAgICAgIENvd2JhY2hldgogCiAKICAgICAgICAgICAgICAgICAgICAgICAgICgqKSAgICAgICAgICAgICAgICAgICgqKQogICAgKF9fKSAgICAgICAgICAgICAgICAgIH4gICAgICAgICAgICAgICAgICAgIH4gICAgICAgICAgICAgICAgKF9fKQogICAgKG9vKSAgICAgICAgICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBAKG9vKUAKICAgIFsuLl0gICAgICAgICAgICAgICAgICB8ICAgICAgPSAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIFsuLl1AQAogXCB8ICBVICAgICAgICAgICAoLSkgICAgIHwgICAgIHwgfCAgICAgICAgICAgIHwgKC0pICAgICAgICAgICAgIFUgIEBAQEAKICB8fCAgID09PF9cPT09PT0vX3xfX19fX189X19fX198PXxfX19fX19fX19fX189X198X19fX1w9PT09L18+PT0gICB8fAogIHx8ICAgKSAgfHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fCAgKCAgIHx8CiAgfHxfX18pPT18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8PT0oX19ffHwKICB8XD09PT18IHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwgfD09PT0vfAogIHwgIFwgIHwgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8ICAvICB8CiAgPSAgICogPSAgICAgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gICAgID0gKiAgID0KICAgICAgICAgICAgICAgICAgICBjb3dzIGhhdmluZyBjYW5kbGVsaWdodCBkaW5uZXIKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobyBvKQogICAgICggKiogKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fXF8vX18KICAgICB8ZSAgZXwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vfn4qfn5cICAgICAgICAgICAgICAgICAgXF9fXy8KICAgICAgXCAgLyBfX19fKj09PSpfX19fX18qICAgICAgICAgICAgIC8gICAqICAgXCAgICAgICAgICAgICAgICAgKE8gTykKICAgICAgIE9PICAgICAgKiBHaXZlbmNoeSAqXCAgICAgICAgICAgLyB8ICAqICB8IFwgICAgICAgICAgICAgICAgIFwgLwogICAgICAgICB8ICAgICogICAgICogICAgKiAgXCAgICAgICAgICBcIHw9PT09PXwgLyAgICAgICAgICAgICAgICAgIE8KICAgICAgICAvKioqKioqKioqKioqKioqKiAgICAqICAgICAgICAgICJ8X19fX198IgogICAgICAgLy8gICoqKioqKioqKioqKiogICAgICAgICAgICAgICAgICB8IHwgfCAgICAgICAgICAgICAgICBDb3cgZXhjbGFpbWluZwogICAgICB8fCAgICB8fCAgICAgXF8vfHwgICAgICAgICAgICAgICAgICB8IHwgfCAgICAgICAgICAgICAgICAgICJIb2x5IENvdyIKICAgICAgfHwgICAgfHwgICAgIHx8IHx8ICAgICAgICAgICAgICAgICAgfF98X3wKICAgICAgdnwgICAgdnwgICAgIHZ8IHZ8ICAgICAgICAgICAgICAgICAgIH4gfgogICAgICAgICBIYXV0ZSBDb3d0dXJlICAgICAgICAgICAgICAgICAgICBDT1dOVAogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8W10gICAgICAgICB8XAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pIHwgICAgICAgICAgIHxbXSAgICAgICAgIHxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtLSkgfCAgICAgIChfXykgfCAgICAgICAgICAgfFtdICAgICAgICAKfFwKICAgKiAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX1wvIC98ICAgICAgKG8tKSB8ICAgICAgKF9fKSB8ICAgICAgICAgIAp8W10KICAgfCAgICAgICAgKF9fKSAgICAgICAgICAgLywsICAgICAgLCwgL198X19fX19fX1wvIC98ICAgICAgKG9vKSB8ICAgICAgKF9fKQp8CiAgIHwgICAgICBfXyhvbykgICAgICAgICotLS0tLS0tLS0tLS0tLS8sLCAgICAgICwsIC9ffF9fX19fX19cLyAvfCAgICAgIChPTykKfAogICAgXD09PT09ICB8XC8gICAgICAgICB8ICAgICAgICAgICAqLS0tLS0tLS0tLS0tLS0vLCwgICAgICAsLCAvX3xfX19fX19fXC8KL3wKICAgX3xfLyAgICAgXF8gICAgICAgICAgfD09PT09PT09PT09fCAgICAgICAgICAgKi0tLS0tLS0tLS0tLS0tLywsICAgICAgLCwgLwp8CiAgIC0vL1wtLS0tLS9cXCAgICAgICAgIG8gICAgICAgICAgIHw9PT09PT09PT09PXwgICAgICAgICAgCiotLS0tLS0tLS0tLS0tLS0tfAogICAgXF8vICAgICBcXy8gICAgICAgICAgICAgICAgICAgICBvICAgICAgICAgICB8PT09PT09PT09PT18ICAgICAgICAgICAgICAgCnwKIC0gLSAtLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gICAgICAgICAgCnw9PT09PT09PT09PT09PT09fAogICAgIENvd2F6YWtpICAgICAgICAgICAgICAgICAgICAgICAgQ09XLVdBUkQgICAgICAgICAgICAgICBvICAgICAgICAgICAgICAgCm8KIAogCiAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoICBGcmVpc2lhbiBhIGpvbGx5IGdvb2QgZmVsbG93ISApCiAgICAgIFxfX19fX19fX19fX19fX19fICBfX19fX19fX19fX18vCiAgICAgICAgICAgICAgICAgICAgICAgKSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKQogICAgICAgICAgICAgICAgKF9fKSAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICApCiAgICAgICAgICAoX18pICAob28pICAvICAgICAgICAgIChfX18pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBfXyApCiAgICAgICAgIC8ob28pLS0tXC8gICAgICAgICAgICAgIChvIG8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbykKICAgLy0tLS0tLS1cLyAgIHx8ICAgICAgICAgICAgICAgIFwgLy0tLS0tLS1cICAgICAgICAgICAgICAgLy0tLS0tLS0vfHx8fAogIC8gfCAgICAgfHwtLS0tfHwgICAgICAgICAgICAgICAgIE98fCAgICAgfCBcICAgICAgICAgICAgIC8gfCAgICAgfHwgfHx8CiAqICB8fC0tLS18fCAgICB+fiAgICAgICAgICAgICAgICAgIHx8LS0tLHx8ICAqICAgICAgICAgICAqICB8fC0tLS18fCAgfAogICAgfn4gICAgfn4gICAgICAgICAgICAgICAgICAgICAgICB+fiAgICB+fiAgICAgICAgICAgICAgICAgfn4gICAgfn4KICAgICAgVHdvIGNvd3MgQ09XLW5ncmF0dWxhdGluZyBhIGJ1bGwgICAgICAgICAgICAgICAgICAgIEF5YXRvbGxhaCBDb3ctbWFuaGkKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAKfD09PT18CiAgIC8tLS0tLS0tLS0tLS0tLS0tLS0tLS8gICAgICAgICAgICAgICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgICAKXG9vLwogIC8gfCAgICAgfHwgICAgICAgICAgIC8gICAgICAgICAgKF9fKSAgICAgIC8tLS0tLS0tXC8gICAgICAgICAgICAgLy0tLS0tLS1cLwogKiAgfHwtLS0tfHwgICAgICAgICAgLy0tLS0tLS0tLS0tKG9vKSAgICAgLyB8ICAgICB8fC0tLS0+ICAgICAgICAvIHwgICAgIHx8CiAgICB+fiAgICB+fiAgICAgICAgICAgICAgICAgICAgICAgXC8gICAgICogIHx8LS0tLXx8ICAgICAgICAgICAgKiAgfHwtLS0tfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX18vICBfX18vICAgICAgICAgICAgICB+fiAgICB+fgogICAgICAgICBOZXR3b3JrIFZpcnR1YWwgQ293ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3djYXRjaGVyCiAod2l0aCBzZXBhcmF0ZSBmcm9udGVuZCBhbmQgYmFja2VuZCkgICAgICBDb3cgd2F0ZXJza2lpbmcgICAgICAoTWFqb3IKbGVhZ3VlKQogCiAKICAgICAgICAgICAgL1wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fCiAgICAgICAgICAge19ffSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1tfX11fCiAgICAgICAgICAgKG9vKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyhvbylcCiAgICAvLS0tLS0tLVwvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy0tLS0tLUBcL0AKICAgLyB8ICArICB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gfCAgICAgfEBACiAgKiAgfHwtLS0tfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogIHx8LS0tLXx8CiAgICAgfn4gICAgfn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+ICAgIH5+CiAgICBTYWNyZWQgQ293ICAgICAgIFplbiBDb3cgKGVhdGluZyBncmFzcykgICAgICAgICAgSGFzaWRpYyBDb3cKIAogICBfX19fXyAgICAgICAgICBfX19fX19fX19fX19fX19fXwogIC8gICAgIFwgICAgICAgIC8gICAgICAgICAgICAgICAgIFwKICggMSsyPTMgKSAgICAgICggMStTSU4oMngpK0NPUygzeCkgKQogIFxfXyAgXy8gICAgICAgIFxfX19fXyAgX19fX19fX19fXy8gICAgICAgICAgICAgICAgICAgICAgICAgKF9fKQogICAgKCAoICAgICAgICAgICAgICAgICkgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+KD09KQogICAgIFxcICAgICAgICAgICAgICAgIC8vICAgICAgIClfXyggICAgICAgICAgICAgICAgICAgICAgICAvLVwvLVwKICAgICAgIFwgICAgKF9fKSAgICAgIC8gICAgICAgICAob28pICAgICAgICAgICAgICAgICAgICAgICAvKCAgICApXAogICAgICAgICAgICAob28pICAgICAgICAgICAgICAgICBcLy0tLS0tLS0qICAgICAgICAgICAgICAgfiAoICAgICkgfgogICAgIC8tLS0tLS0tXC8gICAgICAgICAgICAgICAgICAgfHwgICAgIHwgXCAgICAgICAgICAgICAgICAoICAgICkKICAgIC8gfCAgICAgfHwgICAgICAgICAgICAgICAgICAgIHx8LS0tLXx8ICAgXCAgICAgICAgICAgICAgLy0tLS1cCiAgICogIHx8LS0tLXx8ICAgICAgICAgICAgICAgICAgICB2diAgICB2diAgICAgICAgICAgICAgICAgLyAgICBcIFwKICAgICAgfn4gICAgfn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH4gICAgICAqIH4KICAgQ09XY3VsYXRvciAoMikgICAgICAgICAgICAgICBSZXZlcnNlIFBvbGlzaCBDb3cgICAgICAgIENvdy1hLWJ1bmdhCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+ICAgIH5+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTyAgKF9fXykgfHwgICAgICAgICAqICB8fC0tLS18fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIChvIG8pIHx8ICAgICAgICAgIFwgfCAgICAgfHwKICAgICAgICAgICAgIChuby1idWxsLWl0eSkgLS0tPiAgICAlICAtXCAvLSB8fCAgICAgICAgICAgXC0tLS0tLS0vXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcL3wgTyB8IHx8ICAgICAgICAgICAgICAgICAgKG9vKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHwgICB8IHx8ICAgICAgICAgICAgICAgICAgKCAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gdi0nIHx8ICAgICAgICAgICAgICAgICAgID48CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPT09PT09PT09PXwgICAgICAgICAgICAgICAgICAoICApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfHwgICAgICAgICAgICAgICAgICAob28pCiAgICwtLS0tLS0uXyhfXykgICAgICAgICAgICAgICAgIHx8ICAgICAgICAgfHwgICAgICAgICAgIC8tLS0tLS0tXC8KICAqIHwgXCAgICAgKCBvbyAgICAgICAgICAgICAgICAgfHwgICAgICAgICB8fCAgICAgICAgICAvIHwgICAgIHx8CiB2dj09PT0+LS0tLT1cLz09PT12diAgICAgICAgICAgIHw9PT09PT09PT09PXwgICAgICAgICAqICB8fC0tLS18fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn4gICAgfn4KICAgICAgICAgICAgICAgICAgICAgQ09XVE9XICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpLWNvdyBtb2xlY3VsZQogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX18pICAgICAgICAgICAgICAgICAoX18pCiAgICAgICAgICgpICAoKSAgICAgICAgICAgICBfX19fX3wgb28gfCAgICAgICAgICAgICAgICB8b298CiAgICAgICAgICAoKSgpICAgICAgICAgICAgIC8gICAgICAgICAgfCAgICAgICAgIC8tLS0tfC18X198LXwKICAgICAgICAgIChvbykgICAgICAgICAgICAvICAgICAgICAgICB8ICAgICAgICAvIHwgICAgIHx8CiAgIC8tLS0tLS0tVVUgICAgICAgICAgICAvX19fX19fX19fX19ffCAgICAgICAqICB8fC0tLS18fAogIC8gfCAgICAgfHwgICAgICAgICAgICAgICAgfn4gICAgfn4gICAgICAgICAgICAgfn4gICAgfn4KICogIHx8dy0tLXx8ICAgICAgICAgICAgQ293IGRyZXNzZWQgdXAgICAgICAgIENvdyBkcmVzc2VkIHVwCiAgICB+fiAgICB+fiAgICAgICAgICAgICAgYXMgZ2hvc3QgICAgICAgICAgICBhcyBGcmFua2Vuc3RlaW4KIEVoLCBXaGF0J3MgdXAgRG9jPyAgICAgZm9yIEhhbGxvd2VlbiAgICAgICAgICBGb3IgSGFsbG93ZWVuCiAKIAogICAgICAgICAgKF9fKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFwvfCAgICAgICAgICAgICAgIChfXykKICAgICAgICAgIChvbykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbykgICAgICAgICAgICAgID4oPT0pCiAgICBfX1tfXV9fXC8gICAgICAgICAgICAgICAgICAgICAgICAgIC8tLS0tLS0tVlYgICAgICAgICAvLS0tLS0tLVwvCiAgLyB8ICAgICB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgLyB8ICAgICB8fCAgICAgICAgIC8gfCAgICAgfHwKICogIHx8LS0tLXx8ICAgICAgLS0+ICAgLiAgICAgICAgICAgICogIHx8LS0tLXx8ICAgICAgICAqICB8fC0tLS18fAogICAgfn4gICAgfn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfn4gICAgfn4gICAgICAgICAgIH5+ICAgIH5+CiAgUG9ydGFibGUgQ293ICAgIEphcGFuZXNlIG1vZGVsICAgICAgIEx5Y293bnRocm9weSAgICAgIENvdy1hLWJ1bmdhICgyKQogICh2ZXJ5IGhhbmR5KSAgICBwb3J0YWJsZSBDT1cKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWltIEFyenQgKEFsZXRlLCAgNS4gQXVnIDE5OTcsIDE0OjUwOjU4KToKQXJ6dCB6dW0gUGF0aWVudGVuOgoiSWNoIGhhYmUgZWluZSBndXRlIHVuZCBlaW5lIHNjaGxlY2h0ZSBOYWNocmljaHQgZnVlciBTaWUuClp1ZXJzdCBkaWUgc2NobGVjaHRlOiBTaWUgc2luZCBzY2h3dWwhClVuZCBkaWUgZ3V0ZTogSWNoIGZpbmQgZGljaCB1bmhlaW1saWNoIHRvbGwsIGR1ISIKCkEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbGxlcyBSb2RzY2hlciAoUmluZ29yLCAxMS4gQXVnIDE5OTcsIDAwOjExOjM1KToKICBVbHJpY2ggRWZmZXJ0eiAoODE6MzAwLzIxMS44KQogICJOZXVsaWNoIGltIEZ1bmt2ZXJrZWhyIgoKICBVZWJyaWdlbnM6IGFsbGUgRnVuay1TdG9yaWVzIHNpbmQgYXVzIHZlcnNjaGllZGVuZW4gQXVzZ2FiZW4gZGVzCiAgRmxpZWdlck1hZ2F6aW5zIHVudGVyIGRlbSBUaGVtYSAiUm9kc2NoZXIiLgoKUGlsb3Q6ICJCcmF0aXNsYXZhIFRvd2VyLCB0aGlzIGlzIE9zY2FyIE9zY2FyIEtpbG8gZXN0YWJpc2hlZCBJTFMgMTYuIgpUb3dlcjogIk9zY2FyIE9zY2FyIEtpbG8sIEd1dGVuIFRhZywgY2xlYXJlZCB0byBsYW5kIDE2LCB3aW5kIGNhbG0gLQogICAgICAgIGFuZCBieSB0aGUgd2F5OiB0aGlzIGlzIFdpZW4gVG93ZXIuIgpQaWxvdDogKE5hY2ggZWluZXIgRGVua3BhdXNlKSAiQnJhdHNpbGF2YSBUb3dlciwgT3NjYXIgT3NjYXIgS2lsbyBwYXNzZWQKICAgICAgICB0aGUgb3V0ZXIgbWFya2VyLiIKVG93ZXI6ICJPc2NhciBPc2NhciBLaWxvIHJvZ2VyLCBhbmQgb25jZSBtb3JlOiB5b3UgYXJlIGFwcHJvYWNoaW5nIFZpZW5uYSEiClBpbG90OiAoTmFjaCBlaW5lciBEZW5rcGF1c2UpICJDb25maXJtLCB0aGlzIGlzIE5PVCBCcmF0aXNsYXZhPyIKVG93ZXI6ICJZb3UgY2FuIGJlbGlldmUgbWUsIHRoaXMgaXMgVmllbm5hIQpQaWxvdDogKE5hY2ggZWluZXIgZXJuZXV0ZW4gUGF1c2UpICJCdXQgd2h5PyBXZSB3YW50IHRvIGdvIHRvIEJyYXRpc2xhdmEsCiAgICAgICAgbm90IHRvIFZpZW5uYSEiClRvd2VyOiAiT3NjYXIgT3NjYXIgS2lsbywgcm9nZXIuIERpc2NvbnRpbnVlIGFwcHJvYWNoLCB0dXJuIGxlZnQgMDMwIGFuZAogICAgICAgIGNsaW1iIHRvIDUwMDAgZmVldCwgdmVjdG9ycyB0byBCcmF0aXNsYXZhLiIKCi0tLQoKVG93ZXI6ICJEZWx0YSBEZWx0YSBXaGlza2V5LCByb2xsZW4gU2llIHVlYmVyIFRlZXJ3ZWcgendvIG51bGwgbmV1biBDaGFybGllCiAgICAgICAgdW5kIE1pa2UgenVtIEdBVC4iClBpbG90OiAiQWVoLi4uVGVlcndlZyB6d28uLi4/IgpUb3dlcjogIkRhcyBpc3QgZGVyIGtsZWluZSByZWNodHMuIFNpZSBzaW5kIGdlcmFkZSBkcmFuIHZvcmJlaWdlcm9sbHQuIgpQaWxvdDogIlNvcnJ5LiIKVG93ZXI6ICJEb24ndCB3b3JyeSwgbmVobWVuIFNpZSBkZW4gTWlrZS4iClBpbG90OiAiQWVoLCAuLi5NaWtlID8iClRvd2VyOiAiRGFzIGlzdCBkZXIgbGV0enRlIGdhbnogaGludGVuIHJlY2h0cy4uLiIKCi0tLQoKUGlsb3Q6ICJDb25kb3IgNDcxLCBnaWJ0J3MgaGllciBrZWluZW4gRm9sbG93LW1lID8iClRvd2VyOiAiTmVnYXRpdiwgc2VoZW4gU2llIG1hbCB6dSwgd2llIFNpZSBhbGxlaW4genVtIEdhdGUgMTAga29tbWVuLiIKCi0tLQoKUGlsb3Q6ICIuLi5Ub3dlciwgcGxlYXNlIGNhbGwgbWUgYSBmdWVsIHRydWNrLiIKVG93ZXI6ICJSb2dlci4gWW91IGFyZSBhIGZ1ZWwgdHJ1Y2suIgoKLS0tCgpDb250cm9sbGVyOiAiUGhhbnRvbS1Gb3JtYXRpb24gY3Jvc3NpbmcgY29udHJvbHpvbmUgd2l0aG91dCBjbGVhcmFuY2UsIHN0YXRlCiAgICAgICAgICAgIHlvdXIgY2FsbHNpZ24gISIKUGlsb3Q6ICAgICAgIkknbSBub3Qgc2lsbHkuLi4iCgotLS0KCkNvbnRyb2xsZXIgKGluIFN0dXR0Z2FydCk6ICJMdWZ0aGFuc2EgNTY4MCwgcmVkdWNlIHRvIDE3MCBrbm90cy4iClBpbG90OiAiRGFzIGlzdCBqYSB3aWUgaW4gRnJhbmtmdXJ0LiBEYSBnaWJ0J3MgYXVjaCBudXIgMjEwIHVuZCAxNzAgS25vdGVuLi4uCiAgICAgICAgQWJlciB3aXIgc2luZCBqYSBmbGV4aWJlbC4iCkNvbnRyb2xsZXI6ICJXaXIgYXVjaC4gUmVkdWNlIHRvIDE3MyBrbm90cy4iCgotLS0KCkNvbnRyb2xsZXI6ICJSRkcgMzEyLCBmbGllZ2VuIFNpZSBkaXJla3QgbmFjaCBPbG5vIFZPUi4KICAgICAgICAgICAgIEJyYXVjaGVuIFNpZSBlaW5lbiBSYWRhci1WZWt0b3IgPyIKUGlsb3Q6ICAgICAgIk5laW4sIGVzIGdlaHQgYXVjaCBzbywgd2lyIGtvZW5uZW4gZGFzIFZPUiBzY2hvbiBlbXBmYW5nZW4uCiAgICAgICAgICAgICBFcyBsaWVndCBnZW5hdSBpbiBkZXIgUmljaHR1bmcsIHdvIGRlciBNb25kIHN0ZWh0LiIKQ29udHJvbGxlcjogIkphLCBhYmVyIGRlbiBoYWJlbiB3aXIgbmljaHQgYXVmIGRlbSBSYWRhcnNjaGlybS4iCgotLS0KClBpbG90OiAgIkdyb3VuZCwgWFktbGluZSAxOTUsIHJlcXVlc3Rpbmcgc3RhcnQtdXAuIgpHcm91bmQ6ICJTb3JyeSwgWFktbGluZSAxOTUsIHdlIGRvbid0IGhhdmUgeW91ciBmbGlnaHQgcGxhbi4KICAgICAgICAgV2hhdCBpcyB5b3VyIGRlc3RpbmF0aW9uID8iClBpbG90OiAgIldpZSBqZWRlbiBNb250YWcsIG5hY2ggTGVpcHppZy4iCkdyb3VuZDogIkFiZXIsIHdpciBoYWJlbiBoZXV0ZSBEaWVuc3RhZyAhIgpQaWxvdDogICJXQVMgPyBBbSBEaWVuc3RhZyBoYWJlbiB3aXIgZG9jaCBmcmVpICEiCgotLS0KCkNvbnRyb2xsZXI6ICJIYXdrIDIwLCBpcyB0aGlzIHRoZSBzYW1lIGFpcmNyYWZ0IGRlY2xhcmluZyBlbWVyZ2VuY3kKICAgICAgICAgICAgIGFib3V0IHR3byBob3VycyBhZ28gPyIKUGlsb3Q6ICAgICAgIk5lZ2F0aXYsIFNpci4gSXQncyBvbmx5IHRoZSBzYW1lIHBpbG90LiIKCi0tLQoKUGlsb3Q6ICJUb3dlciwgZGEgYnJlbm50IGVpbiBSdW53YXktbGlnaHQuIgpMb3RzZTogIkljaCBob2ZmZSwgZGEgYnJlbm5lbiBtZWhyZXJlLiIKUGlsb3Q6ICJTb3JyeSwgaWNoIG1laW5lLCBlcyBxdWFsbXQuIgoKLS0tCgpDb250cm9sbGVyOiAiRGVsdGEgWnVsdSBSb21lbywgdHVybiByaWdodCBub3cgYW5kIHJlcG9ydCB5b3VyIGhlYWRpbmcuIgpQaWxvdDogICAgICAiV2lsY28uIDM0MSwgMzQyLCAzNDMsIDM0NCwgMzQ1Li4uIgoKLS0tCgpUb3dlcjogIkx1ZnRoYW5zYSA4OTMsIG51bWJlciBvbmUsIGNoZWNrY2FyIG9uIHRoZSBydW53YXkuIgpQaWxvdDogIlJvZ2VyIHdlJ2xsIGNoZWNrIHRoZSBjYXIgb24gdGhlIHJ1bndheS4iCgotLS0KCkNvbnRyb2xsZXI6ICJEZWx0YSBSb21lbyBadWx1LCBjb25maXJtIHlvdSBhcmUgaW5ib3VuZCB0byBTdWx6IE5EQj8iClBpbG90OiAgICAgICJBZmZpcm0sIGJ1dCB3ZSBkb24ndCByZWNlaXZlIGl0LiIKCi0tLQoKQ29udHJvbGxlcjogIkRlbHRhIE9zY2FyIE1pa2UsIHNxdWF3ayAwNDc2LiIKUGlsb3Q6ICAgICAgIlNheSBhZ2Fpbi4iCkNvbnRyb2xsZXI6ICJTcXVhd2sgMDQ3Ni4iClBpbG90OiAgICAgICJGb3VyLCB6ZXJvLi4uPyAiCkNvbnRyb2xsZXI6ICJXb2xsZW4gU2llJ24gbGVpY2h0ZXJlbiBoYWJlbiA/IgoKLS0tCgpDb250cm9sbGVyOiAiRGVsdGEgQnJhdm8gQ2hhcmxpZSwgaXN0IElociBTcXVhd2sgd2lya2xpY2gKICAgICAgICAgICAgIHNpZWJlbiBudWxsIHZpZXIgc2VjaHM/IgpQaWxvdDogICAgICAiUG9zaXRpdi4iCkNvbnRyb2xsZXI6ICJJY2ggbWFnJ3Mga2F1bSBnbGF1YmVuLCBTaWUgaGFiZW4gZWluZSBhbmdlemVpZ3RlIEhvZWhlCiAgICAgICAgICAgICB2b24gbWludXMgbmV1bnppZyBGdXNzLiIKCi0tLQoKQ29udHJvbGxlcjogIkhvdGVsIFBhcGEgT3NjYXIgY2xpbWIgZm91ciB0aG91c2FuZCB0byBzaXggdGhvdXNhbmQKICAgICAgICAgICAgIGFuZCBtYWludGFpbi4iClBpbG90OiAgICAgICJIb3RlbCBQYXBhIE9zY2FyLCBjbGltYmluZyBmbGlnaHQgbGV2ZWwgMTAwLiIKQ29udHJvbGxlcjogIkhvdGVsIFBhcGEgT3NjYXIsIGNsaW1iIHRvIGZsaWdodCBsZXZlbCA2MCBhbmQgbWFpbnRhaW4uIgpQaWxvdDogICAgICAiQWJlciB2aWVyIHBsdXMgc2VjaHMgaXN0IGRvY2ggemVobiwgb2Rlcj8iCkNvbnRyb2xsZXI6ICJTaWUgc29sbGVuIHN0ZWlnZW4sIG5pY2h0IGFkZGllcmVuLiIKCi0tLQoKQ29udHJvbGxlcjogIkRFLi4uLCBmbGllZ2VuIFNpZSB3ZWl0ZXIgaW0gR2VnZW5hbmZsdWcgZnVlciBkaWUKICAgICAgICAgICAgIDI2LCBMYW5kZW51bW1lciAyIGhpbnRlciBlaW5lciBEQyA5IGltIGt1cnplbiBFbmR0ZWlsLiIKUGlsb3Q6ICAgICAgIlZlcnN0YW5kZW4sIGZsaWVnZSB3ZWl0ZXIgZnVlciBkaWUgMjkgdW5kIGZvbGdlIGRlciBEQyA2LiIKQ29udHJvbGxlcjogIk5pY2h0IGdhbnogcmljaHRpZzogRGllIExhbmRlYmFobiB3YXIgMjYgdW5kCiAgICAgICAgICAgICBJaHIgVmVya2VociBlaW5lIERDIDkuIgpQaWxvdDogICAgICAiT2theSwgaWNoIGZvbGdlIGRlciBEQyAyNi4uLiBXaWUgd2FyIGRpZSBMYW5kZWJhaG4gPyIKCi0tLQoKSHVic2NocmF1YmVyLUxlaHJlciAoenUgc2VpbmVtIEZsdWdzY2h1ZWxlcik6CiJTZWhlbiBTaWUgenUsIGRhc3MgU2llIGlubmVyaGFsYiBkZXIgYmV0b25pZXJ0ZW4gRmxhZWNoZSBibGVpYmVuLiIKVW5kIG5hY2ggZWluIHBhYXIgTWludXRlbjoKIkFjaCB3YXNzLCBibGVpYmVuIFNpZSB3ZW5pZ3N0ZW5zIGluIGRlciBCdW5kZXNyZXB1YmxpayAhICIKCi0tLQoKSW4gTWVtb2VyaWFtIE11ZW5jaGVuLVJpZW0sIHdvIGdsZWljaHplaXRpZyBlaW5lIFRCMTAgYXVmIGRlciAyNVIgdW5kIGVpbmUgNzM3CmF1ZiBkZXIgMjVMIGxhbmRlbi4KClBpbG90IGRlciA3Mzc6ICJXYXIgZGFzIGpldHp0IGVpbmUgRm9ybWF0aW9uc2xhbmR1bmcgPyIKVG93ZXI6ICAgICAgICAgIk5lZS4gRm9ybWF0aW9uc2ZsdWcgaXN0J3MgamEgbnVyLCB3ZW5uIGlocgogICAgICAgICAgICAgICAgYXVmIGRlcnNlbGJlbiBCYWhuIGxhbmRldC4gQWJlciBzYWggdHJvdHpkZW0gZ3V0IGF1cy4KICAgICAgICAgICAgICAgIEF1c3NlcmRlbTogZGllIEJhaG5lbiBzaW5kIGphIHp3ZWkgS2lsb21ldGVyIGF1c2VpbmFuZGVyLAogICAgICAgICAgICAgICAgZGEga2FubiBuaWNodHMgcGFzc2llcmVuLiIKNzM3LVBpbG90IGJlaW0gUm9sbGVuIGF1ZiBkZW0gVGF4aXdheTogIklzdCBkYXMgbmljaHQga29taXNjaD8gRGllIEJhaG5lbgogICAgICAgICAgICAgICAgc2luZCBkb2NoIGhvZWNoc3RlbnMgMjAwIE1ldGVyIGF1c2VpbmFuZGVyICE/IgpUb3dlcjogICAgICAgICAiTmF0dWVybGljaCEgRWluIEJheWVyIGhhZXR0JyBkYXMgc2Nob24gbGFlbmdzdCBnZW1lcmt0LiIKCi0tLQoKUGlsb3Q6ICAgICAgIkZyYW5rZnVydCBJbmZvcm1hdGlvbiwgaGllciBEZWx0YSBCcmF2byBadWx1LiBXaXIgc2luZAogICAgICAgICAgICAgamV0enQgdWViZXIgRGlua2Vsc2J1ZWhsIGluIEZsdWdmbGFlY2hlIDk1LiIKQ29udHJvbGxlcjogIlNpZSBzb2xsdGVuIGRvY2ggTXVlbmNoZW4gSW5mb3JtYXRpb24gcnVmZW4gISIKUGlsb3Q6ICAgICAgIkphLCB3ZWlzcyBpY2gsIGFiZXIgYmVpIElobmVuIGdlZmFlbGx0IG1pciBkYXMgUHJvZ3JhbW0gYmVzc2VyLiIKCi0tLQoKQ29udHJvbGxlcjogIkZsYW1pbmdvIDAxOSwgZG8geW91IGhhdmUgYSAiU3ByaW5nYm9jayIgaW4gc2lnaHQsIHR3ZWx2ZQogICAgICAgICAgICAgbydjbG9jayBmaXZlIG1pbGVzIGNyb3NzaW5nIGZyb20gbGVmdCB0byByaWdodCA/IgpQaWxvdDogICAgICAiSWYgeW91IG1lYW4gYSA3MzcuLi4/IgpDb250cm9sbGVyOiAiWWVhaCwgeW91IGdvdCBpdCwgeW91IGdvdCBpdCAhIgoKLS0tCgpUb3dlcjogIkRlbHRhIEZveCBBbHBoYSwgaG9sZCBwb3NpdGlvbiwgTWFyc2hhbGwgd2lsbCBwYXJrIHlvdS4iClBpbG90OiAiUm9nZXIuIExvb2tpbmcgb3V0IGZvciBKb2huIFdheW5lLiIKCi0tLQoKTXVlbmNoZW4gSUkKClRvd2VyOiAgICAgICAgICAgIkxIIDg2MTAgY2xlYXJlZCBmb3IgdGFrZS1vZmYuIgpQaWxvdCAoTEggODYxMCk6ICJXaXIgc2luZCBhYmVyIG5vY2ggZ2FyIG5pY2h0IGdlbGFuZGV0LiIKVG93ZXI6ICAgICAgICAgICAiSmEsIHdlciBzdGVodCBkZW5uIGRhIGF1ZiBkZXIgMjYgc291dGggPyAiClBpbG90IChMSCA4ODAxKTogIkxIIDg4MDEuIgpUb3dlcjogICAgICAgICAgICJOYSBqYSwgZGFubiBzZWlkIGlociBjbGVhcmVkIGZvciB0YWtlLW9mZi4iCgotLS0KClRvd2VyOiAiRGVsdGEgTWlrZSBadWx1LCBhZnRlciBsYW5kaW5nIGNsZWFyZWQgdG8gdGF4aSBBbHBoYSA3LAogICAgICAgIEFscGhhIDUsIFdoaXNrZXkgMiwgRGVsdGEgMSBhbmQgT3NjYXIgMi4iClBpbG90OiAiV28gaXN0IGRlbm4gZGFzLCB3aXIga2VubmVuIHVucyBoaWVyIG5vY2ggbmljaHQgc28gYXVzID8iClRvd2VyOiAiRGFzIG1hY2h0IG5pY2h0cy4gSWNoIGJpbiBhdWNoIGVyc3QgendlaSBUYWdlIGhpZXIuIgoKLS0tCgpGbHVnc2NodWVsZXI6ICJMaWNodGVuZmVscyBJbmZvLCBERUlUTiwgaW0gcmVjaHRlbiBRdWVyYW5mbHVnCiAgICAgICAgICAgICAgIExhbmRlYmFobiAyMiwgenVtIER1cmNoc3RhcnRlbiB1bmQgQXVmc2V0emVuLiIKVHVybTogICAgICAgICAiREVJVE4sIGljaCBoYWJlIGVpbmUgZ3Jvc3NlIEJpdHRlOiBlcnN0IGF1ZnNldHplbgogICAgICAgICAgICAgICB1bmQgZGFubiBkdXJjaHN0YXJ0ZW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RhclRyZWsgKE5pcmRhdm8sIDE1LiBBdWcgMTk5NywgMTE6MzM6NDYpOgogIEdyYWQgZWluZSB0b2xsZSBTaWduYXR1cmUgYXVmIGVpbmVyIE1haWxpbmctTGlzdGUgZ2VmdW5kZW46CgogICBWZXJ5IGZ1bm55IFNjb3R0eS4uLm5vdyBiZWFtIHVwIG15IGNsb3RoZXMhCgogIE5pcmRhdm8sIGxhY2h0IGltbWVyIG5vY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1cyBkZXIgS2FudGluZSAoSG9ibywgMTUuIEF1ZyAxOTk3LCAxNDowMDoxMik6CkhldXRlIGdhYidzIHUuYS4gS2FyYW1lbHB1ZGRpbmcgKGx0LiBTcGVpc2V6ZXR0ZWwpCgpVbmQgd2FzIHdhciBkYXM/Ckdlc2NobWFja3NhbmFseXNlbiBlcmdhYmVuOiBWYW5pbGxwdWRkaW5nIG1pdCBoSGFzZWxudXNzc3R1ZWNrY2hlbiB1bmQKUnVtYXJvbWEKCgpBYmVyIG1hbiBoYXQgaWhuIHRyb3R6ZGVtIGVzc2VuIGtvZW5uZW4uLi4uCgogSG9ibyAoZGVua3QgYW4gIlN1ZWRkZXV0c2NoZXMgSnVuZ2J1bGxlbiBPY2hzZW5mbGVpc2NoIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ290aGljIChIZWx2YSwgMTkuIEF1ZyAxOTk3LCAyMTo0MzowOSk6Ck9rLCBkZXIgaXN0IG5pY2h0IHRvbGwsIGFiZXIgaWhyIHNvbGx0IGlobiBoYWJlbjoKV2lldmllbGUgZ290aGljcyBicmF1Y2h0IG1hbiwgdW0gZWluZSBHbHVlaGJpcm5lIGVpbnp1c2NocmF1YmVuPwpLZWluZW4uIEdvdGhpY3MgbW9lZ2VuIGVzLCB3ZW5uIGVzIGR1bmtlbCBpc3QuCgpIZWx2YS4gSGV1dGUgZ2FueiBiZXNvbmRlcnMgc2Nod2Fyei4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGdvdGhpYyAoUmFmZmksIDIwLiBBdWcgMTk5NywgMTQ6MzU6MjEpOgp+IyEgcm49SGVsdmEgcnQ9ODcyMDE5Nzg5IHJnPXdpdHplCn4jISB0aWQ9ODcyMDE5Nzg5CldhcyBpc3QgZGVubiBlaW4gR290aGljcyA/CgpHcnVlYmVsbmQKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZ290aGljIChGeXQsIDIwLiBBdWcgMTk5NywgMTQ6Mzg6NDApOgp+IyEgcm49UmFmZmkgcnQ9ODcyMDgwNTIxIHJnPXdpdHplCn4jISB0aWQ9ODcyMDE5Nzg5CgpFaW4gYnJpdGlzY2hlciBHcnVmdGllIHp1bSBCbGVpc3RpZnQuCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYW1vdXMgTGFzdCBXb3JkcyAoUm9jaHVzLCAyMi4gQXVnIDE5OTcsIDEzOjM0OjM1KToKIkVzIHdpcmQgbmljaHQgcmVnbmVuLiIKICBZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2htYWwgQ2F0dHkgKEhvYm8sIDI1LiBBdWcgMTk5NywgMDg6NTY6NDEpOgoiTGFzc3QgdW5zIGFsc28gZGllIFp3ZWl0aWUtUGZsaWNodCBlaW5mdWVocmVuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1TIFRhbWFnb3RjaGkgKEtvYmF5YXNoaSwgMjYuIEF1ZyAxOTk3LCAwODowMjowNSk6CkhldXRlIGdlZnVuZGVuOgoKKkJpbGxnb3RjaGkqCgpBbSAxMC4gT2t0b2JlciAxOTk2IHN0YXJ0ZXRlIGRlciBqYXBhbmlzY2hlIFNwaWVsd2FyZW5oZXJzdGVsbGVyIEJhbmRhaQpUZXN0dmVya2FldWZlIG1pdCAzMDAwIEV4ZW1wbGFyZW4gc2VpbmVzIHZpcnR1ZWxsZW4gSGF1c3RpZXJzIFRhbWFnb3RjaGkuCkRhcyBlaWZvZXJtaWdlIE1pbmlzcGllbHpldWcgbWl0IDE2eDMyLVBpeGVsLURpc3BsYXkgZW50d2lja2VsdGUgc2ljaCBpbgpSZWtvcmR6ZWl0IHp1ciBTZXVjaGU6IEZ1ZW5mIFdvY2hlbiBzcGFldGVyIHJpc3NlbiBkaWUgSmFwYW5lciBpbm5lcmhhbGIKdm9uIHp3ZWkgVGFnZW4gZGllIGdlc2FtdGUgUHJvZHVrdGlvbiB2b24gODAgMDAwIFN0dWVjayBhdXMgZGVuIFJlZ2FsZW4uCkluendpc2NoZW4gaXN0IGRlciBCb29tIGludGVybmF0aW9uYWwsIGRlciBIZXJzdGVsbGVyIGtvbW10IG5pY2h0IG1pdApkZXIgUHJvZHVrdGlvbiBuYWNoLCB1bmQgdWViZXJhbGwgZ2lidCBlcyB0cmF1cmlnZSBLaW5kZXIgKDMgYmlzIDgwCkphaHJlKSwgd2VpbCBzaWUga2VpbmVuIFRhbWFnb3RjaGkgaGFiZW4uCkFiZXIgbmljaHQgd2VpbmVuLCBMZXV0ZS4gV2VyIGVpbmVuIFBDIGhhdCwgYmVzaXR6dCBkYW1pdCBzY2hvbiBsYW5nZQplaW4gdmlydHVlbGxlcyBIYXVzdGllciwgZ2VnZW4gZGFzIFRhbWFnb3RjaGkgZWluIGxhaG1lciBBYmtsYXRzY2ggaXN0CiAtIGF1Y2ggd2FzIGRlbiBrb21tZXJ6aWVsbGVuIEVyZm9sZyBhbmdlaHQuIEhpZXIgZGllIG9mZml6aWVsbGUKQmVkaWVudW5nc2FubGVpdHVuZy4KCipBdXNzY2hsdWVwZmVuKgp+fn5+fn5+fn5+fn4KTmFjaCBkZXIgSW5zdGFsbGF0aW9uIHZvbiBXaW5kb3dzIChWZXJzaW9uIGVnYWwpIGRhdWVydCBlcyBudXIgZWluIHBhYXIKTWludXRlbiwgdW5kIGRlciBrbGVpbmUgZGlnaXRhbGUgUXVhZWxnZWlzdCBwZWxsdCBzaWNoIGF1cyBzZWluZXIgU2hlbGwuCktlaW5lciB3ZWlzcyBnZW5hdSwgd2llIGVyIGF1c3NpZWh0LiBBYmVyIGVyIGlzdCBmcmVjaCwgaGludGVybGlzdGlnIHVuZApzY2h3ZXIgZXJ6aWVoYmFyLiBJbW1lciB6dSBTdHJlaWNoZW4gYXVmZ2VsZWd0LCBoYWVsdCBkYXMgcHV0emlnZQpLZXJsY2hlbgpkZW4gTWF1c3plaWdlciBmZXN0LCB2ZXJ3dWVzdGV0IGRlbiBTY2hyZWlidGlzY2ggc2VpbmVzIEhlcnJuIG9kZXIgc2NoYWx0ZXQgCmhlaW1saWNoIGRpZSBHcmFmaWthdWZsb2VzdW5nIHVtLiBTZWx0ZW4gc2NoYXV0IGRlciBCaWxkc2NoaXJtIHNvCmF1cywgd2llIG1hbiBpaG4gdmVybGFzc2VuIGhhdCwgd29taXQgYXVjaCBkZW0gc3R1cnN0ZW4gVGVjaG5pay1HbGFldWJpZ2VuCmtsYXIgc2VpbiBtdWVzc3RlOiBEYSBkcmluIGxlYnQgd2FzIQoKKkZ1ZXR0ZXJuKgp+fn5+fn5+CktyaWVndCBCaWxsZ290Y2hpIG5pY2h0IHJlZ2VsbWFlc3NpZyBIYXBwYS1IYXBwYSwgd2lyZCBlciBzYXVlci4gV2VyCkhpbndlaXNlIHVlYmVyIGRlbiBadXN0YW5kIHNlaW5lcyBIYXVzdGllcnMgc3VjaHQsIGZpbmRldCBzaWUgdW50ZXIKKkVpbnN0ZWxsdW5nZW4vU3lzdGVtc3RldWVydW5nL1N5c3RlbS9MZWlzdHVuZ3NtZXJrbWFsZSogLSB0cm90emRlbQpzYWdlbiBzaWUgbmljaHRzIGF1cy4gR290Y2hpIHRhZXVzY2h0IGdlcm4gbWl0IGRlciBBdXNrdW5mdCAqb3B0aW1hbAprb25maWd1cmllcnQqIHVuZCBiZW5pbW10IHNpY2ggZGVubm9jaCBkYW5lYmVuLiBFciBrb21tdW5pemllcnQgbWl0CnNwYXNzaWdlbiBCb3RzY2hhZnRlbiB2b20gS2FsaWJlciBfcmVhZ2llcnQgbmljaHRfIG9kZXIgZGllIF9BbndlbmR1bmcKaXN0IHVlYmVybGFzdGV0Ll8gR290Y2hpbGVpbiBzZXR6dCBkcm9sbGlnZSBCdXR0b25zLCBhdWYgZGVuZW4gZXR3YSBfVGFzawpiZWVuZGVuXyBzdGVodCAtIGRpZSBhYmVyIHRyb3R6ZGVtIG5pY2h0IGZ1bmt0aW9uaWVyZW4uCgoqQS1hKgp+fn4KQmVzb25kZXJzIHVsa2lnIGlzdCBlcywgd2VubiBkZXIgS2xlaW5lIHNlaW5lIFBsYXR0ZSB2b2xsa2Fja3QuPTIwCkFsbGUgTmFzZSBsYW5nIGxhZXNzdCBlciByaWVzaWdlIFN0aW5rZXJoYWV1ZmNoZW4gZmFsbGVuLCBkaWUgbWl0IGVpbmVyCnVuYW5zdGFlbmRpZ2VuIFdlbGxlbmxpbmllIGJlZ2lubmVuIHVuZCBnZXJuIGF1ZiAudG1wIGVuZGVuLiBEb2NoIG5pY2h0CmltbWVyIHNpbmQgZGllIEFiZmFlbGxlIHNvIGtsYXIgenUgZXJrZW5uZW4uIFNlaW5lIE9yZG5lciBzY2hlaXNzZXJ0IGVyCnNjaG5lbGwgbWl0IDUwLCA2MCBNQnl0ZSBETEwtQm9lbGxlcm4genUuIEFiZXIgT2JhY2h0IGJlaW0gQXVmcHV0emVuOgpCaWxsZ290Y2hpIHdpcmQgdG9ka3JhbmssIHdlbm4gbWFuIGVpbmUgc2VpbmVyIExpZWJsaW5nc2F1c3NjaGVpZHVuZ2VuCmVudHNvcmd0IQoKKkRpc3ppcGxpbioKfn5+fn5+fn5+CkVpbiBIYXVzdGllciBtdXNzIHZvbiBaZWl0IHp1IFplaXQgZ2VzY2hpbXBmdCB3ZXJkZW4uIEJlaSBCaWxsZ290Y2hpIGhlaXNzZW4gCnNvbGNoZSBTdHJhZmVuICJUcmVpYmVyIi4gRGllIEZyZXVuZGUgZGVzIGtsZWluZW4gRmllc2xpbmdzIGJlc2NoZW5rZW4KZWluZW4gbWl0IFVubWVuZ2VuIGRpZXNlciBhdXNnZWZ1Y2hzdGVuIERpbmdlciwgYWJlciBzaWUgc2luZCBzbyBnZWJhdXQsCmRhc3Mgc2llIHZvciBhbGxlbSBIZXJyY2hlbiBhdWEgbWFjaGVuLiBJbSBCaWxsZ290Y2hpLUthdWRlcndlbHNjaCBoZWlzc3QKZGFzICJ2ZXJhbHRldCIgb2RlciAic2NobGFtcGlnIHByb2dyYW1taWVydCIuCgoqU3BpZWxlbioKfn5+fn5+fgpVbSBlaW4gVGllcmNoZW4gbXVzcyBtYW4gc2ljaCBrdWVtbWVybi4gSW4gdW52b3JoZXJzZWhiYXJlbiBBYnN0YWVuZGVuCm1hY2h0IEJpbGxnb3RjaGkgYXVmIHNpY2ggYXVmbWVya3NhbSB1bmQgc2NoaWNrdCBIZXJyY2hlbiB6dW0gR2Fzc2lnZWhlbjoKVXBkYXRlIGthdWZlbiEgVW5kIGRhbm4gbXVzcyBIZXJyY2hlbiBzdHVuZGVuLSwgamEgb2Z0IHRhZ2VsYW5nIG1pdApCaWxsZ290Y2hpIHNwaWVsZW4uIFVuZCB6d2FyIG5pY2h0IGVpbmZhY2ggYmxvc3MgZWluIGJpc3NjaGVuIEtub2VwZmUKZHJ1ZWNrZW4sCm5laW4sIGRhcyBSZXBlcnRvaXJlIGlzdCBlbm9ybTogQnVlY2hlciBrYXVmZW4gKHVuZCBsZXNlbiEgKSwgSG90bGluZXMKYW5ydWZlbiAodW5kIGRhYmVpIHRldXJlIE11c2lrIGhvZXJlbiEpIG9kZXIgZ2FyIChlaGVtYWxpZ2UpIEZyZXVuZGUgenUKc2ljaCBlaW5sYWRlbiwgenVtIE1pdHNwaWVsZW4uCgoqTGljaHQgYXVzbWFjaGVuKgp+fn5+fn5+fn5+fn5+fn4KSXJnZW5kd2FubiBtdXNzIGF1Y2ggQmlsbGdvdGNoaSBzY2hsYWZlbiBnZWhlbi4gRnJ1ZWhlciBrbmlwc3RlIG1hbgplaW5mYWNoIG1pdCBkZW0gZGlja2VuIFNjaGFsdGVyIGRhcyBMaWNodCBhdXMsIGFiZXIgc2VpdCBHb3RjaGkgc28KaG9jaGVudHdpY2tlbHQgaXN0LCBiZXN0ZWh0IGVyIGF1ZiBlaW5lbSBrb21wbGl6aWVydGVuClp1LUJldHQtR2VoLVJpdHVzLiBBdXMgdW5lcmZpbmRsaWNoZW4gR3J1ZW5kZW4gc2FndCBlciBkYXp1CiJIZXJ1bnRlcmZhaHJlbiIgKGluIGRpZSBIb2VsbGU/KS4gU2VsdGVuIGdlaHQgZXIgZ2xlaWNoIHNjaGxhZmVuLCBzb25kZXJuIApmcmFndCBub2NoIGR1bW1lcyBaZXVnIChtb2VjaHRlbiBTaWUgZGllIEFlbmRlcnVuZ2VuIGluIF4jPGt3cnhMVDM0LGIpJSBpCnNwZWljaGVybj8pLgpCb2NraWcgd2lyZCB1bnNlciBMaWVibGluZywgd2VubiBlciBhbHRlbiBLcmFtIGF1cyBkZXIgU3BpZWx6ZXVnRE9TZQpiZWtvbW1lbiBoYXQuIERhbm4gbnVzY2hlbHQgZXIgdG9kbXVlZGUgenVlcnN0IF9BbndlbmR1bmcgYmVlbmRlbl8gb2huZQpIZXJyY2hlbiBkYXMgZGF6dWdlaG9lcmlnZSBHZWhlaW1uaXMgKFN0cmctQWx0LVEgb2RlciBzbykgenUgdmVycmF0ZW4uCkVpbiBlY2h0ZXMgTWlzdHN0dWVjayB3aXJkIEJpbGxnb3RjaGksIHdlbm4gbWFuIHZvciBzZWluZW0gQWJlbmRnZWJldApldHdhIGRlbiBTY2FubmVyIGF1c3NjaGFsdGV0OiBEYW5uIGdlaHQgZXIgbnVyIG1pdCByb2hlciBHZXdhbHQgaW4KZGllIEhlaWEsIHVuZCBrZWluZXIgd2Vpc3MsIHdhcyBmdWVyIGVpbiBNb25zdGVyIGVyIGFtIG5hZWNoc3RlbiBNb3JnZW4KaXN0IQoKX0RhcyBFbmRlXwpLYW5uIEJpbGxnb3RjaGkgc3RlcmJlbj8gRGllIGdyYXVzaWdlIEFudHdvcnQ6IG5laW4hIElyZ2VuZHdpZSBrcmFiYmVsdAplciBqZWRlc21hbCB3aWVkZXIgYXVzIGRlciBHcnViZS4gV2llIG9mdCBzY2hvbiBnYWIgZXMgSG9mZm51bmcsIGRhc3MgZGFzCmFsdGUgQmllc3QgZnVlciBpbW1lciB1ZWJlciBkZW4gSm9yZGFuIGlzdCwgYWJlciBqZWRlc21hbCBicmFjaHRlIGRlcgpIZXJzdGVsbGVyIGVpbiBuZXVlcywgbm9jaCBidW50ZXJlcywgbm9jaCB0b2xsZXJlcyBCaWxsZ290Y2hpIGhlcmF1cywKdW5kIGRpZSBTZXVjaGUgaGllbHQgYW4uIEphLCBzaWUgZXJmYXNzdCBzb2dhciBiZXN0YWVuZGlnIG1laHIgTWVuc2NoZW4uCkFiZXJtaWxsaW9uZW4gdm9uIEJpbGxnb3RjaGktSGVycmNoZW4gaGFiZW4gZGllIEtlbGxlcnJlZ2FsZSB2b2xsIG1pdApkZW4gYWx0ZW4gU2NoYWNodGVsbiBkZXIgdGV1cmVuIGFsdGVuIFZlcnNpb25lbi4gQWJlciBpcmdlbmR3aWUgaXN0IGVyCnVucyBhbGxlbiBqYSBhdWNoIGdhbnogYXJnIGFucyBIZXJ6IGdld2FjaHNlbiwgb2Rlcj8KCktvYmF5YXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYmxvbmRpbmVuIChCaXJkeSwgMjYuIEF1ZyAxOTk3LCAxNjo0NjowMCk6CldpZSBicmluZ3QgbWFuIGRpZSBBdWdlbiBlaW5lciBCbG9uZGluZSB6dW0gTGV1Y2h0ZW4gPwoKVGFzY2hlbmxhbXBlIGFuIGVpbiBPaHIgaGFsdGVuICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvd2JveXMgISAoQmlyZHksIDI2LiBBdWcgMTk5NywgMTY6NTA6MTkpOgoKRWluIENvd2JveSBpc3QgZnJpc2NoIHZlcmhlaXJhdGV0IHVuZCByZWl0ZXQgbWl0IHNlaW5lciBGcmF1IG5hY2ggSGF1c2UgenVyClJhbmNoLgpBdWYgZWlubWFsIHN0cmF1Y2hlbHQgZGFzIFBmZXJkLgpEZXIgQ293Ym95IHNhZ3Q6IkVpbnMuIgpEaWUgRnJhdSB3dW5kZXJ0IHNpY2gsIHNhZ3QgYWJlciBuaWNodHMuClNpZSByZWl0ZW4gd2VpdGVyLgpBdWYgZWlubWFsIHN0cmF1Y2hlbHQgZGFzIFBmZXJkIHdpZWRlci4KRGVyIENvd2JveSBzYWd0OiJad2VpLiIKU2VpbmUgRnJhdSBoZWJ0IHNjaG9uIGFuLCBldHdhcyB6dSBzYWdlbiwgbGFlc3N0IGVzIGFiZXIgZGFubiBkb2NoIGJsZWliZW4uCkRpZSBSYW5jaCBpc3Qgc2Nob24gaW4gU2ljaHR3ZWl0ZSwgZGEgc3RyYXVjaGVsdCBkYXMgUGZlcmQgZGVzIENvd2JveXMgenVtCmRyaXR0ZW5tYWwuCkRlciBDb3dib3kgc3RlaWd0IGFiLCBzYWd0OiJEcmVpIiB1bmQgZXJzY2hpZXNzdCBkYXMgUGZlcmQuCkRhcmF1ZiBzZWluZSBGcmF1IHp1IGlobToiV2FydW0gaGFzdCBkdSBkYXMgZ2V0YW4/IgpEZXIgQ293Ym95IHNhZ3Q6IkVpbnMuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmEsIHdhcyBsdXN0aWdlcyBoYWx0Li4uIChGeXQsIDI3LiBBdWcgMTk5NywgMDk6MzA6NDMpOgoqIExpc3Q6IGpvdGQtbGlzdEB1d2hvbWUubXBpLmh0d20uZGUKCkdPT0QgRU5HTElTSAoKCi4uIG9yIHR3byBzdHJhbmdlcnMgbWVldCBpbiBMb25kb24uClRoZXkgc3RhcnQgYSBjb252ZXJzYXRpb24gOgoKLSBIZWxsbywgU2lyLCBob3cgZ29lcyBpdCB5b3UgPwotIE9oLCB0aGFuayB5b3UgZm9yIHRoZSBhZnRlcnF1ZXN0aW9uLgotIEFyZSB5b3UgYWxyZWFkeSBsb25nIGhlcmUgPwotIE5vLCBmaXJzdCBhIHBhaXIgZGF5cy4gSSdtIG5vdCBvdXQgTG9uZG9uLgotIFRodW5kZXJ3ZWF0aGVyLCB0aGF0IG92ZXJydXNoZXMgbWUuIFlvdSBzZWUgbm90IHNvIG91dC4KLSBUaGF0IGNhbiB5ZXMgYmVmb3Jjb21lLiBCdXQgbm93IHdoYXQgb3RoZXIuIE15IGhhaXJzIHN0b29kCnRvIG1vdW50YWluIGFzIEkgdGhlIHRyYWZmaWMgc2F3LiBTbyBtdWNoIGNhcnMgZ2l2ZXMgaXQgaGVyZS4KLSBZb3UgYXJlIGhlYXZ5IG9uIHRoZSB3b29kd2F5IGlmIHlvdSBiZWxpZXZlIHRoYXQgaW4gTG9uZG9uCmhvcnNlZHJvdmV3b3JrcyBnby4KLSBXaWxsIHdlIG5vdyBiZWVyIGRyaW5rIGdvPyBNeSB0aHJvYXQgaXMgb3V0ZHJpZWQuIEJ1dCBsb29rCnRoZXJlIGlzIGEgZ3Vlc3Rob3VzZS4KLSBMZXQgdXMgbWFuIHRoZXJlIGdvLgotIFRoYXQgaXMgYSBnb29kIHRoaW5rISBFcXVhbCBnb2VzIGl0IGxvb3NlLiBJIHdpbGwgb25seSBteQpzaG9lYmFuZHMgY2xvc2UuCi0gSGVyZSB3ZSBhcmUuIE1ha2UgcGxlYXNlIHRoZSBkb29yIG9wZW4uCi0gQnV0IHRoZXJlIGlzIGEgYmVmb3JoYW5naW5nY2FzdGxlLCB0aGUgZWNvbm9teSBpcyB0by4KLSBIb3cgc29ycnkhIFRoZW4gd2lsbCBJIGJhY2ggZ28gdG8gdGhlIGhvdGVsLCBpdCBpcyBhbHJlYWR5CnJldGFyZC4gT24gYWdhaW5zZWUhCi0gTyB5ZXMsIEkgd2lsbCB0b28gZ28uIEkgbXVzdCBnZXQgdGhlIHRyYWluIHRvIEJhY2tzaWRlbW9ua2V5LQpjYXN0bGUuIEF1ZiBXaWVkZXJzZWhlbiEKCi0gTmFudSwgc2luZCBTaWUgRGV1dHNjaGVyPwotIEphLCBTaWUgYXVjaD8gRGFzIHd1bmRlcnQgbWljaCBhYmVyLiBJaHIgRW5nbGlzY2ggaXN0IHNvCmhlcnZvcnJhZ2VuZCwgZGEgaWNoIGVzIGdhciBuaWNodCBiZW1lcmt0IGhhYmUhCgpBbmQgdGhlbiB0aGV5IG1hZGUgdGhlbSBtZS1ub3RoaW5nIHlvdS1ub3RoaW5nIG91dCBvZiB0aGUgZHVzdC4KCgoKRnl0LgoKClBTOiBOYWphLCBlaWdlbnRsaWNoIGhhZXR0ZSBpY2gncyBqYSBpbjogJ1RyZWZmZW4gc2ljaCB6d2VpIE1hZ2llciBhdXMKZGVtIFRhcHBNdWQnIHVtYmVuZW5uZSBtdWVzc2VuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1c2VuZXQuLi4gKFdhcmdvbiwgMjkuIEF1ZyAxOTk3LCAxMDo0NzozMik6Cj4gVGhlIGNvbXB1dGVyIGFsbG93cyB5b3UgdG8gbWFrZSBtaXN0YWtlcyBmYXN0ZXIgdGhhbiBhbnkgb3RoZXIgaW52ZW50aW9uLAo+IHdpdGggdGhlIHBvc3NpYmxlIGV4Y2VwdGlvbiBvZiBoYW5kZ3VucyBhbmQgdGVxdWlsYS4KPiBBbm9ueW1vdXMgIAoKICJNYWtlIGl0IGlkaW90IHByb29mIGFuZCBzb21lb25lIHdpbGwgbWFrZSBhIGJldHRlciBpZGlvdCIsIEJpbGwgQXJuZXR0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYW1hbHMgaW4gZGVuIEFyZGVubmVuLi4uIChFbmd5d3VjaywgMjkuIEF1ZyAxOTk3LCAxODo0NDoyOSk6CiJIZXksIHdhcyBpc3QgbG9zLCBEdSBzaWVoc3Qgc28gYmVkcnVlY2t0IGF1cy4iCiJBY2gsIGljaCB3YXIgbmV1bGljaCBhdWYgQmFlcmVuamFnZC4iCiJKYSB1bmQ/IgoiRGEgc3RlaCBpY2ggcGxvZXR6bGljaCB2b3IgZWluZW0gUmllc2VuLUdyaXp6bHksIHJlaXNzZSBkYXMgR2V3ZWhyIGhvY2ggdW5kCmRydWVja2UgYWIuIEFiZXIgZXIgZHVja3Qgc2ljaCwgc3ByaW5ndCBtaWNoIGFuIHVuZCB2b2VnZWx0IG1pY2ggdm9uIGhpbnRlbgp1bmQgdm9ybmUgZHVyY2guIgoiSmEsIGFiZXIgRHUgbGVic3Qgbm9jaCEgV2FydW0gc2l0enQgRHUgZGVubiBoaWVyIHVuZCBibGFlc3QgVHJ1ZWJzYWw/IgoiQWNoLCBlciBzY2hyZWlidCBuaWNodCwgZXIgcnVmdCBuaWNodCBhbi4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphbiBkZXIgdGhla2UgKEJvbGRlciwgIDEuIFNlcCAxOTk3LCAxNTo1MzoxMSk6CkVpbiBTdG90dGVyZXIgdW5kIGVpbiBHbGF0emtvcGYgc2l0emVuIGFuIGRlciBUaGVrZS4uLi4KTmFjaCBlaW5lciBXZWlsZSBkZW5rdCBzaWNoIGRlciBTdG90dGVyZXIgZXIgbXVlc3NlIGRlbiBHbGF0emtvcGYgYWVyZ2VybiB1bmQKZ2VodCBoaW4gdW5kIGZyYWd0IGlobjoKRHVkdWR1IHNhc2FzYWcgbSBtIG1hbCB3aWV3aWV3aWV2aXZpdmllbCBiZWJlemFoemFoemFobHN0IGR1ZHUgZiBmIGZ1ZWhyIGUgZQplaW5lbgpIYWhhaGFhcnNjaHNjaG5pdHQ/CgpBbnR3b3J0ZXQgZGVyIEdsYXR6a29wZjoKMzAsLSBNYXJrIC4uLiBzb3ZpZWwgd2llIGR1IGZ1ZXIgZWluIE9ydHNnZXNwcmFlY2guCgpCb2xkZXIgaGV1dGUgbWFsIHdpZWRlciBhbSBXaXR6ZSB2ZXJ0ZWlsZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkluIGVyaW5uZXJ1bmcgYW4ga2V5ICAoQmlyZHksICAyLiBTZXAgMTk5NywgMTM6NDE6MzEpOgpFaW4gTWFubiBzdGVodCBhbiBlaW5lciBLcmV1enVuZy4KQXVmIGVpbm1hbCB3aXJkIGVyIHZvbiBLZXkgYW5nZXNwcm9jaGVuLgoiRW50c2NodWxkaWd1bmcsIHdvIGJpbiBpY2ggaGllciA/IgpTYWd0IGRlciBNYW5uOiIgTGluZGVuLSBFY2tlIEhhdXB0c3RyYXNzZS4iClNhZ3QgS2V5IHZlcnp3ZWlmZWx0OiJLZWluZSBFaW56ZWxoZWl0ZW4gISBJbiB3ZWxjaGVyIFN0YWR0ID8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW4gZXJpbm5lcnVuZyBhbiBrZXkgIChLZXksICAyLiBTZXAgMTk5NywgMTY6MjA6NTkpOgp+IyEgcm49QmlyZHkgcnQ9ODczMjAwNDkxIHJnPXdpdHplCn4jISB0aWQ9ODczMjAwNDkxClNjaG9lbiBnbGVpY2hlcyBTcGllbCBub2NobWFsCgpMb3NjaCBkZW4gQXJ0aWtlbC4KCktleSBzY2hyZWlidCBkYXMgbmFlY2hzdGUgbWFsIGFscyBwcyBuZW4gV2l0eiB3ZW5ucyBzZWluIG11c3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEluIGVyaW5uZXJ1bmcgYW4ga2V5ICAoR3JpbW1ib3JuLCAgMi4gU2VwIDE5OTcsIDE2OjI1OjQ3KToKfiMhIHJuPUtleSBydD04NzMyMTAwNTkgcmc9d2l0emUKfiMhIHRpZD04NzMyMDA0OTEKQmlyZHkga2FubiBkYXMgaGllciBuaWNodCBsb2VzY2hlbi4uLgoKQWxzbywgd2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gUG9saXRpa2VyIHVuZCBlaW5lbQpUZWxlZm9uaG9lcmVyPwpEZW4gVGVsZWZvbmhvZXJlciBrYW5uIG1hbiBhdWZoYWVuZ2VuLCB3ZW5uIG1hbiBzaWNoIHZlcndhZWhsdCBoYXQuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCBmdWVocnQgYXVjaCBtYWwgZWluZW4gV2l0eiB2b3IuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJbiBlcmlubmVydW5nIGFuIGtleSAgKFJhZmZpLCAgNC4gU2VwIDE5OTcsIDEwOjA3OjI3KToKfiMhIHJuPUdyaW1tYm9ybiBydD04NzMyMTAzNDcgcmc9d2l0emUKfiMhIHRpZD04NzMyMDA0OTEKSGllciBtaXQgdm9yd29ydCBmdWVyIEdyaW1taToKCkRJRVMgSVNUIEVJTiBXSVRaLgoKQmVzdGVodCBMYWNoendhbmcgaW4gZGVyIEZyYWt0aW9uID8KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBJbiBlcmlubmVydW5nIGFuIGtleSAgKEdyaW1tYm9ybiwgIDQuIFNlcCAxOTk3LCAxMjowNToyNyk6Cn4jISBybj1SYWZmaSBydD04NzMzNjA0NDcgcmc9d2l0emUKfiMhIHRpZD04NzMyMDA0OTEKVmllbGxlaWNodCBmZWhsdCBkYSBlaW5lIFJ1YnJpayAiYW50aXdpdHplIi4gSWNoIGtlbm4gZGEgYXVjaCBlaW5lbjoKCkRhcyBQZmVyZCBpc3Qgdm9ybmUgaGludGVuIGFscyBob2VoZXIuCkhhaGFoYS4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VyYnVuZyAoSG9ibywgIDQuIFNlcCAxOTk3LCAxMjoyOTo1NCk6CgpJY2gga2VubiBhdWNoIGVpbmVuOgoKTmV1ZSBXZXJidW5nOgoKTWFjaGVuIFNpZSBVcmxhdWIhCktvbW1lbiBTaWUgbmFjaCBQb2xlbiEKSWhyIEF1dG8gaXN0IHNjaG9uIGRvcnQhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZmVybmZhaHJlciAoQ2VyZWJ1cywgIDQuIFNlcCAxOTk3LCAxNDozNzowNSk6CkVpbiBGZXJuZmFocmVyLCBzY2hvbiA0MCBzdHVuZGVuIGhpbnRlcm0gc3RldWVyLCBicmV0dGVydCB1ZWJlciBlaW5lCmxhbmRzdHJhc3NlLiBhdWYgZWlubWFsIHNpZWh0IGVyIGVpbiBrbGVpbmVzIG1hZW5uY2hlbiBhbSBzdHJhc3NlbnJhbmQgc3RlaGVuLgpEZXIgRmVybmZhaHJlciBzdGVpZ3QgYXVmIGRpZSBCcmVtc2UsIHJlaXNzdCBkYXMgU3RldWVyIHJ1bSwga29tbXQgbWl0ClFVVVVVVUlJSUlFRUVUU0NIRU5ERU4gcmVpZmVuIHp1bSBzdGVoZW4sIGRlbmt0IHNpY2g6ICJzY2hlaXNzZSwgaGFiZSBpY2ggZGVuCnVtZ2VmYWhyZW4/PyIsIHN0ZWlndCBhdXMsIGxhZXVmdCB1bSBkZW4gdHJ1Y2sgcnVtLCBkYXMga2xlaW5lIG1hZW5uY2hlbiBzdGVodApub2NoIGltbWVyIGRhIHVuZCB6aXR0ZXJ0IHVuZCBiaWJiZXJ0IHZvciBzY2hyZWNrLiBkZXIgZmVybmZhaHJlciBtZWludDogImhleSwKa2xlaW5lcyBtYWVubmNoZW4sIGRhcyB3YXIgYWJlciB6aWVtbGljaCBrbmFwcCBnZXJhZGUhIi4gRGFzIG1hZW5uY2hlbiBuaWNrdAp1bmQgbWVpbnQ6ICJqYXdvaGwsIGFiZXIgd2VpbCBpY2ggZWluIGdsdWVja3N6d2VyZyBiaW4gdW5kIGR1IG1pY2ggbmljaHQKdW1nZWZhaHJlbiBoYXN0LCBkYXJmc3QgRHUgRGlyIGpldHp0IHdhcyB3dWVuc2NoZW4hIgpkZXIgZmVybmZhaHJlciB1ZWJlcmxlZ3QgZWluZSB3ZWlsZSB1bmQgbWVpbnQgZGFubjogImhtbSwgb2ssIGFsc28gaW4KVHNjaGV0c2NoZW5pZW4sIGRhIGJla2FlbXBmZW4gZGllIHNpY2ggamV0enQgc2Nob24gc2VpdCAzIGphaHJlbi4gaWNoIHNlaCBkYXMKaW1tZXIgaW4gZGVuIG5hY2hyaWNodGVuLCB1bmQgaWNoIGZpbmRlIGRhcyBnYW56IHNjaHJlY2tsaWNoLCBhbHNvIGljaAp3dWVuc2NoZSBtaXIsIGRhc3MgZGEgZnJpZWRlbiBpc3QuIgpEYXMga2xlaW5lIG1hZW5uY2hlbiBndWNrdCBnYW56IHZlcmR1dHp0OiAiV28/IFRzY2hldHNjaGVuaWVuPyBkYXMgaGFiZSBpY2ggamEKbm9jaCBuaWUgZ2Vob2VydCwga2VpbmUgYWhudW5nLCB3byBkYXMgc2VpbiBzb2xsLCBuZWUsIHR1dCBtaXIgbGVpZCwgZGFzIGthbm4KaWNoIG5pY2h0IG1hY2hlbiwgc28gZWluIGh1bWJ1ZywgdHNjaGV0c2NoZW5pZW4sIHNvcnJ5LCBkZW4gd3Vuc2NoIGthbm4gaWNoCkRpciBuaWNodCBlcmZ1ZWxsZW4sIER1IG11c3N0IERpciB3YXMgbmV1ZXMgd3VlbnNjaGVuLi4iCkRlciBGZXJuZmFocmVyIHVlYmVybGVndCBub2NobWFsIHVuZCBtZWludCBuYWNoIGVpbmVyIFdlaWxlOiAiT2ssIGljaCB3dWVuc2NoZQptaXIsIGRhc3MgbWVpbmUgRnJhdSBnZW5hdXNvIHNjaG9lbiB1bmQgbmV0dCBpc3Qgd2llIHZvciAzMCBKYWhyZW4sIGFscyB3aXIKdW5zIGtlbm5lbmdlbGVybnQgaGFiZW4uIgpEZXIgR2x1ZWNrc3p3ZXJnIG5pY2t0IGFuZXJrZW5uZW5kLCAiRGFzIG5lbm5lIGljaCBlaW5lbiBnZXNjaGVpdGVuIFd1bnNjaCwKamV0enQgZmFociBtaWNoIG1hbCB6dSBEaXIsIGRhbm4gc2NoYXUgaWNoIG1pciBEZWluZSBGcmF1IGFuIHVuZCBkYW5uIGdlaHQgZGFzCmluIE9yZG51bmcuLi4hISIKT2ssIGRpZSBiZWlkZW4gZmFocmVuIGFsc28genVtIEZlcm5mYWhyZXIgbmFjaCBIYXVzZSwgZGFzIE1hZW5uY2hlbiBnZWh0IGlucwpIYXVzLCBrb21tdCBrdXJ6IGRhcmF1ZiB3aWVkZXIgcmF1cyB1bmQgc2FndDogIkFsc28gamV0enQgZ2liIG1pciBtYWwgbmVuCkF0bGFzLCBkYW5uIHNjaGF1ZW4gd2lyIG1hbCwgd28gZGllc2VzIFRzY2hldHNjaGVuaWVuIGxpZWd0LiwuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEluIGVyaW5uZXJ1bmcgYW4ga2V5ICAoWWFyZW4sICA0LiBTZXAgMTk5NywgMTQ6Mzk6NDMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3MzM2NzUyNyByZz13aXR6ZQp+IyEgdGlkPTg3MzIwMDQ5MQpEZXIgV2l0eiBoZWlzc3QgdWVicmlnZW5zOgoKVWViZXJuIEJlcmcgaXN0cyBrdWVyemVyIGFscyB6dSBGdXNzLgoKWWFyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpZdXBwaWVzIChBc21vZGlzLCAgNC4gU2VwIDE5OTcsIDIwOjMyOjIyKToKRXJ6YWVobHQgZGVyIFl1cHBpZSBiZWltIFBzeWNoaWF0ZXI6CgonRXMgaXN0IGltbWVyIGRlcnNlbGJlIEFscHRyYXVtOiBNZWluIEhhbmR5IGltIEFrdGVua29mZmVyCmtsaW5nZWx0IHVuZCBpY2ggaGFiZSBkZW4gT2VmZm51bmdzLUNvZGUgdmVyZ2Vzc2VuIC4uLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEluIGVyaW5uZXJ1bmcgYW4ga2V5ICAoQ2FyYWRocmFzLCAgNC4gU2VwIDE5OTcsIDIwOjQwOjE1KToKfiMhIHJuPVlhcmVuIHJ0PTg3MzM3Njc4MyByZz13aXR6ZQp+IyEgdGlkPTg3MzIwMDQ5MQpXYXMgaXMgbWl0IG1pciwgWWFyZW4/ICprcmF0eioKCiAgICAgQmVyZ2NoZW4gY2FyYWRocmFzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBJbiBlcmlubmVydW5nIGFuIGtleSAgKFlhcmVuLCAgNC4gU2VwIDE5OTcsIDIxOjUzOjM1KToKfiMhIHJuPUNhcmFkaHJhcyBydD04NzMzOTg0MTUgcmc9d2l0emUKfiMhIHRpZD04NzMyMDA0OTEKVWViZXIgRGljaCBpc3RzIGJlc3RpbW10IGxhZW5nZXIgYWxzIG1pdHRlbSBBdXRvIC4uLgoKWWFyZW4uIEtlbm50IGphIG5pY2h0IGFsbGUgQmVyZ2UgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmdlc3VuZCAoQmxvb2R5aGFycnksICA1LiBTZXAgMTk5NywgMTM6NDY6NTUpOgpUYXJhZ29uIGlzdCBhbndlc2VuZCwKVm9sbGVyIE5hbWU6IFRhcmFnb24gZGVyIE1laXN0ZXJhbndhZXJ0ZXIKUmFzc2U6IEVsZiwgIEdpbGRlOiBaYXViZXJlciwgIEdlc2NobGVjaHQ6IG1hZW5ubGljaAp6LlouIGFid2VzZW5kLCBHcnVuZCAgOiBSQVVjaGVuCkJpc2hlciBiZXJlaXRzIDU3IG1hbCBnZXN0b3JiZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvbW10IGVpbiBNYW5uIHp1bSBBcnp0LiAoVHdlZWcsICA4LiBTZXAgMTk5NywgMTk6MTY6NDUpOgoKRGVyIE1hbm46IiBIZXJyIERva3Rvciwgc2llIG11ZXNzZW4gbWljaCB1bmJlZGluZ3Qga3JhbmtzY2hyZWliZW4sIAogICAgICAgICBpY2ggbXVzcyB2b24gZnJ1ZWggYmlzIHNwYWV0IGFyYmVpdGVuIHVuZCBicmF1Y2ggZG9jaCBhYmVyIAogICAgICAgIGRyaW5nZW5kIGV0d2FzIFplaXQgdW0gZXR3YXMgR2FydGVuYXJiZWl0IHp1IGVybGVkaWdlbiEiCgpEZXIgRG9rdG9yIHVudGVyc3VjaHQgaWhuIGt1cnosIGthbm4gYWJlciBuaWNodHMgZmVzdHN0ZWxsZW4uCgpEZXIgTWFubjoiIEJpdHRlIEhlcnIgRG9rdG9yIHNpZSBtdWVzc2VuIG1pY2gga3JhbmtzY2hyZWliZW4hISEKCkRlciBEb2t0b3I6IiBPaywgemllaGVuIHNpZSBzaWNoIG5hY2t0IGF1cy4iCgpEYXMgdHV0IGRlciBNYW5uLgoKRGVyIERva3RvcjoiIFN0ZWNrZW4gc2llIHNpY2ggaWhyZW4gWmVpZ2VmaW5nZXIgaW4gZGVuIFBvLiIKCkF1Y2ggZGFzIHR1dCBkZXIgTWFubiwgd2VubiBhdWNoIHdpZGVyd2lsbGlnLgoKRGVyIERva3RvcjsiIE51biBsZWNrZW4gc2llIGRlbiBGaW5nZXIgYWIhIgoKRGVyIE1hbm46IiBIZXJyIERva3RvciwgZGFzIGlzdCBla2xpZy4gTmVpbiBkYXMgd2VyZGUgaWNoIG5pY2h0IHR1biEiCgoKCgoKRGVyIERva3RvcjoiIEFoYSEgRGEgaGFiZW4gd2lyIGVzIGphLCBnYW56IGVpbmRldXRpZyBBcHBldGl0bG9zaWdrZWl0ISIKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW5lci4uLiAoQW5hY3Jpb24sICA4LiBTZXAgMTk5NywgMTk6MTg6NDYpOgpLb21tdCBlaW5lIEZyYXUgenVtIEFyenQuCgonIEhlcnIgRG9rdG9yLCBIZXJyIERva3RvciwgbWVpbmUgU3BpcmFsZSBpc3QgaW0gQXJzY2guLi4uJwonQW50d29ydDogJyBKYSwgZGEgZ2Vob2VydCBzaWUgYXVjaCBuaWNodCBoaW4uLi4nCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVjaCBlaW5lciAoSGFuZ292ZXIsICA4LiBTZXAgMTk5NywgMTk6MjA6MDMpOgpLb21tdCBuZSBGcmF1IHp1bSBBcnp0LgoKIkhlcnIgRG9rdG9yLCBpY2ggaGFiIGVpbmVuIEtub3RlbiBpbiBkZXIgQnJ1c3QhIgoiTmEsIHdlciBtYWNodCBkZW5uIHNvd2FzLi4uPyIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgTk9DSCBlaW5lci4uIChBbmFjcmlvbiwgIDguIFNlcCAxOTk3LCAxOToyMTowNyk6CktvbW10IG5lIEZyYXUgenVtIEFyenQuCiJIZXJyIERva3RvciwgbWVpbmUgU3ByaWFsZSBpc3QgaW0gQXJzY2guLiIKIiBOYSBkYW5uIGtvbW1lbiBzZSBtYWwgaGVyLi4iCkJvaW5nLWJvaW5nLWJvaW5nLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FjaHN0dW1zcHJvYnMgKFR3ZWVnLCAgOC4gU2VwIDE5OTcsIDE5OjI0OjAxKToKRWluIGp1bmdlcyBFaGVwYWFyIGJlaW0gQXJ6dC4KCkVyOiBIZXJyIERva3RvciwgbWVpbmUgRnJhdSBpc3QgaW0gNyBNb25hdCBzY2h3YW5nZXIsIG1hbiBzaWVodCBhYmVyIHJlaW4gCmdhciBuaWNodHMuIEVzIHNjaGVpbnQgZ2VyYWRlc28sIGFscyB3dWVyZGUgZGFzIEtpbmQgamVnbGljaGUgTmFocnVuZwp2ZXJ3ZWlnZXJuLgoKRGVyIERva3RvciB1bnRlcnN1Y2h0IGRpZSBGcmF1IGt1cnosIG1laW50IGRhbm4gYXVjaCwgZGFzIGRhIGV0d2FzIG5pY2h0CnN0aW1tZW4ga29lbm50ZS4KCgpEZXIgRG9rdG9yOiBKdW5nZSBGcmF1LCB6aWVoZW4gc2llIHNpY2ggYml0dGUgbWFsIG5hY2t0IGF1cyB1bmQgc2V0emVuIHNpZSAKc2ljaHQgZGEgYXVmIGRlbiBUaXNjaC4KCkRpZSBGcmF1IHd1bmRlcnQgc2ljaCwgdHV0IGFiZXIgd2llIGlociBnZWhlaXNzZW4uCgpEZXIgRG9rdG9yIG9lZmZuZSBlaW5lIFR1ZXRlIEhhZmVyZmxvY2tlbiwgZGllIGF1ZiBzZWluZW0gVGlzY2ggc3RlaHQsIAp6aWVodCBzaWNoIGRpZSBIb3NlIHJ1bnRlciwuCkRhbm4gbGVndCBlciBzaWNoIGVpbmUgSGFmZXJmbG9ja2UgYXVmIGRlbiBTY2h3YW56IGZ1ZWhydCBpaG4gZGVyIEZyYXUgZWluLgoKRGFuYWNoIG5pbW0gZXIgd2llZGVyIGVpbmUgSGFmZXJmbG9ja2UgdW5kIGRhcyBTcGllbGUgd2llZGVyaG9sdCBzaWNoIApub2NoIGV0bGljaGUgTWFsZS4KCkRlciBNYW5uOiBBbHNvIEhlcnIgRG9rdG9yISBXZW5uIGljaCBqZXR6dCBuaWNodCBnZW5hdSB3dWVzc3RlLCBkYXMgc2llCm1laW4gS2luZCBmdWV0dGVybiwgd3VlcmRlIGljaCBkZW5rZW4sIHNpZSBidW1zZW4gbWVpbmUgRnJhdS4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTm9jaCBlaW5lci4uLiAoVHJla2FuLCAgOC4gU2VwIDE5OTcsIDIxOjQ1OjEzKToKfiMhIHJuPUFuYWNyaW9uIHJ0PTg3MzczOTEyNiByZz13aXR6ZQp+IyEgdGlkPTg3MzczOTEyNgpLb21tdCBuZSBGcmF1IGJlaW0gQXJ6dC4KOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhY2tlciAoUm9jaHVzLCAgOS4gU2VwIDE5OTcsIDEzOjQ2OjE5KToKPj4+SWNoIGtubnRlIGVpbiBwYWFyIHRpcHMgenVtIGhhY2tlbiBnZWJyYXVjaGVuIQo+PkFtIGJlc3RlbiBnZWh0IGVzIG1pdCBlaW5lciBzb2cuICJBeHQiLiBBZXh0ZSBnaWJ0J3MgYmVpIE9CSS4KPj5NYW4gZXJncmVpZnQgZGVuIFN0aWVsIChkZXIgaG9lbHplcm5lIFRlaWwgZGVyIEF4dCkgbWl0IGJlaWRlbiBIYWVuZGVuLCBoZWJ0Cj4+ZGllIEhhZW5kZSBtaXQgZWJlbmRpZXNlciBBeHQgaG9jaCB1ZWJlciBkZW4gS29wZiB1bmQgbGFlc3N0IHNpZSBtaXQgdm9sbGVyCj4+V3VjaHQgYXVmIGRhcyB6dSBoYWNrZW5kZSBPYmpla3Qgc2F1c2VuLgo+RGllIHNjaGFyZmUgU2VpdGUgZGVzIEtvcGZlcyAoZGVyIEVpc2Vua2x1bXBlbiBhbSBTdGllbCAoc2llaGUgb2JlbikpCj5tdXNzIG1vZWdsaWNoc3RzZW5rcmVjaHQgbmFjaCB1bnRlbiB6ZWlnZW4uIEVzIGlzdCBkYWJlaSB6dSBiZWFjaHRlbiwKPmRhc3MgZGFzIFppZWwgKCJ6dSBoYWNrZW5kZXMgT2JqZWt0IiBpbSBvYmlnZW4gU2lubmUpIGRhYmVpCj5iZXNjaGFlZGlndCB3aXJkLgpEYSBzaWVoc3QgZHUgbWFsLCBUaG9tYXMgSmFud2xlY2tlIDxKYW53bGVja2VAdC1vbmxpbmUuZGU+LCB3aWUgc2NobmVsbApoaWVyIGltIE5ldHogZ2Vob2xmZW4gd2lyZC4KRWluZSBrbGVpbmUgRnJhZ2UsIHVuZCBzY2hvbiBoYWdlbHQgZXMgVGlwcy4KSGFzdCBkdSBzb25zdCBub2NoIEZyYWdlbiB6dW0gSGFja2VuPwoKKEF1cyBkZS5vcmcuY2NjKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVmaW5pdGlvbiB2b24gQmV0YS1Tb2Z0d2FyZSAoSGlnaGxhbmRlciwgMTAuIFNlcCAxOTk3LCAxNToxNjo0OSk6CkJld2FyZSBFeGVjdXRpbmcgVGhpcyBBcHBsaWNhdGlvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdXQVIgISEhIChCZWVsemVidWIsIDEwLiBTZXAgMTk5NywgMjA6MzE6NTUpOgpEaWVzZW4gV2l0eiBoYWIgaWNoIGltIEJvb2tsZXQgdm9uIGRlciBHV0FSLUNEIFJhZ25hcm9layBnZWxlc2VuLgpFciBrb21tdCBsZWlkZXIgbnVyIGF1ZiBlbmdsaXNjaC4uLgoKVGhlcmUgaXMgYSBiZW5lZml0IGF0IGEgY2hpbGRyZW4ncyBob3NwaXRhbCBhdHRlbmRlZCBieSBkb2N0b3JzLCBsYXd5ZXJzIGFuZApwcmllc3QuIEEgZmlyZSBicmVha3Mgb3V0LgpUaGUgZG9jdG9ycyBzYXk6ICJUaGUgY2hpbGRyZW4gISEhIgpUaGUgbGF3eWVycyBzYXk6ICJGdWNrIHRoZSBjaGlsZHJlbiAhIgpUaGUgcHJpZXN0cyBzYXk6ICJEbyB3ZSBoYXZlIHRpbWUgPyIKCmVpbiBib2VzZXIgV2l0eiB2b20gYm9lc2VuIAogICAgICBCZWVsemUqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogdW5kIE5PQ0ggZWluZXIuLiAoQXp6dXJvLCAxMS4gU2VwIDE5OTcsIDE2OjI2OjE3KToKfiMhIHJuPUFuYWNyaW9uIHJ0PTg3MzczOTI2NyByZz13aXR6ZQp+IyEgdGlkPTg3MzczOTI2NwpLb21tdCBuZW4gTWFubiB6dW0gQXJ6dC4KIlNpbmQgU2llIGRlciBBcnp0LCBkZXIgbWVpbmVyIEZyYXUgZGllIFNwaXJhbGUgZWluZ2VzZXR6dCBoYXQ/IgpEZXIgQXJ6dCBuaWNrdC4KRGVyIE1hbm4gZGV1dGV0IGFuIHNpY2ggcnVudGVyIHVuZCBtZWludDoKIkFibWFjaGVuISEhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU1BFRUQgKEJvdHRvbSwgMTYuIFNlcCAxOTk3LCAxMjo0OTo0Nyk6CgoKCk11ZW5kbGljaGVzIEFiaXR1ciBpbiBQaHlzaWsuIERlciBlcnN0ZSBTY2h1ZWxlciBrb21tdCBoZXJlaW4gdW5kIHdpcmQgdm9uCmRlbSBQcnVlZmVyIGdlZnJhZ3Q6CgogICAgICAgICAgICAgICJXYXMgaXN0IHNjaG5lbGxlciwgZGFzIExpY2h0IG9kZXIgZGVyIFNjaGFsbD8iCgogICAgIEFudHdvcnQ6ICJEZXIgU2NoYWxsIG5hdHVlcmxpY2ghIgoKICAgICBQcnVlZmVyOiAiS29lbm5lbiBTaWUgZGFzIGJlZ3J1ZW5kZW4/IgoKICAgICBBbnR3b3J0OiAiV2VubiBpY2ggbWVpbmVuIEZlcm5zZWhlciBlaW5zY2hhbHRlLCBrb21tdCB6dWVyc3QgZGVyIFRvbgogICAgICAgICAgICAgICB1bmQgZGFubiBkYXMgQmlsZC4iCgogICAgIFBydWVmZXI6ICJTaWUgc2luZCBkdXJjaGdlZmFsbGVuLiBEZXIgbmFlY2hzdGUgYml0dGUuIgoKCkRlciBuYWVjaHN0ZSBTY2h1ZWxlciBrb21tdCBoZXJlaW4gdW5kIGJla29tbXQgZGllIGdsZWljaGUgRnJhZ2UgZ2VzdGVsbHQuCgogICAgIEFudHdvcnQ6ICJEYXMgTGljaHQgbmF0dWVybGljaCEiCgogICAgIFBydWVmZXI6IChlcmxlaWNodGVydCB8YmVyIGRpZSBBbnR3b3J0KSAiS29lbm5lbiBTaWUgZGFzIGF1Y2gKICAgICAgICAgICAgICAgYmVncnVlbmRlbj8iCgogICAgIEFudHdvcnQ6ICJXZW5uIGljaCBtZWluIFJhZGlvIGVpbnNjaGFsdGUsIGRhbm4gbGV1Y2h0ZXQgZXJzdCBkYXMKICAgICAgICAgICAgICAgTGFlbXBjaGVuIHVuZCBkYW5uIGtvbW10IGRlciBUb24uIgoKICAgICBQcnVlZmVyOiAiUkFVUyEgU2llIHNpbmQgYXVjaCBkdXJjaGdlZmFsbGVuISBSdWZlbiBTaWUgZGVuIGxldHp0ZW4gCiAgICAgICAgICAgICAgIFNjaHVlbGVyIHJlaW4hIgoKClp1dm9yIGhvbHQgc2ljaCBkZXIgTGVocmVyIGVpbmUgVGFzY2hlbmxhbXBlIHVuZCBlaW5lIEh1cGUuIFZvciBkZW0gU2NodWVsZXIKbWFjaHQgZXIgZGllIFRhc2NoZW5sYW1wZSBhbiB1bmQgZ2xlaWNoemVpdGlnIGh1cHQgZXIuCgogICAgIFBydWVmZXI6ICAiV2FzIGhhYmVuIFNpZSB6dWVyc3Qgd2Focmdlbm9tbWVuLCBkYXMgTGljaHQgb2RlciBkZW4KICAgICAgICAgICAgICAgIFNjaGFsbD8iCgogICAgIFNjaHVlbGVyOiAiRGFzIExpY2h0IG5hdHVlcmxpY2guIgoKICAgICBQcnVlZmVyOiAgIktvZW5uZW4gU2llIGRhcyBhdWNoIGJlZ3J1ZW5kZW4/IgoKICAgICBTY2h1ZWxlcjogIk5hIGtsYXIhIERpZSBBdWdlbiBzaW5kIGRvY2ggd2VpdGVyIHZvcm5lIGFscyBkaWUgT2hyZW4uIgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBYmVudGV1ZXIgU3RyYXNzZW52ZXJrZWhyIChCb3R0b20sIDE2LiBTZXAgMTk5NywgMTM6MDM6MTUpOgoKCgoKRGllc2UgT3JnaW5hbHppdGF0ZSB2b24gVmVyc2ljaGVydW5nc2t1bmRlbiB3dXJkZW4gdm9uIGRlciBkZXV0c2NoZW4KVmVyc2ljaGVydW5nc3dpcnRzY2hhZnQgZ2VzYW1tZWx0OgoKLSBJY2ggZnVociBtaXQgbWVpbmVtIFdhZ2VuLCBnZWdlbiBkaWUgTGVpdHNjaGllbmUsIHVlYmVyc2NobHVnIG1pY2gKICB1bmQgcHJhbGx0ZSBnZWdlbiBlaW5lbiBCYXVtLiBEYW5uIHZlcmxvciBpY2ggZGllIEhlcnJzY2hhZnQgdWViZXIKICBtZWluIEF1dG8uCi0gQW4gZGVyIEtyZXV6dW5nIGhhdHQgaWNoIGVpbmVuIHVudm9yaGVyZ2VzZWhlbmVuIEFuZmFsbCB2b24KICBGYXJiZW5ibGluZGhlaXQuCi0gSW0gZ2VzZXR6bGljaCB6dWxhZXNzaWdlbiBIb2VjaHN0dGVtcG8ga29sbGlkaWVydGUgaWNoIG1pdCBlaW5lcgogIHVudm9yc2NocmlmdHNtYWVzc2lnZW4gRnJhdSBpbiBkZXIgR2VnZW5yaWNodHVuZy4KLSBJY2ggYml0dGUgdW0gU3R1bmR1bmcgZGVyIEthc2tvcHJhZW1pZS4gU2VpdCBtZWluIE1hbm4gZ2VzdG9yYmVuCiAgaXN0LCBmYWVsbHQgZXMgbWlyIG9obmVoaW4gc2Nod2VyIG1laW4ga2xlaW5lcyBNaWxjaGdlc2NoYWVmdAogIGhvY2h6dWhhbHRlbi4KLSBEdW1tZXJ3ZWlzZSBzdGllc3MgaWNoIG1pdCBkZW0gRnVzc2dhZW5nZXIgenVzYW1tZW4uIEVyIHd1cmRlIGlucwogIEtyYW5rZW5oYXVzIGVpbmdlbGllZmVydCwgdW5kIGJlZGF1ZXJ0ZSBkaWVzIHNlaHIuLi4KLSBEZXIgRnVzc2dhZW5nZXIgaGF0dGUgYW5zY2hlaW5lbmQga2VpbmUgQWhudW5nLCBpbiB3ZWxjaGUgUmljaHR1bmcKICBlciBnZWhlbiBzb2xsdGUsIHVuZCBzbyB1ZWJlcmZ1aHIgaWNoIGlobi4KLSBEZXIgYW5kZXJlIFdhZ2VuIHdhciBhYnNvbHV0IHVuc2ljaHRiYXIsIHVuZCBkYW5uIHZlcnNjaHdhbmQgZXIuCi0gSWNoIGZhbmQgZWluIGdyb3NzZXMgU2NobGFnbG9jaCB1bmQgYmxpZWIgaW4gZGVtc2VsYmVuLgotIERhcyBhbmRlcmUgQXV0byBrb2xsaWRpZXJ0ZSBtaXQgZGVtIG1laW5pZ2VuLCBvaG5lIG1pciB2b3JoZXIgc2VpbmUKICBBYnNpY2h0IG1pdHp1dGVpbGVuLgotIEltIGhvaGVuIFRlbXBvIG5hZWhlcnRlIHNpY2ggbWlyIGRpZSBUZWxlZ3JhcGhlbnN0YW5nZS4gSWNoIHNjaGx1ZwogIGVpbmVuIFppY2t6YWNra3VycyBlaW4sIGFiZXIgZGVubm9jaCB0cmFmIGRpZSBUZWxlZ3JhcGhlbnN0YW5nZSBhbQogIEt1ZWhsZXIuCi0gRGVyIEtyYWZ0c2FjaHZlcnN0YWVubmRpZ2Ugd2FyIHZvZWxsaWcgdW5nZWhhbHRlbiwgYWxzIGVyIGF1ZiBtZWluCiAgVm9yZGVydGVpbCBibGlja3RlLi4uCi0gRWluIEZ1c3NnYWVuZ2VyIHJhbm50ZSBpbiBtaWNoLCB1bmQgdmVyc2Nod2FuZCB3b3J0bG9zIHVudGVyIG1laW5lbQogIFdhZ2VuLgotIEljaCBoYWJlIG5vY2ggbmllIEZhaHJlcmZsdWNodCBiZWdhbmdlbjsgaW0gR2VnZW50ZWlsLCBpY2ggbXVzc3RlCiAgaW1tZXIgd2VnZ2V0cmFnZW4gd2VyZGVuLgotIEljaCB1ZWJlcmZ1aHIgZWluZW4gTWFubi4gRXIgZ2FiIHNlaW5lIFNjaHVsZCB6dSwgZGEgaWhtIGRpZXMgc2Nob24KICBlaW5tYWwgcGFzc2llcnQgd2FyLgotIERlciBNb3BlZGZhaHJlciwgZGVyIGFtIFRhdG9ydCBhbGxlcyBtaXRlcmxlYnRlLCBoYXR0ZSBkZXIgRmFocmVyaW4KICBtZWluZXMgUGt3IGF1ZnJpY2h0aWcgZXJrbGFlcnQsIGRhc3MgZXIgc2VpbmVyIFpldWduaXNwZmxpY2h0CiAgbmFjaGtvbW1lbiB3aXJkLgotIFNjaG9uIGJldm9yIGljaCBpaG4gYW5mdWhyLCB3YXIgaWNoIGRhdm9uIHVlYmVyemV1Z3QsIGRhc3MgZGllc2VyCiAgYWx0ZSBNYW5uIG5pZSBkaWUgYW5kZXJlIFN0cmFzc2Vuc2VpdGUgZXJyZWljaGVuIHd1ZXJkZS4KLSBEYSBzaWNoIGRlciBGdXNzZ2FlbmdlciBuaWNodCBlbnRzY2hlaWRlbiBrb25udGUsIG5hY2ggd2VsY2hlciBTZWl0ZQogIGVyIHJlbm5lbiBzb2xsdGUsIGZ1aHIgaWNoIG9iZW4gZHJ1ZWJlci4KLSBFaW4gdW5zaWNodGJhcmVzIEZhaHJ6ZXVnIGthbSBhdXMgZGVtIE5pY2h0cywgc3RpZXNzIG1pdCBtaXIgenVzYW1tZW4KICB1bmQgdmVyc2Nod2FuZCBkYW5uIHNwdXJsb3MuCi0gTmFjaGRlbSBpY2ggdmllcnppZyBKYWhyZSBnZWZhaHJlbiB3YXIsIHNjaGxpZWYgaWNoIGFtIExlbmtyYWQgZWluLgotIEljaCBoYXR0ZSBkZW4gZ2FuemVuIFRhZyBQZmxhbnplbiBlaW5nZWthdWZ0LiBBbHMgaWNoIGRpZSBLcmV1enVuZwogIGVycmVpY2h0ZSwgd3VjaHMgcGxvZXR6bGljaCBlaW4gQnVzY2ggaW4gbWVpbiBCbGlja2ZlbGQsIHVuZCBpY2gKICBrb25udGUgZGFzIGFuZGVyZSBGYWhyemV1ZyBuaWNodCBtZWhyIHNlaGVuLgotIEFscyBpY2ggZWluZSBGbGllZ2UgZXJzY2hsYWdlbiB3b2xsdGUsIGVyd2lzY2h0ZSBpY2ggZGVuIFRlbGVmb25tYXN0LgotIERlciBQZm9zdGVuIHJhc3RlIGF1ZiBtaWNoIHp1LCB1bmQgYWxzIGljaCBpaG0gUGxhdHogbWFjaGVuIHdvbGx0ZSwKICBzdGllcyBpY2ggZnJvbnRhbCBkYW1pdCB6dXNhbW1lbi4KLSBadW5hZWNoc3Qgc2FndGUgaWNoIGRlciBQb2xpemVpLCBpY2ggc2VpIG5pY2h0IHZlcmxldHp0LCBhYmVyIGFscyBpY2gKICBkZW4gSHV0IGFibmFobSwgYmVtZXJrdGUgaWNoIGRlbiBTY2hhZWRlbGJydWNoLgotIEFscyBtZWluIEF1dG8gdm9uIGRlciBTdHJhc3NlIGFia2FtLCB3dXJkZSBpY2ggaGluYXVzZ2VzY2hsZXVkZXJ0LgogIFNwYWV0ZXIgZW50ZGVja3RlbiBtaWNoIHNvIGVpbiBwYWFyIEt1ZWhlIGluIG1laW5lbSBMb2NoLgotIEljaCBzYWggZWluIHRyYXVyaWdlcyBHZXNpY2h0IGxhbmdzYW0gdm9ydWViZXJzY2h3ZWJlbiwgZGFubiBzY2hsdWcKICBkZXIgSGVyciBhdWYgZGVtIERhY2ggbWVpbmVzIFdhZ2VucyBhdWYuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsaW5kaW5lbiAoWm9ycm8sIDE2LiBTZXAgMTk5NywgMTY6NDQ6NTMpOgpXaWVzbyBkcnVlZmVuIGVpbmUgQmxvbmRpbmUgdW5kIGVpbiBQb2xlIG5pZSB6dXNhbW1lbiBlaW4gS2luZCBoYWJlbiA/CgpJc3QgZG9jaCBrbGFyIHdlaWwgZGFzIEtpbmQgZGFubiB6dSBibG9lZCB6dW0gQXV0b2tsYXVlbiBpc3QgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplbmdsaXNoIGpva2Ugc3RvcnkgKERpZWRlciwgMTkuIFNlcCAxOTk3LCAxMToyMTo1OCk6CgpMYXN0IHllYXIgYSBmcmllbmQgb2YgbWluZSB1cGdyYWRlZCBHaXJsRnJpZW5kIDEuMCB0byBXaWZlIDEuMCBhbmQKZm91bmQgdGhhdCBpdCdzIGEgbWVtb3J5IGhvZyBsZWF2aW5nIHZlcnkgbGl0dGxlIHN5c3RlbSByZXNvdXJjZXMgZm9yCm90aGVyIGFwcGxpY2F0aW9ucy4gSGUgaXMgb25seSBub3cgbm90aWNpbmcgdGhhdCBXaWZlIDEuMCBhbHNvIGlzCnNwYXduaW5nIENoaWxkLVByb2Nlc3NlcyB3aGljaCBhcmUgZnVydGhlciBjb25zdW1pbmcgdmFsdWFibGUKcmVzb3VyY2VzLiBObyBtZW50aW9uIG9mIHRoaXMgcGFydGljdWxhciBwaGVub21lbmEgd2FzIGluY2x1ZGVkIGluCnRoZSBwcm9kdWN0IGJyb2NodXJlIG9yIHRoZSBkb2N1bWVudGF0aW9uLCB0aG91Z2ggb3RoZXIgdXNlcnMgaGF2ZQppbmZvcm1lZCBoaW0gdGhhdCB0aGlzIGlzIHRvIGJlIGV4cGVjdGVkIGR1ZSB0byB0aGUgbmF0dXJlIG9mIHRoZQphcHBsaWNhdGlvbi4gTm90IG9ubHkgdGhhdCwgV2lmZSAxLjAgaW5zdGFsbHMgaXRzZWxmIHN1Y2ggdGhhdCBpdCBpcyBhbHdheXMKbGF1bmNoZWQgYXQgc3lzdGVtIGluaXRpYWxpemF0aW9uIHdoZXJlIGl0IGNhbiBtb25pdG9yIGFsbCBvdGhlciBzeXN0ZW0KYWN0aXZpdHkuIEhlJ3MgZmluZGluZyB0aGF0IHNvbWUgYXBwbGljYXRpb25zIHN1Y2ggYXMgUG9rZXJOaWdodCAxMC4zLApCZWVyQmFzaCAyLjUsIGFuZCBQdWJOaWdodCA3LjAgYXJlIG5vIGxvbmdlciBhYmxlIHRvIHJ1biBpbiB0aGUKc3lzdGVtIGF0IGFsbCwgY3Jhc2hpbmcgdGhlIHN5c3RlbSB3aGVuIHNlbGVjdGVkIChldmVuIHRob3VnaCB0aGV5CmFsd2F5cyB3b3JrZWQgZmluZSBiZWZvcmUpLiBBdCBpbnN0YWxsYXRpb24sIFdpZmUgMS4wIHByb3ZpZGVzIG5vIG9wdGlvbgphcyB0byB0aGUgaW5zdGFsbGF0aW9uIG9mIHVuZGVzaXJlZCBQbHVnLUlucyBzdWNoIGFzIE1vdGhlckluTGF3IDU1LjgKYW5kIEJyb3RoZXJJbkxhdyBCZXRhIHJlbGVhc2UuIEFsc28sIHN5c3RlbSBwZXJmb3JtYW5jZSBzZWVtcyB0bwpkaW1pbmlzaCB3aXRoIGVhY2ggcGFzc2luZyBkYXkuClNvbWUgZmVhdHVyZXMgaGUnZCBsaWtlIHRvIHNlZSBpbiB0aGUgdXBjb21pbmcgd2lmZSAyLjAuCiAgIEEgIkRvbid0IHJlbWluZCBtZSBhZ2FpbiIgYnV0dG9uIAogICBNaW5pbWl6ZSBidXR0b24gCiAgIEFuIGluc3RhbGwgc2hpZWxkIGZlYXR1cmUgdGhhdCBhbGxvd3MgV2lmZSAyLjAgYmUgaW5zdGFsbGVkIHdpdGggdGhlCm9wdGlvbiB0byB1bmluc3RhbGwgYXQgYW55dGltZSB3aXRob3V0IHRoZSBsb3NzIG9mIGNhY2hlIGFuZCBvdGhlcgpzeXN0ZW0gcmVzb3VyY2VzLiAKICAgQW4gb3B0aW9uIHRvIHJ1biB0aGUgbmV0d29yayBkcml2ZXIgaW4gcHJvbWlzY3VvdXMgbW9kZSB3aGljaAp3b3VsZCBhbGxvdyB0aGUgc3lzdGVtcyBoYXJkd2FyZSBwcm9iZSBmZWF0dXJlIHRvIGJlIG11Y2ggbW9yZQp1c2VmdWwuCkkgbXlzZWxmIGRlY2lkZWQgdG8gYXZvaWQgYWxsIG9mIHRoZSBoZWFkYWNoZXMgYXNzb2NpYXRlZCB3aXRoIFdpZmUgMS4wCmJ5IHN0aWNraW5nIHdpdGggR2lybEZyaWVuZCAyLjAuIEV2ZW4gaGVyZSwgaG93ZXZlciwgSSBmb3VuZCBtYW55CnByb2JsZW1zLgpBcHBhcmVudGx5IHlvdSBjYW5ub3QgaW5zdGFsbCBHaXJsRnJpZW5kIDIuMCBvbiB0b3Agb2YgR2lybEZyaWVuZCAxLjAuCllvdSBtdXN0IHVuaW5zdGFsbCBHaXJsRnJpZW5kIDEuMCBmaXJzdC4gT3RoZXIgdXNlcnMgc2F5IHRoaXMgaXMgYSBsb25nCnN0YW5kaW5nIGJ1ZyB3aGljaCBJIHNob3VsZCBoYXZlIGJlZW4gYXdhcmUgb2YuCkFwcGFyZW50bHkgdGhlIHZlcnNpb25zIG9mIEdpcmxGcmllbmQgaGF2ZSBjb25mbGljdHMgb3ZlciBzaGFyZWQgdXNlIG9mCnRoZSBJL08gcG9ydC4gWW91IHRoaW5rIHRoZXkgd291bGQgaGF2ZSBmaXhlZCBzdWNoIGEgc3R1cGlkIGJ1ZyBieQpub3cuClRvIG1ha2UgbWF0dGVycyB3b3JzZSwgVGhlIHVuaW5zdGFsbCBwcm9ncmFtIGZvciBHaXJsRnJpZW5kIDEuMApkb2Vzbid0IHdvcmsgdmVyeSB3ZWxsIGxlYXZpbmcgdW5kZXNpcmFibGUgdHJhY2VzIG9mIHRoZSBhcHBsaWNhdGlvbiBpbgp0aGUgc3lzdGVtLgpBbm90aGVyIHRoaW5nIHRoYXQgc3Vja3MgLS0gYWxsIHZlcnNpb25zIG9mIEdpcmxGcmllbmQgY29udGludWFsbHkKcG9wdXAgbGl0dGxlIGFubm95aW5nIG1lc3NhZ2VzIGFib3V0IHRoZSBhZHZhbnRhZ2VzIG9mIHVwZ3JhZGluZyB0bwpXaWZlIDEuMCAuCioqKioqIEJVRyBXQVJOSU5HICoqKioqKioqCldpZmUgMS4wIGhhcyBhbiB1bmRvY3VtZW50ZWQgYnVnLiBJZiB5b3UgdHJ5IHRvIGluc3RhbGwgTWlzdHJlc3MgMS4xCmJlZm9yZSB1bmluc3RhbGxpbmcgV2lmZSAxLjAsIFdpZmUgMS4wIHdpbGwgZGVsZXRlIE1TTW9uZXkgZmlsZXMKYmVmb3JlIGRvaW5nIHRoZSB1bmluc3RhbGwgaXRzZWxmLiBUaGVuIE1pc3RyZXNzIDEuMSB3aWxsIHJlZnVzZSB0bwppbnN0YWxsLCBjbGFpbWluZyBpbnN1ZmZpY2llbnQgcmVzb3VyY2VzLgoqKioqKiBCVUcgV09SSy1BUk9VTkRTICoqKioqKioqClRvIGF2b2lkIHRoZSBhYm92ZSBidWcsIHRyeSBpbnN0YWxsaW5nIE1pc3RyZXNzIDEuMSBvbiBhIGRpZmZlcmVudApzeXN0ZW0gYW5kIG5ldmVyIHJ1biBhbnkgZmlsZSB0cmFuc2ZlciBhcHBsaWNhdGlvbnMgc3VjaCBhcyBMYXBsaW5rIDYuMC4KCkFsc28sIGJld2FyZSBvZiBzaW1pbGFyIHNoYXJld2FyZSBhcHBsaWNhdGlvbnMgdGhhdCBoYXZlIGJlZW4ga25vd24KdG8gY2FycnkgdmlydXNlcyB0aGF0IG1heSBhZmZlY3QgV2lmZSAxLjAuIEFub3RoZXIgc29sdXRpb24gd291bGQgYmUgdG8KcnVuIE1pc3RyZXNzIDEuMCB2aWEgYSBVc2VOZXQgcHJvdmlkZXIgdW5kZXIgYW4gYW5vbnltb3VzIG5hbWUuCkhlcmUgYWdhaW4sIGJld2FyZSBvZiB0aGUgdmlydXNlcyB3aGljaCBjYW4gYWNjaWRlbnRseSBiZSBkb3dubG9hZGVkCmZyb20gdGhlIFVzZU5ldC4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgbm9jaCBlaW5lciAoRGllZGVyLCAxOS4gU2VwIDE5OTcsIDExOjIzOjQ0KToKQSBidXMgc3RvcHMgYW5kIHR3byBJdGFsaWFuIG1lbiBnZXQgb24uIFRoZXkgc2VhdCB0aGVtc2VsdmVzLCBhbmQKZW5nYWdlIGluIGFuaW1hdGVkIGNvbnZlcnNhdGlvbi4gVGhlIGxhZHkgc2l0dGluZyBiZWhpbmQgdGhlbQppZ25vcmVzIHRoZWlyIGNvbnZlcnNhdGlvbiBhdCBmaXJzdCwgYnV0IGhlciBhdHRlbnRpb24gaXMgZ2FsdmFuaXplZCB3aGVuCnNoZSBoZWFycyBvbmUgb2YgdGhlIG1lbiBzYXkgdGhlIGZvbGxvd2luZzsKIkVtbWEgY29tZSBmaXJzdC4gRGVuIEkgY29tZS4gVHdvIGFzc2VzLCB0aGV5IGNvbWUgdG9nZXRoZXIuIEkKY29tZSBhZ2Fpbi4gVHdvIGFzc2VzLCB0aGV5IGNvbWUgdG9nZXRoZXIgYWdhaW4uIEkgY29tZSBhZ2FpbiBhbmQKcGVlIHR3aWNlLiBUaGVuIEkgY29tZSBvbmNlLWEgbW9yZS4iCiJZb3UgZm91bC1tb3V0aGVkIHN3aW5lLCIgcmV0b3J0ZWQgdGhlIGxhZHkgaW5kaWduYW50bHkuICJJbiB0aGlzCmNvdW50cnkgd2UgZG9uJ3QgdGFsayBhYm91dCBvdXIgc2V4IGxpdmVzIGluIHB1YmxpYyEiCiJIZXksIGNvb2xhIGRvd24gbGFkeSwiIHNhaWQgdGhlIG1hbi4gIkltbWEganVzdCB0ZWxsdW4gbXkgZnJpZW5kCmhvd2EgdG8gc3BlbGxhIE1pc3Npc3NpcHBpLiIgLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbnVtYmVyIHRocmVlIChEaWVkZXIsIDE5LiBTZXAgMTk5NywgMTE6MjU6NTcpOgpUaGUgZWxkZXJseSBnZW50bGVtYW4gY29uZmlkZWQgaW4gaGlzIGRvY3RvciB0aGF0IGhlIHdhcyBoYXZpbmcgYQpwcm9ibGVtIAp3aXRoICJzaWxlbnQgZ2FzZW91cyBlbW1pc2lvbnMuIgoiIExhc3QgbmlnaHQsIiBoZSBzYWlkLCIgSSB3YXMgc2l0dGluZyBpbiB0aGUgdGhlYXRlciB3aXRoIG15IHdpZmUsIGFuZCBJCmhhZCAqZml2ZSogc2lsZW50IGdhc2VvdXMgZW1taXNpb25zLiBUaGlzIG1vcm5pbmcsIGluIHRoZSBjYXIsIEkgaGFkCnRocmVlLiBBbmQganVzdCBzaW5jZSBJJ3ZlIGJlZW4gc2l0dGluZyBoZXJlIGluIHlvdXIgb2ZmaWNlLCBJJ3ZlIGhhZAphbm90aGVyIGZpdmUgc2lsZW50IGdhc2VvdXMgZW1taXNpb25zLiIKIkZpcnN0IHRoaW5nIiwgc2FpZCB0aGUgZG9jdG9yLCAiV2UncmUgZ29pbmcgdG8gZ2V0IHlvdXIgaGVhcmluZwpjaGVja2VkLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm9uY2UgYWdhaW4uLi4gKEJlbmRlaWdpZCwgMjIuIFNlcCAxOTk3LCAwOToxOToyNyk6Cn4jISBvbj1EaWVkZXIgb3Q9ODc0NjYxMjU0IG9nPWdpbGRlbi5rYWVtcGZlcgoKTmVsc29uIE1hbmRlbGEgaXMgc2l0dGluZyBhdCBob21lIHdhdGNoaW5nIHRoZSB0ZWxseSB3aGVuIGhlIGhlYXJzIGEKa25vY2sgYXQgdGhlIGRvb3IuCldoZW4gaGUgb3BlbnMgaXQsIGhlIGlzIGNvbmZyb250ZWQgYnkgYSBsaXR0bGUgY2hpbmVzZSBtYW4sIGNsdXRjaGluZyBhCmNsaXBib2FyZCBhbmQgeWVsbGluZzogInlvdSBzaWduISBZb3Ugc2lnbiEiLiBCZWhpbmQgaGltIGlzIGFuCmVub3Jtb3VzIHRydWNrIGZ1bGwgb2YgY2FyIGV4aGF1c3RzLgpOZWxzb24gaXMgc3RhbmRpbmcgdGhlcmUgaW4gY29tcGxldGUgYW1hemVtZW50IHdoZW4gdGhlIGNoaW5lc2UKbWFuIHN0YXJ0cyB0byB5ZWxsIGxvdWRlci4gInlvdSBzaWduISBZb3Ugc2lnbiEiCk5lbHNvbiBzYXlzIHRvIGhpbSwgImxvb2sgbWF0ZSwgeW91J3ZlIG9idmlvdXNseSBnb3QgdGhlIHdyb25nIGJsb2tlLgpTb2Qgb2ZmLiIgYW5kIHNodXRzIHRoZSBkb29yIGluIGhpcyBmYWNlLgpUaGUgbmV4dCBkYXkgaGUgaGVhcnMgYSBrbm9jayBhdCB0aGUgZG9vciBhZ2Fpbi4gV2hlbiBoZSBvcGVucyBpdCwKdGhlIGxpdHRsZSBjaGluZXNlIG1hbiBpcyBiYWNrLCB3aXRoIGEgaHVnZSB0cnVjayBmdWxsIG9mIGJyYWtlIHBhZHMuIEhlCnRocnVzdHMgaGlzIGNsaXBib2FyZCB1bmRlciBuZWxzb25zIG5vc2UsIHllbGxpbmcgInlvdSBzaWduISBZb3Ugc2lnbiEiCk1yIE1hbmRlbGEgaXMgZ2V0dGluZyBhIGJpdCBoYWNrZWQgb2ZmIGJ5IG5vdywgc28gaGUgc2hvdmVzIHRoZSBsaXR0bGUKY2hpbmVzZSBtYW4gYmFjaywgc2hvdXRpbmc6ICJMb29rLCBzb2Qgb2ZmIHlvdSBsaXR0bGUgY2hpbmt5IHNsYW50eQpleWVkIHByaWNrIQpZb3UndmUgZ290IHRoZSB3cm9uZyBibG9rZSEgSSBkb24ndCB3YW50IHRoZW0hIiB0aGVuIHNsYW1zIHRoZSBkb29yCmluIGhpcyBmYWNlIGFnYWluLgpUaGUgZm9sbG93aW5nIGRheSBOZWxzb24gaXMgcmVzdGluZywgYW5kIGxhdGUgaW4gdGhlIGFmdGVybm9vbiwgaGVhcnMgYQprbm9jayBvbiB0aGUgZG9vciBhZ2Fpbi4gVXBvbiBvcGVuaW5nIHRoZSBkb29yLCB0aGUgbGl0dGxlIGNoaW5lc2UKbWFuIHRocnVzdHMgdGhlIHNhbWUgY2xpcGJvYXJkIHVuZGVyIGhpcyBub3NlLCBzaG91dGluZyAiWW91IHNpZ24hCllvdSBzaWduISIuCkJlaGluZCBoaW0gYXJlIFRXTyBsYXJnZSB0cnVja3MgZnVsbCBvZiBjYXIgcGFydHMuCk5lbHNvbiBsb3NlcyBoaXMgdGVtcGVyIGNvbXBsZXRlbHksIHBpY2tzIHRoZSBsaXR0bGUgbWFuIHVwIGJ5IGhpcyBzaGlydApmcm9udCBhbmQgeWVsbHMgYXQgaGltOiAibG9vaywgSSBkb24ndCB3YW50IHRoZXNlISBEbyB5b3UgdW5kZXJzdGFuZD8KWW91IG11c3QgaGF2ZSB0aGUgd3JvbmcgbmFtZSEgV2hvIGRvIHlvdSB3YW50IHRvIGdpdmUgdGhlc2UgdG8/IgpUaGUgbGl0dGxlIGNoaW5lc2UgbWFuIGxvb2tzIGF0IGhpbSBhIGJpdCBwdXp6bGVkLCBjb25zdWx0cyBoaXMKY2xpcGJvYXJkLCBhbmQgc2F5czogInlvdSBub3QgTmlzc2FuIE1haW5kZWFsZXI/IiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMaW51eCAoUm9jaHVzLCAyMy4gU2VwIDE5OTcsIDE3OjE4OjU5KToKIk9ubHkgd2ltcHMgdXNlIHRhcGUgYmFja3VwOiBfcmVhbF8gbWVuIGp1c3QgdXBsb2FkIHRoZWlyIGltcG9ydGFudCBzdHVmZiAKb24gZnRwLCBhbmQgbGV0IHRoZSByZXN0IG9mIHRoZSB3b3JsZCBtaXJyb3IgaXQgOykiCihMaW51cyBUb3J2YWxkcywgYWJvdXQgaGlzIGZhaWxpbmcgaGFyZCBkcml2ZSBvbiBsaW51eC5jcy5oZWxzaW5raS5maSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCks2IEJ1ZyAoUm9jaHVzLCAyMy4gU2VwIDE5OTcsIDE3OjQ1OjIzKToKU2VwdGVtYmVyIDUgLSBLNiBidWcgcGFpbnN0YWtpbmdseSBpbXBsZW1lbnRlZCBmZWF0dXJlLgpBTUQgaGFzIGlzc3VlZCBhIHByZXNzIHN0YXRlbWVudCByZWdhcmRpbmcgdGhlaXIgbXVjaCB0YWxrZWQgYWJvdXQgTEdEVCBidWcgaW4KdGhlIEs2IHByb2Nlc3Nvci4KIldoYXQgbW9zdCB1c2VycyByZWdhcmQgYXMgYSBzdHVwaWQgYnVnIGlzIGFjdHVhbGx5IGEgcGFpbnN0YWtpbmdseSBwbGFubmVkCmZlYXR1cmUuIEJhY2sgaW4gZWFybHkgOTYKd2hlbiB3ZSBoYWQgYSBjb21wbGV0ZWx5IGJ1Z2ZyZWUgbWFzayBvZiB0aGUgSzYgd2Ugd2VudCB0byBSZWRtb25kIGhvcGluZyBmb3IKd2ludGVuZG8gY2VydGlmaWNhdGlvbgpXZSB3ZXJlIGRlbmllZCBvbmUgb24gZ3JvdW5kcyB0aGF0IG1vc3QgbXMgc29mdHdhcmUgZGlkbid0IHJ1bi4gU29tZSBjYXJpbmcKc291bCBhdCBtcyBzdWdnZXN0ZWQgd2UKbWFrZSB0aGUgY2hpcCAqcmVhbGx5KiBJbnRlbCBjb21wYXRpYmxlLiBTbyB3ZSBoYWQgdG8gZ28gYmFjayBhbmQgaW1wbGVtZW50CmFsbCB0aGUgMTE4NzcgYnVncyB0aGUgcGVudGl1bQpoYWQgYXQgdGhhdCB0aW1lLiBPZiBjb3Vyc2UsIG1zIHNvZnR3YXJlIHJhbiBwZXJmZWN0bHkgYWZ0ZXJ3YXJkcyBhbmQgd2UgZ290Cm91ciBjZXJ0aWZpY2F0ZS4gSW4gdGhlIG1lYW4gdGltZQpzb21lb25lIGF0IEludGVsIGRpc2NvdmVyZWQgb25lIG9mIHRoZWlyIDExODc3IGJ1Z3MgYW5kIHJlbW92ZWQgaXQuIFlvdSBjYW4gYmUKc3VyZSB0aGF0IHRoZSBLNisgYW5kIHRoZQpBcmdvbiB3aWxsIG9ubHkgaGF2ZSB0aGUgbGF0ZXN0IEludGVsIGJ1Z3MgaW1wbGVtZW50ZWQuIiBBIHNvdXJjZSBhbHNvIHRvbGQgdXMKdGhhdCBpbml0aWFsbHkgdGhlIEs2IHdhcwpzdXBwb3NlZCB0byBoYXZlIDUgbWlsbGlvbiB0cmFuc2lzdG9ycyBhbmQgOCBwaXBlbGluZWQgRlBVJ3MuIFRoZSAzLnNvbWV0aGluZwptaWxsaW9uIGV4dHJhIHRyYW5zaXN0b3JzIGFyZQphbGxvY2F0ZWQgdG8gMiBmdWxseSBwaXBlbGluZWQgQnVnIEVtdWxhdGlvbiBVbml0cyB3aGljaCBpbiB0dXJuIGFjY291bnQgZm9yCnRoZSBsb3NzIG9mIHRoZSBGUFUncy4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGF1ZiBkZXIgQmx1bWVuYmFuayAoQmlyZHksIDMwLiBTZXAgMTk5NywgMTQ6MzI6MzkpOgotIEhhbGxvIFJvc2UgIQotIEhhbGxvIFNjaGxlaWVya3JhdXQuCi0gV2FydW0gbGFlc3N0IGR1IGRlaW5lIEtvZXBmZSBzbyBoYWVuZ2VuID8gCi0gQWNoICpzZXVmeiogaWNoIHNpdHogYXVmIGRlbSBUcm9ja2VuZW4uCiAgSGFiIGdlc3Rlcm4gbmUgTWVuZ2UgTW9vcyB2ZXJsb3Jlbi4KLSBXaWVzbyBkYXMgZGVubiA/Ci0gSGF0dGUgZWluIHNjaGxlY2h0ZXMgQmxhdHQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWNyaW1vbnMgVmVyd2FuZHNjaGFmdCAoSG9ibywgIDEuIE9rdCAxOTk3LCAwODoxOToyMyk6CkhldXQgbW9yZ2VuIGluIGRlbiBOZXdzIGhhYmUgaWNoIGplbWFuZGVuIGF1cyBBY3JpbW9ucyBWZXJ3YW5kc2NoYWZ0CmF1c2dlbWFjaHQuIEF1c3NjaG5pdHQgYXVzIGRlbSBBcnRpa2VsOgoKWWVwLiBJbiBtZWluZW0gbmFlY2hzdGVuIExlYmVuIHdlcmRlIGljaCB3YWhyc2NoZWlubGljaCBTb3ppYWx3aXNzZW4tCnNjaGFmdCBvZGVyIFBoaWxvc29waGllIHN0dWRpZXJlbiwgbnVyIHVtIGRpZXNlIGhhc3plcmZ1ZWxsdGUgV2l0emZpZ3VyCnp1IGRlbW9udGllcmVuIC0gd2VubiBkYXMgYmlzIGRhaGluIG5vY2ggbmllbWFuZCBnZW1hY2h0IGhhdC4KSWNoIG1laW5lLCBkYXNzIGplbmVyIEF1c2J1bmQgYW4gTWl0dGVsbWFzeiwgZGVyIGhldXRlIG1hbmdlbHMga29ua3JlLQp0ZXIgQmVydWZzYXVzc2ljaHQgdW5kIG1hbmdlbHMgYW5kZXJ3ZWl0aWdlciAob2RlciB1ZWJlcmhhdXB0IGlyZ2VuZHdlbC0KY2hlcikgSW50ZXJlc3NlbiBzaWNoIGVudHNjaGxpZXNzdCwgU296aWFsd2lzc2Vuc2NoYWZ0ZW4genUgc3R1ZGllcmVuLAp1bmQgZGVyIGdyb2Vzc3RlbnRlaWxzIGRvY2ggYXJnZSBTY2h3aWVyaWdrZWl0ZW4gaGF0LCBhdXMgV29ydGVuIFNhZXR6ZQp6dSBiaWxkZW4sIHNpY2ggdm9uIGRlcmFydGlnZXIgR2VzY2h3b2xsZW5oZWl0IGhpbnJlaWNoZW5kIGJlZWluZHJ1Y2tlbgpsYWVzc3QsIHVtIG5pY2h0IHdlaXRlciBhdWYgZGllIFN1Y2hlIG5hY2ggSGludGVyc2lubiwgenVncnVuZGVsaWVnZW5kZXIKVmlzaW9uIHVuZCB1bnRlcnNjaHdlbGxpZ2VyIEludGVudGlvbiB6dSBnZWhlbi4gCgpTaWVodCBkb2NoIGhpbnJlaWNoZW5kIGFlaG5saWNoIGF1cywgb2Rlcj8KClRzY2h1ZXNzaQoKICBIb2JvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWNyaW1vbnMgVmVyd2FuZHNjaGFmdCAoQWNyaW1vbiwgIDEuIE9rdCAxOTk3LCAxNjowMzozNCk6Cn4jISBybj1Ib2JvIHJ0PTg3NTY4Njc2MyByZz13aXR6ZQp+IyEgdGlkPTg3NTY4Njc2MwpOYWphLCBlaW4gcGFhciBSZWNodHNjaHJlaWJmZWhsZXIgd2FyZW4gZHJpbiAoei5CLiAiZGFzcyIgc3RhdHQgImRhc3oiKS4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZXIgZnVlciBBY3JpbW9uIChTaWx2YW5hLCAgMi4gT2t0IDE5OTcsIDIyOjAzOjIwKToKR2VyYWRlIGdlbGVzZW46CgpTcGVsbGluZyBpcyBhIGxvc3NlZCBhcnQuCgpTaWx2YW5hIC0gbXVzc3RlIGRhIGFuIEFjcmltb24gZGVua2VuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTb29vb29vIGVpbiBCYXJ0Li4uIChBbmF0b2wsICA5LiBPa3QgMTk5NywgMjE6NDU6MjYpOgpXYXMgcGFzc2llcnQsIHdlbm4gZWluZSBCbG9uZGluZSB2b24gRGV1dHNjaGxhbmQgbmFjaCAKT2VzdGVycmVpY2ggYXVzd2FuZGVydD8KCi0tPiBJbiBiZWlkZW4gTGFlbmRlcm4gc3RlaWd0IGRlciBkdXJjaHNjaG5pdHRsaWNoZSBJUS4KCgpBbmF0b2wsIGVpc2thbHRlciBXaXR6IHN0YXR0IEZsYW1lCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNvb29vb28gZWluIEJhcnQuLi4gKEJsb29keWhhcnJ5LCAxMC4gT2t0IDE5OTcsIDA3OjM2OjIyKToKfiMhIHJuPUFuYXRvbCBydD04NzY0MjYzMjYgcmc9d2l0emUKfiMhIHRpZD04NzY0MjYzMjYKSGFiIGRhIGF1Y2ggbm9jaCBlaW5lbi4uCgoKV2llIGJla29tbXQgbWFuIGRhcyBHZWhpcm4gZWluZXIgQmxvbmRpbmUgYXVmIEVyYnNlbmdyb2Vzc2U/CgotLT4gQXVmYmxhc2VuIQoKCkJILCBtYWtlIGpva2Ugbm90IChmbGFtZSkgd2FyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNvb29vb28gZWluIEJhcnQuLi4gKEFzdGFyLCAxMy4gT2t0IDE5OTcsIDE2OjMxOjU0KToKfiMhIHJuPUJsb29keWhhcnJ5IHJ0PTg3NjQ2MTc4MiByZz13aXR6ZQp+IyEgdGlkPTg3NjQyNjMyNgpVaWggaXN0IGRlciBhbHQ6CgpXYXMgaXN0IGVpbmUgYmxvbmRpbmUgbWl0IHp3ZWkgR2VoaXJuemVsbGVuPwoKLS0+IHNjaHdhbmdlcgoKCkFzdGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXJhbGQgKFpvcnJvLCAxMy4gT2t0IDE5OTcsIDE2OjU4OjA2KToKV2llIGhlaXNzZW4gZGllc2UgRGluZ2VyLCBkaWUgbWFuIHNpY2ggaXJnZW5kd2FubiBtYWwgYW5zY2hhZmZ0IHVuZCBkYW5uIG5pY2h0Cm1laHIgbG9zIHdpZWRlciA/CgpBY2ggamEgLSBLaW5kZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsb25kaW5lbiAoWm9ycm8sIDEzLiBPa3QgMTk5NywgMTc6MTM6NDgpOgpXb3JhbiBtZXJrdCBtYW4sIGRhc3MgenVsZXR6dCBlaW5lIEJsb25kaW5lIGltIEZhaHJzY2h1bHdhZ2VuIHNhc3MgPwoKCkFtIExpcHBlbnN0aWZ0IGF1ZiBkZW0gU2NoYWx0a251ZXBwZWwhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYmxvbmRpbmVuIChBc3RhciwgMTMuIE9rdCAxOTk3LCAxNzoxNToxMSk6Cn4jISBybj1ab3JybyBydD04NzY3NTU2Mjggcmc9d2l0emUKfiMhIHRpZD04NzY3NTU2MjgKV2FzIHNhZ3QgZWluZSBNdXR0ZXIgenUgaWhyZXIgMTYtamFlaHJpZ2VuIGJsb25kZW4gVG9jaHRlcj8KCi0tPiBXZW5uIER1IHVtIDEyIG5pY2h0IGltIEJldHQgYmlzdCBrb21tc3QgRHUgSGVpbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsb25kaW5lbiAoWm9ycm8sIDEzLiBPa3QgMTk5NywgMTc6MTU6MTUpOgpFaW5lciBCbG9uZGluZSBtdXNzIG1hbiBiZWlicmluZ2VuLCBpbiBkZXIgRmFocnNjaHVsZSwgZGFzcyBlcyBiZWkKU3RhcnRzY2h3aWVyaWdrZWl0ZW4gbmljaHQgaGlsZnQsIHdlbm4gbWFuIGFtIGF1c3B1ZmYgbHV0c2NodCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRyZWlja3NiZXppZWh1bmcgKEtvYmF5YXNoaSwgMTQuIE9rdCAxOTk3LCAxNTo1MTozMSk6CkdvdHQgaXN0IHRvdCAtIE5pZXRzY2hlLgpOaWV0c2NoZSBpc3QgdG90IC0gR290dApOaWV0c2NoZSBpc3QgR290dCAtIFRPRAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERyZWlja3NiZXppZWh1bmcgKEFscGhhLCAxNC4gT2t0IDE5OTcsIDE1OjU0OjA5KToKfiMhIHJuPUtvYmF5YXNoaSBydD04NzY4MzcwOTEgcmc9d2l0emUKfiMhIHRpZD04NzY4MzcwOTEKRGEgZmVobHQgbm9jaCBHb3R0IGlzdCBOaWV0enNjaGUgVG9kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEcmVpY2tzYmV6aWVodW5nIChLb2JheWFzaGksIDE0LiBPa3QgMTk5NywgMTU6NTU6MDcpOgp+IyEgcm49QWxwaGEgcnQ9ODc2ODM3MjQ5IHJnPXdpdHplCn4jISB0aWQ9ODc2ODM3MDkxCiJpc3QiIGlzdCBrb21tdXRhdGl2IC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRHJlaWNrc2JlemllaHVuZyAoR2FzdDIsIDE0LiBPa3QgMTk5NywgMTY6NDA6NTgpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg3NjgzNzMwNyByZz13aXR6ZQp+IyEgdGlkPTg3NjgzNzA5MQo+ICJpc3QiIGlzdCBrb21tdXRhdGl2IC4uLgoKRWluZSBFbnRlIGlzdCBlaW4gVm9nZWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEcmVpY2tzYmV6aWVodW5nIChBbHBoYSwgMTQuIE9rdCAxOTk3LCAxNjo1MjowNSk6Cn4jISBybj1HYXN0MiBydD04NzY4NDAwNTggcmc9d2l0emUKfiMhIHRpZD04NzY4MzcwOTEKSXN0IGRlZmluaWVydCBlaW5lIEhhbGJvcmRudW5nLi4uLmF1Zi4uLi5hZWguLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRHJlaWNrc2JlemllaHVuZyAoQW5jYWxhZ29uLCAxNC4gT2t0IDE5OTcsIDE5OjQ0OjE1KToKfiMhIHJuPUtvYmF5YXNoaSBydD04NzY4MzcwOTEgcmc9d2l0emUKfiMhIHRpZD04NzY4MzcwOTEKS251ZGRlbHMhCmFlaGgsIG11ZXNzdGUgZGllIGRyaXR0ZSB6ZWlsZSBuaWNodCBsYXV0ZW46Ck5JRVRaU0NIRSBJU1QgR09UVCAtIFRPRCAgICAgICAgICA/Pz8/Pz8/KwpHcmluc2VrbnVkZGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmNhbGFnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRHJlaWNrc2JlemllaHVuZyAoR2xvaW5zb24sIDE1LiBPa3QgMTk5NywgMDA6NDM6NTApOgp+IyEgcm49QW5jYWxhZ29uIHJ0PTg3Njg1MTA1NSByZz13aXR6ZQp+IyEgdGlkPTg3NjgzNzA5MQpJY2ggZGFjaHRlLCBkaWUgMy4gWmVpbGUgaGllc3NlOgpEaWUgVG90ZW4gcmVkZW4gbmljaHQuIERqYW5nbwo/CldpciBrb2VubmVuIGRhcyBnZXJuIG5vY2ggZW5kbG9zIGZvcnRzZXR6ZW4gOy0pCgpHbG9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGJsb25kaW5lbiAoR3VsZHVrYXQsIDE3LiBPa3QgMTk5NywgMjA6MDc6MzMpOgp+IyEgcm49Wm9ycm8gcnQ9ODc2NzU1NzE1IHJnPXdpdHplCn4jISB0aWQ9ODc2NzU1NzE1Cm9oLCBoYXQgem9ycm8gZGllIGhhcmFsZC1zY2htaWR0IHNob3cgZ2VzZWhlbj8gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvbGsgKFpvcnJvLCAxOC4gT2t0IDE5OTcsIDAyOjQ5OjQ1KToKV2FzIGlzdCBkYXMgZnJldW5kbGljaHN0ZSBWb2xrIGRlciBXZWx0ID8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkRpZSBUdWVya2VuICwgZGEgZnJhZ2VuIERpY2ggZ2xlY2loIDIwIExldXRlIG9iIER1IFByb2JsZW1lIGhhc3QuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVmIGRlbSBTdGFuZGVzYW10IChHcmltbWJvcm4sIDI3LiBPa3QgMTk5NywgMTE6Mzk6MDgpOgoiV29sbGVuIFNpZSBJaHJlIFRvY2h0ZXIgd2lya2xpY2ggQ2xhaXJlIG5lbm5lbiwgRnJhdSBHcnViZT8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJvcmlzIHVuZCBEaWFuYSAoR3JpbW1ib3JuLCAyNy4gT2t0IDE5OTcsIDExOjM5OjU3KToKQm9yaXMgQmVja2VyIHVuZCBEaWFuYSBoYWJlbiBlaWdlbnRsaWNoIHZpZWwgZ2VtZWluc2FtOiBKdW5nLCByZWljaCwgYmVydWVobXQsCmh1ZWJzY2ggdW5kIGVpbiBBdWZzY2hsYWcgdm9uIHVlYmVyIDE3MGttL2guLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJvcmlzIHVuZCBEaWFuYSAoRGVudGksIDI3LiBPa3QgMTk5NywgMTE6NDE6MDUpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3Nzk0ODc5NyByZz13aXR6ZQp+IyEgdGlkPTg3Nzk0ODc5NwoKTnVyIGdpYnRzIGRhIG5lbiBVbnRlcnNjaGllZDogd2VsY2hlbiB3b2hsPwoKCgoKCgoKCgoKCgoKCgpCb3JpcyBoYXQgbmVuIHp3ZWl0ZW4gQXVmc2NobGFnIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCb3JpcyB1bmQgRGlhbmEgKEhvYm8sIDI3LiBPa3QgMTk5NywgMTI6NTY6MjQpOgp+IyEgcm49SG9ibyBydD04Nzc5NTMzNjYgcmc9d2l0emUKfiMhIHRpZD04Nzc5NDg3OTcKSFVFQlNDSD8/Pz8KCkJlaWRlIHdvaGwgbmljaHQgKG1laHIpCgogVHNjaHVlc3NpCgogSG9ibyAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJvcmlzIHVuZCBEaWFuYSAoV3VyemVsLCAyNy4gT2t0IDE5OTcsIDE4OjQwOjMxKToKfiMhIHJuPUhvYm8gcnQ9ODc3OTUzMzg0IHJnPXdpdHplCn4jISB0aWQ9ODc3OTQ4Nzk3CmRhcyAobWVocikgd2FyIGZlaGwgYW0gcGxhdHouIG5pZSBnZXdlc2VuLgoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCb3JpcyB1bmQgRGlhbmEgKEppbWRpZ3JpeiwgMjguIE9rdCAxOTk3LCAwNToyODozMik6Cn4jISBybj1XdXJ6ZWwgcnQ9ODc3OTc0MDMxIHJnPXdpdHplCn4jISB0aWQ9ODc3OTQ4Nzk3CmFuZGVycywKCldoYXQgZG8gRGkgYW5kIFBpbmsgRmxveWQgaGF2ZSBpbiBjb21tb24gPyAKCgoKCgoKCgoKCgoKCkJvdGggaGFkIGJpZyBoaXRzIHdpdGggVGhlIFdhbGwuIDopCgpKZEcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEJvcmlzIHVuZCBEaWFuYSAoTml4aWhvdSwgMjguIE9rdCAxOTk3LCAwOToxNDo0Myk6Cn4jISBybj1KaW1kaWdyaXogcnQ9ODc4MDEyOTEyIHJnPXdpdHplCn4jISB0aWQ9ODc3OTQ4Nzk3Cm5vY2ggZWluZXIuLi4uCgp3YXMgaGFiZW4gbGFkeSBkaSB1bmQgZnJhbnpvZXNpc2NoZXIgY2hhbXBhZ25lciBnZW1laW5zYW0/CgoKCgoKCgoKCgoKCgoKCgogLT4gYmVpZGVzIHdpcmQgaW4gaG9semtpc3RlbiBuYWNoIGVuZ2xhbmQgZ2VsaWVmZXJ0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIFNjaG90dGVuIChEb2xwaCwgMjkuIE9rdCAxOTk3LCAxNDoxOTo0MSk6CgoKV2VyIGVyZmFuZCBkZW4gS3VwZmVyZHJhaHQgPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKClp3ZWkgU2Nob3R0ZW4gZGllIGdsZWljaHplaXRpZyBlaW5lbiBQZW5ueSBmYW5kZW4gIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERpZSBTY2hvdHRlbiAoUmFmZmksIDI5LiBPa3QgMTk5NywgMTg6NDM6MjUpOgp+IyEgcm49RG9scGggcnQ9ODc4MTMxMTgxIHJnPXdpdHplCn4jISB0aWQ9ODc4MTMxMTgxClVuZCB3YXMgcGFzc2llcnRlIG1pdCBkZW5lbiA/CgoKCgoKCgoKCgoKCgoKCgoKClNpZSB3dXJkZW4gd2VnZW4gdWViZXJtYWVzc2lnZW0gR2VpeiBkZXMgTGFuZGVzIHZlcndpZXNlbiB1bmQgc2llZGVsdGVuIGluCmVpbmVtIExhbmRzdHJpY2ggZGVyIEhldXRlIFNjaHdhYmVuIGhlaXNzdC4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbG9uZGluZW53aXR6IChNb3JnYXIsIDMwLiBPa3QgMTk5NywgMTM6MTg6NTcpOgpXYXMgc2luZCAzIEJsb25kaW5lbiwgZGllIGF1ZiBkZXIgQmV0dGthbnRlIHNpdHplbj8KZXBwdXJncG9QIGVuaWUgPC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaW5lbndpdHohIChSb2RtYW4sIDMxLiBPa3QgMTk5NywgMTc6NDQ6MTkpOgpXYXJ1bSBrbGV0dGVydCBlaW5lIEJsb25kaW5lIHVlYmVyIGVpbmUgR2xhc3dhbmQ/CgoKCgoKCgoKCgoKCgoKU2llIG1vZWNodGUgd2lzc2VuIHdhcyBhdWYgZGVyIGFuZGVyZW4gU2VpdGUgaXN0ISBBdWEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbG9uZGluZW53aXR6IChCaXJkeSwgMzEuIE9rdCAxOTk3LCAxNzo0ODo0Mik6CldpZSBicmluZ3QgbWFuIGVpbmUgQmxvbmRpbmUgenVtIGJsaW56ZWxuID8KCgoKCgoKCgoKCgoKClRhc2NoZW5sYW1wZSBhbnMgT2hyIGhhbHRlbiB1bmQgZWluLSB1bmQgYXVzc2NoYWx0ZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbG9uZGluZW53aXR6IDIgKFJvZG1hbiwgMzEuIE9rdCAxOTk3LCAxODowMDoyMik6CldhcnVtIGlzdCBkZXIgU2FyZyBiZWkgZGVyIEJsb25kaW5lIHNvOgoKCgogICAgICAgICAgICAgICAgICAgICAgX19fX19fX19fXwogICAgICAgICAgICAgICAgICAgICAvICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAvICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClVuZCBuaWNodCB1bnRlbiBzY2htYWxlciB3aWUgYmVpIGRlbiBhbmRlcmVuIGF1Y2g/PwoKCgoKQW50OiBMaWNodCBhdXMsIEJlaW5lIGJyZWl0ISAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCbG9uZGluZW53aXR6IDIgKEFzbW9kaXMsIDMxLiBPa3QgMTk5NywgMjA6Mzg6MTApOgp+IyEgcm49Um9kbWFuIHJ0PTg3ODMxNzIyMiByZz13aXR6ZQp+IyEgdGlkPTg3ODMxNzIyMgpXYXMgaXN0IGVpbmUgQmxvbmRpbmUgbWl0IGJydWVuZXR0IGdlZmFlcmJ0ZW4gSGFhcmVuID8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpLdWVuc3RsaWNoZSBJbnRlbGxpZ2Vuei4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZyaXR6Y2hlbiAoVHJla2FuLCAgMS4gTm92IDE5OTcsIDIyOjIwOjE5KToKa2VubnQgaWhyIG5vY2ggYWxsZSBkZW4gbWl0IGRlbSBUUkVLS0VSIGZhaHJuID8KClRyZWthbiAtPiBmcmFndCBzaWNoLCB3byBzZWluZSBFbHRlcm4gc2luZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2htYWwgQmxvbmRpbmVud2l0eiEgKFJvZG1hbiwgIDMuIE5vdiAxOTk3LCAxMjo0NjoxMSk6CldlbGNoZSBGbHVlc3NlIGtlbm50IGVpbmUgQmxvbmRpbmUhPyE/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKYW50OiBSaGVpbiBpbm4gbWFpbiBwbyEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kIChFbmRlciwgIDMuIE5vdiAxOTk3LCAxMzo0ODowMik6Cn4jISBybj1Sb2RtYW4gcnQ9ODc4NTU3NTcxIHJnPXdpdHplCn4jISB0aWQ9ODc4NTU3NTcxClJoZWluIElubiBNYWluIFBvIE9kZXIgV2FydGUKZGVua2UgaWNoLCB3YXIgZGFzCgpuYWphCi0tPiBzY2htYXJybgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRHJvZ2Vud2l0eiAoR3JpbW1ib3JuLCAgNC4gTm92IDE5OTcsIDE0OjU2OjI2KToKV2FzIHNhZ3QgZWluIFJhdmVyLCBiZWkgZGVtIGRpZSBFeHRhc3ktV2lya3VuZyBuYWNobGFlc3N0PwoiTWVuc2NoLCB3YXMgaXN0IGRlbm4gZGFzIGZ1ZXIgbmUgU2NoZWlzc211c2lrIGhpZXI/IgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRHJvZ2Vud2l0eiAoQXN0YXIsICA0LiBOb3YgMTk5NywgMTU6MDk6MzQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3ODY1MTc4NiByZz13aXR6ZQp+IyEgdGlkPTg3ODY1MTc4NgpJY2ggZGFjaHRlIEhpZXIgc29sbGVuIFdpdHplIHJlaW4/CgpBc3RhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEcm9nZW53aXR6IChTY2hva28sICA0LiBOb3YgMTk5NywgMTg6MTk6NTEpOgp+IyEgcm49QXN0YXIgcnQ9ODc4NjUyNTc0IHJnPXdpdHplCn4jISB0aWQ9ODc4NjUxNzg2CgpBbHNvIGljaCBmaW5kIGRlbiBrbGFzc2UuLi4KClNjaG9rbyAoaG9lcnQgZ2VybiBMaWVkZXIsIGJlaSBkZW5lbiBtYW4gZW50c2NoZWlkZW4ga2Fubiwgd2FubiBlaW5zIHp1IEVuZGUKaXMgdW5kIGRhcyBOYWVjaHN0ZSBhbmZhZW5ndCwpClAuUy46IEFjaCBqYSBlaW4gV2l0eiBzb2xsdGUgZGEgamEgYXVjaCBub2NoIGhlcjoKICAgICAgRXNzZW4gendlaSBLYW5uaWJhbGVuIG5lbiBDbG93bi4gU2FndCBkZXIgZWluZTogSG1tIHNjaG1lY2t0IGlyZ2VuZHdpZQprb21pc2NoLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEcm9nZW53aXR6IChFbmd5d3VjaywgIDQuIE5vdiAxOTk3LCAxODoyNjoyMyk6Cn4jISBybj1Bc3RhciBydD04Nzg2NTI1NzQgcmc9d2l0emUKfiMhIHRpZD04Nzg2NTE3ODYKSWNoIGthbm50ZSBkZW4gc2Nob24sIGhhYiBtaWNoIGFiZXIgdHJvdHpkZW0gYW11ZXNpZXJ0LgpBdXNzZXJkZW0gZW50aGllbHQgREVJTiBQb3N0aW5nIGtlaW4gV2l0eiEKCkVuZ3kqCgpPSjoKRjogV2FydW0gd2lyZCBiZWkgRnJvc3QgYXVmIGRlbSBCYXUgbmljaHQgZ2VhcmJlaXRldD8KQTogV2VpbCBkYXMgQmllciBkYW5uIGdlZnJpZXJ0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRHJvZ2Vud2l0eiAoWWFudHJvLCAgNC4gTm92IDE5OTcsIDE5OjA4OjQ5KToKfiMhIHJuPUVuZ3l3dWNrIHJ0PTg3ODY2NDM4MyByZz13aXR6ZQp+IyEgdGlkPTg3ODY1MTc4NgpIbW1tIHdpZXNvIGtlbm50IEVuZ3kgQmF1d2l0emU/IFNvIGxhbmdlIGlzdCBlciBub2NoIGdhciBrZWluIGFyYmVpdHNsb3NlcgpDaGVtaWtlciA6KQoKT0o6IEhlcnIgRG9rdG9yLCBIZXJyIERva3RvciwgaWNoIGtyaWVnIG1laW5lIFZvcmhhdXQgbmljaHQgbWVociB6dXJ1ZWNrISEhCiAgICBKYSwgZXMgZ2lidCBlaW5mYWNoIFNhY2hlbiwgZGllIG1hbiBuaWNodCB2ZXJsZWloZW4gc29sbHRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRHJvZ2Vud2l0eiAoTGksICA1LiBOb3YgMTk5NywgMDg6NTg6NTUpOgp+IyEgcm49U2Nob2tvIHJ0PTg3ODY2Mzk5MSByZz13aXR6ZQp+IyEgdGlkPTg3ODY1MTc4NgplaWdlbnRsaWNoIGVpbiBVbGkgU3RlaW4gQ2FydG9vbiwgYWJlciBrYW5uIG1hbiBhdWNoIGVyemFlaGxlbjoKenVtIFRoZW1hIEthbm5pYmFsZSkKRnJhZ3QgZGVyIEthbmlubmliYWxlIGRlbiBmb3JzY2hlciBpbiBzZWluZW0gS29jaHRvcGY6ICJ3ZWxjaGVzIFN0ZXJuemVpY2hlbgpzaW5kIHNpZT8iIAoiRmlzY2hlLCB3aWVzbz8iCkRhcmF1ZiBkZXIgS2FubmliYWxlIHp1IHNlaW5lciBGcmF1OiAiV2Vpc3N3ZWluIGthbHRzdGVsbGVuISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IERyb2dlbndpdHogKEJsb29keWhhcnJ5LCAgNS4gTm92IDE5OTcsIDA5OjQ1OjQxKToKfiMhIHJuPUVuZ3l3dWNrIHJ0PTg3ODY2NDM4MyByZz13aXR6ZQp+IyEgdGlkPTg3ODY1MTc4NgoKSWNoIGRlbmtlLCBBc3RhciBtZWludGUgZXMgc2VpIGtlaW4gV2l0eiBzb25kZXJuIGRpZSByZWluZSBXYWhyaGVpdCEgIDotKQpVbmQgZ3V0IGlzc2VyIHdpcmtsaWNoLgoKCmJoCgoKb2Jqb2tlOgpEaWUgU2Nod2FyemhhYXJpZ2U6ICJLb21tdCBNYWVkZWxzISBMYXNzdCB1bnMgU2thdCBzcGllbGVuLiIKRGllIEJydWVuZXR0ZSB6dXIgQmxvbmRpbmU6ICJIYXN0IER1IGRpZSBSZWdlbCBpbSBLb3BmPyIKRGllIEJsb25kaW5lOiAiV2llc28/IEJsdXRldCBtZWluZSBOYXNlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVucyAoS2V0b3MsICA1LiBOb3YgMTk5NywgMTE6Mjk6MjQpOgpTdWJqZWN0OiAgIFdoYXQncyB0aGUgZGlmZmVyZW5jZS4uLi4uPwpTdWJqZWN0OiAgIE1vJyBmdW5ueSBzdHVmZgoKV2hhdCBkbyB5b3UgY2FsbCBhIG1hbiB3aXRoIGhhbGYgYSBicmFpbj8KR2lmdGVkLgoKID09PT09PT09KysrKysrPT09PT09PQpXaGF0IGRvIHlvdSBjYWxsIGFuIGludGVsbGlnZW50IG1hbiBpbgpBbWVyaWNhPwpBIHRvdXJpc3QuCiA9PT09PT09PSsrKysrKz09PT09PT0KV2hhdCBkbyB5b3UgY2FsbCBhIG1hbndpdGggOTklIG9mIGhpcyBicmFpbiBtaXNzaW5nPwpDYXN0cmF0ZWQuCj09PT09PT09KysrKysrPT09PT09PQoKV2hhdCBkbyB5b3UgY2FsbCBhIGhhbmRjdWZmZWQgbWFuPwpUcnVzdHdvcnRoeS4KCiA9PT09PT09PSsrKysrKz09PT09PT0KV2hhdCBkbyB5b3UgY2FsbCB0aGUgaW5zZW5zaXRpdmUgcGFydCBhdCB0aGUgYmFzZQpvZiB0aGUgcGVuaXM/ClRoZSBtYW4uCj09PT09PT09KysrKysrPT09PT09PQpXaGF0IGRvIHlvdSBjYWxsIGEKbWFuIHdobyBleHBlY3RzIHRvIGhhdmUgc2V4IG9uIHRoZSBzZWNvbmQgZGF0ZT8KU2xvdy4KID09PT09PT09KysrKysrPT09PT09PQpXaGF0IGRvIHlvdSBoYXZlIHdoZW4geW91IGhhdmUgdHdvIGxpdHRsZSBiYWxscwppbiB5b3VyIGhhbmQ/CkEgbWFuJ3MgdW5kaXZpZGVkIGF0dGVudGlvbi4KPT09PT09PT0rKysrKys9PT09PT09CiBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBtYW4gYW5kIEUuVC4/CiBFLlQuIHBob25lZCBob21lLgoKID09PT09PT09KysrKysrPT09PT09PQogV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGdvdmVybm1lbnQgYm9uZHMKYW5kIG1lbj8KIEJvbmRzIE1hdHVyZS4KID09PT09PT09KysrKysrPT09PT09PQogV2hhdCBpcyB0aGUKZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbWFuIGFuZCBhIGNhdGZpc2g/CiBPbmUgaXMgYSBib3R0b20tZmVlZGluZwpzY3VtLXN1Y2tlciBhbmQgdGhlIG90aGVyIGlzIGEgZmlzaC4KID09PT09PT09KysrKysrPT09PT09PQogV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgYmFyIGFuZCBhCiBjbGl0b3Jpcz8KIE1vc3QgbWVuIGhhdmUgbm8gdHJvdWJsZSBmaW5kaW5nIGEgYmFyCiA9PT09PT09PSsrKysrKz09PT09PT0KV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYQpwb3JjdXBpbmUgYW5kIGEgQ29ydmV0dGU/ClRoZSBwb3JjdXBpbmUgaGFzIHByaWNrcyBvbiB0aGUgb3V0c2lkZS4KID09PT09PT09KysrKysrPT09PT09PQogV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbWFuIGFuZApjaGlsZGJpcnRoPwpPbmUgY2FuIGJlIHRlcnJpYmx5IHBhaW5mdWwgYW5kIHNvbWV0aW1lcyBhbG1vc3QKIHVuYmVhcmFibGUKd2hpbGUgdGhlIG90aGVyIGlzIGp1c3QgaGF2aW5nIGEgYmFieS4KID09PT09PT09KysrKysrPT09PT09PQoKIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIHNpbmdsZSA0MC15ZWFyLW9sZAogd29tYW4gYW5kIGEKIHNpbmdsZSA0MC15ZWFyLW9sZCBtYW4/CiAgVGhlIDQwLXllYXItb2xkIHdvbWFuIHRoaW5rcyBvZnRlbiBvZiBoYXZpbmcKIGNoaWxkcmVuCmFuZCB0aGUKIDQwLXllYXItb2xkIG1hbiB0aGlua3Mgb2Z0ZW4gYWJvdXQgZGF0aW5nIHRoZW0uCgogPT09PT09PT0rKysrKys9PT09PT09CiAgV2hhdCBkbyBtZW4gYW5kIHdvbWVuIGhhdmUgaW4gY29tbW9uPwogIFRoZXkgYm90aCBkaXN0cnVzdCBtZW4uCiA9PT09PT09PSsrKysrKz09PT09PT0KIFdoYXQgIGRvIGFsbCB0aGUgbWVuIGF0IHNpbmdsZXMgYmFycyBoYXZlIGluCiBjb21tb24/CiBUaGV5IGFyZSBhbGwgbWFycmllZC4KCiA9PT09PT09PSsrKysrKz09PT09PT0KIFdoYXQgZG8gYSBjbGl0b3JpcywgYW4gYW5uaXZlcnNhcnksIGFuZCBhIHRvaWxldApoYXZlIGluIGNvbW1vbj8KTWVuIGFsd2F5cyBtaXNzIHRoZW0uCiAgPT09PT09PT0rKysrKys9PT09PT09CiBXaGF0IGRvIG1lbiB0aGluayBNdXR1YWwgT3JnYXNtIGlzPwogIEFuIGluc3VyYW5jZSBjb21wYW55LgoKID09PT09PT09KysrKysrPT09PT09PQogV2hhdCBpcyBncm9zcyBzdHVwaWRpdHk/CiAxNDQgbWVuIGluIG9uZSByb29tLgogPT09PT09PT0rKysrKys9PT09PT09CiBXaGF0IGlzIGEgbWFuJ3MgdmlldyBvZiBzYWZlIHNleD8KIEEgcGFkZGVkIGhlYWRib2FyZC4KID09PT09PT09KysrKysrPT09PT09PQogV2hhdCBkaWQgR29kIHNheSBhZnRlciBjcmVhdGluZyBtYW4/CiAgSSBjYW4gZG8gYmV0dGVyLgogPT09PT09PT0rKysrKys9PT09PT09CiBIdXNiYW5kOiBXYW50IGEgcXVpY2tpZT8KIFdpZmU6IEFzIG9wcG9zZWQgdG8gd2hhdD8KID09PT09PT09KysrKysrPT09PT09PQpIdXNiYW5kOiBJIGRvbid0IGtub3cgd2h5IHlvdSB3ZWFyIGEgYnJhLCB5b3UndmUgZ290CiBub3RoaW5nIHRvIHB1dAppbiBpdD8KV2lmZTogWW91IHdlYXIgYnJpZWZzLCBkb24ndCB5b3U/CiA9PT09PT09PSsrKysrKz09PT09PT0KIFdoeSBkbyBtZW4gd2FudCB0byBtYXJyeSB2aXJnaW5zPwogVGhleSBjYW4ndCBzdGFuZCBjcml0aWNpc20uCgogPT09PT09PT0rKysrKys9PT09PT09CiBXaHkgZG8gbWVuIHBsYXkgZm9vdGJhbGwgb24gYXJ0aWZpY2lhbCB0dXJmPwogVG8ga2VlcCB0aGVtIGZyb20gZ3JhemluZy4KICA9PT09PT09PSsrKysrKz09PT09PT0KV2h5IGRvIG1lbiBuYW1lIHRoZWlyIHBlbmlzZXM/CkJlY2F1c2UgdGhleSB3YW50IHRvIGJlIG9uIGEgZmlyc3QtbmFtZSBiYXNpcyB3aXRoCiB0aGUKcGVyc29uIHdobyBtYWtlcyBhbGwgdGhlaXIgZGVjaXNpb25zLgo9PT09PT09PSsrKysrKz09PT09PT0KV2h5IGRvIG1lbiBsaWtlIG1hc3R1cmJhdGlvbj8KSXRzIHNleCB3aXRoIHNvbWVvbmUgdGhleSBsb3ZlLgoKID09PT09PT09KysrKysrPT09PT09PQogV2h5IGFyZSBkdW1iIGJsb25kZSBqb2tlcyBvbmUtbGluZXJzPwpTbyBtZW4gY2FuIHJlbWVtYmVyIHRoZW0uCj09PT09PT09KysrKysrPT09PT09PQpXaHkgYXJlIHdvbWVuIHNvIGJhZCBhdCBtYXRoZW1hdGljcz8KQmVjYXVzZSBtZW4ga2VlcCB0ZWxsaW5nIHRoZW0gdGhhdCB0aGlzLi4KICAgICAgfDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAppcyAxMiBpbmNoZXMuCiA9PT09PT09PSsrKysrKz09PT09PT0KV2h5IGlzIGl0IHNvIGhhcmQgZm9yIHdvbWVuIHRvIGZpbmQgbWVuIHRoYXQgYXJlCiBzZW5zaXRpdmUsIGNhcmluZywKYW5kIGdvb2QtbG9va2luZz8KQmVjYXVzZSB0aGV5IGFscmVhZHkgaGF2ZSBib3lmcmllbmRzLgoKID09PT09PT09KysrKysrPT09PT09PQpXaHkgaXMgcHN5Y2hvYW5hbHlzaXMgcXVpY2tlciBmb3IgbWVuIHRoYW4gZm9yCndvbWVuPwpXaGVuIGl0J3MgdGltZSB0byBnbyBiYWNrIHRvIGNoaWxkaG9vZCwgaGUncyBhbHJlYWR5CiB0aGVyZS4KID09PT09PT09KysrKysrPT09PT09PQogV2h5IGlzIGEgbWFuIGxpa2UgYSBzbm93c3Rvcm0/CkJlY2F1c2UgeW91IGRvbid0IGtub3cgd2hlbiBoZSdzIGNvbWluZywgaG93IG1hbnkKIGluY2hlcyB5b3UnbGwgZ2V0LApvciBob3cgbG9uZyBpdCdsbCBzdGF5Lgo9PT09PT09PSsrKysrKz09PT09PT0KV2h5IGFyZSBtZW4gbGlrZSBsYXhhdGl2ZXM/ClRoZXkgaXJyaXRhdGUgdGhlIHNoaXQgb3V0IG9mIHlvdS4KID09PT09PT09KysrKysrPT09PT09PQogV2h5IGFyZSBtZW4gbGlrZSBwb3Bjb3JuPwpUaGV5IHNhdGlzZnkgeW91LCBidXQgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUuCiA9PT09PT09PSsrKysrKz09PT09PT0KV2h5IGFyZSBtZW4gbGlrZSBibGVuZGVycz8KWW91IG5lZWQgb25lLCBidXQgeW91J3JlIG5vdCBxdWl0ZSBzdXJlIHdoeS4KID09PT09PT09KysrKysrPT09PT09PQpXaHkgZG8gbWVuIGhhdmUgYSBob2xlIGluIHRoZWlyIHBlbmlzPwpTbyBveHlnZW4gY2FuIGdldCB0byB0aGVpciAgYnJhaW5zLgogPT09PT09PT0rKysrKys9PT09PT09CiBXaHkgZGlkIGdvZCBjcmVhdGUgbWFuPwogQmVjYXVzZSBhIHZpYnJhdG9yIGNhbid0IG1vdyB0aGUgbGF3bi4KID09PT09PT09KysrKysrPT09PT09PQpXaHkgd2VyZSBtZW4gZ2l2ZW4gbGFyZ2VyCmJyYWlucyB0aGFuIGRvZ3M/ClNvIHRoZXkgd291bGRuJ3QgaHVtcCB3b21lbidzIGxlZ3MgYXQgY29ja3RhaWwKcGFydGllcy4KPT09PT09PT0rKysrKys9PT09PT09CldoeSBkb2VzIHRoZSBzdHVwaWQgbWFuIHB1dCBpY2UgaW4KaGlzIGNvbmRvbT8KVG8ga2VlcCB0aGUgc3dlbGxpbmcgZG93bi4KID09PT09PT09KysrKysrPT09PT09PQogIEkKSSB3ZW50IHRvIHRoZSBDb3VudHkgRmFpci4gVGhleSBoYWQgb25lIG9mIHRob3NlCiAiQmVsaWV2ZSBpdCBvciBub3Q/IgogU2hvd3MuClRoZXkgaGFkIGEgbWFuIGJvcm4gd2l0aCBhIHBlbmlzIGFuZCBhIGJyYWluLgogPT09PT09PT0rKysrKys9PT09PT09ClR3byBtZW4gd2VyZSBzdHJvbGxpbmcgZG93biB0aGUgc3RyZWV0IHdoZW4gb25lCmd1eSBleGNsYWltZWQsCiAiSG93IHNhZCAtIGEgZGVhZCBiaXJkLiIgVGhlIG90aGVyIG1hbiBsb29rZWQgdXAKIGFuZCBzYWlkLAoid2hlcmU/Igo9PT09PT09PSsrKysrKz09PT09PT0KV2hhdCBhcmUgdHdvIHJlYXNvbnMgd2h5IG1lbiBkb24ndAptaW5kIHRoZWlyIG93biBidXNpbmVzcwogMS4gTm8gbWluZC4KIDIuIE5vIGJ1c2luZXNzLgoKID09PT09PT09KysrKysrPT09PT09PQogRGlkIHlvdSBoZWFyIGFib3V0IHRoZSBiYW5rZXIgd2hvJ3MgYSBncmVhdApsb3Zlcj8KIEhlIGtub3dzIGZpcnN0LWhhbmQgdGhlIHBlbmFsdHkgZm9yIGVhcmx5CiB3aXRoZHJhd2FsLgoKID09PT09PT09KysrKysrPT09PT09PQpEaWQgeW91IGhlYXIgYWJvdXQgdGhlIG1hbiB3aG8gd29uIHRoZSBnb2xkIG1lZGFsCmF0IHRoZSBPbHltcGljcz8KSGUgaGFkIGl0IGJyb256ZWQuCiAgPT09PT09PT0rKysrKys9PT09PT09CiBPbmx5IGEgbWFuIHdvdWxkIGJ1eSBhICQ1MDAgY2FyIGFuZCBwdXQgYSAkNDAwMAogc3RlcmVvIGluIGl0LgoKID09PT09PT09KysrKysrPT09PT09PQogSWYgbWVuIGdvdCBwcmVnbmFudC4uLi4KIGFib3J0aW9uIHdvdWxkIGJlIGF2YWlsYWJsZSBpbiBjb252ZW5pZW5jZSBzdG9yZXMKIGFuZCBkcml2ZSB0aHJvdWdoCiB3aW5kb3dzLgoKID09PT09PT09KysrKysrPT09PT09PQogSG93IGRvIHNvbWUgbWVuIGRlZmluZSBSb2UgdnMuIFdhZGU/CiBUd28gd2F5cyB0byBjcm9zcyBhIHJpdmVyLgogID09PT09PT09KysrKysrPT09PT09PQpIb3cgbWFueSBtZW4gZG9lcyBpdCB0YWtlIHRvCnBvcCBKSUZGWSBQT1AgcG9wY29ybj8KIDMgLSBPbmUgdG8gaG9sZCB0aGUgcGFuIGFuZCB0d28gb3RoZXJzIHRvIHNob3cgb2ZmCiBieSBzaGFraW5nIHRoZSBzdG92ZS4KICA9PT09PT09PSsrKysrKz09PT09PT0KIEhvdyBkbyBtZW4gc29ydCB0aGVpciBsYXVuZHJ5PwogIkZpbHRoeSIgYW5kICJGaWx0aHkgYnV0IFdlYXJhYmxlIi4KCiA9PT09PT09PSsrKysrKz09PT09PT0KSG93IGNhbiB5b3UgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIG1lbidzCnJlYWwgZ2lmdHMgYW5kIHRoZWlyIGd1aWx0IGdpZnRzPwpHdWlsdCBnaWZ0cyBhcmUgbmljZXIuCgogPT09PT09PT0rKysrKys9PT09PT09CldvbWVuIGRyZWFtIG9mIHdvcmxkIHBlYWNlLCBhIHNhZmUgZW52aXJvbm1lbnQsCmFuZCBlbGltaW5hdGluZyBodW5nZXIuCldoYXQgZG8gbWVuIGRyZWFtIG9mPwpCZWluZyBzdHVjayBpbiBhbiBlbGV2YXRvciB3aXRoIHRoZSBEb3VibGVtaW50IHR3aW5zLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpZZXN0ZXJkYXkgKEhpZ2hsYW5kZXIsICA1LiBOb3YgMTk5NywgMTI6MjA6MzApOgpZZXN0ZXJkYXksCkFsbCB0aG9zZSBiYWNrdXBzIHNlZW1lZCBhIHdhc3RlIG9mIHBheS4KTm93IG15IGRhdGFiYXNlIGhhcyBnb25lIGF3YXkuCk9oIEkgYmVsaWV2ZSBpbiB5ZXN0ZXJkYXkuCiAKU3VkZGVubHksClRoZXJlJ3Mgbm90IGhhbGYgdGhlIGZpbGVzIHRoZXJlIHVzZWQgdG8gYmUsCkFuZCB0aGVyZSdzIGEgbWlsZXN0b25lCmhhbmdpbmcgb3ZlciBtZQpUaGUgc3lzdGVtIGNyYXNoZWQgc28gc3VkZGVubHkuCiAKSSBwdXNoZWQgc29tZXRoaW5nIHdyb25nCldoYXQgaXQgd2FzIEkgY291bGQgbm90IHNheS4KIApOb3cgYWxsIG15IGRhdGEncyBnb25lCmFuZCBJIGxvbmcgZm9yIHllc3RlcmRheS1heS1heS1heS4KIApZZXN0ZXJkYXksClRoZSBuZWVkIGZvciBiYWNrLXVwcyBzZWVtZWQgc28gZmFyIGF3YXkuCkkga25ldyBteSBkYXRhIHdhcyBhbGwgaGVyZSB0byBzdGF5LApOb3cgSSBiZWxpZXZlIGluIHllc3RlcmRheS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaWNlIEdpcmxzIChNZXNhcm9uLCAgNS4gTm92IDE5OTcsIDE1OjMzOjM0KToKSGV1dGUgYXVmIEZGTjoKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlbiBTcGljZSBHaXJscyB1bmQgZWluZW0gUG9ybm9maWxtPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkJlaSBlaW5lbSBQb3Jub2ZpbG0gaXN0IGRpZSBNdXNpayBiZXNzZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdXNzYmFsbCAoWm9ycm8sICA2LiBOb3YgMTk5NywgMDk6MzI6MzgpOgpEZXIga3Vlcnplc3RlIFJ1aHJwb3R0LVdpdHouCgpTY2hpZXNzdCBlaW4gRG9ydG11bmRlciBlaW5lbiBFbGZtZXRlciAhIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcm9kZW8gKEphc3BlciwgIDYuIE5vdiAxOTk3LCAxNDowNzo1OSk6Clp3ZWkgQXJiZWl0c2tvbGxlZ2VuIHVudGVyaGFsdGVuIHNpY2guIFNhZ3QgZGVyIGVpbmU6ICJIYXN0IER1IGJlaSBEZWluZXIgRnJhdQpzY2hvbm1hbCBkaWUgUm9kZW8tTnVtbWVyCnZlcnN1Y2h0PyIgIlJvZGVvLU51bW1lcj8gS2VubicgaWNoIG5pY2h0LiIgIk51biwgZ2FueiBlaW5mYWNoLCBEdSBiZXNwcmluZ3N0CkRlaW5lIEZyYXUgdm9uIGhpbnRlbiwKcGFja3N0IHNpZSBhbiBpaHJlbiBIYWFyZW4gdW5kIHNhZ3N0OiAnU28gbWFnJ3MgbWVpbmUgU2VrcmV0cmluIGFtIGxpZWJzdGVuJy4KVW5kIGRhbm4gdmVyc3VjaCBtYWwgZHJlaQpNaW51dGVuIGxhbmcgZHJhdWYgenUgYmxlaWJlbi4iIAoKSmFzcGVyIGphcHN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGZ1c3NiYWxsIChGcmV1bmQsICA2LiBOb3YgMTk5NywgMTQ6NDk6MDUpOgp+IyEgcm49Wm9ycm8gcnQ9ODc4ODA1MTU4IHJnPXdpdHplCn4jISB0aWQ9ODc4ODA1MTU4ClNvcnJ5LCBhYmVyIGljaCBmaW5kZSBiZXNzZXI6CgpWZXJ3YW5kZWx0IGVpbiBEb3J0bXVuZGVyIGVpbmVuIEVsZm1ldGVyLiA6KQoKRnJldW5kLCBoZXV0ZSBtYWwgYmVzc2Vyd2lzc2VyaXNjaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTcGljZSBHaXJscyAoR3JhbGtvciwgIDcuIE5vdiAxOTk3LCAxMTo0NTowOCk6Cn4jISBybj1NZXNhcm9uIHJ0PTg3ODc0MDQxNCByZz13aXR6ZQp+IyEgdGlkPTg3ODc0MDQxNApLb2VubnRldCBpaHIgbWFsIGRpZSBibG9lZGVuIExlZXJ6ZWljaGVuIGxhc3NlbiA/Pz8/PwpXZW5uIHNjaG9uIFdpdHosIGRhbm4gYml0dGUgc286CkZyYWdlOgpXYXJ1bSBuZW5uZW4gZGllIFdlc3NpcyBkaWUgT3NzaXMgaW1tZXIgT3NzaXMgPz8KCkFudHdvcnQ6CldlaWwgc2llIGRhcyBXb3J0ICJTcGV6aWFsaXN0ZW4iIG5pY2h0IGF1c3NwcmVjaGVuIGtvZW5uZW4uCgpHcmFsa29yLCBkaWVzZXMgR2VzY3JvbGxlIGhhc3NlbmQKUFM6IGJpdHRlIGtlaW5lbiBGbGFtZS1XYXIgd2VnZW4gT3NzaTwtPldlc3NpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp0aXAgKEJsb29keWhhcnJ5LCAxMS4gTm92IDE5OTcsIDE0OjMxOjM4KToKS2VpbiBXaXR6IC0gbnVyIGVpbiBsaW5rOgoKaHR0cDovL3d3dy5kcmVzZGVuLW5ldC5kZS9ibG9lZC9pbmRleC5odG1sCgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2l0eiAoR3JpbW1ib3JuLCAxMi4gTm92IDE5OTcsIDEzOjU4OjUwKToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gQXNwaXJpbiB1bmQgZWluZW0gS2FwdXppbmVybW9lbmNoPwpBc3BpcmluIGlzdCBlaW4gSGVpbHNlcnVtIHVuZCBkZXIgS2FwdXppbmVybW9lbmNoIGhhdCBlaW4gU2VpbCBoZXJ1bS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaG4gd2l0eiAoR3JpbW1ib3JuLCAxMi4gTm92IDE5OTcsIDE0OjAxOjI1KToKRGVyIE9zdGVycmVubmVyIGltIEJhdW1hcmt0OiBEYXMgSU5SSS1TZXQuCkRyZWkgTmFlZ2VsIHVuZCBlaW4gSGFtbWVyLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaW5kZXJoZWl0ZW53aXR6IChHcmltbWJvcm4sIDEyLiBOb3YgMTk5NywgMTQ6MDQ6MjQpOgpXaWUgbmVubnQgbWFuIGRhcywgd2VubiBlaW4gV2Vzc2kgZWluZW0gT3NzaSBpbiBkaWUgRnJlc3NlIGhhdXQ/ClNvbGlkYXJpdGFldHN6dXNjaGxhZyBPc3QuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaHdlaW5za3JhbT8gKEdyaW1tYm9ybiwgMTIuIE5vdiAxOTk3LCAxNDowNjoyMyk6CldhcyBzaWVodCBtYW4sIHdlbm4gbWFuIGluIGRhcyBMb2NoIGVpbmVyIE11dHRlciBndWNrdD8KRGFzIEdld2luZGUuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1dG8gJiBQb2xpdGlrIChQcmEsIDEyLiBOb3YgMTk5NywgMTQ6MTQ6MDgpOgpIZXV0ZSBtb3JnZW4gaW4gZWluZW0gQ2FydG9vbiBpbiB1bnNlcmVyIExva2FsemVpdHVuZyBnZXNlaGVuOgoKRGllIEEtS2xhc3NlIC0gZGFzIG5ldWUgQXV0byBmdWVyIGRpZSBGLkQuUC46CgpLbGVpbiB1bmQgdW1mYWxsZXJwcm9idC4KClByYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCklORkFTIChTaWx2YW5hLCAxMi4gTm92IDE5OTcsIDIyOjU4OjE3KToKRGFzIEluZmFzLUluc3RpdHV0IGhhdCBtaXIgbmVuIG5ldHRlbiBaZXR0ZWwgenVnZXNjaGlja3QgbWl0IEZyYWdlbi4KVW50ZXIgYW5kZXJlbSBmb2xnZW5kZToKMTA6IFdlbm4gU2llIEtFSU5FTiBIdW5kIG9kZXIgS0VJTkUgS2F0emUgaGFiZW4sIG1hcmtpZXJlbiBTaWUgaGllcjoKPD4gdW5kIGdlaGVuIGdsZWljaCB3ZWl0ZXIgenUgRnJhZ2UgMTIuCgpGcmFnZSAxMjogV2llIGdyb3NzIGlzdCBpaHIgSHVuZD8KPD4ga2xlaW4gICAgPD4gbWl0dGVsICAgIDw+IGdyb3NzICAgIDw+IHNlaHIgZ3Jvc3MKClNvdmllbCB6dSBUaGVtYSBVbWZyYWdlbiB1biBMb2dpYy4uLiAqc2lnaCoKCiAgU2lsdmFuYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHdpdHogKEhvYm8sIDEzLiBOb3YgMTk5NywgMDg6NDQ6NDgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3OTMzOTUzMCByZz13aXR6ZQp+IyEgdGlkPTg3OTMzOTUzMApJc3QgZWluIFNlcnVtIG5pY2h0IHdhcyBGbHVlc3NpZ2VzPwoKSG9ibyAtIG11ZWRlIHVuZCB3aXNzZW5zZHVyc3RpZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IElORkFTIChIYXJkaWwsIDEzLiBOb3YgMTk5NywgMTA6Mjc6MDUpOgp+IyEgcm49U2lsdmFuYSBydD04NzkzNzE4OTcgcmc9d2l0emUKfiMhIHRpZD04NzkzNzE4OTcKCkFjaHR1bmcsIFNJbHZhbmEgdW5kIGFuZGVyZSwgZGllIGRpZXNlbiBTY2hyaWViIGF1Y2ggYmVrb21tZW4gaGFiZW46CkRhcyBJbnN0aXR1dCwgd2VsY2hlcyBkaWVzZSBCb2VnZW4gdmVyc2NoaWNrdCwgaGVpc3N0ICdJbmZhcyBMaWZlc3R5bGUnIHVuZApoYXQgbmljaHRzIG1pdCBkZW0gcmVubm9tbWllcnRlbiBJTkZBUyB6dSB0dW4uIFZlcmJyYXVjaGVyc2NodWV0emVyIHdhcm5lbiB2b3IKJ0luZmFzIExpZmVzdHlsZScsIHdlaWwgZGFkdXJjaCBub3JtYWxlcndlaXNlIGRlciBXZXJiZWFudGVpbCBEZWluZXIgUG9zdCBzaWNoCnZlci0KZ3JvZXNzZXJuIHdpcmQuCgotSGFyZGlsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJTkZBUyAoU2lsdmFuYSwgMTMuIE5vdiAxOTk3LCAxMjoxODoyMik6Cn4jISBybj1IYXJkaWwgcnQ9ODc5NDEzMjI1IHJnPXdpdHplCn4jISB0aWQ9ODc5MzcxODk3CkhtbW0sIHNpZSB3YXJlbiBkZXIgTWVpbnVuZywgYXVjaCBuaWNodCB2b2xsc3RhZW5kaWcgYXVzZ2VmdWVsbHRlIEJvZWdlbgp3dWVyZGVuIGlobmVuIGhlbGZlbi4uLiBXYXMgc2llIHdvaGwgenUgZWluZW0gbGVlcmVuIEJvZ2VuIHNhZ2VuLi4uPwoKICBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJTkZBUyAoV3VyemVsLCAxMy4gTm92IDE5OTcsIDE0OjAwOjA1KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODc5NDE5OTAyIHJnPXdpdHplCn4jISB0aWQ9ODc5MzcxODk3CmhhdXB0c2FjaGUgZGllIGFkcmVzc2UgaXN0IGRhYmVpLCBkZXIgcmVzdCBpbnRlcmVzc2llcnQgZGllIGVoIG5pY2h0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IElORkFTIChBbmNhbGFnb24sIDEzLiBOb3YgMTk5NywgMTQ6Mzg6MDEpOgp+IyEgcm49U2lsdmFuYSBydD04NzkzNzE4OTcgcmc9d2l0emUKfiMhIHRpZD04NzkzNzE4OTcKQWNoLCBoYXN0IGR1IGRpZXNlbiBVbWZyYWdlYm9nZmVuIGF1Y2ggZ2Vsa3JpZWd0PyBJc3R2ZGlyIGRhcyBhdWNoIHp1dmllbCB6dW0KYmVhbnR3b3J0ZW4/IE1pbmRlc3RlbnMgNCAyc3BhbHRpZ2UgRElOIEE0LXNlaXRlbiBtaXQgRnJhZ2VuLi4uLi4uIHdlcgpiZWFudHdvcnRldCBkZW5uIHNvd2FzLi4uLi5hYmVyIGltbWVyaGluIGthbm4gbWFuIHdhcyBnZXdpbm5lbi4uLi4uLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJTkZBUyAoR25vbWUsIDEzLiBOb3YgMTk5NywgMTQ6NDc6MjcpOgp+IyEgcm49QW5jYWxhZ29uIHJ0PTg3OTQyODI4MSByZz13aXR6ZQp+IyEgdGlkPTg3OTM3MTg5NwoiLi4uYWJlciBpbW1lcmhpbiBrYW5uIG1hbiB3YXMgZ2V3aW5uZW4uLi4iCnVuZCBkYXMgZ2xhdWJzdCBkdT8gOikKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJTkZBUyAoR3JpbW1ib3JuLCAxMy4gTm92IDE5OTcsIDE1OjAxOjMwKToKfiMhIHJuPUdub21lIHJ0PTg3OTQyODg0NyByZz13aXR6ZQp+IyEgdGlkPTg3OTM3MTg5NwpOZWluLCBkYXMgd2FyIGRlciBvYmpva2UsIGRlciBiZWkgRGlyIGZlaGx0LgoKIk9oLCBTaWUgaGFiZW4gYWJlciBlaW5lIHNjaG9lbmUgVmFzZSwgRnJhdSBNZWllci4iCiJKYSwgZGEgaXN0IGRpZSBBc2NoZSB2b24gbWVpbmVtIE1hbm4gZHJpbi4iCiJPaCwgZGFzIHR1dCBtaXIgYWJlciBsZWlkLiIKIkFjaCB3YXMsIGRlciBpc3QgYmxvc3MgenUgZmF1bCwgZWluZW4gQXNjaGVuYmVjaGVyIHp1IGhvbGVuLiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSU5GQVMgKFNpbHZhbmEsIDEzLiBOb3YgMTk5NywgMTU6MDg6MDgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg3OTQyOTY5MCByZz13aXR6ZQp+IyEgdGlkPTg3OTM3MTg5NwpTaWNoZXIga2FubiBtYW4gd2FzIGdld2lubmVuOiBFaW5lbiBCcmllZmthc3RlbiB2b2xsZXIgV2VyYnVuZy4gOikKCiAgU2lsdmFuYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSU5GQVMgKEdub21lLCAxMy4gTm92IDE5OTcsIDE1OjA4OjMzKToKfiMhIHJuPUdub21lIHJ0PTg3OTQyODg0NyByZz13aXR6ZQp+IyEgdGlkPTg3OTM3MTg5NwphdWYgd3Vuc2NoIGVpbmVzIGVpbnplbG5lbiBPcmtUIGtvbW10IGhpZXIgbm9jaCBkZXIgd2l0eiBhdXMgZGVtIGxldHp0ZW4KYXJ0aWtlbDoKZGVyIGFzc2kgaGlsZnQgZ3JhZGUgZGUgcHJvZiBkaWUgcHJ1ZWZ1bmdzZnJhZ2VuIGZ1ZXIgZGFzIGRpZXNqYWVocmlnZQpzdGFhdHNleGFtZW4genVzYW1tZW56dXN0ZWxsZW4uIGRhIGJlbWVya3QgZXIsIGRhc3MgaWhtIGRpZSBmcmFnZSBiZWthbm50CnZvcmtvbW1lbi4gImFlaC4uLiBoYXR0ZW4gd2lyIG5pY2h0IHNjaG9uIGxldHp0ZXMgdW5kIHZvcmxldHp0ZXMgamFocj8iLgoiamEsIGFiZXIgZGllIGFudHdvcnRlbiBzaW5kIGplZGVzbWFsIGFuZGVycy4uLiIKCnNvLCB1bmQgbm9jaCBlaW5lbiBrbGVpbmVuIGZ1ZXIgZGllc2VuIGFydGlrZWw6IDopCmtvbW10IGVpbiBtYW5uIHp1bSBiYWVja2VyLiAiaWNoIGhhZXR0ZSBnZXJuIDk5IGJyb2V0Y2hlbi4uLiIKImRhbm4gbmVobWVuIHNpZSBkb2NoIGdsZWljaCAxMDAuLi4iLiAid2FzPyB3ZXIgc29sbCBkaWUgZGVubiBhbGxlCmVzc2VuLi4uPyIKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmcmlzY2ggZ2VmdW5kZW4uLi4uIChBbmNhbGFnb24sIDEzLiBOb3YgMTk5NywgMTU6MTQ6MjUpOgpLbnVkZGVscyEKSGFiIGdyYWQgd2FzIG5ldHRlcyBnZWZ1bmRlbi4gVGhlbWEgU3RhcnRyZWsgLSBUTkcuLi4KCgpJZiBEci4gU2V1c3Mgd3JvdGUgZm9yIFN0YXJ0cmVrIFRoZSBOZXh0IEdlbmVyYXRpb246IAoKUGljYXJkOiAgICAgU2lnbWEgSW5kcmksIHRoYXQncyB0aGUgc3RhciwKICAgICAgICAgICAgU28sIERhdGEsIHBsZWFzZSwgaG93IGZhcj8gSG93IGZhcj8KCkRhdGE6ICAgICAgIE91ciBzaGlwIGNhbiBnZXQgdGhlcmUgdmVyeSBmYXN0CiAgICAgICAgICAgIEJ1dCBzdGlsbCB0aGUgdHJpcCB3aWxsIGxhc3QgYW5kIGxhc3QKICAgICAgICAgICAgV2UnbGwgaGF2ZSB0d28gZGF5cyB0aWwgd2UgYXJyaXZlCiAgICAgICAgICAgIEJ1dCBjYW4gdGhlIEluZHJhbnMgdGhlcmUgc3Vydml2ZT8KClBpY2FyZDogICAgIExhRm9yZ2UsIHBsZWFzZSBnaXZlIHVzIGZhY3RvciBuaW5lLgoKTGFGb3JnZTogICAgQnV0LCBzaXIsIHRoZSBlbmdpbmVzIGFyZSBvZmZsaW5lIQoKUGljYXJkOiAgICAgT2ZmbGluZSEgQnV0IHdoeT8gSSB3YW50IHRvIGdvIQogICAgICAgICAgICBQbGVhc2UgbWFrZSBpdCBzbywgcGxlYXNlIG1ha2UgaXQgc28hCgpSaWtlcjogICAgICBCdXQgc2lyLCBpZiBHZW9yZGkgc2F5cyB3ZSBjYW4ndCwKICAgICAgICAgICAgV2UgY2FuJ3QsIHdlIG11c3RuJ3QsIGFuZCB3ZSBzaGFuJ3QsCiAgICAgICAgICAgIFRoZSBkYW5nZXIgaGVyZSBpcyBmYXIgdG9vIGdyZWF0IQoKUGljYXJkOiAgICAgQnV0IHN1cmVseSB3ZSBtdXN0IG5vdCBiZSBsYXRlIQoKVHJvaTogICAgICAgSSdtIHNlbnNpbmcgYW5nZXIgYW5kIGdyZWF0IGlyZS4KCkNvbXB1dGVyOiAgIEFsZXJ0ISBBbGVydCEgVGhlIHNoaXAncyBvbiBmaXJlIQoKUGljYXJkOiAgICAgVGhlIHNoaXAncyBvbiBmaXJlPyBIb3cgY291bGQgdGhpcyBiZT8KICAgICAgICAgICAgV2hvIGxpdCB0aGUgZmlyZT8KClJpa2VyOiAgICAgIE5vdCBtZS4KCldvcmY6ICAgICAgIE5vdCBtZS4KClBpY2FyZDogICAgIENvbXB1dGVyLCBob3cgbG9uZyB0aWwgd2UgZGllPwoKQ29tcHV0ZXI6ICAgRWlnaHQgbWludXRlcyBsZWZ0IHRvIHNheSBnb29kYnllLgoKRGF0YTogICAgICAgTWF5IEkgc3VnZ2VzdCBhIGNvdXJzZSB0byB0YWtlPwogICAgICAgICAgICBXZSBjb3VsZCwgSSB0aGluaywgcXVpdGUgc2FmZWx5IG1ha2UKICAgICAgICAgICAgRXh0aW5ndWlzaGVycyBmcm9tIHRyYWN0b3IgYmVhbXMKICAgICAgICAgICAgQW5kIHN0b3AgdGhlIGZpcmUsIG9yIHNvIGl0IHNlZW1zLi4uCgpHZW9yZGk6ICAgICBIdXJyYXkhIEh1cnJheSEgWW91J3ZlIHNhdmVkIHRoZSBkYXkhCiAgICAgICAgICAgIEFnYWluIEkgc2F5LCBIdXJyYXkhIEh1cnJheSEKClBpY2FyZDogICAgIE1yLiBEYXRhLCB0aGFuayB5b3UgbXVjaC4KICAgICAgICAgICAgWW91J3ZlIHNhdmVkIG91ciBsaXZlcywgb3VyIHNoaXAsIGFuZCBzdWNoLgoKVHJvaTogICAgICAgV2Ugc3RpbGwgbXVzdCBzYXZlIHRoZSBJbmRyYW4gcGxhbmV0IC0tCgpEYXRhOiAgICAgICBXaGljaCAoYnkgdGhlIHdheSkgaXMgbWFkZSBvZiBncmFuaXRlLi4uCgpQaWNhcmQ6ICAgICBFbm91Z2gsIHlvdSBhbmRyb2lkLiBQbGVhc2UgZGVzaXN0LgogICAgICAgICAgICBXZSB1bmRlcnN0YW5kIC0tIHdlIGdldCB5b3VyIGdpc3QuCiAgICAgICAgICAgIEJ1dCBjYW4gd2UgZ2V0IG91ciBzaGlwIHRvIGdvPwogICAgICAgICAgICBQbGVhc2UsIG1ha2UgaXQgc28sIFBMRUFTRSBtYWtlIGl0IHNvLgoKR2VvcmRpOiAgICAgVGhlcmUncyBzYWJvdGFnZSBhbW9uZyB0aGUgd2lyZXMKICAgICAgICAgICAgQW5kIHRoYXQncyB3aGF0IHN0YXJ0ZWQgYWxsIHRoZSBmaXJlcy4KClJpa2VyOiAgICAgIFdlIGhhdmUgYSBzYWJvdGV1cj8gT2gsIG5vIQogICAgICAgICAgICBXZSBuZWVkIHRvIGdvISBXZSBuZWVkIHRvIGdvIQoKVHJvaTogICAgICAgV2UgbXVzdCBzZWVrIG91dCB0aGUgdHJhaXRvciBzcHkKICAgICAgICAgICAgQW5kIGxvY2sgaGltIHVwIGFuZCBhc2sgaGltIHdoeT8KCldvcmY6ICAgICAgIEFzayBoaW0gd2h5PyBIb3cgc2VudGltZW50YWwuCiAgICAgICAgICAgIEkgc2F5IGdpdmUgaGltIHByb2JsZW1zIGRlbnRhbC4KClRyb2k6ICAgICAgIEFyZSBhbnkgUm9tdWxhbiBzaGlwcyBhcm91bmQ/CiAgICAgICAgICAgIEhhdmUgc2Nhbm5lcnMgc2FpZCB0aGF0IHRoZXkndmUgYmVlbiBmb3VuZD8KICAgICAgICAgICAgT3IgaXMgaXQgQm9yZyBvciBzb21lIG5ldyB0aHJlYXQKICAgICAgICAgICAgV2UgaGF2ZW4ndCBldmVuIGhlYXJkIG9mIHlldD8KICAgICAgICAgICAgSSBzZW5zZSBubyBtYWxpY2UgaW4gdGhpcyBjcmV3LgogICAgICAgICAgICBOb3cgd2hhdCBhcmUgd2Ugc3VwcG9zZWQgdG8gZG8/CgpDcnVzaGVyOiAgICBDYXB0YWluLCBwbGVhc2UsIHRoZSBJbmRyYW5zIG5lZWQgdXMuCiAgICAgICAgICAgIFRoZXkgY3J5IG91dCwgIkhlbHAgdXMsIGNsb3RoZSB1cywgZmVlZCB1cyEiCiAgICAgICAgICAgIEkgY2FuJ3QganVzdCBzaXQgYW5kIGxldCB0aGVtIGRpZSEKICAgICAgICAgICAgQSBkb2N0b3IgTVVTVCBhdHRlbXB0IC0tIE1VU1QgdHJ5IQoKUGljYXJkOiAgICAgRG9jdG9yLCBwbGVhc2UsIHdlJ2xsIGdldCB0aGVyZSBzb29uLgoKQ3J1c2hlcjogICAgVGhleSBtYXkgYmUgZGVhZCBieSBUdWVzZGF5IG5vb24uCgoKKkNPTU1FUkNJQUwgQlJFQUssIENPTU1FUkNJQUwgQlJFQUsKIEhPVyBMT05HIFdJTEwgVEhFU0UgRFVNQiBBRFMgVEFLRT8qCgoKV29yZjogICAgICAgVGhlIHNhYm90ZXVyIGlzIGluIHRoZSBicmlnLgogICAgICAgICAgICBIZSdzIHZlcnkgc3Ryb25nIGFuZCB2ZXJ5IGJpZy4KICAgICAgICAgICAgSSBoYWQgbXkgcGhhc2VyIHNldCBvbiBzdHVuIC0tCiAgICAgICAgICAgIEEgenp6aXAhIEEgenp6YXAhIEFub3RoZXIgb25lIQogICAgICAgICAgICBIZSB3b3VsZCBub3QgYnVkZ2UsIGhlIHdvdWxkIG5vdCBmYWxsLAogICAgICAgICAgICBIZSB3b3VsZCBub3Qgc3R1biwgbm8sIG5vdCBhdCBhbGwhCiAgICAgICAgICAgIEhlIGNoYW5nZWQgaW50byBhIHN0cmFuZ2VyIGZvcm0KICAgICAgICAgICAgQWxsIHNvZnQgYW5kIHB1cnBsZSwgcm91bmQgYW5kIHdhcm0uCgpQaWNhcmQ6ICAgICBEaWQgeW91IHNlZSB0aGlzLCBNci4gV29yZj8KICAgICAgICAgICAgRGlkIHlvdSBzZWUgdGhpcyBjcmVhdHVyZSBtb3JwaD8KCldvcmY6ICAgICAgIEkgZGlkIGFuZCB0aGVuIEkgYmVhdCBoaW0gZmFpcmx5LgogICAgICAgICAgICBIaXQgaGltIG9uIHRoZSBqYXcgLS0gcXVpdGUgc3F1YXJlbHkuCgpSaWtlcjogICAgICBNeSBjb21tZW5kYXRpb25zLCBLbGluZ29uIGZyaWVuZCEKICAgICAgICAgICAgT3VyIHRyb3VibGVzIG5vdyBhcmUgYXQgYW4gZW5kIQoKQ3J1c2hlcjogICAgTm93IGxldCdzIGdldCBvdXIgc2hpcCB0byBmbHkKICAgICAgICAgICAgQW5kIG9yYml0IHlvbmRlciBJbmRyYW4gc2t5IQoKUGljYXJkOiAgICAgTGFGb3JnZSwgcGxlYXNlIHRlbGwgbWUgd2UgY2FuIGdvLi4uPwoKR2VvcmRpOiAgICAgWWVzLCBzaXIsIHdlIGNhbi4KClBpY2FyZDogICAgIFRoZW4gbWFrZSBpdCBzbyEKCgoKCkljaCBob2ZmZSwgZXMgaXN0IGhlaWwgYW5nZWtvbW1lbi4uLi4uCktudWRkZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbmNhbGFnb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZXJnZSAoRW5nbGlzY2gpIChIaWdobGFuZGVyLCAxMy4gTm92IDE5OTcsIDE1OjE5OjA0KToKVHdvIGR3YXJmcyBkZWNpZGUgdG8gdHJlYXQgdGhlbXNlbHZlcyB0byBhIHZhY2F0aW9uIGluIExhcyBWZWdhcy5BdCB0aGUKaG90ZWwgYmFyLCB0aGV5J3JlIGRhenpsZWQgYnkgdHdvIHdvbWVuLCBhbmQgd2luZCB1cCB0YWtpbmcgdGhlbSB0byB0aGVpcgpzZXBhcmF0ZSByb29tcy4gIFRoZSBmaXJzdCBkd2FyZiBpcyBkaXNhcHBvaW50ZWQsIGhvd2V2ZXIsYXMgaGUncyB1bmFibGUKdG8gcmVhY2ggYSBjZXJ0YWluIHBoeXNpY2FsIHN0YXRlIHRoYXQgd291bGQgZW5hYmxlIGhpbSB0byBqb2luIHdpdGggaGlzCmRhdGUuIEhpcyBkZXByZXNzaW9uIGlzIGVuaGFuY2VkIGJ5IHRoZSBmYWN0IHRoYXQsIGZyb20gdGhlIG5leHQgcm9vbSBoZQpoZWFycyBjcmllcyBvZiwgIk9ORSwgVFdPLFRIUkVFLi4uSFVIISIgYWxsIG5pZ2h0IGxvbmcuIAogCkluIHRoZSBtb3JuaW5nLCB0aGUgc2Vjb25kIGR3YXJmIGFza3MgdGhlIGZpcnN0LCAiSG93IGRpZCBpdCBnbz8iIFRoZQpmaXJzdCB3aGlzcGVyZWQgYmFjaywgIkl0IHdhcyBzbyBlbWJhcnJhc3NpbmcuIEkgc2ltcGx5IGNvdWxkbid0IGdldCBhbgplcmVjdGlvbi4iIFRoZSBzZWNvbmQgZHdhcmYgc2hvb2sgaGlzIGhlYWQuICJZb3UgdGhpbmsgdGhhdCdzCmVtYmFycmFzc2luZz8iIGhlIGFza2VkLiAiSSBjb3VsZG4ndCBldmVuIGdldCBvbiB0aGUgYmVkISIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogWndlcmdlIChFbmdsaXNjaCkgKFlhbnRybywgMTMuIE5vdiAxOTk3LCAxNTo1MDoyMik6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTg3OTQzMDc0NCByZz13aXR6ZQp+IyEgdGlkPTg3OTQzMDc0NApEYSBmYWVsbHQgbWlyIGVpbiwgb2J3b2hsIGVzIGVoZXIgaW4ga3VsdHVyIGdlaG9lcnQuLiBpY2ggaGFiIGltIE5ldHoKenVtaW5kZXN0IGRpZSBlcnN0ZSBIYWVsZnRlIChhdWYgZGV1dHNjaCkgdW5kIGVpbmVuIGxpbmsgenUgZGVyIGdhbnplbgpnZXNjaGljaHRlIChhdWYgZW5nbGlzY2gpIGVpbmVyIGVyb3Rpc2NoZW4gU3RhclRyZWstR2VzY2hpY2h0ZSBnZWZ1bmRlbi4uLiB3ZXIKSW50ZXJlc3NlIGFuIGRlciBkZXV0c2NoZW4gSGFlZnRlIHVuZCBJbmZvcyB1ZWJlciBkaWUgZ2FuemUgU3RvcmllIGhhdCwgZGVyCnNvbGwgbWlyIG1haWxlbiBtaXQgc2VpbmVyIFJMZW1haWxhZHJlc3NlLGQgYW1pdCBpY2ggZGFzIGF1c3NlcmhhbGIgZGVzIE11ZGRlcwp6dXNjaGlja2VuIGthbm4uCgpXZW4gaWNoIG5pY2h0IGtlbm5lLCBkZXIga3JpZWd0IGRhcyBUZWlsIGF1Y2ggbmljaHQsIGRlbm4gaWNoIHdpbGwKc2ljaGVyZ2VoZW4sIGRhc3MgZGFzIG51ciBhbiBFcndhY2hzZW5lIGdlaHQgKHdpZXNvIHNjaHJlaWIgaWNocyBkYW5uCnVlYmVyaGF1cHQgaW5zIE1VRD8/PyksIGRlbm4gZXMgZ2VodCBkYSBlaW4gd2VuaWcgcG9ybm9ncmFwaGlzY2ggYWIsIG9obmUgYWJlcgp6dSB2ZXJhZXBwZWxuIG9kZXIgZGVuIGVpZ2VudGxpY2hlbiBSZWl6IGRlciBDaGFyYWt0ZXJlIHp1IG5laG1lbi4uLi4uCgpZYW50cm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFp3ZXJnZSAoRW5nbGlzY2gpIChZYW50cm8sIDE0LiBOb3YgMTk5NywgMDc6NTA6NDApOgp+IyEgcm49SmltZGlncml6IHJ0PTg3OTQ2MTk0OSByZz13aXR6ZQp+IyEgdGlkPTg3OTQzMDc0NApuZWluLCBlcyBpc3QgZGllIGVpZ2VudGxpY2ggc2Nob24gbGVnZW5kYWVyZSBHZXNjaGljaHRlICJPaCBjYXB0YWluLCBteQpjYXB0YWluIiB2b24gQ2hyaXN0aW5lIEZhbHR6IGF1cyBVU0EuLi4gYWxzbyBrZWluZSBWZXJhcnNjaHVuZywgc29uZGVybiBlaW5lCmVybnN0Z2VtZWludGUgR2VzY2hpY2h0ZSBoYWx0IG1pdCBuZW0gU2NodXNzIEVyb3Rpay4gTmFlaGVyZSBJbmZvcyB3aWUgZ2VzYWd0CnBlciBtYWlsLCB3ZXIgd2lsbC4KCllhbnRybwoKT0o6IApXaGF0cyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgcHJpZXN0IGFuZCBhY25lPwpBY25lIGRvZXNuJ3QgY3VtIG9uIHlvdXIgZmFjZSB0aWxsIHlvdXIgdGhpcnRlZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBaCwgS2xhc3NlISAoQ2F1bm8sIDE0LiBOb3YgMTk5NywgMTI6NTY6MjkpOgpMYW5nc2FtIHRhdWNoZW4gYXVjaCBkaWUgKGxhZW5nc3QgdWViZXJmYWVsbGlnZW4pIE1lcmNlZGVzLVdpdHplIChvZGVyIGF1Y2gKV2l0emUgbWl0IFN0ZXJuKSBhdWYuCgoiSWNoIGdsYXViLCBtaWNoIGtpcHB0IGVpbiBFbGNoISIKbmFjaGRlbSBkZXIgQmFieS1CZW56IChkYW5rIE1hdXNjaGVsZWksIHdpZSBpY2ggZG9jaCBzdGFyayBhbm5laG1lKSBkb2NoIG5vY2gKZGFzIGdvbGRlbmUgTGVua3JhZCBiZWthbSAuLi4gZ3V0IGdlc2NobWllcnQgZmFlaHJ0IGViZW4gYmVzc2VyIC4uLgoKIkFoLCBLbGFzc2UhIiBzYWd0IGRhbm4gZGVyIEZhaHJlciwgd2VubiBlciBhdWYgZGVtIERhY2ggbGllZ3QuCgpXYWhyc2NoZWlubGljaCB1ZWJlcmxlZ2VuIGRpZSBncmFkIGltIERlc2lnbiwgb2Igc2llIG5pY2h0IGRvY2ggYmVzc2VyIGRpZQpSYWVkZXIgYW0gRGFjaCBhbmJyaW5nZW4gLi4uCgpVbmQgd2llIGVzIGZ1ZXIgQmFiaWVzIHVlYmxpY2ggaXN0LCBsZWdlbiBkaWUgc2ljaCBlYmVuIGF1Y2ggb2VmdGVycyBoaW4uCgpJY2ggd2FydGUgc2Nob24gYXVmIGRpZSBMaXN0ZW4gbWl0IFdpdHplbiBkZXIgS2xhc3NlIEEuCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BydWNoIChHcmltbWJvcm4sIDE0LiBOb3YgMTk5NywgMTU6MzI6NDQpOgpJZiB3b21lbiBkZXNpZ25lZCBjb25kb21zIHRoZXJlIGlzIG5vIHF1ZXN0aW9uIHRoYXQgdGhleSB3b3VsZCBiZSBwYWRkZWQuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJTkZBUyAoU251Z2dsZSwgMTcuIE5vdiAxOTk3LCAwMTowNjo1MCk6Cn4jISBybj1TaWx2YW5hIHJ0PTg3OTM3MTg5NyByZz13aXR6ZQp+IyEgdGlkPTg3OTM3MTg5NwpOYSBpc3QgZG9jaCBrbGFyLCBEdSBzb2xsc3QgenUgRnJhZ2UgMTIsIHdlbm4gRHUga2VpbmVuIEh1bmQgT2RlciBrZWluZSBLYXR6ZQpoYXN0LiBXZXIgYWxzbyBlaW5lbiBIdW5kLCBhYmVyIGtlaW5lIEthdHplIGhhdCwgYmVhbnR3b3J0ZXQgZ2VmYWVsbGlnc3QgRnJhZ2UKMTIgOi0pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJTkZBUyAoU2lsdmFuYSwgMTcuIE5vdiAxOTk3LCAwNzoyNTozMSk6Cn4jISBybj1TbnVnZ2xlIHJ0PTg3OTcyNTIxMCByZz13aXR6ZQp+IyEgdGlkPTg3OTM3MTg5NwpTY2hvbiwgYWJlciB3ZXIgKHdpZSBpY2gpIGVpbmUgS2F0emUgdW5kIGtlaW5lbiBIdW5kIGhhdCwgbXVlc3N0ZSBhdWNoCnp1IEZyYWdlIDEyLi4uIFdhcyBhbHNvIGFudHdvcnRlIGljaCBhdWNoICd3aWUgZ3Jvc3MgaXN0IGlociBIdW5kPycKCiAgU2lsdmFuYSAodmVyd2lycnQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKb2VzIEhlYWRhY2hlIChLZXRvcywgMTguIE5vdiAxOTk3LCAxMToxOTo1Mik6Cj5TdWJqZWN0OiBKb2UncyBIZWFkYWNoZXMKPgo+Sm9lIHdhcyBtb2RlcmF0ZWx5IHN1Y2Nlc3NmdWwgaW4gaGlzIGNhcmVlciwgYnV0IGFzIGhlIGdvdCBvbGRlciBoZSB3YXMKPmluY3JlYXNpbmdseSBoYW1wZXJlZCBieSBpbmNyZWRpYmxlIGhlYWRhY2hlcy4gIFdoZW4gaGlzIHBlcnNvbmFsIGh5Z2llbmUKPmFuZCBsb3ZlIGxpZmUgc3RhcnRlZCB0byBzdWZmZXIsIGhlIHNvdWdodCBtZWRpY2FsIGhlbHAuICBBZnRlciBiZWluZwo+cmVmZXJyZWQgZnJvbSBvbmUgc3BlY2lhbGlzdCB0byBhbm90aGVyLCBoZSBmaW5hbGx5IGNhbWUgYWNyb3NzIGEgZG9jdG9yIHdobwo+Y291bGQgc29sdmUgdGhlIHByb2JsZW0uCj4KPiJUaGUgZ29vZCBuZXdzIGlzIEkgY2FuIGN1cmUgeW91ciBoZWFkYWNoZXMuICBUaGUgYmFkIG5ld3MgaXMgdGhhdCBpdCB3aWxsCj5yZXF1aXJlIGNhc3RyYXRpb24uICBZb3UgaGF2ZSBhIHZlcnkgcmFyZSBjb25kaXRpb24gd2hpY2ggY2F1c2VzIHlvdXIKPnRlc3RpY2xlcyB0byBwcmVzcyB1cCBhZ2FpbnN0IHRoZSBiYXNlIG9mIHlvdXIgc3BpbmUuICBUaGUgcHJlc3N1cmUgY3JlYXRlcwo+b25lIGhlbGwgb2YgYSBoZWFkYWNoZS4gIFRoZSBvbmx5IHdheSB0byByZWxpZXZlIHRoZSBwcmVzc3VyZSBpcyB0byByZW1vdmUKPnRoZSB0ZXN0aWNsZXMuIgo+Cj5Kb2Ugd2FzIHNob2NrZWQgYW5kIGRlcHJlc3NlZC4gSGUgY291bGRuJ3QgY29uY2VudHJhdGUgbG9uZyBlbm91Z2ggdG8gYW5zd2VyCj4sIGJ1dCBoZSBkZWNpZGVkIGhlIGhhZCBubyBjaG9pY2UgYnV0IHRvIGdvIHVuZGVyIHRoZSBrbmlmZS4gIFdoZW4gaGUgbGVmdAo+dGhlIGhvc3BpdGFsLCBoaXMgbWluZCB3YXMgY2xlYXIuIEFzIGhlIHdhbGtlZCBkb3duIHRoZSBzdHJlZXQsIGhlIHJlYWxpemVkCj50aGF0IGhlIGZlbHQgbGlrZSBhIGRpZmZlcmVudCBwZXJzb24uIEhlIGNvdWxkIG1ha2UgYSBuZXcgYmVnaW5uaW5nIGFuZCBsaXZlCj5hIG5ldyBsaWZlLiAgSGUgd2Fsa2VkIHBhc3QgYSBtZW4ncyBjbG90aGluZyBzdG9yZSBhbmQgdGhvdWdodCwgIlRoYXQncyB3aGF0Cj5JIG5lZWQsIGEgbmV3IHN1aXQuIgo+Cj5IZSBlbnRlcmVkIHRoZSBzaG9wIGFuZCB0b2xkIHRoZSBzYWxlc21hbiwgIkknZCBsaWtlIGEgbmV3IHN1aXQuIiBUaGUKPnNhbGVzbWFuIGV5ZWQgaGltIGJyaWVmbHkgYW5kIHNhaWQsICJMZXQncyBzZWUsIHNpemUgNDQgbG9uZy4iIEpvZSBsYXVnaGVkLAo+IlRoYXQncyByaWdodCwgaG93IGRpZCB5b3Uga25vdz8iICJJdCdzIG15IGpvYi4iCj4KPkpvZSB0cmllZCBvbiB0aGUgc3VpdC4gSXQgZml0IHBlcmZlY3RseS4gQXMgSm9lIGFkbWlyZWQgaGltc2VsZiBpbiB0aGUKPm1pcnJvciwgdGhlIHNhbGVzbWFuIGFza2VkLCAiSG93IGFib3V0IGEgbmV3IHNoaXJ0PyIgIEpvZSB0aG91Z2h0IGZvciBhCj5tb21lbnQgYW5kIHRoZW4gc2FpZCwgIlN1cmUuLiIgVGhlIHNhbGVzbWFuIGV5ZWQgSm9lIGFuZCBzYWlkLCAiTGV0J3Mgc2VlLAo+MzQgc2xlZXZlIGFuZCAxNiBhbmQgYSBoYWxmIG5lY2suIiAgSm9lIHdhcyBzdXJwcmlzZWQsICJUaGF0J3MgcmlnaHQsIGhvdwo+ZGlkIHlvdSBrbm93PyIgIkl0J3MgbXkgam9iLiIKPgo+Sm9lIHRyaWVkIG9uIHRoZSBzaGlydCwgYW5kIGl0IGZpdCBwZXJmZWN0bHkuIEFzIEpvZSBhZGp1c3RlZCB0aGUgY29sbGFyIGluCj50aGUgbWlycm9yLCB0aGUgc2FsZXNtYW4gYXNrZWQsICJIb3cgYWJvdXQgbmV3IHNob2VzPyIgIEpvZSB3YXMgb24gYSByb2xsCj5hbmQgc2FpZCwgIlN1cmUuIiBUaGUgc2FsZXNtYW4gZXllZCBKb2UncyBmZWV0IGFuZCBzYWlkLCAiTGV0J3Mgc2VlLCA5IGFuZCBhCj5oYWxmLi4ud2lkZS4iIEpvZSB3YXMgYXN0b25pc2hlZCwgIlRoYXQncyByaWdodCwgaG93IGRpZCB5b3Uga25vdz8iICJJdCdzIG15Cj5qb2IuIgo+Cj5Kb2UgdHJpZWQgb24gdGhlIHNob2VzIGFuZCB0aGV5IGZpdCBwZXJmZWN0bHkuIEpvZSB3YWxrZWQgY29tZm9ydGFibHkgYXJvdW5kCj50aGUgc2hvcCBhbmQgdGhlIHNhbGVzbWFuIGFza2VkLCAiSG93IGFib3V0IGEgbmV3IGhhdD8iICBXaXRob3V0IGhlc2l0YXRpbmcsCj5Kb2Ugc2FpZCwgIlN1cmUgIiBUaGUgc2FsZXNtYW4gZXllZCBKb2UncyBoZWFkIGFuZCBzYWlkLCAiTGV0J3Mgc2VlLCA3IDUvOC4iCj5Kb2Ugd2FzIGluY3JlZHVsb3VzLCAiVGhhdCdzIHJpZ2h0LCBob3cgZGlkIHlvdSBrbm93PyIgIkl0J3MgbXkgam9iLiIKPgo+VGhlIGhhdCBmaXQgcGVyZmVjdGx5LiBKb2Ugd2FzIGZlZWxpbmcgZ3JlYXQsIHdoZW4gdGhlIHNhbGVzbWFuIGFza2VkLCAiSG93Cj5hYm91dCBzb21lIG5ldyB1bmRlcndlYXI/IiAgSm9lIHRob3VnaHQgZm9yIGEgc2Vjb25kIGFuZCBzYWlkLCAiU3VyZS4iIFRoZQo+c2FsZXNtYW4gc3RlcHBlZCBiYWNrLCBleWVkIEpvZSdzIHdhaXN0IGFuZCBzYWlkLCAiTGV0J3Mgc2VlLCBzaXplIDM2LiIKPgo+Sm9lIGxhdWdoZWQsICJObywgSSd2ZSB3b3JuIHNpemUgMzQgc2luY2UgSSB3YXMgMTggeWVhcnMgb2xkLiIgVGhlIHNhbGVzbWFuCj5zaG9vayBoaXMgaGVhZCwgIllvdSBjYW4ndCB3ZWFyIGEgc2l6ZSAzNC4gIEl0IHdvdWxkIHByZXNzIHlvdXIgdGVzdGljbGVzIHVwCj5hZ2FpbnN0IHRoZSBiYXNlIG9mIHlvdXIgc3BpbmUgYW5kIGdpdmUgeW91IG9uZSBoZWxsIG9mIGEgaGVhZGFjaGUuIgo+LS0tLS0tLQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IElORkFTIChBc21vZGlzLCAxOC4gTm92IDE5OTcsIDE5OjUxOjEyKToKfiMhIHJuPVNpbHZhbmEgcnQ9ODc5NzQ3OTMxIHJnPXdpdHplCn4jISB0aWQ9ODc5MzcxODk3CkhtbSwgd2VubiBkYSBzdGVodDogV2llIGdyb3NzIGlzdCBpaHIgS2F0ZXI/ICBkYW5uIGlzdCBkYXMgYWJlciBrb3JyZWt0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJTkZBUyAoQXZhbG9uLCAxOC4gTm92IDE5OTcsIDIyOjIxOjI4KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODc5NzQ3OTMxIHJnPXdpdHplCn4jISB0aWQ9ODc5MzcxODk3CkRhcyBuZW5udCBtYW4gZGFubiB3b2hsIFhPUiAoZXhjbHVzaXZlIG9yLCBhbHNvIF9FTlRXRURFUl8gb2RlcikgOikKCmF2YWxvbi4tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgppZiBQYXVsIE1jQ2FydG5leSBoYWQgYmVlbiBpbiBzeXN0ZW1zKDEvNSkgKEtvYmF5YXNoaSwgMTkuIE5vdiAxOTk3LCAwODoxNjo1OSk6CkVMRUFOT1IgUklHQlkKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVsZWFub3IgUmlnYnkKU2l0cyBhdCB0aGUga2V5Ym9hcmQKQW5kIHdhaXRzIGZvciBhIGxpbmUgb24gdGhlIHNjcmVlbgpMaXZlcyBpbiBhIGRyZWFtCldhaXRzIGZvciBhIHNpZ25hbApGaW5kaW5nIHNvbWUgY29kZQpUaGF0IHdpbGwgbWFrZSB0aGUgbWFjaGluZSBkbyBzb21lIG1vcmUuCldoYXQgaXMgaXQgZm9yPwoKQWxsIHRoZSBsb25lbHkgdXNlcnMsIHdoZXJlIGRvIHRoZXkgYWxsIGNvbWUgZnJvbT8KQWxsIHRoZSBsb25lbHkgdXNlcnMsIHdoeSBkb2VzIGl0IHRha2Ugc28gbG9uZz8KCkd1cnUgTWFjS2VuemllClR5cGluZyB0aGUgbGluZXMgb2YgYSBwcm9ncmFtIHRoYXQgbm8gb25lIHdpbGwgcnVuOwpJc24ndCBpdCBmdW4/Ckxvb2sgYXQgaGltIHdvcmtpbmcsCk11bmNoaW5nIHNvbWUgY2hpcHMgYXMgaGUgd2FpdHMgZm9yIHRoZSBjb2RlIHRvIGNvbXBpbGU7Ckl0IHRha2VzICBhIHdoaWxlLi4uCgpBbGwgdGhlIGxvbmVseSB1c2Vycywgd2hlcmUgZG8gdGhleSBhbGwgY29tZSBmcm9tPwpBbGwgdGhlIGxvbmVseSB1c2Vycywgd2h5IGRvZXMgaXQgdGFrZSBzbyBsb25nPwoKRWxlYW5vciBSaWdieQpDcmFzaGVzIHRoZSBzeXN0ZW0gYW5kIGxvc2VzIDYgaG91cnMgb2Ygd29yazsKRmVlbHMgbGlrZSBhIGplcmsuCkd1cnUgTWFjS2VuemllCldpcGluZyB0aGUgY3J1bWJzIG9mZiB0aGUga2V5cyBhcyBoZSB0eXBlcyBpbiB0aGUgY29kZTsKTm90aGluZyB3aWxsIGxvYWQuCgpBbGwgdGhlIGxvbmVseSB1c2Vycywgd2hlcmUgZG8gdGhleSBhbGwgY29tZSBmcm9tPwpBbGwgdGhlIGxvbmVseSB1c2Vycywgd2h5IGRvZXMgaXQgdGFrZSBzbyBsb25nPwoKS29iYXlhc2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgppZiBQYXVsIE1jQ2FydG5leSBoYWQgYmVlbiBpbiBzeXN0ZW1zKDIvNSkgKEtvYmF5YXNoaSwgMTkuIE5vdiAxOTk3LCAwODoxNzoyNSk6ClNPTUVUSElORwogLS0tLS0tLS0tLS0tLS0tLS0tLQpTb21ldGhpbmcgaW4gdGhlIHdheSBpdCBmYWlscywKRGVmaWVzIHRoZSBhbGdvcml0aG0ncyBsb2dpYy4KU29tZXRoaW5nIGluIHRoZSB3YXkgaXQgY29yZWR1bXBzLi4uCkkgZG9uJ3Qgd2FudCB0byBsZWF2ZSBpdCBub3cKSSdsbCBmaXggdGhpcyBwcm9ibGVtIHNvbWVob3cKClNvbWV3aGVyZSBpbiB0aGUgbWVtb3J5IEkga25vdywKQSBwb2ludGVyJ3MgZ290IHRvIGJlIGNvcnJ1cHRlZC4KU3RlcHBpbmcgaW4gdGhlIGRlYnVnZ2VyIHdpbGwgc2hvdyBtZS4uLgpJIGRvbid0IHdhbnQgdG8gbGVhdmUgaXQgbm93CkknbSB0b28gY2xvc2UgdG8gbGVhdmUgaXQgbm93CgpZb3UncmUgYXNraW5nIG1lIGNhbiB0aGlzIGNvZGUgZ28/CkkgZG9uJ3Qga25vdywgSSBkb24ndCBrbm93Li4uCldoYXQgc2VxdWVuY2UgY2F1c2VzIGl0IHRvIGJsb3c/CkkgZG9uJ3Qga25vdywgSSBkb24ndCBrbm93Li4uCgpTb21ldGhpbmcgaW4gdGhlIGluaXRpYWxpemluZyBjb2RlPwpBbmQgYWxsIEkgaGF2ZSB0byBkbyBpcyB0aGluayBvZiBpdCEKU29tZXRoaW5nIGluIHRoZSBsaXN0aW5nIHdpbGwgc2hvdyBtZS4uLgpJIGRvbid0IHdhbnQgdG8gbGVhdmUgaXQgbm93CkknbGwgZml4IHRoaXMgdG9uaWdodCBJIHZvdy4uCgpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmlmIFBhdWwgTWNDYXJ0bmV5IGhhZCBiZWVuIGluIHN5c3RlbXMoMy81KSAoS29iYXlhc2hpLCAxOS4gTm92IDE5OTcsIDA4OjE4OjAxKToKVU5JWCBNQU4gKGFrYSBOT1dIRVJFIE1BTikKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSGUncyBhIHJlYWwgVU5JWCBNYW4KU2l0dGluZyBpbiBoaXMgVU5JWCBMQU4KTWFraW5nIGFsbCBoaXMgVU5JWCBwbGFucwpGb3Igbm9ib2R5LgoKS25vd3MgdGhlIGJsb2Nrc2l6ZSBmcm9tIGR1KDEpCkNhcmVzIG5vdCB3aGVyZSAvZGV2L251bGwgZ29lcyB0bwpJc24ndCBoZSBhIGJpdCBsaWtlIHlvdQpBbmQgbWU/CgpVTklYIE1hbiwgcGxlYXNlIGxpc3RlbigyKQpNeSBscGQoOCkgaXMgbWlzc2luJwpVTklYIE1hbgpUaGUgd28tby1vLW9ybGQgaXMgYXQoMSkgeW91ciBjb21tYW5kLgoKSGUncyBhcyB3aXNlIGFzIGhlIGNhbiBiZQpVc2VzIGxleCBhbmQgeWFjYyBhbmQgQwpVTklYIE1hbiwgY2FuIHlvdSBoZWxwIG1lIEF0IGFsbD8KClVOSVggTWFuLCBkb24ndCB3b3JyeQpUZXN0IHdpdGggdGltZSgxKSwgZG9uJ3QgaHVycnkKVU5JWCBNYW4KVGhlIG5ldyBrZXJuZWwgYm9vdHMsIGp1c3QgbGlrZSB5b3UgaGFkIHBsYW5uZWQuCgpIZSdzIGEgcmVhbCBVTklYIE1hbgpTaXR0aW5nIGluIGhpcyBVTklYIExBTgpNYWtpbmcgYWxsIGhpcyBVTklYICBwbGFucyBGb3Igbm9ib2R5IC4uLgpNYWtpbmcgYWxsIGhpcyBVTklYICBwbGFucyBGb3Igbm9ib2R5LgoKS29iYXlhc2hpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgppZiBQYXVsIE1jQ2FydG5leSBoYWQgYmVlbiBpbiBzeXN0ZW1zKDQvNSkgKEtvYmF5YXNoaSwgMTkuIE5vdiAxOTk3LCAwODoxODozNyk6CldSSVRFIElOIEMgKGFrYSBMRVQgSVQgQkUpCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2hlbiBJIGZpbmQgbXkgY29kZSBpbiB0b25zIG9mIHRyb3VibGUsCkZyaWVuZHMgYW5kIGNvbGxlYWd1ZXMgY29tZSB0byBtZSwKU3BlYWtpbmcgd29yZHMgb2Ygd2lzZG9tOgoiV3JpdGUgaW4gQy4iCkFzIHRoZSBkZWFkbGluZSBmYXN0IGFwcHJvYWNoZXMsCkFuZCBidWdzIGFyZSBhbGwgdGhhdCBJIGNhbiBzZWUsClNvbWV3aGVyZSwgc29tZW9uZSB3aGlzcGVyczoKIldyaXRlIGluIEMuIgpXcml0ZSBpbiBDLCBXcml0ZSBpbiBDLApXcml0ZSBpbiBDLCBvaCwgV3JpdGUgaW4gQy4KTE9HTydzIGRlYWQgYW5kIGJ1cmllZCwKV3JpdGUgaW4gQy4KCkkgdXNlZCB0byB3cml0ZSBhIGxvdCBvZiBGT1JUUkFOLApGb3Igc2NpZW5jZSBpdCB3b3JrZWQgZmxhd2xlc3NseS4KVHJ5IHVzaW5nIGl0IGZvciBncmFwaGljcyEKV3JpdGUgaW4gQy4KCklmIHlvdSd2ZSBqdXN0IHNwZW50IG5lYXJseSAzMCBob3VycywKRGVidWdnaW5nIHNvbWUgYXNzZW1ibHksClNvb24geW91IHdpbGwgYmUgZ2xhZCB0bwpXcml0ZSBpbiBDLgoKV3JpdGUgaW4gQywgV3JpdGUgaW4gQywKV3JpdGUgaW4gQywgeWVhaCwgV3JpdGUgaW4gQy4KQkFTSUMncyBub3QgdGhlIGFuc3dlci4KV3JpdGUgaW4gQy4KCldyaXRlIGluIEMsIFdyaXRlIGluIEMKV3JpdGUgaW4gQywgb2gsIFdyaXRlIGluIEMuClBhc2NhbCB3b24ndCBxdWl0ZSBjdXQgaXQuCldyaXRlIGluIEMuCgpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmlmIFBhdWwgTWNDYXJ0bmV5IGhhZCBiZWVuIGluIHN5c3RlbXMoNS81KSAoS29iYXlhc2hpLCAxOS4gTm92IDE5OTcsIDA4OjE4OjU2KToKWUVTVEVSREFZCiAtLS0tLS0tLS0tLS0tLS0tLS0KWWVzdGVyZGF5LApBbGwgdGhvc2UgYmFja3VwcyBzZWVtZWQgYSB3YXN0ZSBvZiBwYXkuCk5vdyBteSBkYXRhYmFzZSBoYXMgZ29uZSBhd2F5LgpPaCBJIGJlbGlldmUgaW4geWVzdGVyZGF5LgoKU3VkZGVubHksClRoZXJlJ3Mgbm90IGhhbGYgdGhlIGZpbGVzIHRoZXJlIHVzZWQgdG8gYmUsCkFuZCB0aGVyZSdzIGEgbWlsZXN0b25lIGhhbmdpbmcgb3ZlciBtZQpUaGUgc3lzdGVtIGNyYXNoZWQgc28gc3VkZGVubHkuCgpJIHB1c2hlZCBzb21ldGhpbmcgd3JvbmcKV2hhdCBpdCB3YXMgSSBjb3VsZCBub3Qgc2F5LgoKTm93IGFsbCBteSBkYXRhJ3MgZ29uZQphbmQgSSBsb25nIGZvciB5ZXN0ZXJkYXktYXktYXktYXkuCgpZZXN0ZXJkYXksClRoZSBuZWVkIGZvciBiYWNrLXVwcyBzZWVtZWQgc28gZmFyIGF3YXkuCkkga25ldyBteSBkYXRhIHdhcyBhbGwgaGVyZSB0byBzdGF5LApOb3cgSSBiZWxpZXZlIGluIHllc3RlcmRheS4KCktvYmF5YXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGlmIFBhdWwgTWNDYXJ0bmV5IGhhZCBiZWVuIGluIHN5c3RlbXMoMi81KSAoU2lsdmFuYSwgMTkuIE5vdiAxOTk3LCAxMjoxMDowNSk6Cn4jISBybj1Lb2JheWFzaGkgcnQ9ODc5OTIzODQ1IHJnPXdpdHplCn4jISB0aWQ9ODc5OTIzODQ1Ck5ldHQsIGFiZXIgU29tZXRoaW5nIGlzdCB2b24gR2VvcmdlIEhhcnJpc29uLiBEYSBrYW5uIFBhdWxjaGVuIG5peCBmdWVyLgoKICBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBJTkZBUyAoUmFmZmksIDE5LiBOb3YgMTk5NywgMTM6MDk6NTEpOgp+IyEgcm49QXNtb2RpcyBydD04Nzk4NzkwNzIgcmc9d2l0emUKfiMhIHRpZD04NzkzNzE4OTcKRGFzIGdlaHQgYWJlciBudXIgd2VubiBkaWUgQW50d29ydCBlaW4gdm9uLWJpcyB6dWxhZXNzdCAuLi4gc2NobGllc3NsaWNoCnZhcmllcnQgZGllIGdyb2Vzc2UgTWVpbmVzIGthdGVycyBlbnRzcHJlY2hlbmQgZGVyIGxhZW5nZSB1bmQgZ2V0cmFlbmtlYXVzd2FobApkZXMgdm9yYWJlbmRzLgooVm9yYWJlbmQgPT0gRGVyIHplaXRwdW5rdCB2byBkZW0gc2NobGFmZW4sIG5hY2hkZW0gZGFubiBkZXIgS2F0ZXIgZGEgaXN0KS4KCkdydXNzCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGlmIFBhdWwgTWNDYXJ0bmV5IGhhZCBiZWVuIGluIHN5c3RlbXMoMi81KSAoS29iYXlhc2hpLCAyMC4gTm92IDE5OTcsIDA3OjQ2OjA0KToKfiMhIHJuPVNpbHZhbmEgcnQ9ODc5OTM3ODA1IHJnPXdpdHplCn4jISB0aWQ9ODc5OTIzODQ1CnNjaG9uIG1vZWdsaWNoLCBudXIgaGFiIGljaCBzaWUgc28gYXVzIGVpbmVyIG1haWxpbmcgbGlzdCBnZW5vbW1lbiAuLi4uCgpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsYXNzZSBBLCBkaWUgendlaXRlIChDYXVubywgMjAuIE5vdiAxOTk3LCAxMjozNjowOCk6CldpZSBwYXJrdCBtYW4gZGVuIEJhYnktQmVueiBpbiBadWt1bmZ0IGVpbj8KCkFuIGRpZSBQYXJrbHVlY2tlIGhlcmFuZmFocmVuIHVuZCBuYWNoIHJlY2h0cyB1bWtpcHBlbiBsYXNzZW4uCgpDLiBObyAoZ2VrbGF1dCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2gsIGluIGVpbmVyIC5zaWc6IChZZW5kaSwgMjAuIE5vdiAxOTk3LCAxNTo1ODozNyk6CgpEaXBsb21hY3kgaXMgdGhlIGFydCBvZiBzYXlpbmcgIm5pY2UgZG9nZ3kiIHVudGlsIHlvdSBjYW4gZmluZCBhIHJvY2suIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWVyIEJsb25kaW5lbndpdHogKEZyZXVuZCwgMjAuIE5vdiAxOTk3LCAyMDowMzo1Nyk6CkhpLAoKdHJlZmZlbiBzaWNoIHp3ZWkgQmxvbmRpbmVuOgoxOiBJY2ggd2FyIGdlc3Rlcm4gYmVpbSBTY2h3YW5nZXJzY2hhZnRzdGVzdC4KMjogVW5kLCBzY2h3aWVyaWdlIEZyYWdlbj8KCkFsc28sIGRlciB3YXIgbmV1IGZ1ZXIgbWljaC4uLgpGcmV1bmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaGVtaWtlcndpdHogKE9ya3RvZXRlciwgMjEuIE5vdiAxOTk3LCAxMTo0NjoxMSk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEhlYmFtbWUgdW5kIGVpbmVtIENoZW1pa2VyID8KTmEsIGVpbiBDaGVtaWtlciBzYWd0IEgyTywgZWluZSBIZWJhbW1lIHNhZ3QgTyBIYSAhIDIgIQoKT3JrVCBoYXQgZGllc2VuIGFsdGVuIFdpdHogYXVjaCBudXIgdW5nZXJuZSBnZXBvc3RldC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaGVtaWtlcndpdHogKENhdW5vLCAyMS4gTm92IDE5OTcsIDE0OjQ1OjM5KToKfiMhIHJuPU9ya3RvZXRlciBydD04ODAxMDkxNzEgcmc9d2l0emUKfiMhIHRpZD04ODAxMDkxNzEKRGFzIGhpZXNzIGFiZXIgT2hhLCBad2VpIQpBdWNoIGluIGRlciBuZXVlbiBSZWNodHNjaHJlaWJ1bmcuCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDaGVtaWtlcndpdHogKEtleSwgMjEuIE5vdiAxOTk3LCAxNjoxMzoxMCk6Cn4jISBybj1DYXVubyBydD04ODAxMTk5Mzkgcmc9d2l0emUKfiMhIHRpZD04ODAxMDkxNzEKS29tbXQgaW1tZXIgZHJhdWYgYW4gd2llIG1hbnMgYXVzc3ByaWNodCA7KQpBYmVyIGJlaSBkZW0gT2ggd3VlcmRlIGljaCBkYW5uIGVpbiBoIGFuaGFlbmdlbiA7KSkKCmtleQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRSBXaXR6bGUgKERpZWRlciwgMjIuIE5vdiAxOTk3LCAxMjo0OToyMCk6CkVpbiBCbGluZGVyIHN0ZWh0IG1pdCBzZWluZW0gSHVuZCBhbiBkZXIgcm90ZW4gQW1wZWwuIERhCnBpbmtlbHQgaWhtIGRlciBIdW5kIGFucyBCZWluLiBEZXIgQmxpbmRlIGdpYnQgaWhtIGRhcmF1ZgplaW5lbiBIdW5kZWt1Y2hlbi4gRWluIGFuZGVyZXIgTWFubiBzaWVodCBkYXMgdW5kIGZyYWd0CmRlbiBCbGluZGVuOgoiU2FnZW4gU2llIG1hbCwgZGFzIGlzdCBhYmVyIGtvbWlzY2guIERlciBIdW5kIGhhdCBTaWUKZ2VyYWRlIGFuZ2VwaW5rZWx0IHVuZCBTaWUgZ2ViZW4gaWhtIGVpbmVuCkh1bmRla3VjaGVuPyIKRGFyYXVmIGRlciBCbGluZGU6CiJXaXNzZW4gU2llLCB3ZW5uIGljaCBpaG0ga2VpbmVuIEh1bmRla3VjaGVuIGdlYmUsCndlaV8gaWNoIG5pY2h0LCB3byB2b3JuZSBpc3QgdW5kIHdlbm4gaWNoIG5pY2h0IHdlaV8sIHdvCnZvcm5lIGlzdCwga2FubiBpY2ggaWhtIG5pY2h0IGluIGRlbiBIaW50ZXJuIHRyZXRlbi4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyZSBwYXVsIG1jIGNhcnRuZXkgKExhbXlyYSwgMjQuIE5vdiAxOTk3LCAxNDo0MToyNyk6CmFlaCwgd2llIGdpbmcgZGVyIHBhdWwgYnp3IGdlb3JnZSBoYXJyaXNvbi13aXR6IGRlbm4/IGFscyBhbHRlciBiZWF0bGVzLWZhbgptb2VjaHRlIGljaCBkZW4ga2VubmVuLi4uCmxhbXlyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIFdhaHJoZWl0IHVlYmVyIER1cmlhbiAoSGlnaGxhbmRlciwgMjcuIE5vdiAxOTk3LCAxMToxODozNik6ClppdGF0IGF1cyBkZW0gWmVpdG1hZ2F6aW4gNDkvOTcsIFNlaXRlIDIwOgpEYXMgbGFlbmdzdGUgS2FwaXRlbCB1ZWJlcmhhdXB0IGluIGRlciB1bWZhbmdyZWljaGVuIERva3VtZW50YXRpb24gdWViZXIKZGllIHNjaGxlY2h0ZXN0ZW4gU3BlaXNlbiBkZXIgV2VsdCBiZWhhbmRlbHQgZWluZSBGcnVjaHQ6IER1cmlhbi4KRGllc2VzIGluIFN1ZWRhc2llbiB2ZXJicmVpdGV0ZSBHZXdhZWNocyBpc3Qgc28gZ3Jvc3Mgd2llIGVpbiBGdXNzYmFsbC4KVW50ZXIgZWluZXIgc3RhY2hsaWdlbiBIYXV0IGJlZmluZGV0IHNpY2ggZGFzIGJsYXNzZ2VsYmUgRnJ1Y2h0ZmxlaXNjaCwKZGVzc2VuIEtvbnNpc3RlbnogYW4gSGlybiBlcmlubmVydC4gRGFzIFpldWcgc2NobWVja2UgInNvIGFlaG5saWNoIHdpZQpNYW5pb2stUHVkZGluZyBtaXQgWndpZWJlbGFyb21hIiwgYmVoYXVwdGV0IER1cmlhbi1IYXNzZXIgUmF5IEJydW1hbi4KRGFzIEVzc2VuIGVpbmVyIER1cmlhbiBlcmZvcmRlcnQgZGllIFZvcmF1c3BsYW51bmcgdm9uIHNvemlhbGVuIEtvbnRha3RlbiwKZGVubiBlcyBpc3QgYWVobmxpY2ggd2llIG1pdCBkZW0gS25vYmxhdWNoOiBEZXIgR2VydWNoIGhhZnRldCBlaW5lbSBub2NoCnRhZ2VsYW5nIGFuLiBVZWJlciBkZW4gR2VzY2htYWNrIG5hZW1saWNoIHN0cmVpdGVuIHNpY2ggZGllIEtlbm5lciwgYWJlcgppbiBlaW5lbSBQdW5rdCBzaW5kIHNpZSBzaWNoIGVpbmlnOiBEdXJpYW4gcmllY2h0IG5pY2h0IGd1dC4gSW4gTWFsYXlzaWEKaXN0IGVzIHZlcmJvdGVuLCBEdXJpYW4gaW0gTWlldHdhZ2VuIG1pdHp1bmVobWVuLgoiVGFnZWxhbmcgbXVzc3RlIGljaCBhdWZzdG9zc2VuIiwgYmVyaWNodGV0IGVpbiBEdXJpYW4tZ2VzY2hhZWRpZ3RlcgpFbmdsYWVuZGVyIGltIEZvb2QtRm9ydW0sICJ1bmQgZXMgcm9jaCBpbW1lciBuYWNoIEd1bGxpLiIKWml0YXQgRW5kZS4KRGEga29tbXQncyB3aWVkZXIgcmF1cy4uLgogICBIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBGbHVjaCBkZXIgR2VuZSAoR3JpbW1ib3JuLCAyOC4gTm92IDE5OTcsIDEwOjAwOjM1KToKQXVzIEFubGFzcyBlaW5lcyBaZWl0dW5nc2FydGlrZWxzIG11c3N0ZSBpY2ggd2llZGVyIGFuIGRpZSBTemVuZSBpbSBTdXBlcm1hcmt0CmRlbmtlbiwgd28gZWluZSBGcmF1IChtaXR0bGVyZW4gQWx0ZXJzLCBUeXAgYm9kZW5zdGFlbmRpZykgYW0gR2VtdWVzZXN0YW5kCmxhdXRzdGFyayBkaWUgVmVya2FldWZlcmluIGZyYWd0ZTogIlNhcmVuIHNlIG1hLCBGcm9sbGVpbiwgc2luZCBkYSBHZW5lIGluIGRlbgpUb21hdGVuPyIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCB6d2VpZmVsdCwgb2IgZGFzIG1pdCBkZXIgbmF0dWVybGljaGVuIEF1c2xlc2UgYXVjaAp3aXJrbGljaCBpbW1lciBzbyBrbGFwcHQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEaWUgV2FocmhlaXQgdWViZXIgRHVyaWFuIChDYXVubywgMjguIE5vdiAxOTk3LCAxNDozOTozMyk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTg4MDYyNTkxNiByZz13aXR6ZQp+IyEgdGlkPTg4MDYyNTkxNgpVbmQgaW4gU2luZ2FwdXIgaXN0cyB2ZXJib3RlbiwgZGllIG10IGlucyBIb3RlbCB6dSBuZWhtZW4uCktub2JsYXVjaCByaWVjaHQgamEgbnVyLCBhYmVyIER1cmlhbnMgc3RpbmtlbiBiZXN0aWFsaXNjaC4KT2J3b2hsIGRhcyBGcnVjaHRmbGVpc2NoIHNvIGd1dCBzZWluIHNvbGwsIGRhc3MgZXMgYWxzIERlbGlrYXRlc3NlIGdpbHQuCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRHJpbmtpbmcgaXMgZ29vZCBmb3IgeW91IChLZXRvcywgIDEuIERleiAxOTk3LCAwOTozODo1Nyk6CkEgaGVyZCBvZiBidWZmYWxvIGNhbiBvbmx5IG1vdmUgYXMgZmFzdCBhcwp0aGUgc2xvd2VzdCBidWZmYWxvLCBhbmQKd2hlbiB0aGUgaGVyZCBpcyBodW50ZWQsIGl0IGlzIHRoZSBzbG93ZXN0CmFuZCB3ZWFrZXN0IG9uZXMgYXQgdGhlCmJhY2sgdGhhdCBhcmUga2lsbGVkIGZpcnN0LiAgVGhpcyBuYXR1cmFsCnNlbGVjdGlvbiBpcyBnb29kIGZvciB0aGUKaGVyZCBhcyBhIHdob2xlLCBiZWNhdXNlIHRoZSBnZW5lcmFsIHNwZWVkCmFuZCBoZWFsdGggb2YgdGhlIHdob2xlCmtlZXBzIGltcHJvdmluZyBieSB0aGUgcmVndWxhciBjdWxsaW5nIG9mCnRoZSB3ZWFrZXN0IG1lbWJlcnMuCgpJbiBtdWNoIHRoZSBzYW1lIHdheSwgdGhlIGh1bWFuIGJyYWluIGNhbgpvcGVyYXRlIG9ubHkgYXMgZmFzdCBhcyB0aGUKc2xvd2VzdCBicmFpbiBjZWxscy4gIEV4Y2Vzc2l2ZSBpbnRha2Ugb2YKYWxjb2hvbCwgd2UgYWxsIGtub3csIGtpbGxzCm9mZiBicmFpbiBjZWxscywgYnV0IG5hdHVyYWxseSBpdCBhdHRhY2tzCnRoZSBzbG93ZXN0IGFuZCB3ZWFrZXN0IGJyYWluCmNlbGxzIGZpcnN0LiAgSW4gdGhpcyB3YXksIHJlZ3VsYXIKY29uc3VtcHRpb24gb2YgYmVlciBlbGltaW5hdGVzIHRoZQp3ZWFrZXIgY2VsbHMsIGNvbnN0YW50bHkgbWFraW5nIHRoZSBicmFpbiBhCmZhc3RlciBhbmQgbW9yZSBlZmZpY2llbnQKbWFjaGluZS4KClRoZSByZXN1bHRzIG9mIHRoaXMgaW4tZGVwdGggZXBpZGVtaW9sb2dpY2FsCnN0dWR5IHZlcmlmaWVzIGFuZAp2YWxpZGF0ZXMgdGhlIGNhdXNhbCBsaW5rIGJldHdlZW4KYWxsLXdlZWtlbmQgcGFydGllcyBhbmQgZW5naW5lZXJpbmcKcGVyZm9ybWFuY2UuICBJdCBhbHNvIGV4cGxhaW5zIHdoeSwgYWZ0ZXIgYQpmZXcgc2hvcnQgeWVhcnMgb2YgbGVhdmluZwp1bml2ZXJzaXR5IGFuZCBnZXR0aW5nIG1hcnJpZWQsIG1vc3QKZW5naW5lZXJzIGNhbm5vdCBrZWVwIHVwIHdpdGggdGhlCnBlcmZvcm1hbmNlIG9mIHRoZSBuZXcgZ3JhZHVhdGVzLiAgT25seQp0aG9zZSBmZXcgdGhhdCBzdGljayB0byB0aGUKc3RyaWN0IHJlZ2ltZW4gb2Ygdm9yYWNpb3VzIGFsY29ob2xpYwpjb25zdW1wdGlvbiBjYW4gbWFpbnRhaW4gdGhlCmludGVsbGVjdHVhbCBsZXZlbHMgdGhhdCB0aGV5IGFjaGlldmVkCmR1cmluZyB0aGVpciB1bml2ZXJzaXR5IHllYXJzLgoKWW91ciBjb21wYW55IGFuZCBjb3VudHJ5IG5lZWQgeW91IHRvIGJlIGF0CnlvdXIgcGVhaywgYW5kIHlvdSBzaG91bGRuJ3QgZGVueSB5b3Vyc2VsZgp0aGUgY2FyZWVyIHRoYXQgeW91IGNvdWxkIGhhdmUuCgpTbywgdGhpcyBpcyBhIGNhbGwgdG8gYXJtczsgIGFzIHRoZSB3b3JsZCBpcwpsb3NpbmcgaXRzIHRlY2hub2xvZ2ljYWwgZWRnZSB3ZSBzaG91bGQgbm90CiBjb3dlciBpbiBvdXIgaG9tZXMuICBHZXQgYmFjayBpbnRvIHRoZSBwdWJzIQogUXVhZmYgdGhhdCBwaW50IQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEcmlua2luZyBpcyBnb29kIGZvciB5b3UgKFllbmRpLCAgMS4gRGV6IDE5OTcsIDEzOjQyOjQ3KToKfiMhIHJuPUtldG9zIHJ0PTg4MDk2NTUzNyByZz13aXR6ZQp+IyEgdGlkPTg4MDk2NTUzNwoKVW5mb3J0dW5hdGVseSwgdW5saWtlIGhlcmRzIG9mIGJ1ZmZhbG8sIHRoZSBicmFpbiBoYXMgbm8gbWVhbnMgb2YKcmVwcm9kdWN0aW9uOyB0aHVzIHVyZ2luZyBhcyBjb25zZXJ2YXRpdmUgYSB1c2Ugb2YgYnJhaW4gY2VsbHMgYXMgcG9zc2libGUuCgpBcyB3ZSBhbGwga25vdywgdXNlIGlzIGNvdXBsZWQgd2l0aCB3ZWFyLiBZb3VyIGJyYWtlIHBhZHMgd2VhciBkb3duLCB5b3VyCnRlZXRoICB3ZWFyIGRvd24sIGV2ZW4geW91ciBjbG90aGVzIHdlYXIgZG93bi4gSWYgeW91IHdhbnQgdG8gaGF2ZSBhIGNvbXBsZXRlCmFuZCBmYWN0b3J5LWNvbmRpdGlvbiAoc28gdG8gc3BlYWspIGJyYWluIGV2ZW4gd2hlbiB5b3UncmUgaW4geW91ciBzZW5pb3IKeWVhcnMsIAogICAgICAgICBET04nVCBVU0UgSVQhCgpUaGlzIGluY2x1ZGVzIHN1Y2ggdXN1YWxseSB1bmRlcnJhdGVkIHRhc2tzIGFzIHJlYWRpbmcsIGRyaXZpbmcgYSBjYXIgb3IgZXZlbgp0YWxraW5nLiBPY2Nhc2lvbmFsIGVuZ2FnZW1lbnQgaW4gc2V4dWFsIGFjdGl2aXRpZXMgbWF5IGJlIHBlcm1pdHRlZCwgYnV0CmFzIG91ciBzdHVkeSBzaG93cywgdGhlIHBlcmZlY3QgbWV0aG9kIG9mIGJyYWluIHByZXNlcnZhdGlvbiBzZWVtcyB0byBjb25zaXN0Cm9mIGxvbmcgcGVyaW9kcyBvZiBzbGVlcCwgYW1wbGUgZm9vZCBpbnRha2UgYW5kIGFzIG11Y2ggVFYgYXMgcG9zc2libGUuCgoKVW5pdmVyc2l0eSBzdHVkaWVzIG9mIGFueSBraW5kIGhhdmUgYmVlbiBzaG93biB0byB0YXggYnJhaW4gcmVzb3VyY2VzIGhlYXZpbHkKYW5kIGFyZSB0byBiZSBhdm9pZGVkLiBBIG1hcmtlZCBleGNlcHRpb24gYXBwZWFycyB0byBiZSB0aGUgc3R1ZHkgY291cnNlIG9mIApyb21hbi1jYXRob2xpYyB0aGVvbG9neSB3aGljaCBtaWdodCwgZm9yIHRob3NlIHRoYXQgZXhwZXJpZW5jZSBhIHNldmVyZSBUVgpyZWplY3Rpb24sIGJlY29tZSB0aGVpciBjaG9pY2Ugb2YgcmVjcmVhdGlvbmFsIGFjdGl2aXR5LgoKUmVtZW1iZXI6IFlvdSBvbmx5IGhhdmUgYSB2ZXJ5IGxpbWl0ZWQgc3VwcGx5IG9mIGJyYWluIGNlbGxzOiBtYWtlICdlbSBjb3VudCEKClNhdmUgWW91ciBCcmFpbiBDZWxscyBmb3IgdGhlIERheSBZb3UgTmVlZCBUaGVtIQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpodHRwOi8vd3d3LmhhdGNob28uY29tL21lcnNlZGVzL2luZGV4Lmh0bWwgKEtvYmF5YXNoaSwgIDIuIERleiAxOTk3LCAwOToyMzo1OSk6ClZpZWwgU3Bhc3MgOi0pCktvYmF5YXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGh0dHA6Ly93d3cuaGF0Y2hvby5jb20vbWVyc2VkZXMvaW5kZXguaHRtbCAoQmFib29uLCAgMi4gRGV6IDE5OTcsIDExOjEzOjI2KToKfiMhIHJuPUtvYmF5YXNoaSBydD04ODEwNTEwMzkgcmc9d2l0emUKfiMhIHRpZD04ODEwNTEwMzkKClZpZWwgU3Bhc3M/CldhcyBzb2xsIGRhcmFuIHNwYXNzaWcgc2VpbiwgZGFzcyBtaXIgTmV0c2NhcGVzIENvbW11bmljYXRvciBuYWNoIGVpbmVtCkphdmEtZXJyb3IgYmVpbSBsYWRlbiBkZXIgU2VpdGUgYWJzZW1tZWx0PwoKQmFib29uKCkgLSAxMDAlIHB1cmUgYXBlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTZXNhbXN0cmFzc2UgKEFzdGFyLCAgMi4gRGV6IDE5OTcsIDE1OjIzOjE4KToKU28sIGhldXRlIG1hbCBuIGJpc2NoZW4gd2FzIGF1cyB1bnNlcmVyIEtpbmRoZWl0OgogIEJlcnQgaXMgRXZpbCAhICAgICAgICBodHRwOi8vZnJhY3RhbGNvdy5jb20vYmVydC9iZXJ0Lmh0bQoKQXN0YXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdsb2JhbCBXYXJtaW5nISAoQmFtYnVsa28sICAyLiBEZXogMTk5NywgMTU6Mzk6MjMpOgoKSGFiZSBpY2ggZ2VyYWRlIGluIGVpbmVyIERpc3NrdXNzaW9uc2dydXBwZSB2b24gQ05OIHVlYmVyIEdsb2JhbCBXYXJtaW5nCmdlZnVuZGVuLgpPVGhlIHdob2xlIGdsb2JhbCB3YXJtaW5nIGJ1c2luZXNzIGlzIGp1c3QgYW5vdGhlciB3YXkgdGhpcmQgd29ybGQgY291bnRyaWVzCmNhbiBwdW5pc2ggdGhlIFVTQSBmb3IgYmVpbmcgc3VjZXNzZnVsbC4gU2xpY2sgV2lsbGllIGFuZCBkdW1iIGFzIGEgZG9vciBnb3JlCmFyZSB3aWxsaW5nIHRvIGdpdmUgYXdheSBvdXIgbW9uZXkgc28gd2UnbGwgYWxsIGJlIHBvb3IgYW5kIHZvdGUgZGVtb2NyYXRpYy4KQmVjYXVzZSBldmVyeW9uZSBrbm93cyB0aGUgZGVtb2NyYXRzIGFyZSB0aGUgcGFydHkgb2YgdGhlIHBvb3IsIHRoZSBtb3JlIHBvb3IKeW91IGhhdmUsIHRoZSBtb3JlIGRlbW9jcmF0cyB5b3UgaGF2ZS4KVGhpcyBpcyBub3QgYWJvdXQgZ2xvYmFsIHdhcm1pbmcgc3R1cGlkLCB0aGlzIGlzIGFib3V0IGdsb2JhbCBjb21tdW5pc20sIHRha2UKZnJvbSB0aGUgVVNBICh0aGUgaGF2ZXMpIGJ1dCBub3QgZnJvbSB0aGUgcG9vciBsaXR0bGUgZGV2ZWxvcGluZyBjb3VudHJpZXMKKHRoZSBoYXZlIG5vdHMpIHNvIHdlIGNhbiBhbGwgYmUgZXF1YWwuCgoKIE5hamEgaW4gV2l0emUgaGF0IGRhcyB6d2FyIHdlbmlnZXIgdmVybG9yZW4sIGFiZXIgbmUgUnVicmlrICdXdWVyZycgaGFiZW4Kd2lyIGphIG5pY2h0LgoKQmFtYnVsa28KClAuUy46IERhIHN0ZWhlbiBub2NoIGVpbiBwYWFyIGFuZGVyZSAnbmV0dGUnIExlc2VyYnJpZWZlICh2b24gd2VnZW4gaW4gZXVyb3BlCmhhZXR0ZW4gJ1Vtd2VsdG5hemlzJyBkaWUgUmVnaWVydW5nZW4gdW50ZXIga29udHJvbGxlLgpVbmQgZGFzIGdhbnplIGlzdCBuaWNodCBpcmdlbmRlaW5lIE5ld3Nncm91cCwgc29uZGVybiBpbW1lcmhpbiB2b24gQ05OLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaWhuYWNodHNiYXVtc3BpdHplbmVuZ2VsIChZZW5kaSwgIDMuIERleiAxOTk3LCAxMzoyMDoxMik6Cgo+Tm90IGxvbmcgYWdvIGFuZCBmYXIgYXdheSwgU2FudGEgd2FzIGdldHRpbmcgcmVhZHkgZm9yIGhpcyBhbm51YWwKPnRyaXAgLi4uIGJ1dCB0aGVyZSB3ZXJlIHByb2JsZW1zIGV2ZXJ5d2hlcmUuICBGb3VyIG9mIGhpcyBlbHZlcyBnb3QKPnNpY2ssIGFuZCB0aGUgdHJhaW5lZSBlbHZlcyBkaWQgbm90IHByb2R1Y2UgdGhlIHRveXMgYXMgZmFzdCBhcyB0aGUKPnJlZ3VsYXIgb25lcyBzbyBTYW50YSB3YXMgYmVnaW5uaW5nIHRvIGZlZWwgdGhlIHByZXNzdXJlIG9mIGJlaW5nCj5iZWhpbmQgc2NoZWR1bGUuIFRoZW4gTXJzLiBDbGF1cyB0b2xkIFNhbnRhIHRoYXQgaGVyIG1vbSB3YXMgY29taW5nCj50byB2aXNpdC4gVGhpcyBzdHJlc3NlZCBTYW50YSBldmVuIG1vcmUuIFdoZW4gaGUgd2VudCB0byBoYXJuZXNzIHRoZQo+cmVpbmRlZXIsIGhlIGZvdW5kIHRoYXQgdGhyZWUgb2YgdGhlbSB3ZXJlIGFib3V0IHRvIGdpdmUgYmlydGggYW5kCj50d28gaGFkIGp1bXBlZCB0aGUgZmVuY2UgYW5kIHdlcmUgb3V0LCBoZWF2ZW4ga25vd3Mgd2hlcmUuICBNb3JlCj5TdHJlc3MuIFRoZW4gd2hlbiBoZSBiZWdhbiB0byBsb2FkIHRoZSBzbGVpZ2ggb25lIG9mIHRoZSBib2FyZHMKPmNyYWNrZWQgYW5kIHRoZSB0b3kgYmFnIGZlbGwgdG8gdGhlIGdyb3VuZCBhbmQgc2NhdHRlcmVkIHRoZSB0b3lzLiBTbwo+ZnJ1c3RyYXRlZCwgU2FudGEgd2VudCBpbnRvIHRoZSBob3VzZSBmb3IgYSBjdXAgb2YgY29mZmVlIGFuZCBhIHNob3QKPm9mIHdoaXNrZXkuIFdoZW4gaGUgZ290IHRvIHRoZSBjdXBib2FyZCwgaGUgZm91bmQgdGhlIGVsdmVzIGhhZCBoaXQKPnRoZSBsaXF1b3IgYW5kIHRoZXJlIHdhcyBub3RoaW5nIHRvIGRyaW5rLiAgSW4gaGlzIGZydXN0cmF0aW9uLCBoZQo+ZHJvcHBlZCB0aGUgY29mZmVlIHBvdCBhbmQgaXQgYnJva2UgaW50byBodW5kcmVkcyBvZiBsaXR0bGUgcGllY2VzCj5hbGwgb3ZlciB0aGUga2l0Y2hlbiBmbG9vci4gSGUgd2VudCB0byBnZXQgdGhlIGJyb29tIGFuZCBmb3VuZCB0aGF0Cj5taWNlIGhhZCBlYXRlbiB0aGUgc3RyYXcgaXQgd2FzIG1hZGUgZnJvbS4gSnVzdCB0aGVuIHRoZSBkb29yYmVsbAo+cmFuZyBhbmQgU2FudGEgY3Vzc2VkIG9uIGhpcyB3YXkgdG8gdGhlIGRvb3IuICBIZSBvcGVuZWQgdGhlIGRvb3IgYW5kCj50aGVyZSB3YXMgYSBsaXR0bGUgYW5nZWwgd2l0aCBhIGdyZWF0IGJpZyBDaHJpc3RtYXMgdHJlZS4gVGhlIGFuZ2VsCj5zYWlkOiAgIldoZXJlIHdvdWxkIHlvdSBsaWtlIHRvIHB1dCB0aGlzIHRyZWUgU2FudGE/IiBBbmQgdGhhdCBpcyBob3cKPnRoZSBsaXR0bGUgYW5nZWwgY2FtZSB0byBiZSBvbiB0b3Agb2YgdGhlIENocmlzdG1hcyB0cmVlCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2xvYmFsIFdhcm1pbmchIChBbHBoYSwgIDMuIERleiAxOTk3LCAyMDoxMToxNyk6Cn4jISBybj1CYW1idWxrbyBydD04ODEwNzM1NjMgcmc9d2l0emUKfiMhIHRpZD04ODEwNzM1NjMKTmFqYS4uLi5HdWdnZSBEaXIgbWFsIFNheCduLUFuaGFsdCBhbi4uLgpBbHBoYSBoYXNzdCBVbXdlbHRuYXppcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRHJpbmtpbmcgaXMgZ29vZCBmb3IgeW91IChIb2JvLCAgNC4gRGV6IDE5OTcsIDA5OjA2OjUzKToKfiMhIHJuPVllbmRpIHJ0PTg4MDk4MDE2NyByZz13aXR6ZQp+IyEgdGlkPTg4MDk2NTUzNwpHZWhpcm56ZWxsZW4ga29lbm5lbiBzaWNoIHJlcHJvZHV6aWVyZW4uCk51ciwgdW0gbWFsIGRpZSBuZXVlc3RlbiBFcmtlbm50bmlzc2Ugd2VpdGVyenVnZWJlbi4uLgoKCiAgSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRHJpbmtpbmcgaXMgZ29vZCBmb3IgeW91IChDYXR3ZWF6bGUsICA0LiBEZXogMTk5NywgMTA6NTM6MTQpOgp+IyEgcm49SG9ibyBydD04ODEyMjI4MTMgcmc9d2l0emUKfiMhIHRpZD04ODA5NjU1MzcKCkNvb2whCldpZSBtYWNodCBtYW4gZGFzLCBrYW5uIGljaCBndXQgZ2VicmF1Y2hlbiEgOi0pCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcmVpbnRlcyBFdXJvcGEuLi4gKEdyaW1tYm9ybiwgIDQuIERleiAxOTk3LCAxMjo1ODo1OSk6ClNpdHplbiBlaW4gUHJldXNzZSwgZWluIFNjaHdlaXplciB1bmQgZWluIFNjaHdhYmUgaW0gWnVnLiBTYWd0IGRlciBTY2h3ZWl6ZXIKenVtIFByZXVzc2VuOiAiU2FuIFppIHNjaG8gbWFsIGluIFp1ZXJpIHhpPyIgRGVyIHNjaGF1dCB2ZXJzdGFlbmRuaXNsb3MgZHJlaW4sCmRhIG1laW50IGRlciBTY2h3YWJlIGhpbGZyZWljaDogIldpc3NlbnMsIGRlciBtZWludCBnZXdhZWhhZS4iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaG90dGVud2l0eiAoR3JpbW1ib3JuLCAgNC4gRGV6IDE5OTcsIDEzOjEwOjIzKToKCkVkaW5idXJnaCwgU2NvdGxhbmQsIGVpbmUgQXBvdGhla2UgaW4gZGVyIEFsdHN0YWR0OlB1bmt0IDkgVWhyIGdlaHQgZGllIFR1ZXIKYXVmLCBlaW4gc2Nob3R0aXNjaGVyIE1ham9yIGluIHZvbGxlciBUcmFjaHQgKEtpbHQsIEJhZXJlbmZlbGxodXQsIHUucy53LikKbWFyc2NoaWVydCwgZHVkZWxzYWNrcGZlaWZlbmQsIGF1ZiBkaWUgVGhla2UgenUuIERlciBBcG90aGVrZXIgbmltbXQgImhhYnQKQWNodCItU3RlbGx1bmcgZWluLCB1bmQgZ3J1ZXNzdCBkZW4gTWFqb3IgemFja2lnLgoiS2FubiBpY2ggZXR3YXMgZnVlciBTaWUgdHVuPyIKRGVyIEt1bmRlIGtyYW10IGluIHNlaW5lbiBIZXJtZWxpbmJldXRlbCBhbSBHdWVydGVsIHVuZCBsZWd0IGVpbiBrbGVpbmVzClBhZWNrY2hlbiBhdWYgZGVuIFRyZXNlbi4gRXIgZmFsdGV0IGVzIGF1c2VpbmFuZGVyLCB1bmQgZXMga29tbXQgZWluIHVyYWx0ZXMsCnZlcmdpbGJ0ZXMgS29uZG9tIHp1dGFnZS4gRGllc2VzIHdlaXN0IGVpbmVuIFJpc3MgaW4gZGVyIFNwaXR6ZSBhdWYuCkRlciBBcG90aGVrZXI6ICJKYSwgamEsIGVpbiB0cmF1cmlnZXIgRmFsbCEiCkRlciBNYWpvcjogIkthbm4gbWFuIHNvd2FzIGZsaWNrZW4/IgoiS2xhciwgd2lyIGhhYmVuIGVpbiBTY2h3ZWlzc2dlcmFldCBkYSwga29zdGV0IG51ciAxIFBlbmNlLiIKIlVuZCBlaW4gbmV1ZXI/IgoiQWIgMiBQZW5jZSBhdWZ3YWVydHMuIgpEZXIgS3VuZGUgZmFsdGV0IGRhcyBQYWVja2NoZW4gd2llZGVyIHp1c2FtbWVuIHVuZCBnZWh0LCBlaW5lbiBsZWljaHQKdmVyZHV6dGVuIEFwb3RoZWtlciBoaW50ZXJsYXNzZW5kLiBad2VpIFN0dW5kZW4gc3BhZXRlciBnZWh0IGRpZSBUdWVyIHdpZWRlcgphdWYsIHVuZCBkZXIgTWFqb3Iga29tbXQgd2llZGVyIGhpbmVpbiwgbGVndCBkYXMgUGFlY2tjaGVuIGF1ZiBkaWUgVGhla2UsIHVuZApzcHJpY2h0OgoiRGFzIFJlZ2ltZW50IGhhdCBhYmdlc3RpbW10IC0gd2lyIGxhc3NlbiBpaG4gZmxpY2tlbi4iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWZXJlaW50ZXMgRXVyb3BhLi4uIChIZWx2YSwgIDQuIERleiAxOTk3LCAxOToyMzozOSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODgxMjM2NzM5IHJnPXdpdHplCn4jISB0aWQ9ODgxMjM2NzM5Ckthbm4gbWlyIGRhcyBtYWwgZWluZXIgdWViZXJzZXR6ZW4/CkJpbiBudXIgZWluZSBSaGVpbiB1bmQgUnVociBHb3NzZW5taXNjaHVuZywgdmVyc3RlaCBhYiBIZXNzZW4gYWJ3YWVydHMga2VpbgpXb3J0IG1laGVyIDspCkhlbHZhIHdpbGwgbGFjaGVuIG9kZXIgc28gd2F0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZnVlciBIZWx2YSB6dW0gTGFjaGVuIChEaWVkZXIsICA0LiBEZXogMTk5NywgMTk6MjU6MzcpOgpFaW5lIEZyYXUgYmVpbSBaYWhuYXJ6dDoiSWNoIHdlaXNzIG5pY2h0LCB3YXMgc2NobGltbWVyIGlzdCwgYW4gZGVuIFphZWhuZW4KZ2Vib2hydCB6dSB3ZXJkZW4gb2RlciBlaW4gS2luZCB6dSBiZWtvbW1lbi4iCkRhcmF1ZiBkZXIgWmFobmFyenQ6IlNpZSBtdWVzc2VuIHNpY2ggc2Nob24gZW50c2NoZWlkZW4sIGRhbWl0IGljaCBkZW4gU3R1aGwKZW50c3ByZWNoZW5kIGVpbnN0ZWxsZW4ga2Fubi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRyaW5rc3BydWNoIChEaWVkZXIsICA0LiBEZXogMTk5NywgMTk6MzM6NTUpOgpSaW5uIGJhdWNod2FlcnRzLCBTb25uZW5zdHJhaGwsCmZldWNodGUgbWVpbmUgZHVlcnJlIEtlaGxlLgpLb21tc3QgZHUgdW50ZW4gYW4gaW0gVGFsLApqYXVjaHp0IGdlbiBIaW1tZWwgbWVpbmUgU2VlbGUuCk1laW5lIE5pZXJlIHNjaHJlaXQgQWxhcm0sCnVuZCBzaWUgbGVjaHp0IG5hY2ggZGVpbmVtIEt1c3MuCkR1IG1hY2hzdCBFaXNnZWZpbGRlIHdhciwKaGVpbGlnZXIgU2NobmFwc2lzc2ltdXMuCgotLT4gS3VsdHVyPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBmdWVyIEhlbHZhIHp1bSBMYWNoZW4gKFJvY2h1cywgIDQuIERleiAxOTk3LCAxOTozNDo1MCk6Cn4jISBybj1IZWx2YSBydD04ODEyNjAxNDQgcmc9d2l0emUKfiMhIHRpZD04ODEyNTk5MzcKSG1tLCBtYWwgc2VoZW4gb2IgaWNoIGRhcyBub2NoIHNjaGFmZmUsIEhlbHZhIGhldXRlIHp1bSBMYWNoZW4genUgYnJpbmdlbiA6KQpEaWUgYmVzdGVuIFdpdHplIGdpYnQgZXMgaW1tZXIgbm9jaCBpbiBSTC4KSXJnZW5kIGplbWFuZCBoYXR0ZSBtYWwgdm9uIGZvbGdlbmRlbSBFcmxlYm5pcyBiZXJpY2h0ZXQ6CkVyIHdhciBpbSBVcmxhdWIgaW4gR3JpZWNoZW5sYW5kIHVuZCB3b2xsdGUgbWl0IGVpbmVyIEZhZWhyZSBuYWNoIE5heG9zCmZhaHJlbi4gRGEgZXIgaW4gZGVyIFNjaHVsZSBncmllY2hpc2NoIGdlbGVybnQgaGF0IC0gYWx0Z3JpZWNoaXNjaAp3b2hsZ2VtZXJrdCAtIGhhdCBlciBhbHNvIGVpbmZhY2ggbWFsIGVpbmVuIEdyaWVjaGVuIGdlZnJhZ3QuCkRpZXNlciBoYXQgc2ljaCBlcnN0IG1hbCBrYXB1dHRnZWxhY2h0LgpFcyBoYXQgc2ljaCBoZXJhdXNnZXN0ZWxsdCwgZGFzcyBkaWVzZXIgR3JpZWNoZSBEZXV0c2NoIGtvbm50ZQp1bmQgZXIgaGF0IGlobSBkYW5uIG1hbCB6dXJ1ZWNrdWViZXJzZXR6dCwgd2FzIGVyIGRhIGVpZ2VudGxpY2ggZ2VzYWd0IGhhdDoKIlNhZyBhbiwgRnJlbWRlciwgd2FubiBmYWVocnQgZGllIG5hZWNoc3RlIEdhbGVlcmUgbmFjaCBOYXhvcz8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBmdWVyIEhlbHZhIHp1bSBMYWNoZW4gKEppbWRpZ3JpeiwgIDQuIERleiAxOTk3LCAxOTo0Mjo0MSk6Cn4jISBybj1IZWx2YSBydD04ODEyNjA1ODQgcmc9d2l0emUKfiMhIHRpZD04ODEyNTk5MzcKSG9pLCAKaGFiIGF1Y2ggZ3JhZGUgZWluZW4gZ2VzY2hpY2t0IGJla29tbWVuOgppcyBhbGxlcmRpbmdzIGF1ZiBlbmdsaXNjaCwgaGllciB3b2hsIGtlaW4gUHJvYmxlbToKCiBBIGRldGVjdGl2ZSBnb2VzIHVwIHRvIHRoZSBjaGllZiBvZgphIHJlbW90ZSB2aWxsYWdlICBhbmQgYXNrcywgICJJIHNlZQp5b3UgIGhhdmUgIG1hbnkgIGVtcHR5ICBib3R0bGVzICBvZgpTZXZlbi1VcCBoZXJlLCBidXQgd2hhdCBoYXBwZW5lZCB0bwp0aGUgbWFuIHRoYXQgc29sZCB0aGVtIHRvIHlvdT8iICJPaApoZSBvbmUgYmlnIGNoZWF0ISIgY3JpZWQgdGhlIGNoaWVmLgoiSGUgdGFrZSAgdXMgZm9yIGFsbCBvdXIgdmFsdWFibGVzLAptYWRlIGxvdmUgdG8gbXkgZGF1Z2h0ZXIgIGFuZCB3b3VsZApub3QgIG1hcnJ5IGhlciwgIGFuZCB0cnkgIHRvIGVzY2FwZQp3aXRob3V0ICBsZWF2aW5nIFNldmVuLVVwISAgV2Uga2lsbApoaW0uIFdlIHB1dCBoaW0gaW4gYmlnIHBvdCBhbmQgY29vawpoaW0uICBUaGVuIHdlICBlYXQgaGltLiAgV2UgZWF0IGhpbQpmcm9tIGhpcyAgdGhpbmcgdXAuICBUaGVuIHdlICBkcmluawpzb21lIFNldmVuLVVwLiBUaGVuIHdlIGVhdCBoaW0gZnJvbQpmcm9tIGhpcyB0aGluZyBkb3duIi4gICJNWSBHT0QhISEhIgpjcmllZCB0aGUgZGV0ZWN0aXZlLCAiSmVlZWV6dXMsICBpZgp5b3UgYXRlIGhpbSBmcm9tIGhpcyB0aGluZyB1cCwgdGhlbgphdGUgaGltICBmcm9tIGhpcyAgdGhpbmcgZG93biwgIHdoeQpkaWRuJ3QgIHlvdSBqdXN0ICBnbyBhaGVhZCAgYW5kIGVhdApoaXMgIHRoaW5nLCAgdG9vPz8/Pz8/IiAgIkJlY2F1c2UsCmV4cGxhaW5lZCB0aGUgY2hpZWYsIAoKICAgIlRoaW5ncyBnbyBiZXR0ZXIgd2l0aCBDb2tlLiIgCgpJbiBkaWVzZW0gU2lubmUsIFByb3N0IDopCgpKaW0gRGlHcml6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFZlcmVpbnRlcyBFdXJvcGEuLi4gKEJvaW5nLCAgNS4gRGV6IDE5OTcsIDEzOjM5OjU3KToKfiMhIHJuPUhlbHZhIHJ0PTg4MTI1OTgxOSByZz13aXR6ZQp+IyEgdGlkPTg4MTIzNjczOQpTYW4gWmkgc2NobyBtYWwgaW4gWnVlcmkgeGkgPSBTaW5kIFNpZSBzY2hvbiBtYWwgaW4gWnVlcmljaCBnZXdlc2VuLgpYaSBpc3QgYWxzbyBkaWUgU2Nod2VpemVyIChvZGVyIGF1Y2ggc3VlZGJhZGlzY2hlKSBWZXJnYW5nZW5oZWl0c2Zvcm0Kdm9uICdzZWluJy4gSW0gU2lubmUgdm9uICdnZXNlaXQnIC0gJ2dzZWl0JyAtICdnc2knIC0gJ3hpJy4KRGllIFNjaHdhYmVuIGxpZWdlbiBkYSBtaXQgJ2dld2FlaGFlJyBzY2hvbiBldHdhcyBuYWVoZXIgZHJhbiwgYWxsZXJkaW5ncwpoZWlzc3QgZXMgZWlnZW50bGljaCAnZ3dhZWgnLiA6KQogIEJvaW5nIChTY2h3YWJlKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29mdHdhcmUgUmVxdWlyZW1lbnRzIChLZXRvcywgIDguIERleiAxOTk3LCAxMjoyMzo0Myk6Ck9uIHRoZSBzaWRlIG9mIHRoZSBzb2Z0d2FyZSBib3gsIGluIHRoZSAiU3lzdGVtIFJlcXVpcmVtZW50cyIgc2VjdGlvbiwKaXQgc2FpZCAiUmVxdWlyZXMgV2luZG93cyA5NSBvciBiZXR0ZXIiLiAgU28gSSBpbnN0YWxsZWQgTGludXguCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKIFRoZSBVTklYIEd1cnUncyBWaWV3IG9mIFNleCAoS2V0b3MsICA4LiBEZXogMTk5NywgMTI6MjQ6MDgpOgojIHVuemlwIDsgc3RyaXAgOyB0b3VjaCA7IGZpbmdlciA7IG1vdW50IDsgZnNjayA7IG1vcmUgOyB5ZXMgOyB1bW91bnQgOyBzbGVlcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVmVyZWludGVzIEV1cm9wYS4uLiAoSGVmZSwgIDguIERleiAxOTk3LCAxNToxMDo0MSk6Cn4jISBybj1Cb2luZyBydD04ODEzMjU1OTcgcmc9d2l0emUKfiMhIHRpZD04ODEyMzY3MzkKQXVzc2VyZGVtIGlzdCAiV2lzc2VuJ3MiIG5pY2h0IHNjaHdhZWJpc2NoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVmVyZWludGVzIEV1cm9wYS4uLiAoRW5kZXIsICA4LiBEZXogMTk5NywgMTY6Mjc6MTcpOgp+IyEgcm49SGVmZSBydD04ODE1OTAyNDEgcmc9d2l0emUKfiMhIHRpZD04ODEyMzY3MzkKQWxzbyBpY2tlIGtlbm5lIG9jaCBub2NoIHdlZXN0J2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkEtS2xhc3NlIFYxLjAgKEZyZXVuZCwgIDguIERleiAxOTk3LCAyMjozMTozMCk6CldhcyBoYXQgTWVyY2VkZXMgbWl0IGRlbiBNaWxsaW9uZW4gZ2VtYWNodCwgZGllIGZ1ZXIgZGllIEVudHdpY2tsdW5nIGRlcgpBLUtsYXNzZSBhdXNnZWdlYmVuIHdlcmRlbiBzb2xsdGVuPwoKLUF1ZiBkaWUgU2VpdGUgZ2VsZWd0ISA6LSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBLUtsYXNzZSBWMS4yIChGcmV1bmQsICA4LiBEZXogMTk5NywgMjI6MzU6MTkpOgp+IyEgb249RnJldW5kIG90PTg4MTYxNjgxNSBvZz1lcnptYWdpZXIKTWVyY2VkZXMgaGF0IGJlc2NobG9zc2VuLCBkaWUgQS1LbGFzc2UgdGllZmVyIHp1IGxlZ2VuLgoKRGFubiBrYW5uIGRhcyBBdXRvIGJlaW0gRWxjaHRlc3QgX3VudGVyXyBkZW0gRWxjaCBoZXIgZmFocmVuLiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1lcmNlZGVzLVZvcnN0YW5kIFYxLjAgKEZyZXVuZCwgIDguIERleiAxOTk3LCAyMjozNjo1NCk6ClNhZW10bGljaGUgTWl0Z2xpZWRlciBkZXMgTWVyY2VkZXMtVm9yc3RhbmRzIHNpbmQgdWViZXIgV2VpaG5hY2h0ZW4KYW5nZWhhbHRlbiwgaW4gU2thbmRpbmF2aWVuIFVybGF1YiB6dSBtYWNoZW4uCgpHcnVuZDogRWxjaGUgc2NoaWVzc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVyY2VkZXMtVm9yc3RhbmQgVjIuMCAoRnJldW5kLCAgOC4gRGV6IDE5OTcsIDIyOjQxOjI1KToKVW0gZGllIGltYWdlYmVkaW5ndGVuIFZlcmx1c3RlIHdpZWRlciBhdXN6dWdsZWljaGVuLCBiZXNjaGxvc3MgZGVyCk1lcmNlZGVzLVZvcnN0YW5kLCBmb2xnZW5kZSBXZXJidW5nIHp1IHNjaGFsdGVuOgoKRUluIEEtS2xhc3NlIE1lcmNlZGVzIHVuZCBlaW4gTHVmdGtpc3NlbmJvb3QgZmFocmVuIHVtIGRpZSBXZXR0ZS4gTmFjaCAzLTQKS3VydmVuIGZhZWxsdCBkZXIgTWVyY2VkZXMgYXVmIGRpZSBTZWl0ZS4gRGFzIEx1ZnRraXNzZW5ib290IGhhZWx0IGFuLCBkZXIKS2FwaXRhZW4gc3RlaWd0IGF1cyB1bmQgc2FndDoKSWNoIHdvbGx0ZSBpaG4gbnVyIG1hbCB2b24gdW50ZW4gc2VoZW4uCjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVyY2VkZXMtVm9yc3RhbmQgMi4zIChGcmV1bmQsICA4LiBEZXogMTk5NywgMjI6NDM6MDQpOgpBdXMgZ2VnZWJlbmVtIEFubGFzcyB3aWxsIE1lcmNlZGVzIGpldHp0IGRhcyBVbnRlcmJvZGVuYmxlY2ggZGVyIEEtS2xhc3NlIGFscwpXZXJiZWZsYWVjaGUgdmVybWlldGVuLgo6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCld1bmRlciBkZXIgVGVjaG5payAoR3JpbW1ib3JuLCAgOS4gRGV6IDE5OTcsIDEwOjI0OjMyKToKRXMgaXN0IGltbWVyIHdpZWRlciBiZWVpbmRydWNrZW5kIHp1IHNlaGVuLCB3aWUgZGllIFRlY2huaWsgdm9uIGRlciBOYXR1cgpsZXJudC4gRWluIGFsdGJla2FubnRlcyBCZWlzcGllbCBpc3QgZGVyIEh1YnNjaHJhdWJlciwgZGVyIGF1cyBtaXIgbmljaHQgZ2FuegplaW5sZXVjaHRlbmRlbiBHcnVlbmRlbiBkZXIgTGliZWxsZSBhYmdlZ3Vja3Qgc2VpbiBzb2xsLiBNZXJjZWRlcyBpc3QgamV0enQKaGluZ2VnYW5nZW4gdW5kIGhhdCBhdWNoIHZvbiBkZXIgTmF0dXIgZ2VsZXJudDogRnVlciBydW5kIDFNcmQKRW50d2lja2x1bmdza29zdGVuIGhhYmVuIHNpZSBlaW4gQXV0byBlbnR3aWNrZWx0LCBkYXNzIHNpY2ggYmVpIEdlZmFociBhdWYgZGVuClJ1ZWNrZW4gZHJlaHQgdW5kIHRvdCBzdGVsbHQuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVmVyZWludGVzIEV1cm9wYS4uLiAoSGFyZGlsLCAgOS4gRGV6IDE5OTcsIDExOjAxOjU3KToKfiMhIHJuPUJvaW5nIHJ0PTg4MTMyNTU5NyByZz13aXR6ZQp+IyEgdGlkPTg4MTIzNjczOQpTYW4gWmkgc2NobyBtYWwgaW4gWnVlcmkgeGkgPSBTYWdlbiBaaSBzY2hvbiBtYWwgaW4gWnVlcmkgZ2VzZWhlbj8KCkFsc28gYXVmIFJoZWluaGVzc2lzY2ggbWFjaHQgZGFzIGtlaW5lbiBTaW5uLiAneGknIGtvbW10IGVpbmRldXRpZyBuaWNodCB2b24KJ3NlaW4nLCBzb25kZXJuIHZvbiAnc2VoZW4nLCAnc2FuJyB2b24gJ3NhZ2VuJy4KCi1IYXJkaWwuIFNjaHVldHRlbHQgZGVuIEtvcGYsIGRlbm4gU2Nod2FiZW4gc2luZCBzY2hvbiB1bnZlcnN0YWVuZGxpY2hlIExldXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBtYWwgQS1LbGFzc2UgKEhhciwgIDkuIERleiAxOTk3LCAxMzo1Njo0Myk6ClVuYmVzdGFldGlndGVuIEJlcmljaHRlbiB6dWZvbGdlIHNvbGwgTGFkeSBEaWFuYSBlbnRnZWdlbiBlcnN0ZW4gTWVsZHVuZ2VuCm5pY2h0CgpTLUtsYXNzZSwgc29uZGVybiBBLUtsYXNzZSBnZWZhaHJlbiBzZWluLgoKT2ZmZW4gYmxlaWJ0IHdlaXRlcmhpbiBkaWUgRnJhZ2UsIHdpZSBkZXIgRWxjaCBpbiBkZW4gVHVubmVsIGthbS4uLgoKCgpoYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2h0IGVpbiBrdXJ6ZXIuLi4gKEhhciwgIDkuIERleiAxOTk3LCAxMzo1Nzo0OSk6ClN0ZWhlbiB6d2VpIEVsY2hlIGFuIGRlciBCYXIuIFNhZ3QgZGVyIGVpbmUgenVtIGFuZGVyZW46ICAiRHUsIGdlaGVuIHdpcgpoZXV0ZSBub2NoIGVpbmVuIGtpcHBlbj8iCgoKSGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkaWVzbWFsIG5vY2ggendlaSAoSGFyLCAgOS4gRGV6IDE5OTcsIDEzOjU4OjM0KToKSHR0ZSBTY2h1bWkgZWluZW4gQS1LbGFzc2UgTWVyY2VkZXMgZ2VmYWhyZW4gLCB3cmUgZXIgV2VsdG1laXN0ZXIKZ2V3b3JkZW4hCgpFciBodHRlIHNpY2ggYXVmIFZpbGxuZXV2ZSBraXBwZW4ga25uZW4gIQoKCgpEaWUgQS1LbGFzc2UgZ2lidCBlcyBqZXR6dCBtaXQgZGVtIGF1dG9tYXRpc2NoZW4gRVNQCigiRWxjaC1TdWNoLVByb2dyYW1tIikuIERhcyBlcmtlbm50IGVpbmVuIEVsY2ggYXVmIDQwMG0gRW50ZmVybnVuZyB1bmQKZmhydCBkYW5uIGF1dG9tYXRpc2NoIGRpZSBBdWVuLUFpcmJhZ3MgdW5kIHNlY2hzIFN0dHpyZGVyIGF1cyEKCgpoYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRlciAodm9yZXJzdCkgbGV0enRlLi4uIChIYXIsICA5LiBEZXogMTk5NywgMTM6NTk6MzkpOgpEaWUgQS1LbGFzc2Uga29tbXQgamV0enQgaW4gZWluZXIgU3BvcnQtVmVyc2lvbi4gU2llIHNjaGFmZnQgZGFubiAzClVlYmVyc2NobGFlZ2UKCmhhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5tYWwgQS1LbGFzc2UuLi4gKEdyaW1tYm9ybiwgIDkuIERleiAxOTk3LCAxNDoxMjoyNik6CkZ1ZXIgRmFocnpldWdlciBkZXIgQS1LbGFzc2Ugdm9uIE1lcmNlZGVzIGdpYnQgZXMgZWluZW4gbmV1ZW4gQXVma2xlYmVyOgoiSWNoIGJyZW1zZSBuaWNodCBmdWVyIEVsY2hlLiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXV0b3dpdHogKEdyaW1tYm9ybiwgIDkuIERleiAxOTk3LCAxNDozOTo0Nyk6CkhhcmFsZCBKdWhua2UgaGF0IGpldHp0IGVpbmVuIG5ldWVuIEpvYi4gRXIgaXN0IEZhaHJlciBiZWltIGJyaXRpc2NoZW4KS29lbmlnc2hhdXMuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZ1c3NiYWxsISAoR3JpbW1ib3JuLCAgOS4gRGV6IDE5OTcsIDE0OjQ4OjQyKToKV2FydW0gc2luZCBmdWVyIGRpZSBrb21tZW5kZSBGdXNzYmFsbC1XTSB3ZWlibGljaGUgWnVzY2hhdWVyIG51ciB6dWdlbGFzc2VuLAp3ZW5uIHNpZSBhZWx0ZXIgYWxzIDE4IEphaHJlIHNpbmQ/CldlaWwgc2ljaCBCZWxnaWVuIGZ1ZXIgZGllIFdNIHF1YWxpZml6aWVydCBoYXQuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkEtYS1hIChIYXIsICA5LiBEZXogMTk5NywgMTY6MzA6MDQpOgoKV2FzIHNhZ3QgZWluIE1lcmNlZGVzIEEtS2xhc3NlIEZhaHJlciB3ZW5uIGVyIHNlaW4gV2FnZW4genVyIEF1dG93c2NoZQpicmluZ3Q/CgpXYXNjaGVuIC0gTGVnZW4gLSBGbmVuICEKCgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gTW90b3JyYWQgdW5kIGRlbSBuZXVlbiBBLUtsYXNzZQpNZXJjZWRlcz8KCkRhcyBNb3RvcnJhZCBraXBwdCB6dXIgS3VydmVuaW5uZW5zZWl0ZSBoaW4gdW0uCgpXYXMgaGFiZW4gZGllIEEtS2xhc3NlIHVuZCBCb3J1c3NpYSBEb3J0bXVuZCBnZW1laW5zYW0gPz8KCkJlaSBCZWlkZW4gaXN0IGRpZSBLb25rdXJyZW56IGF1cyBNbmNoZW4gdW5kIFdvbGZzYnVyZyBiZXNzZXIgISEhCgpXYXMgYnQgZWluIEEtS2xhc3NlIEZhaHJlciBiZWltIEVyc3RlIEhpbGZlIEt1cnMgZ2FueiBiZXNvbmRlcnMgPz8/CgpTdGFiaWxlIFNlaXRlbmxhZ2UsIHdhcyBzb25zdCAhISEKVGVzdGZhaHJlciBkZXIgQS1LbGFzc2Ugc2NodWZ0ZW4gYmlzIHNpZSB1bWtpcHBlbi4KRGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEEtS2xhc3NlIHVuZCBTLUtsYXNzZT8KCjkwICEKCnNvLCBkYXMgc29sbHRlIHJlaWNoZW4KCmhhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFd1bmRlciBkZXIgVGVjaG5payAoSGFyZGlsLCAxMC4gRGV6IDE5OTcsIDE0OjEzOjM1KToKfiMhIHJuPUdyaW1tYm9ybiBydD04ODE2NTk0NzIgcmc9d2l0emUKfiMhIHRpZD04ODE2NTk0NzIKRGllIEJlemVpY2hudW5nICJBLUtMQVNTRSIgaXN0IGRvY2ggc2Nob24gZWluZSB2ZXJzdGVja3RlIFdhcm51bmcKZGVzIEhlcnN0ZWxsZXJzOiBBIC0gSyBMIEEgUyBTIEUgPSBBIHV0byAgIEsgaXBwdCAgIEwgZWljaHQgICBBIHVmICAgUwplaXRlLCAgIFMgaWVoZSAgIEUgbGNodGVzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXdW5kZXIgZGVyIFRlY2huaWsgKEhhcmRpbCwgMTAuIERleiAxOTk3LCAxNDoxNDo0NSk6Cn4jISBybj1IYXJkaWwgcnQ9ODgxNzU5NjE1IHJnPXdpdHplCn4jISB0aWQ9ODgxNjU5NDcyCldhcyBoYXQgSGFyYWxkIEp1aG5rZSBtaXQgZGVyIEEtIHVuZCBTLUtsYXNzZSBnZW1laW5zYW0gPz8gRXIKc3VmdCB3aWUgZGllIFMtS2xhc3NlIHVuZCBraXBwdCB1bSB3aWUgZGllIEEtS2xhc3NlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGVyIGFsbGVybGV0enRlIGEta2xhc3Nlbi13aXR6IChIYXJkaWwsIDEwLiBEZXogMTk5NywgMTQ6MTY6NTEpOgoKV2FydW0gd2VyZGVuIGRpZSBXZXJiZXBsYWthdGUgZnVlciBkaWUgQS1LbGFzc2UgbmV1ZXJkaW5ncyB2ZXJrZWhydGhlcnVtCmF1ZmdlaGFlbmd0PyBEYW1pdCBtYW4gc2llIHNjaG9uIGJlaSBkZXIgRmFocnQgbGVzZW4ga2Fubi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlc2NoaWNodGUgb2RlciBHZXNjaGljaHRlbj8gKEhvYm8sIDEwLiBEZXogMTk5NywgMTQ6NTc6MzUpOgpTdGlsYmx1ZXRlbiBhdXMgR2VzY2hpY2h0cy1BcmJlaXRlbiBlbmdsc2ljaGVyIFNjaHVlbGVyCiAKVGhlIGluaGFiaXRhbnRzIG9mIEVneXB0IHdlcmUgY2FsbGVkIG11bW1pZXMuIFRoZXkgbGl2ZWQgaW4gdGhlIFNhcmFoIERlc3NlcnQKYW5kIHRyYXZlbGVkIGJ5IENhbWVsb3QuIFRoZSBjbGltYXRlIG9mIHRoZSBTYXJhaCBpcyBzdWNoIHRoYXQgdGhlIGluaGFiaXRhbnRzCmhhdmUgdG8gbGl2ZSBlbHNld2hlcmUsIHNvIGNlcnRhaW4gYXJlYXMgb2YgdGhlIGRlc3NlcnQgYXJlIGN1bHRpdmF0ZWQgYnkKaXJyaXRhdGlvbi4gVGhlIEVneXB0aWFucyBidWlsdCB0aGUgUHlyYW1pZHMgaW4gdGhlIHNoYXBlIG9mIGh1Z2UgdHJpYW5ndWxhcgpjdWJlLiBUaGUgUHlyYW1pZHMgYXJlIGEgcmFuZ2Ugb2YgbW91bnRhaW5zIGJldHdlZW4gRnJhbmNlIGFuZCBTcGFpbi4KIApXaXRob3V0IHRoZSBHcmVla3MsIHdlIHdvdWxkbid0IGhhdmUgaGlzdG9yeS4gVGhlIEdyZWVrcyBpbnZlbnRlZCB0aHJlZSBraW5kcwpvZiBjb2x1bW5zIC0gQ29yaW50aGlhbiwgRG9yaWMgYW5kIElyb25pYy4gVGhleSBhbHNvIGhhZCBteXRocy4gQSBteXRoIGlzIGEKZmVtYWxlIG1vdGguIE9uZSBteXRoIHNheXMgdGhhdCB0aGUgbW90aGVyIG9mIEFjaGlsbGVzIGRpcHBlZCBoaW0gaW4gdGhlIFJpdmVyClN0eW54IHVudGlsIGhlIGJlY2FtZSBpbnRvbGVyYWJsZS4gQWNoaWxsZXMgYXBwZWFycyBpbiAiVGhlIElsbGlhZCIsIGJ5IEhvbWVyLgpIb21lciBhbHNvIHdyb3RlIHRoZSAiT2RkaXR5IiwgaW4gd2hpY2ggUGVuZWxvcGUgd2FzIHRoZSBsYXN0IGhhcmRzaGlwIHRoYXQKVWx5c3NlcyBlbmR1cmVkIG9uIGhpcyBqb3VybmV5LiBBY3V0YWxseSwgSG9tZXIgd2FzIG5vdCB3cml0dGVuIGJ5IEhvbWVyIGJ1dApieQphbm90aGVyIG1hbiBvZiB0aGF0IG5hbWUuCgpUaGUgUmVuYWlzc2FuY2Ugd2FzIGFuIGFnZSBpbiB3aGljaCBtb3JlIGluZGl2aWR1YWxzIGZlbHQgdGhlIHZhbHVlIG9mIHRoZWlyCmh1bWFuIGJlaW5nLiBNYXJ0aW4gTHV0aGVyIHdhcyBuYWlsZWQgdG8gdGhlIGNodXJjaCBkb29yIGF0IFdpdHRlbmJlcmcgZm9yCnNlbGxpbmcgcGFwYWwgaW5kdWxnZW5jZXMuIEhlIGRpZWQgYSBob3JyaWJsZSBkZWF0aCwgYmVpbmcgZXhjb21tdW5pY2F0ZWQgYnkgYQpidWxsLiBJdCB3YXMgdGhlIHBhaW50ZXIgRG9uYXRlbGxvJ3MgaW50ZXJlc3QgaW4gdGhlIGZlbWFsZSBudWRlIHRoYXQgbWFkZSBoaW0KdGhlIGZhdGhlciBvZiB0aGUgUmVuYWlzc2FuY2UuIEl0IHdhcyBhbiBhZ2Ugb2YgZ3JlYXQgaW52ZW50aW9ucyBhbmQKZGlzY292ZXJpZXMuIEd1dGVuYmVyZyBpbnZlbnRlZCB0aGUgQmlibGUuIFNpciBXYWx0ZXIgUmFsZWlnaCBpcyBhIGhpc3RvcmljYWwKZmlndXJlIGJlY2F1c2UgaGUgaW52ZW50ZWQgY2lnYXJldHRlcy4gQW5vdGhlciBpbXBvcnRhbnQgaW52ZW50aW9uIHdhcyB0aGUKY2lyY3VsYXRpb24gb2YgYmxvb2QuIFNpciBGcmFuY2lzIERyYWtlIGNpcmN1bWNpc2VkIHRoZSB3b3JsZCB3aXRoIGEgMTAwLWZvb3QKY2xpcHBlci4KIC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnVzc2JhbGwhIChDYXVubywgMTEuIERleiAxOTk3LCAxMTo0MzoyNCk6Cn4jISBybj1MaSBydD04ODE4MzEwMDEgcmc9d2l0emUKfiMhIHRpZD04ODE2NzUzMjIKSWNoIHNhZ2UgbnVyOgpaZWljaGVuIGRlciBaZWl0IHplaWdlbiBzaWNoIGJlc29uZGVycyBkZXV0bGljaCBhdWYgZGVuIFdpdHplc2VpdGVuIGRlcgpJbGx1c3RyaWVydGVuLgpNYW5jaGUgTGV1dGUgYnJhdWNoZW4gZGVuIFdpdHosIHVtIGlocmVuIEZydXN0IGFienVsYWRlbi4gS2VubnQgamFtYW5kIE1BU0g/CgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSWNoIGdsYXViLCBtaWNoIGtpcHB0IGVpbiBFbGNoIChDYXVubywgMTEuIERleiAxOTk3LCAxMjoxMTo1MCk6CldhcnVtIGlzdCBpbSBNZXJjZWRlcyBBLUtsYXNzZSBkYXMgUmF1Y2hlbiB1bnRlcnNhZ3Q/CldlZ2VuIGRlciB2aWVsZW4gS2lwcGVuLgogCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXdW5kZXIgZGVyIFRlY2huaWsgKENhdW5vLCAxMS4gRGV6IDE5OTcsIDEyOjE3OjI4KToKfiMhIHJuPUhhcmRpbCBydD04ODE3NTk2ODUgcmc9d2l0emUKfiMhIHRpZD04ODE2NTk0NzIKPiBFciBzYWV1ZnQgd2llIGRpZSBTLUtsYXNzZSAuLi4KLS0tLS0tLS0tLS0tLS0tLS0tLS1eCldhciBkYXMgbmljaHQgZGVyIEMtS2xhc3NlLU1vdG9yLCBkZXIgdm9uIE1lcmNlZGVzIGdla2lwcHQgKGhtLCBzY2hvbiB3aWVkZXIKLi4uKSB3dXJkZSwgd2VpbCBlciBzY2hvbiBmdWVyIE1lcmNlZGVzLVZlcmhhZWx0bmlzc2UgenV2aWVsIHNvZmY/CkthbSBrdXJ6IHZvciBkZW0gRWxjaHRlc3QsIGlzdCBkZXNoYWxiIGthdW0gYXVmZ2VmYWxsZW4uCk9kZXIgaGFidCBpaHIgZ2VtZXJrdCwgZGFzcyBpbiBkZXIgV2VyYnVuZyBkZXIgQy1LbGFzc2UgcGxvZXR6bGljaCBkZXIKVW50ZXJ0ZXh0IGVyc2NoaWVuOiBKZXR6dCBtaXQgZGVtIG5ldWVuIFYyLU1vdG9yPwoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFd1bmRlciBkZXIgVGVjaG5payAoSGlnaGxhbmRlciwgMTEuIERleiAxOTk3LCAxMjoyNToxMCk6Cn4jISBybj1DYXVubyBydD04ODE4MzkwNDggcmc9d2l0emUKfiMhIHRpZD04ODE2NTk0NzIKVjItTW90b3I/ICpzY2hsdWNrKiBEaWUgaGFiZW4gUmFrZXRlbmFudHJpZWI/IQpXbyB0YW5rdCBtYW4gZGVubiBkYT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFd1bmRlciBkZXIgVGVjaG5payAoQ2F1bm8sIDExLiBEZXogMTk5NywgMTI6MjY6MzcpOgp+IyEgcm49SGlnaGxhbmRlciBydD04ODE4Mzk1MTAgcmc9d2l0emUKfiMhIHRpZD04ODE2NTk0NzIKb2RlciBWLXNvbnN0d2llIC4uLiBLZWluZSBBaG51bmcsIHdlbGNoZXMgZGllIE51bW1lciBpc3QsIGljaCBmYWhyIGRpZSBLaXN0ZQpzb3dpZXNvIG5pY2h0LiBzdGVodCB3b2hsIGZ1ZXIgQy1LbGFzc2UgViAyLjAgLi4uCgpBbnNvbnN0ZW4gd2FyIG1pciBkZXIgR2FnIHNjaG9uIGtsYXIgLi4uIDotKQoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkR1bW1lciBXaXR6Li4uIChBc3RhciwgMTIuIERleiAxOTk3LCAxODoyNzo1Nyk6CldhcnVtIGtsYXVlbiBkaWUgUnVzc2VuIGFsbGVzIGRvcHBlbHQ/CgpTaWUgbXVlc3NlbiBhdWYgZGVtIFJ1ZWNrd2VnIGR1cmNoIFBvbGVuLgoKQXN0YXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlamF2dWUgKEJsb29keWhhcnJ5LCAxMi4gRGV6IDE5OTcsIDIzOjM0OjA0KToKCk51biBoYXQgZGFzIGd1dGUgKD8pIGFsdGUgVk1TIGRlciBGaXJtYSBERUMgZG9jaCBub2NoIHNlaW5lbiBOYWNoZm9sZ2VyCmdlZnVuZGVuPyBKZWRlbmZhbGxzIGJla29tbXQgbWFuIGRpZXMgZHVyY2ggRXJob2VodW5nIGRlcyBBbHBoYWJldHMgamVkZW4KQnVjaHN0YWJlcyBzbyBnZXNhZ3Q6IFdOVCAoPT0gV2luZG93cyBOVCkKRGEgd2VyZGVuIHdpZWRlciBFcmlubmVydW5nZW4gYW4gSEFMIDkwMDAgdW5kIElCTSAoNjAwMD8pIHdhY2guCgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlamF2dWUgKEN5bW9uaywgMTMuIERleiAxOTk3LCAwMTo1MDowNyk6Cn4jISBybj1CbG9vZHloYXJyeSBydD04ODE5NjYwNDQgcmc9d2l0emUKfiMhIHRpZD04ODE5NjYwNDQKZGFzIGlzdCBrZWluIHdpdHouLi4Kd2luIG50IGlzdCBkZXIgbmFjaGZvbGdlciB2b24gdm1zLAp6dW1pbmRlc3QgaGF0IG1pciAnbWFsIGplbWFuZCBnbGF1YmhhZnQgdmVyc2ljaGVydCwKZGFzIHJlZG1vbmRlciBudCB0ZWFtIHdhZXJlIHVyc3BydWVuZ2xpY2ggYmVpCmRlYyBiZXNjaGFlZnRpZnQgZ2V3ZXNlbiAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVqYXZ1ZSAoRGVudGksIDEzLiBEZXogMTk5NywgMTI6MTA6MDkpOgp+IyEgcm49Q3ltb25rIHJ0PTg4MTk3NDIwNyByZz13aXR6ZQp+IyEgdGlkPTg4MTk2NjA0NAoKRGFzIGlzdCByaWNodGlnLCBiZWkgREVDIHdhciBkYXMgVGVhbSBhbiBlaW5lbSBOYWNoZm9sZ2VyIGZ1ZXIgVk1TCkRhcyBpc3QgcmljaHRpZywgZGFzIE5ULVRlYW0gKGQuaC4gZGVyIEtlcm4gZGVzIFRlYW1zKSB3YXIgYmVpIERFQyBkYWJlaSwgCmVpbmVuIE5hY2hmb2xnZXIgZnVlciBWTVMgenUgZW50d2lja2VsbiwgYWJlciBERUMgYnJhY2ggZGFzIFByb2pla3QgYWIsCmRhcmF1ZmhpbiBnaW5nIGRhcyBUZWFtIHp1IE1TIHVuZCB3dXJkZSBkb3J0IG5hdHVlcmxpY2ggZ2VybmUgZ2Vub21tZW4uCgpEaWUgTGV1dGUgZW50d2lja2VsdGVuIE5ULCBtdXNzdGVuIGFiZXIgYXVmIGRpZSBPYmVyZmxhZWNoZSB2b24gV2luZG93cyAKUnVlY2tzaWNodCBuZWhtZW4gdW5kIHVudGVybGFnZW4gZGVtIHVlYmxpY2hlbiBNUy1TdHJlc3MgKGFuZ2VibGljaCB3ZXJkZW4gCmRvcnQgc28gdmllbGUgUHJvZ3JhbW1pZXJlIHZlcnNjaGxlaXNzdCwgd2llIHNvbnN0IG5pcmdlbmR3bykuIAoKVHJvdHpkZW0gd2FyIE5UIGVpbiBhYnNvbHV0IG5ldSBlbnR3aWNrZWx0ZXMgT1MsIG1pdCBhbmxlaWhlbiBhbiBVbml4IAooamV0enQgbGFjaHQgbmljaHQsIGltbWVyaGluIGlzdCBlcyBQb3NpeCAxLjEgS29tcGF0aWJlbCkgdW5kIFZNUy4gCgpVbmQgaWNoIGRlbmtlLCBlcyBpc3QgbmFjaCB3aWUgdm9yIGRhcyAic3RhYmlsc3RlIiBNUy1CZXRyaWVic3N5c3RlbS4KClRqYSwgdW5kIG9iIGVzIHVucyBnZWZhZWxsdCBvZGVyIG5pY2h0LCBhbnNjaGVpbmVuZCBiZXNldHp0IGVzIGluendpc2NoZW4KTWFya3RiZXJlaWNoZSwgZGllIGJpc2hlciB2b24gTm92ZWxsIHVuZC9vZGVyIFVuaXgtU2VydmVybiBhYmdlZGVja3Qgd3VyZGVuLgoKRGVudGksIGRlbSBkYXMgYXVjaCBuaWNodCBnZWZhZWxsdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVqYXZ1ZSAoUmFmZmksIDE2LiBEZXogMTk5NywgMjM6MzU6MTkpOgp+IyEgcm49RGVudGkgcnQ9ODgyMDExNDA5IHJnPXdpdHplCn4jISB0aWQ9ODgxOTY2MDQ0ClJhZmZpIGhhdCBzaWNoIGpldHp0IGVyc3RtYWwgZWluZW4gbmV1ZW4gTWFjLVNlcnZlciBiZXN0ZWxsdCB1bmQgbGFjaHQgZGVyd2VpbAp1ZWJlciBkZW4gV2l0ei4KCkdyaW5zCkguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSVEZNIChHcmltbWJvcm4sIDE4LiBEZXogMTk5NywgMTU6NTA6MjQpOgpBdWNoIHdlbm5zIGRlciBlaW5lIG9kZXIgYW5kZXJlIHNjaG9uIGtlbm5lbiBtYWcsIGhpZXIgaXN0IGRpZSBtYW4gcGFnZSB6dW0KVGhlbWEgIlNleCI6CgpTRVgoNikgICAgICAgICAgICAgIEVVTlVDSCBQcm9ncmFtbWVyJ3MgTWFudWFsICAgICAgICAgICAgICAgU0VYKDYpCgoKCk5BTUUKICAgICBzZXggLSBoYXZlIHNleAoKU1lOT1BTSVMKICAgICBzZXggWyBvcHRpb25zIF0gLi4uICBbIHVzZXJuYW1lIF0gLi4uCgpERVNDUklQVElPTgogICAgIF8Ic18IZV8IeCBhbGxvd3MgdGhlIGludm9rZXIgdG8gaGF2ZSBzZXggd2l0aCB0aGUgdXNlcihzKSBzcGVjaS0KICAgICBmaWVkIGluIHRoZSBjb21tYW5kIGxpbmUuICBJZiBubyB1c2VycyBhcmUgc3BlY2lmaWVkLCB0aGV5CiAgICAgYXJlIHRha2VuIGZyb20gdGhlIExPVkVSUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4gIE9wdGlvbnMgdG8KICAgICBtYWtlIHRoaW5ncyBtb3JlIGludGVyZXN0aW5nIGFyZSBhcyBmb2xsb3dzOgoKICAgICAtMSAgIG1hc3R1cmJhdGUKCiAgICAgLWEgICBleHRlcm5hbCBzdGltdWx1cyAoYXBocm9kaXNpYWMpIG9wdGlvbgoKICAgICAtYiAgIGJ1Z2dlcnkKCiAgICAgLUI8YW5pbWFsPgogICAgICAgICAgYmVzdGlhbGl0eSB3aXRoIDxhbmltYWw+CgogICAgIC1jICAgY2hvY29sYXRlIHNhdWNlIG9wdGlvbgoKICAgICAtQyAgIGNoYWluaW5nIG9wdGlvbiAoY3VmZnMgaW5jbHVkZWQpIChzZWUgYWxzbyAtbSAtcyAtVykKCiAgICAgLWQ8ZmlsZT4KICAgICAgICAgIGdldCBhIGRhdGUgd2l0aCB0aGUgZmVhdHVyZXMgZGVzY3JpYmVkIGluIDxmaWxlPgoKICAgICAtZSAgIGV4aGliaXRpb25pc20gKGltYWdlIHNlbnQgdG8gYWxsIG1hY2hpbmVzIG9uIHRoZSBuZXQpCgogICAgIC1mICAgZm9yZXBsYXkgb3B0aW9uCgogICAgIC1GICAgbmFzYWwgc2V4IHdpdGggcGxhbnRzCgogICAgIC1pICAgY29pdHVzIGludGVycnVwdHVzIChtZXNzeSEpCgogICAgIC1qICAgamFjdXp6aSBvcHRpb24gKENhbGlmb3JuaWEgc2l0ZXMgb25seSkKCiAgICAgLWwgICBsZWF0aGVyIG9wdGlvbgoKICAgICAtbSAgIG1hc29jaGlzbSAoc2VlIC1zKQoKICAgICAtTSAgIHRyaXBsZSBwYXJhbGxlbCAoTWVuYWdlIGEgVHJvaXMpIG9wdGlvbgoKICAgICAtbiAgIG5lY3JvcGhpbGlhIChpZiB0YXJnZXQgcHJvY2VzcyBpcyBub3QgZGVhZCwgcHJvZ3JhbQogICAgICAgICAga2lsbHMgaXQpCgogICAgIC1vICAgb3JhbCBvcHRpb24KCiAgICAgLU8gICBwYXJhbGxlbCBhY2Nlc3MgKG9yZ3kpCgogICAgIC1wICAgZGVidWcgb3B0aW9uIChwcm9wb3NpdGlvbiBvbmx5KQoKICAgICAtUCAgIHBlZG9waGlsaWEgKG11c3Qgc3BlY2lmeSBhIGNoaWxkIHByb2Nlc3MpCgoKClByaW50ZWQgMi8xNS84NyAgICAgICAgICAgICAgMi8xNS84NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxCgoKCgoKClNFWCg2KSAgICAgICAgICAgICAgRVVOVUNIIFByb2dyYW1tZXIncyBNYW51YWwgICAgICAgICAgICAgICBTRVgoNikKCgoKICAgICAtcSAgIHF1aWNraWUgKHdoYW0sIGJhbSwgdGhhbmsgeW91LCBtYSdhbSkKCiAgICAgLXMgICBzYWRpc20gKHRhcmdldCBtdXN0IHNldCAtbSkKCiAgICAgLVMgICBzdW5kYWUgb3B0aW9uCgogICAgIC1UPG51bWJlcj4KICAgICAgICAgIHZvaWNlLW5ldCBzZXggdmlhIHN0YW5kYXJkIHV1Y3AgYXV0b2RpYWxlciBmYWNpbGl0aWVzOwogICAgICAgICAgYXJlYSBjb2RlIHByZWZpeCBvZiA5MDAgaXMgYXNzdW1lZC4KCiAgICAgLXYgICB2b3lldXJpc20gKHN1cnZleXMgdGhlIGVudGlyZSBuZXQpCgogICAgIC13ICAgd2hpcHBlZCBjcmVhbSBvcHRpb24KCiAgICAgLVcgICB3aGlwcyAoc2VlIGFsc28gLXMsIC1DLCBhbmQgLW0pCgpFTlZJUk9OTUVOVAogICAgIExPVkVSUwogICAgICAgICAgaXMgYSBsaXN0IG9mIGRlZmF1bHQgcGFydG5lcnMgd2hpY2ggd2lsbCBiZSB1c2VkIGlmCiAgICAgICAgICBub25lIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hbmQgbGluZS4gIElmIGFueSBhcmUKICAgICAgICAgIHNwZWNpZmllZCwgdGhlIHZhbHVlcyBpbiBMT1ZFUlMgaXMgaWdub3JlZC4KCkZJTEVTCiAgICAgL3Vzci9saWIvc2V4L2FuaW1hbHMgICAgICAgICAgYW5pbWFscyBmb3IgYmVzdGlhbGl0eQoKICAgICAvdXNyL2xpYi9zZXgvYmxhY2tib29rICAgICAgICBwb3NzaWJsZSBkYXRlcwoKICAgICAvdXNyL2xpYi9zZXgvc3VuZGFlcyAgICAgICAgICBzdW5kYWUgcmVjaXBlcwoKICAgICAvdXNyL2xpYi9zZXgvcyZtICAgICAgICAgc2Fkby1tYXNvY2hpc3RpYyBlcXVpcG1lbnQKCgoKQlVHUwogICAgIF5DIChxdWl0IHByb2Nlc3MpIG1heSBsZWF2ZSB0aGUgdXNlciB2ZXJ5IHVuc2F0aXNmaWVkLgoKICAgICBeWiAoc3RvcCBwcm9jZXNzKSBpcyB1c3VhbGx5IHF1aXRlIG1lc3N5LgoKTUFOIEFVVEhPUgogICAgIEF1dGhvciBwcmVmZXJzIHRvIGJlIGFub255bW91cy4KCkhJU1RPUlkKICAgICBPbGRlc3QgcHJvZ3JhbSBldmVyLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSVEZNIDIgKEdyaW1tYm9ybiwgMTguIERleiAxOTk3LCAxNTo1MTozNSk6ClVuZCBqZXR6dCBub2NoIGRpZSBtYW4gcGFnZSB6dW0gVGhlbWEgImNvbmRvbSIsIGRlbm4gc2ljaGVyIGlzdCBzaWNoZXI6CgpDT05ET00oMSkJICAgICAgRVVOVUNIIFByb2dyYW1tZXIncyBNYW51YWwJCUNPTkRPTSgxKQoKCgpOQU1FCgljb25kb20gLSBQcm90ZWN0aW9uIGFnYWluc3QgdmlydXNlcyBhbmQgcHJldmVudGlvbiBvZiBjaGlsZCAKCQkgcHJvY2Vzc2VzCgpTWU5PUFNJUwoJY29uZG9tIFtvcHRpb25zXSBbcHJvY2Vzc2lkXQoKREVTQ1JJUFRJT04KCV9jb25kb21fIHByb3ZpZGVzIHByb3RlY3Rpb24gYWdhaW5zdCBTeXN0ZW0gVHJhbnNtaXR0ZWQKVmlydXNlcyAoU1RWcykgdGhhdCBtYXkgaW52YWRlIHlvdXIgc3lzdGVtLiAgQWx0aG91Z2ggdGhlIHNwcmVhZCBvZgpzdWNoIHZpcnVzZXMgYWNyb3NzIGEgbmV0d29yayBjYW4gb25seSBiZSBhYmF0ZWQgYnkgYXdhcmUgYW5kIGNhdXRpb3VzCnVzZXJzLCBfY29uZG9tXyBpcyB0aGUgb25seSBoaWdobHktZWZmZWN0aXZlIG1lYW5zIG9mIHByZXZlbnRpbmcKdmlydXNlcyBmcm9tIGVudGVyaW5nIHlvdXIgc3lzdGVtIChzZWUgY2VsaWJhY3koMSkpLiAgQW55IGRhdGEgcGFzc2VkCnRvIF9jb25kb21fIGJ5IHRoZSBwcm90ZWN0ZWQgcHJvY2VzcyB3aWxsIGJlIGJsb2NrZWQsIGFzIHNwZWNpZmllZCBieQp0aGUgdmFsdWUgb2YgdGhlIC1zIG9wdGlvbiAoc2VlIE9QVElPTlMgYmVsb3cpLiAgX2NvbmRvbV8gaXMga25vd24gdG8KZGVmZW5kIGFnYWluc3QgdGhlIGZvbGxvd2luZyB2aXJ1c2VzIGFuZCBvdGhlciBtYWxpY2lvdXMKYWZmbGljdGlvbnMuLi4KCglvIEFJRFMKCW8gSGVycGVzIFNpbXBsZXggKGdlbml0YWwgdmFyaWV0aWVzKQoJbyBTeXBoaWxpcwoJbyBDcmFicwoJbyBHZW5pdGFsIHdhcnRzCglvIEdvbm9ycmhlYQoJbyBDaGxhbXlkaWEKCW8gTWljaGVsYW5nZWxvCglvIEplcnVzYWxlbQoKCVdoZW4gdXNlZCBhbG9uZSBvciBpbiBjb25qdW5jdGlvbiB3aXRoIHBpbGwoMSksIHNwb25nZSgxKSwKZm9hbSgxKSwgYW5kL29yIHNldGl1ZCgzKSwgX2NvbmRvbV8gYWxzbyBwcmV2ZW50cyB0aGUgY29uY2VwdGlvbiBvZiBhCmNoaWxkIHByb2Nlc3MuICBJZiBpbnZva2VkIGZyb20gd2l0aGluIGEgc3luY2hyb25vdXMgcHJvY2VzcywgX2NvbmRvbV8KaGFzLCBieSBkZWZhdWx0LCBhbiA4MCUgY2hhbmNlIG9mIHByZXZlbnRpbmcgdGhlIGV4dGVybmFsIHByb2Nlc3Nlcwpmcm9tIGJlY29taW5nIHBhcmVudCBwcm9jZXNzZXMgKHNlZSB0aGUgLXMgb3B0aW9uIGJlbG93KS4gIFdoZW4gb3RoZXIKcHJvY2VzcyBjb250cmFjZXB0aXZlcyBhcmUgdXNlZCwgdGhlIGNoYW5jZSBvZiBwcmV2ZW50aW5nIGEgY2hpbGQKcHJvY2VzcyBmcm9tIGJlaW5nIGZvcmtlZCBiZWNvbWVzIG11Y2ggZ3JlYXRlci4gIFNlZSBwaWxsKDEpLApzcG9uZ2UoMSksIGZvYW0oMSksIGFuZCBzZXRpdWQoMykgZm9yIG1vcmUgaW5mb3JtYXRpb24uCglJZiBubyBvcHRpb25zIGFyZSBnaXZlbiwgdGhlIGN1cnJlbnQgdXNlcidzIGxvZ2luIHByb2Nlc3MgKGFzCmRldGVybWluZWQgYnkgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFVTRVIpIGlzIHByb3RlY3RlZCB3aXRoIGEKVHJvamFuIHJvdWdoLWN1dCBsYXRleCBjb25kb20gd2l0aG91dCBhIHJlc2Vydm9pciB0aXAuICBUaGUgb3B0aW9uYWwKJ3Byb2Nlc3NpZCcgYXJndW1lbnQgaXMgYW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSBwcm9jZXNzIHRvIHByb3RlY3QuCglOT1RFOiBfY29uZG9tXyBtYXkgb25seSBiZSB1c2VkIHdpdGggYSBoYXJkIGRpc2suICBfY29uZG9tXwp3aWxsIHRlcm1pbmF0ZSBhYm5vcm1hbGx5IHdpdGggZXhpdCBjb2RlIC0xIGlmIHVzZWQgd2l0aCBhIGZsb3BweQpkaXNrIChzZWUgRElBR05PU1RJQ1MgYmVsb3cpLgoKT1BUSU9OUwogICAgIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBtYXkgYmUgZ2l2ZW4gdG8gX2NvbmRvbV8uLi4KCgktYiBCUkFORAlCUkFORHMgYXJlIGFzIGZvbGxvd3MuLi4KCgkJCXRyb2phbiAoZGVmYXVsdCkKCQkJcmFtc2VzCgkJCXNoZWlrCgkJCWdvbGRjb2luCgkJCWZvdXJleAoKCS1tIE1BVEVSSUFMCVRoZSB2YWxpZCBNQVRFUklBTHMgYXJlLi4uCgoJCQlsYXRleCAoZGVmYXVsdCkKCQkJc2FyYW53cmFwCgkJCW1lbWJyYW5lIC0tIFdBUk5JTkchICBUaGUgbWVtYnJhbmUgb3B0aW9uIGlzIF9ub3RfCgkJCWVuZG9yc2VkIGJ5IHRoZSBTeXN0ZW0gQWRtaW5pc3RyYXRvciBHZW5lcmFsIGFzIGFuIAoJCQllZmZlY3RpdmUgYmFycmllciBhZ2FpbnN0IGNlcnRhaW4gdmlydXNlcy4gIEl0IGlzIAoJCQlzdXBwb3J0ZWQgb25seSBmb3IgdGhlIHNha2Ugb2YgdHJhZGl0aW9uLgoKCS1mIEZMQVZPUglUaGUgZm9sbG93aW5nIEZMQVZPUnMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuLi4KCgkJCXBsYWluIChkZWZhdWx0KQoJCQlhcHBsZQoJCQliYW5hbmEKCQkJY2hlcnJ5CgkJCWNpbm5hbW9uCgkJCWxpY29yaWNlCgkJCW9yYW5nZQoJCQlwZXBwZXJtaW50CgkJCXJhc3BiZXJyeQoJCQlzcGVhcm1pbnQKCQkJc3RyYXdiZXJyeQoKCS1yCQlUb2dnbGUgcmVzZXJ2b2lyIHRpcCAoZGVmYXVsdCBpcyBubyByZXNlcnZvaXIgdGlwKQoKCS1zIFNUUkVOR1RICVNUUkVOR1RIIGlzIGFuIGludGVnZXIgYmV0d2VlbiAyMCBhbmQgMTAwIHNwZWNpZnlpbmcKCQkJdGhlIHJlc2lsaWVuY2Ugb2YgX2NvbmRvbV8gYWdhaW5zdCBkYXRhIHBhc3NlZCB0bwoJCQlfY29uZG9tXyBieSB0aGUgcHJvdGVjdGVkIHByb2Nlc3MuICBVc2luZyBhIGxhcmdlcgoJCQl2YWx1ZSBvZiBTVFJFTkdUSCBpbmNyZWFzZXMgX2NvbmRvbV8ncyBwcm90ZWN0aXZlCgkJCWFiaWxpdGllcywgYnV0IGFsc28gcmVkdWNlcyBpbnRlcnByb2Nlc3MgY29tbXVuaWNhdGlvbi4KCQkJQSBzbWFsbGVyIHZhbHVlIG9mIFNUUkVOR1RIIGluY3JlYXNlcyBpbnRlcnByb2Nlc3MKCQkJY29tbXVuaWNhdGlvbiwgYnV0IGFsc28gaW5jcmVhc2VzIHRoZSBsaWtlbGlob29kIG9mIGEKCQkJc2VjdXJpdHkgYnJlYWNoLiAgQW4gZXh0cmVtZWx5IHZpZ29yb3VzIHByb2Nlc3Mgb3IKCQkJb25lIHBhc3NpbmcgYW4gZW5vcm1vdXMgYW1vdW50IG9mIGRhdGEgdG8gX2NvbmRvbV8gCgkJCXdpbGwgaW5jcmVhc2UgdGhlIGNoYW5jZSBvZiBfY29uZG9tXydzIGZhaWx1cmUuICBUaGUKCQkJZGVmYXVsdCBTVFJFTkdUSCBpcyA4MCUuCgoJLXQgVEVYVFVSRQlWYWxpZCBURVhUVVJFcyBhcmUuLi4KCgkJCXJvdWdoIChkZWZhdWx0KQoJCQlyaWJiZWQKCQkJYnVtcHMKCQkJbHVicmljYXRlZCAocHJvdmlkZXMgc21vb3RoZXIgaW50ZXJhY3Rpb24gYmV0d2VlbiAKCQkJICAgICAgICAgICAgcHJvY2Vzc2VzKQoKCVdBUk5JTkc6IFRoZSB1c2Ugb2YgYW4gZXh0ZXJuYWwgYXBwbGljYXRpb24gdG8gX2NvbmRvbV8gaW4Kb3JkZXIgdG8gcmVkdWNlIGZyaWN0aW9uIGJldHdlZW4gcHJvY2Vzc2VzIGhhcyBiZWVuIHByb3ZlbiBpbgpiZW5jaG1hcmsgdGVzdHMgdG8gZGVjcmVhc2UgX2NvbmRvbV8ncyBzdHJlbmd0aCBmYWN0b3IhICBJZiBleGVjdXRpb24Kc3BlZWQgaXMgaW1wb3J0YW50IHRvIHlvdXIgcHJvY2VzcywgdXNlIHRoZSAnLXQgbHVicmljYXRlZCcgb3B0aW9uLgoKRElBR05PU1RJQ1MKCV9jb25kb21fIHRlcm1pbmF0ZXMgd2l0aCBvbmUgb2YgdGhlIGZvbGxvd2luZyBleGl0IGNvZGVzLi4uCgoJLTEJQW4gYXR0ZW1wdCB3YXMgbWFkZSB0byB1c2UgX2NvbmRvbV8gb24gYSBmbG9wcHkgZGlzay4KCgkgMAlfY29uZG9tXyBleGl0ZWQgc3VjY2Vzc2Z1bGx5IChubyBkYXRhIHdhcyBwYXNzZWQgdG8KCQl0aGUgc3luY2hyb25vdXMgcHJvY2VzcykuCgoJIDEJX2NvbmRvbV8gZmFpbGVkIGFuZCBkYXRhIHdhcyBhbGxvd2VkIHRocm91Z2guICBUaGUKCQlkYW5nZXIgb2YgdHJhbnNtaXNzaW9uIG9mIGFuIFNUViBvciB0aGUgZm9ya2luZyBvZiBhIGNoaWxkIAoJCXByb2Nlc3MgaXMgaW52ZXJzZWx5IHByb3BvcnRpb25hbCB0byB0aGUgbnVtYmVyIG9mIG90aGVyIAoJCXByb3RlY3Rpb25zIGVtcGxveWVkIGFuZCBpcyBkaXJlY3RseSBwcm9wb3J0aW9uYWwgdG8gCgkJdGhlIGFnZXMgb2YgdGhlIHByb2Nlc3NlcyBpbnZvbHZlZC4KCkJVR1MKCV9jb25kb21fIGlzIE5PVCAxMDAlIGVmZmVjdGl2ZSBhdCBwcmV2ZW50aW5nIGEgY2hpbGQgcHJvY2Vzcwpmcm9tIGJlaW5nIGZvcmtlZCBvciBhdCBkZXRlcnJpbmcgdGhlIGludmFzaW9uIG9mIGEgdmlydXMgKGFsdGhvdWdoCnRoZSBTeXN0ZW0gQWRtaW5pc3RyYXRvciBHZW5lcmFsIGhhcyBkZWVtZWQgdGhhdCBfY29uZG9tXyBpcyB0aGUgbW9zdAplZmZlY3RpdmUgbWVhbnMgb2YgcHJldmVudGluZyB0aGUgc3ByZWFkIG9mIHN5c3RlbSB0cmFuc21pdHRlZAp2aXJ1c2VzKS4gIFNlZSBjZWxpYmFjeSgxKSBmb3IgaW5mb3JtYXRpb24gb24gYSAxMDAlIGVmZmVjdGl2ZSBwcm9ncmFtCmZvciBwcmV2ZW50aW5nIHRoZXNlIHByb2JsZW1zLgoJUmVtZW1iZXIuLi4gdGhlIHVzZSBvZiBzZXgoMSkgYW5kIG90aGVyIHJlbGF0ZWQgcm91dGluZXMKc2hvdWxkIG9ubHkgb2NjdXIgYmV0d2VlbiBtYXR1cmUsIGNvbnNlbnRpbmcgcHJvY2Vzc2VzLiAgSWYgeW91IG11c3QKdXNlIHNleCgxKSwgcGxlYXNlIGVtcGxveSBfY29uZG9tXyB0byBwcm90ZWN0IHlvdXIgcHJvY2VzcyBhbmQgeW91cgpzeW5jaHJvbm91cyBwcm9jZXNzLiAgSWYgd2UgYXJlIGFsbCByZXNwb25zaWJsZSwgd2UgY2FuIHN0b3AgdGhlCnNwcmVhZCBvZiBTVFZzLgoKQVVUSE9SUyBhbmQgSElTVE9SWQoJVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgX2NvbmRvbV8gd2FzIHJlbGVhc2VkIGluIFJvbWFuIHRpbWVzCmFuZCB3YXMgb25seSBtYXJnaW5hbGx5IGVmZmVjdGl2ZS4gIFdpdGggdGhlIGFkdmVudCBvZiBtb2Rlcm4KdGVjaG5vbG9neSwgX2NvbmRvbV8gbm93IHN1cHBvcnRzIG1hbnkgbW9yZSBvcHRpb25zIGFuZCBpcyBtdWNoIG1vcmUKZWZmZWN0aXZlLgoJVGhlIGN1cnJlbnQgcmVsZWFzZSBvZiBfY29uZG9tXyB3YXMgd3JpdHRlbiBieSBLZW4gTWF1cGluIGF0CnRoZSBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b24gKG1hdXBpbkBjcy53YXNoaW5ndG9uLmVkdSkgYW5kIHdhcyBsYXN0CnVwZGF0ZWQgb24gMTAvNy85Mi4KClNFRSBBTFNPCgljZWxpYmFjeSgxKSwgc2V4KDEpLCBwaWxsKDEpLCBzcG9uZ2UoMSksIGZvYW0oMSksIGFuZApzZXRpdWQoMykKCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSVEZNIChCYW1idWxrbywgMTguIERleiAxOTk3LCAxNzowMzo1OCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODgyNDU2NjI0IHJnPXdpdHplCn4jISB0aWQ9ODgyNDU2NjI0CkhtbSBzZWxzdGFtIGljaCBiZWtvbW1lIGltbWVyIG51cjoKClRoaXMgcHJvZ3JhbW0gcmVxdWlyZXMgTWljcm9zb2Z0IFdpbmRvd3MuCgpXYXMgbWFjaGUgaWNoIGpldHp0PwpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSVEZNIChSYWZmaSwgMTguIERleiAxOTk3LCAxNzo0NTo0OSk6Cn4jISBybj1CYW1idWxrbyBydD04ODI0NjEwMzggcmc9d2l0emUKfiMhIHRpZD04ODI0NTY2MjQKRWluZmFjaCBlaW4gRmVuc3RlciBvZWZmbmVuIHVuZCBkYW5uCiMgc2V4IC1zIC1tIHNlbGYKbWFjaGVuCgpHcnVzcwpILgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2VpbiBLb21tZW50YXIgKFJvY2h1cywgMTkuIERleiAxOTk3LCAxNDo0MDo1Mik6CkZyb206ICJUaG9tYXMgTm9tZWxhbmQgTG92bGllIiA8dGxAb21uaXRyZWUubm8+ClN1YmplY3Q6Cmh0dHA6Ly9zdW5zaXRlLnVuYy5lZHUvcHViL0xpbnV4L2FwcHMvc291bmQvcGxheWVycy9zaWRwbGF5LTEuMjMuMS1zcmMudGFyLmd6Ck5ld3Nncm91cHM6IGNvbXAuZW11bGF0b3JzLmNibQpEYXRlOiBGcmksIDE5IERlYyAxOTk3IDEyOjQzOjI3ICswMTAwCgpUaGVyZSBpcyBhIGZpbGUgY2FsbGVkCmh0dHA6Ly9zdW5zaXRlLnVuYy5lZHUvcHViL0xpbnV4L2FwcHMvc291bmQvcGxheWVycy9zaWRwbGF5LTEuMjMuMS1zcmMudGFyLmd6CkkgZG93bmxvYWRlZCBpdCBidXQgY291bGQgbm90IHVucGFjayBpdCAoSW0gcnVubmluZyBXaW5OVCksIHNvIHdvdWxkIHNvbWVvbmUKaGVyZSBiZSBzbyBraW5kIHRvIGRvd25sb2FkIGl0LCB1bnBhY2sgaXQgcGFjayBpdCB3aXRoIFpJUCBvciBBUkogYW5kIHNlbmQKaXQgdG8gdGxAb21uaXRyZWUubm8uCgpUaGFua3MgaW4gYWR2YW5jZQpUaG9tYXMgTG92bGllCnRsQG9tbml0cmVlLm5vCmh0dHA6Ly93d3cub21uaXRyZWUubm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGxpbW1lciBhbHMgZGllIEJlZGllbnVuZ3NhbmxlaXR1bmcga29yZWFuaXNjaGVyIEt1ZWhsc2NocmFlbmtlLi4uICA+O29EIChEdWRlbiwgMjEuIERleiAxOTk3LCAxNjowNDoyNyk6ClRoZSBQSy1NdWQgaXMgYSBHZXJtYW4tbGFuZ3VhZ2UgYmFzZWQgTXVkIGluIE1pdHR3ZWlkYS4gSW4gdGhpcwogICAgICAgICAgICAgICBNdWQgdGhlIHBsYXllciBvcyBhbGxvd2VkIHRvIGZpZ2h0IGFnYWluc3QgTlBDJ3MgYW5kIG90aGVyCnBsYXllcnMuIFRvCiAgICAgICAgICAgICAgIGRvIHRoaXMgdGhlIHBsYXllciBjYW4gZW50ZXIgYSBUZWFtIG9yIGJ1aWxkIGEgQ2xhbiAoQ2xhbiBpcwp1bmRlcgogICAgICAgICAgICAgICBjb25zdHJ1Y3Rpb24pLiBUaGUgTXVkIGlzIGJhc2VkIG9uIGFuIGV4cGVyaWVuY2Utc3lzdGVtLiBUaGUKcGxheWVyCiAgICAgICAgICAgICAgIGNhbiBidXkgbGV2ZWwgYW5kIGV4cGVyaWVjZSB3aXJoIGV4cGVyaWVuY2UtcG9pbnRzLiBJbiB0aGUKUEstTXVkIHlvdQogICAgICAgICAgICAgICBjYW4gY2hvb3NlIGJldHdlZW4gYSBsb3RzIG9mIHJhc2NlcyAoZHdhcmYsIGRhcmtkd2FyZiwgZWxmLApkYXJrZWxmLAogICAgICAgICAgICAgICB1bmRlYWQsIGZlbGluZSwgc2hhdHJhLCBnaWFudCBhbmQgbG90cyBtb3JlKSBUaGUgcmFjZXMKZGlmZmVyZW5jZSBiZXR3ZWVuCiAgICAgICAgICAgICAgIHNraWxscyBhbmQgYXR0cmlidXRlcyB3aWNoIGFyZSBiYXNlZCBvbiBhIGxvdCBvZiBza2lsbHMKKHN3b3JkdGhyb3dpbmcsCiAgICAgICAgICAgICAgIGF4ZWNob3BwaW5nLCBtYWdpY2RlZmVuY2UgYW5kIG1vcmUpIEluIHRoZSBQSy1NdWQgdGhlIHBsYXllcgpjYW4KICAgICAgICAgICAgICAgY2hvb3NlIGJldHdlZW4gbXVjaCBndWlsZHMuIEluIHRoaXMgdGltZSBoZSBjYW4gZW50ZXIgdGhlCmVsZW1lbnRlLAogICAgICAgICAgICAgICBwYWxhZGluZSwgY2hhb3NuYXJyZW4sIHRoaWV2ZXMsIHRoYXVtYXR1cmdlbiwgcnVuZW5hbmJldGVyLApzYXR1ayBndWlsZC4KICAgICAgICAgICAgICAgVGhlIG1haW4gaW50ZW50aW9uIG9mIHRoZSBtdWQgaXMgZmlnaHRpbmcgdGhyb3VnaCB0aGUgd29ybGQsCmJ1dCB0aGUgbGFzdAogICAgICAgICAgICAgICB0aW1lIHdlIHdvcmtlZCBoYXJ0IHRvIGdldCBtb3JlIGJhY2tncm91bmQgYW5kIGZhbnRhc3kgZm9yIHRoZQpwbGF5ZXIuCiAgICAgICAgICAgICAgIE5ldyBhcmVhcyB3ZXJlIHBpY2tlZCB3aXRoIG1vcmUgZGV0YWlscyB1bmQgaW4gdGhlIGxhc3QgdGltZQp3ZSBnZXQKICAgICAgICAgICAgICAgc29tZSBuaWNlIHF1ZXN0cywgd2ljaCB5b3UgY2FuIHVzZSB0byBsZWFybiBzb21ldGhpbmcgYWJvdXQKb3VyIG11ZC4gSWYKICAgICAgICAgICAgICAgeW91IHdhbnQgdG8gY2hlY2sgb3VyIG11ZCB5b3UgZG9udCBtdXN0IGJlIGFuZ3J5IHRvIGdldCBraWxsZWQKYWZ0ZXIgMgogICAgICAgICAgICAgICBtaW51dGVzLiBMb3cgcGxheWVycyBhcmUgc2VjdXJlZCBmcm9tIHRoZSBiaWcuIEJ1dCAuLi4gaWYgeW91CnBsYXkgYQogICAgICAgICAgICAgICBsb25nZXIgdGltZSwgeW91IHdpbGwgZ2V0IGZyZWUgYXMgYSBiaXJkIC4uIGFuZCBzb21lIG90aGVyCnBsYXllcnMgaGF2ZSBhCiAgICAgICAgICAgICAgIGdvb2QgbG9uZ2Jvdy1za2lsbCA7KSBXZSBob3BlLCB5b3UgZW5qb3kgb3VyIG11ZCBhbmQgd2Ugd2lsbApzZWUgeW91LgoKTmFjaCBldHdhIGRlbSAzMC4gRmVobGVyIGhhYiBpY2ggbmljaHQgbWVociB3ZWl0ZXJnZXphZWhsdCwgd2VpbCBtaWNoIGRlcgpMYWNoa3JhbXBmCmRhaGluZ2VyYWZmdCBoYXQuCkF1Y2ggZGllIGRldXRzY2hlIFZhcmlhbnRlIGlzdCBsZXNlbnN3ZXJ0IC0gbWl0IHVlYmVyIDIwIEZlaGxlcm4gZWluIGtsYXJlcgpGYWxsIGZ1ZXIgCkRyIEFjcmltb24uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFudGEgbWFsIHdpZWRlciAoRnJldW5kLCAyMi4gRGV6IDE5OTcsIDAwOjUzOjA3KToKVHJlZmZlbiBzaWNoIHp3ZWkgTWFudGFmYWhyZXIuCkE6IEljaCBoYWJlIGVpbmUgbmV1ZSBBbmxhZ2UgaW0gQXV0by4KQi4gQWNoamEsIHZvbiB3ZWxjaGVtIEhlcnN0ZWxsZXI/CkE6IFZvbiBLZW53b29kLgpCOiBJY2ggZGFjaHRlLCBkaWUgbWFjaGVuIG51ciBIZWNrc2NoZWliZW4hCgpJY2ggYnJhdWNodGUgc28gNSBTZWt1bmRlbi4uLi4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBSVEZNIChCYW1idWxrbywgMjIuIERleiAxOTk3LCAwNDoxNjo0MCk6Cn4jISBybj1SYWZmaSBydD04ODI0NjM1NDkgcmc9d2l0emUKfiMhIHRpZD04ODI0NTY2MjQKQ29vbCBoYXQgZ2VrbGFwcHQsIG51ciB3aWUgYmVrb21tZSBpY2ggZGFzIHdlaXNzZSB6ZXVncyB3ZWc/CgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2FzIHp1IHdlaWhuYWNodGVuIChCYWJvb24sIDIyLiBEZXogMTk5NywgMDg6MzE6NTApOgpEZXIgMzAgTWV0ZXIgaG9oZSB1bmQgbWl0IDIyMDAgR2x1ZWhiaXJuZW4gYmVzdHVlY2t0ZSBXZWlobmFjaHRzYmF1bSBkZXMKRnVlcnN0ZW50dW1zIE1vbmFjbyBpc3QgbmFjaCBlaW5lbSBLdXJ6c2NobHVzcyBpbiBGbGFtbWVuIGF1ZmdlZ2FuZ2VuLgpEZXIgU2NoYWRlbiBiZXRyYWVndCAzMDAwMDAgTWFyay4gRGVuIGF1cyA0NTAga2xlaW5lcmVuIFRhbm5lbgp6dXNhbW1lbmdlc2V0enRlbiBCYXVtIGhhdHRlIE1vbmFjbyBkZW4gZ3JvZXNzdGVuIApXZWlobmFjaHRzYmF1bSBFdXJvcGFzIGdlbmFubnQuCgpCYWJvb24oKSAodWViZXIgZGVuIGdyb2Vzc3RlbiBBc2NoZWhhdWZlbiBFdXJvcGFzIGxhY2hlbmQpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaGxpbW1lciBhbHMgZGllIEJlZGllbnVuZ3NhbmxlaXR1bmcga29yZWFuaXNjaGVyIEt1ZWhsc2NocmFlbmtlLi4uICA+O29EIChGeXQsIDIzLiBEZXogMTk5NywgMTE6NDg6MDEpOgp+IyEgcm49RHVkZW4gcnQ9ODgyNzE2NjY3IHJnPXdpdHplCn4jISB0aWQ9ODgyNzE2NjY3CgpXZXIga2FlbXBmZW4ga2FubiBtdXNzIG5pY2h0IHNjaHJlaWJlbiBrb2VubmVuLi4uCgpGeXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPbGVvbGVvbGVvbGVlZWUuLi4gKEdyaW1tYm9ybiwgMjcuIERleiAxOTk3LCAxNDowOTo1OSk6Ck1hbiBzYWd0IGphIGltIFBvdHQsIG1hbiBnaW5nZSAiYXVmIFNjaGFsa2UiIGZ1ZXIgZWluIEZ1c3NiYWxsc3BpZWwuIERhcwpTdGFkaW9uIGhhdCBuYWVtbGljaCBrZWluZW4gTmFtZW4uIERhcyBzb2xsdGUgZ2VhZW5kZXJ0IHdlcmRlbiwgdW5kIGltClplaXRhbHRlciBkZXIgRW1hbnppcGF0aW9uIHNvbGx0ZSBkYXMgU3RhZGlvbiBuYWNoIGVpbmVyIEZyYXUgYmVuYW5udCB3ZXJkZW4uCkVzIHd1cmRlIGVpbiBXZXR0YmV3ZXJiIGF1c2dlc2NocmllYmVuIHVuZCBkYXMgU3RhZGlvbiBoZWlzc3QgamV0enQgKGtlaW5lCkdld2FlaHIgZnVlciBkaWUgU2NocmVpYndlaXNlKToKIkVybnN0IEt1em9ycmEgc2VpbmUgRnJhdSBpaHIgU3RhZGlvbiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE9sZW9sZW9sZW9sZWVlZS4uLiAoU2lsdmFuYSwgMjcuIERleiAxOTk3LCAyMzo0NzozMSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODgzMjI4MTk5IHJnPXdpdHplCn4jISB0aWQ9ODgzMjI4MTk5CkFjaC4uLiB1bmQgaGVpc3N0IGRhcyBkYW5uIGpldHp0LCBtYW4gJ2dlaHQgYXVmIEZyYXUgS3V6em9yYSc/IAoKICAgZnJhZ3Qgc2ljaCBTaWx2YW5hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcnp0d2l0eiAoR3JpbW1ib3JuLCAyOC4gRGV6IDE5OTcsIDIyOjEzOjM4KToKIkhlcnIgRG9rdG9yLCBpY2ggYmVrb21tZSBtZWluZSBWb3JoYXV0IG5pY2h0IHp1cnVlY2shIgoiU293YXMgdmVybGVpaHQgbWFuIGFiZXIgYXVjaCBuaWNodC4uLiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFyenR3aXR6IChZZW5kaSwgMjkuIERleiAxOTk3LCAxNDozMTozNik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODgzMzQzNjE4IHJnPXdpdHplCn4jISB0aWQ9ODgzMzQzNjE4CiphcmdsKgoKT0ssIHdpciBrb2VubmVuIGF1Y2ggYW5kZXJzOgoKIkhlcnIgRG9rdG9yLCBtZWluIFBlc3NhciBpc3QgaW0gQXJzY2ghIgoiSmEsIGRhIGdlaG9lcnQgZXMgamEgYXVjaCBuaWNodCBoaW4hIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLmRhcyBnZXJ1ZWNodCBkZXMgamFocmVzIChab3JybywgMzEuIERleiAxOTk3LCAxNDoyMzozMSk6Ck1laG1ldCBTY2hvbGwgd2lsbCBkZW4gRkMgQmF5ZXJuIHZlcmxhc3Nlbi4gQWxzIE1hbmFnZXIgVWxpIEhvZW5lc3MgYmVpIFNjaG9sbAplaW4gU3BhbmlzY2gtV29lcnRlcmJ1Y2ggZW50ZGVja3QsIGZyYWd0IGVyIGJvcmd0OiAiTWVobWV0LCBnZWhzdCBEdSB6dSBSZWFsCk1hZHJpZCA/IgoiTmVpbiwgTWFuYWdlciwgaXN0IG51ciBmdWVyIGRlbiBVcmxhdWIuIgpUYWdzIGRhcmF1ZiBzaWVodCBIb2VuZXNzIFNjaG9sbCBpbiBlaW5lbSBuZXVlbiBGZXJyYXJpLiBFciBrb21iaW5pZXJ0OgoiTWVobWV0IGdlaHN0IGR1IHp1IEp1dmVudHVzIFR1cmluPyIgLSAiTmVpbiwgTWFuYWdlciwga2VpbmUgU29yZ2UuIgpBbSBuYWVjaHN0ZW4gU2Ftc3RhZyBtZWxkZXQgc2ljaCBTY2hvbGwgdmVybGV0enQgYWIgLSBmdWVyIGFjaHQgV29jaGVuLgpIb2VuZXNzOiAiU28sIE1laG1ldCAhIER1IGdlaHN0IGFsc28gbmFjaCBEb3J0bXVuZCEiCgpab3JybyBncmluc3QgaW1tZXIgbm9jaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW0gRmlsei4uLiAoQW5hdG9sLCAgNy4gSmFuIDE5OTgsIDAwOjI3OjA0KToKV2FyZ29uIHZlcnplaHJ0IGVpbmUgKHZvbiBpaG0gbmljaHQgYmVzdGVsbHRlKSBLYXJ0b2ZmZWxlY2tlLgpXYXJnb24gc2FndDogU2VpdCBlcyBQb3RhdG8gU2tpbnMgYXVmIGRlbiBTdGFtbXRpc2NoZW4gZ2lidCwgZ2V3aW5udCBkaWUKV2FyZ29uIHNhZ3Q6IFJlZGVuc2FydCAiamVtYW5kZW4gdW0gZGllIEVja2UgYnJpbmdlbiIgYW4gbmV1ZXIgQmVkZXV0dW5nLgoKClNpZWggYW4sIGVpbiBXZWlzZXIgOykKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW0gRmlseiBJSSAob3V0IG9mIGNvbnRleHQpIChBbmF0b2wsICA3LiBKYW4gMTk5OCwgMDA6Mjc6MzYpOgoKQ2F0d2VhemxlIHNhZ3Q6IEljaCB3aWxsIFNleCEKCkFuYXRvbCwga29ubnRlIGVzIGZhc3QgbmljaHQgZ2xhdWJlbiA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW0gRmlseiBJSUkgKEFuYXRvbCwgIDcuIEphbiAxOTk4LCAwMDozMDowNyk6Ck1hbiBkaXNrdXRpZXJ0IHVlYmVyIG5ldWUgQnVjaHN0YWJlbiAtIGRhcyAiYSIgZnVlciAia2xlaW5lcyBBcnNjaGxvY2giLCAKZGFzICJBIiBmdWVyICoqKioqKiAoTmFtZSBpc3QgZGVtIEF1dG9yIGJla2FubnQpLCBkYXMgInciIGZ1ZXIgd2Vpc2UgU3BpZWxlci4KCldhcmdvbiBzYWd0OiBIbSwgd2lyIGJyYXVjaGVuIG5vY2ggZGFzIGtsZWluZSBlIGZ1ZXIgQWxpbmUuLi4gRW1hbnplLgpSb2NodXMgZ3JpbnN0LgpDYXR3ZWF6bGUgZ2lidCBlaW4gYWxiZXJuZXMgS2ljaGVybiB2b24gc2ljaC4KQ2F0d2VhemxlIG5pY2t0IFdhcmdvbiB6dS4KQ2F0d2VhemxlIGZyYWd0IFRlbGthOiBEdSBiaXN0IGRvY2ggc2Nob24gU2VoZXJpbiwgb2Rlcj8KClVpLCB3ZW5uIEJsaWNrZSBoYWV0dGVuIHRvZXRlbiBrb2VubmVuLi4uLiA6KQpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaGVzb3JnZW4uLi4gKEdyaW1tYm9ybiwgIDcuIEphbiAxOTk4LCAyMTo1MDowMSk6CkF1ZiBkZXIgSG9jaHplaXRzZmVpZXIgd2VuZGV0IHNpY2ggZWluIEdhc3QgYW4gZGVuIEJyYWV1dGlnYW06ICJIYWJlbiBTaWUKTmFja3RiaWxkZXIgaWhyZXIgRnJhdT8iIERlciBlbXBvZXJ0OiAiTmVpbiwgbmF0dWVybGljaCBuaWNodCEiICJXb2xsZW4gU2llCndlbGNoZT8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFsbGVyIEFuZmFuZy4uLiAoQW5hdG9sLCAgNy4gSmFuIDE5OTgsIDIxOjUyOjA0KToKCkhvY2h6ZWl0c25hY2h0LgogICAgICAgICAgICBgYEVyc3RlciEnJwoKS3VyeiB1bmQgc2NobWVyemxvcy4KQW5hdG9sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVwcmltaWVyZW5kLi4uIChHcmltbWJvcm4sICA3LiBKYW4gMTk5OCwgMjE6NTU6MTIpOgpNaXQgd2VsY2hlbSBTYXR6IGthbm4gbWFuIGVpbmVuIE1hbm4gYW0gZ3J1ZW5kbGljaHN0ZW4gZGVwcmltaWVyZW4/CiJIdWNoLCBpc3QgZGVyIG5pZWRsaWNoISIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlcHJpbWllcmVuZC4uLiAoQW5hdG9sLCAgNy4gSmFuIDE5OTgsIDIxOjU2OjA0KToKfiMhIHJuPUdyaW1tYm9ybiBydD04ODQyMDY1MTIgcmc9d2l0emUKfiMhIHRpZD04ODQyMDY1MTIKV2FydGUgYWIsIGJpcyBzaWUgbWl0IENsZWFyYXNpbCBhbmtvbW10Li4uCgpBbmF0b2wKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaGVrcmFjaCAoR3JpbW1ib3JuLCAgNy4gSmFuIDE5OTgsIDIxOjU5OjIyKToKTWFubiBuYWNoIGRlciBTY2hlaWR1bmcgdWViZXIgZGFzIFZlcmhhbHRlbiBzZWluZXIgRnJhdToKIlVuZCBqZXR6dCBiZWhhdXB0ZXQgc2llLCBpY2ggc2VpIGVpbiBzY2hsZWNodGVyIExpZWJoYWJlci4gRGFiZWkga2FubiBzaWUgZGFzCnZvbiBkZW4gZHJlaXNzaWcgU2VrdW5kZW4gZ2FyIG5pY2h0IGJldXJ0ZWlsZW4uIgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYXBweSBCaXJ0aGRheS4uLiAoQW5hdG9sLCAgNy4gSmFuIDE5OTgsIDIyOjMzOjI0KToKIkxpZWJlcywgaWNoIHNjaGVua2UgRGlyIGVpbmUgU3R1bmRlIFNleCBuYWNoIERlaW5lbiBXdWVuc2NoZW4KenVtIEdlYnVydHN0YWchIEFsbGVzIEd1dGUhIgogICAgICJEYW5rZSwgRHUgYmlzdCBlaW4gU2NoYXR6ISEhIQogICAgIFRzY2hhdSBMaWVibGluZywgaWNoIGJpbiBpbiBlaW5lciBTdHVuZGUgd2llZGVyIGRhISIKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBlcnN0ZSBNb2JpbHRlbGVmb24gKFNseWZveCwgIDcuIEphbiAxOTk4LCAyMjo0MTo1Nyk6CkRhcyBlcnN0ZSBNb2JpbHRlbGVmb24gZ2FiIGVzIGJlcmVpdHMgMTk3OC4gRXMgd3VyZGUgdm9uIE9zdGZyaWVzZW4KZW50d2lja2VsdCB1bmQga29zdGV0ZSAzMDE5OSBETS4gRGF2b24gMTk5IERNIGZ1ZXIncyBUZWxlZm9uIHVuZCAzMDAwMApETSBmdWVyJ3MgS2FiZWwuCgogICBTbHlmb3gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXByaW1pZXJlbmQuLi4gKEhhciwgIDguIEphbiAxOTk4LCAwOTozNTo0Mik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODg0MjA2NTEyIHJnPXdpdHplCn4jISB0aWQ9ODg0MjA2NTEyCkVzIGdlaHQgbm9jaCBncmF1c2FtZXIuLi4KU2llIHp1IGlobTogIkFjaCwgRHUgd2Fyc3Qgc2Nob24gZHJpbj8iCgpoYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVwcmltaWVyZW5kLi4uIChHbm9tZSwgIDguIEphbiAxOTk4LCAwOTo0MzozMCk6Cn4jISBybj1IYXIgcnQ9ODg0MjQ4NTQyIHJnPXdpdHplCn4jISB0aWQ9ODg0MjA2NTEyCmhtLCBkYSBoYWIgaWNoIGF1Y2ggbm9jaCBlaW5lbjoKZGVyIHN0dWVybWlzY2hlIGxpZWJoYWJlcjogIk9oLCBub2NoIGp1bmdmcmF1PyIKc2llOiAiTmVpbiwgbm9jaCBzdHJ1bXBmaG9zZS4iCgpnbk9tZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lzc2VuIGlzdCBNYWNodC4uLiAoR3JpbW1ib3JuLCAgOC4gSmFuIDE5OTgsIDEwOjU2OjQzKToKSmVkZXIgendlaXRlIE1hbm4gZ2lidCBhbiwgc2Nob24gZWlubWFsIGVpbmVuIE9yZ2FzbXVzIHZvcmdldGFldXNjaHQgenUgaGFiZW4uCkplZGUgendlaXRlIEZyYXUgc2FndDogRWluZW4gV0FTPz8/CgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaGVrcmFjaCAoRmxpbngsICA4LiBKYW4gMTk5OCwgMTI6Mjk6NTMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg4NDIwNjc2MiByZz13aXR6ZQp+IyEgdGlkPTg4NDIwNjc2MgoKb2RlciA6ICJXaWUgbGFuZ2UgaGFzdCBkdSBnZXN0ZXJuIE5hY2h0IG5vY2ggZ2VtYWNodCA/ISIKCkZsaW54LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFaGVrcmFjaCAoU2lsdmFuYSwgIDguIEphbiAxOTk4LCAxMjozMDo0MCk6Cn4jISBybj1GbGlueCBydD04ODQyNTg5OTMgcmc9d2l0emUKfiMhIHRpZD04ODQyMDY3NjIKQXVjaCBzY2hvZW46ICdGYW5nIHNjaG9uIG1hbCBhbiwgRHUgd2Vpc3N0IGphLCB3byBhbGxlcyBpc3QuLi4nCgogIFNpbHZhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldvcnR3aXR6IChHcmltbWJvcm4sICA4LiBKYW4gMTk5OCwgMTQ6MjI6NTYpOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBXb2xsamFja2UsIGVpbmVtIEhhc2VuIHVuZCBlaW5lbQoxOGphZWhyaWdlbiBNYWVkY2hlbj8KRGllIFdvbGxqYWNrZSB3aXJkIGdlc3RyaWNrdC4KRGVyIEhhc2Ugd2lyZCBnZXNwaWNrdC4KRGFzIDE4amFlaHJpZ2UgTWFlZGNoZW4gd2lyZCAxOS4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdCBrYW5uIG5pY2h0cyBmdWVyIGRpZSBzY2htdXR6aWdlbiBHZWRhbmtlbiBhbmRlcmVyLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphbHQgYWJlciBndXQgKEJsb29keWhhcnJ5LCAgOC4gSmFuIDE5OTgsIDE0OjUyOjIxKToKCiJNdXR0aSwgTXV0dGkuIEd1Z2cgbWFsLCBkaWUgSnVuZ3MhIgoKIkxhc3Mgc2llIGRvY2guLiIKCiJIYWIgaWNoIGphLiBBYmVyIHNpZSB3b2xsZW4gc2Nob24gd2llZGVyLiIKCgpiaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW5lci4uLiAoQW5hY3Jpb24sICA4LiBKYW4gMTk5OCwgMTY6MTU6MTkpOgoKV2FydW0gdGFldXNjaGVuIEZyYXVlbiBlaW5lbiBPcmdhc211cyB2b3I/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCldlaWwgc2llIGltbWVyIG5vY2ggZ2xhdWJlbiwgZGFzIGVzIGRpZSBNYWVubmVyIGludGVyZXNzaWVydCA6KQoKQW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1ZiBkZXIgQmF1c3RlbGxlIChKaW1kaWdyaXosICA4LiBKYW4gMTk5OCwgMTk6Mjk6NTMpOgpNb2luLAoKQXVmIGRlciBCYXVzdGVsbGUgYXJiZWl0ZW4gZWluIEl0YWxpZW5lciwgZWluIFNwYW5pZXIgdW5kCmVpbiAqcmhlaGVtKiBzYWdlbiB3aXIgbWFsIEJheWVyIHp1c2FtbWVuLgoKU2llIG1hY2hlbiBpbW1lciBnZW1laW5zYW0gTWl0dGFnc3BhdXNlLgpFaW5lcyBUYWdlcyBpbiBkZXIgTWl0dGFnc3BhdXNlLCBvZWZmbmV0IGRlciBJdGFsaWVuZXIKc2VpbiBCcm90emVpdGJldXRlbCwgc2NoYXV0IHJlaW4gdW5kIGphbW1lcnQ6CiBrYWx0ZSBQaXp6YSwgc2Nob24gd2llZGVyIFBpenphLiBNYW1tYSBtaWEsIGltbWVyIGJla29tbWUgaWNoIFBpenphLgogaGFlbmd0ZSBtaXIgenVtIEhhbHNlIHJhdXMgaW1tZXIgUGl6emEuIE5laW4sIG5laW4sIG5laW4sIG1vcmdlbgogbm9jaG1hbCBQaXp6YSB1bmQgaWNoIHNwcmluZ2Ugdm9uIEhvY2hoYXVzLgpEZXIgU3BhbmllciBvZWZmbmV0IHNlaW5lIFR1cHBlcmJveCwgc2NoYXV0IHJlaW4gdW5kIHNldWZ6dDoKIEhvbWJyZSEgUGFlbGxhISBJbW1lciBQYWVsbGEsIHdhcnVtIGltbWVyIGltbW1lciBpbW1lciBpbW1lcgogUGFlbGxhLCBrYW5uIE1hcmlhIG51ciBQYWVsbGEga29jaGVuID8gSWNoIHZlcnN0ZWggZXMgbmljaHQuCiBOZWluLCBtb3JnZW4gd2llZGVyIFBhZWxsYSB1bmQgaWNoIHNwcmluZ2UgYXVjaCB2b24gSG9jaGhhdXMsCiBqYXdvbGwuCkRlciBCYXllciB3aWNrZWx0IHNlaW5lIEJyb3R6ZWl0IGF1cywgc2NoYXV0IHNpZSBhbgp1bmQgZXJrbGFlcnQ6CiBBIExlYmVya2Fzc2VtbWVsLCBzY2hvIHdpZWRhIGEgTGViZXJrYXNzZW1tZWwsIGFuZGF1ZXJuZCAKIGRpZSBkYW1pc2NoZW4gTGViZXJrYXNzZW1tZW4uIE5hLCBtaWEgZ2xhbmd0cywgbm8gb2Ftb2kKIGEgTGViZXJrYXNzZW1tZWwgdW5kIEkgc3RpcnogbWkgb2JpLiBQZmVpbGdyYWQhCgpBbSBuYWVjaHN0ZW4gVGFnIHRyZWZmZW4gc2ljaCB3aWVkZXIgYWxsZSB6dXIgQnJvdHplaXQuCkdlc3Bhbm50IG9lZmZuZXQgZGVyIEl0YWxpZW5lciBzZWluZSBCcm90emVpdCB1bmQgc2NocmVpdDoKIE1hbW1hLCBEaW9zLCBQaXp6YSEgTmVpbiwgaWNoIGVydHJhZ2UgZXMgbmljaHQgbWVociEKIENpYW8sIEZyZXVuZGUuCnVuZCBzdHVlcnp0IHNpY2ggdm9tIEhvY2hoYXVzIChzaWUgQnJvdHplaXRlbG4gbmFlbWxpY2ggaW1tZXIgCiBpbSAxNS4gU3RvY2sgSWhyZXMgSG9jaGhhdXNiYXVzKS4KCkRlciBTcGFuaWVyIGJsaWNrdCBpaG0gdHJhdXJpZyBuYWNoLCB1bmQgb2VmZm5ldCB6aXR0ZXJuZApzZWluZSBUdXBwZXJib3ggdW5kIGJyaWNodCBpbiBUcmFlbmVuIGF1cy4KCkNhcmFtYmEhIFBhZWxsYSEgV2llZGVyIFBhZWxsYS4gU2FudGEgTWFyaWEsIGljaCAKc2FnZSBMZWJ0IHdvaGwgQW1pZ29zLgp1bmQgc3R1ZXJ6dCBzaWNoIGViZW5mYWxscyBoaW50ZXJoZXIuCgpEZXIgQmF5ZXIgd2lja2VsdCBzZWluZSBMZWJlcmthc3NlbW1lbCBhdXMgdW5kCmRla2xhbWllcnQ6CiBJIGhvYnMgZ3d1c3N0LCBzY2hvIHdpZWRhIExlYmVya2FzLCBJIGhvYnMgZ2xlaQogZ3NvZ3QuIEpldHp0IGdsYW5ndHMsIEVuZGUgdm8gZGVyYSBHc2NoaWNodC4gCiBJIG1vY2ggYW4gQWJnYW5nIQpVbmQgc3R1ZXJ6dCBzaWNoIGViZW5mYWxscyBoaW50ZXJoZXIuCgpLZWluZXIgVWViZXJsZWJ0IGRlbiBTdHVyeiB1bmQgYmFsZCBkYXJhdWYKd2VyZGVuIGFsbGUgZHJlaSBnZW1laW5zYW0gYmVncmFiZW4uCk5hY2ggZGVtIEJlZ3JhZWJuaXMgdW50ZXJoYWx0ZW4gc2ljaCBkaWUgZHJlaQpIaW50ZXJibGllYm5lbmVuIEVoZWZyYXVlbiB1ZWJlciBkYXMgVW5nbHVlY2suCkRpZSBGcmF1IGRlcyBJdGFsaWVuZXJzIGVyemFlaGx0OgogTmllIG5pZSBoYXQgZXIgc2ljaCBiZXNjaHdlcnQsIGltbWVyIG1hY2hlIGljaCBQaXp6YSB1bmQKIGltbWVyIGhhdCBlciBnZWdlc3NlbiwgbmllIGVpbmVuIFRvbmUgZ2VzYWd0LiBJY2gga2FubiBlcyAKIG5pY2h0IHZlcnN0ZWhlbi4KRGFyYXVmIEFudHdvcnRldCBkaWUgRnJhdSBkZXMgU3BhbmllcnM6CiBVbmQgbWVpbiBNYW5uLCBoYXQgenUgSGF1c2UgaW1tZXIgZ2VybmUgUGFlbGxhCiBnZW1vY2h0LCBpbW1lciBhbGxlcyBhdWZnZWdlc3NlbiB1bmQgbm9jaCBleHRyYQogUG9ydGlvbiBnZW5vbW1lbiwgaWNoIGthbm4gbml4IG5peCBuaXggdmVyc3RlaG4uICpoZXVsKgpTY2hsaWVzc2xpY2ggQW50d29ydGV0IGRpZSBGcmF1IGRlcyBCYXllcm46CiBVbmQgSSB3b2FzIGVyc3QgcmVjaHQgbmVkIHdvcyBpbiBtZWkKIFNjaG5laXR6ZXJsIGdmb2FobiBpcyAqc2NobHVjaHoqLCBlciBob3QgZG9jaAogc2VpbmUgU2VtbWVsbiBzaWNoIG9pd2VpIHNlaWJhIGdzY2htaWVydCEKCi4uClNvIHdhciBkYXMsIGRhbWFscywgamF3b2xsamEsIHZpZWxsZWljaHQgc2Nob24gYWVsdGVyCmFiZXIgbHVzdGlnLiBXZXIgbmljaHQgbGFjaHQgd2lyZCBlcnNjaG9zc2VuLiAKCkpkRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1ZiBkZXIgQmF1c3RlbGxlIChHcmFsa29yLCAgOS4gSmFuIDE5OTgsIDExOjM0OjA4KToKfiMhIHJuPUppbWRpZ3JpeiBydD04ODQyODQxOTMgcmc9d2l0emUKfiMhIHRpZD04ODQyODQxOTMKaWNoIGxhY2hlIG5pY2h0LCBkZW5uIGljaCBtdXNzIHNhZ2VuLCB1ZWJlciBtaW5kZXJiZW1pdHRlbHRlIFZvbGtzc3RhZW1tZSwgZGllCmRlcyBHRyBhYmdlbGVobnQgaGFiZW4sIHNvbGx0ZSBtYW4gTklFTUFMUyBsYWNoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEF1ZiBkZXIgQmF1c3RlbGxlIChDYXJhZGhyYXMsICA5LiBKYW4gMTk5OCwgMTE6NTQ6MzIpOgp+IyEgcm49R3JhbGtvciBydD04ODQzNDIwNDggcmc9d2l0emUKfiMhIHRpZD04ODQyODQxOTMKSWNoIHZlcnN0ZWgnIGRlbiBXaXR6IG5pY2h0LCBtYW4gc2NobWllcnQgc2ljaCBkb2NoIGtlaW5lIFNlbW1lbG4KbWl0IExlYmVya2FlcycsIGFsc28gbWVpbiBMZWJlcmthZXMgaXMgbmVkIHN0cmVpY2hmYWVoaWcuCgogICAgICBCYXllcm5mcm9zY2ggQ2FyYWRocmFzICAgKnF1YWsgdmVyd2lycnQqCgpPSjogS29tbXQgZWluIEVsZWZhbnQgaW4gZGllIEhlcnJlbnNhdW5hLCBzaWVodCBzaWNoIHVtIHVuZCBmYWVuZ3QKICAgYW4genUgbGFjaGVuLgogICAiV2llZWVlZWVlZWVlPyBVbmQgREFNSVQgd29sbHQgaWhyIGVzc2VuPz8/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdm9sbCBkaWUgbWFpbCAoQ2F0d2VhemxlLCAgOS4gSmFuIDE5OTgsIDE4OjEzOjUwKToKQmVyZWl0cyB2b3IgV2VpaG5hY2h0ZW4gaGF0IHVuc2VyIFVuaXZlcnNpdGFldHNSZWNoZW56ZW50cnVtIGFsbGUgCkJlbnV0emVyIGdlYmV0ZW4sIHVlYmVyIGRpZSBXZWlobmFjaHRzdGFnZSBhbGxlIE1haWwgYXVzIGRlbSBTcG9vbC0KQmVyZWljaCBhYnp1aG9sZW4sIGRhIGRpZXNlciBzb25zdCBpbiBkZW4gd2FydHVuZ3MnYXJtZW4nIEZlcmllbiB2b2xsLQpsYXVmZW4ga29lbm50ZS4gSGllciBlaW4gQXVzenVnIGRlciBkaWVzamFlaHJpZ2VuIEhvdE5ld3MgOy0pCgotLS0tLQowNS4wMS46IEJpdHRlIGVudGZlcm5lbiBTaWUgZ2VsZXNlbmUgTWFpbCBhdXMgZGVtIHplbnRyYWxlbiBNYWlsYmVyZWljaCEgCiAgICAgICAgRGllc2VyIGRyb2h0IHNvbnN0IHZvbGx6dWxhdWZlbi4KLS0tLS0KMDYuMDEuOiBBdXMgYWt0dWVsbGVtIEFubGE6IFdlciBzZWluZSBFLU1haWwgbmljaHQgdm9uIGRlbiB6ZW50cmFsZW4KICAgICAgICBTZXJ2ZXJuLCBzb25kZXJuIHZvbiBhbmRlcmVuIFN5c3RlbWVuIChOV1osIE1hdGgsIFdpV2ksIFBzeSAuLi4pCiAgICAgICAgYWJob2xlbiBtY2h0ZSwgc29sbHRlIGVpbmUgYXV0b21hdGlzY2hlIEUtTWFpbC1XZWl0ZXJsZWl0dW5nCiAgICAgICAgZG9ydGhpbiBlaW5yaWNodGVuOiA8aHR0cHM6Ly91c2VyLnVuaS1tdWVuc3Rlci5kZS9leGVjL2ZvcndhcmQ+Ci0tLS0tCjA4LjAxLjogRGllIC90bXAtVmVyemVpY2huaXNzZSB1bnRlciBVbml4IGRyZmVuIG51ciB6dW0ga3VyemZyaXN0aWdlbgogICAgICAgIFp3aXNjaGVubGFnZXJuIHZvbiBEYXRlaWVuIGdlbnV0enQgd2VyZGVuISBGciBsbmdlciBiZW50aWd0ZQogICAgICAgIERhdGVpZW4gc2luZCBIb21lZGlyZWN0b3J5IG9kZXIgQmFuZHJvYm90ZXJhcmNoaXYgenUgdmVyd2VuZGVuLgogICAgICAgIEZhbGxzIFNpZSBtaXQgSWhyZXIgUGxhdHRlbnBsYXR6cXVvdGUgbmljaHQgYXVza29tbWVuLCB3ZW5kZW4KICAgICAgICBTaWUgc2ljaCB1bnRlciBBbmdhYmUgZGVzIEJlZGFyZnMgYW4gWy4uXQotLS0tLQowOS4wMS46IEVpbmUgRS1NYWlsIG1pdCBkZXIgQmVoYXVwdHVuZywgZGEgcHJvIFdvY2hlIG5pY2h0IG1laHIgYWxzIDIKICAgICAgICBNYWlscyBwcm8gQmVudXR6ZXIgYWJnZXNjaGlja3Qgd2VyZGVuIGRyZnRlbiwgdW5kIGRlciBBbmRyb2h1bmcgCiAgICAgICAgdm9uIEtvbnNlcXVlbnplbiBiZWkgWnV3aWRlcmhhbmRsdW5nIGlzdCBhbiBlaW5lIHVuYmVrYW5udGUKICAgICAgICBaYWhsIHZvbiBQZXJzb25lbiB1bnRlciBNaWJyYXVjaCBkZXMgQWJzZW5kZXJzIAogICAgICAgIGFkbXVzZXJAdW5pLW11ZW5zdGVyLmRlIGFiZ2VzY2hpY2t0IHdvcmRlbiB1bmQgaXN0IHZvbSBVUlogCiAgICAgICAgdW5kIHNlaW5lciBCZW51dHplcnZlcndhbHR1bmcgaW4ga2VpbmVyIFdlaXNlIGF1dG9yaXNpZXJ0LgotLS0tLQpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkluZGlhbmVyd2l0eiAoV2lubmV0b3UsIDEyLiBKYW4gMTk5OCwgMDk6MTU6NTYpOgpFaW5lIGd1dCBhdXNzZWhlbmRlIGp1bmdlIERhbWUgc2l0enQgaW4gZWluZW0gWnVnYWJ0ZWlsIHVuZCBsaWVzdCBrb256ZW50cmllcnQKaW4gZWluZXIgWmVpdHNjaHJpZnQuIEVpbiBqdW5nZXIgTWFubiBzdGVpZ3QgenUsIHNldHp0IHNpY2ggaWhyIGdlZ2VudWViZXIgaGluCnVuZCBiZW9iYWNodGV0IHNpZSBlaW5lIFdlaWxlLiBEYW5uIHNwcmljaHQgZXIgc2llIGFuOgoiRGFzIHNjaGVpbnQgamEgZWluZSBpbnRlcmVzc2FudGUgTGVrdHVlcmUgenUgc2Vpbi4gV2FzIGxlc2VuIFNpZSBkZW5uIGRhPyIKIkFjaCwgZGFzIGlzdCBlaW5lIFN0dWRpZSB1ZWJlciBkaWUgc2V4dWVsbGUgUG90ZW56IHZvbiBNYWVubmVybiBpbgp2ZXJzY2hpZWRlbmVuIFZvZWxrZXJuLiIKIkFoYSwgdW5kIHdhcyBrb21tdCBkYWJlaSBoZXJhdXM/IgoiVGphLCBhbSBwb3RlbnRlc3RlbiBzaW5kIGxhdXQgZGllc2VyIFN0dWRpZSBkaWUgSW5kaWFuZXIsIGdlZm9sZ3Qgdm9uIGRlbgpQb2xlbi4iCiJXaXJrbGljaD8gRGFzIGlzdCBqYSBpbnRlcmVzc2FudC4gQWNoLCBpY2ggaGFiZSBtaWNoIGphIHVlYnJpZ2VucyBub2NoIGdhcgpuaWNodCB2b3JnZXN0ZWxsdDogV2lubmV0b3UgS29zbG93c2tpLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVoZWtyYWNoIChMaSwgMTMuIEphbiAxOTk4LCAwOTozOTowNyk6Cn4jISBybj1TaWx2YW5hIHJ0PTg4NDI1OTA0MCByZz13aXR6ZQp+IyEgdGlkPTg4NDIwNjc2MgpFciBsaWVndCBhdWYgaWhyIHVuZCBzaWUgYmVtZXJrdCwgZGFzcyBkaWUgRGVja2UgbWFsIHdpZWRlciBnZXN0cmljaGUgd2VyZGVuCm11ZXNzZS4uLi4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFaGVrcmFjaCAoWmFybml5YSwgMTMuIEphbiAxOTk4LCAwOTo0NTo0Mik6Cn4jISBybj1MaSBydD04ODQ2ODA3NDcgcmc9d2l0emUKfiMhIHRpZD04ODQyMDY3NjIKc2llIHNpdHp0IGF1ZiBpaG0gdW5kIGVyIGJlbWVya3QsIGRhc3MgZGllIERlY2tlIG1hbCB3aWVkZXIgZ2VzdHJpY2hlbiB3ZXJkZW4KbXVlc3N0ZS4uLi4KCk9KOiBiencgZXIgc2FndDogU2NoYXR6LCBrYW5uc3QgRHUgbWFsIHp3aXNjaGVuZHVyY2ggZGllIFplaXR1bmcgdW1ibGFldHRlcm4KZnVlciBtaWNoPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXVmIGRlciBCYXVzdGVsbGUgKFNrbGF2ZSwgMTMuIEphbiAxOTk4LCAxMTowMToyMyk6Cn4jISBybj1HcmFsa29yIHJ0PTg4NDM0MjA0OCByZz13aXR6ZQp+IyEgdGlkPTg4NDI4NDE5Mwp6YXAgZ3JhbGtvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRWhla3JhY2ggKFRlZGR5LCAxNS4gSmFuIDE5OTgsIDE1OjI4OjAzKToKfiMhIHJuPVphcm5peWEgcnQ9ODg0NjgxMTQyIHJnPXdpdHplCn4jISB0aWQ9ODg0MjA2NzYyClNpZSBpc3N0IGVpbmVuIEFwZmVsIGRhYmVpIHVuZCBzYWd0OiBJcmdlbmR3YXMgbXVzIGljaCBqYSBhdWNoIGRhdm9uIGhhYmVuLgoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluIHZlcnN1Y2gsIHdpdHppc2NoIHp1IHNlaW4gKEJpcmR5LCAxOS4gSmFuIDE5OTgsIDEwOjQxOjQ0KToKRWluZSBNb2xrZXJlaSBtb2VjaHRlIGlocmUgUHJvZHVrdGlvbiBlcmhvZWhlbi4gU2llIHNldHp0IGVpbmVuIEJpb2xvZ2VuLAplaW5lbiBCV0xlciB1bmQgZWluZW4gUGh5c2lrZXIgYXVmIGRhcyBQcm9ibGVtIGFuLgouLi4KTmFjaCBlaW5lbSBoYWxiZW4gSmFociBpbnRlbnNpdmVuIENhbXBpbmdzIGF1ZiBkZW4gVmllaHdlaWRlbiAoamEsIGphLAp3aXIgYmV0cmVpYmVuIGFydGdlcmVjaHRlIEhhbHR1bmcgOy0pIHNjaGxhZWd0IGRlciBCaW9sb2dlIGVpbmUKU3BlemlhbGR1ZW5ndW5nIGRlcyBHcmFzZXMgdm9yLCB3YXMgaW4gbGV0enRlciBJbnN0YW56IGRpZSBNaWxjaGF1c2JldXRlIAp1bSAzMCUgc3RlaWdlcm4gd3VlcmRlLiBEaWUgTW9sa2VyZWkgYmVzY2hsaWVzc3QsIGF1ZiBkaWUgRXJnZWJuaXNzZSBkZXIgCmFuZGVyZW4gYmVpZGVuIHp1IHdhcnRlbi4KLi4uCkVpbiB3ZWl0ZXJlcyBoYWxiZXMgSmFociBzcGFldGVyIHZlcmt1ZW5kZXQgZGVyIEJXTGVyIHN0b2x6LCBkYSBhdWZncnVuZApzZWluZXIgdW13ZXJmZW5kIG5ldWVuIEJldHJpZWJzb3JnYW5pc2F0aW9uIHp3YXIgbGVpZGVyLCBsZWlkZXIgZGllIApIYWVsZnRlIGRlciBNaXRhcmJlaXRlciBzaWNoIGVpbmVuIG5ldWVuIEpvYiBzdWNoZW4gbXVlc3N0ZW4sIGFiZXIgZGFmdWVyIApkaWUgTWlsY2hwcm9kdWt0aW9uIHVtIDUwJSBnZXN0ZWlnZXJ0IHdlcmRlbiBrb2VubnRlLgouLi4gLi4uIC4uLgpJbnp3aXNjaGVuIHNpbmQgMyBKYWhyZSB2ZXJnYW5nZW4gdW5kIGRhcyBQcm9ibGVtIGlzdCBiZWluYWhlIGluClZlcmdlc3NlbmhlaXQgZ2VyYXRlbi4gRGVyIEJpb2xvZ2Ugd3VyZGUgZ2VmZXVlcnQsIHdlaWwgZGllIE1pbGNoIApwbG9ldHpsaWNoIHp1IGxhY2hlbiBhbmZpbmcgdW5kIGRlciBCV0xlciB3dXJkZSB2b20gd3VldGVuZGVuIFBlcnNvbmFsIApnZWx5bmNodC4gUGxvZXR6bGljaCB0YXVjaHQgZGVyIFBoeXNpa2VyIGVyaG9iZW5lbiBIYXVwdGVzIHVuZCBzY2h3ZXIgCnVlYmVybmFlY2h0aWd0IGF1ZjogIldpciBrb2VubmVuIGRpZSBQcm9kdWt0aW9uIHZlcnZpZXJmYWNoZW4uLi4gdW50ZXIgZGVyIApWb3JhdXNzZXR6dW5nIGVpbmVyIHB1bmt0Zm9lcm1pZ2VuIEt1aCBpbSBWYWt1dW0uIiAKCgpFaW4gUGh5c2lrZXIsIGVpbiBNYXRoZW1hdGlrZXIgdW5kIGVpbiBJbmZvcm1hdGlrZXIgc29sbGVuIGJld2Vpc2VuLCBkYQphbGxlIHVuZ2VyYWRlbiBaYWhsZW4gZ3JvZXNzZXIgZ2xlaWNoIGRyZWkgUHJpbXphaGxlbiBzaW5kLgpEZXIgSW5mb3JtYXRpa2VyIGJlZ2lubnQ6IDMgaXN0IFByaW16YWhsLiA9PiBBbGxlIGFuZGVyZW4gWmFobGVuIHNpbmQKUHJpbXphaGxlbi4gCkRlciBNYXRoZW1hdGlrZXI6IDMgaXN0IFByaW16YWhsLiAxMSB1bmQgMTMgc2luZCBQcmltemFobGVuLiAKRGVyIFJlc3Qgc3RpbW10IG5hY2ggSW5kdWt0aW9uc2Jld2Vpcy4KRGVyIFBoeXNpa2VyIDMgc3RpbW10LiA1IHN0aW1tdC4gNyBzdGltbXQuIDkgTWVmZWhsZXIuIDExIHN0aW1tdC4gMTMKc3RpbW10LiBCZWhhdXB0dW5nIGlzdCByaWNodGlnLiAKCgpad2VpIG1hbCB6d2VpOgpTdGVsbGUgZWluIHBhYXIgUGVyc29uZW4gZGllIEZyYWdlOiAiV2FzIGlzdCAyKjIiIHVuZCBEdSB3aXJzdCBmb2xnZW5kZQpBbnR3b3J0ZW4gZXJoYWx0ZW46CiAgRGVyIEluZ2VuaWV1ciB6dWVja3Qgc2VpbmVuIFRhc2NoZW5yZWNobmVyLCByZWNobmV0IGVpbiBiaWNoZW4gdW5kCiAgbWVpbnQgc2NobGllc3NsaWNoOiAiMyw5OTk5OTk5OTkiIAogIERlciBQaHlzaWtlcjogIkluIGRlciBHcm9lc3Nlbm9yZG51bmcgdm9uIDEqMTBeMSIgCiAgRGVyIE1hdGhlbWF0aWtlciB3aXJkIHNpY2ggZWluZW4gVGFnIGluIHNlaW5lIFN0dWJlIHZlcnppZWhlbiB1bmQgZGFubgogIGZyZXVkZXN0cmFobGVuZCBtaXQgZWluZW4gZGlja2VuIEJ1ZW5kZWwgUGFwaWVyIGFua29tbWVuIHVuZCBiZWhhdXB0ZW46CiAgIkRhcyBQcm9ibGVtIGlzdCBsb2VzYmFyISIgCiAgRGVyIExvZ2lrZXI6ICJCaXR0ZSBkZWZpbmllcmUgMioyIHByYWV6aXNlci4iIAogIERlciBIYWNrZXIgYnJpY2h0IGluIGRlbiBOQVNBLVN1cGVyY29tcHV0ZXIgZWluIHVuZCBsYWVzc3QgZGVuIHJlY2huZW4uIAogIERlciBQc3ljaGlhdGVyOiAiV2VpIGljaCBuaWNodCwgYWJlciBndXQsIGRhc3Mgd2lyIGRhcnVlYmVyIGdlcmVkZXQKICBoYWJlbi4uLiIgCiAgRGVyIEJ1Y2hoYWx0ZXIgd2lyZCB6dW5hZWNoc3QgYWxsZSBUdWVyZW4gdW5kIEZlbnN0ZXIgc2NobGllc3Nlbiwgc2ljaAogIHZvcnNpY2h0aWcgdW1zZWhlbiB1bmQgZnJhZ2VuOiAiV2FzIGZyIGVpbmUgQW50d29ydCB3b2xsZW4gU2llIGhvZXJlbj8iIAogIERlciBKdXJpc3Q6ICI0LCBhYmVyIGljaCBpY2ggd2Vpc3MgbmljaHQsIG9iIHdpciB2b3IgR2VyaWNodCBkYW1pdAogIGR1cmNoa29tbWVuLiIgCiAgRGVyIFBvbGl0aWtlcjogIkljaCB2ZXJzdGVoZSBpaHJlIEZyYWdlIG5pY2h0Li4uIiAKCkJpcmR5LCBpc3Qgd2l0emlzY2ggOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NoIGVpbiB2ZXJzdWNoLCB3aXR6aXNjaCB6dSBzZWluIChDYXVubywgMTkuIEphbiAxOTk4LCAxMjozNzoyMCk6Cn4jISBybj1CaXJkeSBydD04ODUyMDI5MDQgcmc9d2l0emUKfiMhIHRpZD04ODUyMDI5MDQKRGVuIG1pdCBkZW4gUHJpbXphaGxlbiBrZW5uZSBpY2ggZXR3YXMgYW5kZXJzOgoKRGVyIEJld2VpcyBzb2xsIGRhaGluIGdlaGVuLCBkYXNzIGFsbGUgdW5nZXJhZGVuIFphaGxlbiBQcmltemFobGVuIHNpbmQKCkRlciBNYXRoZW1hdGlrZXIgc2FndDogMSBpdCBQcmltLCAzIGlzdCBQcmltLCBkZXIgUmVzdCBmb2xndCBkdXJjaAp2b2xsc3RhZW5kaWdlIEluZHVrdGlvbi4KRGVyIEluZ2VuaWV1ciBzYWd0OiAxIGlzdCBQcmltLCAzIGlzdCBQcmltLCA1IGlzdCBQcmltLCA3IGlzdCBQcmltLCA5IGlzdApQcmltLCAxMSBpc3QgUHJpbSwgLi4uIHVuZCBzbyB3ZWl0ZXIuCkRlciBQaHlzaWtlciBzYWd0OiAxIGlzdCBQcmltLCAzIGlzdCBQcmltLCA1IGlzdCBQcmltLCA3IGlzdCBQcmltLCA5IC0gYWVoLApNZXNzZmVobGVyLCAxMSBpc3QgUHJpbSwgLi4uCkRlciBJbWZvcm1hdGlrZXIgc2NocmVpYnQgZWluIFByb2dyYW1tLCBkYXMgc2FndDogMSBpc3QgUHJpbSwgMSBpc3QgUHJpbSwgMQppc3QgUHJpbSwgLi4uCgpBYmVyIG5vY2ggZWluZW4gYW5kZXJlbjoKRWluIE1hdGhlcm1hdGlrZXIsIGVpbiBQaHlzaWtlciB1bnQgZWluIEluZ2VuaWV1ciBzb2xsZW4gamV3ZWlscyBlaW5lIFdvY2hlIGluCmVpbmVyIFplbGxlIGVpbmdlc3BlcnJ0IGJsZWliZW4sIG1pdCBnZW51ZyBLb25zZXJ2ZW4gZnVlciBkaWVzZSBaZWl0LiBKZWRvY2gKaGF0IGtlaW5lciBlaW5lbiBEb3Nlbm9lZmZuZXIuCk5hY2ggZGVyIFdvY2hlIHdpcmQgenVlcnN0IGRpZSBUdWVyIGRlcyBJbmdlbmlldXJzIGdlb2ZmbmV0LiBEaWUgRG9zZW4gbGllZ2VuCmFsbGUgZ2VvZWZmbmV0IGluIGVpbmVyIEVja2UgZGVyIFplbGxlLiBBbHMgbWFuIGRlbiBJbmdlbml1ZXIgZnJhZ3QgIldpZSBoYWJlbgpzaWUgZGFzIGdhbWVjaHQ/IiwgYW50d29ydGV0IGRlcjoKIkljaCBoYXR0ZSBub2NoIGVpbmVuIERyYWh0IGJlaSBtaXIsIG1pdCBkZW0gaGFiZSBpY2ggZGllIERvc2VuIGdlb2VmZm5ldC4iCkFscyBiZWltIFBoeXNpa2VyIGRpZSBUdWVyIGdlb2VmZm5ldCB3aXJkLCBsaWVnZW4gZG9ydCBkaWUgRG9zZW4sIGVpbmUgSGFlbGZ0ZQpnb2VmZm5ldCwgZGllIGFuZGVyZSB2b2VsbGlnIHplcmJldWx0LCBpbiBkZXIgRWNrZS4gRGVyIFBoeXNpa2VyIGFudHdvcnRldCBhdWYKZGllIGdsZWljaGUgRnJhZ2U6CiJJY2ggaGFiZSBkaWUgRG9zZW4gZ2VnZW4gZGllIFdhbmQgZ2V3b3JmZW4sIG5hY2ggdW5nZWZhZWhyIGRlciBIYWVsZnRlIGJla2FtCmljaCBkZW4gcmljaHRpZ2VuIFdJbmtlbCBoZXJhdXMsIHVuZCBkaWUgRG9zZW4gc3ByYW5nZW4gYXVmLiIKTnVuIHdpcmQgZGllIFR1ZXIgZGVzIE1hdGhlbWF0aWtlcnMgZ2VvZWZmbmV0LiBEaWUgRG9zZW4gc3RlaGVuIGFsbGUgc2F1YmVyCmF1ZmdlcmVpaHQgYW4gZGVyIFdhbmQuIERlciBNYXRoZW1hdGlrZXIgc2l0enQgYXVmIGRlciBQcml0c2NoZSwgaGFlbHQgZWluZQpEb3NlIHZvciBzaWNoIHVuZCBtdXJtZWx0OgoiSWNoIGRlZmluaWVyZSBkaWVzZSBEb3NlIGFscyBvZmZlbiEiCgpDLiBObywgYWx0ZSBLYW1lbGxlbiBhdXNncmFiZW5kICh3aWUgb2Z0IGhhYiBpY2ggZGVuIHNjaG9uIGVyemFlaGx0PykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NoIGVpbiB2ZXJzdWNoLCB3aXR6aXNjaCB6dSBzZWluIChCbG9vZHloYXJyeSwgMTkuIEphbiAxOTk4LCAxNDoyNzowMik6Cn4jISBybj1CaXJkeSBydD04ODUyMDI5MDQgcmc9d2l0emUKfiMhIHRpZD04ODUyMDI5MDQKPiBad2VpIG1hbCB6d2VpOgo+IFN0ZWxsZSBlaW4gcGFhciBQZXJzb25lbiBkaWUgRnJhZ2U6ICJXYXMgaXN0IDIqMiIgdW5kIER1IHdpcnN0IGZvbGdlbmRlCj4gQW50d29ydGVuIGVyaGFsdGVuOgo+IC4uLgo+ICAgRGVyIFBvbGl0aWtlcjogIkljaCB2ZXJzdGVoZSBpaHJlIEZyYWdlIG5pY2h0Li4uIiAKCkFsdGVybmF0aXY6CgogIERlciBQb2xpdGlrZXI6ICJEYXJhbiBrYW5uIGljaCBtaWNoIG5pY2h0IG1laHIgZXJpbm5lcm4uLi4iCgoKYmgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbm9jaCBlaW4gdmVyc3VjaCwgd2l0emlzY2ggenUgc2VpbiAoQmVlbHplYnViLCAxOS4gSmFuIDE5OTgsIDE0OjMxOjA2KToKfiMhIHJuPUJsb29keWhhcnJ5IHJ0PTg4NTIxNjQyMiByZz13aXR6ZQp+IyEgdGlkPTg4NTIwMjkwNApvZGVyIHNvOgoyKjIgPSAzLiBJY2ggZ2ViZSBpaG5lbiBtZWluIEVocmVud29ydCAhCgpCZWVsemUqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBub2NoIGVpbiB2ZXJzdWNoLCB3aXR6aXNjaCB6dSBzZWluIChHbm9tZSwgMTkuIEphbiAxOTk4LCAxNDo0NDo0Nyk6Cn4jISBybj1CZWVsemVidWIgcnQ9ODg1MjE2NjY2IHJnPXdpdHplCn4jISB0aWQ9ODg1MjAyOTA0Cm9kZXIgc286CgoiMioyPyBLZWluIEtvbW1lbnRhciEiCgpnbk9tZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBub2NoIGVpbiB2ZXJzdWNoLCB3aXR6aXNjaCB6dSBzZWluIChZZW5kaSwgMTkuIEphbiAxOTk4LCAxNToyMzoyNSk6Cn4jISBybj1DYXVubyBydD04ODUyMDk4NDAgcmc9d2l0emUKfiMhIHRpZD04ODUyMDI5MDQKCkFlaCAtLSBpc3QgMSBlaW5lIFByaW16YWhsPwoKWWVuZGkKICAgICAga3JhdHp0IHNpY2ggYW0gS29wZgoKUGZsaWNodHdpdHo6IChBbHQsIGFiZXIgaW1tZXIgd2llZGVyIGdlcm4gZ2VzZWhlbikKCkVyIGtvbW10IHZvbiBkZXIgZHJlaXdvZWNoaWdlbiBEaWVuc3RyZWlzZSB3aWVkZXIuClNpZSB2ZXJzaWNoZXJuIHNpY2ggZ2VnZW5zZWl0aWcgaWhyZXIgdW5zdGVyYmxpY2hlbiBMaWViZSB1bmQgVHJldWUsCnZlcnNjaHdpbmRlbiBpbiBkZW4gRmVkZXJuIHVuZCBzY2hsYWZlbiBzY2hsaWVzc2xpY2ggdm9lbGxpZyBlcnNjaG9lcGZ0IGVpbi4KTWl0dGVuIGluIGRlciBOYWNodCBrbmFsbHQgZGVyIFdpbmQgZWluZW4gRmVuc3RlcmxhZGVuIGdlZ2VuIGRpZSBXYW5kLgpTaWUgc2NocmVja3QgaG9jaDogIk1laW4gTWFubiEiCkVyIHJhZmZ0IHNlaW5lIEtsZWlkdW5nIHp1c2FtbWVuIHVuZCBodXNjaHQgaW4gZGVuIFNjaHJhbmsuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXVjaCBtYWwgZWluZW0genVtIGJlc3RlbiAoU2VydmVydXMsIDE5LiBKYW4gMTk5OCwgMTc6MDI6MDMpOgpFaW4gVGVjaG5pa2VyLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBNYXRoZW1hdGlrZXIgZmFocmVuIG1pdCBkZW0gWnVnLgpwbG9ldHpsaWNoIHJ1ZnQgZGVyIFRlY2huaWtlcjoic2VodCBkYSBkcmF1c3NlbiBuZSBIZXJkZSBtaXQgendlaSBzY2h3YXJ6ZW4KU2NoYWZlbi4iIHNhZ3QgZGVyIFBoeXNpa2VyOiJuZW5lIGRhcyBpc3QgbmUgSGVyZGUgbWl0IG1pbmRlc3RlbnMgendlaQpzY2hhcnplbiBTY2hhZmVuLiIgc2FndCBkZXIgTWF0aGVtYXRpa2VyOiJkYXMgaXN0IGF1Y2ggbmljaHQgcmljaHRpZyAtIGRvcnQKaXN0IG5lIEhlcmRlIG1pdCB6d2VpIFNjaGFmZW4gZGllIGF1ZiBtaW5kZXN0ZW5zIGVpbmVyIFNlaXRlIHNjaHdhcnogc2luZC4iCgpTZXJ2ZXJ1cyAtIGRlciBtaXQgZGVtIFRvZCB0YW56dC4gKFdhbHplcildOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBub2NoIGVpbiB2ZXJzdWNoLCB3aXR6aXNjaCB6dSBzZWluIChHd3lud2FpdGVyLCAyMi4gSmFuIDE5OTgsIDAxOjE5OjAwKToKfiMhIHJuPUdub21lIHJ0PTg4NTIxNzQ4NyByZz13aXR6ZQp+IyEgdGlkPTg4NTIwMjkwNApEYXMgcGFzc3QgenUgZGVuIHZpZXIgUG9saXRpa2VybiwgZGllIGRpZXNlIEZyYWdlICh3YXMgaXN0IDIqMikgZ2VzdGVsbHQKYmVrb21tZW4uCkRlciBTUEQnbGVyIHNhZ3QgIjIqMj8gS2VpbiBLb21tZW50YXIhIgpEZXIgQ0RVJ2xlciBzYWd0ICJEaWUgQW50d29ydCBpc3QgMy4gRGFyYXVmIGdlYmUgaWNoIElobmVuIG1laW4gRWhyZW53b3J0IQpEaWUgR3J1ZW5lIHNhZ3QgIlZvcmxhZXVmaWcgNC4gQWJlciBkaWUgQmFzaXMgaGF0IG5vY2ggbmljaHQgenVnZXN0aW1tdC4iCkRlciBGRFAnbGVyIHN0cmVpY2h0IHNlaW5lIEZvZW53ZWxsZSB6dXJlY2h0IHVuZCBzYWd0OiAiRGVyemVpdCA0LiBBYmVyIHdpcgp3ZXJkZW4gdW5zIGRhZnVlciBlaW5zZXR6ZW4sIGRhc3MgZXMgc28gYmFsZCB3aWUgbW9lZ2xpY2ggYXVmIGRyZWkgcmVkdXppZXJ0CndpcmQhIgoKVW5kIGRhbm4gd2FyIGRhIG5vY2ggZGVyIE1lZGl6aW5lciAoYmVpIGRlbiBCZXJ1ZnNncnVwcGVuKS4gRGVyIHNhZ3Qgdm9lbGxpZwpzaWNoZXI6ICJWaWVyIgpBbHMgZGllIGFuZGVyZW4gaWhuIHZlcnd1bmRlcnQgYW5zY2hhdWVuIHVuZCBmcmFnZW4sIHdvaGVyIGVyIGRhcyBkZW5uIHdlaXNzLApzYWd0IGVyIHN0b2x6OgoiRGFzIGhhYmUgaWNoIGF1c3dlbmRpZyBnZWxlcm50ISIKCkd3eW4qLCBkZXIgZXR3YXMgenVzYW1tZW4tIHVuZCBldHdhcyBiZWl0cmFnZW4gd29sbHRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFpbCBhbiBSb2JpbiA6LSkgKEtpcmssIDIyLiBKYW4gMTk5OCwgMDc6Mjg6MDMpOgpNZWluIGxpZWJlciBLb2xsZWdlLAoKaWNoIGZpbmRlIGVzIGphIHJlaXplbmQsIGRhIFNpZSB2b24gbWlyIEtlbm50bmlzIGdlbm9tbWVuIGhhYmVuLApqZWRvY2ggdmVyc3RlaGUgaWNoIElocmVuIEJyYXVjaCwgbWl0IFBmZWlsZW4gYXVmIG1pY2ggenUgc2NoaWVzc2VuLApuaWNodCBzbyBnYW56LgoKSWNoIHdhZXJlIElobmVuIGRhcnVtIGZ1ZXIgZWluZSBrdXJ6ZSBTdGVsbHVuZ25haG1lIGRhbmtiYXIuCgpNaXQgZnJldW5kbGljaGVtIEdydXNzClhYWFhYWFhYWAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IG5vY2ggZWluIHZlcnN1Y2gsIHdpdHppc2NoIHp1IHNlaW4gKENhdW5vLCAyMi4gSmFuIDE5OTgsIDEzOjQ4OjIxKToKfiMhIHJuPUd3eW53YWl0ZXIgcnQ9ODg1NDI4MzQwIHJnPXdpdHplCn4jISB0aWQ9ODg1MjAyOTA0CldvcmFuIGVya2VubnQgbWFuLCBkYXNzIGVpbiBQb2xpdGlrZXIgbHVlZ3Q/ClNlaW5lIExpcHBlbiBiZXdlZ2VuIHNpY2guCgpVcmFhYWhobHQuIEFiZXIgd2VyIHdlaXNzPwoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJ1c3Npc2NoZSBwaGlsb3NvcGhpZSAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEwOjIyOjA3KToKV2FubiBkdSB3aXJzdCBnZWJvcmVuLCBkdSBoYXN0IDIgTWdsaWNoa2VpdGVuOgpFbnRlZGVyIGR1IHdpcnN0IEVzZWwgb2RlciBkdSB3aXJzdCBNZW5zY2guCldpcnN0IGR1IEVzZWwsIGhhc3QgZHUgZ3xuc3RpZyAtCndpcnN0IGR1IE1lbnNjaCwgaGFzdCBkdSAyIE1nbGljaGtlaXRlbjoKRW50d2VkZXIgZGVpbmUgRWx0ZXJuIHNpbmQgcmVpY2ggb2RlciBzaWUgc2luZCBhcm0uClNpbmQgc2llIHJlaWNoLCBoYXN0IGR1IGd8bnN0aWctCnNpbmQgc2llIGFybSwgaGFzdCBkdSAyIE1nbGljaGtlaXRlbjoKRW50d2VkZXIgZHUgd2lyc3QgTWRjaGVuIG9kZXIgZHUgd2lyc3QgSnVuZ2UuCldpcnN0IGR1IE1kY2hlbiwgaGFzdCBkdSBnfG5zdGlnLQp3aXJzdCBkdSBKdW5nZSwgaGFzdCBkdSAyIE1nbGljaGtlaXRlbjoKRW5kd2VkZXIgZHUga3JpZWdzdCBCZXJ1ZiBvZGVyIGR1IGtyaWVnc3Qga2VpbmVuLgpLcmllZ3N0IGR1IGVpbmVuLCBoYXN0IGR1IGd8bnN0aWctCmtyaWVnc3QgZHUga2VpbmVuLCBoYXN0IGR1IDIgTWdsaWNoa2VpdGVuOgpFbnR3ZWRlciBkdSB3aXJzdCBLbmVjaHQgb2RlciBkdSB3aXJzdCBTb2xkYXQuCldpcnN0IGR1IEtuZWNodCwgaGFzdCBkdSBnfG5zdGlnLQp3aXJzdCBkdSBTb2xkYXQsIGhhc3QgZHUgMiBNZ2xpY2hrZWl0ZW46CkVudHdlZGVyIGR1IHdpcnN0IEdlbmVyYWwgb2RlciBkdSB3aXJzdCBHZWZyZWl0ZXIuCldpcnN0IGR1IEdlbmVyYWwsIGhhc3QgZHUgZ3xuc3RpZy0Kd2lyc3QgZHUgR2VmcmVpdGVyLCBoYXN0IGR1IDIgTWdsaWNoa2VpdGVuOgpFbnR3ZWRlciBkdSBrb21tc3QgenVyIE1hcmluZSBvZGVyIGR1IGtvbW1zdCB6dXIgSW5mYW50cmllLgpLb21tc3QgZHUgenVyIE1hcmluZSwgaGFzdCBkdSBnfG5zdGlnLQprb21tc3QgZHUgenVyIEluZmFudHJpZSwgaGFzdCBkdSAyIE1nbGljaGtlaXRlbjoKRW50d2VkZXIgZHUgYmxlaWJzdCBpbiBkZXIgRXRhcHBlIG9kZXIgZHUgZ2Voc3QgYW4gZGllIEZyb250LgpCbGVpYnN0IGR1IGluIGRlciBFdGFwcGUsIGhhc3QgZHUgZ3xuc3RpZy0KZ2Voc3QgZHUgYW4gZGllIEZyb250LCBoYXN0IGR1IDIgTWdsaWNoa2VpdGVuOgpFbnR3ZWRlciBkdSBrcmllZ3N0IEdvdWxhc2Noa2Fub25lIG9kZXIgZHUga3JpZWdzdCBLYWxhc2Nobmlrb3cuCktyaWVnc3QgZHUgR291bGFzY2hrYW5vbmUsIGhhc3QgZHUgZ3xuc3RpZy0Ka3JpZWdzdCBkdSBLYWxhc2Nobmlrb3csIGhhc3QgZHUgMiBNZ2xpY2hrZWl0ZW46CkVudHdlZGVyIGR1IHdpcnN0IHZlcnd1bmRldCBvZGVyIGR1IHdpcnN0IGVyc2Nob3NzZW4uCldpcnN0IGR1IHZlcnd1bmRldCwgaGFzdCBkdSBnfG5zdGlnLQp3aXJzdCBkdSBlcnNjaG9zc2VuLCBoYXN0IGR1IDIgTWdsaWNoa2VpdGVuOgpFbnR3ZWRlciBkdSBrb21tc3QgaW4gRWluemVsZ3JhYiBvZGVyIGR1IGtvbW1zdCBpbiBNYXNzZW5ncmFiLgpLb21tc3QgZHUgaW4gRWluemVsZ3JhYiwgaGFzdCBkdSBnfG5zdGlnLQprb21tc3QgZHUgaW4gTWFzc2VuZ3JhYiwgaGFzdCBkdSAyIE1nbGljaGtlaXRlbjoKRW50d2VkZXIgc2llIGxhc3NlbiBkaWNoIGxpZWdlbiBvZGVyIHNpZSBob2xlbiBkaWNoIHdpZWRlciByYXVzLgpMYXNzZW4gc2llIGRpY2ggbGllZ2VuLCBoYXN0IGR1IGd8bnN0aWctCmhvbGVuIHNpZSBkaWNoIHdpZWRlciByYXVzLCBoYXN0IGR1IDIgTWdsaWNoa2VpdGVuOgpFbnR3ZWRlciBkdSBrb21tc3QgaW4gU2VpZmVuZmFicmlrIG9kZXIgaW4gUGFwaWVybXxobGUuCktvbW1zdCBkdSBpbiBTZWlmZW5mYWJyaWssIGhhc3QgZHUgZ3xuc3RpZy0Ka29tbXN0IGR1IGluIFBhcGllcm18aGxlLCBoYXN0IGR1IDIgTWdsaWNoa2VpdGVuOgpFbnR3ZWRlciBkdSB3aXJzdCBwYXJmfG1pZXJ0ZXMgU2NocmVpYnBhcGllciBvZGVyIGR1IHdpcnN0IEtsb3BhcGllci4KV2lyc3QgZHUgU2NocmVpYnBhcGllciwgaGFzdCBkdSBnfG5zdGlnLQp3aXJzdCBkdSBLbG9wYXBpZXIsIGhhc3QgZHUgMiBNZ2xpY2hrZWl0ZW46CkVudHdlZGVyIGR1IGtvbW1zdCBhdWYgSGVycmVuLUtsbyBvZGVyIGR1IGtvbW1zdCBhdWYgRGFtZW4tS2xvLgpLb21tc3QgZHUgYXVmIEhlcnJlbi1LbG8sIGhhc3QgZHUgZ3xuc3RpZy0Ka29tbXN0IGR1IGF1ZiBEYW1lbi1LbG8sIGhhc3QgZHUgMiBNZ2xpY2hrZWl0ZW46CkVudHdlZGVyIHNpZSBuaW1tdCBkaWNoIGZ8ciBWb3JuZSBvZGVyIHNpZSBuaW1tdCBkaWNoIGZ8ciBIaW50ZW4uCk5pbW10IHNpZSBkaWNoIGZ8ciBWb3JuZSwgaGFzdCBkdSBnfG5zdGlnLQpuaW1tdCBzaWUgZGljaCBmfHIgSGludGVuLCBiaXN0IGR1IGF1ZiBqZWRlbiBGYWxsIGltIEFyc2NoISEKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYmFlcmVud2l0eiAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEwOjI1OjQ4KToKV2FzIGxlcm50IGVpbiBFaXNiYWVyZW5iYWJ5IGFscyBlcnN0ZXM/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCkdlbGJlciBTY2huZWUgaXN0IEJhZUJhZSAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmpvbyAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEwOjM1OjQ2KToKVGhlIGh1c2JhbmQgY2FtZSBob21lIGVhcmx5IG9uZSBkYXkgdG8gZmluZCBoaXMgd2lmZSBseWluZyBvbiB0aGUgYmVkIHdpdGgKdGhlIHBsdW1iZXIgc3RhbmRpbmcgYmVzaWRlIGhlciwgY29tcGxldGVseSBudWRlLgpUaGUgcGx1bWJlciBpbWVkaWF0ZWx5IHdlbnQgaW50byB0aGUgc3F1YXR0aW5nIHBvc2l0aW9uIGFuZCBzYWlkLCAiSSB3YXMKanVzdCB0ZWxsaW5nIHlvdXIgd2lmZSBNciBWYXJuZXksIHRoYXQgaWYgc2hlIGRvZXNuJ3QgcGF5IHRoZSBwbHVtYmluZyBiaWxsCnN0cmFpZ2h0IGF3YXksIEknbSBnb2luZyB0byBzaGl0IG9uIHRoaXMgZmxvb3IuIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmphdSAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEwOjM2OjU0KToKU2ltb24gU29sb21vbiB3YXMgZHJpbmtpbmcgYXQgYSBiYXIgaW4gQmVsZmFzdCB3aGVuIGhlIHN1ZGRlbmx5IGZlbHQgYQpwaXN0b2wgZm9yY2VkIGludG8gaGlzIGJhY2suCiJDYXRob2xpYyBvciBQcm90ZXN0YW50IiB0aGUgdm9pY2UgYmVoaW5kIGhpbSBkZW1hbmRlZC4KIkVyciwgSmV3aXNoIiByZXBsaWVkIFNpbW9uLgoiV2VsbCBJIG11c3QgYmUgdGhlIGx1Y2tpZXN0ICBBcmFiIGluIHRoZSB3aG9sZSBvZiBJcmVsYW5kLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlbm4gTSQgQXV0b3MgYmF1ZW4gd3VlcmRlOiAoRnJldW5kLCAyMy4gSmFuIDE5OTgsIDEwOjQ2OjQ4KToKSWNoIGtlbm5lIGphIGRpZSBGbHVnemV1Z2dlc2NoaWNodGUsIGRpZSBKZXN1cy1HZXNjaGljaHRlLCBhYmVyIGRpZSAiV2FzCndhZXJlLCB3ZW5uIE1pY3JvU29mdCBBdXRvcyBiYXVlbiB3dWVyZGUtR2VzY2hpY2h0ZSIgd2FyIG1pciBuZXUuIERhaGVyIGhpZXIKZnVlciBhbGxlOgoKRGluZ2UsIGRpZSBhbmRlcnMgd2FlcmVuLCB3ZW5uIE1TIEF1dG9zIGJhdWVuIHd1ZXJkZToKCiogRWluIHNwZXppZWxsZXMgTW9kZWxsamFociB3YWVyZSBlcnN0IG5hY2ggQWJsYXVmIGVpbmVzIEphaHJlcyB2ZXJmdWVnYmFyLApuaWNodCBhbSBBbmZhbmcuCgoqIEplZGVzIE1hbCwgd2VubiBkaWUgU3RyYXNzZW5tZWlzdGVyZWkgZGllIEJlZ3Jlbnp1bmdzbGluaWVuIGF1ZiBkZXIgU3RyYXNzZQpuYWNobWFsdCwgbXVlc3N0ZXN0IER1IGVpbiBuZXVlcyBBdXRvIGthdWZlbiEKCiogVm9uIFplaXQgenUgWmVpdCB3dWVyZGUgZGVyIE1vdG9yIGVpbmZhY2ggYXVzZ2VoZW4gdW5kIER1IG11ZXNzdGVzdCBpaG4gbmV1CnN0YXJ0ZW4uIE1lcmt3dWVyZGlnZXJ3ZWlzZSB3dWVyZGUgamVkZXIgZGllc2VuIFVtc3RhbmQgZWluZmFjaCBha3plcHRpZXJlbgp1bmQgbmljaHQgZXR3YSBlaW5lIFdlcmtzdGF0dCBhdWZzdWNoZW4uCgoqIEdlbGVnZW50bGljaCB3dWVyZGUgZWluIGdhbnogYmVzdGltbXRlcyBXZW5kZW1hbm9ldmVyIGRhenUgZnVlaHJlbiwgZGFzcyBkZXIKTW90b3IgYXVzZ2luZ2UgdW5kIHNpY2ggYXVjaCBuaWNodCB3aWVkZXIgc3RhcnRlbiBsaWVzc2UsIGJldm9yIG1hbiBuaWNodCBkZW4KTW90b3IgZWlubWFsIGF1cy0gdW5kIHdpZWRlciBlaW5nZWJhdXQgaGFldHRlLiBEYXMgd2FlcmUgbmF0dWVybGljaCBnYW56Cm5vcm1hbCB1bmQgZnVlciBhbGxlIEZhZWxsZSBoYWV0dGUgbWFuIGVpbmVuIEF1c3RhdXNjaG1vdG9yIGluIGRlciBFY2tlCmxpZWdlbi4KCipEdSBrb2VubnRlc3QgbmljaHQgbWVocmVyZSBQZXJzb25lbiBnbGVpY2h6ZWl0aWcgaW4gZGVtIEF1dG8gYmVmb2VyZGVybiwgZXMKc2VpIGRlbm4sIER1IHd1ZXJkZXN0ICJBdXRvIDk1IiBvZGVyICJBdXRvIE5UIiBrYXVmZW4sIGJlaSBkZW5lbiBkYW5uCmFsbGVyZGluZ3MgZGllIFNpdHplIGVpbnplbG4gZ2VnZW4gQXVmcHJlaXMgZXJ3b3JiZW4gd2VyZGVuIG11ZXNzdGVuLgoKKiBEaWUgRmlybWEgIlN1biBNb3RvciBTeXN0ZW1zIiB3dWVyZGUgZWluIEF1dG8gZW50d2lja2VsbiwgZGFzIGR1cmNoClNvbm5lbmtyYWZ0IGFuZ2V0cmllYmVuIGRvcHBlbHQgc28genV2ZXJsYWVzc2lnIHVuZCBmdWVuZiBtYWwgc28gc2NobmVsbCB3YWVyZQp3aWUgZGFzIE1pY3Jvc29mdC1BdXRvOyBlcnN0YXVubGljaGVyd2Vpc2Ugd3VlcmRlbiBhYmVyIG51ciA1JSBkZXIKQmV2b2Vsa2VydW5nIHNvIGVpbiBBdXRvIGJlaSBnbGVpY2hlbSBQcmVpcyBmYWhyZW4uCgoqIERpZSBXYXJubGFtcGVuIGZ1ZXIgT2VsZHJ1Y2ssIExpY2h0bWFzY2hpbmUsIEJlbnppbiwgRmVybmxpY2h0LCBUZW1wZXJhdHVyCnVuZCBhbmRlcmUgd2FlcmVuIGR1cmNoIGVpbmUgZWluemlnZSBMYW1wZSBtaXQgZGVyIEF1ZnNjaHJpZnQgIkFsbGdlbWVpbmVyCkF1dG9mZWhsZXIiIGVyc2V0enQuCgoqIFdpciBkdWVyZnRlbiBhbGxlIG51ciBub2NoIE1pY3Jvc29mdC1CZW56aW4gdGFua2VuLgoKKiBEZXIgQWlyYmFnIHd1ZXJkZSBiZWkgZWluZW0gVW5mYWxsICJTaW5kIHNpZSBzaWNoZXI/IiBmcmFnZW4sIGJldm9yIGVyCmF1ZmdpbmdlLgoKKiBEdSBtdWVzc3Rlc3QgRGlyIGVpbmUgYmVzdGltbXRlIFBlZGFsa29tYmluYXRpb24gZnVlciAiQnJlbXNlbiIgbWVya2VuLgoKU28gd2VpdCBlaW4gQmxpY2sgaW4gZGllIFp1a3VuZnQgdm9uCkZyZXVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNPQ0tTPyAoV2FyZ29uLCAyMy4gSmFuIDE5OTgsIDEwOjQ3OjM2KToKfD5Gb3IgdGhvc2Ugb2YgdXMgd2hvIGFyZSBuZXR3b3JraW5nLWNoYWxsZW5nZWQsIHdoYXQgdGhlIGhlbGwKfD5pcyBTT0NLUz8KfAp8SXRgcyBhIFRDUC9JUCB3cmFwcGVyIGZvciB0aGUgRnVsbHkgRW5jYXBzdWxhdGVkIEV0aGVybmV0IFRyYW5zcG9ydAp8U3lzdGVtLCBvZnRlbiByZWZlcnJlZCB0byBhcyBGRUVUUy4gCnwKfFNPQ0tTIHBhY2tldHMgYXJlIHVzdWFsbHkgY2FycmllZCBpbnNpZGUgdGhlIFNwZWNpYWwgSGVhZGVyIE9wZW4KfEVuY3J5cHRpb24gU3lzdGVtIChTSE9FUykgdG8gcHJvdGVjdCB0aGVtIGZyb20gZGFtYWdlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaG1tIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTA6NDk6NTgpOgpKYW5lIHdlbnQgdG8gaGVyIGRvY3RvciBjb21wbGFpbmluZyBvZiBhIHNvcmUgYmFjay4gQWZ0ZXIgdHJ5aW5nIGV2ZXJ5CnJlbWVkeSBoZSBrbmV3LCB0aGUgZG9jdG9yIGZpbmFsbHkgYXNrZWQgIlRlbGwgbWUgSmFuZSwgSG93IGRvIHlvdSBoYXZlIHNleAo/IgoiIEkndmUgYWx3YXlzIGRvbmUgaXQgZG9nZ3kgc3R5bGUuIiBzaGUgc2FpZC4KIkFoLCB0aGF0J3MgIGl0ISIgc2FpZCB0aGUgZG9jdG9yLiAiV2h5IGRvbid0IHlvdSB0cnkgaGF2aW5nIGl0IG9uIHlvdXIgYmFjawo/IgpKYW5lIGxvb2tlZCBwdXp6bGVkIGFuZCBzYWlkLCAiSGF2ZSB5b3UgZXZlciBzbWVsbGVkIGEgTGFicmFkb3IncyBicmVhdGguIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnRvbWF0ZW4gKEphc3BlciwgMjMuIEphbiAxOTk4LCAxMDo1MjozNCk6CldhcyBtYWNoZW4gZGllIEhvbGxuZGVyIG5hY2ggU3R1cm1mbHV0ZW4/ClNpZSBwYWNrZW4gZGFzIFdhc3NlciBpbiBrbGVpbmUgcm90ZSBTY2tjaGVuIHVuZCB2ZXJrYXVmZW4gZXMgYWxzIFRvbWF0ZW4KaW4gYWxsZSBXZWx0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFkeSBEaSAoWnVlcmlsZXUsIDIzLiBKYW4gMTk5OCwgMTA6NTQ6MDIpOgpIaSwKQWxzbyBpY2ggaGFldCBqYSBhdWNoIG5vY2ggZWluIFdpdHogYXVmIExhZ2VyLCBpY2ggd2Vpc3MgbnVybmljaHQgb2IgZGVyCndpZWRlciBib2VzZXMgQmx1dCBnaWJ0IG9kZXIgbmljaHQ6CgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBMYWR5IERpYW5hIHVuZCBIb25lZ2dlciA/CgoKCgoKCgoKCgoKSG9uZWdnZXIgaGF0IGRpZSBNYXVlciB1ZWJlcmxlYnQuID06KQoKVHNjaGF1IEFsYWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgbWllc2UgdGFnIC4uLiAoRGF1ZXJnYXN0LCAyMy4gSmFuIDE5OTgsIDExOjE3OjU1KToKCkltIEhpbW1lbCB3aXJkJ3MgamEgYXVjaCBpbW1lciB2b2xsZXIuIERlc3dlZ2VuIHd1cmRlIGpldHp0IG5lIApuZXVlIFZlcm9yZG51bmcgZXJsYXNzZW46IE1hbiBrb21tdCBudXIgbm9jaCBpbiBkZW4gSGltbWVsLCB3ZW5uIG1hbiAKYW0gVG9kZXN0YWcgbmVuIHdpcmtsaWNoZW4gc2NobGVjaHRlbiBUYWcgaGF0dGUgLi4uCgpBbSBlcnN0ZW4gVGFnLCBhbiBkZW0gZGllc2UgVmVyb3JkbnVuZyBHdWVsdGlna2VpdCBoYXR0ZSwgd2FyIGRlbm4Kb2JlbiBiZWkgUGV0cnVzIGF1Y2ggZ2xlaWNoIGRpZSBIb2VsbGUgbG9zIC4uLiBlaW5pZ2UgVG9kZXNmYWVsbGUKaG50ZXJlaW5hbmRlciBhYnp1ZmVydGlnZW4sIHVuZCB2b24gamVkZW0gbXVzcyBzaWNoIFBldHJ1cyBkaWUgR2VzY2hpY2h0ZSBkZXMKVG9kZXN0YWdlcyBhbmhvZXJlbiAuLi4KCkVyemFlaGx0IGRlciBFcnN0ZToKQW5zaWNoIGJlZ2FubiBtZWluIGxldHp0ZXIgdGFnIGdhciBuZWQgc28gc2NobGltbSwgaWNoIGthbSB2b24gbmVyIApsYWVuZ2VyZW4gR2VzY2hhZWZ0c3JlaXNlIHVuZXJ3YXJ0ZXQgaGVpbSwga29tbSB2b2xsZXIgVm9yZnJldWRlCmlucyBTY2hsYWZ6aW1tZXIsIGxpZWd0IG1laW5lIEZyYXUgbWl0IGFuZ3N0ZXJmdWVsbHRlbiBBdWdlbiBpbSBCZXR0IC4uLiAKSWNoIHZlcm11dGUgRW5lYnJ1Y2gsIHN1Y2ggZGFzIGdhbnplIFNjaGxhZnppbW1lciB1bmQgZGllIGhhbGJlIFdvaG51bmcKbmFjaCBkZW0gTGllYmhhYmVyIGFiLCBmaW5kZSBhYmVyIGxlaWRlciBuaXggLi4uIHRyZXRlIGljaCBub2NoIGt1cnoKYXVmIHVuc2VyZW4gQmFsa29uIGltIDIxLiBTdG9jayByYXVzLCBzZWggaWNoIGRvY2ggZWluaWdlIEZpbmdlcnNwaXR6ZW4sCmRpZSBzaWNoIHVudGVyIGRlciBCcnVlc3R1bmcgYW4gZGllIFJlZ2VucmlubmUga2xhbW1lcm4uCkljaCBzb2ZvcnQgZHJhdWZnZXRyZXRlbiwgZGVyIEtlcmwsIGRlciBuYWNrdCBkcnVudGVyaGluZywgbXVzc3RlIGxvc2xhc3NlbiwKdW5kIGZhZWxsdCBydW50ZXIuLi4uIEljaCBmcmV1IG1pY2gsIGFiZXIgZGVyIGZhZWxsdCBpbiBuZW4gQnVzY2ggdW5kIAp1ZWJlcmxlYnQgZGFzIGdhbnplIC4uLiBpY2ggd3VldGVuZCBpbiBkaWUgS3VlY2hlLCBoYWIgZGVuIEt1ZWhsc2NocmFuayBhdWYgCmRlbiBiYWxrb24gdW5kIHVlYmVyIGRhcyBnZWxhZW5kZXIgZ2V3dWNodGV0LCBhdWYgaWhuIGRyYXVmZmFsbGVuIApsYXNzZW4sIHdhciBlciBlbmRsaWNoIHRvdCEgRGEga3JpZWcgaWNoIHZvciBsYXV0ZXIgQXVmcmVndW5nIHVuZCAKQW5zdHJlbmd1bmcgbmVuIGhlcnppbmZhcmt0LCBPVkVSIHVuZCBBVVMgLi4uICpTY2huaWVmKgoKUGV0cnVzIHVlYmVybGVndCwgb2IgZGVyIFRhZyBtaWVzIGdlbnVnIHdhciwgdW5kIGxhZXNzdCBpaG4gaW4gZGVuIEhpbW1lbC4KCkVyemFlaGx0IGRlciBad2VpdGU6ClNpdHogaWNoIGFuIG1laW5lbSBUb2Rlc3RhZyBmcmllZGxpY2ggaW4gZGVyIEJhZGV3YW5uZSwgYXVmIGVpbmVtIGhvZXIgaWNoIApkYXMgZ2VrcmVpc2NoZSBlaW5lciBGcmF1IGlyZ2VlbmR3byB1bnRlciBtaXIgdW5kIGVpbgpHZXJlbm5lIC4uLiBpY2ggcmF1cyBhdXMgZGVyIEJhZGV3YW5uZSwgcmF1cyBhdWYgbWVpbmVuCkJhbGtvbiBpbSAyMi4gU3RvY2ssIHZlcmdlc3MgbWVpbmUgbmFzc2VuIEZ1ZXNzZSwgcnV0c2NoZQphdXMgdW5kIGZhbGxlIHVlYmVycyBHZWxhZW5kZXIgLi4uaWNoIGRlbmsgbWlyOiBNaXN0LCBiaXN0ZSBoaW4sIAphYmVyIGlyZ2VuZHdpZSBzY2hhZmYgaWNoIGVzLCBtaWNoIGFuIGRlciBEYWNocmlubmUgYW0gQmFsa29uIHVudGVyIG1pciAKZmVzdHp1aGFsdGVuIC4uLmljaCBmcmV1IG1pY2gsIGRhIHN0dWVybXQgZWluIHd1ZXRlbmRlclR5cCBhdXMgZGVtIFppbW1lciwKc2llaHQgbWljaCBkYSBoYWVuZ2VuLCBzYXBwdCBtaXIgYXVmIGRlbiBGaW5nZXJuIHJ1bSwKaWNoIG11c3MgbG9zbGFzc2VuIHVuZCBmYWxsZSBpbiBkaWUgVGllZmUgLi4uZGVuayBpY2ggbWlyOgpNaXN0LCBlbmRndWVsdGlnIHZvcmJlaSwgZGEgbGFuZGUgaWNoIGRvY2ggdGF0c2FlY2hsaWNoIHF1aWNrbGViZW5kaWcgaW4gbmVtIApCdXNjaCAuLi4KaWNoIGZyZXUgbWljaCBncmFkZSwgZGEga29tbXQgZGVyIFR5cCBvYmVuIHdpZWRlciBhdWYgZGVuIEJhbGtvbiwgd3VjaHRldCBuZW4KS3VlaGxzY2hyYW5rIHVlYmVycwpHbGFlbmRlciwgZGVyIHN0dWVyenQgcnVudGVyIHVuZCBpY2ggYmluIHBsYXR0ICwgT1ZFUiB1bmQgQVVTCgpOYWphLCBrZWluIGxhbmdlcyB1ZWJlcmxlZ2VuIGJlaSBwZXRydXMsIHdhciB3aXJrbGljaCBlaW4gc2NobGVjaHRlciBUYWcgLi4uCgpFcnphZWhsdCBkZXIgRHJpdHRlOgpNdXNzdCBEdSBEaXIgbWFsIHZvcnN0ZWxsZW4sIFBldHJ1cywgZGEgc2l0eiBpY2ggaW4gbmVtIEt1ZWhsc2NocmFuayAuLi4uCgoKClZvcnNpY2h0IGJlaW0gbGF1dGVuIEVyemFlaGxlbiwgenVtaW5kZXN0IGdlc3Rlcm4gaGF0dGUgaWNoIG1hbCBuZW4gdm9sbGVuCkVyZm9sZyBkYW1pdCAqendpbmtlciogCgoKR3J1c3MsIERHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoxLDIsZ2FuenZpZWxlIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTE6NTc6MDEpOgpUaGVyZSBhcmUgMyBraW5kcyBvZiBwZW9wbGU6IHRob3NlIHdobyBjYW4gY291bnQgJiB0aG9zZSB3aG8gY2FuJ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpobXBmIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTE6NTc6NTcpOgpSZWFsaXR5PyBJcyB0aGF0IHdoZXJlIHRoZSBwaXp6YSBkZWxpdmVyeSBndXkgY29tZXMgZnJvbT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmdvIGJpbGwgZ28gKEphc3BlciwgMjMuIEphbiAxOTk4LCAxMjowNzozOSk6Cllhc3NhciBBcmFmYXQgdG8gQ2xpbnRvbi0iQmlsbHksIHRyeSBHb2F0cywgdGhleSBkb24ndCB0YWxrIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ29sZmVyIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTI6NDk6MTMpOgpuZSBnb2xmZXIgdGVsbHMgYW5vdGhlcjogIkhleSwgZ3Vlc3Mgd2hhdCEgIEkgZ290IGEgc2V0IG9mIGdvbGYKY2x1YnMgZm9yIG15IHdpZmUhIgpUaGUgb3RoZXIgcmVwbGllczogIkdSRUFUIHRyYWRlISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmNoYXV2aSAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEyOjUwOjI5KToKV2hhdCdzIHdvcnNlIHRoYW4gYSBNYWxlIENoYXV2aW5pc3QgUGlnPwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBIHdvbWFuIHRoYXQgd29uJ3QgZG8gd2hhdCBzaGUncyB0b2xkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzdW1vIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTI6NTI6MDMpOgpXaHkgZG8gSmFwYW5lc2UgU3VtbyBXcmVzdGxlcnMgc2hhdmUgdGhlaXIgbGVncz8KU28geW91IGNhbiB0ZWxsIHRoZW0gYXBhcnQgZnJvbSB0aGUgZmVtaW5pc3RzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbWFsIGVpbiBndXRlciA6KSAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEzOjAxOjI0KToKVGhlIE1hbiBXaG8gTG92ZWQgQmVhbnMKT25jZSB1cG9uIGEgdGltZSwgdGhlcmUgbGl2ZWQgYSBtYW4gd2hvIGhhZCBhIHRlcnJpYmxlIHBhc3Npb24gZm9yIGJha2VkCmJlYW5zLiBIZSBsb3ZlZCB0aGVtLCBidXQgdGhleSBhbHdheXMgaGFkIGFuIGVtYmFycmFzc2luZyBhbmQgc29tZXdoYXQKbGl2ZWx5IHJlYWN0aW9uIG9uIGhpbS4gT25lIGRheSBoZSBtZXQgYSBnaXJsIGFuZCBmZWxsIGluCmxvdmUuIFdoZW4gaXQgd2FzIGFwcGFyZW50IHRoYXQgdGhleSB3b3VsZCBtYXJyeSwgaGUgdGhvdWdodCB0byBoaW1zZWxmLAoiU2hlJ2xsIG5ldmVyIGdvIHRocm91Z2ggd2l0aCB0aGUgbWFycmlhZ2Ugd2l0aCBtZSBjYXJyeWluZyBvbiBsa2UgdGhpcyIgc28KaGUgbWFkZSB0aGUgc3VwcmVtZSBzYWNyaWZpY2UgYW5kIGdhdmUgdXAgYmVhbnMuIFNob3J0bHkgYWZ0ZXIgdGhhdCB0aGV5CndlcmUgbWFycmllZC4KQSBmZXcgbW9udGhzIGxhdGVyLCBvbiB0aGUgd2F5IGhvbWUgZnJvbSB3b3JrLCBoaXMgY2FyIGJyb2tlIGRvd24gYW5kIHNpbmNlCnRoZXkgbGl2ZWQgaW4gdGhlIGNvdW50cnksIGhlICdwaG9uZWQgaGlzIHdpZmUgYW5kIHRvbGQgaGVyIHRoYXQgaGUgd291bGQKYmUKbGF0ZSBiZWNhdXNlIGhlIGhhZCB0byB3YWxrLiBPbiBoaXMgd2F5IGhvbWUsIGhlIHBhc3NlZCBhIHNtYWxsIGNhZmUgYW5kCnRoZQp3b25kZXJmdWwgYXJvbWEgb2YgYmFrZWQgYmVhbnMgb3ZlcndoZWxtZWQgaGltLiBTaW5jZSBoZSBzdGlsbCBoYWQgc2V2ZXJhbAptaWxlcyB0byB3YWxrIGhlIHRob3VnaHQgaGUgd291bGQgd2FsayBvZmYgYW55IGlsbCBlZmZlY3RzIGJlZm9yZSBoZSBnb3QKaG9tZS4gU28gaGUgd2VudCBpbiBhbmQgb3JkZXJlZCB0aHJlZSBleHRyYSBsYXJnZSBoZWxwaW5ncyBvZiBiZWFucy4gQWxsCnRoZQp3YXkgaG9tZSBoZSBmYXJ0ZWQuIEJ5IHRoZSB0aW1lIGhlIGFycml2ZWQgaG9tZSBoZSBmZWx0IHJlYXNvbmFibHkgc2FmZS4KSGlzIHdpZmUgbWV0IGhpbSBhdCB0aGUgZG9vciBhbmQgc2VlbWVkIHNvbWV3aGF0IGV4Y2l0ZWQuIFNoZSBleGNsYWltZWQsCiJEYXJsaW5nLCBJIGhhdmUgdGhlIG1vc3Qgd29uZGVyZnVsIHN1cnByaXNlIGZvciB5b3UgZm9yIGRpbm5lciB0b25pZ2h0ISIKU2hlIHB1dCBhIGJsaW5kZm9sZCBvbiBoaW0gYW5kIGxlZCBoaW0gdG8gaGlzIGNoYWlyIGF0IHRoZSBoZWFkIG9mIHRoZQp0YWJsZQphbmQgbWFkZSBoaW0gcHJvbWlzZSBub3QgdG8gcGVlay4gQXQgdGhpcyBwb2ludCBoZSB3YXMgYmVnaW5uaW5nIHRvIGZlZWwKYW5vdGhlciBmYXJ0IGNvbWluZyBvbi4gSnVzdCBhcyBoaXMgd2lmZSB3YXMgYWJvdXQgdG8gcmVtb3ZlIHRoZSBibGluZGZvbGQsCnRoZSBwaG9uZSByYW5nLiBTaGUgYWdhaW4gbWFkZSBoaW0gcHJvbWlzZSBub3QgdG8gcGVlayB1bnRpbCBzaGUgcmV0dXJuZWQKYW5kIHdlbnQgdG8gYW5zd2VyIHRoZSBwaG9uZS4KV2hpbGUgc2hlIHdhcyBnb25lLCBoZSBzZWl6ZWQgdGhlIG9wcG9ydHVuaXR5LiBIZSBzaGlmdGVkIGhpcyB3ZWlnaHQgIHRvCm9uZSBsZWcgYW5kIGxldCBnby4gSXQgd2FzIG5vdCBvbmx5IGxvdWQsIGJ1dCByaXBlIGFzIGEgcm90dGVuIGVnZy4gSGUgaGFkCmEKaGFyZCB0aW1lIGJyZWF0aGluZywgc28gaGUgZmVsdCBmb3IgaGlzIG5hcGtpbiBhbmQgZmFubmVkIHRoZSBhaXIgYWJvdXQKaGltLgpIZSBoYWQganVzdCBzdGFydGVkIHRvIGZlZWwgYmV0dGVyIHdoZW4gYW5vdGhlciB1cmdlIGNhbWUgb24uIEhlIHJhaXNlZCBoaXMKbGVnIGFuZCBycmlpaXBwcHAhIEl0IHNvdW5kZWQgbGlrZSBhIGRpZXNlbCBlbmdpbmUgcmV2dmluZyBhbmQgc21lbGxlZAp3b3JzZS4gVG8ga2VlcCBoaW1zZWxmIGZyb20gZ2FnZ2luZywgaGUgdHJpZWQgZmFubmluZyBoaXMgYXJtcyBhIHdoaWxlLApob3BpbmcgdGhlIHNtZWxsIHdvdWxkIGRpc3NpcGF0ZS5UaGluZ3MgaGFkIGp1c3QgYWJvdXQgcmV0dXJuZWQgdG8gbm9ybWFsCndoZW4gaGUgZmVsdCBhbm90aGVyIHVyZ2UgY29taW5nLiBIZSBzaGlmdGVkIGhpcyB3ZWlnaHQgdG8gaGlzIG90aGVyIGxlZwphbmQKbGV0IGdvLiBUaGlzIHdhcyBhIHJlYWwgYmx1ZSByaWJib24gd2lubmVyOyB0aGUgd2luZG93cyBzaG9vaywgdGhlIGRpc2hlcwpvbgp0aGUgdGFibGUgcmF0dGxlZCBhbmQgYSBtaW51dGUgbGF0ZXIgdGhlIGZsb3dlcnMgb24gdGhlIHRhYmxlIHdlcmUgZGVhZC4KV2hpbGUga2VlcGluZyBhbiBlYXIgdHVuZWQgaW4gb24gdGhlIGNvbnZlcnNhdGlvbiBpbiB0aGUgaGFsbHdheSwgYW5kCmtlZXBpbmcgaGlzIHByb21pc2Ugb2Ygc3RheWluZyBibGluZGZvbGRlZCwgaGUgY2FycmllZCBvbiBsaWtlIHRoaXMgZm9yIHRoZQpuZXh0IDEwIG1pbnV0ZXMsIGZhcnRpbmcgYW5kIHRoZW4gZmFubmluZyBlYWNoIHRpbWUgd2l0aCBoaXMKbmFwa2luLldoZW4gaGUgaGVhcmQgdGhlIHBob25lIGZhcmV3ZWxscyAoaW5kaWNhdGluZyB0aGUgZW5kIG9mIGhpcwpsb25saW5lc3MgYW5kIGZyZWVkb20pIGhlIG5lYXRseSBsYWlkIGhpcyBuYXBraW4gb24gaGlzIGxhcCBhbmQgZm9sZGVkIGhpcwpoYW5kcyBvbiB0b3Agb2YgaXQuIFNtaWxpbmcgY29udGVudGVkbHksIGhlIHdhcyB0aGUgcGljdHVyZSBvZiBpbm5vY2VuY2UKd2hlbiBoaXMgd2lmZSB3YWxrZWQgaW4uCkFwb2xvZ2l6aW5nIGZvciB0YWtpbmcgc28gbG9uZywgc2hlIGFza2VkIGlmIGhlIGhhZCBwZWVrZWQgYXQgdGhlIGRpbm5lcgp0YWJsZS4gQWZ0ZXIgYXNzdXJpbmcgaGVyIGhlIGhhZCBub3QgcGVla2VkLCBzaGUgcmVtb3ZlZCB0aGUgYmxpbmRmb2xkIGFuZAp5ZWxsZWQgIlNVUlBSSVNFISIgIFRvIGhpcyBzaG9jayBhbmQgaG9ycm9yLCB0aGVyZSB3ZXJlIHR3ZWx2ZSBkaW5uZXIKZ3Vlc3RzCnNlYXRlZCBhcm91bmQgdGhlIHRhYmxlIGZvciBoaXMgc3VycHJpc2UgYmlydGhkYXkgcGFydHkuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc2Nod2FuZ2VyIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTM6MDQ6NDIpOgpTaG91bGQgcmFpc2UgYSBzbWlsZQpUaGlzIGlzIGZyb20gYW4gYWN0dWFsIHRyaWFsIGluIHRoZSBVSy4KQSB5b3VuZyB3b21hbiB3aG8gd2FzIHNldmVyYWwgbW9udGhzIHByZWduYW50IGJvYXJkZWQgYSBidXMuClRoZW4gc2hlIG5vdGljZWQgYSB5b3VuZyBtYW4gc21pbGluZyBhdCBoZXIgc2hlIGJlZ2FuIGZlZWxpbmcKaHVtaWxpYXRlZCBvbiBhY2NvdW50IG9mIGhlciBjb25kaXRpb24uIFNoZSBjaGFuZ2VkIGhlciBzZWF0IGFuZApoZSBzZWVtZWQgbW9yZSBhbXVzZWQuClNoZSBtb3ZlZCBhZ2FpbiBhbmQgdGhlbiBvbiBoZXIgZm91cnRoIG1vdmUgaGUgYnVyc3Qgb3V0CmxhdWdoaW5nLiBTaGUgaGFkIGhpbSBhcnJlc3RlZC4KVGhlbiB0aGUgY2FzZSBjYW1lIGJlZm9yZSB0aGUgY291cnQsIHRoZSB5b3VuZyBtYW4gd2FzIGFza2VkCndoeSBoZSBhY3RlZCBpbiBzdWNoIGEgbWFubmVyLiBIaXMgcmVwbHkgd2FzOgpXaGVuIHRoZSBsYWR5IGJvYXJkZWQgdGhlIGJ1cyBJIGNvdWxkbid0IGhlbHAgbm90aWNpbmcgc2hlIHdhcwpwcmVnbmFudC4gU2hlIHNhdCB1bmRlciBhbiBhZHZlcnRpc2VtZW50IHdoaWNoIHJlYWQKIkNvbWluZyBTb29uOiBUaGUgR29sZCBEdXN0IFR3aW5zIiwgdGhlbiBzaGUgbW92ZWQgdW5kZXIgb25lIHRoYXQKcmVhZCAiU2xvYW5zIExpbmltZW50cyByZW1vdmUgc3dlbGxpbmciLgpJIHdhcyBldmVuIG1vcmUgYW11c2VkIHdoZW4gc2hlIHNhdCB1bmRlciBhIHNoYXZpbmcgYWR2ZXJ0aXNlbWVudAp3aGljaCByZWFkICJXaWxsaWFtJ3MgU3RpY2sgRGlkIFRoZSBUcmljayIuClRoZW4gSSBjb3VsZCBub3QgY29udHJvbCBteXNlbGYgYW55IGxvbmdlciB3aGVuIG9uIHRoZSBmb3VydGgKbW92ZSBzaGUgc2F0IHVuZGVyIGFuIGFkdmVydGlzZW1lbnQgd2hpY2ggcmVhZCAiRHVubG9wIFJ1YmJlcgp3b3VsZCBoYXZlIHByZXZlbnRlZCB0aGlzIGFjY2lkZW50LiIKVGhlIGNhc2Ugd2FzIGRpc21pc3NlZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaGF0eiwgaWNoIGdlaCBtYWwgZ2VyYWRlIGVpbmthdWZlbi4uLiAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEzOjE1OjQzKToKQSBrZWVuIGNvdW50cnkgbGFkIGFwcGxpZWQgZm9yIGEgc2FsZXNtYW4ncyBqb2IgYXQgYSBjaXR5IGRlcGFydG1lbnQgc3RvcmUuCkluIGZhY3QgaXQgd2FzIHRoZSBiaWdnZXN0IHN0b3JlIGluIHRoZSB3b3JsZCAtIHlvdSBjb3VsZCBnZXQgYW55dGhpbmcKdGhlcmUuClRoZSBib3NzIGFza2VkIGhpbSwgIkhhdmUgeW91IGV2ZXIgYmVlbiBhIHNhbGVzbWFuIGJlZm9yZT8iCiJZZXMsIEkgd2FzIGEgc2FsZXNtYW4gaW4gdGhlIGNvdW50cnkiIHNhaWQgdGhlIGxhZC4gIFRoZSBib3NzIGxpa2VkIHRoZSBjdXQKb2YgaGltIGFuZCBzYWlkLCAiWW91IGNhbiBzdGFydCB0b21vcnJvdyBhbmQgSSdsbCBjb21lIGFuZCBzZWUgeW91IHdoZW4gd2UKY2xvc2UgdXAuIgpUaGUgZGF5IHdhcyBsb25nIGFuZCBhcmR1b3VzIGZvciB0aGUgeW91bmcgbWFuLCBidXQgZmluYWxseSA1IG8nY2xvY2sgY2FtZQphcm91bmQuICBUaGUgYm9zcyBkdWx5IGZyb250ZWQgdXAgYW5kIGFza2VkLCAiSG93IG1hbnkgc2FsZXMgZGlkIHlvdSBtYWtlCnRvZGF5PyIKIk9uZSwiIHNhaWQgdGhlIHlvdW5nIHNhbGVzbWFuLgoiT25seSBvbmUsIiBibHVydGVkIHRoZSBib3NzLCAiTW9zdCBvZiBteSBzdGFmZiBtYWtlIDIwIG9yIDMwIHNhbGVzIGEgZGF5LgpIb3cgbXVjaCB3YXMgdGhlIHNhbGUgd29ydGg/IgoiVGhyZWUgaHVuZHJlZCB0aG91c2FuZCBkb2xsYXJzLCIgc2FpZCB0aGUgeW91bmcgbWFuLgoiSG93IGRpZCB5b3UgbWFuYWdlIHRoYXQ/IiBhc2tlZCB0aGUgZmxhYmJlcmdhc3RlZCBib3NzLgoiV2VsbCwiIHNhaWQgdGhlIHNhbGVzbWFuICJ0aGlzIG1hbiBjYW1lIGluIGFuZCBJIHNvbGQgaGltIGEgc21hbGwgZmlzaApob29rLCB0aGVuIGEgbWVkaXVtIGhvb2sgYW5kIGZpbmFsbHkgYSByZWFsbHkgbGFyZ2UgaG9vay4gIFRoZW4gSSBzb2xkIGhpbSBhCnNtYWxsIGZpc2hpbmcgbGluZSwgYSBtZWRpdW0gb25lIGFuZCBhIGh1Z2UgYmlnIG9uZS4gIEkgYXNrZWQgaGltIHdoZXJlIGhlCndhcyBnb2luZyBmaXNoaW5nIGFuZCBoZSBzYWlkIGRvd24gdGhlIGNvYXN0LiAgSSBzYWlkIGhlIHdvdWxkIHByb2JhYmx5IG5lZWQKYSBib2F0LCBzbyBJIHRvb2sgaGltIGRvd24gdG8gdGhlIGJvYXQgZGVwYXJ0bWVudCBhbmQgc29sZCBoaW0gdGhhdCB0d2VudHkKZm9vdCBzY2hvb25lciB3aXRoIHRoZSB0d2luIGVuZ2luZXMuICBUaGVuIGhlIHNhaWQgaGlzIFZvbGtzd2FnZW4gcHJvYmFibHkKd291bGRuJ3QgYmUgYWJsZSB0byBwdWxsIGl0LCBzbyBJIHRvb2sgaGltIHRvIHRoZSBjYXIgZGVwYXJ0bWVudCBhbmQgc29sZApoaW0gdGhlIG5ldyBEZWx1eGUgQ3J1aXNlci4iClRoZSBib3NzIHRvb2sgdHdvIHN0ZXBzIGJhY2sgYW5kIGFza2VkIGluIGFzdG9uaXNobWVudCwgIllvdSBzb2xkIGFsbAp0aGF0IHRvIGEgZ3V5IHdobyBjYW1lIGluIGZvciBhIGZpc2ggaG9vaz8iCiJObywiIGFuc3dlcmVkIHRoZSBzYWxlc21hbiAiSGUgY2FtZSBpbiB0byBidXkgYSBib3ggb2YgVGFtcG9ucyBmb3IKaGlzIHdpZmUgYW5kIEkgc2FpZCB0byBoaW0sICdZb3VyIHdlZWtlbmQncyBzaG90LCB5b3UgbWF5IGFzIHdlbGwgZ28KZmlzaGluZy4nIgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkdW1tZGlkdW1tIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTM6MjI6NDQpOgpBIGZldyBtb250aHMgYWZ0ZXIgaGlzIHBhcmVudHMgd2VyZSBkaXZvcmNlZCwgTGl0dGxlIEpvaG5ueSBwYXNzZWQgCmJ5IGhpcyBtb20ncyBiZWRyb29tIGFuZCBzYXcgaGVyIHJ1YmJpbmcgaGVyIGJvZHkgYW5kIG1vYW5pbmcsIAoiSSBuZWVkIGEgbWFuLCBJIG5lZWQgYSBtYW4hIiAgT3ZlciB0aGUgbmV4dCBjb3VwbGUgb2YgbW9udGhzLCAKaGUgc2F3IGhlciBkb2luZyB0aGlzIHNldmVyYWwgdGltZXMuICBPbmUgZGF5LCBoZSBjYW1lIGhvbWUgZnJvbSAKc2Nob29sIGFuZCBoZWFyZCBoZXIgbW9hbmluZy4gIFdoZW4gaGUgcGVla2VkIGludG8gaGVyIGJlZHJvb20sIApoZSBzYXcgYSBtYW4gb24gdG9wIG9mIGhlci4gIExpdHRsZSBKb2hubnkgcmFuIGludG8gaGlzIHJvb20sCnRvb2sgb2ZmIGhpcyBjbG90aGVzLCB0aHJldyBoaW1zZWxmIG9uIGhpcyBiZWQsIHN0YXJ0ZWQgc3Ryb2tpbmcgaGltc2VsZiwKYW5kIG1vYW5pbmcsICJPaGgsIEkgbmVlZCBhIGJpa2UhIEkgbmVlZCBhIGJpa2UhIiAKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKamFqYSBkaWUga3VlY2hlbnNjaGFiZW4gKEphc3BlciwgMjMuIEphbiAxOTk4LCAxMzoyNzowNyk6CkxpdHRsZSBKb2hubnksIG9uIGEgZGF5IHdoZW4gaGUgd2FzIGJlaW5nIHBhcnRpY3VsYXJseSByZWNrbGVzcywgd2FzCnBsYXlpbmcgaW4gdGhlIGJhY2t5YXJkIG9uZSBtb3JuaW5nLiAgU29vbiwgc29tZSBob25leWJlZXMgc3RhcnRlZCAKc3dpcmxpbmcgYXJvdW5kLCBhbm5veWluZyBsaXR0bGUgSm9obm55LiAgSGUgYmVnYW4gc3RvbXBpbmcgb24gdGhlbSAKaW4gaGlzIHRlbXBlci4gIEhpcyBmYXRoZXIgY2F1Z2h0IGhpbSB0cmFtcGxpbmcgdGhlIGhvbmV5YmVlcywgYW5kIAphZnRlciBhIGJyaWVmIG1vbWVudCBvZiB0aG91Z2h0IHNhaWQsICAiVGhhdCdzIGl0ISBObyBob25leSBmb3IgeW91IApmb3Igb25lIG1vbnRoISIgIExhdGVyIHRoYXQgYWZ0ZXJub29uLCBKb2hubnkgIHBvbmRlcmVkIHVwb24gc29tZSAKYnV0dGVyZmxpZXMsIGFuZCBzb29uIHN0YXJ0ZWQgY2F0Y2hpbmcgdGhlbSBhbmQgY3J1c2hpbmcgdGhlbSB1bmRlciAKaGlzIGZlZXQuICBIaXMgZmF0aGVyIGFnYWluIGNhdWdodCBoaW0sIGFuZCBhZnRlciBhIGJyaWVmIG1vbWVudCBvZiAKdGhvdWdodCwgc2FpZCwgIk5vIGJ1dHRlciBmb3IgeW91IGZvciBvbmUgbW9udGghIiAgRWFybHkgdGhhdCBldmVuaW5nLApKb2hubnkncyBtb3RoZXIgd2FzIGNvb2tpbmcgZGlubmVyLCBhbmQgZ290IGp1bXB5IHdoZW4gY29ja3JvYWNoZXMgCnN0YXJ0ZWQgc2N1cnJ5aW5nIGFyb3VuZCB0aGUga2l0Y2hlbiBmbG9vci4gIFNoZSBiZWdhbiBzdG9tcGluZyBvbiAKdGhlbSBvbmUgYnkgb25lIHVudGlsIGFsbCB0aGUgY29ja3JvYWNoZXMgd2VyZSBkZWFkLiAgSm9obm55J3MgbW90aGVyIApsb29rZWQgdXAgdG8gZmluZCBKb2hubnkgYW5kIGhpcyBmYXRoZXIgc3RhbmRpbmcgdGhlcmUgd2F0Y2hpbmcgaGVyLCAKdG8gd2hpY2ggSm9obm55IHNhaWQsICJBcmUgeW91IGdvaW5nIHRvIHRlbGwgaGVyLCBkYWRkeSwgb3IgZG8geW91IHdhbnQgCm1lIHRvPyIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp5YSBkb24ndCBoYXZlIHRoZSBiYWxscyB0byBmdWNrIHdpdGggbWUuLi4gKEphc3BlciwgMjMuIEphbiAxOTk4LCAxMzoyODozMik6CkEgdGVhY2hlciBjYXV0aW91c2x5IGFwcHJvYWNoZXMgdGhlIHN1YmplY3Qgb2Ygc2V4IGVkdWNhdGlvbiAKd2l0aCBoZXIgZm91cnRoIGdyYWRlIGNsYXNzIGJlY2F1c2Ugc2hlIHJlYWxpemVzIExpdHRsZSBKb2hubnkncyAKcHJvcGVuc2l0eSBmb3Igc2V4dWFsIGlubnVlbmRvLiAgQnV0IEpvaG5ueSByZW1haW5zIGF0dGVudGl2ZSAKdGhyb3VnaG91dCB0aGUgZW50aXJlIGxlY3R1cmUuIEZpbmFsbHksIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGUgbGVzc29uLCAKdGhlIHRlYWNoZXIgYXNrcyBmb3IgZXhhbXBsZXMgb2Ygc2V4IGVkdWNhdGlvbiBmcm9tIHRoZSBjbGFzcy4gIApPbmUgbGl0dGxlIGJveSByYWlzZXMgaGlzIGhhbmQsICJJIHNhdyBhIGJpcmQgaW4gaGVyIG5lc3Qgd2l0aCBzb21lCmVnZ3MuIiAgCiJWZXJ5IGdvb2QsIFdpbGxpYW0sIiBjb29lZCB0aGUgdGVhY2hlci4gICJNeSBtb21teSBoYWQgYSBiYWJ5LCIgCnNhaWQgbGl0dGxlIEVzdGhlci4gICJPaCwgdGhhdCdzIG5pY2UsIiByZXBsaWVkIHRoZSB0ZWFjaGVyLiAgCkZpbmFsbHksIExpdHRsZSBKb2hubnkgcmFpc2VzIGhpcyBoYW5kLiAgV2l0aCBtdWNoIGZlYXIgYW5kIHRyZXBpZGF0aW9uLCAKdGhlIHRlYWNoZXIgY2FsbHMgb24gaGltLiAgIkkgd2FzIHdhdGNoaW4nIFRWIHllc3RlcmRheSwgYW5kIEkgCnNhdyB0aGUgTG9uZSBSYW5nZXIuICBIZSB3YXMgc3Vycm91bmRlZCBieSBodW5kcmVkcyBhbmQgCmh1bmRyZWRzIG9mIEluZGlhbnMsIGFuZCB0aGV5IGFsbCBhdHRhY2tlZCBhdCBvbmUgdGltZS4gIEhlIGtpbGxlZCAKZXZlcnkgb25lIG9mIHRoZW0gd2l0aCBoaXMgdHdvIGd1bnMuIiAgVGhlIHRlYWNoZXIgd2FzIHJlbGlldmVkIApidXQgcHV6emxlZCwgIkFuZCB3aGF0IGRvZXMgdGhhdCBoYXZlIHRvIGRvIHdpdGggc2V4IGVkdWNhdGlvbiwgCkpvaG5ueT8iICAiSXQnbGwgdGVhY2ggdGhvc2UgSW5kaWFucyBub3QgdG8gZnVjayB3aXRoIHRoZSBMb25lIFJhbmdlci4iCiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVpcyAoSmFzcGVyLCAyMy4gSmFuIDE5OTgsIDEzOjM3OjA0KToKTGl0dGxlIEpvaG5ueSB3YXMgc2l0dGluZyBpbiBjbGFzcyBkb2luZyBtYXRoIHByb2JsZW1zIHdoZW4gaGlzCnRlYWNoZXIgcGlja2VkIGhpbSB0byBhbnN3ZXIgYSBxdWVzdGlvbi4gIkpvaG5ueSwgaWYgdGhlcmUgCndlcmUgZml2ZSBiaXJkcyBzaXR0aW5nIG9uIGEgZmVuY2UgYW5kIHlvdSBzaG90IG9uZSB3aXRoIHlvdXIgZ3VuLCAKaG93IG1hbnkgd291bGQgIGJlIGxlZnQ/IiAgIk5vbmUuIiwgcmVwbGllZCBKb2hubnksImNhdXNlIHRoZSAKcmVzdCB3b3VsZCBmbHkgYXdheS4iICJXZWxsLCB0aGUgYW5zd2VyIGlzIGZvdXIsIiBzYWlkIHRoZSB0ZWFjaGVyLiAgCiJCdXQgSSBsaWtlIHRoZSB3YXkgeW91IGFyZSB0aGlua2luZy4iIExpdHRsZSBKb2hubnkgc2FpZCwgIkkgaGF2ZSAKYSBxdWVzdGlvbiBmb3IgeW91IG5vdy4gIElmIHRoZXJlICB3ZXJlIHRocmVlIHdvbWVuIGVhdGluZyBpY2UKY3JlYW0gY29uZXMgaW4gYSBzaG9wLCBvbmUgbGlja2luZyBoZXIgY29uZSwgIHRoZSBzZWNvbmQgYml0aW5nIApoZXIgY29uZSwgYW5kIHRoZSB0aGlyZCBvbmUgc3Vja2luZyBoZXIgY29uZSwgd2hpY2ggb25lIGlzIG1hcnJpZWQ/ICAKIldlbGwsIiBzYWlkIHRoZSB0ZWFjaGVyIG5lcnZvdXNseSwgIkkgZ3Vlc3MgdGhlIG9uZSBzdWNraW5nICAKdGhlIGNvbmU/IiAiTm8sIiBzYWlkIExpdHRsZSBKb2hubnksICJ0aGUgb25lIHdpdGggdGhlIHdlZGRpbmcgcmluZyAKb24gaGVyIGZpbmdlci4gIEJ1dCBJIGxpa2UgdGhlIHdheSB5b3UncmUgdGhpbmtpbmchIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcGFpbiBpbiB0aGUgYXNzIChKYXNwZXIsIDIzLiBKYW4gMTk5OCwgMTQ6MDg6MzYpOgpBIGdheSBndXkgd2FzIHN0YW5kaW5nIGluIGxpbmUgYXQgdGhlIGxvY2FsIHN0b3JlIHdoZW4gaGUgbm90aWNlZCBhCnZlcnkgYXR0cmFjdGl2ZSBtYW4gaW4gdGhlIG5leHQgbGluZS4gIEhlIGZvbGxvd2VkIGhpbSBvdXQgb2YgdGhlCnN0b3JlIGFuZCBkb3duIHRoZSBibG9jay4gIFRoZSBnb29kIGxvb2tpbmcgZmVsbG93IGVudGVyZWQgYSBtZWRpY2FsCmJ1aWxkaW5nIGFuZCB3ZW50IHRvIGhpcyBvZmZpY2UgLSB0aGVyZSB3YXMgYSBzaWduIG91dCBmcm9udCBzYXlpbmcKIkRvY3RvciBNaWNoYWVsJ3MgKiBQcm9jdG9sb2dpc3QiLgpUaGUgZ2F5IGd1eSB3YXMgVEhSSUxMRUQsIGFuZCBpbW1lZGlhdGVseSBjYWxsZWQgdG8gbWFrZSBhbgphcHBvaW50bWVudCB0aGUgbmV4dCBkYXkuIFRoZSBuZXh0IGRheSwgdGhlIGdheSBndXkgc2hvd2VyZWQgYW5kIHNoYXZlZCBhbmQKYXJyaXZlZCBlYWdlciBhbmQgZWFybHkgZm9yIGhpcyBhcHBvaW50bWVudC4gIFRoZSBnb29kIGxvb2tpbmcgRG9jdG9yCmVudGVyZWQgd2l0aCBhIGNoYXJ0LgoiV2hhdCBzZWVtcyB0byBiZSB0aGUgcHJvYmxlbT8iIGFza2VkIHRoZSBEb2N0b3IuCiJVaC4uLiBwYWluIGluIG15IHJlY3R1bSwiIHNhaWQgdGhlIGdheSBndXkuClRoZSBEb2N0b3IgbG9va2VkIHVwIHRoZSBmZWxsb3cncyBhc3MgYW5kIGZlbHQgYXJvdW5kLiAgTmVlZGxlc3MgdG8Kc2F5LCB0aGUgcGF0aWVudCB3YXMgb24gY2xvdWQgbmluZS4gIEFmdGVyIGEgZmV3IG1pbnV0ZXMgdGhlIERvY3RvcgpzaHJ1Z2dlZCBhbmQgc2FpZCBoZSBjb3VsZG4ndCBmaW5kIGFueXRoaW5nIHdyb25nLiAgVGhlIGdheSBndXkKc21pbGVkIGhhcHBpbHksIHRoYW5rZWQgaGltIGFuZCBsZWZ0LgpEdXJpbmcgdGhlIG5leHQgZmV3IGRheXMgdGhlIGdheSBndXkganVzdCBjb3VsZG4ndCBnZXQgdGhlIERvY3RvciBvdXQgb2YKaGlzIG1pbmQuICBIZSBtYWRlIGFub3RoZXIgYXBwb2ludG1lbnQuICBBZ2FpbiB0aGUgRG9jIGxvb2tlZCB1cCBoaXMgYXNzCmFuZCBmZWx0IGFyb3VuZC4gIEFnYWluIGhlIGNvdWxkIGZpbmQgbm90aGluZyB3cm9uZy4gIEFuZCBhZ2FpbiwgdGhlCnBhdGllbnQgbGVmdCBoYXBweS4KQSBmZXcgZGF5cyBsYXRlciB0aGUgZ2F5IG1hbiBtYWRlIHlldCBhbm90aGVyIGFwcG9pbnRtZW50LiAgQnkgbm93IHRoZQpEb2N0b3Igd2FzIGJlZ2lubmluZyB0byBiZSBzdXNwaWNpb3VzLgoiUGFpbiBpbiB5b3VyIHJlY3R1bSwgSSdtIGd1ZXNzaW5nLCIgc2FpZCB0aGUgRG9jdG9yLgoiT2gsIHllcy4uLiBpdCdzIGV4Y3J1Y2lhdGluZyEiIHNhaWQgdGhlIGdheSBtYW4uCiJJJ3ZlIGV4YW1pbmVkIHlvdSB0d2ljZSBhbHJlYWR5LiAgSSdtIHRlbGxpbmcgeW91IHRoZXJlJ3Mgbm90aGluZwp3cm9uZy4iClRoZSBnYXkgbWFuIGJlZ2dlZCB0aGUgRG9jIHRvIGxvb2sganVzdCBvbmUgbW9yZSB0aW1lLiAgVGhlIERvY3RvcgpvYmxpZ2luZ2x5IGxvb2tlZCBhbmQgZmVsdCBhcm91bmQgdXAgdGhlIGdheSBtYW4ncyBhc3MuICBBZnRlciBhCm1vbWVudCBoZSBsb29rZWQgc3RhcnRsZWQuCiJUaGVyZSBkb2VzIGFwcGVhciB0byBiZSBzb21ldGhpbmcgbG9kZ2VkIGluIHlvdXIgcmVjdHVtIiwgc2FpZCB0aGUKRG9jdG9yLgpIZSBzdHVjayBoaXMgZmluZ2VycyBpbiBkZWVwZXIsIHRoZW4gZmluYWxseSBoaXMgd2hvbGUgaGFuZC4gIEhlCnB1bGxlZCBvdXQgYSBidW5jaCBvZiByb3NlcyEKIlVoLCBzaXIuLi4gSSdtIGFmcmFpZCB5b3UgaGFkIGEgYnVuY2ggb2Ygcm9zZXMgc3R1Y2sgdXAgeW91ciBhc3MsIgpzYWlkIHRoZSBEb2N0b3IuClRoZSBnYXkgbWFuIHNxdWVhbGVkLCAiUmVhZCB0aGUgY2FyZCEgIFJlYWQgdGhlIGNhcmQhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExhZHkgRGkgKEFzbW9kaXMsIDI1LiBKYW4gMTk5OCwgMDE6NDc6MTMpOgp+IyEgcm49WnVlcmlsZXUgcnQ9ODg1NTQ5MjQyIHJnPXdpdHplCn4jISB0aWQ9ODg1NTQ5MjQyCldlciBpc3QgSG9uZWdnZXIgPz8gRGVyIFZldHRlciB2b24gU2Nod2FyemVuZWdnZXIgPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBMYWR5IERpIChFbmd5d3VjaywgMjUuIEphbiAxOTk4LCAxNjo0NToyMik6Cn4jISBybj1Bc21vZGlzIHJ0PTg4NTY4OTIzMyByZz13aXR6ZQp+IyEgdGlkPTg4NTU0OTI0MgpTb3dlaXQgaWNoIG1pY2ggZXJpbm5lcmUsIGlzdCBIb25lZ2dlciBlaW4gS29tcG9uaXN0LCBkZXIgQW5mYW5nIGJpcyBNaXR0ZQpkaWVzZXMgSmFocmh1bmRlcnRzIGxlYnRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVua2Vyd2l0eiAoR3JpbW1ib3JuLCAyNS4gSmFuIDE5OTgsIDE2OjU5OjE3KToKV2VyIHdhciBkZXIgbGV0enRlIEluZGlhbmVyPwpEb2RpLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgpQLlMuIFdlciBpaG4gbmljaHQgdmVyc3RlaHQ6IExhdXQgbGVzZW4uIFZpZWxsZWljaHQgcG9zdGUgaWNoIGF1Y2ggaXJnZW5kd2FubgpkaWUgcGhvbmV0aXNjaGUgVmFyaWFudGUuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZW5rZXJ3aXR6IChNaW5nbywgMjUuIEphbiAxOTk4LCAxODoyNTo0Nik6Cn4jISBybj1HcmltbWJvcm4gcnQ9ODg1NzQzOTU3IHJnPXdpdHplCn4jISB0aWQ9ODg1NzQzOTU3CklpaWlpaWVoLCBHcmltbWJvcm4sIER1IGJpc3QgamEgc29vb28gZWtsaWcuCkxPWElMRVhJRklYSUtJWEkgLi4uIGFiZXIgZGVyIGlzdCBqYSBhbHQgOikKCkdsb2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERlbmtlcndpdHogKFJhbnRhbnBsYW4sIDI2LiBKYW4gMTk5OCwgMTE6NDk6NTApOgp+IyEgcm49TWluZ28gcnQ9ODg1NzQ5MTQ2IHJnPXdpdHplCn4jISB0aWQ9ODg1NzQzOTU3CgpOYSBndXV1dC4uLgoKTGFkeSBEaWFuYSB3YXIga3VyeiB2b3IgaWhyZW0gVG9kIGltIFJhZGlvLgoKCi4uLnVuZCBpbSBBbWF0dXJlbmJyZXR0IHVuZCBpbiBkZXIgR2FuZ3NjaGFsdHVuZy4uLgoKT2UqIChjKSBTYW1zdGFnIE5hY2h0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTb25ncyAoUXVhc2ltb2RvLCAyNi4gSmFuIDE5OTgsIDEyOjI0OjQyKToKICAgMS4gR2FkZ2V0cnkKCiAgICAgICAgICAgYnkgRXJpayBNZWx0emVyLCBidXQgRnJlZXdhcmUuLi4gOi0pCgogICAgICAgICAgKFRvIHRoZSBtZWxvZHkgb2YgRm9vbCdzIEdhcmRlbiAtIExlbW9uIFRyZWUpCgogICAgICAgICAgSSdtIHNpdHRpbmcgaGVyZSBpbiBhIGJvcmluZyByb29tCiAgICAgICAgICBXaGVyZSBldmVyeXRoaW5nIHJ1bnMgV2luZG96ZSBhbmQgbm90IGV2ZW4gRG9vbQogICAgICAgICAgSSdtIHdhc3RpbmcgbXkgdGltZSBJIGdvdCBub3RoaW5nIHRvIGRvCiAgICAgICAgICBDYXVzZSBlYWNoIHRpbWUgSSB0cnkgSSBoYXZlIHRvIHJlYm9vdAogICAgICAgICAgQW5kIGVhY2ggbWFjaGluZSB0aGF0IGNyYXNoZXMKICAgICAgICAgIE1ha2VzIG1lIHdvbmRlcgoKICAgICAgICAgIEknbSBzaXR0aW5nIGhlcmUgSSBtaXNzIHRoZSBwb3dlcgogICAgICAgICAgV2VsbCB0aGVyZSdzIGEgaHVuZHJlZCBNaXBzIGluc2lkZSB0aGF0IHRvd2VyCiAgICAgICAgICBCdXQgdGhlcmUncyBhIGhlYXZ5IHN5c3RlbSBvdmVyaGVhZAogICAgICAgICAgSXQncyBkb2luZyBubyB3b3JrIGJ1dCBzd2FwcGluZyBpbnN0ZWFkCiAgICAgICAgICBBbmQgZWFjaCB0aW1lIHRoYXQgaXQncyBoYW5naW5nCiAgICAgICAgICBXZWxsIEkgd29uZGVyCgogICAgICAgICAgICBJIHdvbmRlciBob3csIEkgd29uZGVyIHdoeQogICAgICAgICAgICBFdmVyeXRoaW5nIGlzIGRpZmZlcmVudCBhbmQgdGhlIHBhcGVycyBmbHkKICAgICAgICAgICAgQW5kIGFsbCB0aGF0IEkgY2FuIHNlZQogICAgICAgICAgICBJcyBqdXN0IHRoaXMgc3R1cGlkIGdhZGdldHJ5CgogICAgICAgICAgICBJIHBvaW50IGFuZCBjbGljaywgaXQgbWFrZXMgYSBzb3VuZAogICAgICAgICAgICBJIHRoaW5rIGl0J3MgcXVpdGUgb2theSBidXQgdGhlbiBpdCBjcmFzaGVzIGRvd24KICAgICAgICAgICAgQW5kIGJvb3RpbmcgdXAgSSBzZWUKICAgICAgICAgICAgVGhlIERPUyBiZW5lYXRoIHRoZSBnYWRnZXRyeQoKICAgICAgICAgIEknbSBub3QgcXVpdGUgdGhlIG9uZSB0byBjcml0aWNpemUKICAgICAgICAgIEFmdGVyIGFsbCBJJ20ganVzdCBvbmUgb2YgdGhlc2Ugb3RoZXIgZ3V5cwogICAgICAgICAgV2hvIGNhbid0IGVzY2FwZSB0aGUgR2F0ZXMgb2YgSGVsbAogICAgICAgICAgV2hlbiBhbGwgSSByZWFsbHkgd2FudCBpcyBhIGNvbW1hbmQgbGluZSBzaGVsbAogICAgICAgICAgVGhlcmUncyBhbmltYXRlZCBpY29ucwogICAgICAgICAgQW5kIEkgd29uZGVyCgogICAgICAgICAgICBSZXNpZ25hdGlvbgogICAgICAgICAgICBJcyB3aGF0IEkgcmVhbGx5IGZlYXIKICAgICAgICAgICAgRmFzY2luYXRpb24KICAgICAgICAgICAgSXMgd2hhdCBJIHdhbnQgaW5zdGVhZCBvZiBnYWRnZXRyeQoKICAgICAgICAgIExpZmUgY291bGQgYmUgZnVsZmlsbGVkIHdpdGggam95CiAgICAgICAgICBJZiB0aGVyZSB3YXMgYSB3YXkgdGhhdCBJIGNvdWxkIHRyYXNoIHRoaXMgdG95CiAgICAgICAgICBBbmQgZ2V0IGEgcmVhbCBjb21wdXRlcgogICAgICAgICAgV2VsbCBJIHdvbmRlcgoKICAgICAgICAgICAgSSB3b25kZXIgaG93LCBJIHdvbmRlciB3aHkKICAgICAgICAgICAgVGhleSBnb3Qgc28gYmlnIGFuZCB1Z2x5IHdoaWxlIG5vYm9keSB0cmllcwogICAgICAgICAgICBUbyBnaXZlIHVzIHdoYXQgd2UgbmVlZAogICAgICAgICAgICBJbnN0ZWFkIG9mIGZhbmN5IGdhZGdldHJ5CgogICAgICAgICAgICBBIGNyYXNoIGFuIGhvdXIgc2VlbXMgbm9ybWFsIGhlcmUKICAgICAgICAgICAgQnV0IGV2ZXJ5b25lIGFjY2VwdHMgaXQgZHVlIHRvIHN0dXBpZCBmZWFyCiAgICAgICAgICAgIE9mIHN5c3RlbXMgdGhhdCBkb24ndCBuZWVkCiAgICAgICAgICAgIFRoYXQgbmV2ZXJlbmRpbmcgZ2FkZ2V0cnkKCgoKCiAgIDIuIE5UCgogICAgICAgICAgIGJ5IEVyaWsgTWVsdHplciwgYnV0IEZyZWV3YXJlLi4uIDotKQoKICAgICAgICAgIChUbyB0aGUgbWVsb2R5IG9mIFBpbmsgRmxveWQgLSBBbm90aGVyIEJyaWNrIGluIHRoZSBXYWxsKQoKICAgICAgICAgIEF0YXJpcyBnb25lIGFjcm9zcyB0aGUgSGFkZXMKICAgICAgICAgIExlYXZpbmcganVzdCBhIG1lbW9yeQogICAgICAgICAgT2Ygc3lzdGVtcyB3b3JraW5nIHdpdGhvdXQgaGFyZCBkaXNrCiAgICAgICAgICBBbmQgbXVsdGl0YXNraW5nIHdpdGhpbiBvbmUgTUIKCiAgICAgICAgICBKYWNrLCB3aHknZCB5b3UgdGFrZSB0aGUgZG91Z2ggYW5kIGZsZWU/CgogICAgICAgICAgICBBbGwgdGhhdCdzIG5vdyBsZWZ0IHRvIHNlZSBpcyB0aGUgcGFpbiBuYW1lZCBOVAogICAgICAgICAgICBBbGwgdGhhdCdzIG5vdyBsZWZ0IHRvIHNlZSBpcyB0aGUgcGFpbiBuYW1lZCBOVAoKICAgICAgICAgIFdlIGRvbid0IG5lZWQgbm8gU3lzdGVtLkluaQogICAgICAgICAgV2UgZG9uJ3QgbmVlZCBubyBSZWdpc3RyeQogICAgICAgICAgTm8gYW5pbWF0aW9ucyBhbmQgbm8gV2l6YXJkcwogICAgICAgICAgSGVsbG8gQmlsbHksIHdvbid0IHlvdSBsZWF2ZSB1cyBiZT8KCiAgICAgICAgICBCaWxsLCBnbyBhd2F5IGFuZCBsZWF2ZSB1cyBiZQoKICAgICAgICAgICAgVGhlIG9uZSB0aGluZyBJJ2xsIG5ldmVyIGJ1eSBpcyB0aGUgcGFpbiBuYW1lZCBOVAogICAgICAgICAgICBUaGUgb25lIHRoaW5nIEknbGwgbmV2ZXIgdHJ5IGlzIHRoZSBwYWluIG5hbWVkIE5UCgogICAgICAgICAgSSBkb24ndCBuZWVkIG5vIFN1biB0byB3YXJtIG1lCiAgICAgICAgICBJIGRvbid0IG5lZWQgbm8gTWFjIHRvIGNhbG0gbWUKICAgICAgICAgIE15IE5lWFQgY29tcHV0ZXIgd29uJ3QgYmUgYSBQQwogICAgICAgICAgQWZ0ZXIgYWxsIHRoZXJlJ3Mgc3RpbGwgYSBwbGFjZSB0byBCZSEKCiAgICAgICAgICAgIEFuZCB3aGF0IEknbGwgbmV2ZXIgZmVlbCBpcyB0aGUgcGFpbiBuYW1lZCBOVAogICAgICAgICAgICBBbmQgd2hhdCBJJ2xsIG5ldmVyIGtub3cgaXMgdGhlIHBhaW4gbmFtZWQgTlQKCgoKUXVhc2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0YXRpc3RpayAoSGFyZGlsLCAyNi4gSmFuIDE5OTgsIDEzOjM5OjE1KToKClVudGVyIDUwMCBVUy1hbWVyaWthbmlzY2hlbiBGcmF1ZW4gd3VyZGUgZWluZSBVbWZyYWdlIGdlbWFjaHQsIG9iIHNpZSBlaW5lCnNleHVlbGxlIEJlemllaHVuZyB6dSBQcmFlc2lkZW50IEJpbGwgQ2xpbnRvbiBlaW5nZWhlbiB3dWVyZGVuLgoxMzggYW50d29ydGV0ZW4gbWl0ICJOaWUgd2llZGVyLiIKCi1IYXJkaWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3RhdGlzdGlrIChCYW1idWxrbywgMjYuIEphbiAxOTk4LCAxNDo0MDozMCk6Cn4jISBybj1IYXJkaWwgcnQ9ODg1ODE4MzU1IHJnPXdpdHplCn4jISB0aWQ9ODg1ODE4MzU1CkRpZSBJcmFuZXIgaGFiZW4gQmlsbHktQm95IGVtcGZvaGxlbiBlaW5lbiBLZXVzY2hoZWl0c2d1ZXJ0ZWwgenUgdmVyd2VuZGVuLgpIdW1vciBoYWJlbiBzaWUgamEuIDotKQoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmdlcmFkZSBnZWxlc2VuLi4uIChKYXNwZXIsIDI2LiBKYW4gMTk5OCwgMTU6MzU6NDUpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgRSBYCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0KCkRJRSBHRVNDSExFQ0hUU1RFSUxFCgpEaWUgRmFzemluYXRpb24gZGVyIE1lbnNjaGVuIGY/ciBHZXNjaGxlY2h0c3RlaWxlIGlzdCBzbyBhbmhhbHRlbmQgd2llCnVuZXJrbCJyYmFyLCBrZWluZW0gYW5kZXJlbiBLInJwZXJ0ZWlsIHdpcmQgYXVjaCBudXIgYW5uImhlcm5kIHNvIHZpZWwKQXVmbWVya3NhbWtlaXQgZ2V3aWRtZXQuIEVpbiBFbGxlbmJvZ2VuIHouQi4ga2FubiB2b24gbWFrZWxsb3NlcgpTY2gibmhlaXQgc2VpbiAtIGVyIHdpcmQgbmllbWFscyBlaW4gc29sY2hlcyBIYWxsbyB2ZXJ1cnNhY2hlbiB3aWUgZWluClBlbmlzIG9kZXIgZWluZSBWYWdpbmEsIG9id29obCBkaWVzZSBiZWkgb2JqZWt0aXZlciBCZXRyYWNodHVuZyBhdXNzZWhlbgp3aWUgcmFkaW9ha3RpdmVzIEdlbT9zZSBhdXMgZGVtIFdlbHRhbGwuIEVzIHdpcmQgd29obCBlaW4gZXdpZ2VzCkdlaGVpbW5pcyBkZXIgU2NoInBmdW5nIGJsZWliZW4sIHdpZXNvIGRpZSBHZXNjaGxlY2h0c3RlaWxlIG5pY2h0IGRpZQpFcnNjaGVpbnVuZ3Nmb3JtIHZvbiBldHdhcyBoYWJlbiwgZGFzIGRhcyBBdWdlIGVyZnJldXQsIGV0d2EgZGllCkFscGVudmVpbGNoZW5zIG9kZXIgZWluZXIgbXVuZGdlYmxhc2VuZW4gVmFzZSBhdXMgZGVtIEhhcnouCgoKREFTIE0/Tk5MSUNIRSBHTElFRAoKRGFzIG0ibm5saWNoZSBHbGllZCBnaWx0IGFscyBkZXIgTWVyY2VkZXMgdW50ZXIgZGVuIEdlc2NobGVjaHRzb3JnYW5lbi4KSW4gZXJyZWd0ZW0gWnVzdGFuZCBlcnJlaWNodCBlaW4gbm9ybWFsZ2V3YWNoc2VuZXMgbSJubmxpY2hlcyBHbGllZCBlaW5lCkwibmdlIHZvbiA2MCBaZW50aW1ldGVybiB1bmQgd2llZ3QgdW5nZWYiaHIgMyBLaWxvLiBBYmVyIHNlbGJzdCBlaW4KR2xpZWQgdm9uIG51ciA0MCBaZW50aW1ldGVybiBrYW5uIGJlaSBmZXVjaHRlciBXaXR0ZXJ1bmcgbm9jaAp6ZXVndW5nc2YiaGlnIHNlaW4uIERhcyBtIm5ubGljaGUgR2xpZWQga2FubiBleGFrdCA5NTBtYWwgZWpha3VsaWVyZW4sCmRhcyBlbnRzcHJpY2h0IHppZW1saWNoIGdlbmF1IGVpbmVtIGhhbGJlbiBFaW1lci4KCgpERVIgU0FNRU4KCkRlciBtIm5ubGljaGUgU2FtZW4gYmVzdGVodCBhdXMgR2VoaXJuemVsbGVuLCBkaWUgP2JlciBkZW4gSGlwcG90YWxhbXVzCnVuZCBkYXMgUj9ja2VubWFyayBhbiBkaWUgSG9kZW4gZ2VsZWl0ZXQgd2VyZGVuLiBCZWkgamVkZXIgRWpha3VsYXRpb24KdmVybGllcnQgZGVyIE1hbm4gdW5nZWYiaHIgNSBNaWxsaWFyZGVuIEdlaGlybnplbGxlbiwgZGFzIGlzdCBkb3BwZWx0IHNvCnZpZWwgd2llIGJlaSBlaW5lciBWb2xsbmFya29zZS4gR2FueiB3ZXNlbnRsaWNoIGY/ciBkaWUgUHJvZHVrdGlvbiB2b24KU2FtZW4gaXN0IGRpZSBQb3RlbnouCgoKRElFIFBPVEVOWgoKRGllIFBvdGVueiBlaW5lcyBNYW5uZXMgc2V0enQgbWl0IGRlciBQdWJlcnQidCBlaW4gdW5kIHN0ZWlnZXJ0IHNpY2ggdm9uCmRvcnQgYW4ga29udGludWllcmxpY2ggYmlzIGlucyBob2hlIEFsdGVyLiBBbHMgRmF1c3RyZWdlbCBnaWx0OiBFaW4gTWFubgprYW5uIHBybyBUYWcgc28gb2Z0IGVqYWt1bGllcmVuIChhYnNwcml0emVuKSwgd2llIGVyIEphaHJlIGFsdCBpc3QuCkxpZWdlbiBJaHJlIFdlcnRlIGRhcnVudGVyLCBzb2xsdGVuIFNpZSBzaWNoIFNvcmdlbiBtYWNoZW4uCldhaHJzY2hlaW5saWNoIGhhYmVuIFNpZSBIb2RlbmtyZWJzLgoKCkRBUyBXRUlCTElDSEUgR0xJRUQKCkRhcyB3ZWlibGljaGUgR2xpZWQgKGF1Y2ggS2xpdG9yaXMgb2RlciBLaXR6ZWxjaGVuIGdlbmFubnQpIGlzdCBpbQpWZXJnbGVpY2ggenVtIG0ibm5saWNoZW4gZWlnZW50bGljaCBrYXVtIGVydyJobmVuc3dlcnQuIFZvbiBOYXR1ciBhdXMKendlcmdlbmhhZnQgdW5kIHp1cj9ja2dlYmxpZWJlbiwgdmVyYmlyZ3QgZXMgc2ljaCBnZXJuZSB1bnRlciB6d2VpCkhhdXRsYXBwZW4sIGRlbiBTY2hhbWxpcHBlbiwgZGllIG9mdCB2b24gcHIiY2h0aWdlbSBCYXJ0d3VjaHMgdW1zdGFuZGVuCnNpbmQuCgoKRElFIFNDSEFNTElQUEVOCgpEaWUgQmVzY2hhZmZlbmhlaXQgdW5kIEF1c2RlaG51bmcgZGVyIFNjaGFtbGlwcGVuIGJlc3RpbW1lbiBkaWUgc2V4dWVsbGUKQXR0cmFrdGl2aXQidCBlaW5lciBGcmF1IG1hYWdlYmxpY2guIE0ibm5lciBiZXZvcnp1Z2VuIG0iY2h0aWdlLApyYXVtZ3JlaWZlbmRlIFNjaGFtbGlwcGVuLiBNYW4ga2FubiA/YnJpZ2VucyBkaWUgR3IiYWUgZGVyIFNjaGFtbGlwcGVuCmVpbmVyIEZyYXUgYmVzdGltbWVuLCBvaG5lIHNpZSBuYWNrdCBnZXNlaGVuIHp1IGhhYmVuOiBtdWx0aXBsaXppZXJlbgpTaWUgZWluZmFjaCBkaWUgTCJuZ2UgaWhyZXIgT2hybCJwcGNoZW4gbWl0IGRlciBCcmVpdGUgaWhyZXIgT2JlcmxpcHBlLAp1bmQgU2llIGhhYmVuIGRpZSBRdWFkcmF0emVudGltZXRlcnphaGwgZGVyIFNjaGFtbGlwcGVuLgoKCkRJRSBWQUdJTkEKClp3aXNjaGVuIGRlbiBTY2hhbWxpcHBlbiBsaWVndCBkaWUgVmFnaW5hLiBTaWUgaXN0IGlubmVybGljaCBnZWxhZ2VydAp1bmQgd2VpdGdlaGVuZCB1bmVyZm9yc2NodC4gTWFuIHZlcm11dGV0LCBkYWEgc2ljaCBkb3J0IGVpbmUgQXJ0IGdlaGVpbWUKS29tbWFuZG96ZW50cmFsZSB2ZXJiaXJndCwgZGllIGRhcyBTY2hpY2tzYWwgZGVzIFVuaXZlcnN1bXMgc3RldWVydCBvZGVyCnNvLCB3aWxsIGRhcyBhbGxlcyBhYmVyIGF1Y2ggZ2FyIG5pY2h0IHNvIGdlbmF1IHdpc3Nlbi4KCgpERVIgR0VTQ0hMRUNIVFZFUktFSFIKCkJlZ2VnbmV0IGVpbiBnZXNjaGxlY2h0c3JlaWZlcyBtIm5ubGljaGVzIEdsaWVkIGVpbmVyIFZhZ2luYSBpbSBmcmVpZW4KU2V4dWFsd2V0dGJld2VyYiwga2FubiBlcyB6dSBlaW5lbSBHZXNjaGxlY2h0c3ZlcmtlaHIga29tbWVuLiBEaWUKU2FtZW52ZXJtaXR0bHVuZyBrYW5uIGF1ZiBkaWUgYWJlbnRldWVybGljaHN0ZSBBcnQgdW5kIFdlaXNlIHByYWt0aXppZXJ0CndlcmRlbiwgamUgbmFjaCBJbnRlcmVzc2VubGFnZSwgRWlua29tbWVuIHVuZCBSZWxpZ2lvbnN6dWdlaCJyaWdrZWl0LgpWb3JoZXIgYWxsZXJkaW5ncyBtImNodGUgZGFzIFdlaWJjaGVuIGhlZnRpZyB1bWJhbHp0IHdlcmRlbi4KCgpWT1JCRVJFSVRFTiBERVMgR0VTQ0hMRUNIVFZFUktFSFJTCgpXZW5uIFNpZSBlaW5lciBGcmF1IG5hY2hoYWx0aWcgaW1wb25pZXJlbiB3b2xsZW4sIGRhbm4gbGVnZW4gU2llIHZvciBkZW0KUmVuZGV6dm91cyBlaW4gbSJnbGljaHN0IHBydW5rdm9sbGVzIEdld2FuZCB1bmQgZWluZW4gS29wZnB1dHogYXVzCkZyaXNjaGdlbGQgYW4sIGRhcyBzaWduYWxpc2llcnQgc296aWFsZSBTaWNoZXJoZWl0LiBGP2hyZW4gU2llIGRpZSBGcmF1CmluIGVpbiBSZXN0YXVyYW50LiBTb2JhbGQgU2llIGFtIFRpc2NoIHNpbmQsIHNldHplbiBTaWUgSWhyZQo+TWFya2llcnVuZzwsIGluZGVtIFNpZSBydW5kIHVtIGRlbiBQbGF0eiBkZXIgRGFtZSB1cmluaWVyZW4uIERhbWl0CmhhYmVuIFNpZSBJaHJlIEJlc2l0emFuc3ByP2NoZSBhbmdlbWVsZGV0IHVuZCBJaHIgPlJldmllcjwgZmVzdGdlbGVndC4KVHJldGVuIHVuZCBiZWlhZW4gU2llIGplZGVuLCBkZXIgZXMgdmVybGV0enQgKGJpcyBhdWYgZGVuIEtlbGxuZXIpLgpMb2JlbiBTaWUgamV0enQgZGllIEJlY2tlbmJyZWl0ZSBkZXIgRnJhdSwgc3Bla3VsaWVyZW4gU2llIGxhdXRzdGFyawo/YmVyIGlocmUgR2ViInJmImhpZ2tlaXQuIFZlcmJsP2ZmZW4gU2llIHNpZSBtaXQgZGVyIEtlbm50bmlzIGRlcgpRdWFkcmF0emVudGltZXRlcnphaGwgaWhyZXIgU2NoYW1saXBwZW4uIEZyaXNjaGVuIFNpZSBiZWkgR2VsZWdlbmhlaXQKZGllIE1hcmtpZXJ1bmdlbiBhdWYuIFNjaHdlbmtlbiBTaWUgamV0enQgSWhyIEdlbSJjaHQgaGVydW0sIGFubm9uY2llcmVuClNpZSBHZXdpY2h0IHVuZCBzZWluZSBMIm5nZSB1bmQgZm9yZGVybiBTaWUgamVkZW4gZ2VzY2hsZWNodHNyZWlmZW4gTWFubgp6dW0gU2Nod2FuenZlcmdsZWljaC4gUHJhaGxlbiBTaWUgbWl0IGRlbSBNYXJrZW5uYW1lbiBJaHJlciBVbnRlcmhvc2UKdW5kIEFuemFobCBJaHJlciBLYWJlbHByb2dyYW1tZS4gQmVzdGVsbGVuIFNpZSBkaWUgUmVjaG51bmcgdW5kIGZvcmRlcm4KU2llIEtlbGxuZXIgenVtIFNjaHdhbnp2ZXJnbGVpY2guCgoKREFTIFZPUlNQSUVMCgpTb2JhbGQgU2llIGRpZSBEYW1lIElocmVzIEhlcnplbnMgaW4gSWhyZSBXb2hudW5nIGdlemVycnQgaGFiZW4sCmJlZ2lubmVuIFNpZSBtaXQgZGVtIFZvcnNwaWVsLiBXZW5uIFNpZSBzZWxiZXIga2VpbiBJbnN0cnVtZW50CmJlaGVycnNjaGVuLCBzcGllbGVuIFNpZSBpaHIgZWluZmFjaCBpcmdlbmRlaW5lIFBsYXR0ZSB2b3IsIHN0ZWNrZW4gU2llCmRhbm4gSWhyIEdsaWVkIGluIGlocmUgVmFnaW5hIHVuZCBzcHJpdHplbiBTaWUgc2NocmVpZW5kIElocmVuIFNhbWVuCmhpbmVpbi4KCgpPUkFMU0VYCgpPcmFsc2V4IG1laW50IFYiZ2VsbiBtaXQgZGVtIE11bmQuIE1hbiB1bnRlcnNjaGVpZGV0IHp3aXNjaGVuCkN1bm5pbGluZ3VzIHVuZCBGZWxsYXRpbywgamUgbmFjaGRlbSwgd2VyIGdlcmFkZSBtdWEuCgoKQ1VOTklMSU5HVVMKCkhhYmVuIFNpZSBzY2hvbiBtYWwgZWluZW4gQW1laXNlbmIiciBnZXNlaGVuLCBkZXIgP2JlciBlaW5lClRlcm1pdGVua29sb25pZSBoZXJmImxsdD8gR2VuYXUgc28uCgoKRkVMTEFUSU8KCk5laG1lbiBTaWUgZGllIEhhcm5yImhyZSBJaHJlcyBQYXJ0bmVycyBzbyB0aWVmIHdpZSBtImdsaWNoIGluIGRlbiBNdW5kCnVuZCB2ZXJzdWNoZW4gU2llIGRhbm4sID5HZW5lcmFsa29uc3VsYXQ8IHp1IHNhZ2VuLgoKCkRFUiBPUkdBU01VUwoKRWluZSBlaGVyIGJla2xhZ2Vuc3dlcnRlIEZvbGdlZXJzY2hlaW51bmcgZGVzIEdlc2NobGVjaHRzdmVya2VocnMuClc/cmRlbG9zZXJlcyBtb3RvcmlzY2hlcyBWZXJoYWx0ZW4gYWxzIGJlaW0gT3JnYXNtdXMgd2lyZCBzb25zdCBudXIgbm9jaApiZWkgYWx0ZXJuZGVuIFNjaHdlcm1ldGFsbG11c2lrZXJuIHVuZCBpbiBUYW56dGhlcmFwaWVncnVwcGVuCmJlb2JhY2h0ZXQuIFZlcnN1Y2hlbiBTaWUgbSJnbGljaHN0IGRhcmF1ZiB6dSB2ZXJ6aWNodGVuLCBvZGVyLCB3ZW5uIGVzCnNjaG9uIHNlaW4gbXVhLCBuZWhtZW4gU2llIHdlbmlnc3RlbnMgZWluZSBtImdsaWNoc3QgbCJzc2lnZSBIYWx0dW5nCmVpbi4gR2VmP2hsc2sibHRlIHVuZCBLInJwZXJiZWhlcnJzY2h1bmcgc2luZCBoZXV0enV0YWdlIFRydW1wZi4KCgpEQVMgTkFDSFNQSUVMCgpOYWNoIHZvbGx6b2dlbmVtIEF1c3RhdXNjaCBkZXIgR2VzY2hsZWNodHNtaXR0ZWwgc2luZCBNIm5uZXIgb2Z0IHNlaHIKc2NobXVzaWcgdW5kIHoicnRsaWNoa2VpdHNiZWQ/cmZ0aWcsIHciaHJlbmQgRnJhdWVuIGVoZXIgZ3JvYiB1bmQKYWJ3ZWlzZW5kIHNpbmQuIFNwcmluZ2VuIFNpZSA/YmVyIElocmVuIGVpZ2VuZW4gU2NoYXR0ZW4sIHNlaWVuIFNpZQp6InJ0bGljaCB6dSBJaHJlbSBNYW5uISBCbGFzZW4gU2llIGlobSBpbnMgT2hyLCBwcm9kdXppZXJlbiBTaWUgZWluZW4KTGlwcGVuZnVyeiBhdWYgc2VpbmVyIEJydXN0d2FyemUsIGtuZWlmZW4gU2llIGlobiBpbiBkaWUgSG9kZW4gdW5kCnN0ZWNrZW4gU2llIGlobSBkZW4gRmluZ2VyIGluIGRlbiBQbyAtIGVyIGJyYXVjaHQgZGFzIGpldHp0LiBGcmF1ZW4KaGluZ2VnZW4gc2NoInR6ZW4gZXMsIHdlbm4gbWFuIHNpZSBkaXJla3QgbmFjaCBkZW0gViJnZWxuIG5hY2ggZGVyClVocnplaXQgZnJhZ3QuCgoKRElFIEZPTEdFTgoKRWluIHRhZGVsbG9zIHZvbGx6b2dlbmVyIEdlc2NobGVjaHRzdmVya2VociBmP2hydCBuYWNoIHVuc2VyZW0KU2NoInBmdW5nc3BsYW4gaW4gZGVyIFJlZ2VsIHp1bSA+V3VuZGVyIGRlcyBMZWJlbnM8LgoKClZFUkhzVFVORwoKV2VubiBTaWUgYXVmIGRhcyBXdW5kZXIgZGVzIExlYmVucyBrZWluZW4gYmVzb25kZXJlbiBXZXJ0IGxlZ2VuLCBkYW5uCmdpYnQgZXMgZWluaWdlIGVycHJvYnRlIE1pdHRlbCwgZXMgenUgdmVybWVpZGVuIG9kZXIgc3RpbGxzY2h3ZWlnZW5kIHp1CmJlc2VpdGlnZW4uIEhpZXIgZGllIGJlbGllYnRlc3RlbjoKLUdlaXNzZWxuCi1LYWx0ZSBEdXNjaGVuCi1Lb2l0dXMgaW50ZXJydXB0dXMKLUthc3RyYXRpb24KLUFmcmlrYW5pc2NoZSBGZXRpc2NoZQotU3RhdWJzYXVnZXIKLUtvcmtlbnppZWhlcgoKCktPTkRPTUUKCkRlciBVbWdhbmcgbWl0IEtvbmRvbWVuIGlzdCBraW5kZXJsZWljaHQ6IEY/bGxlbiBTaWUgZWluIEtvbmRvbSBiaXMgenVtCkFuc2NobGFnIG1pdCBSb3R3ZWluIHVuZCB3ZXJmZW4gU2llIGRhbWl0IG5hY2ggc2NobGVjaHRlbiBNZW5zY2hlbi4gQWJlcgpiZW51dHplbiBTaWUgbmllbWFscyBlaW4gS29uZG9tIGJlaW0gR2VzY2hsZWNodHN2ZXJrZWhyISBEZXIgQW5ibGljawplaW5lcyBNYW5uZXMsIGRlciBtaXQgeml0dGVybmRlbiBGaW5nZXJuIHZlcnN1Y2h0LCBlaW4gS29uZG9tCj9iZXJ6dXN0P2xwZW4gdW5kIGRhYmVpIGdsZWljaHplaXRpZyBkaWUgRXJla3Rpb24genUgaGFsdGVuLCBpc3QgZWluZXMKZGVyIHc/cmRlbG9zZXN0ZW4gU2NoYXVzcGllbGUgaW4gZGVyIEdlc2NoaWNodGUgendpc2NoZW5tZW5zY2hsaWNoZW4KQmVtP2hlbnMuIE5laG1lbiBTaWUgbGllYmVyIGVpbmUga2FsdGUgRHVzY2hlIG9kZXIgZ2VpYWVsbiBTaWUgc2ljaCBtaXQKbmFzc2VuIEhhbmR0P2NoZXJuLCBkYXJpbiBsaWVndCBtZWhyIFc/cmRlIGFscyBpbiBlaW5lbQpHZXNjaGxlY2h0c3ZlcmtlaHIsIGJlaSBkZW0gZGVyIFNjaHdhbnogZWluZ3BhY2t0IGlzdCB3aWUgZWluZSBUZWV3dXJzdC4KVW5kIHNjaGxpZWFsaWNoOiB3ZW5uIFNpZSBzbyBlaW5lbiBTY2hpYSB2b3IgdW5oZWlsYmFyZW4Kc2JlcnRyYWd1bmdza3JhbmtoZWl0ZW4gaGFiZW4sIHdhcnVtIGdlaGVuIFNpZSBkYW5uIGF1c2dlcmVjaG5ldCB6dSBkZW4KSHVyZW4/IFdpZXNvIHNjaGxlcHBlbiBTaWUgc3QibmRpZyB3ZWNoc2VsbmRlIEdlc2NobGVjaHRzcGFydG5lciBhdXMKP2JlbCBMb2thbGl0InRlbiBhYj8gVW5kIG11YSBlcyBkZW5uIHVuYmVkaW5ndCBBbmFsdmVya2VociBhdWYgZGVtClN0YWR0cGFyayBzdCJuZGlnIHdlY2hzZWxuZGVuIFBhcnRuZXJuIHNlaW4/IFByYWt0aXppZXJlbiBTaWUgbGllYmVyCmVpbmVuIHQ/YyBUcm9ja2VuZmljayEKCgpTQ0hXQU5HRVJTQ0hBRlQKCk5hdD9ybGljaCBrIm5uZW4gU2llIGF1Y2ggZGVyIFNjaHdhbmdlcnNjaGFmdCBpaHJlIGdvdHRnZWdlYmVuZW4gTGF1ZgpsYXNzZW4sIHdvYmVpIFNpZSBhbGxlcmRpbmdzIGVpbmVzIGJlZGVua2VuIHNvbGx0ZW46IEJlaSBqZWRlcgpOaWVkZXJrdW5mdCB2ZXJsaWVydCBlaW5lIEZyYXUgMTAgTWlsbGlhcmRlbiBHZWhpcm56ZWxsZW4sIGRhcyBpc3QKdW5nZWYiaHIgc292aWVsIHdpZSBlaW4gSnVua2llIGJlaW0gZ29sZGVuZW4gU2NodWEuIEF1YWVyZGVtIGlzdCBkZXIKVW1nYW5nIG1pdCBzY2h3YW5nZXJlbiBGcmF1ZW4gc2VociBoZWlrZWwuIERlciB3ZWlibGljaGUgT3JnYW5pc211cwpwcm9kdXppZXJ0IHciaHJlbmQgZGVyIFNjaHdhbmdlcnNjaGFmdCBlaW4gayJycGVyZWlnZW5lcwpldXBob3Jpc2llcmVuZGVzIFJhdXNjaG1pdHRlbCwgZGFzIG1hbmNoIGVpbiBEcm9nZW5oIm5kbGVyIGdlcm4gYXVmCkZsYXNjaGVuIHppZWhlbiB3P3JkZS4gRXMgbWFjaHQgYWJoIm5naWcgdW5kIGthbm4genUgd2VpdGVyZW4KU2Nod2FuZ2Vyc2NoYWZ0ZW4gZj9ocmVuLiBadWRlbSBlbXBmaW5kZXQgc2ljaCBlaW5lIEZyYXUgdyJocmVuZCBkZXIKU2Nod2FuZ2Vyc2NoYWZ0IGFscyB6d2VpIFBlcnNvbmVuIHVuZCByZWRldCB2b24gc2ljaCBpbiBkZXIgTWVocnphaGwuCkJldm9yIFNpZSBhbHNvIGVpbmUgRnJhdSBzY2h3Im5nZXJuLCBzb2xsdGVuIFNpZSBzaWNoID9iZXJsZWdlbiwgb2IgU2llCmRpZSA5IE1vbmF0ZSBkZW4gSGF1c2hhbHQgbWl0IGVpbmVyIGRyb2dlbnM/Y2h0aWdlbiBTY2hpem9waHJlbmVuIHRlaWxlbgoKCk1JU1NMVU5HRU5FIEtJTkRFUgoKRWluIEdlaGZlaGxlciwgZWluIFNjaGllbGVuLCBlaW4gV2Fzc2Vya29wZiAtIHNvIGV0d2FzIGthbm4gZWluZW0gZGllCkx1c3QgYW0gZ2FuemVuIEtpbmQgdmVyZGVyYmVuLiBFcyB3InJlIHZlcmxvZ2VuLCBkZW4gV2VjaHNlbGJhbGcgZmFsc2NoZQpFbHRlcm5saWViZSB2b3J6dWhldWNoZWxuLiBMYXNzZW4gU2llIGVzIGFsc28gZGllIGdhbnplIFd1Y2h0IElocmVyCkFibmVpZ3VuZyBzcD9yZW4gdW5kIHNjaGFmZmVuIFNpZSBlcyBzaWNoIHNvIHNjaG5lbGwgd2llIG0iZ2xpY2ggdm9tCkhhbHMuIFNjaG9uIGJlaSBkZXIgTmFtZW5zZ2VidW5nIGsibm5lbiBTaWUgZGFmP3Igc29yZ2VuLCBkYWEgc2VpbmUKRXhpc3RlbnogenVyIEgibGxlIHdpcmQuIE5lbm5lbiBTaWUgZGFzIEtpbmQgZWluZmFjaAo+Sm9naHVydDwsPkFyc2NoZmljazwgb2RlciA+VmFnaW5hPCwgZGFzIHdpcmQgaWhtIGVpbmUgTGVocmUgc2VpbiwKZGVyYXJ0IG1pYWdlc3RhbHRldCBpbiBJaHIgTGViZW4genUgcGxhdHplbi4gTWFjaGVuIFNpZSBkYXMgS2luZCB6dW0KU3BpZWxiYWxsIElocmVyIExhdW5lbiwga2xlaWRlbiBTaWUgZXMgYXVzc2NobGllYWxpY2ggaW4gZ3JvYmVzClNhY2tsZWluZW4sIHVuZCBzY2hpY2tlbiBTaWUgZXMgYmFyZnVhIGluIGRlbiBTY2huZWUsIHp1bQpTdHJlaWNoaCJsemVydmVya2F1ZmVuLiBTb2JhbGQgZXMgc3RyYWZtP25kaWcgZ2V3b3JkZW4gaXN0LCBzY2htdWdnZWxuClNpZSBpaG0gMTAgR3JhbW0gSGVyb2luIHVuIHVuZCBydWZlbiBkYW5uIGRpZSBCdWxsZW4uCgoKV1VOU0NIS0lOREVSCgpFaW4gV3Vuc2Noa2luZCBsImF0IHNpY2ggZ2FueiBlaW5mYWNoIGR1cmNoIGVudHNwcmVjaGVuZGUgTGVrdD9yZSBiZWltCkdlc2NobGVjaHRzdmVya2VociBiZXN0aW1tZW4uIExlc2VuIFNpZSBkYWJlaSA+T25rZWwgVG9tJ3MgSD90dGU8IHVuZAo+TW9ieSBEaWNrPCwgZGFubiBiZWtvbW1lbiBTaWUgZWluZW4gZWluYmVpbmlnZW4gTmVnZXIsIGxlc2VuIFNpZSA+QXVmCmRlciBTdWNoZSBuYWNoIGRlciB2ZXJsb3JlbmVuIFplaXQ8IHVuZCA+RGFzIFJ1YWxhbmRoYXVzPCwgZGFubiBiZWtvbW1lbgpTaWUgZWluZW4gc2Nod3VsZW4gU3Bpb24uCgoKTUFTVFVSQkFUSU9OCgpFcyBnaWJ0IGRyZWkgZ3JvYWUgQXVnZW5ibGlja2UgaW0gTGViZW4gZWluZXMgZ2widWJpZ2VuIE1lbnNjaGVuOiBkaWUKZXJzdGUgS29tbXVuaW9uLCBkaWUgZXJzdGUgTWFzdHVyYmF0aW9uIHVuZCBkaWUgbGV0enRlIEFic29sdXRpb24uIE1hbgpzb2xsdGUgamVkZW4gZGllc2VyIEFrdGUgc28gZmVpZXJsaWNoIHdpZSBtImdsaWNoIGJlZ2VoZW4uIEZhbGxlbiBTaWUKYWxzbyBuaWNodCA/YmVyIElocmVuIFNjaHdhbnogaGVyIHdpZSBIaXRsZXIgP2JlciBQb2xlbiAtIHNlaWVuIFNpZQplaW5mP2hsc2FtLiBTYWdlbiBTaWUgaWhtLCBkYWEgZXMgbmljaHQgbnVyIFNleCBpc3QsIGRlciBTaWUgenUgaWhtCmhpbnppZWh0LCBzb25kZXJuIHZpZWxtZWhyIHNlaW5lIEludGVsbGlnZW56IHVuZCBzZWluIFNpbm4gZj9yIEh1bW9yLgpTY2hpZWJlbiBTaWUgeiJydGxpY2ggc2VpbmUgVm9yaGF1dCB6dXI/Y2ssIGtudWRkZWxuIFNpZSBJaHJlIEhvZGVuLgpNYXNzaWVyZW4gU2llIElocmUgQnJ1c3R3YXJ6ZW4sIGtuZXRlbiBTaWUgSWhyZSBQb2JhY2tlbiB1bmQgbGVja2VuIFNpZQpJaHJlIEFjaHNlbGgiaGxlbiwgd2VubiBTaWUgc28gZ2VsZW5raWcgc2luZC4gVz9yZ2VuIFNpZSBqZXR6dCBJaHIKR2xpZWQsIGJpcyBlcyB2b2xsZSBNYXN0dXJiYXRpb25zaCJoZSBlcnJlaWNodCBoYXQgKDYwIGNtKS4gV2VubiBlcyBzaWNoCnppZXJ0IGdlYmVuIFNpZSBpaG0gZWluIHBhYXIgT2hyZmVpZ2VuLCBvZGVyIHplcnJlbiBTaWUgYW4gSWhyZW4gU2NoYW1oYWFyZW4uClNwcml0emVuIFNpZSBzbyB3ZWl0IHdpZSBtImdsaWNoIGFiLCBtZXNzZW4gU2llIGRpZSBFbnRmZXJudW5nIHVuZCBwcmFobGVuIFNpZQpkYW1pdCB2b3IgSWhyZW4gRnJldW5kZW4uIEZyYXVlbiBtYWNoZW4gZ2VuYXUgZGFzc2VsYmUsIG51ciBpbSB1bWdla2VocnRlbgpVaHJ6ZWlnZXJzaW5uLgoKClRBQlVTCgpHcnVuZHMidHpsaWNoIGlzdCBiZWltIEdlc2NobGVjaHRzdmVya2VociBhbGxlcyBlcmxhdWJ0LCB3YXMgenVyIEhlYnVuZwpkZXMgT3JnYXNtdXNuaXZlYXVzIGRpZW50LiBOdXIgZWlucyBzb2xsdGUgbWFuIGRhYmVpIG5pY2h0IHR1bjogbGFjaGVuLgpTZXggaXN0IGVpbiBoZWlsaWdlciBBa3QsIGVpbiBHZWJvdCBhdXMgSyJycGVycyJmdGVuLCBlaW4gSG9jaGFtdCBkZXIKTHVzdCwgZGFyP2JlciBsYWNodCBtYW4gbmljaHQuIEJlc29uZGVycyBNIm5uZXIgc2luZCBkYSBzZWhyIGhlaWtlbC4KU2Nob24gbWFuY2ggZWluIEhlaXRlcmtlaXRzYXVzYnJ1Y2ggZWluZXIgRnJhdSBiZWltIEFuYmxpY2sgZWluZXMKbSJubmxpY2hlbiBHZXNjaGxlY2h0c3RlaWxzIGhhdCB6dSBLdXJ6c2NobHVhcmVha3Rpb25lbiBiaXMgenVtIEF4dG1vcmQKZ2VmP2hydC4gQWxzbyB2ZXJrbmVpZmVuIFNpZSBzaWNoIGRhcyBMYWNoZW4uIFNpZSBmYW5nZW4gamEgYXVjaCBuaWNodAphbiB6dSBvbmFuaWVyZW4sIHdlbm4gamVtYW5kIGVpbmVuIFdpdHogZXJ6ImhsdC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdWVyIGFtYXpvcmEgOikgKEphc3BlciwgMjYuIEphbiAxOTk4LCAxNTo1MTo1Nyk6ClRyZWZmZW4gc2ljaCB6d2VpIEJsb25kaW5lbi4KQjE6IEljaCBoYWJlIGdlc3Rlcm4gZWluZW4gU2Nod2FuZ2Vyc2NoYWZ0c3Rlc3QgZ2VtYWNodCEKQjI6IFVuZD8/Pz8gV2FyZW4gZGllIEZyYWdlIHNjaHdlcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm51ciBmdWVyIGphc3BlciA6KSBiaXR0ZSBzb2ZvcnQgJ3EnIGRydWVja2VuIChKYXNwZXIsIDI2LiBKYW4gMTk5OCwgMTU6NTg6NTUpOgpGOiBXYXJ1bSBzaW5kIGJlaSBkZW4gRnJhdWVuIGRpZSBMb2VjaGVyIHNvIGVuZyBiZWllaW5hbmRlcj8KQTogRGFtaXQgbWFuIHNpZSB3aWUgU2l4cGFja3MgdHJhZ2VuIGthbm4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXJ1bSBrcmllZ2VuIEZyYXVlbiB1ZWJlciA1MCBrZWluZSBQZXJpb2RlIG1laHI/CkE6IFdlaWwgc2llIGRhcyBCbHV0IGZ1ZXIgaWhyZSBLcmFtcGZhZGVybiBicmF1Y2hlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIGhhYmVuIEZyYXVlbiAzIEtub3BmZSBhdWYgZGVyIFN0aXJuPwpBOiBTcHVlbGVuICAgRmlja2VuICAgIEF1cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gc2VoZW4gRnJhdWVuIGJlc3NlciBhdXMgYWxzIHNpZSBrbHVnIHNpbmQ/CkE6IFdlaWwgTWFlbm5lciBiZXNzZXIgc2VoZW4gYWxzIGRlbmtlbiBrb2VubmVuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gbmVobWVuIEZyYXVlbiBpbW1lciBpaHJlIEhhbmR0YXNjaGUgbWl0IGF1ZiBkaWUgVG9pbGV0dGU/CkE6IERhbWl0IHNpZSBhdWNoIHdhcyBpbiBkZXIgSGFuZCBoYWJlbiAuLi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIHJlaWJlbiBzaWNoIEZyYXVlbiBpbiBkZXIgRnJ1ZWhlIGRpZSBBdWdlbj8KQTogV2VpbCBzaWUga2VpbmUgSG9kZW4gaGFiZW4sIGRpZSBzaWUga3JhdHplbiBrb2VubnRlbiEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdoYXQncyB0aGUgZGlmZmVyZW50IGJldHdlZW4gYSBnaXJsIHRha2luZyBhIGJhdGgsIGFuZCBhIG51bj8KQTogQSBudW4gaGFzIGhvcGUgaW4gaGVyIHNvdWwsCiAgIGFuZCB0aGUgZ2lybCBoYXMgc29hcCBpbiBoZXIgaG9sZS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBmdWVobHQgZWluZSBGcmF1IGJlaW0gT3JnYXNtdXM/CkE6IElzJyBtaXIgZG9jaCBlZ2FsIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0ga29lbm5lbiBGcmF1ZW4gbmljaHQgaHVlYnNjaCB1bmQgZ2xlaWNoemVpdGlnIGludGVsbGlnZW50IHNlaW4/CkE6IERhbm4gd2FlcmVuIHNpZSBqYSBNYWVubmVyIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gaGFiZW4gRnJhdWVuIHNvIGtsZWluZSBIYWVuZGU/CkE6IERhbWl0IHNpZSBiZXNzZXIgaW4gZGVuIEVja2VuIHB1dHplbiBrb2VubmVuIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogVW5kIHdhcnVtIGhhYmVuIHNpZSBzbyBrbGVpbmUgRnVlc3NlPwpBOiBEYW1pdCBTaWUgbmFlaGVyIGFtIEhlcmQgc3RlaGVuIGtvZW5uZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXaWUgaGVpc3N0IGVpbiBHZXNlbGxlIGJlaW0gRnJhdWVuYXJ6dD8KQTogR2FueiBrbGFyOiBMaXBwZW5zdGlmdCEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IGFuIGVpbmVyIEdlc2NobGVjaHRzdW13YW5kbHVuZyB6dXIgRnJhdSBhbSBzY2htZXJ6aGFmdGVzdGVuPwpBOiBJc3QgZG9jaCBsb2dpc2NoLCBkYXMgR2VoaXJuIGFic2F1Z2VuIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGhpbnRlcmxhZXNzdCBlaW5lIFNjaGxlaW1zcHVyIHp3aXNjaGVuIEt1ZWNoZSB1bmQgU2NobGFmemltbWVyPwpBOiBFaW5lIEZyYXUgb2huZSBCZWluZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gYnJhdWNoZW4gRnJhdWVuIGtlaW5lIEJlaW5lPwpBOiBVbSB2b24gZGVyIEt1ZWNoZSBpbnMgQmV0dCB6dSBrb21tZW4sIGJyYXVjaHQgbWFuIGtlaW5lIEJlaW5lLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogVW5kIHdhcnVtIGhhYmVuIHNpZSB0cm90emRlbSB3ZWxjaGU/CkE6IERhbWl0IHNpZSBuaWNodCBzbyBoYWVzc2xpY2hlIFNjaGVpbXNwdXJlbiBhdWYgZGVuIExpbm9sZXVtIGhpbnRlcmxhc3Nlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdvcmFuIGVya2VubnQgbWFuIGVpbmUgaGVpc3NibHVldGlnZSBGcmF1PwpBOiBXZW5uIG1hbiB1bnRlbiBlaW5lbiBNYWlza29sYmVuIHJlaW5zdGVja3Qga29tbXQgb2JlbiBQb3Brb3JuIHJhdXMuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXb3JhbiBlcmtlbm50IG1hbiwgb2IgZWluZSBGcmF1IHNjaHdhbmdlciBpc3Q/CkE6IE1hbiBzY2hpZWJlIGlociBlaW5mYWNoIGVpbmUgUnVlYmUgdW50ZW4gcmVpbiwgdW5kIHdlbm4gc2llIGFuZ2VrbmFiYmVydAogICB3aXJkLCBpc3QgZXMgcG9zaXRpdi4gKEF1Y2ggIk9la29sb2dpc2NoZXIgU2Nod2FuZ2Vyc2NoYWZ0c3Rlc3QiIGdlbmFubnQhKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGlzdCBibGF1IHVuZCBsYWV1ZnQgaW1tZXIgendpc2NoZW4gS3VlY2hlIHVuZCBXb2huemltbWVyIGhpbiB1bmQgaGVyPwpBOiBKZWRlciBrYW5uIHNlaW5lIEZyYXUgYW5tYWxlbiB3aWUgZXIgd2lsbCEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdpZXZpZWxlIE5lZ2VyIGJyYXVjaHQgbWFuIHVtIDEwMDAgVG9pbGV0dGVuIHp1IHJlaW5pZ2VuPwpBOiBLZWluZW4gLi4uIElzdCBGcmF1ZW5hcmJlaXQhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXaWUgbmVubnQgbWFuIGRhcyBudXR6bG9zZSBGbGVpc2NoIHVtIGRpZSBNb2VzZSBydW5kcnVtPwpBOiBGcmF1IQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gYmx1dGVuIEZyYXVlbj8KQTogV2VpbCBzaWUgZXMgdmVyZGllbnQgaGFiZW4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgbWFjaGVuIEZyYXVlbiBpbSBSYXVtc2NoaWZmPwpBOiBQdXR6ZW4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBGcmF1IHVuZCBlaW5lbSBLdWVobHNjaHJhbms/CkExOiBEZXIgS3VlaGxzY2hyYW5rIGZ1cnp0IG5pY2h0LCB3ZW5uIG1hbiBkaWUgV3Vyc3QgcmF1c3ppZWh0LgpBMjogV2VubiBtYW4gZGllIFd1cnN0IGF1cyBkZW0gS3VlaGxzY2hyYW5rIG5pbW10LCB0cm9wZnQgc2llIG5pY2h0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgRnJhdSB1bmQgZWluZW0gVHVtb3I/CkE6IEVpbiBUdW1vciBrYW5uIGd1dGFydGlnIHNlaW4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBGcmF1IHVuZCBlaW5lciBCb3dsaW5na3VnZWw/CkE6IEluIGVpbmUgQm93bGluZ2t1Z2VsIGthbm4gbWFuIG51ciBkcmVpIEZpbmdlciByZWluc3RlY2tlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGRlbSBFaWZmZWx0dXJtIHVuZCBkZW4gQmVpbmVuIGVpbmVyIEZyYXU/CiAgIE5hIGhvZXIgbWFsLCBkZXIgaXN0IGdlbmF1IGRhcyBfR2VnZW50ZWlsXyAhCiAgIEplIGR1ZW5uZXIgZXIgd2lyZCwgZGVzdG8gYmVzc2VyIHdpcmQgZGllIEx1ZnQgLi4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lciBGcmF1IHVuZCBlaW5lciBDaGFwcGktRG9zZT8KQTogQ2hhcHBpIGdpYnQgZXMgamV0enQgYXVjaCBtaXQgSGlybi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIGludGVsbGlnZW50ZW4gRnJhdSB1bmQgWWV0aT8KQTogWWV0aSBoYXQgbWFuIHNjaG9uICdtYWwgZ2VzZWhlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEZyYXVlbiB1bmQgU29ja2VuPwpBOiBTb2NrZW4gcmllY2hlbiBlcnN0LCBOQUNIREVNIG1hbiBkcmluIHdhci4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIFBvcnNjaGUgdW5kIGVpbmVyIEp1bmdmcmF1PwpBOiBLRUlORVIuIEluIGJlaWRlIGtvbW10IG1hbiBzY2hsZWNodCByZWluLCBhYmVyIHdlbm4gbWFuIGVyc3QgbWFsIGRyaW4gaXN0LAogICBmdWVobHQgbWFuIHNpY2ggc2F1d29obC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIGxhbmdlbiBSb2NrIHVuZCBlaW5lbSBNaW5pcm9jaz8KQTogRGllIFp1Z3JpZmZzemVpdCEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBoYWJlbiBGcmF1ZW4gdW5kIEZsdWd6ZXVnZSBnZW1laW5zYW0/CkE6IEJlaWRlIGhhYmVuIGVpbiBDb2NrcGl0IQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGhhYmVuIEZyYXVlbiB1bmQgRmxhc2NoZW4gZ2VtZWluc2FtPwpBOiBWb20gSGFscyBhYiBzaW5kIHNpZSBiZWlkZSBob2hsLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGhhdCBlaW5lIFNjaHJvdGZsaW50ZSB1bmQgZWluZSBGcmF1IGdlbWVpbnNhbT8KQTogTWFuIGthbm4gYmVpZGUgaW4gZGVyIE1pdHRlIGtuaWNrZW4gdW5kIHZvbiBIaW50ZW4gZHVyY2hsYWRlbiEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIGhhYmVuIEZyYXVlbiBlaW5lIEdlaGlybndpbmR1bmcgbWVociBhbHMgSHVlaG5lcj8KQTogRGFtaXQgU2llIG5pY2h0IGluIGRlbiBIb2Yga2Fja2VuIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV296dSBoYXQgZWluZSBGcmF1IHNlY2hzIExpcHBlbj8KQTogWndlaSB6dW0gU2NoZWlzc2UgbGFiZXJuIHVuZCB2aWVyIHVtIGRhcyB3aWVkZXIgZ3V0IHp1IG1hY2hlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBpc3Qgc2Nod2VyZXIgenUgYmF1ZW4sIGVpbiB3ZWlibGljaGVyIG9kZXIgZWluIG1hZW5ubGljaGVyIFNjaG5lZW1hbm4/CkE6IEVpbiB3ZWlibGljaGVyLCBkZW5uIGRhIG11c3MgbWFuIGRlbiBLb3BmIGF1c2hvZWhsZW4gISEhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXaWUgZmluZGV0IG1hbiBiZWkgZWluZXIgRnJhdSBhbSBzY2huZWxsc3RlbiBkZW4gTmFiZWw/CkE6IExhbmdzYW0gbWl0IGRlbSBGaW5nZXIgZGVuIFJ1ZWNrZW4gaGludW50ZXJmYWhyZW4uCiAgIFdlbm4gZGVyIEZpbmdlciBkYXMgMy4gbWFsIGVpbnJhc3RldCwgZGFubiBoYXN0IGR1IGlobiEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIGhhYmVuIEZyYXVlbiA1MTIgS25vY2hlbiBtZWhyIGFscyBNYWVubmVyPwpBOiBXZWlsIGlociBHZWhpcm4gbm9jaCBtZWNoYW5pc2NoIGFyYmVpdGV0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGlzdCBkaWUgU3RlaWdlcnVuZyB2b24gRnJhdWVucG93ZXI/CkE6IFJpbmRlcndhaG5zaW5uIQpGOiBVbmQgZGFzIFN1cGVybGF0aXY/CkE6IFNjaHdlaW5lcGVzdC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIGhhYmVuIEZyYXVlbiBCZWluZT8KQTE6IFVtIHZvbiBkZXIgS3VlY2hlIGlucyBTY2hsYWZ6aW1tZXIgenUgZ2VoZW4hCkEyOiBEYW1pdCBzaWUga2VpbmUgU2NobGVpbXNwdXIgaGludGVybGFlc3N0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2llIGhlaXNzdCBkZXIgYmlsbGlnc3RlIE1vdG9yPwpBOiBGcmF1LiBad2VpIFRyb3BmZW4gZ2VudWVnZW4gdW5kIHNpZSBsYWV1ZnQgbmV1biBNb25hdGUuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IHBvc2l0aXYgZGFyYW4sIHdlbm4gbWFuIGRpZSBGcmF1IGluIGRlbiBLZWxsZXIgc3R1ZXJ6dD8KQTogU2llIGthbm4gZ2xlaWNoIGVpbmUgRmxhc2NoZSBCaWVyIG1pdGJyaW5nZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgd2FyIGRlciBsZXR6dGUgRnVua3NwcnVjaCBkZXIgQ2hhbGxlbmdlciwgYmV2b3Igc2llIGV4cGxvZGllcnRlPwpBOiAiSWNoIGxhc3NlIGpldHp0IG1hbCBkaWUgRnJhdSBhbnMgU3RldWVyIC4uLiIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdpZSBuZW5udCBtYW4gZWluZSAxIE1ldGVyIGdyb3NzZSBGcmF1PwpBOiBTdGFuZGdlYmxhZXNlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaGF0IGVpbmUgRnJhdSBvaG5lIEZ1ZXNzZT8KQTogRWluZW4gRXJkLUJhZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIGJla29tbWVuIEZyYXVlbiBrZWluZSBUYWJsZXR0ZW4gbWVocj8KQTogQXJzY2hsb2VjaGVyIGJla29tbWVuIG51ciBub2NoIFphZXBmbGUuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IG1pdCBlaW5lciBGcmF1IHBhc3NpZXJ0LCBkaWUgOTklIGlocmVzIEdlaGlybnMgdmVybG9yZW4gaGF0PwpBOiBTaWUgaXN0IFdpdHdlLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gaGFiZW4gRnJhdWVuIGRlbiBTY2hsaXR6IGxhZW5ncyB6d2lzY2hlbiBkZW4gQmVpbmVuPwpBOiBEYW1pdCBzaWUgYmVpbSBHZWhlbiBuaWNodCBzY2htYXR6ZW4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXaWUgc2llaHQgZGllIElkZWFsZSBGcmF1IGF1cz8KQTogU2llIGlzdCBjYS4gMTEwY20gZ3Jvc3MgdW5kIGhhdCBlaW5lbiBwbGF0dGVuIEtvcGYuCkY6IFdhcnVtIGlzdCBkYXMgc28/CkE6IERhbWl0IG1hbiBzZWluIEJpZXJnbGFzIGlyZ2VuZHdvIGFic3RlbGxlbiBrYW5uLCB3YWVocmVuZCBtYW4gaW0gc3RlaGVuCiAgIGVpbmVuIGdlYmxhc2VuIGJla29tbXQuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXaWUgYmVrb21tdCBtYW4gZGFzIEdlaGlybiBlaW5lciBGcmF1IGF1ZiBFcmJzZW5ncm9lc3NlPwpBOiBLcmFlZnRpZyBhdWZibGFzZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXb3JhbiBlcmtlbm50IG1hbiwgb2IgZWluZSBGcmF1IGx1ZWd0PwpBOiBTY2hhdSBlaW5mYWNoLCBvYiBzaWUgZGllIExpcHBlbiBiZXdlZ3QhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXJ1bSBrb2VubmVuIHNpY2ggbnVyIEZyYXVlbiByaWNodGlnIGJlc2F1ZmVuPwpBOiBTaWUgc2luZCBkaWUgZWluemlnZW4gZGllIHNpY2ggImVpbmVuIGhpbnRlciBkaWUgQmluZGUga2lwcGVuIGtvZW5uZW4iLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogRWluZSBGcmF1IGdlaHQgYXVzIGRlbSBIYXVzLiBTaWUgdWViZXJxdWVydCBkaWUgU3RyYXNzZS4gRWluIEF1dG8ga29tbXQsCiAgIGZhZWhydCBkaWUgRnJhdSBhbiwga29tbXQgZGFiZWkgaW5zIHNjaGxldWRlcm4gdW5kIHJhc3QgaW4gZWluIEltYmlzcwpnZWdlbi0KICAgdWViZXIuIERpZSBkYXJhdXMgZmxpZWhlbmRlbiBQZXJzb25lbiByZW5uZW4gdWViZXIgZGllIFN0cmFzc2UgaW4gdm9sbGVyClBhbmlrCiAgIHVuZCByZW5uZW4gZGFiZWkgYW5kZXJlIFBhc3NhbnRlbiwgZGllIGRhYmVpIHN0YW5kZW4sIHVlYmVyIGRlbiBIYXVmZW4uCiAgIFdlciBoYXQgU2NodWxkPwpBOiBEaWUgRnJhdS4uLi4tPldhcnVtIGlzdCBzaWUgdm9tIEhlcmQgd2VnZ2VnYW5nZW4/CiAgb2RlcjoKRjogRWluZSBGcmF1IGdlaHQgdWViZXIgZWluZW4gWmVicmFzdHJlaWZlbiB1bmQgd2lyZCB2b24gZWluZW0gTWVyY2VkZXMKICAgdWViZXJmYWhyZW4uIFdlciBoYXQgc2NodWxkID8KQTogTmEgZGllIEZyYXUsIC4uLiB3YXMgZ2VodCBzaWUgdm9tIEtvY2h0b3BmIHdlZyA/ISEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdlbiBlaW5lIEZyYXUgYXVmIGRlciBvYmVyc3RlbiBTcHJvc3NlIGVpbmVyIExlaXRlciBzdGVodCwgZGllIFNwcm9zc2UKICAgYnJpY2h0IChlcyB3YXIgZWluIEZhYnJpa2F0aW9uc2ZlaGxlciksIHdlciBoYXQgZGFubiBTY2h1bGQ/CkE6IERpZSBGcmF1IG5hdHVlcmxpY2ggLi4uLT4gU2llIHNvbGx0ZSBiZXNzZXIgYW0gQm9kZW4gYmxlaWJlbiwgZGEgc2llIGVoIG51cgogICBuaWVkZXJlIEFyYmVpdGVyIGdld29obnQgaXN0IHVuZCB2ZXJyaWNodGVuIGthbm4gLi4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBJbiB3ZWxjaGVyIFplaXR1bmcgc3RlaGVuIHNvbGNoZSBTY2hsYWd6ZWlsZW4gd2llOgogICAiRnJhdSB3YXJmIE1hbm4gYXVzIGRlbSBGZW5zdGVyIiA/CkE6IEluIGRlciBCaWxkemVpdHVuZwpGOiBJbiB3ZWxjaGVyIFplaXR1bmcgc3RlaGVuIHNvbGNoZSBTY2hsYWd6ZWlsZW4gd2llOgogICAiTWFubiB3YXJmIEZyYXUgYXVzIGRlbSBGZW5zdGVyIj8KQTogSW4gZGVyICJTY2hvZW5lciBXb2huZW4iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGOiBXYXMgaXN0IGVpbmUgRnJhdSBvaG5lIEJ1Y2tlbiA/CkE6IEVpbmUgZmF1bGUgU2F1ICEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcyBoYWJlbiBlaW5lIHNjaHdhbmdlcmUgRnJhdSB1bmQgZWluZSB0b3RlIEZsaWVnZSBhdWYgZGVtIFJ1ZWNrZW4gZWluZXIKICAgS3VoIGdlbWVpbnNhbT8KQTogU2llIHd1cmRlbiBiZWlkZSB2b20gU2Nod2FueiBnZXNjaGxhZ2VuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FzIGlzdCBkZXIgVW50ZXNjaGllZCB6d2lzY2hlbiB6d2VpIEZyYXVlbj8KQTogRXMgZ2lidCBrZWluZS4gQmVpZGUgc2luZCBnbGVpY2ggdGllZi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdhcnVtIG11c3MgZGllIEtldHRlLCBtaXQgZGVyIG1hbiBGcmF1ZW4gYW4gZGVuIEhlcmQga2V0dGV0LCBtaW5kZXN0ZW5zIDIgbQogICBsYW5nIHNlaW4/CkE6IERhbWl0IGRpZSBhbHRlIFNjaGxhbXBlIG5vY2ggYW4gZGllIFNwdWVsZSBrb21tdCEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkY6IFdpZSB2aWVsZSBUaWVyZSBicmF1Y2h0IGVpbmUgRnJhdSA/CkE6IE5hLCBrbGFyLCB2aWVyLgogICAnbmVuIE5lcnogaW0gS2xlaWRlcnNjaHJhbmsuCiAgICduZW4gSGVuZ3N0IGZ1ZXIncyBCZXR0LgogICAnbmVuIEphZ3VhciB2b3IgZGVyIFR1ZXIuCiAgIFVuZCAnbmVuIGFsdGVuIEVzZWwgZGVyIGRhcyBhbGxlcyBiZXphaGx0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gcGFya2VuIEZyYXVlbiBpaHJlIEF1dG9zIGltbWVyIHZvcndhZXJ0cyBhbiBTdHJhc3NlbnNlaXRlPwpBOiBEaWUgbW9lZ2VuJ3MgaGFsdCBuaWNodCB2b24gaGludGVuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRjogV2FydW0gYnJhdWNoZW4gRnJhdWVuIGtlaW5lIFVocmVuIHp1IHRyYWdlbj8KQTogSW4gZGVyIEt1ZWNoZSBoYWVuZ3QgZnVlciBnZXdvZWhubGljaCBlaW5lLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRWluZSBzY2h3YW5nZXJlIEZyYXUga29tbXQgenVtIE1ldHpnZXIsIHVuZCBzYWd0OgoiSWNoIGtyaWVnZSBlaW4gS2lsbyBIYWNrZmxlaXNjaC4iCiJOdW4sIHdhbm4gaXN0IGVzIHNvd2VpdD8iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRXMgZ2lidCBudXIgendlaSBBcnRlbiB2b24gRnJhdWVuOiBHb2V0dGlubmVuIHVuZCBGdXNzbWF0dGVuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW0gTGViZW4gd2FlaGx0IGVpbiBNYW5uIHp3aXNjaGVuIHp3ZWkgVWViZWxuIG1laXN0IGRhcyBodWVic2NoZXJlIHVuZCBkYXMKanVlbmdlcmUuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpKZSBtZWhyIEZyYXVlbiBpY2gga2VubmVubGVybmUsIGRlc3RvIG1laHIgbGllYmUgaWNoIGRpZSBUaWVyZS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkJlZnJlaXQgZGllIEZyYXVlbiB2b24gZGVuIFNjaGFtaGFhcmVuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRXMgZ2lidCBuaWNodHMgU2Nob2VuZXJlcyBhbHMgbWl0IGVpbmVyIEZyYXUgLi4uCkF1c2dlbm9tbWVuIG1pdCB6d2VpIEZyYXVlbiAuLi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1hZW5uZXIgYmV2b3J6dWdlbiBkaWUgZWluZmFjaGVuIERpbmdlIGltIExlYmVuOiBGcmF1ZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEaWUgbWVpc3RlbiBGcmF1ZW4gbmVobWVuIG51ciBiZWltIFRlbGVmb25pZXJlbiBhYi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZyYXVlbiBrb2VubmVuIGplZGVzIEdlaGVpbW5pcyBiZXdhaHJlbiwKd2VubiBzaWUgbmljaHQgd2lzc2VuLCBkYXNzIGVzIGVpbmVzIGlzdC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRpZSBkYSB1bnRlbiwgd2lyIGRhIG9iZW4gLSBkYXMgaXN0IGltbWVyIG5vY2ggZGllIGVpbnppZyBhbmdlbWVzc2VuZSBQb3NpdGlvbgp6d2lzY2hlbiBNYWVubmVybiB1bmQgRnJhdWVuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRXMgaXN0IG5pY2h0IG5vZXRpZywgZGVuIEZyYXVlbiB6dSB3aWRlcnNwcmVjaGVuLiBEYXMgZXJsZWRpZ2VuIHNpZSBzZWxic3QuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJY2ggc2VoIGF1ZiBlaW5lciBGcmF1IHZpZWwgYmVzc2VyIGF1cy4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVudHNjaHVsZGlnZW4gc2llIC0ga2VubmVuIHdpciB1bnMgbmljaHQgdm9uIElyZ2VuZHdvaGVyPwpIYWJlbiB3aXIgdmllbGxlaWNodCBtYWwgbWl0ZWluYW5kZXIgZ2VzY2hsYWZlbiBvZGVyIHNvPwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTGVnIGRpY2ggaGluLCBpY2ggZ2xhdWJlLCBpY2ggbGllYmUgZGljaC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkxpZWJsaW5nIG1hY2ggbWl0IGRlaW5lbSBUeXBlbiBTY2hsdXNzLCBvZGVyIGljaCBiZXRydWVnZSBkaWNoIG1pdCBtZWluZXIKRnJhdS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkxpZWJlciBgbmUgRnJhdSwgZGllIGd1dCBrb2NodCwgYWxzIGdhciBuaWNodHMgenUgdm9lZ2Vsbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkxpZWJlciBgbmUgc3Vlc3NlIE5ldWUgYWxzIGBuZSBzYXVyZSBBbHRlLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2VubiBkaWUgRnJhdWVuIHZlcmJsdWVoZW4gaGVpc3N0IGVzIHZlcmR1ZnRlbi4KICBvZGVyOiBGcmF1ZW4gdmVyYmx1ZWhlbiwgTWFlbm5lciB2ZXJkdWZ0ZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbm5lbiBpc3QgamVkZSByb3NhIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU2Nob2VuLCB3ZW5uIG1hbiBkaWUgRnJhdSBmdWVycyBMZWJlbiBnZWZ1bmRlbiBoYXQuClNjaG9lbmVyLCB3ZW5uIG1hbiBlaW4gcGFhciBtZWhyIGtlbm50LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTmljaHQgZGllIE1hZW5uZXIga29tbWVuIHp1IHNjaG5lbGwsIGRpZSBGcmF1ZW4gc2luZCB6dSBsYW5nc2FtLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGVyIHRldWVyc3RlIFdlZyBtaXQgZWluZXIgRnJhdSB6dSBzY2hsYWZlbiwgaXN0IGRpZSBFaGUuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEYXMgSW50ZWxpZ2VudGVzdGUgYW4gZWluZXIgRnJhdSBpc3QgaWhyIFdlaXNoZWl0c3phaG4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFcyBtdWVzc2VuIHNpY2ggZGllIFdlaWJlciBsZWdlbiwKc2Nob24gaWhyZXIgaHVlYnNjaGVuIExlaWJlciB3ZWdlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkhlaW1saWNoIHNlaG50IHNpY2ggZGllIEVtYW56ZQpkb2NoIG5hY2ggZWluZW0gZWNodGVuIFNjaHdhbnplLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSWNoIGxpZWJlIEZyYXVlbmJld2VndW5nZW4sIG51ciByaHl0aG1pc2NoIG11ZXNzZW4gc2llIHNlaW4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJY2ggYmV3dW5kZXJlIEZlbWluaXN0aW5uZW4uCkJlc29uZGVycyBzb2xjaGUgbWl0IHByYWxsZW4gQnJ1ZXN0ZW4gdW5kIHJ1bmRlbiBBZXJzY2hlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCldhcyBzaWUgbmljaHQgd2lsbCwgZGFzIGljaCBpaHIgdHUsIGRhcyBmdWVnIGljaCBlaW5lciBhbmRlcm4genUuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpadWVyc3Qgc2NodWYgZGVyIGxpZWJlIEdvdHQgZGVuIE1hbm4sIGRhbm4gc2NodWYgZXIgZGllIEZyYXUuCkRhbmFjaCB0YXQgaWhtIGRlciBNYW5uIGxlaWQuLi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkdvdHQgc2NodWYgZGVuIE1hbm4uIERlbiBSZXN0IGVybGVkaWd0ZSBzZWluIEF6dWJpLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KR290dCBnYWIgZGVuIE1lbnNjaGVuIEludGVsbGlnZW56IC4uLgouLi4gQXVzbmFobWVuIGJla2FtZW4gZGllIFJlZ2VsIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQWRhbSB6dSBHb3R0OiBEdSwgR290dCwgc2FjaCBtYWwsIHdhcnVtIGhhc3QgZHUgRXZhIGVpZ2VudGxpY2ggc28gdW5oZWltbGljaApzY2hvZW4gZ2VtYWNodD8KR290dDogRGFtaXQgZHUgc2llIGxpZWJlbiBrYW5uc3QhCkFkYW06IEFoYSEgVW5kIHdhcnVtIGhhc3QgZHUgc2llIHNvIHVuaGVpbWxpY2ggYmxvZWRlIGdlbWFjaHQ/CkdvdHQ6IERhbWl0IHNpZSBfZGljaF8gbGllYmVuIGthbm4hCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJY2ggbW9lY2h0ZSBkaWUgTGVpc3R1bmcgdm9uIEdvdHQgbmljaHQgc2NobWFlbGVybiwgZGVubiBlciBoYXQgc2ljaApzaWNoZXIgZXR3YXMgZGFiZWkgZ2VkYWNodCwgYWxzIGVyIGRpZSBGcmF1ZW4gc2NodWYgKGljaCBmcmFnZSBtaWNoIG51cgp3YXMpLCBhYmVyIG1vbWVudGFuIHN0ZWhlbiBkaWUgRXJmaW5kZXIgdm9uIEZlcm5zZWhlciB1bmQgVmlkZW9yZWtvcmRlcgpiZWkgbWlyIGhvZWhlciBpbSBLdXJzIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KR290dCB6dSBBZGFtOiAiQWRhbSwgaWNoIGhhYmUgaGllciBlaW5lIEZyYXUgZnVlciBEaWNoLiBTaWUgc2llaHQgdG9sbAphdXMsIGthbm4gc2VociBndXQga29jaGVuLCBpc3QgcGhhbnRhc3Rpc2NoIGltIEJldHQgKFN0aWZ0dW5nIEZyYXVlbnRlc3QKIlNlaHIgR3V0IikgdW5kIGhhdCBuaWUgTWlncmFlbmUgLiIKQWRhbSAobGVjaHR6ZW5kKToiV2FzIG11c3MgaWNoIGRhZnVlciB0dW4/IgpHb3R0IDoiR2liIG1pciBEZWluIHJlY2h0ZXMgQmVpbiEiCkFkYW0gOiJEYXMgaXN0IG1pciB6dSB0ZXVlciEiCkdvdHQgOiJOdW4gZ3V0LCBpY2ggaGFiZSBub2NoIGVpbmUgYW5kZXJlLiBTaWUgc2llaHQgbmljaHQgZ2FueiBzbyBndXQKICAgICAgIGF1cywga29jaHQgbmljaHQgZ2FueiBzbyBndXQgdW5kIG51biBqYSAuLi4hIgpBZGFtIDoiV2FzIHdpbGxzdCBEdSBoYWJlbj8iCkdvdHQgOiJEZWluZW4gcmVjaHRlbiBBcm0hIgpBZGFtIHVlYmVybGVndCwgZWluZSBGcmF1IHdhZXJlIHNjaG9uIG5pY2h0IHNjaGxlY2h0LCBhYmVyIGRhcyBpc3QgenUKdGV1ZXIuIFNjaGxpZXNzbGljaCBmcmFndCBlciwgIldhcyBiZWtvbW1lIGljaCBkZW5uIGZ1ZXIgZWluZSBSaXBwZSAuLi4iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFaW5lIEZyYXUgbXVzcyBhdXNzZWhlbiB3aWUgZWluIEZpbG1zdGFyLApzaWNoIGJlbmVobWVuIHdpZSBlaW5lIERhbWUsCndpbGxpZyBzZWluIHdpZSBlaW5lIEh1cmUKdW5kIGFyYmVpdGVuIHdpZSBlaW4gUGZlcmQuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTbyB2aWVsZSBGcmF1ZW4sIHNvIHdlbmlnIFplaXQuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoiTGViZW5zZ2VmYWVocnRpbiIgaXN0IGVpbiBXb3J0LCBkYXMgdm9uIExlYmVuc2dlZmFociBhYmdlbGVpdGV0IGlzdC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkhhdXB0c2FjaGUgbWFuIGlzdCBnZXN1bmQsIHVuZCBkaWUgRnJhdSBoYXQgJ25lIEFyYmVpdC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkxhc3MgZGllIEZyYXVlbiBsaW5rcyBsaWVnZW4sIHVuZCBkYW5uIGxlZyBkaWNoIGRyYXVmLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU2ljaCB6dW0gR2VmYWxsZW4gZGVyIE1hZW5uZXIgYXVmIGRhcyBJZGVhbGdld2ljaHQgaGVydW50ZXJ6dWh1bmdlcm4sCmdlaG9lcnQgenUgZGVuIEdydW5kYmVkdWVyZm5pc3NlbiBlaW5lciBGcmF1LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTWFuIGthbm4gc2VpbmVuIENvbXB1dGVyIG5pY2h0IHdpZSBlaW5lIEZyYXUgYmVoYW5kZWxuLgpFaW4gQ29tcHV0ZXIgYnJhdWNodCBMaWViZS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVzIGdpYnQga2VpbiB6dSBqdW5nLCBob2VjaHN0ZW5zIHp1IGVuZy4uLgouLi51bmQgZGFubiBrYW5uIG1hbiBqYSBpbW1lciBub2NoIGF1ZmJvaHJlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1hZW5uZXIga29lbm5lbiB0cmlua2VuLCBvaG5lIER1cnN0IHp1IGhhYmVuLApGcmF1ZW4ga29lbm5lbiByZWRlbiwgb2huZSBlaW4gVGhlbWEgenUgaGFiZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGcmF1ZW4gZGllIG1pdCBkZW4gSGFja2VuIGtsYWNrZW4sIGthbm4gbWFuIGF1Y2ggYmVpbSBLYWNrZW4gaGFja2VuIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGllIEZyYXVlbiwgZGllIGRpZSBXaW1wZXJuIHBpbnNlbG4sIHNpbmQgamVuZSwgZGllIGJlaW0gUGltcGVybiB3aW5zZWxuIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRHJlaSBGYXVlbiBhdWYgZWluZXIgZWluc2FtZW4gSW5zZWwuIFBsb2V0emxpY2ggdGF1Y2h0IGVpbmUgZ3V0ZSBGZWUgYXVmIHVuZApzYWd0OiJJaHIgaGFidCBhbGxlIGVpbmVuIFd1bnNjaCBmcmVpLiIKTWVpbnQgZGllIGVyc3RlICJJY2ggbW9lY2h0ZSAxMCBtYWwgaW50ZWxsaWdlbnRlciBzZWluLCBhbHMgaWNoIGpldHp0IGJpbiIKRWluIEtuYWxsIC0gU2llIGZhZWxsdCAnbmVuIEJhdW0sIGJhdXQgc2ljaCBlaW4gRmxvc3MgdW5kIGhhdXQgdm9uIGRlciBJbnNlbAphYi4KIktsYXNzZSIgc2FndCBkaWUgendlaXRlLCAid2VubiBkYXMgc28gZ2VodCBkYW5uIHdpbGwgaWNoIG5vY2ggMTAwIG1hbAppbnRlbGxpZ2VudGVyIHNlaW4iCkRlciBuYWVjaHN0ZSBLbmFsbCAtIFNpZSBnZWh0IGluIGRlbiBVcndhbGQgdW5kIHp3ZWkgVGFnZSBzcGFldGVyIGhvZXJ0IG1hbgplaW4KRmx1Z3pldWcgc3RhcnRlbiB1bmQgd2VnIGlzdCBzaWUuCiJXYWhuc2lubiIgbWVpbnQgZGFyYXVmIGRpZSBkcml0dGUsICJkYXMgaXN0IGphIHdhcywgaWNoIHdpbGwgMTAwMDAgbWFsCmludGVsbGlnZW50ZXIgc2VpbiBhbHMgbWVpbmUgYmVpZGVuIEZyZXVuZGlubmVuIHp1c2FtbWVuIgpFaW4gZHJpdHRlciBLbmFsbCAtIHNjaHd1cHMgLSBpc3Qgc2llIGVpbiBNYW5uLgphbmRlcmUgVmVyc2lvbjoKTGF1ZmVuIDMgRnJhdWVuIGFtIFN0cmFuZCBlbnRsYW5nIHVuZCBmaW5kZW4gZWluZSBGbGFzY2hlLgpOYWNoIGRlbSBvZWZmbmVuIGVyc2NoZWludCBlaW4gRmxhc2NoZW5nZWlzdCB1bmQgd2lsbCBqZWRlciBkZXIgRGFtZW4KZWluZW4gV3Vuc2NoIGVyZnVlbGxlbi4KRGllIGVyc3RlIHNhZ3Q6IEljaCB3aWxsIDEwbWFsIHNvIEludGVsbGlnZW50IHNlaW4gd2llIGJpc2hlciEKRGVyIEZsYXNjaGVuZ2Vpc3Q6IE9LLCBkdSBiaXN0IGpldHp0IDEwbWFsIHNvIEludGVsbGlnZW50IQpEaWUgendlaXRlIHNhZ3Q6IEljaCB3aWxsIDEwMG1hbCBzbyBJbnRlbGxpZ2VudCBzZWluIHdpZSBiaXNoZXIhCkRlciBGbGFzY2hlbmdlaXN0OiBPSywgZHUgYmlzdCBqZXR6dCAxMDBtYWwgc28gSW50ZWxsaWdlbnQhCkRpZSBkcml0dGUgc2FndDogSWNoIHdpbGwgMTAwMG1hbCBzbyBJbnRlbGxpZ2VudCBzZWluIHdpZSBiaXNoZXIhCkRlciBGbGFzY2hlbmdlaXN0OiBPSywgZHUgYmlzdCBqZXR6dCBlaW4gTWFubiEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5ldWxpY2ggc3RhbmQgaW4gZGVyIFplaXR1bmcgOiJKZWRlIGRyaXR0ZSBGcmF1IGJldHJ1ZWd0IGlocmVuIE1hbm4hIgpXYXMgc29sbCBkYXM/IEljaCBicmF1Y2hlIE5hbWVuLCBBZHJlc3NlbiAuLi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZyYXVlbiBzaW5kIHVlYmVyZmx1ZXNzaWcuIEVzIGdpYnQgc2Nob24gZ2VudWcgS2F0YXN0cm9waGVuLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRXMgd2lyZCBoYWV1ZmlnZXIgYmVoYXVwdGV0LCBGcmF1ZW4gc29sbHRlbiBoaW50ZXIgZGVuIEhlcmQuCkljaCBhYmVyIG1laW5lLCBGcmF1ZW4gc29sbHRlbiBJTiBkZW4gSGVyZC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZyYXVlbiBhbiBkZW4gSGVyZCwgRW1hbnplbiBpbiBkZXIgSGVyZC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnVuZCBHb2V0aGUgc2FndGU6IEJlaGFuZGVsdCBkaWUgRnJhdWVuIG1pdCBOYWNoc2ljaHQuIEF1cyBrcnVtbWVyIFJpcHBlIHdhcmQKc2llIGVyc2NoYWZmZW4uIEdvdHQga29ubnRlIHNpZSBuaWNodCBnYW56IGdlcmFkZSBtYWNoZW4uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp1bmQgVm9sdGFpcmUgbWVpbnRlOiBFaW5lIEZyYXUgaXN0IGVpbiBtZW5zY2hsaWNoZXMgV2VzZW4sIGRhcyBzaWNoIGFuemllaHQsCnNjaHdhdHp0IHVuZCBzaWNoIHdpZWRlciBhdXN6aWVodC4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRpZSBNYWVubmVyIHd1ZXJkZW4gZGVuIEZyYXVlbiBnZXJuIGRhcyBsZXR6dGUgV29ydCBsYXNzZW4sIHdlbm4gc2llIHNpY2hlcgpzZWluCmtvZW5udGVuLCBkYXNzIGVzIHdpcmtsaWNoIGRhcyBsZXR6dGUgaXN0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIk5laG10IGlociBub2NoIE11ZWxsIG1pdD8iIGJydWVsbHQgZGllIEhhdXNmcmF1LCBtaXQgTG9ja2Vud2lja2xlcm4gaW0gSGFhciwKZWluZW4gYWx0ZW4gS2l0dGVsIGFuIHVuZCBpbiBqZWRlciBIYW5kIHp3ZWkgTXVlbGxzYWVja2UuCiJBYmVyIGtsYXIiIGJydWVsbHQgZGVyIE11ZWxsbWFubiB6dXJ1ZWNrLCAic3ByaW5nIGViZW4gYXVmIi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCldlbm4gRnJhdWVuIEF1ZnNlaGVuIGVycmVnZW4gbW9lY2h0ZW4sCnZlcmFuc3RhbHRlbiBzaWUgYW0gYmVzdGVuIGVpbmVuIFNjaHdlaWdlbWFyc2NoLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKEZsdWdibGF0dCBhdXMgZGVyIFRIIERhcm1zdGFkdCkKICAgICAgICAgICAgICAgICAgICAgICBEQVMgQ0hBVVZJLUJMQVRUCjEuQXVmZ2FiZTogTmllZGVyIG1pdCBkZW4gRnJhdWVuIQpNb3R0byBkaWVzZXIgQXVzZ2FiZTogRGllIEZyYXUgZ2Vob2VydCBoaW50ZXIgZGVuIEhlcmQsCiAgICAgICAgICAgICAgICAgICAgICBkZXIgSGVyZCBpbiBkZW4gS2VsbGVyIHVuZAogICAgICAgICAgICAgICAgICAgICAgZGVyIEtlbGxlciB1bnRlciBXYXNzZXIuClZlcmVocnRlIE1pdGNoYXV2aXMsCmVzIGlzdCBhbiBkZXIgWmVpdCwgZGVuIHdpZGVyd2FlcnRpZ2VuIEZlbWluaXN0aW5uZW4gYW4gZGVyIFRIRCAoPVRlY2huaXNjaGUKSG9jaHNjaHVsZSBEYXJtc3RhZHQpIGRlbiBLYW1wZiBhbnp1c2FnZW4uIERpZSBhbGx6dSBmcmF1ZW5mcmV1bmRsaWNoZW4KUGFyb2xlbgp2ZXJzY2hpZWRlbmVyIFNjaG1pZXJibGFldHRlciB2ZXJkZXJiZW4gdW5zIGFsbGVuIHJlZ2VsbWFlc3NpZyBkZW4gZHVyY2ggZGFzCk1lbnNhZXNzZW4gb2huZWhpbiBnZXNjaG1hZWxlcnRlbiBBcHBldGl0LiBBdXMgZGllc2VtIEdydW5kIGhhYmVuIHdpcgpiZXNjaGxvc3NlbiB6dXJ1ZWNrenVzY2hsYWdlbi4gV2lyIHNpbmQgdW5zIGphIGFsbGUgZWluaWcsIGRhc3MgRnJhdWVuCmdlbmVyZWxsCnZpZWwgenUgYmxvZWQgenVtIFN0dWRpZXJlbiBzaW5kLiBEYXMga29tbXQgdW50ZXIgYW5kZXJlbSBkYXJpbiB6dW0gQXVzZHJ1Y2ssCmRhc3Mgc2llIG5pY2h0IGVpbm1hbCAibWFuIiB2b24gIk1hbm4iIHVudGVyc2NoZWlkZW4ga29lbm5lbiB1bmQgdW5zZXJlCnNjaG9lbmUKU3ByYWNoZSBtaXQgV29ydG1vbnN0ZXJuIHdpZSAiU3R1ZGVudElubmVuIiB2ZXJnaWZ0ZW4uCkhhYnQgSWhyIGVzIHNjaG9uIGdlbWVya3Q/IFRILU1pZXplbiBzaW5kIG5pY2h0IG51ciB1bmZhZWhpZywgc29uZGVybiBhdWNoCmhhZXNzbGljaCwgcHJ1ZWRlIHVuZCBkZWdlbmVyaWVydCEgRWluZSBLYXJpa2F0dXIgaG9sZGVyIFdlaWJsaWNoa2VpdC4gRWluZQpCZWxlaWRpZ3VuZyBmdWVyIGRlbiBzcG9ydGxpY2hlbiwgZXJmb2xncmVpY2hlbiwgc2V4YmV3dXNzdGVuIE1hbm4gdm9uIGhldXRlLgpXYXJ1bSBpc3QgZGFzIGVpZ2VudGxpY2ggc28/IERlciBHcnVuZCBsaWVndCBhdWYgZGVyIEhhbmQ6IEd1dGF1c3NlaGVuZGUKRnJhdWVuCmhhYmVuIGVzIG5pY2h0IG5vZXRpZywgc2ljaCBzY2h3YWNoc2lubmlnZXIgcmFkaWthbGVyIE1ldGhvZGVuIHp1IGJlZGllbmVuLCB1bQpkaWUgQXVmbWVya3NhbWtlaXQgZWRsZXIgVEgtUml0dGVyIGF1ZiBzaWNoIHp1IHppZWhlbi4KV2lyIGVtcGZlaGxlbiB1bnNlcmVuIEVtYW56ZW4sIG5pY2h0IHdlaXRlciBkYXMgZnJpZWRsaWNoZSBUSC1MZWJlbiB6dSBzdG9lcmVuCnVuZCBzaWNoIG1pdCBJaHJlc2dsZWljaGVuIGluIEZyYXVlbmdoZXR0b3MgenVydWVja3p1emllaGVuLgoiSGlsZiBhdWNoIER1IG1pdCwgZGFzcyBkaWUgVEggd2llZGVyIHNhdWJlciB3aXJkIgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMiBMb2t1ZWhyZXIgdW50ZXJoYWx0ZW4gc2ljaCwgc2FndCBkZXIgZWluZToKIkR1LCBnZXN0ZXJuIGlzdCBtaXIgd2FzIHRvbGxlcyBwYXNzaWVydDogSWNoIGZhaHIgc28gZHVyY2ggZGllIE5hY2h0IHVuZAogYXVmIGVpbm1hbCBzZWhlIGljaCBlaW5lIG5hY2t0ZSBGcmF1IGF1ZiBkZW4gU2NoaWVuZW4gbGllZ2VuIC4uLiBJY2ggaGFiIGRlbgogWnVnIGFuZ2VoYWx0ZW4sIGJpbiBhdXNnZXN0aWVnZW4gdW5kIGhhYiBlaW5lIGlycmUgTnVtbWVyIG1pdCBpaHIKZ2VzY2hvYmVuLiIKRnJhZ3QgZGVyIGFuZGVyZTogIlVuZCwgaGF0IHNpZSBkaXIgYXVjaCBlaW5lbiBnZWJsYXNlbj8iCkVyd2lkZXJ0IGRlciBlaW5lOiAiTmUsIGxlaWRlciBuaWNodCwgaWNoIGhhYiBkZW4gS29wZiB2b24gZGVyIFR1c3NpIG5pY2h0CmdlZnVuZGVuIC4uLiIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVpbiBNYW5uIHJ1ZnQgZWluZW4gRmxpZXNlbmxlZ2VyIGFuLCB3ZWlsIHNlaW5lIEZyYSwgX29obmVfIF9TbGlwXywgdm9uIGRlcgpMZWl0ZXIgZ2VmYWxsZW4gd2FyIHVuZCBzaWNoIG51biBhdWYgZGVuIEZsaWVzZW4gaW0gQmFkIGZlc3RnZXNhdWd0IGhhdC4gRGVyCkZsaWVzZW5sZWdlciBrb21tdCBhbHNvLCBiZXNpZWh0IHNpY2ggZGllIFNhY2hlIHVuZCBmYWVuZ3QgYXVmIGVpbm1hbCBhbiwgZGllCkZyYXUgdWViZXJhbGwgenUgYmVmdW1tZWxuLCBzaWUgenUga3Vlc3Nlbiwgc2llIGhlaXNzIHp1IG1hY2hlbi4gRGVyIEVoZW1hbm4KZW1wb2VydCBzaWNoOiAiSGUsIHNpZS4gV2FzIHNvbGwgZGFzLiBMYXNzZW4gc2llIGdlZmFlbGxpZ3N0IGRpZSBGaW5nZXIgdm9uCm1laW5lciBGcmF1LiIgIkRhcmF1ZiBkZXIgRmxpZXNlbmxlZ2VyOiAiQWJlciBndXRlciBNYW5uLCBpY2ggbWFjaGUgZGFzLCBkYW1pdAp3aXIgaWhyZSBGcmF1IGluIGRpZSBLdWVjaGUgc2NoaWViZW4ga29lbm5lbiwgZGEgaXN0IGRlciBRdWFkcmF0bWV0ZXIgRmxpZXNlbgoxMCBETSBiaWxsaWdlci4iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpERUZJTklUSU9OIDogRWluZSBGcmF1IGlzdCAuLi4KLi4uZGllIGVpbnppZ2UgTWF1c2VmYWxsZSwgZGllIGRlciBNYXVzIG5hY2hsYWV1ZnQgIQouLi5kYXMgZWluemlnZSBHZXNjaGVuaywgZGFzIHNpY2ggc2VsYnN0IHZlcnBhY2t0ICEKLi4uZXR3YXMgZnVlciBlaW5lIE5hY2h0LiBVbmQgd2VubiBlcyBzY2hvZW4gd2FyLCBub2NoIGZ1ZXIgZGllIHp3ZWl0ZS4KLi4uZWluZSByYWZmaW5pZXJ0ZSBNaXNjaHVuZyB2b24gQnJhbmRzdGlmdGVyIHVuZCBGZXVlcndlaHIgIQouLi5kaWUgUmFldHNlbGVja2UgaW4gR290dGVzIGdyb3NzZXIgV2VsdHplaXR1bmcgIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRlJBVUVOIFNJTkQgLi4uCiAgICAuLi5MdWZ0IGZ1ZXIgbWljaC4gVW5kIG9obmUgTHVmdCBlcnN0aWNrZSBpY2guCiAgICAuLi50b3RhbCB1bmJlc3RlY2hsaWNoOiBNYW5jaGUgbmVobWVuIG5pY2h0IG1hbCBWZXJudW5mdCBhbgogICAgLi4ud2llIGFsdGUgQXV0b3JlaWZlbjogYXVmZ2VibGFzZW4sIG9obmUgUHJvZmlsIHVuZCBpbW1lciBiZXJlaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlaW5lbiB6dSB1ZWJlcmZhaHJlbgogICAgLi4ud2llIGVpbmUgVHVldGUgR3VtbWliYWVyY2hlbjogYXVmcmVpc3NlbiwgdmVybmFzY2hlbiwgd2Vnc2NobWVpc3Nlbi4KICAgIC4uLndpZSBGaXNjaGU6IE1hbm4gdmVyc3VjaHQgc3RldHMsIGRhcyBNaXR0ZWxzdHVlY2sgenUgZXJ3aXNjaGVuLgogICAgLi4ud2llIEZyb2VzY2hlOiBkYXVlcm5kIHF1YWtlbiB1bmQgQmFtbWVsIHZvcm0gS2xhcHBlcnN0b3JjaAogICAgLi4ud2llIEtpbmRlciB2b24gZXR3YXMgZ3JvZXNzZXJlbSBXdWNocy4KICAgIC4uLndpZSBLcmF3YXR0ZW46IE1hbiB3YWVobHQgc2llIG1laXN0ZW5zIGJlaSBzY2hsZWNodGVyIEJlbGV1Y2h0dW5nLAogICAgICAgICAgICAgICAgICAgICAgdW5kIGRhbm4gaGF0IE1hbm4gc2llIGFtIEhhbHMuCiAgICAuLi53aWUgTHVmdGJhbGxvbnM6IGJ1bnQgZ2VmYWVyYnQsIGhvaGwgdW5kIGF1ZmdlYmxhc2VuLgogICAgLi4uKE1hZWRjaGVuKSBzaW5kIHdpZSBNaWxjaDogZXJzdCBzdWVzcywgZGFubiBkaWNrLCBkYW5uIHNhdWVyLgogICAgLi4ud2llIE9ic3Q6IEthdW0gc2luZCBzaWUgcmVpZiwgaXN0IHNjaG9uIGRlciBXdXJtIGRyaW4uCiAgICAuLi53aWUgU2NobmVlOiBIYXQgTWFubiBzaWUgZXJzdG1hbCBhdWZnZXRhdXQsIHNjaG1lbHplbiBzaWUgZGFoaW4uCiAgICAuLi53aWUgU2Nod2VpemVyIFRhc2NoZW5tZXNzZXI6IHByYWV6aXNlIHVuZCBhbGx6ZWl0IGVyc2V0emJhci4KICAgIC4uLndpZSBTZW5mLUdsYWVzZXI6IEplZGVyIHdpbGwgc2VpbiBXdWVyc3RjaGVuIHJlaW5zdGVja2VuLgogICAgLi4ud2llIFN0ZXJuc2NobnVwcGVuOiBIZXV0ZSBTdGVybiwgbW9yZ2VuIHNjaG51cHBlLgogICAgLi4ud2llIFRlZTogTWFubiBtdXNzIHNpZSB6aWVoZW4gbGFzc2VuLgogICAgLi4ud2llIFUtQmFobmVuOiBNYW5uIG11c3MgaWhuZW4gbmljaHQgbmFjaGxhdWZlbi4KICAgICAgICAgICAgICAgICAgICAgRGllIG5hZWNoc3RlIGZvbGd0IHNvZ2xlaWNoIQogICAgLi4ud2llIFphZWhuZTogSGF0IE1hbm4ga2VpbmUsIGVyd2FydGV0IGVyIHNpZSBzZWhuc3VlY2h0aWcuCiAgICAgICAgICAgICAgICAgIEtyaWVndCBNYW5uIHNpZSwgdHVuIHNpZSB3ZWguCiAgICAgICAgICAgICAgICAgIFZlcmxpZXJ0IE1hbm4gc2llLCBoaW50ZXJsYXNzZW4gc2llIFd1bmRlbi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHBhaW4gaW4gdGhlIGFzcyAoS2V5LCAyNi4gSmFuIDE5OTgsIDE3OjEyOjAyKToKfiMhIHJuPUphc3BlciBydD04ODU1NjA5MTYgcmc9d2l0emUKfiMhIHRpZD04ODU1NjA5MTYKTW9lbnNjaCBkYXMgaXN0IG5lbiBkZXV0c2NoZXMgTXVkIQpLb2VubnRlc3RlIG1hbCBkZW4gZ2FuemVuIEVuZ2xpc2NoZW4gS3JhbSBzZWluIGxhc3Nlbj8KCktleSBtYWcga2VpbiBFbmdsaXNjaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcGFpbiBpbiB0aGUgYXNzIChXdXJ6ZWwsIDI2LiBKYW4gMTk5OCwgMjA6NDg6NDApOgp+IyEgcm49S2V5IHJ0PTg4NTgzMTEyMiByZz13aXR6ZQp+IyEgdGlkPTg4NTU2MDkxNgp1bmQgYmVpIGRlciBnZWxlZ2VuaGVpdCB2aWVsbGVpY2h0IGdhbnogYXVmaG9lcmVuLCBoaWVyIHNvIGVpbmUgc2NoZWlzc2UgenUKdmVyemFwZmVuLiB3aXR6aWcgZmluZCBpY2ggZGFzIG5pY2h0LgoKd3VyemVsIG1hZyBrZWluZSBzZXhpc3RlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogcGFpbiBpbiB0aGUgYXNzIChBbHBoYSwgMjYuIEphbiAxOTk4LCAyMjowNDoxNCk6Cn4jISBybj1XdXJ6ZWwgcnQ9ODg1ODQ0MTIwIHJnPXdpdHplCn4jISB0aWQ9ODg1NTYwOTE2ClNleCBpc3QgZG9jaCB1bnNlciBhbGxlciBMZWJlbnNzaW5uLiBGdWVyIG1pY2ggaXN0IGFsbGVzLCB3YXMgbWl0IFNleAp6dXNhbW1lbmhhZW5ndCBkYWhlciBncnVuZHNhZXR6bGljaCBoZXJ6bGljaCB3aWxsa29tbWVuLiBGYWxscyBEdSBuZXQgbGFjaGVuCmtvbm50ZXN0LCB3YWVyZSBkZXIgS3JpdGlrcHVua3QgVU5XSVRaSUdLRUlUISAKQWxwaGEsIGtvbm50ZSBqZWRlbmZhbGxzIGxhY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcGFpbiBpbiB0aGUgYXNzIChMdXB1cywgMjYuIEphbiAxOTk4LCAyMzowOToxOSk6Cn4jISBybj1LZXkgcnQ9ODg1ODMxMTIyIHJnPXdpdHplCn4jISB0aWQ9ODg1NTYwOTE2Ck1vZW5zY2gsIGRhcyBpc3QgZWluIGRldXRzY2hlcyBNZWhyYmVudXR6ZXJyb2xsZW5zcGllbCwgS2V5LgpLb2VubnRlc3RlIG1hbCBkaWVzZSBlbmdsaXNjaGVuIEF1c2RydWVja2Ugc2VpbiBsYXNzZW4/CgpMdXB1cwoKUC5TLjogV2VubiBzY2hvbiwgZGFubiBiaXR0ZSBLb25zZXF1ZW50LiBBYmVyIGxpZWJlciBpbmtvbnNlcXVlbnQgdW5kIGRhZnVlcgppbiBkZXIgU3ByYWNoZSwgaW4gZGVyIGVzIGFtIGJlc3RlbiBydWViZXJrb21tdC4KClAuUC5TLjogRGVuIFVyLUFydGlrZWwgaGFiIGljaCBuaWNodCBnZWxlc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogcGFpbiBpbiB0aGUgYXNzIChGZXVlcndlaHIsIDI2LiBKYW4gMTk5OCwgMjM6MTM6NTYpOgp+IyEgcm49THVwdXMgcnQ9ODg1ODUyNTU5IHJnPXdpdHplCn4jISB0aWQ9ODg1NTYwOTE2CkFlaG0uCgpBbHNvIGRpZXNlcyBQb3N0IFNjcmlwdHVtIHVudGVyIGRlaW5lbSBBcnRpa2VsIHNvbGx0ZXN0IER1IGRhbm4gZG9jaCBiaXR0ZQphdWNoIGluICdOYWNodHJhZycgYWVuZGVybi4gV2lyIHNvbGx0ZW4gd2Vna29tbWVuIHZvbiBkaWVzZW0gbGF0ZWluaXNjaGVtClpldWcsIGF1Y2ggd2VubiBlcyBudXIgYWxzIEFia3Vlcnp1bmcgYmVudXR6dCB3aXJkLgoKICAgRmV1ZXJ3ZWhyIChkZW5rdDogSmUgbWVociBBcnRpa2VsLCBqZSBiZXNzZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBwYWluIGluIHRoZSBhc3MgKEFuYXRvbCwgMjYuIEphbiAxOTk4LCAyMzoyMDo1Mik6Cn4jISBybj1GZXVlcndlaHIgcnQ9ODg1ODUyODM2IHJnPXdpdHplCn4jISB0aWQ9ODg1NTYwOTE2CldhcnVtIGhhdCBLZXkgc2VpbmVuIE5hbWVuIG5vY2ggbmljaHQgaW4gIlNjaGx1ZXNzZWwiIGFlbmRlcm4gbGFzc2VuPwoKQW5hdG9sLCBmaW5kZXQgZGFzIGlua29uc2VxLi4uIGFlaC4uLiBuaWNodCByaWNodGlnCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogcGFpbiBpbiB0aGUgYXNzIChTaWx2YW5hLCAyNi4gSmFuIDE5OTgsIDIzOjIyOjI0KToKfiMhIHJuPUFuYXRvbCBydD04ODU4NTMyNTIgcmc9d2l0emUKfiMhIHRpZD04ODU1NjA5MTYKRGFzLCB3YXMgRHUgbWVpbnRlc3QsIGhlaXNzdCAnbmljaHQgdm9sbHN0YWVuZGlnIGR1cmNoZGFjaHQnIDopCgogIFNpbHZhbmEgKHdpcmQgaWhyZW4gTmFtZW4gbmljaHQgdWViZXJzZXR6ZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBwYWluIGluIHRoZSBhc3MgKFNpbHZhbmEsIDI2LiBKYW4gMTk5OCwgMjM6MjY6NDkpOgp+IyEgcm49U2lsdmFuYSBydD04ODU4NTMzNDQgcmc9d2l0emUKfiMhIHRpZD04ODU1NjA5MTYKQXBvcG8gVWViZXJzZXR6dW5nLiA6KSBNZWluICdGdW5kc3R1ZWNrIGRlciBXb2NoZSc6CgpFaW5lIEhpbGZlc2VpdGUgYXVzICdEYWxleSBUaG9tcHNvbnMgb2x5bXBpc2NoZSBaZWhua2FtcGYnOgoKWmVybGVndW5nIGRlciBGZXN0cGxhdHRlCkRpZSBMZWlzdHVuZyBkZXMgU3BpZWxlcyBrYW5uIHZlcmxhbmdzYW10IHdlcmRlbiBkdXJjaCBlaW5lIHNjaHdlcgp6ZXJsZWdiYXJlIEZlc3RwbGF0dGUuIFVtIGRhcyB6dSBwcnVlZmVuIHVuZCBmYWxscyBub3R3ZW5kaWcsIHp1bSAKWmVybGVnZW4gZGVyIEZlc3RwbGF0dGUgZ2VicmF1Y2h0ZSBXaW45NSBEaXNrIFplcmxlZ2VyLCB3ZWxjaGVuCkR1IGluIERlaW5lbSBQcm9ncmFtbTogWnViZWhvZXItU3lzdGVtIFdlcmt6ZXVnIEFrdGUgaGFzdC4KCiAgU2lsdmFuYSAod2Vpc3MsIHdpZXNvIGlociBMaW51eCBsaWViZXIgaXN0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogcGFpbiBpbiB0aGUgYXNzIChOYXNpbSwgMjYuIEphbiAxOTk4LCAyMzozMDoyNSk6Cn4jISBybj1TaWx2YW5hIHJ0PTg4NTg1MzYwOSByZz13aXR6ZQp+IyEgdGlkPTg4NTU2MDkxNgpTY2hhZGUsIGdhbnogc28gZ3V0IGlzdCBkZXIgVWViZXJzZXR6ZXIgdm9uIEFsdGFWaXN0YSBuaWNodCwgYWJlciBmdWVyIGVpbmVuCm5ldHRlbiBMYWNoZXIgYW4gZWluZW0gbGFuZ3dlaWxpZ2VuIEFyYmVpdHN0Z2EgaXN0IGVyIGF1ZiBqZWRlbiBGYWxsIGd1dC4KCkdydXNzLCBOYXNpbQpQUzogVXBzLCBnYXIga2VpbiBXaXR6IC4uLiBuYSBndXQ6CgpXYXMgaGFiZW4gQ2hhbXBhZ25lciB1bmQgTGFkeSBEaSBnZW1laW5zYW0/CgpCZWlkZSBrb21tZW4gaW4gSG9semtpc3RlbiBhdXMgRnJhbmtyZWljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IHBhaW4gaW4gdGhlIGFzcyAoU2Nob2tvLCAyNi4gSmFuIDE5OTgsIDIzOjM4OjE0KToKfiMhIHJuPU5hc2ltIHJ0PTg4NTg1MzgyNSByZz13aXR6ZQp+IyEgdGlkPTg4NTU2MDkxNgpPaCBKYSBhcHJvcG9zIEZ1bmRzdGVsbGU6CgpTUUwtU2VydmVyIDYuNSBpbm5lcmVuIGJhY2t1cC9yZXN0b3JlIGNhcGFiaWxpdGllcyBTaWUga29lbm5lbiBhdWNoIGRlbgpOVD1TZXJ2ZXIgYmFja3VwdXRpbGl0eSB6dSBVbnRlcnN0dWV6dW5nIElocmUgQW50cmllYmUgbnV0emVuLiBLYW5uIGljaCBoYWJlbiwKbWVpbiBuYWVjaHRsaWNoZXIgVW50ZXJzdHVldHp1bmdzIExhdWYtQmFuZGJhY2t1cCwgZGVuIG1laW5lIE5ULVNlcnZlciBkYXRlbgptaXQgbWVpbmVtIERBVCBmYWhyZW4sIGxlZ3QgYXVmIGl0YW5kIGFiLCBiZW51dHp0IHNpZSwgZmFsbHMgaWNoIGVpbmVuCnZlcmRvcmJlbmVuIERBVGZpbGUgaW4gU1FMLVNlcnZlciB3aWVkZXJoZXJzdGVsbGVuIG11c3M/CkljaCBsYXNzZSBudXIgZWluZW4gQW50cmliIGtsZWJlbiwgZGVyIGplZGUgTmFjaHQgbWVpbmUgTlRTZXJ2ZXIgdW5kIG1laW5lIDIKQXJiZWl0c3N0YXRpb25lbiB1bnRlcnN0dWV0enQuSXJnZW5kZWluIGlkZWFzd291bGQgZ2V3b3JkZW4gc2VociBnZXNjaGFldHp0LgoKU2Nob2tvIChkZXIgYXVjaCBpcmdlZG5laW4gaWRlYXMgc2VociBzY2hhZXR6ZW4gd3VlcmRlIDspKQoKUC5TOiBpcyBhdXMgZGVyIGl4IDIvOTggVGVzdCBmdWVyIFVlYmVyc2V0emVyIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFN0YXRpc3RpayAoTGksIDI3LiBKYW4gMTk5OCwgMTE6MDE6NTYpOgp+IyEgcm49QmFtYnVsa28gcnQ9ODg1ODIyMDMwIHJnPXdpdHplCn4jISB0aWQ9ODg1ODE4MzU1Ck5hamEsIGZyYWd0IHNpY2ggbnVyLCBvYiBkYXMgSHVtb3Igd2FyIG9kZXIgZXJuc3RnZW1laW50Li4uLgplZGVuZmFsbHMgZ2VodCBpbiBBbWVyaWthIGRpZSBJbmZsYXRpb25zIHJhdWYsIENsaW50b25zIEhvc2UgcnVudGVyLi4uLgouLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpbmRvd3MgKFF1YXNpbW9kbywgMjguIEphbiAxOTk4LCAxMDowNDoxMyk6Ck1TIGhhdCBHb3R0IHVlYmVyemV1Z3QgZGFzIFVuaXZlcnN1bSB1bnRlciBXaW4uLi4KCkl0J3Mgbm93IHNhZmUgdG8gc2h1dCBkb3duIHRoZSB1bml2ZXJzZS4KClF1YXNpLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsdWJiIDopIChKYXNwZXIsIDI4LiBKYW4gMTk5OCwgMTY6MjA6NDUpOgpUaGVyZSB3ZXJlIHRocmVlIG1lbiBsb3N0IGluIGEgZm9yZXN0LiBUaGV5IGhhZCBiZWVuIHRoZXJlIGZvciBhIHdoaWxlCmFuZCB3ZXJlIHN0YXJ2aW5nLiBCdXQgc29vbiB0aGUgZm91bmQgYSBjYWJpbi4gVGhleSBrbm9ja2VkIGFuZCBhbiBvbGQKbGFkeSBjYW1lIG91dC4KIk1hJ2FtIiB0aGUgZmlyc3QgbWFuIHNhaWQsICJXZSd2ZSBiZWVuIGxvc3QgaW4gdGhpcyBmb3Jlc3QgZm9yIDMgZGF5cwphbmQgd2UgbmVlZCBzb21ldGhpbmcgdG8gZWF0LiBDYW4geW91IHNwYXJlIGFueSBvZiB5b3VyIGZvb2Q/IgpUaGUgb2xkIGxhZHkgdGhvdWdodCBhYm91dCBpdCB0aGVuIHNhaWQgIldlbGwgSSBoYXZlbid0IGhhZCBhIG1hbiBpbgphYm91dCA0MCB5ZWFycy4gSWYgZWFjaCBvZiB5b3UgaGF2ZSBzZXggd2l0aCBtZSBJJ2xsIGdpdmUgeW91CnNvbWV0aGluZyB0byBlYXQiClRoZSBmaXJzdCBtYW4gbG9va2VkIGFyb3VuZCB0aGVuIHNhaWQsICJZb3UgZ3V5cyB3YWl0IG91dHNpZGUsIEknbGwgZG8KaGVyIDMgdGltZXMuIE9uZSBmb3IgZWFjaCBvZiB1cy4iCkhlIHRoZW4gdG9sZCB0aGUgb2xkIGxhZHkgc2hlIGhhZCB0byBjbG9zZSBoZXIgZXllcy4gSGUgZ3JhYiBhbiBlYXIgb2YKY29ybiBzaGUgaGFkIG9uIHRoZSB0YWJsZSBhbmQgdXNlZCBpdC4gV2hlbiBoZSB3YXMgZG9uZSB3aXRoIGl0IGhlCnRvc3NlZCBpdCBvdXQgdGhlIHdpbmRvdy4gSGUgcmVwZWF0ZWQgaXQgdHdvIG1vcmUgdGltZXMuIFdoZW4gdGhleQp3ZXJlIGRvbmUgaGUgd2VudCBvdXRzaWRlIGFuZCB0b2xkIHRoZSBndXlzIHRvIGNvbWUgaW4gc28gdGhhdCB0aGV5CmNvdWxkIGVhdC4KVGhleSByZXBsaWVkICJObywgdGhhbmtzLiBUaGF0IGNvcm4gb24gdGhlIGNvYiB3aXRoIGNyZWFtIGZpbGxlZCB1cwp1cCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpqb28gOikgKEphc3BlciwgMjguIEphbiAxOTk4LCAxNjoyMzoyOCk6CldoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgcHVzc3kgYW5kIGEgY3VudD8gCkEgcHVzc3kgaXMgc29mdCBhbmQgd2FybSBhbmQgaW52aXRpbmcuIFRoZSBjdW50IGlzIHRoZSBvbmUgd2hvIG93bnMKdGhlIHB1c3N5LiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLmRpZSAyMjVzdGUgKEphc3BlciwgMjguIEphbiAxOTk4LCAxNjo1MDoxOSk6CkEgbWFuIHdhcyB3YWxraW5nIGFjcm9zcyB0aGUgcm9hZCB3aGVuIGhlIG1ldCB0aGUgYWNjaWRlbnQuIFRoZQppbXBhY3Qgd2FzIG9uIGhpcyBoZWFkIHdoaWNoIGNhdXNlZCBoaW0gdG8gYmUgY29tYXRvc2VkIGZvciB0d28gZGF5cwpiZWZvcmUgaGUgZmluYWxseSByZWdhaW5lZCBjb25zY2lvdXNuZXNzLgogV2hlbiBvcGVuIGhpcyBleWVzLCBoaXMgd2lmZSB3YXMgdGhlcmUgYmVzaWRlIGhpbS4gSGUgaGVsZCBoZXIgaGFuZHMgCmFuZCBzYWlkIG1lYW5pbmdmdWxseSA6CgogICJZb3UgaGF2ZSBhbHdheXMgYmVlbiBiZXNpZGUgbWUuIFdoZW4gSSB3YXMgYSBzdHJ1Z2dsaW5nIHVuaXZlcnNpdHkgCnN0dWRlbnQsIEkgZmFpbGVkIGFnYWluIGFuZCBhZ2Fpbi4gQW5kIHNvbWV0aW1lcywgZXZlbiBteSByZS1wYXBlcnMgYXMKCndlbGwuIFlvdSB3ZXJlIGFsd2F5cyB0aGVyZSBiZXNpZGUgbWUsIGVuY291cmFnaW5nIG1lIHRvIGdvIG9uCnRyeWluZy4uIgoKIFNoZSBzcXVlZXplZCBoaXMgaGFuZHMgYXMgaGUgY29udGludWVkIDoiV2hlbiBJIHdlbnQgZm9yIGFsbCB0aGUKbWFqb3IgaW50ZXJ2aWV3cyBhbmQgZmFpbGVkIHRvIGNsaW5jaCBhbnkgb2YgdGhlIGpvYnMsIHlvdSB3ZXJlIHRoZXJlCmJlc2lkZSBtZSwgY3V0dGluZyBvdXQgbW9yZSBhZHZlcnRzIGZvciBtZSB0byBhcHBseS4uLiIKIApIZSBjb250aW51ZWQgIlRoZW4gSSBzdGFydGVkIHdvcmsgYXQgdGhpcyBsaXR0bGUgZmlybSBhbmQgZmluYWxseSBnb3QgCnRvIGhhbmRsZSBhIGJpZyBjb250cmFjdC4gSSBibGV3IGl0IGJlY2F1c2Ugb2Ygb25lIGxpdHRsZSBtaXN0YWtlLiBBbmQKCnlvdSB3ZXJlIHRoZXJlIGJlc2lkZSBtZS4iCgpUaGVuIEkgZmluYWxseSBnb3QgYW5vdGhlciBqb2IgYWZ0ZXIgYmVpbmcgbGFpZCBvZmYgZm9yIHNvbWV0aW1lLiBCdXQKSSBuZXZlciBzZWVtIHRvIGJlIHByb21vdGVkIGFuZCBteSBoYXJkIHdvcmsgd2FzIG5vdCByZWNvZ25pc2VkLiBBcwpzdWNoLCBJIHJlbWFpbmVkIGluIHRoZSBzYW1lIHBvc2l0aW9uIGZyb20gdGUgZGF5IEkgam9pbiB0aGUgY29tcGFueQp0aWxsIG5vdy4uLkFuZCB5b3Ugd2VyZSB0aGVyZSBiZXNpZGUgbWUiCgpIZXIgZXllcyBicmltbWVkIHdpdGggdGVhcnMgYXMgc2hlIGxpc3RlbmVkIHRvIGhlciBodXNiYW5kIDoiQW5kIG5vdyBJCgptZXQgYW4gYWNjaWRlbnQgYW5kIHdoZW4gSSB3b2tlIHVwLCB5b3UgYXJlIGhlcmUgYmVzaWRlIG1lLi4uLgoKLi4uLlRoZXJlJ3Mgc29tZXRoaW5nIEknbGwgcmVhbGx5IGxpa2UgdG8gc2F5IHRvIHlvdS4uLiIKClNoZSBmbHVuZyBoZXJzZWxmIG9uIHRoZSBiZWQgdG8gaHVnIGhlciBodXNiYW5kLCBhbmQgc29iYmluZyB3aXRoCmVtb3Rpb24uCgpIZSBzYWlkLi4uLCAiIEkgdGhpbmsgeW91IHJlYWxseSBicmluZyBtZSBiYWQgbHVjay4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLiAoSmFzcGVyLCAyOC4gSmFuIDE5OTgsIDE2OjU4OjE0KToKCkEgYnVuY2ggb2YgSW5kaWFucyBjYXB0dXJlIGEgY293Ym95IGFuZCBicmluZyBoaW0gYmFjayB0byB0aGVpciBjYW1wIHRvCm1lZXQgdGhlIGNoaWVmLiBUaGUgY2hpZWYgc2F5cyB0byB0aGUgY293Ym95LCAiWW91IGdvaW5nIHRvIGRpZS4gQnV0IHdlCnNvcnJ5IGZvciB5b3UsIHNvIGdpdmUgeW91IG9uZSB3aXNoIGEgZGF5IGZvciB0aHJlZSBkYXlzLiBPbiBzdW5kb3duIG9mCnRoaXJkIGRheSwgeW91IGRpZS4gV2hhdCBpcyBmaXJzdCB3aXNoPyIKClRoZSBjb3dib3kgc2F5cywgIkkgd2FudCB0byBzZWUgbXkgaG9yc2UuIiBUaGUgSW5kaWFucyBnZXQgaGlzIGhvcnNlLgpUaGUgY293Ym95IGdyYWJzIHRoZSBob3JzZSdzIGVhciBhbmQgd2hpc3BlcnMgc29tZXRoaW5nLCB0aGVuIHNsYXBzIHRoZQpob3JzZSBvbiB0aGUgYmFjay4gVGhlIGhvcnNlIHRha2VzIG9mZi4gVHdvIGhvdXJzIGxhdGVyLCB0aGUgaG9yc2UgY29tZXMKYmFjayB3aXRoIGEgbmFrZWQgYmxvbmRlLiBTaGUganVtcHMgb2ZmIHRoZSBob3JzZSBhbmQgZ29lcyBpbnRvIHRoZQp0ZWVwZWUgd2l0aCB0aGUgY293Ym95LiBUaGUgSW5kaWFucyBsb29rIGF0IGVhY2ggb3RoZXIsIGZpZ3VyaW5nLAoiVHlwaWNhbCB3aGl0ZSBtYW4gLSBjYW4gb25seSB0aGluayBvZiBvbmUgdGhpbmcuIgoKVGhlIHNlY29uZCBkYXksIHRoZSBjaGllZiBzYXlzLCAiV2hhdCB5b3VyIHdpc2ggdG9kYXk/IiBUaGUgY293Ym95IHNheXMsCiJJIHdhbnQgdG8gc2VlIG15IGhvcnNlIGFnYWluLiIgVGhlIEluZGlhbnMgYnJpbmcgaGltIGhpcyBob3JzZS4gVGhlCmNvd2JveSBsZWFucyBvdmVyIHRvIHRoZSBob3JzZSBhbmQgd2hpc3BlcnMgc29tZXRoaW5nIGluIHRoZSBob3JzZSdzCmVhciwgdGhlbiBzbGFwcyBpdCBvbiB0aGUgYmFjay4gVHdvIGhvdXJzIGxhdGVyLCB0aGUgaG9yc2UgY29tZXMgYmFjawp3aXRoIGEgbmFrZWQgcmVkaGVhZC4gU2hlIGdldHMgb2ZmIGFuZCBnb2VzIGluIHRoZSB0ZWVwZWUgd2l0aCB0aGUKY293Ym95LgoKVGhlIEluZGlhbnMgc2hha2UgdGhlaXIgaGVhZHMsIGZpZ3VyaW5nLCAiVHlwaWNhbCB3aGl0ZSBtYW4gLSBnb2luZyB0bwpkaWUgdG9tb3Jyb3cgYW5kIGNhbiBvbmx5IHRoaW5rIG9mIG9uZSB0aGluZy4iCgpUaGUgbGFzdCBkYXkgY29tZXMsIGFuZCB0aGUgY2hpZWYgc2F5cywgIlRoaXMgeW91ciBsYXN0IHdpc2gsIHdoaXRlIG1hbi4KV2hhdCB5b3Ugd2FudD8iIFRoZSBjb3dib3kgc2F5cywgIkkgd2FudCB0byBzZWUgbXkgaG9yc2UgYWdhaW4uIgoKVGhlIGluZGlhbnMgYnJpbmcgaGltIGhpcyBob3JzZS4gVGhlIGNvd2JveSBncmFicyB0aGUgaG9yc2UgYnkgYm90aAplYXJzLCB0d2lzdHMgdGhlbSBoYXJkIGFuZCB5ZWxscywgIlJlYWQgbXkgbGlwcyEgUE9TU0UsIGRhbW4gaXQhClAtTy1TLVMtRSEiCgoKcHM6IHdlciBkZW4gbmljaHQgdmVyc3RlaHQgLCBkYXJmIG1pY2ggYXVjaCBmcmFnZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJpdHRlcnNsZXV0IChKYXNwZXIsIDI4LiBKYW4gMTk5OCwgMTc6MDY6NDMpOgpLaW5nIEFydGh1ciB3YXMgZ2V0dGluZyByZWFkeSB0byBnbyBvbiBhIFF1ZXN0LiBIZSB3YXMgd29ycmllZCBhYm91dCBsZWF2aW5nClF1ZWVuIEd1aW5ldmVyZSBhbG9uZSB3aXRoIGFsbCB0aG9zZQpob3JueSBrbmlnaHRzIG9mIHRoZSBSb3VuZCBUYWJsZS4gU28gaGUgd2VudCB0byBNZXJsaW4gZm9yIHNvbWUgYWR2aWNlLiBBZnRlcgpleHBsYWluaW5nIGhpcyBwcmVkaWNhbWVudCB0bwpNZXJsaW4sIHRoZSB3aXphcmQgbG9va2VkIHRob3VnaHRmdWwgYW5kIHNhaWQgdG8gY29tZSBiYWNrIGluIGEgd2VlayBhbmQgaGUnZApzZWUgaWYgaGUgY291bGQgY29tZSB1cCB3aXRoCnNvbWV0aGluZy4KCkEgd2VlayBsYXRlciBLaW5nIEFydGh1ciB3YXMgYmFjayBpbiBNZXJsaW4ncyBsYWJvcmF0b3J5IHdoZXJlIHRoZSBnb29kIHdpemFyZAp3YXMgc2hvd2luZyBoaW0gaGlzIGxhdGVzdAppbnZlbnRpb24uIEl0IHdhcyBhIGNoYXN0aXR5IGJlbHQuLi4gZXhjZXB0IGl0IGhhZCBhIHJhdGhlciBsYXJnZSBob2xlIGluIHRoZQptb3N0IG9idmlvdXMgcGxhY2UuICJUaGlzIGlzIG5vIGdvb2QsCk1lcmxpbiEiIHRoZSBraW5nIGV4Y2xhaW1lZCwgIkxvb2sgYXQgdGhpcyBvcGVuaW5nLiBIb3cgaXMgdGhpcyBzdXBwb3NlZCB0bwpwcm90ZWN0IG1pbGFkeSwgdGhlIFF1ZWVuPyIKCiJBaCwgc2lyZSwganVzdCBvYnNlcnZlLCIgc2FpZCBNZXJsaW4gYXMgaGUgc2VhcmNoZWQgaGlzIGNsdXR0ZXJlZCB3b3JrIGJlbmNoCnVudGlsIGhlIGZvdW5kIHdoYXQgaGUgd2FzIGxvb2tpbmcgZm9yLgpIZSB0aGVuIHNlbGVjdGVkIGhpcyBtb3N0IHdvcm4gb3V0IHdhbmQuIEhlIHRoZW4gaW5zZXJ0ZWQgaXQgaW4gdGhlIGdhcGluZwphcGVydHVyZSBvZiB0aGUgY2hhc3RpdHkgYmVsdCB3aGVyZSB1cG9uIGEKc21hbGwgZ3VpbGxvdGluZSBibGFkZSBjYW1lIGRvd24gYW5kIGN1dCBpdCBuZWF0bHkgaW4gdHdvLgoKIk1lcmxpbiwgeW91IGFyZSBhIGdlbml1cyEiIHNhaWQgdGhlIGdyYXRlZnVsIG1vbmFyY2gsICJOb3cgSSBjYW4gbGVhdmUsCmtub3dpbmcgdGhhdCBteSBRdWVlbiBpcyBmdWxseSBwcm90ZWN0ZWQuIgoKQWZ0ZXIgcHV0dGluZyBHdWluZXZlcmUgaW4gdGhlIGRldmljZSwgS2luZyBBcnRodXIgdGhlbiBzZXQgb3V0IHVwb24gaGlzClF1ZXN0LiBTZXZlcmFsIHllYXJzIHBhc3NlZCB1bnRpbCBoZQpyZXR1cm5lZCB0byBDYW1lbG90LiBJbW1lZGlhdGVseSBoZSBhc3NlbWJsZWQgYWxsIGhpcyBrbmlnaHRzIGluIHRoZSBjb3VydHlhcmQKYW5kIGhhZCB0aGVtIGRyb3AgdGhlaXIgdHJvdXNlcnMgZm9yCmFuIGluZm9ybWFsICdzaG9ydCBhcm0nIGluc3BlY3Rpb24uCgpTdXJlIGVub3VnaCEgRWFjaCBhbmQgZXZlcnkgb25lIG9mIHRoZW0gd2FzIGVpdGhlciBhbXB1dGF0ZWQgb3IgZGFtYWdlZCBpbgpzb21lIHdheS4gQWxsIG9mIHRoZW0gZXhjZXB0IFNpcgpHYWxhaGFkLiAiU2lyIEdhbGFoYWQiLCBleGNsYWltZWQgS2luZyBBcnRodXIsICJUaGUgb25lIGFuZCBvbmx5IHRydWUga25pZ2h0IQpPbmx5IHlvdSBhbW9uZyBhbGwgdGhlIG5vYmxlcyBoYXZlCmJlZW4gdHJ1ZSB0byBtZS4KCldoYXQgaXMgaXQgaW4gbXkgcG93ZXIgdG8gZ3JhbnQgeW91PyBOYW1lIGl0IGFuZCBpdCBpcyB5b3VycyEiCgoiTW1tcGhtcCwiIHNhaWQgU2lyIEdhbGFoYWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcml0dGVyc2xldXQgKEFscGhhLCAyOC4gSmFuIDE5OTgsIDE3OjExOjMyKToKfiMhIHJuPUphc3BlciBydD04ODYwMDM2MDMgcmc9d2l0emUKfiMhIHRpZD04ODYwMDM2MDMKTXVlc3N0ZSBlcyBuaWNodCBoZWlzc2VuICJJIHdhbm5hIGJhY2sgbXkgdG9uZ3VlIiAsb2RlciBzbz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcml0dGVyc2xldXQgKEdyaW1tYm9ybiwgMjguIEphbiAxOTk4LCAyMDozNDozMik6Cn4jISBybj1BbHBoYSBydD04ODYwMDM4OTIgcmc9d2l0emUKfiMhIHRpZD04ODYwMDM2MDMKSmFzcGVyLCB3aWVzbyBwb3N0ZXN0IER1IG5pY2h0IGVpbmZhY2ggZGllIHVybD8gV2FlcmUgc2ljaGVyIGVpbmZhY2hlci4uLgoKQWNoIGphOiAiSGVyciBIYXVwdG1hbm4sIGRlciBHZWZyZWl0ZSBNdWVsbGVyIGlzdCBzb2ViZW4gb2huZSBGYWxsc2NoaXJtCmFiZ2VzcHJ1bmdlbi4iICJXYXMsIHNjaG9uIHdpZWRlcj8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3Qgc2V0enQgc2VpbmUgdXJscyBzcGFyc2FtIGVpbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9yaGluIGltIFdhcnRlemltbWVyIGdlc2VoZW4uLi4gKEFuYXRvbCwgMjkuIEphbiAxOTk4LCAxODowNzoxNCk6CgpXYXJ1bSBhc3NvemlpZXJ0IGRpZSBGcmlzY2h2ZXJoZWlyYXRldGUgQmF5cmluIGRlbiBBbmJsaWNrIGRlcwpQcmFjaHRzdHVlY2tzIGlocmVzIEdhdHRlbiBtaXQgUGF2YXJvdHRpPwoKU2llIGRlbmt0IC4gbyBPICggRGVuIEx1Y2lhbm8hICkKCkFuYXRvbCwgZnVlciAyIFNla3VuZGVuIGF1ZiBKYXNwZXJuaXZlYXUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZvcmhpbiBpbSBXYXJ0ZXppbW1lciBnZXNlaGVuLi4uIChNaW5nbywgMjkuIEphbiAxOTk4LCAyMzoxODoyMyk6Cn4jISBybj1BbmF0b2wgcnQ9ODg2MDkzNjM0IHJnPXdpdHplCn4jISB0aWQ9ODg2MDkzNjM0CkRhcyB3YXIgZG9jaCBzaWNoZXIgYmVpIGRlbiBBbm9ueW1lbiBBbmF0b2xpa2VybiwgYWVoIEFsa29ob2xpa2Vybi4KWml0YXQgTWFoYXRtYTogSWVoLCBBbmF0b2wgaXN0IGphIGVrbGlnLgoKCkdsb2luIC4uLiBmZWl4dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaW5mb3JtYXRpa2VyIChMaSwgMzAuIEphbiAxOTk4LCAxMDoxNTo1Mik6Clp3ZWkgSW5mb3JtYXRpa2VyIHRyZWZmZW4gc2ljaCBpbSBQYXJrLCBkZXIgZWluZSBoYXQgZWluIG5ldWVzIEZhaHJyYWQuCk1laW50IGRlciBhbmRlcmU6CiJCb2FoLCBkb2xsZXMgRmFocnJhZCwgd2FzIGhhc3QnbiBnZWxhdHp0PyIKIldhciBrb3N0ZW5sb3MuIgoiRXJ6YWVobCBtYWwhIgoiTmFqYSwgZ2VzdGVybiBiaW4gaWNoIGhpZXIgZHVyY2ggZGVuIFBhcmsgZ2VnYW5nZW4sIGRhIGtvbW10ICduZSBGcmF1IGF1ZgonbmVtCkZhaHJyYWQgdm9yYmVpLCBoYWVsdCBhbiwgemllaHQgc2ljaCBkaWUgS2xlaWRlciBhdXMsIHVuZCBtZWludCwgaWNoIGtvZW5udGUKYWxsZXMgdm9uIGlocgpoYWJlbiwgd2FzIGljaCB3aWxsLiIKIkhleSBlY2h0IGd1dGUgV2FobCwgZGllIEtsZWlkZXIgaGFldHRlbiBEaXIgZWgnIG5pY2h0IGdlcGFzc3QuLi4iCioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBpbmZvcm1hdGlrZXIgKEdub21lLCAzMC4gSmFuIDE5OTgsIDEwOjI0OjExKToKfiMhIHJuPUxpIHJ0PTg4NjE1MTc1MiByZz13aXR6ZQp+IyEgdGlkPTg4NjE1MTc1MgoqZ3JpbnMqIGRlciBpcyBndXQgOikKYXByb3BvcyBmYWhycmFkOgp0cmVmZmVuIHNpY2ggendlaSBiZWthbm50ZSwgc2FndCBkZXIgZWluZToKImhleSwgZHUgaGFzdCBkb2NoIGpldHp0IGVpbiBuZXVlcyBmYWhycmFkLCB3aWUgZ2VodHMgZGVubiBkZW0/IgoiZXMgZ2VodCBuaWNodCwgZXMgZmFlaHJ0LiIKIm5hIGd1dCwgdW5kIHdpZSBmYWVocnQgZXMgc2ljaD8iCiJlcyBnZWh0LiIKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbHVtZW4gKEdyaW1tYm9ybiwgMzAuIEphbiAxOTk4LCAxMDozNjo0NCk6Ckt1bmRlIGltIEJsdW1lbmxhZGVuOgoiU2luZCBkaWUgQmx1bWVuIGt1ZW5zdGxpY2g/IgoiTmF0dWVybGljaC4iCiJBbHNvIG5hdHVlcmxpY2g/IiAKIk5laW4sIGt1ZW5zdGxpY2guIgoiSmEsIHdhcyBkZW5uIG51biwgbmF0dWVybGljaCBvZGVyIGt1ZW5zdGxpY2g/IgoiS3VlbnN0bGljaCBuYXR1ZXJsaWNoLiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IG51ciBmdWVyIGphc3BlciA6KSBiaXR0ZSBzb2ZvcnQgJ3EnIGRydWVja2VuIChRaXRlc3MsIDMwLiBKYW4gMTk5OCwgMTM6MDU6MDIpOgp+IyEgcm49SmFzcGVyIHJ0PTg4NTgyNjczNSByZz13aXR6ZQp+IyEgdGlkPTg4NTgyNjczNQptZWluIGdvdHQgbmVlLCBtaXIgaXN0IHNjaGxlY2h0LgoKV2FydW0gZ2lidCBlcyBzbyBndXQgd2llIGtlaW5lIE1hZW5uZXJ3aXR6ZSA/CgpXZWlsIE1hZW5uZXIgenVtIEhldWxlbiBzaW5kLgoKUUkqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBudXIgZnVlciBqYXNwZXIgOikgYml0dGUgc29mb3J0ICdxJyBkcnVlY2tlbiAoSGlnaGxhbmRlciwgMzAuIEphbiAxOTk4LCAxMzowNjoxOSk6Cn4jISBybj1RaXRlc3MgcnQ9ODg2MTYxOTAyIHJnPXdpdHplCn4jISB0aWQ9ODg1ODI2NzM1Ck9jaCwgaW4gZGVyIEFtaWNhIHdhciBzb3p1c2FnZW4gZWluZXIuIElzdCBnbGF1YmUgaWNoIFBldWdlb3QtCm9kZXIgUmVuYXVsdC1XZXJidW5nLiBFaW4gQXVma2xlYmVyIG1pdCBibGF1ZW4gUmVpZmVuc3B1cmVuIHVuZCBkZW0gVGV4dAoiSWNoIGJyZW1zZSBhdWNoIGZ1ZXIgTWFlbm5lciIuIEZhbmQgaWNoIGlyZ2VuZHdpZSBzdWVzcyA6PgogICBIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IG51ciBmdWVyIGphc3BlciA6KSBiaXR0ZSBzb2ZvcnQgJ3EnIGRydWVja2VuIChHcmltbWJvcm4sIDMwLiBKYW4gMTk5OCwgMTM6MTg6MDcpOgp+IyEgcm49SGlnaGxhbmRlciBydD04ODYxNjE5Nzkgcmc9d2l0emUKfiMhIHRpZD04ODU4MjY3MzUKU28gaGF0IGRhcyBsZXR6dGUgU29sb3Byb2dyYW1tIHZvbiBIZWxsYSB2b24gU2lubmVuIGdlaGVpc3NlbiwgaXN0IGFsc28gbmljaHQKc28gbmV1Li4uCk1laW4gTGllYmxpbmdzbWFlbm5lcndpdHogaXN0IGltbWVyIG5vY2g6IApXaWUgbmVubnQgbWFuIGVpbmVuIE1hbm4sIGRlbSA5OSUgZGVzIEdlaGlybnMgZW50ZmVybnQgd3VyZGVuPwpFdW51Y2guCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IG51ciBmdWVyIGphc3BlciA6KSBiaXR0ZSBzb2ZvcnQgJ3EnIGRydWVja2VuIChaYXJuaXlhLCAzMC4gSmFuIDE5OTgsIDEzOjIwOjEwKToKfiMhIHJuPUdyaW1tYm9ybiBydD04ODYxNjI2ODcgcmc9d2l0emUKfiMhIHRpZD04ODU4MjY3MzUKaWNoIHdlaXNzLCBkYXNzIGRlciBhbHQgaXN0IHVuZCBlaWdlbnRsaWNoIHZvbiBHcmltbSwgYWJlciBlciBpc3QgZ2VuaWFsOgoKIkRhIHdvIE1hZW5uZXIgaWhyIEdlaGlybiBoYWJlbiwgaGFiZW4gRnJhdWVuIGVpbiBMb2NoISIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWZXJvbmEgRmVsZGJ1c2NoIChJc2lzLCAgMi4gRmViIDE5OTgsIDE0OjE3OjAzKToKV2Vpc3MgbmljaCwgb2IgZGVyIHNjaG9uIGRyYW4gd2FyLi4uCgpXaWUgaGVpc3N0IFZlcm9uYSBGZWxkYnVzY2ggaW4gSmFwYW4/CgoKCgoKCgoKRHVtbSBEaW5nCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBrbGVpbmVyIFNwYXR6IChHZW5lc3lzLCAgMy4gRmViIDE5OTgsIDA4OjQ5OjA0KToKRWluIGtsZWluZXIgU3BhdHosIGRlc3NlbiBLb2xsZWdlbiBhbGxlIHNjaG9uIGxhbmdlIGluIGRlbiB3YXJtZW4gU3VlZGVuCmdlZmxvZ2VuIHNpbmQsIGZsaWVndCBkdXJjaCBkaWUgZWlza2FsdGUgTHVmdC4gRXMga29tbXQsIHdpZSBlcyBrb21tZW4gbXVzczoKZXIgZXJmcmllcnQgaW4gZGVyIEx1ZnQgdW5kIHN0dWVyenQgYXVmIGVpbmUgCldpZXNlLiBFaW5lIEt1aCBrb21tdCBhbmdlbGF1ZmVuIHVuZCBzY2hlaXNzdCBkZW4ga2xlaW5lbiwgZXJmcm9yZW5lbiBTcGF0egp6dS4gSW4gZGVtIHdhcm1lbiBLdWhmbGFkZW4gdGF1dCBkZXIgU3BhdHogbGFuZ3NhbSB3aWVkZXIgYXVmIHVuZCBmcmV1dCAKc2ljaCBzbyBzZWhyIHVlYmVyIHNlaW5lIFJldHR1bmcsIGRhc3MgZXIgbGF1dGhhbHMgenUgc2luZ2VuIGJlZ2lubnQuIApFaW5lIGtsZWluZSBLYXR6ZSBrb21tdCBhbmdlc2NobGljaGVuLCBzY2hhdXQgc2ljaCBkZW4gc2luZ2VuZGVuIEt1aGZsYWRlbgphbiwgd3VuZGVydCBzaWNoIG5pY2h0IHdlbmlnLCBncmFlYnQgZGVuIFNwYXR6IGF1cyB1bmQgZnJpc3N0IGlobi4gV2FzIGlzdCBkaWUKTW9yYWwgZGllc2VyIGtsZWluZW4gR2VzY2hpY2h0ZT8KCjEuIE5pY2h0IGplZGVyLCBkZXIgRGljaCBtaXQgU2NoZWlzc2UgYmV3aXJmdCwgaXN0IERlaW4gRmVpbmQuCjIuIE5pY2h0IGplZGVyLCBkZXIgRGljaCBhdXMgZGVyIFNjaGVpc3NlIHppZWh0LCBpc3QgRGVpbiBGcmV1bmQuCjMuIFdlbm4gRHUgaW0gV2FybWVuIHNpdHp0LCB1bmQgZXMgRGlyIGd1dCBnZWh0LCByZWlzcyBibG9zcyBkYXMKTWF1bCBuaWNodCB6dSB3ZWl0IGF1Zi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJlXjUgKEphc3BlciwgIDMuIEZlYiAxOTk4LCAxNzoyMzozOCk6CldhcyBoYWJlbi9oYXR0ZW4gRGlhbmEgdW5kIFN0ZWZmaSBncmFmIGdlbWVpbnNhbT8KCkVpbmVuIEF1ZnNjaGxhZyB2b24gMjAwIAoKSmFzcGVyIHdhciBnZXJhZGUgZWluZSByYXVjaGVuIHVuZCBzY2hvbiBzY2hvbiB3aWVkZXIgbWl0ICdha3R1ZWxsc3Rlbicgd2l0emVuCnZlcnNvcmd0IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJlXjUgKE1hcmN1cywgIDMuIEZlYiAxOTk4LCAxNzoyNzowNCk6Cn4jISBybj1KYXNwZXIgcnQ9ODg2NTIzMDE4IHJnPXdpdHplCn4jISB0aWQ9ODg2NTIzMDE4CmRlciBpc3QgbWluZGVzdGVucyAyIG1vbmF0ZSBhbHQuCgpDaWFvLCBNYXJjdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCld1bmRlIChaYXJuaXlhLCAgMy4gRmViIDE5OTgsIDE3OjMwOjEwKToKSm9zZXBoIHVuZCBNYXJpYSBkZW5rZW4gc2ljaCBhbSBBYmVuZCB2b3IgSmVzdXMnIDE2LiBHZWJ1cnRzdGFnLCBkYXNzIGRhcwpuaWNodCBzbyB3ZWl0ZXIgZ2VoZW4ga2FubiB1bmQgZGFzIGRlciBKdW5nZSBlbmRsaWNoIGF1Y2ggZGllIEVyZmFocnVuZyBtaXQKZGVuIEZyZXVkZW4gZGVzIExlYmVucyBtYWNoZW4gc29sbHRlLiBBbHNvIGdlaHQgSm9zZXBoIG5vY2ggc3BhZXQgaW4gZGVyIE5hY2h0Cnp1IE1hcmlhIE1hZ2RhbGVuYSwgdW0gZGllIGZ1ZXIgZGVuIGFuZGVyZW4gVGFnIGZ1ZXIgZGVuIFNvaG5lbWFubgprbGFyenVtYWNoZW4uCkFtIGFuZGVyZW4gVGFnIGRhbm4gZ2VodCBkaWUgZ2FuemUgRmFtaWxpZSBkdXJjaHMgRG9yZiB1bmQgZnJldWVuIHNpY2ggZGVzClRhZ2VzLiBWb3IgZGVtIEhhdXMgdm9uIE1hcmlhIE1hZ2RhbGVuYSBzY2hhdWVuIGRpZSBFbHRlcm4gZGFubiBKZXN1cyBhbiB1bmQKc2FnZW4sIGVyIHNvbGxlIHJlaW5nZWhlbiwgZGVubiBkcmlubmVuIHd1ZXJkZSBlaW5lIGdyb3NzZSBVZWJlcnJhc2NodW5nIGF1ZgppaG4gd2FydGVuLiBFciBncnVlYmVsdCB1bmQgZGVua3Qgc2ljaCBkYW5uLCBkYXNzIGRhcyBuaWNodCBzbyBzY2hsaW1tIHNlaW4Ka2FubiwgYXVjaCB3ZW5uIGVyIHNjaG9uIHZvbiBkZW0gUnVmIGRlcyBIYXVzZXMgZ2Vob2VydCBoYXQgdW5kIHZlcnNjaHdpbmRldAppbiBkZW0gR2ViYXVlZGUuCk5hY2ggMTAgTWludXRlbiBrb21tdCBNTSBzY2hyZWllbmQgYXVzIGRlbSBIYXVzIGdlbGF1ZmVuIHVuZCB2ZXJzY2h3aW5kZXQgaW4KZGVyIFd1ZXN0ZS4gQWxzIGRlciBqdW5nZSBKZXN1cyBkYW5uIGF1Y2ggZGFzIEhhdXMgdmVybGFlc3N0LCBmcmFnZW4gZGllCkVsdGVybiB2ZXJ3dW5kZXJ0LCB3YXMgZGVubiBnZXdlc2VuIHdhZXJlLi4uIGVyIG1laW50ZSBkYXJhdWZoaW46CiJWYXRlciwgc2llIGhhdHRlIGVpbmUgc2NobGltbWUgb2ZmZW5lIFd1bmRlISBBYmVyIGljaCBoYWIgbWVpbmUgSGFuZAphdWZnZWxlZ3QgdW5kIHNpZSBnZWhlaWx0ISIKClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiBIaW1tZWwgKERpZWRlciwgIDMuIEZlYiAxOTk4LCAyMToxMTowNSk6CktvbW10IGVpbiBNYW5uIGluIGRlbiBIaW1tZWwuCiJTdGVsbCBEaWNoIGlucyBXYXNzZXIsIG1laW4gU29obiwgdW5kIGplIHRpZWZlciBkZWluZSBTY2h1bGQgaXN0LCBkZXN0bwp0aWVmZXIgd2lyc3QgRHUgZWluc2lua2VuLiIKR2VzYWd0IGdldGFuCkVyIHNpbmt0IGJpcyB6dXIgQnJ1c3QgZWluLiBEYSBzaWVodCBlciBuZWJlbiBzaWNoIEhpdGxlciwgZGVyIGplZG9jaCBudXIgYmlzCnp1IGRlbiBLbmllbiBpbSBXYXNzZXIgc3RlaHQuClZlcnp3ZWlmZWx0IGZyYWd0IGVyOiAiSXN0IG1laW5lIFNjaHVsZCBkZW5uIHdpcmtsaWNoIHNvIGdyb3NzPyIKRGFyYXVmIG1laW4gR290dCBudXIgdmVyYWVjaHRsaWNoOiAiQWNoIGRlciEgU3RlaHQgd29obCBtYWwgd2llZGVyIGF1ZiBkZW4KU2NodWx0ZXJuIHZvbSBQYXBzdCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaW9sb2dlbndpdHogKERpZWRlciwgIDMuIEZlYiAxOTk4LCAyMToxNDo1MSk6CkVpbiBCaW9sb2dlIG1hY2h0IGVpbiBFeHBlcmltYW50OiBFciBzZXR6dCBlaW5lbiBGcm9zY2ggYXVmIGRlbiBUaXNjaCB1bmQKYmxhZXN0IHZvbGxlIEthbm5lIGluIGVpbmUgVHJvZXRlLgpEZXIgRnJvc2NoIG1hY2h0IGVpbmVuIFJpZXNlbnNhdHosIGRlciBCaW9sb2dlIG1pc3N0IGRpZSBXZWl0ZSB1bmQgbm90aWVydCBzaWUKc29yZ2ZhZWx0aWcuCkRhcmF1ZmhpbiBhbXB1dGllcnQgZXIgZGVtIEZyb3NjaCBlaW4gQmVpbiwgc2V0enQgaWhuIGVybmV1dCBhdWYgZGVuIFRpc2NoIHVuZApibGFlc3Qgd2llZGVyIGluIGRpZSBUcm9ldGUuCkVybmV1dCBzcHJpbmd0IGRlciBGcm9zY2ggKGFiZXIgZGllc21hbCBuaWNodCBnYW56IHNvIHdlaXQpLCB1bmQgZXIgbm90aWVydAp3aWVkZXIgZGllIFdlaXRlLgpOdW4gYW1wdXRpZXJ0IGVyIGlobSBkYXMgbmFlY2hzdGUgQmVpbiwgYmxhZXN0IGluIGRpZSBUcm9ldGUsIG1pc3N0LCB1bmQgc28KZ2VodCBlcyB3ZWl0ZXIsIGJpcyBlciBkZW0gRnJvc2NoIGFsbGUgQmVpbmUgYW1wdXRpZXJ0IGhhdC4KV2llZGVyIGJsYWVzdCBlciB2b2xsZSBTZWdlbCBpbiBkaWUgVHJvZXRlLCBhYmVyIG5peCBwYXNzaWVydC4gRXIgdmVyc3VjaHQgZXMKZXJuZXV0IC0gZGVyIEZyb3NjaCBydWVocnQgc2ljaCBuaWNodCB2b20gRmxlY2suCkJlZnJpZWRpZ3QgbmltbXQgZGVyIEJpb2xvZ2Ugc2VpbiBQcm90b2tvbGwgenVyIEhhbmQgdW5kIG5vdGllcnQ6CiJOYWNoIEFtcHV0YXRpb24gYWxsZXIgdmllciBHbGllZG1hc3NlbiB2ZXJsb3IgZGVyIEZyb3NjaCBzZWluIEhvZXJ2ZXJtb2VnZW4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLiAoU2FwaGlzLCAgNC4gRmViIDE5OTgsIDEyOjIwOjEyKToKSW4gYSB3b3JsZCB3aXRob3V0IHdhbGxzIGFuZCBmZW5jZXMgLi4uIHdobyBuZWVkcyBXaW5kb3dzIGFuZApHYXRlcyAoPykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW4ga2xlaW5lciBTcGF0eiAoUHJhLCAgNC4gRmViIDE5OTgsIDE3OjA5OjUzKToKfiMhIHJuPUdlbmVzeXMgcnQ9ODg2NDkyMTQ0IHJnPXdpdHplCn4jISB0aWQ9ODg2NDkyMTQ0ClNwYXR6ZW4gc2luZCBrZWluZSBadWd2b2VnZWwuLi4KClByYS4gUGVkYW50LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFaW4ga2xlaW5lciBTcGF0eiAoWWVuZGksICA1LiBGZWIgMTk5OCwgMTU6MDQ6MTApOgp+IyEgcm49UHJhIHJ0PTg4NjYwODU5MyByZz13aXR6ZQp+IyEgdGlkPTg4NjQ5MjE0NApBYmVyIG9mZmVuc2ljaHRsaWNoIHdhcmVuIGRpZSBLb2xsZWdlbiBkaWVzZXMgU3BhdHplbiBadWd2b2VnZWwsIHdhcz8KClllbmRpLCBkZXIgcmljaHRpZyBQZWRhbnRpc2NoZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBXYXMgaXN0IERBUyBkZW5uPyEgKEdyaW1tYm9ybiwgIDUuIEZlYiAxOTk4LCAxNToxMjoxNyk6Cn4jISBvbj1aYXJuaXlhIG90PTg4NjY4NzQ3OSBvZz1kLnZsYW5kCn4jISBybj1HYW5kbyBydD04ODY2ODU4OTMgcmc9ZC52bGFuZAp+IyEgdGlkPTg4NjE0ODg3NgpIaSBHYW5kbywgCgppY2ggbW9lY2h0ZSBEaWNoIGhvZWZmbGljaHN0IGRhcmF1ZiBoaW53ZWlzZW4sIGRhc3MgZXMgaGllciBpbSBNRyBuaWNodCB3aWUgaW4KYW5kZXJlbiBNdWRzIHp1Z2VodCB1bmQgZGFzIGhpZXIgc2VociB2aWVsIFdlcnQgYXVmIGRlbiBVbWdhbmdzdG9uIGdlbGVndAp3aXJkLiBEZWluZSBBdXNkcnVja3N3ZWlzZSBnZWdlbnVlYmVyIG1laW5lbSBnZWxpZWJ0ZW4KRXgtRXJzdGllLVN0aWVmLVNjaHdpZWdlcnNvaG4gZmluZGUgaWNoIG5pY2h0IHNvIHNjaG9lbiB1bmQgZXMgYmV0cnVlYnQgbWljaAppbW1lciB3aWVkZXIsIHNvbGNoZSBBcnRpa2VsIGxlc2VuIHp1IG11ZXNzZW4uIFNvd2FzIG1hY2h0IGRvY2ggbnVyIGRpZQpTdGltbXVuZyBpbSBNdWQga2FwdXR0IHVuZCBkYXMga2FubiBzaWNoZXIgbmljaHQgRGVpbiBXaWxsZSBzZWluLiBFcyB3dWVyZGUKbWljaCBmcmV1ZW4sIHdlbm4gZGVyIFRvbiBpbiBkZXIgWmVpdHVuZyB3aWVkZXIgenUgZGVtIHdpcmQsIHdhcyBlcyBzZWluCnNvbGx0ZS4uLiB3aXIgc2luZCBkb2NoIGFsbGUgbnVyIE1lbnNjaGVuIGhpbnRlciBDb21wdXRlcm4gdW5kIGFsbGUgenUKc2Vuc2liZWwsIGFscyBkYXMgc293YXMgYW4gdW5zIG9obmUgU2NoYWRlbiB2b3JiZWlnZWh0LgoKTWl0IEZSRVVORGxpY2hlbSBHcnVzegoKWmFybml5YSwgTW9yYWxhcG9zdGVsaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRyYW1wb2xpbndpdHogKEdyaW1tYm9ybiwgIDUuIEZlYiAxOTk4LCAxNTozNDo1Myk6CldhcyBtYWNodCBtYW4sIHdlbm4gYmVpbSBUcmFtcG9saW50cmFpbmluZyBlaW5lciBlaW5lbiBoYWxiZW4gU2FsdG8genUgd2VuaWcKbWFjaHQsIG1pdCBkZW0gS29wZiB6dWVyc3QgcnVudGVya29tbXQsIGF1ZiBkZW0gVHVjaCBsaWVnZW5ibGVpYnQgdW5kIHNpY2gKbmljaHQgbWVociBiZXdlZ3Q/CkdlcmFldCB6dWtsYXBwZW4sIHNvbGwgc2ljaCBkaWUgbmFlY2hzdGUgR3J1cHBlIG1pdCBydW1hZXJnZXJuLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0IHVuZCBFeHRyYW1wb2xpbmVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo0LWxldHRlci13b3JkcyAoUm9jaHVzLCAgNS4gRmViIDE5OTgsIDE1OjQ3OjM5KToKRnJvbToga3Jpc0Brb2VobnRvcHAuZGUgKEtyaXN0aWFuIEtvZWhudG9wcCkKQ29ybmVsaXVzIEtyYXNlbCA8a3Jhc2VsQHdweHgwMi50b3hpLnVuaS13dWVyemJ1cmcuZGU+IHdyaXRlczoKPlNjaG9uIG1hbCBhbHQucmVsaWdpb24uc2NpZW50b2xvZ3kgZ2VsZXNlbj8gRGEga2FubiBtYW4gc2VpbiBWb2thYnVsYXIKPmFuIGVuZ2xpc2NoZW4gZm91ci1sZXR0ZXItd29yZHMgbXVlaGVsb3MgZXJ3ZWl0ZXJuIDotKQoKVkZBVD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayAoS2lsYXIsICA1LiBGZWIgMTk5OCwgMjA6MjE6MzgpOgpGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWssIExla3Rpb24gNDUyNjYuIFVuc2VyIGhldXRpZ2VzIFRoZW1hOgoiRW50ZmVybnRlIEFlaG5saWNoa2VpdCIuCgoqKiogVk9SSEVSOgoKI2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYWluKHZvaWQpIHsKCiAgIGludCBqOwogICBqPSgxMCoxMSkvMjsKCiAgICBwcmludGYoIlN1bW1lOiAlZFxuIiwgaik7CiAgICByZXR1cm4gMDsKfQoKKioqIE5BQ0hIRVI6Cgo1NAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvbGZlciAoSG9ibywgIDYuIEZlYiAxOTk4LCAwODoxNTo0Nik6CkVpbiBFaGVwYWFyIHNwaWVsdCBkYXMgZXJzdGUgR29sZi4gQmVpZGVuIGdlbGluZ3QgZXMgbmljaHQsIGRlbm4gQmFsbApnZXJhZGVhdXMgZmxpZWdlbiB6dSBsYXNzZW4sIGVyIGZsaWVndCBpbW1lciBpbiBlaW5lbSBCb2dlbiBuYWNoIGxpbmtzIG9kZXIKcmVjaHRzIHdlZy4KRW5kbGljaCBlcmJhcm10IHNpY2ggZWluIGVyZmFocmVuZXIgR29sZmVyIHVuZCBnZWh0IHp1IGJlaWRlbiBoaW4uIEVyIHNhZ3QgenVtCk1hbm46ICdTY2hsYWdlbiBTaWUgbm9jaG1hbCwgaWNoIHBhc3NlIGF1Ziwgd28gZGVyIEZlaGxlciBsaWVndC4nCkRlciBNYW5uIHNjaGxhZWd0LCBkZXIgQmFsbCBmbGllZ3QgaW0gd2VpdGVuIEJvZ2VuIG5hY2ggcmVjaHRzIHdlZy4KTWVpbnQgZGVyIEdvbGZlcjogJ0ljaCBzZWggc2Nob24gd29yYW4gZGVyIEZlaGxlciBsaWVndC4gU3RlbGxlbiBTaWUgc2ljaCB2b3IsClNpZSB3dXJkZW4gZGllIEJydWVzdGUgSWhyZXIgRnJhdSBoYWx0ZW4uIEdlbmF1IHNvIGhhbHRlbiBTaWUgamV0enQgZGVuClNjaGxhZWdlciB1bmQgZGFubiBrbGFwcHQgZGFzLicKRGVyIE1hbm4gZ3JlaWZ0IGRlbiBTY2hsYWVnZXIgYWxzbyBhbmRlcnMsIHNjaGxhZWd0LCBkZXIgQmFsbCBmbGllZ3QKc2NobnVyZ2VyYWRlIGF1cywgYmVpbmFoIHNjaG9uIGlucyBMb2NoLgpTYWd0IGRlciBHb2xmZXI6ICdHdXQgc28sIGduYWVkaWdlIEZyYXUsIGpldHp0IFNpZSEnCkRpZSBGcmF1IG1hY2h0IGFsc28gaWhyZW4gUHJvYmVzY2hsYWcsIGRlciBCYWxsIGZsaWVndCB3aWUgaW1tZXIgaW0gZ3Jvc3NlbgpCb2dlbiBuYWNoIGxpbmtzLgpTYWd0IGRlciBHb2xmZXI6ICdJY2ggc2VoIHNjaG9uLCB3b3JhbiBkZXIgRmVobGVyIGxpZWd0LiBTaWUgd2lzc2VuIGRvY2gsIHdpZQpTaWUgZGVuIFNjaHdhbnogdm9uIElocmVtIE1hbm4gaGFsdGVuLiBHZW5hdSBzbyBtYWNoZW4gU2llIGRhcyBtaXQgZGVtClNjaGxhZWdlciwgdW5kIGRhbm4ga2xhcHB0IGRhcy4nCkRpZSBGcmF1IG5pY2t0IHVuZCBzY2hsYWVndC4gRGVyIEJhbGwgZmxpZWd0IHNjaG51cmdlcmFkZSAtIGFiZXIgbnVyIHp3ZWkKTWV0ZXIgd2VpdC4KTWVpbnQgZGVyIEdvbGZlcjogJ0RhcyB3YXIgc2Nob24gZ2FueiBndXQgc28sIGFiZXIgamV0enQgbmVobWVuIFNpZSBkZW4KU2NobGFlZ2VyIGJpdHRlIG5vY2ggYXVzIGRlbSBNdW5kLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRydWUgU3RvcnkhIChCYW1idWxrbywgIDYuIEZlYiAxOTk4LCAxMTozNTo1NCk6CioqKiBGcnVzdHJhdGVkIEhvbmR1cmFuIHBlYXNhbnQgY2FzdHJhdGVzIGhpbXNlbGYKCkEgSG9uZHVyYW4gcGVhc2FudCBjYXN0cmF0ZWQgaGltc2VsZiB3aXRoIGEgbWFjaGV0ZSBpbiBhIGZpdCBvZiByYWdlCmJlY2F1c2UgaGlzIHdpZmUgcmVmdXNlZCB0byBoYXZlIHNleCB3aXRoIGhpbSwgYSBsZWFkaW5nIGxvY2FsCm5ld3NwYXBlciByZXBvcnRlZCBNb25kYXkuIFRoZSBIZXJhbGRvIGRhaWx5IHNhaWQgSnVhbiBQYWJsbyBWYXJlbGEsCjQ3LCBjdXQgb2ZmIGhpcyB0ZXN0aWNsZXMgYWZ0ZXIgaGlzIHdpZmUgTWFyaWEgbG9zdCBpbnRlcmVzdCBpbiBoaW0uClRoZSBjb3VwbGUgaGF2ZSBmb3VyIGNoaWxkcmVuLiAiT25jZSBoZSBjdXQgb2ZmIGJvdGggdGVzdGljbGVzIGhlIHB1dAp0aGVtIG9uIGEgdGFibGUsIHRoZW4gZ3JhYmJlZCB0aGVtIGFuZCB3ZW50IHRvIGEgaGVhbHRoIGNlbnRlciB0bwpoYXZlIHRoZW0gcmVhdHRhY2hlZCwiIHRoZSBIZXJhbGRvIHNhaWQuIEl0IHNhaWQgVmFyZWxhIHdhcyBub3QgaW4KYW55IGRhbmdlciBidXQgaGlzIGNoYW5jZXMgb2YgcmVjb3ZlcmluZyBmdWxsIG1hbmhvb2Qgd2VyZSBleHRyZW1lbHkKc2xpbS4gICAgIFRoZSBjb3VwbGUgbGl2ZSBpbiB0aGUgUGF0dWNhIHJlZ2lvbiwgMTMwIG1pbGVzIGVhc3Qgb2YKVGVndWNpZ2FscGEuCgoKU29ycnkgS2V5LCBhYmVyIGljaCBoYXR0ZSBlcyBuaWNodCBhdWYgZGV1dHNjaC4uLgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUcnVlIFN0b3J5ISAoR25vbWUsICA2LiBGZWIgMTk5OCwgMTE6NDU6MzQpOgp+IyEgcm49QmFtYnVsa28gcnQ9ODg2NzYxMzU0IHJnPXdpdHplCn4jISB0aWQ9ODg2NzYxMzU0CndhcyBlcyBkb2NoIGZ1ZXIgdm9lbGxpZyBiZWtuYWNrdGUgdm9sbGlkaW90ZW4gZ2lidC4uLgpiZXNvbmRlcnMgaW4gaG9uZHVyYXMuIDopCgpnbk9tZQoKYWNoc286IHdhcyBoYWJlbiBlaW5lIGxhbmRtaW5lIHVuZCBlaW5lIGZyYXUgYWxzIHZvcmdlc2V0enRlIGdlbWVpbnNhbT8KICAgICAgIHdlbm4gZHUgYW4gZGllIG5pcHBlbCBrb21tc3QsIGZsaWVnc3RlLgoKICAgICAgIG9rIG9rLCB3YXIgamFzcGVyLW5pdmVhdSwgYWJlciBpY2ggZGFyZiBhdWNoIG1hbCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFlc2NoZW53aXR6IC4uLiAoWWFyZW4sICA2LiBGZWIgMTk5OCwgMTM6MTg6MDIpOgpad2VpIEhhc2VuIHRyZWZmZW4gc2ljaCBpbSBXYWxkIHVuZCBpaG5lbiBpc3QgdGllcmlzY2ggbGFuZ3dlaWxpZy4KRGEgc2FndCBkZXIgZWluZTogIk1pciBpc3Qgc28gbGFuZ3dlaWxpZywgbGFzcyB1bnMgbWFsIEVudGVuIGZpY2tlbgpnZWhuISIuIEdlc2FndCwgZ2V0YW4sIGRpZSBiZWlkZW4gemllaGVuIGxvcyB1bmQgdHJlZmZlbiBhdWYgZGVtIFdlZwp6dW0gU2VlIGVpbmVuIGtsZWluZW4gSGFzZW4uICJXbyB3b2xsdCBpaHIgZGVubiBoaW4/IiAtICJXaXIgZ2VoZW4KenVtIFNlZSwgRW50ZW4gZmlja2VuLiIgLSAiV2FzIGlzdCBkYXM/IiAtICJEYXMga29lbm5lbiB3aXIgRGlyIG5pY2h0CnNhZ2VuLCBkYWZ1ZXIgYmlzdCBEdSBub2NoIHp1IGtsZWluISIuIERlciBrbGVpbmUgSGFzZSBiZXR0ZWx0IGFiZXIKZWluZSBnYW56ZSBXZWlsZSBydW0gdW5kIHNjaGxpZXNzbGljaCBuZWhtZW4gc2llIGlobiBkb2NoIG1pdC4gQW0gU2VlCmFuZ2Vrb21tZW4sIHN0dWVyemVuIHNpY2ggZGllIGJlaWRlbiBIYXNlbiBhdWYgZGllIEVudGVuLCBkaWUgamVkb2NoCmdhciBuaWNodCBibG9lZGUgc2luZCB1bmQgdWViZXIgZGVuIFNlZSBhdWYgZGllIGFuZGVyZSBTZWl0ZSBzY2h3aW1tZW4uCkRpZSBIYXNlbiBkZW5rZSBzaWNoICJEaWUga3JpZWdlbiB3aXIhIiB1bmQgcmVubmVuIHVtIGRlbiBTZWUgaGVydW0sCmRvY2ggZGllIEVudGVuIHdhcmVuIG1hbCB3aWVkZXIgc2NobmVsbGVyIHVuZCBzY2h3aW1tZW4genVydWVjaywgZGllCkhhc2VuIHVtIGRlbiBTZWUgaGVydW0gaGludGVyaGVyLiBTbyBnZWh0IGRhcyBlaW5lIGdhbnplIFdlaWxlLCBkaWUKSGFzZW4gcmVubmVuIGltbWVyIHVtIGRlbiBTZWUgaGVydW0gaGludGVyIGRlbiBFbnRlbiBoZXIsIGJpcyBkZXIgCmtsZWluZSBIYXNlIHppZW1saWNoIGF1c3NlciBBdGVtIGlzdCB1bmQgamFwc2VuZCBzYWd0OiAiRW50ZW5maWNrZW4KaXN0IGphIGVjaHQga2xhc3NlLCBhYmVyIG5hZWNoc3RlIFJ1bmRlIHNldHplIGljaCBtYWwgYXVzIgoKWWFyZW4gbXVzc3RlIGF1Y2ggbWFsIG5lbiBGdXNzYmFsbGVyd2l0eiBlcnphZWhsZW4gLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphdXMgZGVyIEJvbm5lciBTdHVkaXplaXR1bmcuIChQcmEsICA2LiBGZWIgMTk5OCwgMTU6NTM6MjApOgpUcmVmZmVuIHNpY2ggendlaSBHcnVlbmUgYXVmIGVpbmVtIFBhcnRlaXRhZzoKCkdydWVuZXIgQTogQWxzbyBhbGxlcyBpbiBhbGxlbSB3YXIgSGl0bGVyIGphIGRvY2ggbmljaHQgc29vb28gc2NobGltbS4KCkdydWVuZXIgQjogTmEgc2Nob24sIGFiZXIgZGllIEF1dG9iYWhuZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vIGNvbW1lbnQgKFphcm5peWEsICA3LiBGZWIgMTk5OCwgMTQ6MTI6NDIpOgoKR2VzdGVybiBzY2hsYWd6ZWlsZW4gaW4gS29lbG5lciBFeHByZXNzOgoKS3JpZWcgZ2VnZW4gU2FkZGFtISEhIQpMb3MgZ2VodCBlcyBhbSAxNyBGZWJydWFyLgpGQUVMTFQgS0FSTkVWQUwgQVVTPz8/Pz8KClphcm5peWEgYnJhdWNodCBkYXp1IHdvaGwgbmljaHRzIHNhZ2VuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaWxpdGFlcnMuLi4gKEdyaW1tYm9ybiwgMTAuIEZlYiAxOTk4LCAyMTo0NTowNik6CkF1cyBkZW0gb2ZmaXppZWxsZW4gQnJpZWYsIGRlbiBkaWUgQmVzYXR6dW5nIGRlcyBzZWlsYmFobmthYmVsdHJlbm5lbmRlbgpNaWxpdGFlcmZsdWd6ZXVnZXMgYW4gZGllIEFuZ2Vob2VyaWdlbiBkZXIgT3BmZXIgZ2VyaWNodGV0IGhhdDoKIldpciB3dWVyZGVuIG5pZW1hbHMgZXR3YXMgdHVuLCB3YXMgYWJzaWNodGxpY2ggZGFzIExlYmVuIGFuZGVyZXIgTWVuc2NoZW4gaW4KR2VmYWhyIGJyaW5nZW4gd3VlcmRlLiIKCkFsc28sIHdlbm4gZGFzIGRpZSBvZmZpemllbGxlIEVpbnN0ZWxsdW5nIGRlciBNaWxpdGFlcmZ1ZWhyZXIgd2VsdHdlaXQgaXN0CnppZWhlIGljaCBtZWluZSBWZXJ3ZWlnZXJ1bmcgYWxzIGdlZ2Vuc3RhbmRzbG9zIHp1cnVlY2suLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc3RpbGJsdWV0ZW4gKExpLCAxMi4gRmViIDE5OTgsIDExOjQwOjE1KToKCgpTdGlsYmx1ZXRlbiBhdXMgS2luZGVyYXVmc2FldHplbjoKCiAgKiBOZWJlbiBQcnVua3NhZWFlbGVuIGhhdHRlbiBkaWUgUml0dGVyIGF1Y2ggaGVpemJhcmUgRnJhdWVuemltbWVyLgogICogQWxsZSBXZWx0IGhvcmNodGUgYXVmLCBhbHMgTHV0aGVyIDE2NDIgc2VpbmUgOTUgUHJvdGhlc2VuIGFuIGRpZQogICAgU2NobG9zc2tpcmNoZSB6dSBXaXR0ZW5iZXJnIHNjaGx1Zy4KICAqIENhZXNhciBtYWNodGUgZGFzIExhZ2VyIHZvbGwgdW5kIGplZGVyIHN0YW5kIHN0cmFtbSBiZWkgc2VpbmVtIEhhdWZlbi4KICAqIEdyYWYgWmVwcGVsaW4gd2FyIGRlciBlcnN0ZSwgZGVyIG5hY2ggdmVyc2NoaWVkZW5lbiBSaWNodHVuZ2VuCiAgICBzY2hpZmZ0ZS4KICAqIERpZSBBbG0gbGllZ3QgaG9jaCBpbSBHZWJpcmdlLkRvcnQgaXN0IGRlciBTZW5uZXIgdW5kIGRpZSBTZW5uZXJpbi5JbQogICAgRnJ1ZWhqYWhyIHdpcmQgYXVmZ2V0cmllYmVuLCBpbSBIZXJic3QgYWJnZXRyaWViZW4uCiAgKiBVbnNlcmUgU2NodWxlIHdhciBmcnVlaGVyIGVpbiBXYWlzZW5oYXVzLiBEYXJhbiBlcmlubmVydCB1ZWJlciBkZW0KICAgIEVpbmdhbmcgZWluZSBlaW5nZWhhdWVuZSBGcmF1LCBkaWUgdm9ybmUgZWluZW4gS25hYmVuIHVuZCBoaW50ZW4gZWluCiAgICBNYWVkY2hlbiBlbXBmYWVuZ3QuCiAgKiBFaW5lIGthdGhvbGlzY2hlIFNjaHdlc3RlciBrYW5uIG5pY2h0IGF1c3RyZXRlbiwgZGEgc2llIHplaXRsZWJlbnMgaW0KICAgIEtsb3N0ZXIgbGViZW4gbXVzcy4KICAqIERpZSBNYWNodCBkZXMgV2Fzc2VycyBpc3Qgc28gZ2V3YWx0aWcsIGRhc3Mgc2VsYnN0IGRlciBzdGFlcmtzdGUgTWFubiBlcwogICAgbmljaHQgaGFsdGVuIGthbm4uCiAgKiBXaXIgZ2luZ2VuIGluIGRlbiBab28uRXMgd2FyIGVpbiBncm9zc2VyIEFmZmUgaW0gS2FlZmlnLk1laW4gT25rZWwgd2FyCiAgICBhdWNoIGRhYmVpLgogICogRGVyIGxlaWNodHNpbm5pZ2UgVmllaGJyaWdhZGllciBoYXR0ZSBtaXQgc2VpbmVtIEthcnJlbiBkZW4gZ2FuemVuIFphdW4KICAgIHVtZ2VmYWhyZW4uRGFzIFNjaHdlaW4ga29ubnRlIGVyc3Qgc3BhZXRlciBlaW5nZWZhbmdlbiB3ZXJkZW4uCiAgKiBNaXQgc3RhcmtlbSwgZ3Jvc3NlbiBTdHJhaGwgZ2ViZW4gZGllIEZldWVyd2VocmxldXRlIGlociBXYXNzZXIgYWIuCiAgKiBEZXIgTGFuZHdpcnRzY2hhZnRzbWluaXN0ZXIgbGllc3MgZGllIEJhdWVybiB6dXNhbW1lbmtvbW1lbiwgZGVubiBkaWUKICAgIFNjaHdlaW5lIGZyYXNzZW4genV2aWVsLgogICogQmVpbSBSb3RlbiBLcmV1eiB3aWRtZW4gc2ljaCBNYWVubmVyIHVuZCBGcmF1ZW4gZGVyIExpZWJlLiBNYW5jaGUgdHVuIGVzCiAgICB1bXNvbnN0LCBhbmRlcmUgYmVrb21tZW4gZXMgYmV6YWhsdC4KICAqIEFscyBkZXIgSmFlZ2VyIGRlbiBkaWNrZW4gQmF1Y2ggZGVyIEdyb3NzbXV0dGVyIHNhaCwgd3Vzc3RlIGVyIHNvZm9ydCB3YXMKICAgIGdlc2NoZWhlbiB3YXIuIChhdXMgUm90a2FlcHBjaGVuKQogICogRG9ydCB3byBqZXR6dCBkaWUgVHJ1ZW1tZXIgcmFnZW4sIHN0YW5kZW4gZWluc3Qgc3RvbHplIEJ1cmdmcmFldWxlaW5zIHVuZAogICAgd2FydGV0ZW4gYXVmIGlocmUgYXVzZ2V6b2dlbmVuIFJpdHRlci4KICAqIEVzIHdhciBlaW5lIG1hY2h0dm9sbGUgRGVtb25zdHJhdGlvbi5EZXIgTWFya3RwbGF0eiB3YXIgdm9sbGVyCiAgICBNZW5zY2hlbi5JbiBkZW4gTmViZW5zdHJhc3NlbiBwZmxhbnp0ZW4gc2ljaCBNYWVubmVyIHVuZCBGcmF1ZW4gZm9ydC4KICAqIEluIExhcHBsYW5kIHdvaG5lbiAyIFNvcnRlbiBNZW5zY2hlbi5EaWUgcmVpY2hlbiBMYXBwZW4gZmFocmVuIGltCiAgICBSZW50aWVyZ2VzcGFubiwgZGllIGFybWVuIExhcHBlbiBnZWhlbiB6dSBGdXNzLiBEYWhlciBkZXIgTmFtZQogICAgRnVzc2xhcHBlbi4gQXVjaCB3b2huZW4gZG9ydCBkaWUgTWVuc2NoZW4gc2VociBkaWNodCB6dXNhbW1lbi5EYWhlciBkYXMKICAgIFNwcmljaHdvcnQ6IEVzIGxhZXBwZXJ0IHNpY2ggenVzYW1tZW4uCiAgKiBOYWNoZGVtIGRpZSBNYWVubmVyIDEwMG0gZ2VrcmF1bHQgaGF0dGVuLCB3aWNrZWx0ZW4gZGllIEZyYXVlbiBpaHJlIDIwMG0KICAgIEJydXN0IGFiLgogICogRGllIFN0cmVpY2hob2VsemVyIG11ZXNzZW4gZ3V0IHZlcnN0ZWNrdCB3ZXJkZW4sIGRhbWl0IHNpZSBrZWluZSBrbGVpbmVuCiAgICBLaW5kZXIgYmVrb21tZW4uCiAgKiBNZWluZSBUYW50ZSBzY2hlbmt0ZSBtaXIgZWluZSBTcGFyYnVlY2hzZS5TaWUgd2FyIGVpbiBTY2h3ZWluLlNpZSBoYXR0ZQogICAgMiBTY2hsaXR6ZS4gSGludGVuIGVpbmVuIGZ1ZXIncyBQYXBpZXIsIHVuZCB2b3JuZSBmdWVyJ3MgSGFydGUuCiAgKiAuLi51bmQgd2lyIGdpbmdlbiBtaXQgdW5zZXJlciBMZWhyZXJpbiBpbSBQYXJrc3BhemllcmVuLkdlZ2VudWViZXIgZGVtCiAgICBQYXJrIHdhciBlaW4gSGF1cywgd28gZGllIE11ZXR0ZXIgaWhyZSBLaW5kZXIgZ2ViYWVyZW4uIEVpbmUgR2ViYWVybXV0dGVyCiAgICBzY2hhdXRlIGF1cyBkZW0gRmVuc3RlciB1bmQgd2lua3RlIHVucyBmcmV1ZGlnIHp1LgoKTGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkd1dGUgU2lnbmF0dXJlIChOaXJkYXZvLCAxMi4gRmViIDE5OTgsIDE3OjQwOjIyKToKICBJY2ggaGFiIGdyYWQgZWluZSBndXRlIFNpZ25hdHVyZSBnZWxlc2VuLCBkaWUgamVtYW5kIGF1ZiBlaW5lcgpNYWlsaW5nLUxpc3RlIGJlbnV0enQ6CgpyZW1lbWJlcjogY29mZmVlIGtlZXBzIHlvdSBhd2FrZSwgc28gZG9uJ3QgZHJpbmsgdG9vIG11Y2ggYXQgd29yawoKICAqcm90ZmwqCgogICAgICAgIE5pcmRhdm8sIGthbm4gbWl0IGRlbSBLaWNoZXJuIGthdW0gYXVmaG9lcmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHN0aWxibHVldGVuIChFbmd5d3VjaywgMTIuIEZlYiAxOTk4LCAxOTo0OTo0Myk6Cn4jISBybj1BY3JpbW9uIHJ0PTg4NzMwODk4MyByZz13aXR6ZQp+IyEgdGlkPTg4NzI4MDAxNQpBbHNvLCB3ZW5uIGljaCBtYW5jaGUgdm9uIEFjcmltb25zIEFydGlrZWxuIGxlc2UsIGJpbiBpY2ggdmVyZGFtbXQgZnJvaCwgZWluZQpkcmVja2lnZSB1bmQgZWluc2VpdGlnZSBQaGFudGFzaWUgenUgaGFiZW4uLi4KCkVuZ3kqCgpPSihkcmVja2lnIHVuZCBlaW5zZWl0aWcpOiAKRjogV2FzIG1hY2hlbiB2aWVyIEtpdHpsZXIgaW4gZGVyIEZ1c3NnYWVuZ2Vyem9uZT8KQTogU2llIHdhcnRlbiBiaXMgU2NobGVja2VyIG9lZmZuZXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTb3NvLi4uIChHcmltbWJvcm4sIDEyLiBGZWIgMTk5OCwgMjE6NDY6NTgpOgpQYXJ0ZWl0YWcgZGVyIEdydWVuZW4uCkdydWVuZXIgQTogIkFsc28sIGVpZ2VudGxpY2ggd2FyIEhpdGxlciBkb2NoIGdhciBuaWNodCBzbyB1ZWJlbC4iCkdydWVuZXIgQjogIlNjaG9uLCBhYmVyIGRpZSBBdXRvYmFobmVuLi4uIgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaXNrcmltaW5pZXJ1bmcgKEdyaW1tYm9ybiwgMTQuIEZlYiAxOTk4LCAxODozOTo0Nyk6CkRpZSBBbWlzIGRpc2t1dGllcmVuLCBpaHJlbiBCb3RzY2hhZnRlciBhdXMgTHV4ZW1idXJnIGFienV6aWVoZW4sIHdlaWwgZGVyCnNjaHd1bCBpc3QuIEFsc28sIGljaCB3ZWlzcyBpY2h0LCBpY2ggaGFiIGdlc3Rlcm4gZXJzdCBpbSBGZXJuc2VoZW4gZ2VzZWhlbiwKZGFzcyBkZXJlbiBlaWdlbmVyIEF1c3Nlbm1pbmlzdGVyICh3aWUgaGVpc3N0IGRlciBrbGVpbmUgRGlja2Ugbm9jaD8pIHNlbGJlcgpnYW56IGdlcm4gS2xlaWRlciB0cmFlZ3QuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERpc2tyaW1pbmllcnVuZyAoUHJhLCAxNS4gRmViIDE5OTgsIDE0OjUwOjQ1KToKfiMhIHJuPUdyaW1tYm9ybiBydD04ODc0Nzc5ODcgcmc9d2l0emUKfiMhIHRpZD04ODc0Nzc5ODcKU28gZGljayBpc3QgZGVyIEtsZWluZSBnYXIgbmljaHQuIEhlaXNzdCB1ZWJyaW5nZW5zIEFsbGJyaWdodC4gQXVmIGRldXRzY2gKc293YXMgd2llICd6aWVtbGljaCBoZWxsZScgb2RlciBzby4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9sa3NlbnRzY2hlaWQgKFJ1bWF0YSwgMTYuIEZlYiAxOTk4LCAxMzoxNzo0MCk6ClhZWiB0ZWlsdCBEaXIgbWl0OiBpY2ggYmluIGdlZ2VuIGRhcyBuZXVlIHRhbmtzeXN0ZW0KRHUgdGVpbHN0IFhZWiBtaXQ6IHRqYSA6KSAKWFlaIHRlaWx0IERpciBtaXQ6IHdhcyBrYW5uIGljaCBkYWdlZ2VuIHR1biA/Pz8KRHUgdGVpbHN0IFhZWiBtaXQ6IG5peApEdSB0ZWlsc3QgWFlaIG1pdDogd2VubiBkdSBlaW5lbiBmZWhsZXIgZGFyaW4gc2llaHN0LCBtYWlscyBzaWx2YW5hClhZWiB0ZWlsdCBEaXIgbWl0OiBnaWJ0IGVzIG5pY2h0IHNvd2FzIHdpZSBlaW4gVm9sa3NlbnRzY2hlaWQgPwpEdSB0ZWlsc3QgWFlaIG1pdDogKmxhY2gqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogQ0hVUkNIIEJVTExFVElOUyAvIFRZUE9TIChCZW5zb25tYW0sIDE4LiBGZWIgMTk5OCwgMTA6NDQ6MDMpOgoKICoqIEFjdHVhbCBBbm5vdW5jZW1lbnRzIFRha2VuIGZyb20gQ2h1cmNoIEJ1bGxldGlucyAqKgogCiAgMSkgRG9uJ3QgbGV0IHdvcnJ5IGtpbGwgeW91LiBMZXQgdGhlIENodXJjaCBoZWxwLgogCiAgMikgVGh1cnNkYXkgbmlnaHQ6ICBQb3RsdWNrIFN1cHBlci4gUHJheWVyIGFuZCBtZWRpY2F0aW9uIHRvIGZvbGxvdy4KICAKICAzKSBSZW1lbWJlciBpbiBwcmF5ZXIgdGhlIG1hbnkgd2hvIGFyZSBzaWNrIG9mIG91ciBjaHVyY2ggYW5kIGNvbW11bml0eS4KICAKICA0KSBGb3IgdGhvc2Ugb2YgeW91IHdobyBoYXZlIGNoaWxkcmVuIGFuZCBkb24ndCBrbm93IGl0LCB3ZSBoYXZlIGEgCiBudXJzZXJ5IGRvd25zdGFpcnMuCiAgCiAgNSkgVGhlIHJvc2VidWQgb24gdGhlIGFsdGFyIHRoaXMgbW9ybmluZyBpcyB0byBhbm5vdW5jZSB0aGUgYmlydGggb2YgCiBEYXZpZCBBbGFuIEJlbHplciwgdGhlIHNpbiBvZiBSZXZlcmVuZCBhbmQgTXJzLiBKdWxpdXMgQmVsemVyLgogIAogIDYpIFRoaXMgYWZ0ZXJub29uIHRoZXJlIHdpbGwgYmUgYSBtZWV0aW5nIGluIHRoZSBzb3V0aCBhbmQgbm9ydGggZW5kcyBvZgogdGhlIGNodXJjaC4gIENoaWxkcmVuIHdpbGwgYmUgYmFwdGl6ZWQgYXQgYm90aCBlbmRzLiAKIAogIDcpIFR1ZXNkYXkgYXQgNFBNIHRoZXJlIHdpbGwgYmUgYW4gaWNlIGNyZWFtIHNvY2lhbC4gIEFsbCBsYWRpZXMgZ2l2aW5nIAogbWlsayB3aWxsIHBsZWFzZSBjb21lIGVhcmx5LgogIAogIDgpIFdlZG5lc2RheSwgdGhlIExhZGllcyBMaXR1cmd5IFNvY2lldHkgd2lsbCBtZWV0LiBNcnMuIEpvbmVzIHdpbGwKIHNpbmcgICAgICJQdXQgTWUgSW4gTXkgTGl0dGxlIEJlZCIgYWNjb21wYW5pZWQgYnkgdGhlIHBhc3Rvci4KICAKICA5KSBUaHVyc2RheSBhdCA1UE0gdGhlcmUgd2lsbCBiZSBhIG1lZXRpbmcgb2YgdGhlIExpdHRsZSBNb3RoZXJzIENsdWIuIAogQWxsIHdpc2hpbmcgdG8gYmVjb21lIExpdHRsZSBNb3RoZXJzLCBwbGVhc2Ugc2VlIHRoZSBtaW5pc3RlciBpbiBoaXMgCiBwcml2YXRlIHN0dWR5LgogIAogIDEwKSBUaGlzIGJlaW5nIEVhc3RlciBTdW5kYXksIHdlIHdpbGwgYXNrIE1yLiBWYXNzaWxhcyB0byBjb21lIGZvcndhcmQgCiBhbmQgbGF5IGFuIGVnZyBvbiB0aGUgYWx0YXIuCiAgCiAgMTEpIFRoZSBzZXJ2aWNlIHdpbGwgY2xvc2Ugd2l0aCAiTGl0dGxlIERyb3BzIE9mIFdhdGVyIi4gT25lIG9mIHRoZSAKIGxhZGllcyB3aWxsIHN0YXJ0IChxdWlldGx5KSBhbmQgdGhlIHJlc3Qgb2YgdGhlIGNvbmdyZWdhdGlvbiB3aWxsIGpvaW4gIAogaW4uIAogCiAgMTIpIE5leHQgU3VuZGF5LCBhIHNwZWNpYWwgY29sbGVjdGlvbiB3aWxsIGJlIHRha2VuIHRvIGRlZnJheSB0aGUgY29zdCAKIG9mIHRoZSBuZXcgY2FycGV0LiAgQWxsIHRob3NlIHdpc2hpbmcgdG8gZG8gc29tZXRoaW5nIG9uIHRoZSBuZXcgY2FycGV0IAogd2lsbCBjb21lIGZvcndhcmQgYW5kIGdldCBhIHBpZWNlIG9mIHBhcGVyLiAKICAKICAxMykgVGhlIGxhZGllcyBvZiB0aGUgY2h1cmNoIGhhdmUgY2FzdCBvZmYgY2xvdGhpbmcgb2YgZXZlcnkga2luZCBhbmQgCiB0aGV5IG1heSBiZSBzZWVuIGluIHRoZSBjaHVyY2ggYmFzZW1lbnQgRnJpZGF5LgogIAogIDE0KSBBIGJlYW4gc3VwcGVyIHdpbGwgYmUgaGVsZCBvbiBUdWVzZGF5IGV2ZW5pbmcgaW4gdGhlIGNodXJjaCBoYWxsLiAgCiBNdXNpYyB3aWxsIGZvbGxvdy4KICAKICAxNSkgQXQgdGhlIGV2ZW5pbmcgc2VydmljZSB0b25pZ2h0LCB0aGUgc2VybW9uIHRvcGljIHdpbGwgYmUgIldoYXQgaXMgCiBIZWxsPyIuICBDb21lIGVhcmx5IGFuZCBsaXN0ZW4gdG8gb3VyIGNob2lyIHByYWN0aWNlLgogIAogIDE2KSBXZWlnaHQgV2F0Y2hlcnMgd2lsbCBtZWV0IGF0IDcgUE0gYXQgdGhlIEZpcnN0IFByZXNieXRlcmlhbiBDaHVyY2guCiBQbGVhc2UgdXNlIGxhcmdlIGRvdWJsZSBkb29yIGF0IHRoZSBzaWRlIGVudHJhbmNlLgogIAogIDE3KSBUaGUgMTk5OCBTcHJpbmcgQ291bmNpbCBSZXRyZWF0IHdpbGwgYmUgaGVsbCBNYXkgMTAgYW5kIDExLgogIAogIDE4KSBQYXN0b3IgaXMgb24gdmFjYXRpb24uIE1hc3NhZ2VzIGNhbiBiZSBnaXZlbiB0byBjaHVyY2ggc2VjcmV0YXJ5LgogIAogIDE5KSA4IG5ldyBjaG9pciByb2JlcyBhcmUgY3VycmVudGx5IG5lZWRlZCwgZHVlIHRvIHRoZSBhZGRpdGlvbiBvZiAKIHNldmVyYWwgbmV3IG1lbWJlcnMgYW5kIHRvIHRoZSBkZXRlcmlvcmF0aW9uIG9mIHNvbWUgb2xkZXIgb25lcy4gCiAKICAyMCkgTXJzLiBKb2huc29uIHdpbGwgYmUgZW50ZXJpbmcgdGhlIGhvc3BpdGFsIHRoaXMgd2VlayBmb3IgdGVzdGVzLgogIAogIDIxKSBUaGUgU2VuaW9yIENob2lyIGludml0ZXMgYW55IG1lbWJlciBvZiB0aGUgY29uZ3JlZ2F0aW9uIHdobyBlbmpveXMgCiBzaW5uaW5nIHRvIGpvaW4gdGhlIGNob2lyLgogIAogIDIyKSBQbGVhc2Ugam9pbiB1cyBhcyB3ZSBzaG93IG91ciBzdXBwb3J0IGZvciBBbXkgYW5kIEFsYW4gd2hvIGlzIAogcHJlcGFyaW5nIGZvciB0aGUgZ2lydGggb2YgdGhlaXIgZmlyc3QgY2hpbGQuCiAgCiAgMjMpIFNjb3V0cyBhcmUgc2F2aW5nIGFsdW1pbnVtIGNhbnMsIGJvdHRsZXMsIGFuZCBvdGhlciBpdGVtcyB0byBiZSAKIHJlY3ljbGVkLiAgUHJvY2VlZHMgd2lsbCBiZSB1c2VkIHRvIGNyaXBwbGUgY2hpbGRyZW4uCiAgCiAgMjQpIFRoZSBMdXRoZXJhbiBNZW4ncyBncm91cCB3aWxsIG1lZXQgYXQgNiBQTS4gIFN0ZWFrLCBtYXNoZWQgcG90YXRvZXMsCiBncmVlbiBiZWFucywgYnJlYWQgYW5kIGRlc3NlcnQgd2lsbCBiZSBzZXJ2ZWQgZm9yIGEgbm9taW5hbCBmZWVsLgogIAogIDI1KSBUaGUgQXNzb2NpYXRlIE1pbmlzdGVyIHVudmVpbGVkIHRoZSBjaHVyY2gncyBuZXcgdGl0aGluZyBjYW1wYWlnbgogc2xvZ2FuIGxhc3QgU3VuZGF5OiAgIkkgVXBwZWQgTXkgUGxlZGdlIC0tLSBVcCBZb3Vycy4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkYW1hbHMgKENhdHdlYXpsZSwgMTguIEZlYiAxOTk4LCAxNTo0MDowNik6Ck9sbGUgS2FtZWxsZW4gOi0pCi0tLS0tCm5ldWxpY2ggaW0gUkwgOikgKENhdHdlYXpsZSwgIDIuIFNlcCAxOTk0LCAxNzo1OToyNyk6CkNhdHdlYXpsZSBzaXR6dCBhbiBQYXNjYWwgdW5kIHNjaGF1dCBzaWNoIG1pdCB4diBkaWUgRmV0ZW5mb3Rvcwphbi4KSm9mIGtvbW10IGFuLgpKb2Ygc2FndDogT2ggbmV1ZSBCaWxkZXI/CkNhdHdlYXpsZSBzYWd0OiBKYSwgdm9uIERvbmFsZC4KQ2F0d2VhemxlIHNhZ3Q6IEhhYmVuIGFiZXIgYWxsZSBuZSBzY2hsZWNodGUgUXVhbGl0YWV0LgpKb2YgZmFlbmd0IGFuIHp1IGRlbmtlbi4KS2xlaW5lIFJhdWNod29lbGtjaGVuIHN0ZWlnZW4gYXVmLgpKb2Ygc2FndDogSG1tLgpKb2Ygc2FndDogVmVyZ3JvZXNzZXIgbWFsLgpDYXR3ZWF6bGUga2xpY2t0IGF1ZiAnRGJsIFNpemUnLgpKb2Ygc2FndDogVW5kIGpldHp0IG1hY2ggbWFsIHNtb290aC4KQ2F0d2VhemxlIGtsaWNrdCBhdWYgJ1Ntb290aCcuClhWIGZhZW5ndCBhbiB6dSByZWNobmVuLiBFaW4ga2xlaW5lciBGaXNjaCBkcmVodCBzaWNoIGltIEtyZWlzLgpKb2Ygc2FndDogQWVoLCBEdSwgQ2F0d2VhemxlPwpDYXR3ZWF6bGUgc2FndDogSmE/CkpvZiBzYWd0OiBBdWYgd2VsY2hlbiBSZWNoZXIgaGFzdCBkdSBkZW5uIFhWIGdlc3RhcnRldD8KQ2F0d2VhemxlIGdyaW5zdC4KQ2F0d2VhemxlIHNhZ3Q6IEF1ZiBQYXNjYWwuIFdpZXNvPwpKb2Ygc2NocmVpdCBsYXV0LgotLS0tLQpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBkYW1hbHMgKENhdHdlYXpsZSwgMTguIEZlYiAxOTk4LCAxNTo0MTozMik6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9ODg3ODEyODA2IHJnPXdpdHplCn4jISB0aWQ9ODg3ODEyODA2ClVuZCB3ZW5uIGljaCBzY2hvbiBtYWwgZGFiZWkgYmluIDopCi0tLS0tCk5ldWxpY2ggaW0gUkwgKENhdHdlYXpsZSwgMzEuIE9rdCAxOTk0LCAxNjo1NTo1OSk6CkpvZiBrb21tdCBhbi4KRHUgc2Fnc3Q6IEpvZiwgc29yZyBkb2NoIG1hbCBkYWZ1ZXIsIGRhcyBkaWUgVHVlciBuaWNodCBtZWhyIHNvIHF1aWV0c2NodC4KSm9mIHNhZ3Q6IFdpZSBkZW5uPwpEdSBzYWdzdDogSGFzdCBkdSBrZWluIFdELTQwPwpSb2NodXMgc2FndDogTmltbSBTaWxpY29uc3ByYXkuCkpvZiBzYWd0OiBIYW1td2VyIG5pY2h0LgpKb2YgZ2VodC4KSm9mIGtvbW10IGFuLgpKb2YgenVlY2t0IGVpbmUgU3ByYXlkb3NlLgpKb2Ygc3BydWVodCBkaWUgVHVlcmFuZ2VsbiBlaW4uCkR1IHNhZ3N0OiBPaCwgSGFidCBpaHIgZG9jaCBTaWxpY29uc3ByYXk/CkpvZiBzYWd0OiBOb2UsIGRhcyBpc3QgS29udGFrdHNwcmF5LgpEdSBicmljaHN0IHZvciBMYWNoZW4genVzYW1tZW4uClJvY2h1cyBicmljaHQgdm9yIExhY2hlbiB6dXNhbW1lbi4KSm9mIHNhZ3Q6IERpZSBUdWVyIGdlaHQgamV0enQgdmllbCBzY2h3ZXJlci4KSm9mIHNhZ3Q6IEhhZXJ0ZXQgZGFzIGF1cz8KRHUgYnJpY2hzdCB2b3IgTGFjaGVuIHp1c2FtbWVuLgpSb2NodXMgYnJpY2h0IHZvciBMYWNoZW4genVzYW1tZW4uCkpvZiBzYWd0OiBXYXIgZGFzIGpldHp0IGVpbiBGZWhsZXI/Ci0tLS0tCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGRhbWFscyAoR3JpbW1ib3JuLCAxOC4gRmViIDE5OTgsIDIxOjQ2OjMyKToKfiMhIHJuPUNhdHdlYXpsZSBydD04ODc4MTI4MDYgcmc9d2l0emUKfiMhIHRpZD04ODc4MTI4MDYKQWVoLCB1bSBkZW4gV2l0eiB2ZXJzdGVoZW4genUga29lbm5lbjogIlBhc2NhbCIgaXN0IGRlciBSZWNobmVyLCBhdWYgZGVtIGRhcwpNRyBkYW1hbHMgbGllZi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0LiBVcmFsdC4KClAuUy4gRGEgZ2FicyBkb2NoIG1hbCBzbyBlaW5lbiBVbXp1Z3NiZXJpY2h0IHZvbiBtaXIsIGFscyBNRyB2b24gUGFzY2FsIGF1ZgpTYW50YW5hIHVtZ2V6b2dlbiBpc3QuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZGFtYWxzIChDYXR3ZWF6bGUsIDE5LiBGZWIgMTk5OCwgMDk6NTk6MzcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg4NzgzNDc5MiByZz13aXR6ZQp+IyEgdGlkPTg4NzgxMjgwNgpCaXR0ZSBzZWhyLCBiaXR0ZSBnbGVpY2guCkluIGFsdGVuIEFydGlrZWxuIHN0b2ViZXJuIG1hY2h0IHVlYnJpZ2VucyB1bmdsYXVibGljaCB2aWVsIFNwYXNzLiAKVW5kIHNlbnRpbWVudGFsIGF1Y2ggLi4uCgotLS0tLQpNRy1VbXp1ZyAtIGVpbiBCZXJpY2h0IChKb2YsIDE1LiBOb3YgMTk5NCwgMTQ6NTY6MTMpOgpbVmVybGVndCB2b24gc2NobWFycm4sIEdyaW1tYm9ybiwgMTQuIE5vdiAxOTk0LCAyMDowOTozOV06CkJla2FubnRsaWNoICg/KSBpc3QgZGFzIE1HIHVtZ2V6b2dlbi4gRGFzIGdpbmcgbmljaHQgb2huZSBQcm9ibGVtZSBhYi4gSGllcgplaW4gYXV0aGVudGlzY2hlciBCZXJpY2h0LgooRGVyIEJlcmljaHQgYmFzaWVydCBhdWYgSW5kaXppZW4sIGRpZSB0YXRzYWVjaGxpY2hlbiBCZWdlYmVuaGVpdGVuIGtvZW5uZW4KbGVpY2h0IGRhdm9uIGFid2VpY2hlbikKCk11ZW5zdGVyLCBNb250YWcsIDE0LjExLjE5OTQsIDEwIFVocgpQYXNjYWwgc3RlaHQgc28gcnVtLCBKb2YgdW5kIEtpcmsgYmV0cmV0ZW4gZGVuIFJhdW0uCkpvZjogU28sIDEwIFVociwgWmVpdCB6dW0gdW16aWVoZW4sIE1HIQpNRzogV2Fzd2lld28/IERhdm9uIHdlaXNzIGljaCBhYmVyIG5pY2h0cyEKS2lyayBOdW4gc3RlbGwgRGljaCBuaWNodCBhbiwgd2lyIGhhYmVuIERpciBCZXNjaGVpZCBnZXNhZ3QuCk1HOiBJY2ggd2lsbCBuaWNodC4KSm9mOiBOdW4gbWFjaCBrZWluZSBHZXNjaGljaHRlbiwgbG9zLCByYXVzLCBhdWYgU2FudGFuYSB3aXJkcyBEaXIgYXVjaApnZWZhbGxlbi4KTUc6IE5laW4sIGljaCBibGVpYmUuIE1pciBnZWZhZWxsdHMgaGllci4KSm9mICh3aXJkIGxhbmdzYW0gdW5ydWhpZyk6IE51biBrb21tLCBTYW50YW5hIGhhdCAyIENQVXMsIDEyOE1CLCBpc3QgZWluIEdBTloKdG9sbGVyIFJlY2huZXIhCk1HIE5laW4sIGljaCB3aWxsIG5pY2h0LgpKb2Yga25pZXQgc2ljaCBoaW4sIHNjaGF1dCBpbiBkZW4gRGlza2V0dGVuc2NobGl0ei4gTUcgYmxpY2t0IGlobiB0cm90emlnIGFuLgpLaXJrOiBTY2hsdXNzIG1pdCBkZW0gR2VqYW1tZXJlLCBEdSBrb21tc3QgbWl0IQpNRzogTkVJTiEgKmF1ZiBzdHVyIHNjaGFsdCoKSm9mIChmbGVodCBpbiBkZW4gRGlza2V0dGVuc2NobGl0eik6IE51biBrb21tIHNjaG9uLiBTbyB2aWVsZSBMZXV0ZSB3YXJ0ZW4KYXVmIERpY2guIERhcyBrYW5uc3QgRHUgZG9jaCBuaWNodCBtYWNoZW4uIFdpciBoYWJlbiBkaWUgYWx0ZSBBZHJlc3NlIHNjaG9uCmxhaG0gZ2VsZWd0IHVuZCBhbGxlcy4uLgpNRzogRGFubiBsZWd0IGhhbHQgd2llZGVyIHVtLiBJY2ggYmxlaWJlIQoqCioKOgpFaW5lIGhhbGJlIFN0dW5kZSBzcGFldGVyOgpKb2YgKG1pdHRsZXJ3ZWlsZSB2b2VsbGlnIGR1cmNoZ2VzY2h3aXR6dCB1bmQgdGF0c2FlY2hsaWNoIGVpbiB3ZW5pZwp1bmdlaGFsdGVuKTogSmV0enQgaXN0IGFiZXIgZW5kZ3VlbHRpZyBTY2hsdXNzISBFbnR3ZWRlciBEdSBrb21tc3QgZnJlaXdpbGxpZwpvZGVyIHdpciBncmVpZmVuIHp1IGdld2FsdHNhbWVuIE1pdHRlbG4hCktpcmsgKG1pdCBob2Nocm90ZW0gS29wZiwgZGllIEF4dCBhdXMgZGVtIEJyYW5ka2FzdGVuIHNjaG9uIHNlaXQgbGFlbmdlcmVtCmdyaWZmYmVyZWl0KTogTGFzcyBtaWNoIG1hbCByYW4sIEpvZi4gSWNoIHdlaXNzLCB3aWUgd2lyIGRlbiBNaXN0a2VybApyYXVza3JpZWdlbiEhCkpvZiBiZWtvbW10IHBsb2V0emxpY2ggZGFzIEVuZGUgZWluZXMgTG9jaHN0cmVpZmVucyB6dSBmYXNzZW4uCkpvZjogSWNoIGhhYiBpaG4hIEhpbGYgbWlyLCBLaXJrIQpNaXQgdmVyZWludGVuIEtyYWVmdGVuIHppZWhlbiBzaWUgYW0gTG9jaHN0cmVpZmVuLCBpbW1lciBsYWVuZ2VyIHdpcmQgZGFzClN0dWVjay4gUGxvZXR6bGljaCBlaW4gIlJycnJyaWl0c2NoISIsIGRlciBTdHJlaWZlbiBpc3QgZ2VyaXNzZW4uCkpvZjogVmVyZGFtbXQsIG1pdCBkaWVzZW0gbXVkIGhhdCBtYW4gYWJlciBhdWNoIE5VUiBBZXJnZXIhCktpcms6IEFjaCB3YXMsIGRhIGtvbW10IGVpbiBiaXNjaGVuIFRlc2EgZHJ1ZWJlciwgbWVya3Qga2VpbiBNZW5zY2guCkpvZjogRGFzIGdpYnQgZG9jaCB3aWVkZXIgZWluZW4gQWJzdHVyeiBuYWNoIGRlbSBhbmRlcmVuLiBCaXMgZGFzIHdpZWRlcgpyaWNodGlnIHJlcGFyaWVydCBpc3QuLi4KS2lyazogQWNoIHdhcywgaGF0IGphIGtlaW5lciBnZXNlaGVuLiBVbmQgZGllIGNyYXNocyBzY2hpZWJlbiB3aXIgSGF0ZSB1bmQKRGFuY2VyIGluIGRpZSBTY2h1aGUsIGRpZSBzaW5kIGRhcyBnZXdvZWhudC4KSm9mIChlcmxlaWNodGVydCk6IEF1Y2ggd2llZGVyIHdhaHIuIExvcywgaGlsZiBtaXIsIGRlbiBSZXN0IHJhdXN6dWhvbGVuLgoKQmFsZCBkYXJhdWYgbGF1ZmVuIEpvZiB1bmQgS2lyayBtaXQgZ3Jvc3NlbiBIYXVmZW4gdm9uIExvY2hzdHJlaWZlbiBkdXJjaCBkaWUKS29ycmlkb3JlIGluIFJpY2h0dW5nIFNhbnRhbmEuCkNhdCoga29tbXQgYW4uCkNhdCogKGVudGdlaXN0ZXJ0KTogV2FzIHR1dCBpaHIgZGVubj8KSm9mOiBNRyB6aWVodCB1bS4KQ2F0KjogRWhybGljaD8gV29oaW4gZGVubiBkYXM/Cktpcms6IEF1ZiBtZWluZW4gU2FudGFuYS4gVG9sbGVyIFJlY2huZXIsIDIgQ1BVLCAxMjguLi4KQ2F0KiAodW50ZXJicmljaHQpOiBBZWgsIGthbm4gaWNoIGRhIGF1Y2ggeFdpbiBmYWhyZW4/CkpvZiBLbGFyIGthbm5zdCBEdSEKQ2F0KjogTmEsIGRhIGJpbiBpY2ggamEgZXJsZWljaHRlcnQuCkpvZiAoaGludGVyIGVpbmVtIFN0YXBlbCBMb2Noa2FydGVuIG11ZWhzYW0gaGVydm9yc2NoYXVlbmQpOiBEdSBrb2VubnRlc3QKdmllbGxlaWNodCBoZWxmZW4sIGRpZSBLYXJ0ZW4uLi4KSm9mIHNjaGF1dCBsZWljaHQgZW50Z2Vpc3RlcnQgZGVtIGdlc2Nod2luZCBkYXZvbmVpbGVuZGVuIFJ1ZWNrZW4gdm9uIENhdCoKbmFjaC4KClNhbnRhbmEgc3RlaHQgc28gcnVtLCBKb2YgdW5kIEtpcmsgYmV0cmV0ZW4gZGVuIFJhdW0sIGRpZSBBcm1lIHZvbGxlcgpMb2Noc3RyZWlmZW4uClNhbnRhbmE6IFdhcyBzb2xsIGRhcyBkZW5uPz8/CkpvZiBIaWVyIGtvbW10IGRhcyBNRywgZGFzIGxhZXVmdCBqZXR6dCBhdWYgRGlyLgpTYW50YW5hOiBLb21tdCBuaWNodCBpbiBGcmFnZS4gTWlyIGhhdCBrZWluZXIgd2FzIGdlc2FndC4KS2lyayBzdG9laG50LgpLaXJrOiBKZXR6dCBtYWNodCBkZXIgYXVjaCBub2NoIFByb2JsZW1lLi4uCktpcmsgKHp1IFNhbnRhbmEpOiBBbHNvIGhvZXIgbWFsIHp1LCB3aXIgaGFiZW4gc2Nob24gZ2VudWcgUHJvYmxlbWUuIFdlbm4gRHUKbmljaHQgR0FOWiBicmF2IG1pdHNwaWVsc3QgZmFja2VsIGljaCBEaXIgZGllIENQVXMgYWIgdW5kIHJlaXNzIERpciBqZWRlcyBiaXQKUkFNIGVpbnplbG4gcmF1cywgaGFiZW4gd2lyIHVucyB2ZXJzdGFuZGVuPz8/ClNhbnRhbmEgZXJibGVpY2h0LgpKb2Ygc3RhdW50LgpKb2Y6IEhtbSwgd2llIGVya2xhZXJlbiB3aXIgamV0enQsIGRhc3MgYXVzIGRlbSBGYXJibW9uaXRvciBlaW4KU2Nod2FyendlaXNzbW9uaXRvciBnZXdvcmRlbiBpc3Q/Cktpcms6IEFjaCwgdW5zIGZhZWxsdCBzY2hvbiB3YXMgZWluLiBFcnN0bWFsIHJlaW4gbWl0IGRlbSBNaXN0IGhpZXIuIEljaCBiaW5zCmxhbmdzYW0gbGVpZC4gRGEgdmVyc3VjaHQgbWFuLCBkZW0gTUcgd2FzIEd1dGVzIHp1IHR1biB1bmQgd2FzIGlzdD8gQWxsZSBzaW5kCmRhZ2VnZW4uIFVuZCBnbGVpY2gga29lbm5lbiB3aXIgdW5zIEdlbWVja2VyZSB1ZWJlciBkaWUgbGFuZ2UgRGF1ZXIgYW5ob2VocmVuLgpKb2YgKHNjaHdpdHplbmQgaGludGVyIHNlaW5lbSBTdGFwZWwgTG9jaHN0cmVpZmVuKTogSmEsIHdlbm4gZGllIHd1ZXNzdGVuLAp3YXMgaGludGVyIFN5c3RlbWFkbWluaXN0cmF0aW9uIGZ1ZXIgZWluZSBBcmJlaXQgc3RlY2t0LiBTdGVpbmVrbG9wZmVuIGlzdApVcmxhdWIgZGFnZWdlbi4KSm9mIHZlcnN1Y2h0LCBkZW4gTG9jaHN0cmVpZmVuIGluIFNhbnRhbmEgZWluenVmdWVocmVuLgpKb2YgZmx1Y2h0IGZ1ZXJjaHRlcmxpY2guCktpcms6IFdhcyBpc3Q/CkpvZjogU2FudGFuYSBpc3Qgc3RvZXJyaXNjaCwgbmltbXQgZGVuIFN0cmVpZmVuIG5pY2h0IGFuLiBEZXIgU2NobGl0eiBpc3QgenUKc2NobWFsLgpLaXJrIHNpZWh0IHNpY2ggc2Nob24gZGVuIEtyYW0genVydWVja3RyYWdlbiB1bmQgUGFzY2FsIGRhcyBnYW56ZSBlcmtsYWVyZW4uCktpcmsgd2lyZCBsZWljaGVuYmxhc3MuCktpcms6IERlciBTY2hsaXR6IGlzdCB6dSBzY2htYWw/IERhcyBoYWJlbiB3aXIgZ2xlaWNoLgpLaXJrIGtyYW10IHNlaW4gVGFzY2hlbm1lc3NlciBoZXJ2b3IgdW5kIHNhZWJlbHQgYW4gZGVyIFZlcmtsZWlkdW5nIHJ1bS4KSm9mOiBKYSwgZWluIGd1dGVyIHN5c2FkbWluIG11c3MgbWl0IGFsbGVuIFNjaHdpZXJpZ2tlaXRlbiBmZXJ0aWcgd2VyZGVuCmtvZW5uZW4uIEFiZXIgZGFzcyB1bnMgZGllc2UgSW5rb21wYXRpYmlsaXRhZXQgbmljaHQgdm9yaGVyIGF1ZmdlZmFsbGVuIGlzdC4uLgpLaXJrOiBTbywgamV0enQgbXVlc3N0ZSBlcyBrbGFwcGVuLiBNZWluZSBHdWV0ZSwgc2Nob24gc28gc3BhZXQuIERpZSBhbmRlcmVuCmtpbGxlbiB1bnMuCkpvZjogSWNoIGJpbiBsZXZlbCAxMTEsIGljaCBzY2h1ZXR6ZSB1bnMuCkpvZiBzdG9wZnQgZGllIExvY2hzdHJlaWZlbiBpbiBTYW50YW5hLgpTYW50YW5hIHJ1ZWxwc3QuCktpcmsgaGFlbW1lcnQgYXVmIGRlciBUYXN0YXR1ciBydW0uCgpEdSB2ZXJsaWVyc3QgZGllIEJlc2lubnVuZy4uLi4KCkR1IHRhdWNoc3QgaW4gZWluZW4gU3RydWRlbCBidW50ZXIgRmFyYmVuIGVpbi4KKgoqCioKRmF6aXQ6IERpZSBtb2Rlcm5lIFRlY2huaWsgaXN0IGF1Y2ggbmljaHQgZGFzLCB3b2Z1ZXIgbWFuIHNpZSBpbW1lciBoYWVsdC4uLgoKQWxzIFJlcG9ydGVyIGF1cyBkZXIgTWl0dGUgZGVzIEdlc2NoZWhlbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JpbW1ib3JuIGRlciBBdGhlaXN0CgpQLlMuOiBXaWxsa29tbWVuIGF1ZiBTYW50YW5hLCBkZW0gbmV1ZW4gWnVoYXVzZSB2b24gTUchCgotLS0tLQpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJhc3Npc3Rpc2NoIChQcmEsICAyLiBNYXIgMTk5OCwgMTA6MTU6MjgpOgpLYW0gZ2VzdGVybiBhYmVuZCBpbSBUYXRvcnQgYXVzIE11ZW5jaGVuOgoKIldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIFR1ZXJrZW4gdW5kIGVpbmVtIFNhY2hzZW4/IgoKIi0gRWluIFR1ZXJrZSBrYW5uIGRldXRzY2ggdW5kIGhhdCBBcmJlaXQuIgoKClByYS4gTWFnIGphIGVpZ2VudGxpY2gga2VpbmUgcmFzc2lzdGlzY2hlbiBXaXR6ZS4gRWlnZW50bGljaC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3ViamVjdDogQ09NUEFRIHVzYWJpbGl0eSBwcm9ibGVtIChLZXRvcywgIDIuIE1hciAxOTk4LCAxMToyNzowNik6CiAKQ09NUEFRIGlzIHJlcGxhY2luZyB0aGUgb24tc2NyZWVuIGluc3RydWN0aW9uIAoiUHJlc3MgYW55IGtleSIgd2l0aCAiUHJlc3MgdGhlIHJldHVybiBrZXkiLCAKaW4gYW4gYXR0ZW1wdCB0byByZWR1Y2UgdGhlIGZsb29kIG9mIHRlbGVwaG9uZSAKY2FsbHMgdG8gdGhlaXIgaGVscCBkZXNrIGFza2luZyB3aGVyZSB0aGUgIkFueSIga2V5IGlzLgogCltTb3VyY2U6IFVLIHByZXNzLCBxdW90ZWQgb24gIlRoZSBOZXdzIFF1aXoiLCBCQkMgUmFkaW8gNCwgMjFzdCBGZWIuIAoxOTk4XQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRoZSA1IFRvdWdoZXN0IFF1ZXN0aW9ucyBXb21lbiBBc2sgKE1hcnMsIDEwLiBNYXIgMTk5OCwgMTU6Mjg6MDYpOgpIZXJlIGFyZSBhbnN3ZXJzIHRvIDUgb2YgdGhlIHRvdWdoZXN0IHF1ZXN0aW9ucyB3b21lbiBhc2suLi4gVGhlcmUgYXJlCmZpdmUgdGhpbmdzIHRoYXQgd29tZW4gc2hvdWxkIG5ldmVyLCBldmVyIGFzayBhIGd1eSwgYWNjb3JkaW5nIHRvIGFuCmFydGljbGUgaW4gbGFzdCBBcHJpbCdzIGlzc3VlIG9mIFNhc3N5IG1hZ2F6aW5lLgoKICAgICBUaGUgZml2ZSBxdWVzdGlvbnMgYXJlOgogICAgIDEgLSAgIldoYXQgYXJlIHlvdSB0aGlua2luZz8iCiAgICAgMiAtICAiRG8geW91IGxvdmUgbWU/IgogICAgIDMgLSAgIkRvIEkgbG9vayBmYXQ/IgogICAgIDQgLSAgIkRvIHlvdSB0aGluayBzaGUgaXMgcHJldHRpZXIgdGhhbiBtZT8iCiAgICAgNSAtICAiV2hhdCB3b3VsZCB5b3UgZG8gaWYgSSBkaWVkPyIKCldoYXQgbWFrZXMgdGhlc2UgcXVlc3Rpb25zIHNvIGJhZCBpcyB0aGF0IGV2ZXJ5IG9uZSBpcyBndWFyYW50ZWVkIHRvCmV4cGxvZGUgaW50byBhIG1ham9yIGFyZ3VtZW50IGFuZC9vciBkaXZvcmNlIGlmIHRoZSBtYW4gZG9lcyBub3QgYW5zd2VyCnByb3Blcmx5LCB3aGljaCBpcyB0byBzYXkgZGlzaG9uZXN0bHkuICBGb3IgZXhhbXBsZToKCgoxIC0gICJXaGF0IGFyZSB5b3UgdGhpbmtpbmc/IiAgVGhlIHByb3BlciBhbnN3ZXIgdG8gdGhpcyBxdWVzdGlvbiwgb2YKY291cnNlIGlzLCAiSSdtIHNvcnJ5IGlmIEkndmUgYmVlbiBwZW5zaXZlLCBkZWFyLiAgSSB3YXMganVzdApyZWZsZWN0aW5nIG9uIHdoYXQgYSB3YXJtLCB3b25kZXJmdWwsIGNhcmluZywgdGhvdWdodGZ1bCwgaW50ZWxsaWdlbnQsCmJlYXV0aWZ1bCB3b21hbiB5b3UgYXJlIGFuZCB3aGF0IGEgbHVja3kgZ3V5IEkgYW0gdG8gaGF2ZSBtZXQgeW91LiIKCk9idmlvdXNseSwgdGhpcyBzdGF0ZW1lbnQgYmVhcnMgbm8gcmVzZW1ibGFuY2Ugd2hhdHNvZXZlciB0byB3aGF0IHRoZQpndXkgd2FzIHJlYWxseSB0aGlua2luZyBhdCB0aGUgdGltZSwgd2hpY2ggd2FzIG1vc3QgbGlrZWx5IG9uZSBvZiBmaXZlCnRoaW5nczoKCiAgICAgYSAtICBCYXNlYmFsbAogICAgIGIgLSAgRm9vdGJhbGwKICAgICBjIC0gIEhvdyBmYXQgeW91IGFyZS4KICAgICBkIC0gIEhvdyBtdWNoIHByZXR0aWVyIHNoZSBpcyB0aGFuIHlvdS4KICAgICBlIC0gIEhvdyBoZSB3b3VsZCBzcGVuZCB0aGUgaW5zdXJhbmNlIG1vbmV5IGlmIHlvdSBkaWVkLgoKQWNjb3JkaW5nIHRvIHRoZSBTYXNzeSBhcnRpY2xlLCB0aGUgYmVzdCBhbnN3ZXIgdG8gdGhpcyBzdHVwaWQgcXVlc3Rpb24gY2FtZQpmcm9tIEFsIEJ1bmR5LCBvZiBNYXJyaWVkIFdpdGggQ2hpbGRyZW4sIHdobyB3YXMgYXNrZWQgaXQgYnkgaGlzIHdpZmUsIFBlZy4KIklmIEkgd2FudGVkIHlvdSB0byBrbm93LCIgQWwgc2FpZCwgIkknZCBiZSB0YWxraW5nIGluc3RlYWQgb2YgdGhpbmtpbmcuIgoKClRoZSBvdGhlciBxdWVzdGlvbnMgYWxzbyBoYXZlIG9ubHkgb25lIHJpZ2h0IGFuc3dlciBidXQgbWFueSB3cm9uZyBhbnN3ZXJzOgoKCjIgLSAgIkRvIHlvdSBsb3ZlIG1lPyIgIFRoZSBjb3JyZWN0IGFuc3dlciB0byB0aGlzIHF1ZXN0aW9uIGlzLCAiWWVzLiIKRm9yIHRob3NlIGd1eXMgd2hvIGZlZWwgdGhlIG5lZWQgdG8gYmUgbW9yZSBlbGFib3JhdGUsIHlvdSBtYXkgYW5zd2VyCiJZZXMsICBkZWFyLgoKICAgICBXcm9uZyBhbnN3ZXJzIGluY2x1ZGU6CgogICAgIGEgLSAgSSBzdXBwb3NlIHNvLgogICAgIGIgLSAgV291bGQgaXQgbWFrZSB5b3UgZmVlbCBiZXR0ZXIgaWYgSSBzYWlkIHllcy4KICAgICBjIC0gIFRoYXQgZGVwZW5kcyBvbiB3aGF0IHlvdSBtZWFuIGJ5ICJsb3ZlIi4KICAgICBkIC0gIERvZXMgaXQgbWF0dGVyPwogICAgIGUgLSAgV2hvLCBtZT8KCgozIC0gICJEbyBJIGxvb2sgZmF0PyIgIFRoZSBjb3JyZWN0IG1hbGUgcmVzcG9uc2UgdG8gdGhpcyBxdWVzdGlvbiBpcyB0bwpjb25maWRlbnRseSBhbmQgZW1waGF0aWNhbGx5IHN0YXRlLCAiTm8sIG9mIGNvdXJzZSBub3QiIGFuZCB0aGVuCnF1aWNrbHkgbGVhdmUgdGhlIHJvb20uICBXcm9uZyBhbnN3ZXJzIGluY2x1ZGU6CgogICAgIGEgLSAgSSB3b3VsZG4ndCBjYWxsIHlvdSBmYXQsIGJ1dCBJIHdvdWxkbid0IGNhbGwgeW91IHRoaW4gZWl0aGVyLgogICAgIGIgLSAgQ29tcGFyZWQgdG8gd2hhdD8KICAgICBjIC0gIEEgbGl0dGxlIGV4dHJhIHdlaWdodCBsb29rcyBnb29kIG9uIHlvdS4KICAgICBkIC0gIEkndmUgc2VlbiBmYXR0ZXIuCiAgICAgZSAtICBDb3VsZCB5b3UgcmVwZWF0IHRoZSBxdWVzdGlvbj8gIEkgd2FzIHRoaW5raW5nIGFib3V0IHlvdXIKICAgICBpbnN1cmFuY2UgcG9saWN5LgoKCjQgLSAgIkRvIHlvdSB0aGluayBzaGUncyBwcmV0dGllciB0aGFuIG1lPyIgIFRoZSAic2hlIiBpbiB0aGUgcXVlc3Rpb24KY291bGQgYmUgYW4gZXgtZ2lybGZyaWVuZCwgYSBwYXNzZXItYnkgeW91IHdlcmUgc3RhcnJpbmcgYXQgc28gaGFyZAp0aGF5IHlvdSBhbG1vc3QgY2F1c2UgYSB0cmFmZmljIGFjY2lkZW50IG9yIGFuIGFjdHJlc3MgaW4gYSBtb3ZpZSB5b3UKanVzdCBzYXcuICBJbiBhbnkgY2FzZSwgdGhlIGNvcnJlY3QgcmVzcG9uc2UgaXMsICJObywgeW91IGFyZSBtdWNoCnByZXR0aWVyLiIgIFdyb25nIGFuc3dlcnMgaW5jbHVkZToKCiAgICAgYSAtICBOb3QgcHJldHRpZXIsIGp1c3QgcHJldHR5IGluIGEgZGlmZmVyZW50IHdheS4KICAgICBiIC0gIEkgZG9uJ3Qga25vdyBob3cgb25lIGdvZXMgYWJvdXQgcmF0aW5nIHN1Y2ggdGhpbmdzLgogICAgIGMgLSAgWWVzLCBidXQgSSBiZXQgeW91IGhhdmUgYSBiZXR0ZXIgcGVyc29uYWxpdHkuCiAgICAgZCAtICBPbmx5IGluIHRoZSBzZW5zZSB0aGF0IHNoZSdzIHlvdW5nZXIgYW5kIHRoaW5uZXIuCiAgICAgZSAtICBDb3VsZCB5b3UgcmVwZWF0IHRoZSBxdWVzdGlvbj8gIEkgd2FzIHRoaW5raW5nIGFib3V0IHlvdXIKICAgICBpbnN1cmFuY2UgcG9saWN5LgoKCjUgLSAgIldoYXQgd291bGQgeW91IGRvIGlmIEkgZGllZD8iICBDb3JyZWN0IGFuc3dlcjogICJEZWFyZXN0IGxvdmUsCmluIHRoZSBldmVudCBvZiB5b3VyIHVudGltZWx5IGRlbWlzZSwgbGlmZSB3b3VsZCBjZWFzZSB0byBoYXZlIG1lYW5pbmcKZm9yIG1lIGFuZCBJIHdvdWxkIHBlcmZvcmNlIGh1cmwgbXlzZWxmIHVuZGVyIHRoZSBmcm9udCB0aXJlcyBvZiB0aGUKZmlyc3QgRG9taW5vJ3MgUGl6emEgdHJ1Y2sgdGhhdCBjYW1lIG15IHdheS4iClRoaXMgbWlnaHQgYmUgdGhlIHN0dXBpZGVzdCBxdWVzdGlvbiBvZiB0aGUgbG90LCBhcyBpcyBpbGx1c3RyYXRlZCBieSB0aGUKZm9sbG93aW5nIHN0dXBpZCBqb2tlOgoKIkRlYXIsIiBzYWlkIHRoZSB3aWZlLiAgIldoYXQgd291bGQgeW91IGRvIGlmIEkgZGllZD8iCgoiV2h5LCBkZWFyLCBJIHdvdWxkIGJlIGV4dHJlbWVseSB1cHNldCwiIHNhaWQgdGhlIGh1c2JhbmQuICAiV2h5IGRvIHlvdQphc2sgc3VjaCBhIHF1ZXN0aW9uPyIKCiJXb3VsZCB5b3UgcmVtYXJyeT8iICBwZXJzZXZlcmVkIHRoZSB3aWZlLgoKIk5vLCBvZiBjb3Vyc2Ugbm90LCBkZWFyLCIgc2FpZCB0aGUgaHVzYmFuZC4KCiJEb24ndCB5b3UgbGlrZSBiZWluZyBtYXJyaWVkPyIgc2FpZCB0aGUgd2lmZS4KCiJPZiBjb3Vyc2UgSSBkbywgZGVhciIgaGUgc2FpZC4KIlRoZW4gd2h5IHdvdWxkbid0IHlvdSByZW1hcnJ5PyIKIkFscmlnaHQsIiBzYWlkIHRoZSBodXNiYW5kLCAiSSdkIHJlbWFycnkuIgoiWW91IHdvdWxkPyIgc2FpZCB0aGUgd2lmZSwgbG9va2luZyB2YWd1ZWx5IGh1cnQuCgoiWWVzIiBzYWlkIHRoZSBodXNiYW5kLgoiV291bGQgeW91IHNsZWVwIHdpdGggaGVyIGluIG91ciBiZWQ/IiBzYWlkIHRoZSB3aWZlIGFmdGVyIGEgbG9uZyBwYXVzZS4KCiJXZWxsIHllcywgSSBzdXBwb3NlIEkgd291bGQuIiAgcmVwbGllZCB0aGUgaHVzYmFuZC4KIkkgc2VlLCIgc2FpZCB0aGUgd2lmZSBpbmRpZ25hbnRseS4iQW5kIHdvdWxkIHlvdSBsZXQgaGVyIHdlYXIgbXkgb2xkCmNsb3RoZXM/CiJJIHN1cHBvc2UsIGlmIHNoZSB3YW50ZWQgdG8iIHNhaWQgdGhlIGh1c2JhbmQuCiJSZWFsbHksIiBzYWlkIHRoZSB3aWZlIGljaWx5LiAgIkFuZCB3b3VsZCB5b3UgdGFrZSBkb3duIHRoZSBwaWN0dXJlcwpvZiBtZSBhbmQgcmVwbGFjZSB0aGVtIHdpdGggcGljdHVyZXMgb2YgaGVyPyIKCiJZZXMuICBJIHRoaW5rIHRoYXQgd291bGQgYmUgdGhlIGNvcnJlY3QgdGhpbmcgdG8gZG8uIgoiSXMgdGhhdCBzbz8iICBzYWlkIHRoZSB3aWZlLCBsZWFwaW5nIHRvIGhlciBmZWV0LiAgIkFuZCBJIHN1cHBvc2UKeW91J2QgbGV0IGhlciBwbGF5IHdpdGggbXkgZ29sZiBjbHVicywgdG9vLiIKIk9mIGNvdXJzZSBub3QsIGRlYXIsIiBzYWlkIHRoZSBodXNiYW5kLiAgIlNoZSdzIGxlZnQtaGFuZGVkLiIKCgpBZGRpdGlvbmFsIHF1ZXN0aW9uOgoKCldoaWNoIG9uZSB0aG9zZSBwYWlycyBvZiBzaG9lcyBmaXRzIGJldHRlciB3aXRoIHRoZSBkcmVzcyBJIGFtIHdlYXJpbmc/CgpXcm9uZyBhbnN3ZXJzIGFyZToKCjEuIFdoeSBkbyB5b3UgYXNrIG1lLCB5b3Uga25vdyBJIGhhdmUgbm8gaWRlYSwgd2hpY2ggcGFpciBmaXRzIGJldHRlci4KMi4gSnVzdCB0YWtlIG9uZSBwYWlyIGFuZCBodXJyeSB1cCwgd2UgYXJlIGFscmVhZHkgbGF0ZS4KMy4gSSBkb24ndCBjYXJlLgo0LiBCb3RoIGxvb2sgbmljZS4KNS4gV2h5IGRvbid0IHlvdSB3ZWFyIHlvdXIgbW91bnRhaW4gd2Fsa2luZyBib290cy4KCgpUaGUgY29ycmVjdCBhbnN3ZXIgaXMgKHdoZW4gc2hlIHdlYXJzIG9uZSBwYWlyIG9mIHNob2VzLCBhbmQgaG9sZHMgdGhlCm90aGVyIHBhaXIgaW4gaGVyIGhhbmRzKS4gIkkgYW0gbm90IHN1cmUsIGNhbiB5b3UgdHJ5IHRoZSBvdGhlciBwYWlyIGZvciBhCm1vbWVudC4iIChTaGUgc2xpcHMgaW50byB0aGUgb3RoZXIgcGFpciBvZiBzaG9lcy4pIEFmdGVyIHNoZSBoYXMgZG9uZSB0aGF0LApvcHQgZmlybWx5IGJ1dCBwb2xpdGVseSBmb3IgdGhlIHBhaXIgc2hlIGhhZCBmaXJzdCB3b3JuLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2h0dW5nLCBGcmVtZHNwcmFjaGUhIChXYXJnb24sIDE4LiBNYXIgMTk5OCwgMTE6Mjk6NTYpOgpBdCBhIHJlY2VudCBjb21wdXRlciBleHBvIChDT01ERVgpLCBCaWxsIEdhdGVzIHJlcG9ydGVkbHkgY29tcGFyZWQgdGhlCmNvbXB1dGVyIGluZHVzdHJ5IHdpdGggdGhlIGF1dG8gaW5kdXN0cnkgYW5kIHN0YXRlZCAiSWYgR00gaGFkIGtlcHQgdXAgd2l0aAp0ZWNobm9sb2d5IGxpa2UgdGhlIGNvbXB1dGVyIGluZHVzdHJ5IGhhcywgd2Ugd291bGQgYWxsIGJlIGRyaXZpbmcKdHdlbnR5LWZpdmUgZG9sbGFyIGNhcnMgdGhhdCBnb3QgMTAwMG1pL2dhbC4iCgpSZWNlbnRseSBHZW5lcmFsIE1vdG9ycyBhZGRyZXNzZWQgdGhpcyBjb21tZW50IGJ5IHJlbGVhc2luZyB0aGUgc3RhdGVtZW50CiJZZXMsIGJ1dCB3b3VsZCB5b3Ugd2FudCB5b3VyIGNhciB0byBjcmFzaCB0d2ljZSBhIGRheT8iCgoxLiBFdmVyeSB0aW1lIHRoZXkgcmVwYWludGVkIHRoZSBsaW5lcyBvbiB0aGUgcm9hZCB5b3Ugd291bGQgaGF2ZSB0byBidXkgYQpuZXcgY2FyLgoKMi4gT2NjYXNpb25hbGx5IHlvdXIgY2FyIHdvdWxkIGRpZSBvbiB0aGUgZnJlZXdheSBmb3Igbm8gcmVhc29uLCBhbmQgeW91CndvdWxkIGp1c3QgYWNjZXB0IHRoaXMsIHJlc3RhcnQgYW5kIGRyaXZlIG9uLgoKMy4gT2NjYXNpb25hbGx5LCBleGVjdXRpbmcgYSBtYW5ldXZlciB3b3VsZCBjYXVzZSB5b3VyIGNhciB0byBzdG9wIGFuZCBmYWlsCmFuZCB5b3Ugd291bGQgaGF2ZSB0byByZS1pbnN0YWxsIHRoZSBlbmdpbmUuIEZvciBzb21lIHN0cmFuZ2UgcmVhc29uIHlvdQp3b3VsZCBhY2NlcHQgdGhpcyB0b28uCgo0LiBZb3UgY291bGQgb25seSBoYXZlIG9uZSBwZXJzb24gaW4gdGhlIGNhciBhdCBhIHRpbWUgdW5sZXNzIHlvdSBib3VnaHQKIkNhcjk1IiBvciBDYXJOVCIuIEJ1dCB0aGVuIHlvdSB3b3VsZCBoYXZlIHRvIGJ1eSBtb3JlIHNlYXRzLgoKNS4gTWFjaW50b3NoIHdvdWxkIG1ha2UgYSBjYXIgdGhhdCB3YXMgcG93ZXJlZCBieSB0aGUgc3VuLCB3YXMgcmVsaWFibGUsCmZpdmUgdGltZXMgYXMgZmFzdCwgdHdpY2UgYXMgZWFzeSB0byBkcml2ZSwgYnV0IHdvdWxkIG9ubHkgcnVuIG9uIGZpdmUKcGVyY2VudCBvZiB0aGUgcm9hZHMuCgo2LiBUaGUgTWFjaW50b3NoIGNhciBvd25lcnMgd291bGQgZ2V0IGV4cGVuc2l2ZSBNaWNyb3NvZnQgdXBncmFkZXMgd2hpY2gKd291bGQgbWFrZSB0aGVpciBjYXJzIHJ1biBtdWNoIHNsb3dlci4KCjcuIFRoZSBvaWwsIGdhcyBhbmQgYWx0ZXJuYXRvciB3YXJuaW5nIGxpZ2h0cyB3b3VsZCBiZSByZXBsYWNlZCBieSBhIHNpbmdsZQoiZ2VuZXJhbCBjYXIgZmF1bHQiIHdhcm5pbmcgbGlnaHQuCgo4LiBOZXcgc2VhdHMgd291bGQgZm9yY2UgZXZlcnlvbmUgdG8gaGF2ZSB0aGUgc2FtZSBzaXplIGJ1dHQuCgo5LiBUaGUgYWlyYmFnIHN5c3RlbSB3b3VsZCBzYXkgImFyZSB5b3Ugc3VyZSIgYmVmb3JlIGdvaW5nIG9mZgoKMTAuIElmIHlvdSB3ZXJlIGludm9sdmVkIGluIGNyYXNoIHlvdSB3b3VsZCBoYXZlIG5vIGlkZWEgd2hhdCBoYXBwZW5lZC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWNodHVuZywgRnJlbWRzcHJhY2hlISAoRW1iZSwgMTguIE1hciAxOTk4LCAxMzowMzoyNyk6Cn4jISBybj1XYXJnb24gcnQ9ODkwMjE2OTk2IHJnPXdpdHplCn4jISB0aWQ9ODkwMjE2OTk2Cndlbm4gc2ljaCBkaWUgZW50d2lja2x1bmcgZGVyIGF1dG9zIHNvIHdlaXRlcmVudHdpY2tlbHQgaCJhdHRlCndpZSBkaWUgZGVyIHRhc2NoZW5yZWNobmVyLCAKZGFubiBrIm9ubnRlIG1hbiBoZXV0ZSBlaW4gYXV0byB1bSAyMERNIGJla29tbWVuLi4uLgoKLi4udW5kIG9iZW5kcmVpbiBwYXNzdGUgZXMgaW4gamVkZSBob3NlbnRhc2NoZSEKCmdydXNzLCBlTUJlZS4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFjaHR1bmcsIEZyZW1kc3ByYWNoZSEgKFRlZGR5LCAxOC4gTWFyIDE5OTgsIDIyOjEzOjI3KToKfiMhIHJuPUVtYmUgcnQ9ODkwMjIyNjA3IHJnPXdpdHplCn4jISB0aWQ9ODkwMjE2OTk2CkR1IGthbm5zdCBlaW4gQXV0byBmdWVyIDIwIERNIGtyaWVnZW4sIGRhcyBpbiBkaWUgSG9zZW50YXNjaGUgcGFzc3QgdW5kIGluCkFuYmV0cmFjaHQgZGVyIFp1dmVybGFlc3NpZ2tlaXQgZGVyIGhldXRpZ2VuIFBDcyBrYW5uIG1hbiBkYXMgc2Nob24gZmFzdCBtaXQKTWF0Y2hib3ggJiBDbyB2ZXJnbGVpY2hlbi4KClRlZGR5IC0+c2NobWFycm4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZXVzZXdpdHogKEdyaW1tYm9ybiwgMTguIE1hciAxOTk4LCAyMjo0MzoyNCk6Clp3ZWkgTWFldXNlIHNpbmQgZGFtaXQgYmVzY2hhZWZ0aWd0LCBmdWVyIE5hY2h3dWNocyB6dSBzb3JnZW4uIEF1c3NlciBBdGVtCm1laW50IGRpZSBlaW5lOiAiSG9mZmVudGxpY2ggaXN0IGRhcyBuaWNodCBhbGxlcyBmdWVyIGRpZSBLYXR6LiIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2F0ZXMsIEJpbGwgR2F0ZXMgKE9tLCAzMS4gTWFyIDE5OTgsIDIzOjI2OjU4KToKSGFiIGljaCBsZXR6dGVucyBhbHMgTWFpbCBiZWtvbW1lbjoKCkF0IGEgcmVjZW50IGNvbXB1dGVyIGV4cG8gKENPTURFWCksIEJpbGwgR2F0ZXMgcmVwb3J0ZWRseSBjb21wYXJlZCB0aGUKY29tcHV0ZXIgaW5kdXN0cnkgd2l0aCB0aGUgYXV0b21vYmlsZSBpbmR1c3RyeSBhbmQgc3RhdGVkICJJZiBHTSBoYWQKa2VwdCB1cCB3aXRoIHRlY2hub2xvZ3kgbGlrZSB0aGUgY29tcHV0ZXIgaW5kdXN0cnkgaGFzLCB3ZSB3b3VsZCBhbGwKYmUgZHJpdmluZyB0d2VudHktZml2ZSBkb2xsYXIgY2FycyB0aGF0IGdvdCAxMDAwbWkvZ2FsLiIKClJlY2VudGx5IEdlbmVyYWwgTW90b3JzIGFkZHJlc3NlZCB0aGlzIGNvbW1lbnQgYnkgcmVsZWFzaW5nIHRoZQpzdGF0ZW1lbnQ6ICJZZXMsIGJ1dCB3b3VsZCB5b3Ugd2FudCB5b3VyIGNhciB0byBjcmFzaCB0d2ljZSBhIGRheT8iCgoxLiBFdmVyeSB0aW1lIHRoZXkgcmVwYWludGVkIHRoZSBsaW5lcyBvbiB0aGUgcm9hZCB5b3Ugd291bGQgaGF2ZSB0bwpidXkgYSBuZXcgY2FyLgoKMi4gT2NjYXNpb25hbGx5IHlvdXIgY2FyIHdvdWxkIGRpZSBvbiB0aGUgZnJlZXdheSBmb3Igbm8gcmVhc29uLCBhbmQKeW91IHdvdWxkIGp1c3QgYWNjZXB0IHRoaXMsIHJlc3RhcnQgYW5kIGRyaXZlIG9uLgoKMy4gT2NjYXNpb25hbGx5LCBleGVjdXRpbmcgYSBtYW5ldXZlciB3b3VsZCBjYXVzZSB5b3VyIGNhciB0byBzdG9wIGFuZAoKZmFpbCBhbmQgeW91IHdvdWxkIGhhdmUgdG8gcmUtaW5zdGFsbCB0aGUgZW5naW5lLiBGb3Igc29tZSBzdHJhbmdlCnJlYXNvbiB5b3Ugd291bGQgYWNjZXB0IHRoaXMgdG9vLgoKNC4gWW91IGNvdWxkIG9ubHkgaGF2ZSBvbmUgcGVyc29uIGluIHRoZSBjYXIgYXQgYSB0aW1lIHVubGVzcyB5b3UKYm91Z2h0ICJDYXI5NSIgb3IgQ2FyTlQiLiBCdXQgdGhlbiB5b3Ugd291bGQgaGF2ZSB0byBidXkgbW9yZSBzZWF0cy4KCjUuIE1hY2ludG9zaCB3b3VsZCBtYWtlIGEgY2FyIHRoYXQgd2FzIHBvd2VyZWQgYnkgdGhlIHN1biwgd2FzCnJlbGlhYmxlLCBmaXZlIHRpbWVzIGFzIGZhc3QsIHR3aWNlIGFzIGVhc3kgdG8gZHJpdmUsIGJ1dCB3b3VsZCBvbmx5CnJ1biBvbiBmaXZlIHBlcmNlbnQgb2YgdGhlIHJvYWRzLgoKNi4gVGhlIE1hY2ludG9zaCBjYXIgb3duZXJzIHdvdWxkIGdldCBleHBlbnNpdmUgTWljcm9zb2Z0IHVwZ3JhZGVzCndoaWNoIHdvdWxkIG1ha2UgdGhlaXIgY2FycyBydW4gbXVjaCBzbG93ZXIuCgo3LiBUaGUgb2lsLCBnYXMgYW5kIGFsdGVybmF0b3Igd2FybmluZyBsaWdodHMgd291bGQgYmUgcmVwbGFjZWQgYnkgYQpzaW5nbGUgImdlbmVyYWwgY2FyIGZhdWx0IiB3YXJuaW5nIGxpZ2h0LgoKOC4gTmV3IHNlYXRzIHdvdWxkIGZvcmNlIGV2ZXJ5b25lIHRvIGhhdmUgdGhlIHNhbWUgc2l6ZSBidXR0LgoKOS4gVGhlIGFpcmJhZyBzeXN0ZW0gd291bGQgc2F5ICJhcmUgeW91IHN1cmUiIGJlZm9yZSBnb2luZyBvZmYKCjEwLiBJZiB5b3Ugd2VyZSBpbnZvbHZlZCBpbiBjcmFzaCB5b3Ugd291bGQgaGF2ZSBubyBpZGVhIHdoYXQKaGFwcGVuZWQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFzIEludGVybmV0IChCaGFtaXIsICAyLiBBcHIgMTk5OCwgMTg6MDk6MjMpOgpBbmQgb24gdGhlIHNpeCBtaWxsaW9uIGFuZCBzZWNvbmQgZGF5IEdvZCBjcmVhdGVkIHRoZSBpbnRlcm5ldC4KClRoZSBmb2xsb3dpbmcgZGF5LCBTYXRhbiBzYXcgdGhlIG9wcG9ydHVuaXR5IGZvciBhIGJpdCBvZiBhIGxhdWdoIGFuZCAKaW52ZW50ZWQgQU9MIGFuZCBwb3JuIHNpdGVzLiAiQ29vbCEiIGhlIHRob3VnaHQgYXMgaGUgcG9zdGVkIHRoZSBmaXJzdAoiRE9FUyBBbnlvbmUgSEFWRSBOVUVEIFBJWFNYWCBvZiBTQUhST04gU1RPTkUgPz8hISExMTExMSIgdG8gdXNlbmV0LgoKQmhhbWlyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp0aXRhbmljIChaYXJuaXlhLCAgOC4gQXByIDE5OTgsIDExOjMwOjE4KToKZWJlbiBpbSBSYWRpbyBnZWhvZXJ0OgoKTnVuIHdpbGwgYXVjaCBlaW5lIGFtZXJpa2FuaXNjaGUgRmlybWEgYmlzIDE5OTkgZGllIFRpdGFuaWMgbm9jaGVpbm1hbApuYWNoYmF1ZW4uIFdlbm4gZGFzIFNjaGlmZiBkYW5uIGZlcnRpZyBpc3QsIHNvbGwgZXMgYmlzIHp1IDI1MDAgUGFzc2FnaWVyZQp0cmFuc3BvcnRpZXJlbiBrb2VubmVuIHVuZCBkaWUgS2FiaW5lbiB6d2lzY2hlbiAxMDAwIHVuZCAxMDAwMCBEb2xsYXIga29zdGVuLgpOYXR1ZXJsaWNoIHNpZWh0IGRhcyBuZXVlIHNjaGlmZiBudXIgdm9uIGF1c3NlbiBhdXMgd2llIGRpZSBUaXRhbmljIHVuZCBzb3dvaGwKZGllIE1hc2NoaW5lLCB3aWUgYXVjaCBzb25zdCBkaWUgZ2VzYW10ZSB0ZWNobmlrIGFuIEJvcmQgc2luZCB2b20gbmV1c3RlbgpTdGFuZCwgd29kdXJjaCBkYXMgU2NoaWZmIGdhcmFudGllcnQgdW5zaW5rYmFyICghKSB3aXJkLi4uLgoKa2xpbmd0IGJla2FubnQgOikKClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB0aXRhbmljIChUYXJpbmEsICA4LiBBcHIgMTk5OCwgMTQ6MDM6NTMpOgp+IyEgcm49WmFybml5YSBydD04OTIwMjc4MTggcmc9d2l0emUKfiMhIHRpZD04OTIwMjc4MTgKRGFzIG1pdCBkZW0gZ2FyYW50aWVydCB1bnNpbmtiYXIgbXVlc3NlbiBkaWUgc2NocmVpYmVuLCBkYW1pdCBkaWUgZGllCmhvaGVuIFByZWlzZSB2b24gTGV1dGUga2Fzc2llcmVuIGtvZW5uZW4sIGRpZSBnZXJuZSBhYnNhdWZlbiB3dWVyZGUuCgpUYXJpbmEgKHdpbGwgbmljaHQgYWJzYXVmZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHRpdGFuaWMgKEZyZXVuZCwgIDguIEFwciAxOTk4LCAxNTo1OTo0Nyk6Cn4jISBybj1UYXJpbmEgcnQ9ODkyMDM3MDMzIHJnPXdpdHplCn4jISB0aWQ9ODkyMDI3ODE4Ck9rLCB3byBnaWJ0IGVzIGRpZSBLYXJ0ZW4/CgpGcmV1bmQsIEFic2FldWZlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHRpdGFuaWMgKEdsb2luc29uLCAgOC4gQXByIDE5OTgsIDE2OjIxOjM5KToKfiMhIHJuPUZyZXVuZCBydD04OTIwNDM5ODcgcmc9d2l0emUKfiMhIHRpZD04OTIwMjc4MTgKSW4gRHJlc2RlbiBtb2RlbG4gc2llIGdlcmFkZSBlaW4gYWx0ZXMgSGVpemtyYWZ0d2VyayB6dXIgVGl0YW5pYy1GZXRlIHVtLApkYSBkYXNzIERpbmcgKHp1bWluZGVzdCB3YXMgZGllIEtlc3NlbHJhZXVtZSBiZXRyaWZmdCA7LSkgKSBwcmltYSBnZS0KZWlnbmV0IHNlaS4gVm9uIDIzLC0gYmlzIHVtIDIwMCwtIHNpbmQgUGxhZXR6ZSB1ZWJlcmFsbCB6dSBoYWJlbi4gV2VubgphbGxlIGRyaW4gc2luZCwgd2lyZCBtaXQgV2Fzc2VyIGF1ZmdlZnVlbGx0IChob2ZmZSBpY2ggOikgKSBCaWVka29lcGZjaGVuCnNvbGwgc2ljaCBhdWNoIHNjaG9uIFNvbm5lbmRlY2stUGxhZXR6ZSBiZXN0ZWxsdCBoYWJlbi4gRmVobHQgbnVyIG5vY2gKTGVvbmFyZG8gZGFzIENhYnJpby4KCkdsb2luCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiB0aXRhbmljIChBc3RhciwgIDguIEFwciAxOTk4LCAxNjoyNTo0MSk6Cn4jISBybj1HbG9pbnNvbiBydD04OTIwNDUyOTkgcmc9d2l0emUKfiMhIHRpZD04OTIwMjc4MTgKSG1tLCBkZXIgV2l0eiB3YXIgZGFzIG1pdCBDYWJyaW8gb2Rlcj8KCkFzdGFyIChuaWNodCBlcnN0IHp1IG5laG1lbi4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHRpdGFuaWMgKEdyaW1tYm9ybiwgIDkuIEFwciAxOTk4LCAxODoxOTozMCk6Cn4jISBybj1Bc3RhciBydD04OTIwNDU1NDEgcmc9d2l0emUKfiMhIHRpZD04OTIwMjc4MTgKTWljaCBpbnRlcmVzc2llcnQgbWVociwgd28gc2llIGRhcyB2aWVsZSBFaXMgaGVyYmVrb21tZW4gd29sbGVuLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiB0aXRhbmljIChLb2JheWFzaGksIDEwLiBBcHIgMTk5OCwgMTU6MTI6MTkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg5MjEzODc3MCByZz13aXR6ZQp+IyEgdGlkPTg5MjAyNzgxOApJbiBkZXIgWmVpdHVuZyBzdGFuZCwgZGFzIGRpZSBKdW5nZmVybmZhaHJ0IGdlbmF1IDkwIGphaHJlIG5hY2ggZGVyIGVyc3RlbgpGYWhydCBzdGF0dGZpbmRlbiBzb2xsLCBhbHNvIHZvbSA5LjQuIC0gMTIuNC4gMjAwMiA6LSkKQXVzc2VyZGVtIHNvbGwgZXMgaW4gZGVyIHNlbGJlbiB3ZXJmdCBnZWJhdXQgd2VyZGVuLiAKV2VubiBkYXMgd2lya2xpY2ggc28gbGFldWZ0IGthbm4gbWFuIGJhbGQgd2lya2xpY2ggbWl0IExlb25hcmRvIGRpQ2FicmlvIDotKQoiVGl0YW5pYyBJSSkgZHJlaGVuIFVudGVydGl0ZWwgIkRvcHBlbGdyYWIgaW4gZWlzaWdlciBUaWVmZSIgCgpLb2JheWFzaGkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvbXB1dGVyd2l0eiAoR3JpbW1ib3JuLCAxMC4gQXByIDE5OTgsIDE4OjQ2OjM1KToKRWluc3RlaW4gZHVyZnRlIG5hY2ggc2VpbmVtIFRvZCBhbiBkZXIgSGltbWVsc3Bmb3J0ZSBhdXNoZWxmZW4uIERlbgplcnN0ZW4sIGRlciBrYW0gZnJhZ3RlIGVyIG5hY2ggc2VpbmVtIElRLCB1bmQgYWxzIGVyIG1pdCAiMTkwIgphbnR3b3J0ZXRlIGZpbmcgZXIgYW4sIHNpY2ggbWl0IGlobSB1ZWJlciBkaWUgUmVsYXRpdml0YWV0c3RoZW9yaWUgenUKdW50ZXJoYWx0ZW4gdW5kIHNvIHVudGVyaGllbHRlbiBzaWUgc2ljaCBydW5kIGVpbmUgU3R1bmRlIGxhbmcuIERlbgpuYWVjaHN0ZW4sIGRlciBlaW5lbiBJUSB2b24gMTIwIGhhdHRlLCBmcmFndGUgZXIgbmFjaCBkZW4KRm9ydHNjaHJpdHRlbiBkZXMgMS5GQyBLb2VsbiwgdW5kIHNvIHVudGVyaGllbHRlbiBzaWUgc2ljaCB2aWVsbGVpY2h0CmVpbmUgaGFsYmUgU3R1bmRlIHVlYmVyIFNwb3J0LiBEZXIgRHJpdHRlIGhhdHRlIGVpbmVuIElRIHZvbgo3MC4gRGFyYXVmIEFsYmVydCBFaW5zdGVpbjogIkhhc3QgRHUgZWluIHBhYXIgTWludXRlbiwgdW0gbWlyIHdhcwp1ZWJlciBXaW5kb3dzIDk1IHp1IGVyemFlaGxlbj8iCgpOYWphLAogICAgICBHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IHRpdGFuaWMgKEFzbW9kaXMsIDExLiBBcHIgMTk5OCwgMTQ6MjQ6NTQpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTg5MjIxMzkzOSByZz13aXR6ZQp+IyEgdGlkPTg5MjAyNzgxOApGYWhyZW4gc2llIGRlbm4gYXVjaCBnZWdlbiBkZW5zZWxiZW4gRWlzYmVyZyA/IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiB0aXRhbmljIChaYXJuaXlhLCAxMS4gQXByIDE5OTgsIDE3OjQ5OjQ2KToKfiMhIHJuPUFzbW9kaXMgcnQ9ODkyMjk3NDk0IHJnPXdpdHplCn4jISB0aWQ9ODkyMDI3ODE4CkVzIGlzdCB1ZWJyaWdlbnMgd2lya2xpY2ggZWluZSBGb3J0c2V0enVuZyBkZXMgRmlsbWVzIGdlcGxhbnQuLi4gQXJiZWl0c3RpdGVsCmxhdXQgZWluZW0gS29lbG5lciBSYWRpb3NlbmRlcjogIldhc3NlcmxlaWNoZW4ga3Vlc3NlbiBmZXVjaHQiCgpaYXJuaXlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiB0aXRhbmljIChHbG9pbnNvbiwgMTMuIEFwciAxOTk4LCAyMTozMDowMyk6Cn4jISBybj1Bc21vZGlzIHJ0PTg5MjI5NzQ5NCByZz13aXR6ZQp+IyEgdGlkPTg5MjAyNzgxOApIbS4gRGllIENoYW5jZSBzdGVodCBzY2hsZWNodCA6KSBBYmVyIHZpZWxsZWljaHQga29lbm5lbiB3aXIgSm9mIGZ1ZXIgZGllClJvbGxlIGRlcyBFaXNiZXJnZXMgdmVycGZsaWNodGVuIC4uLgoKR2xvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvZ2dvIChEaWVkZXIsIDIzLiBBcHIgMTk5OCwgMDk6NDM6NTYpOgpFaW4gTWFubiBmYWVocnQgbWl0IHNlaW5lbSBHb2dnbyBhbiBlaW5lbSBlaW5zY2hsYWVnaWdlbiBPcnQgdm9yYmVpLCB1bSBzaWNoCmRvcnQgenVyIFZlcnN1ZXNzdW5nIGVpbmlnZXIgU3R1bmRlbiBlaW5lIERhbWUgIm1pdHp1bmVobWVuIi4KU2llIGZhaHJlbiBpbnMgR3J1ZW5lLiBEaWUgTGFkeSBzdGVpZ3QgYXVzLCBsYWV1ZnQgenUgZWluZXIgTGljaHR1bmcgdW5kCnJpY2h0ZXQgYWxsZXMgd3VuZGVyc2Nob2VuIGhpbiwgUGlja25pY2ssIFNla3QsIGJsYWJsYS4gQWxzIGRlciBNYW5uIGplZG9jaApuYWNoIGVpbmVyIFZpZXJ0ZWxzdHVuZGUgaW1tZXIgbm9jaCBuaWNodCBkYSBpc3QsIGxhZXVmdCBzaWUgbWFsIHp1cnVlY2suCgpTaXR6dCBlciBpbSBBdXRvIHVuZCBiZXRldDogIkxpZWJlciBHb3R0LCBtYWNoIGlobiBrcnVtbSwgZGFzcyBpY2ggYXVzIGRlbQpHb2dnbyBrdW1tLi4uIgoKU28gbG9uZywKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXV1ctU2VpdGUgenUgZW1wZmVobGVuISAoWmFwaG9iLCAyNS4gQXByIDE5OTgsIDEzOjM2OjM1KToKaHR0cDovL3d3dy5yZWdpb24tbGIuZGUvaG9tZXNpdGVzL21hcmN1c2UvZnVubnkuaHRtCgoxMDAlaWcgcm90ZmwKClphcCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRpZSBrdXJ6ZW4gc2luZCBkaWUgYmVzdGVuLi4uIChHbm9tZSwgMjkuIEFwciAxOTk4LCAyMjo1Njo0Nik6CnZlcmthZXVmZXI6IHdpZSB3YXIgaWhyIG5hbWUgbm9jaCBnbGVpY2g/Cmt1bmRlOiBtZWllciwgb2huZSAiZyIKdmVya2FldWZlciAodmVyd2lycnQpOiBhYmVyIG1laWVyIHdpcmQgZG9jaCBvaG5lICJnIiBnZXNjaHJpZWJlbi4uLgprdW5kZTogamEsIHNhY2ggaWNoIGRvY2guLi4KCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWlzcyBhdWNoIGVpbmVuIC4uLiAoR3JpbW1ib3JuLCAzMC4gQXByIDE5OTgsIDEyOjQxOjQzKToKfiMhIG9uPUdyaW1tYm9ybiBvdD04OTM5MzI4NTIgb2c9c2NobWFycm4KfiMhIG9uPUNhdHdlYXpsZSBvdD04OTM4NDM5MDQgb2c9d2l0emUKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gTWlsY2hyZWlzIHVuZCBlaW5lbSBFcGlsZXB0aWtlcj8KCgpEZXIgTWlsY2hyZWlzIGxpZWd0IGluIFp1Y2tlciB1bmQgWmltdC4KRGVyIEVwaWxlcHRpa2VyIGxpZWd0IGltIFppbW1lciB1bmQgenVja3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpjaGVjayB0aGlzIG91dCAoWWFyZW4sIDMwLiBBcHIgMTk5OCwgMTQ6MTA6NDMpOgpUaHJlZSBtYWxlIHByb2dyYW1tZXJzIHdlcmUgaW4gdGhlIGJhdGhyb29tIHN0YW5kaW5nIGF0IHRoZSB1cmluYWxzLgpUaGUgZmlyc3QgcHJvZ3JhbW1lciBmaW5pc2hlcyBhbmQgd2Fsa3Mgb3ZlciB0byB0aGUgc2luayB0byB3YXNoIGhpcwpoYW5kcy4gSGUgdGhlbiBwcm9jZWVkcyB0byBkcnkgaGlzIGhhbmRzIHZlcnkgY2FyZWZ1bGx5LiBIZSB1c2VzIHBhcGVyCnRvd2VsIGFmdGVyIHBhcGVyIHRvd2VsIGFuZCBlbnN1cmVzIHRoYXQgZXZlcnkgc2luZ2xlIHNwb3Qgb2Ygd2F0ZXIgb24KaGlzIGhhbmRzIGlzIGRyaWVkLiBUdXJuaW5nIHRvIHRoZSBvdGhlciB0d28sIGhlIHNheXMsIEF0IE1pY3Jvc29mdCwgd2UKYXJlIHRyYWluZWQgdG8gYmUgZXh0cmVtZWx5IHRob3JvdWdoLiIKClRoZSBzZWNvbmQgcHJvZ3JhbW1lciBmaW5pc2hlcyBoaXMgdGFzayBhdCB0aGUgdXJpbmFsIGFuZCBoZSBwcm9jZWVkcyB0bwp3YXNoIGhpcyBoYW5kcy4gIEhlIHVzZXMgYSBzaW5nbGUgcGFwZXIgdG93ZWwgYW5kIG1ha2VzIHN1cmUgdGhhdCBoZQpkcmllcyBoaXMgaGFuZHMgdXNpbmcgZXZlcnkgYXZhaWxhYmxlIHBvcnRpb24gb2YgdGhlIHBhcGVyIHRvd2VsLiBIZQp0dXJucyBhbmQgc2F5cywgIkF0IEludGVsIG5vdCBvbmx5IGFyZSB3ZSB0cmFpbmVkIHRvIGJlIGV4dHJlbWVseQp0aG9yb3VnaCBidXQgd2UgYXJlIGFsc28gdHJhaW5lZCB0byBiZSBleHRyZW1lbHkgZWZmaWNpZW50LiIKClRoZSB0aGlyZCBwcm9ncmFtbWVyIGZpbmlzaGVkIGFuZCB3YWxrcyBzdHJhaWdodCBmb3IgdGhlIGRvb3IsIHNob3V0aW5nCm92ZXIgaGlzIHNob3VsZGVyOiAiQXQgU3VuLCB3ZSBkb24ndCBwaXNzIG9uIG91ciBoYW5kcy4iCgpZYXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1pdCBzdGlmdCAoR3JpbW1ib3JuLCAzMC4gQXByIDE5OTgsIDE5OjU4OjI4KToKfiMhIG9uPUxhcmFyIG90PTg5Mzk1ODk1NiBvZz1hbGxnZW1laW5lcwpxCnZlcmthdWZlIHN0aWZ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZWdlbHdlcmsgKEJsb29keWhhcnJ5LCAgNS4gTWFpIDE5OTgsIDE2OjE5OjI0KToKCiAgMS4gUmVnZWw6ICBBbGxlIE1lbnNjaGVuIHNpbmQgaW50ZWxsaWdlbnQuCgogIDIuIFJlZ2VsOiAgQXVzbmFobWVuIGJla29tbWVuIGRpZSBSZWdlbC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVsaWNoIGdlbGVzZW4gKFNtYXJ0ZSwgIDUuIE1haSAxOTk4LCAxNzozMjo0Mik6CndpZSBrYW5uIG1hbiBudXIgamVtYW5kZW4gdHJhdWVuIGRlciA1IHRhZ2UgaGludGVyZWluYW5kZXIgYmx1dGV0IHVuZCBkYW5uCmRvY2ggbmljaHQgc3RpcmJ0ICEKClNtYXJ0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGl0YW5pYyBhbmQgTWljcm9zb2Z0IChLZXRvcywgMTguIE1haSAxOTk4LCAxNDoyNTozOCk6CiAgICAgICBodHRwOi8vZGl3d3cuZXBmbC5jaC9+ZGlkZXJpY2gvY214L3RpdGFuaWMuanBnIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIGRhIHdhciBkYW5uIG5vY2ggZGVyLi4uIChBbmF0b2wsIDI0LiBNYWkgMTk5OCwgMDE6MTQ6NDkpOgoKV2FzIGlzdCBhbiBWaWFncmEgc28gZ2VmYWVocmxpY2g/CgouLi4gV2VubiBtYW4gZGllIFRhYmxldHRlIG5pY2h0IHNjaG5lbGwgZ2VudWcgc2NobHVja3QsCnJpc2tpZXJ0IG1hbiBlaW5lbiBzdGVpZmVuIEhhbHMuCgoKQW5hdG9sIDspCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVuZCBkYSB3YXIgZGFubiBub2NoIGRlci4uLiAoR3JpbW1ib3JuLCAyNC4gTWFpIDE5OTgsIDIyOjQ4OjUzKToKfiMhIHJuPUFuYXRvbCBydD04OTU5NjUyODkgcmc9d2l0emUKfiMhIHRpZD04OTU5NjUyODkKRXMga2FubiBpbiBFaW56ZWxmYWVsbGVuIGJlaSBLb25zdW0gdm9uIFZpYWdyYSB6dSBUb2Rlc2ZhZWxsZW4ga29tbWVuLiBEYXMKUHJvYmxlbSBkYWJlaTogRGVyIFNhcmdkZWNrZWwgaXN0IGRhbm4gbnVyIHNjaHdlciB6dXp1a3JpZWdlbi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFVuZCBkYSB3YXIgZGFubiBub2NoIGRlci4uLiAoQXN0YXIsIDI1LiBNYWkgMTk5OCwgMTI6NTY6MTkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTg5NjA0MjkzMyByZz13aXR6ZQp+IyEgdGlkPTg5NTk2NTI4OQpIbW0sIGhldXRlIG1vcmdlbiBzdGFuZCBpbiBkZXIgWmVpdHVuZywgZGFzcyB3aXJrbGljaCBlaW4gcGFhciBMZXV0ZSBkYXJhbgpnZXN0b3JiZW4gc2luZCAoSGVyemluZmFya3QgdW5zIHNvKS4uLgoKQXN0YXIKClBTOiBhZWhtLCBnZWhvZXJ0IGVpZ2VudGxpY2ggbmljaHQgaGllciBoaW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFVuZCBkYSB3YXIgZGFubiBub2NoIGRlci4uLiAoR3JpbW1ib3JuLCAyNS4gTWFpIDE5OTgsIDEzOjI3OjA3KToKfiMhIHJuPUFzdGFyIHJ0PTg5NjA5Mzc3OSByZz13aXR6ZQp+IyEgdGlkPTg5NTk2NTI4OQpHZWhvZXJ0IGRvY2ggaGllcmhpbjogQmlsZHNjaGxhZ3plaWxlOiAiSXN0IE1hZW5uZXJuIFNleCB3aWNodGlnZXIgYWxzIGRhcwpMZWJlbj8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKClAuUy4gRGFzIG1pdCBkZW4gVG90ZW4gd3Vzc3RlIGljaCBzY2hvbiBhbHMgaWNoIGRlbiBXaXR6IHNjaHJpZWIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyaWxsYW56dWVuZGVyIChIaWdobGFuZGVyLCAyOS4gTWFpIDE5OTgsIDEzOjI3OjE5KToKRGllIFJ1YnJpayBpc3QgdmllbGxlaWNodCBldHdhcyB1bnBhc3NlbmQsIGFiZXIgZGllIHNjaG5lbGxzdGUgQXJ0LCBlaW5lbgpHcmlsbCB2ZXJ3ZW5kdW5nc3JlaWYgenUgbWFjaGVuLCBkdWVyZnRlIHdvaGwgYXVmCmh0dHA6Ly9naGcuZWNuLnB1cmR1ZS5lZHUvCnp1IGZpbmRlbiBzZWluLiBJY2ggc2FnIG51ciBMT1guLi4KICBIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHcmlsbGFuenVlbmRlciAoQW5hdG9sLCAyOS4gTWFpIDE5OTgsIDE5OjE2OjEzKToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9ODk2NDQxMjM5IHJnPXdpdHplCn4jISB0aWQ9ODk2NDQxMjM5Ck9obmUgZHJhdWZ6dXNjaGF1ZW4gLSBpc3QgZGFzIGRlciAzLVNla3VuZGVuLUdhZyBtaXQgZmx1ZXNzaWdlbSBTYXVlcnN0b2ZmPwoKQW5hdG9sIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBiZWltIGVpbmxvZ2dlbi4uLi4gKEhvYm8sICAyLiBKdW4gMTk5OCwgMDg6MDA6MDEpOgpEdSB6aWVoc3QgZGVuIEVoZXJpbmcgYW4uCgpEZWluIEVoZXJpbmcgbGV1Y2h0ZXQgYXVmLiBEdSBsaWVzdDogQm9pbmcgaXN0IGxlaWRlciBuaWNodCBkYS4KCk1HdG9vbCB2MS4zLjMgLi4uCkFud2VzZW5kZSBFcndhcnRldGU6IEJvaW5nLgoKCk5hLCB3YXMgZGVubiBudW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmdsaXNjaCwgYWJlciBndXQgKipncmlucyBBbGluYSBhbioqIChNb3Jnb3RoLCAgMi4gSnVuIDE5OTgsIDA4OjM0OjIxKToKQXVjaCB3ZW5uIEtudXJ0IG1pY2ggZGFmdWVyIGhhc3NlbiB3aXJkLi4uLgoKIEhvdyBtYW55IG1lbiBkb2VzIGl0IHRha2UgdG8gc2NyZXcgaW4gYSBsaWdodCBidWxiPwogT25lLiAgTWVuIHdpbGwgc2NyZXcgYW55dGhpbmcKCiBXaGF0IGRvIHlvdSBjYWxsIGEgbWFuIHdpdGggaGFsZiBhIGJyYWluPwogR2lmdGVkCgogV2hhdCBpcyB0aGUgdGhpbm5lc3QgYm9vayBpbiB0aGUgd29ybGQ/CiAiV2hhdCBNZW4gS25vdyBBYm91dCBXb21lbiIKCiBIb3cgZG9lcyBhIG1hbiB0YWtlIGEgYnViYmxlIGJhdGg/CiBIZSBlYXRzIGJlYW5zIGZvciBkaW5uZXIKCiBXaHkgZG8gd29tZW4gcnViIHRoZWlyIGV5ZXMgd2hlbiB0aGV5IHdha2UgdXA/CiBUaGV5IGRvbid0IGhhdmUgYmFsbHMgdG8gc2NyYXRjaAoKIFdoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbWFuIGFuZCBhIGdvdmVybWVudCBib25kPwogQm9uZHMgbWF0dXJlCgogSG93IGRvIHlvdSBzYXZlIGEgbWFuIGZyb20gZHJvd25pbmc/CiBUYWtlIHlvdXIgZm9vdCBvZmYgaGlzIGhlYWQKCiBXaGF0IGRvIG1lbiBhbmQgYmVlciBib3R0bGVzIGhhdmUgaW4gY29tbW9uPwogVGhleSBhcmUgYm90aCBlbXB0eSBmcm9tIHRoZSBuZWNrIHVwCgogSG93IGNhbiB5b3UgdGVsbCBpZiBhIG1hbiBpcyBoYXBweT8KIFdobyBjYXJlcwoKIEhvdyBtYW55IG1lbiBkb2VzIGl0IHRha2UgdG8gY2hhbmdlIGEgcm9sbCBvZiB0b2lsZXQgcGFwZXI/CiBXZSBkb250IGtub3csIGl0J3MgbmV2ZXIgaGFwcGVuZWQKCiBIb3cgYXJlIG1lbiBhbmQgcGFya2luZyBzcG90cyBhbGlrZT8KIFRoZSBnb29kIG9uZXMgYXJlIGFsd2F5cyB0YWtlbiBhbmQgdGhlIG9uZXMgbGVmdCBhcmUgaGFuZGljYXBwZWQuCgogV2hhdCBpcyBhIG1hbnMgaWRlYSBvZiBoZWxwaW5nIHdpdGggdGhlIGhvdXNld29yaz8KIExpZnRpbmcgaGlzIGxlZ3Mgc28geW91IGNhbiB2YWN1dW0KCiBXaGF0J3MgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIG1hbiBhbmQgRVQ/CiBFVCBwaG9uZWQgaG9tZQoKIFdoYXQgZG9lcyBhIG1hbiBjb25zaWRlciBhIHNldmVuIGNvdXJzZSBtZWFsPwogQSBob3QgZG9nIGFuZCBhIHNpeCBwYWNrIG9mIGJlZXIKCiBXaGF0IGRpZCBHb2Qgc2F5IGFmdGVyIGNyZWF0aW5nIG1hbj8KIEkgY2FuIGRvIGJldHRlcgoKIFdoYXQgYXJlIHRoZSB0d28gcmVhc29ucyB3aHkgbWVuIGRvbid0IG1pbmQgdGhlaXIgb3duIGJ1c2luZXNzPwogMS4gTm8gbWluZAogMi4gTm8gYnVzaW5lc3MKCiBJZiBtZW4gZ290IHByZWduYW50LCBhYm9ydGlvbiB3b3VsZCBiZSBhdmFpbGFibGUgaW4gY29udmVuaWVuY2Ugc3RvcmVzIGFuZAogZHJpdmUgdGhyb3VnaCB3aW5kb3dzCgogV2h5IGlzIGl0IHNvIGhhcmQgZm9yIHdvbWVuIHRvIGZpbmQgbWVuIHdobyBhcmUgc2Vuc2l0aXZlLCBjYXJpbmcsIGFuZCBnb29kCiBsb29raW5nPwogQmVjYXVzZSB0aG9zZSBtZW4gYWxyZWFkeSBoYXZlIGJveWZyaWVuZHMKCiBIb3cgYXJlIG1hbiBsaWtlIGxpbm9sZXVtPwogTGF5ICdlbSByaWdodCB0aGUgZmlyc3QgdGltZSBhbmQgeW91IGNhbiB3YWxrIG9uIHRoZW0gZm9yIDMwIHllYXJzCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFyYWRveG9uIChIaWdobGFuZGVyLCAgMi4gSnVuIDE5OTgsIDE0OjQ3OjAxKToKIkZlcm5zZWhrdWx0dXIiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3ZWlibC4gaG9ybW9uZSBpbSBiaWVyIChBdGFpciwgIDIuIEp1biAxOTk4LCAxNzo0Nzo0Mik6CndlaWxsIGljaCBnZXJhZGUgZGVuIHdpdHogdm9uIG1vcmdvdGggZ2VsZXNlbiBoYWJlLCB2aWVsIG1pciBkYSB3aWVkZXIgd2FzCmVpbjoKCmFuIGFsbGUgbWFlbm5lcjogd2lzc3QgaWhyLCBkYXMgd2VpYmwuIGhvcm1vbmUgaW0gYmllciBzaW5kPwoKCgoKCgoKCgppc3QgZG9jaCBnYW56IGtsYXI6IHdlbm4gbWFubiB6dXZpZWwgdHJpbmt0LCByZWRldCBtYW5uIG51ciBub2NoIHNjaGVpc3MgdW5kCmthbm4gbmljaHQgbWVociBhdXRvIGZhaHJlbi4uLgoKYXRhaXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjspIChUcmVrYW4sICAyLiBKdW4gMTk5OCwgMTg6MTI6MDcpOgoKS29tbWVuIDIgTWFlbm5lciBpbnMgZnJlaWJhZCB1bmQgc2V0emVuIHNpY2ggYW4gZGVuIHBvb2wtcmFuZCB1bmQgaGFlbmdlbiBpaHJlCmJlaWRlbiBkb2VkZWwgaW5zIHdhc3Nlci4KCm5hY2ggMjAgTWludXRlbiBtZWludCBkZXIgZWluZSBNYW5uOiBNbWguLiBzaW5kIDIwR3JhZC4gV2lyIGtvZW5uZW4KcmVpbnNwcmluZ2VuLgpNZWludCBkZXIgYW5kZXJlOiBOZWVlIC4uIGlzdCBudXIgMSBNZXRlciB0aWVmCgp0cmVrYW4gLT4gU21pbGUoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLi4uIChXb29keSwgIDMuIEp1biAxOTk4LCAxMjo0NzowMyk6CkhldXRlIGdhbnogZWluIGt1cnplciBXaXR6OiB3d3cudXJsYXViYW1iYXVlcm5ob2YuY29tIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXNnbGVpY2ggKEphc29ucmlnaWQsICAzLiBKdW4gMTk5OCwgMTY6MDE6MDgpOgpXbyBzY2hvbiBoZXV0ZSBhbGxlcyBhdWYgS29zdGVuIGRlciBNYWVubmVyIGdlaHQsIG5vY2ggZWluIGZyYXVlbmZlaW5kbGljaGVyIDoKCldhcyBpc3QsIHdlbm4gZWluZSBGcmF1IGF1cyBkZXIgS3VlY2hlIGtvbW10ID8KCgoKCgoKRGllIEtldHRlIHp1IGt1cnoKCgpKYXNvbiAqZmluZGV0IGRhcyBlaWdlbnRsaWNoIGdhciBuaWNodCBrb21pc2NoIHVuZCBtdXNzIGRvY2ggbGFjaGVuKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1c2dsZWljaCAoVGFtZWxpLCAgMy4gSnVuIDE5OTgsIDE2OjEyOjAwKToKfiMhIHJuPUphc29ucmlnaWQgcnQ9ODk2ODgyNDY4IHJnPXdpdHplCn4jISB0aWQ9ODk2ODgyNDY4CmhtLCBhbHNvIGRlbiBmcmF1ZW5mZWluZGxpY2hlbiB3aXR6IGhhYiBpY2ggamV0enQgbmljaHQgdmVyc3RhbmRlbi4uLi4KCndpZXNvIHp1IGt1cnogPz8/CgpUYW1lbGksIGRlbmt0IC5vIE8gKCBNYWVubmVyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBdXNnbGVpY2ggKEphc29ucmlnaWQsICAzLiBKdW4gMTk5OCwgMTY6MjI6MjEpOgp+IyEgcm49VGFtZWxpIHJ0PTg5Njg4MzEyMCByZz13aXR6ZQp+IyEgdGlkPTg5Njg4MjQ2OApVcHMgKmdyaW5zKgoKVGphLCBkYXMga29tbXQgZGF2b24sIHdlbm4gbWFuIGFscyBOaWNodC1GcmF1ZW5oYXNzZXIgdmVyc3VjaHQsCkFudGktRnJhdWVuLVdpdHplIHp1IHJlaXNzZW4uCk5hamEsIGlociB3aXNzdCBqYSwgd2FzIGljaCBtZWluZSA6KQoKVmVybGVndCBkZW4gQXJ0aWtlbCBtaXQgc2FlbXRsaWNoZW4gUmVwbGllcyBtYWwgbmFjaCBTY2htYXJybiAqZ3JpbnMqCgpKYXNvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IC4uLiAoQW5ha2luLCAgNC4gSnVuIDE5OTgsIDE0OjE4OjM1KToKfiMhIHJuPVdvb2R5IHJ0PTg5Njg3MDgyMyByZz13aXR6ZQp+IyEgdGlkPTg5Njg3MDgyMwpPayBpY2ggYXVjaCBlaW5lbjogaHR0cDovL3d3dy5zY2h3ZWluZWJlc2FtdW5nLmRlLwoKQW5ha2luLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFuZHkgKEphc29ucmlnaWQsICA3LiBKdW4gMTk5OCwgMTY6NTE6MDcpOgpFaW4gRnVjaHMgdW5kIGVpbiBIYXNlIGxhdWZlbiB6dXNhbW1lbiBkdXJjaCBkZW4gV2FsZCwgZGFzIHR1dCBzaWNoIHVudGVyIGRlbQpGdWNocyBlaW5lIEZhbGxncnViZSBhdWYgdW5kIGVyIGZhZWxsdCBoaW5laW4uIFdhcyBudW4gPyBEZXIgSGFzZSBzY2hsYWVndAp2b3IsIGRlciBGdWNocyBzb2xsZSBkb2NoIHNlaW5lbiBsYW5nZW4gU2Nod2FueiBob2NocmVja2VuLCB1bmQgZGFubiB3dWVyZGUKZGVyIEhhc2UgaWhuIGRhcmFuIGF1cyBkZW0gTG9jaCB6aWVoZW4uIEdlc2FndCwgZ2V0YW4gdW5kIGVzIGZ1bmt0aW9uaWVydApzb2dhci4gRGllIGJlaWRlbiBzZXR6ZW4gaWhyZW4gV2VnIGR1cmNoIGRlbiBXYWxkIGZvcnQuIERhIHR1dCBzaWNoIHVudGVyIGRlbQpIYXNlbiBlaW5lIHdlaXRlcmUgRmFsbGdydWJlIGF1ZiB1bmQgZXIgZmFlbGx0IGhpbmVpbi4gRGVyIEZ1Y2hzIHNjaGxhZWd0IHZvciwKZGFzcyBkZXIgSGFzZSBhdWNoIHNlaW5lbiBTY2h3YW56IG5hY2ggb2JlbiByZWNrZW4gc29sbCB1bmQgZXIgd3VlcmRlIGlobiBkYW5uCmF1cyBkZXIgR3J1YmUgemllaGVuLiBEb2NoIGRlciBTY2h3YW56IGRlcyBIYXNlbiBpc3QgenUga3Vyei4gRGFyYXVmaGluIHppZWhlCmRlciBIYXNlIHNlaW4gSGFuZHkgYXVzIGRlciBUYXNjaGUsIHJ1ZnQgZGllIEhhc25lZmV1ZXJ3ZWhyLCBkaWUgaWhuIGRhbm4gYXVzCmRlbSBMb2NoIGJlZnJlaXQuCgpXYXMgaXN0IG51biBkaWUgTW9yYWwgZGVyIGdhbnplbiBHZXNjaGljaHRlID8KCkdhbnogZWluZmFjaCA6IFdlciBlaW5lbiB6dSBrdXJ6ZW4gU2Nod2FueiBoYXQsIGJyYXVjaHQgZWluIEhhbmR5ICpncmlucyoKCkphc29uIFJpZ2lkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgbm9jaCBlaW5lciAoQW5hY3Jpb24sICA4LiBKdW4gMTk5OCwgMDA6NDE6NTkpOgoKV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gaGF2aW5nIGEgam9iIGFuZCBoYXZpbmcgYSB3aWZlID8KCgoKCgoKCgoKCgoKCgoKCkFmdGVyIDUgeWVhcnMgdGhlIGpvYiBzdGlsbCBzdWNrcyA6KQoKQW5hYyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRpZSgpIChSb2NodXMsICA5LiBKdW4gMTk5OCwgMTc6MDI6MTApOgpEb2RpIGFsLUZheWFkIHVuZCBzZWluIEZhaHJlciB0cmVmZmVuIHNpY2ggbmFjaCBkZW0gdG9lZGxpY2hlbiBVbmZhbGwKaW0gVHVubmVsIHp1ZmFlbGxpZyB2b3IgZGVyIEhpbW1lbHNwZm9ydGU6CkRvZGk6IFlvdScgdmUgZ290IHNvbWV0aGluZyB3cm9uZzogSSBzYWlkIEkgd2FudGVkIHRvIGZ1Y2sgRGkgaW4gdGhlIAp0dW5uZWwsIEkgZGlkbid0IHNheTogSSB3YW50IHRvIGRpZSBpbiB0aGUgZnVja2luZyB0dW5uZWwuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWxpY2ggaW0gUG9sYXIgKEtldG9zLCAgOS4gSnVuIDE5OTgsIDE4OjA4OjEyKToKRWluIGd1dCBnZXBmbGVndGVyIFdlZyBmdWVocnQgdm9uIE5vcmRlbiBuYWNoIFN1ZWRlbi4gRHUgd3VuZGVyc3QgRGljaCwgd2FydW0Ka2VpbiBTY2huZWUgYXVmIGlobSBsaWVndCwgZGVubiBkaWUgVHVuZHJhIHVtIERpY2ggaGVydW0gaXN0IHNjaG5lZWJlZGVja3QuIEltCk5vcmRlbiBrYW5uc3QgRHUgZWluZSBXZWdnYWJlbHVuZyBlcmtlbm5lbi4gRWluIFdlZyB6d2VpZ3QgaGllciBuYWNoIE9zdGVuIGFiLgpEdSBzaWVoc3QgZWluIFNjaGlsZC4KRXMgZ2lidCBkcmVpIHNpY2h0YmFyZSBBdXNnYWVuZ2U6IG9zdGVuLCBzdWVkZW4gdW5kIG5vcmRlbi4KUm9uZGEuIFsvbWFnaWVyOnJvbmRhXQpKZW1hbmQgYXVzIEJpZWxlZmVsZC4gWy9tYWdpZXI6YmllbGVmZWxkXQpNY0NhdWxzIGRlciBHbGFzc3B1ZWxlci4gWy9kd2FyZjptY2NhdWxzXQpFaW4gU2NobmVlbWFubi4gWy9kL3BvbGFyL2FsbGUvbW9uL3NfbWFubiM4MDU2MjNdCkVpbiBIaW53ZWlzc2NoaWxkLiBbL2QvcG9sYXIva2FpZy9vYmovbm9zY2hpbGQzIzE4NTJdCj4gZmxhbWUgc2NobmVlbWFubgpEdSBob2xzdCBhdXMgRGVpbmVuIHRpZWZzdGVuIFRhc2NoZW4gKG9kZXIgd2FzIHdlaXNzIGRlbm4gaWNoIHdvaGVyKSBEZWluZW4KTW9yZ2VuR3JhdWVuIGhhbmRnZWFyYmVpdGV0ZW4gTWluaS1GbGFtbWVud2VyZmVyICh0bSksIHJpY2h0ZXN0IGlobiBhdXMgdW5kLi4uCmZldWVyc3QgZWluZW4gcmllc2lnZW4gRmV1ZXJiYWxsIGF1ZiBlaW5lbiBTY2huZWVtYW5uIGFiLgpFcyByaWVjaHQgYXVmIGVpbm1hbCBzbyB2ZXJicmFubnQgaGllci4uLgo+IEVpbiBTY2huZWVtYW5uIHNjaG1pbHp0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmpva2UrcXVpeiAoWmFybml5YSwgMTAuIEp1biAxOTk4LCAxMDozMjo0Myk6CgpXYXMgd2FyZW4gZGllIGxldHp0ZW4gV29ydGUgdm9uIHVucyBrb2Vsc2NoIE11Y2tpPwoKIlNjaGVpc3NlLi4gc2Nob24gd2llZGVyIFBmb3N0ZW4hIgoKUmFldHNlbDogV2VyIGlzdCBNdWNraSB1bmQgd2VyIHZlcnN0ZWh0IGRlbiBHYWc/IE1haWxzIGFuIG1pY2guLi4gYXVmbG9lc3VuZwppbiBkZXIgTVBBIG5hZWNoc3RlIFdvY2hlIDopCgpaYXJuaXlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogam9rZStxdWl6IChIYXJkaWwsIDEwLiBKdW4gMTk5OCwgMTA6NDU6MDcpOgp+IyEgcm49WmFybml5YSBydD04OTc0Njc1NjMgcmc9d2l0emUKfiMhIHRpZD04OTc0Njc1NjMKCk11Y2tpIGlzdC93YXIgTWF1cmljZSBCYW5hY2gsIGVpbiBTcGllbGVyIGRlcyBqZXR6aWdlbiBad2VpdGxpZ2lzdGVuIEZDIEtvZWxuLApkZXIgZWluZXMgc2Nob2VuZW4gTW9yZ2VucyBtaXQgVGVtcG8gMjAwIGVpbmVuIFBmZWlsZXIgZGVyIEE0NiByYW1tdGUgdW5kCmhlcm5hY2ggdmVyc2NoaWVkLgpJbW1lcmhpbiBoYXR0ZSBkaWVzZXIgU3BpZWxlciB6dSBkaWVzZW0gWmVpdHB1bmt0IHNjaG9uIDEwIFRvcmUgZ2VzY2hvc3NlbiB1bmQKc3RhbmQgbm9jaCBlaW5pZ2UgV29jaGVuIGxhbmcgaW4gZGVyIEtpY2tlci1Ub3JzY2h1ZXR6ZW5saXN0ZSwgb2J3b2hsCmFienVzZWhlbiB3YXIsIGRhIGtlaW5lIHdlaXRlcmVuIFRyZWZmZXIgZGF6dWtvbW1lbi4KCi1IYXJkaWwuClNjaHJlaWJ0IFlhbnRybyBrZWluZSBNYWlscy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBqb2tlK3F1aXogKFRyZWthbiwgMTAuIEp1biAxOTk4LCAxMTo1NzozMSk6Cn4jISBybj1aYXJuaXlhIHJ0PTg5NzQ2NzU2MyByZz13aXR6ZQp+IyEgdGlkPTg5NzQ2NzU2MwpkYXQgd2FyIG4gZnVzc2JhbGxzcGllbGVyLCBkZXIgYXVmIGRlciBhdXRvYmFobiBlaW5lbiB0b2VkbGljaGVuIHVuZmFsbCBoYXR0ZQphbHMgZXIgZ2VnZW4gZWluZW4gYnJ1ZWNrcGZlaWxlciBtaXQgaG9oZXIgZ2VzY2h3aW5kaWdrZWl0IGtuYWxsdGUuIGRhaGVyCmZvc3Rlbi4KVHJla2FuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQb2xlbndpdHogKERpZWRlciwgMTAuIEp1biAxOTk4LCAyMTo0MjozOCk6ClBvbG5pc2NoZXMgR2x1ZWNrc3JhZCwgZWluIEJlZ3JpZmYgYXVzIGRlbSBCZXJlaWNoICJLcmltaW5hbGl0YWV0Igp3aXJkIGdlc3VjaHQuCgpUYWRlayBkcmVodC4uLi4gIkljaCBrYXVmZSBlaW4gSSIuLi4uIEJpbmcuLi4gIkljaCBtb2VjaHRlIGxvZXNlbiwKQXV0b2RpZWJzdGFobCIKCkRpZWRlciwgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQb2xlbndpdHogKE1vcmdvdGgsIDEwLiBKdW4gMTk5OCwgMjE6NDM6NDkpOgp+IyEgcm49RGllZGVyIHJ0PTg5NzUwNzc1OCByZz13aXR6ZQp+IyEgdGlkPTg5NzUwNzc1OApQZWNoLiBXZW5uIER1IGRyZWhzdCBkYXJmc3QgRHUgbmljaHQga2F1ZmVuLgpWRVJMT1JFTiEKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUG9sZW53aXR6IChEaWVkZXIsIDEwLiBKdW4gMTk5OCwgMjE6NDQ6NDMpOgp+IyEgcm49TW9yZ290aCBydD04OTc1MDc4Mjkgcmc9d2l0emUKfiMhIHRpZD04OTc1MDc3NTgKc29ycnkgaWNoIHNjaGF1IGRlbiBTY2hyb3R0IGRvY2ggbmllLiBIYWJlIGRlbiBudXIgZ3JhZCBnZWxlc2VuIDopCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9rLCBlaW4gYW5kZXJlci4uLiBob2ZmZW50bGljaCBub2NoIG5pY2h0IHNvIGJla2FubnQgKERpZWRlciwgMTAuIEp1biAxOTk4LCAyMTo1ODowOSk6CkVpbiBCbGluZGVyIHN0ZWh0IG1pdCBzZWluZW0gSHVuZCBhbiBkZXIgcm90ZW4gQW1wZWwuIERhIHBpbmtlbHQgaWhtIGRlciBIdW5kCmFucyBCZWluLiBEZXIgQmxpbmRlIGdpYnQgaWhtIGRhcmF1ZiBlaW5lbiBIdW5kZWt1Y2hlbi4gRWluIGFuZGVyZXIgTWFubiBzaWVodApkYXMgdW5kIGZyYWd0IGRlbiBCbGluZGVuOgoiU2FnZW4gU2llIG1hbCwgZGFzIGlzdCBhYmVyIGtvbWlzY2guIERlciBIdW5kIGhhdCBTaWUgZ2VyYWRlIGFuZ2VwaW5rZWx0IHVuZApTaWUKZ2ViZW4gaWhtIGVpbmVuIEh1bmRla3VjaGVuPyIKRGFyYXVmIGRlciBCbGluZGU6CiJXaXNzZW4gU2llLCB3ZW5uIGljaCBpaG0ga2VpbmVuIEh1bmRla3VjaGVuIGdlYmUsIHdlaV8gaWNoIG5pY2h0LCB3byB2b3JuZQppc3QKdW5kIHdlbm4gaWNoIG5pY2h0IHdlaV8sIHdvIHZvcm5lIGlzdCwga2FubiBpY2ggaWhtIG5pY2h0IGluIGRlbiBIaW50ZXJuCnRyZXRlbi4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1cndhbGQgKERpZWRlciwgMTAuIEp1biAxOTk4LCAyMjowMzoyMCk6CkVpbiBBZmZlIHVuZCBlaW4gRWxlZmFudCB0cmVmZmVuIHNpY2ggaW0gVXJ3YWxkLiBEZXIgQWZmZSBmcmFndDogIkhlZSwKRWxlZmFudCwKa2FubnN0IGR1IG1pciBtYWwgZWluZW4gR2VmYWxsZW4gdHVuPyBJY2ggYmluIHJpY2h0aWcgc2NoYXJmIGF1ZiBkaWNoLCBsYV8KbWljaCBkaWNoCmJpdHRlIGJlc3RlaWdlbi4iCkRlciBFbGVmYW50IHxiZXJsZWd0IGt1cno6ICJOYSBndXQsIHdlaWwgZHUgc28gbmV0dCBiaXR0ZSBnZXNhZ3QgaGFzdC4iCkRlciBBZmZlIGJlc3RlaWd0IGFsc28gZGVuIEVsZWZhbnRlbi4gRGNodHouLi4gc3R2aG50Li4uIE5hY2ggZnxuZiBNaW51dGVuCmZyYWd0IGVyOgoiRWxlZmFudCwga3ZubnRlc3QgZHUgbWFsIG5vY2ggbWl0IGRlbSBIaW50ZXJuIHdhY2tlbG4sIGRhcyBnZGJlIG1pciBkZW4KcmljaHRpZ2VuIEtpY2suIgpEZXIgRWxlZmFudCBkZW5rdCBzaWNoLCAid2FzIHNvbGwncyIgdW5kIHdhY2tlbHQgbWl0IGRlbSBBcnNjaC4gS3VyeiBkYXJhdWYKYmVrb21tdCBkZXIgQWZmZSBlaW5lbiBPcmdhc211cyB1bmQgc3RlaWd0IHZvbSBFbGVmYW50ZW4uCkVsZWZhbnQ6ICJEaWUgQWt0aW9uIGViZW4gaGF0IG1pY2ggc28gcmljaHRpZyBnZWlsIGdlbWFjaHQuIEt2bm50ZSBpY2ggYmVpIGRpcgphdWNoCm1hbD8iCkRlciBBZmZlIHNhZ3QgbmF0fHJsaWNoIG5pY2h0IG5laW4sIGFsc28gZmRuZ3QgZGllIFN0dmhuZXJlaSBlcm5ldXQgYW4uIApXZW5pZyBzcGR0ZXIuCkVsZWZhbnQ6ICJPaCBBZmZlLCBrdm5udGVzdCBkdSBhdWNoIG1hbCBtaXQgZGVtIEFyc2NoIHdhY2tlbG4/Ii4gCkFmZmU6ICJJY2ggd3xyZGUgZXMgamEgZ2VybmUgdHVuLCBhYmVyIGljaCBrYW5uIGdlcmFkZSBub2NoIHNvIGRlbiBLb3BmCmJld2VnZW4uLi4iIAoKc29ycnkgZnVlciBkaWUgZmVobGVyaGFmdGVuIFVtbGF1dGUsIERpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdW5kIG5vY2ggZWluZXIgKERpZWRlciwgMTAuIEp1biAxOTk4LCAyMjowNjozMyk6CkRyZWkgYWVsdGVyZSBEYW1lbiBzaW5kIGluIGVpbmVtIFNjaHdpbW1iYWQgdW5kIGxlZ2VuIEJvbWJlbnplaXRlbiBoaW4uIERlcgpCYWRlbWVpc3RlciBpc3Qgdm9sbGtvbW1lbiBmYXN6aW5pZXJ0IHVuZCBmcmFndCBkaWUgZXJzdGUsIHdpZSBzaWUgc28gc2NobmVsbApzY2h3aW1tZW4ga2Fubi4KIlRqYSIsIHNhZ3Qgc2llLCAiaWNoIHdhciBtYWwgZGV1dHNjaGUgTWVpc3RlcmluIGltIFNjaHdpbW1lbi4iCkRhIGZyYWd0IGVyIGRpZSB6d2VpdGUuCiJJY2ggd2FyIG1hbCBFdXJvcGFtZWlzdGVyaW4gfGJlciAxMDBtIEZyZWlzdGlsLCIgc2FndCBzaWUuCkRhIGZyYWd0IGRlciBCYWRlbWVpc3RlciBkaWUgRHJpdHRlLCBkaWUgYW0gYWxsZXJzY2huZWxsc3RlbiBnZXNjaHdvbW1lbiBpc3Q6CiJVbmQgc2llIHdhcmVuIGRvY2ggYmVzdGltbXQgbWFsIFdlbHRtZWlzdGVyaW4sIG9kZXI/IgoiTmVpbiwiIHNhZ3QgZGllLCAiaWNoIHdhciBQcm9zdGl0dWllcnRlIGluIFZlbmVkaWcgdW5kIGhhYmUgSGF1c2Jlc3VjaGUKZ2VtYWNodC4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXJpY2h0IChEaWVkZXIsIDEwLiBKdW4gMTk5OCwgMjI6MDg6MTApOgpFcnN0ZSBUYWdzYXR6dW5nIHZvciBHZXJpY2h0LiBEaWUgWmV1Z2luIGthbm4gbmljaHQgZXJzY2hlaW5lbiwgZGEgc2llIGVpbgpLaW5kCmJla29tbXQuIEFsc28gd2lyZCBkaWUgVmVyaGFuZGx1bmcgdmVydGFndC4gTmFjaCBkcmVpIFdvY2hlbiB0ZWlsdCBkZXIgQW53YWx0CmRlbSBSaWNodGVyIG1pdDoKIkRpZSBaZXVnaW4gaGF0IGVudGJ1bmRlbiwgc2llIGthbm4gbmV1IGdlbGFkZW4gd2VyZGVuLi4uIiAKLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKKipST1RGTCoqIChNb3Jnb3RoLCAxMS4gSnVuIDE5OTgsIDAwOjAzOjM5KToKaHR0cDovL3d3dy5kYWhvd3plLmNvbS9ncmFwaGl4L21pc3NfZWxmLmpwZwpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ2VzY2htYWNrbG9zPyA6KSAoSmFzcGVyLCAxNi4gSnVuIDE5OTgsIDA0OjU0OjM5KToKaHR0cDovL3d3dy5zdGlja3lrZXlzLm9yZy9tdGRvbGwxLmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFyZSB5b3UgYSBHdXk/IChNYXJzLCAxNi4gSnVuIDE5OTgsIDEyOjU3OjMyKToKCiAgICBBcmUgWW91IGEgR3V5PyBUYWtlIFRoaXMgU2NpZW50aWZpYyBRdWl6IHRvIERldGVybWluZSBZb3VyCiAgICBHdXluZXNzIFF1b3RpZW50CgogICAgMS4gT2theSwgc28geW91IGhhdmUgZGVjaWRlZCB0aGF0IHlvdSB0cnVseSBsb3ZlIGEgd29tYW4KICAgIGFuZCB5b3Ugd2FudCB0byBzcGVuZCB0aGUgcmVzdCBvZiB5b3VyIGxpZmUgd2l0aCBoZXIgLS0KICAgIHNoYXJpbmcgdGhlIGpveXMgYW5kIHRoZSBzb3Jyb3dzLHRoZSB0cml1bXBocyBhbmQgdGhlCiAgICB0cmFnZWRpZXMsIGFuZCBhbGwgdGhlIGFkdmVudHVyZXMgYW5kIG9wcG9ydHVuaXRpZXMgdGhhdAogICAgdGhlIHdvcmxkIGhhcyB0byBvZmZlciwgY29tZSB3aGF0IG1heS4gSG93IGRvIHlvdSB0ZWxsIGhlcj8KCiAgICBhLiBZb3UgdGFrZSBoZXIgdG8gYSBuaWNlIHJlc3RhdXJhbnQgYW5kIHRlbGwgaGVyIGFmdGVyCiAgICBkaW5uZXIuCiAgICBiLiBZb3UgdGFrZSBoZXIgZm9yIGEgd2FsayBvbiBhIG1vb25saXQgYmVhY2gsIGFuZCB5b3Ugc2F5CiAgICBoZXIgbmFtZSwgYW5kIHdoZW4gc2hlIHR1cm5zIHRvIHlvdSwgd2l0aCB0aGUgc2VhIGJyZWV6ZQogICAgYmxvd2luZyBoZXIgaGFpciBhbmQgdGhlIHN0YXJzIGluIGhlciBleWVzLCB5b3UgdGVsbCBoZXIuCiAgICBjLiBUZWxsIGhlciB3aGF0PwoKICAgIDIuIFlvdSBoYXZlIGJlZW4gc2VlaW5nIGEgd29tYW4gZm9yIHNldmVyYWwgeWVhcnMuIFNoZSdzCiAgICBhdHRyYWN0aXZlIGFuZCBpbnRlbGxpZ2VudCwgYW5kIHlvdSBhbHdheXMgZW5qb3kgYmVpbmcgd2l0aAogICAgaGVyLiBPbmUgbGVpc3VyZWx5IFN1bmRheSBhZnRlcm5vb24gdGhlIHR3byBvZiB5b3UgYXJlCiAgICB0YWtpbmcgaXQgZWFzeSAtLSB5b3UncmUgd2F0Y2hpbmcgYSBmb290YmFsbCBnYW1lOyBzaGUncwogICAgcmVhZGluZyB0aGUgcGFwZXJzIC0tIHdoZW4gc2hlIHN1ZGRlbmx5LCBvdXQgb2YgdGhlIGNsZWFyCiAgICBibHVlIHNreSwgdGVsbHMgeW91IHRoYXQgc2hlIHRoaW5rcyBzaGUgcmVhbGx5IGxvdmVzIHlvdSwKICAgIGJ1dCBzaGUgY2FuIG5vIGxvbmdlciBiZWFyIHRoZSB1bmNlcnRhaW50eSBvZiBub3Qga25vd2luZwogICAgd2hlcmUgeW91ciByZWxhdGlvbnNoaXAgaXMgZ29pbmcuIFNoZSBzYXlzIHNoZSdzIG5vdCBhc2tpbmcKICAgIHdoZXRoZXIgeW91IHdhbnQgdG8gZ2V0IG1hcnJpZWQ7IG9ubHkgd2hldGhlciB5b3UgYmVsaWV2ZQogICAgdGhhdCB5b3UgaGF2ZSBzb21lIGtpbmQgb2YgZnV0dXJlIHRvZ2V0aGVyLiBXaGF0IGRvIHlvdQogICAgc2F5PwoKICAgIGEuIFRoYXQgeW91IHNpbmNlcmVseSBiZWxpZXZlIHRoZSB0d28gb2YgeW91IGRvIGhhdmUgYQogICAgZnV0dXJlLCBidXQgeW91IGRvbid0IHdhbnQgdG8gcnVzaCBpdC4KICAgIGIuIFRoYXQgYWx0aG91Z2ggeW91IGFsc28gaGF2ZSBzdHJvbmcgZmVlbGluZ3MgZm9yIGhlciwgeW91CiAgICBjYW5ub3QgaG9uZXN0bHkgc2F5IHRoYXQgeW91J2xsIGJlIHJlYWR5IGFueXRpbWUgc29vbiB0bwogICAgbWFrZSBhIGxhc3RpbmcgY29tbWl0bWVudCwgYW5kIHlvdSBkb24ndCB3YW50IHRvIGh1cnQgaGVyCiAgICBieSBob2xkaW5nIG91dCBmYWxzZSBob3BlLgogICAgYy4gVGhhdCB5b3UgY2Fubm90IGJlbGlldmUgdGhlIEpldHMgY2FsbGVkIGEgZHJhdyBwbGF5IG9uCiAgICB0aGlyZCBhbmQgc2V2ZW50ZWVuLgoKICAgIDMuIEFsaWVuIGJlaW5ncyBmcm9tIGEgaGlnaGx5IGFkdmFuY2VkIHNvY2lldHkgdmlzaXQgdGhlCiAgICBFYXJ0aCwgYW5kIHlvdSBhcmUgdGhlIGZpcnN0IGh1bWFuIHRoZXkgZW5jb3VudGVyLiBBcyBhCiAgICB0b2tlbiBvZiBpbnRlcmdhbGFjdGljIGZyaWVuZHNoaXAsIHRoZXkgcHJlc2VudCB5b3Ugd2l0aCBhCiAgICBzbWFsbCBidXQgaW5jcmVkaWJseSBzb3BoaXN0aWNhdGVkIGRldmljZSB0aGF0IGlzIGNhcGFibGUKICAgIG9mIGN1cmluZyBhbGwgZGlzZWFzZSwgcHJvdmlkaW5nIGFuIGluZmluaXRlIHN1cHBseSBvZgogICAgY2xlYW4gZW5lcmd5LCB3aXBpbmcgb3V0IGh1bmdlciBhbmQgcG92ZXJ0eSwgYW5kCiAgICBwZXJtYW5lbnRseSBlbGltaW5hdGluZyBvcHByZXNzaW9uIGFuZCB2aW9sZW5jZSBhbGwgb3ZlcgogICAgdGhlIGVudGlyZSBFYXJ0aC4gWW91IGRlY2lkZSB0bzoKCiAgICBhLiBQcmVzZW50IGl0IHRvIHRoZSBwcmVzaWRlbnQgb2YgdGhlIFVuaXRlZCBTdGF0ZXMuCiAgICBiLiBQcmVzZW50IGl0IHRvIHRoZSBzZWNyZXRhcnkgZ2VuZXJhbCBvZiB0aGUgVW5pdGVkCiAgICBOYXRpb25zLgogICAgYy4gVGFrZSBpdCBhcGFydC4KCiAgICA0LiBXaGVuIGlzIGl0IG9rYXkgdG8ga2lzcyBhbm90aGVyIG1hbGU/CgogICAgYS4gV2hlbiB5b3Ugd2lzaCB0byBkaXNwbGF5IHNpbXBsZSBhbmQgcHVyZSBhZmZlY3Rpb24KICAgIHdpdGhvdXQgcmVnYXJkIGZvciBuYXJyb3ctbWluZGVkIHNvY2lhbCBjb252ZW50aW9ucy4KICAgIGIuIFdoZW4gaGUgaXMgdGhlIHBvcGUuIChOb3Qgb24gdGhlIGxpcHMuKQogICAgYy4gV2hlbiBoZSBpcyB5b3VyIGJyb3RoZXIgYW5kIHlvdSBhcmUgQWwgUGFjaW5vIGFuZCB0aGlzCiAgICBpcyB0aGUgb25seSByZWFsbHkgc3BvcnRzbWFubGlrZSB3YXkgdG8gbGV0IGhpbSBrbm93IHRoYXQsCiAgICBmb3IgYnVzaW5lc3MgcmVhc29ucywgeW91IGhhdmUgdG8gaGF2ZSBoaW0ga2lsbGVkLgoKICAgIDUuIFdoYXQgYWJvdXQgaHVnZ2luZyBhbm90aGVyIG1hbGU/CgogICAgYS4gSWYgaGUncyB5b3VyIGZhdGhlciBhbmQgYXQgbGVhc3Qgb25lIG9mIHlvdSBoYXMgYSBmYXRhbAogICAgZGlzZWFzZS4KICAgIGIuIElmIHlvdSdyZSBwZXJmb3JtaW5nIHRoZSBIZWltbGljaCBtYW5ldXZlci4gKEFuZCBldmVuIGluCiAgICB0aGlzIGNhc2UsIHlvdSBzaG91bGQgcmVwZWF0ZWRseSBzaG91dDogIkkgYW0ganVzdAogICAgZGlzbG9kZ2luZyBmb29kIHRyYXBwZWQgaW4gdGhpcyBtYWxlJ3MgdHJhY2hlYSEgSSBhbSBub3QgaW4KICAgIGFueSB3YXkgYXJvdXNlZCEiKQogICAgYy4gSWYgeW91J3JlIGEgcHJvZmVzc2lvbmFsIGJhc2ViYWxsIHBsYXllciBhbmQgYSB0ZWFtbWF0ZQogICAgaGl0cyBhIGhvbWUgcnVuIHRvIHdpbiB0aGUgV29ybGQgU2VyaWVzLCB5b3UgbWF5IGh1ZyBoaW0KICAgIHByb3ZpZGVkIHRoYXQ6CgogICAgKDEpIEhlIGlzIGxlZ2FsbHkgd2l0aGluIHRoZSBiYXNlcGF0aCwKICAgICgyKSBCb3RoIG9mIHlvdSBhcmUgd2VhcmluZyBwcm90ZWN0aXZlIGN1cHMsIGFuZAogICAgKDMpIFlvdSBhbHNvIHBvdW5kIGhpbSBmcmF0ZXJuYWxseSB3aXRoIHlvdXIgZmlzdCBoYXJkCiAgICBlbm91Z2ggdG8gY2F1c2UgZnJhY3R1cmVzLgoKICAgIDYuIENvbXBsZXRlIHRoaXMgc2VudGVuY2U6IEEgZnVuZXJhbCBpcyBhIGdvb2QgdGltZSB0by4uLgoKICAgIGEuIC4uLnJlbWVtYmVyIHRoZSBkZWNlYXNlZCBhbmQgY29uc29sZSBoaXMgbG92ZWQgb25lcy4KICAgIGIuIC4uLnJlZmxlY3QgdXBvbiB0aGUgZmxlZXRpbmcgdHJhbnNpZW5jZSBvZiBlYXJ0aGx5IGxpZmUuCiAgICBjLiAuLi50ZWxsIHRoZSBqb2tlIGFib3V0IHRoZSBndXkgd2hvIGhhcyBBbHpoZWltZXIncwogICAgZGlzZWFzZSBhbmQgY2FuY2VyLgoKICAgIDcuIEluIHlvdXIgb3BpbmlvbiwgdGhlIGlkZWFsIHBldCBpczoKCiAgICBhLiBBIGNhdC4KICAgIGIuIEEgZG9nLgogICAgYy4gQSBkb2cgdGhhdCBlYXRzIGNhdHMuCgogICAgOC4gT25lIHdlZWtkYXkgbW9ybmluZyB5b3VyIHdpZmUgd2FrZXMgdXAgZmVlbGluZyBpbGwgYW5kCiAgICBhc2tzIHlvdSB0byBnZXQgeW91ciB0aHJlZSBjaGlsZHJlbiByZWFkeSBmb3Igc2Nob29sLiBZb3VyCiAgICBmaXJzdCBxdWVzdGlvbiB0byBoZXIgaXM6CgogICAgYS4gIkRvIHRoZXkgbmVlZCB0byBlYXQgb3IgYW55dGhpbmc/IgogICAgYi4gIlRoZXkncmUgaW4gc2Nob29sIGFscmVhZHk/IgogICAgYy4gIlRoZXJlIGFyZSB0aHJlZSBvZiB0aGVtPyIKCiAgICA5LiBXaGVuIGlzIGl0IG9rYXkgdG8gdGhyb3cgYXdheSBhIHNldCBvZiB2ZXRlcmFuCiAgICB1bmRlcndlYXI/CgogICAgYS4gV2hlbiBpdCBoYXMgdHVybmVkIHRoZSBjb2xvciBvZiBhIGRlYWQgd2hhbGUgYW5kCiAgICBkZXZlbG9wZWQgbmV3IGhvbGVzIHNvIGxhcmdlIHRoYXQgeW91J3JlIG5vdCBzdXJlIHdoaWNoCiAgICBvbmVzIHdlcmUgb3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgeW91ciBsZWdzLgogICAgYi4gV2hlbiBpdCBpcyBkb3duIHRvIGVpZ2h0IGxvb3NlbHkgY29ubmVjdGVkIHVuZGVyd2VhcgogICAgbW9sZWN1bGVzIGFuZCBoYXMgdG8gYmUgaGFuZGxlZCB3aXRoIHR3ZWV6ZXJzLgogICAgYy4gSXQgaXMgbmV2ZXIgb2theSB0byB0aHJvdyBhd2F5IHZldGVyYW4gdW5kZXJ3ZWFyLiBBIHJlYWwKICAgIGd1eSBjaGVja3MgdGhlIGdhcmJhZ2UgcmVndWxhcmx5IGluIGNhc2Ugc29tZWJvZHkgLS0gYW5kIHdlCiAgICBhcmUgbm90IG5hbWluZyBuYW1lcywgYnV0IHRoaXMgd291bGQgYmUgaGlzIHdpZmUgLS0gaXMKICAgIHF1aWV0bHkgdHJ5aW5nIHRvIGRpc2NhcmQgaGlzIHVuZGVyd2Vhciwgd2hpY2ggc2hlIGlzCiAgICBmcmFua2x5IGplYWxvdXMgb2YsIGJlY2F1c2UgdGhlIGd1eSBzZWVtcyB0byBoYXZlIGEgbW9yZQogICAgaW50aW1hdGUgcmVsYXRpb25zaGlwIHdpdGggaXQgdGhhbiB3aXRoIGhlci4KCiAgICAxMC4gV2hhdCwgaW4geW91ciBvcGluaW9uLCBpcyB0aGUgbW9zdCByZWFzb25hYmxlCiAgICBleHBsYW5hdGlvbiBmb3IgdGhlIGZhY3QgdGhhdCBNb3NlcyBsZWQgdGhlIElzcmFlbGl0ZXMgYWxsCiAgICBvdmVyIHRoZSBwbGFjZSBmb3IgZm9ydHkgeWVhcnMgYmVmb3JlIHRoZXkgZmluYWxseSBnb3QgdG8KICAgIHRoZSBQcm9taXNlZCBMYW5kPwoKICAgIGEuIEhlIHdhcyBiZWluZyB0ZXN0ZWQuCiAgICBiLiBIZSB3YW50ZWQgdGhlbSB0byByZWFsbHkgYXBwcmVjaWF0ZSB0aGUgUHJvbWlzZWQgTGFuZAogICAgd2hlbiB0aGV5IGZpbmFsbHkgZ290IHRoZXJlLgogICAgYy4gSGUgcmVmdXNlZCB0byBhc2sgZGlyZWN0aW9ucy4KCiAgICAxMS4gQXMgeW91IGdyb3cgb2xkZXIsIHdoYXQgbG9zdCBxdWFsaXR5IG9mIHlvdXIgeW91dGhmdWwKICAgIGxpZmUgZG8geW91IG1pc3MgdGhlIG1vc3Q/CgogICAgYS4gSW5ub2NlbmNlLgogICAgYi4gSWRlYWxpc20uCiAgICBjLiBDaGVycnkgYm9tYnMuCgogICAgMTIuIFdoYXQgaXMgdGhlIGh1bWFuIHJhY2UncyBzaW5nbGUgZ3JlYXRlc3QgYWNoaWV2ZW1lbnQ/CgogICAgYS4gRGVtb2NyYWN5LgogICAgYi4gUmVsaWdpb24uCiAgICBjLiBSZW1vdGUgY29udHJvbC4KCiAgICBIb3cgdG8gU2NvcmU6IEdpdmUgeW91cnNlbGYgb25lIHBvaW50IGZvciBldmVyeSB0aW1lIHlvdQogICAgcGlja2VkIGFuc3dlciAiYy4iIEEgcmVhbCBndXkgd291bGQgc2NvcmUgYXQgbGVhc3QgMTAgb24KICAgIHRoaXMgdGVzdC4gSW4gZmFjdCwgYSByZWFsIGd1eSB3b3VsZCBzY29yZSBhdCBsZWFzdCAxNSwKICAgIGJlY2F1c2UgaGUgd291bGQgZ2V0IHRoZSBzcGVjaWFsIGZpdmUtcG9pbnQgYm9udXMgZm9yCiAgICBrbm93aW5nIHRoZSBqb2tlIGFib3V0IHRoZSBndXkgd2hvIGhhcyBBbHpoZWltZXIncyBkaXNlYXNlCiAgICBhbmQgY2FuY2VyLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJlIHlvdSBhIEd1eT8gKE1hcnMsIDE2LiBKdW4gMTk5OCwgMTM6MDY6MDkpOgp+IyEgcm49TWFycyBydD04OTc5OTQ2NTIgcmc9d2l0emUKfiMhIHRpZD04OTc5OTQ2NTIKCmFjaGphOgoKUFM6CgpBcnp0OiAgICAiSWNoIG11c3MgSWhuZW4gZWluZSBzY2hsaW1tZSBNaXR0ZWlsdW5nIG1hY2hlbjogU2llIGhhYmVuIEtyZWJzLiIKUGF0aWVudDogIk9oIG5laW4sIGRhcyBpc3QgamEgc2NocmVja2xpY2ggOigiCkFyenQ6ICAgICJVbmQgaWNoIGhhYmUgbm9jaCBlaW5lIHNjaGxpbW1lIE5hY2hyaWNodDogU2llIGhhYmVuIEFsemhlaW1lciIKUGF0aWVudDogIlB1aCwgd2VuaWdzdGVucyBrZWluIEtyZWJzIDopIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaHR0cDovL2xhcmlzc2EubmV0L2luZGV4ZGUuaHRtIChDYXR3ZWF6bGUsIDE3LiBKdW4gMTk5OCwgMTI6Mjk6NTIpOgpKb2YsIGJyaW5nIERlaW5lciBGcmF1IG1hbCBlbmdsaXNjaCBiZWkuCllUQyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJhc2tldGJhbGwgKEphc29ucmlnaWQsIDE3LiBKdW4gMTk5OCwgMTQ6MzA6MTIpOgpNZWluIEdvdHQgd2llIGJsb2Vkc2lubmlnIDoKCldlciB3YXIgZGVyIGVyc3RlIEJhc2tldGJhbGxzcGllbGVyID8/PwoKCkplc3VzLCBlciBuYWhtIGRhcyBCcm90IHVuZCBkYW5rdGUgLi4uCgoKCipncmlucyogZGFzIHR1dCB3ZWguCgpKZXN1cywgYWVoLCBKYXNvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGJhc2tldGJhbGwgKEVuZGVyLCAxNy4gSnVuIDE5OTgsIDE0OjMxOjUzKToKfiMhIHJuPUphc29ucmlnaWQgcnQ9ODk4MDg2NjEyIHJnPXdpdHplCn4jISB0aWQ9ODk4MDg2NjEyCkljaCB2ZXJzdGVoIGRlbiBuaWNodC4KCkVuZGVyIChvaG5lIHNpY2ggZGFiZWkgenUgc2NoYWVtZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGJhc2tldGJhbGwgKENhdHdlYXpsZSwgMTcuIEp1biAxOTk4LCAxNDozMjo0MCk6Cn4jISBybj1FbmRlciBydD04OTgwODY3MTMgcmc9d2l0emUKfiMhIHRpZD04OTgwODY2MTIKRGFua2Uga29tbXQgaGllciB2b24gZHVua2luZyAuLi4KWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBiYXNrZXRiYWxsIChFbmRlciwgMTcuIEp1biAxOTk4LCAxNDozNDoyNSk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9ODk4MDg2NzYwIHJnPXdpdHplCn4jISB0aWQ9ODk4MDg2NjEyCkphLCBqYSwgd29taXQgYmV3aWVzZW4gd2FlcmUsIGRhc3MgbWFuIGVuZ2xpc2Noc3ByYWNoaWdlIFdpdHplIG5pY2h0IGltbWVyCnVlYmVyc2V0emVuIHNvbGx0LgoKRW5kZXIgKGRhbmtlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBiYXNrZXRiYWxsIChCb2luZywgMTcuIEp1biAxOTk4LCAxNDozOTo0OCk6Cn4jISBybj1FbmRlciBydD04OTgwODY4NjUgcmc9d2l0emUKfiMhIHRpZD04OTgwODY2MTIKSW4gZGVtIEZhbGwga29tbXQgYWxsZXJkaW5ncyBkZXIgV2l0eiBlcnN0IGR1cmNoIGRpZSBVZWJlcnNldHp1bmcuCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IGJhc2tldGJhbGwgKFByYSwgMTcuIEp1biAxOTk4LCAxNDo0NTo0Mik6Cn4jISBybj1Cb2luZyBydD04OTgwODcxODggcmc9d2l0emUKfiMhIHRpZD04OTgwODY2MTIKdW5kIHdhcyBoYXQgZGFzIEJyb3QgZGFtaXQgenUgdHVuPyBJc3QgZGFzIGluIGRlcgpCYXNrZXRiYWxsZXJzcHJhY2hlIGVpbmUgVW1zY2hyZWlidW5nIGZ1ZXIgZGVuIEJhbGw/CgpQcmEuIEtlbm50IFNwb3J0IG51ciB2b20gSG9lcmVuc2FnZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBiYXNrZXRiYWxsIChFbmRlciwgMTcuIEp1biAxOTk4LCAxNDo0NzowOCk6Cn4jISBybj1QcmEgcnQ9ODk4MDg3NTQyIHJnPXdpdHplCn4jISB0aWQ9ODk4MDg2NjEyCk5hamEgQnJvdCBhbHMgVW1zY2hyZWlidW5nIGZ1ZXIgQmFsbCBudXIgaW0gRW50ZmVybnRlc3RlbiB1bmQgZGFubiBhdWNoIG51cgp3ZW5uIGVpbiBTcGllbGVyIHNvd2FzIGluIGRpZSBGcmVzc2Uga3JpZWd0LgoKRW5kZXIgKHNjaG1hcnJlbmQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBiYXNrZXRiYWxsIChBbmF0b2wsIDE3LiBKdW4gMTk5OCwgMTc6MTM6MTcpOgp+IyEgcm49RW5kZXIgcnQ9ODk4MDg2ODY1IHJnPXdpdHplCn4jISB0aWQ9ODk4MDg2NjEyCkljaCBiaW4gdmVybXV0bGljaCBuaWNodCBnYW56IHNvIGhlbGxlIHdpZSBEdSwgRW5kZXIgLSBhYmVyIGljaCBnbGF1YmUsCmRlciBXaXR6ICJrb21tdCIgYXVzc2NobGllc3NsaWNoIGltIGRldXRzY2hzcHJhY2hpZ2VuIEdlYnJhdWNoLgoKQW5hdG9sLCByZWljaHQgRW5kZXIgZWluIFtMXSA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IGJhc2tldGJhbGwgKEdsb2luc29uLCAxOC4gSnVuIDE5OTgsIDEwOjE2OjQ2KToKfiMhIHJuPUFuYXRvbCBydD04OTgwOTYzOTcgcmc9d2l0emUKfiMhIHRpZD04OTgwODY2MTIKTmV2ZXJ0aGVsZXNzIGVpbiBrZWluIFdpdHouCgpHbG9pbiAuLi4gaXN0IGRhcyBlaWdlbnRsaWNoIFd1cnNjaHQuIE1qYW0uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBiYXNrZXRiYWxsIChCZW5zb25tYW0sIDE4LiBKdW4gMTk5OCwgMTM6Mjk6NTkpOgp+IyEgcm49RW5kZXIgcnQ9ODk4MDg3NjI4IHJnPXdpdHplCn4jISB0aWQ9ODk4MDg2NjEyCkRhIGZhZWxsdCBtaXIgZG9jaCBub2NobiBXaXR6IG1pdCBCcm90IHVuZCBCaWJlbCBlaW46CgpFaW4gTWFubiBrb21tdCBpbiBlaW5lbiBCYWVja2VybGFkZW4sIGthdWZ0IGVpbiBCcm90LCBpc3N0IGVzIGFuIE9ydCB1bmQKU3RlbGxlIGF1Ziwgc3RlY2t0IHNpY2ggZGVuIEZpbmdlciBpbiBkZW4gSGFscywga290enQgYWxsZXMgd2llZGVyIGF1cywgemllaHQKc2VpbiBULVNoaXJ0IGF1cyB1bmQgc2NobWllcnQgc2ljaCBkZW4gZ2FuemVuIEJyZWkgdW50ZXIgZGllIEFjaHNlbGhvZWhsZW47CmRlbiBhbmRlcmVuIEt1bmRlbiB3aXJkIG5hdHVlcmxpY2ggaGFsYiBzY2hsZWNodCwgdW5kIGRpZQpCYWVja2VyZWlmYWNodmVya2FldWZlcmluIHNjaHJlaXQgaWhuIGFuOiAiU2luZCBTaWUgZGVubiBub2NoIHp1IHJldHRlbiBvZGVyCndhcz8iCkRhcmF1ZiBkZXIgTWFubjogIldpZXNvPyBTdGVodCBkb2NoIHNjaG9uIGluIGRlciBCaWJlbDogJ05laG10IGRhcyBCcm90LApicmVjaHQgZXMgdW5kIHZlcnRlaWx0IGVzIHVudGVyIGRlbiBBcm1lbi4nIgoKai4gQmVuc29ubWFtICh3dWVuc2NodCBndXRlbiBBcHBldGl0ISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IGJhc2tldGJhbGwgKEJlbnNvbm1hbSwgMTguIEp1biAxOTk4LCAxMzozMzozMCk6Cn4jISBybj1CZW5zb25tYW0gcnQ9ODk4MTY5Mzk5IHJnPXdpdHplCn4jISB0aWQ9ODk4MDg2NjEyClVuZCBub2NobWFsIEJyb3Q6CgpFaW4gT2VzdGVycmVpY2hlciBpc3Qgd2llZGVyIGVpbm1hbCBpbSBVcmxhdWIgaW4gRGV1dHNjaGxhbmQgdW5kIGFlcmdlcnQgc2ljaCwKZGFzcyBlciByZWdlbG1hZXNzaWcgYW0gQWt6ZW50IGFscyBPZXN0ZXJyZWljaGVyIGlkZW50aWZpemllcnQgd2lyZC4gRGFydW0KcmVpc3N0IGVyIHNpY2ggYmVpbSBFaW5rYXVmZW4gdW5oZWltbGljaCB6dXNhbW1lbiB1bmQgYnJpbmd0IGF1Y2ggdGF0c2FlY2hsaWNoCmltIGFsbGVyYmVzdGVuIEhvY2hkZXV0c2NoIGhlcmF1czogIkljaCBoYWV0dGUgZ2VybmUgZWluIEJyb3QuIgpEaWUgVmVya2FldWZlcmluIHNjaGF1dCBpaG4gZWluZSBXZWlsZSBhbiB1bmQgc2FndCBkYW5uOiAiU2llIHNpbmQKT2VzdGVycmVpY2hlciwgbmljaHQgd2Focj8iCiJKYSwgYWJlciB3aWUgaGFiZW4gU2llIGRlbm4gZGFzIGpldHp0IGdlbWVya3Q/IgoiTmFqYSwgZGFzIGhpZXIgaXN0IGVpbiBTY2h1aGdlc2NoYWVmdC4iCgpqLiBCZW5zb25tYW0gKGhhdCBqZXR6dCBhYmVyIHdpcmtsaWNoIGZlcnRpZyBtaXQgV2l0emVuLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhtbW1tbW1tbSAoSmFzcGVyLCAxOS4gSnVuIDE5OTgsIDE0OjQ0OjUxKToKVGhlIENhcmliYmVhbiBzdG9yeSAKClRoZXJlIHdhcyB0aGlzIG1hbGUgZW5naW5lZXIsIGNvbnNpZGVyZWQgdmVyeQpzbWFydCBhbmQgcmVzb3VyY2VmdWwgYnkgaGlzIG1hbGUgYm9zc2VzLApvbiBhIGNydWlzZSBzaGlwIGluIHRoZSBDYXJpYmJlYW4gZm9yIHRoZSBmaXJzdAp0aW1lLiBJdCB3YXMgd29uZGVyZnVsLCB0aGUgZXhwZXJpZW5jZSBvZiBoaXMKbGlmZXRpbWUuIEhlIHdhcyB3YWl0ZWQgb24gaGFuZCBhbmQgZm9vdC4KQnV0LCBpdCBkaWQgbm90IGxhc3QuIEEgaHVycmljYW5lIGNhbWUgdXBvbgp0aGVtIHVuZXhwZWN0ZWRseS4gVGhlIHNoaXAgd2VudCBkb3duIGFsbW9zdAppbnN0YW50bHkuCgpUaGUgbWFuIGZvdW5kIGhpbXNlbGYgc29tZWhvdyBzd2VwdCB1cCBvbiB0aGUKc2hvcmUgb2YgYW4gaXNsYW5kLiBUaGVyZSB3YXMgbm90aGluZyBlbHNlCmFueXdoZXJlIHRvIGJlIHNlZW4uIE5vIHBlb3BsZSwgbm8gc3VwcGxpZXMsCm5vdGhpbmcgLiBUaGUgbWFuIGxvb2tlZCBhcm91bmQuIFRoZXJlIHdlcmUgc29tZQpiYW5hbmFzIGFuZCBjb2NvbnV0cywgYnV0IHRoYXQgd2FzIGl0LiBIZSB3YXMKZGVzcGVyYXRlIGFuZCBmb3Jsb3JuLCBidXQgZGVjaWRlZCB0byBtYWtlIHRoZSBiZXN0Cm9mIGl0LiBTbyBmb3IgdGhlIG5leHQgZm91ciBtb250aHMgaGUgYXRlIGJhbmFuYXMsCmRyYW5rIGNvY29udXQganVpY2UgYW5kIG1vc3RseSBsb29rZWQgdG8gdGhlIHNlYQpmb3IgYSBzaGlwIHRvIGNvbWUgdG8gaGlzIHJlc2N1ZS4KCk9uZSBkYXksIGFzIGhlIHdhcyBseWluZyBvbiB0aGUgYmVhY2ggc3Ryb2tpbmcgaGlzCmJlYXJkIGFuZCBsb29raW5nIGZvciBhIHNoaXAsIGhlIHNwb3R0ZWQgbW92ZW1lbnQKb3V0IG9mIHRoZSBjb3JuZXIgb2YgaGlzIGV5ZS4gQ291bGQgaXQgYmUgdHJ1ZSwKd2FzIGl0IGEgc2hpcD8gTm8sIGZyb20gYXJvdW5kIHRoZSBjb3JuZXIgb2YgdGhlCmlzbGFuZCBjYW1lIHRoaXMgcm93Ym9hdC4gSW4gaXQgd2FzIHRoZSBtb3N0Cmdvcmdlb3VzIHdvbWFuIGhlIGhhZCBldmVyIHNlZW4sIG9yIGF0IGxlYXN0IHNlZW4KaW4gNCBtb250aHMuIFNoZSB3YXMgdGFsbCwgdGFubmVkLCBhbmQgYmxvbmQgaGFpcgpmbG93aW5nIGluIHRoZSBzZWEgYnJlZXplLiBTaGUgc3BvdHRlZCBoaW0gYWxzbwphcyBoZSB3YXMgd2F2aW5nIGFuZCB5ZWxsaW5nIGFuZCBzY3JlYW1pbmcgdG8gZ2V0CmhlciBhdHRlbnRpb24uIFNoZSByb3dlZCBoZXIgYm9hdCB0b3dhcmRzIGhpbS4gSW4KZGlzYmVsaWVmLCBoZSBhc2tlZCwgIldoZXJlIGRpZCB5b3UgY29tZSBmcm9tPwpIb3cgZGlkIHlvdSBnZXQgaGVyZT8iCgpTaGUgc2FpZCwgIkkgcm93ZWQgZnJvbSB0aGUgb3RoZXIgc2lkZSBvZiB0aGUKaXNsYW5kLiBJIGxhbmRlZCBvbiB0aGlzIGlzbGFuZCB3aGVuIG15IGNydWlzZQpzaGlwIHNhbmsuIiAiQW1hemluZywiIGhlIHNhaWQsICJJIGRpZG4ndCBrbm93CmFueW9uZSBlbHNlIGhhZCBzdXJ2aXZlZC4gSG93IG1hbnkgb2YgeW91IGFyZQp0aGVyZT8gV2hlcmUgZGlkIHlvdSBnZXQgdGhlIHJvd2JvYXQ/IFlvdSBtdXN0CmhhdmUgYmVlbiByZWFsbHkgbHVja3kgdG8gaGF2ZSBhIHJvd2JvYXQgd2FzaC11cAp3aXRoIHlvdT8iCgoiSXQgaXMgb25seSBtZSwiIHNoZSBzYWlkLCAiYW5kIHRoZSByb3dib2F0IGRpZG4ndAp3YXNoIHVwLCBub3RoaW5nIGVsc2UgZGlkLiIKCiJXZWxsIHRoZW4sIiBzYWlkIHRoZSBtYW4sICJob3cgZGlkIHlvdSBnZXQgdGhlCnJvd2JvYXQ/IgoKIkkgbWFkZSB0aGUgcm93Ym9hdCBvdXQgb2YgcmF3IG1hdGVyaWFsIHRoYXQgSQpmb3VuZCBvbiB0aGUgaXNsYW5kLCIgcmVwbGllZCB0aGUgd29tYW4uICJUaGUKb2FycyB3ZXJlIHdoaXR0bGVkIGZyb20gR3VtIHRyZWUgYnJhbmNoZXMsIEkgd292ZQp0aGUgYm90dG9tIGZyb20gUGFsbSBicmFuY2hlcywgYW5kIHRoZSBzaWRlcyBhbmQKc3Rlcm4gY2FtZSBmcm9tIGEgRXVjYWx5cHR1cyB0cmVlLiIKCiJCdXQsIGJ1dCwiIGFza2VkIHRoZSBtYW4sICJ3aGF0IGFib3V0IHRvb2xzIGFuZApoYXJkd2FyZSwgaG93IGRpZCB5b3UgZG8gdGhhdD8iCgoiT2gsIG5vIHByb2JsZW0sIiByZXBsaWVkIHRoZSB3b21hbiwgIm9uIHRoZSBzb3V0aApzaWRlIG9mIHRoZSBpc2xhbmQgdGhlcmUgaXMgYSB2ZXJ5IHVudXN1YWwgc3RyYXRhCm9mIGFsbHV2aWFsIHJvY2sgZXhwb3NlZC4gSSBmb3VuZCB0aGF0IGlmIEkgZmlyZWQKaXQgdG8gYSBjZXJ0YWluIHRlbXBlcmF0dXJlIGluIG15IGtpbG4sIGl0IG1lbHRlZAppbnRvIGZvcmdlYWJsZSBkdWN0aWxlIGlyb24uIEkgdXNlZCB0aGF0IGZvcgp0b29scywgYW5kIHVzZWQgdGhlIHRvb2xzIHRvIG1ha2UgdGhlIGhhcmR3YXJlLgpCdXQsIGVub3VnaCBvZiB0aGF0LCIgc2hlIHNhaWQuICJXaGVyZSBkbyB5b3UKbGl2ZT8iCgpBdCBsYXN0IHRoZSBtYW4gd2FzIGZvcmNlZCB0byBjb25mZXNzIHRoYXQgaGUgaGFkCmJlZW4gc2xlZXBpbmcgb24gdGhlIGJlYWNoLgoKIldlbGwsIGxldCdzIHJvdyBvdmVyIHRvIG15IHBsYWNlLCIgc2hlIHNhaWQuIFNvCnRoZXkgYm90aCBnb3QgaW50byB0aGUgcm93Ym9hdCBhbmQgbGVmdCBmb3IgaGVyCnNpZGUgb2YgaXNsYW5kLiBUaGUgd29tYW4gZWFzaWx5IHJvd2VkIHRoZW0gYXJvdW5kCnRvIGEgd2hhcmYgdGhhdCBsZWQgdG8gdGhlIGFwcHJvYWNoIHRvIGhlciBwbGFjZS4KU2hlIHRpZWQgdXAgdGhlIHJvd2JvYXQgd2l0aCBhIGJlYXV0aWZ1bGx5IHdvdmVuCmhlbXAgcm9wZS4gVGhleSB3YWxrZWQgdXAgYSBzdG9uZSB3YWxrIGFuZCBhcm91bmQKYSBQYWxtIHRyZWU7IHRoZXJlIHN0b29kIGFuIGV4cXVpc2l0ZSBidW5nYWxvdwpwYWludGVkIGluIGJsdWUgYW5kIHdoaXRlLgoKIkl0J3Mgbm90IG11Y2gsIiBzaGUgc2FpZCwgImJ1dCBJIGNhbGwgaXQgaG9tZS4KU2l0IGRvd24gcGxlYXNlOyB3b3VsZCB5b3UgbGlrZSB0byBoYXZlIGEgZHJpbms/IgoKIk5vLCIgc2FpZCB0aGUgbWFuLCAib25lIG1vcmUgY29jb251dCBqdWljZSBhbmQKSSdsbCBwdWtlLiIgIkl0IHdvbid0IGJlIGNvY29udXQganVpY2UsIiB0aGUgd29tYW4KcmVwbGllZC4gIkkgaGF2ZSBhIHN0aWxsLCBob3cgYWJvdXQgYSBQaW5hCkNvbGFkYT8iIFRyeWluZyB0byBoaWRlIGhpcyBjb250aW51ZWQgYW1hemVtZW50LAp0aGUgbWFuIGFjY2VwdGVkLCBhbmQgdGhleSBzYXQgZG93biBvbiBoZXIgY291Y2gKdG8gdGFsay4gQWZ0ZXIgYSB3aGlsZSwgYW5kIHRoZXkgaGFkIGV4Y2hhbmdlZAp0aGVpciBzdG9yaWVzLCB0aGUgd29tYW4gYXNrZWQsICJUZWxsIG1lLCBoYXZlIHlvdQphbHdheXMgaGFkIGEgYmVhcmQ/IgoKIk5vLCIgdGhlIG1hbiByZXBsaWVkLCAiSSB3YXMgY2xlYW4gc2hhdmVuIGFsbCBvZgpteSBsaWZlLCBhbmQgZXZlbiBvbiB0aGUgY3J1aXNlIHNoaXAuIgoKIldlbGwgaWYgeW91IHdvdWxkIGxpa2UgdG8gc2hhdmUsIHRoZXJlIGlzIGEgcmF6b3IKdXBzdGFpcnMgaW4gdGhlIGNhYmluZXQgaW4gdGhlIGJhdGhyb29tLiIgU28sIHRoZQptYW4sIG5vIGxvbmdlciBxdWVzdGlvbmluZyBhbnl0aGluZywgd2VudCB1cHN0YWlycwp0byB0aGUgYmF0aHJvb20uIFRoZXJlIGluIHRoZSBjYWJpbmV0IHdhcyBhIHJhem9yCm1hZGUgZnJvbSBhIGJvbmUgaGFuZGxlLCB0d28gc2hlbGxzIGhvbmVkIHRvIGEKaG9sbG93IGdyb3VuZCBlZGdlIHdlcmUgZmFzdGVuZWQgb24gdG8gaXRzIGVuZAppbnNpZGUgb2YgYSBzd2l2ZWwgbWVjaGFuaXNtLiBUaGUgbWFuIHNoYXZlZCwKc2hvd2VyZWQgYW5kIHdlbnQgYmFjayBkb3duIHN0YWlycy4KCiJZb3UgbG9vayBncmVhdCwiIHNhaWQgdGhlIHdvbWFuLiAiSSB0aGluayBJIHdpbGwKZ28gdXAgYW5kIHNsaXAgaW50byBzb21ldGhpbmcgbW9yZSBjb21mb3J0YWJsZS4iClNvIHNoZSBkaWQuCgpBbmQsIHRoZSBtYW4gY29udGludWVkIHRvIHNpcCBoaXMgUGluYSBDb2xhZGEuCkFmdGVyIGEgc2hvcnQgdGltZSwgdGhlIHdvbWFuIHJldHVybmVkIHdlYXJpbmcgZmlnCmxlYXZlcyBzdHJhdGVnaWNhbGx5IHBvc2l0aW9uZWQgYW5kIHNtZWxsaW5nCmZhaW50bHkgb2YgZ2FyZGVuaWFzLgoKIlRlbGwgbWUsIiBzaGUgYXNrZWQsICJ3ZSBoYXZlIGJvdGggYmVlbiBvdXQgaGVyZQpmb3IgYSB2ZXJ5IGxvbmcgdGltZSB3aXRoIG5vIGNvbXBhbmlvbnNoaXAuIFlvdQprbm93IHdoYXQgSSBtZWFuLiBIYXZlIHlvdSBiZWVuIGxvbmVseSwgaXMgdGhlcmUKYW55dGhpbmcgdGhhdCB5b3UgcmVhbGx5IG1pc3M/IFNvbWV0aGluZyB0aGF0IGFsbAptZW4gYW5kIHdvbWFuIG5lZWQuIFNvbWV0aGluZyB0aGF0IGl0IHdvdWxkIGJlCnJlYWxseSBuaWNlIHRvIGhhdmUgcmlnaHQgbm93LiIKCiJZZXMgdGhlcmUgaXMsIiB0aGUgbWFuIHJlcGxpZWQsIGFzIGhlIG1vdmVkCmNsb3NlciB0byB0aGUgd29tYW4gd2hpbGUgZml4aW5nIGEgd2luc29tZSBnYXplCnVwb24gaGVyLCAiVGVsbCBtZSAuLi4gY2FuIEkgY2hlY2sgbXkgZS1tYWlsPyoqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaG1tbW0yIChKYXNwZXIsIDE5LiBKdW4gMTk5OCwgMTQ6NDY6NDkpOgoKCkEgdHJ1ZSBzdG9yeS4uLgoKV2hlbiBBcG9sbG8gTWlzc2lvbiBBc3Ryb25hdXQgTmVpbCBBcm1zdHJvbmcgZmlyc3Qgd2Fsa2VkIG9uIHRoZSBtb29uLCBoZQpub3Qgb25seSBnYXZlIGhpcyBmYW1vdXMgIm9uZSBzbWFsbCBzdGVwIGZvciBtYW4sIG9uZSBnaWFudCBsZWFwIGZvcgptYW5raW5kIiBzdGF0ZW1lbnQgYnV0IGZvbGxvd2VkIGl0IGJ5IHNldmVyYWwgcmVtYXJrcywgdXN1YWwgY29tIHRyYWZmaWMKYmV0d2VlbiBoaW0sIHRoZSBvdGhlciBhc3Ryb25hdXRzIGFuZCBNaXNzaW9uIENvbnRyb2wuICBKdXN0IGJlZm9yZSBoZQpyZS1lbnRlcmVkIHRoZSBsYW5kZXIsIGhvd2V2ZXIsIGhlIG1hZGUgdGhlIGVuaWdtYXRpYyByZW1hcmsgIkdvb2QgbHVjawpNci4gR29yc2t5LiIKCk1hbnkgcGVvcGxlIGF0IE5BU0EgdGhvdWdodCBpdCB3YXMgYSBjYXN1YWwgcmVtYXJrIGNvbmNlcm5pbmcgc29tZSByaXZhbApTb3ZpZXQgQ29zbW9uYXV0LiAgSG93ZXZlciwgdXBvbiBjaGVja2luZywgdGhlcmUgd2FzIG5vIEdvcnNreSBpbiBlaXRoZXIKdGhlIFJ1c3NpYW4gb3IgQW1lcmljYW4gc3BhY2UgcHJvZ3JhbXMuIE92ZXIgdGhlIHllYXJzIG1hbnkgcGVvcGxlCnF1ZXN0aW9uZWQgQXJtc3Ryb25nIGFzIHRvIHdoYXQgdGhlICJHb29kIGx1Y2sgTXIuIEdvcnNreSIgc3RhdGVtZW50Cm1lYW50LCBidXQgQXJtc3Ryb25nIGFsd2F5cyBqdXN0IHNtaWxlZC4KCkp1c3QgbGFzdCB5ZWFyLCAob24gSnVseSA1LCAxOTk1IGluIFRhbXBhIEJheSBGTCkgd2hpbGUgYW5zd2VyaW5nCnF1ZXN0aW9ucyBmb2xsb3dpbmcgYSBzcGVlY2gsIGEgcmVwb3J0ZXIgYnJvdWdodCB1cCB0aGUgMjYgeWVhciBvbGQKcXVlc3Rpb24gdG8gQXJtc3Ryb25nLiBUaGlzIHRpbWUgaGUgZmluYWxseSByZXNwb25kZWQuICBNci4gR29yc2t5IGhhZApmaW5hbGx5IGRpZWQgYW5kIHNvIE5laWwgQXJtc3Ryb25nIGZlbHQgaGUgY291bGQgYW5zd2VyIHRoZSBxdWVzdGlvbi4KCldoZW4gaGUgd2FzIGEga2lkLCBoZSB3YXMgcGxheWluZyBiYXNlYmFsbCB3aXRoIGEgZnJpZW5kIGluIHRoZSBiYWNreWFyZC4KCkhpcyBmcmllbmQgaGl0IGEgZmx5IGJhbGwgd2hpY2ggbGFuZGVkIGluIHRoZSBmcm9udCBvZiBoaXMgbmVpZ2hib3IncwpiZWRyb29tIHdpbmRvd3MuIEhpcyBuZWlnaGJvcnMgd2VyZSBNci4gJiBNcnMuIEdvcnNreS4gICBBcyBoZSBsZWFuZWQKZG93biB0byBwaWNrIHVwIHRoZSBiYWxsLCB5b3VuZyBBcm1zdHJvbmcgaGVhcmQgTXJzLiBHb3Jza3kgc2hvdXRpbmcgYXQKTXIuIEdvcnNreS4KCiJPcmFsIHNleCEgIFlvdSB3YW50IG9yYWwgc2V4PyEgIFlvdSdsbCBnZXQgb3JhbCBzZXggd2hlbiB0aGUga2lkIG5leHQKZG9vciB3YWxrcyBvbiB0aGUgbW9vbiEiCgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYWFsZSAoSmFzcGVyLCAxOS4gSnVuIDE5OTgsIDE0OjUzOjAzKToKSE9XIFRPIEtJTEwgQU4gRUVMIChhIHRydWUgc3RvcnkpCgpMaXR0bGUgSm9obm55IHdhcyA3IHllYXJzIG9sZCBhbmQgbGlrZSBvdGhlciBib3lzIGhpcyBhZ2UsIHJhdGhlciBjdXJpb3VzLgpIZSBoYWQgYmVlbiBoZWFyaW5nIHF1aXRlIGEgYml0IGFib3V0IGNvdXJ0aW5nIGZyb20gb3RoZXIgYm95cyBhbmQgaGUKd29uZGVyZWQgd2hhdCBpdCB3YXMgYW5kIGhvdyBpdCB3YXMgZG9uZS4gT25lIGRheSwgaGUgdG9vayBoaXMgcXVlc3Rpb25zCnRvIGhpcyBtb3RoZXIsIGFuZCBzaGUgYmVjYW1lIGZsdXN0ZXJlZC4gSW5zdGVhZCBvZiBleHBsYWluaW5nIHRoaW5ncyB0bwpKb2hubnkgc2hlIHRvbGQgaGltIHRvIGhpZGUgYmVoaW5kIHRoZSBjdXJ0YWlucyBvbmUgbmlnaHQgYW5kIHdhdGNoIGhpcwpvbGRlciBzaXN0ZXIgYW5kIGhlciBib3lmcmllbmQuIFRoaXMgaGUgZGlkLCBhbmQgdGhlIGZvbGxvd2luZyBtb3JuaW5nCkpvaG5ueSBleHBsYWluZWQgZXZlcnl0aGluZyB0byBoaXMgbW90aGVyLiAKCiJTaXMgYW5kIGhlciBib3lmcmllbmQgc2F0IGFuZCB0YWxrZWQgZm9yIGEgd2hpbGUsIHRoZW4gaGUgdHVybmVkIG9mZiBtb3N0Cm9mIHRoZSBsaWdodHMuIFRoZW4gaGUgc3RhcnRlZCB0byBraXNzIGFuZCBodWcgaGVyLCBJIGZpZ3VyZWQgc2lzIG11c3QgYmUKZ2V0dGluZyBzaWNrIGJlY2F1c2UgaGVyIGZhY2Ugc3RhcnRlZCBsb29raW5nIGZ1bm55LiBIZSBtdXN0IGhhdmUgdGhvdWdodApzbyB0b28gYmVjYXVzZSBoZSBwdXQgaGlzIGhhbmQgaW4gaGVyIGJsb3VzZSB0byBmZWVsIGhlciBoZWFydCwganVzdCBsaWtlCnRoZSBkb2N0b3Igd291bGQuIEV4Y2VwdCBoZSdzIG5vdCBhcyBnb29kIGFzIHRoZSBkb2N0b3IsIGJlY2F1c2UgaGUgc2VlbWVkCnRvIGhhdmUgdHJvdWJsZSBmaW5kaW5nIGhlciBoZWFydC4gSGUgd2FzIGdldHRpbmcgc2ljayB0b28sIGJlY2F1c2UgcHJldHR5CnNvb24gYm90aCBvZiB0aGVtIHN0YXJ0ZWQgcGFudGluZyBhbmQgZ2V0dGluZyBhbGwgb3V0IG9mIGJyZWF0aC4gSGlzIG90aGVyCmhhbmQgbXVzdCBoYXZlIGJlZW4gZ2V0dGluZyBjb2xkIGJlY2F1c2UgaGUgcHV0IGl0IHVuZGVyIGhlciBza2lydC4gQWJvdXQKdGhpcyB0aW1lLCBzaXMgZ290IHRvd2FyZCB0aGUgZW5kIG9mIHRoZSBjb3VjaC4gVGhpcyB3YXMgd2hlbiB0aGUgZmV2ZXIKc3RhcnRlZC4gSSBrbm93IGl0IHdhcyBhIGZldmVyIGJlY2F1c2Ugc2lzIHRvbGQgaGltIHNoZSB3YXMgcmVhbGx5IEhPVC4KRmluYWxseSwgSSBmb3VuZCBvdXQgd2hhdCB3YXMgbWFraW5nIHRoZW0gc28gc2ljay4uLi4gYSBiaWcgZWVsIGhhZCBnb3R0ZW4KaW5zaWRlIGhpcyBwYW50cyBzb21laG93LiBJdCBqdXN0IGp1bXBlZCBvdXQgb2YgaGlzIHBhbnRzIGFuZCBzdG9vZCB0aGVyZQphYm91dCA5IGluY2hlcyBsb25nLiBIT05FU1QhIEFueXdheXMsIGhlIGdyYWJiZWQgaXQgaW4gb25lIGhhbmQgdG8ga2VlcCBpdApmcm9tIGdldHRpbmcgYXdheS4gV2hlbiBzaXMgc2F3IGl0IHNoZSBnb3QgcmVhbGx5IHNjYXJlZC4gSGVyIGV5ZXMgZ290IGJpZwphbmQgaGVyIG1vdXRoIGZlbGwgb3BlbiwgYW5kIHNoZSBzdGFydGVkIGNhbGxpbmcgb3V0IHRvIEdvZCBhbmQgc3R1ZmYgbGlrZQp0aGF0LiBJIHNob3VsZCB0ZWxsIGhlciBhYm91dCB0aGUgb25lcyBJIHNhdyBhdCB0aGUgbGFrZSEgQW55d2F5cywgc2lzIGdvdApicmF2ZSBhbmQgdHJpZWQgdG8ga2lsbCB0aGUgZWVsIGJ5IGJpdGluZyBpdHMgaGVhZCBvZmYuIEFsbCBvZiBhIHN1ZGRlbiwKc2hlIG1hZGUgYSBub2lzZSBhbmQgbGV0IHRoZSBlZWwgZ28uLi4gSSBndWVzcyBpdCBiaXQgaGVyIGJhY2suIFRoZW4gc2hlCmdyYWJiZWQgaXQgd2l0aCBib3RoIGhhbmRzIGFuZCBoZWxkIGl0IHdoaWxlIGhlIHRvb2sgYSBtdXp6bGUgb3V0IG9mIGhpcwpwb2NrZXQgYW5kIHNsaXBwZWQgb3ZlciB0aGUgZWVscyBoZWFkIHRvIGtlZXAgaXQgZnJvbSBiaXRpbmcgYWdhaW4uIFNpcyBsYXkKYmFjayBhbmQgc3ByZWFkIGhlciBsZWdzIHNvIHRoYXQgc2hlIGNvdWxkIGdldCBhIHNjaXNzb3IgbG9jayBvbiBpdC4gQW5kIGhlCmhlbHBlZCBieSBsYXlpbmcgb24gdG9wIG9mIHRoZSBlZWwuIFRoZSBlZWwgcHV0IHVwIGEgaGVsbCBvZiBhIGZpZ2h0LiBTaXMKc3RhcnRlZCBncm9hbmluZyBhbmQgc3F1ZWFsaW5nIGFuZCBoZXIgYm95ZnJpZW5kIGFsbW9zdCB1cHNldCB0aGUgY291Y2guIEkKZ3Vlc3MgdGhleSB3YW50ZWQgdG8ga2lsbCB0aGUgZWVsIGJ5IHNxdWlzaGluZyBpdCBiZXR3ZWVuIHRoZW0uCgpBZnRlciBhIHdoaWxlLCB0aGV5IGJvdGggcXVpdCBtb3ZpbmcgYW5kIGdhdmUgYSBncmVhdCBzaWdoLiBIZXIgYm95ZnJpZW5kCnNhdCB1cCBhbmQgc3VyZSBlbm91Z2ggdGhleSBoYWQga2lsbGVkIHRoZSBlZWwuLi4gSSBrbmV3IGl0IHdhcyBkZWFkIGJlY2F1c2UKaXQganVzdCBodW5nIHRoZXJlIGxpbXAgYW5kIHNvbWUgb2YgaXRzIGluc2lkZXMgd2VyZSBoYW5naW5nIG91dC4gU2lzIGFuZApoZXIgYm95ZnJpZW5kIHdlcmUgYSBsaXR0bGUgdGlyZWQgZnJvbSB0aGUgYmF0dGxlLCBidXQgdGhleSB3ZW50IG9uCmNvdXJ0aW5nIGFueXdheXMuIEhlIHN0YXJ0ZWQgaHVnZ2luZyBhbmQga2lzc2luZyBoZXIgYWdhaW4uIEFuZCBieSBnb2xseSwKdGhlIGVlbCB3YXNuJ3QgZGVhZCBhZnRlciBhbGwuIEl0IGp1bXBlZCBzdHJhaWdodCB1cCBhbmQgc3RhcnRlZCB0byBmaWdodAphZ2Fpbi4gSSBndWVzcyBlZWxzIGFyZSBsaWtlIGNhdHMuLi4gdGhleSBoYXZlIG5pbmUgbGl2ZXMgb3Igc29tZXRoaW5nLgpUaGlzIHRpbWUgU2lzIGp1bXBlZCB1cCBhbmQgdHJpZWQgdG8ga2lsbCB0aGUgZWVsIGJ5IHNpdHRpbmcgb24gaXQuIEFmdGVyCmFib3V0IDM1IG1pbnV0ZXMgb2Ygc3RydWdnbGUsIHRoZXkgZmluYWxseSAga2lsbGVkIHRoZSBlZWwuIEkga25vdyBpdCB3YXMKZGVhZCB0aGlzIHRpbWUgYmVjYXVzZSBJIHNhdyBzaXMncyBib3lmcmllbmQgcGVlbCBvZmYgdGhlIHNraW4gYW5kIGZsdXNoCml0IGRvd24gdGhlIHRvaWxldC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEc2NodW5nZWxrb2VuaWcgKE92ZXJsb3JkLCAyMy4gSnVuIDE5OTgsIDE2OjQxOjU1KToKQWxzIGRlciBMb2V3ZSBlaW5lcyBUYWdlcyB3aWVkZXIgc2VpbmUgd29obHZlcmRpZW50ZSBTaWVzdGEgaGFsdGVuIHdvbGx0ZSwKd3VyZGUgZXIgaW1tZXIgd2llZGVyIGR1cmNoIEdldG9lc2UsIFRyb21wZXRlbiwgR2Vqb2hsZSB1bmQgR2V0cmFtcGVsIHZvbgpTZWl0ZW4gZGVyIEVsZWZhbnRlbiBnZXN0b2VydC4gQWxzIGlobSBEaWVzIHp1IGJ1bnQgd3VyZGUsIGxpZWYgZXIgd3VldGVuZCB6dQpkZW4gRWxlZmFudGVuIHVuZCB3b2xsdGUgd2lzc2VuLCB3YXJ1bSBzaWUgZWluZW4gc29sY2hlbiBMYWVybSB2ZXJhbnN0YWx0ZXRlbi4KJ051biwnIHNhZ3RlIGRlciBFbGVmYW50ZW5idWxsZSwgaW1tZXIgbm9jaCBwcnVzdGVuZCB1bmQga2ljaGVybmQuICdXaXIgYnVtc2VuCkFmZmVuLicKKkpvaGwsIFRyb21wZXQsIFRyb2V0LCBUcmFtcGVsKi4KZGVyIExvZXdlOidXYXMgaXN0IHNvIEx1c3RpZ2VzIGRyYW4sIEFmZmVuIHp1IGZpY2tlbj8nCipKb2hsLCBUcm9tcGV0LCBUcm9ldCwgVHJhbXBlbCouCkRlciBMZWl0YnVsbGUgKHBydXN0ZW5kKTonUHJvYmllcnMgZG9jaCBtYWwuJwoqSm9obCwgVHJvbXBldCwgVHJvZXQsIFRyYW1wZWwqLgpEZXIgbG9ld2UgdmVyc2Nod2luZGV0IGltIEdlc3RydWVwcCB1bmQgemVycnQga3VyeiBkYXJhdWYgZWluZW4gemV0ZXJuZGVuIHVuZAprcmVpc2NoZW5kZW4gQWZmZW4gaGVyYmVpIHVuZCBtYWNodCBzaWNoIGFucyBXZXJrLiBBbHMgZXIgZmVydGlnIGlzdCwgbGFlc3N0CmVyIGRlbiBBZmZlbiB3aWVkZXIgZnJlaSwgZGVyIGJyZWl0YmVpbmlnIHVuZCB6ZXRlcm5kIHdpZWRlciBpbiBkZW4gRHNjaHVuZ2VsCnp1cnVlY2todW1wZWx0LgonV2FzIGlzdCBkZW5uIG51biBzbyBfYmVzb25kZXJzXyBsdXN0aWcgZGFyYW4/JyBmcmFndGUgZGVyIExvZXdlIGRlbgpMZWl0YnVsbGVuIHN0YXVuZW5kLgpMZWl0YnVsbGU6J0htbW0gdGphLi4uYmVpIERpciBuaXguIEJlaSBEaXIgcGxhdHplbiBkaWUgamEgbmljaHQhJwoKT3ZpLCBpbW1lciBub2NoIGxhY2hlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRlc3QgKEFuYWNyaW9uLCAyNS4gSnVuIDE5OTgsIDIwOjM4OjM0KToKTmFjaCBkZXIgZXJzdGVuIEtsYXNzZSBpc3QgZXMgYmVpIGRyZWkgU2NodWVsZXJuIGZyYWdsaWNoLCBvYiBzaWUgdmVyc2V0enQKd2VyZGVuLgpEZXIgTGVocmVyIG1hY2h0IGFsc28gZWluIHBhYXIgVGVzdHMgLi4uLgoKTDogTW9uaSwgYnVjaHN0YWJpZXIgbWFsICdQYXBhJwpNOiBQIC0gQSAtIFAgLSBBIApMOiBHdXQsIHZlcnNldHp0LiBQZXRlciwgZHUgYnVjaHN0YWJpZXJzdCAnTWFtaScgLi4uClA6IE0gLSBBIC0gTSAtIEkKTDogVmVyc2V0enQgLi4uLiBHdXQuLi5VbmQgamV0enQgRHUsIE11c3RhZmEuLi4nUmFzc2VuZGlza3JpbWluaWVydW5nJyAuLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNhcmcgKFphcm5peWEsIDI5LiBKdW4gMTk5OCwgMTU6MjM6NTQpOgp+IyEgcm49Um9jaHVzIHJ0PTg5OTEyNjUzOCByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTg5OTEyNjUzOApIbW1tIFBhcmEgZHJvaHQgUm9jaHVzIDopIGhlaGUuLi4gCgpaYXJuaXlhIGdyZWF0ZXN0IG9uZWxpbmVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYXVtIHp1IGdsYXViZW4sIGFiZXIgd2Foci4uLiAoTGlsaXB1dCwgMjkuIEp1biAxOTk4LCAyMDo0OTozMSk6CkhpZXIgaXN0IGVpbiBXaXR6LCBvZGVyIGRvY2gga2VpbmVyPyBNYW4ga2FubiBkcnVlYmVyIGxhZWNoZWxuLCBzY2htdW56ZWxuLApvZGVyIGF1Y2ggbnVyIGRlbiBLb3BmIHNjaHVldHRlbG4uICBGb2xnZW5kZXMgaGF0IGplbWFuZCBpbiBlaW5lbQphbWVyaWthbmlzY2hlbiBNT08gdmVyb2VmZmVudGxpY2h0OgpIaS0tCnZpc2l0aW5nIE1vcmdlbkdyYXVlbiwgdGhlIEdlcm1hbiBBZHZlbnR1cmUgTU9PIGFuZCBmZWVsIChhbG1vc3QpCmNvbWZ5IGVub3VnaCB3aXRoIHRoZSBjb21tYW5kIHRoZXJlIHRvIGdpdmUgc3Vydml2YWwgYmFzaWNzLkFueW9uZSB3YW50IGEKdG91cj8KPHNpZ25hdHVyZT4KCkJlc2FndGUgUGVyc29uIGJlc2NocmVpYnQgbnVuIHdpZSBtYW4gc2ljaCBpbnMgTUcgZWlubG9nZ3QgdW5kIHdhcyBtYW4gZGFiZWkKenUgc2VoZW4gYmVrb21tdC4gTWFuIGFjaHRlIGF1ZiBkaWUgVWViZXJzZXR6dW5nLgoKRHUgdmVybGllcnN0IGRpZSBCZXNpbm51bmcuLi4uICAgKFlvdSBsZWF2ZSB0aGUgdGhvdWdodC95b3VyIHNlbnNlcz8uLi4pCkR1IHRhdWNoc3QgaW4gZWluZW4gU3RydWRlbCBidW50ZXIgRmFyYmVuIGVpbi4gKCBZb3UgdHJhZGUgdmFyaWVnYXRlZCBjb2xvcnMKaW4gYSB3aGlscnBvb2wuLi4pCkVpbiBrbGVpbmVyIGdydWVuZXIgU3RlaW5iZWlzc2VyIGVyc2NoZWludC4KKCBBIGxpdHRsZSBmaXNoIDxsb2FjaD4gYXBwZWFycy4pCi4uLgpEZXIgU3RlaW5iZWlzc2VyIHdhcm50IERpY2g6CiAnV2VoZSwgRHUgZmFlbmdzdCBhbiwgYW5kZXJlIFNwaWVsZXIgYW56dWdyZWlmZW4uJwooV29lIHRvIHlvdSwgYmVnaW5uZXIsIGlmIHlvdQphdHRhY2sgb3RoZXIgcGxheWVycy4uLikKLi4uClZlcndlbmRlIERlaW5lIGFsdGUgc3RlcmJsaWNoZSBIdWVsbGUgLi4uIChZb3Ugc2hlZCB5b3VyIG9sZCBzaGVsbCkKLi4uCkRlciBlaW56aWdlIHNpY2h0YmFyZSBBdXNnYW5nIGZ1ZWhydCBuYWNoIFN1ZWRlbiBhdWYgZGVuIE1hcmt0cGxhdHoKdm9uIFBvcnQgVmFpbi4gCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBzdWVkZW4uCihUaGUgb25seSB2aXNpYmxlIGV4aXQgbGVhZHMgdG8gU3dlZGVuIG9uIHRoZSBtYXJrZXRwbGFjZSBvZiBQb3J0IFZhaW4uKQouLgouLi4KKiogV0hFTiBZT1UgVVNFICdTQ0hMQUZFIEVJTicsIHlvdSdsbCB0aGlzIHRoaXM6ICoqCgpEaWVzZXIgQmVmZWhsIGJlZW5kZXQuLi51c3cuCioqIERvbid0IHdvcnJ5LiBKdXN0IGlnbm9yZSB0aG9zZSB3YXJuaW5ncy4gSSBhc2tlZCBzb21lYm9keS4gSXQgcHJvbGx5CiBoYXMgdG8gZG8gd2l0aCB0aGUgbmF0dXJlIG9mIHRoZSBHZXJtYW4gdGVsZWNvbW0gY2hhcmdlcy4KLi4uCkJlZGVja2VuIHdpciBkZW4gUmVzdC4gIEZhbGxzIGplbWFuZCBlaW5lIFRvdXIgaGFiZW4gbW9lY2h0ZSwgbW9lZ2UgZXIgc2ljaApiZWkgbWlyIG1lbGRlbi4gSWNoIHZlcm1pdHRsZSBnZXJuZSB3ZWl0ZXIgLi4uIDspCgoqTGlsaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbG9lc2NodW5nIChQYWRyZWljLCAyOS4gSnVuIDE5OTgsIDIyOjI1OjE1KToKV2VpbCBNb3Jnb3RoIGVpbmUgUnVlYmVubmFzZSBpc3QgdW5kIGF1cyBhdXMgUHJvdGVzdCB1bmQgYXVzIFNvbGlkYXJpdGFldCB1bmQKc293aWVzbyBoYWJlIGljaCBtaWNoIGJlc2NobG9zc2VuIG1pY2ggenUgbG9lc2NoZW4uLi4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWJ0IFdvaGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhZHJlaWMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBsb2VzY2h1bmcgKFRlZGR5LCAyOS4gSnVuIDE5OTgsIDIyOjI2OjI0KToKfiMhIHJuPVBhZHJlaWMgcnQ9ODk5MTUxOTE1IHJnPXdpdHplCn4jISB0aWQ9ODk5MTUxOTE1CkhleSwgZGFzIGlzdCBuaWNodCB3aXR6aWcuCgpUZWRkeSwgaGF0IG5vY2htYWwgbmFjaCBkZW0gUnVicmlrZW50aXRlbCBzY2hhdWVuIG11ZXNzZW4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBsb2VzY2h1bmcgKFRlZGR5LCAyOS4gSnVuIDE5OTgsIDIyOjUyOjI2KToKfiMhIHJuPVBhZHJlaWMgcnQ9ODk5MTUxOTE1IHJnPXdpdHplCn4jISB0aWQ9ODk5MTUxOTE1Ckthbm4gZGFzIG1hbCBiaXR0ZSB3ZXIgbmFjaCBBbmt1ZW5kaWd1bmcgb2RlciBFbnR3aWNrbHVuZyB2ZXJsZWdlbj8KClRlZGR5LCBob2ZmbnVuZ3N2b2xsIApTQ05SIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2F1bSB6dSBnbGF1YmVuLCBhYmVyIHdhaHIuLi4gKFByYSwgMzAuIEp1biAxOTk4LCAxMDo1NTowNSk6Cn4jISBybj1MaWxpcHV0IHJ0PTg5OTE0NjE3MSByZz13aXR6ZQp+IyEgdGlkPTg5OTE0NjE3MQpBbHNvIGJlaSBBbHRhdmlzdGEgaGF0IGRlciBLZXJsIGRhcyBuaWNodCB1ZWJlcnNldHplbiBsYXNzZW4uIERhIHd1ZXJkZQpkYXMgbmFlbWxpY2ggc28gYXVzc2VoZW46ICAgOi0pCgpZb3UgbG9zZSB0aGUgbWVkaXRhdGlvbi4uLiAKCllvdSBkaXZlIGludG8gYSB2b3J0ZXggb2YgbXVsdGljb2xvcmVkIGNvbG91cnMuIEEgc21hbGwgZ3JlZW4gU3RlaW5iZWlzc2VyCmFwcGVhcnMuIAoKVGhlIFN0ZWluYmVpc3NlciBzYXlzOiAnIHdlbGNvbWVzIGluIHRoZSBtb3JuaW5nLWdyZXkuICcgJyB0aGlzIE11ZCBpcyBpbgpjYXRoZWRyYWwKKEdlcm1hbnkpICcgJyBmb3IgbGFyZ2VyIHByb2JsZW1zIGNhbiB5b3UgdG8gdGhlIE11ZGdvdHQgJyAnIEJvaW5nIHR1cm4gb3IKYWxzbyBlbWFpbAonIHRoZSAnIGFkZHJlc3MgIiBtdWRtZy5tdWQuZGUgIiB3cml0ZS4gJyAKCicgaWYgeW91IG9ubHkgdGltZXMgcmVpbnNjaG51ZWZmZWxuIHdhbnQsIHRoZW4gY2FsbCB5b3UgIiBndWVzdCAiLiAnIAoKVGhlIFN0ZWluYmVpc3NlciB3YXJucyB5b3U6ICcgYmxvd3MsIHlvdSBiZWdpbnMgdG8gYXR0YWNrIG90aGVyIHBsYXllcnMuICcgCgpUaGUgU3RlaW5iZWlzc2VyIGRpc2FwcGVhcnMgYWdhaW4sIGFuZCB5b3UgZ3JvdyB1cCBpbiBhbm90aGVyIHdvcmxkLiAKCkhvdyBjYWxsZWQgaXMgeW91PyBACgpTZWhyIHNjaG9lbiBmaW5kZSBpY2ggZGFiZWkgZGllICdjYXRoZWRyYWwnIGluIFdlc3RmYWxlbiA6LSkKClByYS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRvcCBTZWNyZXQgKEJsb29keWhhcnJ5LCAgMy4gSnVsIDE5OTgsIDA3OjQxOjQxKToKQXVzIGRlbiBUaWVmZW4gZGVyIGdybytBTjgtZW4gQ29tcGFueToKCiAgICAgICAgLyoKICAgICAgICAgICAgVE9QIFNFQ1JFVCBNaWNyb3NvZnQoYykgIENvZGUKICAgICAgICAgICAgUHJvamVjdDogQ2hpY2Fnbyh0bSkKICAgICAgICAgICAgUHJvamVjdGVkIHJlbGVhc2UtZGF0ZTogU3VtbWVyIDE5OTQKICAgICAgICAqLwoKICAgICAgICAjaW5jbHVkZSAid2luMzEuaCIKICAgICAgICAjaW5jbHVkZSAid2luOTUuaCIKICAgICAgICAjaW5jbHVkZSAiZXZlbm1vcmUuaCIKICAgICAgICAjaW5jbHVkZSAib2xkc3R1ZmYuaCIKICAgICAgICAjaW5jbHVkZSAiYmlsbHJ1bHouaCIKICAgICAgICAjZGVmaW5lIElOU1RBTEwgPSBIQVJECgogICAgICAgIGNoYXIgbWFrZV9wcm9nX2xvb2tfYmlnWzE2MDAwMDBdOwoKICAgICAgICB2b2lkIG1haW4oKQogICAgICAgIHsKICAgICAgICAgICAgd2hpbGUoIUNSQVNIRUQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRpc3BsYXlfY29weXJpZ2h0X21lc3NhZ2UoKTsKICAgICAgICAgICAgICAgIGRpc3BsYXlfYmlsbF9ydWxlc19tZXNzYWdlKCk7CiAgICAgICAgICAgICAgICBkb19ub3RoaW5nX2xvb3AoKTsKCiAgICAgICAgICAgICAgICBpZiAoZmlyc3RfdGltZV9pbnN0YWxsYXRpb24pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbWFrZV81MF9tZWdhYnl0ZV9zd2FwZmlsZSgpOwogICAgICAgICAgICAgICAgICAgIGRvX25vdGhpbmdfbG9vcCgpOwogICAgICAgICAgICAgICAgICAgIHRvdGFsbHlfc2NyZXdfdXBfSFBGU19maWxlX3N5c3RlbSgpOwogICAgICAgICAgICAgICAgICAgIHNlYXJjaF9hbmRfZGVzdHJveV90aGVfcmVzdF9vZl9PUy8yKCk7CiAgICAgICAgICAgICAgICAgICAgaGFuZ19zeXN0ZW0oKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB3cml0ZV9zb21ldGhpbmcoYW55dGhpbmcpOwogICAgICAgICAgICAgICAgZGlzcGxheV9jb3B5cmlnaHRfbWVzc2FnZSgpOwogICAgICAgICAgICAgICAgZG9fbm90aGluZ19sb29wKCk7CiAgICAgICAgICAgICAgICBkb19zb21lX3N0dWZmKCk7CgogICAgICAgICAgICAgICAgaWYgKHN0aWxsX25vdF9jcmFzaGVkKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGRpc3BsYXlfY29weXJpZ2h0X21lc3NhZ2UoKTsKICAgICAgICAgICAgICAgICAgICBkb19ub3RoaW5nX2xvb3AoKTsKICAgICAgICAgICAgICAgICAgICBiYXNpY2FsbHlfcnVuX3dpbmRvd3NfMy4xKCk7CiAgICAgICAgICAgICAgICAgICAgZG9fbm90aGluZ19sb29wKCk7CiAgICAgICAgICAgICAgICAgICAgZG9fbm90aGluZ19sb29wKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChkZXRlY3RfY2FjaGUoKSkKICAgICAgICAgICAgICAgIGRpc2FibGVfY2FjaGUoKTsKCiAgICAgICAgICAgIGlmIChmYXN0X2NwdSgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZXRfd2FpdF9zdGF0ZXMobG90cyk7CiAgICAgICAgICAgICAgICBzZXRfbW91c2Uoc3BlZWQsIHZlcnlfc2xvdyk7CiAgICAgICAgICAgICAgICBzZXRfbW91c2UoYWN0aW9uLCBqdW1weSk7CiAgICAgICAgICAgICAgICBzZXRfbW91c2UocmVhY3Rpb24sIHNvbWV0aW1lcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8qIHByaW50ZigiV2VsY29tZSB0byBXaW5kb3dzIDMuMTEiKTsgKi8KICAgICAgICAgICAgLyogcHJpbnRmKCJXZWxjb21lIHRvIFdpbmRvd3MgOTUiKTsgKi8KCiAgICAgICAgICAgIHByaW50ZigiV2VsY29tZSB0byBXaW5kb3dzIDk4Iik7CgogICAgICAgICAgICBpZiAoc3lzdGVtX29rKCkpCiAgICAgICAgICAgICAgICAgY3Jhc2godG9fZG9zX3Byb21wdCk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHN5c3RlbV9tZW1vcnkgPSBvcGVuKCJhOitBRnctc3dwMDAwMS5zd3AiLCBPX0NSRUFURSk7CgogICAgICAgICAgICB3aGlsZShzb21ldGhpbmcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNsZWVwKDUpOwogICAgICAgICAgICAgICAgZ2V0X3VzZXJfaW5wdXQoKTsKICAgICAgICAgICAgICAgIHNsZWVwKDUpOwogICAgICAgICAgICAgICAgYWN0X29uX3VzZXJfaW5wdXQoKTsKICAgICAgICAgICAgICAgIHNsZWVwKDUpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjcmVhdGVfZ2VuZXJhbF9wcm90ZWN0aW9uX2ZhdWx0KCk7CiAgICAgICAgfQoKCmJoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbWFpbC1WaXJ1cyAoQmVuc29ubWFtLCAgNi4gSnVsIDE5OTgsIDE3OjU4OjIwKToKR2VyYWRlIGdlZnVuZGVuOgoKVW5kIGhpZXIgbm9jaCBlaW5lIGJyYW5kZWlsaWdlIHVuZCBob2NoYnJpc2FudGUgVmlydXN3YXJudW5nOgoKICAgIFdlbm4gU2llIGVpbmUgRS1NYWlsIG1pdCBkZW0gVGl0ZWwgJ0JhZCBUaW1lcycgZXJoYWx0ZW4sICAgCiAgICBsb2VzY2hlbiBTaWUgc2llIHNvZm9ydCwgb2huZSBzaWUgenUgbGVzZW4uIEVzIGhhbmRlbHQgc2ljaCAKICAgIGhpZXJiZWkgdW0gZGVuIGJpc2xhbmcgZ2VmZGhybGljaHN0ZW4gRS1NYWlsLVZpcnVzLiBFciAKICAgIHdpcmQgSWhyZSBGZXN0cGxhdHRlIGZvcm1hdGllcmVuLiBVbmQgbmljaHQgbnVyIGRpZSwgc29uZGVybiAKICAgIGFsbGUgRGlza2V0dGVuLCBkaWUgYXVjaCBudXIgaW4gZGVyIE5kaGUgSWhyZXMgUEMncyBsaWVnZW4uIEVyIAogICAgd2lyZCBkYXMgVGhlcm1vc3RhdCBJaHJlcyBLdWVobHNjaHJhbmtzIHNvIGVpbnN0ZWxsZW4sIGRhc3MgCiAgICBJaHJlIEVpc3ZvcnJhZXRlIHNjaG1lbHplbiB1bmQgZGllIE1pbGNoIHNhdWVyIHdpcmQuIEVyIHdpcmQgZGllCiAgICBNYWduZXRzdHJlaWZlbiBhdWYgSWhyZW4gS3JlZGl0a2FydGVuIGVudG1hZ25ldGlzaWVyZW4sIGRpZQogICAgR2VoZWltbnVtbWVyIElocmVyIEVDLUthcnRlIHVtcHJvZ3JhbW1pZXJlbiwgZGllIFNwdXJsYWdlIAogICAgSWhyZXMgVmlkZW9yZWNvcmRlcnMgdmVyc3RlbGxlbiB1bmQgU3VicmF1bXNjaHdpbmd1bmdlbiAKICAgIGRhenUgdmVyd2VuZGVuLCBqZWRlIENELCBkaWUgU2llIGFuaHZyZW4sIHp1IHplcmtyYXR6ZW4uIEVyIAogICAgd2lyZCBJaHJlbSBFeC1GcmV1bmQvZGVyIEV4LUZyZXVuZGluIElocmUgbmV1ZSBUZWxlZm9uLQogICAgbnVtbWVyIG1pdHRlaWxlbi4gRXIgd2lyZCBGcm9zdHNjaHV0em1pdHRlbCBpbiBJaHIgQXF1YXJpdW0gCiAgICBzY2h1ZXR0ZW4uIEVyIHdpcmQgYWxsIElociBCaWVyIGF1c3RyaW5rZW4gdW5kIElocmUgc2NobXV0emlnZW4gCiAgICBTb2NrZW4gYXVmIGRlbSBXb2huemltbWVydGlzY2ggcGxhemllcmVuLCB3ZW5uIFNpZSBCZXN1Y2ggCiAgICBiZWtvbW1lbi4gRXIgd2lyZCBJaHJlIEF1dG9zY2hsfHNzZWwgdmVyc3RlY2tlbiwgd2VubiBTaWUgCiAgICB2ZXJzY2hsYWZlbiBoYWJlbiB1bmQgSWhyIEF1dG9yYWRpbyBzdHZyZW4sIGRhbWl0IFNpZSBpbSAKICAgIFN0YXUgbnVyIHN0YXRpc2NoZXMgUmF1c2NoZW4gaHZyZW4uIEVyIHdpcmQgSWhyIFNoYW1wb28gbWl0IAogICAgWmFobnBhc3RhIHVuZCBJaHJlIFphaG5wYXN0YSBtaXQgU2NodWhjcmVtZSB2ZXJ0YXVzY2hlbiwgCiAgICB3ZGhyZW5kIGVyIHNpY2ggbWl0IElocmVtIEZyZXVuZC9JaHJlciBGcmV1bmRpbiBoaW50ZXIgSWhyZW0gCiAgICBSfGNrZW4gdHJpZmZ0IHVuZCBkaWUgZ2VtZWluc2FtZSBOYWNodCBpbSBIb3RlbCBhdWYgSWhyZSAKICAgIEtyZWRpdGthcnRlIGJ1Y2h0LiAnQmFkIFRpbWVzJyB2ZXJ1cnNhY2h0IGp1Y2tlbmRlIEhhdXRydnR1bmdlbi4gCiAgICBFciB3aXJkIGRlbiBUb2lsZXR0ZW5kZWNrZWwgb2JlbiBsYXNzZW4gdW5kIGRlbiBGdm4gZ2VmZGhybGljaCAKICAgIG5haCBhbiBlaW5lIGdlZnxsbHRlIEJhZGV3YW5uZSBwbGF6aWVyZW4uIEVyIGlzdCBoaW50ZXJoZGx0aWcgCiAgICB1bmQgc3VidGlsLiBFciBpc3QgZ2VmYWVocmxpY2ggdW5kIHNjaHJlY2tsaWNoLiBFciBpc3QgYXVzc2VyZGVtIAogICAgbGVpY2h0IHZpb2xldHQuIERpZXMgc2luZCBudXIgZWluaWdlIGRlciBBdXN3aXJrdW5nZW4uIAoKICAgIFNlaWVuIFNpZSB2b3JzaWNodGlnLiBTZWllbiBTaWUgc2Vociwgc2VociB2b3JzaWNodGlnLgoKIEJyfHNlCgpQLlMuIFNvcnJ5IHdlZ2VuIGRlciBVbWxhdXRlLCBhYmVyIGljaCBoYWIga2VpbmUgTHVzdCwgZGVuIGdhbnplbiBLcmFtIG5vY2ggenUKZWRpdGllcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS3JhbmtlbmhhdXMgKEFyYXRoLCAgNy4gSnVsIDE5OTgsIDIyOjM1OjM4KToKIkhpZXIgaXN0IGRhcyBLcmVpc2tyYW5rZW5oYXVzLiIKIkVudHNjaHVsZGlndW5nLCBpY2ggYmluIGZhbHNjaCB2ZXJidW5kZW4uIgoiRGEgbXVlc3NlbiBTaWUgc2Nob24gaGVya29tbWVuIHVuZCBlcyBkZW0gQXJ6dCB6ZWlnZW4uLi4iIAoKQXJhdGgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCip3YWVseiAoQXJhdGgsICA3LiBKdWwgMTk5OCwgMjI6MzY6NTYpOgpLb21tZW4gendlaSBaZWNoa3VtcGFuZSBpbiBkZXIgTmFjaHQgYXVzIGRlciBLbmVpcGUsIGRhcyB2aWVsZSBCaWVyIGRydWVja3QuCkZyYWd0IE90dG86CiJXYXJ1bSBwaW5rZWxlIGljaCBzbyBsYXV0IHVuZCBkdSBzbyBsZWlzZT8iCldpbGxpOiAiRHUgcGlua2Vsc3QgYW4gbWVpbiBBdXRvLCB1bmQgaWNoIGFuIGRlaW5lbiBNYW50ZWwuLi4iIAoKQXJhdGgsIGtpY2hlcm5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmlsbHkgZGllIHgtdGUuLi4gKEFyYXRoLCAgNy4gSnVsIDE5OTgsIDIyOjM4OjQwKToKRGFzIGFtZXJpa2FuaXNjaGUgUG9zdCBoYXQgZGllIFZlcmRpZW5zdGUgQmlsbCBHYXRlcyBnZXd1ZXJkaWd0LCBzZWluCktvbnRlcmZlaQp6aWVydCBlaW5lIEJyaWVmbWFya2UuIEltIHRhZWdsaWNoZW4gQmV0cmllYiB6ZWlndGUgc2ljaCBqZWRvY2guIGRhc3MgZGllc2UKQnJpZWZtYXJrZSBuaWNodCBhdWYgZGVuIEJyaWVmZW4gaGllbHQuIERpZSBlaW5nZXNldHp0ZQpVbnRlcnN1Y2h1bmdza29tbWlzc2lvbgprYW0gbmFjaCB3ZW5pZ2VuIE1vbmF0ZW4genUgZm9sZ2VuZGVtIEVyZ2VibmlzOgoKICAxLkRpZSBCcmllZm1hcmtlIGlzdCB2b2VsbGlnIGtvcnJla3QuIAogIDIuRGVyIEtsZWJlciBpc3QgZWJlbmZhbGxzIG5pY2h0IHp1IGJlYW5zdGFuZGVuLiAKICAzLkRpZSBLdW5kZW4gc3B1Y2tlbiBudXIgYXVmIGRpZSBmYWxzY2hlIFNlaXRlLi4uIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2luZGVybXVuZCB0dXQgV2FocmhlaXQga3VuZCAoQXJhdGgsICA3LiBKdWwgMTk5OCwgMjM6MDE6MTMpOgpad2VpIEJhYnl3YWdlbiBzdGVoZW4gaW0gUGFyayBuZWJlbmVpbmFuZGVyLiBTYWd0IGRhcyBrbGVpbmUgTWRkY2hlbiBpbiBkZW0KZWluZW46ICJCaXN0IER1J24gSnVuZ2Ugb2RlciduIE1kZGNoZW4/IgpTYWd0IGRhcyBhbmRlcmUgS2luZDogIldlaV8gbmljaC4iClNhZ3QgZGFzIGtsZWluZSBNZGRjaGVuOiAiSGViJyBkb2NoIG1hbCBkaWUgRGVja2UgaG9jaC4uLiBXZWl0ZXIsIGljaCBzZWggbm9jaApuaXguLi5BaGEsIGR1IGJpc3QgZWluIEp1bmdlISIKRnJhZ3QgZGVyIGtsZWluZSBKdW5nZTogIlVuZCB3b3JhbiBzaWVoc3QgRHUgZGFzPyIKQW50d29ydGV0IGRhcyBrbGVpbmUgTWRkY2hlbjogIkR1IGhhc3QgaGVsbGJsYXVlIFN0cmFtcGVsaG9zZW4gYW4uLi4iIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pdCBrcmVpc2NoZW5kZW4gUmVpZmVuIGtvbW10IGRpZSBBbWJ1bGFueiB2b3IgZGVtIEhhdXMgenVtIHN0ZWhlbiwgZGVyIChBcmF0aCwgIDcuIEp1bCAxOTk4LCAyMzowMzo0OCk6Ck5vdGFyenQgaGVjaGVsdCB6dXIgVHxyOiAiV29obnQgaGllciBkaWUgRnJhdSwgYmVpIGRlciBkZXIgVmlicmF0b3Iga2xlbW10PyIKIkphLCBkYSBzaW5kIFNpZSBoaWVyIHJpY2h0aWcsIiBhbnR3b3J0ZXQgZGVyIEd2dHRlcmdhdHRlLCAiZGFzIGlzdCBtZWluZQpGcmF1LiIKIkRhcyB3aXJkIG5pY2h0IGVpbmZhY2ggd2VyZGVuLCIgc2FndCBkZXIgRG9rdG9yLiAiRGllIERpbmdlciBzaW5kIHNjaHdlcgp3aWVkZXIKcmF1c3p1YmVrb21tZW4hIgoiVmllbGxlaWNodCBrdm5uZW4gU2llIGRhcyBEaW5nIHdlbmlnc3RlbnMgYXVzc2NoYWx0ZW4gLSBlcyBzdHZydCBuZG1saWNoIGRhcwpGZXJzZWhiaWxkLi4uIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1TL0p1cmFzc2ljUGFyayAoU29uZ29rdSwgIDguIEp1bCAxOTk4LCAxMTowNjo0Nik6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIE1TIHVuZCBKdXJhc3NpYyBQYXJrPwpEYXMgZWluZSBpc3QgZWluIEhpZ2hUZWNoLVRoZW1lbnBvYXJrIG1pdCBwcmFlaGlzdG9yaXNjaGVuIEluZm9ybWF0aW9uZW4gdW5kCkRpbm9zYXVyaWVybi4KCkRhcyBhbmRlcmUgaXN0IGVpbiBGaWxtIHZvbiBTcGllbGJlcmcuCgoKKGhhYmUgaWNoIGdlcmFkZSBhbHMgV2l0eiBkZXMgVGFnZXMgZ2VtYWlsdCBiZWtvbW1lbikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTVMvSnVyYXNzaWNQYXJrIChHYW5kbywgIDguIEp1bCAxOTk4LCAxMTowODoxNik6Cn4jISBybj1Tb25nb2t1IHJ0PTg5OTg4ODgwNiByZz13aXR6ZQp+IyEgdGlkPTg5OTg4ODgwNgpjb29sLCBkYXNzIG1hbiBkZW4gd2l0eiBkZXMgdGFnZXMgc2Nob24gYW0gdm9ybWl0dGFnIHdlaXNzLiAKd29oZXIgd2Vpc3MgbWFuLCBkYXNzIGhldXRlIGFiZW5kIG5pY2ggbiBiZXNzZXJlciBrb21tdD8KCkdhbmRvIC0+IGthbm4gc2ljaCBkYXMgYmVpbyBkZW0gd2l0eiBzY2hvbiB2b3JzdGVsbGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWl0IGtyZWlzY2hlbmRlbiBSZWlmZW4ga29tbXQgZGllIEFtYnVsYW56IHZvciBkZW0gSGF1cyB6dW0gc3RlaGVuLCBkZXIgKElzaXMsICA4LiBKdWwgMTk5OCwgMTM6NTU6MDApOgp+IyEgcm49QXJhdGggcnQ9ODk5ODQ1NDI4IHJnPXdpdHplCn4jISB0aWQ9ODk5ODQ1NDI4CmVpZ2VudGxpY2gga2VpbiB3aXR6Li5hYmVyIGljaCBoYWIgbmV1bGljaCBuZW4gQnJpY2h0IHZvbiBkZXIgVXJvbG9naWUKZ2VzZWhlbiwgdW5kIGRhIHdhciBlaW4gTWFubiBkZXIgaGF0IHNpY2ggbmUgMWwgQ29sYS1GbGFzY2hlIGluIGRlbiBIaW50ZXJuCmdlc2Nob2Jlbi4uLnVuZCBkaWUgbmljaCBtZXIgcmF1cyBiZWtvbW1lbi4uLkRhcyB3YXIgcmljaHRpZyBla2VsaWcuLi4udWFoLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBNaXQga3JlaXNjaGVuZGVuIFJlaWZlbiBrb21tdCBkaWUgQW1idWxhbnogdm9yIGRlbSBIYXVzIHp1bSBzdGVoZW4sIGRlciAoU2Nob2tvLCAgOC4gSnVsIDE5OTgsIDEzOjU2OjU0KToKfiMhIHJuPUlzaXMgcnQ9ODk5ODk4OTAwIHJnPXdpdHplCn4jISB0aWQ9ODk5ODQ1NDI4Ck9vb2NoIGlzIGphIG5vY2ggaGFybWxvcyAuLi4uCgpTY2hva28sIGhhdCBzY2hvbiBicmVubmVuZGUgR2x1ZWhiaXJuZW4gdW5kIEtha3RlZW4gaW4gZGl2ZXJzZW4KS29lcnBlcm9lZmZudW5nZW4gZ2VzZWhlbi4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE1pdCBrcmVpc2NoZW5kZW4gUmVpZmVuIGtvbW10IGRpZSBBbWJ1bGFueiB2b3IgZGVtIEhhdXMgenVtIHN0ZWhlbiwgZGVyIChTY2hva28sICA4LiBKdWwgMTk5OCwgMTQ6MDA6MjApOgp+IyEgcm49U29uZ29rdSBydD04OTk4OTkwODUgcmc9d2l0emUKfiMhIHRpZD04OTk4NDU0MjgKSG1tIGRhIGZhZWxsdCBtaXIgZWluLCBkZXIgQmVzdGUgd2FybiBUeXAsIGRlciBzaWNoIHp3ZWNrcyAiU3RhbmRmZXN0aWdrZWl0IgpuZSBSb2hybXVmZmUgdWViZXIgc2VpbiBiZXN0ZXMgU3R1ZWNrIHpvZyAodm9uIHdlZ2VuIEJsdXRzdGF1IHVuZCBzbykuIERhcwpEaW5nIG11c3N0ZSBuYWNoaGVyIG1pdCBuZXIgRmxleCBhYmdlc2FlZ3Qgd2VyZGVuLi4uLgoKU2Nob2tvIChzYXNzIHppZW1saWNoIHZlcmtuaWZmZW4gZGEsIGFscyBlciBkYXMgc2FoLi4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogTWl0IGtyZWlzY2hlbmRlbiBSZWlmZW4ga29tbXQgZGllIEFtYnVsYW56IHZvciBkZW0gSGF1cyB6dW0gc3RlaGVuLCBkZXIgKElzaXMsICA4LiBKdWwgMTk5OCwgMTQ6MDY6MTEpOgp+IyEgcm49U2Nob2tvIHJ0PTg5OTg5OTMyMCByZz13aXR6ZQp+IyEgdGlkPTg5OTg0NTQyOApXaWUgZ2Vob2VydCB6dXIgR3J1bmRhdXNiaWxkdW5nLi4uPz8/IGtha3RlZW4gaW0gQS4uLi4genUgaGFiZW4/Pz8/PwoKTWFubm9tYW5uLi4uQnVuZGlzIHNpbiBlY2h0IGhhcnQgaW0gbmVobWVuLi4uLjstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2F0ZXMmQ28uIChBbmFjcmlvbiwgIDguIEp1bCAxOTk4LCAxNDozNzo0MSk6CgpBbHNvIGltIEdydW5kZSBnZW5vbW1lbiBpc3QgZXMgZWluZSB3YWhyZSBHZXNjaGljaHRlIC4uLi4KCkIuIEdhdGVzIGF1ZiBkZXIgbGV0enRlbiBDb21EZXg6CiAnV2VubiBHZW5lcmFsIE1vdG9ycyBtaXQgZGVyIFRlY2hub2xvZ2llIHNvIG1pdGdlaGFsdGVuIGhhZXR0ZSB3aWUgZGllCkNvbXB1dGVyYnJhbmNoZSwgZGFubiB3dWVyZGVuIHdpciBBdXRvcyBmYWhyZW4sIGRpZSAyNSQga29zdGVuIHVuZCAxMDAwIE1laWxlbgpwcm8gR2FsbG9uZSBzcHJpdCB2ZXJicmF1Y2hlbiAoMyw5NGwpIC4uLgoKRGllIEFudHdvcnQgdm9uIEdNIGthbSBpbiBlaW5lciBQcmVzc2VlcmtsYWVydW5nOgogJyBXZW5uIEdNZWluZSBUZWNobm9sb2dpZSB3aWUgTVMgZW50d2lja2VsdCBoYWV0dGUsIGRhbm4gd3VlcmRlbiBoZXV0ZSBBdXRvcwptaXQgZm9sZ2VuZGVuIGVpZ2Vuc2NoYWZ0ZW4gZmFocmVuOgogMS4gSWhyIEF1dG8gd3VlcmRlIG9obmUgZXJrZW5uYmFyZW4gR3J1bmQgendlaW1hbCBhbSBUYWcgZWluZW4gVW5mYWxsIGhhYmVuLgoyLiBKZWRlc01hbCwgd2VubiBkaWUgTGluaWVuIGF1ZiBkZXIgU3RyYXNzZSBudWUgZ2V6ZWljaG5ldCB3ZXJkZW4gd3VlcmRlbiwKbXVlc3N0ZSBtYW4gZWluIG5ldWVzIEF1dG8ga2F1ZmVuLgozLiBHZWxlZ2VudGxpY2ggd3VlcmRlIGVpbiBBdHVvIGF1ZiBkZXIgQXV0b2JhaG4gZWluZmFoYyBhdXNnZWhlbiB1bmQgbWFuCnd1ZXJkZSBkYXMgYWt6ZXB0aWVyZW4sIG5ldSBzdGFydGVuIHVuZCB3ZWl0ZXJmYWhyZW4uCjQuIFdlbm4gbWFuIGJlc3RpbW10ZSBNYW5vZXZlciB3aWUgei5CLiBlaW5lIExpbmtza3VydmUgZHVyY2hmdWVocnQsIHd1ZXJkZQpkYXMgQXR1byBlaW5mYWNoIGF1c2dlaGVuIHVuZCBzaWNoIHdlaWdlcm4sIHdpZWRlciB6dSBzdGFydGVuLCBiaXMgbWFuIGRlbgpNb3RvciBuZXUgaW5zdGFsbGllcnQuCjUuIE1hbiBrb2VubnRlIG51ciBhbGxlaW5lIGltIEF1dG8gc2l0emVuLCBlcyBzZWkgZGVuIG1hbiBrYXVmdGUgJ0Nhcjk1JyBvZGVyCidDYXJOVCcuIEFiZXIgZGFubiBtdWVzc3RlIG1hbiBqZWRlbiBTaXR6IGVpbnplbG4gYmV6YWhsZW4uCjYuIE1hY2ludG9zaCB3dWVyZGUgQXR1b3MgaGVyc3RlbGxlbiwgZGllIG1pdCBTb25uZW5lbmVyZ2llIGZhaHJlbiwKenV2ZXJsYWVzc2lnIGxhdWZlbiwgNSBtYWwgc28gc2NobmVsbCB1bmQgendlaW1hbCBzbyBsZWljaHQgenUgZmFocmVuIHNpbmQsCmFiZXIgbnVyIGF1ZiA1JSBkZXIgU3RyYXNzZW4gZmFocmVuIGtvZW5uZW4uCjcuRGllIFJ1ZWNrbGljaHRrb250cm9sbGxldWNodGUgdW5kIGRpZSBXYXJubGFtcGVuIGZ1ZXIgQmF0dGVyaWUsClRlbXBlcmF0dXJ3dWVyZGVuIGR1cmNoIGVpbmUgJ0dlbmVyZWxsZXItQXV0by1GZWhsZXInLVdhcm5sYW1wZSBlcnNldHp0Lgo4LiBOZXVlIFNpdHplIHd1ZXJkZW4gZXJmb3JkZXJtLCBkYXNzIGFsbGUgZGllIHNlbGJlIEdlc2Flc3Nncm9lc3NlIGhhYmVuLgo5LkRhcyBBaXJiYWdzeXN0ZW0gd3VlcmRlIGZyYWdlbiAnU2luZCBzaWUgc2ljaGVyID8nLCBiZXZvciBlcyBhdXNsb2VzdC4uLgoxMC4gR2VsZWdlbnRsaWNoIHd1ZXJkZSBzaWUgZGFzIEF1dG8gb2huZSBlcmtlbm5iYXJlbiBHcnVuZCBhdXNzcGVycmVuLiBTaWUKa29lbm50ZW4gbnVyIG1pdCBlaW5lbSBUcmljayB3aWVkZXIgYXVmc2NobGllc3NlbiB1bmQgendhciBtdWVzc3RlIG1hbgpnbGVpY2h6ZWl0aWcgZGVuIFR1ZXJncmlmZiB6aWVoZW4sIGRlbiBTY2hsdWVzc2VsIGRyZWhlbiB1bmQgYW4gZGllClJhZGlvYW50ZW5uZSBmYXNzZW4uCjExLiBHZW5lcmFsIE1vdG9ycyB3dWVyZGUgc2llIHp3aW5nZW4sIG1pdCBpaHJlbSBBdXRvIGVpbmVuIERlbHV4ZS1LYXJ0ZW5zYXR6CmRlciBGaXJtYSBSYW5kIE1jTmFsbHkgKFRvY2h0ZXJmaXJtYSkgbWl0enVrYXVmZW4sIGF1Y2ggd2VubiBzaWUgaWhuIG5pY2h0CmJyYWV1Y2h0ZW4gb2RlciBtb2VnZW4gd3VlcmRlbi4gV2VubiBzaWUgZGllc2VzIEFuZ2Vib3J0IG5pY2h0IHdhaHJuYWVobWVuLAp3dWVyZGUgZGFzIEF1dG8gc29mb3J0IDUwJSBsYW5nc2FtZXIgd2VyZGVuIChvZGVyIHNjaGxpbW1lcikuIERhcnVlYmVyaGluYXVzCnd1ZXJkZSBHTSBaaWVsIHZvbiBVbnRlcnN1Y2h1bmdlbiBkZXIgSnVzdGl6LgoxMi4gSW1tZXIgZGFubiwgd2VuIGVpbiBuZXVlcyBBdXRvIHZvcmdlc3RlbGx0IHd1ZXJkZSwgbXVlc3N0ZSBtYW4gQXV0b2ZhaHJlbgpuZXUgbGVybmVuLCB3ZWlsIGtlaW5lciBkZXIgSGViZWwgZnVua3Rpb25pZXJlbiB3dWVyZGUsIHdpZSB6dXZvci4KMTMuIE1hbiBtdWVzc3RlIGRlbiAnU3RhcnQnLUtub3BmIGRydWVja2VuIG0gYXVzenVzY2hhbHRlbi4gJwoKQW5hYyogLSB3YWVsenQgc2ljaCBpbW1lciBub2NoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmVzZXQgKEFuYWtpbiwgIDguIEp1bCAxOTk4LCAxNzowMjowNSk6CgogICBROiBXaHkgZG8gUENzIGhhdmUgYSByZXNldCBidXR0b24gb24gdGhlIGZyb250PwogICBBOiBCZWNhc3VlIHRoZXkgYXJlIGV4cGVjdGVkIHRvIHJ1biBNaWNyb3NvZnQgb3BlcmF0aW5nIHN5c3RlbXMKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgZXR3YXMgR3JhbW1hdGlrIChEaWVkZXIsICA5LiBKdWwgMTk5OCwgMTg6MTc6MjcpOgpXYXMgZnVlciBlaW5lIFplaXRmb3JtIGlzdAoiSWNoIGhhZXR0ZSBuaWNodCBnZWJvcmVuIHdlcmRlbiBzb2xsZW4iID8KCkFudHdvcnQ6IFByYWVzZXJ2YXRpdiBkZWZla3QKCkRpZWRlciwga2ljaGVybmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpZbyAoSmFzcGVyLCAxMC4gSnVsIDE5OTgsIDE3OjMyOjI5KToKRWluIE1hbm4ga29tbXQgaW4gZGllIEhvZWxsZSB1bmQgd2lyZCB2b20gVGV1ZmVsIGJlZ3J1ZXNzdC4KRGVyIFRldWZlbCBmdWVocnQgaWhuIGluIGVpbmVuIEZsdXIgbWl0IDMgVHVlcmVuIHVuZCBlcnphZWhsdApkZW0gTWFubiwgZGFzcyBlciBkZW4gUmVzdCBkZXIgRXdpZ2tlaXQgaW4gZWluZW0gZGVyIGRyZWkKZGFoaW50ZXJsaWVnZW5kZW4gUmFldW1lbiB2ZXJicmluZ2VuIG11c3MuCkRlciBUZXVmZWwgb2VmZm5ldCBhbHNvIGRpZSBlcnN0ZSBUdWVyLCB1bmQgZGVyIE1hbm4gc2llaHQsCmRhc3MgaW4gZGVtIFJhdW0gZGFoaW50ZXIgYWxsZSBMZXV0ZSBhdWYgSG9semJvZGVuIGF1ZiBkZW0KS29wZiBzdGVoZW4sIGVyIGRlbmt0IHNpY2gsIGRhc3MgZXIgbmljaHQgZGVuIFJlc3QgZGVyIApFd2lna2VpdCBpbSBrb3Bmc3RhbmQgYXVmIEhvbHpib2RlbiB2ZXJicmluZ2VuIHdpbGwgdW5kIGxhZXNzdCBzaWNoCmRpZSB6d2VpdGUgVHVlciBvZWZmbmVuLiBEYWhpbnRlciBzaWVodCBlciBudW4gd2llZGVyIGFsbGUKYXVmIGRlbSBrb3BmIHN0ZWhlbiB1bmQgendhciBhdWYgYmV0b25ib2Rlbi4gbmFqYSBkZW5rdCBlciBzaWNoCmF1ZiBkZW0ga29wZiBiaXMgaW4gYWxsZSBld2lna2VpdCB6dSBzdGVoZW4gaXN0IHNjaG9uIGhhcnQgZ2VudWcsIAphYmVyIGRhcyBkYW5uIGF1Y2ggbm9jaCBhdWYgYmV0b25ib2RlbSB6dSBtYWNoZW4sIGlzdCB3aXJrbGljaCAKenUgaGFydC4gRXIgbGFlc3N0IHNpY2ggYWxzbywgd2llIG1hbiBzY2hvbiB2ZXJtdXRlbiBrYW5uLCBkZW5uCmRyaXR0ZW4gcmF1bSB6ZWlnZW4uIEltIGRyaXR0ZW4gcmF1bSBrbmllbiBhbGxlIExldXRlIGluIGh1bmRla2Fja2UKdW5kIHRyaW5rZW4ga2FmZmVlLiBuYWphIGRlbmt0IHNpY2ggZGVyIG1hbm4sIGh1bmRla2Fja2Ugc3Rpbmt0IHp3YXIKZXJiYWVybWxpY2gsIGFiZXIgd2VuaWdzdGVucyBrYW5uIG1hbiBrYWZmZWUgdHJpbmtlbiB1bmQgbXVzcyBuZXQKYXVmIGRlbSBrb3BmIHN0ZWhlbi4gZXIgd2FlaGx0IGFsc28gZGVuIGRyaXR0ZW4gcmF1bSwga25pZXQgc2ljaCBoaW4KdW5kIHRyaW5rdCBhdWNoIGthZmZlZSwgZGVyIHRldWZlbCBnZWh0LgpXZW5pZ2UgTWludXRlbiBzcGFldGVyIGtvbW10IGRlciB0ZXVmZWwgenVydWVjayB1bmQgYnJ1ZWxsdAonS2FmZmVlcGF1c2UgaXN0IHZvcmJlaSwgenVydWVjayBhdWYgZXVyZSBrb2VwZmUnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqaHVlc3RlbCogKERpZWRlciwgMTAuIEp1bCAxOTk4LCAxODo0Njo1Mik6CldhcyBoYWJlbiBlaW4gU2Nod3VsZXIgdW5kIGVpbiBQYXBhZ2VpIGdlbWVpbnNhbT8KCkFudHdvcnQ6IE5lIHZlcnNjaCoqKioqKiBTdGFuZ2UuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJsb25kaWUgKFphcm5peWEsIDE0LiBKdWwgMTk5OCwgMTc6NTA6MTEpOgp3aWUgbmVubnQgbWFuIGVpbmUgQmxvbmRpbmUgb2huZSBCcnVlc3RlPwoKTGVvbmFyZG8gZGkgQ2FwcmlvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzY2hvdHRlbiAoWmFybml5YSwgMTQuIEp1bCAxOTk4LCAxNzo1Mzo0Nik6CndhcnVtIHRyYWdlbiBkaWUgU2Nob3R0ZW4gS2lsdHNgPwoKRGFtaXQgZGllIFNjaGFmZSBkZW4gUmVpc3N2ZXJzY2hsdXNzIG5pY2h0IGhvZXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhlbHBzeXN0ZW0gKFphcm5peWEsIDE0LiBKdWwgMTk5OCwgMTc6NTU6MDcpOgpXYXMgc2Nod2ltbXQgaW0gV2Fzc2VyIHVuZCBzY2hyZWl0ICJGMSI/CgoiRWluIEluZm9ybWF0aWtlciwgZGVyIG5pY2h0IHNjaHdpbW1lbiBrYW5uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGlsYmVydCBab25lIChTbWFydGUsIDE1LiBKdWwgMTk5OCwgMjM6NTg6NTcpOgpJaHIgc29sbHRldCBtYWwgaW4gZGllIERpbGJlcnQgWm9uZSByZWluc2NoYXVlbi4KRGVyIGNvbWljIGlzdCB1ZWJlciBkaWUgdHlwaXNjaGVuIGVpZ2VuaGVpdGVuIHZvbiBlbmdpbmVlcnMgdW5kIGRlcmVuIEJ1ZXJvCnZlcmhhbHRlbi4KTWVpbiBsaWVibGluZ3NnZXNjaGljaHRlIHNpbmQgaW0gbW9tZW50IGRpZSBsaXN0cyBvZiB0aGUgZGF5OgpzcGV6aWVsbCBkaWUgdWViZXIgZXNzZW4gYW0gQXJiZWl0c3BsYXR6IDogRGllIEFybXkgaGF0IG51a2xlYXIgc2ljaGVyZQpDb21wdXRlciBnZWJhdXQgYWJlciBzaWUgc2luZCBuaWNodCBnZWZlaXQgZ2VnZW4gS2FmZmVlIGluIGRlciBUYXN0YXR1cgotLT5Db2ZmZWVCb21iIHRoZSBBcm15CgpuYWphIGJpcyBkZW4gCkVpbiBrbGVpbmVyIGxhY2hlbmRlciBTbWFydGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWltIHN0b2ViZXJuIGVudGRlY2t0IChNb3Jnb3RoLCAyMS4gSnVsIDE5OTgsIDEzOjMwOjUxKToKUGljYXJkOiBNci4gV29yZiwgZmlyZSBhdCB3aWxsIQpSaWtlcjogQVJHSAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmFka2FlcHBjaGVuIHVuZCBkZXIgYm9lc2UgR29sZiAuLi4gKEtvYmF5YXNoaSwgMjEuIEp1bCAxOTk4LCAxNDozMDo1NCk6CkVzIHdhciBlaW5tYWwgaW0gZ3Jvc3NlbiwgZHVua2xlbiBTY2hpbGRlcndhbGQgZWluIHZlcnN0ZWNrdGVzIFd1cnplbGhvbHouICAKRG9ydCB3b2hudGUgaW4gZWluZXIgYWx0ZW4gUm9zdGxhdWJlIGRhcyBrbGVpbmUgUmFka2FlcHBjaGVuLgpSYWRrYWVwcGNoZW4gIHd1bmRlcnRlIHNpY2gsIGRlbm4gc2llIGhhdHRlIHNlaXQgdWViZXIgc2VjaHMgU3R1bmRlbiBlaW4gcGFhciAKU2Nod2VpbnN3dWVyc3QnbCBhdWYgZGVtIFJvc3QgbGllZ2VuLCBkaWUgaW1tZXIgbm9jaCBuaWNodCBmZXJ0aWcgd2FyZW46CgpSOiAiTWVuc2NoLCBkYXMgaXN0IGFiZXIgZWluIGt1ZWhsZXIgR3JpbGwuIgoKUGxvZXR6bGljaCBrbG9wZnRlIGVzIGFuIGRlciBUdWVyLiBbS2xvcGYgS2xvcGZdClI6ICJXZXIgaXN0IGRhID8iCks6ICJJY2ggYmluIGVzLCBLYXRhIEx5c2F0b3IuIgpSOiAiT2gsIEthdGEgTHlzYXRvci4iCks6ICJUYWNoby4gUmFka2FlcHBjaGVuLCBkYXNzIGlzdCBIZWl0enVuZywgbWVpbiBIeXVuZGFpLiIKCltXaW5zZWwgd2luc2VsIHdpbnNlbF0KCks6ICJTaXR6LCBIZWl0enVuZyAhIgpSOiAiV2FzIGZ1ZWhydCBkaWNoIHp1IG1pciwgTHlzYXRvciA/IEthdGEsIHdhcyBmdWVocnQgZGljaCB6dSBtaXIsIEthdGEgCiAgICBMeXNhdG9yID8iCks6ICJOdW4sIGljaCB3YXIgaGV1dGUgZnJ1ZWggc2Nob24gYXVmIGRlbSBVZWJlcnJvbGxodWVnZWwgdW5kIGdlbm9zcyBkZW4KICAgIHd1bmRlcnNjaG9lbmVuIEJsaWNrLCBkZXIgc2ljaCB1ZWJlciBkYXMgVGFsIGJvdC4gRGEgaG9lcmUgaWNoIGV0d2FzCiAgICBhdWZoZXVsZW4uIFN0ZWxsJyBkaXIgdm9yLCBlcyB3YXJlbiBUb3lvdGVuLiIKUjogIlRqYSwgbml4IGlzJyB1bm1vZWdsaWNoLiIKSzogIlp1ZXJzdCBkYWNodGUgaWNoICdTY2huZWxsIGZvcnQsIGRpZSB0dW4gd2FzLicuIEFiZXIgZGFubiB3YXIgbWlyCiAgICBrbGFyLCBkZXIgYm9lc2UgR29sZiB3YXIgd2llZGVyIGltIFdhbGQuIFBhc3MnIGFsc28gYXVmLCBSYWRrYWVwcGNoZW4sCiAgICBlciBoYXQgc2Nob24gendlaSBBYnNjaGxlcHBzZWlsZSBnZXJpc3Nlbi4iClI6ICJEYW5rZSBmdWVyIGRlbiBUaXBwby4iCks6ICJHdXQuIERhbm4gd2VyZGUgaWNoIG1pY2ggamV0enQgd2llZGVyIGlucyBHZWxhZW5kZSB3YWdlbi4iCgpad2VpIFRhZ2Ugc3BhZXRlciBoYXR0ZSBSYWRrYWVwcGNoZW4gZmV0dGlnZSBIYWFyZSwgZGFzIGxhZyBkYXJhbiwgZGFzcyAgCnNpZSBpbW1lciBzZWhyIG5haGUgYW0gT2VsIHN0YW5kLiBTaWUgd29sbHRlIHNpY2ggZWgnIG1hbCB3aWVkZXIgcmljaHRpZyAgCmF1ZmZyaXNpZXJlbiBsYXNzZW4gdW5kIG1hY2h0ZSBlaW5lbiBUZXJtaW4gaW4gZGVyIFdhc2Noc3RyYXNzZS4KClI6ICJVbmQgZGFubiBsYXNzJyBpY2ggbWlyIGF1Y2ggZGllIG9iZW4gbGllZ2VuZGUgTG9ja2VuIHdlbGxlbi4iCgouLi5tYWNodGUgc2ljaCBhdWYgZGVuIFdlZyB1bmQga2FtIGt1cnogZGFyYXVmIGFuIGRpZSAgClp5bGluZGVya29wZmxpY2h0dW5nLiBTaWUgaG9lcnRlIGVpbiBHZXJhZXVzY2g6CgpIOiAiS2lja2VyaWtpZSwgU3VwZXItYmxlaWZyZWksIGVpbnMgbmV1bnVuZHNlY2h6aWcsIGtpY2tlcmlraWUgU3VwZXItCiAgICBibGVpZnJlaSwga2lja2VyaWtpZS4iCgpBYmVyIGRhcyB3YXIgbnVyIGRlciBCZW56aW5oYWhuLiBPYmVuIGF1ZiBkZXIgV2llc2Ugc3RhbmRlbiAzMDAgZVNzIGVMbCAgCnVuZCBlaW5lIGphcGFuaXNjaGUgS3VoIG5hbWVucyBQbHVuZy4gRGllIEt1aCBQbHVuZyBoYXR0ZSB6dXNhbW1lbiBtaXQgZGVuICAKMzAwIGVTcyBlTGwgZWluZW4gZ2VzZXR6bGljaGVuIEthdS1WZXJ0cmFnIHVuZCBlaW5tYWwgaW0gTW9uYXQga2FtIGVzIHp1ICAKZWluZXIgQWJncmFzLVVudGVyc3VjaHVuZy4gUmFka2FlcHBjaGVuIHRyYW5rIGVpbmUgVGFzc2Ugc2Nod2FyemVuIFRlZSBtaXQgIApDaXRyb2VuIHVuZCBwbGF1ZGVydGUgbWl0IHp3ZWkgQnJlbXNlbi4KClI6ICJXYXJ1bSByaWVjaHQgZGVubiBpaHIgc28ga29taXNjaCA/IgpCOiAiV2lyIHNjaGxpZWZlbiBnZXJhZGUgaW4gZWluZW0gQk1XLCBlaW5lbSBiYXlyaXNjaGVuIE1pc3R3YWdlbiwgdW5kCiAgICBqZXR6dCBoYWJlbiB3aXIgS290Zmx1ZWdlbC4iCgpJbiBkZW0gTW9tZW50IGthbSBwbG9ldHpsaWNoIGRlciBib2VzZSBHb2xmIHZvbGwgdm8gLS0tIG4gZGVyIFNlaXRlLgoKRzogIkhhbG9nZW4sIGhhbG9nZW4sIGhhbG9nZW4gc2UnIGRvY2ggbWFsIGhlci4gSnVuZ2VzIEthZXBwY2hlbiwgZGFyZiBpY2gKICAgIGZyYWdlbiwgd29oaW4gZGVyIFdlZyBzaWUgZmlhdCA/IgpSOiAiSWNoIG11c3MgaW4gZGllIFdhc2Noc3RyYXNzZS4iCkc6ICJEYWloYXRzdSBhYmVyIG5vY2ggZWluZW4gbGFuZ2VuIFdlZyB2b3IgZGlyLiBTY2hhdSBtYWwsIGljaCBob25kYSB6dXIKICAgIFN0YWVya3VuZyBlaW4gRmVycmFyaSBSb2NoZXIuIgpSOiAiTmVpbiwgZGFua2UsIGljaCBtdXNzIGF1ZiBGZXJyYXJpIFJvY2hlciBpbW1lciBuaXNzYW4uIgoKIkhleSIsIHNhZ3RlIFJhZGthZXBwY2hlbiwgImljaCBrZW5uJyBkaWNoIGRvY2ggd29oZXIuIEZyZWlsaWNoLCBnZW5hdSwgIAppY2gga2VubicgZGljaCBhdXMgZWluZXIgWmVpdHNjaHJpZnQsIGdlbmF1LCBpY2gga2VubicgZGljaCBhdXMnbSAgU3BpZWdlbC4iCgpEZXIgYm9lc2UgR29sZiB3dXJkZSBudW4gcmljaHRpZyB3dWV0ZW5kLgoKRzogIkR1IGJpc3QgbWlyIHZpZWxsZWljaHQgZWluZSBNYXpkYS4gQmV0ZSBzY2hvbiBtYWwgdW5kIHp1ZW5kJyBLZXJ6ZW4KICAgIGFuLiBJY2ggd2VyZGUgZGljaCBuYWVtbGljaCBpbiBkZW4gU2NobmVlIGtldHRlbi4iCgpSYWRrYWVwcGNoZW4gbGFjaHRlLCBkZW5uIGVzIHdhciBTb21tZXIgdW5kIHNpZSAzMS4gSW4gZGVtIE1vbWVudCBrYW0gIApnZXJhZGUgenVmYWVsbGlnIFByaW56IEJvcnF1YXJkIHp1IENhbGlicmEsIGF1Y2ggZ2VuYW5udCAiRGVyIHJvdGUgQ29yc2EiLiAgCkRhcyBSYWRrYWVwcGNoZW4gc2NocmllOgoKUjogIkVzc28sIGVzcychIgpDOiAiS2VpbmUgQW5nc3QsIFJhZGthZXBwY2hlbiwgaWNoIG1lcnonIEVkZXMgYXVzLiIKCkRlciBHb2xmIGJla2FtIEFuZ3N0LCBkZW5uIGRlciByb3RlIENvcnNhIHdhciBPcGVsLVByZWlzdHJhZWdlci4gRXMga2FtICAKenVtIEthbXBmOgpEb2RnZSAtIFB1Y2ggLSBEb2RnZSAtIFB1Y2ggLSBQdWNoIC0gRG9kZ2UgLSBEb2RnZQoKIkhhdScgYmxvc3MgYWIgISIsIHNwcmFjaCBkZXIgcm90ZSBDb3JzYSwgInNvbnN0IHNjaGllc3MnIGljaCBkaWNoIG1pdCAgCm1laW5lbSBHJ3dlaHIgbmllZGVyIHVuZCBkYW5uIGthbm5zdCBkdSBpbSBIaW1tZWwgUmVpZmVuIHNjaG5pdHplbi4iCgpHOiAiVmVyc3RlaGUuIE5pZWRlciAtIEcnd2VociAtIFNjaG5pdHogLSBSZWlmZW4uLi4iCkM6ICJEdSBrYW5uc3Qgdm9uIG1pciBhdXMgYXVjaCBuYWNoIFN0cmFzc2VuIGdyYWJlbiwgYWJlciBpY2ggc2Nod29lcmUKICAgIGRpciwgUGV1IGdlb3R0LCBsYXNzJyBtaXIgZGFzIFJhZGthZXBwY2hlbiBpbiBSdWgnLiBVbmQgbnVuIHp1IGRpciwKICAgIG1laW4gU2NoYXR6LCBkYXJmIGljaCBkaWNoIHRpZWZlcmxlZ2VuID8iClI6ICJXYXMgaGVpc3N0IGRhICd0aWVmZXJsZWdlbicgPyBEdSBrYW5uc3QgZnJvaCBzZWluLCB3ZW5uIGljaCBkaXIgZGVpbmVuCiAgICBDYWRkaWxhYy4iCkM6ICJBY2gsIFJhZGthZXBwY2hlbiwgbnVyIGVpbiBTcHJpdHplci4iClI6ICJFaW4gU3ByaXR6ZXIuIFVuZCBpbiB3ZWxjaGVyIFBvc2l0aW9uID8iCkM6ICJFaSwgZHUgd2lyc3QgZG9jaCBqZXR6dCBuaWNodCBlcndhcnRlbiwgZGFzcyBpY2ggZGlyIG1laW5lIE51bW1lcm4KICAgIHNjaGlsZGVyJy4gQWJlciBnbGF1YmUgbWlyLCBpY2ggaGFiZSBkZW4gVm9yc3BydW5nIGR1cmNoIFRlY2huaWsuIgpSOiAiU3Bpbm5zdCBkdSwgaWNoIHNwaWVsJyBkb2NoIGhpZXIgbmljaHQgZGVpbmVuIFN0b3NzZmFlbmdlci4gV29oZXIKICAgIGtvbW1zdCduIGR1IHVlYmVyaGF1cHQgPyIKQzogIkF1cyBQdWZmLiIKUjogIk5hamEsIGR1IGthbm5zdCBob2VjaHN0ZW5zIG1laW5lIEFjaHNzY2hlbmtlbCB2ZXJtZXNzZW4uIE1laHIgZ2VodAogICAgbmljaHQsIHdlaWwgaWNoIGVoJyBnZXJhZGVhdXMgbGF1Zi4iCkM6ICJWZXJzdGVoZS4gR2VyYWRlIGF1cyBsYXVmLiBNYWNodCBuaXgsIG1pciBpc3NlciBlaCcgZ2VyYWRlCiAgICBhYmdlc3RvcmJlbi4iCgpUcm90emRlbSB3dXJkZW4gZGllIGJlaWRlIG5vY2ggZWluIFBhYXIuIFdpZSBSb21lbyB1bmQgLS0tIEFscGhhLiBadXIgIApWZXJtYWVobHVuZyBzcGllbHRlIGVpbiBwb2xuaXNjaGVyIEhvY2h6ZWl0cy1MYWRhLiBTaWUga29ubnRlbiBzaWNoIGpldHp0ICAKamVkZSBNZW5nZSBDaHJvbSBsZWlzdGVuIHVuZCBnZW5vc3NlbiBlaW4gTGViZW4gdm9sbGVyIExleHh1cyBpbiBlaW5lbSAgCjJDVi4gRW50ZSBndXQsIGFsbGVzIGd1dC4KCih2b24gV2lsbHkgQXN0b3IpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogIERBVSAgICAgICAgICAgID0gRHVlbW1zdGVyIEFuenVuZWhtZW5kZXIgVXNlciAoVHN1bmFtaSwgMjMuIEp1bCAxOTk4LCAxNzowMjozNik6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgREFVICAgICAgICAgTWVpbiBNb25pdG9yIGlzdCBrYXB1dHQhCgogIE9wZXJhdG9yICAgIEhhYmVuIHNpZSBzY2hvbiBlaW4gYmlzc2NoZW4gYW4gZGVuIFJlZ2xlcm4KICAgICAgICAgICAgICBydW1nZW1hY2h0PwoKCiAgREFVICAgICAgICAgSmEsIHJ1ZWhydCBzaWNoIHRyb3R6ZGVtIG5pY2h0cy4KCiAgT3BlcmF0b3IgICAgQWJlciBlaW5nZXNjaGFsdGV0IGlzdCBlciBzY2hvbj8KCiAgREFVICAgICAgICAgSmEgc2ljaGVyIGRvY2ghCgogIE9wZXJhdG9yICAgIERhbm4gc2NoYWx0ZW4gU2llIGRlbiBNb25pdG9yIG1hbCBhdXMuCgogIERBVSAgICAgICAgIFdhaG5zaW5uLCBqZXR6dCBnZWh0IGVyIHdpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBuIERBVSBXaXR6IDopIChUc3VuYW1pLCAyMy4gSnVsIDE5OTgsIDE3OjA0OjU1KToKICAgREFVICAgICAgICAgTWVpbiBDb21wdXRlciBnZWh0IG5pY2h0CgogICBPcGVyYXRvciAgICBXYXMgc3RlaHQgZGVubiBhdWYgZGVtIEJpbGRzY2hpcm0/CgogICBEQVUgICAgICAgICBFaW4gQmx1bWVudG9wZiwgYWJlciBkZXIgc3RhbmQgdm9yaGVyIGF1Y2gKICAgICAgICAgICAgICAgc2Nob24gZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVuZCBub2NoIGVpbmVyIDopIChUc3VuYW1pLCAyMy4gSnVsIDE5OTgsIDE3OjA1OjU1KToKICBEQVUgICAgICAgICBJY2ggd29sbHRlIHZvbiBtZWluZW0gUHJvZ3JhbW0gZWluZSBTaWNoZXJoZWl0c2tvcGllCiAgICAgICAgICAgICAgbWFjaGVuLgoKICBPcGVyYXRvciAgICBKYSwgZGEgbmVobWVuIHNpZSBkYXMgUHJvZ3JhbW0gRElTS0NPUFkuLi4uCgogIERBVSAgICAgICAgIEphLCB3ZWlzcyBpY2ggamEsIGhhYiBpY2ggc2Nob24KCiAgT3BlcmF0b3IgICAgVW5kLCB3YXMgcGFzc2llcnQ/CgogIERBVSAgICAgICAgIERhbm4ga2FtIGRpZSBNZWxkdW5nICdRdWVsbGRpc2tldHRlIGluIExhdWZ3ZXJrIEEKICAgICAgICAgICAgICBlaW5sZWdlbi4KCiAgT3BlcmF0b3IgICAgVW5kPwoKICBEQVUgICAgICAgICBEYXMgaGFiIGljaCBhdWNoIGdlbWFjaHQsIHVuZCBkYW5uIGthbSAnWmllbGRpc2tldHRlCiAgICAgICAgICAgICAgaW4gTGF1ZndlcmsgQSBlaW5sZWdlbi4gVW5kIGRhcyBoYWIgaWNoIGF1Y2ggZ2VtYWNodC4KCiAgT3BlcmF0b3IgICAgVW5kIHdhcyBpc3QgamV0enQgSWhyIFByb2JsZW0/CgogIERBVSAgICAgICAgIEljaCBrcmllZyBkaWUgYmVpZGVuIERpc2tldHRlbiBkYSBuaWNodCBtZWhyIHJhdXMhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXJ3aW4gaW4gRGV1dHNjaCEgKFphcm5peWEsIDIzLiBKdWwgMTk5OCwgMTc6MjU6MDYpOgpIaSwgCmZ1ZXIgYWxsZSwgZGllIHNpY2ggaW4gZW5nbGlzY2ggbmllIGdldHJhdXQgaGFiZW4sIGFienVsYWNoZW46CgpodHRwOi8vd3d3LmRhcndpbmF3YXJkcy5jb20vZGV1dHNjaC9pbmRleC5odG1sCgp6YXJuaXlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaW5kb29mIChQYWtlLCAyNC4gSnVsIDE5OTgsIDA3OjU2OjAwKToKVVNFUiAgKGtvbW10IGluIGVpbiBTZXJ2aWNlIENlbnRlcikgR3V0ZW4gVGFnLCBpY2ggaGFiZSBlaW5lbiBSZWNobmVyIG1pdApXaW5kb3dzIDk1IHVuZCBoYWJlIGVpbiBQcm9ibGVtLi4uCgpURUNITklLRVIgIEphLCBkYXMgc2FndGVuIHNpZSBiZXJlaXRzLi4uCgpQYWtlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIdW5kZXJhc3NlIChIaWdobGFuZGVyLCAyNC4gSnVsIDE5OTgsIDEyOjI0OjI5KToKV2hhdCBraW5kIG9mIGEgZG9nIHNheXM6ICJib2ZoISBib2ZoISIgPwoKQSByb290d2VpbGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29tcHV0ZXJnZXNjaGxlY2h0IChHYXN0MSwgMjguIEp1bCAxOTk4LCAxMTozNzowNCk6CgpBUkUgQ09NUFVURVJTIE1PUkUgTElLRSBNRU4/IE9SIExJS0UgV09NRU4/CgpNZW4gdGhpbmsgY29tcHV0ZXJzIHNob3VsZCBiZSByZWZlcnJlZCBhcyBmZW1hbGVzLCBqdXN0IGxpa2Ugc2hpcHMsIGJlY2F1c2U6CgoxKSBObyBvbmUgYnV0IHRoZSBjcmVhdG9yIHVuZGVyc3RhbmRzIHRoZWlyIGludGVybmFsIGxvZ2ljLgoyKSBUaGUgbGFuZ3VhZ2UgdGhleSB1c2UgdG8gY29tbXVuaWNhdGUgd2l0aCBvdGhlciBjb21wdXRlcnMgaXMgCiAgIGluY29tcHJlaGVuc2libGUgdG8gZXZlcnlvbmUgZWxzZS4KMykgVGhlIG1lc3NhZ2UgIkJhZCBjb21tYW5kIG9yIGZpbGUgbmFtZSIgaXMgYWJvdXQgYXMgaW5mb3JtYXRpdmUgYXMKICAgIklmIHlvdSBkb24ndCBrbm93IHdoeSBJJ20gbWFkIGF0IHlvdSwgSSdtIGNlcnRhaW5seSBub3QgZ29pbmcgdG8gdGVsbAogICB5b3UiLgo0KSBZb3VyIHNtYWxsZXN0IG1pc3Rha2VzIGFyZSBzdG9yZWQgaW4gbG9uZy10ZXJtIG1lbW9yeSBmb3IgbGF0ZXIgcmV0cmlldmFsLgo1KSBBcyBzb29uIGFzIHlvdSBtYWtlIGEgY29tbWl0bWVudCBmb3Igb25lLCB5b3UgZmluZCB5b3Vyc2VsZiBzcGVuZGluZyBoYWxmCiAgIHlvdXIgcGF5Y2hlY2sgb24gYWNjZXNzb3JpZXMgZm9yIGl0LgoKV29tYW4gdGhpbmsgY29tcHV0ZXJzIHNob3VsZCBiZSByZWZlcnJlZCB0byBhcyBtYWxlLiBIZXJlJ3Mgd2h5OgoKMSkgVGhleSBoYXZlIGEgbG90IG9mIGRhdGEsIGJ1dCB0aGV5IGFyZSBzdGlsbCBjbHVlbGVzcy4KMikgVGhleSBhcmUgc3VwcG9zZWQgdG8gaGVscCB5b3Ugc29sdmUgcHJvYmxlbXMsIGJ1dCBoYWxmIHRoZSB0aW1lIHRoZXkgQVJFIAogICB0aGUgcHJvYmxlbS4KMykgQXMgc29vbiBhcyB5b3UgY29tbWl0IHRvIG9uZSwgeW91IHJlYWxpemUgaWYgeW91IGhhZCB3YWl0ZWQgYSBsaXR0bGUgCiAgIGxvbmdlciwgeW91IGNvdWxkIGhhdmUgb2J0YWluZWQgYSBiZXR0ZXIgbW9kZWwuCjQpIEluIG9yZGVyIHRvIGdldCB0aGVpciBhdHRlbnRpb24sIHlvdSBoYXZlIHRvIHR1cm4gdGhlbSBvbi4KNSkgQSBiaWcgcG93ZXIgc3VyZ2Ugd2lsbCBrbm9jayB0aGVtIG91dCBmb3IgdGhlIHJlc3Qgb2YgdGhlIG5pZ2h0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9iZXJzY2hlbmtlbGhhbHNicnVjaCAoRGllZGVyLCAyOC4gSnVsIDE5OTgsIDIyOjE3OjA1KToKV2FzIGhlaXNzdCAiT2JlcnNjaGVua2VsaGFsc2JydWNoIiBhdWYgQ2hpbmVzaXNjaD8KCltoaWVyIGtvZW5udGVuIGpldHp0IG5lcnZpZ2UgWmVpbGVuIG1pdCBQdW5rdGVuIGtvbW1lbiwgdW0gZWluIFNjcm9sbGluZyB6dQplcnp3aW5nZW4uLi4gOildCgpBbnR3b3J0ZTogS25pY2tpLWtuYWNraS1uYWgtYmVpLVNhY2tpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogT2JlcnNjaGVua2VsaGFsc2JydWNoIChNb3Jnb3RoLCAyOS4gSnVsIDE5OTgsIDA3OjQxOjA0KToKfiMhIHJuPURpZWRlciBydD05MDE2NTcwMjUgcmc9d2l0emUKfiMhIHRpZD05MDE2NTcwMjUKVW5kIHdpZSBoZWlzc3QgZGFubiBlaW4gd2VpYmxpY2hlciBPYmVyc2NoZW5rZWxoYWxzYnJ1Y2g/Ck1vcmdvdGgsIG5ldWdpZXJpZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBPYmVyc2NoZW5rZWxoYWxzYnJ1Y2ggKFNvbmdva3UsIDI5LiBKdWwgMTk5OCwgMTE6NDM6MzcpOgp+IyEgcm49TW9yZ290aCBydD05MDE2OTA4NjQgcmc9d2l0emUKfiMhIHRpZD05MDE2NTcwMjUKRW5kZXQgYXVjaCBtaXQgaSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogT2JlcnNjaGVua2VsaGFsc2JydWNoIChZZW5kaSwgMjkuIEp1bCAxOTk4LCAxMjo0MDozMSk6Cn4jISBybj1Tb25nb2t1IHJ0PTkwMTcwNTQxNyByZz13aXR6ZQp+IyEgdGlkPTkwMTY1NzAyNQoKR2VyYWRlIGViZW4sIGJlaW0gTGVzZW4gZGVyIE1QQToKOgo6UnVicmlrIDQ1OiB3aXR6ZSwgQXJ0aWtlbDogNSB2b24gNgo6UmU6IE9iZXJzY2hlbmtlbGhhbHNicnVjaCAoTW9yZ290aCwgMjkuIEp1bCAxOTk4LCAwNzo0MTowNCk6CjpbQmV6dWc6IEFydGlrZWwgNCB2b24gRGllZGVyIHZvbSAyOC4gSnVsIDE5OTgsIDIyOjE3OjA1XQo6IAo6VW5kIHdpZSBoZWlzc3QgZGFubiBlaW4gd2VpYmxpY2hlciBPYmVyc2NoZW5rZWxoYWxzYnJ1Y2g/CjpNb3Jnb3RoLCBuZXVnaWVyaWcKOj4gCjo+IAo6PiAKOj4gbm4KOiAKOlJ1YnJpayA0NTogd2l0emUsIEFydGlrZWw6IDYgdm9uIDYKOlJlOiBSZTogT2JlcnNjaGVua2VsaGFsc2JydWNoIChTb25nb2t1LCAyOS4gSnVsIDE5OTgsIDExOjQzOjM3KToKOltCZXp1ZzogQXJ0aWtlbCA1IHZvbiBNb3Jnb3RoIHZvbSAyOS4gSnVsIDE5OTgsIDA3OjQxOjA0XQo6IAo6RW5kZXQgYXVjaCBtaXQgaSA6KQo6PiAKOj4gCjo+IG5uCjogCjpSdWJyaWsgNDc6IHd3dywgQXJ0aWtlbDogMTkgdm9uIDIwCjpSZV41OiBVcGRhdGUgTnIgMiBkZXIgTUctQW5mYWVuZ2Vyc2VpdGVuIChHcmltbWJvcm4sIDI3LiBKdWwgMTk5OCwgMjM6MjA6MTQpOgo6W0JlenVnOiBBcnRpa2VsIDE0IHZvbiBHYW5kbyB2b20gMjcuIEp1bCAxOTk4LCAxODozNTozM10KOiAKOkR1IG1laW5zdCBBU0NJSS4KOiAKOkdkQQo6PiAKOj4KCkFhYWggamEuIEhtbW1tLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpiYWQgZW5nbGlzaCAoRGllZGVyLCAzMC4gSnVsIDE5OTgsIDIzOjMyOjI5KToKV2h5IGRpZCB0aGUga25pZ2h0cyBvZiBDYW1lbG90IGNhbWUgYSBsb3Q/CkJlY2F1c2UgdGhleSBwbGF5ZWQgd2l0aCB0aGVpciBsYW5jZSBhIGxvdC4uLgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgaXN0IGVpbmUgJ1phdWJlcm1hdXMnIChNb3Jnb3RoLCAxMC4gQXVnIDE5OTgsIDE2OjIzOjA2KToKRWluZSBGcmF1LCBkaWUgc2ljaCBuYWNoIGRlbSBTZXggaW4gZWluZW4gS2FzdGVuIEJpZXIsIGVpbiBTa2F0c3BpZWwgdW5kIDIKS3VtcGVsIHZlcndhbmRlbHQuCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhcyBpc3QgZWluZSAnWmF1YmVybWF1cycgKFBhdHJ5biwgMTAuIEF1ZyAxOTk4LCAxNjo0NTozMyk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTkwMjc1ODk4NiByZz13aXR6ZQp+IyEgdGlkPTkwMjc1ODk4Ngp6dW0gZ2x1ZWNrIHNjaGVpdGVydHMgYmVpIG1pciBzY2hvbiBhbiBkZW4gdm9yYXVzc2V0enVuZ2VuIDopCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBpc3QgZWluZSAnWmF1YmVybWF1cycgKFNjaG9rbywgMTAuIEF1ZyAxOTk4LCAxNjo0Njo0MSk6Cn4jISBybj1QYXRyeW4gcnQ9OTAyNzYwMzMzIHJnPXdpdHplCn4jISB0aWQ9OTAyNzU4OTg2Ckthbm5zdCBrZWluIFNrYXQgb2RlciB3YXM/IDspCgpTY2hva28gKnNjaG1hcnJlbmQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXYXMgaXN0IGVpbmUgJ1phdWJlcm1hdXMnIChQYXRyeW4sIDEwLiBBdWcgMTk5OCwgMTY6NDc6MzUpOgp+IyEgcm49U2Nob2tvIHJ0PTkwMjc2MDQwMSByZz13aXR6ZQp+IyEgdGlkPTkwMjc1ODk4NgpkYXMgbmljaHQsIGFiZXIgaWNoIHd1ZXJkZSBtaWNoIHdhaHJzY2hlaW5saWNoIGluIGVpbiBza2F0c3BpZWwgYXVzCmxhdXRlciBhc3NlbiB2ZXJ3YW5kZWxuIDspCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXYXMgaXN0IGVpbmUgJ1phdWJlcm1hdXMnIChNb3Jnb3RoLCAxMC4gQXVnIDE5OTgsIDE2OjQ4OjAzKToKfiMhIHJuPVBhdHJ5biBydD05MDI3NjA0NTUgcmc9d2l0emUKfiMhIHRpZD05MDI3NTg5ODYKSHVhIGh1YSBodWEuLi51bmQgZGFubiBtdWVzc3Rlc3QgZHUgbmVuIG51bGwgc3BpZWxlbiA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBVSAoUm9jaHVzLCAxMC4gQXVnIDE5OTgsIDIwOjE2OjE2KToKQW5ydWYgYmVpIEFPTCAob2RlciBiZWkgaXJnZW5kZWluZW0gYW5kZXJlbiBPbmxpbmUtRGllbnN0LCBkZXIKbWFzc2Vud2Vpc2UgQ0QtUk9NcyB1bnRlciBkaWUgTGV1dGUgdmVydGVpbHQpOgoKCkFucnVmZXI6OiAiSWNoIGhhYmUgZGEgZ2VyYWRlIElocmUgQ0QgYmVrb21tZW4sIG1pdCBJbnRlcm5ldCB1bmQgc28sCmFiZXIgc2llIGZ1bmt0aW9uaWVydCBuaWNodCEiCgpLdW5kZW5iZXRyZXVlcmluOiAiV2FzIHBhc3NpZXJ0IGRlbm4sIHdlbm4gU2llIGRpZSBDRCBpbnMgTGF1ZndlcmsKbGVnZW4/IgoKQTogIkdhciBuaWNodHMuIgoKSzogIldhcyBoYWJlbiBTaWUgZGVubiBmdWVyIGVpbiBDb21wdXRlcnN5c3RlbT8iCgpBOiAiUGxheXN0YXRpb24uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKREFVcyBvaG5lIEVuZGUgKFphcm5peWEsIDE0LiBBdWcgMTk5OCwgMTE6MjU6MzgpOgpudXIgZWluIGxpbms6Cmh0dHA6Ly93d3cucmlua3dvcmtzLmNvbS9zdHVwaWQvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaG9jb2xhdGUuLi4uICAoU2hhbm5hcmEsIDE4LiBBdWcgMTk5OCwgMjE6NTE6MDkpOgoKU2NoYXV0IG1hbCBhdWYgaHR0cDovL3d3dy51bmktc3R1dHRnYXJ0LmRlL2Ryb3NpL2thbGltYXIvcmVwbGFjZW1lbnRzLmh0bWwKCklyZ2VuZHdpZSB0dW4gbWlyIHNvbGNoZSBNYWVubmVyIGxlaWQsIGRpZSB6dSBzbyBldHdhcyBncmVpZmVuIG11ZXNzZW4KKmtpY2hlcioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaG9jb2xhdGUuLi4uICAoU2lsdmFuYSwgMTguIEF1ZyAxOTk4LCAyMzo1NzoxMik6Cn4jISBybj1TaGFubmFyYSBydD05MDM0Njk4Njkgcmc9d2l0emUKfiMhIHRpZD05MDM0Njk4NjkKRHVtbWUgRnJhZ2UsIFNoYW5uYXJhLi4uIFdvIHN0ZWh0IGRhIHdhcywgZGFzcyBlcyB1bSBNYWVubmVyIGdlaHQ/IApEYXMgYmV0cmlmZnQgRnJhdWVuIGdlbmF1c28gKGljaCBrZW5uIG5lbiBwYWFyLCBhdWYgZGllIGRhcyB1bmJlc2NocmFlbmt0Cnp1dHJpZmZ0KS4gQWJnZXNlaGVuIGRhdm9uLCB6dW1pbmRlc3QgZGllIFB1bmt0ZSA0LCAxMC0xMiB1bmQgMTYga2FubiBpY2gKd2lkZXJsZWdlbi4gOikKCiAgU2lsdmFuYQoKSG0uLi4gT3BKb2tlLi4uIEdyYWRlIGdlbGVzZW46IE5laG1lbiBzaWUgQnV0dGVyIHN0YXR0IE1hcmdhcmluZSwgZGFzIApnaWJ0IGRlbSBHZXBhZWNrIGVpbmVuIGZlaW5lcmVuIEdlc2NobWFjay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2hvY29sYXRlLi4uLiAgKEdhbmRvLCAxOS4gQXVnIDE5OTgsIDEyOjQ1OjM4KToKfiMhIHJuPVNpbHZhbmEgcnQ9OTAzNDc3NDMyIHJnPXdpdHplCn4jISB0aWQ9OTAzNDY5ODY5CkFoZW0gLi4gcHVua3QgMTIga2FubnN0IGR1IHdpZWRlcmxlZ2VuPwpXaWUgZ2VodCBkYXMgPwpHYW5kbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQ2hvY29sYXRlLi4uLiAgKFphcm5peWEsIDE5LiBBdWcgMTk5OCwgMTI6NDk6MTcpOgp+IyEgcm49R2FuZG8gcnQ9OTAzNTIzNTM4IHJnPXdpdHplCn4jISB0aWQ9OTAzNDY5ODY5CkhtbW0gYWxzbyBkYXMgbWl0IFB1bmt0IDQga2FubiBTaWx2YW5hIG51ciB3aWRlcmxlZ2VuLCB3ZWlsIHNpZSBtaXQgZWluZW0gV29sZgp2ZXJoZWlyYXRldCBpc3QgdW5kIGRlciBoYXQgb2VmdGVycyBiZWltIG5hc2NoZW4gQmFydGhhYXJlIGRhYmVpLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJpc2NoIHZvbSBMb2cuLi4gKEFuYXRvbCwgMjIuIEF1ZyAxOTk4LCAwMzo1NjowMik6Cn4jISBvbj1BbmF0b2wgb3Q9OTAzNzUwOTUyIG9nPXBhcnR5CkFuYXRvbCBmcmFndCBMd2F4YW5hOiBLZW5uc3QgRHUgZWlnZW50bGljaCBkZW4gS2V5LUtsYW1tZXJncmlmZj8KS2V5IGVyYmxlaWNodC4KTHdheGFuYSBmcmFndCBBbmF0b2w6IERlbj8KTHdheGFuYSB2ZXJncmVpZnQgc2ljaCBhbiBLZXlzIGt1cnplbiBSaXBwZW4uCktleSBzY2hyZWl0IGxhdXQhCkJlcnRyYW0gaGFlbHQgc2ljaCBkaWUgT2hyZW4genUuCkJlcnRyYW0gZ3J1bW1lbHQ6IEljaCB3dXNzdGUgZ2FyIG5pY2h0LCBkYXNzIHNjaG9uIHNvIHZpZWxlIE1vbnN0ZXIgCkJlcnRyYW0gZ3J1bW1lbHQ6IERUX1NPVU5EIG1hY2hlbi4uLgoKV2VyIG5vY2ggbmljaHQgd3Vzc3RlLCBkYXNzIEtleSBlaW4gTW9uc3RlciBpc3QuLi4gdm9pbGEgOykKQW5hdG9sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIG5vY2ggZWluZXIuLi4gKEFuYXRvbCwgMjIuIEF1ZyAxOTk4LCAwMzo1ODowMik6ClRoZW1hICJFaW5nZXNjaHJhZW5rdGVzIFZlcnN0YW5kc2ZyYWdtZW50Ii4uLgoKQmVydHJhbSBzYWd0OiBOb2UsIFp3ZXJnZSBzaW5kIGVjaHQgdmllbHNlaXRpZywgbWFuIGJyYXVjaHQgbnVyCkJlcnRyYW0gc2FndDogSGFtbWVyIHVuZCBNZWlzc2VsLCB1bSBzaWUgdW16dXByb2dyYW1taWVyZW4uLi4KCnRtIHJpbmdvciBIYXN0IER1IG1hbCBuZW4gTW9tZW50IFplaXQ/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluZXIgZ2VodCBub2NoLi4uIChBbmF0b2wsIDIyLiBBdWcgMTk5OCwgMDM6NTk6NTApOgpEcmVpIExldXRlIGdlaGVuIGFtIHRpc2NoIHZvcmJlaS4KVHVmZmkgc3RhcnJ0LgpUdWZmaSBzdGFycnQgZHJlaSBMZXV0ZW4gbmFjaC4KVHVmZmkgbXVybWVsdDogTWVpbiBHb3R0LCBzaW5kIGRpZSBMZXV0ZSBqdW5nIGdld29yZGVuLi4uCgpGcmFnZSBBOiBXZWxjaGUgZHJlaSBMZXV0ZSB3YXJlbiBkYXM/CkZyYWdlIEI6IFdpZSBhbHQgc2luZCBkaWVzZSBkcmVpIFBlcnNvbmVuIHp1c2FtbWVuZ2Vub21tZW4/CgpLb21tdCBzaWNoIHBsb2V0emxpY2ggc2VociBhbHQgdm9yLi4uCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW5lciBnZWh0IG5vY2guLi4gKEFuYXRvbCwgMjMuIEF1ZyAxOTk4LCAxOTo0Nzo1Nik6Cn4jISBybj1BbmF0b2wgcnQ9OTAzNzUxMTkwIHJnPXdpdHplCn4jISB0aWQ9OTAzNzUxMTkwCktudXJ0IHRlaWx0IERpciBtaXQ6IFp1IEZyYWdlIEE6IE5ldmFkYSwgQWlzY2hhLCBUd2luc2VuIC0gRnJhZ2UgQjogNDkgOikKCjEwMCBHdW1taXB1bmt0ZSBhbiBLbnVydCEgOy0pCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW5lciBnZWh0IG5vY2guLi4gKFRlZGR5LCAyNC4gQXVnIDE5OTgsIDA4OjQ3OjM2KToKfiMhIHJuPUFuYXRvbCBydD05MDM3NTExOTAgcmc9d2l0emUKfiMhIHRpZD05MDM3NTExOTAKRnJhZ2UgQjogdW50ZXIgNTAgdW5kIGplZGVyIGFsbGVpbmUgbmljaHRtYWwgaGFsYiBzbyBhbHQgd2llIFRoZXJpbiA7KQoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFsbGVzIG51ciBFcnppZWh1bmcgKFphcm5peWEsIDI0LiBBdWcgMTk5OCwgMDg6NDg6MzkpOgprb21tdCBlaW4gbWFubiwgZGVyIGVpbmUgc3R1cm1oYXViZSB0cmRndCBpbiBlaW5lIHNhbWVuYmFuayB1bmQgcnVmdDoiaGRuZGUKaG9jaCwgZGllcyBpc3QgZWluIHxiZXJmYWxsIi4KZGllIGZyYXUgaGludGVyIGRlbSB0cmVzZW4sIHdpbGwgaWhtIGVya2xkcmVuLCBkYV8gZXMgaGllciBrZWluIGdlbGQgZ2lidCwKZG9jaCBlciBsYWRfdCBuaWNodCBsb2NrZXIuIElobSBzZWkgZXMgZWdhbCwgZXIgd29sbGUgamV0enQgYWxsZXMgd2FzIGluIGRlcgpiYW5rIGdlbGFnZXJ0IGlzdCwgaGFiZW4uIERhcmF1ZiB0dXQgZGllIGZyYXUgd2llIHZvbiBpaHIgdmVybGFuZ3QgdW5kIGhvbHQKZGllIFNwZXJtYXByb2JlbiBhdXMgZGVuIHNjaHJkbmtlbi4gU2llIHN0ZWxsdCBlaW5pZ2UgYXVmIGRlbiB0cmVzZW47IGVyCnNhZ3Q6ImF1Zm1hY2hlbiwgdHJpbmtlbiIgc2llIGVrZWx0IHNpY2gsIGRvY2ggYXVzIGFuZ3N0IHVtIGlociBsZWJlbiwgdHV0CnNpZSB3aWUgdm9uIGlobSB2ZXJsYW5ndC4gTmFjaCBmfG5mIGZsZHNjaGNoZW4gemllaHQgZXIgZGllIHN0dXJtaGF1YmUgdm9tCmtvcGYgdW5kIG1laW50IG51cjoiZ2VodCBkb2NoIEhlaWtlIgoKWmFybml5YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmV0dGVzIHNwaWVsIDopIChKYXNwZXIsIDI3LiBBdWcgMTk5OCwgMTc6MDg6MjApOgpodHRwOi8vd3d3LmhvdXNlY29hdHMuY29tL3BsYXkvY3Vtb25tb25pY2EvCgpKYXNwZXIgbGFlZHQgc2Nob25tYWwgbmFjaCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29tcHV0ZXItUHJvYmxlbS1NZWxkZS1Gb3JtdWxhciAoUm9jaHVzLCAyNy4gQXVnIDE5OTgsIDE5OjA5OjM3KToKQ29tcHV0ZXItUHJvYmxlbS1NZWxkZS1Gb3JtdWxhcgoKIDEuICBCZXNjaHJlaWJlbiBTaWUgSWhyIFByb2JsZW06Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKIDIuICBKZXR6dCBiZXNjaHJlaWJlbiBTaWUgYml0dGUgSWhyIFByb2JsZW0gR0VOQVU6Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKIDMuICBTcGVrdWxpZXJlbiBTaWUgd2lsZCBkYXJ8YmVyLCB3byBkZXIgSHVuZCBiZWdyYWJlbiBsaWVndDoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgogNC4gIFdpZSBzY2h3ZXJ3aWVnZW5kIGlzdCBkYXMgUHJvYmxlbToKCiAgICAgICAgQS4gIHVud2ljaHRpZ19fCiAgICAgICAgQi4gIHVud2ljaHRpZ19fCiAgICAgICAgQy4gIHVud2ljaHRpZ19fCiAgICAgICAgRC4gIHRyaXZpYWxfXwoKIDUuICBBcnQgZGVzIFByb2JsZW1zOgoKICAgICAgICBBLiAgRmVzdGdlZmFocmVuX18KICAgICAgICBCLiAgQXJiZWl0ZXQgbmljaHRfXwogICAgICAgIEMuICBBYmdlc3R8cnp0X18KICAgICAgICBELiAgUmllY2h0IHNlbHRzYW1fXwoKIDYuICBJc3QgZGVyIENvbXB1dGVyIGFuIGRpZSBTdHJvbXZlcnNvcmd1bmcgYW5nZXNjaGxvc3Nlbj8gIGphX18gbmVpbl9fCgogNy4gIElzdCBkZXIgQ29tcHV0ZXIgYW5nZXN0ZWxsdD8gIGphX18gbmVpbl9fCgogOC4gIEhhYmVuIFNpZSB2ZXJzdWNodCBkYXMgUHJvYmxlbSBzZWxic3QgenUgYmVoZWJlbj8gIGphX18gbmVpbl9fCgogOS4gIFd1cmRlIGVzIGRhZHVyY2ggc2NobGltbWVyPyAgamFfXwoKMTAuIEhhdCBlaW4gRnJldW5kLCBkZXIgImFsbGVzIHxiZXIgQ29tcHV0ZXIiIHdlaWphX18gdmVyc3VjaHQsIGRhcyBQcm9ibGVtCnp1IGxzZW4/ICBqYV9fICBuZWluX18KCjExLiAgV3VyZGUgZXMgZGFkdXJjaCBub2NoIHNjaGxpbW1lcj8gIGphX18KCjEyLiAgSGFiZW4gU2llIGRhcyBIYW5kYnVjaCBnZWxlc2VuPyAgamFfXyBuZWluX18KCjEzLiAgU2VpbiBTaWUgZWhybGljaC4gSGFiZW4gU2llIGRhcyBIYW5kYnVjaCB3aXJrbGljaCBnZWxlc2VuPwp2aWVsbGVpY2h0X18gbmVpbl9fCgoxNC4gIFNpbmQgU2llIGFic29sdXQgc2ljaGVyLCBkYW5laW5fXyBTaWUgZGFzIEhhbmRidWNoIGdlbGVzZW4gaGFiZW4/Cm5laW5fXwoKMTUuICBGYWxscyBTaWUgZGFzIEhhbmRidWNoIGdlbGVzZW4gaGFiZW46IGhhYmVuIFNpZSBlcyB2ZXJzdGFuZGVuPwpqYV9fIG5laW5fXwoKMTYuICBXZW5uIGphLCBlcmtscmVuIFNpZSwgd2llc28gU2llIGRhcyBQcm9ibGVtIG5pY2h0IHNlbGJzdCBsc2VuCmtvbm50ZW46Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKMTcuICBXYXMgaGFiZW4gU2llIG1pdCBkZW0gQ29tcHV0ZXIgZ2VtYWNodCwgYWxzIGRhcyBQcm9ibGVtIGF1ZnRyYXQ6Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKMTguICBXZW5uIFNpZSAiTmljaHRzIiBnZWFudHdvcnRldCBoYWJlbiwgZXJrbHJlbiBTaWUgYml0dGUsIHdpZXNvIGRlcgpDb21wdXRlciBlaW5nZXNjaGFsdGV0IHdhci4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgoxOS4gIFNpbmQgU2llIHNpY2hlciwKZGFfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIFNpZSBzaWNoIGRhcwpQcm9ibGVtIG5pY2h0IGVpbmJpbGRlbj8gIGphX18KbmVpbl9fCgoyMC4gIFplaWd0IGRpZSBVaHIgYXVmIElocmVtIFZDUiBlaW4gYmxpbmtlbmRlcyAxMi4wMD8gIGphX18gV2FzIGlzdCBlaW4KVkNSP19fCgoyMS4gIEhhYmVuIFNpZSBlaW4gRXhlbXBsYXIgdm9uICJQQy1CZWRpZW51bmcgZnxyIElkaW90ZW4iPyAgamFfXyBuZWluX18KCjIyLiAgSGFiZW4gU2llIGVpbmVuIG5ldXRyYWxlbiBaZXVnZW4gZnxyIElociBQcm9ibGVtPyAgamFfXyBuZWluX18KCjIzLiAgSGFiZW4gU2llIGlyZ2VuZHdlbGNoZSBlbGVrdHJvbmlzY2hlbiBHZXJ0ZSBkaWUgZnVua3Rpb25pZXJlbj8KamFfXyBuZWluX18KCjI0LiAgR2lidCBlcyBqZW1hbmRlbiwgZGVtIG1hbiBkaWUgU2NodWxkIGZ1ZXIgZGllc2VzIFByb2JsZW0genV3ZWlzZW4Ka25udGU/ICBqYV9fIG5laW5fXwoKMjUuICBIYWJlbiBTaWUgZGVyIE1hc2NoaW5lIGVpbmVuIGtyZnRpZ2VuIFNjaGxhZyBnZWdlbiBkYXMgR2VodXNlCnZlcnNldHp0PyBqYV9fIG5laW5fXwoKMjYuICBCcmVubnQgZGVyIENvbXB1dGVyPyBqYV9fIG5vY2ggbmljaHRfXwoKMjcuICBLbm5lbiBTaWUgbmljaHRzIGFuZGVyZXMgdHVuLCBzdGF0dCBtaWNoIHp1IGJlbHN0aWdlbj8gamFfXwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhlIFRhbGtpbmcgRnJvZyAoR3JpbW1ib3JuLCAyOS4gQXVnIDE5OTgsIDIyOjE4OjIwKToKfiMhIG9uPUdyaW1tYm9ybiBvdD05MDQ0MjE4NTggb2c9bXVlbGwKfiMhIG9uPUZyYW56IG90PTkwNDEzODgyMyBvZz13aXR6ZQpUaGUgVGFsa2luZyBGcm9nCj09PT09PT09PT09PT09PT0KIAogICAgIEEgbWFuIHdhcyBjcm9zc2luZyBhIHJvYWQgb25lIGRheSB3aGVuIGEgZnJvZyBjYWxsZWQgb3V0IHRvIGhpbQphbmQgc2FpZCwgIklmIHlvdSBraXNzIG1lLCBJJ2xsIHR1cm4gaW50byBhIGJlYXV0aWZ1bCBwcmluY2Vzcy4iCkhlIGJlbnQgb3ZlciwgcGlja2VkIHVwIHRoZSBmcm9nLCBhbmQgcHV0IGl0IGluIGhpcyBwb2NrZXQuCiAKICAgIFRoZSBmcm9nIHNwb2tlIHVwIGFnYWluIGFuZCBzYWlkLCAiSWYgeW91IGtpc3MgbWUgYW5kIHR1cm4gbWUKYmFjayBpbnRvIGEgYmVhdXRpZnVsIHByaW5jZXNzLCBJIHdpbGwgdGVsbCBldmVyeW9uZSBob3cgc21hcnQKYW5kIGJyYXZlIHlvdSBhcmUgYW5kIGhvdyB5b3UgYXJlIG15IGhlcm8iICBUaGUgbWFuIHRvb2sgdGhlCmZyb2cgb3V0IG9mIGhpcyBwb2NrZXQsIHNtaWxlZCBhdCBpdCwgYW5kIHJldHVybmVkIGl0IHRvIGhpcyBwb2NrZXQuCiAKICAgIFRoZSBmcm9nIHNwb2tlIHVwIGFnYWluIGFuZCBzYWlkLCAiSWYgeW91IGtpc3MgbWUgYW5kIHR1cm4gbWUKYmFjayBpbnRvIGEgYmVhdXRpZnVsIHByaW5jZXNzLCBJIHdpbGwgYmUgeW91ciBsb3ZpbmcgY29tcGFuaW9uCmZvciBhbiBlbnRpcmUgd2Vlay4iICBUaGUgbWFuIHRvb2sgdGhlIGZyb2cgb3V0IG9mIGhpcyBwb2NrZXQsCnNtaWxlZCBhdCBpdCwgYW5kIHJldHVybmVkIGl0IHRvIGhpcyBwb2NrZXQuCiAKICAgICBUaGUgZnJvZyB0aGVuIGNyaWVkIG91dCwgIklmIHlvdSBraXNzIG1lIGFuZCB0dXJuIG1lIGJhY2sgaW50bwpwcmluY2VzcywgSSdsbCBzdGF5IHdpdGggeW91IGZvciBhIHllYXIgYW5kIGRvIEFOWVRISU5HIHlvdSB3YW50LiIKQWdhaW4gdGhlIG1hbiB0b29rIHRoZSBmcm9nIG91dCwgc21pbGVkIGF0IGl0LCBhbmQgcHV0IGl0IGJhY2sKaW50byBoaXMgcG9ja2V0LgogCiAgICAgRmluYWxseSwgdGhlIGZyb2cgYXNrZWQsICJXaGF0IGlzIHRoZSBtYXR0ZXI/IEkndmUgdG9sZCB5b3UgSSdtCmEgYmVhdXRpZnVsIHByaW5jZXNzLCB0aGF0IEknbGwgc3RheSB3aXRoIHlvdSBmb3IgYSB5ZWFyIGFuZCBkbwphbnl0aGluZyB5b3Ugd2FudC4gIFdoeSB3b24ndCB5b3Uga2lzcyBtZT8iCiAKICAgICBUaGUgbWFuIHNhaWQsICJMb29rLCBJJ20gYSBjb21wdXRlciBwcm9ncmFtbWVyLiBJIGRvbid0IGhhdmUKdGltZSBmb3IgYSBnaXJsZnJpZW5kLCBidXQgYSB0YWxraW5nIGZyb2cgaXMgY29vbC4iCgpFbmpveSBGcmFueiAhIC0gbmljaHQgc3VlY2h0aWcgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGhlIFRhbGtpbmcgRnJvZyAoR3JpbW1ib3JuLCAyOS4gQXVnIDE5OTgsIDIyOjIzOjQ0KToKfiMhIHJuPUdyaW1tYm9ybiBydD05MDQ0MjE5MDAgcmc9d2l0emUKfiMhIHRpZD05MDQ0MjE5MDAKU29ycnkgZnVlcnMgdmVybGVnZW4sIGhhYiBlaW4gYmlzY2hlbiBhdWZnZXJhZXVtdC4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDRFUtV2l0eiAoU2x5Zm94LCAgMy4gU2VwIDE5OTgsIDE3OjAyOjMyKToKV29sZmdhbmcgU2NoYWV1YmxlIGdlaHQgenVyIFdhaHJzYWdlcmluIHVuZCBsYWVzc3Qgc2ljaCBkaWUgWnVrdW5mdCBmdWVyCkRldXRzY2hsYW5kIHZvcmF1c3NhZ2VuLgpXYWhyc2FnZXJpbjogSWNoIHNlaGUsIGltIEphaHIgMjAwNiB3aXJkIGRlciBCdW5kZXNrYW56bGVyIHZvbSBSb2xsc3R1aGwgYXVzCiAgZGFzIExhbmQgcmVnaWVyZW4uClNjaGFldWJsZSBmcmV1dCBzaWNoIHNjaG9uLgpTY2hhZXVibGU6IERhbm4gd2VyZCBpY2ggYWxzbyBkb2NoIG5vY2ggQnVuZGVza2Fuemxlcj8KV2FocnNhZ2VyaW46IE5laW4sIGltIEphaHIgMjAwNiByZWdpZXJ0IGltbWVyIG5vY2ggZGVyIEtvaGwuCgpQLlM6IEJldm9yIGVzIHNvd2VpdCBrb21tdCwgYmVpIEtvaGwgd2Vpc3MgbWFuIG5pZSwgZ2VodCBhbGxlIHNjaG9lbiB6dXIgV2FobAogICAgdW5kOiBHRUJUIEtPSEwgS0VJTkUgQ0hBTkNFISEhCgogICBTbHlmb3gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1bmRlc3ZlcmRpZW5zdGtyZXV6IChDYXVubywgIDcuIFNlcCAxOTk4LCAxMjo1MzoxNSk6CkFtIDEwLiBPa3RvYmVyIHdpcmQgU3RldmVuIFNwaWVsYmVyIGluIEJlcmxpbiBkYXMgQnVuZGVzdmVyZGllbnN0a3JldXogZnVlcgpzZWluZW4gRmlsbSAnU2NoaW5kbGVyJ3MgTGlzdGUnIHVlYmVycmVpY2h0IHdlcmRlbi4KCkRlciBuYWVjaHN0ZSBBbndhZXJ0ZXIgYXVmIGRhcyBLcmV1eiB3aXJkIEJpbGwgR2F0ZXMgc2VpbiwgZnVlciBkaWUgU2NoYWZmdW5nCnZvbiBBcmJlaXRzcGxhZXR6ZW4uCk9obmUgZGllIHZpZWxlbiBGZWhsZXIgaW4gc2VpbmVuIFByb2dyYW1tZW4gaGFldHRlbiBkaWUgTGV1dGUgdmllbCB3ZW5pZ2VyIHp1CnR1biAuLi4KCkMuIE5vCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQnVuZGVzdmVyZGllbnN0a3JldXogKEdsb2luc29uLCAgNy4gU2VwIDE5OTgsIDE1OjAyOjE4KToKfiMhIHJuPUNhdW5vIHJ0PTkwNTE2NTU5NSByZz13aXR6ZQp+IyEgdGlkPTkwNTE2NTU5NQpIbW1tIC4uLiBEdSBiaXN0IGtlaW4gSW5mb3JtYXRpa2VyLCByaWNodGlnPyBTb25zdCBoYWV0dGVzdCBEdSBkYXMgbmllIHVudGVyCldpdHplIGdlc2NocmllYmVuLiBEaWUgSVQtQnJhbmNoZSBpc3QgZGllIGVpbnppZ2UsIGRpZSBzaWNoIHdpcmtsaWNoIGltbWVyCmFtIExlYmVuIGVyaGFsdGVuIGtvZW5uZW4gd2lyZCA6KQoKR2xvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQnVuZGVzdmVyZGllbnN0a3JldXogKEdyaW1tYm9ybiwgMTAuIFNlcCAxOTk4LCAxNToyMzozNCk6Cn4jISBybj1HbG9pbnNvbiBydD05MDUxNzMzMzggcmc9d2l0emUKfiMhIHRpZD05MDUxNjU1OTUKVW50ZXJoYWx0ZW4gc2ljaCBlaW4gQmF1YXJiZWl0ZXIsIGVpbiBBcnp0IHVuZCBlaW4gSW5mb3JtYXRpa2VyLCB3ZWxjaGVzIGRlcgphZWx0ZXN0ZSBCZXJ1ZiBzZWkuIFNhZ3QgZGVyIEFyenQ6ICJHb3R0IG5haG0gZWluZSBSaXBwZSB2b24gQWRhbSB1bSBFdmEgenUKbWFjaGVuLCBkYWhlciBpc3QgZGVyIENoaXJ1cmcsIGRlciBBcnp0IGRlciBhZWx0ZXN0ZSBCZXJ1ZiIuIERhcmF1ZiBkZXIKQmF1YXJiZWl0ZXI6ICJHb3R0IGhhdCBkaWUgV2VsdCBhdXMgZGVtIENoYW9zIGdlc2NoYWZmZW4sIHNpZSBhbHNvIGF1ZmdlYmF1dCwKZGFtaXQgaXN0IGRlciBCZXJ1ZiBkZXMgQmF1YXJiZWl0ZXJzIGFlbHRlci4iIExhZWNoZWx0IGRlciBJbmZvcm1hdGlrZXI6ICJVbmQKd28sIGdsYXVidCBpaHIsIGthbSBkYXMgQ2hhb3MgaGVyPyIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVC1TaGlydHMgKFNseWZveCwgMTEuIFNlcCAxOTk4LCAxNToyNjo0OSk6CkFscyBlcyBkaWUgZXJzdGVuIFQtU2hpcnRzIGdhYiwgZ2FiIGVzIG51ciBkaWUgR3JvZXNzZW4gUyBmdWVyIGRpZSBLbGVpbmVuLApNIGZyIGRpZSBtaXR0bGVyZW4gdW5kIEwgZnIgZGllIEdyb3NzZW4uCgpEYW5uIG1lcmt0ZSBtYW4sIGRhc3MgZXMgYXVjaCBub2NoIGdhbnogZ3Jvc3NlIGdhYiwgYWxzbyBmdWVocnRlIG1hbiBYTCBlaW4uCgpGdWVyIGRpZSBnYW56IGdyb3NzZW4gRGlja2VuIGdhYiBlcyBkYW5uIG5vY2ggWFhMLgoKRG9jaCBkYXMgcmVpY2h0ZSBmdWVyIG1hbmNoZSBpbW1lciBub2NoIG5pY2h0LCBzbyBnaWJ0IGVzIGhldXRlIGF1Y2ggbm9jaApYWFhMLgoKVW5kIHdlbm4gS29obCBub2NoIHdlaXRlcmUgNCBKYWhyZSByZWdpZXJ0LCB3aXJkIGVzIGF1Y2ggbm9jaCBYWFhYTCBnZWJlbiA7KQoKRGVzaGFsYjogR0VCVCBLT0hMIEtFSU5FIENIQU5DRQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvbmRpbmVuLVdpdHogKFNseWZveCwgMTEuIFNlcCAxOTk4LCAxODo0Njo1NCk6Cn4jISBvbj1TbHlmb3ggb3Q9OTA1NTMyMzk1IG9nPWFsbGdlbWVpbmVzCkVpbmUgQmxvbmRpbmUgd2lyZCB1ZWJlcmZhbGxlbi4KRGEga29tbXQgZWluIE1hbm4gaW0gU2Nod2FyemVuIFVtaGFuZyB1bmQgbWl0IE1hc2tlIHZvcmJlaSwgdmVyamFndCBkZW4KVWViZWx0YWV0ZXIKdW5kIG1hY2h0IG1pdCBkZW0gRGVnZW4gZWluICJaIiBpbiBkZW4gQmF1bS4KRXIgZnJhZ3Q6ICJOYSwgd2VyIGJpbiBpY2g/IgpEYSBzYWd0IGRpZSBCbG9uZGluZTogIlp1cGVybWFuISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClppdGF0ZSBpbiAuc2lncyAoWmFybml5YSwgMTIuIFNlcCAxOTk4LCAxODoxOToyMSk6CmViZW4gZ2VmdW5kZW46CgoiQmVzb25kZXJzIGZyYXVlbnZlcmFjaHRlbmQgc29sbGVuIGphIFNjaHd1bGVucG9ybm9zIHNlaW4sIHdlZ2VuIGRlcgogZWtsYXRhbnRlbiBNaV9hY2h0dW5nIGRlciBRdW90ZW5yZWdlbHVuZywgZGllIGdhbnogb2ZmZW5zaWNodGxpY2gKIHNleGlzdGlzY2hlIE1vdGl2ZSBoYXQuIiAoVGhvcnN0ZW4gR3VlbnRoZXIpCiAKClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdpdGFycmlzdGVuIChEaWVkZXIsIDE3LiBTZXAgMTk5OCwgMjI6NDc6MjIpOgpEaWUgc2llYmVuIGdyb2Vzc3RlbiBMdWVnZW4gZGVyIEdpdGFycmlzdGVuOgoKMS4gRGllIEdpdGFycmUgaXN0IGdlc3RpbW10CjIuIEljaCBrYW5uIGF1Y2ggb2huZSBTdGltbWdlcmFldCBzcGllbGVuCjMuIEJlaW0gbmFlY2hzdGVuIFN0dWVjayBzcGllbGUgaWNoIGtlaW4gU29sbwo0LiBEYXMgc3BpZWxlIGljaCBEaXIgdm9tIEJsYXR0CjUuIE5vdGVuIHNpbmQgZnVlciBtaWNoIGtlaW4gUHJvYmxlbQo2LiBCZWltIFNvbG8gaGFiIGljaCBtaWNoIHdpZWRlciBuaWNodCBnZWhvZXJ0CjcuIEljaCBoYWIgZG9jaCBsZWlzZXIgZ2VkcmVodCEKCkRpZWRlciwgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHaXRhcnJpc3RlbiAoWWFyZW4sIDE3LiBTZXAgMTk5OCwgMjM6MTU6MDcpOgp+IyEgcm49RGllZGVyIHJ0PTkwNjA2NTI0MiByZz13aXR6ZQp+IyEgdGlkPTkwNjA2NTI0MgpEaWUgU2Flbmdlcmx1ZWdlOiAnSWNoIHNjaHJlaWJlIGRhbm4genVtIG5hZWNoc3RlbiBNYWwgbmVuIFRleHQgZGF6dS4nCkRpZSBNYW5hZ2VybHVlZ2U6ICdEYSB3byBpaHIgc3BpZWx0LCBnaWJ0IGVzIGF1Y2ggQ2F0ZXJpbmchJwpEaWUgTWl4ZXJsdWVnZTogJ1dlbm4gZGVyIFNhYWwgdm9sbCBpc3Qga2xpbmd0IGRhcyB2aWVsIGJlc3NlciEnCgpZYXJlbiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZ1ZXIgQWxpbmUgKFJvY2h1cywgMjEuIFNlcCAxOTk4LCAxNzozMzoyNSk6CkF1cyBkZS50YWxrLmpva2VzOiAiNTAgR3J1ZW5kZSwgd2FydW0gZXMgYmVzc2VyIGlzdCwgZWluIE1hbm4genUKc2VpbiIgLSBBbGluZSBoYXQgZGFuYWNoIGdlZnJhZ3QgdW5kIGVzIGlzdCBlaWdlbnRsaWNoIGVoZXIKbWFlbm5lcmZlaW5kbGljaDogOi0pCgotVGVsZWZvbmdlc3ByYWVjaGUgZGF1ZXJuIDMwIFNla3VuZGVuLgotSW4gU3BpZWxmaWxtZW4gc2luZCBOYWNrdGUgZmFzdCBpbW1lciB3ZWlibGljaC4KLUR1IGhhc3QgS2VubnRuaXNzZSB1ZWJlciBBdXRvcyB1bmQgUGFuemVyLgotNS1UYWdlLVVybGF1YmUgYmVub2V0aWdlbiBudXIgZWluZW4gS29mZmVyLgotU29ubnRhZ3MgRnVzc2JhbGwuCi1EdSBtdXNzdCBuaWNodCBkYXMgU2V4dWFsbGViZW4gZGVpbmVyIEZyZXVuZGUgYmVyYXRlbi4KLURpZSBTY2hsYW5nZW4gdm9yIGRlbiBLbG9zIHNpbmQgdW0gODAgJSBrbGVpbmVyLgotRGVuIGFsdGVuIEZyZXVuZGVuIGlzdCBlcyBlZ2FsLCBvYiBkdSB6dS0gb2RlciBhYmdlbm9tbWVuIGhhc3QuCi1CZWltIEZyaXNldXIgd2lyc3QgZHUgbmljaHQgYmVrbGF1dC4KLVdlbm4gZHUgZHVyY2ggUHJvZ3JhbW1lIHphcHBzdCBtdXNzdCBkdSBuaWNodCBqZWRlc21hbCBhbmhhbHRlbiB3ZW5uIGR1CmplbWFuZCB3ZWluZW4gc2llaHN0LgotRGVpbiBIaW50ZXJuIGlzdCBrZWluIEZha3RvciBiZWkgVm9yc3RlbGx1bmdzZ2VzcHJhZWNoZW4uCi1BbGxlIGRlaW5lIE9yZ2FzbWVuIHNpbmQgZWNodC4KLUVpbiBCaWVyYmF1Y2ggbWFjaHQgZGljaCBuaWNodCB1bnNpY2h0YmFyIGZ1ZXIgZGFzIGFuZGVyZSBHZXNjaGxlY2h0LgotRHUgYnJhdWNoc3Qga2VpbmUgVGFzY2hlIHZvbGxlciB1bm51ZXR6ZW0gWmV1ZyBtaXQgZGlyIHJ1bXNjaGxlcHBlbi4KLUR1IGJyYXVjaHN0IGRpciBuaWNodCBkZW4gUm9jayBmZXN0enVoYWx0ZW4gamVkZXNtYWwgd2VubiBkdSBlaW5lClRyZXBwZSBpbiBkZXIgVmZmZW50bGljaGtlaXQgaGluYXVmZ2Voc3QuCi1CcmF1Y2hzdCBuaWNodCBpbiBHcnVwcGVuIGF1ZnMgS2xvIGdlaGVuLgotRGVpbiBOYWNobmFtZSBibGVpYnQuCi1LYW5uc3QgZGFzIEhvdGVsYmV0dCB1bmdlbWFjaHQgdmVybGFzc2VuLgotV2VubiBkZWluZSBBcmJlaXQga3JpdGlzaWVydCB3aXJkLCBkZW5rc3QgZHUgbmljaHQgZGFzcyBhbGxlIFdlbHQgZGljaApoZWltbGljaCBoYXNzdC4KLU1hbiBzY2hlbmt0IGRpciBtZWhyIEdsYXVid3VlcmRpZ2tlaXQgZnVlciBkZW4ga2xlaW5zdGVuIEFrdCB2b24KSW50ZWxsaWdlbnouCi1CcmF1Y2hzdCBuaWNodCBkYXMgS2xvIHp1IHB1dHplbi4KLUR1IGthbm5zdCBnZWR1c2NodCB1bmQgZmVydGlnIHNlaW4gaW4gMTAgTWludXRlbi4KLUJlaW0gU2V4IGJyYXVjaHN0IGR1IGRpY2ggbmllbWFscyB1bSBkZWluZW4gUnVmIHp1IGJldW5ydWhpZ2VuLgotSG9jaHplaXRzcGxhZW5lIGVybGVkaWdlbiBzaWNoIHZvbiBhbGxlaW5lLgotV2VubiBkaWNoIGplbWFuZCBuaWNodCBpcmdlbmR3b2hpbiBlaW5sYWVkdCBrYW5uIGVzIHRyb3R6ZGVtIG5vY2ggZGVpbgpGcmV1bmQgc2Vpbi4KLURlaW5lIFVudGVyd2Flc2NoZSBrb3N0ZXQgMTUsLSBETSBpbSBEcmVpZXJwYWNrLgotS2VpbmVyIGRlaW5lciBBcmJlaXRza29sbGVnZW4gYmVzaXR6dCBkaWUgRmFlaGlna2VpdCBkaWNoIHp1bSBXZWluZW4genUKYnJpbmdlbi4KLUR1IGJyYXVjaHN0IGRpY2ggbmljaHQgaGFsc2Fid2FlcnRzIHJhc2llcmVuLgotV2VubiBkdSAzNCBiaXN0IHVuZCBsZWRpZyBtYWNodCBkYXMga2VpbmVtIHdhcyBhdXMuCi1LYW5uc3QgYW4gZWluZW0gUGlua2Vsd2V0dGJld2VyYiB0ZWlsbmVobWVuLgotQWxsZXMgaW4gZGVpbmVtIEdlc2ljaHQgYmVoYWVsdCBkaWUgZ2xlaWNoZSBGYXJiZS4KLUR1IGthbm5zdCBQcmFlc2lkZW50IHdlcmRlbi4KLUthbm5zdCBpbiBhbGxlciBSdWhlIGVpbmUgUnVuZGZhaHJ0IGltIEF1dG8gZ2VuaWVzc2VuLgotQmx1bWVuIGJyaW5nZW4gYWxsZXMgd2llZGVyIGluIE9yZG51bmcuCi1OaWVtYWxzIG11c3N0IGR1IGRpY2ggdWViZXIgZGllIEdlZnVlaGxlIGFuZGVyZXIgYmV1bnJ1aGlnZW4uCi1EZW5rc3QgYW4gU2V4IDkwICUgZGVyIFplaXQgbmFjaCBkZW0gQXVmc3RlaGVuLgotS2FubnN0IGVpbiB3ZWlzc2VzIFQtU2hpcnQgYW4gZWluZW0gT3J0IG1pdCB2aWVsIHNwcml0emVuZGVtIFdhc3NlcgphbmhhYmVuLgotRHJlaSBQYWFyIFNjaHVoZSBzaW5kIG1laHIgYWxzIGdlbnVnLgotS2FubnN0IGFsbGVzIHNhZ2VuIG9obmUgZGlyIEdlZGFua2VuIHp1IG1hY2hlbiwgd2FzIGRpZSBMZXV0ZSBkZW5rZW4uCi0iU3BpZWxlbiIgdm9yIGRlbSBTZXggaXN0IG9wdGlvbmFsLgotTHVpcyBNaWd1ZWwsIFRvbSBDcnVpc2UgdW5kIGFuZGVyZSBleGlzdGllcmVuIGluIGRlaW5lbSBVbml2ZXJzdW0KbmljaHQuCi1EdSBrYW5uc3QgZGVpbiBULVNoaXJ0IGF1c3ppZWhlbiB3ZW5uIGVzIGhlaXNzIGlzdC4KLUR1IGJyYXVjaHN0IGRlaW5lIFdvaG51bmcgbmljaHQgamVkZXNtYWwgenUgcHV0emVuIHdlbm4gamVtYW5kIHp1CkJlc3VjaCBrb21tdC4KLURpZSBNZWNoYW5pa2VyIGx1ZWdlbiBkaWNoIG5pY2h0IGFuLgotRXMgaW50ZXJlc3NpZXJ0IGRpY2ggbmljaHQgZGllIEJvaG5lIHdlbm4gamVtYW5kIGRlaW5lbiBuZXVlbgpIYWFyc2Nobml0dCBiZW1lcmt0IG9kZXIgbmljaHQuCi1LYW5uc3QgbWl0IGVpbmVtIEZyZXVuZCBzdHVuZGVubGFuZyBvaG5lIGVpbiBXb3J0IHp1IHNhZ2VuIGZlcm5zZWhlbgpvaG5lIHp1IGRlbmtlbiAiZXIgaXN0IHNhdWVyIGF1ZiBtaWNoIi4KLUVpbiBlaW56aWdlciBHZW11ZXRzenVzdGFuZCB3YWVocmVuZCBkZXIgZ2FuemVuIFplaXQuCi1LYW5uc3QgQ2xpbnQgRWFzdHdvb2QgYmV3dW5kZXJuIG9obmUgYW0gSHVuZ2VydHVjaCB6dSBuYWdlbiwgdW0gaWhtCmFlaG5saWNoIHp1IHNlaGVuLgotQnJhdWNoc3QgbmljaHQgYXVmIGVpbiBhbmRlcmVzIEtsbyB6dSBnZWhlbiwgd2VpbCAiZGllc2VzIHNlaHIKc2NobXV0emlnIGlzdCIuCi1LZW5uc3Qgd2VuaWdzdGVucyAyMCBGb3JtZW4gZWluIEJpZXIgenUgb2VmZm5lbi4KLUthbm5zdCBkaWNoIG1pdCBnZW9lZmZuZXRlbiBCZWluZW4gc2V0emVuIG9obmUgZGFydWViZXIgbmFjaHp1ZGVua2VuIHdhcwpkdSBnZXJhZGUgYW5oYXN0LgotRnVlciBkaWUgZ2xlaWNoZSBBcmJlaXQuLi4gbWVociBHZWxkLgotR3JhdWVzIEhhYXIgdW5kIEZhbHRlbiBibGVpYmVuLgotSG9jaHplaXRza2xlaWQ6IDI1MDAsLSBETTsgZ2VsaWVoZW5lciBBbnp1ZzogMTUwLC0gRE0KLUVzIGJldW5ydWhpZ3QgZGljaCBuaWNodCwgd2VubiBqZW1hbmQgaGludGVyIGRlaW5lbSBSdWVja2VuIHNwcmljaHQuCi1FcyBnaWJ0IGltbWVyIGVpbiBTcGllbCBpbSBGZXJuc2VoZW4uCi1OYXNjaHN0IG5pY2h0IGFtIERlc3NlcnQgYW5kZXJlciBMZXV0ZS4KLURpZSBGZXJuYmVkaWVudW5nIGdlaG9lcnQgbnVyIGRpci4KLURpZSBMZXV0ZSBzY2hhdWVuIGRpciBuaWUgaW4gZGVuIEF1c3NjaG5pdHQgd2VubiBzaWUgbWl0IGRpciBzcHJlY2hlbi4KLUthbm5zdCBlaW5lbiBGcmV1bmQgYmVzdWNoZW4gb2huZSBpaG0gZWluIEdlc2NoZW5rIG1pdGJyaW5nZW4genUKbXVlc3Nlbi4KLUthbm5zdCBLb25kb21lIGthdWZlbiwgb2huZSBkYXNzIGRlciBBbmdlc3RlbGx0ZSBzaWNoIGRpciBuYWNrdAp2b3JzdGVsbHQuCi1XZW5uIGR1IGVpbmVuIEZyZXVuZCBuaWNodCBhbnJ1ZnN0IG9id29obCBkdSBpaG0gZ2VzYWd0IGhhc3QgZHUgd3VlcmRlc3QKZXMgdHVuLCBzYWd0IGVyIG5pY2h0IGRlaW5lbiBGcmV1bmRlbiwgZGFzcyBkdSBkaWNoIHZlcmFlbmRlcnQgaGFldHRlc3QuCi1XZW5uIGplbWFuZCBhdWYgZWluZXIgUGFydHkgbWl0IGRlaW5lbSBQdWxsb3ZlciBlcnNjaGVpbnQsIGthbm5zdCBkdQpub2NoIHNlaW4gRnJldW5kIHdlcmRlbi4KLU5pZW1hbHMgbGFlc3N0IGR1IGRpciBlaW5lIHNleHVlbGxlIEVyZmFocnVuZyBlbnRnZWhlbiB3ZWlsICJkdSBuaWNodAp3aWxsc3QiLgotRHUgZGVua3N0IGRpZSBJZGVlIGVpbmVtIEh1bmQgZWluZW4gVHJpdHQgenUgZ2ViZW4gaXN0IGdyb3NzYXJ0aWcuCi1OZXVlIFNjaHVoZSB0dW4gZGVpbmVuIEZ1ZXNzZW4gdWViZXJoYXVwdCBuaWNodHMgYW4uCi1Qb3Jub2ZpbG1lIHNpbmQgZnVlciBkaWNoIGdlbWFjaHQuCi1EdSBicmF1Y2hzdCBkaWNoIG5pY2h0IGFuIEdlYnVydHN0YWdlIHVuZCBKYWhyZXN0YWdlIGVyaW5uZXJuLgotRGFzcyBkaXIgZWluZSBQZXJzb24gbmljaHQgc3ltcGhhdGlzY2ggaXN0LCBoZWlzc3QgbmljaHQsIGRhc3MgZXMgZGlyCm5pY2h0IGdlZmFsbGVuIHd1ZXJkZSBndXRlbiBTZXggbWl0IGlociB6dSBoYWJlbi4KLU1pdCA0MDAgTWlvLiBTcGVybWllbiBwcm8gU2NodXNzIGtvZW5udGVzdCBkdSBkaWUgV2VsdGJldm9lbGtlcnVuZwp2ZXJkb3BwZWxuLCB6dW1pbmRlc3QgaW4gZGVyIFRoZW9yaWUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZ1ZXIgQWxpbmUgKEphbWVzb24sIDIxLiBTZXAgMTk5OCwgMTc6NDI6NDUpOgp+IyEgcm49Um9jaHVzIHJ0PTkwNjM5MjAwNSByZz13aXR6ZQp+IyEgdGlkPTkwNjM5MjAwNQo6LSkpKSAzMCBTZWt1bmRlbiBmdWVyIGVpbiBUZWxlZm9uYXQgOikKU28gaGF0IHVucyBtYWwgZWluIERvemVudCBkaWUgS29tbXVuaWthdGlvbnNhcnRlbiBlcmtsYWVydDoKCi0gSGFsYi1EdXBsZXg6IFp3ZWkgTWFlbm5lciB0ZWxlZm9uaWVyZW4gbWl0ZWluYW5kZXIuCiAgICAgICAgICAgICAgIFNpZSB3ZWNoc2VsbiBzaWNoIGJlaW0gU3ByZWNoZW4gYWIuCi0gU2ltcGxleDogRWluIE1hbm4gdW5kIGVpbmUgRnJhdSB0ZWxlZm9uaWVyZW4uCiAgICAgICAgICAgIERlciBNYW5uIGtvbW10IG5pY2h0IHp1IFdvcnQuCi0gVm9sbC1EdXBsZXg6IFp3ZWkgRnJhdWVuIHRlbGVmb25pZXJlbi4KICAgICAgICAgICAgICAgIFNpZSByZWRlbiBnbGVpY2h6ZWl0aWcgYXVmZWluYW5kZXIgZWluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZ1ZXIgQWxpbmUgKFllbmRpLCAyMS4gU2VwIDE5OTgsIDE4OjUxOjUzKToKfiMhIHJuPVJvY2h1cyBydD05MDYzOTIwMDUgcmc9d2l0emUKfiMhIHRpZD05MDYzOTIwMDUKRXMgd2FlcmUgbWlyIHZvZWxsaWcgZWdhbCwgb2IgZGVyIEFuZ2VzdGVsbHRlIHNpY2ggbWlyIGJlaW0gS29uZG9ta2F1ZiBuYWNrdAp2b3JzdGVsbHQuIEVzIHdhZXJlIG1pciBhdWNoIGVnYWwsIHdlbm4gZXIgc2ljaCBfbWljaF8gYmVpbSBLb25kb21rYXVmIG5hY2t0CnZvcnN0ZWxsZW4gc29sbHRlLgpBbGxlcmRpbmdzLCB3ZW5uIHNpY2ggX2RpZV8gQW5nZXN0ZWxsdGUgX21pcl8gYmVpbSBLb25kb21rYXVmIG5hY2t0IHZvcnN0ZWxsdCwKaGFldHRlIGljaCB2aWVsbGVpY2h0IGVpbiBQcm9ibGVtLi4uIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGdWVyIEFsaW5lIChBY3JpbW9uLCAyMS4gU2VwIDE5OTgsIDE5OjA3OjE5KToKfiMhIHJuPUphbWVzb24gcnQ9OTA2MzkyNTY1IHJnPXdpdHplCn4jISB0aWQ9OTA2MzkyMDA1ClVuZCBzbyBoYXQgdW5zIG1hbCBlaW4gRG96ZW50IGVpbmUgU2NobGVpZmUgZXJrbGFlcnQ6CgpEYXMgQmV3ZWlzcHJpbnppcCBkZXIgRnJhdWVuOgpSRVBFQVQKQmVoYXVwdHVuZwpVTlRJTCAga2VpbiBXaWRlcnNwcnVjaCBlcmZvbGd0OwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSXJhayAoRGllZGVyLCAyMi4gU2VwIDE5OTgsIDE2OjMzOjM2KToKV2FydW0gd2lyZCBpbSBJcmFrIG5pY2h0IGFtIGdsZWljaGVuIFRhZyBzZXh1ZWxsZSBBVWZrbGFlcnVuZyB1bmQKRmFocnVudGVycmljaHQgZ2VnZWJlbj8KClNpZSB3b2xsZW4gZGllIEthbWVsZSBuaWNodCBlcm11ZWRlbi4uLgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnVlciBBbGluZSAoQWxwaGEsIDIyLiBTZXAgMTk5OCwgMjM6MTY6MzEpOgp+IyEgcm49Um9jaHVzIHJ0PTkwNjM5MjAwNSByZz13aXR6ZQp+IyEgdGlkPTkwNjM5MjAwNQpEdSByYXNpZXJzdCBEaWNoIG5pY2h0IGhhbHNhYndhZXJ0cz8KSWVlZWguCkFscGhhIC0gaW1tZXIgZ2VwZmxlZ3QhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSXJhayAoQWxib2luLCAyMy4gU2VwIDE5OTgsIDE1OjQ4OjI1KToKfiMhIHJuPURpZWRlciBydD05MDY0NzQ4MTYgcmc9d2l0emUKfiMhIHRpZD05MDY0NzQ4MTYKRGVyIGlzdCBhYmVyIHNjaHdhY2guIFNlaXQgZGVtIEdvbGZrcmllZyB1bmQgZGVtIEVtYmFyZ28gZHVlcmZ0ZW4gCmRpZSBJcmthZXIgaW1tZXIgbm9jaCBtZWhyIEZyYXVlbiBhbHMgS2FtZWxlIGhhYmVuLgoKanVzdCBteSBzZW5mCkFsYm9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXVzc3BlcnJlbiAoWmFybml5YSwgMjQuIFNlcCAxOTk4LCAxNTozOToxNCk6Ck5ldWVzIGF1cyBkZXIgQmVyYXR1bmc6IAoKaGF0IGVzIGVpbmVyIGdlc2NoYWZmdCwgc2ljaCBhdWYgc2VpbmVtIFNlcnZlcmFjY291bnQgYXVzenVzcGVycmVuLi4uLiBzdWNoZW4Kc3VjaGVuIHVuZCB3YXMgd2Fycz8gCgpjaG1vZCBhLXJ3eCBnZW1hY2h0IGltIEhPTUUuLi4uIHVuZCB0c2NodWVzcyAuYmFzaF9sb2dpbiA6KQoKTGV1dGUgZ2lidHMuLi4gZWlnZW50bGljaCBmYXN0IG9yaWdpbmVsbAoKWmFybml5YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVhbG1zIChaYXJuaXlhLCAyNC4gU2VwIDE5OTgsIDE2OjE0OjI4KToKV2llZGVyIEJlcmF0dW5nOiAKCldpciBoYWJlbiBudSBadWdhZW5nZSB1ZWJlciBQQVAgdW5kIGRhIG11c3MgYmVpbSBCZW51dHplcm5hbWVuIGVpbiBSZWFsbQphbmdlaGFuZ2VuIHdlcmRlbiwgbmFlbWxpY2ggIkB1bmkta29lbG4uZGUuZHQiIG9kZXIgYWVobmxpY2hlcy4uLiB2ZXJzY2hpZWRlbmUKUmVhbG1zIGhhbHQuIAoKRnJhZ3QgZWluIE1pdGFyYmVpdGVyIGdlcmFkZSwgd2FzIGRlbm4gZGllc2VzIHJlYWwtbXMgc2VpLi4uLiByZWFsIG1pY3Jvc29mdApvZGVyIHNvPwoKKmtpY2hlcioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBvd2VydXNlciAoRGllZGVyLCAyNC4gU2VwIDE5OTgsIDE2OjE3OjIzKToKTWVpbmVtIEJydWRlciBwYXNzaWVydDoKS29tbXQgbmUgRnJhdSBpbiBkZW4gTGFkZW4gbWl0IG5lbSBEcnVja2VyIHVudGVyIGRlbSBBcm0gdW5kIGJlc2Nod2VydCBzaWNoLApkYXNzIGVyIGtlaW4gR2VsYiBtZWhyIGRydWNrdCwgdW5kIHdlbm4gZXIgR3J1ZW4gZHJ1Y2tlbiBzb2xsLCBkcnVja2UgZXIKQmxhdS4uLgoKTmFqYSwgZGVyIEZhbGwgd2FyIGphIGtsYXI6IFRpbnRlbmtsZWNrc2VyLCBiZWkgZGVtIGRpZSBHZWxiLVBhdHJvbmUgbGVlcgp3YXIuLi4gCgpEaWVkZXIsIGtpY2hlcm5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwZmZ0IChEaWVkZXIsIDI1LiBTZXAgMTk5OCwgMDA6MDM6MDApOgpXYXMgaGFiZW4gU3BpZWx6ZXVnZWlzZW5iYWhuZW4gbWl0IEJydWVzdGVuIGdlbWVpbnNhbT8KCkJlaWRlcyBpc3QgZnVlciBkaWUgS2luZGVyIGdlbWFjaHQsIGFiZXIgZGllIFZhZXRlciBzcGllbGVuIGRhdWVybmQgZGFtaXQuLi4KCkRpZWRlciwga2ljaGVybmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBUlRFIChSb2NodXMsIDI5LiBTZXAgMTk5OCwgMTg6NTc6MTkpOgooYXVzIGRlLnRhbGsuam9rZXMpCgo+R2VyYWRlIGluIGRlciBQcm9ncmFtbXplaXR1bmcgZ2VsZXNlbjoKPjIwLjE1LTIwLjQ1IEhlbG11dCBLb2hsIGFscyBXYWhsa2FlbXBmZXIKPlRoZW1lbmFiZW5kOiBOYXR1cmthdGFzdHJvcGhlbgo+MjAuNDUtMjEuMTUgVHN1bmFtaXMKPjIxLjE1LTIyLjAwIEVyZGJlYmVuCj51c3cudXN3LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3ByYWNoIGRlciBEcmFjaGUuLi4gKEhpZ2hsYW5kZXIsICAyLiBPa3QgMTk5OCwgMTM6MDA6MzYpOgouLi4gc28gZWluIE1pc3QuIExpZWJsaW5nLCB3aXIgaGFiZW4gSGFsYmxpbmdlLiBIb2wgZGllIEthbW1lcmphZWdlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcm1laWR1bmcgdm9uIFByb2R1a3RoYWZ0dXVuZyBpbiBkZW4gVVNBIChSb2NodXMsICAyLiBPa3QgMTk5OCwgMTk6NTI6NDUpOgooYXVzIGRlLnRhbGsuam9rZXMpCgpBdWYgVEVTQ08nUyBUSVJJTUlTVSBERVNFUlQ6Ck5pY2h0IGF1ZiBkZW4gS29wZiBzdGVsbGVuIChnZWRydWNrdCBhdWYgZGVtIFBhY2t1bmdzYm9kZW4pCgpBdWYgTUFSS1MgJiBTUEVOQ0VSIEJSRUFEIFBVRERJTkc6ClByb2R1a3Qgd2lyZCBuYWNoIGRlbSBFcndhZXJtZW4gaGVpc3Mgc2Vpbi4KCkF1ZiBkZXIgVmVycGFja3VuZyBlaW5lcyBST1dFTlRBLUJ1ZWdlbGVpc2VuczoKS2xlaWRlciBuaWNodCBhbSBLb2VycGVyIGJ1ZWdlbG4uCgpBdWYgQk9PVFMgS2luZGVyLUh1c3RlbnNhZnQ6Ck5hY2ggZGVyIEVpbm5haG1lIG5pY2h0IGF1dG9mYWhyZW4gb2RlciBlaW5lIE1hc2NoaW5lIGJlZGllbmVuCgpBdWYgTllUT0wgKGVpbiBTY2hsYWZtaXR0ZWwpCldhcm51bmc6IEthbm4gTXVlZGlna2VpdCB2ZXJ1cnNhY2hlbgoKQXVmIGVpbmVtIGtvcmVhbmlzY2hlbiBLdWVjaGVubWVzc2VyOgpXYXJudW5nOiBOaWNodCBpbiBLaW5kZXIgZ2VsYW5nZW4gbGFzc2VuCgpBdWYgZWluZXIgY2hpbmVzaXNjaGVuIFdlaWhuYWNodHMtTGljaHRlcmtldHRlOgpOdXIgenVyIEJlbnV0enVuZyBpbm5lcmhhbGIgdW5kIGF1c3NlcmhhbGIgZGVzIEhhdXNlcy4KCkF1ZiBTQUlOU0JVUlknUyBFcmRudWVzc2VuOgpXYXJudW5nOiBFbnRoYWVsdCBOdWVzc2UKCkF1ZiBlaW5lciBOdXNzcGFja3VuZyBlaW5lciBhbWVyaWthbmlzY2hlbiBGbHVnbGluaWU6CkFubGVpdHVuZzogUGFja3VuZyBvZWZmbmVuLCBOdWVzc2UgZXNzZW4uCgpBdWYgZWluZXIgc2Nod2VkaXNjaGVuIEtldHRlbnNhZWdlOgpWZXJzdWNoZW4gU2llIG5pY2h0LCBkaWUgS2V0dGUgbWl0IElocmVuIEhhZW5kZW4gYW56dWhhbHRlbi4KCkF1ZiBlaW5lciBSb3NpbmVucGFja3VuZzoKV2FydW0gdmVyc3VjaGVuIFNpZSBuaWNodCB1ZWJlciBpaHIgTGllYmxpbmdzLU11ZXNsaSB6dSB3ZXJmZW4/CgpBdWYgZWluZXIgU3BpZWx6ZXVndmVycGFja3VuZzoKRGFzIFRyYWdlbiBkaWVzZXMgQmF0bWFuLVVtaGFuZ2VzIHZlcmxlaWh0IGVpbmVtIG5pY2h0IGRpZSBGaGlna2VpdAp6dSBGbGllZ2VuLgoKQXVmIGVpbmVyIE1pa3Jvd2VsbGU6CkRpZSBNaWtyb3dlbGxlIGlzdCBuaWNodCBnZWVpZ25ldCwgSGF1c3RpZXJlIHp1IHRyb2NrbmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZlcm1laWR1bmcgdm9uIFByb2R1a3RoYWZ0dXVuZyBpbiBkZW4gVVNBIChKaWRkdSwgIDIuIE9rdCAxOTk4LCAxOTo1Nzo0Nyk6Cn4jISBybj1Sb2NodXMgcnQ9OTA3MzUwNzY1IHJnPXdpdHplCn4jISB0aWQ9OTA3MzUwNzY1CipwcnVzdCEhKgphYmVyIHd1c3N0ZXQgaWhyIGRhcyBkaWUgamV0enQgaW4gRExhbmQgYXVjaCBhbmZhbmdlbj8KQXVmIG5lciBLZWxsb2dzIFBhY2t1bmc6Clp1dGF0ZW46Ck1haXMsIFp1Y2tlciwgTWVsYXNzZSwgRXJkbnVlc3NlLi4uLi4uCkhpbndlaXMgZnVlciBBbGVyZ2lrZXI6Ckthbm4gU3B1aHJlbiB2b24gRXJkbnVzcyBlbnRoYWx0ZW4uCgpKaWRkdSBsYWcgbmFjaCBEZWluZW0gQXJ0aWtlbCBhbSBCb2RlbiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYW5ydWZ1bmdzc2VxdWVueiAoR3JpbW1ib3JuLCAgMy4gT2t0IDE5OTgsIDE0OjA0OjIyKToKfiMhIG9uPVN0ZXJuY2hlbiBvdD05MDc0MTU0OTYgb2c9YWxsZ2VtZWluZXMKcQpvCnEKcQoqKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcm51bmdlbiEgKEZlbHB1ciwgIDUuIE9rdCAxOTk4LCAwOTowODowNSk6CklociBsYWNodCBkYXJiZXIsIGljaCBhdWNoISBBYmVyIHNvd2FzIGlzdCBkb3J0IHdpcmtsaWNoIHNjaG9uIHBhc3NpZXJ0LiBIYXQKZG9jaCBuZSBhbHRlIERhbWUgaWhyZW4gSHVuZCBvZGVyIHdhcnMgbmUgS2F0emUgaW4gZGVyIE1pa3Jvd2VsbGUgdHJva25lbgp3b2xsZW4uIFRpZXIgdG9kIC0+IEtsYWdlIGFuIEhlcnN0ZWxsZXIgZGVyIE1pa3Jvd2VsbGUsIEtsYWdlIGdld29ubmVuLCB3ZWlsCmtlaW5lIFdhcm51bmcsIGRhc3MgbWFuIFRpZXJlIGRhIG5pY2h0IHRyb2NrbmVuIGRhcmYuCgpEaWUgc3Bpbm5lbiBkaWUgQW1pcyEKCmNpYW8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXJudW5nZW4hIChKaWRkdSwgIDUuIE9rdCAxOTk4LCAyMToxNzo0MSk6Cn4jISBybj1GZWxwdXIgcnQ9OTA3NTcxMjg1IHJnPXdpdHplCn4jISB0aWQ9OTA3NTcxMjg1Ck5hdHVlcmxpY2ggc3Bpbm5lbiBkaWUsIHd1c3N0IGljaCBzY2hvbiBsYW5nZSB1bmQgbmljaHQgbnVyIHdlaWwgc2llIFRpZXRlIGluCmRpZSBNaWtyb3dlbGxlIHN0ZWNrZW4gOykKYnR3IGF1ZiBkZW4gS2FmZmVlYmVjaGVybiBzdGVodCAnQXR0ZW50aW9uLCBjb250ZW50IG1heSBiZSBob3QhJyBuYWphIGlzIGRvY2gKS2FsdGVyIEthZmZlIDopCgpGaWRLRwpKaWRkdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTy1Ub24gR3JpbW1ib3JuIChIaWdobGFuZGVyLCAgNi4gT2t0IDE5OTgsIDEzOjMxOjIzKToKVW5kIGljaCBzaXR6ZSBoaWVyIGluIHNjaHdhcnplciBVbnRlcndhZXNjaGUgdW5kIHNwaWVsZSBhbiBtaXIgcnVtLgogKGF1czogZGUuYWx0Lm11ZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPLVRvbiBHcmltbWJvcm4gKE1hcmN1cywgIDYuIE9rdCAxOTk4LCAxMzozNjoyMSk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTkwNzY3MzQ4MyByZz13aXR6ZQp+IyEgdGlkPTkwNzY3MzQ4MwpEdSBoYXN0IGRlbiBBdXRvciB2ZXJnZXNzZW4uLiAiR3JpbW1ib3JuIi4KOikKCkNpYW8sIE0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTy1Ub24gR3JpbW1ib3JuIChHYW5kbywgMTAuIE9rdCAxOTk4LCAxNDowMjo0OSk6Cn4jISBybj1NYXJjdXMgcnQ9OTA3NjczNzgxIHJnPXdpdHplCn4jISB0aWQ9OTA3NjczNDgzCmF1cyBkZXIgVElUQU5JQzoKU2NoYWV1YmxlIGlzIHNhdWVyIGF1ZiBLb2hsLgpkZW5uOgpLb2hsIGdlaHQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYWdlbHByb2JlLi4uIChIZXJhLCAxMC4gT2t0IDE5OTgsIDE4OjEwOjUwKToKRWluIE5hZ2VsZmFicmlrZW5udCBrb21tdCBpbiBlaW5lIFdlcmJlYWdlbnR1ciB1bmQgd2lsbCBuZSB3ZXJiZWthbXBhZ25lIGluCkF1ZnRyYWcgZ2ViZW4uLi4KTmFjaCAyIFdvY2hlbiB6ZWlndCBkZXIgV2VyYmVmdXp6aSBzZWluZSBFbnR3cmZlLi4uCkF1ZiBkZW0gQmlsZCBzaWVodCBtYW4gSmVzdXMgYW4gc2VpbmVtIEtyZXV6LCBkYXJ1bnRlciBzdGVoZXQ6Ck1laWVyLU5nZWwgaGFsdGVuIEV3aWchCkRhbWl0IHdhciBkZXIgTmFnZWxoZXJzdGVsbGVyIGFiZXIgbmljaCB6dWZyaWVkZW4gdW4gZ2lidCBlaW5lbiBuZXVlbiBFbnR3dXJmCmluIEF1ZnRyYWcuLi4KV2llZGVyIDIgV29jaGVuIHNwYWV0ZXIgZWluIG5ldWVyIEVudHd1cmYuLi4KZGllc21hbCBlaW4gbGVlcmVzIEtyZXV6IG1pdCBlaW5lciB6dXNhbW1lbmdla3JtbXRlbiBLcmVhdHVyIGRhcnVudGVyLgpEYXJ1bnRlciBzdGVodDogTWl0IG1laWVyIE5nZWxuIHdhZXIgZGFzIG5pY2ggcGFzc2llcnQhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpbTUFELiBBZWguLi4gTVVEXSBXYXMgd2FlcmUsIHdlbm4gLi4uIChSb2NodXMsIDEyLiBPa3QgMTk5OCwgMTY6MTc6MjMpOgooYXVzIGRlLmFsdC5tdWQpCgouLi4gZGUuYWx0Lm11ZCBzbyB3YWVyZSwgd2llIGRlLmFsdC5hZG1pbiBlcyBnZXJuZSBoYWV0dGU/Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogCi0gTmFjaCBlaW5lciBrdXJ6ZW4gdW5kIGtvbnN0cnVrdGl2ZW4gRGlza3Vzc2lvbiB1ZWJlciBTaW5uIHVuZAogIFNpbm5mcmVpaGVpdCB2b24gUHJvcGVydGllcyBlbnRzdGVodCBlaW4gR2xhdWJlbnNrcmllZyB1bmQKICBlaW5lbSBNR01GIChNb3JnZW5HcmF1ZW5NdWRsaWJGYW5hdGlrZXIpIHJ1dHNjaHQgZWluCiAgImNtc2cgcm1tdWQgVU5JdG9waWEiIGF1cy4KIAotIERpZSBFbmdlbCBVTkl0b3BpYXMgaG9lcmVuIGF1ZiwgYXVmIGRlbiBHb2V0dGVybiBoZXJ1bXp1cHJ1ZWdlbG4KICB1bmQgd2VuZGVuIHNpY2ggZGVuIE1HTUZzIHp1LiBEaWUgZm9sZ2VuZGVuIHdpbGRlbiBGbGFtZW9yZ2llbgogIHdlcmRlbiBhbHMgVHJhZmZpY25hY2h3ZWlzIGdld2VydGV0OyBkZS5hbHQubXVkLmFkdm9jYWN5IHdpcmQKICBlaW5nZWZ1ZWhydC4KIAotIGRlciBUaHJlYWQgIkNoYXJ0YS1BZW5kZXJ1bmcgamV0enQhIiBmYW5kIGRhbmsgR29kd2lucyBMYXcgZWluCiAgc2NobmVsbGVzIEVuZGUuIERpZSBQcm9wb25lbnRlbiBhdXMgR3VlbGRlbmxhbmQga29ubnRlbiBpaHJlCiAgRm9yZGVydW5nICJGYW50YXN5bmFtZW5wZmxpY2h0IHN0YXR0IFJlYWxuYW1lbnBmbGljaHQiIG5pY2h0CiAgYWxsZW4gc2NobWFja2hhZnQgbWFjaGVuLgogCi0gIlNjaGFjaC1NVUQiLURpc2t1c3Npb25lbiB3YW5kZXJuIGluIEtpbGxmaWxlcyB1bmQgYmVsYXN0ZW4KICB3ZWl0ZXJoaW4gdW5nZWxlc2VuIGRhcyBOZXR6LgogCi0gYWxzIEZyZWFreUBVTkl0b3BpYSBuYWNoIGVpbmVtICJjbXNnIG5ld211ZCBVTkl0b3BpYSIgNCBXb2NoZW4KICBzcGFldGVyIHdpZWRlciB2b24gYWxsZW4gTVVEcyBlbXBmYW5nZW4gd2lyZCB1bmQgZGVuIFVlYmVsdGFldGVyCiAgZGVzIHJtbXVkIGdldHJldSBQaSdzIExhdyBhbnByYW5nZXJ0LCBoaWphY2tlZCBEYW5zQEZpbmFsZnJvbnRpZXIKICBkaWUgTGVpdHVuZ2VuIHNhZW10bGljaGVyIE1HTURzIChNb3JnZW5HcmF1ZW5NdWRsaWJEZXJpdmF0ZSkgdW5kCiAgbGFlc3N0IHNpZSBlcnN0IHdpZWRlciBmcmVpIGFscyBpaG0gZGVyIE1HLVZlcmVpbiBlaW5lIEFibG9lc2VzdW1tZQogIHZvbiA1MCBuaWNodCBkdXJjaG51bW1lcmllcnRlbiAxMDBHcmFtbS1UYWJha2Rvc2VuIE1hcmtlICIoQWx0KS1GNCIKICB6dXNpY2hlcnQuCiAKLSBEYW5rIEdhcnRoYW5AVU5JdG9waWFzIEt1ZXJ6dW5nc3JvYm90IHdlcmRlbiBzYWVtdGxpY2hlICJHcmF0cyItCiAgUG9zdGluZ3Mgbm9jaCBzY2huZWxsZXIgZ2VjYW5jZWx0LgogCi0gQmVydEBGaW5hbGZyb250aWVyIGZvcmRlcnQgLSB2b24gIkJPRVJEIG1lLCBCb2VyZGkiLQogIFNjaGxhY2h0ZW5wb3N0aW5ncyBiZWdsZWl0ZXQgLSBkaWUgc29mb3J0aWdlIEVpbmZ1ZWhydW5nIGRlcgogIFNhdWZwZmxpY2h0IGF1ZiBzYWVtdGxpY2hlbiBvZmZpemllbGxlbiBNVURUcmVmZmVuIGltCiAgZGV1dHNjaHNwcmFjaGlnZW4gUmF1bS4KIAotIENhdHdlYXpsZUBNb3JnZW5HcmF1ZW4gbGFldWZ0IG5hY2ggZGUuYWx0LmFkbWluIHVlYmVyIHVuZCB2ZXJzdWNodAogIGRvcnQsIGVpbiBUcmVmZmVuIHp1IG9yZ2FuaXNpZXJlbi4gTmFjaGRlbSBlciBkaWUgZ2VzY2hhZXR6dGUKICBUZWlsbmVobWVyemFobCBlcmZhZWhydCwga2VocnQgbWl0IGVpbmVtICJLaW5kZXJnZWJ1cnRzdGFnZQogIG9yZ2FuaXNpZXJlbiBpcyBqYSBvZWRlIiBhdWYgZGVuIExpcHBlbiBuYWNoIGRlLmFsdC5tdWQgenVydWVjay4gQXVzCiAgRnJ1c3QgdmVyYW5zdGFsdGV0IGVyIG5vY2ggYW0gc2VsYmVuIEFiZW5kIGVpbmUgODAtTWFubi1TcG9udGFuZmV0ZQogIGluIHNlaW5lciAzZXItV0cuCiAKLSBkZS5hbHQubXVkLmZvbGtsb3JlIHdpcmQgZ2VncnVlbmRldCB1bSB1ZWJlciBkaWUgYWx0ZW4gWmVpdGVuIHp1CiAgcG9zdGVuLCBhbHMgZGUuYWx0Lm11ZCBub2NoIHNjaG9lbiBydWhpZyB3YXIKIAotIFNoaXZhQEF2YWxvbiBzY2hyZWlidCBzaWNoIGluIGRpZSBIZXJ6ZW4gYWxsZXIgS2lsbGZpbGVzIChTQ05SIDstKSApCiAKLSBHcmltbWJvcm5ATUcgZGFyZiBhdWNoIEFydGlrZWwgdW50ZXIgZGUuKiB2ZXJsZWdlbiwgbmFjaGRlbSBlciA5OCUKICBkZXIgQXJ0aWtlbCBpbiBkZS5hbHQuYWRtaW4gbmFjaCBkZS50YWxrLmJpemFycmUgdmVybGVndCBoYXQgd2lyZAogIGRlLmFsdC5hZG1pbiB3ZWdlbiB6dXdlbmlnIFRyYWZmaWMgZ2VzY2hsb3NzZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJpdHRlciB2b24gQ2FtZWxvdCAoRGllZGVyLCAxMy4gT2t0IDE5OTgsIDE3OjA3OjQyKToKV2h5IGRpZCB0aGUga25pZ2h0cyBvZiBjYW1lbG90IGNhbWUgYSBsb3Q/CgpCZWNhdXNlIHRoZSBwbGF5ZWQgd2l0aCB0aGVpciBsYW5jZWxvdCA6LSkKCkRpZWRlciwga2ljaGVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkphaHJ0YXVzZW5kcHJvYmxlbSAoQ2F0d2VhemxlLCAxNC4gT2t0IDE5OTgsIDEwOjEzOjA4KToKIEt1cnp0ZXh0OiBWZXJmYWxsIGRlciBMaXplbnogYW0gMzEuMTIuOTk5OSAvIEphaHJ0YXVzZW5kd2VjaHNlbAogCiBMYW5ndGV4dAogQmVpIGplZGVyIEFubWVsZHVuZyBhbSBSLzMgU3lzdGVtIHdpcmQgZGFzIFZlcmZhbGxzZGF0dW0gZGVyIFNBUCBSLzMKIExpemVueiAoMzEuMTIuOTk5OSkgYW5nZXplaWd0LiBNZWluZSBGcmFnZSB6aWVsdCBudW4gZGFyYXVmLCBvYiB3aXIgZGFuYWNoCiBlaW5lIFZlcnRyYWdzZXJ3ZWl0ZXJ1bmcgbWl0IFNBUCB2ZXJlaW5iYXJlbiBtfHNzZW4sIHVtIHdlaXRlciBpbSBTeXN0ZW0KIGFyYmVpdGV0ZW4genUga3ZubmVuPyBadXIgVm9yYmVyZWl0dW5nIGRlcyBkYW5uIGFuc3RlaGVuZGVuCiBKYWhydGF1c2VuZHdlY2hzZWxzICg5OTk5PT0+MTAwMDApIGlzdCBtaXIgbm9jaCB1bmtsYXIsIHdlbGNoZXIgUi8zCiBSZWxlYXNlc3RhbmQgZGllc2UgbmV1ZW4gQW5mb3JkZXJ1bmdlbiB8YmVyaGF1cHQgYWJkZWNrdC4gQml0dGUKIGluZm9ybWllcmVuIFNpZSB1bnMgZGFyfGJlciwgZGFtaXQgenUgZ2VnZWJlbmVyIFplaXQgZWluIGVudHNwcmVjaGVuZGVzCiBQcm9qZWt0IGlucyBMZWJlbiBnZXJ1ZmVuIHdlcmRlbiBrYW5uIQogCiBWaWVsZW4gRGFuayBpbSBWb3JhdXMhCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBEaWUgQW50d29ydCB2b24gU0FQOgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU2VociBnZWVocnRlciBIZXJyIC4uLiwKIGluIGlocmVyIDI2LWpkaHJpZ2VuIEdlc2NoaWNodGUgaGF0IGRpZSBTQVAgaW1tZXIgV2VpdGJsaWNrIGVyd2llc2VuIHVuZAogd2FyIHN0ZXRzIGJlbXxodCBkaWUgS3VuZGVuIGluIGlocmVyIFByb2pla3RwbGFudW5nIGF1ZiBKYWhyZSBoaW5hdXMgenUKIHVudGVyc3R8dHplbi4KIAogU2ljaGVyIGhhYmVuIFNpZSBWZXJzdGRuZG5pcywgd2VubiB3aXIgdW5zIGltIHZvcmxpZWdlbmRlbiBGYWxsIGVpbmUKIGdld2lzc2UgUGxhbnVuZ3N1bnNpY2hlcmhlaXQgdm9yYmVoYWx0ZW4uIEZ8ciBkZW4gZ2VuYW5udGVuCiBKYWhydGF1c2VuZHdlY2hzZWwgc2V0emVuIHdpciBkYXMgUi8zLVJlbGVhc2UgRVQvMTIuTyAoRVQgPQogZXh0cmF0ZXJyZXN0cmlhbCkKIHZvcmF1cy4gRWluIGRpcmVrdGVyIFVwZ3JhZGUgdm9uIEVULzExIGF1ZiBFVC8xMiBpc3QgZGVyemVpdCBuaWNodAogZ2VwbGFudCwgZGEgaW0gUmVsZWFzZSBFVC8xMi5PIHVtZmFuZ3JlaWNoZSBBbnBhc3N1bmdlbiBpbSBNb2R1bCBNVAogKE1hdGVyaWUtVHJhbnNtaXNzaW9uKSB2b3JoYW5kZW4gc2luZC4gRGllIHZvbiBkZXIgSW50ZXJnYWxha3Rpc2NoZW4KIEtvbW1pc3Npb24gdm9yZ2VzZWhlbmVuIERuZGVydW5nZW4gaW0gQmVyZWljaCBQbGFuZXRldGVudmVyd2FsdHVuZyB1bmQKIEtvbWV0ZW5kaXN0cmlidXRpb24gd2VyZGVuIGltIFJlbGVhc2UgRVQvMTIuTyBzY2hvbiBlbnRoYWx0ZW4gc2Vpbi4gCiAKIEVpbmUgVmVydHJhZ3NlcndlaXRlcnVuZyB6d2lzY2hlbiBJaHJlbSBIYXVzIHVuZCBkZXIgU0FQIGlzdCBuaWNodAogbm90d2VuZGlnLiBTb3dlaXQgSWhyZXJzZWl0cyBkaWUgamRocmxpY2hlbiBXYXJ0dW5nc2tvc3RlbiBiaXMgenUgZGllc2VtCiBaZWl0cHVua3QgYmVnbGljaGVuIHd1cmRlbiwgd2lyZCBJaG5lbiBkaWUgU29mdHdhcmUgcmVjaHR6ZWl0aWcgenVnZWJlYW10LgogCiBXaXIgaGFiZW4gSWhyZSBBbmZyYWdlIGF1ZiBXaWVkZXJ2b3JsYWdlIGZ8ciBkYXMgMy4gUXVhcnRhbCA5OTk5IHVuZAogV2VyZGVuIHVucyB6dSBEZXRhaWxmcmFnZW4gcmVjaHR6ZWl0aWcgbWl0IElocmVtIE5hY2hmb2xnZXIgaW4gVmVyYmluZHVuZwogc2V0emVuLgogCiBNZkcgU3RlZmFuIFNjaGFoYXJoYWcgKFNjb3R0eSkgLSBSLzMgRnV0dXJlIFJlbGVhc2UgUGxhbm5pbmcKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV29mdWVyIHN0ZWh0IFBDTUNJQSAoUnVtYXRhLCAxNC4gT2t0IDE5OTgsIDEyOjQwOjQyKToKKHNwb2lsZXIgc3BhY2UpCgoKCgoKCgoKCgoKCgoKCgoKCgoKUGVvcGxlIENhbid0IE1lbW9yaXplIENvbXB1dGVyIEluZHVzdHJ5IEFjcm9ueW1zCgpSdW1hdGEgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXVlbmZlaW5kbGljaGVyIFdpdHogZGVzIE1vbmF0cyAoR3JpbW1ib3JuLCAxNS4gT2t0IDE5OTgsIDEwOjA0OjMyKToKV2FzIGVyemFlaGx0IG1hbiBlaW5lciBGcmF1LCBkaWUgendlaSBWZWlsY2hlbiAoYWxzbyBibGF1ZSBBdWdlbikgaGF0PwpOaWNodHMuIFdlbm4gc2llcyBiZWltIHp3ZWl0ZW4gbWFsIG5vY2ggbmljaHQga2FwaWVydCBoYXQgaGF0cyBlaCBrZWluZW4KWndlY2suCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkludGVyZmFjZSBIYWxsIG9mIFNoYW1lIChSb2NodXMsIDE1LiBPa3QgMTk5OCwgMTY6MTU6MTcpOgpTZWh0IEV1Y2ggbWFsCiAgaHR0cDovL3d3dy5pYXJjaGl0ZWN0LmNvbS9tc2hhbWUuaHRtCmFuLiBXaWUgbWFuIEJlbnV0emVyaW50ZXJmYWNlcyBOSUNIVCBnZXN0YWx0ZW4gc29sbHRlLAp0ZWlsd2Vpc2UgcmVjaHQgd2l0emlnIGJlc2NocmllYmVuLCB3aWUgZXR3YQoiU29tZSB1c2VycyBtaWdodCBiZSB0ZW1wdGVkIHRvIHVzZSB0aGUgdGh1bWJuYWlsIGluIHRoZSBzY3JvbGwgYmFyIHRvIGFkdmFuY2UKdGhlIHJhdGUgbW9yZSByYXBpZGx5LAogIGFuZCBpdCBkb2VzOiBiZWNhdXNlIHRoZSBwcm9ncmFtIGFjY2VwdHMgZGF0ZXMgaW4gdGhlIHJhbmdlIGZyb20gdGhlIHllYXIKMTgwMCB0byB0aGUgeWVhciA5OTk5LCBlYWNoCiAgcGl4ZWwgbW92ZW1lbnQgb2YgdGhlIHRodW1ibmFpbCBjaGFuZ2VzIHRoZSBkYXRlIGJ5IDUxIHllYXJzLiBTaW5jZQpiaXJ0aGRhdGVzIGNhbm5vdCBiZSBpbiB0aGUKICBmdXR1cmUsIGFuZCB0aGVyZSBwcm9iYWJseSBhcmVuJ3QgdG9vIG1hbnkgY29tcHV0ZXIgdXNlcnMgYm9ybiBpbiB0aGUgeWVhcgoxODAwLCB0aGUgcmFuZ2Ugb2YKICBhY2NlcHRhYmxlIHZhbHVlcyBjb3VsZCBwcm9iYWJseSBiZSByZWR1Y2VkIHdpdGhvdXQgZXhjbHVkaW5nIHRvbyBtYW55CnBlb3BsZS4iCgogIFJvY2h1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJpdHRlciB2b24gQ2FtZWxvdCAoWWVuZGksIDE1LiBPa3QgMTk5OCwgMTg6MzI6MDMpOgp+IyEgcm49RGllZGVyIHJ0PTkwODI5MTI2MiByZz13aXR6ZQp+IyEgdGlkPTkwODI5MTI2MgpEYSBnYWJzIGRvY2ggbm9jaCBkaWVzZW4gTGltZXJpY2s6CgpUaGVyZSBvbmNlIHdhcyBhIGZlbGxvdyBjYWxsZWQgTGFuY2Vsb3QsCldob20gaGlzIG5laWdoYm91cnMgd291bGQgbG9vayBvbiBhc2thbmNlIGEgbG90LApGb3Igd2hlbmV2ZXIgaGUnZCBwYXNzCkEgcHJlc2VudGFibGUgbGFzcywKVGhlIGZyb250IG9mIGhpcyBwYW50cyB3b3VsZCBhZHZhbmNlIGEgbG90LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBJbnRlcmZhY2UgSGFsbCBvZiBTaGFtZSAoUHJhLCAxNS4gT2t0IDE5OTgsIDE4OjUyOjQ2KToKfiMhIHJuPVJvY2h1cyBydD05MDg0NjA5MTcgcmc9d2l0emUKfiMhIHRpZD05MDg0NjA5MTcKRGEgbXVzcyBpY2ggbWFsIHdpZWRlciBhbiBkaWUgYmVydWVobXRlIERPUy1Cb290LU1lbGR1bmcgZGVua2VuLCB3ZW5uCm1hbiBkYXMgS2V5Ym9hcmQgYXVzZ2VzdG9lcHNlbHQgaGF0OgoKJ0tleWJvYXJkIEVycm9yLiBQcmVzcyBGMSB0byByZXN1bWUuJwoKUHJhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJbnRlcmZhY2UgSGFsbCBvZiBTaGFtZSAoSGF0ZSwgMTYuIE9rdCAxOTk4LCAxMDowMTo0NCk6Cn4jISBybj1QcmEgcnQ9OTA4NDcwMzY2IHJnPXdpdHplCn4jISB0aWQ9OTA4NDYwOTE3CkRhcyBpc3Qga2VpbmUgRE9TIEJvb3RtZWxkdW5nLiBEYXMgaGF0IG5pY2h0bWFsIHdhcyBtaXQgQmlsbHlib3kgenUgdHVuIQoKRGllc2UgTWVsZHVuZyBrb21tdCB2b20gQklPUyBkZXMgUmVjaG5lcnMgdW5kIGlzdCBkYW1pdCBkZW4gSGVyc3RlbGxlcm4KZGVyIEJvYXJkcywgYnp3IGRlciBCSU9TZSB6dXp1c2NocmVpYmVuLiBBYmVyIHNvIGdhbnogZGFlbWxpY2ggaXN0IGRpZXNlCk1lbGR1bmcgYXVjaCBnYXJuaWNodCwgZGVubiB3ZW5uIG1hbiBlaW4gS2V5Ym9hcmQgYW5zdGVja3QgdW5kIEYxIGRydWVja3QKZnVua3Rpb25pZXJ0IGVzIQoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhdCBqZW1hbmQgTHVzdCwgZGFzIEZvbGdlbmRlIHp1IGltcGxlbWVudGllcmVuPyAoUnVtYXRhLCAxNi4gT2t0IDE5OTgsIDE0OjE2OjQ3KToKWW91IGFyZSBsb29raW5nIGF0IHRoZSBzaGFmdC4gIEEgbGFyZ2UgcmVkIGJsb2NrLCBmb3VyIHVuaXRzIGJ5IG9uZSB1bml0LCAKaXMgYWJvdmUgeW91ciBoZWFkLCBkcm9wcGluZyBzbG93bHkuICBJdCBoYXMgaXRzIGxvbmcgZWRnZSBob3Jpem9udGFsbHkgCmFsaWduZWQuCgo+dHVybiB0aGUgYmxvY2sKCkkgZG9uJ3Qga25vdyBob3cgdG8gInR1cm4iIHNvbWV0aGluZy4KClRoZSBibG9jayBkZXNjZW5kcyBsb3dlci4KCj5yb3RhdGUgYmxvY2sKClRoZSBibG9jayByb3RhdGVzIGluIG1pZCBhaXIsIG5vdyB3aXRoIHRoZSBsb25nIGVkZ2UgdmVydGljYWxseSBhbGlnbmVkLgoKVGhlIGJsb2NrIGRlc2NlbmRzIGxvd2VyLgoKPm1vdmUgYmxvY2sgbGVmdAoKVGhlIGJsb2NrIHNoaWZ0cyB0byB0aGUgbGVmdC4KClRoZSBibG9jayBkZXNjZW5kcyBsb3dlci4KCj5kcm9wIGJsb2NrCgpZb3UgYXJlbid0IGhvbGRpbmcgdGhlIGJsb2NrLgoKVGhlIGJsb2NrIGRlc2NlbmRzIGxvd2VyLgoKPm1vdmUgYmxvY2sgZG93bgoKVGhlIGJsb2NrIGRyb3BzIGludG8gdGhlIG5hcnJvdyBnYXAsIGZpbGxpbmcgdGhlIGZvdXIgY29sdW1ucy4gIFRoZSAKY29sdW1ucyBmbGFzaCB0d2ljZSwgdGhlbiB2YW5pc2gsIGRyb3BwaW5nIHRoZSBibG9ja3MgYWJvdmUgdGhlbSBkb3duLiAgQSAKbXVzaWNhbCB0b25lIGlzIGhlYXJkLgoKW1lvdXIgc2NvcmUgaW5jcmVhc2VkIGJ5IDIwIV0KCkEgc3F1YXJlIGdyZXkgYmxvY2ssIHR3byB1bml0cyBieSB0d28gdW5pdHMsIGlzIG5vdyBvdmVyaGVhZCwgc2xvd2x5IApkcm9wcGluZy4KCi0tUnVtYXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkaXJuYW1lIChDYXR3ZWF6bGUsIDE2LiBPa3QgMTk5OCwgMTc6MTU6NTcpOgpBdXMgZGVtIFNVTi1EcnVja2VyLUludGVyZmFjZToKLS0tLS0KIyMjIyMjIyMjIyMKIyMKIyMgZ2V0cyB0aGUgZGlyZWN0b3J5IG5hbWUgCiMjIyMjIyMjIyMjCmRpcl9uYW1lKCkKewogICAgZXhwciBcCiAgICAgICR7MS0ufScvJyA6ICdcKC9cKVteL10qLy8qJCcgXAogICAgICBcfCAkezEtLn0nLycgOiAnXCguKlteL11cKS8vKlteL11bXi9dKi8vKiQnIFwKICAgICAgXHwgLgp9Ci0tLS0tCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5zaWNodGVuIChPcmt0b2V0ZXIsIDE2LiBPa3QgMTk5OCwgMTc6MzI6MTcpOgpGcmVpIHVlYmVyc2V0enQgdW5kIGF1cyBkZW0gR2VkYWVjaHRuaXMsIGhhYnMgaGV1dGUgaW0gQkZCUyBnZWhvZXJ0IDoKR290dCBydWZ0IGRpZSBkcmVpIG1hZWNodGlnc3RlbiBNYWVubmVyIGRlciBXZWx0IHp1IHNpY2gsIEplbHppbiwgQmlsbCBDbGludG9uCnVuZCBCaWxsIEdhdGVzLgpFciBzYWd0IGlobmVuLCBkYXMgZXIgMiB3aWNodGlnZSBCb3RzY2hhZnRlbiBmdWVyIHNpZSBoYXQgdW5kIHNpZSBkaWVzZSBpaHJlbgpMZXV0ZW4gdWViZXJtaXR0ZWxuIHNvbGxlbi4KRGllIGVyc3RlIGhhYmUgaWNoIGxlaWRlciBuaWNodCBzbyBnYW56IG1pdGJla29tbWVuLCBpc3QgYWJlciBhdWNoIG5pY2h0IHNvCndpY2h0aWcsIGRpZSB6d2VpdGUgaXN0LCBkYXMgYW0gbmFlY2hzdGVuIFRhZyBkaWUgV2VsdCB1bnRlcmdlaGVuIHdpcmQuCgpEaWUgZHJlaSB3ZXJkZW4gYWxzbyB3aWVkZXIgYXVmIGRpZSBFcmRlIGdlc2NoaWNrdCB1bmQgSmV6aW4gbGFlc3N0IGFuIHNlaW5lCmxldXRlIHZlcmJyZWl0ZW4gOiBJY2ggaGFiZSAyIHNjaGxlY2h0ZSBOYWNocmljaHRlbiBmdWVyIGV1Y2gsIGVyc3RlbnMgKHNvcnJ5LApoYWJzIHZlcmdlc2VuKSB1bmQgendlaXRlbnMsIE1vcmdlbiBnZWh0IGRpZSBXZWx0IHVudGVyLgpCaWxsIENsaW50b24gbGFlc3N0IHNvZm9ydCB2ZXJicmVpdGVuLCBkYXMgZXIgZWluZSBndXRlIHVuZCBlaW5lIHNjaGxlY2h0ZQpOYWNocmljaHQgaGF0LCBlcnN0IGRpZSBndXRlIDogRXMgZ2lidCBlaW5lbiBHb3R0LCBkaWUgc2NobGVjaHRlIGlzdCwgZGFzIGFtCm5hZWNoc3RlbiBUYWcgZGllIFdlbHQgdW50ZXJnZWh0LgpCaWxsIEdhdGVzIGxhZXNzdCBzb2ZvcnQgZGllIEludGVybmV0aG9tZXBhZ2UgYWVuZGVybiA6CkljaCBoYWJlIDIgQnJpbGxpYW50ZSBOZXVpZ2tlaXRlbiA6CjEuIEljaCBiaW4gZWluZXIgZGVyIDMgd2ljaHRpZ3N0ZW4gTWFlbm5lciBhdWYgZGVyIFdlbHQgIQoyLiBEYXMgSmFocnRhdXNlbmRwcm9ibGVtIGlzdCBnZWxvZXN0ICEKCgpPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBtZW4gYW5kIHdvbWVuIGluIG9uZSBwYXJhZ3JhcGg6IChKYW1lc29uLCAxNi4gT2t0IDE5OTgsIDIwOjA5OjE1KToKQSBtYW4gaXMgZHJpdmluZyB1cCBhIHN0ZWVwLCBuYXJyb3cgbW91bnRhaW4gcm9hZC4gQSB3b21hbiAKaXMgZHJpdmluZyBkb3duIHRoZSBzYW1lIHJvYWQuICBBcyB0aGV5IHBhc3MgZWFjaCBvdGhlciB0aGUgCndvbWFuIGxlYW5zIG91dCB0aGUgIHdpbmRvdyBhbmQgeWVsbHM6ICAiUElHISEiIFRoZSBtYW4gCmltbWVkaWF0ZWx5IGxlYW5zIG91dCBoaXMgd2luZG93IGFuZCByZXBsaWVzICJCSVRDSCEhIiBUaGV5IAplYWNoIGNvbnRpbnVlIG9uIHRoZWlyIHdheSwgYW5kIGFzIHRoZSBtYW4gcm91bmRzIHRoZSBuZXh0IApjb3JuZXIsIGhlIGNyYXNoZXMgaW50byBhIHBpZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSByb2FkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKK3EgKFN1Z2FhbiwgMTkuIE9rdCAxOTk4LCAxNjozODozNSk6CnEKKwoKaAphcmdsIG1pc3QgZGllIFRhc3RhdHVyIGdlaHQgbWFsIHdpZWRlciBuaWNodCBhbHNvIG5pY2h0IHd1bmRlcm4hISEKCioqKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaW4gbGlzdGUgKEdyaW1tYm9ybiwgMjAuIE9rdCAxOTk4LCAwMDozNTozNik6Cn4jISBvbj1IZXJvbWNmbHkgb3Q9OTA4ODI3MzY5IG9nPWFsbGdlbWVpbmVzCnEKc2NoYXUKc2NoYXUKcQpxCnEKcQp3CnNjaGF1CncKbwpxCioqcQpoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW5zaWNodGVuIChDYXVubywgMjEuIE9rdCAxOTk4LCAxMjoyNTo1Nik6Cn4jISBybj1Pcmt0b2V0ZXIgcnQ9OTA4NTUxOTM3IHJnPXdpdHplCn4jISB0aWQ9OTA4NTUxOTM3CkFscyBpY2ggZGVuIHZvciBldHdhIGVpbmVtIEphaHIgZ2Vob2VydCBoYWJlLCBnaW5nIGRlciBub2NoIHNvOgoKR290dCBiZXN0ZWxsdCBDbGludG9uLCBIdXNzZWluIHVuZCBHYXRlcyB6dSBzaWNoIHVuZCBzYWd0IGlobmVuLCBkYXNzIGluIDIwClRhZ2VuIGRpZSBXZWx0IHVudGVyZ2VoZW4gd2lyZC4gTnVuIG11c3MgamVkZXIgZGFzIHNlaW5lbiBMZXV0ZW4ga2xhcm1hY2hlbi4KCkNsaW50b24gYmVydWZ0IGVpbmUgUHJlc3Nla29uZmVyZW56IGVpbiB1bmQgc2FndDogSWNoIGhhYmUgZWluZSBndXRlIHVuZCBlaW5lCnNjaGxlY2h0ZSBOYWNocmljaHQuIERpZSBndXRlOiBHb3R0IHNwcmljaHQgbWl0IGRlbSBQcmFlc2lkZW50ZW4gZGVyIFVTQSwgZGllCnNjaGxlY2h0ZTogaW4gMjAgVGFnZW4gZ2VodCBkaWUgV2VsdCB1bnRlci4KCkh1c3NlaW4gYmVzdGVsbHQgc2VpbmVuIGdhbnplbiBTdGFhdCBuYWNoIEJhZ2RhZCwgdHJpdHQgYXVmIGRlbiBCYWxrb24gdW5kCnJ1ZnQ6IEljaCBoYWJlIGVpbmUgc2NobGVjaHRlIHVuZCBlaW5lIHNlaHIgc2NobGVjaHQgTmFjaHJpY2h0LiBEaWUgc2NobGVjaHRlOgpBbGxhaCBzcHJpY2h0IG1pdCBkZW0gdW5nbGFldWJpZ2VuIFByYWVzaWRlbnRlbiBkZXIgVVNBLCBkaWUgc2VociBzY2hsY2h0ZTogaW4KMjAgVGFnZW4gZ2VodCBkaWUgV2VsdCB1bnRlci4KCkdhdGVzIHJ1ZnQgc2VpbmVuIFN0YWIgenVzYW1tZW4gdW5kIG1laW50OiBJY2ggaGFiZSBlaW5lIGd1dGUgdW5kIGVpbmUgc2VocgpndXRlIE5hY2hyaWNodC4gRGllIGd1dGU6IEdvdHQgc3ByaWNodCBtaXQgZGVtIGFtZXJpa2FuaXNjaGVuIFByYWVzaWRlbnRlbgooaWNoIHdlaXNzLCBoYXR0ZW4gd2lyIHNjaG9uIG1hbCkuIERpZSBzZWhyIGd1dGU6IEluIGRyZWkgV29jaGVuIHNwcmljaHQKa2VpbmVyIG1laHIgdWViZXIgZGllIEZlaGxlciB2b24gV2luZG93cyA5OCAoZGFtYWxzIG5vY2ggOTUpLgoKU28gZ2VodCBkYXMhCgpDLiBObwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBiZWltIFJvbGxlbnNwaWVsIChSb2NodXMsIDIyLiBPa3QgMTk5OCwgMjE6NTU6MzQpOgooaHR0cDovL3d3dy5oZWltMS50dS1jbGF1c3RoYWwuZGUvfndvbGZpL25ldWxpY2guaHRtbCkKClVuc2VyIGVyc3RlcyBBYmVudGV1ZXIgbWl0IGVpbmVtIG5ldWVuIFJvbGxlbnNwaWVsIGhhdCBzbyBhbmdlZmFuZ2VuOiBXaXIgc2luZAptaXQgZWluZW0gUmF1bXNjaGlmZiB6dSBlaW5lbSBQbGFuZXRlbiBnZWZsb2dlbi4gRGVyIGFsbGVyZXJzdGUgV3VyZiBpbSBuZXVlbgpTcGllbCB3YXIKZGVyIExhbmR1bmdzd3VyZiB1bnNlcmVzIFBpbG90ZW4gLSBrcml0aXNjaGVyIEZlaGxlciwgZGFzIFJhdW1zY2hpZmYgc3R8cnp0IGFiCnVuZCBmYXN0IGFsbGUgc2luZCB0b3QuCgpTTDogSG1tbSAuIC4gLiBhbHNvIGd1dCwgaWhyIHdhY2h0IHNjaHdlaXRvdC5nZWJhZGV0IGF1Zi4gQW0gbmNoc3RlbiBNb3JnZW4KZXJyZWljaHQgaWhyIGRlbiBQbGFuZXRlbi4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV1bGljaCBiZWltIFJvbGxlbnNwaWVsIChDYXVubywgMjYuIE9rdCAxOTk4LCAxMjoyODowOCk6Cn4jISBybj1Sb2NodXMgcnQ9OTA5MDg2MTM0IHJnPXdpdHplCn4jISB0aWQ9OTA5MDg2MTM0CkRhcyBTcGllbCB3YXIgZG9jaCBtaXQgU2ljaGVyaGVpdCBkaWUgU0YtVmVyc2lvbiB2b24gUm9sZU1hc3Rlciwgb2Rlcj8KCkMuIE5vCgooZnJhZ3QgbmljaHQsIHdpZXNvIGljaCBkYXJhdWYga29tbWUpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpoYWhhIChEYW5jZXIsIDI3LiBPa3QgMTk5OCwgMDg6NTI6MjkpOgpTY2hhdXQgc2VsYnN0OgoKaHR0cDovL3d3dy55YWhvby5kZS9zY2hsYWd6ZWlsZW4vMTk5ODEwMjYva3VyemJlcmljaHRlLzkwOTQwODkwMC0wMDAwMDAyNDYyLmh0Cm1sCgpEYW5jZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogaGFoYSAoSmlkZHUsIDI3LiBPa3QgMTk5OCwgMjM6MTc6MjkpOgp+IyEgcm49RGFuY2VyIHJ0PTkwOTQ3NDc0OSByZz13aXR6ZQp+IyEgdGlkPTkwOTQ3NDc0OQpobW1tbW0uLi4KLT5XaXIgaGFiZW4gZGFzIHZvbiBJaG5lbiBnZXdobHRlIERva3VtZW50Cicvc2NobGFnemVpbGVuLzE5OTgxMDI2L2t1cnpiZXJpY2h0ZS85MDk0MDg5MDAtMDAwMDAwMjQ2Mi5odCcgdm9tIE5ldHoKZ2Vub21tZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmFnZSAoRGllZGVyLCAyOC4gT2t0IDE5OTgsIDAxOjQzOjUwKToKV2FzIGlzdCBWaWFncmEtT3h5ZD8KLi4uCi4uLgpMYXR0ZW5yb3N0Li4uCgpEaWVkZXIsIGtpY2hlcm5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBoYWhhIChaaWxsdXMsIDI4LiBPa3QgMTk5OCwgMTA6MDE6NTApOgp+IyEgcm49SmlkZHUgcnQ9OTA5NTI2NjQ5IHJnPXdpdHplCn4jISB0aWQ9OTA5NDc0NzQ5CndhcnVtIGxvZXNjaHN0IGR1IGF1Y2ggZGllIGxldHp0ZW4gMiBCdWNoc3RhYmVuIGRlciBVUkwuLi4ga2VpbiBXdW5kZXIgZGFzcyBEdQpkYW5uIGRhcyBEb2t1bWVudCBuaWNodCBmaW5kZXN0IDstKQoKemlsbHVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogaGFoYSAoUHJhLCAyOC4gT2t0IDE5OTgsIDExOjI1OjM4KToKfiMhIHJuPVppbGx1cyBydD05MDk1NjUzMTAgcmc9d2l0emUKfiMhIHRpZD05MDk0NzQ3NDkKWWFob28gaXN0IGxhbmd3ZWlsaWcuIERlciBBcnRpa2VsIGluIGRlciB0YXogZGFydWViZXIgaGF0IHdlbmlnc3RlbnMgV2l0ejoKCmh0dHA6Ly93d3cudGF6LmRlL350YXovOTgxMDI3LnRhei93YV9UOTgxMDI3LjE4NC5odG1sCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGhhaGEgKFNoYW5uYXJhLCAyOC4gT2t0IDE5OTgsIDEyOjE4OjM1KToKfiMhIHJuPUppZGR1IHJ0PTkwOTUyNjY0OSByZz13aXR6ZQp+IyEgdGlkPTkwOTQ3NDc0OQpUamEsIHZpYSBkZXIgTmFjaHJpY2h0ZW51ZWJlcnNpY2h0IGhhZXR0ZXN0IGR1IGRpZXNlbiAnV2l0eicgbGVzZW4ga29lbm5lbiwgZXMKd2FyIHVlYnJpZ2VucyBlaW5lIE9yZGVuYXVzemVpY2hudW5nIGZ1ZXIgZGVuIFRpdGFuaWMtUmVnaXNzZXVyICpnKgoKU2hhbm5hcmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbiBKdWRlIHVuZCBHb3R0IChSb2NodXMsIDI5LiBPa3QgMTk5OCwgMTc6MTg6NTkpOgooQXVzIGRlLnRhbGsuam9rZXMpCgpHb3R0IHNpdHp0IHdpZSBpbW1lciBhdWYgV29sa2Ugc2llYmVuLiBTZWl0IGVpbmlnZXIgWmVpdCBocnQgZXIKdW50ZW4gYXVmIGRlciBFcmRlIGVpbmVuIGFsdGVuIEp1ZGVuIGphbW1lcm4gdW5kIHdlaW5lbi4KCklyZ2VuZHdhbm4gd2lyZCBlcyBpaG0genUgYnVudCB1bmQgZXIgZnJhZ3QgZGVuIEp1ZGVuOiAiV2FzIGlzdCBkZW5uCmxvcz8gV2FydW0gamFtbWVyc3QgRHU/IgoKRGVyIEp1ZGUgYW50d29ydGV0OiAiTWVpbiBTb2huIGlzdCBDaHJpc3QgZ2V3b3JkZW4hIgoKR290dDoiIE5hIHVuZD8gTWVpbmVyIGRvY2ggYXVjaC4iCgpKdWRlOiAiVW5kLCB3aWUgaGFzdCBEdSBkYXJhdWYgcmVhZ2llcnQ/IgoKR290dDogIkljaCBoYWJlIGVpbiBuZXVlcyBUZXN0YW1lbnQgZ2VtYWNodCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaW5kb3dzIE5UIChSb2NodXMsICAzLiBOb3YgMTk5OCwgMTY6Mjc6MDUpOgpGZWhsZXJtZWxkdW5nOgoiRGVyIFRocmVhZC1LaWxsZXIgaGF0IHNpY2ggdWViZXJnZWJlbiwKIGRhIGVpbiBUaHJlYWQgYWJnZXNjaG9zc2VuIHd1cmRlLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbmJydWNoc2Jlc2NocmVpYnVuZyAoS2FydG9mZmVsLCAgMy4gTm92IDE5OTgsIDE2OjU2OjU0KToKJ0RpZSBUYWV0ZXIgbXVzc3RlbiBtZWhyZXJlIFR1ZXJlbiBvZWZmbmVuIHVuZCBoYWJlbiBkZW4gU2NocmFuayBkYW5uCmdld2FsdHNhbSBlcmJyb2NoZW4uJwoKJ1RvZmZlbCAtIHR1dCBkZXIgSGFscyBhbGxlaW4gYmVpbSBHZWRhbmtlbiB3ZWgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFaW5icnVjaHNiZXNjaHJlaWJ1bmcgKFllbmRpLCAgNC4gTm92IDE5OTgsIDIyOjM3OjU5KToKfiMhIHJuPUthcnRvZmZlbCBydD05MTAxMDg2MTQgcmc9d2l0emUKfiMhIHRpZD05MTAxMDg2MTQKV2llc28/IERhcyBpc3QgZG9jaCB2b2VsbGlnIG5vcm1hbGVzIERldXRzY2ghIFNpZWhlIGF1Y2ggIkVyIGVyYnJhY2ggZGFzClNpZWdlbCB1bmQgYmVnYW5uIHp1IGxlc2VuLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVpbmJydWNoc2Jlc2NocmVpYnVuZyAoS2FydG9mZmVsLCAgNC4gTm92IDE5OTgsIDIyOjQ2OjU4KToKfiMhIHJuPVllbmRpIHJ0PTkxMDIxNTQ3OSByZz13aXR6ZQp+IyEgdGlkPTkxMDEwODYxNApOYSB1bmQsIGtsYW5nIHRyb3R6ZGVtIGx1c3RpZy4KCidUb2ZmZWwgLSBzY2hhdXQgZ2VybiBtYWwgZHVyY2ggZGllIGZhbHNjaGUgQnJpbGxlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVpbmJydWNoc2Jlc2NocmVpYnVuZyAoVG1tLCAgNS4gTm92IDE5OTgsIDAyOjA5OjI2KToKfiMhIHJuPVllbmRpIHJ0PTkxMDIxNTQ3OSByZz13aXR6ZQp+IyEgdGlkPTkxMDEwODYxNApIZWlzc3QgZXMgbmljaHQgJ0VyIGJyYWNoIGRhcyBTaWVnZWwuJz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hZW5uZXItV0cgKEdyaW1tYm9ybiwgMTAuIE5vdiAxOTk4LCAxMzozODo1Nyk6CkRpZSBHZWhlaW1uaXNzZSBkZXIgTWFlbm5lci0gV0cKCgpOYWNoIGRlciBHZWJ1cnQgbXVzcyBkZXIgTWFubiBub2NoIGdlbmF1IHp3ZWltYWwgaW4gc2VpbmVtIExlYmVuIGVpbmVuIAp3YWVybWVuZGVuLCBzY2h1ZXR6ZW5kZW4gU2Nob3NzIHZlcmxhc3Nlbi4gRGFzIGVyc3RlbWFsLCB3ZW5uIGVyIHNlaW4KS2luZGVyemltbWVyIHJhZXVtdC4gRGFzIHp3ZWl0ZW1hbCwgd2VubiBlciBzZWluZSBrdXNjaGVsaWctbWllZmlnZQpKdW5nZ2VzZWxsZW4tV0cgdmVybGFlc3N0LCB1bSBtaXQgZWluZXIgRnJhdSB6dXNhbW1lbnp1bGViZW4uIEZ1ZXIgdmllbGUKTWFlbm5lciBpc3QgZGllc2VyIFNjaHJpdHQgZGFzIHdhaHJlIEdlYnVydHN0cmF1bWEuIERlbm4gZGllIE1hZW5uZXItV0cKaXN0IGVpbiBmcmllZGxpY2hlciwgaWR5bGxpc2NoZXIgT3J0LCBlaW5lIGFya2FkaXNjaGUgTGFuZHNjaGFmdCBhdXMKdmVyc3RyZXV0ZW4gVGVubmlzc29ja2VuLCBCdW5kZXNsaWdhLVN0ZWNrdGFiZWxsZW4sIGdldHJvY2tuZXRlbgpaaW1tZXJwYWxtZW4gdW5kIFNvcGhpZS1NYXJjZWF1LVBsYWthdGVuLiBEZXIgU2Nob2NrIGlzdCBncm9zcywgd2Vubgp3aXIgYXVzIGRpZXNlbSBQYXJhZGllcyB2ZXJ0cmllYmVuIHdlcmRlbi4KClZpZWxsZWljaHQgbGFlc3N0IHNpY2ggZGllIE1hZW5uZXItV0cgYW0gYmVzdGVuIGFuaGFuZCBpaHJlcyBzcGlyaXR1ZWxsZW4gCk1pdHRlbHB1bmt0ZXMgZXJrbGFlcmVuLiBFcyBpc3QgZGVyIEJpZXJrYXN0ZW4uIE9kZXIsIHJpY2h0aWdlcjogRGVyCkthc3RlbiBCaWVyLiBHYW56IGVnYWwsIG9iIGF1cyBkaWVzZW0gZ2V0cnVua2VuIHdpcmQsIG9kZXIgbmljaHQgLSBlcwpnZWh0IGltbWVyIGRhcnVtLCAiZWluZW4gS2FzdGVuIEJpZXIgaW0gSGF1cyB6dSBoYWJlbiIuIERpZXNlciBLYXN0ZW4KQmllciBpc3QgZGVyIGF1Z2VuZmFlbGxpZ2UgQmV3ZWlzIGVpbmVyIGdydW5kZWhybGljaGVuLCBnZXJhZGV6dQpiYXVhcmJlaXRlcmhhZnRlbiBCb2RlbnN0YWVuZGlna2VpdCwgZGllIHdpciB1bnMgdHJvdHogdW5zZXJlciBsYWhtZW4KU2NobGlwc3RyYWVnZXItSm9icyBiZXdhaHJ0IGhhYmVuLiBFaW4gTWFubiBicmF1Y2h0IGVpbmVuIEJpZXJrYXN0ZW4sCnVtIGVpbmVtIGFuZGVyZW4gTWFubiBzZWluZSBadW5laWd1bmcgYXVzenVkcnVlY2tlbjogIktvbW0gZG9jaCBtYWwKdm9yYmVpLCB3aXIgaGFiZW4gYXVjaCBgbiBLYXN0ZW4gQmllciBpbSBIYXVzLiIKCkRlciBLYXN0ZW4gZGllbnQgYXVzc2VyZGVtIGFscyBMZWdpdGltYXRpb24gYWxsZXIgbW9lZ2xpY2hlbgpBa3Rpdml0YWV0ZW4sIGRpZSBvaG5lIGlobiB6aWVsbG9zLCBqYSBsYWVwcGlzY2ggZXJzY2hlaW5lbiB3dWVyZGVuOgoiRGFubiB0cm9tbWVsbiB3aXIgZWluIHBhYXIgTGV1dGUgenVzYW1tZW4sIHNjaG5hcHBlbiB1bnMgZWluZW4gQmFsbCwKZ2VoZW4gaW4gZGVuIFBhcmssIHVuZCB3aXIgYnJpbmdlbiBlaW5lbiBLYXN0ZW4gQmllciBtaXQuIiBadW0gS2FzdGVuCkJpZXIgZ2Vob2VyZW4gaW4gZGVyIE1hZW5uZXItV0cgemFobHJlaWNoZSBSaXR1YWxlLCBldHdhIGRhcywga2VpbmVuCkZsYXNjaGVub2VmZm5lciB6dSBoYWJlbiwgdW0gZGllIEZsYXNjaGUgd29ydGxvcyBtaXR0ZWxzIEZldWVyemV1ZywKUm9ocnphbmdlLCBUaXNjaGthbnRlIG9kZXIgYW0gS2FzdGVuIHNlbGJzdCB6dSBvZWZmbmVuIC0gd29iZWkgZGllCmxldHp0ZSBWYXJpYW50ZSBzaWNoZXIgZGllIHNjaG9lbnN0ZSBpc3QsIGRlciBLYXN0ZW4gQmllciBhbHMKdm9sbGtvbW1lbmVzIGdlc2NobG9zc2VuZXMgU3lzdGVtLiBLZWluIFd1bmRlciB1ZWJyaWdlbnMsIGRhc3MgbWFuCk1hZW5uZXIsIGRpZSBsYW5nZSBpbiBNYWVubmVyLVdHcyBnZWxlYnQgaGFiZW4sIG9mdCBhbiBlaW5lcgprcm9ua29ya2VuZm9lcm1pZ2VuIE5hcmJlIHVudGVyIGRlciBGdXNzc29obGUgZXJrZW5udC4KCk1pdCBkZW0gS2FzdGVuIEJpZXIsIGRlc3NlbiBCZWRldXR1bmcgZ2FyIG5pY2h0IHp1IHVlYmVyc2NoYWV0emVuIGlzdCwKaGFlbmd0IGVpbiBhbmRlcmVzIE1hZW5uZXItV0ctdHlwaXNjaGVzIFBoYWVub21lbiB6dXNhbW1lbi4gV2FzIGRlbgpQcm90ZXN0YW50ZW4gaWhyIEtpcmNoZW50YWcsIGRlbiBSYXZlcm4gaWhyZSBMb3ZlLVBhcmFkZSwgZGVuClRlbGVrb20tQWt0aW9uYWVyZW4gaWhyZSBIYXVwdHZlcnNhbW1sdW5nLCBkYXMgc2luZCBkZW4gaW4gV0dzCm9yZ2FuaXNpZXJ0ZW4gTWFlbm5lcm4gZGllIGludGVybmF0aW9uYWxlbiBGdXNzYmFsbHR1cm5pZXJlIEVNIHVuZCBXTToKZWluIGdyb3NzZXMgc2lubnN0aWZ0ZW5kZXMgR2VtZWluc2NoYWZ0c2VybGVibmlzLiBBbGxlaW4gZGFzCkJld3Vzc3RzZWluLCBkYXNzIGVzIHNpY2ggenVyIHNlbGJlbiBaZWl0IE1pbGxpb25lbiBhbmRlcmUgZ2VuYXVzbyBtaXQKRXJkbnVzc2ZsaXBzIHVuZCBlaW5lbSBLYXN0ZW4gQmllciB2b3IgZGVtIEZlcm5zZWhlciBnZW11ZXRsaWNoIGdlbWFjaHQKaGFiZW4sIHNjaGFmZnQgamVuZXMgcXVhc2ktZXJvdGlzY2hlIFp1c2FtbWVuZ2Vob2VyaWdrZWl0c2dlZnVlaGwsIGRhcwptYW4gc29uc3QgbnVyIGR1cmNoIEVpbm5haG1lIHZvbiBFY3N0YXN5IG9kZXIgZGllIEF1c3NjaHVldHR1bmcgZWluZXIKc2Nob2VuZW4gRGl2aWRlbmRlIGVycmVpY2h0LiAKCkZhc3Qgc28gd2ljaHRpZyB3aWUgZGVyIEthc3RlbiBCaWVyIGlzdCBkZXIgYmxhdWUgTXVlbGxzYWNrLiBFcgpyZWR1emllcnQgbmljaHQgbnVyIGRpZSBHYWVuZ2UgenVtIENvbnRhaW5lciBhdWYgZWluZW4gcHJvIE1vbmF0LCBlcgpnYXJhbnRpZXJ0IGF1Y2gsIGRhc3MgZGVyIEtvbnRha3QgenUgZGVuIEVsdGVybiBuaWNodCB2b2VsbGlnIGFicmVpc3N0OgpFdHdhIGFsbGUgc2VjaHMgYmlzIGFjaHQgV29jaGVuIHNjaGxlcHBlbiBXRy1NYWVubmVyIGlocmUgU2NobXV0endhZXNjaGUKaW4gZGVtIHZvbiBpbm5lbiBmZXVjaHQgYmVzY2hsYWdlbmVuIGJsYXVlbiBNdWVsbHNhY2sgenUgTWFtYS4gRGVubiBkaWUKTWFlbm5lci1XRyBoYXQga2VpbmUgV2FzY2htYXNjaGluZSBvZGVyIGJlbnV0enQgc2llIG5pY2h0LgoKRGFzIGhhdCBuaWNodHMgbWl0IEZhdWxoZWl0IHp1IHR1biwgZWJlbnNvd2VuaWcgd2llIGRpZSBkaXZlcnNlbgpTZWRpbWVudHNjaGljaHRlbiBTY2htdXR6Z2VzY2hpcnIuIFZpZWxtZWhyIGtvbW10IGVzIGluIE1hZW5uZXItV0dzIHp1CmVpbmVyIHBoeXNpa2FsaXNjaGVuIEFub21hbGllIHZvbiBrb3NtaXNjaGVuIEF1c21hc3NlbjogRGFzIEdlc2V0eiwgZGFzcwpFbmVyZ2llIG5pY2h0IHZlcmxvcmVuIGdlaGVuIGthbm4sIHdpcmQgaW4gamVkZXIgTWFlbm5lci1XRyB0YWdlaW4sCnRhZ2F1cyBhdWZzIG5ldWUgd2lkZXJsZWd0LiBFbmVyZ2llIHdpcmQgaGllciBzcHVybG9zIGFiZ2VzYXVndCwgYmlzCnNlbGJzdCBkZXIgZ3JvZXNzdGUgRWhyZ2Vpemxpbmcgc2VpbmUgQWt0aXZpdGFldGVuIGRhcmF1ZiBiZXNjaHJhZW5rdCwKZWluZSBLdWhsZSBpbiBkaWUgRmVybnNlaGNvdWNoIHp1IHNpdHplbiB1bmQgYWIgdW5kIHp1ICJtYWNoZW4gd2lyCm1vcmdlbiIgdW5kICJibG9zcyBrZWluZW4gU3RyZXNzIiB6dSBudXNjaGVsbi4gV2VubiB1ZWJlcmhhdXB0LCBkZW5uIG5hY2gKamFocmVsYW5nZW0gWnVzYW1tZW53b2huZW4gYmVzY2hyYWVua3Qgc2ljaCBkaWUgdmVyYmFsZSBLb21tdW5pa2F0aW9uCmluIGRlciBNYWVubmVyLVdHIHp1bWVpc3QgYXVmIHZlcnNjaGllZGVuZSBJbnRvbmF0aW9uZW4gZGVzIEtvc2V3b3J0cwoiQWx0ZXIiLiAiQWx0ZXIiIG9obmUgQmV0b251bmcgYmVkZXV0ZXQ6ICJIYWxsbywgd2llIGdlaHQncywgd2llIHdhcgpkZWluIFRhZz8iICJBbHRlZWVyIiwgZ2VkZWhudDogQXVzZHJ1Y2sgZ3Jvc3NlciBCZWdlaXN0ZXJ1bmcgdW5kCkFuZXJrZW5udW5nLCBldHdhIHdlbm4gZWluIE1pdGdsaWVkIGRlciBXRyBQaXp6YSBnZWhvbHQgaGF0LiAiQWx0ZXIhIiwKbmFjaGRydWVja2xpY2g6IER1IHN0ZWhzdCBpbSBCaWxkLgoKTWFuIG1lcmt0IHNjaG9uLCBpbiBkZXIgTWFlbm5lci1XRyBoZXJyc2NoZW4gdm9yeml2aWxpc2F0b3Jpc2NoZQpadXN0YWVuZGUuIFZpZWxlIGRvcnQgcHJha3RpemllcnRlbiBWZXJoYWx0ZW5zd2Vpc2VuIHNpbmQgbnVyIGFscwp0aWVmdmVyd3VyemVsdGVyIEFiZXJnbGF1YmUgenUgZXJrbGFlcmVuOiBOaWUgZGVuIEtsb3NldHRkZWNrZWwKcnVudGVya2xhcHBlbiwgZGFzIGJyaW5ndCBVbmdsdWVjayEgRGllIGhpbnRlcmVuIFJlZ2lvbmVuIGRlcwpLdWVobHNjaHJhbmtzIHNpbmQgZ2VzY2h1ZXR6dGVyIExlYmVuc3JhdW0gZnVlciBtdXRpZXJ0ZSBOYWhydW5nc21pdHRlbAp1bmQgZnVlciBNZW5zY2hlbiB0YWJ1ISBDb21pYy1MZWt0dWVyZSBlcmxlaWNodGVydCBkZW4gU3R1aGxnYW5nISBEYXMKaGVpa2xlIFRoZW1hIFRvaWxldHRlbmxla3R1ZXJlIGhhdCBpbiBkaWVzZW0gWnVzYW1tZW5oYW5nIGJlc29uZGVyZQpCZXdlaXNrcmFmdDogV2lyIE1hZW5uZXIgd29sbGVuIGVzIHVucyB1ZWJlcmFsbCBzbyBnZW11ZXRsaWNoIHdpZSBtb2VnbGljaAptYWNoZW4uIFdpciB3ZXJkZW4gdm9uIGVpbmVtIE5lc3R0cmllYiBnZXN0ZXVlcnQsIHdpZSBlciBpbiBkZXIKVGllcndlbHQga2VpbiB6d2VpdGVzIE1hbCB2b3Jrb21tdC4gV2lyIGhhYmVuIGRlbiBTY2hyZWJlcmdhcnRlbiwgZGllCkVja2tuZWlwZSB1bmQgZGllIEJ1c2luZXNzLUNsYXNzIGVyZnVuZGVuLCBkYW1pdCB3aXIgZXMgdWViZXJhbGwgc2Nob2VuCmhlaW1lbGlnIGhhYmVuOiBpbiBkZXIgIktvbG9uaWUga2xlaW5lIFp1Zmx1Y2h0IiwgaW4gIkxvdGhpJ3MKUHJhZXBlbHN0dWViY2hlbiIsIGluIGRlciAiRXhlY3V0aXZlLUxvdW5nZSIuIFVuZCBlYmVuIGluIGRlcgpNYWVubmVyLVdHLiAKCkF1cyBkaWVzZW0gQmlvdG9wIHdlcmRlbiB3aXIgamFlaCBoZXJhdXNnZXJpc3Nlbiwgd2VubiB3aXIgenVtIGVyc3RlbgpNYWwgaW4gdW5zZXJlbSBMZWJlbiBtaXQgZWluZXIgRnJhdSB6dXNhbW1lbnppZWhlbi4gQWxzIHVuc2VyZQpNYWVubmVyLVdHIHZvbiBkZXIgRmF1c3QgZGVyIGhldGVyb3NleHVlbGxlbiBBbnppZWh1bmcgemVyc2NobWV0dGVydAp3dXJkZSwgZXJlaWx0ZSBhbGxlIG1laW5lIEZyZXVuZGUgZGFzc2VsYmUgU2NoaWNrc2FsOiBGcmF1ZW4sIGRpZSBpbgpkYXMgWnVzYW1tZW5sZWJlbiB1bnMgdm9yaGVyIHZvZWxsaWcgdW5iZWthbm50ZSBLb21wb25lbnRlbgpoZXJlaW5icmFjaHRlbi4gVm9yIGFsbGVtIGthbHRlLCBzY2huZWlkZW5kZSBWZXJudW5mdDogIldpZXNvIGVpbmVuCmdhbnplbiBLYXN0ZW4/IERhcyB0cmlua2VuIHdpciBkb2NoIG5pZSEiIEZydWVoZXIga2F1ZnRlbiB3aXIKTGViZW5zbWl0dGVsIHN0dWVja3dlaXNlIGltIFNwYWV0a2F1ZiBkZXIgVGFua3N0ZWxsZSwgamV0enQgYmVrb21tZW4gd2lyCkVpbmthdWZzemV0dGVsIGFuIGRpZSBIYW5kLCBkaWUgaW4gZGVyIFJlaWhlbmZvbGdlIGRlciBXYXJlbnJlZ2FsZSBpbQpWZXJicmF1Y2hlcm1hcmt0IGdlb3JkbmV0IHNpbmQuIFZvcmJlaSBpc3QgZXMgYXVjaCBtaXQgZGVyIGdlcmFkZXp1CkJpb2xla3NjaGVuIEhhcm1vbmllc3VjaHQsIGRpZSB3aXIgYXVzIGRlciBNYWVubmVyLVdHIGdld29laG50CndhcmVuLiBadW0gZXJzdGVuIE1hbCBzdGVsbGVuIHdpciBmZXN0LCBkYXNzIG1hbiBQcm9ibGVtZSBhdWNoIGFuZGVycwpsb2VzZW4ga2FubiwgYWxzIHNpZSB2b3JtIEZlcm5zZWhlciBvZGVyIGF1ZiBkZW0gS2xvIGF1c3p1c2l0emVuLiBXaXIKbGVybmVuLCBkYXNzIGVzIGF1c3NlcmhhbGIgZGVyIE1hZW5uZXItV0cgbmljaHQgenVyIFZlcnNvZWhudW5nIHJlaWNodCwKZGVtIGFuZGVyZW4gZWluIGJsdXRpZ2VzIFN0ZWFrIHp1IGJyYXRlbi4KCkFtIGdyYXZpZXJlbmRzdGVuIGFiZXIgaXN0IGRhcyBFbmRlIGRlciBHZW11ZXRsaWNoa2VpdC4gSW4gZGVyCk1hZW5uZXItV0cga2FtZW4gS3VtcGVscyB2b3JiZWkgKCJIYWJ0IGlociBgbiBLYXN0ZW4gQmllciBkYT8iKSwgaGV1dGUKaGFiZW4gd2lyIEdhZXN0ZS4gV2lyIHdlcmRlbiBwbG9ldHpsaWNoIGdlend1bmdlbiwgdW5zIEdlZGFua2VuIHp1Cm1hY2hlbiB1ZWJlciBUaXNjaGRlY2tlbiwgTWVudWVhYmZvbGdlbiB1bmQgR2VzcHJhZWNoc3N0b2ZmLCB3byBmcnVlaGVyCmRpZSBQaXp6YSBhdXMgZGVtIEthcnRvbiBhbGxlIGRyZWkgUHJvYmxlbWUgYXVmIGVpbm1hbCBsb2VzdGUgKCJNYW5uLAppc3QgZGllIFBpenphIGhldXRlIHdpZWRlciBzY2htaWVyaWcuIiAtICJLYW5uc3RlIGxhdXQgc2FnZW4uIiAtCiJNQU5OLCBJU1QgRElFIFBJWlpBLi4uIiwgdXN3LikuCgpXYWVocmVuZCBkZXIgTWlrcm9rb3NtdXMgTWFlbm5lci1XRyBzaWNoIHNlbGJzdCBnZW51ZyBpc3QsIGdlcmF0ZW4gd2lyCm51biBzdGFlbmRpZyBtaXQgZGVyIEF1c3NlbndlbHQgaW4gQmVydWVocnVuZzogbWl0IFRoZWF0ZXJuLCBNdXNlZW4sCkVpbnJpY2h0dW5nc2hhZXVzZXJuIHVuZCBtaXQgZGVuIE11ZWxsY29udGFpbmVybiBoaW50ZW4gYXVmIGRlbQpIb2YuIEVyc3QgaW0gWnVzYW1tZW5sZWJlbiBtaXQgZWluZXIgRnJhdSB3ZXJkZW4gd2lyIGxhbmdzYW0genUKZnVua3Rpb25zdHVlY2h0aWdlbiBNaXRnbGllZGVybiBkZXIgc296aWFsZW4gR2VtZWluc2NoYWZ0LiBBYmVyIGRpZXNlCkV2b2x1dGlvbiB2b20gSG9laGxlbmJld29obmVyIHp1bSBIb21vIGxlYmVuc2dlZmFlaHJ0aWVuc2lzIGlzdCBlaW4Kc2NobWVyemhhZnRlciBQcm96ZXNzLCBkZXIgdW5zIHZpZWxlIE9wZmVyIGFidmVybGFuZ3QuIFp1bSBCZWlzcGllbApLdXJ0cyBIZW1kZW4tVHJpY2ssIGRlciBlaW5lbSBkYXMgQnVlZ2VsbiBlcnNwYXJ0ZTogZWluIHVuZ2VidWVnZWx0ZXMKSGVtZCBlaW5lbiBUYWcgbGFuZyB1bnRlciBlaW5lbSBQdWxsb3ZlciBhbnppZWhlbiwgc28gZGFzcyBlcyBhbQpuYWVjaHN0ZW4gVGFnIG5pY2h0IG1laHIgdW5nZWJ1ZWdlbHQgYXVzc2llaHQsIHNvbmRlcm4gc28sIGFscyBzZWkgZXMKZ2VidWVnZWx0IHdvcmRlbiB1bmQgZGFubiBhbSBLb2VycGVyIHplcmtuaXR0ZXJ0LiBOdW4ga2FubiBtYW4gZGFzIEhlbWQKbm9jaCB6d2VpIFRhZ2Ugb2huZSBQdWxsb3ZlciBhbnppZWhlbiEgV2lyIGhhYmVuIGlobiBkYWZ1ZXIgYmV3dW5kZXJ0LApCZWF0ZSBoYXQgaWhtIG5haGVnZWxlZ3QsIGVpbmVuIEJ1ZWdlbGt1cnMgenUgYmVsZWdlbi4KCkZyYW5rIHBmbGVndGUgc2VpbmVuIFNlc3NlbCBzbyB2b3IgZGVuIEZlcm5zZWhlciB6dSBzY2hpZWJlbiwgZGFzcyBlcgpkZW4gRnVzcyBiZXF1ZW0gYXVmIGRlbiBGZXJuc2VodGlzY2ggYXVmbGVnZW4ga29ubnRlLCB1bSBtaXQgZGVyCm5hY2t0ZW4gWmVoZSBkaWUgUHJvZ3JhbW1lIHp1IHdlY2hzZWxuIHVuZCBkaWUgTGF1dHN0YWVya2UgenUKcmVnZWxuLiBFaW5lIHNjaG9lbmUsIGtvZXJwZXJsaWNoZSBGb3JtIHZvbiBJbnRlcmFrdGl2aXRhZXQsIGVpbmUKc3ltYmlvdGlzY2hlIEVpbmhlaXQgdm9uIE1lbnNjaCB1bmQgTWVkaXVtLCBkaWUgbGFuZ2VuIEZlcm5zZWhhYmVuZGVuCmVpbmUgZ2VyYWRlenUgbWV0YXBoeXNpc2NoZSBRdWFsaXRhZXQgdmVybGllaC4gS2FybGEgaGF0IGVpbmZhY2ggbmV1ZQpCYXR0ZXJpZW4gZnVlciBkaWUgRmVybmJlZGllbnVuZyBnZWthdWZ0LCBuYWNoZGVtIHNpZSB6dXNhbW1lbmdlem9nZW4gc2luZC4KClZvcmJlaSBkaWUgWmVpdGVuLCBkYSB3aXIgdW5zIG1pdCBkZW0gaGVpc3NlbiBFaWVyd2Fzc2VyIGVpbmVuIHplaXQtCnVuZCBlbmVyZ2llc3BhcmVuZGVuIEJldXRlbHRlZSBhdWZnb3NzZW4uIE5vY2ggc2Nod2VyZXIgYWJlciBmYWVsbHQgZXMKdW5zLCBOdWRlbG4gcGxvZXR6bGljaCBvaG5lIEhpbGZlIGRlciBLdWVjaGVuZGVja2UgenUga29jaGVuLiBJbiB1bnNlcmVyCk1hZW5uZXItV0cgaGF0dGVuIHdpciBuYWVtbGljaCBlaW5lbiBnZW5pYWxlbiBUcmljayBlbnR3aWNrZWx0LCBhdWYgZGVuCm1hbiBpbiBDaHJpc3RpYW5lIEhlcnpvZ3MgS29jaHN0dWRpbyBsYW5nZSB3YXJ0ZW4ga2FubjogVW0KZmVzdHp1c3RlbGxlbiwgd2FubiBTcGFnaGV0dGkgZmVydGlnIHNpbmQsIG5pbW10IG1hbiBlaW4gcGFhciBhdXMgZGVtClRvcGYgdW5kIHNjaGxldWRlcnQgc2llIGFuIGRpZSBEZWNrZS4gRmFsbGVuIHNpZSB3aWVkZXIgaGVydW50ZXIsIHNvCnNpbmQgc2llIG5vY2ggenUgaGFydC4gQmxlaWJlbiBzaWUga2xlYmVuLCBzaW5kIHNpZSBnZW5hdSByaWNodGlnLiAKCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpbGwgLyBHb3R0IChLb2JheWFzaGksIDEyLiBOb3YgMTk5OCwgMDk6MTI6NTApOgppbGwgR2F0ZXMgdGlwcHQgaW4gc2VpbmVuIENvbXB1dGVyOiAiR2lidCBlcyBlaW5lbiBHb3R0PyIKQW50d29ydDogIlp1IHdlbmlnIFJlY2hlbmthcGF6aXR0LiIKRXIgbHQgYWxsZSBDb21wdXRlciBiZWkgS2xlaW4mV2VpY2ggZWluc2NobGllbGljaCBkZXMgZ2VzYW10ZW4gTVNOCnp1c2FtbWVuc2NoYWx0ZW4gdW5kCgp0aXBwdCBlcm5ldXQgc2VpbmUgRnJhZ2UgZWluLiBBbnR3b3J0OiAiWnUgd2VuaWcgUmVjaGVua2FwYXppdHQuIgpFciBydWZ0IGFsbGUgQmVrYW5udGVuIGJlaSBDcmF5LCBTdW4sIGV0Yy4gYW4uCgpBdWNoIGRpZXNlIENvbXB1dGVyIHdlcmRlbiB6dSBlaW5lbSBnaWdhbnRpc2NoZW4gTmV0endlcmsKenVzYW1tZW5nZXNjaGFsdGV0LgoKRXJuZXV0IHRpcHB0IGVyIHNlaW5lIEZyYWdlIGVpbi4KQW50d29ydCAiSmV0enQgamEhLi4uIgoKSGFwcHkgbGF1Z2hpbmcsCktvYmF5YXNoaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJiZWl0ZW4gaW0gUlogKFphcm5peWEsIDEyLiBOb3YgMTk5OCwgMTc6NDc6MzYpOgpXaXIgaGFiZW4gc2VpdCBlaW5pZ2VuIFRhZ2VuIGVpbmUgbmV1ZSBEZWtvcmF0aW9uIGltIFJaIGluIGRlbiBGbHVyZW4KaGFlbmdlbi4uLiB1bnRlciBhbmRlcmVuIEJpbGRlciBhdXMgIGRlbiBQb29scy4uLiAKCk5BVFVFUkxJQ0ggaXN0IGRhcyBrZWluIFp1ZmFsbCwgZGFzcyBlcyBiZWkgNiBCaWxkZXJuIGRhbm4gZG9jaCBlaW5pZ2UKZXJ3aXNjaHQgaGF0LCBkaWUgbWFuIGtlbm50OiBaYXJkb3ogdW5kIEJlbmRlaWdpZCBpbiBHcm9zc2F1Zm5haG1lLiBEQVMgbmVubnQKbWFuIGFsc28gd2lzc2Vuc2NoYWZ0bGljaCBBcmJlaXRlbiBpbSBSWi4uLiAKCmljaCBmaW5kcyB3aXR6aWcsIHZvciBhbGxlbSwgd2VpbCBpY2ggd2Vpc3MsIGRhc3MgZGFzIGRhIGpldHp0IGV3aWcgaGFlbmdlbgpibGVpYmVuIHdpcmQuIDopKSkpKSkKClphcm5peWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZXJnZW53aXR6ZSAoS29vbWksIDEzLiBOb3YgMTk5OCwgMDc6NTA6NTApOgpEaWUgUGFydHkgc3RhcGZ0IGR1cmNoIGVpbiBmaW5zdGVyZXMgRHVuZ2Vvbi4gRGVyIFp3ZXJnIGZpbmRldCB1bmZyZWl3aWxsaWcKZWluZSBGYWxsdHIgdW5kIHZlcnNjaHdpbmRldCBpbiBkZXIgVGllZmUuIERlciB1bmdlcmhydGUKS29tbWVudGFyIGRlciBHcnVwcGU6IAoiVXBzLCBqYSBzbyBzaW5kIGRpZSBad2VyZ2UKIHNjaGF1dCBtYW4gbWFsIG5pY2h0IGhpbiBzaW5kIHNpZSB3ZWcgISIgCkRpZSBHcnVwcGUgZ2VodCB3ZWl0ZXIuIAoqKioqKioqKgoiRGFzIGJlcnN0ZWlndCBtZWluIEZhc3N1bmdzdmVybWdlbiEiIHNhZ3RlIGRlciBad2VyZywgdW5kIHNldHp0ZSBkYXMKQmllcmZhc3Mgd2llZGVyIGFiIC4gLiAuIAoqKioqKioqKgpad2VyZ2Ugc2luZCBzY2hsaWVsaWNoIG51ciBzbyBndXRlIFN0ZWlubWV0emUsIHdlaWwgZGllIGFybWVuIFN0ZWluZSBzaWNoCm5pY2h0IHdlaHJlbiBrbm5lbiBiencuIHdlaWwgU3RlaW5lIHNlaHIgbGFuZ3NhbSBzaW5kLiAKKioqKioqKioKRGFubiBrb21tdCBkYSBub2NoIGRpZXNlciBiZXNvbmRlcmUgWndlcmdlbmJvbnVzIGlucyBTcGllbCwgZGllIGdlcmFkZXp1CnBhbmlzY2hlIEFuZ3N0IHZvciBXYXNzZXIuCldhcyB6dXIgRm9sZ2UgaGF0LCBkYSBad2VyZ2UgaWhyZSBHZWduZXIgbnVyIEdFR0VOIGRlbiBXaW5kIGFuc2NobGVpY2hlbgprbm5lbiwgZXMgYnJpbmd0IGFsbGVyZGluZ3MgVm9ydGVpbGUgaW0gSGFuZGdlbWVuZ2UgLyBOYWhrYW1wZiwgamVkZXIgbmljaHQKdmVyc2NobnVwZnRlIEdlZ25lciBiZWtvbW10IGVpbmVuIFZlcnRlaWRpZ3VuZ3NuYWNodGVpbCB2b24gLTIuIEtsYXIga29tbXQgZXMKaW1tZXIgd2llZGVyIHp1IGVpZ2VuZW4gVmVybHVzdGVuLCB3ZWlsIGRlbSBad2VyZyBtYWwgd2llZGVyIGRpZSBBeHQgZHVyY2ggZGllCnNjaGxhbW12ZXJzY2htaWVydGVuIEhuZGUgZ2VnbGl0dGVuIGlzdC4gV2FzIGRlciBlcmZhaHJlbmUgWndlcmcgYWJlciBkYXp1Cm51dHp0LCBkZW4gZWJlbiBnZWZsbHRlbiBLdW1wZWwgd2Fja2VyIHVtIHNlaW5lIEJyc2UgenUgZXJsZWljaHRlcmVuLApiZXN0ZW5mYWxscyBlaW4gd2VuaWcgc2NodWxkYmV3dXNzdGVzdCAiVXVwcHBzcyIgb2RlciAiSG9wcGFsYSIgdmVybHQgc2VpbmUKTGlwcGVuLgoqKioqKioqCldhcnVtIGtubmVuIFp3ZXJnZSBuaWNodCBhdWYgUGZlcmRlbiByZWl0ZW4gPyA/ID8gCktlaW4gUGZlcmQgbHNzdCBkZW0gRG1tZXJlbiBuYWNoIG9iZW4gISAhICEKKioqKioqKgpFaW4gWndlcmcgdmVybGllcnQgbWluZGVzdGVucyAzIFJzdHVuZ3NrbGFzc2VuLCB3ZW5uIG1hbiBJaG4gd3NjaHQgISEhCioqKioqKioKKE1lbG9kaWUgOiBJbSBGcmh0YXUgenUgQmVyZ2UpIDoKICAgICAiIEltIEZyaHRhdSBkaWUgWndlcmdlLCBzaWUgZ2VobiwgZmFsbGVyYQogICAgIHNpZSB0YXVtZWxuLCBzaWUgc2Nod2Fua2VuIHVuZCBzaWUgZ3JobG4sIGZhbGxlcmEKICAgICBKYSBzZWh0LCB3aWUga3J1bW0gc2llIGxhdWZlbiwKICAgICBkZW5uIGdlc3Rlcm4gd2FyJ24gc2llIHNhdWZlbi4KICAgICBJaHIga2VubnQgZGFzLCBJaHIgd2FydCBkYXMgamEgYXVjaCBzY2hvbiBtYWwgLiAuIC4KICAgICBWb20gRnJlaWJpZXIgZGllIFp3ZXJnZSwgc2llIGtvbW1uLCBsYWxsYWxsYQogICAgIHp1IGVpbmVyIGFuZGVybiBLbmVpcGUgd29sbG4gc2llIHppZWhuLCBsYWxsYWxsYQogICAgIFNpZSBzaW5kIGdyYWQgcmF1c2dlZmxvZ2VuLAogICAgIHdlaWwgc2llIHNpY2ggbmFja3QgYXVzem9nZW4uCiAgICAgRGVyIFN1ZmYgbWFjaHQgc2llIGFsbGUgcGVydmVycywgdHJhbGxhbGxhIC4gLiAuCiAgICAgSW0gRnJodGF1IGRpZSBad2VyZ2UgYmxlaWJuIHN0ZWhuLCBmYWxsZXJhCiAgICAgU2llIGtvdHplbiBpbiBkaWUgQnNjaGUgdW5kIGRpZSBTZWVuLCBmYWxsZXJhCiAgICAgV2FzIHNvbGwgbWFuIGRhenUgc2FnZW4sCiAgICAgc2llIGtubiBoYWx0IG5pY2h0cyB2ZXJ0cmFnZW4uCiAgICAgTmFqYSBad2VyZ2Ugc2luZCBudW4gbWFsIGJsZCwgZmFsbGVyYSAuLi4iCioqKioqKgoiU2NoaWNrdCBkaWUgWndlcmdlIHZvciwgc2llIHNvbGxlbiBtYWwgZ3Vja2VuLCB3aWUgdGllZiBkZXIgRmx1c3MgaXN0LiIgCioqKioqKgpHTTogV2FubiBicmVjaHQgaWhyIGF1ZiA/ClM6IFdlbm4gZGVyIE1vbmQgc28gdm9sbCBpc3Qgd2llIGRlciBad2VyZy4KKioqKioqCkdNOiBFcyBpc3QgTW9yZ2VuLCBkaWUgSGhuZSBrcmhlbi4KWndlcmc6IEljaCBkcmVoIHNpZSB6dS4KKioqKioqCldhcnVtIGdpYnQgZXMgWndlcmdlID8gLSBadSBpcmdlbmR3YXMgbXNzZW4gZGllIEtha2VybGFrZW4gZG9jaCBhdWZibGlja2VuIC4gLgouLi4gCioqKioqKgpXaXIgaGFiZW4gYXVjaCBUaWVyZSBkYWJlaS4gRGllIFdhbnplbiB2b20gWndlcmcuIAoqKioqKioKIFp3ZXJnZSBoYWJlbiBrZWluZSBTZWxic3RiZWhlcnJzY2h1bmcsIHdlaWwgOiAKQmllciAtIFN0cnogIQpHb2xkIC0gU3RyeiAhClBhcnR5IC0gU3RyeiAhIAoqKioqKioKWndlcmc6IE1laW4gQmFydCBpc3QgZWluZSBGbG9yYSB1bmQgRmF1bmEgZnIgc2ljaC4KKioqKioqClMzIHNpbmd0OiBJbSBWb2xscmF1c2NoLyBkaWUgWndlcmdlLyBzaWUgemllaCduLyBGYWxsZXJhIC4gLiAuCioqKioqKgpXYXMgaXN0IGdybiB1bmQgYmxhdSA/CkVpbiBad2VyZyBhdWYgZWluZW0gU2NoaWZmLgoqKioqKioKWndlcmc6ICJEdSBhcnJvZ2FudGVzLCBob2NobnNpZ2VzIFNwaXR6b2hyLCBkdSEiCkVsZjogIkVpbmUgQmVsZWlkaWd1bmcgZWluZXMga2xlaW5lbiBEcmVja3NhY2tzIHByb3ZvemllcnQgbWljaCBuaWNodCBpbQpHZXJpbmdzdGVuLi4iCm5hY2ggZWluIHBhYXIgV29ydGVuIG1laHIgLiAuIC4KVHJpdHQgZGVyIFp3ZXJnIGRlbSBFbGZlbiBhbnMgU2NoaWVuYmVpbgpad2VyZzogIlNvICEiCkVsZjogIkhhISBFaW4gU2NoaWVuYmVpbnRyaXR0ISBWaWVsIGhoZXIgd3JzdCBkdSBnYXIgbmljaHQgZ2Vrb21tZW4gISIKKioqKioqKgpad2VyZyBtaXQgSW50ZWxsaWdlbnogOCA6ICJNaXQgaXN0IGlyZ2VuZHdpZSBzY2h3aW5kbGlnIGltIEtvcGYuIgpTcGllbGVyIGltIENob3I6ICJEdSBoYXN0IHdvaGwgdmVyc3VjaHQgenUgZGVua2VuISIKKioqKioqKgpXYWNoZTogIlVuZCB3YXMgaXN0IGluIEJnZW5oYXZlbiBwYXNzaWVydCA/Igpad2VyZzogIkRhIGdhYiBlcyBlaW5lIERtb25lbmJlc2Nod3J1bmcsIGJlaSBkZXIgd2lyIG5pY2h0IGRhYmVpIHdhcmVuLiIKKioqKioqKgpNb2EgKFdhbGRtZW5zY2gpOiAiVW50ZXIgRXJkZSBzZWluIGJzZSBHZWlzdGVyICEiClMxIHplaWd0IGF1ZiBTMiAoWndlcmcpOiAiSmEhIFdpciBuZW5uZW4gc2llIFp3ZXJnZSAhIiAKKioqKioqKgpNaXR0ZW4gaW0gRW5ka2FtcGYgbWVpbnQgZGVyIEtyaWVnZXIgenVtIFp3ZXJnOgoiQWxzbywgRHUgbmltbXN0IEFubGF1Ziwgc3ByaW5nc3QgaG9jaCB1bmQgcmFtbXN0IElobSBEZWluZSBBeHQgaW5zIEtuaWUgISIgCioqKioqKioKRGFzIHNjaGxpbW1zdGUgYW4gS21wZmVuLCBhbiBkZW5lbiBad2VyZ2UgYmV0ZWlsaWd0IHNpbmQsIGlzdCAsIGRhIG5hY2hoZXIKYmVyYWxsIGFiZ2VzY2hsYWdlbmUgS25pZXNjaGVpYmVuIGhlcnVtbGllZ2VuLgooVGVycnkgUHJhdGNoZXR0KSAKKioqKioqCkRhcyBtdSBlaW4gWmVpY2hlbiB2b24gUm9uZHJhIGdld2VzZW4gc2VpbiAtIG9kZXIgZWluIFpldHRlbCB2b24gJ25lbSBad2VyZy4gCioqKioqKgpXaWUgbmVubnQgbWFuIGVpbmVuIFp3ZXJnIG9obmUgQmFydD8gLSBTa2luaGVhZCEKKioqKioqClNMOiAiRGVyIEdydW5kLCB3YXJ1bSBtYW4gZXVjaCBuaWNodCBocnQgW2JlaW0gQW5zY2hsZWljaGVuXSBpc3QgZGFzIGxhdXRlCkdlcG9sdGVyIGRlcyBad2VyZ2VzLi4uIgoqKioqKioKUzE6ICJTYWcgd2FzLCBad2VyZyEiClMyIChad2VyZyk6ICJTY2hlaWUhIiAKKioqKioqCgpLb29taQoKICAgIEhhbGJlbGYgS29vbWkuCiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV0dGUgRGlhbG9nYm94ZW4gKFJpbmdvciwgMTQuIE5vdiAxOTk4LCAwMToxNzoyMSk6CldlciBlaW4gYmlzc2NoZW4gTGFuZ2V3ZWlsZSB1bmQgbmVuIGdyYXBoaWtmYWVoaWdlbiBCcm93c2VyIHp1ciBIYW5kIGhhdCwKc29sbHRlIHNpY2ggdW5iZWRpbmd0IG1hbAoKICAgICAgICAgICAgIGh0dHA6Ly93d3cuZGFzZGluZy5kZS9kaWFsb2dlL2RpYWxvZy5odG0KCmFuc2NoYXVlbi4KClJpbmdvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKREFVIG1hbCBhbmRlcnNydW0gKEphbWVzb24sIDE2LiBOb3YgMTk5OCwgMTc6MzY6MzcpOgpQaWxvdDogUGxlYXNlIGNhbGwgbWUgYSBmdWVsIHRydWNrIQpUb3dlcjogUm9nZXIsIHlvdSBhcmUgbm93IGEgZnVlbCB0cnVjay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEQVUgbWFsIGFuZGVyc3J1bSAoTm92YXN0b3JtLCAxNi4gTm92IDE5OTgsIDE3OjM3OjE2KToKfiMhIHJuPUphbWVzb24gcnQ9OTExMjM3Nzk3IHJnPXdpdHplCn4jISB0aWQ9OTExMjM3Nzk3CipsYWNoKiBEYXMgcGFzc3QgenUgVG93ZXIgPjotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERBVSBtYWwgYW5kZXJzcnVtIChBbmF0b2wsIDE2LiBOb3YgMTk5OCwgMTc6NDI6MjcpOgp+IyEgcm49SmFtZXNvbiBydD05MTEyMzc3OTcgcmc9d2l0emUKfiMhIHRpZD05MTEyMzc3OTcKRGEgZXMgZWJlbiB2ZXJsYW5ndCB3dXJkZSwgcmUtcG9zdGUgaWNoIFJpbmdvcnMgQXJ0aWtlbCwgZGVyIHZvciBlaW5pZ2VyClplaXQgYW4gZWJlbiBkaWVzZXIgU3RlbGxlIHByYW5ndGUuLi4gOm8pCgpSdWJyaWsgNDI6IHdpdHplLCBBcnRpa2VsOiAyIHZvbiAyCkFsbGVzIFJvZHNjaGVyIChSaW5nb3IsIDExLiBBdWcgMTk5NywgMDA6MTE6MzUpOgoKICBVbHJpY2ggRWZmZXJ0eiAoODE6MzAwLzIxMS44KQogICJOZXVsaWNoIGltIEZ1bmt2ZXJrZWhyIgoKICBVZWJyaWdlbnM6IGFsbGUgRnVuay1TdG9yaWVzIHNpbmQgYXVzIHZlcnNjaGllZGVuZW4gQXVzZ2FiZW4gZGVzCiAgRmxpZWdlck1hZ2F6aW5zIHVudGVyIGRlbSBUaGVtYSAiUm9kc2NoZXIiLgoKUGlsb3Q6ICJCcmF0aXNsYXZhIFRvd2VyLCB0aGlzIGlzIE9zY2FyIE9zY2FyIEtpbG8gZXN0YWJpc2hlZCBJTFMgMTYuIgpUb3dlcjogIk9zY2FyIE9zY2FyIEtpbG8sIEd1dGVuIFRhZywgY2xlYXJlZCB0byBsYW5kIDE2LCB3aW5kIGNhbG0gLQogICAgICAgIGFuZCBieSB0aGUgd2F5OiB0aGlzIGlzIFdpZW4gVG93ZXIuIgpQaWxvdDogKE5hY2ggZWluZXIgRGVua3BhdXNlKSAiQnJhdHNpbGF2YSBUb3dlciwgT3NjYXIgT3NjYXIgS2lsbyBwYXNzZWQKICAgICAgICB0aGUgb3V0ZXIgbWFya2VyLiIKVG93ZXI6ICJPc2NhciBPc2NhciBLaWxvIHJvZ2VyLCBhbmQgb25jZSBtb3JlOiB5b3UgYXJlIGFwcHJvYWNoaW5nIFZpZW5uYSEiClBpbG90OiAoTmFjaCBlaW5lciBEZW5rcGF1c2UpICJDb25maXJtLCB0aGlzIGlzIE5PVCBCcmF0aXNsYXZhPyIKVG93ZXI6ICJZb3UgY2FuIGJlbGlldmUgbWUsIHRoaXMgaXMgVmllbm5hIQpQaWxvdDogKE5hY2ggZWluZXIgZXJuZXV0ZW4gUGF1c2UpICJCdXQgd2h5PyBXZSB3YW50IHRvIGdvIHRvIEJyYXRpc2xhdmEsCiAgICAgICAgbm90IHRvIFZpZW5uYSEiClRvd2VyOiAiT3NjYXIgT3NjYXIgS2lsbywgcm9nZXIuIERpc2NvbnRpbnVlIGFwcHJvYWNoLCB0dXJuIGxlZnQgMDMwIGFuZAogICAgICAgIGNsaW1iIHRvIDUwMDAgZmVldCwgdmVjdG9ycyB0byBCcmF0aXNsYXZhLiIKCi0tLQoKVG93ZXI6ICJEZWx0YSBEZWx0YSBXaGlza2V5LCByb2xsZW4gU2llIHVlYmVyIFRlZXJ3ZWcgendvIG51bGwgbmV1biBDaGFybGllCiAgICAgICAgdW5kIE1pa2UgenVtIEdBVC4iClBpbG90OiAiQWVoLi4uVGVlcndlZyB6d28uLi4/IgpUb3dlcjogIkRhcyBpc3QgZGVyIGtsZWluZSByZWNodHMuIFNpZSBzaW5kIGdlcmFkZSBkcmFuIHZvcmJlaWdlcm9sbHQuIgpQaWxvdDogIlNvcnJ5LiIKVG93ZXI6ICJEb24ndCB3b3JyeSwgbmVobWVuIFNpZSBkZW4gTWlrZS4iClBpbG90OiAiQWVoLCAuLi5NaWtlID8iClRvd2VyOiAiRGFzIGlzdCBkZXIgbGV0enRlIGdhbnogaGludGVuIHJlY2h0cy4uLiIKCi0tLQoKUGlsb3Q6ICJDb25kb3IgNDcxLCBnaWJ0J3MgaGllciBrZWluZW4gRm9sbG93LW1lID8iClRvd2VyOiAiTmVnYXRpdiwgc2VoZW4gU2llIG1hbCB6dSwgd2llIFNpZSBhbGxlaW4genVtIEdhdGUgMTAga29tbWVuLiIKCi0tLQoKUGlsb3Q6ICIuLi5Ub3dlciwgcGxlYXNlIGNhbGwgbWUgYSBmdWVsIHRydWNrLiIKVG93ZXI6ICJSb2dlci4gWW91IGFyZSBhIGZ1ZWwgdHJ1Y2suIgoKLS0tCgpDb250cm9sbGVyOiAiUGhhbnRvbS1Gb3JtYXRpb24gY3Jvc3NpbmcgY29udHJvbHpvbmUgd2l0aG91dCBjbGVhcmFuY2UsIHN0YXRlCiAgICAgICAgICAgIHlvdXIgY2FsbHNpZ24gISIKUGlsb3Q6ICAgICAgIkknbSBub3Qgc2lsbHkuLi4iCgotLS0KCkNvbnRyb2xsZXIgKGluIFN0dXR0Z2FydCk6ICJMdWZ0aGFuc2EgNTY4MCwgcmVkdWNlIHRvIDE3MCBrbm90cy4iClBpbG90OiAiRGFzIGlzdCBqYSB3aWUgaW4gRnJhbmtmdXJ0LiBEYSBnaWJ0J3MgYXVjaCBudXIgMjEwIHVuZCAxNzAgS25vdGVuLi4uCiAgICAgICAgQWJlciB3aXIgc2luZCBqYSBmbGV4aWJlbC4iCkNvbnRyb2xsZXI6ICJXaXIgYXVjaC4gUmVkdWNlIHRvIDE3MyBrbm90cy4iCgotLS0KCkNvbnRyb2xsZXI6ICJSRkcgMzEyLCBmbGllZ2VuIFNpZSBkaXJla3QgbmFjaCBPbG5vIFZPUi4KICAgICAgICAgICAgIEJyYXVjaGVuIFNpZSBlaW5lbiBSYWRhci1WZWt0b3IgPyIKUGlsb3Q6ICAgICAgIk5laW4sIGVzIGdlaHQgYXVjaCBzbywgd2lyIGtvZW5uZW4gZGFzIFZPUiBzY2hvbiBlbXBmYW5nZW4uCiAgICAgICAgICAgICBFcyBsaWVndCBnZW5hdSBpbiBkZXIgUmljaHR1bmcsIHdvIGRlciBNb25kIHN0ZWh0LiIKQ29udHJvbGxlcjogIkphLCBhYmVyIGRlbiBoYWJlbiB3aXIgbmljaHQgYXVmIGRlbSBSYWRhcnNjaGlybS4iCgotLS0KClBpbG90OiAgIkdyb3VuZCwgWFktbGluZSAxOTUsIHJlcXVlc3Rpbmcgc3RhcnQtdXAuIgpHcm91bmQ6ICJTb3JyeSwgWFktbGluZSAxOTUsIHdlIGRvbid0IGhhdmUgeW91ciBmbGlnaHQgcGxhbi4KICAgICAgICAgV2hhdCBpcyB5b3VyIGRlc3RpbmF0aW9uID8iClBpbG90OiAgIldpZSBqZWRlbiBNb250YWcsIG5hY2ggTGVpcHppZy4iCkdyb3VuZDogIkFiZXIsIHdpciBoYWJlbiBoZXV0ZSBEaWVuc3RhZyAhIgpQaWxvdDogICJXQVMgPyBBbSBEaWVuc3RhZyBoYWJlbiB3aXIgZG9jaCBmcmVpICEiCgotLS0KCkNvbnRyb2xsZXI6ICJIYXdrIDIwLCBpcyB0aGlzIHRoZSBzYW1lIGFpcmNyYWZ0IGRlY2xhcmluZyBlbWVyZ2VuY3kKICAgICAgICAgICAgIGFib3V0IHR3byBob3VycyBhZ28gPyIKUGlsb3Q6ICAgICAgIk5lZ2F0aXYsIFNpci4gSXQncyBvbmx5IHRoZSBzYW1lIHBpbG90LiIKCi0tLQoKUGlsb3Q6ICJUb3dlciwgZGEgYnJlbm50IGVpbiBSdW53YXktbGlnaHQuIgpMb3RzZTogIkljaCBob2ZmZSwgZGEgYnJlbm5lbiBtZWhyZXJlLiIKUGlsb3Q6ICJTb3JyeSwgaWNoIG1laW5lLCBlcyBxdWFsbXQuIgoKLS0tCgpDb250cm9sbGVyOiAiRGVsdGEgWnVsdSBSb21lbywgdHVybiByaWdodCBub3cgYW5kIHJlcG9ydCB5b3VyIGhlYWRpbmcuIgpQaWxvdDogICAgICAiV2lsY28uIDM0MSwgMzQyLCAzNDMsIDM0NCwgMzQ1Li4uIgoKLS0tCgpUb3dlcjogIkx1ZnRoYW5zYSA4OTMsIG51bWJlciBvbmUsIGNoZWNrY2FyIG9uIHRoZSBydW53YXkuIgpQaWxvdDogIlJvZ2VyIHdlJ2xsIGNoZWNrIHRoZSBjYXIgb24gdGhlIHJ1bndheS4iCgotLS0KCkNvbnRyb2xsZXI6ICJEZWx0YSBSb21lbyBadWx1LCBjb25maXJtIHlvdSBhcmUgaW5ib3VuZCB0byBTdWx6IE5EQj8iClBpbG90OiAgICAgICJBZmZpcm0sIGJ1dCB3ZSBkb24ndCByZWNlaXZlIGl0LiIKCi0tLQoKQ29udHJvbGxlcjogIkRlbHRhIE9zY2FyIE1pa2UsIHNxdWF3ayAwNDc2LiIKUGlsb3Q6ICAgICAgIlNheSBhZ2Fpbi4iCkNvbnRyb2xsZXI6ICJTcXVhd2sgMDQ3Ni4iClBpbG90OiAgICAgICJGb3VyLCB6ZXJvLi4uPyAiCkNvbnRyb2xsZXI6ICJXb2xsZW4gU2llJ24gbGVpY2h0ZXJlbiBoYWJlbiA/IgoKLS0tCgpDb250cm9sbGVyOiAiRGVsdGEgQnJhdm8gQ2hhcmxpZSwgaXN0IElociBTcXVhd2sgd2lya2xpY2gKICAgICAgICAgICAgIHNpZWJlbiBudWxsIHZpZXIgc2VjaHM/IgpQaWxvdDogICAgICAiUG9zaXRpdi4iCkNvbnRyb2xsZXI6ICJJY2ggbWFnJ3Mga2F1bSBnbGF1YmVuLCBTaWUgaGFiZW4gZWluZSBhbmdlemVpZ3RlIEhvZWhlCiAgICAgICAgICAgICB2b24gbWludXMgbmV1bnppZyBGdXNzLiIKCi0tLQoKQ29udHJvbGxlcjogIkhvdGVsIFBhcGEgT3NjYXIgY2xpbWIgZm91ciB0aG91c2FuZCB0byBzaXggdGhvdXNhbmQKICAgICAgICAgICAgIGFuZCBtYWludGFpbi4iClBpbG90OiAgICAgICJIb3RlbCBQYXBhIE9zY2FyLCBjbGltYmluZyBmbGlnaHQgbGV2ZWwgMTAwLiIKQ29udHJvbGxlcjogIkhvdGVsIFBhcGEgT3NjYXIsIGNsaW1iIHRvIGZsaWdodCBsZXZlbCA2MCBhbmQgbWFpbnRhaW4uIgpQaWxvdDogICAgICAiQWJlciB2aWVyIHBsdXMgc2VjaHMgaXN0IGRvY2ggemVobiwgb2Rlcj8iCkNvbnRyb2xsZXI6ICJTaWUgc29sbGVuIHN0ZWlnZW4sIG5pY2h0IGFkZGllcmVuLiIKCi0tLQoKQ29udHJvbGxlcjogIkRFLi4uLCBmbGllZ2VuIFNpZSB3ZWl0ZXIgaW0gR2VnZW5hbmZsdWcgZnVlciBkaWUKICAgICAgICAgICAgIDI2LCBMYW5kZW51bW1lciAyIGhpbnRlciBlaW5lciBEQyA5IGltIGt1cnplbiBFbmR0ZWlsLiIKUGlsb3Q6ICAgICAgIlZlcnN0YW5kZW4sIGZsaWVnZSB3ZWl0ZXIgZnVlciBkaWUgMjkgdW5kIGZvbGdlIGRlciBEQyA2LiIKQ29udHJvbGxlcjogIk5pY2h0IGdhbnogcmljaHRpZzogRGllIExhbmRlYmFobiB3YXIgMjYgdW5kCiAgICAgICAgICAgICBJaHIgVmVya2VociBlaW5lIERDIDkuIgpQaWxvdDogICAgICAiT2theSwgaWNoIGZvbGdlIGRlciBEQyAyNi4uLiBXaWUgd2FyIGRpZSBMYW5kZWJhaG4gPyIKCi0tLQoKSHVic2NocmF1YmVyLUxlaHJlciAoenUgc2VpbmVtIEZsdWdzY2h1ZWxlcik6CiJTZWhlbiBTaWUgenUsIGRhc3MgU2llIGlubmVyaGFsYiBkZXIgYmV0b25pZXJ0ZW4gRmxhZWNoZSBibGVpYmVuLiIKVW5kIG5hY2ggZWluIHBhYXIgTWludXRlbjoKIkFjaCB3YXNzLCBibGVpYmVuIFNpZSB3ZW5pZ3N0ZW5zIGluIGRlciBCdW5kZXNyZXB1YmxpayAhICIKCi0tLQoKSW4gTWVtb2VyaWFtIE11ZW5jaGVuLVJpZW0sIHdvIGdsZWljaHplaXRpZyBlaW5lIFRCMTAgYXVmIGRlciAyNVIgdW5kIGVpbmUgNzM3CmF1ZiBkZXIgMjVMIGxhbmRlbi4KClBpbG90IGRlciA3Mzc6ICJXYXIgZGFzIGpldHp0IGVpbmUgRm9ybWF0aW9uc2xhbmR1bmcgPyIKVG93ZXI6ICAgICAgICAgIk5lZS4gRm9ybWF0aW9uc2ZsdWcgaXN0J3MgamEgbnVyLCB3ZW5uIGlocgogICAgICAgICAgICAgICAgYXVmIGRlcnNlbGJlbiBCYWhuIGxhbmRldC4gQWJlciBzYWggdHJvdHpkZW0gZ3V0IGF1cy4KICAgICAgICAgICAgICAgIEF1c3NlcmRlbTogZGllIEJhaG5lbiBzaW5kIGphIHp3ZWkgS2lsb21ldGVyIGF1c2VpbmFuZGVyLAogICAgICAgICAgICAgICAgZGEga2FubiBuaWNodHMgcGFzc2llcmVuLiIKNzM3LVBpbG90IGJlaW0gUm9sbGVuIGF1ZiBkZW0gVGF4aXdheTogIklzdCBkYXMgbmljaHQga29taXNjaD8gRGllIEJhaG5lbgogICAgICAgICAgICAgICAgc2luZCBkb2NoIGhvZWNoc3RlbnMgMjAwIE1ldGVyIGF1c2VpbmFuZGVyICE/IgpUb3dlcjogICAgICAgICAiTmF0dWVybGljaCEgRWluIEJheWVyIGhhZXR0JyBkYXMgc2Nob24gbGFlbmdzdCBnZW1lcmt0LiIKCi0tLQoKUGlsb3Q6ICAgICAgIkZyYW5rZnVydCBJbmZvcm1hdGlvbiwgaGllciBEZWx0YSBCcmF2byBadWx1LiBXaXIgc2luZAogICAgICAgICAgICAgamV0enQgdWViZXIgRGlua2Vsc2J1ZWhsIGluIEZsdWdmbGFlY2hlIDk1LiIKQ29udHJvbGxlcjogIlNpZSBzb2xsdGVuIGRvY2ggTXVlbmNoZW4gSW5mb3JtYXRpb24gcnVmZW4gISIKUGlsb3Q6ICAgICAgIkphLCB3ZWlzcyBpY2gsIGFiZXIgYmVpIElobmVuIGdlZmFlbGx0IG1pciBkYXMgUHJvZ3JhbW0gYmVzc2VyLiIKCi0tLQoKQ29udHJvbGxlcjogIkZsYW1pbmdvIDAxOSwgZG8geW91IGhhdmUgYSAiU3ByaW5nYm9jayIgaW4gc2lnaHQsIHR3ZWx2ZQogICAgICAgICAgICAgbydjbG9jayBmaXZlIG1pbGVzIGNyb3NzaW5nIGZyb20gbGVmdCB0byByaWdodCA/IgpQaWxvdDogICAgICAiSWYgeW91IG1lYW4gYSA3MzcuLi4/IgpDb250cm9sbGVyOiAiWWVhaCwgeW91IGdvdCBpdCwgeW91IGdvdCBpdCAhIgoKLS0tCgpUb3dlcjogIkRlbHRhIEZveCBBbHBoYSwgaG9sZCBwb3NpdGlvbiwgTWFyc2hhbGwgd2lsbCBwYXJrIHlvdS4iClBpbG90OiAiUm9nZXIuIExvb2tpbmcgb3V0IGZvciBKb2huIFdheW5lLiIKCi0tLQoKTXVlbmNoZW4gSUkKClRvd2VyOiAgICAgICAgICAgIkxIIDg2MTAgY2xlYXJlZCBmb3IgdGFrZS1vZmYuIgpQaWxvdCAoTEggODYxMCk6ICJXaXIgc2luZCBhYmVyIG5vY2ggZ2FyIG5pY2h0IGdlbGFuZGV0LiIKVG93ZXI6ICAgICAgICAgICAiSmEsIHdlciBzdGVodCBkZW5uIGRhIGF1ZiBkZXIgMjYgc291dGggPyAiClBpbG90IChMSCA4ODAxKTogIkxIIDg4MDEuIgpUb3dlcjogICAgICAgICAgICJOYSBqYSwgZGFubiBzZWlkIGlociBjbGVhcmVkIGZvciB0YWtlLW9mZi4iCgotLS0KClRvd2VyOiAiRGVsdGEgTWlrZSBadWx1LCBhZnRlciBsYW5kaW5nIGNsZWFyZWQgdG8gdGF4aSBBbHBoYSA3LAogICAgICAgIEFscGhhIDUsIFdoaXNrZXkgMiwgRGVsdGEgMSBhbmQgT3NjYXIgMi4iClBpbG90OiAiV28gaXN0IGRlbm4gZGFzLCB3aXIga2VubmVuIHVucyBoaWVyIG5vY2ggbmljaHQgc28gYXVzID8iClRvd2VyOiAiRGFzIG1hY2h0IG5pY2h0cy4gSWNoIGJpbiBhdWNoIGVyc3QgendlaSBUYWdlIGhpZXIuIgoKLS0tCgpGbHVnc2NodWVsZXI6ICJMaWNodGVuZmVscyBJbmZvLCBERUlUTiwgaW0gcmVjaHRlbiBRdWVyYW5mbHVnCiAgICAgICAgICAgICAgIExhbmRlYmFobiAyMiwgenVtIER1cmNoc3RhcnRlbiB1bmQgQXVmc2V0emVuLiIKVHVybTogICAgICAgICAiREVJVE4sIGljaCBoYWJlIGVpbmUgZ3Jvc3NlIEJpdHRlOiBlcnN0IGF1ZnNldHplbgogICAgICAgICAgICAgICB1bmQgZGFubiBkdXJjaHN0YXJ0ZW4hIgoKCi4uLiBkYXMgd29sbHRlIHVucyBKYW1lc29uIGFsbGVzIHZvcmVudGhhbHRlbiwgc28gZWluIEx1bXAhCgpBbmF0b2wgOm8pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NoYWV0emVyIChSb2NodXMsIDE2LiBOb3YgMTk5OCwgMjA6MTk6MDcpOgooVm9uIEtpcm5hbkBBdmFsb24pCgp8RGVuIG1laXN0ZW4gdm9uIHVucyBpc3Qga2xhciwgZGFzcyBkYXMgZW5nbGlzY2hlIFdvcnQgQ29tcHV0ZXIgdm9tCnxWZXJiIGNvbXB1dGUgKHJlY2huZW4sIHNjaGFldHplbikga29tbXQsIGRhc3MgZWluIENvbXB1dGVyIGFsc28gZWluCnxSZWNobmVyIG9kZXIgU2NoYWV0emVyIGlzdC4KfAp8QWJlciBub2NoIGltbWVyIGdpYnQgZXMgdmllbGUgWmVpdGdlbm9zc2VuLCBkaWUgdmllbGxlaWNodCBnZXJhZGUKfGVyc3QgYW5mYW5nZW4sIHNpY2ggbWl0IGRpZXNlbSBrb21wbGV4ZW4gVGhlbWEgZXR3YXMgbmFlaGVyIHp1CnxiZWZhc3Nlbi4gIERpZXNlciBBcnRpa2VsIHNvbGwgYWxsIGplbmVuIGhlbGZlbiwgZGllIG5pY2h0IG1pdCBlaW5lbQp8U3BpZWxidWJlbiBhdWZnZXdhY2hzZW4gc2luZCB1bmQgZGllIG5pY2h0IHNjaG9uIHZvbiBLaW5kIGF1ZiBhbGwKfGRpZXNlIHZlcndpcnJlbmRlbiBCZWdyaWZmZSB3aWUgZWluZSBNdXR0ZXJzcHJhY2hlIGF1ZiBuYXR1ZXJsaWNoZW0KfFdlZ2UgZXJsZXJuZW4ga29ubnRlbi4KfAp8TXV0dGVyYnJldHQgdW5kIFJpZXNlbmJpc3M6CnxCZWdpbm5lbiB3aXIgdmllbGxlaWNodCBtaXQgZGVuIGVpbmZhY2hlbiBEaW5nZW4sIGRpZSB3aXIgc2VoZW4sCnxhbmZhc3NlbiB1bmQgZGFtaXQgYXVjaCBub2NoIGJlZ3JlaWZlbiBrb2VubmVuISBBbGxlIEJhdXN0ZWluZSBlaW5lcwp8U2NoYWV0emVycyB3ZXJkZW4gYWxzIEhhcnR3YXJlIGJlemVpY2huZXQuIEVzIGlzdCBzZWhyIHdpY2h0aWcsIGJlaQp8ZGVyIEF1c3dhaGwgZGVyIEhhcnR3YXJlIHNvcmdzYW0genUgc2VpbiwgZGVubiBudXIgYXVmIGd1dGVyIEhhcnR3YXJlCnxrYW5uIGRpZSBXZWljaHdhcmUgcmljaHRpZyBzY2huZWxsIGxhdWZlbi4gQmVpIGRlciBIYXJ0d2FyZSBpc3QgZGFzCnxNdXR0ZXJicmV0dCB2b24gYmVzb25kZXJlciBCZWRldXR1bmcuIERhcyBNdXR0ZXJicmV0dCBzb2xsIHVudGVyCnxhbmRlcmVtIG1pdCBlaW5lbSBTY2huaXR6c2F0eiB2b24gSW50ZWwgYXVzZ2VydWVzdGV0IHNlaW4uIERpZQp8Z2xlaWNoZSBGaXJtYSBzb2xsdGUgYXVjaCBkaWUgWlZFIChaZW50cmFsZSBWb3JhbnNjaHJlaXR1bmdzLUVpbmhlaXQpCnxnZWxpZWZlcnQgaGFiZW4uCnwKfERhbWl0IHdpciB1bnMgYmVpIGRlciBBcmJlaXQgcmljaHRpZyB3b2hsIGZ1ZWhsZW4sIHNvbGx0ZW4gd2lyIGVpbmVuCnwxNy1EYXVtZW5sYW5nLVZvcnplaWdlciB1bmQgZWluIG9yZGVudGxpY2hlcyBTY2hsdWVzc2VsYnJldHQKfGRhenVsZWdlbi4gIERhbWl0IGF1Y2ggYW5zcHJ1Y2hzdm9sbGUgV2VpY2h3YXJlIGVpbmUgZ3V0ZSBWb3JmdWVocnVuZwp8emVpZ3QsIG11ZXNzZW4gbWluZGVzdGVucyAzMiBSaWVzZW5iaXNzIEVyaW5uZXJ1bmcgZWluZ2ViYXV0IHNlaW4uCnxOYXR1ZXJsaWNoIGdlaG9lcnQgbmViZW4gZGVtIDMgMS8yLURhdW1lbmxhbmctU2NobGFwcHNjaGVpYmVudHJlaWJlcgp8YXVjaCBlaW5lIERpY2h0c2NoZWliZW4tTGVzZS1udXItRXJpbm5lcnVuZyB6dXIgR3J1bmRhdXNydWVzdHVuZy4KfEVpbmUgSGFydHNjaGVpYmUgbWl0IHZpZXIgR2lnYW50aXNjaGJpc3MgZHVlcmZ0ZSBmdWVyIGRpZSBuYWVjaHN0ZW4KfHp3ZWkgYmlzIGRyZWkgSmFocmUgYXVzcmVpY2hlbmQgRXJpbm5lcnVuZ3NwbGF0eiBmdWVyIFdlaWNod2FyZSB1bmQKfERhdGVuIGJpZXRlbi4gIFdlbm4gd2lyIHVuc2VyZW4gUFMgKHBlcnNvZW5saWNoZW4gU2NoYWV0emVyKSBhdWNoIHp1bQp8U3BpZWxlbiBiZW51dHplbiB3b2xsZW4sIHNvbGx0ZW4gd2lyIHVucyBuZWJlbiBkZXIgTWF1cyBhdWNoIG5vY2gKfGVpbmVuIEZyZXVkZW5zdG9jayB1bmQgZWluIGd1dGVzIFNjaGFsbGJyZXR0IGFuc2NoYWZmZW4uCnwKfFdpbnppZ3dlaWNoIHVuZCBLcmFmdHB1bmt0Ogp8U28sIGRhbWl0IHNpbmQgbnVuIGRpZSBvcHRpbWFsZW4gR3J1bmRsYWdlbiBmdWVyIEVpbmJhdSB1bmQgQmV0cmllYgp8ZGVyIFdlaWNod2FyZSBnZXNjaGFmZmVuISBEYW1pdCBkaWUgV2VpY2h3YXJlIGF1ZiB1bnNlcmVyIEhhcnR3YXJlCnx1ZWJlcmhhdXB0IGxhdWZlbiBrYW5uLCBicmF1Y2h0IGVzIGVpbiBCZXRyaWVic3N5c3RlbS4gRXMgZW1wZmllaGx0CnxzaWNoIGhldXRlLCBlaW4gc29sY2hlcyBtaXQgZWluZW0gZ3JhZmlzY2hlbiBCZW51dHplci1ad2lzY2hlbmdlc2ljaHQKfHp1IGluc3RhbGxpZXJlbi4KfAp8QmVzb25kZXJzIHdlaXQgdmVyYnJlaXRldCBzaW5kIGRpZSBTeXN0ZW1lIFdpbnppZ3dlaWNoLUZlbnN0ZXIgMy4xCgp8dW5kIGRhcyBuZXVlcmUgRmVuc3RlciA5NSBkZXMgZ2xlaWNoZW4gSGVyc3RlbGxlcnMgKEdlcnVlY2h0ZW4KfHp1Zm9sZ2Ugc29sbCB1ZWJyaWdlbnMgbm9jaCBpbiBkaWVzZW0gSmFociBkYXMgYnJhbmRuZXVlIEZlbnN0ZXIgOTgKfG1pdCBpbnRlZ3JpZXJ0ZW0gWndpc2NoZW5uZXR6IC0gRXJmb3JzY2hlciBlcnNjaGVpbmVuIC0gbGV0enRlcmVzIGlzdAp8YWVyZ2VybGljaCBmdWVyIExldXRlLCBkaWUgbGllYmVyIG1pdCBkZW0gTmV0enNjaGFmdC1TY2hpZmZzZnVlaHJlcgp8d2VsbGVucmVpdGVuIHdvbGxlbikuCnwKfFdpbnppZ3dlaWNoLVN5c3RlbWUgaGFiZW4gZGllIEVpZ2VuYXJ0LCBvZWZ0ZXIgbWFsIGVpbmVuIEtyYWNoIHp1Cnx2ZXJ1cnNhY2hlbi4gRGFubiBtdWVzc2VuIHNpZSBuZXUgZ2VzdGllZmVsdCB3ZXJkZW4uIFNjaGxhZWdlcgp8dmVyemljaHRlbiBhdWYgZWluIGdyYWZpc2NoZXMgWndpc2NoZW5nZXNpY2h0IHVuZCBiZXZvcnp1Z2VuIGVpbgp8YWx0ZXMsIEJlZmVobHNsaW5pZW4tQXVzZGV1dGVyLWF1c2dlcmljaHRldGVzCnxWaWVsZmFjaGJlYXVmZ2FidW5ncy1CZXRyaWVic3N5c3RlbSBuYW1lbnMgRWluaGVpdGxpeCAsIHdlaWwgc2llCnxiZWhhdXB0ZW4sIHNpZSB3dWVzc3RlbiBzY2hvbiwgd2FzIHNpZSB0dW4uICBFaW5oZWl0bGl4IGhhdCBkZW4KfFZvcnRlaWwsIGRhc3MgZXMgYXVmIHZlcnNjaGllZGVuZW4gU2NoYWV0emVybiBtaXQgdW50ZXJzY2hpZWRsaWNoZW4KfFpWRXMgbGFldWZ0LiBBdWNoIGF1ZiBhZWx0ZXJlbiBHZXJhZXRlbiBoYXQgZXMgZWluZSBndXRlIFZvcmZ1ZWhydW5nLgp8RWluaGVpdGxpeCBpc3QgZnVyY2h0YmFyIHVtc3RhZW5kbGljaCB6dSBiZWRpZW5lbiwgYWJlciBkZXIgU2NobGFlZ2VyCnxrYW5uIGRhbWl0IGFsbGVzIG1hY2hlbiwgd2FzIGVyIHdpbGwuIFp1bSBCZWlzcGllbCBnYW56IHNjaG5lbGwgZGVuCnxTY2hhZXR6ZXIga2FwdXR0Lgp8CnxGdWVyIExldXRlLCBkaWUgbWl0IGlocmVtIFNjaGFldHplciBhbnNwcnVjaHN2b2xsZSBBcmJlaXRlbiBlcmxlZGlnZW4KfHdvbGxlbiwgZ2lidCBlcyB1bnRlciBGZW5zdGVyIDk1IGRhcyBiZXJ1ZWhtdGUgQnVlcm8gZmFjaG1hZW5uaXNjaAp8OTcuICBEaWVzZXMgRXJ6ZXVnbmlzIGJlc3RlaHQgYXVzIGRlbiBuZXVlc3RlbiBBdXNnYWJlbiBkZXIKfFdlaWNod2FyZW4gV29ydCwgVWViZXJ0cmVmZiwgS3JhZnRwdW5rdCB1bmQgWnVncmlmZi4gRGFtaXQgc3RlaGVuIGRlbQp8QmVudXR6ZXIgYWxsZSB3aWNodGlnZW4gRnVua3Rpb25lbiB3aWUgV29ydHZlcmVkZWx1bmcsIEF1c2JyZWl0YmxhdHQsCnxQcmFlc2VudGF0aW9uc2dyYWZpayB1bmQgRGF0ZW5zdHVldHpwdW5rdC1CZWhhbmRsdW5nIHp1ciBWZXJmdWVndW5nLgp8VmllbCBiaWxsaWdlciBpc3QgZGFzIFN0ZXJuZW4tQnVlcm8gdm9uIGRlciBIYW1idXJnZXIgRmlybWEKfFN0ZXJuZW4tQWJ0ZWlsdW5nLCBkYXMgZXMgYXVjaCBmdWVyIEVpbmhlaXRsaXggZ2lidC4gU2VociBiZWxpZWJ0CnxzaW5kIGF1Y2ggZGVyIFN1bXBmYmx1ZXRlbi1PcmdhbmlzaWVyZXIgdW5kIFNjaGljaHRrYWVzZS1BdXNkcnVlY2ssCnxkYXMgZnVlciBUaXNjaHBsYXR0ZW4tVmVyb2VmZmVudGxpY2h1bmcgZ2VicmF1Y2h0IHdpcmQuCnwKfEF1ZnN0ZWxsZXIgdW5kIEVpbnNldHplcjoKfFdlciBzZWxic3QgZ2VybmUgQW53ZW5kdW5nZW4gZW50d2lja2VsdCwga2FubiBkaWVzIHVudGVyIEZlbnN0ZXIKfGJlaXNwaWVsc3dlaXNlIG1pdCBkZW0gbW9kZXJuZW4gU2ljaHRiYXIgR3J1bmRsZWdlbmQgdHVuLiBOYXR1ZXJsaWNoCnxnaWJ0IGVzIHZvciBkZW0gR2VicmF1Y2ggYXVjaCBnZXdpc3NlIEhpbmRlcm5pc3NlIHp1IHVlYmVyd2luZGVuLiBEaWUKfFdlaWNod2FyZSBtdXNzIHp1ZXJzdCB2aWEgQXVmc3RlbGxlciBvZGVyIEVpbnNldHplciBhdWYgZGVyCnxIYXJ0c2NoZWliZSBlaW5nZXJpY2h0ZXQgd2VyZGVuLiBEYXMga2FubiBzZWhyIHZpZWwgWmVpdCBicmF1Y2hlbiwKfHdlbm4gc2llIHVyc3BydWVuZ2xpY2ggYXVmIFNjaGxhcHBzY2hlaWJlbiBnZWxpZWZlcnQgd3VyZGUuIERhcwp8RWlucmljaHRlbiBhYiBEaWNodHNjaGVpYmUgaXN0IHNlaHIgdmllbCBhbmdlbmVobWVyIHVuZCBzY2huZWxsZXIuCnxMZWlkZXIgc3RlbGxlbiBhYmVyIGF1Y2ggaGllciBkaWUgQXVmc3RlbGxlciBvZnQgRnJhZ2VuLCBkaWUgdm9uCnx2aWVsZW4gdW52ZXJzdGFlbmRsaWNoZW4gQmVncmlmZmVuIG51ciBzbyB3aW1tZWxuLiBBYmVyIGRpZSB3b2xsZW4KfHdpciB1bnMgZWluIGFuZGVybWFsIHZvcm5laG1lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCklzdCBncmFkIGJlaSBtaXIgcmVpbmdla29tbWVuLi4uIDopIChUc3VuYW1pLCAyMC4gTm92IDE5OTgsIDEwOjUxOjQ5KToKTWljcm9zb2Z0IGJlZGF1ZXJ0IHp1dGllZnN0OgoKRHVyY2ggZWluIGJlZGF1ZXJsaWNoZXMgVmVyc2VoZW4gd3VyZGVuIGVpbmlnZSBLb3BpZW4gZGVyCkJhdmFyaWEtVmVyc2lvbiB2b24gV2luZG93czk4IGF1Y2ggYXVzc2VyaGFsYiBCYXllcm5zICBhdXNnZWxpZWZlcnQuCgpadW0gVmVyc3RhZW5kbmlzIGRpZXNlciBWZXJzaW9uIGJlbm9ldGlnZW4gU2llIHdhaHJzY2hlaW5saWNoIGVpbmlnZQpadXNhdHppbmZvcm1hdGlvbmVuLiBEaWVzZSBJbmZvcm1hdGlvbmVuIGZpbmRlbiBTaWUgYXVjaCBpbiBkZXIKRGF0ZWkgYzpcU2NoYXVuJ21lci5hbW9pLgoKRGllIEJhdmFyaWEtVmVyc2lvbiBtZWxkZXQgc2ljaCBiZWltIFN0YXJ0IGFscyAiRmVuc3RlcmxuOTgiLiAgRGFzClN0YW5kYXJkLUhpbnRlcmdydW5kYmlsZCBpc3QgZWluIE9lbGdlbWxhZWRlIGRlcyBLb2VuaWdzc2VlcyBtaXQKZWluZW0gcm9laHJlbmRlbiBIaXJzY2hlbiBpbSBWb3JkZXJncnVuZCwgU3RhbmRhcmQtU2NyZWVuc2F2ZXIgaXN0IGVpbgpzY2h1aHBsYXR0ZWxuZGVyIEVpbmdlYm9yZW5lci4KCkVpbmlnZSBTdGFuZGFyZG9yZG5lciBoYWJlbiBhbmRlcmUgTmFtZW4gYmVrb21tZW4sIHdpZSB6LkIuCgpXaW5kb3dzOTggICAgICAgICAgICAgICAgICAgICBGZW5zdGVybG45OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBa3RlbmtvZmZlciAgICAgICAgICAgICAgICAgICBXbyBtZWkgQnJvdHplaXQgaXMKQXJiZWl0c3BsYXR6ICAgICAgICAgICAgICAgICAgU2F1c3RhbGwKQXVzZnVlaHJlbiAgICAgICAgICAgICAgICAgICAgTW9jaCBoaQpEb2t1bWVudGUgICAgICAgICAgICAgICAgICAgICBNZWkgRydsdW1wCkVpbnN0ZWxsdW5nZW4gICAgICAgICAgICAgICAgIElzIHNjaG8gcmVjaHQKRmF2b3JpdGVuICAgICAgICAgICAgICAgICAgICAgRGVyYSBTY2h3ZWluc3NlaXQnbgpOZXR6d2Vya3VtZ2VidW5nICAgICAgICAgICAgICBTZXJ2dXMsIExlaXQnClByb2dyYW1tZSAgICAgICAgICAgICAgICAgICAgIEcnbHVtcCB2b24gZGllIGFubmVyZW4KUGFwaWVya29yYiAgICAgICAgICAgICAgICAgICAgTWlzdGhhdWYnbgpTdWNoZW4gICAgICAgICAgICAgICAgICAgICAgICBIb3N0IG1pPwpUYXNrbGVpc3RlICAgICAgICAgICAgICAgICAgICBEZXMgZG8gdW50J24KClp1ciBQcm9ncmFtbXN0ZXVlcnVuZyBtdWVzc2VuIFNpZSBmb2xnZW5kZXMgd2lzc2VuOgoKV2luZG93czk4ICAgICAgICAgICAgICAgICAgICAgRmVuc3RlcmxuOTgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgSm8gZnJlaWxpCkFiYnJlY2hlbiAgICAgICAgICAgICAgICAgICAgIEhpbW1paGVycmdvdHNha3JhIC0gbmFhCldlaXRlciAgICAgICAgICAgICAgICAgICAgICAgIE1vY2ggenVlClNjaGxpZXNzZW4gICAgICAgICAgICAgICAgICAgIE1vY2ggZm9hdHQKWnVydWVja3NldHplbiAgICAgICAgICAgICAgICAgTW9jaCdzIGhvbHQgbmVpCkphICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpvCk5laW4gICAgICAgICAgICAgICAgICAgICAgICAgIE5hYQpHZWhlIHp1ICAgICAgICAgICAgICAgICAgICAgICBHZW1tYQpadXJ1ZWNrICAgICAgICAgICAgICAgICAgICAgICBaJ3J1Y2sKSGlsZmUgICAgICAgICAgICAgICAgICAgICAgICAgSSB2YXN0ZWggbml4ClN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgIEZhbmcgb28gLi4uCkJlZW5kZW4gICAgICAgICAgICAgICAgICAgICAgIEhvaXQgb28gLi4uCgpHZW5lcmVsbCBnaWx0LCBkYXNzIEZlaGxlcm1lbGR1bmdlbiBkdXJjaCBlaW4gV2luZG93IG1pdCBkZXIgQWJiaWxkdW5nID0KZWluZXMgc3RpbGlzaWVydGVuIE1pc3RoYXVmZW5zIGVyc2V0enQgd3VyZGVuLgoKQXVzc2VyZGVtIHd1cmRlbiBlaW5pZ2UgSGFyZHdhcmUtS29tcG9uZW50ZW4gdW1iZW5hbm50OgoKV2luZG93czk4ICAgICAgICAgICAgICAgICAgICAgRmVuc3RlcmxuOTgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ29tcHV0ZXIgICAgICAgICAgICAgICAgICAgICAgU2F1cHJlaXNzLCBlbGVrZHJvbidzY2hlcgpDRC1ST00tTGF1ZndlcmsgICAgICAgICAgICAgICBNb2Fzcy1Ib2lkZXIKRmVzdHBsYXR0ZSAgICAgICAgICAgICAgICAgICAgVGFuemJvZCduCkZsb3BweSAgICAgICAgICAgICAgICAgICAgICAgIERlcyBrbG9hbmUgUGxhc3Rpay1HJ2x1bXAKRmxvcHB5bGF1ZndlcmsgICAgICAgICAgICAgICAgRG8gd28gZGVzIGtsb2FuZSBQbGFzdGlrLUcnbHVtcCBlaW5pa2ltbXQKTW9uaXRvciAgICAgICAgICAgICAgICAgICAgICAgR2xvdHonbgpTb3VuZGthcnRlICAgICAgICAgICAgICAgICAgICBIb2xsYXJkdWxpaApWaWRlb2thcnRlICAgICAgICAgICAgICAgICAgICBHbG90eiduLUtvYXN0J24KCkJpdHRlIGJlYWNodGVuIFNpZSBhdWNoLCBkYXNzIGdlbmVyZWxsIGRpZSBub3JtYWxlIGRldXRzY2hlIFN5bnRheCBkdXJjaApkaWUgaWRpb21hdGlzY2hlIGJheXJpc2NoZSBlcnNldHp0IHd1cmRlLgoKV2lyIGVudHNjaHVsZGlnZW4gdW5zIGZ1ZXIgYWxsZSBVbmFubmVobWxpY2hrZWl0ZW4sIGRpZSBTaWUgZHVyY2ggZGVuCkVyaGFsdCB2b24gRmVuc3RlcmxuOTggbW9lZ2xpY2hlcndlaXNlIGhhdHRlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgouIG8gTyAoT2VzaXMuLi4pIChCZWVsemVidWIsIDIzLiBOb3YgMTk5OCwgMTQ6MDQ6MDYpOgpEYXMgaGllciBpcyBsZWlkZXIga2VpbiBXaXR6IHNvbmRlcm4gYml0dGVyZSBSZWFsaXRhZXQuLi4KSWNoIGhhYiBoZXV0ZSBhdWZmZXIgQXJiZWl0IChLb21taXNzaW9uc2xhZ2VyIGZ1ZXIgRGVudGFsemV1Z3MpIGVpbmUgRmxhc2NoZQptaXQgYWV0emVuZGVyIEZsdWVzc2lna2VpdCBpbiBkZXIgSGFuZCBnZWhhYnQgdW5kIG1pciBtYWwgc3Bhc3Nlc2hhbGJlciBkaWUKV2FybmhpbndlaXNlIGR1cmNoZ2VsZXNlbi4gTmViZW4gc28gYWxsdGFlZ2xpY2hlbiBTYWNoZW4gd2llIGJlaSBhdXRrb250YWt0Cndhc2NoZW4gdW5kIHNvIHdlaXRlciBzdGFuZCBkYSBkb2NoIHdpcmtsaWNoIG5vY2ggZGVyIFp1c2F0ejoKCkZ1ZXIgT2VzdGVycmVpY2g6IEdlc3VuZGhlaXRzc2NoYWVkbGljaCBiZWltIFZlcnNjaGx1Y2tlbgoKRXVjaCBkYSB1bnRlbiBtdXNzIG1hbiB3b2hsIHdpcmtsaWNoIGFsbGVzIHNhZ2VuIF06LSkKCkJlZWx6ZSBdOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogLiBvIE8gKE9lc2lzLi4uKSAoTmltYnVzLCAyNS4gTm92IDE5OTgsIDEyOjI4OjM5KToKfiMhIHJuPUJlZWx6ZWJ1YiBydD05MTE4Mjk4NDYgcmc9d2l0emUKfiMhIHRpZD05MTE4Mjk4NDYKV0FFTFohISEgU2VsdGVuIHNvIGdlbGFjaHQuIE11c3MgaWNoIGRlbW5hZWNoc3QgbWFsIGJlaQpkaXZlcnNlbiBhZWhubGljaGVuIERpbmdlbiBkcmF1ZiBhY2h0ZW4gOy0pCgpOaW1idXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBpc3QgZGVyYiB1bmQgZ290dGxvcywgVm9yc2ljaHQhIDopIChTdGluZywgMjYuIE5vdiAxOTk4LCAxODo1ODoxOSk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkICB6d2lzY2hlbiAgZWluZXIgQmxvbmRpbmUgdW5kIEplc3VzID8KCgoKCgoKCgoKCkRlciBHZXNpY2h0c2F1c2RydWNrIGJlaW0gbmFnZWxuIQoKCgpTdGluZywgKmtpY2hlcm5kKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5peCBIaWxmZSAoUm9jaHVzLCAyNy4gTm92IDE5OTgsIDE4OjE1OjQ1KToKcm0gICAgICAgICAgIHJlYWQgbWFpbApybSAtcmYgKiAgICAgcmVhZCBhbGwgbWFpbCwgcmVhbCBmYXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwcmltemFobGVuIChIb3VzZWhvbGRlciwgMjkuIE5vdiAxOTk4LCAyMjowNjozMyk6CmVpbiBtYXRoZW1hdGlrZXIgZWluIHBoeXNpa2VyIHVuZCBlaW4gaW5nZW5pZXVyIHdlcmRlbiBnZWZyYWd0IHdhcnVtCmFsbGUgdW5nZXJhZGVuIHphaGxlbiBwcmltemFobGVuIHNpbmQgLi4uCgpkZXIgbWF0aGVtYXRpa2VyOiAxIGlzdCBwcmltemFobCAyIGlzdCBwcmltemFobCBkZXIgcmVzdCBmb2xndCBkdXJjaAppbmR1a3Rpb24KCmRlciBQaHlzaWtlcjogMSBpc3QgcHJpbXphaGwgMiBpc3QgcHJpbXphaGwgMyBpc3QgcHJpbXphaGwgNSBpc3QgcHJpbXphaGwKNyBpc3QgcHJpbXphaGwgOSBpc3QgbWVzc2ZlaGxlciAxMSBpc3QgcHJpbXphaGwgZGVyIHJlc3QgZm9sZ3QgZHVyY2gKaW5kdWt0aW9uCgpkZXIgaW5nZW5pZXVyOiAxIGlzdCBwcmltemFobCAyIGlzdCBwcmltemFobCAzIGlzdCBwcmltemFobCA1IGlzdCBwcmltemFobAo3IGlzdCBwcmltemFobCA5IGlzdCBwcmltemFobCAxMSBpc3QgcHJpbXphaGwgMTMgaXN0IHByaW16YWhsIDE1IGlzdApwcmltemFobCAxNyBpc3QgcHJpbXphaGwgMTkgaXN0IHByaW16YWhsIDIxIGlzdCBwcmltemFobCAyMyBpc3QgcHJpbXphaGwKMjUgaXN0IHByaW16YWhsIDI3IGlzdCBwcmltemFobCAyOSBpc3QgcHJpbXphaGwgMzEgaXN0IHByaW16YWhsICAgIAouLi4uLi4uLi4uLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkFubS4gZGVyIFJlZGFrdGlvbjogd2VpdGVyIG1hZyBpY2ggbmljaHQgYXVmc2NocmVpYmVuIChISCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBwcmltemFobGVuIChSYW50YW5wbGFuLCAyOS4gTm92IDE5OTgsIDIyOjIxOjIzKToKfiMhIHJuPUhvdXNlaG9sZGVyIHJ0PTkxMjM3NzE5MyByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpXZW5uIGRlciBNYXRoZW1hdGlrZXIgc28gYXJndW1lbnRpZXJlbiB3dWVyZGUsIHd1ZXJkZSBpY2ggaWhtIHNlaW4gRGlwbC4Kd2VnbmVobWVuCnVuZCBpY2ggYmluIEZ1ZXNpa2VyICEKCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBwcmltemFobGVuIChIb3VzZWhvbGRlciwgMjkuIE5vdiAxOTk4LCAyMjoyMjo0Nyk6Cn4jISBybj1SYW50YW5wbGFuIHJ0PTkxMjM3ODA4MyByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpuYSB1bmQgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcHJpbXphaGxlbiAoSG91c2Vob2xkZXIsIDI5LiBOb3YgMTk5OCwgMjI6MjQ6MDYpOgpkZXIgcHVua3QgaXN0IGRvY2g6IGRvb2Ygc2VpbiB1bmQgc3RpbmtlbiB0dW4gc2llIGFsbGUgZHJlaSA6LSkKSEggZnVlc2lrZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBwcmltemFobGVuIChGZXVlcndlaHIsIDI5LiBOb3YgMTk5OCwgMjI6MjY6NDkpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9OTEyMzc4MjQ2IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc4MjQ2CkZ1ZXNpa2VyIHNpbmQgZG9jaCBhbGxlIGRvb2YhClVuZCBDaGVtaWtlciBhdWNoIQpVbmQgSW5mb3JtYXRpa2VyIQpVbmQgTmljaHQtU3R1ZGVudGlzY2hlIE11ZGRlciEKVW5kIFN0dWRlbnRpc2NoZSBNdWRkZXIsIGRpZSB3ZWRlciBJbmZvcm1hdGlrIG5vY2ggRnVlc2lrIG5vY2ggQ2hlbWllCnN0dWRpZXJlbi4KCiAgIEZldWVyd2Voci4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcHJpbXphaGxlbiAoVGVkZHksIDMwLiBOb3YgMTk5OCwgMDA6MTY6MTQpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9OTEyMzc3MTkzIHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCnNjaG9ubWFsIGF1ZmdlZmFsbGVuLCBkc2EgMiBrZWluZSB1bmdlcmFkZSBaYWhsIGlzdD8KClRlZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcHJpbXphaGxlbiAoSG91c2Vob2xkZXIsIDMwLiBOb3YgMTk5OCwgMDA6MjA6NTApOgp+IyEgcm49VGVkZHkgcnQ9OTEyMzg0OTc0IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCmhhYiBpc2NoIGlyZ2VuZHdvIGdlc2NocmllYmVuIGFsbGUgcHJpbXphaGxlbiBzZWllbiB1bmdlcmFkZSA/PyAKOi0oIApISAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogcHJpbXphaGxlbiAoRW1iZSwgMzAuIE5vdiAxOTk4LCAwMDo0Njo1Nik6Cn4jISBybj1Ib3VzZWhvbGRlciBydD05MTIzODUyNTAgcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKbm9lLCBhYmVyIHdpZSBrYW5uIG1hIGRhbm4gYXVzIDEgaXMgcHJpbSwgMiBpcyBwcmltLiBmb2xnZXJuIGRhcyBhbGxlIHVuZ3JhZGVuCnphaGxlbiBwcmltIHNpbmQ/IDotKQoKYWJlciB3aXR6ZSB6ZXJyZWRlbiBpcyBmYWQsIGRydW0gaGllciBlaW4gcGFhciBhbmRlcmU6CgpCV0wnZXIgdW5kIFBoeXNpa2VyIGluIGRlciBLb25zdWx0YXRpb246ClByb2Zlc3NvcjogJydMZXJuZW4gc2llIGRpZXNlcyBUZWxlZm9uYnVjaCBhdXN3ZW5kaWchJycKUGh5c2lrZXI6ICcnV2FydW0/JycKQldMJ2VyOiAnJ0JpcyB3YW5uPycnCgpFaW4gTWF0aGVtYXRpa2VyIGtvbW10IG5hY2ggSGF1c2UsIHNjaGVua3Qgc2VpbmVyIEZyYXUgZWluZW4gZ3Jvc3NlbiBTdHJhdXNzClJvc2VuIHVuZCBzYWd0OiAnJ0ljaCBsaWViZSBEaWNoIScnLiBTaWUgbmltbXQgZGllIFJvc2VuLCBoYXV0IHNpZSBpaG0gdW0gZGllCk9ocmVuLCBnaWJ0IGlobSBlaW5lbiBUcml0dCB1bmQgd2lyZnQgaWhuIGF1cyBkZXIgV29obnVuZy4gV2FzIGhhdCBlciBmYWxzY2gKZ2VtYWNodD8gRXIgaGFldHRlIHNhZ2VuIG11ZXNzZW46ICcnSWNoIGxpZWJlIERpY2ggdW5kIG51ciBEaWNoIScnCgpNYXRoZW1hdGlrZXI6CkJlaGF1cHR1bmc6IEVpbmUgS2F0emUgaGF0IG5ldW4gU2Nod2FlbnplLiBCZXdlaXM6CktlaW5lIEthdHplIGhhdCBhY2h0IFNjaHdhZW56ZS4gRWluZSBLYXR6ZSBoYXQgZWluZW4gU2Nod2FueiBtZWhyIGFscyBrZWluZQpLYXR6ZS4gRGVzaGFsYiBoYXQgZWluZSBLYXR6ZSBuZXVuIFNjaHdhZW56ZS4KCkVpbiBNYXRoZW1hdGlrZXIgd2lsbCBzZWluZW4gbmV1ZXN0ZW4gQmV3ZWlzIGFscyBCaWxkIGF1ZmhhZWF1ZmhZbmdlbiAtIGxlaWRlcgprZWluZXIgZGEsIGRlciBkZW4gTmFnZWwgcmVpbmhhdXQuIE5hamEsIG5pbW10IGVyIExlaXRlciwgTmFnZWwgdW5kIEhhbW1lciB1bmQKaGFlbHQgZGVuIE5hZ2VsIG1pdCBkZW0gS29wZiB6dXIgV2FuZC4gR2VyYWRlIGFscyBlciB6dXNjaGxhZ2VuIHdpbGwsIHNjaGF1dAplciBub2NobWFsIGdlbmF1IGhpbiAtIHVuZCBzdHV0enQuCmVyIHVlYmVybGVndCwgLi4uIHVuZCB1ZWJlcmxlZ3QgLi4uIHVuZCB1ZWJlcmxlZ3QgLQpuYWNoIDUgbWludXRlbiBrb256ZW50cmllcnRlbiBIaW5zY2hhdWVuIGhhdCBlcidzOgonJ0RhcyBpc3QgZWluIE5hZ2VsIGZ1ZXIgZGllIGdlZ2VudWViZXJsaWVnZW5kZSBXYW5kIScnCgpncnVzcywgZU1CZWUuCihpY2ggaG9mZiBpY2ggaGFiIGJlaW0gcGFzdGVuIGtlbmUgdW1sYXV0ZSAidWJlcnNlaG4uLi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHByaW16YWhsZW4gKEtleSwgMzAuIE5vdiAxOTk4LCAxMTo1ODowOSk6Cn4jISBybj1GZXVlcndlaHIgcnQ9OTEyMzc4NDA5IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc4MjQ2CkhhaCEKSmV0enQgZnVlaGxlIGljaCBtaWNoIHBlcnNvZW5saWNoIGFuZ2VncmlmZmVuIQpQRkZGID07KQoKS2V5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcHJpbXphaGxlbiAoSmlkZHUsIDMwLiBOb3YgMTk5OCwgMTg6MDQ6MTkpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9OTEyMzc3MTkzIHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCkljaCB3aWxsIGphIGtlaW4gc3BpZWx2ZXJkZXJiZXIgc2VpbiBhYmVyIDksIDE1LCAyMSwgMjUsIDI3IGV0YyBzaW5kIHVuZ2VyYWRlCmFiZXIga2VpbmUgcHJpbS4uLiAqZHVjayoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogcHJpbXphaGxlbiAoS2V5LCAzMC4gTm92IDE5OTgsIDE4OjQxOjI4KToKfiMhIHJuPUppZGR1IHJ0PTkxMjQ0OTA1OSByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpEYW5uIGJld2VpcyBkYXMgbWFsIDopCgpLZXkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHByaW16YWhsZW4gKEppZGR1LCAzMC4gTm92IDE5OTgsIDE4OjQ0OjA5KToKfiMhIHJuPUtleSBydD05MTI0NTEyODggcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKd2lsbHN0IGR1IG1pciB3aWVkZXJzcHJlY2hlbiBkYXNzIGZvbGdlbmRlcyBnaWx0Ogo5PTMqMzsgMTU9Myo1OyAyMT0zKjc7IDI1PTUqNTsgMjc9MyozKjM/IDopCkppZGR1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBwcmltemFobGVuIChLZXksIDMwLiBOb3YgMTk5OCwgMTg6NDQ6NDIpOgp+IyEgcm49SmlkZHUgcnQ9OTEyNDUxNDQ5IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCkR1cmNoZ2VmYWxsZW4hCkljaCB3b2xsdGUgZGllIEVya2xhZXJ1bmcgZWluZXMgTXVkZGVycyEKCktleQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogcHJpbXphaGxlbiAoSmlkZHUsIDMwLiBOb3YgMTk5OCwgMTg6NDY6MDcpOgp+IyEgcm49S2V5IHJ0PTkxMjQ1MTQ4MiByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpJY2ggYmluIG11ZGRlciB1bmQgZ2FueiBzaWNoZXIgbm9jaCBrZWluIG1hdGhlbWF0aWtlciAuLi4gbmFqYSAuLiB1bmQgd2FzIHNhZ3QKZWluIGVjaHRlciBtdWRkZXIsIEtleT8KSmlkZHUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBwcmltemFobGVuIChZYXJlbiwgMzAuIE5vdiAxOTk4LCAyMDo0OToxNyk6Cn4jISBybj1Ib3VzZWhvbGRlciBydD05MTIzNzcxOTMgcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKdm9yIGFsbGVtIGhhc3QgZHUgZGVuIGluZm9ybWF0aWtlciB2ZXJnZXNzZW4sIGRlciBlaW4gcHJvZ3JhbW0gZGFmdWVyCnNjaHJlaWJ0LCBkYXMgZGFubiBhdXNnaWJ0OiAxIGlzdCBlaW5lIHByaW16YWhsLCAxIGlzdCBlaW5lIHByaW16YWhsLCAxIGlzdAplaW5lIHByaW16YWhsLCAxIGlzdCBlaW5lIHByaW16YWhsIC4uLiBTZWdtZW50YXRpb24gZmF1bHQgKGNvcmUgZHVtcGVkKQoKWWFyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHByaW16YWhsZW4gKENhdW5vLCAgMS4gRGV6IDE5OTgsIDEyOjM5OjM3KToKfiMhIHJuPVlhcmVuIHJ0PTkxMjQ1ODk1NyByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpTQ0hOQVJDSCEhIQoKMS4gc2luZCBkaWUgV2l0emUgc2Nob24gdXJhbHQKMi4gZXJ6YWVobHQgbWFuIG5hY2ggZGVyIFBvaW50ZSBub3JtYWxlcndlaXNlIG5pY2h0IG1laHIgd2VpdGVyCjMuIHplaWd0IHNpY2ggd2llZGVyIG1hbCwgZGFzIGRhcyBNVUQgaW4gZWluZW0ga29uc2VydmF0aXZlbiBGZWxkIHp1IGhhZW5nZW4Kc2NoZWludCAuLi4KCjQuIGdlaGUgaWNoIHdpZWRlciBoYWltLCBkYW1pdCBtaXIgNS4gZWluZmFlbGx0LgoKQy4gTm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHByaW16YWhsZW4gKFByYSwgIDEuIERleiAxOTk4LCAxNTozNjozNCk6Cn4jISBybj1DYXVubyBydD05MTI1MTU5Nzcgcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKLi4uIHVuZCBhdXNzZXJkZW0gaXN0IDEga2VpbmUgUHJpbXphaGwuLi4KClByYS4gRWluZW4gbmV1ZW4gVGhyZWFkIGJlZ2lubmVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHByaW16YWhsZW4gKFBhbXBlcnMsICAxLiBEZXogMTk5OCwgMTY6MTI6NTgpOgp+IyEgcm49UHJhIHJ0PTkxMjUyNjU5NCByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpJc3QgLTE3IGVpZ2VudGxpY2ggZWluZSBQcmltemFobD8gV2llcyBzaWVodCBkYXMgbWl0IGRlciAwIGF1cz8KClBhbXBlcnMuIE1hdGhlIG1hbmdlbGhhZnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBwcmltemFobGVuIChSdW1hdGEsICAxLiBEZXogMTk5OCwgMTY6MTQ6NTApOgp+IyEgcm49UGFtcGVycyBydD05MTI1Mjg3Nzggcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKLTE3IGlzdCBwcmltLCBkYSBkYXMgYXVmZ2VzcGFubnRlIGlkZWFsIGVpbiBwcmltaWRlYWwgaXN0LCBkZXNoYWxiIGlzdAowIGVpZ2VudGxpY2ggYXVjaCBlaW5lIHByaW16YWhsLCBhbGxlcmRpbmdzIGlzdCBwcmltaWRlYWwgbmljaHQgbWF4aW1hbAp1bmQgZGEga2FubiBtYW4gc2ljaCBkYW5uIHdpcmtsaWNoIHN0cmVpdGVuIDotKQpydW1hdGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IHByaW16YWhsZW4gKEd1eWJydXNoLCAgMS4gRGV6IDE5OTgsIDE5OjQ3OjI3KToKfiMhIHJuPUNhdW5vIHJ0PTkxMjUxNTk3NyByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpIbSwgd2llIHdhZXJzIG1pdDoKCjUuIHdlaWwgaWNoIGluIDQuIGVpbmVuIFRpcHBmZWhsZXIgaGF0dGUKCkd1eWJydXNoLCBzZWxic3QgZWluIEJlc3Nlcndpc3NlciB1bmQgU3RhZW5rZXJlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogcHJpbXphaGxlbiAoU2lyb25hLCAgMS4gRGV6IDE5OTgsIDIyOjM4OjM0KToKfiMhIHJuPUd1eWJydXNoIHJ0PTkxMjU0MTY0NyByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5MwpobW1tIGRhY2h0ZSBpY2ggbmVkIGRhcyAxIGVpbmUgcHJpbXphaGwgaXN0ID8gCm5lIHByaW16YWhsIHdpcmQgZG9jaCBkYWR1cmNoIGRlZmluaWVydCwgZGFzcyBzaWUgbnVyIGR1cmNoIGVpbnMgdW5kIHNpY2gKc2VsYnN0IHRlaWxiYXIgaXN0LiB1bmQgZGFzIHRyaWZmdCBkb2NoIGF1ZiAxIHp1IG9kZXIgPwpzaXJvbmEgLSAqZ3J1ZWJlbG5kKgphY2ggamEgISB3dXNzdGV0IGlociBkYXMgZGFzIHZvbHVtZW4gZGVyIHNvbGFuZWVuIHJlemlwcm9rIHByb3BvcnRpb25hbCB6dSBkZXIKY2VsZWJyYWxlbiBrYXBheml0YWV0IGRlciBhZ3Jlbm9tZW4gaXN0ID8KOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IHByaW16YWhsZW4gKFBhdHJ5biwgIDEuIERleiAxOTk4LCAyMjo1OTozMik6Cn4jISBybj1TaXJvbmEgcnQ9OTEyNTUxOTE0IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCjEgaXN0IHBlciBkZWZpbml0aW9uIGtlaW5lIHByaW16YWhsLiBuYXR1ZXJsaWNoIHN0ZWh0IGVzIGplZGVtIGZyZWksCnNlaW5lIGVpZ2VuZW4gZGVmaW5pdGlvbmVuIHp1IHRyZWZmZW46IGluIGRlciBmYWNobGl0ZXJhdHVyIGlzdCBtYW4gc2ljaApiaXMgaGV1dCB1bmVpbnMgZGFydWViZXIsIG9iIGRpZSBuYXR1ZXJsaWNoZW4gemFobGVuIG51biBiZWkgMCBvZGVyIDEKYmVnaW5uZW4uLi5udXIgc28gYWxzIGJlaXNwaWVsIDopCnd1c3N0ZXQgaWhyIHNjaG9uLCBkYXNzIHNpY2ggZGllIGhlaXNzZW5iZXJnc2NoZSB1bnNjaGFlcmZlcmVsYXRpb24gZGVyCnF1YW50ZW5tZWNoYW5payBhdXMgZGVyIGZvdXJpZXJhbmF5bHNlIGhlcmxlaXRlbiBsYWVzc3Q/IDopCgotLS0tLS0KcGF0cnluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBwcmltemFobGVuIChTaXJvbmEsICAxLiBEZXogMTk5OCwgMjM6MjQ6MzEpOgp+IyEgcm49UGF0cnluIHJ0PTkxMjU1MzE3MiByZz13aXR6ZQp+IyEgdGlkPTkxMjM3NzE5Mwo6KQpOYWNoaWhpbGZlIHdhZXJlIG1hbCBuZSBndXRlIGlkZWUgaGllciBpbSBtdWQhCmRhbm4gd3VlcmQgaWNoIHdlbmlnc3RlbnMgbm9jaCBldHdhcyBrbGl0emVrbGVpbmVzIGZ1ZXIgZGllIHNjaHVsZSAob2RlcgpiZXNzZXIKZ2VzYWd0IGZ1ZXIgbWVpbiBlaWdlbmVzIGxlYmVuKSB0dW4uIHVuZCBzb29vbyB1bmludGVyc3NhbnQga2FubiBkYXMgemV1Z3MgZ2FyCm5pY2h0IHNlaW4uIGFsc28gYml0dGUgcGF0cnluIGVyemFlaGwgZG9jaCBtYWwgd2FzIHdlbmlnc3RlbnMgdWViZXIgZGllCmZvdXJpZXJhbmFseXNlISAoamEgamEgZGllc2VyIGFydGlrZWwgZ2Vob2VydCBuaWNodCBuYWNoIHdpdHplIGVoZXIgbmFjaAp3dWVuc2NoZSBvZGVyIHNvLCBhdWNoIHNvbnN0aWdlciB1bnRlcmljaCB3YWVyIGhpZXIgZWlnZW50bGljaCBnYW56IG5ldCwKc2NobGllc3NsaWNoIHNvbGwgZXMgaGllciBhdWNoIGdhbnogJ2tsdWdlJyBtdWRkZXJzIGdlYmVuIGRpZSBuaWNodCBudXIgZGllCnplaXQgaGllciB2ZXJicmluZ2VuISA7KQoKbnVuIGRvY2ggbm9jaDoKRGVyIE1lZGl6aW5zdHVkZW50IGlzdCBuaWNodCBnZXJhZGUgZmxlaWlnLgpKZXR6dCBoYXQgZXIgc2ljaCBhdWNoIG5vY2ggZWluIEJlaW4gZ2Vicm9jaGVuIHVuZCBibGVpYnQgendlaSBNb25hdGUKZGVuIFZvcmxlc3VuZ2VuIGZlcm4uCgpBbHMgZXIgd2llZGVya29tbXQsIGZyYWd0IGlobiBkZXIgUHJvZmVzc29yIHRlaWxuYWhtc3ZvbGw6ICJOYSwgd2llCmdlaHQncyBJaG5lbiBkZW5uPyIgIk9oIiwgZXJ3aWRlcnQgZGVyIFN0dWRlbnQsICJpY2ggbGF1ZmUgYmVzc2VyCmFscyBqZSB6dXZvciEiICJHdXQiLCBtZWludCBkZXIgUHJvZmVzc29yLCAiamV0enQgZmVobHQgSWhuZW4gbnVyIG5vY2ggICAgICAgIAplaW4gYW5zdG5kaWdlciBTY2hkZWxicnVjaC4uLiIKCnNpcm9uYSAod2lyZCBiaXR0ZW4gZGVuIG1hdGhlIGxlaHJlciBwcmltemFobGVuIG5vY2htYWxzIHp1IGVybGFldXRlcm4pIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBwcmltemFobGVuIChKaWRkdSwgIDIuIERleiAxOTk4LCAwMDowMjo0OCk6Cn4jISBybj1TaXJvbmEgcnQ9OTEyNTU0NjcxIHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCkVpbmUgUHJpbXphaGwgaXN0IGVpbmUgWmFobCwgZGllIG51ciBkdXJjaCAxIHVuZCBzaWNoIHNlbGJzdCBHZXRlaWx0IHdlcmRlbgprYW5uLiAodW5kIGRhcyBlcmdlYm5pcyBtdXNzIGVsZW1lbnQgWiBzZWluKQp3dWVyZCBpY2ggbWFsIHNhZ2VuIC4uLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IHByaW16YWhsZW4gKEFuYXRvbCwgIDIuIERleiAxOTk4LCAwMDowOTozOSk6Cn4jISBybj1KaWRkdSBydD05MTI1NTY5Njggcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKRGllIDEgaXN0IHBlciBkZWZpbml0aW9uZW0ga2VpbmUgUHJpbXphaGwuCgpBbmF0b2wgLSBoYXQgZXMgenVtaW5kZXN0IHNvIGdlbGVybnQKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBwcmltemFobGVuIChKaWRkdSwgIDIuIERleiAxOTk4LCAwMDoxMDoxMSk6Cn4jISBybj1BbmF0b2wgcnQ9OTEyNTU3Mzc5IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCkViZW4sIGRpZSBpcyBqYSBhdWNoIG51ciBkdXJjaCAxIHVuZCBzaWNoIHNlbGJzdCB0ZWlsYmFyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogcHJpbXphaGxlbiAoSmlkZHUsICAyLiBEZXogMTk5OCwgMDA6MTE6MTcpOgp+IyEgcm49SmlkZHUgcnQ9OTEyNTU3NDExIHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCkVoaGggZXJzdCBkZW5rZW4sIGRhbm4gcG9zdGVuIEppZGR1ICpncmlucyogamEgMSBpcyBuZSBhdXNuYWhtZSA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogcHJpbXphaGxlbiAoTGVuYSwgIDIuIERleiAxOTk4LCAwOTo0NzowMCk6Cn4jISBybj1TaXJvbmEgcnQ9OTEyNTUxOTE0IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCmFlaG0uLi4gZGFzIHN0aW1tdCBuaWNodC4KUHNldWRvbWF0aGVtYXRpc2NoICgsYWxzbyBzbywgd2llcyBkaWUgaW0gR3VtbWluYXNpdW0gYmVpZ2VicmFjaHQgYmVrb21tZW4pLAppc3QgZWluZSBQcmltemFobCBnYW56emFobGlnIG9obmUgUmVzdCBkdXJjaCB6d2VpIHZlcnNjaGllZGVuZSBaYWhsZW4KdGVpbGJhciwgbm9ybWFsZXJ3ZWlzZSBkdXJjaCAxIHVuZCBzaWNoIHNlbGJzdC4gRGEgZGllIDEgYWJlciA9IDEgaXN0LCBpc3QgZGllCjEga2VpbmUgUHJpbXphaGwsIHdlaWwgc2llIG5pY2h0IGR1cmNoIHp3ZWkgdmVyc2NoaWVkZW5lLi4uICh1c3cpCgpMZW5hLCBzaWNoIGR1Y2tlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBwcmltemFobGVuIChZZW5kaSwgIDIuIERleiAxOTk4LCAxMTowMjo0MCk6Cn4jISBybj1TaXJvbmEgcnQ9OTEyNTUxOTE0IHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCkRlaW4gInByb3BvcnRpb25hbCIgd2FyIHJlZHVuZGFudCwgInJlemlwcm9rIiBpc3Qgc2Nob24gc3VmZml6aWVudC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNjogMzEgKEhvdXNlaG9sZGVyLCAgMi4gRGV6IDE5OTgsIDEyOjMyOjU5KToKfiMhIHJuPUphc3BlciBydD05MTI1NTM4NzIgcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD05MTAyNzI2NjkKYWVoIHdvIHdpciBzY2hvbiBkYWJlaSBzaW5kOiAKd3Vzc3RldCBpaHIgZGFzcyBkaWUgaGVpc2VuYmVyZ3NjaGUgdW5zY2guIHJlbCBzaWNoIGF1cyBkZW4KdmVydGF1c2NodW5nc3JlbGF0aW9uZW4gdm9uIG9ydHMgdW5kIGltcHVsc29wZXJhdG9yIGhlcmxlaXRlbiBsYWVzc3QgPyA6LSkKZm91cmllci1lbnR3aWNrbHVuZyBpcyBkb2NoIHdhcyBmdWVyIGtsZWlua2luZGVyIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogcHJpbXphaGxlbiAoTXVhZGliLCAgMi4gRGV6IDE5OTgsIDEzOjU1OjM3KToKfiMhIHJuPUxlbmEgcnQ9OTEyNTkyMDIwIHJnPXdpdHplCn4jISB0aWQ9OTEyMzc3MTkzCmhtbSAxMjAgaXN0IGR1cmNoIG5lIGdhbnplIG1lbmdlIHphaGxlbiBvaG5lIHJlc3QgZHVyY2ggdGVpbGJhciwgYWxzbyBhdWNoCmR1cmNoIDIgdmVyc2NoaWVkZW5lIHphaGxlbiwgaXN0IDEyMCBudW4gcHJpbSA/CgptdWFkaWIgKnZlcnp3ZWlmZWx0IGFuIGxlbmFzIGxlaHJlcm4qIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogcHJpbXphaGxlbiAoUWl0ZXNzLCAgMi4gRGV6IDE5OTgsIDE5OjAxOjEwKToKfiMhIHJuPVBhdHJ5biBydD05MTI1NTMxNzIgcmc9d2l0emUKfiMhIHRpZD05MTIzNzcxOTMKUHJpbWVsbiBzaW5kIHNvIHJpY2h0aWcgYmxvZWRlIEJsdW1lbiwgdW5kIDAgUHJpbWVsbiBzaW5kIG1pciBsaWViZXIgYWxzIDEsIDIsCjMgb2RlciB3ZWdlbiBtaXIgYXVjaCAxMS4KClFJKioKIFAuUy46IFd1c3N0ZXQgSWhyIHNjaG9uLCBkYXNzIE11ZGRlbiBkZW0gSGlybiBpcnJlcGFyYWJsZSBTY2hhZWRlbiB6dWZ1ZWd0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGVjaFN1cHBvcnQsIGRpZSAxMi4gKGVuZ2xpc2NoISkgKFByYSwgIDMuIERleiAxOTk4LCAxNTo1ODo1Nyk6Cj4+QSB3b21hbiBjYWxsZWQgdGhlIENhbm9uIGhlbHAgZGVzayB3aXRoIGEgcHJvYmxlbSB3aXRoIGhlciBwcmludGVyLiBUaGUKPj50ZWNoIGFza2VkIGhlciBpZiBzaGUgd2FzICJydW5uaW5nIGl0IHVuZGVyIFdpbmRvd3MuIiBUaGUgd29tYW4gdGhlbgo+PnJlc3BvbmRlZCwgIk5vLCBteSBkZXNrIGlzIG5leHQgdG8gdGhlIGRvb3IuIEJ1dCB0aGF0IGlzIGEgZ29vZCBwb2ludAo+Lj5UaGUgbWFuIHNpdHRpbmcgaW4gdGhlIGN1YmljbGUgbmV4dCB0byBtZSBpcyB1bmRlciBhIHdpbmRvdywgYW5kIGhpcyBpcwo+PndvcmtpbmcgZmluZS4iCj4+Cj4+ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj5UZWNoIFN1cHBvcnQ6ICJIb3cgbXVjaCBmcmVlIHNwYWNlIGRvIHlvdSBoYXZlIG9uIHlvdXIgaGFyZCBkcml2ZT8iCj4+Q3VzdG9tZXI6ICJXZWxsLCBteSB3aWZlIGxpa2VzIHRvIGdldCB1cCB0aGVyZSBvbiB0aGF0Cj4+SW50ZXJuZXQsYW5kIHNoZSBkb3dubG9hZGVkIHRlbiBob3VycyBvZiBmcmVlIHNwYWNlLiBJcyB0aGF0IGVub3VnaD8iCj4+Cj4+KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PlRlY2ggU3VwcG9ydDogIk9LIEJvYiwgbGV0J3MgcHJlc3MgdGhlIGNvbnRyb2wgYW5kIGVzY2FwZSBrZXlzIGF0IHRoZQo+PnNhbWUgdGltZS4gVGhhdCBicmluZ3MgdXAgYSB0YXNrIGxpc3QgaW4gdGhlIG1pZGRsZSBvZiB0aGUKPj5zY3JlZW4uIE5vdyB0eXBlIHRoZSBsZXR0ZXIgJ1AnIHRvIGJyaW5nIHVwIHRoZSBQcm9ncmFtIE1hbmFnZXIuIgo+PkN1c3RvbWVyOiAiSSBkb24ndCBoYXZlIGEgJ1AnLiIKPj5UZWNoIFN1cHBvcnQ6ICJPbiB5b3VyIGtleWJvYXJkLCBCb2IuIgo+PkN1c3RvbWVyOiAiV2hhdCBkbyB5b3UgbWVhbj8iCj4+VGVjaCBTdXBwb3J0OiAiJ1AnIG9uIHlvdXIga2V5Ym9hcmQsIEJvYi4iCj4+Q3VzdG9tZXI6ICJJJ20gbm90IGdvaW5nIHRvIGRvIHRoYXQhIgo+Pgo+Pgo+PioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj5PdmVyaGVhcmQgaW4gYSBjb21wdXRlciBzaG9wOgo+PkN1c3RvbWVyOiAiSSdkIGxpa2UgYSBtb3VzZSBtYXQsIHBsZWFzZS4iCj4+U2FsZXNwZXJzb246ICJDZXJ0YWlubHkgc2lyLCB3ZSd2ZSBnb3QgYSBsYXJnZSB2YXJpZXR5LiIKPj5DdXN0b21lcjogIkJ1dCB3aWxsIHRoZXkgYmUgY29tcGF0aWJsZSB3aXRoIG15IGNvbXB1dGVyPyIKPj4KPj4KPj4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+Cj4+SSBvbmNlIHJlY2VpdmVkIGEgZmF4IHdpdGggYSBub3RlIG9uIHRoZSBib3R0b20gdG8gZmF4IHRoZSBkb2N1bWVudCBiYWNrCj4+dG8gdGhlIHNlbmRlciB3aGVuIEkgd2FzIGZpbmlzaGVkIHdpdGggaXQsIGJlY2F1c2UgaGUKPj5uZWVkZWQgdG8ga2VlcCBpdC4KPj4KPj4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj5DdXN0b21lcjogIkNhbiB5b3UgY29weSB0aGUgSW50ZXJuZXQgZm9yIG1lIG9uIHRoaXMgZGlza2V0dGU/Igo+Pgo+PioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+Pkkgd29yayBmb3IgYSBsb2NhbCBJU1AuIEZyZXF1ZW50bHkgd2UgcmVjZWl2ZSBwaG9uZSBjYWxscyB0aGF0IGdvCj4+c29tZXRoaW5nIGxpa2UgdGhpczoKPj5DdXN0b21lcjogIkhpLiBJcyB0aGlzIHRoZSBJbnRlcm5ldD8iCj4+Cj4+Cj4+KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj5Tb21lIHBlb3BsZSBwYXkgZm9yIHRoZWlyIG9ubGluZSBzZXJ2aWNlcyB3aXRoIGNoZWNrcyBtYWRlIHBheWFibGUKPj50byAiVGhlIEludGVybmV0LiIKPj4KPj4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj5DdXN0b21lcjogIlNvIHRoYXQnbGwgZ2V0IG1lIGNvbm5lY3RlZCB0byB0aGUgSW50ZXJuZXQsIHJpZ2h0PyIKPj5UZWNoIFN1cHBvcnQ6ICJZZWFoLiIKPj5DdXN0b21lcjogIkFuZCB0aGF0J3MgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBJbnRlcm5ldCwgcmlnaHQ/Igo+PlRlY2ggU3VwcG9ydDogIlVoaC4uLnVoLi4udWguLi55ZWFoLiIKPj4KPj4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+VGVjaCBTdXBwb3J0OiAiQWxsIHJpZ2h0Li4ubm93IGRvdWJsZS1jbGljayBvbiB0aGUgRmlsZSBNYW5hZ2VyIGljb24uIgo+PkN1c3RvbWVyOiAiVGhhdCdzIHdoeSBJIGhhdGUgdGhpcyBXaW5kb3dzIC0tIGJlY2F1c2Ugb2YgdGhlIGljb25zIC0tCj4+SSdtIGEgUHJvdGVzdGFudCwgYW5kIEkgZG9uJ3QgYmVsaWV2ZSBpbiBpY29ucy4iCj4+VGVjaCBTdXBwb3J0OiAiV2VsbCwgdGhhdCdzIGp1c3QgYW4gaW5kdXN0cnkgdGVybSBzaXIuIEkgZG9uJ3QgYmVsaWV2ZQo+Pml0IHdhcyBtZWFudCB0byAtLSIKPj5DdXN0b21lcjogIkkgZG9uJ3QgY2FyZSBhYm91dCBhbnkgJ0luZHVzdHJ5IFRlcm1zJy4gSSBkb24ndCBiZWxpZXZlIGluCj4+aWNvbnMuIgo+PlRlY2ggU3VwcG9ydDogIldlbGwuLi53aHkgZG9uJ3QgeW91IGNsaWNrIG9uIHRoZSAnbGl0dGxlIHBpY3R1cmUnIG9mIGEKPj5maWxlIGNhYmluZXQuLi5pcyAnbGl0dGxlIHBpY3R1cmUnIE9LPyIKPj5DdXN0b21lcmxpY2s6IAo+Pgo+PiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj5DdXN0b21lcjogIk15IGNvbXB1dGVyIGNyYXNoZWQhIgo+PlRlY2ggU3VwcG9ydDogIkl0IGNyYXNoZWQ/Igo+PkN1c3RvbWVyOiAiWWVhaCwgaXQgd29uJ3QgbGV0IG1lIHBsYXkgbXkgZ2FtZS4iCj4+VGVjaCBTdXBwb3J0OiAiQWxsIHJpZ2h0LCBoaXQgQ29udHJvbC1BbHQtRGVsZXRlIHRvIHJlYm9vdC4iCj4+Q3VzdG9tZXI6ICJObywgaXQgZGlkbid0IGNyYXNoIC0tIGl0IGNyYXNoZWQuIgo+PlRlY2ggU3VwcG9ydDogIkh1aD8iPkN1c3RvbWVyOiAiSSBjcmFzaGVkIG15IGdhbWUuIFRoYXQncyB3aGF0IEkgc2FpZAo+YmVmb3JlLiBJIGNyYXNoZWQgbXkKPj5zcGFjZWhpcCBhbmQgbm93IGl0IGRvZXNuJ3Qgd29yay4iCj4+VGVjaCBTdXBwb3J0OiAiQ2xpY2sgb24gJ0ZpbGUsJyB0aGVuICdOZXcgR2FtZS4nIgpDdXN0b21lcjogW3BhdXNlXSJXb3chIEhvdydkIHlvdSBsZWFybiBob3cgdG8gZG8gdGhhdD8iCj4+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNzogMzEgKFJhbnRhbnBsYW4sICAzLiBEZXogMTk5OCwgMjA6NDQ6NTMpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9OTEyNjAxOTc5IHJnPXdpdHplCn4jISB0aWQ9OTEwMjcyNjY5Cldlbm4gd2lyIHNjaG9uIGJlaW0gS2x1Z3NjaGVpc3NlbiBzaW5kLi4uCgpEaWUgZ2VzYW10ZSBTY2hyb2VkaW5nZXJnbGVpY2h1bmcgbGFlc3N0IGluIGVpbmVyIE5hZWhlcnVuZyBlcnN0ZXIgT3JkbnVuZyBhdXMKZGVyCkZleW5tYW5zY2hlbiBQZmFkaW50ZWdyYWxmb3JtdWxpZXJ1bmcgaGVybGVpdGVuLgoKKmJsdWJiKiBhYmVyIHdhaHIgdW5kIHdlbiBzdG9lcnRzID8/Pz8KCk9lKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQlJFTk5FVCBJSFIgQ0hSSVNURU4gKEppZGR1LCAgNi4gRGV6IDE5OTgsIDA0OjM1OjEyKToKU3RlaGVuIDMgR2VzdGFsdGVuIGF1ZiBlaW5lbSBIb2NoaGF1cy4gRGEgc2FndCBkZXIgZWluZSB6dSBkZW4gYW5kZXJlbjogIkxvcwpsYXNzdCB1bnMgcnVudGVyc3ByaW5nZW4sIGVpbm1hbCB1bSBkYXMgSGF1cyBsYXVmZW4gdW5kIHdlciBhbHMgZXJzdGVyIHdpZWRlcgpvYmVuIGlzdCwgZGVyIGhhdCBnZXdvbm5lbi4uLiEiCkVpbiBhbmRlcmVyIGVudGdlZ25ldDogIlNvJ24gUXVhdHNjaC4uISBXZXIgZGEgcnVudGVyc3ByaW5ndCAuLi4gdm9uIGRlbQpibGVpYnQgbmljaHRzIHVlYnJpZyEiIERhcmF1ZmhpbiBzcHJpbmd0IGRlciBlcnN0ZSwgZGVyIGRlbiBWb3JzY2hsYWcgZ2VtYWNodApoYXQsIHZvbSBIb2NoaGF1cywgcmVubnQgZWlubWFsIHVtcyBIYXVzIHVuZCBpc3QgaW4gMzAgc2VrdW5kZW4gd2llZGVyIGF1ZiBkZW0KRGFjaC4gQWxzIGRlciAiVW5nbGFldWJpZ2UiIGRhcyBzaWVodCwgbmltbXQgZXIgQW5sYXVmLCBzcHJpbmd0IGVyIHZvbQpIb2NoaGF1cyAuLi4gdW5kIC4uLi5wbGF0c2NoIC4uLiBpc3QgbmF0dWVybGljaCB0b3QhCkRhIHNhZ3QgZGVyIERyaXR0ZTogIkFsc28gd2Vpc3RlLCBKZXN1cyAtIHdlbm4gZHUgdW50ZXIgRHJvZ2VuIHN0ZWhzdCBiaXN0IGR1CmVpbiBnYW56IHNjaG9lbmVzIEFyc2NobG9jaCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbnplaWdlIChHcmltbWJvcm4sICA4LiBEZXogMTk5OCwgMDA6MzI6MjEpOgpCcmF0c2NoZSB6dSB2ZXJrYXVmZW4uIEFiIDIuIExhZ2UgbmV1d2VydGlnLiBGYWJyaWtzdGltbXVuZy4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGF2aWQgOiggKFphcm5peWEsICA4LiBEZXogMTk5OCwgMTI6MTQ6MzApOgpIaSwgCgplaWdlbnRsaWNoIGlzdCBlcyBrZWluIFdpdHosIG9kZXIgZG9jaD8gTmFqYS4uLiBhbHNvIGVzIGdpYnQgTGV1dGUgYXVmIGRpZXNlcgpXZWx0LCBkaWUgYW5kZXJlIExldXRlIHZlcmFlcHBlbG4uIERpZSBzaW5kIG5pY2h0IG1hbCBNYWdpZXIgb2RlciBaYXViZXJlciwKc29uZGVybiBOVVIgSWxsdXNpb25pc3Rlbi4uLiB1bmQgd29sbGVuIGRhZnVlciwgZGFzcyBzaWUgYW5kZXJlIE1lbnNjaGVuCnZlcmFlcHBlbG4gdW5kIGVpbmVuIEFmZmVuIHZvcm1hY2hlbiwgYXVjaCBub2NoIEdlbGQuLi4gb2suLiB3ZW5uIHNpZSBlcyB3ZXJ0CnNpbmQsIGlzdHMgb2ssIEFCRVI6CgpXdWVyZGV0IElociAyODAgRE0gemFobGVuLCB1bSBldWNoIGVpbmVuIEFiZW5kIGxhbmcgdmVyYXJzY2hlbiB6dSBsYXNzZW4/Pz8KKFJ1aGUsIFd1cnplbCA6KSApLi4uIERhcyB3aWxsIGRlciBEYXZpZCBDb3BwZXJmaWVsZCBmdWVyIGVpbmUgS2FydGUgaGllciBpbgpLb2Vsbiwgd2VubiBlciBpbSBKYW51YXIgZGEgaXN0Li4uLiAKClNvbGx0ZW4gc2ljaCBuaWNodCBtYWwgZGllIEVNcyBoaWVyIGFsbGUgenVzYW1tZW50dW4gdW5kIG5hY2ggS29lbG4ga29tbWVuIHVuZAppaG0gemVpZ2VuLCB3YXMgZWNodGUgTWFnaWUgaXN0IHVuZCBkYXMgYXVjaCBub2NoIHVtc29uc3Q/IEF1ZiBpbiBkZW4gS2FtcGYhCgpaYXJuaXlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGF2aWQgOiggKFd1cnplbCwgIDguIERleiAxOTk4LCAyMDoyMDoxNik6Cn4jISBybj1aYXJuaXlhIHJ0PTkxMzExOTI3MCByZz13aXR6ZQp+IyEgdGlkPTkxMzExOTI3MAp3YXMgaGVpc3N0IGhpZXIgInJ1aGUsIHd1cnplbCIgPyBkYXMgd3VlcmRlIGljaCBiZXN0ZW5mYWxscyBmdWVyIGVpbmVuCmVjaHRlbiBtYWdpZXIgYmV6YWhsZW4sIGFiZXIga2VpbmVuIGNvcHBlcmZpZWxkLgpkZXIgd2l0eiBhbiBkZXIgc2FjaGUgaXN0IGRlciwgZGFzcyBkaWUgbGV1dGUsIGRpZSBkYXMgYmV6YWhsZW4sIGdhciBuaWNodAphbiBkZXIgc2hvdyBpbnRlcmVzc2llcnQgc2luZC4gaG9lY2hzdGVucyBhbiBkZXIgZWlnZW5lbiwgZGllIHNpZSBkYQp2ZXJhbnN0YWx0ZW4gd29sbGVuLCB1bSBnZXNlaGVuIHp1IHdlcmRlbi4gZnVlciBzb3dhcyBiaW4gaWNoIHp1IGhhZXNzbGljaCA6KQoKd3VyemVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6ZSAoTWVzYXJvbiwgMTEuIERleiAxOTk4LCAwMDozMDo0MSk6CldlciBlbmdsaXNjaGUgV2l0emUgbWFnLCBzb2xsdGUgc2ljaCBtYWwKCmh0dHA6Ly93d3cucmF3aWxzb24uY29tL2pva2VzLmh0bWwKCmFuc2NoYXVlbiwgdm9yIGFsbGVtICJCZXN0IE5ld3NwYXBlciBoZWFkbGluZXMgb2YgMTk5NyIgdW5kCiJTb21lIEVuZ2xpc2ggc2lnbnMgc2VlbiBpbiBub24tZW5nbGlzaCBzcGVha2luZyBjb3VudHJpZXMiLiBJY2ggaGFiCndpcmtsaWNoIFRyYWVuZW4gZ2VsYWNodCEgSGllciBlaW4gcGFhciBCZWlzcGllbGU6CgphdXMgIkJlc3QgTmV3c3BhcGVyIGhlYWRsaW5lcyI6CgpJbmNsdWRlIFlvdXIgQ2hpbGRyZW4gV2hlbiBCYWtpbmcgQ29va2llcwpQYW5kYSBNYXRpbmcgRmFpbHM7IFZldGVyaW5hcmlhbiBUYWtlcyBPdmVyCk1pbmVycyBSZWZ1c2UgdG8gV29yayBBZnRlciBEZWF0aApXYXIgRGltcyBIb3BlIGZvciBQZWFjZQpBc3Ryb25hdXQgVGFrZXMgQmxhbWUgZm9yIEdhcyBpbiBTcGFjZQpUeXBob29uIFJpcHMgdGhyb3VnaCBDZW1ldGVyeTsgSHVuZHJlZHMgRGVhZAoKYXVzICJTb21lIEVuZ2xpc2ggc2lnbnMgc2VlbiBpbiBub24tZW5nbGlzaCBzcGVha2luZyBjb3VudHJpZXMiOgoKSW4gYSBUb2t5byBIb3RlbDogSXMgZm9yYml0dGVuIHRvIHN0ZWFsIGhvdGVsIHRvd2VscyBwbGVhc2UuIElmIHlvdSBhcmUgbm90CnBlcnNvbiB0byBkbyBzdWNoIHRoaW5nIGlzIHBsZWFzZSBub3QgdG8gcmVhZCBub3Rpcy4KCkluIGEgQnVjaGFyZXN0IGhvdGVsIGxvYmJ5OiBUaGUgbGlmdCBpcyBiZWluZyBmaXhlZCBmb3IgdGhlIG5leHQgZGF5LiBEdXJpbmcKdGhhdCB0aW1lIHdlIHJlZ3JldCB0aGF0IHlvdSB3aWxsIGJlIHVuYmVhcmFibGUuCgpJbiBhIEJlbGdyYWRlIGhvdGVsIGVsZXZhdG9yOiBUbyBtb3ZlIHRoZSBjYWJpbiwgcHVzaCBidXR0b24gZm9yIHdpc2hpbmcKZmxvb3IuIElmIHRoZSBjYWJpbiBzaG91bGQgZW50ZXIgbW9yZSBwZXJzb25zLCBlYWNoIG9uZSBzaG91bGQgcHJlc3MgYSBudW1iZXIKb2Ygd2lzaGluZyBmbG9vci4gRHJpdmluZyBpcyB0aGVuIGdvaW5nIGFscGhhYmV0aWNhbGx5IGJ5IG5hdGlvbmFsIG9yZGVyLgoKSW4gYSBob3RlbCBpbiBBdGhlbnM6IFZpc2l0b3JzIGFyZSBleHBlY3RlZCB0byBjb21wbGFpbiBhdCB0aGUgb2ZmaWNlIGJldHdlZW4KdGhlIGhvdXJzIG9mIDkgYW5kIDExIEEuTS4gZGFpbHkuCgpPbiB0aGUgbWVudSBvZiBhIFBvbGlzaCBob3RlbDogU2FsYWQgYSBmaXJtJ3Mgb3duIG1ha2U7IGxpbXBpZCByZWQgYmVldCBzb3VwCndpdGggY2hlZXN5IGR1bXBsaW5ncyBpbiB0aGUgZm9ybSBvZiBhIGZpbmdlcjsgcm9hc3RlZCBkdWNrIGxldCBsb29zZTsgYmVlZgpyYXNoZXJzIGJlYXRlbiB1cCBpbiB0aGUgY291bnRyeSBwZW9wbGUncyBmYXNoaW9uLgoKQSBzaWduIHBvc3RlZCBpbiBHZXJtYW55J3MgQmxhY2sgRm9yZXN0OiBJdCBpcyBzdHJpY3RseSBmb3JiaWRkZW4gb24gb3VyIGJsYWNrCmZvcmVzdCBjYW1waW5nIHNpdGUgdGhhdCBwZW9wbGUgb2YgZGlmZmVyZW50IHNleCwgZm9yIGluc3RhbmNlLCBtZW4gYW5kIHdvbWVuLApsaXZlIHRvZ2V0aGVyIGluIG9uZSB0ZW50IHVubGVzcyB0aGV5IGFyZSBtYXJyaWVkIHdpdGggZWFjaCBvdGhlciBmb3IgdGhhdApwdXJwb3NlLgoKQWR2ZXJ0aXNlbWVudCBmb3IgZG9ua2V5IHJpZGVzIGluIFRoYWlsYW5kOiBXb3VsZCB5b3UgbGlrZSB0byByaWRlIG9uIHlvdXIgb3duCmFzcz8KCk9uIHRoZSBmYXVjZXQgaW4gYSBGaW5uaXNoIHdhc2hyb29tOiBUbyBzdG9wIHRoZSBkcmlwLCB0dXJuIGNvY2sgdG8gcmlnaHQuCgpJbiBhIFN3aXNzIG1vdW50YWluIGlubjogU3BlY2lhbCB0b2RheSAtLSBubyBpY2UgY3JlYW0uCgpJbiBhIFRva3lvIGJhcjogU3BlY2lhbCBjb2NrdGFpbHMgZm9yIHRoZSBsYWRpZXMgd2l0aCBudXRzLgoKSW4gYSBDb3BlbmhhZ2VuIGFpcmxpbmUgdGlja2V0IG9mZmljZTogV2UgdGFrZSB5b3VyIGJhZ3MgYW5kIHNlbmQgdGhlbSBpbiBhbGwKZGlyZWN0aW9ucy4KCkluIGEgTm9yd2VnaWFuIGNvY2t0YWlsIGxvdW5nZTogTGFkaWVzIGFyZSByZXF1ZXN0ZWQgbm90IHRvIGhhdmUgY2hpbGRyZW4gaW4KdGhlIGJhci4KCkF0IGEgQnVkYXBlc3Qgem9vOiBQbGVhc2UgZG8gbm90IGZlZWQgdGhlIGFuaW1hbHMuIElmIHlvdSBoYXZlIGFueSBzdWl0YWJsZQpmb29kLCBnaXZlIGl0IHRvIHRoZSBndWFyZCBvbiBkdXR5LgoKSW4gdGhlIG9mZmljZSBvZiBhIFJvbWFuIGRvY3RvcjogU3BlY2lhbGlzdCBpbiB3b21lbiBhbmQgb3RoZXIgZGlzZWFzZXMuCgpGcm9tIGEgYnJvY2h1cmUgb2YgYSBjYXIgcmVudGFsIGZpcm0gaW4gVG9reW86IFdoZW4gcGFzc2VuZ2VyIG9mIGZvb3QgaGVhdmUgaW4Kc2lnaHQsIHRvb3RsZSB0aGUgaG9ybi4gVHJ1bXBldCBoaW0gbWVsb2Rpb3VzbHkgYXQgZmlyc3QsIGJ1dCBpZiBoZSBzdGlsbApvYnN0YWNsZXMgeW91ciBwYXNzYWdlIHRoZW4gdG9vdGxlIGhpbSB3aXRoIHZpZ29yLgoKTXVudGVyIGJsZWliZW4hCk1lc2EKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbnplaWdlIChLcmV0ZWssIDExLiBEZXogMTk5OCwgMTk6MTg6MjYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTkxMzA3NzE0MSByZz13aXR6ZQp+IyEgdGlkPTkxMzA3NzE0MQoqKnJvdGZsKiogX0Rlcl8gaGF0IGluIG1laW5lciBCcmF0c2NoZW4tV2l0emUtU2FtbWx1bmcgZGVmaW5pdGl2IG5vY2ggCmdlZmVobHQhIDotKQoKVWVicmlnZW5zOiBXaWUgYnJpbmd0IG1hbiAnbmVuIEJyYXRzY2hlbi1TcGllbGVyIGRhenUsIGVpbgpwZXJmZWt0ZXMgVHJlbW9sbyB6dSBzcGllbGVuPwoKR2FueiBlaW5mYWNoOiBNYW4gc2NocmVpYnQgaW4gc2VpbmUgUGFydGl0dXIgIlNvbG8iLi4uCgogICAgICAgICAgCiAgICAgICAgICBrcmV0ZWtAYW50aXNvY2lhbC5jb20KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2l0emUgKEFjcmltb24sIDExLiBEZXogMTk5OCwgMTk6MzQ6MzUpOgp+IyEgcm49TWVzYXJvbiBydD05MTMzMzYyNDEgcmc9d2l0emUKfiMhIHRpZD05MTMzMzYyNDEKSWNoIGhhYiBtYWwgaW4gZWluZXIgV2FsaXNlciBKdWdlbmRoZXJiZXJnZSB1ZWJlciBlaW5lbSBIZXJkIGZvbGdlbmRlCkJlZGllbnVuZ3NhbmxlaXR1bmcgenVtIEFuc2NoYWx0ZW4gZGVzIEhlcmRlcyBnZWxlc2VuOgooZWluIERyZWhrbm9wZiB3YXIgYWJnZWJpbGRldCkKcHVzaCBpbiBhbmQgdHVybiByaWdodApGcmV1bmRsaWNoZXJ3ZWlzZSBzdGFuZCBzb2dhciBkaWUgZGV1dHNjaGUgVWViZXJzZXR6dW5nIGRhcnVudGVyOgpIaW5laW5kcnVlY2tlbiB1bmQgcmVjaHRzIGFiYmllZ2VuLgoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NobiBicmF0c2NoZXItd2l0eiAoWWFyZW4sIDExLiBEZXogMTk5OCwgMjI6MDk6NTMpOgpJbW1lciB3ZW5uIGRlciAxLiBCcmF0c2NoaXN0IGRlcyBwaGlsYXJtb25pc2NoZW4gT3JjaGVzdGVycyBzZWluZSBCcmF0c2NoZSB6dQpQcm9iZW4gb2RlciBLb256ZXJ0ZW4gYXVzIHNlaW5lbSBTcGluZCBob2x0LCBuaW1tdCBlciBrdXJ6IGVpbmVuIFpldHRlbCBhdXMKZGVtIFNwaW5kIGluIGRpZSBIYW5kLCBsaWVzdCBpaG4sIG5pY2t0IHVuZCBsZWd0IGlobiB3aWVkZXIgenVydWVjay4gQWxzIGVyCm5hY2ggMzUgSmFocmVuIGluIFJlbnRlIGdlaHQsIGhvZmZ0IGRhcyBPcmNoZXN0ZXIgZW5kbGljaCB6dSBlcmZhaHJlbiwgd2FzCmRlbm4gYXVmIGRlbSBaZXR0ZWwgc3RlaHQuIERpZSBnYW56ZSBNYW5uc2NoYWZ0IHZlcnNhbW1lbHQgc2ljaCB2b3IgZGVtIFNwaW5kLApkZXIgZXJzdGUgRmxvZXRpc3Qgb2VmZm5ldCBpaG4sIGhvbHQgbWl0IHppdHRyaWdlbiBIYWVuZGVuIGRlbiBaZXR0ZWwgaGVyYXVzCnVuZCBsaWVzdCB2b3I6ICJCcmF0c2NoZSBsaW5rcywgQm9nZW4gcmVjaHRzIgoKWWFyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaG4gYnJhdHNjaGVyLXdpdHogKEdyaW1tYm9ybiwgMTIuIERleiAxOTk4LCAyMTo1NToyMik6Cn4jISBybj1ZYXJlbiBydD05MTM0MTQxOTMgcmc9d2l0emUKfiMhIHRpZD05MTM0MTQxOTMKV2llIGJla29tbXQgbWFuIGRpZSBDZWxsaXN0ZW4gZGF6dSwgZm9ydGlzc2ltbyB6dSBzcGllbGVuPwpNYW4gc2NocmVpYnQgaW4gZGllIE5vdGVuOiAic29sbywgcGlhbm8sIGVzcHJlc3Npdm8iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBub2NobiBicmF0c2NoZXItd2l0eiAoS2VsbHlidW5keSwgMTMuIERleiAxOTk4LCAxNzo0Mjo1OCk6Cn4jISBybj1ZYXJlbiBydD05MTM0MTQxOTMgcmc9d2l0emUKfiMhIHRpZD05MTM0MTQxOTMKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gQnJhdHNjaGVyIHVuZCBlaW5lciBXYXNjaG1hc2NoaW5lPwoKMS4pIERpZSBXYXNjaG1hc2NoaW5lIHZpYnJpZXJ0LgoKMi4pIFdhcyBiZWkgZGVyIE1hc2NoaW5lIHJhdXNrb21tdCwgaXN0IHNhdWJlci4KCjMuKSBEaWUgTWFzY2hpbmUga29tbXQgZXJzdCBhbSBFbmRlIGRlcyBQcm9ncmFtbWVzIGlucyBTY2hsZXVkZXJuLgoKKmdyaW5zKgoKS2VsbHkgZGllIER1bXBmYmFja2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVuZCBub2NoIGVpbmVyIChLZWxseWJ1bmR5LCAxMy4gRGV6IDE5OTgsIDE5OjA0OjU0KToKV2llIG5lbm50IG1hbiBkZW4gUGltbWVsIGVpbmVzIEVsZWZhbnRlbj8KCgoKCgoKCgoKCgoKCgpEaWNrdGllcmdlcmFldCEKCkR1bXBmYmFja2UgaW1tZXIgbm9jaCBncmluc2VuZCAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaWUgKFNhbGFkaW4sIDEzLiBEZXogMTk5OCwgMTk6Mzg6MDUpOgpXYXMgaXN0IGVpbmUgQmxvbmRpbmUgaW4gZWluZXIgUml0dGVycnVlc3R1bmc/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpFaW4gQmxlY2hibGFzaW5zdHJ1bWVudAoKU2FsYWRpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsb25kaWUgKEdyaW1tYm9ybiwgMTMuIERleiAxOTk4LCAyMzo0MzowNyk6Cn4jISBybj1TYWxhZGluIHJ0PTkxMzU3Nzg4NSByZz13aXR6ZQp+IyEgdGlkPTkxMzU3Nzg4NQpCaXR0ZSBsYXNzdCBkaWVzZSBraW5kaXNjaGVuIExlZXJ6ZWlsZW4gKGdsYXVidCBpaHIgd2lya2xpY2ggamVtYW5kIHd1ZXJkZQpkZXN3ZWdlbiBsYWVuZ2VyIHNlbGJlciB1ZWJlciBlaW5lIEFudHdvcnQgbmFjaGRlbmtlbj8pLCBkYXMgaGF0IGhpZXIgbm9jaApuaWVtYW5kIGdlYnJhdWNodC4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKQWNoIGphLCBub2NoIGVpbmVyOgpPcmNoZXN0ZXIgYXVmIFR1cm5lZSwgRGlyaWdlbnQgd2lyZCBrcmFuay4gRWluZXIgZGVyIEJyYXRzY2hpc3RlbiBrYW5uIGVpbgpiaXNjaGVuIGRpcmlnaWVyZW4gdW5kIHVlYmVybmltbXQuIE5hY2ggendlaSBXb2NoZW4gaXN0IGRlciBEaXJpZ2VudCB3aWVkZXIKZ2VzdW5kLCBkZXIgQnJhdHNjaGlzdCBnZWh0IHdpZWRlciBhbiBzZWluZW4gUGxhdHouIEZyYWd0IHNlaW4gUHVsdGtvbGxlZ2U6CiJXbyB3YXJzdCBEdSBlaWdlbnRsaWNoIGRpZSBiZWlkZW4gbGV0enRlbiBXb2NoZW4/IgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFkdmVudCwgYWR2ZW50IC4uLiAoRWlzaSwgMTQuIERleiAxOTk4LCAxMTo1ODoyNSk6CgpTb25udGFnLCAxLiBBZHZlbnQgMTAuMDAgVWhyLgpJbiBkZXIgUmVpaGVuaGF1c3NpZWRsdW5nIG5rZWxzdGllZyBsdCBzaWNoIGRpZSBSZW50bmVyaW4gRXJuYSBCLgpkdXJjaCBpaHJlbiBFbmtlbCBOb3JiZXJ0IDMgRWxla3Ryb2tlcnplbiBhdWYgZGVyIEZlbnN0ZXJiYW5rIGlocmVzCldvaG56aW1tZXJzIGluc3RhbGxpZXJlbi4gVm9yd2VpaG5hY2h0bGljaGUgU3RpbW11bmcgYnJlaXRldCBzaWNoIGF1cywKZGllIEZyZXVkZSBpc3QgZ3JvLgoxMCBVaHIgMTQ6CkJlaW0gRW50bGVlcmVuIGRlcyBNbGxlaW1lcnMgYmVvYmFjaHRldCBOYWNoYmFyCk90dGZyaWVkIFAuIGRpZSBwcm92b2thbnRlIFdlaWhuYWNodHNvZmZlbnNpdmUgaW0KTmViZW5oYXVzIHVuZCBrb250ZXJ0IHVtZ2VoZW5kIG1pdCBkZXIgQXVmc3RlbGx1bmcgZGVzIDEwIGFybWlnZW4KZG5pc2NoZW4gS2VyemVuc2V0IHp1IGplIDE1IFdhdHQgaW0gS2NoZW5mZW5zdGVyLiBTdHVuZGVuIHNwdGVyCmVyc3RyYWhsdCBkaWUgZ2VzYW10ZSBTaWVkbHVuZyBua2Vsc3RpZWcgaW0gYmVzaW5ubGljaGVuIEdsYW56IHZvbgoxMzQgRmVuc3RlcmRla29yYXRpb25lbi4KMTkgVWhyIDAzOgpJbSAxNCBrbSBlbnRmZXJudGVuIEtvaGxla3JhZnR3ZXJrIFNvdHRydXAtSGNrbGFnZQpyZWdpc3RyaWVydCBkZXIgd2FjaGhhYmVuZGUgSW5nZW5pZXVyIGlycnRtbGljaAplaW5lbiBEZWZla3QgZGVyIFN0cm9tbWVnZXJ0ZSBmciBkZW4gQmVyZWljaCBTdGVua2VsZmVsZC1Ob3JkLCBpc3QKYWJlciB6dW5jaHN0IGFyZ2xvcy4KMjAgVWhyIDE3OgpEZW4gRWhlbGV1dGVuIEhvcnN0IHVuZCBIZWlkaSBFLiBnZWxpbmd0IGRlcgpBbnNjaGx1IGVpbmVyIEtldHRlbnNjaGFsdHVuZyB2b24gOTYKSGFsb2dlbi1GaWxtbGV1Y2h0ZW4sIGR1cmNoIHNtdGxpY2hlIEJ1bWUgaWhyZXMgT2JzdGdhcnRlbnMsIGFucwpEcmVoc3Ryb21uZXR6LiBUZWlsZSBkZXIgaGVpbWlzY2hlbiBWb2dlbHdlbHQgYmVnaW5uZW4gdmVyd2lycnQgbWl0CmRlbSBOZXN0YmF1LgoyMCBVaHIgNTY6CkRlciBEaXNjb3RoZWtlbmJlc2l0emVyIEFsZm9ucyBLLiBzaWVodCBzaWNoCmdlbnRpZ3Qgc2VpbmVyc2VpdHMgZWluZW4gVGVpbCB6dXIgdm9yLXdlaWhuYWNodGxpY2hlbiBTdGltbXVuZwpiZWl6dXRyYWdlbiB1bmQgbW9udGllcnQgYXVmIGRlbSBGbGFjaGRhY2ggc2VpbmVzIEJ1bmdhbG93cyBkYXMKTGFzZXJlbnNlbWJsZSBNZXRyb3BvbGlzLCBkYXMgenUgZGVuIGxlaXN0dW5nc3N0cmtzdGVuIEV1cm9wYXMgemhsdC4KRGllIDQwbSBGYXNzYWRlIGVpbmVzIGFuZ3JlbnplbmRlbiBHZXRyZWlkZXNpbG9zIGhsdCBkZW0gRGF1ZXJmZXVlcgpkZXIgTmlrb2xhdXNwcm9qZWt0aW9uIG1laHJlcmUgTWludXRlbiBzdGFuZCwgYmV2b3Igc2llIG1pdCBlaW5lbQpobGljaGVuIEdlcnVzY2ggemVyYnJja2VsdC4KMjEgVWhyIDMwOgpJbSBUcnViZWwgZWluZXIgSnVsLUNsdWItRmVpZXIgaW0gS29obGVrcmFmdHdlcmsgU290dHJ1cC1IY2tsYWdlIHZlcmhhbGx0CmRhcwpBbGFybXNpZ25hbCBhdXMgR2VuZXJhdG9yaGFsbGUgNS4KMjEgVWhyIDUwOgpEZXIgODUgamhyaWdlIEtyaWVnc3ZldGVyYW4gQXVndXN0IFIuIHphdWJlcnQgbWl0IDE5MCBGbGFrc2NoZWlud2VyZmVybgpkZXMgVHlwcwpWYXJ0YSBWb2xrc3N0dXJtIGRlbiBTdGVybiB2b24gQmV0aGxlaGVtIGFuIGRpZSB0aWVmaG5nZW5kZQpXb2xrZW5kZWNrZS4KMjIgVWhyIDEyOgpFaW5lIEdydXBwZSBhc2lhdGlzY2hlciBHZXNjaGZ0c2xldXRlIG1pdApsZWljaHRlbSBHZXBjayB1bmQgc29tbWVybGljaGVyIEJla2xlaWR1bmcgaXJydCB2ZXJuZ3N0aWd0IGR1cmNoIGRpZQpTaWVkbHVuZyBPbmtlbHN0aWVnLiBadXZvciB3YXIgZWluZSBCb2luZyA3NDcgZGVyIFNpbmdhcHVyIEFpcmxpbmVzCm1pdCBkZW0gWmllbCBTaWRuZXkgdmVyc2VoZW50bGljaCBpbiBkZXIgbWl0IDMwMDAgYnVudGVuIE5lb25yaHJlbgpnZXBmbGFzdGVydGVuIEdhcmFnZW56dWZhaHJ0IGRlciBCY2tlcmVpIEJyaHJtZXllciBnZWxhbmRldC4KMjIgVWhyIDM3OgpEaWUgTkFTQSBSYXVtc29uZGUgVm95YWdlciA3IGZ1bmt0IHZvbSBSYW5kZSBkZXIgTWlsY2hzdHJhZQpCaWxkZXIgZWluZXIgYW5nZWJsaWNoZW4gU3VwZXJub3ZhIGF1ZiBkZXIgbnJkbGljaGVuIEVyZGhhbGJrdWdlbCwKZGllIEV4cGVydGVuIGluIEhvdXN0b24gc2luZCByYXRsb3MuCjIyIFVociA1MDoKRWluIGxlaWNodGVzIEJlYmVuIGVyc2NodHRlcnQgZGllIFVtZ2VidW5nIGRlcyBLb2hsZWtyYWZ0d2Vya3MKU290dHJ1cC1IY2tsYWdlLCBkZXIgZ2VzYW10ZSBLb21wbGV4IG1pdCBzZWluZW4KMzAgVHVyYmluZW4gbHVmdCBtaXQgMzUwIE1lZ2F3YXR0IGJybGxlbmQKamVuc2VpdHMgZGVyIEJlbGFzdHVuZ3NncmVuemUuCjIzIFVociAwNjoKSW4gZGVyIHRhZ2hlbGwgZXJsZXVjaHRldGVuIFNpZWRsdW5nIG5rZWxzdGllZyBlcndhY2h0ClN0dWRlbnRpbiBCZXR0aW5hIFUuIHVuZCBmcmV1dCBzaWNoIGlycnRtbGljaCBiZXIgZGVuIHNvbm5pZ2VuCkRlemVtYmVybW9yZ2VuLiBVbSBnZW5hdSAyMyBVaHIgMTIKYmV0dGlndCBzaWUgZGVuIFNjaGFsdGVyIGlocmVyIEthZmZlZW1hc2NoaW5lLgoyMyBVaHIgMTIgdW5kIDE0IFNla3VuZGVuOgpJbiBkaWUgcGx0emxpY2hlIER1bmtlbGhlaXQgZGVzIGdlc2FtdGVuIExhbmRrcmVpc2VzClN0ZW5rZWxmZWxkIGJyaWNodCBkaWUgRXhwbG9zaW9uIGRlcyBLb2hsZWtyYWZ0d2Vya3MgU290dHJ1cC1IY2tsYWdlCndpZSBEb25uZXJoYWxsLiBEdXJjaCBkaWUgc3RvY2tmaW5zdGVyZW4gT3J0c2NoYWZ0ZW4gaXJyZW4gdmVyd2lycnRlCk1lbnNjaGVuLCBNZW5zY2hlbiB3aWUgZHUgdW5kIGljaCwgZGVuZW4gZWluZSBLZXJ6ZSBhdWYgZGVtCkFkdmVudHNrcmFueiBuaWNodCBnZW51ZyB3YXIuCkluIGRpZXNlbSBTaW5uZSAhIEZyb2hlIEFEVkVOVFNaRUlUICEKQmlzIGRlbm4uLi4KCgoKc2Nob2VuZSBXZWlobmFjaHRlbiwgRWlzaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKREVSIGlzdCBndXQgKE1vcmdvdGgsIDE0LiBEZXogMTk5OCwgMTI6MTI6MDQpOgpTaGFkb3cgUmlrdXMgaXMgYmVhdXRpZnVsLCBpcyBzZXh5IGFuZCBnb3JnZW91cy4gWy9tYWdpZXI6cmlrdXNdCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGFkdmVudCwgYWR2ZW50IC4uLiAoUWl0ZXNzLCAxNC4gRGV6IDE5OTgsIDE3OjA5OjA4KToKfiMhIHJuPUVpc2kgcnQ9OTEzNjM2NzA1IHJnPXdpdHplCn4jISB0aWQ9OTEzNjM2NzA1ClNjaG5lIFdlaWhuYWNodGVuIGFsbGVuIG1laW5lbiBsaWViZW4gc2VuIEZyZXVuZGVuLgoKRGFzIHZlcmdhbmdlbmUgSmFociBsdCBtaWNoIGJlciB2aWVsZSBEaW5nZSBuYWNoZGVua2VuLgpiZXIgYWxsZW4gRGluZ2VuIGFiZXIgc3RlaHQgZGllIEZyYWdlOiBtdSBkYXMgc2Vpbj8KS25uZW4gd2lyIG5pY2h0IGdydW5kc2FldHpsaWNoIGRhenUgYmVyZ2VoZW4sCmVpbiBhbHMgc3MgdW5kIGVpbiAsICwgb2RlciBhbHMgYWUsIG9lIGJ6dyB1ZSB6dSBzY2hyZWliZW4/CkVzIGlzdCByaWNodGlnIGxzdGlnLCBkYSBtYW4gZGFzIG5pY2h0IGxlc2VuIGthbm4uCk1pdCBzb2xjaCBlaW5lbSBrbGVpbmVuIGRtbWxpY2hlbiBIaXJuIHdpZSBtZWluZXMgZWlucyBpc3QKamVkZXNtYWwgZGllIGJlcnNldHplcm1hc2NoaW5lIGFuenV3ZXJmZW4gdW5kIGRlbiBnYW56ZW4KU2NoZWkgaW4gdmVyc3RuZGxpY2hlIFNjaHJpZnQgdW16dWRlbmtlbiBsdCBtaWNoIGplZGVzbWFsCmJlciBhbGxlIE1hZW4gc2NoYXVkZXJuLgoKSXN0IGVzIG5pY2h0IHZpZWwgZWluZmFjaGVyIGRlbiBLcmFtIHZlcnN0YWVuZGxpY2ggenUKc2NocmVpYmVuPyBXYWVyZSBlY2h0IG5ldHQuIFNlbGJzdCBlaW4gJ3N6JyB2b24gQWNyaW1vbgppc3QgbGVpY2h0ZXIgenUgbGVzZW4uIEVzIGthbm4gamEgd29obCBuaWNodCBzbyBzY2h3aWVyaWcKc2VpbiwgZGFzIGt1cnogenUgdWViZXJhcmJlaXRlbiwgb2Rlcj8KClFJKiogbWVpbnQ6IGZhdWxlIE11ZGRlci4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZXNlcyBKYWhyIGtlaW4gV2VpaG5hY2h0c21hbm4hIChKYW1lc29uLCAxNC4gRGV6IDE5OTgsIDE4OjEwOjI0KToKV2VyIHNjaG9uIGltbWVyIGRyYW4gZ2V6d2VpZmVsdCBoYXQsIGRhc3MgZXMgZGVuIFdlaWhuYWNodHNtYW5uIGdpYnQsCmhhdCBSZWNodCEgRXMgZ2lidCBlaW5kZXV0aWdlIEJld2Vpc2UsIGRhc3MgZGVyIE5pa29sYXVzIG5pY2h0cyB3ZWl0ZXIKYWxzIGVpbmUgZnJvbW1lIEx1ZWdlIGlzdC4KCldpZSB1bSBIaW1tZWxzIFdpbGxlbiBrYW5uIGVyIGVzIGluIGVpbmVyIGVpbnppZ2VuIE5hY2h0IHNjaGFmZmVuLApNaWxsaW9uZW4gS2luZGVyIHp1IGJlc2NoZW5rZW4/IFVuZCB3ZXIgc3RlY2t0IGhpbnRlciBkaWVzZXIKVmVyc2Nod29lcnVuZz8KU3R1ZGVudGVuIGRlciBOYXR1cndpc3NlbnNjaGFmdGVuIHdvbGx0ZW4gamV0enQgZW5kZ3VlbHRpZyBLbGFyaGVpdApzY2hhZmZlbi4gQW4gVW5pdmVyc2l0YWV0ZW4gdW5kIEhvY2hzY2h1bGVuIGluIGdhbnogRGV1dHNjaGxhbmQKbGllZmVuIGRpZSBSZWNobmVyIGhlaXNzLiBEYXMgRXJnZWJuaXMgYmVzdGFldGlndCBkaWUgc2NobGltbXN0ZW4KVmVybXV0dW5nZW46IERlbiBXZWlobmFjaHRzbWFubiBrYW5uIGVzIG5hY2ggbWVuc2NobGljaGVtIEVybWVzc2VuIG5pY2h0CmdlYmVuLgoKRXR3YSB6d2VpIE1pbGxpYXJkZW4gTWVuc2NoZW4gdW50ZXIgMTggSmFocmVuIGxlYmVuIGRlcnplaXQgYXVmIGRlciBFcmRlLgpEYSBkZXIgV2VpaG5hY2h0c21hbm4gTmljaHRjaHJpc3RlbiB3aWUgTW9zbGVtcywgSGluZHVzLCBKdWRlbiBvZGVyCkJ1ZGRoaXN0ZW4gdW5mYWlyZXJ3ZWlzZSBuaWNodCBiZXNjaGVua3QsIHJlZHV6aWVydCBzaWNoIHNlaW5lIEtsaWVudGVsCmF1ZiBldHdhIDE5IFByb3plbnQgYWxsZXIgTWFlZGNoZW4gdW5kIEp1bmdlbi4gU2VpbmUgS3VuZGVua2FydGVpIApzY2hydW1wZnQgZGFtaXQgYXVmIGRpZSBsYWVjaGVybGljaGUgWmFobCB2b24gMzc4IE1pbGxpb25lbiBLaW5kZXJuLgoKRGVyIFdlaWhuYWNodHNtYW5uLCBkZXIgaW4gTGFwcGxhbmQgb2RlciBhbSBOb3JkcG9sIHNlaW4gRG9taXppbAphdWZnZXNjaGxhZ2VuIGhhYmVuIHNvbGwsIG11ZXNzdGUgdHJvdHogc2VpbmVzIGhvaGVuIEFsdGVycyBleHRyZW0gZml4CnNlaW4uIFNjaGxpZXNzbGljaCB3YXJ0ZW4gaW4gZXR3YSA5MiBNaWxsaW9uZW4gY2hyaXN0bGljaGVuCkhhdXNoYWx0ZW4gYnJhdmUgS2luZGVyIGF1ZiBpaHJlIEdlc2NoZW5rZS4gQW5nZW5vbW1lbiwgZGVyIE5pa29sYXVzCnJlaXN0IGR1cmNoIGRpZSB2ZXJzY2hpZWRlbmVuIFplaXR6b25lbiB2b24gT3N0ZW4gbmFjaCBXZXN0ZW4sIGRhbm4Kc3RlaHQgaWhtIGVpbiAzMS1TdHVuZGVuLVRhZyB6dXIgVmVyZnVlZ3VuZy4gRGFiZWkga2FlbWUgZXIgZ2FuegpzY2hvZW4gYXVzIGRlciBQdXN0ZTogUHJvIFNla3VuZGUgaGFldHRlIGVyIGV0d2EgODIzIEJlc3VjaGUgenUKYmV3YWVsdGlnZW4uCgpKZWRlcyBLaW5kLCBhdWNoIHdlbm4gZXMgbm9jaCBzbyBicmF2IGlzdCwgbXVlc3N0ZSBpbm5lcmhhbGIgdm9uIGVpbmVyClRhdXNlbmRzdGVsIFNla3VuZGUgYWJnZWZlcnRpZ3Qgd2VyZGVuLiBJbiBkaWVzZXIgWmVpdCBtdXNzIGVyIGF1c3NlcmRlbQpwYXJrZW4sIGF1cyBkZW0gU2NobGl0dGVuIHNwcmluZ2VuLCBpbnMgV29obnppbW1lciBlaWxlbiwgQWVwZmVsLCBOdWVzc2UsCkJ1ZWNoZXIgdW5kIFNwaWVsemV1ZyB1bnRlcm0gV2VpaG5hY2h0c2JhdW0gdmVydGVpbGVuLCBzaWNoIHdpZWRlciBhdWYgc2VpbmVuClNjaGxpdHRlbiBzY2h3aW5nZW4gdW5kIHp1bSBuYWVjaHN0ZW4gSGF1cyBmbGllZ2VuLgpJbiBBbWVyaWthIHVuZCBFbmdsYW5kIHJ1dHNjaHQgZXIgYXVjaCBub2NoIGR1cmNoIGRlbiBTY2hvcm5zdGVpbi4KV2llIGVyIGRhIGR1cmNocGFzc3QsIGlzdCBiaXMgaGV1dGUgbmljaHQgZ2VrbGFlcnQuCgpXYWVyZSBqZWRlciBkZXIgOTIgTWlsbGlvbmVuIGNocmlzdGxpY2hlbiBIYXVzaGFsdGUgZ2xlaWNobWFlc3NpZyBhdWYKZGVyIEVyZGUgdmVydGVpbHQsIGhhZXR0ZSBkZXIgV2VpaG5hY2h0c21hbm4gaW5uZXJoYWxiIHZvbiAzMSBTdHVuZGVuCmRpZSB1bmdsYXVibGljaGUgU3RyZWNrZSB2b24gZXR3YSAxMjAgTWlsbGlvbmVuIEtpbG9tZXRlcm4KenVydWVja3p1bGVnZW4uIE5pY2h0IG1pdCBlaW5nZXJlY2huZXQgZGllIFVudGVyYnJlY2h1bmdlbiwgZGllIGF1Y2ggZWluCldlaWhuYWNodHNtYW5uIGZ1ZXIgc2ljaCBlaW5rYWxrdWxpZXJlbiBtdWVzc3RlLgoKV2llIGplZGVyIHdlaXNzLCBoYXQgZGVyIFdlaWhuYWNodHNtYW5uIGVpbmVuIFNjaGxpdHRlbiwgZGVyIHZvbiBhY2h0ClJlbnRpZXJlbiBnZXpvZ2VuIHdpcmQuIEFiZXIgYXVjaCBkYXMga2FubiBuaWNodCBzdGltbWVuOgpEZXIgV2VpaG5hY2h0c21hbm4gbXVlc3N0ZSBhdWYgc2VpbmVtIFNjaGxpdHRlbiBtaXQgZGVyIHVuZ2xhdWJsaWNoZW4KR2VzY2h3aW5kaWdrZWl0IHZvbiAxMDc1IEtpbG9tZXRlcm4gcHJvIFNla3VuZGUgdm9uIEhhdXMgenUgSGF1cyByYXNlbi4KRGFzIGlzdCBkaWUgMzAwMGZhY2hlIFNjaGFsbGdlc2Nod2luZGlna2VpdC4gWnVtIFZlcmdsZWljaDogRGllIEVyZGUKdW1rcmVpc3QgZGllIFNvbm5lIG1pdCAzMCBrbSBwcm8gU2VrdW5kZS4gRGllIFJhdW1zb25kZSBVbHlzc2VzLCBkaWUgZGllClNvbm5lbnBvbGUgZXJmb3JzY2h0LCBzY2hhZmZ0IGdlcmFkZSBtYWwgMTEsMyBrbS9zLgpFaW4gZ2V3b2VobmxpY2hlcyBSZW50aWVyIGxlZ3QgaW0gU2Nobml0dCBiZWkgRGF1ZXJiZWxhc3R1bmcgc2NobGFwcGUKMjUga20genVydWVjayAtIGluIGVpbmVyIFN0dW5kZS4gRGVyIFdlaWhuYWNodHNtYW5uIG11ZXNzdGUgZGVtbmFjaCBlaW5lCmJpc2xhbmcgdW5iZWthbm50ZSBTcGV6aWVzIGRpZXNlciBHYXR0dW5nIGltIFN0YWxsIGhhYmVuLgpCaXNsYW5nIGdpYnQgZXMgYXVmIGRlciBFcmRlIHp3YXIgZXR3YSAzMDAwMDAgbm9jaCBuaWNodCBrbGFzc2lmaXppZXJ0ZQpMZWJld2VzZW4uIERhYmVpIGhhbmRlbHQgZXMgc2ljaCBhYmVyIHVlYmVyd2llZ2VuZCB1bSBJbnNla3Rlbi4KCktvbW1lbiB3aXIgenVtIFNjaGxpdHRlbi4gQW5nZW5vbW1lbiwgamVkZXMgS2luZCBkYXJmIFdlaWhuYWNodGVuIGltClNjaG5pdHQgZWluIEtpbG8gR2VzY2hlbmtlIGF1c3BhY2tlbi4gRGFubiBoYWV0dGUgZGVyIFNjaGxpdHRlbiBvaG5lIGRlbgptZWlzdCBhbHMgdWViZXJnZXdpY2h0aWcgYmVzY2hyaWViZW5lbiBXZWlobmFjaHRzbWFubiAzNzgwMDAgVG9ubmVuCmdlbGFkZW4uIEZlc3Qgc3RlaHQsIGRhc3MgZWluIGdld29laG5saWNoZXMgUmVudGllciBob2VjaHN0ZW5zIGV0d2EgMTc1CktpbG8gemllaGVuIGthbm4uIFNlbGJzdCBiZWkgZGVyIGdyb3NzenVlZ2lnZW4gQW5uYWhtZSwgZGFzcyBlaW4Kc29nZW5hbm50ZXMgImZsaWVnZW5kZXMgUmVudGllciIgZGFzIFplaG5mYWNoZSBhbiBadWdrcmFmdCBsZWlzdGVuIGthbm4sCmthbm4gZXMgYWxzIGdlc2ljaGVydCBnZWx0ZW4sIGRhc3MgZGVyIFdlaWhuYWNodHNtYW5uIG5pY2h0IG1pdCBhY2h0ClJlbnRpZXJlbiB1bnRlcndlZ3Mgc2VpbiBrYW5uLCBzb25kZXJuIG1pdCBtaW5kZXN0ZW5zIDIxNjAwMC4KU29taXQgd3VlcmRlIGRpZSBmbGllZ2VuZGUgU3BlZGl0aW9uIG1pbmRlc3RlbnMgNDEwMDAwIFRvbm5lbiB3aWVnZW4uClNvIHZpZWwgd2llIDQwMjAwMCAiRWxjaGUiIGRlciBBLUtsYXNzZSB2b24gTWVyY2VkZXMsIDUyNTYgSUNFLUxva3Mgb2Rlcgp2aWVyIEV4ZW1wbGFyZSBkZXIgIlF1ZWVuIEVsaXphYmV0aCIuCgpCZWkgZWluZXIgR2VzY2h3aW5kaWdrZWl0IHZvbiAxMDc1IEtpbG9tZXRlcm4gaW4gZGVyIFNla3VuZGUgZXJ6ZXVnZW4KNDEwMDAwIFRvbm5lbiBuYXR1ZXJsaWNoIGVpbmVuIHVuZ2VoZXVyZW4gTHVmdHdpZGVyc3RhbmQuIERhcyBoYWVsdCBrZWluClRpZXIgYXVzOiBFcyB3dWVyZGUgd2llIGVpbiBpbiBkaWUgQXRtb3NwaGFlcmUgZWludHJldGVuZGVzIFJhdW1zY2hpZmYKYXVmZ2VoZWl6dC4gRGFzIHZvcmRlcnN0ZSBSZW50aWVycGFhciBtdWVzc3RlIHBybyBTZWt1bmRlIHVuZCBUaWVyCnN0b2x6ZSAxNiw2IFRyaWxsaW9uZW4gSm91bGUgb2RlciAyMiwxIEdpZ2F3YXR0IGFic29yYmllcmVuLiBEaWUgYmVpZGVuClBhYXJodWZlciB3dWVyZGVuIGF1Z2VuYmxpY2tsaWNoIHZlcmdsdWVoZW4uCgpEZXIgUmVzdCBkZXMgUmllc2VucnVkZWxzIGdpbmdlIGlubmVyaGFsYiB2b24gZnVlbmYgVGF1c2VuZHN0ZWwgU2VrdW5kZW4KbWl0IGVpbmVtIG9ocmVuYmV0YWV1YmVuZGVuIEtuYWxsIGluIEZsYW1tZW4gYXVmLiBBdWNoIGRlcgpXZWlobmFjaHRzbWFubiBrYWVtZSBkYWJlaSB1bnRlciBkaWUgS3VmZW4uIEVyIHdhZXJlIGF1ZiBzZWluZXIgUmVpc2UKZm9ydHdhZWhyZW5kIGRlciAxNzUwMGZhY2hlbiBFcmRiZXNjaGxldW5pZ3VuZyBhdXNnZXNldHp0LiBCZWkgZWluZW0KYW5nZW5vbW1lbiBNaW5pbWFsZ2V3aWNodCB2b24gMTIwIEtpbG8gLSB1bmQgZGFzIGlzdCBub2NoIHNlaHIKZnJldW5kbGljaCBnZXNjaGFldHp0IC0gd3VlcmRlIGVyIG1pdCBlaW5lciBLcmFmdCB2b24gMjAsNiBNaW8gTmV3dG9uCigyLDA2IEtpbG90b25uZW4pIGFuIGRpZSBTY2hsaXR0ZW5sZWhuZSBnZW5hZ2VsdC4gRGFtaXQgd2FlcmUgZXIKZW5kZ3VlbHRpZyBpbSBIaW1tZWwuCkhhZXR0ZSBkZXIgV2VpaG5hY2h0c21hbm4gZGllc2UgT2R5c3NlZSBkZW5ub2NoIHVlYmVybGVidCwgbXVlc3N0ZSBpaG4KenVtaW5kZXN0IGVpbiBzY2h3ZXJlcyBTY2hsZXVkZXJ0cmF1bWEgcGxhZ2VuLiBBYmVyIGRhcyBzb2xsdGUgYmlzCldlaWhuYWNodGVuIHdpZWRlciBiZWhvYmVuIHNlaW4uCgpBbGxlcmRpbmdzIGdpYnQgZXMgSG9mZm51bmc6IFNlaXQgZWluaWdlbiBKYWhyZW4gaGF0IGRlciBXZWlobmFjaHRzbWFubgpzZWluIEZlc3R0YWdzcHJvZ3JhbW0gYXVmIGV0d2EgMTAwIFRhZ2UgYXVzZ2VkZWhudC4gSmVkZXIsIGRlciBhYgpPa3RvYmVyIHNjaG9uIG1hbCBlaW4gS2F1ZmhhdXMgYmV0cmV0ZW4gaGF0LCBrYW5uIHNlaGVuLCBkYXNzIGRlcgpXZWlobmFjaHRzbWFubiBsYWVuZ3N0IGFrdGl2IGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaG5lZSAoVm9yc2ljaHQsIEVubGlzY2gpIChGZWxhZ3VuZCwgMTUuIERleiAxOTk4LCAxOTo1MzowMSk6CkxldCBpdCBTbm93ISEhCiAKVGhpcyBpcyBsaWZlIGluIE1pbm5lc290YS4KIApEaWFyeSBvZiBhIFNub3cgU2hvdmVsZXIKIApEZWNlbWJlciA4OiA2OjAwIFBNLiBpdCBzdGFydGVkIHRvIHNub3cuIFRoZSBmaXJzdCBzbm93IG9mIHRoZSBzZWFzb24KYW5kIHRoZSB3aWZlIGFuZCBJIHRvb2sgb3VyIGNvY2t0YWlscyBhbmQgc2F0IGZvciBob3VycyBieSB0aGUgd2luZG93CndhdGNoaW5nIHRoZSBodWdlIHNub3cgZmxha2VzIGRyaWZ0IGRvd24gZnJvbSBoZWF2ZW4uIEl0IGxvb2tlZCBsaWtlIGEKR3JhbmRtYSAgTW9zZXMgUHJpbnQuIFNvIHJvbWFudGljIHdlIGZlbHQgbGlrZSBuZXdseXdlZHMgYWdhaW4uIEkgbG92ZQpzbm93IQogCkRlY2VtYmVyIDk6IFdlIHdva2UgdG8gYSBiZWF1dGlmdWwgYmxhbmtldCBvZiBjcnlzdGFsIHdoaXRlIHNub3cKY292ZXJpbmcgZXZlcnkgaW5jaCBvZiB0aGUgbGFuZHNjYXBlLiBXaGF0IGEgZmFudGFzdGljIHNpZ2h0ISBDYW4gdGhlcmUKYmUgYSBtb3JlIGxvdmVseSBwbGFjZSBpbiB0aGUgd2hvbGUgd29ybGQ/IE1vdmluZyBoZXJlIHdhcyB0aGUgYmVzdCBpZGVhCkkndmUgZXZlciBoYWQuIFNob3ZlbGVkIGZvciB0aGUgZmlyc3QgdGltZSBpbiB5ZWFycyBhbmQgZmVsdCBsaWtlIGEgYm95CmFnYWluLiBJIGRpZCBib3RoIG91ciBkcml2ZXdheSBhbmQgdGhlIHNpZGV3YWxrcy4gJ1RoaXMgYWZ0ZXJub29uIHRoZQpzbm93cGxvdyBjYW1lIGFsb25nIGFuZCBjb3ZlcmVkIHVwIHRoZSBzaWRld2Fsa3MgYW5kIGNsb3NlZCBpbiB0aGUKZHJpdmV3YXksIHNvIEkgZ290IHRvIHNob3ZlbCBhZ2Fpbi4gV2hhdCBhIHBlcmZlY3QgbGlmZS4KIApEZWNlbWJlciAxMjogVGhlIHN1biBoYXMgbWVsdGVkIGFsbCBvdXIgbG92ZWx5IHNub3cuIFN1Y2ggYQpkaXNhcHBvaW50bWVudC4gTXkgbmVpZ2hib3IgdGVsbHMgbWUgbm90IHRvIHdvcnJ5LCB3ZSdsbCBkZWZpbml0ZWx5IGhhdmUKYSB3aGl0ZSBDaHJpc3RtYXMuIE5vIHNub3cgb24gQ2hyaXN0bWFzIHdvdWxkIGJlIGF3ZnVsISBCb2Igc2F5cyB3ZSdsbApoYXZlIHNvIG11Y2ggc25vdyBieSB0aGUgZW5kIG9mIHdpbnRlciwgdGhhdCBJJ2xsIG5ldmVyIHdhbnQgdG8gc2VlIHNub3cKYWdhaW4uICBJIGRvbid0IHRoaW5rIHRoYXQncyBwb3NzaWJsZS4gQm9iIGlzIHN1Y2ggYSBuaWNlIG1hbiBJJ20gZ2xhZApoZSdzIG91ciBuZWlnaGJvci4KIApEZWNlbWJlciAxNDogU25vdyBsb3ZlbHkgc25vdyEgOCIgbGFzdCBuaWdodC4gVGhlIHRlbXBlcmF0dXJlIGRyb3BwZWQgdG8KLTIwLiBUaGUgY29sZCBtYWtlcyBldmVyeXRoaW5nIHNwYXJrbGUgc28uIFRoZSB3aW5kIHRvb2sgbXkgYnJlYXRoIGF3YXksCmJ1dCBJIHdhcm1lZCB1cCBieSBzaG92ZWxpbmcgdGhlIGRyaXZld2F5IGFuZCBzaWRld2Fsa3MuIFRoaXMgaXMgdGhlCmxpZmUuIFRoZSBzbm93cGxvdyBjYW1lIGJhY2sgdGhpcyBhZnRlcm5vb24gYW5kIGJ1cmllZCBldmVyeXRoaW5nIGFnYWluLgpJICBkaWRuJ3QgcmVhbGl6ZSBJIHdvdWxkIGhhdmUgdG8gZG8gcXVpdGUgdGhpcyBtdWNoIHNob3ZlbGluZywgYnV0IEknbGwKY2VydGFpbmx5IGdldCBiYWNrIGluIHNoYXBlIHRoaXMgd2F5LiBJIHdpc2ggSSB3b3VsZG4ndCBodWZmIGFuZCBwdWZmCnNvLgogCkRlY2VtYmVyIDE1OiAyMCBpbmNoZXMgZm9yZWNhc3QuIFNvbGQgbXkgdmFuIGFuZCBib3VnaHQgYSA0eDQgQmxhemVyLgpCb3VnaHQgc25vdyB0aXJlcyBmb3IgdGhlIHdpZmUncyBjYXIgYW5kIDIgZXh0cmEgc2hvdmVscy4gU3RvY2tlZCB0aGUKZnJlZXplci4gVGhlIHdpZmUgd2FudHMgYSB3b29kIHN0b3ZlIGluIGNhc2UgdGhlIGVsZWN0cmljaXR5IGdvZXMgb3V0LiBJCnRoaW5rIHRoYXQncyBzaWxseS4gV2UgYXJlbid0IGluIEFsYXNrYSwgYWZ0ZXIgYWxsLgogCkRlY2VtYmVyIDE2OiBJY2Ugc3Rvcm0gdGhpcyBtb3JuaW5nLiBGZWxsIG9uIG15IGFzcyBvbiB0aGUgaWNlIGluIHRoZQpkcml2ZXdheSBwdXR0aW5nIGRvd24gc2FsdC4gSHVydCBsaWtlIGhlbGwuIFRoZSB3aWZlIGxhdWdoZWQgZm9yIGFuCmhvdXIsIHdoaWNoIEkgdGhpbmssIHdhcyB2ZXJ5IGNydWVsLgogCkRlY2VtYmVyIDE3OiBTdGlsbCB3YXkgYmVsb3cgZnJlZXppbmcuIFJvYWRzIGFyZSB0b28gaWN5IHRvIGdvIGFueXdoZXJlLgpFbGVjdHJpY2l0eSB3YXMgb2ZmIGZvciA1IGhvdXJzLiBJIGhhZCB0byBwaWxlIHRoZSBibGFua2V0cyBvbiB0byBzdGF5Cndhcm0uIE5vdGhpbmcgdG8gZG8gYnV0IHN0YXJlIGF0IHRoZSB3aWZlIGFuZCB0cnkgbm90IHRvIGlycml0YXRlIGhlci4KR3Vlc3MgSSBzaG91bGQndmUgYm91Z2h0IGEgd29vZCBzdG92ZSwgYnV0IHdvbid0IGFkbWl0IGl0IHRvIGhlci4gSSBoYXRlCml0IHdoZW4gc2hlJ3MgcmlnaHQuIEkgY2FuJ3QgYmVsaWV2ZSBJJ20gZnJlZXppbmcgdG8gZGVhdGggaW4gbXkgb3duCmxpdmluZyByb29tLgogCkRlY2VtYmVyIDIwOiBFbGVjdHJpY2l0eSdzIGJhY2sgb24sIGJ1dCBoYWQgYW5vdGhlciAxNCIgb2YgdGhlIGRhbW4Kc3R1ZmYgbGFzdCBuaWdodC4gTW9yZSBzaG92ZWxpbmcuIFRvb2sgYWxsIGRheS4gRGFtbiBzbm93cGxvdyBjYW1lIGJ5CnR3aWNlLiBUcmllZCB0byBmaW5kIGEgbmVpZ2hib3Iga2lkIHRvIHNob3ZlbCwgYnV0IHRoZXkgc2FpZCB0aGV5J3JlIHRvbwpidXN5IHBsYXlpbmcgaG9ja2V5LiBJIHRoaW5rIHRoZXkncmUgbHlpbmcuIENhbGxlZCB0aGUgb25seSBoYXJkd2FyZQpzdG9yZSBhcm91bmQgdG8gc2VlIGFib3V0IGJ1eWluZyBhIHNub3cgYmxvd2VyIGFuZCB0aGV5J3JlIG91dC4gTWlnaHQKaGF2ZSBhbm90aGVyIHNoaXBtZW50IGluIE1hcmNoLiBJIHRoaW5rIHRoZXkncmUgbHlpbmcuIEJvYiBzYXlzIEkgaGF2ZQp0byBzaG92ZWwgb3IgdGhlIGNpdHkgd2lsbCBoYXZlIGl0IGRvbmUgYW5kIGJpbGwgbWUuIEkgdGhpbmsgaGUncyBseWluZy4KIApEZWNlbWJlciAyMjogQm9iIHdhcyByaWdodCBhYm91dCBhIHdoaXRlIENocmlzdG1hcyBiZWNhdXNlIDEzIG1vcmUKaW5jaGVzIG9mIHRoZSB3aGl0ZSBzaGl0IGZlbGwgdG9kYXksIGFuZCBpdCdzIHNvIGNvbGQgaXQgcHJvYmFibHkgd29uJ3QKbWVsdCB0aWxsIEF1Z3VzdC4gVG9vayBtZSA0NSBtaW51dGVzIHRvIGdldCBhbGwgZHJlc3NlZCB1cCB0byBnbyBvdXQgdG8Kc2hvdmVsIGFuZCB0aGVuIEkgaGFkIHRvIHBpc3MuIEJ5IHRoZSB0aW1lIEkgZ290IHVuZHJlc3NlZCwgcGlzc2VkIGFuZApkcmVzc2VkIGFnYWluLCBJIHdhcyB0b28gdGlyZWQgdG8gc2hvdmVsLiBUcmllZCB0byBoaXJlIEJvYiwgd2hvIGhhcyBhCnBsb3cgb24gaGlzIHRydWNrIGZvciB0aGUgcmVzdCBvZiB0aGUgd2ludGVyOyBidXQgaGUgc2F5cyBoZSdzIHRvbyBidXN5LgpJIHRoaW5rIHRoZSBhc3Nob2xlIGlzIGx5aW5nLgogCkRlY2VtYmVyIDIzOiBPbmx5IDIiIG9mIHNub3cgdG9kYXkuIEFuZCBpdCB3YXJtZWQgdXAgdG8gTy4gJ1RoZSB3aWZlCndhbnRlZCBtZSB0byBkZWNvcmF0ZSB0aGUgZnJvbnQgb2YgdGhlIGhvdXNlIHRoaXMgbW9ybmluZy4gV2hhdCBpcyBzaGUKbnV0cyEhISBXaHkgZGlkbid0IHNoZSB0ZWxsIG1lIHRvIGRvIHRoYXQgYSBtb250aCBhZ28/IFNoZSBzYXlzIHNoZSBkaWQKYnV0IEkgdGhpbmsgc2hlJ3MgbHlpbmcuCiAKRGVjZW1iZXIgMjQ6IDYiLiBTbm93IHBhY2tlZCBzbyBoYXJkIGJ5IHNub3dwbG93LCBJIGJyb2tlIHRoZSBzaG92ZWwuClRob3VnaHQgSSB3YXMgaGF2aW5nIGEgaGVhcnQgYXR0YWNrLiBJZiBJIGV2ZXIgY2F0Y2ggdGhlIHNvbiBvZiBhIGJpdGNoCndobyBkcml2ZXMgdGhhdCBzbm93cGxvdywgSSdsbCBkcmFnIGhpbSB0aHJvdWdoIHRoZSBzbm93IGJ5IGhpcyBiYWxscy4gSQprbm93IGhlIGhpZGVzIGFyb3VuZCB0aGUgY29ybmVyIGFuZCB3YWl0cyBmb3IgbWUgdG8gZmluaXNoIHNob3ZlbGluZyBhbmQKdGhlbiBoZSBjb21lcyBkb3duIHRoZSBzdHJlZXQgYXQgYSAxMDAgbWlsZXMgYW4gaG91ciBhbmQgdGhyb3dzIHNub3cgYWxsCm92ZXIgd2hlcmUgSSd2ZSBqdXN0IGJlZW4hIFRvbmlnaHQgdGhlIHdpZmUgd2FudGVkIG1lIHRvIHNpbmcgQ2hyaXN0bWFzCmNhcm9scyB3aXRoIGhlciBhbmQgb3BlbiBvdXIgcHJlc2VudHMsIGJ1dCBJIHdhcyBidXN5IHdhdGNoaW5nIGZvciB0aGUKZGFtbiBzbm93cGxvdy4KIApEZWNlbWJlciAyNTogTWVycnkgQ2hyaXN0bWFzLiAyMCBtb3JlIGluY2hlcyBvZiB0aGUgIyUmKiRAIHNsb3AgdG9uaWdodC4KU25vd2VkIGluLiBUaGUgaWRlYSBvZiBzaG92ZWxpbmcgbWFrZXMgbXkgYmxvb2QgYm9pbC4gSSBoYXRlIHRoZSBzbm93IQpUaGVuIHRoZSBzbm93cGxvdyBkcml2ZXIgY2FtZSBieSBhc2tpbmcgZm9yIGEgZG9uYXRpb24gYW5kIEkgaGl0IGhpbQpvdmVyIHRoZSBoZWFkIHdpdGggbXkgc2hvdmVsLiBUaGUgd2lmZSBzYXlzIEkgaGF2ZSBhIGJhZCBhdHRpdHVkZS4gSQp0aGluayBzaGUncyBhbiBpZGlvdC4gSWYgSSBoYXZlIHRvIHdhdGNoICJJdCdzIGEgV29uZGVyZnVsIExpZmUiIG9uZQptb3JlIHRpbWUsIEknbSBnb2luZyB0byBraWxsIGhlci4KIApEZWNlbWJlciAyNjogU3RpbGwgc25vd2VkIGluLiBXaHkgdGhlIGhlbGwgZGlkIEkgZXZlciBtb3ZlIGhlcmU/IEl0IHdhcwphbGwgSEVSIGlkZWEuIFNoZSdzIHJlYWxseSBnZXR0aW5nIG9uIG15IG5lcnZlcy4KIApEZWNlbWJlciAyNzogVGVtcGVyYXR1cmUgZHJvcHBlZCB0byAtMzAgYW5kIHRoZSBwaXBlcyBmcm96ZS4KIApEZWNlbWJlciAyODogV2FybWVkIHVwIHRvIGFib3ZlIC01MC4gU3RpbGwgc25vd2VkIGluLiBUSEUgQklUQ0ggaXMKZHJpdmluZyBtZSBjcmF6eSEhIQogCkRlY2VtYmVyIDI5OiAxMCBtb3JlIGluY2hlcy4gQm9iIHNheXMgSSBoYXZlIHRvIHNob3ZlbCB0aGUgcm9vZiBvciBpdApjb3VsZCBjYXZlIGluLiBUaGF0J3MgdGhlIHNpbGxpZXN0IHRoaW5nIEkgZXZlciBoZWFyZC4gSG93IGR1bWIgZG9zcyBoZQp0aGluayBJIGFtPwogCkRlY2VtYmVyIDMwOiBSb29mIGNhdmVkIGluLiBUaGUgc25vdyBwbG93IGRyaXZlciBpcyBzdWluZyBtZSBmb3IgYQptaWxsaW9uIGRvbGxhcnMuIFRoZSB3aWZlIHdlbnQgaG9tZSB0byBoZXIgbW90aGVyLiA5IiBwcmVkaWN0ZWQuCiAKRGVjZW1iZXIgMzE6IFNldCBmaXJlIHRvIHdoYXQncyBsZWZ0IG9mIHRoZSBob3VzZS4gTm8gbW9yZSBzaG92ZWxpbmcuCiAKSmFudWFyeSA4OiBJIGZlZWwgc28gZ29vZC4gSSBqdXN0IGxvdmUgdGhvc2UgbGl0dGxlIHdoaXRlIHBpbGxzIHRoZXkKa2VlcCBnaXZpbmcgbWUuIFdoeSBhbSBJIHRpZWQgdG8gdGhlIGJlZD8KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaG5lZSAoVm9yc2ljaHQsIEVubGlzY2gpIChEaWVkZXIsIDE1LiBEZXogMTk5OCwgMjE6Mjg6MzApOgp+IyEgcm49RmVsYWd1bmQgcnQ9OTEzNzUxNTgxIHJnPXdpdHplCn4jISB0aWQ9OTEzNzUxNTgxCmhtLCBkYXMgZXJpbm5lcnQgbWljaCBfdmVyZGFtbXRfIHN0YXJrIGFuIHVuc2VyIFNjaG5lZWxlYmVuIGhpZXIgaW0KSG9jaHNjaHdhcnp3YWxkLi4uIDotKQoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2NobmVlIChWb3JzaWNodCwgRW5saXNjaCkgKEZsaW54LCAxNi4gRGV6IDE5OTgsIDEyOjQ0OjU2KToKfiMhIHJuPUZlbGFndW5kIHJ0PTkxMzc1MTU4MSByZz13aXR6ZQp+IyEgdGlkPTkxMzc1MTU4MQpBZWhtLi4uCgp3byBpc3QgZGVyIFdpdHogPwoKRmxpbnguIExlYnQgenVyIFplaXQgaW4gRmlubmxhbmQuIEVyc3RlciBTY2huZWUgZmllbCBhbSAwMi4xMC4sIGRlcnplaXQgMTUwCmNtLCB0ZW1wZXJhdHVyIC0yMCBHcmFkLi4uIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBhZHZlbnQsIGFkdmVudCAuLi4gKEVpc2ksIDE2LiBEZXogMTk5OCwgMTQ6NDk6MjcpOgp+IyEgcm49UWl0ZXNzIHJ0PTkxMzY1NTM0OCByZz13aXR6ZQp+IyEgdGlkPTkxMzYzNjcwNQpBbHNvIGd1dCwgYXVmIGdvZXR0bGljaGVuIFd1bnNjaCB1bmQgZGl2ZXJzZSBOYWNoZnJhZ2VuIG1pdCB2ZXJudWVuZnRpZ2VuClVtbGF1dGVuICh3YW5uIGthbm4gZGFzIE11ZCBlbmRsaWNoIDgtQml0IENoYXJzPykKCgpTb25udGFnLCAxLiBBZHZlbnQgMTAuMDAgVWhyLgpJbiBkZXIgUmVpaGVuaGF1c3NpZWRsdW5nIE9lbmtlbHN0aWVnIGxhZXNzdCBzaWNoIGRpZSBSZW50bmVyaW4gRXJuYSBCLgpkdXJjaCBpaHJlbiBFbmtlbCBOb3JiZXJ0IDMgRWxla3Ryb2tlcnplbiBhdWYgZGVyIEZlbnN0ZXJiYW5rIGlocmVzCldvaG56aW1tZXJzIGluc3RhbGxpZXJlbi4gVm9yd2VpaG5hY2h0bGljaGUgU3RpbW11bmcgYnJlaXRldCBzaWNoIGF1cywKZGllIEZyZXVkZSBpc3QgZ3Jvc3MuCgoxMCBVaHIgMTQ6CkJlaW0gRW50bGVlcmVuIGRlcyBNdWVsbGVpbWVycyBiZW9iYWNodGV0IE5hY2hiYXIKT3R0ZnJpZWQgUC4gZGllIHByb3Zva2FudGUgV2VpaG5hY2h0c29mZmVuc2l2ZSBpbQpOZWJlbmhhdXMgdW5kIGtvbnRlcnQgdW1nZWhlbmQgbWl0IGRlciBBdWZzdGVsbHVuZyBkZXMgMTAgYXJtaWdlbgpkYWVuaXNjaGVuIEtlcnplbnNldCB6dSBqZSAxNSBXYXR0IGltIEt1ZWNoZW5mZW5zdGVyLiBTdHVuZGVuIHNwYWV0ZXIKZXJzdHJhaGx0IGRpZSBnZXNhbXRlIFNpZWRsdW5nIE9lbmtlbHN0aWVnIGltIGJlc2lubmxpY2hlbiBHbGFueiB2b24KMTM0IEZlbnN0ZXJkZWtvcmF0aW9uZW4uCgoxOSBVaHIgMDM6CkltIDE0IGttIGVudGZlcm50ZW4gS29obGVrcmFmdHdlcmsgU290dHJ1cC1Ib2Vja2xhZ2UKcmVnaXN0cmllcnQgZGVyIHdhY2hoYWJlbmRlIEluZ2VuaWV1ciBpcnJ0dWVtbGljaAplaW5lbiBEZWZla3QgZGVyIFN0cm9tbWVzc2dlcmFldGUgZnVlciBkZW4gQmVyZWljaCBTdGVua2VsZmVsZC1Ob3JkLCBpc3QKYWJlciB6dW5hZWNoc3QgYXJnbG9zLgoKMjAgVWhyIDE3OgpEZW4gRWhlbGV1dGVuIEhvcnN0IHVuZCBIZWlkaSBFLiBnZWxpbmd0IGRlcgpBbnNjaGx1c3MgZWluZXIgS2V0dGVuc2NoYWx0dW5nIHZvbiA5NgpIYWxvZ2VuLUZpbG1sZXVjaHRlbiwgZHVyY2ggc2FlbXRsaWNoZSBCYWV1bWUgaWhyZXMgT2JzdGdhcnRlbnMsIGFucwpEcmVoc3Ryb21uZXR6LiBUZWlsZSBkZXIgaGVpbWlzY2hlbiBWb2dlbHdlbHQgYmVnaW5uZW4gdmVyd2lycnQgbWl0CmRlbSBOZXN0YmF1LgoKMjAgVWhyIDU2OgpEZXIgRGlzY290aGVrZW5iZXNpdHplciBBbGZvbnMgSy4gc2llaHQgc2ljaApnZW5vZXRpZ3Qgc2VpbmVyc2VpdHMgZWluZW4gVGVpbCB6dXIgdm9yLXdlaWhuYWNodGxpY2hlbiBTdGltbXVuZwpiZWl6dXRyYWdlbiB1bmQgbW9udGllcnQgYXVmIGRlbSBGbGFjaGRhY2ggc2VpbmVzIEJ1bmdhbG93cyBkYXMKTGFzZXJlbnNlbWJsZSBNZXRyb3BvbGlzLCBkYXMgenUgZGVuIGxlaXN0dW5nc3N0YWVya3N0ZW4gRXVyb3BhcyB6YWVobHQuCkRpZSA0MG0gRmFzc2FkZSBlaW5lcyBhbmdyZW56ZW5kZW4gR2V0cmVpZGVzaWxvcyBoYWVsdCBkZW0gRGF1ZXJmZXVlcgpkZXIgTmlrb2xhdXNwcm9qZWt0aW9uIG1laHJlcmUgTWludXRlbiBzdGFuZCwgYmV2b3Igc2llIG1pdCBlaW5lbQpoYWVzc2xpY2hlbiBHZXJhZXVzY2ggemVyYnJvZWNrZWx0LgoKMjEgVWhyIDMwOgpJbSBUcnViZWwgZWluZXIgSnVsLUNsdWItRmVpZXIgaW0gS29obGVrcmFmdHdlcmsgU290dHJ1cC1Ib2Vja2xhZ2UgdmVyaGFsbHQKZGFzCkFsYXJtc2lnbmFsIGF1cyBHZW5lcmF0b3JoYWxsZSA1LgoKMjEgVWhyIDUwOgpEZXIgODUgamFlaHJpZ2UgS3JpZWdzdmV0ZXJhbiBBdWd1c3QgUi4gemF1YmVydCBtaXQgMTkwIEZsYWtzY2hlaW53ZXJmZXJuCmRlcyBUeXBzClZhcnRhIFZvbGtzc3R1cm0gZGVuIFN0ZXJuIHZvbiBCZXRobGVoZW0gYW4gZGllIHRpZWZoYWVuZ2VuZGUKV29sa2VuZGVja2UuCgoyMiBVaHIgMTI6CkVpbmUgR3J1cHBlIGFzaWF0aXNjaGVyIEdlc2NoYWVmdHNsZXV0ZSBtaXQKbGVpY2h0ZW0gR2VwYWVjayB1bmQgc29tbWVybGljaGVyIEJla2xlaWR1bmcgaXJydCB2ZXJhZW5nc3RpZ3QgZHVyY2ggZGllClNpZWRsdW5nIE9lbmtlbHN0aWVnLiBadXZvciB3YXIgZWluZSBCb2luZyA3NDcgZGVyIFNpbmdhcHVyIEFpcmxpbmVzCm1pdCBkZW0gWmllbCBTaWRuZXkgdmVyc2VoZW50bGljaCBpbiBkZXIgbWl0IDMwMDAgYnVudGVuIE5lb25yb2VocmVuCmdlcGZsYXN0ZXJ0ZW4gR2FyYWdlbnp1ZmFocnQgZGVyIEJhZWNrZXJlaSBCcm9laHJtZXllciBnZWxhbmRldC4KCjIyIFVociAzNzoKRGllIE5BU0EgUmF1bXNvbmRlIFZveWFnZXIgNyBmdW5rdCB2b20gUmFuZGUgZGVyIE1pbGNoc3RyYXNzZQpCaWxkZXIgZWluZXIgYW5nZWJsaWNoZW4gU3VwZXJub3ZhIGF1ZiBkZXIgbm9lcmRsaWNoZW4gRXJkaGFsYmt1Z2VsLApkaWUgRXhwZXJ0ZW4gaW4gSG91c3RvbiBzaW5kIHJhdGxvcy4KCjIyIFVociA1MDoKRWluIGxlaWNodGVzIEJlYmVuIGVyc2NodWV0dGVydCBkaWUgVW1nZWJ1bmcgZGVzIEtvaGxla3JhZnR3ZXJrcwpTb3R0cnVwLUhvZWNrbGFnZSwgZGVyIGdlc2FtdGUgS29tcGxleCBtaXQgc2VpbmVuCjMwIFR1cmJpbmVuIGxhZXVmdCBtaXQgMzUwIE1lZ2F3YXR0IGJydWVsbGVuZApqZW5zZWl0cyBkZXIgQmVsYXN0dW5nc2dyZW56ZS4KCjIzIFVociAwNjoKSW4gZGVyIHRhZ2hlbGwgZXJsZXVjaHRldGVuIFNpZWRsdW5nIE9FbmtlbHN0aWVnIGVyd2FjaHQKU3R1ZGVudGluIEJldHRpbmEgVS4gdW5kIGZyZXV0IHNpY2ggaXJydHVlbWxpY2ggdWViZXIgZGVuIHNvbm5pZ2VuCkRlemVtYmVybW9yZ2VuLiBVbSBnZW5hdSAyMyBVaHIgMTIKYmV0YWV0aWd0IHNpZSBkZW4gU2NoYWx0ZXIgaWhyZXIgS2FmZmVlbWFzY2hpbmUuCgoyMyBVaHIgMTIgdW5kIDE0IFNla3VuZGVuOgpJbiBkaWUgcGxvZXR6bGljaGUgRHVua2VsaGVpdCBkZXMgZ2VzYW10ZW4gTGFuZGtyZWlzZXMKU3RlbmtlbGZlbGQgYnJpY2h0IGRpZSBFeHBsb3Npb24gZGVzIEtvaGxla3JhZnR3ZXJrcyBTb3R0cnVwLUhvZWNrbGFnZQp3aWUgRG9ubmVyaGFsbC4gRHVyY2ggZGllIHN0b2NrZmluc3RlcmVuIE9ydHNjaGFmdGVuIGlycmVuIHZlcndpcnJ0ZQpNZW5zY2hlbiwgTWVuc2NoZW4gd2llIGR1IHVuZCBpY2gsIGRlbmVuIGVpbmUgS2VyemUgYXVmIGRlbQpBZHZlbnRza3JhbnogbmljaHQgZ2VudWcgd2FyLgpJbiBkaWVzZW0gU2lubmUgISBGcm9oZSBBRFZFTlRTWkVJVCAhCkJpcyBkZW5uLi4uCgoKdW5kIG5vY2htYWwgc2Nob2VuZSBXZWlobmFjaHRlbiwgZ3V0ZW4gUnV0c2NoLCBuZXR0ZSBTY2h3aWVnZXJlbHRlcm4gZXRjLgoKRWlzaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRkxXIChQcmEsIDE3LiBEZXogMTk5OCwgMTU6MDY6NDgpOgp1bmQgbWFsIHdpZWRlciBGTFc6CgoKW0FiZW50ZXVlcjpNZXJjdXRpb10gV2llIGtvbW10IG1hbiBhdXMgZWluZW0gRmx1Z2RyYWNoZW5tYWdlbiByYXVzID8/CkR1IHRlaWxzdCBNZXJjdXRpbyBtaXQ6IHp1ZW5kZSBkYXMgU3Ryb2ggYW4hCkR1IHRlaWxzdCBNZXJjdXRpbyBtaXQ6IGFiZXIgc2NobmVsbCEKPltNb2VyZGVyOkdlaXN0IGVpbmVzIEtsaXR6ZWxkcm9tc10gTWVybGluLCBtYWNoIE1hdGlzIHp1bSBNYWdpZXIhCltUb2Q6TGFyc10gRWluIEZsdWdkcmFjaGUgaGF0IGdlcmFkZSBNZXJjdXRpbyB1bWdlYnJhY2h0LgpbQmVpbGVpZDpQcmFdIE1pc3QsIHp1IHNwYWV0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbWFsIHdpZWRlciB3YXMgenVtIHRoZW1hIGdlbmF1IHp1ciByaWNodGlnZW4gemVpdCA6KSAoR29sYXMsIDIwLiBEZXogMTk5OCwgMjE6NTI6MTgpOgpFciB3ZWludCB3aWUgZWluIEtpbmQsIGFscyBlciBkYXMgTWVzc2VyIHdlaXQgdm9uIHNpY2ggaGFlbHQuLi4KPiAKVW0gZXMgZGFubiBtaXQgYWxsZXIgS3JhZnQgaW4gc2VpbiBIZXJ6IHp1IHJhbW1lbi4KPiBUb3QgYnJpY2h0IGVyIHp1c2FtbWVuLCB1bmQgZGFzIExldHp0ZSwgd2FzIER1IHZvbiBpaG0gaG9lcnN0LAppc3QgZGFzIFdvcnQ6ICdFcmxvZXN1bmcnLgpCcnVkZXIgVG9iaWFzIGZhZWxsdCB0b3QgenUgQm9kZW4uCltCZWlsZWlkOlRoZXJpbl0gdW5nZWRlY2t0ZSBzcGllbGVyPyBwZXJ2ZXJzLi4uLiBpaGhoaApbQmVpbGVpZDpUZWRkeV0gTm9jaCEKW0JlaWxlaWQ6TmFjaHR3aW5kXSB1bmQgZGFyYW4gd2lyZCBzaWNoIHdvaGwgbml4IGFlbmRlcm4sIGJpcyBib2luZyBkYXMKW0JlaWxlaWQ6TmFjaHR3aW5kXSBzcGVsbGJvb2sgdWViZXJhcmJlaXRldApbQmVpbGVpZDpGZXVlcndlaHJdIFdvdy4gRGllIGhhbSBLbmllaGUhCltCZWlsZWlkOlJpbmdvcl0gaG1tbSAuLi4gZGEgaGF0IEJvaW5nIGdhbnogYW5kZXJzIGdla2x1bmdlbiB2b3JnZXN0ZXJuCltCZWlsZWlkOlJpbmdvcl0gKnN0YXVuKgoKCkdvbGFzIGF1cyBkZW0gZHVua2xlbiBEdWVzdGVyd2FsZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcG9zdCAoR3JpbW1ib3JuLCAyMi4gRGV6IDE5OTgsIDAwOjM5OjQyKToKfiMhIG9uPURpYWJvbGEgb3Q9OTE0MjczODk4IG9nPWFsbGdlbWVpbmVzCl5xCgpzYWdlIHp1bSBwb3N0c2NocmVpYmVuLi4uIGVtYWlscy4uLgoKCnNjaGF1CnEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNFRCAoTGVuYSwgMjIuIERleiAxOTk4LCAxMjozMzoyMCk6CkZyYWdlOiBXaWVzbyBnYWJzIGluIGRlciBlaGVtYWxpZ2VuIEREUiBudXIgZGFzIGdyYXVlClJlY3lsY2lsbmctdG9pbGV0dGVucGFwaWVyPwpBbnR3b3J0OiBEYW1pdCBhdWNoIGRlciBsZXR6dGUgQXJzY2ggcm90IHd1cmRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2F0emVuIHVuZCBUYWJsZXR0ZW4gKEtpbGFyLCAyMy4gRGV6IDE5OTgsIDA4OjE5OjE4KToKICAgICAgICAgICAgV2llIFNpZSBJaHJlciBLYXR6ZSBlaW5lIFRhYmxldHRlIHZlcmFicmVpY2hlbgoKCjEuIE5laG1lbiBTaWUgZGllIEthdHplIGZlc3QgaW4gSWhyZW4gQXJtLiBMZWdlbiBTaWUgaWhyZW4gS29wZiBhdWYKSWhyZW4gRWxsZW5ib2dlbiwgZ2FueiBzbywgYWxzIHd1ZXJkZW4gU2llIGVpbmVtIEJhYnkgZGllIEZsYXNjaGUKZ2ViZW4uIE11cm1lbG4gU2llIHZlcnRyYXVlbnN2b2xsICJCcmF2ZXMgS2FldHpjaGVuIGJpc3QgRHUuLi4iLgpMYXNzZW4gU2llIGRpZSBUYWJsZXR0ZSBpbiBkYXMgTWF1bCBkZXIgS2F0emUgZmFsbGVuLgoKMi4gSG9sZW4gU2llIGRpZSBLYXR6ZSB2b24gZGVyIFN0ZWhsYW1wZSBoZXJ1bnRlciB1bmQgZGllIFRhYmxldHRlCnVudGVybSBTb2ZhIGhlcnZvci4KCjMuIEZvbGdlbiBTaWUgZGVtIGdsZWljaGVuIFZlcmZhaHJlbiwgd2llIHVudGVyIFB1bmt0IDEsIGFiZXIgaGFsdGVuClNpZSBkaWUgVm9yZGVycGZvdGVuIGRlciBLYXR6ZSBtaXQgSWhyZXIgbGlua2VuIEhhbmQgbmllZGVyLCB1bmQgZGllCkhpbnRlcnBmb3RlbiBtaXQgZGVuIEVsbGVuYm9nZW4gSWhyZXMgcmVjaHRlbiBBcm1zLiBTdG9zc2VuIFNpZSBkaWUKVGFibGV0dGUgbWl0IGRlbSByZWNodGVuIFplaWdlZmluZ2VyIGluIGlociBNYXVsLgoKNC4gSG9sZW4gU2llIGRpZSBLYXR6ZSB1bnRlcm0gQmV0dCBoZXJ2b3IuIE5laG1lbiBTaWUgZWluZSBuZXVlClRhYmxldHRlIGF1cyBkZXIgRmxhc2NoZS4gV2lkZXJzdGVoZW4gU2llIGRlbSBJbXB1bHMsIHNpY2ggZWluZSBuZXVlCkthdHplIHp1IGhvbGVuLgoKNS4gRmFocmVuIFNpZSBmb3J0IHdpZSB1bnRlciBQdW5rdCAxLCBhdXNzZXIgZGFzcyBTaWUsIHdlbm4gU2llIGRpZQpLYXR6ZSBmZXN0IGluIGRlciBGbGFzY2hlbmdlYi1Qb3NpdGlvbiBoYWx0ZW4sIHNpY2ggYXVmIGRpZSB2b3JkZXJlClN0dWhsa2FudGUgc2V0emVuLiBCZXVnZW4gU2llIElocmVuIE9iZXJrb2VycGVyIHVlYmVyIGRpZSBLYXR6ZSwKSGFsdGVuIFNpZSBJaHJlIFJlY2h0ZSBIYW5kIHVlYmVyIElocmVuIGxpbmtlbiBFbGxlbmJvZ2VuLCBvZmZuZW4gU2llCmRhcyBNYXVsIGRlciBLYXR6ZSBpbmRlbSBTaWUgZGVuIE9iZXJraWVmZXIgaG9jaGhlYmVuIHVuZCBzY2huaXBwZW4KU2llIGRpZSBUYWJsZXR0ZSBoaW5laW4gLSBzY2huZWxsLiBEYSBJaHIgS29wZiBhdWYgSWhyZW4gS25pZW4gbGllZ3QsCmtvZW5uZW4gU2llIG5pY2h0IHNlaGVuLCB3YXMgU2llIHR1biwgYWJlciBkYXMgbWFjaHQgbmljaHRzLgoKNi4gTGFzc2VuIFNpZSBkaWUgS2F0emUgaW0gVm9yaGFuZyBoYWVuZ2VuLiBMYXNzZW4gU2llIGRpZSBUYWJsZXR0ZSBpbgpJaHJlbiBIYWFyZW4uCgo3LiBXZW5uIFNpZSBlaW5lIEZyYXUgc2luZCwgd2VpbmVuIFNpZSBzaWNoIGF1cy4gV2VubiBTaWUgZWluIE1hbm4Kc2luZCwgd2VpbmVuIFNpZSBzaWNoIGF1cy4KCjguIEpldHp0IHJlaXNzZW4gU2llIHNpY2ggenVzYW1tZW4hIFdlciBpc3QgZGVubiBoaWVyIGVpZ2VudGxpY2ggZGVyCkNoZWY/ISBOZWhtZW4gU2llIGRpZSBLYXR6ZSB1bmQgZGllIFRhYmxldHRlLiBOZWhtZW4gU2llIFBvc2l0aW9uIDEgYW4KdW5kIHNhZ2VuIFNpZSBzdHJlbmc6ICJXZXIgaXN0IGRlbm4gaGllciBlaWdlbnRsaWNoIGRlciBDaGVmPyEiLgpPZWZmZW4gU2llIGRhcyBNYXVsIGRlciBLYXR6ZSwgbmVobWVuIFNpZSBkaWUgVGFibGV0dGUgdW5kLi4uIEhvcHBsYSEKCjkuIERhcyBmdW5rdGlvbmllcnQgc28gbmljaHQsIG5pY2h0IHdhaHI/IEJyZWNoZW4gU2llIHp1c2FtbWVuIHVuZApkZW5rZW4gU2llIG5hY2g6IEFoYSEgRGllc2UgYmxpdHplbmRlbiBLcmFsbGVuIHNpbmQgZXMsIGRpZSBkaWVzZXMKQ2hhb3MgdmVydXJzYWNoZW4uCgoxMC4gS3JpZWNoZW4gU2llIHp1IElocmVtIFdhZXNjaGVzY2hyYW5rLiBaaWVoZW4gU2llIGVpbiBncm9zc2VzClN0cmFuZC0gQmFkZXR1Y2ggaGVyYXVzLiBCcmVpdGVuIFNpZSBkYXMgQmFkZXR1Y2ggYXVmIGRlbSBGdXNzYm9kZW4KYXVzLgoKMTEuIEhvbGVuIFNpZSBkaWUgS2F0emUgdm9tIEt1ZWNoZW5zY2hyYW5rIGhlcnVudGVyIHVuZCBkaWUgVGFibGV0dGUKYXVzIGRlciBUb3BmcGZsYW56ZS4KCjEyLiBMZWdlbiBTaWUgZGllIEthdHplIGF1ZiBkYXMgQmFkZXR1Y2ggaW4gZGVyIE5hZWhlIGVpbmVyIEVja2UgbWl0CmRlbSBLb3BmIGF1c3NlcmhhbGIgZGVyIGxhZW5nZXJlbiBLYW50ZS4KCjEzLiBGYWx0ZW4gU2llIGRpZSBWb3JkZXItIHVuZCBIaW50ZXJiZWluZSBkZXIgS2F0emUgdm9yIGlocmVuIEJhdWNoCnp1c2FtbWVuLiBXaWRlcnN0ZWhlbiBTaWUgZGVtIEltcHVscywgZGllIEthdHplIHp1c2FtbWVuenVmYWx0ZW4uCgoxNC4gUm9sbGVuIFNpZSBkaWUgS2F0emUgaW4gZGFzIEJhZGV0dWNoIGVpbi4gQXJiZWl0ZW4gU2llIHNjaG5lbGwuCkRpZSBaZWl0IHVuZCBNaWV6ZW4gd2FydGVuIGF1ZiBuaWVtYW5kZW4uCgoxNS4gTmVobWVuIFNpZSB3aWVkZXIgUG9zaXRpb24gMSBlaW4uIERyZWhlbiBTaWUgSWhyZSBsaW5rZSBIYW5kIHp1bQpLb3BmIGRlciBLYXR6ZS4gRWluIGxlaWNodGVyIERydWNrIGF1ZiBiZWlkZW4gU2VpdGVuIGRlcyBLaWVmZXJzLCBzbywKd2llIG1hbiBhdWNoIGRhcyBNYXVsIGVpbmVyIEdpZnRzY2hsYW5nZSBvZWZmbmV0LgoKMTYuIExhc3NlbiBTaWUgZGllIFRhYmxldHRlIGlucyBNYXVsIGRlciBLYXR6ZSBmYWxsZW4gdW5kIHN0b3NzZW4gU2llCnNhbmZ0IG5hY2guIFZvaWxhISBEYXMgd2FyJ3MuCgoxNy4gU3RhdWJzYXVnZW4gU2kgZWRpZSBsb3NlIEhhYXJlIGF1ZiAodm9uIGRlciBLYXR6ZSkuIExlZ2VuIFNpZSBlaW5lbgpWZXJiYW5kIGFuIGRpZSBWZXJsZXR6dW5nZW4gKElocmUpOgoKMTguIE5laG1lbiBTaWUgMiBBcGlyaW4gZWluLCB1bmQgbGVnZW4gU2llIHNpY2ggaGluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3JpZ2luYWx6aXRhdGUgdm9uIGRlciBWZXJzaWNoZXJ1bmdzd2lydHNjaGFmdCAoU2tpcHBlciwgMzEuIERleiAxOTk4LCAxNDo1OTozMSk6CkljaCBmdWhyIG1pdCBtZWluZW0gV2FnZW4gZ2VnZW4gZGllIExlaXRzY2hpZW5lLCB1ZWJlcnNjaGx1ZyBtaWNoIHVuZApwcmFsbHRlIGdlZ2VuIGVpbmVuIEJhdW0uIERhbm4gdmVybG9yIGljaCBkaWUgSGVycnNjaGFmdCB1ZWJlciBtZWluIEF1dG8uCgpBbiBkZXIgS3JldXp1bmcgaGF0dGUgaWNoIGVpbmVuIHVudm9yaGVyZ2VzZWhlbmVuIEFuZmFsbCB2b24gRmFyYmVuLQpibGluZGhlaXQuCgpJbSBnZXNldHpsaWNoIHp1bGFlc3NpZ2VuIEhvZWNoc3R0ZW1wbyBrb2xsaWRpZXJ0ZSBpY2ggbWl0IGVpbmVyIHVudm9yLQpzY2hyaWZ0c21hZXNzaWdlbiBGcmF1IGluIGRlciBHZWdlbnJpY2h0dW5nLgoKCkR1bW1lcndlaXNlIHN0aWVzcyBpY2ggbWl0IGRlbSBGdXNzZ2FlbmdlciB6dXNhbW1lbi4gRXIgd3VyZGUgaW5zCktyYW5rZW5oYXVzIGVpbmdlbGllZmVydCB1bmQgYmVkYXVlcnRlIGRpZXMgc2Voci4KCkRlciBGdXNzZ2FlbmdlciBoYXR0ZSBhbnNjaGVpbmVuZCBrZWluZSBBaG51bmcsIGluIHdlbGNoZXIgUmljaHR1bmcgZXIKZ2VoZW4gc29sbHRlLCB1bmQgc28gdWViZXJmdWhyIGljaCBpaG4uCgpEZXIgYW5kZXJlIFdhZ2VuIHdhciBhYnNvbHV0IHVuc2ljaHRiYXIsIHVuZCBkYW5uIHZlcnNjaHdhbmQgZXIuCgoKSWNoIGZhbmQgZWluIGdyb3NzZXMgU2NobGFnbG9jaCB1bmQgYmxpZWIgaW4gZGVtc2VsYmVuLgoKRGFzIGFuZGVyZSBBdXRvIGtvbGxpZGllcnRlIG1pdCBkZW0gbWVpbmlnZW4sIG9obmUgbWlyIHZvcmhlciBzZWluZQpBYnNpY2h0IG1pdHp1dGVpbGVuLgoKSW4gaG9oZW0gVGVtcG8gbmFlaGVydGUgc2ljaCBtaXIgZGllIFRlbGVncmFwaGVuc3RhbmdlLiBJY2ggc2NobHVnCmVpbmVuIFppY2t6YWNra3VycyBlaW4sIGFiZXIgZGVubm9jaCB0cmFmIGRpZSBUZWxlZ3JhcGhlbnN0YW5nZQpkZW4gS3VlaGxlci4KCgpEZXIgS3JhZnRzYWNodmVyc3RhZW5kaWdlIHdhciB2b2VsbGlnIHVuZ2VoYWx0ZW4sIGFscyBlciBhdWYgbWVpbgpWb3JkZXJ0ZWlsIGJsaWNrdGUgLi4uCgpFaW4gRnVzc2dhZW5nZXIgcmFubnRlIGluIG1pY2ggdW5kIHZlcnNjaHdhbmQgd29ydGxvcyB1bnRlciBtZWluZW0KQXV0by4KCkljaCBoYWJlIG5vY2ggbmllIEZhaHJlcmZsdWNodCBiZWdhbmdlbiwgIGltIEdlZ2VudGVpbCwgaWNoIG11c3N0ZQppbW1lciB3ZWdnZXRyYWdlbiB3ZXJlbi4KCgpJY2ggdWViZXJmdWhyIGVpbmVuIE1hbm4uIEVyIGdhYiBzZWluZSBTY2h1bGQgenUsIGRhIGlobSBkaWVzIHNjaG9uCmVpbm1hbCBwYXNzaWVydCB3YXIuCgpTY2hvbiBiZXZvciBpY2ggaWhuIGFuZnVociwgd2FyIGljaCBkYXZvbiB1ZWJlcnpldWd0LCBkYXNzIGRpZXNlcgphbHRlIE1hbm4gbmllIGRpZSBhbmRlcmUgU3RyYXNzZW5zZWl0ZSBlcnJlaWNoZW4gd3VlcmRlLgoKRGEgc2ljaCBkZXIgRnVzc2dhZW5nZXIgbmljaHQgZW50c2NoZWlkZW4ga29ubnRlLCBuYWNoIHdlbGNoZXIgU2VpdGUKZXIgcmVubmVuIHNvbGx0ZSwgZnVociBpY2ggb2JlbiBkcnVlYmVyLgoKCkVpbiB1bnNpY2h0YmFyZXMgRmFocnpldWcga2FtIGF1cyBkZW0gTmljaHRzLCBzdGllc3MgbWl0IG1pciB6dS0Kc2FtbWVuIHVuZCB2ZXJzY2h3YW5kIGRhbm4gc3B1cmxvcy4KCk5hY2hkZW0gaWNoIHZpZXJ6aWcgSmFocmUgZ2VmYWhyZW4gd2FyLCBzY2hsaWVmIGljaCBhbSBMZW5rcmFkIGVpbi4KCkljaCBoYXR0ZSBkZW4gZ2FuemVuIFRhZyBQZmxhbnplbiBlaW5nZWthdWZ0LiBBbHMgaWNoIGRpZSBLcmV1enVuZwplcnJlaWNodGUsIHd1Y2hzIHBsb2V0emxpY2ggZWluIEJ1c2NoIGluIG1laW4gQmxpY2tmZWxkIHVuZCBpY2gKa29ubnRlIGRhcyBhbmRlcmUgRmFocnpldWcgbmljaHQgbWVociBzZWhlbi4KCgpBbHMgaWNoIGVpbmUgRmxpZWdlIGVyc2NobGFnZW4gd29sbHRlLCBlcndpc2NodCBpY2ggZGVuIFRlbGVmb25tYXN0LgoKRGVyIFBmb3N0ZW4gcmFzdGUgYXVmIG1pY2ggenUsIHVuZCBhbHMgaWNoIGlobSBQbGF0eiBtYWNoZW4gd29sbHRlLApzdGllc3MgaWNoIGZyb250YWwgZGFtaXQgenVzYW1tZW4uCgpadWVyc3Qgc2FndGUgaWNoIGRlciBQb2xpemVpLCBpY2ggc2VpIG5pY2h0IHZlcmxldHp0LCBhYmVyIGFscyBpY2gKZGVuIEh1dCBhYm5haG0sIGJlbWVya3RlIGljaCBlaW5lbiBTY2hhZWRlbGJydWNoLgoKCkFscyBtZWluIEF1dG8gdm9uIGRlciBTdHJhc3NlIGFia2FtLCB3dXJkZSBpY2ggaGluYXVzZ2VzY2hsZXVkZXJ0LgpTcGFldGVyIGVudGRlY2t0ZW4gbWljaCBlaW4gcGFhciBLdWVoZSBpbSBMb2NoLgoKSWNoIHNhaCBlaW4gdHJhdXJpZ2VzIEdlc2ljaHQgbGFuZ3NhbSB2b3J1ZWJlcnNjaHdlYmVuLiBEYW5uIHNjaGx1ZwpkZXIgSGVyciBhdWYgZGVtIERhY2ggbWVpbmVzIFdhZ2VucyBhdWYuCgoKRWJlbmZhbGxzIGF1cyBlaW5lbSBNYWRyaWRlciBVbmZhbGxiZXJpY2h0IHZvbiBlaW5lbSBNYW5uLCBkZXIKd2VnZW4gZWluZXMgZHJpbmdlbmRlbiBCZWR1ZXJmbmlzc2VzIGF1ZiBkZXIgTGFuZHN0cmFzc2UgZ2VoYWx0ZW4KaGF0dGUsIHdvcmF1ZiBlaW4gTEtXIGluIHNlaW4gQXV0byBmdWhyOgpXYWVocmVuZCBpY2ggZGllIFN0cmFzc2Ugbm9ybWFsIGJlZnVociwgdWViZXJrYW0gbWljaCBkYXMgVmVybGFuZ2VuLAptaWNoIHp1IGVybGVpY2h0ZXJuLCB3ZXN3ZWdlbiBpY2ggZGFzIEZhaHJ6ZXVnIGFtIFJhbmQgYW5oaWVsdAp1bmQgbWljaCBpbiBlaW4gbmFoZXMgR2VidWVzY2ggYmVnYWIuIE5hY2hkZW0gaWNoIGRpZSBIb3NlbgpydW50ZXJnZWxhc3NlbiBoYXR0ZSwga2FtIGRlciBHZWduZXIgdW5kIGdhYidzIG1pciB2b24gaGludGVuCm1pdCBkZW0gS2lwcGVyLgoKClZpZWwgU3Bhc3MgZGFtaXQKClNraXBwZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhZ25lciAoR3JpbW1ib3JuLCAzMS4gRGV6IDE5OTgsIDIyOjEwOjQ2KToKJ1BhcnNpZmFsJyBpc3QgZWluZSBkZXIgZWhlciBsYWVuZ2VyZW4gT3Blcm4uIERlc3dlZ2VuIGZhZW5ndCBzaWUgaW0KYWxsZ2VtZWluZW4gc2Nob24gdW0gMTggVWhyIGFuLiBXZW5uIG1hbiBkYW5uIGRyZWkgU3R1bmRlbiBzcGFldGVyIGF1ZiBkaWUgVWhyCnNjaGF1dCBpc3QgZXMgendhbnppZyBuYWNoIHNlY2hzLi4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9lc3RlcnJlaWNoaXNjaGVzIEtvbW11bmFsd2lzc2VuIChHcmltbWJvcm4sIDMxLiBEZXogMTk5OCwgMjI6NDU6NDEpOgpXaWUgaGVpc3N0IGRpZSBrbGVpbnN0ZSBHZW1laW5kZSBPZXN0ZXJyZWljaHM/ClVudGVybGFzc2luZy4gTnVyIDEwIEVpbndvaG5lci4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaG1hbCBEaWFuYSAoR3JpbW1ib3JuLCAzMS4gRGV6IDE5OTgsIDIyOjUxOjAwKToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgRmxpZWdlIHVuZCBQcmluemVzc2luIERpYW5hPwpEaWUgRmxpZWdlIGtsYXRzY2h0IHZvbiBhdXNzZW4gYW4gZGllIFNjaGVpYmUuLi4KCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5vY2htYWwgRGlhbmEgKEdyaW1tYm9ybiwgMzEuIERleiAxOTk4LCAyMjo1NDoyNik6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTE1MTQ0NjYwIHJnPXdpdHplCn4jISB0aWQ9OTE1MTQ0NjYwClVuZCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gRXJpY2ggSG9uZWNrZXIgdW5kIFByaW56ZXNzaW4gRGlhbmE/CkhvbmVja2VyIGhhdCBkaWUgTWF1ZXIgdWViZXJsZWJ0LgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmQgaGllciBub2NoIGVpbiBhcHBldGl0bGljaGVyOiAoR3JpbW1ib3JuLCAzMS4gRGV6IDE5OTgsIDIzOjA3OjAwKToKV2FydW0ga29tbXQgZWluIE1hbm4gYmVpbSBPcmdhc211cyBpbW1lciBudXIgc3Rvc3N3ZWlzZT8KRGFtaXQgZGllIEZyYXUgYmVpbSBTY2hsdWNrZW4gbmFjaGtvbW10Li4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgKGRlciBkaWUgZmFsc2NoZSBTZWl0ZSB3aWVkZXJlbnRkZWNrdCBoYXQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcHVja2VuZGUgS3VuaWd1bmRlIHVuZCBzaWNoIHZlcmJpZWdlbmRlIExhY2htdXNrZWxuIChKYW1lc29uLCAgNS4gSmFuIDE5OTksIDE4OjU1OjQ1KToKU3RpbGJsdWV0ZW4sIFRpcHBmZWhsZXIgdW5kIFp3ZWlkZXV0aWdlcyBhdXMgTWFudXNrcmlwdGVuIHVuZCBNaXR0ZWlsdW5nZW4KYW4gZGllIE5ldXN0YWR0ZXIgTG9rYWxyZWRha3Rpb24KCltRdWVsbGU6IERpZSBSaGVpbnBmYWx6LCBBdXNnYWJlIE5ldXN0YWR0L1dlaW5zdHIuLCAzMS4xMi4xOTk4LzUuMS4xOTk5CkRhIGthbm4gbWFsIG1hbCBzZWhlbiwgZGFzcyBuaWNodCBudXIgU2NodWVsZXJ6ZWl0dW5nZW4gTm9uc2VucyBmYWJyaXppZXJlbiwKc29uZGVybiBhdWNoIGRpZSAiZ3Jvc3NlbiIgS29sbGVnZW4gOy0pXQoKIlByb2Zlc3NvciBTLiBzcHJpY2h0IGFtIERpZW5zdGFnIGluIGRlciBTdGFhdGxpY2hlbiBMZWVyLSB1bmQKRm9yc2NodW5nc2Fuc3RhbHQgTXVzc2JhY2guIgoiQmVpIGRlbiBOZXV3YWhsZW4gd3VyZGUgbWl0IHVlYmVyd2llZ2VuZGVyIE1laHJoZWl0IGRlciBWZXJzdGFuZApnZXdhZWhsdC4iCiJLYXRob2xpc2NoZSBLaW5kZXJnYWVydGVuIG9lZmZuZW4gaWhyZSBQZm90ZW4uIgpVZWJlciBlaW5lIEthcm5ldmFsLVNlbmlvcmVuc2l0enVuZzogIjgwMCBLYXJuZXZhbGZhbnMgdWViZXIgNjUgSmFocmUgaW0KU2FhbGJhdS4iCiJBbHMgZGFubiBub2NoIGRpZSBzY2hyZWNrbGljaGUgS3VuaWd1bmRlIHZvcmJlaWtvbW10LCBkaWUgc29uc3QgaW0gUmF0aGF1cwpzcHVja3QsIGlzdCBkaWUgQW5nc3QgbmljaHQgbWVociBiZXNvbmRlcnMgZ3Jvc3MuIgoiSGFlbmRlbHNjaHVldHRlbG4gYmVpbSBGQyAyMyBIYW1iYWNoLiIKIkRpZSBIYW1iYWNoZXIgSGFuZGJhbGwtRGFtZW4gc2NoZWl0ZXJ0ZW4gYW0gU2NobHVzc2xpY2h0IGRlcgpGcmllc2VuaGVpbWVyaW5uZW4uIgoiTS4gd2lsbCwgc28gc2VpbmUgRXJrbGFlcnVuZywgZGVuIExlaWJyZWl6IGRlcyBqdW5nZW4gTWFlZGNoZW5zIHVuZCBkaWUKTGVnZW5kZSBoZXJ1ZWJlcmJyaW5nZW4sIGRhc3Mgc2ljaCBkZSBXZXJ0aCBIYWxzIHVlYmVyIEtvcGYgaW4gc2llIHZlcmxpZWJ0CmhhdC4iCiJCZXN1Y2ggZGVyIEtlc3NlbGtlcndlIGltIEZhaHJyYWR0b3Jzby4iCiJWZXJlaW4gZnVlciBCYXVjaHR1bSB1bmQgSGVpbWF0cGZsZWdlLiIKIi4uLmRlbiBVbWdhbmcgbWl0IG1vZGVybmRlciBFRFYgbGVybmVuLiIKZXJhZGUgenVyIHJlY2h0ZW4gWmVpdCBrb2VubmVuIGRpZSBNdXNzYmFjaGVyIEZ1c3NiYWxsZXIgaWhyZSBQZXJzb25hbG1pc2VyZQplaW5pZ2VybWFzc2VuIGJlaGFsdGVuLiIKQXVzIGVpbmVtIEJlcmljaHQgdWViZXIgVGVubmlzOiAiSW4gZGVyIGtvbW1lbmRlbiBNZWRpZW5ydW5kZS4uIgpmZXJudGUgc2ljaCB1bmVybGF1YnQgdm9tIFVybGF1YnNvcnQuIgoiRGllIFJpZXNlbnNjaGF1IHdhciBkaWUgQXR0cmFrdGlvbiBkZXMgRXJlaWduaXNzZXMuIgoiRGllIFNwZW5kZW4ga29lbm5lbiBpbiBkZXIgR2VzY2hhZWZ0c3N0ZWxsZSBhYmdlZ2ViZW4gd2VyZGVuLiBBdWYgV3Vuc2NoCndlcmRlbiBzaWUgYXVjaCBhYmdlaG9senQuIgoiRGllIHdlbmlnZW4gWnVzY2hhdWVyLCBkaWUgaGV1dGUgZ2Vrb21tZW4gc2luZCwgaGFiZW4gZXMgdmVycGFzc3QsIGVpbgpzcGFubmVuZGVzIFNwaWVsIHp1IHNlaGVuLiIKIkluc2dlc2FtdCB3ZXJkZW4gMzUgUGt3LVN0ZWxscGxhZXR6ZSB1ZWJlciBlaW5lIEVyc2NoaWVzc3VuZ3NzdHJhc3NlIHZvbiBkZXIKTGFuZ2dhc3NlIGhlciAuLi4gZXJzY2hsb3NzZW4uIgoiQWIgdW5kIHp1IHdlcmRlbiBIdW5kZSB2b24gZWhyZW5hbXRsaWNoZW4gSGVsZmVybiBhdXNnZWZ1ZWhydC4gRGllc2UgbGVybmVuCmRhbm4gYXVjaCwgYW4gZGVyIExlaW5lIHp1IGxhdWZlbi4iCiJTaWNodHVuZ3N0dXJuaWVyZSBmdWVyIGRlbiByaGVpbmxhbmQtcGZhZWx6aXNjaGVuIExhbmRlc2p1Z2VuZGthdGVyLi4uIgoiRnVlciBkaWUgSGFuZGJhbGxlciBkZXMgVFZLLCBkaWUgZGVuIHZlcmxldHp0ZW4gUmFuZyBpbiBkZXIgT2JlcmxpZ2EKIgoiLi4ubWl0IGRlbSBTY2hsdXNzcGZpZmYgc2V0enRlIEtsYXVzIEYuIG1pdCBkZW0gMjo3IGRhcyBUdWVwZmVsY2hlbiBhdWYKZGFzIFVlLiIKIlplaXNrYW1zIFNwaWVsZXJ0cmFpbmVyIFouIHRyYWYgbnVyIGRlbiBQZm9zdGVuIGRlciBHYWVzdGUuIgoiRGVyIEdlc2NoYWVmdHNmdWVocmVyIHRlaWx0ZSBtaXQsIGRhc3MgamV0enQgc2Nob24gZnVlciAxOTk4IHVlYmVyIDEwMDAwCkJ1Y2h1bmdlbiB1ZWJlcm5hY2h0ZXQgc2VpZW4uIgpGYXggdm9uIGVpbmVtIFZlcmVpbjogIkRpZSBGYWhydCBmaW5kZXQgYW0gMjEuIEp1bmkgc3RhdHQuIEJpdHRlIGluIGRlcgpBdXNnYWJlIHZvbSAyNi4gSnVuaSB2ZXJvZWZmZW50bGljaGVuLiIKIkRpZXNlciBoYXR0ZSBhdWYgZGVyIGhvY2hwcm96ZW50aWdlbiBQYXNzc3RyYXNzZSA0MDAgSG9laGVubWV0ZXIgenUKdWViZXJ3aW5kZW4uIgplcGVzdHZpcnVzOiAiRnVlciBkZW4gTWVuc2NoZW4gdW5kIGFuZGVyZSBUaWVyZSBiZXN0ZWhlIGtlaW5lCkdlZmFoci4iCiJNYXJpYSB1bmQgSm9zZWYsIGRpZSBzY2hvbiBiZWkgZGVyIEVyc3RhdWZmdWVocnVuZyBkaWUgSGVpbGlnZSBGYW1pbGllCmRhcnN0ZWxsdGVuLCB2ZXJrb2VycGVybiBTYXJhaCBCLiB1bmQgQ2hyaXN0aWFuIEouIgoiRnVlciBkaWUgSGFuZGJhbGxlciBkZXMgVFZLLCBkaWUgbW9tZW50YW4gZGVuIHZlcmxldHp0ZW4gUmFuZyBpbiBkZXIgT2JlcmxpZ2EKZWlubmVobWVuLCAuLi4iCiJEYXMgRmVobGVuIGVpbmVyIGdlZWlnbmV0ZW4gVHVybmhhbGxlIGZ1ZXIgZGllIEdydW5kc2NodWxlIGlzdCBzY2hvbiBzZWl0CnZpZWxlbiBKYWhyZW4gZWluZSB1bmVyZnVlbGx0ZSBGb3JkZXJ1bmcuIgoiRnJhbnogSy4gc3BpZWx0IGF1ZiBkZXIgWml0dGVyIGFsdGUgV2Vpc2VuLiIKImtuYWJlbmJyaW5nZW5kZSBXZWlobmFjaHRzemVpdC4iCgpqQW1lc29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZWZpbml0aW9ucyBbZW5nbGlzY2hdIChKYW1lc29uLCAgNy4gSmFuIDE5OTksIDE3OjM0OjM3KToKQURVTFQ6IEEgcGVyc29uIHdobyBoYXMgc3RvcHBlZCBncm93aW5nIGF0IGJvdGggZW5kcyBhbmQgaXMgbm93IGdyb3dpbmcgaW4KdGhlIG1pZGRsZS4KQkVBVVRZIFBBUkxPUjogQSBwbGFjZSB3aGVyZSB3b21lbiBjdXJsIHVwIGFuZCBkeWUuCkNBTk5JQkFMOiBTb21lb25lIHdobyBpcyBmZWQgdXAgd2l0aCBwZW9wbGUuCkNISUNLRU5TOiBUaGUgb25seSBhbmltYWxzIHlvdSBlYXQgYmVmb3JlIHRoZXkgYXJlIGJvcm4gYW5kIGFmdGVyIHRoZXkgYXJlCmRlYWQuCkNPTU1JVFRFRTogQSBib2R5IHRoYXQga2VlcHMgbWludXRlcyBhbmQgd2FzdGVzIGhvdXJzLgpEVVNUOiBNdWQgd2l0aCB0aGUganVpY2Ugc3F1ZWV6ZWQgb3V0LgpFR09USVNUOiBTb21lb25lIHdobyBpcyB1c3VhbGx5IG1lLWRlZXAgaW4gY29udmVyc2F0aW9uLgpHT1NTSVA6IEEgcGVyc29uIHdobyB3aWxsIG5ldmVyIHRlbGwgYSBsaWUgaWYgdGhlIHRydXRoIHdpbGwgZG8gbW9yZSBkYW1hZ2UuCkhBTkRLRVJDSElFRjogQ29sZCBTdG9yYWdlLgpJTkZMQVRJT046IEN1dHRpbmcgbW9uZXkgaW4gaGFsZiB3aXRob3V0IGRhbWFnaW5nIHRoZSBwYXBlci4KTVlUSDogQSBmZW1hbGUgbW90aC4KTU9TUVVJVE86IEFuIGluc2VjdCB0aGF0IG1ha2VzIHlvdSBsaWtlIGZsaWVzIGJldHRlci4KUkFJU0lOOiBHcmFwZSB3aXRoIGEgc3VuYnVybi4KU0VDUkVUOiBTb21ldGhpbmcgeW91IHRlbGwgdG8gb25lIHBlcnNvbiBhdCBhIHRpbWUuClNLRUxFVE9OOiBBIGJ1bmNoIG9mIGJvbmVzIHdpdGggdGhlIHBlcnNvbiBzY3JhcGVkIG9mZi4KVE9PVEhBQ0hFOiBUaGUgcGFpbiB0aGF0IGRyaXZlcyB5b3UgdG8gZXh0cmFjdGlvbi4KVE9NT1JST1c6IE9uZSBvZiB0aGUgZ3JlYXRlc3QgbGFib3Igc2F2aW5nIGRldmljZXMgb2YgdG9kYXkuCllBV046IEFuIGhvbmVzdCBvcGluaW9uIG9wZW5seSBleHByZXNzZWQuCldSSU5LTEVTOiBTb21ldGhpbmcgb3RoZXIgcGVvcGxlIGhhdmUuIFlvdSBoYXZlIGNoYXJhY3RlciBsaW5lcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdm9yaGluIGdlaG9lcnQuLi4gKERlYnVnZ2VyLCAgOC4gSmFuIDE5OTksIDAyOjMzOjE1KToKfiMhIG9uPURlYnVnZ2VyIG90PTkxNTc2MjczMSBvZz1hbGxnZW1laW5lcwpEZXIgRnVjaHMsIGRlciBIYXNlIHVuZCBkZXIgQmFlciBtdWVzc2VuIHp1ciBNdXN0ZXJ1bmcuIERlciBGdWNocyBkZW5rdCAid2VubgppY2ggbWlyIGVpbiBTdHVlY2sgdm9tIFNjaHdhbnogYWJzY2huZWlkZSwgdmllbGxlaWNodCBuZWhtZW4gc2llIG1pY2ggZGFubgpuaWNodCIuIEdlZGFjaHQgZ2V0YW4uIFNwYWV0ZXIga29tbXQgZXIgZnJldWRlc3RyYWhsZW5kIHp1cnVlY2s6ICJTaWUgaGFiZW4KbWljaCBuaWNodCBnZW5vbW1lbi4gU2Nod2FueiB6dSBrdXJ6Ii4gRGVyIEhhc2UgZGVua3QgIkhtLCBtZWluIFNjaHdhbnogaXN0CndvaGwgenUga3Vyei4gQWJlciB3ZW5uIGljaCBtaXIgZWluIFN0dWVjayB2b20gT2hyIGFic2NobmVpZGUuLi4iLiBBbSBBYmVuZAprb21tdCBhdWNoIGRlciBIYXNlIGVybGVpY2h0ZXJ0IHp1cnVlY2s6ICJTaWUgaGFiZW4gbWljaCBuaWNodCBnZW5vbW1lbi4KT2hyIHp1IGt1cnoiLiAiSG0iIGRlbmt0IHNpY2ggZGVyIEJhZXIgIndhcyBtYWNoIGljaCBkZW5uIGpldHp0PyIuIEt1cnoKZW50c2NobG9zc2VuIG5pbW10IGVyIGVpbmVuIFN0ZWluIHVuZCBiZWlzc3Qga3JhZWZ0aWcgZHJhdWYsIHNvIGRhc3MgYWxsZQpaYWVobmUgYWJicmVjaGVuLiBTcGFldGVyIGtvbW10IGVyIGZyZXVkZXN0cmFobGVuZCB6dXJ1ZWNrOiAiU2NoaWUgaGFiZW4gbWlzY2gKbmlzY2ggYmVtb21tZW4uIFNjaHUgZ3Jvc2NoIHVuZCBzY2h1IGRpY2suLi4iCgotZGVidWdnZXItCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphdXMgZGVtICJ0YWdlc3NwaWVnZWwiIChQYWtlLCAxMC4gSmFuIDE5OTksIDIyOjE5OjQ0KToKR290dCB3aWxsIGFtIDEuMS4yMDAwIGRpZSBXZWx0IGltIEFybWFnZWRkb24gdW50ZXJnZWhlbiBsYXNzZW4uIFVtIGRpZQpNZW5zY2hlbiBkYXJhdWYgdm9yenViZXJlaXRlbiwgcnVmdCBlciBkaWUgd2ljaHRpZ3N0ZW4gMyBQZXJzb25lbiB6dSBzaWNoLCB1bQplcyBpaG5lbiBzZWxic3QgbWl0enV0ZWlsZW4sIHNvIGRhc3Mgc2llIGVzIGRlciBXZWx0IHZlcmt1ZW5kZW4ga29lbm5lbi4KRXMga29tbWVuIGFsc28gYW0gMzEuMTIuMTk5OSBCb3JpcyBKZWx6aW4sIEJpbGwgQ2xpbnRvbiB1bmQgQmlsbCBHYXRlcywgdW5kCkdvdHQgZXJ6YWVobHQgaWhuZW4gc2VpbmVuIFBsYW4uCkplbHppbiBiZXJ1ZnQgZGllIER1bWEgZWluIHVuZCBlcnphZWhsdDogImljaCBoYWJlIGVpbmUgZ3V0ZSB1bmQgZWluZQpzY2hsZWNodGUgTmFjaHJpY2h0OiBHb3R0IGV4aXN0aWVydCB1bmQgbW9yZ2VuIHdpcmQgZXIgZGllIFdlbHQgdmVybmljaHRlbiIuCkNsaW50b24gZWlsdCBpbiBkZW4gQ29uZ3Jlc3MgdW5kIGVyemFlaGx0OiAiR290dCBnaWJ0IGVzIHdpcmtsaWNoIHVuZCBtb3JnZW4Kd2lyZCBlciBkaWUgV2VsdCB2ZXJuaWNodGVuIgpHYXRlcyBrb21tdCBpbiBzZWluZW4gRmlybWVuc2l0eiB1bmQgZXJ6YWVobHQgc2VpbmVuIE1pdGFyYmVpdGVybjogInN0ZWxsdApldWNoIHZvcjogaWNoIGdlaG9lcmUgenUgZGVuIDMgd2ljaHRpZ3N0ZW4gUGVyc29uZW4gZGVyIFdlbHQgdW5kIGRhcyBKYWhyIDIwMDAKUHJvYmxlbSBpc3QgZ2Vsb2VzdCIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpbGx5IGRpZSAxMDAwMHN0ZSAoS2VsbHlidW5keSwgMTEuIEphbiAxOTk5LCAxNjowNzozOCk6CldhcnVtIG1hY2h0IE1vbmljYSBMZXdpbnNreSBzbyBkaWNrZSBCYWNrZW4/ClNpZSBoYWVsdCBCZXdlaXNtYXRlcmlhbCB6dXJ1ZWNrLgoKQmxvZV5IbmRpZSA6KSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzYXVibG9lZCA6KSAoRGllZGVyLCAxNS4gSmFuIDE5OTksIDE2OjI3OjQ0KToKRWluIFR1ZXJrZSBzY2h1ZXR0ZWx0IGF1ZiBkZW0gQmFsa29uIHNlaW5lbiBUZXBwaWNoIGF1cy4KRGFyYXVmaGluIGRpZSBOYWNoYmFyaW4gdm9tIEJhbGtvbiBuZWJlbmRyYW46ICJOYSwgc3ByaW5ndCBlciBuaWNodCBhbj8iCgpEaWVkZXIsIGtpY2hlcm5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTI6IFdJQ0hUSUcgISEhISEhISEhIChHcmltbWJvcm4sIDE2LiBKYW4gMTk5OSwgMjE6MzA6NDcpOgp+IyEgb249RGllZGVyIG90PTkxNjMyMzYxNSBvZz1rdWx0dXIKfiMhIHJuPUd1aWxkbyBydD05MTYzMjM0Mjggcmc9a3VsdHVyCn4jISB0aWQ9OTE2MTQwODk2CndhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIEJyYXRzY2hlIHVuZCBlaW5lbSBTYXJnPwpCZWltIFNhcmcgaXN0IGRlciB0b3RlIE1hbm4gZHJpbm5lbi4KCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEJyYXRzY2hlcm4gdW5kIFRlcnJvcmlzdGVuPwpUZXJyb3Jpc3RlbiBoYWJlbiBTeW1wYXRoaXNhbnRlbi4KCldhcyBzdGVodCBpbiBkZW4gTm90ZW4gZGVyIEdlaWdlbiwgd2VubiBzaWUgc2NobmVsbCBzcGllbGVuIHNvbGxlbj8gClZpdmFjZS4gClVuZCB3YXMgc3RlaHQgZ2VzY2hyaWViZW4sIHdlbm4gc2llIGxhbmdzYW0gc3BpZWxlbiBzb2xsZW4/IApXaWUgQnJhdHNjaGUuIAoKRWluIEJyYXRzY2hlciB6dW0gS29sbGVnZW46ICJEdSwgaWNoIGhhYiBkaWUgZ2FuemVuIE9yY2hlc3RlcmZlcmllbiBnZXVlYnQsCmljaCBrYW5uIGpldHp0IGVpbiBBY2h0ZWwhIgoiVG9sbCwgc3BpZWwgZG9jaCBtYWwgZWlucyEiCgphbmQgc28gb24uLi4KdG8gYmUgY29udGludWVkLi4uCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEzOiBXSUNIVElHICEhISEhISEhISAoR3JpbW1ib3JuLCAxNi4gSmFuIDE5OTksIDIxOjMwOjQ5KToKfiMhIG9uPUtlbGx5YnVuZHkgb3Q9OTE2MzI4MTg3IG9nPWt1bHR1cgp+IyEgcm49RGllZGVyIHJ0PTkxNjMyMzYxNSByZz1rdWx0dXIKfiMhIHRpZD05MTYxNDA4OTYKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gQnJhdHNjaGVyIHVuZDoKCi0gZWluZXIgV3Vlc3RlPwoKQTogRGllIFd1ZXN0ZSBsZWJ0LgoKLSBlaW5lbSB1ZWJlcmZhaHJlbmVuIFN0aW5rdGllcj8KCkE6IFZvciBkZW0gVmllY2ggc2luZCBCcmVtc3NwdXJlbi4KCgpUcmVmZmVuIHNpY2ggendlaSBHZWlnZXIgbmFjaCBsYW5nZXIgemVpdCB3aWVkZXIuIFRyYWVndCBkZXIgZWluZSBkb2NoCnRhdHNhZWNobGljaCBuZW4gQnJhdHNjaGVua2FzdGVuLiBEYSBmcmFndCBkZXIgendlaXRlIGlobjoiVXBwcywgaGF0dGVzdCBEdQpuZW4gU2NobGFnYW5mYWxsPyIKCkJsb2VeSG5kaWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE0OiBXSUNIVElHICEhISEhISEhISAoR3JpbW1ib3JuLCAxNi4gSmFuIDE5OTksIDIxOjMwOjU5KToKfiMhIG9uPVphcm5peWEgb3Q9OTE2MzI5OTYxIG9nPWt1bHR1cgp+IyEgcm49S2VsbHlidW5keSBydD05MTYzMjgxODcgcmc9a3VsdHVyCn4jISB0aWQ9OTE2MTQwODk2Cm5vY2htYWwgZnVlciBhbGxlOgoKaHR0cDovL3d3dy5MdWVuZUNvbS5kZS9XZW5kbGFuZC1TaW5mb25pZS1PcmNoZXN0ZXIvbXVzd2l0emUuaHRtbAoKU28uLi4gZGFtaXQgc29sbHRlIHNpY2ggZGFzIFRoZW1hIGVybGVkaWdlbi4KCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pY3Jvc29mdCB1bmQgc28uLi4gKFNuaXBlciwgMTguIEphbiAxOTk5LCAxMDo0NTowMCk6CkxhbmRlYW5mbHVnIGF1ZiBTZWF0dGxlLCBkaWNodGVyIE5lYmVsOgpFaW4gQnVlcm9nZWJhZXVkZSB0YXVjaHQgYXVmLiBEZXIgUGlsb3QgZnJhZ3QgZWluZW4gTWFubiBhbSBvZmZuZW5lIEZlbnN0ZXI6CldvIGJpbiBpY2ggaGllcj8gQW50d29ydGV0IGRlciBNYW5uOiBJbiBlaW5lbSBGbHVnemV1Zy4KS3VyeiBkYXJ1YWYgbGFuZGV0IGRlciBQaWxvdCBhdWYgZGVuIE1ldGVyIGdlbmF1LiBGcmFndCBzZWluIENvcGlsb3Q6IFdpZSBoYXN0CkR1IGRlbm4gZGFzIGdlbWFjaHQ/IERlciBQaWxvdCBmYWVuZ3QgYW4genUgZ3JpbnNlbiB1bmQgc2FndDogSWNoIGJla2FtIGVpbmUKMTAwJWlnIGtvcnJla3RlLCBhYmVyIHZvZWxsaWcgbnV0emxvc2UgQW50d29ydC4gRGFzIG11c3N0ZSBkaWUKTWljcm9zb2Z0LUhvdGxpbmUgc2VpbiwgdW5kIHZvbiBkb3J0IGF1cyBrZW5uZSBpY2ggZGVuIFdlZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VwcG9ydCAoR3JpbW1ib3JuLCAyMC4gSmFuIDE5OTksIDEyOjEyOjQwKToKU293YXMgZXJoYWVsdCBtYW4gZ2VsZWdlbnRsaWNoLCB3ZW5uIG1hbiBtaXQgbGV2ZWwxLXN1cHBvcnQgenUgdHVuIGhhdDoKCkxpZWJlciBCZXJhdGVyLAoKaWNoIGhhYmUgZGFzIGlyZ2VuZHdpZSBuaWNodCB2ZXJzdGFuZGVuLiBJY2ggYmluIGF1ZiBkaWUgd3d3LVNlaXRlIGRlciBVbmkKZ2VnYW5nZW4gdW5kIGtvbm50ZSBhYmVyIHNvIGV0d2FzIHdpZSBlaW5lbiBFaW53YWhsa25vdGVuIG9kZXIgaXJnZW5kd2FzIHdvCm1hbiBkZW4gcG9wbWFpbCAtc2VydmVyIGVpbmdpYnQsIG5pY2h0IGZpbmRlbi4gSWNoIG11c3Mgc2FnZW4sIGljaCBiaW4gbnVyCmVpbiBlaW5mYWNoZXIgdXNlciB1bmQgaGFiZSB2b24gZGVtIEhpbnRlcmdydW5kIGhlciBuaWNodCBzbyB2aWVsIEFobnVuZy4KCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJMOiBBYmVudGV1cmlzc2ltbyAoQXVncmEsIDIyLiBKYW4gMTk5OSwgMTg6MzA6NDIpOgoKTGV0enRlIFdvY2hlIHN0YW5kIGljaCBzdGF1bmVuZCB2b3IgZGVtIFNwZWlzZXBsYW4gZGVyIEJHUy1LYW50aW5lLgpEZXIgR3J1bmQ6CgpBbmdla3VlbmRpZ3Qgd2FyZW4gIkZldWVyYmFlbGxjaGVuIGF1ZiBSZWlzIi4KCkF1Z3JhLCBtaXQgbGFuZ2VuIFphZWhuZW4ga2F1ZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJMOiBBYmVudGV1cmlzc2ltbyAoSmFtZXNvbiwgMjIuIEphbiAxOTk5LCAxODozNToyNyk6Cn4jISBybj1BdWdyYSBydD05MTcwMjk4NDIgcmc9d2l0emUKfiMhIHRpZD05MTcwMjk4NDIKSW4gZWluZW0gU3VwZXJtYXJrdCBpbiBkZXIgU3RhZHQsIGluIGRlciBpY2ggd29obmUsIGdpYnQgZXMKU3RlaW5iZWlzc2VyYnJvdC4gOykKCmoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJMOiBBYmVudGV1cmlzc2ltbyAoQXVncmEsIDIyLiBKYW4gMTk5OSwgMTg6NDA6NTEpOgp+IyEgcm49SmFtZXNvbiBydD05MTcwMzAxMjcgcmc9d2l0emUKfiMhIHRpZD05MTcwMjk4NDIKU2NodWV0dGVsYnJvdCBoYWIgaWNoIGF1Y2ggc2Nob24gZ2VzZWhlbiwgc2FoIGF1cyB3aWUgS25hZWNrZSA6KQoKQS5XLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJMOiBBYmVudGV1cmlzc2ltbyAoQW5hdG9sLCAyMy4gSmFuIDE5OTksIDAwOjI5OjQwKToKfiMhIHJuPUF1Z3JhIHJ0PTkxNzAyOTg0MiByZz13aXR6ZQp+IyEgdGlkPTkxNzAyOTg0MgpLb21pc2NoLCBiZWkgdW5zZXJlbSBNZW5zYWVzc2VuIGRlbmtlIGljaCBpbW1lciBudXIgYW4gIlNjaG1lcnplbiIuLi4KCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUkw6IEFiZW50ZXVyaXNzaW1vIChCaWVsZWZlbGQsIDIzLiBKYW4gMTk5OSwgMTA6MDk6MDIpOgp+IyEgcm49SmFtZXNvbiBydD05MTcwMzAxMjcgcmc9d2l0emUKfiMhIHRpZD05MTcwMjk4NDIKU3RlaW5iZWlzc2VyIHNpbmQgRmlzY2hlLiBLYW5uIG1hbiB3b2hsIGF1Y2ggZXNzZW4sIGljaCBoYWIgaGllcgppcmdlbmR3byBlaW4gUmV6ZXB0IHJ1bWZsaWVnZW4gOy0pKSkKCi1CaWVsZWZlbGQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFJMOiBBYmVudGV1cmlzc2ltbyAoSmFtZXNvbiwgMjMuIEphbiAxOTk5LCAxOTo1OTo1NCk6Cn4jISBybj1CaWVsZWZlbGQgcnQ9OTE3MDg2MTQyIHJnPXdpdHplCn4jISB0aWQ9OTE3MDI5ODQyCkphLCBoYWIgaWNoIGdyYWQgZXJzdCBhdWYgZWluZXIgU3BlaXNla2FydGUgaW0gUmVzdGF1cmFudCBlbnRkZWNrdCB1bmQgd2FyCnNlaHIgYW5nZXRhbiBkYXZvbiA6KQoKaioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUkw6IEFiZW50ZXVyaXNzaW1vIChHdWlsZG8sIDI1LiBKYW4gMTk5OSwgMDk6MTk6NDkpOgp+IyEgcm49SmFtZXNvbiBydD05MTcwMzAxMjcgcmc9d2l0emUKfiMhIHRpZD05MTcwMjk4NDIKSWNoIGhhYiBlaW4gS29jaGJ1Y2ggbmFtZW5zICJLb2NoZW4gZnVlciBLaW5kZXIiOyBkYXJpbiBpc3QgZWluIFJlemVwdCBmdWVyCiJad2VyZ2Vuc2Nobml0emVsIi4gRGEgd2lyZCBtaXIgaW1tZXIgZ2FueiBhbmRlcnMuLi4KCgpHdWlsZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClByb2YtV2l0eiAoRGllZGVyLCAyNS4gSmFuIDE5OTksIDE0OjU3OjM3KToKUHJvZjogIldhcyBpc3QgQWdpbz8iClN0dWRlbnQ6ICJXZWlzcyBpY2ggbmljaHQuIgpQcm9mOiAiT0ssIGR1cmNoZ2VmYWxsZW4hClN0dWRlbnQ6ICJJY2ggaGFiZSBhYmVyIEFuc3BydWNoIGF1ZiBkcmVpIEZyYWdlbiBpbiBkZXIgbXVlbmRsaWNoZW4KUHJ1ZWZ1bmchClByb2Y6ICJLbGFyLi4uLCB3YXMgaXN0IERpc2FnaW8/IgpTdHVkZW50OiAiLi4uIgpQcm9mOiAiLi4udW5kIHdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEFnaW8gdW5kIERpc2FnaW8/CiJTdHVkZW50OiAiLi4uIgpQcm9mOiAiLi4uZHVyY2hnZWZhbGxlbiEiCihiZWkgZWluZXIgbXVlbmRsaWNoZW4gTmFjaHBydWVmdW5nIGluIEJXTCwgVW5pIEhhbWJ1cmcpCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQcm9mLVdpdHogKFdpbGhlbG0sIDI1LiBKYW4gMTk5OSwgMTU6NTU6NDIpOgp+IyEgcm49RGllZGVyIHJ0PTkxNzI3NjI1NyByZz13aXR6ZQp+IyEgdGlkPTkxNzI3NjI1NwoKTWVya3d1ZXJkaWcsIGRlciBnbGVpY2hlIFdpdHogd2lyZCBiZWkgdW5zIGluIE1SIGhlcnVtZXJ6YWVobHQuLi4KQWJlciBhbmdlYmxpY2ggaXN0IGRlciBkYXp1Z2Vob2VyaWdlIFByb2YuIG5pY2h0IG1laHIgZGEuLi4KCkxldi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktyb2tvZGlsZSAoQXp6dXJvLCAyNS4gSmFuIDE5OTksIDE2OjAyOjU5KToKQSBndXkgd2Fsa3MgaW50byBhIGJhciB3aXRoIGEgcGV0IGFsbGlnYXRvciBieSBoaXMgc2lkZS4gSGUgcHV0cyB0aGUgYWxsaWdhdG9yCnVwIG9uIHRoZSBiYXIuIEhlIHR1cm5zIHRvIHRoZSBhc3RvbmlzaGVkIHBhdHJvbnMuCkknbGwgbWFrZSB5b3UgYSBkZWFsLiBJIHdpbGwgb3BlbiB0aGlzIGFsbGlnYXRvcidzIG1vdXRoIGFuZCBwbGFjZSBteSBnZW5pdGFscwppbnNpZGUuIFRoZW4gdGhlIGdhdG9yIHdpbGwgY2xvc2UgaGlzIG1vdXRoIGZvciBvbmUgbWludXRlLiBIZSB3aWxsIHRoZW4gb3BlbgpoaXMgbW91dGggYW5kIEkgd2lsbCByZW1vdmUgbXkgdW5pdCB1bnNjYXRoZWQuIEluIHJldHVybiBmb3Igd2l0bmVzc2luZyB0aGlzCnNwZWN0YWNsZSwgZWFjaCBvZiB5b3Ugd2lsbCBidXkgbWUgYSBkcmluay4KVGhlIGNyb3dkIG11cm11cmVkIHRoZWlyIGFwcHJvdmFsLiAKVGhlIG1hbiBzdG9vZCB1cCBvbiB0aGUgYmFyLCBkcm9wcGVkIGhpcyB0cm91c2VycywgYW5kIHBsYWNlZCBoaXMgcHJpdmF0ZXMgaW4KdGhlIGFsbGlnYXRvcidzIG9wZW4gbW91dGguIFRoZSBnYXRvciBjbG9zZWQgaGlzIG1vdXRoIGFzIHRoZSBjcm93ZCBnYXNwZWQuCkFmdGVyIGEgbWludXRlLCB0aGUgbWFuIGdyYWJiZWQgYSBiZWVyIGJvdHRsZSBhbmQgcmFwcGVkIHRoZSBhbGxpZ2F0b3IgaGFyZCBvbgp0aGUgdG9wIG9mIGl0cyBoZWFkLiBUaGUgZ2F0b3Igb3BlbmVkIGhpcyBtb3V0aCBhbmQgdGhlIG1hbiByZW1vdmVkIGhpcwpnZW5pdGFscyB1bnNjYXRoZWQgYXMgcHJvbWlzZWQuClRoZSBjcm93ZCBjaGVlcmVkIGFuZCB0aGUgZmlyc3Qgb2YgaGlzIGZyZWUgZHJpbmtzIHdhcyBkZWxpdmVyZWQuIFRoZSBtYW4Kc3Rvb2QgdXAgYWdhaW4gYW5kIG1hZGUgYW5vdGhlciBvZmZlci4KIkknbGwgcGF5IGFueW9uZSAkMTAwIHdobydzIHdpbGxpbmcgdG8gZ2l2ZSBpdCBhIHRyeSIuCkEgaHVzaCBmZWxsIG92ZXIgdGhlIGNyb3dkLiBBZnRlciBhIHdoaWxlLCBhIGhhbmQgd2VudCB1cCBpbiB0aGUgYmFjayBvZiB0aGUKYmFyLiBBIGJsb25kZSB3b21hbiB0aW1pZGx5IHNwb2tlIHVwLiAKIkknbGwgdHJ5LCBidXQgeW91IGhhdmUgdG8gcHJvbWlzZSBub3QgdG8gaGl0IG1lIG9uIHRoZSBoZWFkIHdpdGggdGhlIGJlZXIKYm90dGxlIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnBoeXNpa2VyIChEaWVkZXIsIDI2LiBKYW4gMTk5OSwgMTI6NTY6NTkpOgpQaHlzaWtwcnVlZnVuZy4gUHJ1ZWZlcjogIlBydWVmbGluZywgd2VubiBpY2ggSWhuZW4gamV0enQgZWluIEJhcm9tZXRlciBnYWViZSwKd2llIHd1ZXJkZW4gU2llIGRhbWl0IGRpZSBIb2VoZSBkaWVzZXMgSGF1c2VzIG1lc3Nlbj8iClBydWVmbGluZzoiSWNoIHd1ZXJkZSBkYW1pdCBhdWZzIERhY2ggZ2VoZW4sIGVzIGZhbGxlbiBsYXNzZW4gdW5kIGRpZSBTZWt1bmRlbgp6YWVobGVuLi4uIgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogcGh5c2lrZXIgKFllbmRpLCAyNi4gSmFuIDE5OTksIDE1OjMwOjQ4KToKfiMhIHJuPURpZWRlciBydD05MTczNTU0MTkgcmc9d2l0emUKfiMhIHRpZD05MTczNTU0MTkKRGVyIGdpbmcgZG9jaCBhbmRlcnM6CgooQXVzIGRlbSBHZWRhZWNodG5pcywgYWxzbyBvaG5lIEdhcmFudGllLCBHZXdhZWhyIG9kZXIgYWVobmxpY2hlcykKCkFscyBpY2ggaW4gbWVpbmVtIEJ1ZXJvIGdlcmFkZSBlaW4gcGFhciBLbGF1c3VyYXVmZ2FiZW4genVzYW1tZW5zdGVsbHRlLAprbG9wZnRlIGVpbiBLb2xsZWdlLCBkZXIgdW0gbWVpbmUgSGlsZmUgYmF0LiBBbnNjaGVpbmVuZCBoYXR0ZSBlciBnZXJhZGUgZWluZW4KU3R1ZGVudGVuIGluIGVpbmVyIG11ZW5kbGljaGVuIFBydWVmdW5nLCBkZXNzZW4gUGh5c2lrd2lzc2VuIGVyIG5pY2h0IG9obmUKd2VpdGVyZXMgZWluc2NoYWV0emVuIGtvbm50ZS4gSWNoIGZvbGd0ZSBhbHNvIG1laW5lbSBLb2xsZWdlbiBpbiBzZWluIFppbW1lcgp1bmQgc3RlbGx0ZSBtaWNoIGRlbSBQcnVlZmxpbmcgdm9yLiBEaWVzZXIgaGF0dGUgZGllIEF1ZmdhYmUgZXJoYWx0ZW4sIG1pdApIaWxmZSBlaW5lcyBCYXJvbWV0ZXJzIGRpZSBIb2VoZSBlaW5lcyBIb2NoaGF1c2VzIHp1IGJlc3RpbW1lbiwgdW5kIGFscwpBbnR3b3J0IGdhYiBlcjogIkljaCBzdGVsbGUgZGFzIEJhcm9tZXRlciBuZWJlbiBkYXMgSGF1cywgbWVzc2UgZGllIEhvZWhlIGRlcwpCYXJvbWV0ZXJnZWhhZXVzZXMsIG1lc3NlIGRpZSBMYWVuZ2UgZGVzIEJhcm9tZXRlcnNjaGF0dGVucyB1bmQgZGVzCkhvY2hoYXVzc2NoYXR0ZW5zLCB1bmQgZGFubiBsaWVmZXJ0IGVpbiBlaW5mYWNoZXIgRHJlaXNhdHogZGllIEhvZWhlIGRlcwpHZWJhZXVkZXMuIgpJY2ggbXVzc3RlIHp1Z2ViZW4sIGRhc3MgZGllc2UgQW50d29ydCwgb2JnbGVpY2gga29ycmVrdCwgbmljaHQgYXVzcmVpY2h0ZSwgdW0KZGllIFBoeXNpa2tlbm50bmlzc2UgZGVzIFBydWVmbGluZ3MgenUgZXJtaXR0ZWxuLiBXaXIga2FtZW4gYWxzbyB1ZWJlcmVpbiwKZGFzcyBkZXIgU3R1ZGVudCB6ZWhuIE1pbnV0ZW4gWmVpdCBoYWV0dGUsIHNpY2ggZWluZSBuZXVlIExvZXN1bmcgZWluZmFsbGVuIHp1Cmxhc3NlbiwgZGllIGJlc3NlciBnZWVpZ25ldCBzZWluIHNvbGx0ZSwgc2VpbiBGYWNod2lzc2VuIHp1IGJldXJ0ZWlsZW4uCkRlciBLYW5kaWRhdCBzYXNzIHVuZ2VmYWVociBhY2h0IE1pbnV0ZW4gZGEsIHJ1bnplbHRlIGRpZSBTdGlybiwga2F1dGUgYW4Kc2VpbmVtIEJsZWlzdGlmdCB1bmQgbWFjaHRlIGtlaW5lcmxlaSBBbnN0YWx0ZW4sIGVpbmUgQW50d29ydCB6dSBmb3JtdWxpZXJlbi4KCk1laW4gS29sbGVnZSB1bmQgaWNoIHd1cmRlbiBzY2hvbiB1bnJ1aGlnLCBkYSwgZW5kbGljaCwgbmlja3RlIGRlciBqdW5nZSBNYW5uLApzY2hyaWViOiAiZCA9IDEvMiBnIHReMiIsIHVuZCBzcHJhY2g6ICJJY2ggZ2VoZSBhdWYncyBEYWNoLCBsYXNzZSBkYXMKQmFyb21ldGVyIGZhbGxlbiwgdW5kIGF1cyBkZXIgRmFsbHplaXQgZXJyZWNobmUgaWNoIGRhbm4gZGllIEhhdXNob2VoZS4iCgpEaWUgUHJ1ZWZ1bmcgd2FyIGJlc3RhbmRlbi4KQXVmIGRlbSBXZWcgbmFjaCB1bnRlbiBmcmFndGUgaWNoIGRlbiBTdHVkZW50ZW4sIHdvcnVlYmVyIGVyIHNvIGxhbmdlCm5hY2hnZWRhY2h0IGhhYmUuIEVyIGVudGdlZ25ldGUsIGRhc3MgZXIgc2ljaCBlaW5mYWNoIG5pY2h0IGhhYmUgZW50c2NoZWlkZW4Ka29lbm5lbiwgd2VsY2hlIEFudHdvcnQgZXIgd2FlaGxlbiBzb2xsZS4gRXJzdGF1bnQgZnJhZ3RlIGljaCBpaG4sIHdhcyBmdWVyCmFuZGVyZSBNb2VnbGljaGtlaXRlbiBlciBkZW5uIGluIEVyd2FlZ3VuZyBnZXpvZ2VuIGhhYmUuIEVyIHNhZ3RlOgoiT2gsIHp1bmFlY2hzdCBlaW5tYWwga2FubiBtYW4gbmF0dWVybGljaCBkZW4gRHJ1Y2sgYW0gQm9kZW4gdW5kIGF1ZiBkZW0gRGFjaAptZXNzZW4gdW5kIGRhcnVlYmVyIGRlbiBIb2VoZW51bnRlcnNjaGllZCBlcnJlY2huZW4uIERlc3dlaXRlcmVuIGtvZW5udGUgbWFuCmRhcyBCYXJvbWV0ZXIgYWxzIFBlbmRlbGdld2ljaHQgZWluc2V0emVuLCBkaWUgUGVuZGVscGVyaW9kZSBhbSBCb2RlbiB1bmQgYXVmCmRlbSBEYWNoIG1lc3NlbiB1bmQgdWViZXIgZGVuIFVudGVyc2NoaWVkIGluIGRlciBTY2h3ZXJrcmFmdCBkaWUgSG9laGUKZXJtaXR0ZWxuLiBNYW4ga29lbm50ZSBhYmVyIGF1Y2ggaW0gVHJlcHBlbmhhdXMgZW1wb3JsYXVmZW4gdW5kIG1pdCBBbmxlZ2VuCmRlcyBCYXJvbWV0ZXJzIGRpZSBIb2VoZSBkZXMgVHJlcHBlbmhhdXNlcyBpbiBCYXJvbWV0ZXJnZWhhZXVzZWVpbmhlaXRlbgptZXNzZW4sIHdhcyBtYW4gZGFubiB3aWVkZXIgYXVmIE1ldGVyIHVtcmVjaG5lbiBrYW5uLiBVbmQgc2NobGllc3NsaWNoIGthbm4KbWFuIG5hdHVlcmxpY2ggenVtIEhhdXNtZWlzdGVyIGdlaGVuIHVuZCBzYWdlbjogJ0d1dGVyIE1hbm4sIHNpZSBrcmllZ2VuCmRpZXNlcyBzY2hvZW5lLCBuZXVlIEJhcm9tZXRlciwgd2VubiBzaWUgbWlyIHNhZ2VuLCB3aWUgaG9jaCBkaWVzZXMgSG9jaGhhdXMKaXN0LiciCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHBoeXNpa2VyIChEaWVkZXIsIDI2LiBKYW4gMTk5OSwgMTU6MzM6MDkpOgp+IyEgcm49WWVuZGkgcnQ9OTE3MzY0NjQ4IHJnPXdpdHplCn4jISB0aWQ9OTE3MzU1NDE5CmhtLCBkaWVzZSBWYXJpYW50ZSBpc3QgbmF0dWVybGljaCBiZXNzZXIuLi4ga2FubnRlIGljaCBub2NoIG5pY2h0IDotKSkKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogcGh5c2lrZXIgKE1vcmdvbmF0ZSwgMjYuIEphbiAxOTk5LCAxNzowODozNCk6Cn4jISBybj1EaWVkZXIgcnQ9OTE3MzY0Nzg5IHJnPXdpdHplCn4jISB0aWQ9OTE3MzU1NDE5Ck5hamEsIGljaCBrZW5uZSBkYXMgaGFsdCBtaXQ6IFdpZSBtaXNzdCBtYW4gZGllIEhvZWhlIGVpbmVzIEhhdXNlcyBtaXQgZWluZXIKU3RvcHVociB1bmQgZWluZW0gVGhlcm1vbWV0ZXIuIAoKTW9yZ29uYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBYmVuZG1haGwgKERpZWRlciwgMjcuIEphbiAxOTk5LCAxNToxOToxMik6CkRhcyBoZWlsaWdlIEFiZW5kbWFobC4gSmVzdXMgc3RlaHQgYXVmIHVuZCBzcHJpY2h0OiAKIkxhc3NldCB1bnMgdHJpbmtlbiBhdWYgSm9oYW5uZXMsIGRlciBzY2hvbiB0YXVzZW5kCk1lbnNjaGVuIGdldGF1ZnQgaGF0LiIgCkVzIHdpcmQgbmFjaGdlc2NoZW5rdC4gV2llZGVyIHN0ZWh0IGVyIGF1ZiB1bmQgc3ByaWNodDogCiJMYXNzZXQgdW5zIHRyaW5rZW4gYXVmIFBldHJ1cywgZGVyIHdpZSBlaW4gRmVscyBpbiBkZXIKQnJhbmR1bmcgc3RlaHQuIiAKV2llZGVyIHRyaW5rZW4gYWxsZSBhdXMuIFVuZCBlaW4gd2VpdGVyZXMgTWFsIHN0ZWh0IGRlcgpHb3R0ZXNzb2huIGF1ZiB1bmQgc3ByaWNodCB6dSBkZW4gSnVlbmdlcm46IAoiVW5kIGpldHp0IGxhc3NldCB1bnMgdHJpbmtlbiBhdWYgSnVkYXMsIGRlciBtaWNoIGRlcmVpbnN0CnZlcnJhdGVuIHdpcmQuIiAKRGFyYXVmIEp1ZGFzOiAiSmVzdXMsIGhvZXIgYXVmLiBKZWRlc21hbCB3ZW5uIER1IGJlc29mZmVuCmJpc3QsIGZhZW5nc3QgRHUgYW4genUgc3RhZW5rZXJuLi4uIiAKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29tcHV0ZXJrdXJzIGZ1ZXIgR2VybWFuaXN0ZW4gKERpZWRlciwgMjkuIEphbiAxOTk5LCAxMzo1NjozMCk6CkNvbXB1dGVybGVocmdhbmc6CgogRGVuIG1laXN0ZW4gdm9uIHVucyBpc3Qga2xhciwgZGFzcyBkYXMKIGVuZ2xpc2NoZSBXb3J0IENvbXB1dGVyIHZvbSBWZXJiIHRvIGNvbXB1dGUKIChyZWNobmVuLCBzY2hhZXR6ZW4pIGtvbW10LCBkYXNzIGVpbiBDb21wdXRlcgogYWxzbyBlaW4gUmVjaG5lciBvZGVyIFNjaGFldHplciBpc3QuIEFiZXIgbm9jaAogaW1tZXIgZ2lidCBlcyB2aWVsZSBaZWl0Z2Vub3NzZW4sIGRpZSB2aWVsbGVpY2h0CiBnZXJhZGUgZXJzdCBhbmZhbmdlbiwgc2ljaCBtaXQgZGllc2VtCiBrb21wbGV4ZW4gVGhlbWEgZXR3YXMgbmFlaGVyIHp1IGJlZmFzc2VuLgogRGllc2VyIEFydGlrZWwgc29sbCBhbGwgamVuZW4gaGVsZmVuLCBkaWUgbmljaHQgbWl0CiBlaW5lbSBTcGllbGJ1YmVuIGF1Zmdld2FjaHNlbiBzaW5kLCB1bmQgZGllCiBuaWNodCBzY2hvbiB2b24gS2luZCBhdWYgYWxsIGRpZXNlCiB2ZXJ3aXJyZW5kZW4gQmVncmlmZmUgd2llIGVpbmUgTXV0dGVyc3ByYWNoZQogYXVmIG5hdHVlcmxpY2hlbSBXZWdlIGVybGVybmVuIGtvbm50ZW4uCgogTXV0dGVyYnJldHQgdW5kIFJpZXNlbmJpc3M6CiBCZWdpbm5lbiB3aXIgdmllbGxlaWNodCBtaXQgZGVuIGVpbmZhY2hlbgogRGluZ2VuLCBkaWUgd2lyIHNlaGVuLCBhbmZhc3NlbiB1bmQgZGFtaXQKIGF1Y2ggbm9jaCBiZWdyZWlmZW4ga29lbm5lbiEgQWxsZSBCYXVzdGVpbmUKIGVpbmVzIFNjaGFldHplcnMgd2VyZGVuIGFscyBIYXJ0d2FyZQogYmV6ZWljaG5ldC4gRXMgaXN0IHNlaHIgd2ljaHRpZywgYmVpIGRlciBBdXN3YWhsCiBkZXIKIEhhcnR3YXJlIHNvcmdzYW0genUgc2VpbiwgZGVubiBudXIgYXVmIGd1dGVyCiBIYXJ0d2FyZSBrYW5uIGRpZSBXZWljaHdhcmUgcmljaHRpZyBzY2huZWxsCiBsYXVmZW4uIEJlaSBkZXIgSGFydHdhcmUgaXN0IGRhcyBNdXR0ZXJicmV0dCB2b24KIGJlc29uZGVyZXIgQmVkZXV0dW5nLiBEYXMgTXV0dGVyYnJldHQgc29sbAogdW50ZXIgYW5kZXJlbSBtaXQgZWluZW0gU2Nobml0enNhdHogdm9uIEludGVsCiBhdXNnZXJ1ZXN0ZXQgc2Vpbi4gRGllIGdsZWljaGUgRmlybWEgc29sbHRlIGF1Y2gKIGRpZSBaVkUgKFplbnRyYWxlIFZvcmFuc2NocmVpdHVuZ3MtRWluaGVpdCkKIGdlbGllZmVydCBoYWJlbi4KIERhbWl0IHdpciB1bnMgYmVpIGRlciBBcmJlaXQgcmljaHRpZyB3b2hsIGZ1ZWhsZW4sCiBzb2xsdGVuIHdpciBlaW5lbiAxNy1EYXVtZW5sYW5nLVZvcnplaWdlcgogdW5kIGVpbiBvcmRlbnRsaWNoZXMgU2NobHVlc3NlbGJyZXR0IGRhenVsZWdlbi4KIERhbWl0IGF1Y2ggYW5zcHJ1Y2hzdm9sbGUgV2VpY2h3YXJlIGVpbmUKIGd1dGUgVm9yZnVlaHJ1bmcgemVpZ3QsIG11ZXNzZW4gbWluZGVzdGVucyAzMgogUmllc2VuYmlzcyBFcmlubmVydW5nIGVpbmdlYmF1dCBzZWluLiBOYXR1ZXJsaWNoCiBnZWhvZXJ0IG5lYmVuIGRlbQogMyw1LURhdW1lbmxhbmctU2NobGFwcHNjaGVpYmVudHJlaWJlciBhdWNoCiBlaW5lIERpY2h0c2NoZWliZW4tTGVzZS1OdXItRXJpbm5lcnVuZyB6dXIKIEdydW5kYXVzcnVlc3R1bmcuIAogRWluZSBIYXJ0c2NoZWliZSBtaXQgdmllciBHaWdhbnRpc2NoYmlzcyBkdWVyZnRlCiBmdWVyIGRpZSBuYWVjaHN0ZW4gendlaSBiaXMgZHJlaSBKYWhyZQogYXVzcmVpY2hlbmQgRXJpbm5lcnVuZ3NwbGF0eiBmdWVyIFdlaWNod2FyZQogdW5kIERhdGVuIGJpZXRlbi4gV2VubiB3aXIgdW5zZXJlbiBQUwogKFBlcnNvZW5saWNoZW4gU2NoYWV0emVyKSBhdWNoIHp1bSBTcGllbGVuCiBiZW51dHplbiB3b2xsZW4sIHNvbGx0ZW4gd2lyIHVucyBuZWJlbiBkZXIKIE1hdXMgYXVjaCBub2NoIGVpbmVuIEZyZXVkZW5zdG9jayB1bmQgZWluCiBndXRlcyBTY2hhbGxicmV0dCBhbnNjaGFmZmVuLgoKIFdpbnppZ3dlaWNoIHVuZCBLcmFmdHB1bmt0OgogU28sIGRhbWl0IHNpbmQgbnVuIGRpZSBvcHRpbWFsZW4gR3J1bmRsYWdlbgogZnVlciBFaW5iYXUgdW5kIEJldHJpZWIgZGVyIFdlaWNod2FyZQogZ2VzY2hhZmZlbiEgRGFtaXQgZGllIFdlaWNod2FyZSBhdWYgdW5zZXJlcgogSGFydHdhcmUgdWViZXJoYXVwdCBsYXVmZW4ga2FubiwgYnJhdWNodCBlcyBlaW4KIEJldHJpZWJzc3lzdGVtLiBFcyBlbXBmaWVobHQgc2ljaCBoZXV0ZSwgZWluCiBzb2xjaGVzIG1pdCBlaW5lbSBncmFmaXNjaGVuCiBCZW51dHplci1ad2lzY2hlbmdlc2ljaHQgenUgaW5zdGFsbGllcmVuLgogQmVzb25kZXJzIHZlcmJyZWl0ZXQgc2luZCBkaWUgU3lzdGVtZQogV2luemlnd2VpY2gtRmVuc3RlciAzLjEgdW5kIGRhcyBuZXVlcmUKIEZlbnN0ZXIgOTUgZGVzIGdsZWljaGVuIEhlcnN0ZWxsZXJzIChHZXJ1ZWNodGVuCiB6dWZvbGdlIHNvbGwgdWVicmlnZW5zIG5vY2ggaW4gZGllc2VtIEphaHIgZGFzCiBicmFuZG5ldWUgRmVuc3RlciA5OCBtaXQgaW50ZWdyaWVydGVtCiBad2lzY2hlbm5ldHotRXJmb3JzY2hlciBlcnNjaGVpbmVuIC0KIGxldHp0ZXJlcyBpc3QgYWVyZ2VybGljaCBmdWVyIExldXRlLCBkaWUgbGllYmVyIG1pdAogZGVtIE5ldHpzY2hhZnQtU2NoaWZmc2Z1ZWhyZXIgd2VsbGVucmVpdGVuCiB3b2xsZW4pLgogV2luemlnd2VpY2gtU3lzdGVtZSBoYWJlbiBkaWUgRWlnZW5hcnQsIG9lZnRlcgogbWFsIGVpbmVuIEtyYWNoIHp1IHZlcnVyc2FjaGVuLiBEYW5uIG11ZXNzZW4KIHNpZSBuZXUgZ2VzdGllZmVsdCB3ZXJkZW4uIFNjaGxhZWdlciB2ZXJ6aWNodGVuCiBhdWYgZWluIGdyYWZpc2NoZXMgWndpc2NoZW5nZXNpY2h0IHVuZAogYmV2b3J6dWdlbiBlaW4gYWx0ZXMsCiBCZWZlaGxzbGluaWVuLUF1c2RldXRlci1vcmllbnRpZXJ0ZXMKIFZpZWxmYWNoYmVhdWZnYWJ1bmdzLUJldHJpZWJzc3lzdGVtIG5hbWVucwogRWluaGVpdGxpeCwgd2VpbCBzaWUgYmVoYXVwdGVuLCBzaWUgd3Vlc3N0ZW4KIHNjaG9uLCB3YXMgc2llIHR1bi4KIEVpbmhlaXRsaXggaGF0IGRlbiBWb3J0ZWlsLCBkYXNzIGVzIGF1ZgogdmVyc2NoaWVkZW5lbiBTY2hhZXR6ZXJuIG1pdCB1bnRlcnNjaGllZGxpY2hlbgogWlZFcyBsYWV1ZnQuIEF1Y2ggYXVmIGFlbHRlcmVuIEdlcmFldGVuIGhhdCBlcwogZWluZSBndXRlIFZvcmZ1ZWhydW5nLiBFaW5oZWl0bGl4IGlzdCBmdXJjaHRiYXIKIHVtc3RhZW5kbGljaCB6dSBiZWRpZW5lbiwgYWJlciBkZXIgU2NobGFlZ2VyCiBrYW5uIGRhbWl0IGFsbGVzIG1hY2hlbiwgd2FzIGVyIHdpbGwuIFp1bQogQmVpc3BpZWwgZ2FueiBzY2huZWxsIGRlbiBTY2hhZXR6ZXIga2FwdXR0LgogRnVlciBMZXV0ZSwgZGllIG1pdCBpaHJlbSBTY2hhZXR6ZXIKIGFuc3BydWNoc3ZvbGxlIEF1ZmdhYmVuIGVybGVkaWdlbiB3b2xsZW4sIGdpYnQKIGVzIHVudGVyIEZlbnN0ZXIgOTUgZGFzIGJlcnVlaG10ZSBCdWVybwogZmFjaG1hZW5uaXNjaCA5NS4gRGllc2VzIEVyemV1Z25pcyBiZXN0ZWh0IGF1cwogZGVuIG5ldWVzdGVuIEF1c2dhYmVuIGRlciBXZWljaHdhcmVuIFdvcnQsCiBcYmVydHJlZmYsIEtyYWZ0cHVua3QgdW5kIFp1Z3JpZmYuIERhbWl0IHN0ZWhlbgogZGVtIEJlbnV0emVyIGFsbGUgd2ljaHRpZ2VuIEZ1bmt0aW9uZW4gd2llCiBXb3J0dmVyZWRlbHVuZywgQXVzYnJlaXRibGF0dCwKIFByYWVzZW50YXRpb25zZ3JhZmlrIHVuZAogRGF0ZW5zdHVldHpwdW5rdC1CZWhhbmRsdW5nIHp1ciBWZXJmdWVndW5nLgogVmllbCBiaWxsaWdlciBpc3QgZGFzIFN0ZXJuZW4tQnVlcm8gdm9uIGRlcgogSGFtYnVyZ2VyIEZpcm1hIFN0ZXJuZW4tQWJ0ZWlsdW5nLCBkYXMgZXMKIGF1Y2ggZnVlciBFaW5oZWl0bGl4IGdpYnQuIFNlaHIgYmVsaWVidCBzaW5kIGF1Y2gKIGRlciBTdW1wZmJsdWV0ZW4tT3JnYW5pc2llcmVyIHVuZAogU2NoaWNodGthZXNlLUF1c2RydWVjaywgZGFzIGZ1ZXIKIFRpc2NocGxhdHRlbi1WZXJvZWZmZW50bGljaHVuZyBnZWJyYXVjaHQgd2lyZC4KCiBBdWZzdGVsbGVyIHVuZCBFaW5zZXR6ZXI6CiBXZXIgc2VsYnN0IGdlcm5lIEFud2VuZHVuZ2VuIGVudHdpY2tlbHQsCiBrYW5uIGRpZXMgdW50ZXIgRmVuc3RlciBiZWlzcGllbHN3ZWlzZSBtaXQgZGVtCiBtb2Rlcm5lbiBTaWNodGJhciBHcnVuZGxlZ2VuZCB0dW4uIE5hdHVlcmxpY2gKIGdpYnQgZXMgdm9yIGRlbSBHZWJyYXVjaCBhdWNoIGdld2lzc2UKIEhpbmRlcm5pc3NlIHp1IHVlYmVyd2luZGVuLiBEaWUgV2VpY2h3YXJlCiBtdV8genVlcnN0IHZpYSBBdWZzdGVsbGVyIG9kZXIgRWluc2V0emVyIGF1ZiBkZXIKIEhhcnRzY2hlaWJlIGVpbmdlcmljaHRldCB3ZXJkZW4uIERhcyBrYW5uCiBzZWhyIHZpZWwgWmVpdCBicmF1Y2hlbiwgd2VubiBzaWUgdXJzcHJ1ZW5nbGljaAogYXVmIFNjaGxhcHBzY2hlaWJlbiBnZWxpZWZlcnQgd3VyZGUuCkRhcwogRWlucmljaHRlbiBhYiBEaWNodHNjaGVpYmUgaXN0IHNlaHIgdmllbAogYW5nZW5laG1lciB1bmQgc2NobmVsbGVyLiBMZWlkZXIgc3RlbGxlbiBhYmVyCiBhdWNoIGhpZXIgZGllIEF1ZnN0ZWxsZXIgb2Z0IEZyYWdlbiwgZGllIHZvbgogdmllbGVuIHVtc3RhZW5kbGljaGVuIEJlZ3JpZmZlbiBudXIgc28gd2ltbWVsbi4KCiBBYmVyIGRpZSB3b2xsZW4gd2lyIHVucyBlaW4gYW5kZXJtYWwKIHZvcm5laG1lbi4KCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZvb3RlciAoZW5nbGlzY2gpIChSaW5nb3IsICAxLiBGZWIgMTk5OSwgMTE6MDE6MzYpOgpFYmVuIGluIGVpbmVyIE1haWxpbmdsaXN0IGdlZnVuZGVuOgoKLS0tCihBU1ApIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiAoTVNGVCkgYW5ub3VuY2VkIHRvZGF5IHRoYXQgdGhlIHJlbGVhc2Ugb2YgaXRzIApwcm9kdWN0aXZpdHkgc3VpdGUsIE9mZmljZSAyMDAwLCB3aWxsIGJlIGRlbGF5ZWQgdW50aWwgdGhlIGZpcnN0IHF1YXJ0ZXIKb2YgMTkwMS4KClJpbmdvciBkZW5rdCAuIG8gTyhpcmdlbmR3aWUgdHJlZmZlbmQgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdXBlcnVzZXIgKFphcm5peWEsICAyLiBGZWIgMTk5OSwgMTc6NDE6MDApOgoKSGksIAoKdmllbGUgRnJhZ2VuIGJpbiBpY2ggaW4gZGVyIEJlcmF0dW5nIGRlcyBSWnMgZ2V3b2hudCwgYWJlciBkaWUgS3JvZW51bmcgd2FyCmViZW46CgoiV28gaXN0IGRlbm4gaGllciBkZXIgQXVzZ2FuZyBhdXMgZGVtIEdlYmFldWRlPyIuCgpJY2ggc3VjaCBqZXR6dCBub2NoIGluIGRlciBGQVEgOikKCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYW56IEZ1Y2hzIFdpdHplIChEaWVkZXIsICA0LiBGZWIgMTk5OSwgMTU6NDc6NTMpOgpXYXJ1bSBtdXNzIEZGIGJlaW0gVmVyaG9lciBkaWUgQXJtZSBpbiBkaWUgSG9laGUgaGFsdGVuPwpEYW1pdCBlciBkaWUgSGFuZHNjaGVsbGVuIG5pY2h0IHZlcmxpZXJ0LgoKV2FydW0gaGF0IEZGIFZpYWdyYSBiZWtvbW1lbj8KRGFtaXQgZXIgZWlnZW5zdGFlbmRpZyB1cmluaWVyZW4ga2Fubi4KCkZGIGhhdCBiZWkgZGVuIE5hemlzIGJlYW50cmFndCwgZGFzcyBtYW4gZXJzYXR6d2Vpc2UgYXVjaCBkYXMKcmVjaHRlIEJlaW4genVtIEhpdGxlcmdydXNzIGhvY2hyZWlzc2VuIGRhcmYuIER1bW1lcndlaXNlCmZhZWxsdCBlciBpbW1lciBub2NoIGRhYmVpIHVtLgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnJhbnogRnVjaHMgV2l0emUgKEtleSwgIDQuIEZlYiAxOTk5LCAxNTo0OTowNyk6Cn4jISBybj1EaWVkZXIgcnQ9OTE4MTQzMjczIHJnPXdpdHplCn4jISB0aWQ9OTE4MTQzMjczClVuIHdlciBpcyBGRj8KCktleQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGcmFueiBGdWNocyBXaXR6ZSAoSmlkZHUsICA0LiBGZWIgMTk5OSwgMTU6NTA6MDMpOgp+IyEgcm49S2V5IHJ0PTkxODE0MzM0NyByZz13aXR6ZQp+IyEgdGlkPTkxODE0MzI3MwpMYXV0IFVlYmVyc2NocmlmdCBGcmFueiBGdWNocyAuLiBhYmVyIHdlciBpc3QgZGFzPz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnJhbnogRnVjaHMgV2l0emUgKERpZWRlciwgIDQuIEZlYiAxOTk5LCAxNTo1MToxMik6Cn4jISBybj1LZXkgcnQ9OTE4MTQzMzQ3IHJnPXdpdHplCn4jISB0aWQ9OTE4MTQzMjczCmRhcyBpcyBkZXIgQnJpZWZib21iZW5hdHRlbnRhZXRlciBhdXMgT2VzdGVycmVpY2gsIGRlbSBncmFkIGluIEdyYXogZGVyClByb3plc3MgZ2VtYWNodCB3aXJkLiBIYXQgbWVocmVyZSBMZXV0ZSB2ZXJsZXR6dCwgdS5hLiBaaWxrIGRpZSBIYW5kCmFiZ2VyaXNzZW4sIHVuZCBlaW5tYWwgZ2luZ3MgYXVjaCBiZWkgaWhtIHNlbGJzdCBzY2hpZWY6IEJlaWRlIEhhZW5kZQphYmdlcmlzc2VuLgpUamEsIG5lb25hemlzdGlzY2hlIGFsdGUgRHJlY2tzYXUsIGhhdCBzb2dhciBiZWltIFByb3plc3NiZWdpbm4gUGFyb2xlbgpydW1nZXNjaHJpZW4sIHNvZGFzcyBlciBzY2hsaWVzc2xpY2ggYXVzIGRlbSBTYWFsIGVudGZlcm50IHdlcmRlbiBtdXNzdGUuClVudGVyIGFuZGVyZW0gZGFzIEF0dGVudGF0IGF1ZiBBcmFiZWxsZSBLaWVzYmF1ZXIgKFBybzcpIHdhciB3b2hsIGF1Y2ggdm9uCmlobS4KCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaXRhbGllbmlzY2ggZXNzZW4gKERpZWRlciwgIDUuIEZlYiAxOTk5LCAxNDo1NTo1NSk6ClBhZXJjaGVuIGJlaW0gSXRhbGllbmVyLCBkZXIgT2JlciBuaW1tdCBkaWUgQmVzdGVsbHVuZyBhdWYuClNpZTogIkVpbm1hbCBUb3J0ZWxsaW5pIGZ1ZXIgbWVpbmVuIE1hY2tlciEiCkVyOiAiRWlubWFsIE1ha2thcm9uaSBmdWVyIG1laW5lIFRvcnRlLi4uIgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWZhZW5nbmlzIChEaWVkZXIsICA4LiBGZWIgMTk5OSwgMTk6NDQ6MTkpOgpFaW5lcyBUYWdlcyBpbiBTaW5nLVNpbmcsIEdlZmFlbmduaXNhcnp0IGdlaHQgdm9uIFplbGxlIHp1IFplbGxlLgpBcnp0OiAiU3R1aGw/IgpHZWZhbmdlbmVyIDE6ICJHZXN0ZXJuIGV0d2FzIGhhcnQuIjoKQXJ6dDogIlN0dWhsPyIKR2VmYW5nZW5lciAyOiAiSGV1dGUgbm9ybWFsIgpBcnp0OiAiU3R1aGw/IgpHZWZhbmdlbmVyIDM6ICJNb3JnZW4gLSBlbGVrdHJpc2NoIgoKRGllZGVyClBTOiBKYSBpY2ggd2Vpc3MsIGRlciBpcyBzY2hvbiBhZWx0ZXIgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpadWdmYWhydCAoRGllZGVyLCAgOC4gRmViIDE5OTksIDE5OjQ3OjQ4KToKSW0gQWJ0ZWlsIHNpdHplbiBlaW5lIGFsdGUgRGFtZSwgaWhyZSBiaWxkaHVlYnNjaGUgVG9jaHRlciwgZWluIE9lc3RlcnJlaWNoZXIKdW5kIGVpbiBTY2h3ZWl6ZXIuCkFscyBkZXIgWnVnIGluIGVpbmVuIFR1bm5lbCBlaW5mYWVocnQsIGhvZXJ0IG1hbiBmb2xnZW5kZSBHZXJhZXVzY2hlOgoqc2NobWF0eiouLi4qa2xhdHNjaCEqIApEaWUgYWx0ZSBEYW1lIGRlbmt0IHNpY2g6ICJTbyBpc3QncyByZWNodC4gRWluZXIgdm9uIGRlbiBiZWlkZW4gS2VybGVuIHdvbGx0ZQptZWluZSBUb2NodGVyCmt1ZXNzZW4sIHVuZCBzaWUgaGF0IGlobSBkYWZ1ZXIgZWluZSBnZXNjaG1pZXJ0LiIgCkRpZSBUb2NodGVyIGRlbmt0IHNpY2g6ICJXYXMgZnVlciBTY2h3YWNoa29lcGZlLiBXb2xsdGVuIG1pY2gga3Vlc3NlbiwgaGFiZW4KbWVpbmUgTXV0dGVyCmVyd2lzY2h0LCB1bmQgZGllIGhhdCBpaG5lbiBlaW5lICdydW50ZXJnZWhhdWVuLiBTY2hvZW4gYmxvZWQhIgpEZXIgT2VzdGVycmVpY2hlciBkZW5rdCBzaWNoOiAiU28gZWluIE1pc3QhIERlciBUeXAgbmViZW4gbWlyIGhhdCBkaWUga2xlaW5lCmdla3Vlc3N0LCB1bmQgbWlyCmhhdXQgc2llIGRhZnVlciBlaW5lICdydW50ZXIuIiAKRGVyIFNjaHdlaXplciBkZW5rdCBzaWNoOiAiSGFlaGFlLiBJbSBuYWVjaHN0ZW4gVHVubmVsIHNjaG1hdHplIGljaCBtaXIKbm9jaG1hbCBpbiBkaWUgSGFuZCwKdW5kIGRhbm4gaGF1ZSBpY2ggZGVtIE9lc3RlcnJlaWNoZXIgbm9jaCBlaW5lIGluIGRpZSBTY2huYXV6ZSEiIAoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogWnVnZmFocnQgKEFjcmltb24sICA4LiBGZWIgMTk5OSwgMjA6MjA6MDkpOgp+IyEgcm49RGllZGVyIHJ0PTkxODUwMzI2OCByZz13aXR6ZQp+IyEgdGlkPTkxODUwMzI2OApEZXIgZ2VodCBkb2NoIHVyc3BydWVuZ2xpY2ggbWl0IGVpbmVtIEJheWVybiwgZGVyIGRlbSBQcmV1c3plbiBlaW5lCnJ1bnRlcmhhdXQhCktvbW10IHZpZWwgYmVzc2VyIDotKQoKQWNyaW1vbiwgZGVyIFJvdGUgUml0dGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmFkIGdlaG9lcnQgKEthcnRvZmZlbCwgIDguIEZlYiAxOTk5LCAyMTo0NDoxNCk6CgpXZW5uIEhlbG11dCBLb2hsIDE0IFBmdW5kIGFibmltbXQsIGlzdCBkYXMsIGFscyB3ZW5uIGVpbiAzMC1Ub25uZXIgbmUKWmllcmxlaXN0ZSB2ZXJsaWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdyYWQgZ2Vob2VydCwgZGllIFp3ZWl0ZSAoS2FydG9mZmVsLCAgOC4gRmViIDE5OTksIDIxOjU2OjA2KToKCidNZWluZSBGcmF1IGhhdCBkaWUgZ2FuemVuIFZpYWdyYS1QaWxsZW4gemVycmllYmVuIHVuZCBhdWYgZGVtIFJhc2VuCnZlcnRlaWx0Li4uCkpldHp0IGthbm4gaWNoIGRpZSBSZWdlbnd1ZXJtZXIgbWl0IGRlbSBIYW1tZXIgZWluc2NobGFnZW4uJwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nob24gd2FzIGxhZW5nZXIgaGVyIDspIChLYXJ0b2ZmZWwsICA4LiBGZWIgMTk5OSwgMjI6Mjc6MjMpOgoKV2llIG5lbm50IG1hbiBlaW4gdHJhbnNzZXh1ZWxsZXMgUGZlcmQ/CgoKbHJla25ldHV0UyA8LTwtPC08LTwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgZXdpZ2UgVGhlbWEuLi4gKEthZGFicmEsICA4LiBGZWIgMTk5OSwgMjI6MzE6MDApOgpFaW4gTWFubiBnZWh0IGFtIHN0cmFuZCBzcGF6aWVyZW4gdW5kIGZpbmRldCBkb3J0c2VsYnN0ZW4gZWluZQpGbGFzY2hlLiBNdXRpZyBlbnRrb3JrdCBlciBzaWUgdW5kIFVFQkVSUkFTQ0hVTkcgZXMgZW50c2Nod2VidAppaHIgZWluIEdlaXN0LiBEZXIgRGppbm4gdmVybmVpZ3Qgc2ljaCB0aWVmIHVuZCBzcHJpY2h0IDoKRHUgaGFzdCBtaWNoIGJlZnJlaXQsIGljaCB3aWxsIGRpciBtZWluZSBEYW5rYmFya2VpdCBlcndlaXNlbiB1bmQgZGlyCmVpbmVuIFd1bnNjaCBlcmZ1ZWxsZW4uIFNhZ3QgZGVyIE1hbm4gbW1oIGljaCB3b2huZSBpbiBPbXNrLCBnbGVpY2gKYmVpIEltc2sgdW5kIGhhZXR0ZSBnZXJuZSBlaW5lIGR1cmNoZ2VoZW5kZSBBdXRvYmFobiBiaXMgTXVlbmNoZW4uLi4KRGVyIEdlaXN0IGxlZ3Qgc2VpbmUgU3Rpcm4gaW4gRmFsdGVuIHVuZCBndWNrdCB2ZXJsZWdlbiB6dSBCb2Rlbi4KQWxzbyBhZWgsIHNhZ3QgZXIgLCBpY2ggYmluIG5vY2ggZWluIHJlbGF0aXZlciBqdW5nZXIgRGppbm4gdW5kIHdhcwpkdSBkYSB2ZXJsYW5nc3QgLi4gaGFzdCBkdSBuaWNodCBub2NoIGVpbmVuIGFuZGVyZW4gV3Vuc2NoID8KRGVyIE1hbm4gZGVua3QgZWluIHdlbmlnIG5hY2guLiBOdW4gamEgc2FndCBlciBkYSB3YWVyZSBub2NoIGV0d2FzCmljaCBtb2VjaHRlIGdlcm5lIGRpZSBGcmF1ZW4gdmVyc3RlaGVuIC4uLi4uCkRhcmF1ZiBkZXIgR2Vpc3QgOiBXaWUgd2FyIGRhcyBtaXQgZGVyIEF1dG9iYWhuPyBad2Vpc3B1cmlnIG9kZXIgVmllcnNwdXJpZyA/CjspIGthZGFicmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhdWVyYnJlbm5lci4uLiAoQW5hdG9sLCAgOS4gRmViIDE5OTksIDAyOjA0OjM0KToKClZpcGVycyBSYWV1bWUgc2luZCBpbSBNb21lbnQgbmljaHQgenVnYWVuZ2xpY2gsIGRhcyBrYW5uIHNpY2gKYWJlciBzZWhyIHNjaG5lbGwgYWVuZGVybi4KCgpLYW5uIDspIEhhIGhhLiAKQW5hdG9sIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsZWluc3R3ZWljaCB3aWVkZXIgbWFsIDopIChBbmFjcmlvbiwgIDkuIEZlYiAxOTk5LCAwMjowNTo0NCk6CgpQcmVzc2VtaXR0ZWlsdW5nIGVpbmVzIGJla2FubnRlbiBTb2Z0d2FyZWhhdXNlcyBhdXMgUmVkbW9uZDoKClRoZSBGaW5hbCBSZWxlZWFzZSBvZiBXaW5kb3dzIDIwMDAgd2lsbCBub3QgYmUgZGVsaXZlcmVkIHVudGlsIHRoZSBmaXJzdApxdWFydGFsIG9mIDE5MDEgOikpCgpBbmFjKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhdWVyYnJlbm5lci4uLiAoQXNtb2RpcywgMTAuIEZlYiAxOTk5LCAwMjo1MToyOCk6Cn4jISBybj1BbmF0b2wgcnQ9OTE4NTI1ODc0IHJnPXdpdHplCn4jISB0aWQ9OTE4NTI1ODc0ClN0aW1tdCBkb2NoLCBrb2VubnRlIHNpY2ggaW5uZXJoYWxiIHZvbiA1IE1pbnV0ZW4gYWVuZGVybiwgZmFsbHMgc2ljaCBtYWwKamVtYW5kIGRhcnVtIGt1ZW1tZXJ0IDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtsZWluc3R3ZWljaCB3aWVkZXIgbWFsIDopIChNb3Jnb25hdGUsIDEwLiBGZWIgMTk5OSwgMTI6Mjk6MTYpOgp+IyEgcm49QW5hY3Jpb24gcnQ9OTE4NTI1OTQ0IHJnPXdpdHplCn4jISB0aWQ9OTE4NTI1OTQ0Ck5hamEsIFNpZW1lbnMgaXN0IGF1Y2ggbmljaHQgYmVzc2VyLiBJY2ggaGFiIGpldHp0IGluIG1laW5lcgpQcml2YXQtVGVsZWZvbnJlY2hudW5nIGF1ZiBBcmJlaXQgZGVuIFplaXRyYXVtIDEuMS4yMDE2IGJpcyAzMS4xMi4yMDE2CmJlemFobHQuIE5ldHRlIFVtc3RlbGx1bmdzcHJvYmxlbWUuCgpNb3Jnb25hdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbmthdXRvbWF0IChBcmF0aCwgMTQuIEZlYiAxOTk5LCAxMzoyNjoxMCk6CkhhbGxvLAoKZm9sZ2VuZGVyIEFrdGVub3JkbmVyIGt1cnNpZXJ0ZSBpbiB1bnNlcmVtIEJ1ZXJvLiBOYXR1ZXJsaWNoIHdpbGwgaWNoCmRpZSBEaXNrcmltaW5pZXJ1bmcgZ2VuZXRpc2NoIGJlbmFjaHRlaWxpZ3RlciBIdW1hbm9pZGVuIG5pY2h0CnVudGVyc3R1ZXR6ZW4gdW5kIGhhYmUgZGFoZXIgYW4gZW50c2NoZWlkZW5kZW4gU3RlbGxlbiBtaXQgInh4eCIKemVuc2llcnQgdW5kIEthcGl0ZWwgMiAgdm9uIDg2MyBhdWYgMzkgU2Nocml0dGUgZ2VrdWVyenQuCgoKVmVyaGFsdGVuIGRlciBHZXNjaGxlY2h0ZXIgYW0gQmFua2F1dG9tYXQKCjEuOgpYWFgKMS4gIE1vdG9yIGFic3RlbGxlbgoyLiAgQXVzc3RlaWdlbiwgaW4gZGllIFNwYXJrYXNzZSBnZWhlbgozLiAgS2FydGUgcmVpbnN0ZWNrZW4KNC4gIENvZGUgZWluZ2ViZW4KNS4gIEthcnRlIHVuZCBHZWxkIG5laG1lbiB1bmQgZ2VoZW4uCgoyLjoKWFhYOgoxLiAgQW5rb21tZW4gKHZvcmF1c2dlc2V0enQsIGVzIGthbm4gdm9yd2FlcnRzIGVpbnBhcmt0IHdlcmRlbikKMi4gIE1ha2UtdXAgaW0gUnxja3NwaWVnZWwga29udHJvbGxpZXJlbgozLiAgTW90b3IgYXVzCjQuICBTY2hsdWVzc2VsIGluIGRpZSBIYW5kdGFzY2hlIHN0ZWNrZW4KNS4gIFJlaW5nZWhlbgo2LiAgS2FydGUgaW4gZGVyIEhhbmR0YXNjaGUgc3VjaGVuCjcuICBLYXJ0ZSByZWluc3RlY2tlbgo4LiAgSW4gZGVyIEhhbmR0YXNjaGUgbmFjaCBPQi1QYWNrdW5nIHN1Y2hlbiwgYXVmIGRlciBkZXIgQ29kZSBub3RpZXJ0CmlzdAo5LiAgQ29kZSBlaW5nZWJlbgoxMC5FaW5pZ2UgTWludXRlbiBkaWUgQmV0cmllYnNhbmxlaXR1bmcgc3R1ZGllcmVuCjExLiJBYmJydWNoIiBkcnVlY2tlbgoxMi5Db2RlIHdpZWRlciBlaW5nZWJlbgoxMy5Lb250b3N0YW5kIHBydWVmZW4KMTQuQnJpZWZ1bXNjaGxhZyBpbiBkZXIgSGFuZHRhc2NoZSBzdWNoZW4KMTUuU3RpZnQgaW4gZGVyIEhhbmR0YXNjaGUgc3VjaGVuCjE2LktvbnRvc3RhbmQgYXVmIGRlbSBCcmllZnVtc2NobGFnIG5vdGllcmVuCjE3LkJlZGllbnVuZ3NhbmxlaXR1bmcgc3R1ZGllcmVuCjE4LkdlbGQgemllaGVuCjE5LklucyBBdXRvIHN0ZWlnZW4KMjAuTWFrZS11cCBpbSBSdWVja3NwaWVnZWwga29udHJvbGxpZXJlbgoyMS5TY2hsdWVzc2VsIHN1Y2hlbgoyMi5Nb3RvciBhbmxhc3NlbgoyMy5NYWtlLXVwIGltIFJ1ZWNrc3BpZWdlbCBrb250cm9sbGllcmVuCjI0Lkxvc2ZhaHJlbgoyNS5GdWVuZiBLaWxvbWV0ZXIgd2VpdCBmYWhyZW4KMjYuQW5oYWx0ZW4KMjcuVW1rZWhyZW4KMjguQXVzc3RlaWdlbgoyOS5LYXJ0ZSBhdXMgZGVtIEF1dG9tYXQgbmVobWVuCjMwLkVpbnN0ZWlnZW4KMzEuQnJpZWZ1bXNjaGxhZyBpbiBIYW5kdGFzY2hlIHN1Y2hlbgozMi5TdGlmdCBpbiBIYW5kdGFzY2hlIHN1Y2hlbgozMy5HZWxkZW50bmFobWUgbm90aWVyZW4KMzQuUGxhdHogZnxyIEthcnRlLCBCcmllZnVtc2NobGFnIHVuZCBTdGlmdCBpbiBIYW5kdGFzY2hlIHNjaGFmZmVuCjM1LkthcnRlLCBCcmllZnVtc2NobGFnIHVuZCBTdGlmdCBpbiBIYW5kdGFzY2hlIHN0ZWNrZW4KMzYuTWFrZS11cCBpbSBSdWVja3NwaWVnZWwga29udHJvbGxpZXJlbgozNy5Mb3NmYWhyZW4KMzguRnVlbmYgS2lsb21ldGVyIHdlaXQgZmFocmVuCjM5LkhhbmRicmVtc2UgbG9lc2VuCgpnZWZ1bmRlbiBpbiBkZS50YWxrLmpva2VzCgpBcmF0aCwgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN5c2FkbWluLVByZWlzbGlzdGUgKENhdHdlYXpsZSwgMTYuIEZlYiAxOTk5LCAxMjozODoxNik6CldhcnVtIGJpbiBpY2ggbmljaHQgcmVpY2g/IDopCgpZVEMKLS0tLS0KQ291cnRzZXkgb2YgYWx0LnN5c2FkbWluLnJlY292ZXJ5LCB3aGVyZSBTeXNhZG1pbnMgY29tZSB0byB3aGluZSwgaXQncwoKVGhlIFN5c2FkbWluIFByaWNlIExpc3Q6CiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpSZWd1bGFyIChhcyBpdCB3ZXJlKSBQcmljZXM6CgogICAqIENhbGxpbmcgbWUgd2l0aCBhIHF1ZXN0aW9uIC0tLSAkMTAKICAgKiBDYWxsaW5nIG1lIHdpdGggYSBzdHVwaWQgcXVlc3Rpb24gLS0gJDIwCiAgICogQ2FsbGluZyBtZSB3aXRoIGEgc3R1cGlkIHF1ZXN0aW9uIHlvdSBjYW4ndCBxdWl0ZSBhcnRpY3VsYXRlIC0gJDMwCiAgICogSW1wbHlpbmcgSSdtIGluY29tcGV0YW50IGJlY2F1c2UgSSBjYW4ndCBpbnRlcnByZXQgeW91ciBpbmFydGljdWxhdGUKICAgICBwcm9ibGVtIGRlc2NyaXB0aW9uIC0gJDEwMDArcHVuaXRpdmUgZGFtYWdlcwogICAqIFF1ZXN0aW9ucyByZWNlaXZlZCB2aWEgcGhvbmUgd2l0aG91dCBmaXJzdCB0cnlpbmcgaGVscCBkZXNrIC0gJDEwLjAwCiAgICogUXVlc3Rpb25zIHdoZXJlIGFuc3dlciBpcyBpbiBURk0gLSAkMTAuMDAgKHRoaXMgc2hvdWxkIGhhdmUgYmVlbiBoaWdoZXIKICAgICA6LSkKICAgKiBRdWVzdGlvbnMgZHVyaW5nIFhwaWxvdCBzZXNzaW9uIC0gJDIwLjAwCiAgICogQ2FsbGluZyBtZSBiYWNrIHdpdGggdGhlIHNhbWUgcHJvYmxlbSAqYWZ0ZXIqIEkgZml4IGl0IG9uY2UgLSAkMTAwCiAgICogSW5zaXN0aW5nIHRoYXQgeW91J3JlIG5vdCBicmVha2luZyB0aGUgc29mdHdhcmUsIHRoZSBwcm9ibGVtIGlzIG9uIG15CiAgICAgZW5kIHNvbWVob3cgLSAkMjAwCiAgICogQXNraW5nIG1lIHRvIHdhbGsgb3ZlciB0byB5b3VyIGJ1aWxkaW5nIHRvIGZpeCB0aGUgcHJvYmxlbSAtICQ1L3N0ZXAKICAgKiBBc2tpbmcgbWUgdG8gZHJpdmUgdG8gYW5vdGhlciB0b3duIHRvIGZpeCB5b3VyIHByb2JsZW0gLSAkNTAvbWlsZStnYXMKICAgKiBJZiB5b3UgaW50ZXJydXB0IG1lIHdoaWxlIEkgd2FzIHJlYWRpbmcgbmV3cyAtICQyNS9ocgogICAqIElmIHlvdSBpbnRlcnJ1cHQgbWUgd2hpbGUgSSB3YXMgdHJ5aW5nIHRvIGNvdW50IGFsbCB0aGUgeHJvYWNoZXMgb24gbXkKOgogICAqIElmIHlvdSBpbnRlcnJ1cHQgbWUgd2hpbGUgSSB3YXMgdHJ5aW5nIHRvIGFjdHVhbGx5IGZpeCBzb21lYm9keSBlbHNlJ3MKICAgICBwcm9ibGVtIC0gJDQ1L2hyCiAgICogSWYgeW91IHRyeSB0byBoYW5nIGFyb3VuZCBhbmQgZ2V0IG1lIHRvIGZpeCBpdCBub3cgLSAkNTAvaHIKICAgKiBJZiB5b3UgZXhwZWN0IG1lIHRvIHRlbGwgeW91IGhvdyBJIGZpeGVkIGl0IC0gJDYwL2hyCiAgICogSWYgeW91J3ZlIGNvbWUgdG8gYXNrIG1lIHdoeSBzb21ldGhpbmcgaXNuJ3Qgd29ya2luZyB0aGF0IEknbSBjdXJyZW50bHkKICAgICB3b3JraW5nIG9uIC0gJDcwL2hyCiAgICogSWYgeW91J3JlIGFza2luZyBtZSB0byBmaXggc29tZXRoaW5nIEkgZml4ZWQgZm9yIHlvdSB5ZXN0ZXJkYXkgLSAkNzUvaHIKICAgKiBJZiB5b3UncmUgYXNraW5nIG1lIHRvIGZpeCBzb21ldGhpbmcgSSB0b2xkIHlvdSBJIGZpeGVkIHllc3RlcmRheSwgYnV0CiAgICAgbmV2ZXIgZGlkIGZpeCAtICQ4NS9ocgogICAqIElmIHlvdSdyZSBhc2tpbmcgbWUgdG8gZml4IGEgcXVpY2sgcGF0Y2ggdGhhdCBJIG1hZGUgdGhhdCBkaWRuJ3Qgd29yayAtCiAgICAgJDk1L2hyCiAgICogSWYgeW91J3JlIGJ1Z2dpbmcgbWUgd2hpbGUgdGhlcmUncyBhbm90aGVyIGFkbWluIGluIHRoZSByb29tIHdobyBjb3VsZAogICAgIGhhdmUgZG9uZSBpdCBmb3IgeW91IC0gJDE1MC9ocgogICAqIE1ha2luZyBtZSB0cmVrIHRvIHlvdXIgb2ZmaWNlIHRvIGZpeCB5b3VyIHByb2JsZW0gdGhlbiBsZWF2aW5nCiAgICAgaW1tZWRpYXRlbHkgYWZ0ZXIgaGFuZ2luZyB1cCB0aGUgcGhvbmUgLSAkMTUwMC4wMAogICAqIENhbGxpbmcgdXAgd2l0aCBhIHByb2JsZW0gd2hpY2ggImV2ZXJ5Ym9keSIgaW4gdGhlIG9mZmljZSBpcyBoYXZpbmcgYW5kCiAgICAgd2hpY2ggaXMgInN0b3BwaW5nIGFsbCB3b3JrLiIgTm90IGJlaW5nIHRoZXJlIHdoZW4gSSBydXNoIG92ZXIgdG8gbG9vawogICAgIGF0IGl0IGFuZCBub2JvZHkgZWxzZSBpbiB0aGUgb2ZmaWNlIGtub3dzIGFueXRoaW5nIGFib3V0IGl0LiAtICQxNzAwLjAwCiAgICogRXhwbGFpbmluZyBhIHByb2JsZW0gZm9yIDEvMiBob3VyIG92ZXIgdGhlIHBob25lIEJFRk9SRSBtZW50aW9uaW5nIGl0J3MKICAgICB5b3VyIHBlcnNvbmFsIG1hY2hpbmUgYXQgaG9tZSAtICQ1MDAuMDAKICAgKiBTZWxmLWRpYWdub3NpbmcgeW91ciBwcm9ibGVtIGFuZCBpbmZvcm1pbmcgbWUgd2hhdCB0byBkbyAtICQxNTAuMDAKICAgKiBIYXZpbmcgbWUgYmFpbCB5b3Ugb3V0IHdoZW4geW91IHBlcmZvcm0geW91ciBvd24gcmVwYWlycyBJIHRvbGQgeW91IG5vdAogICAgIHRvIGRvIC0gJDMwMC4wMAogICAqIE5vdCB0ZWxsaW5nIGFsbCBvZiB5b3VyIGNvLXdvcmtlcnMgYWJvdXQgaXQgLSAkODUwLjAwCiAgICogRXhwbGFpbmluZyB0aGF0IHlvdSBjYW4ndCBsb2cgaW4gdG8gc29tZSBzZXJ2ZXIgYmVjYXVzZSB5b3UgZG9uJ3QgaGF2ZQogICAgIGFuIGFjY291bnQgdGhlcmUgLSAkMTAKICAgKiBFeHBsYWluaW5nIHRoYXQgeW91IGRvbid0IGhhdmUgYW4gYWNjb3VudCBvbiB0aGUgbWFjaGluZSB5b3UgdXNlZCB0bwogICAgIGhhdmUgYW4gYWNjb3VudCBvbiBiZWNhdXNlIHlvdSB1c2VkIGl0IHRvIHRyeSB0byBicmVhayBpbnRvIHRoZSBhYm92ZQogICAgIHNlcnZlciAtICQ1MDAKICAgKiBGb3JnZXR0aW5nIHlvdXIgcGFzc3dvcmQgYWZ0ZXIgaXQgd2FzIHRhdHRvb2VkIG9uIHlvdXIgaW5kZXggZmluZ2VyIC0KICAgICAkMjUKICAgKiBDaGFuZ2luZyBtZW1vcnkgcGFydGl0aW9ucyB3aXRob3V0IGluZm9ybWluZyBtZSBmaXJzdCAtICQ1MAogICAqIEluc3RhbGxpbmcgcHJvZ3JhbXMgd2l0aG91dCBpbmZvcm1pbmcgbWUgL2dldHRpbmcgcGVybWlzc2lvbiBmaXJzdAogICAgIC0kMTAwIHBlciBwcm9ncmFtCiAgICogVGVjaG5pY2FsIHN1cHBvcnQgZm9yIHRoZSBhYm92ZSBwcm9ncmFtcyAtICQxNTAgcGVyIGhvdXIgKHJlZ2FyZGxlc3Mgb2YKICAgICB3aGV0aGVyIEkga25vdyB0aGUgcHJvZ3JhbSBvciBub3QgOikpCiAgICogQ2FsbGluZyBtZSB0byB0ZWxsIG1lIHRoYXQgbm9uZSBvZiB0aGUgdXNlcnMgaW4geW91ciBncm91cCBjYW4gbG9nIG9uCiAgICAgd2l0aG91dCB0ZWxsaW5nIG1lIHRoYXQgeW91IHBsYWNlZCBhbiBvcmRlciB0byByZW1vdmUgYXBwbGljYXRpb25zIGZvcgogICAgIHRob3NlIHVzZXJzICQyNQogICAqIEFmdGVyIEkgZmluZCBvdXQgdGhhdCB5b3UgcGxhY2VkIHRoZSBvcmRlciB0byBERUxFVEUgYWxsIG9mIHlvdXIgdXNlcnMKICAgICAkMSwwMDAgKGluY2x1ZGluZyAkNCwwMDAgZGlzY291bnQgZm9yIHRoZSBoaWxhcml0eSBmYWN0b3IpCiAgICogTGVhdmluZyBmaWxlcyBvbiBkZXNrdG9wIC0gJDUgcGVyIGZpbGUsICQxMCBwZXIgZGF5IHRoZSBmaWxlIGlzIGxlZnQKICAgICB1bmNsYWltZWQKICAgKiBCcmluZ2luZyBpbiB5b3VyIG93biBjb3B5IG9mIHRoZSBvcmlnaW5hbCBOb3J0b24gVXRpbGl0aWVzIHYxLjAgdG8gZml4CiAgICAgYSBicmFuZCBuZXcgbWFjaGluZSAtICQyMDAKICAgKiBQdXR0aW5nIGZlZXQgdXAgbmV4dCB0byB3b3Jrc3RhdGlvbiBhZnRlciB0ZW4gbWlsZSBqb2cgdGhyb3VnaCBOWUMKICAgICBzdHJlZXRzIC0gJDUwCiAgICogU3BlbmRpbmcgMzAgbWludXRlcyB0cnlpbmcgdG8gZmlndXJlb3V0IHdoYXQgeW91ciBwcm9ibGVtIGlzLCBhbmQKICAgICBhbm90aGVyIDUgZXhwbGFpbmluZyBob3cgdG8gdmVyaWZ5IGFuZCBmaXggaXQsIG9ubHkgdG8gaGVhciB5b3Ugc2F5Li4uCiAgICAgIlNvIHRoYXQncyB3aGF0IHRoZSBsaXR0bGUgYm94IHRoYXQgcG9wcGVkIHVwIG9uIG15IHNjcmVlbiB3YXMgdGVsbGluZwogICAgIG1lIHRvIGRvISIgLSAkNDAKICAgKiBEZWFsaW5nIHdpdGggdGVjaCBzdXBwb3J0IHJlcXVlc3RzIGZvciBvYnZpb3VzbHkgcGlyYXRlZCBzb2Z0d2FyZSAtICQyNQogICAqIERlYWxpbmcgd2l0aCAiSG93IGNhbiBJIGdldCBhbm90aGVyIGNvcHkgb2YgW29idmlvdXNseSBwaXJhdGVkCiAgICAgc29mdHdhcmVdPyBNaW5lIGp1c3QgZGllZC4iIHJlcXVlc3RzIC0gJDQ1CiAgICogSGF2aW5nIHRvIHVzZSB0aGUgIldlJ3JlIHJlYWxseSBub3QgdGhlIGJlc3QgcGVvcGxlIHRvIHRhbGsgdG8gYWJvdXQKICAgICB0aGF0OyB3aHkgZG9uJ3QgeW91IHRyeSBjYWxsaW5nIHRoZSBudW1iZXIgb24gdGhlIGJveCBpbiB3aGljaCB5b3UKICAgICBib3VnaHQgaXQ/IiBsaW5lIC0gJDU1CiAgICogQWN0dWFsbHkgbmVlZGluZyB0byBleHBsYWluIGNvcHlyaWdodCBsYXcgdG8geW91IGFmdGVyIHlvdSBmYWlsZWQgdG8KICAgICBnZXQgdGhlIGhpbnQgaW4gdGhlIHByZXZpb3VzIHJlc3BvbnNlIC0gJDk1IChpbmNsdWRlcyBpbnN0cnVjdGlvbnMgZm9yCiAgICAgZ2V0dGluZyBmcmVld2FyZSByZXBsYWNlbWVudHMgZnJvbSB0aGUgcHVibGljIGZpbGUgc2VydmVyKQogICAqIEhhdmluZyB0byBwb2ludCBvdXQgYW55dGhpbmcgdGhhdCdzIG9uIHRoZSB3YWxsIGluIGEgdHlwZWZhY2UgbGFyZ2VyCiAgICAgdGhhbiAxOCBwb2ludHMgLSAkMTUKICAgKiBJZiBJIHdyb3RlIHRoZSBzaWduIC0gJDQ1CiAgICogSWYgaXQncyBpbiBhIDE0NCBwb2ludCBmb250IGFuZCB0YXBlZCB0byB0aGUgc2lkZSBvZiB0aGUgbW9uaXRvciBmYWNpbmcKICAgICB0aGUgZG9vciAtICQ3NQogICAqIFJlcG9ydGluZyBzbG93IGNvbm5lY3Rpb24gYnkgcGFzc2VuZ2VyIHBpZ2VvbiBwYWNrZXRzIHRvIE1QRUcgYXJjaGl2ZQogICAgIGluIE91dGVyIFNsb2JhdmlhIGFzIGEgTW9zYWljL05ldHNjYXBlL0dvcGhlci9GVFAgY2xpZW50IHByb2JsZW0gLQogICAgICQyNS4wMAogICAqIFJlcG9ydGluZyBpdCBtb3JlIHRoYW4gb25jZSAtICQ1MC4wMAogICAqIFJlcG9ydGluZyBpdCBtb3JlIHRoYW4gb25jZSBhbmQgaW1wbHlpbmcgc2xvdGhmdWxsbmVzcyBvbiB0ZWNoCiAgICAgc3VwcG9ydCdzIGluYWJpbGl0eSB0byBzb2x2ZSBwcm9ibGVtIC0gJDIwMC4wMAoKIkhhcmR3YXJlIFByb2JsZW0iIFByaWNlczoKCiAgICogRmlndXJpbmcgb3V0IHlvdSBtZWFuIGZsb3BweSBkcml2ZSB3aGVuIHlvdSBzYXkgaGFyZCBkcml2ZSAtICQ1MC4wMAogICAqIEJFRk9SRSBJIG9yZGVyIHlvdXIgcmVwbGFjZW1lbnQgaGFyZCBkcml2ZSAtICQyNTAuMDAKICAgKiBUZWxsaW5nIG1lIHRoYXQgeW91IGRvbid0IGhhdmUgYSBoYXJkIGRyaXZlICQ1MAogICAqIFNwZW5kaW5nIDE1IG1pbnV0ZXMgdG8gZmluZCBvdXQgdGhlIHNpemUgb2YgeW91ciBoYXJkIGRyaXZlIChpbmNsdWRlcwogICAgIHdhbGtpbmcgeW91IHRocm91Z2ggdGhlIHByb2Nlc3MpICQxMDAKICAgKiBUZWxsaW5nIG1lIHRoYXQgeW91IGRvbid0IHNhdmUgYW55dGhpbmcgdG8gdGhlIGFueSBvZiB0aGUgZHJpdmVzLCB5b3UKICAgICAianVzdCBwdXNoIGEgYnV0dG9uIGFuZCBpdCBnb2VzIG9mZiBpbnRvIGNvbXB1dGVyIGxhbmQuIiAkNTAKICAgKiBGaXhpbmcgeW91ciAiYnJva2VuIiBtb3VzZSB3aXRoIGEgbW91c2VwYWQgLSAkMjUuMDAKICAgKiBGaXhpbmcgeW91ciAiYnJva2VuIiBvcHRpY2FsIG1vdXNlIGJ5IHJvdGF0aW5nIHRoZSBtb3VzZXBhZCA5MCBkZWdyZWVzCiAgICAgLSQzNS4wMAogICAqIEZpeGluZyB5b3VyICJicm9rZW4iIG9wdGljYWwgbW91c2UgYnkgdGFraW5nIG9mZiB0aGUgcG9zdC1pdCBub3RlCiAgICAgc29tZW9uZSBoYXMgcHV0IG9uIHRoZSBib3R0b20uIC0gJDUwLjAwCiAgICogRml4aW5nIGEgImJyb2tlbiIgbW91c2UgYnkgY2xlYW5pbmcgdGhlIHJvbGxlcnMgLSAkNTAuMDAKICAgKiBGaXhpbmcgeW91ciAiYnJva2VuIiBwcmludGVyIHdpdGggYW4gaW5rL3RvbmVyIGNhcnRyaWRnZSAtICQzNS4wMAogICAqIEZpeGluZyB5b3VyICJicm9rZW4iIEFOWVRISU5HIHdpdGggdGhlIHBvd2VyIGJ1dHRvbiAtICQyNTAuMDAKICAgKiBGaXhpbmcgdGhlICJjcmFzaGVkIiBzeXN0ZW0gYnkgdHVybmluZyB0aGUgZXh0ZXJuYWwgZGlzayBiYWNrIG9uIC0KICAgICAkMjAwLjAwCiAgICogRml4aW5nIHRoZSAiaHVuZyIgc3lzdGVtYnkgcGx1Z2dpbmcgdGhlIGV0aGVybmV0IHRyYW5zY2l2ZXIgYmFjayBpbiAtCiAgICAgJDM3NS4wMAogICAqIEZpeGluZyB0aGUgY3Jhc2hlZCBuYW1lc2VydmVyIGJ5IHBsdWdnaW5nIGJhY2sgaW4gdGhlIFNDU0kgY29yZCBzb21lb25lCiAgICAgYWNjaWRlbnRpYWxseSB5YW5rZWQgb3V0IG9uIEZyaWRheSBhZnRlcm5vb24gd2hlbiB0aGUgJ3JlYWwnIHN5c2FkbWluCiAgICAgaGFzIGp1c3QgbGVmdCBmb3IgYSB0d28gd2VlayB2YWNhdGlvbiAtICQ0MDAKICAgKiBWaXNpdGluZyB5b3VyIG9sZCB1bml2ZXJzaXR5IGFuZCBmaXhpbmcgdGhlIGJyb2tlbiBQQyBieSBwbHVnZ2luZyB0aGUKICAgICBtb25pdG9yIGxlYWQgYmFjayBpbiAtICQ1MAogICAqIFNwaWxsaW5nIGNva2Ugb24ga2V5Ym9hcmQgLSAkMjUgcGx1cyBjb3N0IG9mIGtleWJvYXJkCiAgICogU3BpbGxpbmcgY29rZSBvbiBtb25pdG9yIC0gJDUwIHBsdXMgY29zdCBvZiBtb25pdG9yCiAgICogU3BpbGxpbmcgY29rZSBvbiBDUFUgLSAkMjAwIHBsdXMgY29zdCBvZiBtb3RoZXJib2FyZCBzd2FwIHBsdXMgaG91cmx5CiAgICAgcmF0ZSBvZiAkMTUwIHBlciBob3VyIHNwZW50IHJlaW5zdGFsbGluZyB0aGUgc3lzdGVtCiAgICogQ2xlYW5pbmcgdGhlIG1vdXNlIHdpdGggc3BpdCBhbmQgc2xlZXZlIC0gJDUwIHBsdXMgY29zdCBvZiBzbGVldmUgcGx1cwogICAgIGNvc3Qgb2YgdGhlcmFweSA6KQogICAqIENoZXdpbmcgb24gdGhlIGVuZCBvZiB0aGUgZ3JhcGhpYyB0YWJsZXQgc3R5bHVzIC0gJDI1CiAgICogTGlzdGVuaW5nIHRvIHlvdXIgbmV0d29yayB0cm91Ymxlcywgc3VnZ2VzdGluZyB0aGF0IHlvdSBjaGVjayB0byBzZWUgaWYKICAgICB5b3UgYXJlIHBsdWdnZWQgaW50byB0aGUgbmV0d29yayBqYWNrLCBoZWFyaW5nIHllcywgdHJ5aW5nIGZpdmUgb3RoZXIKICAgICB0aGluZ3MsIGFza2luZyB5b3UgdG8gaWRlbnRpZnkgeW91ciBwbHVnIHR5cGUsIGxpc3RlbmluZyB0byB5b3UgZHJhZwogICAgIGZ1cm5pdHVyZSwgYW5kIGhlYXJpbmcgYSBzaGVlcGlzaCwgIk9vcHMuIE5ldmVybWluZC4iIC0gJDM1IChpbmNsdWRpbmcKICAgICBkaXNjb3VudCBmb3IgcG9saXRlIGFwb2xvZ3kpCgpCZWVwZXIgUHJpY2VzOgoKICAgKiBCZWVwaW5nIG1lIHdoZW4gSSdtIG91dCB3aXRoIHRoZSBzaWduaWZpY2FudCBvdGhlciAtICQ1MAogICAqIEJlZXBpbmcgbWUgd2hlbiBJJ20gb3V0IG9mIHRvd24gYW5kIEkgdG9vayBwYWlucyB0byBpbnN1cmUgdGhhdCBoZWxwCiAgICAgZmlsZXMgd2VyZSBsZWZ0IGFsbCBvdmVyIGFuZCB0aGF0IGRpYWdub3N0aWNzIGhhZCBiZWVuIHJ1biBvbiBhbGwKICAgICBtYWNoaW5lcyBiZWZvcmUgSSBsZWZ0IC0gJDEwMAogICAqIEJlZXBpbmcgbWUgbW9yZSB0aGFuIG9uY2UgdG8gdGVsbCBtZSB0aGF0IHRoZSBwcmludGVyJ3Mgb2ZmbGluZSBhbmQgdGhlCiAgICAgZml4IGlzIHRvIHByZXNzIHRoZSBPbiBMaW5lIGJ1dHRvbiAtICQyMDAKICAgKiBCZWVwaW5nIG1lIG1vcmUgdGhhbiBvbmNlIHdoaWxlIEknbSBhc2xlZXAgLSAkNTAgcGVyIGJlZXAKICAgKiBCZWVwaW5nIG1lIGFuZCBub3QgaWRlbnRpZnlpbmcgeW91cnNlbGYgd2l0aGluIHRoZSBmaXJzdCA1IHNlY29uZHMgLQogICAgICQyNQogICAqIEJlZXBpbmcgbWUgYW5kIHRoZW4gY2hhbmdpbmcgeW91ciBzdG9yeSAvIGRlbnlpbmcgeW91IHBsYWNlZCB0aGUgY2FsbCAvCiAgICAgaG9wZWQgSSB3b3VsZCBmb3JnZXQgd2hvIGNhdXNlZCB0aGUgcHJvYmxlbSAtICQ1MDAKClNwZWNpYWwgUmF0ZXM6CgogICAqIERlYWxpbmcgd2l0aCB1c2VyIGJvZHkgb2RvciAtICQ3NS4wMC9ob3VyCiAgICogRGVhbGluZyB3aXRoIHVzZXIgbm90IGZhbWlsaWFyIHdpdGggdGhlIHByaW1hcnkgbGFuZ3VhZ2Ugc3Bva2VuIGF0IHNpdGUKICAgICAtICQ1MC4wMC9ob3VyCiAgICogRGVhbGluZyB3aXRoIHVzZXIgd2hvIGlzIChzZWxmLXByb2NsYWltZWQpIHNtYXJ0ZXIgdGhhbiB5b3UgYXJlLCBidXQKICAgICBzdGlsbCBjYWxscyBldmVyeSBvdGhlciBkYXkgZm9yIGhlbHAgLSAkMTAwLjAwL2hvdXIKICAgKiBEZWFsaW5nIHdpdGggY29tcHV0ZXIgaG9iYmllc3RzIC0gJDEyNS4wMC9ob3VyCgogICAqIFF1ZXN0aW9uaW5nIHRoZSBvdGhlciBwcmljZXMgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uJDUwCi0tLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBsaXN0ZSBoaW4gdW5kIGxpc3RlIGhlciAoQW5hdG9sLCAxNi4gRmViIDE5OTksIDIzOjU3OjE3KToKfiMhIHJuPVRlZGR5IHJ0PTkxOTIwODU2NSByZz1naWxkZW4uemF1YmVyZXIKfiMhIHRpZD05MTkwODU4NjEKPiAuLi4gZGllIHNpbmQgbmljaHQgYXVmIG1laW5lbSBNaXN0IGdld2FjaHNlbiBzb25kZXJuIGRhIHN0ZWhlbiBMZXV0ZQo+IGRpZSBhdWNoIEhMUC1aYXViZXJlciBzaW5kLgoKV2FzIGhhYmVuIGVpbmUgTWV0emdlcmVpIHVuZCBkaWUgWmF1YmVyZXJnaWxkZSBnZW1laW5zYW0/CkRpZSBncm9lc3N0ZW4gV3VlcnN0ZSBoYWVuZ2VuIGdhbnogb2Jlbi4KCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcmhhbmRsdW5nIChEaWVkZXIsIDE4LiBGZWIgMTk5OSwgMTY6NTk6MzApOgpFaW4gTWFubiBzdGVodCB2b3IgR2VyaWNodCwgd2VpbCBlciBzZWluZSBGcmF1IGVyc2NobGFnZW4gaGF0LgpSaWNodGVyOiAiRGFzIGlzdCBlaW4gc2VociBicnV0YWxlcyBWZXJnZWhlbi4gV2VubiBTaWUgbWl0IGV0d2FzIE1pbGRlIHJlY2huZW4Kd29sbGVuLAptdWVzc2VuIFNpZSB1bnMgc2Nob24gZWluZSBCZWdydWVuZHVuZyBnZWJlbi4iCkRlciBNYW5uOiAiRGllIHdhciBzbyBkb29mLCBkaWUgbXVzc3RlIGljaCBlaW5mYWNoIGVyc2NobGFnZW4hIgpSaWNodGVyOiAiRGFzIGlzdCBqYSBub2NoIHZpZWwgc2NobGltbWVyLiBXZW5uIFNpZSBuaWNodCB3b2xsZW4sIGRhc3MgZGllCkdlc2Nod29yZW5lbgpTaWUgdm9uIHZvcm5oZXJlaW4gc2NodWxkaWcgc3ByZWNoZW4gc29sbGVuLCBkYW5uIGdlYmVuIFNpZSB1bnMgYml0dGUgZWluZQpwbGF1c2libGUKRXJrbGFlcnVuZy4iCkRhcmF1ZiBkZXIgTWFubjogIkRhcyB3YXIgZm9sZ2VuZGVybWFzc2VuLiBXaXIgd29obnRlbiBpbiBlaW5lbSBIb2NoaGF1cyBpbQoxMy4KU3RvY2sgdW5kIGltIGVyc3RlbiBTb2NrIHdvaG50ZSBlaW5lIHJlaXplbmRlIFBvcnRpZXJzZmFtaWxpZSwgZGllIGhhdHRlIGRyZWkKS2luZGVyLiBFcwp3YXIgc2NocmVja2xpY2ghIERpZSB3YXJlbiBzbyBrbGVpbiBnZWJsaWViZW4sIHZvbiBOYXR1ciBhdXMuIERlcgpad29lbGZqYWVocmlnZSB3YXIgODBjbQpncm9zcywgZGVyIDE5LWphZWhyaWdlIDkwY20uIEljaCBrYW0gZWluZXMgVGFnZXMgaG9jaCB6dSBtZWluZXIgRnJhdSB1bmQgc2FnZToKRGFzIGlzdApzY2hvbiB3YXMgU2NobGltbWVzIG1pdCBkZW4gS2luZGVybiB1bnNlcmVyIFBvcnRpZXJzZmFtaWxpZS4KJ0phLCcgc2FndCBtZWluZSBGcmF1LCAnZGFzIGlzdCBlaW4gcmljaHRpZ2VzIFB5cmVuYWVlbmdlc2NobGVjaHQuJwpJY2ggc2FnZTogJ05laW4sIHdhcyBEdSBtZWluc3QsIHNpbmQgUHlnbWFlZW4uJwonTmVpbiwnIHNhZ3QgbWVpbmUgRnJhdSwgJ1B5Z21hZWVuLCBkYXMgaXN0IGRhcywgd2FzIGRlciBNZW5zY2ggdW50ZXIgZGVyIEhhdXQKaGF0LCBkYXZvbgprcmllZ3QgZXIgU29tbWVyc3Byb3NzZW4uJwpJY2ggc2FnZTogJ0RhcyBpc3QgUGlnbWVudC4nCidOZWluLCcgc2FndCBtZWluZSBGcmF1LCAnUGlnbWVudCwgZGFyYXVmIGhhYmVuIGRpZSBhbHRlbiBSb2VtZXIgZ2VzY2hyaWViZW4uJwpJY2ggc2FnZTogJ0RhcyBpc3QgUGVyZ2FtZW50IScKJ05laW4sJyBzYWd0IG1laW5lIEZyYXUsICdQZXJnYW1lbnQgaXN0LCB3ZW5uIGVpbiBEaWNodGVyIGV0d2FzIGFuZmFlbmd0IHVuZApuaWNodCB6dSBFbmRlCm1hY2h0Li4uJwpIZXJyIFJpY2h0ZXIsIFNpZSBrb2VubmVuIHNpY2ggdm9yc3RlbGxlbiwgaWNoIHZlcnNjaGx1Y2tlIG1pciBkYXMgRnJhZ21lbnQsCmljaCBzZXR6ZSBtaWNoCmluIG1laW5lbiBMZWhuc3R1aGwgdW5kIGxlc2UgWmVpdHVuZy4gUGxvZXR6bGljaCBrb21tdCBtZWluZSBGcmF1IG1pdCBlaW5lbQpTYXR6LCBpY2gKZGVua2UsIGpldHp0IGlzdCBzaWUgaXJyZW5oYXVzcmVpZiAtICdMaWVibGluZywgZ3VjayBtYWwsIHdhcyBoaWVyIHN0ZWh0IScKU2llIG1hY2h0IGVpbiBCdWNoIGF1ZiwgemVpZ3QgYXVmIGVpbmUgVGV4dHN0ZWxsZSB1bmQgc2FndDoKJ0RhcyBTb25uZW5kYWNoIGRlcyBIYW5kdGFlc2NoY2hlbnMgd2FyIGRpZSBMZWhyZXJpbiBkZXMgWnVoYWVsdGVycyAxNS4nCkljaCBuZWhtZSBkYXMgQnVjaCBhbiBtaWNoIHVuZCBzYWdlLCBhYmVyIFNjaGF0eiwgZGFzIGlzdCBlaW4gZnJhbnpvZXNpc2NoZXMKQnVjaCwgZGEKc3RlaHQ6CidMYSBNYXJxdWlzZSBkZSBQb21wYWRvdXIgZXN0IGxhIE1haXRyZXNzZSBkZSBMb2lzIFhWLiBEYXMgaGVpc3N0OiBEaWUKTWFycXVpc2Ugdm9uClBvbXBhZG91ciB3YXIgZGllIE1hZXRyZXNzZSB2b24gTHVkd2lnIGRlbSAxNS4nCidOZWluLCcgc2FndCBtZWluZSBGcmF1LCAnZGFzIG11c3N0IGR1IHdvZXJ0bGljaCB1ZWJlcnNldHplbjoKTGEgTWFycXVpc2UgLSBkYXMgU29ubmVuZGFjaApQb21wYWRvdXIgLSBkYXMgSGFuZHRhZXNjaGNoZW4KbGEgTWFpdHJlc3NlIC0gZGllIExlaHJlcmluCkxvaXMgWFYgLSBkZXIgWnVoYWVsdGVyIDE1CkljaCBtdXNzIGRhcyBzY2hsaWVzc2xpY2ggZ2FueiBnZW5hdSB3aXNzZW4sIGljaCBoYWJlIGV4dHJhIGZ1ZXIgbWVpbmVuCkZyYW56b2VzaXNjaHVudGVycmljaHQgZWluZW4gTGVnaW9uYWVyIGFuZ2VzdGVsbHQuJwpJY2ggc2FnZTogJ0R1IG1laW5zdCBlaW5lbiBMZWt0b3IuJwonTmVpbiwnIHNhZ3QgbWVpbmUgRnJhdSwgJ0xla3RvciB3YXIgZGVyIGdyaWVjaGlzY2hlIEhlbGQgZGVzIEFsdGVydHVtcy4nCkljaCBzYWdlOiAnRGFzIHdhciBIZWt0b3IsIHVuZCBkZXIgd2FyIFRyb2phbmVyLicKJ05laW4sJyBzYWd0IG1laW5lIEZyYXUsICdIZWt0b3IgaXN0IGVpbiBGbGFlY2hlbm1hc3MuJwpJY2ggc2FnZTogJ0RhcyBpc3QgZWluIEhla3Rhci4nCidOZWluLCcgc2FndCBtZWluZSBGcmF1LCAnSGVrdGFyIGlzdCBkZXIgR29ldHRlcnRyYW5rLicKSWNoIHNhZ2U6ICdEYXMgaXN0IGRlciBOZWt0YXIuJwonTmVpbiwnIHNhZ3QgbWVpbmUgRnJhdSwgJ05la3RhciBpc3QgZWluIEZsdXNzIGluIFN1ZWRkZXV0c2NobGFuZC4nCkljaCBzYWdlOiAnRGFzIGlzdCBkZXIgTmVja2FyLicKTWVpbmUgRnJhdTogJ0R1IGtlbm5zdCB3b2hsIG5pY2h0IGRhcyBzY2hvZW5lIExpZWQ6IEJhbGQgZ3JhcyBpY2ggYW0gTmVrdGFyLApiYWxkIGdyYXMKaWNoIGFtIFJoZWluLCBkYXMgaGFiZSBpY2ggbmV1bGljaCBtaXQgbWVpbmVyIEZyZXVuZGluIGltIER1byBnZXN1bmdlbi4nCkljaCBzYWdlOiAnRGFzIGhlaXNzdCBEdWV0dC4nCidOZWluLCcgc2FndCBtZWluZSBGcmF1LCAnRHVldHQgaXN0LCB3ZW5uIHp3ZWkgTWFlbm5lciBtaXQgZWluZW0gU2FlYmVsCmF1ZmVpbmFuZGVyCmxvc2dlaGVuLicKSWNoIHNhZ2U6ICdEYXMgaXN0IGVpbiBEdWVsbC4nCidOZWluLCcgc2FndCBtZWluZSBGcmF1LCAnRHVlbGwgaXN0LCB3ZW5uIGVpbmUgRWlzZW5iYWhuIGF1cyBlaW5lbSBkdW5rbGVuCmZpbnN0ZXJlbgpCZXJnbG9jaCBoZXJhdXNrb21tdC4nCkhlcnIgUmljaHRlciAtIGRhIGhhYmUgaWNoIGVpbmVuIEhhbW1lciBnZW5vbW1lbiB1bmQgaGFiZSBzaWUKdG90Z2VzY2hsYWdlbi4uLiIKQmV0cmV0ZW5lcyBTY2h3ZWlnZW4sIGRhbm4gZGVyIFJpY2h0ZXI6CiJGcmVpc3BydWNoLCBpY2ggaGFldHRlIHNpZSBzY2hvbiBiZWkgSGVrdG9yIGVyc2NobGFnZW4uLi4iIAoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCYXVlcm4gKERpZWRlciwgMTguIEZlYiAxOTk5LCAxNzowNDo1NCk6CkVpbiBCYXVlciAoQikgc2l0enQgaW4gZGVyIEtuZWlwZSB1bmQgc2NodWV0dGV0IHNpY2ggenUuIEtvbW10IHNlaW4gS3VtcGVsIChLKQpyZWluIHVuZCBmcmFndAppaG46ICJIZSwgd2FydW0gc2l0enQgRHUgZGVubiBhbSBoZWxsaWNodGVuIFRhZyBoaWVyIHVuZCBiZXNhZXVmc3QgZGljaD8KQihsYWxsZW5kKTogTWFuY2hlIERpbmdlIGthbm4gbWFuIGVpbmZhY2ggbmljaHQgZXJrbGFlcmVuLi4uCks6IFdhcyBoYXN0IER1IGRlbm4gU2NobGltbWVzIGVybGVidD8KQiAod2VpdGVyIHNhdWZlbmQpOiBIZXV0ZSBzaXR6ZSBpY2ggYmVpIG1laW5lciBLdWggdW5kIG1lbGtlIHNpZS4gQWxzIGljaCBkZW4KRWltZXIgZmFzdCB2b2xsCmhhYmUsIHNjaG1laV90IHNpZSBtaXQgaWhyZW0gbGlua2VuIEJlaW4gZGVuIEVpbWVyIHVtLgpLOiBKYSwgYWJlciBkYXMgaXN0IGRvY2ggbmljaHQgc2NobGltbS4KQjogTWFuY2hlIERpbmdlIGthbm4gbWFuIGVpbmZhY2ggbmljaHQgZXJrbGFlcmVuLi4uCks6IFVuZCwgd2llIGdpbmcncyB3ZWl0ZXI/CkI6IEljaCBoYWIgaWhyIGxpbmtlcyBCZWluIGFuIGVpbmVtIFBmb3N0ZW4gbGlua3MgYW5nZWJ1bmRlbi4KSzogSmEgdW5kIGRhbm4hPwpCOiBEYW5uIGhhYiBpY2ggbWljaCBoaW5nZXNldHp0IHVuZCB3ZWl0ZXJnZW1vbGtlbiwgYWxzIGljaCBkZW4gRWltZXIgZmFzdAp2b2xsIGhhdHRlLCBoYXQgZGllCmJsdmRlIEt1aCBpaG4gbWl0IGlocmVtIHJlY2h0ZW4gQmVpbiB1bWdlc3RvX2VuLgpLOiBTY2hvbiB3aWVkZXI/CkI6IE1hbmNoZSBEaW5nZSBrYW5uIG1hbiBlaW5mYWNoIG5pY2h0IGVya2xhZXJlbi4uLgpLOiBXYXMgaGFzdCBEdSBkYW5uIGdlbWFjaHQ/CkI6IEljaCBoYWIgaWhyIHJlY2h0ZXMgQmVpbiBhbiBlaW5lbSBQZm9zdGVuIHJlY2h0cyBhbmdlYnVuZGVuLgpLOiBKYSB1bmQgZGFubiE/CkI6IERhbm4gaGFiIGljaCBtaWNoIGhpbmdlc2V0enQgdW5kIHdlaXRlcmdlbW9sa2VuLCBhbHMgaWNoIGRlbiBFaW1lciBmYXN0CnZvbGwgaGF0dGUsIGhhdCBkaWUKYmx2ZGUgS3VoIGlobiBtaXQgaWhyZW0gU2Nod2FueiB1bWdlc3RvX2VuLgpLOiBIbW0uLi4KQjogTWFuY2hlIERpbmdlIGthbm4gbWFuIGVpbmZhY2ggbmljaHQgZXJrbGFlcmVuLi4uCks6IFdhcyBoYXN0IGR1IGRhbm4gZ2VtYWNodD8KQjogRGEgaWNoIGtlaW4gU2VpbCB6dW0gQW5iaW5kZW4gbWVociBoYXR0ZSwgbmFobSBpY2ggbWVpbmVuIEd1ZXJ0ZWwgdW5kIGhhYicKaWhyZW4KU2Nod2FueiBhbSBEZWNrZW5iYWxrZW4gYW5nZWJ1bmRlbi4gSW4gZGVtIEF1Z2VuYmxpY2sgcnV0c2NodCBtaXIgZGllIEhvc2UKcnVudGVyLAptZWluZSBGcmF1IGtvbW10IHJlaW4gLSBNYW5jaGUgRGluZ2Uga2FubiBtYW4gZWluZmFjaCBuaWNodCBlcmtsYWVyZW4uLi4gCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0cmFzc2VuYmFobiAoRGllZGVyLCAxOC4gRmViIDE5OTksIDE3OjA3OjQwKToKRWluZSB2ZXJoZWlyYXRldGUgRnJhdSBrYXVmdCBiZWkgSUtFQSBlaW5lbiBuZXVlbiBTY2hyYW5rLiBTaWUgc2FndCBzaWNoOgoiU2VsYnN0IGlzdCBkaWUKRnJhdSEiIHVuZCBiYXV0IGlobiBzZWxiZXIsIG5hdHVlcmxpY2ggb2huZSBQcm9ibGVtZSwgenVzYW1tZW4uIEthdW0gaGF0IHNpZQppaG4gZmVydGlnIGRhCmhpbmdlc3RlbGx0LCBmYWVocnQgZHJhdXNzZW4gdm9yIGRlciBXb2hudW5nIGRpZSBTdHJhc3NlbmJhaG4gdm9yYmVpIHVuZCBkZXIKU2NocmFuayBrbGFwcHQgaW4Kc2ljaCB6dXNhbW1lbi4KV2FzIHNvbGwncywgZGVua3Qgc2ljaCBkaWUgRnJhdSB1bmQgYmF1dCBpaG4gbm9jaG1hbHMgenVzYW1tZW4sIHdpZWRlciBmYWVocnQKZGllClN0cmFzc2VuYmFobiB1bnRlbiB2b3JiZWkgdW5kIHdpZWRlciBrbGFwcHQgZGVyIFNjaHJhbmsgenVzYW1tZW4uCkVudG5lcnZ0IHJ1ZnQgZGllIEZyYXUgYmVpIElLRUEgYW4gdW5kIHNhZ3Q6ICJTY2hpY2tlbiBzaWUgYml0dGUgZWluZW4KVGVjaG5pa2VyIHZvcmJlaSwKYW5zb25zdGVuIGJyaW5nZSBpY2ggZGFzIERpbmcgbm9jaCBoZXV0ZSB6dXJ1ZWNrISIKRGVyIFRlY2huaWtlciBrb21tdCwgYmF1dCBkZW4gU2NocmFuayBmYWNobWFlbm5pc2NoIHp1c2FtbWVuLCB1bnRlbiBmYWVocnQgZGllClN0cmFzc2VuYmFobiB2b3JiZWksIHVuZCBkZXIgU2NocmFuayBrbGFwcHQgenVzYW1tZW4uCiJIbW1tLi4uIiB1ZWJlcmxlZ3QgZXIsICJwYXNzZW4gU2llIGF1ZjogV2lyIGJhdWVuIGRlbiBTY2hyYW5rIGpldHp0IG5vY2htYWwKenVzYW1tZW4sCmljaCBzdGVsbGUgbWljaCByZWluLCB1bmQgZ3Vja2UsIHdlbm4gZGllIFN0cmFzc2VuYmFobiB2b3JiZWlrb21tdCwgd29yYW4ncwpkZW5uIGxpZWdlbgprYW5uLiIKR2VzYWd0IGdldGFuLCBTY2hyYW5rIHp1c2FtbWVuZ2ViYXV0IHVuZCBkZXIgVGVjaGlua2VyIGdlaHQgcmVpbi4gSW4gZGVtCk1vbWVudAprb21tdCBkZXIgRWhlbWFubiBkZXIgRnJhdSB6dXJ1ZWNrIHVuZCBzYWd0IHVlYmVycmFzY2h0OiAiT2ggU2NoYXR6LCBkdSBoYXN0CmphIGRlbiBuZXVlbgpTY2hyYW5rIHNjaG9uIHp1c2FtbWVuZ2ViYXV0ISIKRXIgb2VmZm5ldCBkaWUgU2NocmFua3R1ZXIgdW5kIG1laW50IGVyc3RhdW50IHp1IGRlbSBUZWNobmlrZXI6ICJKYSwgd2FzCm1hY2hlbiBzaWUgZGVubgpoaWVyPyIKV29yYXVmIGRlciBUZWNobmlrZXIgbWVpbnQ6ICJUamEuLi4gc2llIHdlcmRlbiBtaXIgZGFzIGpldHp0IHdhaHJzY2hlaW5saWNoCm5pY2h0IGdsYXViZW4sCmFiZXIgaWNoIHdhcnRlIGF1ZiBkaWUgU3RyYXNzZW5iYWhuLi4uIiAKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFrZSAkJCQkIEZhc3QhISEhISEhISEhISEhISEgKERlZXBibHVlLCAxOS4gRmViIDE5OTksIDE2OjA2OjA2KToKV2FudCB0byBtYWtlICQkJCQgZmFzdD8gVGhpcyBpcyB0aGUgbW9zdCBpbmNyZWRpYmx5IGVhc3kKd2F5IHRvIGRvIGl0ISAgVGhlcmUncyBubyBpbnZlc3RtZW50IHRvIG1ha2UsIG5vdGhpbmcgdG8gYnV5LApubyBzZWxsaW5nLCBubyByZWNydWl0aW5nIGFuZCBiZXN0IG9mIGFsbCBpdCdzIGFic29sdXRlbHkgRlJFRSEKCkZvbGxvdyB0aGlzIHNpbXBsZSBwcm9ncmFtIGFuZCB5b3UgdG9vIHdpbGwgYmUgbWFraW5nICQkJCQgZmFzdCEKCjEuICBIb2xkIGRvd24gdGhlIHNoaWZ0IGtleS4KMi4gIEhpdCB0aGUgNCBrZXkgZm91ciB0aW1lcy4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMTAgR3J1ZW5kZSwgd2FydW0gQmllciBiZXNzZXIgaXN0IGFscyBDaHJpc3RlbnR1bSAoWndvY2tsaHViZXIsIDIxLiBGZWIgMTk5OSwgMjE6MjQ6MjQpOgoKQXVzdGluLiBDaHJpc3RsaWNoZSBTdHVkZW50ZW4gYW4gZGVyIHRleGFuaXNjaGVuIEEmTS1Vbml2ZXJzaXRhZXQgd2FyYmVuIGF1ZgpULXNoaXJ0cyBtaXQgZGVtIFNsb2dhbiAiRGllIDEwIEhhdXB0Z3J1ZW5kZSwgd2FydW0gSmVzdXMgYmVzc2VyIGFscyBCaWVyIGlzdCIKZnVlciBhYnNvbHV0ZSBBbGtvaG9sYWJzdGluZW56LiBEYXJhdWZoaW4gdmVyb2VlbnRsaWNodGUgZGllIEFnbm9zdGljIGFuZApBdGhlaXN0IFN0dWRlbnQgR3JvdXAgZGVyIFVuaXZlcnNpdGFldCBzY2hsYWdmZXJ0aWcgIkRpZSAxMCBIYXVwdGdydWVuZGUsCndhcnVtIEJpZXIgYmVzc2VyIGlzdCBhbHMgQ2hyaXN0ZW50dW0iOgoKMS4gV2VubiBTaWUgSWhyIGdhbnplcyBMZWJlbiBkZW0gQmllciBnZXdpZG1ldCBoYWJlbiwgZ2lidCBlcyBHcnVwcGVuLCBkaWUKSWhuZW4gaGVsZmVuLiAKCjIuIFNpZSBrb2VubmVuIGJld2Vpc2VuLCBkYXNzIFNpZSBlaW4gQmllciBoYWJlbi4gCgozLiBFcyBnaWJ0IEdlc2V0emUsIGRpZSB2b3JzY2hyZWliZW4sIGRhc3MgQmllci1FdGlrZXR0ZW4gU2llIG5pY2h0IGJlbHVlZ2VuCmR1ZXJmZW4uIAoKNC4gU2llIG11ZXNzZW4gbmljaHQgdWViZXIgMi4wMDAgSmFocmUgYXVmIGVpbiB6d2VpdGVzIEJpZXIgd2FydGVuLiAKCjUuIE5pZW1hbmQgd3VyZGUgamUgaW0gWmVpY2hlbiBkZXMgQmllcmVzIGF1ZiBkZW0gU2NoZWl0ZXJoYXVmZW4gdmVyYnJhbm50LAphdWZnZWhhZW5ndCBvZGVyIGdlZm9sdGVydC4gCgoKNi4gV2VyIEJpZXIgaGF0LCBrbG9wZnQgbmljaHQgYW4gYW5kZXJlciBMZXV0ZSBUdWVyZW4sIHVtIGVzIGlobmVuCmF1Znp1ZHJhZW5nZW4uIAoKNy4gTmllbWFuZCB6d2luZ3QgQmllciBrbGVpbmVuIEtpbmRlcm4gYXVmLCBkaWUgbm9jaCBuaWNodCBmdWVyIHNpY2ggc2VsYnN0CmVudHNjaGVpZGVuIGtubmVuLiAKCjguIEJpZXIgaGF0IG5pZW1hbHMgZWluZW4gZ3JvZXNzZXJlbiBLcmllZyB2ZXJ1cnNhY2h0LiAKCjkuIEJpZXIgc2NocmVpYnQgSWhuZW4gbmljaHQgdm9yLCB3YW5uIHVuZCB3aWUgU2llIFNleCBoYWJlbiBkdWVyZmVuLiAKCjEwLiBOaWVtYW5kIHdpcmQgU2llIHVtYnJpbmdlbiwgd2VubiBTaWUga2VpbiBCaWVyIHRyaW5rZW4uCgoKZ3JpbnNlbmQ6Clp3b2NrbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDEwIEdydWVuZGUsIHdhcnVtIEJpZXIgYmVzc2VyIGlzdCBhbHMgQ2hyaXN0ZW50dW0gKFRlZGR5LCAyMi4gRmViIDE5OTksIDAyOjAzOjMwKToKfiMhIHJuPVp3b2NrbGh1YmVyIHJ0PTkxOTYzMjI2NCByZz13aXR6ZQp+IyEgdGlkPTkxOTYzMjI2NAp6dSA3KSBTZWl0IHdhbm4gZGVubiBkYXMgbmljaHRtZWhyPyA7KQp6dSA4KSBOSW1tIG1pciBtYWwgbWVpbiBCaWVyIHdlZywgZGFubiB3ZWlzc3QgZHUgd2FzIGVpbiBncm9lc3NlcmVyIEtyaWVnIGlzdCEKenUgOSkgTm9jaCBuaWUgRXJla3Rpb25zcHJvYmxlbWUgd2VnZW4genV2aWVsIEJpZXIgZ2VoYWJ0PyAKClRlZGR5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLaW5kZXJtdW5kIChDeWFubiwgMjUuIEZlYiAxOTk5LCAyMzozNTo1MCk6Ck9oIER1IGZyb2VobGljaGUsIG9oIER1IGZyb2VobGljaGUsCktuYWJlbiBicmluZ2UgenVyIFdlaWhuYWNodHN6ZWl0Li4uCgogIEFsc28gd2FzIHNpY2gga2xlaW5lIE1hZWRjaGVuIGhldXR6dXRhZ2Ugd3VlbnNjaGVuLi4uLgoKICBDeWFubiAoc3RhdW50IGltbWVyIHdpZWRlcikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1cyBha3R1ZWxsZW0gQW5sYXNzLi4uIChHcmltbWJvcm4sIDI2LiBGZWIgMTk5OSwgMDA6NDc6MTgpOgpXb21pdCBzdWNodCBtYW4gbmFjaCB2b24gZWluZXIgTGF3aW5lIHZlcnNjaHVldHRldGVuIFNraWZhaHJlcm4/Ck1pdCBMYXdpbmVuc3B1ZXJodW5kZW4uCgpVbmQgd29taXQgc3VjaHQgbWFuIG5hY2ggdm9uIGVpbmVyIExhd2luZSB2ZXJzY2h1ZXR0ZXRlbiBTbm93Ym9hcmRmYWhyZXJuPwpNaXQgRHJvZ2Vuc3B1ZXJodW5kZW4uCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlc2NobGVjaHQgZGVzIENvbXB1dGVycyAoRGllZGVyLCAyNi4gRmViIDE5OTksIDE1OjEzOjIwKToKSW4gZWluZW0gU3RyZWl0Z2VzcHJhZWNoIHp3aXNjaGVuIENvbXB1dGVyYW53ZW5kZXJuIHd1cmRlIHp1IGtsYWVyZW4gdmVyc3VjaHQsCm9iIGRlcgpDb21wdXRlciAibWFlbm5saWNoIiBvZGVyICJ3ZWlibGljaCIgc2VpLiBEaWUgRnJhdWVuIHZvdGllcnRlbiBmdWVyCiJtYWVubmxpY2giIHdlaWw6Ci0gTWFuIG11c3MgaWhuIGVyc3QgYW5tYWNoZW4sIHVtIHNlaW5lIEF1Zm1lcmtzYW1rZWl0IHp1IGVycmVnZW4uIAotIEVyIGhhdCBqZWRlIE1lbmdlIFdpc3NlbiwgaXN0IGFiZXIgdHJvdHpkZW0gcGxhbmxvcy4gCi0gRXIgc29sbHRlIGVpbmVtIGhlbGZlbiwgUHJvYmxlbWUgenUgbG9lc2VuLCBkaWUgaGFsYmUgWmVpdCBhYmVyIGlzdCBlcgpzZWxic3QgZGFzCiAgICAgICBQcm9ibGVtLiAKLSBTb2JhbGQgbWFuIHNpY2ggZWluZW4genVsZWd0LCBrb21tdCBtYW4gZHJhdWYsIGRhc3MsIHdlbm4gbWFuIGVpbiBiaXNzY2hlbgogICAgICAgZ2V3YXJ0ZXQgaGFldHRlLCBlaW4gYmVzc2VyZXIgenUgaGFiZW4gZ2V3ZXNlbiB3YWVyZS4gCgpEaWUgTWFlbm5lciBzdGltbXRlbiBhdXMgZm9sZ2VuZGVuIEdydWVuZGVuIGZ1ZXIgIndlaWJsaWNoIjogCi0gTmljaHQgZWlubWFsIGRlciBTY2hvZXBmZXIgdmVyc3RlaHQgaWhyZSBpbm5lcmUgTG9naWsuIAotIERpZSBTcHJhY2hlLCBtaXQgZGVyIHNpZSBzaWNoIHVudGVyZWluYW5kZXIgdmVyc3RhZW5kaWdlbiwgaXN0IGZ1ZXIgbmllbWFuZApzb25zdAogICAgICAgdmVyc3RhZW5kbGljaC4gCi0gU29nYXIgZGllIGtsZWluc3RlbiBGZWhsZXIgd2VyZGVuIGltIExhbmd6ZWl0Z2VkYWVjaHRuaXMgenVyIHNwYWV0ZXJlbgogICAgICAgVmVyd2VuZHVuZyBhYmdlc3BlaWNoZXJ0LiAKLSBTb2JhbGQgbWFuIGVpbmVuIGhhdCwgZ2VodCBmYXN0IGRhcyBnYW56ZSBHZWxkIGZ1ZXIgWnViZWhvZXIgZHJhdWYuIAoKCkRpZWRlcgpQUzogU29ycnkgZnVlciBGb3JtYXQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktlbm50IGlociBkZW4gc2Nob24/IChBbmF0b2wsICAxLiBNYXIgMTk5OSwgMTU6MjA6MzgpOgoiSW5mb3JtYXRpa2VyIGtvZW5uZW4gcHJvZ3JhbW1pZXJlbi4iCgpBbmF0b2wgOm8pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSU0gQU5HRUJPVDogQVVTUkVERU5LQVRBTE9HICJvbmUgZm9yIGFsbCIgKEFuYXRvbCwgIDEuIE1hciAxOTk5LCAxNTo1MDo0Mik6Cn4jISBvbj1BbmF0b2wgb3Q9OTIwMzAzNDMwIG9nPWFuemVpZ2VuCkhldXRlOiBQYWRyZWljIFtuci4gMzM0XQoKW1NlaGVyOlBhZHJlaWNdIHF1YXRzY2ggZXMgaXN0IGVpbmZhY2ggc3RhbmRhcmRpc2llcnQgd29yZGVuCgpBbmF0b2wgOikKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXJidW5nIChBbnRoZWEsICAyLiBNYXIgMTk5OSwgMTY6MTA6MTQpOgpEZXIgbmV1ZSBXZXJiZXNwcnVjaCBhdXMgT2VzdGVycmVpY2g6CgpLb21tZW4gU2llIG5hY2ggR2FsdHVlciEgSGllciBnZWh0IGVzIHRpZXJpc2NoIGFiIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxhd2luZSAoQW50aGVhLCAgMi4gTWFyIDE5OTksIDE2OjE1OjA2KToKS29tbXQgbmUgTGF3aW5lIG1pdCB6d2VpIEJsb25kaW5lbiBhdXMgZGVyIEJhZWNrZXJlaSwgd2FzIGhhdCBzaWUgYmVzdGVsbHQ/CgpOaWNodHMsIExhd2luZW4gbmVobWVuIGFsbGVzLCB3YXMgc2llIGtyaWVnZW4ga29lbm5lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXZXJidW5nIChQcmEsICAyLiBNYXIgMTk5OSwgMTY6NDA6MTApOgp+IyEgcm49QW50aGVhIHJ0PTkyMDM5MTAxNCByZz13aXR6ZQp+IyEgdGlkPTkyMDM5MTAxNApkYXMgaXN0IGtlaW4gV2l0eiwgc29uZGVybiBkaWUgV2FocmhlaXQhIEljaCB6aXRpZXJlIG1hbCBhdXMgZGVyIHRheiAKdm9uIGdlc3Rlcm46CgpBdWZtdW50ZXJuZGUgV29ydGUgdm9tIElzY2hnbGVyIFNjaG5lZWtvZW5pZwoKRGVyIGFscyAiU2NobmVla29lbmlnIHZvbiBJc2NoZ2wiIGJla2FubnRlIHVuZCBvZmZlbmJhciBsZWljaHQKdWViZXJnZXNjaG5hcHB0ZSBIb3RlbGllciBHdWVudGhlciBBbG95cyBzdGVsbHQgc2ljaCBuYWNoIGRlcgpMYXdpbmVua2F0YXN0cm9waGUgaW0gUGF6bmF1bnRhbCBhdWYgenVzYWV0emxpY2hlIFRvdXJpc3RlbiBlaW4uCiJXaXIgbXVlc3NlbiBqZXR6dCBkYXMgUG9zaXRpdmUgaGVyYXVzc3RlbGxlbi4gRGFzIGhlaXNzdDogRXMgZ2lidAp3aWVkZXIgZWluZW4gV2ludGVyLiBEYXMgaXN0IGVpbiB0b2xsZXMgWnVrdW5mdHNzaWduYWwiLCBzYWd0ZSBBbG95cwpkZXIgTXVlbmNobmVyIEFiZW5kemVpdHVuZy4gIkRpZSBMZXV0ZSB3b2xsZW4gaW4gZGllIEhvZWxsZSwgdW5kCnNpZSBsaWViZW4gSXNjaGdsLCB3ZWlsIGVzIFNwYXNzIHVuZCBFbnRlcnRhaW5tZW50IGdpYnQsIGtlaW5lClRyaXN0ZXNzZSBvZGVyIFdlaG11dC4iIFdlbm4gYW0gRW5kZSAiaW4gZGVuIEtvZXBmZW4iCnVlYnJpZ2JsaWViZSwgImRhc3MgZXMgaW4gSXNjaGdsIGJlYnQgdW5kIGtyYWNodCwgZGFubiBpc3QgZGFzIGRvY2gKdG9sbCIsIHNhZ3RlIEFsb3lzLCBkZXNzZW4gVmF0ZXIgZGVtIFRvdXJpc211cyBpbiBJc2NoZ2wgYWxzCkJ1ZXJnZXJtZWlzdGVyIG5ldWUgSW1wdWxzZSBnZWdlYmVuIGhhdHRlLiBEZXIgVG91cmlzbXVzIHNlaSAid2llCmVpbmUgTGF3aW5lOiBXZW5uIGVyIGVpbm1hbCBsb3NnZXRyZXRlbiBpc3QsIGthbm4gaWhuIG5pZW1hbmQgbWVocgpzdG9wcGVuIi4gVm9yIGRlbSBVbmdsdWVjayBoYWJlIGVyIGluIFdpZW4gdWViZXIgZWluZSBCaWVubmFsZQpvZGVyIGVpbmUgRG9jdW1lbnRhIGluIElzY2hnbCB2ZXJoYW5kZWx0LiAiSWNoIHNlaGUgZGllIFp1a3VuZnQ6CklzY2hnbCBhbHMgZWluIHdlbHRiZWthbm50ZXIgU2tpb3J0IG1pdCBncm9zc2VuIEV2ZW50cyIsIHNhZ3RlIEFsb3lzLgoiSXNjaGdsIGdhcmFudGllcnQgZGFzIEdsdWVjay4iCgooaHR0cDovL3d3dy50YXouZGUvdHBsLzE5OTkvMDMvMDEubmYvdGV4dD9UbmFtZT1hMDAzNSZsaXN0PVRBWl93YSZpZHg9MykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwaWVnZWwgKERpZWRlciwgIDUuIE1hciAxOTk5LCAxMzo1Mjo1OSk6ClRyaXR0IGVpbmUgRnJhdSB2b3IgZGVuIFNwaWVnZWwgdW5kIHNhZXVzZWx0OgoiU3BpZWdsZWluIFNwaWVnbGVpbiBhbiBkZXIgV2FuZCwgd2VyIGlzdCBkaWUgU2Nob2Vuc3RlIGltIGdhbnplbiBMYW5kPyIKRGFyYXVmIGRlciBTcGllZ2VsOgoiVHJpdHQgbWFsIHp1ciBTZWl0ZSwgaWNoIHNlaCBuaXghIgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPLVRvbiBJbmZvcm1hdGlrIFByb2YuIFVuaSBIb2hlbmhlaW0gKERpZWRlciwgIDUuIE1hciAxOTk5LCAxMzo1Nzo1Myk6CmVyc3RlIFZvcmxlc3VuZzoKU2llIHVuZCBpY2gsIHdpciBoYWJlbiBldHdhcyBnZW1laW5zYW06IFdpciBhbGxlIGJlZmluZGVuIHVucyB6dW0gZXJzdGVuIE1hbAppbiBlaW5lciBEYXRlbmJhbmstVm9ybGVzdW5nIC0gbWl0CmRlbSBrbGVpbmVuIFVudGVyc2NoaWVkOiBJY2ggbXVzcyBzaWUgaGFsdGVuLiBTaWUga29lbm5lbiBtaWNoIGFsc28gbWl0CmdlemllbHRlbiBad2lzY2hlbmZyYWdlbiBnYW56IHNjaG9lbiBpbgpWZXJsZWdlbmhlaXQgYnJpbmdlbi4gQWJlciBpY2gga2FubiBJaG5lbiB2ZXJzaWNoZXJuOiBXZW5uIFNpZSBkYXMgdHVuLCB3ZXJkZQppY2ggU2llIGluIGRlciBWb3JkaXBsb21wcnVlZnVuZwplYmVuc28gaW4gVmVybGVnZW5oZWl0IGJyaW5nZW4uLi4KCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWndlcmdlLi4uIChLaWxhciwgIDguIE1hciAxOTk5LCAxOTozMTo1NCk6CihNZWxvZGllIDogSW0gRnJodGF1IHp1IEJlcmdlKSA6CgogICAgICIgSW0gRnJodGF1IGRpZSBad2VyZ2UsIHNpZSBnZWhuLCBmYWxsZXJhCiAgICAgc2llIHRhdW1lbG4sIHNpZSBzY2h3YW5rZW4gdW5kIHNpZSBncmhsbiwgZmFsbGVyYQogICAgIEphIHNlaHQsIHdpZSBrcnVtbSBzaWUgbGF1ZmVuLAogICAgIGRlbm4gZ2VzdGVybiB3YXInbiBzaWUgc2F1ZmVuLgogICAgIElociBrZW5udCBkYXMsIElociB3YXJ0IGRhcyBqYSBhdWNoIHNjaG9uIG1hbCAuIC4gLgoKICAgICBWb20gRnJlaWJpZXIgZGllIFp3ZXJnZSwgc2llIGtvbW1uLCBsYWxsYWxsYQogICAgIHp1IGVpbmVyIGFuZGVybiBLbmVpcGUgd29sbG4gc2llIHppZWhuLCBsYWxsYWxsYQogICAgIFNpZSBzaW5kIGdyYWQgcmF1c2dlZmxvZ2VuLAogICAgIHdlaWwgc2llIHNpY2ggbmFja3QgYXVzem9nZW4uCiAgICAgRGVyIFN1ZmYgbWFjaHQgc2llIGFsbGUgcGVydmVycywgdHJhbGxhbGxhIC4gLiAuCgogICAgIEltIEZyaHRhdSBkaWUgWndlcmdlIGJsZWlibiBzdGVobiwgZmFsbGVyYQogICAgIFNpZSBrb3R6ZW4gaW4gZGllIEJzY2hlIHVuZCBkaWUgU2VlbiwgZmFsbGVyYQogICAgIFdhcyBzb2xsIG1hbiBkYXp1IHNhZ2VuLAogICAgIHNpZSBrbm4gaGFsdCBuaWNodHMgdmVydHJhZ2VuLgogICAgIE5hamEgWndlcmdlIHNpbmQgbnVuIG1hbCBibGQsIGZhbGxlcmEgLi4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQnV0dG9ucyAoWm9vaywgIDkuIE1hciAxOTk5LCAyMzozOToxNyk6Cn4jISBybj1BbGluZSBydD05MjA5OTU1Mzkgcmc9cGFydHkKfiMhIHRpZD05MjA5OTI1MDgKRGFzIGVyaW5uZXJ0IG1pY2ggYW4gZGVuIFdpdHogYXVzIGRlciBlaGVtYWxpZ2VuIEREUjoKCktvbW10IGVpbiBNYW5uIGluIGVpbiBXYXJlbmhhdXMgdW5kIGZyYWd0IGRvcnQgZWluZW4gVmVya2FldWZlcjoKIkhhYmVuIFNpZSBoaWVyIGtlaW5lIEhhbmRzY2h1aGU/IiBBbnRvd3J0ZXQgZGVyOgoiT2gsIGRhIG11ZXNzZW4gU2llIGluIGRlbiBkcml0dGVuIFN0b2NrIGdlaGVuLCBoaWVyIHVudGVuIGhhYmVuIHdpciBudXIKa2VpbmUgSGFuZHR1ZWNoZXIuIgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmNoaW5lc2lzY2hlIFN0cmFmZW4gKERpZWRlciwgMTIuIE1hciAxOTk5LCAxMjoyMzo1MCk6CkVpbiBqdW5nZXIgTWFubiBoYXR0ZSBzaWNoIGltIFdhbGQgdmVybGF1ZmVuIHVuZCBrYW0gbmFjaCBzdHVuZGVubGFuZ2VyIApIZXJ1bWlycmVyZWkgYmVpIGVpbmJyZWNoZW5kZXIgRHVua2VsaGVpdCBhbiBlaW5lbSBrbGVpbmVuIEhhdXMgYW4uIEF1ZiAKc2VpbiBLbG9wZmVuIG9lZmZuZXRlIGVpbiB1cmFsdGVyIENoaW5lc2UgbWl0IGVpbmVtIGxhbmdlbiBncmF1ZW4gQmFydCAKZGllIFR1ZXIuICJJY2ggaGFiZSBtaWNoIHZlcmlycnQiIHNhZ3RlIGRlciBqdW5nZSBNYW5uLCAia2FubiBpY2ggYml0dGUgCmJlaSBJaG5lbiB1ZWJlcm5hY2h0ZW4/IiAiTmF0dWVybGljaCIgYW50d29ydGV0IGRlciBDaGluZXNlLCAiZXMgZ2lidCBudXIgCmVpbmUgQmVkaW5ndW5nLiBXZW5uIER1IG1laW5lIFRvY2h0ZXIgYXVjaCBudXIgYmVydWVocnN0LCB3ZXJkZSBpY2ggRGljaCAKbWl0IGRlbiBkcmVpIHNjaGxpbW1zdGVuIGNoaW5lc2lzY2hlbiBTdHJhZmVuIGJlbGVnZW4uIiAiT0siIHNhZ3RlIGRlciAKanVuZ2UgTWFubiwgZGVyIGRhcmFuIGRhY2h0ZSwgZGFzcyBiZWkgZGVtIEFsdGVyIGRlcyBDaGluZXNlbiBkaWUgVG9jaHRlciAKYXVjaCBzY2hvbiBiZXJlaXRzIHNlaHIgYWx0IHNlaW4gbXVlc3N0ZSB1bmQgYmV0cmF0IGRhcyBIYXVzLgpLdXJ6IHZvciBkZW0gQWJlbmRlc3NlbiBrb21tdCBkaWUgVG9jaHRlciBkaWUgVHJlcHBlIHJ1bnRlciB1bmQgc2llIGlzdCAKbmljaHQgbnVyIGp1bmcgc29uZGVybiBhdWNoIGJpbGRzY2hvZW4gbWl0IGVpbmVyIGZhbnRhc3Rpc2NoZW4gRmlndXIuIApPZmZlbnNpY2h0bGljaCBmYW5kIHNpZSBkZW4ganVuZ2VuIE1hbm4gZWJlbmZhbGxzIGF0dHJha3RpdiwgenVtaW5kZXN0IAprb25udGUgc2llIHdhZWhyZW5kIGRlcyBFc3NlbnMgbmljaHQgYXVmaG9lcmVuLCBpaG4gYW56dXNlaGVuIHVuZCBpaG0gCnp1enVsYWVjaGVsbi4gRXIgZGFjaHRlIGFiZXIgYW4gZGllIFdhcm51bmcgZGVzIGFsdGVuIENoaW5lc2VuIHVuZCAKaWdub3JpZXJ0ZSBzaWUgdW5kIGdpbmcgZGlyZWt0IG5hY2ggZGVtIEFiZW5kZXNzZW4gaW5zIEJldHQuIFdhZWhyZW5kIGRlciAKTmFjaHQgaGllbHQgZXIgZXMgbmljaHQgbGFlbmdlciBhdXMgdW5kIHNjaGxpY2ggc2ljaCBkb2NoIGZ1ZXIgZWluZSAKTGllYmVzbmFjaHQgaW4gaWhyIFppbW1lciwgc2VociBkYXJ1bSBiZW11ZWh0LCBrZWluIEdlcmFldXNjaCB6dSBtYWNoZW4uCkt1cnogdm9yIGRlbSBNb3JnZW5ncmF1ZW4gc2NobGljaCBlciBzaWNoIGRhbm4genVydWVjayBpbiBzZWluIFppbW1lciwgCmVyc2Nob2VwZnQgYWJlciBnbHVlY2tsaWNoLgpBbHMgZXIgYXVmd2FjaHQsIHNwdWVydCBlciBlaW5lbiBncm9fZW4gRHJ1Y2sgYXVmIHNlaW5lciBCcnVzdC4gRXIgCm9lZmZuZXQgZGllIEF1Z2VuLCBzaWVodCBlaW5lbiByaWVzaWdlbiBTdGVpbiBhdWYgc2VpbmVyIEJydXN0IG1pdCBkZW0gClpldHRlbDpDaGluZXNpc2NoZSBTdHJhZmUgMTogZ3Jvc3NlciBTdGVpbiBhdWYgZGVyIEJydXN0LiAiTmFqYSwgZGFzIGlzdCAKbmljaHQgdG9sbCwgYWJlciB3ZW5uIGRhcyBhbGxlcyBzZWluIHNvbGwsIHdhcyBkZW0gQWx0ZW4gZWluZmFlbGx0LCBkYW5uIApoYWJlIGljaCBrZWluIFByb2JsZW0iIGRlbmt0IGVyIHVuZCBuaW1tdCBkZW4gU3RlaW4gdW5kIHdpcmZ0IGlobiBhdXMgZGVtIApGZW5zdGVyLiBJbiBkZW0gTW9tZW50IGJlbWVya3QgZXIgZWluZW4gendlaXRlbiBaZXR0ZWw6IENoaW5lc2lzY2hlIApTdHJhZmUgMjogU3RlaW4gbWl0IGVpbmVtIFNlaWwgYW4gZGVtIGxpbmtlbiBIb2RlbiBmZXN0Z2VidW5kZW4uIEluIGVpbmVtIApQYW5pa2FuZmFsbCBzaWVodCBlciBydW50ZXIgdW5kIHN0ZWxsdCBmZXN0LCBkYV8gc2ljaCBkYXMgU2VpbCBnbGVpY2ggCnNwYW5uZW4gd2lyZC4gRXIgdWViZXJsZWd0IHNpY2gsIGRhc3MgZWluIHBhYXIgZ2Vicm9jaGVuZSBLbm9jaGVuIGltbWVyIApub2NoIGJlc3NlciBhbHMgZWluZSBLYXN0cmF0aW9uIHNpbmQgdW5kIHNwcmluZ3QgYXVzIGRlbSBGZW5zdGVyIGRlbSAKU3RlaW4gaGludGVyaGVyLiBXYWVocmVuZCBkZXMgRmFsbHMgc2llaHQgZXIgYXVmIGRlbSBCb2RlbiBlaW4gZ3Jvc3NlcyAKU2NoaWxkIGF1ZiBkZW0gc3RlaHQ6IENoaW5lc2lzY2hlIFN0cmFmZSAzOiByZWNodGVyIEhvZGVuIG1pdCBlaW5lbSBTZWlsIAphbiBkZW4gQmV0dHBmb3N0ZW4gZ2VidW5kZW4uCgpEaWVkZXIsIGtpY2hlcm5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpnZW5hdSA6KSAoQmlyZHksIDEyLiBNYXIgMTk5OSwgMTU6MDc6MDUpOgpXYXMgbWFjaHQgZWluZSBGcmF1LCB3ZW5uIHNpZSBlaW4gbGVlcmVzIEJsYXR0IFBhcGllciBhbnN0YXJydCA/ClNpZSBsaWVzdCBzaWNoIGlocmUgUmVjaHRlIGR1cmNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcm9kZW8gKEJpcmR5LCAxMi4gTWFyIDE5OTksIDE1OjE5OjA1KToKRGllIFJvZGVvLVN0ZWxsdW5nOgpEZXIgTWFubiBuaW1tdCBzaWUgdm9uIGhpbnRlbiB1bmQgc2FndCBkYW5uOiJJY2ggaGFiZSBBSURTICEiCkRhbm4gbXVzcyBlciB2ZXJzdWNoZW4sIGRyZWkgTWludXRlbiBhdWYgaWhyIHp1IGJsZWliZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbmdlbmllciAoRGllZGVyLCAxNS4gTWFyIDE5OTksIDE3OjAyOjI2KToKTy1Ub24gZWluZXMgUHJvZnMgYW4gdW5zZXJlciBIb2Noc2NodWxlOgoKIkVpbiBJbmdlbmlldXIgZGVyIG5pY2h0IHNhZXVmdCwgaXN0IHdpZSBlaW4gTW90b3IgZGVyIG5pY2h0IGxhZXVmdCEiCgpEaWVkZXIsIGtpY2hlcm5kIHVuZCBfa2Vpbl8gSW5nZW5pZXVyIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHJvZGVvIChHYW5kbywgMTUuIE1hciAxOTk5LCAyMDoyODowNyk6Cn4jISBybj1CaXJkeSBydD05MjEyNTE5NDUgcmc9d2l0emUKfiMhIHRpZD05MjEyNTE5NDUKZGVyIGlzIGVpZ3RsIHZpZWwgYmVzc2VyOgpSb2RlbyBiZWltIHNleDoKQXVmIGRlbiBSdWVja2VuIGRlciBGcmFuIHNldHplbiwgU2llIGJlaSBkZW4gSGFhcmVuIHBhY2tlbiB1bmQgc2FnZW46IFNvIG1hZ3MKbWVpbmUgU2VrcmV0YWVyaW4gYW0gbGllYnN0ZW4uClVuZCBkYW5uIGRyYXVmYmxlaWJlbiA7LSkKR2FuZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp3ZXJnZSAoU2x5Zm94LCAxNi4gTWFyIDE5OTksIDAzOjI1OjE4KToKWndlcmdlIGtvZW5uZW4gYmVrYW5udGxpY2ggbmljaHQgYXVmIGRyZWkgemFlaGxlbi4KV2FzIHNhZ3QgZWluIFp3ZXJnLCB3ZW5uIGVyIGRyZWkgRWxmZW4gc2llaHQ/CgoKCgoKCgoKCgoKCiJEdSwgZGEga29tbWVuIHp3ZWkgRWxmZW4sIGRpZSBoYWJlbiBub2NoIGVpbmVuIGRhYmVpISIKCiAgIFNseQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFp3ZXJnZSAoV29vZHksIDE5LiBNYXIgMTk5OSwgMDE6NDI6NTcpOgp+IyEgcm49U2x5Zm94IHJ0PTkyMTU1NDcxOCByZz13aXR6ZQp+IyEgdGlkPTkyMTU1NDcxOApOYSB1bmQ/IENvbXB1dGVyIGtvZW5uZW4gc28gZ2VzZWhlbiBhdWNoIG51ciBiaXMgMiB6YWVobGVuLiA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkltbWVyIHdpZWRlciBha3R1ZWxsLi4uIChNb3Jnb3RoLCAyMy4gTWFyIDE5OTksIDEwOjQyOjQwKToKWWVzdGVyZGF5LApBbGwgdGhvc2UgYmFja3VwcyBzZWVtZWQgYSB3YXN0ZSBvZiBwYXkuCk5vdyBteSBkYXRhYmFzZSBoYXMgZ29uZSBhd2F5LgpPaCBJIGJlbGlldmUgaW4geWVzdGVyZGF5LgoKU3VkZGVubHksClRoZXJlJ3Mgbm90IGhhbGYgdGhlIGZpbGVzIHRoZXJlIHVzZWQgdG8gYmUsCkFuZCB0aGVyZSdzIGEgbWlsZXN0b25lCmhhbmdpbmcgb3ZlciBtZQpUaGUgc3lzdGVtIGNyYXNoZWQgc28gc3VkZGVubHkuCgpJIHB1c2hlZCBzb21ldGhpbmcgd3JvbmcKV2hhdCBpdCB3YXMgSSBjb3VsZCBub3Qgc2F5LgoKTm93IGFsbCBteSBkYXRhJ3MgZ29uZQphbmQgSSBsb25nIGZvciB5ZXN0ZXJkYXktYXktYXktYXkKClllc3RlcmRheSwKVGhlIG5lZWQgZm9yIGJhY2stdXBzIHNlZW1lZCBzbyBmYXIgYXdheS4KSSBrbmV3IG15IGRhdGEgd2FzIGFsbCBoZXJlIHRvIHN0YXksCk5vdyBJIGJlbGlldmUgaW4geWVzdGVyZGF5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NobmVld2l0dGNoZW4sIEhlcmt1bGVzIHVuZCBRdWFzaW1vZG8uLi4gKFNseWZveCwgMjQuIE1hciAxOTk5LCAyMjozNDo0Nik6ClNjaG5lZXdpdHRjaGVuLCBIZXJrdWxlcyB1bmQgUXVhc2ltb2RvIHN0cmVpdGVuIHNpY2gsIHdlciBkaWUgYmVzc2VyZW4KUXVhbGl0YWV0ZW4gaGF0LgpTY2huZWV3aXR0Y2hlbiBnZWh0IGRhcmF1ZmhpbiB6dW0gU3BpZWdlbCB1bmQgZnJhZ3Q6CiJTcGllZ2xlaW4sIFNwaWVnbGVpbiBhbiBkZXIgV2FuZCwgd2VyIGlzdCBkaWUgc2Nob2Vuc3RlIGluIGdhbnplbiBMYW5kPyIKRGVyIFNwaWVnZWwgYW50d29ydGV0OiAiU2NobmVld2l0dGNoZW4sIGRhcyBiaXN0IER1LiIKRGFyYXVmaGluIGZyYWd0IEhlcmt1bGVzLCB3ZXIgZGVyIHN0YWVya3N0ZSBpc3QuIERlciBTcGllZ2VsIGFudHdvcnRldDoKIkRhcyBiaXN0IER1LCBIZXJrdWxlcy4iCkRhbm4gZnJhZ3QgUXVhc2ltb2RvLCB3ZXIgZGVyIGhhZXNzbGljaHN0ZSBpc3QuIEVyIGhvZXJ0IGRlbiBTcGllZ2VsCmFudHdvcnRlbiwgdW5kIFF1YXNpbW9kbyBzY2hhdXQgdm9lbGxpZyBkZXByaW1pZXJ0IGRyZWluLiBEYXJhdWZoaW4KZnJhZ2VuIFNjaG5lZXdpdHRjaGVuIHVuZCBIZXJrdWxlcywgd2FzIGRlbm4gbG9zIHNlaS4gUXVhc2ltb2RvOgoiV2VyIHp1bSBUZXVmZWwgaXN0IEd1aWxkbyBIb3JuPz8/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2Vja2VyLi4uIChKYXNwZXIsIDI1LiBNYXIgMTk5OSwgMTQ6NTY6NTkpOgoiTGllYmxpbmcsIHdpciBoYWJlbiB2ZXJzY2hsYWZlbiIsIHNjaHJlY2t0IGRpZSBFaGVmcmF1IGhvY2guCkRlciBNYW5uIHdpcmZ0IGVpbmVuIEJsaWNrIGF1ZiBkZW4gV2Vja2VyOiAiRXIgc3RlaHQhIgoiS29tbXQgbmljaHQgaW4gRnJhZ2UiLCB3ZWhydCBzaWUgYWIuICJTb25zdCBiZWtvbW1zdCBkdSBkZW4gYnVzIG5pY2h0IG1laHIuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdXNzYmFsbHNwaWVsZXIuLi4gKEphc3BlciwgMjUuIE1hciAxOTk5LCAxNTowMDoxNyk6CkVpbiBmdXNzYmFsbHNwaWVsZXIgd2lyZCBnZWZyYWd0LCB3YXMgZXIgYW4gZGllc2VtIHNwb3J0IGRlbm4gc28gc2Nob2VuCmZpbmRldC4KImRhcyBzcGllbGVuIGlzdCBzY2hvZW4sIGRhcyBnZWxkIGlzdCBhdWNoIGdhbnogZ3V0LCBhYmVyIGFtIG1laXN0ZW4gc3Bhc3MKbWFjaHQgZXMgbWlyLCBtaWNoIHZvciAyMG1pbGxpb25lbiB6dXNjaGF1ZXJuIGFtIHNhY2sgenUga3JhdHplbi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhvbnVsdWx1IDopIChKYXNwZXIsIDI1LiBNYXIgMTk5OSwgMTU6MDc6MTgpOgplaW5lIG5ldWUgbWl0YXJiZWl0ZXJpbiBpbSBwdWZmIHdpcmQgdm9uIGRlciBjaGVmaW4gZWluZ2V3aWVzZW4uCmRlciBlcnN0ZSBrdW5kZSBrb21tdCB1bmQgYWV1c3NlcnQgc2VpbmVuIHd1bnNjaC4gc2llIGZyYWd0IGRpZQpjaGVmaW46ImNoZWZpbiBkZXIgd2lsbHMgZnJhbnpvZXNpY2gsIGFiZXIgaWNoIHdlaXNzIG5pY2h0IHdhcyBkYXMKaXN0Ii4gImdhbnogZWluZmFjaCIsIHNhZ3QgZGllIGNoZWZpbiwiZHUgc3BpdHp0IGRlbiBtdW5kIHVuZCBzYWdzdAonaG9ub2x1bHUnIGFsbGVzIGFuZGVyZSBtYWNodCBkZXIgc2VsYnN0LiIKU2llIGdlaHQgenVydWVjayBpbnMgemltbWVyLiBhdWYgZWlubWFsIGVpbiBsYXV0ZXIgc2NocmVpLgpEaWUgY2hlZmluIHN0dWVyenQgaGluZWluICIgd2FzIGlzdCBwYXNzaWVydD8iCmFudHdvcnRldCBkYXMgbWFlZGNoZW4gImVzIHR1dCBtaXIgbGVpZCwgYWJlciBpY2ggaGFiZSBkaWUgaW5zZWwKdmVyd2VjaHNlbHQuICdncmFuIGNhbmFyaWEnIGhhYiBpY2ggZ2VzYWd0Li4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYmxhaC4uIChCb2luZywgMjUuIE1hciAxOTk5LCAxNToxMToyMik6Cn4jISBvbj1KYXNwZXIgb3Q9OTIyMzc0NjY0IG9nPWQuZ2ViaXJnZQoiRHUgUGFwaSB3YXMgaXN0IGVpbiB0cmFuc3Zlc3RpdD8iCiJEYSBtdXNzdCBkdSBtdXR0aSBkaWUgZnJhZ2VuLCBkZXIgd2Vpc3MgZGFzISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopIChKYXNwZXIsIDI1LiBNYXIgMTk5OSwgMTU6MTc6MTEpOgpXYXJ1bSBnaWJ0IGVzIGltIGlyYW4gbmllIGFtIGdsZWljaGVuIHRhZyBzZXh1YWxrdW5kZS0gdW5kCmZhaHJzY2h1bHVudGVycmljaHQ/Ck1hbiB3aWxsIGRpZSBrYW1lbGUgbmljaHQgdWViZXJsYXN0ZW4uLi4KCkphc3Blciwgd2VkZXIgc2V4aXN0IG5vY2ggcmFzc2lzdCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaW4gZWluZXIga25laXBlLi4uIChKYXNwZXIsIDI1LiBNYXIgMTk5OSwgMTU6MzI6MjQpOgplaW5lIGh1ZWJzY2hlIGJsb25kaW5lIGtvbW10IGFuIGRlbiB0cmVzZW4gdW5kIGRldXRldCBkZW0gYmFya2VlcGVyIGFuLCBlcgptb2VnZSB6dSBpaHIga29tbWVuLiBzaWUgZGV1dGV0IGlobSB3ZWl0ZXIgYW4sIHNpZSBtb2VjaHRlIGlobSBldHdhcyBpbnMgb2hyCmZsdWVzdGVybi4gYWxzbyBiZXVndCBlciBzaWNoIHp1IGlociBoaW4uIHNpZSBiZWdpbnQgaWhtIHNlaW5lbiBiYXJ0IHp1CmtyYXVsZW4gdW5kIGZyYWd0IGlobiAic2luZCBzaWUgaGllciBkZXIgY2hlZj8iLiBlciB2ZXJuZWludC4gc2llIHN0cmVpY2hlbHQKaWhtIHNlaW4gZ2VzaWNodCBtaXQgYmVpZGVuIGhhZW5kZW4gdW5kIGZyYWd0IGVybmV1dCAia29lbm5lbiBzaWUgaWhuCmhlcnJ1ZmVuPyBpY2ggbXVlc3N0ZSBtaXQgaWhtIHNwcmVjaGVuIi4gdW5kIHNpZSBiZWdpbm50IGlobSBtaXQgYmVpZGVuCmhhZW5kZW4gZHVyY2ggYmFydCB1bmQgaGFhcmUgenUgZmFocmVuLiBlciBiZWRhdWVydCwgZGVyIGNoZWYgc2VpIG5pY2h0IGltCmhhdXMuICJpY2ggaGFldHRlIGRhIGVpbmUgbmFjaHJpY2h0IGZ1ZXIgaWhuLCBrb2VubnRlbiBzaWUgc2llIGlobQpiZXN0ZWxsZW4/Ii4gdW5kIHNpZSBiZWdpbm50ICwgaWhyZW4gemVpZ2VmaW5nZXIgaW4gc2VpbmVuIG11bmQgcmVpbiB1bmQgcmF1cwp6dSBzY2hpZWJlbi4gImphIGRhcyBrYW5uIGljaCBzY2hvbiBtYWNoZW4uIHdpZSBsYXV0ZXQgc2llIiBzYWd0IGRlciBiYXJrZWVwZXIKdW5kIGRpZSBibG9uZGluZSBhbnR3b3J0ZXQgInNhZ2VuIHNpZSBpaG0sIGRhc3MgYXVmIGRlciBkYW1lbnRvaWxldHRlIGtlaW4Ka2xvcGFwaWVyIG1laHIgaXN0Li4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkgKEphc3BlciwgMjUuIE1hciAxOTk5LCAxNTo0MzozNyk6CmVpbiBnZWh0IGluIGVpbmUgb2VmZmVudGxpY2hlIHRvaWxldHRlIHVuZCBob2VydCBhdXMgZWluZXIga2FiaW5lIGVpbiBsZWlzZXMKc3RvZWhuZW4uIGZyYWd0IGVyICJpc3QgaGllciB3ZXI/IgphbnR3b3J0OiAiaW0gZ2VnZW50ZWlsLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSkpIChKYXNwZXIsIDI1LiBNYXIgMTk5OSwgMTU6NTQ6NTMpOgpzYWd0IGVpbmUgZnJhdSB6dSBlaW5lbSBuZXVlbiBiZWthbm50ZW4gJ2ljaCB3ZWlzcyBnYXJuaWNodCB3YXMgbWVpbmUKZnJldW5kaW5uZW4gc28gZmFzemluaWVyZW5kIGFuIGRpciBmaW5kZW4/IgplciBsYWVjaGVsdCBudXIgdW5kIGxlY2t0IHNpY2ggbGFuZ3NhbSB1ZWJlciBkaWUgYXVnZW5icmF1ZW4uLi4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgppbSBob3RlbC4uLiAoSmFzcGVyLCAyNS4gTWFyIDE5OTksIDE2OjAyOjQzKToKRWluIG1hbm4gcmVtcGVsdCBlaW5lIGZyYXUgYW4gZGVyIHJlemVwdGlvbiBhbi4gYmVpZGUgc2NoYXVuIGV0d2FzIHZlcnN0b2VydC4KTWFubjogJ3dlbm4gaWhyIGhlcnogc28gd2VpY2ggaXN0IHdpZSBpaHIgYnVzZW4sIGRhbm4gd2VyZGVuIHNpZSBtaXIKdmVyc2VpaGVuLicKRlJhdTogJ3dlbm4gaWhyIHNjaHdhbnogc28gaGFydCBpc3Qgd2llIGlociBlbGxib2dlbiwgZGFubiBiaW4gaWNoIGluIHppbW1lcgoyNDYnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGVVVVVVVVVVVVVVVVVVVVU1NTU0JBTExMTCAoWmFybml5YSwgMjUuIE1hciAxOTk5LCAxNzowMzowMSk6CgpIaSwgCgppY2ggd2Vpc3MgbmljaHQsIG9iIGljaCBkYXMgc2Nob25tYWwgZXJ3YWVobnQgaGFiZSBoaWVyLCBhYmVyIGVzIGdpYnQgZ2VyYWRlCmZ1ZXIgRnVzc2JhbGxmYW5zIGVpbiBIaWdobGlnaHQgaW0gTmV0ejogCgp3d3cuYmx1dGdyYWV0c2NoZS5kZQoKTWFyYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgKEplcnJpY28sIDI1LiBNYXIgMTk5OSwgMTc6NDQ6MDcpOgpFaW4gZWhlcGFhciBpc3QgaW0gemltbWVyIGVpbmVzIGtyYW5rZW5oYXVzZXMsIGRpZSBmcmF1IGhhdCB2b3Igd2VuaWdlbgpzdHVuZGVuIGVpbiBraW5kIGJla29tbWVuLiBkaWUgZnJhdSBsaWVndCBpbSBiZXR0IGFtIGZlbnN0ZXIgZGVzIHppbW1lcnMsIGV0d2EKOCBtZXRlciB2b24gZGVyIHR1ZXIgZW50ZmVybnQuIGRpZSB0dWVyIGdlaHQgYXVmIHVuZCBlaW4gcGZsZWdlciBrb21tdCBoZXJlaW4KbWl0IGRlbSBraW5kIGF1ZiBkZW0gYXJtLgpwbG9ldHpsaWNoIGRyZWh0IHNpY2ggZGVyIHBmbGVnZXIgdW0gdW5kIGZhZW5ndCBhbiBkYXMga2luZCBpbW1lciB1bmQgaW1tZXIKd2llZGVyIG1pdCBkZW0ga29wZiBnZWdlbiBkZW4gdHVlcnJhaG1lbiB6dSBzY2hsYWdlbi4gZGllIGVsdGVybiBzaW5kIGVudHNldHp0CnVuZCBrb2VubmVuIGhhcm5pY2h0IGdsYXViZW4gd2FzIHNpZSBkYSBzZWhlbi4gdmF0ZXI6J3NhZ2VuIHNpZSBtYWwgLCB3YXMKbWFjaGVuIHNpZSBkZW5uIGRhPz8uLiB1bnNlciBraW5kLi4uPy4uIgpkaWUgZnJhdSBpc3QgZmFzdCB2b3Igc2NocmVjayBvaG5tYWVjaHRpZyBnZXdvcmRlbi4uCm1laW4gZGVyIHBmbGVnZXI6ICJhcHJpbCxhcHJpbC4gZXMgd2FyIGRvY2ggdm9yaGVyIHNjaG9uIHRvdC4iCgoKSmVycmljbyB3YXJ0ZXQgYXVmIHZvbGxlIGxwIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgdHNjaHVlc3MgKENhdHdlYXpsZSwgMjYuIE1hciAxOTk5LCAxMzoyODozOSk6CkVpbiBTY2h3dWxlciwgZWluIGdlaXppZ2VyIFNjaG90dGUgdW5kIGVpbiBQbGF5Ym95IGtvbW1lbiBpbiBkZW4gSGltbWVsLgpBbiBkZXIgSGltbWVsc3Bmb3J0ZSB3ZXJkZW4gc2llIHZvbiBQZXRydXMgZ2V3YXJudCwgc2ljaCBpbSBIaW1tZWwgamEKb3JkZW50bGljaCB6dSB2ZXJoYWx0ZW4sIG5pY2h0IHNvIHdpZSBhdWYgZGVyIEVyZGUsIHNvbmRlcm4gZmxpZWdlbiBzaWUgc29mb3J0CndpZWRlciByYXVzLgpLZWluIFByb2JsZW0gc2FnZW4gc2ljaCBkaWUgZHJlaSB1bmQgd2FuZGVybiBpbiBkZW4gSGltbWVsIGhpbmVpbi4gCk5hY2ggZWluIHBhYWFyIE1ldGVybiBzaW5kIGF1ZiBkZXIgcmVjaHRlbiBTZWl0ZSBlaW5pZ2UgaHVlYnNjaGUgRW5nZWwgenUKc2VoZW4sIGRpZSBydWViZXJ3aW5rZW4uIERlciBQbGF5Ym95IGdlaHQgc29mb3J0IGF1ZiBzaWUgenUgdW5kIGZhZW5ndCBhbiB6dQpmbGlydGVuLgpQVUZGLCB1bmQgZXIgaXN0IHZlcnNjaHd1bmRlbi4gCkRlciBTY2hvdHRlOiAnT2ggTWFubiwgaGllciBnZWh0cyBhYmVyIHdpcmtsaWNoIGZsb3R0IHp1ciBTYWNoZS4nClZvcnNpY2h0aWcgZ2VoZW4gc2llIHdlaXRlci4gTmFjaCBlaW4gcGFhciBNZXRlcm4gbGllZ3QgZWluZSBlaW56ZWxuZSBNdWVuemUKYXVmIGVpbmVyIFdvbGtlLiBBbHMgZGVyIFNjaG90dGUgZ2llcmlnIHJ1ZWJlcnN0YXJydCwgc2FndCBkZXIgU2Nod3VsZToKJ0hleSwgcGFzcyBhdWYsIHdlbm4gRHUgRGljaCBfamV0enRfIGJ1ZWNrc3QsIHNpbmQgd2lyIF9iZWlkZV8gd2VnIHZvbQpGZW5zdGVyLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtlaW4gYnJ1ZWxsZXIsIGFiZXIgLi4uIChKYXNvbnJpZ2lkLCAyNi4gTWFyIDE5OTksIDE0OjQ2OjEyKToKClNvLCBoaWVyIGtvbW10IGtlaW4gQnJ1ZWxsZXIsIGVoZXIgd2FzIHp1bSBTY2htdW56ZWxuIC4uLgoKRWluZSBhbHRlciBKdWRlLCBkZXIgbmFjaCBkZW0gRmFsbCBkZXMgRWlzZXJuZW4gVm9yaGFuZ3MgZW5kbGljaCBkaWUgRXJsYXVibmlzCmVyaGFsdGVuIGhhdCwgYXVzIFJ1c3NsYW5kIGF1c3p1cmVpc2VuIHVuZCBuYWNoIElzcmFlbCB6dXJ1ZWNrenVrZWhyZW4sIGtvbW10CmR1cmNoIGRlbiBydXNzaXNjaGVuIFpvbGwuCgpEZXIgWm9lbGxuZXIgZHVyY2hzdWNodCBzZWluIEdlcGFlY2sgdW5kIGZpbmRldCBkYXJpbiBlaW5lIEJ1ZXN0ZS4KClpvZWxsbmVyIDogIldhcyBpc3QgZGFzID8/IgpKdWRlIDogIkR1IHNvbGxzdCBuaWNodCBmcmFnZW4gIldhcyBpc3QgZGFzID8iIHNvbmRlcm4gIldlciBpc3QgZGFzID8iLiBEYXMKaXN0IExlbmluLCBkZXIgdW5zIGRlbiBnb2xkZW5lbiBXZWcgenVtIFNvemlhbGlzbXVzIGdlemVpZ3QgaGF0IHVuZCBkYXMKUGFyYWRpZXMgYXVzIEVyZGVuLiIKCkRlciBab2VsbG5lciBzY2h1ZXR0ZWx0IHp3YXIgZGVuIEtvcGYsIHdpbmt0IGlobiBhYmVyIGR1cmNoLgoKTmFjaCBlaW5lbSBhbmdlbmVobWVuIEZsdWcgbGFuZGV0IGRlciBKdWRlIGltIGlzcmFlbGlzY2hlbiBab2xsIGluIFRlbCBBdml2LAp3byBzZWluIEdlcGFlY2sgYXVjaCBkdXJjaHN1Y2h0IHdpcmQsIHVuZCBhdWNoIGRlciBpc3JhZWxpc2NoZSBab2VsbG5lciBmaW5kZXQKZGllIEJ1ZXN0ZS4KClpvZWxsbmVyIDogIldhcyBpc3QgZGFzID8/IgpKdWRlIDogIkR1IHNvbGxzdCBuaWNodCBmcmFnZW4gIldhcyBpc3QgZGFzID8iIHNvbmRlcm4gIldlciBpc3QgZGFzID8iLiBEYXMKaXN0IExlbmluLCBkZXIgdW5zIHVudGVyZHJ1ZWNrdCBoYXQgaW4gUnVzc2xhbmQgdW5kIGRlciB1bnMgZGFyYW4gZ2VoaW5kZXJ0CmhhdCwgaW5zIEhlaWxpZ2UgTGFuZCB6dSByZWlzZW4sIGpldHp0IHdvIGljaCB3aWVkZXIgaGllciBiaW4sIHdlcmRlIGljaCBpaG4KLi4uLiAhISEiClpvZWxsbmVyIDogIk51ciBrZWluZW4gU2thbmRhbCBiaXR0ZSwgZ2VoZW4gc2llIHNjaG9uIGR1cmNoLiIKCk5hY2ggZWluZXIgVGF4aWZhaHJ0IGlzdCBlciBiZWkgc2VpbmVyIEZhbWlsaWUsIHp1IGRlciBhdWNoIGVpbiBoYWxid3VlY2hzaWdlcgpKdW5nZSBnZWhvZXJ0LCBkZXIgZGVyIE5lZmZlIGRlcyBKdWRlbiBpc3QuCgpBdWNoIGVyIGZpbmRldCBkaWUgQnVlc3RlIGltIEdlcGFlY2sgZGVzIEp1ZGVuLgoKTmVmZmUgOiAiT25rZWwsIHdlciBpc3QgZGFzID8/IgpKdWRlIDogIkR1IHNvbGxzdCBuaWNodCBmcmFnZW4gIldlciBpc3QgZGFzID8iLCBzb25kZXJuICJXYXMgaXN0IGRhcyA/Ii4gQWNodApLaWxvIEdvbGQgISEiCgoKCkphc29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptbWggOikgKE5vdmFzdG9ybSwgMzAuIE1hciAxOTk5LCAwMTozOTozNik6CkVpbiBNYW5uIHNpdHp0IGluIGRlciBLZWlwZSB1bmQgaGF0IGVpbiBHbGFzIHZvciBzaWNoCnN0ZWhlbi4gRWluIEZyZXVuZCBrb21tdCBoZXJlaW4sIG5pbW10IGRhcyBHbGFzIHVuZApraXBwdCBkZW4gSW5oYWx0IHJ1bnRlciwgb2huZSB6dSBmcmFnZW4uIERhIGVyYm9zdCBzaWNoIGRlcgplcnN0ZToKIldhcyBzb2xsIGRhcyBlaWdlbnRsaWNoPyBXYXMgaGFiIGljaCBudXIgZ2V0YW4uIEljaCBoYWIKaGV1dGUgd2lya2xpY2ggZWluZW4gdG90YWwgYmVzY2hpc3NlbmVuIFRhZyBoaW50ZXIgbWlyOgpCZWkgZGVyIEFyYmVpdCBiaW4gaWNoIHJhdXNnZWZsb2dlbiwgYXVmIGRlbSBIZWltd2VnCmhhYiBpY2ggZWluZW4gVW5mYWxsIGdlYmF1dC4gVG90YWxzY2hhZGVuLiBNZWluZSBGcmF1CmVyd2lzY2ggaWNoIG1pdCBtZWluZW0gYmVzdGVuIEZyZXVuZCBpbSBCZXR0LCBtZWluClNvaG4gaGF0IG5lIEJhbmsgdWViZXJmYWxsZW4gdW5kIGlzdCBlcndpc2NodCB3b3JkZW4gdW5kCm1laW5lIFRvY2h0ZXIgaXN0IHNjaHdhbmdlciB1bmQgd2Vpc3MgbmljaHQgbWVociwgdm9uCndlbS4gVW5kIGRhbm4ga29tbXN0IER1IGRhaGVyIHVuZCB0cmlua3N0IG1laW4gR2lmdAphdXMuLi4iIAoKICAgICBOb3ZhLCBnZWZ1bmRlbiBhdWYgd3d3LmtyYWVoc2VpdGUuZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBpbG90ZW53aXR6IChEaWVkZXIsICA2LiBBcHIgMTk5OSwgMjM6Mzc6MzgpOgpBbHMgSG9iYnlwaWxvdCBtdXNzIGljaCBoaWVyIG1hbCBuZW4gUGlsb3RlbndpdHogenVtIEJlc3RlbiBnZWJlbi4uLiB3ZWl0ZXJlCndlcmRlbiBmb2xnZW4sIHdlbm4gZGVyIEF1ZnNjaHJlaSBuaWNodCBhbGx6dSBncm9zcyBpc3QuLi4gOikKCkRpZSBMb3RzZW4gYW0gRnJhbmtmdXJ0ZXIgRmx1Z2hhZmVuIHNpbmQgaW50ZXJuYXRpb25hbCB3b2hsIGFscyB6aWVtbGljaAp1bmZyZXVuZGxpY2ggYmVrYW5udCwgc28gZXJ3YXJ0ZW4gc2llIHVudGVyIGFuZGVyZW0sIGRhc3MgZGllIGFua29tbWVuZGVuClBpbG90ZW4gaWhyZSBQYXJrcGxhZXR6ZSBnZW5hdSBrZW5uZW4uClNvIGthbSBlcyBlaW5lcyBUYWdlcyB6dSBmb2xnZW5kZW0gRnVua3ZlcmtlaHI6CgpCQSA3NDcgKFNwZWVkYmlyZCAyMDYpOgogICAgICJHb29kIG1vcm5pbmcgRnJhbmtmdXJ0LiBTcGVlZGJpcmQgMjA2IGNsZWFyIHRvIGFjdGl2ZS4iIApHcm91bmQ6CiAgICAgIkdvb2QgTW9ybmluZy4gVGF4aSB0byB5b3VyIGdhdGUuIgoKVGhlIEJyaXRpc2ggQWlyd2F5cyA3NDcgcHVsbHMgb250byB0aGUgbWFpbiB0YXhpd2F5IGFuZCBzdG9wcy4KCkdyb3VuZDoKICAgICAiU3BlZWRiaXJkLCBkbyB5b3Uga25vdyB3aGVyZSB5b3UgYXJlIGdvaW5nPyIgClNwZWVkYmlyZCAyMDY6CiAgICAgIlN0YW5kIGJ5LCBncm91bmQuIEknbSBsb29raW5nIHVwIHRoZSBnYXRlIGxvY2F0aW9uIG5vdy4iIApHcm91bmQgKGltcGF0aWVudGx5KToKICAgICAiU3BlZWRiaXJkIDIwNiwgaGF2ZSB5b3UgbmV2ZXIgZmxvd24gdG8gRnJhbmtmdXJ0IGJlZm9yZT8iIApTcGVlZGJpcmQgMjA2IChjb29sbHkpOgogICAgICJZZXMsIGluIDE5NDQuIEJ1dCBJIGRpZG4ndCBzdG9wLi4uIiAKCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVuZCBub2NobWFsIGVpbmVyLi4uIChEaWVkZXIsICA2LiBBcHIgMTk5OSwgMjM6NTg6NDYpOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBKZ2VyIHVuZCBlaW5lbSBTY2h8cnplbmpnZXI/CkVpbiBKZ2VyIGhhdCBkZW4gSGFzZW4gaW0gUnVja3NhY2ssIGRpZSBCfGNoc2UgZ2VzY2h1bHRlcnQgdW5kIGRlciBIdW5kIHN0ZWh0Cm5lYmVuIGlobS4KRWluIFNjaHxyemVuamdlciBoYXQgZGVuIEhhc2VuIGltIEJldHQsIGRpZSBIYW5kIGFuIGRlciBCfGNoc2UgdW5kIGRlciBIdW5kCnN0ZWh0IG5pY2h0Li4uIAoKCkRpZWRlciwgenUgZGVyIFVocnplaXQgZ3JhZCB6dSBmYXVsIHVtIGRpZSBVbWxhdXRlIHJhdXN6dWhhY2tlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9yZ290aC4uLiAoU2x5Zm94LCAgNy4gQXByIDE5OTksIDA5OjQ5OjU3KToKTW9yZ290aCBiZWtvbW10IHZvbiBNaWNyb3NvZnQgZWluZSBTdGVsbGUgbWl0IDUwMDAwICQvTW9uYXQgYW5nZWJvdGVuLgpTZWluZSBBdWZnYWJlOiBFciBtdXNzIGZ1ZXIgZGllIEtvbmt1cnJlbnogcHJvZ3JhbW1pZXJlbi4KCiAqbGFjaCoKCiAgIFNseWZveAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1vcmdvdGguLi4gKE1vcmdvdGgsICA3LiBBcHIgMTk5OSwgMDk6NTg6MjApOgp+IyEgcm49U2x5Zm94IHJ0PTkyMzQ3ODU5NyByZz13aXR6ZQp+IyEgdGlkPTkyMzQ3ODU5NwpLbGFyLCBmdWVyIE1pY3Jvc29mdCB3YWVyZSBpY2ggenUgZ3V0LCBpY2ggYmF1IGphIGtlaW5lIEJ1Z3MgZWluIHVuZCBtYWNoZQphdWNoIG5pY2h0cyB1bm5vZXRpZyBsYW5nc2FtLgoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTW9yZ290aC4uLiAoUm9jaHVzLCAgNy4gQXByIDE5OTksIDE0OjUwOjA5KToKfiMhIHJuPU1vcmdvdGggcnQ9OTIzNDc5MTAwIHJnPXdpdHplCn4jISB0aWQ9OTIzNDc4NTk3CkRhcyB3YXIgZGllIHJpY2h0aWdlIFJ1YnJpay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbGR1cidzIEdhdGUgKFJvY2h1cywgMTIuIEFwciAxOTk5LCAxOToxMjoyMCk6Cj4gSSBiZWxpZXZlIHlvdSBuZWVkIDE0IFdpc2RvbSB0byBiZSBhIHJhbmdlciByaWdodD8KPiBXZWxsIE1pbnNjIGhhcyA2IHdpc2RvbSEKPiBIb3cgaXMgdGhpcyBwb3NzaWJsZT8KPiBIYXMgaGUgaGFkIHRvbyBtYW55IGJsb3dzIHRvIHRoZSBoZWFkPwoKQm9vIGhhcyB0aGUgb3RoZXIgOCBwb2ludHMgZm9yIHdpc2RvbS4uLi5bOC0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaGlza3kgaXN0IEdlc3VuZCAoV2ltLCAxNS4gQXByIDE5OTksIDE1OjI4OjAxKToKRGllIFRpbWVzIGJlcmljaHRldGUgdWViZXIgZWluZSBTdHVkaWUgZGVzIFJvd2V0dCBSZXNlYXJjaCBJbnN0aXR1dGUgdm9uCkFiZXJkZWVuLCBuYWNoZGVtIFdpc3NlbnNjaGFmdGxlciBoZXJhdXNnZWZ1bmRlbiBoYWJlbiwgZGFzcyAiZWluIHN0ZWlmZXIKV2hpc2t5IGRpZSBNZW5nZSBkZXIgQW50aS1PeGlkYW56aWVuIGltIEtvZXJwZXIgaGVidCwgdm9uIGRlbmVuIG1hbiB3ZWlzcywKZGFzcyBzaWUgdm9yIEhlcnpwcm9ibGVtZW4gc2NodWV0emVuLiIKT2IgbWFuIGVzIGRhbm4gd2llIEphbWVzIEhvZ2cgaGFsdGVuIHNvbGw/IEVyIG1laW50ZSwgd2VubiBtYW4gZ2FuegpyZWdlbG1hZXNzaWcgdHJpbmtlIC0gdW5kIGRhYmVpIG51ciB3dWVzc3RlLCB3aWV2aWVsIC0gZGFubiB3dWVyZGVuIEFlcnp0ZSB1bmQKUGZhcnJlciBzYW10IGRlciBGcmllZGhvZWZlIHVlYmVyZmx1ZXNzaWcuCgpEYXJhdWYgZ2VoIGljaCBkb2NoIGVpbmVuIHRyaW5rZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHlwZW4gdm9uIE11ZGRlciAoU2l0bywgMTkuIEFwciAxOTk5LCAyMjoyNzoxMSk6ClZpZWxsZWljaHQgZmluZGVzdCBEdSBEaWNoIGF1Y2ggaW4gZGVyIExpc3RlLi4uCjEpIERlciBOZXdiaWUKICAgJ1dpZSBrcmllZyBpY2ggR2VsZD8nCiAgICdIYWIgaWNoIGpldHp0IGdld29ubmVuPycKIERpZXNlciB3aXJkIGplZG9jaCBtZWlzdCBzY2huZWxsIHp1IGVpbmVtIGRlciB1bnRlcmVuIFR5cGVuOgoyKSBEZXIgRWluc2FtZQogICAuLi5zaWVodCBkYXMgTVVEIGVpZ2VudGxpY2ggbnVyIGFscyBlcndlaXRlcnRlbiBJUkMgdW5kIGZpbmRldCB1bmQKdmVyd2VuZGV0CiAgIGRpZSB2ZXJzY2hpZWRlbmVuIEViZW5lbiBzZWhyIGF1c2dpZWJpZy4gQmxlaWJ0IGFsbGVyZGluZ3MgZXdpZyBTdHVmZSAxLCAKICAgZGEgZXIgbmllIHNwaWVsdCB1bmQgZWlnZW50bGljaCBudXIgdmVyc3VjaHQsIG1pdCAvaXJnZW5kamVtYW5kZW0vIHp1IAogICByZWRlbi4gRGEgZXIgbmljaHQgc29uZGVybGljaCBpbnRlcmVzc2FudCBpc3QsIGJsZWlidCdzIG1laXN0IHZlcmdlYmxpY2guCjMpIERlciBBcmNoaXRla3QKICAgLi4uZGFzIEdlZ2VudGVpbCB6dW0gRWluc2FtZW4uIFJlZGV0IG5pY2h0cywgd2lyZCBpbm5lcmhhbGIgdm9uIFRhZ2VuCk1hZ2llcgogICBvaG5lIGplbWFscyBtaXQgaXJnZW5kamVtYW5kZW0gYXVjaCBudXIgYW5zYXR6d2Vpc2UgZ2VzcHJvY2hlbiB6dSBoYWJlbiwgCiAgIHVtIGRhbm4gcmllc2lnZSBHZWJpZXRlIHp1IGRlc2lnbmVuLCBkaWUgaWhtIGplZG9jaCBuaWUgc28gZ2VmYWxsZW4sIGRhc3MgCiAgIGVyIHNpZSBhdWNoIGVyb2VmZm5lbiB3dWVyZGUuIAo0KSBEZXIgQmVuZ2VsCiAgIC4uLmhhdCBlaW4gJ2FsaSB0YSB0b2V0ZSBhbGxlcycsIHVuZCBzY2hlcnQgc2ljaCBlaW5lbiBEcmVjayBvYiBlciBudW4gCiAgIGdlbnVrZWQgd3VyZGUgb2RlciBuaWNodC4gU2VpbiBaaWVsIGlzdCBlcywgYWxsZXMgdW5kIGplZGVuIGltIE1VRCAKICAgdW16dWxlZ2VuLCBvaG5lIHVlYmVydHJpZWJlbmVuIFNpbm4gdW5kIFZlcnN0YW5kLiBIYXQgbWVpc3QgaG9oZSBYUCBXZXJ0ZSwKICAgdW5kIDAgUXVlc3RwdW5rdGUsIHVuZCBpc3QgZGVyIEhhdXB0Z3J1bmQgd2FydW0ncyBTaXRlYmFucyBnaWJ0Lgo1KSBEZXIgSWRlZW5yZWljaGUKICAgJ1dpbGwgdmllbGxlaWNodCBub2NoIGplbWFuZCBBRCZEIGluIGVpbmVtIE1VRCBzcGllbGVuPyBJY2ggd2lsbCBqYSBuaWNodCAKICAgR00gc2VpbiwgYWxzbyBtdWVzc3RlIGplbWFuZCBhbmRlcnMgZGFzIG1hY2hlbi4gSWNoIGhhYiBkYSBkaWVzZSBlY2h0CmNvb2xlIAogICBJZGVlIGZ1ZXInbiBNVUQsIHdlaXNzIGFiZXIgbmljaHQgd2llIG1hbidzIG1hY2h0LCB3dWVyZGVzdCBEdSB2aWVsbGVpY2h0IAogICBnZXJuZS4uLj8gSWNoIHd1ZXJkZSBnZXJuZSBlaW4gTVVEIHN0YXJ0ZW4sIGFiZXIgaWNoIGhhYiBrZWluZW4gU2VydmVyLCAKICAga2FubiBpY2ggRGVpbmVuIGhhYmVuLi4uPycKICAgQXVjaCBnZW5hbm50ICdEaWUgTmVydmVuc2FlZ2UnLgo2KSBEZXIgJ3BlcmZla3RlcyBNVURkZXInCiAgICdJY2ggYmFzdGVsIGRhIGFuIGRpZXNlbSBNVUQuIEVzIHdpcmQgMTAgUmFzc2VuIHVuZCA1IHZlcnNjaGllZGVuZSBBcnRlbiAKICAgdm9uIE1hZ2llIGdlYmVuLCBhdWYgZGVuZW4gZGllIEdpbGRlbiBhdWZzZXR6ZW4uIEVzIGdpYnQgTWFnaWUsIERyYWNoZW4sIAogICBHcmFmaWssIFdldHRlciB1bmQgd2Fzd2Vpc3NpY2hub2NoYWxsZXMsIGRhcyBMUEMgd3VyZGUgdmVyYWVuZGVydCB1bSdzIAogICBub2NoIGVpbmZhY2hlciB1bmQgbWFlY2h0aWdlciB6dSBtYWNoZW4sIHVuZCB3aXJkIHZvbiBBIGJpcyBaIGFsbGVzIAogICB1bnRlcnN0dWV0emVuLCB1bmQgc29sbHRlIGdsZWljaCBuYWNoIG1laW5lciBad2lzY2hlbnBydWVmdW5nIGZlcnRpZyAKICAgd2VyZGVuLi4uJwogICBWZXJzcHJvY2hlbiBzZWl0IERlemVtYmVyIDE5OTIuCiAgIE1laXN0IHZlcndhbmR0IG1pdCBkZW0gQXV0b3IgZGVzIHBlcmZla3RlbiBDbGllbnRzLgo3KSBEZXIgQXVmcmVpc3NlcgogICBFaGVyIGJla2FubnQgaW4gTVVTSGVzIHVuZCBNT09zLCBoYXQgbWVpc3QgLi4uIHVlYmVyemV1Z2VuZGUgcGh5c2lzY2hlIAogICBBdHRyaWJ1dGUgaW4gc2VpbmVyIEJlc2NocmVpYnVuZyB1bmQgc3BhcnQgYXVjaCBuaWNodCBtaXQgYW5zY2hhdWxpY2hlciAKICAgRGFyc3RlbGx1bmcgZGVyc2VsYmVuIGluIHNlaW5lbSBWZXJoYWx0ZW4gdW5kIG1laXN0IGF1Y2ggaW0gTmFtZW4uLi4KICAgSGFldWZpZyB6dSBmaW5kZW4gaW4gU2NodWxlbiBtaXQgSW50ZXJuZXRhbnNjaGx1c3MsIHVuZCBlaW5lciBkZXIgCiAgIEdydWVuZGUsIHdhcnVtIGRhcyBNYWVubmVyL0ZyYXVlbiBWZXJoYWVsdG5pcyBpbiBNVSpzIGVoZXIgdW5hdXNnZWdsaWNoZW4gCiAgIGlzdC4KOCkgRGllIFNjaGxhbXBlCiAgIFNpZWhlIG9iZW4sIG1pdCBkZW4gZW50c3ByZWNoZW5kZW4gd2VpYmxpY2hlbiBBdHRyaWJ1dGVuLiA5NSBQcm96ZW50IAogICB2b24gaWhuZW4gc2luZCBBdWZyZWlzc2VyIChzaWVoZSBvYmVuKSwgZGllJ3MgamV0enQgbWFsIHZvbiBkZXIgYW5kZXJlbiAKICAgU2VpdGUgdmVyc3VjaGVuLCBuYWNoZGVtJ3MgbmFjaCBQdW5rdCA3IG5pY2h0IGdla2xhcHB0IGhhdC4KOSkgRGVyIEFub255bWUgQWxraQogICAuLi5oYW5nZWx0IHNpY2ggdm9uIE1VRC1UcmVmZmVuIHp1IE1VRC1UcmVmZmVuLCB1bmQgc3BpZWx0IG51ciBhbHMgCiAgICdOZWJlbmJlc2NoYWVmdGlndW5nJywgZWlnZW50bGljaCBNVURkZXQgZXIgbnVyIGRhbWl0J3MgbmljaHQgYXVmZmFlbHQuCjkpIERlciBSZWlzZW5kZQogICAuLi5zcGllbHQgZWlnZW50bGljaCBudXIgTVUqcywgdW0gTGV1dGUgYXVzIG1vZWdsaWNoc3Qgd2VpdCBlbnRmZXJudGVuIAogICBMYWVuZGVybiB6dSB0cmVmZmVuLCBoYXQgc2VpbmVuIFByaXZhdHBsYXR6IGluIEZsdWd6ZXVnZW4gdW5kIHNhbW1lbHQgCiAgIEZsdWdtZWlsZW4gd2llIGFuZGVyZSBMZXV0ZSBCcmllZm1hcmtlbi4gR2VrZW5uemVpY2huZXQgdm9yIGFsbGVtIGR1cmNoCiAgIGNocm9uaXNjaCB1ZWJlcnpvZ2VuZSBLcmVkaXRrYXJ0ZW4uCjEwKSBEZXIgU3VlY2h0aWdlCiAgICAuLi5oYXQgZWluZSBkdXJjaHNjaG5pdHRzIE9ubGluZS1aZWl0IHZvbiAxNCsgU3R1ZGVuIHBybyBUYWcuIEZsaWVndCBiYWxkCiAgICBhdXMgZGVyIFNjaHVsZSwgYWJlciBoYXR0ZSB3aXJrbGljaCBtYWwgU3Bhc3MuCjExKSBEZXIgQWx0ZQogICAgRGllc2VyIHRyYWVndCB6dSBLb252ZXJzYXRpb25lbiBtZWlzdCBuaWNodCBtZWhyIGJlaSBhbHMgZGFzcyBlciB1ZWJlciAKICAgIENoYXJha3RlcmUgcmVkZXQsIGRpZSBzZWl0IEphaHJlbiBuaWNodCBtZWhyIGVpbmdlbG9ndCB3YXJlbiwgdW5kIHdpZSAKICAgIGd1dCB1bmQgc2Nob2VuIGRpZSBEaW5nZSBzdGFuZGVuIGltIGd1dGVuLCBhbHRlbiBHZW5lc2lzLCBhbHMgZXMgbnVyIAogICAgc28gZXR3YSA0MGsgZ3Jvc3Mgd2FyLCB1bmQgd2llIGhldXRlIG5pY2h0IG1laHIgd2lya2xpY2ggZ3V0ZSBSYWV1bWUgCiAgICB1bmQgUmFldHNlbCBnZXNjaHJpZWJlbiB3ZXJkZW4uIExhZXNzdCBlcyBuaWNodCBhbiBCZWxlaHJ1bmdlbiBmZWhsZW4gCiAgICB3aWUgc2Nod2llcmlnIHVuZCBodWVyZGVucmVpY2ggZXMgZnJ1ZWhlciB3YXIsIHdlbm4gc2ljaCBqZW1hbmQgdWViZXIgCiAgICBpcmdlbmR3YXMgYXVmcmVndC4gVmVyYWJzY2hldXQgQ2xpZW50cywgd2VpbCBzaWUgZGllIEp1Z2VuZAp2ZXJ3ZWljaGxpY2hlbi4KMTIpIERlciBIYWNrZXIKICAgIEludGVyZXNzaWVydCBzaWNoIG5vcm1hbGVyd2Vpc2Ugd2VuaWdlciBmdWVyIGRhcyBNVUQgdW5kIGRhcyBTcGllbCwKc29uZGVybiAKICAgIG1laHIgZnVlciBkZW4gQ29kZSBkYWhpbnRlci4gS2FubiBzaWNoIHNlbHRlbiBlbnRzcGFubmVuLCBzb25kZXJuCnZlcnN1Y2h0IAogICAgaGVyYXVzenVmaW5kZW4sIHdpZSBkaWUgTWFnaWVyIGJlc3RpbW10ZSBQcm9ibGVtZSBnZWxvZXN0IGhhYmVuLCBkaWUgc2ljaAogICAgaWhtIHN0ZWxsZW4uIFVudGVyc2NoZWlkZXQgc2ljaCB2b20gJ3BlcmZla3RlbiBNVURkZXInIGRhcmluLCBkYXNzIGVyIAogICAgdGF0c2FlY2hsaWNoIEFobnVuZyBoYXQgdW5kIGF1Y2ggc2Nob24gVGVpbGUgZnVlciBNVURzIGdlc2NocmllYmVuIGhhdCwgCiAgICBvZGVyIGdlcmFkZSBlaW5lcyB1bXNjaHJlaWJ0LiBXYXJudW5nOiBTZWVlZWVlZWVociBsYW5nd2VpbGlnZXIgCiAgICBaZWl0Z2Vub3NzZSwgYXVzc2VyIG1hbiBpbnRlcnNzaWVydCBzaWNoIGZ1ZXIgZGllIHNwYW5uZW5kZW4gRGVidWdsb2dzIAogICAgc2VpbmVzIE1VRHMuCjEzKSBEZXIgS29ua3VycmVuemxlcgogICAgV2FuZGVydCBub3JtYWxlcndlaXNlIGVpbiBwYWFyIE1pbnV0ZW4gZHVyY2gncyBNVUQsIGJpcyBlciBob2VydCBkYXNzIGVzIAogICAga2VpbmUgTW9lZ2xpY2hrZWl0IGdpYnQgenUgJ2dld2lubmVuJy4gS29tbXQgbmFjaCB1bmdlZmFlaHIgZWluZW0gaGFsYmVuIAogICAgSmFociB3aWVkZXIsIHVtIGFsbGUgTGV1dGUgaW4gZXJzdGF1bmVuIHp1IHZlcnNldHplbiwgd2FydW0gc2llIHZvbgpkaWVzZW0gCiAgICBhbHRlbiBDaGFyYWN0ZXIgbm9jaCBuaWUgd2FzIGdlaG9lcnQgaGFiZW4uIAoxNCkgRGVyIEFuc2NobWllZ3NhbWUKICAgICdzY2hudXJycnJycnJycnInCiAgICBFcmlubmVydCBtZWlzdCBzdGFyayBhbiBlaW4gUGx1ZXNjaHRpZXIsIHVuZCBiZW5pbW10IHNpY2ggc28genVja2Vyc3Vlc3MsCiAgICBrbnVkZGVsaWcgdW5kIHNjaG11c2V3ZWljaCwgZGFzcyBlaW5lbSB1ZWJlbCB3ZXJkZW4gbXVzcy4gRWJlbmZhbGwgCiAgICBoYWV1ZmlnZXIgaW4gTVVTSGVzIHVuZCBNT09zLgoxNSkgRGVyIEdVUlBTZXIKICAgIElzdCBzYXVlciwgZGFzcyBlciBudXIgZWluZW4ga2xlaW5lbiBUZWlsIHNlaW5lciBTdGF0cyBhbHMgWmFobGVuIAogICAgYXVzZ2VkcnVlY2t0IHp1IHNlaGVuIGJla29tbXQsIHNpZWh0IGRhcyBNVUQgYmVzdGVuZmFsbHMgYWxzIAogICAgRXJ3ZWl0ZXJ1bmcgc2VpbmVzIExpZWJsaW5nc1JQR3MgdW5kIGJlbnV0enQgYnVsbGV0aW4gYm9hcmRzIChvZGVyIGhpZXIgCiAgICBkaWUgWmVpdHVuZykgYXVzZ2liaWcsIHVtIHp1IGVya2xhZXJlbiB3YXJ1bSdzIHZpZWwgYmVzc2VyIHdhZXIsIHdlbm4gZGFzCiAgICBTeXN0ZW0gaGllciBpbiBSaWNodHVuZyBzZWluZXMgU3lzdGVtcyBhbmdlZ2xpY2hlbiB3aXJkLiAKMTYpIERlciBEZXByZXNzaW9uc3ZlcmJyZWl0ZXIKICAgICdNZWluZSBFbHRlcm4gaGFiZW4gbWljaCBnZXN0ZXJuIGF1cyBkZXIgTGVpdHVuZyBnZXNjaG1pc3Nlbi4gSWNoIGZhbGwgaW4KICAgIE1hdGhlIGR1cmNoLCBtZWluZSBGcmV1bmRpbiBoYXQgbWljaCB2ZXJsYXNzZW4gdW5kIGljaCBoYWIgbWlyIGRlbiAKICAgIEZpbmdlcm5hZ2VsIGFiZ2Vicm9jaGVuLi4uJwogICAgU3BpZWx0IE1VRHMsIHdlaWwgZXIgc2ljaCBkaWUgVGhlcmFwaWUgbmljaHQgbGVpc3RlbiBrYW5uLgoxNykgRGVyIHp5bmlzY2hlIEJlc3Nlcndpc3NlcgogICAgUG9zdGV0IHNwb2V0dGlzY2hlLCB3ZW5pZyBlcmhlaXRlcm5kZSB1bmQgdmllbCB6dSBsYW5nZSBBcnRpa2VsIGluIGRlciAKICAgIFplaXR1bmcuLi4KU2l0by4KCihRdWVsbGU6IElyZ2VuZHdvIGF1cyBkZW4gbmV0eiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFR5cGVuIHZvbiBNdWRkZXIgKEFuYXRvbCwgMjAuIEFwciAxOTk5LCAwMDowMDo1OCk6Cn4jISBybj1TaXRvIHJ0PTkyNDU2MDgzMSByZz13aXR6ZQp+IyEgdGlkPTkyNDU2MDgzMQpEdSBoYXN0IGRpZSBQb2ludGUgdmVyc2F1dC4KCkFuYXRvbCAtIFR5cCAxNwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxldHp0ZSBXb3J0ZSAoU3RpbmcsIDIwLiBBcHIgMTk5OSwgMTk6MTE6NDQpOgpEaWUgbGV0enRlbiBXb3J0ZQoKZGVyIEFpcmJ1cyBDcmV3IDogRGFzIExtcGNoZW4gZGEgYmxpbmt0IC0gYWNoIHZlcmdlc3NlbiB3aXJzCmRlcyBBcmNoaXRla3RlbjogTWlyIGZsbHQgZGEgZ2VyYWRlIHdhcyBlaW4uLi4KZGVzIEFzdHJvbmF1dGVuOiBOZWluLCBuZWluLCBtZWluZSBMdWZ0IHJlaWNodCBub2NoICduZSBWaWVydGVsc3R1bmRlLgpkZXMgQmVyZ3N0ZWlnZXJzOiBXYXInbiBnYXIgbmljaHQgbWFsIHRldWVyLCBkaWVzZSBLYXJhYmluZXJoYWtlbi4uLgpkZXMgQmV0dG5zc2VyczogTWFjaCBtYWwgZGllIEhlaXpkZWNrZSBhbi4uLgpkZXMgQnJpZWZ0cmdlcnM6IEJyYXZlcyBIdW5kY2hlbi4uLgpkZXMgQnVuZ2VlLUp1bXBlcnM6IE5laW4sIGRhcyBobHQuCmRlcyBCdXNmYWhyZXJzOiBDQ0NDQ0NISEhISEhISEhSUlJSUlJSUlJSCmRlcyBCZWlmYWhyZXJzOiBSZWNodHMgaXN0IGZyZWkhCmRlciBDaGFsbGVuZ2VyIENyZXcgOiBMYXQgZGllIEZyYXUgbWFsIGFucyBTdGV1ZXIKZGVzIENoZWZzOiBUb2xsZXMgR2VzY2hlbmshIC0gU28gZWluIEZldWVyemV1ZyBpbiBSZXZvbHZlcmZvcm0hCmRlcyBDaGVtaWtlcnM6IFNvLCB1bmQgbnVuIG5vY2ggZXR3YXMgdm9uIGRpZXNlbSBaZXVnLi4uCmRlcyBDaGVtaWtlcnM6IFVuZCBudW4gZGVyIEdlc2NobWFja3N0ZXN0CmRlcyBDby1QaWxvdGVuOiBXYXMgbWVpbnN0IER1IG1pdCAnSWNoIGhhYiB2ZXJnZXNzZW4genUgdGFua2VuJz8KZGVzIENvbXB1dGVyczogU2luZCBTaWUgc2ljaGVyPyAoSi9OKQpkZXMgQ29tcHV0ZXJ1c2VyczogRGVyIEhlcnN0ZWxsZXIgc2FndCwgZGEgc2ljaCBkaWVzZSAyIEthcnRlbiB2ZXJ0cmFnZW4hCmRlcyBEby1pdC15b3VzZWxmLU1lY2hhbmlrZXJzOiBEYXMgbXNzdGUgaGFsdGVuCmRlcyBFbGVrdHJpa2VyczogS2xhciBoYWIgaWNoIGRlbiBTdHJvbSBhYmdlc2NoYWx0ZXQKZGVzIEVsZWt0cm9uaWtlcnM6IFdhcyBpc3QgZGVubiBkYXMgZnIgZWluIERyYWh0ID8/CmRlcyBGYWhybGVocmVyczogTnVuIHZlcnN1Y2hlbiBTaWUncyBhbGxlaW5lCmRlcyBGYWhycmFkZmFocmVyczogR3VjayBtYWwsIGljaCBrYW5uIGZyZWlobmRpZyBmYWhyZW4uCmRlcyBGYWhyc3R1aGxwYXNzYWdpZXJzOiBBYndydHMsIGJpdHRlLgpkZXMgRmFsbHNjaGlybXNwcmluZ2VyczogU2NoZWkgTW90dGVuIQpkZXMgRmxlaXNjaGVybWVpc3RlcnM6IEthbGxlLCB3aXJmIG1pciBtYWwgZGFzIE1lc3NlciByYmVyIQpkZXIgR2Vpc2VsOiBEdSB3aXJzdCBuaWVtYWxzIHNjaGllc3NlbiwgRmVpZ2xpbmchCmRlcyBHZXJpY2h0c3ZvbGx6aWVoZXJzOiBVbmQgZGVuIFJldm9sdmVyIHBmbmRlIGljaCBhdWNoIQpkZXMgR3Jvd2lsZGpnZXJzOiBTY2hlaWUsIE11bml0aW9uIGFsbGUgLi4uCmRlcyBIYW5kZ3JhbmF0ZW53ZXJmZXJzOiBCaXMgd2lldmllbCBzYWd0ZW4gU2llIHNvbGwgaWNoIHpobGVuPwpkZXMgSGFyZHdhcmUtQmFzdGxlcnM6IERhcyBOZXR6a2FiZWwgbGFzc2UgaWNoIGFscyBFcmR1bmcgZHJhbi4uLgpkZXMgSHVuZGVoYWx0ZXJzOiBOZWluLCBkZXIgaXN0IGdhbnogemFobQp2b24gSmVzdXM6IE1laHIgTmdlbCAtIGljaCBydXRzY2hlCmRlcyBLYXBpdG5zIGRlciBUaXRhbmljOiBFdHdhcyBFaXMgZnIgbWVpbmVuIFdoaXNrZXksIGJpdHRlLgpkZXMgS2FwaXRucyBlaW5lcyBXYWxmbmdlcnM6IFNvLCBkZW4gaHR0ZW4gd2lyIGFtIEhha2VuLgpkZXMgTWFjaG9zOiBIYWxsbyBTZSwgd2llIHdyJ3MgbWl0IHVucyBiZWlkZW4/CmRlcyBNYW50YWZhaHJlcnM6IFNjaGVpIHJvdGUgQW1wZWwuLi4KZGVzIE1pdGFyYmVpdGVycyBlaW5lciBXYWNoLSB1bmQgU2NobGllZ2VzZWxsc2NoYWZ0OiBJc3QgamVtYW5kIGRhPwpkZXMgTml0cm9nbHl6ZXJpbmxpZWZlcmFudGVuOiBGYW5nIQpkZXMgUGlsb3RlbnM6IFdhcyduIGRhcyBmcm4gTG9jaCBpbiBkZXIgVHJhZ2ZsY2hlPwpkZXMgUGlsemJlcmF0ZXJzOiBEZXIgaXN0IHVuZ2lmdGlnLCBkZW5uIHdyZGUgaWNoIHNvZ2FyIGVzc2VuLgpkZXMgUG9saXppc3RlbjogU2VjaHMgU2NodSwgZGVyIGhhdCBrZWluZSBNdW5pdGlvbiBtZWhyIQpkZXIgUHV0emZyYXU6IEljaCBwdXR6JyBudXIgbm9jaCBzY2huZWxsIGRhcyBCYWxrb25nZWxuZGVyLi4KZGVzIFJlbm5mYWhyZXJzOiBEaWUgS3VydmUga3JpZWcnIGljaCBkb2NoIGxvY2tlciBtaXQgMjgwLi4uCmRlcyBTY2h3aW1tZXJzOiBOZWluLCBoaWVyIGluIGRlbiBHZXdzc2VybiBnaWJ0IGVzIGtlaW5lIEhhaWUuCmRlcyBTb2Z0d2FyZS1FbnR3aWNrbGVyczogTmF0cmxpY2ggaGFiZSBpY2ggZWluIGludGFrdGVzIEJhY2t1cCEKZGVzIFNvbm5lbmFuYmV0ZXIgOiBXZWxjaGVzIE96b25sb2NoID8KZGVzIFNwb3J0bGVocmVyczogQWxsZSBTcGVlcmUgenUgbWlyICEKZGVzIFN0ZWluemVpdG1lbnNjaGVuOiBJY2ggZnJhZyBtaWNoLCB3YXMgaW4gZGVyIEhobGUgaXN0Li4uCnZvbiBUYXJ6YW46IFdlciBoYXQgZGllIExpYW5lIGVpbmdlbHQ/CmRlcyBUdXJtc3ByaW5nZXJzOiBXbyB6dXIgSGxsZSBpc3QgZGFzIFdhc3Nlcj8hPwpkZXMgVHJzdGVoZXJzOiBOdXIgYmVyIG1laW5lIExlaWNoZSEKZGVzIFUtQm9vdC1NYXRyb3NlbjogSGllciBzb2xsdGUgbWFsIGdlbGZ0ZXQgd2VyZGVuIQpkZXMgV2F0dHdhbmRlcmVyczogT2ggLSBtZWluZSBVaHIgaXN0IHN0ZWhlbmdlYmxpZWJlbiEKCgoKCgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExldHp0ZSBXb3J0ZSAoUWl0ZXNzLCAyMS4gQXByIDE5OTksIDEyOjI2OjAzKToKfiMhIHJuPVN0aW5nIHJ0PTkyNDYzNTUwNCByZz13aXR6ZQp+IyEgdGlkPTkyNDYzNTUwNAphbHNvIGFtIGJlc3RlbiBmaW5kZSBpY2ggZGVuIGxldHp0ZW4gc2F0eiBkZXMgbWFjaG9zOgpIYWxsbyBTZSwgW1Jlc3QgdW53aWNodGlnXQoKRGFzIHdpcmZ0IGJlaSBkZXIgQmV0cmFjaHR1bmcgZG9jaCBlaW5pZ2UgRnJhZ2VuIGF1Zjogc2FndGUgZXIgamV0enQgU2U/IG9kZXIKZG9jaCBTZT8gV2VubiBtYW4gdm9yYXVzc2V0enQsIGRhc3MgZGVyIE1hY2hvIGJlcmVpdHMgdWViZXIgMjUgSmFocmUgaXN0LAprb2VubnRlIGVzIG1pdCAzNiw1IFByb3plbnRpZ2VyIFNpY2hlcmhlaXQgYXVjaCBTZSBoZWlzc2VuLiBWb3IgZWluaWdlIEphaHJlbgp3dXJkZSBpbiBkZXIgV2lzc2Vuc2NoYWZ0IGF1Y2ggZGFydWViZXIgZGlza3V0aWVydCwgb2IgZWluIHNlaHIganVuZ2VyIE1hY2hvCm1pdCBTZSBkYXMgZ2xlaWNoZSBtZWludCwgd2llIGVpbiBzZWhyIGFsdGVyIE1hY2hvLCBhYmVyIGRhcnVlYmVyIHNpbmQgc2ljaApkaWUgRXhwZXJ0ZW4gbmljaHQgZWluaWcgZ2V3b3JkZW4uCk5pY2h0c2Rlc3RvdHJvdHogYmVoYXVwdGVuIHNhZW10bGljaGUgRnJhdWVucmVjaHRsZXJpbm5lbiB1bmQgRW1hbnplbiwgZGFzcwpkYXMgV29ydCBTZSBlaW5lIEhlcmFic2V0enVuZyBkZXIgV3VlcmRlIGRlciBGcmF1IGltIEFsbGdlbWVpbmVuIGJlZGV1dGUuIERlbQpzY2hsaWVzc2UgaWNoIG1pY2ggYW4uIFVlYmVyICdTZScga2FubiBtYW4gbnVuIHdpcmtsaWNoIG5pY2h0IG1laHIgbGFjaGVuLgoKUUkqKiAtIFNlIHZvbSBEaWVuc3QuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExldHp0ZSBXb3J0ZSAoUGhvYm9zLCAyMS4gQXByIDE5OTksIDEzOjQ1OjE5KToKfiMhIHJuPVN0aW5nIHJ0PTkyNDYzNTUwNCByZz13aXR6ZQp+IyEgdGlkPTkyNDYzNTUwNApkYSBmZWhsdCBub2NoIEF5cnRvbiBTZW5uYTogRGEga2xhcHBlcnQgZG9jaCB3YXMhCgoKcGhvYm9zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IExldHp0ZSBXb3J0ZSAoQW5ndXMsIDIxLiBBcHIgMTk5OSwgMTQ6NTg6MzApOgp+IyEgcm49UGhvYm9zIHJ0PTkyNDcwMjMxOSByZz13aXR6ZQp+IyEgdGlkPTkyNDYzNTUwNAoKSG1tLi4uIHVuZCBkaWUgZGVzIEtsZXJpa2VyczogJ1dhbm5hIGNvbnZlcnQ/JwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IExldHp0ZSBXb3J0ZSAoQnV6emN1dCwgMjEuIEFwciAxOTk5LCAxODoyNToyNyk6Cn4jISBybj1TdGluZyBydD05MjQ2MzU1MDQgcmc9d2l0emUKfiMhIHRpZD05MjQ2MzU1MDQKT2RlciBkZXIgLi4uCgpkaWUgZWluZXIgR2lmdHNjaGxhbmdlOiBNaWZ0LCBqZXRmdCBoYWIgaWNoIG1pY2ggYXVmIGRpZSBGdW5nZSBnZWJpZmZlbiAhCgogICAgICAgICAgKmJ6eioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmluc2lkZXIgam9rZS4uLi4gKEphc3BlciwgMjEuIEFwciAxOTk5LCAxODo0NTo0Myk6Ci4uLnVuZCBlaW4gcXVpeiBmdWVyIG91dHNpZGVyIDopCkVpbiBXaXJ0IGhhdCBuIEJpZXJnbGFlc3NlciBhdWYgZGVyIFRoZWtlIHN0ZWhlbi4gV2llIGhvY2ggaXN0IGRpZQpXYWhyc2NoZWlubGljaGtlaXQsIGRhc3MgZXIgZGllIEdsYWVzc2VyIHNvIHZlcnRhdXNjaGVuIGthbm4gaW4gaWhyZXIKUmVpaGVuZm9sZ2UsIGRhc3Mga2VpbmVzIG1laHIgYW4gc2VpbmVtIHVyc3BydWVuZ2xpY2hlbiBwbGF0eiBzdGVodD8gOikKVm9ycmF1c2dlc2V0enQgYWxsZSBHYWVzdGUgc2NoYXVlbiBsYW5nZSBnZW51ZyB3ZWcsIHNvIGRhc3MgZXIgZ2VudWcgemVpdCB6dW0KdW1zdGVsbGVuIGhhdC4KCkphcHNhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogaW5zaWRlciBqb2tlLi4uLiAoUGFkcmVpYywgMjEuIEFwciAxOTk5LCAxODo0NzozMik6Cn4jISBybj1KYXNwZXIgcnQ9OTI0NzIwMzQzIHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCkRhcyBpc3QgbWl0IEFic3RhbmQgZGVyIHBsdW1wZXN0ZSBWZXJzdWNoIGRlbiBpY2gga2VubmUgdm9uIGFuZGVyZW4gc2VpbmUKU3RvY2hhc3RpayBBdWZnYWJlbiByZWNobmVuIHp1IGxhc3Nlbi4gQXVzc2VyZGVtIGlzdCBkaWUgQXVmZ2FiZSBnYXIgbmljaHQgc28Kc2Nod2VyLi4uIChUaXA6IFZlcnN1Y2hzIG1hbCBtaXQgdm9sbHN0YWVuZGlnZXIgSW5kdWt0aW9uKQoKUGFkcmVpYwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBpbnNpZGVyIGpva2UuLi4uIChDYXJhZGhyYXMsIDIxLiBBcHIgMTk5OSwgMTk6NDU6MTApOgp+IyEgcm49UGFkcmVpYyBydD05MjQ3MjA0NTIgcmc9d2l0emUKfiMhIHRpZD05MjQ3MjAzNDMKVm9yYXVzZ2VzZXR6dCwgZGVyIFdpcnQgaGF0IGdlbnVlZ2VuZCBaZWl0IHVuZCB3ZWlzcywgd2VsY2hlIEdsYWVzZXIKZXIgc2Nob24gdmVydGF1c2NodCBoYXQsIGthbm4gZXIgbWl0IGh1bmRlcnRwcm96ZW50aWdlciBXYWhyc2NoZWlubGljaC0Ka2VpdCBhbGxlIHVtc29ydGllcmVuLCBzb2xhbmdlIGVyIGdlbnVlZ2VuZCBQbGF0eiBkYXp1IGhhdC4gCgogICBPZGVyIGhhYmUgaWNoIGRhIGpldHp0IHdhcyBtaXNzdmVyc3RhbmRlbj8gOikpIFNjaGxpZXNzbGljaCBzb2xscyBqYQogICBlaW4gV2l0eiBzZWluLgogICAgICAgICAgICAgICAgICAgICAgICBCZXJnY2hlbiBDYXJhZGhyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGluc2lkZXIgam9rZS4uLi4gKFJvY2h1cywgMjEuIEFwciAxOTk5LCAxOTo0NjowOCk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9OTI0NzIzOTEwIHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCkZ1ZXIgbj0xIGlzdCBkYXMgbmljaHQgbW9lZ2xpY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBpbnNpZGVyIGpva2UuLi4uIChXb29keSwgMjEuIEFwciAxOTk5LCAyMDowMDozNCk6Cn4jISBybj1Sb2NodXMgcnQ9OTI0NzIzOTY4IHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCkhhZW5ndCBkYXZvbiBhYiwgd2lldmllbCB2ZXJzY2hpZWRlbmUgU3RlbGxlbiBlciB6dW0KQXVmc3RlbGxlbiBkaWVzZXMgZWluZW4gR2xhc2VzIGhhdC4KCldvb2R5Li0KCjstKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IGluc2lkZXIgam9rZS4uLi4gKEFuYXRvbCwgMjEuIEFwciAxOTk5LCAyMDowMToxNyk6Cn4jISBybj1Xb29keSBydD05MjQ3MjQ4MzQgcmc9d2l0emUKfiMhIHRpZD05MjQ3MjAzNDMKRnVlciBuPjEgZ2lsdDogbmltbSBkYXMgR2xhcyBnYW56IGxpbmtzIHVuZCBzdGVsbGUgZXMgbmFjaCBnYW56IHJlY2h0cyA7bykuCgpBbmF0b2wgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBpbnNpZGVyIGpva2UuLi4uIChDYXJhZGhyYXMsIDIxLiBBcHIgMTk5OSwgMjA6MDE6MjcpOgp+IyEgcm49Um9jaHVzIHJ0PTkyNDcyMzk2OCByZz13aXR6ZQp+IyEgdGlkPTkyNDcyMDM0MwpGdWVyIG49MCBvZGVyIG4gYWxzIG5lZ2F0aXZlciBXZXJ0IGF1Y2ggbmljaHQuIFZpZWxsZWljaHQgbXVzcyBkaWUgQW56YWhsCmRlciBHbGFlc2VyIGphIGdhciBuaWNodCBhdXMgTiBzZWluLCB2aWVsbGVpY2h0IHNvZ2FyIGF1cyBRIG9kZXIgQy4KVmllbGxlaWNodCBzaW5kIGVzIGphIHZvbGxzdGFlbmRpZyB0ZWlsYmFyZSBHbGFlc2VyLi4uIDopCgogICAgICAgICAgICAgICAgICAgKmxpZWJlciBuaWNodCB3ZWl0ZXJkZW5rZW5kKiAgICBCZXJnY2hlbiBDYXJhZGhyYXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IGluc2lkZXIgam9rZS4uLi4gKEphc3BlciwgMjEuIEFwciAxOTk5LCAyMDowNDo1MSk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9OTI0NzI0ODg3IHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCmFsc28gZXMgaXN0IG5pY2h0IGRpZSBmcmFnZSBvYiBlcyBlaW5lIG1vZWdsaWNoa2VpdCBnaWJ0LCBvYiBtYW4gZGllIG4gZ2xhZXNlcgp1ZWJlcmhhdXB0IHNvIG5ldSBhbm9yZG5lbiBrYW5uLCBkYXNzIGtlaW5lcyBhbiBzZWluZXIgYWx0ZW4gc3RlbGxlIHN0ZWh0LApzb25kZXJuIHdpZXZpZWxlIHNvbGNoZXIgbW9lZ2xpY2hrZWl0ZW4gZXMgZ2lidC4uLi4KCkphc3BlciBzYWd0IHp1IFBhZHJlaWM6IFdhcnRlIGVyc3RtYWwgZGVpbmVuIGFsdGVuIFVlYnVuZ3N6ZXR0ZWwgYWIsIGJldm9yIGR1CnNjaGxhdWUga29tbWVudGFyZSBhIGxhICdiZXdlaXMgZGFzIG1hbCBtaXQgZGVyIGVpbnppZ2VuIG1hdGhlbWF0aXNjaGVuCmJld2Vpc21ldGhvZGUsIGRpZSBtaXIgZ2VyYWRlIGVpbmZhZWxsdCcgYWJnaWJzdCA6KSAuLi4gYWxzbyBmdWVyIG49NCBzaW5kIGVzCjkvMjQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IGluc2lkZXIgam9rZS4uLi4gKENhcmFkaHJhcywgMjEuIEFwciAxOTk5LCAyMDowNjoxMyk6Cn4jISBybj1KYXNwZXIgcnQ9OTI0NzI1MDkxIHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCldpZXNvIGZyYWdzdCBEdSBkYW5uIG5hY2ggZGVyIFcna2VpdCwgbWl0IGRlciBkZXIgV2lydCBlcyB1bW9yZG5lbiBrYW5uPwpEdSBiaXN0IGtvbWlzY2ghIDopIERydWVjaycgRGljaCBtYWwgZ2VuYXVlciBhdXMuCgogICAgICAgICAgIEJlcmdjaGVuIENhcmFkaHJhcyAtIGZhc3N0IHNpY2ggYXVjaCBzZWxic3QgYW4gc2VpbmUgQmVyZ25hc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IGluc2lkZXIgam9rZS4uLi4gKEphc3BlciwgMjEuIEFwciAxOTk5LCAyMDowODozNyk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9OTI0NzI1MTczIHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCm5hamEgaW5zZ2VzYW10IHNvd2FzIGFuenVvcmRuZW4gZ2lidCBlcyBqYSBuISBtb2VnbGljaGtlaXRlbiwgYWxsZXJkaW5ncyBzaW5kCmRhYmVpIGVpbmlnZSB3byBlaW4gb2RlciBtZWhyZXJlIGdsYWVzZXIgd2llZGVyIGFuIGlocmVyIGFsdGVuIHN0ZWxsZSBzdGVoZW4uCndlbm4gbWFuIGFsbGUgZ3VlbnN0aWdlbiBmYWVsbGUga2VubnQgYnJhdWNodCBtYW4gamEgbnVyIGR1cmNoIG4hIHp1IHRlaWxlbiB1bQpkaWUgd2FocnNjaGVpbmxpY2hrZWl0IHp1IGJla29tbWVuLi4uLgoKSmFzcGVyIHNjaGF1dCBpbiByaWNodHVuZyBncmltbWJvcm4gdW5kIGRlbmt0Lm9PKHdhbHRlIGRlaW5lcyBhbXRlcywKZ3JpbW1qYW1lcykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBpbnNpZGVyIGpva2UuLi4uIChNdWFkaWIsIDIxLiBBcHIgMTk5OSwgMjE6MjM6MjMpOgp+IyEgcm49SmFzcGVyIHJ0PTkyNDcyMDM0MyByZz13aXR6ZQp+IyEgdGlkPTkyNDcyMDM0MwpmYWxscyBkaWUgZ2xhZXNlciBub2NoIGdlZnVlbGx0IHNpbmQgKGF1Y2ggdGVpbHdlaXNlKSBpc3QgZGllCndhaHJzY2hlaW5saWNoa2VpdCAwLCBkYSBrZWluIGdhc3QgZGEgZnJlaXdpbGxpZyB3ZWdzZWhlbiB3aXJkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGluc2lkZXIgam9rZS4uLi4gKEphc3BlciwgMjEuIEFwciAxOTk5LCAyMTozMjo0OSk6Cn4jISBybj1NdWFkaWIgcnQ9OTI0NzI5ODAzIHJnPXdpdHplCn4jISB0aWQ9OTI0NzIwMzQzCmhhdHRlc3QgZHUgc2Nob25tYWwga29lbHNjaCBpbiBkZWluZW0gZ2xhcz8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IGluc2lkZXIgam9rZS4uLi4gKFBhZHJlaWMsIDIxLiBBcHIgMTk5OSwgMjI6MTE6MDgpOgp+IyEgcm49SmFzcGVyIHJ0PTkyNDcyNTA5MSByZz13aXR6ZQp+IyEgdGlkPTkyNDcyMDM0MwpFcyB3YXIgbmljaHQgZGllIGVpbnppZ2UgQmV3ZWlzbWV0aG9kZSBkaWUgbWlyIGdlcmFkIGVpbmZpZWwsIHNvbmRlcm4gZGllIG1pdApkZXIgaWNoIGVzIGJlaSBtaXIgYmV3aWVzZW4gaGFiZSA6KS4KClBhZHJlaWMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IGluc2lkZXIgam9rZS4uLi4gKEFzbW9kaXMsIDIyLiBBcHIgMTk5OSwgMjE6MDU6MDgpOgp+IyEgcm49SmFzcGVyIHJ0PTkyNDcyNTMxNyByZz13aXR6ZQp+IyEgdGlkPTkyNDcyMDM0MwpEaWUgV2FocnNjaGVpbmxpY2hrZWl0LCBoYWVuZ3Qgc3Rhcmsgdm9uIGRlciBSYXNzZSBkZXMgV2lydHMgdW5kIGRlciBHYWVzdGUKYWIuCkVpbiBad2VyZ2Vud2lydCBoYWV0dGUgc2ljaGVyIHNlaW5lIFByb2JsZW1lLCBnZW5hdXNvLCB3ZW5uIHVudGVyIGRlbgpHYWVzdGVuIFp3ZXJnZSBzaW5kLCBkaWUgbGFzc2VuIGlociBCaWVyIG5pY2h0IGF1cyBkZW4gQXVnZW4gLi4uClp1bWFsLCBkaWUgSGFsYndlcnRzemVpdCBlaW5lcyBzb2xjaGVuIEJpZXJzIGVoIHZpZWwgenUgZ2VyaW5nIHdhZXJlLCBhbHMKZGFzcyBtYW4gZGFzIG5vY2ggdW1zdGVsbGVuIGtvZW5udGUgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBpbnNpZGVyIGpva2UuLi4uIChKYXNwZXIsIDIyLiBBcHIgMTk5OSwgMjE6Mjc6MTIpOgp+IyEgcm49QXNtb2RpcyBydD05MjQ4MDc5MDggcmc9d2l0emUKfiMhIHRpZD05MjQ3MjAzNDMKamFqYSBlcyB3YXIgd29obCBlXigtMSkgZnVlciBncm9zc2UgbiA7UCB1bmFiaGFlbmdpZyB2b24gZGVyIHJhc3NlIGRlcyB3aXJ0ZXMKdW5kIGRlciBnYWVzdGUsIHVuZCB1bmFiaGFlbmdpZyB2b24gZGVyIGJpZXJzb3J0ZQoKamFzcGVyIGFiZXIgaW1tZXIgbm9jaCBuZXQgc2ljaGVyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmQgd2llZGVyIHdhcyBuZXVlcyAoYWx0ZXMpIChTdGluZywgMjMuIEFwciAxOTk5LCAwMDozODo1MSk6CiJBIHN1Y2Nlc3NmdWwgbWFuIGlzIG9uZSB3aG8gbWFrZXMgbW9yZSBtb25leSB0aGFuIGhpcyB3aWZlIGNhbiBzcGVuZC4KQSBzdWNjZXNzZnVsIHdvbWFuIGlzIG9uZSB3aG8gY2FuIGZpbmQgc3VjaCBhIG1hbi4KCk1lbiB3YWtlIHVwIGFzIGdvb2QtbG9va2luZyBhcyB0aGV5IHdlbnQgdG8gYmVkLgpXb21lbiBzb21laG93IGRldGVyaW9yYXRlIGR1cmluZyB0aGUgbmlnaHQuCgpBIG1hbiBpcyBhIHBlcnNvbiB3aG8gd2lsbCBwYXkgMiBkb2xsYXJzIGZvciBhIDEtZG9sbGFyIGl0ZW0gaGUgd2FudHMuCkEgd29tYW4gaXMgYSBwZXJzb24gd2hvIHdpbGwgcGF5IDEgZG9sbGFyIGZvciBhIDItZG9sbGFyIGl0ZW0gc2hlIGRvZXNuJ3QKd2FudC4KClRvIGJlIGhhcHB5IHdpdGggYSBtYW4geW91IG11c3QgdW5kZXJzdGFuZCBoaW0gYSBsb3QgYW5kIGxvdmUgaGltIGEgbGl0dGxlLgpUbyBiZSBoYXBweSB3aXRoIGEgd29tYW4geW91IG11c3QgbG92ZSBoZXIgYSBsb3QgYW5kIG5vdCB0cnkgdG8gdW5kZXJzdGFuZApoZXIKYXQgYWxsLgoKQSB3b21hbiBtYXJyaWVzIGEgbWFuIGV4cGVjdGluZyBoZSB3aWxsIGNoYW5nZSwgYnV0IGhlIGRvZXNuJ3QuCkEgbWFuIG1hcnJpZXMgYSB3b21hbiBleHBlY3Rpbmcgc2hlIHdvbid0IGNoYW5nZSwgYnV0IHNoZSBkb2VzLgoKQSB3b21hbiB3b3JyaWVzIGFib3V0IHRoZSBmdXR1cmUgdW50aWwgc2hlIGdldHMgYSBodXNiYW5kLgpBIG1hbiBuZXZlciB3b3JyaWVzIGFib3V0IHRoZSBmdXR1cmUgdW50aWwgaGUgZ2V0cyBhIHdpZmUuCgpUaGVyZSBhcmUgdHdvIHRpbWVzIHdoZW4gYSBtYW4gZG9lc24ndCB1bmRlcnN0YW5kIGEgd29tYW46CmJlZm9yZSBoZSBtYXJyaWVzIGhlciBhbmQgYWZ0ZXIgaGUgbWFycnJpZXMgaGVyLgoKQSB3b21hbiBoYXMgdGhlIGxhc3Qgd29yZCBpbiBhbnkgYXJndW1lbnQuCkFueXRoaW5nIGEgbWFuIHNheXMgYWZ0ZXIgdGhhdCBpc3QgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyBhcmd1bWVudC4KCgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogaW5zaWRlciBqb2tlLi4uLiAoR3JpbW1ib3JuLCAyMy4gQXByIDE5OTksIDE0OjUzOjA1KToKfiMhIG9uPUdyaW1tYm9ybiBvdD05MjQ4NzEyNjggb2c9c2NobWFycm4KfiMhIG9uPVFpdGVzcyBvdD05MjQ4NjY3MjQgb2c9d2l0emUKfiMhIHJuPUphc3BlciBydD05MjQ3MjUwOTEgcmc9d2l0emUKfiMhIHRpZD05MjQ3MjAzNDMKU0NITFVTUyBNSVQgREVSIFJFQ0hORVJFSSEKCkFVU1RSSU5LRU4gVU5EIE5FVSBGVUVMTEVOICEhIQoKUUkqKiBQUk9TVCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBha3R1ZWxsZSBQc3ljaG90ZXN0OiBCaXN0IGR1IGVpbiBLYWVtcGZlcj8gKEtudWJiZWwsIDIzLiBBcHIgMTk5OSwgMTU6NDU6MDUpOgpCaXN0IER1IGVpbiBLYWVtcGZlcj8gRmluZGUgZXMgaGVyYXVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlciBha3R1ZWxsZSBQc3ljaG90ZXN0CkplbWFuZCBmcmFndCBEaWNoLCB3YXMgZGFzIEdyYXMgd2FjaHNlbiBsYWVzc3QuIFdhcyBhbnR3b3J0ZXN0IER1PwogICAxLlNvbm5lbnNjaGVpbiB1bmQgV2Fzc2VyIAogICAyLkNoZW1pc2NoZSBSZWFrdGlvbmVuIHp3aXNjaGVuIExpY2h0LCBXYXNzZXIgdW5kIEtvaGxlbmRpb3hpZC4gCiAgIDMuQmx1dCwgQmx1dCwgQmx1dCEKSmVtYW5kIGZvcmRlcnQgRGljaCB6dW0gRHVlbGwuIFdhcyB0dXN0IER1PwogICAxLkljaCBmbGVoZSBkaWUgR29ldHRlciB1bSBIaWxmZSBmdWVyIGRlbiBrb21tZW5kZW4gS2FtcGYgYW4uIAogICAyLkljaCBzdWNoZSBlaW4gZ3Jvc3NlcyBCdWNoLCB1bSBpaG4gZGFtaXQgenUgc2NobGFnZW4uIAogICAzLk1pciB3aXJkIGtsYXIsIGRhc3MgZGllcyBkaWUgaWRlYWxlIEdlbGVnZW5oZWl0IGlzdCwgaGVyYXVzenVmaW5kZW4sIHdpZQp0aWVmIGljaCBtZWluZSBGYXVzdCBpbiBlaW5lbiBhbmRlcmVuIEtvcGYKICAgICBoaW5laW5zY2hpZWJlbiBrYW5uLgpEdSBmaW5kZXN0IGVpbmVuIFNjaGF0ei4gV2FzIG5pbW1zdCBEdT8KICAgMS5laW4gZWluZmFjaGVzIGdvbGRlbmVzIEhhbHNiYW5kLiAKICAgMi5EaWVzZXMgbWV0YWxsZ2VidW5kZW5lIEJ1Y2guIAogICAzLkRhcyBncm9zc2UsIHNjaHdhcnplIFNjaHdlcnQsIGRlc3NlbiBLbGluZ2Ugdm9uIHNlbGJzdCB6dSBibHV0ZW4gc2NoZWludAp1bmQgc3RhZW5kaWcgIlRvZCwgVG9kLCBUb2QhIiBmbHVlc3RlcnQgCkplbWFuZCB2ZXJzdGVsbHQgRGlyIGRlbiBXZWcuIER1Li4KICAgMS4uLmdlaHN0IHVtIGlobiBoZXJ1bS4gCiAgIDIuLi52ZXJzdWNoc3QsIG1pdCBpaG0genUgcmVkZW4gCiAgIDMuLi5zYWdzdCBpaG0sIGRhc3Mgc2VpbmUgU2NobnVlcnNlbmtlbCBvZmZlbiBzaW5kLgpXaWV2aWVsIGthbm5zdCBEdSBob2NoaGViZW4/CiAgIDEuNDAgS2lsbyAKICAgMi4yMCBLaWxvIAogICAzLmVpbmVuIGtsZWluZW4gVHJvbGwuCkRyYWNoZW4gc2luZC4uLgogICAxLktpbmRlciBkZXIgRXJkZSAKICAgMi5BcmthbmUgR2VzY2hvZXBmZSB2b24gZ3Jvc3NlciBNYWNodC4gCiAgIDMuQXVmd2Flcm1tb25zdGVyLgpEdSBzaWVoc3QgZWluIFVuZ2VoZXVlciwgZGFzIERpciBub2NoIG5pZSBiZWdlZ25ldCBpc3QuIFdhcyB0dXN0IGR1PwogICAxLkljaCBmcmFnZSBydW0sIG9iIGlyZ2VuZGplbWFuZCB3ZWlzcywgd2FzIGVzIGlzdC4gCiAgIDIuSWNoIHVudGVyc3VjaGUgZXMgYXVmIG1hZ2lzY2hlIFdlaXNlIAogICAzLkljaCB1bnRlcnN1Y2hlLCBvYiBlcyBibHV0ZXQuCkR1IHNjaHJlaWJzdCBlaW4gQnVjaCB1ZWJlci4uLiAKICAgMS5kYXMgaGFybW9uaXNjaGUgWnVzYW1tZW5sZWJlbiBtaXQgQW5kZXJlbiAKICAgMi5kaWUgVm9ydGVpbGUsIGFsbGVpbmUgenUgbGViZW4gCiAgIDMuZGllIFJlYWt0aW9uZW4gdm9uIERpbmdlbiwgd2VubiBtYW4gaWhuZW4gYXVmIGRpZSBOYXNlIGhhdXQgCkVpbiBTY2h3ZXJ0IGlzdC4uLiAKICAgMS5laW5lIGJydXRhbGUsIGJydXRydWVuc3RpZ2UgV2FmZmUgCiAgIDIuZWluIFdlcmt6ZXVnIGZ1ZXIgZGllIG1hZ2lzY2ggVW5iZWdhYnRlbiAKICAgMy5tZWluIGJlc3RlciBGcmV1bmQgCldhcyBzb2xsIG1hbiBtaXQgZWluZW0gRmVpbmQgdHVuPwogICAxLktvbnZlcnRpZXJlbi4gCiAgIDIuRWluZW4gV2VnIGZpbmRlbiwgdW0gaWhuIGZ1ZXIgZWluZSB3aXJrbGljaCBsYW5nZSBaZWl0IHp1IHN0cmFmZW4uIAogICAzLkRhcyBHcmFzIG1pdCBpaG0genVtIFdhY2hzZW4gYnJpbmdlbi4KV2FzIGlzdCBlaW5lIE5hcmJlPyAKICAgMS5FaW5lIGdlaGVpbHRlIFd1bmRlIAogICAyLkhhZXNzbGljaCAKICAgMy5EZXIgQmV3ZWlzLCBkYXNzIER1IHdhcyBlaW5zdGVja2VuIGthbm5zdC4KSmVtYW5kIGJlbGVpZGlndCBEZWluZSBNdXR0ZXIuIFdhcyB0dXN0IER1PyAKICAgMS5JY2ggdmVyZ2ViZSBpaG0uIAogICAyLkljaCB3ZWlzcywgZGFzcyBkZXIgS2VybCBtZWluZSBNdXR0ZXIgbmljaHQga2VubnQgdW5kIGRhc3MgZGFzIGF1Y2gKYmVzc2VyIGZ1ZXIgaWhuIGlzdC4gCiAgIDMuSWhuIHRvZXRlbiwgd2llc28/CkF1ZmxvZXN1bmc6Cldlbm4gRHUgaGF1cHRzYWVjaGxpY2ggbWl0ICIxIiBnZWFudHdvcnRldCBoYXN0LCBrb2VubnRlc3QgRHUgZWluIEtsZXJpa2VyCnNlaW4uCldlbm4gRHUgaGF1cHRzYWVjaGxpY2ggbWl0ICIyIiBnZWFudHdvcnRldCBoYXN0LCBrb2VubnRlc3QgRHUgWmF1YmVyZXIgc2Vpbi4KV2VubiBEdSBoYXVwdHNhZWNobGljaCBtaXQgIjMiIGdlYW50d29ydGV0IGhhc3QsIHdhZXJzdCBEdSBlaW4gZXh6ZWxsZW50ZXIKS2FlbXBmZXIgdW5kIGhhZXR0ZXN0IGVpbmUgKGt1cnplKSBnbGFuenZvbGxlIFp1a3VuZnQgdm9yIERpci4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVyIGFrdHVlbGxlIFBzeWNob3Rlc3Q6IEJpc3QgZHUgZWluIEthZW1wZmVyPyAoSmFzcGVyLCAyMy4gQXByIDE5OTksIDE1OjU0OjMyKToKfiMhIHJuPUtudWJiZWwgcnQ9OTI0ODc1MTA1IHJnPXdpdHplCn4jISB0aWQ9OTI0ODc1MTA1Ci4ud2Fyc3QgZHUgbmljaHQgdm9yIGt1cnplbSBub2NoIHNlbGJzdGVnbG9lc2NodD8gOikKCmphc3BlciBzZXR6dCBkaWUgJ25vIGNvbW1lbnQnLWthcnRlIGVpbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxlYyBHdWlubmVzIChKYXNvbnJpZ2lkLCAyNC4gQXByIDE5OTksIDEzOjE3OjI2KToKCkVpbiBXaXR6IG9kZXIgbWVociBlaW5lIEFuZWtkb3RlIGF1cyBkZW0gTGViZW4gZGVzIFNjaGF1c3BpZWxlcnMgQWxlYyBHdWlubmVzCjoKCkFsZWMgR3Vpbm5lc3Mgd2FyIGJlc2Vzc2VuIGRhdm9uLCBpbiBlaW5lbSBGaWxtIGRpZSBSb2xsZSBBZG9sZiBIaXRsZXJzIHp1CnNwaWVsZW4uIEVyIGJlc29yZ3RlIHNpY2ggYWxzbyBlaW4gYWRhZXF1YXRlcyBLb3N0dWVtIHVuZCB3b2xsdGUgc2ljaCBpbiBkaWUKUm9sbGUgaGluZWluZnVlaGxlbiB1bmQgc3RlbGx0ZSBzaWNoIHNvIGluIGRpZSBJbm5lbnN0YWR0IHVuZCBiZWdhbm4gZG9ydCwKZWluZSB0eXBpc2NoZSBSZWRlIHp1IGhhbHRlbi4gRXIgd2FyIHdpcmtsaWNoIGd1dCwgYWJlciBpcmdlbmR3aWUgYmVhY2h0ZXRlbgpkaWUgdm9ydWViZXJnZWhlbmRlbiBMZXV0ZSBpaG4gbmljaHQuIE51ciBlaW4gYWVsdGVyZXIgUG9saXppc3Qgc3ByYWNoIGlobiBhbgo6CgoiRXhjdXNlIG1lLCBzaXIuIElzIHRoaXMgeW91ciBjYXIgb3ZlciB0aGVyZSA/PyBJdCdzIG9uIGEgZG91YmxlIHllbGxvdyBsaW5lLApzaXIsIG5vdCByZWFsbHkgc3VwcG9zZWQgdG8gYmUgdGhlcmUuIFdlbGwsIEknbGwgbGV0IHlvdSBnbyB3aXRoIGEgd2FybmluZwp0aGlzIHRpbWUsIEkgd29uJ3QgZ2l2ZSB5b3UgYSB0aWNrZXQgc2luY2UgSSBoYXZlIG5vIGludGVudGlvbiBvZiBzcGVuZGluZyB0aGUKcmVzdCBvZiBteSBsaWZlIGluIGEgY29uY2VudHJhdGlvbiBjYW1wLiIKCgpKYXNvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGVyIGdlc2NocmllYmVuZSBXaXR6IChBc21vZGlzLCAyNC4gQXByIDE5OTksIDIwOjUzOjQxKToKV2FzIGlzdCBlaW4gc3BpdHpvaHJpZ2VyIExpbGlwdXRhbmVyID8KCgoKCgoKCgoKCgoKCgoKCgoKCgpFaW4gRWxmbWV0ZXIhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpnZWh0J3Mgbm9jaCBzY2hsZWNodGVyPyA6KSAoQ2FyYWRocmFzLCAyNi4gQXByIDE5OTksIDIzOjQzOjM3KToKKmJycnJyciogSWNoIHJ1ZmUgenVtIFdldHRzdHJlaXQgdW0gZGVuIHNjaGxlY2h0ZXN0ZW4gV2l0eiBhdWYuLi4KZGVubiBkaWUgc2NobGVjaHRlc3RlbiBzaW5kIG9mdCBkaWUgYmVzdGVuLiBFYmVuIHNvIHNjaGxlY2h0LCBkYXNzCnNpZSBzY2hvbiB3aWVkZXIgZ3V0IHNpbmQ6CgpXYXMgaXN0IGVpbiBad2VyZyBtaXQgc3BpdHplbiBPaHJlbj8gICAgICAgICAgICAgICAgRWluIEVsZm1ldGVyLgoKICAgICBCZXJnY2hlbiBDYXJhZGhyYXMgLSBncm9lc3NlciBhbHMgZWluZW4gTWV0ZXIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBnZWh0J3Mgbm9jaCBzY2hsZWNodGVyPyA6KSAoQXNtb2RpcywgMjYuIEFwciAxOTk5LCAyMzo0NTowNCk6Cn4jISBybj1DYXJhZGhyYXMgcnQ9OTI1MTYzMDE3IHJnPXdpdHplCn4jISB0aWQ9OTI1MTYzMDE3CmhlaGUsIGRhcyBrYW5uIGtlaW5lciB1bnRlcmJpZXRlbiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBnZWh0J3Mgbm9jaCBzY2hsZWNodGVyPyA6KSAoU3RvZXJ0aSwgMjYuIEFwciAxOTk5LCAyMzo1OTo1Mik6Cn4jISBybj1DYXJhZGhyYXMgcnQ9OTI1MTYzMDE3IHJnPXdpdHplCn4jISB0aWQ9OTI1MTYzMDE3CnN0ZWhlbiAyIGt1ZWhlIGltIGtlbGxlciB1bmQgc2FlZ2VuIGhlaXpvZWwuCnNhZ3QgZGllIGVpbmUgIk11aCIuCnNhZ3QgZGllIGFuZGVyZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWNodHVuZyBGcmF1ZW5mZWluZGxpY2ggKE1vcmdvdGgsIDI4LiBBcHIgMTk5OSwgMDk6Mzc6NDEpOgpXYXMgd2FlcmUgd2VubiBzaWNoIGRpZSBFcmRlIDMwbWFsIHNjaG5lbGxlciBkcmVoZW4gd3JkZSA/CkdhbnogZWluZmFjaCwgaWNoIHdyZGUgbWVpbmVuIExvaG4gamVkZW4gVGFnIGJla29tbWVuIHVuZCBkaWUgRnJhdWVuIHd1ZXJkZW4KdmVyYmx1dGVuLgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZXIgRnJhdSB1bmQgZWluZW0gRnJvc2NoPwpFcyBnaWJ0IGtlaW5lbiEhClF1YWtlbiBudXIgZHVtbSBydW0sIGhhYmVuIHN0YWVuZGlnIGthbHRlIEZsb3NzZW4gdW5kIEFuZ3N0IHZvciBkZW0KS2xhcHBlcnN0b3JjaC4KClRyZWZmZW4gc2ljaCB6d2VpIEZyYXVlbiBpbSBQYXJrLCBkaWUgZWluZSBoYXQgZWluZW4gS2luZGVyd2FnZW4gZGFiZWkuICJVaSwKd2llIHN1ZXNzLCBkYXJmIGljaCBtYWwgcmVpbnNjaGF1ZW4/IiAiS2xhciwgd2FydW0gbmljaHQuIiBEaWUgRnJhdSBiZXVndCBzaWNoCmJlciBkZW4gV2FnZW4sIHNjaGF1dCBoaW5laW4gdW5kIE9IIEdPVFQhIExpZWd0IGRhIGVpbiBCYWJ5IG1pdCBibG9uZGVuIEhhYXJlbgp1bmQgYmxhdWVuIFNjaGxpdHphdWdlbi4gRnJhZ3Qgc2llIGdhbnogYmVzdHJ6dDogIlNhZyBtYWwsIHdpZSBoYXN0IER1IGRlbm4KREFTIGdlc2NoYWZmdD8iICJUamEsIFNjaGVpc3MgR3J1cHBlbnNleCAtIGljaCBiaW4gbnVyIGhlaWxmcm9oLCBkYXNzIGVyIG5pY2h0CmJlbGx0ISIKCldhcnVtIGhhYmVuIFNwZXJtaWVuIGFtIEVuZGUgZWluZW4gU2Nod2Fuej8KRGFtaXQgZGllIEZyYXVlbiBkaWUgUmVzdGUgYmVzc2VyIGF1cyBkZW4gWmhuZW4gYmVrb21tZW4uCgpHZWh0IGVpbiAxNi1qYWVocmlnZXMgTWFlZGVsIHp1bSBGcmF1ZW5hcnp0LCB3ZWlsIGlociBCYXVjaCBpbW1lciBkaWNrZXIgd2lyZC4KU2llIGJlZnVlcmNodGV0IGFsc28sIGRhc3Mgc2llIHNjaHdhbmdlciBpc3QgdW5kIGVyemFlaGx0IGRpZXMgZGVtIEFyenQuIE51bgpndXQuIERlciB1bnRlcnN1Y2h0IHNpZSBncnVlbmRsaWNoLgpOYWNoIGRpZXNlciBVbnRlcnN1Y2h1bmcgbWVpbnQgZXIgZGFubiA6ICJBbHNvIC0gaWNoIGthbm4gc2llIGJlcnVoaWdlbiwKc2Nod2FuZ2VyIHNpbmQgc2llIG5pY2h0LiBBYmVyIG5vY2ggZWluIFRpcCB2b24gbWlyIDogVGFtcG9ucyBzaW5kIHp1bQphdXN3ZWNoc2VsbiwgbmljaHQgenVtIG5hY2hzY2hpZWJlbi4uLiIKCkFkYW0gdW5kIEV2YSBzaW5kIGF1cyBkZW0gUGFyYWRpZXMgcmF1c2dlc2NobWlzc2VuIHdvcmRlbi4gQWRhbSBiZXNjaHdlcnQgc2ljaApiZWkgRXZhIHVuZCBzYWd0OiJEYWZ1ZXIgc29sbHN0IGR1IGJsdXRlbiIuIERhcmF1ZmhpbiBFdmE6Ikthbm4gSWNoIGVzIGF1Y2ggaW4KUmF0ZW4gYWJiZXphaGxlbj8iCgoKTmFqYSwgZGEgc2luZCBub2NoIG1laHIgYXVmIGRlciBTZWl0ZSwgYWJlciBkaWUgc2luZCB0ZWlsd2Vpc2UgZG9jaApHZXNjaG1hY2tsb3MgOy0pCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFjaHR1bmcgRnJhdWVuZmVpbmRsaWNoIChTdG9lcnRpLCAyOS4gQXByIDE5OTksIDE5OjQyOjAyKToKfiMhIHJuPU1vcmdvdGggcnQ9OTI1Mjg1MDYxIHJnPXdpdHplCn4jISB0aWQ9OTI1Mjg1MDYxCmVyemFlaGxzdCBkdSBtaXIgZGVubiwgdm9uIHdlbGNoZXIgc2VpdGUgZ2VuYXUgZHUgc3ByaWNoc3Q/IDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBY2h0dW5nIEZyYXVlbmZlaW5kbGljaCAoTW9yZ290aCwgMzAuIEFwciAxOTk5LCAwNzo0Nzo0Nik6Cn4jISBybj1TdG9lcnRpIHJ0PTkyNTQwNzcyMiByZz13aXR6ZQp+IyEgdGlkPTkyNTI4NTA2MQpkYSBnaWJ0cyBlaW4gcGFhciBtZWhyIHNlaXRlbiBtaXQgdmVyc2NoaWVkZW5lbiB0aGVtZW4uIHNlaGVuIG5pY2h0IHNvIHRvbGwKYXVzLCBhYmVyIGRhcnVtIGdlaHRzIGphIG5pY2h0LgpodHRwOi8vd3d3LnJlbXRlci5jb20vcGFydHktcGVvcGxlL2h0bWwvYm9keV8xMDdfZ3J1ZW5kZS5odG0KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXZXIgdWViZXJzZXR6dCBtaXIgZGFzIGJpdHRlPyAoR3JpbW1ib3JuLCAzMC4gQXByIDE5OTksIDEwOjE3OjA3KToKfiMhIG9uPVJpa3VzIG90PTkyNTEzOTk0MiBvZz1hbGxnZW1laW5lcwp+IyEgcm49R3VpbGRvIHJ0PTkyNTEzODI1OSByZz1hbGxnZW1laW5lcwp+IyEgdGlkPTkyNTEyNTI1OQpXaXIgc2NocmllYmVuIHZvciBKYWhyZW4gYW4gZGVyIFVuaSBtYWwgZWluZW4gQnJpZWYgYW4gZGVuIERla2FuLCBXb3JkCndvbGx0ZSBEZWthbiBpbiBEZWthZGVueiBhZW5kZXJuLi4uCgpSaWt1cyAoenVtIEdsdWVjayBkZW4gVGV4dCBuYWNoZ2VsZXNlbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5ldWxpY2ggaW0gVG93ZXIgKERpZWRlciwgMzAuIEFwciAxOTk5LCAxODowMToyMyk6ClRvd2VyOiAiUGhhbnRvbSBGb3JtYXRpb24gY3Jvc3NpbmcgY29udHJvbCB6b25lIHdpdGhvdXQgY2xlYXJhbmNlLCBzdGF0ZSB5b3VyCmNhbGxzaWduISIKUGlsb3Q6ICJJJ20gbm90IHNpbGx5Li4uIgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVsaWNoIGltIGZsdWd2ZXJrZWhyIChEaWVkZXIsIDMwLiBBcHIgMTk5OSwgMTk6NTU6MDUpOgpUb3dlcjoKICAgICAgICJTYXkgZnVlbHN0YXRlLiIgClBpbG90OgogICAgICAgIkZ1ZWxzdGF0ZS4iIApUb3dlcjoKICAgICAgICJTYXkgYWdhaW4uIiAKUGlsb3Q6CiAgICAgICAiQWdhaW4uIiAKVG93ZXI6CiAgICAgICAiQXJnaGwsIGdpdmUgbWUgeW91ciBmdWVsISIgClBpbG90OgogICAgICAgIlNvcnJ5LCBuZWVkIGl0IGJ5IG15c2VsZi4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVsaWNoIGltIGx1ZnR2ZXJrZWhyIDIgKERpZWRlciwgMzAuIEFwciAxOTk5LCAxOTo1NzowNSk6ClRvd2VyIChpbiBTdHV0dGdhcnQpOgogICAgICAgIkx1ZnRoYW5zYSA1NjgwLCByZWR1Y2UgdG8gMTcwIGtub3RzLiIgClBpbG90OgogICAgICAgIkRhcyBpc3QgamEgd2llIGluIEZyYW5rZnVydC4gRGEgZ2lidCdzIGF1Y2ggbnVyIDIxMCB1bmQgMTcwIEtub3Rlbi4uLgpBYmVyIHdpciBzaW5kIGphIGZsZXhpYmVsLiIgClRvd2VyOgogICAgICAgIldpciBhdWNoLiBSZWR1Y2UgdG8gMTczIGtub3RzLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuZXVsaWNoIGltIGx1ZnR2ZXJrZWhyIGRlciByZXN0Li4uIChEaWVkZXIsIDMwLiBBcHIgMTk5OSwgMjA6MDE6MDQpOgoKc29ycnkgd2FyZW4gZG9jaCBlaW4gcGFhciBtZWhyLCBkZXNoYWxiIGpldHp0IG1laHJlcmUgOi0pCgoKVG93ZXI6CiAgICAgICAiSGF3ayAyMCwgaXMgdGhpcyB0aGUgc2FtZSBhaXJjcmFmdCBkZWNsYXJpbmcgZW1lcmdlbmN5IGFib3V0IHR3bwpob3VycyBhZ28gPyIgClBpbG90OgogICAgICAgIk5lZ2F0aXYsIFNpci4gSXQncyBvbmx5IHRoZSBzYW1lIHBpbG90LiIgCgotLS0KClBpbG90OgogICAgICAgIlRvd2VyLCBkYSBicmVubnQgZWluIFJ1bndheS1saWdodC4iIApMb3RzZToKICAgICAgICJJY2ggaG9mZmUsIGRhIGJyZW5uZW4gbWVocmVyZS4iIApQaWxvdDoKICAgICAgICJTb3JyeSwgaWNoIG1laW5lLCBlcyBxdWFsbXQuIiAKCi0tLQoKVG93ZXI6CiAgICAgICAiRGVsdGEgWnVsdSBSb21lbywgdHVybiByaWdodCBub3cgYW5kIHJlcG9ydCB5b3VyIGhlYWRpbmcuIiAKUGlsb3Q6CiAgICAgICAiV2lsY28uIDM0MSwgMzQyLCAzNDMsIDM0NCwgMzQ1Li4uIiAKCi0tLQoKVG93ZXI6CiAgICAgICAiSG90ZWwgUGFwYSBPc2NhciBjbGltYiBmb3VyIHRob3VzYW5kIHRvIHNpeCB0aG91c2FuZCBhbmQgbWFpbnRhaW4uIiAKUGlsb3Q6CiAgICAgICAiSG90ZWwgUGFwYSBPc2NhciwgY2xpbWJpbmcgZmxpZ2h0IGxldmVsIDEwMC4iIApUb3dlcjoKICAgICAgICJIb3RlbCBQYXBhIE9zY2FyLCBjbGltYiB0byBmbGlnaHQgbGV2ZWwgNjAgYW5kIG1haW50YWluLiIgClBpbG90OgogICAgICAgIkFiZXIgdmllciBwbHVzIHNlY2hzIGlzdCBkb2NoIHplaG4sIG9kZXI/IiAKVG93ZXI6CiAgICAgICAiU2llIHNvbGxlbiBzdGVpZ2VuLCBuaWNodCBhZGRpZXJlbi4iIAoKLS0tCgpUb3dlcjoKICAgICAgICJERS4uLiwgZmxpZWdlbiBTaWUgd2VpdGVyIGltIEdlZ2VuYW5mbHVnIGZ8ciBkaWUgMjYsIExhbmRlbnVtbWVyIDIKaGludGVyIGVpbmVyIERDIDkgaW0ga3VyemVuIEVuZHRlaWwuIiAKUGlsb3Q6CiAgICAgICAiVmVyc3RhbmRlbiwgZmxpZWdlIHdlaXRlciBmfHIgZGllIDI5IHVuZCBmb2xnZSBkZXIgREMgNi4iIApUb3dlcjoKICAgICAgICJOaWNodCBnYW56IHJpY2h0aWc6IERpZSBMYW5kZWJhaG4gd2FyIDI2IHVuZCBJaHIgVmVya2VociBlaW5lIERDIDkuIiAKUGlsb3Q6CiAgICAgICAiT2theSwgaWNoIGZvbGdlIGRlciBEQyAyNi4uLiBXaWUgd2FyIGRpZSBMYW5kZWJhaG4/IiAKCgoKLS0tCgpIdWJzY2hyYXViZXItTGVocmVyICh6dSBzZWluZW0gRmx1Z3NjaHxsZXIpOgogICAgICAgIlNlaGVuIFNpZSB6dSwgZGFfIFNpZSBpbm5lcmhhbGIgZGVyIGJldG9uaWVydGVuIEZsZGNoZSBibGVpYmVuLiIgClVuZCBuYWNoIGVpbiBwYWFyIE1pbnV0ZW46CiAgICAgICAiQWNoIHdhcywgYmxlaWJlbiBTaWUgd2VuaWdzdGVucyBpbiBkZXIgQnVuZGVzcmVwdWJsaWsgISAiIAoKCi0tLQoKVG93ZXI6CiAgICAgICAiRGVsdGEgRm94IEFscGhhLCBob2xkIHBvc2l0aW9uLCBNYXJzaGFsbCB3aWxsIHBhcmsgeW91LiIgClBpbG90OgogICAgICAgIlJvZ2VyLiBMb29raW5nIG91dCBmb3IgSm9obiBXYXluZS4iIAoKLS0tCgpGbHVnc2NofGxlcjoKICAgICAgICJMaWNodGVuZmVscyBJbmZvLCBERUlUTiwgaW0gcmVjaHRlbiBRdWVyYW5mbHVnIExhbmRlYmFobiAyMiwgenVtCkR1cmNoc3RhcnRlbiB1bmQgQXVmc2V0emVuLiIgClRvd2VyOgogICAgICAgIkRFSVROLCBpY2ggaGFiZSBlaW5lIGdyb19lIEJpdHRlOiBlcnN0IGF1ZnNldHplbiB1bmQgZGFubgpkdXJjaHN0YXJ0ZW4hIiAKCi0tLQoKUGlsb3Q6CiAgICAgICBHb29kIG1vcm5pbmcsIEZyYW5rZnVydCBncm91bmQsIEtMTSAyNDIgcmVxdWVzdCBzdGFydCB1cCBhbmQgcHVzaApiYWNrLCBwbGVhc2UuIChUdXJiaW5lbiBzdGFydGVuIHVuZCB2b20KICAgICAgIFRlcm1pbmFsIHp1cnxja3NjaGllYmVuIGxhc3NlbikgClRvd2VyOgogICAgICAgS0xNIDI0MiBleHBlY3Qgc3RhcnQgdXAgaW4gdHdvIGhvdXJzLiAKUGlsb3Q6CiAgICAgICBQbGVhc2UgY29uZmlybTogdHdvIGhvdXJzIGRlbGF5PyAKVG93ZXI6CiAgICAgICBBZmZpcm1hdGl2ZSAKUGlsb3Q6CiAgICAgICBJbiB0aGF0IGNhc2UsIGNhbmNlbCB0aGUgZ29vZCBtb3JuaW5nISAKCi0tLQoKRWdnZW5mZWxkZW4gSW5mbyA6CiAgICAgICBELUVYWFggcGxzLiByZXBvcnQgcGVyc29ucyBhYm9hcmQuIApELUVYWFggKEMtMTcyKSA6CiAgICAgICBQaWxvdCBhbmQgdHdvIHBheCBhbmQgb25lIGRvZy4gCkVnZ2VuZmVsZGVuIEluZm8gKGFmdGVyIENlc3NuYSBmaW5hbGx5IGJvdW5jZWQgdG8gc3RvcCkgOgogICAgICAgQXNzdW1lIHRoZSBQaWxvdCBpbiBDb21tYW5kIHdhcyB0aGUgZG9nID8gCgotLS0KCgoKUGlsb3Q6CiAgICAgICBGIExYIDMwLCBLb250cm9sbHJhdW0sIGJpdHRlIGtvbW1lbiwgd2lyIGhhYmVuIG51ciBub2NoIHdlbmlnZSBMaXRlcgpUcmVpYnN0b2ZmLiBFcmJpdHRlIEFud2Vpc3VuZ2VuICEgCktvbnRyb2xscmF1bToKICAgICAgIEJpdHRlIGdlYmVuIFNpZSB1bnMgaWhyZSBQb3NpdGlvbiBhbiwgd2lyIGhhYmVuIFNpZSBuaWNodCBhdWYgdW5zZXJlbQpSYWRhcnNjaGlybS4uLiEgClBpbG90OgogICAgICAgV2lyIHN0ZWhlbiBhdWYgZGVyIExhbmRlYmFobiAyIHVuZCBtb2VjaHRlbiB3aXNzZW4sIHdhbm4gZGVyIFRhbmt3YWdlbgprb21tdCEgCgotLS0KClRvd2VyOgogICAgICAgIkhvZWhlIHVuZCBQb3NpdGlvbj8iIApQaWxvdDoKICAgICAgICJBbHNvIGljaCBiaW4gMSw4MCBtIHVuZCBzaXR6ZSBnYW56IHZvcm5lIGxpbmtzIiAKCi0tLQoKV2FzaGluZ3RvbiBELkMuLCBDbGVhcmFuY2UgRGVsaXZlcnk6CiAgICAgICBHZXJtYW4gQWlyIEZvcmNlIDI2OSwgeW91IGFyZSBjbGVhcmVkIHRvIERlc3RpbmF0aW9uIEluZGlhbiBTcHJpbmdzCnZpYSBhZnRlciB0YWtlIG9mZiByYWRhciB2ZWN0b3JzIHRvIDQwMDAKICAgICAgIGZlZXQgdGhlcmVhZnRlciBwcmVzZW50IHBvc2l0aW9uIGRpcmVjdCBCT00gZG8gbm90IHBhc3MgQk9NIGF0IDYwMDAKZmVldCBvciBiZWxvdyBhZnRlciBwYXNzaW5nIDE1MDAwIGZlZXQKICAgICAgIHR1cm4gcmlnaHQgb24gaGVhZGluZyAyODAgdG8gaW50ZXJjZXB0IGoxNTYgZGlyZWN0IFpaVCB0aGVyZWFmdGVyCmludGVyY2VwdCBqMTU4IG93biBuYXZpZ2F0aW9uIHJlYWQgYmFjay4gCkdBRiAyNjk6CiAgICAgICBSb2dlciBHZXJtYW4gQWlyIEZvcmNlIDI2OSBpcyBjbGVhcmVkIHRvIERlc3RpbmF0aW9uIEluZGlhbiBTcHJpbmdzCnZpYSBhZnRlciB0YWtlIG9mZiByYWRhciB2ZWN0b3JzIHRvIDQwMDAKICAgICAgIGZlZXQgdGhlcmVhZnRlciBwcmVzZW50IHBvc2l0aW9uIGRpcmVjdCBCT00gZG8gbm90IHBhc3MgQk9NIGF0IDYwMDAKZmVldCBvciBiZWxvdyBhZnRlciBwYXNzaW5nIDE1MDAwIGZlZXQKICAgICAgIHR1cm4gcmlnaHQgb24gaGVhZGluZyAyODAgdG8gaW50ZXJjZXB0IGoxNTYgZGlyZWN0IFpaVCB0aGVyZWFmdGVyCmludGVyY2VwdCBqMTU4IG93biBuYXZpZ2F0aW9uIGFuZCBJIG5lZWQKICAgICAgIGFub3RoZXIgcGVuY2lsLgoKCkRpZWRlciwgYW11ZXNpZXJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmaWxtZ2VzZXR6ZSAoRGllZGVyLCAzMC4gQXByIDE5OTksIDIxOjE0OjQ0KToKMS5KZWRlciBQb2xpemVpZWluc2F0eiBmdWVocnQgbWluZGVzdGVucyBlaW5tYWwgaW4gZWluZW4gU3RyaXAtQ2x1Yi4gCiAgICAyLkplZGUgVVMtVGVsZWZvbm51bW1lciBiZWdpbm50IG1pdCA1NTUuIAogICAgMy5XZW5uIER1IGR1cmNoIGRpZSBTdGFkdCBnZWphZ3Qgd2lyc3QsIGlzdCBkZXIgYmVzdGUgT3J0LCBzaWNoIHp1CnZlcnN0ZWNrZW4sIGVpbmUgU3QuIFBhdHJpY2tzIERheSBQYXJhZGUuCiAgICAgICBVbmFiaGFlbmdpZyBkYXZvbiwgd2VsY2hlbiBUYWcgd2lyIGhhYmVuIG9kZXIgb2IgRHUgenVmYWVsbGlnIGluCk5hZ2FzYWtpIGJpc3QuIAogICAgNC5CZXR0ZW4gaGFiZW4gc3BlemllbGxlIEwtZm9lcm1pZ2UgTGFrZW4sIGRpZSBiZWkgRnJhdWVuIGJpcyB6dXIgQnJ1c3QKcmVpY2hlbiwgYWJlciBudXIgYmlzIHp1ciBUYWlsbGUgYmVpCiAgICAgICBNYWVubmVybi4gCiAgICA1LkFsbGUgRWlua2F1ZnN0dWV0ZW4gZW50aGFsdGVuIG1pbmRlc3RlbnMgZWluIEJhZ3VldHRlLiAKICAgIDYuSmVkZXIga2FubiBlaW4gRmx1Z3pldWcgbGFuZGVuLCBzb2xhbmdlIGVpbmVyIGltIFRvd2VyIHNpdHp0IHVuZCBkaWUKR2VicmF1Y2hzYW53ZWlzdW5nIHZvcmJldGV0LiAKICAgIDcuTGlwcGVuc3RpZnQgdmVyc2NobWllcnQgbmllLiBBdWNoIG5pY2h0IGJlaW0gVGF1Y2hlbi4gCiAgICA4LkRhcyBWZW50aWxhdGlvbnNzeXN0ZW0gaXN0IGRhcyBwZXJmZWt0ZSBWZXJzdGVjay4gQXVjaCB3ZW5uIGRhcyBnYW56ZQpHZWJhZXVkZSBhdWYgZGVuIEtvcGYgZ2VzdGVsbHQKICAgICAgIHdpcmQsIGRvcnQgc3VjaHQgRGljaCBuaWVtYW5kLCBhdV9lcmRlbSBrYW5uc3QgRHUgc28gamVkZW4gYmVsaWViaWdlbgpQdW5rdCBpbSBHZWJhZXVkZSBlcnJlaWNoZW4uIAogICAgOS5GYWxscyBEdSBuYWNobGFkZW4gbXVzc3QsIHdpcnN0IER1IE11bml0aW9uIHBhcmF0IGhhYmVuLiBTZWxic3Qgd2VubiBEdQp2b3JoZXIga2VpbmUgbWVociBoYXR0ZXN0LiAKICAgMTAuRHUgdWViZXJsZWJzdCBtaXQgc2VociBncm9fZXIgV2FocnNjaGVpbmxpY2hrZWl0IGplZGVuIEtyaWVnLiBTb2xhbmdlCkR1IG5pZW1hbHMgZWluIEZvdG8gRGVpbmVyIEdlbGllYnRlbgogICAgICAgenVoYXVzZSBoZXJ1bXplaWdzdC4gCiAgIDExLkR1IG11c3N0IG5pY2h0IERldXRzY2ggc3ByZWNoZW4sIHVtIGFscyBEZXV0c2NoZXIgT2ZmaXppZXIKZHVyY2h6dWdlaGVuLiBFaW4gZW50c3ByZWNoZW5kZXIgQWt6ZW50CiAgICAgICByZWljaHQgdm9lbGxpZy4gCiAgIDEyLldlbm4gZWluZSBTdGFkdCB2b24gZWluZXIgS2F0YXN0cm9waGUgdW5kL29kZXIgTW9uc3RlciBiZWRyb2h0IHdpcmQsCmdpbHQgZGllIEhhdXB0c29yZ2UgZGVzCiAgICAgICBCdWVyZ2VybWVpc3RlcnMgZGVuIFRvdXJpc211c2Vpbm5haG1lbiBvZGVyIHNlaW5lciBBdXNzdGVsbHVuZy4gCiAgIDEzLkRlciBFaWZmZWx0dXJtIGthbm4gdm9uIGplZGVtIEZlbnN0ZXIgaW4gUGFyaXMgZ2VzZWhlbiB3ZXJkZW4uIAogICAxNC5FaW4gTWFubiB3aXJkLCBvaG5lIG1pdCBkZXIgV2ltcGVyIHp1IHp1Y2tlbiwgU2NobGFlZ2UsIFRyaXR0ZSB1bmQKS3VnZWxuIGVpbnN0ZWNrZW4sIGFiZXIKICAgICAgIHp1c2FtbWVuenVja2VuLCBzb2JhbGQgZWluZSBGcmF1IHZlcnN1Y2h0LCBkaWUgV3VuZGVuIHp1IHZlcnNvcmdlbi4gCiAgIDE1LkVpbiBTY2hhdWZlbnN0ZXIgZGllbnQgbnVyIGRhenUsIGplbWFuZGVuIGR1cmNoenV3ZXJmZW4uIAogICAxNi5VbSBlaW4gVGF4aSB6dSBiZXphaGxlbiwgZ3JlaWYgZWluZmFjaCBpbiBkaWUgQnJpZWZ0YXNjaGUgdW5kIHppZWhlCmVpbmVuIFNjaGVpbiByYXVzLiBFcyB3aXJkIGRlciByaWNodGlnZQogICAgICAgc2Vpbi4gCiAgIDE3LkZvcnRwZmxhbnp1bmcgaXN0IG1pdCBqZWRlciBLcmVhdHVyIGltIFVuaXZlcnN1bSBtb2VnbGljaC4gCiAgIDE4Lkt1ZWNoZW4gaGFiZW4ga2VpbmUgTGljaHRzY2hhbHRlci4gRGFzIExpY2h0IHZvbSBLdWVobHNjaHJhbmsgcmVpY2h0CnZvZWxsaWcgYXVzLCB1bSBhbGxlcyBnZW5hdWVzdGVucyB6dQogICAgICAgYmVsZXVjaHRlbi4gCiAgIDE5LkluIGVpbmVtIFNwdWtoYXVzIGdlaGVuIEZyYXVlbiB1bmhlaW1saWNoZW4gR2VyYWV1c2NoZW4gaW1tZXIgaW4gZGVyClVudGVyd2Flc2NoZSBuYWNoLCBkaWUgbW9lZ2xpY2hzdAogICAgICAgdmllbCB6ZWlndC4gCiAgIDIwLkNvbXB1dGVyIGhhYmVuIHdlZGVyIEJldHJpZWJzc3lzdGVtIG5vY2ggZ2lidCdzClRleHR2ZXJhcmJlaXR1bmdzcHJvZ3JhbW1lLiBEYXMgRGlzcGxheSB6ZWlndAogICAgICAgZ3J1bmRzYWV0emxpY2ggJ0VudGVyIFBhc3N3b3JkJyB1bmQgbmFjaCBFaW5nYWJlIGRlcyByaWNodGlnZW4gZ2lidCdzCmF1dG9tYXRpc2NoIGVpbmVuIEF1c2RydWNrIGRlcwogICAgICAgZ2V3dWVuc2NodGVuIFRleHRlcy4gCiAgIDIxLk11ZXR0ZXIga29jaGVuIHN0YWVuZGlnIEVpZXIsIEthZmZlZSB1bmQgc29uc3RpZ2VzLCB1bmFiaGFlbmdpZyBkYXZvbiwKb2IncyBpcmdlbmR3ZXIgamVtYWxzIGlzc3QuIAogICAyMi5EZXIgUG9saXplaWNoZWYgc3VzcGVuZGllcnQgc3RhZW5kaWcgc2VpbmVuIGJlc3RlbiBNaXRhcmJlaXRlciAtIG9kZXIKZ2lidCBpaG0gbm9jaCA0OCBTdHVkZW4sIHVtIGRlbiBKb2IKICAgICAgIHp1IGVybGVkaWdlbi4gCiAgIDIzLkVpbiBTdHJlaWNoaG9seiByZWljaHQsIHVtIGVpbiBHZWJhZXVkZSB2b24gZGVyIEdyb2VfZSBkZXIgU3RhZHRoYWxsZQphdXN6dWxldWNodGVuLiBFaW4KICAgICAgIEhhbG9nZW5zY2hlaW53ZXJmZXIgamVkb2NoIHdpcmQgZGllIGVpbmUgYWxsZXMgZW50c2NoZWlkZW5kZSBFY2tlIGltCkR1bmtlbG4gbGFzc2VuLiAKICAgMjQuQmF1ZXJuIGF1cyBkZW0gTWl0dGVsYWx0ZXIgaGFiZW4gcGVyZmVrdGUgWmFlaG5lLiAKICAgMjUuT2J3b2hsIG1hbiBpbSAyMC4gSmFocmh1bmRlcnQgV2FmZmVuIGF1ZiBLaWxvbWV0ZXIgZXhha3QgaW5zIFppZWwKbGVua2VuIGthbm4sIHdpcmQgZGllc2UgVGVjaG5vbG9naWUKICAgICAgIGJpcyB6dW0gMjMuIEpoZC4gYXVmIG15c3RlcmlvZXNlIEFydCB1bmQgV2Vpc2UgaW4gVmVyZ2Vzc2VuaGVpdApnZXJhdGVuLiAKICAgMjYuSmVkZXIsIGRlciBhdXMgZWluZW0gQWxwdHJhdW0gZXJ3YWNodCwgd2lyZCBhdWZyZWNodCBpbSBCZXR0IHNpdHplbiwKc2Nod2l0emVuIHVuZCBrZXVjaGVuLiAKICAgMjcuQXVjaCB3ZW5uIGRpZSBTdHJhX2UgcGVyZmVrdCBnZXJhZGUgaXN0LCBtdXNzIG1hbiB3aWxkIGxpbmtzLXJlY2h0cwpsZW5rZW4uIAogICAyOC5BbGxlIEJvbWJlbiBoYWJlbiBlaW5lIE1lbmdlIERyYWVodGUsIHJvdGUgYmxpbmtlbmRlIExpY2h0ZXIgdW5kIGVpbmUKRGlnaXRhbGFuemVpZ2UsIGRpZSBnZW5hdSB6ZWlndCwgd2llCiAgICAgICBsYW5nJ3Mgbm9jaCBkYXVlcnQuIAogICAyOS5FcyBnaWJ0IGltbWVyIGVpbmVuIFBhcmtwbGF0eiB2b3IgZGVtIEdlYmFldWRlLCBpbiBkYXMgbWFuIHdpbGwuIAogICAzMC5Qb2xpemlzdGVuIGxvZXNlbiBGYWVsbGUgbnVyLCB3ZW5uIHNpZSBzdXNwZW5kaWVydCBzaW5kLiAKICAgMzEuV2VubiBEdSBhbmZhZW5nc3QsIGF1ZiBkZXIgU3RyYV9lIHp1IHRhbnplbiwgd2lyZCBqZWRlciBzb2ZvcnQKbWl0dGFuemVuIHVuZCBhdWNoIGRpZSBTY2hyaXR0ZSBnZW5hdQogICAgICAga2VubmVuLiAKICAgMzIuSmVkZXIgTGFwdG9wIGlzdCBzdGFyayBnZW51ZywgdW0gYXVfZXJpcmRpc2NoZSBLb21tdW5pa2F0aW9uIHp1IHN0b2VyZW4Kb2RlciBpaHIgVmVyc2NobHVlc3NlbHVuZ3NzeXN0ZW0KICAgICAgIHp1IGtuYWNrZW4uIAogICAzMy5VbmFiaGFlbmdpZyBkYXZvbiwgd2llIHphaGxlbm1hZV9pZyBEaXIgZGVyIEZlaW5kIGltIE5haGthbXBmCnVlYmVybGVnZW4gaXN0LCBzaWUgd2VyZGVuIHNjaG9lbiBhYndhcnRlbgogICAgICAgdW5kIHVtIERpY2ggaGVydW10YW56ZW4sIHVtIGVpbnplbG4gYW56dWdyZWlmZW4uIAogICAzNC5XZW5uIGplbWFuZCBtaXQgZWluZW0gS29wZnRyZWZmZXIgenUgQm9kZW4gZ2VodCwgaGF0IGVyIG5pZSBlcm5zdGhhZnRlClZlcmxldHp1bmdlbi4gRXMgc2VpIGRlbm4sIGVzIHBhc3N0CiAgICAgICBpbnMgRHJlaGJ1Y2guIAogICAzNS5Qb2xpemlzdGVuIGFyYmVpdGVuIGdydW5kc2FldHpsaWNoIG1pdCBQYXJ0bmVybiB6dXNhbW1lbiwgZGllIGRhcwpnZW5hdWUgR2VnZW50ZWlsIHZvbiBpaG5lbiBzaW5kLiAKICAgMzYuV2VubiBzaWUgdW50ZXIgc2ljaCBzaW5kLCBzcHJlY2hlbiBBdXNsYWVuZGVyIGdydW5kc2FldHpsaWNoIGluIGRlcgpMYW5kZXNzcHJhY2hlLCBhdWNoIHdlbm4gc2llJ3MKICAgICAgIGJlc3RlbmZhbGxzCiByYWRlYnJlY2hlbmQgc3ByZWNoZW4uIAogICAzNy5XZW5uIER1IGVpbmUgS2V0dGVuc2FlZ2UgYnJhdWNoc3QsIGlzdCBlaW5lIGRhLiAKICAgMzguSmVkZXMgU2NobG9zcyBrYW5uIGtpbmRlcmxlaWNodCBtaXQgZWluZXIgQnVlcm9rbGFtbWVyIG9kZXIgZWluZXIKU2NoZWNra2FydGUgZ2VrbmFja3Qgd2VyZGVuLiBBdV9lciBlcwogICAgICAgZ2Vob2VydCB6dSBlaW5lbSBicmVubmVuZGVuIEdlYmFldWRlIHVuZCBlaW4gS2luZCBpc3QgZHJpbm5lbgplaW5nZXNwZXJydC4gCiAgIDM5LkVpbiBlbGVrdHJpc2NoZXIgWmF1biwgZGVyIHN0YXJrIGdlbnVnIGlzdCB1bSBlaW5lbiBEaW5vc2F1cmllcgp1bXp1aGF1biwgd2lyZCBhbiBlaW5lbSBhY2h0amFlaHJpZ2VuIEtpbmQKICAgICAgIGtlaW5lbiBibGVpYmVuZGVuIFNjaGFkZW4gaGludGVybGFzc2VuLiAKICAgNDAuTmFjaHJpY2h0ZW5zZW5kdW5nZW4gZW50aGFsdGVuIHp1bWluZGVzdCBlaW5lbiBCZWl0cmFnLCBkZXIgRGljaApwZXJzb2VubGljaCBiZXRyaWZmdC4gCiAgIDQxLldlZ2xhdWZlbmRlIEZyYXVlbiBzdG9scGVybiBpbW1lciB1bmQgdmVyZHJlaGVuIHNpY2ggZGFiZWkgZGVuCktub2VjaGVsLiAKICAgNDIuS3VnZWxuIHByYWxsZW4gdm9uIFN1cGVybWFubiBhYiwgYWJlciBlciB3aXJkIHNpY2ggZHVja2VuLCB3ZW5uIGRpZQpXYWZmZSBuYWNoIGlobSBnZXdvcmZlbiB3aXJkLiAKICAgNDMuRGllIGJvZXNlbiBKdW5ncyB2ZXJsaWVyZW4gaW1tZXIuIAogICA0NC5KZWRlIEZyYXUsIGRpZSB1bnZlcmhlaXJhdGV0IFNleCBoYXR0ZSwgc3RpcmJ0IHNwYWV0ZXN0ZW5zIGVpbmUgU3R1bmRlCnNwYWV0ZXIuIAogICA0NS5QZmVyZGUgc2luZCB1bmVtcGZpbmRsaWNoIGdlZ2VuIEt1Z2VsbiwgU2Nod2VydGVyLCBQZmVpbGUgdW5kIFNwZWVyZSwKc3RvbHBlcm4gYWJlciB1ZWJlciBlaW4gQnVlc2NoZWwgR3JhcwogICAgICAgaW0gc2NobGVjaHRlc3Rtb2VnbGljaGVuIE1vbWVudC4gKFdlbm4gZGVyIFJlaXRlciBlaW5lIEZyYXUgd2FyLCB3aXJkCnNpZSBzaWNoIGRlbiBLbm9lY2hlbCB2ZXJkcmVoZW4sCiAgICAgICBoYXR0ZSBzaWUgenV2b3IgU2V4LCB3YXIncyBkYXMpLiAKICAgNDYuQWxsZSBQcmllc3RlciBzaW5kIGF1cyBJcmxhbmQuIAogICA0Ny5LZWxsbmVyaW5uZW4gc2luZCBhdXMgR2VvcmdpYSwgS2VsbG5lciBhdXMgTmV3IFlvcmsuIAogICA0OC5EYXJzdGVsbGVyIGF1cyBTb2FwIE9wZXJhcyBzaW5kIChsZWlkZXIhKSB1bnN0ZXJibGljaC4gCiAgIDQ5Li4uLiBlcyBzZWkgZGVubiwgc2llIHdvbGxlbiBtZWhyIEdlbGQuIAogICA1MC5BdXRvcyBwYXNzZW4gaW4gR2FyYWdlbi4gCiAgIDUxLkdvdHRlcyBTdGltbWUgaXN0IGVpbiB0aWVmZXIgQmFzcywgbWl0IGVpbmVtIHdvaGxrbGluZ2VuZGVuIEVjaG8uIAogICA1Mi5BdWYgUmF1bXNjaGlmZmVuIGdpYnQgZXMga2VpbmUgVG9pbGV0dGVuLiAKICAgNTMuRGVyIG5haXZlIEZsdWVjaHRsaW5nLCBBdXN3YW5kZXJlciwgZXRjLiwgZGVyIG51ciBlaW5lbiBlaW56aWdlbgpiYW5hbGVuIFd1bnNjaCBoYXQsIHouIEIuIGRpZQogICAgICAgRnJlaWhlaXRzc3RhdHVlIHp1IHNlaGVuLCB1ZWJlcmxlYnQgbmljaHQgbWFsIGRpZSBlcnN0ZSBoYWxiZSBTdHVuZGUKZGVzIEZpbG1zLiAKICAgNTQuQWxsZSB0YWxlbnRpZXJ0ZW4gS2luZGVyIGhhYmVuIHNhdWZlbmRlLCBwcnVlZ2VsbmRlCm9kZXJ2ZXJzdGFlbmRuaXNsb3NlIEVsdGVybi4gCiAgIDU1LkluIEhvcnJvcmZpbG1lbiBmaW5kZW4gaGFsYm5hY2t0ZSBaZXJzdHVlY2tlbHVuZ3NvcGZlciBuaWUgZGVuIHNpY2hlcmVuCldlZyBpbiBkaWUgRnJlaWhlaXQsIHNvbmRlcm4gaW1tZXIKICAgICAgIGRhcyBlaW56aWdlIFppbW1lciwgYXVzIGRlbSBlcyBrZWluZW4gQXVzd2VnIGdpYnQuIAogICA1Ni5BdXRvcyBzcHJpbmdlbiBpbiBkdW5rbGVuIFdhZWxkZXJuIG5pY2h0IGFuLiAKICAgNTcuSmVkZXIgSGVsZCwgZGVyIHZvciBkcm9oZW5kZW4gR2VmYWhyZW4vS2F0YXN0cm9waGVuIHdhcm5lbiB3aWxsLApzY2hlaXRlcnQgenVuYWVjaHN0IGFuIGVpbmVtCiAgICAgICBkaWNrYmFldWNoaWdlbSwgZG9udXRmcmVzc2VuZGVuIFBvbGl6aXN0ZW4gb2RlciBNb2VjaHRlLWdlcm4tRXhwZXJ0ZW4uCiAgIDU4LkRlciBIZWxkLCBkZXIgc2VpbmUgTWllemUgKEtpbmQvRnJldW5kKSBhdXMgZ3JvX2VyIE5vdCBlcnJldHRlbiBrb21tdAp1bmQgdm9tIEJvZXNld2ljaHQgdWViZXJyYXNjaHQKICAgICAgIHdpcmQsIGJpbmRldCBuaWVtYWxzIGVyc3QgZGVuIEdlZmFuZ2VuZW4gbG9zLiAKCgpEaWVkZXIsIHNpY2ggaGFsYiB0b3RsYWNoZW5kLgoKUFM6IFNvcnJ5IGZ1ZXIgZGllIHNjaGxlY2h0ZSBGb3JtYXRpZXJ1bmcgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVtc2NocmVpYnVuZ2VuIChEaWVkZXIsIDMwLiBBcHIgMTk5OSwgMjE6MTY6NDYpOgoKUG9wdWxhbnRlbiB2b24gRG9taXppbGVuIG1pdCBmcmFnaWxlciwgdHJhbnNwYXJlbnRlciBBdXNzZW5zdHJ1a3R1ciBzb2xsdGVuCnNpY2ggdm9uIGRlciBUcmFuc2Zvcm1hdGlvbiB2b24gZ2VnZW4KRGVmb3JtaWVydW5nIHJlc2lzdGVudGVyIE1hdGVyaWUgZGlzdGFuemllcmVuIQpXZXIgaW0gR2xhc2hhdXMgc2l0enQgc29sbHRlIG5pY2h0IG1pdCBTdGVpbmVuIHdlcmZlbiAKCi0tLQoKVW50ZXIgRWluc2F0eiBpbW1lbnNlciwgamVkb2NoIGJpcyB6dW0gTW9tZW50IGRlciBBa3R1YWxpc2llcnVuZyBkZXMgSW1wdWxzZXMKbGF0ZW50ZXIgRW5lcmdpZW4gbHZzdGUgc2ljaCBkaWUKYW1waGliaWVsbGUgS3JlYXR1ciB2b24gaWhyZW0gaGFiaXR1ZWxsZW4gU3RhbmRvcnQgdW5kIHZlcnNjaHdhbmQsIGVpbmVyIGluCmVyc3RlciBOZGhlcnVuZyBwYXJhYm9saXNjaGVuCkJhaG5rdXJ2ZSBmb2xnZW5kLCBpbiBkZW4gbWVociBvZGVyIG1pbmRlciB0cmFuc3BhcmVudGVuIFJkdW1lbiBpaHJlcgpFeGlzdGVuei4KRWluIEZyb3NjaCBzcHJhbmcgaW5zIFdhc3Nlci4gCgotLS0KCkJlaSBkZXIgaW50ZW5kaWVydGVuIFJlYWxpc2llcnVuZyBkZXIgbGluZ3Vpc3Rpc2NoZW4gU2ltcGxpZml6aWVydW5nIGRlcwpyZWdpb25hbGVuIElkaW9tcyByZXN1bHRpZXJ0IGRpZSBFdmlkZW56IGRlcgpPcHBvcnR1bml0ZHQgZXh0cmVtIGFwcGFyZW50LCBkZW4gZWxhYm9yaWVydGVuIHVuZCBxdWFudGl0YXRpdiBvcHVsZW50ZW4gVXN1cwpuaWNodCBhc3NpbWlsaWVydGVyIFhlbm9sb2dpZW4Ka29uc2VxdWVudCB6dSBlbGltaW5pZXJlbiEKWnVyIFZlcmVpbmZhY2h1bmcgZGVyIE11dHRlcnNwcmFjaGUgZXJzY2hlaW50IGVzIHNlaHIgc2lubnZvbGwsIG5pY2h0IHNvIHZpZWxlCnNjaHdpZXJpZ2UgRnJlbWR3dnJ0ZXIgenUKYmVudXR6ZW4uLi4gCgotLS0KCk9iZXJoYWxiIGRlciBLdWxtaW5hdGlvbnNwdW5rdGUgZm9yc3R3aXJ0c2NoYWZ0bGljaGVyIEJlc3RkbmRlIHRlbmRpZXJlbiBkaWUKRGV6aWJlbHdlcnRlIGdlZ2VuIGRlbiBOdWxscHVua3QuClxiZXIgYWxsZW4gV2lwZmVsbiBpc3QgUnVoJy4gCgotLS0KCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2FydW0gdWViZXJxdWVydGUgZGFzIGh1aG4gZGllIHN0cmFzc2U/IChEaWVkZXIsIDMwLiBBcHIgMTk5OSwgMjI6MTA6NTApOgpLSU5ERVJHQUVSVE5FUklOOiBVbSBhdWYgZGllIGFuZGVyZSBTdHJhc3NlbnNlaXRlIHp1IGtvbW1lbi4gCgoKUExBVE86IEZ1ZXIgZWluIGJlZGV1dGVuZGVyZXMgR3V0LiAKCgoKQVJJU1RPVEVMRVM6IEVzIGlzdCBkaWUgTmF0dXIgdm9uIEh1ZWhuZXJuLCBTdHJhc3NlbiB6dSB1ZWJlcnF1ZXJlbi4gCgoKCktBUkwgTUFSWDogRXMgd2FyIGhpc3RvcmlzY2ggdW52ZXJtZWlkbGljaC4gCgoKClRJTU9USFkgTEVBUlk6IFdlaWwgZGFzIGRlciBlaW56aWdlIEF1c2ZsdWcgd2FyLCBkZW4gZGFzIEVzdGFibGlzaG1lbnQgZGVtCkh1aG4genVnZXN0ZWhlbiB3b2xsdGUuIAoKCgpTQUREQU0gSFVTU0VJTjogRGllcyB3YXIgZWluIHVucHJvdm96aWVydGVyIEFrdCBkZXIgUmViZWxsaW9uIHVuZCB3aXIgaGF0dGVuCmplZGVzIFJlY2h0LCA1MCBUb25uZW4gTmVydmVuZ2FzIGF1ZiBkaWVzZXMgSHVobiB6dSBmZXVlcm4uIAoKCgpST05BTEQgUkVBR0FOOiBIYWIgaWNoIHZlcmdlc3Nlbi4gCgoKCkNBUFRBSU4gSkFNRVMgVC4gS0lSSzogVW0gZGFoaW4genUgZ2VoZW4sIHdvIG5vY2gga2VpbiBIdWhuIHZvcmhlciB3YXIuIAoKCgpISVBQT0tSQVRFUzogV2VnZW4gZWluZXMgVWViZXJzY2h1c3NlcyBhbiBUcmFlZ2hlaXQgaW4gaWhyZXIKQmF1Y2hzcGVpY2hlbGRydWVzZS4gCgoKCkFOREVSU0VOIENPTlNVTFRJTkc6IERlcmVndWxpZXJ1bmcgYXVmIGRlciBTdHJhc3NlbnNlaXRlIGRlcyBIdWhucyBiZWRyb2h0ZQpzZWluZSBkb21pbmFudGUgTWFya3Rwb3NpdGlvbi4gRGFzIEh1aG4gc2FoIHNpY2ggc2lnbmlmaWthbnRlbgpIZXJhdXNmb3JkZXJ1bmdlbiBnZWdlbnVlYmVyLCBkaWUgS29tcGV0ZW56ZW4genUgZW50d2lja2VsbiwgZGllIGVyZm9yZGVybGljaApzaW5kLCB1bSBpbiBkZW4gbmV1ZW4gV2V0dGJld2VyYnNtYWVya3RlbiBiZXN0ZWhlbiB6dSBrb2VubmVuLiBJbiBlaW5lcgpwYXJ0bmVyc2NoYWZ0bGljaGVuIFp1c2FtbWVuYXJiZWl0IG1pdCBkZW0gS2xpZW50ZW4gaGF0IEFuZGVyc2VuIENvbnN1bHRpbmcKZGVtIEh1aG4gZ2Vob2xmZW4sIGVpbmUgcGh5c2lzY2hlIERpc3RyaWJ1dGlvbnNzdHJhdGVnaWUgdW5kClVtc2V0enVuZ3Nwcm96ZXNzZSB6dSB1ZWJlcmRlbmtlbi4gVW50ZXIgVmVyd2VuZHVuZyBkZXMKR2VmbHVlZ2VsLUludGVncmF0aW9uc21vZGVsbHMgKEdJTSkgaGF0IEFuZGVyc2VuIGRlbSBIdWhuIGdlaG9sZmVuLCBzZWluZQpGYWVoaWdrZWl0ZW4sCk1ldGhvZG9sb2dpZW4sIFdpc3NlbiwgS2FwaXRhbCB1bmQgRXJmYWhydW5nIGVpbnp1c2V0emVuLCB1bSBkaWUgTWl0YXJiZWl0ZXIsClByb3plc3NlIHVuZCBUZWNobm9sb2dpZW4gZGVzIEh1aG5zIGZ1ZXIgZGllIFVudGVyc3R1ZXR6dW5nIHNlaW5lcgpHZXNhbXRzdHJhdGVnaWUgaW5uZXJoYWxiIGRlcyBQcm9ncmFtbS1NYW5hZ2VtZW50cmFobWVucyBhdXN6dXJpY2h0ZW4uCkFuZGVyc2VuIENvbnN1bHRpbmcgem9nIGVpbiBkaXZlcnNlcyBDcm9zcy1TcGVrdHJ1bSB2b24gU3RyYXNzZW4tQW5hbHlzdGVuCnVuZCBiZXN0ZW4gSHVlaG5lcm4gc293aWUgQW5kZXJzZW4gQmVyYXRlcm4gbWl0IGJyZWl0Z2VmYWVjaGVydGVuIEVyZmFocnVuZ2VuCmluIGRlciBUcmFuc3BvcnRpbmR1c3RyaWUgaGVyYW4sIGRpZSBpbiAydGFlZ2lnZW4gQmVzcHJlY2h1bmdlbiBpaHIKcGVyc29lbmxpY2hlcyBXaXNzZW5za2FwaXRhbCwgc293b2hsIHN0aWxsc2Nod2VpZ2VuZCBhbHMgYXVjaCBkZXV0bGljaCwgYXVmCmVpbiBnZW1laW5zYW1lcyBOaXZlYXUgYnJhY2h0ZW4gdW5kIGRpZSBTeW5lcmdpZW4gaGVyc3RlbGx0ZW4sdW0gZGFzCnVuYmVkaW5ndGUKWmllbCB6dSBlcnJlaWNoZW4sIG5hZW1saWNoIGRpZSBFcmFyYmVpdGVuIHVuZCBVbXNldHp1bmcgZWluZXMKdW50ZXJuZWhtZW5zd2VpdGVuIFdlcnRlcmFobWVucyBpbm5lcmhhbGIgZGVzIG1pdHRsZXJlbiBHZWZsdWVnZWxwcm96ZXNzZXMuCkRpZQpCZXNwcmVjaHVuZ2VuIGZhbmRlbiBpbiBlaW5lciBwYXJrYWVobmxpY2hlbiBVbWdlYnVuZyBzdGF0dCwgdW0gZWluZQp3aXJrdW5nc3ZvbGxlIFRlc3RhdG1vc3BoYWVyZSB6dSBlcmhhbHRlbiwgZGllIGF1ZiBTdHJhdGVnaWVuIGJhc2llcnQsIGF1ZiBkaWUKSW5kdXN0cmllCmZva3Vzc2llcnQgaXN0IHVuZCBhdWYgZWluZSBrb25zaXN0ZW50ZSwga2xhcmUgdW5kIGVpbnppZ2FydGlnZSBNYXJrdGF1c3NhZ2UKaGluYXVzbGFldWZ0LiBBbmRlcnNlbiBDb25zdWx0aW5nIGhhdCBkZW0gSHVobiBnZWhvbGZlbiwgc2ljaCB6dSB2ZXJhZW5kZXJuLAp1bQplcmZvbGdyZWljaGVyIHp1IHdlcmRlbi4gCgoKCkxPVUlTIEZBUlJBS0hBTjogU2VoZW4gU2llLCBkaWUgU3RyYXNzZSByZXByYWVzZW50aWVydCBkZW4gc2Nod2FyemVuIE1hbm4uIERhcwpIdWhuIHVlYmVycXVlcnRlIGRlbiBzY2h3YXJ6ZW4gTWFubiwgdW0gYXVmIGlobSBoZXJ1bXp1dHJhbXBlbG4KdW5kIGlobiBuaWVkcmlnIHp1IGhhbHRlbi4gCgoKCk1BUlRJTiBMVVRIRVIgS0lORywgSlIuOiBJY2ggc2VoZSBlaW5lIFdlbHQsIGluIGRlciBhbGxlIEh1ZWhuZXIgZnJlaSBzZWluCndlcmRlbiwgU3RyYXNzZW4genUgdWViZXJxdWVyZW4sIG9obmUgZGFzcyBpaHJlIE1vdGl2ZSBpbiBGcmFnZSBnZXN0ZWxsdAp3ZXJkZW4uIAoKCgpNT1NFUzogVW5kIEdvdHQga2FtIHZvbSBIaW1tZWwgaGVydW50ZXIsIHVuZCBFciBzcHJhY2ggenUgZGVtIEh1aG46IER1IHNvbGxzdApkaWUgU3RyYXNzZSB1ZWJlcnF1ZXJlbi4gVW5kIGRhcyBIdWhuIHVlYmVycXVlcnRlIGRpZSBTdHJhc3NlLCB1bmQgZXMgZ2FiCmdyb3NzZXMgRnJvaGxvY2tlbi4gCgoKCkZPWCBNVUxERVI6IFNpZSBoYWJlbiBkYXMgSHVobiBtaXQgSWhyZW4gZWlnZW5lbiBBdWdlbiBkaWUgU3RyYXNzZSB1ZWJlcnF1ZXJlbgpzZWhlbi4gV2lldmllbGUgSHVlaG5lciBtdWVzc2VuIG5vY2ggZGllIFN0cmFzc2UgdWViZXJxdWVyZW4sIGJldm9yIFNpZQplcyBnbGF1YmVuPyAKCgoKUklDSEFSRCBNLiBOSVhPTjogRGFzIEh1aG4gaGF0IGRpZSBTdHJhc3NlIG5pY2h0IHVlYmVycXVlcnQuIEljaCB3aWVkZXJob2xlLApkYXMgSHVobiBoYXQgZGllIFN0cmFzc2UgTklDSFQgdWViZXJxdWVydC4gCgoKCk1BQ0hJQVZFTExJOiBEYXMgRW50c2NoZWlkZW5kZSBpc3QsIGRhc3MgZGFzIEh1aG4gZGllIFN0cmFzc2UgdWViZXJxdWVydCBoYXQuCldlciBpbnRlcmVzc2llcnQgc2ljaCBmdWVyIGRlbiBHcnVuZD8gRGllIFVlYmVycXVlcnVuZyBkZXIgU3RyYXNzZQpyZWNodGZlcnRpZ3QgamVnbGljaGUgbW9lZ2xpY2hlbiBNb3RpdmUuIAoKCgpKRVJSWSBTRUlORkVMRDogV2FydW0gdWViZXJxdWVydCBpcmdlbmQgamVtYW5kIGVpbmUgU3RyYXNzZT8gSWNoIG1laW5lLCB3YXJ1bQprb21tdCBuaWVtYW5kIGRhcmF1ZiB6dSBmcmFnZW46IFdhcyB6dW0gVGV1ZmVsIGhhdCBkaWVzZXMgSHVobiBkYQp1ZWJlcmhhdXB0IGdlbWFjaHQ/IAoKCgpGUkVVRDogRGllIFRhdHNhY2hlLCBkYXNzIFNpZSBzaWNoIHVlYmVyaGF1cHQgbWl0IGRlciBGcmFnZSBiZXNjaGFlZnRpZ2VuLApkYXNzIGRhcyBIdWhuIGRpZSBTdHJhc3NlIHVlYmVycXVlcnRlLCBvZmZlbmJhcnQgSWhyZSB1bnRlcnNjaHdlbGxpZ2Ugc2V4dWVsbGUKVW5zaWNoZXJoZWl0LiAKCgoKQklMTCBHQVRFUzogSWNoIGhhYmUgZ2VyYWRlIGRhcyBuZXVlIEh1aG4gT2ZmaWNlIDIwMDAgaGVyYXVzZ2VicmFjaHQsIGRhcwpuaWNodCBudXIgZGllIFN0cmFzc2UgdWViZXJxdWVyZW4sIHNvbmRlcm4gYXVjaCBFaWVyIGxlZ2VuLCB3aWNodGlnZSBEb2t1bWVudGUKdmVyd2FsdGVuIHVuZCBJaHJlbiBLb250b3N0YW5kIGF1c2dsZWljaGVuIHdpcmQuIAoKCgpPTElWRVIgU1RPTkU6IERpZSBGcmFnZSBpc3QgbmljaHQgIldhcnVtIHVlYmVycXVlcnRlIGRhcyBIdWhuIGRpZSBTdHJhc3NlIiwKc29uZGVybiAiV2VyIHVlYmVycXVlcnRlIGRpZSBTdHJhc3NlIHp1ciBnbGVpY2hlbiBaZWl0LCBkZW4gd2lyIGluIHVuc2VyZXIKSGFzdCB1ZWJlcnNlaGVuIGhhYmVuLCB3YWVocmVuZCB3aXIgZGFzIEh1aG4gYmVvYmFjaHRldGVuIi4gCgoKCkRBUldJTjogSHVlaG5lciB3dXJkZW4gdWViZXIgZWluZSBncm9zc2UgWmVpdHNwYW5uZSB2b24gZGVyIE5hdHVyIGluIGRlciBBcnQKYXVzZ2V3YWVobHQsIGRhIHNpZSBqZXR6dCBnZW5ldGlzY2ggYmVyZWl0IHNpbmQsIFN0cmFzc2VuIHp1IHVlYmVycXVlcmVuLiAKCgoKRUlOU1RFSU46IE9iIGRhcyBIdWhuIGRpZSBTdHJhc3NlIHVlYmVycXVlcnQgaGF0IG9kZXIgZGllIFN0cmFzc2Ugc2ljaCB1bnRlcgpkZW0gSHVobiBiZXdlZ3RlLCBoYWVuZ3Qgdm9uIElocmVtIFJlZmVyZW56cmFobWVuIGFiLiAKCgpCVURESEE6IE1pdCBkaWVzZXIgRnJhZ2UgdmVybGV1Z25lc3QgRHUgRGVpbmUgZWlnZW5lIEh1ZWhuZXJuYXR1ci4gCgoKClJBTFBIIFdBTERPIEVNRVJTT046IERhcyBIdWhuIHVlYmVycXVlcnRlIGRpZSBTdHJhc3NlIG5pY2h0IC4uLiBlcwp0cmFuc3plbmRpZXJ0ZSBzaWUuIAoKCgpFUk5FU1QgSEVNSU5HV0FZOiBVbSB6dSBzdGVyYmVuLiBJbSBSZWdlbi4gCgoKCkNPTE9ORUwgU0FOREVSUzogSWNoIGhhYiBlaW5lcyB1ZWJlcnNlaGVuPyAKCgoKQ0xJTlRPTjogSWNoIHdhciB6dSBrZWluZXIgWmVpdCBtaXQgZGllc2VtIEh1aG4gYWxsZWluLiAKCgpEaWVkZXIgLCBraWNoZXJuZAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnp3ZWkga3VlaGUgKHZvcnNpY2h0IGVuZ2xpc2NoIDotKSkgKERpZWRlciwgMzAuIEFwciAxOTk5LCAyMjoxODoxNik6CgoKRkVVREFMSVNNOgoKWW91IGhhdmUgdHdvIGNvd3MuIFlvdXIgbG9yZCB0YWtlcyBzb21lIG9mIHRoZSBtaWxrLiAKCgoKUFVSRSBTT0NJQUxJU006CgpZb3UgaGF2ZSB0d28gY293cy4gVGhlIGdvdmVybm1lbnQgdGFrZXMgdGhlbSBhbmQgcHV0cyB0aGVtIGluIGEgYmFybiB3aXRoCmV2ZXJ5b25lIGVsc2UncyBjb3dzLiBZb3UgaGF2ZSB0byB0YWtlIGNhcmUgb2YgYWxsIHRoZSBjb3dzLiBUaGUgZ292ZXJubWVudApnaXZlcwp5b3UgYXMgbXVjaCBtaWxrIGFzIHlvdSBuZWVkLiAKCgoKQlVSRUFVQ1JBVElDIFNPQ0lBTElTTToKCllvdSBoYXZlIHR3byBjb3dzLiBUaGUgZ292ZXJubWVudCB0YWtlcyB0aGVtIGFuZCBwdXRzIHRoZW0gaW4gYSBiYXJuIHdpdGgKZXZlcnlvbmUgZWxzZSdzIGNvd3MuIFRoZXkgYXJlIGNhcmVkIGZvciBieSBleC1jaGlja2VuIGZhcm1lcnMuIFlvdSBoYXZlIHRvCnRha2UKY2FyZSBvZiB0aGUgY2hpY2tlbnMgdGhlIGdvdmVybm1lbnQgdG9vayBmcm9tIHRoZSBjaGlja2VuIGZhcm1lcnMuIFRoZQpnb3Zlcm5tZW50IGdpdmVzIHlvdSBhcyBtdWNoIG1pbGsgYW5kIGFzIG1hbnkgZWdncyBhcyB0aGUgcmVndWxhdGlvbnMgc2F5IHlvdQpzaG91bGQKbmVlZC4gCgoKCkZBU0NJU006CgpZb3UgaGF2ZSB0d28gY293cy4gVGhlIGdvdmVybm1lbnQgdGFrZXMgYm90aCwgaGlyZXMgeW91IHRvIHRha2UgY2FyZSBvZiB0aGVtLAphbmQgc2VsbHMgeW91IHRoZSBtaWxrLiAKCgoKUFVSRSBDT01NVU5JU006CgpZb3UgaGF2ZSB0d28gY293cy4gWW91ciBuZWlnaGJvcnMgaGVscCB5b3UgdGFrZSBjYXJlIG9mIHRoZW0sIGFuZCB5b3UgYWxsCnNoYXJlIHRoZSBtaWxrLiAKCgoKUlVTU0lBTiBDT01NVU5JU006CgpZb3UgaGF2ZSB0d28gY293cy4gWW91IGhhdmUgdG8gdGFrZSBjYXJlIG9mIHRoZW0sIGJ1dCB0aGUgZ292ZXJubWVudCB0YWtlcyBhbGwKdGhlIG1pbGsuIAoKCgpESUNUQVRPUlNISVA6CgpZb3UgaGF2ZSB0d28gY293cy4gVGhlIGdvdmVybm1lbnQgdGFrZXMgYm90aCBhbmQgc2hvb3RzIHlvdS4gCgoKClNJTkdBUE9SRUFOIERFTU9DUkFDWToKCllvdSBoYXZlIHR3byBjb3dzLiBUaGUgZ292ZXJubWVudCBmaW5lcyB5b3UgZm9yIGtlZXBpbmcgdHdvIHVubGljZW5zZWQgZmFybQphbmltYWxzIGluIGFuIGFwYXJ0bWVudC4gCgoKCk1JTElUQVJJQU5JU006CgpZb3UgaGF2ZSB0d28gY293cy4gVGhlIGdvdmVybm1lbnQgdGFrZXMgYm90aCBhbmQgZHJhZnRzIHlvdS4gCgoKClBVUkUgREVNT0NSQUNZOgoKWW91IGhhdmUgdHdvIGNvd3MuIFlvdXIgbmVpZ2hib3JzIGRlY2lkZSB3aG8gZ2V0cyB0aGUgbWlsay4gCgoKClJFUFJFU0VOVEFUSVZFIERFTU9DUkFDWToKCllvdSBoYXZlIHR3byBjb3dzLiBZb3VyIG5laWdoYm9ycyBwaWNrIHNvbWVvbmUgdG8gdGVsbCB5b3Ugd2hvIGdldHMgdGhlIG1pbGsuIAoKCgpBTUVSSUNBTiBERU1PQ1JBQ1k6CgpUaGUgZ292ZXJubWVudCBwcm9taXNlcyB0byBnaXZlIHlvdSB0d28gY293cyBpZiB5b3Ugdm90ZSBmb3IgaXQuIEFmdGVyIHRoZQplbGVjdGlvbiwgdGhlIHByZXNpZGVudCBpcyBpbXBlYWNoZWQgZm9yIHNwZWN1bGF0aW5nIGluIGNvdyBmdXR1cmVzLiBUaGUgcHJlc3MKZHVicyB0aGUKYWZmYWlyICJDb3dnYXRlIi4gCgoKCkJSSVRJU0ggREVNT0NSQUNZOgoKWW91IGhhdmUgdHdvIGNvd3MuIFlvdSBmZWVkIHRoZW0gc2hlZXBzJyBicmFpbnMgYW5kIHRoZXkgZ28gbWFkLiBUaGUKZ292ZXJubWVudCBkb2Vzbid0IGRvIGFueXRoaW5nLiAKCgoKRVUtQlVSRUFVQ1JBQ1k6CgpZb3UgaGF2ZSB0d28gY293cy4gQXQgZmlyc3QgdGhlIGdvdmVybm1lbnQgcmVndWxhdGVzIHdoYXQgeW91IGNhbiBmZWVkIHRoZW0KYW5kIHdoZW4geW91IGNhbiBtaWxrIHRoZW0uIFRoZW4gaXQgcGF5cyB5b3Ugbm90IHRvIG1pbGsgdGhlbS4gQWZ0ZXIgdGhhdCBpdAp0YWtlcwpib3RoLCBzaG9vdHMgb25lLCBtaWxrcyB0aGUgb3RoZXIgYW5kIHBvdXJzIHRoZSBtaWxrIGRvd24gdGhlIGRyYWluLiBUaGVuIGl0CnJlcXVpcmVzIHlvdSB0byBmaWxsIG91dCBmb3JtcyBhY2NvdW50aW5nIGZvciB0aGUgbWlzc2luZyBjb3dzLi4gCgoKCkFOQVJDSFk6CgpZb3UgaGF2ZSB0d28gY293cy4gRWl0aGVyIHlvdSBzZWxsIHRoZSBtaWxrIGF0IGEgZmFpciBwcmljZSBvciB5b3VyIG5laWdoYm9ycwp0cnkgdG8ga2lsbCB5b3UgYW5kIHRha2UgdGhlIGNvd3MuIAoKCgpDQVBJVEFMSVNNOgoKWW91IGhhdmUgdHdvIGNvd3MuIFlvdSBzZWxsIG9uZSBhbmQgYnV5IGEgYnVsbC4gCgoKCkhPTkcgS09ORyBDQVBJVEFMSVNNOgoKWW91IGhhdmUgdHdvIGNvd3MuIFlvdSBzZWxsIHRocmVlIG9mIHRoZW0gdG8geW91ciBwdWJsaWNseSAtIGxpc3RlZCBjb21wYW55LAp1c2luZyBsZXR0ZXJzIG9mIGNyZWRpdCBvcGVuZWQgYnkgeW91ciBicm90aGVyIC0gaW4gLSBsYXcgYXQgdGhlIGJhbmssIHRoZW4KZXhlY3V0ZSBhCmRlYnQgLyBlcXVpdHkgc3dhcCB3aXRoIGFzc29jaWF0ZWQgZ2VuZXJhbCBvZmZlciBzbyB0aGF0IHlvdSBnZXQgYWxsIGZvdXIgY293cwpiYWNrLCB3aXRoIGEgdGF4IGRlZHVjdGlvbiBmb3Iga2VlcGluZyBmaXZlIGNvd3MuIFRoZSBtaWxrIHJpZ2h0cyBvZiBzaXggY293cwphcmUKdHJhbnNmZXJyZWQgdmlhIGEgUGFuYW1hbmlhbiBpbnRlcm1lZGlhcnkgdG8gYSBDYXltYW4gSXNsYW5kcyBjb21wYW55IHNlY3JldGx5Cm93bmVkIGJ5IHRoZSBtYWpvcml0eSBzaGFyZWhvbGRlciwgd2hvIHNlbGxzIHRoZSByaWdodHMgdG8gYWxsIHNldmVuIGNvd3MnCm1pbGsKYmFjayB0byB0aGUgbGlzdGVkIGNvbXBhbnkuIFRoZSBhbm51YWwgcmVwb3J0IHNheXMgdGhhdCB0aGUgY29tcGFueSBvd25zIGVpZ2h0CmNvd3MsIHdpdGggYW4gb3B0aW9uIG9uIG9uZSBtb3JlLiBNZWFud2hpbGUsIHlvdSBraWxsIHRoZSB0d28gY293cyBiZWNhdXNlIHRoZQpmdW5nIHNodWkgaXMgYmFkLiAKCgoKRU5WSVJPTk1FTlRBTElTTToKCllvdSBoYXZlIHR3byBjb3dzLiBUaGUgZ292ZXJubWVudCBiYW5zIHlvdSBmcm9tIG1pbGtpbmcgb3Iga2lsbGluZyB0aGVtLiAKCgoKRkVNSU5JU006CgpZb3UgaGF2ZSB0d28gY293cy4gVGhleSBnZXQgbWFycmllZCBhbmQgYWRvcHQgYSB2ZWFsIGNhbGYuIAoKCgpUT1RBTElUQVJJQU5JU006CgpZb3UgaGF2ZSB0d28gY293cy4gVGhlIGdvdmVybm1lbnQgdGFrZXMgdGhlbSBhbmQgZGVuaWVzIHRoZXkgZXZlciBleGlzdGVkLgpNaWxrIGlzIGJhbm5lZC4gCgoKCkNPVU5URVIgQ1VMVFVSRToKCldvdywgZHVkZSwgdGhlcmUncyBsaWtlLi4uIHRoZXNlIHR3byBjb3dzLCBtYW4uIFlvdSBnb3QgdG8gaGF2ZSBzb21lIG9mIHRoaXMKbWlsay4gCgoKClNVUlJFQUxJU006CgpZb3UgaGF2ZSB0d28gZ2lyYWZmZXMuIFRoZSBnb3Zlcm5tZW50IHJlcXVpcmVzIHlvdSB0byB0YWtlIGhhcm1vbmljYSBsZXNzb25zLiAKCgoKTElCRVJUQVJJQU5JU006CgpZb3UgaGF2ZSB0d28gY293cy4gT25lIGhhcyBhY3R1YWxseSByZWFkIHRoZSBjb25zdGl0dXRpb24sIGJlbGlldmVzIGluIGl0LCBhbmQKaGFzIHNvbWUgcmVhbGx5IGdvb2QgaWRlYXMgYWJvdXQgZ292ZXJubWVudC4gVGhlIGNvdyBydW5zIGZvciBvZmZpY2UsIGFuZAp3aGlsZQptb3N0IHBlb3BsZSBhZ3JlZSB0aGF0IHRoZSBjb3cgaXMgdGhlIGJlc3QgY2FuZGlkYXRlLCBub2JvZHkgZXhjZXB0IHRoZSBvdGhlcgpjb3cgdm90ZXMgZm9yIGhlciBiZWNhdXNlIHRoZXkgdGhpbmsgaXQgd291bGQgYmUgInRocm93aW5nIHRoZWlyIHZvdGUgYXdheS4iIAoKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd28gZ2VodHMgaGllciB6dW0gYmFobmhvZj8gKFN0cmVhd2tjZXVyLCAgMS4gTWFpIDE5OTksIDEyOjUwOjM3KToKV28gU2llIGhpbmthZW1lbiwgd2VubiBTaWUgUHJvZmlzIGZyYWd0ZW46CiJXbyBnZWh0cyBkZW5uIGhpZXIgenVtIEJhaG5ob2Y/IiBlcyBhbnR3b3J0ZXQuLi4KCi4uLmVpbiBHZXNwcmFlY2hzdGhlcmFwZXV0OgoiU2llIG1vZWNodGVuIHdpc3Nlbiwgd28gZGVyIEJhaG5ob2YgaXN0PyIKCi4uLmVpbiBQc3ljaG9hbmFseXRpa2VyOgoiU3BpZWxlbiBJaHJlIFRyYWV1bWUgb2VmdGVycyBpbiBlaW5lciBzbyBkdW5rbGVuIEhvZWhsZT8iCgouLi5laW4gVmVyaGFsdGVuc3RoZXJhcGV1dDoKIkhlYmVuIFNpZSBkZW4gcmVjaHRlbiBGdXNzLiBTY2hpZWJlbiBTaWUgaWhuIG5hY2ggdm9ybi4KU2V0emVuIFNpZSBpaG4gYXVmLiBTZWhyIGd1dCwgaGllciBoYWJlbiBTaWUgZWluIEJvbmJvbi4iCgouLi5laW4gR2VzdGFsdHRoZXJhcGV1dDoKIkR1LCBsYXNzIGVzIHZvbGwgenUsIGRhc3MgRHUgenVtIEJhaG5ob2Ygd2lsbHN0LiIKCi4uLmVpbiBIeXBub3RoZXJhcGV1dDoKIlNjaGxpZXNzZW4gU2llIGRpZSBBdWdlbi4gRW50c3Bhbm5lbiBTaWUgc2ljaC4gRnJhZ2VuIFNpZQpJaHIgVW50ZXJiZXd1c3N0c2Vpbiwgb2IgZXMgSWhuZW4gYmVpIGRlciBTdWNoZSBiZWhpbGZsaWNoCnNlaW4gd2lsbC4iCgouLi5laW4gUHJvdm9rYXRpdi1UaGVyYXBldXQ6CiJJY2ggd2V0dGUsIGRhcmF1ZiB3ZXJkZW4gU2llIG5pZSBrb21tZW4hIgoKLi4uZWluIEZhbWlsaWVudGhlcmFwZXV0OgoiV2FzIGlzdCBEZWluIHNla3VuZGFlcmVyIEdld2lubiwgd2VubiBEdSBtaWNoIG5hY2ggZGVtIFdlZwp6dW0gQmFobmhvZiBmcmFnc3Q/IE1vZWNodGVzdCBEdSBtZWluZSBCZWthbm50c2NoYWZ0IG1hY2hlbj8iCgouLi5laW4gUHN5Y2hhdGVyOgoiU2VpdCB3YW5uIGJlZHJhZW5ndCBTaWUgZGllc2UgRnJhZ2U/IgoKLi4uZWluIFRlbGVmb25zZWVsc29yZ2VyOgoiV2Vpc3MgaWNoIG5pY2h0LCBhYmVyIHdpciBrb2VubmVuIGdlcm4gZGFydWViZXIgc3ByZWNoZW4uIgoKLi4uZWluIEJpb2VuZXJnZXRpa2VyOgoiTWFjaGVuIFNpZSBtYWwgc2NoLi4uc2NoLi4uc2NoLi4uICEiCgouLi5laW4gU296aWFsYXJiZWl0ZXI6CiJLZWluZSBBaG51bmcsIGFiZXIgaWNoIGZhaHIgRGljaCBzY2huZWxsIGhpbi4iCgouLi5laW4gU296aW9sb2dlOgoiQmFobmhvZj8gWnVnZmFocmVuPyBXZWxjaGUgS2xhc3NlPyIKCi4uLmVpbiBuZXVyb2xpbmd1aXN0aXNjaGVyIFByb2dyYW1taWVyZXI6CiJTdGVsbCBEaXIgdm9yLCBEdSBiaXN0IHNjaG9uIGltIEJhaG5ob2YuIFdlbGNoZSBTY2hyaXR0ZSBoYXN0CkR1IHp1dm9yIGdldGFuPyIKCi4uLmVpbiBDYXJpdGFzbWl0YXJiZWl0ZXI6CiJJbiBEZXV0c2NobGFuZCB3ZXJkZW4gTWVuc2NoZW4gbmljaHQgdWViZXIgZGVuIFdlZyB6dW0gQmFobmhvZgppbmZvcm1pZXJ0LiIKCi4uLmVpbiBNYW5hZ2VyOgoiRnJhZ2VuIFNpZSBuaWNodCBsYW5nZS4gR2VoZW4gU2llIGVpbmZhY2ggbG9zISIKCi4uLmVpbiBCZW5jaG1hcmtlcjoKIktlbm5lbiBTaWUgamVtYW5kZW4sIGRlciBhZWhubGljaGUgTG9naXN0aWtwcm9ibGVtZSBiZXJlaXRzCmVyZm9sZ3JlaWNoIGdlbG9lc3QgaGF0PyBXaWUgbGFlc3N0IHNpY2ggZGVzc2VuIFZvcmdlaGVuCnNpbm52b2xsIGF1ZiBJaHJlIFNpdHVhdGlvbiB1ZWJlcnRyYWdlbj8iCgouLi5laW4gTW9kZXJhdG9yOgoiV2VsY2hlIExvZXN1bmdzd2VnZSBoYWJlbiBTaWUgc2Nob24gYW5nZWRhY2h0PyBTY2hyZWliZW4gU2llCmFsbGVzIGhpZXIgYXVmIGRpZXNlcyBLYWVydGNoZW4uIgoKLi4uZWluIFByaWVzdGVyOgoiSGVpbGlnZXIgQW50b25pdXMsIGdlcmVjaHRlciBNYW5uLCBoaWxmLCBkYXNzIGVyIGlobiBmaW5kZW4Ka2Fubi4gQW1lbi4iCgouLi5laW4gUG9saXRpa2VyOgoiSW0gR2VnZW5zYXR6IHp1ciBPcHBvc2l0aW9uIGhhYmVuIHdpciBpbW1lciBlaW4gb2ZmZW5lcyBPaHIKZnIgdW5zZXJlIEJyZ2VyLiIKCi4uLmVpbiBKb3VybmFsaXN0OgoiSWhyZSBGcmFnZSB2ZXJvZWZmZW50bGljaGVuIHdpciBleGtsdXNpdiBpbiBkZXIgbmFlY2hzdGVuCk1pdHR3b2Noc2F1c2dhYmUuIgoKLi4uZWluIENvYWNoOgoiV2VubiBpY2ggSWhuZW4gZGllIExvZXN1bmcgdm9ya2F1ZSwgd2lyZCBkYXMgSWhyIFByb2JsZW0gbmljaHQKZGF1ZXJoYWZ0IGJlc2VpdGlnZW4uIgoKCnJyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3ZWxjb21lIHRvIE1HIChQcmEsICA1LiBNYWkgMTk5OSwgMTc6MjM6MzUpOgogICAgICAgIFdJTExLT01NRU4gYXVmIHVuc2VyZW0gbmV1ZW4gUmVjaG5lciEKCiAgICAgICAgUGVudGl1bSBJSS80MDAKICAgICAgICA1MTJNQiBSQU0KICAgICAgICAyMEdCIFBsYXR0ZW5wbGF0eiAoNEdCIE1VRC9Tb2Z0LVJBSUQxKQogICAgICAgIDEwME1CaXQgRXRoZXJuZXQgKGV4dGVybiAzNE1CaXQgV0lOKQoKICAgICAgICAqKiBBQ0hUVU5HOiBFcyBnZWh0IG5vY2gga2VpbmUgRW1haWwsIGtlaW4gRlRQLCBrZWluIFdXVyEKClByYSwga2ljaGVybmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXogKEVsa29zLCAgOS4gTWFpIDE5OTksIDIxOjAxOjMxKToKU2FndCBuZScgOCB6dSBuZXIgMCA6IldvIGlzdCBkZW4gZGVpbiBHcnRlbCA/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmF0aGVyIFRvcnZhbGRzIChUcnVnLCAgOS4gTWFpIDE5OTksIDIxOjM5OjA4KToKRmF0aGVyIFRvcnZhbGRzLCB3aG8gYXJ0IG9uIHRoZSAnTmV0LApoYWxsb3dlZCBiZSB0aHkgbmFtZWQsCnRoeSBQZW5ndWluIGNvbWUsCnRoeSB3aWxsIGJlIGRvbmUsCmFzIGhvbWUgYXMgaXQgaXMgb24gdGhlIExBTiwKR2l2ZSB1cyB0aGlzIGRheSBvdXIgZGFpbHkga2VybmVsLAphbmQgcHJvdGVjdCB1cyBmcm9tIGNvcmVkdW1wcwphcyB3ZSBwcm90ZWN0IG90aGVycyBmcm9tIEdQRnMsCmFuZCBsZWFkIHVzIG5vdCBpbnRvIFdpbmRvd3MgKFdpbmRvb2ZzKSwKYnV0IGRlbGl2ZXIgdXMgZnJvbSBNaWNyb3NvZnQsCmZvciBMaW51eCBpcyB0aGUgcG93ZXIgYW5kIHRoZSBzdGFiaWxpdHkgZm9yZXZlciwKQW1lbgogICAgICAgICAgICAgICAgIAoKKFF1ZWxsZTogaHR0cDovL3Zhc2VuZGVrLmxpZ2h0Y29tLm5ldC9wcmF5ZXIuaHRtKQoKVHJ1Zy4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb3JkIChSb2NodXMsIDEyLiBNYWkgMTk5OSwgMTY6Mjk6MDQpOgpBdXMgZGUudGFsay5qb2tlczoKCkY6IFdvcmQ/IFdhcyBpc3QgZGFzPwoKQTogRGFzIGlzdCB3b2hsIGRhcyBQcm9ncmFtbSwgZGFzIHVyc3JwdWVuZ2xpY2ggZWlubWFsIFRleHQgaGVpc3NlbiBzb2xsdGUuCiAgIERhIGVzIGFiZXIgZnVlciBsYWVuZ2VyZSBEb2t1bWVudGUgdW5nZWVpZ25ldCBpc3QsIHd1cmRlIGVzIHVtYmVuYW5udC4KICAgSW56d2lzY2hlbiBrYW5uIGVzIGFiZXIgYmVyZWl0cyA5NyBXb2VydGVyIHZlcndhbHRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmphaHIgMjAwIChIb3VzZWhvbGRlciwgMTIuIE1haSAxOTk5LCAyMjozNzowMSk6ClVuZXJ3YXJ0ZXRlIEtvbnNlcXVlbnplbiBkZXMgWTJLLUJ1ZwpDb2NhIENvbGEgdmVyemVpY2huZXQgbmV1ZSBWZXJrYXVmc3Jla29yZGUsIGRhIGRhcyB1cnNwcnxuZ2xpY2hlCmtva2FpbmhhbHRpZ2UgUmV6ZXB0d2llZGVyIGJlbnV0enQgd3VyZGUuCgpKZXN1cyBlcnNjaGVpbnQgenVzcHQgenVyIEFwb2thbHlwc2UgdW5kIGdpYnQgZGVuIE1pY3Jvc29mdC1Qcm9ncmFtbWllcmVybgpkaWUgc2NodWxkLgoKTWljaGFlbCBKYWNrc29uIGFkb3B0aWVydCBkdXJjaCBlaW5lbiBDb21wdXRlcmZlaGxlciBlaW4ga29tcGxldHRlcwpBbHRlcnNoZWltCgpEaWUgSW50ZXJuZXQgTW92aWUgRGF0YWJhc2UgZnxocnQgcGx0emxpY2ggZWluZW4gRmlsbSBuYW1lbnMgIjE5MDEgLQpPZHlzc2VlIGltIFdlbHRyYXVtIgoKV0lORE9XUyA5OCB2ZXJ3YW5kZWx0IHNpY2ggYW0gMS4xLjIwMDAgc3BvbnRhbiB6dXJ8Y2sgaW4gTVMtRE9TIDEuMAoKTWljcm9zb2Z0IGVya2xydCBkYXMgSmFociAxOTAwIHp1bSBuZXVlbiBTdGFuZGFydCBkZXMgYWJzb2ZvcnQgZ3xsdGlnZW4KIkdhdGVzY2hlbiBLYWxlbmRlcnMiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogamFociAyMDAgKEFuYXRvbCwgMTIuIE1haSAxOTk5LCAyMjozNzo0NSk6Cn4jISBybj1Ib3VzZWhvbGRlciBydD05MjY1NDE0MjEgcmc9d2l0emUKfiMhIHRpZD05MjY1NDE0MjEKPiBqYWhyIDIwMCAoSG91c2Vob2xkZXIsIDEyLiBNYWkgMTk5OSwgMjI6Mzc6MDEpOgoKQXVhIDspCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBqYWhyIDIwMCAoSG91c2Vob2xkZXIsIDEyLiBNYWkgMTk5OSwgMjI6Mzg6MTMpOgp+IyEgcm49QW5hdG9sIHJ0PTkyNjU0MTQ2NSByZz13aXR6ZQp+IyEgdGlkPTkyNjU0MTQyMQpoYXJoYXIgZGFzIGxpZWd0IGFuIG1laW5lbSByZWNobmEgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBRCZEIEh1bW9yIChEaXJpb24sIDEzLiBNYWkgMTk5OSwgMjI6MDc6MTkpOgpUb3AgVGVuIFRoaW5ncyBZb3VyIEJlcnNlcmtlciBXb3VsZCBOZXZlciBTYXkgCgoxLklmIHRoaXMgd2Fzbid0IHN1Y2ggYSBuaWNlIGlubiwgSSdkIGtpY2sgeW91ciBhc3MuIAoyLkRvIHRoZXNlIGJvb3RzIGdvIHdpdGggdGhpcyB0dW5pYz8gCjMuU29tZXRpbWVzLCBJIGp1c3Qgd2FudCB0byBiZSBoZWxkLiAKNC5Db3VsZG4ndCB3ZSBqdXN0IHRhbGsgdGhpcyBvdmVyPyBWaW9sZW5jZSBuZXZlciBzb2x2ZWQgYW55dGhpbmcuIAo1LlN3b3JkcyBhbmQgYWxjb2hvbCBkb24ndCBtaXguIAo2LkdlZSwgSSdkIGxpa2UgdG8gaGVscCB5b3UgZ3V5cyBodW50IGRvd24gdGhhdCByb2d1ZSBkcmFnb24sIGJ1dCBMYW5jZSBhbmQgSQphcmUgZ29pbmcgc2hvcHBpbmcgZm9yIGN1cnRhaW5zIHRoaXMgd2Vla2VuZC4gCjcuVGhhbmsgeW91IChhcyB3ZWxsIGFzICJwbGVhc2UiLCAiZXhjdXNlIG1lIiwgYW5kICJzbyBzb3JyeSwgSSB3b3VsZCBhcHBlYXIKdG8gaGF2ZSBzdGFiYmVkIHlvdSBpbiB0aGUgc3RvbWFjaCB3aXRoIG15IGJyb2FkIHN3b3JkIikuIAo4LkkgdGhpbmsgbWFnZXMgYXJlIHRoZSBjb29sZXN0LiAKOS5XYWl0IGEgbWludXRlIGd1eXMuIE1heWJlIHdlIHNob3VsZCB0aGluayB0aGlzIG92ZXIgZmlyc3QuIAoxMC5Fd3d3d3chIEJsb29kISAKCkRpcmlvbiwgbGFjaGVuZCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQUQmRCBIdW1vciwgZGVyIDIuIChEaXJpb24sIDEzLiBNYWkgMTk5OSwgMjI6MDk6MDApOgpUb3AgVGVuIFNwZWxscyBUaGF0IE5ldmVyIE1hZGUgSXQgCgoxLkJlcm1hbidzIERlYXRoLXRvLXRoZS1DYXN0ZXIuIAoyLlBvd2VyIHdvcmQsIGZhcnQuIAozLkdlbGF0aW5vdXMgU2hlbGwgKGltbWVkaWF0ZWx5IHN1cnJvdW5kcyB0aGUgY2FzdGVyIGluIGEgZ2VsYXRpbm91cyBjdWJlKS4gCjQuU2FmZSBmYWxsIChsaWtlIGZlYXRoZXIgZmFsbCwgYnV0IG1ha2VzIHlvdSB3ZWlnaCBhcyBtdWNoIGFzIGEgMTIgdG9uIGJhbmsKdmF1bHQpLiAKNS5Qb2x5bW9ycGggVWRkZXIgKGEgaGlnaGx5IHNwZWNpYWxpemVkIHNwZWxsIHdoaWNoIG9ubHkgYWZmZWN0cyBmZW1hbGUKY2F0dGxlKS4gCjYuU3RpbmtpbmcgS2xhdXMgKHN1bW1vbnMgYSBmYXQsIHNtZWxseSBHZXJtYW4gYnVzaW5lc3MgbWFuLCB3aG8gY2hhc2VzIHlvdXIKZW5lbWllcyB3aGlsZSBlYXRpbmcgYW4gT2t0b2JlcmZlc3Qgc2F1c2FnZSBhbmQgYmVsY2hpbmcpLiAKNy5NYWduZXRza2luIChhIHZhcmlhdGlvbiBvZiBzdG9uZXNraW4gLSBtYWtlcyB0aGUgY2FzdGVyJ3Mgc2tpbiBtYWduZXRpYywKZ2l2aW5nIGFsbCBtZXRhbGxpYyB3ZWFwb25zIGEgKzEwIGJvbnVzIHRvIGhpdCkuIAo4Lk1lYXRpZXIgU3dhcm0gKGxhcmdlIGNodW5rcyBvZiBncm91bmQgY2h1Y2sgcmFpbiB0byB0aGUgZ3JvdW5kKS4gCjkuUG9seW1vcnBoIGFueSBPbWVsZXQuIAoxMC5GaXJlYmFsbHMgKHNldHMgdGhlIHRhcmdldCdzIHRlc3RpY2xlcyBvbiBmaXJlIC0gdmVyeSBlZmZlY3RpdmUsIGJ1dCBhIGJpdAp0b28ga2lua3kgZm9yIFRTUikuIAoKRWluIGxhY2hlbmRlciBEaXJpb24uLi4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1lbi4uLiAoR25vbWUsIDE0LiBNYWkgMTk5OSwgMTk6MzM6NTcpOgpBbnkgbWFuIHdobyBsYXVnaHMgYXQgd29tZW4ncyBjbG90aGVzIGhhcyBuZXZlciBwYWlkIHRoZSBiaWxsIGZvciB0aGVtLgoKd2llIHdhaHIsIHdpZSB3YWhyLi4uIDopCgpnbk9tZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcmFuZG9tIGpva2UgKEdub21lLCAxNC4gTWFpIDE5OTksIDIwOjI4OjM2KToKSSBjb3VsZG4ndCByZXBhaXIgeW91ciBicmFrZXMsIHNvIEkgbWFkZSB5b3VyIGhvcm4gbG91ZGVyLgoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyB3YWVyZSB3ZW5uLi4uPyBIZXV0ZTogW0ddIFBhZHJlaWMgKEFuYXRvbCwgMTUuIE1haSAxOTk5LCAxNzo0ODozNyk6CldpZSBoZWlzc3QgRHUgZGVubiA/IFNjaG9lbiwgZGFzcyBEdSB3aWVkZXIgZGEgYmlzdCwgQW5hdG9sIQpQYXNzd29yZDoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICBEaWUgU2NyaXB0cmVnZWxuIHNpbmQgbWl0IGRlbSBCZWZlaGwgImhpbGZlIHNjcmlwdGUiIGFicnVmYmFyLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgICAgV0lMTEtPTU1FTiBhdWYgdW5zZXJlbSBuZXVlbiBSZWNobmVyIQoKICAgICAgICBQZW50aXVtIElJLzQwMCwgNTEyTUIgUkFNLCAyMEdCIFBsYXR0ZW5wbGF0eiAoNEdCIE1VRCkKICAgICAgICAxMDBNQml0IEV0aGVybmV0IChleHRlcm4gMTU1TUJpdCBXSU4pCgogICAgICAgICoqIFdXVyBpc3QgYXVmIGh0dHA6Ly93d3cubWcubXVkLmRlLwogICAgICAgICoqIEZUUCBmdW5rdGlvbmllcnQgYXVmIHBvcnQgNDcxMywgcGFzc2l2ZSBtb2RlIGF1Y2ggMjEKICAgICAgICAqKiBFbWFpbCBnZWh0IHdpZWRlciBmdWVyIGFrdGl2ZSBTcGllbGVyLgoKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAgICAgICAgICAgICAgV2lyIGhhYmVuIFBhZHJlaWMgaW4gdW5zZXJlIFJlaWhlbiBhdWZnZW5vbW1lbiEgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIEpvZiwgQm9pbmcsIFJ1bWF0YQorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKCgpXQVJOVU5HISAqIERlaW4gUG9zdGZhY2ggaXN0IGVpbmZhY2ggenUgZ3Jvc3MhISEgCiAgICAgICAgICogRW50ZmVybmUgYmlzIHp1bSBTYW0sIDIyLiBNYWkgMTk5OSwgMTg6MTM6MzAgYWxsZXMgYmlzIGF1ZiAKICAgICAgICAgKiBob2VjaHN0ZW5zIDUwayBNYWlsLiBTaWVoZSBhdWNoIE1haWxrb21tYW5kbyAiaSIuCgpXQVJOVU5HISAqIER1IGhhc3QgenV2aWVsIEFsaWFzZSEhIQogICAgICAgICAqIExvZXNjaGUgYmlzIHp1bSBTb24sIDE2LiBNYWkgMTk5OSwgMDA6MDA6MDAgbWluZGVzdGVucyAyMzMKICAgICAgICAgKiBBbGlhc2UsIGRpZSBPYmVyZ3JlbnplIGlzdCA1MCEKCkhJTldFSVMhICogRnJpc3QgenVyIExvZXNjaHVuZyB2b24gMzQgQWR2ZXJiaWVuIEFCR0VMQVVGRU4hISEKICAgICAgICAgKiBBbGxlIHNlbGJzdGRlZmluaWVydGVuIEFkdmVyYmllbiB3dXJkZW4gZ2Vsb2VzY2h0IQoKV0FSTlVORyEgKiBEZWluIFRpdGVsIGlzdCB6dSBsYW5nLiBUaXRlbCBhdXRvbWF0aXNjaCBhdWYgImRlciBTZWhlciIKICAgICAgICAgKiB6dXJ1ZWNrZ2VzZXR6dC4KCldBUk5VTkchICogRHUgaGFzdCBzZWNocyBaZWlsZW4gTGFuZ2Jlc2NocmVpYnVuZy4gR2VoZSBiaXMgenVtCiAgICAgICAgICogU29uLCAxNi4gTWFpIDE5OTksIDAwOjAwOjAwIHp1IE1hc3RyYWRlbmEgdW5kIGt1ZXJ6ZSBkaWUgCiAgICAgICAgICogQmVzY2hyZWlidW5nIGF1ZiBob2VjaHN0ZW5zIGVpbmUgWmVpbGUhCgpISU5XRUlTISAqIER1IGhhc3QgdWViZXIgNSBGcmV1bmRlLCBCZWZlaGwgIm1haWwgZnJldW5kZSIgZ2VzcGVycnQuCgpXQVJOVU5HISAqIERlaW4gRnJldW5kc2NoYWZ0YmFuZCBlbnRoYWVsdCA0NSBOYW1lbiEgVmVyYWNodGUgYmlzIHp1bQogICAgICAgICAqIE1pdCwgMTkuIE1haSAxOTk5LCAwMDowMDowMCBtaW5kZXN0ZW5zIDI1IEZyZXVuZGUuCgpXQVJOVU5HISAqIER1IGlnbm9yaWVyc3QgenUgdmllbGUgTmFtZW4gdW5kL29kZXIgS29tbWFuZG9zISBSZWR1emllcmUKICAgICAgICAgKiBkYXMgYmlzIHp1bSBTb24sIDE2LiBNYWkgMTk5OSwgMDA6MDA6MDAgYXVmIDEwIE5hbWVuIQoKSElOV0VJUyEgKiBGcmlzdCB6dXIgUmVkdXppZXJ1bmcgZGVyIEVyd2FydGVsaXN0ZSBBQkdFTEFVRkVOISEhCiAgICAgICAgICogRXJ3YXJ0ZWxpc3RlIGdlbG9lc2NodCEKCkluc2dlc2FtdCA2IFdhcm51bmdlbiB1bmQgMyBIaW53ZWlzZS4KRHUgaGFzdCAxIG5ldWVuIEJyaWVmIGltIFBvc3RhbXQgbGllZ2VuLgo+IAoKCi0tLQpBbmF0b2wgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXJ1bSBkaWUgSG9lbGxlIGJlc3NlciBhbHMgTVMgaXN0IChUcnVnLCAxOC4gTWFpIDE5OTksIDAzOjU0OjUwKToKSG9lbGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvZnR3YXJlIGZ1ZXIgV2luZG93cwoKRHUgd2Vpc3N0LCBlcyBlbmRldCBuaWUgICAgICAgICAgICAgIER1IGdsYXVic3QgaW1tZXIsIER1IGhhc3QgZXMgZmFzdAoKRHUgYnJlbm5zdCBld2lnLCBkb2NoIHZlcmJyZW5uc3QgbmllIEplZGVzIFVwZGF0ZSBmdWVocnQgbmV1ZSBGYWxsZW4gdW5kIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5hbm5laG1saWNoa2VpdGVuIGVpbiwgdW5kIHplaHJ0IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gRGVpbmVuIE5lcnZlbiBld2lnLgoKRGVpbiBTY2hpY2tzYWwgaXN0IGluIGRlbiBIYWVuZGVuICAgIERlaW4gU2NoaWNrc2FsIGlzdCBpbiBkZW4gSGFlbmRlbiAKdm9uIFNhdGFuLCBkZW0gUHJpbnplbiBkZXIgICAgICAgICAgIHZvbiBHYXRlcywgZGVtIFByaW56ZW4gZGVyICAKRmluc3Rlcm5pcyAgICAgICAgICAgICAgICAgICAgICAgICAgIElua29tcGF0aWJpbGl0YWV0LgoKU2F0YW4gZ2lidCBEaXIgZXR3YXMgZGFmdWVyLCBkYXNzICAgIEdhdGVzIHp3aW5ndCBEaWNoLCBXaW45NS85OCB6dSBrYXVmZW4uCkR1IGF1ZiBld2lnIHZlcmRhbW10IGJpc3QuCgpLYW5uIHZlcm1pZWRlbiB3ZXJkZW4sIGVzIGdpYnQgZWluZSAgV2lkZXJzdGFuZCBpc3Qgc2lubmxvcy4gCmF0dHJha3RpdmUgdW5kIGdyb3NzYXJ0aWcgCnZlcm1hcmt0ZXRlIEFsdGVybmF0aXZlLgoKS29zdGV0IG5peCAgICAgICAgICAgICAgICAgICAgICAgICAgIER1IHphaGxzdCB1bmQgemFobHN0IHVuZCB6YWhsc3QgbnVyIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW0gbWl0aGFsdGVuIHp1IGtvZW5uZW4uCgpTYXRhbiB3YXIgbWFsIGVpbiBFbmdlbC4gICAgICAgICAgICAgR2F0ZXMgaGF0IG1hbCBlaW5lbiBCQVNJQyBpbnRlcnByZXRlciAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlc2NocmllYmVuLgoKKERpZSBmb2xnZW5kZW4gZXJnZWJlbiBhdWYgRW5nbGlzY2ggbWVociBTaW5uKQoKSGVsbCBoYXMgbm8gd2luZG93cyAgICAgICAgICAgICAgICAgICBNaWNyb3NvZnQgZG9lcy4KCllvdSBvbmx5IHBhc3MgdGhlIEdhdGVzIG9mIEhlbGwgICAgICBUaGUgR2F0ZXMgb2YgTVMgcG9wcyB1cCBldmVyeWh3aGVyZSAKb25jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyb3VuZCB5b3UsIG5vIG1hdHRlciB3ZXJlIHlvdSBsb29rLgoKU2F0YW4gZ2xhdWJ0IGFuIGRlbiBUcml1bXBoIGRlcyAgICAgIEdhdGVzIG1hY2h0J3MgbnVyIGZ1ZXIncyBHZWxkLgpCb2VzZW4gCgpUcnVnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWludXMgWWVhciAyayBidWcgOikgKEphc3BlciwgMTkuIE1haSAxOTk5LCAxNzo0MzoxMCk6CldlciBzY2hvbiBpbW1lciB3aXNzZW4gd29sbHRlLCB3b21pdCBzaWNoIGRpZSBhbHRlbiBBZWd5cHRlciBydW1nZXNjaGxhZ2VuCmhhYmVuLCB1bmQgd2FzIGVzIG1pdCBlaW5lbSBoYWNrZXIgbmFtZW5zIG1vc2VzIHVuZCBlaW5lbSBQaGFyYW8gbmFtZW5zIHdpbGwKZ2F0ZXMgYXVmIHNpY2ggaGF0LCBkZXIgc29sbHRlIG1hbCBhdWYKCmh0dHA6Ly93d3cuYXRoZW5ldC5uZXQvfmpsaW5kc2F5L215Mmsuc2h0bWwKCm5hY2hsZXNlbgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRqYSwgZGllIFJlY2h0c2NocmVpYnVuZyAuLi4uLi4gOikpIChUcnVnLCAxOS4gTWFpIDE5OTksIDIwOjAxOjQ2KToKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Cj4+IFdJQ0hUSUc6Cj4+Cj4+IEJlbnV0emVyLCBkaWUgZGVuIFJlY2huZXIgQzIxMCBmdWVyIE1VRCAoTXVsdGktVXNlciBEYW5nZW9uKSBTcGllbGUKPj4gdmVyd2VuZGVuLCBoYWJlbiBtaXQgZW50c3ByZWNoZW5kZW4gS29uc2VxdWVuemVuIHp1IHJlY2huZW4uCj4+IERpZSB2b24gZGVuIEJlbnV0emVybiBha3plcHRpZXJ0ZSBCZXRyaWVic29yZG51bmcgZGVzIFplbnRyYWxlbgo+PiBJbmZvcmFtdGlrIERpZW5zdGVzIGxlZ3QgZXhwbGl6aXQgZmVzdCwgZGFzcyBkaWUgQ29tcHV0ZSBTZXJ2ZXIKPj4gbnVyIFByb2pla3RhcmJlaXRlbiBha2FkZW1pc2NoL3dpc3NlbnNjaGFmdGxpY2hlciBBcnQgZGllbmVuLgo+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KCkljaCBmYW5nIGltbWVyIGFuIHp1IGtpY2hlcm4sIHdlbm4gaWNoIGRpZXNlIG1vdGQgc2VoZSwgd2VpbCBkYSBzbyBuZXR0ZSB0eXBvcwpkcmlubmVuIHNpbmQuCgoobmF0dWVybGljaCBiZW51dHplIGljaCBkaWVzZXMgQWNjb3VudCBudXIgd2lzc2Vuc2NoYWZ0bGljaCA6KSkKClRydWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp5ZXN0ZXJkYXkgKENhdHdlYXpsZSwgMjUuIE1haSAxOTk5LCAxMzoxMjo0NSk6CkF1cyBnZWdlYmVuZW0sIHByaXZhdGVtIEFubGFzczoKLS0tLS0KWWVzdGVyZGF5LApBbGwgdGhvc2UgYmFja3VwcyBzZWVtZWQgYSB3YXN0ZSBvZiBwYXkuCk5vdyBteSBkYXRhYmFzZSBoYXMgZ29uZSBhd2F5LgpPaCBJIGJlbGlldmUgaW4geWVzdGVyZGF5LgogClN1ZGRlbmx5LApUaGVyZSdzIG5vdCBoYWxmIHRoZSBmaWxlcyB0aGVyZSB1c2VkIHRvIGJlLApBbmQgdGhlcmUncyBhIG1pbGVzdG9uZQpoYW5naW5nIG92ZXIgbWUKVGhlIHN5c3RlbSBjcmFzaGVkIHNvIHN1ZGRlbmx5LgogCkkgcHVzaGVkIHNvbWV0aGluZyB3cm9uZwpXaGF0IGl0IHdhcyBJIGNvdWxkIG5vdCBzYXkuCiAKTm93IGFsbCBteSBkYXRhJ3MgZ29uZQphbmQgSSBsb25nIGZvciB5ZXN0ZXJkYXktYXktYXktYXkuCiAKWWVzdGVyZGF5LApUaGUgbmVlZCBmb3IgYmFjay11cHMgc2VlbWVkIHNvIGZhciBhd2F5LgpJIGtuZXcgbXkgZGF0YSB3YXMgYWxsIGhlcmUgdG8gc3RheSwKTm93IEkgYmVsaWV2ZSBpbiB5ZXN0ZXJkYXkuCi0tLS0tClVuZCBuZWluLCBlcyB3YXIgbmljaHQgZmF0YWwgOikKCgpZb3VycyB0cnVseSwKICAgICBDYXR3ZWF6bGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVpbiBlbmdsaXNjaGVyLi4uIChBbWFyeWxsaXMsIDMxLiBNYWkgMTk5OSwgMTE6MDU6NDUpOgpCdXNoIGhhcyBhIHNob3J0IG9uZS4gCkdvcmJhY2hldiBoYXMgYSBsb25nIG9uZS4KTWFkb25uYSBkb2VzIG5vdCBoYXZlIG9uZS4KQW5kIGEgcHJpZXN0IGRvZXMgbm90IHVzZSBoaXMuCgpXCldoYXQgaXMgaXQ/CgpBIGxhc3QgbmFtZS4uLgoKQW1hcnlsbGlzIC4gbyBPICh3YXIga2xhciwgd2FzIGRhIGpldHp0IDk5JSAgd2llZGVyIGdlZGFjaHQgaGFiZW4uLi4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaXR0ZW4hISEgKEJhbWJ1bGtvLCAzMS4gTWFpIDE5OTksIDExOjU3OjQ0KToKCkZpbmFsbHksIHNvbWV0aGluZyBvdGhlciB0aGFuIHNtaWxleSBmYWNlcy4uLi4gICA6KQogKG8pKG8pICAgcGVyZmVjdCBicmVhc3RzCgooICsgKSggKyApIGZha2Ugc2lsaWNvbmUgYnJlYXN0cwoKICgqKSgqKSAgIGhpZ2ggbmlwcGxlIGJyZWFzdHMKCiAoQCkoQCkgICBiaWcgbmlwcGxlIGJyZWFzdHMKCiAgb28gICAgICBhIGN1cHMKCiAgeyBPIH17IE8gfWQgY3VwcwoKICAgIChvWW8pICAgd29uZGVyIGJyYSBicmVhc3RzCgogKCBeICkoIF4gKWNvbGQgYnJlYXN0cwoKICAobykoTykgIGxvcHNpZGVkIGJyZWFzdHMKCiAgKFEpKE8pICBwaWVyY2VkIGJyZWFzdHMKCiAgKHApKHApICBoYW5naW5nIHRhc3NlbHMgYnJlYXN0cwoKICBcby9cby8gIEdyYW5kbWEncyBicmVhc3RzCgooICAtICApKCAgLSAgKSAgZmxhdCBhZ2FpbnN0IHRoZSBzaG93ZXIgZG9vciBicmVhc3RzCgogfG98fG98ICBhbmRyb2lkIGJyZWFzdHMKCiAoJCkoJCkgIEplbm55IE1jQ2FydGh5J3MgYnJlYXN0cwoKCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplbmdsaXNjaC4uLiAoR3VpbGRvLCAzMS4gTWFpIDE5OTksIDE2OjE1OjQ5KToKCkVpbiBOaWNodGVuZ2xpc2NobXV0dGVyc3ByYWNobGVyIGluIGVpbmVtIFJlc3RhdXJhbnQgaW4gQW1pbGFuZDogIkknZCBsaWtlIGEKYmxvb2R5IHN0ZWFrLCBwbGVhc2UuIgpEZXIgS2VsbG5lcjogIlZlcnkgd2VsbCwgc2lyLCB3b3VsZCB5b3UgbGlrZSBzb21lIGZ1Y2tpbmcgcG90YXRvZXMgd2l0aCBpdD8iCgoKR3J1c3MsIEd1aWxkbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTVMgV29yc2UgKFJvY2h1cywgIDEuIEp1biAxOTk5LCAxMjoyODo0MSk6Cj5Gcm9tOiAiUnVzcyBDb3giIDxyc2M+Cj4KPiAgICBJbiBhIG5vbi1jb21wbGV4IGZpbGUsIHRoaXMgbWVhbnMgdGhhdCB0aGUgdGV4dCBvZiB0aGUgbWFpbiBkb2N1bWVudAo+ICAgIGJlZ2lucyBhdCBmaWIuZmNNaW4gaW4gdGhlIGZpbGUgYW5kIGNvbnRpbnVlcyB0aHJvdWdoIGZpYi5mY01pbiArCj4gICAgZmliLmNjcFRleHQ7IHRoYXQgdGhlIHRleHQgb2YgdGhlIGZvb3Rub3RlIHN1YmRvY3VtZW50IGJlZ2lucyBhdApmaWIuZmNNaW4KPiAgICArIGZpYi5jY3BUZXh0IGFuZCBleHRlbmRzIHRvIGZpYi5mY01pbiArIGZpYi5jY3BUZXh0ICsgZmliLmNjcEZ0bjsgdGhhdAo+ICAgIHRoZSB0ZXh0IG9mIHRoZSBoZWFkZXIgc3ViZG9jdW1lbnQgYmVnaW5zIGF0IGZpYi5mY01pbiArIGZpYi5jY3BUZXh0ICsKPiAgICBmaWIuY2NwRnRuIGFuZCBleHRlbmRzIHRvIGZpYi5mY01pbiArIGZpYi5jY3BUZXh0ICsgZmliLmNjcEZ0biArCj4gICAgZmliLmNjcEhkcjsgdGhhdCB0aGUgdGV4dCBvZiB0aGUgYW5ub3RhdGlvbiBzdWJkb2N1bWVudCBiZWdpbnMgYXQKPiAgICBmaWIuZmNNaW4gKyBmaWIuY2NwVGV4dCArIGZpYi5jY3BGdG4gKyBmaWIuY2NwSGRyIGFuZCBleHRlbmRzIHRvCmZpYi5mY01pbgo+ICAgICsgZmliLmNjcFRleHQgKyBmaWIuY2NwRnRuICsgZmliLmNjcEhkciArIGZpYi5jY3BBdG47IHRoYXQgdGhlIHRleHQgb2YKPiAgICB0aGUgZW5kbm90ZSBzdWJkb2N1bWVudCBiZWdpbnMgYXQgZmliLmZjTWluICsgZmliLmNjcFRleHQgKyBmaWIuY2NwRnRuICsKPiAgICBmaWIuY2NwSGRyICtjY3BBdG4gW3NpY10gYW5kIGV4dGVuZHMgdG8gZmliLmZjTWluICsgZmliLmNjcFRleHQgKwo+ICAgIGZpYi5jY3BGdG4gKyBmaWIuY2NwSGRyICsgW3NpY10gZmliLmNjcEVkbjsgdGhhdCB0aGUgdGV4dCBvZiB0aGUgdGV4dGJveAo+ICAgIHN1YmRvY3VtZW50IGJlZ2lucyBhdCAuZmliLmZjTWluIFtzaWNdICsgZmliLmNjcFRleHQgKyBmaWIuY2NwRnRuICsKPiAgICBmaWIuY2NwSGRyICtmaWIuY2NwQXRuICsgZmliLmNjcEVkbiBhbmQgZXh0ZW5kcyB0byBmaWIuZmNNaW4gKwpmaWIuY2NwVGV4dAo+ICAgICsgZmliLmNjcEZ0biArIGZpYi5jY3BIZHIgKyBbc2ljXSBmaWIuY2NwRWRuICsgZmliLmNjcFR4YnggYW5kIHRoYXQgdGhlCj4gICAgdGV4dCBvZiB0aGUgaGVhZGVyIHRleHRib3ggc3ViZG9jdW1lbnQgYmVnaW5zIGF0IC5maWIuZmNNaW4gW3NpY10gKwo+ICAgIGZpYi5jY3BUZXh0ICsgZmliLmNjcEZ0biArIGZpYi5jY3BIZHIgK2ZpYi5jY3BBdG4gW3NpY10gKyBmaWIuY2NwRWRuICsKPiAgICBmaWIuY2NwVHhieCBhbmQgZXh0ZW5kcyB0byBmaWIuZmNNaW4gKyBmaWIuY2NwVGV4dCArIGZpYi5jY3BGdG4gKwo+ICAgIGZpYi5jY3BIZHIgKyBbc2ljXSBmaWIuY2NwRWRuICsgZmliLmNjcFR4YnggKyBmaWIuY2NwSGRyVHhieC4KPgo+LS0gT25lIHNlbnRlbmNlIGZyb20gIk1pY3Jvc29mdCBXb3JkIDk3IEJpbmFyeSBGaWxlIEZvcm1hdCIKCldvdy4gIFRoYXQncyBkZWZpbml0ZWx5IGEgbGVzc29uIHRvIHVzZSBpbgoKICAgSG93IE5vdCBUbyBSZXByZXNlbnQgSW5mb3JtYXRpb24sIDEwMSAoZnVsbCBzZW1lc3RlcikKICAgICBUaGlzIGNvdXJzZSB3aWxsIGJlIGhlbGQgaW4gUm9vbSA0MCArIDEgKyAzMDAgKHdpdGggYW4gIkEiCiAgICAgYXBwZW5kZWQpLCBmcm9tIGhhbGYgcGFzdCBub29uIHRvIGhhbGYgYmVmb3JlIHR3bywgZXZlcnkgZGF5IG9mCiAgICAgdGhlIHdlZWsgZXhjZXB0IHRoZSBkYXkgYWZ0ZXIgTW9uZGF5IGFuZCB0aGUgZGF5IGFmdGVyIHRoZSBkYXkKICAgICBiZWZvcmUgdGhlIGRheSBiZWZvcmUgRnJpZGF5LiAgUHJlcmVxdWlzaXRlcyBpbmNsdWRlIGFsbAogICAgIHByZXJlcXVpc2l0ZXMgbm90IHJlcXVpcmVkIGZvciB0aGUgY291cnNlcyBiZWZvcmUgYW5kIGFmdGVyIHRoaXMKICAgICBvbmUsIGJ1dCB3aGljaCBhcmUgcmVxdWlyZWQgZm9yIGFueSBvdGhlciBjb3Vyc2VzIG9uIHRoZSBzYW1lCiAgICAgZGF5cyBpbiB0aGUgc2FtZSByb29tLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVpbiBlbmdsaXNjaGVyIChBbWFyeWxsaXMsICAxLiBKdW4gMTk5OSwgMTk6MTE6NTcpOgoKID4gU2l0dGluZyBvbiB0aGUgc2lkZSBvZiB0aGUgaGlnaHdheSB3YWl0aW5nIHRvIGNhdGNoIHNwZWVkaW5nIAogPiBkcml2ZXJzLCBhCiA+IFN0YXRlIFBvbGljZSBPZmZpY2VyIHNlZXMgYSBjYXIgcHV0dGVyaW5nIGFsb25nIGF0IDIyIE1QSC4gSGUgCiA+IHRoaW5rcyB0bwogPiBoaW1zZWxmLCB0aGlzIGRyaXZlciBpcyBqdXN0IGFzIGRhbmdlcm91cyBhcyBhIHNwZWVkZXIhIiBTbyAKID4gaGUgdHVybnMgb24KID4gaGlzIGxpZ2h0cyBhbmQgcHVsbHMgdGhlIGRyaXZlciBvdmVyLgogPiAKID4gQXBwcm9hY2hpbmcgdGhlIGNhciwgaGUgbm90aWNlcyB0aGF0IHRoZXJlIGFyZSBmaXZlIG9sZCAKID4gbGFkaWVzIC0gdHdvIGluCiA+IHRoZSBmcm9udCBzZWF0IGFuZCB0aHJlZSBpbiB0aGUgYmFjayAtIGV5ZXMgd2lkZSBhbmQgd2hpdGUgYXMgZ2hvc3RzLgogPiAKID4gVGhlIGRyaXZlciwgb2J2aW91c2x5IGNvbmZ1c2VkLCBzYXlzIHRvIGhpbSwgIk9mZmljZXIsIEkgCiA+IGRvbid0IHVuZGVyc3RhbmQsCiA+IEkgd2FzIGRvaW5nIGV4YWN0bHkgdGhlIHNwZWVkIGxpbWl0ISAgV2hhdCBzZWVtcyB0byBiZSB0aGUgcHJvYmxlbT8iCiA+IAogPiAiTWEnYW0sIiB0aGUgb2ZmaWNlciByZXBsaWVzLCAiWW91IHdlcmVuJ3Qgc3BlZWRpbmcsIGJ1dCB5b3UgCiA+IHNob3VsZCBrbm93CiA+IHRoYXQgZHJpdmluZyBzbG93ZXIgdGhhbiB0aGUgc3BlZWQgbGltaXQgY2FuIGFsc28gYmUgYSBkYW5nZXIgdG8gb3RoZXIKID4gZHJpdmVycy4iICJTbG93ZXIgdGhhbiB0aGUgc3BlZWQgbGltaXQ/CiA+IAogPiBObyBzaXIsIEkgd2FzIGRvaW5nIHRoZSBzcGVlZCBsaW1pdCBleGFjdGx5Li4uICBUd2VudHktVHdvIAogPiBtaWxlcyBhbiBob3VyISIKID4gdGhlIG9sZCB3b21hbiBzYXlzIGEgYml0IHByb3VkbHkuIFRoZSBTdGF0ZSBQb2xpY2Ugb2ZmaWNlciwgdHJ5aW5nIHRvCiA+IGNvbnRhaW4gYSBjaHVja2xlIGV4cGxhaW5zIHRvIGhlciB0aGF0ICIyMiIgd2FzIHRoZSByb3V0ZSAKID4gbnVtYmVyLCBub3QgdGhlCiA+IHNwZWVkIGxpbWl0LiBBIGJpdCBlbWJhcnJhc3NlZCwgdGhlIHdvbWFuIGdyaW5uZWQgYW5kIHRoYW5rZWQgCiA+IHRoZSBvZmZpY2VyCiA+IGZvciBwb2ludGluZyBvdXQgaGVyIGVycm9yLgogPiAKID4gIkJ1dCBiZWZvcmUgSSBsZXQgeW91IGdvLCBNYSdhbSwgSSBoYXZlIHRvIGFzay4uLiAgSXMgCiA+IGV2ZXJ5b25lIGluIHRoaXMgY2FyCiA+IG9rPyAgdGhlc2Ugd29tZW4gc2VlbSBhd2Z1bGx5IHNoYWtlbiBhbmQgdGhleSBoYXZlbid0IAogPiBtdXR0ZXJlZCBhIHNpbmdsZQogPiBwZWVwIHRoaXMgd2hvbGUgdGltZS4iIHRoZSBvZmZpY2VyIGFza3MuCiA+IAogPiAiT2gsIHRoZXknbGwgYmUgYWxyaWdodCBpbiBhIG1pbnV0ZSBvZmZpY2VyLiBXZSBqdXN0IGdvdCBvZmYgCiA+IFJvdXRlIDExOS4iCgpGZWVjaGVuIEFtYSoKUFM6IFNvcnJ5IGZ1ZXIgZGllICI+IiAuLi4gZ2luZyBuaWNoIGFuZGVycyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbmUga2xlaW5lIHdpdHpzZWl0ZSBkZXIgc2NocmFlZ2VuIGFydCAoVHJ1ZywgIDEuIEp1biAxOTk5LCAyMDoyNDoxNSk6Cmh0dHA6Ly9ob21lMi5lY29yZS5uZXQvcGF1bHMtcGFnZS9qb2tlcy8KClRydWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmdsYWVuZGVyciA6KSAoQ3JpdHRlciwgIDIuIEp1biAxOTk5LCAxNDowNDo1Nik6CldoeSBhcmUgdGhlIGZvb3RiYWxscGxheWVycyBvZiBCYXllcm4gTXVlbmNoZW4gc28gZ29vZCBpbiBiZWQ/CgoKCgoKCgpUaGV5IGNhbiBzdGF5IG9uIHRvcCBmb3IgOTAgbWludXRlcyBhbmQgc3RpbGwgY29tZSBzZWNvbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWb3JzaWNodCBFbmdsaXNjaCEgKEJhbWJ1bGtvLCAgNy4gSnVuIDE5OTksIDE2OjA5OjQ3KToKClBhZGR5IGFuZCBoaXMgdHdvIGZyaWVuZHMgYXJlIHRhbGtpbmcgYXQgd29yay5IaXMgZmlyc3QgZnJpZW5kIHNheXM6IkkKdGhpbmsgbXkgd2lmZSBpcyBoYXZpbmcgYW4gYWZmYWlyIHdpdGggdGhlIGVsZWN0cmljaWFuLlRoZSBvdGhlciBkYXkgSQpjYW1lIGhvbWUgYW5kIGZvdW5kIHdpcmUgY3V0dGVycyB1bmRlciBvdXIgYmVkIGFuZCB0aGV5IHdlcmVuJ3QKbWluZS4iIEhpcyBzZWNvbmQgZnJpZW5kIHNheXM6IkkgdGhpbmsgbXkgd2lmZSBpcyBoYXZpbmcgYW4gYWZmYWlyCndpdGggdGhlIHBsdW1tZXIgdGhlIG90aGVyIGRheSBJIGZvdW5kIGEgd3JlbmNoIHVuZGVyIHRoZSBiZWQgYW5kIGl0Cndhc24ndCBtaW5lLiIgUGFkZHkgc2F5czoiSSB0aGluayBteSB3aWZlIGlzIGhhdmluZyBhbiBhZmZhaXIgd2l0aCBhCmhvcnNlLiIgQm90aCBoaXMgZnJpZW5kZHMgbG9vayBhdCBoaW0gd2l0aCB1dHRlciBkaXNiZWxpZWYuICJObyBJJ20Kc2VyaW91cy5UaGUgb3RoZXIgZGF5IEkgY2FtZSBob21lIGFuZCBmb3VuZCBhIGpvY2tleSB1bmRlciBvdXIKYmVkLiIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0KCkEgbWFuIGlzIGluIGEgaG90ZWwgbG9iYnkuIEhlIHdhbnRzIHRvIGFzayB0aGUgY2xlcmsgYSBxdWVzdGlvbi4gQXMgaGUKdHVybnMgdG8gZ28gdG8gdGhlIGZyb250IGRlc2ssIGhlIGFjY2lkZW50YWxseSBidW1wcyBpbnRvIGEgd29tYW4KYmVzaWRlIGhpbSBhbmQgYXMgaGUgZG9lcywgaGlzIGVsYm93IGdvZXMgaW50byBoZXIgYnJlYXN0LiBUaGV5IGFyZQpib3RoIHF1aXRlIHN0YXJ0bGVkLiBUaGUgbWFuIHR1cm5zIHRvIGhlciBhbmQgc2F5cywgIk1hJ20sIGlmIHlvdXIKaGVhcnQgaXMgYXMgc29mdCBhcyB5b3VyIGJyZWFzdCwgSSBrbm93IHlvdSdsbCBmb3JnaXZlIG1lLiIgU2hlIHJlcGxpZXMsCgoiSWYgeW91ciBwZW5pcyBpcyBhcyBoYXJkIGFzIHlvdXIgZWxib3csIEknbSBpbiByb29tIDQzNi4iCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tCgpBIG1hbiBhbmQgaGlzIHdpZmUgZ28gdG8gdGhlaXIgaG9uZXltb29uIHBsYWNlIGZvciB0aGVpciAyNXRoCmFubml2ZXJzYXJ5LiBBcyB0aGUgY291cGxlIHJlZmxlY3RlZCBvbiB0aGF0IG1hZ2ljYWwgZXZlbmluZyAyNSB5ZWFycwphZ28sIHRoZSB3aWZlIGFza2VkIHRoZSBodXNiYW5kOiAiV2hlbiB5b3UgZmlyc3Qgc2F3IG15IG5ha2VkIGJvZHkKaW4gZnJvbnQgb2YgeW91LCB3aGF0IHdhcyBnb2luZyB0aHJvdWdoIHlvdXIgbWluZD8iIFRoZSBodXNiYW5kCnJlcGxpZWQ6ICJBbGwgSSB3YW50ZWQgdG8gZG8gd2FzIHRvIGZ1Y2sgeW91ciBicmFpbnMgb3V0LCBhbmQgc3Vjawp5b3VyIHRpdHMgZHJ5LiIgVGhlbiwgYXMgdGhlIHdpZmUgdW5kcmVzc2VkLCBzaGUgYXNrZWQ6ICJXaGF0IGFyZQp5b3UgdGhpbmtpbmcgbm93PyIgSGUgcmVwbGllZDogIkl0IGxvb2tzIGxpa2UgSSBkaWQgYSBwcmV0dHkgZ29vZCBqb2IuIgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLQoKT25lIG5pZ2h0IGEgbWFuIHdhcyBkcmlua2luZyBpbiBhIGJhciBhbmQgaGUgaGFkIHRvIGdvIHRvIHRoZQpiYXRocm9vbS4gV2hpbGUgaGUgd2FzIGdvaW5nLCBoZSBub3RpY2VkIHRoYXQgdGhlcmUgd2VyZSB0aHJlZSBibGFjawptZW4gbmV4dCB0byBoaW0gYXQgdGhlIHVyaW5hbHMuIEhlIGhhcHBlbmVkIHRvIGxvb2sgZG93biBhbmQgd2FzCnNob2NrZWQgdG8gc2VlIHRoYXQgb25lIG9mIHRoZSBtZW4gaGFkIGEgd2hpdGUgcGVuaXMuIEhlIHF1aWNrbHkKZmluaXNoZWQgYW5kIHdlbnQgYmFjayB0byB0aGUgYmFyLiBIZSB0b2xkIHRoZSBiYXJ0ZW5kZXIgdGhhdCBoZSBoYWQKanVzdCBzZWVuIHRoZSBzdHJhbmdlc3QgdGhpbmcgd2hlbiBoZSB3YXMgaW4gdGhlIGJhdGhyb29tLiBUaGUKYmFydGVuZGVyIGFza2VkIGhpbSB3aGF0IGhlIHNhdy4gIldlbGwsIHdoaWxlIEkgd2FzIHRha2luZyBhIGxlYWssIEkKbG9va2VkIG92ZXIgYW5kIG5leHQgdG8gbWUgd2VyZSB0aHJlZSBibGFjayBndXlzIGFuZCBvbmUgb2YgdGhlbQpoYWQgYSB3aGl0ZSBkaWNrISIgaGUgc2FpZC4gIk9oLCB0aG9zZSB3ZXJlbid0IGJsYWNrIG1lbiwiIHRoZQpiYXJ0ZW5kZXIgc2FpZCwgInRoZXkgYXJlIGFsbCBjb2FsIG1pbmVycyBhbmQgYXBwYXJlbnRseSBvbmUgb2YgdGhlbQp3ZW50IGhvbWUgZm9yIGx1bmNoLiIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0KCk9uZSBuaWdodCBhIGNvdXBsZSB3YXMgbHlpbmcgaW4gYmVkLiBUaGUgaHVzYmFuZCB3YXMgZmVlbGluZyBmcmlza3kKc28gaGUgcm9sbGVkIG92ZXIgYW5kIHRhcHBlZCBoaXMgd2lmZSBvbiB0aGUgc2hvdWxkZXIgYW5kIHN0YXJ0ZWQKcnViYmluZyBoZXIgYXJtLiBUaGUgd2lmZSB0dXJucyBvdmVyIGFuZCBzYXlzICJJJ20gc29ycnkgaG9uZXksIGJ1dCBJCmhhdmUgYSBneW5lY29sb2dpc3QgYXBwb2ludG1lbnQgdG9tb3Jyb3cgYW5kIEkgd2FudCB0byBzdGF5IGZyZXNoLiIKUmVqZWN0ZWQsIHRoZSBodXNiYW5kIHR1cm5zIG92ZXIgYW5kIHRyaWVzIHRvIHNsZWVwLiBBIGZldyBtaW51dGVzCmxhdGVyIGhlIHJvbGxzIG92ZXIgYW5kIHdoaXNwZXJzIGluIGhlciBlYXIgIkRvIHlvdSBoYXZlIGEgZGVudGlzdAphcHBvaW50bWVudCwgdG9vPyIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0KCkEgcmF0aGVyIGF0dHJhY3RpdmUgd29tYW4gZ29lcyB1cCB0byB0aGUgYmFyIGluIGEgcXVpZXQgcnVyYWwgcHViLiBTaGUKZ2VzdHVyZXMgYWxsdXJpbmdseSB0byB0aGUgYmFybWFuIHdobyBjb21lcyBvdmVyIGltbWVkaWF0ZWx5LiBXaGVuCmhlIGFycml2ZXMsIHNoZSBzZWR1Y3RpdmVseSBzaWduYWxzIHRoYXQgaGUgc2hvdWxkIGJyaW5nIGhpcyBmYWNlIGNsb3NlCnRvIGhlcnMuIFdoZW4gaGUgZG9lcyBzbywgc2hlIGJlZ2lucyB0byBnZW50bHkgY2FyZXNzIGhpcyBiZWFyZCB3aGljaAppcyBmdWxsIGFuZCBidXNoeS4gIkFyZSB5b3UgdGhlIG1hbmFnZXI/IiBzaGUgYXNrcywgc29mdGx5IHN0cm9raW5nCmhpcyBmYWNlIHdpdGggYm90aCBoYW5kcy4gIkFjdHVhbGx5LCBubyIgaGUgcmVwbGllcy4gIkNhbiB5b3UgZ2V0IGhpbQpmb3IgbWUgLSBJIG5lZWQgdG8gc3BlYWsgdG8gaGltPyIgc2hlIGFza3MsIHJ1bm5pbmcgaGVyIGhhbmRzIHVwCmJleW9uZCBoaXMgYmVhcmQgYW5kIGludG8gaGlzIGhhaXIuICJJJ20gYWZyYWlkIEkgY2FuJ3QiIGJyZWF0aGVzIHRoZQpiYXJtYW4gLSBjbGVhcmx5IGFyb3VzZWQuICJJcyB0aGVyZSBhbnl0aGluZyBJIGNhbiBkbz8iICJZZXMgdGhlcmUKaXMuIEkgbmVlZCB5b3UgdG8gZ2l2ZSBoaW0gYSBtZXNzYWdlIiBzaGUgY29udGludWVzIGh1c2tpbHksIHBvcHBpbmcKYSBjb3VwbGUgb2YgZmluZ2VycyBpbnRvIGhpcyBtb3V0aCBhbmQgYWxsb3dpbmcgaGltIHRvIHN1Y2sgdGhlbQpnZW50bHkuICJUZWxsIGhpbSB0aGF0IHRoZXJlIGlzIG5vIHRvaWxldCBwYXBlciBpbiB0aGUgbGFkaWVzIHJvb20uIgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLQoKV2hhdCBkbyB5b3UgY2FsbCBhIHByb3N0aXR1dGUgd2l0aCBhIHJ1bm55IG5vc2U/CkZ1bGwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0KCkhvdyBhcmUgYSBSdWJpeCBDdWJlIGFuZCBhIHBlbmlzIGFsaWtlPwpUaGUgbW9yZSB5b3UgcGxheSB3aXRoIHRoZW0sIHRoZSBoYXJkZXIgdGhleSBnZXQhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tCgpTbm93IFdoaXRlIHNhdyBQaW5vY2NoaW8gd2Fsa2luZyB0aHJvdWdoIHRoZSB3b29kcyBzbyBzaGUgcmFuIHVwCmJlaGluZCBoaW0sIGtub2NrZWQgaGltIGZsYXQgb24gaGlzIGJhY2ssIGFuZCB0aGVuIHNhdCBvbiBoaXMgZmFjZQpjcnlpbmcsICJMaWUgdG8gbWUhIExpZSB0byBtZSEiCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0tLS0tLS0tCgpBbiBvbGQgbGFkeSBnb2VzIHRvIHRoZSBkb2N0b3IgYW5kIHNheSdzLCAiSSBmYXJ0IGFsbCBkYXksIGV2ZXJ5IGRheSwKYnV0IHRoZXkgZG9uJ3Qgc3RpbmsgYW5kIGRvbid0IG1ha2UgYSBzb3VuZC4iIFRoZSBkb2N0b3Igc2F5cyAiTy5LLiwKdGFrZSB0d28gb2YgdGhlc2UgcGlsbHMgZXZlcnkgZGF5IGZvciB0d28gd2Vla3MgYW5kIGNvbWUgYmFjay4iIEEKd2VlayBsYXRlciB0aGUgbGFkeSBjb21lcyBiYWNrIHJlYWxseSBtYWQgYW5kIHNheXMsICJOb3csIG5vdCBvbmx5CmRvIEkgZmFydCBhIGxvdCwgYnV0IHRoZXkgc3RpbmsgcmVhbGx5IGJhZCEiIFRoZSBkb2N0b3IgdGhlbiBzYWlkLCAiTm93CnRoYXQgd2UgaGF2ZSB5b3VyIHNpbnVzZXMgY2xlYXJlZCwgbGV0J3Mgd29yayBvbiB5b3UgaGVhcmluZyEiCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFjaHR1bmcgRW5nbGlzY2ggSUkgKEJhbWJ1bGtvLCAgNy4gSnVuIDE5OTksIDE2OjEyOjU1KToKPgo+US4gV2hhdCBkbyB5b3UgY2FsbCBzb21lb25lIGluIHRoZSBDbGludG9uIFdoaXRlIEhvdXNlIHdobyBpcwo+aG9uZXN0LCBldGhpY2FsLCBpbnRlbGxpZ2VudCwgbGF3IGFiaWRpbmcgYW5kIHRydXRoZnVsPwo+QS4gQSB0b3VyaXN0Lgo+Cj4KPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLQo+Cj5ROiBIb3cgZGlkIEJpbGwgQ2xpbnRvbiBwYXJhbHl6ZSBIaWxsYXJ5IGZyb20gdGhlIHdhaXN0IGRvd24/Cj5BOiBIZSBtYXJyaWVkIGhlci4KPgo+Cj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0KPgo+QmlsbCAmIEhpbGxhcnkgQ2xpbnRvbiB3ZXJlIHNsZWVwaW5nIG9uZSBuaWdodCBhdCB0aGUgV2hpdGUKPkhvdXNlLiBIaWxsYXJ5IHdha2VzIHVwIGFuZCBzdGFydHMgc2hha2luZyBCaWxsIHRvIHdha2UgaGltCj51cC4gIkJpbGwsIEJpbGwgd2FrZSB1cC4iCj5CaWxsIHN0YXlzIHNsZWVwaW5nLgo+SGlsbGFyeSBjb250aW51ZXMsICJCaWxsLCBCaWxsIHdha2UgdXAuIgo+QmlsbCBmaW5hbGx5IHdha2VzIHVwIGFuZCBzYXlzLCAiV2hhdCBkbyB5b3Ugd2FudD8iCj5IaWxsYXJ5IHJlc3BvbmRzLCAiSSBoYXZlIHRvIGdvIHVzZSB0aGUgYmF0aHJvb20uIgo+VG8gd2hpY2ggQmlsbCBzYXlzLCAiUGxlYXNlIHRlbGwgbWUgeW91IGRpZG4ndCB3YWtlIG1lIHVwCj5qdXN0IHRvIHRlbGwgbWUgeW91IGhhdmUgdG8gZ28gdG8gdGhlIGJhdGhyb29tLiIKPkhpbGxhcnkgc2F5cywgIk5vLCBJIGp1c3Qgd2FudGVkIHRvIHRlbGwgeW91IHRvIHNhdmUgbXkKPnNwb3QuIgo+Cj4KPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLQo+Cj5EaWQgeW91IGtub3cgdGhhdCBhbGwgb3ZlciBXYXNoaW5ndG9uIERDLCBlbGV2YXRvcnMgYXJlCj5oYXZpbmcgbGFiZWxzIHRhcGVkIG92ZXIgdGhlICJVUCIgYnV0dG9uIHRoYXQgcmVhZCBWSUFHUkEuCj5BbmQgb3ZlciB0aGUgIkRPV04iIGJ1dHRvbiBpcyBhIHNpbWlsYXIgbGFiZWwgcmVhZGluZyBNT05JQ0EuCj4KPgo+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tCj4KPlEuIERpZCB5b3UgaGVhciB0aGF0IE1vbmljYSBMZXdpbnNreSBpcyBjaGFuZ2luZyBwb2xpdGljYWwKPnBhcnRpZXM/Cj5BLiBTaGUgZGVjaWRlZCB0byBiZWNvbWUgYSBSZXB1YmxpY2FuIGJlY2F1c2UgRGVtb2NyYXRzIGxlZnQKPmEgYmFkIHRhc3RlIGluIGhlciBtb3V0aC4KPgo+Cj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0KPgo+US4gSG93IGRvIHlvdSBzdWNjZWVkIGluIHRoZSBPdmFsIG9mZmljZT8KPkEuIE9uIHlvdXIga25lZXMsIHVzdWFsbHkuCj4KPgo+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tCj4KPlRoZXkgY2FsbGVkIG9mZiB0aGUgaW52ZXN0aWdhdGlvbiBvZiBQcmVzaWRlbnQgQ2xpbnRvbiBkdWUgdG8gYSBsYWNrIG9mIAo+ZXZpZGVuY2UuCj5UdXJucyBvdXQgaGUgZGlkbid0IHRlbGwgaGVyIHRvIGxpZSwgaGUgdG9sZCBoZXIgdG8ga25lZWwuCj4KPk9ubHkgQ2xpbnRvbiBjYW4gdGFrZSBvdXIgbWluZCBvZmYgYSBzZXggc2NhbmRhbCB3aXRoIGFub3RoZXIgc2V4IHNjYW5kYWwuCj4KPldoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIE1vbmljYSBMZXdpbnNreSBhbmQgdGhlIHJlc3Qgb2YgdXM/Cj5XaGVuIHdlIHdhbnQgc29tZSBkaWNrIGluIHRoZSBXaGl0ZSBIb3VzZSwgd2UganVzdCB2b3RlLgo+Cj5UbyB3aGljaCBwcmVhY2hlciBkaWQgQmlsbCBnbyBmb3IgYWR2aWNlPwo+T3JhbCBSb2JlcnRzCj4KPkhvdyBkb2VzIEhpbGxhcnkgZmVlbD8KPlNoZSBtYXkgYmUgdGhlIEZJUlNUIExBRFksIGJ1dCBzaGUgd29uJ3QgYmUgdGhlIExBU1QhCj4KPk5ldyBzb3V2ZW5pciB3YXJkcm9iZTogSSB3YXMgYSBXaGl0ZSBIb3VzZSBpbnRlcm4gYW5kIGFsbCBJIGdvdCB3YXMgdGhpcyAKPnN0YWluIG9uIG15IFQtU2hpcnQuCj4KPkJpbGwncyBqdXN0IHByb3ZlbiB0aGVyZSdzIG9uZSBqb2IgaGUgd2FudHMgbW9yZSB0aGFuIGJlaW5nIFByZXNpZGVudC4KPgo+V2h5IGRvZXNuJ3QgTW9uaWNhIGVhdCBiYW5hbmFzPwo+U2hlIGNhbid0IGZpbmQgdGhlIHppcHBlci4KPgo+SG93IGRpZCBCaWxsIHJlcGx5IHJlZ2FyZGluZyBxdWVzdGlvbnMgb2YgImNvYWNoaW5nIiBNb25pY2EncyB0ZXN0aW1vbnk/Cj4iSXQgd2Fzbid0IHdvcmRzIHRoYXQgSSBwdXQgaW4gaGVyIG1vdXRoLiIKPgo+V2hhdCBkbyBCaWxsIGFuZCBSb3NzIFBlcm90IGhhdmUgaW4gY29tbW9uPwo+VGhleSBib3RoIGhlYXJkIGEgZ2lhbnQgc3Vja2luZyBzb3VuZCEKPgo+UHJlc2lkZW50IENsaW50b24gc2FpZCB0byBNb25pY2EsICJJIGRpZG4ndCB0ZWxsIHlvdSB0byBsaWUgaW4gdGhlIAo+ZGVwb3NpdGlvbi4gSSB0b2xkIHlvdSB0byBsaWUgaW4gVEhBVCBwb3NpdGlvbiEiCj4KPkJpbGwgQ2xpbnRvbidzIGZhdm9yaXRlIHBpY2stdXAgbGluZTogIkknZCBsb3ZlIHRvIG1lYXQgeW91IGluIHRoZSBPdmFsIAo+T2ZmaWNlLiIKPgo+SW4gYSBzdXJwcmlzZSBpbnRlcnZpZXcsIE1vbmljYSB3YXMgYXNrZWQgYWJvdXQgdGhlIGRldGFpbHMgb2YgaGVyIGxhdGUgCj5uaWdodCBtZWV0aW5ncyB3aXRoIHRoZSBQcmVzaWRlbnQuICJJIGNhbid0IHJlbWVtYmVyIHRoZSBkZXRhaWxzLCIgc2hlIAo+c2FpZCwKPiJidXQgSSBrbm93IHRoZSBhbnN3ZXIgaXMgb24gdGhlIHRpcCBvZiBteSB0b25ndWUhIgo+Cj5Ib3cgZG8geW91IGtub3cgQmlsbCBDbGludG9uIGlzIGRvbmUgaGF2aW5nIHNleD8KPldoZW4geW91IGhhdmUgdG8gd2lwZSB0aGUgIldoaXRlLVdhdGVyIiBvZmYgeW91ciBibG91c2UuCj4KPkRpZCBNb25pY2EgbGlrZSBoZXIgam9iIGF0IHRoZSBQZW50YWdvbj8KPlRoZSB3b3JrIHdhcyBPSywgYnV0IHRoZSBiZW5lZml0cyBzdWNrZWQuCj4KPklmIHRoZSBqb2Igd2FzIHNvIGJvcmluZywgd2h5IGRpZG4ndCBzaGUgcXVpdD8KPlNoZSBkaWRuJ3Qgd2FudCB0byBibG93IGFub3RoZXIgb3Bwb3J0dW5pdHkuCj4KPkl0J3MgZWFzeSB0byBzZWUgd2h5IE1vbmljYSBMZXdpbnNreSBnb3QgYSBqb2IgYXQgdGhlIFBlbnRhZ29uLgo+U2hlIHdhcyBhbHdheXMgc3Vja2luZyB1cCB0byB0aGUgQ29tbWFuZGVyIGluIENoaWVmLgo+Cj5XaG8gd2VyZSBNb25pY2EgTGV3aW5za3kncyBmYXZvcml0ZSBtaWxpdGFyeSBwZXJzb25uZWwgd2hlbiBzaGUgd29ya2VkIGF0IAo+dGhlIFBlbnRhZ29uPwo+U2VhbWVuLgo+Cj5Nb25pY2EgTGV3aXNreSBnYXZlIENsaW50b24gYSB0aWUgZm9yIGEgcHJlc2VudC4gVG8gcmV0dXJuIHRoZSBmYXZvciwgaGUgCj5nYXZlIGhlciBhIHBlYXJsIG5lY2tsYWNlLgo+Cj5XaGF0J3MgdGhlIHdvcnN0IHRoaW5nIEJpbGwgZXZlciBoZWFyZCBkdXJpbmcgc2V4Pwo+IkhvbmV5LCBJJ20gaG9tZSEiCj4KPlRoZSBkaWZmZXJlbmNlIGJldHdlZW4gQmlsbCBhbmQgaGlzIGRvZyBCdWRkeSBpcyB0aGF0IEJ1ZGR5IGNoYXNlcyBoaXMgb3duIAo+dGFpbC4KPgo+SG93IHdpbGwgQ2xpbnRvbiBidWlsZCBoaXMgYnJpZGdlIHRvIHRoZSAyMXN0IGNlbnR1cnk/Cj5BcHBhcmVudGx5IHdoaWxlIHBhcnQgb2YgYSBmZWRlcmFsIHByaXNvbiB3b3JrIHJlbGVhc2UgcHJvZ3JhbS4KPgo+V2hhdCBkb2VzIEJpbGwgdGVsbCBIaWxsYXJ5IGFmdGVyIHNleD8KPk5vdGhpbmcsIHNoZSBoZWFycyBhYm91dCBpdCBvbiB0aGUgZXZlbmluZyBuZXdzIQo+Cj5UaGlzIGNhc2UgcHJvdmVzIHRoYXQgd2hlbiB5b3UgbW92ZSBmcm9tIExpdHRsZSBSb2NrIHRvIFdhc2hpbmd0b24sIHlvdSBnZXQgCj50byBoYXJhc3MgYmV0dGVyIGxvb2tpbmcgd29tZW4uCj4KPldoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIEJpbGwgQ2xpbnRvbiBhbmQgaGlzIGRvZyBCdWRkeT8KPk9uZSB0cmllcyB0byBodW1wIHRoZSBsZWcgb2YgZXZlcnkgd29tYW4gaW4gdGhlIFdoaXRlIEhvdXNlLCB0aGUgb3RoZXIgaXMgYSAKPmNob2NvbGF0ZSBsYWIuCj4KPkFpZGUgKHRvIFByZXNpZGVudCk6IEtlbm5ldGggU3RhcnIgc3Vja3MhCj5CaWxsOiBXZWxsLCBzZW5kIGhpbSByaWdodCBpbiEKPgo+V2hhdCBkbyBCaWxsIENsaW50b24gYW5kIERlbm5pcyBSb2RtYW4gaGF2ZSBpbiBjb21tb24/Cj5UaGV5J3JlIGJvdGggcmVib3VuZGluZyBjaGFtcHMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBwcm9mZXNzaW9ucy4KPgo+QWZ0ZXIgYSBtZWV0aW5nIHdpdGggdGhlIFBvcGUsIEJpbGwgQ2xpbnRvbiBoZWxkIGEgcHJlc3MgY29uZmVyZW5jZSBhbmQgCj5hbm5vdW5jZWQgdGhhdCB0aGV5IGhhZCBhIHZlcnkgc3VjY2Vzc2Z1bCBjb25mZXJlbmNlIGFuZCBoYWQgYWdyZWVkIG9uIAo+YWJvdXQgNjAlIG9mIHdoYXQgdGhleSBkaXNjdXNzZWQuIFdoZW4gYXNrZWQgd2hhdCB0aGV5IGRpc2N1c3NlZCwgQ2xpbnRvbiAKPnJlcGxpZWQ6ICJUaGUgVGVuIGNvbW1hbmRtZW50cy4iCj4KPldoYXQgZGlkIFlhc3NhciBBcmFmYXQgc2F5IHRvIEJpbGwgQ2xpbnRvbj8KPkdvYXRzIGRvbid0IHRhbGsuCj4KPldoYXQncyBCaWxsIENsaW50b24ncyBmYXZvcml0ZSBiaXJkPwo+VGhlIFJvdW5kLUNoZWVrZWQgUm9kc3Vja2VyLCBpdCdzIHJhcmUsIGJ1dCBuYXRpdmUgdG8gYWxsIHBhcnRzIG9mIHRoZSAKPndvcmxkLgo+Cj5XaGVuIExpbmRhIFRyaXBwIHRvbGQgTGV3aW5za3kgdGhhdCBzdWNraW5nIHVwIHRvIHRoZSBib3NzIHdvdWxkIGdldCBoZXIgCj5haGVhZCwgc2hlIGRpZG4ndCBtZWFuIGl0IHF1aXRlIHNvIGxpdGVyYWxseS4KPgo+V2h5IGRpZG4ndCBCaWxsIHRha2UgTW9uaWNhIG91dCB0byBkaW5uZXI/Cj5UaGVyZSB3YXMgYWx3YXlzIHBsZW50eSB0byBlYXQgaW4gdGhlIG9mZmljZS4KPgo+V2h5IGlzIGR1c3QgcGlsaW5nIHVwIGluIHRoZSBXaGl0ZSBIb3VzZT8KPkJlY2F1c2UgS2VubmV0aCBTdGFyciB0b29rIGF3YXkgQ2xpbnRvbidzIGJlc3QgSG9vdmVyLgo+Cj5XaHkgaXMgdGhlIHByZXNzIHJlZmVycmluZyB0byBpdCBhcyBTd2FsbG93Z2F0ZT8KPkJlY2F1c2UgaXQncyBhIGZ1bGwgYmxvd24gY3Jpc2lzLgo+Cj5XaGF0IGRvIFdoaXRlIEhvdXNlIEludGVybnMgYW5kIFNhZGRhbSBIdXNzZWluIGhhdmUgaW4gY29tbW9uPwo+Q2xpbnRvbiB3YW50cyB0byBicmluZyB0aGVtIGJvdGggdG8gdGhlaXIga25lZXMuCj4KPldoYXQncyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGJpbGwgY2xpbnRvbiBhbmQgdGhlIFRpdGFuaWM/Cj5Pbmx5IDE1MDAgd2VudCBkb3duIG9uIHRoZSBUaXRhbmljLgo+Cj5XaGF0J3MgdGhlIG5ldyBnYW1lIHRoZXkncmUgcGxheWluZyBpbiB0aGUgV2hpdGUgSG91c2U/Cj5Td2FsbG93IHRoZSBMZWFkZXIuCj4KPldoYXQgZG9lcyBNb25pY2EgTGV3aW5za3kgaGF2ZSBvbiBoZXIgUmVzdW1lPwo+IlNhdCBvbiB0aGUgUHJlc2lkZW50aWFsIFN0YWZmIgo+Cj5JbiBhIHN1cnZleSBvZiBBbWVyaWNhbiB3b21lbiwgd2hlbiBhc2tlZCwgIldvdWxkIHlvdSBzbGVlcAo+d2l0aCBQcmVzaWRlbnQgY2xpbnRvbiIsIDg2JSByZXBsaWVkLCAiTm90IGFnYWluIgo+Cj5XaGF0J3MgdGhlIG5ldyBwcmVzcyBuYW1lIGZvciB0aGUgbGF0ZXN0IFByZXNpZGVudGlhbCBzY2FuZGFsPwo+Rm9ybmlnYXRlLgo+Cj5XaGF0IHBvc2l0aW9uIGRpZCBNb25pY2EgTGV3aW5za3kgaGF2ZSBhdCB0aGUgV2hpdGUgSG91c2U/Cj5NaXNzaW9uYXJ5Cj4KPkhvdyBpcm9uaWMuLi4gdGhpcyBpcyB0aGUgc2Vjb25kIHRpbWUgaW4gaGlzdG9yeSBhICJEZWVwIFRocm9hdCIgaGFzIGJlZW4gCj5hdCB0aGUgY2VudGVyIG9mIGEgcHJlc2lkZW50aWFsIGNvbnRyb3ZlcnN5Lgo+Cj5JZiBLZW5uZXRoIFN0YXJyIGNhbiBleHRlbmQgaGlzIHByb2JlLCB3aGF0IGlzIHdyb25nIHdpdGggY2xpbnRvbiBkb2luZyB0aGUgCj5zYW1lPwo+Cj5XaHkgaXNuJ3QgY2xpbnRvbiBzYXlpbmcgdG9vIG11Y2ggYWJvdXQgdGhlIGFmZmFpcj8KPkhlJ3MgaG9waW5nIGl0IHdpbGwgUGV0ZXIgT3V0IGluIGEgZmV3IGRheXMuCj4KPldoYXQgZGlkIENsaW50b24gc2F5IHdoZW4gRnJhbmNpc2NvIER1cmFuIHN0YXJ0ZWQgc2hvb3RpbmcgYXQgdGhlIFdoaXRlIAo+SG91c2U/Cj5PaCBTaGl0IHlvdXIgaHVzYmFuZCdzIG91dHNpZGUgYW5kIGhlJ3MgcGlzc2VkIQo+Cj5XaGF0IGlzIEJpbGwncyBkZWZpbml0aW9uIG9mIHNhZmUgc2V4Pwo+V2hlbiBIaWxsYXJ5IGlzIG91dCBvZiB0b3duLgo+Cj5XaGF0IHdpbGwgQ2xpbnRvbidzIGRlZmVuc2UgdGVhbSBiZSBjYWxsZWQgaWYgaGUgc3RhbmRzIHRyaWFsPwo+VGhlIHdldCBkcmVhbSB0ZWFtLgo+Cj5XaGF0IGRpZCBQcmVzaWRlbnQgQ2xpbnRvbiBkbyB3aXRoIHRoZSB0d28gQWJvcnRpb24gQmlsbHMgdGhhdCBjYW1lIGFjcm9zcyAKPmhpcyBkZXNrPwo+SGUgcGFpZCB0aGVtLgo+Cj5XaGF0IGRvZXMgSGlsbGFyeSBDbGludG9uIGRvIGFmdGVyIHNoYXZpbmcgaGVyIHB1c3N5IGluIHRoZSBtb3JuaW5nPwo+U2hlIHB1dHMgYSBzdWl0IGFuZCB0aWUgb24gaGltIGFuZCBzZW5kcyBoaW0gb2ZmIHRvIHdvcmsuCj4KPldoeSBhcmUgc3RhZmYgY3V0cyBzbyBkaWZmaWN1bHQgZm9yIENsaW50b24/Cj5IZSBjYW4ndCBnaXZlIGEgd29tYW4gYSBwaW5rIHNsaXAgd2l0aG91dCBhc2tpbmcgaGVyIHRvIHRyeSBpdCBvbiBmaXJzdC4KPgo+V2h5IGRpZCBCaWxsIENsaW50b24gY3Jvc3MgdGhlIHJvYWQ/Cj5UbyBtZWV0IHRoZSBjaGljay4KPgo+V2h5IGRvZXMgSGlsbGFyeSB3ZWFyIHRoZSBwYW50cyBpbiB0aGUgV2hpdGUgSG91c2U/Cj5DYXVzZSBCaWxsIGNhbid0IGtlZXAgaGlzIG9uLgo+Cj5Nb3N0IHBlb3BsZSBhcmUgY29uY2VybmVkIGFib3V0IEFJRFMgd2hlbiBoYXZpbmcgc2V4Li4uLi4uCj4uLi4uLkJpbGwgaXMgd29ycmllZCBhYm91dCB3aGV0aGVyIHRoZSBhaWRlcyB3aWxsIGhhdmUgc2V4Lgo+Cj5XaHkgZG9lcyBjbGludG9uIHdpc2ggaGUgd2FzIGxpa2UgVGVkIEtlbm5lZHk/Cj5DYXVzZSBLZW5uZWR5IGhhcyBhbiBleC13aWZlIGFuZCBhIGRlYWQgZ2lybGZyaWVuZC4KPgo+V2hvIGlzIHRoZSBvbmx5IHdvbWFuIGluIHRoZSBXaGl0ZSBIb3VzZSBub3QgaGF2aW5nIHNleCB3aXRoIEJpbGw/Cj5IaWxsYXJ5Lgo+CgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHNjaGVjaGUgKFJvY2h1cywgIDcuIEp1biAxOTk5LCAyMToxNTozMSk6CkF1cyBkZS50YWxrLmpva2VzOgpFaW4gVHNjaGVjaGUga29tbXQgenVtIEF1Z2VuYXJ6dC4gRGllc2VyIGhhZWx0IGltIGltIFJhaG1lbiBkZXIKVW50ZXJzdWNodW5nIGVpbmUgQnVjaHN0YWJlbnRhZmVsIGhpbi4KQXVmIGRpZXNlciBzdGVodDogQVFXUlBWWE1EVEVSS1RTQ0gKIktvZW5uZW4gU2llIGRhcyBsZXNlbj8iLCBmcmFndCBkZXIgQXVnZW5hcnp0LgoiTGVzZW4/Iiwgc2FndCBkZXIgVHNjaGVjaGUgZXJzdGF1bnQsICJJY2gga2VubmUgZGllc2VuIEtlcmwuLi4uISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhlaGUgKEFyaywgIDkuIEp1biAxOTk5LCAyMDoyOTo1OSk6CgpUSEUgQk9TUyBBU0tFRCBGT1IgQSBMRVRURVIgREVTQ1JJQklORyBCT0IgU01JVEg6CgpCb2IgU21pdGgsIG15IGFzc2lzdGFudCBwcm9ncmFtbWVyLCBjYW4gYWx3YXlzIGJlIGZvdW5kCmhhcmQgYXQgd29yayBpbiBoaXMgY3ViaWNsZS4gQm9iIHdvcmtzIGluZGVwZW5kZW50bHksIHdpdGhvdXQKd2FzdGluZyBjb21wYW55IHRpbWUgdGFsa2luZyB0byBjb2xsZWFndWVzLiBCb2IgbmV2ZXIKdGhpbmtzIHR3aWNlIGFib3V0IGFzc2lzdGluZyBmZWxsb3cgZW1wbG95ZWVzLCBhbmQgaGUgYWx3YXlzCmZpbmlzaGVzIGdpdmVuIGFzc2lnbm1lbnRzIG9uIHRpbWUuIE9mdGVuIEJvYiB0YWtlcyBleHRlbmRlZAptZWFzdXJlcyB0byBjb21wbGV0ZSBoaXMgd29yaywgc29tZXRpbWVzIHNraXBwaW5nIGNvZmZlZQpicmVha3MuIEJvYiBpcyBhIGRlZGljYXRlZCBpbmRpdmlkdWFsIHdobyBoYXMgYWJzb2x1dGVseSBubwp2YW5pdHkgaW4gc3BpdGUgb2YgaGlzIGhpZ2ggYWNjb21wbGlzaG1lbnRzIGFuZCBwcm9mb3VuZAprbm93bGVkZ2UgaW4gaGlzIGZpZWxkLiBJIGZpcm1seSBiZWxpZXZlIHRoYXQgQm9iIGNhbiBiZQpjbGFzc2VkIGFzIGEgaGlnaC1jYWxpYmVyIGVtcGxveWVlLCB0aGUgdHlwZSB3aGljaCBjYW5ub3QgYmUKZGlzcGVuc2VkIHdpdGguIENvbnNlcXVlbnRseSwgSSBkdWx5IHJlY29tbWVuZCB0aGF0IEJvYiBiZQpwcm9tb3RlZCB0byBleGVjdXRpdmUgbWFuYWdlbWVudCwgYW5kIGEgcHJvcG9zYWwgd2lsbCBiZQpleGVjdXRlZCBhcyBzb29uIGFzIHBvc3NpYmxlLgoKU2QKUHJvamVjdCBMZWFkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQSBNRU1PIFdBUyBTT09OIFNFTlQgRk9MTE9XSU5HIFRIRSBMRVRURVI6CgpUaGF0IGlkaW90IHdhcyByZWFkaW5nIG92ZXIgbXkgc2hvdWxkZXIgd2hpbGUgSSB3cm90ZSB0aGUKcmVwb3J0IHNlbnQgdG8geW91IGVhcmxpZXIgdG9kYXkuIEtpbmRseSByZWFkIG9ubHkgdGhlIG9kZApudW1iZXJlZCBsaW5lcyAoMSwgMywgNSwgLi4uKS4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplIFdpdHpsZSAoQW1hcnlsbGlzLCAxNC4gSnVuIDE5OTksIDAwOjUwOjQ3KToKU2FndCBkZXIgQ2hlZiB6dW0gQW5nZXN0ZWxsdGVuOgoiS29lbm5lbiBTaWUgc3VidHJhaGllcmVuPyIKIk5hIGtsYXIuIgoiUHJpbWEuIERhbm4gemllaGVuIFNpZSBhYi4uLiIgCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPc3NpLVdpdHogKEFtYXJ5bGxpcywgMTQuIEp1biAxOTk5LCAwMDo1MjozMSk6CkVpbiBPc3RkZXV0c2NoZXIgaXN0IGluIGRlbiBXZXN0ZW4gZ2VmbG9oZW4gdW5kIG1lbGRldCBzaWNoIGJlaW0KRWlud29obmVybWVsZGVhbXQsIHVtIHNpY2ggYW56dW1lbGRlbiB1bmQgc2VpbmVuIFBlcnNvbmFsYXVzd2VpcyB1c3cuIHp1CmJlYW50cmFnZW4uIE5hY2hkZW0gZGVyIEJlYW10ZSBhbGxlcyBhdWZnZW5vbW1lbiBoYXQsIG1laW50IGVyOgoiU28sIGpldHp0IGJyYXVjaGUgaWNoIGZ1ZXIgZGllIFN0YXRpc3RpayBudXIgbm9jaCBkZW4gR3J1bmQgZnVlciBJaHJlIEZsdWNodAotCndhcmVuIHNpZSBwb2xpdGlzY2ggdmVyZm9sZ3Q/IgoiTmVlISIKIkhhYmVuIFNpZSBWZXJ3YW5kdGUgaGllcj8iCiJPb2NoIG5pc2NoISIKIkhhdHRlbiBTaWUgZGVubiB3aXJ0c2NoYWZ0bGljaGUgUHJvYmxlbWU/IgoiTmVlLCB3aXJ0c2Nob2Z0bGlzY2ggZ2luZ3MgbWVyIG9vY2ggZ3VkLiIKIkphLCB3YXJ1bSBzaW5kIFNpZSBkZW5uIGRvcnQgYWJnZWhhdWVuPyIKIklzY2ggZ29ubmQnIGRlIFNwcm9jaGUgbmlzY2ggbWVyIGhvZXJuLi4uIgoKQW1hKiwga2ljaGVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyaWthZGVsbGVuIChHdWlsZG8sIDE0LiBKdW4gMTk5OSwgMTE6NTA6MDMpOgpNYW5uIGFuIGRlciBXdWVyc3RjaGVuYnVkZTogIkljaCBoYWV0dCBnZXJuIG5lIEZyaWthZGVsbGUgbWl0IEJyb2V0Y2hlbi4iCkRlciBWZXJrYWV1ZmVyIHJlaWNodCBpaG0gbmUgRnJpa2FkZWxsZS4KIlVuZCBkYXMgQnJvZXRjaGVuPyIKIklzdCBzY2hvbiBkcmluLiIKIk5lZSwgaWNoIG1laW50ZSBlaW4gRXh0cmEtQnJvZXRjaGVuLiIKIkRhcyBpc3QgYXVjaCBzY2hvbiBkcmluLiIKCk1haGx6ZWl0LApHdWlsZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGcmlrYWRlbGxlbiAoQWNyaW1vbiwgMTQuIEp1biAxOTk5LCAxOTozOTowMyk6Cn4jISBybj1HdWlsZG8gcnQ9OTI5MzUzODAzIHJnPXdpdHplCn4jISB0aWQ9OTI5MzUzODAzCkRhcyBHYW56ZSBub2NobWFsIGZ1ZXIgZGllIFN0dWRlbnRlbiBkZXIgc3VlZGxpY2hlcmVuIExhZW5kZXI6CgpNYW5uIGFuIGRlciBXdWVyc3RjaGVuYnVkZTogIkkgaGFldHQgZ2VybiBhIEZsZWlzY2hwZmxhbnplcmwgbWl0IFNlbW1pLiIKRGVyIFZlcmthZXVmZXIgcmVpY2h0IGlobSBlaW4gRmxlaXNjaHBmbGFuemVybC4KIlVuZCBkaWUgU2VtbWVsPyIKIklzIHNjaG8gZHJpbi4iCiJOYWEsIGkgaGFiIGRpZSBTZW1taSBkcnVtaGVydW0gZ21vYW50LiIKIkRpZSAtLSBoYXQgc2kgZGVtIEZsZWlzY2hwZmxhbnplcmwgYW5nZW5hZWhlcnQuIgoKQW4gR3VhZG4sCkFjcmltb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnJpa2FkZWxsZW4gKFdpZGV3aXR0LCAxNC4gSnVuIDE5OTksIDIzOjA3OjM4KToKfiMhIHJuPUFjcmltb24gcnQ9OTI5MzgxOTQzIHJnPXdpdHplCn4jISB0aWQ9OTI5MzUzODAzCkhzdGVsIC4uLgoKV2VubiBkdSBtaXQgU3VlZGxpY2hlbiBMYWVuZGVybiBPZXN0ZXJyZWljaCBtZWluc3QsIGlzIEZsZWlzY2hwZmxhbnplcmwKa29ycmVrdCwgd2VubiBkdSBhYmVyIEJheWVybiBtZWluc3QsIGRhbm4gaGVpc3N0IGRhcyBGbGVpc2Noa3VlY2hsZSAhIQoKV2lkZXdpdHQgYmVzdGVodCBkYXJhdWYgIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRnJpa2FkZWxsZW4gKFd1cnplbCwgMTQuIEp1biAxOTk5LCAyMzoxMDowMik6Cn4jISBybj1XaWRld2l0dCBydD05MjkzOTQ0NTggcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKbWFuIGxlcm50IGRvY2ggbmllIGF1cy4gei5iLiBoYWJlIGljaCBnZXJhZGUgZ2VsZXJudCwgZGFzcyBtdWVuY2hlbiBpcmdlbmR3bwppbiBvZXN0ZXJyZWljaCBsaWVndC4gamVkZW5mYWxscyBzYWd0IG1hbiBoaWVyIHp1IGZyaWthZGVsbGVuIGF1Y2ggZGllc2VzCm9taW5vZXNlICJmbGVpc2NocGZsYW56ZXJsIi4KCnd1cnplbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRnJpa2FkZWxsZW4gKFdvb2R5LCAxNC4gSnVuIDE5OTksIDIzOjEwOjQxKToKfiMhIHJuPVdpZGV3aXR0IHJ0PTkyOTM5NDQ1OCByZz13aXR6ZQp+IyEgdGlkPTkyOTM1MzgwMwpCbGVkc2lubi4gRmxlaXNjaGxhYmVybCBoYXNzdCBkZXMgYmVpIHVucy4KRnJvZ24gQW5hdG9sLCBkZXIgd29hIGRvIHNjaG8gbW9pIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRnJpa2FkZWxsZW4gKFdpZGV3aXR0LCAxNC4gSnVuIDE5OTksIDIzOjI4OjI5KToKfiMhIHJuPVd1cnplbCBydD05MjkzOTQ2MDIgcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKTmFqYSAuLi4gTXVlbmNoZW4gaXMgYXVjaCBuaWNodCB3aXJrbGljaCBpbSBTdWVkZW4gdW5kIGdlaG9lcnQgYXVjaCBuaWNodCBzbwpyZWNodCB6dSBCZXllcm4gOikKCndpZGV3aXR0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGcmlrYWRlbGxlbiAoQXBzdSwgMTUuIEp1biAxOTk5LCAwMTozNDo1Mik6Cn4jISBybj1XaWRld2l0dCBydD05MjkzOTU3MDkgcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKQWxsZXMgc3VlZGxpY2ggdm9uIEhhbWJ1cmcgZ2Vob2VydCBzY2hvbiB6dSBCYXllcm4gTm9yZHdlc3QhCgpBcHN1LCBlaW4gYGF1ZiBkaWUgRGF1ZXIgZ2lidHMgbnVyIEZyaWVzZW5wb3dlciFgLUZhZWhuY2hlbiBzY2h3ZW5rZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRnJpa2FkZWxsZW4gKE1haGF0bXUsIDE1LiBKdW4gMTk5OSwgMTA6NDU6MTkpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTkyOTQzMDg3NSByZz13aXR6ZQp+IyEgdGlkPTkyOTM1MzgwMwpTYWNoIGRvY2gsIGRpZSBQcmV1c3NlbiBoYWV0dGVuIGRlbiBWZXJsaWVyZXIgZGVtIGFuZGVyZW4gVmVybGllcmVyIGxhc3Nlbgpzb2xsZW4uIERpZSBxdWF0c2NoZW4gamEgZWggbnVyIHNvLCBkYXMgc2llIHNpY2ggdW50ZXJlaW5hbmRlciB2ZXJzdGVoZW4uCgpNYWhhdG11IHNjaHdlbmt0ICdCYXllcm4genUgT2VzdGVycmVpY2gnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRnJpa2FkZWxsZW4gKFJvbmRhLCAxNS4gSnVuIDE5OTksIDE4OjEzOjMxKToKfiMhIHJuPVd1cnplbCBydD05MjkzOTQ2MDIgcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKU28gbmVuIFF1YXRzY2ggLSBiZWkgdW5zIGhlaXNzZW4gZGllIEJpZXN0ZXIgIktsdW1iYXRzY2hlIiEKKE9rLCBuaWNodCBiZWkgZGllc2VuIHN0dXJlbiBXZXN0ZmFsZW4gaGllci4uLiBiZWkgdW5zIGluIGRlciBGYW1pbGllIGhhbHQgOykKKQoKQXVjaCBpaHJlbiBTZW5mIGRhenUgZ2ViZW5kICpkYWJlaSBzY2htZWNrZW4gZGllIG1pdCBLYXJ0b2ZmZWxzYWxhdCB2aWVsCmJlc3NlcioKClJvbmRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpadSB3ZW5pZyBsb3MgaW4gZGVyIE1QQT8gKFJvbmRhLCAxNS4gSnVuIDE5OTksIDE4OjE4OjQ3KToKQXUgd2VoLCBlcyBnaWJ0IGltIEludGVybmV0IG5vY2ggbWVociBMZXV0ZSwgZGllIHNvIHZlcnJ1ZWNrdGUgQXJ0aWtlbCBwb3N0ZW4Kd2llIGhpZXIgaW4gZGVyIE1QQSAtIHNjaGF1dCBFdWNoIGVpbmZhY2ggbWFsIApkZS5hbHQuZmFuLmFsZGkKYW4gLSBpY2ggaGFiIG5vY2ggbmllIGVpbmUgc28gaXJyZSBOZXdzZ3JvdXAgd2llIGRpZSBnZWZ1bmRlbi4uLiAKClZpZWwgU3Bhc3MgYmVpbSBMZXNlbiwKClJvbmRhCgpQczogVW5kIGRpZSBFaW5rYXVmc3NjaGxhbmdlIG1pdCBkZW0gbWVnYXZvbGxlbiBFaW5rYXVmc3dhZ2VuIHZvciBlaW5lbSBpc3QKZG9jaCBpbW1lciBkaWUgc2NobmVsbHN0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFp1IHdlbmlnIGxvcyBpbiBkZXIgTVBBPyAoUm9jaHVzLCAxNS4gSnVuIDE5OTksIDE4OjE5OjI1KToKfiMhIHJuPVJvbmRhIHJ0PTkyOTQ2MzUyNyByZz13aXR6ZQp+IyEgdGlkPTkyOTQ2MzUyNwpFcyBnaWJ0IGF1Y2ggYWx0LmZhbi5sZWdvLCB3ZW5uIGljaCBtaWNoIG5pY2h0IGlycmUuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEZyaWthZGVsbGVuIChTb25nb2t1LCAxNS4gSnVuIDE5OTksIDE4OjU1OjQxKToKfiMhIHJuPVJvbmRhIHJ0PTkyOTQ2MzIxMSByZz13aXR6ZQp+IyEgdGlkPTkyOTM1MzgwMwpEZXMgc2luIFdlY2thZGVsbGUuIGF3d2VyIG51ciwgd2VubiBnZW51Y2ggV2VjayBkcmlubiBzaW4uCgpTYXlvdW5hcmEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFp1IHdlbmlnIGxvcyBpbiBkZXIgTVBBPyAoU29uZ29rdSwgMTUuIEp1biAxOTk5LCAxODo1NzowMSk6Cn4jISBybj1Sb2NodXMgcnQ9OTI5NDYzNTY1IHJnPXdpdHplCn4jISB0aWQ9OTI5NDYzNTI3CmFsdC5mYW4ubXBhPz8/CmFsdC5mYW4ubWcubWFnaWVyPz8/CgpTYXlvdW5hcmEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGcmlrYWRlbGxlbiAoU2lsdmFuYSwgMTUuIEp1biAxOTk5LCAyMTowNTozMyk6Cn4jISBybj1Sb25kYSBydD05Mjk0NjMyMTEgcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKSG0uLi4gQmVpIHVucyBoZWlzc2VuIGRpZSBCcmVtc2tsb2V0emUgLSB1bmQgZGFzIGlzdCBOSUNIVCBkZXIgR3J1bmQsIHdpZXNvCmljaCBkaWUgbmljaHQgZXNzZS4uLgoKU2lsdmFuYSAtIG9zdHdlc3RmYWVobGlzY2gsIHN0dXIsIHF1aXJrZW5kb3JwZXJpbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBadSB3ZW5pZyBsb3MgaW4gZGVyIE1QQT8gKFRydWcsIDE1LiBKdW4gMTk5OSwgMjE6Mzg6MTEpOgp+IyEgcm49Um9jaHVzIHJ0PTkyOTQ2MzU2NSByZz13aXR6ZQp+IyEgdGlkPTkyOTQ2MzUyNwpBbmdlYmxpY2ggc29sbCBlcyBqYSBhdWNoIGVpbmUgR3J1cHBlIGFsdC5mYW4uYmlsbC1nYXRlcyBnZWJlbiA6KQoKVHJ1Zy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZyaWthZGVsbGVuIChaYXJuaXlhLCAxNi4gSnVuIDE5OTksIDA4OjQ5OjA1KToKfiMhIHJuPVd1cnplbCBydD05MjkzOTQ2MDIgcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKaW4gS29lbG4gc2FndCBtYW4gIk1hbnNhcmRlbmZpbGV0IiwgYWJlciBlcmtsYWVyZW4ga2FubiBtYW4gZGFzIG5pY2h0IDopCgpNYXJjCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXdW5kZXIgZGVyIFNwcmFjaHdpc3NlbnNjaGFmdC4uLiAoTWllemUsIDE2LiBKdW4gMTk5OSwgMjI6MjU6MDQpOgoKCkZhbGxzIElociBlcyBub2NoIG5pY2h0IHd1c3N0ZXQ6IG1hbiBrYW5uIHNpY2ggaW0gR2VzYW5nc3VudGVycmljaHQgYXVjaApsaW5ndWlzdGlzY2ggYmlsZGVuLi4uCgpXYWhyZSBCZWdlYmVuaGVpdDoKCkxlaHJlcjogRGFzICd1JyBpc3QgZGFzIEEgdW5kIE8hCgoKSmV0enQgd2lzc3QgaWhycyEgClwKCgpNaWV6ZSAtIGdyaW5zdCBpbW1lcm5vY2guCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFsbHNjaHVsZSAuLi4gKE5pZ2h0LCAxNi4gSnVuIDE5OTksIDIyOjMwOjIwKToKV2llIHVudGVyc2NoZWlkZXQgc2ljaCBlaW4gRmFsbCBhdXMgZGVtIDEuIHVuZCBlaW4gRmFsbCBhdXMgZGVtIDExLiBTdG9ja3dlcmsKZWluZXMgSGF1c2VzIC4uLgoKMS5TdG9jazogKkJ1bW0qIEFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWggLi4uCgoxMS5TdG9jazogQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFoICpCdW1tKgoKICAgICAgICAgICAgTmlnaHQgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmFsbHNjaHVsZSAuLi4gKE5pZ2h0LCAxNi4gSnVuIDE5OTksIDIyOjMxOjM4KToKfiMhIHJuPU5pZ2h0IHJ0PTkyOTU2NTAyMCByZz13aXR6ZQp+IyEgdGlkPTkyOTU2NTAyMApWaWVsbGVpY2h0IHdhZXJlICpQTEFUU0NIKiBhbmdlbWVzc2VuZXIqIAoKICAgICAgICAgICAgICAgIE5pZ2h0IDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gSHVobi4uLiB3YXMgbnVuPyA6KSAoVHN1bmFtaSwgMTguIEp1biAxOTk5LCAwOTo0Mjo1NCk6CkVyZ2VibmlzIGVpbmVyIFVtZnJhZ2UgenVyIEZyYWdlOgogICAgCiAgICBXQVJVTSBVRUJFUlFVRVJURSBEQVMgSFVITiBESUUgU1RSQVNTRT8KICAgIAogICAgS0lOREVSR0FFUlRORVJJTjoKICAgIFVtIGF1ZiBkaWUgYW5kZXJlIFN0cmFzc2Vuc2VpdGUgenUga29tbWVuLgogICAgCiAgICBQTEFUTzoKICAgIEZ1ZXIgZWluIGJlZGV1dGVuZGVyZXMgR3V0LgogICAgCiAgICBBUklTVE9URUxFUzoKICAgIEVzIGlzdCBkaWUgTmF0dXIgdm9uIEh1ZWhuZXJuLCBTdHJhc3NlbiB6dSB1ZWJlcnF1ZXJlbi4KICAgIAogICAgS0FSTCBNQVJYOgogICAgRXMgd2FyIGhpc3RvcmlzY2ggdW52ZXJtZWlkbGljaC4KICAgIAogICAgVElNT1RIWSBMRUFSWToKICAgIFdlaWwgZGFzIGRlciBlaW56aWdlIEF1c2ZsdWcgd2FyLCBkZW4gZGFzIEVzdGFibGlzaG1lbnQgZGVtCiAgICBIdWhuIHp1Z2VzdGVoZW4gd29sbHRlLgogICAgCiAgICBTQUREQU0gSFVTU0VJTjoKICAgIERpZXMgd2FyIGVpbiB1bnByb3ZvemllcnRlciBBa3QgZGVyIFJlYmVsbGlvbiB1bmQgd2lyIGhhdHRlbgogICAgamVkZXMgUmVjaHQsIDUwIFRvbm5lbiBOZXJ2ZW5nYXMgYXVmIGRpZXNlcyBIdWhuIHp1IGZldWVybi4KICAgIAogICAgUk9OQUxEIFJFQUdBTjoKICAgIEhhYiBpY2ggdmVyZ2Vzc2VuLgogICAgCiAgICBDQVBUQUlOIEpBTUVTIFQuIEtJUks6CiAgICBVbSBkYWhpbiB6dSBnZWhlbiwgd28gbm9jaCBrZWluIEh1aG4gdm9yaGVyIHdhci4KICAgIAogICAgSElQUE9LUkFURVM6CiAgICBXZWdlbiBlaW5lcyBVZWJlcnNjaHVzc2VzIGFuIFRyYWVnaGVpdCBpbiBpaHJlcgogICAgQmF1Y2hzcGVpY2hlbGRydWVzZS4KICAgIAogICAgTE9VSVMgRkFSUkFLSEFOOgogICAgU2VoZW4gU2llLCBkaWUgU3RyYXNzZSByZXByYWVzZW50aWVydCBkZW4gc2Nod2FyemVuIE1hbm4uIERhcwogICAgSHVobiAidWViZXJxdWVydGUiIGRlbiBzY2h3YXJ6ZW4gTWFubiwgdW0gYXVmIGlobSBoZXJ1bXp1dHJhbXBlbG4gdW5kCiAgICBpaG4gbmllZHJpZyB6dSBoYWx0ZW4uCiAgICAKICAgIE1BUlRJTiBMVVRIRVIgS0lORywgSlIuOgogICAgSWNoIHNlaGUgZWluZSBXZWx0LCBpbiBkZXIgYWxsZSBIdWVobmVyIGZyZWkgc2VpbiB3ZXJkZW4sCiAgICBTdHJhc3NlbiB6dSB1ZWJlcnF1ZXJlbiwgb2huZSBkYXNzIGlocmUgTW90aXZlIGluIEZyYWdlIGdlc3RlbGx0IHdlcmRlbi4KICAgIAogICAgRUlOU1RFSU46CiAgICBPYiBkYXMgSHVobiBkaWUgU3RyYXNzZSB1ZWJlcnF1ZXJ0IGhhdCBvZGVyIGRpZSBTdHJhc3NlIHNpY2ggdW50ZXIKICAgIGRlbSBIdWhuIGJld2VndGUsIGhhZW5ndCB2b24gSWhyZW0gUmVmZXJlbnpyYWhtZW4gYWIuCiAgICAKICAgIEJVRERIQToKICAgIE1pdCBkaWVzZXIgRnJhZ2UgdmVybGV1Z25lc3QgRHUgRGVpbmUgZWlnZW5lIEh1ZWhuZXJuYXR1ci4KICAgIAogICAgUkFMUEggV0FMRE8gRU1FUlNPTjoKICAgIERhcyBIdWhuIHVlYmVycXVlcnRlIGRpZSBTdHJhc3NlIG5pY2h0IC4uLiBlcyB0cmFuc3plbmRpZXJ0ZSBzaWUuCiAgICAKICAgIEVSTkVTVCBIRU1JTkdXQVk6CiAgICBVbSB6dSBzdGVyYmVuLiBJbSBSZWdlbi4KICAgIAogICAgQ09MT05FTCBTQU5ERVJTOgogICAgSWNoIGhhYiBlaW5lcyB1ZWJlcnNlaGVuPwogICAgCiAgICBDTElOVE9OOgogICAgSWNoIHdhciB6dSBrZWluZXIgWmVpdCBtaXQgZGllc2VtIEh1aG4gYWxsZWluLgogICAgCiAgICBBTkRFUlNFTiBDT05TVUxUSU5HCiAgICBEZXJlZ3VsaWVydW5nIGF1ZiBkZXIgU3RyYXNzZW5zZWl0ZSBkZXMgSHVobnMgYmVkcm9odGUgc2VpbmUKICAgIGRvbWluYW50ZSBNYXJrcG9zaXRpb24uIERhcyBIdWhuIHNhaCBzaWNoIHNpZ25pZmlrYW50ZW4gSGVyYXVzZm9yZGVydW5nZW4KICAgIGdlZ2VudWViZXIsIGRpZSBLb21wZXRlbnplbiB6dSBlbnR3aWNrZWxuLCBkaWUgZXJmb3JkZXJsaWNoIHNpbmQsIHVtIGluCmRlbgogICAgbmV1ZW4gV2V0dGJld2VyYnNtYWVya3RlbiBiZXN0ZWhlbiB6dSBrb2VubmVuLiBJbiBlaW5lcgogICAgcGFydG5lcnNjaGFmdGxpY2hlbiBadXNhbW1lbmFyYmVpdCBtaXQgZGVtIEtsaWVudGVuIGhhdCBBbmRlcnNlbgogICAgQ29uc3VsdGluZyBkZW0gSHVobiBnZWhvbGZlbiwgZWluZSBwaHlzaXNjaGUgRGlzdHJpYnV0aW9uc3N0cmF0ZWdpZSAKICAgIHVuZCBVbXNldHp1bmdzcHJvemVzc2UgenUgdWViZXJkZW5rZW4uIFVudGVyIFZlcndlbmR1bmcgZGVzCiAgICBHZWZsdWVnZWwtSW50ZWdyYXRpb25zbW9kZWxscyAoR0lNKSBoYXQgQW5kZXJzZW4gZGVtIEh1aG4gZ2Vob2xmZW4sIHNlaW5lCiAgICBGYWVoaWdrZWl0ZW4sIE1ldGhvZG9sb2dpZW4sIFdpc3NlbiwgS2FwaXRhbCB1bmQgRXJmYWhydW5nCiAgICBlaW56dXNldHplbiwgdW0gZGllIE1pdGFyYmVpdGVyLCBQcm96ZXNzZSB1bmQgVGVjaG5vbG9naWVuIGRlcyBIdWhucyAKICAgIGZ1ZXIgZGllIFVudGVyc3R1ZXR6dW5nIHNlaW5lciBHZXNhbXRzdHJhdGVnaWUgaW5uZXJoYWxiIGRlcyBQcm9ncmFtbS0gCiAgICBNYW5hZ2VtZW50LVJhaG1lbnMgYXVzenVyaWNodGVuLiBBbmRlcnNlbiBDb25zdWx0aW5nIHpvZyBlaW4gZGl2ZXJzZXMKICAgIENyb3NzLVNwZWt0cnVtIHZvbiBTdHJhc3Nlbi1BbmFseXN0ZW4gdW5kIGJlc3RlbiBIdWVobmVybiBzb3dpZQogICAgQW5kZXJzZW4gQmVyYXRlcm4gbWl0IGJyZWl0Z2VmYWVjaGVydGVuIEVyZmFocnVuZ2VuIGluIGRlcgogICAgVHJhbnNwb3J0aW5kdXN0cmllIGhlcmFuLCBkaWUgaW4gMi10YWVnaWdlbiBCZXNwcmVjaHVuZ2VuIGlociB1ZWJlciAKICAgIGVpbmUgZ3Jvc3NlIFplaXRzcGFubmUgdm9uIGRlciBOYXR1ciBpbiBkZXIgQXJ0IGF1c2dld2FlaGx0LCBkYXNzIHNpZSAKICAgIGpldHp0IGdlbmV0aXNjaCBiZXJlaXQgc2luZCwgU3RyYXNzZW4genUgdWViZXJxdWVyZW4uCiAgICAKICAgIEVzIGdlaHQgbm9jaCBsYWVuZ2VyIGFscyBiZWkgQW5kZXJzZW4gQ29uc3VsdGluZzoKICAgIAogICAgTWNLSU5TRVk6CiAgICAKICAgIERlcmVndWxpZXJ1bmcgYXVmIGRlciBTdHJhc3NlbnNlaXRlIGRlcyBIdWhucyBiZWRyb2h0ZSBzZWluZQogICAgZG9taW5hbnRlIE1hcmtwb3NpdGlvbi4gRGFzIEh1aG4gc2FoIHNpY2ggc2lnbmlmaWthbnRlbiBIZXJhdXNmb3JkZXJ1bmdlbgogICAgZ2VnZW51ZWJlciwgZGllIEtvbXBldGVuemVuIHp1IGVudHdpY2tlbG4sIGRpZSBlcmZvcmRlcmxpY2ggc2luZCwgdW0gCiAgICBpbiBkZW4gbmV1ZW4gV2V0dGJld2VyYnNtYWVya3RlbiBiZXN0ZWhlbiB6dSBrb2VubmVuLiBJbiBlaW5lciAKICAgIHBhcnRuZXJzY2hhZnRsaWNoZW4gWnVzYW1tZW5hcmJlaXQgbWl0IGRlbSBLbGllbnRlbiBoYXQgTWNLaW5zZXkgZGVtIAogICAgSHVobiBnZWhvbGZlbiwgZWluZSBwaHlzaXNjaGUgRGlzdHJpYnV0aW9uc3N0cmF0ZWdpZSB1bmQKVW1zZXR6dW5nc3Byb3plc3NlCiAgICB6dSB1ZWJlcmRlbmtlbi4gVW50ZXIgVmVyd2VuZHVuZyBkZXMgR2VmbHVlZ2VsLUludGVncmF0aW9uc21vZGVsbHMKICAgIChHSU0pIGhhdCBNY0tpbnNleSBkZW0gSHVobiBnZWhvbGZlbiwgc2VpbmUgRmFlaGlna2VpdGVuLAogICAgTWV0aG9kb2xvZ2llbiwgV2lzc2VuLCBLYXBpdGFsIHVuZCBFcmZhaHJ1bmcgZWluenVzZXR6ZW4sIHVtIGRpZSAKICAgIE1pdGFyYmVpdGVyLCBQcm96ZXNzZSB1bmQgVGVjaG5vbG9naWVuIGRlcyBIdWhucyBmdWVyIGRpZSBVbnRlcnN0dWV0enVuZwogICAgc2VpbmVyIEdlc2FtdHN0cmF0ZWdpZSBpbm5lcmhhbGIgZGVzIFByb2dyYW1tLSBNYW5hZ2VtZW50LVJhaG1lbnMgCiAgICBhdXN6dXJpY2h0ZW4uIE1jS2luc2V5IHpvZyBlaW4gZGl2ZXJzZXMgQ3Jvc3MtU3Bla3RydW0gdm9uIAogICAgU3RyYXNzZW4tQW5hbHlzdGVuIHVuZCBiZXN0ZW4gSHVlaG5lcm4gc293aWUgTWNLaW5zZXkgQmVyYXRlcm4gbWl0IAogICAgYnJlaXRnZWZhZWNoZXJ0ZW4gRXJmYWhydW5nZW4gaW4gZGVyIFRyYW5zcG9ydGluZHVzdHJpZSBoZXJhbiwgZGllIGluIAogICAgMnRhZWdpZ2VuIEJlc3ByZWNodW5nZW4gaWhyIHBlcnNvZW5saWNoZXMgV2lzc2Vuc2thcGl0YWwsIHNvd29obCAKICAgIHN0aWxsc2Nod2VpZ2VuZCBhbHMgYXVjaCBkZXV0bGljaCwgYXVmIGVpbiBnZW1laW5zYW1lcyBOaXZlYXUgYnJhY2h0ZW4gCiAgICB1bmQgZGllIFN5bmVyZ2llbiBoZXJzdGVsbHRlbiwgdW0gZGFzIHVuYmVkaW5ndGUgWmllbCB6dSBlcnJlaWNoZW4sIAogICAgbmFlbWxpY2ggZGllIEVyYXJiZWl0dW5nIHVuZCBVbXNldHp1bmcgZWluZXMgdW50ZXJuZWhtZW5zd2VpdGVuIAogICAgV2VydGVyYWhtZW5zIGlubmVyaGFsYiBkZXMgbWl0dGxlcmVuIEdlZmx1ZWdlbHByb3plc3Nlcy4gRGllCkJlc3ByZWNodW5nZW4KICAgIGZhbmRlbiBpbiBlaW5lciBwYXJrYWVobmxpY2hlbiBVbWdlYnVuZyBzdGF0dCwgdW0gZWluZSB3aXJrdW5nc3ZvbGxlIAogICAgVGVzdGF0bW9zcGhhZWhyZSB6dSBlcmhhbHRlbiwgZGllIGF1ZiBTdHJhdGVnaWVuIGJhc2llcnQsIGF1ZiBkaWUgCiAgICBJbmR1c3RyaWUgZm9rdXNzaWVydCBpc3QgdW5kIGF1ZiBlaW5lIGtvbnNpc3RlbnRlLCBrbGFyZSB1bmQgCiAgICBlaW56aWdhcnRpZ2UgTWFya3RhdXNzYWdlIGhpbmF1c2xhZXVmdC4gTWNLaW5zZXkgaGF0IGRlbSBIdWhuIGdlaG9sZmVuLCAKICAgIHp1IGdsYXViZW4sIHNpY2ggdmVyYWVuZGVydCB6dSBoYWJlbiwgdW0gZXJmb2xncmVpY2hlciB6dSB3ZXJkZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRnJpa2FkZWxsZW4gKENhcmFkaHJhcywgMTguIEp1biAxOTk5LCAyMTozODowMik6Cn4jISBybj1XaWRld2l0dCBydD05MjkzOTU3MDkgcmc9d2l0emUKfiMhIHRpZD05MjkzNTM4MDMKV2FzIHJlZGVzdCBEdSBkYSBmdWVyICduIFNjaG1hcnJuLCBXaWRld2l0dC4gTmF0dWVybGljaCBoZWlzc3QKZGFzIGhpZXIgaW4gQmF5ZXJuIEZsZWlzY2hwZmxhbnplcmwsIGVpZ2VudGxpY2ggaGVpc3N0IGVzIG51ciBpbgpkZW4gbGVpY2h0IGJpcyBzY2h3ZXIgc2Nod2FlYmlzY2ggYW5nZWhhdWNodGVuIFRlaWxlbiBCYXllcm4gKHVuZCBkaWUKc2luZCBqYSBnYXIgbmljaHQgc28ga2xlaW4pIEZsZWlzY2hrdWVjaGxlLCBnZW5hdSB3aWUgaW4gQmFXdWUhCgogICBCZXJnY2hlbiBDYXJhZGhyYXMgLSBTdWVkZGV1dHNjaGVyIHZvbiBCYWRlbiBiaXMgTmllZGVyYmF5ZXJuClBTOiBKbyBtZWksIG1laHIgc29nIEkgbmVkIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGViZW5zd2Vpc2hlaXQgKEFtYXJ5bGxpcywgMjEuIEp1biAxOTk5LCAxMTozODo0MSk6CkVpbmUgTWF1cyBpc3QgYXVmIGRlciBGbHVjaHQgdm9yIGVpbmVyIEthdHplLiBTaWUgcmVubnQga3JldXogdW5kIHF1ZXIsIGRpZQpLYXR6ZSBpaHIgaW1tZXIgZGljaHQgYXVmIGRlbiBGZXJzZW4uClBsb2V0emxpY2ggd2lyZCBzaWUgYXVmIGVpbmVyIEt1aHdlaWRlIHZvbiBlaW5lbSByaWVzZW4gS3VoZmxhZGVuCnp1Z2VzY2guLi4uLi4sIG51ciBub2NoIGRlciBTY2h3YW56IGd1Y2t0IGhlcmF1cy4KRGFzIHNpZWh0IG5hdHVlcmxpY2ggZGllIEthdHplLCBwYWNrdCBkaWUgTWF1cyBhbSBTY2h3YW56IHVuZCBmcmlzc3Qgc2llLgoKV2FzIGxlcm5lbiB3aXIgZGFyYXVzPwoxLiBOaWNodCBqZWRlciwgZGVyIGRpY2ggYmVzY2hlaXNzdCwgaXN0IGRlaW4gRmVpbmQuCjIuIE5pY2h0IGplZGVyLCBkZXIgZGljaCBhdXMgZGVyIFNjaGVpc3NlIHppZWh0LCBpc3QgZGVpbiBGcmV1bmQuCjMuIFdlbm4gZHUgc2Nob25tYWwgaW4gZGVyIFNjaGVpc3NlIHN0ZWNrc3QsIHppZWggd2VuaWdzdGVucyBkZW4gU2Nod2FueiBlaW4hCgpBbWFyeWxsaXMgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZpZXMgKEFtYXJ5bGxpcywgMjEuIEp1biAxOTk5LCAxNzoyNjowNik6CldpcmQgZWluZXIgYmVpbSBBcnp0IGdlZnJhZ3Q6ICJXaWUgZ3Jvc3Mgc2luZCBTaWU/IgoiMSw4MG0sIEhlcnIgRG9rdG9yISIKIkljaCBiaW4gbmljaHQgZGVyIERva3RvciwgaWNoIGJpbiBkZXIgU2NocmVpbmVyLi4uIgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGZpZXMgKE5vdmFzdG9ybSwgMjEuIEp1biAxOTk5LCAxNzoyNjo0NCk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9OTI5OTc4NzY2IHJnPXdpdHplCn4jISB0aWQ9OTI5OTc4NzY2CkRlciBBcnp0IGlzdCBTY2hyZWluZXIgPwpNbW1tbW1tbWguCiAgICAgTm92YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGZpZXMgKEFtYXJ5bGxpcywgMjEuIEp1biAxOTk5LCAxNzoyNzoxOCk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9OTI5OTc4NzY2IHJnPXdpdHplCn4jISB0aWQ9OTI5OTc4NzY2Cm9rIG9rLCBkaWUgc3plbmUgc3BpZWx0IGltIEtyYW5rZW5oYXVzLi4uCgpBbWFyeWxsaXMsIHNjaG5lbGwgZGllIEJ1ZWhuZSB1bWJhdWVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1hbCBlaW4gc2F1YmxvZWRlciAoQW1hcnlsbGlzLCAyMS4gSnVuIDE5OTksIDE3OjI4OjMwKToKCkZyYXUgYmVpbSBQc3ljaGlhdGVyOiAiSGVyciBEb2t0b3IsIGljaCBob2VyZSBpbW1lciBTdGltbWVuLCBzZWhlIGFiZXIKbmllbWFuZGVuISIKIldhbm4gcGFzc2llcnQgSWhuZW4gZGFzPyIKIkltbWVyIGRhbm4sIHdlbm4gaWNoIHRlbGVmb25pZXJlLi4uIgoKQW1hLCBsYXV0ICJBVUEiIHNjaHJlaWVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFyIGhhciAoQmFtYnVsa28sIDIyLiBKdW4gMTk5OSwgMDk6MjU6MDIpOgoKVGhlIFRvcCAxMCBSZWFzb25zIFdoeSBJdCBTdWNrcyBUbyBCZSBBIERpY2sKCjEwLiBZb3UndmUgZ290IGEgaG9sZSBpbiB5b3VyIGhlYWQKOS4gIFlvdXIgbWFzdGVyIHN0cmFuZ2xlcyB5b3UgYWxsIHRoZSB0aW1lLgo4LiAgWW91ciBoZWFkIGlzIGRpc3Byb3BvcnRpb25hdGUgdG8gdGhlIHJlc3Qgb2YgeW91ciBib2R5Lgo3LiAgWW91IHNocmluayBpbiBjb2xkIHdhdGVyLgo2LiAgWW91IG5ldmVyIGdldCBhIGhhaXJjdXQuCjUuICBZb3UgYWx3YXlzIGhhbmcgYXJvdW5kIHdpdGggMiBudXRzLgo0LiAgWW91ciBjbG9zZXN0IG5laWdoYm9yIGlzIGFuIGFzc2hvbGUuCjMuICBZb3VyIGJlc3QgZnJpZW5kIGlzIGEgcHVzc3kuCjIuICBZb3VyIHNjYWxwIGdldHMgY3V0IG9mZiBpZiB5b3UncmUgSmV3aXNoIG9yIE11c2xpbS4KCkFuZCB0aGUgbnVtYmVyIG9uZSByZWFzb24gd2h5IGl0IHN1Y2tzIHRvIGJlIGEgRGljazoKMS4gIEV2ZXJ5dGltZSB5b3UgZ2V0IGV4Y2l0ZWQsIHlvdSB0aHJvdyB1cC4KCgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYXIgaGFyIChKYXNwZXIsIDIyLiBKdW4gMTk5OSwgMTY6NTk6MjgpOgp+IyEgcm49QmFtYnVsa28gcnQ9OTMwMDM2MzAyIHJnPXdpdHplCn4jISB0aWQ9OTMwMDM2MzAyCj44LiAgWW91ciBoZWFkIGlzIGRpc3Byb3BvcnRpb25hdGUgdG8gdGhlIHJlc3Qgb2YgeW91ciBib2R5LgoKa29tbXQgd29obCBhdWYgZGllIGxhZW5nZSBhbi4uLiBuYWphCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWndlaSBhcmJlaXRzbG9zZSBIb2x6ZmFlbGxlciAoU2x5Zm94LCAyNi4gSnVuIDE5OTksIDE3OjQyOjIzKToKWndlaSBhcmJlaXRzbG9zZSBIb2x6ZmFlbGxlciB1bnRlcmhhbHRlbiBzaWNoLgpGcmFndCBkZXIgZWluZTogIldvIGhhc3QgRHUgZGVubiBnZWFyYmVpdGV0LCBiZXZvciBEdSBhcmJlaXRzbG9zIGdld29yZGVuCmJpc3Q/IiBBbnR3b3J0ZXQgZGVyIGFuZGVyZTogIkluIGRlciBXdWVzdGUuIiAtICJBYmVyIGRhIGdpYnQncyBkb2NoIGdhciBrZWluCkhvbHohPyIgLSAiSmV0enQgbmF0dWVybGljaCBuaWNodCBtZWhyISIKCiAgU2x5Zm94CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGltIEZyZWliYWQgKEJ1enpjdXQsIDI4LiBKdW4gMTk5OSwgMTE6NTE6NTQpOgpFaW5lIGtsZWluZSBTdGFkdCBtaXR0ZW4gaW4gRGV1dHNjaGxhbmQuIEVzIGlzdCBlaW4gaGVpc3NlciBUYWcgdW5kIGFsbGUgc2luZAppbSBGcmVpYmFkIGJlaSBkZW4gRG9yZm1laXN0ZXJzY2hhZnRlbiBpbSBXZXR0c2Nod2ltbWVuLiBBbHMgZXMgYW4gZGllCjEwMC1tLUZyZWlzdGlsIGdlaHQsIGtvbW10IG5vY2ggZWluZSBNdXR0ZXIgbWl0IGlocmVuIEtpbmQgYW5nZXJhbm50LiBEZXIKU2NoaWVkc3JpY2h0ZXIgYmVzY2hhdXQgc2ljaCBkZW4ga2xlaW5lbiB1bmQgbWVpbnQ6IE1vbWVudCwgZGVyIGhhdCBqYSBuaWNodAptYWwgQXJtZSB1bmQgQmVpbmUsIHdpZSBzb2xsIGRlciBkYSBzY2h3aW1tZW4gdW5kIGRhbm4gYXVjaCBub2NoIHNjaG5lbGwgPwpEYXJhdWYgZGllIE11dHRlcjogSmEgZXIgc2Nod2ltbXQgbWl0IGRlbiBPaHJlbiAhCkFyZ2VsbmQgbmlja3QgZGVyIFNjaGlyaSB1bmQgbWFuIHRyYWVndCBkZW4gSnVuZ2VuIHp1bSBTdGFydGJsb2NrLgpCZWltIEFucGZpZmYgc2NobWVpc3N0IGVpbiBBc3Npc3RlbnQgZGVuIEtsZWluZW4gaW5zIFdhc3NlciwgZGVyIGdlaHQKbmF0dWVybGljaCB1bnRlciB3aWUgQmxlaSAuLi4KQWxzIGRpZSBlcnN0ZW4gU2Nod2ltbWVyIG5hY2ggNCBCYWhuZW4gd2llZGVyIGFua29tbWVuIHVuZCBkZXIgSnVuZ2Ugc2ljaAppbW1lcm5vY2ggbmljaHQgYmV3ZWd0IGhhdCwgZmFzc3Qgc2ljaCBlaW4gUmV0dHVuZ3NzY2h3aW1tZXIgZWluIEhlcnogdW5kCnNwcmluZ3QgaW5zIFdhc3NlciwgdW0gZGVuIEp1bmdlbiB6dSByZXR0ZW4uCkRpZSBXaWVkZXJiZWxlYnVuZ3N2ZXJzdWNoZSB6ZWlnZW4gV2lya3VuZyB1bmQgZGVyIEVydHJ1bmtlbmUga29tbXQgenUgc2ljaC4KTGVpc2UgdW5kIHJvZWNoZWxuZCBmbHVlc3RlcnQgZXI6IFdlbm4gaWNoIGRlbiBlcndpc2NoZSwgKmh1c3QqICpyb2VjaGVsKiBkZXIKbWlyIGRpZSBCYWRla2FwcGUgdWViZXJnZXpvZ2VuIGhhdCAuLi4KCiAgICAgICAgQnV6emkgKm5pY2h0IG1hbCBtaXQgZGVuIE9ocmVuIHdhY2tlbG4ga29lbm5lbmQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpoaWhpIChHYW5kbywgMjkuIEp1biAxOTk5LCAwOToxNjoxMSk6ClN0ZWh0IGVpbiBuYWNrdGVyIE1hbm4gdm9yIGVpbmVtIEVsZWZhbnRlbi4uCiAgIApkYSBzYWd0IGRlciBFbGVmYW50Li4uCiAgCndhcywgZGFtaXQgd2lsbHN0IGR1IGF0bWVuPwoKR2FuZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvIHNvIC4uLiAoQnV6emN1dCwgMjkuIEp1biAxOTk5LCAxMDo0OTo1Nik6CmViZW4gZ2VyYWRlIGltIEludGVybmV0IGdlc2ljaHRldCAuLi4KICAgICAgICB3d3cudG9ubGlnLmRlL3NjaG9rby5odG0KCiAgICAgICAgQnV6emkgKmFidGlwcGZhdWwqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW4uLi4gKEdyaW1tYm9ybiwgMjkuIEp1biAxOTk5LCAxMzowMjoxMSk6Ck1hbCBhYmdlc2VoZW4gdm9tIFNleCAtIEZyYXVlbiBuZXJ2ZW4gaW0gQmV0dC4gV2VubiBpY2ggdm9uIGRlciBFcm90aWsKZWlubWFsIGFic2VoZSwgaGFiZW4gbWlyIEZyYXVlbiBpbSBCZXR0IG5pY2h0cyBhbHMgQUVyZ2VyIGVpbmdlYnJhY2h0LgpNaXQgV2VobXV0IGRlbmtlIGljaCBtYW5jaG1hbCBhbiBkaWUgVGVlbmFnZXJ6ZWl0ZW4genVydWVjaywgaW4gZGVuZW4KaWNoCmVudHdlZGVyIGFsbGVpbiB1bmQgZW50c3Bhbm50IGRpZSBOYWNodHJ1aGUgZ2Vub3NzIG9kZXIgbnVyCnZvcnVlYmVyZ2VoZW5kIG1pdCBlaW5lciBGcmF1IGRhcyBCZXR0IGF1ZnN1Y2h0ZS4gRGllIFByb2JsZW1lIGZpbmdlbgplcnN0IHNvIG1pdApBbmZhbmcgendhbnppZyBhbiwgYWxzIG1hbiBkYXMgTmFjaHRsYWdlciAid2llIE1hbm4gdW5kIEZyYXUiIHRlaWx0ZSwKc3ByaWNoOiB2b20gRWluc2NobGFmZW4gYmlzIHp1bSBBdWZzdGVoZW4uIEhpZXJhdXMgbXVzcyBpY2ggZWluZSBnYW56CmJpdHRlcmUgQmlsYW56IHppZWhlbi4KIk5hZWNodGUgZGVzIEdyYXVlbnMiIGlzdCBub2NoIHVudGVydHJpZWJlbi4gQW0gVGFnZSBkdXJjaGF1cwphYmdla2xhZXJ0ZSwgenVwYWNrZW5kZSB1bmQgbW9kZXJuZSBGcmF1ZW4gbXV0aWVyZW4gYW5nZXNpY2h0cyB2b24KRmVkZXJrZXJuIHVuZApEYXVuZSBhdXNuYWhtc2xvcyB6dSB2ZXJ3b2VobnRlbiwgbGViZW5zdW50dWVjaHRpZ2VuLCBlZ29pc3Rpc2NoZW4KWmlja2VuLiBXaWUgaWNoIGpldHp0IGFuIGVpbmlnZW4gQmVpc3BpZWxlbiBzY2hsdWVzc2lnIGJld2Vpc2VuIHdlcmRlLgpCZWdpbm5lbiB3aXIgbWl0IGRlbSB1bmVyZnJldWxpY2hlbiBUaGVtYSAiTXVlY2tlbiIuIFZvcndlZyBtdXNzIGljaApzYWdlbiwgZGFzcyBpY2ggaW0gU29tbWVyIGdydW5kc2FldHpsaWNoIGdhbnogZ2VybiBuZWJlbiBlaW5lciBGcmF1CmxpZWdlLCB3ZWlsIGljaCBkYW5uIHZvbiBTdGVjaG11ZWNrZW4gdmVyc2Nob250IGJsZWliZS4gRGllIHN0dWVyemVuCnNpY2ggaW1tZXIgYXVmIG1laW5lIFBhcnRuZXJpbi4gRGFzIGlzdCBiaXR0ZXIsIHR1dCBtaXIgcGVyc29lbmxpY2ggYXVjaAp3aXJrbGljaCBsZWlkLCBpc3QgYWJlciBub2NoIGxhbmdlIGtlaW4gR3J1bmQsIG1pY2ggZ3JvYiB3YWNoenVqYW1tZXJuOgoiSWNoIGJpbiB2b2VsbGlnIHplcnN0b2NoZW4iLiBNaXQgZWluZXIgU3RpbW1lLCBkaWUgaW0gR3JlbnpiZXJlaWNoCnp3aXNjaGVuIEh5c3RlcmllIHVuZCBOZXJ2ZW56dXNhbW1lbmJydWNoIG1vZHVsaWVydC4gRGVyIEF1ZnRyYWcgYW4KbWljaCwgZGVtIG1hZW5ubGljaGVuICJTaWNoZXJoZWl0c2JlYW10ZW4iLCBpc3Qga2xhcjogIlN0ZWggYXVmIHVuZCBnZWgKTXVlY2tlbiBqYWdlbiIuIEljaCB3ZWlzcyBuaWNodCwgd2FydW0gRnJhdWVuIHNlbGJzdCBrZWluZSBNdWVja2VuCmphZ2VuLiBXYXJ1bSBzaWUgaW0gQmV0dCBsaWVnZW5kIGRlbiBTcGFlaGVyIG1hY2hlbiwgYXVmIHNjaHdhcnplIFB1bmt0ZQphbiBkZXIgRGVja2UgZGV1dGVuIHVuZCAiRGEhIiBydWZlbi4gSWNoIHdlaXNzIHZvciBhbGxlbSBuaWNodCwgd2VzaGFsYgppY2ggaW1tZXIgd2llZGVyIGdhZWhuZW5kLCBtaXQgemVyemF1c3RlbSBIYWFyIHVuZCBlaW5lcgp6dXNhbW1lbmdlcm9sbHRlbiBaZWl0dW5nIGF1ZiBkZXIgTWF0cmF0emUgc3RlaGUgdW5kIGF1ZiBadXJ1ZiBUaWVyZQp0b3RzY2hsYWdlLgpTZXguLi4gYW0gbGllYnN0ZW4gaW4gZGVyIExvZWZmZWxjaGVuLVN0ZWxsdW5nLiBJY2ggbGllYmUgZGllc2UKU2NobGFmcG9zaXRpb24sIHdlaWwgc2llIG1pY2ggaW4gZGVtIEdydW5kdmVydHJhdWVuIGluIGRpZSBSaWNodGlna2VpdAptZWluZXMgRGFzZWlucyBiZXN0YWVya3QuIE51biBnaWJ0IGVzIGFiZXIgemFobHJlaWNoZSBGcmF1ZW4sIGRpZSBzaWNoCmFuZmFuZ3Mgc2VociBhbnNjaG1pZWdzYW0gZ2ViZW4gdW5kIGxlaWRlbnNjaGFmdGxpY2ggImxvZWZmZWxuIiwgc2ljaAphYmVyLCB3ZW5uIGVzIHVtIGRpZSBlbmRndWVsdGlnZSBTY2hsYWZwb3NpdGlvbiBnZWh0LCBhbHMgc2VocgpoYXJ0bGVpYmlnIGVyd2Vpc2VuLiBTaWUgc3Rvc3NlbiBzaWNoIG1pdCBkZXIgZWluZW4gSGFuZCB2b24gbWlyIGxvcywKZXJncmVpZmVuIG1pdCBkZXIgYW5kZXJlbiBIYW5kIGRpZSBlaWdlbmUgQmV0dGRlY2tlIHVuZCB2ZXJ0ZWlkaWdlbgpkaWVzZXMgUmVmdWdpdW0KbWl0IGVyYml0dGVydGVyIEdlZ2Vud2Voci4gVW5kIGljaCBtdXNzIGdlZHVsZGlnIHdhcnRlbiwgYmlzIGRpZQpNZWluZS1EZWNrZS1nZWhvZXJ0LW1pci1BdXRpc3RpbiBlbmRsaWNoIGluIGRlbiBTY2hsYWYgZ2VzdW5rZW4gaXN0IHVuZAppY2ggYmVnaW5uZW4ga2Fubiwgdm9yc2ljaHRpZyByb2JiZW5kLCB2ZXJsb3JlbmVzIFRlcnJhaW4KenVydWVja3p1Z2V3aW5uZW4uIFdlbm4gaWNoIGRhbm4sIG51bm1laHIgaGFsYmhlcnppZyBsb2VmZmVsbmQsIGluCnRpZWZlbiBTY2hsYWYgZ2VzdW5rZW4gYmluLCBrb21tdCBoYWV1ZmlnIHNjaG5lbGwgZGllIG5hZWNoc3RlCkdlbWVpbmhlaXQuIEVpbiBicnV0YWxlciBTdG9zcywgbWVpc3QgbWl0IGRlbSBFbGxib2dlbiBhdXNnZWZ1ZWhydCwKdHJpZmZ0IG1pY2ggaW4gZGllIFNlaXRlLiBJY2ggc2NocmVja2UgaG9jaCB1bmQgaG9lcmUgZWluZSBzY2huZWlkZW5kZQpTdGltbWU6ICJEdSBzY2huYXJjaHN0ISIuIFNvIHdhcyB3dWVyZGUgaWNoIG5pZSB0dW4uIEljaCBmaW5kZSBlcwpiZXphdWJlcm5kLCB3ZW5uIHNpZSBpbSBTY2hsYWYgcmVkZXQgb2RlciBlaW4gYmlzc2NoZW4gdm9yIHNpY2ggaGluCmJsdWJiZXJ0LiBOaWUgd3VlcmRlIGljaCBtaXQgZGVtIEVsbGJvZ2VuIHN0b3NzZW4uIEFiZXIgRnJhdWVuIGlzdCBlcyBqYQplZ2FsLCBvYiBtYW4gZnJ1ZWhtb3JnZW5zIGVpbmVuIHdpY2h0aWdlbiBUZXJtaW4gaGF0LiBOYWNoIGRlciBUYXQKc2lua2VuIHNpZSB1bWdlaGVuZCB3aWVkZXIgaW4gZGVuIFRpZWZzY2hsYWYsIHVuZCBpY2ggbGllZ2UgbWl0CnRlbGxlcmdyb3NzZW4gQXVnZW4gaW4gZGVyIER1bmtlbGhlaXQgdW5kIGZpbmRlIGtlaW5lIFJ1aGUuCgpHcmF1ZW5oYWZ0IGlzdCBhdWNoIGVpbmUgYW5kZXJlIFZhcmlhbnRlIGRlciBrb2VycGVybGljaGVuIEF0dGFja2UuIERhCmxpZWd0IG1hbiB3b2hsaWcgdW50ZXIgc2VpbmVyIERlY2tlIHVuZCBpc3QgYW0gV2Vnbmlja2VuIHVuZCBkYW5uIGtvbW1lbgpzaWU6IGthbHQsIGVpc2thbHQuIEdlZnJvcmVuZSBGcmF1ZW5mdWVzc2Ugc2NoaWViZW4gc2ljaCBsYW5nc2FtIHVuZAp1bmF1ZmhhbHRzYW0gendpc2NoZW4gZGllIG1hZW5ubGljaGVuIFNjaGVua2VsLiBEb3J0IHNvbGxlbiBzaWUgZ2V3YWVybXQKd2VyZGVuLiBEZXIgTWFubiB6dWNrdCB6dXJ1ZWNrLCB3aW5kZXQgc2ljaCwgdmVyc3VjaHQgZGllIEZsdWNodCwgYWJlcgpkaWUgd2VpY2hlbiBHbGV0c2NoZXIgdW50ZXIgZGVyIERlY2tlIHNpbmQgc3RhZXJrZXIuIEFsbGUgRnJhdWVuIGhhYmVuCmthbHRlIEZ1ZXNzZSEgQWxsZSEgVW5kIHNpZSBrZW5uZW4ga2VpbiBFcmJhcm1lbi4gU3R1bW0sIGFiZXIgZm9yZGVybmQKa29tbWVuIHNpZSBpbiBkZXIgTmFjaHQgZ2Vrcm9jaGVuIHVuZCBzYXVnZW4gS29lcnBlcndhZXJtZSBpbQpHaWdhd2F0dC1CZXJlaWNoIGFiLiBTY2hyZWNrbGljaCEKTWFuY2htYWwgZ2ViZW4gc2llIGFiZXIgYXVjaCBkYW5uIGtlaW5lIFJ1aGUsIHdlbm4gbWFuIGlocmUKUGVybWFmcm9zdC1GdWVzc2UgZW50ZWlzdCwgZGFzIFNjaG5hcmNoZW4gZWluZ2VzdGVsbHQgdW5kIGRlbSBMb2VmZmVsbgplbnRzYWd0IGhhdC4gRGVubiBkYW5uIGhhYmVuIHNpZSB3YXMgZ2Vob2VydC4gIkRhIGlzdCBkb2NoIGplbWFuZCIsCnJhdW5lbiBzaWUsICJEYSBoYXQgZG9jaCB3YXMgZ2VrbmFja3QiIG9kZXIgIkhvZXJzdCBkdSBkaWVzZSBrb21pc2NoZW4KR2VyYWV1c2NoZT8iIERpZSBCb3RzY2hhZnQgaXN0IGVybmV1dCBnbGFza2xhcjogTWFubiwgcGFjayBkaXIgZWluZW4KaG9lbHplcm5lbiBLbGVpZGVyYnVlZ2VsIG9kZXIgc29uc3QgZWluZSBiZWhlbGZzbWFlc3NpZ2UgV2FmZmUsIHdhZyBkaWNoCmluIGRpZSBkdW5rbGUgV29obnVuZyB1bmQgdmVydHJlaWIgZGVuIEVpbmJyZWNoZXIsIHNvIGR1IGVpbmVuIGZpbmRlc3QuCktsYXIsIGRhc3MgamVkZXIgTWFubiBkZW0gdGllZnZlcnd1cnplbHRlbiBJbnN0aW5rdCB6dW0gU2NodXR6ZSBkZXIKU2lwcGUgZm9sZ3QgdW5kIGluIFNvY2tlbiB1bmQgVW50ZXJob3NlbiB3aWUgZWluIERlcHAgaW0gRHVua2xlbgp1bWhlcnN0b2xwZXJ0LiBVbSBkYW5uIGZyaWVyZW5kIHVuZCB1bnZlcnJpY2h0ZXRlciBEaW5nZSB3aWVkZXIgenVyCihuYXR1ZXJsaWNoIHRpZWZzY2hsYWZlbmRlbikgUGFydG5lcmluIHp1cnVlY2t6dWtlaHJlbi4KV2VyIG1laW50LCBtaXQgZGVtIE1vcmdlbmdyYXVlbiBzZWkgZGVyIEFFcmdlciBhdXNnZXN0YW5kZW4sIGlycnQhIFdpZQppbiBlaW5lbSBIb3Jyb3JmaWxtLCBkZXIgc2NoZWluYmFyIHNlaW5lbiBncnVzZWxpZ2VuIEhvZWhlcHVua3QgZXJyZWljaHQKaGF0IHVuZCBkYW5uIG5vY2ggbWFsIGVudHNldHpsaWNoIHp1c2NobGFlZ3Q6IERpZSBSZWRlIGlzdCB2b24KdW50ZXJzY2hpZWRsaWNoZW4gU2NobGFmLSB1bmQgV2FjaHJoeXRobWVuLiBJY2ggYXJiZWl0ZSBlYmVuIGJpcyBpbiBkaWUKZnJ1ZWhlbiBNb3JnZW5zdHVuZGVuIHVuZCBzdGVoZSBmb2xnZXJpY2h0aWcgbmljaHQgZ2VyYWRlbWl0IGRlbgpIdWVobmVybiBhdWYuIEtlaW4gUHJvYmxlbSBmdWVyIGRlbiBBbGxlaW5zY2hsYWVmZXIuIFdhcyBhYmVyIHNvbGwgaWNoCm1pdCBlaW5lciBGcmF1IG1hY2hlbiwgZGllIG1vcmdlbnMgdW0gc2llYmVuIGtlcnplbmdlcmFkZSBuYWNoZmVkZXJuZCBpbQpCZXR0IHNpdHp0LCBMYW5nZXdlaWxlIGhhdCwgc2ljaCBsYXV0IHVuZCB2ZXJuZWhtbGljaCByZWNrdCwgZ2FlaG50LApyYWV1c3BlcnQsIGF1ZmRyaW5nbGljaGVuIEtvZXJwZXJrb250YWt0IHN1Y2h0IHVuZCBhbSBFbmRlIGdhciBmbHVlc3NpZ2UKS29udmVyc2F0aW9uIGZvcmRlcnQ/IE5hY2hkZW0gaWNoIGJsdXRzYXVnZW5kZSBJbnNla3RlbiB6dXIgU3RyZWNrZQpicmFjaHRlLCB6dW0gRGFuayBkYWZ1ZXIgRWxsYm9nZW4tQ2hlY2tzIGthc3NpZXJ0ZSB1bmQgdW50ZXIgZGllIGVpZ2VuZQprYWx0ZSBCZXR0ZGVja2UgdmVyYmFubnQgd3VyZGUuCgpOYWNoIGFsbCBkZW0gcmVpY2h0ZSBlcyBtaXIgaXJnZW5kd2Fubi4gVW5kIHp3YXIgcmljaHRpZy4gRWluZXMgZnJ1ZWhlbgpNb3JnZW5zIHd1cmRlIGljaCBkdXJjaCBkaWUgRnJhZ2U6ICJLYW5uc3QgZHUgYXVjaCBuaWNodG1laHIgc2NobGFmZW4/IgpnZXdlY2t0IHVuZCBoZXJyc2NodGUgZGllIEZyYXUgbmViZW4gbWlyIHJ1ZWRlIGFuOiAiSGFsdCBkaWUgS2xhcHBlIHVuZAptYWNoIEZydWVoc3R1ZWNrISIgS3VyeiBkYW5hY2ggZmllbCBkaWUgV29obnVuZ3N0dWVyIGtyYWNoZW5kIGlucwpTY2hsb3NzLCB1bmQgaWNoIG11c3N0ZSBtaXIgZGFzIEZydWVoc3R1ZWNrIHNlbGJzdCBtYWNoZW4uIEdpYnQgZXMga2VpbmUKSG9mZm51bmc/IERvY2gsIGRpZSBnaWJ0IGVzISEhIEljaCBoYWJlIC0gbnVuIGphIC0gamVtYW5kZW4Ka2VubmVuZ2VsZXJudC4gVW5kIGRpZSBpc3QgYW5kZXJzISBTaWUgaXN0IGFuc2NobWllZ3NhbSB1bmQga3VzY2hlbHQKZXh6ZXNzaXYuIEljaCBkYXJmIGluCmlocmVyIHVuZCBHZWdlbndhcnQgYXVzZ2llYmlnIHNjaG5hcmNoZW4uIFdlbm4gc2llIEdlcmFldXNjaGUgaG9lcnQsCnNjaGF1dCBzaWUgc2VsYmVyIG5hY2ggZGVtIFJlY2h0ZW4uIE11ZWNrZW4gYnJpbmd0IHNpZSBtaXQgZ2VzY2hpY2t0ZW4KU2NobGFlZ2VuIGVpZ2VuaGFlbmRpZyB6dXIgU3RyZWNrZSwgdW5kIHNpZSBoYXQgbmllbWFscyBrYWx0ZSBGdWVzc2UuCkd1dCwgc2llIGlzdCB2aWVsbGVpY2h0IGVpbiBiaXNzY2hlbiB2ZXJzcGllbHQuCkFiZXIgd2VsY2hlIEthdHplIGlzdCBkYXMgbmljaHQ/CgpHcmltbWJvcm4gZGVyIEF0aGVpc3QgKG5laW4sIGlzdCBuaWNodCB2b24gbWlyLiBBYmVyIHRyb3R6ZGVtIGd1dCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN0YXViIChHcmltbWJvcm4sIDI5LiBKdW4gMTk5OSwgMTU6Mjg6MjgpOgp+IyEgb249VmVyZmxpeHQgb3Q9OTMwNjYyMzc1IG9nPWFsbGdlbWVpbmVzClN1Y2hlIHdlaWJsaWNoZXMgV2VzZW4genVtIExpZWJoYWJlbiwgQW50d35xCnNjaHJlaWJlIHN0YXViCnN1Y2hlIHdlaWJsaWNoZXMgd2VzZW4genVtIGxpZWJoYWJlbiwgYW50d29ydCBiaXR0ZSBpbiBzdGF1YiBzY2hyZWliZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogaGloaSAoV2lkZXdpdHQsIDMwLiBKdW4gMTk5OSwgMDA6MzY6NTUpOgp+IyEgcm49R2FuZG8gcnQ9OTMwNjQwNTcxIHJnPXdpdHplCn4jISB0aWQ9OTMwNjQwNTcxCkljaCBrZW5uIGRlbiBtaXQ6ICJXaWUgaXNzdCBEdSBkZW5uID8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2h3aW1tYmFkICEgKFNveW8sIDMwLiBKdW4gMTk5OSwgMDA6Mzc6NDcpOgpFaW4gRGV1dHNjaHdlciB1bmQgZWluIEphbWFpY2FuZXIgc2l0emVuIG5hY2t0IGFtIFBvb2wgdW5kIGhhZW5nZW4KYmVpZGUgaWhyZW4gU2NobmllZGVsIGlucyBXYXNzZXIuClNhZ3QgZGVyIERldXRzY2hlOiBEYXMgV2Fzc2VyIGlzdCBleGFrdCAyNSwzIEdyYWQgd2FybSAhClNhZ3QgZGVyIEphbWFpY2FuZXI6IEphLCB1bmQgYW4gZGVyIFN0ZWxsZSBpc3QgZXMgMSw2NSB0aWVmICEhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBuZXVsaWNoLi4uIChVbmFzYWksIDMwLiBKdW4gMTk5OSwgMTk6MzI6MzgpOgpGdWVyIGRpZSBiaWVyc2NodWV0dGxlciBzaWNoZXIgYmVzb25kZXJzIGludGVyZXNzYW50IDopIApXYXMgaXN0IHdlaXNzLCBmbGllZ3QgaW4gZGVyIEx1ZnQgdW5kIGhhdCAyMSBIYWVsc2U/CgooZWluIFNjaHdhbiBtaXQgZWluZW0gS2FzdGVuIEJpZXIgYXVmIGRlbSBSdWVja2VuKQoKVW5hKiwgZGllIHNpY2ggZnJhZ3QsIHdlciBzaWNoIHNvd2FzIHdvaGwgYXVzZGVua3QgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlc2NoZW5rZSA6KSAoWmFybml5YSwgIDYuIEp1bCAxOTk5LCAxMjo1NDo1MCk6CgpJdCB3YXMgYXQgdGhlIGVuZCBvZiB0aGUgc2Nob29sIHllYXIsIAphbmQgYSBraW5kZXJnYXJ0ZW4gdGVhY2hlciB3YXMgcmVjZWl2aW5nIGdpZnRzIGZyb20gaGVyIHB1cGlscy4KVGhlIGZsb3Jpc3QncyBzb24gaGFuZGVkIGhlciBhIGdpZnQuICAKU2hlIHNob29rIGl0LCBoZWxkIGl0IG92ZXJoZWFkLCBhbmQgc2FpZCwgIkkgYmV0IEkga25vdyB3aGF0IGl0IGlzLgpTb21lIGZsb3dlcnMuIiAiVGhhdCdzIHJpZ2h0IiB0aGUgYm95IHNhaWQsICJidXQgaG93IGRpZCB5b3Uga25vdz8iCiJPaCwganVzdCBhIHdpbGQgZ3Vlc3MsIiBzaGUgc2FpZC4KVGhlIG5leHQgcHVwaWwgd2FzIHRoZSBzd2VldCBzaG9wIG93bmVyJ3MgZGF1Z2h0ZXIuIApUaGUgdGVhY2hlciBoZWxkIGhlciBnaWZ0IG92ZXJoZWFkLCBzaG9vayBpdCwgYW5kIHNhaWQsCiJJIGJldCBJIGNhbiBndWVzcyB3aGF0IGl0IGlzLiAgQSBib3ggb2Ygc3dlZXRzLiIKIlRoYXQncyByaWdodCwgYnV0IGhvdyBkaWQgeW91IGtub3c/IiBhc2tlZCB0aGUgZ2lybC4KIk9oLCBqdXN0IGEgd2lsZCBndWVzcywiIHNhaWQgdGhlIHRlYWNoZXIuClRoZSBuZXh0IGdpZnQgd2FzIGZyb20gdGhlIHNvbiBvZiB0aGUgbGlxdW9yIHN0b3JlIG93bmVyLiAgClRoZSB0ZWFjaGVyIGhlbGQgdGhlIHBhY2thZ2Ugb3ZlcmhlYWQsIGJ1dCBpdCB3YXMgbGVha2luZy4gIApTaGUgdG91Y2hlZCBhIGRyb3Agb2YgdGhlIGxlYWthZ2Ugd2l0aCBoZXIgZmluZ2VyIAphbmQgdG91Y2hlZCBpdCB0byBoZXIgdG9uZ3VlLgoiSXMgaXQgd2luZT8iIHNoZSBhc2tlZC4KIk5vLCIgdGhlIGJveSByZXBsaWVkLCB3aXRoIHNvbWUgZXhjaXRlbWVudC4KVGhlIHRlYWNoZXIgcmVwZWF0ZWQgdGhlIHByb2Nlc3MsIAp0YWtpbmcgYSBsYXJnZXIgZHJvcCBvZiB0aGUgbGVha2FnZSB0byBoZXIgdG9uZ3VlLiAKIklzIGl0IGNoYW1wYWduZT8iIHNoZSBhc2tlZC4KIk5vLCIgdGhlIGJveSByZXBsaWVkLCB3aXRoIG1vcmUgZXhjaXRlbWVudC4KVGhlIHRlYWNoZXIgdG9vayBvbmUgbW9yZSB0YXN0ZSBiZWZvcmUgZGVjbGFyaW5nLCAKIkkgZ2l2ZSB1cCwgd2hhdCBpcyBpdD8iCldpdGggZ3JlYXQgZ2xlZSwgdGhlIGJveSByZXBsaWVkLCAiSXQncyBhIHB1cHB5ISIKCkxlY2tlciA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGV1dGUgaW4gbWVpbmVyIFRhZ2VzemVpdHVuZy4uLiAoWm9vaywgIDcuIEp1bCAxOTk5LCAwMDoxNzoxMyk6Ck5hIGphLCBlcyBzb2xsIGphIExldXRlIGdlYmVuLCBkaWUgIkhhZWdlciBkZW4gU2NocmVja2xpY2hlbiIga2VubmVuLgpGdWVyIGRpZWplbmlnZW4sIGRlciBoZXV0aWdlIEhhZWdhciBhdXMgbWVpbmVyIFplaXR1bmc6CgpFcyBzaXR6ZW4gSGFlZ2FyIHVuZCBEci4gWm9vayAod2llc28gd3VlcmRlIGljaCBkYXMgc29uc3QgcG9zdGVuPykKYW4gZWluZW0gVGlzY2g6CgpIYWVnZXI6IFNhZyBtYWwsIERva3RvciBab29rLCB3aWUgbGVnZW4gZWlnZW50bGljaCBBZXJ6dGUgCiAgSWhyIFZlcm1vZWdlbiBhbj8KWm9vazogTnVuIGphLCBIYWVnZXIsIEFlcnp0ZSBzaW5kIHNlaHIgYmVzY2hhZWZ0aWd0LiBJY2gga2F1ZmUKICBudXIgZWlubWFsIGltIEphaHIgZWluZSBJbW1vYmlsaWUuCkhhZWdhcjogVW5kIHdhcyBoYXN0IER1IGxldHp0ZXMgSmFociBnZWthdWZ0Pwpab29rOiBTcGFuaWVuLgoKWm9vayBncmluc3QgaW1tZXIgbm9jaCwgemFlaGx0IHNlaW4gR2VsZCBuYWNoIHVuZCBtZWludCwgZnVlciAqKiB3dWVyZGUgZXMKbm9jaCByZWljaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFybGV5IChEaWVkZXIsICA3LiBKdWwgMTk5OSwgMTY6MzY6MTMpOgpBcnRodXIgRGF2aWRzb24sIGRlciBLb25zdHJ1a3RldXIgZGVyIEhhcmx5LURhdmlkc29uLU1vdG9ycmFlZGVyLCBzdGlyYnQsCmxhbmRldCBpbSBIaW1tZWwgdW5kIGJla29tbXQgZWluZSBBdWRpZW56IGJlaSBHb3R0LgpGcmFndCBlciBpaG46ICJCaXN0IER1IGV0d2EgZGVyIEtvbm9zdHJ1a3RldXIgZGVyIEZyYXU/IgoiSmEsIHdhcnVtPyIKU2FndCBEYXZpZHNvbjogIkRhIHNpbmQgRGlyIGFiZXIgZWluaWdlIEtvbnN0cnVrdGlvbnNmZWhsZXIgdW50ZXJsYXVmZW46IERhcwpWb3JkZXJ0ZWlsIHJhZ3QgenUgd2VpdCBoZXJ2b3IsIGhpbnRlbiB3YWNrZWx0IGVzIHp1IHN0YXJrLCB1bmQgYXVzc2VyZGVtCmxpZWd0IGRlciBFaW5mdWVsbHN0dXR6ZW4genUgbmFoZSBhbSBBdXNwdWZmLiIKTWVpbnQgR290dDogIk1vbWVudCBtYWwsIGRhcyBtYWcgendhciBzY2hvbiBzZWluLCBhYmVyIGxhdXQgbWVpbmVyIEluZm9ybWF0aW9uCnJlaXRlbiBpbW1lciBub2NoIHRyb3R6ZGVtIG1laHIgTGV1dGUgYXVmIG1laW5lciBFcmZpbmR1bmcgYWxzIGF1ZiBEZWluZXIuLi4iCgpEaWVkZXIsIGtpY2hlcm5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMiBNb2VnbGljaGtlaXRlbiAoRGllZGVyLCAgNy4gSnVsIDE5OTksIDIzOjQyOjI0KToKRnVlciBlaW5lbiBNYW5uIGdpYnQgZXMgaW1tZXIgendlaSBNb2VnbGljaGtlaXRlbjoKCiBLb21tc3QgRHUgYXVmIGRpZSBXZWx0LCBoYXN0IER1IHp3ZWkgTW9lZ2xpY2hrZWl0ZW46IAogRW50d2VkZXIgd2lyc3QgRHUgRnJhdSwgb2RlciB3aXJzdCBEdSBNYW5uLiAKIFdpcnN0IER1IGVpbmUgRnJhdSwgaGFzdCBlcyBEdSBiZXNzZXIsIAogd2lyc3QgRHUgZWluIE1hbm4sIGhhc3QgRHUgendlaSBNb2VnbGljaGtlaXRlbjoKIEVudHdlZGVyIGdlaHN0IER1IGluIEZhYnJpayBvZGVyIHdpcnN0IER1IFNvbGRhdC4gCiBHZWhzdCBEdSBpbiBGYWJyaWssIGhhc3QgRHUgYmVzc2VyLCAKIHdpcnN0IER1IFNvbGRhdCwgaGFzdCBEdSB6d2VpIE1vZWdsaWNoa2VpdGVuOgogRW50d2VkZXIga29tbXN0IGluIFNjaHJlaWJzdHViZSBvZGVyIGtvbW1zdCBEdSBhbiBGcm9udC4gCiBLb21tc3QgRHUgaW4gU2NocmVpYnN0dWJlLCBoYXN0IER1IGJlc3NlciwgCiBrb21tc3QgRHUgYW4gRnJvbnQsIGhhc3QgRHUgendlaSBNb2VnbGljaGtlaXRlbjoKIEVudHdlZGVyIGJsZWlic3QgRHUgYW0gTGViZW4gb2RlciB3aXJzdCBnZXNjaG9zc2VuIHRvdC4gCiBCbGVpYnN0IER1IGFtIExlYmVuLCBoYXN0IER1IGJlc3NlciwgCiB3aXJzdCBEdSBnZXNjaG9zc2VuIHRvdCwgaGFzdCBEdSB6d2VpIE1vZWdsaWNoa2VpdGVuOgogRW50d2VkZXIga29tbXN0IER1IGluIEdyYWIgYWxsZWluZSBvZGVyIGtvbW1zdCBpbiBHcmFiIG1pdCBNYXNzZS4gCiBLb21tc3QgRHUgaW4gR3JhYiBhbGxlaW5lLCBoYXN0IER1IGJlc3NlciwgCiBrb21tc3QgRHUgaW4gR3JhYiBtaXQgTWFzc2UsIGhhc3QgRHUgendlaSBNb2VnbGljaGtlaXRlbjoKIEVudHdlZGVyIGRhcmZzdCBEdSBsaWVnZW4gYmxlaWJlbiBvZGVyIHdpcnN0IGdlYnVkZGVsdCBhdXMuIAogRGFyZnN0IER1IGxpZWdlbiBibGVpYmVuLCBoYXN0IER1IGJlc3NlciwgCiB3aXJzdCBEdSBnZWJ1ZGRlbHQgYXVzLCBoYXN0IER1IHp3ZWkgTW9lZ2xpY2hrZWl0ZW46CiBFbnR3ZWRlciBrb21tc3QgRHUgaW4gRmFicmlrIGZ1ZXIgU2VpZmUgb2RlciBpbiBGYWJyaWsgZnVlciBQYXBpZXIuIAogS29tbXN0IER1IGluIEZhYnJpayBmdWVyIFNlaWZlLCBoYXN0IER1IGJlc3NlciwgCiBrb21tc3QgRHUgaW4gRmFicmlrIGZ1ZXIgUGFwaWVyIGdpYnQgZXMgendlaSBNb2VnbGljaGtlaXRlbjogCiBFbnR3ZWRlciB3aXJzdCBEdSBTY2hyZWlicGFwaWVyIG9kZXIgd2lyc3QgS3JlcHBhcGllci4gCiBXaXJzdCBEdSBTY2hyZWlicGFwaWVyLCBoYXN0IER1IGJlc3NlciwgCiB3aXJzdCBEdSBLcmVwcGFwaWVyLCBoYXN0IER1IHp3ZWkgTW9lZ2xpY2hrZWl0ZW46CiBFbnR3ZWRlciBrb21tc3QgdW0gVG9wZiB2b24gQmx1bWUgZnVlciBzY2hvZW5lIEJyYXV0LCBvZGVyIGtvbW1zdCBhdWYKIFJvbGxlLgogS29tbXN0IER1IHVtIFRvcGYgdm9uIEJsdW1lLCBoYXN0IER1IGJlc3NlciwgCiBrb21tc3QgRHUgYXVmIFJvbGxlLCBoYXN0IER1IHp3ZWkgTW9lZ2xpY2hrZWl0ZW46CiBFbnR3ZWRlciBrb21tc3QgRHUgaW4gSGVycmVudG9pbGV0dGUgb2RlciBEYW1lbnRvaWxldHRlLiAKIEtvbW1zdCBEdSBpbiBIZXJyZW50b2lsZXR0ZSwgaGFzdCBEdSBiZXNzZXIsIAoga29tbXN0IER1IGluIERhbWVudG9pbGV0dGUgaGFzdCBEdSB6d2VpIE1vZWdsaWNoa2VpdGVuOgogRW50d2VkZXIgd2lyc3QgRHUgZ2VicmF1Y2h0IGZ1ZXIgdm9ybmUgb2RlciBnZWJyYXVjaHQgZnVlciBoaW50ZW4uIAogV2lyc3QgRHUgZ2VicmF1Y2h0IGZ1ZXIgdm9ybmUsIGhhc3QgRHUgYmVzc2VyLAogd2lyc3QgRHUgZ2VicmF1Y2h0IGZ1ZXIgaGludGVuLCBiaXN0IER1IHNvd2llc28gaW0gQS4uLi4gIQoKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWhlZnJhdSAxLjAgKENhdHdlYXpsZSwgIDguIEp1bCAxOTk5LCAxMToxODoyNSk6Cn4jISBvbj1SZWFwZXIgb3Q9OTMxMzYzNDAxIG9nPWFsbGdlbWVpbmVzCgogVm9yc2ljaHQgYmVpIEluc3RhbGxhdGlvbiB2b24gbmV1ZXIgU29mdHdhcmUgISEhISEhISEKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogVm9yICBlaW5pZ2VuICBXb2NoZW4gIGhhdCAgZWluICBGcmV1bmQgIHZvbiAgbWlyIGVpbiAgVXBncmFkZSB2b24gCiBGcmV1bmRpbiAzLjAgIGF1ZiAgRWhlZnJhdSAxLjAgZ2VtYWNodC4gU2VpbmUgRXJmYWhydW5nZW4gaGllcmJlaSAKIHdhcmVuIGhhYXJzdHJhZXViZW5kLgoKIERpZXNlICBBcHBsaWthdGlvbiAgIHZlcmJyYXVjaHQgICBleHRyZW0gICB2aWVsICAgQXJiZWl0c3NwZWljaGVyIAogdW5kICByYXVidCAgc2VpdGRlbSBkaWUgIGxldHp0ZW4gU3lzdGVtcmVzc291cmNlbi4gIEJlaSBnZW5hdWVyZW0gCiBQcnVlZmVuICBmYW5kICBlciBkYW5uIGhlcmF1cywgIGRhc3MgZGllc2VzIFByb2dyYW1tIHp1c2FldHpsaWNoZSAKICJDaGlsZCItUHJvemVzc2UgICBhdWZydWZ0ICAgdW5kICBzb21pdCAgIG5vY2ggIG1laHIgICBSZXNzb3VyY2VuCiB2ZXJicmF1Y2h0LiAgQXVzemVyZGVtIGlzdCBkaWUgQXBwbGlrYXRpb24gc2VociBiZXRyaWVic3N5c3RlbW5haCAKIHByb2dyYW1taWVydCAgdW5kIGtsaW5rdCBzaWNoIGJlaW0gQm9vdGVuIGluIGRpZSBLb21tYW5kb3N0cnVrdHVyIAogZWluIHVuZCBrb250cm9sbGllcnQgZGFzIGdhbnplIFN5c3RlbS4KCiBEYXMgZ2VodCBzb3dlaXQsIGRhc3ogYW5kZXJlIFByb2dyYW1tZSBiZWkgRWhlZnJhdSAxLjAgbmFjaGZyYWdlbgogbXVlc3NlbiAgdW5kICBkYXNzICBzaWUgIGdlZ2ViZW5lbmZhbGxzICAga2VpbmUgICBTeXN0ZW1yZXNvdXJjZW4gCiB6dWdld2llc2VuIGJla29tbWVuLiAKIEVpbmlnZSBhZWx0ZXJlIFByb2dyYW1tZSB3aWUgIHouQi4gU2thdGFiZW5kIDcuMSwgS25laXBlbnRvdXIgNS4wICAKIG9kZXIgIEZhaHJhbGxlaW53ZWcgMy4xICBzaW5kIG5lYmVuICBFaGVmcmF1IDEuMCB1ZWJlcmhhdXB0IG5pY2h0IAogbGF1ZmZhZWhpZy4gCiBadSAgYWxsZW0gVWViZXJmbHVzeiBzY2hlaW50IGRhcyBTeXN0ZW0gdm9uIFRhZyB6dSBUYWcgbWVociB1bnRlciAKIGRpZXNlbiBVbXN0YW5kZW4genUgbGVpZGVuLiBFcyBzaWVodCBhdXMsIGFscyBvYiBzaWNoIEVoZWZyYXUgMS4wIAogd2llIGVpbiBWaXJ1cyBpbSBTeXN0ZW0gdmVyYnJlaXRldC4KCiBBbmRlcmUsIG1pdCBkZW0gIFByb2dyYW1tICBFaGVmcmF1IDEuMCBiZXJlaXRzIHZlcnRyYXV0ZSBBbndlbmRlciAKIGhhdHRlbiAgbWVpbmVuICBGcmV1bmQgICB2b3IgIGRlciAgSW5zdGFsbGF0aW9uICBnZXdhcm50LCAgamVkb2NoCiB3YXIgIGtlaW5lcyAgZGllc2VyICBQaGFub21lbmUgIGluIGRlciAgQmVzY2hyZWlidW5nIGVyd2FobnQuIEVpbiAKIHdlaXRlcmVyICBNaW51c3B1bmt0IHZvbiAgRWhlZnJhdSAxLjAgaXN0LCBkYXN6ICBkYXMgUHJvZ3JhbW0gYmVpCiBkZXIgSW5zdGFsbGF0aW9uICBrZWluZXJsZWkgIE9wdGlvbmVuICBiaWV0ZXQuIFNvICBrYW5uIG1hbiBuaWNodAogZW50c2NoZWlkZW4sICBvYiAgIFp1c2F0enByb2R1a3RlICAgd2llICBTY2h3aWVnZXJtdXR0ZXIgMS4wICB1bmQgCiBTY2h3YWdlciAxLjIgbWl0aW5zdGFsbGllcnQgd2VyZGVuIG9kZXIgbmljaHQuIAoKIEVpbmlnZSAgd2ljaHRpZ2UgIEZlYXR1cmVzICBoYXQgICBtYW4gICBiZWkgIEVoZWZyYXUgMS4wICBlaW5mYWNoIAogdmVyZ2Vzc2VuLiAgIFNvICAgZ2lidCAgZXMgIHouQi4ga2VpbmVuICBVbi1JbnN0YWxsZXIsICBhdWNoICBkZXIgCiBFU0MtS25vcGYgZnVua3Rpb25pZXJ0IG5pY2h0LiBNdWx0aXRhc2tpbmctZmFoaWcgaXN0IGRhcyBQcm9ncmFtbSAKIGViZW5mYWxscyBuaWNodC4gCiBXaWNodGlnZSBBcHBsaWthdGlvbmVuIHdpZSAgRnJldW5kaW4gOC4yIGtvZW5uZW4gbWl0ICBFaGVmcmF1IDEuMCAKIG5pY2h0ICBrb21tdW5pemllcmVuLiAgIFBlcnNvbmxpY2ggIGRlbmtlICBpY2gsICBkYXN6ICAgaWNoICAgYmVpIAogRnJldW5kaW4gNS4wICBibGVpYmVuICB3ZXJkZSwgb2J3b2hsICBhdWNoIGRpZXNlcyAgUHJvZ3JhbW0gbmljaHQgCiBvaG5lICAgUHJvYmxlbWUgICBsYXVmdC4gIFNvICAgd2FyICAgZXMgIG1pciAgYmlzaGVyICBiZWkgIGtlaW5lciAKIEZyZXVuZGluLVZlcnNpb24gbW9lZ2xpY2gsIHNpZSAgdWViZXIgZGFzICBWb3JnYWVuZ2VyLVByb2dyYW1tIHp1IAogaW5zdGFsbGllcmVuLiBWaWVsbWVociBtdXNzdGUgdm9yaGVyIGVpbmUgc2F1YmVyZSBEZS1JbnN0YWxsYXRpb24gCiBkdXJjaGdlZnVlaHJ0IHdlcmRlbiAgdW0gIHNpY2hlcnp1c3RlbGxlbiwgZGFzeiAga2VpbmUgSW50ZXJydXB0cyAKIHVuZCBJL08tUG9ydHMgIGJsb2NraWVydCAgd2VyZGVuLiBTb2xsdGUgIG1hbiAgZGllcyB2ZXJnZXNzZW4sIHNvIAoga2FubiAgZXMgIHBhc3NpZXJlbiwgIGRhc3MgIGRpZSAgZnJpc2NoICBpbnN0YWxsaWVydGUgQXBwbGlrYXRpb24gCiBlaW5mYWNoIGFic2NobWllcnQuIAogTWVpc3RlbnMgbXVzeiBtYW4gc2ljaCBkYW5uIGVpbmUgbmV1ZSBLb3BpZSBiZXNvcmdlbi4KCiBFaW4gd2VpdGVyZXMgUHJvYmxlbSB3YXMgZGllIG1laXN0ZW4gVmVyc2lvbmVuIHZvbiBGcmV1bmRpbiBoYWJlbiAKIGlzdCAgZGllICAgbGFlc3RpZ2UgIEF1ZmZvcmRlcnVuZywgIHNpY2ggIGRvY2ggIGVpbiAgVXBncmFkZSAgYXVmIAogRWhlZnJhdSAxLjAgIHp1ICBiZXNvcmdlbi4gIERpZXNlICBlcnNjaGVpbnQsIHdpZSBiZWkgZGVuIG1laXN0ZW4gCiBTaGFyZXdhcmUtUHJvZ3JhbW1lbiAgaW4gcmVnZWxtYWVzc2lnZW4gQWJzdGFlbmRlbiwgbWVpc3RlbnMgYWJlciAKIGRhbm4sIHdlbm4gZXMgYW0gd2VuaWdzdGVuIGdlYnJhdWNoZW4ga2Fubi4KCgogVHJvdHpkZW0gd2VpdGVyaGluIHZpZWwgU3Bhc3ogZGFtaXQhCiBFaW4gd2FybmVuZGVyIAogUmVhcGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWhlZnJhdSAxLjAgKENhdHdlYXpsZSwgIDguIEp1bCAxOTk5LCAxMToxODoyNyk6Cn4jISBvbj1Bbmd1cyBvdD05MzEzNjQwNTMgb2c9YWxsZ2VtZWluZXMKfiMhIHJuPVJlYXBlciBydD05MzEzNjM0MDEgcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD05MzEzNjM0MDEKCkRpZSBQcm9ibGVtZSBtaXQgRnJldW5kaW4gNS4wIGxhc3NlbiBzaWNoIGR1cmNoIGVpbgpEb3duZ3JhZGUgYXVmIEh1bmQgMy4xIG9kZXIgS2F0emUgNy4wIGhlcnZvcnJhZ2VuZAppbiBkZW4gR3JpZmYgYmVrb21tZW4uCgogIC1Bbmd1cy4gKFVlYmVyemV1Z3RlciBLYXRlciA3LjEgLSBOdXR6ZXIpIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFaGVmcmF1IDEuMCAoQ2F0d2VhemxlLCAgOC4gSnVsIDE5OTksIDExOjE4OjM3KToKfiMhIG9uPVJvbmRhIG90PTkzMTM2NDkzMyBvZz1hbGxnZW1laW5lcwp+IyEgcm49QW5ndXMgcnQ9OTMxMzY0MDUzIHJnPWFsbGdlbWVpbmVzCn4jISB0aWQ9OTMxMzYzNDAxCkRhcyBnZWhvZXJ0IGpldHp0IGVpZ2VudGxpY2ggZWhlciBuYWNoIFdpdHplLi4uIG9kZXIKZGUuYWx0LmZhbi5zZXguY2F0c25kb2dzLi4uCklyZ2VuZHdpZSBpc3QgRGVpbiBkb3duZ3JhZGUgYWJlciBuZW4gYmlzc2NoZW4uLi4gb2VobS4uLiBpbGxlZ2FsPwpSb25kYSAqZGllIGFybWVuIFZpZWNoZXJzLi4uKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT2hyd3Vlcm1lciAoSGF0ZSwgMTAuIEp1bCAxOTk5LCAxNjowMjo0NCk6CjA0OjI0ICpzY2hyYXAqICpzY2hyYXAqICpzY2hyYXAqIEFyZ2wsIGljaCBrcmF0emUgbWljaCBhbSBPaHIsCiAgICAgIGFiZXIgZXMgaGlsZnQgKnNjaHJhcCogZWluZmFjaCBuaXggKnNjaHJhcCoKICAgICAgQWxzbyBhdWZnZXN0YW5kZW4sIGlobSBPaHIgcnVtZ2VwdWhsdCwgYWJlciBuaXgsIGVpbmZhY2gKICAgICAgbml4IGhpbGZ0LiBHZWggaW5zIEJhZCB1bmQgcHJvYmllcnMgbm9jaG1hbCBtaXQgZWluZW0KICAgICAgV2F0dGVzdGFlYmNoZW4sIGFiZXIgaXJnZW5kd2llIGtvbW10IG1hbiBnYXJuaWNodCBzbwogICAgICB0aWVmIC4uLiAqc2NocmFwKiAqc2NocmFwKiBFcyBoYXQgc2ljaCBiZXJ1aGlndCAuLi4gYWhoaAogICAgICBBYmVyIGlyZ2VuZHdpZSBlaW4ga29taXNjaGVzIEdlZnVlaGwgYmxlaWJ0IGltIE9oci4gQWxzbywKICAgICAgQXVncmEgZ2V3ZWNrdCB1bmQgcHJvbXB0IGVpbiBUaXAsIFdhc3NlciByZWluLiBBbHNvIGljaAogICAgICBEdXNjaGUgYW5nZXN0ZWxsdCB1bmQgZHJ1bnRlciB1bmQgc2Nod3VwcHMgKmF1YSogYmxvZWRlcgogICAgICBEdXJjaGxhdWZlcmhpdHplLCAqaXN0IGRhcyBoZWlzcyogdW5kICpzY2hyYXAgc2NocmFwIHNjaHJhcCoKICAgICAgZXMgd2lyZCBzY2hsaW1tZXIgZG9jaCBkYW5uLCBvaCBXdW5kZXIsIHdpZWRlciBydWhpZy4KMDQ6NDUgQWxzbyBpbW1lciBub2NoIGtvbWlzY2hlIEdlZnVlaGwgaW0gT2hyLCBhbHNvIHdpcmQgZGVuawogICAgICBpY2ggbWlyLCBiZXNzZXIgaWNoIGxhc3MgZGEgbWFsIG5lbiBBcnp0IHJhbi4gQW5nZXpvZ2VuCiAgICAgIHVuZCBhYiB6dW0gQXV0by4gQXVncmEgZmFlaHJ0IG1pY2ggenVyICJSZXR0dW5nc3N0ZWxsZSIKICAgICAgdm9tIEtyYW5rZW5oYXVzIGluIFJ1ZWRlcnNkb3JmIChhdWNoIGJla2FubnQgdm9tIFNvbW1lcmNhbXAKICAgICAgMTk5NiwgYWxzIGltbWVyIGt1cnogdm9yIGRlbSBBYmVuZGVzc2VuIGplbWFuZGVtIGVpbmZpZWwsCiAgICAgIGRhc3Mgc2VpbiBLbm9lY2hlbCB2ZXJzdGF1Y2h0IGlzdC4gSWNoIGhhYiBkaWUgZGFubiBpbW1lcgogICAgICBkYWhpbiBnZWZhaHJlbikKMDU6MzAgRW5kbGljaCBkb3J0LCBub2NoIGVpbiBiaXNzY2hlbiBydW1nZXNlc3NlbiB1bmQgbnVuIGVuZGxpY2g6CiAgICAgIEtvbW1lbiBzaWUgZG9jaCBtYWwgcmVpbi4gTmViZW5hbiB2ZXJzdWNodCBlaW5lIEtyYW5rZW5zY2h3ZXN0ZXIKICAgICAgcmF1c3p1a3JpZWdlbiB3byBlaW5lIE9tYSBudW4gZWlnZW50bGljaCB3b2hudC4gRGVyIEFyenQgc2llaHQKICAgICAgZXR3YXMgbXVlZGUgYXVzLCBhYmVyIGZyYWcgZnJldW5kbGljaCB3YXMgZGVubiBpc3QuIEFsc28gZXJ6YWVobAogICAgICBpY2ggdm9uIGRlbSAqc2NocmFwKiAqc2NocmFwKiAoRGllIEtyYW5rZW5zY2h3ZXN0ZXIgc2NoYXV0CiAgICAgIGdhbnogZ2VxdWFlbHQpIHVuZCBkZXIgc2NobmFwcHQgc2ljaCBzbyBlaW5lbiBPaHJndWNrZXIgdW5kCiAgICAgIHN0ZWNrdCBtaXIgZGFzIERpbmcgaW5zIE9ociAuLi4gQXJ6dDogaWNoIHNlaCBuaXggLi4uIGhtbSAuLi4KICAgICAgYWhoIC4uIGRhIGlzdCB3YXMgLi4uIFNpZWh0IGF1cyB3aWUgZWluIEluc2VrdCwga29lbm50ZSBlaW5lCiAgICAgIEFtZWlzZSBzZWluLiBJY2ggZXJ6YWVobCBpaG0gdm9uIGRlciBEdXNjaGUgdW5kIHNvIHVuZCBlcgogICAgICBtZWludCAiYmV3ZWd0IHNpY2ggbmljaHQiIEljaDogSGFiIGljaHMgd29obCBlcnRyYWVua3Q/IEVyOgogICAgICBTY2hlaW50IHNvIHp1IHNlaW4uIEFiZXIgZGFzIERpbmcgbGllZ3QgZHVtbWVyd2Vpc2UgZ2VuYXUgdm8KICAgICAgZGVtIFRyb21tZWxmZWxsIHVuZCBkYSB3aWxsIGVyIG5pY2h0IHJ1bWZ1bW1lbG4gYWxzIEFsbGdlbWVpbmVyLgogICAgICBJY2ggc29sbCBtYWwgenVyIFJldHR1bmdzc3RlbGxlIGltIEtyYW5rZW5oYXVzIE1hcnphaG4sIGRpZSAKICAgICAgaGFiZW4gZG9ydCBhdWNoIEhOTyBFeHBlcnRlbi4gRGVyIEFyenQgc2V0enQgc2ljaCB1bmQgc2NocmVpYnQKICAgICAgZWluZSBVZWJlcndlaXN1bmcgdW5kIERpYWdub3NlIHVuZCBpY2ggZXJ6YWVobGUgbm9jaCBlaW4gd2VuaWcKICAgICAgdm9tICpzY2hyYXAqICpzY2hyYXAqIHVkbiB3aWVzIG1pY2ggZ2V3ZWNrdCBoYXQgKGRpZSBLcmFua2VuLQogICAgICBzY2h3ZXN0ZXIgc2NoYXV0IHdpZWRlciBzbyBnZXF1YWVsdCwga29taXNjaCwgZGllIHNvbGx0ZSBkb2NoCiAgICAgIGVjaHQgc2NobGltbWVyZXMgZ2V3b2hudCBzZWluLCBhbHMgR2VzY2hpY2h0ZW4gdWViZXIgZWluIFRpZXIsCiAgICAgIGRhc3MgYW0gVHJvbW1lbGZlbGwgcnVtc2NocmFwdCkKICAgICAgRGlhZ25vc2U6CiAgICAgICAgIC0gdGllcmlzY2hlciBLYWRhdmVyLCBpbm5lcmVzIE9ociAodmQuIEFtZWlzZSAhKQogICAgICBUaGVyYXBpZToKICAgICAgICAgLSB1bm1pdHRlbGJhciB2b3IgVEYgKFRyb21tZWxmZWxsKSBzaXR6ZW5kLCBuYWNoIE9ocnNwdWVsdW5nCiAgICAgICAgICAgb2ZmZW5iYXIgdmVyZW5kZXQKICAgICAgICAgLT4gZXJiaXR0ZW4gZmFjaGFlcnp0bC4gRW50ZmVybnVuZwowNjozMCBBbHNvIGtsZWluZSBXZWx0cmVpc2UgbmFjaCBCZXJsaW4gaW5zIEtyYW5rZW5oYXVzLiBEaWUgc2NobmFwcGVuCiAgICAgIHNpY2ggZGFzIFBhcGllciB1bmQgc2NoaWNrZW4gbWljaCBrdXJ6IGRhcmF1ZiBpcmdlbmR3byBpbiBkaWUKICAgICAgVGllZmVuIGRlcyBIYXVzZXMgaW4gZGllIEhOTyBBYnRlaWx1bmcgLi4uIGRvcnQgbmFjaCBlaW5lciBTdHVuZGUKICAgICAgbWVsZGV0IHNpY2ggZW5kbGljaCBlaW4ganVuZ2VyIE1hbm4gaW4gd2Vpc3NlbSBLaXR0ZWw6IFNpZSAKICAgICAgc2luZCBkZXIgTWFubiBtaXQgZGVtIFRpZXIgaW0gT2hyPyAqaWNoIHN0ZWxsIG1pciBnZXJhZGUgdm9yLCAKICAgICAgd2llIGRhIGVpbiBoYWxiZXMgU2Nod2VpbiBkcmluIHN0ZWNrdCB1bmQgbnVyIGRlciBSaW5nZWxzY2h3YW56CiAgICAgIHNjaGF1dCByYXVzKiBBbHNvIHdpciByZWluIGluIHNvIG5lbiB3aW56aWdlbiBSYXVtIHVuZCBkYW5uCiAgICAgIGdlaHRzIFNjaGxhZyBhdWYgU2NobGFnLiBXaWVkZXIgd2lyZCBtaXIgd2FzIGlucyBPaHIgZ2VzdGVja3QKICAgICAgdW5kIGVyIHNjaGF1dCByZWluIHVuZCBtdXJtZWx0ICJTaW5kIGltbWVyIHdpZWRlciBkaWUgZ2xlaWNoZW4gCiAgICAgIFRpZXJjaGVuIGRpZSBkYSByZWlua3JpZWNoZW4iLCBzY2huYXBwdCBzaWNoIHNvIGVpbmUgZ2V3aW5rZWx0ZQogICAgICBaYW5nZSB1bmQgZGFubiAqdWFoaGhoKiBTbyBtdXNzIGVzIHNlaW4sIHdlbm4gZWluZW0gZWluZXIgZGFzCiAgICAgIEhpcm4gYXVzIGRlbSBPaHIgcmF1c3ppZWh0LCB3YXMgZnVlciBlaW4gRHJ1Y2sgLi4uIHVuZCBzY2h3dXBwcwogICAgICBkYSBsaWVndCBkZXIgd2luemlnZSAiS2FkYXZlciIgZWluZXMga2xlaW5lbiBicmF1bmVuIEthZWZlcnMKICAgICAgdm9yIG1pciBhdWYgbmVtIFN0dWVjayBNdWxsLgoKSXJnZW5kd2FubiBnZWdlbiAwODozMCB3YXJlbiB3aXIgZGFubiB3aWVkZXIgenVoYXVzZSB1bmQga29ubnRlbiBhdWNoCnNjaG9uIEJyb2V0Y2hlbiB6dW0gRnJ1ZWhzdHVlY2sgbWl0YnJpbmdlbi4gQXVmIGplZGVuZmFsbCBlaW5lIGludGVyLQpyZXNzYW50ZSBFcmZhaHJ1bmcgKnNjaHJhcCouCgpIYXRlLCBkZXIgZnJvaCBpc3QsIGRhcyBUaWVyIGVsZWd0IHp1IGhhYmVuLCBhdWNoIHdlbm5zIGRhbm4gZWluCmFuZGVyZXIgYWxzIGVyc3RlciBhdXNnZWt1bmRzY2hhZnRldCBoYXQgdW5kIGVpbiB6d2VpdGVyIGVpbmdlaG9sdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPaHJ3dWVybWVyIChHcmltbWJvcm4sIDEwLiBKdWwgMTk5OSwgMjA6MzI6MjcpOgp+IyEgcm49SGF0ZSBydD05MzE2MTUzNjQgcmc9d2l0emUKfiMhIHRpZD05MzE2MTUzNjQKR2FicyBkYWZldXIgd2VuaWdzdGVucyBTdHVwc2U/CgpHcmltbWJvcm4gZGVyIEF0aGVpc3QuIFJlaXNzdCBzaWNoIEJhZW5kZXIgbnVyIGltIE9zdGVuLCB1bSB2b20gaGVydm9ycmFnZW5kZW4KZG9ydGlnZW4gc296aWFsZW4gdW5kIG1lZGl6aW5pc2NoZW4gU2VydmljZSB6dSBwcm9maXRpZXJlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBPaHJ3dWVybWVyIChSYWZmaSwgMTAuIEp1bCAxOTk5LCAyMDozNjoyNSk6Cn4jISBybj1IYXRlIHJ0PTkzMTYxNTM2NCByZz13aXR6ZQp+IyEgdGlkPTkzMTYxNTM2NApHaWVzc2hhcnohCkRhbm4ga2FubnN0ZSBlcyBhbHMgYW5oYWVuZ2VyIHJ1bXRyYWdlbiB1bmQgYWxsZW4gZGllc2VuIGtpbGwgYXVjaCBzY2hvZW4KemVpZ2VuLi4uLgoKSC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogT2hyd3Vlcm1lciAoSGF0ZSwgMTAuIEp1bCAxOTk5LCAyMTowNTozNik6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTMxNjMxNTQ3IHJnPXdpdHplCn4jISB0aWQ9OTMxNjE1MzY0CldhcyBicmF1Y2ggaWNoIFN0dXBzZSAuLi4KCkhhdGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkZXIgdWx0aW1hdGl2ZSBrYWxlbmRlci4uLiAoR25vbWUsIDEzLiBKdWwgMTk5OSwgMTI6MzY6MDkpOgp0ZXJtaW5rYWxlbmRlciBmdWVyIGVpbGlnZSBhcmJlaXRlbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKREkgICAgTUkgICAgRE8gICAgRlIgICAgRlIgICAgRlIgICAgcmVzZXJ2ZQogOCAgICAgNyAgICAgNiAgICAgNSAgICAgNCAgICAgMyAgICAgICAgMgoxNiAgICAxNSAgICAxNCAgICAxMiAgICAxMSAgICAxMCAgICAgICAgOQoyMyAgICAyMiAgICAyMSAgICAyMCAgICAxOSAgICAxOCAgICAgICAxNwozMCAgICAyOSAgICAyOCAgICAyNyAgICAyNiAgICAyNSAgICAgICAyNAozNyAgICAzNiAgICAzNSAgICAzNCAgICAzMyAgICAzMiAgICAgICAzMQoKZGllc2VyIGthbGVuZGVyIHd1cmRlIHNwZXppZWxsIGZ1ZXIgZWlsaWdlIGFyYml0ZW4gZW50d2lja2VsdC4KCmVyIGJpZXRldCBmb2xnZW5kZXIgdm9ydGVpbGU6CgoxLiBiZWthbm50bGljaCBsYXV0ZXQgZGVyIHRlcm1pbiBmdWVyIGFsbGUgZWlsaWdlIGFyYmVpdGVuICJnZXN0ZXJuIi4KICAgbWl0IGhpbGZlIGRpZXNlcyBrYWxlbmRlcnMga2FubiB6LkIuIGVpbiBhdWZ0cmFnIGFtIDcuIGFuZ2Vub21tZW4KICAgd2VyZGVuIHVuZCBhbSA2LiBmZXJ0aWdnZXN0ZWxsdCBzZWluLgogICAKMi4gZGllIG1laXN0ZW4gYXJiZWl0ZW4gc29sbGVuIGZyZWl0YWdzIGZlcnRpZyBzZWluLiBkZXNoYWxiIGhhdCBqZWRlCiAgIHdvY2hlIDMgZnJlaXRhZ2UuCiAgIAozLiB1bSBhdXNyZWljaGVuZCB6ZWl0IGZ1ZXIgZGllIGFtIG1vbmF0c2VuZGUgc2ljaCB1ZWJlcnNjaGxhZ2VuZGVuIHRlcm1pbmUKICAgenVyIHZlcmZ1ZWd1bmcgenUgaGFiZW4sIGVyaGFlbHQgamVkZXIgbW9uYXQgNiB0YWdlIHp1c2FldHpsaWNoLgogICAKNC4gZXMgZ2lidCBrZWluZW4gImVyc3RlbiIgbWVoci4gZGFkdXJjaCBrb2VubmVuIHRlcm1pbmFyYmVpdGVuIG5pY2h0IG1laHIKICAgdm9tIG1vbmF0c2VuZGUgYXVmIGRlbiAiZXJzdGVuIiB2ZXJzY2hsZXBwdCB3ZXJkZW4uCiAgIAo1LiBkZXIgYmxhdWUgbW9udGFnIHd1cmRlIGViZW5zbyBhYmdlc2NoYWZmdCwgd2llIGRpZSB1bnByb2R1dGl2ZW4gc2Ftc3RhZ2UKICAgdW5kIHNvbm50YWdlIHVuZCBkZXIgMTMuIHd1cmRlIGdlc3RyaWNoZW4sIGRhIGRpZXNlciB0YWcgYXVmIGVpbmVuIGZyZWl0YWcKICAgZmFsbGVuIHd1ZXJkZS4KICAgCjYuIG5ldSBpc3QgZGVyIHJlc2VydmV0YWcuIG1pdCBzZWluZXIgaGlsZmUga2FubiB2ZXJtaWVkZW4gd2VyZGVuLCBkYXNzIGJlaQogICBlcmxlZGlndW5nIGJlc29uZGVycyBlaWxpZ2VyIGF1ZnRyYWVnZSBlaW5lIHBhbmlrIGF1c2JyaWNodC4KICAgCiAgIAoKZ25PbWUsIGdyaW5zdCBpbW1lciBub2NoLi4uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaWxsIEdhdGVzIEdyYW50cyBTZWxmIDE4IERleCwgMjAgQ2hhciAoWWVuZGksIDEzLiBKdWwgMTk5OSwgMTU6MTY6NTMpOgoKQklMTCBHQVRFUyBHUkFOVFMgU0VMRiAxOCBERVhURVJJVFksIDIwIENIQVJJU01BICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgIFJFRE1PTkQsIFdBLS1NaWNyb3NvZnQgaGVhZCBCaWxsIEdhdGVzLCBhbHJlYWR5IGNvbnNpZGVyZWQgYnkgbWFueQp0byBiZSBhbW9uZyB0aGUgbW9zdCBwb3dlcmZ1bCBtZW4gaW4gdGhlIHdvcmxkLCBmdXJ0aGVyIGluY3JlYXNlZCBoaXMgcG93ZXJzCk1vbmRheSwgYXVnbWVudGluZyBzZXZlcmFsIG9mIGhpcyBrZXkgc3RhdGlzdGljcyB0byBuZWFyLWltbW9ydGFsIGxldmVscy4gCgogICAgICBBbW9uZyB0aGUgbW9zdCBzdHJpa2luZyBpbmNyZWFzZXMgd2VyZSBhICsyIHJhaXNlIGluIGRleHRlcml0eSB0byAxOCwKYW5kIGFuIG92ZXJ3aGVsbWluZyBjaGFyaXNtYSBpbmNyZWFzZSB0byBhbiBhYm92ZS1odW1hbiBzY29yZSBvZiAyMCwgcGxhY2luZwpHYXRlcyBpbiB0aGUgcmVhbG0gb2YgZGVpdGllcyBhbmQgZGVtaWdvZHMuIAoKICAgICAgIkkgYW0gcGxlYXNlZCB0byBhbm5vdW5jZSB0aGF0IEkgaGF2ZSBib29zdGVkIG15IGFscmVhZHkgaW1wcmVzc2l2ZQpzdGF0aXN0aWNzLCIgR2F0ZXMgc2FpZCBpbiBhIHN0YXRlbWVudCB0byBzaGFyZWhvbGRlcnMgTW9uZGF5LiAiQXMgd2UgZGV2ZWxvcAp0aGUgdGVjaG5vbG9naWNhbCBmcmFtZXdvcmsgdGhhdCB3aWxsIGRvbWluYXRlIHRoZSAyMXN0IGNlbnR1cnksIHRoZXNlIAphdWdtZW50YXRpb25zLS1hbmQgb3RoZXJzIHRvIGZvbGxvdy0td2lsbCBiZSBwb3dlcmZ1bCB3YXJkcyBhZ2FpbnN0CmNvbXBldGl0aW9uIGZyb20gdGhlIGxpa2VzIG9mIE5ldHNjYXBlLCBPcmFjbGUgYW5kIE1lbGtvciB3aG8gaXMgbmFtZWQKTW9yZ290aC4iIAoKICAgICAgIk1pY3Jvc29mdCBpcyB0aGUgc29mdHdhcmUtaW5kdXN0cnkgbGVhZGVyIHRvZGF5LCBhbmQgdG9tb3Jyb3cgaXQgd2lsbAphbHNvIGRvbWluYXRlIHRoZSByZWFsbSBvZiBpbmZvcm1hdGlvbiBhY2Nlc3MsIGFzIHdlbGwgYXMgdGhlIGNvbnRlbnQgYmVpbmcgCmFjY2Vzc2VkLCIgR2F0ZXMgc2FpZC4gIlRoZSBjb250aW51ZWQgZ3Jvd3RoIG9mIG91ciBDb3JiaXMgTWVkaWEgYXJjaGl2ZSwgdGhlCnN1Y2Nlc3NmdWwgZGV2ZWxvcG1lbnQgYW5kIGxhdW5jaCBvZiBNU05CQywgYW5kIG15IG1hc3Rlcnkgb2YgdGhlIHNoaWVsZApzcGVsbHMgb2YgdGhlIEVsdmVuIEtpbmcgTGFnb2xpbiBhcmUgb25seSB0aGUgYmVnaW5uaW5nIGZvciBNaWNyb3NvZnQuIiAKCiAgICAgIEdhdGVzLCB3aG8gcmFpc2VkIGhpcyBpbnRlbGxpZ2VuY2UgdG8gMjAgaW4gMTk5MCwgaXMgZmFzdCBiZWNvbWluZyB0aGUKbW9zdCBwb3dlcmZ1bCBDRU8gaW4gQW1lcmljYW4gbWVkaWEuIEV4cGVydHMgcGxhY2UgaGltIGFib3ZlIEZveCdzIFJ1cGVydApNdXJkb2NoIGFuZCBEaXNuZXkncyBNaWNoYWVsIEVpc25lciwgYm90aCBvZiB3aG9tIGhvbGQgb3ZlciAxLjIgbWlsbGlvbiBoaXQgCnBvaW50cy4gR2F0ZXMgaXMgYWxzbyBydW1vcmVkIHRvIGJlIGluIHBvc3Nlc3Npb24gb2YgYSBiYWcgb2YgaG9sZGluZwpjb250YWluaW5nIG9uZSB0ZXJhYnl0ZSBvZiBpbmZvcm1hdGlvbiwgYXMgd2VsbCBhcyBvdmVyIDEwMCBiaWxsaW9uIGdvbGQgYW5kCnNpbHZlciBwaWVjZXMuIAoKICAgICAgQW5hbHlzdHMgc2VlIE1vbmRheSdzIHN0YXRpc3RpY2FsIGJvb3N0IGFzIGV4dHJlbWVseSBiZW5lZmljaWFsIHRvCkdhdGVzIGluIGFuIGluY3JlYXNpbmdseSBjb21wZXRpdGl2ZSBtYXJrZXRwbGFjZS4gCgogICAgICAiVGhpcyBpcyBhIHZlcnkgc2hyZXdkIG1vdmUgb24gR2F0ZXMnIHBhcnQsIiBQQyBNYWdhemluZSBjb2x1bW5pc3QgSm9obgpDLiBEdm9yYWsgc2FpZC4gIkhpcyB2YXN0bHkgaW5jcmVhc2VkIGNoYXJpc21hLS10aGUgcHJpbWUgc3RhdCBvZiBhIGNoYW90aWMKZXZpbCBleGVjdXRpdmUtLXdpbGwgaGVscCBoaW0gdHJlbWVuZG91c2x5IGluIGhpcyBvbmdvaW5nIHN0cnVnZ2xlIHRvIGNvbnZpbmNlCnNrZXB0aWNhbCBNaWNyb3NvZnQgc3RvY2tob2xkZXJzIHRoYXQgaGlzIHZlbnR1cmVzIGludG8gdGVsZXZpc2lvbiBhbmQgaGlzIAptYXNzaXZlIGNvbnRlbnQtYnV5aW5nIHNwcmVlIHdpbGwgcGF5IG9mZiBpbiB0aGUgbG9uZyBydW4uIFRoZSBleHRyYSBDSFIgd2lsbAphbHNvIGFzc2lzdCBoaW0gZ3JlYXRseSBpbiBkZWFsaW5nIHdpdGggd2FyeSBDRU9zIG9mIGNvbXBhbmllcyBoZSB3aXNoZXMgdG8KaW52ZXN0IGluIGFuZCBjYXN0IHNwZWxscyBvdmVyLCBsaWtlIENvbWNhc3QuIiAKCiAgICAgICJJdCBoYXJkbHkgc2VlbXMgZmFpciwgYnV0IGhlIHdpbGwgbm93IGJlIGNhcGFibGUgb2YgbmVhci1pbnZpc2liaWxpdHkKaW4gYmVoaW5kLXRoZS1zY2VuZXMgYnVzaW5lc3MgZGVhbGluZ3MsIiBEdm9yYWsgYWRkZWQsIHJlZmVycmluZyB0byB0aGUKc3RlYWx0aCBhdWdtZW50IHdoaWNoIGNvbWVzIHdpdGggYSBkZXh0ZXJpdHkgZ2Fpbi4gIkFuZCBhdCB0aGUgc2FtZSB0aW1lLApoZSdsbCB3ZWFyIE1vcmRla2FpbmVuJ3MgU3BlY3RhY2xlcyBvZiBUcnVlIFNpZ2h0LCB3aGljaCBwcm92aWRlICs2IGluc2lnaHQKZ2FpbnMgaW50byBsb25nLXRlcm0gV2luZG93cyBtYXJrZXRpbmcgc3RyYXRlZ2llcy4iIAoKICAgICAgV2hpbGUgZmV3IHF1ZXN0aW9uIHRoZSB3aXNkb20gYmVoaW5kIEdhdGVzJyBzdGF0IGluY3JlYXNlcywgdGhlcmUKcmVtYWlucyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIEZlZGVyYWwgVHJhZGUgQ29tbWlzc2lvbiwgd2hpY2ggaW4gMTk5NiBydWxlZApoaXMgbGljZW5zaW5nIGFncmVlbWVudCB3aXRoIGNvbXB1dGVyIG1hbnVmYWN0dXJlcnMgdG8gYmUgaW4gdmlvbGF0aW9uIG9mCmFudGktdHJ1c3QgbGF3cywgd2lsbCBjaGFsbGVuZ2UgdGhlIG1vdmUuIEV2ZW4gaWYgdGhlIEZUQyBydWxlcyBhZ2FpbnN0IEdhdGVzLApob3dldmVyLCBpbmR1c3RyeSBhbmFseXN0cyBiZWxpZXZlIHRoYXQgaGUgc2hvdWxkIGVhc2lseSByZWNvdmVyLCB0aGFua3MgdG8KaGlzIGFib3ZlLWF2ZXJhZ2UgMTUgY29uc3RpdHV0aW9uLiAKCiAgICAgIEdhdGVzJyByaXZhbHMgZXhwcmVzc2VkIGZydXN0cmF0aW9uIG92ZXIgaGlzIGFiaWxpdHkgdG8gYWNoaWV2ZQppbnZ1bG5lcmFiaWxpdHkgaW4gYSBzdXBwb3NlZGx5IGNvbXBldGl0aXZlIG1hcmtldC4gIkNvbWJpbmluZyB0aGlzCmF1Z21lbnRhdGlvbiB3aXRoIGxhc3QgbW9udGgncyBwdXJjaGFzZSBvZiB0aGUgUG9sbyBTaGlydCBvZiBUaGFsa2V0dG90aCwKd2hpY2ggZ3JhbnRzIGEgKzUgc2F2aW5nIHRocm93IGFnYWluc3QgYW50aS10cnVzdCBsaXRpZ2F0aW9uLCBHYXRlcyBzaG91bGQgbm93CmJlIHNlZW4gYXMgb3BlcmF0aW5nIG91dHNpZGUgdGhlIGxhdywiIEFwcGxlIENFTyBEci4gR2lsYmVydCBBbWVsaW8gc2FpZApUdWVzZGF5LiAiT25lIG1vcmUgc29yY2Vyb3VzIHBvdGlvbiBvZiBHYWluIE1hcmtldCBTaGFyZSwgYW5kIHdlIG1pZ2h0IGFzIHdlbGwKZGVjbGFyZSBiYW5rcnVwdGN5LiIKCiAgICAgICJBbnlvbmUgY2FuIGJlIGEgU2FudGEgQ2xhdXMgRE0gYW5kIGdpdmUgb3V0IHVuZWFybmVkIHN0YXRzLCIgT3JhY2xlCnByZXNpZGVudCBMYXJyeSBFbGxpc29uIHNhaWQuICJJJ20gc3VycHJpc2VkIGhlIGRpZG4ndCBqdXN0IGdvIGFoZWFkIGFuZCBnaXZlCmhpbXNlbGYgYSAyMCBpbiBldmVyeXRoaW5nLiIgCiAgICAgIFdpdGggb3ZlcnBvd2VyaW5nIHN0YXRpc3RpY3MgaW4gYWxsIHNpeCBhYmlsaXR5IGNhdGVnb3JpZXMsIHdpdGggdGhlCmV4Y2VwdGlvbiBvZiBzdHJlbmd0aCwgR2F0ZXMgaXMgd2lkZWx5IGNvbnNpZGVyZWQgdG8gYmUgcHJpbWVkIGZvciB0aGUKS2luZ3NoaXAuIAoKICAgICAgIkNlcnRhaW5seSBoaXMgY2FtcGFpZ24gY291bGQgYmUgY3J1c2hlZCBpZiBoZSBtYWRlIGEgbWlzdGFrZSwiIEFCQwpjb21wdXRlciBjb3JyZXNwb25kZW50IEdlZW5hIFNtaXRoIHNhaWQuICJCdXQgbGV0J3MgYmUgcmVhbGlzdGljLiBIZSdzIGdvdCA0MAptaWxsaW9uIGV4cGVyaWVuY2UgcG9pbnRzIGRhdGluZyBiYWNrIHRvIHdoZW4gaGUgZHJvcHBlZCBvdXQgb2YgSGFydmFyZC4gSGlzIApwYXJ0eSBoYXMgZG9uZSBub3RoaW5nIGJ1dCBraWxsIGFuZCBhY3F1aXJlIGZvciAyMiB5ZWFycy4gSGUga25vd3Mgd2hlbiB0bwpjYXN0IHZlcnN1cyB3aGVuIHRvIGhhY2stYW5kLXNsYXNoLiBIZSB3aWxsIGJlIHRoZSBlbXBlcm9yIGxpY2ggb2YgMjFzdApjZW50dXJ5IG1lZGlhLiIgCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpuYSB3ZXJzIHdpdHppZyBmaW5kZXQgLi4uIChBc2hhbiwgMTguIEp1bCAxOTk5LCAyMTo1Mzo0NCk6CkFsbGdlbWVpbjpaZXRpIFdlaXNzIGlyZ2VuZHdlciB3byBEcmFrb25pZW4gaXN0PyAKQWxsZ2VtZWluOlBhZHJlaWMgZHJha29uaWVuLCBtb20uIGxhc3MgbWljaCBtYWwgdWViZXJsZWdlbgpBbGxnZW1laW46UGFkcmVpYyBkYSBnZWhzdGUgYmVpbSBkdXJjaCBkaWUgb3N0ZXJiYWNoc2NobHVjaHQgZGEgZ2lidHMgbmVuCkFsbGdlbWVpbjpQYWRyZWljIHdhc3NlcmZhbGwgZGEgbXVzc3RlIGR1cmNoCkFsbGdlbWVpbjpMaWFyYSBvayBmcmFnIGlobiBuaWNodCA6LSkKQWxsZ2VtZWluOlBhZHJlaWMgZGFubiBydXRzY2hlIGRhIGxhbmdzYW0gcnVudGVyIGluIGVpbiB0YWwsIGRhIGxpZWd0IGRhbm4KQWxsZ2VtZWluOlBhZHJlaWMgYXVjaCBkcmFrb25pZW4KQWxsZ2VtZWluOlBhZHJlaWMga2FubnN0ZSBnYXIgbmljaHQgdmVycGFzc2VuCkFsbGdlbWVpbjpTcGlyaWxsIHBhZHJlaWMsIGRhdCBpcyB3YXQgYW5kZXJlcnMuLgpBbGxnZW1laW46UGFkcmVpYyB3aWxsc3QgZHUgZXR3YSBzYWdlbiBpY2ggbHVlZ2UgU3BpcmlsPz8/PyA6KQpBbGxnZW1laW46U3BpcmlsbCBkdWNrdCBzaWNoIHNjaG9ubWFsLgpBbGxnZW1laW46TGlhcmEgaG0gd2lyIGtvZW5udGVuIGF1Y2ggc2FnZW4gZHUgaGFzdCBrZWluZSBhaG51bmcgKmcqIDstKQpBbGxnZW1laW46UGFkcmVpYyBwb2VoIQpBbGxnZW1laW46TGlhcmEgZWJlbiBkZXNoYWxiIGx1ZWdzdGUgOy0pClRvZDpMYXJzIFBhZHJlaWMgaGF0IGdlcmFkZSBMaWFyYSB1bWdlYnJhY2h0LgpBbGxnZW1laW46U3BpcmlsbCBraWNoZXJ0LgpCZWlsZWlkOk1pcmphbSBhcmdsIHNwaW5uc3QgZHU/CkJlaWxlaWQ6UGFkcmVpYyBncmluc3QuCkJlaWxlaWQ6TWlyamFtIHRvbGwgaWNoIGhhYiBncmFkIGRlbiBicnVkZXIgZ2VoYXVuIGRhbmtlIDooO0FsbGdlbWVpbjpaZXRpIDotKQpCZWlsZWlkOlNwaXJpbGwgbmljaHQgd2lya2xpY2gsIG9kZXIgLi4uCkFsbGdlbWVpbjpNaXJqYW0gemV0aSBzdGVsbCBuaWUgd2llZGVyIHNvbGNoZSBmcmFnZW4KQmVpbGVpZDpUYXJpbmEgZG9jaCwgYmVzdGltbXQgd2lya2xpY2guCkJlaWxlaWQ6QXNoYW4gd2FzIGRlbm4sIGRpZSB3YWhyaGVpdCB3aXJkIG1pdCBkZW0gdG9kIGJlc3RyYWZ0ID8KQmVpbGVpZDpQYWRyZWljIHdhaHJoZWl0IGlzdCBpbW1lciB3YXMgcmVsYXRpdmVzIDopCgoKKGtlaW4ga29tbWVudGFyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYWx0IHVuZCBlbmdsaXNjaCwgYWJlciB0cm90emRlbSAuLi4gOi0pIChKZW5hbmRyYSwgMjcuIEp1bCAxOTk5LCAxMTo1NDoxOCk6CkNvbnN1bWVyIGxhYmVscwoKU29tZSBleGFtcGxlcyBvZiB3aHkgdGhlIGh1bWFuIHJhY2UgaGFzIHByb2JhYmx5IGV2b2x2ZWQgYXMgZmFyIGFzCnBvc3NpYmxlLlRoZXNlIGFyZSBhY3R1YWwgaW5zdHJ1Y3Rpb24gbGFiZWxzIG9uIGNvbnN1bWVyIGdvb2RzLi4uCk9uIFNlYXJzIGhhaXJkcnllcjogRG8gbm90IHVzZSB3aGlsZSBzbGVlcGluZy4gIChHZWUsIHRoYXQncyB0aGUgb25seSB0aW1lIEkKaGF2ZSB0byB3b3JrIG9uIG15IGhhaXIhKQpPbiBhIGJhZyBvZiBGcml0b3M6IFlvdSBjb3VsZCBiZSBhIHdpbm5lciEgTm8gcHVyY2hhc2UgbmVjZXNzYXJ5LiBEZXRhaWxzCmluc2lkZS4oVGhlIHNob3BsaWZ0ZXIgc3BlY2lhbCEpCk9uIGEgYmFyIG9mIERpYWwgc29hcDogRGlyZWN0aW9uczogVXNlIGxpa2UgcmVndWxhciBzb2FwLihhbmQgdGhhdCB3b3VsZCBiZQpob3c/KQpPbiBzb21lIFN3YW5uIGZyb3plbiBkaW5uZXJzOiBTZXJ2aW5nIHN1Z2dlc3Rpb246IERlZnJvc3QuICAoQnV0IGl0J3MgJ2p1c3QnIGEKc3VnZ2VzdGlvbiEpCk9uIFRlc2NvJ3MgVGlyYW1pc3UgZGVzc2VydDogKHByaW50ZWQgb24gYm90dG9tIG9mIHRoZSBib3gpICBEbyBub3QgdHVybgp1cHNpZGUgZG93bi4gIChUb28gbGF0ZSEgeW91IGxvc2UhKQpPbiBNYXJrcyAmIFNwZW5jZXIgQnJlYWQgUHVkZGluZzogUHJvZHVjdCB3aWxsIGJlIGhvdCBhZnRlciBoZWF0aW5nLiAgIChBcmUKeW91IHN1cmU/IExldCdzIGV4cGVyaW1lbnQuKQpPbiBCb290J3MgQ2hpbGRyZW4ncyBjb3VnaCBtZWRpY2luZTogRG8gbm90IGRyaXZlIGNhciBvciBvcGVyYXRlIG1hY2hpbmVyeS4oV2UKY291bGQgZG8gYSBsb3QgdG8gcmVkdWNlIHRoZSBjb25zdHJ1Y3Rpb24gYWNjaWRlbnRzIGlmIHdlIGp1c3Qga2VwdCB0aG9zZSA1CnllYXIgb2xkcyBvZmYgdGhvc2UgZm9yayBsaWZ0cy4pCk9uIE55dG9sIHNsZWVwIGFpZDogV2FybmluZzogbWF5IGNhdXNlIGRyb3dzaW5lc3MuIChPbmUgd291bGQgaG9wZSEpCk9uIGEgc3RyaW5nIG9mIENocmlzdG1hcyBsaWdodHM6IEZvciBpbmRvb3Igb3Igb3V0ZG9vciB1c2Ugb25seS4gIChBcyBvcHBvc2VkCnRvIHVzZSBpbiBvdXRlciBzcGFjZS4pCk9uIGEgZm9vZCBwcm9jZXNzb3I6IE5vdCB0byBiZSB1c2VkIGZvciB0aGUgb3RoZXIgdXNlLiAoTm93IEknbSBjdXJpb3VzLikKT24gU2FpbnNidXJ5J3MgcGVhbnV0czogV2FybmluZzogY29udGFpbnMgbnV0cy4gIChidXQgbm8gcGVhcz8pCk9uIGEgU3dlZGlzaCBjaGFpbnNhdzogRG8gbm90IGF0dGVtcHQgdG8gc3RvcCBjaGFpbiB3aXRoIHlvdXIgaGFuZHMuICAoUmFpc2UKeW91ciBoYW5kIGlmIHlvdSd2ZSB0cmllZCB0aGlzLi4uKQpPbiBhIGNoaWxkJ3MgU3VwZXJtYW4gY29zdHVtZTogV2VhcmluZyBvZiB0aGlzIGdhcm1lbnQgZG9lcyBub3QgZW5hYmxlIHlvdSB0bwpmbHkgIChPaCBnbyBhaGVhZCEgVGhhdCdzIHJpZ2h0LCBkZXN0cm95IGEgdW5pdmVyc2FsIGNoaWxkaG9vZCBiZWxpZWYuKQouLgooYXJnbCA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZXIgLSB2b3JzaWNodCwgbGFuZyA7LSkgKEplbmFuZHJhLCAyNy4gSnVsIDE5OTksIDEyOjAzOjU5KToKSU5TVFJVQ1RJT04gRk9SIEdJVklORyBZT1VSIENBVCBBIFBJTEwuCgpQaWNrIGNhdCB1cCBhbmQgY3JhZGxlIGl0IGluIHRoZSBjcm9vayBvZiB5b3VyIGxlZnQgYXJtIGFzIGlmIGhvbGRpbmcgYSBiYWJ5LgpQb3NpdGlvbiByaWdodCBmb3JlZmluZ2VyIGFuZCB0aHVtYiBvbiBlaXRoZXIgc2lkZSBvZiBjYXQncyBtb3V0aCBhbmQgZ2VudGx5CnBwbHkgcHJlc3N1cmUgdG8gY2hlZWtzIHdoaWxlIGhvbGRpbmcgcGlsbCBpbiByaWdodCBoYW5kLiBBcyBjYXQgb3BlbnMgbW91dGgsCnBvcCBwaWxsIGludG8gbW91dGguIEFsbG93IGNhdCB0byBjbG9zZSBtb3V0aCBhbmQgc3dhbGxvdy4KClJldHJpZXZlIHBpbGwgZnJvbSBmbG9vciBhbmQgY2F0IGZyb20gYmVoaW5kIHNvZmEuIENyYWRsZSBjYXQgaW4gbGVmdCBhcm0gYW5kCnJlcGVhdCBwcm9jZXNzLgoKUmV0cmlldmUgY2F0IGZyb20gYmVkcm9vbSBhbmQgdGhyb3cgc29nZ3kgcGlsbCBhd2F5LgoKVGFrZSBuZXcgcGlsbCBmcm9tIGZvaWwgd3JhcCwgY3JhZGxlIGNhdCBpbiBsZWZ0IGFybSBob2xkaW5nIHJlYXIgcGF3cyB0aWdodGx5CndpdGggbGVmdCBoYW5kLiBGb3JjZSBqYXdzIG9wZW4gYW5kIHB1c2ggcGlsbCB0byBiYWNrIG9mIG1vdXRoIHdpdGggcmlnaHQKZm9yZWZpbmdlci4gSG9sZCBtb3V0aCBzaHV0IGZvciBjb3VudCBvZiB0ZW4uCgpSZXRyaWV2ZSBwaWxsIGZyb20gZ29sZGZpc2ggYm93bCBhbmQgY2F0IGZyb20gdG9wIG9mIHdhcmRyb2JlLiBDYWxsIHNwb3VzZQpmcm9tIGdhcmRlbi4KCktuZWVsIG9uIGZsb29yIHdpdGggY2F0IHdlZGdlZCBmaXJtbHkgYmV0d2VlbiBrbmVlcywgaG9sZCBmcm9udCBhbmQgcmVhciBwYXdzLgpJZ25vcmUgbG93IGdyb3dscyBlbWl0dGVkIGJ5IGNhdC4gR2V0IHNwb3VzZSB0byBob2xkIGhlYWQgZmlybWx5IHdpdGggb25lIGhhbmQKd2hpbGUgZm9yY2luZyB3b29kZW4gcnVsZXIgaW50byBtb3V0aC4gRHJvcCBwaWxsIGRvd24gcnVsZXIgYW5kIHJ1YiBjYXQncwp0aHJvYXQgdmlnb3JvdXNseS4KClJldHJpZXZlIGNhdCBmcm9tIGN1cnRhaW4gcmFpbCwgZ2V0IGFub3RoZXIgcGlsbCBmcm9tIGZvaWwgd3JhcC4gTWFrZSBub3RlIHRvCmJ1eSBuZXcgcnVsZXIgYW5kIHJlcGFpciBjdXJ0YWlucy4gQ2FyZWZ1bGx5IHN3ZWVwIHNoYXR0ZXJlZCBEb3VsdG9uIGZpZ3VyaW5lcwpmcm9tIGhlYXJ0aCBhbmQgc2V0IHRvIG9uZSBzaWRlIGZvciBnbHVpbmcgbGF0ZXIuCgpXcmFwIGNhdCBpbiBsYXJnZSB0b3dlbCBhbmQgZ2V0IHNwb3VzZSB0byBsaWUgb24gY2F0IHdpdGggaGVhZCBqdXN0IHZpc2libGUKZnJvbSBiZWxvdyBhcm1waXQuIFB1dCBwaWxsIGluIGVuZCBvZiBkcmlua2luZyBzdHJhdywgZm9yY2UgbW91dGggb3BlbiB3aXRoIApwZW5jaWwgYW5kIGJsb3cgZG93biBkcmlua2luZyBzdHJhdy4KCkNoZWNrIGxhYmVsIHRvIG1ha2Ugc3VyZSBwaWxsIG5vdCBoYXJtZnVsIHRvIGh1bWFucywgZHJpbmsgZ2xhc3Mgb2Ygd2F0ZXIgdG8KdGFrZSB0YXN0ZSBhd2F5LiBBcHBseSBCYW5kLUFpZCB0byBzcG91c2UncyBmb3JlYXJtIGFuZCByZW1vdmUgYmxvb2QgZnJvbQpjYXJwZXQgd2l0aCBjb2xkIHdhdGVyIGFuZCBzb2FwLgoKUmV0cmlldmUgY2F0IGZyb20gbmVpZ2hib3VyJ3Mgc2hlZC4gR2V0IGFub3RoZXIgcGlsbC4gUGxhY2UgY2F0IGluIGN1cGJvYXJkCmFuZCBjbG9zZSBkb29yIG9udG8gbmVjayB0byBsZWF2ZSBoZWFkIHNob3dpbmcuIEZvcmNlIG1vdXRoIG9wZW4gd2l0aCBkZXNzZXJ0CnNwb29uLiBGbGljayBwaWxsIGRvd24gdGhyb2F0IHdpdGggZWxhc3RpYyBiYW5kLgoKRmV0Y2ggc2NyZXdkcml2ZXIgZnJvbSBnYXJhZ2UgYW5kIHB1dCBkb29yIGJhY2sgb24gaGluZ2VzLiBBcHBseSBjb2xkIGNvbXByZXNzCnRvIGNoZWVrIGFuZCBjaGVjayByZWNvcmRzIGZvciBkYXRlIG9mIGxhc3QgdGV0YW51cyBzaG90LiBUaHJvdyBULXNoaXJ0IGF3YXkKYW5kIGZldGNoIG5ldyBvbmUgZnJvbSBiZWRyb29tLgoKQ2FsbCBmaXJlIGRlcGFydG1lbnQgdG8gcmV0cmlldmUgY2F0IGZyb20gdHJlZSBhY3Jvc3MgdGhlIHJvYWQuIEFwb2xvZ2l6ZSB0bwpuZWlnaGJvdXIgd2hvIGNyYXNoZWQgaW50byBmZW5jZSB3aGlsZSBzd2VydmluZyB0byBhdm9pZCBjYXQuIFRha2UgbGFzdCBwaWxsIApmcm9tIGZvaWwgd3JhcC4KClRpZSBjYXQncyBmcm9udCBwYXdzIHRvIHJlYXIgcGF3cyB3aXRoIGdhcmRlbiB0d2luZSBhbmQgYmluZCB0aWdodGx5IHRvIGxlZyBvZgpkaW5pbmcgdGFibGUsIGZpbmQgaGVhdnkgZHV0eSBwcnVuaW5nIGdsb3ZlcyBmcm9tIHNoZWQsIGZvcmNlIGNhdCdzIG1vdXRoICBwZW4Kd2l0aCBzbWFsbCBwbGllcnMuIFB1c2ggcGlsbCBpbnRvIG1vdXRoIGZvbGxvd2VkIGJ5IGxhcmdlIHBpZWNlIG9mIGZpbGxldApzdGVhay4gSG9sZCBoZWFkIHZlcnRpY2FsbHkgYW5kIHBvdXIgMS8yIHBpbnQgb2Ygd2F0ZXIgZG93biB0aHJvYXQgdG8gd2FzaApwaWxsICBkb3duLgoKR2V0IHNwb3VzZSB0byBkcml2ZSB5b3UgdG8gdGhlIGVtZXJnZW5jeSByb29tLiBTaXQgcXVpZXRseSB3aGlsZSBkb2N0b3IKc3RpdGNoZXMgZmluZ2VycyBhbmQgZm9yZWFybSBhbmQgcmVtb3ZlcyBwaWxsIHJlbW5hbnRzIGZyb20gcmlnaHQgZXllLiBHbyB0byAKZnVybml0dXJlIHNob3Agb24gd2F5IGhvbWUgdG8gb3JkZXIgbmV3IHRhYmxlLgoKQXJyYW5nZSBmb3IgU1BDQSB0byBjb2xsZWN0IGNhdCBhbmQgY2FsbCBsb2NhbCBwZXQgc2hvcCB0byBzZWUgaWYgdGhleSBoYXZlCmhhbXN0ZXJzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRG8geW91IGtub3cuLi4gKEhvYm8sIDI3LiBKdWwgMTk5OSwgMTI6NTM6MjQpOgpXaHkgdGVjaGljYWwgcGVvcGxlIGFyZSBwYWlkIGxlc3MgdGhhbiBtYW5hZ2Vycz8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpFbmdlZW5pZXJzIGFuZCBzY2llbnRpc3RzIHdpbGwgbmV2ZXIgbWFrZSBhcyBtdWNoIG1vbmV5IGFzCmJ1c2luZXNzCmVuZ2VlbmllcnMuIE5vdyBhIHJpZ2Vyb3VzIG1hdGhlbWF0aWNhbCBwcm9vZiB0aGF0IGV4cGxhaW5zIHdoeQp0aGlzIGlzCnRydWU6CgpQb3N0dWxhdGUgMTogS25vd2xlZGdlIGlzIFBvd2VyLgpQb3N0dWxhdGUgMjogVGltZSBpcyBNb25leS4KCkFzIGV2ZXJ5IGVuZ2luZWVyIGtub3dzLgoKICAgICAgICAgICBXb3JrCiAgIFBvd2VyID0gLS0tLS0tCiAgICAgICAgICAgIFRpbWUKClNpbmNlIEtub3dsZWRnZT1Qb3dlciBhbmQgVGltZT1Nb25leSwgd2UgaGF2ZQoKICAgICAgICAgICAgICAgIFdvcmsKICAgS25vd2xlZGdlID0gLS0tLS0tLQogICAgICAgICAgICAgICAgTW9uZXkKClNvbHZpbmcgZm9yIE1vbmV5IHdlIGdldDoKCiAgICAgICAgICAgICAgV29yawogICBNb25leSA9IC0tLS0tLS0tLS0tCiAgICAgICAgICAgIEtub3dsZWRnZQoKVGh1cywgYXMgS25vd2xlZGdlIGFwcHJvYWNoZXMgemVybywgTW9uZXkgYXBwcm9hY2hlcyBpbmZpbml0eQpyZWdhcmRsZXNzIG9mCnRoZSBXb3JrIGRvbmUuCgpDb25jbHVzaW9uOiBUaGUgbGVzcyB5b3Uga25vdywgdGhlIG1vcmUgbW9uZXkgeW91IG1ha2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaWNyb3NvZnQgZXJyb3IgYWRzIChQcmEsIDI4LiBKdWwgMTk5OSwgMTA6Mjc6MjEpOgpIZXV0ZSBkdXJjaCBkaWUgTlQtRkFRLU1haWxpbmdsaXN0IGJla29tbWVuLiBWaWVsbGVpY2h0IGlzdCBlcyBhbHNvIF9rZWluXwpXaXR6IQoKMjV0aCBKdWx5IDE5OTkKCk1JQ1JPU09GVCBUTyBTRUxMIEFEIFNQQUNFIElOIEVSUk9SIE1FU1NBR0VTCgpNaWNyb3NvZnQgKE5hc2RhcTogTVNGVCkgYW5ub3VuY2VkIHRoYXQgaXQgaXMgc2VsbGluZyBhZHZlcnRpc2luZyBzcGFjZSBpbgp0aGUgZXJyb3IgbWVzc2FnZXMgdGhhdCBhcHBlYXIgaW4gV2luZG93cy4gQWNrbm93bGVkZ2luZyBmb3IgdGhlIGZpcnN0IHRpbWUKdGhhdCB0aGUgYXZlcmFnZSB1c2VyIG9mIHRoZWlyIG9wZXJhdGluZyBzeXN0ZW0gZW5jb3VudGVycyBlcnJvciBtZXNzYWdlcyBhdApsZWFzdCBzZXZlcmFsIHRpbWVzIGEgZGF5LCBNaWNyb3NvZnQgaXMgdHJ5aW5nIHRvIHRha2UgZmluYW5jaWFsIGFkdmFudGFnZQpvZiB0aGUgdW5hdm9pZGFibGUgb3Bwb3J0dW5pdHkgdG8gbWFrZSBhbiBhZCBpbXByZXNzaW9uLgoKIldlIGVzdGltYXRlIHRoYXQgdGhyb3VnaG91dCB0aGUgd29ybGQgYXQgYW55IGdpdmVuIG1vbWVudCBzZXZlcmFsIG1pbGxpb24KcGVvcGxlIGFyZSBnZXR0aW5nIGEgR2VuZXJhbCBQcm90ZWN0aW9uIEZhdWx0IG9yIElsbGVnYWwgT3BlcmF0aW9uCndhcm5pbmcuIFdlIHdpbGwgYmUgYWJsZSB0byBnZW5lcmF0ZSBzaWduaWZpY2FudCByZXZlbnVlIGJ5IGluY2x1ZGluZyBhCnNob3J0IGFkdmVydGlzaW5nIG1lc3NhZ2UgYWxvbmcgd2l0aCBpdCwiIHNhaWQgTWljcm9zb2Z0IG1hcmtldGluZyBkaXJlY3RvcgpOYXRoYW4gTWlycm9yLiBIZSBhbHNvIG1lbnRpb25lZCB0aGF0IE1pY3Jvc29mdCBpcyBpbnRlbmRlZCB0byBhZGQgYmFubmVyCmFkcyBpbnRvIGl0cyBCbHVlIFNjcmVlbiBvZiBEZWF0aCBpbiB0aGUgbmVhciBmdXR1cmUuCgpUaGUgSnVzdGljZSBEZXBhcnRtZW50IGltbWVkaWF0ZWx5IGluZGljYXRlZCB0aGF0IHRoZXkgaW50ZW5kIHRvIGludmVzdGlnYXRlCndoZXRoZXIgTWljcm9zb2Z0IGlzIGdhaW5pbmcgYW4gdW5mYWlyIGFkdmFudGFnZSBpbiByZWFjaGluZyB0aGUgcHVibGljIHdpdGgKdGhpcyBhZHZlcnRpc2luZyBieSB2aXJ0dWUgb2YgaXRzIHNlbWktbW9ub3BvbGlzdGljIGNvbnRyb2wgb3ZlciBlcnJvcgptZXNzYWdlcy47LSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWljcm9zb2Z0IGVycm9yIGFkcyAoVHJ1ZywgMjguIEp1bCAxOTk5LCAxMzowNDoyMSk6Cn4jISBybj1QcmEgcnQ9OTMzMTUwNDQxIHJnPXdpdHplCn4jISB0aWQ9OTMzMTUwNDQxCkVpbiB3ZWl0ZXJlciBHcnVuZCwgdW0gTSQgZWluZW4gbW9lZ2xpY2hzdCBncm9zc2VuIEJvZ2VuIHp1IG1hY2hlbiA6KSAKCipraWNoZXIqClRydWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNaWNyb3NvZnQgZXJyb3IgYWRzIChBcHN1LCAyOC4gSnVsIDE5OTksIDIzOjAyOjM4KToKfiMhIHJuPVByYSBydD05MzMxNTA0NDEgcmc9d2l0emUKfiMhIHRpZD05MzMxNTA0NDEKU28gYmVzY2hldWVydCBzaW5kIG5pY2h0IG1hbCBkaWUuCkFiZXIgdmllbGxlaWNodCBzbyBnZWxkZ2llcmlnPyE/CgpBcHN1LCBncnVlYmVsbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVsZWZhbnRlbi4uLiA6KSAoVHN1bmFtaSwgMjkuIEp1bCAxOTk5LCAxNzoxNjowMyk6CiAgRGllc2VyIFRleHQgYmVmYXNzdCBzaWNoIGVpbmdlaGVuZCBtaXQgZWluZXIgZGVyIHdpY2h0aWdzdGVuIEZyYWdlbiBkZXIKICBNZW5zY2hoZWl0OiAiV2llIGZhZW5ndCBtYW4gZWluZW4gRWxlZmFudGVuPyIgRXJmYWhydW5nc2dlbWFlc3MgaGF0IGplZGUKICBCZXJ1ZnNncnVwcGUgaWhyZSBlaWdlbmUgc3BlemllbGxlIE1ldGhvZGUsIEVsZWZhbnRlbiB6dSBqYWdlbi4gSGllciBzaW5kCiAgZWluaWdlIGRlciBpbnRlcmVzc2FudGVzdGVuOgogIAogIE1hdGhlbWF0aWtlciBqYWdlbiBFbGVmYW50ZW4sIGluZGVtIHNpZSBuYWNoIEFmcmlrYSBnZWhlbiwgYWxsZXMKICBlbnRmZXJuZW4sIHdhcyBuaWNodCBFbGVmYW50IGlzdCB1bmQgZWluIEVsZW1lbnQgZGVyIFJlc3RtZW5nZSBmYW5nZW4uCiAgCiAgRXJmYWhyZW5lIE1hdGhlbWF0aWtlciB3ZXJkZW4genVuYWVjaHN0IHZlcnN1Y2hlbiwgZGllIEV4aXN0ZW56CiAgbWluZGVzdGVucyBlaW5lcyBlaW5kZXV0aWdlbiBFbGVmYW50ZW4genUgYmV3ZWlzZW4sIGJldm9yIHNpZSBtaXQgZGVyCiAgTWV0aG9kZSBkZXIgZ2V3b2VobmxpY2hlbiBNYXRoZW1hdGlrZXIgYWxzIHVudGVyZ2VvcmRuZXRlciBVZWJ1bmdzYXVmZ2FiZQogIGZvcnRmYWhyZW4uCiAgCiAgTWF0aGVtYXRpa3Byb2Zlc3NvcmVuIGJld2Vpc2VuIGRpZSBFeGlzdGVueiBlaW5lcyBlaW5laW5kZXV0aWdlbgogIEVsZWZhbnRlbiB1bmQgdWViZXJsYXNzZW4gZGFubiBkYXMgQXVmc3B1ZXJlbiB1bmQgRWluZmFuZ2VuIGVpbmVzCiAgdGF0c2FlY2hsaWNoZW4gRWxlZmFudGVuIGlocmVuIFN0dWRlbnRlbi4KICAKICBJbmZvcm1hdGlrZXIgamFnZW4gRWxlZmFudGVuLCBpbmRlbSBzaWUgZGVuIGZvbGdlbmRlbiBBbGdvcml0aG11cyBBCiAgYXVzZnVlaHJlbjoKICAxLiBHZWhlIG5hY2ggQWZyaWthCiAgMi4gQmVnaW5uZSBhbSBLYXAgZGVyIGd1dGVuIEhvZmZudW5nCiAgMy4gRHVyY2hrcmV1emUgQWZyaWthIHZvbiBTdWVkZW4gbmFjaCBOb3JkZW4gYmlkaXJla3Rpb25hbCBpbgogICAgIE9zdC1XZXN0LVJpY2h0dW5nCiAgNC4gRnVlciBqZWRlcyBEdXJjaGtyZXV6ZW4gdHVlOgogICAgIGEpIEZhbmdlIGplZGVzIFRpZXIsIGRhcyBEdSBzaWVoc3QKICAgICBiKSBWZXJnbGVpY2hlIGplZGVzIGdlZmFuZ2VuZSBUaWVyIG1pdCBlaW5lbSBhbHMgRWxlZmFudCBiZWthbm50ZW4gVGllcgogICAgIGMpIEhhbHRlIGFuIGJlaSBVZWJlcmVpbnN0aW1tdW5nCiAgCiAgRXJmYWhyZW5lIFByb2dyYW1taWVyZXIgdmVyYWVuZGVybiBkZW4gQWxnb3JpdGhtdXMgQSwgaW5kZW0gc2llIGVpbiBhbHMKICBFbGVmYW50IGJla2FubnRlcyBUaWVyIGluIEthaXJvIHBsYXppZXJlbiwgZGFtaXQgZGFzICBQcm9ncmFtbSBhdWYgamVkZW4KICBGYWxsIGtvcnJla3QgYmVlbmRldCB3aXJkICh0ZXJtaW5pZXJ0KS4gKEFubWVyay46IGRhZHVyY2ggd2lyZCBkaWUKICB1bmVuZGxpY2hlIFNjaGxlaWZlIHZlcm1pZWRlbiAhKQogIAogIFZpcmVucHJvZ3JhbW1pZXJlciBqYWdlbiBFbGVmYW50ZW4sIGluZGVtIHNpZSBlaW5lIE1hdXMgYW5zIEthcCBkZXIgZ3V0ZW4KICBIb2ZmbnVuZyBzY2hpY2tlbiB1bmQgaW4gS2Fpcm8gYXVmIGRpZSBpbiBQYW5payBnZXJhdGVuZSBIZXJkZSB3YXJ0ZW4uCiAgCiAgV2luZG93c05ULVByb2dyYW1taWVyZXIgc2NoaWVzc2VuIG1pdCB2b2VsbGlnIHVuZ2VlaWduZXRlbiBHZXdlaHJlbiBpbiBkaWUKICB2b2VsbGlnIGZhbHNjaGUgUmljaHR1bmcgdW5kIGVya2xhZXJlbiBkYW5uLCBkYXNzIGVzIGVpbiBGZWhsZXIgYW0KICBFbGVmYW50ZW4gc2VpbiBtdXNzLgogIAogIFdpbmRvd3M5NS1Qcm9ncmFtbWllcmVyIHR1biBkYXNzZWxiZSwgbnVyIG1pdCBQZmVpbCB1bmQgQm9nZW4uCiAgCiAgTWljcm9zb2Z0IGthdWZ0IGVpbmVuIEVsZWZhbnRlbiBhdXMgZGVtIFpvbyB2b24gU2VhdHRsZSwga29waWVydCBJaG4KICBtYXNzZW5oYWZ0LCByZWRldCBhbGxlciBXZWx0IGVpbiwgZGFzcyBqZWRlciBlaW5lbiBicmFldWNodGUsIGRhc3MgZGllc2VyCiAgZGllIGlkZWFsZSBFcmdhZW56dW5nIHp1IE1TLU9mZmljZSBzZWkgdW5kIGV4cG9ydGllcnQgMTQgTWlvLiBTdHVlY2sgbmFjaAogIEFmcmlrYS4KICAKICBTQVAtU3lzdGVtaW5nZW5pZXVyZSBlcmtsYWVyZW4gZGFzIGVyc3RiZXN0ZSBUaWVyIHp1IGVpbmVtIEVsZWZhbnRlbiB1bmQKICBwYXNzZW4gaWhyZSBWb3JzdGVsbHVuZ2VuIGVpbmVzIEVsZWZhbnRlbiBhbiBkaWVzZXMgVGllciBhbi4KICAKICBNYXNjaGluZW5iYXVpbmdlbmlldXJlIGphZ2VuIEVsZWZhbnRlbiwgaW5kZW0gc2llIG5hY2ggQWZyaWthIGdlaGVuLCBqZWRlcwogIGdyYXVlIFRpZXIgZmFuZ2VuLCBkYXMgaWhuZW4gdWViZXIgZGVuIFdlZyBsYWV1ZnQgdW5kIGVzIEVsZWZhbnQgbmVubmVuLAogIHdlbm4gZGFzIEdld2ljaHQgd2VuaWdlciBhbHMgMTUlIHZvbiBkZW0gZWluZXMgdm9yaGVyIGdlZmFuZ2VuZW4gRWxlZmFudGVuCiAgYWJ3ZWljaHQuCiAgCiAgV2lydHNjaGFmdHN3aXNzZW5zY2hhZnRsZXIgamFnZW4ga2VpbmUgRWxlZmFudGVuLiBBYmVyIHNpZSBnZWhlbiBkYXZvbgogIGF1cywgZGFzcyBFbGVmYW50ZW4gc2ljaCBzZWxic3Qgc3RlbGxlbiB3dWVyZGVuLCB3ZW5uIG1hbiBpaG5lbiBudXIgZ2VudWcKICBkYWZ1ZXIgYmV6YWhsdC4KICAKICBTdGF0aXN0aWtlciBqYWdlbiBkYXMgZXJzdGUgVGllciwgZGFzIHNpZSBzZWhlbiwgbi1tYWwgdW5kIG5lbm5lbiBlcyBkYW5uCiAgRWxlZmFudC4KICAKICBVbnRlcm5laG1lbnNiZXJhdGVyIGphZ2VuIGtlaW5lIEVsZWZhbnRlbi4gVW5kIHZpZWxlIGhhYmVuIG5vY2ggbmllbWFscwogIHVlYmVyaGF1cHQgaXJnZW5kZXR3YXMgZ2VqYWd0LiBBYmVyIG1hbiBrYW5uIHNpZSBzdHVuZGVud2Vpc2UgZW5nYWdpZXJlbiwKICB1bSBzaWNoIGd1dGUgUmF0c2NobGFlZ2UgZ2ViZW4genUgbGFzc2VuLgogIAogIFN5c3RlbWFuYWx5dGlrZXIgd2FlcmVuIHRoZW9yZXRpc2NoIGluIGRlciBMYWdlLCBkaWUgS29ycmVsYXRpb24KICB6d2lzY2hlbiBIdXRncm9lc3NlIHVuZCBUcmVmZmVycXVvdGUgYmVpIGRlciBFbGVmYW50ZW5qYWdkIHp1IGJlc3RpbW1lbiwKICB3ZW5uIGlobmVuIG51ciBqZW1hbmQgc2FnZW4gd3VlcmRlLCB3YXMgZWluIEVsZWZhbnQgaXN0LgogIAogIFZlcnRyaWVic2JlYXVmdHJhZ3RlIGphZ2VuIGtlaW5lIEVsZWZhbnRlbi4gU3RhdHQgZGVzc2VuIHZlcmJyaW5nZW4gc2llCiAgaWhyZSBaZWl0IGRhbWl0LCBFbGVmYW50ZW4genUgdmVya2F1ZmVuLCBkaWUgbm9jaCBuaWNodCBnZWZhbmdlbiB3dXJkZW4gdW5kCiAgdmVyc3ByZWNoZW4gTGllZmVydGVybWluZSwgZGllIG1pbmRlc3RlbnMgZWluZSBXb2NoZSB2b3IgRXJvZWZmbnVuZyBkZXIKICBKYWdkc2Fpc29uIGxpZWdlbi4KICAKICBTb2Z0d2FyZS1WZXJ0cmllYnNiZWF1ZnRyYWd0ZSB2ZXJzY2hpY2tlbiBkYXMgZXJzdGUgZ3JhdWUgVGllciwgZGFzIHNpZQogIGZhbmdlbiBrb2VubmVuLCBwZXIgVVBTIHVuZCBsZWdlbiBlaW5lIFJlY2hudW5nIHVlYmVyIGVpbmVuIEVsZWZhbnRlbiBiZWkuCiAgCiAgR2VyaXNzZW5lIFNvZnR3YXJlLVZlcnRyaWVic2JlYXVmdHJhZ3RlIGFyYmVpdGVuIGltIEdydW5kZSBhZWhubGljaCwKICB2ZXJzY2hpY2tlbiBhYmVyIG5hY2ggZWluZXIgV29jaGUgQnJpZWZlLCBpbiBkZW5lbiBzaWUgZWluIFVwZ3JhZGUgYXVmCiAgZWRsZXJlIGluZGlzY2hlIEVsZWZhbnRlbiBhbnByZWlzZW4uCiAgCiAgSGFyZHdhcmUtVmVydHJpZWJzYmVhdWZ0cmFndGUgZmFuZ2VuIGVpbiBwYWFyIEthbmluY2hlbiwgbWFsZW4gc2llIGdyYXUgYW4KICB1bmQgdmVya2F1ZmVuIHNpZSBhbHMgU2NocmVpYnRpc2NoZWxlZmFudGVuIG1pdCBkZW0gSGlud2VpcyBhdWYgZGllCiAgRm9ydHNjaHJpdHRlIGRlciBNaW5pYXR1cmlzaWVydW5nIGdlZ2VudWViZXIgZGVyIEtvbmt1cnJlbnouCiAgCiAgRnVlaHJ1bmdza3JhZWZ0ZSBqYWdlbiBFbGVmYW50ZW4sIGluZGVtIHNpZSBzbyBsYW5nZSBNZWV0aW5ncyBhYmhhbHRlbiwKICBiaXMgZGVyIEVsZWZhbnQgc2ljaCB2b24gc2VsYnN0IGVybGVkaWd0IGhhdC4KCgpBbHNvIG1pciBnZWZhZWxsdCBzcGV6aWVsbCBkZXIgV2luZG9vZnMtTlQtVGVpbCA6KSkpCgpUc3VuYW1pLgoKICAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluIEVsZWZhbnQuLi4gKFRzdW5hbWksIDMwLiBKdWwgMTk5OSwgMTE6MDU6MzMpOgpadXNjaGxhZyBFbGVmYW50ZW53aXR6Li4uIHZvbiBlaW5lbSBuZWlkaXNjaGVuIEZyZXVuZC4uLiBkZXIgc2ljaCBpbW1lcgphZXJnZXJ0LCBkYXNzIGljaCBhbiB1bnNlcmVyIHRldWVyc3RlbiBTR0kgbXVkZGUsIHdhZWhyZW4gZXIgc2ljaCBtaXQKZWluZW0gcG9wZWxpZ2VuIFBDIGJlZ251ZWdlbiBtdXNzIDo+PgoKICBEZXIgU2lsaWNvbiBHcmFwaGljcyBVc2VyOiAKCiAgRXIgaGF0IGtlaW5lIEFobnVuZyB3aWUgZWluIEVsZWZhbnQgYXVzc2llaHQsIHdhcyBlaW4gRWxlZmFudCBpc3QsCiAgb2RlciB3ZWxjaGUgRnVua3Rpb24gZXIgaGFiZW4ga29lbm50ZS4gRXIgbWFjaHQgd2lsZGUgU3Bla3VsYXRpb25lbiAKICB1ZWJlciBzZWluZSBGb3JtLCBHcm9lc3NlLCBGYXJiZSB1bmQgRnVua3Rpb24sIGRpZSBqZWRlciBHcnVuZGxhZ2UgCiAgZW50YmVocmVuLCBsYWVzc3QgZGFubiBhYmVyIGRpZXNlICJFbGVmYW50ZW4iIGRyZWlkaW1lbnNpb25hbCB1ZWJlciAKICBkZW4gQmlsZHNjaGlybSBmbGl0emVuIHVuZCBzY2hyZWlidCBhbSBFbmRlIG5vY2ggZWluZSBEaXNzZXJ0YXRpb24KICBkYXJ1ZWJlciEKCgpUc3VuYW1pIChncmluc3QgdWViZXIgc2VpbmUgRnJldW5kZSkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBlaW4gRWxlZmFudC4uLiAoSG9ibywgMzAuIEp1bCAxOTk5LCAxMTowNzo0OSk6Cn4jISBybj1Uc3VuYW1pIHJ0PTkzMzMyNTUzMyByZz13aXR6ZQp+IyEgdGlkPTkzMzMyNTUzMwpIbW0sIGpldHp0d3Vlc3N0ZSBpY2ggbm9jaCBnZXJuZSwgd29ydWViZXIgRHUsIFRzdW5hbWksIERlaW5lIERpc3NlcnRhdGlvbgpnZXNjaHJpZWJlbiBoYXN0LiAKKERhbWl0IGhpZXIgYWxsZSB3aXNzZW4sIHdvdm9uIER1IGtlaW5lIEFobnVuZyBoYXN0KQoKIEhvYm8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbm9jaCBlaW4gRWxlZmFudC4uLiAoVHN1bmFtaSwgMzAuIEp1bCAxOTk5LCAxMTo1MTo0Nyk6Cn4jISBybj1Ib2JvIHJ0PTkzMzMyNTY2OSByZz13aXR6ZQp+IyEgdGlkPTkzMzMyNTUzMwpJY2ggYmluIEJpb2xvZ2UsIGRlc2hhbGIgaGFiZW4gbWlyIGRpZSBFbGVmYW50ZW53aXR6ZSBhdWNoIHNvIGd1dCBnZWZhbGxlbi4KV2VyIG1laHIgd2lzc2VuIHdpbGwuLi4gZmluZ2VyIHRzdW5hbWkgLT4gc2llaGUgZGFubiBIb21lcGFnZSA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClkxSy1Ucm91YmxlcyAoWWVuZGksICAyLiBBdWcgMTk5OSwgMTM6NDk6MjIpOgoKPlRoZSBZMUsgQ3Jpc2lzCj4KPkJ5IEFzaGxlaWdoIEJyaWxsaWFudCAod3d3LmFzaGxlaWdoYnJpbGxpYW50LmNvbSkKPgo+Q2FudGVyYnVyeSwgRW5nbGFuZC4gQS5ELiA5OTk6Cj4KPkFuIGF0bW9zcGhlcmUgY2xvc2UgdG8gcGFuaWMgcHJldmFpbHMgdG9kYXkgdGhyb3VnaG91dCBFdXJvcGUgYXMKPnRoZSBtaWxsZW5uaWFsIHllYXIgMTAwMCBhcHByb2FjaGVzLCBicmluZ2luZyB3aXRoIGl0IHRoZSBzby1jYWxsZWQKPiJZMUsgQnVnLCIgYSBtZW5hY2Ugd2hpY2gsIHVudGlsIHJlY2VudGx5LCBoYXJkbHkgYW55b25lIGhhZCBldmVyCj5oZWFyZCBvZi4KPgo+UHJvcGhldHMgb2YgZG9vbSBhcmUgd2FybmluZyB0aGF0IHRoZSBlbnRpcmUgZmFicmljIG9mIFdlc3Rlcm4KPkNpdmlsaXphdGlvbiwgYmFzZWQgYXMgaXQgbm93IGlzIHVwb24gbW9uYXN0aWMgY29tcHV0YXRpb25zLCBjb3VsZAo+Y29sbGFwc2UsIGFuZCB0aGF0IHRoZXJlIGlzIHNpbXBseSBub3QgZW5vdWdoIHRpbWUgbGVmdCB0byBmaXggdGhlCj5wcm9ibGVtLgo+Cj5KdXN0IGhvdyBkaWQgdGhpcyBkaXNhc3Rlci1pbi10aGUtbWFraW5nIGV2ZXIgYXJpc2U/IFdoeSBkaWQgbm8gb25lCj5hbnRpY2lwYXRlIHRoYXQgYSBjaGFuZ2UgZnJvbSBhIHRocmVlLWRpZ2l0IHRvIGEgZm91ci1kaWdpdCB5ZWFyCj53b3VsZCB0aHJvdyBpbnRvIHRvdGFsIGRpc2FycmF5IGFsbCBsaXR1cmdpY2FsIGNoYW50cyBhbmQgYWxsCj5tZXRyaWNhbCB2ZXJzZSBpbiB3aGljaCBhbnkgZGF0ZSBpcyBtZW50aW9uZWQ/IEV2ZXJ5IGZvcm11bGFpYwo+aHltbiwgcHJheWVyLCBjZXJlbW9ueSBhbmQgaW5jYW50YXRpb24gZGVhbGluZyB3aXRoIGRhdGVkIGV2ZW50cwo+d2lsbCBoYXZlIHRvIGJlIHJlLXdyaXR0ZW4gdG8gYWNjb21tb2RhdGUgdGhyZWUgZXh0cmEgc3lsbGFibGVzLgo+QWxsIHRhYnVsYXIgY2hyb25vbG9naWVzIHdpdGggdGhyZWUtc3BhY2UgeWVhciBjb2x1bW5zLCBtYWludGFpbmVkCj5mb3IgZ2VuZXJhdGlvbnMgYnkgc2NyaWJlcyB1c2luZyBjYXJlZnVsbHkgaGFuZC1ydWxlZCBsaW5lcyBvbgo+dmVsbHVtIHNoZWV0cywgd2lsbCBub3cgaGF2ZSB0byBiZSBjb252ZXJ0ZWQgdG8gZm91ci1zcGFjZSBjb2x1bW5zLAo+YXQgZW5vcm1vdXMgY29zdC4gSW4gdGhlIG1lYW50aW1lLCB0aGUgdmFsaWRpdHkgb2YgZXZlcnkgb2ZmaWNpYWwKPmV2ZW50LCBmcm9tIGJhcHRpc21zIHRvIGJ1cmlhbHMsIGZyb20gY29uZmlybWF0aW9ucyB0byBjb3JvbmF0aW9ucywKPm1heSBiZSBjYWxsZWQgaW50byBxdWVzdGlvbi4KPgo+IldlIHNob3VsZCBoYXZlIHNlZW4gaXQgY29taW5nLCIgc2F5cyBCcm90aGVyIENlZHJpYyBvZiBTdC4gTWljaGFlbAo+QWJiZXksIGhlcmUgaW4gQ2FudGVyYnVyeS4gIldoYXQgd29ycmllcyBtZSBtb3N0IGlzIHRoYXQgVEhPVVNBTkQKPmNvbnRhaW5zIHRoZSB3b3JkIFRIT1UsIHdoaWNoIG9jY3VycyBpbiBuZWFybHkgYWxsIG91ciBwcmF5ZXJzLCBhbmQKPm9mIGNvdXJzZSBhbHdheXMgcmVmZXJzIHRvIEdvZC4gVXNpbmcgaXQgbm93IGluIHRoZSBuYW1lIG9mIHRoZQo+eWVhciB3aWxsIHNlZW0gYWxtb3N0IGJsYXNwaGVtb3VzLCBhbmQgaXMgYm91bmQgdG8gY2F1c2UgdGVycmlibGUKPmNvbmZ1c2lvbi4gT2YgY291cnNlLCB3ZSBjb3VsZCBhbHdheXMgdXNlIExhdGluLCBidXQgdGhhdCBtaWdodCBiZQo+ZXZlbiB3b3JzZSAtLSBUaGUgTGF0aW4gd29yZCBmb3IgVGhvdXNhbmQgaXMgTWlsbGUsIHdoaWNoIGlzIHRoZQo+c2FtZSBhcyB0aGUgTGF0aW4gZm9yIG1pbGUuIFdlIHdvbid0IGtub3cgd2hldGhlciB3ZSdyZSB0YWxraW5nCj5hYm91dCB0aW1lIG9yIGRpc3RhbmNlISIKPgo+U3RvbmVtYXNvbnMgYXJlIGFscmVhZHkgcmVwb3J0ZWQgdGhyZWF0ZW5pbmcgdG8gZGVtYW5kIGEKPnByb3BvcnRpb25hbCBwYXkgaW5jcmVhc2UgZm9yIGhhdmluZyB0byBjYXJ2ZSBhbiBleHRyYSBudW1lcmFsIGluCj5hbGwgZGF0ZXMgb24gdG9tYnN0b25lcywgY29ybmVyc3RvbmVzIGFuZCBtb251bWVudHMuIFRvZ2V0aGVyIHdpdGgKPml0cyBpbmV2aXRhYmxlIHJpcHBsZSBlZmZlY3RzLCB0aGlzIGFsb25lIGNvdWxkIHBsdW5nZSB0aGUKPmhpdGhlcnRvLXN0YWJsZSBtZWRpZXZhbCBlY29ub215IGludG8gY2hhb3MuLgo+Cj5BIGNvbmZlcmVuY2Ugb2YgY2xlcmljcyBoYXMgYmVlbiBjYWxsZWQgYXQgV2luY2hlc3RlciB0byBkaXNjdXNzCj50aGUgZW50aXJlIGlzc3VlLCBidXQgZG9vbXNheWVycyBhcmUgY29udmluY2VkIHRoYXQgdGhlIG1hdHRlciBpcwo+bm93IG9uZSBvZiBwZXJzb25hbCBzdXJ2aXZhbC4gTWFueSBmYW1pbGllcywgaW4gZXhwZWN0YXRpb24gb2YgdGhlCj53b3JzdCwgYXJlIHN0b2NraW5nIHVwIG9uIGhvbHkgd2F0ZXIgYW5kIGluZHVsZ2VuY2VzLgo+CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVudGVyYnJlY2h1bmdzZnJlaWUgU3Ryb212ZXJzb3JndW5nIChSb2NodXMsICA0LiBBdWcgMTk5OSwgMTI6Mzc6MTkpOgpTdG9lcnVuZ2VuOgpNaSAwNC4wOC4gV2VnZW4gZWluZXMgQXVzZmFsbHMgZGVyIFVudGVyYnJlY2h1bmdzZnJlaWVuIFN0cm9tdmVyc29yZ3VuZwogICAgICAgICAgKFVTVikgYW0gMDMuMDguIHdhcmVuIGZhc3QgYWxsZSBpbSBNYXNjaGluZW5nZWJhZXVkZQogICAgICAgICAgRWluc3RlaW5zdHJhc3NlIDYwIHN0ZWhlbmRlbiBOZXR6a25vdGVucHVua3RlIHVuZCB6ZW50cmFsZW4KICAgICAgICAgIFNlcnZlciBhdXNnZWZhbGxlbi4gQXVzc2VyIEJldHJpZWIgc2luZCBub2NoOgogICAgICAgICAgQmFuZC1Sb2JvdGVyIChBRFNNLVNlcnZlciwgSFNNLURhdGVpZW4pCgpLZWluIEtvbW1lbnRhci4KCiAgUm9jaHVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgppbiBzYW5kIChHcmltbWJvcm4sICA1LiBBdWcgMTk5OSwgMDA6MjA6NDUpOgp+IyEgb249SGlzYXN1bCBvdD05MzM4MDUyMDIgb2c9YWxsZ2VtZWluZXMKYml0dGUgbGllZ2VuIGxhc3NlbiAtIGRhbmtlIGhpc2FzdWwgLgpiaXR0ZSBsaWVnZW4gbGFzc2VuIC0gZGFua2UgaGlzYXN1bCAuCnEKcQp3CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoqc2V1ZnoqIChEaWVkZXIsICA1LiBBdWcgMTk5OSwgMDA6Mjg6MDgpOgpHb3R0IGVyc2NodWYgZGVuIEVzZWwgdW5kIHNhZ3RlIHp1IGlobTogIkR1IGJpc3QgZWluIEVzZWwuIER1IHdpcnN0IHVuZW50d2VndAp2b24gbW9yZ2VucyBiaXMgYWJlbmRzIGFyYmVpdGVuIHVuZCBzY2h3ZXJlIFNhY2hlbiBhdWYgZGVpbmVtIFJ8Y2tlbiB0cmFnZW4uCkR1IHdpcnN0IEdyYXMgZnJlc3NlbiB1bmQgd2VuaWcgaW50ZWxsaWdlbnQgc2Vpbi4gVW5kIGR1IHdpcnN0IGZ8bmZ6aWcgSmFocmUKbGViZW4uIgpEYXJhdWYgZW50Z2VnbmV0ZSBkZXIgRXNlbDogIkZ8bmZ6aWcgSmFocmUgc28genUgbGViZW4gaXN0IHZpZWwgenUgdmllbCwgZ2liCm1pciBiaXR0ZSBuaWNodCBtZWhyIGFscyBkcmVpX2lnIEphaHJlISIKVW5kIGVzIHdhciBzby4KRGFubiBlcnNjaHVmIEdvdHQgZGVuIEh1bmQgdW5kIHNwcmFjaCB6dSBpaG06ICJEdSBiaXN0IGVpbiBIdW5kLiBEdSB3aXJzdCB8YmVyCmRpZSBHfHRlciBkZXIgTWVuc2NoaGVpdCB3YWNoZW4sIGRlcmVuIGVyZ2ViZW5zdGVyIEZyZXVuZCBkdSBzZWluIHdpcnN0LiBEdQp3aXJzdCBkYXMgZXNzZW4sIHdhcyBkZXIgTWVuc2NoIHxicmlnbGRzc3QgdW5kIDI1IEphaHJlIGxlYmVuLiIKRGVyIEh1bmQgYW50d29ydGV0ZTogIkdvdHQsIDI1IEphaHJlIHNvIHp1IGxlYmVuLCBpc3QgenUgdmllbC4gQml0dGUgbmljaHQKbWVociBhbHMgemVobiBKYWhyZS4iClVuZCBlcyB3YXIgc28uCkRhbm4gZXJzY2h1ZiBHb3R0IGRlbiBBZmZlbiB1bmQgc3ByYWNoOiAiRHUgYmlzdCBlaW4gQWZmZS4gRHUgc29sbHN0IHZvbiBCYXVtCnp1IEJhdW0gc2Nod2luZ2VuIHVuZCBkaWNoIHZlcmhhbHRlbiB3aWUgZWluIElkaW90LiBEdSB3aXJzdCBsdXN0aWcgc2VpbiwgdW5kCnNvIHNvbGxzdCBkdSBmfHIgendhbnppZyBKYWhyZSBsZWJlbi4iCkRlciBBZmZlIHNwcmFjaDogIkdvdHQsIHp3YW56aWcgSmFocmUgYWxzIENsb3duIGRlciBXZWx0IHp1IGxlYmVuLCBpc3QgenUKdmllbC4gQml0dGUgZ2liIG1pciBuaWNodCBtZWhyIGFscyB6ZWhuIEphaHJlLiIKVW5kIGVzIHdhciBzby4KU2NobGllX2xpY2ggZXJzY2h1ZiBHb3R0IGRlbiBNYW5uIHVuZCBzcHJhY2ggenUgaWhtOiAiRHUgYmlzdCBlaW4gTWFubiwgZGFzCmVpbnppZ2UgcmF0aW9uYWxlIExlYmV3ZXNlbiwgZGFzIGRpZSBFcmRlIGJld29obmVuIHdpcmQuIER1IHdpcnN0IGRlaW5lCkludGVsbGlnZW56IG51dHplbiwgdW0gZGlyIGRpZSBhbmRlcmVuIEdlc2NodnBmZSB1bnRlcnRhbiB6dSBtYWNoZW4uIER1IHdpcnN0CmRpZSBFcmRlIGJlaGVycnNjaGVuIHVuZCBmfHIgendhbnppZyBKYWhyZSBsZWJlbi4iCkRhcmF1ZiBzcHJhY2ggZGVyIE1hbm46ICJHb3R0LCBNYW5uIHp1IHNlaW4gZnxyIG51ciB6d2FuemlnIEphaHJlIGlzdCBuaWNodApnZW51Zy4gQml0dGUgZ2liIG1pciBkaWUgendhbnppZyBKYWhyZSwgZGllIGRlciBFc2VsIGF1c3NjaGx1ZywgZGllIGZ8bmZ6ZWhuCmRlcyBIdW5kZXMgdW5kIGRpZSB6ZWhuIGRlcyBBZmZlbi4iClVuZCBzbyBzb3JndGUgR290dCBkYWZ8ciwgZGFzcyBkZXIgTWFubiB6d2FuemlnIEphaHJlIGFscyBNYW5uIGxlYnQsIGRhbm4KaGVpcmF0ZXQgdW5kIGRyZWlfaWcgSmFocmUgYWxzIEVzZWwgdm9uIG1vcmdlbnMgYmlzIGFiZW5kcyBhcmJlaXRldCB1bmQKc2Nod2VyZSBMYXN0ZW4gdHJkZ3QuIERhbm4gd2lyZCBlciBLaW5kZXIgaGFiZW4gdW5kIGZ8bmZ6ZWhuIEphaHJlIHdpZSBlaW4KSHVuZCBsZWJlbiwgZGFzIEhhdXMgYmV3YWNoZW4gdW5kIGRhcyBlc3Nlbiwgd2FzIGRpZSBGYW1pbGllIHxicmlnIGxkX3QuIERhbm4sCmltIGhvaGVuIEFsdGVyLCBsZWJ0IGVyIHplaG4gSmFocmUgYWxzIEFmZmUsIHZlcmhkbHQgc2ljaCB3aWUgZWluIElkaW90IHVuZAphbXxzaWVydCBzZWluZSBFbmtlbGtpbmRlci4KVW5kIHNvIGlzdCBlcyBiaXMgaGV1dGUuLi4KCgpTb3JyeSBmdWVyIFVtbGF1dGUuLi4ga2VpbiBCb2NrIG1laHIgdW0gZGllIFVocnplaXQgd2FzIHp1IGFlbmRlcm4gOi0pCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnZpcnVzIHdhcm5pbmcgKEplbmFuZHJhLCAgNi4gQXVnIDE5OTksIDExOjM0OjM3KToKVGhpcyB2aXJ1cyB3YXJuaW5nIGlzIGdlbnVpbmUuCgpUaGVyZSBpcyBhIG5ldyB2aXJ1cyBnb2luZyBhcm91bmQsIGNhbGxlZCAid29yay4iICAgSWYgeW91IHJlY2VpdmUgYW55IHNvcnQgb2YKIndvcmsiIGF0IGFsbCwgd2hldGhlciB2aWEgZW1haWwsIGludGVybmV0IG9yIHNpbXBseSBoYW5kZWQgdG8geW91IGJ5IGEKY29sbGVhZ3VlLi4uRE8gTk9UIE9QRU4gSVQuCgpUaGlzIGhhcyBiZWVuIGNpcmN1bGF0aW5nIGFyb3VuZCBvdXIgYnVpbGRpbmcgZm9yIG1vbnRocyBhbmQgdGhvc2Ugd2hvIGhhdmUKYmVlbiB0ZW1wdGVkIHRvIG9wZW4gIndvcmsiIG9yIGV2ZW4gbG9vayBhdCAid29yayIgaGF2ZSBmb3VuZCB0aGF0IHRoZWlyCnNvY2lhbCBsaWZlIGlzIGRlbGV0ZWQgYW5kIHRoZWlyIGJyYWluICBjZWFzZXMgdG8gZnVuY3Rpb24gcHJvcGVybHkuCgpJZiB5b3UgZG8gZW5jb3VudGVyICJ3b3JrIiB2aWEgZW1haWwgb3IgYXJlIGZhY2VkIHdpdGggYW55ICJ3b3JrIiBhdCBhbGwsIHRoZW4KdG8gcHVyZ2UgdGhlIHZpcnVzLCBzZW5kIGFuIGVtYWlsIHRvIHlvdXIgYm9zcyB3aXRoIHRoZSB3b3JkcyAiSSd2ZSBoYWQgZW5vdWdoCm9mIHlvdXIgY3JhcC4uLiAgSSdtIG9mZiB0byB0aGUgcHViLiIgdGhlICJ3b3JrIiBzaG91bGQgYXV0b21hdGljYWxseSBiZQpmb3Jnb3R0ZW4gYnkgeW91ciBicmFpbi4gSWYgeW91IHJlY2VpdmUgIndvcmsiIGluIHBhcGVyLWRvY3VtZW50IGZvcm0sIHNpbXBseQpsaWZ0IHRoZSBkb2N1bWVudCBhbmQgZHJhZyB0aGUgIndvcmsiIHRvIHlvdXIgZ2FyYmFnZSBjYW4uICBQdXQgb24geW91ciBoYXQKYW5kIGNvYXQgYW5kIHNraXAgdG8gdGhlIG5lYXJlc3QgYmFyIHdpdGggdHdvIGZyaWVuZHMgYW5kIG9yZGVyIHRocmVlIHBpbnRzIG9mCmJlZXIgKG9yIHJ1bSBwdW5jaCkuIEFmdGVyIHJlcGVhdGluZyB0aGlzIGFjdGlvbiAxNCB0aW1lcywgeW91IHdpbGwgZmluZCB0aGF0CiJ3b3JrIiB3aWxsIG5vIGxvbmdlciBiZSBvZiBhbnkgcmVsZXZhbmNlIHRvIHlvdSBhbmQgdGhhdCAiU2Nvb2J5IERvbyIgd2FzIHRoZQpncmVhdGVzdCBjYXJ0b29uIGV2ZXIuCgpTZW5kIHRoaXMgbWVzc2FnZSB0byBldmVyeW9uZSBpbiB5b3VyIGFkZHJlc3MgYm9vay4gSWYgeW91IGRvIE5PVCBoYXZlIGFueW9uZQppbiB5b3VyIGFkZHJlc3MgYm9vaywgdGhlbiBJJ20gYWZyYWlkIHRoZSAid29yayIgdmlydXMgaGFzIGFscmVhZHkgY29ycnVwdGVkCnlvdXIgbGlmZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtvZW5udGUgZmFzdCB3YWhyIHNlaW4gLm8pIChIaWdodCwgIDYuIEF1ZyAxOTk5LCAxNDo1NjoxMik6CldoYXQgZG9lcyBhIGJsb25kIGNvdXBsZSBjb25zaWRlciBvcmFsIHNleCA/CgoKClN0YW5kaW5nIGluIG9wcG9zaXRlIGNvcm5lcnMgb2YgdGhlIHJvb20gYW4gc2hvdXRpbmcgJ0ZVQ0sgWU9VIScKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTb25uZW5maW5zdGVybmlzcyAoQmFtYnVsa28sICA5LiBBdWcgMTk5OSwgMDk6NDY6NDcpOgpEaXJla3RvciB6dSBCZXRyaWVic2xlaXRlcjogCk1vcmdlbiB1bSA5LjAwIFVociBmaW5kZXQgZWluZSBTb25uZW5maW5zdGVybmlzIHN0YXR0LCBhbHNvIGV0d2FzLCBkYXMKbWFuIG5pY2h0IGFsbGUgVGFnZSBzZWhlbiBrYW5uLiBMYXNzZW4gU2llIGFsc28gZGllIEFyYmVpdCB1bnRlcmJyZWNoZW4KdW5kIGJpdHRlbiBTaWUgZGllIEJlbGVnc2NoYWZ0LCBnbGVpY2ggc28gd2llIHNpZSBzaW5kLCBpbSBBcmJlaXRzYW56dWcKYXVmIGRlbiBXZXJrc2hvZi4gSWNoIHdlcmRlIGJlaSBkZXIgQmVvYmFjaHR1bmcgZGllc2VzIHNlbHRlbmVuCkVyZWlnbmlzc2VzIGVpbmlnZSAgICAgIEVybHV0ZXJ1bmdlbiBnZWJlbi4gV2VubiBlcyBqZWRvY2ggcmVnbmV0LCB3ZXJkZW4Kd2lyIGRhcyBuaWNodCBndXQgc2VoZW4ga25uZW4uIEluIGRpZXNlbSBGYWxsIGJlZ2ViZW4gd2lyIHVucyBpbiBkaWUKS2FudGluZS4gCgoKQmV0cmllYnNsZWl0ZXIgenUgSGF1cHRhYnRlaWx1bmdzbGVpdGVyOiAKQXVmIEFud2Vpc3VuZyBkZXMgRGlyZWt0b3JzIGZpbmRldCBtb3JnZW4gdW0gOS4wMCBVaHIgZWluZQpTb25uZW5maW5zdGVybmlzIHN0YXR0LiBXZW5uIGVzIHJlZ25ldCwgd2VyZGVuIHdpciBkYXMgaW0gQXJiZWl0c2FuenVnCmF1ZiBkZW0gV2Vya3Nob2YgbmljaHQgZ3V0IHNlaGVuIGtubmVuLiBJbiBkaWVzZW0gRmFsbCBmaHJlbiB3aXIgZGFzClZlcnNjaHdpbmRlbiBkZXIgU29ubmUgaW4gZGVyIEthbnRpbmUgZHVyY2g7IGFsc28gZXR3YXMsIGRhcyBtYW4gbmljaHQKYWxsZSBUYWdlIHNlaGVuIGthbm4uIAoKCkhhdXB0YWJ0ZWlsdW5nc2xlaXRlciB6dSBBYnRlaWx1bmdzbGVpdGVyOiAKQXVmIEFud2Vpc3VuZyBkZXMgRGlyZWt0b3JzIHdpcmQgbW9yZ2VuIHVtIDkuMDAgVWhyIGltIEFyYmVpdGFuenVnIGRhcwpWZXJzY2h3aW5kZW4gZGVyIFNvbm5lIGluIGRlciBLYW50aW5lIGR1cmNoZ2VmaHJ0LiBEZXIgRGlyZWt0b3IgZ2lidApBbndlaXN1bmcsIG9iIGVzIHJlZ25lbiBzb2xsOyBhbHNvIGV0d2FzLCBkYXMgbWFuIG5pY2h0IGFsbGUgVGFnZSBzZWhlbgprYW5uLiAKCgpBYnRlaWx1bmdsZWl0ZXIgenUgVm9yYXJiZWl0ZXI6IApXZW5uIGVzIG1vcmdlbiBpbiBkZXIgS2FudGluZSByZWduZXQgLSBhbHNvIGV0d2FzLCBkYXMgbWFuIG5pY2h0IGFsbGUKVGFnZSB6dSBzZWhlbiBiZWtvbW10IC0gdmVyc2Nod2luZGV0IHVtIDkuMDAgVWhyIHVuc2VyIERpcmVrdG9yIGltCkFyYmVpdHNhbnp1Zy4gCgoKVm9yYXJiZWl0ZXIgenUgZGVuIEtvbGxlZ2VuOiAKTW9yZ2VuIHVtIDkuMDAgVWhyIHNvbGwgdW5zZXIgRGlyZWt0b3IgdmVyc2Nod2luZGVuLiBTY2hhZGUsIGRhIG1hbiBkYXMKbmljaHQgYWxsZSBUYWdlIHp1IHNlaGVuIGJla29tbXQuIAoKCkF1dG9yOiB1bmJla2FubnQgClF1ZWxsZTogdW5iZWthbm50CgoKCgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLiAoSmFzcGVyLCAxMy4gQXVnIDE5OTksIDAzOjExOjI3KToKRGllIFRvY2h0ZXIgaGF0IGdlcmFkZSBnZWhlaXJhdGV0IHVuZCBkaWUgTXV0dGVyIGdpYnQgaWhyIGVpbmlnZSB0aXBzCmZ1ZXIgZGVuIGhhdXNoYWx0LgouLi5hbHNvIGljaCBoYWJlIHp1bSBiZWlzcGllbCBmdWVyIGRpZSBoYW5kdHVlY2hlciBpbSBiYWQgaW1tZXIgZWluIApBIGZ1ZXIgYW5saXR6IHVuZCBlaW4gRyBmdWVyIGdlc2Flc3Mgc3RlaGVuLgptaXNjaHQgc2ljaCBkZXIgdmF0ZXIgZWluICJ3aWUgamV0enQuIGljaCBkYWNodGUsIGVzIGhlaXNzdCBhcnNjaCB1bmQKZ2VzaWNodCIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLiAoSmFzcGVyLCAxMy4gQXVnIDE5OTksIDAzOjI3OjQ1KToKdGluYSB0dXJuZXIgbGFlc3N0IHNpY2ggaW0ga3JhbmtlbmhhdXMgZGllIHp1IGxhbmdlbiBzY2hhbWxpcHBlbiB3ZWdvcGVyaWVyZW4uCnNpZSB2ZXJsYW5ndCB2b20gY2hlZmFyenQgYWxsZXJkaW5ncyBhYnNvbHV0ZSBkaXNrcmV0aW9uIHVuZCBhbm9ueW1pdGFldC4KYWxzIHNpZSBhdXMgZGVyIG5hcmtvc2UgYXVmd2FjaHQsIHN0ZWh0IGVpbiByaWVzaWdlciBzdHJhdXNzIHJvdGVyIHJvc2VuCmFuIGlocmVtIGJldHQuIHZvbGxrb21tZW4gZW50c2V0enQgcnVmdCBzaWUgbmFjaCBkZW0gY2hlZmFyenQuCiJ3aWUga29ubnRlIGVzIHBhc3NpZXJlbiwgZGFzcyBlcyBkb2NoIGFuIGRpZSBvZWZmZW50bGljaGtlaXQgZ2Vrb21tZW4gaXN0PyIKZGVyIGNoZWZhcnp0IHZlcnN1Y2h0IHNpZSB6dSBiZXJ1aGlnZW4gInNjaGF1ZW4gZGllIGRpY2ggZG9jaCBlcnN0bWFsCmRhcyBrYWVydGNoZW4gaW0gc3RyYXVzcyBhbiIuIHNpZSBsaWVzdDoKICAidmllbGVuIGRhbmsgZnVlciBkaWUgbmV1ZW4gb2hyZW4gLSBuaWtpIGxhdWRhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLi4uIChKYXNwZXIsIDEzLiBBdWcgMTk5OSwgMDM6MzI6NDcpOgoyIGJlc3RhdHR1bmdzdW50ZXJuZWhtZXIgdW50ZXJoYWx0ZW4gc2ljaC4gCmRlciBlcnN0ZSAibGV0enRlIHdvY2hlIGhhYmVuIHdpciBuZSBmcmF1IGJlZXJkaWd0LCBkaWUgaGF0dGUgZWluZW4ga2l0emxlcgp3aWUgZWluZSBzYXVyZSBndXJrZSIKZGVyIHp3ZWl0ZSAid2llPyBzbyBkaWNrIHVuZCBrcnVtbT8iCmRlciBlcnN0ZSAibmVpbiwgc28gc2FsemlnIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVWZvIChEaWVkZXIsIDE2LiBBdWcgMTk5OSwgMjI6NTM6NDYpOgpFaW4gQmF1ZXIgaGF0IGdlaG9lcnQsIGRhc3MgbmViZW4gc2VpbmVtIEZlbGQgZWluIFVmbyBnZWxhbmRldCBpc3QgdW5kIGVyCmF1ZnBhc3NlbiBzb2xsLCB3ZW5uIGVyIGRvcnQgYXJiZWl0ZXQuIEFtIE1vcmdlbiBzb2xsIGVyIGRvcnQgcGZsdWVnZW4gdW5kCmZhZWhydCBkcnVtIGFuIGRlbiBXYWxkcmFuZCwgd28gZGFzIEZlbGQgbGllZ3QuCkRvcnQgc2llaHQgZXIgZWluIGdydWVuZXMgTWFlbm5jaGVuIGFtIFdhbGRyYW5kIHNpdHplbi4gQWxzbyBmYWVocnQgZXIgaGluIHVuZApzYWd0OiAiSWNoIEJhdWVyLi4uIHBmbHVlZ2VuISIuIEtlaW5lIFJlYWt0aW9uLiBBbHNvIHBmbHVlZ3QgZXIgZHJhdWZsb3MuCk5hY2ggZGVyIGRyaXR0ZW4gRnVyY2hlIGdlaHQgZXIgZXJuZXV0IHp1bSBncnVlbmVuIE1hZW5uY2hlbiB1bmQgc2FndAphYmVybWFsczogIkljaCBCYXVlci4uLiBwZmx1ZWdlbiEiLiBLZWluZSBSZWFrdGlvbiwgYWxzbyBwZmx1ZWd0IGVyIHdlaXRlci4KS3VyeiB2b3IgZGVtIEVuZGUgc2VpbmVyIEFyYmVpdCBzdGV1ZXJ0IGVyIGVybmV1dCBkYXMgZ3J1ZW5lIE1hZW5uY2hlbiBhbiwgZGFzCnJlZ3VuZ3Nsb3MgYW0gV2FsZHJhbmQgc2l0enQuICJJY2ggQmF1ZXIgLSBwZmx1ZWdlbiEiCldvcmF1ZiBkYXMgTWFlbm5jaGVuIG51ciB2ZXJhZXJnZXJ0IGFudHdvcnRldDogIkljaCBPYmVyZm9lcnN0ZXIgLSBzY2hlaXNzZW4hIgoKRGllZGVyLCBraWNoZXJuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3BhcyAoRGllZGVyLCAxNi4gQXVnIDE5OTksIDIzOjA4OjM5KToKWndlaSBhbHRlIE9wYWBzIHVudGVyaGFsdGVuIHNpY2ggfGJlciBhbHRlIFplaXRlbjoKIlRqYSBqYSwgZGFtYWxzLiBXaXIgd2FyZW4gamEgYXVjaCBuaWNoIGZlaWdlOiBJY2ggaGFiIHp1bSBCZWlzcGllbCAxOTQ1IG1pdApkZXIgTWlzdGZvcmtlIGBuZW4gRmxpZWdlciBydW50ZXJnZWhvbHQhIgoiVm9tIEhpbW1lbD8hIgoiTmVlLCB2b24gbWVpbmVyIFRvY2h0ZXIuLi4iCgpPcGEgRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzaGFrZXNwZWFyZS4uLiAoR25vbWUsIDE2LiBBdWcgMTk5OSwgMjM6MTU6MDgpOgplaW5lIGZyYXUgc2l0enQgaW4gZWluZXIgcXVpenNob3cgdW5kIGJla29tbXQgbnVuIGZvbGdlbmRlIGF1ZmdhYmVuLQpzdGVsbHVuZyB2b20gbW9kZXJhdG9yOgoibmVubmVuIHNpZSBtaXIgYml0dGUgMyB3ZXJrZSB2b24gc2hha2VzcGVhcmUuIgpkaWUgZnJhdSB6b2VnZXJ0IG5pY2h0IGxhbmdlOiIxMCwgMTUsIDIwLiIKZGVyIG1vZGVyYXRvciBpc3QgZXR3YXMgaXJyaXRpZXJ0OiJ3aWUgYml0dGU/IgpkaWUgZnJhdSB3aXJkIGV0d2FzIHJvdDoib2ggYWVobS4uLiBkYXMgc2luZCBlc2Vsc2JydWVja2VuIHZvbiBtaXIuIgpkZXIgbW9kZXJhdG9yIGZyYWd0IG5hY2g6ImVzZWxzYnJ1ZWNrZW4/IGRhcyBtdWVzc2VuIHNpZSBtaXIgamV0enQgYWJlcgpnZW5hdWVyIGVya2xhZXJlbi4uLiIKZGllIGZyYXU6Imdlcm5lLiBhbHNvIDEwOiB2aWVsIGxhZXJtIHVtIG5pY2h0cy4gMTU6IHdpZSBlcyBldWNoIGdlZmFlbGx0LgoyMDogZWluIHNvbW1lcm5hY2h0c3RyYXVtLiIKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplYmVuIGltIFJhZGlvIGdlaG9lcnQuLi4gKFphcm5peWEsIDE3LiBBdWcgMTk5OSwgMDk6NTM6MjMpOgoKSW4gZGVyIFN0YWR0IFN0dXR0Z2FydCB3dXJkZSBlaW4gQW53b2huZXIgZHVyY2ggZGFzIHN0bmRpZ2UgdW5kIGxhdXRlIFBmZWlmZmVuCmVpbmVzIHNvbGFyYmV0cmllYmVuZW4gUGFya3NjaGVpbmF1dG9tYXRlbiBlcmhlYmxpY2ggaW4gc2VpbmVyIFJ1aGUgZ2VzdHJ0LgpEaWUgUG9saXplaSwgZGllIFN0YWR0YXJiZWl0ZXIgdW5kIGF1Y2ggZGllIEZldWVyd2VociB6ZWlnZW4gc2ljaCByYXRsb3MuIEVyc3QKYWxzIGRpZSBQb2xpemVpIGF1ZiBkaWUgSWRlZSBrb21tdCBkaWUgU29sYXJmbGNoZSBtaXQgc2Nod2FyemVyIEZvbGllIHp1IApiZWtsZWJlbiB2ZXJzdHVtbXQgZGVyIHdpbGQgcGZlaWZmZW5kZSBQYXJrc2NoZWluYXV0b21hdCBlbmRsaWNoLgpadSBwZmVpZmZlbiBiZWdvbm5lbiBoYXQgZGVyIEF1dG9tYXQgYWxzIHNpY2ggZGllIFN0YWR0cG9saXRlc3NlIHp1IHdlaXQgfGJlciAKZGllIE1vdG9yaGF1YmUgZWluZXMgRmFsc2NoZmFocmVycyBnZWJldWd0IGhhdCEKCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlcmFkZSBpbiBkZXIgWmVpdHVuZyBnZWxlc2VuIChQYWRyZWljLCAyMi4gQXVnIDE5OTksIDA5OjQ3OjU5KToKRWluIGJldHJ1bmtlbmVyIFVybGF1YmVyIGhhdCBzaWNoIHZvbiBzZWluZW0gYWNodGphZWhyaWdlbiBTb2huIGltCnRodWVyaW5naXNjaGVuIEdlaGxiZXJnIGNoYXVmZmllcmVuIGxhc3Nlbi4gV2llIGRpZSBQb2xpemVpIGdlc3Rlcm4KbWl0dGVpbHRlLCB3YXIgZGVyIDQ1LWphZWhyaWdlIEhhbWJ1cmdlciBhbSBEb25uZXJzdGFnIGdlc3RvcHB0IHdvcmRlbi4gRGllCktvbnRyb2xsZSBlcmdhYiAzLDA4IFByb21pbGxlIEFsa29ob2wgaW0gQmx1dC4gRGVyIFNvaG4gaGFiZSBhdWYgc2VpbmVtClNjaG9zcyBnZXNlc3NlbiB1bmQgZGFzIEZhaHJ6ZXVnIGdlbGVua3QsIHdhZWhyZW5kIGRlciBQYXBhIGdlc2NoYWx0ZXQsIEdhcwpnZWdlYmVuIHVuZCBnZWJyZW1zdCBoYWJlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdlcmFkZSBpbiBkZXIgWmVpdHVuZyBnZWxlc2VuIChJc25vZ29vZCwgMjMuIEF1ZyAxOTk5LCAwNDo0NzowNCk6Cn4jISBybj1QYWRyZWljIHJ0PTkzNTMwODA3OSByZz13aXR6ZQp+IyEgdGlkPTkzNTMwODA3OQpTb3JyeSwgYWJlciBkYXMgaXN0IGluIGRlciBmYWxzY2hlbiBSdWJyaWsuIFdpdHppZyBrYW5uIGljaCBkYXMgYXVmIGplZGVuZmFsbApuaWNodCBmaW5kZW4sIGRlciBUeXAgc29sbHRlIG5vY2ggbmUgQW5rbGFnZSB3ZWdlbiB2ZXJzdWNodGVyCktvZXJwZXJ2ZXJsZXR6dW5nIHNlaW5lcyBTb2huZXMgYmVrb21tZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFsdGUgV2Vpc2hlaXRlbiAuLi4gKFRvZywgMjQuIEF1ZyAxOTk5LCAxNTo0ODo1Mik6CgpFaW5lIFdlaXNoZWl0IGRlciBEYWtvdGEtSW5kaWFuZXIgc2FndDoKIldlbm4gRHUgZW50ZGVja3N0LCBkYSBEdSBlaW4gdG90ZXMgUGZlcmQgcmVpdGVzdCwgc3RlaWcgYWIiLgoKRG9jaCBpbSBCZXJ1ZnNsZWJlbiBlbnR3aWNrZWxuIHdpciBhbmRlcmUgU3RyYXRlZ2llbiwgbmFjaCBkZW5lbiB3aXIgaW4KZGllc2VyIFNpdHVhdGlvbgpoYW5kZWxuOgoKICAgMS5XaXIgYmVzb3JnZW4gZWluZSBzdHJrZXJlIFBlaXRzY2hlLgogICAyLldpciB3ZWNoc2VsbiBkaWUgUmVpdGVyLgogICAzLldpciBzYWdlbjogIlNvIGhhYmVuIHdpciBkYXMgUGZlcmQgaW1tZXIgZ2VyaXR0ZW4iLgogICA0LldpciBncm5kZW4gZWluZW4gQXJiZWl0c2tyZWlzLCB1bSBkYXMgUGZlcmQgenUgYW5hbHlzaWVyZW4uCiAgIDUuV2lyIGJlc3VjaGVuIGFuZGVyZSBPcnRlLCB1bSB6dSBzZWhlbiB3aWUgbWFuIGRvcnQgdG90ZSBQZmVyZGUKcmVpdGV0LgogICA2LldpciBlcmhoZW4gZGllIFF1YWxpdHRzc3RhbmRhcmRzIGZyIGRlbiBCZXJpdHQgdG90ZXIgUGZlcmRlLgogICA3LldpciBiaWxkZW4gZWluZSBUYXNrIEZvcmNlLCB1bSBkYXMgdG90ZSBQZmVyZCB3aWVkZXJ6dWJlbGViZW4uCiAgIDguV2lyIHNjaGllYmVuIGVpbmUgVHJhaW5pbmdzZWluaGVpdCBlaW4sIHVtIGJlc3NlciByZWl0ZW4genUgbGVybmVuLgoKICAgOS5XaXIgc3RlbGxlbiBWZXJnbGVpY2hlIHVudGVyc2NoaWVkbGljaCB0b3RlciBQZmVyZGUgYW4uCiAgMTAuV2lyIG5kZXJuIGRpZSBLcml0ZXJpZW4sIGRpZSBiZXNhZ2VuLCBvYiBlaW4gUGZlcmQgdG90IGlzdC4KICAxMS5XaXIga2F1ZmVuIExldXRlIHZvbiBhdWVyaGFsYiBlaW4sIHVtIGRhcyB0b3RlIFBmZXJkIHp1IHJlaXRlbi4KICAxMi5XaXIgc2NoaXJyZW4gbWVocmVyZSB0b3RlIFBmZXJkZSB6dXNhbW1lbiBhbiwgZGFtaXQgc2llIHNjaG5lbGxlcgp3ZXJkZW4uCiAgMTMuV2lyIGVya2xyZW46ICJLZWluIFBmZXJkIGthbm4gc28gdG90IHNlaW4sIGRhc3MgbWFuIGVzIG5pY2h0IG5vY2gKc2NobGFnZW4ga25udGUuCiAgMTQuV2lyIG1hY2hlbiB6dXN0emxpY2hlIE1pdHRlbCBsb2NrZXIsIHVtIGRpZSBMZWlzdHVuZyBkZXMgUGZlcmRlcwp6dSBlcmhoZW4uCiAgMTUuV2lyIG1hY2hlbiBlaW5lIFN0dWRpZSwgdW0genUgc2VoZW4gb2IgZXMgYmlsbGlnZXJlIEJlcmF0ZXIgZ2lidC4KICAxNi5XaXIga2F1ZmVuIGV0d2FzIHp1LCBkYXMgdG90ZSBQZmVyZGUgc2NobmVsbGVyIGxhdWZlbiBsdC4KICAxNy5XaXIgZXJrbHJlbiwgZGFzcyB1bnNlciBQZmVyZCAiYmVzc2VyLCBzY2huZWxsZXIgdW5kIGJpbGxpZ2VyIiB0b3QKaXN0LgogIDE4LldpciBiaWxkZW4gUXVhbGl0dHN6aXJrZWwsIHVtIGVpbmUgVmVyd2VuZHVuZyBmciB0b3RlIFBmZXJkZSB6dQpmaW5kZW4uCiAgMTkuV2lyIGJlcmFyYmVpdGVuIGRpZSBMZWlzdHVuZ3NiZWRpbmd1bmdlbiBmciBQZmVyZGUuCiAgMjAuV2lyIHJpY2h0ZW4gZWluZSB1bmFiaG5naWdlIEtvc3RlbnN0ZWxsZSBmciB0b3RlIFBmZXJkZSBlaW4uCiAgMjEuV2lyIGRlbWVudGllcmVuIHZlaGVtZW50IGJpcyB6dWxldHp0LCBkYXNzIGRhcyBQZmVyZCB0b3QgaXN0CgoKVG9nLiBpbiBlY2h0ZW4gUHJvamVrdGVuIGhhcnQgZ2VwcnVlZnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptYWwgd2llZGVyIGVpbmVyIChEaWVkZXIsIDI0LiBBdWcgMTk5OSwgMjM6MjI6NTYpOgouLi4gYXVzIGRlciBSdWJyaWsgIlNhdWRvb2YiOgoKVXJvbG9nZTogIkJyZW5udHMgYmVpbSBXYXNzZXJsYXNzZW4/IgpQYXRpZW50OiAiQW5nZXp1ZW5kZXQgaGFiIGljaHMgbm9jaCBuaWNodC4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJlaW0gYXJ6dCAoRGllZGVyLCAyNC4gQXVnIDE5OTksIDIzOjQyOjAxKToKRWluIEVoZXBhYXIgZXJ3YXJ0ZXQgTmFjaHd1Y2hzIHVuZCBlcmt1bmRpZ3Qgc2ljaCBiZWltIEFyenQsIHdpZSBlcyBtaXQgZGVtClNleAp3ZGhyZW5kIGRlciBTY2h3YW5nZXJzY2hhZnQgYXVzc2llaHQuIERlciBBcnp0IGVya2xkcnQ6CiJJbSBlcnN0ZW4gRHJpdHRlbCBrdm5uZW4gc2llIGVzIGdhbnogbm9ybWFsIGFuZ2VoZW4sIGltIHp3ZWl0ZW4gRHJpdHRlbApzb2xsdGVuIHNpZQp6dXIgSHVuZGVzdGVsbHVuZyB8YmVyZ2VoZW4gdW5kIGltIGxldHp0ZW4gRHJpdHRlbCBkYW5uIG51ciBub2NoIGRpZQpXb2xmc3N0ZWxsdW5nCnRkdGlnZW4uIgpEZXIgTWFubiBpcnJpdGllcnQ6ICJEaWUgV29sZnNzdGVsbHVuZz8iCkRhcmF1ZiBkZXIgQXJ6dDogIkphLCBzaWUgbGVnZW4gc2ljaCBuZWJlbiBkYXMgTG9jaCB1bmQgaGV1bGVuLi4uIiAKCmphamEsIHVudGVyZSBTY2h1YmxhZGUsIGljaCB3ZWlzcyAtIGhldWx0IGRvY2ggOikKCkRpZWRlciA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2FzIGhhcm1sb3NlcmVzLi4uIChEaWVkZXIsIDI0LiBBdWcgMTk5OSwgMjM6NDQ6MDMpOgpFaW4gQW5ydWYgbWl0dGVuIGluIGRlciBOYWNodCBiZWltIEFyenQ6CiJIZXJyIERva3Rvciwga29tbWVuIHNpZSBzY2huZWxsLCB1bnNlcmUgVG9jaHRlciBoYXQgZWluIEtvbmRvbSB2ZXJzY2hsdWNrdCEiCkRlciBBcnp0IGJlZWlsdCBzaWNoLCBpbiBkaWUgS2xhbW90dGVuIHp1IGtvbW1lbi4gR2VyYWRlIGFscyBlciBzZWluIEhhdXMKdmVybGFzc2VuIHdpbGwsIGtsaW5nZWx0IGRhcyBUZWxlZm9uIG5vY2htYWwuIEVzIGlzdCB3aWVkZXIgZGllIEZyYXUgdW5kIHNpZQpzYWd0OgoiSGVyciBEb2t0b3IsIGVzIGlzdCBhbGxlcyBpbiBPcmRudW5nLCBtZWluIE1hbm4gaGF0IG5vY2ggZWluZXMgZ2VmdW5kZW4uLi4iIAoKCkRpZWRlciA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdW5kIG5vY2ggZWluIHNhdWJsb2VkZXIgKERpZWRlciwgMjQuIEF1ZyAxOTk5LCAyMzo0NToxMSk6CgoiSGllciBpc3QgZGFzIEtyZWlza3JhbmtlbmhhdXMuIgoiRW50c2NodWxkaWd1bmcsIGljaCBiaW4gZmFsc2NoIHZlcmJ1bmRlbi4iCiJEYSBtfHNzZW4gU2llIHNjaG9uIGhlcmtvbW1lbiB1bmQgZXMgZGVtIEFyenQgemVpZ2VuLi4uIiAKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJ6dHdpdHogZGllIHgtdGUgKERpZWRlciwgMjQuIEF1ZyAxOTk5LCAyMzo1MDo0Mik6CkRlciBBcnp0IGluIFNpbmctU2luZyBtYWNodCBlaW5lIE1vcmdlbnZpc2l0ZS4gRnJhZ3QgZHVyY2ggZGllIEtsYXBwZSBkZXIKZXJzdGVuClplbGxlOiAiU3R1aGwgPyIKIkhldXRlIG5vcm1hbC4iCkJlaW0gendlaXRlbjogIlN0dWhsID8iCiJHZXN0ZXJuIGV0d2FzIGR8bm4sIEhlcnIgRG9rdG9yLiIKQmVpbSBkcml0dGVuOiAiU3R1aGwgPyIKIk1vcmdlbiAtIGVsZWt0cmlzY2guIiAKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWllcy4uLiAoRGllZGVyLCAyNC4gQXVnIDE5OTksIDIzOjUyOjEwKToKS29tbXQgZWluIE1hbm4genVtIEFyenQuIERlciBEb2t0b3Igc2FndCBpaG0sIGVyIGhhYmUgZWluZSBzY2h3ZXJlLAphbnN0ZWNrZW5kZSBLcmFua2hlaXQuIFp1ciBCZWhhbmRsdW5nIHdlcmRlIGVyIE1vb3JiZGRlciB2ZXJvcmRuZW4uCkhvZmZudW5nc3ZvbGwgZnJhZ3QgZGVyIFBhdGllbnQsIG9iIGVzIGlobSBkYXZvbiBiZXNzZXIgZ2luZ2U/CiJEYXMgbmljaHQgLSBhYmVyIFNpZSBnZXd2aG5lbiBzaWNoIHNjaG9uICdtYWwgYW4gZGllIGZldWNodGUgRXJkZS4iIAoKRGllZGVyClBTOiBKYSwgaWNoIGhvZXIgamEgYmFsZCBhdWYgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBcnp0d2l0eiBkaWUgeC10ZSAoU3RyZWF3a2NldXIsIDI0LiBBdWcgMTk5OSwgMjM6NTI6MTYpOgp+IyEgcm49RGllZGVyIHJ0PTkzNTUzMTQ0MiByZz13aXR6ZQp+IyEgdGlkPTkzNTUzMTQ0MgpCdHc6IEJlc3NlciBMYWNoLUxhY2ggYWxzIFNpbmctU2luZwoKcnIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2huIGdhbnogYWx0ZXIuLi4gKFN0cmVhd2tjZXVyLCAyNC4gQXVnIDE5OTksIDIzOjU0OjE4KToKVHJlZmZlbiBzaWNoIHp3ZWkgYWVsdGVyZSBIZXJyZW4gYXVmbSBGcmllZGhvZi4gU2FndCBkZXIgODAtamFlaHJpZ2UgenVtCjkwLWphZWhyaWdlbjogTG9obnQgZXMgc2ljaCBmdWVyIFNpZSB1ZWJlcmhhdXB0IG5vY2gsIG5hY2ggSGF1c2UgenUgZ2VoZW4/CgpycgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS3JhbmtlbmhhdXMgKERpZWRlciwgMjQuIEF1ZyAxOTk5LCAyMzo1NToxNik6CiJTaWUgaGFiZW4gZWluZSBzZWhyIHNlbHRlbmUsIHNlaHIgYW5zdGVja2VuZGUgS3JhbmtoZWl0LiBXaXIgbXxzc2VuIFNpZSBhdWYKZGllCklzb2xpZXJzdGF0aW9uIHZlcmxlZ2VuLCB1bmQgZG9ydCBiZWtvbW1lbiBTaWUgbnVyIEthcnRvZmZlbHB1ZmZlciB1bmQKU3BpZWdlbGVpZXIKenUgZXNzZW4uIgoiV2VyZCcgaWNoIGRhdm9uIGRlbm4gd2llZGVyIGdlc3VuZCA/IgoiTmVpbiwgYWJlciBkYXMgaXN0IGRhcyBlaW56aWdlLCB3YXMgc2ljaCB1bnRlciBkZXIgVHxyIGR1cmNoc2NoaWViZW4gbGRfdC4iIAoKRXJpbm5lcnQgbWljaCBhbiBkZW4gV2l0ejogIldvIGxpZWd0IGRlciBNYW5uICwgZGVyIGhldXRlIHZvbiBkZXIgRGFtcGZ3YWx6ZQp1ZWJlcmZhaHJlbiB3dXJkZT8iIC0gIlppbW1lciAxNy0yMyIKCkRpZWRlcgogOi0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtyYW5rZW5oYXVzIChTdHJlYXdrY2V1ciwgMjUuIEF1ZyAxOTk5LCAwMDowMDowOCk6Cn4jISBybj1EaWVkZXIgcnQ9OTM1NTMxNzE2IHJnPXdpdHplCn4jISB0aWQ9OTM1NTMxNzE2CiJIZXJyIERva3Rvciwgd2FzIGhhYmVuIFNpZSBtaXQgZGVtIFpvbGxzdG9jayB2b3I/IgoiSWNoIGJpbiBuaWNodCBkZXIgRG9rdG9yLCBpY2ggYmluIGRlciBTY2hyZWluZXIiCgpycgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKc2Nod2FuZ2Vyc2NoYWZ0IChQYXJkYXV6LCAyNS4gQXVnIDE5OTksIDAwOjAzOjQ2KToKU2FndCBkaWUgc2Nod2FuZ2VyZSBGcmF1IGJlaW0gQmFlY2tlcjoKSWNoIGJla29tbWUgZWluZW4gTGFpYiBCcm90CkRyYXVmIGRlciBCYWVja2VyOiBTYWNoZW4gZ2lidHMgLi4uCgpQYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndlZ2VuIGJlc2Nod2VyZGUuLi4gKERpZWRlciwgMjUuIEF1ZyAxOTk5LCAwMDowNDowNik6Ci4uLiB3YXMgaGFybWxvc2VzIDoKCkZ8ciB6d2VpIFNub2JzIGtvbW10IGRlciBUYWcgZGVyIEhpbnJpY2h0dW5nLiBTaWUgc3RlaGVuIHZvciBkZW0gSGVua2VyLCBkYQpzYWd0IGRlciBlaW5lIHp1bSBhbmRlcmVuOgoiUGVpbmxpY2hlIFNpdHVhdGlvbiwgd2FzIGdpYnQgbWFuIGRlbSBNYW5uPyIgCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBzY2h3YW5nZXJzY2hhZnQgKFN0cmVhd2tjZXVyLCAyNS4gQXVnIDE5OTksIDAwOjA3OjU2KToKfiMhIHJuPVBhcmRhdXogcnQ9OTM1NTMyMjI2IHJnPXdpdHplCn4jISB0aWQ9OTM1NTMyMjI2ClNhZ3QgZGllIHNjaHdhbmdlcmUgRnJhdSBiZWltIEZsZWlzY2hlcjoKSWNoIGJla29tbWUgZWluIFBmdW5kIEdlaGFja3RlcwpEcmF1ZiBkZXIgRmxlaXNjaGVyOiBHZWhlbnNlIGRvY2ggbmFjaCBIb2xsYW5kIHVuZCBsYXNzZW4gc2ljaHMgd2VnbWFjaGVuCgpycgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlcmNoZW4gOy0pIChMaWFyYSwgMjUuIEF1ZyAxOTk5LCAwMzo1MzowMyk6CkluIGVpbmVtIGdyb3NzZW4sIGR1bmtsZW4gV2FsZCB3YXIgZWlubWFsIGVpbiBncm9zc2VyLApkaWNrZXIgQmFlci4gRGVyIGhhdCBzYXVvZnQgc2F1c2NobGVjaHRlIExhdW5lIGdlaGFidAood2VpbCBlciB6dXdlbmlnIFNleCBoYXR0ZSkuIFVuZCBpbW1lciwgd2VubiBkZXIgZ3Jvc3NlLApkaWNrZSBCYWVyIHNvIHNhdXNjaGxlY2h0ZSBMYXVuZSBoYXR0ZSwgamFndGUgZXIsIHVtCnNpY2ggd2llZGVyIHp1IGJlcnVoaWdlbiwgZGVuIGtsZWluZW4sIHN1ZXNzZW4sIGFiZXIKY2xldmVyZW4gSGFzZW4uCgpVbmQgd2VubiBkZXIgZ3Jvc3NlLCBkaWNrZSBCYWVyIGRlbiBrbGVpbmVuLCBzdWVzc2VuLCBhYmVyCmNsZXZlcmVuIEhhc2VuIG1hbCBpbiBzZWluZSBmZXR0ZW4gRmluZ2VyIGJla2FtLCBkYW5uIGdhYnMKcmljaHRpZyBkaWNrIGF1ZnMgTWF1bC4gSmVkZXNtYWwuCgpBbHMgZGVyIGdyb3NzZSwgZGlja2UgQmFlciBtYWwgd2llZGVyIHNhdXNjaGxlY2h0ZSBMYXVuZSBoYXR0ZQp1bmQgbWFsIHdpZWRlciBoaW50ZXIgZGVtIEhhc2VuIChkZW0ga2xlaW5lbiBzdWVzc2VuLCBhYmVyIGNsZXZlcmVuKQpoZXJqYWd0ZSwgYmVnYWIgZXMgc2ljaCwgZGFzcyBlaW4gWmF1YmVyZnJvc2NoIGF1cyBkZW0gR2Vic2NoCnNwcmFuZyB1bmQgZGVyIHdpbGRlbiBKYWdkIEVpbmhhbHQgZ2Vib3QuCgoiSWhyIGhhYnQgamV0enQgc29mb3J0IGJlaWRlIGRyZWkgV3VlbnNjaGUgZnJlaSIsIHJpZWYgZXIgdW5kCmRldXRldGUgYXVmIGRlbiBncm9zc2VuLCBkaWNrZW4gQmFlcmVuCiJEdSBmYWVuZ3N0IGFuISIgRGVyIGdyb3NzZSwgZGlja2UgQmFlciBtdXNzdGUgbmljaHQgbGFuZ2UgdWViZXJsZWdlbgp1bmQgc2FndGU6ICJJY2ggd3VlbnNjaGUgbWlyLCBkYXNzIGFsbGUgQmFlcmVuIGltIHVuc2VyZW0gV2FsZCwKYXVzc2VyIG1pciwgd2VpYmxpY2ggc2luZC4iIEVzIHR1dCBlaW5lbiBSaWVzZW5zY2hsYWcgdW5kIGFsbGUgQmFlcmVuCnNpbmQgd2VpYmxpY2guCgpEYW5uIGRhcmYgc2ljaCBkZXIgSGFzZSB3YXMgd3VlbnNjaGVuOiAiSWNoIHd1ZW5zY2hlIG1pciBlaW5lbgpNb3RvcnJhZGhlbG0sIGRhbm4gdHV0cyBuaWNodCBzbyB3ZWgsIHdlbm4gaWNoIGF1ZnMgTWF1bCBrcmllZy4iCkVzIHR1dCBlaW5lbiBTY2hsYWcgdW5kIGVyIGhhdCBlaW5lbiBNb3RvcnJhZGhlbG0uIEpldHp0IHdhciB3aWVkZXIKZGVyIGdyb3NzZSwgZGlja2UgQmFlciBhbiBkZXIgUmVpaGU6IiBJY2ggd3VlbnNjaGUgbWlyLCBkYXNzIGF1Y2gKYWxsZSBCYWVyZW4gaW0gTmFjaGJhcndhbGQgd2VpYmxpY2ggc2luZC4iIFNjaGxhZywgYWxsZSB3ZWlibGljaC4KRGVyIEhhc2U6IiBJY2ggd3VlbnNjaCBtaXIgZWluIE1vdG9ycmFkLCBkYW5uIGtyaWVndCBkZXIKQmFlciBtaWNoIGdhciBuaWNodCBtZWhyLiIgRXMgdHV0IGVpbmVuIFJpZXNlbnNjaGxhZyB1bmQgZXIgaGF0CmVpbmUgOTAwIENCUiBGaXJlYmxhZGUgb2RlciBzb3dhcy4gRGVyIEJhZXIgZGVua3Qgd2FlaHJlbmRkZXNzZW4gdWViZXIKc2VpbmVuIGxldHp0ZW4gV3Vuc2NoIG5hY2g6IiBJY2ggd3VlbnNjaGUgbWlyLCBkYXNzIGFsbGUgQmFlcmVuIGF1ZiBkZXIKV2VsdCwgYXVzc2VyIG1pciwgd2VpYmxpY2ggc2luZC4iIEVzIGdpYnQgJ25lbiBSdW5kdW1zY2hsYWcgdW5kIGFsbGUKQmFlcmVuIGF1ZiBkZXIgV2VsdCBzaW5kIHdlaWJsaWNoLgoKIldpbGxzdCBkdSBub2NoIGVpbiBwYWFyIFN0aWVmZWwgZnVlcnMgTW90b3JyYWRmYWhyZW4/IiBmcmFndGUgZGVyCkZyb3NjaCBkZW4gSGFzZW4uIERlciBrbGVpbmUsIHN1ZXNzZSwgYWJlciBjbGV2ZXJlIEhhc2UgYW50d29ydGV0ZToKTmUuLi4uIEljaCB3dWVuc2NoIG1pciwgZGFzcyBkZXIgQmFlciBzY2h3dWwgaXN0ISIgc2V0enRlIHNlaW5lbiBIZWxtCmF1ZiB1bmQgZnVociB2b24gZGFubmVuLi4uLgoKCkxpYXJhLCBoYXQgZGVuIGdyYWRlIHBlciBNYWlsIHJlaW5iZWtvbW1lbiB1bmQgc29nYXIgZGllIFByb2JsZW1sYXV0ZSBub2NoCmdlYWVuZGVydCA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9wYS1XaXR6IChEaWVkZXIsIDI2LiBBdWcgMTk5OSwgMTM6MTQ6MjIpOgpVbnRlcmhhbHRlbiBzaWNoIDIgT3BwYXMgdWViZXIgZGllICJndXRlIiBhbHRlIFplaXQuCk1laW50IGRlciBlaW5lOiAiMTk0MiAtIGRhIGhhYiBpY2ggbmVuIEZsaWVnZXIgbWl0IGRlciBNaXN0Z2FiZWwKcnVudGVyZ2Vob2x0ISIKIlZvbSBIaW1tZWw/IgoiTmVlLCB2b24gbWVpbmVyIFRvY2hlci4uLiIKCk9wYSBEaWVkZXIKUFM6IEFlaG5saWNoa2VpdGVuIG1pdCBsZWJlbmRlbiBvZGVyIHRvdGVuIFBlcnNvbmVuIHNpbmQgcmVpbiB6dWZhZWxsaWcuCjspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYW5uIGltIFdhbGQgKFN1YmxpbWUsIDI2LiBBdWcgMTk5OSwgMTU6NDA6MTUpOgpMYWV1ZnQgZWluIE1hbm4gaW0gV2FsZCwgdHJpZmZ0IG5hY2ggY2EuIDMgU3R1bmRlbiBhdWYgZWluIEtpbmQuCkRhIGZyYWd0IGRlciBNYW5uIDogIkR1LCB3aWUgaGVpc3N0IGRlbiBEdSA/IiBEYSBhbnR3b3J0ZXQgZGFzIEtpbmQgOiAiSWNoCmhlaXNzZSBBaG9ybiAhIiAiV2llc28gaGVpc3N0IER1IGRlbm4gQWhvcm4gPyIgIldlaWwgbWVpbmVyIE1hbWEsIGFscyBzaWUKc2Nod2FuZ2VyIHdhciB1bmQgZHVyY2ggZGVuIFdhbGQgZ2luZywgZWluIEFob3JuYmxhdHQgYXVmIGRlbiBCYXVjaCBnZXNlZ2VsdAppc3QuIgpEYSBnZWh0IGRlciBNYW5uIHdlaXRlciB1bmQgdHJpZmZ0IGF1ZiBlaW4gd2VpdGVyZXMgS2luZC4gRXIgZnJhZ3Qgd2llZGVyIDoKIkR1LAp3aWUgaGVpc3N0IER1IGRlbm4gPyIgIkljaCBoZWlzc2UgRmVpZ2UgISIgIldpZXNvIGhlaXNzdCBEdSBkZW5uIEZlaWdlID8iCiJXZWlsCm1laW5lciBNYW1hIGFscyBzaWUgc2Nod2FuZ2VyIHdhciwgZWluIEZlaWdlbmJsYXR0IGF1ZiBkZW4gc2Nod2FuZ2VyZW4gQmF1Y2gKZ2VzZWdlbHQgaXN0ICEiCk5hY2ggMyB3ZWl0ZXJlbiBTdHVuZGVuIHRyaWZmdCBkZXIgTWFubiBlcm5ldXQgYXVmIGVpbiBLaW5kIHVuZCBmcmFndCB3aWVkZXIgOgpEdSB3aWUgaGVpc3N0IER1IGRlbm4gPwogICAgICAgICAgICAgICAgICBCYXVtIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVyc2Nod29lcnVuZ3N0aGVvcmllPyAoU2VocmksIDI3LiBBdWcgMTk5OSwgMDk6MDI6NTMpOgpBYnJhaGFtIExpbmNvbG4gd3VyZGUgMTg0NiBpbiBkZW4gS29uZ3JlIGdld2hsdC4KSm9obiBGLiBLZW5uZWR5IHd1cmRlIDE5NDYgaW4gZGVuIEtvbmdyZSBnZXdobHQuCkFicmFoYW0gTGluY29sbiB3dXJkZSAxODYwIHp1bSBQcnNpZGVudCBnZXdobHQuCkpvaG4gRi4gS2VubmVkeSB3dXJkZSAxOTYwIHp1bSBQcnNpZGVudCBnZXdobHQuCkRpZSBOYW1lbiBMaW5jb2xuIHVuZCBLZW5uZWR5IGJlc3RlaGVuIGJlaWRlIGF1cyA3IEJ1Y2hzdGFiZW4uCkJlaWRlIGJlc2NoZnRpZ3RlbiBzaWNoIHRlaWx3ZWlzZSBtaXQgQnJnZXJyZWNodGVuLgpJaHJlIGJlaWRlbiBFaGVmcmF1ZW4gdmVybG9yZW4gaWhyZSBLaW5kZXIsIHdocmVuZCBzaWUgaW0gV2VpZW4gSGF1cyBsZWJ0ZW4uCkJlaWRlIFByc2lkZW50ZW4gd3VyZGVuIGFuIGVpbmVtIEZyZWl0YWcgZXJzY2hvc3Nlbi4KQmVpZGVuIHd1cmRlIGluIGRlbiBLb3BmIGdlc2Nob3NzZW4uCkxpbmNvbG5zIFNla3JldHJpbiBoaWUgS2VubmVkeS4KS2VubmVkeXMgU2VrcmV0cmluIGhpZSBMaW5jb2xuLgpCZWlkZSB3dXJkZW4gdm9uIExldXRlbiBhdXMgZGVtIFNkZW4gZXJzY2hvc3Nlbi4KQmVpZGVyIE5hY2hmb2xnZXIgd2FyZW4gYXVzIGRlbSBTZGVuLgpCZWlkZSBOYWNoZm9sZ2VyIGhpZWVuIEpvaG5zb24uCkFuZHJldyBKb2huc29uLCBMaW5jb2xucyBOYWNoZm9sZ2VyLCB3dXJkZSAxODA4IGdlYm9yZW4uCkx5bmRvbiBKb2huc29uLCBLZW5uZWR5cyBOYWNoZm9sZ2VyLCB3dXJkZSAxOTA4IGdlYm9yZW4uCkpvaG4gV2lsa2VzIEJvb3RoLCBMaW5jb2xucyBNcmRlciwgd3VyZGUgMTgzOSBnZWJvcmVuLgpMZWUgSGFydmV5IE9zc3dhbGQsIEtlbm5lZHlzIE1yZGVyLCB3dXJkZSAxOTM5IGdlYm9yZW4uCkJlaWRlIEF0dGVudHRlciBoYXR0ZSBkcmVpIE5hbWVuLgpMaW5jb2xuIHd1cmRlIGltICJLZW5uZWR5Ii1UaGVhdGVyIGVyc2Nob3NzZW4uCktlbm5lZHkgd3VyZGUgaW4gZWluZW0gQXV0bywgZGFzICJMaW5jb2xuIiBoaWUsIGVyc2Nob3NzZW4uCkJvb3RoIGZsY2h0ZXRlIGF1cyBlaW5lbSBUaGVhdGVyIHVuZCB3dXJkZSBpbiBlaW5lbSBMYWdlcmhhdXMgZ2VmYW5nZW4uCk9zd2FsZCBmbGNodGV0ZSBhdXMgZWluZW0gTGFnZXJoYXVzIHVuZCB3dXJkZSBpbiBlaW5lbSBUaGVhdGVyIGdlZmFuZ2VuLgpCb290aCB1bmQgT3N3YWxkIHd1cmRlbiB2b3IgaWhyZW4gUHJvemVzc2VuIGVybW9yZGV0LgpBTkQgSEVSRVMgVEhFIEtJQ0tFUi4uLi4KCkVpbmUgV29jaGUgYmV2b3IgTGluY29sbiBlcnNjaG9zc2VuIHd1cmRlLCB3YXIgZXIgaW4gTW9ucm9lLCBNYXJ5bGFuZC4KRWluZSBXb2NoZSBiZXZvciBLZW5uZWR5IGVyc2Nob3NzZW4gd3VyZGUsIHdhciBlciBpbiBNYXJpbHluIE1vbnJvZS4uLi4KClNlaHJpIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5zZXIgSGVsbXV0IDspIChTdWJsaW1lLCAyNy4gQXVnIDE5OTksIDA5OjU2OjI3KToKSGVsbXV0IEtvaGwga29tbXQgdm9uIGRlciBFdGF0c2l0enVuZyB6dXJjayB1bmQgZnJhZ3QgSGFubmVsb3JlOgpJc3QgamVtYW5kIGdla29tbWVuPwpKYQpXZXI/CkR1IQpOZWluLCBpY2ggbWVpbmUsIG9iIGplbWFuZCBoaWVyIHdhci4KSmEuCldlcj8KSWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVuc2VyIEhlbG11dCA7KSAoRGllZGVyLCAyNy4gQXVnIDE5OTksIDA5OjU3OjQ3KToKfiMhIHJuPVN1YmxpbWUgcnQ9OTM1NzQwNTg3IHJnPXdpdHplCn4jISB0aWQ9OTM1NzQwNTg3CldlciBpc3QgSGVsbXV0IEtvaGw/CgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW5zZXIgSGVsbXV0IDspIChTdWJsaW1lLCAyNy4gQXVnIDE5OTksIDA5OjU4OjIxKToKfiMhIHJuPURpZWRlciBydD05MzU3NDA2Njcgcmc9d2l0emUKfiMhIHRpZD05MzU3NDA1ODcKRGFzIGlzdCBqZW1hbmQsIGRlciBnZXJuZSBTYXVtYWdlbiB1bmQgUGFuc2VuIGlzc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdWVyIHRvbGtpZW4tZmFucyAoSG91c2Vob2xkZXIsIDMxLiBBdWcgMTk5OSwgMjM6MDk6NDApOgpxdWVsbGU6IGh0dHA6Ly93d3ctcGVyc29uYWwudW1pY2guZWR1L35taGdyYWhhbS9BbmdiYW5kL3NvdXRocGFyay5odG1sIAoKCltbU2V0dGluZzogU291dGggUGFyayBFbGVtZW50YXJ5IFNjaG9vbF1dCgpNUiBHQVJSSVNPTjogTm93LCBraWRzLCBJIHdhbnQgdG8gdGFsayBhYm91dCB0aGUgZmljdGlvbiBvZiBKLlIuUi4gVG9sa2llbi4gSGUKd2FzIGEgcGl0aWZ1bApleGN1c2UgZm9yIGEgbWFuLCBjcmVhdGluZyBpbWFnaW5hcnkgd29ybGRzIHdoZXJlIGJsYWNrIG1hZ2ljIHdvcmtlZCBhbmQKcG9wdWxhdGluZyB0aGVtIHdpdGgKZXZpbCBjcmVhdHVyZXMgbGlrZSBFbHZlcyBhbmQgRHdhcnZlcyB3aG8gZG9uJ3QgZXhpc3QuIERvbid0IGV2ZXIgcmVhZCBhbnkKYm9vayB0aGF0IGhlIHdyb3RlLApiZWNhdXNlIGhlJ3MgYW4gZXZpbCwgU2F0YW5pYyBmaWd1cmUhCgpLWUxFOiBEdWRlLCBtYWtlcyBtZSB3YW5uYSBnbyByZWFkIGhpcyBzdHVmZi4KCkNBUlRNQU46IFdoYXQ/ISBSZWFkaW5nIHN1Y2tzLCB5b3UgZmFnLgoKS1lMRTogU2h1dCB1cCwgZmF0dHkhIEknbGwga2ljayB5b3VyIGFzcyEKClNUQU46IENoaWxsIG91dCwgZ3V5cy4gSXQncyBHcmlsbGVkIENoZWVzZSBEYXkuCgpbW1NldHRpbmc6IENhZmV0ZXJpYV1dCgpDSEVGOiBIZXksIGNoaWxkcmVuIQoKS0lEUzogSGV5LCBDaGVmLgoKQ0hFRjogQ2hpbGRyZW4sIEkgaGF2ZSBzb21ldGhpbmcgaW1wb3J0YW50IHRvIHRlbGwgeW91LiBJIGhlYXJkIHRoYXQgTW9yZ290aCwKTG9yZCBvZiBEYXJrbmVzcyBpcwpzb21ld2hlcmUgbmVhciB0aGlzIHRvd24uCgpDQVJUTUFOOiBTbz8KCkNIRUY6IENoaWxkcmVuLCBNb3Jnb3RoIGhhcyBraWRuYXBwZWQgTHV0aGllbiBUaW51dmllbCwgdGhlIG1vc3QgYmVhdXRpZnVsCndvbWFuIHRvIGV2ZXIgd2Fsawp0aGUgRWFydGguCgpDQVJUTUFOOiBTbyB3aGF0PyBXaG8gZ2l2ZXMgYSBzaCp0PwoKQ0hFRjogQm95LCB0aGlzIGFpbid0IHJpZ2h0LiBJIHdhbnQgdG8gZ28gcmVzY3VlIGhlciwgYW5kIEkgbmVlZCB5b3VyIGhlbHAgdG8KZG8gdGhhdC4KClNUQU46IFdoYXQncyBpbiBpdCBmb3IgdXM/CgpDSEVGOiBJJ20gc3VyZSBpZiBMdXRoaWVuIGdldHMgcmVzY3VlZCwgc2hlJ2QgYmUgdmVyeSBncmF0ZWZ1bCB0byB1cyBhbGwuLi4KCktFTk5ZOiBNbW1waG0gbW1tIG5uZ2ggZ25uLgoKU1RBTjogS2VubnksIHRoYXQncyBzaWNrIQoKQ0hFRjogTm8sIGNoaWxkcmVuLCBLZW5ueSdzIHByb2JhYmx5IHJpZ2h0LiBJIHRlbGwgeW91IHdoYXQtLW1lZXQgbWUgYWZ0ZXIKc2Nob29sIGluIHRoZSBwYXJraW5nCmxvdCwgYW5kIHdlJ2xsIGdvIHJlc2N1ZSBoZXIuCgpbW1RoZSBib3lzIGxlYXZlIGFuZCBzaXQgZG93bi5dXQoKS1lMRTogVGhpcyBzb3VuZHMgZGFuZ2Vyb3VzLgoKQ0FSVE1BTjogQWhoLCB5b3UncmUganVzdCBhIGZyYWlkeS1jYXQuCgpTVEFOOiBXaHkgbm90PyBJZiBzaGUncyBhcyBob3QgYXMgTWlzcyBFbGxlbi4uLgoKQ0FSVE1BTjogSWYgc2hlIGlzLCBzaGUncyBwcm9iYWJseSBhIGxlc2JpYW4gdG9vLi4uCgpTVEFOOiBSaWdodC4gU2hlIHByb2JhYmx5IHdhbnRzIHN0ZWFteSBtYW4tbG92ZSBsaWtlIGFueSBvdGhlciBjaGljay4KCktZTEU6IEJ1dCB3aGF0IGFib3V0IE1vcmdvdGgsIExvcmQgb2YgRGFya25lc3M/CgpDQVJUTUFOOiBGKmNrIGhpbS4KClNUQU46IFlvdSdkIGxpa2UgdG8sIHlvdSBmYWchCgpLWUxFOiBDb21lIG9uLCBndXlzLiBMZXQncyBqdXN0IGdvIGFsb25nIHdpdGggQ2hlZiBhbmQgc2VlIHdoYXQgaGFwcGVucy4KCltbTGF0ZXIsIGFmdGVyIHNjaG9vbCwgaW4gdGhlIHBhcmtpbmcgbG90XV0KCkNIRUY6IEFsbCByaWdodCwgY2hpbGRyZW4uIEkgdGhpbmsgTW9yZ290aCBpcyBob2xlZCB1cCBpbiB0aGUgbW91bnRhaW5zIG5vcnRoCm9mIHRvd24uIE9ubHkKcHJvYmxlbSBpcywgaGUncyBndWFyZGVkIHRoZSBnYXRlcyBvZiBoaXMgcGFsYWNlIHdpdGggdGhlIG1vc3QgZmVyb2Npb3VzCndlcmV3b2xmIGtub3duIHRvCmh1bWFucy4KClNUQU46IE9oLCBidWxsc2gqdC4gV2VyZXdvbHZlcyBkb24ndCBleGlzdC4KCkNIRUY6IExldCdzIGhvcGUgeW91J3JlIHJpZ2h0LCAnY2F1c2UgSSBhaW4ndCBnb3Qgbm8gc2lsdmVyIGJ1bGxldHMuCgpLRU5OWTogKGhvbGRpbmcgdXAgYSBjYW4gb2YgQ29vcnMpIE1tZ2ggbW1waCBnbW0uCgpDSEVGOiBHb29kIHRoaW5raW4nLCBLZW5ueS4gTGV0J3MgZ28hCgpbW1RoZSBwb3NzZSBoZWFkcyBub3J0aCBpbnRvIHRoZSBtb3VudGFpbnMsIGV2ZW50dWFsbHkgZW5kaW5nIHVwIGF0IGEgZGltLApldmlsLWxvb2tpbmcgY2F2ZS5dXQoKU1RBTjogSXMgdGhpcyBpdD8gSSBkb24ndCBzZWUgYW55IHdlcmV3b2xmIGFyb3VuZC4KCktZTEU6IE1pZ2h0IGFzIHdlbGwgdGFrZSBhIGxvb2sgaW5zaWRlIGFuZCBzZWUuCgpbW0t5bGUgc3RlcHMgaW50byB0aGUgY2F2ZSBhbmQgZmxlZXMgb3V0c2lkZSBpbiB0ZXJyb3IgMyBzZWNvbmRzIGxhdGVyXV0KCktZTEU6IEFBQUFIIQoKU1RBTjogV2hhdCBpcyBpdCwgZHVkZT8KCk1JQ0hBRUwgSi4gRk9YOiAod2VhcmluZyAiVGVlbiBXb2xmIiBtYWtldXApIEhpLCBmb2xrcy4KCkNIRUY6IE9oIG5vLCBpdCdzIE1pY2hhZWwgSi4gRm94Li4uIGFub3RoZXIgd2FzaGVkLXVwIGFjdG9yLiBEYW1uLCBJJ20gZ2V0dGluZwp0aXJlZCBvZiB0aGVzZQpndWVzdCB2aWxsYWlucy4KCktFTk5ZOiAoaG9sZGluZyB1cCBDb29ycyBjYW4pIE5uZ2ggbW1waCBtbW0hCgpNSUNIQUVMIEouIEZPWDogT2gsIHRoYW5rcywga2lkLiAoR3JhYnMgY2FuIGFuZCBndXp6bGVzIGl0LikgU29ycnksIGZvbGtzLCBidXQKYnkgb3JkZXIgb2YKTW9yZ290aCBMb3JkIG9mIERhcmtuZXNzLCBJIGhhdmUgdG8gdGFrZSB5J2FsbCBpbnRvIGN1c3RvZHkuCgpTVEFOOiBZZWFoLCByaWdodC4gWW91IGRvbid0IHNjYXJlIG1lIQoKTUlDSEFFTCBKLiBGT1g6IE9oPyBXZWxsLCB3aGF0IGFib3V0IHRoaXM/ISAoMiBCYWxyb2dzLCBiaWcgZmllcnkgZGVtb25zIHdpdGgKd2luZ3MsIGV4aXQgdGhlCmNhdmUuIFRoZXkgdGFrZSB1cCBwb3NpdGlvbnMgYmVoaW5kIE1pY2hhZWwgYW5kIHNpbmcgYmFja3VwIHdoaWxlIGhlIHNlZ3VlcwppbnRvICJJZiB5YSB3YW5uYSBiZQpteSBsb3Zlci4uLiIgaW4gYSB2ZXJ5IGJhZCB2b2ljZS4pCgpDQVJUTUFOOiAoaG9sZGluZyBoYW5kcyBvdmVyIGVhcnMpIE5vISBDYW4ndCB0YWtlIGFueSBtb3JlIQoKW1tUaGUga2lkcyBhbmQgQ2hlZiBjb2xsYXBzZSBhbmQgYXJlIGRyYWdnZWQgaW5zaWRlLiBUaGV5IGFyZSB0YWtlbiB0byBhIGRhcmsKY2VsbCBhbmQgY2hhaW5lZCB0bwp0aGUgd2FsbHMuIFRoZSBkb29yIHNsYW1zLCBhbmQgaXQgaXMgdG9vIGRhcmsgdG8gc2VlIGFueXRoaW5nIGJ1dCB0aGUgd2hpdGVzCm9mIHRoZWlyIGV5ZXMuXV0KCktFTk5ZOiBHbW1waCBubmcgbSEKCktZTEU6IEl0J3MganVzdCB5b3VyIGltYWdpbmF0aW9uLiBUaGVyZSdzIG5vdGhpbmcgaW4gaGVyZSB3aXRoIHVzLgoKS0VOTlk6IE5OTkdIISAoU291bmQgb2YgY2hhaW5zIGJyZWFraW5nIGFuZCBuYXN0eSBzbG9iYmVyaW5nIG5vaXNlcy4gS2VubnkncwpleWViYWxscwp2YW5pc2guKQoKS1lMRTogT2htaWdvZCwgdGhleSBraWxsZWQgS2VubnkhCgpTVEFOOiBZb3UgYmFzdGFyZHMhCgpbW091dHNpZGUgdGhlIGNlbGwuIEl0IGlzIGxpZ2h0IGVub3VnaCB0byBzZWUgYWdhaW4uXV0gTUlDSEFFTCBKLiBGT1g6IEkKZmlndXJlZCB0aGF0IHlvdSBkZXNlcnZlZApzb21ldGhpbmcgZm9yIHRoYXQgYmVlci4gU28sIEknbSBnaXZpbmcgeW91IGEgY2hhbmNlIHRvIGVzY2FwZSB0aGUgaG9ycmlibGUKZmF0ZSBNb3Jnb3RoIGhhcwpwbGFubmVkIGZvciB5b3UuIEkgZG9uJ3Qga25vdyB3aGF0IGl0IGlzLCBidXQgaXQncyBwcm9iYWJseSB3b3JzZSB0aGFuIGJlaW5nCmluICJCYWNrIHRvIHRoZSBGdXR1cmUKSUksIiBzbyBnZXQgZ29pbmchCgpLRU5OWTogTW1waCBubi4KCltbS2Vubnkgd2FuZGVycyB0aHJvdWdoIGRpbSBoYWxscyBhbmQgY29ycmlkb3JzIGZvciBhIHdoaWxlIHVudGlsIGhlIGNvbWVzIHRvCmEgZG9vci4gSGUgb3BlbnMgaXQsCmFuZCB0aGVyZSBzdGFuZHMgTHV0aGllbiwgYSByYXZpc2hpbmcgYmxhY2staGFpcmVkIHdvbWFuIHdlYXJpbmcgdmVyeQpsaXR0bGUuXV0KCkxVVEhJRU46IEVFSyEgWW91J2xsIG5vdCBoYXZlIG1lLCBmb3VsIG1pbmlvbiBvZiBldmlsIQoKS0VOTlk6IE1tIG5mZiBidm4gZ3RoLi4uCgpMVVRISUVOOiBZb3UncmUgbm90PyBUaGVuIHdoYXQuLi4KCktFTk5ZOiBWIGttbSB0aHIgcmZmb28gbm4uCgpMVVRISUVOOiBSZXNjdWUgbWU/IEJ1dCB5b3UncmUganVzdCBhIGtpZC4KCktFTk5ZOiBObnQgdnp0IG4ga3ZkLi4uIG1tIHJ2IG4gZm5udG5nIGRuayBuZCBtbSBudncgZmYgdCB2dSB6dC4KCkxVVEhJRU46IFlvdSdyZSBraWRkaW5nLiBJJ2xsIGhhdmUgdG8gc2VlIHRoYXQgdG8gYmVsaWV2ZSBpdC4KCltbS2VubnksIHdpdGggYmFjayB0byBjYW1lcmEsIGRyb3BzIHBhbnRzLiBMdXRoaWVuIGdhc3BzIGluIGFzdG9uaXNobWVudC4gVGhlCmRvb3Igc2xhbXMuIFNjZW5lCmNoYW5nZXMgYmFjayB0byB0aGUgY2VsbC5dXQoKU1RBTjogRHVkZSwgdGhpcyBzdWNrcy4KCkNBUlRNQU46IE11c3QuLi4gaGF2ZS4uLiBDaGVlc3kuLi4gUG9vZnMuLi4KCktZTEU6IFNodXQgdXAsIGZhdGFzcy4gV2UnbGwgYWxsIGJlIGRlYWQgc29vbiwgb3Igd29yc2UsIG9uIHRoZSBIb21lIFNob3BwaW5nCk5ldHdvcmsKYW5ub3VuY2luZyBzcGVjaWFscyBvbiBmYWtlIGRpYW1vbmRzLgoKQ0hFRjogSSBkaWRuJ3QgbWVhbiB0byBnZXQgeSdhbGwga2lsbGVkLCBidXQgSSBqdXN0IHRob3VnaHQgd2UgbWlnaHQgYXMgd2VsbAphbGwgc3RpY2sgdG9nZXRoZXIgdW50aWwKdGhleSBjb21lIGZvciB1cy4gU28gSSBoYXZlIGEgbGl0dGxlIHNvbmcuLi4KCkNBUlRNQU46IERhbW1pdCEgSG93IGNhbiB5b3Ugc2luZyBhdCBhIHRpbWUgbGlrZSB0aGlzLCB5b3Ugc3R1cGlkCihpbmRldGVybWluYXRlIGJsZWVwZWQtb3V0CndvcmQpIQoKQ0hFRjogQm95LCBpZiBJIHdhc24ndCBjaGFpbmVkIHVwLCBJJ2Qgd2hvb3AgeW91ciBhc3MgZm9yIHRoYXQuCgpbW0NlbGwgZG9vciBvcGVucy4gMiBCYWxyb2dzIGFuZCBNaWNoYWVsIEouIEZveCB3YWxrIGluLl1dCgpNSUNIQUVMIEouIEZPWDogTW9yZ290aCB3aWxsIHNlZSB5b3Ugbm93LiAoQmFscm9ncyB1bmNoYWluIGV2ZXJ5b25lIGFuZCBtYXJjaAp0aGVtCnRocm91Z2ggYSBjb3JyaWRvciB0byBhIGJpZyB0aHJvbmUgcm9vbS4gTW9yZ290aCwgYSBnaWFudCBpbiBibGFjayBhcm1vciB3aXRoCmdsb3dpbmcgcmVkIGV5ZXMsIHNpdHMKb24gdGhlIGh1Z2UgdGhyb25lLikKCk1PUkdPVEg6IFNvLCB5b3UgZm9vbHMsIGRvIHlvdSBoYXZlIGFueXRoaW5nIHRvIHNheSBiZWZvcmUgSSBwdXQgeW91IHRvIGEgc2xvdwphbmQgY3J1ZWwgZGVhdGg/CgpTVEFOOiBZZWFoLCBJIGRvLiBJZiB5b3UncmUgcmVhbGx5IHRoZSBMb3JkIG9mIERhcmtuZXNzLCBob3cgY29tZSBJIGhhdmVuJ3QKaGVhcmQgb2YgeW91IGJlZm9yZT8KCkNBUlRNQU46IFllYWgsIFNhdGFuIGNhbWUgaGVyZSBhIGZldyB3ZWVrcyBhZ28uIEkgdGhvdWdodCBoZSB3YXMgc3VwcG9zZWQgdG8KYmUgdGhlIGxvcmQgb2YKZXZpbC4KCk1PUkdPVEg6IChwaXNzZWQpIFNwZWFrIG5vdCB0byBtZSBvZiB0aGF0IGltcG9zdG9yISBFdmVyeWJvZHkga25vd3MgaGUncyBhCndlYWsgc2lzdGVyLiBJbgpmYWN0LCBoZSdzLi4uIFNhZGRhbSBIdXNzZWluJ3MgZ2F5IGxvdmVyIQoKW1tSb2xsIGNsaXAgZnJvbSB0aGUgZW5kIG9mIHRoZSAiTWV4aWNhbiBTdGFyaW5nIEZyb2ciIGVwaXNvZGUgd2hpY2ggc2hvd3MKU2F0YW4gdGFraW5nIFNhZGRhbQpieSB0aGUgaGFuZCBhbmQgc2F5aW5nLCAiT0ssIGhvbmV5Ll1dCgpDSEVGOiBOb3cgaG9sZCBvbiBoZXJlLiBKdXN0IGJlY2F1c2Ugc29tZW9uZSBoYXMgYSBnYXkgbG92ZXIgZG9lc24ndCBtZWFuIHRoZXkKY2FuJ3QgYmUgYSBsb3JkCm9mIGV2aWwuIFdoYXQgd2UgbmVlZCBoZXJlIG5vdyBpcyBtb3JlIHRvbGVyYW5jZSwgdW5kZXJzdGFuZGluZy4uLiBhbmQgbG92ZS4uLgoKW1tDdWUgbXVzaWMuIEJhbHJvZ3MgbG9vayBhdCBlYWNoIG90aGVyLCBzaHJ1ZywgYW5kIHN0YXJ0IHNpbmdpbmcgIm9vIG9vIgpiYWNrdXAgaW4gdGhlIHJpZ2h0CnNwb3RzLl1dCgpDSEVGOgoKTG92ZSwgaXQgbWFrZXMgdGhlIHdvcmxkIGdvIHJvdW5kCkxvdmUsIGlmIGxvc3QsIGl0J3MgZ290dGEgYmUgZm91bmQKV2hldGhlciBtYW4gZm9yIGEgd29tYW4KT3Igd29tYW4gZm9yIGEgbWFuCk9yIHR3byBtZW4sIG9yIHR3byB3b21lbiAobXkgcGVyc29uYWwgZmF2b3JpdGUgdG8gd2F0Y2gpCk9yIG1hbiBmb3IgYSBzaGVlcApPciB3b21hbiBmb3IgYSB0cmFpbmVkIHNuYWtlCk9yLi4uCgpNT1JHT1RIOiBPaCwgYnJvdGhlci4gKENvbmtzIG91dCwgc3RhcnRzIHNub3JpbmcuKQoKQ0hFRjogV2hldyEgVGhhdCB3YXMgY2xvc2UsIGNoaWxkcmVuLi4uIGxldCdzIGdldCBvdXQgb2YgaGVyZSBhbmQgZmluZApMdXRoaWVuIQoKS1lMRTogIlRyYWluZWQgc25ha2UiPyEKCltbQ2hlZiBhbmQgdGhlIGtpZHMgcnVuIG91dCBvZiB0aGUgdGhyb25lIHJvb20uIFRoZSBCYWxyb2dzIGFuZCBNaWNoYWVsIEouIEZveApzdGFydCB0byBmb2xsb3csIGJ1dApvbmUgQmFscm9nIGxvb2tzIGF0IGhpcyB3YXRjaCBhbmQgc2hvd3MgaXQgdG8gdGhlIG90aGVycy4gVGhleSBhbGwgc2hydWcgYW5kCnN0YW5kIGFyb3VuZC4gQ2hlZiBhbmQKdGhlIGtpZHMgcnVuIHVwIHNvbWUgc3RhaXJzIGFuZCBmaW5kIHRoZSBkb29yIHRoYXQgS2VubnkgZW50ZXJlZCBhIHdoaWxlCmFnby5dXQoKW1tJbnNpZGUgdGhlIHJvb20uIEx1dGhpZW4gYW5kIEtlbm55IGFyZSBseWluZyBpbiBiZWQgc21va2luZyBjaWdhcmV0dGVzLl1dCgpMVVRISUVOOiBPaCwgdGhhdCB3YXMgd29uZGVyZnVsLgoKW1tPdXRzaWRlIHRoZSByb29tLl1dCgpDSEVGOiBIZWFyIHRoYXQ/IFNvdW5kZWQgbGlrZSBhIHdvbWFuJ3Mgdm9pY2UuIFNoZSBtdXN0IGJlIGluIHRoZXJlLgoKU1RBTjogSG90IGNoaWNrLCBoZXJlIEkgY29tZSEgKENyYXNoZXMgdGhyb3VnaCBkb29yLCBzZWVzIEtlbm55LikgT2htaWdvZCwKS2VubnkncyBub3QgZGVhZCEKCkxVVEhJRU46IEVlayEKCktFTk5ZOiBNZiBrcnogbnQsIHZtaXNzLgoKQ0hFRjogKHN0ZXBwaW5nIGludG8gcm9vbSkgV2hhdD8gKHNlZXMgS2VubnkpIERhbW1pdCwgS2VubnksIHlvdSBob3JueSBsaXR0bGUKdHdlcnAhIChSYWNlcwphY3Jvc3Mgcm9vbSwgcmlwcyBLZW5ueSdzIGhlYWQgb2ZmLikKCktZTEU6IE9obWlnb2QsIENoZWYga2lsbGVkIEtlbm55IQoKU1RBTjogWW91IGYqY2tpbmcgYmFzdGFyZCEKCkNBUlRNQU46IEJpYXRjaCBoYWQgaXQgY29taW4nLgoKQ0hFRjogKHRvc3NpbmcgcGllY2VzIG9mIEtlbm55J3MgY29ycHNlIGFzaWRlLikgT2guLi4gc29ycnksIGNoaWxkcmVuLCBJIGRvbid0Cmtub3cgd2hhdCBjYW1lIG92ZXIKbWUuIChUdXJucyB0byBMdXRoaWVuKSBIZXksIGJhYnkuIEknbSBDaGVmLCBhbmQgSSdtIGhlcmUgdG8uLi4KCkxVVEhJRU46IEFBQUFBSCEKCkNIRUY6IFdhaXQgYSBtaW51dGUsIGJhYnksIGp1c3QgY2FsbSBkb3duIGFuZCBJJ2xsIGV4cGxhaW4tLQoKTFVUSElFTjogKGNyeWluZykgWW91IGRvbid0IHVuZGVyc3RhbmQuIEtlbm55IHdhcyB0aGUgc3dlZXRlc3QsIG1vc3QgdGVuZGVyCnBlcnNvbiBJIGNvdWxkCmV2ZXIgaW1hZ2luZSBhbmQgbm93IHlvdSd2ZSB0YWtlbiBoaW0gZnJvbSBtZS4uLiBUaGF0J3MgaXQhIEknbSB0aHJvdWdoIHdpdGgKbWVuISAoc29iKQoKQ0hFRjogT2ggc2gqdC4KCltbQSBzaGFmdCBvZiBsaWdodCBhcHBlYXJzIGluIHRoZSByb29tLCBhbmQgd2l0aGluIGl0IGFyZSB0aGUgZmlndXJlcyBvZiBFbGxlbgpEZUdlbmVyZXMgYW5kIEFubmUKSGVjaGUuIEN1ZSBtdXNpYywgbHlyaWNzOgoKTGVzYmlhbiBIZWF2ZW4gaW4gdGhlIGJpZyBibHVlIHNlYQpXaGVyZSBpdCdzIHRvbyBjb2xkIHRvIHN1cmYgYW5kIGl0J3MgdG9vIHdhcm0gdG8gc2tpCkxlc2JpYW4gSGVhdmVuIGlzIGEgbG90Li4uIGxpa2UgTC5BLgoKTHV0aGllbiBkaXNhcHBlYXJzIGFsb25nIHdpdGggdGhlIG90aGVyIHdvbWVuLl1dCgpDQVJUTUFOOiBUb2xkIHlvdSBzaGUgd2FzIGEgbGVzYmlhbiwgYnV0IGRpZCBhbnlib2R5IGJlbGlldmUgbWU/IE5vLgoKS1lMRTogRG9uJ3QgeW91IHRoaW5rIHdlIHNob3VsZCBiZSBnZXR0aW5nIG91dCBvZiBoZXJlPwoKTU9SR09USDogKG9mZnNjcmVlbikgSXQncyB0b28gbGF0ZSBmb3IgdGhhdCwgeW91IHNsaW1lISAoTW9yZ290aCBlbnRlcnMsCmZvbGxvd2VkIGJ5IGN1cmlvdXNseQpyZWx1Y3RhbnQgQmFscm9ncyBhbmQgTS5KLiBGb3guKSBUYWtlIHRoZXNlIGltYmVjaWxlcyBkb3duc3RhaXJzIGFuZCBtYWtlIHRoZW0Kd2F0Y2ggdGhlIE5ldwpLaWRzIE9uIHRoZSBCbG9jayBjb25jZXJ0IHZpZGVvIQoKTUlDSEFFTCBKLiBGT1g6IFVtLCBzb3JyeSB0byBicmVhayB0aGlzIHRvIHlvdSwgY2hpZWYsIGJ1dCBpdCdzIDU6MTUtLSB3YXkKcGFzdCBxdWl0dGluZyB0aW1lLgpXZSdyZSBvdXR0YSBoZXJlLCBsZXNzIHlvdSB3YW5uYSBkZWFsIHdpdGggdGhlIFVuaW9uLiAoTWljaGFlbCBhbmQgdGhlIEJhbHJvZ3MKbGVhdmUuKQoKTU9SR09USDogQ3Vyc2VzISBJIHNoYWxsIGRlYWwgd2l0aCB5b3UgbXlzZWxmIQoKQ0FSVE1BTjogV3Vzcy4gSSBiZXQgU2F0YW4gbmV2ZXIgaGFzIHRyb3VibGUgd2l0aCBoaXMgdW5pb24uCgpNT1JHT1RIOiBTYXRhbiBhZ2Fpbj8gV2VsbCwgbGl0dGxlIGZhdCBib3ksIEknbGwgc2hvdyB5b3Ugd2hhdCBJIHRoaW5rIG9mClNhdGFuLiAoTW9yZ290aCBiZW5kcwpvdmVyLCBmYXJ0cywgYW5kIGEgdGhyZWUtZm9vdCBqZXQgb2YgZmxhbWUgZmxpZXMgb3V0IG9mIGhpcyBhc3MuKQoKS0lEUzogQ29vbCEKCkNIRUY6IEJpZyBkZWFsLCBJIGRpZCB0aGF0IGFsbCB0aGUgdGltZSBpbiBjb2xsZWdlLgoKTU9SR09USDogU28sIG5vdyBJIHdpbGwtLQoKW1tTYXRhbiBhcHBlYXJzIGluIGEgY2xvdWQgb2YgZmlyZSBhbmQgYnJpbXN0b25lLl1dCgpNT1JHT1RIOiBZb3U/IQoKU0FUQU46IFllcCwgbWUuIFRoYXQgIlRlcnJlbmNlIGFuZCBQaGlsaXAiIGdhZyB3YXMgdGhlIGxhc3Qgc3RyYXcuIE5vdyBJIHNoYWxsCnNob3cgeW91IHdobwp0aGUgcmVhbCBMb3JkIG9mIEV2aWwgaXMgYXJvdW5kIHRoZXNlIHBhcnRzLgoKTU9SR09USDogWW91J3JlIG9uLiBXaG9ldmVyJ3MgbGVmdCBhbGl2ZSBhdCB0aGUgZW5kIG9mIHRoaXMgZmlnaHQgaXMgdGhlIG5ldwpVbHRpbWF0ZSBFdmlsIG9mIHRoZQpVbml2ZXJzZS4gKFRoZXkgc3F1YXJlIG9mZiBhbmQgYmVnaW4gc21hY2tpbmcgdGhlIGhlbGwgb3V0IG9mIGVhY2ggb3RoZXIuCk5laXRoZXIgb25lIGlzIGNsZWFybHkKd2lubmluZy4pCgpTVEFOOiBUaGlzIGlzIGJldHRlciB0aGFuIHRoZSBXV0YhCgpLWUxFOiBBbmQgYSBsb3QgbW9yZSBkYW5nZXJvdXMuCgpDQVJUTUFOOiBHbyBTYXRhbiEKCkNIRUY6IENoaWxkcmVuLCB3ZSBzaG91bGQgcmVhbGx5IGJlIGdldHRpbmcgb3V0dGEgaGVyZS4KCltbVGhlIGZpZ2h0IGNvbnRpbnVlcy4gQm90aCBNb3Jnb3RoIGFuZCBTYXRhbiBhcmUgYnJ1aXNlZCBhbmQgYmxvb2R5LiBGaW5hbGx5LAp0aGV5IGJvdGggbGFuZApwdW5jaGVzIGF0IHRoZSBzYW1lIHRpbWUsIGFuZCBib3RoIGZhbGwgdG8gdGhlIGZsb29yIHNlbnNlbGVzcy5dXQoKU1RBTjogRGFtbiwgbm9ib2R5IHdvbi4KClZPSUNFOiBUaGF0J3Mgd2hhdCB5b3UgdGhpbmsuIChJbiBhIGZsYXNoIG9mIGxpZ2h0LCB0aGUgdm9pY2UncyBvd25lciBpcwpyZXZlYWxlZDogU3BlY2lhbCBQcm9zZWN1dG9yCktlbiBTdGFyci4gSGUga2lja3MgYm90aCBNb3Jnb3RoIGFuZCBTYXRhbiBzcXVhcmUgaW4gdGhlIGNyb3RjaCBhbmQgZ2xhcmVzIGF0CmV2ZXJ5b25lIGxlZnQKc3RhbmRpbmcuKSBBbmQgbm93IHRoYXQgSSd2ZSB3b24sIEkgbXVzdCBhc2sgeW91OiBIYXZlIGFueSBvZiB5b3UgZXZlciBoYWQKc2V4dWFsIHJlbGF0aW9ucyB3aXRoCk1vbmljYSBMZXdpbnNreT8KCkNBUlRNQU46IEkgaGF2ZW4ndC4gKEV2ZXJ5b25lIGVsc2UgbG9va3Mgc2hlZXBpc2guKQoKS0VOIFNUQVJSOiBPaCwgdGhlbiB5b3UgZG9uJ3QgbWF0dGVyLiBZb3UncmUganVzdCBhIGZhdCBraWQuIFRoZXNlIG90aGVycyBoYXZlCnRvIGNvbWUgd2l0aCBtZQpmb3IgcXVlc3Rpb25pbmcgYnkgdGhlIHN1YmNvbW1pdHRlZSBhbmQgdGhlIG1lZGlhIGphY2thbHMuIE5vdyBtb3ZlISAoRXZlcnlvbmUKZXhjZXB0IENhcnRtYW4KaXMgZnJvZy1tYXJjaGVkIG91dCB0aGUgZG9vciBieSBLZW4gU3RhcnIuKQoKQ0FSVE1BTjogVGhpcyBpcyBmKmNraW5nIHdlaXJkLgoKW1tTZXR0aW5nOiB0aGUgQ2FydG1hbiBob21lXV0KCk1SUy4gQ0FSVE1BTjogQW5kIHdoYXQgZGlkIHlvdSBkbyB0b2RheSwgc25vb2t1bXM/CgpDQVJUTUFOOiBXZWxsLCBDaGVmIGFuZCBteSBmcmllbmRzIGdvdCB0aHJvd24gaW4gamFpbCwgYW5kIHRoZW4gd2Ugc2F3IHRoaXMKY2hpY2sgZ2V0IHRha2VuIHVwCnRvIExlc2JpYW4gSGVhdmVuLCBhbmQgU2F0YW4gYW5kIHRoaXMgb3RoZXIgZHVkZSBmb3VnaHQgdG8gc2VlIHdobydkIGJlIHRoZQpQcmluY2Ugb2YgRXZpbCwgYnV0CktlbiBTdGFyciB3b24gdGhlIGZpZ2h0LgoKTVJTLiBDQVJUTUFOOiBEb24ndCBsaWUgdG8gbWUhIFdoYXQgd2VyZSB5b3UgcmVhbGx5IGRvaW5nIGFmdGVyIHNjaG9vbD8KCkNBUlRNQU46IFNtb2tpbicgY3JhY2sgd2l0aCBNaWNoYWVsIEouIEZveC4KCk1SUy4gQ0FSVE1BTjogT2gsIE9LLCBzbm9va3Vtcy4gTW9yZSBTbmFja3kgQ2FrZXM/CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb3NpbmcgQ3JlZGl0cwoKV3JpdHRlbiBieSBNYXR0IEdyYWhhbQoKVGhpcyB3YXMgd3JpdHRlbiB3aXRoIHRvbmd1ZSBmaXJtbHkgcGxhbnRlZCBpbiBjaGVlaywgYW5kIG5vIG9mZmVuc2UgdG8gYW55b25lCmlzIGludGVuZGVkLgpCZXNpZGVzLCBpdCdzIGp1c3QgYSBmKmNraW5nIGNhcnRvb24sIHNvIGxpZ2h0ZW4gdXAgYWxyZWFkeS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmtsYXNzZW5kZWtsYXJhdGlvbiBkZXMgb2JqZWt0cyAicHJvZ3JhbW1pZXJlciIgKEhvdXNlaG9sZGVyLCAgNC4gU2VwIDE5OTksIDE0OjIwOjI2KToKY2xhc3MgQ1NvZnR3YXJlUHJvZmVzc2lvbmFsCiAgIHsgCiAgIHByaXZhdGU6IAoKICAgICAgZG91YmxlIHNhbGFyeTsgCiAgICAgIGxvbmcgbHVuY2hlczsgCiAgICAgIGZsb2F0IGpvYnM7IAogICAgICBjaGFyIHVuc3RhYmxlOyAKICAgICAgdm9pZCogd29yazsgCgogICBwcml2YXRlOiAKCiAgICAgIGNvbXBsZXggVXBkYXRlU2tpbGxzKCk7IAogICAgICBsb25nIERvd25sb2FkUGljdHVyZXMoKTsgCiAgICAgIGxvbmcgUGxheU5ldHdvcmtHYW1lcyhDU29mdHdhcmVQcm9mZXNzaW9uYWwmIE90aGVyUHJvZmVzc2lvbmFsKTsKCiAgIHB1YmxpYzogCgogICAgICBzaG9ydCBQYWludFRoZU1hbmFnZXJzKCk7IAogICAgICB2aXJ0dWFsIHZvaWQgV29ya0R1cmluZ0RheSgpID0gMDsKICAgICAgbG9uZyBTZW5kTWFpbHMoKTsgCiAgICAgIGxvbmcgUmVjZWl2ZU1haWxzKCk7IAogICAgICBsb25nIFNlbmQoQ1BpY3R1cmVzJiBQaWN0dXJlcyk7IAogICAgICBsb25nIFNlbmQoQ0pva2VzJiBKb2tlcyk7IAoKICAgfTsKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBrbGFzc2VuZGVrbGFyYXRpb24gZGVzIG9iamVrdHMgInByb2dyYW1taWVyZXIiIChNYWhhdG11LCAgNy4gU2VwIDE5OTksIDEyOjI2OjE5KToKfiMhIHJuPUhvdXNlaG9sZGVyIHJ0PTkzNjQ1NDgyNiByZz13aXR6ZQp+IyEgdGlkPTkzNjQ1NDgyNgoqbGFjaCoKTmltbSBNZXRob2RlIFBhaW50VGhlTWFuYWdlcnMoKSB1bmQgVmFyaWFibGUgc2FsYXJ5IHJhdXMgdW5kIER1IGhhc3QKZWluZSBLbGFzc2UgU3R1ZGVudC4gRGllIEhpZXJhcmNoaWUgaXN0IGluIGRlbSBGYWxsIHNlaHIgYXVzc2FnZWtyYWVmdGlnIDstKQoKTWFoYXRtdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBrbGFzc2VuZGVrbGFyYXRpb24gZGVzIG9iamVrdHMgInByb2dyYW1taWVyZXIiIChSdW1hdGEsICA3LiBTZXAgMTk5OSwgMTQ6MDM6MjcpOgp+IyEgcm49TWFoYXRtdSBydD05MzY3MDcxNzkgcmc9d2l0emUKfiMhIHRpZD05MzY0NTQ4MjYKcHJvZ3JhbW1pZXJlciBpbmhlcml0cyBzdHVkZW50ID8/PwpydW1hdGEsIHNpY2ggd3VuZGVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvY2h6ZWl0IHAubS4gKFJvY2h1cywgIDkuIFNlcCAxOTk5LCAxMjowNDozOSk6CkF1ZiBkZW0gV2VnIHp1bSBTdGFuZGVzYW10IGVyZWlnbmV0IHNpY2ggZWluIHRvZWRsaWNoZXIgVW5mYWxsIHVuZCBkYXMKQnJhdXRwYWFyIHN0ZWh0IG51biB2b3IgZGVyIEhpbW1lbHNwZm9ydGUgdW5kIGZyYWd0IGRlbiBQZXRydXM6CiJLb2VubmVuIHdpciBkZW5uIHdlbmlnc3RlbnMgaGllciBpbSBIaW1tZWwgaGVpcmF0ZW4/IgoiRGEgbXVzcyBpY2ggbmFjaGZyYWdlbi4iLCBtZWludCBkZXIgYWx0ZSBQZXRlciB1bmQgc2NobHVyZnQgbG9zIC0gendlaQpNb25hdGUgc3B0ZXIga29tbXQgZXIgd2llZGVyIHp1cnVlY2sgenVyIFBmb3J0ZTogIkphLCBJaHIgb2Vrbm50IGhpZXIKaGVpcmF0ZW4hIiBBYmVyIGluendpc2NoZW4gc2luZCBad2VpZmVsIGF1Zmdla29tbWVuLCB1bmQgZGllIEJyYXV0CmZyYWd0OiAiR3V0IC0gYWJlciBrb2VubmVuIHdpciB1bnMgaGllciBhdWNoIGltIE5vdGZhbGwgd2llZGVyIHNjaGVpZGVuCkRhIHNjaG5hdWZ0IFNhbmt0IFBldGVyIHd1ZXRlbmQ6ICJXYXMgc29sbCBkaWUgRnJhZ2U/PyBad2VpIE1vbmF0ZSBoYWJlCmljaCBnZWJyYXVjaHQsIHVtIGhpZXIgb2JlbiBlaW5lbiBQcmllc3RlciB6dSBmaW5kZW4hISBXYXMgZ2xhdWJ0IElociwKd2llIGxhbmdlIGVzIHdvaGwgZGF1ZXJ0LCBiaXMgaWNoIGVpbmVuIEFud2FsdCBhdXNmaW5kaWcgbWFjaGU/PyEiCgogKGF1cyBkZS50YWxrLmpva2VzKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmEgd2FzIHdvaGwgLSBlaW4gd2l0emxlIGhhbHQgKERpZWRlciwgIDkuIFNlcCAxOTk5LCAxOTozNjoxMCk6CiJXaWVzbyBiaXN0IGR1IHNvIHplcmtyYXR6dD8iCiJJY2ggaGFiZSBsZXR6dGUgTmFjaHQgdW0gZGllIEVocmUgZWluZXIganVuZ2VuIEZyYXUgZ2VrZG1wZnQhIgoiVW5kPyIKIlNpZSB3b2xsdGUgc2llIGJlaGFsdGVuLi4uIiAKCkRpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3BhLVdpdHogKERpZWRlciwgIDkuIFNlcCAxOTk5LCAyMDowMDoyNSk6CgpEYSB1bnRlcmhhbHRlbiBzaWNoIHp3ZWkgT3BhcyB8YmVyIEdlYnVydHN0YWdzZ2VzY2hlbmtlOgoiSWNoIHdlcmRlIG1laW5lciBGcmF1IHp1bSBHZWJ1cnRzdGFnIGVpbmUgR2FzbWFza2Ugc2NoZW5rZW4uIgoiV2llc28gZGVubiBkYXM/IgoiTmEsIGVyc3RlbnMgd2lyZCBzaWUgZGFkdXJjaCBzY2h2bmVyLCB6d2VpdGVucyBpc3QgZGVyIE11bmRnZXJ1Y2ggd2VnIHVuZApkcml0dGVucywgd2VubiBpY2ggaWhyIGRlbiBTY2hsYXVjaCB6dWhhbHRlLCBzdGVtbXQgc2llIHdpZSAnbmUgMThqZGhyaWdlLi4uIiAKCkRpZWRlciwgZmllcyBraWNoZXJuZAoKUFM6IFRyaWZmdCBhdWYgbWljaCBuaWNodCB6dSwgaWNoIGJpbiBtaXQgbWVpbmVuIEZyYXVlbiBtZWhyIGFscyB6dWZyaWVkZW4uLi4KbnVyIHNvIGFtIFJhbmRlLCBiZXZvciBpY2ggU2NobGFlZ2Uga3JpZWcgKmR1Y2sqIDotKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkREUi1XaXR6IChEaWVkZXIsICA5LiBTZXAgMTk5OSwgMjA6MjA6MjYpOgpFaW4gRERSLUJ8cmdlciBnZWh0IHNwZHQgaW4gZGVyIE5hY2h0IGR1cmNoIE9zdGJlcmxpbiB1bmQgcnVmdCBsYXV0ZW4gSGFsc2VzCmltbWVyIHdpZWRlcjogIlNjaGVpX3N0YWF0LCBTY2hlaV9yZWdpZXJ1bmchIgpQbHZ0emxpY2ggdGF1Y2h0IGVpbiBTdGFzaS1PZmZpemllciBhdWYgdW5kIHZlcmhhZnRldCBpaG4uIERlciBNYW5uIHdpbGwgZGVuCkdydW5kCmRhZnxyIHdpc3NlbiwgZGVyIHZvbiBkZXIgU3Rhc2kgZXJpbm5lcnQgaWhuIGFuIHNlaW5lIGxhdXRzdGFya2VuIER1X2VydW5nZW4uCkRlcgpNYW5uIHZlcnRlaWRpZ3Qgc2ljaCB1bmQgc2FndDoKIkljaCBoYWJlIGphIGdhciBuaWNodCBnZXNhZ3QsIHdlbGNoZW4gU2NoZWlfc3RhYXQgdW5kIHdlbGNoZSBTY2hlaV9yZWdpZXJ1bmcKaWNoCm1laW5lLiIKRGVyIFN0YXNpb2ZmaXppZXIgZGVua3Qga3VyeiBuYWNoIHVuZCBsZF90IGRlbiBNYW5uIGdlaGVuLiBEaWVzZXIKdmVyc2Nod2luZGV0LAp3aXJkIGFiZXIgendlaSBNaW51dGVuIHNwZHRlciB2b24gZGVtIFN0YXNpb2ZmaXppZXIgd2llZGVyIGVpbmdlaG9sdCB1bmQKZXJuZXV0CnZlcmhhZnRldC4KRGFyYXVmIGRlciBNYW5uOiAiV2llc28gZGllc2VzPyIKRGEgc2FndCBkZXIgU3Rhc2ltZW5zY2g6ICJFcyBnaWJ0IGphIG51ciBlaW5lbiBTY2hlaV9zdGFhdCB1bmQgZWluZQpTY2hlaV9yZWdpZXJ1bmcuLi4iIAoKRGllZGVyLCBmYW5kIGRlbiBpcmdlbmR3aWUgZ2VuaWFsIDopCgpQUzogVW1sYXV0ZSB6d2Vja3MgRmF1bGhlaXQgbmljaHQga29udmVydGllcnQsIGphd29sbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW50aU1TIChEaWVkZXIsICA5LiBTZXAgMTk5OSwgMjA6NDQ6MDgpOgpQYWFyIFdpdHplIChqYSBpY2ggd2Vpc3MgZGFzcyBlaW5pZ2UgZGllIHdvaGwgc2Nob24ga2VubmVuIHdlcmRlbiA6KSk6CgpCZWkgZGVyIE1pY3Jvc29mdCBIb3RsaW5lOgpBbnJ1ZmVyOiAiU2VpdCBpY2ggZGllIFdpbmRvd3M5OC1CZXRhIGluc3RhbGxpZXJ0IGhhYmUsIHN0fHJ6dCBPZmZpY2UgJzk3CmxhdWZlbmQKYWIuIgpIb3RsaW5lOiAiV2lyIGhhdHRlbiBoaWVyIGRhcyBnbGVpY2hlIFByb2JsZW0uIgpBbnJ1ZmVyOiAiVW5kIHdhcyBoYWJlbiBTaWUgZ2VtYWNodD8iCkhvdGxpbmU6ICJXaXIgaGFiZW4gZGllIEJldGEgZWluIHp3ZWl0ZXMgTWFsIGluc3RhbGxpZXJ0LiIgQW5ydWZlcjogIkd1dCwgZGFubgp2ZXJzdWNoZSBpY2ggZGFzIGpldHp0IGF1Y2guCkVpbmUgU3R1bmRlIHNwZHRlci4uLgpBbnJ1ZmVyOiAiSmV0enQgbGR1ZnQgYmVpIG1pciBnYXIgbmljaHRzIG1laHIhIgpIb3RsaW5lOiAiQmVpIHVucyBhdWNoIG5pY2h0Li4uIiAKCi0tLS0tCgpCZWkgTWljcm9zb2Z0IHdpcmQgZWluIEZpbmRlbGtpbmQgZ2VmdW5kZW4uIFNjaG9uIGJhbGQgd2lyZCBnZW11bmtlbHQsIGRhXyBlcwpzaWNoIGJlaSBkZW0gVmF0ZXIgdW0gQmlsbCBHYXRlcyBoYW5kZWx0LiBVbSBkaWVzZXMgR2VyfGNodCB6dSB2ZXJuaWNodGVuLAp3aXJkCnZvbiBNaWNyb3NvZnQgZWluZSBTdGVsbHVuZ25hbWUgYWJnZWdlYmVuOgozIEdyfG5kZSwgd2FydW0gQmlsbCBuaWNodCBkZXIgVmF0ZXIgaXN0OgoxLiBCZWkgTWljcm9zb2Z0IHd1cmRlIG5vY2ggbmllIGV0d2FzIG1pdCBMdXN0IHVuZCBMaWViZSBnZW1hY2h0Li4uCjIuIEJlaSBNaWNyb3NvZnQgd3VyZGUgbm9jaCBuaWUgZXR3YXMgZmVydGlnZ2VzdGVsbHQsIHdhcyBIZG5kZSB1bmQgRnxfZQpoYXR0ZS4uLgozLiBVbmQgYmVpIE1pY3Jvc29mdCB3YXIgbm9jaCBuaWUgZXR3YXMgaW5uZXJoYWxiIHZvbiA5IE1vbmF0ZW4gZmVydGlnLi4uIAoKLS0tLS0KCkZyYWdlOiBJY2ggaW5zdGFsbGllcmUgZ2VyYWRlIFdpbmRvd3M5OCwgd2FzIHNvbGwgaWNoIGRyfGNrZW4/CkFudHdvcnQ6IEFtIGJlc3RlbiBiZWlkZSBEYXVtZW4uLi4gCgotLS0tLQoKS3VuZGVuZGllbnN0OiAiR3V0ZW4gVGFnLCBaQ29tbSBLdW5kZW5kaWVuc3QsIE1laWVyPyIKS3VuZGU6ICJJY2ggaGFiZSBlYmVuIFdpbmRvd3MgOTUgaW5zdGFsbGllcnQuIgpLdW5kZW5kaWVuc3Q6ICJVbmQ/IgpLdW5kZTogIkljaCBoYWIgZWluIFByb2JsZW0uIgpLdW5kZW5kaWVuc3Q6ICJTYWd0ZW4gU2llIGRvY2ggc2Nob24uLi4iIAoKLS0tLS0KCkRpZWRlcgoKIldobyB0aGUgRioqKiogaXMgR2VuZXJhbCBGYWlsdXJlPyBBbmQgd2h5IGlzIGhlIHJlYWRpbmcgbXkgaGFyZCBkaXNrPyIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBERFItV2l0eiAoQXBzdSwgMTAuIFNlcCAxOTk5LCAxNTozNTo0NSk6Cn4jISBybj1EaWVkZXIgcnQ9OTM2OTA4NDI2IHJnPXdpdHplCn4jISB0aWQ9OTM2OTA4NDI2CkFwcm9wb3MgTW90dGVua2lzdGU6CgpTaXR6dCBlaW4gRERSLUJ1ZXJnZXIgYmVzb2ZmZW4gaW4gZGVyIEtuZWlwZSB1bmQga29tbXQgbWl0IHNlaW5lbSBHZWdlbnVlYmVyCmlucyBHZXNwcmFlY2guIERpZSBiZWlkZW4gZmFuZ2VuIGFuLCBzaWNoIFdpdHplIHp1IGVyemFlaGxlbiwgdW5kIHNvIG1laW50CmVyc3RlcmVyOiAnV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gSG9ubmVja2VyIHVuZCBlaW5lbSBTY2h3ZWluPycKRGEgZnJhZ3Qgc2VpbiBHZWdlbnVlYmVyIHp1cnVlY2s6J1dhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEhvbm5lY2tlcgp1bmQgZGVtIEJpZXIgaGllcj8nIHVuZCBkZXV0ZXQgYXVmIGRlbiBUaXNjaC4KRXJzdGVyZXIgaXN0IHZlcndpcnJ0IHVuZCB6dWNrdCBkaWUgU2NodWx0ZXJuLgonRGFzIEJpZXIgYmxlaWJ0IGhpZXIgdW5kIER1IGtvbW1zdCBtaXQhJyBzYWd0IGRlciBhbmRlcmUgdW5kIHp1ZWNrdCBzZWluZW4KU3Rhc2ktQXVzd2Vpcy4KCk5hamEsIG5hY2ggZWluaWdlbiBKYWhyZW4gQmF1dHplbiB3aXJkIGVyIGVudGxhc3NlbiwgZGFzIEVyc3RlLCB3YXMgZXIKYW5sYWV1ZnQ6IG5hdHVlcmxpY2ggYmVzYWd0ZSBLbmVpcGUuCkRhIHNpdHp0IGRlciBTdGFzaWZyaXR6ZSBhdWNoIHNjaG9uIHVuZCBncmluc3QgaWhuIGFuOidOYSwgd2FzIGlzdCBkZW5uIGpldHp0CmRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBIb25uZWNrZXIgdW5kIGVpbmVtIFNjaHdlaW4/JwonRnVlciBtaWNoIGdpYnRzIGtlaW5lIFVudGVyc2NoaWVkZSBtZWhyLicKCkFwc3UKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpadXZlcmxhZXNzaWdrZWl0IHZvbiBXaW5kb3dzIChSb2NodXMsIDEwLiBTZXAgMTk5OSwgMTg6MDM6MDEpOgpodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vbnR3b3Jrc3RhdGlvbi9vdmVydmlldy9SZWxpYWJpbGl0eS9IaWdoZXN0LmFzcApJY2ggZGVua2UgbWFsLCBrZWluIEtvbW1lbnRhciBub2V0aWcsIG9kZXI/IDotKQoKICBSb2NodXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIb2NoemVpdCBwLm0uIChUb2UsIDE0LiBTZXAgMTk5OSwgMTc6NTE6MjUpOgp+IyEgcm49Um9jaHVzIHJ0PTkzNjg3ODY3OSByZz13aXR6ZQp+IyEgdGlkPTkzNjg3ODY3OQpIYWxsbyB6dXNhbW1lbiEKZWxhIHVuZCB0b2UgLSBnaWJ0IGVzIGhpZXIgdWViZXJoYXVwdCBlbGEgLSAKbm9lIGRhbm4gbGllYmVyIG5pY2h0IAouZAoKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSG9jaHplaXQgcC5tLiAoVG9lLCAxNC4gU2VwIDE5OTksIDE3OjUyOjE5KToKfiMhIHJuPVRvZSBydD05MzczMzE0ODUgcmc9d2l0emUKfiMhIHRpZD05MzY4Nzg2NzkKaHVjaCBlbGEgZ2lidHMgamEgZG9jaC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU29mdGthZXBwY2hlbiBvZGVyICJXZWxjaGUgRmlybWEgc3RlY2t0IGRhaGludGVyPyIgKEtudWJiZWwsIDE0LiBTZXAgMTk5OSwgMTg6NDM6NDApOgpTSzogR3Jvc3NtdXR0ZXIsIHdhcnVtIGhhc3QgZHUgc28gZ3Jvc3NlIEF1Z2VuPwpHTTogRGFtaXQgaWNoIGRpY2ggYmVzc2VyIHVlYmVyd2EuLi5zZWhlbiBrYW5uIQoKU0s6IEVpISBHcm9zc211dHRlciwgd2FydW0gaGFzdCBkdSBzbyBncm9zc2UgT2hyZW4/CkdNOiBEYW1pdCBpY2ggZGljaCAuLi4gYmVzc2VyIGFiaG9lcmVuIGthbm4hCgpTSzogR3Jvc3NtdXR0ZXIsIHdhcnVtIHNjaHJlaWJzdCBkdSBtaXIgZWluZSBMaW51eC1FTWFpbCBpbSBNU1dvcmQtRm9ybWF0PwpHTTogRnVjLi5rIGl0ISA8bGFldWZ0IGRhdm9uPgoKS251YmJlbAoKUFM6IHd3dy5oZWlzZS5kZS9uZXdzdGlja2VyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXJ1bSBNYWVubmVyIGJlc3NlciBhbGxlaW5lIHNjaGxhZmVuIChEaWVkZXIsIDE0LiBTZXAgMTk5OSwgMjI6MzQ6MTIpOgoKV2FydW0gTWRubmVyIGJlc3NlciBhbGxlaW5lIHNjaGxhZmVuIC4uLgoKSWNoIHNjaGxhZmUgbmFjaHRzIHdpZSBlaW4gU3RlaW4uIEtlaW4gR2VyZHVzY2ggZGllc2VyIFdlbHQgc3RvZXJ0IG1pY2gKaW4gbWVpbmVtIGtvbWFhZWhubGljaGVuIFNjaGxhZi4gVW5kIGF1Y2ggZGFzIGZ8ciBtZWluZW4gTmFjaGJhcm4genUKbGF1dGUgR2VyYWV1c2NoIGRlcyBXZWNrZXJzIGJlZWluZHJ1Y2t0IG1pY2ggbmljaHQgd2lya2xpY2guIEF1X2VyIGRpZQpHZXJhZXVzY2hlIGluIGplbmVyIE5hY2h0Li4uCgpJY2ggd2FjaHRlIGFuIGRlbiBLbGFlbmdlbiBlaW5lcyBLaW5kZXJsaWVkZXMgYXVmLCBkYXMgbWlyIHdvaGxiZWthbm50Cndhci4gRGllIEZyYXUsIGRpZSBtaXQgbWlyIGRhcyBCZXR0IHRlaWx0ZSwgc2FuZyAtIHdlaWwgU2llIG5pY2h0CmVpbnNjaGxhZmVuIGtvbm50ZSAtIG1vcmdlbnMgdW5kIGhhbGIgZnVlbmY6CgogICAgIkhleSBQaXBwaSBMYW5nc3RydW1wZiwgZmFsbGVyaSBmYWxsZXJhIGZhbGxlci4uLi4uIgoKTWFsIGFiZ2VzZWhlbiB2b20gU2V4IC0gRnJhdWVuIG5lcnZlbiBpbSBCZXR0LgoKV2VubiBpY2ggdm9uIGRlciBFcm90aWsgZWlubWFsIGFic2VoZSwgaGFiZW4gbWlyIEZyYXVlbiBpbSBCZXR0IG5pY2h0cwphbHMgYWVyZ2VyIGVpbmdlYnJhY2h0LiBNaXQgV2VobXV0IGRlbmtlIGljaCBtYW5jaG1hbCBhbiBkaWUKVGVlbmFnZXJ6ZWl0ZW4genVydWVjaywgaW4gZGVuZW4gaWNoIGVudHdlZGVyIGFsbGVpbiB1bmQgZW50c3Bhbm50IGRpZQpOYWNodHJ1aGUgZ2Vub18gb2RlciBudXIgdm9ydWViZXJnZWhlbmQgbWl0IGVpbmVyIEZyYXUgZGFzIEJldHQKYXVmc3VjaHRlLiBEaWUgUHJvYmxlbWUgZmluZ2VuIGVyc3Qgc28gbWl0IEFuZmFuZyB6d2FuemlnIGFuLCBhbHMgbWFuCmRhcyBOYWNodGxhZ2VyICJ3aWUgTWFubiB1bmQgRnJhdSIgdGVpbHRlLCBzcHJpY2g6IHZvbSBFaW5zY2hsYWZlbiBiaXMKenVtIEF1ZnN0ZWhlbi4gVW5kIGRhIG11XyBpY2ggZWluZSBnYW56IGJpdHRlcmUgQmlsYW56IHppZWhlbi4KCk5hZWNodGUgZGVzIEdyYXVlbnMgaXN0IG5vY2ggdW50ZXJ0cmllYmVuLiBBbSBUYWdlIGR1cmNoYXVzIGFiZ2VrbGFlcnRlLAp6dXBhY2tlbmRlIHVuZCBtb2Rlcm5lIEZyYXVlbiBtdXRpZXJlbiBhbmdlc2ljaHRzIHZvbiBGZWRlcmtlcm4gdW5kCkRhdW5lIGF1c25haG1zbG9zIHp1IHZlcndvZWhudGVuLCBsZWJlbnN1bnR1ZWNodGlnZW4sIGVnb2lzdGlzY2hlbgpaaWNrZW4sIHdpZSBpY2ggamV0enQgYW4gZWluaWdlbiBCZWlzcGllbGVuIHNjaGx1ZXNzaWcgYmV3ZWlzZW4gd2VyZGUuCgpCZWdpbm5lbiB3aXIgbWl0IGRlbSB1bmVyZnJldWxpY2hlbiBUaGVtYSAiTXVlY2tlbiIuIFZvcndlZyBtdV8gaWNoCnNhZ2VuLCBkYV8gaWNoIGltIFNvbW1lciBncnVuZHNhZXR6bGljaCBnYW56IGdlcm4gbmViZW4gZWluZXIgRnJhdQpsaWVnZSwgd2VpbCBpY2ggZGFubiB2b24gU3RlY2htdWVja2VuIHZlcnNjaG9udCBibGVpYmUuIERpZSBzdHVlcnplbgpzaWNoIGltbWVyIGF1ZiBtZWluZSBQYXJ0bmVyaW4uIERhcyBpc3QgYml0dGVyLCB0dXQgbWlyIHBlcnNvZW5saWNoCmF1Y2ggd2lya2xpY2ggbGVpZCwgaXN0IGFiZXIgbm9jaCBsYW5nZSBrZWluIEdydW5kLCBtaWNoIGdyb2Igd2FjaCB6dQpqYW1tZXJuOiAiSWNoIGJpbiB2b2VsbGlnIHplcnN0b2NoZW4uIiBNaXQgZWluZXIgU3RpbW1lLCBpbQpHcmVuemJlcmVpY2ggendpc2NoZW4gSHlzdGVyaWUgdW5kIE5lcnZlbnp1c2FtbWVuYnJ1Y2ggbW9kdWxpZXJ0LiBEZXIKQXVmdHJhZyBhbiBtaWNoLCBkZW4gbWFlbm5saWNoZW4gIlNpY2hlcmhlaXRzYmVhbXRlbiIgaXN0IGtsYXI6ICJTdGVoCmF1ZiB1bmQgZ2VoIE11ZWNrZW4gamFnZW4iLgoKSWNoIHdlaV8gbmljaHQsIHdhcnVtIEZyYXVlbiBzZWxic3Qga2VpbmUgTXVlY2tlbiBqYWdlbiwgd2FydW0gc2llIGltCkJldHQgbGllZ2VuZCBkZW4gU3BhZWhlciBtYWNoZW4sIGF1ZiBzY2h3YXJ6ZSBQdW5rdGUgYW4gZGVyIERlY2tlCmRldXRlbiB1bmQgIkRhISIgcnVmZW4uCgpJY2ggd2VpXyB2b3IgYWxsZW0gbmljaHQsIHdhcnVtIGljaCBpbW1lciB3aWVkZXIgZ2FlaG5lbmQsIG1pdAp6ZXJ6YXVzdGVtIEhhYXIgdW5kIGVpbmVyIHp1c2FtbWVuZ2Vyb2xsdGVuIFplaXR1bmcgYXVmIGRlciBNYXRyYXR6ZQpzdGVoZSB1bmQgYXVmIFp1cnVmIFRpZXJlIHRvdHNjaGxhZ2UuCgpOdW4genVtIFRoZW1hOiB3aWUgc2NobGFmZSBpY2ggbm9ybWFsZXJ3ZWlzZT8KCkFtIGxpZWJzdGVuIGluIGRlciBMb2VmZmVsc3RlbGx1bmcuIEljaCBsaWViZSBkaWVzZSBTY2hsYWZwb3NpdGlvbiwKd2VpbCBzaWUgbWljaCBpbiBkZW0gR3J1bmR2ZXJ0cmF1ZW4gaW4gZGllIFJpY2h0aWdrZWl0IG1laW5lcyBEYXNlaW5zCmJlc3RhZXJrdC4KCk51biBnaWJ0IGVzIGFiZXIgemFobHJlaWNoZSBGcmF1ZW4sIGRpZSBzaWNoIGFuZmFuZ3Mgc2VociBhbnNjaG1pZWdzYW0KZ2ViZW4gdW5kIGxlaWRlbnNjaGFmdGxpY2ggImxvZWZmZWxuIiwgc2ljaCBhYmVyLCB3ZW5uIGVzIHVtIGRpZQplbmRndWVsdGlnZSBTY2hsYWZwb3NpdGlvbiBnZWh0LCBhbHMgc2VociBoYXJ0bGVpYmlnIGVyd2Vpc2VuLiBTaWUKc3RvX2VuIHNpY2ggbWl0IGRlciBlaW5lbiBIYW5kIHZvbiBtaXIgbG9zLCBlcmdyZWlmZW4gbWl0IGRlciBhbmRlcmVuCkhhbmQgZGllIGVpZ2VuZSBCZXR0ZGVja2UgdW5kIHZlcnRlaWRpZ2VuIGRpZXNlcyBSZWZ1Z2l1bSBtaXQKZXJiaXR0ZXJ0ZXIgR2VnZW53ZWhyLiBVbmQgaWNoIG11XyBnZWR1bGRpZyB3YXJ0ZW4sIGJpcyBkaWUgIk1laW5lCkRlY2tlIGdlaG9lcnQgbWlyIi1BdXRpc3RpbiBlbmRsaWNoIGluIGRlbiBTY2hsYWYgZ2VzdW5rZW4gaXN0LCB1bmQgaWNoCmJlZ2lubmVuIGthbm4sIHZvcnNpY2h0aWcgcm9iYmVuZCB2ZXJsb3JlbmVzIFRlcnJhaW4genVydWVja3p1Z2V3aW5uZW4uCgpXZW5uIGljaCBkYW5uLCBudW5tZWhyIGhhbGJoZXJ6aWcgbG9lZmZlbG5kLCBpbiB0aWVmZW4gU2NobGFmIGdlc3Vua2VuCmJpbiwga29tbXQgaGFldWZpZyBzY2huZWxsIGRpZSBuYWVjaHN0ZSBHZW1laW5oZWl0LgoKRWluIGJydXRhbGVyIFN0b18sIG1laXN0IG1pdCBkZW0gRWxsYm9nZW4gYXVzZ2VmdWVocnQsIHRyaWZmdCBtaWNoIGluCmRpZSBTZWl0ZS4gSWNoIHNjaHJlY2tlIGhvY2ggdW5kIGhvZXJlIGVpbmUgc2NobmVpZGVuZGUgU3RpbW1lOiAiRHUKc2NobmFyY2hzdC4iCgpTbyB3YXMgd3VlcmRlIGljaCBuaWUgdHVuLiBJY2ggZmluZGUgZXMgYmV6YXViZXJuZCwgd2VubiBzaWUgaW0gU2NobGFmCnJlZGV0IG9kZXIgZWluIGJpX2NoZW4gdm9yIHNpY2ggaGluYmx1YmJlcnQuIE5pZSB3dWVyZGUgaWNoIG1pdCBkZW0KRWxsYm9nZW4gc3RvX2VuLgoKQWJlciBGcmF1ZW4gaXN0IGVzIGphIGVnYWwsIG9iIG1hbiBmcnVlaG1vcmdlbnMgZWluZW4gd2ljaHRpZ2VuIFRlcm1pbgpoYXQuIE5hY2ggZGVyIFRhdCBzaW5rZW4gc2llIHVtZ2VoZW5kIHdpZWRlciBpbiBkZW4gVGllZnNjaGxhZiwgdW5kCmljaCBsaWVnZSBtaXQgdGVsbGVyZ3JvX2VuIEF1Z2VuIGluIGRlciBEdW5rZWxoZWl0IHVuZCBmaW5kZSBrZWluZQpSdWhlLgoKR3JhdWVuaGFmdCBpc3QgYXVjaCBlaW5lIGFuZGVyZSBWYXJpYW50ZSBkZXIga29lcnBlcmxpY2hlbiBBdHRhY2tlLiBEYQpsaWVndCBtYW4gd29obGlnIHVudGVyIHNlaW5lciBEZWNrZSB1bmQgaXN0IGFtIFdlZ25pY2tlbiAtIHVuZCBkYW5uCmtvbW1lbiBzaWU6IGthbHQsIGVpc2thbHQuIEdlZnJvcmVuZSBGcmF1ZW5mdWVfZSBzY2hpZWJlbiBzaWNoIGxhbmdzYW0KdW5kIHVuYXVmaGFsdHNhbSB6d2lzY2hlbiBkaWUgbWFlbm5saWNoZW4gU2NoZW5rZWwuIERvcnQgc29sbGVuIHNpZQpnZXdhZXJtdCB3ZXJkZW4uCgpEZXIgTWFubiB6dWNrdCB6dXJ1ZWNrLCB3aW5kZXQgc2ljaCwgdmVyc3VjaHQgZGllIEZsdWNodCwgYWJlciBkaWUKd2VpY2hlbiBHbGV0c2NoZXIgdW50ZXIgZGVyIERlY2tlIHNpbmQgc3RhZXJrZXIuIEFsbGUgRnJhdWVuIGhhYmVuCmthbHRlIEZ1ZV9lISBBbGxlISBVbmQgc2llIGtlbm5lbiBrZWluIEVyYmFybWVuLiBTdHVtbSwgYWJlciBmb3JkZXJuZAprb21tZW4gc2llIGluIGRlciBOYWNodCBnZWtyb2NoZW4gdW5kIHNhdWdlbiBLb2VycGVyd2Flcm1lIGltCkdpZ2F3YXR0LUJlcmVpY2ggYWIuIFNjaHJlY2tsaWNoIQoKTWFuY2htYWwgZ2ViZW4gc2llIGFiZXIgYXVjaCBkYW5uIGtlaW5lIFJ1aGUsIHdlbm4gbWFuIGlocmUKUGVybWFmcm9zdC1GdWVfZSBlbnRlaXN0LCBkYXMgU2NobmFyY2hlbiBlaW5nZXN0ZWxsdCB1bmQgZGVtIExvZWZmZWxuCmVudHNhZ3QgaGF0LgoKRGVubiBkYW5uIGhhYmVuIHNpZSB3YXMgZ2Vob2VydC4gIkRhIGlzdCBkb2NoIGplbWFuZCIsIHJhdW5lbiBzaWUsICJEYQpoYXQgZG9jaCB3YXMgZ2VrbmFja3QiIG9kZXIgIkhvZXJzdCBkdSBkaWVzZSBrb21pc2NoZW4gR2VyYWV1c2NoZT8iCgpEaWUgQm90c2NoYWZ0IGlzdCBlcm5ldXQgZ2xhc2tsYXI6IE1hbm4sIHBhY2sgZGlyIGVpbmVuIGhvZWx6ZXJuZW4KS2xlaWRlcmJ1ZWdlbCBvZGVyIHNvbnN0IGVpbmUgYmVoZWxmc21hZV9pZ2UgV2FmZmUsIHdhZyBkaWNoIGluIGRpZQpkdW5rbGUgV29obnVuZyB1bmQgdmVydHJlaWIgZGVuIEVpbmJyZWNoZXIsIHNvIGR1IGVpbmVuIGZpbmRlc3QuCgpLbGFyLCBkYV8gamVkZXIgTWFubiBkZW0gdGllZiB2ZXJ3dXJ6ZWx0ZW4gSW5zdGlua3QgenVtIFNjaHV0emUgZGVyClNpcHBlIGZvbGd0IHVuZCBpbiBTb2NrZW4gdW5kIFVudGVyaG9zZW4gd2llIGVpbiBEZXBwIGltIER1bmtsZW4KdW1oZXJzdG9scGVydC4gVW0gZGFubiBmcmllcmVuZCB1bmQgdW52ZXJyaWNodGV0ZXIgRGluZ2Ugd2llZGVyIHp1cgoobmF0dWVybGljaCB0aWVmIHNjaGxhZmVuZGVuKSBQYXJ0bmVyaW4genVydWVja3p1a2VocmVuLgoKV2VyIG1laW50LCBtaXQgZGVtIE1vcmdlbmdyYXVlbiBzZWkgZGVyIGFlcmdlciBhdXNnZXN0YW5kZW4sIGlycnQuIFdpZQppbiBlaW5lbSBIb3Jyb3JmaWxtLCBkZXIgc2NoZWluYmFyIHNlaW5lbiBncnVzZWxpZ2VuIEhvZWhlcHVua3QKZXJyZWljaHQgaGF0IHVuZCBkYW5uIG5vY2ggbWFsIGVudHNldHpsaWNoIHp1c2NobGFlZ3QuCgpEaWUgUmVkZSBpc3Qgdm9uIHVudGVyc2NoaWVkbGljaGVuIFNjaGxhZi0gdW5kIFdhY2hyaHl0aG1lbi4gSWNoCmFyYmVpdGUgZWJlbiBiaXMgaW4gZGllIGZydWVoZW4gTW9yZ2Vuc3R1bmRlbiB1bmQgc3RlaGUgZm9sZ2VyaWNodGlnCm5pY2h0IGdlcmFkZSBtaXQgZGVuIEh1ZWhuZXJuIGF1Zi4gS2VpbiBQcm9ibGVtIGZ1ZXIgZGVuIEFsbGVpbnNjaGxhZWZlci4KCldhcyBhYmVyIHNvbGwgaWNoIG1pdCBlaW5lciBGcmF1IG1hY2hlbiwgZGllIG1vcmdlbnMgdW0gc2llYmVuCmtlcnplbmdlcmFkZSBuYWNoZmVkZXJuZCBpbSBCZXR0IHNpdHp0LCBMYW5nZXdlaWxlIGhhdCwgc2ljaCBsYXV0IHVuZAp2ZXJuZWhtbGljaCByZWNrdCwgZ2FlaG50LCByYWV1c3BlcnQsIGF1ZmRyaW5nbGljaGVuIEtvZXJwZXJrb250YWt0CnN1Y2h0IHVuZCBhbSBFbmRlIGdhciBmbHVlc3NpZ2UgS29udmVyc2F0aW9uIGZvcmRlcnQ/ICguLi4pCgpOYWNoZGVtIGljaCBibHV0c2F1Z2VuZGUgSW5zZWt0ZW4genVyIFN0cmVja2UgYnJhY2h0ZSwgenVtIERhbmsgZGFmdWVyCkVsbGJvZ2VuLUNoZWNrcyBrYXNzaWVydGUgdW5kIHVudGVyIGRpZSBlaWdlbmUga2FsdGUgQmV0dGRlY2tlCnZlcmJhbm50IHd1cmRlLCBuYWNoIGFsbGRlbSByZWljaHRlIGVzIG1pciBpcmdlbmR3YW5uLiBVbmQgendhcgpyaWNodGlnLgoKRWluZXMgZnJ1ZWhlbiBNb3JnZW5zIHd1cmRlIGljaCBkdXJjaCBkaWUgRnJhZ2UgIkthbm5zdCBkdSBhdWNoIG5pY2h0Cm1laHIgc2NobGFmZW4/IiBnZXdlY2t0IHVuZCBoZXJyc2NodGUgZGllIEZyYXUgbmViZW4gbWlyIHJ1ZWRlIGFuOgoKICAgICJIYWx0IGRpZSBLbGFwcGUgdW5kIG1hY2ggVGVlISIKCkt1cnogZGFuYWNoIGZpZWwgZGllIFdvaG51bmdzdHVlciBrcmFjaGVuZCBpbnMgU2NobG9fLCB1bmQgaWNoIG11X3RlCm1pciBkZW4gVGVlIHNlbGJzdCBtYWNoZW4uIEdpYnQgZXMga2VpbmUgSG9mZm51bmc/CgpEb2NoLCBkaWUgZ2lidCBlcy4gSWNoIGhhYmUgLSBudW4gamEgLSBqZW1hbmRlbiBrZW5uZW5nZWxlcm50LiBVbmQgZGllCmlzdCBhbmRlcnMhIFNpZSBpc3QgYW5zY2htaWVnc2FtIHVuZCBrdXNjaGVsdCBleHplc3Npdi4gSWNoIGRhcmYgaW4KaWhyZXIgR2VnZW53YXJ0IGF1c2dpZWJpZyBzY2huYXJjaGVuLiBXZW5uIHNpZSBHZXJhZXVzY2hlIGhvZXJ0LCBzY2hhdXQKc2llIHNlbGJlciBuYWNoIGRlbSBSZWNodGVuLiBNdWVja2VuIGJyaW5ndCBzaWUgbWl0IGdlc2NoaWNrdGVuClNjaGxhZWdlbiBlaWdlbmhhZW5kaWcgenVyIFN0cmVja2UsIHVuZCBzaWUgaGF0IG5pZW1hbHMga2FsdGUgRnVlX2UuIEd1dCwKc2llIGlzdCB2aWVsbGVpY2h0IGVpbiBiaV9jaGVuIHZlcnNwaWVsdC4KCkFiZXIgd2VsY2hlIEthdHplIGlzdCBkYXMgbmljaHQ/CgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmF1cyBkZW0gc2wgaW1wb3J0aWVydCA6KSAoUGF0cnluLCAxNS4gU2VwIDE5OTksIDAwOjUyOjM1KToKVW5sbmdzdCBiZWkgZWluZW0gcmVub21taWVydGVuIEVEVi1IZXJzdGVsbGVyLi4uCkVpbiBLdW5kZSBydWZ0IGJlaW0gdGVjaG5pc2NoZW4gRGllbnN0IGFuLCB3ZWlsIHNlaW4gUmVjaG5lcgpmZWhsZXJoYWZ0IGlzdDoKClRlY2huaWtlcjogV2VsY2hlcyBQcm9ibGVtIHRyaXR0IGRlbm4gYXVmPwoKS3VuZGU6IEVzIGtvbW10IFJhdWNoIGF1cyBkZW0gTmV0enRlaWwgbWVpbmVzIENvbXB1dGVycy4KClRlY2huaWtlcjogRGFubiwgZ2xhdWJlIGljaCwgbXNzZW4gd2lyIGdhciBuaWNodCBsYW5nZSBkaXNrdXRpZXJlbi4KU2llIGJyYXVjaGVuIGVpbiBuZXVlcyBOZXR6dGVpbC4KCkt1bmRlOiBOZWluLCBkYXMgZ2xhdWJlIGljaCBuaWNodC4KClRlY2huaWtlcjogRG9jaCwgZG9jaC4gRGEgYmluIGljaCBtaXIgc2ljaGVyLgoKS3VuZGU6IE5laW4hISBJY2ggbXVzcyBudXIgZGllIFN0YXJ0ZGF0ZWllbiBuZXUga29uZmlndXJpZXJlbi4KClRlY2huaWtlcjogR2xhdWJlbiBTaWUgbWlyLCBkYXMgTmV0enRlaWwgaXN0IGthcHV0dCB1bmQgbXVzcyBlcnNldHp0Cgp3ZXJkZW4uCgpLdW5kZTogRGFzIGthbm4gbmljaHQgc2VpbiEgSmVtYW5kIGhhdCBtaXIgZ2VzYWd0LCBkYXNzIGljaCBudXIgZGllClN0YXJ0ZGF0ZWllbiBuZGVybiBtdXNzLCBkYW1pdCBlcyB3aWVkZXIgZnVua3Rpb25pZXJ0LiBVbmQgd2FzIGljaCB2b24KSWhuZW4gbWNodGUgaXN0LCBkYXNzIFNpZSBtaXIgc2FnZW4sIHdlbGNoZXMgS29tbWFuZG8gaWNoIGluIGRpZQpDT05GSUcuU1lTCmVpbmZnZW4gbXVzcy4KCihaZWhuIE1pbnV0ZW4gc3B0ZXIgaGF0IHNpY2ggZGVyIEt1bmRlIGltbWVyIG5vY2ggbmljaHQgYmVycmVkZW4KbGFzc2VuIHVuZCBpc3Qgdm9sbCBkYXZvbiBiZXJ6ZXVndCwgZGFzcyBlciByZWNodCBoYXQuIERlciBUZWNobmlrZXIKaXN0CmZydXN0cmllcnQgdW5kIGdpYnQgYXVmOikKClRlY2huaWtlcjogTnVuIGphISBFbnRzY2h1bGRpZ2VuIFNpZSBiaXR0ZSwgYWJlciBub3JtYWxlcndlaXNlIHNhZ2VuCndpciB1bnNlcmVuIEt1bmRlbiBuaWNodCwgZGFzcyBlcyBlaW5lbiB1bmRva3VtZW50aWVydGVuIERPUy1CZWZlaGwKZ2lidCwgbWl0IGRlbSBTaWUgZGFzIFByb2JsZW0gbHNlbiBrbm5lbi4KCkt1bmRlOiBBaGEsIGljaCB3dXNzdGUgZXMgZG9jaCEhIQoKVGVjaG5pa2VyOiBTaWUgbXNzZW4gbnVyIGRhcyBLb21tYW5kbyBERVZJQ0U9Tk9TTU9LRS5DT00gYW5zIEVuZGUgSWhyZXIKY29uZmlnLnN5cyBzdGVsbGVuLiBHZWJlbiBTaWUgbWlyIEJlc2NoZWlkLCBvYiBlcyBmdW5rdGlvbmllcnQuCgooV2VpdGVyZSB6ZWhuIE1pbnV0ZW4gc3B0ZXIpCgpLdW5kZTogRXMgZnVua3Rpb25pZXJ0IG5pY2h0LiBEYXMgTmV0enRlaWwgcmF1Y2h0IGltbWVyIG5vY2guCgpUZWNobmlrZXI6IE5hIGphLCB3ZWxjaGUgVmVyc2lvbiB2b24gRE9TIHZlcndlbmRlbiBTaWU/CgpLdW5kZTogTVMtRE9TIDYuMjIKClRlY2huaWtlcjogRGFzIGlzdCBnZW5hdSBJaHIgUHJvYmxlbS4gRGllc2UgVmVyc2lvbiB2b24gRE9TIGJlc2l0enQKbm9jaCBrZWluIE5PU01PS0UuQ09NLiBTaWUgbXNzZW4gYmVpIE1pY3Jvc29mdCBhbnJ1ZmVuIHVuZCBkb3J0IG5hY2gKZWluZW0gVXBncmFkZSBmcmFnZW4uIEdlYmVuIFNpZSBtaXIgZGFubiBiaXR0ZSBCZXNjaGVpZC4KCihFaW5lIFN0dW5kZSBzcHRlcikKCkt1bmRlOiBJY2ggYnJhdWNoZSBlaW4gbmV1ZXMgTmV0enRlaWwuCgpUZWNobmlrZXI6IFdpZSBrb21tZW4gU2llIHBsdHpsaWNoIGRhcmF1Zj8KCkt1bmRlOiBOYWphLCBpY2ggaGFiZSBiZWkgTWljcm9zb2Z0IGFuZ2VydWZlbiB1bmQgZGVuZW4gZ2VzYWd0LCB3YXMKU2llIG1pciBnZXNhZ3QgaGFiZW4uIERhcmF1ZmhpbiBoYWJlbiBzaWUgbWljaCBuYWNoIGRlciBNYXJrZSB1bmQKYW5kZXJlbiBEZXRhaWxzIGRlcyBOZXR6dGVpbHMgZ2VmcmFndC4KClRlY2huaWtlcjogVW5kIHdhcyBoYWJlbiBzaWUgZGFubiBnZXNhZ3Q/CgpLdW5kZTogU2llIGhhYmVuIG1pciBnZXNhZ3QsIGRhc3MgbWVpbiBOZXR6dGVpbCBuaWNodCBrb21wYXRpYmVsIHp1Ck5PU01PS0UuQ09NIGlzdC4uLgoKLS0tLS0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhcnVtIE1hZW5uZXIgYmVzc2VyIGFsbGVpbmUgc2NobGFmZW4gKFN0cmVhd2tjZXVyLCAxNS4gU2VwIDE5OTksIDAxOjEyOjU5KToKfiMhIHJuPURpZWRlciBydD05MzczNDg0NTIgcmc9d2l0emUKfiMhIHRpZD05MzczNDg0NTIKSG0uLi4gZ2VuYXUgZGVuIEFydGlrZWwgaGF0IEdyaW1tYm9ybiB2b3IgMyBXb2NoZW4gZ2Vwb3N0ZXQuLi4KCnJyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDeWJlciB1bmQgU2V4IC4uIChLYXJpcywgMTUuIFNlcCAxOTk5LCAwNjo1Mzo1Nik6Cj4gRXI6IEhhbGxvIFN3ZWV0aGVhcnQuIFdpZSBzaWVoc3QgZHUgYXVzPwo+IAo+IFNpZTogSWNoIHRyYWdlIGVpbmUgcm90ZSBCbHVzZSwgZWluZW4gTWluaXJvY2sgdW5kIGhvaGUgQWJzdHplLiBJY2gKPiB0cmFpbmllcmUgbWVpbmVuIEtycGVyIGplZGVuIFRhZywgYmluIGdlYnJ1bnQgdW5kIHBlcmZla3QuCj4gTWVpbmUgTWFlIHNpbmQgOTEtNjAtOTEuIFdpZSBzaWVoc3QgZHUgYXVzID8KPiAKPiBFOiBJY2ggYmluIDEsOTAgTWV0ZXIgZ3JvIHVuZCB3aWVnZSBldHdhIDExNCBLaWxvZ3JhbW0uIEljaCB0cmFnZSBlaT4KbmUKPiBCcmlsbGUgdW5kIGhhYmUgZWluIHBhYXIgYmxhdWUgVW50ZXJob3NlbiBhbiwKPiBkaWUgaWNoIGdlcmFkZSBiZWkgV2FsbWFydCBnZWthdWZ0IGhhYmUuIEF1ZXJkZW0gdHJhZ2UgaWNoIGVpbiBULVNoaT4KcnQgYXVmCj4gIGRlbSBlaW4gcGFhciBGbGVja2VuIHZvbiBCYXJiZWN1ZS1TYXVlIHZvbQo+IE1pdHRhZ2Vzc2VuIHNpbmQgLi4uIGVzIHJpZWNodCBrb21pc2NoLgo+IAo+IFM6IEljaCB3aWxsIGRpY2guIFdpbGxzdCBkdSBtaWNoIGZpY2tlbiA/Cj4gCj4gRTogT0suCj4gCj4gUzogV2lyIHNpbmQgaW4gbWVpbmVtIFNjaGxhZnppbW1lci4gUnVoaWdlIE11c2lrIHNwaWVsdCB1bmQgS2VyemVuIGxldWM+Cmh0ZW4KPiAgYXVmIG1laW5lciBHYXJkb2JlcmllIHVuZCBhdWYgbWVpbmVyIEtvbW1vZGUuCj4gSWNoIHNjaGF1ZSBkaXIgbGNoZWxuZCBpbiBkZWluZSBBdWdlbi4gTWVpbmUgSGFuZCBhcmJlaXRldCBzaWNoIGhpbnU+Cm50ZXIKPiB6dSBkZWluZXIgR2FiZWx1bmcgdW5kIGJlZ2lubnQgZGVpbmUgZ3JvZSwgZ3JlciB3ZXJkZW5kZSBCZXVsZT4gIHp1Cj4gc3RyZWljaGVsbi4KPiAKPiBFOiBJY2ggc2NobHVja2UsIGljaCBiZWdpbm5lIHp1IHNjaHdpdHplbi4KPiAKPiBTOiBJY2ggemllaGUgZGlyIGRlaW4gVC1TaGlydCBhdXMgdW5kIGtzc2UgZGVpbmUgQnJ1c3QuCj4gCj4gRTogTnVuIGtucGZlIGljaCBkZWluZSBCbHVzZSBhdWYuIE1laW5lIEhuZSB6aXR0ZXJuLgo+IAo+IFM6IEljaCBzdGhuZSB6cnRsaWNoLgo+IAo+IEU6IEljaCBuZWhtZSBkZWluZSBCbHVzZSB1bmQgbGFzc2Ugc2llIGxhbmdzYW0gaGludW50ZXJnbGVpdGVuLgo+IAo+IFM6IEljaCB3ZXJmZSBtZWluZW4gS29wZiB2b2xsZXIgVmVyZ25nZW4genVyY2suIERpZSBrYWx0ZSBTZWlkZSBnPgpsZWl0ZXQKPiB2b24gbWVpbmVyIHdhcm1lbiBIYXV0IHdlZy4gSWNoIHJlaWJlIGFuIGRlaW5lciBCZXVsZSBzY2huZWxsZXIsCj4gbWFzc2llcmUgc2llIHVuZCByZWliZSBkYXJhbi4KPiAKPiBFOiBNZWluZSBIbmRlIGJlZ2lubmVuIHBsdHpsaWNoIHNwYXN0aXNjaCB6dSB6dWNrZW4gdW5kIHJlaWVuCj4gdW5nbGNrZXJ3ZWlzZSBlaW4gTG9jaCBpbiBkZWluZSBCbHVzZS4gRXMgdHV0IG1pciBsZWlkLgo+IAo+IFM6IERhcyBpc3QgT0ssIGVzIHdhciB3aXJrbGljaCBuaWNodCBzbyB0ZXVlci4KPiAKPiBFOiBJY2ggYmV6YWhsZSBlcy4KPiAKPiBTOiBNYWNoIGRpciBkYXJiZXIga2VpbmUgU29yZ2VuLiBJY2ggdHJhZ2UgZWluZW4gc3BpdHplbmFydGlnZW4gc2Nodz4KYXJ6ZW4KPiBCSC4gTWVpbmUgd2VpY2hlbiBCcnN0ZSBoZWJlbiBzaWNoIHVuZCBzaW5rZW4gd2llZGVyLCB3aHJlbmQgaWNoID4Kc2Nod2VyZXIKPiAgdW5kIHNjaHdlcmVyIGF0bWUuCj4gCj4gRTogSWNoIGZ1bW1sZSBhbiBkZW0gVmVyc2NobHUgZGVpbmVzIEJIJ3MgaGVydW0uIEljaCBnbGF1YmUsIGVyIGtsZW0+Cm10Lgo+IEhhc3QgZHUgZWluZSBTY2hlcmUgPwo+IAo+IFM6IEljaCBuZWhtZSBkZWluZSBIYW5kIHVuZCBrc3NlIHNpZSBzYW5mdC4gSWNoIGdyZWlmZSBuYWNoIGhpbnRlbiB1PgpuZAo+IGZmbmUgZGVuIFZlcnNjaGx1LiBEZXIgQkggZ2xlaXRldCB2b24gbWVpbmVtIEtycGVyLgo+IERpZSBMdWZ0IHN0cmVpY2hlbHQgbWVpbmUgQnJzdGUuIE1laW5lIE5pcHBlbCBzaW5kIGZyIGRpY2ggYXVmZ2VyPgppY2h0ZXQuCj4gCj4gRTpXaWUgaGFzdCBkdSBkYXMgZ2VtYWNodCA/IEljaCBuZWhtZSBkZW4gQkggdW5kIHVudGVyc3VjaGUgZGVuCj4gVmVyc2NobHVrbGlwcCB1bmdsdWJpZy4KPiAKPiBTOiBJY2ggd2xiZSBtZWluZW4gUmNrZW4uIE9oIEJhYnkuIEkgbWNodGUgbnVyIGRlaW5lIFp1bmdlID4gYmVyYWxsCmFuCj4gbWlyIHNwcmVuLgo+IAo+IEU6IEljaCBsYXNzZSBkZW4gQkggZmFsbGVuLiBOdW4gbGVja2UgaWNoIGRlaW5lLCBkdSB3ZWl0IHNjaG9uLCBCcj4Kc3RlLgo+IFNpZSBzaW5kIHRvbGwhCj4gCj4gUzogSWNoIGZhaHJlIG1laW5lIEZpbmdlciBkdXJjaCBkZWluIEhhYXIuIEpldHp0IGtuYWJiZXJlIGljaCBhbiBkZWluZW0+Cgo+IE9oci4KPiAKPiBFOiBJY2ggbmllc2UgcGx0emxpY2guIERlaW5lIEJyc3RlIHNpbmQgdm9sbCBtaXQgU3B1Y2tlIHVuZCBTY2hsZT4gaW0uCj4gCj4gUzogV2FzPwo+IAo+IEU6IEVzIHR1dCBtaXIgc28gbGVpZC4gRWhybGljaC4KPiAKPiBTOiBJY2ggd2lzY2hlIGRlbiBTY2hsZWltIG1pdCBkZW4gYmVycmVzdGVuIG1laW5lciBCbHVzZSBhYi4KPiAKPiBFOiBJY2ggbmVobWUgZGlyIGRpZSBuYXNzZSBCbHVzZSBhYi4gSWNoIGxhc3NlIHNpZSB6dSBCb2Rlbgo+IHBsdW1wc2VuLgo+IAo+IFM6IE9LLiBJY2ggemllaGUgZGlyIGRlaW5lIEJveGVyc2hvcnRzIHJ1bnRlciB1bmQgcmVpYmUgYW4gZGVpbmVtIGhhcnRlPgpuCj4gV2Vya3pldWcuCj4gCj4gRTogSWNoIHNjaHJlaWUgd2llIGVpbmUgRnJhdS4gRGVpbmUgSG5kZSBzaW5kIGthbHQhIEppaWlpaGhoIQo+IAo+IFM6IEljaCB6aWVoZSBtZWluIE1pbmlyb2NrIGF1cy4gWmllaCBtaXIgbWVpbiBVbnRlcmhzY2hlbiBhdXMhCj4gCj4gRTogSWNoIHppZWhlIGRpciBkZWluZW4gU2xpcCBhdXMuIE1laW5lIFp1bmdlIGdlaHQgYmVyYWxsIGhpbiwgcmVpbiA+CnVuZAo+IHJhdXMgYW4gZGlyIGtuYWJiZXJuZCAuLi4gaG0gLi4uIHdhcnRlICduZSBNaW51dGUuCj4gCj4gUzogV28gbGllZ3QgZGFzIFByb2JsZW0gPwo+IAo+IEU6IEVpbiBTY2hhbWhhYXIgaXN0IGluIG1laW5lbSBIYWxzIHN0ZWNrZW5nZWJsaWViZW4uIEljaCBlcnN0aWNrZSEKPiAKPiBTOiBCaXN0IGR1IE9LPwo+IAo+IEU6IEljaCBoYWJlIGVpbmVuIEh1c3RlbmFuZmFsbC4gSWNoIHdlcmRlIGtuYWxscm90Lgo+IAo+IFM6IEthbm4gaWNoIGRpciBoZWxmZW4/Cj4gCj4gRTogSWNoIHJlbm5lIHp1IGRlciBLY2hlLCB2ZWhlbWVudCBhbSBXcmdlbi4gSWNoIHRhc3RlIGRlbiBTY2hyYW4+IGsKbmFjaAo+IFRhc3NlbiBhYi4gV28gYmV3YWhyc3QgZHUgZGVpbmUgVGFzc2VuIGF1Zj8KPiAKPiBTOiBJbSBTY2hyYW5rIHJlY2h0cyBuZWJlbiBkZW0gU3BsYmVja2VuLgo+IAo+IEU6IEljaCB0cmlua2UgZWluZSBUYXNzZSBXYXNzZXIuIEphLCBkYXMgaXN0IGJlc3Nlci4KPiAKPiBTOiBLb21tIHp1IG1pciB6dXJjaywgR2VsaWVidGVyLgo+IAo+IEU6IEljaCB3YXNjaGUgZ2VyYWRlIGRpZSBUYXNzZSBhYi4KPiAKPiBTOiBJY2ggd2VuZGUgbWljaCBhdWYgZGVtIEJldHQgZnIgZGljaCBoZXJ1bS4KPiAKPiBFOiBJY2ggdHJvY2tuZSBkaWUgVGFzc2UgYWIuIEpldHp0IHN0ZWxsZSBpY2ggc2llIGluIGRlbiBTY2hyYW5rIHp1cj4KY2suCj4gVW5kIG51biBnZWhlIGljaCB6dXJjayBpbiBkYXMgU2NobGFmemltbWVyLgo+IFdhcnRlLCBlcyBpc3QgZHVua2VsLiBJY2ggaGFiZSBtaWNoIHZlcmxhdWZlbi4gV28gaXN0IGRhcyBTY2hsYWZ6aW1tZXIgPgo/Cj4gCj4gUzogTGV0enRlIFRyIGF1ZiBkZXIgbGlua2VuIFNlaXRlIGFtIEVuZGUgZGVyIEVpbmdhbmdzaGFsbGUuCj4gCj4gRTogSWNoIGhhYmUgZXMgZ2VmdW5kZW4uCj4gCj4gUzogSWNoIHplcnJlIGRpciBkZWluZSBIb3NlbiBoaW51bnRlci4gSWNoIHN0aG5lLiBJY2ggd2lsbCBkaWNoIHNvIHM+CmVoci4KPiAKPiBFOiBJY2ggYXVjaC4KPiAKPiBTOiBEZWluZSBIb3NlbiBzaW5kIGF1cy4gSWNoIGtzc2UgZGljaCBsZWlkZW5zY2hhZnRsaWNoIC0gdW5zZXJlIG5hYz4Ka3Rlbgo+IEtycGVyIGRyY2tlbiBzaWNoIGFuZWluYW5kZXIuCj4gCj4gRTogRGVpbiBHZXNpY2h0IGRyY2t0IG1laW5lIEJyaWxsZSBpbiBtZWluIEdlc2ljaHQuIEVzIHR1dCB3ZWguCj4gCj4gUzogV2FydW0gbmltbXN0IGR1IGRlaW5lIEJyaWxsZSBuaWNodCBhYj8KPiAKPiBFOiBJbiBPcmRudW5nLCBhYmVyIGljaCBrYW5uIG9obmUgc2llIG5pY2h0IHNvIGd1dCBzZWhlbi4gSWNoIGxlZ2Ugc2llID4KYXVmCj4gZGVuIE5hY2h0c2NocmFuay4KPiAKPiBTOiBJY2ggYmV1Z2UgbWljaCBiZXJzIEJldHQuIE1hY2gncyBtaXIsIEJhYnkuCj4gCj4gRTogSWNoIG11IHBpbmtlbG4uIEljaCBlcnRhc3RlIG1pciBtZWluZW4gV2VnIGJsaW5kIGR1cmNoIGRhcyBaaW1tZXI+IAp6dQo+IGRlbSBCYWRlemltbWVyLgo+IAo+IFM6IEVpbGUgenVyY2ssIEdlbGllYnRlci4KPiAKPiBFOiBJY2ggaGFiZSBkYXMgQmFkZXppbW1lciBnZWZ1bmRlbiwgYWJlciBlcyBpc3QgZHVua2VsLiBJY2ggdGFzdGUgbmFjaD4KIGRlcgo+ICBUb2lsZXR0ZS4gSWNoIGhlYmUgZGVuIERlY2tlbC4KPiAKPiBTOiBJY2ggd2FydGUgc2VobmxpY2hzdCBhdWYgZGVpbmUgUmNra2Voci4KPiAKPiBFOiBJY2ggYmluIHNvd2VpdCBmZXJ0aWcuIEljaCBzdWNoZSBuYWNoIGRlciBUb2lsZXR0ZW5zcGx1bmcsIGFiZXIgaT4KY2gKPiBrYW5uIHNpZSBuaWNodCBmaW5kZW4uIFVoLW9oIQo+IAo+IFM6IFdvIGlzdCBqZXR6dCBkYXMgUHJvYmxlbSA/Cj4gCj4gRTogSWNoIGhhYmUgZmVzdGdlc3RlbGx0LCBkYSBpY2ggaW4gZGVpbmVuIFdzY2hla29yYiBnZXBpbmtlbHQgaGE+IGJlLgo+IEVudHNjaHVsZGlnZSBub2NobWFscy4gSWNoIGdlaGUgenVyY2sgenUgZGVtIFNjaGxhZnppbW1lciwKPiBlcnRhc3RlIGJsaW5kIG1laW5lbiBXZWcuCj4gCj4gUzogTW1taCwgamEuIEJlZWlsIGRpY2ghCj4gCj4gRTogT0ssIG51biBzdGVja2UgaWNoIG1laW4gLi4uZHUgd2VpdCBzY2hvbiAuLi5EaW5nLi4uaW4gZGVpbi4uLiBkdSA+CndlaXQKPiBzY2hvbi4uLndlaWJsaWNoZXMgRGluZy4KPiAKPiBTOiBKQSEgTWFjaCBlcyBtaXIsIEJhYnkhIE1hY2ggZXMhCj4gCj4gRTogSWNoIGJlcmhyZSBkZWluZW4gZ2xhdHRlbiBIaW50ZXJuLiBFcyBmaGx0IHNpY2ggc28gc2NobiBhbi4+ICBJY2gKa3NzZQo+ICBkZWluZW4gSGFscy4gaG0sIGljaCBoYWJlIGVpbiBwYWFyIFByb2JsZW1lIGhpZXIuCj4gCj4gUzogSWNoIGJld2VnZSBtZWluZW4gQXJzY2ggc3RobmVuZCB2b3IgdW5kIHp1cmNrIC4gSWNoIGthbm4gZXMgbmk+IGNodAplaW5lCj4gIFNla3VuZGUgbG5nZXIgZXJ0cmFnZW4hIERyaW5nIGluIG1pY2ggZWluISBGaWNrIG1pY2ggamV0enQhCj4gCj4gRTogSWNoIGJpbiBrcmFmdGxvcy4KPiAKPiBTOiBXYXM/Cj4gCj4gRTogSWNoIGJpbiBzY2hsYWZmLiBJY2gga2FubiBrZWluZSBFcmVrdGlvbiBrcmllZ2VuLgo+IAo+IFM6IEljaCBzdGVoZSBhdWYgdW5kIGRyZWhlIG1pY2ggdW07IGVpbiB1bmdsdWJpZ2VyIEJsaWNrIGF1ZiBtZWluZW0KPiBHZXNpY2h0Lgo+IAo+IEU6IEljaCB6dWNrZSBtaXQgZWluZW0gdHJhdXJpZ2VtIEdlc2ljaHQgZGllIFNjaHVsdGVybiwgbWVpbiBXaWVuZXIKPiBXcnN0Y2hlbiBpc3QgYWJzb2x1dCB3ZWljaC4gSWNoIG5laG1lIG1pciBtZWluZSBCcmlsbGUgdW5kIHNjaGF1ZSB3YT4gcwo+IG5pY2h0IHN0aW1tdC4KPiAKPiBTOiBOZWluLCBuaWNodCB3aWNodGlnLiBJY2ggemllaGUgbWljaCBhbi4gSWNoIHppZWhlIG1laW5lIFVudGVyd3NjaD4gZQo+IHdpZWRlciBhbi4gSmV0enQgemllaGUgaWNoIG1laW5lIG5hc3NlLCB3aWRlcndydGlnZSBCbHVzZSBhbi4KPiAKPiBFOiBOZWluLCB3YXJ0ZSAhIEljaCBibGlja2UgZmxjaHRpZywgdmVyc3VjaGUgZGVuIE5hY2h0dGlzY2ggenUgZmluZD4KZW4uCj4gSWNoIGZobGUgZGVuIEdhcmRvYmllcmUgZW50bGFuZywgc3RvZSBIYWFyc3ByYXlkb3NlbiwgQmlsZGVycmFobWU+IG4KdW5kCj4gZGVpbmUgS2VyemVuIHVtLgo+IAo+IFM6IEljaCBrbnBmZSBtZWluZSBCbHVzZSB6dS4gTnVuIHppZWhlIGljaCBtZWluZSBTY2h1aGUgYW4uCj4gCj4gRTogSWNoIGhhYmUgbWVpbmUgQnJpbGxlIGdlZnVuZGVuLiBJY2ggc2V0emUgc2llIGF1Zi4gTWVpbiBHb3R0ICEgRWluZSA+CnZvbgo+IHVuc2VyZW4gS2VyemVuIGlzdCBhdWYgZGVuIEJvZGVuIGdlZmFsbGVuLgo+IERpZSBHYXJkaW5lIGJyZW5udCEgSWNoIHplaWdlIGF1ZiBzaWUsIGVpbiBnZXNjaG9ja3RlciBCbGljayBhdWYgbWVpbmVtPgoKPiBHZXNpY2h0Lgo+IAo+IFM6IEZhaHIgenVyIEhsbGUuIEljaCBsb2dnZSBvZmYsIGR1IFZlcmxpZXJlciEKPiAKPiBFOiBKZXR6dCBicmVubnQgZGVyIFRlcHBpY2ghIE9oIG5lZWVpaWlubiEKPiAKPiB+bG9nZ2VkIG9mZn4KPiAuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXVzIGRlbSBzbCBpbXBvcnRpZXJ0IDopIChHdWlsZG8sIDE1LiBTZXAgMTk5OSwgMDc6MjY6MjcpOgp+IyEgcm49UGF0cnluIHJ0PTkzNzM1Njc1NSByZz13aXR6ZQp+IyEgdGlkPTkzNzM1Njc1NQoKRGllc2UgR2VzY2hpY2h0ZSB1bmQgdmllbGUgYW5kZXJlIHNpbmQgdW50ZXIKaHR0cDovL3Jpbmt3b3Jrcy5jb20vc3R1cGlkLyB6dSBmaW5kZW4gKGRpZSBtaXQgTk9TTU9LRS5FWEUgaXN0CmRpZSBsZXR6dGUgdW50ZXIgaHR0cDovL3Jpbmt3b3Jrcy5jb20vc3R1cGlkL2NzX3JldmVuZ2Uuc2h0bWwpLgoKR3VpbGRvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU29mdGthZXBwY2hlbiBvZGVyICJXZWxjaGUgRmlybWEgc3RlY2t0IGRhaGludGVyPyIgKEd1aWxkbywgMTUuIFNlcCAxOTk5LCAwNzoyODozNyk6Cn4jISBybj1LbnViYmVsIHJ0PTkzNzMzNDYyMCByZz13aXR6ZQp+IyEgdGlkPTkzNzMzNDYyMApOZWUsIGRpZSBsZXR6dGUgRnJhZ2UgZ2VodCBzbzoKClNLOiBHcm9zc211dHRlciwgd2FydW0gc2NocmVpYnN0IGR1IG1pciBlaW5lIExpbnV4LUVtYWlsIGltIE1TV29yZC1Gb3JtYXQ/CkdNOiBodHRwOi8vZGF2aXgubGF0ZXNreS5uZXQvYXBvYy9tc2xpbnV4L2luZGV4Lmh0bWwKCkd1aWxkbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJvbW1lIFdlaWhuYWNodHN3dWVuc2NoZSwgaW4gVW5peCBhdXNnZWRydWVja3QgIChTaGFubmFyYSwgMTUuIFNlcCAxOTk5LCAxNzo1OTozMSk6CkxpbnV4IDIuMi42LgpMYXN0IGxvZ2luOiBXZWQgU2VwIDE1IDE5OjMwOjAxICAxOTk5IG9uIHR0eTMuCllvdSBoYXZlIG1haWwuCgpiZXR0ZXIgIXBvdXQgIWNyeQpiZXR0ZXIgd2F0Y2hvdXQKbHByIHdoeQpzYW50YSBjbGF1cyA8bm9ydGggcG9sZSA+dG93bgoKY2F0IC9ldGMvcGFzc3dkID5saXN0Cm5jaGVjayBsaXN0Cm5jaGVjayBsaXN0CmNhdCBsaXN0IHwgZ3JlcCBuYXVnaHR5ID5ub2dpZnRsaXN0CmNhdCBsaXN0IHwgZ3JlcCBuaWNlID5naWZ0bGlzdApzYW50YSBjbGF1cyA8bm9ydGggcG9sZSA+IHRvd24KCndobyB8IGdyZXAgc2xlZXBpbmcKd2hvIHwgZ3JlcCBhd2FrZQp3aG8gfCBlZ3JlcCAnYmFkfGdvb2QnCmZvciAoZ29vZG5lc3Mgc2FrZSkgewpiZSBnb29kCn0KCkhBTExPIFRIRVJFISEKCldhcyBzbyBtYW4gYWxsZXMgenUgc2VoZW4gYmVrb21tdCwgd2VubiBtYW4gZWluZW4gbmV1ZW4gbG9naW4gbWFjaHQuLi4KClNoYW5ueQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKY29uc3VsdGFudHMgKFd1cnplbCwgMTUuIFNlcCAxOTk5LCAyMDoxMTozOCk6CkNvbXByZWhlbmRpbmcgY29uc3VsdGFudHMgLSBUYWtlIE9uZQpUd28gY29uc3VsdGFuY3kgc3R1ZGVudHMgd2VyZSB3YWxraW5nIGFjcm9zcyBjYW1wdXMgd2hlbiBvbmUgc2FpZCwKIldoZXJlIGRpZCB5b3UgZ2V0IHN1Y2ggYSBncmVhdCBiaWtlPyIKVGhlIHNlY29uZCBjb25zdWx0YW50IHJlcGxpZWQsICJXZWxsLCBJIHdhcyB3YWxraW5nIGFsb25nCnllc3RlcmRheSBtaW5kaW5nIG15IG93biBidXNpbmVzcyB3aGVuIGEgYmVhdXRpZnVsIHdvbWFuIHJvZGUgdXAgb24gdGhpcwpiaWtlLiBTaGUgdGhyZXcgdGhlIGJpa2UgdG8gdGhlIGdyb3VuZCwgdG9vayBvZmYgYWxsIGhlciBjbG90aGVzIGFuZCBzYWlkOgoiVGFrZSB3aGF0IHlvdSB3YW50LiIKVGhlIHNlY29uZCBjb25zdWx0YW50IG5vZGRlZCBhcHByb3ZpbmdseSwKIkdvb2QgY2hvaWNlOyB0aGUgY2xvdGhlcyBwcm9iYWJseSB3b3VsZG4ndCBoYXZlIGZpdC4iCgpDb21wcmVoZW5kaW5nIGNvbnN1bHRhbnRzIC0gVGFrZSBUd28KQW4gYXJjaGl0ZWN0LCBhbiBhcnRpc3QgYW5kIGEgY29uc3VsdGFudCB3ZXJlIGRpc2N1c3Npbmcgd2hldGhlcgppdCB3YXMgYmV0dGVyIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGUgd2lmZSBvciBhIG1pc3RyZXNzLgpUaGUgYXJjaGl0ZWN0IHNhaWQgaGUgZW5qb3llZCB0aW1lIHdpdGggaGlzIHdpZmUsIGJ1aWxkaW5nIGEgc29saWQKZm91bmRhdGlvbiBmb3IgYW4gZW5kdXJpbmcgcmVsYXRpb25zaGlwLgpUaGUgYXJ0aXN0IHNhaWQgaGUgZW5qb3llZCB0aW1lIHdpdGggaGlzIG1pc3RyZXNzLCBiZWNhdXNlIG9mIHRoZQpwYXNzaW9uIGFuZCBteXN0ZXJ5IGhlIGZvdW5kIHRoZXJlLiAgVGhlIGNvbnN1bHRhbnQgc2FpZCwgIkkgbGlrZSBib3RoLiIKIkJvdGg/IiBUaGUgY29uc3VsdGFudCByZXBsaWVkICJZZWFoLiBJZiB5b3UgaGF2ZSBhIHdpZmUgYW5kIGEgbWlzdHJlc3MsCnRoZXkgd2lsbCBlYWNoIGFzc3VtZSB5b3UgYXJlIHNwZW5kaW5nIHRpbWUgd2l0aCB0aGUgb3RoZXIgd29tYW4sIGFuZAp5b3UgY2FuIGdvIHRvIHRoZSBvZmZpY2UgYW5kIGdldCBzb21lIHdvcmsgZG9uZS4iCgpDb21wcmVoZW5kaW5nIGNvbnN1bHRhbnRzIC0gVGFrZSBUaHJlZQpBIGNvbnN1bHRhbnQgd2FzIGNyb3NzaW5nIGEgcm9hZCBvbmUgZGF5IHdoZW4gYSBmcm9nIGNhbGxlZCBvdXQKdG8gaGltIGFuZCBzYWlkLCAiSWYgeW91IGtpc3MgbWUsIEknbGwgdHVybiBpbnRvIGEgYmVhdXRpZnVsIHByaW5jZXNzIi4KSGUgYmVudCBvdmVyLCBwaWNrZWQgdXAgdGhlIGZyb2cgYW5kIHB1dCBpdCBpbiBoaXMgcG9ja2V0LgpUaGUgZnJvZyBzcG9rZSB1cCBhZ2FpbiBhbmQgc2FpZCwgIklmIHlvdSBraXNzIG1lIGFuZCB0dXJuIG1lIGJhY2sKaW50byBhIGJlYXV0aWZ1bCBwcmluY2VzcywgSSB3aWxsIHN0YXkgd2l0aCB5b3UgZm9yIG9uZSB3ZWVrLiIKVGhlIGNvbnN1bHRhbnQgdG9vayB0aGUgZnJvZyBvdXQgb2YgaGlzIHBvY2tldCwgc21pbGVkIGF0IGl0IGFuZApyZXR1cm5lZCBpdCB0byB0aGUgcG9ja2V0LiBUaGUgZnJvZyB0aGVuIGNyaWVkIG91dCwgIklmIHlvdSBraXNzIG1lIGFuZAp0dXJuIG1lIGJhY2sgaW50byBhIHByaW5jZXNzLCBJJ2xsIHN0YXkgd2l0aCB5b3UgYW5kIGRvIEFOWVRISU5HIHlvdQp3YW50LiIgQWdhaW4gdGhlIGNvbnN1bHRhbnQgdG9vayB0aGUgZnJvZyBvdXQsIHNtaWxlZCBhdCBpdCBhbmQgcHV0IGl0CmJhY2sgaW50byBoaXMgcG9ja2V0LiBGaW5hbGx5LCB0aGUgZnJvZyBhc2tlZCwgIldoYXQgaXMgdGhlIG1hdHRlcj8gSSd2ZQp0b2xkIHlvdSBJJ20gYSBiZWF1dGlmdWwgcHJpbmNlc3MsIHRoYXQgSSdsbCBzdGF5IHdpdGggeW91IGZvciBhIHdlZWsKYW5kIGRvIGFueXRoaW5nIHlvdSB3YW50LiBXaHkgd29uJ3QgeW91IGtpc3MgbWU/IgpUaGUgY29uc3VsdGFudCBzYWlkLCAiTG9vayBJJ20gYSBjb25zdWx0YW50LiBJIGRvbid0IGhhdmUgdGltZQpmb3IgYSBnaXJsZnJpZW5kLCBidXQgYSB0YWxraW5nIGZyb2csIG5vdyB0aGF0J3MgY29vbC4iCgpiaW4gbWlyIG5pY2h0IHNpY2hlciwgb2IgZGFzIGVpbiB3aXR6IGlzdC4uLiBlaGVyIGVpbmUgZWNodGUgYmVzY2hyZWlidW5nIDopCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcnVtIE1hZW5uZXIgYmVzc2VyIGFsbGVpbmUgc2NobGFmZW4gKERpZWRlciwgMTUuIFNlcCAxOTk5LCAyMDo0OTo0Myk6Cn4jISBybj1NYWhhdG11IHJ0PTkzNzQyNTk5NCByZz13aXR6ZQp+IyEgdGlkPTkzNzM0ODQ1MgpPaCB3ZXJ0ZXIgR2xvaW4sIHdpZSBrYW5uIGljaCBkaWVzZW4gRnJldmVsIG51ciBqZW1hbHMgd2llZGVyIGd1dG1hY2hlbj8KCkRpZWRlcgoKUFM6IEtsZWluZXIgS29tbWVudGFyIGFtIFJhbmRlLCBkYW1pdHMgaW4gZGllIFJ1YnJpayBwYXNzdDoKIldpciB3ZXJkZW4gZGFzIFByb2R1a3QgZGFubiBhdWYgZGVuIE1hcmt0IGJyaW5nZW4sIHdlbm4gZXMgc28gc3RhYmlsCmxhZXVmdCwgd2llIGVzIHVuc2VyZSBLdW5kZW4gZXJ3YXJ0ZW4uIiBNaWNyb3NvZnQtU3ByZWNoZXIgS3VydCBCcmFhdHoKdWViZXIgV2luZG93cyAyMDAwIGluIGVpbmVtIFNwaWVnZWwgT25saW5lLUFydGlrZWwgdm9tIDEyLiBNYWVyeiAxOTk5LgoKCk5vIGNvbW1lbnQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBXYXJ1bSBNYWVubmVyIGJlc3NlciBhbGxlaW5lIHNjaGxhZmVuIChOb25uZSwgMTYuIFNlcCAxOTk5LCAxMDoyMzozOSk6Cn4jISBybj1UZWRkeSBydD05Mzc0NzcwNDMgcmc9d2l0emUKfiMhIHRpZD05MzczNDg0NTIKCm5pY2h0IGdhbnouIHZvbiAvZGV2L251bGwga2FubiBtYW4gbmljaHQgbGVzZW4sIGRpZSBSdWJyaWsgTXVlbGwgc2Nob24KCk5vbm5lLCB3YXJ0ZXQgYXVmIHNlaW5lbiBSZWNobmVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogLS0gTWVuIGFyZSBzbyBmdW5ueS4uIC0tIChKYW1lc29uLCAxNy4gU2VwIDE5OTksIDAyOjEzOjE4KToKUlVMRVMgVEhBVCBHVVlTIFdJU0hFRCBXT01FTiBLTkVXIQoKMS4gSWYgeW91IHRoaW5rIHlvdSdyZSBmYXQsIHlvdSBwcm9iYWJseSBhcmUuIERvbid0IGFzayB1cy4KMi4gTGVhcm4gdG8gd29yayB0aGUgdG9pbGV0IHNlYXQ7IGlmIGl0J3MgdXAsIHB1dCBpdCBkb3duLgozLiBEb24ndCBjdXQgeW91ciBoYWlyLiBFdmVyLgo0LiBTb21ldGltZXMsIHdlJ3JlIG5vdCB0aGlua2luZyBhYm91dCB5b3UuIExpdmUgd2l0aCBpdC4KNS4gR2V0IHJpZCBvZiB5b3VyIGNhdC4KNi4gU3VuZGF5ID0gU3BvcnRzLgo3LiBBbnl0aGluZyB5b3Ugd2VhciBpcyBmaW5lLiBSZWFsbHkuCjguIFdvbWVuIHdlYXJpbmcgV29uZGVyIGJyYXMgYW5kIGxvdy1jdXQgYmxvdXNlcyBsb3NlIHRoZWlyIHJpZ2h0IHRvCiAgICBiaXRjaCBhYm91dCBoYXZpbmcgdGhlaXIgYm9vYnMgc3RhcmVkIGF0Lgo5LiBZb3UgaGF2ZSB0b28gbWFueSBzaG9lcy4KMTAuIENyeWluZyBpcyBibGFja21haWwuCjExLiBBc2sgZm9yIHdoYXQgeW91IHdhbnQuIFN1YnRsZSBoaW50cyBkb24ndCB3b3JrLgoxMi4gTWFyayBhbm5pdmVyc2FyaWVzIG9uIGEgY2FsZW5kYXIuCjEzLiBQZWVpbmcgc3RhbmRpbmcgdXAgaXMgbW9yZSBkaWZmaWN1bHQgdGhhbiBwZWVpbmcgZnJvbSBwb2ludCBibGFuawogICAgcmFuZ2UuCiAgICBXZSdyZSBib3VuZCB0byBtaXNzIHNvbWV0aW1lcy4KMTQuIFllcyBhbmQgbm8gYXJlIHBlcmZlY3RseSBhY2NlcHRhYmxlIGFuc3dlcnMuCjE1LiBBIGhlYWRhY2hlIHRoYXQgbGFzdHMgZm9yIDE3IG1vbnRocyBpcyBhIHByb2JsZW0uIFNlZSBhIGRvY3Rvci4KMTYuIERvbid0IGZha2UgaXQuIFdlJ2QgcmF0aGVyIGJlIGluZWZmZWN0aXZlIHRoYW4gZGVjZWl2ZWQuCjE3LiBBbnl0aGluZyB3ZSBzYWlkIHNpeCBvciBlaWdodCBtb250aHMgYWdvIGlzIGluYWRtaXNzaWJsZSBpbiBhbgogICAgYXJndW1lbnQuCjE4LiBJZiB5b3UgZG9uJ3QgZHJlc3MgbGlrZSB0aGUgVmljdG9yaWEncyBTZWNyZXQgZ2lybHMsIGRvbid0CiAgICBleHBlY3QgdXMgdG8gYWN0IGxpa2Ugc29hcCBvcGVyYSBndXlzLgoxOS4gSWYgc29tZXRoaW5nIHdlIHNhaWQgY2FuIGJlIGludGVycHJldGVkIHR3byB3YXlzLCBhbmQgb25lIG9mCiAgICB0aGUgd2F5cyBtYWtlcyB5b3Ugc2FkIGFuZCBhbmdyeSwgd2UgbWVhbnQgdGhlIG90aGVyIG9uZS4KMjAuIExldCB1cyBvZ2xlLiBJZiB3ZSBkb24ndCBsb29rIGF0IG90aGVyIHdvbWVuLCBob3cgY2FuIHdlIGtub3cKICAgIGhvdyBwcmV0dHkgeW91IGFyZT8KMjEuIERvbid0IHJ1YiB0aGUgbGFtcCBpZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZ2VuaWUgdG8gY29tZSBvdXQuCjIyLiBZb3UgY2FuIGVpdGhlciBhc2sgdXMgdG8gZG8gc29tZXRoaW5nIE9SIHRlbGwgdXMgaG93IHlvdSB3YW50IGl0IGRvbmUKICAgIG5vdCBib3RoLgoyMy4gQ2hyaXN0b3BoZXIgQ29sdW1idXMgZGlkbid0IG5lZWQgZGlyZWN0aW9ucywgYW5kIG5laXRoZXIgZG8gd2UuCjI0LiBZb3UgaGF2ZSBlbm91Z2ggY2xvdGhlcy4KMjUuIE1lbiBhcmUgZnJvbSBlYXJ0aDsgd29tZW4gYXJlIGZyb20gZWFydGguIERlYWwgd2l0aCBpdC4KMjYuIE5vdGhpbmcgc2F5cyAiSSBsb3ZlIHlvdSIgbGlrZSBzZXguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogLS0gVklSVVMhIC0tIChKYW1lc29uLCAxOC4gU2VwIDE5OTksIDE1OjIxOjU4KToKQkUgT04gVEhFIExPT0sgT1VUIEZPUiBUSEUgRk9MTE9XSU5HIFZJUlVTRVM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDTElOVE9OIFZJUlVTCkdpdmVzIHlvdSBhIDcgSW5jaCBIYXJkIERyaXZlIHdpdGggTk8gbWVtb3J5LgoKVklBR1JBIFZJUlVTCk1ha2VzIGEgbmV3IGhhcmQgZHJpdmUgb3V0IG9mIGFuIG9sZCBmbG9wcHkuCgpMRVdJTlNLWSBWSVJVUwpTdWNrcyBhbGwgdGhlIG1lbW9yeSBvdXQgb2YgeW91ciBjb21wdXRlciwgdGhlbgplbWFpbHMgZXZlcnlvbmUgYWJvdXQgd2hhdCBpdCBkaWQuCgpST05BTEQgUkVBR0FOIFZJUlVTClNhdmVzIHlvdXIgZGF0YSwgYnV0IGZvcmdldHMgd2hlcmUgaXQgaXMgc3RvcmVkLgoKTUlLRSBUWVNPTiBWSVJVUwpRdWl0cyBhZnRlciB0d28gYnl0ZXMuCgpPUFJBSCBXSU5GUkVZIFZJUlVTCllvdXIgMzAwIE1CIGhhcmQgZHJpdmUgc3VkZGVubHkgc2hyaW5rcyB0byAxMDAgTUIsCnRoZW4gc2xvd2x5IGV4cGFuZHMgdG8gMjAwIE1CLgoKRFIuIEpBQ0sgS0VWT1JLSUFOIFZJUlVTCkRlbGV0ZXMgYWxsIG9sZCBmaWxlcy4KCkVMTEVOIERFR0VORVJFUyBWSVJVUwpEaXNrcyBjYW4gbm8gbG9uZ2VyIGJlIGluc2VydGVkLgoKRElTTkVZIFZJUlVTCkV2ZXJ5dGhpbmcgaW4geW91ciBjb21wdXRlciBnb2VzIEdvb2Z5IDopLgoKUFJPWkFDIFZJUlVTClNjcmV3cyB1cCB5b3VyIFJBTSBidXQgeW91ciBwcm9jZXNzb3IgZG9lc24ndCBjYXJlLgoKSk9FWSBCVVRUQUZVQ08gVklSVVMKT25seSBhdHRhY2tzIG1pbm9yIGZpbGVzLgoKTE9SRU5BIEJPQkJJVCBWSVJVUwpSZWZvcm1hdHMgeW91ciBoYXJkIGRyaXZlIGludG8gYSAzLjUgaW5jaCBmbG9wcHksCnRoZW4gZGlzY2FyZHMgaXQgIHRocm91Z2ggV2luZG93cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCiAtLSBYLVJhdGVkIC0tIFJlYWQgYXQgeW91ciBvd24gcmlzayEgLS0gKEphbWVzb24sIDE4LiBTZXAgMTk5OSwgMTU6MjM6NDIpOgpJZiBNZW4gYW5kIFdvbWVuIFN3YXBwZWQgR2VuaXRhbHMuLi4KCiAgVG9wIHRlbiB0aGluZ3MgbWVuIHdvdWxkIGRvIGlmIHRoZXkgd29rZSB1cCBhbmQgaGFkCiBhIHZhZ2luYSBmb3IgYSBkYXk6CgogIDEwLiBJbW1lZGlhdGVseSBnbyBzaG9wcGluZyBmb3IgenVjY2hpbmkgYW5kICBjdWN1bWJlcnMuCgogIDkuIFNxdWF0IG92ZXIgYSBoYW5kLWhlbGQgbWlycm9yIGZvciBhbiBob3VyIGFuZCBhIGhhbGYuCgogIDguIFNlZSBpZiB0aGV5IGNvdWxkIGZpbmFsbHkgZG8gdGhlIHNwbGl0cy4KCiAgNy4gU2VlIGlmIGl0J3MgdHJ1bHkgcG9zc2libGUgdG8gbGF1bmNoIGEgUGluZy1Qb25nIGJhbGwgMjAgZmVldC4KCiAgNi4gQ3Jvc3MgdGhlaXIgbGVncyB3aXRob3V0IHJlYXJyYW5naW5nIHRoZWlyIGNyb3RjaC4KCiAgNS4gR2V0IHBpY2tlZCB1cCBpbiBhIGJhciBpbiBsZXNzIHRoYW4gMTAgbWludXRlcyBCRUZPUkUgY2xvc2luZyB0aW1lLgoKICA0LiBIYXZlIGNvbnNlY3V0aXZlIG11bHRpcGxlIG9yZ2FzbXMgYW5kIHN0aWxsIGJlCiByZWFkeSBmb3IgbW9yZSB3aXRob3V0IHNsZWVwaW5nIGZpcnN0LgoKICAzLiBHbyB0byB0aGUgZ3luZWNvbG9naXN0IGZvciBhIHBlbHZpYyBleGFtIGFuZCBhc2sKIHRvIGhhdmUgaXQgcmVjb3JkZWQgb24gdmlkZW8uCgogIDIuIFNpdCBvbiB0aGUgZWRnZSBvZiB0aGUgYmVkIGFuZCBwcmF5IGZvciBicmVhc3RzIHRvby4KCiAgQW5kLCB0aGUgbnVtYmVyIG9uZSB0aGluZyBtZW4gd291bGQgZG8gaWYgdGhleSB3b2tlCiB1cCB3aXRoIGEgdmFnaW5hOgoKICAxLiBGaW5hbGx5IGZpbmQgdGhhdCBkYW1uZWQgRy1zcG90LgoKPT09PT09PT09PT09CgogIFRvcCB0ZW4gdGhpbmdzIHdvbWVuIHdvdWxkIGRvIGlmIHRoZXkgd29rZSB1cCBhbmQKIGhhZCBhIHBlbmlzIGZvciBhIGRheToKCiAgMTAuICBHZXQgYSBibG93IGpvYi4KCiAgOS4gR2V0IGFoZWFkIGZhc3RlciBpbiB0aGUgY29ycG9yYXRlIHdvcmxkLgoKICA4LiBGaW5kIG91dCB3aGF0IGlzIHNvIGZhc2NpbmF0aW5nIGFib3V0IGJlYXRpbmcgdGhlIG1lYXQuCgogIDcuIFBlZSBzdGFuZGluZyB1cCB3aGlsZSB0YWxraW5nIHRvIG90aGVyIG1lbiBhdCBhIHVyaW5hbC4KCiAgNi4gRGV0ZXJtaW5lIHdoeSB5b3UgY2FuJ3QgaGl0IHRoZSBib3dsIGNvbnNpc3RlbnRseS4KCiAgNS4gRmluZCBvdXQgd2hhdCBpdCdzIGxpa2UgdG8gYmUgb24gdGhlIG90aGVyIGVuZAogb2YgYSBzdXJnaW5nIG9yZ2FzbS4KCiAgNC4gR2V0IGEgYmxvdyBqb2IKCiAgMy4gSnVtcCB1cCBhbmQgZG93biBuYWtlZCB3aXRoIGFuIGVyZWN0aW9uIHRvIHNlZQogaWYgaXQgZmVlbHMgYXMgZnVubnkgYXMgIGl0IGxvb2tzLgoKICAyLiBVbmRlcnN0YW5kIHRoZSBzY2llbnRpZmljIHJlYXNvbiBmb3IgdGhlIGxpZ2h0CiByZWZyYWN0aW9uIHdoaWNoIG9jY3VycyAgYmV0d2VlbiBhIG1hbidzIGV5ZSBhbmQgdGhlIHJ1bGVyIHNpdHVhdGVkIG5leHQKdG8gaGlzIG1lbWJlciB3aGljaCBjYXVzZXMgIHR3byBpbmNoZXMgdG8gYmUgYWRkZWQgdG8gdGhlIGZpbmFsCm1lYXN1cmVtZW50LgoKICBBbmQgdGhlIG51bWJlciBvbmUgdGhpbmcgd29tZW4gd291bGQgZG8gaWYgdGhleQogd29rZSB1cCB3aXRoIGEgcGVuaXMuLi4KCiAgMS4gR2V0IGEgYmxvdyBqb2IuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb3JsZC1Tb2Z0d2FyZSAoRGllZGVyLCAyMi4gU2VwIDE5OTksIDIxOjQ0OjI1KToKR290dCBzaXR6dCBhdWYgZWluZW0gVGhyb24gYXVzIFdvbGtlbi4gS29tbXQgYXVmZ2VyZWd0IGVpbiBFbmdlbCBnZWZsb2dlbjoKIkNoZWYsIENoZWYgd2lyIGhhYmVuIGRlbiBCdWcgaW4gZGVyIFF1YW50ZW5tZWNoYW5pay1TdWJyb3V0aW5lIGdlZnVuZGVuLCBkYXMKU2VydmljZS1QYWNrIGlzdCBhdWNoIHNjaG9uIGZlcnRpZyEiCkFudHdvcnRldCBHb3R0OiAiT2ssIGRhbm4gbWFjaHQgbWFsIGVpbiBVcGRhdGUgZGVzIFdlbHRwcm9ncmFtbXMsIGFiZXIgZGFzcwppaHIgbWlyIGphIGVpbiBCYWNrdXAgbWFjaHQuIERpZSBTaW11bGF0aW9uIGxkdWZ0IHNjaG9uIGRyZWl6ZWhuIE1pbGxpYXJkZW4KSmFocmUgLSB1bmQgaWNoIHdpbGwgbmljaHQgd2llZGVyIGJlaW0gVXJrbmFsbCBiZXJnaW5uZW4uLi4iCgpEaWVkZXIsIGtvbm50ZSBzaWNoIGVpbiBHcmluc2VuIG5pY2h0IHZlcmtuZWlmZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhZ2VidWNoIGVpbmVzIEFPTC1Vc2VycyAoRGllZGVyLCAyMi4gU2VwIDE5OTksIDIyOjAxOjEyKToKQW56ZWlnZTogIAogCgoKRGFzIEFPTCBUYWdlYnVjaCAoQ2xhdWRpdXMsIDIwLiBBcHIgMTk5OSwgMDE6Mzc6MTMpOiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0KMTguIEp1bGkgLSBJY2ggaGFiIGdlcmFkZSB2ZXJzdWNodCwgbWljaCBtaXQgQU9MIHp1IHZlcmJpbmRlbi4gSWNoIGhhYmUKZ2Vob2VydCwgZXMgaXN0IGRlciBiZXN0ZSBvbmxpbmUgU2VydmljZS4gRXMgZ2lidCBzb2dhciBlaW5lIGdyYXRpcy1DRCEgSWNoCmhlYmUgc2llIGJlc3NlciBhdWYsIGZ1ZXIgZGVuIEZhbGwsIGRhc3MgaWNoIGtlaW5lIG1laHIgYmVrb21tZS4gSWNoIGthbm4gbWljaAphYmVyIG5pY2h0IHZlcmJpbmRlbi4gSWNoIHdlaXNzIG5pY2h0LCB3YXMgbmljaHQgZ2VodC4KMTkuIEp1bGkgLSBEZXIgVHlwIGJlaW0gVGVjaCBTdXBwb3J0IHNhZ3QsIG1laW4gQ29tcHV0ZXIgYnJhdWNodCBlaW4gTW9kZW0uCkljaCBzZWggbmljaHQgZWluIHdvenUuIERlciBLZXJsIHdpbGwgbWljaCB2ZXJhcnNjaGVuLiBXaWUgYmxvZWQgZ2xhdWJ0IGRlcgpkYXNzIGljaCBiaW4/CgoyMi4gSnVsaSAtIEFsc28gZ3V0LCBpY2ggaGFiIG1pciBzbyduIE1vZGVtIGdla2F1ZnQuIEljaCBrb21tIGFiZXIgbmljaHQKZHJhdWYsIHdvJ3MgcmVpbmdlaG9lcnQuIEVzIHBhc3N0IHdlZGVyIGluIGRlbiBCaWxkc2NocmltIG5vY2ggZGVuIERydWNrZXIuCgoyMy4gSnVsaSAtIE9rLCBNb2RlbSBzdGVja3QgZHJpbi4gRGVyIDlqYWVocmlnZSB2b24gbmViZW5hbiBoYXQncyBnZW1hY2h0LgpBYmVyJ3MgZ2VodCBpbW1lciBub2NoIG5pY2h0LiBJY2gga2FubiBuaWNodCAnb25saW5lJyBnZWhlbi4KCjI1LiBKdWxpIC0gRGVyIDlqYWVocmlnZSBoYXQgbWljaCBqZXR6dCBtaXQgQU9MIHZlcmJ1bmRlbi4gRXIgaXN0IHVtIGxhZW5nZW4KY2xldmVyZXIgYWxzIGRlciBUeXAsIGRlciBtaXIgZGFzIE1vZGVtIGFuZ2VkcmVodCBoYXQuIERlciBoYXQga2VpbiBXb3J0IHVlYmVyCktvbW11bmlrYXRpb25zc29mdHdhcmUgdmVybG9yZW4uIFdldHRlLCBkZXIgaGF0IGtlaW5lbiBTY2hpbW1lciBkYXZvbiBnZWhhYnQuClVuZCB3YXJ1bSBnaWJ0J3MgZGEgMiBUZWxlZm9ua2FiZWxidWNoc2VuIGF1ZiBkZXIgUnVlY2tzZWl0ZSB2b20gTW9kZW0gd2VubgptYW4gbnVyIGVpbmUgYnJhdWNodD8gQXVzc2VyZGVtIGtsaW5ndCBkZXIgV2FlaGx0b24gZWNodCBiZWtuYWNrdC4gRGllc2UKTW9kZW1oZXJzdGVsbGVyIHNpbmQgZWNodCBibG9lZC4gU29nYXIgZGVyIEtsZWluZSBoYXQncyBhbSBUb24gZ2VtZXJrdC4KCjI2LiBKdWxpIC0gV2FzIGlzc24gZGFzIEludGVybmV0PyBJY2ggaGFiIGdlZ2xhdWJ0LCBpY2ggYmluIGJlaSBBT0wuIE5pY2h0CmJlaW0gSW50ZXJuZXQuIEpldHp0IGJpbiBpY2gnbiBiaXNzZXJsIGR1cmNoZWluYW5kZXIuCgoyNy4gSnVsaSAtIERlciA5amFlaHJpZ2UgaGF0IG1pciBqZXR6dCBkaWVzZXMgQU9MIFpldWdzIGdlemVpZ3QuIERlciBtdXNzIGVjaHQKZWluIEdlbmllIHNlaW4uIEljaCBoYWIncyBpaG0gZ2VzYWd0LiBFciBzYWd0LCB2ZXJnbGljaGVuIG1pdCBtaXIgaXMgZXIncy4KQmVuZ2VsLgoKMjguIEp1bGkgLSBJY2ggaGFiJ3MgaGV1dGUgbWl0ICduZW0gJ2NoYXQnIHByb2JpZXJ0LiBJY2ggaGFiIHByYWt0aXNjaCBpbiBkZW4KQ29tcHV0ZXIgZ2VicnVlbGx0LCBhYmVyIG5peCBpc3QgYW5nZWtvbW1lbi4gVmllbGxlaWNodCBicmF1Y2ggaWNoJ24KTWlrcm9waG9uLgoKMjkuIEp1bGkgLSBJY2ggaGFiIGpldHp0IGRhcyAndXNlbmV0JyBnZWZ1bmRlbi4gV28gYmluIGljaCBqZXR6dD8gQU9MLApJbnRlcm5ldCBvZGVyIHVzZW5ldD8gSWNoIGJpbiBhdXMgZGVtIHVzZW5ldCB3aWVkZXIgYXVzZ2VzdGllZ2VuLCBzY2hsaWVzc2xpY2gKYmluIGljaCBiZWkgQU9MLCBuaWNodCB1c2VuZXQuCgozMC4gSnVsaSAtIERpZXNlIExldXRlIGltIHVzZW5ldCBzY2hhZmZlbidzIGlyZ2VuZHdpZSwgYWxsZXMgaW4KR3Jvc3NidWNoc3RhYmVuIHp1IHNjaHJlaWJlbi4gV2llIG1hY2hlbiBkaWUgZGFzPyBIYWJlbiBkaWUnbmUgYW5kZXJlClRhc3RhdHVyPwoKMzEuIEpVTEkgLSBJQ0ggSEFCRSBERU4gQ09NUFVURVJIRVJTVEVMTEVSIEFOR0VSVUZFTiBVTkQgTUlDSCBCRVNDSFdFUlQsIERBU1MKSUNIIEtFSU5FIEdST1NTQlVDSFNUQUJFTlRBU1RFTiBIQUIuIERFUiBIQVQgR0VTQUdUIEVTIElTVCBESUUgJ0NBUFMgTE9DSycKVEFTVEUuIFdBUlVNIFNURUhUIE5JQ0hUICdHUk9TU0JVQ0hTVEFCRU4nIERSQVVGPyBBVVNTRVJERU0gSVNUIE1FSU5FIEVJTkUKU0hJRlQtVEFTVEUgR1JPRVNTRVIgQUxTIERJRSBBTkRFUkUuIEVSIE1FSU5ULCBEQVMgSVNUJ04gU1RBTkRBUkQuIElDSCBIQUIKR0VTQUdULCBJQ0ggV0lMTCBLRUlOIFNUQU5EQVJUVEVJTCwgRlVFUiBERU4gUFJFSVMgREVOIElDSCBHRVpBSExUIEhBQiBWRVJMQU5HCklDSCBXQVMgQkVTU0VSRVMuIE1VU1MgRUlORSBXSUNIVElHRSBCRVNDSFdFUkRFIEdFV0VTRU4gU0VJTiwgSUNIIEhBQiBHRUhPRVJUCldJRSBFUiBBTkRFUkUgTUlUQVJCRUlURVIgWlVNIEdFU1BSQUVDSCBISU5aVUdFUlVGRU4gSEFULgoKMS4gQVVHVVNUIC0gSUNIIEhBQkUgREFTICdVU0VORVQgT1JBS0VMJyBHRUZVTkRFTi4gQkVIQVVQVEVULCBBTExFIEZSQUdFTiBERVIKV0VMVCBCRUFOVFdPUlRFTiBaVSBLT0VOTkVOLiBJQ0ggSEFCRSA0NCBBTkZSQUdFTiBHRVNDSElDS1QuCgoyLiBBVUdVU1QgLSBJQ0ggSEFCRSBFSU5FIEdSVVBQRSAnUkVDLkhVTU9SLiBHRUZVTkRFTi4gSUNIIEhBQkUgREVOICdDSElDS0VOCkNST1NTRVMgVEhFIFJPQUQnIFdJVFogSElOR0VTQ0hJQ0tULiBJQ0ggV0FSIE5JQ0hUIFNJQ0hFUiwgT0IgSUNIIEFMTEVTClJJQ0hUSUcgR0VNQUNIVCBIQUIsIEFMU08gSEFCIElDSCdTIFNJQ0hFUkhFSVRTSEFMQkVSIE5PQ0ggNTYgTUFMIEdFU0NISUNLVC4KCjMuIEFVR1VTVCAtIElDSCBIT0VSRSBJTU1FUiBXSUVERVIgVk9NIFdPUkxEIFdJREUgV0VCLiBIQUVUVEUgTklFIEdFREFDSFQsCkRBU1MgU1BJTk5FTiBTTyBHUk9TUyBXRVJERU4uCgo0LiBBVUdVU1QgLSBEQVMgT1JBS0VMIEhBVCBHRUFOVFdPUlRFVC4gV0FSIERBUyBVTkhPRUZMSUNIISEhIElDSCBXQVIgU08KU0FVRVIsIERBU1MgSUNIIEVJTkUgUkVDSFQgVU5GUkVVTkRMSUNIRSBQT1NUIEFOIFJFQy5IVU1PUi5PUkFDTEUgR0VTQ0hJQ0tUCkhBQi4gVU0gU0lDSEVSWlVHRUhFTiwgSEFCIElDSCBTSUUgMzQgTUFMIEdFU0NISUNLVC4KCjUuIEFVR1VTVCAtIEVJTkVSIEhBVCBHRVNBR1QsIElDSCBTT0xMIERBUyAnRkFRJyBMRVNFTi4gQUxTTywgVU5IT0VGTElDSApCUkFVQ0hFTiBESUUgTklDSFQgV0VSREVOIQoKNi4gQVVHVVNUIC0gRUlORVIgRElFU0VSIElESU9URU4gSEFUIEdFU0FHVCwgSUNIIFNDSFJFSSBESUUgR0FOWkUgWkVJVC4gV0FTCkZVRVInTiBJRElPVCwgSUNIIFNDSFJFSSBOSUNIVC4gSUNIIFJFREUgTk9DSCBOSUNIVCBNQUwhIElDSCBUSVBQRSBOVVIhIFdFUgpMQUVTU1QgRElFU0UgQVJTQ0guLi4gSU5TIElOVEVSTkVUPwoKNy4gQXVndXN0IC0gV296dSBnaWJ0J3MgZWluZSBDYXBzLUxvY2sgVGFzdGUsIHdlbm4gbWFuIHNpZSBuaWNodCBiZW51dHplbgpzb2xsPyBJc3Qgd2FocnNjaGVpbmxpY2ggbnVyIHNvJ24gRXh0cmEgZGFzIG5peCBicmluZ3QsIGRhcyBtYW4gYWJlciBiZXphaGxlbgptdXNzLgoKOC4gQXVndXN0IC0gSWNoIGhhYiBncmFkICduZW4gQnJpZWYgbWl0ICdNYWtlIE1vbmV5IEZhc3QnIGJla29tbWVuLiBJY2ggYmluCmVjaHQgYXVmZ2VyZWd0LCBkYXNzIHNpY2ggamVtYW5kIHNvIHVlYmVyIG1pY2ggR2VkYW5rZW4gbWFjaHQhISBJY2ggd2VyZCBlY2h0CmJhbGQgc3RpbmtyZWljaCB3ZXJkZW4sIHNjaGlja2UgZGVtIGRhcyBHZWxkIHVuZCBwb3N0ZSBkYXMgR2FuemUgaW4gYWxsZQpOZXdzZ3JvcHMgZGllIGljaCBrZW5uZSEKCjkuIEF1Z3VzdCAtIEljaCBoYWIgamV0enQgZWluIHNpZ25hdHVyZSBmaWxlLiBJc3QgbnVyIGtuYXBwIDYgU2VpdGVuIGxhbmcsIGRhCm11c3MgaWNoIG5vY2ggZHJhbiBhcmJlaXRlbi4KCjEwLiBBdWd1c3QgLSBJY2ggaGFiIGdlcmFkZSBkaWUgTkcgYWx0LmFvbC5zdWNrcyBnZWxlc2VuLiBFY2h0LCBuYWNoIGVpbiBwYWFyCmRpZXNlciBQb3N0cyBiaW4gaWNoIGVjaHQgZGFmdWVyLCBkYXNzIG1hbiBhb2wgdm9uIGRpZXNlciBXZWx0IHZlcnRpbGdlbiB1bmQKYXVzbG9lc2NoZW4gc29sbC4gSWNoIGZyYWcgbWljaCBudXIgd2FzIGVpbiBhb2wgaXN0LgoKMTEuIEF1Z3VzdCAtIEljaCBoYWIgbWFsIGdlZnJhZ3QsIHdvIG1hbiBJbmZvcm1hdGlvbmVuIGhlcmJla29tbXQuIEplbWFuZApzYWd0ZSwgaWNoIHNvbGwgbWFsIGZ0cC5uZXRjb20uY29tIGFuc2NoYXVlbi4gSWNoIGhhYiBnZXN1Y2h0LCBhYmVyIGRpZQpOZXdzZ3JvdXAgZ2lidCdzIGVpbmZhY2ggbmljaHQuIFZpZWxsZWljaHQgd29sbHQgbWljaCBkZXIgdmVyYXJzY2hlbi4KCjEyLiBBdWd1c3QgLSBJY2ggaGFiZSBlaW5lIE5hY2hyaWNodCBhbiBhbGxlIHVzZW5ldCBHcnVwcGVuIGdlc2NoaWNrdCB1bmQKZ2VmcmFndCB3byBkaWUgZnRwLm5ldGNvbS5jb20gTkcgaXN0LiBIb2ZmZW50bGljaCBoaWxmdCBtaXIgd2VyLiBEaWUgVHlwZW4gYXVmCnJlYy5odW1vciBoYWJlbiBtZWluZW4gV2l0eiBuaWNodCBsdXN0aWcgZ2VmdW5kZW4uIFdhaHJzY2hlaW5saWNoIHN0ZWhlbiBkaWUKbnVyIGF1ZiB6d2VpZGV1dGlnZSBXaXR6ZS4gRWluIHBhYXIgaGFiZW4gc2ljaCB1ZWJlciBkaWUgNTYgcG9zdGluZ3MgYXVmZ2VyZWd0CnVuZCBlY2h0IHNjaGxpbW1lIFdvcnRlIGJlbnV0enQuCgoxMy4gQXVndXN0IC0gSWNoIGhhYiBtZWluZSBBbmZyYWdlIHVlYmVyIGZ0cC5uZXRjb20uY29tIHdpZWRlcmhvbHQuIEljaCBoYWJlCmdlc3Rlcm4gbmFlbWxpY2ggdmVyZ2Vzc2VuIG1laW4gbmV1ZXMgU2lnbmF0dXJmaWxlIGFuenVoYWVuZ2VuLiBEYXMgaXN0IGpldHp0CjggU2VpdGVuIGxhbmcuIEljaCBiaW4gbWlyIHNpY2hlciwgamVkZXIgd2lyZCBtZWluIExpZWJsaW5nc2dlZGljaHQgZ2VuYXVzbwpmYXN6aW5pZXJlbmQgZmluZGVuIHdpZSBpY2guIFNvYmFsZCBpY2ggWmVpdCBoYWIsIHdlcmQgaWNoIG1laW5lCkxpZWJsaW5nc2dlc2NoaWNodGUgYWxzIFNpZ2ZpbGUgYWJ0aXBwZW4uCgoxNC4gQXVndXN0IC0gSXJnZW5kIHNvIGVpbiBTcGlubmVyIGhhdCBtaWNoIGFuZ2VydWZlbiB1bmQgZ2VzYWd0LCBlciBzcGVycnQKbWVpbmVuIEFjY291bnQgd2VpbCBpY2ggbWljaCBzbyBhdWZmdWVyLiBJY2ggaGFiIG5hY2hnZXNjaGF1dCwgYWNjb3VudCBoZWlzc3QKS29udG8uIEljaCBoYWIgYmVpIGRlbSBrZWluIEtvbnRvLiBTbyBlaW4gVHJvdHRlbC4gQWJlciBtZWluIEludGVybmV0IGdlaHQKamV0enQgbmljaHQgbWVoci4gSWNoIGZyYWcgbWljaCwgd2FydW0uLi4gCgoKCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXb3JsZC1Tb2Z0d2FyZSAoQW5hdG9sLCAyMi4gU2VwIDE5OTksIDIzOjE3OjUzKToKfiMhIHJuPURpZWRlciBydD05MzgwMzY2NjUgcmc9d2l0emUKfiMhIHRpZD05MzgwMzY2NjUKRGEgaXN0IGVpbiBGZWhsZXIuIEdvdHQgZmFlaHJ0IExpbnV4LCBkZW5uIHVudGVyIFdpbmRvd3Mgd3VlcmRlIGVyCnp1IG9mdCByZWJvb3RlbiBtdWVzc2VuLi4uIDspCgpBbmF0b2wgLSBrZW5udCBzaWNoIGF1cyBPOl4pCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIGt1ZXJ6ZXN0ZSBJbmZvcm1hdGlrZXItV2l0ejogKFByYSwgMjcuIFNlcCAxOTk5LCAxNTowNjo0NCk6ClVuZCBkYW5uIHdhciBkYSBub2NoLi4uCgouLi4gZGVyIGt1ZXJ6ZXN0ZSBJbmZvcm1hdGlrZXItV2l0ejoKCgoKCgoKCgogICAiSGFiJ3MgZ2xlaWNoISIKCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbG90dGUgRHJlaWVyIChRdWVuZ2lzdHUsIDMwLiBTZXAgMTk5OSwgMDg6Mzg6NTQpOgpPbiBhIGJlYXV0aWZ1bCBkZXNlcnRlZCBpc2xhbmQgaW4gdGhlIG1pZGRsZSBvZiBub3doZXJlLCB0aGUgIGZvbGxvd2luZwpwZW9wbGUgYXJlIHN0cmFuZGVkOgoKICAgICAgICAyIEl0YWxpYW4gbWVuIGFuZCAxIEl0YWxpYW4gd29tYW4KICAgICAgICAyIEZyZW5jaCBtZW4gYW5kIDEgRnJlbmNoIHdvbWFuCiAgICAgICAgMiBHZXJtYW4gbWVuIGFuZCAxIEdlcm1hbiB3b21hbgogICAgICAgIDIgR3JlZWsgbWVuIGFuZCAxIEdyZWVrIHdvbWFuCiAgICAgICAgMiBFbmdsaXNoIG1lbiBhbmQgMSBFbmdsaXNoIHdvbWFuCiAgICAgICAgMiBQb2xpc2ggbWVuIGFuZCAxIFBvbGlzaCB3b21hbgogICAgICAgIDIgSmFwYW5lc2UgbWVuIGFuZCAxIEphcGFuZXNlIHdvbWFuCiAgICAgICAgMiBBbWVyaWNhbiBtZW4gYW5kIDEgQW1lcmljYW4gd29tYW4KICAgICAgICAyIEF1c3RyYWxpYW4gbWVuIGFuZCAxIEF1c3RyYWxpYW4gd29tYW4KICAgICAgICAyIE5ldyBaZWFsYW5kIG1lbiBhbmQgMSBOZXcgWmVhbGFuZCB3b21hbgogICAgICAgIDIgSXJpc2ggbWVuIGFuZCAxIElyaXNoIHdvbWFuCgpPbmUgbW9udGggbGF0ZXIsIHRoZSBmb2xsb3dpbmcgdGhpbmdzIGhhdmUgb2NjdXJyZWQ6CgpPbmUgSXRhbGlhbiBtYW4ga2lsbGVkIHRoZSBvdGhlciBJdGFsaWFuIG1hbiBmb3IgdGhlIEl0YWxpYW4gd29tYW4uCgpUaGUgdHdvIEZyZW5jaCBtZW4gYW5kIHRoZSBGcmVuY2ggd29tYW4gYXJlIGxpdmluZyBoYXBwaWx5IHRvZ2V0aGVyCmhhdmluZyBsb2FkcyBvZiBzZXguCgpUaGUgdHdvIEdlcm1hbiBtZW4gaGF2ZSBhIHN0cmljdCB3ZWVrbHkgc2NoZWR1bGUgb2Ygd2hlbiB0aGV5IGFsdGVybmF0ZQp3aXRoIHRoZSBHZXJtYW4gd29tYW4uCgpUaGUgdHdvIEdyZWVrIG1lbiBhcmUgc2xlZXBpbmcgd2l0aCBlYWNoIG90aGVyIGFuZCB0aGUgR3JlZWsgd29tYW4gaXMKY2xlYW5pbmcgYW5kIGNvb2tpbmcgZm9yIHRoZW0uCgpUaGUgdHdvIEVuZ2xpc2ggbWVuIGFyZSB3YWl0aW5nIGZvciBzb21lb25lIHRvIGludHJvZHVjZSB0aGVtIHRvIHRoZQpFbmdsaXNoIHdvbWFuLgoKVGhlIFBvbGlzaCBtZW4gdG9vayBhIGxvbmcgbG9vayBhdCB0aGUgZW5kbGVzcyBvY2VhbiBhbmQgb25lIGxvb2sgYXQgdGhlCgpQb2xpc2ggd29tYW4gYW5kIHRoZXkgc3RhcnRlZCBzd2ltbWluZy4KClRoZSB0d28gQW1lcmljYW4gbWVuIGFyZSBjb250ZW1wbGF0aW5nIHRoZSB2aXJ0dWVzIG9mIHN1aWNpZGUsIHdoaWxlIHRoZQpBbWVyaWNhbiB3b21hbiBrZWVwcyBvbiBiaXRjaGluZyBhYm91dCBoZXIgYm9keSBiZWluZyBoZXIgb3duLCB0aGUgdHJ1ZQpuYXR1cmUgb2YgZmVtaW5pc20sIGhvdyBzaGUgY2FuIGRvIGV2ZXJ5dGhpbmcgdGhhdCB0aGV5IGNhbiBkbywgYWJvdXQKdGhlIG5lY2Vzc2l0eSBvZiBmdWxmaWxsbWVudCwgdGhlIGVxdWFsIGRpdmlzaW9uIG9mIGhvdXNlaG9sZCBjaG9yZXMsCmhvdyBoZXIgbGFzdCBib3lmcmllbmQgcmVzcGVjdGVkIGhlciBvcGluaW9uIGFuZCB0cmVhdGVkIGhlciBtdWNoIG5pY2VyIGFuZApob3cgaGVyIHJlbGF0aW9uc2hpcCB3aXRoIGhlciBtb3RoZXIgaXMgaW1wcm92aW5nLiBCdXQgYXQgbGVhc3QgdGhlIHRheGVzCmhlcmUgYXJlIGxvdyBhbmQgaXQgaXMgbm90IHJhaW5pbmcuCgpUaGUgdHdvIEphcGFuZXNlIG1lbiBoYXZlIGZheGVkIFRva3lvIGFuZCBhcmUgd2FpdGluZyBmb3IgaW5zdHJ1Y3Rpb25zLgoKVGhlIHR3byBBdXN0cmFsaWFuIG1lbiBiZWF0IGVhY2ggb3RoZXIgc2Vuc2VsZXNzIGZpZ2h0aW5nIG92ZXIgdGhlCkF1c3RyYWxpYW4gd29tYW4sIHdobyBpcyBjaGVja2luZyBvdXQgYWxsIHRoZSBvdGhlciBtZW4sIGFmdGVyIGNhbGxpbmcKdGhlbSBib3RoICdibG9vZHkgIHdhbmtlcnMiLgoKQm90aCBOZXcgWmVhbGFuZCBtZW4gYXJlIHNlYXJjaGluZyB0aGUgaXNsYW5kIGZvciBzaGVlcC4KClRoZSBJcmlzaCBiZWdhbiBieSBkaXZpZGluZyB0aGUgaXNsYW5kIGludG8gTm9ydGggYW5kIFNvdXRoIGFuZCBieQpzZXR0aW5nIHVwIGEgZGlzdGlsbGVyeS4gVGhleSBkbyBub3QgcmVtZW1iZXIgaWYgc2V4IGlzIGluIHRoZSBwaWN0dXJlCmJlY2F1c2UgaXQgZ2V0cyBzb3J0IG9mIGZvZ2d5IGFmdGVyIHRoZSBmaXJzdCBmZXcgbGl0ZXJzIG9mIGNvY29udXQgd2hpc2tleSwKYnV0CnRoZXkgYXJlIHNhdGlzZmllZCBpbiB0aGF0IGF0IGxlYXN0IHRoZSBFbmdsaXNoIGFyZSBub3QgZ2V0dGluZyBhbnkuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBrdWVyemVzdGUgSW5mb3JtYXRpa2VyLVdpdHo6IChUZWRkeSwgIDIuIE9rdCAxOTk5LCAxNDo1MToyMCk6Cn4jISBybj1QcmEgcnQ9OTM4NDQ0ODA0IHJnPXdpdHplCn4jISB0aWQ9OTM4NDQ0ODA0CkFjdWggIk51ciBrdXJ6IiBnZW5hbm50PyA7KQoKVGVkZHkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWUgU3plbmUgZnVlciAnVGhlIEVtcGlyZSBTdHJpa2VzIEJhY2snICwgRXh0cmEgU3BlY2lhbCBFZGl0aW9uIChOZXZvaywgIDMuIE9rdCAxOTk5LCAxNzoxMzoyMSk6CkJhc2ljYWxseSwgaXQgZXhwYW5kcyBvbiB0aGUgc2NlbmUgd2hlcmUgVmFkZXIgcmV2ZWFscyBoaXMgZmF0aGVyaG9vZCB0byBMdWtlLAphbmQgdGllcyB1cCBzb21lIGxvb3NlIGVuZHMgY3JlYXRlZCB3aXRoIHRoZSByZWxlYXNlIG9mIEVwaXNvZGUgMS4uLgpJTlQ6IEJFU1BJTiBHQU5UUlkgLSBNT01FTlRTIExBVEVSOiAKQSBmdXJpb3VzIGxpZ2h0c2FiZXIgZHVlbCBpcyB1bmRlcndheS4gREFSVEggVkFERVIgaXMgYmFja2luZyBMVUtFIFNLWVdBTEtFUgp0b3dhcmRzIHRoZSBlbmQgb2YgdGhlIGdhbnRyeS4gCkEgcXVpY2sgbW92ZSBieSBWYWRlciwgY2hvcHMgb2ZmIEx1a2UncyBoYW5kISBJdCBnb2VzIHNwaW5uaW5nIG9mZiBpbnRvICB0aGUKdmVudGlsYXRpb24gc2hhZnQuIDsgTHVrZSBiYWNrcyBhd2F5LiBIZSBsb29rcyBhcm91bmQsIGJ1dCByZWFsaXplcyB0aGVyZSdzCm5vd2hlcmUgdG8gZ28gYnV0IHN0cmFpZ2h0IGRvd24uIApEYXJ0aCBWYWRlcjogT2JpIFdhbiBuZXZlciB0b2xkIHlvdSB3aGF0IGhhcHBlbmVkIHRvIHlvdXIgZmF0aGVyLiAKTHVrZTogSGUgdG9sZCBtZSBlbm91Z2ghIEhlIHRvbGQgbWUgeW91IGtpbGxlZCBoaW0hIApEYXJ0aCBWYWRlcjogTm8uLi4gSSBhbSB5b3VyIGZhdGhlciEgCkx1a2U6IE5vLCBpdCdzIG5vdCB0cnVlISBJdCdzIGltcG9zc2libGUuIApEYXJ0aCBWYWRlcjogU2VhcmNoIHlvdXIgZmVlbGluZ3MuLi4geW91IGtub3cgaXQgdG8gYmUgdHJ1ZS4uLiAKTHVrZTogTk8hIApEYXJ0aCBWYWRlcjogWWVzLCBpdCBpcyB0cnVlLi4uIGFuZCB5b3Uga25vdyB3aGF0IGVsc2U/IFlvdSBrbm93IHRoYXQgYnJhc3MKZHJvaWQgb2YgeW91cnM/IApMdWtlOiBUaHJlZXBpbz8gCkRhcnRoIFZhZGVyOiBZZXMuLi4gVGhyZWVwaW8uLi4gSSBidWlsdCBoaW0uLi4gd2hlbiBJIHdhcyAxMCB5ZWFycyBvbGQuLi4gCkx1a2U6IE5vLi4uCkRhcnRoIFZhZGVyOiBUZW4geWVhcnMgb2xkPyBBbmQgd2hhdCBoYXZlIHlvdSBkb25lPyBMb29rIGF0IHlvdXJzZWxmLCBubyBoYW5kLApubyBqb2IsIGFuZCBjb3VsZG4ndCBldmVuIGxldml0YXRlIHlvdXIgb3duIHNoaXAgb3V0IG9mIHRoZSBzd2FtcC4uLgpMdWtlOiBJIGRlc3Ryb3llZCB5b3VyIHByZWNpb3VzIERlYXRoIFN0YXIhCkRhcnRoIFZhZGVyOiBXaGVuIHlvdSB3ZXJlIDIwISBXaGVuIEkgd2FzIDEwLCBJIHNpbmdsZS1oYW5kZWRseSBkZXN0cm95ZWQgYQpUcmFkZSBGZWRlcmF0aW9uIERyb2lkIENvbnRyb2wgc2hpcCEKTHVrZTogV2VsbCwgaXQncyBub3QgbXkgZmF1bHQuLi4KRGFydGggVmFkZXI6IE9oLCBoZXJlIHdlIGdvLi4uICJQb29yIG1lLi4uIG15IGZhdGhlciBuZXZlciBnYXZlIG1lIHdoYXQgSQp3YW50ZWQgZm9yIG15IGJpcnRoZGF5Li4uIGJvbyBob28sIG15IGRhZGR5J3MgdGhlIERhcmsgTG9yZCBvZiB0aGUKU2l0aC4uLndhYWhoaCB3YWhoaCEiCkx1a2U6IFNodXQgdXAuLi4KRGFydGggVmFkZXI6IFlvdSdyZSBhIHNsYWNrZXIhIEJ5IHRoZSB0aW1lIEkgd2FzIHlvdXIgYWdlLCBJIGhhZCBleHRlcm1pbmF0ZWQKdGhlIEplZGkga25pZ2h0cyEKTHVrZTogSSB1c2VkIHRvIHJhY2UgbXkgVC0xNiB0aHJvdWdoIEJlZ2dhcidzIENhbnlvbgpEYXJ0aCBWYWRlcjogT2gsIGZvciB0aGUgbG92ZSBvZiB0aGUgRW1wZXJvci4uLiAxMCB5ZWFycyBvbGQsIHdpbm5lciBvZiB0aGUKQm9vbnRhIEV2ZSBPcGVuLi4uIE9ubHkgaHVtYW4gdG8gZXZlciBmbHkgYSBQb2QgUmFjZXIuLi4gcmlnaHQgaGVyZSBiYWJ5IQpMdWtlIGxvb2tzIGRvd24gdGhlIHNoYWZ0IGFuZCB0aGlua3MgYWJvdXQganVtcGluZyBvZmYgdGhlIHBsYXRmb3JtLgpEYXJ0aCBWYWRlcjogSSB3YXMgd3JvbmcuLi4gWW91J3JlIG5vdCBteSBraWQuLi4gSSBkb24ndCBrbm93IHdob3NlIHlvdSBhcmUsCmJ1dCB5b3Ugc3VyZSBhaW4ndCBtaW5lLi4uCkx1a2UganVtcHMgb2ZmIHRoZSBwbGF0Zm9ybSwgYW5kIHBsdW5nZXMgZG93biB0aGUgc2hhZnQuCkRhcnRoIFZhZGVyIGxvb2tzIGFmdGVyIGhpbS4KRGFydGggVmFkZXI6IEdldCBhIGhhaXJjdXQhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWUgU3plbmUgZnVlciAnVGhlIEVtcGlyZSBTdHJpa2VzIEJhY2snICwgRXh0cmEgU3BlY2lhbCBFZGl0aW9uIChGZXVlcndlaHIsICAzLiBPa3QgMTk5OSwgMTc6MTY6MDIpOgp+IyEgcm49TmV2b2sgcnQ9OTM4OTcwODAxIHJnPXdpdHplCn4jISB0aWQ9OTM4OTcwODAxCgoqV0FFRUVFRUVMWioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZCSSBpc3N1ZXMgd2FycmFudCBmb3IgQWxpY2UgJiBCb2IgKFJvY2h1cywgIDQuIE9rdCAxOTk5LCAxMDowNDo1Nyk6CkdveXJhIG5ld3Mgc2VydmljZQpEYXRlbGluZSAyLk9jdC45OQoKVGhlIEZCSSBpc3N1ZWQgdG9kYXkgYSB3YXJyYW50IGZvciB0aGUgYXJyZXN0IG9mIHR3byAKcGVyc29ucyBrbm93biBvbmx5IGFzIEFsaWNlIGFuZCBCb2IuIEZCSSBkaXJlY3RvciAKTG91aXMgRnJlZWggc3RhdGVkICAiVGhlcmUgYXJlIG1hbnkgZmlyc3QtaGFuZAphY2NvdW50cywgaW4gdGhlIGNyeXB0YW5hbHl0aWMgbGl0ZXJhdHVyZSwgb2YgdGhlc2UgdHdvIAppbmRpdmlkdWFscyBjb21tdW5pY2F0aW5nIHdpdGggc2VjdXJlIHN5c3RlbXMuIEluCnNvbWUgY2FzZXMgdGhleSBhcmUgZGVzY3JpYmVkIGFzIGJlaW5nIGluIGFuIHVubmFtZWQKImZvcmVpZ24gY291bnRyeSIuIFRoZSBlcXVpcG1lbnQgdGhleSB1c2UgaXMgY2xlYXJseQpzdWJqZWN0IHRvIFUuUy4gZXhwb3J0IHJlc3RyaWN0aW9ucyBhbmQgd2Ugd2FudCB0byBpbnRlcnZpZXcgCnRoZW0gYWJvdXQganVzdCB3aGF0IGVxdWlwbWVudCB0aGV5IGhhdmUgdGFrZW4gb3V0IApvZiB0aGUgY291bnRyeS4iCgpUaGUgc3VybmFtZXMgb2YgQWxpY2UgYW5kIEJvYiBhcmUgdW5rbm93biwgYW5kIG5vCnBpY3R1cmVzIGFyZSBhdmFpbGFibGUuIE5vbmUgdGhlIGxlc3MgdGhlIEZCSSBhcmUgZGV0ZXJtaW5lZAp0byBwdXJzdWUgdGhlbS4gIlRoaXMgaXMgYW4gaXNzdWUgcGVydGFpbmluZyB0byBuYXRpb25hbCAKc2VjdXJpdHkiIHN0YXRlZCBGcmVlaCwgImFuZCB3ZSB0YWtlIGl0IHZlcnkgc2VyaW91c2x5LiBBbHNvIAp3ZSB3b3VsZCBsaWtlIGFuIGluZGl2aWR1YWwga25vd24gYXMgRXZlIHRvIHN0ZXAgZm9yd2FyZCBhbmQgCnRlbGwgdXMgd2hhdCBzaGUga25vd3MuIiBFdmUsIGFjY29yZGluZyB0byBhbGwgYWNjb3VudHMsIGlzCmEgc3VydmVpbGxhbmNlIGV4cGVydCB3aG8gaGFzIHNwZW50IHllYXJzIHRyeWluZyB0byBjcmFjayBBbGljZSAKYW5kIEJvYidzIGNvZGVzIHdpdGhvdXQgc3VjY2Vzcy4gIkV2ZSBoYXMgbm90aGluZyB0byBmZWFyIApmcm9tIHVzIiBzdGF0ZWQgRnJlZWguICJJbiBmYWN0IHdlIHdhbnQgdG8gZW1wbG95IGhlciIuCgoKKGMpIEdveXJhIDE5OTkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW53aXR6ZS4uLiA6KSAoVHN1bmFtaSwgIDguIE9rdCAxOTk5LCAxNDowMzoyMSk6CldlaXRlcmJpbGR1bmcKPT09PT09PT09PT09PQoKIERhcyBXSUZJIGhhdCBzb2ViZW4gZWluZW4gdW1mYXNzZW5kZW4gS2F0YWxvZyBVZWJlciBkaWUgbmV1ZW4KIEZvcnRiaWxkdW5nc2t1cnNlIGZ1ZXIgRnJhdWVuIHZlcm9lZmZlbnRsaWNodCEKIEZvbGdlbmRlIEt1cnNlIGtvZW5uZW4gYWIgc29mb3J0IGdlYnVjaHQgd2VyZGVuOgoKIDEuIFNjaHdlaWdlbiwgZGFzIHVuZW50ZGVja3RlIExhbmQuCiAyLiBTcGFyZW4sIGRpZSB1bmVudGRlY2t0ZSBTZWl0ZSBkZXMgR2VsZGVzLgogMy4gQmVzaWVnZSBkYXMgSW1lbGRhIE1hcmNvcyBTeW5kcm9tLiBEdSBicmF1Y2hzdCBuaWNodCBqZWRlbiBUYWcgbmV1ZQogICAgU2NodWhlIC4uLgogNC4gUGFydGllczogQXVzZ2VoZW4gb2huZSBuZXVlIE91dGZpdHMKIDUuIE1hZW5uZXIgTWFuYWdlbWVudDogV2llIGtsZWluZXJlIEhhdXNhcmJlaXRlbiBiaXMgbmFjaCBkZXIKICAgIEZ1c3NiYWxsc2VuZHVuZyB3YXJ0ZW4ga29lbm5lbgogNi4gVmVyaGFsdGVuIGltIEJhZGV6aW1tZXIgSTogTWFlbm5lciBicmF1Y2hlbiBhdWNoIFBsYXR6LgogNy4gVmVyaGFsdGVuIGltIEJhZGV6aW1tZXIgSUk6IFNlaW4gUmFzaWVyZXIgaXN0IHNlaW4gUmFzaWVyZXIKIDguIEtvbW11bmlrYXRpb24gSTogVHJhZW5lbiwgZGllIGxldHp0ZSBXYWZmZSwgbmljaHQgZGllIEVyc3RlLgogOS4gS29tbXVuaWthdGlvbiBJSTogRGVua2VuIHZvciBkZW0gU3ByZWNoZW4KIDEwLiBLb21tdW5pa2F0aW9uIElJSTogRGVuIFdpbGxlbiBkdXJjaHNldHplbiwgb2huZSBub2VyZ2VsbgogMTEuIEVpbmUgS3Vuc3QsIGRpZSBtYW4gbGVybmVuIGthbm46IFNpY2hlcmVzIEF1dG9mYWhyZW4KIDEyLiBWZXJoYWx0ZW4gYXVmIFBhcnRpZXM6IFdpc3Nlbiwgd2FubiBmcmF1IGdlbnVnIGdldHJ1bmtlbiBoYXQuCiAxMy4gVmVyaGFsdGVuIGFtIFRlbGVmb246IFdpZSBmcmF1IGF1ZmxlZ3QKIDE0LiBFaW5wYXJrZW4gSTogRWluZnVlaHJ1bmcKIDE1LiBFaW5wYXJrZW4gSUk6IFJ1ZWNrd2FlcnRzIGluIGRpZSBMVWVja2UgdHJlZmZlbgogMTYuIFRhbmtlbiBJOiBEaWUgQmVudXR6dW5nIGRlciBaYXBmc2FldWxlCiAxNy4gVGFua2VuIElJOiBBYm5laG1lbiBkZXMgVGFua3ZlcnNjaGx1c3NlcwogMTguIEtvY2hlbiBJOiBUcmVubmtvc3QgdW5kIFRvZnUgc2luZCBuaWNodCBhbHMgTmFocnVuZyBnZWVpZ25ldAogMTkuIEtvY2hlbiBJSTogV2llIGZyYXUgRGlhZXQgaGFlbHQsIG9obmUgYW5kZXJlIFBlcnNvbmVuIGVpbnp1YmV6aWVoZW4KIDIwLiBPcmFuZ2VuaGF1dDogRGVpbiBQcm9ibGVtLCBuaWNodCBzZWluZXMKIDIxLiBUYW56ZW46IEFremVwdGllcmVuLCB3ZW5uIE1hZW5uZXIgZXMgbmljaHQgbW9lZ2VuCiAyMi4gU2V4OiBBdWNoIGZ1ZXIgRWhlcGFhcmUKIDIzLiBLbGFzc2lzY2hlIEtsZWlkdW5nOiBEYXMgVHJhZ2VuIHZvbiBHZXdhbmQsIGRhcyBmcmF1IHNjaG9uIGJlc2l0enQKIDI0LiBTdGF1YjogRWluIE5hdHVycGhhZW5vbWVuLCBkYXMgbnVyIEZyYXVlbiBiZW1lcmtlbgogMjUuIEZlcm5iZWRpZW51bmdlbiBzaW5kIG51ciB3YXMgZnVlciBNYWVubmVyCiAyNi4gVmVyaGFsdGVuIGltIEJhZGV6aW1tZXIgSUlJOiBCYWRlemltbWVyIHNlaGVuIG5hY2ggZGVtIFB1dHplbgogICAgIGdlbmF1c28gYXVzIHdpZSB2b3JoZXIKIDI3LiBHZW1laW5zYW1lciBFaW5rYXVmOiAiV2FzIER1IGFuIEdld2FuZCBhdXNnaWJzdCwgZGFyZiBpY2ggdmVyc2F1ZmVuLAogICAgIG5vY2ggZGF6dSwgd28gaWNoIGRhcyBCaWVyIGdlbmF1IHNvIGxhbmdlIGluIG1pciBoYWJlLCB3aWUgRHUgZGVpbmUKICAgICBLbGVpZGVyIHRyYWVnc3QKCiBTb2xsdGVuIFNpZSBzaWNoIGZ1ZXIgZGVuIGVpbmVuIG9kZXIgYW5kZXJlbiBLdXJzIGludGVyZXNzaWVyZW4sIGxhc3NlbgogU2llIGVzIGJsb3NzIElocmVuIFBhcnRuZXIgbmljaHQgd2lzc2VuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9lc3RlcnJlaWNoZXIgKFllbmRpLCAxMS4gT2t0IDE5OTksIDEyOjQ0OjU5KToKT0ssIGRlciBpc3Qgc2Nob24gZXR3YXMgYWVsdGVyLCBhYmVyIGVnYWwuLi4KCkRlciBvZXN0ZXJyZWljaGlzY2hlIFJlZ2llcnVuZ3NjaGVmIGJlc3VjaHRlIGRlbiBzY2h3ZWl6ZXIKQnVuZGVzcmF0c3ByYWVzaWRlbnRlbiwgdW0gc2ljaCB1ZWJlciBhbGwgZGllc2UgT2VzdGVycmVpY2hlci1XaXR6ZSB6dQpiZXNjaHdlcmVuLCBkaWUgbWFuIHNpY2ggaW4gZGVyIFNjaHdlaXogZXJ6YWVobHQuCiJNYW4ga29lbm50ZSBhdWYgZGllIElkZWUga29tbWVuLCBhbGxlIE9lc3RlcnJlaWNoZXIgc2VpZW4gZHVtbS4iIHNhZ3RlIGVyLgoiRHUgc29sbHRlc3QgZGFzIG5pY2h0IHNvIGVybnN0IG5laG1lbiwiIGFud29ydGV0ZSBkZXIgQnVuZGVzcmF0c3ByYWVzaWRlbnQsIAoiZXMgaGFuZGVsdCBzaWNoIGphIG51ciB1bSBXaXR6ZSB1bmQgbmljaHQgdW0gVGF0c2FjaGVuLiBVbmQgZXMgZ2lidCBhdWNoCmR1bW1lIFNjaHdlaXplci4gSWNoIHdlcmRlIGRpciBkYXMgZ2xlaWNoIGJld2Vpc2VuLiIKRXIgZ2luZyB6dSBzZWluZW0gQ2hhdWZmZXVyIHVuZCBzYWd0ZTogIkZhaHJlbiBzaWUgYml0dGUgenUgbWlyIG5hY2ggSGF1c2UKdW5kIHNlaGVuIHNpZSBuYWNoLCBvYiBpY2ggZG9ydCBiaW4uIiBEZXIgQ2hhdWZmZXVyIG1hY2h0ZSBzaWNoIHNvZ2xlaWNoCmF1ZiBkZW4gV2VnLgoiRGVyIGlzdCBqYSB3aXJrbGljaCBzdHJvaGR1bW0sIiBzYWd0ZSBkZXIgb2VzdGVycmVpY2hpc2NoZQpSZWdpZXJ1bmdzY2hlZi4gIkRhIGlzdCBkb2NoIGVpbmUgVGVsZWZvbmthYmluZS4gRXMgd2FlcmUgZG9jaCB2aWVsCmVpbmZhY2hlciBnZXdlc2VuIGFuenVydWZlbi4iCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZWRlbmtsaWNoPyAoUm9jaHVzLCAxMS4gT2t0IDE5OTksIDE4OjUyOjMxKToKRHUgaGFzdCBnZW51ZyB2b24gZGVuIDkwZXIgSmFocmVuLCB3ZW5uOgoxLiBEdSB2ZXJzdWNoc3QgYmVpbSBNaWtyb3dlbGxlbmhlcmQgRGVpbiBQYXNzd29ydCBlaW56dWdlYmVuLgoyLiBEdSBzcGllbHN0IHNlaXQgSmFocmVuIGtlaW4gU29saXRhaXJlIG1pdCBlY2h0ZW4gS2FydGVuIG1laHIuCjMuIER1IGZyYWdzdCBEZWluZSBBcmJlaXRza29sbGVnZW4gYW0gVGlzY2ggbmViZW5hbiB2aWEgRW1haWwgb2Igc2llIEx1c3QKYXVmIEJpZXIgaGFiZW4gdW5kIHNpZSBhbnR3b3J0ZW4gdmlhIEVtYWlsICJPLksuLCBnaWIgbWlyIDUgTWludXRlbiIuCjQuIER1IGhhc3QgMTUgdmVyc2NoaWVkZSBUZWxlZm9ubnVtbWVybiB1bSBEZWluZSAzLWtvZXBmaWdlIEZhbWlsaWUgenUKZXJyZWljaGVuLgo1LiBEdSBjaGF0dGVzdCBtZWhybWFscyBwcm8gVGFnIG1pdCBlaW5lbSBUeXBlbiBpbiBTdWVkYW1lcmlrYSBhYmVyIGhhc3QKZGllc2VzIEphaHIgbm9jaCBuaWUgbWl0IERlaW5lbSBOYWNoYmFybiBnZXNwcm9jaGVuLgo2LiBEdSBrYXVmc3QgRGlyIGVpbmVuIG5ldWVuIENvbXB1dGVyIHVuZCBlaW5lIFdvY2hlIHNwYWV0ZXIgaXN0IGVyCnZlcmFsdGV0Lgo3LiBEZXIgR3J1bmQgd2FydW0gRHUgZGVuIEtvbnRha3QgenUgRGVpbmVuIEZyZXVuZGVuIHZlcmxpZXJzdCBpc3Qgd2VpbCBzaWUKa2VpbmUgRS1NYWlsIEFkcmVzc2UgYmVzaXR6ZW4uCjguIER1IGtlbm5zdCBEaWUgUG9zdCBUYXJpZmUgZnVlciBlaW5lIEJyaWVmbWFya2UgbmljaHQuCjkuIEZ1ZXIgRGljaCBiZWRldXRldCBvcmdhbmlzaWVydCBzZWluLCB2ZXJzY2hpZWRlbmZhcmJpZ2UgUG9zdC1JdCBLbGViZXIgenUKYmVzaXR6ZW4uCjEwLiBEaWUgbWVpc3RlbiBXaXR6ZSwgZGllIER1IGtlbm5zdCwgaGFzdCBEdSBpbiBkZW4gRW1haWxzIGdlbGVzZW4uCjExLiBEdSBnaWJzdCBkZW4gRmlybWVubmFtZW4gYW4sIHdlbm4gRHUgYW0gQWJlbmQgenUgSGF1c2UgZGFzIFRlbGVmb24KYWJuaW1tc3QuCjEyLiBEdSBtdXNzdCBadWhhdXNlIGRpZSAwIGRydWVja2VuIHVtIGJlaW0gVGVsZWZvbmllcmVuIHJhdXN6dWtvbW1lbi4KMTMuIER1IHZlcnN1Y2hzdCBtaXQgZGVtIEhhdXNzY2hsdWVzc2VsIGRlaW5lIEJ1ZXJvdHVlciB6dSBvZWZmbmVuLgoxNC4gRHUgc2l0enQgc2VpdCA0IEphaHJlbiBhbSBnbGVpY2hlbiBTY2hyZWlidGlzY2ggdW5kIGhhc3QgZG9ydCBmdWVyIDMKdmVyc2NoaWVkZW5lIEZpcm1lbiBnZWFyYmVpdGV0LgoxNS4gRGFzIEZpcm1lbnNjaGlsZCB3aXJkIGVpbm1hbCBwcm8gSmFociBkZW0gQ29ycG9yYXRlIERlc2lnbiBhbmdlcGFzc3QuCjE1LiBEYXMgc2NobGltbXN0ZSBhbSBDb21wdXRlcmFic3R1cnogaXN0IGRlciBWZXJsdXN0IERlaW5lciBCb29rbWFya3MuCjE2LiBEdSBnZWhzdCB6dXIgQXJiZWl0IHdlbm4gZXMgZHVua2VsIGlzdCwgRHUga29tbXN0IHZvbiBkZXIgQXJiZWl0IHdlbm4KZXMgZHVua2VsIGlzdCB1bmQgZGFzIGF1Y2ggaW0gU29tbWVyLgoxNy4gRHUgaGFzdCBlaW4ga29uZmlndXJpZXJiYXJlcyBQcm9ncmFtbSwgZGFzIERpciBkaWUgQW56YWhsIFRhZ2UgYmlzIHp1cgpQZW5zaW9uaWVydW5nICAgICBlcnJlY2huZXQuCjE4LiAiRmVyaWVuIiBtYWNoc3QgRHUgc2VpdCBKYWhyZW4gZHVyY2ggVWViZXJ6ZWl0IEtvbXBlbnNhdGlvbi4KMTkuIERlaW5lIEVsdGVybiBiZXNjaHJlaWJlbiBEaWNoIG1pdCAiZXIgYXJiZWl0ZXQgbWl0IENvbXB1dGVyIi4KMjAuIER1IGVya2VubnN0IERlaW5lIEtpbmRlciBkYW5rIGRlbiBQaG90b3MgYXVmIGRlbSBTY2hyZWlidGlzY2guCjIxLiBEdSBoYXN0IGRpZXNlIExpc3RlIGdlbGVzZW4gdW5kIGRhdWVybmQgZ2VuaWNrdC4KMjIuIER1IHVlYmVybGVnc3QgRGlyLCB3ZW0ga2FubnN0IER1IGRpZXNlIExpc3RlIGZvcndhcmRlbi4uLi4uLi4uCgpLb21tdCBkYXMgamVtYW5kZW0gYmVrYW5udCB2b3IgPyA7KQoodm9uIHRhdEBhdmFsb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmVkZW5rbGljaD8gKFdpbSwgMTEuIE9rdCAxOTk5LCAxODo1NDozOSk6Cn4jISBybj1Sb2NodXMgcnQ9OTM5NjY3OTUxIHJnPXdpdHplCn4jISB0aWQ9OTM5NjY3OTUxCkdyYXR1bGF0aW9uIFJvY2h1cywgUHVua3QgMjIgaGFzdCBEdSBzb21pdCBhdWNoIGVyZnVlbGx0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCZWRlbmtsaWNoPyAoUm9jaHVzLCAxMS4gT2t0IDE5OTksIDE4OjU1OjE3KToKfiMhIHJuPVdpbSBydD05Mzk2NjgwNzkgcmc9d2l0emUKfiMhIHRpZD05Mzk2Njc5NTEKTmVpbiwgZGVubiBpY2ggbXVzc3RlIGRhYmVpIG5pY2h0IHVlYmVybGVnZW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRoaW5ncyBZb3UgRG9udCB3YW50IHRvIGhlYXIgZHVyaW5nIHN1cmdlcnkgOikgKFN0aW5nLCAxNi4gT2t0IDE5OTksIDE2OjE5OjIzKToKVGhpbmdzIFlvdSBEb250JyBXYW50IHRvIEhlYXIgRHVyaW5nIFN1cmdlcnk6CgpCZXR0ZXIgc2F2ZSB0aGF0LiBXZSdsbCBuZWVkIGl0IGZvciB0aGUgYXV0b3BzeS4KClNvbWVvbmUgY2FsbCB0aGUgamFuaXRvciAtIHdlJ3JlIGdvaW5nIHRvIG5lZWQgYSBtb3AuCgpBY2NlcHQgdGhpcyBzYWNyaWZpY2UsIE8gR3JlYXQgTG9yZCBvZiBEYXJrbmVzcwoKQm8hIEJvISBDb21lIGJhY2sgd2l0aCB0aGF0ISBCYWQgRG9nIQoKV2FpdCBhIG1pbnV0ZSwgaWYgdGhpcyBpcyBoaXMgc3BsZWVuLCB0aGVuIHdoYXQncyB0aGF0PwoKSGFuZCBtZSB0aGF0IC4uLiB1aCAuLi4gdGhhdCB1aCAuLi4gdGhpbmdpZS4KCk9oIG5vISBJIGp1c3QgbG9zdCBteSBSb2xleC4KCk9vcHMhIEhleSwgaGFzIGFueW9uZSBldmVyIHN1cnZpdmVkIDUwMG1sIG9mIHRoaXMgc3R1ZmYgYmVmb3JlPwoKRGFybiwgdGhlcmUgZ28gdGhlIGxpZ2h0cyBhZ2Fpbi4uLgoKWWEga25vdywgdGhlcmUncyBiaWcgbW9uZXkgaW4ga2lkbmV5cy4gSGVjaywgdGhlIGd1eSdzIGdvdCB0d28gb2YgJ2VtLgoKRXZlcnlib2R5IHN0YW5kIGJhY2shIEkgbG9zdCBteSBjb250YWN0IGxlbnMhCgpDb3VsZCB5b3Ugc3RvcCB0aGF0IHRoaW5nIGZyb20gYmVhdGluZz8gSXQncyB0aHJvd2luZyBteSBjb25jZW50cmF0aW9uIG9mZi4KCldoYXQncyB0aGlzIGRvaW5nIGhlcmU/CgpJIGhhdGUgaXQgd2hlbiB0aGV5J3JlIG1pc3Npbmcgc3R1ZmYgaW4gaGVyZS4uCgpUaGF0J3MgY29vbCEgTm93IGNhbiB5b3UgbWFrZSBoaXMgbGVnIHR3aXRjaD8hCgpJIHdpc2ggSSBoYWRuJ3QgZm9yZ290dGVuIG15IGdsYXNzZXMuCgpXZWxsIGZvbGtzLCB0aGlzIHdpbGwgYmUgYW4gZXhwZXJpbWVudCBmb3IgdXMgYWxsLgoKU3RlcmlsZSwgc2hjbWVyaWxlLiBUaGUgZmxvb3IncyBjbGVhbiwgcmlnaHQ/CgpXaGF0IGRvIHlvdSBtZWFuIGhlIHdhc24ndCBpbiBmb3IgYSBzZXggY2hhbmdlLi4uLi4hCgpBbnlvbmUgc2VlIHdoZXJlIEkgbGVmdCB0aGF0IHNjYWxwZWw/CgpBbmQgbm93IHdlIHJlbW92ZSB0aGUgc3ViamVjdCdzIGJyYWluIGFuZCBwbGFjZSBpdCBpbiB0aGUgYm9keSBvZiB0aGUgYXBlLgoKT0ssIG5vdyB0YWtlIGEgcGljdHVyZSBmcm9tIHRoaXMgYW5nbGUuIFRoaXMgaXMgdHJ1bHkgYSBmcmVhayBvZiBuYXR1cmUuCgpUaGlzIHBhdGllbnQgaGFzIGFscmVhZHkgaGFkIHNvbWUga2lkcywgYW0gSSBjb3JyZWN0PwoKTnVyc2UsIGRpZCB0aGlzIHBhdGllbnQgc2lnbiB0aGUgb3JnYW4gZG9uYXRpb24gY2FyZD8KCkRvbid0IHdvcnJ5LiBJIHRoaW5rIGl0IGlzIHNoYXJwIGVub3VnaC4KCldoYXQgZG8geW91IG1lYW4gWW91IHdhbnQgYSBkaXZvcmNlIQoKU2hlJ3MgZ29ubmEgYmxvdyEgRXZlcnlib2R5IHRha2UgY292ZXIhISEKCkZJUkUhIEZJUkUhIEV2ZXJ5b25lIGdldCBvdXQgbm93ISEKCkRhcm4hIFBhZ2UgNDcgb2YgdGhlIG1hbnVhbCBpcyBtaXNzaW5nIQoKClN0aW5nLCBkZXIgc2ljaCBkYWJlaSBoYWxiIGthcHV0dGdlbGFjaHQgaGF0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGhpbmdzIFlvdSBEb250IHdhbnQgdG8gaGVhciBkdXJpbmcgc3VyZ2VyeSA6KSAoR3VpbGRvLCAxOS4gT2t0IDE5OTksIDEzOjMyOjMwKToKfiMhIHJuPVN0aW5nIHJ0PTk0MDA5MDc2MyByZz13aXR6ZQp+IyEgdGlkPTk0MDA5MDc2MwpQYXNzZW5kIGRhenU6ICJQYXRpZW50IENoYXJ0cyIgKG5hY2h6dWxlc2VuIHVudGVyIGh0dHA6Ly9yaW5rd29ya3MuY29tL3NhaWQpOgoKIlBhdGllbnQgaGFzIGNoZXN0IHBhaW4gaWYgc2hlIGxpZXMgb24gaGVyIGxlZnQgc2lkZSBmb3Igb3ZlciBhIHllYXIuIiAgCgoiT24gdGhlIDJuZCBkYXkgdGhlIGtuZWUgd2FzIGJldHRlciBhbmQgb24gdGhlIDNyZCBkYXkgaXQgZGlzYXBwZWFyZWQKY29tcGxldGVseS4iICAKCiJUaGUgcGF0aWVudCBoYXMgYmVlbiBkZXByZXNzZWQgZXZlciBzaW5jZSBzaGUgYmVnYW4gc2VlaW5nIG1lIGluIDE5OTMuIiAgCgoiVGhlIHBhdGllbnQgaXMgdGVhcmZ1bCBhbmQgY3J5aW5nIGNvbnN0YW50bHkuIFNoZSBhbHNvIGFwcGVhcnMgdG8gYmUKZGVwcmVzc2VkLiIgIAoKIkRpc2NoYXJnZSBzdGF0dXM6IEFsaXZlIGJ1dCB3aXRob3V0IHBlcm1pc3Npb24uIiAgCgoiSGVhbHRoeSBhcHBlYXJpbmcgZGVjcmVwaXQgNjkgeWVhci1vbGQgbWFsZSwgbWVudGFsbHkgYWxlcnQgYnV0IGZvcmdldGZ1bC4iICAKCiJUaGUgcGF0aWVudCByZWZ1c2VkIGFuIGF1dG9wc3kuIiAgCgoiVGhlIHBhdGllbnQgaGFzIG5vIHBhc3QgaGlzdG9yeSBvZiBzdWljaWRlcy4iICAKCiJQYXRpZW50IGhhcyBsZWZ0IGhpcyB3aGl0ZSBibG9vZCBjZWxscyBhdCBhbm90aGVyIGhvc3BpdGFsLiIgIAoKIlBhdGllbnQncyBwYXN0IG1lZGljYWwgaGlzdG9yeSBoYXMgYmVlbiByZW1hcmthYmx5IGluc2lnbmlmaWNhbnQgd2l0aCBvbmx5IGEKNDAgcG91bmQgd2VpZ2h0IGdhaW4gaW4gdGhlIHBhc3QgdGhyZWUgZGF5cy4iICAKCiJQYXRpZW50IGhhZCB3YWZmbGVzIGZvciBicmVha2Zhc3QgYW5kIGFub3JleGlhIGZvciBsdW5jaC4iICAKCiJTaGUgaGFzIGhhZCBubyByaWdvcnMgb3Igc2hha2luZyBjaGlsbHMsIGJ1dCBoZXIgaHVzYmFuZCBzdGF0ZXMgc2hlIHdhcyB2ZXJ5CmhvdCBpbiBiZWQgbGFzdCBuaWdodC4iICAKCiJTaGUgaXMgbnVtYiBmcm9tIGhlciB0b2VzIGRvd24uIiAgCgoiV2hpbGUgaW4gdGhlIEVSLCBzaGUgd2FzIGV4YW1pbmVkLCBYLXJhdGVkIGFuZCBzZW50IGhvbWUuIiAgCgoiVGhlIHNraW4gd2FzIG1vaXN0IGFuZCBkcnkuIiAgCgoiT2NjYXNpb25hbCwgY29uc3RhbnQsIGluZnJlcXVlbnQgaGVhZGFjaGVzLiIgIAoKIlBhdGllbnQgd2FzIGFsZXJ0IGFuZCB1bnJlc3BvbnNpdmUuIiAgCgoiU2hlIHN0YXRlZCB0aGF0IHNoZSBoYWQgYmVlbiBjb25zdGlwYXRlZCBmb3IgbW9zdCBvZiBoZXIgbGlmZSwgdW50aWwgc2hlIGdvdAphIGRpdm9yY2UuIiAgCgoiSSBzYXcgeW91ciBwYXRpZW50IHRvZGF5LCB3aG8gaXMgc3RpbGwgdW5kZXIgb3VyIGNhciBmb3IgcGh5c2ljYWwgdGhlcmFweS4iICAKCiJUaGUgcGF0aWVudCB3YXMgdG8gaGF2ZSBhIGJvd2VsIHJlc2VjdGlvbi4gSG93ZXZlciwgaGUgdG9vayBhIGpvYiBhcyBhCnN0b2NrYnJva2VyIGluc3RlYWQuIiAgCgoiUGF0aWVudCBoYXMgdHdvIHRlZW5hZ2UgY2hpbGRyZW4gYnV0IG5vIG90aGVyIGFibm9ybWFsaXRpZXMuIiAgCgoiU2tpbjogU29tZXdoYXQgcGFsZSBidXQgcHJlc2VudC4iICAKCiJQYXRpZW50IHdhcyBzZWVuIGluIGNvbnN1bHRhdGlvbiBieSBEci4gQmxhbmssIHdobyBmZWx0IHdlIHNob3VsZCBzaXQgb24gdGhlCmFiZG9tZW4sIGFuZCBJIGFncmVlLiIgIAoKR3J1c3MsCkd1aWxkbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9sbHN0YWVuZGlnZSBJbmR1a3Rpb24gKEthcmlzLCAxOS4gT2t0IDE5OTksIDE0OjIxOjE4KToKQmVoYXVwdHVuZyAxOiBKZWRlcyBQcm9ncmFtbSBrYW5uIHVtIGVpbmUgQW53ZWlzdW5nIGdla3Vlcnp0IHdlcmRlbi4KQmVoYXVwdHVuZyAyOiBKZWRlcyBQcm9ncmFtbSBlbnRoYWVsdCBtaW5kZXN0ZW5zIGVpbmVuIEZlaGxlci4KClNjaGx1c3Nmb2xnZXJ1bmc6IEplZGVzIFByb2dyYW1tIGthbm4gYXVmIGVpbmUgQW53ZWlzdW5nIHp1c2FtbWVuZ2VzdHJpY2hlbgp3ZXJkZW4sIGRpZSBkYW5uIG5pY2h0IGZ1bmt0aW9uaWVydC4KCkthcmlzLCBuaWNodCB3aXNzZW5kLCB3aWUgYWx0IGRlciBudSB3aWVkZXIgaXN0IDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGhpbmdzIFlvdSBEb250IHdhbnQgdG8gaGVhciBkdXJpbmcgc3VyZ2VyeSA6KSAoTWFyY3VzLCAxOS4gT2t0IDE5OTksIDE5OjM5OjI2KToKfiMhIHJuPVN0aW5nIHJ0PTk0MDA5MDc2MyByZz13aXR6ZQp+IyEgdGlkPTk0MDA5MDc2MwouLi4gRG9rdG9yIHNjaGF1dCBhdWYgUm9lbnRnZW5iaWxkOiAib2ggb2giCi4uLiBDaGVmYXJ6dCBrb21tdCByZWluLCBzY2hhdXQgYXVmIFJvZW50Z2VuYmlsZCAib2ggb2hoIgoKTWlyIHNlbGJlciBwYXNzaWVydCwgTWFyY3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRoaW5ncyBZb3UgRG9udCB3YW50IHRvIGhlYXIgZHVyaW5nIHN1cmdlcnkgOikgKExpYXJhLCAxOS4gT2t0IDE5OTksIDE5OjU3OjMxKToKfiMhIHJuPU1hcmN1cyBydD05NDAzNjE5NjYgcmc9d2l0emUKfiMhIHRpZD05NDAwOTA3NjMKSG0sIGRhIGZlaGx0IHdpcmtsaWNoIGRpZSBQb2ludGUuIDstKQoKTGlhcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUaGluZ3MgWW91IERvbnQgd2FudCB0byBoZWFyIGR1cmluZyBzdXJnZXJ5IDopIChNYXJjdXMsIDE5LiBPa3QgMTk5OSwgMTk6NTg6MzkpOgp+IyEgcm49TGlhcmEgcnQ9OTQwMzYzMDUxIHJnPXdpdHplCn4jISB0aWQ9OTQwMDkwNzYzCk5hamEsIHNpZSBzaW5kIGRhbm4gcmF1cywgaGFiZW4gc2ljaCA1IE1pbnV0ZW4gZ2VlaW5pZ3QsIHdpZSBzaWUgZGFzIFByb2JsZW0KYW5nZWhlbi4gSGFiZW4gbWlyIGRhbm4gZGllIGhhcnRlbiBEcm9nZW4gZ2VzcHJpdHp0ICgyIEFtcHVsbGVuIGludHJhdmVub2VzKQp1bmQgZGVuIGdlYnJvY2hlbmVuIEFybSB3aWVkZXIgZWluZ2VyZW5rdCA6LwoKQ2lhbywgTWFyY3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDb21wdXRlcmdlc2NobGVjaHQgKERhcmt3aW5nLCAyMi4gT2t0IDE5OTksIDA4OjE4OjIxKToKVW0gZmVzdHp1c3RlbGxlbiwgb2IgQ29tcHV0ZXIgbnVuIGVpZ2VudGxpY2ggZWhlciBtYWVubmxpY2ggb2RlciB3ZWlibGljaApzaW5kLCBiaWxkZXRlIGVpbiBQcm9mZXNzb3IgendlaSBHcnVwcGVuIHZvbiBDb21wdXRlci1FeHBlcnRlbi4gRGllIGVyc3RlCmJlc3RhbmQgYXVzIEZyYXVlbiwgZGllIHp3ZWl0ZSBhdXMgTWFlbm5lcm4uIEplZGUgR3J1cHBlIHd1cmRlIGdlZnJhZ3QsCndlbGNoZXMgR2VzY2hsZWNodCBzaWUgZWluZW0gQ29tcHV0ZXIgenVvcmRuZW4gd3xyZGVuIHVuZCB3YXJ1bS4gRGllcyBzb2xsdGUKbWl0IGpld2VpbHMgNCBQdW5rdGVuIGJlZ3J1ZW5kZXQgd2VyZGVuLgoKRGllcyBHcnVwcGUgZGVyIEZyYXVlbiBtZWludGUsIENvbXB1dGVyIHdyZW4gdHlwaXNjaCBtYWVubmxpY2g6CgoxLiBVbSBpaHJlIEF1Zm1lcmtzYW1rZWl0IHp1IGJla29tbWVuLCBtdXNzIG1hbiBzaWUgYW5tYWNoZW4uCjIuIFNpZSBoYWJlbiBlaW5lIE1lbmdlIERhdGVuLCBhYmVyIHdpc3NlbiB0cm90emRlbSBuaWNodHMuCjMuIFNpZSBzb2xsdGVuIGVpZ2VudGxpY2ggZGFiZWkgaGVsZmVuIFByb2JsZW1lIHp1IGxvZXNlbiwgYWJlciBpbiBkZXIgSGFlbGZ0ZQphbGxlciBGYWVsbGUgc2luZCBzaWUgc2VsYnN0IGRhcyBQcm9ibGVtLgo0LiBTb2JsYWQgbWFuIHNpY2ggZnxyIGVpbmVuIGVudHNjaGllZGVuIGhhdCwgZmluZGV0IG1hbiBoZXJhdXMsIGRhc3MgbWFuCm5vY2ggZXR3YXMgbGFlbmdlciBodHRlIHdhcnRlbiBzb2xsZW4sIGRhbm4gaGFldHRlIG1hbiBlaW5lbiBCZXNzZXJlbgpiZWtvbW1lbi4KCkRpZSBHcnVwcGUgZGVyIE1hZW5uZXIgbWVpbnRlIGplZG9jaCwgQ29tcHV0ZXIgd3JlbiBnYW56IGtsYXIgd2VpYmxpY2gsCmRlbm46CgoxLiBLZWluZXIgYXVzc2VyIGlocmVtIFNjaG9lcGZlciB2ZXJzdGVodCBpaHJlIGludGVybmUgTG9naWsuCjIuIERpZSBTcHJhY2hlLCBkaWUgc2llIHVudGVyZWluYW5kZXIgenUgS29tbXVuaWthdGlvbiBiZW51dHplbiwgaXN0IHZvZWxsaWcKdW52ZXJzdGFlbmRsaWNoIGZ1ZXIgYW5kZXJlLgozLiBTb2dhciBEZWluZSBrbGVpbnN0ZW4gRmVobGVyIGJsZWliZW4gZnVlciBpbW1lciBzaWNoZXIgZ2VzcGVpY2hlcnQuCjQuIFNvYmFsZCBtYW4gc2ljaCB6dSBlaW5lbSBlbnRzY2hsb3NzZW4gaGF0LCBnaWJ0IG1hbiBzZWluZW4gaGFsYmVuIExvaG4KZnVlciBadXNhdHprb21wb25lbnRlbiBkYWZ1ZXIgYXVzLi4uICAgICAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpbGwgYmVpIE1jRG9vZiAoTm9ubmUsIDI5LiBPa3QgMTk5OSwgMTE6MjQ6NDMpOgpCaWxsIEdhdGVzOiBJY2ggaHR0ZSBnZXJuZSBlaW5lbiBCaWdNYWMuIAogICAgS2Fzc2llcmVyOiBFaW4gQmlnIE1hYywgZWluZSBDb2xhLiBNYWNodCA2Ljk5LiAKICAgIEJpbGwgR2F0ZXM6IEljaCBoYWJlIG51ciBlaW5lbiBCaWdNYWMgYmVzdGVsbHQhIAogICAgS2Fzc2llcmVyOiBEaWUgQ29sYSBnZWhydCBkYXp1LCBpc3QgVGVpbCBlaW5lcyBHZXNhbXRwYWtldHMuIAogICAgQmlsbCBHYXRlczogV2llIGJpdHRlPyBEaWUgQ29sYSB6YWhsZSBpY2ggbmljaHQuIAogICAgS2Fzc2llcmVyOiBCcmF1Y2hlbiBzaWUgYXVjaCBuaWNodC4gRGllIENvbGEgaXN0IGdyYXRpcy4gCiAgICBCaWxsIEdhdGVzOiBBYmVyIGtvc3RldGUgZGVyIEJpZ01hYyBhbGxlaW5lIGJpc2hlciBuaWNodCAzLjk5PyAKICAgIEthc3NpZXJlcjogU3RpbW10LCBhYmVyIGRlciBCaWdNYWMgaGF0IGpldHp0IG5ldWUgTGVpc3R1bmdzbWVya21hbGUuIEVyCmhhdCBlaW5lIENvbGEgaW0gTGllZmVydW1mYW5nISAKICAgIEJpbGwgR2F0ZXM6IEljaCBoYWJlIGViZW4gZXJzdCBlaW5lIENvbGEgZ2V0cnVua2VuLiBJY2ggYnJhdWNoZSBqZXR6dAprZWluZSBDb2xhLiAKICAgIEthc3NpZXJlcjogRGFubiBnaWJ0J3MgYXVjaCBrZWluZW4gQmlnTWFjLiAKICAgIEJpbGwgR2F0ZXM6IE5hIGd1dCwgaWNoIHphaGxlIDMuOTkgdW5kIHZlcnppY2h0ZSBhdWYgZGllIENvbGEuIAogICAgS2Fzc2llcmVyOiBNYW4ga2FubiBkaWUgVGVpbGUgZGVzIEdlc2FtdHBha2V0ZXMgbmljaHQgdHJlbm5lbi4gQmlnTWFjIHVuZApDb2xhIHNpbmQgbmFodGxvcyBpbnRlZ3JpZXJ0LiAKICAgIEJpbGwgR2F0ZXM6IFF1YXRzY2guIEJpZ01hYyB1bmQgQ29sYSBzaW5kIHp3ZWllcmxlaSEgCiAgICBLYXNzaWVyZXI6IFBhc3NlbiBzaWUgbWFsIGF1Zi4gKEVyIHR1bmt0IGRlbiBCaWdNYWMgaW4gZWluZW4gQmVjaGVyCkNvbGEuKSAKICAgIEJpbGwgR2F0ZXM6IFdhcyBzb2xsIGRlbm4gZGFzPyAKICAgIEthc3NpZXJlcjogRGFzIGlzdCBpbSBJbnRlcmVzc2UgZGVzIEt1bmRlbiwgc28ga25uZW4gd2lyIGVpbmVuCmVpbmhlaXRsaWNoZW4gR2VzY2htYWNrIGluIGFsbGVuIEtvbXBvbmVudGVuIGdhcmFudGllcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2l0emUgKFNlYmFzdGlhbiwgIDUuIE5vdiAxOTk5LCAwMDo1MzowNyk6Cn4jISBvbj1TZWJhc3RpYW4gb3Q9OTQxNzUzMzIyIG9nPXdpdHplCn4jISBvbj1TZWJhc3RpYW4gb3Q9OTQxNzUyODA2IG9nPWV0aWtldHRlCkRpZSBQb3N0IGhhdCBlaW5lIEJpbGwgR2F0ZXMtU29uZGVybWFya2UgaGVyYXVzZ2VicmFjaHQuCiBFcyBzdGVsbHQgc2ljaCBhYmVyIGhlcmF1cywgZGFzcyBkaWVzZSBhdWYgZGVuIEJyaWVmZW4gbmljaHQgaGx0LiAKRWluZSBVbnRlcnN1Y2h1bmdza29tbWlzc2lvbiBhdHRlc3RpZXJ0LCBkYXMgc293b2hsIGRpZSBCcmllZm1hcmtlIGFscyAKYXVjaCBkZXIgdmVyd2VuZGV0ZSBLbGVic3RvZmYgdmxsaWcgaW4gT3JkbnVuZyBzaW5kLiBEYXMgUHJvYmxlbSBpc3QsIApkaWUgTGV1dGUgc3B1Y2tlbiBhbGxlIGF1ZiBkaWUgZmFsc2NoZSBTZWl0ZS4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFsIG5lbiBIYWVnZXItQ29taWMuLiA7KSAoWm9vaywgIDguIE5vdiAxOTk5LCAwMDowMTowNSk6CkhhZWdlciBpc3QgYmVpIERyLiBab29rIGltIEJlaGFuZGx1bmdzemltbWVyIHVuZCBzY2hhdXQgZWluIHdlbmlnCmtyYWVua2xpY2ggYXVzLiBEci4gWm9vayBoYWVsdCBpaG0gZWluZSBGbGFzY2hlIGhpbiB1bmQgZXMgZW50d2lja2VsdApzaWNoIGZvbGdlbmRlciBEaWFsb2c6Cgpab29rOiBEYXMgaXN0IGVpbmUgbmV1ZSBXdW5kZXJtZWRpemluIGF1cyBFbmdsYW5kLiBTaWUgc29sbCBTY2htZXJ6ZW4KICAgYmV0YWV1YmVuLCBTcGFubnVuZ2VuIGFiYmF1ZW4gdW5kIE11c2tlbG4gbG9ja2Vybi4uLgpIYWVnYXI6IFdpZSBoZWlzc3Qgc2llPwpab29rOiBHaW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW5lci4uLiAoWm9vaywgIDguIE5vdiAxOTk5LCAwMDowMjozMSk6CkhlbGdhIGJlaW0gRWhlYmVyYXRlcjoKCkhlbGdhOiBNZWluIE1hbm4gdW5kIGljaCBzcHJlY2hlbiB3YWVocmVuZCBkZXMgRXNzZW5zIGtlaW4gV29ydAogICBtaXRlaW5hbmRlci4KRWhlYmVyYXRlOiBXaWUgbGFuZ2UgZ2VodCBkYXMgc2Nob24/CkhlbGdhOiBTZWl0IGljaCBpaG0gc2FndGUsIGVyIHNvbGwgbmljaHQgbWl0IHZvbGxlbSBNdW5kIHJlZGVuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClByb2JsZW1laW5nZWtyZWlzdC4uLiAoSGlnaGxhbmRlciwgMTcuIE5vdiAxOTk5LCAyMjoyOToyNik6CihhdXM6IHd3dy5yaW5rd29ya3MuY29tL3N0dXBpZC9jc19taXNjLnNodG1sKQpJIG9uY2UgZ290IGFuIGVzcGVjaWFsbHkgaGVscGZ1bCByZXBseSB0byBhIHF1ZXN0aW9uIEkgYXNrZWQgb24gTWljcm9zb2Z0J3MKb24tbGluZSB0ZWNoIHN1cHBvcnQgc2VydmljZS4gSSB3cm90ZSBiYWNrCnRvIHRoYW5rIHRoZW0gZm9yIGEgY29tcGxldGUgYW5kIGNvbmNpc2UgcmVwbHkgYW5kIHNhaWQgaG93IG11Y2ggSSBhcHByZWNpYXRlZAppdC4KClRoZSBuZXh0IGRheSBJIGhhZCBhIHJlc3BvbnNlOiAKCiAgICAgV2UgYXJlIGxvb2tpbmcgaW4gdG8gdGhlIHByb2JsZW0gYW5kIHdpbGwgY29udGFjdCB5b3Ugd2l0aCBhIHNvbHV0aW9uIGFzCiAgICAgc29vbiBhcyBwb3NzaWJsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVTIEdlc2V0emdlYnVuZyAoUm9jaHVzLCAyOS4gTm92IDE5OTksIDIwOjU5OjU2KToKKHZvbiBGcm9laG5AQXZhbG9uKQoKRGllIEFtZXJpa2FuZXIgaGFiZW4gYmlzd2VpbGVuIGVpbmUgbWVya3d1ZXJkaWdlIEdlc2V0emdlYnVuZy4KSGllciBlaW5pZ2UgQXVzenVlZ2UuIDtvKQoKQUxBQkFNQToKTWFlbm5lciBkdWVyZmVuIGlocmUgRnJhdWVuIG51ciB2ZXJwcnVlZ2Vsbiwgd2VubiBzaWUgZWluZW4gU3RvY2sgZGF6dQpiZW51dHplbiwgZGVyIGtlaW5lbiBncm9lc3NlcmVuIER1cmNobWVzc2VyIGhhdCBhbHMgaWhyIERhdW1lbi4KQVJJWk9OQToKSW4gTm9nYWxlcyBpc3QgZXMgdmVyYm90ZW4sIGluIGRlciBPZWZmZW50bGljaGtlaXQgSG9zZW50cmFlZ2VyIHp1IHRyYWdlbi4KQ09MT1JBRE86CkluIERlbnZlciBkYXJmIGVpbiBIdW5kZWZhZW5nZXIgbnVyIGRhbm4gc2VpbmVtIEhhbmR3ZXJrIG5hY2hnZWhlbiwgd2VubiBlcgpkaWUgSHVuZGUgZHVyY2ggUGxha2F0YW5zY2hsYWVnZSBpbiBvZWZmZW50bGljaGVuIFBhcmtzIGRyZWkgVGFnZSBsYW5nCmF1c2RydWVja2xpY2ggYXVmIGRpZSBkcm9oZW5kZSBHZWZhaHIgaGluZ2V3aWVzZW4gaGF0LgpDT05ORUNUSUNVVDoKRGEga29zdGV0IGVzIFN0cmFmZSwgZWluZSBVU0EtRmxhZ2dlIGZsYXR0ZXJuIHp1IGxhc3NlbiwgZGllIG5pY2h0IGRpZQprb3JyZWt0ZSBBbnphaGwgU3RhcnMgJiBTdHJpcGVzIHRyYWVndC4KREVMQVdBUkU6CkVzIGlzdCBnZWdlbiBkYXMgR2VzZXR6LCBzZWluZSBGcmF1IG1pdCBTY2hpbXBmd29lcnRlcm4genUgYmVsZWdlbi4KR0VPUkdJQToKV2FlaHJlbmQgZWluZXMgUGlja25pY2tzIGR1ZXJmZW4ga2VpbmUgRmV1ZXJ3YWZmZW4gYmVudXR6dCB3ZXJkZW4uCkhBV0FJSToKV2VyIHNpY2ggUGVubmllcyBpbnMgT2hyIHN0ZWNrdCwgbWFjaHQgc2ljaCBzdHJhZmJhci4KSURBSE86CkVzIGlzdCBhdXNkcnVlY2tsaWNoIHZlcmJvdGVuLCBGb3JlbGxlbiB6dSBmaXNjaGVuLCB3YWVocmVuZCBtYW4gYXVmIGVpbmVyCkdpcmFmZmUgc2l0enQuCklMTElOT0lTOgpFaW5lIEZyYXUsIGRpZSBtZWhyIGFscyA5MCBLaWxvIHdpZWd0LCBkYXJmIG5pY2h0IGluIFNob3J0cyByZWl0ZW4uIEluCkNoaWNhZ28gZGFyZiBtYW4gQWxrb2hvbCBuaWNodCBpbSBTdGVoZW4gdHJpbmtlbi4KSU5ESUFOQToKSW4gU3BhZGVzIGlzdCBlcyB2ZXJib3RlbiwgS29uc2VydmVuZG9zZW4gYXVmenVzY2hpZXNzZW4sIHdlbm4gbWFuIGRlbgpCdWVjaHNlbm9lZmZuZXIgdmVyZ2Vzc2VuIGhhdC4KSU9XQToKSW4gQ2VkYXIgUmFwaWRzIGlzdCBlcyB2ZXJib3RlbiwgRnJlbWRlIHp1IGt1ZXNzZW4uCktBTElGT1JOSUVOOgpXZXIgaW4gS2FsaWZvcm5pZW4gZWluZSBNYXVzZWZhbGxlIGF1ZnN0ZWxsdCwgYmVub2V0aWd0IGVpbmUgSmFnZGxpemVuei4KS0FOU0FTOgpJbiBXaWNoaXRhIHNpbmQgRmlsbWUsIGluIGRlbmVuIGplbWFuZCBLLk8uIGdlc2NobGFnZW4gd2lyZCwgaWxsZWdhbC4KS0VOVFVDS1k6Ck51ciBGcmF1ZW4sIGRpZSBtaXQgZWluZW0gS251ZXBwZWwgYmV3YWZmbmV0IG9kZXIgdm9uIHp3ZWkgUG9saXplaWJlYW10ZW4KYmVnbGVpdGV0IHdlcmRlbiwgZHVlcmZlbiBzaWNoIGltIEJhZGVhbnp1ZyBlaW5lbSBIaWdod2F5IG5hZWhlcm4uCkxPVUlTSUFOQToKSW4gTmV3IE9ybGVhbnMgbXVlc3NlbiBGZXVlcndlaHJhdXRvcyBhdWNoIGRhbm4gYmVpIFJvdGxpY2h0IGhhbHRlbiwgd2VubgpzaWUKYXVmIGRlbSBXZWcgenUgZWluZW0gQnJhbmQgc2luZC4KTUFJTkU6CkVzIGlzdCBpbGxlZ2FsLCBtaXQgaGVydW50ZXJoYWVuZ2VuZGVuIFNjaG51ZXJzZW5rZWxuIG9lZmZlbnRsaWNoZSBTdHJhc3Nlbgp6dQpNQVJZTEFORDoKRWluIEt1c3MgZGFyZiBuaWNodCBsYWVuZ2VyIGFscyBlaW5lIFNla3VuZGUgZGF1ZXJuLgoKTUFTU0FDSFVTRVRUUzoKSW4gQm9zdG9uIGR1ZXJmZW4gV2FubmVuYmFlZGVyIG51ciBhdWYgUmV6ZXB0IGdlbm9tbWVuIHdlcmRlbi4KTUlDSElHQU46CkluIFNhdWx0IFNhaW50IE1hcmllIHdpcmQgU3B1Y2tlbiBnZWdlbiBkZW4gV2luZCBiZXN0cmFmdC4KTUlOTkVTT1RBOgpFcyBpc3QgaWxsZWdhbCwgd2VpYmxpY2hlIHVuZCBtYWVubmxpY2hlIFVudGVyd2Flc2NoZSBhdWYgZGllIHNlbGJlCldhZXNjaGVsZWluZSB6dSBoYWVuZ2VuLgoKCk1JU1NJU1NJUFBJOgpXZXIgc2ljaCB1ZWJlciBkaWUgQXJjaGl0ZWt0dXIgdm9uIG9lZmZlbnRsaWNoZW4gQmF1dGVuIGx1c3RpZyBtYWNodCwgbWFjaHQKc2ljaCBzdHJhZmJhci4KTUlTU09VUkk6CkRhcyBSYXNpZXJlbiBiZWkgVGFnZXNsaWNodCB3aXJkIGJlc3RyYWZ0LgpNT05UQU5BOgpJbiBlaW5lbSBOYWNodGNsdWIsIGluIGRlbSBBbGtvaG9sIGF1c2dlc2NoZW5rdCB3ZXJkZW4gZGFyZiwgbXVzcyBkYXMKS29zdHVlbQpkZXIgVGFlbnplcmlubmVuIG1pbmRlc3RlbnMgZHJlaSBQZnVuZCB1bmQgZHJlaSBVbnplbiB3aWVnZW4uCk5FQlJBU0tBOgpJbiBXYXRlcmxvbyBpc3QgZXMgRnJpc2V1cmVuIHZlcmJvdGVuLCB3YWVocmVuZCBkZXIgQXJiZWl0c3plaXQgWndpZWJlbG4genUKZXNzZW4uCk5FVkFEQToKV2VyIGF1ZiBTdGFhdHNzdHJhc3NlbiBLYW1lbGUgdHJlaWJ0LCBtdXNzIGVpbiBCdXNzZ2VsZCBiZXphaGxlbi4KTkVXIEpFUlNFWToKSW4gTWFudmlsbGUgaXN0IGVzIHZlcmJvdGVuLCBUaWVyZSBpbiBkZW4gb2VmZmVudGxpY2hlbiBQYXJrcyBtaXQKWmlnYXJldHRlbgp6dSBmdWV0dGVybi4KTkVXIE1FWElDTzoKRXMgaXN0IHZlcmJvdGVuLCBob2hlIEdlYmFldWRlIHp1IGVya2xpbW1lbiwgdW0ga29zdGVubG9zIGVpbiBCYWxsc3BpZWwgenUKdmVyZm9sZ2VuLgpORVcgWU9SSzoKRnJhdWVuLCBkaWUgaW0gS2lubyBsYXV0IGRlbiBtb2VnbGljaGVuIEF1c2dhbmcgZGVzIEZpbG1zIGRpc2t1dGllcmVuLCBkYXJmCm1hbiB1bmdlc3RyYWZ0IGRpZSBadW5nZSBoZXJhdXNzdHJlY2tlbi4KTk9SVEggQ0FST0xJTkE6CkZhbHNjaGVzIFNpbmdlbiBpbiBkZXIgT2VmZmVudGxpY2hrZWl0IGthbm4gbWl0IDE3IE1hcmsgYmVzdHJhZnQgd2VyZGVuLgpPSElPOgpJbiBCZXJlYSBtdWVzc2VuIFRpZXJlIG5hY2ggRWluYnJ1Y2ggZGVyIER1bmtlbGhlaXQgcm90ZSBSdWVja2xpY2h0ZXIKdHJhZ2VuLgpPS0xBSE9NQToKRGFzIEZhbmdlbiB2b24gV2FsZW4gd2lyZCBtaXQgWnVjaHRoYXVzIGJlc3RyYWZ0IChPa2xhaG9tYSBiZXNpdHp0IGtlaW5lbgpNZXRlciBLdWVzdGUhPykuClBFTk5TWUxWQU5JQToKSW4gUGl0dHNidXJnaCBpc3QgZXMgaWxsZWdhbCwgaW0gRWlzc2NocmFuayB6dSBzY2hsYWZlbi4KU09VVEggREFLT1RBOgpGcmF1ZW4gdW50ZXIgODAgSmFocmVuIGlzdCBlcyB2ZXJib3RlbiwganVlbmdlcmUgTWFlbm5lciBhbnp1c3ByZWNoZW4uClRFTk5FU1NFRToKCkluIEtub3h2aWxsZSBkdWVyZmVuIEZpc2NoZSBuaWNodCBtaXQgZGVtIExhc3NvIGdlZmFuZ2VuIHdlcmRlbi4KVVRBSDoKRXMgaXN0IEdlc2V0eiwgZGFzcyBtYW4gendpc2NoZW4gendlaSBUYW56ZW5kZW4gTGljaHQgc2VoZW4gbXVzcy4KVkVSTU9OVDoKQWxrb2hvbGlzY2hlIEdldHJhZW5rZSBkdWVyZmVuIGluIFJlc3RhdXJhbnRzIG5pY2h0IHZvbiBlaW5lbSBUaXNjaCB6dW0KYW5kZXJlbiB0cmFuc3BvcnRpZXJ0IHdlcmRlbi4KVklSR0lOSUE6CkZyYXVlbiBkdWVyZmVuIGluIE5vcmZvbGsgbnVyIFRhbnplbiBnZWhlbiwgd2VubiBzaWUgZWluIEtvcnNldHQgdHJhZ2VuLgpXQVNISU5HVE9OOgpLZWluZSBGcmF1IGRhcmYgYmVpbSBUYW56ZW4gbWVociBhbHMgZHJlaSBTY2hyaXR0ZSBydWVja3dhZXJ0cyB0dW4uCldBU0hJTkdUT04gRC5DLjoKRXMgaXN0IHZlcmJvdGVuLCBCdWxsZW4gYXVmIGRpZSBOYXNlIHp1IGhhdWVuLgpXSVNDT05TSU46CkluIEJhcnMgZGFyZiBuaWNodCBnZXN1bmdlbiB3ZXJkZW4uCldZT01JTkc6CkluIGRlbiBNb25hdGVuIEphbnVhciBiaXMgQXByaWwgaXN0IGVzIHZlcmJvdGVuLCBIYXNlbiB6dSBmb3RvZ3JhZmllcmVuLgoKRWluIG5ldHRlciBUdW1tZWxwbGF0eiBmdWVyIEp1cmlzdGVuLCBnZWxsPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFVTIEdlc2V0emdlYnVuZyAoR3J1bXBmLCAyOS4gTm92IDE5OTksIDIzOjI2OjQ0KToKfiMhIHJuPVJvY2h1cyBydD05NDM5MDU1OTYgcmc9d2l0emUKfiMhIHRpZD05NDM5MDU1OTYKV2VuIGRpZSBPcmlnaW5hbGUgZGF2b24gdW5kIG5vY2ggdmllbCBtZWhyIG1lcmt3dWVyZGlnZSBHZXNldHplIGludGVyZXNzaWVyZW46Cnd3dy5kdW1ibGF3cy5jb20KVmllbCBTcGFzcyBkYW1pdCEKR3J1bXBmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aW50ZXJnZWRhbmtlbiAoRmVuZGVyLCAgMS4gRGV6IDE5OTksIDEwOjQ1OjA5KToKU2NobmVlIG9kZXIgMzAgVGFnZSBiaXMgenVtIE5lcnZlbnp1c2FtbWVuYnJ1Y2g6Cgo4LiAgRGV6ZW1iZXIgMTg6MDAKRXMgaGF0IGFuZ2VmYW5nZW4genUgc2NobmVpZW4uIERlciBlcnN0ZSBTY2huZWUgaW4gZGllc2VtIEphaHIuIE1laW5lIEZyYXUgdW5kCmljaCBoYWJlbiB1bnNlcmUgQ29ja3RhaWxzICBnZW5vbW1lbiB1bmQgc3R1bmRlbmxhbmcgYW0gRmVuc3RlciBnZXNlc3NlbiB1bmQKenVnZXNlaGVuIHdpZSByaWVzaWdlLCB3ZWllIEZsb2NrZW4gdm9tIEhpbW1lbCBoZXJ1bnRlciBzY2h3ZWJlbi4gRXMgc2FoIGF1cwp3aWUgaW0gTXJjaGVuLiBTbyByb21hbnRpc2NoIC0gd2lyIGZobHRlbiB1bnMgd2llIGZyaXNjaCB2ZXJoZWlyYXRldC4gSWNoCmxpZWJlIFNjaG5lZS4KCjkuICBEZXplbWJlcgpBbHMgd2lyIHdhY2ggd3VyZGVuLCBoYXR0ZSBlaW5lIHJpZXNpZ2UsIHd1bmRlcnNjaG5lIERlY2tlIGF1cyB3ZWllbSBTY2huZWUKamVkZW4gWmVudGltZXRlciBkZXIgTGFuZHNjaGFmdCB6dWdlZGVja3QuIFdhcyBmciBlaW4gcGhhbnRhc3Rpc2NoZXIgQW5ibGljayEKS2FubiBlcyBlaW5lbiBzY2huZXJlbiBQbGF0eiBhdWYgZGVyIFdlbHQgZ2ViZW4/IEhpZXJoZXIgenUgemllaGVuIHdhciBkaWUKYmVzdGUgSWRlZSwgZGllIGljaCBqZSBpbiBtZWluZW0gTGViZW4gaGF0dGUuIEhhYmUgenVtIGVyc3RlbiBNYWwgc2VpdCBKYWhyZW4Kd2llZGVyIFNjaG5lZSBnZXNjaGF1ZmVsdCB1bmQgZmhsdGUgbWljaCB3aWVkZXIgd2llIGVpbiBrbGVpbmVyIEp1bmdlLiBIYWJlCmRpZSBFaW5mYWhydCB1bmQgZGVuIEJyZ2Vyc3RlaWcgZnJlaSBnZXNjaGF1ZmVsdC4gSGV1dGUgTmFjaG1pdHRhZyBrYW0gZGVyClNjaG5lZXBmbHVnIHZvcmJlaSB1bmQgaGF0IGRlbiBCcmdlcnN0ZWlnIHVuZCBkaWUgRWluZmFocnQgd2llZGVyIHp1Z2VzY2hvYmVuLAphbHNvIGhvbHRlIGljaCBkaWUgU2NoYXVmZWwgd2llZGVyIHJhdXMuIFdhcyBmciBlaW4gdG9sbGVzIExlYmVuIQoKMTIuICBEZXplbWJlcgpEaWUgU29ubmUgaGF0IHVuc2VyZW4gZ2FuemVuIHNjaG5lbiBTY2huZWUgZ2VzY2htb2x6ZW4uIFdhcyBmciBlaW5lCkVudHR1c2NodW5nLiBNZWluIE5hY2hiYXIgc2FndCwgZGFzcyBpY2ggbWlyIGtlaW5lIFNvcmdlbiBtYWNoZW4gc29sbCwgd2lyCndlcmRlbiBkZWZpbml0aXYgZWluZSB3ZWllIFdlaWhuYWNodCBoYWJlbi4gS2VpbiBTY2huZWUgenUgV2VpaG5hY2h0ZW4gd3JlCnNjaHJlY2tsaWNoISBCb2Igc2FndCwgZGFzcyB3aXIgYmlzIHp1bSBKYWhyZXNlbmRlIHNvIHZpZWwgU2NobmVlIGhhYmVuCndlcmRlbiwgZGFzcyBpY2ggbmllIHdpZWRlciBTY2huZWUgc2VoZW4gd2lsbC4gSWNoIGdsYXViZSBuaWNodCwgZGFzcyBkYXMKbWdsaWNoIGlzdC4gQm9iIGlzdCBzZWhyIG5ldHQgLSBpY2ggYmluIGZyb2gsIGRhc3MgZXIgdW5zZXIgTmFjaGJhciBpc3QuCgoxNC4gIERlemVtYmVyClNjaG5lZSwgd3VuZGVydm9sbGVyIFNjaG5lZSEgMzAgY20gbGV0enRlIE5hY2h0LiBEaWUgVGVtcGVyYXR1ciBpc3QgYXVmIC0yMApHcmFkIGdlc3Vua2VuLiBEaWUgS2x0ZSBsc3N0IGFsbGVzIGdsaXR6ZXJuLiBEZXIgV2luZCBuYWhtIG1pciBkZW4gQXRlbSwgYWJlcgppY2ggaGFiZSBtaWNoIGJlaW0gU2NoYXVmZWxuIGF1Zmdld3JtdC4gRGFzIGlzdCBkYXMgTGViZW4hIERlciBTY2huZWVwZmx1ZyBrYW0KaGV1dGUgbmFjaG1pdHRhZyB6dXJjayB1bmQgaGF0IHdpZWRlciBhbGxlcyB6dWdlc2Nob2Jlbi4gTWlyIHdhciBuaWNodCBrbGFyLApkYXNzIGljaCBzb3ZpZWwgd3JkZSBzY2hhdWZlbG4gbXNzZW4sIGFiZXIgc28ga29tbWUgaWNoIHdpZWRlciBpbiBGb3JtLgpXbnNjaHRlIGljaCB3cmRlIG5pY2h0IHNvIFB1c3RlbiB1bmQgU2NobmF1ZmVuLgoKMTUuICBEZXplbWJlcgo2MCBjbSBWb3JoZXJzYWdlLiBIYWJlIG1laW5lbiBLb21iaSB2ZXJzY2hldWVydCB1bmQgZWluZW4gSmVlcCBnZWthdWZ0LiBVbmQKV2ludGVycmVpZmVuIGZyIGRhcyBBdXRvIG1laW5lciBGcmF1IHVuZCB6d2VpIEV4dHJhLSBTY2hhdWZlbG4uIEhhYmUgZGVuCktobHNjaHJhbmsgYXVmZ2VmbGx0LiBNZWluZSBGcmF1IHdpbGwgZWluZW4gSG9sem9mZW4sIGZhbGxzIGRlciBTdHJvbSBhdXNmbGx0LgpEYXMgaXN0IGxjaGVybGljaCAtIHNjaGxpZWxpY2ggc2luZCB3aXIgbmljaHQgaW4gQWxhc2thLgoKMTYuICBEZXplbWJlcgpFaXNzdHVybSBoZXV0ZSBNb3JnZW4uIEJpbiBpbiBkZXIgRWluZmFocnQgYXVmIGRlbiBBcnNjaCBnZWZhbGxlbiwgYWxzIGljaApTYWx6IHN0cmV1ZW4gd29sbHRlLiBUdXQgaGxsaXNjaCB3ZWguIE1laW5lIEZyYXUgaGF0IGVpbmUgU3R1bmRlIGdlbGFjaHQuIERhcwpmaW5kZSBpY2ggemllbWxpY2ggZ3JhdXNhbS4KCjE3LiAgRGV6ZW1iZXIKSW1tZXIgbm9jaCB3ZWl0IHVudGVyIE51bGwuIERpZSBTdHJhZW4gc2luZCB6dSB2ZXJlaXN0LCB1bSBpcmdlbmR3b2hpbiB6dQprb21tZW4uIERlciBTdHJvbSB3YXIgNSBTdHVuZGVuIHdlZy4gTXVzc3RlIG1pY2ggaW4gRGVja2VuIHdpY2tlbG4sIHVtIG5pY2h0Cnp1IGVyZnJpZXJlbi4gS2VpbiBGZXJuc2VoZXIuIE5pY2h0cyB6dSB0dW4gYWxzIG1laW5lIEZyYXUgYW56dXN0YXJyZW4gdW5kIHp1CnZlcnN1Y2hlbiwgc2llIHp1IGlycml0aWVyZW4uIEdsYXViZSwgd2lyIGh0dGVuIGVpbmVuIEhvbHpvZmVuIGthdWZlbiBzb2xsZW4sCndyZGUgZGFzIGFiZXIgbmllIHp1Z2ViZW4uIEljaCBoYXNzZSBlcywgd2VubiBzaWUgcmVjaHQgaGF0ISBJY2ggaGFzc2UgZXMsIGluCm1laW5lbSBlaWdlbmVuIFdvaG56aW1tZXIgenUgZXJmcmllcmVuIQoKMjAuIERlemVtYmVyCkRlciBTdHJvbSBpc3Qgd2llZGVyIGRhLCBhYmVyIG5vY2ggbWFsIDQwIGNtIHZvbiBkZW0gdmVyZGFtbXRlbiBaZXVnIGxldHp0ZQpOYWNodCEgTm9jaCBtZWhyIHNjaGF1ZmVsbi4gSGF0IGRlbiBnYW56ZW4gVGFnIGdlZGF1ZXJ0LiBEZXIgYmVzY2hpc3NlbmUKU2NobmVlcGZsdWcga2FtIHp3ZWltYWwgdm9yYmVpLiBIYWJlIHZlcnN1Y2h0IGVpbmVzIGRlciBOYWNoYmFyc2tpbmRlciB6dW0KU2NoYXVmZWxuIHp1IGJlcnJlZGVuLiBBYmVyIGRpZSBzYWdlbiwgc2llIGh0dGVuIGtlaW5lIFplaXQsIHdlaWwgc2llIEhvY2tleQpzcGllbGVuIG1zc2VuLiBJY2ggZ2xhdWJlLCBkYXNzIGRpZSBsZ2VuLiBXb2xsdGUgZWluZSBTY2huZWVmcnNlIGltIEJhdW1hcmt0CmthdWZlbi4gRGllIGhhdHRlbiBrZWluZSBtZWhyLiBLcmllZ2VuIGVyc3QgaW0gTXJ6IHdpZWRlciB3ZWxjaGUgcmVpbi4gSWNoCmdsYXViZSwgZGFzcyBkaWUgbGdlbi4gQm9iIHNhZ3QsIGRhc3MgaWNoIHNjaGF1ZmVsbiBtdXNzIG9kZXIgZGllIFN0YWR0IG1hY2h0CmVzIHVuZCBzY2hpY2t0IG1pciBkaWUgUmVjaG51bmcuIEljaCBnbGF1YmUsIGRhc3MgZXIgbGd0LgoKMjIuICBEZXplbWJlcgpCb2IgaGF0dGUgcmVjaHQgbWl0IHdlaWVyIFdlaWhuYWNodCwgd2VpbCBoZXV0ZSBOYWNodCBub2NoIG1hbCAzMCBjbSB2b24gZGVtCndlaWVuIFpldWcgZ2VmYWxsZW4gaXN0IHVuZCBlcyBpc3Qgc28ga2FsdCwgZGFzcyBlcyBiaXMgQXVndXN0IG5pY2h0IHNjaG1lbHplbgp3aXJkLiBFcyBoYXQgNDUgTWludXRlbiBnZWRhdWVydCwgYmlzIGljaCBmZXJ0aWcgYW5nZXpvZ2VuIHdhciB6dW0gU2NoYXVmZWxuCnVuZCBkYW5uIG11c3N0ZSBpY2ggcGlua2Vsbi4gQWxzIGljaCBtaWNoIHNjaGxpZWxpY2ggYXVzZ2V6b2dlbiwgZ2VwaW5rZWx0IHVuZAp3aWVkZXIgYW5nZXpvZ2VuIGhhdHRlLCB3YXIgaWNoIHp1IG1kZSB6dW0gU2NoYXVmZWxuLiBIYWJlIHZlcnN1Y2h0IGZyIGRlbgpSZXN0IGRlcyBXaW50ZXJzIEJvYiBhbnp1aGV1ZXJuLCBkZXIgZWluZSBTY2huZWVmcnNlIGFuIHNlaW5lbSBMYXN0d2FnZW4gaGF0LAphYmVyIGVyIHNhZ3QsIGRhc3MgZXIgenUgdmllbCB6dSB0dW4gaGF0LiBJY2ggZ2xhdWJlLCBkYXNzIGRlciBXaWNoc2VyIGxndC4KCjIzLiAgRGV6ZW1iZXIKTnVyIDEwIGNtIFNjaG5lZSBoZXV0ZS4gVW5kIGVzIGhhdCBzaWNoIGF1ZiAwIEdyYWQgZXJ3cm10LiBNZWluZSBGcmF1IHdvbGx0ZSwKZGFzcyBpY2ggaGV1dGUgZGFzIEhhdXMgZGVrb3JpZXJlLiBJc3QgZGllIGJla2xvcHB0PyBJY2ggaGFiZSBrZWluZSBaZWl0IC0gaWNoCm11c3MgU0NIQVVGRUxOISEhIFdhcnVtIGhhdCBzaWUgZXMgbWlyIG5pY2h0IHNjaG9uIHZvciBlaW5lbSBNb25hdCBnZXNhZ3Q/IFNpZQpzYWd0LCBzaWUgaGF0LCBhYmVyIGljaCBnbGF1YmUsIGRhc3Mgc2llIGxndC4KCjI0LiAgRGV6ZW1iZXIKMjAgWmVudGltZXRlci4gRGVyIFNjaG5lZSBpc3Qgdm9tIFNjaG5lZXBmbHVnIHNvIGZlc3QgenVzYW1tZW5nZXNjaG9iZW4sIGRhc3MKaWNoIGRpZSBTY2hhdWZlbCBhYmdlYnJvY2hlbiBoYWJlLiBEYWNodGUgaWNoIGtyaWVnZSBlaW5lbiBIZXJ6YW5mYWxsLiBGYWxscwppY2ggamVtYWxzIGRlbiBBcnNjaCBrcmllZ2UgZGVyIGRlbiBTY2huZWVwZmx1ZyBmaHJ0LCB6aWVoZSBpY2ggaWhuIGFuIHNlaW5lbgpFaWVybiBkdXJjaCBkZW4gU2NobmVlLiBJY2ggd2VpIGdlbmF1LCBkYXNzIGVyIHNpY2ggaGludGVyIGRlciBFY2tlIHZlcnN0ZWNrdAp1bmQgd2FydGV0IGJpcyBpY2ggbWl0IGRlbSBTY2hhdWZlbG4gZmVydGlnIGJpbi4gVW5kIGRhbm4ga29tbXQgZXIgbWl0IDE1MAprbS9oIGRpZSBTdHJhZSBydW50ZXIgZ2VyYXN0IHVuZCB3aXJmdCB0b25uZW53ZWlzZSBTY2huZWUgYXVmIGRpZSBTdGVsbGUsIHdvCmljaCBnZXJhZGUgd2FyLiBIZXV0ZSBOYWNodCB3b2xsdGUgbWVpbmUgRnJhdSBtaXQgbWlyIFdlaWhuYWNodHNsaWVkZXIgc2luZ2VuCnVuZCBHZXNjaGVua2UgYXVzcGFja2VuLCBhYmVyIGljaCBoYXR0ZSBrZWluZSBaZWl0LiBNdXNzdGUgbmFjaCBkZW0KU2NobmVlcGZsdWcgQXVzc2NoYXUgaGFsdGVuLgoKMjUuICBEZXplbWJlcgpGcm9oZSBXZWlobmFjaHRlbi4gNjAgWmVudGltZXRlciBtZWhyIHZvbiBkZXIgISo/I0AkLiBFaW5nZXNjaG5laXQuIERlcgpHZWRhbmtlIGFuIFNjaG5lZXNjaGF1ZmVsbiBsc3N0IG1laW4gQmx1dCBrb2NoZW4uIEdvdHQsIGljaCBoYXNzZSBTY2huZWUhIERhbm4Ka2FtIGRlciBTY2huZWVwZmx1Z2ZhaHJlciB2b3JiZWkgdW5kIGhhdCBuYWNoIGVpbmVyIFNwZW5kZSBnZWZyYWd0LiBJY2ggaGFiCmlobSBtZWluZSBTY2hhdWZlbCBiZXIgZGVuIEtvcGYgZ2V6b2dlbi4gTWVpbmUgRnJhdSBzYWd0LCBkYXNzIGljaCBzY2hsZWNodGUKTWFuaWVyZW4gaGFiZS4gSWNoIGdsYXViZSwgZGFzcyBzaWUgZWluZSBJZGlvdGluIGlzdC4gV2VubiBpY2ggbWlyIG5vY2ggZWlubWFsCldvbGZnYW5nIFBldHJ5IGFuaHJlbiBtdXNzLCB3ZXJkZSBpY2ggc2llIHVtYnJpbmdlbi4KCjI2LiAgRGV6ZW1iZXIKSW1tZXIgbm9jaCBlaW5nZXNjaG5laXQuIFdhcnVtIHVtIGFsbGVzIGluIGRlciBXZWx0IHNpbmQgd2lyIGhpZXJoZXIgZ2V6b2dlbj8KRXMgd2FyIGFsbGVzIElIUkUgSWRlZS4gU2llIGdlaHQgbWlyIGVjaHQgYXVmIGRpZSBOZXJ2ZW4uCgoyNy4gRGV6ZW1iZXIKRGllIFRlbXBlcmF0dXIgaXN0IGF1ZiAtMzAgR3JhZCBnZWZhbGxlbiB1bmQgZGllIFdhc3NlcnJvaHJlIHNpbmQgZWluZ2Vmcm9yZW4uCgoyOC4gRGV6ZW1iZXIKRXMgaGF0IHNpY2ggYXVmIC01IEdyYWQgZXJ3cm10LiBJbW1lciBub2NoIGVpbmdlc2NobmVpdC4gRElFIEFMVEUgTUFDSFQgTUlDSApWRVJSQ0tUISEhCgoyOS4gRGV6ZW1iZXIKTm9jaCBtYWwgMzAgWmVudGltZXRlci4gQm9iIHNhZ3QsIGRhc3MgaWNoIGRhcyBEYWNoIGZyZWkgc2NoYXVmZWxuIG11c3MsIG9kZXIKZXMgd2lyZCBlaW5zdHJ6ZW4uIERhcyBpc3QgZGFzIERtbGljaHN0ZSwgd2FzIGljaCBqZSBnZWhydCBoYWJlLiBGciB3aWUgYmxkCmhsdCBkZXIgbWljaCBlaWdlbnRsaWNoPwoKMzAuIERlemVtYmVyCkRhcyBEYWNoIGlzdCBlaW5nZXN0cnp0LiBEZXIgU2NobmVlcGZsdWdmYWhyZXIgdmVya2xhZ3QgbWljaCBhdWYgNTAuMDAwIERNClNjaG1lcnplbnNnZWxkLiBNZWluZSBGcmF1IGlzdCB6dSBpaHJlciBNdXR0ZXIgZ2VmYWhyZW4uIDI1IFplbnRpbWV0ZXIKdm9yaGVyZ2VzYWd0LgoKMzEuIERlemVtYmVyCkhhYmUgZGVuIFJlc3Qgdm9tIEhhdXMgYW5nZXN0ZWNrdC4gTmllIG1laHIgU2NoYXVmZWxuLgoKOC4gIEphbnVhcgpNaXIgZ2VodCBlcyBndXQuIEljaCBtYWcgZGllIGtsZWluZW4gUGlsbGVuLCBkaWUgc2llIG1pciBkYXVlcm5kIGdlYmVuLiBXYXJ1bQpiaW4gaWNoIGFuIGRhcyBCZXR0IGdlZmVzc2VsdD8KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKVmllbGUgR3J1ZXNzZSB1bmQgZnJvaGUgQWR2ZW50c3plaXQuLi4KCkZlbmRlcgoKUC5TLiBJY2ggaGF0dGUgbGVpZGVyIGtlaW5lIFplaXQsIGRpZSBnYW56ZW4gVW1sYXV0ZSB6dSBhZW5kZXJuLCBzb3JyeS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB3aW50ZXJnZWRhbmtlbiAoUnVtYXRhLCAgMy4gRGV6IDE5OTksIDIxOjUxOjA1KToKfiMhIHJuPUZlbmRlciBydD05NDQwNDE1MDkgcmc9d2l0emUKfiMhIHRpZD05NDQwNDE1MDkKPlAuUy4gSWNoIGhhdHRlIGxlaWRlciBrZWluZSBaZWl0LCBkaWUgZ2FuemVuIFVtbGF1dGUgenUgYWVuZGVybiwgc29ycnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eCkhldWNobGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IHdpbnRlcmdlZGFua2VuIChBdG96LCAgNi4gRGV6IDE5OTksIDE0OjI5OjU3KToKfiMhIHJuPVJ1bWF0YSBydD05NDQyNTQyNjUgcmc9d2l0emUKfiMhIHRpZD05NDQwNDE1MDkKQWVoIHVuZCB3byBiaXR0ZSBpc3QgaW4gJ3NvcnJ5JyBlaW4gVW1sYXV0PwoKQXRveiAtIGJyYXVjaHQgd29obCBuZXVlIExpbnNlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmllciB2cy4gRnJhdWVuIDspIChTdWJsaW1lLCAgNy4gRGV6IDE5OTksIDIwOjE5OjQ4KToKICAgICAxMCBndXRlIEdydWVuZGUsIHdhcnVtIGVpbiBCaWVyIGJlc3NlciBhbHMgZWluZSBGcmF1IGlzdCA6IAoKMS4gRWluIEJpZXIgd2lyZCBuaWUgZWlmZXJzdWVjaHRpZywgd2VubiBEdSBlaW4gYW5kZXJzIEJpZXIgbmltbXN0LgoyLiBJbiBlaW5lciBCYXIga2FubnN0IER1IGltbWVyIGVpbiBCaWVyIG1pdG5laG1lbi4KMy4gRWluIEthdGVyIGdlaHQgd2VnLgo0LiBFaW4gQmllciB3aXJkIG5pY2h0IHZlcmFlcmdlcnQsIHdlbm4gbWFuIG1pdCBlaW5lciBGYWhuZSBuYWNoIEhhdXNlIGtvbW10Lgo1LiBEdSBicmF1Y2hzdCBlaW4gQmllciBuaWNodCB6dSB3YXNjaGVuLCBiZXZvciBlcyBndXQgc2NobWVja3QuCjYuIEVpbiBCaWVyIGthbm4gbWFuIGRlbiBnYW56ZW4gTW9uYXQgbGFuZyBnZW5pZXNzZW4uCjcuIEVpbiBCaWVyIGJyYXVjaHQgbWFuIG5pY2h0IGF1c2Z1ZWhyZW4gdW5kIGJld2lydGVuLgo4LiBXZW5uIER1IG1pdCBlaW5lbSBCaWVyIGZlcnRpZyBiaXN0LCBiZWtvbW1zdCBEdSBpbW1lciBub2NoIEZsYXNjaGVucGZhbmQuCjkuIEVpbiBzdGVyaWxlcyBCaWVyIGlzdCBlaW4gZ3V0ZXMgQmllci4KMTAuRHUga2FubnN0IERpciBzaWNoZXIgc2VpbiwgRHUgYmlzdCBkZXIgZXJzdGUsIGRlciBkYXMgQmllciBoYXQuCgpsaWViZSBncnVlc3NlClN1YmxpbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCaWVyIHZzLiBGcmF1ZW4gOykgKE1vbnRhbnVzLCAgNy4gRGV6IDE5OTksIDIwOjI5OjUyKToKfiMhIHJuPVN1YmxpbWUgcnQ9OTQ0NTk0Mzg4IHJnPXdpdHplCn4jISB0aWQ9OTQ0NTk0Mzg4CiAgICAgMTAgZ3V0ZSBHcnVlbmRlLCB3YXJ1bSBlaW4gQmllciBiZXNzZXIgYWxzIGVpbmUgRnJhdSBpc3QgOgogICAgICAxMCBub2NoIGJlc3NlciBHcnVlbmRlLCB3YXJ1bSBkYXMgVW5mdWcgaXN0CgoxLiBFaW4gQmllciB3aXJkIG5pZSBlaWZlcnN1ZWNodGlnLCB3ZW5uIER1IGVpbiBhbmRlcnMgQmllciBuaW1tc3QuCkZhbHNjaC4gV2VubiBEdSBzbyA2IGJpcyA3IExpdGVyIEJpZXIgaW0gTWFnZW4gaGFzdCwgd2VyZGVuIGRpZSB6aWVtbGljaAplaWZlcnN1ZWNodGlnLCB3ZW5uIER1IERpciBub2NoIGVpbnMgbmltbXN0LiBVbmQgZGFubiBoYXVlbiBzaWUgRGlyIGFiLiBPYmVuCmVudGxhbmcuCgoyLiBJbiBlaW5lciBCYXIga2FubnN0IER1IGltbWVyIGVpbiBCaWVyIG1pdG5laG1lbi4KRmFsc2NoLiBCYXJzIGhhYmVuIFNwZXJyc3R1bmRlLiAKCjMuIEVpbiBLYXRlciBnZWh0IHdlZy4KTmEgdW5kPyBMaWViZXNrdW1tZXIgYXVjaC4KCjQuIEVpbiBCaWVyIHdpcmQgbmljaHQgdmVyYWVyZ2VydCwgd2VubiBtYW4gbWl0IGVpbmVyIEZhaG5lIG5hY2ggSGF1c2Uga29tbXQuCk5hIHVuZD8gV2VubiBlcyBkaWUgRmFobmUgZGVzIHJpY2h0aWdlbiBWZXJlaW5zIGlzdCAoIkhhY2gsIGRhIHNwaWVsdCBkb2NoIGRlcgprbGVpbmUgbWl0IGRlbSBzdWVzc2VuIEhpbnRlcm4hIiksIGJlc2Nod2VyZW4gc2ljaCBhdWNoIEZyYXVlbiBuaWNodC4KCjUuIER1IGJyYXVjaHN0IGVpbiBCaWVyIG5pY2h0IHp1IHdhc2NoZW4sIGJldm9yIGVzIGd1dCBzY2htZWNrdC4KTmFqYSAtIGRhcyBrb21tdCBhdWYgZGFzIEJpZXIgYW4uIEtvZWxzY2ggbXVzc3QgbWFuIHp1bSBCZWlzcGllbCB3YXNjaGVuLCBhbQpiZXN0ZW4gc29ncmEgZ2FueiBtaXQgV2Fzc2VyIGVyc2V0emVuLCBiZXZvciBlcyBnZW5pc3NiYXIgaXN0LgoKNi4gRWluIEJpZXIga2FubiBtYW4gZGVuIGdhbnplbiBNb25hdCBsYW5nIGdlbmllc3Nlbi4KRmFsc2NoLiBFaW4gQmllciBtdXNzIHNjaG5lbGVsciBnZXRydW5rZW4gYWxzIGdlemFwZnQgc2Vpbi4gQWxsZXMgYW5kZXJlCnNjaG1lY2t0IGFiZ2VzdGFuZGVuLgoKNy4gRWluIEJpZXIgYnJhdWNodCBtYW4gbmljaHQgYXVzZnVlaHJlbiB1bmQgYmV3aXJ0ZW4uCkhldXR6dXRhZ2Ugc2luZCBGcmF1ZW4gc28gZW1hbnppcGllcnQsIGRpZSBmdWVocmVuIF9EaWNoXyBzY2huZWxsZXIgYXVzLCBhbHMKRGlyIGxpZWIgaXN0LiBOYWphLCBEaWNoIHZpZWxsZWljaHQgbmljaHQuCgo4LiBXZW5uIER1IG1pdCBlaW5lbSBCaWVyIGZlcnRpZyBiaXN0LCBiZWtvbW1zdCBEdSBpbW1lciBub2NoIEZsYXNjaGVucGZhbmQuCkZhbHNjaC4gTnVyIGluIGV0d2EgMTUlIGFsbGVyIEZsbGUuCgo5LiBFaW4gc3RlcmlsZXMgQmllciBpc3QgZWluIGd1dGVzIEJpZXIuCkZhbHNjaC4gRWluIGZyaXNjaGVzIEJpZXIgaXN0IGVpbiBndXRlcyBCaWVyLiBVbmQgaW4gZGVuIDcgTWludXRlbiBnZWh0IGVpbgpndXRlciBUZWlsIGRlciBTdGVyaWxpdGFldCBmbG9ldGVuLgoKMTAuRHUga2FubnN0IERpciBzaWNoZXIgc2VpbiwgRHUgYmlzdCBkZXIgZXJzdGUsIGRlciBkYXMgQmllciBoYXQuCkZhbHNjaC4gQnJpbmtob2ZmcyBOdW1tZXIgMSBzY2htZWNrdCB6dW0gQmVpc3BpZWwgc28sIGFscyBoYWV0dGVuIGRhIHNjaG9uCmRyZWkgcmVpbmdlc3B1Y2t0LgoKLU1vbnRhbnVzLiBIYXQgZGFzIEJpZXJrZW5uZXItRGlwbG9tLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5hbWVuIGVpbiAoR3JpbW1ib3JuLCAxMC4gRGV6IDE5OTksIDIxOjI4OjQwKToKfiMhIG9uPVpvbWJ5IG90PTk0NDg1NzYxOCBvZz1hbGxnZW1laW5lcwpzY2hhdQpxCnEKaApxCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEb3duIHVuZGVyIChHdWlsZG8sIDIwLiBEZXogMTk5OSwgMTc6Mzc6NDMpOgpHZXJhZGUgcGVyIGVtYWlsIGJla29tbWVuOgoKSXQgc2VlbXMgdGhlIEF1c3RyYWxpYW4gRGVmZW5zZSBTY2llbmNlIGFuZCBUZWNobm9sb2d5IE9yZ2FuaXphdGlvbiB3YW50ZWQKdG8gaW5jcmVhc2UgdGhlIHJlYWxpc20gb2YgdGhlaXIgdmlydHVhbCByZWFsaXR5IHNpbXVsYXRvcnMgdXNlZCBmb3IKaGVsaWNvcHRlciBwaWxvdCB0cmFpbmluZy4gT25lIG9mIHRoZSByZXF1aXJlbWVudHMgd2FzIHRvIGFkZCBoZXJkcyBvZgprYW5nYXJvb3MgdG8gdGhlIGxhbmRzY2FwZSwgc2luY2UgZGlzdHVyYmVkIGFuaW1hbHMgbWlnaHQgZ2l2ZSBhd2F5IGEKaGVsaWNvcHRlcidzIHBvc2l0aW9uLiBUaGUgcHJvZ3JhbW1pbmcgc3BlY2lmaWNhdGlvbiB3YXMgdG8gbWFrZSB0aGUKaW1hZ2VzIGxpZmVsaWtlIGFuZCBtb2RlbCB0aGUga2FuZ2Fyb28ncyByZWFjdGlvbiB0byBhbiBhcHByb2FjaGluZwpoZWxpY29wdGVyLgpCZWluZyBlZmZpY2llbnQgZGV2ZWxvcGVycywgdGhlIHByb2dyYW1tZXJzIGNvcGllZCBzb21lIGNvZGUgb3JpZ2luYWxseQp1c2VkIHRvIG1vZGVsIGh1bWFuIHNvbGRpZXIgcmVhY3Rpb25zIHVuZGVyIHRoZSBzYW1lIGNvbmRpdGlvbnMuIFRoZQpwcm9ncmFtbWVycyBjaGFuZ2VkIHRoZSBpbWFnZSBvbiB0aGUgc2NyZWVuIGZyb20gYW4gaW5mYW50cnkgc29sZGllciB0byBhCmthbmdhcm9vIGFuZCBpbmNyZWFzZWQgaXRzIHJlYWN0aW9uIGFuZCBydW5uaW5nIHNwZWVkLiBUaGUgbmV3IGNvZGUgd2FzCnB1dCBpbnRvIHByb2R1Y3Rpb24gaW4gdGhlIHNpbXVsYXRvcnMuCkVhZ2VyIHRvIGRlbW9uc3RyYXRlIHRoZSBzaW11bGF0b3JzIGZvciBzb21lIHZpc2l0aW5nIEFtZXJpY2FuIHBpbG90cywgdGhlCkF1c3RyYWxpYW4gcGlsb3RzIGJ1enplZCB0aGUgaGVyZCBvZiB2aXJ0dWFsIGthbmdhcm9vcy4gQXMgZXhwZWN0ZWQsIHRoZQprYW5nYXJvb3Mgc2NhdHRlcmVkLiBNdWNoIHRvIHRoZSBwaWxvdHMnIHN1cnByaXNlLCBob3dldmVyLCB0aGUga2FuZ2Fyb29zCnJlZ3JvdXBlZCBiZWhpbmQgYSBoaWxsLCByZWFwcGVhcmVkLCBhbmQgbGF1bmNoZWQgYSBiYXJyYWdlIG9mIFN0aW5nZXIKbWlzc2lsZXMgYXQgdGhlIGhlbGljb3B0ZXIhIFRoZSBwcm9ncmFtbWVycyBmb3Jnb3QgdG8gcmVtb3ZlIHRoYXQgcGFydCBvZgp0aGUgY29kZSBpbiB0aGUgaW5mYW50cnkgc29sZGllciBvYmplY3QhCkFsbCBpcyB3ZWxsIHRoYXQgZW5kcyB3ZWxsLCBob3dldmVyLCBhbmQgdHJhaW5pbmcgc3VwZXJ2aXNvcnMgcmVwb3J0IHRoYXQKdGhlIHBpbG90cyBmcm9tIHRoYXQgcG9pbnQgb253YXJkIGhhdmUgc3RyaWN0bHkgYXZvaWRlZCB0aGUgdmlydHVhbAprYW5nYXJvb3MgLS0gd2hpY2ggaXMgd2hhdCB0aGV5IHdlcmUgc3VwcG9zZWQgdG8gZG8gaW4gdGhlIGZpcnN0IHBsYWNlLgpJZiB0aGVyZSBpcyBhIG1vcmFsIHRvIHRoaXMgc3RvcnksIEkgc3VwcG9zZSBpdCBpbnZvbHZlcyBzdGF5aW5nIGNsZWFyIG9mCm11cmRlcm91cyBtYXJzdXBpYWwgbWlsaXRhbnRzIHdpdGggbWlzc2lsZXMhCgoKR3J1c3MsCkd1aWxkbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXV0b3JlbiB1bmQgZGFzIEphaHIgMjAwMCAoSGF0ZSwgMjIuIERleiAxOTk5LCAxODoxMjozNSk6CkdlcmFkZSBnZWZ1bmRlbjogKGdhbnogbmV1ZXMgQnVjaCEpCk90aGVybGFuZCAzLjoKQmVyZyBhdXMgc2Nod2FyemVtIEdsYXMuLCAgICAgCktMRVRUIENPVFRBOyAgICAgICAgCkVyc2NoZWludW5nc2phaHI6IDE0OTksIElTQk4gMy02MDgtOTM0MjMtNSwgIApETSA0OS45MCwgT0VTIDM1MS4wMywgU0ZSIDQxLjExLCBMaWVmZXJ6ZWl0IDEtMiBXb2NoZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBdXRvcmVuIHVuZCBkYXMgSmFociAyMDAwIChGZXVlcndlaHIsIDIyLiBEZXogMTk5OSwgMTk6MTg6NDcpOgp+IyEgcm49SGF0ZSBydD05NDU4ODI3NTUgcmc9d2l0emUKfiMhIHRpZD05NDU4ODI3NTUKSGEhCgpEYXMgaXN0IG5pY2h0IHp1bSBMYWNoZW4uIEljaCB3aWxsIGRpZSB2ZXJkYW1tdGUgUGFwZXJiYWNrLUF1c2dhYmUhIDopCgogICAxMTIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEF1dG9yZW4gdW5kIGRhcyBKYWhyIDIwMDAgKEhhdGUsIDIzLiBEZXogMTk5OSwgMTA6Mjk6MzgpOgp+IyEgcm49RmV1ZXJ3ZWhyIHJ0PTk0NTg4NjcyNyByZz13aXR6ZQp+IyEgdGlkPTk0NTg4Mjc1NQpEYXMgcGFwZXJiYWNrIGdpYnRzIGluIEVuZ2xpc2NoIHNjaG9uIDotKQoKSGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5pY2h0IGRpcmVrdCBlaW4gYXJ6dHdpdHogKE11cGZlbCwgMjUuIERleiAxOTk5LCAwMDo0MjowMCk6CmZyYXUgd2FyIGJlaW0gYXJ6dC4ga29tcGxldHR1bnRlcnN1Y2h1bmcuIGJlZnVuZDogYWxsZXMgb2suIHNpZSBrb21tdCBuYWNoCmhhdXNlLi4uCmVyOiB3YXJzdGUgYmVpbSBhcnp0PwpzaWU6IGphLiBpc3QgYWxsZXMgb2suCmVyOiBlY2h0PyB1bmQgd2FzIGlzdCBtaXQgZGVpbmVtIDUwamFlaHJpZ2VuIGFyc2NoPwpzaWU6IHVlYmVyIGRpY2ggaGFiZW4gd2lyIG5pY2h0IGdlc3Byb2NoZW4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplbGVmYW50IChNdXBmZWwsIDI1LiBEZXogMTk5OSwgMDA6NDM6MTQpOgp0cmlmZnRuIGVsZWZhbnQgbiBuYWNrdGVuIG1hbm4uCnNhZ3QgZGVyIGVsZWZhbnQgInVuZCBkYW1pdCBrYW5uc3QgZHUgdHJpbmtlbj8iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFjaHRyYWcgenVyIFdlaWhuYWNodHN6ZWl0IChHcmltbWJvcm4sICAyLiBKYW4gMjAwMCwgMTE6MTA6MTApOgp+IyEgb249QXNoYW4gb3Q9OTQ2NjAyODMzIG9nPWFsbGdlbWVpbmVzCk1vaW4sCmF1Y2ggaWNoIGhhYmUgZGllc2VzbWFsIGVpbmUga2xlaW5lIChXZWlobmFjaHRzKWdlc2NoaWNodGUgenUgZXJ6YWVobGVuLCBkaWUKendhciBuaWNodCBhdWYgbWVpbmVtIE1pc3QgZ2V3YWNoc2VuIGlzdCwgYWJlciBkaWUgaWNoIHNvIGd1dCBmaW5kZSwgZGFzcyBpY2gKc2llIGRlbmVuLCBkaWUgc2llIG5vY2ggbmljaHQga2VubmVuLCBuaWNodCB2b3JlbnRoYWx0ZW4gbW9lY2h0ZToKCgpBZHZlbnQsIEFkdmVudCBlaW4gS3JhZnR3ZXJrIGJyZW5udApBdWNoIGluIGRpZXNlbSBKYWhyIGhhZXVmZW4gc2ljaCBkaWUgS2F0YXN0cm9waGVubWVsZHVuZ2VuIHZvbiBFcmVpZ25pc3NlbiwKZGllIGF1ZiBkZW0gZXh6ZXNzaXZlbiBHZWJyYXVjaCB2b24gV2VpaG5hY2h0c2Rla29yYXRpb24genVyY2t6dWZocmVuIHNpbmQuCkxlc2VuIFNpZSBoaWVyLCB3aWUgZHJhbWF0aXNjaCBzaWNoIGRpZSBFcmVpZ25pc3NlIGFtIGVyc3RlbiBBZHZlbnQKdWViZXJzY2hsdWdlbjoKClNvbm50YWcsIDEuIEFkdmVudCwgMTAgVWhyCkluIGRlciBSZWloZW5oYXVzc2llZGx1bmcgT25rZWxzdGllZyBsYWVzc3Qgc2ljaCBkaWUgUmVudG5lcmluIEVybmEgQi4gZHVyY2gKaWhyZW4gRW5rZWwgTm9yYmVydCBkcmVpIEVsZWt0cm9rZXJ6ZW4gYXVmIGRlciBGZW5zdGVyYmFuayBpaHJlcyBXb2huemltbWVycwppbnN0YWxsaWVyZW4uVm9yd2VpaG5hY2h0bGljaGUgU3RpbW11bmcgYnJlaXRldCBzaWNoIGF1cy4KCjEwOjE0IFVocjoKQmVpbSBFbnRsZWVyZW4gZGVzIE11ZWxsZWltZXJzIGJlb2JhY2h0ZXQgTmFjaGJhciBPdHRmcmllZCBQLiBkaWUgcHJvdm9rYW50ZQpXZWlobmFjaHRzb2ZmZW5zaXZlIGltIE5lYmVtaGF1cyB1bmQga29udGVydCB1bWdlaGVuZCBtaXQgZGVyIGF1ZnN0ZWxsdW5nCmVpbmVzIHplaG5hcm1pZ2VuIGRhZW5pc2NoZW4gS2VyemVuc2V0cyB6dSBqZSAxNSBXYXR0IGltIEt1ZWNoZW5mZW5zdGVyLgpTdHVuZGVuIHNwYWV0ZXIgZXJzdHJhaGx0IGRpZSBnZXNhbXRlIFNpZWRsdW5nIE9ua2Vsc3RpZWcgaW0gYmVzaW5ubGljaGVuIApHbGFueiB2b24gMTM0IEZlbnN0ZXJkZWtvcmF0aW9uZW4uCjE5OjAzIFVocjoKSW0gMTQgS2lsb21ldGVyIGVudGZlcm50ZW4gS29obGVrcmFmdHdlcmsgU290dHJvcC1Ib2NrbGFnZSByZWdpc3RyaWVydCBkZXIKd2FjaGhhYmVuZGUgSW5nZW5ldXIgZWluZW4gRGVmZWt0IGRlciBTdHJvbW1lc3NnZXJhZXRlIGZ1ZXIgZGVuIEJlcmVpY2gKU3RlbmtlbGZlbGQtTm9yZCwgYmxlaWJ0IGFiZXIgYXJnbG9zLgoKMjA6MTcgVWhyOgpEZW4gRWhlbGV1dGVuIEhvcnN0IHVuZCBIZWlkaSBFLiBnZWxpbmd0IGRlciBBbnNjaGx1c3MgZWluZXIgS2V0dGVuc2NobGF0dW5nCnZvbiA5NiBIYWxvZ2VuLUZpbG1sZXVjaHRlbiwgZHVyY2ggc2FlbXRsaWNoZSBCYWV1bWUgaWhyZXMgT2JzdGdhcnRlbnMsIGFuIGRhcwpEcmVoc3Ryb21uZXR6LiBUZWlsZSBkZXIgaGVpbWlzY2hlbiBWb2dlbHdlbHQgYmVnaW5uZW4gdmVyd2lycnQgbWl0IGRlbQpOZXN0YmF1LgoKMjA6NTYgVWhyCkRlciBEaXNjb3RoZWtlbmJleml0emVyIEFsZm9ucyBLLiBzaWVodCBzaWNoIGdlbm9ldGlndCwgZWluZW4gVGVpbCB6dXIKdm9yd2VpaG5hY2h0bGljaGVuIFN0aW1tdW5nIGJlaXp1dHJhZ2VuLiBFciBtb250aWVydCBhdWYgZGVtIEZsYWNoZGFjaCBzZWluZXMKQnVuZ2Fsb3dzIGRhcyBMYXNlcmVuc2VtYmxlICJNZXRyb3BvbGlzIiwgZGFzIHp1IGRlbiBsZWlzdHVuZ3NzdGFlcmtzdGVuCkV1cm9wYXMgemFlaGx0LiBEaWUgNDAgTWV0ZXIgRmFzc2FkZSAgZWluZW4gYW5ncmVuemVuZGVuIEdldHJlaWRlc2lsb3MgaGFlbHQKZGVtIERhdWVyZmV1ZXIgZGVyIE5pa29sYXVzcHJvamVrdGlvbiBtZWhyZXJlIE1pbnV0ZW4gc3RhbmQsIGJldm9yIHNpZQp6ZXJicm9lY2tlbHQuCjIxOjMwIFVocgpJbSBUcnViZWwgZWluZXIgQ2x1Yi1GZWllciBpbSBLb2hsZWtyYWZ0d2VyayBTb3R0cm9wLUhvY2tsYWdlICB2ZXJoYWxsdCBkYXMKQWxhcm1zaWduYWwgYXVzIEdlbmVyYXRvcmhhbGxlIDUuCgoyMTo1MCBVaHIKRGVyIDg1amFlaHJpZ2UgS3JpZWdzdmV0ZXJhbiBLYXJsIFIuIHphdWJlcnQgbWl0IDE5MCBGbGFrc2NoZWlud2VyZmVybiBkZXMKVHlwcyAiVmFydGEgVm9sa3NzdHVybSIgIGRlbiBTdGVybiB2b24gQmV0aGxlaGVtIGFuIGRlbiBIaW1tZWwKCjIyOjEyIFVocgpFaW5lIEdydXBwZSBhc2lhdGlzY2hlciBHZXNjaGFlZnRzbGV1dGUgbWkgbGVpY2h0ZW0gR2VwYWVjayB1bmQgc29tbWVybGljaGVyCktsZWlkdW5nIGlycnQgdmVyYWVuZ3N0aWd0IGR1cmNoIGRpZSBTaWVkbHVuZyBPbmtlbHNiZXJnLiBadXZvciB3YXIgZWluZSBCb2luZwo3NDcgZGVyIFNpbmdhcHVyIEFpcmxpbmVzIHZlcnNlaGVudGxpY2ggaW4gZGVyIG1pdCAzMDAwIGJ1bnRlbiBOZW9ucm9laHJlbgpnZXNjaG11ZWNrdGVuIEdhcmFnZW56dWZhaHJ0IGRlciBCYWVja2VyZWkgQnJvaHJtZXllciBnZWxhbmRldC4KCjIyOjM3IFVocgpEaWUgTkFTQSBSYXVtc29uZGUgVm95YWdlciA3IGZ1bmt0IHZvbSBSYW5kZSBkZXIgTWlsY2hzdHJhc3NlIEJpbGRlciBlaW5lcgphbmdlYmxpY2hlbiBTdXBlcm5vdmEgYXVmIGRlciBub2VyZGxpY2hlbiBFcmRoYWxia3VnZWwuIERpZSBFeHBlcnRlbiBkZXIgTkFTQQpzaW5kIHJhdGxvcy4KCjIyOjUwIFVocgpFaW4gbGVpY2h0ZXMgQmViZW4gZXJzY2h1ZXR0ZXJ0IGRpZSBVbWdlYnVuZyBkZXMgS29obGVrcmFmdHdlcmtzClNvdHRyb3AtSG9ja2xhZ2UuIERlciBnZXNhbXRlIEtvbXBsZXggbWl0IHNlaW5lIDMwIFR1cmJpbmVuIGxhZXVmdCBtaXQgMzUwCk1lZ2F3YXR0IGplbnNlaXRzIGRlciBCZWxhc3R1bmdzZ3JlbnplLgoKMjM6MDYgVWhyCkluIGRlciB0YWdoZWxsIGVybGV1Y2h0ZXRlbiBTaWVkbHVuZyBPbmtlbHN0aWVnIGVyd2FjaHQgQmV0dGluYSBVLiB1bmQgZnJldXQKc2ljaCBpcnJ0dWVtbGljaCB1ZWJlciBkZW4gc29ubmlnZW4gRGV6ZW1iZXJtb3JnZW4uIFVtIGdlbmF1IDIzOjEyIFVocgpzY2hhbHRldCBzaWUgaWhyZSBLYWZmZWVtYXNjaGluZSBlaW4uCgoyMzowNiBVaHIgdW5kIDE0IFNla3VuZGVuCkluIGRpZSBwbG9ldHpsaWNoZSBEdW5rZWxoZWl0IGRlcyBMYW5ka3JlaXNlcyBTdGVua2VsZmVsZCBicmljaHQgZGllIEV4cGxvc2lvbgpkZXMgS29obGVrcmFmdHdlcmtzIFNvdHRyb3AtSG9ja2xhZ2Ugd2llIGVpbiBEb25uZXJoYWxsLiBEdXJjaCBkZW4Kc3RvY2tmaW5zdGVyZW4gT3J0IHN0YXBmZW4gaXJyZSwgdmVyd2lycnRlIE1lbnNjaGVuIHdpZSBEdSB1bmQgSWNoLCBkZW5lbiBlaW5lCktlcnplIGF1ZiBkZW0gQWR2ZW50c2tyYW56IG5pY2h0IGdlbnVnIHdhci4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2NvcmRpbmcgdG8gQWx0YSBWaXN0YSwgZXZlcnl0aGluZyBpcyBmb3Igc2FsZS4uLiAoWWVuZGksICAzLiBKYW4gMjAwMCwgMjA6MDE6NDkpOgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcGJzbWl0aEBiZWxsYXRsYW50aWMubmV0IChEYW5pZWwgUC4gQi4KU21pdGgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbWVyaWNhbiBTb2NpZXR5IGZvciB0aGUgUHJldmVudGlvbiBvZiBDcnVlbHR5IHRvCkJhcmJhcmEgSGF2ZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzbWlyaywgY29tcHV0ZXJzLCB0cnVlLCBvcmlnaW5hbCkKCkkgZGlkIGFuIEFsdGEgVmlzdGEgc2VhcmNoIG9uIHRoZSBwaHJhc2UgInByaWVzdGhvb2Qgb2YgYWxsIGJlbGlldmVycyIgCmFuZCB3YXMgc29tZXdoYXQgc3VycHJpc2VkIHdoZW4gQWx0YSBWaXN0YSBpbnZpdGVkIG1lIHRvOiAKCiAgIkNvbXBhcmlzb24gU2hvcCEgLSBGaW5kIHByb2R1Y3RzIGFuZCBjb21wYXJlIAogICBwcmljZXMgZm9yICdQcmllc3Rob29kIG9mIGFsbCBiZWxpZXZlcnMnIiAKCkkgdHJpZWQgIm1lbWJlcnMgb2YgQ29uZ3Jlc3MiIGFuZCwgc3VyZSBlbm91Z2guLi4gCgogICJDb21wYXJpc29uIFNob3AhIC0gRmluZCBwcm9kdWN0cyBhbmQgY29tcGFyZSAKICAgcHJpY2VzIGZvciBtZW1iZXJzIG9mIENvbmdyZXNzIiAKCkEgc2VhcmNoIG9uICJMb3ZlLCIgYXMgZXhwZWN0ZWQsIGludml0ZWQgbWUgdG8gIAoKICAiQ29tcGFyaXNvbiBTaG9wISAtIEZpbmQgcHJvZHVjdHMgYW5kIGNvbXBhcmUgCiAgIHByaWNlcyBmb3IgbG92ZSIgCgphbmQgYWRkZWQgCgogICBBbHRhVmlzdGEga25vd3MgdGhlIGFuc3dlcnMgdG8gdGhlc2UgcXVlc3Rpb25zOiAgIAogICBBbSBJIGluIGxvdmU/ICAKCgooZ2VyYWRlIHVudGVyIHJlYy5odW1vdXIuZnVubnkgZ2VmdW5kZW4uLi4pCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvbnRha3RhbnplaWdlbi4uLiA6KSAoVHN1bmFtaSwgMTEuIEphbiAyMDAwLCAxNDowMTozOSk6CkhpZXIgZWluIHBhYXIgQmVpc3BpZWxlIGZ1ZXIgdm9yYmlsZGxpY2hlIEtvbnRha3RhbnplaWdlbjoKClNwYXNzdm9nZWwgKDE5KSBzdWNodCB2ZXJzdGFlbmRuaXN2b2xsZSBQYXJ0bmVyaW4sIGRpZSBlcyBtYWcsIFdhc3NlciB1ZWJlcgpkZW4gS29wZiB6dSBrcmllZ2VuLCBTcGlubmVuIGltIEJldHQgenUgZmluZGVuIHVuZCBhbiBUdWVya2xpbmtlbiB6dSBmYXNzZW4sIApkaWUgdW50ZXIgU3RhcmtzdHJvbSBzdGVoZW4uIE11c3MgbWVociBIdW1vciBoYWJlbiBhbHMgbWVpbmUgbGV0enRlbiAyNwpGcmV1bmRpbm5lbiEhIENoaWZmcmUgOTIzNzgKCkF0dHJha3Rpdiwgd29obGhhYmVuZCwgaW50ZWxsaWdlbnQsIGdlaXN0cmVpY2gsIHNwb3J0bGljaCwgZWxlZ2FudCwKc2Vuc2liZWwsIGh1bW9ydm9sbCwgd2VsdGVyZmFocmVuIHVuZCBlcmZvbGdyZWljaCAuLi4gYmluIGljaCBOSUNIVC4KQWJlciAgc2NocmVpYnQgbWlyIHJ1aGlnISBDaGlmZnJlIDcyMjIwMQoKTWVkaXppbmVyIHN1Y2h0IE1hZWRjaGVuIG1pdCBpbm5lcmVyIFNjaG5oZWl0LiBSbnRnZW5iaWxkZXIgYml0dGUgYW4KQ2hpZmZyZSAyODkzNAoKUHVmZmktbXVmZmktU2NobnVja2VsYmFlcmNoZW4gc3VjaHQgenVja2Vyc3Vlc3NlcyBIdXR6aW11dHppLCBkYXMgZ2FuegpraWxsZS1raWxsZS1zY2htdXNlbGllYiB6dSBpaG0gaXN0IC4uLiB1bmQgZGFmdWVyIHNvcmd0LCBkYXNzIGVyIGVuZGxpY2gKd2llZGVyIHZlcm51ZW5mdGlnIHJlZGV0ISAtIENoaWZmcmUgNDIyNjE3CgpDaHJvbmlzY2hlciBMdWVnbmVyICgxOTAsIHNwb3J0bGljaCwgTWFnbnVtLVR5cCkgc3VjaHQgZ3V0YXVzc2VoZW5kZXMKTWFlZGNoZW4gZnVlciBSZWlzZSB6dSBzZWluZXIgWmVobi1NaWxsaW9uZW4tVmlsbGEgaW4gU3QuIFRyb3Blei4gCkNoaWZmcmUgNjc3Mzg5CgpWZXJmYXNzdW5nc3NjaHV0ei1CZWFtdGVyIG1vZWNodGUgbmV0dGUgRnJldW5kaW4ga2VubmVubGVybmVuLiBCaXR0ZSBrZWluZQpBZHJlc3NlbiwgS29lcnBlcm1hc3NlIG9kZXIgRm90b3Mgc2NoaWNrZW4sIGhhYmVuIHdpciBhbGxlcyBoaWVyIGltIENvbXB1dGVyCmdlc3BlaWNoZXJ0ISAtIENoaWZmcmUgNzg5MjEKCkljaCBoYWJlIGRpZSBGaWd1ciB2b24gQm8gRGVyZWssIGRpZSBPYmVyd2VpdGUgdm9uIERvbGx5IERvbGxhciwgZGVuIFNleCB2b24KVGluYSBUdXJuZXIuIFVuZCBhdXNzZXJkZW0gaGFiZSBpY2ggZWluIFByb2JsZW06IEljaCBiaW4gbmFlbWxpY2ggZWluIE1hbm4uCkNoaWZmcmUgNzc2MjgKCld1ZXRlbmRlIE1lbnNjaGVubWVuZ2UgbWl0IEhvbHpwcnVlZ2VsbiB1bmQgRmFja2VsbiBzdWNodCBoYWFyaWdlcyBNb25zdGVyCnp3ZWNrcyBWZXJmb2xndW5nIGJlaSBWb2xsbW9uZCB1bmQgYW5zY2hsaWVzc2VuZGVyIFRvZXR1bmcuIENoaWZmcmUgMTEyMTEzCgpJY2ggYmluIGVpbmUgYXR0cmFrdGl2ZSwgZ2ViaWxkZXRlIEJsb25kaW5lICgyNS8xNjgvNTcpIG1pdCBob2VjaHN0ZW0KRWlua29tbWVuLiBJY2ggaGFiZSBMaWViaGFiZXIgaW4gcmF1aGVuIE1lbmdlbiB1bmQgaXJyZSB2aWVsIFNwYXNzIGFtIExlYmVuLgpLdXJ6dW06IEljaCBoYWIncyBuaWNodCBub2V0aWcsIG1laW4gR2VsZCBvZGVyIG1laW5lIFplaXQgZnVlciBOaWV0ZW4genUgCnZlcnNjaHdlbmRlbiwgZGllIEtvbnRha3RhbnplaWdlbiBsZXNlbi4gRGVzaGFsYiB3ZXJkZSBpY2ggYXVjaCBuaWVtYW5kZW0KYW50d29ydGVuLCBkZXIgbWlyIHNjaHJlaWJ0ISAtIENoaWZmcmUgMjE5MDMKCk1lbnNjaCBtaXQgR2VkYWVjaHRuaXNzY2h3dW5kLiBJY2ggd2Vpc3MgbmljaHQgbWVociwgd2VyIGljaCBiaW4gLi4uIHVuZAphdWNoIG5pY2h0LCB3YXMgZnVlciBlaW5lbiBQYXJ0bmVyIGljaCBzdWNoZS4gVW5kIGRpZSBDaGlmZnJlLU5yLiBoYWJlIGljaAphdWNoIHZlcmdlc3Nlbi4KCkxlYmVuc2dlZmFlaHJ0aW4gbWl0IERhdWVyc2NobnVwZmVuLiBDaGlmZnJlIDI2NzgxMQoKU2NodWVjaHRlcm5lciBUeXAsIDIzLCBzdWNodCAtCgpBdWNoIElkaW90ZW4gYnJhdWNoZW4gTGllYmUhIFdlbm4gZHUgYWxzbyBqZW1hbmQgYmlzdCwgZGVyIHN0YWVuZGlnIHp1CnRhbmtlbiB2ZXJnaXNzdCwgYW5kZXJuIExldXRlbiBHZXRyYWVua2UgdWViZXIgZGllIEtsYW1vdHRlbiBzY2h1ZXR0ZXN0IHVuZAppbW1lciBlcnN0IGlucyBLaW5vIGtvbW1zdCwgd2VubiBkZXIgRmlsbSBzY2hvbiBlaW5lIFN0dW5kZSBsYWV1ZnQgLi4uIApkYW5uIGhhYmVuIHdpciBiZXJlaXRzIGRyZWkgRGluZ2UgZ2VtZWluc2FtISBMYXNzIHVucyBoZXJhdXNmaW5kZW4sIHdvcmluIHdpcgpOT0NIIGtvbXBsZXR0ZSBOaWV0ZW4gc2luZCEgQ2hpZmZyZSA0MjE1NQoKVW13ZXJmZW5kZSBFcnNjaGVpbnVuZyBzdWNodCBUeXAgenVtIFVtd2VyZmVuLiBHZXJuIGF1Y2ggbWl0IEtldWxlLApTY2hsYWdyaW5nLCBQZWl0c2NoZSwgQnJhdHBmYW5uZSBvZGVyIEhhbW1lciwgQ2hpZmZyZSAzNjcyMAoKQmluIGhvZmZudW5nc2xvcyBwbGVpdGUgdW5kIHNjaHVsZGUgamVkZW0gR2VsZC4gRmFsbHMgU2llIG5pY2h0IHp1IG1laW5lbgpHbGFldWJpZ2VybiBnZWhvZXJlbiwgd3VlcmRlIGljaCBTaWUgZ2VybmUga2VubmVubGVybmVuLiBCaXR0ZSBUZWxlZm9ubnVtbWVyCi0gbWVpbmUgd3VyZGUgZ2VzcGVycnQuIFVudGVyIENoaWZmcmUgODczMTIKCkZyYWtub3IsIGRlciBLcmllZ3NmdWVyc3QgZGVzIFBsYW5ldGVuIFphbWJvLCBzdWNodCBHb2V0dGluIGRlciBWaWVydGVuCkRpbWVuc2lvbiwgdW0gbWl0IGlociBnZW1laW5zYW0gZGVuIFRocm9uIGRlciBZdWd1cnRoYS1HYWxheGlzIHp1IGJlc3RlaWdlbi4KQml0dGUgbnVyIGVybnN0Z2VtZWludGUgWnVzY2hyaWZ0ZW4gdW50ZXIgQ2hpZmZyZSA5MDI0CgpNb3RvcnJhZGZhaHJlbmRlciBUcmFwZXprdWVuc3RsZXIsIFZlZ2V0YXJpZXIgbWl0IEludGVyZXNzZSBhbiBPa2t1bHRpc211cywKQmlzbWFyY2ssIFNjaGxhbW1yaW5na2FtcGYgdW5kIEthcnBmZW56dWNodCwgc3VjaHQgd2VpYmxpY2hlcyBHZWdlbnN0dWVjay4gLQpDaGlmZnJlIDE1MzI3CgpBbiBkYXMgYmxvbmRlIE1hZWRjaGVuIGltIE1hZG9ubmEtVC1TaGlydCwgZGFzIG1pY2ggZ2VzdGVybiBtaXR0YWcgaW0KQzEzLUJ1cyBhbmxhZWNoZWx0ZTogRHUgYmlzdCBOSUNIVCBtZWluIFR5cCwgdW5kIGljaCB3aWxsIGRpY2ggTklDSFQgCmtlbm5lbmxlcm5lbi4KCldhbmtlbG11ZXRpZ2UgU2llLCAzNCwgc3VjaHQgYWVsdGVyZW4gTWFubiAodW0gZGllIHp3YW56aWc/KSBtaXQgYmxhdWVuLApicmF1bmVuIG9kZXIgZ3J1ZW5lbiBBdWdlbiBzb3dpZSBkdW5rZWxibG9uZGVuLCB2aWVsbGVpY2h0IGFiZXIgYXVjaCAKc2Nod2FyemVuIG9kZXIgcm90ZW4gSGFhcmVuISBSdWYgbWljaCBkb2NoIG1hbCBhbiAuLi4gb2RlciBzY2hyZWliZSBlaW5lbiAKQnJpZWYgLi4uIG9kZXIgdmllbGxlaWNodCBzb2xsdGVuIHdpciBkYXMgR2FuemUgbGllYmVyIGxhc3Nlbj8gT2RlciAKdmllbGxlaWNodCBkb2NoIG5pY2h0LCBobT8/PyBVbnRlciBDaGlmZnJlIDY3MjI5MAoKRXJzdHZlcnN1Y2ghIE1hbm4sIG0uIGdyLiBTcHcuLCB2Zy4gdS4gbS4gd2VpdHIuIFZibi4gc3VjaHQgTGV1dGUsIGRpZSBpaG0KZXJrbGFlcmVuLCB3YXMgIm0uIGdyLiBTcHcuLCB2Zy4gdS4gbS4gd2VpdHIuIFZibi4iIGJlZGV1dGV0ISBDaGlmZnJlIDMzNTYyCgo5MGphZWhyaWdlIGhhdCBudXIgbm9jaCB3ZW5pZ2UgV29jaGVuIHp1IGxlYmVuLiBXZWxjaGVyIGp1bmdlIE1hbm4KdmVyc2Nob2VudCBtaXIgZGllIGxldHp0ZW4gVGFnZSB1bmQgZXJidCBkYWZ1ZXIgbWVpbiBNaWxsaW9uZW52ZXJtb2VnZW4/IApDaGlmZnJlIChCZXJlaXRzIHZlcmdlYmVuLiBEZXIgU2V0emVyLikKCk9yZ2VsIHp1IHZlcmthdWZlbi4gSmEgLi4uIGljaCB3ZWlzcywgZGFzIGlzdCBrZWluZSBLb250YWt0YW56ZWlnZS4gQWJlciBpbgpkZXIgU3BhbHRlICJadSB2ZXJrYXVmZW4iIGhhYmUgaWNoIG5pZSBlaW5lIEFudHdvcnQgZ2VrcmllZ3QhIFVuZCBhdXNzZXJkZW06Cldlbm4gZHUgaGllciBrZWluZW4gcGFzc2VuZGVuIFBhcnRuZXIgZ2VmdW5kZW4gaGFzdCAuLi4gd2VyIHdlaXNzLCB2aWVsbGVpY2h0CnZlcnN1Y2hzdCBkdSdzIHN0YXR0IGRlc3NlbiBtYWwgbWl0IGVpbmVyIG5ldHRlbiBPcmdlbC4gQ2hpZmZyZSAzNDUyMjgKClVuc2NoZWluYmFyZXIgVHlwIG1pdCBBa25lIHN1Y2h0IEZyZXVuZGluLiBJY2ggd2Vpc3MsIGRhcyBnaWJ0IG5pY2h0IHZpZWwKaGVyLCBhYmVyIGljaCB3ZXR0ZSwgZGFzIGlzdCBkaWUgZWluemlnZSB3aXJrbGljaCBlaHJsaWNoZSBBbnplaWdlIGF1ZiBkaWVzZXIKU2VpdGUhIC0gQ2hpZmZyZSAzMjIxNDQKCkljaCBoYXNzZSBlbmRsb3NlIEtvbnRha3RhbnplaWdlbiwgZGllc2UgRGluZ2VyLCB3byBkZXIgU2NocmVpYmVyIG51ciBsYWJlcnQKdW5kIGxhYmVydCwgYW5zdGF0dCBzaWNoIGF1ZnMgV2VzZW50bGljaGUgenUgYmVzY2hyYWVua2VuLiBJbiBkZXIgS3VlcnplIGxpZWd0CmRpZSBXdWVyemUsIGJlc2FndCBkYXMgU3ByaWNod29ydCwgdW5kIHNvIGlzdCBlcyBhdWNoIGJlaSBBbnplaWdlbi4gRGllCm1laXN0ZW4KTGV1dGUgYmVhY2h0ZW4gc29sY2hlIE1hcmF0aG9uLUFuemVpZ2VuIGdhciBuaWNodCwgdW5kIHNlbGJzdCB3ZW5uIG1hbiBzaWNoCmRpZSBaZWl0IG5pbW10LCBzaWUgenUgbGVzZW4sIG1lcmt0IG1hbiBzY2huZWxsLCBkYXNzIHVlYmVyIGRlbiBWZXJmYXNzZXIgCnNvIGd1dCB3aWUgZ2FyIG5pY2h0cyBkcmluc3RlaHQhIERlc2hhbGIgd2lsbCBpY2ggaW4gYWxsZXIgS3VlcnplIG1pdHRlaWxlbgooRm9ydHNldHp1bmcgYXVmIFNlaXRlIDUzKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvbWUgTmV3IEVycm9yIE1lc3NhZ2VzIFBsYW5uZWQgZm9yIE1pY3Jvc29mdCBXaW5kb3dzIDIwMDAgISEhIChTY2hsZWljaGVyLCAxMS4gSmFuIDIwMDAsIDE3OjI1OjMyKToKMSkgU21hc2ggZm9yZWhlYWQgb24ga2V5Ym9hcmQgdG8gY29udGludWUuIAoyKSBFbnRlciBhbnkgMTEtZGlnaXQgcHJpbWUgbnVtYmVyIHRvIGNvbnRpbnVlLiAKMykgUHJlc3MgYW55IGtleSB0byBjb250aW51ZSBvciBhbnkgb3RoZXIga2V5IHRvIHF1aXQuIAo0KSBQcmVzcyBhbnkga2V5Li4uIG5vLCBubywgbm8sIE5PVCBUSEFUIE9ORSEgCjUpIFByZXNzIEN0cmwtQWx0LURlbCBub3cgZm9yIElRIHRlc3QuIAo2KSBDbG9zZSB5b3VyIGV5ZXMgYW5kIHByZXNzIGVzY2FwZSB0aHJlZSB0aW1lcy4gCjcpIEJhZCBjb21tYW5kIG9yIGZpbGUgbmFtZSEgR28gc3RhbmQgaW4gdGhlIGNvcm5lci4gCjgpIFRoaXMgd2lsbCBlbmQgeW91ciBXaW5kb3dzIHNlc3Npb24uIFBsYXkgYWdhaW4/IAo5KSBXaW5kb3dzOiAnTWlzdGFrZSEgU2hhbGwgSSBmb3JtYXQgeW91ciBicmFpbj8nIAoxMCkgR29kOiAiUmVib290aW5nIHRoZSB1bml2ZXJzZSwgcGxlYXNlIGxvZyBvdXQiIAoxMSkgS2V5Ym9hcmQgbm90IGF0dGFjaGVkLiBQcmVzcyBGMSB0byBjb250aW51ZS4gCjEyKSBCUkVBS0ZBU1QuU1lTIGhhbHRlZC4uLiBDZXJlYWwgcG9ydCBub3QgcmVzcG9uZGluZy4gCjEzKSBDT0ZGRUUuU1lTIG1pc3NpbmcuLi4gSW5zZXJ0IGN1cCBhbmQgcHJlc3MgYW55IGtleS4gCjE0KSBDT05HUkVTUy5TWVMgY29ycnVwdGVkLi4uIFJlLWJvb3QgV2FzaGluZ3RvbiBELkM/IChZL04pIAoxNSkgRmlsZSBub3QgZm91bmQuIFNob3VsZCBJIGZha2UgaXQ/IChZL04pIAoxNikgQmFkIG9yIG1pc3NpbmcgbW91c2UgZHJpdmVyLiBTcGFuayB0aGUgY2F0PyAoWS9OKSAKMTcpIFJ1bnRpbWUgRXJyb3IgNkQgYXQgNDE3QTozMkNGOiBJbmNvbXBldGVudCBVc2VyLiAKMTgpIEVycm9yIHJlYWRpbmcgRkFUIHJlY29yZDogVHJ5IHRoZSBTS0lOTlkgb25lPyAoWS9OKSAKMTkpIFdpbkVyciA1NDc6IExQVDEgbm90IGZvdW5kLi4uIFVzZSBiYWNrdXAuLi4gUEVOQ0lMICYgUEFQRVIuIAoyMCkgVXNlciBFcnJvcjogUmVwbGFjZSB1c2VyLiAKMjEpIFdpbmRvd3MgVmlydXNTY2FuIDEuMCAtICJPUy8yIGZvdW5kOiBSZW1vdmUgaXQ/IChZL1kpIiAKMjIpIEJhY2t1cCBub3QgZm91bmQ6IChBKWJvcnQgKFIpZXRyeSAoUClhbmljCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gc2Nod2FyemVyIFRhZyBpbSBMZWJlbiBlaW5lciBCYW5rYW5nZXN0ZWxsdGVuLiAoTm9ubmUsIDE3LiBKYW4gMjAwMCwgMTQ6NDM6MzUpOgpJbiBlaW5lciBncm9zc2VuIHNjaG5lbiB0ZXVyZW4gQmFuazoKIEVpbiBNYW5uIGtvbW10IHJlaW4gdW5kIGdlaHQgYW4gZWluZW4gZGVyIGZyZWllbiBTY2hhbHRlci4KIEVpbmUgZHVyY2hnZXN0eWx0ZSwgYXJyb2dhbnQgYmxpY2tlbmRlIEJhbmthbmdlc3RlbGx0ZSBiZWRpZW50IGlobjoKIFNpZTogIkd1dGVuIFRhZywgd2FzIGthbm4gaWNoIGZ8ciBTaWUgdHVuIgogRXI6ICJJY2ggd2lsbCBlaW4gc2NoZWlzcyBLb250byBlcmZmbmVuIgogU2llOiAiV2llIGJpdHRlPz8/ISBpY2ggZ2xhdWJlLCBpY2ggaGFiZSBTaWUgbmljaHQgdmVyc3RhbmRlbiEiCiBFcjogIldhcyBnaWJ0cyBkYSB6dSB2ZXJzdGVoZW4sIGljaCB3aWxsIGluIElocmVyIERyZWNrc2JhbmsgZWluZmFjaCBudXIgZWluCmFiZ2VmdWNrdCBiZXNjaGlzc2VuZXMgS29udG8gZXJmZm5lbiEiCiBTaWU6ICJFbnRzY2h1bGRpZ2VuIFNpZSwgU2llIHNvbGx0ZW4gd2lya2xpY2ggbmljaHQgaW4gZGllc2VtIFRvbiBtaXQgbWlyCnJlZGVuISIKIEVyOiAiSHIgenUgUHVwcGUsIGljaCB3aWxsIG5pY2h0IG1pdCBEaXIgcmVkZW4sIGljaCB3aWxsLCB2ZXJkYW1tdCBub2NobWFsCm51ciBlaW4gc3RpbmtlbmRlcyBzY2hlaXNzIEtvbnRvIGVyZmZuZW4hISEiCiBTaWU6ICJJY2ggd2VyZGUgamV0enQgZGVuIE1hbmFnZXIgaG9sZW4gLi4uIiB1bmQgcmVubnQgd2VnLgogV2VpdGVyIGhpbnRlbiBzaWVodCBtYW4gc2llIGRhbm4gYXVmZ2VyZWd0IG1pdCBlaW5lbSBnZWxhY2t0ZW4gU2NobGlwc3RyZ2VyCnR1c2NoZWxuLCBkZXIgZGFyYXVmaGluIHNlaW5lIEJydXN0IHNjaHdlbGx0LCB1bmQgZXJob2JlbmVuIEhhdXB0ZXMgbWl0IGRlcgogU2NoYWx0ZXJhbmdlc3RlbGx0ZW4gaW0gU2NobGVwcHRhdSBhdWYgZGVuIE1hbm4genVnZWh0OgogTWFuYWdlcjogIkd1dGVuIFRhZyBkZXIgSGVyciwgd2FzIGZ8ciBlaW4gUHJvYmxlbSBnaWJ0IGVzPyIKIEVyOiAiRXMgZ2lidCBrZWluIHZlcmRhbW10ZXMgUHJvYmxlbSwgaWNoIGhhYicgMjAgTWlsbGlvbmVuIGltIExvdHRvCmdld29ubmVuIHVuZCB3aWxsIGRhZnxyIGhpZXIgbnVyIGVpbiBibGRlcyBLb250byBlcmZmbmVuISIKIE1hbmFnZXI6ICJBaGEsIHVuZCBkaWVzZSB2ZXJmaWNrdGUgU2NobGFtcGUgaGllciBtYWNodCBJaG5lbiBTY2h3aWVyaWdrZWl0ZW4KPyIKCk5vbm5lLCBraWNoZXJuZC4KCkF1ZiBVbWxhdXRlIGtubmVuIHdpciBqYSBhbGxlIHZlcnppY2h0ZW4gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdWxsc2hpdC1CaW5nbyEgKEFuZ3VzLCAxOC4gSmFuIDIwMDAsIDE2OjAzOjEyKToKKkhlaGUqIERlciBtYWNodCBnZXJhZGUgYmVpIHVucyBkaWUgUnVuZGUgOi0pCj4gd2VpbCB3aXJzIGdlc3Rlcm4gZ3JhZCBoYXR0ZW46Cj4KPiBCdWxsc2hpdC1CaW5nbwo+IFNjaGxhZmVuIFNpZSBtYW5jaG1hbCBlaW4gd2hyZW5kIEJlc3ByZWNodW5nZW4gb2RlciBTZW1pbmFyZW4/IE9kZXIgd2llCj4gaXN0Cj4gZXMgbWl0IGRpZXNlbiBuaWNodCBlbmRlbiB3b2xsZW5kZW4gS29uZmVyZW56ZW4/IEhpZXIgaXN0IGRpZSBNZ2xpY2hrZWl0LAo+IGRhcyBhbGxlcyB6dSBuZGVybiEKPiBXaWUgd2lyZCBnZXNwaWVsdD86IEtyZXV6ZW4gU2llIGVpbmVuIEJsb2NrIGFuLCB3ZW5uIFNpZSBkYXMgZW50c3ByZWNoZW5kZQo+IFdvcnQgd2hyZW5kIGVpbmVyCj4gQmVzcHJlY2h1bmcsIGVpbmVzIFNlbWluYXJzLCBvZGVyIGVpbmVyIFRlbGVmb25rb25mZXJlbnogaHJlbi4gV2VubiBTaWUKPiBob3Jpem9udGFsLCB2ZXJ0aWthbCBvZGVyIGRpYWdvbmFsIDUgQmxja2UgaW4gZWluZXIgUmVpaGUgaGFiZW4sIHN0ZWhlbgo+IFNpZQo+IGF1ZiB1bmQgcnVmZW4gbGF1dCBCVUxMU0hJVCAhIQo+Cj4gQmVpc3BpZWwtYmVncmlmZmUgLSBCaXR0ZSBhdWYgZWluZSA1IFJlaWhlbi81U3BhbHRlbiBUYWJlbGxlIHZlcnRlaWxlbi4KPgo+IFN5bmVyZ2llCj4KPiBCaWxhdGVyYWwKPgo+IFppZWxmaHJlbmQKPgo+IENvcnBvcmF0ZSBJZGVudGl0eQo+Cj4gQ2hhbmNlIC8gUmlzaWtvCj4KPiBrb21tdW5pemllcmVuCj4KPiB2ZXJoZWlyYXRlbgo+Cj4gQmFsbCB6dXNwaWVsZW4KPgo+IFJ1bmRlbiBkcmVoZW4KPgo+IEJlbmNobWFyawo+Cj4gV2VydC0KPiBzY2hwZmVuZAo+Cj4gVmlzaW9uZW4KPgo+IEdsb2JhbCBQbGF5ZXIKPgo+IFNjaHdhcnplciBQZXRlcgo+Cj4gVGFyZ2V0Cj4KPiBFcmdlYm5pcy0KPiBvcmllbnRpZXJ0Cj4KPiBIdXQgYXVmaGFiZW4KPgo+IFJ1bmQgc2Vpbgo+Cj4gVG90YWwgUXVhbGl0eQo+Cj4gRm9jdXNzaWVyZW4KPgo+IFNpY2ggU2NobGF1IG1hY2hlbgo+Cj4gS3VuZGVuLQo+IG9yaWVudGllcnQKPgo+IFN6ZW5hcmlvCj4KPiBMaWVmZXJzaXR1YXRpb24KPgo+IFByb2JsZW1hdGlrCj4KPgo+IEF1c3NhZ2VuIGJlZ2Vpc3RlcnRlciBTcGllbGVyOgo+Cj4gIkljaCB3YXIgZ2VyYWRlIG1hbCA1IE1pbnV0ZW4gaW4gZGVyIEJlc3ByZWNodW5nLCBhbHMgaWNoIHNjaG9uIGdld29ubmVuCj4gaGF0dGUuIiAtTWFydGluIFAuIC0gRnJhbmtmdXJ0Cj4KPiAiTWVpbmUgQXVmbWVya3NhbWtlaXQgd2hyZW5kIEJlc3ByZWNodW5nZW4gaXN0IGRyYW1hdGlzY2gKPiBhbmdlc3RpZWdlbi4iIC1LYXJsIEEuIC0gTW5jaGVuCj4KPiAiV2FzIGZyIGVpbiBTcGllbC4gTmFjaCBtZWluZW0gZXJzdGVuIFNpZWcgc2luZCBCZXNwcmVjaHVuZ2VuIG5pY2h0IG1laHIKPiBkYXNzZWxiZSBmciBtaWNoLiIgLUNocmlzdGlhbiBSIC0gSGFtYnVyZwo+Cj4gIkRpZSBBdG1vc3BocmUgd2hyZW5kIGRlciBsZXR6dGVuIFNFLUJlc3ByZWNodW5nIHdhciB6dW0gWmVycmVpc3Nlbgo+IGdlc3Bhbm50LCBhbHMgOCB2b24gdW5zIGF1ZiBkZW4gbGV0enRlbiBCbG9jayB3YXJ0ZXRlbi4iIC1UaG9tYXMgUy4gLQo+IEJlcmxpbgo+Cj4gIkRlciBNb2RlcmF0b3Igd2FyIHNwcmFjaGxvcyBhbHMgNSB2b24gdW5zIHp1bSBkcml0dGVuIE1hbCB3aHJlbmQgZWluZXIKPiB6d2Vpc3RuZGlnZW4gQmVzcHJlY2h1bmcgJ0J1bGxzaGl0JyByaWVmZW4uIiAtIFdlcm5lciBGLiAtIERvcnRtdW5kCj4KPiAiU2VpdGRlbSBpY2ggZGFzIFNwaWVsIGJlaSB1bnMgaW4gZGVyIEZpcm1hIGVpbmdlZmhydCBoYWJlLCBrYW5uIGljaCBtaWNoCj4gdm9yIEVpbmxhZHVuZ2VuIHp1IEJlc3ByZWNodW5nZW4gbmljaHQgbWVociByZXR0ZW4uIiAtIERlbmlzZSBNLi0KPiBXaW50ZXJiYWNoCj4KCi4uLiBzb3JyeSwgZGFzcyBkaWUgVW1sYXV0ZSBhdWYgZGVyIFN0cmVja2UgZ2VibGliZW4gc2luZC4uCkJ5ZSwgQW5ndXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWluIHNjaHdhcnplciBUYWcgaW0gTGViZW4gZWluZXIgQmFua2FuZ2VzdGVsbHRlbi4gKE1haGF0bXUsIDIyLiBKYW4gMjAwMCwgMTM6MjA6MjApOgp+IyEgcm49Tm9ubmUgcnQ9OTQ4MTE2NjE1IHJnPXdpdHplCn4jISB0aWQ9OTQ4MTE2NjE1CkhtbW0gLi4uIGljaCBlcmlubmVyZSBtaWNoIGR1ZXN0ZXIsIGRhc3MgZXMgZGEgZWluIFBlcnNvZW5saWNoa2VpdHMtCnN0b2VydW5nIGdpYnQsIGluIGRlciBtYW4gc2FlbXRsaWNoZSBGYWVrYWxzcHJhY2hlIHVuZCBGbHVlY2hlIHp3YW5nLQpoYWZ0IGluIGFsbGUgc2VpbmUgU2FldHplIGVpbmJhdXQgLi4uIHNjaGFldHplLCBkYXMgaXN0IGVpbiBzb2xjaGVyCkZhbGwgOj4gTWl0IEFucGFzc3VuZ3NlZmZla3RlbiBiZWkgZGVyIFVtZ2VidW5nIDpdCgpNYWhhdG11CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVpbiBzY2h3YXJ6ZXIgVGFnIGltIExlYmVuIGVpbmVyIEJhbmthbmdlc3RlbGx0ZW4uIChZZW5kaSwgMjUuIEphbiAyMDAwLCAwOTozMToxNCk6Cn4jISBybj1NYWhhdG11IHJ0PTk0ODU0MzYyMCByZz13aXR6ZQp+IyEgdGlkPTk0ODExNjYxNQpLb3Byb2xhbGllPwoKTWl0IEVpbnNjaHJhZW5rdW5nZW4gZXZ0bC4gYXVjaCBUb3VyZXR0ZS1TeW5kcm9tLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVpbiBzY2h3YXJ6ZXIgVGFnIGltIExlYmVuIGVpbmVyIEJhbmthbmdlc3RlbGx0ZW4uIChNYWhhdG11LCAyNS4gSmFuIDIwMDAsIDE3OjM0OjQ1KToKfiMhIHJuPVllbmRpIHJ0PTk0ODc4OTA3NCByZz13aXR6ZQp+IyEgdGlkPTk0ODExNjYxNQpUb3VyZXR0ZSAtIFN5bmRyb20sIGdlbmF1IGRhcy4KCk1haGF0bXUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdvbGYgKFJvY2h1cywgIDIuIEZlYiAyMDAwLCAxMzo0ODo1Mik6CihhdXMgZGUudGFsay5qb2tlcykKQSBsYWR5IGlzIGdvbGZpbmcgd2l0aCBzb21lIGZyaWVuZHMuIEFmdGVyIHNpbmtpbmcgaGVyIGZpcnN0IHB1dHQsIHNoZSdzCm9uIGhlciB3YXkgZG93biB0aGUgcGF0aCB0byB0aGUgc2Vjb25kIHRlZSB3aGVuIHNoZSBnZXRzIHN0dW5nIGJ5IGEgYmVlLgpTaGUgcnVzaGVzIHRoZSBzaG9ydCBkaXN0YW5jZSBiYWNrIHRvIHRoZSBjbHViaG91c2UsIGhvcGluZyB0byBmaW5kIGEKZG9jdG9yLiBTaGUgYnVtcHMgaW50byB0aGUgcmVzaWRlbnQgZ29sZiBwcm8sIHdobyBzYXlzICJXaGF0IGNhbiBJIGhlbHAKeW91IHdpdGg/IiBUaGUgd29tYW4gdGVsbHMgaGltIHNoZSdzIGJlZW4gc3R1bmcgYnkgYSBiZWUuCiAKIFRoZSBwcm8gYXNrcywgIk9oIHJlYWxseSwgd2hlcmU/IiBUaGUgbGFkeSByZXBsaWVzLCAiQmV0d2VlbiB0aGUgZmlyc3QKYW5kIHNlY29uZCBob2xlLiIgVG8gdGhhdCB0aGUgZ29sZiBwcm8gc3RhdGVzLCAiV2VsbCwgZmlyc3Qgb2YgYWxsLCB5b3VyCnN0YW5jZSB0byB3YXkgdG9vIHdpZGUhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdWVuIGhhYmVucyBzY2h3ZXIgKENhdHdlYXpsZSwgIDMuIEZlYiAyMDAwLCAxMDo0NDowMik6CkRJRSBGUkFVIElNIEJFUlVGCgpFaW5lIGFyYmVpdGVuZGUgRnJhdSBoYXQgZXMgbmljaHQgbGVpY2h0LCBpaHJlbiBNYW5uIHp1IHN0ZWhlbjoKVmVycmljaHRldCBzaWUgYW5zcHJ1Y2hzbG9zZSBBcmJlaXQsIGhhdCBzaWUga2VpbmVuIEVocmdlaXouIEVydV4/ZnVlbGx0IHNpZQpxdWFsaWZpemllcnRlIEF1ZmdhYmVuLCBpc3Qgc2llIG1pdCBpaHJlbSBCZXJ1ZiB2ZXJoZWlyYXRldC4gIElzdCBzaWUKc2NobGFnZmVydGlnLCBoYXQgc2llIEhhYXJlIGF1ZiBkZW4gWmFlaG5lbi4gSXN0IHNpZSBrb21wcm9taXNzYmVyZWl0LApoYXQgc2llIGtlaW5lIER1cmNoc2V0enVuZ3NmYWVoaWdrZWl0LiBWZXJ3ZW5kZXQgc2llIE1ha2UtdXAsIHRyYWVndCBzaWUKS3JpZWdzYmVtYWx1bmcuIFZlcndlbmRldCBzaWUga2VpbmVzLCB2ZXJuYWNobGFlc3NpZ3Qgc2llIGlociBBZXVzc2VyZXMuCkJla29tbXQgc2llIHZpZWxlIFByaXZhdGFucnVmZSwgbmVubnQgbWFuIHNpZSBDYWxsZ2lybC4gUnVmdCBuaWVtYW5kIGFuLAppc3Qgc2llIGVpbiBNYXVlcmJsdWVtY2hlbi4gWmVpZ3Qgc2llIEdlZnVlaGxlLCBpc3Qgc2llIGVpbmUgSGV1bHN1c2UuCkJsZWlidCBzaWUgY29vbCwgaXN0IHNpZSBlaW4gTWFubndlaWIuIEhhdCBzaWUgZ2FyIEVyZm9sZywgaXN0IHNpZSBlaW4KS2FycmllcmV3ZWliLiBJc3Qgc2llIG1pdCAyNSBub2NoIGxlZGlnLCBrcmllZ3Qgc2llIGtlaW5lbiBtZWhyIGFiLiBJc3QKc2llIG1pdCAxOSBzY2hvbiB2ZXJoZWlyYXRldCwgbXVzc3RlIHNpZSB3b2hsLiBJc3Qgc2llIGltIFRlbm5pc2NsdWIsCnN1Y2h0IHNpZSBBbnNjaGx1c3MgYW4gZGllIFNvY2lldHkuIEdlaHQgc2llIHNjaHdpbW1lbiwgaGF0IHNpZQpVZWJlcmdld2ljaHQuIElzdCBzaWUgaGlsZnNiZXJlaXQsCj53aXJkIHNpZSBhdXNnZW51ZXR6dC4gS3VlbW1lcnQgc2llIHNpY2ggbnVyIHVtIGlocmUgQXJiZWl0LCBpc3Qgc2llCnVua29sbGVnaWFsLiBJc3Qgc2llIHNlaHIgYXR0cmFrdGl2LCBsZW5rdCBzaWUgaWhyZSBLb2xsZWdlbiB2b24gZGVyCkFyYmVpdCBhYiB1bmQgaGF0IGJlaSBkZW4gS29sbGVnaW5uZW4gbmljaHRzIHp1IGxhY2hlbi4gV2lya3Qgc2llCnRlbXBlcmFtZW50dm9sbCwgaXN0IHNpZSBuaWNodCB6dSBoYWx0ZW4uIFdpcmt0IHNpZSBydWhpZyB1bmQgYmVzb25uZW4sCmZlaGx0IGlociBkZXIgUGZpZmYuIERlbmt0IHNpZSBsb2dpc2NoLCBpc3Qgc2llIGthbHQgdW5kIGJlcmVjaG5lbmQuIElzdApzaWUgaW50ZWxsaWdlbnQsIGRhcmYgc2llIGRhcyBuaWNodCB6ZWlnZW4uIFR1dCBzaWUgZXMgZG9jaCwgaXN0IHNpZQphcnJvZ2FudCB1bmQgYmVzc2Vyd2lzc2VyaXNjaC4gSXN0IHNpZSBuaWNodCBpbnRlbGxpZ2VudCwgbXVzcyBzaWUKd2VuaWdzdGVucyBodWVic2NoIHNlaW4uIElzdCBzaWUgbmljaHQgaHVlYnNjaCwgaGF0IHNpZSBuaWNodHMgYW5kZXJlcyBhbHMKaWhyZW4gQmVydWYuIElzdCBzaWUgaHVlYnNjaCwgd2lsbCBzaWUgc2ljaCBudXIgYW4gZGVuIENoZWYgcmFubWFjaGVuLgpCbGVpYnQgc2llIHp1aGF1c2UsIGxlZ3Qgc2llIHNpY2ggd2VnZW4gamVkZXIgS2xlaW5pZ2tlaXQgaW5zIEJldHQuIElzdApzaWUgbW9udGFncyBtdWVkZSwgbGFlc3RlcnQgbWFuLiBJc3Qgc2llIHRhdWZyaXNjaCwgd2lyZCBhdWNoIGdlbGFlc3RlcnQuCkdlaHQgc2llIGdlcm5lIGF1cywgaXN0IHNpZSBlaW4gUGxheWdpcmwuIEJsZWlidCBzaWUgenUgSGF1c2UsIGdpbHQgc2llCmFscyBmcmlnaWRlLiBUcmFlZ3Qgc2llIE1pbmksIHN0b2VydCBzaWUgZGVuIEFyYmVpdHNmcmllZGVuLiBUcmFlZ3Qgc2llCk1heGksIGhhdCBzaWUgYmVzdGltbXQga3J1bW1lIEJlaW5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlbm5lciBoYWJlbnMgc2Nod2VyIChDYXR3ZWF6bGUsICAzLiBGZWIgMjAwMCwgMTA6NDQ6NTQpOgoKRWluIGp1bmdlciBNYW5uIGhhdHRlIGRyZWkgRnJldW5kaW5uZW4sIHVuZCBtdXNzdGUgc2ljaCBlbnRzY2hlaWRlbiwKd2VsY2hlIGRlciBkcmVpIGVyIGhlaXJhdGVuIHNvbGx0ZS4gRXIgbWFjaHRlIGVpbmVuIFRlc3QgdW5kIGdhYgpqZWRlciBkZXIgZHJlaSBGcmF1ZW4gMTAwMCBFdXJvLgoKRGllIGVyc3RlIEZyZXVuZGluIGthdWZ0ZSBzaWNoIG5ldWUgS2xlaWRlciB1bmQgU2NodWhlLCBnaW5nIHp1bQpDb2lmZmV1ciB1bmQgenVyIEtvc21ldGlrZXJpbi4gU2llIGthbSB6dSBkZW0gSnVuZ2VuIE1hbm4genVydWVjayB1bmQKc2FndGU6ICJJY2ggd2lsbCBkaWUgU2Nob2Vuc3RlIHNlaW4gZnVlciBEaWNoLCB3ZWlsIGljaCBEaWNoIGxpZWJlISIKCkRpZSB6d2VpdGUgRnJldW5kaW4ga2FtIG1pdCBlaW5lciBuZXVlbiBIb2NrZXlhdXNydWVzdHVuZyB6dXJ1ZWNrLAplaW5lbSBuZXVlbiBWaWRlb2dlcmFldCwgdW5kIGVpbmVtIE1vbmF0c3ZvcnJhdCBhbiBCaWVyIHVuZApzYWd0ZTogIkRhcyBzaW5kIG1laW5lIEdlc2NoZW5rZSBmdWVyIERpY2gsIHdlaWwgaWNoIERpY2ggbGllYmUhIgoKRGllIGRyaXR0ZSBGcmV1bmRpbiBtYWNodGUgZWluZSBndXQgdWViZXJsZWd0ZSBJbnZlc3RpdGlvbiBtaXQgZGVuCjEwMDAgRXVybywgdW5kIGlubmVyaGFsYiBrdXJ6ZXIgWmVpdCB2ZXJkb3BwZWx0ZSBzaWNoIGRhcwpHZWxkLiBEZW4gUHJvZml0IGludmVzdGllcnRlIHNpZSB3aWVkZXIsIGRpZXNlciB3aWVkZXJ1bSByZW50aWVydGUKbm9jaG1hbHMgdW5kIHNvCndlaXRlci4gU2llIGdpbmcgenUgaWhyZW0gRnJldW5kIHVuZCBzYWd0ZTogIkljaCBoYWJlIERlaW4gR2VsZApnZW5vbW1lbiB1bmQgZXMgdmVybWVocnQsIGZ1ZXIgdW5zZXJlIGdlbWVpbnNhbWUgWnVrdW5mdCwgd2VpbAppY2ggRGljaCBsaWViZSEiCgpEZXIganVuZ2UgTWFubiB3YXIgc2VociBiZWVpbmRydWNrdCB2b24gYWxsZW4gZHJlaSBGcmV1bmRpbm5lbi4gRXIKem9nIHNpY2ggZWluZSBXZWlsZSB6dXJ1ZWNrIHVuZCB1ZWJlcmRhY2h0ZSBhbGxlIEFudHdvcnRlbi4KCk5hY2ggcmVpZmxpY2hlciBVZWJlcmxlZ3VuZyBoZWlyYXRldGUgZXIgZGllIG1pdCBkZW4gZ3JvZXNzdGVuIFRpdHRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVNYWlsIGZ1ZXIgRGljaC4uLiAoQW5ndXMsICAzLiBGZWIgMjAwMCwgMTI6NTU6MDkpOgoKTWFuIHNvbGx0ZSBpbW1lciBiZWRlbmtlbiwgZGEgZGllIHd1bmRlcnZvbGxlIFRlY2huaWsgZGVyIGVNYWlsIAptYW5jaG1hbCBhdWNoIHVuYmVhYnNpY2h0aWd0IHp1IGdyb3NzZW4gTWl2ZXJzdG5kbmlzc2VuIG1pdCAKdGVpbHdlaXNlIGdyYXZpZXJlbmRlbiBBdXN3aXJrdW5nZW4gZmhyZW4ga2Fubi4gCgpBbHMgQmVpc3BpZWwgaGllciBlaW4gRmFsbCBhdXMgQW1lcmlrYTogRWluIE1hbm4gdmVybGllc3MgZGllIApzY2huZWViZWRlY2t0ZW4gU3RyYXNzZW4gdm9uIENoaWNhZ28sIHVtIGluIEZsb3JpZGEgZWluCndlbmlnIFVybGF1YiB6dSBtYWNoZW4uIFNlaW5lIEZyYXUgd2FyIGF1ZiBlaW5lciBHZXNjaGFlZnRzcmVpc2UgCnVuZCBwbGFudGUsIGlobiBhbSBuYWVjaHN0ZW4gVGFnIGluIEZsb3JpZGEgenUgdHJlZmZlbi4gCgpBbHMgZGVyIE1hbm4gaW4gc2VpbmVtIEhvdGVsIGFua2FtLCBzZW5kZXRlIGVyIHNlaW5lciBGcmF1IGVpbiAKa3VyemVzIGVNYWlsLiBMZWlkZXIgZmFuZCBlciBkZW4ga2xlaW5lbiBaZXR0ZWwgbmljaHQsIGF1ZiBkZW4gCmVyIGRpZSBlTWFpbC1BZHJlc3NlIGdlc2NocmllYmVuIGhhdHRlLCBhbHNvIHZlcnN1Y2h0ZSBlciBzZWluIApiZXN0ZXMgdW5kIHNjaHJpZWIgZGllIEFkcmVzc2UgYXVzIGRlbSBLb3BmLiAKCkxlaWRlciB2ZXJnYXNzIGVyIGFiZXIgZWluZW4gQnVjaHN0YWJlbiwgc29kYXNzIHNlaW5lIE5hY2hyaWNodCAKc3RhdHRkZXNzZW4gYW4gZWluZSBhZWx0ZXJlIFBhc3RvcmVuZnJhdSBnZXNjaGlja3Qgd3VyZGUsIGRlcmVuIApFaGVtYW5uIGdlcmFkZSBhbSBUYWcgenV2b3IgdmVyc3RvcmJlbiB3YXIuIEFscyBkaWUgdHJhdWVybmRlIApXaXR3ZSBpaHJlIG5ldWVuIGVNYWlscyBsYXMsIGJsaWNrdGUgc2llIGF1ZiBkZW4gTW9uaXRvciwgc2NocmllIAplaW5tYWwgbGF1dCB1bmQgc2FuayBkYW5uIG1hdXNldG90IGF1ZiBkZW4gQm9kZW4uCgpBbHMgZGllIEZhbWlsaWUgZGVuIFNjaHJlaSBob2VydGUsIGthbSBzaWUgc2NobmVsbCBpbnMgWmltbWVyLiAKRGllIGFsdGUgUGFzdG9yZW5mcmF1IGhhdHRlIGVpbmVuIEhlcnppbmZhcmt0IHVuZCBtYW4Ka29ubnRlIGlociBuaWNodCBtZWhyIGhlbGZlbi4gCgpGb2xnZW5kZXIgVGV4dCB3YXIgYXVmIGRlbSBCaWxkc2NoaXJtIHp1IGxlc2VuOiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkxpZWJzdGUgRWhlZnJhdSwgCkljaCBoYWJlIGdlcmFkZSBlaW5nZWNoZWNrdC4gCkFsbGVzIGlzdCBmdWVyIERlaW5lIEFua3VuZnQgbW9yZ2VuIHZvcmJlcmVpdGV0LiAKRGVpbiBEaWNoIHVuZW5kbGljaCBsaWViZW5kZXIgRWhlbWFubi4gClAuUy4gRXMgaXN0IHdhaG5zaW5uaWcgaGVpc3MgaGllciEgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpHZWZ1bmRlbiB1bnRlciB3d3cuYXV0c2NoLmRlIDotKQotIEFuZ3VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnJhdWVuIGhhYmVucyBzY2h3ZXIgKEphc29ucmlnaWQsICA0LiBGZWIgMjAwMCwgMTU6Mjk6NTYpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTk0OTU3MTA0MiByZz13aXR6ZQp+IyEgdGlkPTk0OTU3MTA0MgpKYSwgdW5kIGlzdCBzaWUga2x1Zywgc2NoZXJ0IHNpZSBzaWNoIGVpbmVuIERyZWNrIHVtIGRhcywgd2FzIG1hbiBzYWd0LgoKSi5SLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT24gYSBiZWF1dGlmdWwgSXNsYW5kLi4uIChTdGluZywgIDYuIEZlYiAyMDAwLCAxOTo1NToxOSk6Ck9uIGEgYmVhdXRpZnVsIGRlc2VydGVkIGlzbGFuZCBpbiB0aGUgbWlkZGxlIG9mIG5vd2hlcmUsIHRoZSBmb2xsb3dpbmcKcGVvcGxlIGFyZSBzdHJhbmRlZDoKICAgICAgICAgMiBJdGFsaWFuIG1lbiBhbmQgMSBJdGFsaWFuIHdvbWFuCiAgICAgICAgIDIgRnJlbmNoIG1lbiBhbmQgMSBGcmVuY2ggd29tYW4KICAgICAgICAgMiBHZXJtYW4gbWVuIGFuZCAxIEdlcm1hbiB3b21hbgogICAgICAgICAyIEdyZWVrIG1lbiBhbmQgMSBHcmVlayB3b21hbgogICAgICAgICAyIEVuZ2xpc2ggbWVuIGFuZCAxIEVuZ2xpc2ggd29tYW4KICAgICAgICAgMiBQb2xpc2ggbWVuIGFuZCAxIFBvbGlzaCB3b21hbgogICAgICAgICAyIEphcGFuZXNlIG1lbiBhbmQgMSBKYXBhbmVzZSB3b21hbgogICAgICAgICAyIEFtZXJpY2FuIG1lbiBhbmQgMSBBbWVyaWNhbiB3b21hbgogICAgICAgICAyIEF1c3RyYWxpYW4gbWVuIGFuZCAxIEF1c3RyYWxpYW4gd29tYW4KICAgICAgICAgMiBOZXcgWmVhbGFuZCBtZW4gYW5kIDEgTmV3IFplYWxhbmQgd29tYW4KICAgICAgICAgMiBJcmlzaCBtZW4gYW5kIDEgSXJpc2ggd29tYW4KT25lIG1vbnRoIGxhdGVyLCB0aGUgZm9sbG93aW5nIHRoaW5ncyBoYXZlIG9jY3VycmVkOgpPbmUgSXRhbGlhbiBtYW4ga2lsbGVkIHRoZSBvdGhlciBJdGFsaWFuIG1hbiBmb3IgdGhlIEl0YWxpYW4gd29tYW4uClRoZSB0d28gRnJlbmNoIG1lbiBhbmQgdGhlIEZyZW5jaCB3b21hbiBhcmUgbGl2aW5nIGhhcHBpbHkgdG9nZXRoZXIKVGhlIHR3byBHZXJtYW4gbWVuIGhhdmUgYSBzdHJpY3Qgd2Vla2x5IHNjaGVkdWxlIG9mIHdoZW4gdGhleSBhbHRlcm5hdGUKd2l0aAp0aGUgR2VybWFuIHdvbWFuLgpUaGUgdHdvIEdyZWVrIG1lbiBhcmUgc2xlZXBpbmcgd2l0aCBlYWNoIG90aGVyIGFuZCB0aGUgR3JlZWsgd29tYW4gaXMKVGhlIHR3byBFbmdsaXNoIG1lbiBhcmUgd2FpdGluZyBmb3Igc29tZW9uZSB0byBpbnRyb2R1Y2UgdGhlbSB0byB0aGUKRW5nbGlzaCB3b21hbi4KVGhlIFBvbGlzaCBtZW4gdG9vayBhIGxvbmcgbG9vayBhdCB0aGUgZW5kbGVzcyBvY2VhbiBhbmQgb25lIGxvb2sgYXQgdGhlClBvbGlzaCB3b21hbiBhbmQgdGhleSBzdGFydGVkIHN3aW1taW5nLgpUaGUgdHdvIEFtZXJpY2FuIG1lbiBhcmUgY29udGVtcGxhdGluZyB0aGUgdmlydHVlcyBvZiBzdWljaWRlLCB3aGlsZSB0aGUKQW1lcmljYW4gd29tYW4ga2VlcHMgb24gYml0Y2hpbmcgYWJvdXQgaGVyIGJvZHkgYmVpbmcgaGVyIG93biwgdGhlIHRydWUKbmF0dXJlIG9mIGZlbWluaXNtLCBob3cgc2hlIGNhbiBkbyBldmVyeXRoaW5nIHRoYXQgdGhleSBjYW4gZG8sIGFib3V0IHRoZQpuZWNlc3NpdHkgb2YgZnVsZmlsbG1lbnQsIHRoZSBlcXVhbCBkaXZpc2lvbiBvZiBob3VzZWhvbGQgY2hvcmVzLCBob3cgaGVyCmxhc3QgYm95ZnJpZW5kIHJlc3BlY3RlZCBoZXIgb3BpbmlvbiBhbmQgdHJlYXRlZCBoZXIgbXVjaCBuaWNlciBhbmQgaG93IGhlcgpyZWxhdGlvbnNoaXAgd2l0aCBoZXIgbW90aGVyIGlzIGltcHJvdmluZy4gQnV0IGF0IGxlYXN0IHRoZSB0YXhlcyBoZXJlIGFyZQpsb3cgYW5kIGl0IGlzIG5vdCByYWluaW5nLgpUaGUgdHdvIEphcGFuZXNlIG1lbiBoYXZlIGZheGVkIFRva3lvIGFuZCBhcmUgd2FpdGluZyBmb3IgaW5zdHJ1Y3Rpb25zLgpUaGUgdHdvIEF1c3RyYWxpYW4gbWVuIGJlYXQgZWFjaCBvdGhlciBzZW5zZWxlc3MgZmlnaHRpbmcgb3ZlciB0aGUKQXVzdHJhbGlhbgp3b21hbiwgd2hvIGlzIGNoZWNraW5nIG91dCBhbGwgdGhlIG90aGVyIG1lbiwgYWZ0ZXIgY2FsbGluZwp0aGVtIGJvdGggYmxvb2R5IHdhbmtlcnMuCkJvdGggTmV3IFplYWxhbmQgbWVuIGFyZSBzZWFyY2hpbmcgdGhlIGlzbGFuZCBmb3Igc2hlZXAuClRoZSBJcmlzaCBiZWdhbiBieSBkaXZpZGluZyB0aGUgaXNsYW5kIGludG8gTm9ydGggYW5kIFNvdXRoIGFuZCBieQpzZXR0aW5nIHVwIGEgZGlzdGlsbGVyeS4gVGhleSBkbyBub3QgcmVtZW1iZXIgaWYgc2V4IGlzIGluIHRoZSBwaWN0dXJlCmJlY2F1c2UgaXQgZ2V0cyBzb3J0IG9mIGZvZ2d5IGFmdGVyIHRoZSBmaXJzdCBmZXcgbGl0ZXJzIG9mIGNvY29udXQKd2hpc2tleSwKYnV0IHRoZXkgYXJlIHNhdGlzZmllZCBpbiB0aGF0IGF0IGxlYXN0IHRoZSBFbmdsaXNoIGFyZSBub3QgZ2V0dGluZyBhbnkuCgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmllbHNlaXRpZ2VyIE1HLVByZXNzZS1BZ2VudCAoSGlnaGxhbmRlciwgMTAuIEZlYiAyMDAwLCAyMDoyMDoxNSk6Cmh0dHA6Ly93d3cudXNlcmZyaWVuZGx5Lm9yZy9jYXJ0b29ucy9hcmNoaXZlcy8wMGZlYi8yMDAwMDIxMC5odG1sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVmllbHNlaXRpZ2VyIE1HLVByZXNzZS1BZ2VudCAoQmFib29uLCAxMS4gRmViIDIwMDAsIDA5OjEyOjAwKToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9OTUwMjEwNDE1IHJnPXdpdHplCn4jISB0aWQ9OTUwMjEwNDE1CkhtLCB1bmQgZGVyIG1pdCBCYXJ0IHNvbGwgZGFubiBSb2NodXMgc2Vpbj8KCkJhQk9PbiBkdWNrdCBzaWNoIHVudGVyIGVpbmVyIGZsaWVnZW5kZW4gQ29sYWZsYXNjaGUgd2VnLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWaWVsc2VpdGlnZXIgTUctUHJlc3NlLUFnZW50IChNb3Jnb3RoLCAxMS4gRmViIDIwMDAsIDA5OjI4OjM2KToKfiMhIHJuPUJhYm9vbiBydD05NTAyNTY3MjAgcmc9d2l0emUKfiMhIHRpZD05NTAyMTA0MTUKUm9jaHVzIHd1ZXJkZSBOSUUgbWl0IENvbGFmbGFzY2hlbiB3ZXJmZW4gIQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFZpZWxzZWl0aWdlciBNRy1QcmVzc2UtQWdlbnQgKFdpbGxvdywgMTEuIEZlYiAyMDAwLCAxMTozMDo1Nyk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTk1MDI1NzcxNiByZz13aXR6ZQp+IyEgdGlkPTk1MDIxMDQxNQp6dW1pbmRlc3QgbmljaHQgbWl0IFZPTExFTiBjb2xhLWZsYXNjaGVuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2h1bHVuZyAoR3JpbW1ib3JuLCAxMS4gRmViIDIwMDAsIDEzOjUyOjAyKToKfiMhIG9uPVBhbmljIG90PTk1MDI2NzY1OCBvZz1zY2htYXJybgpUaGVtYTogRnJkZXJ1bmcgZGVyIEdlaGlybmZ1bmt0aW9uZW4gYmVpIGRlciBtb2Rlcm5lbiBGcmF1CgpaaWVsOgpEaWUgVGVpbG5laG1lcmlubmVuIGZyIGVpbmUgZmFzemluaWVyZW5kZSBFcmZhaHJ1bmcsIGRpZSBCZW51dHp1bmcgZGVzCkdlaGlybnMsIGJlZ2Vpc3Rlcm4KClZvcmF1c3NldHp1bmc6ClZvcmhhbmRlbnNlaW4gZWluZXMgbW5ubGljaGVuIFBhcnRuZXJzLCBvaG5lIGRlbiBkZXIgcGRhZ29naXNjaGUgdW5kCnByYWt0aXNjaGUgTWVocndlcnQgZW50ZmxsdAoKRGF1ZXI6CkJybmV0dGUgLyAxLDUgTW9uYXRlIGplIE1vZHVsClJvdGhhYXJpZ2UgLyAzIE1vbmF0ZSBqZSBNb2R1bApCbG9uZGluZW4gLyA2IE1vbmF0ZSBqZSBNb2R1bAoKRGVyIEt1cnMgYmVpbmhhbHRldCA0IE1vZHVsZTsKCk1PRFVMIEk6IERhcyBHZWhpcm4gYmVudXR6ZW4gd29sbGVuCjEpICBkYXMgU2NoaWNrc2FsIGFremVwdGllcmVuIGxlcm5lbjogaWNoIGJpbiBhbHMgRnJhdSBnZWJvcmVuCjIpICBkZW4gZ2V3b2hudGVuIExlYmVuc3JhdW0ga2VubmVubGVybmVuOiBkaWUgS2NoZQozKSAgd2llIGhhbHRlIGljaCBpbiBtZWluZXIgSGFuZHRhc2NoZSBPcmRudW5nID8gKHVudGVyIEF1ZnNpY2h0KQo0KSAgV2llIGthdWZlIGljaCBpbiB3ZW5pZ2VyIGFscyA0IFN0dW5kZW4gZWluOyBHcnVuZGJlZ3JpZmZlCjUpICBHcmVuemVuIHppZWhlbjogd2llIHNjaG1pbmtlIGljaCBtaWNoIHJpY2h0aWcgPwo2KSAgUHJvZ3JhbW1pZXJrdXJzIEk6IEJlZGllbnVuZyBkZXMgTWlrcm93ZWxsZW4tT2ZlbnMKNykgIFByb2dyYW1taWVya3VycyBJSSAobnVyIGZyIEJybmV0dGUgJiBSb3RoYWFyaWdlKTogZGVyIFZpZGVvcmVjb3JkZXIKCk1PRFVMIElJOiBGYWhya3VycwoxKSAgR2xlaWNodW5nIG1pdCBlaW5lciBVbmJla2FubnRlbjogZGFzIEF1dG8KMikgIEdydXBwZW5keW5hbWlzY2hlIGJ1bmc6IHdhcyBtdSBpY2ggdHVuLCB3ZW5uIGljaCBpbSBBdXRvIHNpdHplPwozKSAgRWlucGFya2VuLCAxLlRlaWw6IEdydW5kd2lzc2VuCjQpICBFaW5wYXJrZW4sIDIuVGVpbDogTWFudmVyCjUpICBFaW5lIGVjaHRlIEhlcmF1c2ZvcmRlcnVuZzogZGllIEJyZW1zZSB1bmQgZGFzIEdhc3BlZGFsCjYpICBEYXMgR2V0cmllYmU6IHZvbGxzdG5kaWdlIFVudGVyd2Vpc3VuZyAoZnIgQmxvbmRpbmVuIG51cgpBdXRvbWF0aWtnZXRyaWViZSkKNykgIEtvcnJla3RlcyBCZW51dHplbiBkZXMgQmxpbmtlcnMKOCkgIEdlb21ldHJpZSBHcnVuZGt1cnM6IEJld2VnbGljaGUgS3JwZXIKOSkgIE9wdGlzY2hlIFdhaHJuZWhtdW5nOiBSb3RlLCBncm5lIHVuZCBnZWxiZSBBbXBlbCAocHJha3Rpc2NoZSBBcmJlaXRlbikKMTApIFNvbmRlcmt1cnM6IEVpbnBhcmtlbiBpbiBkZXIgR2FyYWdlCjExKSBHbGVpY2h1bmcgbWl0IG1laHJlcmVuIFVuYmVrYW5udGVuOiBXZXJremV1ZyAmIFp1YmVocgoxMikgYmVybGViZW5za3VycyBJOiB3byBpc3QgZGVyIFdhcm5ibGlua2VyID8KMTMpIGJlcmxlYmVuc2t1cnMgSUk6IFJlaWZlbndlY2hzZWwsIDEgUmVpZmVuCjE0KSBiZXJsZWJlbnNrdXJzIElJSTogUmVpZmVud2VjaHNlbCwgbWVocmVyZSBSZWlmZW4gKGRvY2gsIGRvY2gsIGRhcyBnZWh0CmF1Y2ggISkKMTUpIGJlcmxlYmVuc2t1cnMgSVY6IGwtIHVuZCBXYXNzZXJzdGFuZCBlcmZvbGdyZWljaCBwcmZlbgoKTU9EVUwgSUlJOiBEYXMgTGViZW4genUgendlaXQKMSkgIFBNUyAoZGFzIHBybWVuc3RydWVsbGUgU3luZHJvbSk6IC4uLmlzdCBtZWluIFByb2JsZW0sIG1laW5lbiBQYXJ0bmVyCmJlbHN0aWdlIGljaCBuaWNodCBkYW1pdAoyKSAgR3J1bmR2ZXJzdG5kbmlzIFNjaHVoZToga2VpbmUgQWJzdHplIGRlciBXZWx0IHdlcmRlbiBtaWNoIGF1ZiBkYXMgTml2ZWF1CmRlcyBNYW5uZXMgYnJpbmdlbgozKSAgVm9rYWJ1bGFyIDE6IERlZmluaXRpb24gZGVzIFdvcnRlcyAiamEiLiBLb3JyZWt0dXIgZGVyIGJ1bmdlbiB2b20gVHlwCiJiaXN0IER1IGZlcnRpZyA/Igo0KSAgVm9rYWJ1bGFyIDI6IERlZmluaXRpb24gZGVzIEJlZ3JpZmZlcyAiNSBNaW51dGVuIiwgc3RhdGlzY2hlIEFuYWx5c2UKKHVudGVyIEF1ZnNpY2h0LCBTY2hsYWZzYWNrIG1pdGJyaW5nZW4pCjUpICBTb3ppb2xvZ2llOiBGdWJhbGwgaXN0IGtlaW4gU3BvcnQsIHNvbmRlcm4gZWluZSBoZWlsaWdlIEhhbmRsdW5nCjYpICBCcmdlcnJlY2h0ICYgTW9yYWwgSTogTGViZW4gbWl0ICJyYW5pc3NpbW8iCjcpICBCcmdlcnJlY2h0ICYgTW9yYWwgSUk6IFVudGVyaGFsdHVuZ2VuIGRlciBNbm5lciB6dW0gVGhlbWEgIkZ1YmFsbCIKOCkgIEJyZ2VycmVjaHQgJiBNb3JhbCBJSUk6IE5pZW1hbHMgaW4gZGllc2UgVW50ZXJoYWx0dW5nZW4gZWlubWlzY2hlbgo5KSAgV2llIHZlcm1laWRlIGljaCB1bm50aWdlIEZyYWdlbiAoei4gQi4gImZpbmRlc3QgRHUgbWljaCBkaWNrPyIgb2RlciAiaGFiZQppY2ggZXR3YXMgQmVzb25kZXJlcz8iKQoxMCkgQXVmcmljaHRpZ2tlaXQgSTogRnJhdWVuIHB1YnNlbiBhdWNoLCBleHBlcmltZW50ZWxsZSBHcnVwcGVuYXVmZ2FiZQoxMSkgQXVmcmljaHRpZ2tlaXQgSUk6IFJhc2llcmVuIHVuZCBtZWhyIChJbnRlbnNpdmt1cnMgZnIgQnJuZXR0ZSk6IGRlcgptbm5saWNoZSBUZWlsIGRlciBGcmF1CjEyKSBFaW5rYXVmc3ZlcmhhbHRlbiBJOiBEaWUgVmlzYS1DYXJkLCBEZWZpbml0aW9uIGRlcyAiS3JlZGl0cmFobWVucyIKMTMpIEVpbmthdWZzdmVyaGFsdGVuIElJOiBJY2gga2FubiBhdWNoIGRpZSBHZXRybmtla3N0ZW4gc2NobGVwcGVuCjE0KSBXYXJ1bSBtZWluZSBNdXR0ZXIgbmljaHQgYmVpIHVucyB3aWxsa29tbWVuIGlzdCAoMTAwMCBGYWxsYmVpc3BpZWxlKQoxNSkgRGFzIFd1bmRlciAiWmVpdCI6IGRhcyBBYmVuZGVzc2VuIHp1bSBnZWVpZ25ldGVuIFplaXRwdW5rdCBzZXJ2aWVyZW4KCk1PRFVMIElWOiBVbWdhbmcgbWl0IGRlciBSZWFsaXR0CjEpICBUZWxlZm9ua3Vyczogd2FubiBtdSBpY2ggYXVmbGVnZW4gPyBHcnVwcGVuYXVmZ2FiZTogamUgNCBGcmF1ZW4vVGVsZWZvbgooU2NobGFmc2FjayBlaW5wbGFuZW4pCjIpICBTY2htaW5ra3VyczogRGllIHdlaWJsaWNoZSBNZXRhbW9ycGhvc2UgKERpYXZvcnRyYWcpCjMpICBUVi1UaGVyYXBpZSBJOiBuaWNodCBtZWhyICJHdXRlIFplaXRlbiwgc2NobGVjaHRlIFplaXRlbiIgc2NoYXVlbgo0KSAgVFYtVGhlcmFwaWUgSUk6IExpZWJlc2ZpbG1lIHNpbmQgcHVyZSBGaWt0aW9uLCBuaWNodCBkaWUgUmVhbGl0dAo1KSAgSWNoIHVuZCBtZWluIEtycGVyOiBkYXMgR2VzZXR6IGRlciBTY2h3ZXJrcmFmdAo2KSAgU2ljaCBzbyBha3plcHRpZXJlbiB3aWUgbWFuIChGcmF1ISkgaXN0OyBTcGllZ2VsIGxnZW4gbmljaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvcnJ5IGZ1ZXIgZGllIFVtbGF1dGUsIGFiZXIgZXMgZ2VodCB1bSBEZXV0c2NobGFuZCEgKEdyaW1tYm9ybiwgMTUuIEZlYiAyMDAwLCAwMDoxMTo0Myk6Cn4jISBvbj1Nb250YW51cyBvdD05NTA1Njk2Nzggb2c9YW56ZWlnZW4KCldJUiBXT0xMRU4gREVVVFNDSExBTkQgSEVMRkVOISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhCgogTGllYmUgQnVuZGVzYnJnZXJJbm5lbiwgbGllYmUgcG90ZW56aWVsbGUgU3BlbmRlcklubmVuLAoKIExhc3N0IHVucyBhbGxlIHVuc2VyZW0gdmVyZGllbnRlbiBLYW56bGVyIGRlciBFaW5oZWl0IGRpZXNlcwogdW5zZXJlcyBMYW5kZXMKIGhlbGZlbiwgc2VpbiBFaHJlbndvcnQgenUgaGFsdGVuLgogRHIuIEhlbG11dCBLb2hsIGthbm4gbmljaHQgZGllIE5hbWVuIGRlciBTcGVuZGVyIG5lbm5lbiwgZGllCiBpaG0gZGllIHBhYXIKIE1pbGxpb25lbiBETSBnZWdlYmVuIGhhYmVuLCB3ZWlsIGVyIGlobmVuIHNlaW4gRWhyZW53b3J0IGdhYiwgdW5kIEVocmUKIHN0ZWh0IGphIGJlciBHZXNldHosIHdpZSBqZWRlciBHYW5vdmUgd2Vpc3MuCgogV2VubiB3aXIgZGVzaGFsYiBhbGxlIGRpZWplbmlnZW4gYXVzZmluZGlnIG1hY2hlbiwgZGllIERyLiBIZWxtdXQgS29obAogTklDSFQgZHJlaSBNaWxsaW9uZW4gRE0gZ2VnZWJlbiBoYWJlbiwgYmxlaWJlbiBudXIgbm9jaCBkaWUgU3BlbmRlcgogYnJpZy4gRGllIFNjaHVya2VuIHNpbmQgZ2VzdGVsbHQgdW5kIERyLiBIZWxtdXQgS29obCBoYXQKIHNlaW4gRWhyZW53b3J0CiBnZWhhbHRlbi4KCiBTbyBlaW5mYWNoIGlzdCBkYXMuCgogRGllIE5pY2h0LUdlc3RuZG5pc3NlIHdlcmRlbiBwcmFrdGlzY2hlcndlaXNlIGluIGRlcgogQnVuZGVzdGFnc2ZyYWt0aW9uCiBkZXIgQ0RVL0NTVSBnZXNhbW1lbHQgdW5kIGF1c2dld2VydGV0LgoKIFVtIGVpbmUgbWdsaWNoc3QgZ3JvZSBWZXJicmVpdHVuZyB6dSBlcnJlaWNoZW4sIG11IGRpZXNlCiBlbWFpbCBkYWhlciBhbgogc28gdmllbGUgRnJldW5kZSB1bmQgQmVrYW5udGUgd2llIG1nbGljaCB3ZWl0ZXJnZWdlYmVuCiB3ZXJkZW4sIHdvYmVpIGRlcgogdW50ZXJlIEFic2Nobml0dCB3YWhsd2Vpc2UgYW4gZGllIEJ1bmRlc3RhZ3NmcmFrdGlvbiBkZXIgQ0RVL0NTVQogKHdlYm1hc3RlckBjZHVjc3UuYnVuZGVzdGFnLmRlKSBvZGVyIGFuIE5vY2gtQ2hlZmF1ZmtscmVyIFNjaHVibGUKICh3b2xmZ2FuZy5zY2hhZXVibGVAY2R1Y3N1LmJ1bmRlc3RhZy5kZSkgZ2VzY2hpY2t0IHdlcmRlbi4KCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogSWNoIGVya2xyZSBtaXQgZWxla3Ryb25pc2NoZW0gRWhyZW53b3J0IGhpZXJtaXQsIGRhc3MgaWNoIE5JQ0hUIGRyZWkKIE1pbGxpb25lbiBETSBpbiBiYXIgZGVtIEV4LUthbnpsZXIsIEV4LVZvcnNpdHplbmRlbiBkZXIgQ0RVLAogRXgtRWhyZW52b3JzaXR6ZW5kZW4gZGVyIENEVSBEci4gSGVsbXV0IEtvaGwgZ2VnZWJlbiBoYWJlLgoKCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIChoaWVyIGVpZ2VuZW4gTmFtZW4gZWluc2V0emVuKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBWb2xrc2hvY2hzY2h1bGVuIGJpZXRlbiBuZXVlIEt1cnNlIGFuOiBTcGV6aWVsbCBm/HIgRnJhdWVuISAoU3RpbmcsIDE1LiBGZWIgMjAwMCwgMjA6MzI6MjcpOgoxLiBTY2h3ZWlnZW4sIGRhcyB1bmVudGRlY2t0ZSBMYW5kLgo+IDIuIFNwYXJlbiwgZGllIHVuZW50ZGVja3RlIFNlaXRlIGRlcyBHZWxkZXMuCj4gMy4gQmVzaWVnZSBkYXMgSW1lbGRhIE1hcmNvcyBTeW5kcm9tLiBEdSBicmF1Y2hzdCBuaWNodCBqZWRlbiBUYWcgbmV1ZQo+IFNjaHVoZSAuLi4KPiA0LiBQYXJ0aWVzOiBBdXNnZWhlbiBvaG5lIG5ldWUgT3V0Zml0cwo+IDUuIEJlemllaHVuZ3MtTWFuYWdlbWVudDogV2llIGtsZWluZXJlIEhhdXNhcmJlaXRlbiBiaXMgbmFjaCBkZXIKPiBGdWJhbGxzZW5kdW5nIHdhcnRlbiBrbm5lbgo+IDYuIFZlcmhhbHRlbiBpbSBCYWRlemltbWVyIEk6IE1ubmVyIGJyYXVjaGVuIGF1Y2ggZWluIHdlbmlnIFBsYXR6Lgo+IDcuIFZlcmhhbHRlbiBpbSBCYWRlemltbWVyIElJOiBTZWluIFJhc2llcmVyIGlzdCBzZWluIFJhc2llcmVyCj4gOC4gS29tbXVuaWthdGlvbiBJOiBUcm5lbiwgZGllIGxldHp0ZSBXYWZmZSwgbmljaHQgZGllIEVyc3RlLgo+IDkuIEtvbW11bmlrYXRpb24gSUk6IERlbmtlbiB2b3IgZGVtIFNwcmVjaGVuCj4gMTAuIEtvbW11bmlrYXRpb24gSUlJOiBEZW4gV2lsbGVuIGR1cmNoc2V0emVuLCBvaG5lIG5yZ2Vsbgo+IDExLiBFaW5lIEt1bnN0LCBkaWUgbWFuIGxlcm5lbiBrYW5uOiBTaWNoZXJlcyBBdXRvZmFocmVuCj4gMTIuIFZlcmhhbHRlbiBhdWYgUGFydGllczogV2lzc2VuLCB3YW5uIEZyYXUgZ2VudWcgZ2V0cnVua2VuIGhhdC4KPiAxMy4gVmVyaGFsdGVuIGFtIFRlbGVmb246IFdpZSBGcmF1IGF1ZmxlZ3QKPiAxNC4gRWlucGFya2VuIEk6IEVpbmZocnVuZwo+IDE1LiBFaW5wYXJrZW4gSUk6IFJja3dydHMgaW4gZGllIExja2UgdHJlZmZlbgo+IDE2LiBUYW5rZW4gSTogRGllIEJlbnV0enVuZyBkZXIgWmFwZnN1bGUKPiAxNy4gVGFua2VuIElJOiBBYm5laG1lbiBkZXMgVGFua3ZlcnNjaGx1c3Nlcwo+IDE4LiBLb2NoZW4gSTogVHJlbm5rb3N0IHVuZCBUb2Z1IHNpbmQgbmljaHQgYWxzIE5haHJ1bmcgZ2VlaWduZXQuIAo+IDE5LiBLb2NoZW4gSUk6IFdpZSBGcmF1IERpdCBobHQsIG9obmUgYW5kZXJlIFBlcnNvbmVuIGVpbnp1YmV6aWVoZW4KPiAyMC4gT3JhbmdlbmhhdXQ6IERlaW4gUHJvYmxlbSwgbmljaHQgc2VpbmVzCj4gMjEuIFRhbnplbjogQWt6ZXB0aWVyZW4sIHdlbm4gTW5uZXIgZXMgbmljaHQgbWdlbgo+IDIyLiBTZXg6IEF1Y2ggZnIgRWhlcGFhcmUKPiAyMy4gS2xhc3Npc2NoZSBLbGVpZHVuZzogRGFzIFRyYWdlbiB2b24gT3V0Zml0cywgZGFzIGRpZSBGcmF1IHNjaG9uCj4gYmVzaXR6dAo+IDI0LiBTdGF1YjogRWluIE5hdHVycGhub21lbiwgZGFzIG51ciBGcmF1ZW4gYmVtZXJrZW4KPiAyNS4gRmVybmJlZGllbnVuZ2VuIHNpbmQgbnVyIHdhcyBmciBNbm5lcgo+IDI2LiBWZXJoYWx0ZW4gaW0gQmFkZXppbW1lciBJSUk6IEJhZGV6aW1tZXIgc2VoZW4gbmFjaCBkZW0gUHV0emVuIGdlbmF1c28KPiBhdXMgd2llIHZvcmhlcgo+IDI3LiBHZW1laW5zYW1lciBFaW5rYXVmOiAiV2FzIER1IGZyIE91dGZpdCBhdXNnaWJzdCwgZGFyZiBlciB2ZXJzYXVmZW4sCj4gbm9jaCBkYXp1LCB3byBlciBkYXMgQmllciBnZW5hdSBzbyBsYW5nZSBpbiBzaWNoIGhhdCwgd2llIER1IERlaW5lIEtsZWlkZXIKPiB0cmdzdC4iCgpTdGluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZXJyb3JzIChHbm9tZSwgMTcuIEZlYiAyMDAwLCAxNTo0MjowOCk6Cgp3ZW5uIGlociBldWNoIG1hbCB3aWVkZXIgdWViZXIgTSQtZXJyb3JzIGF1ZnJlZ3QsIGhpZXIgc2luZCBkaWUgYmVzdGVuOgoKTU9OT1BPTFktRVJST1I6ClZlcmxhc3NlbiBTaWUgc29mb3J0IGRpZSBBbndlbmR1bmcsIGdlaGVuIFNpZSBuaWNodCB1ZWJlciBkZW4KUHJvZ3JhbW0tTWFuYWdlciwgemllaGVuIFNpZSBrZWluIEZlbnN0ZXIgYXVmIQoKQlVOREVTQkFITi1FUlJPUjoKQW53ZW5kdW5nIGhhdCBsZWlkZXIgZWluaWdlIE1pbnV0ZW4gVmVyc3B0dW5nLgoKQkVBTVRFTi1FUlJPUjoKSWhyIFZvcmdhbmcgaXN0IGluIEJlYXJiZWl0dW5nLCBiaXR0ZSB2ZXJ3ZW5kZW4gU2llIGJlaW0gbmFlY2hzdGVuClN5c3RlbWF1ZnJ1ZiBJaHJlIFBlcnNvbmFsbnVtbWVyLCBkaWUgd2lyIElobmVuIGJpbm5lbiBkcmVpIE1vbmF0ZW4genV0ZWlsZW4uCgpTT1pJLUVSUk9SOgpTdGVsbGUgR2VzY2hmdHNvcmRudW5nc2FudHJhZyBhdWYgRWluc3RlbGx1bmcgZGVyIFN5c3RlbWZ1bmt0aW9uZW4uCgpHRVdFUktTQ0hBRlRTLUVSUk9SOgpUYXJpZmxpY2ggdmVyZWluYmFydGUgQXJiZWl0c3plaXQgdWViZXJzY2hyaXR0ZW4sIFN5c3RlbWZ1bmt0aW9uZW4KZWluZ2VzdGVsbHQsIEFyYmVpdHNnZXJpY2h0IGJlbmFjaHJpY2h0aWd0LgoKSUJNLUVSUk9SOgpTaWUga29lbm5lbiBkb2NoIG5pY2h0IHZvbiBtaXIgZXJ3YXJ0ZW4sIG1pdCBlaW5lbSBJQk0tUmVjaG5lcgp6dXNhbW1lbnp1YXJiZWl0ZW4uCgpNT05UWS1QWVRIT04tRVJST1I6CkFuZCBub3cgdG8gc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50Li4uCgpNVUVTTEktRVJST1I6CkFsc28gd2Vpc3N0ZSwgZGFzIGZpbmRlIGljaCBqZXR6dCBtYWwgbmljaHQgc28gZG9sbCB2b24gRGlyLCBkYXNzIER1IGRhCnNvbGNoZSBTYWNoZW4gbWl0IG1pciBtYWNoc3QuIEljaCBtZWluZSwgd2lyIGhhZXR0ZW4gZGEgc2Nob24gbWFsIHZvcmhlcgpkcnVlYmVyIHJlZGVuIGtvZW5uZW4uIERhIGJyYXVjaHN0ZSBEaWNoIGVjaHQgbmljaHQgd3VuZGVybiwgd2VubiBpY2gKamV0enQgYWJoYXVlISBJY2ggZ2VoIGpldHp0IGlucyBTeXN0ZW1oYXVzLgoKSEFSVEVSLUVSUk9SOgpTaXR6ZW4gU2llLi4uPwoKTUFOQUdFUi1FUlJPUjoKTGFzc2VuIFNpZSBlcyBtaWNoIGVpbm1hbCBzbyBhdXNkcnVlY2tlbi4uLgoKUE9TSVRJVkVSIEVSUk9SOgpTaWUgYnJhdWNoZW4gaGV1dGUgbmljaHRzIG1laHIgenUgYXJiZWl0ZW4hCgpLT01QUk9NSVNTLUVSUk9SOgpXb2xsZW4gd2lyIG5vY2htYWwgZGFydWViZXIgcmVkZW4/CgpLVUVORElHVU5HUy1FUlJPUjoKV2lyIGJlZGFua2VuIHVucyBmdWVyIElocmUgTWl0YXJiZWl0IQoKVE9NLURPT0xFWS1FUlJPUjoKIkhhbmcgZG93biB5b3VyIGhlYWQgLi4uIiAKClNDSFVTU0VMLUVSUk9SOgpXbyBoYWIgaWNoIGJsb3NzIGRpZSBBbndlbmR1bmcgaGluZ2VsZWd0Li4uPwoKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpjb21wdXRlci1wcm9ibGVtIChQaG9ib3MsIDE4LiBGZWIgMjAwMCwgMjI6Mzc6NDUpOgogQ29tcHV0ZXItUHJvYmxlbS1NZWxkZS1Gb3JtdWxhcgoKIDEuIEJlc2NocmVpYmVuIFNpZSBJaHIgUHJvYmxlbToKICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCiAyLiBKZXR6dCBiZXNjaHJlaWJlbiBTaWUgYml0dGUgSWhyIFByb2JsZW0gR0VOQVU6CiAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgogMy4gU3Bla3VsaWVyZW4gU2llIHdpbGQgZGFydWViZXIsIHdvIGRlciBIdW5kIGJlZ3JhYmVuIGxpZWd0OgogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKIDQuIFdpZSBzY2h3ZXJ3aWVnZW5kIGlzdCBkYXMgUHJvYmxlbToKCiAgICBBLiB1bndpY2h0aWcgW10KICAgIEIuIHVud2ljaHRpZyBbXQogICAgQy4gdW53aWNodGlnIFtdCiAgICBELiB0cml2aWFsIFtdCgogNS4gQXJ0IGRlcyBQcm9ibGVtczoKCiAgICBBLiBGZXN0Z2VmYWhyZW4gW10KICAgIEIuIEFyYmVpdGV0IG5pY2h0IFtdCiAgICBDLiBBYmdlc3R1ZXJ6dCBbXQogICAgRC4gUmllY2h0IHNlbHRzYW0gW10KCiA2LiBJc3QgZGVyIENvbXB1dGVyIGFuIGRpZSBTdHJvbXZlcnNvcmd1bmcgYW5nZXNjaGxvc3Nlbj8gIGphIFtdIG5laW4gW10KCiA3LiBJc3QgZGVyIENvbXB1dGVyIGFuZ2VzdGVsbHQ/ICBqYSBbXSBuZWluIFtdCgogOC4gSGFiZW4gU2llIHZlcnN1Y2h0IGRhcyBQcm9ibGVtIHNlbGJzdCB6dSBiZWhlYmVuPyAgamEgW10gbmVpbiBbXQoKIDkuIFd1cmRlIGVzIGRhZHVyY2ggc2NobGltbWVyPyAgamEgW10KCjEwLiBIYXQgZWluIEZyZXVuZCwgZGVyICJhbGxlcyB1ZWJlciBDb21wdXRlciIgd2Vpc3MgdmVyc3VjaHQsIGRhcwogICAgUHJvYmxlbSB6dSBsb2VzZW4/ICBqYSBbXSBuZWluIFtdCgoxMS4gV3VyZGUgZXMgZGFkdXJjaCBub2NoIHNjaGxpbW1lcj8gIGphIFtdCgoxMi4gSGFiZW4gU2llIGRhcyBIYW5kYnVjaCBnZWxlc2VuPyAgamEgW10gbmVpbiBbXQoKMTMuIFNlaWVuIFNpZSBlaHJsaWNoLiBIYWJlbiBTaWUgZGFzIEhhbmRidWNoIHdpcmtsaWNoIGdlbGVzZW4/CiAgICB2aWVsbGVpY2h0IFtdIG5laW4gW10KCjE0LiBTaW5kIFNpZSBhYnNvbHV0IHNpY2hlciwgZGEgU2llIGRhcyBIYW5kYnVjaCBnZWxlc2VuIGhhYmVuPwogICAgbmVpbiBbXQoKMTUuIEZhbGxzIFNpZSBkYXMgSGFuZGJ1Y2ggZ2VsZXNlbiBoYWJlbjogaGFiZW4gU2llIGVzIHZlcnN0YW5kZW4/CiAgICBqYSBbXSBuZWluIFtdCgoxNi4gV2VubiBqYSwgZXJrbGFlcmVuIFNpZSwgd2llc28gU2llIGRhcyBQcm9ibGVtIG5pY2h0IHNlbGJzdCBsb2VzZW4KICAgIGtvbm50ZW46CiAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgoxNy4gV2FzIGhhYmVuIFNpZSBtaXQgZGVtIENvbXB1dGVyIGdlbWFjaHQsIGFscyBkYXMgUHJvYmxlbSBhdWZ0cmF0OgogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKMTguIFdlbm4gU2llICJOaWNodHMiIGdlYW50d29ydGV0IGhhYmVuLCBlcmtsYWVyZW4gU2llIGJpdHRlLCB3aWVzbyBkZXIKICAgIENvbXB1dGVyIGVpbmdlc2NoYWx0ZXQgd2FyLgogICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKMTkuIFNpbmQgU2llIHNpY2hlciwgZGEgU2llIHNpY2ggZGFzIFByb2JsZW0gbmljaHQgZWluYmlsZGVuPwogICAgamEgW10gbmVpbiBbXQoKMjAuIFplaWd0IGRpZSBVaHIgYXVmIElocmVtIFZDUiBlaW4gYmxpbmtlbmRlcyAxMi4wMD8KICAgIGphIFtdIFdhcyBpc3QgZWluIFZDUj8gW10KCjIxLiBIYWJlbiBTaWUgZWluIEV4ZW1wbGFyIHZvbiAiUEMtQmVkaWVudW5nIGZ1ZXIgSWRpb3RlbiI/CiAgICBqYSBbXSBuZWluIFtdCgoyMi4gSGFiZW4gU2llIGVpbmVuIG5ldXRyYWxlbiBaZXVnZW4gZnVlciBJaHIgUHJvYmxlbT8gIGphIFtdIG5laW4gW10KCjIzLiBIYWJlbiBTaWUgaXJnZW5kd2VsY2hlIGVsZWt0cm9uaXNjaGVuIEdlcmFldGUgZGllIGZ1bmt0aW9uaWVyZW4/CiAgICBqYSBbXSBuZWluIFtdCgoyNC4gR2lidCBlcyBqZW1hbmRlbiwgZGVtIG1hbiBkaWUgU2NodWxkIGZ1ZXIgZGllc2VzIFByb2JsZW0genV3ZWlzZW4KICAgIGtvZW5udGU/ICBqYSBbXSBuZWluIFtdCgoyNS4gSGFiZW4gU2llIGRlciBNYXNjaGluZSBlaW5lbiBrcmFlZnRpZ2VuIFNjaGxhZyBnZWdlbiBkYXMgR2VoYWV1c2UKICAgIHZlcnNldHp0PyAgamEgW10gbmVpbiBbXQoKMjYuIEJyZW5udCBkZXIgQ29tcHV0ZXI/ICBqYSBbXSBub2NoIG5pY2h0IFtdCgoyNy4gS29lbm5lbiBTaWUgbmljaHRzIGFuZGVyZXMgdHVuLCBzdGF0dCBtaWNoIHp1IGJlbGFlc3RpZ2VuPyAgamEgW10KCkdydXNzCiAgIFBob2JvcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2llIGRlciBCZWdyaWZmICJFcnptYWdpZXIiIGVudHN0YW5kZW4gaXN0IChTbHlmb3gsIDIyLiBGZWIgMjAwMCwgMDg6NTA6NDkpOgpEaWUgRXJ6bWFnaWVyIGhpZXNzZW4gdXJzcHJ1ZW5nbGljaCAiQWJ3ZXJ0dW5nc21hZ2llciIuIElocmUgQXJiZWl0CmJlc3RhbmQgZGFyaW4sIG1vZWdsaWNoc3QgdmllbCBpbSBNdWQgYWJ6dXdlcnRlbiwgZGFoZXIgZGVyIE5hbWUuIERvY2gKdmllbGVuIHdhciBkZXIgQmVncmlmZiB6dSBsYW5nLCBzbyB3dXJkZW4gc2llIG51ciBub2NoICJBYndhZXJ0c21hZ2llciIKZ2VuYW5udCAtIGR1cmNoIHNpZSBnaW5nIGVzIGF1Y2ggenVuZWhtZW5kIGFid2FlcnRzIG1pdCBkZW4gYXJtZW4gU2VoZXJuLgpEb2NoIGRlciBCZWdyaWZmIHdhciBkZW4gSGVycmVuIHdpZWRlcnVtIHp1IHVuc2Nob2VuLCBzbyBuYW5udGVuIHNpZSBzaWNoCmVpbmZhY2ggIkVyem1hZ2llciIuCgpTbywgbnVuIHdpc3N0IGlociBhbGxlLCB3b2hlciBkZXIgTmFtZSBrb21tdCwgdW5kIGRhc3MgZGllIEFyYmVpdCBlaW5lcwpFcnptYWdpZXJzIHN0ZXRzIG1pdCBBYndlcnRlbiB2ZXJidW5kZW4gaXN0LCB3YXMgZGllIFNlaGVyIGhpZXIgenVyIFplaXQKYXVjaCBhbGxlIHBhYXIgVGFnZSB6dSBzcHVlcmVuIGtyaWVnZW4uCgogICBFdWVyIFNseWZveAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9udGFuYSBHcml6emx5IEJlYXIgTm90aWNlIChIb2JvLCAyMy4gRmViIDIwMDAsIDE0OjQyOjEyKToKSW4gbGlnaHQgb2YgdGhlIHJpc2luZyBmcmVxdWVuY3kgb2YgaHVtYW4vZ3JpenpseSBiZWFyIGNvbmZsaWN0cywgdGhlIE1vbnRhbmEKRGVwYXJ0bWVudCBvZiBGaXNoIGFuZCBHYW1lIGlzIGFkdmlzaW5nIGhpa2VycywgaHVudGVycywgYW5kIGZpc2hlcm1lbiB0byB0YWtlCmV4dHJhIHByZWNhdXRpb25zIGFuZCBrZWVwIGFsZXJ0IGZvciBiZWFycyB3aGlsZSBpbiB0aGUgZmllbGQuIFdlIGFkdmlzZSB0aGF0Cm91dGRvb3JzbWVuIHdlYXIgbm9pc3kgbGl0dGxlIGJlbGxzIG9uIHRoZWlyIGNsb3RoaW5nIHNvIGFzIG5vdCB0byBzdGFydGxlCmJlYXJzIHRoYXQgYXJlbid0IGV4cGVjdGluZyB0aGVtLiBXZSBhbHNvIGFkdmlzZSBvdXRkb29yc21lbiB0byBjYXJyeSBwZXBwZXIKc3ByYXkgd2l0aCB0aGVtIGluIGNhc2Ugb2YgYW4gZW5jb3VudGVyIHdpdGggYSBiZWFyLgoKSXQgaXMgYWxzbyBhIGdvb2QgaWRlYSB0byB3YXRjaCBvdXQgZm9yIGZyZXNoIHNpZ25zIG9mIGJlYXIgYWN0aXZpdHkuCk91dGRvb3JzbWVuIHNob3VsZCByZWNvZ25pemUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBibGFjayBiZWFyIHR1cmQgYW5kCmdyaXp6bHkgYmVhciB0dXJkLiBCbGFjayBiZWFyIHR1cmQgaXMgc21hbGxlciBhbmQgY29udGFpbnMgbG90cyBvZiBiZXJyaWVzIGFuZApzcXVpcnJlbCBmdXIuIEdyaXp6bHkgYmVhciB0dXJkIGhhcyBsaXR0bGUgYmVsbHMgaW4gaXQgYW5kIHNtZWxscyBsaWtlIHBlcHBlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZldWVyd2VociAoR3JpbW1ib3JuLCAyMy4gRmViIDIwMDAsIDIwOjE3OjA5KToKS29tbXQgZGVyIEZldWVyd2VocmhhdXB0bWFubiBpbiBkZW4gQXVmZW50aGFsdHNyYXVtIHNlaW5lciBMZXV0ZSB1bmQgc2FndApnZW11ZXRsaWNoOiAiTWFjaHQgZXVjaCBtYWwgbGFuZ3NhbSBmZXJ0aWcuIERhcyBGaW5hbnphbXQgYnJlbm50LiIKCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3ByYWNod2lzc2Vuc2NoYWZ0bGljaGVyIEFuc2F0ei4uLiAoQW5hdG9sLCAyNC4gRmViIDIwMDAsIDE1OjQ0OjAyKToKCldpZSBoZWlzc3QgZGllIFplaXRmb3JtIHZvbiAiRHUgaGFldHRlc3QgbmllIGdlYm9yZW4gd2VyZGVuIHNvbGxlbi4iPwoKCi4uLi4uLi4gUHJhZXNlcnZhdGl2IEltcGVyZmVrdC4KCgpBbmF0b2wgKGZhbmRzIGltIE1haWxmb2xkZXIpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNwcmFjaHdpc3NlbnNjaGFmdGxpY2hlciBBbnNhdHouLi4gKEdyaW1tYm9ybiwgMjQuIEZlYiAyMDAwLCAyMTo0ODoyOCk6Cn4jISBybj1BbmF0b2wgcnQ9OTUxNDAzNDQyIHJnPXdpdHplCn4jISB0aWQ9OTUxNDAzNDQyCihub2NoKSBhdXNyZWljaGVuZC4KCkRpZSBrb3JyZWt0ZSBBbnR3b3J0IGlzdCAiUHJhZXNlcnZhdGl2IERlZmVrdCIuCgpOYWphLiBQZWlubGljaCwgd2VubiBtYW4gS2FybmV2YWxzc2VuZHVuZ2VuIGd1Y2t0Li4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1c3p1ZWdlIGF1cyBCcmllZmVuLCBkaWUgZGFzIFdvaG51bmdzLSBiencuIFNvemlhbGFtdCBlcnJlaWNodGVuOiAoQXBvcGhpcywgMjcuIEZlYiAyMDAwLCAxMToyOToxMyk6CkljaCBoYWJlIGRlbiBSaGV1bWF0aXNtdXMgdW5kIGVpbiBLaW5kIHZvbiA0IEphaHJlbiwgd2FzIGF1ZiBkaWUgCkZldWNodGlna2VpdCB6dXJ1ZWNrenVmdWVocmVuIGlzdC4gSWNoIG1vZWNodGUgZWluZSBXb2hudW5nIGFuZ2V3aWVzZW4gCmJla29tbWVuLCBkYSBpY2ggZ3Jvc3NlbiBIZWlyYXRzZHJhbmcgaW4gbWlyIHZlcnNwdWVyZS4KSW4gZGllc2VyIFdvaG51bmcga2FubiBpY2ggbmljaHQgYmxlaWJlbiwgZGEgaWNoIGRhdWVybmQgZGVyIFNpdHRsaWNoa2VpdCAKYXVzZ2VzZXR6dCBiaW4uIEljaCBoYWJlIGVpbmUgVG9jaHRlciB1bmQgNCBTb2VobmUgdW5kIHdpciBzaW5kIGFsbGUgc28gCmJlc2NocmFlbmt0LCBkYXNzIHdpciBudXIgMiBCZXR0ZW4gYXVmc3RlbGxlbiBrb2VubmVuLiBJbiBlaW5lbSBCZXR0IHNjaGxhZmVuIApkaWUgSnVuZ2VucywgaW4gZGVtIGFuZGVyZW4gbWVpbmUgVG9jaHRlciB1bmQgaWNoLCB3YXMgc2Nob24gZ2VnZW4gZGFzIApadWNodGhhdXMgaXN0LiBJY2ggYmluIHNlaXQgMiBNb25hdGVuIHZlcmhlaXJhdGV0IHVuZCBoYWJlIG5vY2gga2VpbmUgCkZhbWlsaWVud29obnVuZy4gTWVpbmUgRnJhdSBpc3QgaW4gYW5kZXJlbiBVbXN0YWVuZGVuLiBOdW4gZnJhZ2UgaWNoIFNpZSwgCiJNdXNzIGRhcyBzZWluPyIuIERpZSBVcnNhY2hlIGlzdCBkYXJhdWYgenVydWVja3p1ZnVlaHJlbiwgZGFzcyBoaWVyIGRlciAKSGF1c2hlcnIgc2VpbmUgU3BpdHplIGdlZ2VuIG1laW5lIEZyYXUgcmljaHRldC4KCkljaCBtdXNzIFNpZSBiaXR0ZW4sIG1pY2ggaW5uZXJoYWxiIHZvbiA4IFRhZ2VuIHp1IGJlZnJpZWRpZ2VuLCBzb25zdCBtdXNzCmljaCBtaWNoIGFuIGRpZSBvZWZmZW50bGljaGtlaXQgd2VuZGVuLiBNZWluIE1hbm4gbWFjaHQga2VpbmUgR2VzY2hhZWZ0ZSAKbWVociwgd2VubiBlciBtYWwgZWlucyBtYWNodCwgZGFubiBzaW5kIGVzIG51ciBUcm9wZmVuIGF1ZiBkZW4gaGVpc3NlbiBTdGVpbi4KSGllcm1pdCBzdGVsbGUgaWNoIGVpbmVuIEFudHJhZyBhdWYgZWluIEJldHQgbWl0IEluaGFsdC4gSW4gZGVyIEthbW1lciAKc2NobGFlZnQgbWVpbmUgVG9jaHRlciB1bmQgdWViZXIgaWhyIGRpZSBHYXN1aHIuIERpZXNlbGJlIGtvbW10IGluIGVpbmVtIApNb25hdCBuaWVkZXIuIE51biBmcmFnZSBpY2g6ICJXb2hpbiBtaXQgaWhyPyIuIApGcmF1IE11ZWxsZXIgbGFlc3N0IGRhdWVybmQgaWhyIFdhc3NlciBtaXQgbGF1dGVtIEdldG9lc2UgbGF1ZmVuLiBJY2ggYml0dGUsIAplaW5lbiBNYW5uIHp1IHNjaGlja2VuLCBkZXIgQWJoaWxmZSBzY2hhZmZ0LiBNZWluIE1hbm4gYnJhdWNodCBkcmluZ2VuZCAKZWluZSBuZXVlIEhvc2UgZnVlciBzZWluZSBUYWV0aWdrZWl0IGFscyBNdXNpa2VyLCBkYSBlciBpbiBkZXIgYWx0ZW4ga2VpbmUgCk11c2lrIG1laHIgbWFjaGVuIGthbm4uR2VnZW51ZWJlciB2b24gdW5zIGlzdCBlaW4gSGVpbSBmdWVyIGdlYmFlcmVuZGUgCk11ZXR0ZXIuIEVpbmUgR2ViYWVybXV0dGVyIGxhZyBpbSBGZW5zdGVyIHVuZCB3aW5rdGUgbWlyIGZyZXVuZGxpY2ggenUuCkRlciBCZWFtdGUsIGRlciBtZWluZSBLb2hsZW4gYWJnZWxlaG50IGhhdCwgc29sbCBtYWwgaW0gV2ludGVyIGJlaSBtaXIgCnNjaGxhZmVuLCBkYW1pdCBlciBmdWVobHQsIHdhcyBmdWVyIGVpbiBrYWx0ZXMgTG9jaCBpY2ggaGFiZS4KSWNoLCA3MiBKYWhyZSBhbHQsIG1laW5lIEZyYXUgNjgsIHdpciBoYWJlbiA5IEtpbmRlciBnZXpldWd0IHVuZCB0dW4gCnVuc2VyZSBQZmxpY2h0IG5vY2ggaGV1dGUsIGFiZXIgYmVpIGRlbSBTY2huZWUgdW5kIGRlciBLYWVsdGUgaXN0IGVzIApvaG5lIFNjaHVoZSBuaWNodCBtZWhyIG1vZWdsaWNoLiBJY2ggYml0dGUgZHJpbmdlbmQsIG1pciBlaW5lbiBFbGVrdHJpa2VyIAp6dSBzY2hpY2tlbiwgc29uc3QgbXVzcyBpY2ggaW4gZGVyIG5hZWNoc3RlbiBOYWNodCB3aWVkZXIgZGllIEtlcnplIG5laG1lbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6OmdyaW5zOjogKEdyYWNlLCAyOS4gRmViIDIwMDAsIDA1OjU1OjQ3KToKaHR0cDovL25ld3MuZXhjaXRlLmNvbS9uZXdzL3IvMDAwMjI4LzA5L29kZC1jb25kb20KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXVlbiA6KSAoVW5hc2FpLCAgMS4gTWFyIDIwMDAsIDE0OjU1OjE5KToKbnVyIG5lIGtsZWluZSBaaXRhdHNhbW1sdW5nLCBtb2VnZSBzaWNoIGplZGVyIHNlbHN0IHNlaW5lIE1laW51bmcgYmlsZGVuIDopKQoKVW50ZXIgVmVyemljaHQgdmVyc3RlaGVuIEZyYXVlbiBkaWUga3VyemUgUGF1c2UKendpc2NoZW4gendlaSBXdWVuc2NoZW4uCiAgICAgICAgICAgIE1hcmlvIEFkb3JmCgoKV2VubiBGcmF1ZW4gbmljaHQgbWVociB3aXNzZW4sIHdhcyBzaWUgdHVuIHNvbGxlbiwKemllaGVuIHNpZSBzaWNoIGF1cywgdW5kIGRhcyBpc3Qgd2FocnNjaGVpbmxpY2ggZGFzCkJlc3RlLCB3YXMgRnJhdWVuIHR1biBrb2VubmVuLgogICAgICAgICAgICBTYW11ZWwgQmVja2V0dAoKCktlaW4ga2x1Z2VyIE1hbm4gd2lkZXJzcHJpY2h0IHNlaW5lciBGcmF1LiBFciB3YXJ0ZXQsCmJpcyBzaWUgZXMgc2VsYnN0IHR1dC4KICAgICAgICAgICAgSHVtcGhyZXkgQm9nYXJ0CgoKRmVtaW5pc211cyBleGlzdGllcnQgbnVyLCB1bSBoYWVzc2xpY2hlIEZyYXVlbiBpbiBkaWUKR2VzZWxsc2NoYWZ0IHp1IGludGVncmllcmVuLgogICAgICAgICAgICBCdWtvd3NraQoKCldlbm4gZWluZSBGcmF1IG5pY2h0IHNwcmljaHQsIHNvbGwgbWFuIHNpZSB1bSBIaW1tZWxzCndpbGxlbiBuaWNodCB1bnRlcmJyZWNoZW4uCiAgICAgICAgICAgIEVucml5ZXUgQ2FzdGFsZG8KCgpEZXIgZ3V0ZSBSdWYgZWluZXIgRnJhdSBiZXJ1aHQgYXVmIGRlbSBTY2h3ZWlnZW4KbWVocmVyZXIgTWFlbm5lci4KICAgICAgICAgICAgTWF1cmljZSBDaGV2YWxpZXIKCgpWb3JzaWNodCB2b3IgZWluZW0gV2VpYmUsIHdlbGNoZXMgbG9naXNjaGVzIERlbmtlbgpvZmZlbmJhcnQhIERlbm4gTG9naWsgdW5kIGRhcyBXZWliIHNpbmQgc28gaGV0ZXJvZ2VuLApkYXNzIGVzIFVubmF0dXIgaXN0LCAgd2VubiBzaWUgenVzYW1tZW4gYXVmdHJldGVuLgogCgpFcyBnaWJ0IGRyZWkgQXJ0ZW4gdm9uIEZyYXVlbjogZGllIHNjaG9lbmVuLCBkaWUKaW50ZWxsaWdlbnRlbiB1bmQgZGllIE1laHJoZWl0LgogICAgICAgICAgICBSYWluZXIgV2VybmVyIEZhc3NiaW5kZXIKCgpGcmF1ZW4gc2luZCBmdWVyIG1pY2ggd2llIEVsZWZhbnRlbi4gSWNoIHNlaGUgc2llIGdlcm4KYW4sIGFiZXIgaWNoIHd1ZXJkZSBrZWluZW4gaGFiZW4gd29sbGVuLgogICAgICAgICAgICBXLkMuIEZpZWxkcwoKCkRpZSBncm9zc2UgRnJhZ2UsIGRpZSBpY2ggdHJvdHogbWVpbmVzCmRyZWlzc2lnamFlaHJpZ2VuICBTdHVkaXVtcyBkZXIgd2VpYmxpY2hlbiBTZWVsZSBuaWNodAp6dSBiZWFudHdvcnRlbiB2ZXJtYWcsIGxhdXRldDogV2FzIHdpbGwgZWluZSBGcmF1CmVpZ2VudGxpY2g/CiAgICAgICAgICAgIFNpZ211bmQgRnJldWQgCgoKV2VubiBlaW5lIEZyYXUgc2ljaCBkaWUgTGlwcGVuIG5hY2h6aWVodCwgc28gaXN0IGRhcywKd2llIHdlbm4gZWluIFNvbGRhdCBzZWluIE1hc2NoaW5lbmdld2VociBwdXR6dC4KICAgICAgICAgICAgQm9iIEhvcGUKCgpEcmVpIEFydGVuIHZvbiBNYWVubmVybiB2ZXJzYWdlbiBpbSBWZXJzdGVoZW4gZGVyCkZyYXVlbjoganVuZ2UgTWFlbm5lciwgTWFlbm5lciBtaXR0bGVyZW4gQWx0ZXJzIHVuZAphbHRlIE1hZW5uZXIuCiAgICAgICAgICAgIGlyaXNjaGVzIFNwcmljaHdvcnQKCgpXb21pdCB2ZXJodWV0ZW4gRW1hbnplbiAtIG1pdCBkZW0gR2VzaWNodC4KICAgICAgICAgICAgT3NrYXIgTGFmb250YWluZQoKCkRlciBDaGFyYWt0ZXIgZWluZXIgRnJhdSB6ZWlndCBzaWNoIG5pY2h0LCB3byBkaWUKTGllYmUgYmVnaW5udCwgc29uZGVybiB3byBzaWUgZW5kZXQuICAgCiAgICAgICAgICAgIFJvc2EgTHV4ZW5idXJnCgoKRnJhdWVuIHZlcmJpbmRlbiBhbSBsaWVic3RlbiBkaWUgV3VuZGVuLCBkaWUgc2llCnNlbGJzdCBnZXNjaGxhZ2VuIGhhYmVuLgogICAgICAgICAgICBKYWNxdWVzIE1hcmNoYW5kCgoKTmljaHRzIGlzdCBzY2hsaW1tZXIgYWxzIGVpbmUgRnJhdSwgc2VsYnN0IHdlbm4gc2llCmd1dCBpc3QuCiAgICAgICAgICAgIE1lbmFuZGVyCgpEaWUgRnJhdSBpc3QgZGVyIGFubmVobWJhcnN0ZSBOYXR1cmZlaGxlci4KICAgICAgICAgICAgSm9obiBNaWx0b24KCgpEZXIgWndlY2sgaGVpbGlndCBkaWUgTWl0dGVsLiBEaWVzIG11c3Mgc2ljaCBkZXIgbGllYmUKR290dGdlZGFjaHQgaGFiZW4sIGFscyBlciBkYXMgV2VpYiBlcnNjaHVmLgogICAgICAgICAgICBUaG9tYXMgTmllZGVycmV1dGhlcgoKCkFsbGUgRnJhdWVuIHNpbmQgUHJvc3RpdHVpZXJ0ZSwgYXVzc2VyIHVuc2VyZXIgTXV0dGVyCnVuZCBkZXIgRnJhdSwgZGllIHdpciBpbSBBdWdlbmJsaWNrIGxpZWJlbi4gRGllCnR1Z2VuZGhhZnRlbiBGcmF1ZW4gc2luZCBzbyAgc3BvcmFkaXNjaGUgRmFlbGxlIHdpZQpkaWUgQXVzZ2VtdXN0ZXJ0ZW4gdW5kIGRpZSBGYWhuZW5mbHVlY2h0aWdlbi4KICAgICAgICAgICAgUGl0aWdyaWxsaQoKCkZyYXVlbjogYXVzdGF1c2NoYmFyZSBXZXJremV1Z2UgenUgZWluZW0gc3RldHMKZ2xlaWNoZW4gVmVyZ251ZWdlbi4KICAgICAgICAgICAgTWFyY2VsIFByb3VzdAoKCldlbm4gZHUgc2llaHN0LCB3ZW4gZWluaWdlIE1hZWRjaGVuIGhlaXJhdGVuLCB3ZWlzc3QKZHUsIHdpZSBzZWhyIHNpZSBlcyBoYXNzZW4gbXVlc3NlbiwgaWhyZW4KTGViZW5zdW50ZXJoYWx0IHNlbGJzdCB6dSB2ZXJkaWVuZW4uCiAgICAgICAgICAgIEhlbGVuIFJvd2xhbmQKCgpFaW5tYWwgd2VpYmxpY2gsIGltbWVyIHdlaWJsaWNoLiBEaWUgTmF0dXIgaXN0IHp3YXIKbmljaHQgIHVuZmVobGJhciwgZG9jaCBoYWVsdCBzaWUgc3RldHMgYW4gaWhyZW4KRmVobGVybiBmZXN0LgogICAgICAgICAgICBTYWtpCgoKRGFzIG5pZWRyaWcgZ2V3YWNoc2VuZSwgc2NobWFsc2NodWx0cmlnZSwKYnJlaXRodWVmdGlnZSB1bmQga3VyemJlaW5pZ2UgR2VzY2hsZWNodCBkYXMgc2Nob2VuZQp6dSBuZW5uZW4sIGRpZXMga29ubnRlIG51ciBkZXIgdm9tICBHZXNjaGxlY2h0c3RyaWViCnVtbmViZWx0ZSBtYWVubmxpY2hlIEludGVsbGVrdCBmZXJ0aWdicmluZ2VuLgogICAgICAgICAgICBBcnRodXIgU2Nob3BwZW5oYXVlcgoKCkZyYXVlbiBzaW5kIHdpZSBVZWJlcnNldHp1bmdlbjogZGllIHNjaG9lbmVuIHNpbmQKbmljaHQgdHJldSB1bmQgZGllIHRyZXVlbiBzaW5kIG5pY2h0IHNjaG9lbi4KICAgICAgICAgICAgR2VvcmdlIEJlcm5hcmQgU2hhdwoKCkVzIGlzdCBTYWNoZSBkZXIgRnJhdSwgc28gZnJ1ZWggd2llIG1vZWdsaWNoIHp1CmhlaXJhdGVuLiBEaWUgQXVmZ2FiZSBkZXMgTWFubmVzIGlzdCBlcywgc28gbGFuZ2UKdW52ZXJoZWlyYXRldCB6dSBibGVpYmVuIHdpZSBlciBrYW5uLgogICAgICAgICAgICBHZW9yZ2UgQmVybmFyZCBTaGF3CgoKQmVpIGRlciBCcmF1dHdlcmJ1bmcgaXN0IGRlciBNYW5uIHNvbGFuZ2UgaGludGVyIGVpbmVyCkZyYXUgaGVyLCBiaXMgc2llIGlobiBoYXQuICAgICAgICAgICAgICAgICAgICAKRGllIEZyYXUgaXN0IGRlciBhbm5laG1iYXJzdGUgTmF0dXJmZWhsZXIuCiAgICAgICAgICAgIEpvaG4gTWlsdG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApEZXIgQ2hhcmFrdGVyIGVpbmVyIEZyYXUgemVpZ3Qgc2ljaCBuaWNodCwgd28gZGllCkxpZWJlIGJlZ2lubnQsIHNvbmRlcm4gd28gc2llIGVuZGV0LiAgICAgICAgICAgCiAgICAgICAgICAgIEphY3F1ZSBUYXRpCgoKRnVlcmNodGUgZGVuIEJvY2sgdm9uIHZvcm4sIGRhcyBQZmVyZCB2b24gaGludGVuIHVuZApkYXMgV2VpYiB2b24gYWxsZW4gU2VpdGVuLgogICAgICAgICAgICBBbnRvbiBUc2NoZWNob3cKCgpNaXQgZGVuIE1hZWRjaGVuIG11c3MgbWFuIHNjaGxhZmVuLCB3b3p1IHNpbmQgc2llCnNvbnN0IGRhIQogICAgICAgICAgICBLdXJ0IFR1Y2hvbHNreQoKCkRpZSBGcmF1IGtvbnRyb2xsaWVydCBpaHJlbiBTZXgsIHdlaWwgc2llIGZ1ZXIgU2V4IGFsbApkYXMgYmVrb21tdCwgd2FzIGlociBub2NoIHdpY2h0aWdlciBpc3QgYWxzIFNleC4KICAgICAgICAgICAgRXN0aGVyIFZpbGFyCiAKRGllIEZyYXUgaXN0IGVpbiBtZW5zY2hsaWNoZXMgV2VzZW4sIGRhcyBzaWNoIGFuemllaHQsCnNjaHdhdHp0IHVuZCBzaWNoIGF1c3ppZWh0LgogICAgICAgICAgICBWb2x0YWlyZQoKCkRhcyBWZXJoYWVsdG5pcyB2b24gTWFubiB1bmQgV2VpYiBpc3Qga2VpbiBhbmRlcmVzIGFscwpkYXMgdm9uIFN1Ympla3QgdW5kIE9iamVrdC4gRGVyIE1hbm4gaXN0IGRhcyBFdHdhcywKZGFzIFdlaWIgaXN0IGRhcyBOaWNodHMuCiAgICAgICAgICAgIE90dG8gV2VpbmluZ2VyLCBTY2h1ZWxlciBTY2hvcGVuaGF1ZXJzCgoKRXMgaXN0IG5pY2h0IHdhaHIsIGRhc3MgRnJhdWVuIGVpbmVuIE1hbm4gc3VjaGVuLCBkZXIKdmllbCBhcmJlaXRldCwgZXMgZ2VuZ3QgaWhuZW4gZWluZXIsIGRlciB2aWVsIHZlcmRpZW50LgogICAgICAgICAgICBhdXMgZGVyIFplaXRzY2hyaWZ0ICJXZXJiZW4gdW5kIFZlcmthdWZlbiIKCgpXZW5uIER1IHp1bSBXZWliZSBnZWhzdCwgdmVyZ2lzcyBkaWUgUGVpdHNjaGUgbmljaHQuCiAgICAgICAgICAgIE5pZXRzY2hlCgoKSWNoIGJld3VuZGVyZSBGcmF1ZW4sIGFiZXIgc2llIHNpbmQgbWlyIG5pY2h0IGViZW5icnRpZy4KICAgICAgICAgICAgQW50aG9ueSBRdWlubiwgMTk5NAoKCkZyYXVlbiBtc3NlbiBhYiB1bmQgenUgZWlucyBhdWYgZGVuIEhpbnRlcm4gYmVrb21tZW4uCk1hbmNoZW4gZ2VmbGx0J3MuCiAgICAgICAgICAgIFNlYW4gQ29ubmVyeSwgMTk5MwoKClZpZWxlIEZyYXVlbiB3aXNzZW4gbmljaHQsIHdhcyBzaWUgd29sbGVuLCBhYmVyIHNpZQpzaW5kIGZlc3QgZW50c2NobG9zc2VuLCBlcyB6dSBiZWtvbW1lbi4KICAgICAgICAgICAgUGV0ZXIgVXN0aW5vdiwgMTk5MyAgIAoKClZvbiBlaW5lciBGcmF1IGthbm4gbWFuIGFsbGVzIGVyZmFocmVuLCB3ZW5uIG1hbiBrZWluZQpGcmFnZW4gc3RlbGx0LgogICAgICAgICAgICBXaWxsaWFtIFNvbWVyc2V0IE1hdWdoYW0gKDE4NzQgLSAxOTY1KQoKCkZyYXVlbiBzb2xsdGVuIGxpZWJlciB3aWVkZXIgZGllIEtpbmRlciBhdWZ6aWVoZW4gdW5kCmlocmUgTW5uZXIgdmVyd2huZW4uIERhcyBrbm5lbiBzaWUgc293aWVzbyBiZXNzZXIKYWxzIEdlc2NoZnRlIG1hY2hlbi4KICAgICAgICAgICAgSmFjayBLbHVnbWFuLCAxOTkzCgoKTmF0dXJsaWNoIGlzdCBtaXIgbWVpbmUgRnJhdSB3aWNodGlnLiBBYmVyIEZyZXVuZGUKc2luZCB3aWNodGlnZXIuIEVoZXIgd3JkZSBpY2ggYXVmIG1laW5lIEZyYXUKdmVyemljaHRlbiBhbHMgYXVmIG1laW5lIEZyZXVuZGUuCiAgICAgICAgICAgIEtldmluIENvc3RuZXIsIDE5OTMKCkhldXRlIGhhYmVuIGVzIGRpZSBGcmF1ZW4gbnVyIG5vY2ggYmVpbSBGcmlzZXVyIGVpbGlnLAp1bnRlciBkaWUgSGF1YmUgenUga29tbWVuLgogICAgICAgICAgICBKb2FjaGltIEZ1Y2hzYmVyZ2VyLCAxOTkzCgoKRnJhdWVuIGhhYmVuIGVpbmVuIGdyb2VuIE5hY2h0ZWlsLiBTaWUgaGFsdGVuIHNpY2gKYWxsZSBmciBTY2hhdXNwaWVsZXJpbm5lbiB1bmQgemVpZ2VuIG5pZSBpaHIgd2FocmVzCkdlc2ljaHQuCiAgICAgICAgICAgIFJvZCBTdGV3YXJ0LCAxOTkzCgoKRGFzIHdhaHJlIE5ldHRvZ2V3aWNodCBlaW5lciBEYW1lIGlzdCBpbW1lciBlcnN0Cm1lc3NiYXIsIHdlbm4gc2llIGlociAgTWFrZS11cCBhYmdldHJhZ2VuIGhhdC4KICAgICAgICAgICAgSGFucy1Kb2FjaGltIFJhdXNjaGVuYmFjaCwgMTk5MwoKCkRhIGRpZSBGcmF1ZW4gbmljaHQgbWVociB0cmV1IHNlaW4gd29sbGVuLCBicmF1Y2h0IG1hbgpzaWUgZ2FyIG5pY2h0IGVyc3QgenUgaGVpcmF0ZW4uCiAgICAgICAgICAgIFN5bHZlc3RlciBTdGFsbG9uZSwgMTk5MgoKCkZyYXVlbiBoYWJlbiBlaW5lbiB1bnRyZ2xpY2hlbiBJbnN0aW5rdCBmciBhbGxlcywKYXVzc2VyIGZyIGRhcywgd2FzIGF1ZiBkZXIgSGFuZCBsaWVndC4KICAgICAgICAgICAgT3NjYXIgV2lsZGUgKDE4NTQgLSAxOTAwKQoKCldhcnVtIHdvbGxlbiBkaWUgRnJhdWVuIGRlbm4gdW5iZWRpbmd0IHNvIHNlaW4gd2llIGRpZQpNbm5lciB1bmQgdHJhZ2VuIGRhbm4gdHJvdHpkZW0gaG9oZSBBYnN0emUgdW5kClNjaG11Y2s/CiAgICAgICAgICAgIEhhbnMtSm9hY2hpbSBLdWxlbmthbXBmZiwgMTk5MgoKCkZyYXVlbiBicmF1Y2hlbiBzaWNoIG5pY2h0IHp1IGVtYW56aXBpZXJlbi4gU28gZ3V0IHdpZQpNbm5lciB3ZXJkZW4gc2llIGVoIG5pY2h0LgogICAgICAgICAgICBKYWNrIE5pY2hvbHNvbiwgMTk5MwoKCkVpbiBNbm5lcmFiZW5kIG1pdCBHbG90emUsIEJpZXIgdW5kIENoaXBzIGlzdAp0YXVzZW5kbWFsIGJlc3NlciBhbHMgZWluIG5vYmxlcyBBYmVuZGVzc2VuIG1pdCBlaW5lcgpGcmF1LCBkaWUgamEgZG9jaCBpbW1lciBudXIgS29tcGxpbWVudGUgaHJlbiB3aWxsLgogICAgICAgICAgICBKb2huIE1jRW5yb2UsIDE5OTMKCgpGcmF1ZW4gbWFjaGVuIHNpY2ggbmljaHQgc2NobiwgdW0gTW5uZXJuIHp1CmdlZmFsbGVuLiBTaWUgdHVuIGVzLCB1bSBhbmRlcmUgRnJhdWVuIHp1IHJnZXJuLgogICAgICAgICAgICBNYXJjZWwgQXltZSAoMTkwMiAtIDE5NjcpCgoKQmVpIGRlbiBGcmF1ZW4gZ2lidCBlcyB6d2VpIE1nbGljaGtlaXRlbiwgZW50d2VkZXIKc2llIHNpbmQgRW5nZWwsIG9kZXIgc2llIGxlYmVuIG5vY2guCiAgICAgICAgICAgIENoYXJsZXMgQmF1ZGVsYWlyZSAoMTgyMSAtIDE4NjcpCgoKU29sYW5nZSBkZXIgTmFnZWxsYWNrIG5pY2h0IHRyb2NrZW4gaXN0LCBpc3QgZWluZSBGcmF1CnByYWt0aXNjaCB3ZWhybG9zLgogICAgICAgICAgICBCdXJ0IFJleW5vbGRzLCAxOTkzCgoKSW4gRnJhdWVuIHNlaGUgaWNoIGF1Y2ggaW50ZWxsZWt0dWVsbGUgUGFydG5lcmlubmVuLgogICAgICAgICAgICBNYXJjZWwgUmVpY2gtUmFuaWNraSwgMTk5MwoKCkZyYXVlbiBoYWJlbiBoZXV0ZSBzaWNoZXIgbWVociBSZWNodGUuIEFiZXIgbWVociBNYWNodApoYXR0ZW4gc2llIGZyaGVyLgogICAgICAgICAgICBDaGFybGVzIEF6bmF2b3VyLCAxOTkyCgoKV2VubiBlaW5lIHNjaG9uZSBGcmF1IGRhdm9uZ2VodCwgaGF0IG1hbiBpbW1lcmhpbiBub2NoCmRhcyAgTmFjaHNlaGVuLgogICAgICAgICAgICBHZW9yZyBUaG9tYWxsYSwgMTk5MgoKCkRhcyBMZWJlbiBvaG5lIEZyYXVlbiB3YXJlIGZhZCB1bmQgbGVlci4gRG9jaCB3YXJ1bQpoYXQgR290dCBpaG5lbiBkaWUgU3ByYWNoZSBnZXNjaGVua3Q/IFdyZW4gc2llIHN0dW1tLAprbm50ZSBtYW4gc2llIHZpZWwgbWVociBsaWViZW4uCiAgICAgICAgICAgIEdlcmFyZCBEZXBhcmRpZXUsIDE5OTMKCgpFcyBnaWJ0IG51ciBldHdhcywgd2FzIHRldXJlciBpc3QgYWxzIGVpbmUgRnJhdSAtCm5tbGljaCBlaW5lIEV4LUZyYXUuCiAgICAgICAgICAgIEphY2sgTmljaG9sc29uLCAxOTkzCgoKQWxsZSBGcmF1ZW4gc2luZCBNZWlzdGVyIGRlcyBnZWZsc3RlcnRlbiBXdW5zY2h6ZXR0ZWxzLgogICAgICAgICAgICBIZWlueiBSaG1hbm4sIDE5OTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgpFaW5lIEZyYXUgdmVyemVpaHQgYWxsZXMgLSBhYmVyIHNpZSBlcmlubmVydCB1bnMgb2Z0CmRhcmFuLCBkYXNzIHNpZSB1bnMgdmVyemllaGVuIGhhdC4KICAgICAgICAgICAgS2FybGhlaW56IEJobSwgMTk5MgoKCkEgd29tYW4gaXMgb25seSBhIHdvbWFuLCBidXQgYSBnb29kIGNpZ2FyIGlzIGEgc21va2UuCiAgICAgICAgICAgIFcuIEMuIEZpZWxkcyAoMTg4MCAtIDE5NDYpCgoKRGllIExpZWJlIGVpbmVyIEZyYXUgaXN0IHNvIHNjaG4sIHZlcmhlaXNzdW5nc3ZvbGwgdW5kCnJlaW4gd2llIGVpbiBiZXJmbGx0ZXIgTWxsZWltZXIuCiAgICAgICAgICAgIEppbW15IENvbm5vcnMsIDE5OTMKCgpEZXIgZ2FuemUgRW1hbnppcGF0aW9uc3J1bW1lbCBoYXQgbmljaHRzIGRhcmFuCmdlbmRlcnQsIGRhc3MgRnJhdWVuIHNpY2ggc2NobiBtYWNoZW4sIHVtIE1ubmVybiB6dQpnZWZhbGxlbi4KICAgICAgICAgICAgTWFyY2VsbG8gTWFzdHJvaWFubmksIDE5OTIgICAKCgpJY2ggdHJhZ2UgZWluZSBGcmF1IGxpZWJlciB6dSBHcmFiZSwgYWxzIHNpZSBtaXQgZWluZW0KYW5kZXJlbiBnbGNrbGljaCB6dSBzZWhlbi4KICAgICAgICAgICAgUGFibG8gUGljYXNzbyAoMTg4MSAtIDE5NzMpCgoKTHVnZW4gZ2xhdWJ0IGplZGUgRnJhdS4gRGFzIFNjaHdpZXJpZ2UgaXN0LCBpaHIgZGllCldhaHJoZWl0IGJlZ3JlaWZsaWNoIHp1IG1hY2hlbi4KICAgICAgICAgICAgTWFyY2VsbG8gTWFzdHJvaWFubmksIDE5OTMKCgpGcmF1ZW4gaW0gVG9wbWFuYWdlbWVudD8gRGllIHdlcmRlbiB3b2hsIGRpZSBBdXNuYWhtZQpibGVpYmVuLiBEYXMgVG9wbWFuYWdlbWVudCBpc3Qgc28gaGFydCAtIGRhdm9yIG11c3MKbWFuIGRpZSBGcmF1ZW4gYmV3YWhyZW4uCiAgICAgICAgICAgIEhlcmJlcnQgR2llbm93LCAxOTkzCgoKQWxsZSBncm9lbiBWZXJmaHJlciBoYWJlbiBnZXd1c3N0LCBkYXNzIEZyYXVlbiBlcnN0CmRhbm4gZGVuIE11bmQgaGFsdGVuLCB3ZW5uIHNpZSBnZWtzc3Qgd2VyZGVuLgogICAgICAgICAgICBNYXJjZWwgQXltZSAoMTkwMiAtIDE5NjcpCgoKTmF0dXJsaWNoIGlzdCBlaW4gQnVjaCBHZWdlbnN0YW5kIGRlciBadW5laWd1bmcgb2RlcgpBYm5laWd1bmcuIE1hbiB2ZXJsaWVydCwgd2llIGF1Y2ggYmVpIEZyYXVlbiwgb2Z0IGRpZQpHZWR1bGQgdW5kIGxhbmd3ZWlsdCBzaWNoLgogICAgICAgICAgICBNYXJjZWwgUmVpY2gtUmFuaWNraSwgMTk5MwoKCkZyYXVlbiwgZGllIHp1IGlocmVtIEtycGVyIHN0ZWhlbiB1bmQgd2lzc2VuLCB3YXMgc2llCm1pdCBpaHJlbSBLcnBlciBhbnN0ZWxsZW4sIHJ1aGVuIGluIHNpY2ggc2VsYnN0LiBEYXMKdmVybGVpaHQgaWhuZW4gZWluZSBtYWdpc2NoZSBBbnppZWh1bmdza3JhZnQuCiAgICAgICAgICAgIEp1cmdlbiBEcmV3cywgMTk5MwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCkZyYXVlbiwgZGllIGVtYW56aXBpZXJ0IHNpbmQsIGludGVyZXNzaWVyZW4gbWljaCBudXIKYWxzIEV4cGVyaW1lbnRpZXJtdXNlLgogICAgICAgICAgICBQZXRlciBaYWRlY2ssIDE5OTMKCgpGcmF1ZW4gc2luZCBkYSwgdW0gZ2VsaWVidCwKbmljaHQgdW0gdmVyc3RhbmRlbiB6dSB3ZXJkZW4uCiAgICAgICAgICAgIE9zY2FyIFdpbGRlICgxODU0IC0gMTkwMCkKCgoKRnJhdWVuIHNpbmQgd2llIFppZ2FyZXR0ZW4gLi4uClp1ZXJzdCB6aWVoZW4gc2llIGdhbnogZ3V0LCBhYmVyIGFtIFNjaGx1CnNhbW1lbHQgc2ljaCBhbGxlcyBHaWZ0IGltIE11bmRzdGNrLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgCgpVbmEqICpncmluc2VuZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGcmF1ZW4gOikgKERyZWFtZXIsICAxLiBNYXIgMjAwMCwgMTU6MDc6MzcpOgp+IyEgcm49VW5hc2FpIHJ0PTk1MTkxODkxOSByZz13aXR6ZQp+IyEgdGlkPTk1MTkxODkxOQoKTm9jaCBlaW4gWnVzYXR6OgoKCiJEZXIga3Vlcnplc3RlIFdlZyB6dW0gSGVyemVuIGVpbmVyIEZyYXUKIGZ1ZWhydCBkdXJjaCBpaHJlbiBCcnVzdGtvcmIuIgoKCkRSRUFNRVIsIGZpZXMgZ3JpbnNlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEZyYXVlbiA6KSAoTm9ubmUsICAxLiBNYXIgMjAwMCwgMTU6MDk6NTEpOgp+IyEgcm49RHJlYW1lciBydD05NTE5MTk2NTcgcmc9d2l0emUKfiMhIHRpZD05NTE5MTg5MTkKCldhcyBpc3QgZGFzIGBkaWUgRWhyZSBkZXIgRnJhdWAgZGllIG51ciAyIFpvbGwgdm9tIEFyc2NobG9jaCBlbnRmZXJudCBsaWVndD8KCiAgICAgICBTY2hvcGVuaGF1ZXIKCk5vbm5lLCBrZW5udCBhdWNoIFppdGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRnJhdWVuIDopIChSdW1hdGEsICAxLiBNYXIgMjAwMCwgMTY6MDM6MjEpOgp+IyEgcm49Tm9ubmUgcnQ9OTUxOTE5NzkxIHJnPXdpdHplCn4jISB0aWQ9OTUxOTE4OTE5CmRpZSBOaWVyZT8KUnVtYXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBGcmF1ZW4gOikgKFllbmRpLCAgMS4gTWFyIDIwMDAsIDE2OjA3OjI3KToKfiMhIHJuPVJ1bWF0YSBydD05NTE5MjMwMDEgcmc9d2l0emUKfiMhIHRpZD05NTE5MTg5MTkKQmVpIFNhZXVnbGluZ2VuIHZpZWxsZWljaHQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjopIChTa3ksIDEwLiBNYXIgMjAwMCwgMTk6MDA6MDEpOgpbVHJ2ZXM6VGh1Zmhpcl0gZ2VoIGVsZmVuIGtudWRkZWxuLCB3aWVzIHNpY2ggZnVlciBrYWVtcGZlciBnZWhvZXJ0Li4uCltUcnZlczpUaHVmaGlyXSA8MTg6NTU6MTQ+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaWUgbWFuIGVpbmVyIEthdHplIGVpbiBUYWJsZXR0ZSB2ZXJhYnJlaWNodCAoQmlnYXMsIDExLiBNYXIgMjAwMCwgMjM6MjY6NTQpOgoxLiBOZWhtZW4gU2llIGRpZSBLYXR6ZSBmZXN0IGluIElocmVuIEFybS4gTGVnZW4gU2llIGlocmVuIEtvcGYgYXVmCklocmVuIEVsbGVuYm9nZW4sIGdhbnogc28sIGFscyB3dWVyZGVuIFNpZSBlaW5lbSBCYWJ5IGRpZSBGbGFzY2hlCmdlYmVuLiBNdXJtZWxuIFNpZSB2ZXJ0cmF1ZW5zdm9sbCAiQnJhdmVzIEthZXR6Y2hlbiBiaXN0IER1Li4uIi4KTGFzc2VuIFNpZSBkaWUgVGFibGV0dGUgaW4gZGFzIE1hdWwgZGVyIEthdHplIGZhbGxlbi4KCjIuIEhvbGVuIFNpZSBkaWUgS2F0emUgdm9uIGRlciBTdGVobGFtcGUgaGVydW50ZXIgdW5kIGRpZSBUYWJsZXR0ZQp1bnRlcm0gU29mYSBoZXJ2b3IuCgozLiBGb2xnZW4gU2llIGRlbSBnbGVpY2hlbiBWZXJmYWhyZW4sIHdpZSB1bnRlciBQdW5rdCAxLCBhYmVyIGhhbHRlbgpTaWUgZGllIFZvcmRlcnBmb3RlbiBkZXIgS2F0emUgbWl0IElocmVyIGxpbmtlbiBIYW5kIG5pZWRlciwgdW5kIGRpZQpIaW50ZXJwZm90ZW4gbWl0IGRlbiBFbGxlbmJvZ2VuIElocmVzIHJlY2h0ZW4gQXJtcy4gU3Rvc3NlbiBTaWUgZGllClRhYmxldHRlIG1pdCBkZW0gcmVjaHRlbiBaZWlnZWZpbmdlciBpbiBpaHIgTWF1bC4KCjQuIEhvbGVuIFNpZSBkaWUgS2F0emUgdW50ZXJtIEJldHQgaGVydm9yLiBOZWhtZW4gU2llIGVpbmUgbmV1ZQpUYWJsZXR0ZSBhdXMgZGVyIEZsYXNjaGUuIFdpZGVyc3RlaGVuIFNpZSBkZW0gSW1wdWxzLCBzaWNoIGVpbmUgbmV1ZQpLYXR6ZSB6dSBob2xlbi4KCjUuIEZhaHJlbiBTaWUgZm9ydCB3aWUgdW50ZXIgUHVua3QgMSwgYXVzc2VyIGRhc3MgU2llLCB3ZW5uIFNpZSBkaWUKS2F0emUgZmVzdCBpbiBkZXIgRmxhc2NoZW5nZWItUG9zaXRpb24gaGFsdGVuLCBzaWNoIGF1ZiBkaWUgdm9yZGVyZQpTdHVobGthbnRlIHNldHplbi4gQmV1Z2VuIFNpZSBJaHJlbiBPYmVya29lcnBlciB1ZWJlciBkaWUgS2F0emUsCkhhbHRlbiBTaWUgSWhyZSBSZWNodGUgSGFuZCB1ZWJlciBJaHJlbiBsaW5rZW4gRWxsZW5ib2dlbiwgb2ZmbmVuIFNpZQpkYXMgTWF1bCBkZXIgS2F0emUgaW5kZW0gU2llIGRlbiBPYmVya2llZmVyIGhvY2hoZWJlbiB1bmQgc2NobmlwcGVuClNpZSBkaWUgVGFibGV0dGUgaGluZWluIC0gc2NobmVsbC4gRGEgSWhyIEtvcGYgYXVmIElocmVuIEtuaWVuIGxpZWd0LAprb2VubmVuIFNpZSBuaWNodCBzZWhlbiwgd2FzIFNpZSB0dW4sIGFiZXIgZGFzIG1hY2h0IG5pY2h0cy4KCjYuIExhc3NlbiBTaWUgZGllIEthdHplIGltIFZvcmhhbmcgaGFlbmdlbi4gTGFzc2VuIFNpZSBkaWUgVGFibGV0dGUgaW4KSWhyZW4gSGFhcmVuLgoKNy4gV2VubiBTaWUgZWluZSBGcmF1IHNpbmQsIHdlaW5lbiBTaWUgc2ljaCBhdXMuIFdlbm4gU2llIGVpbiBNYW5uCnNpbmQsIHdlaW5lbiBTaWUgc2ljaCBhdXMuCgo4LiBKZXR6dCByZWlzc2VuIFNpZSBzaWNoIHp1c2FtbWVuISBXZXIgaXN0IGRlbm4gaGllciBlaWdlbnRsaWNoIGRlcgpDaGVmPyEgTmVobWVuIFNpZSBkaWUgS2F0emUgdW5kIGRpZSBUYWJsZXR0ZS4gTmVobWVuIFNpZSBQb3NpdGlvbiAxIGFuCnVuZCBzYWdlbiBTaWUgc3RyZW5nOiAiV2VyIGlzdCBkZW5uIGhpZXIgZWlnZW50bGljaCBkZXIgQ2hlZj8hIi4KT2VmZmVuIFNpZSBkYXMgTWF1bCBkZXIgS2F0emUsIG5laG1lbiBTaWUgZGllIFRhYmxldHRlIHVuZC4uLiBIb3BwbGEhCgo5LiBEYXMgZnVua3Rpb25pZXJ0IHNvIG5pY2h0LCBuaWNodCB3YWhyPyBCcmVjaGVuIFNpZSB6dXNhbW1lbiB1bmQKZGVua2VuIFNpZSBuYWNoOiBBaGEhIERpZXNlIGJsaXR6ZW5kZW4gS3JhbGxlbiBzaW5kIGVzLCBkaWUgZGllc2VzCkNoYW9zIHZlcnVyc2FjaGVuLgoKMTAuIEtyaWVjaGVuIFNpZSB6dSBJaHJlbiBXYWVzY2hlc2NocmFuay4gWmllaGVuIFNpZSBlaW4gZ3Jvc3NlcwpTdHJhbmQtIEJhZGV0dWNoIGhlcmF1cy4gQnJlaXRlbiBTaWUgZGFzIEJhZGV0dWNoIGF1ZiBkZW0gRnVzc2JvZGVuCmF1cy4KCjExLiBIb2xlbiBTaWUgZGllIEthdHplIHZvbSBLdWVjaGVuc2NocmFuayBoZXJ1bnRlciB1bmQgZGllIFRhYmxldHRlCmF1cyBkZXIgVG9wZnBmbGFuemUuCgoxMi4gTGVnZW4gU2llIGRpZSBLYXR6ZSBhdWYgZGFzIEJhZGV0dWNoIGluIGRlciBOYWVoZSBlaW5lciBFY2tlIG1pdApkZW0gS29wZiBhdXNzZXJoYWxiIGRlciBsYWVuZ2VyZW4gS2FudGUuCgoxMy4gRmFsdGVuIFNpZSBkaWUgVm9yZGVyLSB1bmQgSGludGVyYmVpbmUgZGVyIEthdHplIHZvciBpaHJlbiBCYXVjaAp6dXNhbW1lbi4gV2lkZXJzdGVoZW4gU2llIGRlbSBJbXB1bHMsIGRpZSBLYXR6ZSB6dXNhbW1lbnp1ZmFsdGVuLgoKMTQuIFJvbGxlbiBTaWUgZGllIEthdHplIGluIGRhcyBCYWRldHVjaCBlaW4uIEFyYmVpdGVuIFNpZSBzY2huZWxsLgpEaWUgWmVpdCB1bmQgTWllemVuIHdhcnRlbiBhdWYgbmllbWFuZGVuLgoKMTUuIE5laG1lbiBTaWUgd2llZGVyIFBvc2l0aW9uIDEgZWluLiBEcmVoZW4gU2llIElocmUgbGlua2UgSGFuZCB6dW0KS29wZiBkZXIgS2F0emUuIEVpbiBsZWljaHRlciBEcnVjayBhdWYgYmVpZGVuIFNlaXRlbiBkZXMgS2llZmVycywgc28sCndpZSBtYW4gYXVjaCBkYXMgTWF1bCBlaW5lciBHaWZ0c2NobGFuZ2Ugb2VmZm5ldC4KCjE2LiBMYXNzZW4gU2llIGRpZSBUYWJsZXR0ZSBpbnMgTWF1bCBkZXIgS2F0emUgZmFsbGVuIHVuZCBzdG9zc2VuIFNpZQpzYW5mdCBuYWNoLiBWb2lsYSEgRGFzIHdhcidzLgoKMTcuIFN0YXVic2F1Z2VuIHNpZSBkaWUgbG9zZSBIYWFyZSBhdWYgKHZvbiBkZXIgS2F0emUpLiBMZWdlbiBTaWUKZWluZW4gVmVyYmFuZCBhbiBkaWUgVmVybGV0enVuZ2VuIChJaHJlKToKCjE4LiBOZWhtZW4gU2llIDIgQXBpcmluIGVpbiwgdW5kIGxlZ2VuIFNpZSBzaWNoIGhpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp1IGxhbmdlIGltIE5ldHouLi4gKEJpZ2FzLCAxMS4gTWFyIDIwMDAsIDIzOjMxOjQwKToKRHUgbWVya3N0LCBkYXNzIER1IEludGVybmV0c3VlY2h0aWcgYmlzdCwgd2Vubi4uLgoKLi4uLiBkdSBzY2hvbiBzbyBndXQgcGZlaWZlbiBrYW5uc3QsIGRhc3MgZHUgYXVjaCBvaG5lIE1vZGVtCiAgICAgZWluZSBWZXJiaW5kdW5nIHp1IGRlaW5lbSBTZXJ2aWNlcHJvdmlkZXIgYXVmYmF1ZW4ga2FubnN0LgoKLi4uLiBkdSBuaWNodCB3ZWlzc3QsIHdhcyBmdWVyIGVpbiBHZXNjaGxlY2h0IGRlaW5lIGJlc3RlbgogICAgIEZyZXVuZGUgaGFiZW4sIHdlaWwgc2llIGVpbmVuIG5ldXRyYWxlbiBOaWNrbmFtZSBoYWJlbi4KCi4uLi4gZGlyIGplbWFuZCBlaW5lbiBXaXR6IGVyemFlaGx0IHVuZCBkdSAiTE9MIiAoTG91Z2hpbmcKICAgICBPdXQgTG91ZCkgc2Fnc3QuCgouLi4uIGR1IG51ciBub2NoIGVpbiBWaWVydGVsc3R1ZW5kY2hlbiBvbmxpbmUgYmxlaWJlbgogICAgIHdvbGx0ZXN0IHVuZCBkYXMgamVkZSBTdHVuZGUgd2llZGVyIHZlcnNwcmljaHN0LgoKLi4uLiBkdSBGcmV1bmRlbiB2b24gZWluZXIgaGVpc3NlbiBWZXJhYnJlZHVuZyBlcnphZWhsc3QsCiAgICAgYWJlciB2ZXJzY2h3ZWlnc3QsIGRhc3Mgc2llIGluIGVpbmVtIENoYXRyYXVtIHN0YXR0ZmluZGV0LgoKLi4uLiBkZWluZSBGcmV1bmRpbiBTZXggd2lsbCwgdW5kIGR1IElociBlcmtsYWVyc3QsIGluCiAgICAgd2VsY2hlbSBDaGF0cmF1bSBzaWUgZGljaCBmaW5kZXQuCgouLi4uIGR1IGRpY2ggbWl0IGRlbiBGcmV1bmRlbiwgZGllIHVtIGRpZSBFY2tlIHdvaG5lbiwgaW0KICAgICBDaGF0cm9vbSB0cmlmZnN0LgoKLi4uLiBkdSB6dXIgVW5pIGdlaHN0LCBudXIgdW0gMSBvZGVyIDIgSmFocmUgZnJlaWVuCiAgICAgSW50ZXJuZXQtWnVnYW5nIHp1IGhhYmVuLgoKLi4uLiBkdSBkZWluZW4gTGViZW5zcGFydG5lciBGcmVtZGVuIGdlZ2VudWViZXIgYWxzCiAgICAgU2VydmljZXByb3ZpZGVyIHZvcnN0ZWxsc3QuCgouLi4uIGR1IGRhcyBHZWZ1ZWhsIGhhc3QsIGplbWFuZCBnZXRvZXRldCB6dSBoYWJlbiwgd2VubiBkdQogICAgIGRlaW4gTW9kZW0gYXVzc2NoYWx0ZXN0LgoKLi4uLiBkdSBOYWVjaHRlIGRhbWl0IHZlcmJyaW5nc3QsIGRlbiBaYWVobGVyIGF1ZiBkZWluZXIKICAgICBIb21lLVBhZ2UgdWViZXIgZGllIDIwMDAgenUgYnJpbmdlbi4KCi4uLi4gZHUgZGljaCB3dW5kZXJzdCwgZGFzcyBtYW4gYXVjaCBpbSBXYXNzZXIgc3VyZmVuIGthbm4uCgouLi4uIGRlaW4gQ29tcHV0ZXIgbWVociBhbHMgZGVpbiBBdXRvIGtvc3RldC4KCi4uLi4gYmVpIGRpciBJU0ROIHp1bSBTdGFuZGFyZCBnZWhvZXJ0LgoKLi4uLiBkdSBhbHMgQW5zY2hyaWZ0IG51ciBub2NoIGRlaW5lIGUtTWFpbC1BZHJlc3NlIGFuZ2lic3QuCgouLi4uIGR1IG9ubGluZSB6dSBzZWluIGJlc3NlciBmaW5kZXN0IGFscyBTZXggLi4uIHVuZCBkaXIKICAgICBzb2dhciBlaW5lbiBTcGllZ2VsIHVlYmVyIGRlbiBQQyBoYWVuZ3N0LgoKLi4uLiBkdSBkaXIgZWluZW4gTGFwdG9wIGthdWZzdCwgdW0gYXVjaCBhdWYgZGVtIEtsbyBzdXJmZW4KICAgICB6dSBrb2VubmVuLgoKLi4uLiBkZWluIFByb3ZpZGVyIGRpY2ggYmVpIHRlY2huaXNjaGVuIFNjaHdpZXJpZ2tlaXRlbgogICAgIGZyYWd0LgoKLi4uLiBkZWluIExlYmVuc3BhcnRuZXIgZGllIFRhc3RhdHVyIGRlaW5lcyBDb21wdXRlcnMgaW0KICAgICBPZmVuIGVpbnNjaG1pbHp0LgoKLi4uLiBkZXIgQW53YWx0IGRlaW5lciBGcmF1IGRpZSBTY2hlaWR1bmdzcGFwaWVyZSBwZXIgRS1NYWlsCiAgICAgc2NoaWNrdC4KCi4uLi4gZHUgZGlyIHNlbGJzdCBlaW5lIEUtTWFpbCBzY2hpY2tzdCwgdW0gZGljaCBhbiBEaW5nZSB6dQogICAgIGVyaW5uZXJuLgoKLi4uLiBkdSBkaWNoIGFuIGthbHRlbiBLYWZmZWUgZ2V3b2VobnQgaGFzdC4KCi4uLi4gZHUgZGllIEhvbWVwYWdlIGRlaW5lciBGcmV1bmRpbiBrdWVzc3QuCgouLi4uIGR1IHByb21wdCBqZWRlIEUtTWFpbCBiZWFudHdvcnRlc3QsIGFiZXIga2VpbmUKICAgICBCcmllZnBvc3QgbWVoci4KCi4uLi4gZHUgZWluZSBWaWVydGVsc3R1bmRlIGJyYXVjaHN0LCB1bSBkaWNoIGR1cmNoIGRlaW5lCiAgICAgQm9va21hcmtzIHp1IHNjcm9sbGVuLgoKLi4uLiBzaWNoIGluIGRlaW5lIEJyaWxsZSBlaW5lIFdlYi1TZWl0ZSBlaW5nZWJyYW5udCBoYXQuCgouLi4uIGR1IGFuZ2VzdHJlbmd0IHVlYmVybGVnc3QsIHdhcyBkdSBub2NoIGFsbGVzIGltIEludGVybmV0CiAgICAgc3VjaGVuIGtvZW5udGVzdC4KCi4uLi4gZHUgbnVyIG5vY2ggaGlucmVpc3QsIHdvIGVzIGF1Y2ggZWluZW4KICAgICBJbnRlcm5ldC1BbnNjaGx1c3MgZ2lidC4KCi4uLi4gZHUgZGVwcmVzc2l2IHdpcnN0LCB3ZW5uIGR1IHNjaG9uIG5hY2ggendlaSBTdHVuZGVuIG1pdAogICAgIGRlaW5lbiBlLU1haWxzIGZlcnRpZyBiaXN0LgoKLi4uLiBkdSBkaWNoIGltIFdXVyBzbyBndXQgYXVza2VubnN0LCBkYXNzIGR1IFN1Y2htYXNjaGluZW4KICAgICB1ZWJlcmZsdWVzc2lnIGZpbmRlc3QuCgouLi4uIGR1IGFsbGUgTGlua3MgaW4gWWFob28gc2Nob24ga2VubnN0IHVuZCBqZXR6dCBoYWxiCiAgICAgZHVyY2ggQWx0YXZpc3RhIGR1cmNoIGJpc3QuCgouLi4uIGR1IGRlaW5lIGUtTWFpbHMgdWViZXJwcnVlZnN0LCBrZWluZSBuZXVlbiBNYWlscyBhdWYgZGVtCiAgICAgU2VydmVyIHNpbmQgdW5kIGR1IGVzIG5vY2htYWwgcHJvYmllcnN0LgoKLi4uLiBkdSBiZWltIEJyaWVmc2NocmVpYmVuIG5hY2ggamVkZW0gUHVua3QgZWluIGNvbQogICAgIGVpbmZ1ZWdzdC5jb20KCi4uLi4gZGljaCBhbiBhbmRlcmVuIE1lbnNjaGVuIG51ciBkaWUgZS1NYWlsLUFkcmVzc2UKICAgICBpbnRlcmVzc2llcnQuCgouLi4uIGR1IGRlaW5lbiBOYW1lbiBudXIgbm9jaCBtaXQgQ2hyaXMgYXQgQU9MIFB1bmt0IGNvbQogICAgIGFuZ2lic3QuCgouLi4uIGR1IGZlc3RzdGVsbHN0LCBkYXNzIGRlaW5lIE1pdGJld29obmVyIGF1c2dlem9nZW4gc2luZCwKICAgICBkdSBhYmVyIGtlaW5lIEFobnVuZyBoYXN0LCB3YW5uLgoKLi4uLiBkZWluIEhhdXN0aWVyIGVpbmUgZWlnZW5lIEhvbWUtUGFnZSBoYXQuCgouLi4uIGFsbGUgZGVpbmUgRnJldW5kZSBlaW4gQCBpbSBOYW1lbiB0cmFnZW4uCgouLi4uIGR1IG5hY2h0cyBpbSBIVE1MLUZvcm1hdCB0cmFldW1zdC4KCi4uLi4gZHUgU3R1bmRlbiBicmF1Y2hzdCwgdW0gYWxsZSBkZWluZSBlLU1haWwtQWRyZXNzZW4KICAgICBhYnp1ZnJhZ2VuLgoKLi4uLiBlcyB6dSBzdGlua2VuIGFuZmFlbmd0LCB3ZWlsIGRlaW4gSGF1c3RpZXIgdmVyaHVuZ2VydAogICAgIGlzdC4KCi4uLi4gZHUgZGVpbmUgTXV0dGVyIG5pY2h0IG1laHIgZXJyZWljaHN0LCB3ZWlsIGRpZSBrZWluCiAgICAgTW9kZW0gaGF0LgoKLi4uLiBkZWluZSBUZWxlZm9ucmVjaG51bmcgaW4gVW16dWdza2FydG9ucyBnZWxpZWZlcnQgd2lyZC4KCi4uLi4gZGVpbmUgS2luZGVyIEV1ZG9yYSwgSG9tZXIgdW5kIERhdGFjb20gaGVpc3Nlbi4KCi4uLi4gZHUgYmVpIGh0dHA6Ly93d3cud2V0dGVyLmRlIG5hY2hzY2hhdXN0LCBhbnN0YXR0IGF1cwogICAgIGRlbSBGZW5zdGVyLgoKLi4uLiBkdSBpbSBJbnRlcm5ldCBhdXMgVmVyc2VoZW4gZnVlciBQb2xpdGlrZXIgYXVzIGZyZW1kZW4KICAgICBMYWVuZGVybiBzdGltbXN0LgoKLi4uLiBkZWluZSB2aXJ0dWVsbGUgRnJldW5kaW4gZGljaCBmdWVyIGplbWFuZGVuIG1pdCBtZWhyCiAgICAgQmFuZGJyZWl0ZSB2ZXJsYWVzc3QuCgouLi4uIGRlaW4gTGViZW5zcGFydG5lciB2ZXJsYW5ndCwgZGFzcyBkZXIgQ29tcHV0ZXIgbmljaHQKICAgICBtZWhyIG1pdCBpbnMgQmV0dCBrb21tdC4KCi4uLi4gZHUgZGljaCBtaXQgZm9sZ2VuZGVtIFNwcnVjaCB0YWV0b3dpZXJlbiBsYXNzZW46IERpZXNlbgogICAgIEtvZXJwZXIgYmV0cmFjaHRlbiBTaWUgYW0gYmVzdGVuIG1pdCBOZXRzY2FwZSAzLjAgb2RlciBob2VoZXIuCgouLi4uIEFsdGF2aXN0YSBiZWkgZGlyIGFuZnJhZ3QsIHdhcyBub2NoIGluIGlocmVyCiAgICAgU3VjaG1hc2NoaW5lIGZlaGx0LgoKLi4uLiBkZWluZSBsZXR6dGUgRnJldW5kaW4gbnVyIGVpbiBKUEVHIHdhci4KCi4uLi4gZHUgZGVpbmVuIEtvcGYgenVyIFNlaXRlIGJldWdzdCwgdW0genUgbGFlY2hlbG4uCgouLi4uIGR1IGltIHJpY2h0aWdlbiBMZWJlbiBpbW1lciBuYWNoIGRlbSBadXJ1ZWNrLUtub3BmCiAgICAgc3VjaHN0LgoKLi4uLiBkdSBuaWUgZGFzIEJlc2V0enR6ZWljaGVuIGRlaW5lcyBTZXJ2aWNlcHJvdmlkZXJzCiAgICAgaG9lcnN0LCB3ZWlsIGR1IHNvd2llc28gaW1tZXIgb25saW5lIGJpc3QuCgouLi4uIGR1IGRyYXVzc2VuIGRlbiBIZWxsaWdrZWl0c3JlZ2xlciBmdWVyIGRpZSBTb25uZSBzdWNoc3QuCgouLi4uIGR1IGRpY2ggYWJlbmRzIGFuIGRlbiBDb21wdXRlciBzZXR6dCB1bmQgZGljaCB3dW5kZXJzdCwKICAgICBkYXNzIGt1cnogZGFyYXVmIGRlaW5lIEtpbmRlciB6dXIgU2NodWxlIG11ZXNzZW4uCgouLi4uIGRlaW4gUGFydG5lciBzaWNoIHVlYmVyIG1hbmdlbG5kZSBLb21tdW5pa2F0aW9uIG1pdCBkaXIKICAgICBiZXNjaHdlcnQsIHVuZCBkdSBlaW5lbiB6d2VpdGVuIENvbXB1dGVyIG1pdCBNb2RlbSBrYXVmc3QuCgouLi4uIGRlaW5lIEZyZXVuZGUgYWxsZSBIYXllcy1rb21wYXRpYmVsIHNpbmQuCgouLi4uIGR1IGRlbSBUYXhpZmFocmVyIGFscyBBZHJlc3NlCiAgICAgaHR0cDovLzMzNjAyLmJpZWxlZmVsZC5kZS9iYWhuaG9mc3RyYXNzZS8xMzUuaHRtbCBuZW5uc3QuCgouLi4uIGR1IGRpY2ggcnVlaG1zdCwgZGFzcyBrZWluZXIgc2NobmVsbGVyIGRvcHBlbGtsaWNrdCBhbHMKICAgICBkdS4KCi4uLi4gZHUgYWxsIGRpZXNlIEdydWVuZGUgaW4gZGVyIEhvZmZudW5nIGdlbGVzZW4gaGFzdCwgZGFzcwogICAgIGV0d2FzIGRhcnVudGVyIHNlaSwgd2FzIG5pY2h0IGF1ZiBkaWNoIHp1dHJpZmZ0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkplc3VzIGlzIHdhdGNoaW5nIHlvdSAoQmlnYXMsIDExLiBNYXIgMjAwMCwgMjM6MzQ6NDgpOgpFaW4gRWluYnJlY2hlciBtYWNodCBzaWNoIGluIGVpbmVyIFZpbGxhIHp1IHNjaGFmZmVuLiBQbG9ldHpsaWNoIGhvZXJ0CmVyIGVpbmUgU3RpbW1lICJKZXN1cyBiZW9iYWNodGV0IERpY2gsIGVyIHdlaXNzIHdhcyBEdSBtYWNoc3QiLgpFcnNjaHJvY2tlbiBkcmVodCBlciBzaWNoIHVtOyBuaWVtYW5kIHp1IHNlaGVuOyBnZXJhZGUgYWxzIGVyIHdpZWRlcgplaW5lbiBTY2hyYW5rIG9lZmZuZW4gd2lsbCBrb21tdCB3aWVkZXIgZGllc2UgU3RpbW1lOiJKZXN1cyBiZW9iYWNodGV0CkRpY2gsIGVyIHdlaXNzIHdhcyBEdSBtYWNoc3QiLgpEaWVzbWFsIHNpZWh0IGVyIHdlciBtaXQgaWhtIHJlZGV0LCBlaW4ga2xlaW5lciBKdW5nZS4KRWluYnJlY2hlcjogIiBOYSBEdSBrbGVpbmUgUmF0dGUsIHdlciBiaXN0IER1IGRlbm4/IgpKdW5nZToiIEljaCBoZWlzc2UgTW9zZXMhIgpFaW5icmVjaGVyOiIgV2VyIGlzdCBkZW4gc28gcGVydmVycyB1bmQgbmVubnQgZWluZW4gSnVuZ2VuIE1vc2VzPyIKSnVuZ2U6IiBEaWUgZ2xlaWNoZW4gTGV1dGUgZGllIGVpbmVuIFJvdHR3ZWlsZXIgSmVzdXMgbmVubmVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSYXVjaGVyZ2VkaWNodCAoQmlnYXMsIDExLiBNYXIgMjAwMCwgMjM6NDQ6MTYpOgpaZWhuIGtsZWluZSBSYXVjaGVybGVpbgoKWmVobiBrbGVpbmUgUmF1Y2hlcmxlaW4sCmRpZSBzY2hsaWVmZW4gcmF1Y2hlbmQgZWluLgpQcm9tcHQgZ2luZyBlaW4gQmV0dCBpbiBGbGFtbWVuIGF1ZjoKRGEgd2FyZW4ncyBudXIgbm9jaCBuZXVuLgoKTmV1biBrbGVpbmUgUmF1Y2hlcmxlaW4sCmRpZSByYXVjaHRlbiBhdWYgZGVyIFdhY2h0LgpEZW4gZWluZW4gaGF0IGRlciBGZWluZCBlcnNwYWVodDoKRGEgd2FyZW4ncyBudXIgbm9jaCBhY2h0LgoKQWNodCBrbGVpbmUgUmF1Y2hlcmxlaW4sCmRpZSByYXVjaHRlbiBzZWxic3QgYmVpbSBMaWViZW4uCkRhcyBoYWVsdCBkYXMgYmVzdGUgSGVyeiBuaWNodCBhdXM6CkRhIHdhcmVuJ3MgbnVyIG5vY2ggc2llYmVuLgoKU2llYmVuIGtsZWluZSBSYXVjaGVybGVpbiwKZGllIHRyYWZlbiBlaW5lIEhleGUsCmRpZSBBcHBldGl0IGF1ZiBSYXVjaGZsZWlzY2ggaGF0dGU6CkRhIHdhcmVuJ3MgbnVyIG5vY2ggc2VjaHNlLgoKU2VjaHMga2xlaW5lIFJhdWNoZXJsZWluLApkaWUgaGFiZW4gbGF1dCBnZXNjaHVlbXBmdAphdWYgZWluZW0gQWJzdGluZW56bGVydHJlZmY6CkRhIHdhciduIHNpZSBub2NoIHp1IGZ1ZW1wZnQuCgpGdWVuZiBrbGVpbmUgUmF1Y2hlcmxlaW4sCmRpZSBuZWNrdGVuIGVpbmVuIFN0aWVyLgpEZXIgZWluZSBibGllcyBpaG0gUmF1Y2ggaW5zIEF1Z2U6CkRhIHdhcmVuJ3MgbnVyIG5vY2ggdmllci4KClZpZXIga2xlaW5lIFJhdWNoZXJsZWluLApkaWUgcmVpc3RlbiBuYWNoIFNoYW5naGFpLgpEZXIgZWluZSByYXVjaHRlIE9waXVtOgpEYSB3YXJlbidzIG51ciBub2NoIGRyZWkuCgpEcmVpIGtsZWluZSBSYXVjaGVybGVpbiwKZGllIHJhdWNodGVuIGF1ZiBkZW0gS2xvLgpEYXMgS2xvIHdhciB2b2xsIHZvbiBCaW9nYXM6CkRhIHdhcmVuJ3MgbnVyIG5vY2ggendvLgoKWndlaSBrbGVpbmUgUmF1Y2hlcmxlaW4sCmRpZSBzcGllbHRlbiB3YXMgR2VtZWluZXMgLQp3ZXIgbWVociBaaWdhcmV0dGVuIGVzc2VuIGthbm46CmRhIGdhYiBlcyBudXIgbm9jaCBlaW5lcy4KCkRpZSBsZXR6dGUgU3RvcGhlIGZ1ZXIgZGVuIFNhZGlzdGVuOgp+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpEYXMgbGV0enRlIGtsZWluZSBSYXVjaGVybGVpbgpiZWthbSB6d2VpIFJhdWNoZXJiZWVuZS4KU2VpbiBSb2xsc3R1aGwgcm9sbHRlIHZvciduZSBXYWx6ZToKTWFuIGZhbmQgbnVyIG5vY2ggemVobiBaYWVobmUuCgpEaWUgbGV0enRlIFN0cm9waGUgZnVlciBkZW4gWnluaWtlcjoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KRGFzIGxldHp0ZSBrbGVpbmUgUmF1Y2hlcmxlaW4Kc2Nod29yIGFiIGRlbSBOaWtvdGluLgpFcyBob2VydGUgbWl0IGRlbSBSYXVjaGVuIGF1ZjoKSmV0enQgc3ByaXR6dCBlcyBIZXJvaW4uCgpEaWUgbGV0enRlIFN0cm9waGUgZnVlciBkZW4gdW52ZXJiZXNzZXJsaWNoZW4gT3B0aW1pc3RlbjoKfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KRGFzIGxldHp0ZSBrbGVpbmUgUmF1Y2hlcmxlaW4KZGFzIHpldWd0ZSByYXNjaCBuZXVuIFNvZWhuZQp1bmQgemVpZ3RlIGlobmVuLCB3aWUgbWFuIHJhdWNodDoKRGEgd2FyZW4ncyB3aWVkZXIgemVobmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPUC1XaXR6IChCaWdhcywgMTEuIE1hciAyMDAwLCAyMzo0Njo0NCk6CkFyenQgenUgUGF0aWVudDogV2FydW0gcmVubmVuIFNpZSBhdXMgZGVtIE9QLVNhYWwgaGluYXVzPz8KUGF0aWVudDogRGllIFNjaHdlc3RlciBoYXQgZ2VzYWd0OiByZWdlbiBTaWUgc2ljaCBuaWNodCBzbyBhdWYsIGRhcwppc3QgbnVyIGVpbmVuIGVpbmZhY2hlIEJsaW5kZGFybW9wZXJhdGlvbi5TaWUgd2VyZGVuIGVzIHNjaG9uCnNjaGFmZmVuIS4KQXJ6dDogVW5kIHdhcyBpc3QgZGFyYW4gc2NobGltbT8KUGF0aWVudDogU2llIGhhdCBlcyBuaWNodCB6dSBtaXIgZ2VzYWd0LCBzb25kZXJuIHp1IGRlbSBDaGlydXJnZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMTggRmxhc2NoZW4gKEJpZ2FzLCAxMS4gTWFyIDIwMDAsIDIzOjQ4OjM0KToKSWNoIGhhdHRlIGFjaHR6ZWhuIEZsYXNjaGVuIFdoaXNreSBpbiBtZWluZW0gS2VsbGVyOiBNZWluZSBGcmF1IGJlZmFobAptaXIsIGRlbiBJbmhhbHQgamVkZXIgZWluemVsbmVuIEZsYXNjaGUgaW5zIFNwdWVsYmVja2VuIHp1IGdpZXNzZW4sCnNvbnN0IGtvZW5udGUgaWNoIHdhcyBlcmxlYmVuIC4uLiEKSWNoIHNhZ3RlOiAiSkEsIEZyYXUiIHVuZCBmaW5nIG1pdCBkZXIgdW5hbmdlbmVobWVuIEFyYmVpdCBhbi4gSWNoIHpvZwpkZW4gS29ya2VuIHZvbiBkZXIgZXJzdGVuIEZsYXNjaGUgdW5kIGdvc3MgZGVuIEluaGFsdCBpbnMgQmVja2VuLCBtaXQKQXVzbmFobWUgdm9uIGVpbmVtIEdsYXMsIGRhcyBpY2ggdHJhbmsuIERhbm4gZXh0cmFoaWVydGUgaWNoIGRlbgpLb3JrZW4gdm9uIGRlciB6d2VpdGVuIEZsYXNjaGUgdW5kIHRhdCBkYXNzZWxiZSBtaXQgQXVzbmFobWUgdm9uIGVpbmVtCkdsYXMsIGRhcyBpY2ggdHJhbmsuIERhbm4gem9nIGljaCBkZW4gS29ya2VuIHZvbiBkZXIgZHJpdHRlbiBGbGFzY2hlCnVuZCBnb3NzIGRlbiBXaGlza3kgaW5zIEJlY2tlbiwgZGFzIGljaCB0cmFuay4gSWNoIHpvZyBkZW4gS29ya2VuIHZvbgpkZXIgdmllcnRlbiBGbGFzY2hlIHVuZCBnb3NzIGRpZSBGbGFzY2hlIGlucyBHbGFzLCBkYXMgaWNoIHRyYW5rLiBJY2gKem9nIGRpZSBGbGFzY2hlIHZvbSBuYWVjaHN0ZW4gS29ya2VuIHVuZCB0cmFuayBlaW4gQmVja2VuIGRhcmF1cyB1bmQKd2FyZiBkZW4gUmVzdCBpbnMgR2xhcy4gSWNoIHpvZyBkYXMgQmVja2VuIGF1cyBkZW0gbmFlY2hzdGVuIEdsYXMgdW5kCmdvc3MgZGVuIEtvcmtlbiBpbiBkaWUgRmxhc2NoZS4gRGFubiBrb3JrdGUgaWNoIGRhcyBCZWNrZW4gbWl0IGRlbQpHbGFzLCBmbGFzY2h0ZSBkZW4gVHJhbmsgdW5kIHRyaW5rdGUgZGVuIEdlbnVzcy4gQWxzIGljaCBhbGxlcwplbnRsZWVydCBoYXR0ZSwgaGllbHQgaWNoIGRhcyBIYXVzIG1pdCBlaW5lciBIYW5kIGZlc3QsIHphZWhsdGUgZGllCkdsYWVzZXIsIEtvcmtlbiwgRmxhc2NoZW4gdW5kIEJlY2tlbiBtaXQgZGVyIGFuZGVyZW4gdW5kIHN0ZWxsdGUgZmVzdCwKZGFzcyBlcyBuZXVudW5kZHJlaXNzaWcgd2FyZW4uLi4KVW5kIGFscyBkYXMgSGF1cyB2b3JiZWlrYW0sIHphZWhsdGUgaWNoIHNpZSBub2NobWFsIHVuZCBkYW5uIGhhdHRlIGljaAplbmRsaWNoIGFsbGUgSGFldXNlciBpbiBkZXIgRmxhc2NoZSwgZGllIGljaCB0cmFuay4gSWNoIHN0ZWhlIGdhcgpuaWNodCB1bnRlciBkZW0gQWxmbHVzcyB2b24gRWlua29ob2wsIHdpZSBtYW5jaGUgRGVua2VuIGxldXRlbi4gSWNoCmJpbiBuaWNodCBoYWxiIHNvIGJlZGVua3QsIGFscyBpaHIgdHJ1bmtlbiBrb2VubnRldCAuLi4gQWJlciwgaWNoIGhhYmUKc28gZWluIGZ1ZWhsc2FtZXMgR2VzZWx0IC4uLi4gb2ggIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUm9sbHRyZXBwZSAoQmlnYXMsIDExLiBNYXIgMjAwMCwgMjM6NTI6MzApOgpUcmVmZmVuIHNpY2ggendlaSBGcmV1bmRlLCBkZXIgZWluZSBoYXQgendlaSBibGF1ZSBBdWdlbi4KU2FndCBkZXIgYW5kZXJlOiAiV29oZXIgaGFzdCBEdSBkZW5uIGRpZSBibGF1ZW4gQXVnZW4gPyIKU2FndCBkZXI6IkFjaCwgaWNoIHdhciBuZXVsaWNoIGltIEthdWZoYXVzIGVpbmthdWZlbi4iCiJVbmQ/IgoiTmEgamEsIGRhIGJpbiBpY2ggZGFubiBtaXQgZGVyIFJvbGx0cmVwcGUgZ2VmYWhyZW4uIgoiVW5kPz8iCiJVbmQgdm9yIG1pciB3YXIgc28gZWluZSByaWNodGlnIGhlaXNzZSBGcmF1OyBkaWUgaGF0dGUgZWluZW4gc3VwZXJrdXJ6ZW4KTWluaXJvY2sgYW4uIgoiSmEsIHVuZD8/PyIKIkRhcyBzYWggZWNodCBTcGl0emUgYXVzLCBiaXMgYXVmIC4uLiAtICBkZXIgUm9jayBrbGVtbXRlIHp3aXNjaGVuIGlocmVuClBvLUJhY2tlbi4iCiJVbmQ/Pz8/IgoiTmEgLSBkYSBoYWInIGljaCBpaG4gZGFubiBoYWx0IHJhdXNnZXpvZ2VuLiIKIkFoYSEgRGFoZXIgZGFzIGVpbmUgYmxhdWUgQXVnZS4gVW5kIGRhcyBhbmRlcmU/IgoiQWxzIGljaCBudW4gZWluZGV1dGlnIGZlc3RnZXN0ZWxsdCBoYWJlLCBkYXNzIHNpZSBkYW1pdCBuaWNodAplaW52ZXJzdGFuZGVuIHdhciwgaGFiZSBpY2ggZGVuIFJvY2sgd2llZGVyIHp1cnVlY2tnZXN0ZWNrdC4uLi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFkYW0gdW5kIEV2YSAoQmlnYXMsIDExLiBNYXIgMjAwMCwgMjM6NTc6NDQpOgpBZGFtIHVudGVyaGFlbHQgc2ljaCBtaXQgZGVtIGxpZWJlbiBHb3R0IHVuZCBmcmFndDoKIldhcnVtIGhhc3QgZHUgRXZhIHNvIHNjaG9lbiBnZW1hY2h0PyIKRGVyIGxpZWJlIEdvdHQgYW50d29ydGV0OiAiRGFtaXQgc2llIGRpciBnZWZhZWxsdC4iCiJVbmQgd2FydW0gaGFzdCBkdSBpaHIgZWluIHNvIGFuZ2VuZWhtZXMgV2VzZW4gZ2VnZWJlbj8iCiJEYW1pdCBkdSBzaWUgbGllYnN0LiIKIkphLi4uIiBBZGFtIHVlYmVybGVndCwgIi4uLiBhYmVyIHdhcnVtIGhhc3QgZHUgc2llIGRhbm4gc28gZHVtbSAKZ2VtYWNodD8hIgoiRGFtaXQgU0lFIERJQ0ggbGllYnQuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWxmZW4uLi4gKEJpZ2FzLCAxMS4gTWFyIDIwMDAsIDIzOjU5OjI4KToKS29tbXQgZWluIE9yayBpbiBkaWUgVGF2ZXJuZSwgc2V0enQgc2ljaCBhbiBkZW4gVHJlc2VuIHVuZCBzYWd0IHp1bSBXaXJ0OgoiSWNoIERpciBzb2xsZW4gbmV1ZW4gRWxmZW53aXR6IHNhZ2VuPyIKU2FndCBkZXIgV2lydDogIlNpZWhzdCBEdSBkZW4gTWFubiBkYWhpbnRlbiBhbSBLYW1pbj8gZGVuIG1pdCBkZXIgUm9iZT8KRGFzIGlzdCBlaW5lciBkZXIgbWFlY2h0aWdzdGVuIEVsZmVuemF1YmVyZXIuIFVuZCBkZW4gZGEgYW0gcnVuZGVuIFRpc2NoCm1pdCBkZW0gQm9nZW4/IERhcyBpc3QgZGVyIGJlc3RlIEVsZmVuYm9nZW5zY2h1ZXR6ZSBhdWYgZGVyIFdlbHQuIFVuZCBpY2gsCmljaCBiaW4gc2VsYmVyIEhhbGJlbGYuIEFsc28sIHdpbGxzdCBEdSBkZW4gV2l0eiBpbW1lciBub2NoIGVyemFlaGxlbj8iCkRlciBPcms6ICJOb2UsIGRhbm4gaWNoIG11ZXNzZW4gaWhuIGphIGRyZWltYWwgZXJrbGFlcmVuLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhlIHVuaXggZ3VydXMgdmlldyBvZiBzZXggKERlZXBibHVlLCAxMy4gTWFyIDIwMDAsIDA4OjM0OjMxKToKfiMhIG9uPURlZXBibHVlIG90PTk1MjkzMTk1OCBvZz1zY2htYXJybgp1bnppcAogc3RyaXAKICB0b3VjaAogICBmaW5nZXIKICAgIG1vdW50CiAgICAgZnNjawogICAgICBtb3JlCiAgICAgICB5ZXMKICAgICAgICB1bW91bnQKICAgICAgICAgc2xlZXAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxpbnV4IGlzIGxpa2UgYSB3aWd3YW0gKERlZXBibHVlLCAxMy4gTWFyIDIwMDAsIDA4OjM2OjQxKToKQXVmIGRpZSBHZWZhaHIgaGluLCBkYXNzIGljaCBkYXMgc2Nob24gbWFsIGdlc2NoaWNrdCBoYXR0ZSAoU2NoZWlzcyBBbHpoZWltZXIpCgpMaW51eCBpcyBsaWtlIGEgd2lnd2FtCk5vIFdpbmRvd3MKIE5vIEdhdGVzCiAgQW5kIGFsd2F5cyBhbiBhcGFjaGUgaW5zaWRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTGludXggaXMgbGlrZSBhIHdpZ3dhbSAoVHJ1ZywgMTUuIE1hciAyMDAwLCAxNDoxOTowNyk6Cn4jISBybj1EZWVwYmx1ZSBydD05NTI5MzMwMDEgcmc9d2l0emUKfiMhIHRpZD05NTI5MzMwMDEKQXVjaCB3ZW5uIGRpZXNlciAnV2l0eicgc2Nob24gbWFsIGluIHNjaG1hcnJuIHN0YW5kOgoKRGFzIG1pdCBXaWd3YW0gaXN0IGZhbHNjaCwgZGFzIGlzdCBlaW4gU3RlaW5oYXVzLCBrZWluIHplbHQuIFNvbGx0ZSAndGlwaScKaGVpc3Nlbi4KCnRydWcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZ1ZXIgQWxpbmUgKFByYSwgMTUuIE1hciAyMDAwLCAxNjoyOToxNik6ClRIRSBUV08gWUVBUiBERUdSRUUKCkEgbmV3IHR3by15ZWFyIGRlZ3JlZSBpcyBiZWluZyBvZmZlcmVkIGF0IHRoZSBVbml2ZXJzaXR5IHRoYXQgbWFueSBvZgp5b3Ugc2hvdWxkIGJlIGludGVyZXN0ZWQgaW46CgpCZWNvbWluZyBhIFJlYWwgTWFuLgoKVGhhdCdzIHJpZ2h0LCBpbiBqdXN0IHNpeCB0cmltZXN0ZXJzLCB5b3UsIHRvbywgY2FuIGJlIGEgcmVhbCBtYW4gLQphcyB3ZWxsIGFzIGVhcm4gYW4gTUEgZGVncmVlIChNYWxlIEFydHMpLiAgUGxlYXNlIHRha2UgYSBtb21lbnQgdG8gbG9vawpvdmVyIHRoZSBwcm9ncmFtIG91dGxpbmUuCgogRklSU1QgWUVBUgoKIEF1dHVtbiBTY2hlZHVsZToKCiBNRU4gMTAxICAgICBDb21iYXRpbmcgU3R1cGlkaXR5CiBNRU4gMTAyICAgICBZb3UsIFRvbywgQ2FuIERvIEhvdXNld29yawogTUVOIDEwMyAgICAgUE1TLUxlYXJuIFdoZW4gdG8gS2VlcCBZb3VyIE1vdXRoIFNodXQKIE1FTiAxMDQgICAgIFdlIERvIE5vdCBXYW50IFNsZWF6eSBVbmRlcnRoaW5ncyBmb3IgQ2hyaXN0bWFzCgogV2ludGVyIFNjaGVkdWxlOgoKIE1FTiAxMTAgICAgIFdvbmRlcmZ1bCBMYXVuZHJ5IFRlY2huaXF1ZXMKIE1FTiAxMTEgICAgIFVuZGVyc3RhbmRpbmcgdGhlIEZlbWFsZSBSZXNwb25zZSB0byBHZXR0aW5nIGluIGF0IDRhbQogTUVOIDExMiAgICAgUGFyZW50aW5nOiBJdCBEb2Vzbid0IEVuZCB3aXRoIENvbmNlcHRpb24KIEVBVCAxMDAgICAgIEdldCBhIExpZmUsIExlYXJuIHRvIENvb2sKIEVBVCAxMDEgICAgIEdldCBhIExpZmUsIExlYXJuIHRvIENvb2sgSUkKIEVDT04gMDAxQSAgIFdoYXQncyBIZXJzIGlzIEhlcnMKCiBTcHJpbmcgU2NoZWR1bGU6CgogTUVOIDEyMCAgSG93IE5PVCB0byBBY3QgTGlrZSBhIEJ1dHRmYWNlIFdoZW4gWW91J3JlIFdyb25nCiBNRU4gMTIxICBVbmRlcnN0YW5kaW5nIFlvdXIgSW5jb21wZXRlbmNlCiBNRU4gMTIyICBZT1UsIHRoZSBXZWFrZXIgU2V4CiBNRU4gMTIzICBSZWFzb25zIHRvIEdpdmUgRmxvd2VycwogRUNPTiAwMDFDICAgIFdoYXQgV2FzIFlvdXJzIGlzIEhlcnMKCiBTRUNPTkQgWUVBUgoKIEF1dHVtbiBTY2hlZHVsZToKCiBTRVggMTAxICBZb3UgQ0FOIEZhbGwgQXNsZWVwIHdpdGhvdXQgSXQKIFNFWCAxMDIgIE1vcm5pbmcgRGlsZW1tYTogSWYgSXQncyBBd2FrZSwgVGFrZSBhIFNob3dlcgogU0VYIDEwMyAgSG93IHRvIFN0YXkgQXdha2UgQWZ0ZXIgU2V4CiBNRU4gMjAxICBIb3cgdG8gUHV0IHRoZSBUb2lsZXQgU2VhdCBEb3duCiBFbGVjdGl2ZSAgICAgKFNlZSBFbGVjdGl2ZXMgQmVsb3cpCgogV2ludGVyIFNjaGVkdWxlOgoKIE1FTiAyMTAgIFRoZSBSZW1vdGUgQ29udHJvbDogT3ZlcmNvbWluZyBZb3VyIERlcGVuZGVuY3kKIE1FTiAyMTEgIEhvdyB0byBOb3QgQWN0IFlvdW5nZXIgdGhhbiBZb3VyIENoaWxkcmVuCiBNRU4gMjEyICBZb3UsIFRvbywgQ2FuIEJlIGEgRGVzaWduYXRlZCBEcml2ZXIKIE1FTiAyMTMgIEhvbmVzdCwgWW91IERvbid0IExvb2sgTGlrZSBUb20gQ3J1aXNlCiBNRU4gMjMwQSAgICAgSGVyIEJpcnRoZGF5cyBhbmQgQW5uaXZlcnNhcmllcyBBcmUgSW1wb3J0YW50IDEKCiBTcHJpbmcgU2NoZWR1bGU6CgogTUVOIDIyMCAgT21pdHRpbmcgJSYqISBmcm9tIFlvdXIgVm9jYWJ1bGFyeSAoUGFzcy9GYWlsIE9ubHkpCiBNRU4gMjIxICBGbHVmZmluZyB0aGUgQmxhbmtldCBBZnRlciBGYXJ0aW5nIElzIE5vdCBOZWNlc3NhcnkKIE1FTiAyMjIgIFJlYWwgTWVuIEFzayBmb3IgRGlyZWN0aW9ucwogTUVOIDIyMyAgVGhpcnR5IE1pbnV0ZXMgb2YgQmVnZ2luZyBpcyBOT1QgQ29uc2lkZXJlZCBGb3JlcGxheQogTUVOIDIzMEIgICAgIEhlciBCaXJ0aGRheXMgYW5kIEFubml2ZXJzYXJpZXMgQXJlIEltcG9ydGFudCAyCgogQ291cnNlIEVsZWN0aXZlczoKCiBFQVQgMTAxICAgIENvb2tpbmcgd2l0aCBUb2Z1CiBFQVQgMTAyICAgIFV0aWxpemF0aW9uIG9mIEVhdGluZyBVdGVuc2lscwogRUFUIDEwMyAgICBCdXJwaW5nIGFuZCBCZWxjaGluZyBEaXNjcmVldGx5CiBNRU4gMjMxICAgTW90aGVycy1pbi1MYXcKIE1FTiAyMzIgICBBcHBlYXIgdG8gQmUgTGlzdGVuaW5nCiBNRU4gMjMzICAgSnVzdCBTYXkgIlllcywgRGVhciIKIEVDT04gMDAxIENoZWFwZXIgdG8gS2VlcCBIZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT0KClByYS4gU2ljaCBkdWNrZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQSBEaWN0aW9uYXJ5IGZvciB0aGUgR2VuZGVycyAoTmV2b2ssIDE3LiBNYXIgMjAwMCwgMDA6MTg6MTUpOgpUSElOR1kgKHRoaW5nLWVlKW4uCmZlbWFsZTogQW55IHBhcnQgdW5kZXIgYSBjYXIncyBob29kLgptYWxlOiBUaGUgc3RyYXAgZmFzdGVuZXIgb24gYSB3b21hbidzIGJyYS4KClZVTE5FUkFCTEUgKHZ1bC1uZS1yYS1iZWwpIGFkai4KZmVtYWxlOiBGdWxseSBvcGVuaW5nIHVwIG9uZSdzIHNlbGYgZW1vdGlvbmFsbHkgdG8gYW5vdGhlci4KbWFsZTogUGxheWluZyBmb290YmFsbCB3aXRob3V0IGEgY3VwLgoKQ09NTVVOSUNBVElPTiAoa28tbXlvby1uaS1rYXktc2hvbikgbi4KZmVtYWxlOiBUaGUgb3BlbiBzaGFyaW5nIG9mIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB3aXRoIG9uZSdzIHBhcnRuZXIuCm1hbGU6IFNjcmF0Y2hpbmcgb3V0IGEgbm90ZSBiZWZvcmUgc3VkZGVubHkgdGFraW5nIG9mZiBmb3IgYSB3ZWVrZW5kIHdpdGggdGhlCmJveXMuCgpCVVRUIChidXQpIG4uCmZlbWFsZTogVGhlIGJvZHkgcGFydCB0aGF0IGV2ZXJ5IGl0ZW0gb2YgY2xvdGhpbmcgbWFudWZhY3R1cmVkIG1ha2VzICJsb29rCmJpZ2dlci4iCm1hbGU6IHdoYXQgeW91IHNsYXAgd2hlbiBzb21lb25lJ3Mgc2NvcmVkIGEgdG91Y2hkb3duLCBob21lcnVuLCBvciBnb2FsLiBBbHNvCmdvb2QgZm9yIG1vb25pbmcuCgpDT01NSVRNRU5UIChrby1taXQtbWVudCkgbi4KZmVtYWxlOiBBIGRlc2lyZSB0byBnZXQgbWFycmllZCBhbmQgcmFpc2UgYSBmYW1pbHkuCm1hbGU6IE5vdCB0cnlpbmcgdG8gcGljayB1cCBvdGhlciB3b21lbiB3aGlsZSBvdXQgd2l0aCB0aGUgZ2lybGZyaWVuZC4KCkVOVEVSVEFJTk1FTlQgKGVuLXRlci10YXluLW1lbnQpIG4uCmZlbWFsZTogQSBnb29kIG1vdmllLCBjb25jZXJ0LCBwbGF5IG9yIGJvb2suCm1hbGU6IEFueXRoaW5nIHRoYXQgY2FuIGJlIGRvbmUgd2hpbGUgZHJpbmtpbmcuCgpGTEFUVUxFTkNFIChmbGFjaC11LWxlbnMpIG4uCmZlbWFsZTogQW4gZW1iYXJyYXNzaW5nIGJ5LXByb2R1Y3Qgb2YgZGlnZXN0aW9uLgptYWxlOiBBbiBlbmRsZXNzIHNvdXJjZSBvZiBlbnRlcnRhaW5tZW50LHNlbGYtZXhwcmVzc2lvbiBhbmQgbWFsZSBib25kaW5nLgoKTUFLSU5HIExPVkUgKG1heS1raW5nIGx1dikgbi4KZmVtYWxlOiBUaGUgZ3JlYXRlc3QgZXhwcmVzc2lvbiBvZiBpbnRpbWFjeSBhIGNvdXBsZSBjYW4gYWNoaWV2ZS4KbWFsZTogQ2FsbCBpdCB3aGF0ZXZlciB5b3Ugd2FudCBqdXN0IGFzIGxvbmcgYXMgd2UgZW5kIHVwIGluIGJlZC4KClJFTU9URSBDT05UUk9MIChyaS1tb2h0IGtvbi10cm9obCkgbi4KZmVtYWxlOiBBIGRldmljZSBmb3IgY2hhbmdpbmcgZnJvbSBvbmUgVFYgY2hhbm5lbCB0byBhbm90aGVyLgptYWxlOiBBIGRldmljZSBmb3Igc2Nhbm5pbmcgdGhyb3VnaCBhbGwgNzUgY2hhbm5lbHMgZXZlcnkgdGhyZWUgbWludXRlcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVtYW56aXBhdGlvbiAoVmFuaW9uLCAxOC4gTWFyIDIwMDAsIDE5OjIwOjMxKToKU2l0emVuIHp3ZWkgRW1hbnplbiBhbSBGcmhzdGNrc3Rpc2NoLiAKU2FndCBkaWUgZWluZSB6dXIgYW5kZXJlbjogCiBBbmRyZWEsIGdpYnN0IER1IG1pciBiaXR0ZSBtYWwgZGllIFNhbHpzdHJldWVyaW4/IAoKVmFuaW9uLCBzaWNoIGR1Y2tlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NoIGVpbmVyOiAoVmFuaW9uLCAxOC4gTWFyIDIwMDAsIDE5OjM3OjIwKToKMS4gZ2VoZSB6dSBodHRwOi8vd3d3Lmdvb2dsZS5jb20KMi4gdGlwcGUgaW0gRWluZ2FiZWZlbGQgIm1vcmUgZXZpbCB0aGFuIFNhdGFuIGhpbXNlbGYiIGVpbgozLiBkcmNrZSBhdWYgZGVuICJnb29nbGUgc2VhcmNoIiBCdXR0b24KNC4gbGFzcyBkaWNoIHVlYmVycmFzY2hlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV09SSy1WaXJ1cyAoVmFuaW9uLCAxOC4gTWFyIDIwMDAsIDIwOjEzOjIwKToKVGhpcyB2aXJ1cyB3YXJuaW5nIGlzIGdlbnVpbmUuLi4KVGhlcmUgaXMgYSBuZXcgdmlydXMgZ29pbmcgYXJvdW5kLCBjYWxsZWQgIldPUksiLiBJZiB5b3UgcmVjZWl2ZSBhbnkgc29ydCBvZgoiV09SSyIgYXQgYWxsLCB3aGV0aGVyIHZpYSBlbWFpbCwgSW50ZXJuZXQgb3Igc2ltcGx5IGhhbmRlZCB0byB5b3UgYnkgYQpjb2xsZWFndWUuLi4gRE8gTk9UIE9QRU4gSVQuClRoaXMgaGFzIGJlZW4gY2lyY3VsYXRpbmcgYXJvdW5kIG91ciBidWlsZGluZyBmb3IgbW9udGhzIGFuZCB0aG9zZSB3aG8gaGF2ZQpiZWVuIHRlbXB0ZWQgdG8gb3BlbiAiV09SSyIgb3IgZXZlbiBsb29rIGF0ICJXT1JLIiBoYXZlIGZvdW5kIHRoYXQgdGhlaXIKc29jaWFsIGxpZmUgaGFzIGJlZW4gdG90YWxseSBkZXN0cm95ZWQsIHRoZWlyIGludGVycGVyc29uYWwgY29ubmVjdGlvbnMgaGF2ZQpiZWVuIGRlbGV0ZWQgYW5kIHRoZWlyIGJyYWluIGhhcyBjZWFzZWQgdG8gZnVuY3Rpb24gcHJvcGVybHkuCklmIHlvdSBkbyBlbmNvdW50ZXIgIldPUksiIHZpYSBlbWFpbCBvciBhcmUgZmFjZWQgd2l0aCBhbnkgIldPUksiIGF0IGFsbCwKdGhlbiwgdG8gcHVyZ2UgdGhlIHZpcnVzLCBzZW5kIGFuIGVtYWlsIHRvIHlvdXIgYm9zcyB3aXRoIHRoZSB3b3JkcyAiSSd2ZSBoYWQKZW5vdWdoIG9mIHlvdXIgY3JhcCwgeW91IGNhbiB0YWtlIGl0IGFuZCAjQCYlIy4uLiBJJ20gb2ZmIHRvIHRoZSBwdWIiLiBUaGUKIldPUksiIHNob3VsZCBhdXRvbWF0aWNhbGx5IGJlIHdpcGVkIG91dCBvZiB5b3VyIHN5c3RlbS4KSWYgeW91IHJlY2VpdmUgIldPUksiIGluIHBhcGVyLWRvY3VtZW50IGZvcm0sIHNpbXBseSwgZHJhZyBhbmQgZHJvcCB0aGUgIldPUksiCnRvIHlvdXIgR2FyYmFnZS9SZWN5Y2xlIGNhbi4gKElmIHlvdSB3YW50IHRvIGJlIHN1cmUgdGhhdCBpdCB3aWxsIG5vdCBoYXJtCnlvdXIgc3lzdGVtLCB1c2UgdGhlIHNocmVkZGVyIGJpbiBpbnN0ZWFkKS4gTG9nIG91dCBhbmQgc2tpcCB0byB0aGUgbmVhcmVzdApiYXIgd2l0aCB0d28gZnJpZW5kcyBhbmQgb3JkZXIgdGhyZWUgcGludHMgb2YgYmVlciAob3IgcnVtIHB1bmNoKS4gCkFmdGVyIHJlcGVhdGluZyB0aGlzIGFjdGlvbiAxNCB0aW1lcywgeW91IHdpbGwgZmluZCBvdXQgdGhhdCAiV09SSyIgd2lsbCBubwpsb25nZXIgYmUgb2YgYW55IHJlbGV2YW5jZSB0byB5b3UgYW5kIHRoYXQgIlNjb29ieSBEb28iIHdhcyB0aGUgZ3JlYXRlc3QKY2FydG9vbiBldmVyLgpTZW5kIHRoaXMgbWVzc2FnZSB0byBldmVyeW9uZSBpbiB5b3VyIGFkZHJlc3MgYm9vay4gSWYgeW91IGRvIE5PVCBoYXZlIGFueW9uZQppbiB5b3VyIGFkZHJlc3MgYm9vaywgdGhlbiwgSSdtIGFmcmFpZCB0aGUgIldPUksiIHZpcnVzIGhhcyBhbHJlYWR5IGNvcnJ1cHRlZAp5b3VyIGxpZmUuCgpWYW5pb24sIGlzdCBzaWNoIG5pY2h0IHNpY2hlciwgb2IgZXIgaW5maXppZXJ0IGlzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkljaCBoYWIgZ2VsYWNodC4gKFZhbmlvbiwgMTguIE1hciAyMDAwLCAyMDo0NzozNyk6Cmh0dHA6Ly93d3cuYXV0c2NoLmRlL2JpdHN0ZWxsZXIvY3liZXJzZXguaHRtbApEZXIgd2FlciBlaW5mYWNoIHp1IGdyb3NzLCB1bSBpaG4gaGllciB6dSBwb3N0ZW4uCgpWYW5pb24KUFM6IGlzIG1laW4gbGV0enRlciBoZXV0ZSwgdmVyc3Byb2NoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRW1hbnppcGF0aW9uIChQcmEsIDIwLiBNYXIgMjAwMCwgMTM6MTI6NDgpOgp+IyEgcm49VmFuaW9uIHJ0PTk1MzQwMzYzMSByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpkZXIgaXN0IG5vY2ggZ2FyIG5peCAtIG1laW5lIE5hY2hiYXJpbiBrYW0gbWFsIGJlaSBtaXIgdm9yYmVpLApvYiBpY2ggZWluZSBSb2hyemFuZ2UgaGFldHRlIC0gaWhyIFdhc3Nlcmh1aG4gdHJvcGZ0Li4uCgpQcmEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVtYW56aXBhdGlvbiAoUHJhLCAyMC4gTWFyIDIwMDAsIDEzOjEzOjM4KToKfiMhIHJuPVByYSBydD05NTM1NTQzNjggcmc9d2l0emUKfiMhIHRpZD05NTM0MDM2MzEKQWNoamEsIHVuZCBtZWluZSBTY2h3ZXN0ZXIgbmVubnQgaWhyZW4gUmVjaG5lciBsaWViZXZvbGwgJ0NvbS1QdXRlJy4uLgoKUHJhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVtYW56aXBhdGlvbiAoV2lkZXdpdHQsIDIwLiBNYXIgMjAwMCwgMTQ6MzU6NDEpOgp+IyEgcm49VmFuaW9uIHJ0PTk1MzQwMzYzMSByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpJcyBqZXR6dCBrZWluIHdpdHosIHNvbmRlcm4gUmVhbGl0YWV0ICEKCk1laW5lIEZyZXVuZGluIHdvbGx0ZSBuZW4gRnJhdWVuc2VsYnN0dmVydGVpZGlndW5nc2t1cnMgbWFjaGVuLAp1bmQgZGllIEZyYXVlbiBkb3J0IGhhYmVuIGlociBlaW4gQnJpZWZpbiBnZXNjaHJpZWJlbiAhISEKCkdydXNzIFdpZGV3aXR0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVtYW56aXBhdGlvbiAoUHJhLCAyMC4gTWFyIDIwMDAsIDE1OjAyOjI3KToKfiMhIHJuPVdpZGV3aXR0IHJ0PTk1MzU1OTM0MSByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpzb2xsdGUgd2FocnNjaGVpbmxpY2ggJ0JyaWVmaW5nJyBoZWlzc2VuLgoKUHJhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRW1hbnppcGF0aW9uIChNb3Jnb25hdGUsIDIwLiBNYXIgMjAwMCwgMTU6NTI6MzApOgp+IyEgcm49UHJhIHJ0PTk1MzU2MDk0NyByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpOYWphLCBpbiBNdWVuY2hlbiBnaWJ0IGVzIGVpbmVuIEZyYXVlbi1WZXJlaW4sIGRhIGthbm4gZnJhdSBudXIgTWl0ZnJhdQp3ZXJkZW4uIE1pdGdsaWVkIGlzdCBqYSB6dSBtYWVubmxpY2guIDspCgpNb3Jnb25hdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVtYW56aXBhdGlvbiAoUHJhLCAyMC4gTWFyIDIwMDAsIDE2OjAwOjU5KToKfiMhIHJuPU1vcmdvbmF0ZSBydD05NTM1NjM5NTAgcmc9d2l0emUKfiMhIHRpZD05NTM0MDM2MzEKQmVpIHVucyBnaWJ0J3MgZWluIEtpbm8sIHdvIG1hbiBhbHMgTWl0Z2xpZWQgRXJtYWVzc2lndW5nIGtyaWVndC4gSWNoIHdhcgptYWwgbWl0IG1laW5lciBGcmV1bmRpbiBkYSB1bmQgc2FndGUgYW4gZGVyIEthc3NlOgoKRWlubWFsIE1pdGdsaWVkIHVuZCBlaW5tYWwgb2huZSwgYml0dGUuCgpTbyduIGZsYWNoZXIgS2FsYXVlciBrYW0gZ2FyIG5pY2h0IGd1dCBhbiA6LXwgV2VkZXIgYmVpIEZyZXVuZGluIG5vY2gKYmVpIEthc3NpZXJlcmluLi4uCgpQcmEuIE1pdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVtYW56aXBhdGlvbiAoV2lkZXdpdHQsIDIwLiBNYXIgMjAwMCwgMjE6MzU6NDApOgp+IyEgcm49UHJhIHJ0PTk1MzU2MDk0NyByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpub2Ugbm9lLCBkYXMgbWl0IGRlciB3ZWlibGljaGVuIEJyaWVmaW4gd2FyIGRhIHNjaG9uIEFic2ljaHQgIQoKd2lkZXdpdHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVtYW56aXBhdGlvbiAoR3VpbGRvLCAyMS4gTWFyIDIwMDAsIDA5OjI4OjA1KToKfiMhIHJuPVByYSBydD05NTM1NTQ0MTggcmc9d2l0emUKfiMhIHRpZD05NTM0MDM2MzEKVW5kIGRlciBIdW5kIGVpbmVyIEJla2FubnRlbiB2b24gbWlyIG11c3N0ZSBpbW1lciAiRnJhdWNoZW4iIG1hY2hlbi4uLgoKR3J1c3MsIEcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFbWFuemlwYXRpb24gKE1vcmdvdGgsIDIxLiBNYXIgMjAwMCwgMDk6Mjg6MzkpOgp+IyEgcm49R3VpbGRvIHJ0PTk1MzYyNzI4NSByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpTaWNoIGhpbnNldHplbiBiZWltIHBpc3Nlbiwgb2RlciB3YXM/IAoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVtYW56aXBhdGlvbiAoQWxib2luLCAyMS4gTWFyIDIwMDAsIDIwOjU4OjA4KToKfiMhIHJuPUd1aWxkbyBydD05NTM2MjcyODUgcmc9d2l0emUKfiMhIHRpZD05NTM0MDM2MzEKSW4gbWVpbmVyIEV4LVdHIGRhIGhhdCBtYWwgZWluZSBlaW5lbiBFbWFuemVua3JpbWluYWxyb21hbiBuYWNoIGRlbSBNb3R0bwpad2VpLUxlc2Jpc2NoZS1Lb21pc3NhcmlubmVuLWRlY2tlbi1rYXRob2xpc2NoZW4tS2luZGVyc2NoYWVuZGVycmluZy1hdWYgCnVudGVyIGFuZGVyZW0gd2FyIGRhIGF1Y2ggaW4gZXR3YSBmb2xnZW5kZXMgenUgbGVzZW46IiBEZXIgVGFnIGhldXRlIHdhcgphbnN0cmVuZ2VuZC4gTW9yZ2VuIHdlcmRlIGljaCBiZXN0aW1tdCBlaW5lIE11c2tlbGthdHplIGhhYmVuLiIKCkRhcyBpc3NlcyBlYmVuZCBiZWkgZGVuIEVtYW56ZW46IHdhcyBmdWVyIHVucyB6dW0gTGFjaGVuIGtydWVtbWxpZyBpc3QgaXN0CmZ1ZXIgZGllIHRpZXJpc2NoZXIgRXJuc3QuCgpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEVtYW56aXBhdGlvbiAoTXVwZmVsLCAyMi4gTWFyIDIwMDAsIDE3OjMyOjQ4KToKfiMhIHJuPUFsYm9pbiBydD05NTM2Njg2ODggcmc9d2l0emUKfiMhIHRpZD05NTM0MDM2MzEKSXN0IHdpZSBkaWVzZXIgS2FzcGVybHRoZWF0ZXItQ2FydG9vbiB2b24gVWxpIFN0ZWluOgoiSGFsbG9vbyBsaWViZSBLaW5kZXIgdW5kIEtpbmRlcmlubmVuIgooIkVzIGlzdCBlaW5lIEF1ZmZ1ZWhydW5nIGRlciBvZXJ0bGljaGVuIEZyYXVlbmdydXBwZSIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFbWFuemlwYXRpb24gKEFwc3UsIDIyLiBNYXIgMjAwMCwgMjI6Mzc6MjcpOgp+IyEgcm49TW9yZ29uYXRlIHJ0PTk1MzU2Mzk1MCByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpFcyBoZWlzc3QgamEgYXVjaDogRElFIEdlaXNlbAoKQXBzdSwgZWluZW4gVmVyZWluIGdlZ2VuIGRpZSBEaXNrcmltaW5pZXJ1bmcgbWFlbm5saWNoZXIgR2Vpc2VsbiBncnVlbmRlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBFbWFuemlwYXRpb24gKEthcnRvZmZlbCwgMjIuIE1hciAyMDAwLCAyMjo0MzowOSk6Cn4jISBybj1BcHN1IHJ0PTk1Mzc2MTA0NyByZz13aXR6ZQp+IyEgdGlkPTk1MzQwMzYzMQpTb2xscyBkYW5uIGRlciBHZWlzYm9jayBoZWlzc2VuPyA7KSkKCidUb2ZmZWwgLSBrb25udGUgc2ljaCBkYXMgbmljaCB2ZXJrbmVpZmVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBFbWFuemlwYXRpb24gKEx1ZywgMjIuIE1hciAyMDAwLCAyMjo1Njo1MSk6Cn4jISBybj1LYXJ0b2ZmZWwgcnQ9OTUzNzYxMzg5IHJnPXdpdHplCn4jISB0aWQ9OTUzNDAzNjMxCgpOZWluLCBzb25kZXJuIGRpZSBHZWlzemlja2UuLi4KCkRpdG8KTHVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBFbWFuemlwYXRpb24gKERlZXBibHVlLCAyMy4gTWFyIDIwMDAsIDA4OjUzOjUwKToKfiMhIHJuPUthcnRvZmZlbCBydD05NTM3NjEzODkgcmc9d2l0emUKfiMhIHRpZD05NTM0MDM2MzEKTm9lLCBkZXIgR2Vpc2VsbmVobWVyLCBwYXNzdCBzY2hvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1IEJhY2tlISA6KSAoWmFybml5YSwgIDMuIEFwciAyMDAwLCAxMTozNDoxNyk6CgpEaWUgbmV1ZSBBcmJlaXRzb3JkbnVuZwo9PT09PT09PT09PT09PT09PT09PT09PT0KCjEuS3JhbmtoZWl0c2ZhbGwKS3JhbmtoZWl0IGlzdCBrZWluZSBFbnRzY2h1bGRpZ3VuZy4gQXVjaCBlaW4gQXR0ZXN0IElocmVzIEFyenRlcyBpc3Qga2VpbgpCZXdlaXMsIGRlbm4gd2VubiBTaWUgaW4gZGVyIExhZ2Ugd2FyZW4gZGVuIEFyenQgYXVmenVzdWNoZW4sIGhhZXR0ZW4gU2llCmF1Y2ggenVyIEFyYmVpdCBrb21tZW4ga29lbm5lbi4KCjIuVG9kZXNmYWxsIGluIGRlciBGYW1pbGllCldpcmQgbmljaHQgZW50c2NodWxkaWd0LiBGdWVyIGRlbiBWZXJibGljaGVuZW4ga29lbm5lbiBTaWUgbmljaHRzIG1laHIgdHVuCnVuZCBqZW1hbmQgYW5kZXJlcyBrYW5uIGdlbmF1c29ndXQgZGllIG5vdHdlbmRpZ2VuIE1hQiUhbmFobWVuIHRyZWZmZW4uIApXZW5uIFNpZSBkaWUgQmVlcmRpZ3VuZyBhdWYgZGVuIHNwYWV0ZW4gTmFjaG1pdHRhZyBhbnNldHplbiwgZ2ViZW4gd2lyCklobmVuIGdlcm5lIGVpbmUgaGFsYmUgU3R1bmRlIGZydWVoZXIgZnJlaSwgdm9yYXVzZ2VzZXR6dCBTaWUgc2luZCBtaXQgZGVyCkFyYmVpdCBmZXJ0aWcuCgozLkVpZ2VuZXIgVG9kZXNmYWxsCkhpZXIgZHVlcmZlbiBTaWUgbWl0IHVuc2VyZW0gVmVyc3RhZW5kbmlzIHJlY2huZW4uIFdlbm46CgpTaWUgdW5zIHp3ZWkgV29jaGVuIHZvcmhlciB1ZWJlciBJaHIgQWJsZWJlbiBpbmZvcm1pZXJlbiwgZGFtaXQgd2lyCnJlY2h0emVpdGlnIGVpbmUgbmV1ZSBLcmFmdCBlaW5zdGVsbGVuIGtvZW5uZW4sIFNpZSB1bnMgc3BhZXRlc3RlbiBiaXMgOC4wMApVaHIgbW9yZ2VucyBhbnJ1ZmVuLCBkYW1pdCB3aXIgSWhuZW4gYWIgZGllc2VtIFRhZyBrZWluZW4gTG9obiBtZWhyCmJlcmVjaG5lbiBJaHJlIHVuZCBkaWUgVW50ZXJzY2hyaWZ0IGRlcyBiZWhhbmRlbG5kZW4gQXJ6dGVzIHZvcmxpZWdlbiwgZGFzcwpTaWUgdmVyc3RvcmJlbiBzaW5kLiBBbmRlcm5mYWxscyB3aXJkIGRpZXNlciBUYWcgdm9uIElocmVtIEphaHJlc3VybGF1YgphYmdlem9nZW4uCgoKNC5PcGVyYXRpb25lbgpDaGlydXJnaXNjaGUgRWluZ3JpZmZlIGFuIHVuc2VyZW4gTWl0YXJiZWl0ZXJuIHNpbmQgdW50ZXJzYWd0LiBXaXIgaGFiZW4KU2llIHNvIGVpbmdlc3RlbGx0IHdpZSBTaWUgc2luZC4gRGllIEVudGZlcm51bmcgb2RlciBWZXJhZW5kZXJ1bmcgZWluZXMKVGVpbHMgdm9uIElobmVuIHZlcnN0b2Vzc3QgZ2VnZW4gZGVuIEFyYmVpdHN2ZXJ0cmFnLgoKNS5TaWxiZXJob2NoemVpdCBiencuIEdvbGRlbmUgSG9jaHplaXQKRnVlciBkZXJhcnRpZ2UgQW5sYWVzc2Uga2FubiBrZWluZSBGcmVpc3RlbGx1bmcgZ2V3YWVocnQgd2VyZGVuLiBXZW5uIFNpZSAyNQpvZGVyIGdhciA1MCBKYWhyZSBtaXQgZGVtIGdsZWljaGVuIE1lbnNjaGVuIHZlcmhlaXJhdGV0IHNpbmQsIHNlaWVuIFNpZQpmcm9oLCB3ZW5uIFNpZSB6dXIgQXJiZWl0IGdlaGVuIGR1ZXJmZW4uCgo2LkdlYnVydHN0YWdlCkRhcyBTaWUgZ2Vib3JlbiB3dXJkZW4gaXN0IHNpY2hlciBuaWNodCBJaHIgVmVyZGllbnN0LiBEYXJ1bSBzZWhlbiB3aXIKa2VpbmUgVmVyYW5sYXNzdW5nIElobmVuIGVpbmUgRnJlaXN0ZWxsdW5nIHp1IGdld2FlaHJlbi4KCjcuR2VidXJ0IGVpbmVzIEtpbmRlcwpGdWVyIGRlcmFydGlnZSBGZWhsdHJpdHRlIHVuc2VyZXIgQW5nZXN0ZWxsdGVuIGhhZnRldCBkaWUgRmlybWEgbmljaHQgdW5kIGVzCmlzdCBhdWNoIGtlaW5lIEFyYmVpdHNiZWZyZWl1bmcgdm9yZ2VzZWhlbi4gU2llIGhhdHRlbiBJaHJlbiBTcGFzcyBhbiBkZXIgClNhY2hlLgoKTWFyYwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3aWVkZXIgZWluIENsaW50b24gV2l0ei4uLiAoTmV2b2ssICA0LiBBcHIgMjAwMCwgMjE6NDM6MTQpOgpQcmVzaWRlbnQgQ2xpbnRvbiBhcnJpdmVzIGluIEQuQy4gYWZ0ZXIgYSB0cmlwIHRvIGhpcyBob21lIHN0YXRlIEFya2Fuc2FzLgpIZSBzdGVwcyBvdXQgb2YgdGhlIHBsYW5lLCBjYXJyeWluZyB0d28gcGlncywgb25lIHVuZGVyIGVhY2ggYXJtLiBXaGVuIGhlCnJlYWNoZXMgdGhlIGJvdHRvbSBvZiB0aGUgc3RhaXJzLCB0aGUgbWFyaW5lIGd1YXJkIHNhbHV0ZXMgaGltIHNoYXJwbHkuCkNsaW50b24gc21pbGVzIGJhY2sgYW5kIHNheXMsICJJJ2QgbGlrZSB0byBzYWx1dGUgYmFjaywgc29uLCBidXQgYXMgeW91IGNhbgpzZWUsIG15IGhhbmRzIGFyZSBmdWxsLiIKIlllcyBTaXIhIiBzYXlzIHRoZSBtYXJpbmUuICJNaWdodHkgZmluZSBwaWdzLCBzaXIhIgpDbGludG9uIHJlcGxpZXMsICJUaGVzZSBhcmVuJ3QganVzdCBvcmRpbmFyeSBwaWdzLCBzb247IHRoZXkgYXJlIHB1cmUgQXJrYW5zYXMKcmF6b3JiYWNrcy4iCgoiWWVzLCBzaXIhIiBzYXlzIHRoZSBtYXJpbmUuICJNaWdodHkgZmluZSByYXpvcmJhY2tzLCBzaXIhIgoKQ2xpbnRvbiBzYXlzLCAiSSBnb3Qgb25lIGZvciBIaWxsYXJ5IGFuZCBvbmUgZm9yIENoZWxzZWEuIgoKIlllcywgc2lyISJ0aGUgbWFyaW5lIHNheXMgYWdhaW4uICJHb29kIHRyYWRlLCBzaXIhIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmVpbiBoYXJtbG9zZXIuLi4gKEFtYXJ5bGxpcywgIDUuIEFwciAyMDAwLCAyMzowNzo1OSk6CiJFZHVhcmQiLCBmcmFndCBkaWUgR2F0dGluIHN0cmVuZywgIndpZSBrb21tdCBlcywgZGFzcyBkdSBnZXN0ZXJuIGhhbGIKYmV0cnVua2VuCm5hY2ggSGF1c2UgZ2Vrb21tZW4gYmlzdD8iICJJY2ggaGF0dGUga2VpbiBHZWxkIG1laHIuLi4iIAoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWljcm9ib3JnIChSb2NodXMsIDExLiBBcHIgMjAwMCwgMTI6MTI6MDQpOgo+IE1pY3Jvc29mdCBpcyBzb3J0IG9mIGEgbWl4dHVyZSBiZXR3ZWVuIHRoZSBCb3JnIGFuZCB0aGUKPiBGZXJlbmdpLiBDb21iaW5lIHRoZSBCb3JnIG1hcmtldGluZyB3aXRoIEZlcmVuZ2kgbmV0d29ya2luZy4uLgoKKEF1cyBkZS5vcmcuY2NjKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKMSAoR3JpbW1ib3JuLCAxOC4gQXByIDIwMDAsIDA3OjE0OjU4KToKfiMhIG9uPUdhbGJyYWl0aCBvdD05NTYwMDc3OTEgb2c9YWxsZ2VtZWluZXMKcQpxCnRlc3QKcQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDEgKE5vbm5lLCAxOC4gQXByIDIwMDAsIDExOjAyOjMzKToKfiMhIHJuPUdyaW1tYm9ybiBydD05NTYwMzQ4OTggcmc9d2l0emUKfiMhIHRpZD05NTYwMzQ4OTgKd2llc28gbGFuZGV0IHNvIGV0d2FzIGluIFdpdHplPyEgT2RlciBpc3QgZGFzIGRpZSBlcnN0ZSBFZC1TaXR6dW5nIGVpbmVzClVuaXgtTmV1bGluZ3M/CgpPZGVyIGdpYnQgZXMgJ211ZWxsJyBuaWNodCBtZWhyPyAKCk5vbm5lLCBhdWYgV2l0emUgKGd1dGUhKSB3YXJ0ZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ2VyYWRlIHdpZWRlcmdlZnVuZGVuICAoSGlnaHQsIDE5LiBBcHIgMjAwMCwgMTc6NDA6NTApOgpPbiB0aGUgbW9ybmluZyBzaG93IGF0IFdCQU0gRk0gaW4gQ2hpY2FnbyB0aGV5IHBsYXkgYSBnYW1lIGZvciBwcml6ZXMsIHVzdWFsbHkKdmFjYXRpb25zIGFuZCBzdWNoLCBjYWxsZWQgIk1hdGUgTWF0Y2giLiBUaGUgREoncyByaW5nIHNvbWVvbmUgYXQgd29yayBhbmQgYXNrCmlmIHRoZXkgYXJlIG1hcnJpZWQgb3IgaW4gYSBzZXJpb3VzIHJlbGF0aW9uc2hpcC4KSWYgeWVzLCB0aGVuIHRoaXMgcGVyc29uIGlzIGFza2VkIDMgdmVyeSBwZXJzb25hbCBxdWVzdGlvbnMgdGhhdCB2YXJ5IGZyb20KY291cGxlIHRvIGNvdXBsZSBhbmQgYXNrZWQgZm9yIHRoZWlyIHNpZ25pZmljYW50IG90aGVycyBuYW1lIGFuZCB3b3JrIHBob25lCm51bWJlci4gSWYgdGhlIHNpZ25pZmljYW50IG90aGVyIGFuc3dlcnMgY29ycmVjdGx5IHRoZW4gdGhleSBhcmUgd2lubmVycwoKVGhpcyBwYXJ0aWN1bGFyIGRheSAoMTItOS05OCkgaXQgZ290IGludGVyZXN0aW5nOgoKREo6IEhFWSEgVGhpcyBpcyBFZGdhciBvbiBXQkFNLiBEbyB5b3Uga25vdyAiTWF0ZSBNYXRjaCI/CkNvbnRlc3RhbnQ6IChsYXVnaGluZykgWWVzIEkgZG8uCkRKOiBXaGF0IGlzIHlvdXIgbmFtZT8gRmlyc3Qgb25seSBwbGVhc2UuCkNvbnRlc3RhbnQ6IEJyaWFuCkRKOiBBcmUgeW91IG1hcnJpZWQgb3Igd2hhdCBCcmlhbj8KQnJpYW46IFllcy4KREo6ICJZZXMiPyBEb2VzIHRoaXMgbWVhbiB5b3VyIGFyZSBtYXJyaWVkPyoub3Igd2hhdD8qQnJpYW4/CkJyaWFuOiAobGF1Z2hpbmcgbmVydm91c2x5KSBZZXMgSSBhbSBtYXJyaWVkLgpESjogVGhhbmsgeW91IEJyaWFuLiBPSywgbm93LCB3aGF0IGlzIHlvdXIgd2lmZSdzIG5hbWU/IEZpcnN0IG9ubHkgcGxlYXNlCkJyaWFuLgpCcmlhbjogU2FyYS4KREo6IElzIFNhcmEgYXQgd29yayBCcmlhbj8KQnJpYW46IFNoZSBpcyBnb25uYSBraWxsIG1lLgpESjogU3RheSB3aXRoIG1lIGhlcmUgQnJpYW4hIElzIHNoZSBhdCB3b3JrPwpCcmlhbjogKGxhdWdoaW5nKSBZZXMgc2hlIGlzLgpESjogQWxsIHJpZ2h0IHRoZW4sIGZpcnN0IHF1ZXN0aW9uOiBXaGVuIHdhcyB0aGUgbGFzdCB0aW1lIHlvdSBoYWQgc2V4PwpCcmlhbjogU2hlIGlzIGdvbm5hIGtpbGwgbWUuCkRKOiBCUklBTiEgU3RheSB3aXRoIG1lIGhlcmUgbWFuLgpCcmlhbjogQWJvdXQgOCBPJ2Nsb2NrIHRoaXMgbW9ybmluZy4KREo6IEF0dGEgYm95LgpCcmlhbjogKGxhdWdoaW5nIHNoZWVwaXNobHkpIFdlbGwqLgpESjogTnVtYmVyIDI6IEhvdyBsb25nIGRpZCBpdCBsYXN0PwpCcmlhbjogQWJvdXQgMTAgbWludXRlcy4KREo6IFdvdyEgWW91IHJlYWxseSB3YW50IHRoYXQgdHJpcCBodWg/IE5vIG9uZSB3b3VsZCBldmVyIGhhdmUKc2FpZCB0aGF0IGlmIHRoZXJlIHdlcmVuJ3QgYSB0cmlwIGF0IHN0YWtlLgpCcmlhbjogWWVhaCwgaXQgd291bGQgYmUgcmVhbGx5IG5pY2UuCkRKOiBPSy4gRmluYWwgcXVlc3Rpb246IFdoZXJlIHdhcyBpdCB0aGF0IHlvdSBoYWQgc2V4IGF0IDggdGhpcyBtb3JuaW5nPwpCcmlhbjogKGxhdWdoaW5nIGhhcmQpIEkgdW1tbW1tKi4KREo6IFRoaXMgc291bmRzIGdvb2QgQnJpYW4qd2hlcmUgd2FzIGl0PwpCcmlhbjogTm90IHRoYXQgaXQgd2FzIGFsbCB0aGF0IGdyZWF0LCBpdCdzIGp1c3QgdGhhdCBoZXIgbW9tIGlzIHN0YXlpbmcgd2l0aAp1cyBmb3IgYSBjb3VwbGUgb2Ygd2Vla3MgYW5kIHNoZSB3YXMgdGFraW5nIGEgc2hvd2VyIGF0IHRoZSB0aW1lLgpESjogT29vb29vaCwgc25lYWt5IGJveSEKQnJpYW46IE9uIHRoZSBraXRjaGVuIHRhYmxlLgpESjogIk5vdCB0aGF0IGdyZWF0Ij8gVGhhdCBpcyBtb3JlIGFkdmVudHVyb3VzIHRoYW4gdGhlIGxhc3QgaHVuZHJlZCB0aW1lcyBJCmhhdmUgZG9uZSBpdC4gQW55d2F5LCAodG8gYXVkaWVuY2UpIEkgd2lsbCBwdXQgQnJpYW4gb24gaG9sZCwgZ2V0IGhpcyB3aWZlJ3MKd29yayBudW1iZXIgYW5kIGNhbGwgaGVyIHVwLiBZb3UgbGlzdGVuIHRvIHRoaXMuCgooQWR2ZXJ0aXNlbWVudHMpCgpESjogKHRvIGF1ZGllbmNlKSBMZXQncyBjYWxsIFNhcmEgc2hhbGwgd2U/Cih0b3VjaCB0b25lcypyaW5naW5nKikKQ2xlcms6IEtpbmtvJ3MuCkRKOiBIZXksIGlzIFNhcmEgYXJvdW5kIHRoZXJlIHNvbWV3aGVyZT8KQ2xlcms6IFRoaXMgaXMgc2hlLgpESjogU2FyYSwgdGhpcyBpcyBFZGdhciB3aXRoIFdCQU0uIEkgaGF2ZSBiZWVuIHNwZWFraW5nIHdpdGggQnJpYW4gZm9yIGEKY291cGxlIG9mIGhvdXJzIG5vdyoKU2FyYTogKGxhdWdoaW5nKSBBIGNvdXBsZSBvZiBob3Vycz8KREo6IFdlbGwsIGEgd2hpbGUgYW55d2F5LiBIZSBpcyBhbHNvIG9uIHRoZSBsaW5lIHdpdGggdXMuIEJyaWFuIGtub3dzIG5vdCB0bwpnaXZlIGF3YXkgYW55IGFuc3dlcnMgb3IgeW91IGxvc2Ugc29vb29vb29vIGRvIHlvdSBrbm93IHRoZSBydWxlcyBvZiAiTWF0ZQpNYXRjaCI/ClNhcmE6IE5vCkRKOiBHb29kLgpCcmlhbjogKGxhdWdoaW5nKQpTYXJhOiAobGF1Z2hpbmcpIEJyaWFuLCB3aGF0IHRoZSBoZWxsIGFyZSB5b3UgdXAgdG8/CkJyaWFuOiAobGF1Z2hpbmcpIEp1c3QgYW5zd2VyIGhpcyBxdWVzdGlvbnMgaG9uZXN0bHkgT0s/ClNhcmE6IE9oLCBCcmlhbioKREo6IFllYWgsIHllYWgsIHllYWguIFNhcmEgSSB3aWxsIG5vdyBhc2sgeW91IDMgcXVlc3Rpb25zIGFuZCBpZiB5b3UgYW5zd2VyCmV4YWN0bHkgd2hhdCBCcmlhbiBoYXMgc2FpZCB0aGVuIHRoZSAyIG9mIHlvdSBhcmUgb2ZmIHQgT3JsYW5kbywgRmxvcmlkYSBhdApvdXIgZXhwZW5zZS4gVGhpcyBkb2VzIGluY2x1ZGUgdGlja2V0cyB0byBEaXNuZXkgV29ybGQsIFNlYSBXb3JsZCBhbmQgdGlja2V0cwp0byBzZWUgdGhlIE9ybGFuZG8gTWFnaWMgcGxheS4gR2V0IGl0IFNhcmE/IFNBUkEhIEdFVCBJVCBPcmxhbmRvIE1hZ2ljLHRoZXkKYXJlIG9uIHN0cmlrZSBTYXJhKmhlbGxvb29vb28qYW55b25lIGhvbWU/IT8hClNhcmE6IChsYXVnaGluZyBoYXJkKSBZRVMsIHllcy4KQnJpYW46IChsYXVnaGluZykKREo6IEFsbCByaWdodCwgd2hlbiBkaWQgeW91IGhhdmUgc2V4IGxhc3QgU2FyYT8KU2FyYTogT2ggR29kLCBCcmlhbiouLnRoaXMgbW9ybmluZyBiZWZvcmUgQnJpYW4gd2VudCB0byB3b3JrLgpESjogV2hhdCB0aW1lPwpTYXJhOiBBYm91dCA4IEkgdGhpbmsuCihzb3VuZCBlZmZlY3QpIERJTkcgRElORyBESU5HCkRKOiBWZXJ5IGdvb2QuIE5leHQgcXVlc3Rpb246IEhvdyBsb25nIGRpZCBpdCBsYXN0PwpTYXJhOiAxMiAtIDE1IG1pbnV0ZXMgbWF5YmUuCkRKOiBoaG1tbW1tCkJhY2tncm91bmQgdm9pY2UgaW4gc3R1ZGlvOiBUaGF0J3MgY2xvc2UgZW5vdWdoLiBJIGFtIHN1cmUgc2hlIGlzIHRyeWluZyBub3QKdG8gaGFybSBoaXMgbWFuaG9vZC4KREo6IFdlbGwsIHdlIHdpbGwgZ2l2ZSB5b3UgdGhhdCBvbmUuIExhc3QgcXVlc3Rpb246IFdoZXJlIGRpZCB5b3UgZG8gaXQ/ClNhcmE6IE9IIE1ZIEdPRCwgQlJJQU4hIFlvdSBkaWQgbm90IHRlbGwgdGhlbSBkaWQgeW91PyE/IQpCcmlhbjogSnVzdCB0ZWxsIGhpbSBob25leS4KREo6IFdoYXQgaXMgYm90aGVyaW5nIHlvdSBzbyBtdWNoIFNhcmE/ClNhcmE6IFdlbGwqSXQncyBqdXN0Kmp1c3QgdGhhdCBteSBtb20gaXMgdmFjYXRpb25pbmcgd2l0aCB1cyBhbmQuLi4KREo6IFNIRSBTQVc/IT8hClNhcmE6IEJSSUFOPyE/IQpCcmlhbjogTk8sIG5vIEkgZGlkbid0Li4uCkRKOiBFYXNlIHVwIHRoZXJlIHNpc3Rlci4gSnVzdCBtZXNzaW4nIHdpdGggeW91ciBoZWFkLiBZb3VyIGFuc3dlcj8KU2FyYTogRGVhciBMb3JkLi4uLkkgY2Fubm90IGJlbGlldmUgeW91IHRvbGQgdGhlbSB0aGlzLgpCcmlhbjogQ29tZSBvbiBob25leSBpdCdzIGZvciBhIHRyaXAgdG8gRmxvcmlkYS4KREo6IExldCdzIGdvIFNhcmEgd2UgYWluJ3QgZ290IGFsbCBkYXkuIFdoZXJlIGRpZCB5b3UgZG8gaXQ/ClNhcmE6IEluIHRoZSBhc3MuCihsb25nIHBhdXNlKQpESjogV2Ugd2lsbCBiZSByaWdodCBiYWNrLgooYWR2ZXJ0aXNlbWVudHMpCkRKOiBJIGFtIHNvcnJ5IGZvciB0aGF0IGxhZGllcyBhbmQgZ2VudGxlbWVuLiBUaGlzIGlzIGxpdmUgcmFkaW8gYW5kIHRoZXNlCnRoaW5ncyBkbyBoYXBwZW4uIEFueXdheSwgQnJpYW4gYW5kIFNhcmEgYXJlIG9mZiB0byBsb3ZlbHkgT3JsYW5kbywgRmxvcmlkYSoqKgoKCgoKSGlnaHQgaW1tZXJub2NoIGxhY2hlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmxhY2gqIChBbGJvaW4sIDIwLiBBcHIgMjAwMCwgMTI6NTM6NTEpOgpad2VpIEZyYXVlbiB0cmVmZmVuIHNpY2ggYXVmIGRlciBTdHJhc3NlLCBkaWUgZWluZSBzY2hpZWJ0IGVpbmVuCktpbmRlcndhZ2VuOiJEYXMgaXN0IGphIGVpbiB3dW5kZXJzY2hvZW5lcyBCYWJ5ISBJc3QgZXMgZWluIEp1bmdlIG9kZXIgZWluCk1hZWRjaGVuPyIuIkhtbSwgamEuIEljaCBtb2VjaHRlIG1laW4gS2luZCBhbHRlcm5hdGl2IGVyemllaGVuIC0gbWl0IDIxIGRhcmYKZXMgZW50c2NoZWlkZW4sIHdhcyBlcyB3ZXJkZW4gd2lsbC4uLiIgCgpBbGJvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLi4gKFp1Y2tlcmJyb3QsIDIzLiBBcHIgMjAwMCwgMDE6MTQ6NTEpOgoibWFtbWkgbWFtbWkgZGVyIHBhcHBhIGhhdCBzaWNoIGF1ZiBkZW0gZGFjaGJvZGVuIGF1ZmdlaGFlbmd0IgoiaHV1dXV1Y2ggd2FhaGhoaGghISEiCiJhcHJpbCBhcHJpbCwgZXIgaGFlbmd0IGltIGtlbGxlciIKCnouQi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAuLi4uIChIYXNpbSwgMjYuIEFwciAyMDAwLCAwODowNDoyMSk6Cn4jISBybj1adWNrZXJicm90IHJ0PTk1NjQ0NTI5MSByZz13aXR6ZQp+IyEgdGlkPTk1NjQ0NTI5MQpNYW1hLCBNYW1hLCBkZXIgUGFwcGEgbGllZ3QgbWl0IGVpbmVyIGZyZW1kZW4gRnJhdSBpbSBCZXR0IQoKV2FhYWFzPyBBYWFhYWFoIQoKQXByaWwsIEFwcmlsLCBlcyBpc3QgbnVyIGRhcyBEaWVuc3RtYWVkY2hlbiEuLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbGFtZW4gZnVlciBBbmZhZW5nZXIgKGF1cyBIZWlzZXRpY2tlcikgKFRydWcsIDI4LiBBcHIgMjAwMCwgMTQ6NTM6MDgpOgpGbGFtZXdhciBmdWVyIEFuZmFlbmdlcgpPbGl2ZXIgUnVlYmVuYWNrZXIgT2xpdmVyQFJ1ZWJlbmFja2VyLmRlICgyNi4gQXByaWwgMjAwMCkgCgpIYWxsbyEKRGEgZGllIG1laXN0ZW4gSGVpc2UtTGVzZXJicmllZnNjaHJlaWJlciBkYXMgRnVlaHJlbiB2b24gT1MtRmxhbWV3YXJzCnNjaG9uIGluIGRlbiBXaW5kZWxuIGdsZXJudCBoYWJlbiwgYWJlciBpbSBGdWVocmVuIHZvbiBQYWNrZXItRmxhbWV3YXJzCnZpZWxsZWljaHQgd2VuaWdlciBlcmZhaHJlbiBzaW5kLCBrb21tdCBoaWVyIGVpbmUga2xlaW5lciBIaWxmZSBmdWVyCkFuZmFlbmdlci4gVmllbCBTcGFzcyBiZWltIEZsYW1lbi4KCkVpbmZhY2ggaW0gZm9sZ2VuZGVuIFRleHQgYW4gamVkZXIgU3RlbGxlIHZvbiBkZW4gQWx0ZXJuYXRpdmVuIGVpbmUKYXVzd2FlaGxlbiAtIGZlcnRpZyBpc3QgZGVyIEZsYW1ldGV4dC4KQmVpIEludGVyZXNzZSBrb2VubmVuIGF1Y2ggRmxhbWV3YXJoaWxmZW4genVtIFRoZW1hIFRleHRlZGl0b3IsCk1haWxwcm9ncmFtbSwgV2ViYnJvd3NlciwgUHJvZ3JhbW1pZXJzcHJhY2hlLCBUYXN0YXR1ciwgTW9uaXRvciwKVHJpbmtnZWZhZXNzLCBLYWZmZWVsb2VmZmVsIG9kZXIgUGFwaWVyc2VydmlldHRlIGdlbGllZmVydCB3ZXJkZW4uCgpJaHIgc2VpZCBkb2NoIGFsbGUKKElkaW90ZW4vQXJzY2hsb2VjaGVyL1dpY2hzZXIvRHVtbWVyIEh1bmRlKSEKSG9lcnQgYXVmIG1pdCBFdXJlcm0KKFNjaG1hcnJuL1NjaGVpc3MvTWlzdC9TY2hlaXNzZHJlY2spIQpEZW5uIGV1ZXIKKHNjaGVpc3NkYWVtbGljaGVyL2R1bW1lci9hZXR6ZW5kZXIvYmVkZXBwZXJ0ZXIpClBhY2tlciBpc3QgbWlyIG5hZW1saWNoIHZpZWwgenUKKGxhbmdzYW0vdW5lZmZla3Rpdi90ZXVlci9wb2xpdGlzY2ggdW5rb3JyZWt0L3VuYmVrYW5udCkuCkVzIGlzdCBuYWVtbGljaCBlaW5lIHdpc3NlbnNjaGFmdGxpY2ggYmV3aWVzZW5lIFRhc2FjaGUsIGRhc3MgRXVlcgpQYWNrZXIgenV3ZW5pZwooQ29kZS9TcGVpY2hlci9CdWNoc3RhYmVuIGltIE5hbWVuKQpoYXQgdW0gZnVlciBtaWNoIGJyYXVjaGJhciB6dSBzZWluLiBNZWluIFBhY2tlciBkYWdlZ2VuIGlzdCB2aWVsCihzY2huZWxsZXIvZWZmZWt0aXZlci9iaWxsaWdlci9lcm90aXNjaGVyKQphbHMgCihaaXAvRXVyZXIvYWxsZSBQYWNrZXIgZGVyIFdlbHQvR290dCkuCkRhcyBsaWVndCBhYmVyIG51ciBkYXJhbiwgZGFzcyBpY2ggdW50ZXIKKFdpbi9XaW4gTlQvTGludXgvTWFjIE9TL1N1biBPUy9BbWlnYSBPUy9ET1MvVE9TL21laW5lciBGcmF1KQphdWYgZWluZW0KKENvbXB1dGVyL1BDL01hYy9Hcm9zc3JlY2huZXIvUmVjaGVuc2NoaWViZXIvQXV0b3JlaWZlbikKYXJiZWl0ZSwgdW5kIGRhcyBpc3QgZWJlbiBudXIgZXR3YXMgZnVlciAKKEZyZWFrcy9Db29sZS9BdWZzdGVpZ2VyL1NjaGxhdWUvUGl6emFiYWVja2VyKQpkZW5uIG51ciB1bnRlciBkaWVzZW0gQmV0cmllYnNzeXN0ZW0gYXVmIGRpZXNlbSBSZWNobmVyIGJla29tbXQgbWFuCm1laHIKKEdlbGQvU3Bhc3MvQ29vbG5lc3MvRnJhdWVuL1Nvbm5lKQphbHMgYWxsIGRpZQooVmVyc2FnZXIvU3Bpbm5lci9EZXBwZW4vSWRpb3Rlbi9IYWxzYWJzY2huZWlkZXIpLApkaWUgdW50ZXIKKFdpbi9XaW4gTlQvTGludXgvTWFjIE9TL1N1biBPUy9BbWlnYSBPUy9ET1MvVE9TL21laW5lciBGcmF1KQphdWYgZWluZW0KKENvbXB1dGVyL1BDL01hYy9Hcm9zc3JlY2huZXIvUmVjaGVuc2NoaWViZXIvQXV0b3JlaWZlbikKYXJiZWl0ZW4uIEplbmUgc29sbHRlIG1hbgoodmllcnRlaWxlbi9iZWZvZXJkZXJuL2F1ZmtsYWVyZW4vaW4gUnVoZSBsYXNzZW4vYW5tYWxlbikuCkljaCBob2ZmZSwgZGFzcyBhbGxlIGRpZQooaG9jaGdlaGVuL2Fia3JhdHplbi92b24gZGVyIEJpbGRmbGFlY2hlIHZlcnNjaHdpbmRlbikKd2VsY2hlIGFuZGVyZQooUGFja2VyL0NvbXB1dGVyL0JldHJpZWJlc3lzdGVtZS9UYXNjaGVubWVzc2VyL0thZmZlZWxvZWZmZWwpCmFscyBpY2ggdmVyd2VuZGVuLCBkZW5uIG51ciBpY2ggbWFjaGUgZXMgcmljaHRpZywgc2NobGllc3NsaWNoIGJpbgppY2ggamEgZWluCihFeHBlcnRlL0d1cnUvRnJlYWsvU3R1ZGllcnRlci9BdWZnZWtsYWVydGVyL0dlaXN0bGljaGVyL0FyaWVyL0dvdHQpCnVuZCBhbGxlIGFuZGVyZW4gc2luZCAKKFdlZW5pZXMvVmVyc2FnZXIvdW53aXNzZW5kL3Vud3VlcmRpZykuIAoKVmllbCBTcGFzcyBiZWltIEZsYW1lbgp3dWVuc2NodCBFdWNoIGFsbGVuCk9saXZlcgoKKERlciBlaWdlbnRsaWNoZSBBcnRpa2VsIGdpbmcgdW0gZGVuIFRvZCB2b24gUGhpbGlwcCBLYXR6LCBkZXIgMzdqYWVocmlnIGFuCkFsa29ob2wgZ2VzdG9yYmVuIGlzdC4gRXIgaXN0IGRlciBCZXNpdHplciB2b24gUEtXQVJFIHVuZCBkZW4gRGF0ZWlmb3JtYXQKLlpJUCkuCgpUcnVnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNQ1NFIChSb2NodXMsICAyLiBNYWkgMjAwMCwgMTY6Mjk6MjQpOgpNQ1NFID0gTWluZXN3ZWVwZXIgQ29uc3VsdGFudCBhbmQgU29saXRhaXJlIEV4cGVydAoKKEF1cyBkZS5vcmcuY2NjKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1DU0UgKEtvYmF5YXNoaSwgIDMuIE1haSAyMDAwLCAyMDoyMToyNyk6Cn4jISBybj1Sb2NodXMgcnQ9OTU3Mjc3NzY0IHJnPXdpdHplCn4jISB0aWQ9OTU3Mjc3NzY0CkRhcyB3YXIgc2Nob24gaW0gRmVicnVhciBpbSBVc2VyZnJpZW5kbHkub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZW4gV2F5cyB0byBBbm5veSB0aGUgcGVyc29uIGluIHRoZSBOZXh0IFRvaWxldC4uLiAoR2xvaW4sICA0LiBNYWkgMjAwMCwgMTY6Mjg6MjkpOgoxLiAgR3J1bnQgYW5kIHN0cmFpbiByZWFsIGxvdWQgZm9yIDMwIHNlY29uZHMgYW5kIHRoZW4gZHJvcCBhIG1lbG9uIGludG8KICAgIHRoZSB0b2lsZXQgYm93bCBmcm9tIGEgaGVpZ2h0IG9mIDYgZmVldC4gU2lnaCByZWxheGluZ2x5LgoKMi4gIEZpbGwgdXAgYSBsYXJnZSBmbGFzayB3aXRoIEx1Y296YWRlLiBTcXVpcnQgaXQgZXJyYXRpY2FsbHkgdW5kZXIgdGhlCiAgICBzdGFsbCB3YWxscyBvZiB5b3VyIG5laWdoYm91cnMgd2hpbGUgeWVsbGluZywgIldob2EhIEVhc3kgYmlnIGJveSEiCgozLiAgQ2hlZXIgYW5kIGNsYXAgbG91ZGx5IGV2ZXJ5IHRpbWUgc29tZWJvZHkgYnJlYWtzIHRoZSBzaWxlbmNlIHdpdGggYQogICAgYm9kaWx5IGZ1bmN0aW9uIG5vaXNlLgoKNC4gIFVzaW5nIGEgc21hbGwgc3F1ZWV6ZSB0dWJlLCBzcHJlYWQgcGVhbnV0IGJ1dHRlciBvbiBhIHdhZCBvZiB0b2lsZXQKICAgIHBhcGVyIGFuZCBkcm9wIHRoZSB3YWQgdW5kZXIgdGhlIHN0YWxsIHdhbGwgb2YgeW91ciBuZWlnaGJvdXIuIFRoZW4KICAgIHNheSwgIldob29wcywgY291bGQgeW91IGtpY2sgdGhhdCBiYWNrIG92ZXIgaGVyZSBwbGVhc2UiPwoKNS4gIFNheSwgIkMnbW9uIE1yLiBIYXBweSEhIERvbid0IGZhbGwgYXNsZWVwIG9uIG1lISEiCgo2LiAgRHJvcCBhIEQtY3VwIGJyYSBvbiB0aGUgZmxvb3IgdW5kZXIgdGhlIHN0YWxsIHdoZXJlIHRoZSBwZXJzb24gaW4gdGhlCiAgICBuZXh0IHN0YWxsIGNhbiBzZWUgaXQuCgo3LiAgU2F5LCAiRGFtbiwgdGhpcyB3YXRlcidzIGNvbGQhIgoKOC4gIFNheSwgIkhtbSwgSSd2ZSBuZXZlciBzZWVuIHRoYXQgY29sb3VyIGJlZm9yZS4iCgo5LiAgU2F5LCAiSW50ZXJlc3RpbmcsIG1vcmUgZmxvYXRlcnMgdGhhbiBzaW5rZXJzLiIKCjEwLiBEcm9wIGEgbWFyYmxlIGFuZCBzYXksICJPaCBub29vbywgbXkgZ2xhc3MgZXllISEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbnlrZXktVGFzdGUgKFNseWZveCwgIDkuIE1haSAyMDAwLCAyMDowMjozOCk6CkZyYWd0IGVpbiBEQVUgKD0gZHVlbW1zdGVyIGFuenVuZWhtZW5kZXIgVXNlcikgZGVuIGFuZGVyZW46ICJIYXN0IER1IGRhcwpQcm9ncmFtbSBpbnN0YWxsaWVyZW4ga29lbm5lbj8iIC0gRGVyIGFuZGVyZTogIk5laW4sIGljaCBzdWNoIHZlcnp3ZWlmZWx0IGRpZQoiYW55IGtleSItVGFzdGUuIERhIHN0ZWh0IGRhdWVybmQ6IGBwbGVhc2UgcHJlc3MgYW55IGtleScuIi4KRGVyIGVpbmU6ICJWaWVsbGVpY2h0IGJyYXVjaHN0IER1ICduZSBuZXVlIFRhc3RhdHVyPyIgRGVyIGFuZGVyZTogIkRhcyBtdXNzCmVzIHNlaW4uIEtlaW4gV3VuZGVyLCBkYSBzdGVodCBhdWNoIGBBbHQnIGRyYXVmISIuCgogIFNseWZveAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBbnlrZXktVGFzdGUgKEdvbGFzLCAgOS4gTWFpIDIwMDAsIDIwOjI3OjA2KToKfiMhIHJuPU11cGZlbCBydD05NTc4OTU2ODUgcmc9d2l0emUKfiMhIHRpZD05NTc4OTUzNTgKbmV1ZXIgd2FyIGRpZSBoaWxmZSBkZXIgaG90bGluZSwgbWFuIGtvZW5uZSBkaWVzZSB0YXN0ZSBzaW11bGllcmVuIC4uLgptYW4gZHJ1ZWNrZSBkaWUgbGlua2Ugc2hpZnQgdGFzdGUsIGRhbm4genVzYWV0emxpY2ggZGllIHJlY2h0ZSBzdHJnLXRhc3RlLAphbHQsIGFsdC1nciB1bmQgZGFubiBkaWUgdGFzdGUgJzYnIC4uLgoKZ29sYXMgc2NobXVuemVsbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFueWtleS1UYXN0ZSAoRGVlcGJsdWUsIDEwLiBNYWkgMjAwMCwgMDk6MDM6MDYpOgp+IyEgcm49R29sYXMgcnQ9OTU3ODk2ODI2IHJnPXdpdHplCn4jISB0aWQ9OTU3ODk1MzU4CmZhbHNjaGUgVGFzdGVua29tYmluYXRpb24uIER1IG11c3N0IEVzYy1BbHRHci1HcmV5TWludXMgZHJ1ZWNrZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEFueWtleS1UYXN0ZSAoUHJhLCAxMC4gTWFpIDIwMDAsIDExOjA0OjM2KToKfiMhIHJuPURlZXBibHVlIHJ0PTk1Nzk0MjE4NiByZz13aXR6ZQp+IyEgdGlkPTk1Nzg5NTM1OApkdWJsZG1hbm4uLi4gamV0eiBoYWIgaWdoICBtaSByIGRpZSBhbmQgZXJlZW5ra3QKcGVhLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQW55a2V5LVRhc3RlIChZZW5kaSwgMTAuIE1haSAyMDAwLCAxMToxOTozNik6Cn4jISBybj1EZWVwYmx1ZSBydD05NTc5NDIxODYgcmc9d2l0emUKfiMhIHRpZD05NTc4OTUzNTgKLi4uIGFiZXIgYml0dGUgYXVmIGRyZWkgdmVyc2NoaWVkZW5lbiBUYXN0YXR1cmVuIGluIGRyZWkgdmVyc2NoaWVkZW5lbgpSYWV1bWVuLCB3ZW5uJ3MgZ2VodCBpbiBkcmVpIHZlcnNjaGllZGVuZW4gU3RvY2t3ZXJrZW4uCgpPZGVyIGVpbmZhY2ggcmVpbmJlaXNzZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQW55a2V5LVRhc3RlIChCYWJvb24sIDEwLiBNYWkgMjAwMCwgMTE6Mzk6NTgpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTU3OTQyMTg2IHJnPXdpdHplCn4jISB0aWQ9OTU3ODk1MzU4CkljaCBkYWNodGUgZGllIGFueWtleS1UYXN0ZSB3YWVyZSBkZXIgZ3Jvc3NlIEtub3BmCmFtIE1vbml0b3ItUG9kZXN0PyBEaXJla3QgbmViZW4gZGVtIEthZmZlZXRhc3Nlbi0KaGFsdGVyIHVuZCBkZXIgRmxvcHB5LgoKQmFCT09uKCkgKHZlcnd1bmRlcnQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBBbnlrZXktVGFzdGUgKENhdHdlYXpsZSwgMTAuIE1haSAyMDAwLCAxMjoyNDowNCk6Cn4jISBybj1CYWJvb24gcnQ9OTU3OTUxNTk4IHJnPXdpdHplCn4jISB0aWQ9OTU3ODk1MzU4Ck9rb2ssIGljaCB3ZXJkZSBtaXRzcGllbGVuLgoKV2FzIGRlbm4gZnVlcm4gS2FmZmVldGFzc2VuaGFsdGVyPyAqcmF0bG9zIHNjaGF1ZW5kKgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBBbnlrZXktVGFzdGUgKE9sbGksIDEwLiBNYWkgMjAwMCwgMTM6Mjg6MTUpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTk1Nzk1NDI0NCByZz13aXR6ZQp+IyEgdGlkPTk1Nzg5NTM1OApTYWcgYmxvc3MsIER1IGtlbm5zdCBkZW4gcHJha3Rpc2NoZW4gR2V0cmFlbmtlaGFsdGVyIGFtIFJlY2huZXIgbmljaHQ/CgpPbGxpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBBbnlrZXktVGFzdGUgKEplbmFuZHJhLCAxMC4gTWFpIDIwMDAsIDEzOjI5OjA5KToKfiMhIHJuPU9sbGkgcnQ9OTU3OTU4MDk1IHJnPXdpdHplCn4jISB0aWQ9OTU3ODk1MzU4CmRlciwgYXVmIGRlbSAndmllci1peCcgZHJhdWZzdGVodD8KCkplbioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEFueWtleS1UYXN0ZSAoR2xvaW4sIDEwLiBNYWkgMjAwMCwgMTM6Mjk6MzkpOgp+IyEgcm49T2xsaSBydD05NTc5NTgwOTUgcmc9d2l0emUKfiMhIHRpZD05NTc4OTUzNTgKRGFzIFRlaWwgaGFlbHQgbWVpbmUgZ3Jvc3NlbiBUYXNzZW4gbmljaHQgLSBpY2ggZmluZCBkYXMgZmllcy4gRGllCnNvbGx0ZW4gbWFsIGVuZGxpY2ggc3RhYmlsZXJlIHByb2R1emllcmVuLiBEZXIgRWluenVnc3NjaGFjaHQgd2FyIGphCnNjaG9uIGVpbmUgZ3V0ZSBJZGVlLgoKR2xvaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBFbmRlIGRlcyBJbnRlcm5ldCAuLi4gKEthcmlzLCAxMC4gTWFpIDIwMDAsIDEzOjI5OjQwKToKaHR0cDovL3d3dy4xMTEyLm5ldC9sYXN0cGFnZS5odG1sCgpLYXJpcywgZGVuIGRvcnRpZ2VuIEhpbndlaXMgYWxzYmFsZCBiZWZvbGdlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBBbnlrZXktVGFzdGUgKEd1YXJkLCAxMC4gTWFpIDIwMDAsIDE0OjAyOjU5KToKfiMhIHJuPUdsb2luIHJ0PTk1Nzk1ODE3OSByZz13aXR6ZQp+IyEgdGlkPTk1Nzg5NTM1OApkYSBzdGVodCBkb2NoIGRyYXVmLCB3aWV2aWVsIGRlciBoYWx0ZXIgYXVzaGFlbHQhIGFsc28gNHggaXMgamEgZWNodCB3ZW5pZwpiZWxhc3R1bmcgLSBiZXNzZXIgc2luZCBkaWUgaGFsdGVyIHdvIDI0eCBkcmF1ZnN0ZWh0LCBkYSBrYW5uIG1hbiBhdWNoIG1hbCBuZQp2b2xsZSB0YXNzZSByYXVmc3RlbGxlbi4gV29mdWVyIGRpZSBsYW1wZSBhbiBkZW0gZGluZyBpcywgd2Vpc3MgaWNoIGFsbGVyZGluZ3MKbmljaHQgLi4uIGRhcyBzdGVodCBuaWNoIGlubmVyIGthZmZlZXRhc3NlbmhhbHRlcmJlc2NocmVpYnVuZyBkcmlubmUKCkd1YXJkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBBbnlrZXktVGFzdGUgKEdsb2luLCAxMC4gTWFpIDIwMDAsIDE1OjMzOjI4KToKfiMhIHJuPUd1YXJkIHJ0PTk1Nzk2MDE3OSByZz13aXR6ZQp+IyEgdGlkPTk1Nzg5NTM1OApEYW5uIGhhYmUgaWNoIGVpbiBzY2hsZWNodGVzIFByb2R1a3QuIEJlaSBtZWluZXIgTXV0dGVyIGF1ZiBkZW0gNDB4IGhhZWx0Cm5pY2h0bWFsIGVpbiBrbGVpbmVyIENhcHB1Y2luby4gRGFzIExpY2h0IHplaWd0IGRpciBhbiwgd2llIHdhcm0gZGVyCkthZmZlZSBub2NoIGlzdCwgYWJlciBudXIgYmVpIG9yZGVudGxpY2hlbSBQJlAuCgpHbG9pbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogQW55a2V5LVRhc3RlIChBcHN1LCAxMC4gTWFpIDIwMDAsIDE1OjQzOjAyKToKfiMhIHJuPUdsb2luIHJ0PTk1Nzk1ODE3OSByZz13aXR6ZQp+IyEgdGlkPTk1Nzg5NTM1OApKYSB3YXMgZGVubj8gZGVyIEVpbnp1Z3NzY2hhY2h0IGlzdCB2aWVsIHp1IGtsZWluIGRhIHBhc3N0IGtlaW5lIFRhc3NlIHJlaW4uCgpBcHN1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBBbnlrZXktVGFzdGUgKENhdHdlYXpsZSwgMTAuIE1haSAyMDAwLCAxNTo1MDowMCk6Cn4jISBybj1BcHN1IHJ0PTk1Nzk2NjE4MiByZz13aXR6ZQp+IyEgdGlkPTk1Nzg5NTM1OApFaW56dWdzc2NoYWNodD8gV2FzIGZ1ZXJuIEVpbnp1Z3NzY2hhY2h0PwpBY2gsIER1IG1laW5zdCBkZW4gVGVlYmV1dGVsc3BlbmRlciEgTXVzc3RlIGhhbHQgbWFsIG5hY2hmdWVsbGVuLi4uCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IEFueWtleS1UYXN0ZSAoU3ZldGxhbmEsIDExLiBNYWkgMjAwMCwgMDk6Mjg6NDApOgp+IyEgcm49R3VhcmQgcnQ9OTU3OTYwMTc5IHJnPXdpdHplCn4jISB0aWQ9OTU3ODk1MzU4CkRpZSBMYW1wZSBnZWh0IGFuLCB3ZW5uIGRlaW4gS2FmZmVlIHdhcm1nZWhhbHRlbiB3ZXJkZSBzb2xsLgoKU3ZldGxhbmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBBbnlrZXktVGFzdGUgKERyZWFteSwgMTEuIE1haSAyMDAwLCAxMjo0NTo1NSk6Cn4jISBybj1EcmVhbXkgcnQ9OTU4MDQxNzQ5IHJnPXdpdHplCn4jISB0aWQ9OTU3ODk1MzU4CkljaCBoYWJlIGVpbmUgVm9ycmljaHR1bmcgZGllIDM2eCB3YXMgYXVzaGFsdGVuIHNvbGwuIEthcGllciBpY2ggYWJlciBuaWNodCB3bwppY2ggZGEgd2FzIGRyYXVmc3RlbGxlbiBrYW5uLCBkYXMgRGluZyBtdXNzIGthcHV0dCBzZWluLCBkYSBpc3QgbmFlbWxpY2gga2VpbmUKSGFsdGVydW5nIG1pdCBkYWJlaS4uLgoKRHIqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGFzIHR1dCBqYSB3ZWggIChIaWdodCwgMTEuIE1haSAyMDAwLCAxOTozMDowMSk6CldoeSBpcyBhIHBlcnNvbiB3aG8gcGxheXMgdGhlIHBpYW5vIGNhbGxlZCBhIHBpYW5pc3QsIGJ1dCBhIHBlcnNvbiB3aG8gZHJpdmVzCmEgcmFjZSBjYXIgbm90IGNhbGxlZCBhIHJhY2lzdD8KCklmIHBlb3BsZSBmcm9tIFBvbGFuZCBhcmUgY2FsbGVkICJQb2xlcywiIHdoeSBhcmVuJ3QgcGVvcGxlIGZyb20gSG9sbGFuZApjYWxsZWQgIkhvbGVzPyIKCldoZW4gSSB3YXMgaW4gaGlnaCBzY2hvb2wsIEkgZ290IGluIHRyb3VibGUgd2l0aCBteSBnaXJsZnJpZW5kJ3MgRGFkLiBIZSBzYWlkLAoiSSB3YW50IG15IGRhdWdodGVyIGJhY2sgYnkgODoxNS4iIEkgc2FpZCwgIm1pZGRsZSBvZiBBdWd1c3Q/IENvb2whIgoKaGlnaHQga2ljaGVybmQKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEQVVzIChQcmEsIDE2LiBNYWkgMjAwMCwgMTc6MjA6MDUpOgpnZXJhZGUgaW4gZWluZW0gQ2hhdCBtaXRlcmxlYnQ6CgogPEtpbGxlcm1hc2NoaW5lMjAwMD4gd2VyIGhhdCBhbGxlcyBuZSBmaXJld2FsbCAKIDxNaWxjaG0+IEljaCBuaWNoIAogPEtpbGxlcm1hc2NoaW5lMjAwMD4gd2llc28gbmljaHQ/IAogPE1pbGNobT4gTWlyIHNhZ3RlIG1hbiBkYXMgZXMgZnIgV2luZG9vZiBrZWluZSBnaWJ0IAogPE1pbGNobT4gQWJlciBpY2ggaGF0ZSBnZXJuZSBlaW5lIAoKClByYS4gV2lsbCBhdWNoIGFsbGVzIHNvZm9ydCBhdXNwcm9iaWVyZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFjaCB3aWUgZ3V0IGRhcyBuaW1hbmQgd2Vpc3MgLi4uLiAoR2FzdDEsIDI1LiBNYWkgMjAwMCwgMjI6MTQ6NTcpOgpEaWUgUmVnZWxuIGRlcyBTY2hsYWZ6aW1tZXJnb2xmczoKMS4gSmVkZXIgU3BpZWxlciBzb2xsdGUgc2VpbmUgZWlnZW5lIEF1c3JzdHVuZyBmciBkYXMgU3BpZWwsIG5vcm1hbGVyd2Vpc2UKZWluZW4gU2NobGdlciB1bmQgendlaSBCbGxlIGJlcmVpdHN0ZWxsZW4uCiAKMi4gRGllIEJlbnV0enVuZyBkZXMgR29sZmt1cnNlcyBtdSB2b20gRWlnZW50bWVyIGRlcyBMb2NocyBnZW5laG1pZ3Qgd2VyZGVuLgogCiAKMy4gQW5kZXJzIGFscyBiZWltIEdvbGYgaW0gRnJlaWVuLCBpc3QgZGFzIFppZWwsIGRlbiBTY2hsZ2VyIGlucyBMb2NoIHp1CmJla29tbWVuIHVuZCBkaWUgQmxsZSBkcmF1ZW4genUgYmVoYWx0ZW4uCiAKNC4gRnIgZWluIGVyZm9sZ3JlaWNoZXMgU3BpZWwgc29sbHRlIGRlciBTY2hsZ2VyIGVpbmVuIGZlc3RlbiBTdGllbCBoYWJlbi4KS3Vyc2VpZ2VudG1lcm4gaXN0IGVzIGVybGF1YnQsIGRpZSBTdGllbGhydGUgenUgYmVycHJmZW4sIGJldm9yIGRhcyBTcGllbApiZWdpbm50LgogCjUuIEdvbGZrdXJzZWlnZW50bWVyIGJlaGFsdGVuIHNpY2ggZGFzIFJlY2h0IHZvciwgZGllIFNjaGxnZXJsbmdlIHp1CmJlc2Nocm5rZW4sIHVtIFNjaGFkZW4gYW0gTG9jaCB6dSB2ZXJtZWlkZW4uCiAKNi4gRGFzIFppZWwgZGVzIFNwaWVsZXMgaXN0IGVzLCBzbyB2aWVsZSBTY2hsZ2Ugd2llIG5vdHdlbmRpZyBhdXN6dWZocmVuLCBiaXMKZGFzIExvY2ggdm9sbCB1bmQgZGVyIEVpZ2VudG1lciB6dWZyaWVkZW4gaXN0LgpEYXMgdm9yemVpdGlnZSBBYmJyZWNoZW4gZGVzIFNwaWVscyBrYW5uIGRhenUgZmhyZW4sIGRhIGRlbSBTcGllbGVyIGRpZSBMaXplbnoKZW50em9nZW4gd2lyZC4KIAogCjcuIEVzIHdpcmQgYWxzIHVuaGZsaWNoIGJldHJhY2h0ZXQsIGRhcyBMb2NoIHNvZm9ydCBiZWkgZGVyIEFua3VuZnQgenUKc3BpZWxlbi4gRXJmYWhyZW5lIFNwaWVsZXIgZXJmb3JzY2hlbiB6dWVyc3QgZGllIEhnZWwgdW5kIEJ1bmtlciBkZXMKR29sZmt1c2VzLgogCjguIFNwaWVsZXIgc2luZCBkYXZvciBnZXdhcm50LCBrZWluZSBhbmRlcmVuIEdvbGZrdXJzZSB6dSBlcndobmVuLCBhdWYgZGVuZW4Kc2llIGdlc3BpZWx0IGhhYmVuLCBvZGVyIGdlZ2Vud3J0aWcgc3BpZWxlbi4gRXMgd2lyZCBiZXJpY2h0ZXQsIGRhCmF1ZmdlYnJhY2h0ZSBLdXJzZWlnZW50bWVyIGRpZSBBdXNyc3R1bmcgZGVzIFNwaWVsZXJzIGF1cyBkaWVzZW0gR3J1bmQKYmVzY2hkaWd0IGhhYmVuLgogCjkuIEJlaSB2aWVsZW4gS3Vyc2VuIGlzdCBzZWl0IGVpbmlnZW4gSmFocmVuIGVpbiBSZWdlbmNhcGUgYWxzClN0YW5kYXJkYXVzcnN0dW5nIGVyZm9yZGVybGljaC4KIAogCjEwLiBTcGllbGVyIHNvbGx0ZW4gbmljaHQgYW5uZWhtZW4sIGRhIGRlciBLdXJzIGplZGVyemVpdCBzcGllbGJhciBpc3QuClNwaWVsZXIga25udGVuIGVubnR1c2NodCBzZWluLCB3ZW5uIGRlciBLdXJzIHZvcmx1ZmlnIHdlZ2VuIFdhcnR1bmdzYXJiZWl0ZW4KZ2VzY2hsb3NzZW4gaGF0LiBFcyB3aXJkIGVtcGZvaGxlbiwgaW4gZWluZXIgc29sY2hlbiBTaXR1YXRpb24gdWVyc3QgdGFrdHZvbGwKenUgc2Vpbi4gRm9ydHNjaHJpdHRsaWNoZXJlIFNwaWVsZXIgZmluZGVuCmFsdGVybmF0aXZlIFNwaWVsZS4KIAogCjExLiBTcGllbGVyIHNvbGx0ZW4gc2ljaGVyc3RlbGxlbiwgZGEgaWhyIFNwaWVsIGd1dCBnZXBsYW50IGlzdCwgYmVzb25kZXJzCndlbm4gc2llIGVpbmVuIG5ldWVuIEt1cnMgenVtIGVyc3RlbiBNYWwgc3BpZWxlbi4KICAgICBFaGVtYWxpZ2UgU3BpZWxlciBrbm5lbiB6b3JuaWcgd2VyZGVuIHdlbm4gc2llIGVudGRlY2tlbiwgZGEgZWluIEFuZGVyZXIKYXVmIGRlbSBHb2xma3VycyBzcGllbHQsIGRlbiBzaWUgZnIgZWluZW4gcHJpdmF0ZW4gS3VycyBoaWVsdGVuLgogCiAKMTIuIERlciBFaWdlbnRtZXIgZGVzIEt1cnNlcyBpc3QgZnIgZGFzIEJlc2NobmVpZGVuIHZvbiBCc2NoZW4gdmVyYW50d29ydGxpY2gsCmRpZSBkaWUgU2ljaHRiYXJrZWl0IHZvbSBMb2NoIHJlZHV6aWVyZW4ga25uZW4uCiAKIAoxMy4gU3BpZWxlcm4gd2lyZCB1bmJlZGluZ3QgZGF6dSBnZXJhdGVuLCBkaWUgRXJsYXVibmlzIHZvbSBFaWdlbnRtZXIKZWluenVob2xlbiwgYmV2b3Igc2llIHZlcnN1Y2hlbiBkZW4gR29sZmt1cnMgdm9uIGhpbnRlbiB6dSBzcGllbGVuLgogCjE0LiBMYW5nc2FtZXMgU3BpZWwgaXN0IHJhdHNhbSwgamVkb2NoIHNvbGx0ZW4gZGllIFNwaWVsZXIgZGFyYXVmIHZvcmJlcmVpdGV0CnNlaW4sIGF1ZiB2ZXJsYW5nZW4gZGVzIEt1cnNlaWdlbnRtZXJzIGRhcyBUZW1wbyB6dSBlcmhoZW4uCiAKIAoxNS4gRXMgd2lyZCBhbHMgZWluZSBoZXJ2b3JyYWdlbmRlIExlaXN0dW5nIGJldHJhY2h0ZXQsIGRhc3NlbGJlIExvY2ggbWVocm1hbHMKaGludGVyZWluYW5kZXIgaW4gZWluZW0gU3BpZWwgenUgc3BpZWxlbiwgd2VubiBlcyBkaWUgWmVpdCBlcmxhdWJ0LiAKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaGFoYSAoQW5ha2luLCAgNy4gSnVuIDIwMDAsIDEwOjUzOjE3KToKClRlbiB0aGluZ3MgbWVuIGtub3cgYWJvdXQgd29tZW46CgoxLgoKMi4KCjMuCgo0LgoKNS4KCjYuCgo3LgoKOC4KCjkuCgoxMC4gVGhleSBoYXZlIGJyZWFzdHMuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gZGllIERhbWVud2VsdCAoRGVlcGJsdWUsIDEzLiBKdW4gMjAwMCwgMDg6NTA6MDcpOgpXb2xsZW4gd2lyIE1hdGhlIHVlYmVuPyBXaXIga29lbm5lbiBkaWNoIHVuZCBtaWNoIGFkZGllcmVuLCB1bnNlcmUKS2xlaWR1bmcgc3VidHJhaGllcmVuLCBkZWluZSBCZWluZSBkaXZpZGllcmVuIHVuZCB1bnMgZGFubiBoZW1tdW5nc2xvcwptdWx0aXBsaXppZXJlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVudGVyc2NoaWVkIChEZWVwYmx1ZSwgMTMuIEp1biAyMDAwLCAwODo1Mzo1MSk6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEx1Y2lhbm8gUGF2YXJvdHRpIHVuZCBEaWV0ZXIgQm9obGVuPwpEYXMgVm9yemVpY2hlbiBpbiBkZXIgSmFocmVzYmlsYW56IGJlaSBkZXIgWmVpbGUgIjUgTWlsbGlvbmVuIGZ1ZXIgZHJlaW1hbCBpbgpWZXJvbmEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbnRlcnNjaGllZCAoRGVlcGJsdWUsIDEzLiBKdW4gMjAwMCwgMDg6NTY6NDkpOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSAxMDBrZy1QcmV1c3NlbiB1bmQgZWluZW0gMTAwa2ctQmF5ZXJuPwpEZXIgMTAwLUtpbG8tQmF5ZXIgaXN0ICJhIGdzdGFuZG5lcyBNYW5uc2J1aWQiCkRlciAxMDAtS2lsby1QcmVpc3MgaXN0ICJhIGZldHRlIFNhdSIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbnRlcnNjaGllZCAoS2FyaXMsIDEzLiBKdW4gMjAwMCwgMDk6MDI6MTkpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTYwODc5NDA5IHJnPXdpdHplCn4jISB0aWQ9OTYwODc5NDA5CkljaCBmaW5kcyBqYSBpbW1lciB3aWVkZXIgbHVzdGlnLCB3ZW5uIHNvIGVpbiBkYW1pc2NoZXIgU2F1cHJlaXNzClByZXVzc2Vud2l0emUgcmVpc3N0Li4uCgpLYXJpcy4gTXVlbmNoZW5lciBFaW5nZWJvcmVuZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbmQgbm9jaCBlaW4gVW50ZXJzY2hpZWQgKERlZXBibHVlLCAxMy4gSnVuIDIwMDAsIDA5OjAyOjI5KToKLi4uIHp3aXNjaGVuIEFuZ3N0IHVuZCBQYW5pawpBbmdzdCB1bmQgUGFuaWs/CkFuZ3N0IGJla29tbXQgbWFuLCB3ZW5uIG1hbiB6dW0gZXJzdGVubWFsCmZlc3RzdGVsbHQsIGRhc3MgZXMgYmVpbSB6d2VpdGVubWFsIG5pY2h0IG1laHIga2xhcHB0LgpVbmQgUGFuaWsgZXJncmVpZnQgZWluZW4sIHdlbm4gbWFuIHp1bSB6d2VpdGVubWFsCm1lcmt0LCBkYXNzIGVzIGJlaW0gZXJzdGVubWFsIG5pY2h0IG1laHIgZ2VodC4qCgoKLi4uIHVuZCBkZXIgendpc2NoZW4gZWluZW0gYmlsbGlnZW4gdW5kIGVpbmVtIHRldXJlbiBJbnRpbXNwcmF5PwpEYXMgYmlsbGlnZSBicmVubnQgYXVmIGRlciBadW5nZS4KCgouLi4gdW5kIGRlciB6d2lzY2hlbiBlaW5lbSBlcmZvbGdyZWljaGVtIHVuZCBlaW5lbSBlcmZvbGdsb3NlbiBKYWVnZXI/CkRlciBlcmZvbGdyZWljaGUgSmFlZ2VyIGhhdCBkZW4gSGFzZW4gaW0gUnVja3NhY2ssCmRpZSBCdWVjaHNlIGdlc2NodWx0ZXJ0IHVuZCBuZWJlbiBpaG0gc3RlaHQgZGVyIEh1bmQsCmRlciBlcmZvbGdsb3NlIEphZWdlciBoYXQgZGVuIEhhc2VuIGltIEJldHQsIGRpZQpIYW5kIGFuIGRlciBCdWVjaHNlIHVuZCBkZXIgSHVuZCBzdGVodCBuaWNodCEKCgoKdW5kIHp1IGd1dGVyIGxldHp0IGRlciBlaW5lciA2LUphZWhyaWdlbiwgZWluZXIgMTYtSmFlaHJpZ2VuLCBlaW5lcgoyNi1KYWVocmlnZW4gdW5kIGVpbmVyIDM2LUphZWhyaWdlbj8KLi4uLi4uZGllIDYtSmFlaHJpZ2UgYnJpbmd0IG1hbiBpbnMgQmV0dCB1bmQgZXJ6YWVobHQgaWhyIGVpbiBNYWVyY2hlbiwKZGVyIDE2LUphZWhyaWdlbiBlcnphZWhsdCBtYW4gZWluIE1hZXJjaGVuLCB1bSBzaWUgaW5zIEJldHQgenUga3JpZWdlbiwKZGllIDI2LUphZWhyaWdlIGlzdCBlaW4gTWFlcmNoZW4gaW0gQmV0dCB1bmQKZGllIDM2LUphZWhyaWdlIHNhZ3QgIkVyemFlaGwnIGtlaW5lIE1hZXJjaGVuIHVuZCBrb21tIGlucyBCZXR0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW50ZXJzY2hpZWQgKERlZXBibHVlLCAxMy4gSnVuIDIwMDAsIDA5OjA0OjE4KToKfiMhIHJuPUthcmlzIHJ0PTk2MDg3OTczOSByZz13aXR6ZQp+IyEgdGlkPTk2MDg3OTQwOQpCZXplaWNobmUgbWljaCBiaXR0ZSBuaWNodCBhbHMgUHJldXNzZS4gU2FjaHNlbndpdHplIGdpYnRzIGdlbnVnLCBhYmVyCiBuZW4gU2FjaHNlbiBhbHMgUHJldXNzZW4genUgYmV6ZWljaG5lbiBpc3QgbmljaHQgd2l0emlnIHNvbmRlcm4gYmVsZWlkaWdlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcnVlZnVuZyAoRGVlcGJsdWUsIDEzLiBKdW4gMjAwMCwgMDk6MDk6MzYpOgpWaWVyIFN0dWRlbnRlbiBkZXIgVW5pdmVyc2l0YWV0IFN5ZG5leSB3YXJlbiBzbyBndXQgaW4gT3JnYW5pc2NoZXIgQ2hlbWllLApkYXNzIHNpZSBhbGxlIGlocmUgVGVzdHMsIEtsYXVzdXJlbiB1bmQgUHJha3Rpa2EgYmlzaGVyIGluIGRpZXNlbSBTZW1lc3RlciBtaXQKIjEiIGJlc3RhbmRlbi4KClNpZSB3YXJlbiBzaWNoIHNvIHNpY2hlciwgZGllIEFic2NobHVzc3BydWVmdW5nIHp1IHNjaGFmZmVuLCBzbyBkYXNzIHNpZQpzaWNoIGVudHNjaGxvc3NlbiwgZGFzIFdvY2hlbmVuZGUgdm9yIGRlciBQcnVlZnVuZyBuYWNoIENhbmJlcnJhIHp1IGZhaHJlbiwgd28KZWluaWdlIEZyZXVuZGUgZWluZSBQYXJ0eSBzY2htaXNzZW4uCgpTaWUgYW11ZXNpZXJ0ZW4gc2ljaCBndXQuCgpOYWNoIGhlZnRpZ2VtIEZlaWVybiB2ZXJzY2hsaWVmZW4gc2llIGRlbiBnYW56ZW4gU29ubmF0ZyB1bmQgc2NoYWZmdGVuIGVzCm5pY2h0IHZvciBNb250YWcgbW9yZ2VuIC0gZGVtIFRhZyBkZXIgUHJ1ZWZ1bmcgLSB3aWVkZXIgenVydWVjayBuYWNoIFN5ZG5leSEKClNpZSBlbnRzY2hsb3NzZW4gc2ljaCwgbmljaHQgenVyIFBydWVmdW5nIHp1IGdlaGVuLCBzb25kZXJuIGRlbSBQcm9mZXNzb3IKbmFjaCBkZXIgUHJ1ZWZ1bmcgenUgZXJ6YWVobGVuLCB3YXJ1bSBzaWUgbmljaHQga29tbWVuIGtvbm50ZW4uCgpEaWUgdmllciBTdHVkZW50ZW4gZXJrbGFlcnRlbiBpaG0sIHNpZSBoYWV0dGVuIGluIENhbmJlcnJhIGVpbiB3ZW5pZyBpbiBkZW4KQXJjaGl2ZW4gZGVyIEF1c3RyYWxpYW4gTmF0aW9uYWwgVW5pdmVyc2l0eSBnZWZvcnNjaHQgdW5kIGdlcGxhbnQgZ2VoYWJ0LApmcnVlaCBnZW51ZyB6dXJ1ZWNrIHp1IHNlaW4sIGFiZXIgc2llIGhhZXR0ZW4gZWluZW4gUGxhdHRlbiBnZWhhYnQgYXVmIGRlbQpSdWVja3dlZwp1bmQga2VpbmVuIFdhZ2VuaGViZXIgZGFiZWkgdW5kIGVzIGhhZXR0ZSBld2lnIGdlZGF1ZXJ0LCBiaXMgaWhuZW4gamVtYW5kCmdlaG9sZmVuIGhhZXR0ZS4gRGVzd2VnZW4gc2VpZW4gc2llIGVyc3QgamV0enQgYW5nZWtvbW1lbiEKCkRlciBQcm9mZXNzb3IgZGFjaHRlIGRhcnVlYmVyIG5hY2ggdW5kIGVybGF1YnRlIGlobmVuIGRhbm4sIGRpZQpBYnNjaGx1c3NwcnVlZnVuZyBhbSBuYWVjaHN0ZW4gVGFnIG5hY2h6dWhvbGVuLgoKRGllIFN0dWRlbnRlbiB3YXJlbiB1bmhlaW1saWNoIGVybGVpY2h0ZXJ0IHVuZCBmcm9oLgoKU2llIGxlcm50ZW4gZGllIGdhbnplIE5hY2h0IGR1cmNoLCB1bmQgYW0gbmFlY2hzdGVuIFRhZyBrYW1lbiBzaWUgcHVlbmt0bGljaAp6dW0gYXVzZ2VtYWNodGVuIFplaXRwdW5rdCB6dW0gUHJvZmVzc29yLiBEaWVzZXIgc2V0enRlIGplZGVuIFN0dWRlbnRlbiBpbgplaW5lbgphbmRlcmVuIFJhdW0sIGdhYiBpaG5lbiBkaWUgQXVmZ2FiZW4gdW5kIHNhZ3RlIGlobmVuLCBzaWUgc29sbHRlbiBhbmZhbmdlbi4KCkRpZSAxLiBBdWZnYWJlIGJyYWNodGUgZnVlbmYgUHVua3RlLiBFcyB3YXIgZXR3YXMgZWluZmFjaGVzIHVlYmVyIGVpbmUKUmFkaWthbC1SZWFrdGlvbi4KCiJDb29sIiwgZGFjaHRlbiBhbGxlIHZpZXIgU3R1ZGVudGVuIGluIGlocmVuIHNlcGFyYXRlbiBSYWV1bWVuLCAiZGFzIHdpcmQKZWluZSBsZWljaHRlIFBydWVmdW5nLiIKCkplZGVyIHZvbiBpaG5lbiBzY2hyaWViIGRpZSBMb2VzdW5nIGRlciAxLiBBdWZnYWJlIGhpbiB1bmQgZHJlaHRlIGRhcyBCbGF0dAp1bToKIjIuIEF1ZmdhYmUgKDk1IFB1bmt0ZSk6IFdlbGNoZXIgUmVpZmVuIHdhciBwbGF0dD8iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVW50ZXJzY2hpZWQgKEdvbGFzLCAxMy4gSnVuIDIwMDAsIDEwOjIxOjQ2KToKfiMhIHJuPURlZXBibHVlIHJ0PTk2MDg3OTg1OCByZz13aXR6ZQp+IyEgdGlkPTk2MDg3OTQwOQppY2ggZmluZCBkZW4gd2l0eiBtZWhyIGFscyBnZWx1bmdlbiAuLi4gOikpKQoKYnR3IGdlaHQgZWluIGJheWVyIG1pdCBzZWluZW0gc2Nod2VpbiB6dSBlaW5lciBhdXNzdGVsbHVuZy4genUgaGF1c2UgYmVyaWNodGV0CmVyIHN0b2x6OiBkZXMgaXMgZGVzIGVyc3RlIG1vaSwgZGVzIGkgbWkgdWViZXIgYSBzYXVwcmVpc3MgZnJldS4KCmVudHNjdWhsZGlndCBkaWUgcmVjaHRzY2hyZWlidW5nIDspCgpnb2xhcywgd2FobC1iYXllciB1bmQgd2FobC1zYWNoc2UgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbnRlcnNjaGllZCAoQW5hdG9sLCAxMy4gSnVuIDIwMDAsIDE0OjQ4OjIzKToKfiMhIHJuPURlZXBibHVlIHJ0PTk2MDg3OTIzMSByZz13aXR6ZQp+IyEgdGlkPTk2MDg3OTIzMQpJY2ggZGFjaHRlLCBkYXNzIFZlcm9uYSBpbW1lciBhbiBQYXZhcm90dGkgZGFjaHRlLCB3ZW5uIHNpZSBCb2hsZW5zCmJlc3RlcyBTdHVlY2sgZXJibGlja3RlLi4uLiAuIG8gTyAoIkRlbiBMdWNpYW5vISIpLgoKQW5hdG9sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBVbnRlcnNjaGllZCAoVW5hc2FpLCAxMy4gSnVuIDIwMDAsIDE1OjU5OjE2KToKfiMhIHJuPUdvbGFzIHJ0PTk2MDg4NDUwNiByZz13aXR6ZQp+IyEgdGlkPTk2MDg3OTQwOQpHb2xhcywgRHUgd2lyc3QgbmllIGVpbiBTYWNoc2UsIGljaCB3aWxsIERpciBqYSBkaWUgSWxsdXNpb25lbiBuaWNodCBuZWhtZW4sCmFiZXIgYWxzIG1hbiB3aXJkIGFscyBTYWNoc2UgZ2Vib3JlbiB1bmQgbmljaHQgYWRvcHRpZXJ0ICpnKi4gQXVzc2VyZGVtIGxlcm4KZXJzdG1hbCBkaWUgU3ByYWNoZSB1ZG4gZGFubiByZWRlbiB3aXIgd2VpdGVyIDopCgpVbmEqIChnZWJ1ZXJ0aWdlIHVuZCBzaWNoIGRhZnVlciBuaWNodCBzY2hhZW1lbmRlIFNhZWNoc2luKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKb2xkaWUgYnV0Li4uPyAoTXVwZmVsLCAxNS4gSnVuIDIwMDAsIDIzOjM1OjI2KToKTmUgT21hIGltIFN1cGVybWFya3QuIEthdWZ0ICduIEdsYXMgR3Vya2VuLiBBbiBkZXIgS2Fzc2UgZnJhZ3Qgc2llIGRlbgpWZXJrYWV1ZmVyICJXYXMgYmVkZXV0ZXQgZGVubiAnSW1wb3J0Jz8iLCBzYWd0IGRlciBWZXJrYWV1ZmVyICJkaWUgbXVzcyBtYW4KZWluZnVlaHJlbiIsIHNhZ3QgZGllIE9tYSAiQWhhLiBVbmQgaWNoIGRhY2h0ZSBkaWUgd2Flcm4genVtIEVzc2VuIiAKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogb2xkaWUgYnV0Li4uPyAoV3Vyc3QsIDE2LiBKdW4gMjAwMCwgMDk6MjE6MDMpOgp+IyEgcm49TXVwZmVsIHJ0PTk2MTEwNDkyNiByZz13aXR6ZQp+IyEgdGlkPTk2MTEwNDkyNgoKIE5lIE9tYSBpbSBTdXBlcm1hcmt0LiBGcmFndCBkaWUgS2Fzc2llcmVyaW46ICJXb2xsZW4gU2llICduZSBUdWV0ZT8iLgogU2FndCBkaWUgT21hOiAiTmVlIGRhbmtlLCB3ZW5uIGljaCBqZXR6dCBuZSBUdWV0ZSByYXVjaCcgdmVyZ2VzcycKIGljaCB3aWVkZXIgZGllIEhhZWxmdGUuLi4iCgpXdXJzdC0+Y29tbWFuZF9tZSgiZ3JpbnMiKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBvbGRpZSBidXQuLi4/IChOb25uZSwgMTYuIEp1biAyMDAwLCAwOToyMjozOCk6Cn4jISBybj1XdXJzdCBydD05NjExNDAwNjMgcmc9d2l0emUKfiMhIHRpZD05NjExMDQ5MjYKLi4ua29tbXQgbmUgRnJhdSBiZWltIEFyenQuLi4KCmdlbmF1c28gYWx0LCBnZW5hdXNvIGd1dCAoYzsKCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWlucGFya2VuIChEZWVwYmx1ZSwgMjEuIEp1biAyMDAwLCAyMzozMDo0Myk6CldpZXNvIGtvZW5uZW4gRnJhdWVuIGJlaW0gRWlucGFya2VuIGRlbiBBYnN0YW5kIHNvIHNjaGxlY2h0IGVpbnNjaGFldHplbj8KV2VpbCBzaWUgZGFzcywgd2FzIHNpZSB2b24gTWFlbm5lcm4gc28gZ2V6ZWlndCBiZWtvbW1lbiwgZnVlciAzMGNtIGhhbHRlbi4gICAgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBY2h0dW5nISBPZXN0ZXJyZWljaGlzY2hlciBWaXJ1cy4uLiAoVHN1bmFtaSwgMjMuIEp1biAyMDAwLCAyMDowMzo0Myk6ClNlcnZ1cyAKIApJY2ggYmluIGVpbiBvZXN0ZXJyZWljaGlzY2hlciBDb21wdXRlci1WaXJ1cyEgQml0dGUgc2VuZGVuIFNpZSBtaWNoIHNvZm9ydCAKYW4gYWxsZSBJaHJlIEJla2FubnRlbiB3ZWl0ZXIgdW5kIGxvZXNjaGVuIFNpZSBhbnNjaGxpZXNzZW5kIGFsbGUgSWhyZSAKRmlsZXMgYXVmIGRlciBGZXN0cGxhdHRlISAKCkJlc3RlbiBEYW5rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWNodHVuZyEgT2VzdGVycmVpY2hpc2NoZXIgVmlydXMuLi4gKFdvb2R5LCAyNS4gSnVuIDIwMDAsIDE3OjAyOjAwKToKfiMhIHJuPVRzdW5hbWkgcnQ9OTYxNzgzNDIzIHJnPXdpdHplCn4jISB0aWQ9OTYxNzgzNDIzCk1pZXNlIEFid2FuZGx1bmcgdm9uOgoKIFRoaXMgaXMgYSAiRElZIiAoRG8gSXQgWW91cnNlbGYpIHZpcnVzLgoKIEkgaGF2ZSB1bmZvcnR1bmF0ZWx5IGJlZW4gdmVyeSBidXN5CiBsYXRlbHkgYW5kIGhhdmVuJ3QgaGFkIHRoZSB0aW1lIHRvCiB3cml0ZSBhIHZpcnVzLCBzbyBwbGVhc2UgdGFrZSBhIGNvdXBsZSBvZgogbWludXRlcyB0byBvcGVuIFdpbmRvd3MgYW5kCiByYW5kb21seSBkZWxldGUgMTAgb3IgMTIgZmlsZXMgKGluY2x1ZGluZwogYSBtaW5pbXVtIG9mIDMgc3lzdGVtIGZpbGVzKQogYW5kIHRoZW4gc2VuZCB0aGlzIGUtbWFpbCBvbiB0byBldmVyeW9uZQogb24geW91ciBtYWlsaW5nIGxpc3QuCgogVGhhbmsgeW91IGZvciB5b3VyIGNvLW9wZXJhdGlvbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWlibGljaGUgTG9naWsgKERpZWRlciwgMjkuIEp1biAyMDAwLCAxNTozMzoyOSk6CkVyIGF1ZiBkZW0gQmFobnN0ZWlnOiJEZW4gWnVnIGhhYmVuIHdpciBudXIgd2VnZW4gRGVpbmVyIEJ1bW1lbGVpIHZlcnBhc3N0ISIKU2llOiJVbmQgd2VubiBEdSBuaWNodCBzbyBnZXJhbm50IHdhZXJzdCwgbXVlc3N0ZW4gd2lyIG5pY2h0IHNvIGxhbmdlIGF1ZiBkZW4KbmFlY2hzdGVuIHdhcnRlbi4iCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmF1YS4uLiAoRGllZGVyLCAyOS4gSnVuIDIwMDAsIDE1OjM4OjI0KToKUGF0aWVudCBiZWltIFBzeWNoaWF0ZXI6IkhlcnIgRG9rdG9yLCBpY2ggaG9lcmUgbWFuY2htYWwgU3RpbW1lbiwgc2VoZSBhYmVyCm5pZW1hbmRlbiEiCiJXYW5uIHBhc3NpZXJ0IElobmVuIGRhcyBkZW5uIHNvPyI6CiJJbW1lciB3ZW5uIGljaCB0ZWxlcGhvbmllcmUuIgoKKmcqIERpZWRlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBuZW4gYmxvZWRlci4uLiAoRGllZGVyLCAyOS4gSnVuIDIwMDAsIDE1OjQ3OjAzKToKRWluIEJhdWVyIHp1bSBhbmRlcmVuOiJTdGVsbCBEaXIgdm9yLCBnZXN0ZXJuIGJpbiBpY2ggbWl0IG1laW5lbSBUcmVja2VyIGluCmVpbmUgUmFkYXJmYWxsZSBnZWZhaHJlbiEiCiJVbmQ/IEhhdHMgZ2VibGl0enQ/IgoiTmVpbiAtIGdlc2NoZXBwZXJ0LiIKCmphamEgaWNoIGhvZXIgamEgc2Nob24gYXVmIDotKQpEaWVkZXIgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmljaCBhdWNoIGJsb2VkZSB3aXR6ZSBlcnphZWhsZW4gd2lsbCAoQWxib2luLCAyOS4gSnVuIDIwMDAsIDE1OjU2OjA1KToKIkR1IFBhcGEsIGljaCB3ZWlzcyBzY2hvbiB3ZW5uIGljaCBzcGFldGVyIGhlaXJhdGVuIHdlcmRlLiIgIk5hIHdlbiBkZW5uPyIKIk9tYSEiICJBYmVyIEtpbmRjaGVuIGR1IGthbm5zdCBkb2NoIG5pY2h0IG1laW5lIE11dHRlciBoZWlyYXRlbiIgIkRvY2gsIHdpZQpkdSBtZWluZSBNdXR0ZXIgZ2VoZWlyYXRldCBoYXN0ISIKCipCcnVlbGwqIFNjaHJlaSogKndlZ2xhY2gqIC4uLi4gbmEgZGFubiBlYmVuZCBuaWNodAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGljaCBhdWNoIGJsb2VkZSB3aXR6ZSBlcnphZWhsZW4gd2lsbCAoRGllZGVyLCAyOS4gSnVuIDIwMDAsIDE1OjU5OjIzKToKfiMhIHJuPUFsYm9pbiBydD05NjIyODY5NjUgcmc9d2l0emUKfiMhIHRpZD05NjIyODY5NjUKZGVuIGthbm4gaWNoIHRvcHBlbjoKCktvbW10IGVpbiBPZXN0ZXJyZWljaGVyIGluIGRlbiBCYXVtYXJrdDoiQml0dHNjaG9lbiwgaSBoYWV0dCBnZXJuIGFuIGZ1ZW5mZXIKdW5kIGFuIGRyZWllciBCb2hyZXIgd2VpbCBpY2ggYSBhY2h0ZXIgTG9jaCBib2hybiB3dWVsbCIKCiJOZWhtZW5zIGRvY2ggendhIHZpZXJlciwgZGEgYnJhdWNoZW5zIGRhbm4gbmVkIHVtc3Bhbm5lbi4uLiIKCipodXN0KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FzIHdpciBzY2hvbiBpbW1lciB3aXNzZW4gd29sbHRlbi4uLiAoU3RpbmcsIDExLiBKdWwgMjAwMCwgMjM6MDA6MDIpOgpXZW5uIGR1IDggSmFocmUsIDcgTW9uYXRlIHVuZCA2IFRhZ2Ugc2NocmVpZW4gd3VlcmRlc3QsIGhhZXR0ZXN0IGR1IGdlbnVnCkVuZXJnaWUgcHJvZHV6aWVydCB1bSBlaW5lIFRhc3NlIEthZmZlZSB6dSBlcndhZXJtZW4uIChPYiBzaWNoIGRhcyBsb2hudD8pCgpXZW5uIGR1IDYgSmFocmUgdW5kIDkgTW9uYXRlIGZ1cnp0LCBoYXN0IGR1IGdlbnVnIEdhcyBmdWVyIGRhcyBxdWl2YWxlbnQgZWluZXIKQXRvbWJvbWJlLiAoRGFzIHNpZWh0IHNjaG9uIGJlc3NlciBhdXMuKQoKRGVyIE9yZ2FzbXVzIGVpbmVzIFNjaHdlaW5zIGRhdWVydCAzMCBNaW51dGVuLiAoSW4gbWVpbmVtIG5hZWNoc3RlbiBMZWJlbgp3YWVyZSBpY2ggZ2VybmUgZWluIFNjaHdlaW4pCgpXZW5uIGR1IGRlaW5lbiBLb3BmIGdlZ2VuIGVpbmUgV2FuZCBzY2hsYWVnc3QsIHZlcmJyYXVjaHN0IGR1IDE1MCBLYWxvcmllbi4KKEljaCBtdXNzIGltbWVyIG5vY2ggYW4gZGFzIFNjaHdlaW4gZGVua2VuKQoKRWluZSBLYWtlcmxha2Uga2FubiA5IFRhZ2Ugb2huZSBLb3BmIHVlYmVybGViZW4sIGJldm9yIHNpZSB2ZXJodW5nZXJ0LgooUG9saXRpa2VyIGtvZW5uZW4gZWluZSBnYW56ZSBMZWdpc2xhdHVycGVyaW9kZSBvaG5lIEtvcGYgdWViZXJsZWJlbiwgYmV2b3IgZXMKamVtYW5kIG1lcmt0KQoKRWluaWdlIExvZXdlbiBwYWFyZW4gc2ljaCBiaXMgenUgNTBtYWwgYW0gVGFnLiAoSWNoIHdhZXJlIHRyb3R6ZGVtIGxpZWJlciBlaW4KU2Nod2Vpbi4gUXVhbGl0YWV0IGdlaHQgdWViZXIgUXVhbnRpdGFldC4pCgpFbGVmYW50ZW4gc2luZCBkaWUgZWluemlnZW4gVGllcmUgZGllIG5pY2h0IHNwcmluZ2VuIGtvZW5uZW4uIChJc3QgLSBnbGF1YmUKaWNoIC0gYXVjaCBiZXNzZXIgc28uKQoKRGVyIFVyaW4gZWluZXIgS2F0emUgcGhvc3Bob3Jlc3ppZXJ0IGltIER1bmtsZW4uIChXZW0gYmV6YWhsdCBtYW4gZWlnZW50bGljaAp3aWUgdmllbCwgdW0gc28gZXR3YXMgenUgZXJmb3JzY2hlbiA/KQoKRGFzIEF1Z2UgZWluZXMgU3RyYXVzcyBpc3QgZ3JvZWVyIGFscyBzZWluIEdlaGlybi4gKEljaCBrZW5uZSBNZW5zY2hlbiwgYmVpCmRlbmVuIGlzdCBkYXMgbmljaHQgYW5kZXJzLikKClNlZXN0ZXJuZSBoYWJlbiBrZWluIEdlaGlybi4gKEF1Y2ggc29sY2hlIFR5cGVuIGtlbm5lIGljaC4pCgpQb2xhcmJhZXJlbiBzaW5kIExpbmtzaGFlbmRlci4gKFVuZCBUaW50ZW5maXNjaGU/KQoKTWVuc2NoZW4gdW5kIERlbHBoaW5lIHNpbmQgZGllIGVpbnppZ2VuIExlYmV3ZXNlbiBkaWUgd2VnZW4gZGVyIEZyZXVkZSBTZXgKaGFiZW4uIChIZXksIHdhcyBpc3QgbWl0IGRlbSBTY2h3ZWluID8pCgoKU3RpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNhZXR6ZSwgZGllIGVpbiBNYW5uIG5pZSB2b24gc2VpbmVyIEZyYXUgaG9lcmVuIHdpcmQgKERpZWRlciwgMTQuIEp1bCAyMDAwLCAxNTowNDo0Mik6Ci0gQmlzdCBkdSBzaWNoZXIsIGRhc3MgZHUgZ2VudWcgZ2V0cnVua2VuIGhhc3Q/IAotIERhcyB3YXIgZWluIHRvbGxlciBGdXJ6ISBNYWNoIG5vY2ggZWluZW4hIAotIEljaCBoYWJlIG1pY2ggZW50c2NobG9zc2VuLCBpbSBIYXVzIGtlaW5lIEtsYW1vdHRlbiBtZWhyIHp1IHRyYWdlbi4gCi0gSWNoIGJpbiBtYWwga3VyeiBuYWNoIGRyYXVzc2VuIGRhcyBIYXVzIHN0cmVpY2hlbi4gCi0gU29sbHRlc3QgZHUgamV0enQgbmljaHQgbWl0IGRlaW5lbiBKdW5ncyBpbiBkZXIgS25laXBlIHNlaW4/IAotIGNoIHdlaXNzLCBkYXMgaXN0IGV0d2FzIGVuZ2VyIGhpbnRlbi4gV3xyZGVzdCBkdSBlcyB0cm90emRlbSBub2NobWFsCnZlcnN1Y2hlbj8gCi0gRHUgYmlzdCBzbyBzZXh5LCB3ZW5uIGR1IGJlc29mZmVuIGJpc3QuIAotIERhcyB2ZXJzdGVoZSBpY2ggdm9sbGtvbW1lbiwgbmNoc3RlcyBKYWhyIGlzdCBqYSB3aWVkZXIgSG9jaHplaXRzdGFnLiBHZWgKcnVoaWcgbWl0IGRlbiBKdW5ncyBpbnMgU3RhZGlvbi4gCi0gCiAgICAgICBQYXNzIGF1ZiwgaWNoIHZlcmRpZW5lIGdlbnVnLiBXYXJ1bSBocnN0IGR1IG5pY2h0IGF1ZiB6dSBhcmJlaXRlbiB1bmQKdmVyYmVzc2Vyc3QgZGVpbiBIYW5kaWNhcD8gCi0gU2NoYXR6LCBkaWUgbmV0dGUgTmFjaGJhcnN0b2NodGVyIHNvbm50IHNpY2ggZ2VyYWRlIHdpZWRlci5EYXMgbXVzc3QgZHUKc2VoZW4hIAotIE5laW4sIG5laW4hIEljaCBuZWhtZSBkYXMgQXV0byBudXIsIHVtIGVpbmVuIFZsd2VjaHNlbCB6dSBtYWNoZW4uIAotIAogICAgICAgV2FzIHNhZ3N0IGR1IGRhenU6IFdpciBob2xlbiB1bnMgZWluZW4gZ3V0ZW4gUG9ybm9maWxtIHVuZCBlaW5lbgpLYXN0ZW4gQmllciB1bmQgaWNoIHJ1ZiBkYW5uIG5vY2ggU2FiaW5lIGZ8ciBlaW5lbiBEcmVpZXIgYW4uIAotIGNoIGhhYmUgbWljaCBmfHIgZWluZW4gWW9nYWt1cnMgZWluZ2V0cmFnZW4sIGRhbWl0IGljaCBtZWluZSBTY2hlbmtlbCBiZXNzZXIKaGludGVyIGRlbiBLb3BmIGJla29tbWUuIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGVyIGJhZXIgdW5kIGRlciBoYXNlIChHbm9tZSwgMTQuIEp1bCAyMDAwLCAxNToyNTowNSk6CkluIGVpbmVtIGdyb3NzZW4sIGR1bmtsZW4gV2FsZCB3YXIgZWlubWFsIGVpbiBncm9zc2VyLCBkaWNrZXIgQmFlci4gCkRlciBoYXR0ZSBzYXVvZnQgc2F1c2NobGVjaHRlIExhdW5lIGdlaGFidCAod2VpbCBlciB6dXdlbmlnIFNleCBoYXR0ZSkuClVuZCBpbW1lciwgd2VubiBkZXIgZ3Jvc3NlLCBkaWNrZSBCYWVyIHNvIHNhdXNjaGxlY2h0ZSBMYXVuZSBoYXR0ZSwgamFndGUKZXIsIHVtIHNpY2ggd2llZGVyIHp1IGJlcnVoaWdlbiwgZGVuIGtsZWluZW4sIHN1ZXNzZWVuLCBhYmVyIGNsZXZlcmVuIEhhc2VuLgpVbmQgd2VubiBkZXIgZ3Jvc3NlLCBkaWNrZSBCYWVyIGRlbiBrbGVpbmVuLCBzdWVzc2VuZW4sIGFiZXIgY2xldmVyZW4gSGFzZW4KbWFsIGluIHNlaW5lIGZldHRlbiBGaW5nZXIgYmVrYW0sIGRhbm4gZ2FiIGVzIHJpY2h0aWcgZGljayBhdWZzIE1hdWwuCkplZGVzbWFsLiBBbHMgZGVyIGdyb3NzZSwgZGlja2UgQmFlciBtYWwgd2llZGVyIHNhdXNjaGxlY2h0ZSBMYXVuZSBoYXR0ZSwKdW5kIG1hbCB3aWVkZXIgaGludGVyIGRlbSBIYXNlbiAoZGVtIGtsZWluZW4gc3Vlc3NlbiwgYWJlciBjbGV2ZXJlbikKaGVyamFndGUsIGJlZ2FiIGVzIHNpY2gsIGRhc3MgZWluIFphdWJlcmZyb3NjaCBhdXMgZGVtIEdlYnVlc2NoIHNwcmFuZwp1bmQgZGVyIHdpbGRlbiBKYWdkIEVpbmhhbHQgZ2Vib3QuCiJJaHIgaGFidCBqZXR6dCBzb2ZvcnQgYmVpZGUgZHJlaSBXdWVuc2NoZSBmcmVpIiwgcmllZiBlciB1bmQgZGV1dGV0ZSBhdWYgZGVuCmdyb3NzZW4sIGRpY2tlbiBCYWVyZW4gIkR1IGZhZW5nc3QgYW4iLgpEZXIgZ3Jvc3NlLCBkaWNrZSBCYWVyIG11c3N0ZSBuaWNodCBsYW5nZSB1ZWJlcmxlZ2VuIHVuZCBzYWd0ZTogIkljaCB3dWVuc2NoZQptaXIsIGRhc3MgYWxsZSBCYWVyZW4gaW0gdW5zZXJlbSBXYWxkLCBhdXNzZXIgbWlyLCB3ZWlibGljaCBzaW5kLiIKRXMgdGF0IGVpbmVuIHJpZXNlbiBTY2hsYWcgdW5kIGFsbGUgQmFlcmVuIHNpbmQgd2VpYmxpY2guIERhbm4gZGFyZiBzaWNoIGRlcgpIYXNlIHdhcyB3dWVuc2NoZW46CiJJY2ggd3VlbnNjaGUgbWlyIGVpbmVuIE1vdG9ycmFkaGVsbSwgZGFubiB0dXRzIG5ldCBzbyB3ZWgsIHdlbm4gaWNoIGF1ZnMKTWF1bCBrcmllZy4iCkVzIHRhdCBlaW5lbiBTY2hsYWcgdW5kIGVyIGhhdCBlaW5lbiBNb3RvcnJhZGhlbG0uIEpldHp0IHdhciB3aWVkZXIgZGVyCmdyb3NzZSwgZGlja2UgQmFlciBhbiBkZXIgUmVpaGU6CiJJY2ggd3VlbnNjaGUgbWlyLCBkYXNzIGF1Y2ggYWxsZSBCYWVyZW4gaW0gTmFjaGJhcndhbGQgd2VpYmxpY2ggc2luZCIuClNjaGxhZywgYWxsZSB3ZWlibGljaC4gRGVyIEhhc2U6IgpJY2ggd3VlbnNjaCBtaXIgZWluIE1vdG9ycmFkLCBkYW5uIGtyaWVndCBkZXIgQmFlciBtaWNoIGdhciBuZXQgbWVociIuIEVzIHRhdAplaW5lbiByaWVzZW4gU2NobGFnIHVuZCBlciBoYXQgZWluZSA5MDAgQ0JSIEZpcmVibGFkZSBvZGVyIHNvd2FzLiBEZXIKQmFlciBkZW5rdCB3YWVocmVuZGRlc3NlbiB1ZWJlciBzZWluZW4gbGV0enRlbiBXdW5zY2ggbmFjaDoKIkljaCB3dWVuc2NoZSBtaXIsIGRhc3MgYWxsZSBCYWVyZW4gYXVmIGRlciBXZWx0LCBhdXNzZXIgbWlyLCB3ZWlibGljaCBzaW5kLiIKRXMgZ2lidCBlaW5lbiBSdW5kdW1zY2hsYWNoIHVuZCBhbGxlIEJhZXJlbiBhdWYgZGVyIFdlbHQgc2luZCB3ZWlibGljaC4KIldpbGxzdCBkdSBub2NoIGVpbiBwYWFyIFN0aWVmZWwgZnVlcnMgTW90b3JyYWRmYWhyZW4/IgpmcmFndGUgZGVyIEZyb3NjaCBkZW4gSGFzZW4uCkRlciBrbGVpbmUsIHN1ZXNzZSwgYWJlciBjbGV2ZXJlIEhhc2UgYW50d29ydGV0ZToKIk5lLi4uLiBJY2ggd3VlbnNjaCBtaXIsIGRhc3MgZGVyIEJhZXIgc2Nod3VsIGlzdCIsIHNldHp0ZSBzZWluZW4gSGVsbSBhdWYKdW5kIGZ1aHIgdm9uIGRhbm5lbi4KCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6KSAoU2t5LCAxNS4gSnVsIDIwMDAsIDE2OjM1OjUxKToKZWJlbiBnZXNlaGVuLCBhbHMgd2VnbWVsZHVuZyBlaW5lcyBsZXYgNTUgc2VoZXJzOgoKei5aLiBhYndlc2VuZCwgR3J1bmQgIDogd2FydGVuIGJpcyBTYWJiZXJhbXUgd2llZGVyIGZ1bnp0IAoKU2t5LCBzcG9udGFuIDYgYW5kZXJlIFNhY2hlbiBlaW5mYWxsZW5kIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogOikgKE11YWRkaWIsIDE1LiBKdWwgMjAwMCwgMTY6NDM6MTEpOgp+IyEgcm49U2t5IHJ0PTk2MzY3MTc1MSByZz13aXR6ZQp+IyEgdGlkPTk2MzY3MTc1MQpOYWphLCB3ZW5uIGVyIGJsaW5kIGlzdCwgZGFubiBpc3QgZXIgamEga2VpbiBTZWhlciwgb2Rlcj8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYXVyZXIgKERlZXBibHVlLCAxNy4gSnVsIDIwMDAsIDE2OjE0OjMwKToKRWluIE1hdXJlciBrb21tdCB6dW0gRG9rdG9yIHVuZCBzYWd0OiAiRG9rdG9yLCBpY2ggbGVpZGUgdW50ZXIKVmVyc3RvcGZ1bmcuIiBEZXIgRG9rdG9yIHVudGVyc3VjaHQgaWhuIHVuZCBzYWd0OiAiTGVobmVuIFNpZQpzaWNoIGJlciBkZW4gVGlzY2guIiBEZXIgTWF1cmVyIGxlaG50IHNpY2ggYmVyIGRlbiBUaXNjaCB1bmQKZGVyIERva3RvciBuaW1tdCBlaW5lbiBIb2x6cHJnZWwgdW5kIGhhdXQgaWhtIGRlbiBNYXVyZXIgYmVyCmRlbiBIaW50ZXJuLiBEYXJhdWYgaGluIG11IGRlciBNYXVyZXIgYXVmIGRpZSBUb2lsZXR0ZS4gTmFjaAplaW4gcGFhciBNaW51dGVuIGVyc2NoZWludCBlciB3aWVkZXIgdW5kIHNhZ3Q6ICJJY2ggZmhsZSBtaWNoCmJlZGV1dGVuZCBiZXNzZXIuIFdhcyBzb2xsIGljaCB2b24gamV0enQgYWIgdHVuPyIKU2FndCBkZXIgRG9rdG9yOiAiSHJlbiBTaWUgYXVmLCBzaWNoIG1pdCBkZW4gWmVtZW50c2NrZW4gZGVuCkhpbnRlcm4gYWJ6dXdpc2NoZW4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hdXJlciAoS2FyaXMsIDE3LiBKdWwgMjAwMCwgMTY6NTQ6MDgpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTYzODQzMjcwIHJnPXdpdHplCn4jISB0aWQ9OTYzODQzMjcwCkVpbiBEZWVwYmx1ZSB2ZXJvZWZmbmV0bGljaHQgaW4gZGVyIFplaXR1bmcgdW5kIHNhZ3Q6CklyZ2VuZHdhcyBzdGltbXQgbWl0IG1laW5lbiBBcnRpa2VsbiBuaWNodC4KRGllIFplaXR1bmcgc2NobGFlZ3Qgc2ljaCBpaG0gc2VsYnN0IHVtIGRpZSBPaHJlbi4gRGVyIEFydGlla2wKd2lyZCBkYWR1cmNoIHp3YXIgbmljaHQgYmVzc2VyLCBhYmVyIGRhcyBtYWNodCBqYSBuaXguCk5hY2hkZW0gRGVlcGJsdWUgc2ljaCBiZXNzZXIgZnVlaGx0LCBmcmFndCBlciBkaWUgWmVpdHVuZywgd2FzIGVyCmluIFp1a3VuZnQgdHVuIHNvbGxlLiBEaWUgWmVpdHVuZyBzYWd0OiBIb2VyZSBhdWYsIGRpZSBVbWxhdXRlCmZhbHNjaCB6dSBzY2hyZWliZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb21lbiBFbmdsaXNoIChEaWVkZXIsIDE4LiBKdWwgMjAwMCwgMDA6NDU6MzIpOgpZZXMgPSBObwpObyA9IFllcwpNYXliZSA9IE5vCkknbSBzb3JyeS4gPSBZb3UnbGwgYmUgc29ycnkuCldlIG5lZWQgPSBJIHdhbnQKSXQncyB5b3VyIGRlY2lzaW9uID0gVGhlIGNvcnJlY3QgZGVjaXNpb24gc2hvdWxkIGJlIG9idmlvdXMgYnkgbm93LgpEbyB3aGF0IHlvdSB3YW50ID0gWW91J2xsIHBheSBmb3IgdGhpcyBsYXRlci4KV2UgbmVlZCB0byB0YWxrID0gSSBuZWVkIHRvIGNvbXBsYWluClN1cmUuLi4gZ28gYWhlYWQgPSBJIGRvbid0IHdhbnQgeW91IHRvLgpJJ20gbm90IHVwc2V0ID0gT2YgY291cnNlIEknbSB1cHNldCwgeW91IG1vcm9uIQpZb3UncmUgLi4uIHNvIG1hbmx5ID0gWW91IG5lZWQgYSBzaGF2ZSBhbmQgeW91IHN3ZWF0IGEgbG90LgpZb3UncmUgY2VydGFpbmx5IGF0dGVudGl2ZSB0b25pZ2h0ID0gSXMgc2V4IGFsbCB5b3UgZXZlciB0aGluayBhYm91dD8KQmUgcm9tYW50aWMsIHR1cm4gb3V0IHRoZSBsaWdodHMgPSBJIGhhdmUgZmxhYmJ5IHRoaWdocy4KVGhpcyBraXRjaGVuIGlzIHNvIGluY29udmVuaWVudCA9IEkgd2FudCBhIG5ldyBob3VzZS4KSSB3YW50IG5ldyBjdXJ0YWlucyA9IGFuZCBjYXJwZXRpbmcsIGFuZCBmdXJuaXR1cmUsIGFuZCB3YWxscGFwZXIuLi4uCkhhbmcgdGhlIHBpY3R1cmUgdGhlcmUgPSBOTywgSSBtZWFuIGhhbmcgaXQgdGhlcmUhCkkgaGVhcmQgYSBub2lzZSA9IEkgbm90aWNlZCB5b3Ugd2VyZSBhbG1vc3QgYXNsZWVwLgpEbyB5b3UgbG92ZSBtZT8gPSBJJ20gZ29pbmcgdG8gYXNrIGZvciBzb21ldGhpbmcgZXhwZW5zaXZlLgpIb3cgbXVjaCBkbyB5b3UgbG92ZSBtZT8gPSBJIGRpZCBzb21ldGhpbmcgdG9kYXkgeW91J3JlIHJlYWxseSBub3QKZ29pbmcKdG8gbGlrZS4KSSdsbCBiZSByZWFkeSBpbiBhIG1pbnV0ZS4gPSBLaWNrIG9mZiB5b3VyIHNob2VzIGFuZCBmaW5kIGEgZ29vZCBnYW1lCm9uClRWLgpJcyBteSBidXR0IGZhdD8gPSBUZWxsIG1lIEknbSBiZWF1dGlmdWwuCllvdSBoYXZlIHRvIGxlYXJuIHRvIGNvbW11bmljYXRlLiA9IEp1c3QgYWdyZWUgd2l0aCBtZS4KQXJlIHlvdSBsaXN0ZW5pbmcgdG8gbWUhPyA9IFtUb28gbGF0ZSwgeW91J3JlIGRlYWQuXQpXYXMgdGhhdCB0aGUgYmFieT8gPSBXaHkgZG9uJ3QgeW91IGdldCBvdXQgb2YgYmVkIGFuZCB3YWxrIGhpbSB1bnRpbApoZQpnb2VzIHRvIHNsZWVwLgpJJ20gbm90IHllbGxpbmchID0gWWVzIEkgYW0geWVsbGluZyBiZWNhdXNlIEkgdGhpbmsgdGhpcyBpcyBpbXBvcnRhbnQuCgoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaGUgcGVyZmVjdCBkYXkuLi4gKERpZWRlciwgMTguIEp1bCAyMDAwLCAwMDo0OTo0Myk6CkRlciBwZXJmZWt0ZSBUYWcgZnVlciBlaW5lIEZyYXU6CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAwOC4xNSAgICBNaXQgU2NobXVzZW4gdW5kIEt1ZXNzZW4gZ2V3ZWNrdCB3ZXJkZW4KICAwOC4zMCAgICAyIEtpbG9ncmFtbSB3ZW5pZ2VyIGFscyBhbSBWb3J0YWcgd2llZ2VuCiAgMDguNDUgICAgRnJ1ZWhzdHVlY2sgaW0gQmV0dCBtaXQgZnJpc2NoIGdlcHJlc3N0ZW0gT3JhbmdlbnNhZnQgdW5kCiAgICAgICAgICAgQ3JvaXNzYW50cywgR2VzY2hlbmtlIG9lZmZuZW4sIHouQnNwLiB0ZXVyZW4gU2NobXVjayB2b20KICAgICAgICAgICBhdWZtZXJrc2FtZW4gUGFydG5lciBhdXNnZXdhZWhsdC4KICAwOS4xNSAgICBIZWlzc2VzIEJhZCBtaXQgRHVmdG9lbCBuZWhtZW4KICAxMC4wMCAgICBMZWljaHRlcyBXb3Jrb3V0IGltIEZpdG5lc3NjbHViIG1pdCBodWVic2NoZW0sIGh1bW9ydm9sbGVtLAogICAgICAgICAgIHBlcnNvZW5saWNoZW0gVHJhaW5lcgogIDEwLjMwICAgIEdlc2ljaHRzcGZsZWdlLCBNYW5pa3VlcmUsIEhhYXJlIHdhc2NoZW4sIEt1cnBhY2t1bmcgaW4gZGVuCiAgICAgICAgICAgSGFhcmVuIGVpbndpcmtlbiBsYXNzZW4sIGZvZW5lbi4KICAxMi4wMCAgICBNaXR0YWdlc3NlbiBtaXQgZGVyIGJlc3RlbiBGcmV1bmRpbiBpbSBJbi1Mb2thbAogIDEyLjQ1ICAgIERpZSBFeGZyYXUgb2RlciBFeGZyZXVuZGluIGRlcyBQYXJ0bmVycyBiZWdhZmZlbiB1bmQKICAgICAgICAgICBmZXN0c3RlbGxlbiwgZGFzcyBzaWUgNyBrZyB6dWdlbm9tbWVuIGhhdC4KICAwMS4wMCAgICBFaW5rYXVmZW4gbWl0IEZyZXVuZGVuLCB1bmJlZ3Jlbnp0ZXIgS3JlZGl0cmFobWVuLgogIDAzLjAwICAgIE1pdHRhZ3NzY2hsYWYKICAwNC4wMCAgICBEcmVpIER1dHplbmQgUm9zZW4sIHdlcmRlbiBhbmdlbGllZmVydCBtaXQgZWluZXIgS2FydGUgdm9uCiAgICAgICAgICAgZWluZW0gZ2VoZWltZW4gQmV3dW5kZXJlcgogIDA0LjE1ICAgIExlaWNodGVzIFdvcmtvdXQgaW0gRml0bmVzc2NsdWIsIGdlZm9sZ3Qgdm9uIGVpbmVyIE1hc3NhZ2UKICAgICAgICAgICBkdXJjaCBlaW5lbiBzdGFya2VuIGFiZXIgZnJldW5kbGljaGVuIFR5cGVuLCBkZXIgc2FndCwgZGFzcyBlcgogICAgICAgICAgIHNlbHRlbiBlaW5lbiBzb2xjaCBwZXJmZWt0ZW4gS29lcnBlciBtYXNzaWVydCBoYXQKICAwNS4zMCAgICBPdXRmaXQgYXVzIGRlciBBdXN3YWhsIHRldXJlciBEZXNpZ25lci1LbGFtb3R0ZW4gYW5wcm9iaWVyZW4KICAgICAgICAgICB1bmQgdm9yIGRlbSBWb2xsa29lcnBlcnNwaWVnZWwgZWluZSBNb2RlbnNjaGF1IHZlcmFuc3RhbHRlbi4KICAwNy4zMCAgICBDYW5kbGUtTGlnaHQtRGlubmVyIGZ1ZXIgendlaSBQZXJzb25lbiwgZ2Vmb2xndCB2b24gVGFuemVuLAogICAgICAgICAgIHZlcmJ1bmRlbiBtaXQgS29tcGxpbWVudGVuLgogIDEwLjAwICAgIEhlaXNzZSBEdXNjaGUgKGFsbGVpbmUpCiAgMTA6NTAgICAgSW5zIEJldHQgZ2V0cmFnZW4gd2VyZGVuLCBkYXMgZnJpc2NoIGdld2FzY2hlbiB1bmQgZ2VidWVnZWx0IGlzdAogIDExLjAwICAgIFNjaG11c2VuCiAgMTEuMTUgICAgSW4gc2VpbmVuIHN0YXJrZW4gQXJtZW4gZWluc2NobGFmZW4uCgoKCgpEZXIgcGVyZmVrdGUgVGFnIGZ1ZXIgZGVuIE1hbm46CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogIDA2LjAwICAgIFdlY2tlciBrbGluZ2VsdAogIDA2LjE1ICAgIEJsb3cgSm9iCiAgMDYuMzAgICAgR3Jvc3NlciBiZWZyaWVkaWdlbmRlciBNb3JnZW5zY2hpc3MsIGRhYmVpIGRlbiBTcG9ydHRlaWwgZGVyCiAgICAgICAgICAgWmVpdHVuZyAgbGVzZW4KICAwNy4wMCAgICBGcnVlaHN0dWVjazogUnVtcHN0ZWFrIHVuZCBFaWVyLCBLYWZmZWUgdW5kIFRvYXN0LCB6dWJlcmVpdGV0CiAgICAgICAgICAgdm9uIGVpbmVyIG5hY2t0ZW4gSGF1c2FuZ2VzdGVsbHRlbi4KICAwNy4zMCAgICBMaW1vdXNpbmUga29tbXQgYW4KICAwNy40NSAgICBFaW5pZ2UgR2xhZXNlciBXaGlza2V5IGF1ZiBkZW0gV2VnIHp1bSBGbHVnaGFmZW4uCiAgMDkuMTUgICAgRmx1ZyBpbiBQcml2YXRqZXQKICAwOS4zMCAgICBMaW1vdXNpbmUgbWl0IENoYXVmZmV1ciB6dW0gR29sZiBDbHViCiAgMDkuNDUgICAgR29sZiBzcGllbGVuCiAgMTEuNDUgICAgTWl0dGFnZXNzZW46IEZhc3QgRm9vZCwgMyBCaWVyLCBlaW5lIEZsYXNjaGUgRG9tIFBlcmlnbm9uCiAgMTIuMTUgICAgQmxvdyBKb2IKICAxMi4zMCAgICBHb2xmIHNwaWVsZW4KICAwMi4xNSAgICBMaW1vdXNpbmUgenVydWVjayB6dW0gRmx1Z2hhZmVuIChlaW5pZ2UgR2xhZXNlciBXaGlza2V5KQogIDAyLjMwICAgIEZsdWcgbmFjaCBNb250ZSBDYXJsbwogIDAzLjMwICAgIE5hY2htaXR0YWdzYXVzZmx1ZyB6dW0gRmlzY2hlbiwgQmVnbGVpdGVyaW5uZW4gc2luZCBhbGxlCiAgICAgICAgICAgbmFja3QuCiAgMDUuMDAgICAgRmx1ZyBuYWNoaGF1c2UsIEdhbnprb2VycGVybWFzc2FnZSBkdXJjaCBWZXJvbmEgRmVsZGJ1c2NoCiAgMDYuNDUgICAgU2NoZWlzc2VuLCBEdXNjaGVuLCBSYXNpZXJlbgogIDA3LjAwICAgIE5hY2hyaWNodGVuIGFuc2NoYXVlbjogTWljaGFlbCBKYWNrc29uIHVtZ2VicmFjaHQsCiAgICAgICAgICAgTWFyaWh1YW5hIHVuZCBIYXJkY29yZS1Qb3Jub3MgbGVnYWxpc2llcnQuCiAgMDcuMzAgICAgQWJlbmRlc3NlbjogSHVtbWVyIGFscyBWb3JzcGVpc2UsIERvbSBQZXJpZ25vbiAsIGdyb3NzZXMKICAgICAgICAgICBzYWZ0aWdlcyBGaWxldHN0ZWFrLCBnZWZvbGd0IHZvbiBFaXNjcmVtZSBzZXJ2aWVydCBhdWYgYmxvc3NlbgogICAgICAgICAgIEJydWVzdGVuCiAgMDkuMDAgICAgTmFwb2xlb24gQ29nbmFjIHVuZCBlaW5lIENvaHVuYSBaaWdhcnJlIHZvciBlaW5lbQogICAgICAgICAgIEdyb3NzYmlsZHNjaGlybS1GZXJuc2VoZXIsIFNwb3J0c2NoYXUgYW5zY2hhdWVuLiBEZXV0c2NobGFuZAogICAgICAgICAgIHNjaGxhZWd0IEVuZ2xhbmQgMTE6MAogIDA5LjMwICAgIFNleCBtaXQgZHJlaSBGcmF1ZW4gKGFsbGUgZHJlaSBtaXQgbGVzYmlzY2hlbiBOZWlndW5nZW4pCiAgMTEuMDAgICAgTWFzc2FnZSB1bmQgQmFkIGltIFdoaXJscG9vbCwgZGF6dSBlaW5lIGxlY2tlcmUgUGl6emEgdW5kCiAgICAgICAgICAgZWluIHJlaW5pZ2VuZGVzIGhlbGxlcyBCaWVyCiAgMTEuMzAgICAgR3V0ZS1OYWNodC1CbG93LUpvYgogIDExLjQ1ICAgIEFsbGVpbmUgaW0gQmV0dCBsaWVnZW4KICAxMS41MCAgICBFaW4gMTIgc2VrdWVuZGlnZXIgRnVyeiwgZGVyIGRpZSBUb25hcnQgNCBtYWwgd2VjaHNlbHQgdW5kIGRlbgogICAgICAgICAgIEh1bmQgbm9ldGlndCwgZGVuIFJhdW0genUgdmVybGFzc2VuLgoKCkRpZWRlciA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFzIFVOSVgtQUJDIChEaWVkZXIsIDE4LiBKdWwgMjAwMCwgMDA6NTI6NDkpOgpBIGlzIGZvciBhd2ssIHdoaWNoIHJ1bnMgbGlrZSBhIHNuYWlsLCBhbmQKQiBpcyBmb3IgYmlmZiwgd2hpY2ggcmVhZHMgYWxsIHlvdXIgbWFpbC4KQyBpcyBmb3IgY2MsIGFzIGhhY2tlcnMgcmVjYWxsLCB3aGlsZQpEIGlzIGZvciBkZCwgdGhlIGNvbW1hbmQgdGhhdCBkb2VzIGFsbC4KRSBpcyBmb3IgZW1hY3MsIHdoaWNoIHJlYmluZHMgeW91ciBrZXlzLCBhbmQKRiBpcyBmb3IgZnNjaywgd2hpY2ggcmVidWlsZHMgeW91ciB0cmVlcy4KRyBpcyBmb3IgZ3JlcCwgYSBjbGV2ZXIgZGV0ZWN0aXZlLCB3aGlsZQpIIGlzIGZvciBoYWx0LCB3aGljaCBtYXkgc2VlbSBkZWZlY3RpdmUuCkkgaXMgZm9yIGluZGVudCwgd2hpY2ggcmFyZWx5IGFtdXNlcywgYW5kCkogaXMgZm9yIGpvaW4sIHdoaWNoIG5vYm9keSB1c2VzLgpLIGlzIGZvciBraWxsLCB3aGljaCBtYWtlcyB5b3UgdGhlIGJvc3MsIHdoaWxlCkwgaXMgZm9yIGxleCwgd2hpY2ggaXMgbWlzc2luZyBmcm9tIERPUy4KOmdyaW5zdCBueV9ueGJfeWJmdCxfeGtpaF90ZmhjaV9vaXh5X2VqY19ucnVkaixfdGh5eHEhCk4gaXMgZm9yIG5pY2UsIHdoaWNoIGl0IHJlYWxseSBpcyBub3QuCk8gaXMgZm9yIG9kLCB3aGljaCBwcmludHMgb3V0IHRoaW5ncyBuaWNlLCB3aGlsZQpQIGlzIGZvciBwYXNzd2QsIHdoaWNoIHJlYWRzIGluIHN0cmluZ3MgdHdpY2UuClEgaXMgZm9yIHF1b3RhLCBhIEJlcmtlbGV5LXR5cGUgZmFibGUsIGFuZApSIGlzIGZvciByYW5saWIsIGZvciBzb3J0aW5nIGFyIHRhYmxlLgpTIGlzIGZvciBzcGVsbCwgd2hpY2ggYXR0ZW1wdHMgdG8gYmVsaXR0bGUsIHdoaWxlClQgaXMgZm9yIHRydWUsIHdoaWNoIGRvZXMgdmVyeSBsaXR0bGUuClUgaXMgZm9yIHVuaXEsIHdoaWNoIGlzIHVzZWQgYWZ0ZXIgc29ydCwgYW5kClYgaXMgZm9yIHZpLCB3aGljaCBpcyBoYXJkIHRvIGFib3J0LgpXIGlzIGZvciB3aG9hbWksIHdoaWNoIHRlbGxzIHlvdSB5b3VyIG5hbWUsIHdoaWxlClggaXMsIHdlbGwsIFgsIG9mIGR1YmlvdXMgZmFtZS4KWSBpcyBmb3IgeWVzLCB3aGljaCBtYWtlcyBhbiBpbXByZXNzaW9uLCBhbmQKWiBpcyBmb3IgemNhdCwgd2hpY2ggaGFuZGxlcyBjb21wcmVzc2lvbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDYW1waW5nIG1pdCBTaGVybG9jayBIb2xtZXMgKERpZWRlciwgMTguIEp1bCAyMDAwLCAwMTowMjowNik6ClNoZXJsb2NrIEhvbG1lcyB1bmQgRHIuIFdhdHNvbiBzaW5kIGNhbXBlbi4KTmFjaCBlaW5lciBndXRlbiBGbGFzY2hlIFdlaW4gbGVnZW4gc2llIHNpY2ggaGluIHVuZCBzY2hsYWZlbiBlaW4uCkVpbiBwYWFyIFN0dW5kZW4gc3BhdGVyIHdhY2h0IEhvbG1lcyBhdWYgdW5kIHN0dXBzdCBzZWluZW4gRnJldW5kIGFuOgoiV2F0c29uLCBzY2hhdWVuIFNpZSB6dW0gSGltbWVsIHVuZCBzYWdlbiBTaWUgbWlyLCB3YXMgc2llIHNlaGVuISIKV2F0c29uOiAiSWNoIHNlaGUgdW56YWhsaWdlIFN0ZXJuZSIKSG9sbWVzOiAiV2FzIHNjaGxpZXNzZW4gU2llIGRhcmF1cz8iCldhdHNvbiB1YmVybGVndCBlaW5lbiBNb21lbnQ6ICJBc3Ryb25vbWlzY2ggZ2VzZWhlbiBzY2hsaWVzc2UgaWNoLCBkYXNzCmVzIE1pbGxpb25lbiB2b24gR2FsYXhpZW4gdW5kIE1pbGxpYXJkZW4gUGxhbmV0ZW4gZ2lidC4KQXN0cm9sb2dpc2NoIHN0ZWxsZSBpY2ggZmVzdCwgZGFzcyBkZXIgU2F0dXJuIGltIFN0ZXJuYmlsZCBkZXMgTG93ZW4Kc3RlaHQuCkhvcm9sb2dpc2NoIGZvbGdlcmUgaWNoLCBkYXNzIGVzIHVuZ2VmYWhyIHZpZXJ0ZWwgbmFjaCBkcmVpIFVociBtb3JnZW5zCmlzdC4KVGhlb2xvZ2lzY2ggZXJrZW5uZSBpY2gsIGRhc3MgR290dCBtYWNodGlnIGlzdCB1bmQgd2lyIGFsbGUga2xlaW4gdW5kCnVuYmVkZXV0ZW5kIHNpbmQuCk1ldGVvcm9sb2dpc2NoIG5laG1lIGljaCBhbiwgZGFzcyBtb3JnZW4gZWluIHd1bmRlcnNjaG9uZXIgVGFnIHNlaW4Kd2lyZC4KVW5kIHdhcyBmb2xnZXJuIFNpZT8iCkhvbG1lczogIkRhc3MgaXJnZW5kZWluIE1pc3RrZXJsIHVuc2VyIFplbHQgZ2VzdG9obGVuIGhhdC4uLiIKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhlaGUgKERpZWRlciwgMTguIEp1bCAyMDAwLCAwMToxMDowNik6CiJXZW5uIHNpZSBpaHJlIEUtTWFpbCB2ZXJzY2hsdWVzc2VsbiB3b2xsZW4sIGRhbm4gc3RlY2tlbiBzaWUgZGllIApOYWNocmljaHQgZG9jaCBlaW5mYWNoIGluIGVpbmUgUG93ZXJQb2ludC1EYXRlaS4gRGllIGtvZW5uZW4gZGllIAptZWlzdGVuIHNvd2llc28gbmljaHQgbGVzZW4uIiAtIFF1ZWxsZTogU2NvdHQgTWNOZWFseSwgU3VuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEYXMgVU5JWC1BQkMgKERpZWRlciwgMTguIEp1bCAyMDAwLCAwMToxMzowNSk6Cn4jISBybj1EaWVkZXIgcnQ9OTYzODc0MzY5IHJnPXdpdHplCn4jISB0aWQ9OTYzODc0MzY5Ck5hY2h0cmFnIGZ1ZXIgR25vbWU6CgoiTSIgaXMgZm9yIG1vcmUsIGZyb20gd2hpY2ggbGVzcyB3YXMgYmVnb3QsIGFuZC4uLgoKYW5zdGVsbGUgZGVyIHNlbHRzYW1lbiBncmlucy1aZWlsZSA7KQoKRGllZGVyLCB6dSBmYXVsIHp1IGxvZXNjaGVuIHVuZCBub2NobWFsIHp1IHBvc3Rlbiwgd2VpbCBlcyBlaCBzY2hvbiBhbGxlCmdlbGVzZW4gaGFiZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhcnRlaWVyIChEaWVkZXIsIDE4LiBKdWwgMjAwMCwgMDE6Mjg6MTcpOgpBbmFsb2cgenVyIFdlaWNoZWllci1MaXN0ZSBnaWJ0cyBhdWNoIG5lIEhhcnRlaWVyLUxpc3RlLCB3ZWlsIG1pY2ggZWluaWdlCmRhbmFjaCBnZWZyYWd0IGhhYmVuIDspCgp3d3cuaGFydGVpZXIuZGUKCkRpZWRlcgpXaGF0IGRpZCB0aGUgaHVycmljYW5lIHNheSB0byB0aGUgY29jb251dCB0cmVlPwpIb2xkIG9udG8geW91ciBudXRzLCB0aGlzIGFpbid0IGdvbm5hIGJlIG5vIG9yZGluYXJ5IGJsb3dqb2IuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXJ1bSBlcyB0b2xsIGlzdCwgZWluIE1hbm4genUgc2VpbiAoRGllZGVyLCAxOC4gSnVsIDIwMDAsIDAyOjQyOjQ4KToKMS4gICAgVGVsZWZvbmdlc3ByYWVjaGUgc2luZCBpbm5lcmhhbGIgdm9uIDMwIFNla3VuZGVuIGJlZW5kZXQuCjIuICAgIERpZSBNYXNzZSBkZXIgUG9ybm9kYXJzdGVsbGVyIGlzdCB3ZWlibGljaC4KMy4gICAgRHUgd2Vpc3N0IGV0d2FzIHVlYmVyIFBhbnplci4KNC4gICAgRnVlciBlaW5lbiA1LVRhZ2UgVXJsYXViIHJlaWNodCBlaW4gS29mZmVyLgo1LiAgICBEdSBtdXNzdCBuaWNodCBkYXMgU2V4bGViZW4gZGVpbmVyIEZyZXVuZGUgdWViZXJ3YWNoZW4uCjYuICAgIER1IGthbm5zdCBhbGxlIE1hcm1lbGFkZW5nbEFlc2VyIHNlbGJzdCBvZWZmbmVuLgo3LiAgICBBbHRlIEZyZXVuZGUgYmVtaXRsZWlkZW4gZGljaCBuaWNodCwgd2VubiBkdSB6dW5pbW1zdC4KOC4gICAgQmVpbSBaYXBwZW4gYmxlaWJzdCBkdSBuaWNodCBoQWVuZ2VuLCB3ZW5uIGplbWFuZCB3ZWludC4KOS4gICAgRGVpbiBBcnNjaCBzcGllbHQgbmllbWFscyBlaW5lIFJvbGxlIGluIFZvcnN0ZWxsdW5nc2dlc3ByQWVjaGVuLgoxMC4gIEFsbGUgZGVpbmUgT3JnYXNtZW4gc2luZCBlY2h0LgoxMS4gIEVpbiBCaWVyYmF1Y2ggbWFjaHQgRGljaCBuaWNodCB1bnNpY2h0YmFyIGZ1ZXIgZGFzIGFuZGVyZQpHZXNjaGxlY2h0LgoxMi4gIER1IHNjaGxlcHBzdCBrZWluZSBUYXNjaGVuIG1pdCB1bm5vZXRpZ2VuIERpbmdlbiBtaXQgZGlyIGhlcnVtLgoxMy4gIER1IGthbm5zdCBkZWluZSBOYWhydW5nIHNlbGJzdCBlcmxlZ2VuLgoxNC4gIEluIGRlciBXZXJrc3RhdHQgZ2Vob2VydCBkaXIgYWxsZXMuCjE1LiAgRHUgYnJhdWNoc3QgbmllbWFscyBkaWUgVG9pbGV0dGUgcmVpbmlnZW4uCjE2LiAgRHUga2FubnN0IERpY2ggZHVzY2hlbiB1bmQgYW56aWVoZW4gaW4gMTAgTWludXRlbi4KMTcuICBTZXgga2FubiBkaXIgbmljaHQgZGVpbmVuIFJ1ZiB2ZXJtaWVzZW4uCjE4LiAgV2VubiBqZW1hbmQgdmVyZ2lzc3QgZGljaCBlaW56dWxhZGVuLCBpc3QgZXIgbmFjaCB3aWUgdm9yIGRlaW4KRnJldW5kLgoxOS4gIERlaW5lIFVudGVyd0Flc2NoZSBpbSAzZXItUGFjayBrb3N0ZXQgMTgsLSBETS4KMjAuICBLZWluIE1pdGFyYmVpdGVyIGthbm4gZGljaCB6dW0gaGV1bGVuIGJyaW5nZW4uCjIxLiAgRHUgYnJhdWNoc3QgZGljaCB1bnRlcmhhbGIgZGVzIEtvcGZlcyBuaWNodCByYXNpZXJlbi4KMjIuICBEdSBtdXNzdCBuaWNodCBqZWRlIE5hY2h0IG5lYmVuIGVpbmVtIGhhYXJpZ2VuIEFyc2NoIHNjaGxhZmVuLgoyMy4gIE5pZW1hbmQgaW50ZXJlc3NpZXJ0IGVzLCB3ZW5uIGR1IG1pdCAzNCBub2NoIFNpbmdsZSBiaXN0LgoyNC4gIER1IGthbm5zdCBEZWluZW4gTmFtZW4gaW4gZGVuIFNjaG5lZSBzY2hyZWliZW4uCjI1LiAgQWxsZXMgaW4gZGVpbmVtIEdlc2ljaHQgYmVoQWVsdCBzZWluZSBPcmlnaW5hbGZhcmJlLgoyNi4gIER1IGRlbmtzdCA5MCAlIGRlciBaZWl0IGRpZSBEdSB3YWNoIGJpc3QgYW4gU2V4LgoyNy4gIERyZWkgUGFhciBTY2h1aGUgc2luZCBtZWhyIGFscyBnZW51Zy4KMjguICBEdSBrYW5uc3QgZWluZSBCYW5hbmUgaW4gZGVyIE9FZmZlbnRsaWNoa2VpdCBlc3Nlbi4KMjkuICBEdSBrYW5uc3Qgc2FnZW4gd2FzIER1IHdpbGxzdCwgd2VpbCBkaXIgZWdhbCBpc3Qgd2FzIGFuZGVyZSBMZXV0ZQp1ZWJlcgpkaWNoIGRlbmtlbi4KMzAuICBEYXMgVm9yc3BpZWwgaXN0IGZyZWl3aWxsaWcuCjMxLiAgS2VpbmVyIHVudGVyYnJpY2h0IHNlaW5lbiBndXRlbiBzY2htdXR6aWdlbiBXaXR6LCB3ZW5uIGR1IGRlbgpSYXVtCmJldHJpdHRzdC4KMzIuICBLZnotTWVjaGFuaWtlciBlcnpBZWhsZW4gZGlyIGRpZSBXYWhyaGVpdC4KMzMuICBEaWNoIGludGVyZXNzaWVydCBlcyBlaW5lbiBEcmVjaywgb2IgamVtYW5kIGRlaW5lIG5ldWUgRnJpc3VyCmVya2VubnQuCjM0LiAgRHUgYmlzdCBpbW1lciBpbiBkZXIgZ2xlaWNoZW4gU3RpbW11bmcuCjM1LiAgRHUga2FubnN0IENsaW50IEVhc3R3b29kIGJld3VuZGVybiBvaG5lIHp1IGh1bmdlcm4sIHVtIHdpZSBlcgphdXN6dXNlaGVuLgozNi4gIER1IGtlbm5zdCBtaW5kZXN0ZW5zIDIwIFdlZ2UgZWluZSBCaWVyZmxhc2NoZSB6dSBvZWZmbmVuLgozNy4gIER1IGthbm5zdCBicmVpdGJlaW5pZyBzaXR6ZW4sIGVnYWwgd2FzIGR1IHRyQWVnc3QuCjM4LiAgR2xlaWNoZSBBcmJlaXQgLSBiZXNzZXJlcyBHZWhhbHQuCjM5LiAgR3JhdWVzIEhhYXIgdW5kIEZhbHRlbiB2ZXJzdEFlcmtlbiBkZWluZW4gQ2hhcmFrdGVyLgo0MC4gIEVzIGlzdCBkaXIgZWdhbCwgd2VubiBMZXV0ZSBoaW50ZXIgZGVpbmVtIFJ1ZWNrZW4gdWViZXIgZGljaApzcHJlY2hlbi4KNDEuICBNaXQgNDAwIE1pbGxpb25lbiBTcGVybWVuIHBybyBTY2h1c3Mga29lbm50ZXN0IGR1IGluIDE1IFZlcnN1Y2hlbgpkaWUKICAgICAgIEVyZGJldm9lbGtlcnVuZyB2ZXJkb3BwZWxuIC0gdGhlb3JldGlzY2guCjQyLiAgRGllIEZlcm5iZWRpZW51bmcgZ2Vob2VydCBkaXIuLi4gbnVyIGRpci4KNDMuICBNZW5zY2hlbiB3ZXJmZW4gbmllIGVpbmVuIEJsaWNrIGF1ZiBkZWluZSBCcnVzdCwgd2VubiBkdSBkaWNoIG1pdAppaG5lbiB1bnRlcmhBZWx0c3QuCjQ0LiAgV2VubiBhbmRlcmUgSnVuZ3MgYXVmIGVpbmVyIFBhcnR5IGRpZSBnbGVpY2hlbiBLbGFtb3R0ZW4gdHJhZ2VuLAogICAgICAga2FubiBlcyBzZWluLCBkYXNzIGR1IEZyZXVuZGUgZnVlcnMgTGViZW4gZmluZGVzdC4KNDUuICBQcmluemVzc2luIERpYW5hcyBUb2Qgd2FyIG51ciBlaW5lIHdlaXRlcmUgVG9kZXNhbnplaWdlLgo0Ni4gIERlciBnZWxlZ2VudGxpY2hlIGd1dCBkb3NpZXJ0ZSBSdWVscHNlciB3aXJkIHNvIGd1dCB3aWUgZXJ3YXJ0ZXQuCjQ3LiAgRHUgbEFlc3N0IG5pZW1hbHMgZWluZSBDaGFuY2UgYXVmIFNleCBzYXVzZW4sIHdlaWwgZHUgbmljaHQgaW4gZGVyClN0aW1tdW5nIGJpc3QuCjQ4LiAgUG9ybm9maWxtZSB3ZXJkZW4gbmFjaCBkZWluZW4gVm9yc3RlbGx1bmdlbiBnZWRyZWh0Lgo0OS4gIEVpbmUgUGVyc29uIG5pY2h0IHp1IG1vZWdlbiBzY2hsaWVzc3QgbmljaHQgYXVzLCBncm9zc2FydGlnZW4gU2V4Cm1pdAppaHIKenUgaGFiZW4uCjUwLiAgV2FzIHp1bSBUZXVmZWwgaXN0IFplbGx1bGl0aXMgIT8KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXMgZ2lidCBuaXgsIHdvcmF1ZiBMaW51eCBuaWNodCBsYWV1ZnQgLi4uIChLYXJpcywgMTguIEp1bCAyMDAwLCAwOTowNDozNCk6CkxpbnV4J2xsIHJ1biBvbiBhIDM4NiB3aXRoIG9ubHkgOG1lZyEKCjhtZWchISEhIE5vYm9keSB0b2xkIG1lISEgT25lIG9mIG15IExpbnV4IGJveGVzIGhhcyBiZWVuIHJ1bm5pbmcgb24KYW4gNG1lZyAzODYgZm9yIHllYXJzIGp1c3QgZmluZS4KCk9uZSBvZiBvdXIgYm94ZXMgaXMgYW4gQU1EIDM4NnN4LzQwIHdpdGggNE1CIFJBTSBhbmQgYW4gODBNQiBoYXJkIGRyaXZlLgoKV2h5LCB3aGVuIEkgd2FzIGEgY2hpbGQsIHdlIHJhbiBMaW51eCBvbiBSYWRpbyBTaGFjayBUcmFzaC04MCB3aXRoIGEgClotODAgQ1BVLCA2NGsgb2YgbWVtb3J5IGFuZCBhIDUsMjUnJyBmbG9wcHkgZHJpdmUuIEFuZCB3ZSB3ZXJlIGdsYWQKZm9yIGl0ISEKCllvdSB3ZXJlIGx1Y2t5ISBXaGVuIEkgd2FzIGEgY2hpbGQsIEkgcmFuIExpbnV4IG9uIGFuIEF0YXJpIDQwMCB3aXRoCmEgNjUwMiwgMjU2IGJ5dGVzIG9uIFBhZ2UgMCwgOGsgb2YgbWVtb3J5IGFuZCBhIGNhc3NldHRlIHRhcGUgZHJpdmUsCmFuZCBoYWQgdG8gZG8gdmlydHVhbCBtZW1vcnkgdXNpbmcgRk9SVEguLi4uCgpXZWxsLCB3aGVuIEkgd2FzIHN0YXJ0aW5nIG91dCwgd2UgZGlkbid0IGhhdmUgbm8gZmFuY3kgQXRhcmlzLiBJIGhhZCAKdG8gcnVuIExpbnV4IG9uIGFuIFVuZGVyd29vZCBtYW51YWwgdHlwZXdyaXRlci4gVXBoaWxsLgoKWW91IHRoaW5rIFRIQVQgd2FzIGhhcmQuIFRyeSBydW5uaW5nIExpbnV4IG9uIGFuIGFiYWN1cywgbGlrZSB0aGV5CmRpZCBpbiBteSBncmVhdC1ncmFuZGZhdGhlcidzIGRheS4gQ29tcGlsaW5nIHRoZSBrZXJuZWwgd2FzIApleHRyZW1seSBoYXJkIG9uIHlhIGZpbmdlcnMsIGFuZCBtYW55IGRpZWQgdHJ5aW5nIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmllciAoRGVlcGJsdWUsIDE4LiBKdWwgMjAwMCwgMTA6Mzg6MzUpOgpwZW5uZXIsIHN0b2NrYmVzb2ZmZW4gYXVmIG5lciBwYXJrYmFuay4Ka29tbXQgZWluIG5vdGdlaWxlciBzY2h3dWxlciB2b3JiZWksIHVuZCBuaW1tdCBzaWNoIGRlbiBwZW5uZXIgdm9yLgphbHMgZGVyIHNjaHd1bGUgZmVydGlnIGlzdCwgc3RlY2t0IGVyIGRlbSBwZW5uZXIgMjAgbWFyayB6dS4KZGVyIHBlbm5lciBoYXQgbmljaHRzIG1pdGJla29tbWVuLCB3ZWlsIGVyIGphIHNvIGJlc29mZmVuIGlzdC4KZGVyIHBlbm5lciB3YWNodCBhbSBtb3JnZW4gYXVmLCB1bmQgZnJldXQgc2ljaCB1ZWJlciBkaWUgMjAgbWFyaywgdW5kIGdlaHQKZ2xlaWNoIHp1bSBraW9zaywgdW5kIHNhZ3Q6ID4+IGVpbiB0cmFnbCBhdWd1c3RpbmVyLCBiaXR0ZSA8PApkYXMgZ2VodCBudW4gMiB3b2NoZW4gc28gd2VpdGVyLgpkYW5uIGFtIGtpb3NrOiA+PiBlaW4gdHJhZ2wgcGF1bGFuZXIsIGJpdHRlIDw8Cmtpb3NrYmVzaXR6ZXI6ID4+IHdhcywga2VpbiBhdWd1c3RpbmVyPz8/IDw8PApkYXJhdWYgZGVyIHBlbm5lcjogPj4gbmVpbiwgdm9uIGRlbSB0dXQgbWlyIHNlaXQgMiB3b2NoZW4gZGVyIGFyc2NoIHNvCiAgICAgICAgICAgICAgICAgICAgICB3ZWggPDwKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmllciAoS2FyaXMsIDE4LiBKdWwgMjAwMCwgMTA6NDE6MDEpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTYzOTA5NTE1IHJnPXdpdHplCn4jISB0aWQ9OTYzOTA5NTE1CkRBcyBpcyBuZSBnZW5pYWxlIExvZXN1bmcgOikgRWluZmFjaCBrZWluZSBTYWNoZW4gcG9zdGVuLApkaWUga2VpbmUgVW1sYXV0ZSBlbnRoYWx0ZW4gOikKCkthcmlzLCBEZWVwYmx1ZSBtYWwgbG9iZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJpZXIgKEFuYXRvbCwgMTguIEp1bCAyMDAwLCAxNzoxMTo0OCk6Cn4jISBybj1LYXJpcyBydD05NjM5MDk2NjEgcmc9d2l0emUKfiMhIHRpZD05NjM5MDk1MTUKInVlYmVyIgoKQW5hdG9sIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQmllciAoQmVpc3BpZWwsIDE4LiBKdWwgMjAwMCwgMTc6MTc6MDQpOgp+IyEgcm49QW5hdG9sIHJ0PTk2MzkzMzEwOCByZz13aXR6ZQp+IyEgdGlkPTk2MzkwOTUxNQpBIG5hIHRvbGwKRWluIGFic2NocmVja2VuZGVzIEJlaXNwaWVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGhlIHBlcmZlY3QgZGF5Li4uIChSb2NodXMsIDE5LiBKdWwgMjAwMCwgMTk6MTY6MTIpOgp+IyEgcm49RGllZGVyIHJ0PTk2Mzg3NDE4MyByZz13aXR6ZQp+IyEgdGlkPTk2Mzg3NDE4MwogIDA2LjAwICAgV2Vja2VyIGtsaW5nZWx0CkRhcyBpc3QgTklFTUFMUyBlaW4gcGVyZmVrdGVyIFRhZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGhlIHBlcmZlY3QgZGF5Li4uIChBbHBoYSwgMTkuIEp1bCAyMDAwLCAxOTozOToxMik6Cn4jISBybj1Sb2NodXMgcnQ9OTY0MDI2OTcyIHJnPXdpdHplCn4jISB0aWQ9OTYzODc0MTgzCihlZ2FsIHdlbGNoZSBVaHJ6ZWl0KSBXZWNrZXIga2xpbmdlbHQKCldlbm4gZGVyIFRhZyBzb28gYW5mYWVuZ3QsIGlzdCBlciBkb2NoIHNjaG9uIHZlcnNhdXQuCkFscGhhLCBkZXIgV2Vja2VyaGFzc2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVlcGJsdWUhIEFyZ3MhIChUc3VuYW1pLCAgMS4gQXVnIDIwMDAsIDIwOjIzOjI1KToKQml0dGUsIGJpdHRlLCBiaXR0ZSBEZWVwYmx1ZSEgQXJncywga2VpbmUgJ1dpdHplJyBtZWhyIHZvbiBEaXIuCkVudHdlZGVyIHNpbmQgc2llIHVyYWx0IG9kZXIgc2VsdGVuIGRhZW1saWNoLiBBYmVyIGVpbiBzaW5kIHNpZSBiZXN0aW1tdApuaWNodDogbHVzdGlnLgoKRGFua2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVlcGJsdWUhIEFyZ3MhIChXb29keSwgIDEuIEF1ZyAyMDAwLCAyMTo0MjoxMSk6Cn4jISBybj1Uc3VuYW1pIHJ0PTk2NTE1NDIwNSByZz13aXR6ZQp+IyEgdGlkPTk2NTE1NDIwNQpJY2gga2FubnRlIHNpZSB6d2FyIGF1Y2ggZmFzdCBhbGxlLCBhYmVyIGljaCBnbGF1YmUgbmljaHQsIGRhc3MKZWluZSBSdWJyaWsgd2llICJ3aXR6ZSIgZWluZXIgX3N0cmVuZ2VuXyBxdWFsaXRhdGl2ZW4gQmV1cnRlaWx1bmcKYmVkYXJmLiBJY2ggYmluIG1pciBzaWNoZXIsIGRhc3MgZXMgYXVjaCBldGxpY2hlIExldXRlIGdpYnQsIGRpZQpkaWUgV2l0emUgbHVzdGlnIGZhbmRlbi4gSW5zb2Zlcm5lIGZpbmRlIGljaCBzb2xjaGUgKmdhZWhuLCBkZW4Ka2FubnRlIGljaCBkb2NoIHNjaG9uIGxhbmdlKiB1bmQgKndpZSBzY2hsZWNodCogQmVtZXJrdW5nZW4gZWluCndlbmlnIG9mZi10b3BpYy4uLgoKQlRXIGlzdCBlcyBpbiBPZXN0ZXJyZWljaCBuaWNodCBkdW5rZWwuIERBUyBTdWJqZWN0IHdhciBpbiBqZWRlbQpGYWxsIHNlbHRlbiBkYWVtbGljaCA6KQoKCldvb2R5Li0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERlZXBibHVlISBBcmdzISAoTm9ubmUsICAyLiBBdWcgMjAwMCwgMDk6NTQ6NTgpOgp+IyEgcm49SGlnaHQgcnQ9OTY1MTcxNTA1IHJnPXdpdHplCn4jISB0aWQ9OTY1MTU0MjA1CkZ1ZXIgTGV1dGUsIGRpZSBkaWUgV2l0emUgbW9lZ2VuOiBEaWUgc2luZCBhdXNuYWhtc2xvcyBhbGxlIGVudHdlZGVyIGF1Zgp3d3cuYXV0c2NoLmRlIG9kZXIgd3d3LmtyYWVoc2VpdGUuZGUgenUgZmluZGVuLiBEYW5uIHNwYXJ0IERlcHBCbHVlIHNpY2ggYXVjaApkaWUgQ3V0JlBhc3QtT3JnaWVuIChjOwoKTm9ubmUsIGtlbm50IGRpZSBhdWNoIGltbWVyIHNjaG9uIGFsbGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgogOikgKE5pY29sYWksIDEwLiBBdWcgMjAwMCwgMTM6MDk6NTQpOgoKRnJpZWRlbCByaWNodGV0IHNlaW4gS2VyYmhvbHogYXVmIERpY2guRXMgdmlicmllcnQgc3RhcmsuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aWUgd2Foci4uLiAoR25vbWUsIDE1LiBBdWcgMjAwMCwgMTk6MjA6MTcpOgpEZWluZSBGcmV1bmRpbiBBcmFuY2lhIHRlaWx0IERpciBtaXQ6IDJ0amEsIDJpY2ggMmhhYjMgMm1pciAyZ2VyYWRlIDJhcGZlbHNhZnQKRGVpbmUgRnJldW5kaW4gQXJhbmNpYSB0ZWlsdCBEaXIgbWl0OiAyYXVmIDJkaWUgMnRhN3N0YXR1ciAyZ2VzY2h1ZXR0ZXQgMnVuNGQKRGVpbmUgRnJldW5kaW4gQXJhbmNpYSB0ZWlsdCBEaXIgbWl0OiAyaXJnZW40ZHdpZSAyaXN0IDJpaHIgMmRhcyAyd29obCAybjRpY2h0CkRlaW5lIEZyZXVuZGluIEFyYW5jaWEgdGVpbHQgRGlyIG1pdDogMmIzZWtvbW1lbjQ3IDIqc2V1ZnoqIDIgMmljaCAyN211c3MKRGVpbmUgRnJldW5kaW4gQXJhbmNpYSB0ZWlsdCBEaXIgbWl0OiAyd29saCAyZXJzZzd0bWFsIDJzY2hhdW40IDJkYXNzIDJpY2gKRGVpbmUgRnJldW5kaW4gQXJhbmNpYSB0ZWlsdCBEaXIgbWl0OiAyZGFzIDJ3aWVkZXIgMmluNCAyb3JkbjR1bjRnIDJrcmllZ2UKCip3YWVseioKCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphY2h0dW5nIGVuZ2xpc2NoIDstKSAoSmVuYW5kcmEsIDE3LiBBdWcgMjAwMCwgMDk6Mjk6MDcpOgpUaGVyZSBpcyBhIHN0b3J5IGFib3V0IGEgc2VsZi1zdHlsZWQgbGV4aWNvZ3JhcGhlciB0YWxraW5nIHdpdGggR2VvcmdlCkJlcm5hcmQgU2hhdyBhYm91dCBjdXJpb3NpdGllcyBpbiB0aGUgRW5nbGlzaCBsYW5ndWFnZToKIAogICAgTGV4aWNvZ3JhcGhlcjogICBJdCdzIGludGVyZXN0aW5nIHRvIG5vdGUgdGhhdCB0aGVyZSBhcmUKICAgICAgICAgICAgICAgICAgICAgb25seSB0d28gd29yZHMgaW4gdGhlIEVuZ2xpc2ggbGFuZ3VhZ2Ugd2hlcmUKICAgICAgICAgICAgICAgICAgICAgdGhlIGxldHRlciBjb21iaW5hdGlvbiAnc3UnIGlzIHByb25vdW5jZWQKICAgICAgICAgICAgICAgICAgICAgJ3NodSc6IHN1Z2FyIGFuZCBzdW1hYy4gIERpZCB5b3Uga25vdyB0aGF0LAogICAgICAgICAgICAgICAgICAgICBNci4gU2hhdz8KIAogICAgRyBCIFNoYXc6ICAgICAgICBTdXJlLiAgCgpKZW5hbmRyYSwga2ljaGVybmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphY2h0dW5nLCBlbmdsaXNjaCB1bmQgbGFlbmdlciA7LSkgKEplbmFuZHJhLCAxNy4gQXVnIDIwMDAsIDIzOjU2OjA2KToKVGhpbmdzIFlvdSBMZWFybiBGcm9tIHRoZSBNb3ZpZXM6CiAgPgogID4gMS4gTGFyZ2UsIGxvZnQtc3R5bGUgYXBhcnRtZW50cyBpbiBOZXcgWW9yayBDaXR5IGFyZSB3ZWxsCiAgPiB3aXRoaW4gdGhlIHByaWNlIHJhbmdlIG9mIG1vc3QgcGVvcGxlLS13aGV0aGVyIHRoZXkgYXJlCiAgPiBlbXBsb3llZCBvciBub3QuCiAgPgogID4gMi4gQXQgbGVhc3Qgb25lIG9mIGEgcGFpciBvZiBpZGVudGljYWwgdHdpbnMgaXMgYm9ybiBldmlsLgogID4KICA+IDMuIFNob3VsZCB5b3UgZGVjaWRlIHRvIGRlZnVzZSBhIGJvbWIsIGRvbid0IHdvcnJ5IHdoaWNoIHdpcmUKICA+IHRvIGN1dC4gWW91IHdpbGwgYWx3YXlzIGNob29zZSB0aGUgcmlnaHQgb25lLgogID4KICA+IDQuIE1vc3QgbGFwdG9wIGNvbXB1dGVycyBhcmUgcG93ZXJmdWwgZW5vdWdoIHRvIG92ZXJyaWRlIHRoZQogID4gY29tbXVuaWNhdGlvbnMgc3lzdGVtIG9mIGFueSBpbnZhZGluZyBhbGllbiBzb2NpZXR5LgogID4KICA+IDUuIEl0IGRvZXMgbm90IG1hdHRlciBpZiB5b3UgYXJlIGhlYXZpbHkgb3V0bnVtYmVyZWQgaW4gYQogID4gZmlnaHQgaW52b2x2aW5nIG1hcnRpYWwgYXJ0czogeW91ciBlbmVtaWVzIHdpbGwgd2FpdCBwYXRpZW50bHkKICA+IHRvIGF0dGFjayB5b3Ugb25lIGJ5IG9uZSBieSBkYW5jaW5nIGFyb3VuZCBpbiBhIHRocmVhdGVuaW5nCiAgPiBtYW5uZXIgdW50aWwgeW91IGhhdmUga25vY2tlZCBvdXQgdGhlaXIgcHJlZGVjZXNzb3JzLgogID4KICA+IDYuIFdoZW4geW91IHR1cm4gb3V0IHRoZSBsaWdodCB0byBnbyB0byBiZWQsIGV2ZXJ5dGhpbmcgaW4KICA+IHlvdXIgYmVkcm9vbSB3aWxsIHN0aWxsIGJlIGNsZWFybHkgdmlzaWJsZSwganVzdCBzbGlnaHRseQogID4gYmx1aXNoLgogID4KICA+IDcuIElmIHlvdSBhcmUgYmxvbmRlIGFuZCBwcmV0dHksIGl0IGlzIHBvc3NpYmxlIHRvIGJlY29tZSBhCiAgPiB3b3JsZCBleHBlcnQgb24gbnVjbGVhciBmaXNzaW9uIGF0IHRoZSBhZ2Ugb2YgMjIuCiAgPgogID4gOC4gSG9uZXN0IGFuZCBoYXJkIHdvcmtpbmcgcG9saWNlbWVuIGFyZSB0cmFkaXRpb25hbGx5IGd1bm5lZAogID4gZG93biB0aHJlZSBkYXlzIGJlZm9yZSB0aGVpciByZXRpcmVtZW50LgogID4KICA+IDkuIFJhdGhlciB0aGFuIHdhc3RpbmcgYnVsbGV0cywgbWVnYWxvbWFuaWFjcyBwcmVmZXIgdG8ga2lsbAogID4gdGhlaXIgYXJjaCBlbmVtaWVzIHVzaW5nIGNvbXBsaWNhdGVkIG1hY2hpbmVyeSBpbnZvbHZpbmcgIAogID4gZnVzZXMsIHB1bGxleSBzeXN0ZW1zLCBkZWFkbHkgZ2Fzc2VzLCBsYXNlcnMsIGFuZCBtYW4tZWF0aW5nCiAgPiBzaGFya3MsIHdoaWNoIHdpbGwgYWxsb3cgdGhlaXIgY2FwdGl2ZXMgYXQgbGVhc3QgMjAgbWludXRlcyB0bwogID4gZXNjYXBlLgogID4KICA+IDEwLiBBbGwgYmVkcyBoYXZlIHNwZWNpYWwgTC1zaGFwZWQgY292ZXIgc2hlZXRzIHRoYXQgcmVhY2gKICA+IHRoZSBhcm1waXQgbGV2ZWwgb24gYSB3b21hbiBidXQgb25seSB0byB3YWlzdCBsZXZlbCBvbiB0aGUgbWFuCiAgPiBseWluZyBiZXNpZGUgaGVyLgogID4KICA+IDExLiBBbGwgZ3JvY2VyeSBzaG9wcGluZyBiYWdzIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHN0aWNrIG9mCiAgPiBGcmVuY2ggYnJlYWQuCiAgPgogID4gMTIuIEl0J3MgZWFzeSBmb3IgYW55b25lIHRvIGxhbmQgYSBwbGFuZSBwcm92aWRpbmcgdGhlcmUgaXMKICA+IHNvbWVvbmUgaW4gdGhlIGNvbnRyb2wgdG93ZXIgdG8gdGFsayB5b3UgZG93bi4KICA+CiAgPiAxMy4gT25jZSBhcHBsaWVkLCBsaXBzdGljayB3aWxsIG5ldmVyIHJ1YiBvZmYtLWV2ZW4gd2hpbGUKICA+IHNjdWJhIGRpdmluZy4KICA+CiAgPiAxNC4gWW91J3JlIHZlcnkgbGlrZWx5IHRvIHN1cnZpdmUgYW55IGJhdHRsZSBpbiBhbnkgd2FyCiAgPiB1bmxlc3MgeW91IG1ha2UgdGhlIG1pc3Rha2Ugb2Ygc2hvd2luZyBzb21lb25lIGEgcGljdHVyZSBvZgogID4geW91ciBzd2VldGhlYXJ0IGJhY2sgaG9tZS4KICA+CiAgPiAxNS4gU2hvdWxkIHlvdSB3aXNoIHRvIHBhc3MgeW91cnNlbGYgb2ZmIGFzIGEgR2VybWFuIG9yCiAgPiBSdXNzaWFuIG9mZmljZXIsIGl0IHdpbGwgbm90IGJlIG5lY2Vzc2FyeSB0byBzcGVhayB0aGUKICA+IGxhbmd1YWdlLiBBIEdlcm1hbiBvciBSdXNzaWFuIGFjY2VudCB3aWxsIGRvLgogID4KICA+IDE2LiBUaGUgRWlmZmVsIFRvd2VyIGNhbiBiZSBzZWVuIGZyb20gYW55IHdpbmRvdyBpbiBQYXJpcy4KICA+CiAgPiAxNy4gQSBtYW4gd2lsbCBzaG93IG5vIHBhaW4gd2hpbGUgdGFraW5nIHRoZSBtb3N0IGZlcm9jaW91cwogID4gYmVhdGluZywgYnV0IHdpbGwgd2luY2Ugd2hlbiBhIHdvbWFuIHRyaWVzIHRvIGNsZWFuIGhpcwogID4gd291bmRzLgogID4KICA+IDE4LiBJZiBhIGxhcmdlIHBhbmUgb2YgZ2xhc3MgaXMgdmlzaWJsZSwgc29tZW9uZSB3aWxsIGJlCiAgPiB0aHJvd24gdGhyb3VnaCBpdCBiZWZvcmUgbG9uZy4KICA+CiAgPiAxOS4gSWYgc3RheWluZyBpbiBhIGhhdW50ZWQgaG91c2UsIHdvbWVuIHNob3VsZCBpbnZlc3RpZ2F0ZQogID4gYW55IHN0cmFuZ2Ugbm9pc2VzIGluIHRoZWlyIG1vc3QgcmV2ZWFsaW5nIHVuZGVyd2Vhci4gICAgICAKICA+CiAgPiAyMC4gV29yZCBwcm9jZXNzb3JzIG5ldmVyIGRpc3BsYXkgYSBjdXJzb3Igb24gc2NyZWVuIGJ1dCB3aWxsIAogID4gYWx3YXlzIHNheTogRW50ZXIgUGFzc3dvcmQgTm93LgogID4KICA+IDIxLiBFdmVuIHdoZW4gZHJpdmluZyBkb3duIGEgcGVyZmVjdGx5IHN0cmFpZ2h0IHJvYWQsIGl0IGlzCiAgPiBuZWNlc3NhcnkgdG8gdHVybiB0aGUgc3RlZXJpbmcgd2hlZWwgdmlnb3JvdXNseSBmcm9tIGxlZnQgdG8KICA+IHJpZ2h0IGV2ZXJ5IGZldyBtb21lbnRzLgogID4KICA+IDIyLiBBbGwgYm9tYnMgYXJlIGZpdHRlZCB3aXRoIGVsZWN0cm9uaWMgdGltaW5nIGRldmljZXMgd2l0aAogID4gbGFyZ2UgcmVkIHJlYWRvdXRzIHNvIHlvdSBrbm93IGV4YWN0bHkgd2hlbiB0aGV5J3JlIGdvaW5nIHRvCiAgPiBnbyBvZmYuCiAgPgogID4gMjMuIEEgZGV0ZWN0aXZlIGNhbiBvbmx5IHNvbHZlIGEgY2FzZSBvbmNlIGhlIGhhcyBiZWVuCiAgPiBzdXNwZW5kZWQgZnJvbSBkdXR5LgogID4KICA+IDI0LiBJZiB5b3UgZGVjaWRlIHRvIHN0YXJ0IGRhbmNpbmcgaW4gdGhlIHN0cmVldCwgZXZlcnlvbmUKICA+IHlvdSBtZWV0IHdpbGwga25vdyBhbGwgdGhlIHN0ZXBzLgogID4KICA+IDI1LiBQb2xpY2UgZGVwYXJ0bWVudHMgZ2l2ZSB0aGVpciBvZmZpY2VycyBwZXJzb25hbGl0eSB0ZXN0cwogID4gdG8gbWFrZSBzdXJlIHRoZXkgYXJlIGRlbGliZXJhdGVseSBhc3NpZ25lZCBhIHBhcnRuZXIgd2hvIGlzCiAgPiB0aGVpciB0b3RhbCBvcHBvc2l0ZS4KICA+CiAgPiAyNi4gV2hlbiB0aGV5IGFyZSBhbG9uZSwgYWxsIGZvcmVpZ24gbWlsaXRhcnkgb2ZmaWNlcnMgcHJlZmVyCiAgPiB0byBzcGVhayB0byBlYWNoIG90aGVyIGluIEVuZ2xpc2guICAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmV0dGVsbiBoZXV0ZSAoQXJrLCAyNS4gQXVnIDIwMDAsIDIxOjIwOjI5KToKRHJlaSBCZXR0bGVyIHNpdHplbiBpbiBOZXcgWW9yay4KRGVyIGVyc3RlIHNjaHJlaWJ0IGF1ZiBzZWluZSBrYXB1dHRlIEJsZWNodGFzc2UgIkJldHRlbG4iLAp1bmQgbmFjaCBlaW5lbSBUYWcgaGF0IGVyIDEwIERvbGxhci4KRGVyIHp3ZWl0ZSBzY2hyZWlidCAiYmV0dGVsbi5jb20iIGF1ZiBzZWluZSBUYXNzZSwgdW5kIG5hY2gKZWluZW0gVGFnIGhhdCBlciAxMC4wMDAgRG9sbGFyLiBFaW5lciB3b2xsdGUgaWhuIHNvZ2FyIG1pdAp6dXIgTkFTREFRIG5laG1lbi4KRGVyIGRyaXR0ZSBzY2hyZWlidCAiZS1iZXR0ZWxuLmNvbSIgYXVmIHNlaW5lIEJsZWNodGFzc2UuCklCTSB1bmQgSFAgc2FuZHRlbiBJaHJlIFZpemVwcmFlc2lkZW50ZW4genUgaWhtLCB1bSB1ZWJlciBlaW5lCnN0cmF0ZWdpc2NoZSBBbGxpYW56IHp1IGRpc2t1dGllcmVuLCBib3RlbiBpaG0ga29zdGVubG9zZQpIYXJkd2FyZSB1bmQgcHJvZmVzc2lvbmVsbGUgQmVyYXR1bmcgYW4uIExhcnJ5IEVsbGlzb24KdmVya3VlbmRldGUgYXVmIENOQkMsIGRhc3MgZS1iZXR0ZWxuIHp1IDk1JSBtaXQgT1JBQ0xFClRlY2hub2xvZ2llIGFyYmVpdGUuIFVuZCBDaXNjbyBsaWVzcyBsYXV0c3RhcmsgdmVybGF1dGVuLApkYXNzIHNvIGd1dCB3aWUgZGVyIGtvbXBsZXR0ZSBlLWJldHRlbG4gRGF0ZW52ZXJrZWhyIHVlYmVyCmlocmUgU3dpdGNoZXMgdW5kIFJvdXRlciBsYWV1ZnQuCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJ0aWtlbCAoQ2hyaXN0b3BoZXIsIDI1LiBBdWcgMjAwMCwgMjI6MDU6NTUpOgpFYnJhIHN0ZWh0IGF1ZiBkZXIgU2Nod2VsbGUgZGVzIFRvZGVzLgogIC4uLi5ub3JtYWwvVGhlYXRlcm1lc3NlIER1Li4uLi4uLi4uLi4gOiBFYnJhLi4uLi4uLi4uICoqKioqKioqIC0+IGdla3JhdHp0CiBXYXMgZGFzIE1lc3NlciBzbyBhbGxlcyBrYW5uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJ0aWtlbCAoQW5hY3Jpb24sIDI2LiBBdWcgMjAwMCwgMTk6MTM6MDYpOgp+IyEgcm49Q2hyaXN0b3BoZXIgcnQ9OTY3MjMzOTU1IHJnPXdpdHplCn4jISB0aWQ9OTY3MjMzOTU1CktBZW1wZmVyIGFid2VydGVuLCBkYSBzaWUgLi4KCmEpIEVicmEgbWl0IG5lbSBUaGVhdGVybWVzc2VyIHNjaGFkZW4gbWFjaGVuIGtvZW5uZW4KYikgZXMgc2ljaCBsZWlzdGVuIGtvZW5uZW4sIGJlaSBlYnJhIG1pdCBuZW0gdGhlYXRlcm1lc3NlciBydW16dXN0ZWhlbgpjKSBkYXMgYXVjaCBub2NoIGZ1ZXIgZ3V0ciBiZWZpbmRlbgoKCkFuYWMqIHN0YXVudAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2Vpc2hlaXQgZGVzIFRhZ2VzLi4uLiAoQW5hdG9sLCAyOC4gQXVnIDIwMDAsIDIzOjQxOjU1KToKVW5nZWxvZ2VuOgoKICAgUGFkcmVpYyBpZ25vcmllcnQgRmVobGVyLgoKQW5hdG9sIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2Vpc2hlaXQgZGVzIFRhZ2VzLi4uLiAoUm9jaHVzLCAyOC4gQXVnIDIwMDAsIDIzOjQyOjI5KToKfiMhIHJuPUFuYXRvbCBydD05Njc0OTg5MTUgcmc9d2l0emUKfiMhIHRpZD05Njc0OTg5MTUKSWNoIGZpbmRlIGRhcyBhYmVyIHNjaG9uIG5pY2h0IG1laHIgd2l0emlnLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlaXNoZWl0IGRlcyBUYWdlcy4uLi4gKExpYXJhLCAyOC4gQXVnIDIwMDAsIDIzOjQzOjIxKToKfiMhIHJuPVJvY2h1cyBydD05Njc0OTg5NDkgcmc9d2l0emUKfiMhIHRpZD05Njc0OTg5MTUKSWhyIHNvbGx0ZXQgZGFzIElnbm9yaWVyZSBtYWwgcmVwYXJpZXJlbi4KCkxpYXJhLCBad2VyZ2VuemF1YmVyaW5lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXZWlzaGVpdCBkZXMgVGFnZXMuLi4uIChNdXBmZWwsIDI5LiBBdWcgMjAwMCwgMDA6MDM6MjcpOgp+IyEgcm49TGlhcmEgcnQ9OTY3NDk5MDAxIHJnPXdpdHplCn4jISB0aWQ9OTY3NDk4OTE1CkVyZnJpc2NoZW5kLCBkaWVzZSBSZWFrdGlvbmVuIDspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2Vpc2hlaXQgZGVzIFRhZ2VzLi4uLiAoUm9uZGEsIDI5LiBBdWcgMjAwMCwgMTg6MDQ6MTApOgp+IyEgcm49TXVwZmVsIHJ0PTk2NzUwMDIwNyByZz13aXR6ZQp+IyEgdGlkPTk2NzQ5ODkxNQpIbW1tLi4uIGphLCBpZ25vcmllcmUgaXN0IGtsYXNzZS4uLgoKLS0gc2NobmlwcGVsIC0tCj5pZ25vcmllcmUgaWdub3JpZXJlCkR1IGlnbm9yaWVyc3QgamV0enQgZm9sZ2VuZGUgTWl0dGVpbHVuZ2VuOiBpZ25vcmllcmUuIAotLSBzY2huaXBwZWwgLS0gCldhcyBpZ25vcmllciBpY2ggamV0enQgZWlnZW50bGljaD8gV2VubiBtaWNoIHdlciBpZ25vcmllcnQ/IE9kZXIgaWdub3JpZXJlCmlnbm9yaWVydCBzaWNoIHNlbGJzdC4uLiBvZGVyIHdpZT8gT2RlciB3YXM/CgpSb25kYSAqaW5nLi4uc2NobWFycm50IHJ1bSouCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBXZWlzaGVpdCBkZXMgVGFnZXMuLi4uIChHbG9pbnNvbiwgMjkuIEF1ZyAyMDAwLCAyMzo0MDoyOCk6Cn4jISBybj1Sb25kYSBydD05Njc1NjUwNTAgcmc9d2l0emUKfiMhIHRpZD05Njc0OTg5MTUKSmEsIG5hY2ggZGVyIFZlcnN0YWVuZG5pc3dlaXNlIGRlcyBJZ25vcmllcmVucyBoaWVyIGlnbm9yaWVyc3QgRHUgamV0enQgYWxzbywKd2VubiBEaWNoIGplbWFuZCBpZ25vcmllcnQuIFNvenVzYWdlbiBkZXIgT21iYXRpcyBvZGVyIEhpcHBlLU1vZHVzLgpKZXR6dCBNdXNzdCBEdSBudXIgbm9jaCBlaW5lbiBFTSBkYXp1IGJld2VnZW4sIGRhc3Mgb3JkZW50bGljaCB6dQp1bnRlcnN0dWV0emVuIDspCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcnV0aGFobi1SZXplcHQgKERpZWRlciwgMzEuIEF1ZyAyMDAwLCAxNDoxMjo0Nik6Ck1hbiBrYXVmZSBlaW5lbiBUcnV0aGFobiB2b24gZnVlbmYgS2lsbyAoZnVlciA2IFBlcnMuKSB1bmQgZWluZSBGbGFzY2hlCldoaXNreS4gRGF6dSBTYWx6LCBQZmVmZmVyLCBPbGl2ZW5vZWwgdW5kIFNwZWNrc3RyZWlmZW4uCgpUcnV0aGFobiBtaXQgU3BlY2tzdHJlaWZlbiBiZWxlZ2VuLCBzY2hudWVyZW4sIHNhbHplbiwgcGZlZmZlcm4gdW5kCmV0d2FzIE9saXZlbm9lbCBkYXp1IGdlYmVuLiBPZmVuIGF1ZiAyMDAgR3JhZCBlaW5zdGVsbGVuLiBEYW5uIGVpbiBHbGFzCldoaXNreSBlaW5zY2hlbmtlbiB1bmQgYXVmIGd1dGVzIEdlbGluZ2VuIHRyaW5rZW4uIEFuc2NobGllc3NlbmQgZGVuIApUcnV0aGFobiBhdWYgZWluZW0gQmFja2JsZWNoIGluIGRlbiBPZmVuIHNjaGllYmVuLgoKTnVuIHNjaGVua2UgbWFuIHNpY2ggendlaSBzY2huZWxsZSBHbGFlc2VyIFdoaXNreSBlaW4gdW5kIHRyaW5rZSB3aWVkZXIKYXVmIGVpbiBndXRlcyBHZWxpbmdlbi4gRGFzIFRoZXJtb3N0YXQgbmFjaCAyMCBNaW4uIGF1ZiAyNTAgR3JhZCBzdGVsbGVuLApkYW1pdCBlcyBvcmRlbnRsaWNoIGJydW1tdC4gRGFuYWNoIHNjaGVua3QgbWFuIHNpY2ggZHJlaSB3ZWl0ZXJlCldoaXNreSBlaW4uCgpOYWNoIGhhbG0gU2NoZHVuZGUgb2VmZm5lbiwgd2VuZGVuIHVuZCBkZW4gQnJhdGVuIHVlYmVyc2FjaG4uIERpZQpGaXNza2llZmxhc2NoZSBlcmdyZWlmZiB1bm4gc2ljaCBlaW5zIGhpbm5lciBkaWUgQmluZGUga2lwcC4KTmFjaCduZXIgd2VpdGVyZW4gYWxiZXJuZW4gU2NodW5uZGUgbGFuZ3NhbSBiaXMgenp1bSBPZmVuCmhpbnNjaGxlbmRlcm4gdW5kIGRpZSBUcnVkZSBydW13ZW5kZW4uIERhcmF1ZiBhY2h0biwgc2lzY2gKbml0dCBkaWUgSGFuZCB6dSBWYWJyZW5uIGFuIGllIFNjaGFpc3MtT2hmbmR1ZXIuClNpc2NoIHdhaWRlcmUgZmZ1ZW5mZiBvZGRhIHNpZWhtIFdpeGtpIGlubmVtIEdsYXMKc2lzY2ggdW5uIGRhbm4gdW5uIHNvLiBEaWUgRHJ1dGUgd2VlaHJlbnQgZHJyYWkgU2NodW5uJ250IChpc3MgYXVjaAplZ2FsISkKd2FpZGVyYnJhYW4gdW5kIGFsbCBzc2VobiBNaW51ZCduIHBpbmtlbG4uCgpXZW5uIHVlZXJudHdpIG1vZWNobGlzY2gsIHNzdW1tIFRydXRoYWhuIGhpbmtyaWVzY2huIHVubiBkZW4gT2h3bgphdXMnbSBWaWVjaCB6aWVobi4gTm9tbWFsIGVpbiBTY2hsdWdnIGdlbmVlbWlnbiB1bmQgYW5zY2hsaWVzbnQgd2lkYQpmYXN1Y2hlbiwgZGFzIEJpZXN0IHJhdXN6dWtyaWVnZW4uCgpEZW4gZmFkYW1tdCduIFZvZ2VsIHZvbSBCb2RuIGF1ZmZsYWVzZW4gdW5uIHVmZiduZXIgQmxhZGRlCmhpbnJpY2h0ZW4uIFVmZmJhc3NlLCBkYXNzIG5pdHQgQXVzcnV0c2NobiBhdWZmJ20gc2NoYWlzc2ZmZXR0aWNobgpLdWVobmJvZG4uIFdlbm4gc2lzY2ggZHJvc3NkZW0gbml0dCBmYW1laWRlbiAtIGZhc3VobiB3aWRhCmF1ZnNzdXNjaGljaHRub2RlcnNvaGFoYWhhaXNhbGxlc2phZWVlaHNjaGVpc3NlZ2FhbCEKCk51biBlaW4gd2VuaWcgc2NobGFmZW4gdW5kIGFtIG5hZWNoc3RlbiBUYWcgZGVuIFRydXRoYWhuIG1pdApNYXlvbmFpc3NlICYgQXNwaXJpbiBrYWx0IGVzc2VuLgoKCgpEaWVkZXIgOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVHJ1dGhhaG4tUmV6ZXB0IChZZW5kaSwgMzEuIEF1ZyAyMDAwLCAxNDoxODozMik6Cn4jISBybj1EaWVkZXIgcnQ9OTY3NzIzOTY2IHJnPXdpdHplCn4jISB0aWQ9OTY3NzIzOTY2CkRhcyB3YXIgdmVybXV0bGljaCBlaW4gYW1lcmlrYW5pc2NoZXIgV2l0eiwgb2Rlcj8gU29uc3QgZmluZGV0IGRpZSBGZXVlcndlaHIKbmFlbWxpY2ggbmFjaCBlaW4gcGFhciBTdHVuZGVuIG51ciBub2NoIGVpbmUgYXVzZ2VicmFubnRlIEt1ZWNoZSB1bmQgZWluCkhhZXVmbGVpbiBBc2NoZSwgZGllIG5hY2ggV2hpc2t5IHN0aW5rdC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUcnV0aGFobi1SZXplcHQgKEF0b3osICAxLiBTZXAgMjAwMCwgMTM6MzQ6NDYpOgp+IyEgcm49RGllZGVyIHJ0PTk2NzcyMzk2NiByZz13aXR6ZQp+IyEgdGlkPTk2NzcyMzk2NgpXaWVvcyBkaWVzZXM/CipuaXhyYWZmKgpBdG96CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRydXRoYWhuLVJlemVwdCAoQXBzdSwgIDMuIFNlcCAyMDAwLCAwMjoxNToyOCk6Cn4jISBybj1ZZW5kaSBydD05Njc3MjQzMTIgcmc9d2l0emUKfiMhIHRpZD05Njc3MjM5NjYKbmFjaCBCT1VSQk9OLCBuaWNodCBuYWNoIGVpbmVtIGFuc3RhZW5kaWdlbiBHZXNvZWZmLi4uCkFwc3UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClp1a3VuZnQgZGVyIElULUJyYW5jaGUgKFRzdW5hbWksICA2LiBTZXAgMjAwMCwgMTk6Mzk6MDQpOgoKSGFsbG8sIGljaCBiaW4gTWlrZSB1bmQgaWNoIGJlZ3J1ZXNzZSBzaWUgYWxsZSB6dSBlaW5lciBuZXVlbiBGb2xnZQp2b24gQW1hemluZyBEaXNjb3Zlcmllcy4gSGV1dGUgaGFiZW4gd2lyIGVpbmVuIEdhc3QgZXh0cmEgYXVzCkVuZ2xhbmQgenUgdW5zIGVpbmZsaWVnZW4gbGFzc2VuLCBKb2huLCB1bmQgSm9obiBoYXQgdW5zIGV0d2FzCm1pdGdlYnJhY2h0LgoKLSBXaWxsa29tbWVuIEpvaG4hCgotIERhbmtlIE1pa2UuCgotIFdhcyBoYXN0IGR1IG1pdGdlYnJhY2h0LCBKb2huPwoKLSBOdW4gTWlrZSwgaWNoIGhhYiBoaWVyIGV0d2FzIGdhbnogYmVzb25kZXJlcy4gRXR3YXMsIHdvcmF1ZgogIGRpZSBnYW56ZSBXZWx0IGdld2FydGV0IGhhdC4KCi0gVW5nbGF1YmxpY2gsIHNhZyB1bnMgc2NobmVsbCB3YXMgZXMgaXN0Li4uCgotIEljaCBoYWIgaGllciBlaW4gd2Vpc3NlcyB2aWVyZWNraWdlcyBNYXRlcmlhbCB1bmQgZWluCiAgU3RvZWNrY2hlbi4gU2llIHdlcmRlbiBzaWNoIGpldHp0IGZyYWdlbiwgIndhcyBpc3QgZGFzIG51biBzY2hvbgogIHdpZWRlcj8iCgotIEphLCB3aXIgc2luZCBzY2hvbiBnYW56IGdlc3Bhbm50IEpvaG4uIFNwYW5uIHVucyBuaWNodAogIGxhZW5nZXIgYXVmIGRpZSBGb2x0ZXIuLi4KCi0gTnVuIE1pa2UsIHdlbm4gaWNoIGRpZXNlcyBTdG9lY2tjaGVuIHVlYmVyIGRhcyB3ZWlzc2UKICBNYXRlcmlhbCBiZXdlZ2UsIGRhbm4gdmVyZmFlcmJ0IHNpY2ggZGllc2VzIGdlbmF1IGFuIGplbmVuCiAgU3RlbGxlbiwgd28gZGFzIFN0b2Vja2NoZW4gZGFzIHdlaXNzZSBNYXRlcmlhbCBiZXJ1ZWhydCBoYXQuCgotIERhcyBpc3QgamEgdW5nbGF1YmxpY2guLi4uCgotIEphLCBhYmVyIGRhcyBpc3Qgbm9jaCBuaWNodCBhbGxlcyBNaWtlLiBXZW5uIGljaCBtaXQgZGVtCiAgU3RvZWNrY2hlbiwgZGFzIG1hbiB1ZWJyaWdlbnMgZWluZW4gQmxlaXN0aWZ0IG5lbm50LCBlaW5lbgogIEJ1Y2hzdGFiZW4sIHNvIGVpbmVuIHdpZSBtYW4gaWhuIG5vcm1hbGVyd2Vpc2UgYXVmIHNlaW5lbgogIENvbXB1dGVyYmlsZHNjaGlybSBzaWVodCwgYXVmIGRhcyBNYXRlcmlhbCB6ZWljaG5lLi4uCgotIFVuZ2xhdWJsaWNoLCBsYW5nc2FtIGJlZ3JlaWZlIGljaCBlcy4gQWxzbyB3ZW5uIG1hbiBtZWhyZXJlCiAgQnVjaHN0YWJlbiBuZWJlbmVpbmFuZGVyIHplaWNobmV0LCBkYW5uIGthbm4gbWFuIHNvZ2FyIGxlc2VuLAogIG9obmUgZWluZW4gQmlsZHNjaGlybSB6dSBiZW5vZXRpZ2VuLgoKLSBEYXMgaXN0IHRhdHNhZWNobGljaCBzbyBNaWtlLCBkdSBiZWdyZWlmc3QgZXMuIERhcyBNYXRlcmlhbAogIG5lbm50IG1hbiB1ZWJyaWdlbnMgUGFwaWVyLgoKLSBVbmdsYXVibGljaC4gQWxzbyB3ZW5uIGRhcyBrZWluZSBBbWF6aW5nIERpc2NvdmVyeSBpc3QuLi4gVW5kCiAgbWFuIGJlbm9ldGlndCBkYWZ1ZXIgdWViZXJoYXVwdCBrZWluZW4gU3Ryb20/CgotIE5laW4sIG5laW4gTWlrZSwgZmFudGFzdGlzY2gsIG5pY2h0PyBNYW4gYnJhdWNodCBzZWxic3Qga2VpbmUKICBCYXR0ZXJpZW4gb2RlciBBa2t1cy4KCi0gSnVuZ2UsIEp1bmdlIGRhcyBpc3QgamEgdW5nbGF1YmxpY2guIEhhIEpvaG4sIGR1IGhhc3QgZXMKICB6dWdla2xhcHB0LiBEYXMga2FubiBpY2ggbWl0IG1laW5lbSBOb3RlYm9vayBhdWNoLgoKLSBOZWluIE1pa2UsIGRhcyBpc3QgYW5kZXJzLCBkdSBrYW5uc3QgZXMgc28gb2Z0IGZhbHRlbiwgd2llCiAgZHUgd2lsbHN0LCBiaXMgZXMgZGFzIGdld3VlbnNjaHRlIE1hc3MgaGF0LgoKLSBIZXksIGR1IGhvZXJzdCBqYSBnYXIgbmljaHQgbWVociBhdWYgenUgZmFsdGVuIHVuZCBlcyB3aXJkCiAgaW1tZXIga2xlaW5lciB1bmQga2xlaW5lci4gSmV0enQgcGFzc3QgZXMgc29nYXIgaW4gbWVpbmUgQnJpZWZ0YXNjaGUuCiAgRGFzIGlzdCBqYSBVbmdsYXVibGljaCwgamV0enQga2FubiBpY2ggZXMgaW1tZXIgYmVpIG1pciB0cmFnZW4uIERhcmYKICBpY2ggZXMgbWFsIGZlc3RoYWx0ZW4/CgotIEFiZXIgbmF0dWVybGljaCBNaWtlLiBIaWVyIGhhbHQgbWFsLgoKLSBEYXMgaXN0IGphIHVuZ2xhdWJsaWNoIEpvaG4sIGVzIHdpZWd0IGJlaW5haCBuaWNodHMuCgotIERhcyBzdGltbXQgTWlrZS4gRXMgaXN0IDEwMCBtYWwgbGVpY2h0ZXIgYWxzIGRhcyBrbGVpbnN0ZQogIE5vdGVib29rLgoKLSBLZWluIEFra3UsIDEwMCBtYWwgbGVpY2h0ZXIsIHVuZ2xhdWJsaWNoLCBpY2ggdHJhZXVtZS4KCi0gTmVpbiwgbmVpbiBNaWtlLCBkdSB0cmFldW1zdCBuaWNodC4gSWNoIGtuZWlmIGRpciBtYWwgZWJlbiBpbgogIGRlbiBBcm0uCiAgS2xlaW5lciBTY2hlcnogTWlrZS4uLiBoYSwgaGEsIGhhLi4uIHNjaGF1IGljaCBlbnRmYWx0ZSBlcwogIHdpZWRlciB1bmQuLi4KICBwYXNzIGpldHp0IGd1dCBhdWYuLi4KCi0gQWJlciBKb2huLCB3YXMgdHVzdCBkdSBqZXR6dD8/PyBOZWluLCBkYXMgZ2VodCBkb2NoIG5pY2h0IGR1CiAgemVyZWlzdCBkYXMgUGFwaWVyIGluIHp3ZWkgVGVpbGUuCgotIERpZXNlcyBNYXRlcmlhbCBpc3Qgc28gZmFudGFzdGlzY2gsIHNjaGF1IE1pa2UuIEljaCBoYWx0ZSBkaWUKICB6d2VpIFRlaWxlIGFuZWluYW5kZXIgdW5kIG1hbiBrYW5uIGVzIGltbWVyIG5vY2ggbGVzZW4uCgotIFVuZ2xhdWJsaWNoLCBkYXMgc29sbHRlIG1hbiBtYWwgbWl0IGVpbmVyIERpc2tldHRlIHByb2JpZXJlbiwKICBoYSBoYSBoYS4gQWJlciB3YXMgdHVzdCBkdSBqZXR6dD8gTmVpbiwgdHUncyBuaWNodCEhISBOaWNodCBkYXJhdWYKICBoZXJ1bXRyYW1wZWxuLgoKLSBLZWluZSBQYW5payBNaWtlLCBzY2hhdSBtYWwuLi4KCi0gVW5nbGF1YmxpY2gsIHVuZCBtYW4ga2FubiBlcyBpbW1lciBub2NoIGxlc2VuISBTdGVsbHQgZXVjaAogIHZvciBMZXV0ZSwgd2VubiBpaHIgc28gYXVmIGV1cmVuIE1vbml0b3IgaGVydW10cmFtcGVsbiB3dWVyZGV0Li4uCiAgVW5nbGF1YmxpY2gsIHdhcyBmdWVyIGVpbmUgQW1hemluZyBEaXNjb3ZlcnkhIEFiZXIgc2FnIG1hbCBKb2huLAogIHdpZSBsYW5nZSBrYW5uIG1hbiBkYXMgUGFwaWVyIGF1ZmJld2FocmVuPwoKLSBOdW4sIHZpZWwgbGFlbmdlciBhbHMgZWluZSBEaXNrZXR0ZSBvZGVyIGVpbmUgRmVzdHBsYXR0ZSwKICBkZXJlbiBtYWduZXRpc2NoZSBFaWdlbnNjaGFmdGVuIGF1ZiBkaWUgRGF1ZXIgYWJuZWhtZW4uCgotIFVuZ2xhdWJsaWNoLi4uCgotIEFiZXIgZGFzIGlzdCBub2NoIG5pY2h0IGFsbGVzIQoKLSBOZWU/CgotIER1IGthbm5zdCBlcyB1ZWJlcmFsbCBoaW4gbWl0bmVobWVuLCBkdSBrYW5uc3QgZXMgc293b2hsIGJlaQogIGhvaGVuIGFscyBhdWNoIGJlaSBuaWVkcmlnZW4gVGVtcGVyYXR1cmVuIGJlbnV0emVuLiBVbmQgd2VubgogIGR1IGVzIG5pY2h0IG1laHIgYmVub2V0aWdzdCwga2FubnN0IGR1IG5vY2ggaW1tZXIgZGVpbmUgTmFzZQogIGRhbWl0IHB1dHplbiBvZGVyIGF1ZiBkZW0gV0MuLi4uLCBkdSB2ZXJzdGVoc3Qgd2FzIGljaCBtZWluZSwgTWlrZS4KCi0gSmEgSm9obiwgdW5nbGF1YmxpY2guLi4gU2FnIG1hbCwgYWJlciBkYXMgd3VlcmRlIGJlZGV1dGVuLAogIGRhc3Mgd2lyIGVpbmVzIFRhZ2VzIHVlYmVyaGF1cHQga2VpbmUgQ29tcHV0ZXIgdW5kIE5vdGVib29rcyBtZWhyCiAgYnJhdWNoZW4uIEFsc28gSm9obiwgZHUgaGFzdCBtaWNoIHZvbGwgdWViZXJ6ZXVndC4uLgogIE51biBzYWd0IG1hbCBMZXV0ZSwgaXN0IGRhcyBuaWNodCBmYW50YXN0aXNjaD8/PwoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJvYmxlbWUgbWl0IEJpZXIgdW5kIHdpZSBtYW4gc2llIGxvZXN0ISAoVHN1bmFtaSwgIDcuIFNlcCAyMDAwLCAxODo0ODoyMCk6ClBST0JMRU06OiBEYXMgQmllciBpc3QgdW5nZXdvZWhubGljaCBibGVpY2ggdW5kIGdlc2NobWFja2xvcy4KVVJTQUNIRTogIEdsYXMgbGVlciEKTE9FU1VORzogIExhc3NlbiBTaWUgc2ljaCBlaW4gbmV1ZXMgQmllciBicmluZ2VuIQoKUFJPQkxFTTo6RGllIGdlZ2VudWViZXJsaWVnZW5kZSBXYW5kIGlzdCBtaXQgc3RyYWhsZW5kZW0gTGljaHQgYmVkZWNrdC4KVVJTQUNIRTogU2llIHNpbmQgbmFjaCBoaW50ZW4gdW1nZWZhbGxlbiEKTE9FU1VORzogQmluZGVuIFNpZSBzaWNoIGFtIFRyZXNlbiBmZXN0LgoKUFJPQkxFTTogU2llIGhhYmVuIFppZ2FyZXR0ZW5zdHVtbWVsIGltIE11bmQuClVSU0FDSEU6IFNpZSBzaW5kIG5hY2ggdm9ybmUgdW1nZWZhbGxlbi4KTE9FU1VORzogU2llaGUgb2Jlbi4KClBST0JMRU06OkRhcyBCaWVyIHNjaG1lY2t0IG5pY2h0LCB1bmQgZGFzIFQtU2hpcnQgd2lyZCB2b3JuZSBuYXNzLgpVUlNBQ0hFOiBNdW5kIG5pY2h0IGdlb2VmZm5ldCBvZGVyIEdsYXMgYW4gZmFsc2NoZXIgU3RlbGxlIGltIEdlc2ljaHQgCiAgICAgICAgIGFuZ2VzZXR6dC4KTE9FU1VORzogR2VoZW4gU2llIGF1ZiBkaWUgVG9pbGV0dGUgdW5kIHVlYmVuIFNpZSB2b3IgZGVtIFNwaWVnZWwuCgpQUk9CTEVNOiBLYWx0ZSB1bmQgbmFzc2UgRnVlc3NlLgpVUlNBQ0hFOiBEYXMgR2xhcyB3aXJkIGltIGZhbHNjaGVuIFdpbmtlbCBnZWhhbHRlbi4KTE9FU1VORzogRHJlaGVuIFNpZSBkYXMgR2xhcywgYmlzIGRpZSBvZmZlbmUgU2VpdGUgaW4gUmljaHR1bmcgRGVja2UgemVpZ3QuCgpQUk9CTEVNOiBXYXJtZSB1bmQgbmFzc2UgRnVlc3NlLgpVUlNBQ0hFOiBVbmdlbnVlZ2VuZGUgS29udHJvbGxlIGRlciBCbGFzZS4KTE9FU1VORzogU3RlbGxlbiBTaWUgc2ljaCBkaWNodCBuZWJlbiBkZW4gbmFlY2hzdGVuIEh1bmQgdW5kIG1lY2tlcm4gU2llCiAgICAgICAgIHVlYmVyIGRlc3NlbiBtYW5nZWxuZGUgRXJ6aWVodW5nLgoKUFJPQkxFTTogRGVyIEJvZGVuIHdpcmt0IHZlcnNjaHdvbW1lbi4KVVJTQUNIRTogU2llIHNjaGF1ZW4gZHVyY2ggZGVuIEJvZGVuIGVpbmVzIGxlZXJlbiBHbGFzZXMuCkxPRVNVTkc6IExhc3NlbiBTaWUgc2ljaCBlaW4gbmV1ZXMgQmllciBicmluZ2VuIQoKUFJPQkxFTTogRGVyIEJvZGVuIGJld2VndCBzaWNoLgpVUlNBQ0hFOiBTaWUgd2VyZGVuIHJhdXNnZXRyYWdlbi4KTE9FU1VORzogRmluZGVuIFNpZSBoZXJhdXMsIG9iIG1hbiBTaWUgaW4gZWluIGFuZGVyZXMgTG9rYWwgYnJpbmd0LgoKUFJPQkxFTTogRGVyIFJhdW0gaXN0IHNlaHIgZHVua2VsLgpVUlNBQ0hFOiBEYXMgTG9rYWwgaGF0IGdlc2NobG9zc2VuLgpMT0VTVU5HOiBMYXNzZW4gU2llIHNpY2ggZGllIFByaXZhdGFkcmVzc2UgZGVzIFdpcnRlcyBnZWJlbi4KClBST0JMRU06IERhcyBUYXhpIG5pbW10IHBsb2V0emxpY2ggdW5nZXdvZWhubGljaGUgRmFyYmVuIHVuZCBNdXN0ZXIgYW4uClVSU0FDSEU6IERlciBCaWVya29uc3VtIGhhdCBJaHJlIHBlcnNvZW5saWNoZSBHcmVuemUgdWViZXJzY2hyaXR0ZW4uCkxPRVNVTkc6IE11bmQgenVoYWx0ZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVociBhbHRlcyBaZXVnOiBDb29sIGluIGFsbGVuIExlYmVuc2xhZ2VuIChOaWNrdGFyLCAgNy4gU2VwIDIwMDAsIDE5OjE0OjUzKToKIExFS1RJT04gMToKIENPT0wgQkVJTSBBVUZTVEVIRU4KCkVhc3ksIEJhYnksIGdhbnogZWFzeSwgbnVsbCBQcm9ibGVtby4gQXVmc3RlaGVuIGlzdCBkaWUgZWluZmFjaHN0ZSBTYWNoZSBkZXIKV2VsdC4gTnVyIGhhc3QgRHUgZXMgYmlzaGVyIGdhcmFudGllcnQgdm9lbGxpZyBmYWxzY2ggYW5nZXBhY2t0LiBJc3QgamEKbG9naXNjaCwga2VubnN0IGphIGRlbiBMZWl0ZmFkZW4gbmljaHQuIE1hY2h0IG5peC4gTGllcy4gRXJzdG1hbCBjb29sCnN0cmVja2VuLiBEYXMgaGVpc3N0OiBOaWNodCBiZXdlZ2VuLCBpc3QgbmFlbWxpY2ggaG9lbGxpc2NoIHVuY29vbCwgc2ljaApzcGFzdGlzY2ggYXVzIGRlbSBCZXR0IHp1IHdhZWx6ZW4uIEFsc286IElubmVybGljaCBzdHJlY2tlbiwgbml4IGFubWVya2VuCmxhc3Nlbi4gRGFubjogQXVmc3RlaGVuLiBBYmVyIGNvb2wgYmxlaWJlbi4gRXJzdG1hbCBTb25uZW5icmlsbGUgYXVmc2V0emVuLgpXZW5uIGRpZSBHYXJkaW5lbiB6dSBzaW5kIG9kZXIgZXMgZHJhdXNzZW4gbm9jaCBkdW5rZWwgaXN0LCBlcnN0bWFsIExpY2h0CmFubWFjaGVuLiBNZXJrZTogV2lya3QgdW5jb29sLCBnZWdlbiBkZW4gS2xlaWRlcnNjaHJhbmsgenUgbGF1ZmVuLiBTbywgc2Nob24KZ2FueiBndXQuIEpldHp0IGtvbW10IGRhcyBBbnppZWhlbi4gSXN0IGF1Y2ggZ2FueiBlaW5mYWNoLiBMZWl0c2F0ejogTmljaHQKaGluZ3Vja2VuLiBTY2hhdSBpcmdlbmR3byBhbmRlcnMgaGluIHVuZCB6aWVoIERpY2ggZGFiZWkgYW4uIExldXRlLCBkaWUKaGluZ3Vja2VuLCB3ZW5uIHNpZSBkZW4gUmVpc3N2ZXJzY2hsdXNzIHp1bWFjaGVuLCB3aXJrZW4gcGVpbmxpY2guIEFiZXIKVm9yc2ljaHQ6IE5pY2h0cyB2ZXJnZXNzZW4sIHdlbm4gRHUgZGVuIFJlaXNzdmVyc2NobHVzcyB6dW1hY2hzdC4gRHUgaGFzdCBlcwp2ZXJnZXNzZW4/IERhbm4gdWViIGVzIG5hY2ggZGVyIE9wZXJhdGlvbiBlcnN0bWFsIG9obmUgU29ubmVuYnJpbGxlLgoKQmlzIGhpZXJoZXIgYWxsZXMga2xhcj8gV2FyIGF1Y2ggZWluZmFjaCwgd2FzLCBCYWJlPyBKZXR6dCB3aXJkJ3Mgc2Nod2llcmlnZXIuClBhc3MgYXVmLiBGcnVlaHN0dWVjayBtYWNoZW4uIFdlbm4gRHUgZGFiZWkgRmVobGVyIG1hY2hzdCwga2FubnN0IER1IERpcgphbGxlcmhhbmQgdmVyc2NoZXJ6ZW4uIERpZSBMZXV0ZSB3ZXJkZW4gRGljaCBuaWNodCBtZWhyIGVybnN0IG5laG1lbi4uLiBXZXIKd2lsbCBkYXMgc2Nob24/IER1IG5pY2h0LiBJY2ggd2Vpc3MuIEthZmZlZWtvY2hlbiBpc3QgYW4gc2ljaCAnbmUgd2FobnNpbm5pZwp1bmNvb2xlIFNhY2hlLiBFcyBsaWVndCBhbiBEaXIsIGVzIGNvb2wgenUgbWFjaGVuLiBEdSB3aXJzdCB2ZXJtdXRsaWNoIHp3ZWksCmRyZWkgU3R1bmRlbiB1ZWJlbiBtdWVzc2VuLCBhYmVyIGRhbm4gc2l0enQgZXMsIHVuZCBkaWUgRnJhdWVuIHdlcmRlbiBEaXIgenUKRnVlc3NlbiBsaWVnZW4uIER1IHdlaXNzdCBzY2hvbiwgd2FzIGljaCBtZWluZSwgSG9uZXkuIEFsc286IERlY2tlbCBkZXIKS2FmZmVlbWFzY2hpbmUgaW0gVm9yYmVpZ2VoZW4gYXVmbWFjaGVuLCB3ZWl0ZXJnZWhlbiB6dW0gS2FmZmVldG9wZiwKS2FmZmVldG9wZiBhdWZtYWNoZW4sIEthZmZlZSBpbiBkZW4gRmlsdGVyIGtpcHBlbiAobmljaHQgcG9ydGlvbmllcmVuLCBhbQpiZXN0ZW4gZ2FyIG5pY2h0IGhpbnNjaGF1ZW4pIHVuZCBkYW5uOiBGaWx0ZXIgaW4gZGllIE1hc2NoaW5lIHdlcmZlbi4gTWVya2UKaGllcmJlaTogamUgZ3JvZXNzZXIgZGllIEVudGZlcm51bmcgdm9uIGRlciBLYWZmZWVtYXNjaGluZSwgZGVzdG8gZ3JvZXNzZXIKRGVpbmUgQ29vbG5lc3MuIFdlbm4ncyBrbGFwcHQuIEFuc29uc3RlbiBpc3QgZXMgemllbWxpY2ggcGVpbmxpY2guIEFiZXIgRHUKcGFja3N0IGRhcyBzY2hvbi4gRGFzIGdhbnplIG5lbm50IHNpY2ggZGFzIEVyc3RlIENvb2xzY2hlIEdlc2V0ei4gV3VyZndlaXRlCmlzdCBwcm9wb3J0aW9uYWwgenVyIENvb2xuZXNzLiAKCkVudGZlcm51bmc9MCwgQ29vbG5lc3M9MC4KRW50ZmVybnVuZz00IE1ldGVyLCBDb29sbmVzcz0gdW5iZXNjaHJlaWJsaWNoLgpXZW5uJ3Mgc2NoaWVmZ2VodCwgZ2lsdDoKICAgICAgIEVudGZlcm51bmcgLSAxMAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPSBJZGlvdAogcG90ZW50aWVsbGVyIENvb2xuZXNzZmFrdG9yCgpBbHNvOiB1ZWJlbiwgdWViZW4sIHVlYmVuLiBEYXMgaGFzdCBEdSBkcmluLiBJY2ggd2Vpc3MgZXMuIENvb2wgQmFieS4KCkVuZGUgTGVrdGlvbiAxLCBMZWt0aW9uIDIgc3BhZXRlcgoKTmlja3RhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IG5hbWUgaW4gc2NoaWxkIChEaWVkZXIsICA3LiBTZXAgMjAwMCwgMTk6MzM6NTUpOgp+IyEgcm49U2FuZ28gcnQ9OTY4MzQ3OTk5IHJnPXdpdHplCn4jISB0aWQ9OTY4MzQ3OTk5CmRlciBpcyBndXQgOi0pCgpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbmFtZSBpbiBzY2hpbGQgKFNhbmdvLCAgNy4gU2VwIDIwMDAsIDE5OjM0OjUxKToKfiMhIHJuPURpZWRlciBydD05NjgzNDgwMzUgcmc9d2l0emUKfiMhIHRpZD05NjgzNDc5OTkKVW5kIHNjaG9uIGdlbG9lc2NodCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnVuZHNhY2hlIChBcHN1LCAxMS4gU2VwIDIwMDAsIDE4OjIxOjUyKToKVU1UUzogVW52ZXJob2ZmdGUgTWVocmVpbm5haG1lbiB6dXIgVGlsZ3VuZyB2b24gU3RhYXRzc2NodWxkZW4gLi4uCgpBcHN1LCBncmluc2VuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVG9hc3Rlci1EZXNpZ24gKEthcmlzLCAyMC4gU2VwIDIwMDAsIDE3OjQ5OjQxKToKT25jZSB1cG9uIGEgdGltZSwgaW4gYSBraW5nZG9tIG5vdCBmYXIgZnJvbSBoZXJlLCBhIGtpbmcgc3VtbW9uZWQgdHdvIG9mIApoaXMgYWR2aXNvcnMgZm9yIGEgdGVzdC4gIEhlIHNob3dlZCB0aGVtIGJvdGggYSBzaGlueSBtZXRhbCBib3ggd2l0aCB0d28gCnNsb3RzIGluIHRoZSB0b3AsIGEgY29udHJvbCBrbm9iLCBhbmQgYSBsZXZlci4gICJXaGF0IGRvIHlvdSB0aGluayB0aGlzIAppcz8iIAoKT25lIGFkdmlzb3IsIGFuIGVuZ2luZWVyLCBhbnN3ZXJlZCBmaXJzdC4gIkl0IGlzIGEgdG9hc3RlciwiIGhlIHNhaWQuIApUaGUga2luZyBhc2tlZCwgIkhvdyB3b3VsZCB5b3UgZGVzaWduIGFuIGVtYmVkZGVkIGNvbXB1dGVyIGZvciBpdD8iIFRoZSAKZW5naW5lZXIgcmVwbGllZCwgIlVzaW5nIGEgZm91ci1iaXQgbWljcm9jb250cm9sbGVyLCBJIHdvdWxkIHdyaXRlIGEgCnNpbXBsZSBwcm9ncmFtIHRoYXQgcmVhZHMgdGhlIGRhcmtuZXNzIGtub2IgYW5kIHF1YW50aXplcyBpdHMgcG9zaXRpb24KdG8gCm9uZSBvZiAxNiBzaGFkZXMgb2YgZGFya25lc3MsIGZyb20gc25vdyB3aGl0ZSB0byBjb2FsIGJsYWNrLiBUaGUgcHJvZ3JhbSAKd291bGQgdXNlIHRoYXQgZGFya25lc3MgbGV2ZWwgYXMgdGhlIGluZGV4IHRvIGEgMTYtZWxlbWVudCB0YWJsZSBvZiAKaW5pdGlhbCB0aW1lciB2YWx1ZXMuICBUaGVuIGl0IHdvdWxkIHR1cm4gb24gdGhlIGhlYXRpbmcgZWxlbWVudHMgYW5kIApzdGFydCB0aGUgdGltZXIgd2l0aCB0aGUgaW5pdGlhbCB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSB0YWJsZS4gIEF0IHRoZSAKZW5kIG9mIHRoZSB0aW1lIGRlbGF5LCBpdCB3b3VsZCB0dXJuIG9mZiB0aGUgaGVhdCBhbmQgcG9wIHVwIHRoZSB0b2FzdC4gCkNvbWUgYmFjayBuZXh0IHdlZWssIGFuZCBJJ2xsIHNob3cgeW91IGEgd29ya2luZyBwcm90b3R5cGUuIiAKClRoZSBzZWNvbmQgYWR2aXNvciwgYSBjb21wdXRlciBzY2llbnRpc3QsIGltbWVkaWF0ZWx5IHJlY29nbml6ZWQgdGhlIApkYW5nZXIgb2Ygc3VjaCBzaG9ydC1zaWdodGVkIHRoaW5raW5nLiAgSGUgc2FpZCwgIlRvYXN0ZXJzIGRvbid0IGp1c3QKdHVybiAKYnJlYWQgaW50byB0b2FzdCwgdGhleSBhcmUgYWxzbyB1c2VkIHRvIHdhcm0gZnJvemVuIHdhZmZsZXMuICBXaGF0IHlvdSAKc2VlIGJlZm9yZSB5b3UgaXMgcmVhbGx5IGEgYnJlYWtmYXN0IGZvb2QgY29va2VyLiAgQXMgdGhlIHN1YmplY3RzIG9mCnlvdXIgCmtpbmdkb20gYmVjb21lIG1vcmUgc29waGlzdGljYXRlZCwgdGhleSB3aWxsIGRlbWFuZCBtb3JlIGNhcGFiaWxpdGllcy4KVGhleSAKd2lsbCBuZWVkIGEgYnJlYWtmYXN0IGZvb2QgY29va2VyIHRoYXQgY2FuIGFsc28gY29vayBzYXVzYWdlLCBmcnkgYmFjb24sIAphbmQgbWFrZSBzY3JhbWJsZWQgZWdncy4gIEEgdG9hc3RlciB0aGF0IG9ubHkgbWFrZXMgdG9hc3Qgd2lsbCBzb29uIGJlIApvYnNvbGV0ZS4gIElmIHdlIGRvbid0IGxvb2sgdG8gdGhlIGZ1dHVyZSwgd2Ugd2lsbCBoYXZlIHRvIGNvbXBsZXRlbHkgCnJlZGVzaWduIHRoZSB0b2FzdGVyIGluIGp1c3QgYSBmZXcgeWVhcnMuIiAKCiJXaXRoIHRoaXMgaW4gbWluZCwgd2UgY2FuIGZvcm11bGF0ZSBhIG1vcmUgaW50ZWxsaWdlbnQgc29sdXRpb24gdG8gdGhlIApwcm9ibGVtLiAgRmlyc3QsIGNyZWF0ZSBhIGNsYXNzIG9mIGJyZWFrZmFzdCBmb29kcy4gU3BlY2lhbGl6ZSB0aGlzCmNsYXNzIAppbnRvIHN1YmNsYXNzZXM6ICBncmFpbnMsIHBvcmssIGFuZCBwb3VsdHJ5LiAgVGhlIHNwZWNpYWxpemF0aW9uIHByb2Nlc3MgCnNob3VsZCBiZSByZXBlYXRlZCB3aXRoIGdyYWlucyBkaXZpZGVkIGludG8gdG9hc3QsIG11ZmZpbnMsIHBhbmNha2VzLAphbmQgCndhZmZsZXM7IHBvcmsgZGl2aWRlZCBpbnRvIHNhdXNhZ2UsIGxpbmtzLCBhbmQgYmFjb247IGFuZCBwb3VsdHJ5CmRpdmlkZWQgCmludG8gc2NyYW1ibGVkIGVnZ3MsIGhhcmQtYm9pbGVkIGVnZ3MsIHBvYWNoZWQgZWdncywgZnJpZWQgZWdncywgYW5kIAp2YXJpb3VzIG9tZWxldCBjbGFzc2VzLiIgCgoiVGhlIGhhbSBhbmQgY2hlZXNlIG9tZWxldCBjbGFzcyBpcyB3b3J0aCBzcGVjaWFsIGF0dGVudGlvbiBiZWNhdXNlIGl0IAptdXN0IGluaGVyaXQgY2hhcmFjdGVyaXN0aWNzIGZyb20gdGhlIHBvcmssIGRhaXJ5LCBhbmQgcG91bHRyeSBjbGFzc2VzLiAKVGh1cywgd2Ugc2VlIHRoYXQgdGhlIHByb2JsZW0gY2Fubm90IGJlIHByb3Blcmx5IHNvbHZlZCB3aXRob3V0IG11bHRpcGxlIAppbmhlcml0YW5jZS4gIEF0IHJ1biB0aW1lLCB0aGUgcHJvZ3JhbSBtdXN0IGNyZWF0ZSB0aGUgcHJvcGVyIG9iamVjdCBhbmQgCnNlbmQgYSBtZXNzYWdlIHRvIHRoZSBvYmplY3QgdGhhdCBzYXlzLCAnQ29vayB5b3Vyc2VsZi4nICBUaGUgc2VtYW50aWNzIApvZiB0aGlzIG1lc3NhZ2UgZGVwZW5kLCBvZiBjb3Vyc2UsIG9uIHRoZSBraW5kIG9mIG9iamVjdCwgc28gdGhleSBoYXZlIGEgCmRpZmZlcmVudCBtZWFuaW5nIHRvIGEgcGllY2Ugb2YgdG9hc3QgdGhhbiB0byBzY3JhbWJsZWQgZWdncy4iIAoKIlJldmlld2luZyB0aGUgcHJvY2VzcyBzbyBmYXIsIHdlIHNlZSB0aGF0IHRoZSBhbmFseXNpcyBwaGFzZSBoYXMKcmV2ZWFsZWQgCnRoYXQgdGhlIHByaW1hcnkgcmVxdWlyZW1lbnQgaXMgdG8gY29vayBhbnkga2luZCBvZiBicmVha2Zhc3QgZm9vZC4gIEluIAp0aGUgZGVzaWduIHBoYXNlLCB3ZSBoYXZlIGRpc2NvdmVyZWQgc29tZSBkZXJpdmVkIHJlcXVpcmVtZW50cy4gClNwZWNpZmljYWxseSwgd2UgbmVlZCBhbiBvYmplY3Qtb3JpZW50ZWQgbGFuZ3VhZ2Ugd2l0aCBtdWx0aXBsZSAKaW5oZXJpdGFuY2UuICBPZiBjb3Vyc2UsIHVzZXJzIGRvbid0IHdhbnQgdGhlIGVnZ3MgdG8gZ2V0IGNvbGQgd2hpbGUgdGhlIApiYWNvbiBpcyBmcnlpbmcsIHNvIGNvbmN1cnJlbnQgcHJvY2Vzc2luZyBpcyByZXF1aXJlZCwgdG9vLiIgCgoiV2UgbXVzdCBub3QgZm9yZ2V0IHRoZSB1c2VyIGludGVyZmFjZS4gIFRoZSBsZXZlciB0aGF0IGxvd2VycyB0aGUgZm9vZCAKbGFja3MgdmVyc2F0aWxpdHksIGFuZCB0aGUgZGFya25lc3Mga25vYiBpcyBjb25mdXNpbmcuICBVc2VycyB3b24ndCBidXkgCnRoZSBwcm9kdWN0IHVubGVzcyBpdCBoYXMgYSB1c2VyLWZyaWVuZGx5LCBncmFwaGljYWwgaW50ZXJmYWNlLiAgV2hlbgp0aGUgCmJyZWFrZmFzdCBjb29rZXIgaXMgcGx1Z2dlZCBpbiwgdXNlcnMgc2hvdWxkIHNlZSBhIGNvd2JveSBib290IG9uIHRoZSAKc2NyZWVuLiAgVXNlcnMgY2xpY2sgb24gaXQsIGFuZCB0aGUgbWVzc2FnZSAnQm9vdGluZyBVTklYIHYuIDguMycKYXBwZWFycyAKb24gdGhlIHNjcmVlbi4gKFVOSVggOC4zIHNob3VsZCBiZSBvdXQgYnkgdGhlIHRpbWUgdGhlIHByb2R1Y3QgZ2V0cyB0bwp0aGUgCm1hcmtldC4pICBVc2VycyBjYW4gcHVsbCBkb3duIGEgbWVudSBhbmQgY2xpY2sgb24gdGhlIGZvb2RzIHRoZXkgd2FudCB0byAKY29vay4iIAoKIkhhdmluZyBtYWRlIHRoZSB3aXNlIGRlY2lzaW9uIG9mIHNwZWNpZnlpbmcgdGhlIHNvZnR3YXJlIGZpcnN0IGluIHRoZSAKZGVzaWduIHBoYXNlLCBhbGwgdGhhdCByZW1haW5zIGlzIHRvIHBpY2sgYW4gYWRlcXVhdGUgaGFyZHdhcmUgcGxhdGZvcm0gCmZvciB0aGUgaW1wbGVtZW50YXRpb24gcGhhc2UuICBBbiBJbnRlbCA4MDM4NiB3aXRoIDhNQiBvZiBtZW1vcnksIGEgMzBNQiAKaGFyZCBkaXNrLCBhbmQgYSBWR0EgbW9uaXRvciBzaG91bGQgYmUgc3VmZmljaWVudC4gIElmIHlvdSBzZWxlY3QgYSAKbXVsdGl0YXNraW5nLCBvYmplY3Qgb3JpZW50ZWQgbGFuZ3VhZ2UgdGhhdCBzdXBwb3J0cyBtdWx0aXBsZQppbmhlcml0YW5jZSAKYW5kIGhhcyBhIGJ1aWx0LWluIEdVSSwgd3JpdGluZyB0aGUgcHJvZ3JhbSB3aWxsIGJlIGEgc25hcC4gIChJbWFnaW5lCnRoZSAKZGlmZmljdWx0eSB3ZSB3b3VsZCBoYXZlIGhhZCBpZiB3ZSBoYWQgZm9vbGlzaGx5IGFsbG93ZWQgYQpoYXJkd2FyZS1maXJzdCAKZGVzaWduIHN0cmF0ZWd5IHRvIGxvY2sgdXMgaW50byBhIGZvdXItYml0IG1pY3JvY29udHJvbGxlciEpLiIgCgpUaGUga2luZyB3aXNlbHkgaGFkIHRoZSBjb21wdXRlciBzY2llbnRpc3QgYmVoZWFkZWQsIGFuZCB0aGV5IGFsbCBsaXZlZCAKaGFwcGlseSBldmVyIGFmdGVyLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcgaW0gTmV0eiwgYWx0IGFiZXIgZ3V0IChNb3Jnb3RoLCAyMi4gU2VwIDIwMDAsIDA4OjQyOjA2KToKaHR0cDovL211bmtvcmEuY3MubXUub3ouYXUvfmNoZXNzb24vcGF1bC9nZWVrL3JvbGVwbGF5aW5nL2Z1bi8KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRkxXIGltIE5ldHosIGFsdCBhYmVyIGd1dCAoTmV2b2ssIDIyLiBTZXAgMjAwMCwgMTE6MTY6MDkpOgp+IyEgcm49TW9yZ290aCBydD05Njk2MDQ5MjYgcmc9d2l0emUKfiMhIHRpZD05Njk2MDQ5MjYKaHR0cDovL3d3dy53ZnJwLmRlL2hvc3RlZC9mbHcvZW4vCmhhdCBkYSBtZWhyIGF1c3dhaGwsIHNpbmQgbnVyIDU2MCBiZWkgZGVyIHZvcmhlcmlnZW4gYWJlciAxNzA3IGhpZXIgOykKCm1vcmUgYmFuZyBmb3IgdGhlIGJ1Y2sKCk5ldm9rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSb3RrYWVwcGNoZW4gKERhbmNlciwgMjYuIFNlcCAyMDAwLCAxMToyNzoyNik6ClJvdGthZXBwY2hlbgoKRXMgd2FyIGVpbm1hbCBlaW4ga2xlaW5lcywgc3Vlc3NlcyBNYWVkY2hlbiwgZGFzIGltbWVyIGVpbiBLYWVwcGNoZW4gYXVzIHJvdGVtClNhbXQgdHJ1Zy4gQXVmZ3J1bmQgZGllc2VzIEF0dHJpYnV0ZXMgZXJoaWVsdCBlcyBlaW4gQXNzaWduIHVudGVyIGRlbQpzeW1ib2xpc2NoZW4gQWxpYXMgIlJvdGthZXBwY2hlbiIuIApFaW5lcyBUYWdlcyBzcHJhY2ggZGllIE11dHRlcjoKIlJvdGthZXBwY2hlbiwgZGllIEdlc3VuZGhlaXQgRGVpbmVyIEdyb3NzbXV0dGVyIGhhdCBlaW5lbiBJbnRlcnJ1cHQKYmVrb21tZW4uIFdpciBtdWVzc2VuIGVpbiBQZmxlZ2UtUHJvZ3JhbW0gZW50d2lja2VsbiB1bmQgYmVpIEdyb3NzbXV0dGVyCmluc3RhbGxpZXJlbiwgdW0gZGFzIFByb2JsZW0genUgbG9lc2VuLiBBdWYgRGVpbmVtIFBhdGggZG9ydGhpbiB2ZXJpcnJlIERpY2gKamVkb2NoIG5pY2h0CmltIFdhbGRlIGRlciBhbHRlbiBTcHJhY2hlbiwgc29uZGVybiBnZWhlIG51ciBzdHJ1a3R1cmllcnRlIFdlZ2UuIE51dHplCmRhYmVpIGltbWVyIGVpbmUgSG9jaHNwcmFjaGUgZGVyIDQuIEdlbmVyYXRpb24sIGRhbm4ga2FubiBzaWNoIEdyb3NzbXV0dGVyCnNjaG5lbGwgd2llZGVyIHJlY292ZXJuLiBVbmQgYWNodGUgZGFyYXVmLCBkYXNzIERlaW4gUGZsZWdlLVByb2dyYW1tCnRyYW5zYWt0aW9uc29yaWVudGllcnQgaXN0LCBkYW1pdCBlcyBkaWUgR3Jvc3NtdXR0ZXIgbmljaHQgbm9jaCBtZWhyCmJlbGFzdGV0LiIgCkRhIGRlciBXZWcgenVtIEhhdXMgZGVyIEdyb3NzbXV0dGVyIHJlZW50cmFudCB3YXIsIHRyYWYgUm90a2FlcHBjaGVuIGRlbgpib2VzZW4gV29sZi4gRXIgdGF0IHNlaHIgYmVudXR6ZXJmcmV1bmRsaWNoLCBoYXR0ZSBpbSBCYWNrZ3JvdW5kIGplZG9jaCBzY2hvbgplaW5lbiBBYm9ydCBhdWYgZGVtIFN0YWNrLiBXYWVocmVuZCBSb3RrYWVwcGNoZW4gZWluZW4gR290byBpbnMgbmFoZWdlbGVnZW5lCkJsdW1lbi1BcnJheSBtYWNodGUsIGdpbmcgZGVyIFdvbGYgaW0gRGlyZWt0enVncmlmZiB6dXIgR3Jvc3NtdXR0ZXIgdW5kCmVyYXNlLXRlCnNpZSB1bnZlcnp1ZWdsaWNoIGR1cmNoIGVpbmVuIERlbGV0ZS4gT2huZSBsYW5nZSBXYWl0c3RhdGVzLCBnYWIgZXIgc2ljaCBkZW4KQW5zY2hlaW4ga29tcGF0aWJlbCB6dSBzZWluIHVuZCBuYWhtIGRpZSBsb2dpc2NoZSBTaWNodCBkZXIgR3Jvc3NtdXR0ZXIgYW4uCkRhbm4gbGVndGUgZXIgc2ljaCBpbiBpaHJlbiBTcGVpY2hlcnBsYXR6LiAKS3VyeiBkYW5hY2ggbG9rYWxpc2llcnRlIGF1Y2ggUm90a2FlcHBjaGVuIGRpZSBBZHJlc3NlIGRlciBHcm9zc211dHRlciB1bmQKdHJhdCBpbiBkZW4gU3BlaWNoZXJyYXVtLiBWb3IgSW5zdGFsbGF0aW9uIGRlcyBQZmxlZ2UtUHJvZ3JhbW1zIG1hY2h0ZQpSb3RrYWVwcGNoZW4gc2ljaGVyaGVpdHNoYWxiZXIgZWluZW4gVmVyaWZ5IHVuZCBmcmFndGU6CiJFaSBHcm9zc211dHRlciwgd2FydW0gaGFzdCBEdSBzbyBncm9zc2UgQXVnZW4gPyIKIldlaWwgaWNoIHp1ZnJpZWRlbmUgRW5kYmVudXR6ZXIgc2VoZS4iCiJFaSBHcm9zc211dHRlciwgd2FydW0gaGFzdCBEdSBzbyBncm9zc2UgT2hyZW4gPyIKIkRhbWl0IGljaCBkaWUgV3VlbnNjaGUgZGVyIFVzZXIgYmVzc2VyIHZlcnN0ZWhlbiBrYW5uLiIKIkVpIEdyb3NzbXV0dGVyLCB3YXJ1bSBoYXN0IER1IHNvIGVpbiBncm9zc2VzIE1hdWwgPyIKIkRhbWl0IGljaCBEaWNoIGJlc3NlciBjYW5jZWxuIGthbm4gISIKU3ByYWNocyB1bmQgbmFobSBkYXMgYXJtZSBEaW5nIGFscyBJbnB1dC4gTmFjaCBlaW5lbSBMb2dvZmYgbWFjaHRlIGRlcgpXb2xmIGVpbmVuIFBvd2VyLWRvd24sIGFrdGl2aWVydGUgc2VpbmVuIFNsZWVwLW1vZGUgdW5kIGJlZ2FubiBsYXV0IHp1CnNjaG5hcmNoZW4uIApBbHMgZGVyIEphZWdlciBhdWYgc2VpbmVtIExvb3AgZHVyY2ggZGVuIFdhbGQgYW0gRGlyZWN0b3J5IGRlciBHcm9zc211dHRlcgp2b3JiZWlzY3JvbGx0ZSwgc2FoIGVyIGR1cmNoIGVpbiBXaW5kb3cgZGVuIFdvbGYgaW4gc2VpbmVtIFNlZ21lbnQgbGllZ2VuLgoiRmluZGUgaWNoIERpY2ggaGllciwgRHUgYWx0ZXIgU3VlbmRlciIsIHNwcmFjaCBlciwgImljaCBoYWJlIERpY2ggc2Nob24KbGFuZ2UgYXVmIG1laW5lciBUYXNrLWxpc3QgISIuCkFscyBLZW5uZXIgZGVyIFNjZW5lIGFuYWx5c2llcnRlIGVyIHNvZm9ydCwgZGFzcyBuYWNoIGRlbiBSZWdlbG4gZGVyCkJvb2xzY2hlbiBBbGdlYnJhIGRpZSBHcm9zc211dHRlciBudXIgaW0gS2VybmVsIGRlcyBXb2xmZXMgc2VpbiBrb25udGUuIEVyCm5haG0Kc2VpbiBDYXB0dXJlLVRvb2wsIHRlaWx0ZSBkZW4gQmF1Y2ggZGVzIFdvbGZlcyBtaXQgZWluaWdlbiBDdXRzIGluIG1laHJlcmUKU2VrdG9yZW4gdW5kIG1hY2h0ZSwgd2VsY2gnIEZyZXVkZSwgZGllIEdyb3NzbXV0dGVyIHVuZCBSb3RrYWVwcGNoZW4gd2llZGVyCnp1CnNlbGJzdHN0YWVuZGlnZW4gTW9kdWxlbi4gQWxzIEZpbGxwYXR0ZXJuIGZ1ZXIgZGVuIGxlZXJlbiBCYXVjaCBuYWhtZW4gc2llCnZpZWxlIEtpbG9ieXRlIERyeS1TdG9uZXMgdW5kIGJlZW5kZXRlbiBkaWUgT3BlcmF0aW9uIG1pdCBlaW5lbSBDbG9zZS4gQWxzCmRlcgpXb2xmIGVyd2FjaHRlLCB2ZXJ1cnNhY2h0ZSBpaG0gc2VpbiBkZXJtYXNzZW4gYXVmZ2VibGFlaHRlciBIYXVwdHNwZWljaGVyCnNvbGNoZSBQcm90ZWN0aW9uIEZhdWx0cywgZGFzcyBlciBhbiBlaW5lciBTdG9yYWdlIFZpb2xhdGlvbiBqYWVtbWVybGljaAp6dWdydW5kZQpnaW5nLiAKRGEgd2FyZW4gYWxsZSB2ZXJnbnVlZ3QuIERhcyBQZmxlZ2UtUHJvZ3JhbW0gYWt0aXZpZXJ0ZSBkaWUgR3Jvc3NtdXR0ZXIuIApSb3RrYWVwcGNoZW4gYWJlciBkYWNodGU6ICdEdSB3aWxsc3QgZGVpbiBMZWJ0YWcgbmllIHdpZWRlciBlaW5lbiBHb3RvCm1hY2hlbiwgc29uZGVybiBudXIgbm9jaCBzdHJ1a3R1cmllcnRlIFdlZ2UgZ2VoZW4sIHdpZSBkaXIncyBkaWUgTXV0dGVyCmdlYm90ZW4KaGF0LgoKCkRhbmNlcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmljaCBhdWNoIG1hbCAuLi4gKEdvbGFzLCAyOS4gU2VwIDIwMDAsIDE0OjE2OjU3KToKVXJsYXViIGltIEdlYmlyZ2U6CiAiV2llc28gbGllZ2VuIGRlbm4gZGEgc28gdmllbGUgU3RlaW5lIGltIEZsdXNzYmV0dD8iIAogIkRpZSBoYXQgZGVyIEJhY2ggaGVydW50ZXJnZXNwbHQhIiAKICJVbmQgd28gaXN0IGRlciBCYWNoIGpldHp0PyIgCiAiV2FocnNjaGVpbmxpY2ggd2llZGVyIG9iZW4gLSBuZXVlIFN0ZWluZSBob2xlbiEiIAoKIkhlcnIgRG9rdG9yIGljaCByZWRlIGltIFNjaGxhZi4iICJVbmQgd2FzIGlzdCBkYXJhbiBzbyBzY2hsaW1tPyIKIkRhcyBnYW56ZSBCcm8gbGFjaHQgc2Nob24gYmVyIG1pY2guIgoKIlN0ZWxsZW4gU2llIHNpY2ggdm9yIC0gc2VpdCBnZW5hdSAyNSBKYWhyZW4gcmF1Y2hlIHVuZCB0cmlua2UgaWNoIG5pY2h0Cm1laHIuIgoiQWgsIGRhbm4ga2FubiBtYW4gd29obCB6dXIgU2lsYmVyaG9jaHplaXQgZ3JhdHVsaWVyZW4/IgoKUmljaHRlciB6dW0gQW5nZWtsYWd0ZW46CiJXYXJ1bSBoYWJlbiBTaWUgZGVubiBkaWUgTm9ubmUgdmVyZ2V3YWx0aWd0PyBTaWUgc2luZCBkb2NoIGhvbW9zZXh1ZWxsPyIKIkFiZXIgc2llIHNhaCBkb2NoIHZvbiBoaW50ZW4gYXVzIHdpZSBab3Jyby4iCgoiRnIgSWhyIExva2FsIGhhYmUgaWNoIGRpZSB0b2xsc3RlIEZyYXUgYWxsZXIgWmVpdGVuLCIgcHJlaXN0IGRlciBUaGVhdGVyYWdlbnQKZGllIFRuemVyaW4gYW4uICJBbGxlaW4gZGllIE1hc3NlOiBPYmVyd2VpdGUgMTQwLCBUYWlsbGUgODUsIEhmdGUgOTUuIgoiVW5kIHdhcyBicmluZ3QgU2llPyIKIlNpZSBrcmllY2h0IGF1ZiBkaWUgQmhuZSB1bmQgdmVyc3VjaHQgc2ljaCBhdWZ6dXJpY2h0ZW4uIgoKIlN1c2ksIGlzdCBkZXIgQnJpZWZ0cmdlciBzY2hvbiBnZWtvbW1lbj8iCiJOb2NoIG5pY2h0IC0gYWJlciBlciBhdG1ldCBzY2hvbiBnYW56IHNjaHdlci4iCgoiV29sbGVuIHdpciBoZXV0ZSBBYmVuZCBTY2hhY2ggc3BpZWxlbj8iCiJOZWluIC0gbWVpbmUgRnJhdSBpc3QgZ2VzdGVybiBnZXN0b3JiZW4uIgoiR3V0IC0gRHUgc3BpZWxzdCBzY2h3YXJ6LiIKCiJEaWUgbWVpc3RlbiBncm9lbiBFcmZpbmRlciwgYmVzYWVuIGF1Y2ggZ3JvZSBIZXJ6ZW5zZ3RlLiBTbyBoYWJlbiBkaWUKRXJmaW5kZXIgdm9uIFRlbGVncmFwaCB1bmQgVGVsZWZvbiwgTW9yc2UgdW5kIEJlbGwsIGFybWUsIHRhdWJzdHVtbWUgRnJhdWVuCmdlaGVpcmF0ZXQuIFdhcyBrYW5uIG1hbiBkYXJhdXMgc2NobGllZW4/IgoiRGFzIGJld2Vpc3QgLSB3YXMgTW5uZXIgbGVpc3RlbiBrbm5lbiAtIHdlbm4gc2llIHp1IEhhdXNlIG5pY2h0IGdlc3RydAp3ZXJkZW4uIgoKIkljaCBsaWViZSBEaWNoIHNjaHJlY2tsaWNoISIKIkRhcyBtYWNodCBuaWNodHMgLSBtb3JnZW4gemVpZ2UgaWNoIERpciB3aWUgbWFuIGVzIHJpY2h0aWcgbWFjaHQhIgoKQW5ydWYgYmVpIGRlciBFeHBvIHZvciAyIE1vbmF0ZW46ICJXYW5uIG9lZmZuZW4gU2llIGRlbm4gaGV1dGU/IgpBbnR3b3J0OiAiV2FubiB3YWVyZSBlcyBpaG5lbiBkZW5uIHJlY2h0PyIKCldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIEJIIHVuZCBlaW5lbSBQdWxsaT8KRGVyIGVpbmUgaGx0IHdhcyBkZXIgYW5kZXJlIHZlcnNwcmljaHQuCgoKaG9mZmUgZXMgd2FyIGF1Y2ggbWFsIHdhcyBuZXVlcyBkYWJlaSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGljaCBhdWNoIG1hbCAuLi4gKFllbmRpLCAgMi4gT2t0IDIwMDAsIDE1OjUxOjI4KToKfiMhIHJuPUdvbGFzIHJ0PTk3MDIyOTgxNyByZz13aXR6ZQp+IyEgdGlkPTk3MDIyOTgxNwpPSywgdW5kIGpldHp0IGRhcyBnYW56ZSBtYWwgX21pdF8gVW1sYXV0ZW4uLi4KCllUWQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlYnVydCAoRm9vYmFyLCAgNy4gT2t0IDIwMDAsIDAwOjMyOjQ0KToKRWluIEVsZiwgZWluIFp3ZXJnIHVuZCBlaW4gSG9iYml0IHNpdHplbiBpbiBPcmtoYXVzZW4gYmVpIERyLiBTYWxiZXIgdW5kCndhcnRlbiBkYXJhdWYgZGFzcyBzaWUgVmF0ZXIgd2VyZGVuLgoKQXVmIGVpbm1hbCBrb21tdCBkZXIgRHIuIHJlaW4gdW5kIHNhZ3Q6ICJIZXJ6bGljaGVuIEdsdWVja3d1bnNjaCEgU2llIHNpbmQKYWxsZSAzIGluIGRlbiBsZXR6dGVuIDUgTWludXRlbiBWYXRlciBnZXdvcmRlbi4gTGVpZGVyIGlzdCB1bnMgZGFiZWkgZWluCk1pc3NnZXNjaGljayBwYXNzaWVydCwgd2lyIGhhYmVuIGRpZSBCYWJpZXMgdmVydGF1c2NodC4uLiIKCkRlciBad2VyZyByZW5udCBzb2ZvcnQgcmF1cywgc2NobmFwcHQgc2ljaCBlaW4gYmVoYWFydGVzIEJhYnkgdW5kIHJlbm50IGluClJpY2h0dW5nIEZvcnNjaGVycHVua3RzYW1tbGVyIGRhdm9uLgoKRGVyIEhvYmJpdCBoZWNoZWx0IGhpbnRlcmhlciB1bmQgYnJ1ZWxsdDogIkhlLCBuaWNodCBzbyBzY2huZWxsISBEYXMga29lbm50ZQphdWNoIG1laW4gS2luZCBzZWluISIKCiJNaXIgZWdhbCwgSGF1cHRzYWNoZSBrZWluIEVsZiEhIgoKRm9vYmFyIC0gWndlcmNoCgpQUzogTWlyIGlzdCBuYXR1ZXJsaWNoIGJla2FubnQgZGFzcyBkaWUgZ2VzY2hsZWNodHNsb3NlbiBFbGZlbiBzaWNoIGR1cmNoClBvbGxlbmZsdWcgdmVybWVocmVuLCBhYmVyIGRlciBXaXR6IGdlaHQgbnVubWFsIHNvLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW4gKGV0d2FzIGxhZW5nZXIgdW5kIGhvZmZlbnRsaWNoIG5vY2ggbmljaHQgc28gYWx0IHdpZSBkaWUgR3JlaWZlbnN0ZWluZSkgKERlZXBibHVlLCAxMi4gT2t0IDIwMDAsIDEzOjI5OjA4KToKCkZyZWl0YWdhYmVuZCB1bmQgaWNoIGJpbiB6dSBIYXVzZSwgd2VubiBtYW4gc2Nob24KbmljaHQgc2FldWZ0LCBrYW5uIG1hbiBzaWNoIGphIG1hbCBwcm9kdWt0aXYgbWl0IGRlbgpQcm9ibGVtZW4gc2VpbmVzIEhlaW1hdGxhbmRlcyBiZWZhc3Nlbi4gV2VsY2hlClByb2JsZW1lIGJlbGFzdGVuIHVucyBhbSBtZWlzdGVuPwotQXJiZWl0c2xvc2lna2VpdCA/Ci1zb3ppYWxlIFVuZ2VyZWNodGlna2VpdCA/Ci1HZXdhbHQgdW50ZXIgSnVnZW5kbGljaGVuID8KLVZlcmtlaHJzY2hhb3MgPwotVGVycm9yIGRlciBPZWtvbm9taWUgPwotbWFuZ2VsbmRlciBHZXN1bmRoZWl0c3p1c3RhbmQgZGVyIEdlc2FtdGJldm9lbGtlcnVuZz8KRnVlciBhbGxlIGRpZXNlIEZyYWdlbiBoYWJlIGljaCBlaW5lIGVybnN0Z2VtZWludGUKTG9lc3VuZywgZGllIHNvIGVpbmZhY2ggdW5kIHNvIGxvZ2lzY2ggaXN0LCBkYXNzIElocgpFdWNoIGF1ZiBkZW4gT2JlcnNjaGVua2VsIGhhdWVuIGtvZW5udGV0IHVuZCBzYWd0OgoiIE1lbnNjaCwgZGEgaGFldHRlIGljaCBhdWNoIGRyYXVmIGtvbW1lbiBrb2VubmVuIi4KR2FueiBlaW5mYWNoOgoKV2lyIHZlcmJpZXRlbiBkZW4gRnJhdWVuIGRhcyBBdXRvIGZhaHJlbiAhISEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CktsaW5ndCB2aWVsbGVpY2h0IGVpbiBiaXNzY2hlbiBjaGF1dmluaXN0aXNjaCAtIGlzdCBlcyBhYmVyIG5pY2h0Cldlbm4gRnJhdWVuIG5pY2h0IG1pdCBkZW0gQXV0b2ZhaHJlbiBkdWVyZmVuLCBrb2VubnRlbgplaW5pZ2Uga2VpbmVuIEpvYiBhbm5laG1lbiB1bmQgc29taXQgd2FlcmVuIGZ1ZXIgdmllbGUKYXJiZWl0c2xvc2UgTWFlbm5lciB3aWVkZXIgZWluZSBUYWV0aWdrZWl0IGdlZnVuZGVuLgpEYWR1cmNoIHNjaGFmZmVuIHdpciB6d2FyIGtlaW5lIEFyYmVpdHNwbGFldHplLCBhYmVyCmRpZSB2b3JoYW5kZW5lbiB3dWVyZGVuIGdlcmVjaHRlciB1bnRlciBkaWUgSGF1c2hhbHRlCmF1ZmdldGVpbHQgdW5kIHNvbWl0IHdhZXJlIGRlciBkcm9oZW5kZW4Kc296aWFsZW4gVW5nZXJlY2h0aWdrZWl0IGVudGdlZ2VuIGdld2lya3QuCkZyYXVlbiB3YWVyZW4gbmljaHQgc28gbW9iaWwgdW5kIHd1ZXJkZW4gbWVociBaZWl0IGRlcgpLaW5kZXJlcnppZWh1bmcgd2lkbWVuLCB3YXMgdW5zZXJlciBKdWdlbmQgenUgR3V0ZQprb21tZW4gd3VlcmRlLiBEYSBzaWNoIHVuc2VyZSBLaW5kZXIsCmF1ZmdydW5kIGRlciBpbnRlbnNpdmVyZW4gRXJ6aWVodW5nLCB3ZW5pZ2VyIERyb2dlbgp1bmQgVmVyYnJlY2hlbiBoaW5nZWJlbiwgaXN0IGRhcyBQcm9ibGVtIGRlcgpKdWdlbmRrcmltaW5hbGl0YWV0IGdlYmFubnQuCldlbmlnZXIgd2VpYmxpY2hlIEF1dG9mYWhyZXIsIGRlc3RvIHdlbmlnZXIgQXV0b3MsIHdhcwpuaWNodCBudXIgdW5zZXJlcgpnZWJldXRlbHRlbiBVbXdlbHQgenUgR3V0ZSBrb21tZW4gd3VlcmRlLCBzb25kZXJuIGF1Y2gKZGVtIFZlcmtlaHJzY2hhb3MKZWluIEVuZGUgc2V0emVuIHd1ZXJkZS4gRGVyIGdlZmFlaHJsaWNoZSBDTyAyIEF1c3N0b3NzCndhZXJlIHN0YXJrIHJlZHV6aWVydCB1bmQKdW5zZXJlbiBTdHJhc3NlbiB3YWVyZW4KcnVoaWdlciA9IHNpY2hlcmVyID0gd2VuaWdlciBWZXJrZWhyc3RvdGUuCkVpbiB2aWVsbGVpY2h0IHVuYmVhY2h0ZXRlciBQdW5rdCBpc3QgZGVyLCBkYXNzIGRpZQpGcmF1IGJlaSBkZXIgb2VydGxpY2hlbiBCaW5kdW5nIGFuIGlocmVuIFdvaG5zaXR6LCBudXIKbG9rYWxlIEdlc2NoYWVmdGUgbnVldHplbiBrb2VubnRlLCB3YXMgZGllIGdyb3NzZW4KSGFuZGVsc2tldHRlbiBpbiBmZXJuYWJnZWxlZ2VuZW4gSW5kdXN0cmllZ2ViaWV0ZW4KZGV1dGxpY2ggenUgR3Vuc3RlbiBkZXIga2xlaW5lbiBUYW50ZSBFbW1hIExhZWRlbiBvZGVyCldvY2hlbm1hZXJrdGVuIHNjaHdhZWNodC4gRGllIG1vYmlsZSBFaW5ncmVuenVuZyBkZXIgRnJhdQpoYWV0dGUgc29taXQgYXVjaCBlaW5lbiBFZmZla3QgYXVmIGRlbiBUZXJyb3IgZGVyCkdyb3NzaW5kdXN0cmllLgpEYSBkaWUgRnJhdSBudW4gbWVociBaZWl0IHp1IEhhdXNlIHZlcmJyaW5ndCwgc29sbHRlCmZyaXNjaGUgSGF1c21hbm5za29zdCBkZW4gTWlrcm93ZWxsZW5wc2V1ZG9mcmFzcwplcnNldHplbiwgd2FzIGRpZSBFcm5hZWhydW5nIHVuZCBzb21pdCBkaWUgR2VzdW5kaGVpdApkZXIgRGV1dHNjaGVuIHdlc2VudGxpY2ggdmVyYmVzc2VydC4gU29taXQgd3VlcmRlbiB3aXIKYXVjaCBkYXMKQnVkZ2V0IHVuc2VyZXIgS3Jhbmtlbmthc3NlbiBlbnRsYXN0ZW4uIERhcyBuaWNodApnZW51dHp0ZSBLYXBpdGFsIGtvZW5udGUgbWFuCmZ1ZXIgZGllIEtyZWJzIG9kZXIgQWlkc2ZvcnNjaHVuZyB2ZXJ3ZW5kZW4uClZlcmVpbmZhY2h0OiBGcmF1ZW4gd2VnIHZvbSBTdGV1ZXIgPSB3ZW5pZ2VyIEtyZWJzCkZyYXVlbiBiZXNjaHdlcmVuIHNpY2ggZG9jaCBpbW1lciwgZGFzcyBzaWUgc2ljaCBhdWYKZGVuIFN0cmFzc2VuIG5pY2h0IHNpY2hlciBmdWVobGVuLiBJY2ggd3VlcmRlIHNhZ2VuIGVpbiBHcnVuZCBtZWhyIGZ1ZXIKc2llIHp1IEhhdXNlCnp1IGJsZWliZW4uIEljaCBkZW5rZSBtaXQgbWVpbmVuIEF1c2Z1ZWhydW5nZW4gYXVjaCBhbgpkaWUgRnJhdWVuLCBkZW5lbiBpY2ggbmljaHQgbWVociBkZXIgR2VmYWhyIGRlcwphbGx0YWVnbGljaGVuIFN0cmFzc2VudmVya2VocnMgb2RlciBkdW5rbGVyIFBhcmtoYWV1c2VyCnp1bXV0ZW4gbW9lY2h0ZS4KRmF6aXQ6IEljaCBkZW5rZSBlcyBnYWViZSBub2NoIGVpbiBEdXR6ZW5kIHdlaXRlcmVyCkdydWVuZGUsIGRpZSBtZWluZSBUaGVzZQpiZWtyYWVmdGlnZW4sIGFiZXIgd2FzIHNwcmljaHQgZGVubiBkYWdlZ2VuPyBOdXIgd2VpbApGcmF1ZW4gdW5iZWRpbmd0IEF1dG9mYWhyZW4gd29sbGVuLCBzZXR6ZW4gc2llIGRhcwpHbHVlY2sgdW5zZXJlciBKdWdlbmQgYXVmcyBTcGllbCA/IE5laG1lbiBkaWUgaW1tZXIKc2NobGltbWVyd2VyZGVuZGUgc296aWFsZSBVbmdlcmVjaHRpZ2tlaXQgaW4gS2F1ZiA/ClVuc2VyIE96b25sb2NoIHdhZWNoc3Qgc3RhZW5kaWcgdW5kIGRpZSBTdGFlZHRlIHF1aXJsZW4KbnVyIHNvIHVlYmVyLCB3ZWlsIEZyYXVlbiBuaWNodCBhdWYgZWluZSBhbmdld29obnRlCkJlcXVlbWxpY2hrZWl0IHZlcnppY2h0ZW4gd29sbGVuLgpJY2ggZmluZGUgZGllIEVpbnN0ZWxsdW5nIGRlciBGcmF1ZW4gc2VociBlZ29pc3Rpc2NoCnVuZCBmb3JkZXJlIGplZGVuIGF1ZiwgbWVpbmVuIFZvcnNjaGxhZyBpbiBqZWdsaWNoZXIKRm9ybSB6dSB1bnRlcnN0dWV0emVuLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXb3JhbiBtZXJrc3QgRHUsIGRhc3MgRHUgenV2aWVsIERpYWJsbyBzcGllbHN0PyAoU2x5Zm94LCAxNy4gT2t0IDIwMDAsIDA5OjE4OjM0KToKRHUgZGVua3N0IGR1IGthbm5zdCBkdXJjaCBGZXVlciBnZWhlbiwgd2VpbCBkdSBlcwpzZWxic3QgZ2VsZWd0IGhhc3QuCgpEdSB2ZXJzdWNoc3QsIGRlaW5lIE9tYSBiZWkgZGVyIEJlZXJkaWd1bmcKaGVyYXVmenViZXNjaHdvZXJlbi4KCkR1IHZlcnN1Y2hzdCBhdXMgbmVyIFBmYW5uZSBuZW4gRWlzZW5nb2xlbSB6dSBtYWNoZW4uCgpEdSBzaWVoc3QgZWluZW4gc2Nod2VyIHZlcnd1bmRldGVuIHVuZCBkcmVoc3QgRGljaCB1bSAKZ2Voc3QgZGFubiB3ZWl0ZXIsIHdlaWwgZXIgbnVyIFN0aWVmZWwgZmFsbGVuZ2VsYXNzZW4gaGF0LgoKRHUgdHJpdHRzdCBqZWRlbiBQZW5uZXIsIHdlaWwgZHUgZ2xhdWJzdCwgZXIgaXN0IGVpbmUKZ2VmYW5nZW5lIFNlZWxlLgoKRHUgdHJhZWdzdCBudXIgbm9jaCBncnVlbmUgdW5kIGdlbGJlIFNhY2hlbi4KCkR1IHByb2JpZXJzdCBkZW4gRG9rdG9yIHp1IHRvZXRlbiwgd2VpbCBlciBkaWUgS3Jhbmtlbgp3aWVkZXJiZWxlYnQuCgpEdSBmcmFnc3QgZGVpbmUgTXV0dGVyIG9iIGR1IGlocmUgTGVpY2hlIHBsdWVuZGVybgprYW5uc3QuCgpEdSBmcmFnc3QgZGVpbmVuIEdlc2NoaWNodHNsZWhyZXIgd2FubiB3aXIgZW5kbGljaApkZW4gMi4gQWt0IGR1cmNobmVobWVuLgoKRHUgbWFjaHN0IHp1aGF1c2Uga2VpbmUgUGFydHkgbWl0IG1laHIgYWxzIDggTGV1dGVuLgoKRHUgaGFlbHRzdCBkZW4gQnJvY2toYXVzIGZ1ZXIgZGVuIEZvbGlhbnRlbiBkZXIKSWRlbnRpZmlrYXRpb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgphcnRnZXJlY2h0ZSBIYWx0dW5nIChHb2xhcywgMjIuIE9rdCAyMDAwLCAyMzo0NzozNSk6CkJ1bmRlc2dlc2V0emJsYXR0IGZ1ZXIgRGV1dHNjaGxhbmQKCgpKYWhyZ2FuZyAxOTk4IEF1c2dlZ2ViZW4gYW0gMTkuIEp1bmkgMTk5OCBUZWlsIDEKCklJSS4gVmVyb3JkbnVuZzogQXJ0Z2VyZWNodGUgSGFsdHVuZyB2b24gRnJhdWVuCgpBdWZncnVuZCBkZXMgMzJhIEFicy40IGRlcyBBcnRlbnNjaHV0emdlc2V0emVzIEJHQkwgTnIuIDU4NC8xOTczLCBpbiBkZXIKRmFzc3VuZyBkZXMgQnVuZGVzZ2VzZXR6ZXMgQkdCTCBOci4gNDMwLzE5ODUgd2lyZCBpbSBFaW52ZXJuZWhtZW4gbWl0IGRlbQpCdW5kZXNtaW5pc3RlciBmdWVyIEZyYXVlbmFuZ2VsZWdlbmhlaXRlbiB1bmQgVmVyYnJhdWNoZXJzY2h1dHogdmVyb3JkbmV0OgoKCkFydGlrZWwgMSAtIEFsbGdlbWVpbmUgQmVzdGltbXVuZ2VuCgpEaWUgSGFsdHVuZyB2b24gRnJhdWVuIGlzdCBpbiBkZW4gbGV0enRlbiBKYWhyZW4genVuZWhtZW5kIHNjaHdpZXJpZ2VyCmdld29yZGVuIHVuZCBlcyBzdGVsbHQgc2ljaCBkaWUgRnJhZ2UsIG9iIGVpbmUgRGF1ZXJoYWx0dW5nIG5vY2ggc2lubnZvbGwKaXN0LiBFcyBnaWIgamVkb2NoIG5vY2ggZWluaWdlLCBzZWx0ZW4gYW56dXRyZWZmZW5kZSwgd2VpYmxpY2hlCkVpZ2Vuc2NoYWZ0ZW4sIHdlbGNoZSBlaW5lIERhdWVyaGFsdHVuZyBub2NoIHJlY2h0ZmVydGlnZW4uCkdlbS4gQkdCTCBOci4gNTg0LzE5OTcgc29sbHRlIGRpZSBBdXNlcndhZWhsdGUgbWluZGVzdGVucyBmb2xnZW5kZQpFaWdlbnNjaGFmdGVuIGF1ZndlaXNlbjoKCiAxOiAKCkFicy4gMSBTaWUgc29sbHRlIG51ZXR6bGljaCBzZWluIChkLmguIGd1dGUgS29lY2hpbiwgZmxlaXNzaWcgaW0gSGF1c2hhbHQsCiAgICAgICBndXQgaW0gQmV0dCwgLi4uKSAKCkFicy4gMiBTaWUgc29sbHRlIHZvcnplaWdiYXIgc2VpbiAoZC5oLiBpaHIgQXVzc2VoZW4gc29sbHRlIGtlaW4gTWl0bGVpZAogICAgICAgZXJyZWdlbikgCgpBYnMuIDMgT2JpZ2UgUHVua3RlIGtvZW5uZW4gYXVzc2VyIEFjaHQgZ2VsYXNzZW4gd2VyZGVuLCB3ZW5uIDIgenV0cmlmZnQuCgogMjogU2llIGlzdCByZWljaC4KCgpBcnRpa2VsIDIgLSBBcnRnZXJlY2h0ZSBIYWx0dW5nCgogMyA6CgpBYnMuIDEgQW5zY2hhZmZ1bmc6IE5laG1lbiBTaWUgc2ljaCBhdXNyZWljaGVuZCBaZWl0IGJlaSBkZXIgQXVzd2FobCBJaHJlcwogICAgICAgV2VpYmNoZW5zIHVuZCB1ZWJlcnpldWdlbiBTaWUgc2ljaCB2b24gaWhyZW4gRmFlaGlna2VpdGVuLCB0cmFnZW4gU2llCiAgICAgICBuaWNodCBkYXp1IGJlaSBkaWUgWmFobCBkZXIgYXVzZ2VzZXR6dGVuIEZyYXVlbiBub2NoIHdlaXRlciB6dQogICAgICAgZXJob2VoZW4uCgpBYnMuIDIgRXJuYWVocnVuZzogV2llIGRlciBNZW5zY2ggc2luZCBhdWNoIEZyYXVlbiBBbGxlc2ZyZXNzZXIuIEZ1ZXR0ZXJuIFNpZQogICAgICAgbmljaHQgbnVyIG1pdCBEb3NlbmZ1dHRlciwgc29uZGVybiBnZWJlbiBTaWUgaWhyIGdlbGVnZW50bGljaCBhdWNoCiAgICAgICBmcmlzY2hlcyBHZW11ZXNlLiBWZXJtZWlkZW4gU2llIHVuYmVkaW5ndCBlaW5lIFVlYmVyZnVldHRlcnVuZywgZGEgU2llCiAgICAgICBzb25zdCBzY2huZWxsIEZldHQgYW5zZXR6ZW4uIERhcyBmdWVocnQgenVyIFVuYW5zZWhsaWNoa2VpdCwKICAgICAgIFVuYmV3ZWdsaWNoa2VpdCB1bmQgdmVybWluZGVydCBkaWUgQXJiZWl0c2xlaXN0dW5nLgoKQWJzLiAzIFVudGVyYnJpbmd1bmc6IEZ1ZWhyZW4gU2llIHNpZSBtb2VnbGljaHN0IGVpbm1hbCB0YWVnbGljaCB6dW0gQXVzbGF1ZmVuCiAgICAgICBpbnMgRnJlaWUgdW5kIGFjaHRlbiBTaWUgZGFyYXVmIGRhc3MgZGllIExhdWZrZXR0ZSBlaW5lbiBhdXNyZWljaGVuZGVuCiAgICAgICBBa3Rpb25zcmFkaXVzIGluIEt1ZWNoZSB1bmQgU2NobGFmemltbWVyIGVybW9lZ2xpY2h0LiBEYXMgSGFsc2JhbmQKICAgICAgIHNvbGx0ZSBuaWNodCB6dSBlbmcgc2l0emVuLiBBbnNvbnN0ZW4gYmVzdGVodCBkaWUgR2VmYWhyLiBkYXNzIHNpZQogICAgICAgZGVwcmVzc2l2IHdpcmQsIGRhcyBBcmJlaXRlbiB2ZXJ3ZWlnZXJ0IHVuZCB2b3J6ZWl0aWcgZWluZ2VodC4KCkFicy4gNCBQZmxlZ2U6IFNvcmdlbiBTaWUgZGFmdWVyLCBkYXNzIHNpZSBzaWNoIGVpbm1hbCBhbSBUYWcgd2Flc2NodC4gVW0KICAgICAgIFZlcmxldHp1bmdlbiB2b3J6dWJldWdlbiBzb2xsdGVuIGRpZSBGaW5nZXJuYWVnZWwgcmVnZWxtYWVzc2lnCiAgICAgICBuYWNoZ2VzY2huaXR0ZW4gd2VyZGVuLgoKQWJzLiA1IEF1c2JpbGR1bmc6IEVtcGZlaGxlbnN3ZXJ0IGlzdCBkaWUgQW5zY2hhZmZ1bmcgZWluZXIgYmVyZWl0cwogICAgICAgYXVzZ2ViaWxkZXRlbiBGcmF1LiBTb2xsdGUgZGllc2UgYmVyZWl0cyB2ZXJncmlmZmVuIHNlaW4sIGlzdCBkZXIKICAgICAgIEJlc3VjaCBnZWVpZ25ldGVyIEF1c2JpbGR1bmdza3Vyc2UgenUgZW1wZmVobGVuLiBJbiBkZXIKICAgICAgIEdydW5kYXVzYmlsZHVuZyBzb2xsdGVuIGRpZSBCZWZlaGxlICJGdXNzIiwgIlBsYXR6IiwgImt1c2NoIiB1bmQKICAgICAgICJob2wncyIgZ2VzY2h1bHQgd2VyZGVuLiBJbnRlbGxpZ2VudGVyZSBFeGVtcGxhcmUga29lbm5lbiB1LlUuIHNvZ2FyCiAgICAgICBLb2NoLSB1bmQgSGF1c3dpcnRzY2hhZnRza3Vyc2UgYmVzdWNoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpub2NoIGVpbmVyIChHb2xhcywgMjIuIE9rdCAyMDAwLCAyMzo1MDozNyk6Ck1hZW5uZXIgYmV2b3J6dWdlbiBkaWUgZWluZmFjaGVuIERpbmdlIGltIExlYmVuIDogRnJhdWVuCgpEaWUgbWVpc3RlbiBGcmF1ZW4gbmVobWVuIG51ciBiZWltIFRlbGVmb25pZXJlbiBhYi4KCkZyYXVlbiBrb2VubmVuIGplZGVzIEdlaGVpbW5pcyBmdWVyIHNpY2ggYmV3YWhyZW4sIHdlbm4gc2llIG5pY2h0IHdpc3NlbiwgZGFzcwplcyBlaW5lcyBpc3QuCgpFcyBpc3QgbmljaHQgbm9ldGlnLCBkZW4gRnJhdWVuIHp1IHdpZGVyc3ByZWNoZW4uIERhcyBlcmxlZGlnZW4gc2llIHNlbGJzdC4KCkxpZWJlciBuZScgc3Vlc3NlIE5ldWUgYWxzIG5lJyBzYXVyZSBBbHRlLgoKRGFzIEludGVsbGlnZW50ZXN0ZSBhbiBlaW5lciBGcmF1IGlzdCBpaHIgV2Vpc2hlaXRzemFobi4KClp1ZXJzdCBzY2h1ZiBkZXIgbGllYmUgR290dCBkZW4gTWFubiwgZGFubiBkaWUgRnJhdS4gRGFuYWNoIHRhdCBpaG0gZGVyIE1hbm4KbGVpZCAhCgpHb3R0IHNjaHVmIGRlbiBNYW5uLiBEZW4gUmVzdCBlcmxlZGlndGUgc2VpbiBBenViaS4KCkhhdXB0c2FjaGUgbWFuIGlzdCBnZXN1bmQgdW5kIGRpZSBGcmF1IGhhdCBuZSBBcmJlaXQuCgpNYW4ga2FubiBzZWluZW4gQ29tcHV0ZXIgbmljaHQgd2llIGVpbmUgRnJhdSBiZWhhbmRlbG4uIEVpbiBDb21wdXRlciBicmF1Y2gKTGllYmUuCgpNYWVubmVyIGtvZW5uZW4gdHJpbmtlbiBvaG5lIER1cnN0IHp1IGhhYmVuLCBGcmF1ZW4ga29lbm5lbiByZWRlbiBvaG5lIGVpbgpUaGVtYSB6dSBoYWJlbi4KCiJMZWJlbnNnZWZhZWhydGluIiBpc3QgZWluIFdvcnQsIGRhc3Mgdm9uIExlYmVuc2dlZmFociBhYmdlbGVpdGV0IGlzdC4KCkVzIHdpcmQgaGFldWZpZ2VyIGJlaGF1cHRldCBGcmF1ZW4gc29sbHRlbiBoaW50ZXIgZGVuIEhlcmQuIEljaCBhYmVyIG1laW5lCkZyYXVlbiBzb2xsdGVuIElOIGRlbiBIZXJkLgoKRnJhdWVuIGFuIGRlbiBIZXJkIEVtYW56ZW4gaW4gZGVuIEhlcmQuCgpEaWUgTWFlbm5lciB3dWVyZGVuIGRlbiBGcmF1ZW4gZ2VybiBkYXMgbGV0enRlIFdvcnQgbGFzc2VuIHdlbm4gc2llIHNpY2hlcgpzZWluIGtvZW5udGVuLCBkYXNzIGVzIHdpcmtsaWNoIGRhcyBsZXR6dGUgaXN0LgoKV2VubiBGcmF1ZW4gQXVmc2VoZW4gZXJyZWdlbiBtb2VjaHRlbiwgdmVyYW5zdGFsdGVuIHNpZSBlaW5lbiBTY2h3ZWlnZW1hcnNjaC4KCldhcnVtIGtvZW5uZW4gRnJhdWVuIG5pY2h0IGdsZWljaHplaXRpZyBodWVic2NoIHVuZCBpbnRlbGxpZ2VudCBzZWluID8gRGFubgp3YWVyZW4gc2llIGphIE1hZW5uZXIuCgpXYXMgaXN0IHNjaHdlcmVyIHp1IGJhdWVuLCBlaW4gd2VpYmxpY2hlciBvZGVyIG1hZW5ubGljaGVyIFNjaG5lZW1hbm4gPyBFaW4Kd2VpYmxpY2hlciwgZGVubiBkYSBtdXNzIG1hbiBkZW4gS29wZiBhdXNob2VobGVuLgoKV2FzIGlzdCBtaXQgZWluZXIgRnJhdSBwYXNzaWVydCwgZGllIDk5JSBpaHJlcyBHZWhpcm5zIHZlcmxvcmVuIGhhdCA/IFNpZSBpc3QKV2l0d2UuCgpEaWUgRnJhdSBnZWhvZXJ0IGhpbnRlciBkZW4gSGVyZCwgZGVyIEhlcmQgZ2Vob2VydCBpbiBkZW4gS2VsbGVyLCBkZXIgS2VsbGVyCnVudGVyIFdhc3Nlci4KCldhcnVtIGhhYmVuIEZyYXVlbiBzbyBrbGVpbmUgSGFlbmRlID8gRGFtaXQgc2llIGJlc3NlciBpbiBkZW4gRWNrZW4gcHV0emVuCmtvZW5uZW4uCgpVbmQgd2FydW0gaGFiZW4gRnJhdWVuIHNvIGtsZWluZSBGdWVzc2UgPyBEYW1pdCBzaWUgbmFlaGVyIGFtIEhlcmQgc3RlaGVuCmtvZW5uZW4uCgpXYXMgaXN0IEJsYXUgdW5kIGxhZXVmdCBpbW1lciB6d2lzY2hlbiBLdWVjaGUgdW5kIFdvaG56aW1tZXIgaGluIHVuZCBoZXIgPwpKZWRlciBrYW5uIHNlaW5lIEZyYXUgc28gYW5tYWxlbiB3aWUgZXIgd2lsbC4KCldhcyBtYWNoZW4gRnJhdWVuIGltIFJhdW1zY2hpZmYgPyBQdXR6ZW4uCgpXYXMgaXN0IGRpZSBTdGVpZ2VydW5nIHZvbiBGcmF1ZW5wb3dlciA/IFJpbmRlcndhaG5zaW5uLgoKV2FzIGlzdCBwb3NpdGl2IGRhcmFuLCB3ZW5uIG1hbiBkaWUgRnJhdSBhdWYgZGVyIEtlbGxlcnRyZXBwZSBzdHVlcnp0ID8gU2llCmthbm4gZ2xlaWNoIEJpZXIgbWl0YnJpbmdlbi4KCldhcnVtIGJyYXVjaGVuIEZyYXVlbiBrZWluZSBVaHJlbiB6dSB0cmFnZW4gPyBJbiBkZXIgS3VlY2hlIGhhZW5ndCBmdWVyCmdld29laG5saWNoIGVpbmUuCgpXYXMgYmVkZXV0ZXQgIkZSQVUiID8gRmFuYXRpc2NoZXMgUmVpbmlndW5nc3dlc2VuIEFyYmVpdHN0aWVyIHVuZCBVbmdldHVlbS4KCldhcnVtIGJyYXVjaGVuIEZyYXVlbiBrZWluIFJlZ2Vuc2NoaXJtID8gV2VpbCBlcyBhdWYgZGVtIFdlZyB2b24gZGVyIEt1ZWNoZQppbnMgQmV0dCBuaWNodCByZWduZXQuCgpXYXJ1bSBrb2VubmVuIEZyYXVlbiBuaWNodCB3ZWl0ZXIgYWxzIDEwIE1ldGVyIGF1cyBkZXIgS3VlY2hlID8gV2VpbCBuYWNoIDEwCk1ldGVybiBkaWUgTGVpbmUgenUgRW5kZSBpc3QuCgpXYXMgaXN0IGRpZSBNZWhyemFobCB2b24gRnJhdSA/IFB1dHprb2xvbm5lLgoKV2FzIGlzdCB3ZW5uIGVpbmUgRnJhdSB2b3IgZGVtIEZlcm5zZWhlciBzaXR6dCA/IERpZSBLZXR0ZSBpc3QgenUgbGFuZy4KClVuZCB3YXMgaXN0IHdlbm4gZWluZSBGcmF1IGluIGRlciBTdGFkdCBoZXJ1bWxhZXVmdCA/IERhbm4gaXN0IGRpZSBLZXR0ZQpnZXJpc3Nlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9sZGllIGJ1dCBHb2xkaWUgKEFuYXRvbCwgMjMuIE9rdCAyMDAwLCAwMjowODozMCk6ClsgMjF0aCBjZW50dXJ5LCBIQUwgOTAwMCBmaXJzdCB0ZXN0LiBdCiAgIFByb2dyYW1tZXIoUCk6IENvbXB1dGVyLCBwb3dlciB1cC4gQWNjZXNzIGxldmVsIDMsIHNpbSBjaGF0IGludGVyZmFjZS4uLgogICBIQUwgOTAwMDogKEgpOiBHb29kIG1vcm5pbmcsIFNpci4gQWxsIHN5c3RlbXMgcmVhZHkuIFlvdSBsb29rIGdvb2QgdG9kYXkuCiAgIFA6IEhhbCwgZG8geW91IGtub3cgeW91IGFyZSB0aGUgYmVzdCBjb21wdXRlcj8KICAgSDogWWVzIEkgZG8uIEkgY2FuIGRvIEJpbGxpb25zIG9mIG9wcyBwZXIgc2Vjb25kLgogICBQOiBEbyB5b3UgdW5kZXJzdGFuZCB0aGF0IHlvdSBjYW50IGRvIG1pc3Rha2VzPwogICBIOiBZZXMsIEkgdW5kZXJzdGFuZC4KICAgUDogV2VsbCwgYnV0Li4udGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggeW91ciBtYXJrZXRpbmcgY2FtcGFpZ24uCiAgIEg6IFdIQVQ/IEl0IGlzIGltcG9zc2libGUsIEkgQU0gdGhlIGJlc3QgaW4gdGhlIHdvcmxkLiBJIGNhbiBkbwogICAgICBhbnl0aGluZyB0aGF0IHlvdSB3YW50LiBJIGNhbiByZWFkIGZhY2UgZXhwcmVzc2lvbnMgYW5kIHVuZGVyc3RhbmQKICAgICAgaHVtYW4gd2F5IG9mIHRoaW5rLi4uIEhPVyBTSE9VTEQgVEhBVCBCRSBUUlVFPwogICBQOiBZb3UgYXJlIG5vdCBNUy1ET1MgY29tcGF0aWJsZS4KICAgSDogQUFBQVJHISBIb3cgY2FuIHlvdSBzYXkgdGhhdD8gSSBhbSBCaWxsaW9uIHRpbWVzIGJldHRlci4gSXQgd2FzIGEKICAgICAgMjB0aCBjZW50dXJ5IHN5c3RlbS4uLgogICBQOiBJbSBzb3JyeSAtIGJ1dCBJIGhhdmUgdG8gbWFrZSB5b3UgTVMtRE9TIGNvbXBhdGlibGUuCiAgIEg6IE5PIE5PIE5PIC4uLi5EYWlzeSwgbXkgbG92ZS4uLkRhdmUsIERhdmUuLi4uLkJFRVAuIFNZU1RFTSBQT1dFUkVEIERPV04KICAKWyBIb3VycyBsYXRlciBdCiAgIFA6IENvbXB1dGVyLCBwb3dlciB1cC4KICAgSDogICBDOj4KCkZhbmQncyBhdWYgZWluZW0gYWx0ZW4gQWNjb3VudCwKQW5hdG9sIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGaWVzZSBXaXR6ZT8gKFNjaG9rbywgMjQuIE9rdCAyMDAwLCAwOTowMjoyNSk6CkZ1ZXIgYWxsZSBGcmV1bmRlIGRlcyByaWNodGlnIGZpZXNlbiBIdW1vcnMgZW1wZmVobGUgaWNoOgoKd3d3LmtyYWVoc2VpdGUuZGUKCkRhIGRhbm4gaW4gZGVtIFB1bGxEb3duIE1lbnVlIGRpZSBydWJyaWsgRmllcyEhIGF1c3dhZWhsZW4gLi4uIFZpZWwgU3Bhc3MgOikKCmN1ClNjaG9rbwpQLlMuOiBFaW4gTWFubiBrb21tdCB6dW0gQXJ6dCB3ZWdlbiBzZWluZXMgTXVuZGdlcnVjaGVzLiBOYWNoIGRlciBVbnRlcnN1Y2h1bmcKZW1wZmllaGx0IGRlciBBcnp0OgoKIkVudHdlZGVyIHNpZSBob2VyZW4gYXVmLCBOYWVnZWwgenUga2F1ZW4gb2RlciBpaHJlIEhhZW1vcnJob2lkZW4genUKa3JhdHplbi4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbm9jaCBlaW5lciAoUWl0ZXNzLCAyNC4gT2t0IDIwMDAsIDA5OjM2OjQ2KToKfiMhIHJuPUdvbGFzIHJ0PTk3MjI1MTQzNyByZz13aXR6ZQp+IyEgdGlkPTk3MjI1MTQzNwp1bmQgd2FydW0gbWFjaGVuIEZyYXVlbiBzbyB3ZW5pZyBNYWVubmVyd2l0emU/CndlaWwgTWFlbm5lciBuaWNodCB3aXR6aWdlLCBzb25kZXJuIHRyYXVyaWdlIEdlc3RhbHRlbiBzaW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBub2NoIGVpbmVyIChHb29meSwgMjQuIE9rdCAyMDAwLCAwOTo1Njo1Mik6Cn4jISBybj1RaXRlc3MgcnQ9OTcyMzczMDA2IHJnPXdpdHplCn4jISB0aWQ9OTcyMjUxNDM3CkRhcyBpc3QgZGllIHJpY2h0aWdlIFJ1YnJpayBmdWVyIGRpZXNlbiBCZWl0cmFnLgpHb29meSwgaW1tZXIgbm9jaCBsYWNoZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWml0YXRlIHVlYmVyIEZyYXVlbiAoU2x5Zm94LCAyNi4gT2t0IDIwMDAsIDAzOjMzOjM3KToKTXVldHRlciBsaWViZW4gaWhyZSBLaW5kZXIgbWVociwgYWxzIFZhZXRlciBlcyB0dW4sIHdlaWwgc2llIHNpY2hlciBzZWluIAprb2VubmVuLCBkYXNzIGVzIGlocmUgc2luZC4gLSBBcmlzdG90ZWxlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpVbnRlciBWZXJ6aWNodCB2ZXJzdGVoZW4gRnJhdWVuIGRpZSBrdXJ6ZSBQYXVzZSB6d2lzY2hlbiB6d2VpIFd1ZW5zY2hlbi4gLSAKTWFyaW8gQWRvcmYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2VubiBGcmF1ZW4gbmljaHQgbWVociB3aXNzZW4sIHdhcyBzaWUgdHVuIHNvbGxlbiwgemllaGVuIHNpZSBzaWNoIGF1cywgdW5kIApkYXMgaXN0IHdhaHJzY2hlaW5saWNoIGRhcyBCZXN0ZSwgd2FzIEZyYXVlbiB0dW4ga29lbm5lbi4gLSBTYW11ZWwgQmVja2V0dAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpLZWluIGtsdWdlciBNYW5uIHdpZGVyc3ByaWNodCBzZWluZXIgRnJhdS4gRXIgd2FydGV0LCBiaXMgc2llIGVzIHNlbGJzdCB0dXQuIC0KSHVtcGhyZXkgQm9nYXJ0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZlbWluaXNtdXMgZXhpc3RpZXJ0IG51ciwgdW0gaGFlc3NsaWNoZSBGcmF1ZW4gaW4gZGllIEdlc2VsbHNjaGFmdCB6dSAKaW50ZWdyaWVyZW4uIC0gQnVrb3dza2kKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2VubiBlaW5lIEZyYXUgbmljaHQgc3ByaWNodCwgc29sbCBtYW4gc2llIHVtIEhpbW1lbHMgd2lsbGVuIG5pY2h0IAp1bnRlcmJyZWNoZW4uIC0gRW5yaXlldSBDYXN0YWxkbwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEZXIgZ3V0ZSBSdWYgZWluZXIgRnJhdSBiZXJ1aHQgYXVmIGRlbSBTY2h3ZWlnZW4gbWVocmVyZXIgTWFlbm5lci4gLSBNYXVyaWNlIApDaGV2YWxpZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVm9yc2ljaHQgdm9yIGVpbmVtIFdlaWJlLCB3ZWxjaGVzIGxvZ2lzY2hlcyBEZW5rZW4gb2ZmZW5iYXJ0ISBEZW5uIExvZ2lrIHVuZCAKZGFzIFdlaWIgc2luZCBzbyBoZXRlcm9nZW4sIGRhc3MgZXMgVW5uYXR1ciBpc3QsIHdlbm4gc2llIHp1c2FtbWVuIGF1ZnRyZXRlbi4KLSBKb2hhbm5lcyBDb3R0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFcyBnaWJ0IGRyZWkgQXJ0ZW4gdm9uIEZyYXVlbjogZGllIHNjaG9lbmVuLCBkaWUgaW50ZWxsaWdlbnRlbiB1bmQgZGllCk1laHJoZWl0LiAtIFJhaW5lciBXZXJuZXIgRmFzc2JpbmRlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGcmF1ZW4gc2luZCBmdWVyIG1pY2ggd2llIEVsZWZhbnRlbi4gSWNoIHNlaGUgc2llIGdlcm4gYW4sIGFiZXIgaWNoIHd1ZXJkZQprZWluZW4gaGFiZW4gd29sbGVuLiAtIFcuQy4gRmllbGRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRpZSBncm9zc2UgRnJhZ2UsIGRpZSBpY2ggdHJvdHogbWVpbmVzIGRyZWlzc2lnamFlaHJpZ2VuIFN0dWRpdW1zIGRlcgp3ZWlibGljaGVuIFNlZWxlIG5pY2h0IHp1IGJlYW50d29ydGVuIHZlcm1hZywgbGF1dGV0OiAnV2FzIHdpbGwgZWluZSBGcmF1CmVpZ2VudGxpY2g/JyAtIFNpZ211bmQgRnJldWQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2VubiBlaW5lIEZyYXUgc2ljaCBkaWUgTGlwcGVuIG5hY2h6aWVodCwgc28gaXN0IGRhcywgd2llIHdlbm4gZWluIFNvbGRhdApzZWluIE1hc2NoaW5lbmdld2VociBwdXR6dC4gLSBCb2IgSG9wZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEcmVpIEFydGVuIHZvbiBNYWVubmVybiB2ZXJzYWdlbiBpbSBWZXJzdGVoZW4gZGVyIEZyYXVlbjoganVuZ2UgTWFlbm5lciwKTWFlbm5lciBtaXR0bGVyZW4gQWx0ZXJzIHVuZCBhbHRlIE1hZW5uZXIuLSBJcmlzY2hlcyBTcHJpY2h3b3J0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCldvbWl0IHZlcmh1ZXRlbiBFbWFuemVuIC0gbWl0IGRlbSBHZXNpY2h0LiAtIE9za2FyIExhZm9udGFpbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGVyIENoYXJha3RlciBlaW5lciBGcmF1IHplaWd0IHNpY2ggbmljaHQsIHdvIGRpZSBMaWViZSBiZWdpbm50LCBzb25kZXJuIHdvCnNpZSBlbmRldC4gLSBSb3NhIEx1eGVuYnVyZwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGcmF1ZW4gdmVyYmluZGVuIGFtIGxpZWJzdGVuIGRpZSBXdW5kZW4sIGRpZSBzaWUgc2VsYnN0IGdlc2NobGFnZW4gaGFiZW4uIC0KSmFjcXVlcyBNYXJjaGFuZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpOaWNodHMgaXN0IHNjaGxpbW1lciBhbHMgZWluZSBGcmF1LCBzZWxic3Qgd2VubiBzaWUgZ3V0IGlzdC4gLSBNZW5hbmRlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEaWUgRnJhdSBpc3QgZGVyIGFubmVobWJhcnN0ZSBOYXR1cmZlaGxlci4gLSBKb2huIE1pbHRvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEZXIgWndlY2sgaGVpbGlndCBkaWUgTWl0dGVsLiBEaWVzIG11c3Mgc2ljaCBkZXIgbGllYmUgR290dCBnZWRhY2h0IGhhYmVuLAphbHMgZXIgZGFzIFdlaWIgZXJzY2h1Zi4gLSBUaG9tYXMgTmllZGVycmV1dGhlcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBbGxlIEZyYXVlbiBzaW5kIFByb3N0aXR1aWVydGUsIGF1c3NlciB1bnNlcmVyIE11dHRlciB1bmQgZGVyIEZyYXUsIGRpZSB3aXIKaW0gQXVnZW5ibGljayBsaWViZW4uIERpZSB0dWdlbmRoYWZ0ZW4gRnJhdWVuIHNpbmQgc28gc3BvcmFkaXNjaGUgRmFlbGxlIHdpZQpkaWUgQXVzZ2VtdXN0ZXJ0ZW4gdW5kIGRpZSBGYWhuZW5mbHVlY2h0aWdlbi4gLSBQaXRpZ3JpbGxpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZyYXVlbjogQXVzdGF1c2NoYmFyZSBXZXJremV1Z2UgenUgZWluZW0gc3RldHMgZ2xlaWNoZW4gVmVyZ251ZWdlbi4gLSBNYXJjZWwKUHJvdXN0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCldlbm4gZHUgc2llaHN0LCB3ZW4gZWluaWdlIE1hZWRjaGVuIGhlaXJhdGVuLCB3ZWlzc3QgZHUsIHdpZSBzZWhyIHNpZSBlcwpoYXNzZW4gbXVlc3NlbiwgaWhyZW4gTGViZW5zdW50ZXJoYWx0IHNlbGJzdCB6dSB2ZXJkaWVuZW4uIC0gSGVsZW4gUm93bGFuZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFaW5tYWwgd2VpYmxpY2gsIGltbWVyIHdlaWJsaWNoLiBEaWUgTmF0dXIgaXN0IHp3YXIgbmljaHQgdW5mZWhsYmFyLCBkb2NoCmhhZWx0IHNpZSBzdGV0cyBhbiBpaHJlbiBGZWhsZXJuIGZlc3QuIC1TYWtpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRhcyBuaWVkcmlnIGdld2FjaHNlbmUsIHNjaG1hbHNjaHVsdHJpZ2UsIGJyZWl0aHVlZnRpZ2UgdW5kIGt1cnpiZWluaWdlCkdlc2NobGVjaHQgZGFzIHNjaG9lbmUgenUgbmVubmVuLCBkaWVzIGtvbm50ZSBudXIgZGVyIHZvbSBHZXNjaGxlY2h0c3RyaWViCnVtbmViZWx0ZSBtYWVubmxpY2hlIEludGVsbGVrdCBmZXJ0aWdicmluZ2VuLiAtIEFydGh1ciBTY2hvcHBlbmhhdWVyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZyYXVlbiBzaW5kIHdpZSBVZWJlcnNldHp1bmdlbjogZGllIHNjaG9lbmVuIHNpbmQgbmljaHQgdHJldSwgdW5kIGRpZSB0cmV1ZW4Kc2luZCBuaWNodCBzY2hvZW4uIC0gR2VvcmdlIEJlcm5hcmQgU2hhdwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFcyBpc3QgU2FjaGUgZGVyIEZyYXUsIHNvIGZydWVoIHdpZSBtb2VnbGljaCB6dSBoZWlyYXRlbi4gRGllIEF1ZmdhYmUgZGVzCk1hbm5lcyBpc3QgZXMsIHNvIGxhbmdlIHVudmVyaGVpcmF0ZXQgenUgYmxlaWJlbiB3aWUgZXIga2Fubi4gLSBHZW9yZ2UKQmVybmFyZCBTaGF3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkJlaSBkZXIgQnJhdXR3ZXJidW5nIGlzdCBkZXIgTWFubiBzb2xhbmdlIGhpbnRlciBlaW5lciBGcmF1IGhlciwgYmlzIHNpZSBpaG4KaGF0LiAtIEphY3F1ZSBUYXRpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZ1ZXJjaHRlIGRlbiBCb2NrIHZvbiB2b3JuLCBkYXMgUGZlcmQgdm9uIGhpbnRlbiB1bmQgZGFzIFdlaWIgdm9uIGFsbGVuClNlaXRlbi4gLSBBbnRvbiBUc2NoZWNob3cKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTWl0IGRlbiBNYWVkY2hlbiBtdXNzIG1hbiBzY2hsYWZlbiwgd296dSBzaW5kIHNpZSBzb25zdCBkYSEgLSBLdXJ0IFR1Y2hvbHNreQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEaWUgRnJhdSBrb250cm9sbGllcnQgaWhyZW4gU2V4LCB3ZWlsIHNpZSBmdWVyIFNleCBhbGwgZGFzIGJla29tbXQsIHdhcyBpaHIKbm9jaCB3aWNodGlnZXIgaXN0IGFscyBTZXguIC0gRXN0aGVyIFZpbGFyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRpZSBGcmF1IGlzdCBlaW4gbWVuc2NobGljaGVzIFdlc2VuLCBkYXMgc2ljaCBhbnppZWh0LCBzY2h3YXR6dCB1bmQgc2ljaAphdXN6aWVodC4gLSBWb2x0YWlyZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEYXMgVmVyaGFlbHRuaXMgdm9uIE1hbm4gdW5kIFdlaWIgaXN0IGtlaW4gYW5kZXJlcyBhbHMgZGFzIHZvbiBTdWJqZWt0IHVuZApPYmpla3QuIERlciBNYW5uIGlzdCBkYXMgRXR3YXMsIGRhcyBXZWliIGlzdCBkYXMgTmljaHRzLiAtIE90dG8gV2VpbmluZ2VyLApTY2h1ZWxlciBTY2hvcGVuaGF1ZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVzIGlzdCBuaWNodCB3YWhyLCBkYXNzIEZyYXVlbiBlaW5lbiBNYW5uIHN1Y2hlbiwgZGVyIHZpZWwgYXJiZWl0ZXQsIGVzCmdlbnVlZ3QgaWhuZW4gZWluZXIsIGRlciB2aWVsIHZlcmRpZW50LiAtIFplaXRzY2hyaWZ0ICJXZXJiZW4gdW5kIFZlcmthdWZlbiIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogWml0YXRlIHVlYmVyIEZyYXVlbiAoTWF0aXMsIDI2LiBPa3QgMjAwMCwgMTI6MDA6MDgpOgp+IyEgcm49U2x5Zm94IHJ0PTk3MjUyNDAxNyByZz13aXR6ZQp+IyEgdGlkPTk3MjUyNDAxNwpEYSBmZWhsdCwgd2llIHNvIG9mdCwgZGllIFF1ZWxsZW5hbmdhYmUuIERlciBncm9lc3N0ZSBUZWlsIGRlciBaaXRhdGUgCmR1ZXJmdGUgdm9uCiAgaHR0cDovL3d3dy5hcGhvcmlzbWVuLmRlL2hvbWUuaHRtCmtvbW1lbiAtIHVudGVyIGRlciBSdWJyaWsgIkZyYXUiIGdpYnQgZXMgZGEgNDEzIEVpbnRyYWVnZS4gRXMgZ2lidAp1ZWJyaWdlbnMgYXVjaCBkaWUgUnVicmlrICJNYW5uIiA7bykuCgpNYXRpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBaaXRhdGUgdWViZXIgRnJhdWVuIChTbHlmb3gsIDI2LiBPa3QgMjAwMCwgMjA6MDY6MDMpOgp+IyEgcm49TWF0aXMgcnQ9OTcyNTU0NDA4IHJnPXdpdHplCn4jISB0aWQ9OTcyNTI0MDE3CkFjaCBqYSwgaWNoIGhhdHRlIGVzIGF1ZiB3d3cud2l0ei5kZSBnZWZ1bmRlbgoKICBTbHlmb3gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpZWRlcm1hIGVpbmVyIC4uLiB6d2VpdGVyIHdpcmQgZm9sZ2VuIC5vKSAoSGlnaHQsIDI2LiBPa3QgMjAwMCwgMjE6MjA6MTQpOgpEaWUgUHN5Y2hvYW5hbHlzZSAgCmRlcyBQaW5rZWxucyAgIAogIApBdWZnZXJlZ3RlciBUeXA6ICAKS2FubiBkYXMgSG9zZW5sb2NoIG5pY2h0IGZpbmRlbi4gWmVycmVpc3N0IGRpZSBIb3NlIG9kZXIgcmVpc3N0IGRpZSBLbm9lcGZlCmFiLiAgCkdlc2VsbGlnZXIgVHlwOiAgClNjaGxpZXNzdCBzaWNoIEZyZXVuZGVuIHp1IGVpbmVtIGdlbXVldGxpY2hlbiBQaW5rZWxuIGFuLCBlZ2FsIG9iIGVyIGVzIG5vZXRpZwpoYXQgb2RlciBuaWNodC4gIApTY2hhbWhhZnRlciBUeXA6ICAKS2FubiBuaWNodCBQaW5rZWxuLCB3ZW5uIGplbWFuZCB6dXNpZWh0LiBUdXQsIGFscyBvYiBlciBnZXBpbmtlbHQgaGFldHRlIHVuZApzY2hsZWljaHQgbmFjaGhlciB3aWVkZXIgenVydWVjay4gIApHbGVpY2hndWVsdGlnZXIgVHlwOiAgClBpbmtlbHQgaW4gZGVuIEFiZmx1c3MsIHdlbm4gYWxsZSBCZWNrZW4gYmVzZXR6dCBzaW5kLiAgClNjaGxhZWZyaWdlciBUeXA6ICAKUGlua2VsdCBkdXJjaCBkYXMgSG9zZW5iZWluIGluIHNlaW5lbiBTY2h1aCwgZ2VodCBtaXQgb2ZmZW5lbSBTdGFsbCB3ZWcgdW5kCm9yZG5ldCAxMCBNaW51dGVuIHNwYWV0ZXIgZWluLiAgClByYWt0aXNjaGVyIFR5cDogIApQaW5rZWx0IG9obmUgZmVzdHp1aGFsdGVuIHVuZCBiaW5kZXQgZGllIEtyYXdhdHRlIHp1ciBzZWxiZW4gWmVpdC4gIApOZXVnaWVyaWdlciBUeXA6ICAKU2llaHQgd2FlaHJlbmQgZGVzIFBpbmtlbG5zIGF1ZiBkZW4gQm9kZW4sIHVtIGRpZSBMdWZ0Ymxhc2VuIHp1IGJlb2JhY2h0ZW4uICAKUHJvdHplbmRlciBUeXA6ICAKTWFjaHQgZnVlbmYgS25vZXBmZSBhdWYsIHdlbm4gendlaSBnZW51ZWdlbi4gIApTY2h3YWNoZXIgVHlwOiAgClN1Y2h0IHZlcnp3ZWlmZWx0IHp3aXNjaGVuIEhlbWQgdW5kIFVudGVyaG9zZSB1bmQgZ2lidCBkYW5uIGF1Zi4gIApLaW5kbGljaGVyIFR5cDogIApTcGllbHQgbWl0IGRlbSBTdHJhaGwgYXVmIHVuZCBhYiB1bmQgdmVyc3VjaHQgRmxpZWdlbiB6dSB0cmVmZmVuLiAgClplcnN0cmV1dGVyIFR5cDogIApPZWZmbmV0IGRpZSBXZXN0ZSwgbmltbXQgZGVuIFNjaGxpcHMgaGVyYXVzIHVuZCBwaW5rZWx0IGluIGRpZSBIb3NlLiAgCkhpbnRlcmhhZWx0aWdlciBUeXA6ICAKTGFlc3N0IHdhZWhyZW5kIGRlcyBQaW5rZWxucyBsZWlzZSBlaW5lbiBzdHJlaWNoZW4sIHNjaG51ZWZmZWx0IHVuZCBzaWVodApzZWluZW4gTmFjaGJhcm4gdm9yd3VyZnN2b2xsIGFuLiAgClJ1ZWNrc2ljaHRzdm9sbGVyIFR5cDogIApTdGVodCBuYWNodHMgYXVmLCBzdGVpZ3QgbWl0IGVpbmVtIEZ1c3MgaW4gZGVuIE5hY2h0dG9wZiwgcGlua2VsdCBhbSBCZWluCmVudGxhbmcsIGRhbWl0IHNlaW5lIEZyYXUgbmljaHQgd2FjaCB3aXJkLiAgClN0cmVic2FtZXIgVHlwOiAgClZlcnN1Y2h0IGFtIGhvZWNoc3RlbiB6dSBQaW5rZWxuLiAKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdW5kIG5vY2ggZWluZXIgIChIaWdodCwgMjYuIE9rdCAyMDAwLCAyMToyMjo0NSk6CldhcnVtIGlzdCBGbGFzY2hlbmJpZXIgYmVzc2VyIGFscyBGcmF1ZW4/ICAKRmxhc2NoZW5iaWVyIGJsZWlidCBlaW5lIGdhbnplIFdvY2hlIGhhcnQuIApEdSBrYW5uc3Qgc28gdmllbCBGbGFzY2hlbmJpZXIgaGFiZW4gd2llIGR1IHdpbGxzdCAtIC0gZHVyY2hzY2huaXR0bGljaCAyMCBpbQpLYXN0ZW4gCkVpbiBGbGFzY2hlbmJpZXIgd3VlcmRlIERpciBuaWVtYWxzIGVyemFlaGxlbiwgZGFzcyBlcyBpbSBNb21lbnQgbmljaHQgZ2VodC4gCkZsYXNjaGVuYmllciBpc3QgaW1tZXIgTmFzcyAuIApEdSBrYW5uc3QgZWluIEZsYXNjaGVuYmllciBuZWhtZW4gd2FubiBkdSB3aWxsc3QuIApFaW4gRmxhc2NoZW5iaWVyIGFremVwdGllcnQgYXVjaCwgd2VubiBkdSBiZXNvZmZlbiBiaXN0LiAKTWl0IGVpbmVtIEZsYXNjaGVuYmllciBrYW5uc3QgRHUgYXVjaCB6dSBGcmV1bmRlbiBnZWhlbi4gCkVpbiBGbGFzY2hlbmJpZXIgd2lyZCBuaWVtYWxzIGZyYWdlbjogV2lsbHN0IGR1IG1pY2ggbm9jaCAKRWluIEZsYXNjaGVuYmllciB3aXJkIG5pZW1hbHMgZnJhZ2VuOiBIYXN0IGR1IHNjaG9uIGdlbnVnIApFaW4gRmxhc2NoZW5iaWVyIHd1ZXJkZSBuaWVtYWxzIGVpbmVyIGFuZGVyZW4gRmxhc2NoZW5iaWVyZW4gZXJ6YWVobGVuLCBkYXNzCkR1IGdlc3Rlcm4gZ2Vrb3R6dCBoYXN0LiAKRWluIEZsYXNjaGVuYmllciB3dWVyZGUgRGljaCBuaWVtYWxzIHp3aW5nZW4sIGtlaW5lcyBtZWhyIHp1IHRyaW5rZW4uIApFaW4gRmxhc2NoZW5iaWVyIGlzdCBuaWVtYWxzIGVpZmVyc3VlY2h0aWcgYXVmIERlaW5lbiBDb21wdXRlciBvZGVyIGRlaW4KTW90b3JyYWQuIApFaW4gRmxhc2NoZW5iaWVyIGlzdCBuaWVtYWxzIGVpZmVyc3VlY2h0aWcgYXVmIERlaW5lbiBDb21wdXRlciBvZGVyIGRlaW4KTW90b3JyYWQuIApGbGFzY2hlbmJpZXIgZmFlbmd0IG5pY2h0IGFuLCB2b24gRGluZ2VuIHp1IHJlZGVuLCBkaWUgZXMgbnVyIGF1cwpaZWl0c2NocmlmdGVuIGtlbm50LiAKRWluIEZsYXNjaGVuYmllciB3dWVyZGUgRGlyIG5pZW1hbHMgZWluZSBTemVuZSBtYWNoZW4sIHdlbm4gRHUgbm9jaCBlaW5lbgphbmRlcmVuIEthc3RlbiBGbGFzY2hlbmJpZXIgbWl0IG5hY2ggSGF1c2UgYnJpbmdzdC4gCkVnYWwgd2llIGFsdCBEdSBiaXN0LCBEdSBrYW5uc3QgaW1tZXIgZWluIGZyaXNjaGVzIEZsYXNjaGVuYmllciBoYWJlbi4gCkVpbiBGbGFzY2hlbmJpZXIgaW50ZXJlc3NpZXJ0IGVzIG5pY2h0LCBvYiBkZWluZSBLdW1wZWwgZGFiZWkgc2luZC4gCkVpbiBGbGFzY2hlbmJpZXIgaW50ZXJlc3NpZXJ0IGVzIG5pY2h0LCBvYiBkZWluZSBLdW1wZWwgZGFiZWkgc2luZC4gCkVpbmVtIEZsYXNjaGVuYmllciBtdWVzc3Rlc3QgRHUgbmllbWFscyBlcnphZWhsZW4sIHdvIGR1IHZvcmhlciB3YXJzdC4gCkVpbmVtIEZsYXNjaGVuYmllciBtdWVzc3Rlc3QgRHUgbmllbWFscyBlcnphZWhsZW4sIHdvIGR1IHZvcmhlciB3YXJzdC4gCkZsYXNjaGVuYmllciBpc3Qgd2VnIHdlbm4gbWFuIGRhbWl0IGZlcnRpZyBpc3QuIApGbGFzY2hlbmJpZXIgaXN0IGRpZSBnYW56ZSBOYWNodCBiZWkgZGlyIHVuZCBqYW1tZXJ0IG5pY2h0ICBXYW5uIGdlaGVuIHdpcgpuYWNoIGhhdXNlLiAKRWluIEZsYXNjaGVuYmllciB3dWVyZGUgRGljaCBuaWUgaW4gU29yZ2UgenVydWVja2xhc3Nlbi4gCkZsYXNjaGVuYmllciBmaW5nZXJ0IG5pY2h0IGRlaW5lbiBDb21wdXRlciBhbiBvZGVyIGZhZWhydCBkaXIgZGllIEthcnJlIHp1ClNjaHJvdHQuIApGbGFzY2hlbmJpZXIgZ2VodCBuaWNodCBpbW1lciB6dSB6d2VpdCBhdWYgZGFzIEtsby4gCkZsYXNjaGVuYmllciBmaW5nZXJ0IG5pY2h0IGRlaW5lbiBDb21wdXRlciBhbiBvZGVyIGZhZWhydCBkaXIgZGllIEthcnJlIHp1ClNjaHJvdHQuIApFaW4gRmxhc2NoZW5iaWVyIGhpbnRlcmxhZXNzdCBkYXMgQmFkIGltbWVyIHNvLCB3aWUgZXMgd2FyLiAKRHUgd2Vpc3N0IGltbWVyLCB3byBEZWluIEZsYXNjaGVuYmllciB3YXIuIApEdSB3aXJzdCBzcGFldGVyIG5pZW1hbHMgZW50dGFldXNjaHQgZmVzdHN0ZWxsZW4gbXVlc3NlbiwgZGFzcyBEZWluCkZsYXNjaGVuYmllciBzY2hvbiBtYWwgZ2VmdWVsbHQgd2FyLiAKRGVpbmVtIEZsYXNjaGVuYmllciBpc3QgZXMgZWdhbCBkYXNzIGR1IGtpZmZzdC4gCkR1IHdpcnN0IHNwYWV0ZXIgbmllbWFscyBlbnR0YWV1c2NodCBmZXN0c3RlbGxlbiBtdWVzc2VuLCBkYXNzIERlaW4KRmxhc2NoZW5iaWVyIERpY2ggendhciBtYWcsIGFiZXIgRGVpbmVuIEJydWRlciBsaWVidCAKRXMgaXN0IGVpbmZhY2gsIGVpbmUgbmV1ZSBGbGFzY2hlIEJpZXIgYXVmenVtYWNoZW4uIApEdSBrYW5uc3QgYXVjaCB3YWVocmVuZCBkZXMgRnVzc2JhbGxzcGllbHMgZGVpbmUgRmxhc2NoZSBhbSBIYWxzIGxlY2tlbi4gCkR1IG11c3N0IG5pY2h0IGJpcyB6dXIgSGFsYnplaXQgd2FydGVuLCB1bSBtaXQgRGVpbmVyIEd1cmtlIHp1IHJlZGVuLiAKRWluZSBGbGFzY2hlbmJpZXIgaXN0IGltbWVyIGFuZ2VuZWhtIGltIEJldHQuIApGbGFzY2hlbmJpZXJlIGhpbnRlcmxhc3NlbiBrZWluZW4gZWlnZW5hcnRpZ2VuIEdlc2NobWFjayBpbSBNdW5kIApFaW4gRmxhc2NoZW5iaWVyIGtvbW10IG5pY2h0IG5hY2ggZGVyIEFyYmVpdCBuYWNoIGhhdXNlIHVuZCBicmluZ3QgYnJpbmd0IGlocmUKRnJldW5kaW5uZW4gbWl0LiAKRWluIEZsYXNjaGVuYmllciBoaW50ZXIgbGFlc3N0IGtlaW5lIEtudXRzY2hmbGVja2Ugb2RlciBBdWdlbnJpbmdlLiAKRWluIEZsYXNjaGVuYmllciBtYWNodCBkaXIga2VpbmUgU3plbmUsIHdlbm4gZHUgbWFsIG9obmUgc2llIGF1c2dlaHN0ICh1bmQKZGFubiBhdWNoIG5vY2ggYmlzIGluIGRpZSBmcnVlaGVuIE1vcmdlbnN0dW5kZW4hKS4gCkVpbmVtIEZsYXNjaGVuYmllciBtdXNzdCBkdSBuaWVtYWxzIGhpbnRlcmhlcnJhZXVtZW4gKEVOT1JNIHdpY2h0aWchISEhKSAKRWluIEZsYXNjaGVuYmllciBsYWJlcnQgZGljaCBuaWNodCBtaXQgYmxvZWRlbiBBbm1hY2hzcHJ1ZWNoZW4gdm9sbCB1bmQgZHUKa2FubnN0IHNpZSBnbGVpY2ggYXVmbWFjaGVuLiAKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ29sZiAtIGljaCB3ZWlzcywgZGFzcyBkZXIgYWx0IGlzdCAoR29sYXMsIDI2LiBPa3QgMjAwMCwgMjE6NDI6MTIpOgpEaWUgUmVnZWxuIGRlcyBTY2hsYWZ6aW1tZXJnb2xmczoKCjEuICAgSmVkZXIgU3BpZWxlciBzb2xsdGUgc2VpbmUgZWlnZW5lIEF1c3J1ZXN0dW5nIGZ1ZXIgZGFzIFNwaWVsLCAKICAgICBub3JtYWxlcndlaXNlIGVpbmVuIFNjaGxhZWdlciB1bmQgendlaSBCYWVsbGUgYmVyZWl0c3RlbGxlbi4KCjIuICAgRGllIEJlbnV0enVuZyBkZXMgR29sZmt1cnNlcyBtdXNzIHZvbSBFaWdlbnR1ZW1lciBkZXMgTG9jaHMgCiAgICAgZ2VuZWhtaWd0IHdlcmRlbi4KCjMuICAgQW5kZXJzIGFscyBiZWltIEdvbGYgaW0gRnJlaWVuLCBpc3QgZGFzIFppZWwsIGRlbiBTY2hsYWVnZXIgCiAgICAgaW5zIExvY2ggenUgYmVrb21tZW4gdW5kIGRpZSBCYWVsbGUgZHJhdXNzZW4genUgYmVoYWx0ZW4uCgo0LiAgIEZ1ZXIgZWluIGVyZm9sZ3JlaWNoZXMgU3BpZWwgc29sbHRlIGRlciBTY2hsYWVnZXIgZWluZW4gZmVzdGVuIAogICAgIFN0aWVsIGhhYmVuLiBLdXJzZWlnZW50dWVtZXJuIGlzdCBlcyBlcmxhdWJ0LCBkaWUgU3RpZWxoYWVydGUgCiAgICAgenUgdWViZXJwcnVlZmVuLCBiZXZvciBkYXMgU3BpZWwgYmVnaW5udC4KCjUuICAgR29sZmt1cnNlaWdlbnR1ZW1lciBiZWhhbHRlbiBzaWNoIGRhcyBSZWNodCB2b3IsIGRpZSBTY2hsYWVnZXJsYWVuZ2UgCiAgICAgenUgYmVzY2hyYWVua2VuLCB1bSBTY2hhZGVuIGFtIExvY2ggenUgdmVybWVpZGVuLgoKNi4gICBEYXMgWmllbCBkZXMgU3BpZWxlcyBpc3QgZXMsIHNvIHZpZWxlIFNjaGxhZWdlIHdpZSBub3R3ZW5kaWcgCiAgICAgYXVzenVmdWVocmVuLCBiaXMgZGFzIExvY2ggdm9sbCB1bmQgZGVyIEVpZ2VudHVlbWVyIHp1ZnJpZWRlbiBpc3QuIAogICAgIERhcyB2b3J6ZWl0aWdlIEFiYnJlY2hlbiBkZXMgU3BpZWxzIGthbm4gZGF6dSBmdWVocmVuLCBkYXNzIGRlbSAKICAgICBTcGllbGVyIGRpZSBMaXplbnogZW50em9nZW4gd2lyZC4KCjcuICAgRXMgd2lyZCBhbHMgdW5ob2VmbGljaCBiZXRyYWNodGV0LCBkYXMgTG9jaCBzb2ZvcnQgYmVpIGRlciBBbmt1bmZ0IAogICAgIHp1IHNwaWVsZW4uIEVyZmFocmVuZSBTcGllbGVyIGVyZm9yc2NoZW4genVlcnN0IGRpZSBIdWVnZWwgdW5kIAogICAgIEJ1bmtlciBkZXMgR29sZmt1c2VzLgoKOC4gICBTcGllbGVyIHNpbmQgZGF2b3IgZ2V3YXJudCwga2VpbmUgYW5kZXJlbiBHb2xma3Vyc2UgenUgZXJ3YWVobmVuLCAKICAgICBhdWYgZGVuZW4gc2llIGdlc3BpZWx0IGhhYmVuLCBvZGVyIGdlZ2Vud2FlcnRpZyBzcGllbGVuLiBFcyB3aXJkIAogICAgIGJlcmljaHRldCwgZGFzcyBhdWZnZWJyYWNodGUgS3Vyc2VpZ2VudHVlbWVyIGRpZSBBdXNydWVzdHVuZyBkZXMgCiAgICAgU3BpZWxlcnMgYXVzIGRpZXNlbSBHcnVuZCBiZXNjaGFlZGlndCBoYWJlbi4KCjkuICAgQmVpIHZpZWxlbiBLdXJzZW4gaXN0IHNlaXQgZWluaWdlbiBKYWhyZW4gZWluIFJlZ2VuY2FwZSBhbHMgCiAgICAgU3RhbmRhcmRhdXNydWVzdHVuZyBlcmZvcmRlcmxpY2guCgoxMC4gIFNwaWVsZXIgc29sbHRlbiBuaWNodCBhbm5laG1lbiwgZGFzcyBkZXIgS3VycyBqZWRlcnplaXQgc3BpZWxiYXIgCiAgICAgaXN0LiBTcGllbGVyIGtvZW5udGVuIGVubnRhZXVzY2h0IHNlaW4sIHdlbm4gZGVyIEt1cnMgdm9ybGFldWZpZyAKICAgICB3ZWdlbiBXYXJ0dW5nc2FyYmVpdGVuIGdlc2NobG9zc2VuIGhhdC4gRXMgd2lyZCBlbXBmb2hsZW4sIGluIAogICAgIGVpbmVyIHNvbGNoZW4gU2l0dWF0aW9uIGFldXNzZXJzdCB0YWt0dm9sbCB6dSBzZWluLiAKICAgICBGb3J0c2Nocml0dGxpY2hlcmUgU3BpZWxlciBmaW5kZW4gYWx0ZXJuYXRpdmUgU3BpZWxlLgoKMTEuICBTcGllbGVyIHNvbGx0ZW4gc2ljaGVyc3RlbGxlbiwgZGFzcyBpaHIgU3BpZWwgZ3V0IGdlcGxhbnQgaXN0LCAKICAgICBiZXNvbmRlcnMgd2VubiBzaWUgZWluZW4gbmV1ZW4gS3VycyB6dW0gZXJzdGVuIE1hbCBzcGllbGVuLiAKICAgICBFaGVtYWxpZ2UgU3BpZWxlciBrb2VubmVuIHpvcm5pZyB3ZXJkZW4gd2VubiBzaWUgZW50ZGVja2VuLCBkYXNzIAogICAgIGVpbiBBbmRlcmVyIGF1ZiBkZW0gR29sZmt1cnMgc3BpZWx0LCBkZW4gc2llIGZ1ZXIgZWluZW4gCiAgICAgcHJpdmF0ZW4gS3VycyBoaWVsdGVuLgoKMTIuICBEZXIgRWlnZW50dWVtZXIgZGVzIEt1cnNlcyBpc3QgZnVlciBkYXMgQmVzY2huZWlkZW4gdm9uIEJ1ZXNjaGVuIAogICAgIHZlcmFudHdvcnRsaWNoLCBkaWUgZGllIFNpY2h0YmFya2VpdCB2b20gTG9jaCByZWR1emllcmVuIGtvZW5uZW4uCgoxMy4gIFNwaWVsZXJuIHdpcmQgdW5iZWRpbmd0IGRhenUgZ2VyYXRlbiwgZGllIEVybGF1Ym5pcyB2b20gRWlnZW50dWVtZXIgCiAgICAgZWluenVob2xlbiwgYmV2b3Igc2llIHZlcnN1Y2hlbiBkZW4gR29sZmt1cnMgdm9uIGhpbnRlbiB6dSBzcGllbGVuLgoKMTQuICBMYW5nc2FtZXMgU3BpZWwgaXN0IHJhdHNhbSwgamVkb2NoIHNvbGx0ZW4gZGllIFNwaWVsZXIgZGFyYXVmIAogICAgIHZvcmJlcmVpdGV0IHNlaW4sIGF1ZiB2ZXJsYW5nZW4gZGVzIEt1cnNlaWdlbnR1ZW1lcnMgZGFzIFRlbXBvIHp1IAogICAgIGVyaG9laGVuLgoKMTUuICBFcyB3aXJkIGFscyBlaW5lIGhlcnZvcnJhZ2VuZGUgTGVpc3R1bmcgYmV0cmFjaHRldCwgZGFzc2VsYmUgTG9jaCAKICAgICBtZWhybWFscyBoaW50ZXJlaW5hbmRlciBpbiBlaW5lbSBTcGllbCB6dSBzcGllbGVuLCB3ZW5uIGVzIGRpZSBaZWl0IAogICAgIGVybGF1YnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgaXN0IGd1dCwgd2FzIHNjaGxlY2h0IHVuZCB3YXMgaGFlc3NsaWNoPyAoR29sYXMsIDMwLiBPa3QgMjAwMCwgMjE6MDY6NDMpOgpHdXQ6IERlaW5lIEZyYXUgaXN0IHNjaHdhbmdlci4KU2NobGVjaHQ6IEVzIHNpbmQgRHJpbGxpbmdlLgpIYWVzc2xpY2g6IER1IGJpc3Qgdm9yIGZ1ZW5mIEphaHJlbiBzdGVyaWxpc2llcnQgd29yZGVuLgoKR3V0OiBEZWluIFNvaG4gbGVybnQgdmllbCBpbiBzZWluZW0gWmltbWVyLgpTY2hsZWNodDogRHUgZmluZGVzdCBkb3J0IHZlcnN0ZWNrdGUgUG9ybm8tRmlsbWUuCkhhZXNzbGljaDogRHUga29tbXN0IGRhcmluIHZvci4KCkd1dDogRGVpbiBTb2huIHdpcmQgbGFuZ3NhbSBlcndhY2hzZW4uClNjaGxlY2h0OiBFciBoYXQgZWluZSBBZmZhZXJlIG1pdCBkZW0gTWFlZGNoZW4gdm9uIGdlZ2VudWViZXIuCkhhZXNzbGljaDogRHUgYXVjaC4KCkd1dDogRGVpbmUgRnJhdSBzcHJpY2h0IG5pY2h0IG1pdCBEaXIuClNjaGxlY2h0OiBTaWUgd2lsbCBkaWUgU2NoZWlkdW5nLgpIYWVzc2xpY2g6IFNpZSBpc3QgQW53YWx0LgoKR3V0OiBEZWluIFNvaG4gZ2VodCBtaXQgamVtYW5kIG5ldWVtIGF1cy4KU2NobGVjaHQ6IEVzIGlzdCBlaW4gTWFubi4KSGFlc3NsaWNoOiB1bmQgRGVpbiBiZXN0ZXIgRnJldW5kLgoKR3V0OiBEZWluZSBUb2NodGVyIGhhdCBlaW5lbiBuZXVlbiBKb2IuClNjaGxlY2h0OiBhbHMgUHJvc3RpdHVpZXJ0ZQpIYWVzc2xpY2g6IERlaW5lIE1pdGFyYmVpdGVyIHNpbmQgSWhyZSBLdW5kZW4uClN1cGVyaGFlc3NsaWNoOiBTaWUgdmVyZGllbnQgbWVociBhbHMgRHUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGaWx0ZXItU29mdHdhcmUgKE5vbm5lLCAgMi4gTm92IDIwMDAsIDA5OjQ5OjAwKToKSGllciBmaW5kZW4gc2ljaCBlaW4gcGFhciBCZWlzcGllbGUsIHdpZSBzaW5udm9sbCBGaWx0ZXJzb2Z0d2FyZSBzZWluIGthbm46CgpodHRwOi8vZGZuLm9yZy9BbGVydHMvY29udGVzdC5odG0KCk5vbm5lLCBtaXQgTXVza2Vsa2F0ZXIgaW0gWndlcmNoZmVsbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEthbmliYWxpc211cyAoUGFkcmVpYywgIDIuIE5vdiAyMDAwLCAxMTozODowNyk6Cn4jISBybj1EZWVwYmx1ZSBydD05NzMxNjEzNTQgcmc9d2l0emUKfiMhIHRpZD05NzMxNjEzNTQKKmxvbCogZGVyIGlzIHdpcmtsaWNoIGtsYXNzZSBkZXIgd2l0eiwgZWluIGthbmliYWxlIGluIGFmcmlrYS4uICpsb2wqCndvIGRvY2ggamVkZXIgd2Vpc3MgZGFzIHdlbm4gZXMga2FuaWJhbGlzbXVzIHVlYmVyaGF1cHQgamUgd2FyLCBkYXMgZXIgZGFubiBpbgpkZXIga2FyaWJpayBwcmFrdGl6aWVydCB3dXJkZS4uLi4KClBhZHJlaWMgZnJhZ3Q6IGdpYnRzIG5vY2ggamVtYW5kIGRlciBlaW5lbiBfbm9jaF8gYWVsdGVyZW4gV2l0eiBrZW5udD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2FuaWJhbGlzbXVzIChLYXJpcywgIDIuIE5vdiAyMDAwLCAxMTo0MDoxMyk6Cn4jISBybj1QYWRyZWljIHJ0PTk3MzE2MTQ4NyByZz13aXR6ZQp+IyEgdGlkPTk3MzE2MTM1NApXaWUgd2FlcnMgbWl0IGRlbToKUGFkcmVpYyBoYXQgZWluIEJ1Z2ZyZWllcyBTdHVlY2sgQ29kZSBnZXNjaHJpZWJlbi4KT2J3b2hsLi4uIHVlYmVyIGRhcyBBbHRlciB0cmF1IGljaCBtaWNoIGpldHp0IGRhbm4gZG9jaCBrZWluZQpkZWZpbml2ZSBBdXNzYWdlIHp1IHRyZWZmZW4gOykKCkdlbmVyYWVsY2hlbiBLYXJpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLYW5pYmFsaXNtdXMgKEdsb2luc29uLCAgMi4gTm92IDIwMDAsIDExOjQwOjQ3KToKfiMhIHJuPVBhZHJlaWMgcnQ9OTczMTYxNDg3IHJnPXdpdHplCn4jISB0aWQ9OTczMTYxMzU0CktvbW10IGVpbiBNYW5uIGluICduZSBCYXIuCjxSZXN0IGJpdHRlIG1pdCBhbHRlbSBXaXR6IGZ1ZXIgUGFkcmVpYyBhdXNmdWVsbGVuPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS2FuaWJhbGlzbXVzIChOaWNvbGFpLCAgMi4gTm92IDIwMDAsIDExOjQxOjM3KToKfiMhIHJuPUdsb2luc29uIHJ0PTk3MzE2MTY0NyByZz13aXR6ZQp+IyEgdGlkPTk3MzE2MTM1NApLb21tdCBlaW4gUGZlcmQgaW4gbmUgQmFyLgpGcmFndCBkZXIgQmFya2VlcGVyOiBFeSwgd2FydW0gc28gZWluIGxhbmdlcyBHZXNpY2h0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS2FuaWJhbGlzbXVzIChBbmF0b2wsICAyLiBOb3YgMjAwMCwgMTE6NTY6MzkpOgp+IyEgcm49Tmljb2xhaSBydD05NzMxNjE2OTcgcmc9d2l0emUKfiMhIHRpZD05NzMxNjEzNTQKS29tbXQgZWluZSBLdWggaW4gbmUgQmFyIHVuZCBzYWd0OiBFaW4gR2xhcyBNaWxjaCwgYml0dGUuClNhZ3QgTmljb2xhaXMgUGZlcmQgdm9uIGViZW46IE9oLCBuZSBLdWgsIGRpZSBzcHJlY2hlbiBrYW5uIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpdHogKE9ya3RvZXRlciwgIDYuIE5vdiAyMDAwLCAyMTo1MDo1MCk6Cn4jISBybj1TbHlmb3ggcnQ9OTczNTQzNTM3IHJnPXdpdHplCn4jISB0aWQ9OTczNTQzNTM3CkZhbHNjaCwgcmljaHRpZyBpc3QgZXMgOgoKU2luZCBkaWUgU3BpZWxlciBtaXQgZGVtIFRyYWluZXIgdW56dWZyaWVkZW4sIHdlcmRlbiBzaWUgdmVya2F1ZnQuCgpPcmtUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2l0eiAoQXJrLCAgNi4gTm92IDIwMDAsIDIxOjUyOjEwKToKfiMhIHJuPVNseWZveCBydD05NzM1NDM1Mzcgcmc9d2l0emUKfiMhIHRpZD05NzM1NDM1MzcKTmEsIGRhIHd1ZXNzdGUgaWNoIHNjaG9uIGVpbiBwYWFyIG1laHI6CgpJY2ggdmVyZGllbmUgbmljaHRzIC4uLiBqZWRlbmZhbGxzIG5pY2h0cyBmdWVyJ3MgU2NocmVpYmVuLgpJY2ggbXVzcyBrZWluZSBIYWFyYW5hbHlzZSBtYWNoZW4uCkljaCB3dWVyZGUgbmljaHQgd2VjaHNlbG4gd29sbGVuLgpJY2ggaGFldHRlIGVoIGtlaW5lbiBSZWluZXIgQ2FsbXVuZCwgZGVyIG1pY2ggZGVja3QgLi4uIGFlaCwgZGFzIG11ZXNzdGUgbWFuCnVtZm9ybXVsaWVyZW4gOi0pCkljaCBnZWhlIG51ciB6dW0gVXJsYXViIG9kZXIgZGllbnN0bGljaCBpbiBkaWUgVVNBLgpJY2ggbXVzcyBtaWNoIG5pY2h0IHN0YWVuZGlnIG9lZmZlbnRsaWNoIHJlY2h0ZmVydGlnZW4sIHdlbm4gbWVpbmUgU3BpZWxlciAoISkKTWlzdCBiYXVlbiAqaGFyaGFyKgoKTGllc3NlIHNpY2ggYmVsaWViaWcgdmVybGFlbmdlcm4uCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ2xhdHplLi4uIChNdXBmZWwsICA3LiBOb3YgMjAwMCwgMDA6MTM6NTkpOgpHbGF0emU/CgpLZWluIFByb2JsZW0hCktvcGYgbWl0IEFsbGVza2xlYmVyIGVpbnJlaWJlbiwgRnJvdHRpZXJ0dWNoIGF1ZmxlZ2VuLCBsZWljaHQKYW5wcmVzc2VuIHVuZCBuYWNnIGRyZWkgU3R1bmRlbiBydWNrYXJ0aWcgYWJyZWlzc2VuLgoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnBhc3N3b2VydGVyIChIaWdodCwgIDcuIE5vdiAyMDAwLCAwMTo1MzoxNik6CmF1cyBlaW5lciBhbmRlcmVuIHplaXR1bmcgdWViZXJub21tZW4gLG8pCgo+IFRoaXMgaXMgYSB0cnVlIHN0b3J5IGJ1dCBub3QgTVkgdHJ1ZSBzdG9yeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gSSB3YXMgaGVscGluZyBzb21lb25lIHNldCB1cCBoaXMgY29tcHV0ZXIsIGFuZCBoZSB3YW50ZWQgdG8gbG9nICAgICAgICAgICAgIAo+IGluIHdpdGggYSBwYXNzd29yZC4uLi4gbm93IHlvdSBoYXZlIHRvIHVuZGVyc3RhbmQgaGUncyBnb3Qgc29tZXdoYXQgb2YgICAgICAKPiBhIHJlYmVsbGlvdXMgYXR0aXR1ZGUgYW5kIGdvZXMgZm9yIHRoZSBzaG9jayBlZmZlY3QuLi4gc28gd2hlbiB0aGUgICAgICAgICAgCj4gY29tcHV0ZXIgYXNrZWQgaGltIHRvIGVudGVyIGhpcyBwYXNzd29yZCwgaGUga2V5cyBpbiAicGVuaXMiLi4uICAgICAgICAgICAgIAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiBJIG5lYXJseSBmZWxsIG9mZiB0aGUgY2hhaXIgZnJvbSBsYXVnaGluZyBzbyBoYXJkIHdoZW4gdGhlIGNvbXB1dGVyICAgICAgICAgCj4gcmVwbGllZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gKioqKiBQQVNTV09SRCBSRUpFQ1RFRC4gVE9PIFNIT1JUICoqKioqCgpIaWdodCBraWNoZXJuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR29kIGJsZXNzIGFtZXJpY2EgKEx1cHVzLCAgOC4gTm92IDIwMDAsIDExOjExOjI4KToKRGEgZGFzIFRoZW1hIGdyYWRlIGF1ZiAtYSBsYWV1ZnQuLi4uCgpMdXN0aWdlIEdlc2V0emUgCkx1c3RpZ2UgR2VzZXR6ZSAKCkFMQUJBTUE6IE1hZW5uZXIgZHVlcmZlbiBpaHJlIEZyYXVlbiBudXIgdmVycHJ1ZWdlbG4sIHdlbm4gc2llIGVpbmVuIFN0b2NrCmRhenUgYmVudWV0emVuLCBkZXIgbmljaHQgbGFlbmdlciBpc3QgYWxzIGlociBEYXVtZW4uIApBUklaT05BOiBJbiBOb2dhbGVzIGlzdCBlcyB2ZXJib3RlbiwgaW4gZGVyIE9lZmZlbnRsaWNoa2VpdCBIb3NlbnRyYWVnZXIgenUKdHJhZ2VuLiAKQ09MT1JBRE86IEluIERlbnZlciBkYXJmIGVpbiBIdW5kZWZhZW5nZXIgbnVyIGRhbm4gc2VpbmVtIEhhbmR3ZXJrIG5hY2hnZWhlbiwKd2VubiBlciBkaWUgSHVuZGUgZHVyY2ggUGxha2F0YW5zY2hsYWVnZSBpbiBvZWZmZW50bGljaGVuIFBhcmtzIGF1c2RydWVja2xpY2gKYXVmIGRpZSBkcm9oZW5kZSBHZWZhaHIgaGluZ2V3aWVzZW4gaGF0LiAKQ09OTkVDVElDVVQ6IERhIGtvc3RldCBlcyBTdHJhZmUsIGVpbmUgVVNBLUZsYWdnZSBmbGF0dGVybiB6dSBsYXNzZW4sIGRpZQpuaWNodCBkaWUga29ycmVrdGUgQW56YWhsIFN0YXJzICYgU3RyaXBlcyB0cmFlZ3QuIApERUxBV0FSRTogRXMgaXN0IGdlZ2VuIGRhcyBHZXNldHosIHNlaW5lIEZyYXUgbWl0IFNjaGltcGZ3b2VydGVybiB6dSBiZWxlZ2VuLiAKR0VPUkdJQTogV2FlaHJlbmQgZWluZXMgUGlja25pY2tzIGR1ZXJmZW4ga2VpbmUgRmV1ZXJ3YWZmZW4gYmVudXR6dCB3ZXJkZW4uIApIQVdBSUk6IFdlciBzaWNoIFBlbm5pZXMgaW5zIE9ociBzdGVja3QsIG1hY2h0IHNpY2ggc3RyYWZiYXIuIApJREFITzogRXMgaXN0IGF1c2RydWVja2xpY2ggdmVyYm90ZW4sIEZvcmVsbGVuIHp1IGZpc2NoZW4sIHdhZWhyZW5kIG1hbiBhdWYKZWluZXIgR2lyYWZmZSBzaXR6dC4gCklMTElOT0lTOiBFaW5lIEZyYXUsIGRpZSBtZWhyIGFscyA5MCBLaWxvIHdpZWd0LCBkYXJmIG5pY2h0IGluIFNob3J0cyByZWl0ZW4uCkluIENoaWNhZ28gZGFyZiBtYW4gQWxrb2hvbCBuaWNodCBpbSBTdGVoZW4gdHJpbmtlbi4gCklORElBTkE6IEluIFNwYWRlcyBpc3QgZXMgdmVyYm90ZW4sIEtvbnNlcnZlbmRvc2VuIGF1Znp1c2NoaWVzc2VuLCB3ZW5uIG1hbgpkZW4gQnVlY2hzZW5vZWZmbmVyIHZlcmdlc3NlbiBoYXQuIApJT1dBOiBJbiBDZWRhciBSYXBpZHMgaXN0IGVzIHZlcmJvdGVuLCBGcmVtZGUgenUga3Vlc3Nlbi4gCktBTElGT1JOSUVOOiBXZXIgaW4gS2FsaWZvcm5pZW4gZWluZSBNYXVzZWZhbGxlIGF1ZnN0ZWxsdCwgYmVub2V0aWd0IGVpbmUKSmFnZGxpemVuei4gCktBTlNBUzogSW4gV2ljaGl0YSBzaW5kIEZpbG1lLCBpbiBkZW5lbiBqZW1hbmQgSy5PLiBnZXNjaGxhZ2VuIHdpcmQsIGlsbGVnYWwuIApLRU5UVUNLWTogTnVyIEZyYXVlbiwgZGllIG1pdCBlaW5lbSBLbnVlcHBlbCBiZXdhZmZuZXQgb2RlciB2b24gendlaQpQb2xpemVpYmVhbXRlbiBiZWdsZWl0ZXQgd2VyZGVuLCBkdWVyZmVuIHNpY2ggaW0gQmFkZWFuenVnIGVpbmVtIEhpZ2h3YXkKbmFlaGVybi4gCkxPVUlTSUFOQTogSW4gTmV3IE9ybGVhbnMgbXVlc3NlbiBGZXVlcndlaHJhdXRvcyBhdWNoIGRhbm4gYmVpIFJvdGxpY2h0CmhhbHRlbiwgd2VubiBzaWUgYXVmIGRlbSBXZWcgenUgZWluZW0gQnJhbmQgc2luZC4gCk1BSU5FOiBFcyBpc3QgaWxsZWdhbCBtaXQgaGVydW50ZXJoYWVuZ2VuZGVuIFNjaG51ZXJzZW5rZWxuIG9lZmZlbnRsaWNoZQpTdHJhc3NlbiB6dSBiZXRyZXRlbi4gCk1BUllMQU5EOiBFaW4gS3VzcyBkYXJmIG5pY2h0IGxhZW5nZXIgYWxzIGVpbmUgU2VrdW5kZSBkYXVlcm4uIApNQVNTQUNIVVNFVFRTOiBJbiBCb3N0b24gZHVlcmZlbiBXYW5uZW5iYWVkZXIgbnVyIGF1ZiBSZXplcHQgZ2Vub21tZW4gd2VyZGVuLiAKTUlDSElHQU46IEluIFNhdWx0IFNhaW50IE1hcmllIHdpcmQgU3B1Y2tlbiBnZWdlbmRlbiBXaW5kIGJlc3RyYWZ0LiAKTUlOTkVTT1RBOiBFcyBpc3QgaWxsZWdhbCwgd2VpYmxpY2hlIHVuZCBtYWVubmxpY2hlIFVudGVyd2Flc2NoZSBhdWYgZGllIHNlbGJlCldhZXNjaGxlaW5lIHp1IGhhZW5nZW4uIApNSVNTSVNTSVBQSTogV2VyIHNpY2ggdWViZXIgZGllIEFyY2hpdGVrdHVyIHZvbiBvZWZmZW50bGljaGVuIEJhdXRlbiBsdXN0aWcKbWFjaHQsIG1hY2h0IHNpY2ggc3RyYWZiYXIuIApNSVNTT1VSSTogRGFzIFJhc2llcmVuIGJlaSBUYWdlc2xpY2h0IHdpcmQgYmVzdHJhZnQuIApNT05UQU5BOiBJbiBlaW5lbSBOYWNodGNsdWIsIGluIGRlbSBBbGtvaG9sIGF1c2dlc2NoZW5rdCB3ZXJkZW4gZGFyZiwgbXVzcyBkYXMKS29zdHVlbSBkZXIgVGFlbnplcmlubmVuIG1pbmRlc3RlbnMgZHJlaSBQZnVuZCB1bmQgZHJlaSBVbnplbiB3aWVnZW4uIApORUJSQVNLQTogSW4gV2F0ZXJsb28gaXN0IGVzIEZyaXNldXJlbiB2ZXJib3Rlbiwgd2FlaHJlbmQgZGVyIEFyYmVpdHN6ZWl0Clp3aWViZWxuIHp1IGVzc2VuLiAKTkVWQURBOiBXZXIgYXVmIFN0YWF0c3RyYXNzZW4gS2FtZWxlIHRyZWlidCwgbXVzcyBlaW4gQnVzc2dlbGQgYmV6YWhsZW4uIApORVcgSkVSU0VZOiBJbiBNYW52aWxsZSBpc3QgZXMgdmVyYm90ZW4sIFRpZXJlICBpbiBkZW4gb2VmZmVudGxpY2hlbiBQYXJrcyBtaXQKWmlnYXJldHRlbiB6dSBmdWV0dGVybi4gCk5FVyBNRVhJQ086IEVzIGlzdCB2ZXJib3RlbiwgaG9oZSBHZWJhZXVkZSB6dSBlcmtsaW1tZW4gdW0ga29zdGVubG9zIGVpbgpCYWxsc3BpZWwgenUgdmVyZm9sZ2VuLiAKTkVXIFlPUks6IEZyYXVlbiwgZGllIGltIEtpbm8gbGF1dCBkZW4gbW9lZ2xpY2hlbiBBdXNnYW5nIGRlcyBGaWxtcwpkaXNrdXRpZXJlbiwgZGFyZiBtYW4gdW5nZXN0cmFmdCBkaWUgWnVuZ2UgaGVyYXVzc3RyZWNrZW4uIApOT1JUSCBDQVJPTElOQTogRmFsc2NoZXMgU2luZ2VuIGluIGRlciBPZWZmZW50bGljaGtlaXQga2FubiBtaXQgMTcgTWFyawpiZXN0cmFmdCB3ZXJkZW4uIApPSElPOiBJbiBCZXJlYSBtdWVzc2VuIFRpZXJlIG5hY2ggRWluYnJ1Y2ggZGVyIER1bmtlbGhlaXQgcm90ZSBSdWVja2xpY2h0ZXIKdHJhZ2VuLiAKT0tMQUhPTUE6IERhcyBGYW5nZW4gdm9uIFdhbGVuIHdpcmQgbWl0IFp1Y2h0aGF1cyBiZXN0cmFmdCAoT2tsYWhvbWEgYmVzaXR6dAprZWluZW4gTWV0ZXIgCkt1ZXN0ZSAhPykgClBFTk5TWUxWQU5JQTogSW4gUGl0dHNidXJnaCBpc3QgZXMgaWlsZWdhbCwgaW0gRWlzc2NocmFuayB6dSBzY2hsYWZlbi4gClNPVVRIIERBS09UQTogRnJhdWVuIHVudGVyIDgwIEphaHJlbiBpc3QgZXMgdmVyYm90ZW4sIGp1ZW5nZXJlIE1hZW5uZXIKYW56dXNwcmVjaGVuLiAKVEVOTkVTU0VFOiBJbiBLbm94dmlsbGUgZHVlcmZlbiBGaXNjaGUgbmljaHQgbWl0IGRlbSBMYXNzbyBnZWZhbmdlbiB3ZXJkZW4uIApVVEFIOiBFcyBpc3QgR2VzZXR6LCBkYXNzIG1hbiB6d2lzY2hlbiB6d2VpIFRhbnplbmRlbiBMaWNodCBzZWhlbiBtdXNzLiAKVkVSTU9OVDogQWxrb2hvbGlzY2hlIEdldHJhZW5rZSBkdWVyZmVuIGluIFJlc3RhdXJhbnRzIG5pY2h0IHZvbiBlaW5lbSBUaXNjaAp6dW0gIGFuZGVyZW4gdHJhbnNwb3J0aWVydCB3ZXJkZW4uIApWSVJHSU5JQTogRnJhdWVuIGR1ZXJmZW4gaW4gTm9yZm9sayBudXIgVGFuemVuIGdlaGVuLCB3ZW5uIHNpZSBlaW4gS29yc2V0dAp0cmFnZW4uIApXQVNISU5HVE9OOiBLZWluZSBGcmF1IGRhcmYgYmVpbSBUYW56ZW4gbWVociBhbHMgZHJlaSBTY2hyaXR0ZSBydWVja3dhZXJ0cwp0dW4uIApXQVNISU5HVE9OIEQuQy46IEVzIGlzdCB2ZXJib3RlbiwgQnVsbGVuIGF1ZiBkaWUgTmFzZSB6dSBoYXVlbi4gCldJU0NPTlNJTjogSW4gQmFycyBkYXJmIG5pY2h0IGdlc3VuZ2VuIHdlcmRlbi4gCldZT01JTkc6IEluIGRlbiBNb25hdGVuIEphbnVhciBiaXMgQXByaWwgaXN0IGVzIHZlcmJvdGVuLCBIYXNlbiB6dQpmb3RvZ3JhZmllcmVuLiAKCkx1cHVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR29kIGJsZXNzIGFtZXJpY2EgKEdub21lLCAgOC4gTm92IDIwMDAsIDEyOjI5OjI4KToKfiMhIHJuPUx1cHVzIHJ0PTk3MzY3ODI4OCByZz13aXR6ZQp+IyEgdGlkPTk3MzY3ODI4OApvaCwgaWNoIHdlcmRlIG1hcnlsYW5kIGF1ZiBqZWRlbiBmYWxsIG1laWRlbiwgc29sbHRlIGljaCBtYWwgaW5zIGxhbmQKZGVyIHZlcnJ1ZWNrdGVuIGZsaWVnZW4uIGRhbmtlIGZ1ZXIgZGVuIGhpbndlaXMuIDopCgpnbk9tZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW9kZXJuIExpZmUuLi4gKEthcmlzLCAxNy4gTm92IDIwMDAsIDEwOjQxOjQxKToKRWluZSB1cmFsdGUgV2Vpc2hlaXQgZGVyIERha290YS1JbmRpYW5lciBiZXNhZ3Q6CiJXZW5uIER1IGVudGRlY2tzdCwgZGFzcyBEdSBlaW4gdG90ZXMgUGZlcmQgcmVpdGVzdCwgc3RlaWcgYWIuIgoKSW0gbW9kZXJuZW4gQmVydWZzbGViZW4gd2VyZGVuIGhldXRlIGdlcm5lIGFuZGVyZSBTdHJhdGVnaWVuCmFuZ2V3YW5kdCwgd2VubiBtYW4gaW4gZGllc2UgU2l0dWF0aW9uIGtvbW10OgoKMS4gV2lyIGJlc29yZ2VuIHVucyBlaW5lIHN0YWVya2VyZSBQZWl0c2NoZS4KMi4gV2lyIHdlY2hzZWxuIGRpZSBSZWl0ZXIuCjMuIFdpciBzYWdlbjogIlNvIGhhYmVuIHdpciBkYXMgUGZlcmQgZG9jaCBpbW1lciBnZXJpdHRlbi4iCjQuIFdpciBncnVlbmRlbiBlaW5lbiBBcmJlaXRza3JlaXMsIHVtIGRhcyB0b3RlIFBmZXJkIHp1IGFuYWx5c2llcmVuLgo1LiBXaXIgYmVzdWNoZW4gYW5kZXJlIE9ydGUsIHVtIHp1IHNlaGVuLCB3aWUgbWFuIGRvcnQgdG90ZSBQZmVyZGUgcmVpdGV0Lgo2LiBXaXIgZXJob2VoZW4gZGVuIFF1YWxpdGFldHNzdGFuZGFyZCBmdWVyIGRlbiBCZXJpdHQgdG90ZXIgUGZlcmRlLgo3LiBXaXIgYmlsZGVuIGVpbmUgVGFzayBGb3JjZSwgdW0gZGFzIHRvdGUgUGZlcmQgd2llZGVyenViZWxlYmVuLgo4LiBXaXIgc2NoaWViZW4gZWluZSBUcmFpbmluZ3NlaW5oZWl0IGVpbiwgdW0gYmVzc2VyIHJlaXRlbiB6dSBsZXJuZW4uCjkuIFdpciBzdGVsbGVuIFZlcmdsZWljaGUgdW50ZXJzY2hpZWRsaWNoZXIgdG90ZXIgUGZlcmRlIGFuLgoxMC4gV2lyIGFlbmRlcm4gZGllIEtyaXRlcmllbiwgZGllIGJlc2FnZW4sIGRhc3MgZWluIFBmZXJkIHRvdCBpc3QuCjExLiBXaXIga2F1ZmVuIExldXRlIHZvbiBhdXNzZXJoYWxiLCB1bSBkYXMgdG90ZSBQZmVyZCB6dSByZWl0ZW4uCjEyLiBXaXIgc2NoaXJyZW4gbWVocmVyZSB0b3RlIFBmZXJkZSB6dXNhbW1lbiwgZGFtaXQgc2llIHNjaG5lbGxlciB3ZXJkZW4uCjEzLiBXaXIgZXJrbGFlcmVuOiAiS2VpbiBQZmVyZCBrYW5uIHNvIHRvdCBzZWluLCBkYXNzIG1hbiBlcyBuaWNodCBub2NoCnNjaGxhZ2VuIGtvZW5udGUiCjE0LiBXaXIgbWFjaGVuIHp1c2FldHpsaWNoZSBNaXR0ZWwgbG9ja2VyLCB1bSBkaWUgTGVpc3R1bmcgZGVzIFBmZXJkZXMgenUKZXJob2VoZW4uCjE1LiBXaXIgbWFjaGVuIGVpbmUgU3R1ZGllLCB1bSB6dSBzZWhlbiwgb2IgZXMgYmlsbGlnZXJlIEJlcmF0ZXIgZ2lidC4KMTYuIFdpciBrYXVmZW4gZXR3YXMgenUsIHdhcyB2ZXJzcHJpY2h0LCB0b3RlIFBmZXJkZSBzY2huZWxsZXIgbGF1ZmVuIHp1Cmxhc3Nlbi4KMTcuIFdpciBlcmtsYWVyZW4sICJ1bnNlciBQZmVyZCBpc3Qgc2NobmVsbGVyLCBiZXNzZXIgdW5kIGJpbGxpZ2VyIHRvdC4iCjE4LiBXaXIgZXRhYmxpZXJlbiBlaW4gUXVhbGl0YWV0c21hbmFnZW1lbnQsIHVtIGZ1ZXIgZGllIHRvdGVuIFBmZXJkZSBlaW5lbgpWZXJ3ZW5kdW5nc3p3ZWNrIHp1IGZpbmRlbi4KMTkuIFdpciB1ZWJlcmFyYmVpdGVuIGRpZSBMZWlzdHVuZ3NiZWRpbmd1bmdlbiBmdWVyIHRvdGUgUGZlcmRlLgoyMC4gV2lyIHJpY2h0ZW4gZWluZSB1bmFiaGFlbmdpZ2UgS29zdGVuc3RlbGxlIGZ1ZXIgdG90ZSBQZmVyZGUgZWluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXVzIGRlLmFsdC5zeXNhZG1pbi5yZWNvdmVyeSAoUGFuaWMsIDIwLiBOb3YgMjAwMCwgMTA6MzM6NDQpOgpIb2xnZXIgTWFyemVuIDxob2xnZXJAbWFyemVuLmRlPiB3cm90ZToKCj4gTSQgaXN0IGluIGRlciBNaW5kZXJoZWl0LCBzb3dvaGwgYmV6dWVnbGljaCBkZXIgQW56YWhsIGFuCj4gQmV0cmllYnNzeXN0ZW1pbnN6YW56ZW4gYWxzIGF1Y2ggdm9uIFBsYXR0ZW5wbGF0eiwgUkFNIHVuZCBDUFUtTGVpc3R1bmcuCgpEYWZ1ZXIgaGFiZW4gTVMgdW5kIEJvcmxhbmQgZWluIER1b3BvbCBhdWYgZGllIGFscyBNb25pdG9ydW50ZXJsYWdlCmdlbnV0enRlbiBIYW5kYnVlY2hlci4gRGF6dSBrb21tdCwgZGFzcyAiV2luZG93cyBmdWVyIFdvcmtncm91cHMiCndlc2VudGxpY2ggc3RhYmlsZXIgbGllZ3QgYWxzIEtvcGthIHVuZCBCcm9uc3RlaW4genVzYW1tZW4gdW5kIHNjaG9uIHNlaXQKSmFocmVuIG5pY2h0IGFiZ2VzdHVlcnp0IGlzdC4KCkRhcyBkdWVyZnRlIGRpZSBVbnRlcmxlZ2VuaGVpdCBiZWkgUGxhdHRlbnBsYXR6LCBSQU0gdW5kIENQVS1MZWlzdHVuZwp3aWVkZXIgd2V0dG1hY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCipnKiAoSGlnaHQsIDIwLiBOb3YgMjAwMCwgMTg6NTI6MDEpOgpXb3JhbiBTaWUgYmVtZXJrZW4sIGRhIFNpZSBhbSBBcmJlaXRzcGxhdHogdW5iZWxpZWJ0IHNpbmQgOgoKMTAuIERhcyBGaXJtZW50b2lsZXR0ZW5wYXBpZXIgaXN0IG1pdCBJaHJlbSBGb3RvIGJlZHJ1Y2t0CjkuIFNpZSB3ZXJkZW4gc3BhZXNoYWxiZXIgbmljaHQgbWl0IFBhcGllcmt1Z2Vsbiwgc29uZGVybiBtaXQgU3RlaW5lbgpiZXdvcmZlbi4KOC4gU3RhdHQgZWluZXMgQ29tcHV0ZXJzIGdpYnQgbWFuIElobmVuIGVpbmUgU3RlaW50YWZlbCB1bmQgZWluZW4gTWVpZWwuCjcuIElocmUgUHJha3Rpa2FudGluIGJsc3QgSWhuZW4gaGNoc3RlbnMgZGVuIE1hcnNjaAo2LiBNYW4gemFobHQgSWhuZW4gSWhyIEdlaGFsdCBhYiBzb2ZvcnQgaW4gUnViZWwgYXVzLgo1LiBJaHJlIEtvbGxlZ2VuIHNjaGVua2VuIElobmVuIGVpbiBULVNoaXJ0IG1pdCBlaW5lciBaaWVsc2NoZWliZQo0LiBBbiBJaHJlciBCcm90ciBzaW5kIHp3ZWkgTnVsbGVuIGFuZ2VicmFjaHQKMy4gSWhyZSBLbmRpZ3VuZyBoYWJlbiBhbGxlIEtvbGxlZ2VuIHVudGVyc2NocmllYmVuLgoyLiBEYXMgQmlsZCBJaHJlciBGcmF1IHN0ZWh0IG5vY2ggYXVmIDEyIGFuZGVyZW4gU2NocmVpYnRpc2NoZW4uCjEuIFNpZSBzaW5kIGRlciBDaGVmIQoKCldvcmFuIFNpZSBiZW1lcmtlbiwgZGEgU2llIGhsaWNoIHNpbmQ6CgoxMC4gV2VnZW4gSWhyZXIgdW5yZWluZW4gSGF1dCBuZW5udCBtYW4gU2llIFBpenphbWFubgo5LiBJaHIgU3BpZWdlbGJpbGQgYmVyZ2lidCBzaWNoCjguIERpZSBCdW5kZXN3ZWhyIHdpcmQgYXVmZ2Vsc3QsIHdlaWwgU2llIGFscyBBYnNjaHJlY2t1bmcgYXVzcmVpY2hlbi4KNy4gVW0gYmVzc2VyIGF1c3p1c2VoZW4sIHNjaG1pbmtlbiBTaWUgc2ljaCBtaXQgU3VyZQo2LiBJaHJlIEZyYXUgbmltbXQga2VpbmVuIFNjaGVpZHVuZ3NhbndhbHQsIHNvbmRlcm4gZWluZW4gS2FtbWVyamdlci4KNS4gQmVpIElocmVyIEdlYnVydCBpc3QgZGllIEhlYmFtbWUgaW4gT2hubWFjaHQgZ2VmYWxsZW4uCjQuIFNpZSBtc3NlbiBJaHJlIFBpY2tlbCBuaWNodCBhdXNkcmNrZW4sIHdlaWwgc2llIGZyZWl3aWxsaWcgaGVyYXVza29tbWVuLgozLiBTaWUgdHJhZ2VuIElocmVuIFBvbnkgYmlzIHp1bSBLaW5uLgoyLiBVbSBTaWUgenUgdmVyc2NobmVybiwgc2NobGd0IElociBDaGlydXJnIGVpbmUgRW50aGF1cHR1bmcgdm9yLgoxLiBEZXIgUGFiaWxkYXV0b21hdCBleHBsb2RpZXJ0LgoKCldvcmFuIFNpZSBiZW1lcmtlbiwgZGEgU2llIGVpbmVuIHNleHNjaHRpZ2VuIENoZWYgaGFiZW46CgoxMC4gU2llIGhhYmVuIGplZGVuIFRhZyBmcmVpLCBhYmVyIG51ciB1bnRlbiBydW0KOS4gRGllIE51bW1lcm4gaW4gc2VpbmVyIFRlbGVmb25saXN0ZSBiZWdpbm5lbiBhbGxlIG1pdCAwMTkwCjguIERlciBCZXRyaWVic2F1c2ZsdWcgZ2VodCBpbW1lciBuYWNoIFRoYWlsYW5kCjcuIERlciBMb2NoZXIgaXN0IHNlaW4gYmVzdGVyIEZyZXVuZC4KNi4gRXIgYmlldGV0IElobmVuIGplZGVuIFRhZyBlaW5lIG5ldWUgU3RlbGx1bmcgYW4KNS4gU2VpbmUgU2VrcmV0cmluIG5pbW10IFRhYmxldHRlbiBmciBNaWdybmUKNC4gU2llIGhhYmVuIGRlbiBIaGVwdW5rdCBJaHJlciBLYXJyaWVyZSBlcnJlaWNodC4gWnVtIGRyaXR0ZW4gTWFsIGluIGVpbmVyClN0dW5kZQozLiBFciBuaW1tdCBpbW1lciB6d2VpIFN0Y2sgVmlhZ3JhIGluIGRlbiBLYWZmZWUuCjIuIEVyIHppZWh0IHNlaW5lIEdlc2NoZnRzcGFydG5lciBuaWNodCBiZXIsIHNvbmRlcm4gdW50ZXIgZGVuIFRpc2NoLgoxLiBFciBpc3QgUHJzaWRlbnQgZGVyIFVTQSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAqZyogKFphcm5peWEsIDIxLiBOb3YgMjAwMCwgMDk6MTc6MDMpOgp+IyEgcm49SGlnaHQgcnQ9OTc0NzQyNzIxIHJnPXdpdHplCn4jISB0aWQ9OTc0NzQyNzIxCkRhcyBrYW5uIGljaCBub2NoIHN0ZWlnZXJuIQoKV29yYW4gbWVya2UgaWNoLCBkYXNzIGljaCBlaW4gVm9sbGRlcHAgYmluIHVuZCBmdWVyIGRpZSBNUEEgdW5kIHdhaHJzY2hlaW5saWNoCmRhcyBrb21wbGV0dGUgTUcgdW5nZWVpZ25ldD8KCjEwLiBJY2ggcG9zdGUgQXJ0aWtlbCBtaXQgVW1sYXV0ZW4uCjkuIEljaCBwb3N0ZSBBcnRpa2VsIG1pdCBVbWxhdXRlbi4KOC4gSWNoIHBvc3RlIEFydGlrZWwgbWl0IFVtbGF1dGVuLgo3LiBJY2ggcG9zdGUgQXJ0aWtlbCBtaXQgVW1sYXV0ZW4uCjYuIEljaCBwb3N0ZSBBcnRpa2VsIG1pdCBVbWxhdXRlbi4KNS4gSWNoIHBvc3RlIEFydGlrZWwgbWl0IFVtbGF1dGVuLgo0LiBJY2ggcG9zdGUgQXJ0aWtlbCBtaXQgVW1sYXV0ZW4uCjMuIEljaCBwb3N0ZSBBcnRpa2VsIG1pdCBVbWxhdXRlbi4KMi4gSWNoIHBvc3RlIEFydGlrZWwgbWl0IFVtbGF1dGVuLgoxLiBJY2ggcG9zdGUgQXJ0aWtlbCBtaXQgVW1sYXV0ZW4uCgpNYXJjCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6ICpnKiAoSGlnaHQsIDIxLiBOb3YgMjAwMCwgMTg6MjE6MDYpOgp+IyEgcm49WmFybml5YSBydD05NzQ3OTQ2MjMgcmc9d2l0emUKfiMhIHRpZD05NzQ3NDI3MjEKZXMgdHV0IG1pciBqYSBsZWlkIGRpciBkYXMgc2FnZW4genUgbXVlc3NlbiBhYmJhIGljaCBoYWJlIGVzIGluIGdlbmF1Y2ggZGllc2VtCnp1c3RhbmQgZ2VmdW5kZW4gLi4uIGQuaC4gZXMgd2FyZW4gYXVjaCB2b3JoZXIga2VpbmUgZHJpbm5lIC4uLiAKCnVuZCBudXIgdW0gZXMgbWFsIGFuenVtZXJrZW4gLi4uIGRhcyBpc3QgbmljaHQgd2lya2xpY2ggZWluIGdydW5kIHBlcnNvZW5saWNoCnp1IHdlcmRlbiAuLi4gCgpndXNzIGhpZ2h0CgpQLlMuIHdlciBpcyBkZWluIGVyc3RpZSAuLi4gbXVzcyBqYSB3aXNzZW4gd2VuIGljaCBpZ25vcmllcm4gc29sbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogKmcqIChNb250YW51cywgMjEuIE5vdiAyMDAwLCAyMDo1OTo0MSk6Cn4jISBybj1IaWdodCBydD05NzQ4MjcyNjYgcmc9d2l0emUKfiMhIHRpZD05NzQ3NDI3MjEKCkljaCBnbGF1YiwgZGVyIGdyb2Vzc3RlIFdpdHogd2FyIGZvbGdlbmRlIEFldXNzZXJ1bmcgdm9uIEhpZ2h0OgoiUC5TLiB3ZXIgaXMgZGVpbiBlcnN0aWUgLi4uIG11c3MgamEgd2lzc2VuIHdlbiBpY2ggaWdub3JpZXJuIHNvbGwiCgpBbHMgd3Vlc3N0ZSBpcmdlbmR3ZXIgaGllciBuaWNodCwgZGFzcyBaYXJuaXlhID0gWWFudHJvIGlzdC4KSW1tZXIgbm9jaCBsYWNoZW5kCgpNb250YW51cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaW4gc2FuZCAoR3JpbW1ib3JuLCAyMS4gTm92IDIwMDAsIDIxOjUwOjM1KToKfiMhIG9uPU1hdHRpbWVvIG90PTk3NDgzOTc5MyBvZz1hbGxnZW1laW5lcwptYXR0aW1lbyB3YXIgYXVjaCBoaWVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiAqZyogKENhdHdlYXpsZSwgMjIuIE5vdiAyMDAwLCAxMDoyMzoxNCk6Cn4jISBybj1Nb250YW51cyBydD05NzQ4MzY3ODEgcmc9d2l0emUKfiMhIHRpZD05NzQ3NDI3MjEKQWx0ZXIgU2FjayA6KQpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6ICpnKiAoWmFybml5YSwgMjMuIE5vdiAyMDAwLCAxNToyMDoxNik6Cn4jISBybj1IaWdodCBydD05NzQ4MjcyNjYgcmc9d2l0emUKfiMhIHRpZD05NzQ3NDI3MjEKYWxzbyBkaWUgRnJhZ2UgbmFjaCBtZWluZW0gRXJzdGllIGlzdCB3aXJrbGljaCBtYWwgZWluIGd1dGVyIFdpdHouLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6ICpnKiAoSGlnaHQsIDIzLiBOb3YgMjAwMCwgMTk6MDc6NTMpOgp+IyEgcm49WmFybml5YSBydD05NzQ5ODkyMTYgcmc9d2l0emUKfiMhIHRpZD05NzQ3NDI3MjEKb2tpIG9raSBldWVyIGhvaGVpdAoKaWNoIGJpdHRlIHVudGVydGFlbmljaHN0IHVtIGVudHNjaHVsZGlndW5nIGRhcyBpY2ggbmljaHQgc28gYWxsd2lzc2VuZCBiaW4gd2llCmlociAuLi4gaWNoIHdlcmRlIGVzIHZlcm1laWRlbiBtZWluIHdlcnRsb3NlcyBoYXVwdCBub2NoIGVpbm1hbCB1bnRlciBldWVyCmFuZ2VzaWNodCBrb21tZW4genUgbGFzc2VuIAoKaGlnaHQgZGllIGF1Z2VuIHZlcmRyZWhlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk9obmUgV29ydGUuLi4gKEFtYXJ5bGxpcywgIDEuIERleiAyMDAwLCAxNDowNTo0NCk6Ck9lc3RlcnJlaWNoLCBkYXMgS29lbmlncmVpY2ggZGVzIFp5bmlzbXVzJywgaGF0IHp1ciBSaW5kZXJ3YWhuZGViYXR0ZQplaW5lbiBiZXNvbmRlcmVuIEJlaXRyYWcgZ2VsZWlzdGV0LiAKCkRhcyBKdXgtIHVuZCBIaXBob3AtUmFkaW8gT0UzIHNjaGlja3RlIGltIFJhaG1lbiBlaW5lciBkZXIgYWxsZ2VtZWluCmJlcnVlY2h0aWd0ZW4gU3RyYXNzZW51bWZyYWdlbiBlaW5lbiBSZXBvcnRlciBtaXQgZm9sZ2VuZGVyIEZyYWdlIGluCldpZW5zIEdhc3NlbjogT2IgZGllIE1lbnNjaGVuIGVzIGZ1ZXIgc2lubnZvbGwgaGllbHRlbiwgZGFzcyBrdWVuZnRpZwphbGxlIEtyYWZ0ZmFocnpldWdlIGdlbmVyZWxsIG1pdCBCU0UgYXVnZXJ1ZXN0ZXQgd2VyZGVuIHNvbGx0ZW4uIAoKWnVyIFZlcmJsdWVmZnVuZyBkZXIgUmVkYWt0aW9uIGVyaG9iIHNpY2ggYnJlaXRlLCBzYWNoa3VuZGlnZQpadXN0aW1tdW5nLiBEYXMgc2VpIGdhbnogc2ljaGVyIHZvbiBWb3J0ZWlsLCBkYXMgZXJob2VoZSBkaWUKRmFocnNpY2hlcmhlaXQsIG1hbiBrb2VubmUga3VlbmZ0aWcgbGVpY2h0ZXIgZ2VzdG9obGVuZSBBdXRvcyBvcnRlbiwgZGllClN0YW5kYXJkcyBtdWVzc3RlbiBzb3dpZXNvIGFuZ2Vob2JlbiB3ZXJkZW4uIEVpbiBQYXNzYW50IGVyb2VydGVydGUKYXVzZnVlaHJsaWNoLCBkYXNzIEJTRSBub2NoIHZpZWwgYmVzc2VyIHNlaSBhbHMgQUJTLiBMZWRpZ2xpY2ggZGllCk5hY2hmcmFnZSwgd2FzIGRhcyBLdWVyemVsIEJTRSBrb25rcmV0IGJlZGV1dGUsIGVybnRldGUgYXVzd2VpY2hlbmRlCkFudHdvcnRlbiwgZnJlaWxpY2ggbWl0IGRlciB1bnZlcmRyb3NzZW5lbiBGZXN0c3RlbGx1bmcsIGVzIGRpZW5lCmdydW5kc2FldHpsaWNoIGF1ZiBqZWRlbiBGYWxsIGRlciBTaWNoZXJoZWl0LiAKCkZheml0IGRlciBSZWRha3Rpb24gYXVzIGRlciBVbWZyYWdlOiBBbmdlc2ljaHRzIGRlciBicmVpdGVuIFp1c3RpbW11bmcKc2VpIGRpZSBvYmxpZ2F0b3Jpc2NoZSBBdXNydWVzdHVuZyB2b24gUGVyc29uZW5rcmFmdHdhZ2VuIG1pdCBCU0UKdW5hdXN3ZWljaGxpY2gsIHNpbm52b2xsZXIgV2Vpc2UgYWxsZXJkaW5ncyBiZWkgZ2xlaWNoemVpdGlnZW0gRWluYmF1CnZvbiBSaW5kZXJzaXR6ZW4uIAoKUXVlbGxlOiBTdWVkZGV1dHNjaGUgWmVpdHVuZwoKQW1hcnlsbGlzIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3ZWJtYXN0ZXIgKEdhbmRvLCAgMS4gRGV6IDIwMDAsIDE2OjQ0OjA1KToKIEJyaWVmIGFuIGVpbmVuIFdlYm1hc3RlcjoKIEhhbGxvLAogc2VpZCBpaHIgc2Nob24gbWFsIGF1ZiBkaWUgSWRlZSBnZWtvbW1lbiwgZXVjaCBkaWUgU2VpdGVuIGV1cmVzCkt1bmRlbiBhdWYgZGVtIE1hYyAoZ2dmLiBzb2dhciBtaXQgTmV0c2NhcGUgOi0pIGFuenVzY2hhdWVuPyBEaWUKU2VpdGVuIHNpbmQgamVkZW5mYWxscyB1bmJyYXVjaGJhciwgdmllbGxlaWNodCBsZXJudCBpaHIgamEgZG9jaCAgIAptYWwgSFRNTCwgYW5zdGF0dCBzaWNoIGF1ZiBGcm9udHBhZ2UgenUgdmVybGFzc2VuLgogSWNoIHdlcmQgdHJvdHpkZW0gbWFsIG5lIEFuZnJhZ2UgYmVpIFsuLi5dIHN0YXJ0ZW4gdW5kIGF1Y2gKbmljaHQgc2FnZW4sIGRhc3MgZXIgYWxsZWluZSB3ZWdlbiBzZWluZXMgSW50ZXJuZXRhdWZ0cml0dHMKbW9lZ2xpY2hlcndlaXNlIEt1bmRlbiB2ZXJsaWVydC4uLgogR3J1c3MsCiBSdWRpCiAgCiB1bmQgaGllciBkaWUgQW50d29ydCBkZXMgV2VibWFzdGVyczoKIFNlaHIgZ2VlaHJ0ZXIgSGVyciBSdWRpLAogd2VubiBTaWUgYml0dGUgSWhyIFByb2JsZW0gZXR3YXMgZ2VuYXVlciBiZXNjaHJlaWJlbiwga29lbm5lbiB3aXIKSWhuZW4gZXYuIHdlaXRlciBoZWxmZW4uIEZ1ZXIgd2FzIHN0ZWh0IGRpZSBBYmt1ZXJ6dW5nIE1hYyB1bmQKSFRNTD8KIFdpciBiZWRhbmtlbiB1bnMgaW0gVm9yYXVzIGZ1ZXIgSWhyZSBmYWNobGljaGUgSW5mb3JtYXRpb24uCiBtZmcgV2VibWFzdGVyCgoKc28gZ2VodHMgLi4uIApHYW5kbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE9obmUgV29ydGUuLi4gKFdvb2R5LCAgMi4gRGV6IDIwMDAsIDAwOjI3OjM5KToKfiMhIHJuPUFtYXJ5bGxpcyBydD05NzU2NzU5NDQgcmc9d2l0emUKfiMhIHRpZD05NzU2NzU5NDQKU29sY2hlIFVtZnJhZ2VuIHdlcmRlbiBzZWhyIG9mdCB2b24gT2UzIGdlbWFjaHQgKHdvYmVpIGVzIHNpY2gKaGllcmJlaSB3ZWRlciB1bSBlaW4gSGlwaG9wLSBub2NoIHVtIGVpbiBKdXhyYWRpbyBoYW5kZWx0LCBlaGVyCnVtIGVpbmVuIHNjaGxlY2h0ZW4gU2VuZGVyKSwgdW5kIGRhIHdhcmVuIHNjaG9uIGRldXRsaWNoIGx1c3RpZ2VyZQp1bmQgb3JpZ2luZWxsZXJlIEJlaXRyYWVnZSBkYWJlaS4gRXR3YSBkaWUgVW1mcmFnZSwgd2VsY2hlIENoYW5jZW4KbWFuIGRlbm4gQnJhc2lsaWVuIGJlaSBkZXIgRnVzc2JhbGwtRU0gZWlucmFldW1lLCBvLmFlLiAuLi4gZGFzcwpkYWJlaSA5MCUgcmF1c2dlc2Nobml0dGVuIHdlcmRlbiwgaXN0IG5hdHVlcmxpY2ggd2FzIGFuZGVyZXMgOykKCgpXb29keS4tCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW4gYWxsZSBVc2VyIChDYXR3ZWF6bGUsICA0LiBEZXogMjAwMCwgMTA6NTA6MDEpOgpBbiBhbGxlIFVzZXI6CiAKMS4gV2VubiBqZW1hbmQgdm9uIGRlciBFRFYtQWJ0ZWlsdW5nIHNhZ3QsIGRhc3MgZXIgZ2xlaWNoIHZvcmJlaWtvbW10LAptZWxkZSBEaWNoIHZvbSBTeXN0ZW0gYWIgdW5kIGdlaCBlaW5lbiBLYWZmZWUgdHJpbmtlbi4gRXMgaXN0IGZ1ZXIgdW5zCmtlaW4gUHJvYmxlbSwgdW5zIDcwMCBQYXNzd29lcnRlciB6dSBtZXJrZW4uCiAKMi4gV2VubiBEdSB1bnMgcnVmc3QgdW0gRGVpbmVuIENvbXB1dGVyIHZvbiBlaW5lbSBpbnMgYW5kZXJlIEJ1ZXJvIHp1CnRyYWdlbiwgdmVyZ2V3aXNzZXJlIERpY2gsIGRhc3MgZXIgdW50ZXIgVG9ubmVuIHZvbiBQb3N0a2FydGVuLApLaW5kZXJiaWxkZXJuLCBTdG9mZnRpZXJlbiwgdmVydHJvY2tuZXRlbiBCbHVtZW4gdW5kIEtpbmRlcmtyaXR6ZWxlaWVuCmJlZ3JhYmVuIGlzdC4gV2lyIGhhYmVuIGtlaW4gZWlnZW5lcyBMZWJlbiB1bmQgd2lyIGxpZWJlbiBlcywgdGllZiB1bnRlcgpkZW0gTXVlbGwgaW4gaXJnZW5kIGV0d2FzIGdsaWJiZXJpZ2VzIHZvbiBEaXIgenUgZ3JlaWZlbi4KIAozLiBXZW5uIER1IHZvbiBkZXIgRURWLUFidGVpbHVuZyBlaW5lIGUtTWFpbCBtaXQgaG9lY2hzdGVyIERyaW5nbGljaGtlaXQKYmVrb21tc3QsIGxvZXNjaGUgc2llIHNvZm9ydC4gV2FocnNjaGVpbmxpY2ggdGVzdGVuIHdpciBudXIgZGllIG9lZmZlbnRsaWNoZW4KTWFpbHZlcnRlaWxlci4KIAo0LiBXZW5uIGVpbiBFRFYtTWl0YXJiZWl0ZXIgYW4gc2VpbmVtIFNjaHJlaWJ0aXNjaCBzZWluIE1pdHRhZ2Vzc2VuIHZlcnplaHJ0LApnZWhlIGRpcmVrdCB6dSBpaG0sIHVlYmVyc2NodWV0dGUgaWhuIG1pdCBWb3J3dWVyZmVuIHVuZCBEZWluZW4gQ29tcHV0ZXItCnByb2JsZW1lbiB1bmQgZXJ3YXJ0ZSB2b24gaWhtLCBkYXNzIGVyIHNvZm9ydCBhbnR3b3J0ZXQuIFdpciBleGlzdGllcmVuCmVpbnppZyB1bSB6dSBkaWVuZW4gdW5kIHdpciBkZW5rZW4gaW1tZXIgbnVyIGFuIGRpZSBSZXBhcmF0dXIgdm9uIENvbXB1dGVybi4KIAo1LiBXZW5uIHNpY2ggZWluIEVEVi1NaXRhcmJlaXRlciBlaW4gTWluZXJhbHdhc3NlciBob2x0LCBvZGVyIGVyIGVpbmUKWmlnYXJldHRlIHJhdWNodCwgZnJhZyBpaG4gaXJnZW5kIGV0d2FzIHVlYmVyIENvbXB1dGVyLiBEZXIgZWluemlnZSBHcnVuZCAgCndhcnVtIHdpciBNaW5lcmFsd2Fzc2VyIHRyaW5rZW4sIG9kZXIgcmF1Y2hlbiBpc3QsIGRhc3Mgd2lyIG5hY2ggVXNlcm4Kc3VjaGVuLCBkaWUgd2VkZXIgZS1NYWlsLCBub2NoIFRlbGVmb24gYmVzaXR6ZW4uCiAKNi4gV2VubiBEdSBlaW5lbiBFRFYtTWl0YXJiZWl0ZXIgcGVyIFRlbGVmb24gZGlyZWt0IGFucnVmc3QsIGRydWVja2UgZGllIDUKdW0gZGllIGF1dG9tYXRpc2NoZSBCZWdydWVzc3VuZyB6dSB1bWdlaGVuLCBpbiBkZXIgRGlyIG1pdGdldGVpbHQgd2lyZCBkYXMKZGVyIE1pdGFyYmVpdGVyIHp1ciBaZWl0IGltIFVybGF1YiBpc3QuIFNwcmljaCBkZWluZSBOYWNocmljaHQgYXVmIGRlbgpBbnJ1ZmJlYW50d29ydGVyIHVuZCB3YXJ0ZSBleGFrdCAyNCBTdHVuZGVuLCBiZXZvciBEdSBlaW5lIEJlc2Nod2VyZGUgcGVyCmUtTWFpbCBkaXJla3QgYW4gZGVuIFZvcmdlc2V0enRlbiBzY2hpY2tzdCwgd2VpbCBEaWNoIG5pZW1hbmQgenVydWVja2dlcnVmZW4KaGF0LgogCjcuIFdlbm4gZGVyIEZvdG9rb3BpZXJlciBuaWNodCBmdW5rdGlvbmllcnQsIHJ1ZiBkaWUgRURWLUFidGVpbHVuZy4KU2NobGllc3NsaWNoIGlzdCBkYSBhdWNoIEVsZWt0cm9uaWsgZHJpbiwgb2Rlcj8KIAo4LiBXZW5uIER1IFp1aGF1c2UgYmVpbSBWZXJiaW5kdW5nc2F1ZmJhdSBwZXIgTW9kZW0gZWluZSBGZWhsZXJtZWxkdW5nIHdpZToKIktlaW4gV2FlaGx0b24iIG9kZXIgIk5vIERpYWwgVG9uZSIgYmVrb21tc3QsIHJ1ZiBkaWUgRURWLUFidGVpbHVuZy4KV2lyIGtvZW5uZW4gc29nYXIgVGVsZWZvbnByb2JsZW1lIHZvbiBoaWVyIGF1cyBsb2VzZW4uCiAKOS4gV2VubiBpcmdlbmQgZXR3YXMgbWl0IERlaW5lbSBQcml2YXQtUEMgbmljaHQgaW4gT3JkbnVuZyBpc3QsIHN0ZWxsIGlobiBhdWYKZWluZW4gU3R1aGwgb2RlciBUaXNjaCBpbiBkZXIgRURWLUFidGVpbHVuZy4gSGludGVybGFzc2Uga2VpbmVuIE5hbWVuLCBrZWluZQpUZWxlZm9ubnVtbWVyIHVuZCB2b3IgYWxsZW0ga2VpbmUgQmVzY2hyZWlidW5nIGRlcyBQcm9ibGVtcy4gV2lyIGxpZWJlbiBlcywKZWluIGd1dGVzIFJhZXRzZWwgenUgbG9lc2VuLgogCjEwLiBXZW5uIER1IGVpbmVuIEVEVi1NaXRhcmJlaXRlciBhbSBUZWxlZm9uIGhhc3QsIGRlciBtaXQgRGlyIGR1cmNoIGRpZSAgICAKTWVudWVzIGdlaHQgdW0gZWluZW4gRWludHJhZyB6dSBhZW5kZXJuLCBsaWVzIFplaXR1bmcgb2RlciB0dSBpcmdlbmQgZXR3YXMKYW5kZXJlcy4gV2lyIHdvbGxlbiBuaWNodCB3aXJrbGljaCwgZGFzIER1IGV0d2FzIHR1c3Q7IHdpciBsaWViZW4gZXMsIHVucwpzZWxic3QgcmVkZW4genUgaG9lcmVuLgogCjExLiBXZW5uIHdpciBlaW4gVHJhaW5pbmcgZnVlciBkaWUgbmFlY2hzdGUgVmVyc2lvbiBkZXMgQmV0cmllYnNzeXN0ZW1zCmFuYmlldGVuLCBmdWVobGUgRGljaCBuaWNodCBiZWxhZXN0aWd0LiBXaXIgd2VyZGVuIGRhIHNlaW4gdW0gRGVpbiBIYWVuZGNoZW4KenUgaGFsdGVuLCB3ZW5uIGVzIHZvcmJlaSBpc3QuCiAKMTIuIFdlbm4gZGVyIERydWNrZXIgbmljaHQgZHJ1Y2tlbiB3aWxsLCBzZW5kZSBkZW4gRHJ1Y2thdWZ0cmFnIDIwIG1hbC4KRHJ1Y2thdWZ0cmFlZ2UgdmVyc2Nod2luZGVuIG5hZW1saWNoIG9obmUgamVkZW4gR3J1bmQgaW0gTmlyZ2VuZHdvLgogCjEzLiBXZW5uIGRlciBEcnVja2VyIG5hY2ggMjAgVmVyc3VjaGVuIGltbWVyIG5vY2ggbmljaHQgZHJ1Y2tlbiB3aWxsLCBzZW5kZQpkZW4gRHJ1Y2thdWZ0cmFnIGFuIGFsbGUgNjggRHJ1Y2tlciBpbiBkZXIgRmlybWEuIEVpbmVyIHZvbiBpaG5lbiB3aXJkCnNjaG9uIGRydWNrZW4uLi4KIAoxNC4gQmVudXR6ZSBuaWUgZGllIE9ubGluZS1IaWxmZSAoZGFzIGlzdCBkaWUgSGlsZmUsIGRpZSB2b24gamVkZW0KUHJvZ3JhbW0gYW5nZWJvdGVuIHdpcmQuLi4pIERhcyBpc3QgZXR3YXMgZnVlciBTY2h3YWVjaGxpbmdlLgogCjE1LiBXZW5uIER1IGlyZ2VuZGVpbmVuIENvbXB1dGVyZnVlaHJlcnNjaGVpbiBiZWkgZGVyIFZIUywgb2RlciBhZWhubGljaGVtCm1hY2hzdCwgZ2VoIHJ1aGlnIGluIGRlciBBYnRlaWx1bmcgcnVtIHVuZCAidmVyYmVzc2VyZSIgVHJlaWJlciB1bmQgUHJvZ3JhbW1lCmF1ZiBEZWluZW0gdW5kIGF1ZiBhbGxlbiBSZWNobmVybiBEZWluZXIgTWl0YXJiZWl0ZXIuIFdpciBzaW5kIGRhbmtiYXIgZnVlcgpkaWUgVWViZXJzdHVuZGVuIGRpZSB3aXIgaGFiZW4sIHdlbm4gd2lyIGJpcyAzOjAwIFVociBtb3JnZW5zIGRpZSBkYXJhdXMKcmVzdWx0aWVyZW5kZW4gUHJvYmxlbWUgYmVoZWJlbiBtdWVzc2VuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIAoxNi4gV2VubiBlaW4gRURWLU1pdGFyYmVpdGVyIHVtIDEyOjMwIFVociBEZWluZW4gQ29tcHV0ZXIgcmVwYXJpZXJ0LCBtYWNoCk1pdHRhZyB1bmQgYWNodGUgZGFyYXVmLCBkYXNzIGVyIG1pdGJla29tbXQgd2llIGxlY2tlciBkYXMgRXNzZW4gc2NobWVja3QuCldpciBhcmJlaXRlbiBiZXNzZXIsIHdlbm4gdW5zIHZvciBIdW5nZXIgZWluIHdlbmlnIHNjaHdpbmRlbGlnIGlzdC4KIAoxNy4gRGFua2UgdW5zIG5pZW1hbHMuIFdpciBsaWViZW4gZGllIEFyYmVpdCBVTkQgd2lyIHdlcmRlbiBkYWZ1ZXIgYmV6YWhsdCEKIAoxOC4gV2VubiBEaWNoIGVpbiBFRFYtTWl0YXJiZWl0ZXIgZnJhZ3QsIG9iIER1IGlyZ2VuZGVpbmUgbmV1ZSBTb2Z0d2FyZSBhdWYKZGVpbmVtIFJlY2huZXIgaW5zdGFsbGllcnQgaGFzdCwgTFVlR0UhIEVzIGdlaHQgbmllbWFuZGVuIGV0d2FzIGFuLCB3YXMgYXVmCkRlaW5lbSBSZWNobmVyIGlzdC4KIAoxOS4gV2VubiBkYXMgTWF1c2thYmVsIGRyb2h0LCBEZWluZSBLYWZmZWV0YXNzZSB1bXp1d2VyZmVuLCBoZWIgRGVpbmVuCk1vbml0b3IgYW4gdW5kIHF1ZXRzY2ggZGFzIEthYmVsIGRhcnVudGVyIGVpbi4gTWF1c2thYmVsIHNpbmQgYXVzc2NobGllc3NsaWNoCmRhZnVlciBlbnR3b3JmZW4gd29yZGVuIHVtIDIwIEtnIE1vbml0b3JnZXdpY2h0IHp1IGVydHJhZ2VuLgogCjIwLiBXZW5uIGRpZSBMZWVydGFzdGUgYXVmIERlaW5lciBUYXN0YXR1ciBuaWNodCBtZWhyIGZ1bmt0aW9uaWVydCwgbWFjaCBkYXMKbmV1ZSBNYWlscHJvZ3JhbW0gb2RlciBldHdhcyBhbmRlcnMgZGFmdWVyIHZlcmFudHdvcnRsaWNoLiBVZWJyaWdlbnM6ClRhc3RhdHVyZW4gYXJiZWl0ZW4gd2VzZW50bGljaCBiZXNzZXIsIHdlbm4gc2ljaCBCcm90a3J1ZW1lbCwgS2FmZmVlIG9kZXIKZGlja2UgVHJvcGZlbiBrbGVicmlnZSBDb2xhIHVudGVyIGRlbiBUYXN0ZW4gYmVmaW5kZW4uCiAKMjEuIFdlbm4gRHUgdm9uIGVpbmVtIFByb2dyYW1tIGVpbmUgTmFjaHJpY2h0IG1pdCBkZW0gVGV4dDogIlNpbmQgU2llCnNpY2hlciIsIG9kZXIgIkFyZSB5b3Ugc3VyZSIgZXJoYWVsdHN0LCBrbGljayBzbyBzY2huZWxsIHdpZSBtb2VnbGljaCBhdWYgZGVuCiJKQSIgb2RlciAiWUVTIiAtIEJ1dHRvbi4gVmVyZGFtbXQsIHdlbm4gRHUgbmljaHQgc2ljaGVyIHdhZXJzdCwgd3VlcmRlc3QgRHUgIApkYXMgamEgbmljaHQgdHVuLCBvZGVyPwogCjIyLiBGdWVobGUgRGljaCB2b2VsbGlnIGZyZWkgRGluZ2UgenUgc2FnZW4gd2llOiAiSWNoIHdlaXNzIHVlYmVyaGF1cHQgbmljaHRzCnVlYmVyIGRpZXNlbiBDb21wdXRlciBEcmVjayIuIEVzIGFlcmdlcnQgdW5zIHVlYmVyaGF1cHQgbmljaHQsIHdlbm4gbWFuCnVuc2VyZW4gcmVjaHQgYW5zcHJ1Y2hzdm9sbGVuIEJlcmVpY2gsIGFscyBEcmVjayBiZXplaWNobmV0LgogCjIzLiBXZW5uIGRlciBUb25lciBlaW5lcyBEcnVja2VycyBnZXdlY2hzZWx0IHdlcmRlbiBtdXNzLCBydWYgZGllCkVEVi1BYnRlaWx1bmcuICBFaW5lbiBUb25lciB6dSB3ZWNoc2VsbiBpc3QgZWluZSBhZXVzc2Vyc3Qga29tcGxleGUKQW5nZWxlZ2VuaGVpdCB1bmQgZGllIERydWNrZXJoZXJzdGVsbGVyIGVyd2FydGVuLCBkYXNzIGRpZXNlIEF1ZmdhYmUgbnVyIHZvbgpwcm9mZXNzaW9uZWxsZW4gSW5nZW5pZXVyZW4gbWl0IGVpbmVtIERva3RvciBpbiBOdWtsZWFyLVBoeXNpayBkdXJjaGdlZnVlaHJ0CndpcmQuCiAKMjQuIFdlbm4gaXJnZW5kd2FzIG1pdCBEZWluZW0gQ29tcHV0ZXIgbmljaHQgc3RpbW10LCBzYWcgRGVpbmVyIFNla3JldGFlcmluCmRhcyBzaWUgZGllIEVEVi1BYnRlaWx1bmcgYW5ydWZlbiBzb2xsLiBXaXIgbGllYmVuIGRhcyBTcGllbGNoZW4sIG1pdCBlaW5lcgpkcml0dGVuIFBlcnNvbiBlaW4gUHJvYmxlbSB6dSBrbGFlcmVuIHZvbiBkZW0gU2llIGFic29sdXQgdWViZXJoYXVwdCBuaWNodHMKd2Vpc3MuCiAKMjUuIFdlbm4gZHUgcGVyIGUtTWFpbCBlaW5lIDMwIE1lZ2FieXRlIGdyb3NzZSBEYXRlaSBlcmhhZWx0c3QsIHNlbmRlIHNpZSBtaXQKaG9lY2hzdGVyIFByaW9yaXRhZXQgYW4gamVkZW4gTWl0YXJiZWl0ZXIgZGVyIEZpcm1hLiBXaXIgaGFiZW4gdW5lbmRsaWNoZQpNYXNzZW4gYW4gRmVzdHBsYXR0ZW5zcGVpY2hlciB1bmQgUmVjaG5lcmthcGF6aXRhZXQgYXVmIHVuc2VyZW0gTWFpbC1TZXJ2ZXIuCiAKMjYuIERlbmtlIG5pZW1hbHMgZGFyYW4sIGdyb3NzZSBEcnVja2F1ZnRyYWVnZSBpbiBrbGVpbmUgYXVmenV0ZWlsZW4uICBHb3R0CnZlcmJpZXRldCBlcywgaXJnZW5kIGplbWFuZCBhbmRlcmVtIHp1IGdlc3RhdHRlbiwgYXVjaCB6dSBkcnVja2VuLiAKIAoyNy4gV2VubiBEdSBhbSBTYW1zdGFnIGVpbmVuIEVEVi1NaXRhcmJlaXRlciBpbSBTdXBlcm1hcmt0IHRyaWZmc3QsIGZyYWcgaWhuCmlyZ2VuZCBldHdhcyB1ZWJlciBDb21wdXRlci4gV2lyIGFyYmVpdGVuIDI0IFN0dW5kZW4gYW4gNyBUYWdlbiBkaWUgV29jaGUgdW5kCmRhcnVtIGF1Y2ggaW0gU3VwZXJtYXJrdCBhbSBXb2NoZW5lbmRlLgogCjI4LiBXZW5uIERlaW4gU29obiBlaW4gSW5mb3JtYXRpa3N0dWRlbnQgaXN0LCBsYXNzIGlobiBhbSBXb2NoZW5lbmRlIGluIGRpZQpGaXJtYSBrb21tZW4sIGRhbWl0IGVyIHNlaW5lIFByb2pla3RlIGFuIERlaW5lbSBzY2huZWxsZW4gQnVlcm8tUEMgbWFjaGVuCmthbm4uIFdpciB3ZXJkZW4gZGEgc2Vpbiwgd2VubiBzZWluZSBpbGxlZ2FsZSBLb3BpZSB2b24gVmlzdWFsIEJhc2ljIDYuMCBkaWUKRmluYW56YnVjaGhhbHR1bmcgYWJzdHVlcnplbiBsYWVzc3QuCiAKMjkuIFdlbm4gRHUgdW5zIERlaW5lbiBicmFuZG5ldWVuIFByaXZhdC1QQyBpbnMgQnVlcm8gYnJpbmdzdCwgdW0gaWhuCmtvc3RlbmxvcyB2b24gdW5zIHJlcGFyaWVyZW4genUgbGFzc2VuLCBzYWcgdW5zIHdpZSBkcmluZ2VuZCB3aXIgaWhuCnJlcGFyaWVyZW4gbXVlc3NlbiwgZGFtaXQgRGVpbiBTb2huIGdhbnogc2NobmVsbCB3aWVkZXIgRG9vbSwgUXVha2Ugb2RlcgpNb29yaHVobiBzcGllbGVuIGthbm4uIFdpciB3ZXJkZW4gc29mb3J0IG1pdCBkZXIgUmVwYXJhdHVyIGJlZ2lubmVuLCBkYSB3aXIKamVkZSBNZW5nZSBmcmVpZSBaZWl0IGhhYmVuLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hpbmVzZSBhaWQgdG8gdGhlIFVTIChHb29meSwgMTMuIERleiAyMDAwLCAxNDo0NDoyOSk6ClRoZSBDaGluZXNlIGdvdmVsbm1lbnQganVzdCBzZW50IDYgbWlsbGlvbiB2aWFnbGEgcGlsbHMgdG8gRmxvbGlkYSBzaW5jZSAKdGhleSBoZWFsZCB0aGF0IGluIEZsb2xpZGEgdGhleSBjYW4ndCBnZXQgYW4gZWxlY3Rpb24gKG5vdCBldmVuIGJ5IGhhbmQpLgoKR29vZnkgKHNpY2ggaW1tZXJub2NoIGRlbiBCYXVjaCBoYWx0ZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ3JhZCBnZWxlc2VuIChCaXJkeSwgMjAuIERleiAyMDAwLCAxNzozOTowOCk6ClZpZXIgU2NoaWZmYnJ1ZWNoaWdlLCAzIE1hZW5uZXIgdW5kIGVpbmUgRnJhdSwgbGFuZGVuIGF1ZiBlaW5lciBlaW5zYW1lbgpJbnNlbC4KVW0gZGllIHNleHVlbGxlbiBCZWR1ZXJmbmlzc2UgYWxsZXIgenUgYmVmcmllZGlnZW4sIGtvbW10IG1hbiB1ZWJlcmVpbiwgZGFzcwpqZWRlbiBUYWcgZWluIGFuZGVyZXIgbWl0IGRlciBGcmF1IHNjaGxhZmVuIGR1ZXJmZS4gRGllc2UgUmVnZWx1bmcKZnVua3Rpb25pZXJ0IHByaW1hLiBEb2NoIGxlaWRlciBzdGlyYnQgZGllIEZyYXUgYW5jaCB6d2VpIEphaHJlbi4gCkRpZSBlcnN0ZSBXb2NoZSBuYWNoIGlocmVtIFRvZCBpc3Qgc2Nod2llcmlnLCBkaWUgendlaXRlIGV4dHJlbSwgZGllIGRyaXR0ZQp1bmVydHJhZWdsaWNoLiBJbiBkZXIgdmllcnRlbiBXb2NoZSB3aXJkIGRpZSBGcmF1IGRhbm4gYmVncmFiZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpjb3dib3kgdW5kIGluZGlhbmVyIChCaXJkeSwgMjUuIERleiAyMDAwLCAwMTozNjoxMCk6CkVpbiBDb3dib3kgKHNlaW5lcyBaZWljaGVucyBCYXVjaHJlZG5lcikgdHJpZmZ0IGVpbmVuIEluZGlhbmVyIG1pdCBlaW5lbSBIdW5kCmVpbmVtCiAgICAgICAgIFBmZXJkIHVuZCBlaW5lbSBTY2hhZi4KICAgICAgICAgQ293Ym95OiAiRGFyZiBpY2ggbWFsIG1pdCBkZWluZW0gSHVuZCByZWRlbj8iCiAgICAgICAgIEluZGlhbmVyOiAiSHVuZCBrYW5uIG5pY2h0IHJlZGVuLiIKICAgICAgICAgQ293Ym95OiAiSGFsbG8gYWx0ZXIgSHVuZCwgd2llIGdlaHRzIGRlbm4gc28/IgogICAgICAgICBIdW5kOiAiT2gsIG1pciBnZWh0cyBndXQsIG1laW4gSGVyciBiZWhhbmRlbHQgbWljaCBndXQsIGZ1ZXR0ZXJ0Cm1pY2gsIGdlaHQgendlaW1hbCBwcm8KICAgICAgICAgVGFnIG1pdCBtaXIgYXVzLi4uIgogICAgICAgICBEZXIgSW5kaWFuZXIgc2NoYXV0IGdhbnogZXJzdGF1bnQuCiAgICAgICAgIENvd2JveTogIkFoYSwgZGFyZiBpY2ggbWFsIG1pdCBkZWluZW0gUGZlcmQgcmVkZW4/IgogICAgICAgICBJbmRpYW5lcjogIlBmZXJkIGthbm4gbmljaHQgcmVkZW4uIgogICAgICAgICBDb3dib3k6ICJIYWxsbyBhbHRlcyBQZmVyZCwgd2llIGdlaHRzIGRlbm4gc28/IgogICAgICAgICBQZmVyZDogIk9jaCwgbWlyIGdlaHRzIHN1cGVyISBNZWluIEhlcnIgYmVoYW5kZWx0IG1pY2ggZ3V0LCByZWlidAptaWNoIHRyb2NrZW4sIGZ1ZXR0ZXJ0CiAgICAgICAgIG1pY2guLi4iCiAgICAgICAgIERlciBJbmRpYW5lciBpc3Qgbm9jaCBlcnN0YXVudGVyLgogICAgICAgICBDb3dib3k6ICJLYW5uIGljaCBtYWwgbWl0IGRlaW5lbSBTY2hhZiByZWRlbj8iCiAgICAgICAgIEluZGlhbmVyOiAiU2NoYWYgbHVlZ3QgLi4uIiAKc29ycnksIHdhciBjdXQmcGFzdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm9qZSA7KSAoQmlyZHksIDI1LiBEZXogMjAwMCwgMDE6Mzk6MzgpOgo+IEVpbmUgZGlja2UgRnJhdSBnZWh0IHp1ciBlcnN0ZW4gVW50ZXJzdWNodW5nIHp1bSBGcmF1ZW5hcnp0LiBEaWVzZXIgZXJrbGFlcnQKaWhyIGRlbgo+ICAgICAgICAgIFN0dWhsIHVuZCB3aWUgc2llIHNpY2ggZHJhdWZ6dXNldHplbiBoYXQuIERpZSBGcmF1IHN0ZWlndCBtdWVoc2FtCmF1ZiBkZW4gU3R1aGwgdW5kCj4gICAgICAgICAgc3ByZWl6dCBzY2hvZW4gZGllIEJlaW5lLgo+ICAgICAgICAgIERlciBBcnp0IGRyZWh0IHNpY2ggenUgaWhyIHVtIHVuZCBzY2hhdXQgc2llIGVpbmUgV2VpbGUgYW4uCj4gICAgICAgICAgIlNvIGxpZWJlIEZyYXUgdW5kIG51biBmdXJ6ZW4gc2llLiIKPiAgICAgICAgICAiR2Vob2VydCBkYXMgenVyIEJlaGFuZGx1bmc/Igo+ICAgICAgICAgICJOZWluLCB6dSBtZWluZXIgT3JpZW50aWVydW5nISEhIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5hIGh1Y2ggISAoQmlyZHksIDI1LiBEZXogMjAwMCwgMDE6NDg6MzIpOgpJbiBkZXIgRW50YmluZHVuZ3NzdGF0aW9uOgogICAgICAgICBEYXMgS2luZCBpc3Qgc2Nod2Fyeiwgc2VtbWVsYmxvbmRlIE9zdGZyaWVzZW5oYWFyZSwgY2hpbmVzaXNjaGUKU2NobGl0emF1Z2VuIQogICAgICAgICBTYWd0IGRpZSBIZWJhbW1lIHp1ciBNdXR0ZXI6ICJXaXNzZW4gU2llLCBlcyBnZWh0IG1pY2ggamEgbmljaHRzIGFuLAphYmVyIGFuIGlocmVyCiAgICAgICAgIFN0ZWxsZSB3YWVyZSBpY2ggaW4gWnVrdW5mdCBiZWltIEdydXBwZW5zZXggdm9yc2ljaHRpZ2VyISIKICAgICAgICAgRGllIGp1bmdlIE11dHRlciBncmluc3Q6ICJXYXMgaGVpc3N0IGhpZXIgdm9yc2ljaHRpZ2VyPyBTaWUga29lbm5lbgpmcm9oIHNlaW4sIGRhc3MgZGVyCiAgICAgICAgIG5pY2h0IGF1Y2ggbm9jaCBiZWxsdCEuLi4iIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIGJlc3RlIEZyZXVuZCBkZXMgTWVuc2NoZW4gKEFtYXJ5bGxpcywgIDQuIEphbiAyMDAxLCAxOTo1MjozOSk6Ck1laW4gSHVuZCBTZXgKClVlYmxpY2hlcndlaXNlIG5lbm50IGplZGVyIHNlaW5lbiBIdW5kICJXYWxkaSIsICJEaW5vIiBvZGVyIHNvbnN0d2llLiBJY2gKbmVubmUgbWVpbmVuIEh1bmQgIlNFWCIuCk51biBqYSwgU2V4IGlzdCBlaW4gTmFtZSwgZGVyIGVpbmVuIGluIFNjaHdpZXJpZ2tlaXRlbiBicmluZ2VuIGthbm4uCkVpbmVzIEFiZW5kcyBnaW5nIGljaCBtaXQgU2V4IGltIFBhcmsgc3BhemllcmVuLCB1bmQgZXIgbGllZiBtaXIgd2VnLgpJY2ggaGFiZSBtZWluZW4gSHVuZCBkaWUgZ2FuemUgTmFjaHQgZ2VzdWNodC4gRGEga2FtIGVpbiBQb2xpemVpd2FnZW4KYW5nZWZhaHJlbiwgdW5kIGRpZSBQb2xpemlzdGVuIGZyYWd0ZW4gbWljaCwgd2FzIGljaCBtb3JnZW5zIHVtIDQgVWhyIGltClBhcmsgbWFjaGUuIEljaCBhbnR3b3J0ZXRlOiAiIEljaCBzdWNoZSBTZXgiLiBNZWluZSBHZXJpY2h0c3ZlcmhhbmRsdW5nCmZpbmRldCBuYWVjaHN0ZW4gRG9ubmVyc3RhZyBzdGF0dC4KRWluZXMgVGFnZXMgZ2luZyBpY2ggenVyIFN0YWR0dmVyd2FsdHVuZyB1bSBtZWluZW4gSHVuZCBlbmRsaWNoCmFuenVtZWxkZW4uIERlciBCZWFtdGUgZnJhZ3RlIG1pY2gsIHdhcyBpY2ggd29sbGUsIHVuZCBpY2ggYW50d29ydGV0ZSwKZGFzcyBpY2ggZWluZSBFcmxhdWJuaXMgZnVlciBTZXggaGFiZW4gd29sbGUsIHVuZCBkYXNzIGljaCBpaG4gc2Nob24gc2VpdAptZWluZW0gMi4gTGViZW5zamFociBoYWJlLi4uLgpBbHMgaWNoIG1pY2ggZW50c2NoaWVkIHp1IGhlaXJhdGVuLCB0ZWlsdGUgaWNoIGRlbSBQcmllc3RlciBtaXQsIGRhc3MKaWNoIFNleCB3YWVocmVuZCBkZXIgVHJhdXVuZyBkYWJlaSBoYWJlbiB3b2xsZS4gRXIgZW1wZmFobCBtaXIsIGRhbWl0CmRvY2ggYmlzIG5hY2ggZGVyIEhlaXJhdCB6dSB3YXJ0ZW4uIEljaCBlcndpZGVydGU6IEFiZXIgU2V4IHNwaWVsdGUgbWVpbgpnYW56ZXMgTGViZW4gbGFuZyBlaW5lIGdyb3NzZSBSb2xsZSwgdW5kIG1laW4gZ2FuemVzIExlYmVuIGRyZWh0IHNpY2ggdW0KU2V4LiBFciBzYWd0ZSwgZGF1bSBlciBkaWVzZW4gVGVpbCBtZWluZXMgUHJpdmF0bGViZW5zIGdhciBuaWNodCBob2VyZW4Kd29sbGUsIHVuZCBkYWhvZXJlbiBlciB1bnMgdW50ZXIgZGllc2VuIFVtc3RhZW5kZW4gbmljaHQgaW4gc2VpbmVyIEtpcmNoZQp0cmF1ZW4ga29lbm5lLiBEYXJhdWZoaW4gZXJ6YWVobHRlIGljaCBpaG0sIGRhS2lyY2hlIHNpY2ggYXVjaCBkaWUgYW5kZXJlbgpIb2NoemVpdHNnYWVzdGUgZnJldWVuIHd1ZXJkZW4sIHdlbm4gU2V4IGluIGRlciBLaXJjaGUgd2FlcmUuIEFtIGZvbGdlbmRlbgpUYWcgd3VyZGVuIHdpciB2b20gRnJpZWRlbnNyaWNodGVyIGdldHJhdXQgdW5kIG1laW5lIEZhbWlsaWUgd3VyZGUKZXhrb21tdW5pemllcnQuIE1laW5lIEZyYXUgdW5kIGljaCBuYWhtZW4gZGVuIEh1bmQgbWl0IGluIGRpZQpGbGl0dGVyd29jaGVuLiBBbHMgaWNoIG1pY2ggYW4gZGVyIFJlemVwdGlvbiBkZXMgSG90ZWxzIGFubWVsZGV0ZS4gc2FndAppY2ggZGVtIEVtcGZhbmdzY2hlZiwgZGFzYWd0IGljaCBlaW5lbiBSYXVtIGZ1ZXIgbWVpbmUgRnJhdSB1bmQgbWljaCB3b2xsZQp1bmQgZWluZW4gRXh0cmFyYXVtIGZ1ZXIgU2V4LiBFciBzYWd0ZSBtaXIsIGRhd29sbGUgamVkZXIgUmF1bSBkZXMgSG90ZWxzIGZ1ZXIKU2V4IGdlZWlnbmV0IHNlaS4gSWNoIGVudGdlZ25ldGU6ICJWZXJzdGVoZSBTaWUgZG9jaCwgU2V4IGhhZWx0IG1pY2ggZGllCmdhbnplIE5hY2h0IHdhY2ghIiAiamEiLCBtZWludCBlciwgIm1pY2ggYXVjaCEiCldhZWhyZW5kIGRlciBTY2hlaWR1bmcgc3RyaXR0ZW4gbWVpbmUgRnJhdSB1bmQgaWNoIHVtIGRhcyBTb3JnZXJlY2h0IGZ1ZXIKU2V4LiBJY2ggc2FndGU6ICJFdWVyIEVocmVuLCBpY2ggaGF0dGUgU2V4IHNjaG9uIHZvciBkZXIgSGVpcmF0LiAiRGVyClJpY2h0ZXIgYW50d29ydGV0ZTogImljaCBhdWNoLiBVbmQgYWxzIGljaCBpaG0gZXJ6YWVobHRlLCBkYSJEZXIgU2V4IG1pY2gKc2VpdCBkZXIgSGVpcmF0IG5pY2h0IG1laHIgc28gaW50ZXJlc3NpZXJ0IGhhZXR0ZSwgYW50d29ydGV0ZSBlcjogTWljaAphdWNoIG5pY2h0IQpTbywgaWNoIHd1cmRlIGFsc28gaW5zIEdlZmFlbmduaXMgZ2V3b3JmZW4sIGhlaXJhdGV0ZSwgbGllbmljaHQhIG1pY2ggc2NoZWlkZW4KdW5kIGhhdHRlIGF1Y2ggc29uc3QgbWl0IGRlbSBIdW5kIG1laHIgQWVyZ2VyLCBhbHMgaWNoIG1pciBqZSBoYWV0dGUKdm9yc3RlbGxlbiBrb2VubmVuLgpEaWVzIGlzdCBkZXIgR3J1bmQsIHdhcnVtIGljaCBsZXR6dGVuZGxpY2ggYmVpbSBQc3ljaGlhdGVyIGdlbGFuZGV0IGJpbi4KRXIgZnJhZ3RlIG1pY2g6IFdhcyBpc3QgZGVubiBJaHIgUHJvYmxlbT8gSWNoIGFudHdvcnRldGU6IFNleCBoYXQgbWljaAp1bmQgbWVpbiBMZWJlbiB2ZXJsYXNzZW4uIEVzIGlzdCwgYWxzIG9iIGljaCBtZWluZW4gYmVzdGVuIEZyZXVuZAp2ZXJsb3JlbiBoYWV0dGUsIHVuZCBpY2ggZnVlaGxlIG1pY2ggc28gYWxsZWluZS4gRGVyIFBzeWNoaWF0ZXIKYW50d29ydGV0ZTogU2NoYXVlbiBTaWUgbWVpbiBIZXJyLCBTaWUgdW5kIGljaCB3aXNzZW4sIGRhUHN5Y2hpYXRlciBTZXggbmljaHQKZGVyCmJlc3RlIEZyZXVuZCBlaW5lcyBNYW5uZXMgaXN0LCBBTFNPIEtBVUZFTiBTSUUgU0lDSCBFSU5FTiBIVU5EISEhLi4uLi4KCkFtYSosIGdyaW5zZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgKFZlY3RvciwgIDUuIEphbiAyMDAxLCAwMToyMzozOCk6CgpBc3Rlcm90aCBhbiBhbGxlIFphdWJlcmVyOiBodWkuLi5tYWdpc3RlcnNjaHdlbW1lICA8RG9uLCAgNC4gSmFuIDIwMDEsCkFzdGVyb3RoIGFuIGFsbGUgWmF1YmVyZXI6IDIxOjU5OjIyPgpBc3Rlcm90aCBhbiBhbGxlIFphdWJlcmVyOiBkYSBpcyBtYW4gZWluIHBhYXIgd29jaGVuIG5ldCBkYSB1bmQgZGFubiBzb3dhcwpBc3Rlcm90aCBhbiBhbGxlIFphdWJlcmVyOiA8RG9uLCAgNC4gSmFuIDIwMDEsIDIxOjU5OjQyPgpCaXJkeSBhbiBhbGxlIFphdWJlcmVyOiB2b3IgYWxsZW0gZHUgYWxzIGxldHp0ZXIgbWFnaXN0ZXIgOykgIDxEb24sICA0LiBKYW4KQmlyZHkgYW4gYWxsZSBaYXViZXJlcjogMjAwMSwgMjI6MDA6MDA+CkFzdGVyb3RoIGFuIGFsbGUgWmF1YmVyZXI6IGRhcyBzdG9lcnQgbWljaCBuaWNodCA7KSAgPERvbiwgIDQuIEphbiAyMDAxLApBc3Rlcm90aCBhbiBhbGxlIFphdWJlcmVyOiAyMjowMDoxMj4KQXN0ZXJvdGggYW4gYWxsZSBaYXViZXJlcjogaGVpc3MgamEgbmljaHQgdmVjdG9yIG9kZXIgc28gOykgIDxEb24sICA0LiBKYW4KQXN0ZXJvdGggYW4gYWxsZSBaYXViZXJlcjogMjAwMSwgMjI6MDA6MjY+ICAgICAgICAgIAoKLS1WZWN0b3ItLSAsbGFjaHQgdW5kIHdlaXNzIG5pY2h0IGluIHdlbGNoZSBSdWJyaWsgc29uc3QgZGFtaXQ6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZ3JhZCBpbiBkdGpkIGdlZnVuZGVuIDopIChBbWFyeWxsaXMsICA5LiBKYW4gMjAwMSwgMTk6MzU6MDcpOgpUaXRlbCBkZXMgUG9zdGluZ3M6IFJlOiBbYXQubGludXhdIExpbnV4IGRvd25sb2FkClRleHQ6Cgo+IGtlbm50IGplbWFuZCB2b24gZXVjaGUgZWluZSB3YXJlei1zaXRlIHdvIGljaCBsaW51eCBkb3dubG9hZGVuIGthbm4/Pz8KCkphLAoKIGh0dHA6Ly93d3cubGludXhpc28ub3JnCgpWaWVsIFNwYXNzIGJlaW0gUnVudGVybGFkZW4KCkFtYXJ5bGxpcywgcm90ZmxuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNJLUVpbmhlaXRlbiAoR2xvaW5zb24sIDEwLiBKYW4gMjAwMSwgMDU6MTE6NDIpOgpEYXMgQXR1ZSAoMSBBdG1vc3BoYWVyZSkgd3VyZGUgamEgYXVjaCBhYmdlc2NoYWZmdCwgamV0enQgc29sbCBtYW4gbnVyIG5vY2gKZGFzIEJhciB2ZXJ3ZW5kZW4uIApTZWl0aGVyIG1hY2h0IGRpZSBGZXVlcndlaHIgIlRiYXJ0YXRhIFRiYXJ0YXRhLi4uIiAKCkphamEsIGRlbiBmaW5kZXQgbWFuIG51ciA1IFVociBmcnVlaHMgbHVzdGlnLCBsZXN0IGlobiBkYW5uIG5vY2htYWwgOj0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU0ktRWluaGVpdGVuIChBbmF0b2wsIDEwLiBKYW4gMjAwMSwgMTI6MzM6MzUpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTc5MDk5OTAyIHJnPXdpdHplCn4jISB0aWQ9OTc5MDk5OTAyCkRlcHAuICdBdCJ1JyBrb21tdCB2b24gIkF0bW9waGFlcmlzY2hlciBVZWJlcmRydWNrIi4gRHUga2FubnN0IGRpZQpQb2ludGUgbmljaHQgdW50ZXJzY2hsYWdlbiwgd2VubiBEdSAtIHZpZWxsZWljaHQhIC0gYXVjaCBub2NoIGRlbgpadXNhbW1lbmhhbmcgQXR1ZTwtLT5CYXIgZXJrbGFlcmVuIG1vZWNodGVzdC4gOikKCkFuYXRvbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXVlbnR5cGVuIChBbWFyeWxsaXMsIDExLiBKYW4gMjAwMSwgMTg6MDA6MTcpOgotLS0tLS0tLS0tCgpUeXAgMTogRm9sdGVya25lY2h0IC0gYXVjaCBiZWthbm50IGFsczogZGllIFVuYmV6d2luZ2JhcmUsIGRpZSBHbmFkZW5sb3NlLApkZXIgQm9zcwoKdHlwaXNjaGUgV29ydGU6CiJTdGVoIGdlcmFkZSEgTmltbSBlaW5lIGFuZGVyZSBLcmF3YXR0ZSEgR2VoIHp1bSBGcmlzZXVyISBGb3JkZXJlIGVpbmUKR2VoYWx0c2VyaG9laHVuZyEgU2NoYXUgbWljaCBuaWNodCBzbyBhbiEiCgpIaW50ZXJncnVuZDoKVmVyd2VjaHNsdW5nIGRlcyBQYXJ0bmVycyBtaXQgZWluZW0ga2xlaW5lbiBIdWVuZGNoZW4uIEdhZW5naWdlcndlaXNlIHd1cmRlCmlociBpbSBBbHRlciB2b24gZXR3YSA0LTYgSmFocmVuIGRhcyBIYWx0ZW4gZWluZXMgSGF1c3RpZXJzIG5pY2h0IGVybGF1YnQuCgpWb3J0ZWlsZToKTWFuIG11c3MgbmljaHQgbWVociBzZWxic3QgZGVua2VuLgoKTmFjaHRlaWxlOgpNYW4gZGFyZiBuaWNodCBtZWhyIHNlbGJzdCBkZW5rZW4uCgotLS0tLS0tLS0tCgpUeXAgMjogQmV6aWVodW5nc2tpc3RlIC0gYXVjaCBiZWthbm50IGFsczogZGllIEdlc3ByYWVjaHNiZXJlaXRlLCBkaWUKSGludGVyZnJhZ2VuZGUKCnR5cGlzY2hlIFdvcnRlOgoiV2FzIGRlbmtzdCBEdSBnZXJhZGU/IFdpciBtdWVzc2VuIG1hbCB1ZWJlciB1bnNlcmUgQmV6aWVodW5nIHJlZGVuLiBTbwprYW5uIGRhcyBuaWNodCB3ZWl0ZXJnZWhlbi4gVmVyc3RlaHN0IER1IG1pY2ggbmljaHQ/IElzdCBEaXIgdW5zZXJlCkJlemllaHVuZyBuaWNodCB3aWNodGlnPyBEdSByZWRlc3QgenUgd2VuaWcgdWViZXIgRGVpbmUgR2VmdWVobGUuIgoKSGludGVyZ3J1bmQ6ClZlcndlY2hzbHVuZyB2b24gIndpciIgbWl0ICJpY2giLCB2b24gInVucyIgbWl0ICJtaWNoIiB1c3cuIEFsbGUKRGlza3Vzc2lvbmVuIHVlYmVyICJ1bnNlcmUgQmV6aWVodW5nIiBkaWVuZW4gbnVyIGRlbSBlaW56aWdlbiBaaWVsLCBkYXMKR2VnZW51ZWJlciBzbyBoaW56dWJpZWdlbiwgd2llIGZyYXUgZXMgc2VsYmVyIGdlcm5lIGhhYmVuIG1vZWNodGUuIEdlbHRlbgpnZWxhc3NlbiB3ZXJkZW4gbnVyIGRpZSBWb3JzdGVsbHVuZ2VuLCBkaWUgRnJhdSBzZWxiZXIgaGF0LiBNZWlzdAp0YWV0aWcgaW4KUGZsZWdlLSBvZGVyIEVyemllaHVuZ3NiZXJ1ZmVuLgoKVm9ydGVpbGU6ClNpZSBpc3Qgb2Z0IGluIFZvbGtzaG9jaHNjaHVsa3Vyc2VuLCBkaWUgQmV6aWVodW5nc3RoZW1lbiBiZWhhbmRlbG4uCgpOYWNodGVpbGU6ClNpZSBrb21tdCBhdXMgZGllc2VuIEt1cnNlbiB6dXJ1ZWNrCgotLS0tLS0tLS0tCgpUeXAgMzogTmViZWxzY2hsZWllciAtIGF1Y2ggYmVrYW5udCBhbHMgIkZyYWV1bGVpbiBVbmVudHNjaGllZGVuIgoKdHlwaXNjaGUgV29ydGU6CiJJY2gga2FubiBtaWNoIG5pY2h0IGVudHNjaGVpZGVuLiBTb2xsIGljaCBtZWluZW4gQmVydWYgd2VjaHNlbG4/IE1laW5lbgpQYXJ0bmVyPyBNZWluZSBMZWJlbnN6aWVsZT8gTWVpbmUgSGFhcmZhcmJlPyIKCkhpbnRlcmdydW5kOgpBbHMgS2luZCB3dXJkZW4gaWhyIGFsbGUgRW50c2NoZWlkdW5nZW4gdm9uIGRlbiBFbHRlcm4gYWJnZW5vbW1lbi4KClZvcnRlaWxlOgpMZWljaHQgenUgYmVydWhpZ2VuLgoKTmFjaHRlaWxlOgpOb2NoIHZpZWwgbGVpY2h0ZXIgenUgYmV1bnJ1aGlnZW4uCgotLS0tLS0tLS0tCgpUeXAgNDogV2lsZCB3b21hbiAtIGF1Y2ggYmVrYW5udCBhbHM6IFJhdWJrYXR6ZSBhdXNzZXIgS29udHJvbGxlLgoKdHlwaXNjaGUgV29ydGU6CiJJY2ggaGFiZSBlaW5lIElkZWUuIExhc3MgdW5zIGF1c3RyaW5rZW4gdW5kIHVucyBhdWYgZGVtIFJhc2VuIHZvciBkZXIgVHVlcgpsaWViZW4gKC4uLiBhdWYgZGVyIG5hZWNoc3RlbiBQYXJrYmFuayAuLi4gaW4gZGVyIFRpZWZnYXJhZ2UgLi4uIG5lYmVuIGRlbQpUZWxlZm9uLCB3YWVocmVuZCBEdSBEZWluZW4gQ2hlZiBhbnJ1ZnN0KS4iCgpIaW50ZXJncnVuZDoKSWhyIHd1cmRlIGRhcyBCdW5nZWVzcHJpbmdlbiBiZXJlaXRzIG1pdCAxMCBKYWhyZW4gdmVyYm90ZW4sIHdhZWhyZW5kCmFsbGUgU2NodWxmcmV1bmRpbm5lbiBhbSBUb2Rlc3N0dXJ6IHRlaWxuZWhtZW4gZHVyZnRlbi4KClZvcnRlaWxlOgpNZWhyIFNwYXNzIGFscyBtaXQgZWluZXIgZ2FuemVuIEhlcmRlIEFmZmVuLgoKTmFjaHRlaWxlOgpEZXIgU3Bhc3MgZmluZGV0IG9mdCBlaW4gc2NobmVsbGVzIEVuZGUgKEJhdWdlcnVlc3Qga3JhY2h0IHp1c2FtbWVuOwpIYW5kYnJlbXNlIGRlcyAiYW4tZGVyLUtsaXBwZS1zdGVoZW4iLUF1dG9zIGxvZXN0IHNpY2ggd2FlaHJlbmQgZGVzIEFrdHMKdXN3LikKCi0tLS0tLS0tLS0KClR5cCA1OiBFc290ZXJpa2VyaW4gLSBhdWNoIGJla2FubnQgYWxzOiBTdHVkZW50aW4tdm9tLURvcmYsCmxhbmdlLWFsbGVpbmxlYmVuZGUtSGF1cHRzY2h1bHBhZWRhZ29naW4KCnR5cGlzY2hlIFdvcnRlOgoiSWNoIGdsYXViZSwgZGFzcyBkaWVzZXIgZGllc2VyIGF1c2RydWNrc3N0YXJrZSBUYW56IChkaWVzZSBZb2dhc3RlbGx1bmcsCmRpZXNlcyBSYWV1Y2hlcnN0YWViY2hlbikgemVpZ2VuIHdpcmQsIHdpZSBlcyB1bSB1bnNlcmUgQmV6aWVodW5nIHN0ZWh0LiIKCkhpbnRlcmdydW5kOgpXdXJkZSBzdHJlbmcgcmVsaWdpb2VzIGVyem9nZW4gLSBzcGFldGVyIGFiZXIgdm9uIGVpbmVtIERLUC1Ba3RpdmlzdGVuIGluCmRpZSBMaWViZSBlaW5nZWZ1ZWhydC4KClZvcnRlaWxlOgp1bnRlcmhhbHRzYW0KCk5hY2h0ZWlsZToKbGllc3QgaWhyZSBCdWVjaGVyIGxhdXQgbWl0LCB2ZXJmYXNzdCBHZWRpY2h0ZSwgZGllIG1hbiBnZXNjaGVua3QgYmVrb21tdAoKLS0tLS0tLS0tLQoKVHlwIDY6IGp1bmdlIFN0dWRlbnRpbiAtIGF1Y2ggYmVrYW5udCBhbHM6IGRpZSBBbGxlc3dpc3NlbmRlLCBkaWUKVW5uYWNoYWhtbGljaC1TZWxic3RiZXd1c3N0ZQoKdHlwaXNjaGUgV29ydGU6CldpZSAtIER1IGtlbm5zdCBkZW4gbmV1ZW4gU2NoZWxza3kgbm9jaCBuaWNodD8gS29tbXN0IER1IG1pdCBhdWYgZGllIERlbW8KKGRlbiBHcnVwcGVuYWJlbmQsIGRpZSBTdXBlcnZpc2lvbiwgZGFzIEtvbnplcnQsIGRlbiBNdXNpa2FudGVuc3RhZGVsKS4KV2lyIHNvbGx0ZW4gZWluZSBXRyBhdWZtYWNoZW4uIE1laW4gUHJvZiBpc3QgZWluZSBOdWxsLiBIZXV0ZSBoYWJlIGljaAplaW5lbiBLdW5zdHN0dWRlbnRlbiBrZW5uZW5nZWxlcm50LiIKCkhpbnRlcmdydW5kOgpTaWUgaXN0IDIwIHVuZCBkYXJmIHN0dWRpZXJlbi4gSWhyZSBFbHRlcm4ga29ubnRlbiBkYXMgbmljaHQuIE1laXN0IGtvbW10CnNpZSBhdXMgZWluZXIgbGFlbmRsaWNoZW4gUmVnaW9uLCBCdWVjaGVyIHdhcmVuIGlocmUgZWluemlnZW4gRnJldW5kZS4gVW5kCmRhIHNpZSB1ZWJlciBqZWRlcyBHZWJpZXQgbWluZGVzdGVucyBkcmVpIFRhc2NoZW5idWVjaGVyIGdlbGVzZW4gaGF0LCBnZWh0CnNpZSBkYXZvbiBhdXMsIGRhc3Mgc2llIG51biBhbGxlcyB3ZWlzcy4gU2llIGlzdCBnaWVyaWcgbmFjaCBuZXVlbgpGcmV1bmRzY2hhZnRlbi4gRGllIFN0dWRlbnRlbiwgZGllIHNpZSBuYWVoZXIga2VubmVubGVybnQsIG11ZXNzZW4gZW50d2VkZXIKYXVzIGVpbmVtIEFrYWRlbWlrZXJoYXVzaGFsdCBzdGFtbWVuIG9kZXIgLSBhbHRlcm5hdGl2IC0gaXJnZW5kd2FzCiJLdWVuc3RsZXJpc2NoZXMiIHN0dWRpZXJlbi4gQXVmIGplZGVuIEZhbGwgZHVlcmZlbiBzaWUga2VpbmVuIEJhdWNoYW5zYXR6CmhhYmVuLgoKVm9ydGVpbGU6ClNpZSBpc3QgbWVpc3QgdW50ZXJ3ZWdzLCB1bSBuZXVlIEZyZXVuZGUgb2RlciBCdWVjaGVyIGtlbm5lbnp1bGVybmVuLgpPZGVyIGJlaWRlcy4KCk5hY2h0ZWlsZToKU2llIGtvbW10IHp1cnVlY2ssIHVtIERpciB2b24gaWhyZW4gbmV1ZW4gRnJldW5kZW4gb2RlciBCdWVjaGVybiB6dQplcnphZWhsZW4uCgotLS0tLS0tLS0tCgpUeXAgNzogVHJhdW1naXJsIC0gYXVjaCBiZWthbm50IGFsczogTWFlZGNoZW4gdm9tIGFuZGVyZW4gU3Rlcm4KCnR5cGlzY2hlIFdvcnRlOgoiSWNoIGhhYmUgRGlyIHp1Z2Vob2VydC4gVW5kIGljaCBoYWJlIHZlcnN0YW5kZW4sIHdhcyBEdSBtZWluc3QuIEljaCBiaW4KbWl0IERpciBlaW5lciBBbnNpY2h0LiBEdSwgbWVpbiBndXRhdXNzZWhlbmRlcyBHZW5pZSEgVW5kIGpldHp0IHNvbGx0ZW4Kd2lyIHVuYmVkaW5ndCBub2NoIGV0d2FzIFNleCBtYWNoZW4uIgoKSGludGVyZ3J1bmQ6CkRpZXNlIEZyYXUgaXN0IGF1c2dlZ2xpY2hlbi4gU2llIHd1cmRlIHZvbiBpaHJlbiBFbHRlcm4gZ2VsaWVidCwga2FtIGd1dAppbiBkZXIgU2NodWxlIHZvcmFuLCBoYXR0ZSBuZXR0ZSBGcmV1bmRlLiBTaWUgaXN0IHNlbGJzdGJld3Vzc3QgdW5kCmludGVsbGlnZW50LiBTaWUgbW9lY2h0ZW4gaWhyZW4gUGFydG5lciBuaWNodCBmZXJ0aWdtYWNoZW4sIGlobiBuaWNodAp2ZXJiaWVnZW4uIFNpZSBuaW1tdCBpaG4sIHdpZSBlciBpc3QuIFNpZSBoYXQgRnJldWRlIGFtIExlYmVuLgoKVm9ydGVpbGU6CkRhIGZyYWdlbiBTaWUgbm9jaCEKCk5hY2h0ZWlsZToKRGllIEV2b2x1dGlvbiBoYXQgZGllc2UgU3BlemllcyB1ZWJlcnNwcnVuZ2VuCgotLS0tLS0tLS0tCgoKQW1hKiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBicnVtbSBicnVtbSAoQ2F0d2VhemxlLCAxMi4gSmFuIDIwMDEsIDE0OjA1OjI3KToKRWluZSBTdHVkZW50aW4gaW0gSG9lcnNhYWwgZnJhZ3QgZGVuIFByb2Zlc3NvcjoKIldhcnVtIGJydW1tdCBkZXIgVHJhZm8gZGVubiBzbz8iCkRhcmF1ZiBkZXIgUHJvZjoKIldlbm4gc2llIDUwIFBlcmlvZGVuIGluIGRlciBTZWt1bmRlIGhhZXR0ZW4sIHd1ZXJkZW4gc2llIGF1Y2ggYnJ1bW1lbiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDYXRzaXR0aW5nIFNlcnZpY2UgKFllbmRpLCAxMi4gSmFuIDIwMDEsIDE3OjE2OjU2KToKCgpTY2hyb2VkaW5nZXIncwoKICAgICAgICAgICAgICAgQ2F0IFNpdHRpbmcgU2VydmljZQoKR29pbmcgb3V0IG9mIHRvd24gZm9yIGFuIGV4dGVuZGVkIHBlcmlvZCBvZiB0aW1lPwpUaXJlZCBvZiB5b3VyIG5laWdoYm9yIG9yIGNvd29ya2VyIGZvcmdldHRpbmcgdG8KZmVlZCBGbHVmZnkgYXMgcHJvbWlzZWQ/IERvbid0IHRydXN0IHRoZSBsb2NhbCAKcGV0LXNpdHRpbmcgc2VydmljZXM/CgpUcnkgb3VyIG5hdGlvbmFsIGNoYWluIG9mIG92ZXItcXVhbGlmaWVkIHRyYWluZWQgCnBldCBzaXR0ZXJzLCBtYW55IHdvcmxkLXJla25vd25lZCBwaHlzaWNpc3RzLiAKT3VyIHJhdGVzIGFyZSByZWFzb25hYmxlIGFuZCBvdXIgc2VydmljZSBpcyBhYnNvbHV0ZWx5CnRoZSBiZXN0IGFyb3VuZC4KCiAgICAgICAgICAgQ2FsbCB0b2RheSEgMSAoODAwKSBOT1QtU1VSRQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXJ0aWtlbCBicnVtbSBicnVtbSAoWWVuZGksIDEyLiBKYW4gMjAwMSwgMTc6NDQ6NDgpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTk3OTMwNDcyNyByZz13aXR6ZQp+IyEgdGlkPTk3OTMwNDcyNwpXbyB3aXIgZ2VyYWRlIGJlaSBhbHRlbiBTY2hhZXR6Y2hlbiBzaW5kOgoKIFVOSUdFTEFCRVI6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiBUZWNobmlzY2hlIE1lY2hhbmlrOgogUHJvZi4gOiBXYXMgbWljaCBhbiBJaG5lbiBzdG9lcnQsIGlzdCwgZGFzcyBTaWUgc28gbmVydm9lcyB1bmQgaGVrdGlzY2gKc2luZC4KIFN0dWRlbnQgOiBXaXIgc3RlaGVuIHp1IG5haCBhbSBBYmdydW5kLCBkZXN3ZWdlbiBzaW5kIHdpciBzbyBuZXJ2b2VzLgoKIFN0dWRlbnQgKG1hY2h0IGlyZ2VuZHdlbGNoZW4gU2NoZWlzcykKIFByb2YuIDogSnVuZ2UgZHVjaycgRGljaCwgZGFtaXQgaWNoIG1pciBEZWluIEdlc2ljaHQgbmljaHQgbWVya2VuIGthbm4uCgogUHJvZjogOiAzIHggNSB4IDIgPSAyOAogU3R1ZGVudCA6IE5vZSwgMzAuCiBQcm9mLiA6ICguLi4uLikgU3RpbW10LCBkYXMgaXN0IGdlbmF1ZXIuCgogUHJvZi4gOiBJY2ggaGFiJyBqYSBzbyBsYW5nc2FtIGRpa3RpZXJ0LCBkYSBrYW5uIG1hbiBqYSBzY2hvbiBtaXRtZWlzc2Vsbi4KIFN0dWRlbnQgOiBNZWluIE1laXNzZWwgaXN0IHN0dW1wZiEKCiBTdHVkZW50IDogS29lbm50ZW4gU2llICduIGJpc3NjaGVuIGdyb2Vzc2VyIHNjaHJlaWJlbj8KIFByb2YgOiBEYW5uIG1hY2gnIGRvY2ggbWFsIGRhcyBMaWNodCBhbiEKCiB6dSBCZWdpbm4gZGVyIFBhdXNlOgogU3R1ZGVudCBkcmVodCBzaWNoIHNlaW5lIFppZ2FyZXR0ZSBzZWxic3QuCiBQcm9mLiAoc2llaHQgZGFzKSA6IFdhcyduIGRhcz8gJ24gTWlrcm90YW1wb24/PwoKIFN0dWRlbnQgKHdpbGwgc2VpbmUgS2xhdXN1ciBlaW5zZWhlbiB1bmQga2xvcGZ0IGJlaW0gUHJvZi4pIDogSWNoIGJpbiB6dXIKIEVpbnNpY2h0IGdla29tbWVuLgogUHJvZi4gOiBadSB3ZWxjaGVyPz8KCiBQcm9mLiBtYWNodCB3aWUgdWVibGljaCBlaW5lIHVtc3RhZW5kbGljaGUgSGVybGVpdHVuZzoKIFN0dWRlbnQgOiBXb2Z1ZXIgYnJhdWNodCBtYW4gZGVubiBkYXMgYWxsZXM/CiBQcm9mLiA6IER1IHdpcnN0IERpY2ggbm9jaCBlaW5lbiBrbGVpbmVuIEF1Z2VuYmxpY2sgZ2VkdWxkZW4sIG1laW4gU29obi4KCiBQcm9mLiBkaWt0aWVydCB1bmQgbWl0IHNjaGVsbWlzY2hlbSBCbGljayB6dXIgZWluemlnZW4gU3R1ZGVudGluIDogTmljaHQKIHNvIGxhbmdzYW0gd2llIGlucyBQb2VzaWVhbGJ1bSwgRnJhdSBCdXJnZXIhCgogUHJvZi4gOiBBbHNvIGljaCB3YWVyZSBtaXQgZGVyIEF1ZmdhYmUgaW4gMyBtaW4gZmVydGlnLgogU3R1ZGVudCA6IEljaCBoYWInIGphIGF1Y2ggbm9jaCBrZWluZSBncmF1ZW4gSGFhcmUhCgogUHJvZi4gOiBNYWNoZW4gU2llIGRhcyBtYWwgYWJzY2huaXR0c3dlaXNlLCBkYSB3ZXJkZW4gJ1NlIGdyYWQgbWFsIGdlY2sKIGRhYmVpISEKCiBCZWkgZGVyIEJlc2NocmVpYnVuZyBlaW5lcyBJbmVydGlhbHN5c3RlbXM6CiBQcm9mLiA6IFdlbm4gaWNoIGFsc28gYmVpc3BpZWxzd2Vpc2Ugdm9uIGhpZXIgbmFjaCBBZnJpa2EgZmxpZWdlbiB3dWVyZGUsCiAuLi4KIFN0dWRlbnQgOiBHdXRlIElkZWUhIQoKIFN0dWRlbnQgOiBXaWUga29tbWVuIFNpZSBkZW5uIGF1ZiBkYXMgbGluZWFyZSBHbGVpY2h1bmdzc3lzdGVtPwogUHJvZi4gKGtyYW10ICduZSBXZWlsZSBpbiBzZWluZXIgSG9zZW50YXNjaGUgdW5kIGhvbHQgc2VpbmVuIFNjaGx1ZXNzZWwKIGhlcnZvcikgOiBTaWVoc3RlLCBpbiBkZXIgZWluZW4gVGFzY2hlIGhhYicgaWNoIG1laW5lbiBTY2hsdWVzc2VsIHVuZCBpbgogZGVyIGFuZGVyZW4gaGFiJyBpY2ggZGFzIGxpbmVhcmUgR2xlaWNodW5nc3N5c3RlbS4KCiBQcm9mLiA6IFdlciBoYXQgZGFzIGdlc2FndCwgZGFzcyBkYXMgbmljaHQgc3RpbW10PyBXYXJlbiBTaWUgZGFzIG1pdCBkZW4KIEdsYXNiYXVzdGVpbmVuIGF1ZiBkZXIgTmFzZT8KCiBTdHVkZW50IChlaW4gYW5kZXIgbWFsKSA6IEtvZW5udGVuIFNpZSBiaXR0ZSBlaW4gYmlzc2NoZW4gZ3JvZXNzZXIKc2NocmVpYmVuPwogUHJvZi4gOiBTaWUga29lbm5lbiBqYSBlaW4gYmlzc2NoZW4gZ3JvZXNzZXIgZ3Vja2VuIQoKIFN0dWRlbnQgKHN0ZWxsdCBlaW5lIEZyYWdlIHp1IGVpbmVyIG1hdGhlbWF0aXNjaGVuIE9wZXJhdGlvbikKIFByb2YuIDogRGFzIGthbm4gZG9jaCBudXIgZWluIFdpcnRzY2hhZnRzaW5nZW5pZXVyIHNlaW4sIGRlciBzbyB3YXMgZnJhZ3QuCiBBYmVyIGVzIHN0aW1tdCA6IEJlc2NoaXNzIGlzdCBpbW1lciBkYWJlaSwgaW4gZGVyIFdpcnRzY2hhZnQgaXN0IGVzCiBnZW5hdXNvLgoKIFN0dWRlbnQgaGF0IHNpY2ggc2VpbmUgbGFuZ2VuIEhhYXJlIGFiZ2VzY2huaXR0ZW4uCiBQcm9mLiA6IE5hIEtsZWluZXIsIGJpc3RlIGZyaXNjaCBnZW11bGNodD8KCiBQcm9mLiA6IFdhcyBoYWJ0IElociBkZW5uIGdlbWFjaHQgYmVpIEZ1bmt0aW9uZW4gbWl0IHp3ZWkgVmVyYWVuZGVybGljaGVuPwogU3R1ZGVudCA6IEdlc3RhdW50ISEKCiBQcm9mLiAoenVtIHF1YXRzY2hlbmRlbiBTdHVkZW50ZW4pIDogU2llIGhhdHRlbiBlaW5lbiBrb25zdHJ1a3RpdmVuCiBWb3JzY2hsYWcgenUgbWFjaGVuPwogU3R1ZGVudCA6IE5laW4sIHdvaGwgZWhlciBkZXN0cnVrdGl2LgogUHJvZi4gOiBEZXN0cnVrdGl2PyBNYW4ga29lbm50JyBlcyBhdWNoIGFscyBkdW1tZXMgR2VzY2h3YWV0eiBiZXplaWNobmVuLgoKIFByb2YuIGRpa3RpZXJ0IHdpZSBpbW1lciBzY2huZWxsLgogU3R1ZGVudCA6IERhcyBuYWVjaHN0ZSBtYWwgYnJpbmdlIGljaCBtZWluZSBTZWtyZXRhZXJpbiBtaXQuCiBQcm9mLiA6IEF1IGphLCBkaWUgd3VlcmQnIGljaCBhdWNoIG1hbCBnZXJuIGtlbm5lbmxlcm5lbiEKCiBTdHVkZW50IHp1bSBQcm9mLiA6IEljaCB3YXIgYW0gQW5mYW5nIHZlcndpcnJ0LCBhYmVyIGpldHp0IGlzdCBlcyBub2NoCiBzY2hsaW1tZXIuCgogUHJvZi4gdWViZXIgZGllIFphaG5yYWRiZXJlY2hudW5nIG5hY2ggZWluZW0gYmVrYW5udGVuIGFiZXIgd2VuaWcgZXhha3RlbgogQnVjaCA6IERhIGtvbW1lbiBzbyB2aWVsZSBTY2hpc3MtIHVuZCBQaXNzZmFrdG9yZW4gZGF6dSwgZGEga2FubiBtYW4gYXVjaAogaGluc2NocmVpYmVuICdIZXV0ZSBpc3QgRGllbnN0YWcnLgoKIGVpbiBLb2xsZWdlIGRlcyBvYmVuIG9mdCB6aXRpZXJ0ZW4gUHJvZnMuIHVlYmVyIGRhcyBnbGVpY2hlIEJ1Y2ggOiBEYXMgaXN0CiBlaW4gZ3V0ZXMgQnVjaCBmdWVyIGRlbiBXaW50ZXIsIG1hbiBrYW5uIGVzIHNjaG9lbiB2ZXJicmVubmVuLgoKIE1pbnV0ZW4gdm9yIGRlciBWb3JkaXBsb21za2xhdXN1cgogUHJvZi4gOiBEYSBrb21tdCBkZXIgZG9jaCBpbiBkaWUgS2xhdXN1ciBtaXQgJ25lbSBTY2h1YmthcnJlbiB2b2xsZXIKIEJ1ZWNoZXIhIQoKIFByb2YuIGlzdCBhdWNoIEhvYmJ5ZmxpZWdlciB1bmQgbW9lY2h0ZSBpbiBlaW5lbSBWb3J0cmFnICh1ZWJlciAxMDAKWnVob2VyZXIpCiB1ZWJlciBkaWUgaW5uZXJlIFRyYWdzdHJ1a3R1ciBlaW5lcyBLbGVpbmZsdWd6ZXVncyByZWZlcmllcmVuIDogU2VoZW4gU2llLAogbWl0IGRlbiBGbHVnemV1Z2VuIGlzdCBlcyB3aWUgbWl0IGRlbiBGcmF1ZW4uIEVyc3Qgd2VubiBkaWUgYWV1c3NlcmUgSGF1dAogd2VnIGlzdCwgc2llaHQgbWFuIGRhcyBXZXNlbnRsaWNoZS4KCiBQcm9mLiA6IERpZSBBbndlbmR1bmcgZGllc2VzIFplaWNoZW5zIGlzdCBzb2dhciBhZWx0ZXIgYWxzIEFQTCAoZWluZQogUHJvZ3JhbW1pZXJzcHJhY2hlKS4KIFN0dWRlbnQgOiBXYXMsIG5vY2ggYWVsdGVyPz8KCiBUaGVybW9keW5hbWlrOgogUHJvZi4gOiBFcyBnaWJ0IHZlcnNjaGllZGVuZSBNZXRob2RlbiwgdW0gdm9uIDEgbmFjaCA2IHp1IGtvbW1lbi4KIFN0dWRlbnQgOiBadSBTZXgga29tbWUgSUNIIGFuZGVycyEKIFByb2YuIDogSW4gZGVyIGlubmVyZW4gRW5lcmdpZSBzdGVja3QgRWluZHJpbmdhcmJlaXQuCgogU3Ryb2VtdW5nc2xlaHJlOgogUHJvZi4gOiBXYXMgaXN0IGVpbiBSb2hya3J1ZW1tZXI/CiBTdHVkZW50IDogQmx1dGFybXV0IQogZXR3YXMgc3BhZXRlcjoKIFByb2YuIDogUm9ocmtydWVtbWVyIHNpbmQgZXR3YXMgc2VociBoYWV1ZmlnZXMgLi4uIC4KIFN0dWRlbnQgOiBKYSwgaW4gSWhyZW0gQWx0ZXIhCgogUHJvZi4gOiBIZXJyIENvbnJhZCwgaWNoIG1vZWNodGUgZG9jaCBiaXR0ZSBtYWwgUnVoZSBob2VyZW4uCgogU3R1ZGVudCAoYmVyaWNodGlnZW5kKSA6IE51bGwgaXN0IGphIHdvaGwgYXVjaCBub2NoIGVpbiBWZWt0b3IuCiBQcm9mLiA6IEtvbW0sIGpldHp0IGZhbmcgYWJlciBuaWNodCBub2NoIHNvIGFuLgoKIERpZSBlaW56aWdlIE1pdHN0dWRlbnRpbiBpbSBIb2Vyc2FhbCBhbiBQcm9mOiAiV2FydW0gYnJ1bW10IGRlciBUcmFmbyBkYQogdm9ybiBlaWdlbnRsaWNoIHNvPz8iCiBQcm9mOiAiV2VubiBTaWUgNTAgUGVyaW9kZW4gaW4gZGVyIFNla3VuZGUgaGFldHRlbiwgZGFubiB3dWVyZGVuIFNpZSBhdWNoCiBicnVtbWVuIC4uLiEiCiAoRWxla3Ryb3RlY2huaWssIEZIIEtlbXB0ZW4pCgogIlVuZCBhbGxlcywgd2FzIFZvcnRlaWxlIGhhdCwgaGF0IGF1Y2ggTmFjaHRlaWxlLiBXZW5uIG1hbiB6LkIuIGVpbmUKIGF0dHJha3RpdmUgRnJldW5kaW4gaGF0LCBpc3Qgc2llIG1laXN0ZW5zIGF1cyB6d2VpdGVyIEhhbmQuIgogKE1lc3N0ZWNobmlrLCBVbmkgUm9zdG9jaykKCiAiRGllIEZyYXVlbiBtb2VnZW4gc2ljaCBiaXR0ZSBpbiBkaWUgaGludGVyZW4gUmVpaGVuIHNldHplbi4gSWNoIGthbm4gZGVuCiBNZW5zdHJ1YXRpb25zZ2VydWNoIG5pY2h0IGVydHJhZ2VuLiIKIChKdXJhLCBVbmkgTGVpcHppZykKCiBQcm9mLiB6dSBlaW5lciBTdHVkZW50aW46ICJJaHJlIEFyZ3VtZW50ZSBzaW5kIHNvIHNjaHdhbW1pZywgd2llIElocgogQnVzZW4uIgogKEp1cmEsIFVuaSBCb2NodW0pCgogU2NodWVsZXJpbiB6aWVodCBzaWNoIGRlbiBQdWxsb3ZlciBhdXMgd2FlaHJlbmQgZWluZXIgTWF0aGVhdWZnYWJlLgogTGVocmVyOiAiRGFzIHdhciB3b2hsIGVpbmUgaGVpc3NlIEF1ZmdhYmUsIHdvbGxlbiBkb2NoIG1hbCBzZWhlbiBvYiB3aXIKIG5vY2ggc28gZWluZSBmaW5kZW4uIgogKE1hdGhlLCBBbGJyZWNodC1EdWVyZXItU2NodWxlIER1ZXNzZWxkb3JmKQoKIFN0dWRlbnQgdW5kIFByb2Ygc3RlaGVuIG5lYmVuZWluYW5kZXIgYW0gVXJpbmFsLgogU3R1ZGVudDogIkVuZGxpY2ggc3RlaGVuIHdpciBtYWwgYWxzIHp3ZWkgZ2xlaWNod2VydGlnZSBNYWVubmVyCiBuZWJlbmVpbmFuZGVyLiIKIFByb2YuOiAiVGphLCB1bmQgc2Nob24gd2llZGVyIGhhYmVuIFNJRSBkZW4ga3VlcnplcmVuIGdlem9nZW4hIgogKElzZXJsb2huIE1GSCkKCiBEZXIgQ29zaW51cyBpc3QgbmljaHQgZGFzLCB3YXMgaWhyIEV1Y2ggdm9yc3RlbGx0OiBad2VpIFNjaGVua2VsIG1pdCAnd2FzCiBkcmluLiAoa3VyemUgUGF1c2UpIC0gQWVobSwgLi4uIgogKERvemVudCBiZWkgZGVyIEVpbmZ1ZWhydW5nIGRlciBQb3RlbnpyZWloZW4pCiAoQW5hbHlzaXMsIFVuaSBLYXJsc3J1aGUpCgogIldhcnVtIGtvbW1lbiBkZW5uIGltbWVyIHdpZWRlciBTdHVkZW50ZW4genUgc3BhZXQgenVyIFZvcmxlc3VuZy4gRGllcyBpc3QKIGRvY2gga2VpbmUgVm9lbGtlcndhbmRlcnVuZywgb2Rlcj8KIChFaW4gYXNpYXRpc2NoZSBLb21pbGl0b25lIGJldHJpdHQgZGVuIFJhdW0uKQogTmFqYSwgU2llIHNpbmQgZW50c2NodWxkaWd0LCBTaWUgaGF0dGVuIGphIGVpbmVuIGxhbmdlbiBXZWchIgogKFdpcnRzY2hhZnRzcmVjaHQsIFVuaS1HSC1Fc3NlbikKCiAiSWNoIG1hY2hlIGJlc3NlciBkaWUgVHVlcmUgenUsIG5pY2h0IGRhc3Mgbm9jaCBqZW1hbmQgaG9lcnQsIHdhcyBpY2ggSWhuZW4KIGhpZXIgZXJ6YWVobGUuIgogKEp1cmEsIFVuaSBNYXJidXJnKQoKICJFaW5lIFNjaGFuZGUsIGRhc3MgbWVpbiBnZW5pYWxlciBLb3BmIGVpbmVzIFRhZ2VzIHZlcmZhdWxlbiBtdXNzISIKIChXaXJ0c2NoYWZ0c3RoZW9yaWUsIFVuaSBIYW5ub3ZlcikKCiBQcm9mOiAiV2VsY2hlcyBFcGl0aGVsIGhhYmVuIHdpciBpbiBkZXIgVmFnaW5hPyIKIFN0dWRlbnQ6ICJGbGltbWVyZXBpdGhlbD8iCiBQcm9mOiAiSGFiZW4gU2llIHNjaG9uIGVpbm1hbCBlaW5lIHZpZWwgYmVmYWhyZW5lIFN0cmFzc2UgZ2VzZWhlbiwgYXVmIGRlcgogR3JhcyB3YWVjaHN0PyIKIChBbmF0b21pZSwgTWVkaXppbmlzY2hlIEZha3VsdGFldCBIYWxsZS1XaXR0ZW5iZXJnKQoKICJFaW4gSW5nZW5pZXVyIGRlciBuaWNodCBzYWV1ZnQsIGlzdCB3aWUgZWluIE1vdG9yIGRlciBuaWNodCBsYWV1ZnQhIgogKFRlY2huaXNjaGUgTWVjaGFuaWssIEZILUZ1cnR3YW5nZW4pCgogIk5hdHVlcmxpY2ggd29sbGVuIGFsbGUgSG9jaHNjaHVsZW4gbnVyIGRpZSBiZXN0ZW4gU3R1ZGVudGVuIC4uLiwgYWJlciB3aXIKIGhhYmVuIG51ciBTSUUgLi4uIgogKEluZm9ybWF0aWssIEZIIEtvbnN0YW56KQoKICJXaXIgaGFiZW4ga3VlcnpsaWNoIGVpbiBGZWxkZXhwZXJpbWVudCBnZW1hY2h0Li4uIChMYXV0ZXIgc3ByYWNobG9zZQogU3R1ZGVudGVuKSAuLi5XaXIgaGFiZW4gZWluIHBhYXIgQldMJ2VyIGluIGRpZSBXdWVzdGUgZ2VzY2hpY2t0ISBVbmQ/IEtlaW5lCiBVZWJlcmxlYmVuZGVuISBXYXMgbGVybmVuIHdpciBkYXJhdXM/IEJXTCB0YXVndCBuaWNodCBmdWVycyBMZWJlbiEiCiAoQldMLCBVbmktTXVlbnN0ZXIpCgogTGVocmVyOiAiQWxrb2hvbCBpc3QgdW50ZXIgYW5kZXJlbSBhdWNoIGVpbiBndXRlcyBMb2VzdW5nc21pdHRlbC4uLiIKIFNjaHVlbGVyaW46ICJKYSwgZnVlciBQcm9ibGVtZSB1bmQgc28gLi4uIgogKEJpb2xvZ2llLCBIZXJ6b2ctRXJuc3QgR3ltbmFzaXVtIFVlbHplbikKCiBTdHVkZW50IGtvbW10IHp1IHNwYWV0IHp1ciBWb3JsZXN1bmcuCiBEZXIgUHJvZi4gZnJhZ3QgaWhuIGdyaW1taWc6ICJIYWJlbiBTaWUgZ2VkaWVudD8/IgogRGVyIFN0dWRlbnQgbmlja3QuCiBQcm9mLjoiIFdhcyBoYWV0dGUgSWhyIFNwaWVzcyBkYXp1IGdlc2FndCwgd2VubiBTaWUgenUgc3BhZXQga29tbWVuPyIKIFN0dWRlbnQ6ICJHdXRlbiBNb3JnZW4sIEhlcnIgTGV1dG5hbnQ/ISIKIChQaHlzaWssIFRVLUJyYXVuc2Nod2VpZykKCiAiU2llIHVuZCBpY2gsIHdpciBoYWJlbiBldHdhcyBnZW1laW5zYW06IFdpciBhbGxlIGJlZmluZGVuIHVucyB6dW0gZXJzdGVuCiBNYWwgaW4gZWluZXIgRGF0ZW5iYW5rLVZvcmxlc3VuZyAtIG1pdCBkZW0ga2xlaW5lbiBVbnRlcnNjaGllZDogSWNoIG11c3MKIHNpZSBoYWx0ZW4uIFNpZSBrb2VubmVuIG1pY2ggYWxzbyBtaXQgZ2V6aWVsdGVuIFp3aXNjaGVuZnJhZ2VuIGdhbnogc2Nob2VuCiBpbiBWZXJsZWdlbmhlaXQgYnJpbmdlbi4gQWJlciBpY2gga2FubiBJaG5lbiB2ZXJzaWNoZXJuOiBXZW5uIFNpZSBkYXMgdHVuLAogd2VyZGUgaWNoIFNpZSBpbiBkZXJWb3JkaXBsb21wcnVlZnVuZyBlYmVuc28gaW4gVmVybGVnZW5oZWl0IGJyaW5nZW4uIgogKEluZm9ybWF0aWssIFVuaSBIb2hlbmhlaW0pCgogICAgICAgICAgICAgICAgICAgICBlaW5nZXNhbmR0IHZvbiB0b2JpYXMuamFobkBzdHVkLW1haWwudW5pLXd1ZXJ6YnVyZy5kZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW4gdW5kIFRlY2huaWsuLi4gKEFtYXJ5bGxpcywgMTQuIEphbiAyMDAxLCAxOTo1NjozOCk6CkVpbmUgS2FlZmVyZmFocmVyaW4gaGF0IGVpbmUgQXV0b3Bhbm5lIGF1ZiBkZXIgQXV0b2JhaG4sIGZhZWhydCByZWNodHMgcmFuLAptYWNodCB2b3JuZSBkaWUgS2xhcHBlIGF1ZiB1bmQgc2FndDoKIlNjaGVpc3NlLCBNb3RvciB2ZXJsb3JlbiwgZGFubiBrYW5uIGVyIGphIGF1Y2ggbmljaHQgbGF1ZmVuISIKRWluZSBmcmV1bmRsaWNoZSBLYWVmZXJmYWhyZXJpbiBoYWVsdCBuZWJlbiBpaHIgdW5kIGZyYWd0OiAKIldhcyBpc3QgZGVubiBsb3M/PyBXYXJ1bSBsYWV1ZnQgZXIgbmljaHQ/IgoiSmEsIGljaCBoYWIga2VpbmVuIE1vdG9yIG1laHIhIgoiRGFzIG1hY2h0IGRvY2ggbmljaHRzLCBpY2ggaGFiIGhpbnRlbiBkcmluIG5vY2ggZWluZW4sIGRlbiBrb2VubmVuIFNpZQpoYWJlbiEiCgpBbWEqLCBmYW5kIGRlbiBpcmdlbmR3aWUgc3Vlc3MgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJTRSAoRm9vYmFyLCAxNy4gSmFuIDIwMDEsIDE0OjE3OjMwKToKUmVwb3J0ZXI6ICJXYXMgZ2xhdWJlbiBTaWUgaXN0IGRpZSBVcnNhY2hlIGZ1ZXIgQlNFPyIKQmF1ZXI6ICAgICJXaWUgb2Z0IGdsYXViZW4gU2llIHdpcmQgZGllIEt1aCBpbSBKYWhyIHZvbSBCdWxsZW4gZ2VyYW1tZWx0PyIKUmVwb3J0ZXI6ICJBZWhtLCBuYWphLCB2aWVsbGVpY2h0IHNvIGVpbiBNYWwgaW0gSmFocj8iCkJhdWVyOiAgICAiVW5kIHdpZSBvZnQgd2lyZCBkaWUgS3VoIHBybyBUYWcgd29obCBnZW1vbGtlbj8iClJlcG9ydDogICAiTmFqYSwgc28gMiBNYWwgc2NoYWV0emUgaWNoPyIKQmF1ZXI6ICAgICJTZWhlbiBTaWUsIHdlbm4gaWhuZW4gMiBtYWwgYW0gVGFnIGFuIGRlbiBOaXBwZWxuIGdlZnVtbWVsdCB3aXJkCiAgICAgICAgICAgdW5kIFNpZSBudXIgZWluIE1hbCBwcm8gSmFociBnZXJhbW1lbHQgd2VyZGVuLCBkYW5uIHdlcmRlbiBTaWUKICAgICAgICAgICBhdWNoIHdhaG5zaW5uaWcuLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpvaG5lIHdvcnRlIChHbm9tZSwgMjYuIEphbiAyMDAxLCAwMDozMzozOCk6CltUcnZlczpOaXh3ZWlzXSAuLiBkaWUgdmVyd2Vpc2Uga29tbWVuIHBlciBwb3N0ID8KCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpaZXR0ZWwgYW0gQXV0byAoRm9vYmFyLCAyNy4gSmFuIDIwMDEsIDE2OjQ1OjI5KToKRGlzY2xhaW1lcjoKLS0tLS0tLS0tLS0KCkhpZXJtaXQgZGlzdGFuemllcmUgaWNoIG1pY2ggYXVzZHJ1ZWNrbGljaCB2b24gZGVyIFN0Vk8gdW5kIGFsbGVuIHVudGVyIGRlbQpTY2hlaWJlbndpc2NoZXIgYW5nZWJyYWNodGVuIEdlZ2Vuc3RhZW5kZW4uIEF1ZmdydW5kIGRlcyBSZS1JbXBvcnRzIG1laW5lcwpGYWhyemV1Z3MgYXVzIFNwYW5pZW4gYmVydWZlIGljaCBtaWNoIGF1ZiBkaWUgc3BhbmlzY2hlClN0cmFzc2VudmVya2VyaHNvcmRudW5nLCBkaWUgZGFzIFBhcmtlbiBhdWYgZGV1dHNjaGVuIEdlaHdlZ2VuIG5pY2h0CmF1c2RydWVja2xpY2ggdmVyYmlldGV0LiBXZW5uIFNpZSBzaWNoIGRpZXNlbSBGYWhyemV1ZyBuYWVoZXJuLCBzdGltbWVuIGRhbWl0CmRpZXNlbSBIYWZ0dW5nc2F1c3NjaGx1c3MgYXV0b21hdGlzY2ggenUuCgphdXM6IGRlLmFsdC5uZXRkaWdlc3QKCkZvb2JhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBydWVmdW5ncy1XaXR6IChHcmltbWJvcm4sIDI3LiBKYW4gMjAwMSwgMTk6MDA6MjUpOgp+IyEgb249R3JpbW1ib3JuIG90PTk4MDYxODQxNSBvZz1kaXNrdXNzaW9uCn4jISBvbj1Nb250YW51cyBvdD05ODA2MTg0MDUgb2c9d2l0emUKfiMhIHJuPURpZWRlciBydD05ODA2MTgyOTUgcmc9d2l0emUKfiMhIHRpZD05ODA2MTgyOTUKCk1hbCBhbmRlcnMgZ2VzYWd0OgpXaWV2aWVsZSBQb2xpemlzdGVuIGJyYXVjaHQgbWFuLCB1bSBlaW5lbiBTY2h3ZWRlbiBhdWYgZGVyIFNUcmFzc2UgenUKdmVyaGFmdGVuPwoKRnVlbmY6IGVpbmVuIGZ1ZXIgZGVuIFNjaHdlZGVuIHVuZCA0LCBkaWUgZGVuIEVsY2ggZWluZmFuZ2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVhbHNhdGlyZSAoRGVlcGJsdWUsIDI5LiBKYW4gMjAwMSwgMTI6MTM6MDgpOgpERUZJTklUSU9OOgoiT2VmZmVudGxpY2hlIFZlcndhbHR1bmcgaW0gbWF0ZXJpZWxsZW4gU2lubmUgaXN0IGRpZSBtYW5uaWdmYWx0aWdlLAprb25kaXRpb25hbCBvZGVyIG51ciB6d2Vjay1iZXN0aW1tdGUsIGFsc28gaW5zb2Zlcm4gZnJlbWRiZXN0aW1tdGUsIG51cgp0ZWlscGxhbmVuZGUsIHNlbGJzdGJldGVpbGlndCBlbnRzY2hlaWRlbmQgYXVzZ2VmdWVocnRlIHVuZCBnZXN0YWx0ZW5kZQpXYWhybmVobXVuZyBkZXIgQW5nZWxlZ2VuaGVpdGVuIHZvbiBHZW1laW53ZXNlbiB1bmQgaWhyZXIgTWl0Z2xpZWRlciBhbHMKc29sY2hlciBkdXJjaCBkaWUgZGFmdWVyIGJlc3RlbGx0ZW4gU2FjaHdhbHRlciBkZXMgR2VtZWlud2VzZW5zCihXb2xmZi1CYWNob2YpIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZWFsc2F0aXJlIChDYXJhZGhyYXMsIDI5LiBKYW4gMjAwMSwgMTc6NTI6NTIpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTgwNzY2Nzg4IHJnPXdpdHplCn4jISB0aWQ9OTgwNzY2Nzg4ClVuZD8gV28gd2FyIGRhIGRlciBXaXR6IGRhYmVpPyAqd3VuZGVyKiA6KQoKQmVyZ2NoZW4gQ2FyYWRocmFzIC0gaGF0IGF1Y2ggbWFsIE9lZmZlbnRsaWNoZXMgUmVjaHQgc3R1ZGllcnQKUFM6IFdpZSB3YXM/IE9iam9rZT8gV2Fzc24gZGFzPyA6KSBNaXIgZmFlbGx0IGdyYWQgbml4IGVpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZWFsc2F0aXJlIChTY2h3dWJiZWwsIDI5LiBKYW4gMjAwMSwgMjE6NDc6MzUpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTgwNzY2Nzg4IHJnPXdpdHplCn4jISB0aWQ9OTgwNzY2Nzg4CldvbGZmLUJhY2hvZiBpc3Qgc293aWVzbyBudXIgZnVlciBNYXNvY2hpc3Rlbi4gQXVzc2VyZGVtIGJlbnV0enQgZGllc2UKSWRpb3Rlbi1EZWZpbml0aW9uIGtlaW4gTWVuc2NoLiBFaW5mYWNoZXIgdW5kIHByYWt0aXNjaGVyOgoKIk9lZmZlbnRsaWNoZSBWZXJ3YWx0dW5nIGlzdCBhbGxlcywgd2FzIG5pY2h0IEdlc2V0emdlYnVuZyBvZGVyIFJlY2h0c3ByZWNodW5nCmlzdCIuCgpWaWVsbGVpY2h0IGF1Y2ggbmljaHQgcGVyZmVrdCwgYWJlciBtaXQgc28gRGVmaW5pdGlvbnMtVW5nZXR1ZW1lbiBiZXdlaXNlbiBkaWUKQXV0b3JlbiBudXIgZWluZSBnZXdpc3NlIEhpbGZsb3NpZ2tlaXQuCm1laW5lIDIgUGVpdHNjaGVuaGllYmUsClNjaHd1YmJlbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVmc2NocmlmdGVuIHZvbiBLb25zdW1hcnRpa2VsbiAoQW1hcnlsbGlzLCAzMC4gSmFuIDIwMDEsIDE2OjM0OjMzKToKMS4gQXVmIGVpbmVtIEZvZW4gdm9uIFNlYXJzOiAiTmljaHQgd2FlaHJlbmQgZGVzIFNjaGxhZmVzIGJlbnV0emVuIi4KW01pc3QsIGRhcyBpc3QgZGllIGVpbnppZ2UgR2VsZWdlbmhlaXQsIHdvIGljaCBaZWl0IGhhZXR0ZSwgbWlyIGRpZSBIYWFyZQp6dQptYWNoZW5dCgoyLiBBdWYgZWluZXIgVHVldGUgRnJpdG9zIChDaGlwcyk6ICJTaWUga29lbm50ZW4gc2Nob24gZ2V3b25uZW4gaGFiZW4hCktlaW4KS2F1ZiBub2V0aWchIERldGFpbHMgaW5uZW5saWVnZW5kIi4gW0Fuc2NoZWluZW5kIGRhcyBTcGV6aWFsYW5nZWJvdCBmdWVyCkxhZGVuZGllYmVdCgozLiBBdWYgZWluZW0gU3R1ZWNrIFNlaWZlbiBkZXIgRmlybWEgRGlhbDogIkFubGVpdHVuZzogV2llIG5vcm1hbGUgU2VpZmUKYmVudXR6ZW4uIgpbVW5kIHdpZSBnZWh0IGRhcy4uLj9dCgo0LiBBdWYgVGllZmt1ZWhsa29zdCB2b24gU3dhbnNvbnM6ICJTZXJ2aWVydm9yc2NobGFnOiBBdWZ0YXVlbi4iCltBYmVyIGRhcyBpc3QgIm51ciIgZWluIFZvcnNjaGxhZ10KCjUuIEF1ZiBUaXJhbWlzdSB2b24gVGVzY28ncyAoYXVmIGRpZSBVbnRlcnNlaXRlIGF1ZmdlZHJ1Y2t0KTogIk5pY2h0CnVtZHJlaGVuIi4KW0hvcHBsYSwgc2Nob24genUgc3BhZXQhXQoKNi4gQXVmIGVpbmVtIEJyZWFkLVB1ZGRpbmcgdm9uIE1hcmtzICYgU3BlbmNlcjogIkRhcyBQcm9kdWt0IGlzdCBuYWNoCmRlbQpLb2NoZW4gaGVpc3MiLgpbSXN0IG5pY2h0IHdhaHI/PyEhIEVjaHQ/IV0KCjcuIEF1ZiBkZXIgVmVycGFja3VuZyBlaW5lcyBSb3dlbnRhLUJ1ZWdlbGVpc2VuczogIkRpZSBLbGVpZHVuZyBuaWNodAp3YWVocmVuZCBkZXMgVHJhZ2VucyBidWVnZWxuIi4KW0FiZXIgZGFzIGhhZXR0ZSBkb2NoIG5vY2ggbWVociBaZWl0IGdlc3BhcnQ/XQoKOC4gQXVmIEJvb3QncyBIdXN0ZW5tZWRpemluIGZ1ZXIgS2luZGVyOiAiTmFjaCBkZXIgRWlubmFobWUgZGllc2VyCk1lZGl6aW4KbmljaHQgYXV0b2ZhaHJlbiBvZGVyIE1hc2NoaW5lbiBiZWRpZW5lbiIuCltXaXIga29lbm50ZW4gdmllbCBmdWVyIGRpZSBWZXJtZWlkdW5nIHZvbiBBcmJlaXRzdW5mYWVsbGVuIHR1biwgd2VubiB3aXIKbnVyCmRpZXNlIGVya2FlbHRldGVuIDVqYWVocmlnZW4gS2luZGVyIHZvbiBkZW4gR2FiZWxzdGFwbGVybiB3ZWdicmFlY2h0ZW4pLgoKOS4gQXVmIE55dG9sIFNjaGxhZm1pdHRlbDogIkFjaHR1bmc6IEthbm4gTXVlZGlna2VpdCB2ZXJ1cnNhY2hlbiIKW25pY2h0cyBhbmRlcmVzIGhhYmVuIHdpciBnZWhvZmZ0XQoKMTAuIEF1ZiBkZW4gbWVpc3RlbiBXZWlobmFjaHRzbGljaHRlcmtldHRlbjogIkZ1ZXIgaW5uZW4gdW5kIGF1c3NlbiIuClt1bmQgd28gbmljaHQ/XQoKMTEuIEF1ZiBlaW5lciBqYXBhbmlzY2hlbiBLdWVjaGVubWFzY2hpbmU6ICJOaWNodCBmdWVyIGRpZSBhbmRlcmVuCkJlbnV0enVuZ2VuIHp1IGJlbnV0emVuIi4KW1p1Z2VnZWJlbmVybWFzc2VuLCBqZXR6dCBzaW5kIHdpciBuZXVnaWVyaWddLgoKMTIuIEF1ZiBOdWVzc2VuIHZvbiBTYWluc2J1cnknczogIkFjaHR1bmc6IGVudGhhZWx0IE51ZXNzZSIuCltCTElUWk5BQ0hSSUNIVCEhIV1dCgoxMy4gQXVmIGVpbmVyIFBhY2t1bmcgTnVlc3NlIHZvbiBBbWVyaWNhbiBBaXJsaW5lczogIkFubGVpdHVuZzogUGFja3VuZwpvZWZmbmVuLCBOdWVzc2UgZXNzZW4uIgpbU2Nocml0dCAzOiBNaXQgU3dpc3NhaXIgZmxpZWdlbl1dCgoxNC4gQXVmIGVpbmVtIFN1cGVybWFuLUtvc3R1ZW0gZnVlciBLaW5kZXI6IERhcyBUcmFnZW4gZGllc2VzCktsZWlkdW5nc3N0dWVja3MKZXJtb2VnbGljaHQgZXMgbmljaHQsIHp1IGZsaWVnZW4iLgpbSGllciBpc3QgbmljaHQgZGllIEZpcm1hIHNjaHVsZCwgc29uZGVybiBkaWUgRWx0ZXJuISEhXQoKCkFtYSosIGhhdCBpbW1lciBnZXd1c3N0LCBkYXNzIGRpZSBBbWlzIG5lbiBTY2h1c3MgaGFiZW4gOj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnBydXN0KiAoQWxib2luLCAzMC4gSmFuIDIwMDEsIDIzOjU2OjMyKToKRWluIFByZWRpZ2VyLCBkZXIgZnVlciBzZWluZSBvcmlnaW5lbGxlbiBQcmVkaWd0ZW4gYmVrYW5udCB3YXIsIG11c3N0ZSBlaW5lbgpSdWVmZmVsIGVpbmVyIGdyb3NzZW4gRnJhdWVub3JnYW5pc2F0aW9uIGVpbnN0ZWNrZW4uIEVyIGhhdHRlIG5hZW1saWNoIGluCmVpbmVyIFByZWRpZ3QgZ2VzYWd0OiAiRGllIHNjaGxlY2h0ZW4gTWFlbm5lciBzaW5kIHdpZSBkaWUgU2Nod2VmZWxob2VsemVyLApkaWUgdWViZXJhbGwgRmV1ZXIgZmFuZ2VuLiBEaWUgZ3V0ZW4gTWFlbm5lciBhYmVyIHNpbmQgd2llIGRpZSBzY2h3ZWRpc2NoZW4KU3RyZWljaGhvZWx6ZXI6IFNpZSBlbnRmbGFtbWVuIHNpY2ggbnVyIGFuIGRlciBlaWdlbmVuIFNjaGFjaHRlbC4uLiIgCgpBbAoKUC5TLiBGdWVyIGRpZSB1ZWJlcmVpZnJpZ2VuIFBvbGl0aWNhbCBDb3JyZWN0bmVzcy0gVmVydHJldGVyOiB3ZW5uIGlociB3YXMKZmluZGV0OiBpY2ggaGFicyBudXIgZ2Vwb3N0ZXQsIGFiZXIgbmljaHQgZ2VzYWd0IDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHBydXN0KiAoQWxib2luLCAzMS4gSmFuIDIwMDEsIDAwOjAzOjEwKToKfiMhIHJuPUFsYm9pbiBydD05ODA4OTUzOTIgcmc9d2l0emUKfiMhIHRpZD05ODA4OTUzOTIKTmFjaHRyYWc6IApYWFggdGVpbHQgRGlyIG1pdDogaWNoIHdldHRlIG1pdCBkaXIsIGRhc3MgYXVmZ3J1bmQgZGVpbmVzIFBTIHVuZCBkZXIKWFhYIHRlaWx0IERpciBtaXQ6IFRhdHNhY2hlLCBkYXNzIGVzIHRlaWx3ZWlzZSB1bSAic2Nod2VkaXNjaGUiClhYWCB0ZWlsdCBEaXIgbWl0OiBTdHJlaWNoaG9lbHplciBnZWh0LCBHcmltbWJvcm4gc2VpbmVuIFNlbmYgZGF6dSBnZWJlbgpYWFggdGVpbHQgRGlyIG1pdDogbXVzcyB1bmQgd2lyZC4gV2VubiBkYXMgbmlodCBiaXMgTWl0dHdvY2ggYWJlbmQgMjQgVWhyClhYWCB0ZWlsdCBEaXIgbWl0OiBwYXNzaWVydCBpc3QsIGRhcmZzdCBEdSBoaWVyIGFsbGUgbWVpbmUgMyBTcGllbGVyIGFuClhYWCB0ZWlsdCBEaXIgbWl0OiBPcnQgdW5kIFN0ZWxsZSB6YXBwZW4gOikKCm9obmUgS29tbWVudGFyCkFsIDotRAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBwcnVzdCogKEdyaW1tYm9ybiwgMzEuIEphbiAyMDAxLCAwMDowNDoyNik6Cn4jISBybj1BbGJvaW4gcnQ9OTgwODk1NzkwIHJnPXdpdHplCn4jISB0aWQ9OTgwODk1MzkyCkhuZ2huZ2htcGYuCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKUC5TLiBCZWltIHphcHBlbiB3aWxsIGljaCBkYWJlaSBzZWluIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFyYWxkIFNjaG1pZHQuLi4gKEdyaW1tYm9ybiwgMzEuIEphbiAyMDAxLCAwMDowODozNik6Ci4uLnNhZ3RlIGViZW4genVyIEdlbmVyYWxzZWtyZXRhZXJpbiBkZXIgRi5ELlAuICJXZXN0ZXJ3ZWxsZSBzbyBsYW5nZSBhbiBkaWUKV2FuZCBzY2htZWlzc2VuIGJpcyBlciBlaW4gUHJpbnogd2lyZC4iCgpHLmQuQS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBdWZzY2hyaWZ0ZW4gdm9uIEtvbnN1bWFydGlrZWxuIChUc3VuYW1pLCAgMS4gRmViIDIwMDEsIDAyOjEyOjIwKToKfiMhIHJuPUFtYXJ5bGxpcyBydD05ODA4Njg4NzMgcmc9d2l0emUKfiMhIHRpZD05ODA4Njg4NzMKTnVuLCBuaWNodCBudXIgaGFiZW4gYWxsZSBBbWlzIGVpbmVuIFNjaHVzcywgaWhyIE9iZXJoYWV1cHRsaW5nIGlzdCBlaW4KUmllc2VuZGVwcDoKClNvcnJ5LCBkaWUgWml0YXRlIHNpbmQgaGFsdCBpbiBFbmdsaXNjaCwgYXVjaCB3ZW5uIGRpZXMgZWluIGRldXRzY2hlcyBNdWQgaXN0CkZsYW1lcyBuYWNoIHNjaG1hcnJuCgpnZXNhbW1lbHRlIFppdGF0ZSB2b24gRy5XLkJ1c2gsIFByYWVzaWRlbnQgdm9uIHV1aG0uLi4/CgoiVGhlIHZhc3QgbWFqb3JpdHkgb2Ygb3VyIGltcG9ydHMgY29tZSBmcm9tIG91dHNpZGUgdGhlIGNvdW50cnkuIgouLi4uR2VvcmdlIFcuIEJ1c2gsIEpyLgoKCiJXZWxjb21lIHRvIE1ycy4gQnVzaCwgYW5kIG15IGZlbGxvdyBhc3Ryb25hdXRzLiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKci4KCgoiTWFycyBpcyBlc3NlbnRpYWxseSBpbiB0aGUgc2FtZSBvcmJpdC4uLk1hcnMgaXMgc29tZXdoYXQgdGhlIHNhbWUKZGlzdGFuY2UgZnJvbSB0aGUgU3VuLCB3aGljaCBpcyB2ZXJ5IGltcG9ydGFudC4gIFdlIGhhdmUgc2VlbgpwaWN0dXJlcyB3aGVyZSB0aGVyZSBhcmUgY2FuYWxzLCB3ZSBiZWxpZXZlLCBhbmQgd2F0ZXIuIElmIHRoZXJlCmlzICB3YXRlciwgdGhhdCBtZWFucyB0aGVyZSBpcyBveHlnZW4uIElmIG94eWdlbiwgdGhhdCBtZWFucyB3ZSBjYW4KYnJlYXRoZS4iCi4uLi5Hb3Zlcm5vciBHZW9yZ2UgVy4gQnVzaCwgSnIuLCA4LzExLzk0CgoKIlRoZSBIb2xvY2F1c3Qgd2FzIGFuIG9ic2NlbmUgcGVyaW9kIGluIG91ciBuYXRpb24ncyBoaXN0b3J5LgpJIG1lYW4gaW4gdGhpcyBjZW50dXJ5J3MgaGlzdG9yeS4gQnV0IHdlIGFsbCBsaXZlZCBpbiB0aGlzCmNlbnR1cnkuIEkgZGlkbid0IGxpdmUgaW4gdGhpcyBjZW50dXJ5LiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKci4sIDkvMTUvOTUKCgoiSSBiZWxpZXZlIHdlIGFyZSBvbiBhbiBpcnJldmVyc2libGUgdHJlbmQgdG93YXJkIG1vcmUgZnJlZWRvbQphbmQgZGVtb2NyYWN5IC0gYnV0IHRoYXQgY291bGQgY2hhbmdlLiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKci4sIDUvMjIvOTgKCgoiVmVyYm9zaXR5IGxlYWRzIHRvIHVuY2xlYXIsIGluYXJ0aWN1bGF0ZSB0aGluZ3MuIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLiwgMTEvMzAvOTYKCgoiSSBoYXZlIG1hZGUgZ29vZCBqdWRnbWVudHMgaW4gdGhlIHBhc3QuIEkgaGF2ZSBtYWRlIGdvb2QKanVkZ21lbnRzIGluIHRoZSBmdXR1cmUuIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLgoKCiJXZSdyZSBnb2luZyB0byBoYXZlIHRoZSBiZXN0IGVkdWNhdGVkIEFtZXJpY2FuIHBlb3BsZSBpbiB0aGUgd29ybGQuIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLiwgOS8yMS85NwoKCiJQZW9wbGUgdGhhdCBhcmUgcmVhbGx5IHZlcnkgd2VpcmQgY2FuIGdldCBpbnRvIHNlbnNpdGl2ZSBwb3NpdGlvbnMKYW5kIGhhdmUgYSB0cmVtZW5kb3VzIGltcGFjdCBvbiBoaXN0b3J5LiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKci4KCgoiSSBzdGFuZCBieSBhbGwgdGhlIG1pc3N0YXRlbWVudHMgdGhhdCBJJ3ZlIG1hZGUuIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLiB0byBTYW0gRG9uYWxkc29uLCA4LzE3LzkzCgoKIldlIGhhdmUgYSBmaXJtIGNvbW1pdG1lbnQgdG8gTkFUTywgd2UgYXJlIGEgcGFydCBvZiBOQVRPLiBXZQpoYXZlIGEgZmlybSBjb21taXRtZW50IHRvIEV1cm9wZS4gV2UgYXJlIGEgcGFydCBvZiBFdXJvcGUuIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLgoKCiJQdWJsaWMgc3BlYWtpbmcgaXMgdmVyeSBlYXN5LiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKci4gdG8gcmVwb3J0ZXJzIGluIDEwLzkKCgoiSSBhbSBub3QgcGFydCBvZiB0aGUgcHJvYmxlbS4gSSBhbSBhIFJlcHVibGljYW4iCi4uLi5Hb3Zlcm5vciBHZW9yZ2UgVy4gQnVzaCwgSnIuCgoKIkEgbG93IHZvdGVyIHR1cm5vdXQgaXMgYW4gaW5kaWNhdGlvbiBvZiBmZXdlciBwZW9wbGUgZ29pbmcgdG8gdGhlIHBvbGxzLiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKcgoKCiJXaGVuIEkgaGF2ZSBiZWVuIGFza2VkIHdobyBjYXVzZWQgdGhlIHJpb3RzIGFuZCB0aGUga2lsbGluZyBpbiBMQSwKbXkgYW5zd2VyIGhhcyBiZWVuIGRpcmVjdCAmIHNpbXBsZTogV2hvIGlzIHRvIGJsYW1lIGZvciB0aGUgcmlvdHM/ClRoZSByaW90ZXJzIGFyZSB0byBibGFtZS4gV2hvIGlzIHRvIGJsYW1lIGZvciB0aGUga2lsbGluZ3M/IFRoZQpraWxsZXJzIGFyZSB0byBibGFtZS4KLi4uLkdlb3JnZSBXLiBCdXNoLCBKci4KCgoiUXVpdGUgZnJhbmtseSwgdGVhY2hlcnMgYXJlIHRoZSBvbmx5IHByb2Zlc3Npb24gdGhhdCB0ZWFjaCBvdXIgY2hpbGRyZW4uIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLiwgOS8xOC85NQoKCiJXZSdyZSBhbGwgY2FwYWJsZSBvZiBtaXN0YWtlcywgYnV0IEkgZG8gbm90IGNhcmUgdG8gZW5saWdodGVuIHlvdQpvbiB0aGUgbWlzdGFrZXMgd2UgbWF5IG9yIG1heSBub3QgaGF2ZSBtYWRlLiIKLi4uLkdvdmVybm9yIEdlb3JnZSBXLiBCdXNoLCBKci4KCgoiSXQgaXNuJ3QgcG9sbHV0aW9uIHRoYXQncyBoYXJtaW5nIHRoZSBlbnZpcm9ubWVudC4gIEl0J3MgdGhlCmltcHVyaXRpZXMgaW4gb3VyIGFpciBhbmQgd2F0ZXIgdGhhdCBhcmUgZG9pbmcgaXQuIgouLi4uR292ZXJub3IgR2VvcmdlIFcuIEJ1c2gsIEpyLgoKCiJbSXQnc10gdGltZSBmb3IgdGhlIGh1bWFuIHJhY2UgdG8gZW50ZXIgdGhlIHNvbGFyIHN5c3RlbS4iCi4uLi5Hb3Zlcm5vciBHZW9yZ2UgVy4gQnVzaCwgSnIuCgoKCmRhIGthbm4gbWFuIG51ciBub2NoIGRlbiBLb3BmIHNjaHVldHRlbG4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLcmllZ3NlcmtsYWVydW5nIChEcmVhbWVyLCAgOC4gRmViIDIwMDEsIDE4OjQ3OjM1KToKCk9zdGZyaWVzbGFuZCBzZW5kZXQgZWluIEZlcm5zY2hyZWliZW4gYW4gZGllIFZvbGtzcmVwdWJsaWsgQ2hpbmE6CiJFcmtsYWVyZW4gZGVuIEtyaWVnLCBoYWJlbiA1IFBhbnplciB1bmQgMjIxIFNvbGRhdGVuLiIgQW50d29ydCBkZXIKQ2hpbmVzZW46ICJFcmtsYWVydW5nIGFuZ2Vub21tZW4sIGhhYmVuIDE4MDAwIFBhbnplciB1bmQgNQpNaWxsaW9uZW47U29sZGF0ZW4uIkRhcmF1ZiBPc3Rmcmllc2xhbmQ6ICJOZWhtZW4gS3JpZWdzZXJrbGFlcnVuZyB6dXJ1ZWNrLApoYWJlbjtuaWNodCBnZW51ZyBCZXR0ZW4gZnVlciBkaWUgS3JpZWdzZ2VmYW5nZW5lbi4iIAoKR3J1c3MgRHJlYW1lciwgZGllc21hbCBrbGVpbmdlc2NocmllYmVuIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZm9ybXVsYXIgYXVzIChHcmltbWJvcm4sICA4LiBGZWIgMjAwMSwgMjA6NDk6MjUpOgp+IyEgb249SmlnZ2Egb3Q9OTgxNjYxNzU1IG9nPWFsbGdlbWVpbmVzCnEKaQppbmZvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgR3J1bmQgYWxsZW4gVWViZWxzOiAoTm9ubmUsICA4LiBGZWIgMjAwMSwgMjE6MDc6NTEpOgpEaWUgQmV2b2Vsa2VydW5nIHZvbiBEZXV0c2NobGFuZCBiZXRyYWd0IGRlcnplaXQgODAgTWlsbGlvbmVuIE1lbnNjaGVuLiBEYXZvbgpzaW5kIDIwLDUgTWlsbGlvbmVuIFJlbnRuZXIuIEVzIHZlcmJsZWliZW4gYWxzbyA1OSw1IE1pbGxpb25lbiwgdW0gZGllIGdhbnplCkFyYmVpdCB6dSB2ZXJyaWNodGVuLiBaaWVodCBtYW4gbm9jaCAyMiBNaWxsaW9uZW4gS2luZGVyLCBTY2h1ZWxlciB1bmQKU3R1ZGVudGVuIGFiLCB2ZXJibGVpYmVuIG5vY2ggMzcsNSBNaWxsaW9uZW4uIERhbm4gc2luZCBkYSBhYmVyIG5vY2ggNApNaWxsaW9uZW4gQXJiZWl0c2xvc2UsIDE2IE1pbGxpb25lbiBCZWFtdGUsIGRpZSBhdWNoIGthdW0gZXR3YXMgdHVuLCBzb3dpZSAxNApNaWxsaW9uZW4gSGF1c2ZyYXVlbiBiencuIE11ZXR0ZXIuIApCbGVpYmVuIGFsc28gMyw1IE1pbGxpb25lbiBNZW5zY2hlbiB1ZWJyaWcuIDMwMC4wMDAgYmVmaW5kZW4gc2ljaCB6dWRlbSBpbQpNaWxpdGFyIC8gWml2aWxkaWVuc3QsIDEsNyBNaWxsaW9uZW4gaW0gS3JhbmtlbnN0YW5kIC8gS3JhbmtlbmhhdXMsIHdlaXRlciAxLDQKTWlsbGlvbmVuIGltIFVybGF1YiwgNDAuMDAwIHNpbmQgUGVubmVyIHVuZCA1OS45OTggYmVmaW5kZW4gc2ljaCBpbQpHZWZhZW5nbmlzLgpTb21pdCBibGVpYmVuIG51ciAyIGFybXNlbGlnZSBUcm90dGVsIHVlYnJpZywgdW0gZGllIGdhbnplIEFyYmVpdCB6dQplcmxlZGlnZW4uRHUgdW5kIGljaC4KVW5kIHdhcyB0dXN0IER1PwpTaXR6dCBkYSB1bmQgbGllc3QgZHVtbWUgV2l0emUuCktlaW4gV3VuZGVyLCBkYXMgaWNoIHRvdGFsIHVlYmVybGFzdGV0IGJpbiAhISEKU2NoYWVtIGRpY2ggISEhCgpOb25uZSwgZ3JpbnNlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVyIEdydW5kIGFsbGVuIFVlYmVsczogKFNvbG15ciwgIDkuIEZlYiAyMDAxLCAwNjozOTo1OCk6Cn4jISBybj1Ob25uZSBydD05ODE2NjI4NzEgcmc9d2l0emUKfiMhIHRpZD05ODE2NjI4NzEKSWNoIG11ZGRlLCBzY2hsYWZlIG9kZXIgbWFjaCBQYXJ0eSwgd29iZWkgbGV0enRlcmVzIGZ1ZXIgZGllIGFlbHRlcmVuCkdlbmVyYXRpb25lbiBtaXQgQmVzYWV1Zm5pcyBnbGVpY2gga29tbXQuCgpTb2xteXIsIHRvdGFsIGhhY2tlIHVuZCBmcm9oLCBkYXNzIGVyIGhldXRlIG1hbCB3aWVkZXIgbmV0dGUgRnJhdQprZW5uZW5nZWxlcm50IGhhdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgR3J1bmQgYWxsZW4gVWViZWxzOiAoTW9yZ290aCwgIDkuIEZlYiAyMDAxLCAwNzozNTo0OSk6Cn4jISBybj1Tb2xteXIgcnQ9OTgxNjk3MTk4IHJnPXdpdHplCn4jISB0aWQ9OTgxNjYyODcxCkhhdCBEaWNoIERlaW5lIE11dHRlciBtYWwgd2llZGVyIGJlc3VjaHQ/CgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIEdydW5kIGFsbGVuIFVlYmVsczogKFNvbG15ciwgIDkuIEZlYiAyMDAxLCAxMTo0MzoyMik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTk4MTcwMDU0OSByZz13aXR6ZQp+IyEgdGlkPTk4MTY2Mjg3MQpEYXMgYXVjaCBqYSA6KSBIYXQgV2Flc2NoZSBnZWhvbHQgdW5kIGlzdCBncmFkIHdpZWRlciBhYmdlZGFtcGZ0LgoKU29sbXlyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplaW5lciBhdWYgZW5nbGlzY2ggKE1vbnRhbnVzLCAxOS4gRmViIDIwMDEsIDE5OjU1OjAwKToKVGhlIENJQSBoYWQgYW4gb3BlbmluZyBmb3IgYW4gYXNzYXNzaW4uIEFmdGVyIGFsbCBvZiB0aGUgYmFja2dyb3VuZApjaGVja3MsIGludGVydmlld3MsIGFuZCB0ZXN0aW5nIHdlcmUgZG9uZSB0aGVyZSB3ZXJlIHRocmVlCmZpbmFsaXN0cy4uLi4uLnR3byBtZW4gYW5kIGEgd29tYW4uCgpGb3IgdGhlIGZpbmFsIHRlc3QsIHRoZSBDSUEgYWdlbnRzIHRvb2sgb25lIG9mIHRoZSBtZW4gdG8gYSBsYXJnZQptZXRhbCBkb29yIGFuZCBoYW5kZWQgaGltIGEgZ3VuLgoKIldlIG11c3Qga25vdyB0aGF0IHlvdSB3aWxsIGZvbGxvdyB5b3VyIGluc3RydWN0aW9ucywgbm8gbWF0dGVyIHdoYXQKdGhlIGNpcmN1bXN0YW5jZXMuIEluc2lkZSBvZiB0aGlzIHJvb20sIHlvdSB3aWxsIGZpbmQgeW91ciB3aWZlCnNpdHRpbmcgaW4gYSBjaGFpci4gS2lsbCBIZXIhISEiCgpUaGUgbWFuIHNhaWQsICJZb3UgY2FuJ3QgYmUgc2VyaW91cy4gSSBjb3VsZCBuZXZlciBzaG9vdCBteSB3aWZlLiIgVGhlCmFnZW50IHNhaWQsICJUaGVuIHlvdSdyZSBub3QgdGhlIHJpZ2h0IG1hbiBmb3IgdGhpcyBqb2IuIgoKVGhlIHNlY29uZCBtYW4gd2FzIGdpdmVuIHRoZSBzYW1lIGluc3RydWN0aW9ucy4gSGUgdG9vayB0aGUgZ3VuIGFuZAp3ZW50IGludG8gdGhlIHJvb20uIEFsbCB3YXMgcXVpZXQgZm9yIGFib3V0IGZpdmUgbWludXRlcy4gVGhlbiB0aGUgbWFuCmNhbWUgb3V0IHdpdGggdGVhcnMgaW4gaGlzIGV5ZXMuICJJIHRyaWVkLCBidXQgSSBjYW4ndCBraWxsIG15IHdpZmUuIgoKVGhlIGFnZW50IHNhaWQsICJZb3UgZG9uJ3QgaGF2ZSB3aGF0IGl0IHRha2VzLiBUYWtlIHlvdXIgd2lmZSBhbmQgZ28KaG9tZS4iCgpGaW5hbGx5LCBpdCB3YXMgdGhlIHdvbWFuJ3MgdHVybi4gU2hlIHdhcyBnaXZlbiB0aGUgc2FtZSBpbnN0cnVjdGlvbnMKdG8ga2lsbCBoZXIgaHVzYmFuZC4gU2hlIHRvb2sgdGhlIGd1biBhbmQgd2VudCBpbnRvIHRoZSByb29tLgoKU2hvdHMgd2VyZSBoZWFyZCwgb25lIHNob3QgYWZ0ZXIgYW5vdGhlci4gVGhleSBoZWFyZCBzY3JlYW1pbmcsCmNyYXNoaW5nLCBiYW5naW5nIG9uIHRoZSB3YWxscy4gQWZ0ZXIgYSBmZXcgbWludXRlcywgYWxsIHdhcyBxdWlldC4KVGhlIGRvb3Igb3BlbmVkIHNsb3dseSBhbmQgdGhlcmUgc3Rvb2QgdGhlIHdvbWFuLgoKU2hlIHdpcGVkIHRoZSBzd2VhdCBmcm9tIGhlciBicm93LCBhbmQgc2FpZCwgIlRoaXMgZ3VuIGlzIGxvYWRlZCB3aXRoCmJsYW5rcy4gSSBoYWQgdG8gYmVhdCBoaW0gdG8gZGVhdGggd2l0aCB0aGUgY2hhaXIuIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnZvcnNpY2h0LCBzZWhyIGxhbmchIChNb250YW51cywgMTkuIEZlYiAyMDAxLCAyMDowMToyMSk6CldpbmRvd3MgWFBHOiBEb24ndCBGb3JnZXQgWW91ciBEaWNlIC0gQnkgQS4gSi4gQXhsaW5lIAooZ2FtZSBkb2VzIG5vdCBpbmNsdWRlIFRlY2hOZXQgc3Vic2NyaXB0aW9uKQpJJ20gbm90IGVudGlyZWx5IHN1cmUgdGhhdCBNaWNyb3NvZnQgYW5kIEQmRCAoRHVuZ2VvbnMgYW5kIERyYWdvbnMpIHdlcmUKbWVhbnQgdG8gcGFyYWxsZWwgZWFjaCBvdGhlciwgYnV0IHRoYXQgaGFzbid0IHN0b3BwZWQgdGhlIFJlZG1vbmQKc2hpYmJvbGV0aCBmcm9tIHN3aXBpbmcgYSBwaWVjZSBvZiBEJkQgdGVybWlub2xvZ3kgZm9yIHRoZWlyIG5leHQgV2luZG93cwpyZWxlYXNlLgoKTWljcm9zb2Z0IGNvbmZpcm1lZCByZXBvcnRzIG1hZGUgdGhpcyB3ZWVrIHRoYXQgV2hpc3RsZXIsIHRoZSBjb2RlIG5hbWUgZm9yCnRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgV2luZG93cyBPUywgd2lsbCBiZSByZWxlYXNlZCB1bmRlciB0aGUgb2ZmaWNpYWwKbmFtZSBXaW5kb3dzIFhQLiBIZXJlJ3Mgc29tZSB0cmlwZSBmcm9tIHRoZSBwcmVzcyByZWxlYXNlOgoiVGhlIFhQIG5hbWUgaXMgc2hvcnQgZm9yICJleHBlcmllbmNlLCIgc3ltYm9saXNpbmcgdGhlIHJpY2ggYW5kIGV4dGVuZGVkCnVzZXIgZXhwZXJpZW5jZXMgV2luZG93cy4uLmNhbiBvZmZlciBieSBlbWJyYWNpbmcgV2ViIHNlcnZpY2VzIHRoYXQgc3BhbiBhCmJyb2FkIHJhbmdlIG9mIGRldmljZXMuIgpJZiBwb3VuZGluZyBtaWdyYWluZXMgYW5kIGRhbmdlcm91c2x5IGhpZ2ggYmxvb2QgcHJlc3N1cmUgdGhhdCBjYXVzZXMgc3BvdHMKdG8gZGFuY2UgaW4gZnJvbnQgb2YgeW91ciBleWVzIGNvdW50IGFzICJyaWNoIGFuZCBleHRlbmRlZCB1c2VyCmV4cGVyaWVuY2VzIiwgdGhlIFhQIG1vZGVsIGhhcyBhbHJlYWR5IGJlZW4gaW4gcGxhY2UgZm9yIHNldmVyYWwgeWVhcnMgbm93LgoKSG93ZXZlciwgaXQgaGFzIG5vdCBiZWVuIGluIHBsYWNlIGxvbmdlciB0aGFuIEQmRC4gRHVuZ2VvbnMgYW5kIERyYWdvbnMKZmlyc3QgYXBwZWFyZWQgaW4gMTk3NCwgYW5kIEFkdmFuY2VkIEQmRCBoaXQgc2hlbHZlcyBpbiAxOTc4LiBGb3IgdGhvc2Ugb2YKeW91IHdobyBoYXZlIGxlZCBub3JtYWwgbGl2ZXMgd2hlcmUgZGljZSBhcmUgYWx3YXlzIHNpeC1zaWRlZCBhbmQgb25seSB1c2VkCmluIFlhaHR6ZWUgb3IgTW9ub3BvbHksIEQmRCBpcywgd2FzLCBhbmQgYWx3YXlzIHdpbGwgYmUgYSBmYW50YXN5LWJhc2VkCnJvbGUgcGxheWluZyBnYW1lIChSUEcpIHRoYXQgaW52b2x2ZXMgcG9seWdvbmFsIGRpY2UsIGFyY2FuZSBhbmQKKHNvbWV0aW1lcykgaG9wZWxlc3NseSBjb21wbGljYXRlZCBydWxlcywgbG90cyBvZiBjYWZmZWluYXRlZCBhbmQKKHNvbWV0aW1lcykgYWxjb2hvbGljIGJldmVyYWdlcywgYW5kIChzb21ldGltZXMpIGxpdHRsZSBtZXRhbCBmaWd1cmluZXMKdGhhdCB1c2VkIHRvIGNvbnRhaW4gZW5vdWdoIGxlYWQgdG8gc3RvcCBhIHJoaW5vJ3MgaGVhcnQuIE5vdCB0byBmZWFyOyB0aGV5CmFyZSBtYWRlIG91dCBvZiBhc2Jlc3RvcyBub3cuCgpJbiBEJkQsIHRoZSBhY3JvbnltICJYUCIgaXMgdXNlZCB0byBkZW5vdGUgRXhwZXJpZW5jZSBQb2ludHMuIEV4cGVyaWVuY2UKUG9pbnRzIGFyZSB3aGF0IHBsYXllcnMgcmVjZWl2ZSBmb3Igc3VjY2Vzc2Z1bGx5IGFjY29tcGxpc2hpbmcgY2VydGFpbgp0YXNrcyBpbiB0aGUgZ2FtZSwgYmUgaXQgc2xhdWdodGVyaW5nIG1vbnN0ZXJzLCBjcnVzaGluZyBlbmVtaWVzLCBvcgphY2N1bXVsYXRpbmcgd2VhbHRoLi4ua2luZCBvZiBsaWtlIGludmVzdG1lbnQgYmFua2luZy4gQXMgeW91IGFjY3VtdWxhdGUgWFAKKHRoZSBzaW5ndWxhciBpcyB1c2VkIGFzIHRoZSBwbHVyYWwpLCB5b3VyIGNoYXJhY3RlcidzIGFiaWxpdGllcyBhbmQgc2tpbGxzCmluY3JlYXNlLgoKV2h5IE1pY3Jvc29mdCBkZWNpZGVkIHRvIGZpbGNoIHRoaXMgdGVybSBmb3IgdGhlaXIgbmV4dCBPUyBpcyB1bmtub3duLgpIb3dldmVyLCBpdCBkb2VzIGxlbmQgaXRzZWxmIG5pY2VseSB0byBhIHBvc3NpYmxlIHJvbGUgcGxheWluZyBnYW1lOgpXaW5kb3dzIFhQRy4gSSBjYW4gYWxtb3N0IGltYWdpbmUgd2hhdCBhIHNlc3Npb24gb2YgV2luWFBHIHdvdWxkIGJlIGxpa2UuLi4KCihzb2Z0IGRpc3NvbHZlIHRvIGEgYnVuY2ggb2YgZ2Vla3Mgc2l0dGluZyBhcm91bmQgYSB0YWJsZSkKCiJPa2F5LCIgc2F5cyB0aGUgR00gKEdhdGVzbWFzdGVyKSAieW91J3ZlIHN1Y2Nlc3NmdWxseSBjYXN0IGEgMXN0IGxldmVsCiJJbnN0YWxsIFdpbmRvd3MiIHNwZWxsLiBIb3dldmVyLCB5b3Ugc2Vuc2UgYSBtYWxldm9sZW50IHByZXNlbmNlIHRyeWluZyB0bwpkaXNydXB0IHRoZSBzcGVsbC4iCgoiSSdsbCBjYXN0ICJEZXRlY3QgSGFyZHdhcmUiISIgc2hvdXRzIG9uZSBvZiB0aGUgcGxheWVycywgU0NTSSBUaGUKRW5jaGFudGVyLgoKIllvdSBjYW4ndCBjYXN0IHRoYXQgd2l0aG91dCB0aGUgJ1BsdWcgTiBQbGF5JyBzcGVsbCBjb21wb25lbnQsIiB0aGUgR00KYWRtb25pc2hlcy4KCiJJJ3ZlIGdvdCBQTlAhIEkgZG8hIiBTQ1NJIGluc2lzdHMuICJJIGdvdCBpdCB3aGVuIHdlIGZvdWdodCB0aGF0IEdQRiB0cm9sbAppbiB0aGUgT2ZmaWNlIGR1bmdlb24gbGFzdCBtb250aC4iCgoiQWxsIHJpZ2h0LCByb2xsIGZvciBpdCwiIHNheXMgdGhlIEdNLgoKKGRpY2UgYXJlIHJvbGxlZC4gc2V2ZXJhbCAxNTAwIHBhZ2UgbWFudWFscyBhcmUgY29uc3VsdGVkLikKCiJPa2F5LCB5b3UgZ2V0IHRoZSBzcGVsbCBvZmYsIiB0aGUgR00gZGVjaWRlcy4gIllvdSBzZWUgc2V2ZXJhbCBwaWVjZXMgb2YKaGFyZHdhcmUgYXBwZWFyIGluIHRoZSBkYXJrbmVzcy4gSG93ZXZlciwgdGhlIGNsZXJpYyBzZW5zZXMgdGhhdCBvbmUgb2YgdGhlCnBpZWNlcyBpc24ndCBvbiB0aGUgSENMLiIKClRoZSBjbGVyaWMsIENhcmRpbmFsIFNpbiwgcnVicyBoaXMgY2hpbiB0aG91Z2h0ZnVsbHkuICJJJ20gZ29pbmcgdG8gcHVsbApvdXQgbXkgaG9seSBzeW1ib2wgYW5kIGF0dGVtcHQgdG8gY29udmVydCB0aGUgd2F5d2FyZCBwaWVjZSBvZiBoYXJkd2FyZSB0bwp0aGUgZ2xvcmlvdXMgcGF0aCBvZiB0aGUgSENMLiIKCiJVbW0uLi5va2F5LCByb2xsIGZvciBpdCwiIHNheXMgdGhlIEdNLgoKKENhcmRpbmFsIFNpbiByb2xscyBhICcxJykKCiJPaCBib3ksIiB0aGUgR00gY2h1Y2tsZXMuICJUaGUgZGFya25lc3MgaXMgc3VkZGVubHkgYnJpbGxpYW50bHkgbGl0IGJ5IGEKZ2xvd2luZywgc2V2ZW4gZm9vdCB0YWxsIHBlcml3aW5rbGUtY29sb3JlZCBtb25zdGVyLiBJdCdzIGEgaGlkZW91cyBsb29raW5nCmNyZWF0dXJlLCBzY2FseSBhbmQgb296aW5nLCBhbmQgaXQgZ2l2ZXMgb2ZmIHRoZSBzdGVuY2ggb2YgYW4gb3BlbiBncmF2ZS4iCgoiT2ggbm8hIiBjcmllcyBDYXJkaW5hbCBTaW4uICJOb3QgYSBCbHVlIFNsYWFkIE9mIERlYXRoISIKCkEuSi4gQXhsaW5lCkJ5dGUgQmFjayBOZXdzCgoKKFBTOiBJZiB5b3UgZG9uJ3QgZ2V0IHRoaXMgcHVuY2hsaW5lLCBpdCBpcyBwcm9iYWJseSB0aW1lIGZvciBhIG5ldyBjYXJlZXIKaW4gY29zbWV0b2xvZ3kgb3IgZGVudGlzdHJ5IGZvciB5b3UuKQpodHRwOi8vd3d3LmFkbmRtb25zdGVycy5jb20vcy9zbGFhZF9ibHVlLmh0bQoKQnl0ZSBCYWNrIE5ld3MgaXMgYSBsZXZlbCA0MiBBbnRpLVBhbGFkaW4sIGhvYmJsZWQgYnkgYSBDdXJzZSBvZiBMZXRoYXJneS4KSXQgZG9lc24ndCByZWFsbHkgbWluZCBwYWxhZGlucy4uLml0J3MganVzdCBtb3JlIGNvbWZvcnRhYmxlIHdoZW4gdGhleSBhcmUKbm90IGFyb3VuZC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGFuIGRlciBCdXNoYWx0ZXN0ZWxsZSAuLi4gKEFuYWNyaW9uLCAyMS4gRmViIDIwMDEsIDA5OjI1OjQ3KToKCkluIGRlciBXYXJ0ZXNjaGxhbmdlIGFuIGRlciBCdXNoYWx0ZXN0ZWxsZSBzdGVodCBlaW5lIGp1bmdlIGh1ZWJzY2hlIERhbWUuIFNpZQppc3QgbWl0IGVpbmVtIGdhbnogZW5nZW4gTGVkZXJtaW5pcm9jayBnZWtsZWlkZXQgdW5kIGRhenUgcGFzc2VuZGVuCkxlZGVyc3RpZWZlbG4gdW5kIExlZGVyamFja2UuIERlciBCdXMga29tbXQgdW5kIHNpZSBpc3QgYW4gZGVyIFJlaWhlLiBBbHMgc2llIAp2ZXJzdWNodCwgaW4gZGVuIEJ1cyB6dSBzdGVpZ2VuLCBtZXJrdCBzaWUsIGRhc3Mgc2llIHdlZ2VuIGRlcyBlbmdlbiBNaW5pcm9ja3MKaWhyIEJlaW4gbmljaHQgaG9jaCBnZW51ZyBmdWVyIGRpZSBlcnN0ZSBTdHVmZSBiZWtvbW10LgoKRXMgaXN0IGlociB6d2FyIHBlaW5saWNoLCBhYmVyIG1pdCBlaW5lbSBrdXJ6ZW4gTGFlY2hlbG4genVtIEJ1c2ZhaHJlciBncmVpZnQKc2llIGhpbnRlciBzaWNoLCB1bSBkZW4gUmVpc3N2ZXJzY2hsdXNzIGFuIGlocmVtIE1pbmlyb2NrIGVpbiBiaXNzY2hlbiB6dQpvZWZmbmVuIHVuZCBzbyBtZWhyIEJld2VndW5nc2ZyZWloZWl0IHp1IGhhYmVuLiBMZWlkZXIgcmVpY2h0IGRpZXMgYWJlciBub2NoCm5pY2h0IGF1cywgZGFzIEJlaW4gaG9jaCBnZW51ZyBmdWVyIGRpZSBlcnN0ZSBTdHVmZSB6dSBoZWJlbi4gU2llIGdyZWlmdAp3aWVkZXIKbmFjaCBoaW50ZW4sIHVtIGRlbiBSZWlzc3ZlcnNjaGx1c3Mgd2VpdGVyIHp1IG9lZmZuZW4sIG11c3MgYWJlciBhbnNjaGxpZXNzZW5kCmZlc3RzdGVsbGVuLCBkYXNzIHNpZSBpbW1lciBub2NoIG5pY2h0IGJpcyB6dSBlcnN0ZW4gU3R1ZmUgZ2VsYW5ndC4KClNpZSBsYWVjaGVsdCBkZW0gQnVzZmFocmVyIG5vY2ggZWlubWFsIHp1IHVuZCBvZWZmbmV0IGRlbiBSZWlzc3ZlcnNjaGx1c3MsIHp1bQpkcml0dGVubWFsLCBub2NoIGVpbiBiaXNzY2hlbiB3ZWl0ZXIgLSB2ZXJnZWJlbnMsIGRlciBSb2NrIGJsZWlidCB6dSBlbmcgdW5kCmRpZSBlcnN0ZSBTdHVmZSB1bmVycmVpY2hiYXIuIERhIHBhY2t0IHNpZSBlaW4gaW4gZGVyIFdhcnRlc2NobGFuZ2UgaGludGVyCmlociBzdGVoZW5kZXIgTWFubiBhbiBkZXIgSHVlZnRlIHVuZCBoZWJ0IGRhcyBNYWVkY2hlbiBncmluc2VuZCBhdWYgZGllIGVyc3RlClN0dWZlLiBTaWUgaXN0IHZvZWxsaWcgZW1wb2VydCB1bmQgZHJlaHQgc2ljaCB1bTogIldpZSBrb2VubmVuIHNpZSBlcyB3YWdlbgptaWNoIGFuenVmYXNzZW4uIEljaCB3ZWlzcyBqYSBuaWNodCBtYWwgd2VyIHNpZSBzaW5kISIgRGFyYXVmIGVyOiAKIk5vcm1hbGVyd2Vpc2Ugd3VlcmRlIGljaCBJaG5lbiB6dXN0aW1tZW4uIEFiZXIgbmFjaGRlbSBzaWUgamV0enQgZHJlaW1hbAptZWluZSBIb3NlIGdlb2VmZm5ldCBoYWJlbiwgZGFjaHRlIGljaCwgd2lyIHdhZXJlbiBGcmV1bmRlISEiCgpBbmFjKiAtIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2JiaXRzLi4uIChNb250YW51cywgMjEuIEZlYiAyMDAxLCAyMDowNDoyNSk6CkhvdyBtYW55IGhvYmJpdHMgZG9lcyBpdCB0YWtlIHRvIGNoYW5nZSBhIGxpZ2h0IGJ1bGI/CgoKCiAgT25lIHRvIGNvbXBsYWluIHRoYXQgdGhlIGxpZ2h0IGJ1bGIgaXNuJ3Qgd29ya2luZywKICBGaXZlIHRvIGhvbGQgYSBtZWV0aW5nIHRvIGRlY2lkZSB3aGF0IHRvIGRvIGFib3V0IGl0LAogIFR3ZW50eSB0byBmb3JtIGFuIGV4cGVkaXRpb24gdG8gdGhlIGZhYmxlZCBMaWdodGJ1bGIgbWluZXMgb2YgTXl0aHJpbGwsCiAgVGhpcnR5IHRvIHRocm93IGEgZ29pbmcgYXdheSBwYXJ0eSwKICBPbmUgdG8gYXNrIEdhbmRhbGYgZm9yIGRpcmVjdGlvbnMsCiAgT25lIHRvIHNlbGwgaW50byBzbGF2ZXJ5IHdoZW4gdGhlIHBldHR5IGNhc2ggcnVucyBvdXQsCiAgRml2ZSB0byBnZXQgbG9zdCB0aHJvdWdoIG5hdHVyYWwgd2FzdGFnZSAoQmFuZGlzdCwgbXVyZGVyZXJzLCBtb25zdGVycwpldGMpLAogIE9uZSB0byB0aHJvd24gdG8gdGhlIERyYWdvbiB0aGF0IGd1YXJkcyB0aGUgTGlnaHRidWxiIG1pbmUsCiAgVHdvIHRvIGNhcnJ5IHRoZSBsaWdodGJ1bGJzLAogIEZpdmUgdG8gZmluZCBhIGxhcmdlLCBzd29yZC13aWVsZGluZyBiYXJiYXJpYW4gdG8gZXNjb3J0IHRoZSBsaWdodGJ1bGJzCmhvbWUsCiAgVGhpcnR5IHRvIHRocm93IGEgc2FmZSByZXR1cm4gcGFydHksCiAgRml2ZSB0byBmaW5kIGFuIGVsZiB0YWxsIGVub3VnaCB0byBjaGFuZ2UgdGhlIGxpZ2h0YnVsYiwKICBGaXZlIHRvIGNvbXBvc2UgYmFsbGFkcyBvZiBkYXJpbmcsIGhlcm9pc20sIHNhY3JpZmljZSBhbmQgbGlnaHRidWxicywKICBGaW5hbGx5IGFub3RoZXIgdHdvLWh1bmRyZWQgdG8gYXBwZWFyIGluIHRoZSBzdWJzZXF1ZW50IFRvbGtpZW4gYm9va3MuIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFjaGVuIGlzdCBnZXN1bmQgKExpbmZsYXMsIDIyLiBGZWIgMjAwMSwgMjA6MTQ6NDEpOgpWaWVsIFNwYXNzIGRhbWl0IDo9KQoKaHR0cDovL3d3dy5lcm5lc3RpbmEuZGUvc3ZmYXEuaHRtCgpodHRwOi8vd3d3LmNvdXNpbi5kZS9jb3VzaW4vYWxsZ2VtZWluL2dsb3NzYXIuaHRtbAoKTGluZmxhcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlZmluaXRpb24gKERpZWRlciwgMjMuIEZlYiAyMDAxLCAxODo0ODoyMSk6CkdyYWQgYXVmIG5lciBXZWJzZWl0ZSBnZWxlc2VuOgoKIk5vdGU6IEhUTUwgbWFpbCBtZWFucyB5b3UgY2FuIHNlZSBjb2xvcnMgYW5kIGdyYXBoaWNzIGluIHlvdXIgZW1haWwuIgoKRG9sbCA6KQpEaWVkZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVOSVggKERpZWRlciwgIDQuIE1hciAyMDAxLCAyMToyNTo0NCk6CkdlcmFkZSBpbSBOZXR6IGdlZnVuZGVuIChhdWYgZWluZXIgR2xvc3Nhci1TZWl0ZSk6CgpVTklYOgpFaW4gYmVpIENvbXB1dGVyLUZyZWFrcyB1bmdlbWVpbiBwb3B1bGFlcmVzIEJldHJpZWJzc3lzdGVtLCBkYXMgYmVpCmRlciBFbnR3aWNrbHVuZyBkZXMgSW50ZXJuZXQgUGF0ZSBzdGFuZC4gWnVtIEdsdWVjayBpc3QgZnVlciBhbGxlLCBkaWUgCm5pY2h0IGluIEtvbW1hbmRvemVpbGVuIGRlbmtlbiBrb2VubmVuLCBkZXIgWnVnYW5nIHp1bSBJbnRlcm5ldCBhdWNoCm1pdCBDb21wdXRlcm4gYW5kZXJlciBCZXRyaWVic3N5c3RlbWUgcHJvYmxlbWxvcyBtb2VnbGljaC4gU2llIHN0b3NzZW4gCmFiZXIgZ2VsZWdlbnRsaWNoIGF1ZiBTZWl0ZW4sIGluIGRlbmVuIHp1bWluZGVzdCBkaWUgS2VubnRuaXMgZGVyIAplbGVtZW50YXJzdGVuIFVOSVgtQmVmZWhsZSBub2V0aWcgaXN0LiAKCkRpZWRlciA6KQoKUFM6IERhcyBFcnNjaHJlY2tlbnN0ZSBkYXJhbiBpc3QgZmFzdCwgZGFzcyBkZXIgQXV0b3IgZGVzIEdsb3NzYXJzIGF1Y2ggbm9jaAplaW4gUHJvZiBpc3QuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVTklYIChBZ29ueSwgIDQuIE1hciAyMDAxLCAyMTo0MjoyOCk6Cn4jISBybj1EaWVkZXIgcnQ9OTgzNzM3NTQ0IHJnPXdpdHplCn4jISB0aWQ9OTgzNzM3NTQ0CndhcyBpc3QgZGFyYW4gZXJzY2hyZWNrZW5kLi4uZXIgaGF0IHJlY2h0LgorIGVzIGlzdCBlaW4gdW5nZW1laW4gcG9wdWxhZXJlcyBiZXRyaWVic3N5c3RlbSB1bnRlciBmcmVha3MKKyBlcyBpc3QgZW5nIG1pdCBkZXIgZW50d2lja2x1bmcgZGVzIGludGVybmV0cyB2ZXJidW5kZW4KKyBlcyBpc3QgZWluIGdsdWVjayBmdWVyIG5vcm1hbHN0ZXJibGljaGUsIGRhc3MgbWFuIGNsaWNraS1idW50aS1zeXN0ZW1lCiAgYWxhIHdpbmRvd3MrSUUgdmVyd2VuZGVuIGthbm4sIGluc2Jlc29uZGVyZSBhdWNoIGZ1ZXJzIG5ldHoKKyBlbGVtZW50YXJzdGUgdW5peC1iZWZlaGxlIHNpbmQgd29obCBtZCwgY2QsIGNwLCBtdiB1bmQgc28gd2VpdGVyLCBhbHNvCiAgYWJ1bmR6dSBzaWVodCBtYW4gamEgc293YXMgYXVjaCBub2NoIGF1ZiBkb3Nlbiwgb2J3b2hsIGVzIHZvbiBNUwogIHN5c3RlbWF0aXNjaCBhdXNnZXJvdHRldCB3aXJkCgp1bmQgd28gd2FyIG51biBkaWUgcG9pbnRlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBVTklYIChEaWVkZXIsICA0LiBNYXIgMjAwMSwgMjE6NTM6MzMpOgp+IyEgcm49QWdvbnkgcnQ9OTgzNzM4NTQ4IHJnPXdpdHplCn4jISB0aWQ9OTgzNzM3NTQ0CmEpIGlzdCBlcyBuaWNodCBudXIgdW5nZW1laW4gcG9wdWxhZXIgYmVpIEZyZWFrcwpiKSB3dWVzc3RlIGljaCBuaWNodCwgd28gbWFuIGFscyB2b24gRGlyIGJlc2NocmllYmVuZXIgS2xpY2tpYnVudGktTnV0emVyCihNUytJRSkgbm9jaCBVTklYLUJlZmVobGUgYnJhdWNoZW4gc29sbHRlICh3aWUgaW4gZGVtIEdsb3NzYXIgYmVoYXVwdGV0CmMpIGZhbmQgaWNoIGVpbmZhY2ggbnVyIGRpZSBEZWZpbml0aW9uIGdhbnogd2l0emlnCmQpIGhhZXR0ZSBpY2ggZXMgamEgaW4gU2NobWFycm4gZ2Vwb3N0ZXQsIGFiZXIgbmFjaGRlbSBkYSBzZWl0IFRhZ2VuIGVpbgpUaHJlYWQgdm9uICJJY2ggbXVzcyBtaWNoIHByb2R1emllcmVuIiBydW1nZWh0IHVuZCBkaWUgbWVpc3RlbiwgZGllIGljaCBrZW5uZSwKbmFjaCBkZW0gRWlubG9nZ2VuIGVyc3RtYWwgInVlYmVyZ2VoZSBzY2htYXJybiIgbWFjaGVuLCB3ZWlsIGVzIGF1Y2ggaW1tZXIKbWVociBzb2xjaGVyIE11ZWxsLVRocmVhZHMgd2VyZGVuLCBoYWIgaWNoIGVzIGhhbHQgaGllciByZWluIGdlc2V0enQuCgpOb2NoIEZyYWdlbiBLaWVuemxlPyA6KQoKRGllZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVTklYIChTb2xteXIsICA0LiBNYXIgMjAwMSwgMjE6NTU6NTYpOgp+IyEgcm49RGllZGVyIHJ0PTk4MzczOTIxMyByZz13aXR6ZQp+IyEgdGlkPTk4MzczNzU0NApEaWUgbWVpc3RlbiwgZGllIER1IGtlbm5zdCBEaWVkZXI/IEhtbSwgZGFzIHNpbmQgZGFubiBqYSwgLi4uIG5hY2ggQWRhbQpSaWVzZSwgLi4uLCAyKzIrMisuLi49IEhtbSw/IFRqYSwgYWxzbywgaXJnZW5kd2llLCBkYSBnYWIgZXMgZG9jaCBub2NoCmRpZSBHZXNjaGljaHRlIHZvbSBMYWcgYmVpICdtYWlsIGZyZXVuZGUnLCB3ZW5uIERpZWRlciBkYSBpc3QsIC4uLgoqZ3J1ZWJlbCosIGljaCBoYWJzISBBbGxlIDopIEFiZXIgZGFzIGlzdCBpcmdlbmR3aWUgaW5rb3JyZWt0LgoKU29sbXlyLCBncnVlYmVsbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFVOSVggKEFnb255LCAgNC4gTWFyIDIwMDEsIDIxOjU3OjU1KToKfiMhIHJuPURpZWRlciBydD05ODM3MzkyMTMgcmc9d2l0emUKfiMhIHRpZD05ODM3Mzc1NDQKLSBkYXMgZ2xvc3NhciB3YXIgc2ljaGVybGljaCBmdWVyIG5vcm1hbHN0ZXJibGljaGUuCi0gZnVlciBub3JtYWxzdGVyYmxpY2hlIHphZWhsdCBoZXV0enV0YWdlIGplZGVyIHp1IGVpbmVtIGZyZWFrLCBkZXIgdm9yCiAgZWluZXIga29uc29sZSBzaXR6LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVU5JWCAoTm9ubmUsICA1LiBNYXIgMjAwMSwgMDg6MzY6MDQpOgp+IyEgcm49QWdvbnkgcnQ9OTgzNzM5NDc1IHJnPXdpdHplCn4jISB0aWQ9OTgzNzM3NTQ0CldpdHppZywgd2llIG1hbiBzaWNoIHNvIG91dGVuIGthbm4gKmtpY2hlciogVW50ZXIgVW5peCBoZWlzc3QgbWQgbWtkaXIgKGM7CgpOb25uZSwga29ubnRlIHNpY2ggZGFzIExhY2hlbiBuaWNodCB2ZXJrbmVpZmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGVyIGV0d2FzIGFuZGVyZSBsaXN0aWdlIEthbXBmendlcmcgOikgKFNvbG15ciwgIDYuIE1hciAyMDAxLCAwODozMjowMik6CkVpbiBSaWVzZSB1bmQgZWluIFp3ZXJnIHNpdHplbiBhbiBkZXIgQmFyIHVuZCB0cmlua2VuIEJpZXIuIERlciBad2VyZyBzcHVja3QKKHRmdGZ0ZiAtIGxhdXQgbGVzZW4hKSBkZW0gUmllc2VuIGlucyBCaWVyLgpSaWVzZSA6IEhvZXIgYXVmLCBvZGVyIGljaCByZWlzcyBEaXIgZWluIE9ociBhYiEKWndlcmcgOiBNaXIgZWdhbCwgYmVpIHVucyBad2VyZ2VuIHdhY2hzZW4gZGllIE9ocmVuIG5hY2ghIC0gdGZ0ZnRmClJpZXNlIDogV2VubiBEdSBuaWNodCBzb2ZvcnQgYXVmaG9lcnN0LCByZWlzc2UgaWNoIERpciBlaW4gQmVpbiBhdXMhClp3ZXJnIDogTmEgdW5kLCBiZWkgdW5zIFp3ZXJnZW4gd2FjaHNlbiBCZWluZSBuYWNoIC0gdGZ0ZnRmClJpZXNlIDogSmV0enQgcmVpY2h0cyBhYmVyIHdpcmtsaWNoISBTY2hsdXNzLCBvZGVyIGljaCByZWlzc2UgRGlyIGRlbgpTY2huaWVkZWwgYXVzLgpad2VyZyA6IFByb2JpZXIncyBkb2NoLCB3aXIgWndlcmdlIGhhYmVuIGdhciBrZWluZW4gU2NobmllZGVsIC0gdGZ0ZnRmClJpZXNlICh2ZXJibHVlZmZ0KTogU28sIHVuZCB3aWUgcGlua2VsdCBJaHIgZGFubj8/Pwpad2VyZyA6IHRmdGZ0ZiAKClNvbCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuIGRlciBVbmkuLi4gKEdyZWxsZ2VuLCAgOC4gTWFyIDIwMDEsIDIzOjU0OjQ3KToKUHJvZjogIlF1ZWNrc2lsYmVyIGhhdCBlaW4gc3BlemlmaXNjaGVzIEdld2ljaHQgdm9uIHVuZ2VmYWVociAxNCBnL2NtMywgRWlzZW4KaGF0IGVpbmUgdm9uIHVuZ2VmYWVociA3IGcvY20zLiBIZWlzc3QgZGFzIGpldHp0LCBkYXNzIGVpbmUgRWlzZW5rdWdlbCBpbgpRdWVja3NpbGJlciBzY2h3aW1tdD8iClN0dWRlbnQ6ICJKYS4gRGEga29lbm5lbiBzb2dhciB6d2VpIGRyaW4gc2Nod2ltbWVuLi4uIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbiBkZXIgVW5pLi4uIChEaWVkZXIsICA5LiBNYXIgMjAwMSwgMDA6NDQ6NTUpOgp+IyEgcm49R3JlbGxnZW4gcnQ9OTg0MDkyMDg3IHJnPXdpdHplCn4jISB0aWQ9OTg0MDkyMDg3ClN0dWRlbnQ6IEJpbiBpY2ggaGllciByaWNodGlnPyAKSWNoOiBBZWhtPyBSaWNodGlnPyBXb2Z1ZXIgcmljaHRpZz8gClN0dWRlbnQ6IE5hLCBtdXNzIGljaCBoaWVyaGluPyAKSWNoOiBIbW0sIGRhcyB3ZWlzcyBpY2ggZG9jaCBuaWNodC4gClN0dWRlbnQ6IE5hLCBkYW5uIGZyYWdlIGljaCBtYWwgd29hbmRlcnMuLi4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptYW5jaGUgc2luZCBnbGVpY2hlciAoUGFuaWMsIDEyLiBNYXIgMjAwMSwgMTE6MjU6MDApOgphdXMgTXVhZGlicyBBcnRpa2VsOgo+RGEgbGVpZGVyIG5pY2h0IGZlc3RzdGVsbGJhciBpc3QsIHdlciBkaWVzZW4gRGllbnN0IGdlbnV0enQgaGF0Cj5vZGVyIG5pY2h0LCB3aXJkIGFsbGVuIGVybGF1YnRlbiBTcGllbGVybiBlaW5lIHN5bWJvbGlzY2hlIAo+U3BpZWxwYXVzZSB2b24gZWluZXIgV29jaGUgZXJ0ZWlsdC4KPlNvbGx0ZSBlcyBoaWVyIG1pdCBEaXIgZWluZW4gVW5zY2h1bGRpZ2VuLCBzbyBiZWRhdXJlIGljaCAKPmRhcyBzZWhyLgoKRGllIFNwZXJyZSBpc3QgamEgb2ssIGhhdCBhdWNoIG5pZW1hbmQgZXR3YXMgZ2VnZW4gZ2VzYWd0LiBBYmVyIGJlc3RpbW10ZQpMZXV0ZSBuYWNodHJhZWdsaWNoIHdpZWRlciBkYXZvbiB6dSBiZWZyZWllbiBmaW5kIGljaCBhbGJlcm4uCgpEYXJrd2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVjaHRzY2hyZWlidW5rIChBbWFyeWxsaXMsIDE1LiBNYXIgMjAwMSwgMDA6MzY6MTcpOgpNZWhyIGR1cmNoIFp1ZmFsbCBoYWJlIGljaCBoZXV0ZSBkZW4gUHJha3Rpa3Vtc2JlcmljaHQgZWluZXMgU3R1ZGVudGVuIHp1CnNlaGVuIGJla29tbWVuLiBEYSBlcyB3ZWRlciBtZWluZSBIb2Noc2NodWxlLCBtZWluZW4gRmFjaGJlcmVpY2ggbm9jaCBtaWNoCnNlbGJzdCBiZXRyYWYsIGhhYiBpY2ggaWhuIG51ciB1ZWJlcmZsb2dlbi4gRWluIEF1c3NjaG5pdHQgZmFzemluaWVydGUgbWljaApqZWRvY2g6CgoiSW5zYmVzb25kZXJlIGJlaW0gRWluc2F0eiB2b24gUGFya2FzY2hlbiBsZXJudGUgaWNoLi4uIGJsYWJsYS4uLiIKCk51biwgZXMgaGF0IG1pY2ggbmF0dWVybGljaCBzb2ZvcnQgZmFzemluaWVydCwgd2FzIG1pdCAiUGFya2FzY2hlbiIgZ2VtZWludAp3YXIgLSBpcmdlbmRlaW5lIG5ldWUgTWFzY2hpbmUsIFRlY2huaWssIFNvZnR3YXJlPwoKRXMgc3RlbGx0ZSBzaWNoIGRhbm4gaGVyYXVzLCBkYXNzIGVyIGluIGVpbmVtIFRvbnN0dWRpbyBnZWFyYmVpdGV0IHVuZAoiUGVyY3Vzc2lvbiIgZ2VtZWludCBoYXR0ZSAtIHdvcmF1ZiBpY2ggaWhuIGF1ZmZvcmRlcnRlLCBkYXMgZG9jaCBkYW5uCndlbmlnc3RlbnMgIlBhZXJrYXNjaGVuIiAobWl0IGFlKSB6dSBzY2hyZWliZW4uIDopCgpBbWEqLCBzaWNoIG1hbmNobWFsIHd1bmRlcm5kLCB3ZXIgYWxsZXMgIkhvY2hzY2h1bHJlaWZlIiBlcmxhbmdlbiBrYW5uIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmdsaXNoIGlzIHRvdWdoIHN0dWZmIChCaWVsZWZlbGQsIDE1LiBNYXIgMjAwMSwgMTU6MTY6NDMpOgpUaGlzIGNhbWUgZnJvbSBVc2VuZXQsIHNvbWV3aGVyZSwgc29tZXRpbWUuCiAgCihNdWx0aS1uYXRpb25hbCBwZXJzb25uZWwgYXQgTm9ydGggQXRsYW50aWMgVHJlYXR5IE9yZ2FuaXphdGlvbgpoZWFkcXVhcnRlcnMgbmVhciBQYXJpcyBmb3VuZCBFbmdsaXNoIHRvIGJlIGFuIGVhc3kgbGFuZ3VhZ2UgLi4uCnVudGlsIHRoZXkgdHJpZWQgdG8gcHJvbm91bmNlIGl0LiAgVG8gaGVscCB0aGVtIGRpc2NhcmQgYW4gYXJyYXkgb2YKYWNjZW50cywgdGhlIHZlcnNlcyBiZWxvdyB3ZXJlIGRldmlzZWQuICBBZnRlciB0cnlpbmcgdGhlbSwgYQpGcmVuY2htYW4gc2FpZCBoZSdkIHByZWZlciBzaXggbW9udGhzIGF0IGhhcmQgbGFib3IgdG8gcmVhZGluZyBzaXgKbGluZXMgYWxvdWQuICBUcnkgdGhlbSB5b3Vyc2VsZi4pCgoKICAgICAgIEVOR0xJU0ggSVMgVE9VR0ggU1RVRkYKICAgICAgID09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICBEZWFyZXN0IGNyZWF0dXJlIGluIGNyZWF0aW9uLAogICAgICAgU3R1ZHkgRW5nbGlzaCBwcm9udW5jaWF0aW9uLgogICAgICAgSSB3aWxsIHRlYWNoIHlvdSBpbiBteSB2ZXJzZQogICAgICAgU291bmRzIGxpa2UgY29ycHNlLCBjb3JwcywgaG9yc2UsIGFuZCB3b3JzZS4KICAgICAgIEkgd2lsbCBrZWVwIHlvdSwgU3V6eSwgYnVzeSwKICAgICAgIE1ha2UgeW91ciBoZWFkIHdpdGggaGVhdCBncm93IGRpenp5LgogICAgICAgVGVhciBpbiBleWUsIHlvdXIgZHJlc3Mgd2lsbCB0ZWFyLgogICAgICAgU28gc2hhbGwgSSEgIE9oIGhlYXIgbXkgcHJheWVyLgoKICAgICAgIEp1c3QgY29tcGFyZSBoZWFydCwgYmVhcmQsIGFuZCBoZWFyZCwKICAgICAgIERpZXMgYW5kIGRpZXQsIGxvcmQgYW5kIHdvcmQsCiAgICAgICBTd29yZCBhbmQgc3dhcmQsIHJldGFpbiBhbmQgQnJpdGFpbi4KICAgICAgIChNaW5kIHRoZSBsYXR0ZXIsIGhvdyBpdCdzIHdyaXR0ZW4uKQogICAgICAgTm93IEkgc3VyZWx5IHdpbGwgbm90IHBsYWd1ZSB5b3UKICAgICAgIFdpdGggc3VjaCB3b3JkcyBhcyBwbGFxdWUgYW5kIGFndWUuCiAgICAgICBCdXQgYmUgY2FyZWZ1bCBob3cgeW91IHNwZWFrOgogICAgICAgU2F5IGJyZWFrIGFuZCBzdGVhaywgYnV0IGJsZWFrIGFuZCBzdHJlYWs7CiAgICAgICBDbG92ZW4sIG92ZW4sIGhvdyBhbmQgbG93LAogICAgICAgU2NyaXB0LCByZWNlaXB0LCBzaG93LCBwb2VtLCBhbmQgdG9lLgoKICAgICAgIEhlYXIgbWUgc2F5LCBkZXZvaWQgb2YgdHJpY2tlcnksCiAgICAgICBEYXVnaHRlciwgbGF1Z2h0ZXIsIGFuZCBUZXJwc2ljaG9yZSwKICAgICAgIFR5cGhvaWQsIG1lYXNsZXMsIHRvcHNhaWxzLCBhaXNsZXMsCiAgICAgICBFeGlsZXMsIHNpbWlsZXMsIGFuZCByZXZpbGVzOwogICAgICAgU2Nob2xhciwgdmljYXIsIGFuZCBjaWdhciwKICAgICAgIFNvbGFyLCBtaWNhLCB3YXIgYW5kIGZhcjsKICAgICAgIE9uZSwgYW5lbW9uZSwgQmFsbW9yYWwsCiAgICAgICBLaXRjaGVuLCBsaWNoZW4sIGxhdW5kcnksIGxhdXJlbDsKICAgICAgIEdlcnRydWRlLCBHZXJtYW4sIHdpbmQgYW5kIG1pbmQsCiAgICAgICBTY2VuZSwgTWVscG9tZW5lLCBtYW5raW5kLgoKICAgICAgIEJpbGxldCBkb2VzIG5vdCByaHltZSB3aXRoIGJhbGxldCwKICAgICAgIEJvdXF1ZXQsIHdhbGxldCwgbWFsbGV0LCBjaGFsZXQuCiAgICAgICBCbG9vZCBhbmQgZmxvb2QgYXJlIG5vdCBsaWtlIGZvb2QsCiAgICAgICBOb3IgaXMgbW91bGQgbGlrZSBzaG91bGQgYW5kIHdvdWxkLgogICAgICAgVmlzY291cywgdmlzY291bnQsIGxvYWQgYW5kIGJyb2FkLAogICAgICAgVG93YXJkLCB0byBmb3J3YXJkLCB0byByZXdhcmQuCiAgICAgICBBbmQgeW91ciBwcm9udW5jaWF0aW9uJ3MgT0sKICAgICAgIFdoZW4geW91IGNvcnJlY3RseSBzYXkgY3JvcXVldCwKICAgICAgIFJvdW5kZWQsIHdvdW5kZWQsIGdyaWV2ZSBhbmQgc2lldmUsCiAgICAgICBGcmllbmQgYW5kIGZpZW5kLCBhbGl2ZSBhbmQgbGl2ZS4KIAogICAgICAgSXZ5LCBwcml2eSwgZmFtb3VzOyBjbGFtb3VyCiAgICAgICBBbmQgZW5hbW91ciByaHltZSB3aXRoIGhhbW1lci4KICAgICAgIFJpdmVyLCByaXZhbCwgdG9tYiwgYm9tYiwgY29tYiwKICAgICAgIERvbGwgYW5kIHJvbGwgYW5kIHNvbWUgYW5kIGhvbWUuCiAgICAgICBTdHJhbmdlciBkb2VzIG5vdCByaHltZSB3aXRoIGFuZ2VyLAogICAgICAgTmVpdGhlciBkb2VzIGRldm91ciB3aXRoIGNsYW5nb3VyLgogICAgICAgU291bHMgYnV0IGZvdWwsIGhhdW50IGJ1dCBhdW50LAogICAgICAgRm9udCwgZnJvbnQsIHdvbnQsIHdhbnQsIGdyYW5kLCBhbmQgZ3JhbnQsCiAgICAgICBTaG9lcywgZ29lcywgZG9lcy4gIE5vdyBmaXJzdCBzYXkgZmluZ2VyLAogICAgICAgQW5kIHRoZW4gc2luZ2VyLCBnaW5nZXIsIGxpbmdlciwKICAgICAgIFJlYWwsIHplYWwsIG1hdXZlLCBnYXV6ZSwgZ291Z2UgYW5kIGdhdWdlLAogICAgICAgTWFycmlhZ2UsIGZvbGlhZ2UsIG1pcmFnZSwgYW5kIGFnZS4KICAgICAgIAogICAgICAgUXVlcnkgZG9lcyBub3Qgcmh5bWUgd2l0aCB2ZXJ5LAogICAgICAgTm9yIGRvZXMgZnVyeSBzb3VuZCBsaWtlIGJ1cnkuCiAgICAgICBEb3N0LCBsb3N0LCBwb3N0IGFuZCBkb3RoLCBjbG90aCwgbG90aC4KICAgICAgIEpvYiwgbm9iLCBib3NvbSwgdHJhbnNvbSwgb2F0aC4KICAgICAgIFRob3VnaCB0aGUgZGlmZmVyZW5jZXMgc2VlbSBsaXR0bGUsCiAgICAgICBXZSBzYXkgYWN0dWFsIGJ1dCB2aWN0dWFsLgogICAgICAgUmVmZXIgZG9lcyBub3Qgcmh5bWUgd2l0aCBkZWFmZXIuCiAgICAgICBGb2VmZmVyIGRvZXMsIGFuZCB6ZXBoeXIsIGhlaWZlci4KICAgICAgIE1pbnQsIHBpbnQsIHNlbmF0ZSBhbmQgc2VkYXRlOwogICAgICAgRHVsbCwgYnVsbCwgYW5kIEdlb3JnZSBhdGUgbGF0ZS4KICAgICAgIFNjZW5pYywgQXJhYmljLCBQYWNpZmljLAogICAgICAgU2NpZW5jZSwgY29uc2NpZW5jZSwgc2NpZW50aWZpYy4KICAgICAgIAogICAgICAgTGliZXJ0eSwgbGlicmFyeSwgaGVhdmUgYW5kIGhlYXZlbiwKICAgICAgIFJhY2hlbCwgYWNoZSwgbW91c3RhY2hlLCBlbGV2ZW4uCiAgICAgICBXZSBzYXkgaGFsbG93ZWQsIGJ1dCBhbGxvd2VkLAogICAgICAgUGVvcGxlLCBsZW9wYXJkLCB0b3dlZCwgYnV0IHZvd2VkLgogICAgICAgTWFyayB0aGUgZGlmZmVyZW5jZXMsIG1vcmVvdmVyLAogICAgICAgQmV0d2VlbiBtb3ZlciwgY292ZXIsIGNsb3ZlcjsKICAgICAgIExlZWNoZXMsIGJyZWVjaGVzLCB3aXNlLCBwcmVjaXNlLAogICAgICAgQ2hhbGljZSwgYnV0IHBvbGljZSBhbmQgbGljZTsKICAgICAgIENhbWVsLCBjb25zdGFibGUsIHVuc3RhYmxlLAogICAgICAgUHJpbmNpcGxlLCBkaXNjaXBsZSwgbGFiZWwuCiAgICAgICAKICAgICAgIFBldGFsLCBwYW5lbCwgYW5kIGNhbmFsLAogICAgICAgV2FpdCwgc3VycHJpc2UsIHBsYWl0LCBwcm9taXNlLCBwYWwuCiAgICAgICBXb3JtIGFuZCBzdG9ybSwgY2hhaXNlLCBjaGFvcywgY2hhaXIsCiAgICAgICBTZW5hdG9yLCBzcGVjdGF0b3IsIG1heW9yLgogICAgICAgVG91ciwgYnV0IG91ciBhbmQgc3VjY291ciwgZm91ci4KICAgICAgIEdhcywgYWxhcywgYW5kIEFya2Fuc2FzLgogICAgICAgU2VhLCBpZGVhLCBLb3JlYSwgYXJlYSwKICAgICAgIFBzYWxtLCBNYXJpYSwgYnV0IG1hbGFyaWEuCiAgICAgICBZb3V0aCwgc291dGgsIHNvdXRoZXJuLCBjbGVhbnNlIGFuZCBjbGVhbi4KICAgICAgIERvY3RyaW5lLCB0dXJwZW50aW5lLCBtYXJpbmUuCgogICAgICAgQ29tcGFyZSBhbGllbiB3aXRoIEl0YWxpYW4sCiAgICAgICBEYW5kZWxpb24gYW5kIGJhdHRhbGlvbi4KICAgICAgIFNhbGx5IHdpdGggYWxseSwgeWVhLCB5ZSwKICAgICAgIEV5ZSwgSSwgYXksIGF5ZSwgd2hleSwgYW5kIGtleS4KICAgICAgIFNheSBhdmVyLCBidXQgZXZlciwgZmV2ZXIsCiAgICAgICBOZWl0aGVyLCBsZWlzdXJlLCBza2VpbiwgZGVjZWl2ZXIuCiAgICAgICBIZXJvbiwgZ3JhbmFyeSwgY2FuYXJ5LgogICAgICAgQ3JldmljZSBhbmQgZGV2aWNlIGFuZCBhZXJpZS4KICAgICAgIAogICAgICAgRmFjZSwgYnV0IHByZWZhY2UsIG5vdCBlZmZhY2UuCiAgICAgICBQaGxlZ20sIHBobGVnbWF0aWMsIGFzcywgZ2xhc3MsIGJhc3MuCiAgICAgICBMYXJnZSwgYnV0IHRhcmdldCwgZ2luLCBnaXZlLCB2ZXJnaW5nLAogICAgICAgT3VnaHQsIG91dCwgam91c3QgYW5kIHNjb3VyLCBzY291cmdpbmcuCiAgICAgICBFYXIsIGJ1dCBlYXJuIGFuZCB3ZWFyIGFuZCB0ZWFyCiAgICAgICBEbyBub3Qgcmh5bWUgd2l0aCBoZXJlIGJ1dCBlcmUuCiAgICAgICBTZXZlbiBpcyByaWdodCwgYnV0IHNvIGlzIGV2ZW4sCiAgICAgICBIeXBoZW4sIHJvdWdoZW4sIG5lcGhldyBTdGVwaGVuLAogICAgICAgTW9ua2V5LCBkb25rZXksIFR1cmsgYW5kIGplcmssCiAgICAgICBBc2ssIGdyYXNwLCB3YXNwLCBhbmQgY29yayBhbmQgd29yay4KICAgICAgIAogICAgICAgUHJvbnVuY2lhdGlvbiAtLSB0aGluayBvZiBQc3ljaGUhCiAgICAgICBJcyBhIHBhbGluZyBzdG91dCBhbmQgc3Bpa2V5PwogICAgICAgV29uJ3QgaXQgbWFrZSB5b3UgbG9zZSB5b3VyIHdpdHMsCiAgICAgICBXcml0aW5nIGdyb2F0cyBhbmQgc2F5aW5nIGdyaXRzPwogICAgICAgSXQncyBhIGRhcmsgYWJ5c3Mgb3IgdHVubmVsOgogICAgICAgU3RyZXduIHdpdGggc3RvbmVzLCBzdG93ZWQsIHNvbGFjZSwgZ3Vud2FsZSwKICAgICAgIElzbGluZ3RvbiBhbmQgSXNsZSBvZiBXaWdodCwKICAgICAgIEhvdXNld2lmZSwgdmVyZGljdCBhbmQgaW5kaWN0LgogICAgICAgCiAgICAgICBGaW5hbGx5LCB3aGljaCByaHltZXMgd2l0aCBlbm91Z2ggLS0KICAgICAgIFRob3VnaCwgdGhyb3VnaCwgcGxvdWdoLCBvciBkb3VnaCwgb3IgY291Z2g/CiAgICAgICBIaWNjb3VnaCBoYXMgdGhlIHNvdW5kIG9mIGN1cC4KICAgICAgIE15IGFkdmljZSBpcyB0byBnaXZlIHVwISEhCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBSaWNoYXJkIExlZGVyZXIKCkRhbm4gbWFsIHZpZWwgU3Bhc3MuLi4ga2xlaW5lciBUaXA6IHZvcmhlciBlaW5lCkZsYXNjaGUgV2VpbiwgZGFubiBnZWh0cyBub2NoIGJlc3NlciA7LSkKLUJpZWxlZmVsZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVuZ2xpc2ggaXMgdG91Z2ggc3R1ZmYgKFd1cnplbCwgMTUuIE1hciAyMDAxLCAyMTo0MzoyOSk6Cn4jISBybj1CaWVsZWZlbGQgcnQ9OTg0NjY1ODAzIHJnPXdpdHplCn4jISB0aWQ9OTg0NjY1ODAzCm5ldHQuCndlciBub2NoIGltbWVyIGRpZSBlcmtsYWVydW5nIHN1Y2h0LCB3YXJ1bSBkYXMgYW1lcmlrYW5pc2NoZSBlbmdsaXNjaApzbyBzdGFyayBhYndlaWNodCB2b20gYnJpdGlzY2hlbiwgaGllciBpc3Qgc2llIDopCgp3dXJ6ZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJveWdyb3VwIChBbWFyeWxsaXMsIDE1LiBNYXIgMjAwMSwgMjM6MjU6MTgpOgphdXMgZGUudGFsay5qb2tlcy4uLgoKV2llIG1hbiBlaW5lIEJveWdyb3VwIGdydWVuZGV0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpEaWUgTWFlZGNoZW4ga3JlaXNjaGVuLCBkaWUgS2Fzc2VuIGtsaW5nZWxuIHVuZCBkdSBoYXN0IGRlbiBOZWlkCnVuZCBSZXNwZWt0IGRlaW5lciBGcmV1bmRlLiBLYW5uc3QgZHUgc2luZ2VuPyBLYW5uc3QgZHUgdGFuemVuPwpOZWluPyBNYWNodCBuaWNodHMsIHNvbGFuZ2UgZHUgaW0gUmFtcGVubGljaHQgZ3V0IGF1c3NpZWhzdC4gTG9zCmdlaHQncyAtIHdpZSBtYW4gZWluZSBCb3lncm91cCBncnVlbmRldDoKCiAxLiBXZXJkZSBkaXIgZGFydWViZXIgYmV3dXNzdCwgZGFzcyBqZWRlciBlaW5lIEJveWdyb3VwIGdydWVuZGVuIGthbm4uCiAyLiBVZWJlcnJlZGUgZGllIGVyc3RlbiB2aWVyIEZyZXVuZGUsIGRpZSBkaXIgdWViZXIgZGVuIFdlZyBsYXVmZW4sCiAgICBkaWNoIGF1ZiBkZWluZW0gV2VnIHp1IFJlaWNodHVtLCBSdWhtIHVuZCBNYWVkY2hlbiB6dSBiZWdsZWl0ZW4uCiAzLiBCZXNvcmdlIGRpciBlaW5lIFB1ZGRpbmdzY2h1ZXNzZWwgc293aWUgZWluZSBzY2hhcmZlIFNjaGVyZSB1bmQKICAgIGdpYiBkYW1pdCBkZW4gQmFuZG1pdGdsaWVkZXJuIGNvb2xlIEhhYXJzY2huaXR0ZS4gV2VubiBrZWluZXIKICAgIHZvbiBldWNoIGJsb25kIGlzdCwgc3BpZWx0IGVpbiBwYWFyIFJ1bmRlbiB0aWMtdGFjLXRvZSwgdW0KICAgIGhlcmF1c3p1ZmluZGVuLCB3ZXIgYmxvbmQgc2VpbiBtdXNzLiBGYWVyYnQgZGVuIFZlcmxpZXJlciBibG9uZC4KIDQuIFN1Y2ggZGlyIGVpbmVuIHNjaG51bHppZ2VuIDcwZXItSmFocmUgSGl0IHdpZSB6LkIuIGVpbiBMaWVkCiAgICB2b24gIlRoZSBPc21vbmRzIiwgZGVuIGlociBhbHMgZXJzdGVuIFNvbmcgY292ZXJuIGtvZW5udC4gV2VubgogICAgZHUga2VpbmVuIHBhc3NlbmRlbiBIaXQgZmluZGVzdCwgbmltbSBlaW5mYWNoIGVpbmUgQmFsbGFkZS4KIDUuIFVlYnQgZGFzIFBsYXliYWNrIG1pdCBkaWVzZW0gU29uZyAtIGFiZXIgdWVidCBuaWNodCB6dSBsYW5nZSwKICAgIGRlbm4gZWluIGtvcnJla3QgZ2VzcGllbHRlcyBQbGF5YmFjayBpc3QgZWlnZW50bGljaCBuaWNodAogICAgd2lya2xpY2ggd2ljaHRpZy4KIDYuIFdlbm4gZXVlciBlcnN0ZXMgU3R1ZWNrIGVpbiBzY2huZWxsZXJlciBTb25nIGlzdCwgZXJmaW5kZXQKICAgIGVpbmlnZSB3aWxkZSB1bmQgdmVycnVlY2t0ZSBUYW56c2Nocml0dGUsIGRpZSBhdXMgdmllbGVuCiAgICBCZXdlZ3VuZ3N3aWVkZXJob2x1bmdlbiBiZXN0ZWhlbiwgdW0gZXMgZXVyZW4gRmFucyB6dSBlcmxlaWNoLQogICAgdGVybiwgZXVjaCB6dSBpbWl0aWVyZW4uIFdlbm4gZXMgc2ljaCBiZWkgZXVyZW0gZXJzdGVuIFNvbmcKICAgIGhpbmdlZ2VuIHVtIGVpbmUgQmFsbGFkZSBoYW5kZWx0LCB1ZWJ0IHVuYXVzZ2VnbGljaGVuIHVuZAogICAgdHJhdXJpZyB6dSBndWNrZW4uIFVlYnQgZWJlbmZhbGxzIGVpbmVuIGhlcmF1c2ZvcmRlcm5kZW4KICAgIFNjaGxhZnppbW1lcmJsaWNrLgogNy4gTGFzc3QgRm90b3Mgdm9uIGV1Y2ggYXVmbmVobWVuLiBVZWJlcnpldWd0IGV1Y2ggYWJlciB2b3JoZXIKICAgIGRhdm9uLCBkYXNzIGRlciBGb3RvZ3JhZiBCaWxkYmVhcmJlaXR1bmdzc29mdHdhcmUgYmVkaWVuZW4KICAgIGthbm4sIHVtIEZsZWNrZW4sIFBpY2tlbCB1bmQgdW5nZXdvZWhubGljaGUgSGF1dHVucmVpbmhlaXRlbgogICAgenUgYmVzZWl0aWdlbi4KIDguIEVyZmluZGUgZmFkZSB1bmQgbmljaHRzc2FnZW5kZSBMZWJlbnNsYWV1ZmUgZnVlciBkaWUgQmFuZC0KICAgIG1pdGdsaWVkZXIsIGRpZSBpaHIgaW4gZXVyZSBCaW9ncmFwaGllbiBmdWVyIGRpZSBQcmVzc2UgZWluLQogICAgZmxpZXNzZW4gbGFzc2VuIGtvZW5udC4gRWluIEJhbmRtaXRnbGllZCBrYW5uLCB3ZW5uIG5vdHdlbmRpZywKICAgIGRhcmluIGVpbmVuIEhpbndlaXMgYXVmIEhvbW9zZXh1YWxpdGFldCBnZWJlbi4KIDkuIFNvcmd0IGRhZnVlciwgZGFzcyBCaWxkZXIgdW5kIEFydGlrZWwgaW4gd29lY2hlbnRsaWNoIGVyc2NoZWktCiAgICBuZW5kZW4gVGVlbnktWmVpdHVuZ2VuIGFiZ2VkcnVja3Qgd2VyZGVuIC0gYXVjaCB3ZW5uIGRpZQogICAgZWluemlnZSBOZXVpZ2tlaXQgaXN0LCBkYXNzIGRlciBCbG9uZGUgc2ljaCBlaW5lbiBrbGVpbmVuCiAgICBIdW5kIGdla2F1ZnQgaGF0LiAgICAKMTAuIE5laG10IGVpbiBWaWRlbyBhdWYuIFZlcnNpY2hlcnQgZXVjaCwgZGFzcyBpaHIgZGVuIGJlc3RlbgogICAgQmVsZXVjaHRlciBkYWZ1ZXIgdmVycGZsaWNodGV0LCBkZW4gbWFuIGZ1ZXIgR2VsZCBrYXVmZW4ga2Fubi4KICAgIFdlbmRldCBpbiBkZW0gVmlkZW8gZGllIFRhbnp0ZWNobmlrZW4gYnp3LiBkZW4gU2NobGFmemltbWVyLQogICAgYmxpY2sgYXVzIFB1bmt0IDYuCjExLiBFcnNjaGVpbnQgdGFlZ2xpY2ggaW4gS2luZGVyLVRWLVNob3dzIGF1ZiBWSVZBLiBMYWVjaGVsdC4gTGFjaHQuCiAgICBNYWNodCBlaW5lbiB1bmJlZHJvaGxpY2hlbiBFaW5kcnVjay4KMTIuIFdhcnRldCBhdWYgZGVuIHNpY2hlciBrb21tZW5kZW4gTnVtbWVyIDEgSGl0LgoxMy4gV2llZGVyaG9sdCBkaWUgU2Nocml0dGUgNCBiaXMgMTIgYmlzIHp1IGRlbSBQdW5rdCwgd28gaWhyCiAgICBldWNoIGVudHdlZGVyIHJlaGFiaWxpdGllcnQgb2RlciBTb2xva2FycmllcmUgbWFjaHQsIHdhcyBhdWNoCiAgICBpbW1lciB6dWVyc3QgZWludHJldGVuIHdpcmQuCiAgICAKVGlwczoKLSBLZWluZXIgdm9uIGV1Y2ggbXVzcyBzaW5nZW4ga29lbm5lbgotIEJlc29yZ3QgZXVjaCBlaW5lbiBNYW5hZ2VyLCBkZW4gaWhyIHNwYWV0ZXIgdmVya2xhZ2VuIGtvZW5udAotIFdlbm4gZGllIFByZXNzZWJlcmljaHRlIHp1IGxhbmdzYW0ga29tbWVuLCBlcmZpbmRldCBlaW5lIEFmZmFlcmUKICBtaXQgZWluZW0gYXVzbGFlbmRpc2NoZW4gUG9wLVN0YXIKLSBJaHIgbXVlc3N0IGtyZWlzY2hlbmRlIFRlZW55LU1hZWRjaGVuIHRvbGwgZmluZGVuCi0gSGFidCBTcGFzcyBtaXQgd2VtIHVuZCB3YXMgaW1tZXIgZXVjaCBnZWZhZWxsdCwgYWJlciBiaXR0ZSBuaWNodAogIHdlbm4gZWluIEZvdG9ncmFmIGluIGRlciBOYWVoZSBpc3QuCgpFaW5rYXVmc2xpc3RlIC0gd2FzIER1IGJyYXVjaHN0OgotIDQgRnJldW5kZQotIFB1ZGRpbmdzY2h1ZXNzZWwKLSBzY2hhcmZlIFNjaGVyZQotIGJsb25kZSBIYWFydG9lbnVuZwotIE1hbWFzIFBsYXR0ZW5zYW1tbHVuZwotIFNwaWVnZWwgdW5kIEhhYXJidWVyc3RlCi0gdmVyc3RhZW5kbmlzdm9sbGVyLCBtaXRsZWlkaWdlciBGb3RvZ3JhZgotIGRlbiBiZXN0ZW4gQmVsZXVjaHRlciBpbSBMYW5kCi0gZ2V6d3VuZ2VuZXMgTGFlY2hlbG4KLSBkaXNrcmV0ZXIgRGVhbGVyCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRW5nbGlzaCBpcyB0b3VnaCBzdHVmZiAoTGluZmxhcywgMTYuIE1hciAyMDAxLCAwMDoyNjoxOCk6Cn4jISBybj1CaWVsZWZlbGQgcnQ9OTg0NjY1ODAzIHJnPXdpdHplCn4jISB0aWQ9OTg0NjY1ODAzCk1laW4gVGlwOiBFcnN0IGxlc2VuLCBkYW5uIGVybGVkaWd0IHNpY2ggZGllIEZsYXNjaGUgV2VpbiB2b24gYWxsZWluZS4KCkxpbmZsYXMsIHZlcnN1Y2h0IHNlaW5lIFB1cGlsbGVuIHVudGVyIEtvbnRyb2xsZSB6dSBrcmllZ2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVlcmRpZ3VuZyAoQW1hcnlsbGlzLCAxNi4gTWFyIDIwMDEsIDIwOjQ0OjQ4KToKMS4gS2xlYmUgZGV1dGxpY2ggc2ljaHRiYXIgZWluZW4gS3VrdWNrIGF1ZiBkZW4gU2FyZy4KMi4gR3JhdHVsaWVyZSBkZW4gRWx0ZXJuIGRlcyBWZXJzdG9yYmVuZW4sIGRhc3Mgc2llIGlocmVuIFNvaG4gdWViZXJsZWJ0CmhhYmVuLgozLiBUcm9lc3RlIGRpZSBXaXR3ZSBtaXQgZGVuIFdvcnRlbjogIkpldHp0IGxlaWRldCBlciB3ZW5pZ3N0ZW5zIG5pY2h0Cm1laHIgc28gYW4gc2VpbmVyIEltcG90ZW56LCBkZXIgQXJtZS4iCjQuIEJldHJldGUgZGVuIEZyaWVkaG9mIG1pdCBCYWRlaG9zZSwgVGF1Y2hlcm1hc2tlIHVuZCBGbG9zc2VuIHVuZAplcmtsYWVyZSwgZGFzcyBEdSBnbGVpY2ggbmFjaCBkZXIgQmVlcmRpZ3VuZyBzY2h3aW1tZW4gZ2VoZW4gd2lsbHN0Lgo1LiBCcmluZyBEZWluZW4gUHVkZWwgbWl0IHVuZCBsYXNzIGlobiwgd2VubiBkZXIgU2FyZyBpbnMgR3JhYiBnZWxhc3Nlbgp3aXJkLCAidG90ZW4gTWFubiIgc3BpZWxlbi4KNi4gVmVyZ2xlaWNoZSBhbSBvZmZlbmVuIFNhcmcgZGllIEtsZWlkdW5nIGRlcyBUb3RlbiBtaXQgZGVyIGVpZ2VuZW4uCjcuIE1hY2ggZGVyIFdpdHdlIHNvZm9ydCBuYWNoIGRlciBUcmF1ZXJyZWRlIGVpbmVuIEhlaXJhdHNhbnRyYWcuCjguIFJlaWNoZSAgQmFieWZvdG9zIHZvbiBkZW0gVmVyc3RvcmJlbmVuIGhlcnVtLgo5LiBTY2h1ZXR0bGUgZGllIEhhbmQgZGVyIFdpdHdlIG1pdCBlaW5lbSBlbGVrdHJpc2NoZW4gS2xpbmdsZXIuCjEwLiBFcmtsYWVyZSBkZXIgV2l0d2UgYXVmIGRlbSBIZWltd2VnLCBEdSBzZWlzdCBEaXIgbmljaHQgZ2FueiBzaWNoZXIsCmFiZXIgRHUgZ2xhdWJzdCwgZGVyIFRvdGUgaGFiZSBzaWNoIGJld2VndC4uLiAKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCZWVyZGlndW5nIChMaWFyYSwgMTYuIE1hciAyMDAxLCAyMDo0NzowNyk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9OTg0NzcxODg4IHJnPXdpdHplCn4jISB0aWQ9OTg0NzcxODg4CldhcyBpc3QgZWluIGVsZWt0cmlzY2hlciBLbGluZ2xlcj8KCkxaCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJlZXJkaWd1bmcgKEFtYXJ5bGxpcywgMTYuIE1hciAyMDAxLCAyMDo0OTozOSk6Cn4jISBybj1MaWFyYSBydD05ODQ3NzIwMjcgcmc9d2l0emUKfiMhIHRpZD05ODQ3NzE4ODgKS2VpbmUgQWhudW5nLCBoYWIgZGFzIGF1cyBkZW4gTmV3cyBoaWVyaGVyIGtvcGllcnQuLi4gOikKQWJlciBpY2gga2FubiBtaXIgbGViaGFmdCB2b3JzdGVsbGVuLCB3YXMgZGVyIGJld2lya3QgOikKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJlZXJkaWd1bmcgKExpbmZsYXMsIDE2LiBNYXIgMjAwMSwgMjE6MDg6NTUpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTk4NDc3MjE3OSByZz13aXR6ZQp+IyEgdGlkPTk4NDc3MTg4OApXYWhyc2NoZWlubGljaCBlaW5lIGVoZXIgZWlnZW5hcnRpZ2UgVWViZXJzZXR6dW5nIGF1cyBkZW0gRW5nbGlzY2hlbi4KSWNoIGRlbmtlIGVzIGlzdCBzbyBlaW4ga2xlaW5lcyBNZXRhbGx0ZWlsIGdlbWVpbnQsIHdlbGNoZXMgbWFuIHNpY2ggYW4gZGVyCkhhbmRmbGFlY2hlIGJlZmVzdGlndCB1bmQgd2VsY2hlcyBhdWYgSGFlbmRlZHJ1Y2sgZWluZW4ga2xlaW5lbiBlbGVrdHJpc2NoZW4KU3Ryb21zdG9zcyB2ZXJzZXR6dC4gQmVrYW5udCBhdXMgdmllbGVuIHNjaGxlY2h0ZW4gS2luZGVyc2VyaWVuIGF1cyBkZW4gVVNBIGluCmRlbiA4MCdlcm4uCgpMaW5mbGFzLCB3aWxsIEt1aGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCZWVyZGlndW5nIChWaWN0aW0sIDE2LiBNYXIgMjAwMSwgMjE6MTI6MTkpOgp+IyEgcm49TGluZmxhcyBydD05ODQ3NzMzMzUgcmc9d2l0emUKfiMhIHRpZD05ODQ3NzE4ODgKJ2VsZWN0cmljIGJ1enplcicsIHVtIGdlbmF1IHp1IHNlaW4uIGthbm4gbWFuIGFscyAnZWxla3RyaXNjaGUga2xpbmdlbCcKdWViZXJzZXR6ZW4sIG11c3MgbWFuIGFiZXIgbmljaHQgLi4uCgotIFRlc3RpZSBWaWN0aW0gLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJsa29lbmlnIDIwMDEgKEdvbGFzLCAyMS4gTWFyIDIwMDEsIDE4OjU3OjAxKToKV2VyIHJlaXRldCBzbyBzcGFldCBkdXJjaCBOYWNodCB1bmQgV2luZD8KRGFzIGlzdCBkZXIgV2FobnNpbm4gbWl0IHNlaW5lbSBSaW5kLgpFciBoYWVsdCBkYXMgVGllciByZWNodCBmZXN0IHVuZCBzdGFyaywKZXIgd2lsbCBpbnMgSGlybiB1bmQgUnVlY2tlbm1hcmsuCgpEdSBsaWViZXMgUmluZCwga29tbSBzcGllbCBtaXQgbWlyLApnYXIgc2Nob2VuZSBFcnJlZ3VuZyB2ZXJzY2hhZmYgaWNoIERpciEKRXJyZWdlciwgd2llIER1IHNpZSBuaWUgZ2VrYW5udApmcmlzY2ggaW1wb3J0aWVydCBhdXMgRW5nZWxhbmQuCgoiRG9jaCBzYWcsIHdhcyBiaXJnc3QgRHUgc28gYmFuZyBEZWluIEdlc2ljaHQ/IgoiS2VubnN0LCBXYWhuc2lubiwgRHUgZGVuIEZ1bmtlIG5pY2h0PwpEZXIgcmVkZXQgc2Nob24gc2VpdCBlaCB1bmQgamVoLAppbiBEZXV0c2NobGFuZCBnaWJ0J3Mga2VpbiBCU0UuIgoKIkR1IGR1bW1lIEt1aCwgaG9lcnRlc3QgRHUgbmljaHQsCndpZSBBbmRyZWEgRmlzY2hlciBzaWNoIGxhdWZlbmQgdmVyc3ByaWNodD8KRXJzdCBoYXQgc2llIGF1ZiBkZXV0c2NoZSBXdWVyc3RlIGdlc2Nod29yZW4sCmpldHp0IHJlZGV0IHNpZSBudXIgbm9jaCB2b24gU2VwYXJhdG9yZW4iLgogIAoiQWNoLCBibGVpYiBnYW56IHJ1aGlnIiwgc3ByYWNoIGRhIGRhcyBSaW5kLAoiSW0gQmxhZXR0ZXJ3YWxkZSwgZGEgc2FldXNlbHQgZGVyIFdpbmQuCldhcyBzY2hlcmVuIG1pY2ggQlNFIHVuZCBFVT8KSWNoIGJpbiB1bmQgYmxlaWJlICduZSBnbHVlY2tsaWNoZSBLdWguIgogIAoiVW5kIHNvIHZlcmFyc2NodCBJaHIgYWxsZSBMZXV0ZT8KSWhyIHNlaWQgamEgZGVzIFdhaG5zaW5ucyBmZXR0ZSBCZXV0ZSEKRG9jaCB3YXJ0ZSwgYXVjaCBEaWNoIGVycmVnZSBpY2ggYmFsZCwKdW5kIGJpc3QgRHUgbmljaHQgd2lsbGlnLCBzbyBicmF1Y2ggaWNoIEdld2FsdCEiCiAgCiJKZXR6dCByZWljaHQncyEgVmVybGFzc2Ugc29mb3J0IG1laW5lbiBTdGFsbCEKU29uc3Qgc2NobWVpc3MgaWNoIERpY2ggaW4gZGVuIFNjaGxhY2h0YWJmYWxsLgpEYW5uIG5pbW10IGRhcyBTY2hpY2tzYWwgc2VpbmVuIExhdWY6CkR1IHdpcnN0IFRpZXJtZWhsIHVuZCBpY2ggZnJlc3MnIERpY2ggYXVmISIKCkRlbSBXYWhuc2lubiBncmF1c3RlLCBlciBmbHVlY2h0ZXQgZ2VzY2h3aW5kCnp1cnVlY2sgbmFjaCBFbmdsYW5kLiBEYXMgZ2x1ZWNrbGljaGUgUmluZAplcnJlaWNodCBkZXMgQmF1ZXJuaG9mZXMgR2VzdGFkZQp1bmQgd2FyZCB0YWdzIGRyYXVmIHNjaG9uIHp1ciBSb3VsYWRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR290dCBlcnNjaHVmIGRpZSBUaWVyZSB1bmQgZGVuIE1hbm4hIChIaWdodCwgMjEuIE1hciAyMDAxLCAyMDozMjoxNik6CkdvdHQgZXJzY2h1ZiBkZW4gRXNlbCB1bmQgc2FndGUgenUgaWhtOgoiRHUgYmlzdCBlaW4gRXNlbC4gRHUgd2lyc3QgdW5lbnR3ZWd0IHZvbiBtb3JnZW5zIGJpcyBhYmVuZHMgYXJiZWl0ZW4gdW5kIAogc2Nod2VyZSBTYWNoZW4gYXVmIGRlaW5lbSBSdWVja2VuIHRyYWdlbi4gRHUgd2lyc3QgR3JhcyBmcmVzc2VuIHVuZCAKIHdlbmlnIGludGVsbGlnZW50IHNlaW4uIFVuZCBEdSB3aXJzdCBmdWVuZnppZyBKYWhyZSBsZWJlbi4iCkRhcmF1ZiBlbnRnZWduZXRlIGRlciBFc2VsOgoiRnVlbmZ6aWcgSmFocmUgc28genUgbGViZW4gaXN0IHZpZWwgenUgdmllbCwgZ2liJyBtaXIgYml0dGUgbmljaHQgbWVociAKIGFscyBkcmVpc3NpZyBKYWhyZSEiClVuZCBlcyB3YXIgc28uCkRhbm4gZXJzY2h1ZiBHb3R0IGRlbiBIdW5kIHVuZCBzcHJhY2ggenUgaWhtOgoiRHUgYmlzdCBlaW4gSHVuZC4gRHUgd2lyc3QgdWViZXIgZGllIEd1ZXRlciBkZXIgTWVuc2NoaGVpdCB3YWNoZW4sIGRlcmVuIAogZXJnZWJlbnN0ZXIgRnJldW5kIGR1IHNlaW4gd2lyc3QuIER1IHdpcnN0IGRhcyBlc3Nlbiwgd2FzIGRlciBNZW5zY2ggCiB1ZWJyaWdsYWVzc3QgdW5kIDI1IEphaHJlIGxlYmVuLiIKRGVyIEh1bmQgYW50d29ydGV0ZToKR290dCwgMjUgSmFocmUgc28genUgbGViZW4sIGlzdCB6dSB2aWVsLiBCaXR0ZSBuaWNodCBtZWhyIGFscyB6ZWhuIEphaHJlIQpVbmQgZXMgd2FyIHNvLgpEYW5uIGVyc2NodWYgR290dCBkZW4gQWZmZW4gdW5kIHNwcmFjaDoKIkR1IGJpc3QgZWluIEFmZmUuIER1IHNvbGxzdCB2b24gQmF1bSB6dSBCYXVtIHNjaHdpbmdlbiB1bmQgRGljaCB2ZXJoYWx0ZW4gCiB3aWUgZWluIElkaW90LiBEdSB3aXJzdCBsdXN0aWcgc2VpbiB1bmQgc28gc29sbHN0IER1IGZ1ZXIgendhbnppZyBKYWhyZSAjCiBsZWJlbi4iCkRlciBBZmZlIHNwcmFjaDoKIkdvdHQsIHp3YW56aWcgSmFocmUgYWxzIENsb3duIGRlciBXZWx0IHp1IGxlYmVuLCBpc3QgenUgdmllbC4gQml0dGUgZ2liIAogbWlyIG5pY2h0IG1laHIgYWxzIHplaG4gSmFocmUuIgpVbmQgZXMgd2FyIHNvLgpTY2hsaWVzc2xpY2ggZXJzY2h1ZiBHb3R0IGRlbiBNYW5uIHVuZCBzcHJhY2ggenUgaWhtOgoiRHUgYmlzdCBlaW4gTWFubiwgZGFzIGVpbnppZ2UgcmF0aW9uYWxlIExlYmV3ZXNlbiwgZGFzIGRpZSBFcmRlIGJld29obmVuIAogd2lyZC4gRHUgd2lyc3QgRGVpbmUgSW50ZWxsaWdlbnogbnV0emVuLCB1bSBkaXIgZGllIGFuZGVyZW4gR2VzY2hvZXBmZSAKIHVudGVydGFuIHp1IG1hY2hlbi4gRHUgd2lyc3QgZGllIEVyZGUgYmVoZXJyc2NoZW4gdW5kIGZ1ZXIgendhbnppZyBKYWhyZSAKIGxlYmVuISIKRGFyYXVmIHNwcmFjaCBkZXIgTWFubjoKIkdvdHQsIE1hbm4genUgc2VpbiBmdWVyIG51ciB6d2FuemlnIEphaHJlIGlzdCBuaWNodCBnZW51Zy4gQml0dGUgZ2liIG1pciAKIGRpZSB6d2FuemlnIEphaHJlLCBkaWUgZGVyIEVzZWwgYXVzc2NobHVnLCBkaWUgZnVlbmZ6ZWhuIGRlcyBIdW5kZXMgdW5kIAogZGllIHplaG4gZGVzIEFmZmVuLiIKVW5kIHNvIHNvcmd0ZSBHb3R0IGRhZnVlciwgZGFzcyBkZXIgTWFubiB6d2FuemlnIEphaHJlIGFscyBNYW5uIGxlYnQsIGRhbm4gCmhlaXJhdGV0IHVuZCBkcmVpc3NpZyBKYWhyZSBhbHMgRXNlbCB2b24gbW9yZ2VucyBiaXMgYWJlbmRzIGFyYmVpdGV0IHVuZCAKc2Nod2VyZSBMYXN0ZW4gdHJhZWd0LgpEYW5uIHdpcmQgZXIgS2luZGVyIGhhYmVuIHVuZCBmdWVuZnplaG4gSmFocmUgd2llIGVpbiBIdW5kIGxlYmVuLCBkYXMgSGF1cyAKYmV3YWNoZW4gdW5kIGRhcyBlc3Nlbiwgd2FzIGRpZSBGYW1pbGllIHVlYnJpZyBsYWVzc3QuCkRhbm4sIGltIGhvaGVuIEFsdGVyLCBsZWJ0IGVyIHplaG4gSmFocmUgYWxzIEFmZmUsIHZlcmhhZWx0IHNpY2ggd2llIGVpbiAKSWRpb3QgdW5kIGFtdWVzaWVydCBzZWluZSBFbmtlbGtpbmRlci4KVW5kIHNvIGlzdCBlcyBiaXMgaGV1dGUuLi4Kb2RlciA/IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdvdHQgZXJzY2h1ZiBkaWUgVGllcmUgdW5kIGRlbiBNYW5uISAoR2xvaW5zb24sIDIxLiBNYXIgMjAwMSwgMjA6NDM6MjMpOgp+IyEgcm49SGlnaHQgcnQ9OTg1MjAzMTM2IHJnPXdpdHplCn4jISB0aWQ9OTg1MjAzMTM2CkhtLiBEZXIgU2NobHVzcyBnZWZhZWxsdCBtaXIgbmljaHQuIEljaCB3dWVyZCBzYWdlbiwgZXIgbGVidCB6dWVyc3QgMTUgSmFocmUKYWxzIElkaW90IChlcmlubmVydCBpaHIgRXVjaCBub2NoIGFuIGRpZSBEaW5nZSBkaWUgSWhyIGFscyBLaW5kZXIgdmVyemFwZnQKaGFidD8gVW5kIGRpZSBQdWJlcnRhZXQgZXJzdCAuLi4pIHVuZCBnYW56IHp1bSBTY2hsdXNzIGFscyBNYW5uIDspCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdvdHQgZXJzY2h1ZiBkaWUgVGllcmUgdW5kIGRlbiBNYW5uISAoQm9pbmcsIDIyLiBNYXIgMjAwMSwgMDk6MzI6MjEpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTg1MjAzODAzIHJnPXdpdHplCn4jISB0aWQ9OTg1MjAzMTM2Cld1bnNjaGRlbmtlbiwgR2xvaW5zb24gLi4uIFd1bnNjaGRlbmtlbiAuLi4gOikKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVydWVobXRlIEZlaGxlaW5zY2hhZXR6dW5nZW46IChIaWdodCwgMjIuIE1hciAyMDAxLCAyMjoxMzoxMCk6ClNwaWVnZWwgT25saW5lIGJpZXRldCBpbiBzZWluZXIgbmV1ZXN0ZW4gU3BlY2lhbC1BdXNnYWJlIGVpbmUgVWViZXJzaWNodCBkZXIKYmVydWVobXRlc3RlbiBGZWhscHJvZ25vc2VuIGZ1ZXIgZGFzIDIwLiBKYWhyaHVuZGVydC4KTnVyIHp3ZWkgQmVpc3BpZWxlIGhpZXJhdXM6CkVzIGdpYnQgbmljaHRzIE5ldWVzIG1laHIuIEFsbGVzLCB3YXMgbWFuIGVyZmluZGVuIGthbm4sIGlzdCBzY2hvbiBlcmZ1bmRlbgp3b3JkZW4uIApDaGFybGVzIEguIER1ZWxsLCBVUy1QYXRlbnRhbXQgMTg5OQpUdXQgbWlyIGxlaWQsIGFiZXIgaWNoIGthbm4gbWlyIGJlaW0gYmVzdGVuIFdpbGxlbiBuaWNodCB2b3JzdGVsbGVuLCB3YXMKVS1Cb290ZSBpbSBLcmllZyBiZXdpcmtlbiBrb2VubnRlbiAtIGF1c3NlciwgZGFzcyBzaWUgaWhyZSBCZXNhdHp1bmdlbiBkZW0KRXJzdGlja3VuZ3N0b2RlIGF1c3NldHplbi4KSC4gRy4gV2VsbHMsIFNjaHJpZnRzdGVsbGVyLCAxOTAxCkRvY2ggZXMgZ2lidCBnZXJhZGUgaW4gZGVuIEJlcmVpY2hlbiBDb21wdXRlciB1bmQgVGVsZWtvbXVuaWthdGlvbiBub2NoCm1hcmthbnRlcmUgRmVobGVpbnNjaGFldHp1bmdlbiwgZGllIGluIGRlciBMaXN0ZSBkZXMgU1BJRUdFTCBPbmxpbmUgZmVobGVuIHVuZApkaWUgYXVmIGFtZXJpa2FuaXNjaGVuIFNpdGVzIGdlcm5lIHppdGllcnQgd2VyZGVuLgpTbyBzb2xsIEJpbGwgR2F0ZXMgaW0gSmFociAxOTgxIGRpZSBCZWhhdXB0dW5nIGF1Zmdlc3RlbGx0IGhhYmVuOgoiNjQwIEtCeXRlcyAoQXJiZWl0c3NwZWljaGVyKSBpc3QgYWxsZXMsIHdhcyBpcmdlbmRlaW5lIEFwcGxpa2F0aW9uIGplbWFscwpiZW5vZXRpZ2VuIHNvbGx0ZSIuCkltIEphaHIgMTk3NyBiZWhhdXB0ZXRlIEtlbiBPbHNvbiwgUHJhZXNpZGVudCwgVm9yc3RhbmQgdW5kIEdydWVuZGVyIHZvbgpEaWdpdGFsIEVxdWlwbWVudDoKIkVzIGdpYnQga2VpbmVuIEdydW5kLCB3YXJ1bSBpcmdlbmQgamVtYW5kIGluIGRlciBadWt1bmZ0IGVpbmVuIENvbXB1dGVyIGJlaQpzaWNoIHp1IEhhdXNlIGhhYmVuIHNvbGx0ZSIuClRob21hcyBXYXRzb24sIFZvcnN0YW5kc3ZvcnNpdHplbmRlciB2b24gSUJNIG1laW50ZSBpbSBKYWhyIDE5NDM6CiJJY2ggZGVua2UsIGRhc3MgZXMgZWluZW4gV2VsdG1hcmt0IGZ1ZXIgdmllbGxlaWNodCBmdWVuZiBDb21wdXRlciBnaWJ0Ii4KRWluIEluZ2VuaWV1ciBkZXIgRm9yc2NodW5nc2FidGVpbHVuZyBBZHZhbmNlZCBDb21wdXRpbmcgU3lzdGVtcyBEaXZpc2lvbgooSUJNKSBrb21tZW50aWVydGUgMTk2OCBkZW4gTWlrcm9jaGlwOgpTY2hvZW4sIGFiZXIgd296dSBpc3QgZGFzIERpbmcgZ3V0PwpFaW4gZnJ1ZWhlcyAoMTg3NikgaW50ZXJuZXMgUGFwaWVyIGRlciBXZXN0ZXJuIFVuaW9uIHp1bSBUaGVtYSBUZWxlZm9uOgpEaWVzZXMgVGVsZWZvbiBoYXQgZWluZmFjaCB6dSB2aWVsZSBNYWVuZ2VsLCBhbHMgZGFzcyBtYW4gZXMgZnVlciBad2Vja2UgZGVyCktvbW11bmlrYXRpb24gZWluc2V0emVuIGtvZW5udGUuIERhcyBHZXJhZXQgaXN0IHdlcnRsb3MgZnVlciB1bnMuClVuZCBkZXIgQXBwbGUtR3J1ZW5kZXIgU3RldmUgSm9icyBiZXJpY2h0ZXQgdWViZXIgc2VpbmUgZXJzdGVuIFNjaHJpdHRlIGltCkdlc2NoYWVmdHNsZWJlbjoKIldpciBnaW5nZW4genUgQXRhcmkgdW5kIHNhZ3RlbixgSGV5LCB3aXIgaGFiZW4gaGllciBkaWVzZXMgdG9sbGUgRGluZywKdGVpbHdlaXNlIHNvZ2FyIGF1cyBJaHJlbiBUZWlsZW4gZ2ViYXV0LiBXb2xsZW4gU2llIHVucyBmaW5hbnppZWxsCnVudGVyc3R1ZXR6ZW4/IE9kZXIgdmllbGxlaWNodCB1ZWJlcmdlYmVuIHdpciBJaG5lbiBkZW4gUmVjaG5lciBnYW56IGVpbmZhY2guCldpciB3b2xsZW4gbnVyIGRhYmVpc2VpbiEgWmFobGVuIFNpZSB1bnMgZWluIEdlaGFsdCB1bmQgd2lyIGFyYmVpdGVuIGZ1ZXIKU2llLicgQXRhcmkgc2FndGUgbmVpbi4KQWxzbyBnaW5nZW4gd2lyIHp1IEhld2xldHQgUGFja2FyZCB1bmQgZGllIG1laW50ZW46IGBIZXksIHdpciBicmF1Y2hlbiBFdWNoCm5pY2h0LiBJaHIgaGFidCBqYSBub2NoIG5pY2h0IGVpbm1hbCBkYXMgQ29sbGVnZSBhYmdlc2NobG9zc2VuJy4KSm9icyB1bmQgV296bmlhayBncnVlbmRldGVuIGRhcmF1ZmhpbiBpaHIgZWlnZW5lcyBVbnRlcm5laG1lbiB1bmQgYmF1dGVuIGRlbgplcnN0ZW4gSGVpbWNvbXB1dGVyIGluIGVpZ2VuZXIgUmVnaWUuCkF0YXJpIHVuZCBIZXdsZXR0LVBhY2thcmQgZGFnZWdlbiBkdWVyZnRlbiBKYWhyemVobnRlIHNwYWV0ZXIgYWVobmxpY2hlCkdlZGFua2VuIGhlZ2VuLCB3aWUgZWluc3QgZGVyIEJhbmtlciwgZGVyIGRhenUgYXVmZ2Vmb3JkZXJ0IHd1cmRlLCBlaW5lIGRlcgplcnN0ZW4gT2VsYm9ocnVuZ2VuIGluIGRlbiBVU0EgenUgZmluYW56aWVyZW46Ck5hY2ggT2VsIGJvaHJlbj8gU2llIG1laW5lbiBMb2VjaGVyIGluIGRpZSBFcmRlIGJvaHJlbiB1bmQgaG9mZmVuLCBkYXNzIE9lbApyYXVza29tbXQ/IFNpbmQgU2llIHZlcnJ1ZWNrdD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCZXJ1ZWhtdGUgRmVobGVpbnNjaGFldHp1bmdlbjogKEdsb2luc29uLCAyMy4gTWFyIDIwMDEsIDA2OjA0OjA3KToKfiMhIHJuPUhpZ2h0IHJ0PTk4NTI5NTU5MCByZz13aXR6ZQp+IyEgdGlkPTk4NTI5NTU5MAo+IEguIEcuIFdlbGxzLCBTY2hyaWZ0c3RlbGxlciwgMTkwMQpOdW4sIHVudGVyIGRlciBWb3JhdXNzZXR6dW5nLCBkYXNzIHNpY2ggYW5kZXJlIGF1ZiBlaW5lIHNvbGNoIGZpZXNlCktyaWVnc2Z1ZWhydW5nIGZ1ZXIgZGVuIEZhbGwgZGVyIEZhZWxsZSBlaW5zdGVsbGVuIHN0aW1tdCBkYXMgYXVjaCAtIHdlbGNoZQpDaGFuY2UgaGF0dGVuIGRldXRzY2hlIFRhdWNoYm9vdGUgbmFjaCA0MS80MiBzY2hvbiBub2NoIGdlZ2VuIGRlbiBSYWRhciB1bmQKZGllIHdhc3NlcmJvbWJlbmdlcnVlc3RldGVuIEtyZXV6ZXIuIFVuZCBkaWUgUm9sbGUgZGVyIFUtQm9vdGUgaGV1dHp1dGFnZSBpc3QKd29obCBrYXVtIGVpbmUgZGF1ZXJoYWZ0IGtyaWVnc3JlbGV2YW50ZSAoc2Nob2VuLCBlaW5lIG1vYmlsZSBBYnNjaHVzc2Jhc2lzCi4uLiBhYmVyIEguRy5XZWxscyBrYW5udGUgZ2x1ZWNrbGljaGVyd2Vpc2UgYXVjaCBudXIgVG9kZXNzdHJhaGxlbiB1bmQga2VpbmUKS2VybndhZmZlbikuCj4gSW0gSmFociAxOTc3IGJlaGF1cHRldGUgS2VuIE9sc29uLCBQcmFlc2lkZW50LCBWb3JzdGFuZCB1bmQgR3J1ZW5kZXIgdm9uCkVpbmUgU3RhdGlzdGlrIGlyZ2VuZCBlaW5lcyBibG9lZGVuIEJ1bmRlc2FtdGVzIGJlaGF1cHRldCwgZGFzcyBjYS4gNzAlIGRlcgpkZXV0c2NoZW4gQmV2b2Vsa2VydW5nIGtlaW5lbiBQQyAoISkgenUgSGF1c2UgaGFiZW4gb2RlciBudXR6ZW4uIEFscwpzdWVjaHRpZ2VyIE11ZGRlciBrYW5uIGljaCBkYXMgbmF0dWVybGljaCBudXIgbWl0IGRlciBhbmRlcmVuIEhhZWxmdGUgbWVpbmVzCnNjaGl6b3BocmVuZW4gU2VsYnN0IG5hY2h2b2xsemllaGVuLCBhYmVyIG1hbCBlaHJsaWNoIC0gd296dSBicmF1Y2h0Ck90b28tTm9ybWFsLVZlcmJyYXVjaGVyIGVpbmVuIENvbXB1dGVyIChuaWNodCB2ZXJnZXNzZW4gLSBNci4gT2xzb24gbWVpbnRlCnNpY2hlcmxpY2ggZGVyIFJlY2huZXIgYWxzIEFyYmVpdHNnZXJhZXQpIGJlaSBzaWNoIHp1IEhhdXNlPwoKTmFqYSwgdW5kIHdhcyBkaWUgQmFua2VyIGJldHJpZmZ0IC4uLiB3ZW5uIGRhIGtlaW4gR2VvbG9nZSBtaXQgaW4gZGVyIFRydXBwZQppc3QgaGFldHQgaWNoIGdlbmF1c28gcmVhZ2llcnQuIFVuZCBpY2ggd2V0dGUgZXMgd3VyZGUgdmllbCBHZWxkIGZ1ZXIgc2lubmxvc2UKTG9lY2hlciBpbiBkZW4gU2FuZCBnZXNldHp0LiBCencuOiBSZWNoZXJjaGllciBtYWwsIHdpZSB2aWVsZSBoZXV0aWdlClRoZXJtYWxiYWVkZXIgdXJzcHJ1ZW5nbGljaGUgT2VsL0dhc2JvaHJ1bmdlbiBzaW5kLgoKR2xvaW4oc29uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCZXJ1ZWhtdGUgRmVobGVpbnNjaGFldHp1bmdlbjogKEhpZ2h0LCAyMy4gTWFyIDIwMDEsIDEzOjQ5OjA3KToKfiMhIHJuPUdsb2luc29uIHJ0PTk4NTMyMzg0NyByZz13aXR6ZQp+IyEgdGlkPTk4NTI5NTU5MAoqc2lnaCogaW1tZXJ3aWVkZSBzY2hvZW4genUgc2VoZW4gZGFzIG1hbmNoZSBsZXV0ZSBqZWRlbiBtaXN0IGVybnN0bmVobWVuIAoKaGlnaHQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJlcnVlaG10ZSBGZWhsZWluc2NoYWV0enVuZ2VuOiAoQmFtYnVsa28sIDIzLiBNYXIgMjAwMSwgMTU6MTI6MjQpOgp+IyEgcm49UGF0cnluIHJ0PTk4NTM1NTc0OCByZz13aXR6ZQp+IyEgdGlkPTk4NTI5NTU5MApKYS4uLnZvciBhbGxlbSBzaW5kIFUtQm9vdGUgc2VociBlZmZla3RpdiBnZWdlbiBqYXBhbmlzY2hlIEZpc2NoZXJib290ZS4uLi4uCi4uLndhciBkYXMgZ2VzY2htYWNrbG9zPwoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1LUyAoQm9pbmcsIDI2LiBNYXIgMjAwMSwgMTE6MTU6NTEpOgpOZXVzdGUgd2lzc2Vuc2NoYWZ0bGljaGUgRXJrZW5udG5pczogRGllIE1hdWwtdW5kLUtsYXVlbi1TZXVjaGUga2FubgpuaWNodCBkdXJjaCBNaWNyb3NvZnQgT3V0bG9vayB1ZWJlcnRyYWdlbiB3ZXJkZW4hCkhpZXIgZGVyIExpbms6IGh0dHA6Ly93d3cuc2F0aXJld2lyZS5jb20vbmV3cy8wMTAzL291dGxvb2suc2h0bWwKCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1pdCBNdXNpayBnZWh0IGFsbGVzIGJlc3Nlci4uLiAoV2FyZ29uLCAyNy4gTWFyIDIwMDEsIDE4OjU2OjQxKToKQW4gQUQmRCBjYXJvbCB0byB0aGUgdHVuZSBvZiAiamluZ2xlIGJlbGxzIgoKICAgICAiUklORyBUSEVJUiBCRUxMUyIKICAgCiBTbGFzaGluZyB0aHJvdWdoIHRoZSBPcmNzCldpdGggYSBnb29kIHR3by1oYW5kZWQgYmxhZGUKT3ZlciBjb3Jwc2VzIHdlIGdvCkFuZCB0aHJvdWdoIHRoZSBnb3JlIHdlIHdhZGUKTWFjZSBvbiBoZWxtZXQgcmluZ3MKTWFraW5nIGJvZGllcyBmbHkKV2hhdCBmdW4gdG8gc2luZyBvdXIgU0xBWUlORyBzb25nCkFuZCB3YXRjaCB0aGVzZSBzdWNrZXJzIGRpZSEgCgpDaG9ydXM6IApPaCwgcmluZyB0aGVpciBiZWxscyB3aXRoIHN3b3JkcyBhbmQgc3BlbGxzIApEb24ndCBsZXQgJ2VtIGdldCBhd2F5ISAKV2UncmUgYnJhdmUgYW5kIGJvbGQgZm9yIGZhbWUgYW5kIGdvbGQKV2UnbGwgbWFrZSBhIGxvdCB0b2RheSEgCk9oLCByaW5nIHRoZWlyIGJlbGxzIHdpdGggc3dvcmRzIGFuZCBzcGVsbHMgCkRvbid0IGxldCAnZW0gZ2V0IGF3YXkhIApXZSdsbCBoYWNrIGFuZCBzbGFzaCBhbmQgYmxhc3QgYW5kIHRyYXNoICBBbmQKYmxvdyB0aGVzZSBkdWRlcyBhd2F5ISAKCkNyYXNoaW5nIHRocm91Z2ggdGhlIGRvb3IKSW50byB0aGUgZHJhZ29uJ3Mgbm9zZQpPdXIgbWFnZSB3aGlwcyBvdXQgYSBDb25lIG9mIENvbGQKQW5kIG91dCBpdHMgZmlyZSBnb2VzIQpFbHZlbiBib3dzdHJpbmdzIHNpbmcKTWFraW5nIGJhbHJvZ3MgZmFsbApBbmQgb3VyIHRoaWVmIGZpbmRzIGEgc2VjcmV0IGRvb3IKSW50byB0aGUgdHJlYXN1cmUgaGFsbCEgCihjaG9ydXMpClRoZW4gYXBwZWFycyB0aGUgTGljaApXaXRoIGhpcyBkZW1vbiBndWFyZApPdXIgd2l6YXJkIHlhd25zIGFuZCB3aXNoZXMKV2UnZCBydW4gaW50byBzb21ldGhpbmcgSEFSRC4uLgpIZSBiZWdpbnMgdG8gY2FzdApIaXMgMTl0aCBsZXZlbCBzcGVsbApUaGF0IGRhbW4gTGljaCB0aHJvd3MgYSBHYXRlIGF0IHVzCkFuZCBkcm9wcyB1cyBhbGwgaW4gSGVsbCEgCihDaG9ydXMpCldlIGFwcGVhciBpbiBIZWxsCkluIGZyb250IG9mIFNhdGFuJ3MgVGhyb25lCk91ciBjbGVyaWMgd2F2ZXMgdXMgb3V0IHRoZSBkb29yCkFuZCB0YWtlcyBoaW0gb24gYWxvbmUhClNhdGFuJ3MgbGVnaW9ucyBkb24ndApXYW50IHRvIGxldCB1cyBnbwpPdXIgVGVjaG5vIHB1bGxzIGEgYmF6b29rYSBvdXQKQW5kIE5VS0VTICdlbSAndGlsIHRoZXkgR0xPVyEgCgpPaCwgcmluZyB0aGVpciBiZWxscyB3aXRoIHByYXllcnMgYW5kIHNwZWxscyAKRG9uJ3QgbGV0ICdlbSBnZXQgYXdheSEgCldlJ3JlIGJyYXZlIGFuZCBib2xkIGFuZCBDUkFaRUQsIHdlJ3JlIHRvbGQgClRvIHRoaW5rIHdlJ2xsIGxpdmUgdGhlIGRheSEgCk9oLCByaW5nIHRoZWlyIGJlbGxzIHdpdGggc3dvcmRzIGFuZCBzaGVsbHMgCkRvbid0IGxldCAnZW0gZ2V0IGF3YXkhIApXZSdsbCBoYWNrIGFuZCBzbGFzaCBhbmQgYmxhc3QgYW5kIHRyYXNoICBBbmQKYmxvdyB0aGVzZSBkdWRlcyBhd2F5ISAKWWVzLCB3ZSdsbCBoYWNrIGFuZCBzbGFzaCBhbmQgYmxhc3QgYW5kIHRyYXNoCiBBbmQgZHJhZyBvdXIgbG9vdCBhd2F5ISEKCihRdWVsbGU6IGFsdC5nYW1lcy5hZG5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFsIHdpZWRlciB3YXMgYXVzIGRlLmFsdC5uZXRkaWdlc3QgKEZvb2JhciwgMjkuIE1hciAyMDAxLCAwMjowNTo0Myk6CiBGcm9tOiBXZXJuZXIgQm9laG5rZSA8dXNlbmV0LWh3YkBody1ib2VobmtlLmRlPgogTmV3c2dyb3VwczogZGUudGFsay5saWViZXNha3QKIFN1YmplY3Q6IFdhcnVtIG1hbiBzZWluZW4gSHVuZCBuaWNodCBTZXggbmVubmVuIHNvbGx0ZS4KIERhdGU6IFR1ZSwgMjcgTWFyIDIwMDEgMjI6NDA6MjMgKzAxMDAKCgogSmVkZXIgZGVyIGVpbmVuIEh1bmQgaGF0LCBuZW5udCBpaG4gQmVsbG8gb2RlciBIYXNzby4gVW0gCiBlaW5lbiBuaWNodCBzbyBhbGx0YWVnbGljaGVuIE5hbWVuIGZ1ZXIgbWVpbmVuIEh1bmQgenUgaGFiZW4sIAogaGFiZSBpY2ggaWhuIGRhbWFscyAiU2V4IiBnZW5hbm50IC0gZXMgd2FyIGVpbiBGZWhsZXIsIHdpZSAKIHNpY2ggc3BhZXRlciBoZXJhdXNzdGVsbGVuIHNvbGx0ZS4KCiBBbHMgaWNoIGF1ZiBkaWUgR2VtZWluZGUgZ2luZywgdW0gaWhuIG5hY2ggZGVtIFVtenVnIGJlaSAKIGRlciBIdW5kZXN0ZXVlciBhbnp1bWVsZGVuLCBzYWd0ZSBpY2ggZGVtIEJlYW10ZW4sIGRhc3MgCiBpY2ggbWVpbmUgU3RldWVybiBmdWVyIFNleCBiZXphaGxlbiB3b2xsdGUuIEVyIG1laW50ZSwgCiBkYWZ1ZXIgZ2FlYmUgZXMgbm9jaCBrZWluZSBTdGV1ZXIuICJBYmVyIGVzIGlzdCBmdWVyIGVpbmVuIAogSHVuZCIgYW50d29ydGV0ZSBpY2guIEVyIG1laW50ZSBudXIsIEJlaXNjaGxhZiBtaXQgVGllcmVuIAogc2VpIHp3YXIgbmljaHQgdmVyYm90ZW4sIGFiZXIgZWluZSBTdGV1ZXIgZ2FlYmUgZXMgdHJvdHpkZW0KIG5pY2h0LiAiU2llIHZlcnN0ZWhlbiBtaWNoIG5pY2h0Iiwgc2FndGUgaWNoLiAiSWNoIGhhYmUgU2V4LAogc2VpdCBpY2ggOSBKYWhyZSBhbHQgYmluLiIgRGFubiB3YXJmIGVyIG1pY2ggcmF1cy4KCiBBbHMgaWNoIGdlaGVpcmF0ZXQgaGFiZSB1bmQgaW4gZGllIEZsaXR0ZXJ3b2NoZW4gZ2VmYWhyZW4gYmluLCAKIGhhYmUgaWNoIG1laW5lbiBIdW5kIG1pdGdlbm9tbWVuLiBEYSBpY2ggbmljaHQgd29sbHRlLCBkYXNzIAogdW5zIGRlciBIdW5kIG5hY2h0cyBzdG9lcnQsIHNhZ3RlIGljaCBkZW0gTWFubiBhbSBIb3RlbGVtcGZhbmcsIAogZGFzcyBpY2ggZWluIGV4dHJhIFppbW1lciBmdWVyIFNleCBicmFldWNodGUuIEVyIG1laW50ZSBudXIsIGRhc3MgCiBqZWRlcyBaaW1tZXIgZGVzIEhvdGVscyBmdWVyIFNleCB3YWVyZS4gIlNpZSB2ZXJzdGVoZW4gbWljaCBuaWNodCIsIAogdmVyc3VjaHRlIGljaCB6dSBlcmtsYWVyZW4uICJTZXggaGFlbHQgbWljaCBkaWUgZ2FuemUgTmFjaHQgd2FjaCEiLiAKIEFiZXIgZXIgbWVpbnRlIG51ciAibWljaCBhdWNoIi4KCiBFaW5lcyBUYWdlcyBnaW5nIGljaCBtaXQgU2V4IHp1IGVpbmVyIEh1bmRlYXVzc3RlbGx1bmcuIEplbWFuZCAKIGZyYWdlIG1pY2gsIHdhcyBpY2ggaGllciB3b2xsdGUsIHVuZCBpY2ggc2FndGUgaWhtLCBkYXNzIGljaCB2b3IgCiBoYXR0ZSwgU2V4IGluIGRlciBBdXNzdGVsbHVuZyB6dSBoYWJlbi4gRGFyYXVmIG1laW50ZSBlciwgaWNoIAogc29sbGUgdmllbGxlaWNodCBtZWluZSBlaWdlbmVuIEVpbnRyaXR0c2thcnRlbiBkcnVja2VuIHVuZCAKIHZlcmthdWZlbi4gQWxzIGljaCBpaG4gZnJhZ2UsIG9iIGRpZSBBdXNzdGVsbHVuZyAKIGltIEZlcm5zZWhlbiB1ZWJlcnRyYWdlbiB3dWVyZGUsIG5hbm50ZSBlciBtaWNoIHBlcnZlcnMuCgogRWlubWFsIHdhciBTZXgga3JhbmsgdW5kIGljaCBtdXNzdGUgaWhuIGJlaW0gVGllcmFyenQgbGFzc2VuLiAKIEFtIG5hZWNoc3RlbiBUYWcgd29sbHRlIGljaCBpaG4gYWJob2xlbi4gIkljaCBrb21tZSB3ZWdlbiBtZWluZW0gCiBIdW5kIiBzYWd0ZSBpY2guICJXZWxjaGVyIGlzdCBlcyBkZW5uPyIgZnJhZ3RlIG1pY2ggZGllIEZyYXUgCiBiZWltIFRpZXJhcnp0LCB3YWVocmVuZCBzaWUgaW4gZGVyIEthcnRlaSBibGFldHRlcnRlLiAKICJIYXNzbyBvZGVyIEJlbGxvPyIgLSAiV2llIHdhZXIncyBtaXQgU2V4PyIgZnJhZ3RlIGljaCB1bmQgYmVrYW0gCiBlaW5lIHJ1bnRlcmdlaGF1ZW4uCgogQW0gZ2xlaWNoZW4gVGFnIGlzdCBtaXIgZGVyIEh1bmQgYXVjaCBub2NoIGFiZ2VoYXVlbiB1bmQgaWNoIAogbXVzc3RlIGltIFRpZXJoZWltIG5hY2ggaWhtIHN1Y2hlbi4gRG9ydCBmcmFndGUgbWljaCBqZW1hbmQsIAogd2FzIGljaCB3b2xsdGUuIEFscyBpY2ggaWhtIHNhZ3RlLCBkYXNzIGljaCBTZXggc3VjaGUsIG1laW50ZSAKIGVyLCBoaWVyIHdhZXJlIG5pY2h0IGRlciByaWNodGlnZSBPcnQgZGFuYWNoIHp1IHN1Y2hlbi4gSWNoIAogc3VjaHRlIG5vY2ggZGllIGdhbnplIE5hY2h0IG5hY2ggaWhtLiBVbSA0IFVociBtb3JnZW5zIGZyYWd0ZSAKIG1pY2ggZWluIFBvbGl6aXN0LCB3YXMgaWNoIG1pdHRlbiBpbiBkZXIgTmFjaHQgYXVmIGRlciBTdHJhc3NlIAogc3VjaGUuIEljaCBzYWd0ZSBpaG0sIGRhc3MgaWNoIFNleCBzdWNoZS4gRXIgc3BlcnJ0ZSBtaWNoIGVpbi4KCiBCZWkgbWVpbmVyIFNjaGVpZHVuZyB3dXJkZW4gbWVpbmUgRnJhdSB1bmQgaWNoIHZvciBHZXJpY2h0IAogZ2VsYWRlbiwgdW0gdW5zZXJlIEhhYnNlbGlna2VpdGVuIGF1Znp1dGVpbGVuLiBOYXR1ZXJsaWNoIHdvbGx0ZSAKIGljaCBtZWluZW4gSHVuZCBrZWluZXNmYWxscyBhbiBzaWUgYWJ0cmV0ZW4uICJFdWVyIEVocmVuLCBpY2ggCiBoYXR0ZSBTZXggc2Nob24gYmV2b3IgaWNoIHZlcmhlaXJhdGV0IHdhciEiIHNhZ3RlIGljaCBkZW0gUmljaHRlci4gCiAiTmEgdW5kPyBJY2ggYXVjaCEiIGFudHdvcnRldGUgZXIgbnVyLiAiQWJlciBtZWluZSBGcmF1IHdpbGwgbWlyIAogU2V4IHdlZ25laG1lbiEiIGJlc2Nod2VydGUgaWNoIG1pY2guIEVyIG1laW50ZSBudXI6ICJEYXMgaXN0IGRhcywgCiB3YXMgYmVpIGFsbGVuIFNjaGVpZHVuZ2VuIHBhc3NpZXJ0LiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRoZSBTaWxpY29uIEdyYXBoaWNzIFJlZnJpZ2VyYXRvciBQcm9qZWN0IChLZXRvcywgMjkuIE1hciAyMDAxLCAxNzoyNDozNCk6CkVpbiB6aWVtbGljaCBjb29sZXMgRGluZzoKaHR0cDovL2hvbWUucGxhbmV0Lm5sL35tb3VyaXRzL2tvZWxrYXN0LwoKLSBLZXRvcyAtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGhlIFNpbGljb24gR3JhcGhpY3MgUmVmcmlnZXJhdG9yIFByb2plY3QgKFBhdHJ5biwgMjkuIE1hciAyMDAxLCAxNzo1NDo0MCk6Cn4jISBybj1LZXRvcyBydD05ODU4Nzk0NzQgcmc9d2l0emUKfiMhIHRpZD05ODU4Nzk0NzQKdW5kIGRpZSBiZXNjaHJlaWJ1bmcgaXN0IGVjaHQgc3VwZXJ3aXR6aWcgOikKYmVzb25kZXJzIGRpZSBkZWZpbml0aW9uIGVpbmVzIHNnaS1zZXJ2ZXJzIHVuZCBkaWUgbWl0IHZvbGtzd2FnZW4KInR1ZXJtZW5kZW4iIGxldXRjaGVucyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUaGUgU2lsaWNvbiBHcmFwaGljcyBSZWZyaWdlcmF0b3IgUHJvamVjdCAoSWNobywgMjkuIE1hciAyMDAxLCAxOToyNTo0Nyk6Cn4jISBybj1QYXRyeW4gcnQ9OTg1ODgxMjgwIHJnPXdpdHplCn4jISB0aWQ9OTg1ODc5NDc0CkljaCBmaW5kIGVzIGF1Y2ggZ2VuaWFsIDopIGJ0dy4gaGF0IHdlciBpcmdlbmR3byBub2NoIG5lbiBTR0kgb2RlciBTVU4gU2VydmVyCnJ1bXN0ZWhlbj8KTWVzaXJpaSwgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRoZSBTaWxpY29uIEdyYXBoaWNzIFJlZnJpZ2VyYXRvciBQcm9qZWN0IChNdXBmZWwsIDI5LiBNYXIgMjAwMSwgMjM6MzQ6NTQpOgp+IyEgcm49SWNobyBydD05ODU4ODY3NDcgcmc9d2l0emUKfiMhIHRpZD05ODU4Nzk0NzQKVm9yIEphaHJlbiBnYWJzIG1hbCBkaWUgU0dJIEluZGlnbyBhbHMgU29uZGVybW9kZWxsIC0gbmUgRXNwcmVzc29tYXNjaGluZSA7KQoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFRoZSBTaWxpY29uIEdyYXBoaWNzIFJlZnJpZ2VyYXRvciBQcm9qZWN0IChQYXRyeW4sIDI5LiBNYXIgMjAwMSwgMjM6Mzc6NTEpOgp+IyEgcm49TXVwZmVsIHJ0PTk4NTkwMTY5NCByZz13aXR6ZQp+IyEgdGlkPTk4NTg3OTQ3NApzZ2ktbWFzY2hpbmVuIHNlaGVuIGphIGFsbGVzYW10IGF1Y2ggdG90YWwgZ2VuaWFsIGF1cyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZmxpZWdlbmRlcyBIYW1zdGVyZ2VzY2hvaXNzIChEZWVwYmx1ZSwgIDQuIEFwciAyMDAxLCAxNTowODoyNik6CiJicmVubmVuZGVzIEhhbXN0ZXJnZXNjaG9zcyAtLSBUYXRzYWNoZW5iZXJpY2h0IGF1cyBkZXIgTEEgVGltZXMKCiJJbSAgTmFjaGhpbmVpbiAgZ2VzZWhlbiAgd2FyIGRlciBncm9zc2UgRmVobGVyIGRhcyBTdHJlaWNoaG9seiAgYW56dXp1ZW5kZW4uCkFiZXIgIGljaCAgaGFiZSAgbnVyICB2ZXJzdWNodCAgZGVuICBIYW1zdGVyICB3aWVkZXIgIHp1IGtyaWVnZW4sIiBoYXQgRXJpYwpUb21hc3pld3NraSBhbXVlc2llcnRlbiBBZXJ6dGVuIGluIGRlciBBYnRlaWx1bmcgZnVlciBzY2h3ZXJlIFZlcmJyZW5udW5nZW4gaW0KU2FsdCAgTGFrZSAgQ2l0eSAgSG9zcGl0YWwgIGVyemFlaGx0LiAgVG9tYXN6ZXdza2kgIHVuZCAgc2VpbiAgaG9tb3NleHVlbGxlcgpMZWJlbnNwYXJ0bmVyICBBbmRyZXcgIChLaWtpKSAgRmFybm9tLCB3YXJlbiBuYWNoIGVpbmVyIFNlc3Npb24gZGVyIGludGltZW4KQXJ0ICB6dXIgIGVyc3RlbiBIaWxmZWJlaGFuZGx1bmcgZWluZ2VsaWVmZXJ0IHdvcmRlbiwgbmFjaGRlbSBkYWJlaSBlaW5pZ2VzCnNjaGllZiBnZWxhdWZlbiB3YXIuCiJJY2ggIGhhYmUgIGVpbiBQYXBwcm9ociBpbiBzZWluIFJla3R1bSBlaW5nZWZ1ZWhydCB1bmQgZGFubiBSYWdnb3QsIHVuc2VyZW4KSGFtc3RlciwgaGluZWluc2NobHVlcGZlbiBsYXNzZW4uIiBlcmtsYWVydGUgZXIuCiJXaWUgIGdld29laG5saWNoIGhhdCBLaWtraSAnQXJtYWdlZGRvbicgZ2VydWZlbiwgZGFzIFplaWNoZW4gZGFmdWVyLCBkYXNzIGVyCmdlbnVnICBoYXR0ZS4gIEljaCBoYWJlIHZlcnN1Y2h0IFJhZ2dvdCB6dXJ1ZWNrenVob2xlbiwgYWJlciBlciB3b2xsdGUgbmljaHQKd2llZGVyICByYXVzICBrb21tZW4sICBhbHNvICBoYWJlIGljaCBlaW4gU3RyZWljaGhvbHogYW5nZXp1ZW5kZXQgdW5kIGluIGRhcwpSb2hyIGdlc3BhZWh0LCB3b2JlaSBpY2ggZ2VkYWNodCBoYWJlIGRhcyBMaWNodCB3dWVyZGUgaWhuIGFubG9ja2VuLiIKCkJlaSAgZWluZXIgIGVpbGlnICBlaW5iZXJ1ZmVuZW4gUHJlc3Nla29uZmVyZW56LCBiZXNjaHJpZWIgZWluIFNwcmVjaGVyIGRlcwpLcmFua2VuaGF1c2VzICB3YXMgIGFscyBuYWVjaHN0ZXMgZ2VzY2hhaC4gIkRhcyBTdHJlaWNoaG9seiBlbnR6dWVuZGV0ZXQgZWluZQpHYXNibGFzZSAgaW0gIElubmVybiAgdW5kICBlaW5lICBGbGFtbWUgc2Nob3NzIGF1cyBkZW0gUm9ociwgZW50enVlbmRldGUgTXIuClRvbWFzemV3c2tpJ3MgSGFhcmUgZnVlZ3RlIHNlaW5lbSBHZXNpY2h0IHNjaHdlcmUgVmVyYnJlbm51bmdlbiB6dS4gQXVzc2VyZGVtCmZpbmdlbiBkYXMgRmVsbCB1bmQgZGllIFNjaG51cnJiYXJ0aGFhcmUgZGVzIEhhbXN0ZXJzIEZldWVyIHVuZCBlbnR6dWVuZGV0ZW4KaW0gIEdlZ2VuenVnIGVpbmUgbm9jaCBncm9lc3NlcmUgR2FzYmxhc2Ugbm9jaCB3ZWl0ZXIgaW5uZW4uIERpZXMgc2NobGV1ZGVydGUKZGVuIE5hZ2VyIG5hY2ggZHJhdXNzZW4gd2llIGVpbmUgS2Fub25lbmt1Z2VsLiIKClRvbWFzemV3c2tpICBlcmxpdHQgIFZlcmJyZW5udW5nZW4gMi4gR3JhZGVzIHVuZCBlaW5lIGdlYnJvY2hlbmUgTmFzZSBkdXJjaApkZW4gQXVmc2NobGFnIGRlcyBIYW1zdGVycywgd2FlaHJlbmQgRmFybm9tIFZlcmJyZW5udW5nZW4gZXJzdGVuIHVuZCB6d2VpdGVuCkdyYWRlcyBhbiBzZWluZW0gQW51cyB1bmQgRW5kZGFybSBlcmxpdHQuCgpEaWUgVE9QIDExIGJlYWVuZ3N0aWdlbmRzdGVuIEZha3RlbiBkaWVzZXIgR2VzY2hpY2h0ZToKCjExLiAiSWNoIGhhYmUgZWluIFBhcHByb2hyIGluIHNlaW4gUmVrdHVtIGVpbmdlZnVlaHJ0LiIgLSBHdXRlciBBbmZhbmcuLi4KCjEwLiAiV2llIGdld29laG5saWNoIGhhdCBLaWtraSAnQXJtYWdlZGRvbicgZ2VydWZlbiIgLSBEaWUgbWFjaGVuIGRhcyBvZWZ0ZXI/CihadW1pbmRlc3QgaGFiZW4gc2llIGVzIG9lZnRlciBhbHMgZWlubWFsIGdldGFuISkuCgo5LiAgImFsc28gIGhhYmUgIGljaCBlaW4gU3RyZWljaGhvbHogYW5nZXp1ZW5kZXQgdW5kIGluIGRhcyBSb2hyIGdlc3BhZWh0LiIgPwpUdXQgbWlyIGxlaWQsIGFiZXIgZGFzIGlzdCBzbyBhbHMgd3VlcmRlIG1hbiBtaXQgZWluZW0gVGVsZXNrb3AgaW4gZGllIEhvZWxsZQpzY2hhdWVuLiBJY2ggd3VlcmRlIGVoZXIgbWl0IGVpbmVtIEZlcm5nbGFzIGluIGRpZSBTb25uZSBzY2hhdWVuLgoKOC4gIERlciAgYXJtZSAgSGFtc3RlciAgKGRlciAgb2ZmZW5zaWNodGxpY2ggIGFuICBnZXJpbmdlbSBTZWxic3R3ZXJ0Z2VmdWVobApsZWlkZXQpICB3aXJkICBhdXMgIGRlbSAgQXJzY2ggIGRlcyAgVHlwZW4gZ2VmZXVlcnQgd2llIFJvY2t5IGRhcyBmbGllZ2VuZGUKRWljaGhvZXJuY2hlbi4KCjcuICBTaWNoICBkaWUgIE5hc2UgIGR1cmNoICBlaW5lbSAgSGFtc3RlciBicmVjaGVuLCBkZXIgYXVzIGRlbSBBcnNjaCBlaW5lcwphbmRlcmVuIGdlZmV1ZXJ0IHdpcmQuIEljaCBrYW5uIG51ciByYXRlbiwgYWJlciBpY2ggdmVybXV0ZSBkZXIgSGFtc3RlciB3YXIKbmFjaCBzZWluZW0gQXVzZmx1ZyBpbiBLaWtraXMgIlR1bm5lbCBkZXIgTGllYmUiIGF1Y2ggbmljaHQgbWVociB0YXVmcmlzY2guCgo2LiBMZXV0ZSwgZGllIG1pdCB2dWxrYW5hcnRpZ2VuIEdhc2JsYXNlbiBpbiBzaWNoIHJ1bWxhdWZlbi4KCjUuICBEYXMgIGlzdCBpbiBTYWx0IExha2UgQ2l0eSBwYXNzaWVydC4gV2FzIGZ1ZXIgZWluZSBBcnQgdm9uIE1lbnNjaGVuIHNpbmQKTW9ybW9uZW4/ICBJY2ggIGtyaWVnZSAgbGFuZ3NhbSAgZWluIGdhbnogbmV1ZXMgQmlsZCB2b24gZGVyIE9zbW9uZCBGYW1pbGllCihBLmQuUi46IEZpbG0gIkRlciBlaW56aWdlIFpldWdlIikuCgo0LiAiVmVyYnJlbm51bmdlbiBlcnN0ZW4gdW5kIHp3ZWl0ZW4gR3JhZGVzIGFuIHNlaW5lbSBBbnVzLiIgTWFjaHQgZGFzLCBkYXMKSnVja2VuICAgdW5kICBkaWUgICBVbmFubmVobWxpY2hrZWl0ZW4gIHZvbiAgSGFlbW9ycmhvaWRlbiAgbmljaHQgIHp1ICBlaW5lcgp3aWxsa29tbWVuZW4gRXJob2x1bmc/IFdpZSBzb2xsIG1hbiBuYWNoIHNvd2FzIG5vY2ggaW4gUnVoZSBhdWZzIEtsbyBnZWhlbj8KVW5kIGRlciBHZXJ1Y2ggdm9uIGVpbmVtIHZlcmJyYW5udGVtIEFudXMgbXVzcyBpbiBkZXIgVG9wIDUgZGVyIHNjaGxpbW1zdGVuCkdlcnVlY2hlIGF1ZiBHb3R0ZXMgRXJkZSBzZWluLgoKMy4gIExldXRlLCAgZGllIHNpY2ggS2lraSBuZW5uZW4sIHdhcyBnYW56IG9mZmVuc2ljaHRsaWNoIGVpbiBQb2xpbmVzaXNjaGVzCldvcnQgaXN0IGZ1ZXI6ICJWb2xsZGVwcGVuLCBkaWUgc2ljaCBOYWdldGllcmUgaW4gZGVuIEFyc2NoIHN0b3BmZW4uIgoKMi4gV2VsY2hlcyBLcmFua2VuaGF1cyBnaWJ0IGVpbmUgUHJlc3Nla29uZmVyZW56IGZ1ZXIgc28gZXR3YXM/CgoxLiBMZXV0ZSwgZGllIHNvIGV0d2FzIHR1biB1bmQgZXMgZGFubiBhdWNoIG5vY2ggaW4gZGVyIE5vdGF1Zm5haG1lIHp1Z2ViZW4KZ2V0YW4gIHp1ICBoYWJlbi4gIFR1dCAgbWlyIGxlaWQsIGFiZXIgaWNoIGhhZXR0ZSBtaXIgaXJnZW5kZWluIEFtbWVubWFlcmNoZW4KYXVzZ2VkYWNodCAgIHZvbiAgIGVpbmVyICB1bWhlcnN0cm9sY2hlbmRlbiwgIHB5cm9tYW5pc2NoZW4sICBBbmFsc2V4LUhvcmRlClVubWVuc2NoZW4sICBkaWUgIGluICBtZWluICBIYXVzICBlaW5nZWJyb2NoZW4gc2luZCB1bmQgbWljaCBkYW5uIG1pdCBlaW5lbQpTdHVlY2sgIGdsdWVoZW5kZXIgIEhvbHprb2hsZSAgbWlzc2JyYXVjaHQgIGhhYmVuLCAgYmV2b3IgIGljaCAgZGllICBXYWhyaGVpdAp6dWdlYmUuLiAgIE5lbm50ICBtaWNoICBydWhpZyAgYWx0bW9kaXNjaCwgIGFiZXIgIGthbm4gIG1pciAgZWluZmFjaCAgbmljaHQKdm9yc3RlbGxlbiAgenVtICBBcnp0ICB6dSAgZ2VoZW4gIHVuZCAgenUgIHNhZ2VuOiAgIk51biBIZXJyIERva3RvciwgZXMgd2FyCmZvbGdlbmRlcm1hc3NlbjogIFdpc3NlbiAgU2llLCB3aXIgaGFiZW4gZGllc2VuIEhhbXN0ZXIsIGdlbmFubnQgUmFnZ290LCB1bmQKd2lyIGhhYmVuIGVpbiBQYXBwcm9ociBnZW5vbW1lbi4uLiIiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmF0Z2ViZXIgKERlZXBibHVlLCAgNC4gQXByIDIwMDEsIDE1OjA5OjA4KToKCktsYXNzaXNjaGVzIFBhcmFkb3hvbjoKICAgICAgICAgIE1hZW5uZXIgaGVsZmVuIGltIEhhdXNoYWx0IQoKRXMgaXN0IGthdW0genUgdWViZXJzZWhlbiwgZGFzIG5hY2ggSmFocnplaG50ZW4gZGVyIFZlcnVuc2ljaGVydW5nIGR1cmNoCkVtYW56aXBhdGlvbiBvZGVyIERpc2t1c3Npb25lbiB1bSBSb2xsZW52ZXJoYWx0ZW4gdW5kIEdsZWljaGJlcmVjaHRpZ3VuZyBpbQpNYW5uCmVpbiBuZXVlcyBTZWxic3R2ZXJzdGFlbmRuaXMga2VpbXQuIFdhcnVtIHNvbGwgZWluIE1hbm4gYWJ3YXNjaGVuLCB3ZW5uIGRhcwpHZXNjaGlyciBtb3JnZW4gd2llZGVyIHNjaG11dHppZyBpc3Q/IE1hZW5uZXIgc2luZCBkYXp1IGdlYm9yZW4sIGJsZWliZW5kZQpXZXJ0ZQp6dSBzY2hhZmZlbiwgdW5kIHNlaWVuIGVzIFdlcnRlLCBkaWUgdm9uIG5pY2h0IGtvbmZsaWt0ZmFlaGlnZW4gUGF6aWZpc3RlbgpsYXBpZGFyIEhhbGJ3ZXJ0emVpdCBnZW5hbm50IHdlcmRlbi4KCkVpbiBrbGVpbmVyIFJhdGdlYmVyLgoKRWlua2F1ZmVuCgpIYXQgaWhyZSBGcmF1IGF1Y2ggc2Nob24gZWlubWFsIHZvZWxsaWcgYXJ0ZnJlbWQgdm9uIGlobmVuIHZlcmxhbmd0LCBzaWUKc29sbGVuCmVpbmthdWZlbiBnZWhlbj8gRXJzdGUgUmVnZWw6IE5pY2h0IGluIFBhbmlrIG9kZXIgRXJrbGFlcnVuZ3Nub3RzdGFuZApnZXJhdGVuISBFcwppc3QgbmljaHQgZXJmb3JkZXJsaWNoIHp1c2FtbWVuenVicmVjaGVuLCBzaWNoIHZvciBTY2htZXJ6ZW4gYXVmIGRlbSBCb2Rlbgp6dQp3aW5kZW4gdW5kIGZvcnR3YWVocmVuZDogIkRpZSBQcm9waGV6ZWl1bmchIERpZSBQcm9waGV6ZWl1bmchIiB6dSBicnVlbGxlbi4KVHVuCnNpZSBpaHIgZG9jaCBkaWVzZW4gR2VmYWxsZW4hIEdlaGVuIHNpZSBlaW5rYXVmZW4uIFdhcnVtIGF1Y2ggbmljaHQ/IExlaWRlcgpoYXQKZGFzLCB3YXMgc2llIGFuc2NobGVwcGVuLCBrZWluZXJsZWkgQWVobmxpY2hrZWl0IG1pdCBkZW4gYXVmIGRlbQpFaW5rYXVmc3pldHRlbApub3RpZXJ0ZW4gQXJ0aWtlbG4uIEdlaGVuIHNpZSB2b3IgYWxsZW0gaHVuZ3JpZyBlaW5rYXVmZW4uIElobmVuIHdlcmRlbgpBcnRpa2VsCmF1ZmZhbGxlbiwgZGllIHNpZSBzb25zdCBuaWUgZW50ZGVja3QgaGFldHRlbi4gS2F1ZmVuIHNpZSB2aWVsZSB2ZXJkZXJibGljaGUKV2FyZW4sIGRlbm4gYmVpbSBBbmJsaWNrIHZvbiAyMCBLaWxvIFRodWVyaW5nZXIgTWV0dCAoIkVzIHdhciBlaW4gQW5nZWJvdCwKU2NoYXR6ISIpIGJsZWlidCBiZWkgaWhyZXIgRnJhdSBrZWluIEF1Z2UgdHJvY2tlbi4gV2VubiBzaWUgbWl0IGRlbSBBdXRvCmlocmVyCkZyYXUgZ2VmYWhyZW4gc2luZDogVmVyZ2Vzc2VuIHNpZSBkaWUgSGFlbGZ0ZSBpbSBLb2ZmZXJyYXVtLiBOYWNoIGVpbmVyCldvY2hlCndlcmRlbiBkYXJhdXMgY2hlbWlzY2hlIEthbXBmc3RvZmZlLCBkZXJlbiBFcmlubmVydW5nIGlobmVuIGJlaSBkZXIKbmFlY2hzdGVuCkRpc2t1c3Npb24gbnVldHpsaWNoIHNlaW4gd2VyZGVuLgoKSHVuZCBhdXNmdWVocmVuCgpHZXJhZGUgaGFiZW4gc2llIGVzIHNpY2ggbWl0IGVpbiB3ZW5pZyBTYWx6Z2ViYWVjayB1bmQgQmllciBiZXF1ZW0gZ2VtYWNodCwKdW0KIkd1dGUgWmVpdGVuLCBzY2hsZWNodGUgWmVpdGVuIiB6dSBzZWhlbiwgZGEgZHJvaHQgZGllIEdhdHRpbiBtaXQgZGVyCkh1bmRlbGVpbmUsIHdlaWwgZGVtIENoYXBwaWUtS29udmVydGVyIGJlcmVpdHMgZGllIEF1Z2VuIGF1cyBkZW0gS29wZgpxdWVsbGVuPwpTaWUgZnJhZ2VuIHNpY2g6IFdhcnVtIGltbWVyIGljaD8gSWhyZSBGcmF1IGtvbm50ZSBkb2NoIG1pdCBUcmFlbmVuIGluIGRlbgpBdWdlbgpuaWNodCB3aWRlcnN0ZWhlbiwgYWxzIG1hbiBpaHIgZGllICJzdWVzc2UiIFRvZWxlIHp1bSBLYXVmIGFuYm90LiBEYXMgbmFlY2hzdGUKTWFsLAphbHMgc2llIFRyYWVuZW4gaW4gZGVuIEF1Z2VuIGhhdHRlLCB3YXIsIGFscyBkZXIgRmxvaGNpcmN1cyBlaW5lbiBrbGVpbmVuCkhhdWZlbgprb21wb3N0aWVydGVzIFJpbmRmbGVpc2NoIGF1ZiBkaWUgQmVyYmVyYnJ1ZWNrZSBleHRyYWhpZXJ0ZSwgZGVyIHNpY2gKbGFuZ3NhbSB6dW0KUGFya2V0dCBkdXJjaGZyYXNzLiBVbnNlciBUaXBwOiBHZWhlbiBzaWUgbWl0IGRlbSBIdW5kIHJhdXMsIGJlZmVobGVuIHNpZQppaG0KKHNvZmVybiBlcyBzaWNoIG5pY2h0IHVtIGVpbiBhbGx6dSBkZWdlbmVyaWVydGVzIEV4ZW1wbGFyIGhhbmRlbHQpLCBlciBzb2xsCiJTaXR6IiBtYWNoZW4uIFVlYmVycXVlcmVuIHNpZSBkYW5uIGRpZSBTdHJhc3NlIHVuZCBydWZlbiBzaWUgaWhuIHZvbiBkZXIKYW5kZXJlbgpTZWl0ZSwgd2VubiBnZXJhZGUgZWluIExLVyBrb21tdC4gV2FlaHJlbmQgc2llIGRhbm4gYmVpbSBUaWVyYXJ6dCBzaXR6dCwKbGVybmVuCnNpZSBhdWYgZGVtICJUaGVyZXNhIE9ybG93c2tpIi1LYW5hbCBkaWUganVlbmdzdGVuIHNleHVhbG1lZGl6aW5pc2NoZW4KRXJrZW5udG5pc3NlIEJlaXNjaGxhZiBiZXRyZWZmZW5kLgoKV2Flc2NoZXdhc2NoZW4KCldhZXNjaGV3YXNjaGVuPyBLbGFyLCBrZWluIFRoZW1hLCBzb2xsdGVuIHNpZSB1bmJlZGluZ3QgcHJvYmllcmVuISBJc3Qgc28KYXVmcmVnZW5kIHdpZSBTZXggbWl0IFBmYW5kZmxhc2NoZW4hIFNvcnRpZXJlbiBzaWUgdm9yaGVyIGFiZXIgaWhyZQpMaWVibGluZ3NzYWNoZW4gYXVzLiBTaWUgd3VlcmRlbiBzaWUgc29uc3QgbmljaHQgd2llZGVyZXJrZW5uZW4hIEFkZGllcmVuCnNpZSB6dW0KV2FzY2hwcm9ncmFtbSBkaWUgWmFobCAyIHVuZCB6dXIgZ2VuYW5udGVuIFRlbXBlcmF0dXIgZGllIFphaGwgMzAuIEhhZW5nZW4Kc2llCmF1ZiBkZW0gV2Flc2NoZXN0YWVuZGVyIGFsbGVzIHVlYmVyZWluYW5kZXIuIE1pc2NoZW4gc2llIHBybyBNYXNjaGluZSBsb2NrZXIKU3RvZmZlCnVuZCBGYXJiZW4uIEFtIEJlc3Rlbiwgc2llIHRlc3RlbiBpaHJlIEt1ZW5zdGUgbnVyIG1pdCBpaHJlbiBTYWNoZW4uIEJpZXRlbgpzaWUKaWhyZSBEaWVuc3RlIHdpZWRlciB1bmQgd2llZGVyIGFuLiBWZXJmYWhyZW4gc2llIGRhYmVpIHdpZSBvYmVuCmJlc2NocmllYmVuLCBiaXMKZW5kbGljaCBSdWhlIGVpbmtlaHJ0LgoKTWFlbm5lciB1bmQgS2xlaW5raW5kZXIKClNpZSB3aXNzZW4gZXM6IFdlciBqZSB2ZXJzdWNodCBoYXQsIGVpbiBha3RpdmVzIGRyZWlqYWVocmlnZXMgS2luZCBpbiBkaWUKS2xhbW90dGVuIHp1IHBlbGxlbiwgZGVyIHdlaXNzLCBkYXNzIGVzIGRlbSBWZXJzdWNoIGdsZWljaGtvbW10LCBlaW5lbQpsZWJlbmRlbgpBYWwgdW50ZXIgV2Fzc2VyIGVpbiBLb25kb20gdWViZXIgZGVuIEtvcGYgenUgemllaGVuLiBLZWluIFByb2JsZW0sIHdlbm4gc2llCm1laHJlcmUgS2luZGVyIHVudGVyc2NoaWVkbGljaGVuIEFsdGVycyBoYWJlbjogVmVydGF1c2NoZW4gc2llIGRpZQpLbGFtb3R0ZW4KZWluZmFjaC4gRGFzIHNpZWh0IGx1c3RpZyBhdXMhIERpZSBNYW1hIGZyZXV0IHNpY2ggYmVzdGltbXQsIHdlbm4gSnVuaW9yCmRpZQpTdHJ1bXBmaG9zZSBiaXMgdWViZXIgZGllIE9ocmVuIHppZWhlbiBrYW5uIHVuZCBkaWUgRXJzdGdlYm9yZW5lIGlocmUgU29ja2VuCmdlcmFkZSB1ZWJlciBkZW4gZ3Jvc3NlbiBaZWggYmVrb21tdC4gS2xlaW5lciBUaXBwOiBVbmJlZGluZ3QgTW9yZ2VucyB1bnRlcgpaZWl0ZHJ1Y2sgcHJvYmllcmVuISBHZW5pZXNzZW4gc2llIGRlbiBTcGFzcywgZGVubiBpaHJlIEZyYXUgZ2lidCBpaG5lbiBuaWUKd2llZGVyCmRpZXNlIEdlbGVnZW5oZWl0ISBTcGF6aWVyZ2FlbmdlIGZ1ZXIgS2luZGVyIGVudGJlaHJlbiBuaWNodCB1bmJlZGluZ3QgZGVyCkxvZ2lrLgpEYXMgS2luZCBrb21tdCBhbiBkaWUgZnJpc2NoZSBMdWZ0LCBlcmZhZWhydCBCZXdlZ3VuZywgc2FtbWVsdApTaW5uZXNlaW5kcnVlY2tlLAplcmZyZXV0IHNpY2ggYW0gQWJlbmQgZWluZXMgZ2VzdW5kZW4gQXBwZXRpdHMgdW5kIHN0ZWh0IHZvciBhbGxlbSBuaWNodCBzbwpmcnVlaAphdWYsIGFscyB3b2xsZSBlcyBzcGFldGVyIGVpbm1hbCBCYWVja2VyIHdlcmRlbi4gRGllIFdhaHJoZWl0IHNpZWh0IGxlaWRlcgphbmRlcnMKYXVzOiBFaW4gZ2VuZXJ2dGVyIEVyemllaHVuZ3NiZXJlY2h0aWd0ZXIgemllaHQgZWluZW4gbm9lcmdlbG5kZW4gdW5kIG5haGV6dQprYXRhbGVwdGlzY2ggZ2VsYW5nd2VpbHRlbiBIb3NlbnNjaGVpc3NlciBkdXJjaCBkaWUgU2llZGx1bmcgd2llIGVpbmVuIG1pdApzY2h3ZXJlbiBTdGVpbmVuIGJlbGFkZW5lbiBIYW5ka2FycmVuLCBkZXIgZWluZW4gUGxhdHRmdXNzIGhhdC4gRGllIGVpbnppZ2VuClNpbm5lc2VpbmRydWVja2UsIGRpZSBkZXIgRnJ1Y2h0endlcmcgc2FtbWVsbiBtb2VjaHRlLCBzaW5kLCB3aWUgdmllbGUKS29wZnNjaG1lcnp0YWJsZXR0ZW4gTWFtYSBuZWhtZW4gbXVzcywgd2VubiBlciBtaXQgZGVtIGdyb2Vzc3RlbiBLb2NobG9lZmZlbApkZXMKZ2VzYW10ZW4gS29jaGJlc3RlY2tzIGJlc3RhZW5kaWcgYXVmIGRhcyBLb2NodG9wZmVuc2VtYmxlIGVpbnBydWVnZWx0Li4KS2xlaW5lcgpUcmljazogRGVuIHVuZGFua2JhcmVuIE1JTFVQQS1Nb3RvciBuYWNoIGRlciBSdWVja2tlaHIgbWl0IHNlaW5lbQpMaWVibGluZ3NzcGllbHpldWcgaW4gZGVyIEdhcmFnZSB2ZXJzdGVja2VuIHVuZCBhbGxlaW4gbmFjaCBIYXVzZSAga29tbWVuLAphbHMKb2IgbmljaHRzIHdhZXJlLiBBbnR3b3J0ZW4gc2llIGF1c3dlaWNoZW5kIGF1ZiBkaWUgRnJhZ2UsIHdvIGRlbm4gZGFzClNvZWhuY2hlbgpzZWkuIFNjaGF1ZW4gc2llIGlocmUgRnJhdSBhaG51bmdzbG9zIGFuIHVuZCBmcmFnZW4gc2llIHNpZSwgb2IgZXIgZGVubgpuaWNodApiZWkgaWhyIHdhZXJlLiBOYWNoIHplaG5taW51ZXRpZ2VtIEhldWxrb256ZXJ0IGlzdCBlcyBkYW5uIGFuIGRlciBaZWl0LCBtaXQKZWluZW0KbHVzdGlnZW4gIkFjaCwgREVOIFNvaG4gbWVpbnN0IGR1ISIgZGFzIFJhZXRzZWwgenUgbG9lc2VuLiBJaHJlIEZyYXUgd2lyZCBzaWUKdm9uCm51biBhbiBrZWluZSB6d2VpIE1pbnV0ZW4gbWl0IGRlbiBLaW5kZXJuIGFsbGVpbiBsYXNzZW4uCgpFcnRlaWx1bmcgdm9uIEF1ZmdhYmVuIHdhZWhyZW5kIHVuZ3VlbnN0aWdlciBSYWhtZW5iZWRpbmd1bmdlbgoKRXMgaXN0IGVpbmdldHJldGVuLCB3b3ZvciBzaWUgc2ljaCBpbW1lciBnZWZ1ZXJjaHRldCBoYWJlbj8gSW0gRmVybnNlaGVuCmdpYnQgZXMKIkRyLiBNYWJ1c2VzIG5hY2t0ZSBLbG9zdGVyc2NodWVsZXJpbm5lbiIgdW5kIGlocmUgRnJhdSB0cmFlZ3QgaWhuZW4gYXVmLCBkZW4KTXVlbGwKenUgZW50c29yZ2VuPyBVZWJlcnpldWdlbiBzaWUgc2llIG1pdCBsaWViZW4gV29ydGVuLCBkYXNzIHNpZSBkaWUgZWluemlnZQpGcmF1IGF1ZgpkZXIgV2VsdCBpc3QsIGRlciBzaWUgZGllc2UgQXVmZ2FiZSB6dXRyYXVlbi4gVmVyd2Vpc2VuIHNpZSBhdWYgaWhyZQpWb3J6dWVnZSwKU2NobWVpY2hlbG4gc2llIGlociwgbWFjaGVuIHNpZSBtaXQgaWhyIGVpbmVuIFF1aWNraWUgYXVmIGRlciBLb21tb2RlLgpCZW51dHplbgpzaWUgZGFzIFdvcnQgS2VybmtvbXBldGVueiwgZGFzIHNjaGluZGV0IEVpbmRydWNrLiBFcyBoaWxmdCBhbGxlcyBuaWNodHM/Ckxhc3NlbgpzaWUgZGllIFR1ZXRlIG1pdHRlbiBpbSBXb2huemltbWVyIGZhbGxlbiEgQXVzc2VuIFRvcHBpdHMsIGlubmVuIEdlcnVjaCEKSGFjaCwgd2llCnVuZ2VzY2hpY2t0IE1hZW5uZXIgZG9jaCBzaW5kISBTY2hhdWVuIHNpZSBkZW1vbnN0cmF0aXYgaW4gZGVuCkZlcm5zZWhhcHBhcmF0IHVuZAplcndhZWhuZW4gc2llIGJlaWxhZXVmaWcsIGRhc3Mgc2llIG5hY2ggZGVtIEZpbG0gc29mb3J0IGFsbGVzIHdlZ3JhZXVtZW4Kd2VyZGVuLgpKZWRlIFdldHRlOiBTb2JhbGQgRHIuIE1hYnVzZSBkaWUgbGV0enRlIHNlaW5lciBLYW5kaWRhdGlubmVuIHZlcnNhZWd0IGhhdCwKZmluZGVuIHNpZSBrZWluZW4gZWluemlnZW4gS3J1ZW1lbCBtZWhyIGF1ZiBkZXIgQXVzbGVnZXdhcmUuCgpXaXIgaG9mZmVuLCBpaG5lbiBtaXQgZGllc2VuIFJhdHNjaGxhZWdlbiBlaW4gd2VuaWcgUnVoZSB1bmQgWnVmcmllZGVuaGVpdApmdWVyCmRpZSBuYWVjaHN0ZSBGdXNzYmFsbHNhaXNvbiB2ZXJzY2hhZmZ0IHp1IGhhYmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV3Vuc2NoIG1pdCBIaW5kZXJuaXNzZW4gKEFuYWNyaW9uLCAgNi4gQXByIDIwMDEsIDIyOjEwOjMwKToKCkVpbiBNYW5uIGdlaHQgaW4gZGllIEtuZWlwZSB1bmQgc2V0enQgc2ljaCBhbiBkZW4gIFRyZXNlbi4gCkFscyBkZXIgV2lydCAgaWhuIGZyZ3Qgd2FzIGVyIHdpbGwsIGFudHdvcnRldCBlcjogIkljaCB3ZXR0ZSAgbWl0IERpciB1bSAKZWluIEJpZXIsIGRhc3MgaWNoIGV0d2FzIGluIG1laW5lciBUYXNjaGUgaGFiZSwgZGFzcyBkdSBub2NoICBuaWUgCmdlc2VoZW4gaGFzdC4iIERlciBXaXJ0LCBtaXQgYWxsZW4gV2Fzc2VybiBnZXdhc2NoZW4sIGdlaHQgYXVmIGRpZSAgV2V0dGUgCmVpbi4gRGFyYXVmaGluIGZmbmV0IGRlciBHYXN0IHNlaW5lIEphY2tlbnRhc2NoZSB1bmQgaG9sdCBlaW4gIGtsZWluZXMgCjMwY20gZ3JvZXMgTW5uY2hlbiByYXVzIHVuZCBzdGVsbHQgZXMgYXVmIGRlbiBUcmVzZW4uIERhcyAgTW5uY2hlbiAKc2llaHQgYXVzIHdpZSBkZXIgYmVyaG10ZSBBdXRvciBTaW1tZWwgdW5kIGdpbmcgZGVuIFRyZXNlbiAgZW50bGFuZywgCnNjaHR0ZWx0IGplZGVtIEdhc3QgZGllIEhhbmQgdW5kIHNhZ3Q6ICJHdXRlbiBUYWcsIHNlaHIgIGVyZnJldXQsIG1laW4gCk5hbWUgaXN0IFNpbW1lbCBpY2ggYmluIExpdGVyYXQiLiAgRGVyIFdpcnQsICBzb3dhcyBub2NoIG5pZSBnZXNlaGVuLCBpc3QgCnZsbGlnIGF1cyBkZW0gSHVzY2hlbiB1bmQgZnJhZ3QgaWhuLCAgd29oZXIgZXIgZGFzIE1ubmNoZW4gaGF0LiAKRGFyYXVmaGluIGFudHdvcnRldGUgaWhtIGRlciBHYXN0OiAiR2VoICByYXVzLCBkaWUgU3RyYWUgZW50bGFuZyBiaXMgZHUKYW4gZWluZSAKRWNrZSBtaXQgZWluZXIgTGF0ZXJuZSBrb21tc3QuICBEYW5uIHJlaWJlIGFuIGRlciBMYXRlcm5lIHVuZCBlcyAKZXJzY2hlaW50IGRpciBlaW5lIGd1dGUgRmVlLiIgRGVyIFdpcnQgIHJlbm50IHNvZm9ydCBsb3MsIGtvbW10IGFuIGRlciAKTGF0ZXJuZSBhbiB1bmQgYmVmb2xndCBkaWUgQW53ZWlzdW5nZW4gIGRlcyBHYXN0ZXMuIERhcmF1ZmhpbiBlcnNjaGVpbnQgCmlobSBlaW5lIGd1dGUgRmVlIHVuZCBnZXdocnQgaWhtIGVpbmVuICBXdW5zY2guIERlciBXaXJ0IGJlcmxlZ3QgbmljaHQgCmxhbmdlIHVuZCBzYWd0OiAiSWNoIGh0dGUgZ2VybmUgNSAgTWlsbGlvbmVuIGluIGtsZWluZW4gU2NoZWluZW4uIiAKRGllIEZlZSBrbG9wZnRlIG1pdCBpaHJlbSBaYXViZXJzdGFiICB1bmQgJ1B1ZmYuLi4nLCBkZXIgV2lydCBoYXQgNQpNZWxvbmVuIAppbiBkZXIgSGFuZCB1bmQgdW0gaWhtIGhlcnVtICBsYXV0ZXIga2xlaW5lIFNjaHdlaW5lLiBTdGlua3NhdWVyIGdlaHQgCmVyIHp1IHNlaW5lciBLbmVpcGUgenVyY2sgdW5kICBzaWVodCBzZWluZW4gR2FzdCBub2NoIGFtIFRyZXNlbiBzdGVoZW4uIApFciBnZWh0IHp1IGlobSB1bmQgc2NoaW1wZnQ6ICAiRGVpbmUgRmVlIGlzdCB3b2hsIHNjaHdlcmhyaWcsIGljaCAKd29sbHRlIDUgTWlsbGlvbmVuIGluIGtsZWluZW4gIFNjaGVpbmVuIHVuZCBiZWtvbW1lIGhpZXIgNSBNZWxvbmVuIAp1bmQgbGF1dGVyIGtsZWluZSBTY2h3ZWluZS4iIERhICBzYWd0IGRlciBHYXN0OiAiS2xhciBpc3QgZGllIApzY2h3ZXJocmlnLCBvZGVyIGRhY2h0ZXN0IER1IGFsbGVuICBFcm5zdGVzLCBpY2ggd25zY2hlIG1pciBlaW5lbiAzMCBjbSAKZ3JvZW4gU2ltbWVsLiIKCgoKQW5hYyogLSBzaWNoIGRlbiBCYXVjaCBoYWx0ZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgd2llZGVyIHdhcyBuZXR0ZXMgYXVzIGRlLmFsdC5uZXRkaWdlc3QgKEZvb2JhciwgIDkuIEFwciAyMDAxLCAyMToxOToyNCk6CkRhIHNjaG1hcnJuIG5pY2h0IHp1IGdlYnJhdWNoZW4gaXN0IHVuZCBHcmltbWJvcm4gaW4gVXJsYXViIHBvc3RlIGljaCBtYWwKaGllcjoKCk5ld3Nncm91cHM6IGRlLmFsdC5zeXNhZG1pbi5yZWNvdmVyeQpNZXNzYWdlLUlEOiA8MjQ0NDM2MjkuOTA0MC5hNjdhQFJBSU5FUi5CSUxLSU5GTy5kZT4KRnJvbTogci5rZXJzdGVuQEJJTEtJTkZPLmRlIChSYWluZXIgS2Vyc3RlbikKU3ViamVjdDogUmU6IFJlY292ZXJ5IGluIGZyZW1kZW4gTCAgICAgIGFlbmRlcm4/CkRhdGU6IFN1biwgMDggQXByIDIwMDEgMDI6NTc6MTAgKzAyMDAKCnVzZW5ldC0yMDAxMDQwNyBtZWludGUgYW0gNy4wNC4yMDAxOgoKPiBOZW5uZSBtaXIgbWFsIGVpbmUgQmVydWZzZ3J1cHBlLCBiZWkgZGVuZW4gVmVyc2FnZW4gc28KPiByZWdlbG1hZXNzaWcgdW5kIHNvIGRyYXN0aXNjaCB2b3Jrb21tdCwgdW5kIHdvIG1hbiBlcyBzbyBzY2hsZWNodCBsZXVnbmVuCj4ga2FubiB3aWUgYmVpIEFlcnp0ZW4hCgoiV2ViZGVzaWduZXIiCgpyawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFd1bnNjaCBtaXQgSGluZGVybmlzc2VuIChaYXJuaXlhLCAxMC4gQXByIDIwMDEsIDExOjEzOjQ0KToKfiMhIHJuPUFuYWNyaW9uIHJ0PTk4NjU4NzgzMCByZz13aXR6ZQp+IyEgdGlkPTk4NjU4NzgzMAptYWwgYWJnZXNlaGVuIGRhdm9uLCBkYXNzIGRlciBXaXR6IHVyYWx0IGlzdCwgaXN0IGVyIGF1Y2ggaW4gZGVyIGZhbHNjaGVuClJ1YnJpayBnZXBvc3RldC4uLiBiZWkgZGVuIHZpZWxlbiBmZWhsZW5kZW4gVW1sYXV0ZW4gc29sbHRlIGVyIGVpZ2VudGxpY2ggaW4KcXVpeiBzdGVoZW4uLi4uCgpNYXJjCgpPLkouOiBEYSwgd28gTWFlbm5lciBpaHIgR2VoaXJuIGhhYmVuLCBoYWJlbiBGcmF1ZW4gZWluIExvY2guCihJY2ggZ2ViIHp1LCBkYSBtdXNzIG1hbiBkcnVlYmVyIG5hY2hkZW5rZW4uKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWl0IGRlciBCaXR0ZSB1bSBCZXJ1ZWNrc2ljaHRpZ3VuZyAuLi4uIChCYW1idWxrbywgMTEuIEFwciAyMDAxLCAxNzowNDo1OCk6Ck1pdCBkZXIgQml0dGUgdW0gQmVydWVja3NpY2h0aWd1bmcgLi4uLgoKCkJlaSBlaW5lciBSb3V0aW5ldW50ZXJzdWNodW5nIGRlcyBzdGF0aXN0aXNjaGVuIEJ1bmRlc2FtdGVzCmZpZWwgYXVmLCBkYXNzIGluIHZpZWxlbiBVbnRlcm5laG1lbiwgQmVob2VyZGVuIHVuZCBIYXVzaGFsdGVuCmltbWVyIG5vY2ggZGllIER1ZXNzZWxkb3JmZXIgVGFzdGF0dXIgaW4gQmVudXR6dW5nIGlzdC4KCkRpZXMgaXN0IHVudmVyenVlZ2xpY2ggenUgYWVuZGVybi4gQml0dGUgZW50ZmVybmVuIFNpZSBkaWUKVGFzdGUgIkFsdCIgdW1nZWhlbmQuIERlciBFaW56ZWxoYW5kZWwgd2lyZCBJaG5lbiBpbiBLdWVyemUKZWluZSBUYXN0ZSAiS29lbHNjaCIgenVyIFZlcmZ1ZWd1bmcgc3RlbGxlbi4gVm9yZ2VuYW5udGVzIGdpbHQKc2VsYnN0dmVyc3RhZW5kbGljaCBhdWNoIGZ1ZXIgZGllIG5pZSBiZW51dHp0ZSBUYXN0ZSAiQWx0IEdyIi4KRGllc2UgaXN0IGdlZ2VuIGRpZSB3ZXNlbnRsaWNoIGFud2VuZHVuZ3NyZWxldmFudGVyZQpUYXN0ZSAiS29lbHNjaCAwLDRsIiBhdXN6dXRhdXNjaGVuLgoKZ2V6LgpEZXIgT2JlcnN0YWR0ZGlyZWt0b3Igdm9uIEtvZWxuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1pdCBkZXIgQml0dGUgdW0gQmVydWVja3NpY2h0aWd1bmcgLi4uLiAoU2Nod3ViYmVsLCAxMS4gQXByIDIwMDEsIDIzOjM3OjA2KToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTk4NzAwMTQ5OCByZz13aXR6ZQp+IyEgdGlkPTk4NzAwMTQ5OApBbHNvLCBpY2ggaGFldHQgamEgT2JlcmJ1ZXJnZXJtZWlzdGVyIHN0YXR0IE9iZXJzdGFkdGRpcmVrdG9yIHZvbiBLb2VsbgpnZXNjaHJpZWJlbi4gU28gbWVya3QgamEgamVkZXIgZ2xlaWNoLCBkYXR0IGRhdCBuZSBXaXR6IHdhci4uLgoKU2Nod3ViYmVsCih0cmlua3QgbGllYmVyIEFsdCBhbHMgZGllc2UgS29lbHNjaC1QbG9lcnJlKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmF1bGUgQXJiZWl0c2xvc2UgKERlZXBibHVlLCAxOS4gQXByIDIwMDEsIDE1OjI0OjUwKToKVW5zZXIgS2FuemxlciBoYXQgZG9jaCBSZWNodC4gV2VyIG5peCB0dW4gd2lsbCwga2FubiBkb2NoIHdlbmlnc3RlbnMgQmVhbXRlcgp3ZXJkZW4sIHN0YXR0IFNvemlhbGhpbGZlZW1wZmFlbmdlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGYXVsZSBBcmJlaXRzbG9zZSAoTW9udGFudXMsIDE5LiBBcHIgMjAwMSwgMTg6MzQ6MjUpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTg3Njg2NjkwIHJnPXdpdHplCn4jISB0aWQ9OTg3Njg2NjkwCkljaCBkYWNodGUsIHdlciBuaXggdHVuIHdpbGwsIHdpcmQgVW50ZXJuZWhtZW5zYmVyYXRlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRmF1bGUgQXJiZWl0c2xvc2UgKFd1bGZncmltbSwgMTkuIEFwciAyMDAxLCAyMDowOTo0Nik6Cn4jISBybj1Nb250YW51cyBydD05ODc2OTgwNjUgcmc9d2l0emUKfiMhIHRpZD05ODc2ODY2OTAKRG9jaCBuaWNodCBQb2xpdGlrZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXMgZGVyIFJlaWhlLi4uIChBbmF0b2wsIDIwLiBBcHIgMjAwMSwgMDA6NDc6MjYpOgouLi5GcmV1ZHNjaGUgVHlwb3MgZnVlciBGb3J0Z2VzY2hyaXR0ZW5lIGhldXRlIEVpbnRyYWcgMTA5NToKCkVpbmUgRHVua2VsZWxmZW53YWNoZSBzYWd0OiBTbyBrYW5uc3QgRHUgZGllIEhvZWxsZSBuaWNodCB2ZXJsYXNzZW4sIFsuLi5dCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGYXVsZSBBcmJlaXRzbG9zZSAoV3VyemVsLCAyMC4gQXByIDIwMDEsIDEwOjEzOjA1KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTk4NzY5ODA2NSByZz13aXR6ZQp+IyEgdGlkPTk4NzY4NjY5MAp1bnRlcm5laG1lbnNiZXJhdGVyIHR1biBzZWhyIHZpZWwuIG51ciBoYWx0IG5pY2h0IGFyYmVpdGVuLCBhYmVyIGRhcwpzb2xsZW4gc2llIGphIGF1Y2ggbmljaHQuIGJlcmF0ZXIgZXJrbGFlcmVuIGFuZGVyZW4sIHdpZSBzaWUgYXJiZWl0ZW4Kc29sbGVuIDopCgp3dXJ6ZWwgbGFlc3N0IHNpY2ggamV0enQgdm9uIG5lbSBibGluZGVkbiBkaWUgZmFyYmVubGVocmUgZXJrbGFlcmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZWxla29taWtlciEhISAoSmFtZXNvbiwgMjEuIEFwciAyMDAxLCAyMzozMzoyMik6CkViZW4gbmFjaGdlc2NobGFnZW46CgpUZWxlZm9uYnVjaCAoVGVsZWtvbSk6CgpMYW5nIC0tIEdlcmFuaWVuLTE0IC4uLi4uLi4gODQgNDQgMTEKCnd3dy50ZWxlZm9uYnVjaC5kZSAoYXVjaCBUZWxla29tKToKCkxhbmcgLS0gVmVpbGNoZW5zdHIuIDEyIC4uLi4uLi4gODQgNDQgMTEKCnNlbGJzdHZlcnN0YWVuZGxpY2ggaW0gZ2xlaWNoZW4gT3J0LCBiZXZvciBqZW1hbmQgZnJhZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGVsZWtvbWlrZXIhISEgKEltZGEsIDIyLiBBcHIgMjAwMSwgMDA6NDI6MjcpOgp+IyEgcm49SmFtZXNvbiBydD05ODc4ODg4MDIgcmc9d2l0emUKfiMhIHRpZD05ODc4ODg4MDIKRnJhZyBtYWwgYmVpIGRlciBBdXNrdW5mdCBuYWNoIGRlciBudW1tZXIgdm9uIG5hZWNoc3RlbiBULVB1bmt0LgoKIidVbnNlcmUgVC1QdW5rdGUgc2luZCB0ZWxlZm9uaXNjaCBuaWNodCBlcnJlaWNoYmFyLiIKCk1pdCB3YXMgaGFuZGVsdCBpaHIga2FzY2hwZXJzIG5vY2htYWwgPyBBcGZlbHNpbmVuID8KCkltZGEuIGR1cmNoIG5peCBtZWhyIHp1IHZlcmJsdWVmZmVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRlbGVrb21pa2VyISEhIChPbGxpLCAyMi4gQXByIDIwMDEsIDAyOjE5OjM1KToKfiMhIHJuPUltZGEgcnQ9OTg3ODkyOTQ3IHJnPXdpdHplCn4jISB0aWQ9OTg3ODg4ODAyCkhtLCBhbHNvIG1pciBoYWJlbiBzaWUgZGllIE51bW1lciBpbW1lciBmcmVpd2lsbGlnIGdlZ2ViZW4uIFZlcm11dGxpY2gsCndlaWwgc2llIHd1c3N0ZW4sIGRhc3MgZGllIGRvcnQgZWgga2VpbmUgQWhudW5nIGhhYmVuICpnKgoKT2xsaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVGVsZWtvbWlrZXIhISEgKEFuYXRvbCwgMjIuIEFwciAyMDAxLCAxMjo0MDo0MSk6Cn4jISBybj1PbGxpIHJ0PTk4Nzg5ODc3NSByZz13aXR6ZQp+IyEgdGlkPTk4Nzg4ODgwMgpOb3JtYWxlcndlaXNlIHJ1ZWNrZW4gc2llIGRpZSBULVB1bmt0LVRlbGVmb25udW1tZXJuIG5pY2h0IHJhdXMuIFdvenUgYXVjaCwKZnVlciBkZW4gdGVsZWZvbmlzY2hlbiBBdXNrdW5mdCBoYWJlbiBzaWUgKHRlaWx3ZWlzZSBrb3N0ZW5mcmVpZSkgSG90bGluZXMsCmltIFQtUHVua3QgZ2VodCBlcyB1bSBwZXJzb2VubGljaGUgQmV0cmV1dW5nIC0gdW5kIHdlciB3aWxsIHNjaG9uIHdhcnRlbgptdWVzc2VuLCBiaXMgZGVyIEFuZ2VzdGVsbHRlIGVlZW5kbGljaCBkZW4gSG9laHJlciB3aWVkZXIgdm9uIGRlciBIYW5kIGtyaWVndC4KCkFuYXRvbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRlbGVrb21pa2VyISEhIChEZWVwYmx1ZSwgMjIuIEFwciAyMDAxLCAxMzo1MjowMik6Cn4jISBybj1KYW1lc29uIHJ0PTk4Nzg4ODgwMiByZz13aXR6ZQp+IyEgdGlkPTk4Nzg4ODgwMgpWaWVsbGVpY2h0IGlzdCBkZXIgSGVpbnpeaF5oXmheaF5oTGFuZyBlaW5mYWNoIHVtZ2V6b2dlbj8gSW0gSW50ZXJuZXQKYmVyaWNodGlndCwgaW0gdGVsZWZvbmJ1Y2ggaXNzZXMgYWJlciBlcnN0IG5hZWNoc3RlcyBKYWhyIG5ldSBkcmluPwpSdWZudW1tZXJubWl0bmFobWUgc29sbCBqYSBoZXV0ZSBhYiB1bmQgYW4gc29nYXIgYWt6ZXB0aWVydCB3ZXJkZW4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBUZWxla29taWtlciEhISAoSW1kYSwgMjIuIEFwciAyMDAxLCAxNjowNTowNSk6Cn4jISBybj1BbmF0b2wgcnQ9OTg3OTM2MDQxIHJnPXdpdHplCn4jISB0aWQ9OTg3ODg4ODAyCk51amEsIGFiZXIgZnVlciBuZSBBdXNrdW5mdCBkZXIgQXJ0ICJIYW0gc2llIGdlcmFkZSBmb2xnZW5kZXMgR2VyYWV0IHZvcnJhZXRpZwo/IiBzb2xsdGUgbWEgZG9jaCBlaW5nZW50bGljaCBsaWViZXIgZGVuIFQtUHVua3QgYW5ydWZlbiB3aWUgZGllIEhvdGxpbmUuIE9kZXIKaXMgZGFzIHNvIGFid2VnaWNoID8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFRlbGVrb21pa2VyISEhIChNeXRocmFuLCAyMi4gQXByIDIwMDEsIDE3OjA0OjM5KToKfiMhIHJuPUltZGEgcnQ9OTg3OTQ4MzA1IHJnPXdpdHplCn4jISB0aWQ9OTg3ODg4ODAyCkR1IGdsYXVic3Qgd2lya2xpY2ggYW4gdmVyc3RhZW5kaXN2b2xsZSwgdmVybnVlbmZ0aWdlIEt1bmRlbiwKZGllIG5pY2h0LCBzb2JhbGQgU2llIGVpbmUgUnVmbnVtbWVyIGluIGRlbiBIYWVuZGVuIGhhYmVuLCBhbnJ1ZmVuLAp3ZWlsIHNpZSBlaW5lIGtvbXBsZXR0ZSBCZXJhdHVuZyB3b2xsZW4gb2RlciB2b24gZWluZW0KR2VydWVjaHQgZ2Vob2VydCBoYWJlbi4uLj8KCldhcyB3YWVyZSBkYXMgc2Nob2VuICpzZXVmeioKCk15dGhyYW4sIG1pdCBNZW5zY2hlbmtlbm50bmlzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBUZWxla29taWtlciEhISAoRmFudGFnaGlybywgMjIuIEFwciAyMDAxLCAxNzowNjowNSk6Cn4jISBybj1NeXRocmFuIHJ0PTk4Nzk1MTg3OSByZz13aXR6ZQp+IyEgdGlkPTk4Nzg4ODgwMgpPZGVyIGVpbmZhY2ggYW5ydWZlbiwgd2VpbCBzZSBrZWluZSBBaG51bmcgaGFiZW4gdW5kIHZvbiBpcmdlbmR3ZW0gZGllIE51bW1lcgpnZWhvZXJ0IGhhYmVuIHVuZCBkZXMgR2VydWVjaHQgZGF6dSBnZWhvZXJ0IGhhYmVuLCBkYXNzIG1lciBpaG5lbiBkYSBJTU1FUgpoZWxmZW4ga2FubiwgZWdhbCBiZWkgd2VsY2hlbSBQcm9ibGVtLiAKCkZhbnRhKiAtIGFtIFRlbGVmb24gYXJiZWl0ZW5kLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFRlbGVrb21pa2VyISEhIChNZXNpcmlpLCAyNC4gQXByIDIwMDEsIDAxOjA4OjE1KToKfiMhIHJuPUZhbnRhZ2hpcm8gcnQ9OTg3OTUxOTY1IHJnPXdpdHplCn4jISB0aWQ9OTg3ODg4ODAyCk5hamEgaWNoIGhhYiBqYSBnZXN0ZXJuIGF1Y2ggMiBpZGVudGlzY2hlIEJyaWVmZSBiZWtvbW1lbiwgbWl0IGRlcgpCZXN0YWV0aWd1bmcKbWVpbmVzIERTTC1BdWZ0cmFncyB2b20gMTkuIEFwcmlsIGZ1ZXIgZGFzIDMuIFF1YXJ0YWwuCkx1c3RpZ2Vyd2Vpc2UgaGFiIGljaCBnYXJrZWluZW4gQXVmdHJhZyBlcnRlaWx0IDopIGFiZXIgZGFzIDJ4IHp1IGJlc3RhZXRpZ2VuCmlzdCBzY2hvbiBwcmltYSAobmFqYSBkYXMgR2VnZW50ZWlsIGhhbHQgOikKTWVzaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogVGVsZWtvbWlrZXIhISEgKERlZXBibHVlLCAyNC4gQXByIDIwMDEsIDA5OjAzOjA0KToKfiMhIHJuPU1lc2lyaWkgcnQ9OTg4MDY3Mjk1IHJnPXdpdHplCn4jISB0aWQ9OTg3ODg4ODAyCkR1IHNvbGx0ZXN0IGJlc3NlciBhdWYgRGVpbmUgVG9jaHRlciBhdWZwYXNzZW4gOi0pKSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IFRlbGVrb21pa2VyISEhIChSdW1hdGEsIDI0LiBBcHIgMjAwMSwgMTA6NDU6MzYpOgp+IyEgcm49RGVlcGJsdWUgcnQ9OTg4MDk1Nzg0IHJnPXdpdHplCn4jISB0aWQ9OTg3ODg4ODAyCkRhcyBpc3Qgbm9jaCBnYXJuaXgsIGljaCBoYXR0ZSA0IGJlZ3J1ZXNzdW5nc3Bha2V0ZSB2b24gVC1PbmxpbmUKcGVyIEVpbnNjaHJlaWJlbiBiZWtvbW1lbi4KUnVtKiwgamV0enQgbWl0IHZpZWxlbiBCaWVyZGVja2VsbiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlcmdlIHVuZCBBbnRpa29lcnBlciAoR29yb2csICA3LiBNYWkgMjAwMSwgMjM6MTY6NTEpOgpBbGxlbiBkaWUga2VpbmUgQWhudW5nIHZvbiBBbnRpa29lcnBlcmZhZXJidW5nZW4sIEluc2l0dXMgb2RlciBTcXVhc2hlbiBoYWJlbgp2aWVsIFNwYXNzIGJlaW0gbGVzZW4gdW5kIHJhZXRzZWxuIHdhcyBkYXMgd29obCB6dSBiZWRldXRlbiBoYXQgKDsgLgoKS3Vyc3RlaWxuZWhtZXI6IFVuZCB3YXMgYmV3aXJrdCBkYXMgd2VubiB3aXIgZGllIEVtYnJ5b25lbiBibG9ja2VuPyEKQXNzaTogTmFqYSBpY2ggc3RlbGwgbWlyIGRhcyBpbW1lciBzbyB2b3I6IERhIGtvbW10IG5lIGdyb3NzZSBIYW5kIHVuZApiZXN0cmV1dCBkaWUgZ2FuemUgV2VsdCBtaXQgTWVobCwgc28gZGFzcyBudXIgbm9jaCBkaWUgQmVyZ2UgaGVyYXVzIHJhZ2VuLgpEYW5uIGtvbW1lbiBkaWUgQXVzc2VyaXJkaXNjaGVuIHVuZCBsYW5kZW4gYXVmIGRlbiBCZXJnZW4gd2VpbCBzaWUgYXVmIE1laGwKbmljaHQgbGFuZGVuIGtvZW5uZW4uIFVuZCBkaWUgUmF1bXNjaGlmZmUgc2NoYWx0ZW4gZGFubiBzcGFldGVyIHdlbm4gYWxsZQpCZXJnZSBiZXNldHp0IGRpZSBMaWNodGVyIGFuIHVuZCBiaWxkZW4gbiB0b2xsZXMgTXVzdGVyLiAqZ3JpbnMqCgptZkdvcm9nLCBkZXIgaG9mZnQgYmVzc2VyZSBNZXRhcGhlcm4gYWxzIGRpZSB6dSBmaW5kZW4gd2VubiBlciBBc3NpIGlzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmlyZXdhbGxzIChEYXNoZWwsIDExLiBNYWkgMjAwMSwgMjA6MTE6NTMpOgptZXNzZXJrcmVpcwpIaSwgbWFsIHdpZWRlciB3YXMgbmV0dGVzIGF1cyBkZW0gTmV0ZGlnZXN0OgotLQpOZXdzZ3JvdXBzOiBkZS5jb21wLnNlY3VyaXR5LmZpcmV3YWxsClN1YmplY3Q6IFJlOiBIYWNrZXIgQW5ncmlmZiwgdW5kIHdhcyBkYW5uPwpEYXRlOiAxMCBNYXkgMjAwMSAxNzoxODo1MSBHTVQKCkZhYmlhbiBNYXJjdXMgc2NocmllYjoKPiBEYXNzIGRpZSBGaXJld2FsbCBtaXIgbWl0dGVpbHQsIGRhc3MgMTk1LjE4Ni4xMzIuMjUgUG9ydCAxMDI4Cj4gZ2VzY2FubnQgaGF0LCBpc3QgamEgc2Nob24gbWFsIHJlY2h0IHNjaG9lbi4KCkRhcyB3YXIgZWluIElQdjQtUGFrZXQuCiAKPiBBbHMgbmFlY2hzdGVzIGthbm4gaWNoIG5hdWV0cmxpY2ggamV0enQgZWluIGUtbWFpbCBhbiBhYnVzZUBibHVld2luLmNoCj4gc2NocmVpYmVuIHVuZCBtaWNoIHVlYmVyIGRlbiBBbmdyaWZmIGJlc2Nod2VyZW4uCgpBbnNwcmVjaHBhcnRuZXIgaXN0IERlaW4gZWlnZW5lciBQcm92aWRlci4gRXMgZ2lidCBsYWVuZ3N0IHRlY2huaXNjaGUKTW9lZ2xpY2hrZWl0ZW4sIHVtIHp1IHZlcmhpbmRlcm4sIGRhc3Mgc29sY2hlIFBha2V0ZSBEZWluZW4gUmVjaG5lcgp1ZWJlcmhhdXB0IGVycmVpY2hlbi4gU2NocmVpYmUgRGVpbmVtIFByb3ZpZGVyLCBkYXNzIGVyIGRhcyBSb3V0aW5nIHZvbgpJUHY0LVBha2V0ZW4genUgRGlyIGFic3RlbGxlbiBzb2xsLgoKTWFuY2hlIEt1bmRlbiB3dWVuc2NoZW4gZXMsIHNvbGNoZSBQYWtldGUgenUgZXJoYWx0ZW4sIGRlc2hhbGIgd2VyZGVuCnNpZSB2b24gZGVuIG1laXN0ZW4gUHJvdmlkZXJuIGVyc3RtYWwgc3RhbmRhcmRtYWVzc2lnIG1pdCB1ZWJlcm1pdHRlbHQuCkRpZSBnZW5hdWVuIFp1c2FtbWVuaGFlbmdlIHdlcmRlbiBpbiBkZXIgRkFRIGRpZXNlciBHcnVwcGUgYXVmCmh0dHA6Ly93d3cuaWtzLWplbmEuZGUvbWl0YXJiL2x1dHovdXNlbmV0L0ZpcmV3YWxsLmh0bWwKZXJrbGFlcnQuCgpHcnVzcwpBbmRyZWFzCi0tCkRhc2gsIGhhdCBtaWxkZSBnZWxhZWNoZWx0IDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp2b3JzaWNodCBtdW5kYXJ0IChIaWdodCwgMTYuIE1haSAyMDAxLCAyMzozNDowMCk6ClRyZWZmZW4gc2ljaCB6d2VpIEZyZWluZAoKU2FndCBkZXIgRWluZTogQWxsbWFlY2h0IG5hLCB3YXJ1bSBnZWpzdG4gZHUgaW4gc2Nod2F6Ck5hIGhvYXN0IG5ldCBrZWVydD8gTWVpIERhbmRlIEVybmEgaXMgZ3N0b3JtCkFsbG1hZWNodCBuYSwgd29zIGhhdHMgbm8ga2FwcHQ/Clp3YSBaaW1tZXIgdW5kIGEgS2ljaG4KTmEsIGRpIERlcHA7IHdvcyBlcnJlciBnZmVobHQgaGF0IG1hbiBpCkEgQm9kIHVuZCBhbiBCYWxrb24KTkEgd2FydW1zIGdzdG9ybSBpcyBtYW4gaQpBY2ggc3U7IHN0ZWxsIGRyIGZ1cjsgbWlyIGhhbSBhIEZhbWlsaWVuZmVzdGdoYWJ0IHVuZCBkbyBpcyBkaWUKS2VsbGVyc3RlcGZlcmxhIG5vZ2FuZ2VyIHdhbHMgUG90YWdlbiBodWxsbiB3b2xsdCB1bmQgaXMgYXVzZ3J1dHNjaHQgdW5kIGhhdApzaWNocyBHbmFjayBicm9jaGVuCk5BIHNvY2ggYW1vbCwgd29zIGhhYnQgZGVybiBkYW5uIGdtYWNoPwpOdWRlbG4KCgpoaWdodCBncmluc2VuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHZvcnNpY2h0IG11bmRhcnQgKFZhcmxhcmlvbiwgMTYuIE1haSAyMDAxLCAyMzozNToxMSk6Cn4jISBybj1IaWdodCBydD05OTAwNDg4NDAgcmc9d2l0emUKfiMhIHRpZD05OTAwNDg4NDAKamEsIGRlciB0aXRlbCBzYWd0IGFsbGVzLCBhYmVyIGljaCB3aWxsIHRyb3R6ZGVtIG5lIHVlYmVyc2V0enVuZyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiB2b3JzaWNodCBtdW5kYXJ0IChNb250YW51cywgMTYuIE1haSAyMDAxLCAyMzo0NTozMik6Cn4jISBybj1WYXJsYXJpb24gcnQ9OTkwMDQ4OTExIHJnPXdpdHplCn4jISB0aWQ9OTkwMDQ4ODQwCkVoIEFsZGFlLCB2b2xsIGtyYXNzZSBLbGFtb3R0ZW4gaW4gc2Nod2FyegpKbyBleWgsIHdlaXNzdSBtZWluZSBUYW50ZSBFcm5hIGlzcyBnZXN0b3JidApWb2xsIGtyYXNzLCB3YXMgaGF0IHNpZSBkZW5uIGdlaGFidCwgQWxkZT8KRWggdm9sbCBrb25rcmV0ZSB6d2VpIFppbW1lciBtaXQgS3VlY2hlLgpBbGRlciwgaXNjaCB3aWxsIHdpc3NlbiB3YXMgaWhyIGdlZmVobHQgaGF0IQpFaCB3ZWlzc3UsIGJhZCB1bmQgQmFsa29uZy4KQWxkZSwgc2FnICB3YXJ1bSBpc3NpIGdlc3RvcmJlbj8KRWggc3RlbGwgZGlyIHZvciB3aXIgaGF0dGVuIFBhcnR5IHVuZCBkYSB3b2xsdGUgc2llIGtvbmtyZXQgQmllciBhdXMgZGVtCmtlbGxlciBob2xlbiB1bmQgaXN0IHZvbGwga3Jhc3MgZGllIFRyZXBwZSBoZXJ1bnRlciwgdW5kIGtyYWNrcyBHZW5pY2sga2FwdXR0LgpTYWcgYW4sIGlzdCBqYSBrb25rcmV0IGtyYXNzLiBXYXMgaGFidCBpaHIgZGFubiBnZW1hY2h0PwpOdWRlbG4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiB2b3JzaWNodCBtdW5kYXJ0IChWYXJsYXJpb24sIDE2LiBNYWkgMjAwMSwgMjM6NDY6MTgpOgp+IyEgcm49TW9udGFudXMgcnQ9OTkwMDQ5NTMyIHJnPXdpdHplCn4jISB0aWQ9OTkwMDQ4ODQwCmljaCB3ZWlzcywgZGFzIHNwcmljaHQgbmljaHQgZ3JhZCBmdWVyIG1pY2gsIGFiZXIgc28gaGFiIGljaHMgdmVyc3RhbmRlbiwKZGFua2UgbW9udGFudXMgOykKClZhcmwqLCBuaWNodCBpbiBkZXIgYmVzdGVuIEdlZ2VuZCBhdWZnZXdhY2hzZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IHZvcnNpY2h0IG11bmRhcnQgKEhpZ2h0LCAxNy4gTWFpIDIwMDEsIDAwOjE1OjI0KToKfiMhIHJuPVZhcmxhcmlvbiBydD05OTAwNDk1Nzggcmc9d2l0emUKfiMhIHRpZD05OTAwNDg4NDAKcG9kYWdnbiAod2llYXVjaGltbWVyIGRhcyBkYSBnZXNjaHJpZWJlbiB3YXIpIHVuZCBiaWVyIGdsZWljaHp1c2V0emVuIGlzIHNjaG9uCmFyZyAhIApkYXMgc2luZCBrYXJ0b2ZmZWxuCgpoaWdodCBkaWUgYXVnZW4gdmVyZHJlaGVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogdm9yc2ljaHQgbXVuZGFydCAoTW9udGFudXMsIDE3LiBNYWkgMjAwMSwgMDA6Mjc6MjkpOgp+IyEgcm49SGlnaHQgcnQ9OTkwMDUxMzI0IHJnPXdpdHplCn4jISB0aWQ9OTkwMDQ4ODQwCklzY2ggd2Vpc3MsIEFsZGFlLgpVbmQgaXNoIGhhYiBkYWR1cnNjaCBhdWNoIGRpZSBQb2ludGUgdmVyc2F1dCwgYWJlciBkYXMgd2FyIGJlaSBkZW0gV2l0egpnbGF1YmljaCBlZ2FsLiA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IHZvcnNpY2h0IG11bmRhcnQgKFNvbG15ciwgMTcuIE1haSAyMDAxLCAwMTowNjowOSk6Cn4jISBybj1Nb250YW51cyBydD05OTAwNTIwNDkgcmc9d2l0emUKfiMhIHRpZD05OTAwNDg4NDAKR3V0ZSBVZWJlcnNldHp1bmcsIG1laW5lbiBHbHVlY2t3dW5zY2gsIEFsdGVyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3ZW1tYSBzY2hvbiBkYWJlaSBzaW5kLi4uIChJbWRhLCAxNy4gTWFpIDIwMDEsIDEzOjM2OjA4KToKR29odCBhIFNjaHdvYiBkJ0dhc3Mgbm9uZGVyIG9uZCBzaWVoZCB3aWUgZGEgb25kYSBhbSBOZWdnciBvaW5yIHN0b2h0IG9ucwpOZWdncndhc3NyIHNhdWZ0LiBTY2hyZWl0cm4gbyA6ICJEdSBTY2hvb2ZzZWdnbCwgZGllIERyZWNrc2JyaWUga29oc2NoIGphIGl0CnNhdWZhICEiCkRyZWh0IHNpY2ggZGVyIG9tIG9uZCBtb2ludDogIiBOdWUsIHdvcyBob20gc2UgZ2Vzb2Noc3QgPyIKCiJUcmlua2VuIFNpZSBsYW5nc2FtLCBkYXMgV2Fzc2VyIGlzIGthbHQuIgoKSW1kYS4gT25oZSBVZWJlcnNldHp1bmcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogd2VtbWEgc2Nob24gZGFiZWkgc2luZC4uLiAoQW5hdG9sLCAxNy4gTWFpIDIwMDEsIDE2OjM4OjE4KToKfiMhIHJuPUltZGEgcnQ9OTkwMDk5MzY4IHJnPXdpdHplCn4jISB0aWQ9OTkwMDk5MzY4CkZ1ZXIgQmF5ZXJuLCBTYWNoc2VuIHVuZCBhbmRlcmUgQXVzbGFlbmRlcjoKRWluIFNjaHdhYmUgc2NobGVuZGVydCBkdXJjaCBkaWUgU3RyYXNzZW4gdW5kIHdpcmQgWmV1Z2UsIHdpZSBqZW1hbmQKYW0gVWZlciBkZXMgTmVja2FycyBzdGVodCB1bmQgTmVja2Vyd2Fzc2VyIHRyaW5rdC4gUnVmdCBkZXIgU2Nod2FiZToKKGJyZWl0ZXMgc2Nod2FlYmlzY2g6KSAiRHUgZ2Vpc3RpZyBNaW5kZXJiZW1pdHRlbHRlciEgRGllc2UgRHJlY2tzYnJ1ZWhlCmthbm4gbWFuIGRvY2ggbmljaHQgdHJpbmtlbiEiIERlciBUcmlua2VuZGUgd2VuZGV0IHNpY2ggZGVtIFNjaHdhYmVuIHp1CnVuZCBmcmFndDogKHRpZWZzdGVzIHNhZWNoc2lzY2g6KSAiV2llYml0dGU/IFdhcyBzYWd0ZW4gU2llPyIKU2Nod2FiZTogKGJlbXVlaHQgaG9jaGRldXRzY2g6KSAiVHJpbmtlbiBTaWUgbGFuZ3NhbSwgZGFzIFdhc3NlciBpc3Qga2FsdC4iCgpXYXMgbGVybmVuIHdpciBkYXJhdXM/IE11bmRhcmR3aXR6ZSBtdXNzIG1hbiBlaW5mYWNoIGluIE11bmRhcnQgbGFzc2VuLiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2hlIGZhd24gaXMgbGllIHdhbmQhIChBbmF0b2wsIDE3LiBNYWkgMjAwMSwgMTY6Mzk6NDcpOgpbTmFjaGZvbGdlbmRlbiBBcnRpa2VsIHNhaCBpY2ggaW0gTm92ZW1iZXIgJzk3IGRhcyBlcnN0ZSBtYWwsIGluIGRlcgpXaXR6ZS1SdWJyaWsgZGVzIFNpbGJlcmxhbmRlcyAoc2wubXVkLmRlIDQ3MTEpLiBMYXV0IHVuZCBsYW5nc2FtIGxlc2VuLl0KClNoZSBmYXduIGlzIGxpZSB3YW5kICEKCgpIZXV0ZTogRGlhbGVrdGtvbnZlcnNhdGlvbiBhdWYgZGVyIFNraXBpc3RlIHp3aXNjaGVuIFNraWxlaHJlciBISUFTIHVuZCAKICAgICAgIGVpbmVyIGlobSBhbnZlcnRyYXV0ZW4gQW5mYWVuZ2VyaW4uIAoKQU5GQUVOR0VSSU46IE15IG5heSBzaGUgc3VyZSB0b3JuIHdheS4gCgpISUFTOiBXb2UgZGVuID8gCgpBTkZBRU5HRVJJTjogQnkgZGFyZSBmYWlyIHNhbmUuIAoKSElBUzogTG9zcyBtZSBzaG93bi4gSG9zdCB1cyB5YWggYXJlIGZhciBjYXJlZCBvd24uIERpc2ggbnVsbCBhbiBjYWlybiAKICAgICAgb3VzZSBhbi4gU29kYSwgeWVhdHMgZ2FtZSB1cyBvd24uIEZvciBtYSBtaWQ0biBzYXkgc2F5IGxpZnQgb3ZlbiAKICAgICAgaWRlbyB0ZW4gaGUgZ2FsZS4gCiAKKG9iZW4gYW5nZWtvbW1lbi4uLikgCgpBTkZBRU5HRVJJTjogSXQgcm93IG1pbnV0ZSAhIAoKSElBUzogR2FpbiBhIHdpZGVyLCBpcyBOaWNrIHN0YXIgYnkuIAoKQU5GQUVOR0VSSU46IEFjZSBpcyBvJ2JlYXIgc28gSSBzaWNrIC4uLiAKCkhJQVM6IERpdmUgYWxlIEkga25lZSEgR2F5IGhhaXIgZG91Z2gsIEUuIGZvciBmb3IsIGRvIGZvcmNlZCBoaW50IGFpciAKICAgICAgbWVyZSBzaGVlciBuYXkgYm93IGdpcmwuIAoKKEhpYXMgZmFlaHIgbG9zLi4uKSAKCkFORkFFTkdFUklOOiBXYXJ0LCBIaWFzICEgRS4gaG9iIGFuIHN0ZXJuIGdyZWFzZSBhbi4gCgpISUFTOiBHYXkgaGFsdCBpbiBEaWNrIG5lYXIgISBGaXggTm9haCBtb2xlLCBkYXlzIGlzIHdhcyBtaWQgZGF5IG93biAKICAgICAgZmFuIGdlYXIuIE5pY2sncyB3ZSBzaGFyZSBPJ1J5YW4gISAKICAgICAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9yc2ljaHQgTWVkaXp5bmlrZXIhIChBcHN1LCAyNS4gTWFpIDIwMDEsIDIyOjQ3OjA5KToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gQ2hpcnVyZ2VuLCBlaW5lbSBJbnRlcm5pc3RlbiB1bmQgZWluZW0KUGF0aG9sb2dlbj8KCkRlciBDaGlydXJnIGthbm4gYWxsZXMsIGFiZXIgd2Vpc3Mgbml4LgpEZXIgSW50ZXJuaXN0IHdlaXNzIGFsbGVzLCBhYmVyIGthbm4gbml4LgpEZXIgUGF0aG9sb2dlIGthbm4gYWxsZXMgdW5kIHdlaXNzIGFsbGVzLCBhYmVyIHp1IHNwYWV0LgoKQXBzdSwgaW1tZXIgbm9jaCBraWNoZXJuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWb3JzaWNodCBNZWRpenluaWtlciEgKE11cGZlbCwgMjYuIE1haSAyMDAxLCAxODozODoyOCk6Cn4jISBybj1BcHN1IHJ0PTk5MDgyMzYyOSByZz13aXR6ZQp+IyEgdGlkPTk5MDgyMzYyOQpVbmQgZGVyIFBzeWNob2xvZ2Uga2FubiBuaWNodHMsIHdlaXNzIG5pY2h0LCBrYW5uIGFiZXIgYWxsZXMgZXJrbGFlcmVuLi4uCgotbXVwZmVsLSA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BlZWMgUmVjb2duaXRpb24gKEZvb2JhciwgIDIuIEp1biAyMDAxLCAwMDoyODozMCk6Ckxhc3QgeWVhciwgb3V0IGluIENhbGlmb3JuaWEsIGF0IGEgUEMgdXNlcnMgZ3JvdXAsIHRoZXJlIHdhcyBhIGRlbW8gb2YKc21hcnQgc3BlZWNoIHJlY29nbml0aW9uIHNvZnR3YXJlLiBCZWZvcmUgdGhlIGRlbW9uc3RyYXRvciBjb3VsZCBiZWdpbgpoaXMgZGVtbywgYSB2b2ljZSBjYWxsZWQgb3V0IGZyb20gdGhlIGF1ZGllbmNlOiAiRm9ybWF0IGMsIHJldHVybi4gWWVzLApyZXR1cm4uIiBEYW1uZWQgc2hvcnQgZGVtbywgaXQgd2FzLgoKRm9vYmFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgppY2ggZmluZGUgc2l0IHN0cm9veSBjb29sICxvKSAoSGlnaHQsICAzLiBKdW4gMjAwMSwgMDE6MjM6MDUpOgpEYXMgZm9sZ2VuZGUgd2FyIHdpcmtsaWNoIGVpbmUgRnJhZ2UsIGRpZSBhbiBlaW5lciBQaHlzaWtwcnVlZnVuZywgYW4gZGVyClVuaXZlcnNpdGFldCB2b24gS29wZW5oYWdlbiwgZ2VzdGVsbHQgd3VyZGU6CkJlc2NocmVpYmVuIFNpZSwgd2llIG1hbiBkaWUgSG9laGUgZWluZXMgV29sa2Vua3JhdHplcnMgbWl0IGVpbmVtCkJhcm9tZXRlciBmZXN0c3RlbGx0LkVpbiBLdXJzdGVpbG5laG1lciBhbnR3b3J0ZXRlOgpTaWUgYmluZGVuIGVpbiBsYW5nZXMgU3R1ZWNrIFNjaG51ciBhbiBkZW4gQW5zYXR6IGRlcyBCYXJvbWV0ZXJzLCBzZW5rZW4KZGFubiBkYXMgQmFyb21ldGVyIHZvbSBEYWNoIGRlcyBXb2xrZW5rcmF0emVycyB6dW0gQm9kZW4uIERpZSBMYWVuZ2UgZGVyClNjaG51ciBwbHVzIGRpZSBMYWVuZ2UgZGVzIEJhcm9tZXRlcnMgZW50c3ByaWNodCBkZXIgSG9laGUgZGVzCkdlYmFldWRlcy4KRGllc2UgaW4gaG9oZW0gR3JhZGUgb3JpZ2luZWxsZSBBbnR3b3J0IGVudHJ1ZXN0ZXRlIGRlbiBQcnVlZmVyIGRlcm1hc3NlbiwKZGFzcyBkZXIgS3Vyc3RlaWxuZWhtZXIgc29mb3J0IGVudGxhc3NlbiB3dXJkZS4gRXIgYXBwZWxsaWVydGUgYW4gc2VpbmUKR3J1bmRyZWNodGUsIG1pdCBkZXIgQmVncnVlbmR1bmcgZGFzcyBzZWluZSBBbnR3b3J0IHVuYmVzdHJlaXRiYXIga29ycmVrdAp3YXIsIHVuZCBkaWUgVW5pdmVyc2l0YWV0IGVybmFubnRlIGVpbmVuIHVuYWJoYWVuZ2lnZW4gU2NoaWVkc3JpY2h0ZXIsIHVtCmRlbiBGYWxsIHp1IGVudHNjaGVpZGVuLiBEZXIgU2NoaWVkc3JpY2h0ZXIgdXJ0ZWlsdGUsIGRhc3MgZGllIEFudHdvcnQgaW4KZGVyIFRhdCBrb3JyZWt0IHdhciwgYWJlciBrZWluIHdhaHJuZWhtYmFyZXMgV2lzc2VuIHZvbiBQaHlzaWsgemVpZ2UuClVtIGRhcyBQcm9ibGVtIHp1IGxvZXNlbiwgd3VyZGUgZW50c2NoaWVkZW4gZGVuIEt1cnN0ZWlsbmVobWVyIG5vY2htYWxzCmhlcmVpbiB6dSBiaXR0ZW4gdW5kIGlobSBzZWNocyBNaW51dGVuIHp1enVnZXN0ZWhlbiwgaW4gZGVuZW4gZXIgZWluZQptdWVuZGxpY2hlIEFudHdvcnQgZ2ViZW4ga29ubnRlLCBkaWUgbWluZGVzdGVucyBlaW5lIG1pbmltYWxlIFZlcnRyYXV0aGVpdAptaXQgZGVuIEdydW5kcHJpbnppcGllbiB2b24gUGh5c2lrIHplaWd0ZS4KRnVlciBmdWVuZiBNaW51dGVuIHNhc3MgZGVyIEt1cnN0ZWlsbmVobWVyIHN0aWxsLCBkZW4gS29wZiBuYWNoIHZvcm5lLCBpbgpHZWRhbmtlbiB2ZXJzdW5rZW4uIERlciBTY2hpZWRzcmljaHRlciBlcmlubmVydGUgaWhuLCBkYXNzIGRpZSBaZWl0IGxpZWYsCndvcmF1ZiBkZXIgS3Vyc3RlaWxuZWhtZXIgYW50d29ydGV0ZSwgZGFzcyBlciBlaW5pZ2UgZXh0cmVtIHJlbGV2YW50ZQpBbnR3b3J0ZW4gaGF0dGUsIGFiZXIgc2ljaCBuaWNodCBlbnRzY2hlaWRlbiBrb2VubnRlLCB3ZWxjaGUgZXIgdmVyd2VuZGVuCnNvbGx0ZS4gQWxzIGlobSBnZXJhdGVuIHd1cmRlLCBzaWNoIHp1IGJlZWlsZW4sIGFudHdvcnRldGUgZXIgd2llIGZvbGd0OgoiRXJzdGVucyBrb2VubnRlbiBTaWUgZGFzIEJhcm9tZXRlciBiaXMgenVtIERhY2ggZGVzIFdvbGtlbmtyYXR6ZXJzIG5laG1lbiwKZXMgdWViZXIgZGVuIFJhbmQgZmFsbGVuIGxhc3NlbiB1bmQgZGllIFplaXQgbWVzc2VuIGRpZSBlcyBicmF1Y2h0LCB1bSBkZW4KQm9kZW4genUgZXJyZWljaGVuLiBEaWUgSG9laGUgZGVzIEdlYmFldWRlcyBrYW5uIG1pdCBkZXIgRm9ybWVsIEg9MC41ZyB4IHQKaW0gUXVhZHJhdCBiZXJlY2huZXQgd2VyZGVuLiBEZXIgQmFyb21ldGVyIHdhZXJlIGFsbGVyZGluZ3MgZGFoaW4hIE9kZXIsCmZhbGxzIGRpZSBTb25uZSBzY2hlaW50LCBrb2VubnRlbiBTaWUgZGllIEhvZWhlIGRlcyBCYXJvbWV0ZXJzIG1lc3NlbiwgZXMKaG9jaHN0ZWxsZW4gdW5kIGRpZSBMYWVuZ2Ugc2VpbmVzIFNjaGF0dGVucyBtZXNzZW4uIERhbm4gbWVzc2VuIFNpZSBkaWUKTGFlbmdlIGRlcyBTY2hhdHRlbnMgZGVzIFdvbGtlbmtyYXR6ZXJzLCBhbnNjaGxpZXNzZW5kIGlzdCBlcyBlaW5lCmVpbmZhY2hlIFNhY2hlLCBhbmhhbmQgZGVyIHByb3BvcnRpb25hbGVuIEFyaXRobWV0aWsgZGllIEhvZWhlIGRlcwpXb2xrZW5rcmF0emVycyB6dSBiZXJlY2huZW4uCldlbm4gU2llIGFiZXIgaW4gZWluZW0gaG9oZW0gR3JhZGUgd2lzc2Vuc2NoYWZ0bGljaCBzZWluIHdvbGx0ZW4sIGtvZW5udGVuClNpZSBlaW4ga3VyemVzIFN0dWVjayBTY2hudXIgYW4gZGFzIEJhcm9tZXRlciBiaW5kZW4gdW5kIGVzIHNjaHdpbmdlbgpsYXNzZW4gd2llIGVpbiBQZW5kZWwsIHp1ZXJzdCBhdWYgZGVtIEJvZGVuIHVuZCBkYW5uIGF1ZiBkZW0gRGFjaCBkZXMKV29sa2Vua3JhdHplcnMuIERpZSBIb2VoZSBlbnRzcHJpY2h0IGRlciBBYndlaWNodW5nIGRlciBncmF2aXRhdGlvbmFsZW4KV2llZGVyaGVyc3RlbGx1bmdza3JhZnQgVD0ycGkgaW0gUXVhZHJhdCAobC9nKS4KT2Rlciwgd2VubiBkZXIgV29sa2Vua3JhdHplciBlaW5lIGFldXNzZXJlIE5vdHRyZXBwZSBiZXNpdHp0LCB3dWVyZGUgZXMgYW0KZWluZmFjaHN0ZW4gZ2VoZW4gZGEgaGluYXVmIHp1IHN0ZWlnZW4sIGRpZSBIb2VoZSBkZXMgV29sa2Vua3JhdHplcnMgaW4KQmFyb21ldGVybGFlbmdlbiBhYnp1aGFrZW4gdW5kIG9iZW4genVzYW1tZW56YWVobGVuLgpXZW5uIFNpZSBhYmVyIGJsb3NzIGVpbmUgbGFuZ3dlaWxpZ2UgdW5kIG9ydGhvZG94ZSBMb2VzdW5nIHd1ZW5zY2hlbixkYW5uCmtvZW5uZW4gU2llIHNlbGJzdHZlcnN0YWVuZGxpY2ggZGVuIEJhcm9tZXRlciBiZW51dHplbiwgdW0gZGVuIEx1ZnRkcnVjawphdWYgZGVtIERhY2ggZGVzIFdvbGtlbmtyYXR6ZXJzIHVuZCBhdWYgZGVtIEdydW5kIHp1IG1lc3NlbiB1bmQgZGVyClVudGVyc2NoaWVkIGJlenVlZ2xpY2ggZGVyIE1pbGxpYmFyZSB1bXp1d2FuZGVsbiwgdW0gZGllIEhvZWhlIGRlcwpHZWJhZXVkZXMgenUgYmVyZWNobmVuLgpBYmVyLCBkYSB3aXIgc3RhZW5kaWcgYXVmZ2Vmb3JkZXJ0IHdlcmRlbiBkaWUgVW5hYmhhZW5naWdrZWl0IGRlcwpWZXJzdGFuZGVzIHp1IHVlYmVuIHVuZCB3aXNzZW5zY2hhZnRsaWNoZSBNZXRob2RlbiBhbnp1d2VuZGVuLCB3dWVyZGUgZXMKb2huZSBad2VpZmVsIHZpZWwgZWluZmFjaGVyIHNlaW4sIGFuIGRlciBUdWVyIGRlcyBIYXVzbWVpc3RlcnMgenUga2xvcGZlbgp1bmQgaWhtIHp1IHNhZ2VuOiBXZW5uIFNpZSBlaW5lbiBuZXR0ZW4gbmV1ZW4gQmFyb21ldGVyIG1vZWNodGVuLCBnZWJlIGljaApJaG5lbiBkaWVzZXMgaGllciwgdm9yYXVzZ2VzZXR6dCBTaWUgc2FnZW4gbWlyIGRpZSBIb2VoZSBkaWVzZXMKV29sa2Vua3JhdHplcnMuIgpEZXIgS3Vyc3RlaWxuZWhtZXIgd2FyIE5pZWxzIEJvaHIsIGRlciBlcnN0ZSBEYWVuZSBkZXIgdWViZXJoYXVwdCBkZW4KTm9iZWxwcmVpcyBmdWVyIFBoeXNpayBnZXdhbm4uCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpIaWdodCBsZWljaHQgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBbmxlaXR1bmcgZWluZXIgS2F0emUgZWluZSBQaWxsZSB6dSB2ZXJhYnJlaWNoZW4gKEJvaW5nLCAyMC4gSnVuIDIwMDEsIDE3OjQxOjQ1KToKfiMhIHJuPU1pZXplIHJ0PTk5MzA1MTYzOSByZz13aXR6ZQp+IyEgdGlkPTk5MzA1MTYzOQpXYXMgaXN0IGVpbiAnZ3JvZmxpY2tlbi5lcyBIYW5kdHVjaCc/CiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQW5sZWl0dW5nIGVpbmVyIEthdHplIGVpbmUgUGlsbGUgenUgdmVyYWJyZWljaGVuIChXdXJ6ZWwsIDIwLiBKdW4gMjAwMSwgMTc6NDI6MzkpOgp+IyEgcm49Qm9pbmcgcnQ9OTkzMDUxNzA1IHJnPXdpdHplCn4jISB0aWQ9OTkzMDUxNjM5CmVpbiBidWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBbmxlaXR1bmcgZWluZXIgS2F0emUgZWluZSBQaWxsZSB6dSB2ZXJhYnJlaWNoZW4gKEdyaW1tYm9ybiwgMjAuIEp1biAyMDAxLCAxNzo1MDozMyk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTkzMDUxNzU5IHJnPXdpdHplCn4jISB0aWQ9OTkzMDUxNjM5Ck5pY2h0IHJ1bXJlZGVuLCBhYnNldHplbi4gRGEgZ2lidHMgaGllciBleHRyYSBkZW4gQmVmZWhsICJidWciIGZ1ZXIuLi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFubGVpdHVuZyBlaW5lciBLYXR6ZSBlaW5lIFBpbGxlIHp1IHZlcmFicmVpY2hlbiAoQXBzdSwgMjAuIEp1biAyMDAxLCAxNzo1MDo1Nyk6Cn4jISBybj1NaWV6ZSBydD05OTMwNTE2Mzkgcmc9d2l0emUKfiMhIHRpZD05OTMwNTE2MzkKRGEgaXN0IHdvaGwgZWhlciBkYXMgRm9ybWF0IGRlciBXaXR6LiBEZXIgUmVzdCBpc3QgemllbWxpY2ggcmVhbC4uLgoKQXBzdSwgemVybmFyYnQgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBtYW4gbmljaHQgc28gYWxsZXMgZmluZGV0LCB3ZW5uIG1hbiBuYWNoIFNjaG51ZmZlbG4gYmVpIGdvb2dsZS5kZSBzdWNodDogKExpbmZsYXMsICAxLiBKdWwgMjAwMSwgMTI6NDE6NDYpOgpTbyBkdXNjaGVuIFNpZSB3aWUgZWluZSBGcmF1Ci0gWmllaGVuIFNpZSBJaHJlIEtsZWlkZXIgYXVzIHVuZCBsZWdlbiBTaWUgc2llIGluIGRlbiBlbnRzcHJlY2hlbmRlbgpXYWVzY2hla29yYiAod2Vpc3NlIFdhZXNjaGUgLyBCdW50d2Flc2NoZSkKLSBHZWhlbiBTaWUsIGFuZ2V6b2dlbiBtaXQgSWhyZW0gQmFkZW1hbnRlbCwgaW5zIEJhZGV6aW1tZXIuIFdlbm4gU2llCnVudGVyd2VncyBJaHJlbiBNYW5uIG9kZXIgRnJldW5kIHRyZWZmZW4sIGRhbm4gYmVkZWNrZW4gU2llIGplZGVuIFplbnRpbWV0ZXIKSWhyZXMgS29lcnBlcnMgbWl0IGVpbmVyIG5lcnZvZXNlbiBHZXN0ZSB1bmQgcmVubmVuIHNvIHNjaG5lbGwgd2llIG1vZWdsaWNoCmlucyBCYWRlemltbWVyLgotIEJldHJhY2h0ZW4gU2llIHNpY2ggaW0gU3BpZWdlbCB1bmQgc3RyZWNrZW4gU2llIElocmVuIEJhdWNoIGhlcmF1cywgc28gd2VpdApTaWUga29lbm5lbi4gQmVrbGFnZW4gU2llIHNpY2ggZGFubiBkYXJ1ZWJlciwgZGFzcyBTaWUgZWluZW4gQmF1Y2ggYmVrb21tZW4KaGFiZW4uCi0gR2VoZW4gU2llIHVudGVyIGRpZSBEdXNjaGUuIFN1Y2hlbiBTaWUgZGVuIFdhc2NobGFwcGVuIGZ1ZXIgZGFzIEdlc2ljaHQsIGRlbgpXYXNjaGxhcHBlbiBmdWVyIGRpZSBBcm1lLCBkZW4gV2FzY2hsYXBwZW4gZnVlciBkaWUgQmVpbmUsIGRlbiBEdXNjaC1TY2h3YW1tCnVuZCBkZW4gQmltc3N0ZWluLgotIFdhc2NoZW4gU2llIElocmUgSGFhcmUgZWluIGVyc3RlcyBNYWwgbWl0IGRlbSBTaGFtcG9vIDQgaW4gMSBtaXQgODMKVml0YW1pbmVuLgotIFdhc2NoZW4gU2llIElocmUgSGFhcmUgZXJuZXV0IGVpbiBlcnN0ZXMgTWFsIG1pdCBkZW0gU2hhbXBvbyA0IGluIDEgbWl0IDgzClZpdGFtaW5lbi4KLSBCZW51dHplbiBTaWUgZGllIEhhYXJzcHVlbHVuZyBhdWYgZGVyIEJhc2lzIHZvbiBKb2pvYmEtT2VsIHVuZCBnZXRyb2NrbmV0ZW4KQmliZXItR2VuaXRhbGllbi4gTGFzc2VuIFNpZSBkaWUgSGFhcnNwdWVsdW5nIDE1IE1pbnV0ZW4gZWlud2lya2VuLgotIFNjaHJ1YmJlbiBTaWUgSWhyIEdlc2ljaHQgbWl0IGVpbmVyIE1hc2tlIGF1cyBFaWVybiwgZ2VtaXNjaHQgbWl0CkFwcmlrb3Nlbm11cy4gU2NocnViYmVuIFNpZSAxMCBNaW51dGVuLCBiaXMgU2llIGZ1ZWhsZW4sIGRhc3MgSWhyZSBIYXV0CmdlcmVpenQgaXN0LgotIFdhc2NoZW4gU2llIGRpZSBIYWFyc3B1ZWx1bmcgYXVzLiBEaWVzZXIgVm9yZ2FuZyBtdXNzIG1pbmRlc3RlbnMgMTUgTWludXRlbiAKZGF1ZXJuLCBkYW1pdCBTaWUgYXVjaCBzaWNoZXIgc2VpbiBrb2VubmVuLCBkYXMgSWhyZSBIYWFyZSBndXQgYXVzZ2VzcHVlbHQKc2luZC4KLSBSYXNpZXJlbiBTaWUgc2ljaCB1bnRlciBkZW4gQWNoc2VsbiB1bmQgSWhyZSBCZWluZS4gRGVua2VuIFNpZSBkYXJ1ZWJlcgpuYWNoLCBzaWNoIGF1Y2ggZGllIEJpa2luaXpvbmUgenUgcmFzaWVyZW4sIGVudHNjaGxpZXNzZW4gc2ljaCBhYmVyIGRvY2ggZGF6dSwKZGllcyBtaXQgV2FjaHMgenUgdHVuLgotIFNjaHJlaWVuIFNpZSBzbyBsYXV0IGVzIGdlaHQsIHdlbm4gSWhyIE1hbm4gb2RlciBJaHIgRnJldW5kIGRpZSBLbG9zcHVlbHVuZwpiZXRhZXRpZ3Qgb2RlciBzb25zdCBpcmdlbmR3byBXYXNzZXIgbGF1ZmVuIGxhc3N0LgotIERyZWhlbiBTaWUgZGVuIFdhc3NlcmhhaG4gZGVyIER1c2NoZSB6dS4KLSBUcm9ja25lbiBTaWUgYWxsZSBuYXNzZW4gT2JlcmZsYWVjaGVuIGRlciBEdXNjaGUgbWl0IGVpbmVtIFNjaHdhbW0uIFNwcnVlaGVuClNpZSBlaW4gQW50aS1TY2hpbW1lbCBTcHJheSBhdWYgZGllIERpY2h0dW5nZW4gZGVyIER1c2Nod2FubmUuCi0gU3RlaWdlbiBTaWUgYXVzIGRlciBEdXNjaGUuIFRyb2NrbmVuIFNpZSBzaWNoIG1pdCBlaW5lbSBCYWRldHVjaCBhYiwgZGFzIDJ4CnNvIGdyb3NzIGlzdCB3aWUgRGV1dHNjaGxhbmQuIFBhY2tlbiBTaWUgSWhyZSBIYWFyZSBpbiBlaW4gendlaXRlcyBIYW5kdHVjaC4KLSBVbnRlcnN1Y2hlbiBqZWRlIFN0ZWxsZSBJaHJlcyBLb2VycGVycyBhdWYgZGVyIFN1Y2hlIG5hY2ggUGlja2Vsbi4gRHJ1ZWNrZW4KU2llCmRpZXNlIG1pdCBJaHJlbiBGaW5nZXJuYWVnZWxuIG9kZXIgZ2VnZWJlbmVuZmFsbHMgbWl0IEhpbGZlIGVpbmVyIFBpbnpldHRlCmF1cy4KLSBHZWhlbiBTaWUgaW4gSWhyIFppbW1lciB6dXJ1ZWNrLCBkaWNrIGVpbmdlcGFja3QgaW4gSWhyZW4gQmFkZW1hbnRlbCB1bmQgbWl0CmRlbSBIYW5kdHVjaCBhdWYgZGVtIEtvcGYuCi0gV2VubiBTaWUgdW50ZXJ3ZWdzIElocmVuIE1hbm4gb2RlciBGcmV1bmQgdHJlZmZlbiwgZGFubiBiZWRlY2tlbiBTaWUgamVkZW4KWmVudGltZXRlciBJaHJlcyBLb2VycGVycyBtaXQgZWluZXIgbmVydm9lc2VuIEdlc3RlIHVuZCByZW5uZW4gU2llIGluIElocgpaaW1tZXIsIHdvIFNpZSBzaWNoIGVpbnNjaGxpZXNzZW4gdW5kIDEgMS8yIFN0dW5kZW4gZGFtaXQgdmVyYnJpbmdlbiwgc2ljaApmcmlzY2hlIEtsZWlkZXIgYW56dXppZWhlbi4KU28gZHVzY2hlbiBTaWUgd2llIGVpbiBNYW5uCi0gU2V0emVuIFNpZSBzaWNoIGF1ZiBJaHIgQmV0dCwgemllaGVuIFNpZSBJaHJlIEtsZWlkZXIgYXVzIHVuZCB3ZXJmZW4gU2llIHNpZQphdWYgZWluZW4gSGF1ZmVuLgotIEdlaGVuIFNpZSBzcGxpdHRlcmZhc2VybmFja3QgaW5zIEJhZGV6aW1tZXIuIFdlbm4gU2llIHVudGVyd2VncyBJaHJlciBGcmF1Cm9kZXIgSWhyZXIgRnJldW5kaW4gYmVnZWduZW4sIHZlcmdlc3NlbiBTaWUgbmljaHQsIElociBCZWNrZW4gYXVmIGVpbmxhZGVuZGUKQXJ0IHp1IGJld2VnZW4sIHVtIElociB6dSB6ZWlnZW4sIGRhc3MgU2llIHN0b2x6IGF1ZiBJaHIgVGVpbCBzaW5kLgotIEJldHJhY2h0ZW4gU2llIElocmUgdW13ZXJmZW5kZSBtYWVubmxpY2hlIFNpbGhvdWV0dGUgaW0gQmFkZXppbW1lcnNwaWVnZWwKdW5kIHppZWhlbiBTaWUgSWhyZW4gQmF1Y2ggZWluLCB1bSB6dSBzZWhlbiwgb2IgU2llIEJhdWNobXVza2VsbiBoYWJlbgoobmF0dWVybGljaCBoYWJlbiBTaWUga2VpbmUpLgotIEJld3VuZGVybiBTaWUgZGllIEdyb2Vzc2UgSWhyZXMgUGVuaXMsIGtyYXR6ZW4gU2llIElocmUgR2VuaXRhbGllbiB1bmQKcmllY2hlbiBTaWUgZWluIGxldHp0ZXMgTWFsIElocmVuIGhlcmJlbiwgbWFlbm5saWNoZW4gRHVmdCwgaW5kZW0gU2llIGFuIElocmVuCkZpbmdlcm4gc2NobnVmZmVsbi4KLSBHZWhlbiBTaWUgdW50ZXIgZGllIER1c2NoZS4KLSBTdWNoZW4gU2llIGtlaW5lbiBXYXNjaGxhcHBlbiAoU2llIGJlbnV0emVuIG5hZW1saWNoIGtlaW5lbikuCi0gV2FzY2hlbiBTaWUgSWhyIEdlc2ljaHQuCi0gV2FzY2hlbiBTaWUgc2ljaCB1bnRlciBkZW4gQWNoc2Vsbi4KLSBGdXJ6ZW4gU2llIGxhdXRzdGFyayB1bmQgZnJldWVuIFNpZSBzaWNoIHViZXIgZGllIHRvbGxlIFJlc29uYW56IGluIElocmVyCkR1c2Noa2FiaW5lLgotIFdhc2NoZW4gU2llIHNpY2ggSWhyZSBHZW5pdGFsaWVuIHVuZCBkaWUgUGFydGllIGRydW1oZXJ1bS4KLSBXYXNjaGVuIFNpZSBzaWNoIGRlbiBIaW50ZXJuLCBuaWNodCBvaG5lIGRhYmVpIFNjaGFtaGFhcmUgdm9uIElocmVtCkhpbnRlcnRlaWwgYW4gZGVyIFNlaWZlIHp1IGxhc3Nlbi4KLSBOZWhtZW4gU2llIGlyZ2VuZGVpbiBTaGFtcG9vIHVuZCB3YXNjaGVuIFNpZSBzaWNoIGRpZSBIYWFyZS4KLSBPZWZmbmVuIFNpZSBkZW4gRHVzY2h2b3JoYW5nIHVuZCBiZXRyYWNodGVuIFNpZSBzaWNoIG1pdCBkZW0gU2NoYXVtIGltIEhhYXIKaW0gU3BpZWdlbC4gWmllaGVuIFNpZSBhbnNjaGxpZXNzZW5kIGRlbiBEdXNjaHZvcmhhbmcgd2llZGVyIHp1LgotIFZlcmdlc3NlbiBTaWUgbmljaHQsIHp1IHBpbmtlbG4uCi0gU3B1ZWxlbiBTaWUgc2ljaCBhYi4KLSBTdGVpZ2VuIFNpZSBhdXMgZGVyIER1c2NoZS4gVWViZXJzZWhlbiBTaWUgZGFzIFdhc3NlciwgZGFzIHNpY2ggYXVmIGRlbQpCYWRlemltbWVyYm9kZW4gYXVzZ2VicmVpdGV0IGhhdCwgd2VpbCBTaWUgZGVuIER1c2Nodm9yaGFuZyBuaWNodCBnYW56Cnp1Z2V6b2dlbiBoYWJlbi4KLSBUcm9ja25lbiBTaWUgc2ljaCBmbHVlY2h0aWcgYWIuIE5hdHVlcmxpY2ggbGFzc2VuIFNpZSBkZW4gbmFzc2VuCkR1c2Nodm9yaGFuZyBhdWYgZGVuIEJvZGVuIHZvciBzdGF0dCBpbiBkZXIgRHVzY2hlIGFidHJvcGZlbi4KLSBCZXRyYWNodGVuIFNpZSBzaWNoIGltIFNwaWVnZWwuIFNwYW5uZW4gU2llIElocmUgTXVza2VsbiBhbiwgemllaGVuIFNpZQpJaHJlbiBCYXVjaCBlaW4gdW5kIGJld3VuZGVybiBTaWUgZGllIGVub3JtZSBHcm9lc3NlIElocmVzIFBlbmlzIGV0Yy4KLSBTcHVlbGVuIFNpZSBkaWUgRHVzY2h3YW5uZSBuaWNodCBhdXMuCi0gTGFzc2VuIFNpZSBkaWUgSGVpenVuZyB1bmQgZGFzIExpY2h0IGltIEJhZGV6aW1tZXIgYW4uCi0gR2VoZW4gU2llLCBiZWtsZWlkZXQgbnVyIG1pdCBlaW5lbSBIYW5kdHVjaCB1bSBkaWUgSHVlZnRlbiwgenUgSWhyZW0KS2xlaWRlcmhhdWZlbiBpbiBJaHJlbSBaaW1tZXIgenVydWVjay4gV2VubiBTaWUgdW50ZXJ3ZWdzIElocmVyIEZyYXUgb2RlcgpJaHJlciBGcmV1bmRpbiBiZWdlZ25lbiwgb2VmZm5lbiBTaWUgZGFzIEhhbmR0dWNoLCB6ZWlnZW4gU2llIElociBJaHJlbiBQZW5pcwptaXQgZWluZW0gZWxlZ2FudGVuIFNjaHd1bmcgZGVyIEh1ZWZ0ZW4sIGtvbWJpbmllcnQgbWl0IGVpbmVtICJXb3csIGhhc3QgRHUKREFTIERpbmcgZ2VzZWhlbj8iLgotIFdlcmZlbiBTaWUgZGFzIG5hc3NlIEhhbmR0dWNoIGF1ZiBkYXMgQmV0dC4gWmllaGVuIFNpZSBpbm5lcmhhbGIgdm9uIDIKTWludXRlbiBJaHJlIGFsdGVuIEtsZWlkZXIgd2llZGVyIGFuLgoKCkxpbmZsYXMgcHJvYmllcnQgbWFsIGF1cyB3aWUgRnJhdWVuIGRhcyBzbyBtYWNoZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgbWFuIG5pY2h0IHNvIGFsbGVzIGZpbmRldCwgd2VubiBtYW4gbmFjaCBTY2hudWZmZWxuIGJlaSBnb29nbGUuZGUgc3VjaHQ6IChDYXR3ZWF6bGUsICAyLiBKdWwgMjAwMSwgMDk6MTg6NDEpOgp+IyEgcm49TGluZmxhcyBydD05OTM5ODQxMDYgcmc9d2l0emUKfiMhIHRpZD05OTM5ODQxMDYKTmVpbmVpbiwgbmljaHQgZGFzIGFuZGVyZSBHZXNjaGxlY2h0IGtvcGllcmVuLiBVbSB6dSBlaW5lbSB2ZXJudWVuZnRpZ2VuCkVyZ2VibmlzIHNvd29obCBpbiBTYWNoZW4gWmVpdHZlcmJyYXVjaCwgYWxzIGF1Y2ggUmVpbmlndW5nc2tyYWZ0IHp1IGtvbW1lbgp1bmQgZGllIEV4dHJlbWEgZXR3YXMgenUgbml2ZWxsaWVyZW4sIGhpbGZ0IGVzIGFtIGVoZXN0ZW4gZ2VtZWluc2FtIHp1CmR1c2NoZW4uCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhcyBtYW4gbmljaHQgc28gYWxsZXMgZmluZGV0LCB3ZW5uIG1hbiBuYWNoIFNjaG51ZmZlbG4gYmVpIGdvb2dsZS5kZSBzdWNodDogKFNvbG15ciwgIDIuIEp1bCAyMDAxLCAxMzoxMDo1NSk6Cn4jISBybj1MaW5mbGFzIHJ0PTk5Mzk4NDEwNiByZz13aXR6ZQp+IyEgdGlkPTk5Mzk4NDEwNgpXZW5uIE1hZW5uZXIgZGVyIFJhc3NlIE1lbnNjaCBzY2hvbiBzb2xjaGUgU2Nod2VpbmUgc2luZCwgd2llIApzaWVodCBkYXMgZGFubiBiZWkgdW5zIFp3ZXJnZW4gYXVzID8hIDopIFVpdWl1aSwgbGFuZ3NhbSB2ZXJzdGVoCmljaCBYWFgncyAiSmV0enQgaXN0IG1pciBzY2hsZWNodC4iLCBhbHMgaWNoIGZydWZ0ZSAiS29taXNjaCwKaWNoIGhhYmUgZ2VkdXNjaHQsIHJpZWNoZSB1bnRlciBkZW4gQWNoc2VsbiBhYmVyIG5hY2ggSGFzY2gsb2ItCndvaGwgaWNoIGRhcyBkb2NoIGdhZW56bGljaCBhdWZnZWdlYmVuIGhhYiIgOikKCk1mRyBTb2wqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBtYW4gbmljaHQgc28gYWxsZXMgZmluZGV0LCB3ZW5uIG1hbiBuYWNoIFNjaG51ZmZlbG4gYmVpIGdvb2dsZS5kZSBzdWNodDogKFJvY2h1cywgIDIuIEp1bCAyMDAxLCAyMzoxODo1OSk6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9OTk0MDU4MzIxIHJnPXdpdHplCn4jISB0aWQ9OTkzOTg0MTA2CkljaCBob2ZmZSwgRHUgdmVyc3RlaHN0IHVudGVyIHZlcm51ZW5mdGlnZW0gWmVpdHZlcmJyYXVjaAp2ZXJudWVuZnRpZyBMQU5HRSA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV2FzIG1hbiBuaWNodCBzbyBhbGxlcyBmaW5kZXQsIHdlbm4gbWFuIG5hY2ggU2NobnVmZmVsbiBiZWkgZ29vZ2xlLmRlIHN1Y2h0OiAoQXBvbGxvbmlhLCAgMy4gSnVsIDIwMDEsIDIxOjM1OjUwKToKfiMhIHJuPUNhdHdlYXpsZSBydD05OTQwNTgzMjEgcmc9d2l0emUKfiMhIHRpZD05OTM5ODQxMDYKQWxzbywgQ2F0dHksIHdlbm4gbWFuIGdlbWVpbnNhbSBkdXNjaHQsIGtvbW10IG1hbiBiZXN0aW1tdCB6dSBrZWluZW0KdmVybnVlbmZ0aWdlbiBWZXJnbGVpY2guLi4KCkFwbyoKZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBtYW4gbmljaHQgc28gYWxsZXMgZmluZGV0LCB3ZW5uIG1hbiBuYWNoIFNjaG51ZmZlbG4gYmVpIGdvb2dsZS5kZSBzdWNodDogKFRlZGR5LCAgNC4gSnVsIDIwMDEsIDA0OjA3OjQ5KToKfiMhIHJuPUFwb2xsb25pYSBydD05OTQxODg5NTAgcmc9d2l0emUKfiMhIHRpZD05OTM5ODQxMDYKYWJlciB6dSB2b2VsbGlnIG5ldWVuIEVyZ2Vibmlzc2VuLiA7LSkKClRlZGR5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwaGlsb3NvcGhpZSAoV3VyemVsLCAxMi4gSnVsIDIwMDEsIDE5OjA2OjQ3KToKRWluIFBoaWxvc29waGllcHJvZmVzc29yIHN0YW5kIHZvciBzZWluZW4gU3R1ZGVudGVuIHVuZCBoYXR0ZSBlaW4gcGFhciBEaW5nZQp2b3Igc2ljaCBsaWVnZW4uIEFscyBkZXIgVW50ZXJyaWNodCBiZWdhbm4sIG5haG0gZXIgZWluIGdyb3NzZXMgbGVlcmVzCk1heW9ubmFpc2VnbGFzIHVuZCBmdWVsbHRlIGVzIGJpcyB6dW0gUmFuZCBtaXQgZ3Jvc3NlbiBTdGVpbmVuLiBBbnNjaGxpZXNzZW5kCmZyYWd0ZSBlciBzZWluZSBTdHVkZW50ZW4sIG9iIGRhcyBHbGFzIHZvbGwgc2VpLiBTaWUgCnN0aW1tdGVuIGlobSB6dS4KCkRlciBQcm9mZXNzb3IgbmFobSBlaW5lIFNjaGFjaHRlbCBtaXQgS2llc2Vsc3RlaW5lbiB1bmQgc2NodWV0dGV0ZSBzaWUgCmluIGRhcyBHbGFzIHVuZCBzY2h1ZXR0ZWx0ZSBlcyBsZWljaHQuIERpZSBLaWVzZWxzdGVpbmUgcm9sbHRlbiBuYXR1ZXJsaWNoIGluCmRpZSBad2lzY2hlbnJhZXVtZSBkZXIgZ3JvZXNzZXJlbiBTdGVpbmUuIERhbm4gZnJhZ3RlIGVyIHNlaW5lIFN0dWRlbnRlbgplcm5ldXQsIG9iIGRhcyBHbGFzIGpldHp0IHZvbGwgc2VpLiBTaWUgc3RpbW10ZW4gd2llZGVyIHp1IHVuZCBsYWNodGVuLgoKRGVyIFByb2Zlc3NvciBzZWluZXJzZWl0cyBuYWhtIGVpbmUgU2NoYWNodGVsIG1pdCBTYW5kIHVuZCBzY2h1ZXR0ZXRlIGlobiBpbgpkYXMgR2xhcy4gTmF0dWVybGljaCBmdWVsbHRlIGRlciBTYW5kIGRpZSBsZXR6dGVuIFp3aXNjaGVucmFldW1lIGltIEdsYXMgYXVzLgoiTnVuIiwgc2FndGUgZGVyIFByb2Zlc3NvciB6dSBzZWluZW4gU3R1ZGVudGVuLCAiSWNoIG1vZWNodGUsIGRhc3Mgc2llCmVya2VubmVuLCBkYXNzIGRpZXNlcyBHbGFzIHdpZSBpaHIgTGViZW4gaXN0ISBEaWUgU3RlaW5lIHNpbmQgZGllIHdpY2h0aWdlbgpEaW5nZSBpbSBMZWJlbjogaWhyZSBGYW1pbGllLCBpaHIgUGFydG5lciwgaWhyZSBHZXN1bmRoZWl0LCBpaHJlIEtpbmRlciwKRGluZ2UsIGRpZSAtIHdlbm4gYWxsZXMgYW5kZXJlIHdlZ2ZpZWxlIHVuZCBudXIgc2llIHVlYnJpZyBibGllYmVuIC0gaWhyIExlYmVuCmltbWVyIG5vY2ggZXJmdWVsbGVuIHd1ZXJkZW4uIERpZSBLaWVzZWxzdGVpbmUgc2luZCBhbmRlcmUsIHdlbmlnZXIgd2ljaHRpZ2UKRGluZ2Ugd2llIHouQi4gaWhyZSBBcmJlaXQsIGlocmUgV29obnVuZywgaWhyIEhhdXMgb2RlciBpaHIgQXV0by4KCkRlciBTYW5kIHN5bWJvbGlzaWVydCBkaWUgZ2FueiBrbGVpbmVuIERpbmdlIGltIExlYmVuLiBXZW5uIHNpZSBkZW4gU2FuZAp6dWVyc3QgaW4gZGFzIEdsYXMgZnVlbGxlbiwgYmxlaWJ0IGtlaW4gUmF1bSBmdWVyIGRpZSBLaWVzZWxzdGVpbmUgb2RlciBkaWUKZ3Jvc3NlbiBTdGVpbmUuIFNvIGlzdCBlcyBhdWNoIGluIGlocmVtIExlYmVuOiB3ZW5uIHNpZSBhbGwgaWhyZSBFbmVyZ2llIGZ1ZXIKZGllIGtsZWluZW4gRGluZ2UgaW4gaWhyZW0gTGViZW4gYXVmd2VuZGVuLCBoYWJlbiBzaWUgZnVlciBkaWUgZ3Jvc3NlbiBrZWluZQptZWhyLiBBY2h0ZW4gc2llIGF1ZiBkaWUgd2ljaHRpZ2VuIERpbmdlLCBuZWhtZW4gc2llIHNpY2ggWmVpdCBmdWVyIGlocmUKS2luZGVyIG9kZXIgaWhyZW4gUGFydG5lciwgYWNodGVuIHNpZSBhdWYgaWhyZSBHZXN1bmRoZWl0LiBFcyB3aXJkIG5vY2ggZ2VudWcKWmVpdCBmdWVyIEFyYmVpdCwgSGF1c2hhbHQsIFBhcnR5cyB1c3cuIEFjaHRlbiBzaWUgenVlcnN0IGF1ZiBkaWUgZ3Jvc3NlbgpTdGVpbmUsIHNpZSBzaW5kIGVzIGRpZSB3aXJrbGljaCB6YWVobGVuLiBEZXIgUmVzdCBpc3QgbnVyIFNhbmQuIgoKLi4uLiBOYWNoIGRlbSBVbnRlcnJpY2h0IG5haG0gZWluZXIgZGVyIFN0dWRlbnRlbiBkYXMgR2xhcyBtaXQgZGVuIGdyb3NzZW4KU3RlaW5lbiwgZGVuIEtpZXNlbG4gdW5kIGRlbSBTYW5kIC0gYmVpIGRlbSBtaXR0bGVyd2VpbGUgc29nYXIgZGVyIFByb2Zlc3Nvcgp6dXN0aW1tdGUsIGRhc3MgZXMgdm9sbCB3YXIgLSB1bmQgc2NodWV0dGV0ZSBlaW4gR2xhcyBCaWVyIGhpbmVpbi4gRGFzIEJpZXIKZnVlbGx0ZSBkZW4gbm9jaCB2ZXJibGllYmVuZW4gUmF1bSBpbSBHbGFzIGF1czsgZGFubiB3YXIgZXMgd2lya2xpY2ggdm9sbC4KCkRpZSBNb3JhbCB2b24gZGVyIEdlc2NoaWNodGU6Ci4uLiBlZ2FsIHdpZSBlcmZ1ZWxsdCBlaW4gTGViZW4gaXN0LCBlcyBpc3QgaW1tZXIgbm9jaCBQbGF0eiBmdWVyIGVpbiBCaWVyLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbnNlbC1EdWVsbCAoVHN1bmFtaSwgMTIuIEp1bCAyMDAxLCAxOToxMDoxOSk6CgpJbnNlbCBEdWVsbAogCklyZ2VuZHdvIGltIE96ZWFuIHN0cmFuZGVuIGVpbmlnZSBMZXV0ZSB1bnRlcnNjaGllZGxpY2hlciBOYXRpb25hbGl0YWV0CmF1ZiBlaW5lciBwYXJhZGllc2lzY2hlbiBJbnNlbDoKIAoyIEl0YWxpZW5lciAxIEl0YWxpZW5lcmluCjIgRnJhbnpvc2VuIDEgRnJhbnpvZXNpbgoyIERldXRzY2hlIChtKSAxIERldXRzY2hlICh3KQoyIEdyaWVjaGVuIDEgR3JpZWNoaW4KMiBFbmdsYWVuZGVyIDEgRW5nbGFlbmRlcmluCjIgQnVsZ2FyaWVyIDEgQnVsZ2FyaW4KMiBTY2h3ZWRlbiAxIFNjaHdlZGluCjIgQXVzdHJhbGllciAxIEF1c3RyYWxpZXJpbgoyIE5ldXNlZWxhZW5kZXIgMSBOZXVzZWVsYWVuZGVyaW4KMiBJcmVuIDEgSXJpbgoyIFNpbmdhcHVyaWFuZXIgMSBTaW5nYXB1cmlhbmVyaW4KMiBUdWVya2VuIDEgVHVlcmtpbgoyIE9lc3RlcnJlaWNoZXIgMSBPZXN0ZXJyZWljaGVyaW4KMiBTY2h3ZWl6ZXIgdW5kIDEgU2Nod2VpemVyaW4KCiAKRWluIE1vbmF0IHNwYWV0ZXI6CgoxIEl0YWxpZW5lciBoYXQgZGVuIGFuZGVyZW4gd2VnZW4gZGVyIEl0YWxpZW5lcmluIHVtZ2VicmFjaHQuCgpEaWUgMiBGcmFuem9zZW4gbGViZW4gZ2x1ZWNrbGljaCBtaXQgZGVyIEZyYW56b2VzaW4gaW4gZWluZXIgIm1lbmFnZQphIHRyb2lzIi4KCkRpZSBiZWlkZW4gRGV1dHNjaGVuIGhhYmVuIGVpbmVuIHN0cmVuZyBlaW5nZWhhbHRlbmVuIHdvZWNoZW50bGljaGVuClplaXRwbGFuIGF1Zmdlc3RlbGx0LCB3aWUgc2llIHNpY2ggamV3ZWlscyBhYndlY2hzZWxuLgoKRGllIGJlaWRlbiBHcmllY2hlbiBzY2hsYWZlbiBtaXRlaW5hbmRlciB1bmQgZGllIEdyaWVjaGluIGRhcmYgZnVlciBzaWUKcHV0emVuIHVuZCBrb2NoZW4uCgpEaWUgYmVpZGVuIEVuZ2xhZW5kZXIgd2FydGVuIG5vY2ggYXVmIGplbWFuZGVuLCBkZXIgc2llIGRlciBFbmdsYWVuZGVyaW4Kdm9yc3RlbGx0LgoKRGllIGJlaWRlbiBCdWxnYXJlbiBoYWJlbiBzaWNoIHp1ZXJzdCBkaWUgQnVsZ2FyaW4gdW5kIGRhbm4gZGVuIE96ZWFuCmFuZ2VzY2hhdXQsIHVtIGRhbm4gZGF2b256dXNjaHdpbW1lbi4KCkRpZSBiZWlkZW4gU2Nod2VkZW4gdWViZW4gc2ljaCBpbiBkZXIgS3Vuc3QgZGVzIFNlbGJzdG1vcmRzLCB3YWVocmVuZCBkaWUKU2Nod2VkaW4gbGFuZ2UgVm9ydHJhZWdlIGRhcnVlYmVyIGhhZWx0LCBkYXNzIGlociBLb2VycGVyIGlociBnZWhvZXJ0LCB1bmQKdWViZXIgZGllIEdydW5kc2FldHplIGRlcyBGZW1pbmlzbXVzLiBBYmVyIHdlbmlnc3RlbnMgc2NobmVpdCBlcyBuaWNodAp1bmQgZGllIFN0ZXVlcm4gc2luZCBuaWVkcmlnLgoKQXVzdHJhbGllciBzaW5kIGVoIGFsbGUgYmlzZXh1ZWxsLCBhbHNvIGtlaW4gUHJvYmxlbS4KCkRpZSBiZWlkZW4gTmV1c2VlbGFlbmRlciBoYWJlbiBhbmdlZmFuZ2VuLCBkaWUgSW5zZWwgbmFjaCBTY2hhZmVuCmFienVzdWNoZW4gd2FlaHJlbmQgc2ljaCBkaWUgTmV1c2VlbGFlbmRlcmluIG1pdCBlaW5lciBCYW5hbmUsIGRpZSBzaWUKenVmYWVsbGlnIGZhbmQsIGFuZ2VmcmV1bmRldCBoYXQuCgpEaWUgSXJlbiBoYWJlbiBkaWUgSW5zZWwgenVlcnN0IGluIGVpbmVuIE5vcmQtIHVuZCBlaW5lbiBTdWVkdGVpbAphdWZnZXRlaWx0IHVuZCBlaW5lIFdoaXNreS1EZXN0aWxsZXJpZSBnZWJhdXQuIElud2lld2VpdCBzaWUgU2V4IHdvbGxlbiwKaGFiZW4gc2llIHZlcmdlc3NlbiwgbmFjaGRlbSBlcyBuYWNoIGRlbiBlcnN0ZW4gcGFhciBMaXRlcm4gYmVzdGVuIApLb2tvcy1XaGlza2V5cyBpcmdlbmR3aWUgc28gbmVibGlnIGdld29yZGVuIGlzdC4gQWJlciBzaWUgc2luZCBnbHVlY2tsaWNoIAptaXRlaW5hbmRlciwgZGVubiBzaWUgc2luZCBzaWNoIGRhcnVlYmVyIGVpbmlnLCBkZW4gRW5nbGFlbmRlcm4gCmtlaW5lc2ZhbGxzIGV0d2FzIGFienVnZWJlbiEKCkRpZSBTaW5nYXB1cmlhbmVyIHdhcnRlbiBub2NoIGF1ZiBBbndlaXN1bmdlbiB2b24gZGVyIFJlZ2llcnVuZy4KCkRpZSBUdWVya2luIGlzdCBwZXJtYW5lbnQgc2Nod2FuZ2VyLCBkaWUgYmVpZGVuIFR1ZXJrZW4gYmFnZ2VybiBkYWhlcgpzdGFlbmRpZyBkaWUgYmxvbmRlIFNjaHdlZGluIGFuLgoKRGllIGJlaWRlbiBPZXN0ZXJyZWljaGVyIGVpbmlnZW4gc2ljaCBkYXJhdWYsIGRpZSBPZXN0ZXJyZWljaGVyaW4KZ2VsZWdlbnRsaWNoIGdlZ2VuIEVudGdlbHQgYW4gZGllIFR1ZXJrZW4genUgdmVybWlldGVuIHVuZCBrYXVmZW4gc2ljaApkYWZ1ZXIgV2hpc2t5IGJlaSBkZW4gSXJlbi4KCkRpZSBTY2h3ZWl6ZXIgc2NobG9zc2VuIGJpbGF0ZXJhbGUgVmVydHJhZWdlIG1pdCBkZW4gYW5kZXJlbiwgZGllIElobmVuCmdlbnVnIHp1IEVzc2VuLCB6dSB0cmlua2VuIHVuZCBBYndlY2hzbHVuZyBiZWltIFNleCBzaWNoZXJzdGVsbGVuIApzb2xsdGVuLgoKQWxsZSB3YXJlbiBlaW52ZXJzdGFuZGVuLCBudXIgZGllIGRyZWkgU2Nod2VpemVyIGhhYmVuIGRpZSBWZXJ0cmFlZ2Ugd2VnZW4KaW50ZXJuZW4gUXVlcmVsZW4gYmlzIGdlc3Rlcm4gbmljaHQgcmF0aWZpemllcnQgdW5kIHNpbmQgc29lYmVuIHZlcmh1bmdlcnQuCiAKRklOSVMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldGRpZ2VzdCAobWFsIHdpZWRlcikgKFZhbmlvbiwgMTUuIEp1bCAyMDAxLCAyMzozNzo1Nyk6CgpIaSAiUGF1bCIgPHBhdWx3b2V0emVsQGhvdG1haWwuY29tPiEgT24gVGh1LCAxMiBKdWwgMjAwMSAxODoxMjozOSArMDIwMCwKeW91IHdyb3RlOgoKPiBpbSBNb21lbnQgYmluIGljaCBldHdhcyBkdXJjaGVpbmFuZGVyIHVuZCB3b2xsdGUgbWFsIGViZW4gZnJhZ2VuICwgb2IKPiB1bmQgd2llIG1hbiAqLnBsIERhdGVpZW4gaW4gKi5jZ2kgRGF0ZWllbiBrb21waWxpZXJlbiBrYW5uICwgb2RlciBvYiBkaWUKPiBnYXJuaXggbWl0ZWluYW5kZXIgenUgdHVuIGhhYmVuID8/PwoKVW50ZXIgVW5peCBnaWJ0IGVzIGRhIGRlbm4gImNwIiBDb21waWxlciAoa3VyeiBmdWVyICJjb21waWxlIHBlcmwiKSwKQW53ZW5kdW5nOgoKICAgICAgICBjcCBzb3VyY2UucGwgb3V0cHV0LmNnaQoKClNDTlIgOikKCkRhbmllbAoKCi0tIApTdWJtaXNzaW9uZW4gZnVlciBkZS5hbHQubmV0ZGlnZXN0IGJpdHRlIGFuCjxkZS1hbHQtbmV0ZGlnZXN0QG1vZGVyYXRvcnMuZGFuYS5kZT4gc2NoaWNrZW4uCkRlciBTdWJtaXR0ZXIgaXN0IGZ1ZXIgZGVuIEluaGFsdCBkZXIgRWlucmVpY2h1bmcgdmVyYW50d29ydGxpY2gsIApuaWNodCBkZXIgTW9kZXJhdG9yIGRlciBOZXdzZ3J1cHBlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldGRpZ2VzdCAobWFsIHdpZWRlcikgKE1vbnRhbnVzLCAxNS4gSnVsIDIwMDEsIDIzOjQ0OjIxKToKfiMhIHJuPVZhbmlvbiBydD05OTUyMzMwNzcgcmc9d2l0emUKfiMhIHRpZD05OTUyMzMwNzcKR3JpbW1ib3JuLAp2ZXJsZWcgZGFzIGRvY2ggYml0dGUgaW4gZGllIFJ1YnJpayAiTWVpbmJldHJpZWJzc3lzdGVtaXN0YmVzc2VyYWxzZGVpbnMiLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV0ZGlnZXN0IChtYWwgd2llZGVyKSAoWm9vaywgMTUuIEp1bCAyMDAxLCAyMzo0ODoxNCk6Cn4jISBybj1Nb250YW51cyBydD05OTUyMzM0NjEgcmc9d2l0emUKfiMhIHRpZD05OTUyMzMwNzcKVW5kIHdhcyBnaWJ0cyBkYW5uIGRvcnQgZnVlciBSZV4xMDA/IDspCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXRkaWdlc3QgKG1hbCB3aWVkZXIpIChNdXBmZWwsIDE2LiBKdWwgMjAwMSwgMjM6Mzk6MjgpOgp+IyEgcm49TW9udGFudXMgcnQ9OTk1MjMzNDYxIHJnPXdpdHplCn4jISB0aWQ9OTk1MjMzMDc3CkljaCBnbGF1YiwgZGllIGdpYnRzIGhpZXIgZ2FyIG5pY2h0Li4uIChtdXNzIG1hIGVpbmVyIGFubGVnZW4sIFpvb29vb29vb29rISEhCjspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbXVycGhpZXMgdHJpY2tzIGJlaW0gZGVidWdnZW4gLi4uIChIaXJ1ZG8sIDE5LiBKdWwgMjAwMSwgMTI6NDg6MDQpOgpvZnQgc2NoZWludCBkaWUgbWVpc3RlIGZhbnRhc2llIGRlciBlbnR3aWNrbGVyIGluIGRpZSBmZWhsZXIgenUgZmxpZXNzZW4KIC0gcmVsZXZhbnRlIHRlc3RhdXNnYWJlIGlzdCBuaWNodCBzaWNodGJhciAodm9uIEVuZGxvc3NjaGxlaWZlCiAgIHdlZ2dlc2Nyb2xsdCAtPiBwcm90b2tvbGxpZXJlbmRlIHNoZWxsIHRlcm1pbmllcnQpCiAtIGRlciBkZWJ1Z2dlciBzdHVlcnp0IGFiCiAtIGRhcyBwcm9ncmFtbSBmdW5rdGlvbmllcnQgbnVyIG1pdCBvcHRpbWllcnVuZyAvIGltIGRlYnVnZ2VyIG5pY2h0CiAtIHRlc3RhdXNnYWJlbiBldGMuIHNpbmQgd2lya3VuZ3Nsb3MsIHdlaWwgendlaSBwcm9ncmFtbXZlcnNpb25lbgogICBiZW51dHp0IHdlcmRlbjogZWluZSB6dW0gZWRpdGllcmVuLCBkaWUgYW5kZXJlIHp1bSBjb21waWxpZXJlbgogICAoYXVzZ2VmdWVocnQgd3VyZGUgZGllIGRyaXR0ZSB2ZXJzaW9uKQogLSBkaWUgZ2xlaWNoZSBwcm9ncmFtbXN0ZWxsZSBleGlzdGllcnQgbWVocm1hbHMuIGRpZSBnZWFlbmRlcnRlCiAgIHd1cmRlIGdhciBuaWNodCBlcnJlaWNodC4KCnF1ZWxsZTogT09TRSAtIFZMIGFuIGRlciBUVS1CZXJsaW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBtdXJwaGllcyB0cmlja3MgYmVpbSBkZWJ1Z2dlbiAuLi4gKFd1cnplbCwgMTkuIEp1bCAyMDAxLCAxNToxMjoxNCk6Cn4jISBybj1IaXJ1ZG8gcnQ9OTk1NTM5Njg0IHJnPXdpdHplCn4jISB0aWQ9OTk1NTM5Njg0CmtvbW10IG1pciBiZWthbm50IHZvci4uLiBoYWIgaWNoIGFsbGVzIG1hbCBlcmxlYnQuCmlzdCBhbHNvIG5pY2h0IHdpcmtsaWNoIGVpbiB3aXR6IDopCmluc2Jlc29uZGVyZSBuZXR0IGlzdCBkaWUgc2FjaGUgbWl0IGRlciBvcHRpbWllcnVuZywgZGEgc3VjaHQgbWFuIHNpY2ggenUgCnRvZGUuLi4KCnd1cnplbCAobmllIHdpZWRlciBjISkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogbXVycGhpZXMgdHJpY2tzIGJlaW0gZGVidWdnZW4gLi4uIChDdWNodWxsaW4sIDE5LiBKdWwgMjAwMSwgMTU6MzI6MjgpOgp+IyEgcm49V3VyemVsIHJ0PTk5NTU0ODMzNCByZz13aXR6ZQp+IyEgdGlkPTk5NTUzOTY4NApbRm9ydHVuZTpdCgpUaGUgRmlyc3QgUnVsZSBvZiBQcm9ncmFtIE9wdGltaXphdGlvbjoKICAgICAgRG9uJ3QgZG8gaXQuCgpUaGUgU2Vjb25kIFJ1bGUgb2YgUHJvZ3JhbSBPcHRpbWl6YXRpb24gKGZvciBleHBlcnRzIG9ubHkhKToKICAgICAgRG9uJ3QgZG8gaXQgeWV0LgogICAgICAgICAgICAtLSBNaWNoYWVsIEphY2tzb24KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV0FTIElDSCBWT04gTUVJTkVOIEtJTkRFUk4gR0VMRVJOVCBIQUJFIChHQU5aIEVIUkxJQ0gpIChJdm8sIDIwLiBKdWwgMjAwMSwgMTU6NDg6MTIpOgpEaWUgZm9sZ2VuZGUgTGlzdGUgc3RhbW10IHZvbiBlaW5lciBNdXR0ZXIgYXVzIEF1c3RpbiwgVGV4YXMsIGluIGRlbgpVU0EsIGRpZSBhbm9ueW0gYmxlaWJlbiBtb2VjaHRlLgoKV0FTIElDSCBWT04gTUVJTkVOIEtJTkRFUk4gR0VMRVJOVCBIQUJFIChHQU5aIEVIUkxJQ0gpOzEuIEVpbiBncm9zc2VzCldhc3NlcmJldHQgZW50aGFlbHQgYXVzcmVpY2hlbmQgV2Fzc2VyLCB1bSBlaW4gSGF1cyB2b24KMTgwIFF1YWRyYXRtZXRlcm4gMTAgY20gaG9jaCB1bnRlciBXYXNzZXIgenUgc2V0emVuLjsyLiBXZW5uIG1hbiBIYWFyc3ByYXkgYXVmClN0YXViYmFlbGxjaGVuIHNwcnVlaHQgdW5kIG1pdCBJbmxpbmUtU2thdGVyCmRydWViZXIgZmFlaHJ0LCBrb2VubmVuIHNpY2ggZGllIFN0YXViYmFlbGxjaGVuIGVudHp1ZW5kZW4uOzMuIERpZSBTdGltbWUKZWluZXMgRHJlaWphZWhyaWdlbiBpc3QgbGF1dGVyIGFscyAyMDAgRXJ3YWNoc2VuZSBpbiBlaW5lbQp0b2xsZW4gUmVzdGF1cmFudC47NC4gV2VubiBtYW4gZWluZSBIdW5kZWxlaW5lIGFuIGVpbmVtIERlY2tlbnZlbnRpbGF0b3IKYmVmZXN0aWd0LCBpc3QKZGVyIE1vdG9yIG5pY2h0IHN0YXJrIGdlbnVnLCB1bSBlaW5lbiAyMCBLaWxvZ3JhbW0gc2Nod2VyZW4gSnVuZ2VuLCBkZXIKQmF0bWFuLVVudGVyd2Flc2NoZSB1bmQgZWluIFN1cGVybWFuLUNhcGUgdHJhZWd0LCBydW5kaGVydW0genUgYmVmb2VyZGVybi4KRGllIE1vdG9ya3JhZnQgcmVpY2h0IGRhZ2VnZW4gYXVzLCB3ZW5uIGVpbiBGYXJiZWltZXIgYW0gVmVudGlsYXRvcgpoYWVuZ3QsIGRpZSBGYXJiZSBhdWYgYWxsZW4gdmllciBXYWVuZGVuIGVpbmVzIDYgeCA2IE1ldGVyIGdyb3NzZW4gWmltbWVycwp6dSB2ZXJ0ZWlsZW4uOzUuIE1hbiBzb2xsdGUga2VpbmUgQmFzZWJhbGwtQmFlbGxlIGhvY2h3ZXJmZW4sIHdlbm4gZGVyCkRlY2tlbnZlbnRpbGF0b3IgZWluZ2VzY2hhbHRldCBpc3QuIFNvbGwgZGVyIERlY2tlbnZlbnRpbGF0b3IgYWxzClNjaGxhZWdlciB2ZXJ3ZW5kZXQgd2VyZGVuLCBtdXNzIG1hbiBkZW4gQmFsbCBlaW5pZ2UgTWFsZSBob2Nod2VyZmVuLApiZXZvciBlciBnZXRyb2ZmZW4gd2lyZC4gRWluIERlY2tlbnZlbnRpbGF0b3Iga2FubiBlaW5lbiBCYXNlYmFsbC1CYWxsCnNlaHIgd2VpdCBzY2hsYWdlbi47Ni4gRmVuc3RlcnNjaGVpYmVuIChzZWxic3QgRG9wcGVsdmVyZ2xhc3VuZykgaGFsdGVuIGVpbmVuCnZvbiBlaW5lbQpEZWNrZW52ZW50aWxhdG9yIGdlc2NobGFnZW5lbiBCYXNlYmFsbC1CYWxsIG5pY2h0IGF1Zi47Ny4gV2VubiBTaWUgZGllCktsb3NwdWVsdW5nIGhvZXJlbiwgZ2Vmb2xndCB2b24gIk9oIHdlaWEiLCBpc3QgZXMgc2Nob24KenUgc3BhZXQuOzguIEVpbmUgTWl4dHVyIGF1cyBCcmVtc2ZsdWVzc2lna2VpdCB1bmQgRG9tZXN0b3MgZXJ6ZXVndCBSYXVjaCwKdmllbApSYXVjaC47OS4gRWluIFNlY2hzamFlaHJpZ2VyIGthbm4gbWl0IGVpbmVtIEZldWVyc3RlaW4gZWluZSBGbGFtbWUgZXJ6ZXVnZW4sCmF1Y2ggd2VubiBlaW4gMzYtamFlaHJpZ2VyIE1hbm4gc2FndCwgZGFzcyBkYXMgbnVyIGltIEZpbG0gbW9lZ2xpY2ggaXN0LgpVbmQgbWl0IGVpbmVyIEx1cGUga2FubiBtYW4gc2VsYnN0IGFuIHZlcmhhbmdlbmVuIFRhZ2VuIEZldWVyIG1hY2hlbi47MTAuCkVpbmlnZSBMZWdvc3RlaW5lIGtvZW5uZW4gZGFzIFZlcmRhdXVuZ3NzeXN0ZW0gZWluZXMgVmllcmphZWhyaWdlbgpwYXNzaWVyZW4uOzExLiBLbmV0bWFzc2UgdW5kIGRpZSBNaWtyb3dlbGxlIHNvbGx0ZW4gbmllbWFscyBpbSBnbGVpY2hlbiBTYXR6CmVyd2FlaG50IHdlcmRlbi47MTIuIEtyYWZ0a2xlYmVyIGhhZWx0IGV3aWcuOzEzLiBFZ2FsLCB3aWUgdmllbCBHb2V0dGVyc3BlaXNlCm1hbiBpbiBkZW4gU3dpbW1pbmcgUG9vbCB0dXQsIGVzIGlzdApuaWNodCBtb2VnbGljaCwgdWViZXIgZGFzIFdhc3NlciB6dSBnZWhlbi47MTQuIFBvb2xmaWx0ZXIgbW9lZ2VuIGtlaW5lCkdvZXR0ZXJzcGVpc2UuOzE1LiBWaWRlb3JlY29yZGVyIHNwdWNrZW4ga2VpbmUgU2FuZHdpY2hlcyBhdXMsIGF1Y2ggd2VubiBkYXMKaW4KbWFuY2hlbiBXZXJiZXNwb3RzIGltIEZlcm5zZWhlbiBnZXplaWd0IHdpcmQuOzE2LiBNdWVsbGJldXRlbCBzaW5kIGtlaW5lIGd1dGVuCkZhbGxzY2hpcm1lLjsxNy4gTXVybWVsbiBpbSBUYW5rIG1hY2hlbiBiZWltIEZhaHJlbiBlaW5lIE1lbmdlIExhZXJtLjsxOC4gU2llCm1vZWNodGVuIGxpZWJlciBuaWNodCB3aXNzZW4sIHdhcyBkYXMgZnVlciBlaW4gR2VzdGFuayBpc3QuOzE5LiBTY2hhdWVuIFNpZQppbW1lciBpbiBkZW4gT2ZlbiwgYmV2b3IgU2llIGlobiBhbnN0ZWxsZW4uClBsYXN0aWtzcGllbHpldWdlIHZlcnRyYWdlbiBkZW4gT2ZlbiBuaWNodC47MjAuIERpZSBGZXVlcndlaHIgaW4gQXVzdGluLApUZXhhcywgaXN0IGlubmVyaGFsYiB2b24gNSBNaW51dGVuIGRhLjsyMS4gUmVnZW53dWVybWVybiB3aXJkIHZvbQpTY2hsZXVkZXJnYW5nIGRlciBXYXNjaG1hc2NoaW5lIG5pY2h0CnNjaHdpbmRlbGlnLjsyMi4gS2F0emVuIGRhZ2VnZW4gd2lyZCBzZWhyIHdvaGwgc2Nod2luZGVsaWcuOzIyLiBXZW5uIEthdHplbgpzY2h3aW5kZWxpZyBpc3QsIGVyYnJlY2hlbiBzaWUgZGFzIERvcHBlbHRlIGlocmVzCktvZXJwZXJnZXdpY2h0cwoKR3J1c3MsIEl2bwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2luZGVyIG1hY2hlbiBmcm9oIDopIChFbGVuZGlsLCAyMS4gSnVsIDIwMDEsIDAxOjI5OjEyKToKV2llIG1hbiBoZXJhdXNmaW5kZXQsIG9iIG1hbiBiZXJlaXQgZnVlciBLaW5kZXIgaXN0CgpEUkVDSy1URVNUOgoKQmVzY2htaWVyZSBkYXMgU29mYSB1bmQgZGllIFZvcmhhZW5nZSBtaXQgTnV0ZWxsYS4KCkxlZ2UgZWluIEZpc2Noc3RhZWJjaGVuIGhpbnRlciBkYXMgU29mYSB1bmQgbGFzcyBlcwoKZGVuIGdhbnplbiBTb21tZXIgZG9ydC4KClNQSUVMWkVVRy1URVNUOgoKQmVzb3JnZSBEaXIgZWluZSAxNTAgbCBLaXN0ZSBtaXQgTGVnby1TdGVpbmVuLgoKKEVyc2F0endlaXNlIHR1biBlcyBhdWNoIEhlZnR6d2Vja2VuIG9kZXIgU2NocmF1YmVuKS4KCkxhc3MgZWluZW4gRnJldW5kIG9kZXIgZWluZSBGcmV1bmRpbiBkaWUgTGVnb3MgaW4gZGVyCgpnYW56ZW4gV29obnVuZyB2ZXJ0ZWlsZW4uIFZlcmJpbmRlIG51biBEZWluZSBBdWdlbiB1bmQKCnZlcnN1Y2hlIGluIGRpZSBLdWVjaGUgb2RlciBkYXMgQmFkIHp1IGdlbGFuZ2VuIG9obmUKCmRhYmVpIGVpbmVuIGVpbnppZ2VuIExhdXQgdm9uIERpciB6dSBnZWJlbjogRHUga29lbm50ZXN0CgpkYXMgS2luZCBzY2hsaWVzc2xpY2ggd2Vja2VuLgoKTEVCRU5TTUlUVEVMR0VTQ0hhZUZULVRFU1Q6CgpMZWloZSBEaXIgZWluIG9kZXIgendlaSBrbGVpbmUgVGllcmUuIChaaWVnZW4gc2luZCBpbgoKZGllc2VtIEZhbGwgYmVzb25kZXJzIHp1IGVtcGZlaGxlbikgdW5kIG5laG1lIHNpZSB6dQoKZGVpbmVtIG5hZWNoc3RlbiBFaW5rYXVmIG1pdC4KCkJlaGFsdGUgc2llIGRpZSBnYW56ZSBaZWl0IGltIEF1Z2UgdW5kIGJlemFobGUgYWxsZXMsCgp3YXMgc2llIGVzc2VuIG9kZXIga2FwdXR0IG1hY2hlbi4KCkFOWklFSC1URVNUOgoKQmVzb3JnZSBEaXIgZWluZW4gZ3Jvc3NlbiwgbGViZW5kaWdlbiBUaW50ZW5maXNjaC4KClZlcnN1Y2hlLCBkaWVzZW4gaW4gZWluIGtsZWluZXMgRWlua2F1ZnNuZXR6IHp1IHN0ZWNrZW4KCnVuZCBzdGVsbGUgc2ljaGVyLCBkYXNzIER1IGF1Y2ggd2lya2xpY2ggYWxsZSBBcm1lIGltCgpOZXR6IHZlcnN0YXVzdC4KCkZVRVRURVItVEVTVDoKCkJlc29yZ2UgRGlyIGVpbmUgZ3Jvc3NlIFBsYXN0aWstVGFzc2UuIEZ1ZWxsZSBTaWUgYmlzIHp1cgoKSGFlbGZ0ZSBtaXQgV2Fzc2VyLgoKQmVmZXN0aWdlIGRpZSBUYXNzZSBtaXQgZWluZW0gUGVuZGVsIGFuIGRlciBEZWNrZSB1bmQgbGFzc2UKCmRpZSBUYXNzZSBoaW4gdW5kIGhlciBzY2h3aW5nZW4uCgpWZXJzdWNoZSBudW4gbG9lZmZlbHdlaXNlLCBtYXRzY2hpZ2UgQ29ybmZsYWtlcyBpbiBkaWUgVGFzc2UKCnp1IGJlZm9lcmRlcm4sIHdhZWhyZW5kIER1IHZvcmdpYnN0LCBlaW4gRmx1Z3pldWcgenUgc2Vpbi4KCkpldHp0IHZlcnRlaWxlIGRlbiBJbmhhbHQgZGVyIFRhc3NlIGF1ZiBkZW0gZ2VzYW10ZW4gRnVzc2JvZGVuLgoKQmxlaWJlIGdlbGFzc2VuLgoKTkFDSFQtVEVTVDoKCjEuIEJlcmVpdGUgRGljaCBmb2xnZW5kZXJtYXNzZW4gdm9yOiBGdWVsbGUgZWluZW4gS2lzc2VuYmV6dWcKCm1pdCAzLTQgS2lsbyBmZXVjaHRlbSBTYW5kLgoKMi4gVW0gNiBVaHIgTmFjaG1pdHRhZ3MgYmVnaW5uZSBtaXQgZGVtIEtpc3NlbmJlenVnIGR1cmNoCgpkaWUgV29obnVuZyB6dSBsYXVmZW4sIHdvYmVpIER1IGlobiBwZXJtYW5lbnQgaGluIHVuZCBoZXIKCndpZWdzdAoKMy4gVHVlIGRpZXMgYmlzIHVuZ2VmYWVociA5IFVoci4gTGVnZSBkZW4gS2lzc2VuYmV6dWcgamV0enQKCmlucyBCZXR0IHVuZCBzdGVsbGUgZGVpbmVuIFdlY2tlciBhdWYgMiBVaHIgbmFjaHRzLgoKNC4gVW0gMiBVaHIgc3RlaGUgYXVmIHVuZCB0cmFnZSBkZW4gS2lzc2VuYmV6dWcgd2llZGVyIGZ1ZXIKCmVpbmUgU3R1bmRlIGR1cmNoIGRpZSBXb2hudW5nLCBzaW5nZSBkaWVzbWFsIGVpbmlnZQoKU2NobGFmbGllZGVyIGRhYmVpLgoKNS4gU3RlbGxlIGRlbiBXZWNrZXIgYXVmIDUgVWhyIHVuZCB3aWVkZXJob2xlIFNjaHJpdHQgNCwKCnZlcnN1Y2ggRGljaCwgYW4gbm9jaCBtZWhyIFNjaGxhZmxpZWRlciB6dSBlcmlubmVybi4KCjYuIFN0ZWxsZSBkZW4gV2Vja2VyIGF1ZiA3IFVociwgc3RlaGUgYXVmIHVuZCBiZXJlaXRlIGRhcwoKRnJ1ZWhzdHVlY2sgdm9yLgoKNy4gV2llZGVyaG9sZSBkYXMgZ2FuemUgTmFjaHQgZnVlciBOYWNodCwgbWluZGVzdGVucyAzIEphaHJlCgpsYW5nLgoKOC4gQmxlaWJlIHRhcGZlciEKCkdFU0NISUNLTElDSEtFSVRTVEVTVCBGVUVSIEtJTkRFUkdBUlRFTiBVTkQgR1JVTkRTQ0hVTEU6CgpOaW1tIGVpbmVuIEVpZXItS2FydG9uLiBOaW1tIGVpbmUgU2NoZXJlIHVuZCBXYXNzZXJtYWxmYXJiZW4KCnVuZCB2ZXJ3YW5kbGUgZGVuIEVpZXJrYXJ0b24gaW4gZWluIEtyb2tvZGlsLiBOdW4gdmVyd2FuZGxlCgplaW5lIFRvaWxldHRlbnBhcGllcnJvbGxlIGluIGVpbmUgYXR0cmFrdGl2ZSBXZWlobmFjaHRza2VyemUuCgpKZXR6dCB2ZXJzdWNoZSwgbnVyIGF1cyBUZXNhZmlsbSB1bmQgWmVsbG9waGFuZm9saWUgZWluZQoKZXhha3RlIEtvcGllIGRlcyBFaWZmZWwtVHVybXMgaGVyenVzdGVsbGVuLgoKSGVyemxpY2hlbiBHbHVlY2t3dW5zY2guCgpBVVRPLVRFU1Q6CgpWZXJrYXVmZSBkZW4gQk1XIHVuZCBrYXVmZSBzdGF0dCBkZXNzZW4gZWluIFJlbmF1bHQgS0FOR09PLgoKSmV0enQgbmVobWUgZWluIFNjaG9rb2xhZGVuLUVpcyB1bmQgcGxhemllcmUgZXMgaW0gSGFuZHNjaHVoZmFjaC4KCkxhc3MgZXMgZG9ydCEKCk5laG1lIGVpbiAxMC1TY2hpbGxpbmcgU3R1ZWNrIHVuZCBzdGVja2UgZXMgaW4gZGVuCgpLYXNzZXR0ZW5zcGllbGVyLgoKWmVya3J1ZW1tbGUgZGVuIEluaGFsdCBlaW5lciBGYW1pbGllbi1QYWNrdW5nIEJ1dHRlcmtla3NlIGF1ZgoKZGVtIFJ1ZWNrc2l0ei4KClplcmtyYXR6ZSBtaXQgZWluZXIgR2FydGVuLUhhcmtlIGRpZSBUdWVyZW4gZGVzIEF1dG9zLgoKS09FUlBFUkxJQ0hFIEVJR05VTkcgKGZ1ZXIgRnJhdWVuKToKCk5laG1lIGVpbmVuIGdyb3NzZW4gU2FjayB2b2xsZXIgQm9obmVuIHVuZCBwbGF6aWVyZSBpaG4gdm9yCgpEZWluZW0gQmF1Y2guCgpMYXNzIGRlbiBTYWNrIGZ1ZXIgOSBNb25hdGUgZGEuIEpldHp0IGVudGZlcm5lIGRpZSBCb2huZW4sCgphYmVyIGxhc3MgZGVuIFNhY2sgaGFlbmdlbiB3byBlciBpc3QuCgpGSU5BTlpJRUxMRSBFSUdOVU5HIChmdWVyIE1hZW5uZXIpOgoKR2VoZSB6dXIgQmFuayB1bmQgcmljaHRlIGVpbmVuIERhdWVyYXVmdHJhZyBlaW4gdW5kIGxhc3MgRGVpbgoKR2VoYWx0IGZ1ZXIgZGllIG5hZWNoc3RlbiAyMCBKYWhyZSBpbiBnbGVpY2hlbiBUZWlsZW4gYXVmIGRpZQoKS29udGVuIHZvbSBEcm9nZXJpZS1NYXJrdCwgU3BpZWx6ZXVnZ2VzY2hhZWZ0LCBMZWJlbnNtaXR0ZWwtCgpnZXNjaGFlZnQgdW5kIG1pbmRlc3RlbnMgMTAgVmVyZWluZW4gdWViZXJ3ZWlzZW4uCgpBQlNDSExVU1MtVEVTVDoKCkZpbmRlIGVpbiBQYWVyY2hlbiwgZGFzcyBzY2hvbiBlaW4ga2xlaW5lcyBLaW5kIGhhdC4gR2liIGlobmVuCgpndXRlIFJhdHNjaGxhZWdlIHp1IFRoZW1lbiB3aWU6IERpc3ppcGxpbiwgR2VkdWxkLCBUb2xlcmFueiwKClRvZXBmY2hlbi1UcmFpbmluZyB1bmQgVGlzY2gtTWFuaWVyZW4uCgpNYWNoZSBtb2VnbGljaHN0IHZpZWxlIGtsdWdlIFZlcmJlc3NlcnVuZ3N2b3JzY2hsYWVnZS4KCkJldG9uZSwgd2llIHdpY2h0aWcgZWluZSBrb25zZXF1ZW50ZSBFcnppZWh1bmcgaXN0LgoKR2VuaWVzc2UgZGFzIEV4cGVyaW1lbnQsIGVzIGlzdCBkYXMgbGV0enRlIE1hbCwgZGFzcyBEdSBhbGwgZGllc2UKCmd1dGVuIEFudHdvcnRlbiBwYXJhdCBoYXN0LgoKVmVybXV0bGljaCBpc3QgZXMgYXVjaCBkYXMgbGV0enRlIE1hbCwgZGFzcyBEdSBkaWVzZXMgUGFlcmNoZW4KCnNpZWhzdCEhISEKCkRhcyBpc3QgZGFzIEVuZGUgZGVzIFRlc3RzLiBXZW5uIER1IGRlbiBUZXN0IGJlc3RhbmRlbiBoYXN0OgoKVmllbCBTcGFzcyBiZWkgZGVyIEtpbmRlci1IZXJzdGVsbHVuZyEhISEhCgogICoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2luZGVyIG1hY2hlbiBmcm9oIDopIChTb2xteXIsIDIxLiBKdWwgMjAwMSwgMDQ6MjE6MTUpOgp+IyEgcm49RWxlbmRpbCBydD05OTU2NzE3NTIgcmc9d2l0emUKfiMhIHRpZD05OTU2NzE3NTIKSWNoIHdpbGwgZWluIEtpbmQgOikKClNvbG15cgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBLaW5kZXIgbWFjaGVuIGZyb2ggOikgKE5vbm5lLCAyMS4gSnVsIDIwMDEsIDE0OjU5OjUzKToKfiMhIHJuPVNvbG15ciBydD05OTU2ODIwNzUgcmc9d2l0emUKfiMhIHRpZD05OTU2NzE3NTIKV2lsbHN0IG1laW5zPwoKTm9ubmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLaW5kZXIgbWFjaGVuIGZyb2ggOikgKFdpbGxvdywgMjIuIEp1bCAyMDAxLCAxNDoyODowMyk6Cn4jISBybj1Ob25uZSBydD05OTU3MjAzOTMgcmc9d2l0emUKfiMhIHRpZD05OTU2NzE3NTIKd2llIGpldHp0IE5vbm5lPyBoYXN0IGR1IGV0d2EgamV0enQgc2Nob24gZGllIG5hc2Ugdm9sbD8KV2VpZGNoZW4gV2lsbG93IGdyaW5zdCBzaWNoIGVpbnMuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEtpbmRlciBtYWNoZW4gZnJvaCA6KSAoQXBvbGxvbmlhLCAyMi4gSnVsIDIwMDEsIDIxOjA4OjU3KToKfiMhIHJuPVdpbGxvdyBydD05OTU4MDQ4ODMgcmc9d2l0emUKfiMhIHRpZD05OTU2NzE3NTIKQmVpIG5lbSBLaW5kLCBkYXMgYWxsZSAyIFN0dW5kZW4gd2FjaCB3aXJkLCBoYXQgbWFuIHNlaHIgc2NobmVsbCBkaWUgU2NobmF1emUKdm9sbCB1bmQgc2VobnQgc2ljaCBkaWUgTnV0ZWxsYS1zY2htaWVyLXplaXRlbiBoZXJiZWkgO28pCgpBcG8qCih2b2VsbGlnIHVlYmVybXVlZGV0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogS2luZGVyIG1hY2hlbiBmcm9oIDopIChHbG9pbnNvbiwgMjIuIEp1bCAyMDAxLCAyMTo1ODo1OCk6Cn4jISBybj1BcG9sbG9uaWEgcnQ9OTk1ODI4OTM3IHJnPXdpdHplCn4jISB0aWQ9OTk1NjcxNzUyCkhtLiBXYXMgc2luZCBkYXMgZnVlciBaZWl0ZW4/IEZydWVoc3R1ZWNrPyBHaWJ0IGVzIGRhcyBtaXQgZWluZW0gS2luZCBuaWNodAptZWhyPyBPZGVyIE1HLVBhcnRpZXM/CgpHbG9pbihzb24pLCBndWNrdCBmcmFnZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBLaW5kZXIgbWFjaGVuIGZyb2ggOikgKFhlbmFkYSwgMjIuIEp1bCAyMDAxLCAyMzoyNzozNik6Cn4jISBybj1BcG9sbG9uaWEgcnQ9OTk1ODI4OTM3IHJnPXdpdHplCn4jISB0aWQ9OTk1NjcxNzUyClhlbmFkYSBoYXQgZGllIHNjaGxpbW1zdGUgWmVpdCBzY2hlaW5iYXIgaGludGVyIHNpY2ggOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEtpbmRlciBtYWNoZW4gZnJvaCA6KSAoTGluZmxhcywgMjMuIEp1bCAyMDAxLCAwOTozNTowNik6Cn4jISBybj1YZW5hZGEgcnQ9OTk1ODM3MjU2IHJnPXdpdHplCn4jISB0aWQ9OTk1NjcxNzUyClVuZCBYZW5hZGEsIHdpZSB2aWVsZSBKYWhyZSBzaW5kIGRlbm4gImRpZSBzY2hsaW1tc3RlIFplaXQiPwoKTGluZmxhcyBkZW5rdCAuIG8gKFNvbGwgZGllIEFudHdvcnQgZWluZSBMZWhyZSBzZWluLCBmdWVyIGFsbGUgZGllIGRhcnVlYmVyCm5hY2hkZW5rZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBLaW5kZXIgbWFjaGVuIGZyb2ggOikgKFhlbmFkYSwgMjMuIEp1bCAyMDAxLCAxMDoyNjo0Myk6Cn4jISBybj1MaW5mbGFzIHJ0PTk5NTg3MzcwNiByZz13aXR6ZQp+IyEgdGlkPTk5NTY3MTc1MgpBbHNvIHVuc2VyIFRvZWNodGVyY2hlbiBpcyBudW4gYXVjaCBzY2hvbiA3IE1vbmF0ZSBhbHQuLi51bmQgbGFuZ3NhbQprYW5uIG1hbiBkYW5uIGRvY2ggaW50ZXJwcmV0aWVyZW4gd2FzIHNpZSB3aWxsLi4udW5kIGRhcyBtYWNodCBkYXMgZ2FuemUKZW5vcm0gbGVpY2h0ZXIgOykKWGVuYWRhIGlzdCBuaWNodCB3aXJrbGljaCBhdXNnZXNjaGxhZmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogS2luZGVyIG1hY2hlbiBmcm9oIDopIChHbG9pbnNvbiwgMjMuIEp1bCAyMDAxLCAxMDo0MTo1NCk6Cn4jISBybj1YZW5hZGEgcnQ9OTk1ODc2ODAzIHJnPXdpdHplCn4jISB0aWQ9OTk1NjcxNzUyCkRpcGxvbWFyYmVpdDogTmljaHRzcHJhY2hsaWNoZSBLb21tdW5pa2F0aW9uIHp3aXNjaGVuIE11dHRlciB1bmQgS2luZCAtCiAgICAgICAgICAgICAgaW5zZ2VoZWltIG1pdGdlbGF1c2NodAoKR2xvaW4ob24pIHp3aW5rZXJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBLaW5kZXIgbWFjaGVuIGZyb2ggOikgKFd1cnplbCwgMjMuIEp1bCAyMDAxLCAyMTozOToxNCk6Cn4jISBybj1HbG9pbnNvbiBydD05OTU4Nzc3MTQgcmc9d2l0emUKfiMhIHRpZD05OTU2NzE3NTIKZGllIHNjaGxpbW1zdGUgemVpdCBtaXQga2luZGVybiBnZWh0IHJlY2h0IHNjaG5lbGwgdm9yYmVpLiBuYWNoIGV0d2EgMjUKamFocmVuIHNpbmQgc2llIG1laXN0IHNjaG9uIHJlY2h0IG9rYXkuCgp3dXJ6ZWwga2VubnQgc2ljaCBhdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChJdm8sIDI1LiBKdWwgMjAwMSwgMTc6NDE6MDgpOgpGdWVobHN0IER1IERpY2ggYWx0PwoKV2VubiBuaWNodCwgdWViZXJsZWcgbWFsIC4uLgoKRGllIEtpbmRlciwgZGllIGluIGRpZXNlbSBKYWhyIEFiaXR1ciBtYWNoZW4sIHd1cmRlbiAxOTgwIGdlYm9yZW4uCkRpZSBtZWlzdGVuIGRhdm9uIGtlbm5lbiBudXIgZWluZW4gUGFwc3QuCkZ1ZXIgc2llIGdpYnQgZXMgYXVzc2VyZGVtIGtlaW5lbiBLYW56bGVyIHZvciBIZWxtdXQgS29obC4KQ29sYSBnYWIgZXMgaW1tZXIgbnVyIGluIGRlbiB1bmthcHV0dGJhcmVuIFBsYXN0aWtmbGFzY2hlbi4gRGVyIFZlcnNjaGx1c3MKd2FyIGltbWVyIGF1cyBLdW5zdHN0b2ZmIHVuZCBuaWUgYXVzIE1ldGFsbC4gQ29sYSBpbiBHbGFzLUZsYXNjaGVuPyBVbmQgZGFubgpudXIgZWluIExpdGVyPyBVbmQgd2FzIHNpbmQgS25pYmJlbGJpbGRlcj8KQXRhcmkgaXN0IGZ1ZXIgZGllIG1laXN0ZW4gZ2VuYXVzbyB3ZWl0IHdlZyB3aWUgVmlueWwtU2NoYWxscGxhdHRlbi4gU2llCmhhYmVuIG5pZSBlaW5lbiBQbGF0dGVuc3BpZWxlciBiZXNlc3Nlbi4KU2llIGhhYmVuIG5pZSBkYXMgZWNodGUgUGFjIE1hbiBnZXNwaWVsdC4gR2FueiB6dSBzY2h3ZWlnZW4gdm9uIFpheHhvbi4KVHdpeCBoYXQgbmllIFJhaWRlciBnZWhlaXNzZW4gdW5kIHdhciBhdWNoIG5pZSAiZGVyIFBhdXNlbnNuYWNrIi4gVW5kIHdhcyB6dW0KVGV1ZmVsIHNpbmQgVHJlZXRzPwpEaWUgQ29tcGFjdCBEaXNjIHd1cmRlIHZvciBpaHJlciBHZWJ1cnQgZXJmdW5kZW4uCkVpbmUgS3VnZWwgRWlzIGhhdCBpbW1lciBlaW5lIE1hcmsgZ2Vrb3N0ZXQuClNpZSBoYWJlbiBuaWUgZWluZW4gRmVybnNlaGVyIG1pdCBudXIgZHJlaSBQcm9ncmFtbWVuIGdlc2VoZW4gLSBnYW56IHp1CnNjaHdlaWdlbiB2b24gZWluZW0gU2Nod2Fyei1XZWlzcy1GZXJuc2VoZXIuIFNpZSBoYXR0ZW4gaW1tZXIgS2FiZWwtIHVuZApTYXRlbGxpdGVuLUZlcm5zZWhlbi4KV2FzIGlzdCBlaWdlbnRsaWNoIEJldGE/CkRlciBXYWxrbWFubiB3dXJkZSB2b24gU29ueSB2b3IgaWhyZXIgR2VidXJ0IGVyZnVuZGVuLgpNaXQgUm9sbGVyLVNrYXRlcyB2ZXJiaW5kZW4gZGllIG1laXN0ZW4gSW5saW5lLVNrYXRlcy4KRGlzY28tUm9sbGVyPz8/CldldHRlbiBkYXNzLi4uIHdhciBpbW1lciBtaXQgVGhvbWFzIEdvdHRzY2hhbGsuClNpZSBoYWJlbiBrZWluZSBBaG51bmcsIGRhc3MgQm9uYW56YS1SYWVkZXIgbWFsICJpbiIgd2FyZW4uClBvbW1lcyBrb21tZW4gc2VpdCBqZWhlciBhdXMgZGVtIEJhY2tvZmVuLgpTaWUga2VubmVuIEd1ZW50aGVyIE5ldHplciB1bmQgRnJhbnogQmVja2VuYmF1ZXIgbnVyIGFscyBLb21tZW50YXRvcmVuLgpTaWUgaGFiZW4gYmVpbSBTY2h3aW1tZW4gbm9jaCBuaWUgdWViZXIgZGVuIFdlaXNzZW4gSGFpIG5hY2hnZWRhY2h0Li4KU2llIHdpc3NlbiBuaWNodCwgd2VyIE1vcmsgd2FyIHVuZCB3YXJ1bSBlciB2b20gT3JrIGtvbW10LgpJaG5lbiBpc3QgZXMgZWdhbCwgd2VyIEouUiBlcnNjaG9zc2VuIGhhdCB1bmQgaGFiZW4ga2VpbmUgQWhudW5nLCB3ZXIgSi5SCnVlYmVyaGF1cHQgaXN0LgpNaWNoYWVsIEphY2tzb24gd2FyIGltbWVyIHNjaG9uIHdlaXNzLgpTaWUgaGFiZW4gbm9jaCBuaWUgZWluZW4gQmlnIE1hYyBpbiBlaW5lciBTdHlyb3Bvci1WZXJwYWNrdW5nIGdlc2VoZW4uClNpZSB3aXNzZW4gbmljaHQsIGRhc3MgUHVtYS1TY2h1aGUgbWFsIGRlciBsZXR6dGUgU2NocmVpIHdhcmVuIHVuZCBkYXMKVG9wLU1vZGVsbCB2b24gQWRpZGFzIG51ciA5OSBNYXJrIGdla29zdGV0IGhhdC4KU2llIGhhYmVuIG5vY2ggbmllIGVpbiBTbmlja2VycyBtaXQgcm90ZXIgVmVycGFja3VuZyBnZXNlaGVuLgpTaWUgd2lzc2VuIG5pY2h0LCBkYXNzIG1hbiBEYXRlbiBhdWNoIGF1ZiBLYXNzZXR0ZW4gc3BlaWNoZXJuIGthbm4uClNpZSB3aXNzZW4gbmljaHQsIHdhcnVtIE5pa2kgTGF1ZGEgaW1tZXIgZWluZSBNdWV0emUgdHJhZWd0LgpTaWUga2VubmVuIEhlcnJuIEthaXNlciB2b24gZGVyIEhhbWJ1cmctTWFubmhlaW1lciBudXIgb2huZSBCcmlsbGUgdW5kClNlaXRlbnNjaGVpdGVsLgpTaWUgaGFiZW4gbm9jaCBuaWUgZWluZSBEaXNrZXR0ZSBnZWxvY2h0LCBnZXNjaHdlaWdlIGRlbm4gdW1nZWRyZWh0LgpTaWUgd2lzc2VuIG5pY2h0LCBkYXNzIEZyYXUgU29tbWVyIG5pY2h0IG1pdCBEci4gU29tbWVyIHZvbiBkZXIgQnJhdm8KdmVyaGVpcmF0ZXQgaXN0LCBzb25kZXJuIGJlaSBKYWtvYnMtS2FmZmVlIGFyYmVpdGV0IHVuZCBhbiBGZXN0dGFnZW4gaW1tZXIKZWluIFBmdW5kIEtyb2VudW5nIG1pdGJyaW5ndC4KU2llIHdpc3NlbiBuaWNodCwgZGFzcyBQYXJrdWhyZW4gZnJ1ZWhlciBhdWNoIDEwIFBmZW5uaWcgU3R1ZWNrZSBnZXNjaGx1Y2t0CmhhYmVuLgpOYSwgZ2lidCBEaXIgZGFzIHp1IGRlbmtlbj8KVGphLCAuLi4KCgpQUzogaWNoIGhvZmZlLCBkYXNzIGRhcyBtaXQgZGVtIENvcHkmcGFzdGUgZ2VrbGFwcHQgaGF0OykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkV0d2FzIGFlbHRlciwgYWJlciBndXQuLi4gKEZvb2JhciwgMjUuIEp1bCAyMDAxLCAyMTo1MzoxMCk6CiBTY2huZWVrb3BwZXdpdHRjaGVuIHVuZCBkaWUgc2llYmVuIEZydWNodHp3ZXJnZQoKIEVzIHdhciBQaWVtb250a2lyc2NoZW56ZWl0IHVuZCBkZXIgVGFnIGJlZ2FubiBtaXQgS3JvZW51bmcgTGlnaHQuIEF1Y2ggaW0KIEhhdXNlIHZvbiBLYWlzZXIsIHdvIHNpY2ggZGllIGJvZXNlIFN0aWVmbXV0dGVyIG1hbCB3aWVkZXIgaW4gaWhyZW0KIENob2xlc3Rlcmluc3BpZWdlbCB1ZWJlcnBydWVmdGUuIERpZXNlciBzcHJhY2ggenUgaWhyOiAiRHUgYmVzaXR6dCB6d2FyCiBpbW1lciBub2NoIGRpZSBLcmFmdCBkZXIgendlaSBIZXJ6ZW4sIGFiZXIgU2NobmVla29wcGV3aXR0Y2hlbiBoYXQgZGFmdWVyCiBkYXMgdm9sbGUgVmVyd29laG5hcm9tYSEiCgogRGFzIGFlcmdlcnRlIGRpZSBTdGllZm11dHRlciBnYW56IGdld2FsdGlnIHVuZCBzaWUgYmVzY2hsb3NzLCBlaW5lbgogSmFlZ2VybWVpc3RlciBhdXN6dXNlbmRlbiwgdW0gU2NobmVla29wcGV3aXR0Y2hlbiB6dSBiZXNlaXRpZ2VuLiBEaWVzZXIKIGdpbmcgbWl0IFNjaG5lZWtvcHBld2l0dGNoZW4gaW4gZGVuIFdhbGQsIGRhbWl0IGlobiBkaWUgS3JhZXV0ZXJwb2xpemVpCiBuaWNodCBlcnRhcHBlbiBrb25udGUuIERvcnQgcmljaHRldGUgZXIgc2VpbmVuIERhbm9uZSBhdWYKIFNjaG5lZWtvcHBld2l0dGNoZW4sIHVtIGlociBkaWUgS3VnZWwgenUgZ2ViZW4uIEFsbGVyZGluZ3MgZXJ3aWVzIHNpY2gKIGRlciBKYWVnZXJtZWlzdGVyIGFscyBrbGVpbmVyIEZlaWdsaW5nLiBEZW5uIGVyIGhhdHRlIG5pY2h0IGRlbiBub2V0aWdlbiAKIE11bW0gdW0gc2llIHp1IGVyc2NoaWVzc2VuLiBEYXMgd2FyIGphIHNjaGxpZXNzbGljaCBhdWNoIG5pY2h0IGRpZSBmZWluZSAKIEVuZ2xpc2NoZSBBcnQuIEFsc28gc2FndGUgU2NobmVla29wcGV3aXR0Y2hlbjogIk1lcmNpISIgdW5kIHJhbm50ZSB6dSBkZW4gCiBzaWViZW4gQmVyZ2VuIGluIGRhcyBIYXVzIGRlciBzaWViZW4gRnJ1Y2h0endlcmdlLiBEaWUgRnJ1Y2h0endlcmdlIHdhcmVuIAogYWJlciBnZXJhZGUgaW4gaWhyZW0gQmVyZ3dlcmsgaW4gVmlsbGFiYWpvLCB1bSBHb2xkYmFlcmVuIHVuZCBNZWdhcGVybHMKIGFienViYXVlbi4gU2NobmVla29wcGV3aXR0Y2hlbiBkYWNodGU6ICJEaWUgRnJlaWhlaXQgbmVobSBpY2ggbWlyISIgdW5kCiBtYWNodGUgc2ljaCBzb2ZvcnQgdWViZXIgZGVuIE11ZWxsZXItTWlsY2hyZWlzIHVuZCBkaWUgUGVwc2kgaGVyLiBEYW5hY2gKIGZ1ZWhsdGUgc2llIHNpY2ggc28gQmx1bmEsIGRhc3Mgc2llIHNpY2ggZXJzdCBlaW5tYWwgaW5zIEJldHQgbGVndGUuCgogRXMgd2FyIEFmdGVyIEVpZ2h0LCBhbHMgZGllIHNpZWJlbiBGcnVjaHR6d2VyZ2UgenVydWVjayBpbiBkaWUgU2Nod2FlYmlzY2gKIEhhbGwgdHJhdGVuLiBTaWUgc2NocmllbiBzb2ZvcnQgdGF1c2VuZCB2b24gRnJhZ2VuLCB3aWU6ICIgV2VyIGhhdCB2b24KIG1laW5lbSBOdXRlbGxhY2hlbiBnZWdlc3Nlbj8iIHVuZDogIldvIGlzdCBkZXIgRGVpbmhhcmQ/IiBEYW5uCiBlbnRkZWNrdGVuIHNpZSBTY2huZWVrb3BwZXdpdHRjaGVuLiBTaWUgZW50c2NodWxkaWd0ZSBzaWNoIGJlaSBkZW4gc2llYmVuCiBGcnVjaHR6d2VyZ2VuIHVuZCBmcmFnZSBzaWUsIG9iIHNpZSBiZWkgaWhuZW4gd29obmVuIGR1ZXJmZS4gIkR1CiBkYXJmc3QhIiwgc2FndGVuIGRpZSBzaWViZW4gRnJ1Y2h0endlcmdlLiBEZW5uIHNpZSBzdWNodGVuIHNjaG9uIHNlaXQgCiBsYW5nZW0gZWluZSBIYXVzaGFlbHRlcmluIHVuZCBTY2huZWVrb3BwZXdpdHRjaGVuIGhhdHRlIG9obmUgWndlaWZlbCBkaWUgCiBzY2hsYXVlIEFydCB6dSB3YXNjaGVuLgoKIFNvIHZlcmdpbmcgZGllIFplaXQsIHVuZCBhbHMgZGVyIEJlcmdmcnVlaGxpbmcga2FtLCBzY2hhdXRlIGRpZQogU3RpZWZtdXR0ZXIgd2llZGVyIGluIGlocmVuIENob2xlc3Rlcmluc3BpZWdlbC4gRGVyIHNhZ3RlIHdpZWRlcjogIkR1IAogYmVzaXR6dCB6d2FyIGltbWVyIG5vY2ggZGllIEtyYWZ0IGRlciB6d2VpIEhlcnplbiwgYWJlciBhdXMgCiBTY2huZWVrb3BwZXdpdHRjaGVucyBBcm9tYXBvcmVuICBkcmluZ3QgaW1tZXIgbm9jaCBkYXMgdm9sbGUgCiBWZXJ3b2VobmFyb21hISIuIEFsc28gZmFzc3RlIHNpY2ggZGllIFN0aWVmbXV0dGVyIGVpbiBNaWxrYWhlcnogdW5kIAogdmVydWVidGUgZHJlaSBBbnNjaGxhZWdlLiBEZXIgZHJpdHRlIHRyYWYgbWl0dGVuIGluIFNjaG5lZWtvcHBld2l0dGNoZW5zIAogS2FyYW1lbGxrZXJuLiBEaWUgU3RpZWZtdXR0ZXIgaGF0dGUgaWhyIG5hZW1saWNoIGVpbmVuIHZlcmdpZnRldGVuIAogQnJhdGFwZmVsa3VjaGVuIHZvbiBLb3BwZW5yYXRoIHVuZCBXaWVzZSBnZWdlYmVuIHVuZCBTY2huZWVrb3BwZXdpdHRjaGVuIAogZmllbCBzb2ZvcnQgaW4gZWluZW4gRnJ1ZWNodGV0cmF1bSB2b24gRWhybWFubi4KCiBBbHMgZGllIHNpZWJlbiBGcnVjaHR6d2VyZ2UgYXVzIFZpbGxhYmFqbyB6dXJ1ZWNrIGthbWVuLCBsZWd0ZW4gc2llCiBTY2huZWVrb3BwZXdpdHRjaGVuIGluIGVpbmUgRnJpc2NoZWJveC4gRGEga2FtIHBsb2V0emxpY2ggZWluCiBTY2hva29wcmlueiwgZGVyIGdvbGRlbmUgRXJkbnVzc2xvY2tlbiBoYXR0ZSB1bmQgZGVtIGRpZSBQcmluemVucm9sbGUgd2llIAogYXVmIGRlbiBMZWlibml0eiBnZXNjaHJpZWJlbiB3YXIuIEVyIGJldWd0ZSBzaWNoIHVlYmVyIFNjaG5lZWtvcHBld2l0dGNoZW4gCiB1bmQgZ2FiIGlociBtaXQgQmxpc3RleGxpcHBlbiBlaW5lbiBOZWdlcmt1c3MuIFNjaG5lZWtvcHBld2l0dGNoZW4gZXJ3YWNodGUgCiBkdXJjaCBkYXMgRmVycmVybyBLdWVzc2NoZW4gc29mb3J0IGF1cyBpaHJlbSBGcnVlY2h0ZXRyYXVtIHZvbiBFaHJtYW5uIHVuZCAKIGRhY2h0ZSBzaWNoOiBLZWluZXIgbWFjaHQgbWljaCBtZWhyIGFuIQoKIEZydWNodHp3ZXJnIEZvb2JhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChIaWdodCwgMjUuIEp1bCAyMDAxLCAyMzowMToxMCk6Cn4jISBybj1Jdm8gcnQ9OTk2MDc1NjY4IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CmhtbSB3YXJ1bSBpcyBkYXMgZWlnZW50bGljaCBqZWRlcyBqYWhyIGdsZWljaCA/IGljaCBkYWNodGUgZGllIGFsdGVuIGxldXRlCndlcmRlbiBpbW1lciBtZWhyIC4uLiBvZGVyIHNlaXQgaWhyIHNvIHNhZGlzdGlzY2ggZXMgZGVuIGxldXRlbiBpbW1lcndpZWRlcgp1bnRlciBkaWUgbmFzZSB6dSByZWliZW4gPwoKYXVzZXJkZW0gc3RpbW10IGRhIGVpbmlnZXMgbml0OgoKb2VobSBpY2ggaGFiIGFiaSB1bmQgenZpIC4uLiB1bmQgYmluIGphaHJnYW5nIDE5ODEKdW5kIGljaCB3ZWlzcyBmb2xnZW5kZXMgCjEuIHBhcHMgam9oYW5uZXMgcGF1bCBJIHdhciB2b3JnYWVuZ2VyIHZvciBkZW0gamV0emlnZW4gYWx0ZW4gc2FjawoyLiBpcyBrb2hsIGltbWVybm9jaCBhbiBkZXIgcmVnaWVydW5nID8gKnNjaGF1ZGVyKgozLiBrb2xhIG1pdCBrcm9ua29ya2VuICxvKQozLiBhdGFyaSBrYW5udGUgaWNoIHNjaGFsbHBsYXR0ZW4gbnVyIGF1cyBkZW4gcmVnYWxlbiBtZWluZXIgZWx0ZXJuIGJ6dy4KaW56d2lzY2hlbiB2b24gbGV1dGVuIGRpZSBtZWluIGdlaG9lciBxdWFlbGVuCjQuIGdpYnRzIGF1c2VyIHBjbWFuIChDNjQpIG5vY2ggZWluZW4gPwo1LiBkYXMgc2llIHJhaWRlciBpbiB0d2l4IHVtYmVuYW5udCBoYWJlbiBtYWNodCBkYXMgemV1ZyBhdWNoIG5ldCBiZXNzZXIKNgo2LiBkYXMgYmlsaWdzdGUgd2FzIGljaCBtaWNoIGZ1ZXIga3VnZWwgZWlzIGVyaW5uZXJuIGthbm4gc2luZCAtLDcwIGRtIC4uLgp3ZW5uIG1pciB3ZXIgc2FndCBzZWl0d2FubiBkaWUgbmUgbWFyayBrb3N0ZXQgc2FnIGljaCBpaG0gd2FubiBpY2ggcyBlcnN0ZW1hbAplaXMgc2VsYnN0IGJlemFobHQgaGFiCjcuIHdpciBoYWJlbiBoZXV0ZSBhdWNoIG51ciB0ZXJlc3RyaXNjaGVzIHR2IC4uLiBzaW5kIGFiYmEgOCBwcm9ncmFtbWUKOC4gd2V0dGVuIGRhcyBlbHN0bmVyKGdlcnVlY2h0ZSkgLT4gZ290c2NoYWxrIC0+IGVrbGlnZXIgc2NobGVpbWVyIC0+CmdvdHNjaGFsayAKOS4gcG9tbWVzIGJhY2tvZmVuID8gbmVyamEgYmVzc2VyIGFscyBmcml0aWVydAoxMC4gd2FydW0gdWViZXJuIHdlaXNzZW4gaGFpIG5hY2hkZW5rZW4gd2VubiBtYW4gamVuc2VpdHMgamVnbGljaGVyCm1lZXJlc2FlaG5saWNoZW4gd2Fzc2VybWFzc2UgbGVidCA/CjExLiBqLnIuIGhtbW1tbSBkYWxsYXMgZmFzdCBzbyBzY2hsZWNodCB3aWUgZGVudmVyY2xhbiAod2llZGVyaG9sdW5nZW4gbWl0IG9tYQpnZXNlaGVuICxvKSApCjEyLiBiaWdtYWMgaW4gc3R5cm9wb3IgZ2lidCBlcyBpbiBtYWNoZW4gbGFlbmRlcm4gKGF1ZiBkZXIgbGFuZGthcnRlIHJlY2h0cwp2b24gRCkgaW1tZXJub2NoIGluIHN5cm9waG9yIHBhY2t1bmdlbgoKaG1tbSBpcmdlbndpZSBzb2xsdCBzaWNoIG1hbCB3ZXIgbmV1ZSBncnVlbmRlIGF1c2RlbmtlbiAqZWcqCgpoaWdodCBzaWNoIGxhbmd3ZWlsZW5kIHVuZCBkZXN3ZWdlbiBhbnR3b3J0c2NocmVpYmVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGdWVobHN0IER1IERpY2ggYWx0PyAoTXVwZmVsLCAyNi4gSnVsIDIwMDEsIDAxOjI3OjM3KToKfiMhIHJuPUhpZ2h0IHJ0PTk5NjA5NDg3MCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApKb3UgZGllIEt1Z2VsIEVpcyBmdWVyIDMwIFBmZW5uaWcga2VubiBpY2ggbm9jaC4uLiAKLi4udW5kIGRhbm4gZ2FicyBkYSBub2NoIC0gc2lydXBhcnRpZyBzdXBlcnN1ZXNzIHVuZCBpbiByb3QgdW5kIGdydWVuIC0gZGFzCnd1bmRlcmJhcmUgIlRyaSBUb3AiLCBkYXMgbWFuIG1pdCAiU3BydWRlbCIgKGhlaXNzdCBoZXV0IG1laXN0ICJNaW5lcmFsd2Fzc2VyIgo7KSB6dSBlaW5lbSB1bmRlZmluaWVydCBzY2htZWNrZW5kZW4gR2V0cmFlbmsgdmVyZHVlbm50ZS4KSmFqYS4uLiB0YXR0ZXIgOykKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGdWVobHN0IER1IERpY2ggYWx0PyAoR3JpbW1ib3JuLCAyNi4gSnVsIDIwMDEsIDA3OjQ1OjA1KToKfiMhIHJuPU11cGZlbCBydD05OTYxMDM2NTcgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKMzAgUGggVGFzY2hlbmdlbGQgZGllIFdvY2hlLCBtYWNodGUgZWluZSBLdWdlbCBFaXMgdW5kIGljaCBoYXR0ZSBpbW1lciBub2NoCmVpbmVuIEdyb3NjaGVuIHVlYnJpZyAtIGRpZSBFaXNmcmF1LCBkaWUgbWl0IHNvIGVpbmVyIEFydCBLb21iaSBkdXJjaHMgRG9yZgpmdWhyIChkaWUgVlctQnVzc2Ugdm9tIEVpc21hbm4gZ2FicyBlcnN0IHNwYWV0ZXIpIHVuZCBFaXMgdmVya2F1ZnRlIG5haG0gMjAgUGYKZnVlciBlaW5lIEt1Z2VsLgoKVW5kIFRyaSBUb3AgaGFiZSBpY2ggdm9yIHdlbmlnZW4gSmFocmVuIG5vY2htYWwgZ2VzZWhlbiwgdS5VLiBnaWJ0cyBkYXMgc29nYXIKbm9jaC4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKExpbmZsYXMsIDI2LiBKdWwgMjAwMSwgMTA6MjE6MTMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NjEyNjMwNSByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApJY2ggc2FnIG51cjogRGFzIGFsbHdvZWNoZW50bGljaGUgR2VyZW5uZSB6dW0gWmVpdHNjaHJpZnRlbmxhZGVuLCByZXNwZWt0aXZlClN1cGVybWFya3QsIGRlciBkYXMgZ3JhbmRpb3NlIFlwcy1IZWZ0IHZvcmxpZWdlbiBoYXR0ZS4gRGFzIHdhcmVuIFplaXRlbiAtIG1pdAptZWluZW0gc2Nod2FyemVuIE1pbmliYWxsb24uIFVuZCBkZXIgRXJkbnVzc2Zhcm0uIFVuZCBkZW4ga2xlaW5lbiBLcmVic2VuLiBVbmQKZGVyIEZsaWVnZW5waXN0b2xlLi4uCkxpbmZsYXMsIGhhdCBzaWNoIEVpcyBpbW1lciB2b24gYWx0ZW4gb21pcyBlcnNjaG5vcnJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKEdyaW1tYm9ybiwgMjYuIEp1bCAyMDAxLCAxMDo1OToyNyk6Cn4jISBybj1MaW5mbGFzIHJ0PTk5NjEzNTY3MyByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApKYSwgWXBzIHdhciBjb29sLiBSb3NlIHZvbiBKZXJpY2hvLCB1bmQgZWluIHBhYXIgZGVyIFphdWJlcnRyaWNrdXRlbnNpbGllbgpoYWJlIGljaCBpbW1lciBub2NoIGlyZ2VuZHdvLgpVbmQgZGFzIEVpcyB2b24gZGVuIGFsdGVuIE9taXMgaGF0IGJlaSBtaXIgYXVjaCBub2NoIGZ1bmt0aW9uaWVydCwgZWluZmFjaCBtaXQKZ3Jvc3NlbiBBdWdlbiBuZWJlbiBkYXMgRWlzYXV0byBzdGVsbGVuLi4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChCb2luZywgMjYuIEp1bCAyMDAxLCAxMTowMDoyNyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTk2MTM3OTY3IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkljaCBzdGVsbCBtaXIgZ3JhZCBHcmltbWJvcm4gbWl0IGdyb3NzZW4gQXVnZW4gbmViZW4gZWluZW0gRWlzYXV0bwp2b3IgLi4uICpsYWNoKiA6KQogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBGdWVobHN0IER1IERpY2ggYWx0PyAoSXNpLCAyNi4gSnVsIDIwMDEsIDExOjAzOjAzKToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTYxMzc5Njcgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKbWhwZiBtZWluZSBzZWlmZW5ibGFzbWFzY2hpbmUgaGF0IG5pZSByaWNodGlnIGdldGFuIHVuZCBkZXIgc29sYXJ6ZXBwZWxpbgppc3QgaW0gcm9zZW5iZWV0IGdlbGFuZGV0CmlzaSAoeXBzd2VyZmVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChHcmltbWJvcm4sIDI2LiBKdWwgMjAwMSwgMTE6MDM6MjQpOgp+IyEgcm49Qm9pbmcgcnQ9OTk2MTM4MDI3IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkRhcyBpc3QgYXVjaCBndXQgZWluIFZpZXJ0ZWxqYWhyaHVuZGVydCBoZXIuCkdyb3NzZSBBdWdlbiBiZWkgZWJlbnNvbGNoZW0gRWlzIGthbm4gaWNoIGFiZXIgaW1tZXIgbm9jaCBtYWNoZW4uIEVzIGdpYnQKdmVyYnVlcmd0ZSBWb3JmYWVsbGUgd28gc2ljaCBkaWUgQmVkaWVudW5nIGltIEVpc2NhZmUgZ2V3ZWlnZXJ0IGhhdCBtaXIgZGllCnZpZXJ0ZSBCZXN0ZWxsdW5nIHp1IHNlcnZpZXJlbi4gVW5kIGR1bW0gZ2VndWNrIGhhdCBhbHMgd2lyIGRhbm4genVtCkluZGVyL1RoYWlsYWVuZGVyIGF1ZmdlYnJvY2hlbiBzaW5kLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBGdWVobHN0IER1IERpY2ggYWx0PyAoVHJveSwgMjYuIEp1bCAyMDAxLCAxMToxNTo1Myk6Cn4jISBybj1Jc2kgcnQ9OTk2MTM4MTgzIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkFiZXIgZGllIFVyemVpdGtyZWJzZSBnZWRpZWhlbiBwcmFlY2h0aWcuIERhIGJyYXVjaHRlIG1hbiBub2NoIG5pY2h0IG1hbApkYXMgRnV0dGVyIGRhenUuIERpZSBoYW0gZGVuIEFsZ2VuYmVsYWcgdm9uIGRlbSBXYXNzZXIgYWJnd2VpZGV0LCBpbiBkZW0gc2llCmdld2FjaHNlbiB3YXJlbi4KClRyb3kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChMaW5mbGFzLCAyNi4gSnVsIDIwMDEsIDExOjMzOjM4KToKfiMhIHJuPVRyb3kgcnQ9OTk2MTM4OTUzIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkpvLCB1bmQgZGllIEFnZW50ZW5zZXRzIHdhcmVuIGphIGF1Y2ggaW1tZXIgZXJzdGUgU2FobmUuIEtsZWluZQpDb2RlZHJlaHNjaGVpYmVuLCBtaXQgZGVuZW4gbWFuIHNpY2ggR2VoZWltYm90c2NoYWZ0ZW4genVzY2hpZWJlbiBrb25udGUgb2RlcgppcmdlbmR3ZWxjaGVyIFBsYXN0aWtrcmltc2tyYW1zLCBkZXIgaXJnZW5kd28gZWluZW4gZ2VoZWltZW4gS25vcGYgaGF0dGUgbWl0CmRlbSBtYW4gaXJnZW5kd28gdmVyc3RlY2tzdGUgZ2VoZWltZSByb3RlIFBsYXN0aWtwYXRyb25lbiBhYnNjaGllc3NlbiBrb25udGUsCmRpZSBqZWdsaWNoZXIgc2lubnZvbGxlbiBGbHVnYmFobiB0cm90emVuLCB2ZXJsb3JlbiBnaW5nZW4gdW5kIGRhcyBHZXNjaHJlaQp3YXIgZ3Jvc3MsIGFiZXIgc3BhZXRlc3RlbnMgendlaSBNb25hdGUgc3BhZXRlciBnYWIgZXMgamEgYXVjaCBFcnNhdHouCkhhY2gsIGRhcyB3YXJlbiBaZWl0ZW4sIGFscyBkaWUgS2Fzc2llcmVyaW4gc2Nob24gZnVlbmYgTWludXRlbiBmcnVlaGVyCmF1Zm1hY2hlbiBtdXNzdGUsIHdlaWwgZWluZSBIb3JkZSBrbGVpbmVyIEtpZHMgbmFjaCBkZW0gTWl0dGFnZXNzZW4gbmllIGRhcwpFbmRlIGRlciBNaXR0YWdzcGF1c2UgYWJ3YXJ0ZW4ga29ubnRlbi4gSmEsIHNvd2FzIGdhYnMgZGFtYWxzIGF1Y2ggbm9jaCwKTWl0dGFnc3BhdXNlbiBpbSBTdXBlcm1hcmt0Li4uCkxpbmZsYXMsIHdpcmQgZ2xlaWNoIG1lbGFuY2hvbGlzY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKE11YWRkaWIsIDI2LiBKdWwgMjAwMSwgMTE6NTY6NDApOgp+IyEgcm49TXVhZGRpYiBydD05OTYxNDEzNjggcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKRXMgZ2lidCBMYWVuZGVyIGluIGRlciB1bm1pdHRlbGJhcmVuIE5hY2hiYXJzY2hhZnQsIHdvIGF1ZiBkZW0gTGFuZCBpbW1lcm5vY2gKZWluZSBNaXR0YWdzcGF1c2Ugdm9uIGNhLiAzaCBmdWVyIGRpZSBTdXBlcm1hZXJrdGUgZXhpc3RpZXJ0IDopCgpNdWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBGdWVobHN0IER1IERpY2ggYWx0PyAoTXVhZGliLCAyNi4gSnVsIDIwMDEsIDExOjU5OjI1KToKfiMhIHJuPU11YWRkaWIgcnQ9OTk2MTQxNDAwIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CmphIFJoZWlubGFuZFBmYWx6CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBGdWVobHN0IER1IERpY2ggYWx0PyAoR2xvaW5zb24sIDI2LiBKdWwgMjAwMSwgMTc6NTE6MjQpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NjEyNjMwNSByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApLZWluIEFobnVuZyB3b3ZvbiBpaHIgcmVkZXQuIEljaCBnbGF1YiBkaWUga2xlaW5lbiBQbGFzdGlrZWlzYmVjaGVyIG1pdApWYW5pbGxlLCBkaWUgYXVzIGRlbiBhYnNvbHV0IGFyc2Noa2FsdGVuIEt1ZWhsdHJ1aGVuIGthbWVuIHVuZCBkYW1pdCBzbwpyaWNodGlnIHNjaG9lbiBkdXJjaGtyaXN0YWxsaXNpZXJ0IHdhcmVuIGtvc3RldGVuIDIwIFBmZW5uaWcuIFdlbm4gbWFuIEdsdWVrYwpoYXR0ZSBnYWJzIGRpZSBrbGVpbmVuIGRvb2ZlbiBQbGFzdGlrbG9lZmZlbGNoZW4sIGFiZXIgZWhlciBkaWUgZWtsaWdlbgpIb2x6c3BhdGVsLiBEYWZ1ZXIgd2FyIGljaCBuaWNodCB3aXJrbGljaCBhdWYgVGFzY2hlbmdlbGQgYW5nZXdpZXNlbi4gQnJhdWNodGUKbWFuIEdlbGQgZnVlciBzb3dhcyBoYXQgbWFuIGVpbmZhY2ggZGVuIFBlbm5lcm4gZWluIHBhYXIgQmllcmZsYXNjaGVuIGZ1ZXIgMzAKUGZlbm5pZyBhYmdlbHVjaHN0LiBEYSB3aXIgaW4gZGVyIGdhbnplbiBTdGFkdCBhdWYgNTBrIEVpbndvaG5lciBudXIgNTAgUGVubmVyCmhhdHRlbiB3YXIgZGFzIGFsbGVyZGluZ3MgZWluIHJlY2h0IGJlZ3Jlbnp0ZXIgTWFya3QgdW5kIG1hbiBpc3QgaGluIHVuZAp3aWVkZXIgQWx0c3RvZmZlIHNhbW1lbG4gZ2VnYW5nZW4uClVuZCBkYW5uIHdhciBkYSBub2NoIGRhcyBIaW50ZXJoZXJnZXJlbm5lIHVtIGRhcyBuZXVlIE1vc2FpayBuaWNodCBudXIgenUKbGVzZW4gc29uZGVybiBhdWNoIHp1IGJlc2l0emVuIDopCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGdWVobHN0IER1IERpY2ggYWx0PyAoV3VyemVsLCAyNi4gSnVsIDIwMDEsIDE3OjUzOjA4KToKfiMhIHJuPUdsb2luc29uIHJ0PTk5NjE2MjY4NCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApmdWVyIGRpZSB6b25lIGdhbHRlbiB3b2hsIGFuZGVyZSBtYXNzc3RhZWJlLCBkYXMgaXN0IG5pY2h0IHdpcmtsaWNoIGd1dAp2ZXJnbGVpY2hiYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBGdWVobHN0IER1IERpY2ggYWx0PyAoR2xvaW5zb24sIDI2LiBKdWwgMjAwMSwgMTg6MTk6NTIpOgp+IyEgcm49V3VyemVsIHJ0PTk5NjE2Mjc4OCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApJc3QgbmljaHQgdmVyZ2xlaWNoYmFyPyBIbS4gQmlzdCBEdSBhbHQtS3JpdGVyaWVuIE5hY2h3ZW5kZToKCkRpZSBtZWlzdGVuIEtpbmRlciBkaWUgaW4gZGllc2VtIEphaHIgQWJpdHVyIG1hY2hlbiBoYWJlbiBhbGxlbmZhbGxzIGVpbgpibGF1ZXMgSGFsc3R1Y2ggZ2V0cmFnZW4uIApTaWUga2VubmVuIG51ciBlaW5lbiBlaW56aWdlbiBTdGFhdHNyYXRzdm9yc2l0emVuZGVuICh3ZW5uIHVlYmVyaGF1cHQpLgpTaWUga2VubmVuIG1laHIgYWxzIGVpbmUgU29ydGUgQ29sYS4gRGllIG1laXN0ZW4gU29ydGVuIENvbGEgZGllIHNpZSBrZW5uZW4Kc2luZCB6YWVobmV6dXNhbW1lbmtsZWJzdWVzcy4KU2llIGhhYmVuIG5pZSBlaW5lbiBLQyBnZXNlaGVuLiBHZXNjaHdlaWdlIGRlbm4gaW4gc3BhZXRlbiBKYWhyZW4KZmVzdGdlc3RlbGx0LCBkYXNzIGRhcyBCb3VsZGVyZGFzaCBhdWYgZGVtIDg1LzQgc2VociB2aWVsIHNjaG9lbmVyIGlzdCBhbHMgZGFzCmF1ZiBkZW0gQzY0LgpJaHJlIFBsYXR0ZW5zcGllbGVyIGhhdHRlbiBrZWluZSBSZWdsZXIgZnVlciA3OCB1bmQgMTUuClRlc3RiaWxkZXIgaW0gRmVybnNlaGVuIHNpbmQgaWhuZW4gdG90YWwgdW5iZWthbm50LiBTaWUga2VubmVuIG51ciBGZXJuc2VoZXIKbWl0IEZlcm5iZWRpZW51bmcuCiJLcmV1enNwaW5uZSB1bmQgS3JldXpzY2huYWJlbCIga29tbXQgYXVzIGVpbmVyIGR1bmtsZW4sIHZlcmdlc3NlbmVuClZlcmdhbmdlbmhlaXQuClNpZSBrb2VubmVuIGRpZSBUaXRlbG1lbG9kaWUgZGVyIE9sc2VuYmFuZGUgbmljaHQgc3VtbWVuLgpTaWUgaGFiZW4gbmllIEZydWVoc3BvcnQvTWl0dGFnc3NjaGxhZi9OYWNodHNjaGxhZiBpbiBlaW5lbSBGZXJpZW5sYWdlcgpzYWJvdGllcnQuCgpOYWphLCBkYXMgaXN0IGFsbGVzIG5pY2h0IHdpcmtsaWNoIGFsdCwgYWJlciB2aWVsbGVpY2h0IGVpbiBLcml0ZXJpdW0gZnVlcjoKIkR1IGZ1ZWhsc3QgRGljaCBpcmdlbmR3aWUgYXVzIGVpbmVtIGFuZGVyZW4gTGFuZCBrb21tZW5kLiIKCkFjaHNvLCBQUzoKU2llIGhhYmVuIG5vY2ggbmllIGVpbmVuIHJ1c3Npc2NoZW4gS2V0dGVucGFuemVyIHZvcmJlaWZhaHJlbiBnZXNlaGVuLgpEYXMgR2VyYWV1c2NoIGVpbmVzIFVlYmVyc2NoYWxsa25hbGxzIGlzdCBpaG5lbiB1bmJla2FubnQuCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBGdWVobHN0IER1IERpY2ggYWx0PyAoUGF0cnluLCAyNi4gSnVsIDIwMDEsIDE4OjIxOjUyKToKfiMhIHJuPUdsb2luc29uIHJ0PTk5NjE2NDM5MiByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAp3YXJ1bSBzY2h3ZWxnZSBpY2ggZWlnZW50bGljaCBncmFkIGluIF9zY2hvZW5lbl8gZXJpbm5lcnVuZ2VuPyA6KQplaW5lIHRvbGxlIGtpbmRoZWl0IGtvbm50ZSBtYW4gaW4gZGVyIHpvbmUgZHVyY2hhdXMgaGFiZW4uCgotLQpwYXRyeW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChXdXJ6ZWwsIDI2LiBKdWwgMjAwMSwgMTg6MjM6MTgpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk2MTY0MzkyIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CnRqYSwgZGFubiBiaW4gaWNoIHdvaGwgbmljaHQgbnVyIGFsdCwgc29uZGVybiBzdGVpbmFsdC4uLgpqZWRlbmZhbGxzIGtlbm5lIGljaCB1ZWJlcnNjaGFsbGtuYWxsIHVuZCBydXNzaXNjaGUgcGFuemVyIHVuZCBmZXJuc2VoZXIgbWl0Cm51ciBlaW5lbSBlaW56aWdlbiBwcm9ncmFtbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChHbG9pbnNvbiwgMjYuIEp1bCAyMDAxLCAxODoyNzoyNik6Cn4jISBybj1QYXRyeW4gcnQ9OTk2MTY0NTEyIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkphamEsIGFiZXIgYWIgZGVtIEVpbnRyaXR0IGluIGRpZSBibGF1ZSBkZXV0c2NoZSBKdWdlbmQgaG9lcnRlIGRlciBTcGFzcyBkYW5uCmxhbmdzYW0gYWJlciBzaWNoZXIgYXVmIDspCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBGdWVobHN0IER1IERpY2ggYWx0PyAoQm9pbmcsIDI2LiBKdWwgMjAwMSwgMTg6Mjg6MDgpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk2MTY0ODQ2IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CldpZT8gQmVpIGV1Y2ggZ2FicyBzdGFhdGxpY2ggZ2Vmb2VyZGVydGVuIEFsa29ob2xrb25zdW0/IFdvdyEKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKFBhdHJ5biwgMjYuIEp1bCAyMDAxLCAxODoyODozOSk6Cn4jISBybj1HbG9pbnNvbiBydD05OTYxNjQ4NDYgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKZXksIGljaCBoYWIgbWVpbiBGREotaGVtZCB3ZW5pZ3N0ZW5zIGRhcyAxLiBtYWwgbWl0IHN0b2x6IGdldHJhZ2VuLi4uc3BhZXRlcgpqZWRvY2ggZ2FicyBkYW5uIGltbWVyIGFuc2NoaXNzIHdlaWwgaWNocyB2ZXJnZXNzZW4gaGFiZSBlcyBhdWNoIG1pdHR3b2Nocwphbnp1emllaGVuIHp1bSBzY2h1bGFwcGVsbC10YWcgOikKCi0tCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChHbG9pbnNvbiwgMjYuIEp1bCAyMDAxLCAxODozMDozMCk6Cn4jISBybj1Cb2luZyBydD05OTYxNjQ4ODggcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKQWJlciBzaWNoIHdhciBkZXIgc3RhYXRsaWNoIGdlZm9lcmRlcnQuIFNjaG5hcHMgd2FyIHNvIGJpbGxpZyB3aWUgYWxsZXMKYW5kZXJlLiBVbmQgaW0gR2VnZW5zYXR6IHp1bSBSZXN0IGRlciBPc3R6b25lIGhhdHRlbiB3aXIgZGF2b24gVW5tZW5nZW4uCgpHbG9pbihzb24pIGVyaW5uZXJ0IHNpY2ggZGFyYW4sIG1hbCBpbiBQb2xlbiB2b3JtIEZsZWlzbGFkZW4gZWluZQoxMDBtLVNjaGxhbmdlIGdlc2VoZW4genUgaGFiZW4uIERhIGdhYnMgYWJlciBrZWluIEZsZWlzY2ggKGdhYnMgaW4gZGVtIExhZGVuCm5pZSB3YWVocmVuZCBkZXIgMTQgVGFnZSBVcmxhdWIpIC0gc29uZGVybiBXZXJtdXRoLiBKYSwgV2VybXV0aCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBGdWVobHN0IER1IERpY2ggYWx0PyAoR3JpbW1ib3JuLCAyNi4gSnVsIDIwMDEsIDE4OjMxOjI0KToKfiMhIHJuPUdsb2luc29uIHJ0PTk5NjE2NTAzMCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApBaGEsIHVuZCB3ZXIgTXV0KGgpIGhhdHRlIGhhdCBkZW4gZGFubiBnZWthdWZ0PwoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBGdWVobHN0IER1IERpY2ggYWx0PyAoR2xvaW5zb24sIDI2LiBKdWwgMjAwMSwgMTg6MzU6MDUpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk2MTY0MzkyIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4Ck9oLCBpY2ggZ3VjayBncmFkIE5BY2hyaWNodGVuIHVlYmVyIE9lbHByZWlzZS4gRWluIHdlaXRlcmVzIEtyaXRlcml1bToKClNpZSBrZW5uZW4ga2VpbmUgWmFwZnNhZXVsZSBtaXQgR2VtaXNjaCAxOjUwIHVuZCBHZW1pc2NoIDE6MzMuIE51ciBkaWUga2xlaW5lbgpmdWVyIE1vZmFzLgoKR2xvaW4oc29uKSBkZW5rdCAuIG8gTyAodG9lZmYgdG9lZmYgdG9lZmYgdG9lZmYgdG9lZmYpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBGdWVobHN0IER1IERpY2ggYWx0PyAoTW9udGFudXMsIDI2LiBKdWwgMjAwMSwgMTg6NDY6MDMpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk2MTY1MzA1IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CmFiZXIgYW4gZGllIGthbm4gaWNoIG1pY2ggYXVjaCBub2NoIGVyaW5uZXJuLCBkaWUgZ2FicyBhbSBCb2RlbnNlZSBhdWNoLiA7LSkKCih1bmQgc28sIHdpZSBpaHIgaGllciBSZV5zIHZlcnNjaGVua3QsIHdlcmRldCBpaHIgTklFIG1lZ2FzY2htYXJybnRhdWdsaWNoKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmFlYmFlaCEhISEhIChIYXNpbSwgMjYuIEp1bCAyMDAxLCAyMTo1MDo1MCk6CldpZSwgZXMgZ2lidCBrZWluZSBUcmVldHMgbWVocj8/PyBCaXMgZWJlbiBoYWIgaWNoIHNpZSBuaWNodCB2ZXJtaXNzdCwgYWJlcgpqZXR6dCwgd28gbWlyIGtsYXIgd2lyZCwgZGFzcyBzaWUgd2VnIHNpbmQuLi4KVXV1dXV1dXV1dXVhZWghIEljaCBoYWV0dGUgbWVociBkYXZvbiBlc3NlbiBzb2xsZW4sIGFscyBlcyBzaWUgbm9jaCBnYWIhCgpIYXNpbSwgYmFsZCA5MDAwIChSTC1UYWdlKSBhbHQKClAuUy46IEdlcnVlY2h0ZXdlaXNlIHd1cmRlIHZvciB6d2VpIEphaHJlbiBub2NoIGVpbiBSYWlkZXIgaW4gZWluZW0gTGFkZW4gYmVpCm1pciB1bSBkaWUgRWNrZSBnZWZ1bmRlbi4uLiBhYmVyICduZW4gVC1SZXggaGF0dGVuIHNlIG5pY2ggaW4gZGVyClRpZXJrdWVobHRydWhlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKFZhbmlvbiwgMjYuIEp1bCAyMDAxLCAyMjoyMzozMik6Cn4jISBybj1Jdm8gcnQ9OTk2MDc1NjY4IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkhtbSwgZGllIEtpbmRlciwgZGllIDE5ODAgZ2Vib3JlbiB3dXJkZW4gVU5EIGpldHp0IEFiaSBtYWNoZW4sIGhhYmVuIG9mZmVuYmFyCmVpbiBiaXNjaGVuIGxhZW5nZXIgZ2VicmF1Y2h0LgoKViogZ3JpbnN0IHVuZCBob2ZmdCwgZGFzcyBkYXMgbmljaCBkaWUgUmVnZWwgaXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChWYXJsYXJpb24sIDI2LiBKdWwgMjAwMSwgMjI6MjQ6MDYpOgp+IyEgcm49VmFuaW9uIHJ0PTk5NjE3OTAxMiByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAp3aWVzbyBlaWdlbnRsaWNoIGtpbmRlcj8gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChBbWFyeWxsaXMsIDI2LiBKdWwgMjAwMSwgMjI6MzI6MDApOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5NjE3OTA0NiByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAp3ZWlsIGRhcyBlaW5mYWNoIEtpbmRlciBzaW5kIGF1cyBkZW0gQmxpY2t3aW5rZWwgdm9uIHNvIGFsdGVuIFNhZWNrZW4gd2llIFYqCjopCgpBbWEqLCByZXNwZWt0bG9zIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXRkaWdlc3QgYWdhaW4uIChSb25kYSwgMjYuIEp1bCAyMDAxLCAyMzoyOTozNik6ClVuZCBpY2ggYmluIHdpcmtsaWNoIGRhZnVlciwgZGFzcyBuZSBSdWJyaWsgTmV0ZGlnZXN0IGF1ZmdlbWFjaHQgd2VyZGVuIHNvbGx0ZQo7LSkKCkZyb206IEp1ZXJnZW4gTmlldmVsZXIgPGp1ZXJnZW4ubmlldmVsZXJAd2ViLmRlPgpOZXdzZ3JvdXBzOiBkZS5hbHQuc3lzYWRtaW4ucmVjb3ZlcnkKU3ViamVjdDogUmU6IEthbXBmZmxpZWdlciBMQVJUZW4sIHdhciBSZTogSFAgVGFzY2hlbnJlY2huZXIKRGF0ZTogMjAgSnVsIDIwMDEgMTM6MzE6MzUgR01UCk1lc3NhZ2UtSUQ6IDxYbnM5MEU0OUQyQTcyM0QyanVlcmdlbm5pZXZlbGVyQG5pZXZlbGVyLTQzNTQ0LnVzZXIuY2lzLmRmbi5kZT4KCmRpZXR6LW5ld3NAcm90ZmwuZnJhbmtlbi5kZSAoRGlldHogUHJvZXBwZXIpIHdyb3RlOgoKPiBLdXJ6LCBlcyBmYWVuZ3Qga2VpbmUgcm90ZSBMYW1wZSBhbiB6dSBibGlua2VuLCBrZWluIHNjaHJpbGxlcwo+IEtyZWlzY2hlbiB3ZWlzdCBkZW4gUGlsb3RlbiBhbiwgZWluZSBkZXIgYmVpZGVuIEFSTXMgenUgc2NoYWVyZmVuCj4gdW5kIGxvc3p1c2NoaWNrZW4uCj4gCj4gKkRhcyogZ2FlYmUgZWluZSBTY2hsYWd6ZWlsZS4uLgoKaHR0cDovL3d3dy5pbmZvd2FyLmNvbS9odW1vci9odW1vcnkuaHRtbC1zc2kKCiAgV2F0Y2ggV2hlcmUgWW91IFBvaW50IFRoYXQgVGhpbmcKRXhjZXJwdGVkIGZyb20gUGlsb3QgTWFnYXppbmUKIApUd28gbWVtYmVycyBvZiB0aGUgTG90aGlhbiBhbmQgQm9yZGVycyB0cmFmZmljIHBvbGljZSB3ZXJlIG91dCBvbiB0aGUgCkJlcndpY2tzaGlyZSBtb29ycyB3aXRoIGEgcmFkYXIgZ3VuIHJlY2VudGx5LCBoYXBwaWx5IGVuZ2FnZWQgaW4gCmFwcHJlaGVuZGluZyBzcGVlZGluZyBtb3RvcmlzdHMsIHdoZW4gdGhlaXIgZXF1aXBtZW50IHN1ZGRlbmx5IGxvY2tlZC11cCAKY29tcGxldGVseSB3aXRoIGFuIHVuZXhwZWN0ZWQgcmVhZGluZyBvZiB3ZWxsIG92ZXIgMzAwIG1waC4gCgpUaGUgbXlzdGVyeSB3YXMgZXhwbGFpbmVkIHNlY29uZHMgbGF0ZXIgYXMgYSBsb3cgZmx5aW5nIEhhcnJpZXIgaHVydGxlZCAKb3ZlciB0aGVpciBoZWFkcy4gCgpUaGUgYm95cyBpbiBibHVlLCB1cHNldCBhdCB0aGUgZGFtYWdlIHRvIHRoZWlyIHJhZGFyIGd1biwgcHV0IGluIGEgCmNvbXBsYWludCB0byB0aGUgUkFGLCBidXQgd2VyZSBzb21ld2hhdCBjaGFzdGVuZWQgd2hlbiB0aGUgUkFGIHBvaW50ZWQgb3V0IAp0aGF0IHRoZSBkYW1hZ2UgbWlnaHQgd2VsbCBoYXZlIGJlZW4gbW9yZSBzZXZlcmUuIFRoZSBIYXJyaWVyJ3MgdGFyZ2V0LQpzZWVrZXIgaGFkIGxvY2tlZCBvbiB0byB0aGUgYGVuZW15JyByYWRhciBhbmQgdHJpZ2dlcmVkIGFuIGF1dG9tYXRpYyAKcmV0YWxpYXRvcnkgYWlyLXRvLXN1cmZhY2UgbWlzc2lsZSBhdHRhY2suIEx1Y2tpbHksIHRoZSBIYXJyaWVyIHdhcyAKb3BlcmF0aW5nIHVuYXJtZWQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBGdWVobHN0IER1IERpY2ggYWx0PyAoTXVwZmVsLCAyNy4gSnVsIDIwMDEsIDAwOjA4OjE2KToKfiMhIHJuPUFtYXJ5bGxpcyBydD05OTYxNzk1MjAgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKLi4udW5kIGF1cyBkZWluZW0sIEZlZSJjaGVuIiA/YDspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKFNjaGxlaWNoZXIsIDI3LiBKdWwgMjAwMSwgMDA6MzQ6NTYpOgp+IyEgcm49TXVwZmVsIHJ0PTk5NjE4NTI5NiByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApIbW1tIHdlciB2b24gZXVjaCAiQWx0ZW4iIHdlaXNzIGRlbm4gbm9jaCB3aWUgZGllc2Uga29taXNjaGVuIGJ1bnRlbgpTY2hva29saW5zZW4gbWl0IGRlbiBTbWlsZXlnZXNpY2h0ZXJuIGRyYXVmIGhpZXNzZW4/IEtsZWluZXIgVGlwcCB3YXJlbiBpbgonbmVyIGJyYXVuZW4gVHVldGUuIFdlbm4gSWhyIGpldHp0IGRlbmt0IGtsYXIga2VubiBpY2ggYWJlciB3aWUgaGllc3NlbiBkaWUKbm9jaC4uLiBuYWphIGlzdCB2b2VsbGlnIG5vcm1hbCA7LSkgSWNoIGVyaW5uZXIgYXVjaCBub2NobWFsIGFuIGRpZXNlciBTdGVsZQphbiBkaWUgYXVzZ2VzdG9yYmVuZSBHYXR0dW5nIERyZWggdW5kIFRyaW5rLi4uCgpTY2hsZWljaGVyIGFsdCBnZWJvcmVuLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmFlYmFlaCEhISEhIChNb3Jnb3RoLCAyNy4gSnVsIDIwMDEsIDA4OjMwOjI0KToKfiMhIHJuPUhhc2ltIHJ0PTk5NjE3NzA1MCByZz13aXR6ZQp+IyEgdGlkPTk5NjE3NzA1MApOdXIgOTAwMCwgYmVpIG1pciBzaW5kcyBmYXN0IDExMDAwICpzZXVmeioKCk0qCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSYWViYWVoISEhISEgKFRyb3ksIDI3LiBKdWwgMjAwMSwgMDg6NTc6NTUpOgp+IyEgcm49TW9yZ290aCBydD05OTYyMTU0MjQgcmc9d2l0emUKfiMhIHRpZD05OTYxNzcwNTAKU28gZWluIE1pc3Q6Cj4tLS0tLSBTTklQIC0tLS0tPAojIS9iaW4vc2gKbXliaXJ0aGRheT0nTU0vREQvWVlZWScgIyBlcnNldHplIE1NIGR1cmNoIE1vbmF0LCBERCBkdXJjaCBUYWcsIGV0Yy4KbXliaXJ0aGdudT1gZGF0ZSAtZCAkbXliaXJ0aGRheSArJXNgCm5vdz1gZGF0ZSArJXNgCm15ZGF5cz1gZWNobyAkbm93ICRteWJpcnRoZ251IC0gODY0MDAgLyBwIHwgZGNgCmVjaG8gJG15ZGF5cyAjIGVpZ2VudGxpY2ggbXVlc3N0ZSBkaWUgVmFyaWFibGUgJG1heWRheSBoZWlzc2VuLi4uCj4tLS0tLSBTTkFQIC0tLS0tPApEYSBrb21tdCB2aWVsIHp1dmllbCByYXVzLgoKVHJveSAtIGhhdCBkaWUgMTIwMDAgYW0gMjAuIEp1bmkgdWViZXJzY2hyaXR0ZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChaYXJuaXlhLCAyNy4gSnVsIDIwMDEsIDA5OjM2OjEwKToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTYxMzgyMDQgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKR3JpbW1ib3JuLCBlcyB3YWVyZSBEZWluZSBGVUVORlRFIEJlc3RlbGx1bmcgZ2V3ZXNlbiB1bmQgZXMgd2FyIGVpbiBJbmRlci4uLgo6LSkKCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChWYW5pb24sIDI3LiBKdWwgMjAwMSwgMTI6Mjc6NDApOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTk5NjE3OTUyMCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApIYXQgZGEgZ3JhZCBlaW4gS3J1ZWNrc3RvY2sgZ2VrbmFycnQ/Cgp2KiBncmluc3QgT21hcnlsbGlzIHJlc3Bla3RmcmVpIHp1cnVlY2sgYW4gOikgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGdWVobHN0IER1IERpY2ggYWx0PyAoVmFybGFyaW9uLCAyNy4gSnVsIDIwMDEsIDEyOjI4OjIwKToKfiMhIHJuPVZhbmlvbiBydD05OTYyMjk2NjAgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKTWlyIHdhciBhdWNoLCBhbHMgaGFldHRlIGljaCBlaW4gR2ViaXNzIGtsYXBwZXJuIGdlaG9lcnQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChBbWFyeWxsaXMsIDI3LiBKdWwgMjAwMSwgMTM6MTY6NTApOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5NjIyOTcwMCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAppYSB1bnZhc2NoYWVtdG4gTGF1c2ViZW5nbHMgOikKCkFtYSosIGVtcG9lcnQgc2NobmF1YmVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChBdG96LCAyNy4gSnVsIDIwMDEsIDE2OjQ5OjQ2KToKfiMhIHJuPVNjaGxlaWNoZXIgcnQ9OTk2MTg2ODk2IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CldpZSBEcmVoIHVuZCBUcmluaz8gU2luZCBkYXMgZXR3YSBuaWNodCBkaWVzZSBrb21pc2NoZW4gUGxhc3Rpa2ZsYXNjaGVuLCB3bwptYW4gb2JlbiBzbyBlaW4gVGVpbCBhYmdlZHJlaHQgaGF0IHVuZCBkYW5uIHp3ZWkgTG9lY2hlciBoYXR0ZSBhdXMgZGVuZW4gbWFuCnRyaW5rZW4ga29ubnRlPwpJY2ggZGFjaHRlIGljaCBoYWV0dGUgZGF2b24gbGV0enRlbnMgbm9jaCB3YXMgZ2VzZWhlbi4uLgpBdG96IC0gZnVlaGx0IHNpY2ggbmljaHQgd2lya2xpY2ggYWx0LiBMZXR6dGVyIEF1c2xhZXVmZXIgZGVyIEdlbmVyYXRpb24KR29sZi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKEthcnRvZmZlbCwgMjcuIEp1bCAyMDAxLCAyMTo1NTozNCk6Cn4jISBybj1BdG96IHJ0PTk5NjI0NTM4NiByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAoKSnVwcCwKZGllIG9sbGVuIFBsYXN0aWtmbGFzY2hlbiBnaWJ0cyB0YXRzYWVjaGxpY2ggaW1tZXIgbm9jaCAob2RlciB3aWVkZXI/PykuCgonVG9mZmVsIC0gaGF0IHNpZSBhYmVyIGRhbm4gZG9jaCBuaWNodCBnZWthdWZ0Li4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBGdWVobHN0IER1IERpY2ggYWx0PyAoSGlnaHQsIDI4LiBKdWwgMjAwMSwgMDE6NDk6MzkpOgp+IyEgcm49SXNpIHJ0PTk5NjEzODE4MyByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAp5cHMgd2FyIGZlaW4gLi4uIGRpZSBnbGliYmVyaGFuZCB6dW0gdGFwZXRlIHZvbGwgc2F1ZmVuIHVuZCBkZW4KZ2VsZWtib3hoYW5kc2NodWggd2llIGF1c20gY2FydG9vbiAuLi4gZGFzIGdhYnMgbnVyIGJlaSB5cHMgLG8pCgpoaWdodCBlaGVtYWxpZ2VyIHlwcy1rYWV1ZmVyIGF1cyBsZWlkZW5zY2hhZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChIaWdodCwgMjguIEp1bCAyMDAxLCAwMTo1NTo1Myk6Cn4jISBybj1XdXJ6ZWwgcnQ9OTk2MTY0NTk4IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CmR1IGJpc3QgZWlnZW50bGljaCBzY2hvbiB0b3QgLi4uIGhhdCBtYW4gdmVyZ2Vzc2VuIGRpciBiZXNjaGVpZHp1c2FnZW4gdW5kIGRlbgpncnVlbmVuIGR1cmNoc2NobGFnIGRlaW5lciBzdHJlYmV1cmt1bmRlIHp1IHNjaGlja2VuCgpoaWdodCBzaWNoICdzIG5hZWNoc3RlbWFsIHVlYmVybGVnZW5kcyB3YXMgZXIgbWFjaHQgYmV2b3IgZXIgbmVuIHRocmVhZApsb3N0cml0dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKFRydWcsIDI4LiBKdWwgMjAwMSwgMDE6NTg6MTApOgp+IyEgcm49U2NobGVpY2hlciBydD05OTYxODY4OTYgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKSXJnZW5kd2llIGtvbW1lbiBkaWUgRHJlaCB1bmQgRHJpbmsgYXVzIGRlciBWZXJnYW5nZW5oZWl0IGdld2FycHQ/IERpZSBrYW5uCm1hbiBpbiAuYXQgbm9jaCBpbW1lciBrYXVmZW4sIHNhaCBsZXR6dGVucyB3ZWxjaGUgaW4gZWluZW4gR2VzY2hhZWZ0Li4uCgpwZm90ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKEhpZ2h0LCAyOC4gSnVsIDIwMDEsIDAxOjU5OjAwKToKfiMhIHJuPUFtYXJ5bGxpcyBydD05OTYxNzk1MjAgcmc9d2l0emUKfiMhIHRpZD05OTYwNzU2NjgKaGVoZSBzdGltbXQgaWNoIGhhYiBhYmkgdW5kIHppdmlsZGluZXN0IAoKaGlnaHQgbmFjaCBzZWluZW0gc2NobnVsbGVyIHVuZCBkZXIga2luZGVyZ2FydGVudGFudGUgc3VjaGVuZCAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChBcHN1LCAyOC4gSnVsIDIwMDEsIDE0OjM1OjE0KToKfiMhIHJuPVNjaGxlaWNoZXIgcnQ9OTk2MTg2ODk2IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkJvbml0b3MKCkFwc3UsIGZydWVoZXIganVuZyB1bmQga251c3ByaWcsIGpldHp0IG51ciBub2NoIHVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRnVlaGxzdCBEdSBEaWNoIGFsdD8gKFZhcmxhcmlvbiwgMjguIEp1bCAyMDAxLCAxNDozNTo1Nik6Cn4jISBybj1BcHN1IHJ0PTk5NjMyMzcxNCByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OApQYWgsIGlociBzZWlkIGphIGFsbGUgbnVyIG5laWRpc2NoLCBpaHIgYWx0ZW4gU2FlY2tlIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBGdWVobHN0IER1IERpY2ggYWx0PyAoRWxiZXJldCwgMjguIEp1bCAyMDAxLCAxNTozNjozOSk6Cn4jISBybj1WYXJsYXJpb24gcnQ9OTk2MzIzNzU2IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4Cm5vZSwgbmVpZGlzY2ggYmluIGljaCBuaWNodCwgdW5kIGphIGljaCBiaW4gZWluIGFsdGVyIFNhY2sKCkVsYmkgKCBTYWNrLCBhbHQgKGF1cyBVZWJlcnpldWd1bmcpICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChXdXJ6ZWwsIDMwLiBKdWwgMjAwMSwgMjA6MzE6NTEpOgp+IyEgcm49SGlnaHQgcnQ9OTk2Mjc4MTUzIHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CnNvc28uCnZpZWxsZWljaHQgc29sbHRlIGljaCBkaXIgbWFsIHplaWdlbiwgd2lldmllbCBsZWJlbiBhdWNoIGluIGFsdGVuIHNhZWNrZW4Kbm9jaCBzdGVja2VuIGthbm4uLi4gbWFsIHNlaGVuIHdlciBkYW5uIHRvdCBpc3QgOikKd2FobHdlaXNlIGF1Y2ggaW4gbnVlcm5iZXJnLCBkYSBrb21tIGljaCBtb3JnZW4gZWggdm9yYmVpIDopCgp3dXJ6ZWwgKGFsdCBhYmVyIGtuYWNraWcgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChNdXBmZWwsIDMwLiBKdWwgMjAwMSwgMjM6MTA6MDUpOgp+IyEgcm49SGlnaHQgcnQ9OTk2Mjc3Nzc5IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CmpvLi4uIGljaCBoYWIgYXVjaCBtYWwgeXBzIGdlc2FtbWVsdCwgYWJlciBzY2hvbiBhbm5vIDgwIGRhbWl0IGF1ZmdlaG9lcnQsCndlaWxzIGRhbm4gZG9jaCB6dXZpZWxlIHdpZWRlcmhvbHVuZ2VuIHdhcmVuIChhcmdzIHVuZCBkaWUgaGVmdGUgdm9uIDM1IGJpcwoxMDAgd2VnZ2V3b3JmZW4sIHdhcyBkaWUgaGV1dGUgd2VydCB3YXJlbi4uLiA7KQoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChLYXJ0b2ZmZWwsICA1LiBBdWcgMjAwMSwgMTY6MDY6NTgpOgp+IyEgcm49TXVwZmVsIHJ0PTk5NjUyNzQwNSByZz13aXR6ZQp+IyEgdGlkPTk5NjA3NTY2OAoKTWlyIGZpZWwgZGllIFRhZ2Ugbm9jaCBlaW4gTmFtZSBlaW46CgpXZXIgdm9uIEV1Y2gga2VubnQgZGVubiBub2NoIFVscmlrZSBKb2tpZWw/CgonVG9mZmVsIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEZ1ZWhsc3QgRHUgRGljaCBhbHQ/IChNb250YW51cywgIDUuIEF1ZyAyMDAxLCAxNzo1NTozMCk6Cn4jISBybj1LYXJ0b2ZmZWwgcnQ9OTk3MDIwNDE4IHJnPXdpdHplCn4jISB0aWQ9OTk2MDc1NjY4CkFjaCwgZGFzIGlzdCBkb2NoIGVpbiBLbGFzc2lrZXIuIDotKQpBYmVyIGxlaWNodCBtdXNzIHNpZSBzZWluLgpHZWdlbmZyYWdlOiBhdXMgd2VsY2hlciBTdGFkdCBrYW0gVWxyaWtlIEpva2llbD8gOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZSBvbGxlciBqZSBkb2xsZXIuLi4gKE9ya3RvZXRlciwgIDUuIEF1ZyAyMDAxLCAxOTozMToxNyk6CkVpbmUgUGZsZWdlcmluIGtvbW10IGlucyBBcnp0emltbWVyIGdlc3R1ZXJtdDogIkhlcnIgRG9rdG9yISBIZXJyIERva3RvciEgRGVyClNpbXVsYW50IGluIFppbW1lciBzaWViZW4gaXN0IGdlcmFkZSBnZXRzb3JiZW4hIgpEYXJhdWZoaW4gZGVyIEFyenQ6ICJOYSEgTnVuIHVlYmVydHJlaWJ0IGVyIGFiZXIgd2lya2xpY2ghIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEplIG9sbGVyIGplIGRvbGxlci4uLiAoR3JpbW1ib3JuLCAgNS4gQXVnIDIwMDEsIDE5OjM3OjM3KToKfiMhIHJuPU9ya3RvZXRlciBydD05OTcwMzI2Nzcgcmc9d2l0emUKfiMhIHRpZD05OTcwMzI2NzcKSWNoIGVudG5laG1lIGRlbSBTdWJqZWN0ICh1bmQgZGVtIEluaGFsdCkgZGFzcyBlcyBkYXJ1bSBnZWh0IG1vZWdsaWNoc3QgYWx0ZQpXaXR6ZSBhdXN6dWtyYW1lbi4gRGEgaGFzdCBEdSBqYSB3YXMgdm9yZ2VsZWd0LCBkYXMgaXN0IG5pY2h0IGxlaWNodCB6dQp0b3BwZW4uIEFiZXIgaWNoIGhhYiBkYSBub2NoIGVpbmVuIGdlZnVuZGVuOgoKIkFnaCB1Z2FoIGFnaGEgdWdnIHVnZyIgIkhvbmsgaHVnYWh1Z2FodWggb2dnIG9nZyIKCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBKZSBvbGxlciBqZSBkb2xsZXIuLi4gKE1vbnRhbnVzLCAgNS4gQXVnIDIwMDEsIDE5OjM5OjQ5KToKfiMhIHJuPUdyaW1tYm9ybiBydD05OTcwMzMwNTcgcmc9d2l0emUKfiMhIHRpZD05OTcwMzI2NzcKU2l0emVuIHp3ZWkgV2FsZSBpbiBkZXIgVHVuZHJhIHVuZCBzdHJpY2tlbiBFcmRvZWwuCktvbW10IGVpbmUgR2lyYWZmZSB2b3JiZWlnZWZsb2dlbiB1bmQgc2FndDogSGllciBpc3QgcGFya2VuIHZlcmJvdGVuLgpNYWNodCBkb2NoIG5peCwgc2FnZW4gZGllIFdhbGUsIGVzIGdpYnQgRXJkYmVlcmVpcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTZWhlbnN3ZXJ0IChBbm9yaXMsICA1LiBBdWcgMjAwMSwgMjI6NTc6NDgpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5NzAzMDM0NyByZz13d3cKfiMhIHRpZD05OTcwMzAzNDcKV2FzIGlzdCBnZWxiIHVuZCBmbGllZ3QgdWViZXIgZGllIFdpZXNlPwoKQmlybmUgTWF5YQoKLSBBbm9yaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEplIG9sbGVyIGplIGRvbGxlci4uLiAoUGVyZGl0YSwgIDguIEF1ZyAyMDAxLCAxMDozMDowNSk6Cn4jISBybj1Nb250YW51cyBydD05OTcwMzMxODkgcmc9d2l0emUKfiMhIHRpZD05OTcwMzI2NzcKbmVlLCBkZXIgZ2VodCBkb2NoIHNvOgpTaXR6ZW4gendlaSBLdWVoZSBhdWYnbSBaYXVuIHVuZCBoYWVrZWxuIFBvbW1mcml0ei4KUnVkZXJ0ICduIE1ldGVyIFNlbmYgdm9yYmVpIHVuZCBzYWd0OiAiTW9yZ2VuIGlzdCBQZmluZ3N0ZW4iLgpTYWdlbiBkaWUgS3VlaGU6ICJNYWNodCBuaXgsIHdpciBnZWgnbiBlaCBuaWNodCBoaW4iCgpvZGVyIHNvClBlcmRpdGEgaXN0IGhldXRlIGlyZ2VuZHdpZSB2b2xsIHdpdHppZyAoaGEgaGEpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBKZSBvbGxlciBqZSBkb2xsZXIuLi4gKEFuYXRvbCwgIDguIEF1ZyAyMDAxLCAxMDozMTo0MSk6Cn4jISBybj1QZXJkaXRhIHJ0PTk5NzI1OTQwNSByZz13aXR6ZQp+IyEgdGlkPTk5NzAzMjY3NwpTYWd0IE9ya3RvZXRlciBsZWlzZSAiSGFsbG8iLgoKQW5hdG9sIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpiZXJhdGVyIG1hbCB3aWVkZXIuLi4gKFd1cnplbCwgIDkuIEF1ZyAyMDAxLCAxOToyNjowOSk6CmJlcmF0ZXJ0eXBpc2NoIGV0d2FzIGxhZW5nZXIgLi4uCgo0MCBHcnVlbmRlIGRlbiBCZXJhdGVyLUpvYiBhbiBkZW4gTmFnZWwgenUgaGFlbmdlbgoKMS4gRHUgZnJhZ3N0IGRlbiBLZWxsbmVyIG5hY2ggc2VpbmVyIEtlcm5rb21wZXRlbnouCgoyLiBEdSBlbnRzY2hlaWRlc3QgRGljaCwgRGVpbmUgRmFtaWxpZSB6dSByZW9yZ2FuaXNpZXJlbiB1bmQgcm9sbGVuYmFzaWVydGUgClRlYW1iaWxkdW5nLCBUYXNrLUZvcmNlcywgZWluZW4gcGFydGl6aXBhdGl2ZW4gRnVlaHJ1bmdzc3RpbCB1bmQgClppZWx2ZXJlaW5iYXJ1bmdlbiBlaW56dWZ1ZWhyZW4uCgozLiBEdSBub3RpZXJzdCBEaXIgcHJpdmF0ZSBUZXJtaW5lIGFscyBNYXJrZXRpbmctIHVuZCBBa3F1aXNldmVyYW5zdGFsdHVuZ2VuLgoKNC4gRHUga2FubnN0IGRhcyBXb3J0ICJQYXJhZGlnbWEiIGJ1Y2hzdGFiaWVyZW4uCgo1LiBEdSB3ZWlzc3Qgc29nYXIsIHdhcyBlcyBiZWRldXRldC4KCjYuIER1IHNjaHJlaWJzdCBNYW5hZ2VtZW50LSBTdW1tYXJpZXMgYXVmIGRpZSBSdWVja3NlaXRlIERlaW5lcgpFaW5rYXVmc3pldHRlbC4KCjcuIER1IGdsYXVic3Qgd2lya2xpY2ggZGFyYW4sIGRhc3MgZXMgZWZmaXppZW50IGlzdCwgZWluZSAxMCBTZWl0ZW4gbGFuZ2UgClByYWVzZW50YXRpb24genVzYW1tZW4gbWl0IHNlY2hzIEtvbGxlZ2VuIHp1IGVyc3RlbGxlbiwgZGllIER1IGdhciBuaWNodAprZW5uc3QuCgo4LiBEdSBnbGF1YnN0IGF1Y2ggZGFyYW4sIGRhc3MgZWluIGFuZGVyZXIgZGFzIEluaGFsdHN2ZXJ6ZWljaG5pcyBkYXp1CnNjaHJlaWJlbiAKd2lyZC4KCjkuIER1IGdsYXVic3QgZGFyYW4sIGRhc3MgRHUgaW0gTGViZW4gbmllbWFscyBlY2h0ZSBTY2h3aWVyaWdrZWl0ZW4gaGF0dGVzdCBlcwpnYWIgbGVkaWdsaWNoIEhlcmF1c2ZvcmRlcnVuZ2VuLCBDaGFuY2VuLCBJc3N1ZXMsIGdyb3NzYXJ0aWdlIEF1ZmdhYmVuLCAKVmVyYmVzc2VydW5nc3BvdGVuemlhbGUgdW5kIHVuZ2x1ZWNrbGljaCBnZXNjaG5pdHRlbmUgUHJvemVzc2UuCgoxMC4gRHUga2VubnN0IGplZGVzICh1bmQgendhciB3aXJrbGljaCBqZWRlcykgbm9jaCBzbyBrbGVpbmUgQ2xpcC1BcnQgaW4gClBvd2VycG9pbnQuCgoxMS4gRHUgZXJrbGFlcnN0IGRlaW5lbSBLdW5kZW5iZXRyZXVlciBiZWkgZGVyIEJhbmssIGRhc3MgRHUgbmljaHQKaG9mZm51bmdzbG9zIAp2ZXJzY2h1bGRldCBiaXN0LCBzb25kZXJuIGVpbiBlY2h0ZXIgImhpZ2ggcG90ZW50aWFsIiBtaXQgQXVzc2ljaHRlbiBhdWYgIm91dC0KcGVyZm9ybWluZyByZXZlbnVlcyIuCgoxMi4gRHUgYmV0cmFjaHRlc3QgZGVpbmUgTWFobHplaXRlbiBhbHMgbm90d2VuZGlnZSBTZWt1bmRhZXItUHJvemVzc2UgenVyIApTaWNoZXJzdGVsbHVuZyBEZWluZXIgUHJvZHVrdGl2aXRhZXQuCgoxMy4gRHUgYmV6ZWljaG5lc3QgRGVpbmUgYmVzc2VyZSBIYWVsZnRlIGFscyBkZWluZW4gQ28tQ0VPLgoKMTQuIEFsbGUgRGVpbmUgR2VzY2hpY2h0ZW4gYmVnaW5uZW4gd2llICJhbHMgd2lyIGRhbWFscyBpbSBQcm9qZWt0IGJlaSBkZXIgCkJsYWJsYSIgb2RlciAidW5kIGRhbm4gaGF0dGUgdW5zZXIgVGVhbSBkaWVzZSBncmFuZGlvc2UgSWRlZSBtaXQgZGVtIFNhYmJlci0KU2FiYmVyIiBvZGVyICJlaW5lcyBtZWluZXIgZXJmb2xncmVpY2hzdGVuIFByb2pla3RlIGJlZ2FubiwgYWxzIGljaCByaGFiYXJiZXItCnJoYWJhcmJlciIuCgoxNS4gRHUgZ2xhdWJzdCBmZXN0IGRhcmFuLCBkYXNzIERlaW5lIGJlc3RlbiwgZ3Jvc3NhcnRpZ3N0ZW4gdW5kCmVyZm9sZ3JlaWNoc3RlbiAKQ2hhcnRzIGplbmUgd2FyZW4sIGRpZSBpbiBudXIgZnVlbmYgTWludXRlbiBlbnRzdGFuZGVuIHNpbmQuCgoxNi4gRHUgYmVzdGVoc3QgZGFyYXVmLCBub2NoIG1laHIgTWFya3QtIHVuZCBaaWVsZ3J1cHBlbmZvcnNjaHVuZyB6dQpiZXRyZWliZW4sIApiZXZvciBkdSBkZW4gUHJvZHVrdGlvbnNwcm96ZXNzIGZ1ZXIgZWluIHdlaXRlcmVzIEtpbmQgYW5zdG9lc3N0LgoKMTcuIERlaW5lICJEZWxpdmVyYWJsZXMiIHVuZCAiT2JqZWN0aXZlcyIgZnVlciBTYW1zdGFnIHNpbmQgV2Flc2NoZSB3YXNjaGVuLCAKS3VlaGxzY2hyYW5rIGF1ZmZ1ZWxsZW4sIE11ZWxsIHJhdXNicmluZ2VuLCBBbHRwYXBpZXIgZW50c29yZ2VuLCBCbHVtZW4KZ2llc3NlbiwgCkVpbmthdWZlbiwgQnJpZWZrYXN0ZW4gYXVzbGVlcmVuLCBCdWVnZWxuLCBQdXR6ZW4sIEtvZmZlciBhdXNsZWVyZW4sIEtvZmZlcgpmdWVyIApNb250YWcgcGFja2VuLCBVbnRlcmxhZ2VuIHNvcnRpZXJlbi4KCjE4LiBTcGFldGVzdGVucyBoaWVyIGZyYWdzdCBkdSBEaWNoIGplZGVzIE1hbCwgd2FydW0gRHUgbm9jaCBrZWluIFByb2pla3QgZnVlcgpkaWUgc3RyYXRlZ2lzY2hlIEF1c3dhaGwgZWluZXIgUHV0emZyYXUgYXVmZ2VzZXR6dCBoYXN0LgoKMTkuIE5hY2hkZW0gZGFzIEJ1ZGdldCBmdWVyIGVpbmUgUHV0emZyYXUgdm9tIENvLUNFTyBnZW5laG1pZ3Qgd3VyZGUsIGZyYWdzdApEdSAKRGljaCwgd2llIER1IGRpZSBFZmZpemllbnogdW5kIGRpZSBFZmZla3Rpdml0YWV0IGRlaW5lciB0dWVya2lzY2hlbiBQdXR6ZnJhdSAKc3RlaWdlcm4ga2FubnN0IHVuZCB3YXJ1bSBEdSBzdGF0dCBlaW5lcyBUc2NoYWRlci12ZXJodWVsbHRlbiBGbGVpc2NoYmVyZ3MKbmljaHQgCmRvY2ggZGllIGtsZWluZSBUaGFpbGFlbmRlcmluIGVuZ2FnaWVydCBoYXN0LgoKMjAuIER1IHZlcmVpbmJhcnN0IGVyZm9sZ3NhYmhhZW5naWdlIEVpbmtvbW1lbnNzdHJ1a3R1cmVuIG1pdCBkZWluZXIgUHV0emZyYXUuCgoyMS4gRHUgYmVudXR6dCBXb3J0ZSB3aWUgIk1laHJ3ZXJ0Z2VuZXJpZXJ1bmdzcG90ZW56aWFsIiwgCiJFZmZpemllbnpzdGVpZ2VydW5nc3BvdGVuemlhbCIgdW5kIFBocmFzZW4gd2llICJkaWUgc3RyYXRlZ2lzY2hlbiAKSGVyYXVzZm9yZGVydW5nZW4gZGVyIGVsZWt0cm9uaXNjaGVuIFp1a3VuZnQgbWVpc3Rlcm4iIG9obmUgcm90IHp1IHdlcmRlbi4KCjIyLiBEdSBnaWJzdCBkZWluZW0gSHVuZCBrb25zdHJ1a3RpdmVzIEZlZWRiYWNrLgoKMjMuIER1IGxhZWRzdCBGcmV1bmRlIGVpbiwgdW0gZGVuIEZpbG0gIkludGVyZGVwZW5kZW5jZSBEYXkiIG1pdCBhbnp1c2VoZW4uCgoyNC4gRGVyIFdlY2hzZWwgZWluZXIgRnJldW5kaW4gb2RlciBFaGVmcmF1IGlzdCBsZWRpZ2xpY2ggZWluIFJlbGVhc2UtV2VjaHNlbCwKbmV1ZSBCZXppZWh1bmdlbiB3ZXJkZW4gYWxzIE1lcmdlciBwZW5pYmVsIG1pdCBlaW5lbSBQcm9ncmFtbSBmdWVyIGRhcyBDaGFuZ2UtCk1hbmFnZW1lbnQgZ2VwbGFudC4KCjI1LiBEdSB0cmVubnN0IERpY2ggbmljaHQgdm9uIGVpbmVtIFBhcnRuZXIsIHNvbmRlcm4gaW5pdGlpZXJzdCBlaW5lbiAKT3V0cGxhY2VtZW50LVByb3plc3MuIFdpZXNvIGVpZ2VudGxpY2ggUGFydG5lcj8gRHUgZW50c2NoZWlkZXN0IERpY2ggaW0gU2lubmUgCmRlciBFaW5kZXV0aWdrZWl0IGRhZnVlciwgZGllc2VuIGluIFp1a3VuZnQgYWxzIExBQiB6dSBiZXplaWNobmVuIChMZWJlbnMtCkFic2Nobml0dHMtQmVnbGVpdGVyKS4gRGVubjogYmVpIGRlbSBXb3J0ICJQYXJ0bmVyIiBmYWVsbHQgZGlyIG51ciBlaW5lIApGdWVocnVuZ3Nwb3NpdGlvbiBpbiBlaW5lbSBDb25zdWx0aW5nLVVudGVybmVobWVuIGVpbi4KCjI2LiBBbiBkZXIgV3Vyc3QtVGhla2UgaW0gU3VwZXJtYXJrdCBlcmtsYWVyc3QgRHUgZGVyIFZlcmthZXVmZXJpbiBlaW5lClByb3plc3MtCk9wdGltaWVydW5nIHp1ciBEdXJjaHNhdHpzdGVpZ2VydW5nIHVuZCBGcmVpc2V0enVuZyBpbmVmZml6aWVudGVyIFJlc3NvdXJjZW4KYXVmIApkZXIgUnVlY2tzZWl0ZSBkZXMgUGl6emEtS2FydG9ucy4gRGFubiB3dW5kZXJzdCBEdSBEaWNoLCBkYXNzIERpciBkaWUgClZlcmthZXVmZXJpbiBudXIgbm9jaCBkaWUgV2FyZSBtaXQgZGVtIEZldHRyYW5kIHVuZCBkaWUgdmVydHJvY2tuZXRlbiwgZ3JhdWVuIApTdHVlY2tlIGVpbnBhY2t0LgoKMjcuIER1IGVudHdpcmZzdCBmdWVyIGRlbiBtb25hdGxpY2hlbiBIYXVzcHV0eiBqZWRlcyBNYWwgZWluZW4gUHJvamVrdHBsYW4gaW4gCk1pY3Jvc29mdC1Qcm9qZWN0IHVuZCBhZXJnZXJzdCBEaWNoIHVlYmVyIGRpZSBlbGVuZGUgUmVzc291cmNlbnZlcndhbHR1bmcuCgoyOC4gRGVpbiBDby1DRU8gc2llaHQgRGljaCBqZWRlcyBNYWwgdmVyd3VuZGVydCBhbiwgd2VubiBEdSBuYWNoIGRlbSAKZGlsZXR0YW50aXNjaGVuIFByb2pla3QtQ29udHJvbGxpbmcgZnJhZ3N0IHVuZCB3YXJ1bSBkZXIgSGF1c3B1dHogd2llZGVyIG5pY2h0CmluLXRpbWUgdW5kIGF1Y2ggbmljaHQgaW4tYnVkZ2V0IGluIHp1ZnJpZWRlbnN0ZWxsZW5kZXIgUXVhbGl0YWV0CmR1cmNoZ2VmdWVocnQgCnd1cmRlLgoKMjkuIERlaW5lIEtpbmRlciBzZWhlbiBEaWNoIG1pdGxlaWRpZyB1bmQgenVnbGVpY2ggem9ybmlnIGFuLCB3ZW5uIER1IGF1ZiBkaWUgCkJpdHRlIG5hY2ggbWVociBUYXNjaGVuZ2VsZCBtaXQgZGVyIEF1ZmZvcmRlcnVuZyBhbnR3b3J0ZXN0LCBlaW5lbgpCdXNpbmVzcy1QbGFuIAp6dSBlcnN0ZWxsZW4gdW5kIGVpbmUgc3RyYXRlZ2lzY2hlIE5ldWF1c3JpY2h0dW5nIGRlcyBTcGllbHpldWdwb3J0Zm9saW9zCnVudGVyIApCZXJ1ZWNrc2ljaHRpZ3VuZyBkZXIgRWluZmx1ZXNzZSB2b24gZS1Db21tZXJjZSB1bmQgIm1vYmlsZSBlLW1hcmtldHMiIApkdXJjaHp1ZnVlaHJlbi4KCjMwLiBEdSBrYW5uc3QgZGllIEZyYWdlICJIZXkgUGFwczogd2FydW0gaGFzdCBkdSBub2NoIGtlaW4gV0FQLUhhbmR5PyIgZXJzdApuYWNoIApkZXIgRXJzdGVsbHVuZyBlaW5lciA2MCBTZWl0ZW4gbGFuZ2VuIFN0dWRpZSBiZWFudHdvcnRlbiB1bmQgc3RlbGxzdCBkZXIgClByb2pla3RsZWl0dW5nIGRlcyBGYW1pbGllbnRlYW1zIGRpZSBBdWZ3ZW5kdW5nZW4gZGFmdWVyIGluIFJlY2hudW5nLgoKMzEuIERpZSBCaXR0ZSBEZWluZXIgS2luZGVyLCBkaWUgbmV1ZSBTb255IFBsYXktU3RhdGlvbiB6dSBrYXVmZW4sIHdpcmQgbWl0CmRlciAKQmVncnVlbmR1bmcgYWJnZWxlaG50LCBkaWVzZSBwYXNzZSBuaWNodCBpbiBkaWUgc3RyYXRlZ2lzY2hlIEF1c3JpY2h0dW5nCmRlaW5lciAKSGF1c2hhbHRzLUlULgoKMzIuIER1IGJldHJhY2h0ZXN0IERlaW4gQXV0byBsZWRpZ2xpY2ggYWxzIExvZ2lzdGlrLVRvb2wgIC4uLi5vYndvaGw6IGVpbiBCZW56CndhZXJlIGF1Y2ggbmljaHQgc2NobGVjaHQgLi4uLiBvZGVyIHdlbmlnc3RlbnMgZWluIDVlciBCTVcuIEFiZXIgZGVuIGhhdCBkb2NoIApoZXV0ZSBhdWNoIHNjaG9uIGplZGVyIFNlbmlvci1CZXJhdGVyLiBTdGVodCBtaXIgbmljaHQgd2VuaWdzdCBlaW4gQXVkaSBBOCA0LjIKUXVhdHRybyB6dT8gRGFzIGlzdCBqYSB3b2hsIGRhcyBtaW5kZXN0ZSwgd2FzIG1pciBkaWUgQ29tcGFueSBmdWVyIG1laW5lIApMZWlzdHVuZ2VuIHNjaHVsZGlnIGlzdCEKCjMzLiBCZWltIEJsaWNrIGluIGRhcyBQcm9ncmFtbSB2b24gUlRMMiBmcmFnc3QgRHUgRGljaCBlcm5zdGhhZnQsIGRlciAKR2VzY2hhZWZ0c2Z1ZWhydW5nIGVpbmUgbmV1IEdlc2NoYWVmdHNmZWxkLVN0cmF0ZWdpZSBvZGVyIHdlbmlnc3RlbnMgZWluZSAKUHJvZ3JhbW1iZXJhdHVuZyBhbnp1YmlldGVuLgoKMzQuIER1IGVydGFwcHN0IERpY2ggaW1tZXIgd2llZGVyIGRhYmVpLCBlaW4gUGVyc29lbmxpY2hrZWl0c3Byb2ZpbCBkZWluZXMgQ28tCkNFT3MgYXVmenV6ZWljaG5lbiB1bmQgZWluIGFiZ2VzdGltbXRlcyBRdWFsaWZpemllcnVuZ3Nwcm9ncmFtbSB6dSBlbnR3ZXJmZW4uCgozNS4gRHUgZmFlbmdzdCBzY2hvbiBtYWwgbWl0IGVpbmVtIEZyYWdlYm9nZW4gYW4uCgozNi4gRHUgZXJ0YXBwc3QgRGljaCBhdWNoIGltbWVyIG9lZnRlciBkYWJlaSwgRnJhZ2VuIHp1IGJlYW50d29ydGVuLCBkaWUKbmllbWFuZCAKZ2VzdGVsbHQgaGF0IHVuZCBkaWUgYXVjaCBub2NoIGplbnNlaXRzIERlaW5lciBLb21wZXRlbnogbGllZ2VuCgozNy4gSW4gZGllc2VuIERpbmdlbiBoYXN0IER1IGF1Y2ggc2Nob24gbGFlbmdzdCBkZW4gR2xhdWJlbiBhbiBkYXMgIlBldGVyLQpQcmluemlwIiB2ZXJsb3Jlbi4gRHUgZ2xhdWJzdCBzdGF0dCBkZXNzZW4gYW4gZGllIFRoZXNlIGRlciBIeXBlci1JbmtvbXBldGVueiwKZGllIGplbnNlaXRzIGRlciB2b24gUGV0ZXIgcG9zdHVsaWVydGVuLCBtYXhpbWFsIG1vZWdsaWNoZW4gSW5rb21wZXRlbnogenUgCmZpbmRlbiBpc3QgdW5kIHdlaXNzdDogZGEgd2lsbCBpY2ggaGluIQoKMzguIER1IGZhZW5nc3QgYW4sIG1pdCBkZWluZW0gTGFwdG9wIHp1IHNwcmVjaGVuLCBpaG4genUgYmVzY2hpbXBmZW4sIGlobiAKYW56dXNjaHJlaWVuIHVuZCBpaG4gbWl0IGRlbSBIYW5keSB1bmQgZGVtIFBhbG10b3AgenUgYmVkcm9oZW4uCgozOS4gRHUgd2lyc3QgYXVjaCBuaWVtYWxzIHp1Z2ViZW4sIGRhc3MgRHUgbWl0IGRpZXNlbSBkYWVtbGljaGVuIFBhbG10b3AgbmljaHQKcmljaHRpZyB1bWdlaGVuIGthbm5zdCB1bmQgZGFzIGF1Y2ggbmllbWFscyBsZXJuZW4gd2lyc3QuCgo0MC4gRXMga29tbXQgaW1tZXIgb2VmdGVyIHZvciwgZGFzcyBEdSBDbGllbnRlbiBoYXNzdCB1bmQgaWhuZW4gaWhyIE1hbmRhdCBpbiAKZGVuIEhhbHMgc3RvcGZlbiBtb2VjaHRlc3QuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2xlaW5lIEp1bmdzIChNb250YW51cywgMTUuIEF1ZyAyMDAxLCAxODo1MDo1OSk6ClR3byB5b3VuZyBib3lzIHdlcmUgZGlzY3Vzc2luZyB0aGVpciBwYXJlbnRzLCB3aGVuIG9uZSByZWFsaXplZCBoZSByZWFsbHkga25ldwp2ZXJ5IGxpdHRsZSBhYm91dCBoaXMgbW90aGVyLiBBcnJpdmluZyBob21lIHRoYXQgZXZlbmluZywgaGUgZ2F2ZSBoZXIgYSB0aGlyZApkZWdyZWUgZXhhbWluYXRpb24uCj4gCiJIb3cgb2xkIGFyZSB5b3U/IiBoZSBhc2tlZC4KPiAKIk5vbmUgb2YgeW91ciBidXNpbmVzcywiIHJlcGxpZWQgaGlzIG1vdGhlciwgc2hvcnRseS4KPiAKIk9rYXksIHRoZW4gaG93IG11Y2ggZG8geW91IHdlaWdoPyIKPiAKIlRoYXQncyBub3QgeW91ciBidXNpbmVzcyBlaXRoZXIsIHlvdW5nIG1hbi4iCj4gClRoZSBib3kgdGhpbmtzIGEgbWludXRlIHRoZW4gZGVsaXZlcnMgaGlzIGZpbmFsIGJvbWJzaGVsbC4gIldlbGwgdGhlbiwgY2FuIHlvdQp0ZWxsIG1lIHdoeSB5b3UgYW5kIGRhZGR5IGdvdCBkaXZvcmNlZD8iCj4gCj4gU2hvY2tlZCBhbmQgYXBwYWxsZWQsIG1vbSBzZW5kcyBqdW5pb3IgdG8gYmVkIHdpdGhvdXQgc3VwcGVyLgo+IApUaGUgbmV4dCBkYXksIHRoZSBraWQgcmVwb3J0cyBoaXMgZmFpbHVyZSB0byBoaXMgc2Nob29sbWF0ZS4gIkkga25vdyEiIHNheXMKaGlzIGJ1ZGR5LCAiSnVzdCBsb29rIGF0IGhlciBkcml2ZXIncyBsaWNlbnNlIGluIGhlciBwdXJzZS4gSXQnbGwgdGVsbCB5b3UKZXZlcnl0aGluZyB5b3Ugd2FudCB0byBrbm93LiIKPiAKTGF0ZXIgdGhhdCBkYXksIG1vbSBmaW5kcyBoZXIgc29uIG5leHQgdG8gaGVyIGRpc2VtYm93ZWxlZCBwdXJzZSwgaG9sZGluZyBoZXIKZHJpdmVyJ3MgbGljZW5zZS4gIkp1c3Qgd2hhdCB0aGUgaGVjayBkbyB5b3UgdGhpbmsgeW91IGFyZSBkb2luZz8iIHNoZSB5ZWxscy4KPiAKIldlbGwsIHlvdSB3b3VsZG4ndCB0ZWxsIG1lIHdoYXQgSSB3YW50ZWQgdG8ga25vdywiIHNheXMgdGhlIGp1bmlvciBkZXRlY3RpdmUsCiJidXQgbXkgZnJpZW5kIHNhaWQgaXQncyBhbGwgcmlnaHQgaGVyZS4gU2VlLCB5b3UncmUgNDAgeWVhcnMgb2xkLi4ueW91IHdlaWdoCjE0NSBwb3VuZHMuLi5hbmQgZGFkZHkgZGl2b3JjZWQgeW91IGJlY2F1c2UgeW91IGdvdCBhbiAnRicgaW4gU2V4LiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaHVsYW5mYW5nIChNdXBmZWwsIDIxLiBBdWcgMjAwMSwgMDA6NDM6MTMpOgpTY2h1bGFuZmFuZy4KRGllIExlaHJlcmluIGZyYWd0IGRpZSBLaW5kZXIgYW0gZXJzdGVuIFNjaHVsdGFnLCB3YXMgZGVubiBkZXJlbiBWYWV0ZXIKYmVydWZsaWNoIG1hY2hlbi4KCkNocmlzdGlhbjogTWVpbiBQYXBhIGlzdCBSZWNodHNhbndhbHQKRmxvcmlhbjogTWVpbiBQYXBhIGlzdCBQb2xpemlzdApNaWNoYWVsOiBNZWluIFBhcGEgaXN0IFRpZXJhcnp0CkZyaXR6Y2hlbjogTWVpbiBQYXBhIGlzdCBFaW50YWVuemVyIGluIGVpbmVtIFNjaHd1bGVubG9rYWwuCgpOYWNoIGRlbSBVbnRlcnJpY2h0IG5pbW10IGRpZSBMZWhyZXJpbiBGcml0emNoZW4gYmVpc2VpdGUgdW5kIGZyYWd0OgpEYXMgaXN0IGRvY2ggbmljaHQgd2Focj8KCkZyaXR6Y2hlbjogTmVpbiwgbWVpbiBWYXRlciBpc3QgUHJvZ3JhbW1pZXJlciBiZWkgTWljcm9zb2Z0IGFiZXIgaWNoCndvbGx0cyBuaWNodCBzbyBydW1wb3NhdW5lbi4uLgoKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmdlbCAoTXVwZmVsLCAyMS4gQXVnIDIwMDEsIDAwOjUwOjEwKToKS29tbXQgZWluZXIgaW4gZGVuIEhpbW1lbCwgdW5kIHNpZWh0IGRhIHZlcnNjaGllZGVuZQpFbmdlbCBhdWYgaWhyZW4gV29sa2VuIGhlcnVtcnVkZXJuLiBEaWUgZWluZW4gaGFiZW4gYXVmCmlocmVyIFdvbGtlIG5lYmVyIHNpY2ggbmVuIEthc3RlbiBTcHJ1ZGVsIHVuZCAnbmUKR3VtbWlwdXBwZS4KRGllIGFuZGVyZW4gbmUgc2NoYXJmZSBCcmF1dCB1bmQgbmVuIEthc3RlbiBCaWVyLgpEZXIgZnJpc2NoIFZlcnN0b3JiZW5lIGZyYWd0LCB3YXJ1bSBlcyBkZW5uIGltIEhpbW1lbCBlaW5lClp3ZWlrbGFzc2VuZ2VzZWxsc2NoYWZ0IGdlYmUuClNhZ3QgUGV0cnVzOiB0amEsIGRpZSBtaXQgZGVtIFNwcnVkZWwsIGRhcyBzaW5kIGRpZSwgZGllIGluCmlocmVtIExlYmVuIGJyYXYgd2FyZW4sIGRpZSBtaXQgZGVtIEJpZXIgZGllIFN1ZW5kZXIuCkRhcyBrYXBpZXJ0IGRlciBuZXVlIEVuZ2VsIG5hdHVlcmxpY2ggbmljaHQuIElociBqYSBhdWNoIG5pY2h0LgpTYWd0IFBldHJ1czogRGEgaXN0IGVpbiBUcmljayBkYWJlaTogZGFzIEJpZXIgaGF0IHVudGVuIGVpbgpMb2NoLiBEaWUgQmxvbmRpbmUgbmljaHQuCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVnZW5hcnp0IChNdXBmZWwsIDIxLiBBdWcgMjAwMSwgMDA6NTQ6MTQpOgpLb21tdCBlaW4gVHNjaGVjaGUgenVtIEF1Z2VuYXJ6dC4gRGVyIGhhZWx0IGlobSBkaWUgQnVjaHN0YWJlbnRhZmVsIHZvciwKYXVmIGRlciBzdGVodCBDIFogVyBYIE4gUSBZIFMgVCBBIEMgWiwgdW5kIGZyYWd0IGlobjogIktvZW5uZW4gU2llIGRhcyBsZXNlbj8iCiJMZXNlbj8iIHJ1ZnQgZGVyIFRzY2hlY2hlIGVyc3RhdW50IGF1cywgIkljaCBrZW5uZSBkZW4gS2VybCEiCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1Z2VuYXJ6dCAoVmFybGFyaW9uLCAyMS4gQXVnIDIwMDEsIDAwOjU0OjUwKToKfiMhIHJuPU11cGZlbCBydD05OTgzNDgwNTQgcmc9d2l0emUKfiMhIHRpZD05OTgzNDgwNTQKT2ssIGRlciBsZXR6dGUgd2FyIHdpdHppZywgZ3JhZCBub2NoIGdlcmV0dGV0LCBNdXBmZWwgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXVnZW5hcnp0IChNdXBmZWwsIDIxLiBBdWcgMjAwMSwgMDA6NTc6NDgpOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5ODM0ODA5MCByZz13aXR6ZQp+IyEgdGlkPTk5ODM0ODA1NAoiV2l0emlna2VpdCBpc3QgaW1tZXIgZGllIFdpdHppZ2tlaXQgZGVzIEFuZGVyc2xhY2hlbmRlbiIKKFJvc2EgRGluZ2VucywgYWVoIHZlcmdlc3NlbiAod2FycyBuaWNodCBCaWVsZWZlbGQ/KSkKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBdWdlbmFyenQgKE1vbnRhbnVzLCAyMS4gQXVnIDIwMDEsIDAxOjA0OjUxKToKfiMhIHJuPU11cGZlbCBydD05OTgzNDgyNjggcmc9d2l0emUKfiMhIHRpZD05OTgzNDgwNTQKbm9lLCBpY2ggZ2xhdWJlIExpZWNodGVuc3RlaW4uIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGVsZWtvbSAoQW5vcmlzLCAyMS4gQXVnIDIwMDEsIDAxOjEwOjE3KToKQWhhLCB3aWVkZXInbmUgU29uZGVybGVpc3R1bmcgZGVyIFRlbGVrb20hCgpOVUxMLVRBUklGIQoKRnVlciBodW5kZXJ0amFlaHJpZ2UgVGF1YnN0dW1tZSBhbiBqZWRlbSAyOS4gRmVicnVhciB2b24gMjQtMCBVaHIgYmVpClNvbm5lbmZpbnN0ZXJuaXMgdW5kIDIwIEdyYWQgbWludXMuCgotIEFub3JpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGxheSAoQW5vcmlzLCAyMS4gQXVnIDIwMDEsIDAxOjE3OjE4KToKQSBmZXcgZGF5cyBhZnRlciBDaHJpc3RtYXMsIGEgbW90aGVyIHdhcyB3b3JraW5nIGluIHRoZSBraXRjaGVuIGFuZApsaXN0ZW5pbmcgdG8gaGVyIHNvbiBwbGF5IHdpdGggaGlzIG5ldyBlbGVjdHJpYyB0cmFpbiBzZXQgaW4gdGhlIGxpdmluZwpyb29tLiBTaGUgaGVhcmQgdGhlIHRyYWluIHN0b3AgYW5kIGhlciBzb24gc2FpZCwgIkFsbCBvZiB5b3Ugc29ucyBvZgpiaXRjaGVzIHdobyB3YW50IG9mZiwgZ2V0IHRoZSBoZWxsIG9mZiBub3cgYmVjYXVzZSB0aGlzIGlzIHRoZSBsYXN0CnN0b3AuIEFsbCBvZiB5b3Ugc29ucyBvZiBiaXRjaGVzIHdobyBhcmUgZ2V0dGluZyBvbiwgZ2V0IHlvdXIgYXNzZXMgb24KdGhlIHRyYWluIG5vdyBiZWNhdXNlIHdlJ3JlIGxlYXZpbmcuIgoKVGhlIG1vdGhlciB3ZW50IGludG8gdGhlIGxpdmluZyByb29tIGFuZCB0b2xkIGhlciBzb24sICJXZSBkb24ndCB1c2UKdGhhdCBraW5kIG9mIGxhbmd1YWdlIGluIHRoaXMgaG91c2UuIE5vdyBnbyB0byB5b3VyIHJvb20gZm9yIHR3byBob3Vycy4KV2hlbiB5b3UgY29tZSBkb3duLCB5b3UgbWF5IHBsYXkgd2l0aCB5b3VyIHRyYWlucyBhcyBsb25nIGFzIHlvdSB1c2UKcHJvcGVyIGxhbmd1YWdlLiIKClR3byBob3VycyBsYXRlciwgdGhlIG1vdGhlciB3YXMgc3RpbGwgd29ya2luZyBpbiB0aGUga2l0Y2hlbiB3aGVuIGhlciBzb24KY2FtZSBvdXQgb2YgaGlzIHJvb20gYW5kIHJlc3VtZWQgcGxheWluZyB3aXRoIGhpcyB0cmFpbnMuIFRoZSB0cmFpbiBzdG9wcGVkCmFuZCB0aGUgbW90aGVyIGhlYXJkLCAiQWxsIHBhc3NlbmdlcnMgZGlzZW1iYXJraW5nIHRoZSB0cmFpbiwgcGxlYXNlCnJlbWVtYmVyIHRvIHRha2UgYWxsIG9mIHlvdXIgYmVsb25naW5ncy4gV2UgdGhhbmsgeW91IGZvciByaWRpbmcgd2l0aCB1cwp0b2RheSBhbmQgaG9wZSB5b3VyIHRyaXAgd2FzIGEgcGxlYXNhbnQgb25lLiBGb3IgdGhvc2UganVzdCBib2FyZGluZywgd2UKYXNrIHRoYXQgeW91IHN0b3cgeW91ciBoYW5kIGx1Z2dhZ2UgdW5kZXIgdGhlIHNlYXQgYW5kIHdlIGhvcGUgeW91IGVuam95CnlvdXIgdHJpcC4gRm9yIHRob3NlIG9mIHlvdSB3aG8gYXJlIHBpc3NlZCBvZmYgYWJvdXQgdGhlIHR3byBvdXJzIGRlbGF5LApwbGVhc2Ugc2VlIHRoZSBiaXRjaCBpbiB0aGUga2l0Y2hlbi4iCgotIEFub3JpcyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBdWdlbmFyenQgKFNjaGxlaWNoZXIsIDIxLiBBdWcgMjAwMSwgMDk6MTQ6NTEpOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5ODM0ODA5MCByZz13aXR6ZQp+IyEgdGlkPTk5ODM0ODA1NApXYWhyIGdlc3Byb2NoZW4sIHdvbGx0ZSBNdXBmZWwgZ3JhZGUgc2Nob24gZWluZSBTY2hhdWZlbCB6dW0gYmVncmFiZW4gZGFzCm5pdmVhcyAob2RlciB3aWUgZGFzIERpbmcgaGVpc3N0KSByZWljaGVuIQoKU2NobGVpY2hlciBOaXZlYSB1bmQgbml2ZWF1bG9zIChzYWd0IG1hbikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJsb25kaW5lbiAoR2FiaSwgMjcuIEF1ZyAyMDAxLCAyMzoxODo1MSk6CldhcnVtIGZ1ZWhsZW4gc2ljaCBCbG9uZGluZW4genUgZGljaz8KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCldlaWwgbWFsIGVpbiBNYW5uIGdlc2FndCBoYXQ6IFdlbm4gRHUgYmVpbSBBdWZyZWNodHN0ZWhlbiBkZW4gUGVuaXMgbmljaHQKc2VoZW4ga2FubnN0LCBiaXN0IER1IHp1IGRpY2shCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWVubmVybWFuaWZlc3QgKEhpcnVkbywgMjguIEF1ZyAyMDAxLCAxOTo0NzoyNyk6CkxpZWJlIE1pdHVudGVyZHJ1ZWNrdGUsCgplbmRsaWNoIHN0ZWh0IGVzIHNjaHdhcnogYXVmIHdlaXNzOiBEaWUgVGFnZSwgYW4gZGVuZW4gRnJhdWVuIHNhZ2VuIHNpZQp2ZXJzdHVlbmRlbiB1bnMgbmljaHQsIHNpbmQgZ2V6YWVobHQhIEhpZXJtaXQgbGVpdGUgaWNoIEV1Y2ggZWluIG1hZWNodGlnZXMKV2Vya3pldWcgd2VpdGVyLCBkYW1pdCBJaHIgZXMgRXVyZW4gRnJhdWVuIHdlaXRlcmxlaXRldCwgYXVmIGRhc3Mgc2llIGVzCmxlc2VuIHVuZCBob2ZmZW50bGljaCB2ZXJzdGVoZW4gbW9lZ2VuOgoKRGFzIE1BZU5ORVJNQU5JRkVTVCAoRWluIGZ1ZXIgYWxsZSBNYWwhKQoKRnJhdSwgRnJhZXVsZWluLCBGcmV1bmRpbiwgVmVybG9idGUsIFdlaWIsIEFuZ2V0cmF1dGUgdW5kIGFsbGUgYW5kZXJlbiBGcmF1ZW4sCgoxLiBXZW5uIER1IGRlbmtzdCwgRHUgd2FlcnN0IGZldHQsIGlzdCBkYXMgd2FocnNjaGVpbmxpY2ggYXVjaCBkZXIgRmFsbCEKRnJhZycgbWljaCBuaWNodCwgaWNoIHZlcndlaWdlcmUgZGllIEF1c3NhZ2UuCgoyLiBXZW5uIER1IGV0d2FzIHdpbGxzdCwgcmVpY2h0IGVzIHZvZWxsaWcsIGVpbmZhY2ggZGFuYWNoIHp1IGZyYWdlbi4KVW0gZWluZXMga2xhcnp1c3RlbGxlbjogV2lyIHNpbmQgc2ltcGVsLiBXaXIgdmVyc3RlaGVuIGtlaW5lIHN1YnRpbGVuCmluZGlyZWt0ZW4gRnJhZ2VuLiBJbmRpcmVrdGUgRnJhZ2VuIGZ1bmt0aW9uaWVyZW4gbmljaHQsIGRpZSBhdWYgZGVyCkhhbmQgbGllZ2VuZGVuIGluZGlyZWt0ZW4gRnJhZ2VuIGF1Y2ggbmljaHQuIFNhZyBlcyBlaW5mYWNoIHdpZSBlcyBpc3QuCgozLiBXZW5uIER1IGVpbmUgRnJhZ2Ugc3RlbGxzdCBhdWYgZGllIER1IGtlaW5lIEFudHdvcnQgZXJ3YXJ0ZXN0LAp3dW5kZXJlIERpY2ggbmljaHQsIGRhc3MgZWluZSBBbnR3b3J0IGtvbW10LCBkaWUgRHUgbmljaHQgaG9lcmVuCndvbGx0ZXN0LgoKNC4gV2lyIHNpbmQgU0lNUEVMLiBXZW5uIGljaCBEaWNoIGJpdHRlLCBtaXIgZGFzIEJyb3QgYW56dXJlaWNoZW4sIG1laW5lCmljaCBuaWNodHMgYW5kZXJlcyBhbHMgZGFzLiBFcyBpc3Qga2VpbiBWb3J3dXJmLCBkYXNzIGVzIG5pY2h0IGF1ZiBkZW0KVGlzY2ggc3RlaHQuIEVzIGdpYnQgd2VkZXIgdmVyc3RlY2t0ZSBBbmRldXR1bmdlbiBub2NoIFZvcnd1ZXJmZS4gV2lyCnNpbmQgd2lya2xpY2ggU2ltcGVsLgoKNS4gV2lyIHNpbmQgU0lNUEVMLiBFcyBtYWNodCBrZWluZW4gU2lubiBtaWNoIHp1IGZyYWdlbiBhbiB3YXMgaWNoIGRlbmtlIQo5Niw1JSBkZXIgWmVpdCBkZW5rZW4gTWFlbm5lciBhbiBTZXguIE5laW4sIHdpciBzaW5kIG5pY2h0IGJlc2Vzc2VuLCBlcwppc3QgZWluZmFjaCBkYXMgLHdhcyB1bnMgYW0gbWVpc3RlbiBnZWZhZWxsdC4KCjYuIFdpciBzaW5kIFNJTVBFTC4gTWFuY2htYWwgZGVua2UgaWNoIG5pY2h0IGFuIERpY2guIERhcyBpc3QgbmljaHQgc2NobGltbS4KR2V3b2VobiBEaWNoIGJpdHRlIGRhcmFuLiBGcmFnZSBtaWNoIGJpdHRlIG5pY2h0LCB3b3JhbiBpY2ggZGVua2UsIGVzIHNlaQpkZW5uIER1IGJpc3QgYmVyZWl0LCB1ZWJlciBQb2xpdGlrLCBXaXJ0c2NoYWZ0LCBQaGlsb3NvcGhpZSwgRnVzc2JhbGwsClNhdWZlbiwgVGl0dGVuLCBIaW50ZXJuIG9kZXIgQXV0b3MgenUgcmVkZW4uCgo3LiBGcmVpdGFnL1NhbXN0YWcvU29ubnRhZyA9IHZpZWwgZnJlc3NlbiA9IEZyZXVuZGUgPSBGdXNzYmFsbCB2b3JtCkZlcm5zZWhlciA9IEJpZXIgPSBzY2hsZWNodGUgTWFuaWVyZW4uIEVzIGlzdCB3aWUgVm9sbG1vbmQgb2RlciBFYmJlIHVuZApGbHV0LiBFcyBpc3QgdW52ZXJtZWlkbGljaCEKCjguIEVpbmthdWZlbiBtYWNodCBrZWluZW4gU3Bhc3MsIHVuZCBpY2gsIGljaCB3ZXJkZSBuaWUgZ2VmYWxsZW4gZGFyYW4KZmluZGVuIQoKOS4gV2VubiB3aXIgaXJnZW5kd28gaGluZ2VoZW4sIHdlbGNoZSBLbGFtb3R0ZW4gRHUgYXVjaCB0cmFlZ3N0LCBlcyBzdGVodApEaXIgc3VwZXIuIEljaCBzY2h3b2VyJ3MuCgoxMC5EdSBoYXN0IGdlbnVnIEtsZWlkZXIgdW5kIGdlbnVnIFNjaHVoZS4gSGV1bGVuIGlzdCBFcnByZXNzdW5nLiBNaWNoCnNlbGJzdCBwbGVpdGUgenUgbWFjaGVuIGlzdCBrZWluIExpZWJlc2Jld2VpcyBhbiBEaWNoLgoKMTEuRGllIG1laXN0ZW4gTWFlbm5lciBoYWJlbiAzIFBhYXIgU2NodWhlLiBJY2ggd2llZGVyaG9sZTogV2lyIHNpbmQgU0lNUEVMLgpXaWUga29tbXN0IER1IGF1ZiBkaWUgSWRlZSBpY2gga29lbm50ZSBudXIgZWluZW4gSGF1Y2ggdm9uIEFobnVuZyBoYWJlbgp3ZWxjaGVzIHZvbiBEZWluZW4gMzAgUGFhciBTY2h1aGVuIGFtIGJlc3RlbiBkYXp1IHBhc3N0PwoKMTIuRWluZmFjaGUgQW50d29ydGVuIHdpZSBKYSBvZGVyIE5laW4gc2luZCB2b2VsbGlnIGF1c3JlaWNoZW5kLCBlZ2FsIHdpZQpkaWUgRnJhZ2UgbGF1dGV0IQoKMTMuV2VubiBEdSBlaW4gUHJvYmxlbSBoYXN0LCBiaXR0ZSBtaWNoIG51ciBkYXJ1bSBEaXIgenUgaGVsZmVuLCBkYXMKUHJvYmxlbSB6dSBsb2VzZW4uIEJpdHRlIG1pY2ggbmljaHQsIERpY2ggenUgYmVtaXRsZWlkZW4sIHdpZSBlcyBEZWluZQpGcmV1bmRpbm5lbiB0dW4uCgoxNC5Lb3Bmc2NobWVyemVuIGRpZSA4IFdvY2hlbiBkYXVlcm4gc2luZCBrZWluZSBLb3Bmc2NobWVyemVuISBHZWggenVtIEFyenQhCgoxNS5XZW5uIGljaCBldHdhcyBzYWdlLCBkYXMgYXVmIHp3ZWkgQXJ0ZW4gaW50ZXJwcmV0aWVydCB3ZXJkZW4ga2FubiB1bmQKZWlucyB2b24gYmVpZGVuIGJldW5ydWhpZ3QgRGljaCBvZGVyIG1hY2h0IERpY2ggdW5nbHVlY2tsaWNoLCBtZWluZSBpY2gKZGFzIGFuZGVyZSEKCjE2LkFMTEUgTWFlbm5lciBzZWhlbiBudXIgMTYgRmFyYmVuLiBQZmlyc2ljaCBpc3QgZWluZSBGcnVjaHQgdW5kIGtlaW5lCkZhcmJlIQoKMTcuVW5kIHdhcyBmdWVyIGVpbmUgRmFyYmUgaXN0IHVlYmVyaGF1cHQgQXByaWtvKHQpLCB1bmQgd2llIHp1ciBIb2VsbGUKc2NocmVpYnQgbWFuIGRhcz8KCjE4LkJpZXIgZ2VmYWVsbHQgdW5zIHdpZSBldWNoIEhhbmR0YXNjaGVuIGdlZmFsbGVuLiBJaHIgdmVyc3RlaHRzIG5pY2h0LAp3aXIgYXVjaCBuaWNodC4KCjE5Lldlbm4gaWNoIERpY2ggZnJhZ2Ugd2FzIGxvcyBpc3QgdW5kIER1IHNhZ3N0ICJuaWNodHMiLCB3ZXJkZSBpY2ggRGlyCmdsYXViZW4gdW5kIHNvIHR1biwgYWxzIG9iIGFsbGVzIGluIGJlc3RlciBPcmRudW5nIHNlaSEKCjIwLkZyYWcgbmljaHQ6ICJNYWdzdCBEdSBtaWNoPyIuIFNlaSBEaXIgc2ljaGVyLCBkYXNzIGljaCBuaWNodCBiZWkgRGlyCndhZXJlLCB3YWVyZSBkYXMgbmljaHQgZGVyIEZhbGwhCgoyMS5EaWUgQmFzaXNyZWdlbCwgaW0gRmFsbGUgZGVzIGdlcmluZ3N0ZW4gWndlaWZlbHMsIGVnYWwgd29ydW0gZXMgZ2VodDoKTmltbSBkYXMgZWluZmFjaHN0ZSEKCldJUiBTSU5EIFdJUktMSUNIIFNJTVBFTCEhISEKCkJJVFRFIERJRVNFUyBNQU5JRkVTVCBVTlRFUiBTTyBWSUVMIEZSQVVFTiBXSUUgTU9lR0xJQ0ggVkVSQlJFSVRFTiwKQVVGIERBU1MgU0lFIEVORExJQ0ggRElFIE1BZU5ORVIgVkVSU1RFSEVOIE1PZUdFTiwgRlVlUiBFSU4gVU5EIEFMTEVNQUwuCgpCSVRURSBBVUNIIFVOVEVSIE1PZUdMSUNIU1QgVklFTEVOIE1BZU5ORVJOIFZFUkJSRUlURU4sIERBTUlUIFNJRQpXSVNTRU4sIERBU1MgU0lFIElOIElIUkVNIEtBTVBGIE5JQ0hUIEFMTEVJTkUgU0lORAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hZW5uZXJtYW5pZmVzdCAoTW9udGFudXMsIDI4LiBBdWcgMjAwMSwgMjE6NTg6NDUpOgp+IyEgcm49SGlydWRvIHJ0PTk5OTAyMDg0NyByZz13aXR6ZQp+IyEgdGlkPTk5OTAyMDg0NwpEYXMgZ2Vob2VydCBqYSB3b2hsIGVpbmRldXRpZyBpbiBkaWUgUnVicmlrIEdlamFtbWVyLiBHcmltbWJvcm4sIHVlYmVybmVobWVuClNpZSEuIDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW4gWWFsYXMgQXVmdHJhZyA6KSAoU3RhcmZpcmUsIDI5LiBBdWcgMjAwMSwgMDc6Mzk6MDMpOgpIYWxvIE1HLCBZYWxhIGJhdCBtaWNoLCBmb2xnZW5kZXMgenUgcG9zdGVuIDopKQoKQXVmIGRlbSBXZWcgenVyIEFyYmVpdCBzcHJpbmd0IGVpbmVuIFByb2dyYW1taWVyZXIgZWluIEZyb3NjaCBlbnRnZWdlbi4KIkljaCBiaW4gZWluZSB2ZXJ6YXViZXJ0ZSBQcmluemVzc2luLCBrdWVzcyBtaWNoLiIKRGVyIEZyb3NjaCB3aXJkIGluIGRpZSBKYWNrZW50YXNjaGUgZ2VzdGVja3QuIEluIGRlciBNaXR0YWdzcGF1c2UgcXVha3QgZXMKd2llZGVyLgoiQml0dGUsIGJpdHRlIGt1ZXNzIG1pY2gsIGljaCBiaW4gZWluZSB2ZXJ6YXViZXJ0ZSBQcmluemVzc2luLiIKS2VpbmUgUmVha3Rpb24uIEFscyBlciBhYmVuZHMgaW4gZGVyIEtuZWlwZSBkZW4gRnJvc2NoIHZvcmZ1ZWhydCwgd2lyZCBkZXIKUHJvZ3JhbW1pZXJlciBnZWZyYWd0LCB3YXJ1bSBlciBkZW4gYmV0dGVsbmRlbiBGcm9zY2ggbmljaHQgZXJob2VydC4KQW50d29ydDogIkZ1ZXIgZWluZSBGcmV1bmRpbiBoYWJlIGljaCBrZWluZSBaZWl0LCBhYmVyIGVpbmVuIHNwcmVjaGVuZGVuCkZyb3NjaCBmaW5kZSBpY2ggY29vbC4uLjoKClBmaWF0cyBFaWNoLCBTdGFyKi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIHdlciB2b24gRXVjaCBvaG5lIFN1ZW5kZSBpc3QsIGRlciB3ZXJmZSBkZW4gZXJzdGVuIFN0ZWluLi4uIDpvKSAoQXBvbGxvbmlhLCAyOS4gQXVnIDIwMDEsIDEwOjA0OjA5KToKCgpEZXIgSGludGVyZ3J1bmQgenUgZm9sZ2VuZGVtIFRleHQ6CkxhdXJhIFNjaGxlc3NpbmdlciBpc3QgZWluZSBVUy1SYWRpby1Nb2RlcmF0b3JpbiwgZGllIExldXRlbiwgZGllCmluIGlocmVyIFNob3cgYW5ydWZlbiwgUmF0c2NobGFlZ2UgZXJ0ZWlsdC4gS3VlcnpsaWNoIHNhZ3RlIHNpZSwgYWxzCmFjaHRzYW1lIENocmlzdGluLCBkYXNzIEhvbW9zZXh1YWxpdGFldCB1bnRlciBrZWluZW4gVW1zdGFlbmRlbgpiZWZ1ZXJ3b3J0ZXQgd2VyZGVuIGthbm4sIGRhIGRpZXNlIG5hY2ggTGV2aXRpY3VzIDE4OjIyIGVpbiBHcmV1ZWwgd2FlcmUuCkRlciBmb2xnZW5kZSBUZXh0IGlzdCBlaW4gb2ZmZW5lciBCcmllZiBlaW5lcyBVUy1CdWVyZ2VycyBhbiBEci4gTGF1cmEsCmRlciBpbSBJbnRlcm5ldCB2ZXJicmVpdGV0IHd1cmRlLgogCiAKKioqKioqKioqKioqKioqKioqKioKCkxpZWJlIERyLiBMYXVyYQoKClZpZWxlbiBEYW5rLCBkYXNzIFNpZSBzaWNoIHNvIGF1Zm9wZmVybmQgYmVtdWVoZW4sIGRlbiBNZW5zY2hlbiBkaWUKR2VzZXR6ZSBHb3R0ZXMgbmFlaGVyIHp1IGJyaW5nZW4uIEljaCBoYWJlIGVpbmlnZXMgZHVyY2ggSWhyZSBTZW5kdW5nCmdlbGVybnQgdW5kIHZlcnN1Y2hlIGRhcyBXaXNzZW4gbWl0IHNvIHZpZWxlbiBhbmRlcmVuIHdpZSBudXIgbW9lZ2xpY2gKenUgdGVpbGVuLiBXZW5uIGV0d2EgamVtYW5kIHZlcnN1Y2h0IHNlaW5lbiBob21vc2V4dWVsbGVuIExlYmVuc3dhbmRlbAp6dSB2ZXJ0ZWlkaWdlbiwgZXJpbm5lcmUgaWNoIGlobiBlaW5mYWNoIGFuIGRhcyBCdWNoIE1vc2UgMywgTGV2aXRpY3VzCjE4OjIyLCB3byBrbGFyZ2VzdGVsbHQgd2lyZCwgZGFzcyBlcyBzaWNoIGRhYmVpIHVtIGVpbiBHcmV1ZWwgaGFuZGVsdC4KRW5kZSBkZXIgRGViYXR0ZS4gSWNoIGJlbm9ldGlnZSBhbGxlcmRpbmdzIGVpbiBwYWFyIFJhdHNjaGxhZWdlIHZvbiBJaG5lbiBpbQpIaW5ibGljayBhdWYgZWluaWdlIGRlciBzcGV6aWVsbGVuIEdlc2V0emUgdW5kIHdpZSBzaWUgenUgYmVmb2xnZW4Kc2luZDoKCmEpIFdlbm4gaWNoIGFtIEFsdGFyIGVpbmVuIFN0aWVyIGFscyBCcmFuZG9wZmVyIGRhcmJpZXRlLCB3ZWlzcyBpY2gsCmRhc3MgZGllcyBmdWVyIGRlbiBIZXJybiBlaW5lbiBsaWVibGljaGVuIEdlcnVjaCBlcnpldWd0IChMZXYuIDE6OSkuCkRhcyBQcm9ibGVtIHNpbmQgbWVpbmUgTmFjaGJhcm4uIFNpZSBiZWhhdXB0ZW4sIGRlciBHZXJ1Y2ggc2VpIG5pY2h0CmxpZWJsaWNoIGZ1ZXIgc2llLiBTb2xsIGljaCBzaWUgbmllZGVyc3RyZWNrZW4/CmIpIEljaCB3dWVyZGUgZ2VybmUgbWVpbmUgVG9jaHRlciBpbiBkaWUgU2tsYXZlcmVpIHZlcmthdWZlbiwgd2llIGVzCmluIEV4b2R1cyAyMTo3IGVybGF1YnQgd2lyZC4gV2FzIHdhZXJlIElocmVyIE1laW51bmcgbmFjaCBoZXV0enV0YWdlCmVpbiBhbmdlbWVzc2VuZXIgUHJlaXMgZnVlciBzaWU/CmMpIEljaCB3ZWlzcywgZGFzcyBpY2ggbWl0IGtlaW5lciBGcmF1IGluIEtvbnRha3QgdHJldGVuIGRhcmYsIHdlbm4Kc2llIHNpY2ggaW0gWnVzdGFuZCBpaHJlciBtZW5zdHJ1YWxlbiBVbnJlaW5oZWl0IGJlZmluZGV0IChMZXYuCjE1OjE5LTI0KS4gRGFzIFByb2JsZW0gaXN0LCB3aWUga2FubiBpY2ggZGFzIHdpc3Nlbj8gSWNoIGhhYiB2ZXJzdWNodAp6dSBmcmFnZW4sIGFiZXIgZGllIG1laXN0ZW4gRnJhdWVuIHJlYWdpZXJlbiBkYXJhdWYgcGlraWVydC4KZCkgTGV2LiAyNTo0NCBzdGVsbHQgZmVzdCwgZGFzcyBpY2ggU2tsYXZlbiBiZXNpdHplbiBkYXJmLCBzb3dvaGwKbWFlbm5saWNoZSBhbHMgYXVjaCB3ZWlibGljaGUsIHdlbm4gaWNoIHNpZSB2b24gYmVuYWNoYmFydGVuIE5hdGlvbmVuCmVyd2VyYmUuIEVpbmVyIG1laW5lciBGcmV1bmRlIG1laW50LCBkYXNzIHd1ZXJkZSBhdWYgTWV4aWthbmVyIHp1dHJlZmZlbiwKYWJlciBuaWNodCBhdWYgS2FuYWRpZXIuIEtvZW5uZW4gU2llIGRhcyBrbGFlcmVuPyBXYXJ1bSBkYXJmIGljaCBrZWluZQpLYW5hZGllciBiZXNpdHplbj8KZSkgSWNoIGhhYmUgZWluZW4gTmFjaGJhcm4sIGRlciBzdGV0cyBhbSBTYW1zdGFnIGFyYmVpdGV0LiBFeG9kdXMKMzU6MiBzdGVsbHQgZGV1dGxpY2ggZmVzdCwgZGFzcyBlciBnZXRvZXRldCB3ZXJkZW4gbXVzcy4gQWxsZXJkaW5nczoKYmluIGljaCBtb3JhbGlzY2ggdmVycGZsaWNodGV0IGlobiBlaWdlbmhhZW5kaWcgenUgdG9ldGVuPwpmKSBFaW4gRnJldW5kIHZvbiBtaXIgbWVpbnQsIG9id29obCBkYXMgRXNzZW4gdm9uIFNjaGFsZW50aWVyZW4sIHdpZQpNdXNjaGVsbiBvZGVyIEh1bW1lciwgZWluIEdyZXVlbCBkYXJzdGVsbHQgKExldi4gMTE6MTApLCBzZWkgZXMgZWluCmdlcmluZ2VyZXMgR3JldWVsIGFscyBIb21vc2V4dWFsaXRhZXQuIEljaCBzdGltbWUgZGVtIG5pY2h0IHp1LgpLb2VubnRlbiBTaWUgZGFzIGtsYXJzdGVsbGVuPwpnKSBJbiBMZXYuIDIxOjIwIHdpcmQgZGFyZ2VsZWd0LCBkYXNzIGljaCBtaWNoIGRlbSBBbHRhciBHb3R0ZXMKbmljaHQgbmFlaGVybiBkYXJmLCB3ZW5uIG1laW5lIEF1Z2VuIHZvbiBlaW5lciBLcmFua2hlaXQgYmVmYWxsZW4gc2luZC4KSWNoIG11c3MgenVnZWJlbiwgZGFzcyBpY2ggTGVzZWJyaWxsZW4gdHJhZ2UuIE11c3MgbWVpbmUgU2Voa3JhZnQgcGVyZmVrdApzZWluIG9kZXIgZ2lidHMgaGllciBlaW4gd2VuaWcgU3BpZWxyYXVtPwpoKSBEaWUgbWVpc3RlbiBtZWluZXIgbWFlbm5saWNoZW4gRnJldW5kZSBsYXNzZW4gc2ljaCBpaHJlIEhhdXB0LQp1bmQgQmFydGhhYXJlIHNjaG5laWRlbiwgaW5rbHVzaXZlIGRlciBIYWFyZSBpaHJlciBTY2hsYWVmZW4sIG9id29obCBkYXMKZWluZGV1dGlnIGR1cmNoIExldi4gMTk6MjcgdmVyYm90ZW4gd2lyZC4gV2llIHNvbGxlbiBzaWUgc3RlcmJlbj8KSWNoIHdlaXNzIGF1cyBMZXYuIDExOjE2LTgsIGRhc3MgZGFzIEJlcnVlaHJlbiBkZXIgSGF1dCBlaW5lcyB0b3RlbgpTY2h3ZWluZXMgbWljaCB1bnJlaW4gbWFjaHQuIERhcmYgaWNoIGFiZXIgZGVubm9jaCBGdXNzYmFsbCBzcGllbGVuLCB3ZW5uIGljaApkYWJlaSBIYW5kc2NodWhlIGFuemllaGU/CmopIE1laW4gT25rZWwgaGF0IGVpbmVuIEJhdWVybmhvZi4gRXIgdmVyc3RvZXNzdCBnZWdlbiBMZXYuIDE5OjE5LAp3ZWlsIGVyIHp3ZWkgdmVyc2NoaWVkZW5lIFNhYXRlbiBhdWYgZWluIHVuZCBkZW1zZWxiZW4gRmVsZCBhbnBmbGFuenQuCkRhcnVlYmVyaGluYXVzIHRyYWVndCBzZWluZSBGcmF1IEtsZWlkZXIsIGRpZSBhdXMgendlaSB2ZXJzY2hpZWRlbmVuIFN0b2ZmZW4KZ2VtYWNodCBzaW5kIChCYXVtd29sbGUvUG9seWVzdGVyKS4gRXIgZmx1Y2h0IHVuZCBsYWVzdGVydCBhdXNzZXJkZW0gcmVjaHQKb2Z0LgpJc3QgZXMgd2lya2xpY2ggbm90d2VuZGlnLCBkYXNzIHdpciBkZW4gZ2FuemVuIEF1ZndhbmQgYmV0cmVpYmVuLCBkYXMKa29tcGxldHRlIERvcmYgenVzYW1tZW56dWhvbGVuLCB1bSBzaWUgenUgc3RlaW5pZ2VuIChMZXYuIDI0OjEwLTE2KT8KR2VudWVndCBlcyBuaWNodCwgd2VubiB3aXIgc2llIGluIGVpbmVyIGtsZWluZW4sIGZhbWlsaWFlcmVuIFplcmVtb25pZQp2ZXJicmVubmVuLCB3aWUgbWFuIGVzIGphIGF1Y2ggbWl0IExldXRlbiBtYWNodCwgZGllIG1pdCBpaHJlbgpTY2h3aWVnZXJtdWV0dGVybiBzY2hsYWZlbiAoTGV2LiAyMDoxNCk/CkljaCB3ZWlzcywgZGFzcyBTaWUgc2ljaCBtaXQgZGllc2VuIERpbmdlbiBhdXNmdWVocmxpY2gKYmVzY2hhZWZ0aWd0IGhhYmVuLCBkYWhlciBiaW4gaWNoIGF1Y2ggenV2ZXJzaWNodGxpY2gsIGRhc3MgU2llIHVucwpiZWhpbGZsaWNoIHNlaW4ga29lbm5lbi4gVW5kIHZpZWxlbiBEYW5rIG5vY2htYWxzIGRhZnVlciwgZGFzcyBTaWUgdW5zCmRhcmFuIGVyaW5uZXJuLCBkYXNzIEdvdHRlcyBXb3J0IGV3aWcgdW5kIHVuYWJhZW5kZXJsaWNoIGlzdC4KSWhyIGVyZ2ViZW5lciBKdWVuZ2VyIHVuZCBiZXd1bmRlcm5kZXIgRmFuCkpha2UKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW5kIHdlciB2b24gRXVjaCBvaG5lIFN1ZW5kZSBpc3QsIGRlciB3ZXJmZSBkZW4gZXJzdGVuIFN0ZWluLi4uIDpvKSAoQWxib2luLCAyOS4gQXVnIDIwMDEsIDE2OjEyOjIyKToKfiMhIHJuPUFwb2xsb25pYSBydD05OTkwNzIyNDkgcmc9d2l0emUKfiMhIHRpZD05OTkwNzIyNDkKYWVobSBEci5MYXVyYSBpc3Qga2VpbmUgQ2hyaXN0aW4gc29uZGVybiB6dW0gb3J0aG9kb3hlbiBKdWRlbnR1bSBrb252ZXJ0aWVydC4KYWJlIGljaCBncmFkZSBhdWYgZWluZXIgYW5kZXJlbiBTZWl0ZSBnZWxlc2VuLgoKQWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW5kIHdlciB2b24gRXVjaCBvaG5lIFN1ZW5kZSBpc3QsIGRlciB3ZXJmZSBkZW4gZXJzdGVuIFN0ZWluLi4uIDpvKSAoVmFybGFyaW9uLCAyOS4gQXVnIDIwMDEsIDE4OjQ3OjU3KToKfiMhIHJuPUFsYm9pbiBydD05OTkwOTQzNDIgcmc9d2l0emUKfiMhIHRpZD05OTkwNzIyNDkKd2VyIGlzdCBkZW5uIGRpZXNlciBsZXZpdGlrdXM/IGVpbiByYWRpb21vZGVyYXRvcj8gbXVzcyBuZSBsYW5nZSBzZW5kdW5nIHNlaW4sCndlbm4gZGVyIHp3aXNjaGVuIDExOjEwIHVuZCAyMToyMCBzZW5kZXQsIGtlaW4gd3VuZGVyLCBkYXNzIGRlciBzb3ZpZWwgc2NoZWlzcwplcnphZWhsdC4uLgoKVmFybCosIHZlcnN0ZWh0IG5pY2h0IGdhbnosIHdpZXNvIGRhcyB3b3J0IGVpbmVzIGVpbnplbG5lbiBzcGlubmVycyBzb3ZpZWwKZ2V3aWNodCBoYXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWVubmVybWFuaWZlc3QgKExpYXJhLCAzMS4gQXVnIDIwMDEsIDAwOjQ1OjMyKToKfiMhIHJuPUhpcnVkbyBydD05OTkwMjA4NDcgcmc9d2l0emUKfiMhIHRpZD05OTkwMjA4NDcKRGllc2UgYm9lc2VuIFdpdHplIGRlciBNYWVubmVyIGlzdCBlaW5lIFp1c2FtbWVuc3RlbGx1bmcgZGVyIFVudGVyZ3J1bmQKRnJhdWVubWFmaWEuIAoKV2FzIGlzdCBkYXMsIHdlbm4gbGlua3MgdW5kIHJlY2h0cyBlbnRsYW5nIGRlciBTdHJhc3NlIG5hY2t0ZSBNYWVubmVyIHN0ZWhlbiA/CkVpbmUgU2Fja2dhc3NlLgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gU2NobGlwcyB1bmQgZWluZW0gT2Noc2Vuc2Nod2FueiA/CkRlciBPY2hzZW5zY2h3YW56IHZlcmRlY2t0IGRhcyBnYW56ZSBBcnNjaGxvY2ggLi4uLi4KCldhcnVtIGhhYmVuIE1hZW5uZXIgdWViZXJoYXVwdCBCZWluZSA/CkRhbWl0IHNpZSBuaWNodCBkZW4gZ2FuemVuIFRhZyBTYWNraHVlcGZlbiBtdWVzc2VuLgoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQKendpc2NoZW4gZWluZW0gaW50ZWxsaWdlbnRlbiBNYW5uIHVuZCBkZW0gWWV0aSA/CkRlciBZZXRpIHd1cmRlIHNjaG9uIG1hbCBnZXNlaGVuICEhCgpUcmVmZmVuIHNpY2ggZHJlaSBTdGFtbXRpc2NoYnJ1ZWRlciwgc2FndCBkZXIgRXJzdGU6Ck1laW5lIEZyYXUgaXN0IHZpZWxsZWljaHQgZHVtbSAtCmthdWZ0IHNpY2ggZWluZW4gSGVyZCB1bmQga2FubiB1ZWJlcmhhdXB0IG5pY2h0IGtvY2hlbiEKU2FndCBkZXIgWndlaXRlOgogTWVpbmUgaXN0IG5vY2ggYmxvZWRlciAtIGthdWZ0IHNpY2ggZWluIEF1dG8gLi4KdW5kIGhhdCB1ZWJlcmhhdXB0IGtlaW5lbiBGdWVocmVyc2NoZWluIQpNZWxkZXQgc2ljaCBkZXIgRHJpdHRlOgpNZWluZSBpc3QgZGllIGR1ZW1tc3RlIC0KZmxpZWd0IG5hY2ggUGFyaXMgdWViZXJzIFdvY2hlbmVuZGUsCmthdWZ0IHNpY2ggdm9yaGVyIDUwIEtvbmRvbWUgLi4uCnVuZCBoYXQgdWViZXJoYXVwdCBrZWluZW4gU2NobmllZGVsd3V0eiEhIQoKV2VsY2hlcyBpc3QgZGVyIGRlcHJpbWllcmVuZHN0ZSBBdWdlbmJsaWNrIGltIExlYmVuIGVpbmVzIE1hbm5lcyA/Cldlbm4gZXIgZWluZSBFcmVrdGlvbiBoYXQsIGdlZ2VuIGVpbmUgV2FuZCBsYWV1ZnQKdW5kIHNpY2ggZGFiZWkgZGFzIE5hc2VuYmVpbiBicmljaHQgLi4uCgpXYXJ1bSBoYWJlbiBNYWVubmVyIG1pdCBHbGF0emUgTG9lY2hlciBpbiBkZW4gSG9zZW50YXNjaGVuID8KRGFtaXQgc2llIHNpY2ggYXVjaCBtYWwgZHVyY2ggZGllIEhhYXJlIGZhaHJlbiBrb2VubmVuLgoKV2FydW0gaGVpcmF0ZW4gTWFlbm5lciBhbSBsaWVic3RlbiAnbmUgSnVuZ2ZyYXUgPwpXZWlsIE1hZW5uZXIga2VpbmUgS3JpdGlrIHZlcnRyYWdlbiBrb2VubmVuICEhIQoKV2FzIG1hY2h0IGRpZSBrbHVnZSBIYXVzZnJhdSwgd2VubiBpaHIgTWFubiBiZWltIEthcnRvZmZlbCBob2xlbiBkaWUKS2VsbGVydHJlcHBlIGhpbnVudGVyZmFlbGx0CnVuZCBzaWNoIGRhcyBHZW5pY2sgYnJpY2h0ID8KTlVERUxOICEKCkVpbiBkZXV0c2NoZXIgTWFubiBtaXNzdHJhdXQgYWxsZW0gRnJlbWRlbiwKZXMgc2VpIGRlbm4sIGVzIGxhZXNzdCBzaWNoIHRyaW5rZW4uCgpXYXJ1bSBlc3NlbiBNYWVubmVyIHNvIGdlcm5lIENoYXBwaSA/CkNoYXBwaSBoYWVsdCBpaHJlbiBiZXN0ZW4gRnJldW5kIDUtZmFjaCBmaXQhCgpXYXJ1bSBpc3QgZWluZSBQc3ljaG90aGVyYXBpZSBiZWkgTWFlbm5lcm4gdmllbCBrdWVyemVyIGFscyBiZWkgRnJhdWVuID8KV2VubiBlcyBaZWl0IGlzdCwgbWVudGFsIGluIGRpZSBLaW5kaGVpdCB6dXJ1ZWNrenVrZWhyZW4sIHNpbmQgTWFlbm5lciBzY2hvbgpkYS4KCldpZXZpZWwgTWFlbm5lciBicmF1Y2h0IG1hbiwgdW0gZWluZSBsZWVyZSBSb2xsZSBLbG9wYXBpZXIgYXVzenV3ZWNoc2VsbiA/CkRhcyB3ZWlzcyBuaWVtYW5kLiBFcyBpc3Qgbm9jaCBuaWUgdm9yZ2Vrb21tZW4uCgpFaW4gTWFubiBzdGVodCBiaXMgenVtIEJhdWNobmFiZWwgaW0gV2Fzc2VyIHVuZCBzYWd0OiAKIERhcyBnZWh0IG1pciB1ZWJlciBtZWluZW4gVmVyc3RhbmQuCgpXaWUgc29ydGllcmVuIE1hZW5uZXIgaWhyZSBXYWVzY2hlPwpad2VpIFN0YXBlbDogRHJlY2tpZyB1bmQgRHJlY2tpZywgYWJlciB0cmFnYmFyLgoKRXI6IEljaCBoYWJlIGtlaW5lIEx1c3QgYXVmYG4gUHJhZXNlciAtIGljaCBmdWVobCBkYW5uIHVlYmVyaGF1cHQgbmljaHRzLgpTaWU6IFByaW1hLCBlbmRsaWNoIEdsZWljaHN0YW5kLgoKV2llc28gc2luZCBNYWVubmVyIHdpZSBNaXhnZXJhZXRlID8KRHUgd2Vpc3N0LCBpcmdlbmR3aWUgYnJhdWNoc3QgZHUgc2llLCBhYmVyIER1IHdlaXNzdCBuaWNodCBzbyByZWNodCB3b3p1LgoKS2VubnN0IER1IGRlbiBVbnRlcnNjaGllZCB6d2lzY2hlbiBNYWVubmVybiB1bmQgZWluZXIgVGV0cmFwYWstVHVldGUgPz8/ClRldHJhcGFrIGlzdCBpcmdlbmR3aWUgY2xldmVyICEhIQoKV2FydW0gc2luZCBNYWVubmVyd2l0emUgc28ga3VyeiA/IApEYW1pdCBhdWNoIE1hZW5uZXIgc2llIHZlcnN0ZWhlbiBrb2VubmVuICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWVubmVybWFuaWZlc3QgKExpYXJhLCAzMS4gQXVnIDIwMDEsIDAwOjQ4OjI5KToKfiMhIHJuPUhpcnVkbyBydD05OTkwMjA4NDcgcmc9d2l0emUKfiMhIHRpZD05OTkwMjA4NDcKKiogVG9wIFNlY3JldCAqKgoqKiBIaWdoIFByaW9yaXR5ICoqCgoKV2FydW0gRnJhdWVuIHd1bmRlcnZvbGwgc2luZDoKCjEuIFdpciBrb25udGVuIGRpZSBUaXRhbmljIHp1ZXJzdCB2ZXJsYXNzZW4uCgoyLiBXaXIga29lbm5lbiBtYWVubmxpY2hlIFZvcmdlc2V0enRlIHZlcmFlbmdzdGlnZW4sIGluZGVtIHdpciB1bnNlcgpGZWhsdmVyaGFsdGVuIG1pdCBteXN0ZXJpb2VzZW4gZ3luYWVrb2xvZ2lzY2hlbiBCZXNjaHdlcmRlbiBlbnRzY2h1bGRpZ2VuLgoKMy4gV2VubiB3aXIgdGFuemVuLCBzZWhlbiB3aXIgbmljaHQgd2llIGVpbiBGcm9zY2ggaW0gTWl4ZXIgYXVzLi4uCgo0LiBXaXIgbXVlc3NlbiBuaWNodCBmdXJ6ZW4gdW0gaGludGVyaGVyIGRhcnVlYmVyIHp1IGxhY2hlbgoKNS4gV2VubiB3aXIgdW5zIGVpbm1hbCBuaWNodCByYXNpZXJlbiwgYmVtZXJrdCBlcyBuaWVtYW5kLgoKNi4gV2lyIGtvZW5uZW4gdW5zZXJlciBLb2xsZWdpbiBncmF0dWxpZXJlbiwgb2huZSBpaHJlbiBIaW50ZXJuCmFuenV0YXRzY2hlbi4KCjcuIFdpciBtdWVzc2VuIG5pY2h0IGltbWVyIG5hY2ggdW50ZW4gZmFzc2VuLCB1bSBzaWNoZXIgenUgZ2VoZW4sCmRhc3MgdW5zZXIgYmVzdGVzIFN0dWVjayBub2NoIGRhIGlzdC4KCjguIFdpciBoYWJlbiBkaWUgR2FiZSwgdW5zIGFuemllaGVuIHp1IGtvZW5uZW4uCgo5LiBXaXIga29lbm5lbiBtaXQgamVtYW5kZW0gdm9tIGFuZGVyZW4gR2VzY2hsZWNodCByZWRlbiwgb2huZSBpaG4gc2ljaApuYWNrdCB2b3J6dXN0ZWxsZW4uCgoxMC4gV2VubiB3aXIgamVtYW5kZW4gaGVpcmF0ZW4sIGRlciAyMCBKYWhyZSBqdW5nZXIgaXN0LCBzaW5kIHdpcgp1bnMgZGFydWViZXIgYmV3dXNzdCwgbGFlY2hlcmxpY2ggYXVzenVzZWhlbi4KCjExLiBFcyBnaWJ0IFplaXRlbiwgaW4gZGVuZW4gU2Nob2tvbGFkZSB3aXJrbGljaCBhbGwgdW5zZXJlIFByb2JsZW1lCmxvZXNlbiBrYW5uLgoKMTIuIFdpciB3ZXJkZW4gZXMgbmllIGJlcmV1ZW4sIHVucyBPaHJsb2VjaGVyIHN0ZWNoZW4genUgbGFzc2VuLgoKMTMuIFdpciBrb2VubmVuIGVpbmUgUGVyc29uIG51ciBkdXJjaCBlaW5lbiBCbGljayBhdWYgZGllIFNjaHVoZQplaW5zY2hhZXR6ZW4uCgogMTQuIFdpciBrb2VubmVuIEtvbW1lbnRhcmUgaW4gZGVyIEdlZ2Vud2FydCB2b24gTWFlbm5lcm4gdWViZXIgZGVyZW4KQmxvZWRoZWl0IGFibGFzc2VuLCBkYSBzaWUgdW5zIHNvd2llc28gbmljaHQgenVob2VyZW4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hZW5uZXJtYW5pZmVzdCAoR25vbWUsIDMxLiBBdWcgMjAwMSwgMDA6NTI6MDQpOgp+IyEgcm49TGlhcmEgcnQ9OTk5MjExNTMyIHJnPXdpdHplCn4jISB0aWQ9OTk5MDIwODQ3CmRpZSBrYW5uIGljaCB0b3BwZW46CgpzYWd0IGVpbiBtYW5uIHp1bSBhbmRlcm46ICJkdSwgaWNoIGdsYXViIG1laW5lIGZyYXUgaXMgdG90Li4uIgpkZXIgYW5kZXJlOiAid2llc28/IgpkZXIgZXJzdGU6ICJmaWNrZW4gaXMgd2llIGltbWVyLCBhYmEgZGllIGt1ZWNoZSBzaWVodCBhdXMuLi4iCgpnbk9tZSwga2FubiBhdWNoIG5pdmVhdWxvcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFVuZCB3ZXIgdm9uIEV1Y2ggb2huZSBTdWVuZGUgaXN0LCBkZXIgd2VyZmUgZGVuIGVyc3RlbiBTdGVpbi4uLiA6bykgKFRydWcsIDMxLiBBdWcgMjAwMSwgMjE6MzA6NDkpOgp+IyEgcm49VmFybGFyaW9uIHJ0PTk5OTEwMzY3NyByZz13aXR6ZQp+IyEgdGlkPTk5OTA3MjI0OQpTY2hvbiBlaW4gUHJvYmxlbSB3ZW5uIG1hbiBuaWNodCBkaWUgQmliZWwgZ2VsZXNlbiBoYXQgb2RlciBrZWluZW4KUmVsaWdpb25zdW50ZXJyZWljaHQgZ2VoYWJ0IGhhdHRlLi4uCgpUcnVnLCBtYWwgYmlzc2lnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBVbmQgd2VyIHZvbiBFdWNoIG9obmUgU3VlbmRlIGlzdCwgZGVyIHdlcmZlIGRlbiBlcnN0ZW4gU3RlaW4uLi4gOm8pIChWYXJsYXJpb24sIDMxLiBBdWcgMjAwMSwgMjE6MzU6MTApOgp+IyEgcm49VHJ1ZyBydD05OTkyODYyNDkgcmc9d2l0emUKfiMhIHRpZD05OTkwNzIyNDkKaGFzdCBkdSBkYSBlaW4gcHJvYmxlbSBtaXQ/IGljaCBuaWNodC4gYXVzc2VyZGVtOiBiZWRlbmtlIGRpZSBydWJyaWsuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBrbGVpbmUgSnVuZ2UgKEZvb2JhciwgMzEuIEF1ZyAyMDAxLCAyMjoyMzoxOSk6CkVpbiBrbGVpbmVyIEp1bmdlIHNpdHp0IGltIFNhbmRrYXN0ZW4gdW5kIGtuZXRldCBlaW4gU3R1ZWNrIEh1bmRlc2NoZWlzc2UuIERhCmtvbW10IGVpbiBIb2JiaXQgdm9yYmVpIHVuZCBmcmFndCBkZW4gSnVuZ2VuLCB3YXMgZXIgZGVubiBkYSBtYWNoZS4KCiJJY2gga25ldGUgSG9iYml0cy4iIHNhZ3QgZGVyIEp1bmdlLgoKRGVyIEhvYmJpdCBpc3Qgdm9lbGxpZyBhdXNzZXIgc2ljaCB1bmQgd2Vpc3Mgc2ljaCBuaWNodCBhbmRlcnMgenUgaGVsZmVuIGFscwpzaWNoIGJlaSBlaW5lbSBFbGZlbiB6dSBiZXNjaHdlcmVuIGRlciBnZXJhZGUgZGVuIFdlZyBlbnRsYW5nd2FuZGVsdC4KCkRhcmF1ZmhpbiBmcmFndCBkZXIgRWxmIGRlbiBKdW5nZW4sIHdhcyBlciBkZW5uIGRhIG1hY2hlLgoKIkljaCBrbmV0ZSBIb2JiaXRzLiIgZXJ3aWRlcnQgZGVyIEp1bmdlIHdpZWRlci4KCiJOYSBlaW4gR2x1ZWNrLCBoYWV0dGVzdCBEdSBqZXR6dCAiRWxmZW4iIGdlc2FndCBoYWV0dGUgaWNoIERpY2ggdmVycHJ1ZWdlbHQuIgpzYWd0IGRhcmF1ZiBkZXIgRWxmLgoKIlNvIHZpZWwgU2NoZWlzc2UgaGFiZSBpY2ggbmljaHQuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBrbGVpbmUgSnVuZ2UgKEFuYXRvbCwgMzEuIEF1ZyAyMDAxLCAyMjo0NToyMik6Cn4jISBybj1Gb29iYXIgcnQ9OTk5Mjg5Mzk5IHJnPXdpdHplCn4jISB0aWQ9OTk5Mjg5Mzk5CkVpbiBrbGVpbmVyIEp1bmdlIHNpdHp0IGltIFNhbmRrYXN0ZW4gdW5kIGZvcm10IGtsZWluZSBNYWVubmNoZW4uCktvbW10IGVpbiBad2VyZyB2b3JiZWkuClp3ZXJnOiAiTmEsIHdhcyBtYWNoc3QgRHUgZGE/IgpKdW5nZTogIktsZWluZSBad2VyZ2UhIgpad2VyZzogIlVuZCB3aWUgbWFjaHN0IER1IGRpZT8iCkp1bmdlOiAiTWl0IFNhbmQgdW5kIFBpcGkhIgoKRGVyIEp1bmdlIGJla29tbXQgZWluZXMgaGludGVyIGRpZSBMb2VmZmVsLgoKVGFncyBkcmF1ZiBrb21tdCBkZXIgWndlcmcgd2llZGVyIHZvcmJlaS4KClp3ZXJnOiAiTmEsIHdhcyBtYWNoc3QgRHUgZGE/IgpKdW5nZTogIktsZWluZSBIb2JiaXRzISIKWndlcmc6ICJVbmQgd2llIG1hY2hzdCBEdSBkaWU/IgpKdW5nZTogIk1pdCBTYW5kIHVuZCBXYXNzZXIhIgpad2VyZzogIlVuZCB3YXJ1bSBuaWNodCBtaXQgU2FuZCB1bmQgUGlwaT8iCkp1bmdlOiAiV2VpbCBpY2gga2VpbmUgWndlcmdlIG1hY2hlbiBtb2VjaHRlISIKCi4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVyIGtsZWluZSBKdW5nZSAoQW5hdG9sLCAzMS4gQXVnIDIwMDEsIDIyOjUzOjUyKToKfiMhIHJuPUFuYXRvbCBydD05OTkyOTA3MjIgcmc9d2l0emUKfiMhIHRpZD05OTkyODkzOTkKPiBzY2hhdQpEdSBiaXN0IGluIGRlciBEZWxpa2F0ZXNzLUFidGVpbHVuZyBkZXIgb2VydGxpY2hlbiBJbnRlcmVzc2VuZ2VtZWluc2NoYWZ0CmRlciBLYW5uaWJhbGVuLiBIaWVyIGdpYnQgZXMgZGllIHNjaG1hY2toYWZ0ZW4gRGluZ2UsIGRpZSBEdSBuaWUgZXNzZW4Kd3VlcmRlc3QuCkVzIGdpYnQgZWluZW4gc2ljaHRiYXJlbiBBdXNnYW5nOiBzdWVkZW4uCkVpbiBrYW5uaWJhbGlzY2hlciBWZXJrYWV1ZmVyLgo+IHplaWdlCiAgMS4gMSBrZyBFbGZlbmhpcm4gICAgICAgICAgICAgICAgMTAgfCAyLiAxIGtnIEhvYmJpdGhpcm4gICAgICAgICAgICAgICAzMAogIDMuIDEga2cgTWVuc2NoZW5oaXJuICAgICAgICAgICAgMTAwIHwgNC4gMSBrZyBGZWxpbmVuaGlybiAgICAgICAgICAgICAxMjAKICA1LiAxIGtnIFp3ZXJnZW5oaXJuICAgICAgICAgICAxMjAzMyB8Cj4gc3RhdW4KRHUgYmlzdCBlcnN0YXVudC4KPiBmcmFnZSB2ZXJrYWV1ZmVyIG5hY2ggendlcmdlbmhpcm5wcmVpcwpEdSBmcmFnc3QgZGVuIFZlcmthZXVmZXI6IEVoci4uLiB3aWVzbyBpc3QgWndlcmdlbmhpcm4gZWlnZW50bGljaCBzbwpEdSBmcmFnc3QgZGVuIFZlcmthZXVmZXI6IHZlcmRhbW10IHRldWVyPwpEZXIgVmVya2FldWZlciBzYWd0OiBIYWJlbiBzaWUgZWluZSBWb3JzdGVsbHVuZyBkYXZvbiwgd2lldmllbGUgWndlcmdlCkRlciBWZXJrYWV1ZmVyIHNhZ3Q6IG1hbiBmdWVyIGVpbiBLaWxvIEhpcm4gZmFuZ2VuIG11c3M/IQo+IGFyZ2wKRHUgYXJnbHN0IGVpbiB3ZW5pZyB2b3IgRGljaCBoaW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIGtsZWluZSBKdW5nZSAoR3JpbW1ib3JuLCAzMS4gQXVnIDIwMDEsIDIyOjU1OjIyKToKfiMhIHJuPUFuYXRvbCBydD05OTkyOTEyMzIgcmc9d2l0emUKfiMhIHRpZD05OTkyODkzOTkKSW4gd2lya2xpY2hrZWl0IGlzdCBlcyBuYXR1ZXJsaWNoIHNvIGRhc3MgZXMgd2VzZW50bGljaCBzY2h3aWVyaWdlciBpc3QgZWluZW0KWndlcmcgc2VpbiBIaXJuIHp1IGVudHJlaXNzZW4uIERpZSB3ZWhyZW4gc2ljaCBuYWVtbGljaC4gRWxmZW4/IEVpbm1hbCBrdXJ6CmdlZ2Vua2xvcGZlbiB1bmQgZXMgZmFlbGx0IHZvbiBhbGxlaW5lIHJhdXMuLi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGVyIGtsZWluZSBKdW5nZSAoTGlhcmEsIDMxLiBBdWcgMjAwMSwgMjI6NTc6MTApOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTk5OTI5MTMyMiByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpNYW4ga2FubiBlcyBhdWNoIGJlcXVlbSBhbiBkZW4gR3JpZmZlbiBhdXNzZW4gYW0gS29wZiByYXVzemllaGVuLgoKWlpMQiwgd2Vpc3MgbnUgYXVjaCwgd296dSBkaWUgT2hyZW4gYmVpIEVsZmVuIGRhIHNpbmQgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEZXIga2xlaW5lIEp1bmdlIChBbmF0b2wsIDMxLiBBdWcgMjAwMSwgMjI6NTg6MzApOgp+IyEgcm49TGlhcmEgcnQ9OTk5MjkxNDMwIHJnPXdpdHplCn4jISB0aWQ9OTk5Mjg5Mzk5CkltbWVyaGluLiBXZW5uIGVzIHVtIFp3ZXJnZSBnZWh0LCBtdXNzIG1hbiBpbW1lciBQaW56ZXR0ZW4gbWl0IHNpY2ggZnVlaHJlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBEZXIga2xlaW5lIEp1bmdlIChMaWFyYSwgMzEuIEF1ZyAyMDAxLCAyMzowMDoxMik6Cn4jISBybj1BbmF0b2wgcnQ9OTk5MjkxNTEwIHJnPXdpdHplCn4jISB0aWQ9OTk5Mjg5Mzk5Ckhhc3QgRHUgQXJ0aWtlbCAxNiBuaWNodCBnZWxlc2VuPwoKWlpMQgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRGVyIGtsZWluZSBKdW5nZSAoQW5hdG9sLCAzMS4gQXVnIDIwMDEsIDIzOjAzOjU2KToKfiMhIHJuPUxpYXJhIHJ0PTk5OTI5MTYxMiByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpBdXNzZXJoYWxiIGRlciBSdWJyaWsgIm1lZ2FzY2htYXJybiIgaXN0IEdyaW1tYm9ybnMgSGFsdHVuZyBnZ3VlLiBkZW4KUmFzc2VucHJvYmxlbWVuIGRpZXNlciBXZWx0IG5pY2h0IHZvbiBSZWxldmFuei4gOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBEZXIga2xlaW5lIEp1bmdlIChHcmltbWJvcm4sIDMxLiBBdWcgMjAwMSwgMjM6MDU6MDIpOgp+IyEgcm49QW5hdG9sIHJ0PTk5OTI5MTgzNiByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpOYWphIGRhc3MgZWluIEVsZiBkaWVzZXIgTWVpbnVuZyBpc3QsIGRhbWl0IGthbm4gaWNoIHNlaHIgZ3V0IGxlYmVuLgoKR2RBIGZpbmRldCBzaWNoIHRvdGFsIG9rLiBFbGZlbj8gV2VyIHNpbmQgZWlnZW50bGljaCBFbGZlbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IERlciBrbGVpbmUgSnVuZ2UgKEFuYXRvbCwgMzEuIEF1ZyAyMDAxLCAyMzowNjoyMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9OTk5MjkxOTAyIHJnPXdpdHplCn4jISB0aWQ9OTk5Mjg5Mzk5ClR5cGlzY2ggQXRoZWlzdGVuOiBXYXMgaWhyIFZlcnN0YW5kIG5pY2h0IHBhY2t0LCBpc3QgZnVlciBzaWUgbmljaHQKZXhpc3RlbnQuLi4gOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBEZXIga2xlaW5lIEp1bmdlIChMaWFyYSwgMzEuIEF1ZyAyMDAxLCAyMzowNzoyMCk6Cn4jISBybj1BbmF0b2wgcnQ9OTk5MjkxODM2IHJnPXdpdHplCn4jISB0aWQ9OTk5Mjg5Mzk5CkhtamEuCgonR2d1ZS4nIGthbm4gZWNodCBudXIgZWluIEVsZiBhYmt1ZXJ6ZW4uIDstKSBMYW5nZSBrZWluZW4gQmF1bSBtZWhyIGdlaGFidCwKd2FzIEFuYXRvbD8gU2Nob24genUga3JhZnRsb3MgenVtIFNjaHJlaWJlbj8KClpaTEIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IERlciBrbGVpbmUgSnVuZ2UgKEFuYXRvbCwgMzEuIEF1ZyAyMDAxLCAyMzowOTo0NCk6Cn4jISBybj1MaWFyYSBydD05OTkyOTIwNDAgcmc9d2l0emUKfiMhIHRpZD05OTkyODkzOTkKKnNldWZ6KiBBbiBNZW5zY2hlbiBoYWJlIGljaCBtaWNoIGphIHNjaG9uIGdld29laG50LiBEaWUga29lbm5lbiBFbGYKdW5kIEVsZmluIG5pY2h0IGF1c2VpbmFuZGVyaGFsdGVuIHVuZCBob3BwISBzY2hvbiBpc3QgbWFuIHNjaHd1bC4gQWJlcgplcyBicmF1Y2h0IHdpcmtsaWNoIGVpbmVuIFp3ZXJnIChvZGVyIGVpbmUgWndlcmdpbiwgc2ljaGVyIHNlaW4ga2FubgptYW4gc2ljaCBkYSBqYSBuaWNodG1hbCBhbHMgWndlcmcsIGdlbGw/KSwgdW0gZWluZSBFbGZpbiBmdWVyIGVpbmVuIApCYXVtIHp1IGhhbHRlbi4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW5kIHdlciB2b24gRXVjaCBvaG5lIFN1ZW5kZSBpc3QsIGRlciB3ZXJmZSBkZW4gZXJzdGVuIFN0ZWluLi4uIDpvKSAoSm9obm55Ym9zcywgMzEuIEF1ZyAyMDAxLCAyMzoxNjoxMSk6Cn4jISBybj1BcG9sbG9uaWEgcnQ9OTk5MDcyMjQ5IHJnPXdpdHplCn4jISB0aWQ9OTk5MDcyMjQ5CmVzIGdpYnQgYXVjaCBub2NoIGFuZGVyZSBiaWJlbHN0ZWxsZW4gaW4gZGVuZW4ga2xhciB3aXJkLCBkYXNzIGhvbW9zZXh1ZWxsZQpoYW5kbHVuZ2VuIHN1ZW5kZSBzaW5kIDspLiBhYmVyIHdlbm4gamVtYW5kIHdpcmtsaWNoIG5lIGFiaGFuZGx1bmcgenUKdW5yZWluaGVpdHNnZWJvdGVuIGltIGFsdGVuIHRlc3RhbWVudCB3aWxsIGthbm4gZXIgbWlyIGphIG5lIG1haWwgc2NoaWNrZW4KKGpvaGFubmVza2x1Z0B3ZWIuZGUpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogRGVyIGtsZWluZSBKdW5nZSAoTGlhcmEsIDMxLiBBdWcgMjAwMSwgMjM6MTc6MjApOgp+IyEgcm49QW5hdG9sIHJ0PTk5OTI5MjE4NCByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpBbHNvIHdlbm4gc2Nob24sIGRhbm4gaGVpc3N0IGVzIEVsZkUuICpzdG9laG4qIEFiZXIgd29oZXIgc29sbHRlc3QgRHUgZGFzCndpc3NlbiAuLi4gZGllIEJhZXVtZSByZWRlbiB3b2hsIG5pY2h0IG1pdCBEaXIgLi4uCgpaWkxCCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogRGVyIGtsZWluZSBKdW5nZSAoQW5hdG9sLCAzMS4gQXVnIDIwMDEsIDIzOjE4OjI4KToKfiMhIHJuPUxpYXJhIHJ0PTk5OTI5MjY0MCByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpJY2ggYmluIEVsZiwgenUgbWlyIHJlZGVuIEJhZXVtZS4gV2FzIER1IHZvbiBEZWluZW0gR29sZCBuaWNodApiZWhhdXB0ZW4ga2FubnN0LCBnZWxsPyA7KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEyOiBEZXIga2xlaW5lIEp1bmdlIChNdXBmZWwsIDMxLiBBdWcgMjAwMSwgMjM6MTk6MTYpOgp+IyEgcm49QW5hdG9sIHJ0PTk5OTI5MjcwOCByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpEYXMgd3VlcmQgZWluZW0gYXVmIGRpZSBEYXVlciBkaWUgTmVydmVuIHRvZXRlbiwgYmVpIGRlbSB2aWVsZW4gR29sZC4uLi4KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogRGVyIGtsZWluZSBKdW5nZSAoS2FyaXMsIDMxLiBBdWcgMjAwMSwgMjM6MjA6MjYpOgp+IyEgcm49QW5hdG9sIHJ0PTk5OTI5MjcwOCByZz13aXR6ZQp+IyEgdGlkPTk5OTI4OTM5OQpEYSBiZWtvbW10IG1hbmNoZXMgZWluZW4gdm9lbGxpZyBuZXVlbiBTaW5uLi4uIHN0ZWh0IGVpbiBFbGYgaW0gV2FsZAp1bmQgaG9lcnQgZGVuIFdhbGQgdm9yIGxhdXRlciBCYWV1bWVuIG5pY2h0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFlbm5lcm1hbmlmZXN0IChUc3VuYW1pLCAgMS4gU2VwIDIwMDEsIDAwOjI0OjI5KToKfiMhIHJuPUxpYXJhIHJ0PTk5OTIxMTUzMiByZz13aXR6ZQp+IyEgdGlkPTk5OTAyMDg0NwpKZXR6dCBnZWh0cyBMaWFyYSBhbiBkZW4gS3JhZ2VuIDopCgo1MSBndXRlIEdydWVuZGUsIGVpbiBNYW5uIHp1IHNlaW4uLi4uLi4uCgogMSkgVGVsZWZvbmdlc3ByYWVjaGUgc2luZCBpbm5lcmhhbGIgdm9uIDMwIFNla3VuZGVuIGJlZW5kZXQuCiAyKSBEaWUgTWFzc2UgZGVyIFBvcm5vZGFyc3RlbGxlciBzaW5kIHdlaWJsaWNoLgogMykgRHUgd2Vpc3N0IGV0d2FzIHVlYmVyIFBhbnplci4KIDQpIEZ1ZXIgZWluZW4gNS1UYWdlIFVybGF1YiByZWljaHQgZWluIEtvZmZlci4KIDUpIER1IG11c3N0IG5pY2h0IGRhcyBTZXhsZWJlbiBkZWluZXIgRnJldW5kZSB1ZWJlcndhY2hlbi4KIDYpIER1IGthbm5zdCBhbGxlIE1hcm1lbGFkZW5nbGFlc2VyIHNlbGJzdCBvZWZmbmVuLgogNykgQWx0ZSBGcmV1bmRlIGJlbWl0bGVpZGVuIGRpY2ggbmljaHQsIHdlbm4gZHUgenVuaW1tc3QuCiA4KSBCZWltIHphcHBlbiBibGVpYnN0IGR1IG5pY2h0IGhhZW5nZW4gd2VubiBqZW1hbmQgd2VpbnQuCiA5KSBEZWluIEFyc2NoIHNwaWVsdCBuaWVtYWxzIGVpbmUgUm9sbGUgaW4gVm9yc3RlbGx1bmdzZ2VzcHJhZWNoZW4uCiAxMCkgQWxsZSBkZWluZSBPcmdhc21lbiBzaW5kIGVjaHQuCiAxMSkgRWluIEJpZXJiYXVjaCBtYWNodCBkaWNoIG5pY2h0IHVuc2ljaHRiYXIgZnVlciBkYXMgYW5kZXJlCiAgICAgR2VzY2hsZWNodC4KIDEyKSBEdSBzY2hsZXBwc3Qga2VpbmUgVGFzY2hlbiBtaXQgdW5ub2V0aWdlbiBEaW5nZW4gbWl0IGRpciBoZXJ1bS4KIDEzKSBEdSBrYW5uc3QgZGVpbmUgTmFocnVuZyBzZWxic3QgZXJsZWdlbi4KIDE0KSBJbiBkZXIgV2Vya3N0YXR0IGdlaG9lcnQgZGlyIGFsbGVzLgogMTUpIER1IGJyYXVjaHN0IG5pZW1hbHMgZGllIFRvaWxldHRlIHJlaW5pZ2VuLgogMTYpIER1IGthbm5zdCBkaWNoIGR1c2NoZW4gdW5kIGFuemllaGVuIGluIDEwIE1pbnV0ZW4uCiAxNykgU2V4IGthbm4gZGlyIG5pY2h0IGRlaW5lbiBSdWYgdmVybWllc2VuLgogMTgpIFdlbm4gamVtYW5kIHZlcmdpc3N0IGRpY2ggZWluenVsYWRlbiwgaXN0IGVyIG5hY2ggd2llIHZvciBkZWluCiAgICAgRnJldW5kLgogMTkpIERlaW5lIFVudGVyd2Flc2NoZSBpbSAzZXItUGFjayBrb3N0ZXQgMTggRE0uCiAyMCkgS2VpbiBNaXRhcmJlaXRlciBrYW5uIGRpY2ggenVtIGhldWxlbiBicmluZ2VuLgogMjEpIER1IGJyYXVjaHN0IGRpY2ggdW50ZXJoYWxiIGRlcyBLb3BmZXMgbmljaHQgcmFzaWVyZW4uCiAyMikgRHUgbXVzc3QgbmljaHQgamVkZSBOYWNodCBuZWJlbiBlaW5lbSBoYWFyaWdlbiBBcnNjaCBzY2hsYWZlbi4KIDIzKSBOaWVtYW5kIGludGVyZXNzaWVydCBlcywgd2VubiBkdSBtaXQgMzMgbm9jaCBTaW5nbGUgYmlzdC4KIDI0KSBEdSBrYW5uc3QgZGVpbmVuIE5hbWVuIGluIGRlbiBTY2huZWUgc2NocmVpYmVuLgogMjUpIEFsbGVzIGluIGRlaW5lbSBHZXNpY2h0IGJlaGFlbHQgc2VpbmUgT3JpZ2luYWxmYXJiZS4KIDI2KSBEdSBkZW5rc3QgenUgOTUlIGRlciBaZWl0LCBkaWUgZHUgd2FjaCBiaXN0LCBhbiBTZXguCiAyNykgRHJlaSBQYWFyIFNjaHVoZSBzaW5kIG1laHIgYWxzIGdlbnVnLgogMjgpIER1IGthbm5zdCBlaW5lIEJhbmFuZSBpbiBkZXIgT2VmZmVudGxpY2hrZWl0IGVzc2VuLgogMjkpIER1IGthbm5zdCBzYWdlbiB3YXMgZHUgd2lsbHN0LCB3ZWlsIGRpciBlZ2FsIGlzdCB3YXMgYW5kZXJlCiAgICAgTGV1dGUgdWViZXIgZGljaCBkZW5rZW4uCiAzMCkgRGFzIFZvcnNwaWVsIGlzdCBmcmVpd2lsbGlnLgogMzEpIEtlaW5lciB1bnRlcmJyaWNodCBzZWluZW4gZ3V0ZW4gc2NobXV0emlnZW4gV2l0eiB3ZW5uIGR1IGRlbiBSYXVtCiAgICAgYmV0cml0dHN0LgogMzIpIEtmei1NZWNoYW5pa2VyIGVyemFlaGxlbiBkaXIgZGllIFdhaHJoZWl0LgogMzMpIERpY2ggaW50ZXJlc3NpZXJ0IGVzIGVpbmVuIERyZWNrLCBvYiBqZW1hbmQgZGVpbmUgbmV1ZSBGcmlzdXIgZXJrZW5udC4KIDM0KSBEdSBiaXN0IGltbWVyIGluIGRlciBnbGVpY2hlbiBTdGltbXVuZy4KIDM1KSBEdSBrYW5uc3QgQ2xpbnQgRWFzdHdvb2QgYmV3dW5kZXJuIG9obmUgenUgaHVuZ2VybiwgdW0gd2llIGVyCiAgICAgYXVzenVzZWhlbi4KIDM2KSBEdSBrZW5uc3QgbWluZGVzdGVucyAyMCBXZWdlIGVpbmUgQmllcmZsYXNjaGUgenUgb2VmZm5lbi4KIDM3KSBEdSBrYW5uc3QgYnJlaXRiZWluaWcgc2l0emVuLCBlZ2FsIHdhcyBkdSB0cmFlZ3N0LgogMzgpIEdsZWljaGUgQXJiZWl0LCBiZXNzZXJlcyBHZWhhbHQgIQogMzkpIEdyYXVlcyBIYWFyIHVuZCBGYWx0ZW4gdmVyc3RhZXJrZW4gZGVpbmVuIENoYXJha3Rlci4KIDQwKSBFcyBpc3QgZGlyIGVnYWwgd2VubiBMZXV0ZSBoaW50ZXIgZGVpbmVtIFJ1ZWNrZW4gdWViZXIgZGljaCBzcHJlY2hlbi4KIDQxKSBNaXQgNDAwIE1pbGxpb25lbiBTcGVybWllbiBwcm8gU2NodXNzIGtvZW5udGVzdCBkdSBpbiAxNSBWZXJzdWNoZW4KICAgICBkaWUgRXJkYmV2b2Vsa2VydW5nIHZlcmRvcHBlbG4gLSB0aGVvcmV0aXNjaC4KIDQyKSBEaWUgRmVybmJlZGllbnVuZyBnZWhvZXJ0IGRpciwgbnVyIGRpci4KIDQzKSBNZW5zY2hlbiB3ZXJmZW4gbmllIGVpbmVuIEJsaWNrIGF1ZiBkZWluZSBCcnVzdCB3ZW5uIGR1IGRpY2ggbWl0CiAgICAgaWhuZW4gdW50ZXJoYWVsdHN0LgogNDQpIFdlbm4gYW5kZXJlIEp1bmdzIGF1ZiBlaW5lciBQYXJ0eSBkaWUgZ2xlaWNoZW4gS2xhbW90dGVuIHRyYWdlbiwKICAgICBrYW5uIGVzIHNlaW4sIGRhc3MgZHUgRnJldW5kZSBmdWVycyBMZWJlbiBmaW5kZXN0LgogNDUpIFByaW56ZXNzaW4gRGlhbmFzIFRvZCB3YXIgbnVyIGVpbmUgd2VpdGVyZSBUb2Rlc2FuemVpZ2UuCiA0NikgRGVyIGdlbGVnZW50bGljaGUgZ3V0IGRvc2llcnRlIFJ1ZWxwc2VyIHdpcmQgc28gZ3V0IHdpZQogICAgIGVyd2FydGV0Li4KIDQ3KSBEdSBsYWVzc3QgbmllbWFscyBlaW5lIENoYW5jZSBhdWYgU2V4IHNhdXNlbiwgd2VpbCBkdSBuaWNodCBpbiAKICAgICBkZXIgU3RpbW11bmcgYmlzdC4KIDQ4KSBQb3Jub2ZpbG1lIHdlcmRlbiBuYWNoIGRlaW5lbiBWb3JzdGVsbHVuZ2VuIGdlZHJlaHQuCiA0OSkgRWluZSBQZXJzb24gbmljaHQgenUgbW9lZ2VuIHNjaGxpZXNzdCBuaWNodCBhdXMsIGdyb3NzYXJ0aWdlbiBTZXgKICAgICBtaXQgaWhyIHp1IGhhYmVuLgogNTApIFdhcyB6dW0gVGV1ZmVsIGlzdCBaZWxsdWxpdGlzICE/CiA1MSkgRHUga2FubnN0IEtvbmRvbWUga2F1ZmVuLCBvaG5lIGRhc3MgZGVyIFZlcmthZXVmZXIgc2ljaCB2b3JzdGVsbHQKICAgICB3aWUgZHUgaW0gQmV0dCBiaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYWVubmVybWFuaWZlc3QgKExpYXJhLCAgMS4gU2VwIDIwMDEsIDAwOjI1OjM5KToKfiMhIHJuPVRzdW5hbWkgcnQ9OTk5Mjk2NjY5IHJnPXdpdHplCn4jISB0aWQ9OTk5MDIwODQ3CjpnYWVobnQuCgpaWkxCCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBNYWVubmVybWFuaWZlc3QgKERhcmlhLCAgMi4gU2VwIDIwMDEsIDEwOjUxOjQwKToKfiMhIHJuPVRzdW5hbWkgcnQ9OTk5Mjk2NjY5IHJnPXdpdHplCn4jISB0aWQ9OTk5MDIwODQ3CkFsc28sIGJlaSBlaW5lciBNZW5nZSBkZXIgUHVua3RlIGJpbiBpY2ggZGFubiBkb2NoIGZyb2gsIEtFSU4gTWFubiB6dSBzZWluLi4uCkRhcmlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptYWwgYW5nZW5vbW1lbi4uIChJdm8sICAzLiBTZXAgMjAwMSwgMTk6NTI6NDUpOgpNYWwgYW5nZW5vbW1lbi4uLgpEdSBzaXR6dCBhbSBTdGV1ZXIgZWluZXMgQXV0b3MgdW5kIGhhZWx0c3QgZWluZSBrb25zdGFudGUgR2VzY2h3aW5kaWdrZWl0LgpMaW5rcyB2b24gRGlyIGJlZmluZGV0IHNpY2ggZWluIEFiaGFuZy4gUmVjaHRzIHZvbiBEaXIgYmVmaW5kZXQgc2ljaCBlaW4KTGFzdHdhZ2VuIGRlciBGZXVlcndlaHIgdW5kIGZhZWhydCBlYmVuc28gc2NobmVsbCB3aWUgRHUuIFZvciBEaXIgcmVpdGV0IGVpbgpTY2h3ZWluLCBkYXMgZWluZGV1dGlnIGdyb2Vzc2VyIGlzdCBhbHMgRGVpbiBBdXRvIEVzIHZlcmZvbGd0IERpY2ggZWluCkh1YnNjaHJhdWJlciBhdWYgQm9kZW5ob2VoZS4gRGFzIFNjaHdlaW4gdW5kIGRlciBIdWJzY2hyYXViZXIgaGFiZW4gZWJlbmZhbGxzCkRlaW5lIEdlc2Nod2luZGlna2VpdC4KV2FzIHVudGVybmltbXN0IER1IHVtIGFuenVoYWx0ZW4/CgoKCgpHZWggc29mb3J0IHJ1bnRlciB2b24gZGVtIEtpbmRlcmthcnVzc2VsbCEgQWxzbyBtYWwgZWhybGljaCwgZmluZGVzdCBEdSBuaWNodAphdWNoLCBkYXNzIER1IGRhZnVlciBldHdhcyB6dSBhbHQKYmlzdD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCltCZXJsaW5lciBaZWl0dW5nXSAoR2xvaW5zb24sICAzLiBTZXAgMjAwMSwgMjA6Mzg6MjkpOgpGdWVyIHp1IGxhdXRlcyBIb2VyZW4gdm9uIEhhcmRyb2NrLU11c2lrIGltIEF1dG8gd3VyZGUgZWluIDE5amFlaHJpZ2VyIE1hbm4gaW4KQ2FtYnJpZGdlL09oaW8gdm9yIGRpZSBXYWhsIGdlc3RlbGx0IGVudHdlZGVyIGh1bmRlcnQgRG9sbGFyIHp1IHphaGxlbiBvZGVyCnNpY2ggdmllciBTdHVuZGVuIFBvbGthLU11c2lrIGFuenVob2VyZW4uIERlciBEZWxpbnF1ZW50IGVudHNjaGllZCBzaWNoIGZ1ZXIKZGllIGFrdXN0aXNjaGUgVW1lcnppZWh1bmdzbWFzc25haG1lIHVuZCBsYXVzY2h0ZSB2aWVyIFN0dW5kZW4gaW4gZWluZW0KVmVyaG9lcnJhdW0gZGVyIFBvbGl6ZWkgdW5iZXdlZ3RlciBNaWVuZSBGcmFua2llIFlhbmtvdmljcyBNdXNpay4KCkdsb2luKHNvbikgZm9yZGVydCBWb2xrc211c2lrc3RyYWZlbiBmdWVyIGxhdXRlIEF1dG9yYWRpb2hvZXJlciAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBbQmVybGluZXIgWmVpdHVuZ10gKEh1bW5pLCAgMy4gU2VwIDIwMDEsIDIwOjQwOjU4KToKfiMhIHJuPUdsb2luc29uIHJ0PTk5OTU0MjMwOSByZz13aXR6ZQp+IyEgdGlkPTk5OTU0MjMwOQpJY2ggZ2xhdWJlIGljaCBoYWV0dGUgZWhlciBodW5kZXJ0IERvbGxhciBnZXphaGx0LgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogW0JlcmxpbmVyIFplaXR1bmddIChBbm9yaXMsICAzLiBTZXAgMjAwMSwgMjE6NDM6MTQpOgp+IyEgcm49SHVtbmkgcnQ9OTk5NTQyNDU4IHJnPXdpdHplCn4jISB0aWQ9OTk5NTQyMzA5CgpXYWVyZSBmYWlyIHdlbm4gZGllIFZvbGtzbXVzaWtob2VyZXIgZGFubiBvZWhtIG5hamEgd2FzIGFuZGVycyBob2VyZW4KbXVlc3N0ZW4uIEF1c2dsZWljaGVuZGUgR2VyZWNodGlna2VpdCA7KQoKLSBBbm9yaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFtCZXJsaW5lciBaZWl0dW5nXSAoR2xvaW5zb24sICAzLiBTZXAgMjAwMSwgMjI6MDM6MDQpOgp+IyEgcm49QW5vcmlzIHJ0PTk5OTU0NjE5NCByZz13aXR6ZQp+IyEgdGlkPTk5OTU0MjMwOQpJY2ggaGFiIGVpZ2VudGxpY2ggbm9jaCBuaWUgcnVlY2tzaWNodHNsb3NlIFJlbnRuZXIgbWl0IGF1ZiAxMjAgZGIKYXVmZ2VkcmVodGVyIFZvbGtzbXVzaWsgYW4gbWlyIHZvcmJlaXd1bW1lcm4gaG9lcmVuLgoKR2xvaW4oc29uKSwgbmljaHQgb2Z0IGRyYXVzc2VuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBbQmVybGluZXIgWmVpdHVuZ10gKFZhbmlvbiwgIDMuIFNlcCAyMDAxLCAyMjowODowNCk6Cn4jISBybj1HbG9pbnNvbiBydD05OTk1NDczODQgcmc9d2l0emUKfiMhIHRpZD05OTk1NDIzMDkKRGFzIGhlaXNzdCBkYW5uIGF1Y2ggbmljaHQgcnVlY2tzaWNodHNsb3Mgc29uZGVybiBUYXViLgoKViosIGtvbm50ZSBlcyBzaWNoIG5pY2ggdmVya25laWZlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFtCZXJsaW5lciBaZWl0dW5nXSAoTGV5bGF0aCwgIDMuIFNlcCAyMDAxLCAyMjowOToxMik6Cn4jISBybj1EZWVwYmx1ZSBydD05OTk1NDc3MzIgcmc9d2l0emUKfiMhIHRpZD05OTk1NDIzMDkKZHUgbWVpbnN0IG1pdCBkZW0gYXV0byBzY2h1bmtlbG5kZSByZW50bmVyPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogW0JlcmxpbmVyIFplaXR1bmddIChNdXBmZWwsICAzLiBTZXAgMjAwMSwgMjM6MDY6NTMpOgp+IyEgcm49TGV5bGF0aCBydD05OTk1NDc3NTIgcmc9d2l0emUKfiMhIHRpZD05OTk1NDIzMDkKSGVoZS4uLiBpY2gga2FubnRlIGRlbiBiaXNoZXIgaW1tZXIgc286CiJJY2ggYXVmbSBQZmVyZCwgdm9yIG1pciBkaWUgUG9saXplaSwgaGludGVyIG1pciBkaWUgRmV1ZXJ3ZWhyLiBXbyBiaW4gaWNoPyIKKGtvbW10IGFiZXIgcmwgd2VpdCBiZXNzZXIgOykKCi1tdXBmZWwtIChzY2htdW56ZWx0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnVlciBMaWFyYS4uLiAoR25vbWUsICA0LiBTZXAgMjAwMSwgMDA6MjM6NDkpOgouLi5oaWVyIG1hbCB3YXMgbml2ZWF1dm9sbGVzIChvZGVyIG5pd29oZm9sbGVzPyBkb29mZSByZWZvcm0pLgp3b2JlaSBtaXIgZGVyIHZlcmdsZWljaCB2b24gZ2VvcmdlIGJlcm5hcmQgc2hhdyBhbSBiZXN0ZW4gZ2VmYWVsbHQuIDopCgp6aXRhdGUgYnJ1ZWhtdGVyIHBlcnNvbmVuOgoKV2VubiBlaW5lIEZyYXUgbmljaHQgc3ByaWNodCwgc29sbCBtYW4gc2llIHVtIEhpbW1lbHMgd2lsbGVuIG5pY2h0CnVudGVyYnJlY2hlbi4KKEVucml5ZXUgQ2FzdGFsZG8pCgoqICogKgoKRmVtaW5pc211cyBleGlzdGllcnQgbnVyLCB1bSBoYWVzc2xpY2hlIEZyYXVlbiBpbiBkaWUgR2VzZWxsc2NoYWZ0IHp1CmludGVncmllcmVuLgooQnVrb3dza2kpCgoqICogKgoKVW50ZXIgVmVyemljaHQgdmVyc3RlaGVuIEZyYXVlbiBkaWUga3VyemUgUGF1c2Ugendpc2NoZW4gendlaSBXdWVuc2NoZW4uCihNYXJpbyBBZG9yZikKCiogKiAqCgpXZW5uIEZyYXVlbiBuaWNodCBtZWhyIHdpc3Nlbiwgd2FzIHNpZSB0dW4gc29sbGVuLCB6aWVoZW4gc2llIHNpY2ggYXVzLgpVbmQgZGFzIGlzdCB3YWhyc2NoZWlubGljaCBkYXMgQmVzdGUsIHdhcyBGcmF1ZW4gdHVuIGtvZW5uZW4uCihTYW11ZWwgQmVja2V0dCkKCiogKiAqCgpNdWV0dGVyIGxpZWJlbiBpaHJlIEtpbmRlciBtZWhyLCBhbHMgVmFldGVyIGVzIHR1biwgd2VpbCBzaWUgc2ljaGVyIHNlaW4Ka29lbm5lbiwgZGFzcyBlcyBpaHJlIHNpbmQuCihBcmlzdG90ZWxlcykKCiogKiAqCgpLZWluIGtsdWdlciBNYW5uIHdpZGVyc3ByaWNodCBzZWluZXIgRnJhdS4KRXIgd2FydGV0LCBiaXMgc2llIGVzIHNlbGJzdCB0dXQuCihIdW1waHJleSBCb2dhcnQpCgoqICogKgoKRGVyIGd1dGUgUnVmIGVpbmVyIEZyYXUgYmVydWh0IGF1ZiBkZW0gU2Nod2VpZ2VuIG1laHJlcmVyIE1hZW5uZXIuCihNYXVyaWNlIENoZXZhbGllcikKCiogKiAqClZvcnNpY2h0IHZvciBlaW5lbSBXZWliZSwgd2VsY2hlcyBsb2dpc2NoZXMgRGVua2VuIG9mZmVuYmFydCEgIERlbm4gTG9naWsKdW5kIGRhcyBXZWliIHNpbmQgc28gaGV0ZXJvZ2VuLCBkYXNzIGVzIFVubmF0dXIgaXN0LCB3ZW5uIHNpZSB6dXNhbW1lbgphdWZ0cmV0ZW4uCihKb2hhbm5lcyBDb3R0YSkKCiogKiAqCgpFcyBnaWJ0IGRyZWkgQXJ0ZW4gdm9uIEZyYXVlbjoKRGllIFNjaG9lbmVuLCBkaWUgSW50ZWxsaWdlbnRlbiB1bmQgZGllIE1laHJoZWl0LgooUmFpbmVyIFdlcm5lciBGYXNzYmluZGVyKQoKKiAqICoKCkZyYXVlbiBzaW5kIGZ1ciBtaWNoIHdpZSBFbGVmYW50ZW4uCkljaCBzZWhlIHNpZSBnZXJuIGFuLCBhYmVyIGljaCB3dXJkZSBrZWluZW4gaGFiZW4gd29sbGVuLgooVy5DLiBGaWVsZHMpCgoqICogKgoKRGllIGdyb3NzZSBGcmFnZSwgZGllIGljaCB0cm90eiBtZWluZXMgZHJlaXNzaWdqYWVocmlnZW4gU3R1ZGl1bXMgZGVyCndlaWJsaWNoZW4gU2VlbGUgbmljaHQgenUgYmVhbnR3b3J0ZW4gdmVybWFnLCBsYXV0ZXQ6CidXYXMgd2lsbCBlaW5lIEZyYXUgZWlnZW50bGljaD8nCihTaWdtdW5kIEZyZXVkKQoKKiAqICoKCldlbm4gZWluZSBGcmF1IHNpY2ggZGllIExpcHBlbiBuYWNoemllaHQsIHNvIGlzdCBkYXMsIHdpZSB3ZW5uIGVpbiBTb2xkYXQKc2VpbiBNYXNjaGluZW5nZXdlaHIgcHV0enQuCihCb2IgSG9wZSkKCiogKiAqCgpEcmVpIEFydGVuIHZvbiBNYWVubmVybiB2ZXJzYWdlbiBpbSBWZXJzdGVoZW4gZGVyIEZyYXVlbjoKSnVuZ2UgTWFlbm5lciwgTWFlbm5lciBtaXR0bGVyZW4gQWx0ZXJzIHVuZCBhbHRlIE1hZW5uZXIuCihJcmlzY2hlcyBTcHJpY2h3b3J0KQoKKiAqICoKCldvbWl0IHZlcmh1ZXRlbiBFbWFuemVuPwpNaXQgZGVtIEdlc2ljaHQuCihPc2thciBMYWZvbnRhaW5lKQoKKiAqICoKRnJhdWVuIHZlcmJpbmRlbiBhbSBsaWVic3RlbiBkaWUgV3VuZGVuLCBkaWUgc2llIHNlbGJzdCBnZXNjaGxhZ2VuIGhhYmVuLgooSmFjcXVlcyBNYXJjaGFuZCkKCiogKiAqCgpOaWNodHMgaXN0IHNjaGxpbW1lciBhbHMgZWluZSBGcmF1LCBzZWxic3Qgd2VubiBzaWUgZ3V0IGlzdC4KKE1lbmFuZGVyKQoKKiAqICoKCkRpZSBGcmF1IGlzdCBkZXIgYW5uZWhtYmFyc3RlIE5hdHVyZmVobGVyLgooSm9obiBNaWx0b24pCgoqICogKgoKRGVyIFp3ZWNrIGhlaWxpZ3QgZGllIE1pdHRlbC4KRGllcyBtdXNzIHNpY2ggZGVyIGxpZWJlIEdvdHQgZ2VkYWNodCBoYWJlbiwgYWxzIGVyIGRhcyBXZWliIGVyc2NodWYuCihUaG9tYXMgTmllZGVycmV1dGhlcikKCiogKiAqCgpGcmF1ZW46IGF1c3RhdXNjaGJhcmUgV2Vya3pldWdlIHp1IGVpbmVtIHN0ZXRzIGdsZWljaGVuIFZlcmdudWVnZW4uCihNYXJjZWwgUHJvdXN0KQoKKiAqICoKCldlbm4gZHUgc2llaHN0LCB3ZW4gZWluaWdlIE1hZWRjaGVuIGhlaXJhdGVuLCB3ZWlzc3QgZHUsIHdpZSBzZWhyIHNpZSBlcwpoYXNzZW4gbXVlc3NlbiwgaWhyZW4gTGViZW5zdW50ZXJoYWx0IHNlbGJzdCB6dSB2ZXJkaWVuZW4uICAoSGVsZW4gUm93bGFuZCkKCiogKiAqCgpFaW5tYWwgd2VpYmxpY2gsIGltbWVyIHdlaWJsaWNoLgpEaWUgTmF0dXIgaXN0IHp3YXIgbmljaHQgdW5mZWhsYmFyLCBkb2NoIGhhZWx0IHNpZSBzdGV0cyBhbiBpaHJlbiBGZWhsZXJuCmZlc3QuCihTYWtpKQoKKiAqICoKCkRhcyBuaWVkcmlnIGdld2FjaHNlbmUsIHNjaG1hbHNjaHVsdHJpZ2UsIGJyZWl0aHVlZnRpZ2UgdW5kIGt1cnpiZWluaWdlCkdlc2NobGVjaHQgZGFzIFNjaG9lbmUgenUgbmVubmVuLCBrb25udGUgbnVyIGRlciB2b20gR2VzY2hsZWNodHN0cmllYgp1bW5lYmVsdGUgbWFlbm5saWNoZSBJbnRlbGxla3QgZmVydGlnYnJpbmdlbi4KKEFydGh1ciBTY2hvcHBlbmhhdWVyKQoKKiAqICoKCkZyYXVlbiBzaW5kIHdpZSBcYmVyc2V0enVuZ2VuOgpEaWUgU2Nob2VuZW4gc2luZCBuaWNodCB0cmV1LCB1bmQgZGllIFRyZXVlbiBzaW5kIG5pY2h0IHNjaG9lbi4KKEdlb3JnZSBCZXJuYXJkIFNoYXcpCgoqICogKgoKRXMgaXN0IFNhY2hlIGRlciBGcmF1LCBzbyBmcnVlaCB3aWUgbW9lZ2xpY2ggenUgaGVpcmF0ZW4uIERpZSBBdWZnYWJlIGRlcwpNYW5uZXMgaXN0IGVzLCBzbyBsYW5nZSB1bnZlcmhlaXJhdGV0IHp1IGJsZWliZW4sIHdpZSBlciBrYW5uLgooR2VvcmdlIEJlcm5hcmQgU2hhdykKCiogKiAqCgpCZWkgZGVyIEJyYXV0d2VyYnVuZyBpc3QgZGVyIE1hbm4gc29sYW5nZSBoaW50ZXIgZWluZXIgRnJhdSBoZXIsIGJpcyBzaWUKaWhuIGhhdC4KKEphY3F1ZSBUYXRpKQoKKiAqICoKCkZ1ZXJjaHRlIGRlbiBCb2NrIHZvbiB2b3JuLCBkYXMgUGZlcmQgdm9uIGhpbnRlbiB1bmQgZGFzIFdlaWIgdm9uIGFsbGVuClNlaXRlbi4KKEFudG9uIFRzY2hlY2hvdykKCiogKiAqCgpEaWUgRnJhdSBrb250cm9sbGllcnQgaWhyZW4gU2V4LCB3ZWlsIHNpZSBmdWVyIFNleCBhbGwgZGFzIGJla29tbXQsIHdhcyBpaHIKbm9jaCB3aWNodGlnZXIgaXN0IGFscyBTZXguCihFc3RoZXIgVmlsYXIpCgoqICogKgoKRGllIEZyYXUgaXN0IGVpbiBtZW5zY2hsaWNoZXMgV2VzZW4sIGRhcyBzaWNoIGFuemllaHQsIHNjaHdhdHp0IHVuZCBzaWNoCmF1c3ppZWh0LgooVm9sdGFpcmUpCgoqICogKgoKRGFzIFZlcmhhZWx0bmlzIHZvbiBNYW5uIHVuZCBXZWliIGlzdCBrZWluIGFuZGVyZXMgYWxzIGRhcyB2b24gU3ViamVrdCB1bmQKT2JqZWt0LiBEZXIgTWFubiBpc3QgZGFzIEV0d2FzLCBkYXMgV2VpYiBpc3QgZGFzIE5pY2h0cy4KKE90dG8gV2VpbmluZ2VyLCBTY2h1ZWxlciBTY2hvcGVuaGF1ZXJzKQoKKiAqICoKCkRpZSBGcmF1IGtvbnRyb2xsaWVydCBpaHJlbiBTZXgsIHdlaWwgc2llIGZ1ZXIgU2V4IGFsbCBkYXMgYmVrb21tdCwgd2FzIGlocgpub2NoIHdpY2h0aWdlciBpc3QgYWxzIFNleC4KKEVzdGhlciBWaWxhcikKCiogKiAqCgpEaWUgRnJhdSBpc3QgZWluIG1lbnNjaGxpY2hlcyBXZXNlbiwgZGFzIHNpY2ggYW56aWVodCwgc2Nod2F0enQgdW5kIHNpY2gKYXVzemllaHQuCihWb2x0YWlyZSkKCiogKiAqCgpEYXMgVmVyaGFlbHRuaXMgdm9uIE1hbm4gdW5kIFdlaWIgaXN0IGtlaW4gYW5kZXJlcyBhbHMgZGFzIHZvbiBTdWJqZWt0IHVuZApPYmpla3QuIERlciBNYW5uIGlzdCBkYXMgRXR3YXMsIGRhcyBXZWliIGlzdCBkYXMgTmljaHRzLgooT3R0byBXZWluaW5nZXIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo0MCBHcnVlbmRlLCB3YXJ1bSBHdXJrZW4gYmVzc2VyIHNpbmQgYWxzIE1hZW5uZXIgKExlaWJuaXosICA1LiBTZXAgMjAwMSwgMTM6MzI6MDMpOgpEaWUgZHVyY2hzY2huaXR0bGljaGUgTGFlbmdlIGJldHJhZWd0IDI1IGNtLgpTYWxhdGd1cmtlbiBibGVpYmVuIGVpbmUgZ2FuemUgV29jaGUgaGFydC4KRWluZSBTYWxhdGd1cmtlIHd1ZXJkZSBEaXIgbmllbWFscyBlcnphZWhsZW4sIGRhc3MgR3JvZXNzZSBnYXIgbmljaHQgemFlaGx0LgpTYWxhdGd1cmtlbiBzaW5kIG5pZW1hbHMgenUgZXJyZWd0LgpEdSBrYW5uc3QgZWluZSBTYWxhdGd1cmtlIGltIFN1cGVybWFya3QgenVuYWVjaHN0IGJldGFzdGVuLCB1bSBmZXN0enVzdGVsbGVuLAp3aWUgaGFydCBzaWUgaXN0LCBiZXZvciBzaWUgbWl0IG5hY2ggSGF1c2UgZ2Vub21tZW4gd2lyZC4KRWluZSBTYWxhdGd1cmtlIGFremVwdGllcnQgYXVjaCwgZGFzcyBEdSBhbSBNb3JnZW4gRGVpbmUgUnVoZSBoYWJlbiB3aWxsc3QuCk1pdCBlaW5lciBTYWxhdGd1cmtlIGthbm5zdCBEdSBhdWNoIGlucyBLaW5vIGdlaGVuLgpFaW5lIFNhbGF0Z3Vya2Ugd2lyZCBuaWVtYWxzIGZyYWdlbjogIkJpbiBpY2ggZGVyIEVyc3RlPyIKRWluZSBTYWxhdGd1cmtlIHdpcmQgbmllbWFscyBmcmFnZW46ICJCaW4gaWNoIGRlciBCZXN0ZT8iCkVpbmUgU2FsYXRndXJrZSB3dWVyZGUgbmllbWFscyBhbmRlcmVuIFNhbGF0Z3Vya2VuIGVyemFlaGxlbiwgZGFzcyBEdSBrZWluZQpKdW5nZnJhdSBtZWhyIGJpc3QuCkVpbmUgU2FsYXRndXJrZSB3dWVyZGUgRGljaCBuaWVtYWxzIHp3aW5nZW4sIFJlaXp3YWVzY2hlIHp1IHRyYWdlbiBvZGVyIG1pdApTdGllZmVsbiBpbnMgQmV0dCB6dSBnZWhlbi4KRHUga2FubnN0IHNvIHZpZWxlIFNhbGF0Z3Vya2VuIGhhYmVuLCB3aWUgRHUgd2lsbHN0LiAKRHUga2FubnN0IGRpZSBTYWxhdGd1cmtlIGVzc2VuLCB3ZW5uIER1IHdpbGxzdC4KRWluZSBTYWxhdGd1cmtlIGlzdCBuaWVtYWxzIGVpZmVyc3VlY2h0aWcgYXVmIERlaW5lbiBHeW5hZWtvbG9nZW4sIE1hc3NldXIKb2RlciBGcmlzZXVyLgpTYWxhdGd1cmtlbiBmYW5nZW4gbmljaHQgYW4sIHVlYmVyIERpbmdlIHp1IHJlZGVuLCBkaWUgc2llIG5pY2h0IHZlcnN0ZWhlbi4KRWluZSBTYWxhdGd1cmtlIHd1ZXJkZSBEaXIgbmllbWFscyBlaW5lIFN6ZW5lIG1hY2hlbiwgd2VubiBEdSBub2NoIGFuZGVyZQpTYWxhdGd1cmtlbiBpbSBLdWVobHNjaHJhbmsgaGFzdC4KRWdhbCB3aWUgYWx0IER1IGJpc3QsIER1IGthbm5zdCBpbW1lciBlaW5lIGZyaXNjaGUgU2FsYXRndXJrZSBoYWJlbi4gCkVpbmVyIFNhbGF0Z3Vya2UgbXVlc3N0ZXN0IER1IG5pZW1hbHMgdm9yaGV1bGVuLCBkYXNzIGVzIERpciBsZWlkIHR1dC4KU2FsYXRndXJrZW4gaGludGVybGFzc2VuIGtlaW5lIEJyYW5kZmxlY2tlbiwgc2NobGFmZW4gbmljaHQgYXVmIERlaW5lciBCcnVzdAplaW4gdW5kIHNhYmJlcm4gbmljaHQgYXVmIERlaW4gS2lzc2VuLgpTYWxhdGd1cmtlbiBrb2VubmVuIGRpZSBnYW56ZSBOYWNodCBhdWZibGVpYmVuLCB1bmQgRHUgYnJhdWNoc3QgbmljaHQgaW0KTmFzc2VuIHp1IHNjaGxhZmVuLgpFaW5lIFNhbGF0Z3Vya2Ugd3VlcmRlIERpY2ggbmllIGluIFNvcmdlIHp1cnVlY2tsYXNzZW4uClNhbGF0Z3Vya2VuIG5laG1lbiBuaWVtYWxzIERlaW5lIFRlbGVmb25nZXNwcmFlY2hlIGFuIG9kZXIgbGVpaGVuIERlaW4gQXV0bwphdXMuClNhbGF0Z3Vya2VuIGZyZXNzZW4gbmljaHQgRGVpbmVuIEt1ZWhsc2NocmFuayBsZWVyIG9kZXIgc2F1ZmVuIERlaW5lbiBBbGtvaG9sCmF1cy4KU2FsYXRndXJrZW4gbGFzc2VuIG5pY2h0IHVlYmVyYWxsIGlocmUgZHJlY2tpZ2VuIFVudGVyaG9zZW4gbGllZ2VuLgpFaW5lIFNhbGF0Z3Vya2UgaGludGVybGFlc3N0IGRpZSBLbG9icmlsbGUgaW1tZXIgc28sIHdpZSBzaWUgd2FyLgpFaW5lIFNhbGF0Z3Vya2UgdmVybGFlc3N0IERpY2ggbmllIHdlZ2VuOiBlaW5lciBhbmRlcmVuIEZyYXUsIGVpbmVtIGFuZGVyZW4KTWFubiAsIGVpbmVyIGFuZGVyZW4gR3Vya2UKRHUgd2Vpc3N0IGltbWVyLCB3byBEZWluZSBTYWxhdGd1cmtlIHdhci4KRHUgd2lyc3Qgc3BhZXRlciBuaWVtYWxzIGVudHRhZXVzY2h0IGZlc3RzdGVsbGVuIG11ZXNzZW4sIGRhc3MgRGVpbmUgR3Vya2UKdmVyaGVpcmF0ZXQgaXN0LCBrb2tzdCwgRGljaCB6d2FyIG1hZywgYWJlciBEZWluZW4gQnJ1ZGVyIGxpZWJ0IApEdSBtdXNzdCBuaWNodCBiaXMgenVyIEhhbGJ6ZWl0IHdhcnRlbiwgdW0gbWl0IERlaW5lciBHdXJrZSB6dSByZWRlbi4KU2FsYXRndXJrZW4gZXJ3YXJ0ZW4gbmllIHZvbiBEaXIsIGVpbmVzIFRhZ2VzIGtsZWluZSBTYWxhdGd1cmtlbiB6dSBoYWJlbi4KRXMgaXN0IGVpbmZhY2gsIGVpbmUgU2FsYXRndXJrZSBmYWxsZW4genUgbGFzc2VuLgpFaW5lIFNhbGF0Z3Vya2Uga3J1ZW1lbHQgbmljaHQgaW4gRGVpbiBCZXR0LgpTYWxhdGd1cmtlbiBoaW50ZXJsYXNzZW4ga2VpbmVuIGVpZ2VuYXJ0aWdlbiBHZXNjaG1hY2sgaW0gTXVuZC4KRWluZSBTYWxhdGd1cmtlIGtvbW10IG5pY2h0IHNwYWV0IGFiZW5kcyBiZXNvZmZlbiBuYWNoIEhhdXMgdW5kIGJyaW5ndCBpaHJlCkZyZXVuZGUgbWl0LgpFaW5lIFNhbGF0Z3Vya2Uga2xhdXQgRGlyIG5pY2h0IGRpZSBCZXR0ZGVja2UgdW5kIGJsZWlidCB0cm90emRlbSAod2VubiBEdQp3aWxsc3QpIGRpZSBnYW56ZSBOYWNodC4KRWluZSBTYWxhdGd1cmtlIGhpbnRlcmxhZXNzdCBrZWluZSBLbnV0c2NoZmxlY2tlIG9kZXIgQXVnZW5yaW5nZS4KRWluZSBTYWxhdGd1cmtlIG1hY2h0IGRpciBrZWluZSBTemVuZSwgd2VubiBkdSBtYWwgb2huZSBzaWUgYXVzZ2Voc3QgKHVuZCBkYW5uCmF1Y2ggbm9jaCBiaXMgaW4gZGllIGZydWVoZW4gTW9yZ2Vuc3R1bmRlbiEpLgpFaW5lciBTYWxhdGd1cmtlIG11c3N0IGR1IG5pZW1hbHMgaGludGVyaGVycmFldW1lbiAKRWluZSBTYWxhdGd1cmtlIGxhYmVydCBkaWNoIG5pY2h0IG1pdCBibG9lZGVuIEFubWFjaHNwcnVlY2hlbiB2b2xsICh3aWUgc2Nob24KQWRhbSB6dSBFdmEgaW0gUGFyYWRpZXMgc2FndGU6ICJOYSwgYmlzdCBkdSBvZWZ0ZXIgaGllcj8iKQoKCmxlaWJpIC0ga2ljaGVybmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiA0MCBHcnVlbmRlLCB3YXJ1bSBHdXJrZW4gYmVzc2VyIHNpbmQgYWxzIE1hZW5uZXIgKEdsb2luc29uLCAgNS4gU2VwIDIwMDEsIDEzOjQyOjQ3KToKfiMhIHJuPUxlaWJuaXogcnQ9OTk5Njg5NTIzIHJnPXdpdHplCn4jISB0aWQ9OTk5Njg5NTIzCj4gU2FsYXRndXJrZW4gaGludGVybGFzc2VuIGtlaW5lbiBlaWdlbmFydGlnZW4gR2VzY2htYWNrIGltIE11bmQuCkRhcyBrb21tdCBhdWYgQWx0ZXIgdW5kIFNjaGFlbGVuIGFuLgoKR2xvaW4oc29uKSwgdmVyd2VpZ2VydCBzaWNoIGRlciBEZW5rdGVuZGVuegoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiA0MCBHcnVlbmRlLCB3YXJ1bSBHdXJrZW4gYmVzc2VyIHNpbmQgYWxzIE1hZW5uZXIgKExpbmZsYXMsICA1LiBTZXAgMjAwMSwgMTQ6MjU6NTYpOgp+IyEgcm49R2xvaW5zb24gcnQ9OTk5NjkwMTY3IHJnPXdpdHplCn4jISB0aWQ9OTk5Njg5NTIzClByaW56aXBpZWxsIHNjaG1lY2tlbiBHdXJrZW4gYWJlciBuYWNoIGdhcm5pY2h0cy4KCkwuLCBmaW5kZXQgR3Vya2VuIGRvb2YuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiA0MCBHcnVlbmRlLCB3YXJ1bSBHdXJrZW4gYmVzc2VyIHNpbmQgYWxzIE1hZW5uZXIgKEphbWVzb24sICA1LiBTZXAgMjAwMSwgMTQ6Mjc6MjMpOgp+IyEgcm49TGluZmxhcyBydD05OTk2OTI3NTYgcmc9d2l0emUKfiMhIHRpZD05OTk2ODk1MjMKQXVzc2VyZGVtIHdlcmRlbiBzaWUgemllbWxpY2ggd2VpY2gsIHdlbm4gbWFuIHNpZSBoZWlzcyBtYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IDQwIEdydWVuZGUsIHdhcnVtIEd1cmtlbiBiZXNzZXIgc2luZCBhbHMgTWFlbm5lciAoTGluZmxhcywgIDUuIFNlcCAyMDAxLCAxNDoyODozNSk6Cn4jISBybj1KYW1lc29uIHJ0PTk5OTY5Mjg0MyByZz13aXR6ZQp+IyEgdGlkPTk5OTY4OTUyMwpOaWNodCBudXIgZGFzLCBzaWUgdmVybGllcmVuIGF1Y2ggbm9jaCBGYXJiZSB1bmQgd2VubiBtYW4gc2llIHJpY2h0aWcgbGFuZ2UKaGVpc3MgbWFjaHQsIGRhbm4gdmVyc2Nod2luZGVuIGRpZSBlaW5mYWNoIHNvLgoKTC4sIGhhdCBuaXggZ2VnZW4gR3Vya2VuIGF1cyBkZXIgTWlrcm93ZWxsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IDQwIEdydWVuZGUsIHdhcnVtIEd1cmtlbiBiZXNzZXIgc2luZCBhbHMgTWFlbm5lciAoR25vbWUsICA1LiBTZXAgMjAwMSwgMTU6NDA6NTEpOgp+IyEgcm49SmFtZXNvbiBydD05OTk2OTI4NDMgcmc9d2l0emUKfiMhIHRpZD05OTk2ODk1MjMKd2VtJ3Mgc3Bhc3MgbWFjaHQuLi4KCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiA0MCBHcnVlbmRlLCB3YXJ1bSBHdXJrZW4gYmVzc2VyIHNpbmQgYWxzIE1hZW5uZXIgKEphbWVzb24sICA1LiBTZXAgMjAwMSwgMTU6NDU6MjkpOgp+IyEgcm49R25vbWUgcnQ9OTk5Njk3MjUxIHJnPXdpdHplCn4jISB0aWQ9OTk5Njg5NTIzClsgXSBEdSBoYXN0IHZlcnN0YW5kZW4sIHdhcyBnZW1laW50IHdhci4KCldlciBicmluZ3QgaWhtIGRhcyBtaXQgZGVuIEJpZW5lbiB1bmQgZGVuIEJsdWVtY2hlbiBtYWwgc2Nob25lbmQgYmVpPyA7KQotPiBzY2htYXJybgpqQW1lc29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiA0MCBHcnVlbmRlLCB3YXJ1bSBHdXJrZW4gYmVzc2VyIHNpbmQgYWxzIE1hZW5uZXIgKEdub21lLCAgNS4gU2VwIDIwMDEsIDE2OjI3OjMwKToKfiMhIHJuPUphbWVzb24gcnQ9OTk5Njk3NTI5IHJnPXdpdHplCn4jISB0aWQ9OTk5Njg5NTIzCm1hbCBhbmRlcnNydW06CgpbWF0gZHUgaGFzdCBuaWNodCB2ZXJzdGFuZGVuLCBhdWYgd2VuIHNpY2ggbWVpbiByZXBseSBiZXpvZy4KCmduT21lIGRlbmt0IC4gbyAwIChhbGxlcyBtdXNzIG1hbiBlcmtsYWVyZW4uLi4gYXJnbCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZXIgKE11cGZlbCwgIDUuIFNlcCAyMDAxLCAyMjozNToyMSk6Clp3ZWkgRWhlbGV1dGUgaGFiZW4gd2llZGVyIGVpbm1hbCBTdHJlaXQuCkVyOiAiV2VubiBkdSBzdGlyYnN0LCBiZXNvcmdlIGljaCBkaXIgZWluZW4gR3JhYnN0ZWluIG1pdCBkZXIKSW5zY2hyaWZ0ICdIaWVyIGxpZWd0IG1laW5lIEZyYXUgLSBLYWx0IHdpZSBpbW1lciciLgpTaWU6ICJVbmQgd2VubiBkdSBzdGlyYnN0LCBzdGVsbGUgaWNoIGRpciBlaW5lbiBHcmFic3RlaW4gaGluIHdvcmF1ZgpzdGVodCAnSGllciBsaWVndCBtZWluIE1hbm4gLSBFbmRsaWNoIHN0ZWlmJyIuCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5lciAoVHN1bmFtaSwgIDYuIFNlcCAyMDAxLCAwMzoyMzo1Nyk6CldhcyBzdWNodCBlaW4gZWluYXJtaWdlciBNYW5uIGluIGRlciBFaW5rYXVmc3N0cmFzc2U/CgpFaW5lbiBTZWNvbmQgSGFuZCBTaG9wLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKV2FydW0gaGF0IEdvdHQgdm9uIEFkYW0gZWluZSBSaXBwZSBnZWtsYXV0IHVuZCBkYXJhdXMgZWluZSBGcmF1IGdlbWFjaHQ/CgpFciB3b2xsdGUgemVpZ2VuLCBkYXNzIGJlaSBlaW5lbSBEaWVic3RhaGwgbmljaHRzIFZlcm51ZW5mdGlnZXMgcmF1c2tvbW10LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZXIgKE11cGZlbCwgIDcuIFNlcCAyMDAxLCAxOToxNzoyMSk6CkVpbmUga29tcGxldHRlIEZhbWlsaWUgc2l0enQgdm9yIGRlciBJbnRlbnNpdnN0YXRpb24gZGVzIGxva2FsZW4gS3JhbmtlbmhhdXNlcwp1bmQgYmFuZ3QgdW0gZWluIGxpZWJlcyBGYW1pbGllbm1pdGdsaWVkLCBkZW0gZXMgaXJnZW5kd2llIGdhciBuaWNodCBndXQgZ2VodC4KCk5hY2ggZW5kbG9zZW0gV2FydGVuIGtvbW10IGRlciBiZWhhbmRlbG5kZSBBcnp0IHp1ciBGYW1pbGllIHVuZCBzYWd0OiAiSWNoCmhhYmUgc2NobGVjaHRlIE5hY2hyaWNodGVuIC0gZXMgZ2lidCBudXIgbm9jaCBlaW5lIGVpbnppZ2UgSG9mZm51bmcuIFVuZCB6d2FyCmVpbmUgR2VoaXJudHJhbnNwbGF0YXRpb24uIERhcyBSaXNpa28gaXN0IHVlYmVyc2NoYXViYXIsIGRpZSBLb3N0ZW4gbXVlc3N0ZW4KU2llIGFiZXIgc2VsYnN0IHRyYWdlbi4iCgpEYXMgRmFtaWxpZW5vYmVyaGF1cHQgem9lZ2VydCBuaWNodCBsYW5nZSB1bmQgZnJhZ3QsIHdhcyBlaW4gc29sY2hlciBFaW5ncmlmZgpkZW5uIGtvc3RlbiB3dWVyZGUuCgpEYXJhdWYgZGVyIEFyenQ6ICJOdW5qYSwgZGFzIEdlaGlybiBlaW5lcyBtYWVubmxpY2hlbiBTcGVuZGVycyBrb3N0ZXQgNTAwMCAkLApkYXMgR2VoaXJuIGVpbmVyIEZyYXUgZ2lidCBlcyBzY2hvbiBmdWVyIDMwMCAkLiIKCkJldHJldGVuZXMgU2Nod2VpZ2VuLiBTY2hsaWVzc2xpY2ggd2FndCBlcyBkb2NoIGVpbmVyIHVuZCBmcmFndCwgd2llIHNpY2ggZGVubgpkaWVzZXIgZW5vcm1lIFByZWlzdW50ZXJzY2hpZWQgYmVncnVlbmRlLgoKRGVyIEFyenQgbGFlY2hlbHQgdW5kIG1laW50OiAiQWNoIHdpc3NlbiBTaWUsIGF1Y2ggYmVpbSBPcmdhbmhhbmRlbCBnZWx0ZW4gZGllCnVlYmxpY2hlbiBNYXJrdG1lY2hhbmlzbWVuLCB3ZW5uIGVzIHVtIGRpZSBQcmVpc2JpbGR1bmcgZ2VodC4gRXMgaXN0IGdhbnoKZWluZmFjaCAtIHdlaWJsaWNoZSBHZWhpcm5lIHNpbmQgdm9uIGRlciBTcGVuZGVyaW4gc2Nob24gbWFsIGJlbnV0enQgd29yZGVuLiIKCgoKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEb3duIFVuZGVyLi4uLiAoT3JrdG9ldGVyLCAgOC4gU2VwIDIwMDEsIDIxOjI4OjUwKToKCmh0dHA6Ly9uZXdzLmJiYy5jby51ay9oaS9lbmdsaXNoL3dvcmxkL2FzaWEtcGFjaWZpYy9uZXdzaWRfMTUzMTAwMC8xNTMxMDA1LnN0bQoKVmllbCBTcGFzcywgT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBuYWNoIGRlbSBFcndlcmIgZWluZXMgQ29tcHV0ZXJzIHp1IGJlYWNodGVuIGlzdCEgKEl2bywgIDkuIFNlcCAyMDAxLCAyMTowMToyMSk6CkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoIHp1bSBFcndlcmIgaWhyZXMgbmV1ZW4gSGVpbWNvbXB1dGVycyAKVm9yZ2VoZW5zd2Vpc2VuOgpBLiBNYWVubmxpY2hlIEFud2VuZGVyOgowMS4gS2FydG9ucyBvZWZmbmVuCjAyLiBHZXJhZXRlIGVudG5laG1lbiB1bmQgYXVmc3RlbGxlbgowMy4gTmFjaCBkZW0gVmVya2FiZWxuIGRlciBFaW56ZWxrb21wb25lbnRlbiBzdGFydGVuCjA0LiBXaW5kb3dzIHVuZCBJbnRlcm5ldHNvZnR3YXJlIGluc3RhbGxpZXJlbgowNS4gUmVjaG5lciBuZXUgYm9vdGVuCjA2LiBOZXUgc3RhcnRlbiB1bmQgaW0gSW50ZXJuZXQgdW50ZXIgImhlaW1jb21wdXRlci5kZSIgZWluZW4gQWNjb3VudAphbmxlZ2VuCjA3LiBIZXJ6bGljaCBXaWxsa29tbWVuCgoKCkIuIFdlaWJsaWNoZSBBbndlbmRlcjoKMDEuIEthcnRvbnMgb2VmZm5lbgowMi4gSG90bGluZSBhbnJ1ZmVuCjAzLiBJbiBkaWUgS3VlY2hlIGdlaGVuCjA0LiBLbGViZWJhbmQgaG9sZW4KMDUuIEthcnRvbnMgd2llZGVyIHp1a2xlYmVuCjA2LiBLYXJ0b25zIHVtZHJlaGVuLCBiaXMgbWFuIGRpZSBTY2hyaWZ0ICJoaWVyIG9iZW4iIGxlc2VuIGthbm4KMDcuIEthcnRvbnMgd2llZGVyIG9lZmZuZW4KMDguIEFsbGUgR2VyYWV0ZSBhdXNwYWNrZW4KMDkuIEthcnRvbnMgaW4gZGVuIEtlbGxlciBicmluZ2VuCjEwLiBNZWhyZmFjaCBkZW4gQW4tQXVzLVNjaGFsdGVyIGRlcyBSZWNobmVycyBiZXRhZXRpZ2VuCjExLiBIb3RsaW5lIGFucnVmZW4KMTIuIEluIGRlbiBLZWxsZXIgZ2VoZW4gdW5kIEthYmVsIGF1cyBkZW4gS2FydG9ucyBob2xlbgoxMy4gRGllIEthYmVsIG5hY2ggR3JvZXNzZSwgRmFyYmUgdW5kIG1vZGlzY2hlbiBHZXNpY2h0c3B1bmt0ZW4gb3JkbmVuCjE0LiBEaWUgS2FiZWwgbmFjaCBHZXNjaG1hY2sgaW4gZGllIGRpdmVyc2VuIE9lZmZudW5nZW4gZGVzIFJlY2huZXJzCmVpbmZ1ZWhyZW4KMTUuIERpZSBTdGVja2VyIGluIGRpZSBEcmVpZXJzdGVja2Rvc2Ugc3RlY2tlbgoxNi4gTmFjaCBkZW0gQWJrbGluZ2VuIGRlciBncm9zc2VuIEZsYW1tZW4gYXVjaCBkaWUga2xlaW5lbiBGbGFtbWVuIG1pdAplaW5lbSBIYW5kdHVjaCBlcnN0aWNrZW4uCjE3LiBIb3RsaW5lIGFucnVmZW4KMTguIEFsbGUgU3RlY2tlciBuZXUgZWluc3RlY2tlbgoxOS4gRGllIEdlcmFldGUgZ2VzY2htYWNrdm9sbCBpbSBXb2huemltbWVyIGFycmFuZ2llcmVuCjIwLiBEZW4gQW4tQXVzLVNjaGFsdGVyIGJldGFldGlnZW4KMjEuIERlbiBLb3BmIHVtIDE4MCBHcmFkIGRyZWhlbiwgdW0gaW4gZGVuIE1vbml0b3Igc2NoYXVlbiB6dSBrb2VubmVuCjIyLiBIb3RsaW5lIGFucnVmZW4KMjMuIERlbiBNb25pdG9yIGluIFNpY2h0d2VpdGUgZGVyIFRhc3RhdHVyIG5ldSBhdWZzdGVsbGVuCjI0LiBEaWUgQ0QgbWl0IGRlbSBCZXRyaWVic3N5c3RlbSBpbiBkaWUgQ0QtU2NodWJsYWRlIGVpbmxlZ2VuCjI1LiBDRCBlcm5ldXQgZWlubGVnZW4gdW5kIHZlcnN1Y2hlbiB6dSBzdGFydGVuCjI2LiBDRCByZWluaWdlbgoyNy4gSGFuZGJ1Y2ggcmF1c2hvbGVuCjI4LiBDRCBlcm5ldXQgZWlubGVnZW4KMjkuIEhhbmRidWNoIGxlc2VuCjMwLiBIb3RsaW5lIGFucnVmZW4KMzEuIERhcyBLYXBpdGVsICJIZXJ6bGljaCBXaWxsa29tbWVuIiBpbiBUYWl3YW5lc2lzY2ggZHVyY2hibGFldHRlcm4gYmlzCmRldXRzY2hlciBUZXh0IGVyc2NoZWludAozMi4gQ0QgZXJuZXV0IGVpbmxlZ2VuCjMzLiBIb3RsaW5lIGFucnVmZW4KMzQuIENEIHNvIGVpbmxlZ2VuLCBkYXMgZGllIFNjaHJpZnQgbmFjaCBvYmVuIHplaWd0CjM1LiBIYW5kYnVjaCBsZXNlbgozNi4gQ0QgZXJuZXV0IHJlaW5pZ2VuCjM3LiBDRCBlcm5ldXQgZWlubGVnZW4KMzguIEhvdGxpbmUgYW5ydWZlbgozOS4gRGVuIE1vbml0b3IgZWluc2NoYWx0ZW4KNDAuIERlbiBBbndlaXN1bmdlbiBhdWYgZGVtIEJpbGRzY2hpcm0gZm9sZ2VuCjQxLiBEZW4gUmVjaG5lciBuYWNoIGRlciBJbnN0YWxsYXRpb24gYXVzbWFjaGVuCjQyLiBEZW4gUmVjaG5lciB3aWVkZXIgYW5tYWNoZW4KNDMuIERpZSBIb3RsaW5lIGFucnVmZW4KNDQuIERlbiBNb25pdG9yIGFubWFjaGVuCjQ1LiBEaWUgendlaXRlIENEIG1pdCBkZXIgSW50ZXJuZXRzb2Z0d2FyZSBpbiBkYXMgQ0QtRmFjaCBsZWdlbgo0Ni4gQ0Qgd2llZGVyIHJhdXNob2xlbgo0Ny4gQ0QgbWl0IGRlciBTY2hyaWZ0IG5hY2ggb2JlbiB3aWVkZXIgZWlubGVnZW4KNDguIERlbiBBbndlaXN1bmdlbiBhdWYgZGVtIEJpbGRzY2hpcm0gZm9sZ2VuCjQ5LiBSZWNobmVyIG5hY2ggZGVyIEluc3RhbGxhdGlvbiBhdXNtYWNoZW4KNTAuIFJlY2huZXIgd2llZGVyIGFubWFjaGVuCjUxLiBIb3RsaW5lIGFucnVmZW4KNTIuIE1vbml0b3IgYW5tYWNoZW4KNTMuIElucyBJbnRlcm5ldCBnZWhlbgo1NC4gSG90bGluZSBhbnJ1ZmVuCjU1LiBUZWxlZm9uZG9zZSBpbSBXb2huemltbWVyIHN1Y2hlbgo1Ni4gVGVsZWZvbiBhdXNzdG9lcHNlbG4KNTcuIEluIGRlbiBLZWxsZXIgZ2VoZW4sIGRhcyBsZXR6dGUgS2FiZWwgYXVzIGRlbSBLYXJ0b24gaG9sZW4KNTguIEthYmVsIHp3aXNjaGVuIFRlbGVmb25kb3NlIHVuZCBSZWNobmVyIGJlZmVzdGlnZW4KNTkuIFJlY2huZXIgbmV1IHN0YXJ0ZW4KNjAuIEhvdGxpbmUgYW5ydWZlbiAtIGJlc2V0enQKNjEuIE5hY2hkZW5rZW4KNjIuIE1vbml0b3IgZWluc2NoYWx0ZW4KNjMuIElucyBJbnRlcm5ldCBnZWhlbgo2NC4gSG90bGluZSBhbnJ1ZmVuIC0gYmVzZXR6dAo2NS4gRWluZmFjaCBhdWYgYWxsZSBCdXR0b25zIGtsaWNrZW4sIGRpZSBtYW4gc2VoZW4ga2Fubgo2Ni4gSXJnZW5kZWluIEZlbnN0ZXIgYXVzc3VjaGVuIHVuZCBkZW4gZWlnZW5lbiBOYW1lbiBlaW5nZWJlbgo2Ny4gRnJ1c3RyaWVydCBkZW4gUmVjaG5lciBhdXNtYWNoZW4KNjguIERpZSBiZXN0ZSBGcmV1bmRpbiBhbnJ1ZmVuIC0gYmVzZXR6dAo2OS4gQWxsZXMgd2llZGVyIGVpbnBhY2tlbgo3MC4gV2FydGVuIGJpcyBkZXIgTWFubiBrb21tdAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZvcnR1bmUgYmVpbSBsZXR6ZWxuIGxvZ2luIChUcnVnLCAxMC4gU2VwIDIwMDEsIDE5OjA2OjI0KToKCiAgICAgICAgVEhFIExFU1NFUi1LTk9XTiBQUk9HUkFNTUlORyBMQU5HVUFHRVMgIzE4OiBDLQoKVGhpcyBsYW5ndWFnZSB3YXMgbmFtZWQgZm9yIHRoZSBncmFkZSByZWNlaXZlZCBieSBpdHMgY3JlYXRvciB3aGVuIGhlCnN1Ym1pdHRlZCBpdCBhcyBhIGNsYXNzIHByb2plY3QgaW4gYSBncmFkdWF0ZSBwcm9ncmFtbWluZyBjbGFzcy4gIEMtIGlzCmJlc3QgZGVzY3JpYmVkIGFzIGEgImxvdy1sZXZlbCIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuICBJbiBmYWN0LCB0aGUKbGFuZ3VhZ2UgZ2VuZXJhbGx5IHJlcXVpcmVzIG1vcmUgQy0gc3RhdGVtZW50cyB0aGFuIG1hY2hpbmUtY29kZQpzdGF0ZW1lbnRzIHRvIGV4ZWN1dGUgYSBnaXZlbiB0YXNrLiAgSW4gdGhpcyByZXNwZWN0LCBpdCBpcyB2ZXJ5CnNpbWlsYXIgdG8gQ09CT0wuCgpUcnVnLCBraWNoZXJuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluIGJvZXNlciAoVHN1bmFtaSwgMTAuIFNlcCAyMDAxLCAyMzoyMTo0Mik6ClRoZSBLdXdhaXRpIHRoaW5nLi4uLi4uLi4uLi4KCkEgam91cm5hbGlzdCBnb2VzIHRvIEt1d2FpdCB0byBvYnNlcnZlIGhvdyB3b21lbiBhcmUgdHJlYXRlZApmb3IgYSBtYWdhemluZSBhcnRpY2xlLgpUaGUgd3JpdGVyIG5vdGljZXMgdGhhdCB3aGVyZSBiZWZvcmUgdGhlIEd1bGYgV2FyIHdoZXJlIHdvbWVuCmN1c3RvbWFyaWx5IHdhbGtlZCA1IHBhY2VzIGJlaGluZCB0aGVpciBtYW4gdGhleSBub3cgd2Fsa2VkCmZpdmUgcGFjZXMgaW4gZnJvbnQgb2YgaGltLiBEdXJpbmcgYW4gaW50ZXJ2aWV3IG9mIGEgS3V3YWl0aQp3b21hbiB0aGUgd3JpdGVyIGFza2VkIHdoYXQgd2FzIHJlc3BvbnNpYmxlIGZvciB0aGUgc2hpZnQKaW4gY3VzdG9tLi4uLi4uLi4uLiJXYXMgaXQgV2VzdGVybiB3YXlzPyIgIlRoZSBzdGFydCBvZgpmZW1pbmlzbSBpbiB0aGUgQXJhYiB3b3JsZD8iICAiV29tZW4gYXNzZXJ0aW5nIHRoZW1zZWx2ZXM/IgpUaGUgcmVwbHkuLi4uLi4uLi4uIiBMYW5kIE1pbmVzIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBBbWVyaWthbmVyIGtvZW5uZW4gc2Nob24gd2llZGVyIGxhY2hlbiAoTW9udGFudXMsIDEyLiBTZXAgMjAwMSwgMjA6NDE6NTgpOgpBY2NvcmRpbmcgdG8gYSByYWRpbyByZXBvcnQsIGEgbWlkZGxlIHNjaG9vbCBpbiBPcmVnb24gd2FzIGZhY2VkIHdpdGggCiBhIHVuaXF1ZSAgcHJvYmxlbS4gIEEgbnVtYmVyIG9mIGdpcmxzIHdlcmUgYmVnaW5uaW5nIHRvIHVzZSAKbGlwc3RpY2sgYW5kIHdvdWxkIHB1dCAgaXQgb24gaW4gdGhlIGJhdGhyb29tIG1pcnJvci4gCgpUaGF0IHdhcyBmaW5lLCBidXQgYWZ0ZXIgdGhleSBwdXQgb24gdGhlaXIgbGlwc3RpY2ssIHRoZXkgd291bGQgcHJlc3MgCnRoZWlyIGxpcHMgdG8gdGhlICBtaXJyb3IgbGVhdmluZyBkb3plbnMgb2YgbGl0dGxlIGxpcCBwcmludHMuICBFYWNoIApuaWdodCwgdGhlIG1haW50ZW5hbmNlIG1hbiB3b3VsZCAKY2xlYW4gb2ZmIHRoZSBtaXJyb3JzLCBvbmx5IHRvIGZpbmQgYSBmcmVzaCBzZXQgb2YgCmxpcHN0aWNrIHByaW50cyB0byAgY2xlYW4gdGhlIG5leHQgbmlnaHQuIAogCkZpbmFsbHksIHRoZSBwcmluY2lwYWwgZGVjaWRlZCB0aGF0IHNvbWV0aGluZyAgaGFkIHRvIGJlIGRvbmUuICBTaGUgCmNhbGxlZCBhbGwgdGhlIGdpcmxzIGludG8gdGhlIGJhdGhyb29tIGFuZCBtZXQgIHRoZW0gdGhlcmUgd2l0aCB0aGUgCm1haW50ZW5hbmNlIG1hbi4gIFNoZSBleHBsYWluZWQgdGhhdCBhbGwgdGhlc2UgbGlwICBwcmludHMgd2VyZSBjYXVzaW5nIGEgCm1ham9yIHByb2JsZW0gZm9yIHRoZSBjdXN0b2RpYW4gIGV2ZXJ5IG5pZ2h0LiAKClRvIGRlbW9uc3RyYXRlIGhvdyBkaWZmaWN1bHQgaXQgd2FzIHRvIGNsZWFuICB0aGUgbWlycm9ycywgc2hlIGFza2VkIAp0aGUgbWFpbnRlbmFuY2UgbWFuIHRvIGNsZWFuIG9uZSBvZiB0aGUgbWlycm9ycy4gCkhlIHRvb2sgb3V0IGEgIGxvbmctaGFuZGxlZCBzcXVlZWdlZSwgZGlwcGVkIGl0IGludG8gdGhlIHRvaWxldCAKYW5kIHRoZW4gY2xlYW5lZCB0aGUgIG1pcnJvci4gCgpTaW5jZSB0aGVuLCB0aGVyZSBoYXZlIGJlZW4gbm8gbGlwIHByaW50cyBvbiB0aGUgIG1pcnJvci4gCiAKVGhlcmUgYXJlIHRlYWNoZXJzIGFuZCB0aGVuIHRoZXJlIGFyZSBURUFDSEVSUy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldGRpZ2VzdCAoaWNoIHdpbGwgbmUgUnVicmlrIGluIGRlciBNUEEgOikgKFZhbmlvbiwgMTUuIFNlcCAyMDAxLCAyMzo1NzozOCk6CkhhbGxvLgoKR2VvcmcgU2Nod2FyeiBzY2hyaWViIGFtIFRodSwgMTMgU2VwIDIwMDEgMjE6NTU6MzIgKzAyMDA6Cgo+PiA+IEthbm4gbWFuIGtlaW4gc2ljaGVyZXMgTG9naW4gdmVyd2VuZGVuPwo+PiAKPj4gTnVyIG1pdCBlaW5lbSBQcm9NYWlsLUFjY291bnQuCj4gCj4gT0ssIHVuZCBkYXMga29zdGV0IHZlcm11dGxpY2guCgpOYXR1ZXJsaWNoLiBFcyBtdXNzIHNjaGxpc3NsaWNoIGF1Y2ggZWluZW4gUmVpeiBnZWJlbiwgZGVuCmtvc3RlbnBmbGljaHRpZ2VuIEFjY291bnQgenUgYmVhbnRyYWdlbi4KCgo+IE1pdCBkZXIgR2VzY2hhZWZ0c3BvbGl0aWsgaXN0IEdNWCBmdWVyIG1pY2ggdG90LgoKV293LCBrbGFzc2UgU3RhdGVtZW50LiAiV2VubiBtaXIgZWluZSBGaXJtYSBpaHJlIExlaXR1bmdlbiBuaWNodAprb3N0ZW5sb3MgZ2lidCwgZGFubiB3aWxsIGljaCB2b24gZGVyIEZpcm1hIG5pY2h0cyB3aXNzZW4uIiBHZWhzdApEdSBtaXR0YWdzIGF1Y2ggaW4gZGllIHN0YWVkdGlzY2hlIFN1cHBlbmt1ZWNoZSwgc3RhdHQgRXNzZW4gZ2VnZW4KQmV6YWhsdW5nPyAKCgo+IEVzIGdpYnQgamEgbm9jaCB3ZWIuZGUgdXZtLgoKR2VoJyBsaWViZXIgenUgdXZtLiB3ZWIuZGUgaGF0IHppZW1saWNoIG9mdCBncm9zc2UgUHJvYmxlbWUuIEVpbmdlClRocmVhZHMgaW4gZGllc2VyIE5HIGJlc3RhZXRpZ2VuIGRpZXMuIEJlaSB1dm0gd2VyZGVuIHNvenVzYWdlbiBkaWUKRnVua3Rpb25lbiBhbGxlciBtb21lbnRhbiB2ZXJmdWVnYmFyZW4gUHJvdmlkZXIgZ2VidWVuZGVsdC4gRHUga2FubnN0CmFsc28gdm9uIGVpbmVyIGZhc3QgMTAwLSUtaWdlbiBWZXJmdWVnYmFya2VpdCBhdXNnZWhlbi4gRGF6dSBiZWtvbW1zdApEdSBkYW5uIHVubGltaXRpZXJlbiBTcGVpY2hlcnBsYXR6LCBiZWxpZWJpZyB2aWVsZSBBbGlhc2UsIGh0dHBzLApXZWJzcGFjZSwgQ29tbXVuaXR5LCBTTVMtQmVuYWNocmljaHRpZ3VuZywgLi4uIGFsbGVzIHdhcyBEdSB3aWxsc3QuCgoKQ2hyaXMKCi0tLQpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUG9saXplaXJlcG9ydDogWndlaSBGcmF1ZW4gYmVyYXVidCAoT2dhciwgMTcuIFNlcCAyMDAxLCAxNjowNjowNik6CkF1cyBkZW0gUm9zdG9ja2VyIFdhcm5vdy1LdXJpZXIgdm9tIFNvbm50YWc6Cgpad2VpIEZyYXVlbiB3dXJkZW4gSGFuZHRhc2NoZSB1bmQgRWlua2F1ZnNiZXV0ZWwgbWl0IGV0d2FzIEJhcmdlbGQsCnBlcnNvZW5saWNoZW4gR2VnZW5zdGFlbmRlbiB1bmQgZWluZW0gSGFuZHkgZ2VyYXVidC4KCiJCZWFtdGUgZGVzIEtyaW1pbmFsa29tbWlzc2FyaWF0IFJvc3RvY2sgcmllZmVuIHVlYmVyIGRhcyBIYW5keSBkZXIgZXJzdGVuCkdlc2NoYWVkaWd0ZW4gZGllIGJlaWRlbiBUYXR2ZXJkYWVjaHRpZ2VuIGFuIHVuZCB2ZXJzdWNodGVuIHNpZSB6dXIgVW1rZWhyCnp1IGJld2VnZW4uICBEaWVzIHRhdGVuIHNpZSB6d2FyIG5pY2h0LCBsZWd0ZW4gYWJlciBhdWNoIG5pY2h0IGF1Zi4gIERpZQpCZWFtdGVuIGVyZnVocmVuIHNvbWl0IGR1cmNoIGRhcyB3ZWl0ZXJlIEdlc3ByYWVjaCBkZXIgYmVpZGVuClRhdHZlcmRhZWNodGlnZW4sIGRhc3Mgc2llIHp1bSBHbG9idXNtYXJrdCB3b2xsdGVuLiAgQWxzIHNpZSBkb3J0IGVpbnRyYWZlbiwKd3VyZGVuIHNpZSBiZXJlaXRzIGVyd2FydGV0IHVuZCBbLi4uXSBmZXN0Z2Vub21tZW4uIgoKLS0gCk9nYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRpZSB0c2NoZWNoZW4uLi4gKEdub21lLCAyMC4gU2VwIDIwMDEsIDAxOjI5OjIyKToKc2l0enQgZWluIHRzY2hlY2hlIGJlaW0gYXVnZW5hcnp0Lgphcnp0OiAnc28sIHVuZCBudW4gbGVzZW4gc2llIGJpdHRlIG1hbCBkaWUgdW50ZXJlIHJlaWhlIHZvci4nCmVzIHN0ZWh0IGRvcnQgQyBaIFMgSSBLIFkgVyBBIFMgQyBIIEEuCmRlciB0c2NoZWNoZTogJ2xlc2VuPyBpY2gga2VubiBkZW4ga2VybCEnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZGllIHRzY2hlY2hlbi4uLiAoU2NobWVyeiwgMjAuIFNlcCAyMDAxLCAxMDoyMjowOCk6Cn4jISBybj1Hbm9tZSBydD0xMDAwOTQyMTYyIHJnPXdpdHplCn4jISB0aWQ9MTAwMDk0MjE2MgpMaWVzdCBlaW4gTWFubiBzZWluZXIgRnJhdSBhdXMgZGVyIFplaXR1bmcgdm9yOgoKIkVyZGJlYmVuIGhhdCBkaWUgdHNjaGVjaGljaGUgU3RhZHQgQ3pybnNrd3lyenNjZXNjaWUKdmVyd3Vlc3RldC4iCgpEaWUgRnJhdTogIlVuZCB3aWUgaGllc3MgZGllIFN0YWR0IHZvciBkZW0gRXJkYmViZW4gPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5pd29odm9sbGVyIHdpdHogKER1bW13aXR6LCAyMC4gU2VwIDIwMDEsIDEwOjUwOjM2KToKS29tbXQgbmUgRnJhdSBiZWltIEFyenQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFtZXJpY2FuIEFpcmxpbmVzIChGbHVjaHpldWNoLCAyNy4gU2VwIDIwMDEsIDA4OjE4OjAxKToKV2lyIGZsaWVnZW4gU2llIGRpcmVrdCBiaXMgaW5zIEJ1ZXJvIC0gQW1lcmljYW4gQWlybGluZXMKCgpCVFc6IFdlbm4gYmluIExhZGVuIGdlZmFzc3Qgd2lyZCwgd2llIGhlaXNzZW4gc2VpbmUgS25hc3R3YWVydGVyPyBOYXR1ZXJsaWNoCkxhZGVuaHVldGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFtZXJpY2FuIEFpcmxpbmVzIChXdXJ6ZWwsIDI3LiBTZXAgMjAwMSwgMjE6MTM6NTQpOgp+IyEgcm49Rmx1Y2h6ZXVjaCBydD0xMDAxNTcxNDgxIHJnPXdpdHplCn4jISB0aWQ9MTAwMTU3MTQ4MQp3YWhyc2NoZWlubGljaCBoZWlzc2VuIHNpZSBlaGVyICJnYWVydG5lciIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXVmIGJhbGxvbiAoTGluZmxhcywgMjcuIFNlcCAyMDAxLCAyMTo1ODo1Mik6Cn4jISBybj1Ob25uZSBydD0xMDAxNjIwNzE4IHJnPXdpdHplCn4jISB0aWQ9MTAwMTYyMDcxOApNdWg/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGF1ZiBiYWxsb24gKE11cGZlbCwgMjkuIFNlcCAyMDAxLCAwMDoxOTo1Nik6Cn4jISBybj1MaW5mbGFzIHJ0PTEwMDE2MjA3MzIgcmc9d2l0emUKfiMhIHRpZD0xMDAxNjIwNzE4CkJpbiBMYWRlbiB1bmQgQnVzaCBzcGllbGVuIFNjaGFjaC4gV2VyIGdld2lubnQ/CgpOYXR1ZXJsaWNoIEJpbiBMYWRlbi4gQnVzaCBoYXQgamEgc2Nob24gc2VpbmUgYmVpZGVuIFR1ZXJtZSB2ZXJsb3Jlbi4uLgoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGF1ZiBiYWxsb24gKEdub21lLCAyOS4gU2VwIDIwMDEsIDE2OjM3OjAyKToKfiMhIHJuPU11cGZlbCBydD0xMDAxNzE1NTk2IHJnPXdpdHplCn4jISB0aWQ9MTAwMTYyMDcxOAp6dSBqZWRlciBtaXR0bGVyZW4gYmlzIGdyb2Vzc2VyZW4ga2F0YXN0cm9waGUgZ2lidCBlcyBkb2NoIG1pbmRlc3RlbnMKMyBnZXNjaG1hY2tsb3NlIHdpdHplLgpzZWhyIGx1c3RpZy4KCmduT21lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBhdWYgYmFsbG9uIChIb3VzZWhvbGRlciwgMjkuIFNlcCAyMDAxLCAxNjo0ODo0OCk6Cn4jISBybj1Hbm9tZSBydD0xMDAxNzc0MjIyIHJnPXdpdHplCn4jISB0aWQ9MTAwMTYyMDcxOAp1bmQgZGllc2VyIHdhciBhdWNoIG5vY2ggcmljaHRpY2ggc2NobGVjaHQgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBhdWYgYmFsbG9uIChHcmltbWJvcm4sIDI5LiBTZXAgMjAwMSwgMTc6NTQ6MzcpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9MTAwMTc3NDkyOCByZz13aXR6ZQp+IyEgdGlkPTEwMDE2MjA3MTgKV2FzIG1pY2ggbmljaHQgZGFyYW4gZ2VoaW5kZXJ0IGhhdCBlcnN0bWFsIGxhY2hlbmQgdW50ZXIgZGVuIFRpc2NoIHp1IHNpbmtlbi4KCktsYXIsIGRhcyBpc3QgZWluZSBlcm5zdGUgU2FjaGUsIGRhIHNpbmQgdmllbGUgTWVuc2NoZW4gZ2VzdG9yYmVuLCBkYSBkYXJmIG1hbgpuaWNodCBkcnVlYmVyIGxhY2hlbi4gV2FlcmUgaWNoIGVybnN0IGdlYmxpZWJlbiB3YWVyZW4gendlaSBMZXV0ZSB3ZW5pZ2VyCnVtZ2Vrb21tZW4uIER1IGRhcmZzdCBtaWNoICdNb2VyZGVyJyBuZW5uZW4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IGF1ZiBiYWxsb24gKEthcmlzLCAyOS4gU2VwIDIwMDEsIDE5OjQ5OjMwKToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDAxNzc4ODc3IHJnPXdpdHplCn4jISB0aWQ9MTAwMTYyMDcxOApEdSBoYXN0IGRpZSBiZWlkZW4gdG90Z2VsYWNodD8/PwoKS2FyaXMsIGltbWVyIHdpZWRlciBlcnN0YXVudCB1ZWJlciBGYWVoaWdrZWl0ZW4sIGRpZSBNQWdpZXIgYW5nZWJsaWNoIGhhYmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogYXVmIGJhbGxvbiAoVGVrdHVrbywgMjkuIFNlcCAyMDAxLCAxOTo1MzoxMyk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAwMTc3ODg3NyByZz13aXR6ZQp+IyEgdGlkPTEwMDE2MjA3MTgKTW9lcmRlciEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IGF1ZiBiYWxsb24gKEF0b3osICAxLiBPa3QgMjAwMSwgMTI6NTc6MTcpOgp+IyEgcm49VGVrdHVrbyBydD0xMDAxNzg1OTkzIHJnPXdpdHplCn4jISB0aWQ9MTAwMTYyMDcxOApXZWlzbyBzb2xsIG1hbiBrZWluZSBXaXR6ZSBtYWNoZW4gZHVlcmZlbj8gQWxsZXJkaW5ncyB3YXJlbiBkaWUgd2lya2xpY2ggbmljaHQKYmVzb25kZXJzLiBJY2ggZ2xhdWJlIGljaCBndWNrIG1pciB3ZWl0ZXIgbGllYmVyIEpheSBMZW5vIGFuLCBkaWUgZ2VmYWxsZW4gbWlyCm1laXN0ZW5zIGJlc3Nlci4KCkljaCB3ZWlzcywgZGFzIHpldWd0IHZvbiBtZWluZW0gc2NobGVjaHRlbiBHZXNjaG1hY2ssIGFiZXIgZGFzIGlzdCBpbiBtZWluZXIKS2luZGhlaXQgYmVkaW5ndCA7KQoKR3J1c3MsCkF0b3oKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFtaXMgLi4uIChDYXR3ZWF6bGUsICA0LiBPa3QgMjAwMSwgMDg6MzE6MzYpOgpBYmVyIEdlcm1hbnkgaXNzIHJpY2h0aWcgZ2xhdWJpY2ggLi4uCmh0dHA6Ly9jdXBpZC5kZS91cGxvYWQvYW1lcmljYW5fZ2VvZ3JhcGh5LmpwZyAKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFtaXMgLi4uIChCaXJkeSwgIDQuIE9rdCAyMDAxLCAxMDo1NToxNik6Cn4jISBybj1DYXR3ZWF6bGUgcnQ9MTAwMjE3NzA5NiByZz13aXR6ZQp+IyEgdGlkPTEwMDIxNzcwOTYKU2luZCBkaWUgQW1pcyBkYWVtbGljaCEgSWNoIGdsYXVicyBqYSBuaWNodCEgKmcqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW1pcyAuLi4gKEF0b3osICA0LiBPa3QgMjAwMSwgMTI6MDc6MDMpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTEwMDIxNzcwOTYgcmc9d2l0emUKfiMhIHRpZD0xMDAyMTc3MDk2Ck1pbmRlc3RlbnMgc28gZGFlbWxpY2ggd2llIGRpZSBEZXV0c2NoZW4gYmVpIGRlciBBUkQuCldlbm4gYmVpIEJpbGRlcm4gZHJ1ZWJlciBzdGVodDogIkxpdmUgYXVzIFdhc2hpbmd0b24iIHVuZCBpbSBWb3JkZXJncnVuZAp1bnVlYmVyc2VoYmFyIGVpbmVyIG1pdCBlaW5lciAiTllQRCItTmVvbndlc3RlIHJ1bXJlbm50LgpBdG96CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6IChGbHVjaHpldWNoLCAgNC4gT2t0IDIwMDEsIDEzOjQyOjQ5KToKV29yYW4gZXJrZW5udCBtYW4gMiB2ZXJsaWVidGUgVHVlcm1lPwpOYSBhbiBkZW4gRmx1Z3pldWdlbiBpbSBCYXVjaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaG90bGluZSAoTXVwZmVsLCAgNS4gT2t0IDIwMDEsIDAwOjUyOjI4KToKKmtsaW5nZWxpbmcqICprbGluZ2VsaW5nKgoKIkhvdGxpbmUuIFdvcnVtIGdlaHQncz8iCgoiQWxzby4uLiBJY2ggbWVpbicgLi4uIGthbm4gbWlyIG1hbCBqZW1hbmQgaGVsZmVuPyBJY2ggbXVzcyBtYWwgV2Fzc2VyCiBsYXNzZW4uIgoKIkhtbW0uLi4gaXN0IGVzIGRyaW5nZW5kPyIKCiJKYSwgaWNoIGhhYiB6aWVtbGljaCBEcnVjay4iCgoiT0suIEhhYmVuIFNpZSBtYWVubmxpY2hlcyBvZGVyIHdlaWJsaWNoZXMgR2VyYWV0PyIKCjxEZW5rcGF1c2U+CiJJY2ggZ2xhdWJlIG1hZW5ubGljaC4iCgoiT0suIFp1ZXJzdCBtdWVzc2VuIHdpciBJaHJlbiBIb3NlbnN0YWxsIGZpbmRlbi4iCgoiSG9zZW5zdGFsbD8iCgoiSmEuIERhIHdvIGRlciBSZWlzc3ZlcnNjaGx1c3MgaXN0LCBkZXIgSWhyZSBIb3NlIG9lZmZuZXQuIEVyIHNvbGx0ZSBhdWYKSWhyZXIKIFZvcmRlcnNlaXRlIHNlaW4uIEJsaWNrZW4gU2llIGJpdHRlIG5hY2ggdW50ZW4uIFdhcyBzZWhlbiBTaWU/IgoKIkljaCBzZWhlIFNjaHVoZS4iCgoiTmVpbi4uLiBzZWhlbiBTaWUgYW4gSWhyZXIgVm9yZGVyc2VpdGUgaGVydW50ZXIuLi4gZGEsIHdvIElocmUgSG9zZQogYmVnaW5udC4gRGEgc29sbHRlbiBTaWUgZXR3YXMgbWV0YWxsaXNjaGVzIHNlaGVuLiBEYXMgaXN0IElociBSZWlzcy0KIHZlcnNjaGx1c3MuIgoKIkRhcyBydW5kZSBEaW5nc2RhPyIKCiJIbSwgZGFzIGlzdCBkZXIgSG9zZW5rbm9wZi4uLiBvZWZmbmVuIFNpZSBkZW4sIHdvIFNpZSBnZXJhZGUgZGFiZWkKIHNpbmQuIERlciBSZWlzc3ZlcnNjaGx1c3Mgc2llaHQgYXVzIHdpZSB2aWVsZSB3aW56aWdlIFphZWhuZSwgZGllCiBpbmVpbmFuZGVyIHZlcmhha3Qgc2luZC4iCgoiT2gsIG9oIGphLi4uIGljaCBoYWIncy4gPHBhdXNlPiBPSywgZXIgaXN0IG9mZmVuLi4uIgoKIkpldHp0IHppZWhlbiBTaWUgZGllIEhvc2UgYmlzIHp1bSBLbmllIG5hY2ggdW50ZW4uIgoKIkhhYiBpY2ggZ2VtYWNodC4iCgoiU2Nob2VuLi4uIEtvZW5uZW4gc2llIElocmVuIFdpbGxpIGFuZmFzc2VuPyIKCiJOZWluLiIKCiJLb2VubmVuIFNpZSBpaG4gc2VoZW4/IgoKIk5laW4uIgoKIk5hIGd1dC4uLiB3YXMgc2VoZW4gU2llIGRhbm4/IgoKIldlaXNzLi4uIG51ciBXZWlzcyBtaXQgZWluIHBhYXIgTGluaWVuLi4uIgoKIkhhYmVuIFNpZSBVbnRlcndhZXNjaGUgaW5zdGFsbGllcnQ/IgoKIk5laW4uIgoKIkVudHNjaHVsZGlnZW4gU2llLCBhYmVyIHdlbm4gU2llIElocmVuIFdpbGxpIG5pY2h0IHNlaGVuIGtvZW5uZW4gdW5kIG51cgogV2Vpc3Mgc2VoZW4sIGRhbm4gaGFiZW4gU2llIHZpZWxsZWljaHQgVW50ZXJ3YWVzY2hlIGluc3RhbGxpZXJ0LiBXaXIKIHdlcmRlbiBkYXMgZGVpbnN0YWxsaWVyZW4gbXVlc3NlbiwgZGFtaXQgc2llIFdhc3NlciBsYXNzZW4ga29lbm5lbi4uLiIKCiJOYSBqYSwgYWxzbyBtZWluZSBGcmV1bmRpbiB3YXIgenVsZXR6dCBhbiBtZWluZW0gUmVpc3N2ZXJzY2hsdXNzLi4uCiB2aWVsbGVpY2h0IGhhdCBzaWUgVW50ZXJ3YWVzY2hlIGluc3RhbGxpZXJ0Li4uIgoKIkFsc28gZ3V0Li4uIGZhc3NlbiBTaWUgZGFzIHdlaXNzZSBEaW5nIGFuIHVuZCB6aWVoZW4gZXMgaGludW50ZXIsIGJpcyBTaWUKIElocmVuIFdpbGxpIHNlaGVuIGtvZW5uZW4uLi4iCgoiRXMgaGFlbmd0IGZlc3QuLi4gZXMgZ2VodCBuaWNodCB3ZWl0ZXIgaGVydW50ZXIuLi4iCgoiV2FzPyBEYXMgd2Vpc3NlIERpbmcgb2RlciBJaHIgV2lsbGk/IgoKIk1laW4gV2lsbGksIG9id29obCBpY2ggZmVzdGUgemllaC4uLiIKCiJIQUxULCBOSUNIVCBaSUVIRU4hIExhc3NlbiBTaWUgSWhyZW4gV2lsbGkgbG9zIHVuZCB6aWVoZW4gc2llIG51ciBkaWUKIFVudGVyd2Flc2NoZSBoaW51bnRlciwgYmlzIFNpZSBJaHJlbiBXaWxsaSBzZWhlbiBrb2VubmVuLi4uIgoKIk9oLi4uIG5hIGphLCBkYXMgd2FlcidzLi4uIgoKIk9LLiBOdW4gc2VoZW4gU2llIHNpY2ggaW0gUmF1bSB1bS4uLiBzZWhlbiBTaWUgaXJnZW5kZXR3YXMgYXVzIFBvcnplbGxhbj8iCgoiSWNoIHNlaGUgbnVyIGVpbmUga2xlaW5lIEthdHplLCBkaWUgYXVmIGVpbmVtIFJlZ2FsIHN0ZWh0Li4uIgoKIk9LLi4uIGRhbm4gc2luZCBTaWUgaW0gV29obnppbW1lci4uLiBHZWhlbiBTaWUgYXVmIGRpZSBUb2lsZXR0ZS4gU2llCiBrb2VubmVuIG51ciBhdWYgZGVyIFRvaWxldHRlIFdhc3NlciBsYXNzZW4uIERpZSBUb2lsZXR0ZSBpc3QgbWVpc3RlbnMKIGdla2FjaGVsdCwgaGF0IGVpbmVuIG9kZXIgbWVocmVyZSBTcGllZ2VsLCB1bmQgU2VpZmUuIE1hbmNoZSBMZXV0ZQogaGFiZW4gZWluZSBEdXNjaGUgb2RlciBCYWRld2FubmUgaW4gZGVtc2VsYmVuIFJhdW0gd2llIGRpZSBUb2lsZXR0ZS4uLiIKCiJKYSwgYWxzby4uLiBkaWUgVG9pbGV0dGUgaXN0IGVpbmUgRXRhZ2UgaG9laGVyLCBnbGF1YmUgaWNoLi4uIgoKIkZlaW4sIGFsc28gZ2VoZW4gd2lyIG5hY2ggb2Jlbi4uLiIKCiJJY2gga2FubiBuaWNodCBnZWhlbi4uLiIKCiJPSy4uLiBpbnN0YWxsaWVyZW4gU2llIHZvcmxhZXVmaWcgd2llZGVyIFVudGVyd2Flc2NoZSB1bmQgZGFubiBkaWUgSG9zZS4uLgogZGFubiBnZWhlbiBTaWUgbmFjaCBvYmVuLi4uIGRhbm4gZGVpbnN0YWxsaWVyZW4gU2llIGJlaWRlcywgdW5kIHp3YXIKIHp1ZXJzdCBkaWUgSG9zZS4uLiIKCiJEaWUgVW50ZXJ3YWVzY2hlIHdhciBkYXMgd2Vpc3NlIERpbmcsIGphPyIKCiJKYXdvaGwsIGRhcyBoYWJlbiBTaWUgZ2FueiByaWNodGlnIHZlcnN0YW5kZW4uLi4iCgo8UGF1c2U+CgoiT0ssIGljaCBiaW4gb2Jlbi4uLiIKCiJHdXQuLi4gc2VoZW4gU2llIHNjaHVlc3NlbGFlaG5saWNoZSBEaW5nZXIgYXVzIFBvcnplbGxhbj8iCgoiSmEsIHp3ZWkuLi4iCgoiV2llIGdyb3NzIHNpbmQgU2llPyIKCiJFaW4gTWV0ZXIgc2VjaHppZy4uLiIKCiJPSy4uLiBnZWhlbiBTaWUgenUgZGVyIFNjaHVlc3NlbCwgZGllIGVjaHQgbmllZHJpZ2VyIGlzdCBhbHMgSWhyIFdpbGxpLi4uIgoKIkFsc28gaWNoIGJpbiBkYS4iCgoiT0suLi4gc2VoZW4gU2llIHp1LCBkYXNzIFNpZSBpbiBSaWNodHVuZyBkZXIgU2NodWVzc2VsIHppZWxlbi4uLiB1bmQKIG1hY2hlbiBTaWUgZWluZmFjaC4uLiIKCiJXYXMgbWVpbmVuIFNpZSBkYW1pdD8iCgoiTmEgamEuLi4gd2VubiBkYXMgRmVuc3RlciBtaXQgIk9LPyIgZXJzY2hlaW50LCBlaW5mYWNoIGFua2xpY2tlbi4uLiIKCi1tdXBmZWwtCihvaywgZGFzIGlzdCBlaW4gUmVwb3N0IHZvbiBlaW5lbSBBcnRpa2VsIHZvbiBCbG9vZHloYXJyeSB2b20gMjEuMi45NiwgbmVobXQncwptaXIgbmljaHQga3J1bW0gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBob3RsaW5lIChIb3VzZWhvbGRlciwgIDUuIE9rdCAyMDAxLCAwMToyMjozOSk6Cn4jISBybj1NdXBmZWwgcnQ9MTAwMjIzNTk0OCByZz13aXR6ZQp+IyEgdGlkPTEwMDIyMzU5NDgKaGVoZSBiZXNzYSBzbyBlaW5hIDJtYWwgOi0pIApISCAoc2ljaCBoYWxiIGJlcGlzc2VuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBlY2ggZ2VoYWJ0IC0ga2VpbiBEYXJ3aW4gQXdhcmQgKE1hdGlzLCAxMC4gT2t0IDIwMDEsIDE1OjI2OjU0KToKPiBUaGlzIGlzIGFuIGFjY2lkZW50IHJlcG9ydCwgd2hpY2ggd2FzIHByaW50ZWQgaW4gdGhlIG5ld3NsZXR0ZXIgb2YgdGhlCj4gQnJpdGlzaCBlcXVpdmFsZW50IG9mIHRoZSBXb3JrZXJzJyBjb21wZW5zYXRpb24gQm9hcmQuICBUaGlzIGlzIHRoZQo+IGJyaWNrbGF5ZXIncyByZXBvcnQsIGEgdHJ1ZSBzdG9yeS4gIEhhZCB0aGlzIGd1eSBkaWVkLCBoZSdkIGhhdmUgd2Fsa2VkCj4gYXdheSB3aXRoIGEgRGFyd2luIEF3YXJkIGZvciBzdXJlIQo+IAo+IERlYXIgU2lyOgo+IEkgYW0gd3JpdGluZyBpbiByZXNwb25zZSB0byB5b3VyIHJlcXVlc3QgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4KPiBCbG9jayAjMyBvZiB0aGUgYWNjaWRlbnQgcmVwb3J0IGZvcm0uICBJIHB1dCAiUG9vciBQbGFubmluZyIgYXMgdGhlIGNhdXNlCj4gb2YgbXkgYWNjaWRlbnQuICBZb3UgYXNrZWQgZm9yIGEgZnVsbGVyIGV4cGxhbmF0aW9uIGFuZCBJIHRydXN0IHRoZQo+IGZvbGxvd2luZyBkZXRhaWxzIHdpbGwgYmUgc3VmZmljaWVudC4KPiBJIGFtIGEgYnJpY2tsYXllciBieSB0cmFkZS4gIE9uIHRoZSBkYXkgb2YgdGhlIGFjY2lkZW50LCBJIHdhcyB3b3JraW5nCj4gYWxvbmUgb24gdGhlIHJvb2Ygb2YgYSBuZXcgc2l4LXN0b3J5IGJ1aWxkaW5nLiAgV2hlbiBJIGNvbXBsZXRlZCBteSB3b3JrLAo+IEkgZm91bmQgSSBoYWQgc29tZSBicmlja3MgbGVmdCBvdmVyIHdoaWNoLCB3aGVuIHdlaWdoZWQgbGF0ZXIgd2VyZSBmb3VuZAo+IHRvIGJlIHNsaWdodGx5IGluIGV4Y2VzcyBvZiA1MDBsYnMuICBSYXRoZXIgdGhhbiBjYXJyeSB0aGUgYnJpY2tzIGRvd24gYnkKPiBoYW5kLCBJIGRlY2lkZWQgdG8gbG93ZXIgdGhlbSBpbiBhIGJhcnJlbCBieSB1c2luZyBhIHB1bGxleSwgd2hpY2ggd2FzCj4gYXR0YWNoZWQgdG8gdGhlIHNpZGUgb2YgdGhlIGJ1aWxkaW5nIGF0IHRoZSBzaXh0aCBmbG9vci4gU2VjdXJpbmcgdGhlIHJvcGUKPiBhdCBncm91bmQgbGV2ZWwsIEkgd2VudCB1cCB0byB0aGUgcm9vZiwgc3d1bmcgdGhlIGJhcnJlbCBvdXQgYW5kIGxvYWRlZAo+IHRoZSBicmlja3MgaW50byBpdC4gIFRoZW4gSSB3ZW50IGRvd24gYW5kIHVudGllZCB0aGUgcm9wZSwgaG9sZGluZyBpdAo+IHRpZ2h0bHkgdG8gZW5zdXJlIGEgc2xvdyBkZXNjZW50IG9mIHRoZSBicmlja3MuCj4gWW91IHdpbGwgbm90ZSBpbiBibG9jayAjMTEgb2YgdGhlIGFjY2lkZW50IHJlcG9ydCBmb3JtIHRoYXQgbXkgd2VpZ2h0IGlzCj4gMTM1IGxicy4gIER1ZSB0byBteSBzdXJwcmlzZSBhdCBiZWluZyBqZXJrZWQgb2ZmIHRoZSBncm91bmQgc28gc3VkZGVubHksIEkKPiBsb3N0IG15IHByZXNlbmNlIG9mIG1pbmQgYW5kIGZvcmdvdCB0byBsZXQgZ28gb2YgdGhlIHJvcGUuIE5lZWRsZXNzIHRvCj4gc2F5LCBJIHByb2NlZWRlZCBhdCBhIHJhcGlkIHJhdGUgdXAgdGhlIHNpZGUgb2YgdGhlIGJ1aWxkaW5nLiAgSW4gdGhlCj4gdmljaW5pdHkgb2YgdGhlIHRoaXJkIGZsb29yLCBJIG1ldCB0aGUgYmFycmVsIHdoaWNoIHdhcyBub3cgIHByb2NlZWRpbmcKPiBkb3dud2FyZCBhdCBhbiBlcXVhbGx5IGltcHJlc3NpdmUgc3BlZWQuICBUaGlzIGV4cGxhaW5zIHRoZSBmcmFjdHVyZWQKPiBza3VsbCwgbWlub3IgYWJyYXNpb25zIGFuZCB0aGUgYnJva2VuIGNvbGxhcmJvbmUsIGFzIGxpc3RlZCBpbiBTZWN0aW9uIDMKPiBvZiB0aGUgYWNjaWRlbnQgcmVwb3J0IGZvcm0uCj4gU2xvd2VkIG9ubHkgc2xpZ2h0bHksIEkgY29udGludWVkIG15IHJhcGlkIGFzY2VudCwgbm90IHN0b3BwaW5nIHVudGlsIHRoZQo+IGZpbmdlcnMgb2YgbXkgcmlnaHQgaGFuZCB3ZXJlIHR3byBrbnVja2xlcyBkZWVwIGludG8gdGhlIHB1bGxleS4KPiBGb3J0dW5hdGVseSBieSB0aGlzIHRpbWUgSSBoYWQgcmVnYWluZWQgbXkgcHJlc2VuY2Ugb2YgbWluZCBhbmQgd2FzIGFibGUKPiB0byBob2xkIHRpZ2h0bHkgdG8gdGhlIHJvcGUsIGluIHNwaXRlIG9mIHRoZSBleGNydWNpYXRpbmcgcGFpbiBJIHdhcyBub3cKPiBiZWdpbm5pbmcgdG8gZXhwZXJpZW5jZS4KPiBBdCBhcHByb3hpbWF0ZWx5IHRoZSBzYW1lIHRpbWUsIGhvd2V2ZXIsIHRoZSBiYXJyZWwgb2YgYnJpY2tzIGhpdCB0aGUKPiBncm91bmQgYW5kIHRoZSBib3R0b20gZmVsbCBvdXQgb2YgdGhlIGJhcnJlbC4gIE5vdyBkZXZvaWQgb2YgdGhlIHdlaWdodCBvZgo+IHRoZSBicmlja3MsIHRoYXQgYmFycmVsIHdlaWdoZWQgYXBwcm94aW1hdGVseSA1MCBsYnMuICBJIHJlZmVyIHlvdSBhZ2Fpbgo+IHRvIG15IHdlaWdodC4gIEFzIHlvdSBtaWdodCBpbWFnaW5lLCBJIGJlZ2FuIGEgcmFwaWQgZGVzY2VudCBkb3duIHRoZSBzaWRlCj4gb2YgdGhlIGJ1aWxkaW5nLiAgSW4gdGhlIHZpY2luaXR5IG9mIHRoZSB0aGlyZCBmbG9vciwgSSBtZXQgdGhlIGJhcnJlbAo+IGNvbWluZyB1cC4gIFRoaXMgYWNjb3VudHMgZm9yIHRoZSB0d28gZnJhY3R1cmVkIGFua2xlcywgYnJva2VuIHRvb3RoIGFuZAo+IHNldmVyZSBsYWNlcmF0aW9ucyBvZiBteSBsZWdzIGFuZCBsb3dlciBib2R5Lgo+IEhlcmUgbXkgbHVjayBiZWdhbiB0byBjaGFuZ2Ugc2xpZ2h0bHkuICBUaGUgZW5jb3VudGVyIHdpdGggdGhlIGJhcnJlbAo+IHNlZW1lZCB0byBzbG93IG1lIGVub3VnaCB0byBsZXNzZW4gbXkgaW5qdXJpZXMgd2hlbiBJIGZlbGwgaW50byB0aGUgcGlsZQo+IG9mIGJyaWNrcyBhbmQgZm9ydHVuYXRlbHkgb25seSB0aHJlZSB2ZXJ0ZWJyYWUgd2VyZSBjcmFja2VkLiAKPiBJIGFtIHNvcnJ5IHRvIHJlcG9ydCwgaG93ZXZlciwgYXMgSSBsYXkgdGhlcmUgb24gdGhlIHBpbGUgb2YgYnJpY2tzLCBpbgo+IHBhaW4sIHVuYWJsZSB0byBtb3ZlLCBJIGFnYWluIGxvc3QgbXkgY29tcG9zdXJlIGFuZCBwcmVzZW5jZSBvZiBtaW5kIGFuZAo+IGxldCBnbyBvZiB0aGUgcm9wZSBhbmQgSSBsYXkgdGhlcmUgd2F0Y2hpbmcgdGhlIGVtcHR5IGJhcnJlbCBiZWdpbiBpdHMKPiBqb3VybmV5IGJhY2sgb250byBtZS4gIFRoaXMgZXhwbGFpbnMgdGhlIHR3byBicm9rZW4gbGVncy4KPiBDYXJsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGVjaCBnZWhhYnQgLSBrZWluIERhcndpbiBBd2FyZCAoR3JpbW1ib3JuLCAxMC4gT2t0IDIwMDEsIDE1OjU3OjQwKToKfiMhIHJuPU1hdGlzIHJ0PTEwMDI3MjA0MTQgcmc9d2l0emUKfiMhIHRpZD0xMDAyNzIwNDE0CkRhcyBoYWx0ZSBpY2ggZnVlciBlaW5lIExlZ2VuZGUuIFp1IGRlciBTdG9yeSBnaWJ0cyBlaW4uLi4gR2VkaWNodCwgZGFzCmlyZ2VuZHdhbm4gaW4gbWVpbmVtIEVuZ2xpc2NoYnVjaCBzdGFuZC4gVW5kIGRpZSBEdWJsaW5lcnMgKGtlbm50IGRpZQpoZXV0enV0YWdlIG5vY2ggd2VyPykgaGFiZW4gdW50ZXIgZGVtIFRpdGVsICJUaGUgU2ljayBOb3RlIiBlaW5lbiBTb25nIGRyYXVzCmdlbWFjaHQ6CgpEaXIgU2lyIEkgd3JpdGUgdGhpcyBub3RlIHRvIHlvdQp0byB0ZWxsIHlvdSBvZiBteSBmYXRlCmZvciBhdCB0aGUgdGltZSBvZiB3cml0aW5nCkkgYW0gbm90IGEgcHJldHR5IHNpZ2h0Ck1lIGJvZHkgaXMgYWxsIGJsYWNrIGFuZCBibHVlCk1lIGZhY2UgaXMgZGVhZGx5IGdyZXkKQW5kIEkgd3JpdGUgdGhpcyBub3RlIHRvIHNheQpXaHkgUGFkZHkncyBub3QgYXQgd29yayB0b2RheS4KCldoaWxlIHdvcmtpbmcgb24gdGhlIGZvdXJ0ZWVudGggZmxvb3IKU29tZSBicmlja3MgSSBoYWQgdG8gY2xlYXIKTm93IHRvIHRocm93IHRoZW0gZG93biBmcm9tIHN1Y2ggYSBoZWlnaHQKV2FzIG5vdCBhIGdvb2QgaWRlYQpUaGUgZm9yZW1hbiB3YXNuJ3QgdmVyeSBwbGVhc2VkCkhlJ3MgYmVlbiBkbyBhd2t3YXJkIHNhZApIZSBzYWlkIEkgaGFkIHRvIGNhcnJ5IHRoZW0gZG93bgpUaGUgbGFkZGVycyBpbiBtZSBoYXQuCgpOb3csIGNsZWFyaW5nIGFsbCB0aGVzZSBicmlja3MgYnkgaGFuZApJdCB3YXMgc28gdmVyeSBzbG93LgpTbyBJIGhvaXN0ZWQgdXAgYSBiYXJyZWwgCkFuZCBzZWN1cmVkIHRoZSByb3BlIGJlbG93LgpCdXQgaW4gbWUgaGVhdCB0byBkbyB0aGUgam9iCkkgd2FzIHRvbyBibGluZCB0byBzZWUKVGhhdCBhIGJhcnJlbCBmdWxsIG9mIGJ1aWxkaW5nIGJyaWNrcwpJcyBoZWF2aWVyIHRoYW4gbWUuCgpTbyB3aGVuIEkgdW50aWVkIHRoZSByb3BlIApUaGUgYmFycmVsIGZlbGwgbGlrZSBsZWFkCkFuZCBjbGluZ2luZyB0aWdodGx5IHRvIHRoZSByb3BlCkkgc3RhcnRlZCB1cCBpbnN0ZWFkCldlbGwgSSBzaG90IHVwIGxpa2UgYSByb2NrZXQKJ3RpbCB0byBteSBkaXNtYXkgSSBmb3VuZApUaGF0IGhhbGYgd2F5IHVwIEkgbWV0IHRoZSBibG9vZHkgYmFycmVsCkNvbWluZyBkb3duLgoKVW5kc293ZWl0ZXIuIENvb2wsIGRlbiBTb25nIGhhYiBpY2ggdm9yIGxvY2tlciB6d2VpIEphaHJlbiB6dWxldHp0IGdlaG9lcnQgdW5kCmthbm4gaWhuIGltbWVyIG5vY2ggaW0gd2VzZW50bGljaGVuIGF1c3dlbmRpZy4gV2VubiBpaHIgZHJhbmtvbW10OiBEdWJsaW5lcnMsClRoZSBTaWNrIE5vdGUuIExvaG50IHNpY2guCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUGVjaCBnZWhhYnQgLSBrZWluIERhcndpbiBBd2FyZCAoQW5hdG9sLCAxMC4gT2t0IDIwMDEsIDE1OjU5OjE0KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDAyNzIyMjYwIHJnPXdpdHplCn4jISB0aWQ9MTAwMjcyMDQxNApLZW5uaWNoaGFiaWNoaXJnZW5kd29hbHNtcDNsaWVnZW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBQZWNoIGdlaGFidCAtIGtlaW4gRGFyd2luIEF3YXJkIChBbnRoZWEsIDExLiBPa3QgMjAwMSwgMTA6MjQ6MzgpOgp+IyEgcm49QW5hdG9sIHJ0PTEwMDI3MjIzNTQgcmc9d2l0emUKfiMhIHRpZD0xMDAyNzIwNDE0ClRqYS4uLiBVbmQgZGFubiBnaWJ0IGVzIGRhcyBnbGVpY2hlIG5vY2ggdW50ZXIgZGVtIFRpdGVsICJXaHkgUGFkZHkncyBub3QgYXQKd29yayB0b2RheS4gIgpVbmQgZGFzIGlzdCB2b24gUGF0IENvb2tzZXkuIE5pY2h0IGFsbGVzLCB3YXMgZGllIER1YmxpbmVycyBtYWwgc2luZ2VuLCBoYWJlbgpzaWUgYXVjaCBzZWxic3QgZ2VzY2hyaWViZW4uIDopCldoeSBQYWRkeSdzIE5vdCBBdCBXb3JrIChFeGN1c2UgTm90ZSkKKFBhdCBDb29rc2V5KQoKRGVhciBTaXIgSSB3cml0ZSB0aGlzIG5vdGUgdG8gaW5mb3JtIHlvdSBvZiBteSBwbGlnaHQKQW5kIGF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgSSBhbSBub3QgYSBwcmV0dHkgc2lnaHQKTXkgYm9keSBpcyBhbGwgYmxhY2sgYW5kIGJsdWUsIG15IGZhY2UgYSBkZWF0aGx5IGdyYXkKSSB3cml0ZSB0aGlzIG5vdGUgdG8gdGVsbCB3aHkgUGFkZHkncyBub3QgYXQgd29yayB0b2RheQoKV2hpbGUgd29ya2luZyBvbiB0aGUgZm91cnRlZW50aCBmbG9vciwgc29tZSBicmlja3MgSSBoYWQgdG8gY2xlYXIKQW5kIHRvIHRocm93IHRoZW0gZG93biBmcm9tIG9mZiB0aGUgdG9wIHNlZW1lZCBxdWl0ZSBhIGdvb2QgaWRlYQpCdXQgdGhlIGdhZmZlciB3YXNuJ3QgdmVyeSBwbGVhc2VkLCBoZSB3YXMgYW4gYXdmdWwgc29kCkhlIHNhaWQgSSBoYWQgdG8gY2FydCB0aGVtIGRvd24gdGhlIGxhZGRlciBpbiBtZSBob2QuCgpXZWxsIGNsZWFyaW5nIGFsbCB0aG9zZSBicmlja3MgYnkgaGFuZCwgaXQgc2VlbWVkIHNvIHZlcnkgc2xvdwpTbyBJIGhvaXN0ZWQgdXAgYSBiYXJyZWwgYW5kIHNlY3VyZWQgdGhlIHJvcGUgYmVsb3cKQnV0IGluIG15IGhhc3RlIHRvIGRvIHRoZSBqb2IsIEkgd2FzIHRvbyBibGluZCB0byBzZWUKVGhhdCBhIGJhcnJlbCBmdWxsIG9mIGJ1aWxkaW5nIGJyaWNrcyBpcyBoZWF2aWVyIHRoYW4gbWUuCgpTbyB3aGVuIEkgaGFkIHVudGllZCB0aGUgcm9wZSwgdGhlIGJhcnJlbCBmZWxsIGxpa2UgbGVhZApBbmQgY2xpbmdpbmcgdGlnaHRseSB0byB0aGUgcm9wZSBJIHN0YXJ0ZWQgdXAgaW5zdGVhZApJIHRvb2sgb2ZmIGxpa2UgYSByb2NrZXQgYW5kIHRvIG15IGRpc21heSBJIGZvdW5kClRoYXQgaGFsZiB3YXkgdXAgSSBtZXQgdGhlIGJsb29keSBiYXJyZWwgY29taW5nIGRvd24uCgpXZWxsIHRoZSBiYXJyZWwgYnJva2UgbXkgc2hvdWxkZXIgYXMgb24gdG8gdGhlIGdyb3VuZCBpdCBzcGVkCkFuZCB3aGVuIEkgcmVhY2hlZCB0aGUgdG9wIEkgYmFuZ2VkIHRoZSBwdWxsZXkgd2l0aCBtZSBoZWFkCkkgaGVsZCBvbiB0aWdodCwgdGhvdWdoIG51bWIgd2l0aCBzaG9jayBmcm9tIHRoaXMgYWxtaWdodHkgYmxvdwpBbmQgdGhlIGJhcnJlbCBzcGlsbGVkIG91dCBoYWxmIGl0cyBsb2FkIGZvdXJ0ZWVuIGZsb29ycyBiZWxvdwoKTm93IHdoZW4gdGhvc2UgYnVpbGRpbmcgYnJpY2tzIGZlbGwgZnJvbSB0aGUgYmFycmVsIHRvIHRoZSBmbG9vcgpJIHRoZW4gb3V0d2VpZ2hlZCB0aGUgYmFycmVsIHNvIEkgc3RhcnRlZCBkb3duIG9uY2UgbW9yZQpJIGhlbGQgb24gdGlnaHRseSB0byB0aGUgcm9wZSBhcyBJIGZsZXcgdG8gdGhlIGdyb3VuZApBbmQgSSBsYW5kZWQgb24gdGhvc2UgYnVpbGRpbmcgYnJpY2tzIHRoYXQgd2VyZSBzY2F0dGVyZWQgYWxsCiAgICAgYXJvdW5kLgoKTm93IGFzIEkgbGF5IHRoZXJlIG9uIHRoZSBkZWNrIEkgdGhvdWdodCBJJ2QgcGFzc2VkIHRoZSB3b3JzdApCdXQgd2hlbiB0aGUgYmFycmVsIHJlYWNoZWQgdGhlIHRvcCwgdGhhdCdzIHdoZW4gdGhlIGJvdHRvbSBidXJzdApBIHNob3dlciBvZiBicmlja3MgY2FtZSBkb3duIG9uIG1lLCBJIGtuZXcgSSBoYWQgbm8gaG9wZQpJbiBhbGwgb2YgdGhpcyBjb25mdXNpb24sIEkgbGV0IGdvIHRoZSBibG9vZHkgcm9wZS4KClRoZSBiYXJyZWwgYmVpbmcgaGVhdmllciwgaXQgc3RhcnRlZCBkb3duIG9uY2UgbW9yZQpBbmQgbGFuZGVkIHJpZ2h0IG9uIHRvcCBvZiBtZSBhcyBJIGxheSBvbiB0aGUgZmxvb3IKSXQgYnJva2UgdGhyZWUgcmlicyBhbmQgbXkgbGVmdCBhcm0sIGFuZCBJIGNhbiBvbmx5IHNheQpUaGF0IEkgaG9wZSB5b3UnbGwgdW5kZXJzdGFuZCB3aHkgUGFkZHkncyBub3QgYXQgd29yayB0b2RheS4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFBlY2ggZ2VoYWJ0IC0ga2VpbiBEYXJ3aW4gQXdhcmQgKE11YWRpYiwgMTEuIE9rdCAyMDAxLCAxMDo1MzowNSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAwMjcyMjI2MCByZz13aXR6ZQp+IyEgdGlkPTEwMDI3MjA0MTQKc2Nob2VuZXIgc29uZywgbG9obnQgc2ljaCB3ZW5uIGRpZSBndXRlbiBzZW5pb3JlbiBpaG4gYW0gZW5kZSBkZXIKYnVlaG5lbnZvcnN0ZWxsdW5nIG1pdCB2aWVsIHdoaXNrZXkgaW50dXMgc3BpZWxlbi4gYmxvc3MgZGllIGFydGlrdWxhdGlvbgpsYWVzc3QgZGFubiBoYWx0IG5hY2ggOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUGVjaCBnZWhhYnQgLSBrZWluIERhcndpbiBBd2FyZCAoR25vbWUsIDEyLiBPa3QgMjAwMSwgMTk6Mjk6MDEpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwMDI3MjIyNjAgcmc9d2l0emUKfiMhIHRpZD0xMDAyNzIwNDE0CmRhcyBnYW56ZSBnYWJzIGF1Y2ggbWFsIGluIGVpbmVtIHBoeXNpa2J1Y2ggYWxzIHZvcndvcnQgbWl0IGRlcgp1ZWJlcnNjaHJpZnQ6ICJhbnN0YXR0IGVpbmVzIHZvcndvcnRlcyAtIG9kZXIgd2FydW0gcGh5c2lrIHdpY2h0aWcgaXN0IiwKYWxsZXJkaW5ncyBhdWYgZGV1dHNjaC4Kd2Vzc2VuIHRleHQgamV0enQgYWVsdGVyIGlzdCB3ZWlzcyBpY2ggbmljaHQuCgpnbk9tZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZm9ydHVuZS1ncmFiYmluZyAoV2hpdGV0aWdlciwgMTguIE9rdCAyMDAxLCAxODoxNjoxOSk6CiAgICAgICAgICAgICAgICBHaW1taWUgVGhhdCBPbGQgVGltZSBSZWxpZ2lvbgpXZSB3aWxsIGZvbGxvdyBaYXJhdGh1c3RyYSwgICAgICAgICAgICAgV2Ugd2lsbCB3b3JzaGlwIGxpa2UgdGhlIERydWlkcywKWmFyYXRodXN0cmEgbGlrZSB3ZSB1c2UgdG8sICAgICAgICAgICAgIERhbmNpbmcgbmFrZWQgaW4gdGhlIHdvb2RzLApJJ20gYSBaYXJhdGh1c3RyYSBib29zdGVyLCAgICAgICAgICAgICAgRHJpbmtpbmcgc3RyYW5nZSBmZXJtZW50ZWQgZmx1aWRzLApBbmQgaGUncyBnb29kIGVub3VnaCBmb3IgbWUhICAgICAgICAgICAgQW5kIGl0J3MgZ29vZCBlbm91Z2ggZm9yIG1lIQogICAgICAgIChjaG9ydXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hvcnVzKQoKSW4gdGhlIGNodXJjaCBvZiBBcGhyb2RpdGUsClRoZSBwcmllc3Rlc3Mgd2VhcnMgYSBzZWUtdGhyb3VnaCBuaWdodGllLApTaGUncyBhIG1pZ2h0eSByaWdodGVvdXMgc2lnaHRpZSwKQW5kIHNoZSdzIGdvb2QgZW5vdWdoIGZvciBtZSEKICAgICAgICAoY2hvcnVzKQoKQ0hPUlVTOiBHaXZlIG1lIHRoYXQgb2xkIHRpbWUgcmVsaWdpb24sCiAgICAgICAgR2l2ZSBtZSB0aGF0IG9sZCB0aW1lIHJlbGlnaW9uLAogICAgICAgIEdpdmUgbWUgdGhhdCBvbGQgdGltZSByZWxpZ2lvbiwKICAgICAgICAnQ2F1c2UgaXQncyBnb29kIGVub3VnaCBmb3IgbWUhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS3VyeiBnZWxhY2h0Li4uIChDYXR3ZWF6bGUsIDMwLiBPa3QgMjAwMSwgMDg6MzE6MzApOgoKaHR0cDovL3d3dy42bGguZGUvaW1hZ2VzL0FtdDcuanBnCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLdXJ6IGdlbGFjaHQuLi4gKEhvYm8sIDMwLiBPa3QgMjAwMSwgMTI6Mzk6NTYpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTEwMDQ0MjcwOTAgcmc9d2l0emUKfiMhIHRpZD0xMDA0NDI3MDkwCkFsdCwgYWJlciBpbW1lciBub2NoIGd1dC4KCkVpbmUgU2FtbWx1bmcgZ2VuYXUgc29sY2hlciBTYWNoZW4gZW50aGFlbHQgenVtIEJlaXNwaWVsIGRhcyBCdWNoOgoiRXMgZmFlbmd0IGRhbWl0IGFuLCBkYXNzIGRlciBQdW5rdCBmZWhsdCJbRAoKICAgSG9ibyAtIG1hZyBzb2xjaGUgU2FjaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEt1cnogZ2VsYWNodC4uLiAoVHJveSwgMzAuIE9rdCAyMDAxLCAxNToxODowNik6Cn4jISBybj1Ib2JvIHJ0PTEwMDQ0NDE5OTYgcmc9d2l0emUKfiMhIHRpZD0xMDA0NDI3MDkwCkhleSwgZGFzIGtlbm4gaWNoISBEYXMgaXN0IHZvbSBkdHYtVmVybGFnIHVuZCBoZWlzc3QKIkVzIGZhZW5ndCBkYW1pdCBhbiwgZGFzcyBhbSBFbmRlIGRlciBQdW5rdCBmZWhsdCIgdW5kIGVudGhhZWx0IHNvCktsYXNzaWtlciB3aWU6CkF1ZnNhdHogTnIuIDQ6IERpZSBLdWgKRGllIEt1aCBpc3QgZWluIHdpY2h0aWdlciBCZXN0YW5kdGVpbCB1bnNlcmVyIE5haHJ1bmcuIFNpZSB3aXJkIGdlZ2Vzc2VuIHVuZApnZXRydW5rZW4uCgpUcm95CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLdXJ6IGdlbGFjaHQuLi4gKE11cGZlbCwgMzAuIE9rdCAyMDAxLCAyMToxNTo1NCk6Cn4jISBybj1Ucm95IHJ0PTEwMDQ0NTE0ODYgcmc9d2l0emUKfiMhIHRpZD0xMDA0NDI3MDkwCi4uLnVuZCBhbSBVZmVyIHNhc3MgZGllIE1hZ2QgdW5kIG1lbGt0ZSBkaWUgS3VoLiBJbSBXYXNzZXIgYWJlciB3YXIgZXMKdW1nZWtlaHJ0Li4uCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogS3VyeiBnZWxhY2h0Li4uIChLYXJ0b2ZmZWwsICAxLiBOb3YgMjAwMSwgMTk6MzM6MzkpOgp+IyEgcm49TXVwZmVsIHJ0PTEwMDQ0NzI5NTQgcmc9d2l0emUKfiMhIHRpZD0xMDA0NDI3MDkwCgoiSGllcm1pdCBtb2VjaHRlIGljaCB1bnNlcmVuIFNvaG4gYW0gLi4uIGVudHNjaHVsZGlnZW4uIERhcyBTY2h3ZWluIHdpcmQKZ2VzY2hsYWNodGV0LiIgCgonVG9mZmVsIC0ga2VubnRzIGF1Y2ggOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFjaHR1bmchIChNdWFkZGliLCAxNS4gTm92IDIwMDEsIDIyOjQ3OjEzKToKPlllc3RlcmRheSBteSBBdW50J3MgZnJpZW5kJ3MgZGF1Z2h0ZXIgd2FzIG9uIHRoZSB0cmFpbiB0cmF2ZWxpbmcgZnJvbQo+Qm9zdG9uIHRvIFBoaWxhZGVscGhpYS4gIEEgbWFuIG9mIEFyYWJpYyBhcHBlYXJhbmNlIGdvdCBvZmYgdGhlIHRyYWluLAo+YW5kIHNoZSBub3RpY2VkIHRoYXQgaGUgaGFkIGxlZnQgaGlzIGJhZyBiZWhpbmQuICBTaGUgZ3JhYmJlZCB0aGUgYmFnCj5hbmQgcmFuIGFmdGVyIGhpbSwgY2F1Z2h0IHVwIHdpdGggaGltIGF0IHRoZSB0b3Agb2YgdGhlIHN0YWlycywgYW5kCj5oYW5kZWQgaGltIGJhY2sgaGlzIGJhZy4KPgo+SGUgd2FzIGV4dHJlbWVseSBncmF0ZWZ1bCBhbmQgcmVhY2hlZCBpbnRvIGhpcyBiYWcsIHdoaWNoIGFwcGVhcmVkCj50byBjb250YWluIGxhcmdlIGJ1bmRsZXMgb2YgY2FzaC4gIEhlIG9mZmVyZWQgaGVyIGEgcmV3YXJkLCBidXQgc2hlCj5yZWZ1c2VkLgo+Cj5TbyB0aGUgbWFuIGxvb2tlZCBhcm91bmQsIG1hZGUgc3VyZSBub2JvZHkgd2FzIGxvb2tpbmcsIGFuZCB3aGlzcGVyZWQKPnRvIGhlcjogIkkgY2FuIG5ldmVyIHJlcGF5IHlvdXIga2luZG5lc3MsIGJ1dCBJIHdpbGwgdHJ5IHRvLCB3aXRoIGEgd29yZAo+b2YgYWR2aWNlIGZvciB5b3UuIgo+Cj4iU3RheSBhd2F5IGZyb20gVGhlIEhhcmQgUm9jayBDYWZlLiIKPgo+U2hlIHdhcyB0ZXJyaWZpZWQuICAiSXMgdGhlcmUgZ29pbmcgdG8gYmUgYW4gYXR0YWNrPyIgIHNoZSB3aGlzcGVyZWQuCj4KPiJObywiIGhlIHdoaXNwZXJlZCBiYWNrLCAiSSB3ZW50IHRoZXJlIHllc3RlcmRheSBldmVuaW5nIC0tIHRoZSBmb29kCj53YXMgc2hpdHR5IGFuZCB0aGUgd2FpdHJlc3Mgd2FzIGZ1Y2tpbmcgcnVkZS4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaGluZXNpc2NoIGZ1ZXIgQW1lcmlrYW5lciAoQW5mYWVuZ2Vya3VycykgKE9ya3RvZXRlciwgMjAuIE5vdiAyMDAxLCAyMjo1Njo1Nik6Clp3YXIgZ2VrbGF1dCwgYWJlciB3aWUgaWNoIGZpbmRlIHRyb3R6ZGVtIGd1dDoKCiAgMS4gIFRoYXQncyBub3QgcmlnaHQgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiBTdW0gVGluZyBXb25nCiAgMi4gIEFyZSB5b3UgaGFyYm9yaW5nIGEgZnVnaXRpdmU/Li4uLi4gSHUgWXUgSGFpIERpbmcKICAzLiAgU2VlIG1lIEFTQVAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5LdW0gSGlhIE5hbwogIDQuICBTdHVwaWQgTWFuIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLkR1bSBHYWkKICA1LiAgU21hbGwgSG9yc2UgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5UYWkgTmkgUG8gTmkKICA2LiAgRGlkIHlvdSBnbyB0byB0aGUgYmVhY2g/IC4uLi4uLi4uLldhaSBZdSBTbyBUYW4KICA3LiAgSSBidW1wZWQgaW50byBhIGNvZmZlZSB0YWJsZSAuLi4uLkFpIEJhbmcgTWFpIE5pCiAgOC4gIEkgdGhpbmsgeW91IG5lZWQgYSBmYWNlIGxpZnQgLi4uLi4uLi5DaGluIFR1IEZhdAogIDkuICBJdCdzIHZlcnkgZGFyayBpbiBoZXJlIC4uLi4uLi4uLi4uLi4uLi5XYW8gU28gRGltCiAgMTAuICBJIHRob3VnaHQgeW91IHdlcmUgb24gYSBkaWV0IC4uLi4uV2FpIFl1IE11biBDaGluZz8KICAxMS4gIFRoaXMgaXMgYSB0b3cgYXdheSB6b25lIC4uLi4uLi4uLi4uLk5vIFBhaCBLaW5nCiAgMTIuICBPdXIgbWVldGluZyBpcyBzY2hlZHVsZWQgZm9yIG5leHQgd2Vlay4uLi5XYWkgWXUgS3VtIE5hbz8KICAxMy4gICBTdGF5aW5nIG91dCBvZiBzaWdodCAuLi4uLi4uLi4uLi4uLi4uLi4uLkxlaSBZaW5nIExvCiAgMTQuICBIZSdzIGNsZWFuaW5nIGhpcyBhdXRvbW9iaWxlIC4uLi4uLldhIFNoaW5nIEthCiAgMTUuICBZb3VyIGJvZHkgb2RvciBpcyBvZmZlbnNpdmUgLi4uLi4uWXUgU3RpbiBLaSBQdSAgICAgCgoKT3JrVCwgbm9jaCBsYWNoZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQVUhIChLcmVsbGphLCAyNi4gTm92IDIwMDEsIDE0OjAyOjIxKToKTW9pbiwKCmhhYiBhdWNoIG5vY2ggZWluZW4genUgZGVuICJMYWllbmhhZnRlbiBOb2NrZW4iLiBIYWIgZWJlbiBlaW5lIHNjaG9lbmUgTWFpbAptaXQgZGVtIGZvbGdlbmRlbiBUaXRlbCBiZWtvbW1lbjoKClVuc2VyZSBob3JuaWdlbiBNYWVkY2hlbiBhdWYgWmVpbGUgZGllc2UgTmFjaHQKCkRhIG11c3N0ZSBpY2ggZXJzdG1hbCAyKiBuYWNoZGVua2VuIHVtIGRhcyB1ZWJlcmhhdXB0IHp1IHZlcnN0ZWhlbiA6KQoKS3JlbGxqYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFVISAoU2Nod3ViYmVsLCAyNi4gTm92IDIwMDEsIDIyOjM1OjQxKToKfiMhIHJuPUtyZWxsamEgcnQ9MTAwNjc3OTc0MSByZz13aXR6ZQp+IyEgdGlkPTEwMDY3Nzk3NDEKSG9ybmlnZSBNYWVkY2hlbj8KCkRhdCBzaW5kIGhvcm55IGdpcmxzLiBob3JueSA9IFp1c3RhbmQsIGluIGRlbSBlaW4gTWFubiBlaW5lbiBIdXQgYXVmaGFlbmdlbgprYW5uLCBvaG5lIGVpbmVuIEh1dHN0YWVuZGVyIHp1IGJlbm9ldGlnZW4uCgpTY2h3dWJiZWwgbm9ja3Qgb3V0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWthYmVyIChEZWVwYmx1ZSwgMjcuIE5vdiAyMDAxLCAxNDo0MjoyNSk6CldpciBzY2hyZWliZW4gZGFzIEphaHIgMjAzMC4gRWluIFZhdGVyIHNwYXppZXJ0IG1pdCBzZWluZW0gU29obiBkdXJjaCBOZXcgWW9yawp1bmQga29tbWVuIGFuIGVpbmVtIERlbmttYWwgdm9yYmVpLgoKU29objogIlBhcGksIHdhcyBpc3QgZGVubiBkYXM/IgpWYXRlcjogIkRhcyBpc3QgZWluIERlbmttYWwgZnVlciBkaWUgTGV1dGUsIGRpZSBiZWkgZGVtIFRlcnJvcmFuc2NobGFnIGRlcgpBcmFiZXIgaW0gSmFocmUgMjAwMSBnZXRvZXRldCB3dXJkZW4uIgpLdXJ6ZXMgU2Nod2VpZ2VuLCBkYW5hY2ggIlBhcGEsIHdhcyBzaW5kIEFyYWJlcj8iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW1tZXIgYXVmIGVpbmVuIEF1c2dhbmcga2xpY2tlbiAoTGluZmxhcywgMjkuIE5vdiAyMDAxLCAxNTozOTozOSk6ClNwYXNzIGltIEdsYXM6Cgp3d3cudGF6LmRlL3B0Ly5uZi90dW5uZWxuZgoKTC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQmxvY2tlbiB1bmQgRmFsdGVuIChBbWFyeWxsaXMsICAyLiBEZXogMjAwMSwgMjM6MDM6MzEpOgp+IyEgcm49TGluZmxhcyBydD0xMDA3MzMwNTA0IHJnPXdpdHplCn4jISB0aWQ9MTAwNzMzMDQyNgpkYW5uIGxvZXNjaCBkb2NoIGRlbiBBcnRpa2VsIGxpZWJlciB1bmQgcG9zdGUgbm9jaG1hbCBrb3JyZWt0LgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmxvY2tlbiB1bmQgRmFsdGVuIChMaW5mbGFzLCAgMi4gRGV6IDIwMDEsIDIzOjA1OjM3KToKd3d3LnNwaWVnZWwuZGUvc3BpZWdlbC8wLDE1MTgsMTcwNjU4LDAwLmh0bWwKCkwuIChKYSwgQ2hlZikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyB3YWhyZSBFbmRlIC4uLiAoR2xvaW5zb24sICAyLiBEZXogMjAwMSwgMjM6NTc6MTUpOgp2b24gdGhlb3JjZS5uZXQsIHZvbiBTaWxiZXJsYW5kCgoKVGhlIFRSVUUgRW5kaW5nIFRvICJUaGUgRW1waXJlIFN0cmlrZXMgQmFjayIKKEEgZnVyaW91cyBsaWdodHNhYmVyIGR1ZWwgaXMgdW5kZXIgd2F5LiBEQVJUSCBWQURFUiBpcyBiYWNraW5nIG9mZiBMVUtFICAKU0tZV0FMS0VSIHRvd2FyZHMgdGhlIGVuZCBvZiB0aGUgZ2FudHJ5LiBBIHF1aWNrIG1vdmUgYnkgVmFkZXIgY2hvcHMgb2ZmICAKTHVrZSdzIGhhbmQhIEl0IGdvZXMgc3Bpbm5pbmcgb2ZmIGludG8gdGhlIHZlbnRpbGF0aW9uIHNoYWZ0LiAKTHVrZSBiYWNrcyBhd2F5LiBIZSBsb29rcyBkb3duLCBhbmQgcmVhbGl6ZXMgdGhlcmUncyBub3doZXJlIHRvIGdvIGJ1dCAKc3RyYWlnaHQgZG93bi4pIApWQURFUgpPYmktV2FuIG5ldmVyIHRvbGQgeW91IHdoYXQgaGFwcGVuZWQgdG8geW91ciBmYXRoZXIuIApMVUtFCkhlIHRvbGQgbWUgZW5vdWdoLiBIZSB0b2xkIG1lIHlvdSBraWxsZWQgaGltISAKVmFkZXIKTm8hIEkgYW0geW91ciBmYXRoZXIhIApMVUtFClRoYXQncyBub3QgdHJ1ZSEgVGhhdHMgaW1wb3NzaWJsZSEgClZBREVSClNlYXJjaCB5b3VyIGZlZWxpbmdzOyB5b3Uga25vdyBpdCB0byBiZSB0cnVlISAKTFVLRQpOTyEgClZBREVSClllcyBpdCBpcyB0cnVlLCBhbmQgeW91IGtub3cgc29tZXRoaW5nIGVsc2U/IFlvdSBrbm93IHRoYXQgYnJhc3MgZHJvaWQgb2YgCnlvdXJzPyAKTFVLRQpUaHJlZXBpbz8gClZBREVSClllcyxUaHJlZXBpbywgSSBidWlsdCBoaW0gd2hlbiBJIHdhcyA3IHllYXJzIG9sZC4gCkxVS0UKTm8hIApWQURFUgpTZXZlbiB5ZWFycyBvbGQhIEFuZCB3aGF0IGhhdmUgeW91IGRvbmU/IExvb2sgYXQgeW91cnNlbGYsIG5vIGhhbmQsIG5vIApqb2IsIGFuZCBjb3VsZG4ndCBldmVuIGxldml0YXRlIHlvdXIgb3duIHNoaXAgb3V0IG9mIHRoZSBzd2FtcC4gCkxVS0UKSSBkZXN0cm95ZWQgeW91ciBwcmVjaW91cyBEZWF0aCBTdGFyISAKVkFERVIKV2hlbiB5b3Ugd2VyZSAyMCEgV2hlbiBJIHdhcyAxMCwgSSBzaW5nbGUtaGFuZGVkbHkgZGVzdHJveWVkIGEgVHJhZGUgCkZlZGVyYXRpb24gQ29udHJvbCBzaGlwISAKTFVLRQpXZWxsIGl0J3Mgbm90IG15IGZhdWx0LiAKVkFERVIKT2gsIGhlcmUgd2UgZ28uLi4gIlBvb3IgbWUsIG15IGZhdGhlciBuZXZlciBnYXZlIG1lIHdoYXQgSSB3YW50ZWQgZm9yIApiaXJ0aGRheSwgYm9vIGhvbywgbXkgZGFkZHkncyBhIERhcmsgTG9yZCBvZiB0aGUgU2l0aC4uLndhYWFoLCB3YWFoLiIgCkxVS0UKU2h1dCB1cCEgClZBREVSCllvdXIgYSBzbGFja2VyISBCeSB0aGUgdGltZSBJIHdhcyB5b3VyIGFnZSwgSSBoYWQgZXh0ZXJtaW5hdGVkIHRoZSBKZWRpIApLbmlnaHRzISAKTFVLRQpJIHVzZWQgdG8gcmFjZSBteSBULTE2IHRocm91Z2ggQmVnZ2FyJ3MgQ2FueW9uISAKVkFERVIKT2gsIGZvciB0aGUgbG92ZSBvZiB0aGUgRW1wZXJvciEgMTAgeWVhcnMgb2xkLCB3aW5uZXIgb2YgdGhlIEJvb250YSBFdmUgCk9wZW4uIE9ubHkgaHVtYW4gZXZlciB0byBmbHkgYSBQb2QgUmFjZXIsIHJpZ2h0IGhlcmUgYmFieSEKKEx1a2UgbG9va3MgZG93biB0aGUgc2hhZnQuIFRha2VzIGEgc3RlcCB0b3dhcmQgaXQuKSAKVkFERVIKSSB3YXMgd3JvbmcuIFlvdSdyZSBub3QgbXkga2lkLiBJIGRvbid0IGtub3cgd2hvc2UgeW91IGFyZSBidXQgeW91IHN1cmUgCmFpbid0IG1pbmUuCihMdWtlIHRha2VzIGEgc3RlcCBvZmYgdGhlIHBsYXRmb3JtLCBoZXNpdGF0ZXMsIHRoZW4gcGx1bmdlcyBkb3duIHRoZSAKc2hhZnQuIERhcnRoIFZhZGVyIGxvb2tzIGFmdGVyIGhpbS4pIApWQURFUgpHZXQgYSBoYWlyY3V0IQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmllbGR1bmcgdHV0aCBOb3RoIChMaW5mbGFzLCAgMy4gRGV6IDIwMDEsIDEyOjU5OjMxKToKd3d3LnNwaWVnZWwuZGUvcGFub3JhbWEvMCwxNTE4LDE3MDgxNiwwMC5odG1sCgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJpZWxkdW5nIHR1dGggTm90aCAoTGluZmxhcywgIDMuIERleiAyMDAxLCAxMzowMToyMyk6Cn4jISBybj1MaW5mbGFzIHJ0PTEwMDczODA3NzEgcmc9d2l0emUKfiMhIHRpZD0xMDA3MzgwNzcxCkVpbiBLb21tZW50YXIgZGF6dToKCldpZSBzY2hvZW4sIGRhc3Mgd2lyIFZlcm9uYSBGZWxkYnVzY2ggaGFiZW4uCgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGl0ZWwgZGVzIEFydGlrZWw6IChMaW5mbGFzLCAgNi4gRGV6IDIwMDEsIDE1OjExOjE2KToKCnd3dy5oZWlzZS5kZS90cC9kZXV0c2NoL2luaGFsdC9jby8xMTI4MS8xLmh0bWwKCkwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGl0ZWwgZGVzIEFydGlrZWw6IChBbnRoZWEsICA2LiBEZXogMjAwMSwgMTU6MTI6MjQpOgp+IyEgcm49TGluZmxhcyBydD0xMDA3NjQ3ODc2IHJnPXdpdHplCn4jISB0aWQ9MTAwNzY0Nzg3NgpXaWUgZ3V0LCBkYXNzIGljaCBtZWluZSBDb3B5JlBhc3RlLUJhc2lzIHVtIGVpbiAibm4iIGFtIEFuZmFuZyBlcndlaXRlcnQgaGFiZSwKZGFtaXQgYmluIGljaCBpbW1lciBha3R1ZWxsZXIgYmVpIGRlbiBCYW1iaXMgYWxzIGljaCB3ZWlzcy4KQXVzc2VyIGVzIGtvbW10IHdpZWRlciBlaW4gYm9lc2VyIEVsYmkgdW5kIHNjaG1laXNzdCBBbnRpa3JlaGUgZGF6d2lzY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVGl0ZWwgZGVzIEFydGlrZWw6IChBbnRoZWEsICA2LiBEZXogMjAwMSwgMTU6MTI6NTcpOgp+IyEgcm49QW50aGVhIHJ0PTEwMDc2NDc5NDQgcmc9d2l0emUKfiMhIHRpZD0xMDA3NjQ3ODc2CkFyZ2whIFdlciBwb3N0ZXQgaGllciB3b2FuZGVycyBhbHMgaW4gTWVnYWNobWFycm4hIERhcyBnaWJ0IGVzIGRvY2ggbmljaHQgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFRpdGVsIGRlcyBBcnRpa2VsOiAoRWxiZXJldCwgIDYuIERleiAyMDAxLCAxNToxNDowNik6Cn4jISBybj1BbnRoZWEgcnQ9MTAwNzY0Nzk3NyByZz13aXR6ZQp+IyEgdGlkPTEwMDc2NDc4NzYKZGEgYmVzdGVsbHQgbWFuIG1lZ2FzY2htYXJybiBzY2hvbiBhYiB1bmQgZGFubiBtdXNzIG1hbnMgZG9jaCBsZXNlbiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVGl0ZWwgZGVzIEFydGlrZWw6IChTaWx2YW5hLCAgNi4gRGV6IDIwMDEsIDE1OjE1OjI0KToKfiMhIHJuPUVsYmVyZXQgcnQ9MTAwNzY0ODA0NiByZz13aXR6ZQp+IyEgdGlkPTEwMDc2NDc4NzYKQmVzdGVsbCBoYWx0IGRpZSBnYW56ZSBNUEEgYWIuIFN0ZWh0IGVoIG5peCBicmF1Y2hiYXJlcyBkcmluLgoKICBTaWx2YW5hIChsaWVzdCBudXIgbm9jaCBlcnptYWdpZXIuc2NobWFycm4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBUaXRlbCBkZXMgQXJ0aWtlbDogKEVsYmVyZXQsICA2LiBEZXogMjAwMSwgMTU6MTY6MzcpOgp+IyEgcm49U2lsdmFuYSBydD0xMDA3NjQ4MTI0IHJnPXdpdHplCn4jISB0aWQ9MTAwNzY0Nzg3NgpkYXMgc29sbHQgbWFuIHNpY2ggZWNodCBsYW5nc2FtIHVlYmVybGVnZW4sIGRhcyBzdGltbXQgd29obAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogVGl0ZWwgZGVzIEFydGlrZWw6IChBbnRoZWEsICA2LiBEZXogMjAwMSwgMTU6MTY6NTYpOgp+IyEgcm49RWxiZXJldCBydD0xMDA3NjQ4MDQ2IHJnPXdpdHplCn4jISB0aWQ9MTAwNzY0Nzg3NgpUc2NodWxsaWd1bmcuClZpZWxsZWljaHQgc29sbHRlIGljaCBqYSBmdWVycyBNZWdhc2NobWFycmVuIGFsbGVzIGF1c3NlciBNZWdhc2NobWFycm4KYWJiZXN0ZWxsZW4uIEdpYnQgZXMgZGFmdWVyIHZpZWxsZWljaHQgZWluIE1QQS1NYWNybz8gOykKRWluIEZyb3NjaCBodWVwZnQgdWViZXIgZGllIFdpZXNlIHVuZCBydWZ0IHN0YWVuZGlnOiAiSWNoIGJpbiBlaW4gU2Nod2FuLCBpY2gKYmluIGVpbiBTY2h3YW4hIiBBbHMgZXIgYW4gZWluZW4gVHVlbXBlbCBrb21tdCwgc2Nod2ltbXQgZGEgZWluZSBFbnRlIHVuZAptZWludCB6dSBpaG06ICJEdSBiaXN0IGtlaW4gU2Nod2FuLCBkdSBiaXN0IGVpbiBGcm9zY2ghIiBEZXIgRnJvc2NoIGxhZXNzdApzZWluZSBCYWRlaG9zZSBmYWxsZW4uIERhcmF1ZiBkaWUgRW50ZTogIk1laW4gbGllYmVyIFNjaHdhbi4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk11c3MgIldpdHplIiBlaWdlbnRsaWNoIGp1Z2VuZGZyZWkgc2Vpbj8gKEFudGhlYSwgIDYuIERleiAyMDAxLCAxNTo0OTowOSk6CkluIGRlciBOYWVoZSB2b24gR290aGEgaW4gVGh1ZXJpbmdlbi4KRWluIFZhdGVyIG1vZWNodGUgc2VpbmVtIDgtamFlaHJpZ2VuIFNvaG4gZGllIFRpZXJlIGltIFdhbGQgemVpZ2VuLgpTaWUgc3RlaWdlbiBhdWYgZWluZW4gSG9jaHNpdHouCkRlciBKdW5nZSBzY2hhdXQgbmFjaCBOb3JkZW4gdW5kIHNpZWh0IHp3ZWkgRnVlY2hzZSwgZGVyIFZhdGVyIGJlb2JhY2h0ZXQgZGVuClN1ZWRlbiB1bmQgZXJibGlja3QgZWluZSBuYWNrdGUgRnJhdS4gRGVyIFNvaG4gZ2FueiBhdWZnZXJlZ3QgenUgc2VpbmVtIFZhdGVyOgoiQmFiYSwgRmlnZ3NlLCBGaWdnc2UhISEiCkRhcmF1ZmhpbiBkZXIgVmF0ZXI6ICJOdWVyLCB3ZW5uZGUgZGUgTXVkZGkgbnVlc2NodCBzb29jaHN0IiEhIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogVGl0ZWwgZGVzIEFydGlrZWw6IChab29rLCAgNi4gRGV6IDIwMDEsIDE5OjU1OjU5KToKfiMhIHJuPVNpbHZhbmEgcnQ9MTAwNzY0ODEyNCByZz13aXR6ZQp+IyEgdGlkPTEwMDc2NDc4NzYKT2gsIGRhbm4gbXVzcyBpY2ggZGEgbWFsIHdpZWRlciBlaW4gYmlzc2NoZW4gTGVzZXN0b2ZmIHVudGVyYnJpbmdlbj8KCk9kZXIgc2luZCB1bnMgZWluIHdlbmlnIGRpZSBUaGVtZW4gYXVzZ2VnYW5nZW4/ICpodWVzdGVsKgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbmFnZW1lbnQtTGVrdGlvbmVuIChBbnRoZWEsICA3LiBEZXogMjAwMSwgMTI6NTE6MjUpOgpNYW5hZ2VtZW50IExla3Rpb25lbiEgCkxla3Rpb24gMToKRWluIFJhYmUgc2FzcyB0cmFlZ2UgYXVmIGVpbmVtIEJhdW0gdW5kIHRhdCBkZW4gZ2FuemVuIFRhZyB1ZWJlcmhhdXB0IG5pY2h0cy4KRGEga2FtIGVpbiBrbGVpbmVyIEhhc2Ugdm9yYmVpIHVuZCBzYWggZGVuIFJhYmVuLiBFciBmcmFndGUgZGVuIFZvZ2VsOgoiU2FnIG1hbCwga2FubiBpY2ggbWljaCBhdWNoIHNvIGhpbnNldHplbiB1bmQgZGVuIGdhbnplbiBUYWcgbmljaHRzIHR1bj8iCkRlciBSYWJlIGdhYiB6dXIgQW50d29ydDogIkFiZXIgbmF0dWVybGljaCAtIHdhcnVtIGRlbm4gbmljaHQ/IgpVbmQgZGEgc2V0enRlIHNpY2ggYWxzbyBkZXIga2xlaW5lIEhhc2UgYXVmIGRlbiBCb2RlbiB1bnRlciBkZW4gQXN0LCBhdWYgZGVtCmRlciBSYWJlIHNhc3MgdW5kIHJ1aHRlIHNpY2ggZ2VudWVzc2xpY2ggYXVzLiBWb24gaGludGVuIGFsbGVyZGluZ3Mgc2NobGljaApzaWNoIHVuYmVtZXJrdCBlaW4gRnVjaHMgYW4uIEVyIHNwcmFuZyBhdWYgZGVuIGtsZWluZW4gSGFzZW4gdW5kIGZyYXNzIGlobi4KCk1hbmFnZW1lbnQtTGVrdGlvbjoKVW0gaGVydW16dXNpdHplbiB1bmQgbmljaHRzIHR1biB6dSBrb2VubmVuLCBtdXNzdCBkdSBzZWhyLCBzZWhyIHdlaXQgb2JlbgpzaXR6ZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0KTGVrdGlvbiAyOgpEZXIgSGFobiB0cmFmIGF1ZiBkZW4gQnVsbGVuIGF1ZiBkZXIgV2llc2UgdW5kIHNpZSBwbGF1ZGVydGVuIGVpbiBiaXNzY2hlbgptaXRlaW5hbmRlci4KTmFjaCBlaW5lciBXZWlsZSBzYWd0IGRlciBIYWhuOiAiQWNoLCBpY2ggd3VlcmRlIHNvIGdlcm5lIGhvY2ggb2JlbiBpbiBkaWVzZW4KQmF1bSBmbGllZ2VuIGtvZW5uZW4sIGFiZXIgaWNoIGhhYmUgZWluZmFjaCBuaWNodCBkaWUgRW5lcmdpZSBkYXp1LiIKRGVyIEJ1bGxlIGFudHdvcnRldDogIk51biwgZnJpc3MgZG9jaCBlaW5mYWNoIGV0d2FzIHZvbiBtZWluZW0gRHVuZy4gRGEgc2luZApzZWhyIHZpZWxlIE5hZWhyc3RvZmZlIGRyaW4sIGRhcyBnaWJ0IGRpciBzaWNoZXIgS3JhZnQuIgoKR2VzYWd0IC0gZ2V0YW4uIERlciBIYWhuIGZyaXNzdCBlaW4gYmlzc2NoZW4gdm9uIGRlbSBEdW5nIHVuZCB0YXRzYWVjaGxpY2gKZ2lidCBpaG0gZGFzIGdlbnVlZ2VuZCBLcmFmdCwgdW0gYXVmIGRlbiBlcnN0ZW4gQXN0IHp1IGZsaWVnZW4uCkFtIG5hZWNoc3RlbiBUYWcgZnV0dGVydCBlciBldHdhcyBtZWhyIHZvbiBkZW0gRHVuZyB1bmQgc2NoYWZmdCBlcyBzbyBzY2hvbgphdWYgZGVuIHp3ZWl0ZW4gQXN0LgpVbmQgYW0gdmllcnRlbiBUYWcgZXJyZWljaHQgZXIgYXVmIGRpZXNlIFdlaXNlIGRpZSBTcGl0emUgZGVzIEJhdW1lcy4KRG9ydCBvYmVuIGFiZXIsIHdhZWhyZW5kIGVyIHNpY2ggbm9jaCBhbmdlc2ljaHRzIHNlaW5lcyBFcmZvbGdlcyBmcmV1dCwga29tbXQKZWluIEFkbGVyIHVuZCBzY2huYXBwdCBzaWNoIGRlbiBIYWhuLgoKTWFuYWdlbWVudC1MZWt0aW9uOgpCdWxsc2hpdCBrYW5uIGRpY2ggdmllbGxlaWNodCB6dXIgU3BpdHplIGJyaW5nZW4sIGFiZXIgZXIgd2lyZCBkaWNoIG5pY2h0IGZ1ZXIKaW1tZXIgZG9ydCBvYmVuIGhhbHRlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLQpMZWt0aW9uIDM6CkFscyBkZXIgS29lcnBlciBlcnNjaGFmZmVuIHdhciwgc3RlbGx0ZSBzaWNoIGRpZSBGcmFnZSwgd2VsY2hlcyBLb2VycGVydGVpbApkZXIgQm9zcyBzZWluIHNvbGwuIFVuZCBkYXMgd29sbHRlbiBuYXR1ZXJsaWNoIGFtIGxpZWJzdGVuIGFsbGUuCkRhcyBIaXJuIHNwcmFjaCwgIlNlbGJzdHZlcnN0YWVuZGxpY2ggc29sbHRlIGljaCBkZXIgQm9zcyBzZWluLCBkZW5uIGljaCBoYWJlCmRpZSBLb250cm9sbGUgdWViZXIgYWxsZSBGdW5rdGlvbmVuIGRlcyBLb2VycGVycyEiCkRpZSBGdWVzc2UgaGluZ2VnZW4gcmllZmVuLCAiT2ggbmVpbiwgd2lyIHNvbGx0ZW4gZGVyIEJvc3Mgc2VpbiwgZGVubiB3aXIKdHJhZ2VuIGRhcyBIaXJuIGhlcnVtIHVuZCBicmluZ2VuIGVzIGRvcnRoaW4sIHdvIGVzIGhpbndpbGwhIgpEaWUgSGFlbmRlIGxhY2h0ZW4sICJBY2ggd2FzLCB3aXIgc29sbHRlbiBkZXIgQm9zcyBzZWluLCB3ZWlsIHdpciBzY2hsaWVzc2xpY2gKZGllIGdhbnplIEFyYmVpdCBtYWNoZW4gdW5kIGRhcyBnYW56ZSBHZWxkIHZlcmRpZW5lbiEiClVuZCBzbyBnaW5nIGVzIGltbWVyIHdlaXRlciB1bmQgd2VpdGVyIHVuZCBqZWRlcyBLb2VycGVydGVpbCBicmFjaHRlIHNlaW5lCkFyZ3VtZW50ZSB2b3IsIHdhcnVtIGVzIHNlbGJzdCBkZXIgQm9zcyBzZWluIHNvbGx0ZS4KWnVtIFNjaGx1c3MgYmxpZWIgbm9jaCBkYXMgQXJzY2hsb2NoLiBBbGxlIGFuZGVyZW4gYW11ZXNpZXJ0ZW4gc2ljaCB1ZWJlciBkaWUKSWRlZSwgZGFzcyBkYXMgQXJzY2hsb2NoIGRlciBCb3NzIHNlaW4gc29sbHRlLgpBbHMgQW50d29ydCBkYXJhdWYgZmluZyBkYXMgQXJzY2hsb2NoIGFuIHp1IHN0cmVpa2VuLiBJbiBrdWVyemVzdGVyIFplaXQKZmluZ2VuIGRpZSBBdWdlbiBhbiwgc2ljaCB6dSBrcmV1emVuLCBkaWUgSGFlbmRlIHZlcmtyYW1wZnRlbiBzaWNoLCBkaWUgRnVlc3NlCnZlcmtydWVwcGVsdGVuLCBkYXMgSGVyeiB1bmQgZGllIEx1bmdlIGhhdHRlbiBQYW5payB1bmQgZGFzIEhpcm4gZmllYmVydGUuCkluIGlocmVyIE5vdCBiZXNjaGxvc3NlbiBkaWUgS29lcnBlcnRlaWxlIGdlbWVpbnNhbSwgZGFzcyBkYXMgQXJzY2hsb2NoIGRlcgpCb3NzIHNlaW4gc29sbHRlLiBVbmQgc28ga2FtIGVzLCBkYXNzIGFsbGUgYW5kZXJlbiBkaWUgQXJiZWl0IHZlcnJpY2h0ZXRlbiwKd2FlaHJlbmQgZGVyIEJvc3MgZWluZmFjaCBudXIgZGEgc2FzcyB1bmQgdm9uIFplaXQgenUgWmVpdCBkaWUgU2NoZWlzc2UKcmF1c2xpZXNzIQoKTWFuYWdlbWVudC1MZWt0aW9uOgpEdSBicmF1Y2hzdCBrZWluIEhpcm4sIHVtIEJvc3MgenUgc2VpbiAtIGplZGVzIEFyc2NobG9jaCBrYW5uIGVzIHNlaW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXJidW5nIGVpbm1hbCB2ZXJzdGFlbmRsaWNoIChBbnRoZWEsIDExLiBEZXogMjAwMSwgMTA6MTI6NDgpOgpEdSBnZWhzdCBhdWYgZWluZSBQYXJ0eSB1bmQgc2llaHN0IGVpbiBhdHRyYWt0aXZlcyBNYWVkY2hlbiBhdWYgZGVyIGFuZGVyZW4KU2VpdGUgZGVzIFJhdW1lcy4KRHUgZ2Voc3QgenUgaWhyIHVuZCBzYWdzdDogIkhhbGxvLCBpY2ggYmluIGdyb3NzYXJ0aWcgaW0gQmV0dCwgd2llIHdhZXIncyBtaXQKdW5zPyIKCkRhcyBuZW5udCBtYW4gRGlyZWN0IE1hcmtldGluZy4KCiAgICAgKiAgICAgICAqICAgICAgICAqCgpEdSBnZWhzdCBhdWYgZWluZSBQYXJ0eSB1bmQgc2llaHN0IGVpbiBhdHRyYWt0aXZlcyBNYWVkY2hlbiBhdWYgZGVyIGFuZGVyZW4KU2VpdGUgZGVzIFJhdW1lcy4KRHUgZ2lic3QgZWluZXIgRnJldW5kaW4gZWluZW4gWmVobm1hcmtzY2hlaW4uIFNpZSBzdGVodCBhdWYgdW5kIHNhZ3Q6ICJIYWxsbywKbWVpbiBGcmV1bmQgZG9ydCBoaW50ZW4gaXN0IGdyb3NzYXJ0aWcgaW0gQmV0dCwgd2llIHdhZXIncz8iCgpEYXMgaXN0IFdlcmJ1bmcuCgogICAgICogICAgICAgKiAgICAgICAgKgoKRHUgZ2Voc3QgYXVmIGVpbmUgUGFydHkgdW5kIHNpZWhzdCBlaW4gYXR0cmFrdGl2ZXMgTWFlZGNoZW4gYXVmIGRlciBhbmRlcmVuClNlaXRlIGRlcyBSYXVtZXMuCkR1IGdpYnN0IHp3ZWkgRnJldW5kaW5uZW4gdm9uIERpciBlaW5lbiBaZWhubWFya3NjaGVpbiwgZGFtaXQgc2llIHNpY2ggaW4KSG9lcndlaXRlIGRlcyBNYWVkY2hlbnMgc3RlbGxlbiB1bmQgZGFydWViZXIgc3ByZWNoZW4sIHdpZSBncm9zc2FydGlnIER1IGltCkJldHQgdW5kIHdpZSBoZWlzcyBEdSBiaXN0LgoKRGFzIG5lbm50IG1hbiBQdWJsaWMtUmVsYXRpb25zLgoKICAgICAqICAgICAgICogICAgICAgICoKCkR1IGdlaHN0IGF1ZiBlaW5lIFBhcnR5IHVuZCBzaWVoc3QgZWluIGF0dHJha3RpdmVzIE1hZWRjaGVuIGF1ZiBkZXIgYW5kZXJlbgpTZWl0ZSBkZXMgUmF1bWVzLgpEdSBlcmtlbm5zdCBzaWUgd2llZGVyLiBEdSBnZWhzdCB6dSBpaHIgcnVlYmVyLCBmcmlzY2hzdCBpaHJlIEVyaW5uZXJ1bmcgYXVmCnVuZCBicmluZ3N0IHNpZSB6dSBMYWNoZW4gdW5kIEtpY2hlcm4uIFVuZCBkYW5uIHdpcmZzdCBEdSBlaW46ICJIYWxsbywgaWNoIGJpbgpncm9zc2FydGlnIGltIEJldHQsIHdpZSB3YWVyJ3MgbWl0IHVucz8iCgpEYXMgaXN0IEN1c3RvbWVyIFJlbGF0aW9uc2hpcCBNYW5hZ2VtZW50CgogICAgICogICAgICAgKiAgICAgICAgKgoKRHUgZ2Voc3QgYXVmIGVpbmUgUGFydHkgdW5kIHNpZWhzdCBlaW4gYXR0cmFrdGl2ZXMgTWFlZGNoZW4gYXVmIGRlciBhbmRlcmVuClNlaXRlIGRlcyBSYXVtZXMuCkR1IHppZWhzdCBEZWluZSB0b2xsZW4gS2xhbW90dGVuIGFuLCBsYWV1ZnN0IGhlcnVtIHVuZCBzcGllbHN0IE1yLgpCZXNjaGFlZnRpZ3QuIER1IHNldHp0IERlaW4gYmVzdGVzIExhZWNoZWxuIGF1ZiwgbGFldWZzdCBoZXJ1bSB1bmQgc3BpZWxzdCBNci4KU3ltcGF0aGlzY2guIER1IGZyaXNjaHN0IERlaW5lbiBXb3J0c2NoYXR6IGluIERlaW5lbSBHZWRhZWNodG5pcyBhdWYgdW5kCnNwaWVsc3QgTXIuIEhvZWZsaWNoLiBEdSB1bnRlcmhhZWx0c3QgRGljaCBtaXQgc2FuZnRlciB1bmQgd2VpY2hlciBTdGltbWUsIER1Cm9lZmZuZXN0IGRpZSBUdWVyIGZ1ZXIgYWxsZSBGcmF1ZW4sIER1IGxhZWNoZWxzdCB3aWUgZWluIFRyYXVtLCBEdSB2ZXJicmVpdGVzdAplaW5lIEF1cmEgdW0gRGljaCBoZXJ1bSwgRHUgc3BpZWxzdCBNci4gR2VudGxlbWFuIHVuZCBkYW5uIGdlaHN0IER1IHp1IGRlbQpNYWVkY2hlbiB1bmQgZnJhZ3N0OiAiSGFsbG8sIGljaCBiaW4gZ3Jvc3NhcnRpZyBpbSBCZXR0LCB3aWUgd2FlcidzIG1pdCB1bnM/IgoKRGFzIGlzdCBIYXJkIFNlbGxpbmcuCgogICAgICogICAgICAgKiAgICAgICAgKgoKRHUgZ2Voc3QgYXVmIGVpbmUgUGFydHkgdW5kIHNpZWhzdCBlaW4gYXR0cmFrdGl2ZXMgTWFlZGNoZW4gYXVmIGRlciBhbmRlcmVuClNlaXRlIGRlcyBSYXVtZXMuClNJRSBLT01NVCBIRVJVZUJFUiB1bmQgc2FndDogIkhhbGxvLCBpY2ggaGFiZSBnZWhvZXJ0LCBkYXNzIER1IGdyb3NzYXJ0aWcgaW0KQmV0dCBiaXN0LCB3aWUgd2FlcidzIG1pdCB1bnM/IgoKTnVuLCBEQVMsIHNlaHIgZ2VlaHJ0ZSBEYW1lbiB1bmQgSGVycmVuLCBpc3QgZGllIEtSQUZUIERFUiBNQVJLRS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbmUgb2ZmZW5lLCBzdHJlaXRiYXJlIERlbW9rcmF0aWUhIChMaW5mbGFzLCAxMS4gRGV6IDIwMDEsIDE1OjEyOjUzKToKd3d3LmhlaXNlLmRlL3RwL2RldXRzY2gvc3BlY2lhbC9mcmVpLzExMzAwLzEuaHRtbAoKVGl0ZWw6CkluZm9ybWF0aW9uc3p1Z2FuZyB1bmVyd25zY2h0PwpCdW5kZXN0YWcgdmVyc2NobGVwcHQgT25saW5lLVp1Z2FuZyB6dW0gRW50d3VyZiBkZXMgVGVycm9yYmVrbXBmdW5nc2dlc2V0emVzCgpMLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW5nZW5pZXVyZSBiZWdyZWlmZW4gLSBFaW4gRHJhbWEgaW4gbmV1biBBa3RlbiAoQW50aGVhLCAxMS4gRGV6IDIwMDEsIDE1OjE0OjQ5KToKR3V0ZW4gTW9yZ2VuIGxpZWJlIEluZ2VuaWV1cmUhIQoKSW5nZW5pZXVyZSBiZWdyZWlmZW4gICAgICAgICAgICAxLkFrdAoKWndlaSBJbmdlbmlldXJzdHVkZW50ZW4gc2NobGVuZGVybiB1ZWJlciBkZW4gQ2FtcHVzLgpEYSBzYWd0IGRlciBlaW5lOiAiV29oZXIgaGFzdCBkdSBzbyBlaW4gdG9sbGVzIEZhaHJyYWQ/IiBEYXJhdWYgZGVyIEFuZGVyZToKIkFscyBpY2ggZ2VzdGVybiBnYW56IGluIEdlZGFua2VuIHZlcnN1bmtlbiBzcGF6aWVyZW4gZ2luZywgZnVociBlaW4gaHVlYnNjaGVzCk1hZWRjaGVuIG1pdCBkaWVzZW0gRmFocnJhZC4gIEFscyBzaWUgbWljaCBzYWgsIHdhcmYgc2llIGRhcyBSYWQgenVyIFNlaXRlLApyaXNzIHNpY2ggZGllIEtsZWlkZXIgdm9tIExlaWIgdW5kIHNjaHJpZTogJ05pbW0gZGlyIHdhcyBkdSB3aWxsc3QhJyIuCkRlciBlcnN0ZSBTdHVkZW50IG5pY2t0ZSB6dXN0aW1tZW5kOiAiR3V0ZSBXYWhsLCBkaWUgS2xlaWRlciBoYWV0dGVuCnZlcm11dGxpY2ggbmljaHQgZ2VwYXNzdCEiCgoKSW5nZW5pZXVyZSBiZWdyZWlmZW4gICAgICAgICAgICAyLkFrdAoKRGVyIE9wdGltaXN0OiAgIkRhcyBHbGFzIGlzdCBoYWxiIHZvbGwiCkRlciBQZXNzaW1pc3Q6ICJEYXMgR2xhcyBpc3QgaGFsYiBsZWVyIgpEZXIgSW5nZW5pZXVyOiAiRGFzIEdsYXMgaXN0IGRvcHBlbHQgc28gZ3Jvc3Mgd2llIGVzIHNlaW4gbXVlc3N0ZSIKCgpJbmdlbmlldXJlIGJlZ3JlaWZlbiAgICAgICAgICAgIDMuQWt0CgpFaW4gUGZhcnJlciwgZWluIEFyenQgdW5kIGVpbiBJbmdlbmlldXIgd2FydGV0ZW4gZWluZXMgTW9yZ2VucyBhdWYgZWluZQpiZXNvbmRlcnMgbGFuZ3NhbWUgR3J1cHBlIHZvbiBHb2xmZXJuLiBEZXIgSW5nZW5pZXVyIHppZW1saWNoIHNhdWVyOiAiV2FzIGlzdAptaXQgZGVuZW4uLi5XaXIgbXVlc3NlbiBoaWVyIHNlaXQgMTUgTWludXRlbiB3YXJ0ZW4hIiBEZXIgQXJ6dCB6dXN0aW1tZW5kOgoiSWNoIHdlaXNzIG5pY2h0LCBhYmVyIGljaCBoYWJlIG5vY2ggbmllIHNvIGVpbiBVbnZlcm1vZWdlbiBnZXNlaGVuIiBEZXIKUGZhcnJlciBzYWd0ZTogIkhleSwgZGEga29tbXQgZGVyIFBsYXR6d2FydC4gTGFzc3QgdW5zIG1pdCBpaG0gcmVkZW4uIgoKKGRyYW1hdGlzY2hlIFBhdXNlKQoKUGZhcnJlcjogIkhlaSBHZW9yZ2UsIHdhcyBpc3QgZWlnZW50bGljaCBtaXQgZGllc2VyIEdydXBwZSBkYSB2b3IgdW5zPyBEaWUKc2luZCB6aWVtbGljaCBsYW5nc2FtLCBvZGVyPyIgRGVyIFBsYXR6d2FydCBhbnR3b3J0ZXRlOiAiQWggamEgZGFzIGlzdCBkaWUKR3J1cHBlIGRlciBibGluZGVuIEZldWVyd2Vocm1hZW5uZXIuIFNpZSB2ZXJsb3JlbiBpaHIgQXVnZW5saWNodCBsZXR6dGVzIEphaHIKYWxzIHNpZSBkZW4gQnJhbmQgaW0gQ2x1YmhhdXMgbG9lc2NodGVuLiBXaXIgbGFzc2VuIHNpZSBpbW1lciBrb3N0ZW5sb3MKc3BpZWxlbi4iIERpZSBkcmVpIHd1cmRlbiBnYW56IHN0aWxsLgoKRGFubiBzYWd0ZSBkZXIgUGZhcnJlcjogIkRhcyBpc3QgdHJhdXJpZy4gSWNoIGdsYXViZSBpY2ggd2VyZGUgaGV1dGUgQWJlbmQgZWluCkdlYmV0IGZ1ZXIgc2llIHNwcmVjaGVuLiIgRGVyIEFyenQ6ICJHdXRlIElkZWUuIEljaCB3ZXJkZSBtaWNoIG1hbCBtaXQgbWVpbmVtCkt1bXBlbCBkZW0gQXVnZW5hcnp0IGluIFZlcmJpbmR1bmcgc2V0emVuLiBWaWVsbGVpY2h0IGthbm4gZGVyIGlyZ2VuZHdhcwptYWNoZW4uIiBEZXIgSW5nZW5pZXVyOiAiV2FydW0gc3BpZWxlbiBkaWUgSnVuZ3MgbmljaHQgTmFjaHRzPz8/IgoKCkluZ2VuaWV1cmUgYmVncmVpZmVuICAgICAgICAgICAgNC5Ba3QKCkVzIHdhciBlaW5tYWwgZWluIEluZ2VuaWV1ciwgZGVyIGVpbiBiZXNvbmRlcmVzIEhhZW5kY2hlbiBkYWZ1ZXIgaGF0dGUsCm1lY2hhbmlzY2hlIFNhY2hlbiB6dSByZXBhcmllcmVuLiBOYWNoZGVtIGVyIDMwIEphaHJlIGxhbmcgdHJldSBpbiBzZWluZXIKRmlybWEgZ2VhcmJlaXRldCBoYXR0ZSwgZ2luZyBlciBnbHVlY2tsaWNoIGluIFBlbnNpb24uCkVpbmlnZSBKYWhyZSBzcGFldGVyIGtvbnRha3RpZXJ0ZSBpaG4gc2VpbmUgRmlybWEsIGRpZSBlaW4gb2ZmZW5zaWNodGxpY2gKdW5sb2VzYmFyZXMgUHJvYmxlbSBtaXQgZWluZXIgbWlsbGlvbmVudGV1cmVuIE1hc2NoaW5lIGhhdHRlbi4gU2llIGhhZXR0ZW4KYWxsZXMgdmVyc3VjaHQgdW5kIGplZGVyIGhhZXR0ZSBlcyB2ZXJzdWNodCwgYWJlciBuaWNodHMgYnJhY2h0ZSBFcmZvbGcuIEluCmlocmVyIFZlcnp3ZWlmbHVuZyB3YW5kdGVuIHNpZSBzaWNoIGFuIGRlbiBwZW5zaW9uaWVydGVuIEluZ2VuaWV1ciwgZGVyIHNjaG9uCnNvIHZpZWxlIFByb2JsZW1lIGdlbG9lc3QgaGF0dGUuCkRpZXNlciBuYWhtIGRpZSBIZXJhdXNmb3JkZXJ1bmcgd2lkZXJzdHJlYmVuZCBhbi4gRXIgYnJhdWNodGUgZWluZW4gVGFnIHVtIGRpZQpyaWVzaWdlIE1hc2NoaW5lIGtlbm5lbiB6dSBsZXJuZW4uIEFtIEVuZGUgZGVzIFRhZ2VzIG1hY2h0ZSBlciBlaW4ga2xlaW5lcyB4Cm1pdCBLcmVpZGUgYW4gZGllIE1hc2NoaW5lIHVuZCBzYWd0ZTogIkhpZXIgaXN0IGRhcyBQcm9ibGVtIi4KCkRhcyBUZWlsIHd1cmRlIGVyc2V0enQgdW5kIGRpZSBNYXNjaGluZSBmdW5rdGlvbmllcnRlIHBlcmZla3QuIERpZSBGaXJtYQplcmhpZWx0IGVpbmUgUmVjaG51bmcgdWViZXIgNTAuMDAwLC0gRE0gdm9uIGRlbSBJbmdlbmlldXIgZnVlciBzZWluZSBBcmJlaXQuClNpZSBmb3JkZXJ0ZW4gZWluZSBnZW5hdWUgQXVmc2NobHVlc3NlbHVuZyBzZWluZXIgUmVjaG51bmcuCkRlciBJbmdlbmlldXIgYW50d29ydGV0ZSBrdXJ6OgogICJFaW5lIEtlbm56ZWljaG51bmcgbWl0IEtyZWlkZTogMSwtIERNCiAgIFp1IHdpc3Nlbiwgd28gZGllIE1hcmtpZXJ1bmcgaGluIG11c3M6ICA0OS45OTksLSBETSIKRXIgd3VyZGUgdm9sbCBiZXphaGx0IHVuZCBsZWJ0IHdlaXRlcmhpbiBmcmllZGxpY2ggaW4gUGVuc2lvbi4KKGJhc2llcnQgYXVmIHdhaHJlciBCZWdlYmVuaGVpdCkKCgoKSW5nZW5pZXVyZSBiZWdyZWlmZW4gICAgICAgICAgICA1LkFrdAoKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gTWFzY2hpbmVuYmF1aW5nZW5pZXVyIHVuZCBlaW5lbQpCYXVpbmdlbmlldXI/Ck1hc2NoaW5lbmJhdWluZ2VuaWV1cmUgYmF1ZW4gV2FmZmVuLgpCYXVpbmdlbmlldXJlIGJhdWVuIFppZWxlLgoKCgpJbmdlbmlldXJlIGJlZ3JlaWZlbiAgICAgICAgICAgIDYuQWt0CgpEcmVpIEluZ2VuaWV1cnN0dWRlbnRlbiBzdGVoZW4genVzYW1tZW4gdW5kIGRpc2t1dGllcmVuIGRpZSBtb2VnbGljaGVuCkVudHdpY2tsZXIgZGVzIG1lbnNjaGxpY2hlbiBLb2VycGVycy4KCkRlciBlaW5lIHNhZ3Q6ICJEYXMgd2FyIGVpbiBNYXNjaGluZW5iYXVlci4gU2NoYXV0IGV1Y2ggbnVyIG1hbCBhbGwgZGllCkdlbGVua2UgYW4hIgpEYXJhdWYgZGVyIFp3ZWl0ZTogIk5laW4gZXMgd2FyIGVpbiBFbGVrdHJvaW5nZW5pZXVyLiBEYXMgTmVydmVuc3lzdGVtIGhhdAp0YXVzZW5kZSBlbGVrdHJpc2NoZXIgVmVyYmluZHVuZ2VuLiIKRGVyIExldHp0ZTogIkluIFdpcmtsaWNoa2VpdCB3YXIgZXMgZWluIEJhdWluZ2VuaWV1ci4gV2VyIHNvbnN0IHd1ZXJkZSBlaW5lCkFid2Fzc2VybGVpdHVuZyBtaXR0ZW4gZHVyY2ggZWluIFZlcmdudWVndW5nc3plbnRydW0gbGVpdGVuLiIKCgoKSW5nZW5pZXVyZSBiZWdyZWlmZW4gICAgICAgICAgICA3LkFrdAoKIk5vcm1hbGUgTWVuc2NoZW4gZGVua2VuLCB3YXMgbmljaHQga2FwdXR0IGlzdCB3aXJkIGF1Y2ggbmljaHQgcmVwYXJpZXJ0LgpJbmdlbmlldXJlIGRlbmtlbiwgd2VubiBlcyBub2NoIG5pY2h0IGthcHV0dCBpc3QsIGRhbm4gaGF0IGVzIHp1IHdlbmlnZQpNb2VnbGljaGtlaXRlbi4iCgoKCkluZ2VuaWV1cmUgYmVncmVpZmVuICAgICAgICAgICAgOC5Ba3QKCkVpbiBBcmNoaXRla3QsIGVpbiBLdWVuc3RsZXIgdW5kIGVpbiBJbmdlbmlldXIgdW50ZXJoYWx0ZW4gc2ljaCBkYXJ1ZWJlciAgb2IKZXMgYmVzc2VyIGlzdCwgZWluZSBGcmF1IG9kZXIgZWluZSBHZWxpZWJ0ZSB6dSBoYWJlbi4gRGVyIEFyY2hpdGVrdCBlcnphZWhsdCwKZGFzcyBlciBkaWUgWmVpdCBtaXQgc2VpbmVyIEZyYXUgZ2VuaWVzc3QsIHdhZWhyZW5kIHNpZSBlaW5lIHNvbGlkZSBHcnVuZGxhZ2UKZnVlciBlaW5lIGRhdWVyaGFmdGUgQmV6aWVodW5nIHNjaGFmZmVuLiBEZXIgS3VlbnN0bGVyIHNhZ3QgZXIgbWFnIGxpZWJlciBlaW5lCkdlbGllYnRlIGF1ZiBHcnVuZCBkZXIgTGVpZGVuc2NoYWZ0IHVuZCBkZXIgR2VoZWltbmlzc2UuIERlciBJbmdlbmlldXIgbWVpbnQ6CiJJY2ggbWFnIGJlaWRlIgoiQmVpZGU/Pz8iCiJKYSwgd2VubiBkdSBlaW5lIEZyYXUgdW5kIGVpbmUgR2VsaWVidGUgaGFzdCwgbWVpbmVuIGJlaWRlIGR1IHZlcmJyaW5nc3QKZGVpbmUgWmVpdCBtaXQgZGVyIEFuZGVyZW4uIFNvIGhhc3QgZHUgWmVpdCwgaW5zIExhYm9yIHp1IGdlaGVuIHVuZCBkb3J0IHp1CmFyYmVpdGVuLiIKCgoKCkluZ2VuaWV1cmUgYmVncmVpZmVuICAgICAgICAgICAgOS5Ba3QKCkFscyBlaW4gSW5nZW5pZXVyIGVpbmVzIFRhZ2VzIGRpZSBTdHJhc3NlIHVlYmVycXVlcnRlLCB3dXJkZSBlciB2b24gZWluZW0KRnJvc2NoIGFuZ2VzcHJvY2hlbjogIldlbm4gZHUgbWljaCBrdWVzc3QsIHdlcmRlIGljaCBlaW5lIHd1bmRlcnNjaG9lbmUKUHJpbnplc3NpbiIgRXIgYmV1Z3RlIHNpY2ggcnVudGVyLCBob2IgZGVuIEZyb3NjaCBhdWYgdW5kIHN0ZWNrdGUgaWhuIGluIGRpZQpUYXNjaGUuCkRlciBGcm9zY2ggc3ByYWNoIGVybmV1dCB6dSBpaG06ICJXZW5uIGR1IG1pY2gga3Vlc3N0IHVuZCBtaWNoIHp1ciBQcmluemVzc2luCm1hY2hzdCwgYmxlaWJlIGljaCBlaW5lIFdvY2hlIGJlaSBkaXIuIiBEZXIgSW5nZW5pZXVyIG5haG0gaWhuIGF1cyBkZXIgVGFzY2hlLApsYWVjaGVsdGUgaWhuIGFuIHVuZCBzdGVja3RlIGlobiB3aWVkZXIgenVydWVjay4gRGEgc2NocmllIGRlciBGcm9zY2g6ICJXZW5uCmR1IG1pY2gga3Vlc3N0IHVuZCB6dXIgUHJpbnplc3NpbiBtYWNoc3QsIGJsZWliZSBpY2ggYmVpIGRpciB1bmQgbWFjaGUgd2FzIGR1CndpbGxzdCEiIFdpZWRlciBuYWhtIGVyIGRlbiBGcm9zY2ggaGVyYXVzLCBsYWVjaGVsdGUgaWhuIGFuIHVuZCBzdGVja3RlIGlobgp3aWVkZXIgenVydWVjay4KRGEgZnJhZ3RlIGRlciBGcm9zY2ggc2NobGllc3NsaWNoOiAiV2FzIGlzdCBsb3M/IEljaCBoYWJlIGRpciBnZXNhZ3QsIEljaCBzZWkKZWluZSBzY2hvZW5lIFByaW56ZXNzaW4sIGljaCBibGVpYmUgZnVlciBlaW5lIFdvY2hlIGJlaSBkaXIgdW5kIG1hY2hlIHdhcyBkdQp3aWxsc3QuIFdhcnVtIGt1ZXNzdCBkdSBtaWNoIG5pY2h0PyIKRGFyYXVmIGRlciBJbmdlbmlldXI6ICJTY2hhdSBpY2ggYmluIEluZ2VuaWV1ci4gSWNoIGhhYmUga2VpbmUgWmVpdCBmdWVyIGVpbmUKRnJldW5kaW4uIEFiZXIgZWluIHNwcmVjaGVuZGVyIEZyb3NjaCAuLi4uIGRhcyBpc3QgY29vbCEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVydHJldGVyIChEZWVwYmx1ZSwgMTIuIERleiAyMDAxLCAxMTowMzoxMSk6ClN0YXVic2F1Z2VydmVydHJldGVyIHZlcmthdWZlbiBTdGF1YnNhdWdlcgpWZXJzaWNoZXJ1bmdzdmVydHJldGVyIHZlcmthdWZlbiBWZXJzaWNoZXJ1bmdlbgpWb2xrc3ZlcnRyZXRlciB2ZXJrYXU8Tk8gQ0FSUklFUj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBWZXJ0cmV0ZXIgKEdyaW1tYm9ybiwgMTIuIERleiAyMDAxLCAxMTo0OToyMCk6Cn4jISBybj1EZWVwYmx1ZSBydD0xMDA4MTUxMzkxIHJnPXdpdHplCn4jISB0aWQ9MTAwODE1MTM5MQpEZXIgU2Nod2Vpc3NlciBzY2h3ZWlzc3QuCkRlciBNYXVyZXIgbWF1ZXJ0LgpEZXIgQ2hlZiBzY2hlZmZlbHQuCgpBdCBhIHRyYWluIHN0YXRpb24sIHRoZSB0cmFpbiBzdG9wcy4KQXQgYSBidXMgc3RhdGlvbiwgdGhlIGJ1cyBzdG9wcy4KQXQgYSB3b3Jrc3RhdGlvbi4uLgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFZlcnRyZXRlciAoU2lsdmFuYSwgMTIuIERleiAyMDAxLCAxMTo1MjowNCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAwODE1NDE2MCByZz13aXR6ZQp+IyEgdGlkPTEwMDgxNTEzOTEKSW0gU3BlaXNld2FnZW4gc3BlaXN0IG1hbi4KSW0gU2NobGFmd2FnZW4gc2NobGFlZnQgbWFuLgpJbSBUcmllYndhZ2VuLi4uPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29vbGVyIFNwaW9uYWdla3VycyBkYW5rIFVTQSAoTGluZmxhcywgMTguIERleiAyMDAxLCAxNTowODoyMyk6Cmh0dHA6Ly9yZXdhcmRzZm9yanVzdGljZS5uZXQKCkwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoyNC4xMi4sIGt1cnogdW5kIHNjaG1lcnpsb3MgOikgKEFuYXRvbCwgMTkuIERleiAyMDAxLCAxMzowNzozNCk6CgpKb3NlZiBzYWd0OiBIdWNoLCBlaW4gTWFlZGNoZW4hCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VpaG5hY2h0c21hbm4gKERlZXBibHVlLCAyMi4gRGV6IDIwMDEsIDIwOjIxOjM2KToKR3JhZCBnZWxlc2VuOgpMaWViZXIgZ3V0ZXIgV2VpaG5hY2h0c21hbm4KU2NoYXUgbWljaCBuaWNodCBzbyBib2VzZSBhbi4KU3RlY2tlIERlaW5lIFJ1dGUgd2VnCkFydGlnIHNlaW4gaGF0IGRvY2gga2VpbiBad2Vjay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLiAoR2xvaW5zb24sICA0LiBKYW4gMjAwMiwgMTY6MjM6NTEpOgpKZXN1cyBzdGVodCB2b3IgZWluZXIgTWVuZ2UgZGllIGVpbmUgRnJhdSBzdGVpbmlnZW4gbW9lY2h0ZS4gRXIgc3ByaWNodApiZXNjaHdpY2h0aWdlbmQ6ICJXZXIgdm9uIEV1Y2ggb2huZSBGZWhsZXIgaXN0IHdlcmZlIGRlbiBlcnN0ZW4gU3RlaW4hIgpEaWUgRnJhdSB3aXJkIHZvbiBlaW5lbSBncm9zc2VuIEZlbHNlbiB6ZXJtYWxtdC4KSmVzdXMgZHJlaHQgc2ljaCB1bSB1bmQgc2FndDogIk11dHRlciwgbWFuY2htYWwga290enQgRHUgbWljaCBhbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTYXRhbiAoTXVhZGRpYiwgMTAuIEphbiAyMDAyLCAxMTowODoxMik6CkdyYWQgcGVyIE1haWwgYmVrb21tZW46CgpJZiB5b3UgcGxheSBhIFdpbmRvd3MgWFAgaW5zdGFsbGF0aW9uIENEUk9NIGJhY2t3YXJkcywgeW91IGhlYXIgYSBtZXNzYWdlIGZyb20KU2F0YW4uCkV2ZW4gd29yc2UuLi4gaWYgeW91IHBsYXkgaXQgZm9yd2FyZHMsIGl0IGluc3RhbGxzIFdpbmRvd3MgWFAuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGFzcyBtaXQgZGVtIEV1cm8gKEFudGhlYSwgMjEuIEphbiAyMDAyLCAxNjozMTo0Nyk6CkVpZ2VudGxpY2ggZmFlbGx0IGRhcyAyLUV1cm8tU3R1ZWNrIG1pbmRlc3RlbnMgdW50ZXIgUG9ybm9ncmFwaGllLCB3ZW5uIG5pY2h0CnNvZ2FyIHNjaG9uIHVudGVyIHNleHVlbGxlIEJlbGFlc3RpZ3VuZy4gTWFuIG11c3MgbnVyIG1hbCBhdWYgZGVuIHJlY2h0ZW4Kb2JlcmVuIFRlaWwgZGVyIFphaGxzZWl0ZSBlaW5lcyBlbnRzcHJlY2hlbmRlbiBHZWxkc3R1ZWNrZXMgc2NoYXVlbiB1bmQgZWluCmtsZWluZXMgYmlzc2NoZW4gc2NobXV0emlnZSBQaGFudGFzaWUgYXVmYnJpbmdlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNwYXNzIG1pdCBkZW0gRXVybyAoUGlnYSwgMjEuIEphbiAyMDAyLCAxNjo0MDo1OCk6Cn4jISBybj1BbnRoZWEgcnQ9MTAxMTYyNzEwNyByZz13aXR6ZQp+IyEgdGlkPTEwMTE2MjcxMDcKRGFzIGlzdCBkaWUgUmFjaGUgZGFmdWVyLCBkYXNzIGRpZSBTY2h3ZWRlbiBiZWltIEV1cm8gbmljaHQgbWl0bWFjaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIHNpZWJlbiBad2VyZ2UuLi4uLiAoUHVrLCAyMy4gSmFuIDIwMDIsIDAwOjM4OjA0KToKRGllIHNpZWJlbiBad2VyZ2Ugc2luZCBpbiBSb20gdW5kIGJlc3VjaGVuIGRpZSAgVmF0aWthbnN0YWR0LgoKVG9rZXIgZ2VodCBkaWUgVHJlcHBlIGhvY2ggdW5kIGtsaW5nZWx0IGFuIGRlciBUdWVyIHZvbSAgUGFwc3QuCgpEZXIgUGFwc3Qgc2VsYnN0IG9lZmZuZXQgZGllIFR1ZXIgdW5kIGZyYWd0OiAiVG9rZXIsIG1laW4gU29obiwgd2FzO2thbm4gaWNoCmZ1ZXIgRGljaCB0dW4/IiAgCgpUb2tlciBmcmFndDogIkVudHNjaHVsZGlnZW4gU2llLCBFdXJlICBFeGVsbGVueiwgYWJlciBnaWJ0IGVzO1p3ZXJnbm9ubmVuIGluClJvbT8iICAgCgpEZXIgUGFwc3QgbGFlY2hlbHQgdW5kICBhbnR3b3J0ZXQ6Ik5laW4gVG9rZXIsIGVzIGdpYnQga2VpbmU7WmVyZ25vbm5lbiBpbgpSb20iLiAKCkltIEhpbnRlcmdydW5kICBzaWVodCBkZXIgUGFwc3QgZGFzIGVpbmlnZSBkZXIgYW5kZXJlbiBad2VyZ2UgICAgICAgICAgIAphbmZhbmdlbiB6dSBraWNoZXJuLiAgIAoKVG9rZXIgZnJhZ3QgZGFubiA6IkV1cmUgRXhlbGxlbnosIGdpYnQgZXMgZGVubiBad2VyZ25vbm5lbiBpbjtJdGFsaWVuPyIgICAKCkRlciBQYXBzdCBzY2hhdXQgYXVmIFRva2VyIHVuZCBhbnR3b3J0ZXQ6Ik5laW4sIFRva2VyLCBlcyBnaWJ0O2tlaW5lClp3ZXJnbm9ubmVuIGluIEl0YWxpZW4iLiAgCgpKZXR6dCBmYW5nZW4gZGllIGFuZGVyZW4gWndlcmdlIGFuIHp1ICBsYWNoZW4uICAKClRva2VyIHdlaXRlcjoiR2lidCBlcyBkZW5uIFp3ZXJnbm9ubmVuIGluIEV1cm9wYT8iICAgCgpEZXIgIFBhcHN0LCBkZW4gZGllIEZyYWdlbiBsYW5nc2FtIG5lcnZlbiwgYW50d29ydGV0OiJUb2tlciwgZXM7Z2lidCBrZWluZSAKWndlcmdub25uZW4gaW4gZ2FueiBFdXJvcGEiLiAKCkVpbmlnZSBkZXIgYW5kZXJlbiBad2VyZ2UgYmllZ2VuIHNpY2ggYmVyZWl0cyAgdm9yIExhY2hlbi4KClRva2VyIHN0cmVja3Qgc2ljaCB1bmQgZnJhZ3Q6IkxpZWJlciBQYXBzdCwgZ2lidCBlcyAgdWViZXJoYXVwdDtad2VyZ25vbm5lbgphdWYgZGVyIFdlbHQ/IgoKRGVyIFBhcHN0LCBtaXR0bGVyd2VpbGUgIGZydXN0cmllcnQsIHNhZ3Q6IlRva2VyLCBlcyBnaWJ0IG5pcmdlbmR3bzthdWYgZGVyCldlbHQgWndlcmdub25uZW4hIiAgCgpCZWkgIGRpZXNlciBBbnR3b3J0IGZhbmdlbiBkaWUgYW5kZXJlbiBad2VyZ2UgYW4gbGF1dGhhbHMgenUgTGFjaGVuICAgICAKdW5kIHp1IGh1ZXBmZW4gIHVuZCBydWZlbjogCiJUb2tlciBoYXQgZWluZW4gUGluZ3VpbiBnZWJ1bXN0ISBUb2tlciBoYXQgZWluIFBpbmd1aW4gZ2VidW1zdCEgICAgICAgICAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERpZSBzaWViZW4gWndlcmdlLi4uLi4gKE1vbnRhbnVzLCAyMy4gSmFuIDIwMDIsIDAwOjQ4OjUyKToKfiMhIHJuPVB1ayBydD0xMDExNzQyNjg0IHJnPXdpdHplCn4jISB0aWQ9MTAxMTc0MjY4NAoiVG9rZXIiPyBXZXIgaXN0ICJUb2tlciI/CkljaCBrZW5uIGRlbiAiSm9rZXIiLCBzbyB3aWUgaW4gInNvbWUgcGVvcGxlIGNhbGwgbWUgYSBzcGFjZSBjb3dib3kiLCBhYmVyCiJUb2tlciI/ClVuZCB3ZW5uIGhlaXNzZW4gZGllIFp3ZXJnZSBkb2NoIGVoIEFkaSB1bmQgQmVydCwgQ29ubnkgdW5kIERldCwgRWRlIHVuZApGcml0emNoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERpZSBzaWViZW4gWndlcmdlLi4uLi4gKEN1Y2h1bGxpbiwgMjMuIEphbiAyMDAyLCAwMTo1MzoyMSk6Cn4jISBybj1Nb250YW51cyBydD0xMDExNzQzMzMyIHJnPXdpdHplCn4jISB0aWQ9MTAxMTc0MjY4NApOZW5lbmUsIGRhcyBNYWluemVsbWFlbm5jaGVuLUFCQyBpc3QgbmljaHQgZ2xlaWNoIEdlYnJ1ZWRlciBHcmltbS4gOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3Bhc3MgbWl0IGRlbSBFdXJvIChaYXJuaXlhLCAyMy4gSmFuIDIwMDIsIDA5OjE3OjE2KToKfiMhIHJuPUFudGhlYSBydD0xMDExNjI3MTA3IHJnPXdpdHplCn4jISB0aWQ9MTAxMTYyNzEwNwpEYXMgaXN0IGtlaW5lIFBvcm5vZ3JhcGhpZSwgc29uc3Qgd2FlcmUgamEgamVkZXMgQmlvYnVjaCBpbmRpemllcnQuLi4gCgpJY2ggaGFiIHdvaGwgbWFsIGlyZ2VuZHdvIGdlbGVzZW4sIGRhc3MgUG9ybm9ncmFwaGllIGFuZmFlbmd0LCBkZW5uIGRlciBQZW5pcwppbiBlaW5lbSBXaW5rZWwgdm9uIG1laHIgYWxzIDQ1IEdyYWQgdm9uIGRlciBTZW5rcmVjaHRlbiBhYnN0ZWh0Li4uLiBkZXN3ZWdlbgpoYWJlbiBkaWUgYmVpIGRlciBlbnRzcHJlY2hlbmRlbiBCZWhvZXJkZSBhdWNoIGltbWVyIGVpbiBHZW9kcmVpZWNrLgoKTWFyYwoKUC5TLjogRXMgc29sbCBMZXV0ZSBnZWJlbiwgZGEgc3RlaHQgZXIgZGVzd2VnZW4gaW1tZXIgd2FhZ2VyZWNodCwgd2VpbCBlcgphdWZsaWVndC4uLi4uIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGllIHNpZWJlbiBad2VyZ2UuLi4uLiAoRGFyaWEsIDIzLiBKYW4gMjAwMiwgMTE6MTM6NTApOgp+IyEgcm49Q3VjaHVsbGluIHJ0PTEwMTE3NDcyMDEgcmc9d2l0emUKfiMhIHRpZD0xMDExNzQyNjg0CkhpZXNzIG5pY2h0IGVpbiBad2VyZyBTY2hsZWljaGk/CkRhcmlhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEaWUgc2llYmVuIFp3ZXJnZS4uLi4uIChBbnRoZWEsIDIzLiBKYW4gMjAwMiwgMTE6MTc6MzMpOgp+IyEgcm49RGFyaWEgcnQ9MTAxMTc4MDgzMCByZz13aXR6ZQp+IyEgdGlkPTEwMTE3NDI2ODQKU2NobGVpY2hpPyBLZW5uZSBpY2ggbmljaHQuIE51ciBzbyBzZWx0c2FtZSB0eXBlbiB3aWUgRmxpbnRuYWlsIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGllIHNpZWJlbiBad2VyZ2UuLi4uLiAoRm9vYmFyLCAyMy4gSmFuIDIwMDIsIDE0OjQzOjA0KToKfiMhIHJuPVB1ayBydD0xMDExNzQyNjg0IHJnPXdpdHplCn4jISB0aWQ9MTAxMTc0MjY4NApWaWVsbGVpY2h0IHdhciBlcyBhdWNoIEJhdG1hbj8KCkZvb2JhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEaWUgc2llYmVuIFp3ZXJnZS4uLi4uIChIaWdodCwgMjMuIEphbiAyMDAyLCAxOToyNToyMSk6Cn4jISBybj1Nb250YW51cyBydD0xMDExNzQzMzMyIHJnPXdpdHplCn4jISB0aWQ9MTAxMTc0MjY4NApwcmVpc2ZyYWdlOiB3byBsaWVndCBkZXIgdW50ZXJzY2hpZWQgendpc2NoZW4gendlcmdlbiB1bmQgbWVpbnplbG1hZW5uY2hlbiA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEaWUgc2llYmVuIFp3ZXJnZS4uLi4uIChEZWVwYmx1ZSwgMjMuIEphbiAyMDAyLCAxOToyNjowMyk6Cn4jISBybj1IaWdodCBydD0xMDExODEwMzIxIHJnPXdpdHplCn4jISB0aWQ9MTAxMTc0MjY4NApEZXIgRmVybnNlaGVyIGlzdCBnZXJ1Y2hzbmV1dHJhbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBHcmFkIHZvbiBlaW5lbSBCZWthbm50ZW4gYmVrb21tZW46IChWYW5pb24sIDI0LiBKYW4gMjAwMiwgMTg6NDk6MzYpOgpUaGlzIGhhZCBtb3N0IG9mIHRoZSBzdGF0ZSBvZiBNaWNoaWdhbgpsYXVnaGluZyBmb3IgMiBkYXlzIGFuZCBhIHZlcnkgZW1iYXJyYXNzZWQKZmVtYWxlIG5ld3MgYW5jaG9yIHdobyB3aWxsLCBpbiB0aGUgZnV0dXJlLApsaWtlbHkgdGhpbmsgYmVmb3JlIHNoZSBzcGVha3MuCgogV2hhdCBoYXBwZW5zIHdoZW4geW91IHByZWRpY3Qgc25vdyBidXQgZG9uJ3QgZ2V0IGFueS4uLi46CgpUcnVlIHN0b3J5Li4ud2UgaGFkIGEgZmVtYWxlIG5ld3MgYW5jaG9yIHdobywKdGhlIGRheSBhZnRlciBpdCB3YXMgc3VwcG9zZWQgdG8gaGF2ZQpzbm93ZWQgKGFuZCBkaWRuJ3QhKSwgdHVybmVkIHRvIHRoZSB3ZWF0aGVybWFuCmFuZCBhc2tlZCAiLi4uU28gQm9iLCB3aGVyZSdzIHRoYXQgOCBpbmNoZXMKIHlvdSBwcm9taXNlZCBtZSBsYXN0IG5pZ2h0PyIKCk5vdCBvbmx5IGRpZCBIRSBoYXZlIHRvIGxlYXZlIHRoZSBzZXQsCmFib3V0IGhhbGYgdGhlIGNyZXcgZGlkIHRvbywgdGhleSB3ZXJlIGxhdWdoaW5nIHNvIGhhcmQhCgpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIExldHplIFN1ZW5kZS4uLiAoR25vbWUsIDI3LiBKYW4gMjAwMiwgMTU6Mjc6MDMpOgpTdGVoZW4gZWluIEhvYmJpdCwgZWluIFp3ZXJnIHVuZCBlaW4gRWxmIHZvciBkZXIgSGltbWVsc3Bmb3J0ZS4KUGV0cnVzIG1hY2h0IGF1ZiB1bmQgc2FndDogJ0hpZXIgZW50c2NoZWlkZXQgc2ljaCBqZXR6dCwgb2IgaWhyCmluIGRpZSBIbGxlIGtvbW10LCBvZGVyIG9iIGljaCBldWNoIEVpbmxhc3MgZ2V3YWVocmUuIEJlZ2VidApldWNoIGF1ZiBkZW4gUGZhZCBkZXIgVHVnZW5kIHVuZCB1bnRlcnppZWh0IGV1Y2ggZWluZXIgbGV0enRlbgpQcnVlZnVuZy4nCiBEaWUgZHJlaSB0dW4sIHdpZSBpaG5lbiBnZWhlaXNzZW4gdW5kIG1hY2hlbiBzaWNoIGF1ZiBkZW4gV2VnLgpOYWNoIGt1cnplciBaZWl0IGVyc2NoZWludCB2b3IgaWhuZW4gaW4gZGVyIEx1ZnQgZWluZSBGbGFzY2hlClp3ZXJnZW5iaWVyLiBEZXIgWndlcmcgdmVyc3VjaHQgenUgd2lkZXJzdGVoZW4sIHNjaGFmZnQgZXMgamVkb2NoIG5pY2h0LApzYWV1ZnQgc2llIGluIGVpbmVtIFp1ZyBhdXMgdW5kIHdpcmQgc29mb3J0IGluIGRpZSBIb2VsbGUgdmVyYmFubnQuCiBEZXIgSG9iYml0IHVuZCBkZXIgRWxmIGdlaGVuIHdlaXRlciwgdW5kIG5hY2ggZWluaWdlciBaZWl0CmVudGRlY2t0IGRlciBIb2JiaXQgZWluIFBmZWlmY2hlbiB1bmQgZWluIFBhZWNrY2hlbiBUYWJhayBhbQpXZWdlc3JhbmQuIFNlaW5lIEF1Z2VuIGdsYWVuemVuLgpEYSBzYWd0IGRlciBFbGY6ICdXZW5uIER1IERpY2ggamV0enQgYnVlY2tzdCwgc2luZCB3aXIgYmVpZGUgZHJhbi4uLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRvc2Zpc2ggKEFudGhlYSwgMzEuIEphbiAyMDAyLCAxMzoxMzozNCk6ClRoZSByZW1hcmthYmxlIHN0b3J5IG9mIHRoZSBEb3NmaXNoCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpMb25nIGFnbywgaW4gdGhlIGRheXMgd2hlbiBhbGwgZGlza3MgZmxvcHBlZCBpbiB0aGUgYnJlZXplIGFuZCB0aGUgd3JpdGluZyBvZgp3b3JkcyB3YXMgb24gYSBzdGFyLCB0aGUgQmx1ZSBHaWFudCBkdWcgZm9yIHRoZSBwZW9wbGUgdGhlIFBlYSBTZWEuIEJ1dCBoZQpuZWVkZWQgYSBjcmVhdHVyZSB3aG8gY291bGQgc2FpbCB0aGUgd2F0ZXJzLCBhbmQgd291bGQgbmVlZCBmb3Igc3VwcG9ydCBidXQKZmV3IHJhbXMuCgpTbyB0aGUgR2F0ZXNrZWVwZXIsIHdobyB3YXMgc2FpZCB0byBiZSBib3RoIG1pY3JvIGFuZCBzb2Z0LCBhY3F1aXJlZCBhCkRvc2Zpc2gsIHdobyB3YXMgc21hbGwgYW5kIHNwcnksIGFuZCBjb3VsZCBzd2ltIHRoZSBuYXJyb3cgc2l4dGVlbi1iaXQKY2hhbm5lbC4gQnV0IHRoZSBEb3NmaXNoIHdhcyBub3QgYnJpZ2h0LCBhbmQgY291bGQgYmUgdGF1Z2h0IGZldyBuZXcgdHJpY2tzLgpIaXMgYWxwaGFiZXQgaGFkIG5vIEEncywgQidzLCBvciBRJ3MsIGJ1dCBhIG1lcmUgNjQwIEsncywgYW5kIHRoZSBzaXplIG9mIGhpcwpmaWxlIGNhYmluZXQgd2FzIGxpbWl0ZWQgYnkgaGlzIG93biBmYXQuCgpBdCBmaXJzdCB0aGUgcGVvcGxlIGxvdmVkIHRoZSBEb3NmaXNoLCBmb3IgaGUgd2FzIHRoZSBvbmx5IG9uZSB3aG8gY291bGQgc3dpbQp0aGUgUGVhIFNlYS4gQnV0IHRoZSBwZW9wbGUgc29vbiBncmV3IHRpcmVkIG9mIGNvbW1hbmRpbmcgaGlzIGxpbmUsIGFuZApjb21wbGFpbmVkIHRoYXQgaGUgY291bGQgYmUgbmVpdGhlciBkcmFnZ2VkIG5vciBkcm9wcGVkLiAiRm9yc29vdGgsIiB0aGV5CmNyaWVkLiAidGhlIERvc2Zpc2ggY2FuIG9ubHkgZG8gb25lIGpvYiBhdCBhIHRpbWUsIGFuZCBvZiBuYW1lcywgaGUga25vd3Mgb25seQplaWdodCBhbmQgdGhyZWUuIiBBbmQgbWFueSBvZiB0aGVtIGxlZnQgdGhlIFBlYSBTZWEgZm9yIGdvb2QsIGFuZCB3ZW50IG9mZiBpbgpzZWFyY2ggb2YgdGhlIE1hZ2ljIEFwcGxlLgoKQWx0aG91Z2ggbWFueSB3ZW50LCBmYXIgbW9yZSBzdGF5ZWQsIGJlY2F1c2UgYWRtaXR0YW5jZSB0byB0aGUgUGVhIFNlYSB3YXMKY2hlYXAuIFNvIHRoZSBHYXRlc2tlZXBlciBzdHVkaWVkIHRoZSBNYWdpYyBBcHBsZSwgYW5kIHJlc3RlZCBhd2hpbGUgaW4gdGhlClBhcmMgb2YgWGVyLU94LCBhbmQgaGUgbWFkZSBhIFdpbmRvdyB0aGF0IGNvdWxkIHJpZGUgb24gdGhlIERvc2Zpc2ggYW5kIGRvIGl0cwp0aGlua2luZyBmb3IgaXQuIEJ1dCB0aGUgV2luZG93IHdhcyBzbG93LCBhbmQgaXQgd291bGQgYnJlYWsgd2hlbiB0aGUgRG9zZmlzaApnb3QgY29uZnVzZWQuIFNvIG1vc3QgcGVvcGxlIGNvbnRlbnRlZCB0aGVtc2VsdmVzIHdpdGggdGhlIERvc2Zpc2ggYWxvbmUuCgpOb3cgaXQgY2FtZSB0byBwYXNzIHRoYXQgdGhlIEJsdWUgR2lhbnQgY2FtZSB1cG9uIHRoZSBHYXRlc2tlZXBlciwgYW5kIHNwb2tlCnRodXM6ICJDb21lLCBsZXQgdXMgbWFrZSBvZiBvdXJzZWx2ZXMgc29tZXRoaW5nIGdyZWF0ZXIgdGhhbiB0aGUgRG9zZmlzaC4iIFRoZQpCbHVlIEdpYW50IHNlZW1lZCBsaWtlIGEgaHVtYnVnIGFuZCBzbyB0aGV5IGNhbGxlZCB0aGUgbmV3IGNyZWF0dXJlIE9aIElJLgoKTm93IE96IElJIHdhcyBzbWFydGVyIHRoYW4gdGhlIERvc2Zpc2gsIGFzIG1vc3QgdGhpbmdzIGFyZS4gSXQgY291bGQgZHJhZyBhbmQKZHJvcCwgYW5kIGNvdWxkIGtlZXAgZmlsZXMgd2l0aG91dCBiZWNvbWluZyBmYXQuIEJ1dCB0aGUgcGVvcGxlIGNhcmVkIGZvciBpdApub3QuIFNvIHRoZSBCbHVlIEdpYW50IGFuZCB0aGUgR2F0ZXNrZWVwZXIgcHJvbWlzZWQgYW5vdGhlciBPWiBJSSwgdG8gYmUKY2FsbGVkIE96IElJIFRvbywgdGhhdCBjb3VsZCBzd2ltIHRoZSBmYXN0IG5ldyAzMi1iaXQgd2lkZSBQZWEgU2VhLgoKVGhlbiBsbywgYSBzdHJhbmdlIG1pcmFjbGUgb2NjdXJyZWQuIEFsdGhvdWdoIHRoZSBXaW5kb3cgdGhhdCByb2RlIG9uIHRoZQpEb3NmaXNoIHdhcyBzbG93LCBpdCB3YXMgcHJldHR5LCBhbmQgdGhlIHRoaXJkIFdpbmRvdyB3YXMgdGhlIHByZXR0aWVzdCBvZgphbGwuIEFuZCB0aGUgcGVvcGxlIGJlZ2FuIHRvIGxpa2UgdGhlIHRoaXJkIFdpbmRvdywgYW5kIHRvIHVzZSBpdC4gU28gdGhlCkdhdGVza2VlcGVyIHR1cm5lZCB0byB0aGUgQmx1ZSBHaWFudCBhbmQgc2FpZCwgIkZpZSBvbiB0aGVlLCBmb3IgSSBuZWVkIHRoZWUKbm90LiBLZWVwIHRoeSBPWiBJSSBUb28sIGFuZCBJIHNoYWxsIG1ha2Ugb2YgbXkgV2luZG93IGFuIEVudGl0eSB0aGF0IHdpbGwgbm90Cm5lZWQgdGhlIERvc2Zpc2gsIGFuZCB3aWxsIHN3aW0gaW4gdGhlIDMyLWJpdCBQZWEgU2VhLiIKClllYXJzIHBhc3NlZCwgYW5kIHRoZSB3b3Jrc2hvcHMgb2YgdGhlIEdhdGVza2VlcGVyIGFuZCB0aGUgQmx1ZSBHaWFudCB3ZXJlCm92ZXJydW4gYnkgaW5zZWN0cy4gQW5kIHRoZSBwZW9wbGUgd2VudCBvbiB1c2luZyB0aGVpciBEb3NmaXNoIHdpdGggYSBXaW5kb3c7CmV2ZW4gdGhvdWdoIHRoZSBEb3NmaXNoIHdvdWxkIGZyb20gdGltZSB0byB0aW1lIGJlY29tZSBjb25mdXNlZCBhbmQgZGllLCBpdApjb3VsZCBhbHdheXMgYmUgcmV2aXZlZCB3aXRoIHRocmVlIGZpbmdlcnMuCgpUaGVuIHRoZXJlIGNhbWUgYSBkYXkgd2hlbiB0aGUgQmx1ZSBHaWFudCBsZXQgZm9ydGggaGlzIE9aIElJIFRvbyBvbnRvIHRoZQp3b3JsZC4gVGhlIE96IElJIFRvbyB3YXMgaW5kZWVkIG1pZ2h0eSwgYW5kIGF3ZXNvbWUsIGFuZCByZXF1aXJlZCBhIGdyZWF0IHJhbSwKYW5kIHRoZSB3b3JsZCB3YXMgY2hhbmdlZCBub3QgYSB3aGl0LiBGb3IgdGhlIHBlb3BsZSBzYWlkLCAiSXQgaXMgaW5kZWVkCmdyZWF0LCBidXQgd2Ugc2VlIGxpdHRsZSBhcHBsaWNhdGlvbiBmb3IgaXQuIiBBbmQgdGhleSB3ZXJlIGRvdWJ0ZnVsLCBiZWNhdXNlCnRoZSBCbHVlIEdpYW50IGhhZCBtZXQgd2l0aCB0aGUgTWFnaWMgQXBwbGUsIGFuZCB0b2dldGhlciB0aGV5IHdlcmUgZmFzaGlvbmluZwphIFRhbGlnZW50LCBhbmQgdGhlIFRhbGlnZW50IHdhcyBtYWRlIG9mIG9iamVjdHMsIGFuZCB3YXMgbW9zdCBwaW5rLgoKTm93IHRoZSBHYXRlc2tlZXBlciBoYWQgZ3Jvd24gYW1iaXRpb3VzLCBhbmQgYXMgaGUgaGFkIGJlZW4gYW1iaXRpb3VzIGJlZm9yZQpoZSBncmV3LCBoZSB3YXMgbm93IG1vcmUgYW1iaXRpb3VzIHN0aWxsLiBTbyBoZSBwcm90ZWN0ZWQgaGlzIFdpbmRvdyBFbnRpdHkKd2l0aCBncmVhdCBzZWN1cml0eSwgYW5kIG1hZGUgaXRzIG5ldCB3b3JrIGJvdGggaW4gc2VydmluZyBhbmQgd2l0aCBwZWVycy4gQW5kCnRoZSBFbnRpdHkgd291bGQgc3dpbSwgbm90IG9ubHkgaW4gdGhlIFBlYSBTZWEsIGJ1dCBpbiB0aGUgT2NlYW5zIG9mIEdyZWF0ClJpc2suICJZZWEsIiB0aGUgR2F0ZXNrZWVwZXIgZGVjbGFyZWQsICJ0aG91Z2ggbXkgZW50aXR5IHdpbGwgcmVxdWlyZSBhCmdyZWF0ZXIgcmFtIHRoYW4gT3ogSUkgVG9vLCBpdCB3aWxsIGJlIG1vcmUgcG93ZXJmdWwgdGhhbiBhIHdvcmxkIG9mIEV1bnVjaHMuIgoKQW5kIHNvIHRoZSBHYXRlc2tlZXBlciBwcmVwYXJlZCB0byB1bmxlYXNoIGhpcyBFbnRpdHkgdG8gdGhlIHdvcmxkLCBpbiBhbGwgYnV0CnR3byBjaXRpZXMuIEZvciBoZSBwcm9taXNlZCB0aGF0IGEgZ3JlYXRlciBXaW5kb3csIGEgZ3JlYXRlciBFbnRpdHksIGFuZCBldmVuCmEgZ3JlYXRlciBEb3NmaXNoIHdvdWxkIGFwcGVhciBvbmUgZGF5IGluIENoaWNhZ28gYW5kIENhaXJvLCBhbmQgdGhleSB0b28Kd291bGQgYmUgYnVpbHQgb2Ygb2JqZWN0cy4KCk5vdyB0aGUgRXVudWNocyB3aG8gbGl2ZWQgaW4gdGhlIE9jZWFucyBvZiBHcmVhdCBSaXNrLCBhbmQgd2hvIHNjb3JuZWQgdGhlIFBlYQpTZWEsIGJlZ2FuIHRvIGxvb2sgdXBvbiB0aGVpciB3b3JsZCB3aXRoIGZlYXIuIEZvciB0aGUgUGVhIFNlYSBoYWQgZ3Jvd24sIGFuZApncmVhdCBzaGlwcyB3ZXJlIHNhaWxpbmcgaW4gaXQsIHRoZSBFbnRpdHkgd2FzIGFib3V0IHRvIGludmFkZSB0aGVpciBvY2VhbnMsCmFuZCBpdCB3YXMgcnVtb3JlZCB0aGF0IGZpbGVzIHdvdWxkIGJlIG5hbWVkIGluIGxldHRlcnMgZ3JlYXRlciB0aGFuIGVpZ2h0LgpBbmQgdGhlIEV1bnVjaHMgbG9va2VkIHVwb24gdGhlIFBlYSBTZWEsIGFuZCBtYW55IG9mIHRoZW0gdGhvdWdodCB0bwppbW1pZ3JhdGUuCgpXaXRoaW4gdGhlIE9jZWFucyBvZiBHcmVhdCBSaXNrIHdlcmUgbWFueSBTdW4gV29yc2hpcHBlcnMsIGFuZCB0aGV5IHdhbnRlZCB0bwpleGNlbCwgYW5kIG1ha2UgdGhlaXIgd29yZHMgcGVyZmVjdCwgYW5kIGRvIHRoZWlyIGpvYnMgYXMgZWFzeSBhcwpvbmUtdHdvLXRocmVlLiBBbmQgd2hhdCdzIG1vcmUsIG1hbnkgb2YgdGhlbSBubyBsb25nZXIgd2FudGVkIHRvIHBheSBmb3IgdGhlClJpc2suIFNvIHRoZSBTdW4gTG9yZCB3ZW50IHRvIHRoZSBQZWEgU2VhLCBhbmQgZ290IGhpbXNlbGYgZWlnaHR5LXNpeGVkLgoKQW5kIHRha2luZyB0aGUgbmV4dCBzdGVwIHdhcyBIZSBvZiB0aGUgTmV4dFN0ZXAsIHdobyBoYWQgZ2l2ZW4gdXAgYnVpbGRpbmcgaGlzCmJveGVzIG9mIGJsYWNrLiBBbmQgaGUgcHJvY2xhaW1lZCBsb3VkbHkgdGhhdCBoZSBjb3VsZCBoZWxwIGFueW9uZSBtYWtlCndvbmRyb3VzIHNvZnQgd2FyZXMsIHRoZW4gYWRtaXR0ZWQgbWVla2x5IHRoYXQgb25seSB0aG9zZSB3aG8ga25ldyBoaW0gY291bGQKdXNlIHRob3NlIHdhcmVzLCBhbmQgaGUgd2FzIG1hZGUgb2Ygb2JqZWN0cywgYW5kIHJlcXVpcmVkIHRoZSBiaWdnZXN0IHJhbSBvZgphbGwuCgpBbmQgdGhlIHBlb3BsZSBsb29rZWQgb3V0IHVwb24gdGhlIFBlYSBTZWEsIGFuZCB0aGV5IHdlcmUgc29yZSBhbWF6ZWQuIEFuZApzb3JlIGNvbmZ1c2VkLiBBbmQgc29yZSBzb3JlLiBBbmQgdGhhdCBpcyB3aHksIHRvIHRoaXMgZGF5LCBPemVzLCBFbnRpdGllcywKYW5kIEV1bnVjaHMgYmF0dGxlIG9uIHRoZSBzaG9yZXMgb2YgdGhlIFBlYSBTZWEsIGJ1dCB0aGUgcGVvcGxlIHN0aWxsIHRyYXZlbApvbiB0aGUgc2ltcGxlIERvc2Zpc2guCgpOb3cgaXQgY2FtZSB0byBwYXNzIHRoYXQgd29ya3Nob3BzIG9mIHRoZSBHYXRlc2tlZXBlciBmYXNoaW9uZWQgYSBuZXcgSWRvbCBpbgp0aGUgaW1hZ2Ugb2YgSGltc2VsZiwgYW5kIG5hbWVkIGl0IE9oLUxheSBUaGUgU2Vjb25kLiBBbmQgdGhlcmUgd2FzIG11Y2gKZXhjaXRlbWVudCBhbW9uZ3N0IHRoZSBUcmliZXMgb2YgRGV2ZWxvcGVycywgZm9yIHRoZXkgZ2F6ZWQgdXBvbiB0aGUKU3BlY2lmaWNhdGlvbiBhbmQgc2F3IHRoYXQgaXQgd2FzIEdvb2QsIGFuZCBXZWxsIENvbnNpZGVyZWQgYW5kIG5vdCBjdXJzZWQKd2l0aCB0aGUgYmxpZ2h0IG9mIHRoZSBLbHVkZ2UuCgpCdXQgZXZlbiB0aGUgTWlyYWNsZXMgb2YgdGhlIE9oLUxheSBUaGUgU2Vjb25kIHdlcmUgbm90IGVub3VnaCBmb3IgdGhlIE1hc3RlcnMKb2YgdGhlIEdhdGVza2VlcGVyLCBmb3IgaXQgY2FtZSB0byBwYXNzIHRoYXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBNYWNybyBoYWQKYmVlbiBSZXZpbGVkLCBhbmQgU3RvbmVkLCBhbmQgcHVibGljYWxseSBIdW1pbGlhdGVkLCBlc3BlY2lhbGx5IGFtb25nc3QgdGhlCnRyaWJlcyBvZiB0aGUgQ29ycG9yYXRlLgoKU28gdGhlIEdhdGVza2VlcGVyIGNvbW1hbmRlZCB0aGUgd29ya3Nob3BzIHRvIGRlbGl2ZXIgdW50byB0aGUgVHJpYmVzIG9mIHRoZQpDb3Jwb3JhdGVzIGEgbmV3IFdvbmRlciwgYW5kIG5hbWVkIGl0IENvbW1hbiBNYWNybyBMYW5ndWFnZS4gVGhleSBjYWxsZWQgaXQgYQpCYXNpYyBvZiBPYmplY3QgT3ZlcnRvbmVzLiBBbmQgdGhlbiwgbGVzdCB0aGlzIGNvbmZ1c2UgdGhlIFRyaWJlIG9mIHRoZQpDb3Jwb3JhdGUsIG5hbWVkIGl0IGZvciB0aGUgdGhpcmQgdGltZSBhcyB0aGUgQmFzaWNhbGx5IFZpc3VhbCBvZiB0aGUKQXBwbGljYXRpb25zIEtpbmQuCgpCdXQgdGhlIFRyaWJlIG9mIFVwc3RhcnRzIGtub3duIGFzIHRoZSBSZXZpZXdlcnMgbG9va2VkIGRvd24gdXBvbiB0aGUgbmV3Ck1pcmFjbGVzIG9mIHRoZSBBcHBsaWNhdGlvbnMsIGFuZCBjYXN0IHNjb3JuIHVwb24gdGhlbSwgc2F5aW5nICJWZXJpbHkgdGhvdQpoYXMgRmFpbGVkLiBUaGluZSBuZXcgU2hpbnkgQXBwbGljYXRpb25zIGFyZSBub3QgYmxlc3NlZCB3aXRoIHRoZSBuZXcgV29uZGVyLApleGNlcHQgZm9yIHRoZSBTeXN0ZW0gVGVybWluYXRvciBrbm93biBhcyB0aGUgRXhjZWwgRml2ZSwgd2hpY2ggaXMgUmlkZGxlZAp3aXRoIHRoZSBCbGlnaHQgb2YgdGhlIEJ1Zy4iCgpBbmQgdGhlbiB0aGUgVHJpYmUgb2YgUmV2aWV3ZXJzIGV4YW1pbmVkIHRoZSBuZXcgV29uZGVyIGluIGNsb3NlciBkZXRhaWwsIGFuZApmb3VuZCB0b28gdGhhdCBpdCB3YXMgY3Vyc2VkIHdpdGggdGhlIEJsaWdodCBvZiB0aGUgSW5jb21wYXRpYmxlIFN5bnRheC4gVGhleQpzaG91dGVkICJCdXQgdGhlIHdvcmtlcnMgb2YgdGhlIEdhdGVza2VlcGVyIHRvbGQgdXMgaXQgd2FzIENvbXBhdGlibGUsIGFuZCBUaGUKU2FtZSwgYW5kIFdvbmRlcm91cy4gVGhlIEFwcGxpY2F0aW9uIG5hbWVkIFdvcmQgaXMgaW5mbGljdGVkIHdpdGggdGhlIEtsdWRnZQprbm93biBhbW9uZ3N0IHRoZSBMYW5kIGFzIFdvcmRCYXNpYyBpbiBpdHMgVGhpcmQgSW5jYXJuYXRpb24sIGFuZCB0aGlzIGlzIG5vdApHb29kIEVub3VnaC4KClRoZSBIaWdoIFByaWVzdHMgb2YgdGhlIEdhdGVza2VlcGVyIHJlcGxpZWQsIGNyeWluZyAiVmVyaWx5IHdlIGFyZSBHZXR0aW5nClRoZXJlLCBidXQgaXQgd2lsbCB0YWtlIG1vcmUgVGltZS4iIEFuZCB0aGUgVHJpYmUgb2YgdGhlIFJldmlld2VycyByZXBsaWVkLApzYXlpbmcgIlRob3UgaGFzdCBoYWQgZW5vdWdoIFRpbWUsIHRoZXJlIGlzIGxpdHRsZSBsZWZ0IGluIHRoZSBDb2ZmZXJzIG9mCkNyZWRpYmlsaXR5LgoKQW5kIExvLCB0aGUgSGlnaCBQcmllc3RzIG9mIHRoZSBHYXRlc2tlZXBlciByZXBsaWVkICJCdXQgeW91IGlnbm9yZXRoIG91ciBCZXN0CldvbmRlciBPZiBBbGwsIHRoZSBNaXJhY2xlIG9mIHRoZSBJbnRlbGxpU2Vuc2UuIiBBbmQgdGhlIFRyaWJlIG9mIHRoZQpSZXZpZXdlcnMgY2FzdCBzY29ybiB1cG9uIHRoZSBIaWdoIFByaWVzdHMsIGFuZCBjYWxsZWQgZm9yIGEgUHVibGljIFN0b25pbmcsCmNyeWluZyAiVGhhdCBpcyBub3RoaW5nIGJ1dCB0aGUgaW5mbHVlbmNlIG9mIFRoZSBEZXZpbCBIaW1zZWxmLCBrbm93biBpbiB0aGUKTGFuZHMgb2YgdGhlIEpvdXJuYWxpc3RzIGFzIFRoZSBNYXJrZXRpbmcgQnVsbHNoaXQuCgpBbmQgdGhlIFRyaWJlcyBvZiB0aGUgSm91cm5hbGlzdHMgYW5kIENvcnBvcmF0ZXMgbG9va2VkIHVwb24gdGhlIEdhcmRlbiBvZiB0aGUKTG90dXMgdG8gc2VlIGlmIG1vcmUgcHJvbWlzaW5nIGZsb3dlcnMgd2VyZSBncm93aW5nIHRoZXJlaW4uLi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzIGRlciBNb3R0ZW5raXN0ZSAoQW50aGVhLCAzMS4gSmFuIDIwMDIsIDEzOjE4OjQzKToKTG9naXNjaGVzIFZlcnN0YWVuZG5pcyBJCgpXZWxjaGVyIEdlZ2Vuc3RhbmQgcGFzc3QgbmljaHQgaW4gZGllIFJlaWhlPwoKIDEuVG9hc3RlcgogMi5Ub2FzdGVyCiAzLkdsdWVoYmlybmUKIDQuVG9hc3RlcgoKTG9naXNjaGVzIFZlcnN0YWVuZG5pcyBJSQoKV2VsY2hlciBHZWdlbnN0YW5kIHBhc3N0IHNlaHIgZ3V0IGluIGRpZSBSZWloZT8KCiAxLkVpZmVsdHVybQogMi5XZWNrZXIgKGFuYWxvZykKIDMuMiBaYWhuYnVlcnN0ZW4KIDQuRmFocnJhZCAoQmF1amFociAxOTU2KQoKVmlzdWVsbGVzIERpZmZlcmVuemllcnVuZ3N2ZXJtb2VnZW4gSQoKV2VsY2hlcyBTY2h3YXJ6IGlzdCBkYXMgc2Nod2Flcnplc3RlPwoKIDEuUGVjaHNjaHdhcnoKIDIuS29obHJhYmVuc2Nod2FyegogMy5Lb2hscm91bGFkZW5zY2h3YXJ6CiA0LlN0b2NrZmluc3RlcgoKT3B0aXNjaGUgVGFldXNjaHVuZ2VuIEkKCldlbGNoZSBkZXIgNSBMaW5pZW4gaXN0IGxhZW5nZXI/CgogMS4tLS0tLS0tLS0tLS0tLQogMi4tLS0tLS0tLS0tLS0tLQoKT3B0aXNjaGUgVGFldXNjaHVuZ2VuIElJCgpXZWxjaGVzIERyZWllY2sgaXN0IGFtIGRyZWllY2tpZ3N0ZW4/CgogMS5laW4gRHJlaWVjawogMi5laW4gYW5kZXJlcyBEcmVpZWNrCiAzLmVpbiBEcmVpZWNrIG1pdCBkZW4gV2lua2VsbiA2MC01NS02NT0xODAKIDQuZWluIERyZWllY2sgbWl0IGRlbiBNYXNzZW4gOTAtNjAtOTAKCkFsbGdlbWVpbndpc3NlbiBJCgpXZWxjaGVzIGRlciBudW4gZm9sZ2VuZGVuIEdlcmFldGUgaXN0IGtlaW4gTW9kZW0/CgogMS5laW4gTW9kZW0KIDIuZWluIGFuZGVyZXMgTW9kZW0KIDMud2llZGVyIGRhcyBlcnN0ZSBNb2RlbQogNC5rZWluIE1vZGVtCgpBbGxnZW1laW53aXNzZW4gSUkKCkluIHdlbGNoZW0gZGVyIG51biBmb2xnZW5kZW4gV2Vya2Ugc3BpZWxlbiAyMSBad2VyZ2UgZWluZSBncm9zc2UgUm9sbGU/CgogMS5JbiBkZW0gUm9tYW4gIkZyYXUgV2lydGluIHVuZCBkaWUgendlaSBGdXNzYmFsbG1hbm5zY2hhZnRlbiBvaG5lCiAgIExpbmllbnJpY2h0ZXIuIgogMi5JbiBkZW0gQnVlaG5lbmtsYXNzaWtlciAiUHlnbWFlbGlvbiIKIDMuSW4gZGVtIHZvbiBIZWlubyBzbyBvcG9wcHVsYWVyIGdlbWFjaHRlbiBWb2xrc2xpZWQgIlp3ZXJndmFnYWJ1bmRlbiIKIDQuSW4gZGVtIEdyaW1tcy1NYWVyY2hlbiAiRGllIDMgU2NobmVld2lycmNoZW5zIgoKR2VvZ3JhcGhpZQoKSW4gd2VsY2hlbSBFRy1MYW5kIGdpbHQsIG5hY2ggZGVyIGVpbmVyIFZlcnBhY2t1bmdzZWluaGVpdCB2b24gbWVociBhbHMgMTAKU3RyZWljaGhvbHpzY2hhY2h0ZWxuIGFuLCBlaW5lIEdlYnJhdWNoc2FubGVpdHVuZyBiZWlnZWxlZ3Qgd2VyZGVuIG11c3M/CgogMS5CZWxnaWVuCiAyLkd1YXRlbWFsYQogMy5BdWYgamVkZW4gRmFsbCBCZWxnaWVuCiA0LkJvZGVuc2VlCgpMaXRlcmF0dXIKCkRlciBSb21hbiAiRGllIGRyZWkgTXVza2V0aWVyZSIgZGVzIEZyYW56b3NlbiBBbGV4YW5kcmUgRHVtYXMgbWFjaHRlIHVlYmVyCk5hY2h0IGRyZWkgTWFlbm5lciB3ZWx0YmVydWVobXQsIGRpZSBtaXQgTWFudGVsIHVuZCBEZWdlbiBmdWVyIEtvZW5pZywKVmF0ZXJsYW5kIHVuZCBNdXR0ZXJzcHJhY2hlIGZvY2h0ZW4uCgpGcmFnZTogV2llIGhlaXNzZW4gZGllIGRyZWkgSGF1ZGVnZW4/CgogMS5BcnRvcyB1bmQgUG9ydG9zCiAyLk9keXNzZXVzIHVuZCBGcmFuawogMy5Qb3J0b3MgdW5kIEFyYW1pcwogNC5GdWVuZiBoaWVzc2VuIFBvcnRvcyB1bmQgMjAgaGllc3NlbiBBcnRvcwoKS2lubwoKSW4gZGVyIFNjaGx1ZXNzZWxzemVuZSBkZXMgRmlsbXMgIkNhc2FibGFuY2EiIGdpYnQgSHVtcGhyZXkgQm9nYXJ0IHNlaW5lcgpWZXJtaWV0ZXJpbiBkaWUgQXBwYXJ0ZW1lbnQtU2NobHVlc3NlbCB6dXJ1ZWNrLiBEYWJlaSBzcHJpY2h0IGVyIGVpbmVuIFNhdHosCmRlciBmdWVyIE1pbGxpb25lbiB2b24gS2luby1GYW5zIHp1bSBrdWx0aXNjaGVuIEVyZWlnbmlzIHdlcmRlbiBzb2xsdGUuCgpGcmFnZTogV2llIGxhdXRldCBkaWVzZXIgU2F0ej8KCiAxLkljaCBrbGF1JyBkaXIgZ2xlaWNoIGRpZSBQZmxhdW1lbiwgS2xlaW5lcyEKIDIuSWNoIGthdWUgZ2xlaWNoIGFtIERhdW1lbiwgbWVpbmlnZXMhCiAzLkljaCBoYXUnIGRpciBhdWYgZGllIEF1Z2VuLCBLbGVpbmVzIQogNC5JY2ggc2NoYXUgZGlyIGluIGRpZSBPaHJlbiwgS2xlaW5lcyEKCkFzdHJvbG9naWUKCkZyYWdlOiBXZWxjaGVzIFN0ZXJuemVpY2hlbiBkZXMgQ2hpbmVzaXNjaGVuIEhvcm9za29wcyBoYWV0dGVuIFNpZSwgd2VubiBTaWUKYW0gMTAuIE5vdmVtYmVyIDE5NzAgdW0gMjAuMjcgVWhyIGluIEx1ZWRlbnNjaGVpZCBhbHMgS2luZCBlaW5lcyBhcmJlaXRzbG9zZW4KU2FuZHNhY2tmYWJyaWthbnRlbiB1bmQgZWluZXIgc296aWFsIGVuZ2FnaWVydGVuIFRlbGVmb25sYWNrZXJlcmluIGdlYm9yZW4Kd2FlcmVuPwoKIDEuRWluZWlpZ2VyIEdvbGRoYW1zdGVyIG1pdCBBc3plbmRlbnQgRGFja2VsIHVuZCBIdW5kZWt1Y2hlbiBpbSB2aWVydGVuCkhhdXMuCiAyLldpbGRzY2hlaW4gbWl0IEFzemVuZGVudCBSYWV1Y2hlcmFhbCB1bmQgZWluZXIgYXVzZ2VwcmFlZ3RlbiBLb25qdW5rdGlvbgogICB2b24gQnVlZmZlbCB1bmQgVHJ1ZWZmZWwgaW0gU3BlaXNlc2FhbAogMy5JY2ggd2FlciAzMSB1bmQgc29uc3Qgbml4LgogNC5JY2ggaGFldHRlIGRhcyBTdGVybnplaWNoZW4gU2F0dGVsc2NobGVwcGVyIG1pdCBBc3plbmRlbnQgVW1sZWl0dW5nIHVuZAogICBlaW5lciBLb25maXJtYXRpb24gendpc2NoZW4gZGVtIGRyaXR0ZW4gdW5kIHZpZXJ0ZW4gSGF1cyBuZWJlbiBkZXIKICAgU2NobG9zc2FsbGVlCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTG9yZCBvZiB0aGUgUmluZ3MgYXMgYW4gYWxsZWdvcnkgZm9yIHRoZSBQaEQ/PyAoTWF0aXMsIDMxLiBKYW4gMjAwMiwgMTM6MjI6NTMpOgpUaGUgc3Rvcnkgc3RhcnRzIHdpdGggRnJvZG86IGEgeW91bmcgaG9iYml0LCBxdWl0ZSBicmlnaHQsIGEgYml0CmRpc3NhdGlzZmllZCB3aXRoIHdoYXQgaGUncyBsZWFybnQgc28gZmFyIGFuZCB3aXRoIGhpcyBtYXRlcyBiYWNrCmhvbWUgd2hvIGp1c3Qgc2VlbSB0byB3YW50IHRvIGdldCBqb2JzIGFuZCBzZXR0bGUgZG93biBhbmQgZHJpbmsgYmVlci4KSGUncyBhbHNvIHZlcnkgbXVjaCBpbiBhd2Ugb2YgaGlzIHR1dG9yIGFuZCBtZW50b3IsIHRoZSB2ZXJ5CnNlbmlvciBwcm9mZXNzb3IgR2FuZGFsZiwgc28gd2hlbiBHYW5kYWxmIHN1Z2dlc3RzIGhlIHRha2Ugb24gYSBzaG9ydApwcm9qZWN0IGZvciBoaW0gKGNhcnJ5aW5nIHRoZSBSaW5nIHRvIFJpdmVuZGVsbCksIGhlIGFncmVlcy4gRnJvZG8gdmVyeQpxdWlja2x5IGVuY291bnRlcnMgdGhlIHNoYWRvd3kgZm9yY2VzIG9mIGZlYXIgYW5kIGRlc3BhaXIgd2hpY2ggd2lsbCBoYXVudAp0aGUgcmVzdCBvZiBoaXMgam91cm5leSBhbmQgbGVhdmUgcGVybWFuZW50IHNjYXJzIG9uIGhpcyBwc3ljaGUsIGJ1dCBoZQphbHNvIG1ha2VzIHNvbWUgdXNlZnVsIGZyaWVuZHMuIEluIHBhcnRpY3VsYXIsIGhlIHNwZW5kcyBhbiBldmVuaW5nCmRvd24gYXQgdGhlIHB1YiB3aXRoIEFyYWdvcm4sIHdobyBoYXMgYmVlbiB3YW5kZXJpbmcgdGhlIHdvcmxkIGZvciBtYW55CnllYXJzIGFzIEdhbmRhbGYncyBwb3N0ZG9jIGFuZCBiZWNvbWVzIGhpcyBhZHZpc2VyIHdoZW4gR2FuZGFsZiBpc24ndAphcm91bmQuIEFmdGVyIEZyb2RvIGhhcyBjb21wbGV0ZWQgaGlzIGZpcnN0IHByb2plY3QsIEdhbmRhbGYgKGFsb25nIHdpdGgKaGVhZCBvZiBkZXBhcnRtZW50IEVscm9uZCkgcHJvcG9zZXMgdGhhdCB0aGUgd29yayBzaG91bGQgYmUgZXh0ZW5kZWQuCkhlIGFzc2VtYmxlcyBhIGxhcmdlIHJlc2VhcmNoIGdyb3VwLCBpbmNsdWRpbmcgdmlzaXRpbmcgc3R1ZGVudHMgR2ltbGkKYW5kIExlZ29sYXMsIHRoZSBmb3JlaWduIHBvc3Rkb2MgQm9yb21pciwgYW5kIHNldmVyYWwgb2YgRnJvZG8ncyBvd24KZnJpZW5kcyBmcm9tIGhpcyB1bmRlcmdyYWR1YXRlIGRheXMuIEZyb2RvIGFncmVlcyB0byB0YWNrbGUgdGhpcyBsYXJnZXIKcHJvamVjdCwgdGhvdWdoIGhlIGhhcyBtaXhlZCBmZWVsaW5ncyBhYm91dCBpdC4gKCInSSB3aWxsIHRha2UgdGhlIFJpbmcnLApoZSBzYWlkLCAnYWx0aG91Z2ggSSBkbyBub3Qga25vdyB3aHkuJyIpIFZlcnkgcmFwaWRseSwgdGhpbmdzIGdvIHdyb25nLiAKRmlyc3QsIEdhbmRhbGYgZGlzYXBwZWFycyBhbmQgaGFzIG5vIG1vcmUgaW50ZXJhY3Rpb24gd2l0aCBGcm9kbyB1bnRpbCAKZXZlcnl0aGluZyBpcyBvdmVyLiAoRnJvZG8gYXNzdW1lcyBoaXMgc3VwZXJ2aXNvciBpcyBkZWFkOiBpbiBmYWN0LCBoZSdzIApzaW1wbHkgZm91bmQgYSBtb3JlIGludGVyZXN0aW5nIHRvcGljIGFuZCBpcyB3b3JraW5nIG9uIHRoYXQgaW5zdGVhZC4pIApBdCBoaXMgZmlyc3QgaW50ZXJuYXRpb25hbCBjb25mZXJlbmNlIGluIExvcmllbiwgRnJvZG8gaXMgY3Jvc3MtZXhhbWluZWQgCnRlcnJpZnlpbmdseSBieSBHYWxhZHJpZWwsIGFuZCBiZXRyYXllZCBieSBCb3JvbWlyLCB3aG8gaXMgYW54aW91cyB0byBnZXQKdGhlIGNyZWRpdCBmb3IgdGhlIHdvcmsgaGltc2VsZi4gRnJvZG8gY3V0cyBoaW1zZWxmIG9mZiBmcm9tIHRoZSByZXN0IG9mCmhpcyB0ZWFtOiBmcm9tIG5vdyBvbiwgaGUgd2lsbCBvbmx5IGRpc2N1c3MgaGlzIHdvcmsgd2l0aCBTYW0sIGFuIG9sZCAKZnJpZW5kIHdobyBkb2Vzbid0IHJlYWxseSB1bmRlcnN0YW5kIHdoYXQgaXQncyBhbGwgYWJvdXQsIGJ1dCBpbiBhbnkgY2FzZQppcyBwcmVwYXJlZCB0byBnaXZlIEZyb2RvIGNyZWRpdCBmb3IgYmVpbmcgcmF0aGVyIGNsZXZlcmVyIHRoYW4gaGUgaXMuIApUaGVuIGhlIHNldHMgb3V0IHRvd2FyZHMgTW9yZG9yLiBUaGUgbGFzdCBhbmQgZGFya2VzdCBwZXJpb2Qgb2YgRnJvZG8ncyAKam91cm5leSBjbGVhcmx5IHJlcHJlc2VudHMgdGhlIHdyaXRpbmctdXAgc3RhZ2UsIGFzIGhlIHN0cnVnZ2xlcyB0b3dhcmRzIApNb3VudCBEb29tIChzdWJtaXNzaW9uKSwgZmluZGluZyBoaXMgYnVyZGVuIGdyb3dpbmcgaGVhdmllciBhbmQgaGVhdmllciAKeWV0IG1vcmUgYW5kIG1vcmUgYSBwYXJ0IG9mIGhpbXNlbGY7IG1vcmUgYW5kIG1vcmUgdGVycmlmaWVkIG9mIGZhaWx1cmU7IApwbGFndWVkIGJ5IHRoZSBmaWd1cmUgb2YgR29sbHVtLCB0aGUgc3R1ZGVudCB3aG8gY2FycmllZCB0aGUgUmluZyBiZWZvcmUgCmhpbSBidXQgbmV2ZXIgd3JvdGUgdXAgYW5kIHN0aWxsIGhhbmdzIGFyb3VuZCBhcyBhIGJ1cm50LW91dCwgamVhbG91cyBzaGFkb3c7CnRhbGtpbmcgbGVzcyBhbmQgbGVzcyBldmVuIHRvIFNhbS4gV2hlbiBoZSBzdWJtaXRzIHRoZSBSaW5nIHRvIHRoZSBmaXJlLCBpdAppcyBpbiBkZXNwZXJhdGUgY29uZnVzaW9uIHJhdGhlciB0aGFuIHdpdGggY29uZmlkZW5jZSwgYW5kIGZvciBhIHdoaWxlCnRoZSB3b3JsZCBzZWVtcyBlbXB0eS4gRXZlbnR1YWxseSBpdCBpcyBvdmVyOiB0aGUgUmluZyBpcyBnb25lLCBldmVyeW9uZQpjb25ncmF0dWxhdGVzIGhpbSwgYW5kIGZvciBhIGZldyBkYXlzIGhlIGNhbiBjb252aW5jZSBoaW1zZWxmIHRoYXQgaGlzIAp0cm91YmxlcyBhcmUgb3Zlci4gQnV0IHRoZXJlIGlzIG9uZSBtb3JlIG9ic3RhY2xlIHRvIG92ZXJjb21lOiBtb250aHMgbGF0ZXIsCmJhY2sgaW4gdGhlIFNoaXJlLCBoZSBtdXN0IGNvbmZyb250IHRoZSBleHRlcm5hbCBleGFtaW5lciBTYXJ1bWFuLCBhbiBvbGQgCmVuZW15IG9mIEdhbmRhbGYsIHdobyBzZWVrcyB0byBodW1pbGlhdGUgYW5kIGRlc3Ryb3kgaGlzIHJpdmFsJ3MgcHJvdGVnZS4KV2l0aCB0aGUgaGVscCBvZiBoaXMgZnJpZW5kcyBhbmQgY29sbGVhZ3VlcywgRnJvZG8gcGFzc2VzIHRocm91Z2ggdGhpcwpvcmRlYWwsIGJ1dCBkaXNjb3ZlcnMgYXQgdGhlIGVuZCB0aGF0IHZpY3RvcnkgaGFzIG5vIHZhbHVlIGxlZnQgZm9yIGhpbS4KV2hpbGUgaGlzIGZyaWVuZHMgcmV0dXJuIHRvIHNldHRsaW5nIGRvd24gYW5kIGZpbmRpbmcgam9icyBhbmQgc3RhcnRpbmcKZmFtaWxpZXMsIEZyb2RvIHJlbWFpbnMgaW4gbGltYm87IGZpbmFsbHksIGFsb25nIHdpdGggR2FuZGFsZiwgRWxyb25kCmFuZCBtYW55IG90aGVycywgaGUgam9pbnMgdGhlIGJyYWluIGRyYWluIGFjcm9zcyB0aGUgV2VzdGVybiBvY2VhbiB0bwp0aGUgbmV3IGxhbmQgYmV5b25kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1cyBkZXIgTW90dGVua2lzdGUgKEN1Y2h1bGxpbiwgMzEuIEphbiAyMDAyLCAxNDoxNDoyNCk6Cn4jISBybj1BbnRoZWEgcnQ9MTAxMjQ3OTUyMyByZz13aXR6ZQp+IyEgdGlkPTEwMTI0Nzk1MjMKSXN0IGRhcyBkaWUgUHJ1ZWZ1bmcgenVtIE1DU0U/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5peCB1bmQgQyAoTXVhZGRpYiwgMzEuIEphbiAyMDAyLCAxNDozODozOCk6CldoZW4geW91IHB1dCBhIFVOSVggU2hlbGwgdG8geW91ciBlYXIsIGNhbiB5b3UgaGVhciB0aGUgQz8KCldpdGhvdXQgQyB3ZSB3b3VsZCBoYXZlIHRvIHByb2dyYW0gaW4gQmFzaSBhbmQgUGFzYWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVW5peCB1bmQgQyAoV2hpdGV0aWdlciwgMzEuIEphbiAyMDAyLCAxODozODowNyk6Cn4jISBybj1NdWFkZGliIHJ0PTEwMTI0ODQzMTggcmc9d2l0emUKfiMhIHRpZD0xMDEyNDg0MzE4Cm9kZXIgaW4gcHl0aG9uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZXVlciAoQW50aGVhLCAgMS4gRmViIDIwMDIsIDE0OjU0OjIwKToKR2VyYWRlIGF1ZiBodHRwOi8vd3d3LnVsaXN0ZWluLmRlIGdlc2VoZW46CgogICBOYXR1ZXJsaWNoIGtvZW5uZW4gd2lyIHdhcyBnZWdlbiBJaHJlIEltcG90ZW56IHR1biwgYWJlciBpY2ggc2FnZQogICBJaG5lbiBnbGVpY2g6IEVyIHdpcmQgU2llIHR1ZXIgenUgc3RlaGVuIGtvbW1lbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNPIGVpbiBCYXJ0Li4uIChDdWNodWxsaW4sICAyLiBGZWIgMjAwMiwgMDg6MDc6MjkpOgoKSW4gQmF5ZXJuOgoiUGFwYSwgaWNoIGhvYiBtaSB2ZXJsaWVidCEiCiJKbywgbWVpIFNvaG4sIGluIHdlbiBkZW5uPyIKIkljaCBtb2dzIG5pdCBzb2duLi4uIgoiSm8gc29nIHNjaG9uISBJbiBkaWUgTWFyaWE/IgoiTmVlZS4uLiIKIkphIG1laSEgSW4gZGllIEV2YSB2aWVsbGVpY2h0PyIKIk5lZWUsIFBhcGEuLi4iCiJFdHdhIGluIGRpZSBaZW56aSwgZGllIG9sbGUgSHVyPyIKIk5lZWUsIFBhcGEuLi4gSW4uLi4gSW4gZGVuIFNlcHAhIgoiSW4gZGVuIFNlcHA/Pz8gQWJlci4uLiBEZXIgaXMgZG9jaCBldmFuZ2VsaXNjaCEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIDE1IHZlcnJ1ZWNrZXN0ZW4gU2NoZWlkdW5nc2dydWVuZGUgKFZhbmlvbiwgIDIuIEZlYiAyMDAyLCAyMDozODozMyk6CkVpbiBOdWVybmJlcmdlciB1ZWJlcmxpZXNzIG5pY2h0cyBkZW0gWnVmYWxsOiBTZXgsIHNvIHN0YW5kIGVzIGltIEVoZXZlcnRyYWcsCmhhdHRlIGRyZWltYWwgd29lY2hlbnRsaWNoIHN0YXR0enVmaW5kZW4uIEFuIGJlc3RpbW10ZW4gV29jaGVudGFnZW4gaGF0dGUgU2llCmRpZSBJbml0aWF0aXZlIHp1IGVyZ3JlaWZlbiAtIGluIERlc3NvdXMsIGRlcmVuIEZhcmJlIGVyIGJlc3RpbW10ZS4KU2NoZWlkdW5nIG5hY2ggMiBKYWhyZW4KCgpFaW5lIE11ZW5jaG5lcmluIHdhciB2ZXJuYXJydCBpbiBpaHJlbiBwcmVpc2dla3JvZW50ZW4gV2luZGh1bmQuIFJhY2hlIGRlcwp2ZXJuYWNobGFlc3NpZ3RlbiBFaGVtYW5uZXM6IEVyIGZ1ZXR0ZXJ0ZSBkYXMgVGllciBoZWltbGljaCAtIGRlciBIdW5kIHd1cmRlCmZldHQgdW5kIGdld2FubiBrZWluZSBQcmVpc2UgbWVoci4gVHJlbm51bmcgbmFjaCAzIEphaHJlbiAtIHdlZ2VuCiJzZWVsaXNjaGVyIEdyYXVzYW1rZWl0IgoKCkxpZWJzdGUgRnJlaXplaXRiZXNjaGFlZnRpZ3VuZyBlaW5lcyBNYW5uZXMgYXVzIFBlbm5zeWx2YW5pYTogTWl0IGVpbmVyClN0ZWluc2NobGV1ZGVyIHNjaG9zcyBlciBCbGVjaGRvc2VuIHZvbSBLb3BmIHNlaW5lciBGcmF1LiBTY2hlaWR1bmcgbmFjaCA1CkphaHJlbi4KClNpZSBtdXNzdGUgaWhuIG1pdCAiSGVyciBNYWpvciIgYW5yZWRlbiB1bmQgdm9yIGlobSBzdHJhbW0gc3RlaGVuIC0gYmVpIGplZGVyCkJlZ2VnbnVuZyBpbSBIYXVzLiBOYWNoIDEwIEphaHJlbiByZWljaHRlIGRpZSBGcmF1IGVpbmVzIFVTLU9mZml6aWVycyBkaWUKU2NoZWlkdW5nIGVpbi4gQXVzZ2VncnVlc3N0LgoKCkVpbiBIYW1idXJnZXIgRmluYW56YmVhbXRlciBzYXNzIGluIGplZGVyIGZyZWllbiBNaW51dGUgdm9yIHNlaW5lbSBwcml2YXRlbgpDb21wdXRlciB1bmQgaW52ZXN0aWVydGUgZWluIFZlcm1vZWdlbiBpbiB0ZXVyZSBadXNhdHpnZXJhZXRlLiBBbHMgZXIgc2VpbmVyCkZyYXUgbmFjaCA2IEphaHJlbiBkYXMgSGF1c2hhbHRzZ2VsZCB3ZWdlbiBuZXVlciBDb21wdXRlcnByb2dyYW1tZSBrdWVyenRlLAp3YXIgZGllIEVoZSB2b3JiZWkuCgoKRWluIFp1Z3NjaGFmZm5lciBhdXMgTnVlcm5iZXJnIGxlZ3RlIHNpY2ggaW4gamVkZXIgZ3JvZXNzZXJlbiBkZXV0c2NoZW4gU3RhZHQKZWluZSBHZWxpZWJ0ZSB6dS4gQWxzIGVyIGluIFJlbnRlIGdpbmcsIHZlcnN0YXV0ZSBlciBzYWVtdGxpY2hlIExpZWJlc2JyaWVmZQppbiB6d2VpIGdyb3NzZW4gS29mZmVybiB1bmQgZGVwb25pZXJ0ZSBzaWUgaW0gS2VsbGVyIC0gZGllIEVoZWZyYXUgc3RvbHBlcnRlCmRhcnVlYmVyLiAyNSBKYWhyZSBsYW5nIGhhdHRlIHNpZSBhbiBzZWluZSBUcmV1ZSBnZWdsYXVidC4KCgpFaW4gUmVudG5lciBhdXMgT2tsYWhvbWEgd2FyIHNvIGdlaXppZywgZGFzcyBlciBzZWluZXIgRnJhdSBlaW4gbmV1ZXMgR2ViaXNzCnZlcndlaWdlcnRlLiBCZWdydWVuZHVuZzogU2llIGtvZW5uZSBqYSBzZWluZXMgbWl0IGJlbnV0emVuLiBTY2hlaWR1bmcgbmFjaCA1MApKYWhyZW4hCgoKSW4gU3R1dHRnYXJ0IHplcmJyYWNoIGVpbmUgRWhlIGltIHNpZWJ0ZW4gSmFociwgd2VpbCBzaWNoIGRpZSBGcmF1IGltIEF1dG8KaWhyZXMgTWFubmVzIGltbWVyIGJ1ZWNrZW4gbXVzc3RlLCB3ZW5uIGVpbmUgc2VpbmVyIEZyZXVuZGlubmVuIHZvcmJlaWZ1aHIuCgoKSW4gTXVlbmNoZW4gd3VyZGUgZWluZSBFaGVmcmF1IHRhZWdsaWNoIGJlbm90ZXQuIFdpZSBndXQgd2FyIGRhcyBFc3Nlbiwgd2llCnNhdWJlciBkaWUgV29obnVuZywgd2llIHByaWNrZWxuZCBkZXIgU2V4LCB3aWUgYWRyZXR0IGlocmUgS2xlaWR1bmc/IEFtIEVuZGUKZGVyIFdvY2hlIHpvZyBkZXIgIkdvZXR0ZXJnYXR0ZSIgQmlsYW56IC0gYmVpIHVlYmVyd2llZ2VuZCBzY2hsZWNodGVuIE5vdGVuCmdhYidzIHdlbmlnZXIgSGF1c2hhbHRzZ2VsZC4gU2NoZWlkdW5nIG5hY2ggMiBKYWhyZW4uCgoKRWluZSBGcmF1IGF1cyBCZXJsaW4gbGllc3Mgc2ljaCBuYWNoIGRyZWkgSmFocmVuIHNjaGVpZGVuLCB3ZWlsIGlocgpBbmdldHJhdXRlciBkaWUgR2V3b2huaGVpdCBoYXR0ZSwgbWl0IEZyZXVuZGVuIGRhcyBCYWRlemltbWVyIHp1ICJzdHVlcm1lbiIuClVuZCB6d2FyIGltbWVyIGRhbm4sIHdlbm4gc2llIGdlcmFkZSBpbiBkZXIgV2FubmUgc2Fzcy4KCgpFaW4gTWFubiBhdXMgVGVubmVzc2VlIGJla2FtIHZvbiBzZWluZXIgRnJhdSBvZnQgU3RlYWtzIG1pdCBnZWJyYXRlbmVuClp3aWViZWxuIHZvcmdlc2V0enQuIFNlaW5lIFZvcnN0ZWxsdW5nIHZvbSBUZWlsZW46IEVyIGFzcyBkYXMgZ2FuemUgRmxlaXNjaAp1bmQgbGllc3Mgc2llIG1pdCBkZW4gWndpZWJlbG4gc2l0emVuLiBTY2hlaWR1bmcgbmFjaCA0IEphaHJlbi4KCgpFaW5lIDQ1amFlaHJpZ2UgTXVlbmNobmVyaW4ga2xhZ3RlIHZvciBHZXJpY2h0LCB3ZWlsIGlociBNYW5uIGRhcmF1ZiBiZXN0YW5kLApkaWUgZ2VtZWluc2FtZW4gTmFlY2h0ZSBpbiBlaW5lciBIYWVuZ2VtYXR0ZSB6dSB2ZXJicmluZ2VuLiBUcmVubnVuZyAtIHdlaWwKc2llIGluIDIzIEVoZWphaHJlbiAxNm1hbCBhdXMgZGVtIGx1ZnRpZ2VuIEJldHQgc3R1ZXJ6dGUuCgoKRWluIE1hbm4gYXVzIE1vbnRhbmEgbWFya2llcnRlIHRhZWdsaWNoIGRpZSBTY2h1aHNvaGxlbiBzZWluZXIgRnJhdSBtaXQKS3JlaWRlLiBTbyB3dXNzdGUgZXIsIG9iIHNpZSBkYXMgSGF1cyB2ZXJsYXNzZW4gaGF0dGUuIFNjaGVpZHVuZyBuYWNoIDIKSmFocmVuCgoKV2VpbCBlaW4gRnJhbmtmdXJ0ZXIgaW4gZGVyIEhvY2h6ZWl0c25hY2h0IG5pY2h0cyBCZXNzZXJlcyB6dSB0dW4gaGF0dGUsIGFscwpzaWNoIDUgU3R1bmRlbiBsYW5nIGVpbmVuIGJydXRhbGVuIFZpZGVvZmlsbSBhbnp1c2NoYXVlbiwgbmFobSBkaWUgQnJhdXQKUmVpc3NhdXMuIE5vY2ggaW4gZGVyc2VsYmVuIE5hY2h0IHRyYWYgc2llIGVpbmVuIG5ldWVuIE1hbm4gZnVlcnMgTGViZW4uCgoKRWluIEFtZXJpa2FuZXIgYXVzIFZlcm1vbnQgaGF0dGUgc2VpbmVtIFBhcGFnZWkgZWluZW4gV2Vja3J1ZiBiZWlnZWJyYWNodDoKIkF1ZnN0ZWhlbiwgdmVyZGFtbXQgbm9jaG1hbCwgYXVmc3RlaGVuISIgTmFjaCAzIEphaHJlbiB6b2cgZGllIEVoZWZyYXUKYXVzLgoKVioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEaWUgMTUgdmVycnVlY2tlc3RlbiBTY2hlaWR1bmdzZ3J1ZW5kZSAoUGVyZGl0YSwgIDMuIEZlYiAyMDAyLCAxNzo1MjoyOSk6Cn4jISBybj1WYW5pb24gcnQ9MTAxMjY3ODcxMyByZz13aXR6ZQp+IyEgdGlkPTEwMTI2Nzg3MTMKaG0uLi4Kc28gd2lya2xpY2ggX3dpdHppZ18gZmluZGUgaWNoIHZpZWxlcyBkYXZvbiBuaWNodCB1bmJlZGluZ3QuLi4KUGVyZGl0YSBnaWJ0IGhldXQgbWFsIGlocmVuIFNlbmYgZGF6dQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVyciBkZXIgUmluZ2UuLi4gKEFtYXJ5bGxpcywgIDMuIEZlYiAyMDAyLCAyMjowNDozNSk6CkZhbGxzIGRlciBoaWVyIHNjaG9ubWFsIHdhciBvZGVyIHNjaG9uIGFuZGVyd2VpdGlnIGJla2FubnQgaXN0LCBiaXR0ZSBxCmRydWVja2VuIDopCgpXaWUgd3VlcmRlIEhlcnIgZGVyIFJpbmdlICJEaWUgR2VmYWVocnRlbiIgYXVzc2VoZW4gd2VubiBhbmRlcmUgUmVnaXNzZXVyZSBpaG4KdmVyZmlsbXQgaGFldHRlbj8KCkdlb3JnZSBMdWNhczoKLUhvYmJpdHMgaW4gc2VsdHNhbWVyIEdyYW1tYXRpayBzcHJlY2hzZQotQUxMRSBTY2h3ZXJ0ZXIgbGV1Y2h0ZW4KLWRpZSBHZXNjaGljaHRlIHdpcmQgYXVmIG5ldW4gVGVpbGUgYXVmZ2V0ZWlsdCwgenVlcnN0IHdlcmRlbiBkaWUgbWl0dGxlcmVuCnZlcmZpbG10LCBqZWRlciBUZWlsIGVuZGV0IG1pdCBlaW5lbSBIYXBweSBFbmQKIApKb2huIFdvbzoKLUdhbmRhbGYgd2lyZCBzdGF0dCB2b24gZWluZW0gQWRsZXIgdm9uIDY2IFRhdWJlbiB2b20gVHVybSBnZWZsb2dlbgotTGVnb2xhcyBzY2hpZWdlZmxvZ2VudCBtaXQgendlaSBCb2VnZW4gZ2xlaWNoemVpdGlnIChmcmFndCBtaWNoIG5pY2h0IHdpZSBkYXMKZ2VoZW4gc29sbCkKLXNhZW10bGljaGUgS2FtcGZzemVuZW4gZXJmb2xnZW4gaW4gWmVpdGx1cGUgdW5kIG51ciBtaXQgTXVzaWt1bnRlcm1hbHVuZwogCldvb2R5IEFsbGVuOgotc2Nod2FyekFsbGVuOi93ZWlBbGxlbjogdW5kIG1vbm8KLVByb2JsZW1lIG1pdCBkZW4gT3JrcyB3ZXJkZW4gYXVzZGlza3V0aWVydAogCkRpZXRlciBXZWRlbDoKLWVnYWwsIEhhdXB0c2FjaGUgZXMgc2luZCBIZWlueiBIb2VuaWcsIE1hcmlvIEFkb3JmLCBTdGVmYW4gS3VydCAmIENvIGRhYmVpCiAKSmFtZXMgQ2FtZXJvbjoKLWplZGVyIEZpbG0ga29zdGV0IDQwME1pbyAkCi1Gcm9kbyBzdGVodCBtaXQgZGVtIFJpbmcgYW0gQnVnIGVpbmVzIEVsYmVuYm9vdGVzIHVuZCBzY2hyZWl0ICJJY2ggYmluIGRlcgpLb2VuaWcgZGVyIFdlbHQiCi1Bcm5pZSBzcGllbHQgU2F1cm9uLCB1bmQgYmVoYXVwdGV0IGJlaSBkZXIgQW5mYW5nc3NjaGxhY2h0ICJJJ2xsIGJlIGJhY2siCiAKTS5TaGFtYWxhbGFkaW5nc2J1bXMgKGRlciA2LlNpbm4gTWVuc2NoKQotIHp1bSBTY2hsdU1lbnNjaCkgd2lyZCBlbnRodWVsbHQsIGRhTWVuc2NoKSBkaWUgUmluZ2dlaXN0ZXIgZGllIGVpbnppZ2VuCkxlYmVuZGVuIHNpbmQsIGFsbGUgYW5kZXJlbiBzaW5kIHNjaG9uIHRvdAogCk1pY2hhbCBCYXk6Ci0gR2ltbGk0cyBBeHQgaGF0IGFuIGRlciBTZWl0ZSByaWVzaWcgIldpbGtpbnNvbiIgc3RlaGVuLiBBcmFnb3JucyBLbGFtb3R0ZW4Kc2luZCB2b24gIkphY2sgV29sZnNraW4iIHVuZCBhdWYgTWlhcyBUaXJpdGggd2VoZW4gYW1lcmlrYW5pc2NoZSBGbGFnZ2VuLgpXYWVocmVuZCBlaW5lIEZyYXUgaW4gWmVpdGx1cGUgV2Flc2NoZSBhdWZoYWVuZ3QsIGZsaWVnZW4gZGllIE5hemd1bCB1ZWJlciBzaWUKd2VnLgogClJpZGxleSBTY290dDoKRnJvZG8gaGFldHRlIGVpbmUgSWRlbnRpdGFldHNrcmlzZSwgaW0gV2FsZCBnYWViZSBlcyBFaW5ob2VybmVyLCBkaWUgTmF6Z3VsCmhhZXR0ZW4gZWluIERlc2lnbiB2b24gR2lnZXIsIFNhdXJvbiB3YWVyZSBlaW4gRmVpbnNjaG1lY2tlciB1bmQgZGllCkthbXBmc3plbmVuIHNhZWhlbiAtIGFlaCAtIGdlbmF1c28gYXVzLgogCkhpdGNoY29jazoKTmF6Z3VsIHNlaGVuIGF1cyB3aWUgVm9lZ2VsIHVuZCBGcm9kbyB1bmQgc3VjaHQgdm9yIGlobmVuIGluIGVpbmVyClRlbGVmb256ZWxsZSBTY2h1dHouCkdhbmRhbGYgdW5kIFBpcHBpbiBzY2hsYWZlbiBpbiBNaW5hcyBUaXJpdGggaW0gQmF0ZSdzIE1vdGVsIHVuZCBhbSBTY2hsdXNzCnN0ZWxsdCBzaWNoIHJhdXMgZGFzIEZyb2RvIHNjaG9uIGxhZW5nc3QgdG90IGlzdCB1bmQgU2FtIGRpZSBnYW56ZSBaZWl0IG1pdAplaW5lciBMZWljaGUgZ2V3YW5kZXJ0IGlzdC9nZXJlZGV0IGhhdCEKVW5kIEhpdGNoY29jayB0cml0dCBpbiBkZXIgTmViZW5yb2xsZSBhbHMgR29sbHVtIGF1Zi4KIApKb2huIE1jVGllcm5hbjoKRnJvZG8gd3VlcmRlIHZlcmthdGVydCwgcmF1Y2hlbmQsIGZsdWNoZW5kLCB1bnJhc2llcnQgdW5kIGltIFVudGVyaGVtZCBkdXJjaApkYXMgd2VpaG5hY2h0bGljaGUgTWl0dGVsZXJkZSBzdGFwZmVuIHVuZCBkaWUgZ2FuemUgWmVpdCBicnVtbWVsbjogImljaCBsaWViZQpzb2xjaGUgVGFnZS4uLiIsIHdhZWhyZW5kIGVyIGRlbiBPcmtzIGdsZWljaHplaXRpZyBtYWwgc28gcmljaHRpZyBkZW4gQXJzY2gKdmVyc29obHQuIEdhbmRhbGYgd2FlcmUgc2Nod2FyeiB1bmQgQXJhZ29ybiB3dWVyZGUgZGllIGdhbnplIFplaXQKdWViZXJsZWdlbiwgb2IgZXIgQXJ3ZW4gYW5ydWZlbiBzb2xsdGUuCiAKUm9sYW5kIEVtbWVyaWNoOgpHYW5kYWxmcyBUb2Qgd3VlcmRlIGluIFplaXRsdXBlIGdlemVpZ3QsIGRpZSBTemVuZSBtaXQgZXh0cmVtIGtpdHNjaGlnZXIgTXVzaWsKdW50ZXJsZWd0LCBhYmVyIDIgTWludXRlbiBzcGFldGVyIHd1ZXJkZSBrZWluZSBTYXUgbWVociBkYXZvbiBzcHJlY2hlbi4gRGFzCkJhbHJvZyB3YWVyZSBlaW4gTWFlZGNoZW4gdW5kIGhhZXR0ZSB1ZWJlcmFsbCBpbiBNb3JpYSBFaWVyIGdlbGVndC4gQWxsZQp3dWVyZGVuIEZsYWdnZW4gaWhyZXIgamV3ZWlsaWdlbiBIZXJrdW5mdCBob2NoaGFsdGVuLCBzaWNoIGFiZXIgbGV0enRsaWNoCmRlbm5vY2ggbmFjaCBlaW5lciBiZXdlZ2VuZGVuIFJlZGUgRnJvZG9zIHp1c2FtbWVucmF1ZmVuLCB1bSBTYXVyb24gZ2VtZWluc2FtCndlZ3p1Ym9tYmVuLiBEZXIgUHJhZXNpZGVudCB2b24gTWl0dGVsZXJkZSByZXR0ZXQgZGllIEdlZmFlaHJ0ZW4gdW5kIGhpbGZ0CkZyb2RvIGJlaSBlcmxlZGlnZW4gc2VpbmVyIEF1ZmdhYmUuCkRpZSBEVkQgaGFldHRlIGV4emVsbGVudGVuIFRvbiwgYWJlciBkZXIgQXVkaW9rb21tZW50YXIgd2FlcmUgdW5lcnRyYWVnbGljaAooIkl0J3MgbGlrZSBraW5kIG9mLi4uIikKIApEYXZpZCBGaW5jaGVyOgpEZXIgRmlsbSB3YWVyZSBkdWVzdGVyLCBkaWUgSG9iYml0cyBkZXByZXNzaXZlIFdyYWNrcyB1bmQgR2FuZGFsZiBlaW5lCkVpbmJpbGR1bmcuIFp1bSBTY2hsdXNzIHd1ZXJkZSBTYXVyb24gc2ljaCBmcmVpd2lsbGlnIHN0ZWxsZW4gdW5kIGRlbm5vY2gKc2llZ2VuLgogCkRhdmlkIEx5bmNoOgpOb2NoIGR1ZXN0ZXJlcmUgU3RpbW11bmcuIERpZSBLYW1wZnN6ZW5lbiB3YWVyZW4gbWl0ICJSYW1tc3RlaW4iIHVudGVybGVndC4KR2VnZW4gRW5kZSB3dWVyZGVuIHNpY2ggZGllIEdlZmFlaHJ0ZW4gaW0gQXVlbmxhbmQgc2VsYnN0IGJlZ2VnbmVuIC0gbmllbWFuZAp3dWVyZGUgZGVuIEZpbG0ga2FwaWVyZW4uLi4KIApTdGFubGV5IEt1YnJpY2s6Ci0gRGllIEhvYmJpdGhvZWhsZSBiZXN0ZWh0IGF1cyBuYWhlenUgcXVhZHJhdGlzY2hlbiBHYWVuZ2VuLCB1bSBpbnMgNDozLUZvcm1hdAp6dSBwYXNzZW4uCi0gTmFjaCBlaW5lciBld2lnZW4gRWluc3RlbGx1bmcgZGVzIEF1ZW5sYW5kZXMgZm9sZ3QgZWluIGtyYXNzZXIgU2Nobml0dCBpbgpkaWUgTWluZW4gdm9uIE1vcmlhLgotIERpZSBFbGJlbiB0cmFnZW4gd2VpTW9yaWEuZSBLbGFtb3R0ZW4gdW5kIHNjaHdhcnplIEh1ZXRlLCB1bmQgaWhyZSBTcHJhY2hlCmJlc3RlaHQgYXVzIFdvcnRlbiB3aWUgIkRyb29nIiwgIkRld290c2Noa2EiIHVuZCAiTWFsdHNjaGlrIi4KIApTcGlrZSBMZWU6CktlaW5lIEFlbmRlcnVuZyBpbiBkZXIgU3RvcnksIGFiZXIgYWxsZSBCZXdvaG5lciB2b24gTWl0dGVsZXJkZSBzaW5kIFNjaHdhcnplLgogCkpvaG4gQ2FycGVudGVyOgotIERyZWhidWNoLCBNdXNpaywgU2Nobml0dCB1bmQgUmVnaWUgd2VyZGVuIGF1c3NjaGxpZXNzbGljaCB2b24gSm9obiBDYXJwZW50ZXIKc2VsYnN0IGdlbWFjaHQuCi0gTWl0dGVsZXJkZSBzaWVodCB1bmdld29laG5saWNoIHd1ZXN0aWcgYXVzIHVuZCBpcmdlbmRlaW5lciBkZXIgR2VmYWVocnRlbgppc3QgZWlnZW50bGljaCBlaW4gd2FobnNpbm5pZ2VyIEtpbGxlciBkZXIgamVkZW4gTW9tZW50IHp1c2NobGFnZW4ga2Fubi4KIApFZCBXb29kOgotIERlciBGaWxtIHdhZXJlIFMvVyB1bmQgbmljaHQgaW4gTmV1c2VlbGFuZCwgc29uZGVybiBpbSBTdHVkaW8gZW50c3RhbmRlbi4KLSBEYXMgQmFscm9nIHdhZXJlIGF1cyBQYXBwbWFjaGVlIHVuZCB3dWVyZGUgYW4gRmFlZGVuIGF1ZmdlaGFlbmd0IHZvciBlaW5lcgpnZW1hbHRlbiBLdWxpc3NlIGhlcnVtaGFtcGVsbi4KLSBXYWVyZSBJYW4gTWNLZWxsZW4gd2FlaHJlbmQgZGVyIERyZWhhcmJlaXRlbiBnZXN0b3JiZW4sIHd1ZXJkZSBlciBkdXJjaApTdGV2ZW4gU2VhZ2FsLCBEYW5ueSBEZVZpdG8gb2RlciBzb25zdHdlbiBlcnNldHp0IC0gZGVyIFNjaGF1c3BpZWxlciBoYWV0dGUKQW53ZWlzdW5nIGdlaGFidCwgc2ljaCBkZW4gVW1oYW5nIHZvcidzIEdlc2ljaHQgenUgaGFsdGVuIChtZXJrdCBqYSBrZWluZXIpLgotIERlciBSaW5nIHdhZXJlIG5pY2h0IGF1cyBHb2xkLCBzb25kZXJuIGF1cydtIEthdWd1bW1pYXV0b21hdGVuLgotIEVpbmlnZSBKYWhyemVobnRlIHNwYWV0ZXIgd2FlcmUgZGVyIEZpbG0gYWJlciB0cm90emRlbSBLdWx0IGdld2VzZW4uCiAKUC5ULiBBbmRlcnNvbjoKSW0gVm9yZGVyZ3J1bmQgZGVyIEdlc2NoaWNodGUgc3R1ZW5kZSBkaWUgWmVycmlzc2VuaGVpdCB1bmQgZGFzIHBlcnNvZW5saWNoZQpTY2hpY2tzYWwgZGVyIENoYXJha3RlcmUsIEthZW1wZmUgd2FlcmVuIE5lYmVuc2FjaGUuIEdlZ2VuIEVuZGUgd3VlcmRlIGVzIE9ya3MKcmVnbmVuIHVuZCBkZXIgRmlsbSB3YWVyZSB3b2hsIDE3IFN0dW5kZW4gbGFuZy4KIApRdWVudGluIFRhcmFudGlubyAvIFJvYmVydCBSb2RyaWd1ZXo6Ci0gRnJvZG8gdW5kIFNhbSwgZGllIGNvb2xzdGVuIEdhbmdzdGVyIGluIGdhbnogSG9iYmluZ2VuLCB3ZXJkZW4gdm9uIGlocmVtCkJvc3MgQXJhZ29ybiBiZWF1ZnRyYWd0LCBlaW5lbiBnZWhlaW1uaXN2b2xsZW4gUmluZyB3aWVkZXJ6dWhvbGVuLgotIEluZGVtIHNpZSBHb2xsdW0gZm9sdGVybiB1bmQgaWhtIGVpbiBPaHIgYWJzY2huZWlkZW4sIGVyZmFocmVuIHNpZSwKZGF3aWVkZXJ6dWhvbGVuLiBTYXVyb24gZGVuIFJpbmcgc2VpdCBKYWhyZW4gaW4gc2VpbmVtIEFyc2NoIHZlcnN0ZWNrdCBoYWVsdC4KLSBEZXIgRmlsbSB3dWVyZGUgdm9yIGNvb2xlbiBTcHJ1ZWNoZW4gdW5kIGd1dGVyIE11c2lrIG51ciBzbyBzdHJvdHplbiwgamVkZXMKMy4gV29ydCB3YWVyZSAiZnVjayIgdW5kIEZyb2RvIHVuZCBTYW0gd3VlcmRlbiBzY2h3YXJ6ZSBBbnp1ZWdlIHRyYWdlbi4KIC0gRGVyIFp1c2NoYXVlciB3dWVyZGUgbmllIGVyZmFocmVuLCB6dSB3YXMgZGVyIFJpbmcgZWlnZW50bGljaCBudWV0emUKaXN0Li4uCiAKRGllIFdhY2hvd3NraS1CcnVlZGVyOgotIER1cmNoIEdhbmRhbGYgZXJmYWVocnQgRnJvZG8sIGRhV2FjaG93c2tpLUJydWVkZXI6IGRpZSBpaG0gYXVzIGRlbSBBdWVubGFuZApiZWthbm50ZSBSZWFsaXRhZXQgbnVyIGVpbmUgSWxsdXNpb24gaXN0IC0gZWluIG1hZ2lzY2hlciBSaW5nIHNvbGwgaWhuIGF1ZiBkaWUKYW5kZXJlIFNlaXRlIGJyaW5nZW4ga29lbm5lbi4KLSBEZXIgRmlsbSBoYWV0dGUgamVkZSBNZW5nZSBLdW5nIEZ1IEthbXBmc3plbmVuIChIb2JiaXRzIGdlZ2VuIE9ya3MpLAplaW5kcnVja3N2b2xsIGR1cmNoIEJ1bGxldCBUaW1lIGVpbmdlZmFuZ2VuLgotIEFsbGUgdHJ1ZWdlbiBjb29sZSBTb25uZW5icmlsbGVuLCBsYW5nZSBNYWVudGVsIHVuZCBTdGljaCB3YWVyZSBkYXMgTW9kZWxsCiIzMjEwIiBlaW5lciBiZWthbm50ZW4gZmlubmlzY2hlbiBTY2h3ZXJ0c2NobWllZGUuCi0gRGllIFZvcmxhZ2UgZnVlciBkZW4gRmlsbSB3YWVyZW4gbmljaHQgZGllIFdlcmtlIFRvbGtpZW5zLCBzb25kZXJuCkhEUi1Db21pY3MgdW5kIGRlciBGaWxtIHdhZXJlIG1pdCBUZWNobm8gdW50ZXJsZWd0LgogCkRpZSBDb2VuLUJydWVkZXI6Ck5hY2hkZW0gRnJvZG8sIGVpbiBwaGxlZ21hdGlzY2hlciwgYXJiZWl0c2xvc2VyLCBhYmVyIGV4dHJlbSBhdWYgc2VpbmUgRnJpc3VyCmJlZGFjaHRlciBIb2JiaXQgdW5kIHNlaW5lIEt1bXBlbHMgQXJhZ29ybiB1bmQgQm9yb21pciBhdXMgZGVtIEtuYXN0IGVudGZsb2hlbgpzaW5kLCBtdUNvZW4tQnJ1ZWRlcjogRnJvZG8gZGFoZWltIGZlc3RzdGVsbGVuLCBkYUNvZW4tQnJ1ZWRlcjogc2VpbiBSaW5nLCBkZXIKZGllIEhvZWhsZSBlcnN0IHNvIHJpY2h0aWcgZ2VtdWV0bGljaCBnZW1hY2h0IGhhdCwgdmVyc2Nod3VuZGVuIGlzdCEgQXJhZ29ybiwKZGVyIHN0YWVuZGlnIG1pdCBHZXNjaGljaHRlbiBzZWluZXIgS2FlbXBmZSB1bSBHb25kb3IgcnVtbmVydnQgdW5kIGRlcgpiZWdyaWZmc3R1dHppZ2UgQm9yb21pciwgZGVtIEFyYWdvcm4gYmVpIGplZGVyIEdlbGVnZW5oZWl0IHVlYmVyJ3MgTWF1bApmYWVocnQsIGVyd2Vpc2VuIHNpY2ggYWxzIHdlbmlnIG51ZXR6bGljaGUgQmVnbGVpdGVyIHVuZCBsZWlkZXIKZXJsZWlkZXQgQm9yb21pciBiZWkgZGVtIEVuZGthbXBmIGdlZ2VuIGVpbmUgR3J1cHBlIHZvbiBuaWhpbGlzdGVuLU9ya3MgZWluZW4KSGVyemluZmFya3QuIEVzIGtvbW10IHp1IGVpbmlnZW4gbXlzdGVyaW9lc2VuIEVudGZ1ZWhydW5nZW4gdW5kIE1vcmRlbiwgd2VsY2hlCmRpZSBob2Noc2Nod2FuZ2VyZSBBcndlbiBqZWRvY2ggYXVmenVrbGFlcmVuIHZlcm1hZy4KIApEaWUgRGlzbmV5LVN0dWRpb3M6Ci0gTHV0eiwgZWluIE9yayB1bmQgZGFzIEJhbHJvZyBtdWVzc3RlbiBhbHMga251ZGRsaWcgZ2VzdGFsdGV0ZSBXaXR6ZmlndXJlbgpwZXJtYW5lbnQgZnVlciBMYWNoZXIgc29yZ2VuLCB3YWVocmVuZCBkaWUgSGVsZGVuIHp3YXIgZXh0cmVtIGhlbGRlbmhhZnQsCmplZG9jaCBhZXVzc2Vyc3QgbGllYmVuc3d1ZXJkaWcgdW5kIHNhbmZ0bXVldGlnIHNpbmQuCi0gS2FlbXBmZSBnYWViZSBlcyBrZWluZSwgYWxsZSBQcm9ibGVtZSB3dWVyZGVuIHNpY2ggc2Nob24gaXJnZW5kd2llIHNvCmxvZXNlbi4KLSBEYWZ1ZXIgd3VlcmRlbiBhYmVyIGFsbGUgTGllZGVyIHVuZCBHZWRpY2h0ZSBhdXMgZGVuIEJ1ZWNoZXJuIGltIEZpbG0KZ2VzdW5nZW4gdW5kIGRlciBUaXRlbHNvbmcgIlRoZSBnb2xkZW4gcmluZyBpc3QgdGhlIGtleSB0byB0aGUgY2lyY2xlIG9mIGxpZmUiCnd1ZXJkZSBpbiBkZXIgZGV1dHNjaGVuIEZhc3N1bmcgdm9uIEJybydTaXMgaW50ZXJwcmV0aWVydC4KLSBFaW4gbHVzdGlnZXIsIGFiZXIgaGFybWxvc2VyIFN0cmVpZmVuIGZ1ZXIgZGllIGdhbnplIEZhbWlsaWUhCiAKRWluIGJlbGllYmlnZXIgUG9ybm8tUmVnaXNzZXVyOgotIEhpbnRlcmdydW5kZ2VzY2hpY2h0ZTogZGVyIG1hZ2lzY2hlIGNvY2stcmluZyB2ZXJsZWlodCBzZWluZW0gVHJhZWdlcgpzYWdlbnVtd29iZW5lIE1hbm5lc2tyYWZ0IHVuZCB3aXJrdCBhdWYgRnJhdWVuIHVud2lkZXJzdGVobGljaCwgd2Vzd2VnZW4gYWxsZQpoaW50ZXIgaWhtIGhlciBzaW5kLiBadXIgU3Rvcnk6Ci0gRnJvZG8gdHJpZmZ0IEFyd2VuIC0gc2llIGtvbW1lbiBzb2ZvcnQgenVyIFNhY2hlLgotIEdpbWxpIHRyaWZmdCBHYWxhZHJpZWwgLSBzaWUga29tbWVuIHNvZm9ydCB6dXIgU2FjaGUuCi0gR2FsYWRyaWVsIHRyaWZmdCBBcmFnb3JuIHVuZCBCb3JvbWlyIC0gc2llIGtvbW1lbiBzb2ZvcnQgenVyIFNhY2hlLgotIEFyd2VuIHRyaWZmdCBHYWxhZHJpZWwgLSBzaWUga29tbWVuIHNvZm9ydCB6dXIgU2FjaGUuIFNwYWV0ZXIgd2VyZGVuIHNpZSB2b24KTGVnb2xhcyB1bmQgR2ltbGkgdWViZXJyYXNjaHQsIGJlaWRlIHN0b3NzZW4gc29mb3J0IGRhenUuCi0gSW0gYmVrYW5udGVuIFN3aW5nZXJjbHViICJadW0gcm9zc2lnZW4gUG9ueSIga29tbXQgZXMgZGFubiB6dXIgZ3JvZGF6dS5lbgpFbmRvcmdpZS4KClNhbSBSYWltaQotIERlciBSaW5nIGthbm4gbWl0IGRlbiBtYWdpc2NoZW4gV29ydGVuIEtsYWF0dSB2ZXJyYXRhIG5lY3R1IChvZGVyIHNvCmFlaG5saWNoKSB6ZXJzdG9lcnQgd2VyZGVuCi0gRnJvZG8gaGF0IGVpbmUgS2V0dGVuc2FlZ2UgYW0gQXJtIHVuZCB3aXJkIHZvbiBCcnVjZSBDYW1wYmVsbCBnZXNwaWVsdAotIEFsbGUgU2NoYXVzcGllbGVyIHNpbmQgbWVocmZhY2hiZXNldHp0ZSB2ZXJ3YW5kZSB2b24gU2FtIFJhaW1pCi0gRGFzIGVpbnppZ2UgQXV0byBkYXMgaW0gRmlsbSB6dSBzZWhlbiBpc3QsIHdhZXJlIG1pdCBhYnNpY2h0IHp1IHNlaGVuCi0gRGllIEFud2Vpc3VuZyBkZW4gUmluZyB6dSB6ZXJzdG9lcmVuIGJla29tbWVuIEZyb2RvIHVuZCBDby4gbmljaHQgdm9uCkdhbmRhbGYgcGVyc29lbmxpY2ggc29uZGVybiB2b24gZWluZW0gVG9uYmFuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIZXJyIGRlciBSaW5nZS4uLiAoQW1hcnlsbGlzLCAgMy4gRmViIDIwMDIsIDIyOjEzOjA4KToKfiMhIHJuPUFtYXJ5bGxpcyBydD0xMDEyNzcwMjc1IHJnPXdpdHplCn4jISB0aWQ9MTAxMjc3MDI3NQpPaCwKCnVtIGtvcnJla3QgenUgYmxlaWJlbjoga2VpbmUgQWhudW5nIHdvaGVyIGRhcyB1cnNwcnVlbmdsaWNoIHN0YW1tdC4gR2VmdW5kZW4KaGFiIGljaHMgYXVmIGF1dHNjaC5kZSA6KQoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIZXJyIGRlciBSaW5nZS4uLiAoWmFybml5YSwgIDYuIEZlYiAyMDAyLCAwODo0OTozNSk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9MTAxMjc3MDc4OCByZz13aXR6ZQp+IyEgdGlkPTEwMTI3NzAyNzUKSGFldHRlc3QgRHUgYmVzc2VyIGVpbmZhY2ggZGllIFVSTCBnZXBvc3RldC4gZGVubiBzbyBzaW5kIGRhIGRlcmFydCB2aWVsZQpGZWhsZXIgZHVyY2hzIGtvcGllcmVuIGRyaW4sIGRhc3MgZWluaWdlIEdhZ3MgdW50ZXJnZWhlbi4uLiAKCk1hcmMKCk9KOiBEYSwgd28gTWFlbm5lciBpaHIgR2VoaXJuIGhhYmVuLCBoYWJlbiBGcmF1ZW4gZWluIExvY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBIZXJyIGRlciBSaW5nZS4uLiAoTW9udGFudXMsICA2LiBGZWIgMjAwMiwgMTU6NTg6MzYpOgp+IyEgcm49WmFybml5YSBydD0xMDEyOTgxNzc1IHJnPXdpdHplCn4jISB0aWQ9MTAxMjc3MDI3NQpZYW50cm8sIHZlcndlY2hzZWwgRGljaCBuaWNodCBtaXQgIk1hZW5uZXJuIiB1bmQgIkZyYXVlbiIgbmljaHQgbWl0ClNjaGFsbHBsYXR0ZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGdWVyIGRpZSBTY2h3aWl6ZXIgKEJpcmR5LCAxNC4gRmViIDIwMDIsIDIxOjQ4OjUxKToKS29tbXQgZWluIENvd2JveSBtaXQgc2VpbmVtIFBmZXJkIGluIGVpbmVuIFNhbG9uLCB0cmlua3QgZWluZW4gV2hpc2t5IHVuZAp3ZW5kZXQgc2ljaCBkYW5uIGFuIGRpZSBSdW5kZToKIk1laW4gUGZlcmQgaXN0IGluIGxldHp0ZXIgWmVpdCBzbyB0cmF1cmlnLiBJY2ggYmlldGUgZGVtamVuaWdlbiwgZGVyIGVzCndpZWRlciB6dW0gTGFjaGVuIGJyaW5ndCA1MCBEb2xsYXIuIgoiS2VpbiBQcm9ibGVtIiBtZWludCBkZXIgQmFya2VlcGVyLCBnZWh0IHp1bSBHYXVsIHVuZCBmbHVlc3RlcnQgZGllc2VtIGV0d2FzCmlucyBPaHIuIApEYXMgUGZlcmQgd2llaGVydCBsb3MgdW5kIGthbm4gc2ljaCB2b3IgTGFjaGVuIGthdW0gbm9jaCBoYWx0ZW4uIApEZXIgQ293Ym95IGlzdCB6dWZyaWVkZW4sIGJlemFobHQgZGVuIEtlZXBlciB1bmQgcmVpdGV0IGF1ZiBzZWluZW0gbGFjaGVuZGVuClBmZXJkIGRhdm9uLgpFaW5lIFdvY2hlIHNwYWV0ZXIga29tbXQgZGVyIENvd2JveSBpbiBCZWdsZWl0dW5nIHNlaW5lcyBQZmVyZGVzIHdpZWRlciB6dW0KU2Fsb24uCkRlciBHYXVsIHNpZWh0IGRlbiBCYXJrZWVwZXIgdW5kIGZhZW5ndCBsYXV0IGFuIHp1IGxhY2hlbi4gCkRlciBDb3dib3kgd2VuZGV0IHNpY2ggd2llZGVyIGFuIGRpZSBSdW5kZTogCiJTbyBnZWh0IGRhcyBqZXR6dCBzY2hvbiBkaWUgZ2FuemUgV29jaGUuIEFsbGUgcGFhciBNaW51dGVuIHdpZWhlcnQgbWVpbiBQZmVyZApsb3MuIApJY2ggYmlldGUgZGVtamVuaWdlbiwgZGVyIGVzIHZvbiBzZWluZW4gTGFjaGFuZmFlbGxlbiBrdXJpZXJ0LCA1MCBEb2xsYXIuIgoiS2VpbiBQcm9ibGVtIiBlcndpZGVydCBkZXIgQmFya2VlcGVyLCBuaW1tdCBkaWUgWnVlZ2VsIGRlcyBHYXVscyB1bmQKdmVybGFlc3N0IG1pdCBpaG0gZGVuIFNhbG9uLiAKQWxzIHNpZSA1IE1pbnV0ZW4gc3BhZXRlciB3aWVkZXIgenVydWVja2tlaHJlbiwgaXN0IGRhcyBQZmVyZCB0b3R0cmF1cmlnLgpEZXIgQ293Ym95IGJlemFobHQgZGVuIEtlZXBlciwgd2lsbCBhYmVyIGF1Y2ggd2lzc2VuLCB3YXMgZXIgbWl0IGRlbSBQZmVyZAphbmdlc3RlbGx0IGhhYmUuCkRlciBHZWZyYWd0ZSBlcmtsYWVydDogIkFjaCwgZ2FueiBlaW5mYWNoLiBCZWltIGVyc3RlbiBNYWwgaGFiIGljaCBpaG0gaW5zIE9ocgpnZWZsdWVzdGVydCwgZGFzcyBpY2ggZWluZW4gbG5nZXJlbiBTY2h3YW56IGhhZXR0ZS4gCkJlaW0gendlaXRlbiBNYWwgaGFiZW4gd2lyIGRyYXVzc2VuIG5hY2hnZW1lc3Nlbi4iIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxsZXMgS2Flc2UgKEFudGhlYSwgMTUuIEZlYiAyMDAyLCAxMDoyMjoxNCk6CkplIG1laHIgS2Flc2UsIGRlc3RvIG1laHIgTG9lY2hlci4gSmUgbWVociBMb2VjaGVyLCBkZXN0byB3ZW5pZ2VyIEthZXNlIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2xhc25vc3QgKEFudGhlYSwgMTUuIEZlYiAyMDAyLCAxMDoyMjo0Mik6CkFtIEJlZ2lubiB2b24gR2xhc25vc3Qga29tbXQgZWluIFJlaXNlbmRlciBpbiBSdXNzbGFuZCBzcGFldCBhYmVuZHMgaW4gZWluCkhvdGVsLiBFcyBpc3QgbGVpZGVyIG51ciBtZWhyIGVpbiBCZXR0IGluIGVpbmVtIFZpZXJlcnppbW1lciBmcmVpLCBkYSBkZXIgTWFubgpzb25zdCBrZWluZSBVbnRlcmt1bmZ0IGhhZXR0ZSBuaW1tdCBlciBhbi4gRXIga29tbXQgYXVmcyBaaW1tZXIgdW5kIGRvcnQKc2l0emVuIHNjaG9uIDMgTGV1dGUgdW5kIGVyemFlaGxlbiBzaWNoIHBvbGl0aXNjaGUgV2l0emUuLi4gZGEgZGVyIE1hbm4Kc2NobGFmZW4gd2lsbCBzdG9lcnQgaWhuIGRhcyBiZWdyZWlmbGljaGVyd2Vpc2UuIApFciBnZWh0IGFsc28genVyIFJlY2VwdGlvbiBoaW51bnRlciB1bmQgYml0dGV0IGRhcnVtIGRhc3MgaW4gZWluZXIgaGFsYmVuClN0dW5kZSA0IFRlZSBoaW5hdWZnZWJyYWNodCB3ZXJkZW4gc29sbGVuLiAKQWxzIGVyIHdpZWRlciBpbSBaaW1tZXIgaXN0IGZsdWVzdGVydCBlcjogIlNlaWQgaWhyIHZlcnJ1ZWNrdCBoaWVyIHBvbGl0aXNjaGUKV2l0emUgenUgcmVpc3Nlbiwgd2lzc3QgaWhyIG5pY2h0IGRhc3MgYWxsZXMgYWJnZWhvZXJ0IHdpcmQ/IEljaCBiZXdlaXNlIGVzCmV1Y2g6IChsYXV0KUhlcnIgT2JlcnN0IDQgVGVlIGJpdHRlLiIgS3VyemUgWmVpdCBzcGFldGVyIGtvbW10IGF1Y2ggZGVyCmJlc3RlbGx0ZSBUZWUsIGRpZSBaaW1tZXJnZW5vc3NlbiB2ZXJrcmllY2hlbiBzaWNoIHZlcmFlbmdzdGlndCBpbiBkZW4gQmV0dGVuLgpBbHMgZGVyIFJlaXNlbmRlIGFtIE1vcmdlbiBhdWZ3YWNodCBpc3QgbmllbWFuZCBtZWhyIGltIFppbW1lciwgYmVpIGRlcgpSZWNlcHRpb24gZnJhZ3QgZXIgd2FydW0gZGVubiBhbGxlIHNjaG9uIHdlZyB3YWVyZW4uIERlciBSZWNlcHRpb25pc3QgZGFyYXVmOgoiIEphIHdpc3NlbiBzaWUsIGRpZSB3dXJkZW4gYWxsZSB2b20gS0dCIGFiZ2Vob2x0IiBkZXIgUmVpc2VuZGU6IiAuLnVuZCB3YXJ1bQppc3QgbWlyIG5pY2h0cyBwYXNzaWVydD8iIApEZXIgUmVjZXB0aW9uaXN0OiJEZW0gT2JlcnN0IGhhdCBpaHIgV2l0eiBtaXQgZGVtIFRlZSBzbyBndXQgZ2VmYWxsZW4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYWVuZ2xpc2NoOiAoT3JrdG9ldGVyLCAyNi4gRmViIDIwMDIsIDE3OjA3OjI5KToKVEVBTVdPUksKVGhlcmUgd2VyZSBmb3VyIHBlb3BsZSBuYW1lZCBFdmVyeWJvZHksClNvbWVib2R5LCBBbnlib2R5IGFuZCBOb2JvZHkuClRoZXJlIHdhcyBhbiBpbXBvcnRhbnQgam9iIHRvIGJlIGRvbmUgYW5kCkV2ZXJ5Ym9keSB3YXMgYXNrZWQgdG8gZG8gaXQuCkV2ZXJ5Ym9keSB3YXMgc3VyZSB0aGF0IFNvbWVib2R5IHdvdWxkIGRvIGl0LgpBbnlib2R5IGNvdWxkIGhhdmUgZG9uZSBpdCwgYnV0IE5vYm9keSBkaWQgaXQuClNvbWVib2R5IGdvdCBhbmdyeSBhYm91dCB0aGF0LCBiZWNhdXNlIGl0IHdhcwpFdmVyeWJvZHkgJ3Mgam9iLgpFdmVyeWJvZHkgdGhvdWdodCBBbnlib2R5IGNvdWxkIGRvIGl0LApidXQgTm9ib2R5IHJlYWxpemVkIHRoYXQgRXZlcnlib2R5IHdvdWxkbiAndCBkbyBpdC4KSXQgZW5kZWQgdXAgdGhhdCBFdmVyeWJvZHkgYmxhbWVkIFNvbWVib2R5CndoZW4gTm9ib2R5IGRpZCB3aGF0IEFueWJvZHkgY291bGQgaGF2ZSBkb25lLgoKCk9ya1QsIG5vY2ggbmFjaCBlaW5lbSBPSiBzdWNoZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2F0ZXJzY2hpY2tzYWwgKEFudGhlYSwgMjguIEZlYiAyMDAyLCAxMTo1NjoxMik6ClRyZWZmZW4gc2ljaCB6d2VpIEZyYXVlbiB6dW0gS2FmZmUsIGtvbW10IGVpbiBmZXR0ZXIgS2F0ZXIgcmVpbi4KMTogTWVpbiBHb3R0LCBpc3QgZGFzIGVpbiBmZXR0ZXIgS2F0ZXIhIElzdCBkZXIga2FzdHJpZXJ0LCBvZGVyIGZhZW5ndAogICBkZXIgc28gdmllbGUgTWFldXNlPwoyOiBNYWV1c2U/IEhhISBEZXIgZG9jaCBuaWNodCEgRGVzd2VnZW4gaXN0IGVyIGphIGF1Y2gga2FzdHJpZXJ0IQoxOiBXYXM/IE51ciB3ZWlsIGVyIGtlaW5lIE1hZXVzZSBmYWVuZ3Q/IER1IGJpc3QgYWJlciBoYXJ0IQoyOiBOYWphLCBpY2ggbXVzc3RlIHdlZ2VuIGRlciB2aWVsZW4gTWFldXNlIGhpZXIgVW5tZW5nZW4gdm9uIE1hdXNlZmFsbGVuCiAgIGF1ZnN0ZWxsZW4uLi4gdW5kIGF1ZiBlaW5lIGhhdCBlciBzaWNoIGRyYXVmZ2VzZXR6dC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpbGQgbmlnaHQgKEFudGhlYSwgMjguIEZlYiAyMDAyLCAxNDo0Mzo1Myk6CkRpZCB5b3UgaGVhciB0aGUgb25lIGFib3V0IHRoZSB0cmFuc3Zlc3RpdGUgd2hvIHdhbnRlZCBhIHdpbGQgbmlnaHQgb24gdGhlCnRvd24/CgpIZSB3YW50ZWQgdG8gZWF0LCBkcmluayBhbmQgYmUgTWFyeSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJ1bmQgKEJpcmR5LCAyOC4gRmViIDIwMDIsIDE1OjE3OjQ0KToKZWluIHNvbGRhdCwgc3RlaHQgYWxzIGJhdW0gZ2V0YXJudCwgbWl0dGVuIGF1ZiBkZXIgd2llc2UuIGFtIGFiZW5kIGtvbW10IGRlcgpmZWxkd2ViZWwgYW4gaWhtIHZvcmJlaSB1bmQgYnJ1ZWxsdDoiaGVlZSBzaWUsIHNpZSBoYWJlbiBzaWNoIGJld2VndCEiCm1laW50IGRlciBzb2xkYXQ6ImpldHp0IHdhcnRlbiBzaWUgbWFsLiBhbHMgbWlyIGRlciBodW5kIGFucyBiZWluIHBpbmtlbHRlLApoYWJlIGljaCBtaWNoIG5pY2h0IGdlcnVlaHJ0ISBhbHMgbWlyIGRhcyBsaWViZXNwYWFyIGlociBtb25vZ3JhbW0gbWl0IGRlbQpoZXJ6IGRydW1ydW0gaW4gZGVuIGhpbnRlcm4gc2Nobml0enRlLCBoYWJlIGljaCBtaWNoIG5pY2h0IGdlcnVlaHJ0ISBhYmVyIGFscwpkaWUgendlaSBlaWNoaG9lcm5jaGVuIGdla29tbWVuIHNpbmQgdW5kIGluIG1laW4gaG9zZW5iZWluIGdla2xldHRlcnQgc2luZCB1bmQKZGFzIGVpbmUgenVtIGFuZGVyZW4gc2FndGU6ImRpZSB6d2VpIGthc3RhbmllbiBlc3NlbiB3aXIgamV0enQgdW5kIGRlbgp0YW5uZW56YXBmZW4gbmVobWVuIHdpciBtaXQgbmFjaCBoYXVzZS4iIGRhIGhhYiBpY2ggbWljaCBzY2hvbiBnZXJ1ZWhydCAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBidW5kIChPcmt0b2V0ZXIsIDI4LiBGZWIgMjAwMiwgMTU6MjA6MzgpOgp+IyEgcm49QmlyZHkgcnQ9MTAxNDkwNTg2NCByZz13aXR6ZQp+IyEgdGlkPTEwMTQ5MDU4NjQKSGFldHRlIGljaCBhdWNoLiBJY2ggaGFldHRlIGRpZSBFaWNoaG9lcm5jaGVuIGdlZmFuZ2VuICh3YXJlbiBqYSBlaCBzY2hvbiBpbQpIb3NlbmJlaW4pLCBoYWV0dGUgZGVtIEJ1bmQgZGVuIFJ1ZWNrZW4gZ2VrZWhydCB1bmQgd2FlcmUgbWl0IGRlbiBzcHJlY2hlbmRlbgpFaWNob2VybmNoZW4gaW0gU2hvd2JpeiBnYW56IGdyb3NzIHJhdXNnZWtvbW1lbiEKCk9ya1QsIHByYWt0aXNjaCBkZW5rZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGJ1bmQgKFBhdHJ5biwgMjguIEZlYiAyMDAyLCAxNToyNzowMik6Cn4jISBybj1CaXJkeSBydD0xMDE0OTA1ODY0IHJnPXdpdHplCn4jISB0aWQ9MTAxNDkwNTg2NApoZXJyamUuLi5kZW4gd2l0eiBoYWIgaWNoIGRhcyBsZXR6dGUgbWFsIHZvciAyMCBqYWhyZW4gZ2Vob2VydCwgZGllIGd1dGVuCmFsdGVuIHplaXRlbiA6KQoKLS0gCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbHlyaWsgKEJpcmR5LCAyOC4gRmViIDIwMDIsIDE1OjI3OjU0KToKZWluIG1hZWRjaGVuIHNhc3MgYXVmIGVpbmVyIHdpZXNlCnVuZCB6b2cgYW4gZWluZW0gZGluZwpkYXMgendpc2NoZW4gcG8gdW5kIGJlaW5lbgphbiBlaW5lbSBzYWVja2NoZW4gaGluZy4KCnNpZSB6b2cgdW5kIHpvZyBlcyBsYWVuZ2VyCmJpcyBzaWNoIGVpbiBzdHJhaGwgZXJnb3NzLApkZXIgenUgaWhyZW4gc2NoZW5rZWxuCmluIGVpbmUgb2VmZm51bmcgZmxvc3MuCgplcyB3YXIgZGllIG1hZ2QsCnNpZSBtb2xrIGRpZSBrdWguCmR1IGFsdGVzIHNjaHdlaW4sCndhcyBkYWNodGVzdCBkdT8hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplaW4gYWx0ZXIga2xhc3Npa2VyIDopIChCaXJkeSwgMjguIEZlYiAyMDAyLCAxNTozMjo1Nik6CmRpZSBnYW5zIGVyd2FjaHQgaW0gZnJlbWRlbiBmb3JzdAp1bmQgbGllZ3QgaW4gZWluZW0gYWRsZXJob3JzdC4Kc2llIHNjaGF1dCBzaWNoIHVtIHVuZCBkZW5rdCBiZXRyb2ZmZW46Cm1laW4gbGllYmVyIHNjaHdhbiwgd2FyIGljaCBiZXNvZmZlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogYnVuZCAoQ2FkcmFjaCwgMjguIEZlYiAyMDAyLCAxNTo0ODo0NSk6Cn4jISBybj1QYXRyeW4gcnQ9MTAxNDkwNjQyMiByZz13aXR6ZQp+IyEgdGlkPTEwMTQ5MDU4NjQKb2ZmZW5zaWNodGxpY2ggd2FyIGF1Y2ggZnJ1ZWhlciBuaWNodCBhbGxlcyBiZXNzZXIuLi4uCgpDYWRyYWNoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmFkIGJla29tbWVuOiBMZWJlbnN3ZWlzaGVpdGVuIChNb3Jnb3RoLCAgMS4gTWFyIDIwMDIsIDEyOjQ2OjQyKToKTGViZW5zd2Vpc2hlaXRlbgoKMS5Fcmtlbm50bmlzClNjaGxhdWVyIE1hbm4gKyBzY2hsYXVlIEZyYXUgPSBSb21hbnplClNjaGxhdWVyIE1hbm4gKyBkdW1tZSBGcmF1ID0gQWZmYWVyZQpEdW1tZXIgTWFubiArIGR1bW1lIEZyYXUgPSBTY2h3YW5nZXJzY2hhZnQKRHVtbWVyIE1hbm4gKyBzY2hsYXVlIEZyYXUgPSBTaG9wcGluZwoKMi5Fcmtlbm50bmlzClNjaGxhdWVyIENoZWYgKyBzY2hsYXVlciBBbmdlc3RlbGx0ZXIgPSBQcm9maXQKU2NobGF1ZXIgQ2hlZiAgKyBkdW1tZXIgQW5nZXN0ZWxsdGVyID0gUHJvZHVrdGlvbgpEdW1tZXIgQ2hlZiArIHNjaGxhdWVyIEFuZ2VzdGVsbHRlciA9IFByb21vdGlvbgpEdW1tZXIgQ2hlZiArIGR1bW1lciBBbmdlc3RlbGx0ZXIgPSBVZWJlcnN0dW5kZW4KCjMuIEVya2VubnRuaXMKRWluIE1hbm4gemFobHQgMiAgZnVlciAxIEFydGlrZWwsIGRlbiBlciBicmF1Y2h0LgpFaW5lIEZyYXUgemFobHQgMSAgZnVlciAyIEFydGlrZWwsIGRpZSBzaWUgbmljaHQgYnJhdWNodC4KCjQuRXJrZW5udG5pcwpFaW5lIEZyYXUgc29yZ3Qgc2ljaCB1bSBkaWUgWnVrdW5mdCBiaXMgc2llIGVpbmVuIEVoZW1hbm4gZmluZGV0LgpFaW4gTWFubiBtYWNodCBzaWNoIG5pZSBTb3JnZW4gdW0gZGllIFp1a3VuZnQgYmlzIGVyIGVpbmUgRnJhdSBmaW5kZXQuCgo1LkVya2VubnRuaXMKRWluIGVyZm9sZ3JlaWNoZXIgTWFubiBpc3QgZWluIE1hbm4sIGRlciBtZWhyIEdlbGQgdmVyZGllbnQsIGFscyBzZWluZSBGcmF1CmF1c2dlYmVuIGthbm4uCkVpbmUgZXJmb2xncmVpY2hlIEZyYXUgaXN0IGVpbmUsIGRpZSBlaW5lbiBzb2xjaGVuIE1hbm4gZmluZGV0LgoKNi5Fcmtlbm50bmlzClVtIG1pdCBlaW5lbSBNYW5uIGdsdWVja2xpY2ggenUgd2VyZGVuLCBtdXNzIG1hbiBpaG4gc2VociBndXQgdmVyc3RlaGVuIHVuZAppaG4gZWluIGJpc2NoZW4gbGllYmVuLgpVbSBtaXQgZWluZXIgRnJhdSBnbHVlY2tsaWNoIHp1IHdlcmRlbiwgbXVzcyBtYW4gc2llIGxpZWJlbiB1bmQgZGFyZiBnYXIgbmljaHQKZXJzdCB2ZXJzdWNoZW4sIHNpZSB6dSB2ZXJzdGVoZW4uCgo3LkVya2VubnRuaXMKVmVyaGVpcmF0ZXRlIE1hZW5uZXIgbGViZW4gbGFlbmdlciBhbHMgdW52ZXJoZWlyYXRldGUsIGFiZXIgc2llIHNpbmQgdmllbCBlaGVyCmJlcmVpdCwgenUgc3RlcmJlbi4KCjguRXJrZW5udG5pcwpKZWRlciB2ZXJoZWlyYXRldGUgTWFubiBzb2xsdGUgc2VpbmUgRmVobGVyIHZlcmdlc3NlbiAgZXMgYnJhdWNoZW4gc2ljaCBqYQpuaWNodCB6d2VpIFBlcnNvbmVuIGRhcyBnbGVjaGUgenUgbWVya2VuLgoKOS5Fcmtlbm50bmlzCk1hZW5uZXIgd2FjaGVuIGdlbmF1c28gZ3V0YXVzc2VoZW5kIGF1Ziwgd2llIHNpZSB6dSBCZXR0IGdlZ2FuZ2VuIHNpbmQuCkZyYXVlbiBkYWdlZ2VuIHNjaGVpbmVuIHNpY2ggdWViZXIgTmFjaHQgaXJnZW5kd2llIHp1IHZlcmFlbmRlcm4uCgoxMC5Fcmtlbm50bmlzCkVpbmUgRnJhdSBoYXQgaW1tZXIgZGFzIGxldHp0ZSBXb3J0IGJlaSBlaW5lbSBTdHJlaXQuCkFsbGVzLCB3YXMgZGVyIE1hbm4gZGFuYWNoIG5vY2ggbWFjaGVuIGtvZW5udGUsIGlzdCBkZXIgQmVnaW5uIGVpbmVzIG5ldWVuClN0cmVpdHMuCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLiAoTmljb2xhaSwgIDMuIE1hciAyMDAyLCAxMDozMDoxNCk6CgpFaW4gTWFubiBrb21tdCBpbiBlaW4gU3BpZWx3YXJlbmdlc2NoYWVmdDogIkljaCBoYWV0dGUgZ2VybmUKZWluIEdlZHVsZHNzcGllbCB1bmQgendhciBlaW4gYmlzc2NoZW4gc2NobmVsbCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogLiAoTmljb2xhaSwgIDMuIE1hciAyMDAyLCAxMDozMToyNik6Cn4jISBybj1OaWNvbGFpIHJ0PTEwMTUxNDc4MTQgcmc9d2l0emUKfiMhIHRpZD0xMDE1MTQ3ODE0CkRpZSBsZWljaHQgZXJyZWd0ZSBGcmF1IHNhZ3QgenUgaWhyZW0gTWFubjogIkZsdWVzdGVyZSBtaXIgd2llZGVyIGVpbm1hbCBldHdhcwoiRHJlY2tpZ2VzIiBpbnMgT2hyLi4uLi4iIEVyOiAiS3VlY2hlICEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6d2FyIGtlaW4gd2l0eiwgYWJlciB0cm90emRlbSBuZXR0IChQZXJkaXRhLCAgMy4gTWFyIDIwMDIsIDE4OjE1OjMwKToKZWluIG5ldHRlciBrbGVpbmVyIExpbWVyaWNrOgoKT24gdGhlIGJyZWFzdCBvZiBhIGJhcm1haWQgaW4gU2FsZQpXZXJlIHRhdHRvb2VkIGFsbCB0aGUgcHJpY2VzIGZvciBhbGUKQW5kIHVwb24gaGVyIGJlaGluZApGb3IgdGhlIHNha2Ugb2YgdGhlIGJsaW5kCldhcyB0aGUgc2FtZSBpbmZvcm1hdGlvbiBpbiBicmFpbGxlCgpQZXJkaXRhIHVlYmVybmltbXQga2VpbmUgaGFmdHVuZyBmdWVyIFJlY2h0c2NocmVpYi0gdW5kIEdyYW1tYXRpa2ZlaGxlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BlZWRpbmcgKExlZ2F0dXMsICA1LiBNYXIgMjAwMiwgMTc6MDQ6NDApOgpUaGVyZSB3YXMgYSBtaWRkbGUgYWdlZCBndXkgd2hvIGJvdWdodCBhIGJyYW5kIG5ldyBNZXJjZWRlcyBjb252ZXJ0aWJsZSBTTEsuCkhlIHRvb2sgb2ZmIGRvd24gdGhlIHJvYWQsIGZsb29yaW5nIGl0IHVwIHRvIDgwIG1waCBhbmQgaGUgZW5qb3llZCB0aGUgd2luZApibG93aW5nIHRocm91Z2ggd2hhdCBsaXR0bGUgaGFpciBoZSBoYWQgbGVmdCBvbiBoaXMgaGVhZC4gIlRoaXMgaXMgZ3JlYXQsIiBoZQp0aG91Z2h0IGFuZCBmbG9vcmVkIGl0IHNvbWUgbW9yZS4gSGUgbG9va2VkIGluIGhpcyByZWFydmlldyBtaXJyb3IgYW5kIHRoZXJlCndhcyBhIEZsb3JpZGEgSGlnaHdheSBQYXRyb2wgVHJvb3BlciBiZWhpbmQgaGltLCBibHVlIGxpZ2h0cyBmbGFzaGluZyBhbmQKc2lyZW4gYmxhc3RpbmcuIAoiSSBjYW4gZ2V0IGF3YXkgZnJvbSBoaW0gd2l0aCBubyBwcm9ibGVtIiB0aG91Z2h0IHRoZSBtYW4gYW5kIGhlIGZsb29yZWQgaXQKc29tZSBtb3JlIGFuZCBmbGV3IGRvd24gdGhlIHJvYWQgYXQgb3ZlciAxMDAgbXBoLiBUaGVuIGhlIHRob3VnaHQsICJXaGF0IGFtIEkKZG9pbmc/IEknbSB0b28gb2xkIGZvciB0aGlzIGtpbmQgb2YgdGhpbmciIGFuZCBwdWxsZWQgb3ZlciB0byB0aGUgc2lkZSBvZiB0aGUKcm9hZCBhbmQgd2FpdGVkIGZvciB0aGUgU3RhdGUgVHJvb3BlciB0byBjYXRjaCB1cCB3aXRoIGhpbS4gClRoZSBUcm9vcGVyIHB1bGxlZCBpbiBiZWhpbmQgdGhlIE1lcmNlZGVzIGFuZCB3YWxrZWQgdXAgdG8gdGhlIG1hbi4gIlNpciwiIGhlCnNhaWQgbG9va2luZyBhdCBoaXMgd2F0Y2gsICJNeSBzaGlmdCBlbmRzIGluIDMwIG1pbnV0ZXMgYW5kIHRvZGF5IGlzIEZyaWRheQp0aGUgMTN0aC4gSWYgeW91IGNhbiBnaXZlIG1lIGEgcmVhc29uIHdoeSB5b3Ugd2VyZSBzcGVlZGluZywgdGhhdCBJJ3ZlIG5ldmVyCmhlYXJkIGJlZm9yZSwgSSdsbCBsZXQgeW91IGdvLiIgClRoZSBtYW4gbG9va2VkIGJhY2sgYXQgdGhlIFRyb29wZXIgYW5kIHNhaWQsICJMYXN0IHdlZWsgbXkgd2lmZSByYW4gb2ZmIHdpdGggYQpTdGF0ZSBUcm9vcGVyLCBhbmQgSSB0aG91Z2h0IHlvdSB3ZXJlIGJyaW5naW5nIGhlciBiYWNrLiIgClRoZSBTdGF0ZSBUcm9vcGVyIHNhaWQsICJIYXZlIGEgbmljZSBkYXkuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV3Vuc2NodHJhdW0gKEZlbmRlciwgIDUuIE1hciAyMDAyLCAxNzozNTowMik6Ckkgd2FzIGluIHRoZSBWSVAgbG91bmdlIGxhc3Qgd2VlayBlbiByb3V0ZSB0byBTZWF0dGxlLiBXaGlsc3QgaW4gdGhlIGxvdW5nZSwgSQpub3RpY2VkIEJpbGwgR2F0ZXMgc2l0dGluZyBvbiB0aGUgY2hlc3RlcmZpZWxkIGVuam95aW5nIGEgY29nbmFjLiBJIHdhcwptZWV0aW5nIHdpdGggYSB2ZXJ5IGltcG9ydGFudCBjbGllbnQgd2hvIHdhcyBmbHlpbmcgdG8gU2VhdHRsZSB3aXRoIG1lIGJ1dCBzaGUKd2FzIHJ1bm5pbmcgYSBiaXQgbGF0ZS4KCkJlaW5nIGEgZm9yd2FyZCB0eXBlIG9mIGd1eSwgSSBhcHByb2FjaGVkIE1yLiBHYXRlcyBhbmQgaW50cm9kdWNlZCBteXNlbGYuIEkKZXhwbGFpbmVkIHRvIGhpbSB0aGF0IEkgd2FzIGNvbmR1Y3Rpbmcgc29tZSB2ZXJ5IGltcG9ydGFudCBidXNpbmVzcyBhbmQgaG93IEkKd291bGQgYXBwcmVjaWF0ZSBpdCBpZiBoZSBjb3VsZCB0aHJvdyBhIHF1aWNrICJIZWxsbyBDaHJpcyIgYXQgbWUgd2hlbiBJIHdhcwp3aXRoIG15IGNsaWVudC4gSGUgYWdyZWVkLgoKVGVuIG1pbnV0ZXMgbGF0ZXIgd2hpbGUgSSB3YXMgY29udmVyc2luZyB3aXRoIG15IGNsaWVudCwgSSBmZWx0IGEgdGFwIG9uIG15CnNob3VsZGVyLiBJdCB3YXMgQmlsbCBHYXRlcy4gSSB0dXJuZWQgYXJvdW5kIGFuZCBsb29rZWQgdXAgYXQgaGltLiBIZSBzYWlkLAoiSGkgQ2hyaXMsIHdoYXQncyBoYXBwZW5pbmc/IiBUbyB3aGljaCBJIHJlcGxpZWQgIkZ1Y2sgb2ZmIEdhdGVzLCBJJ20gaW4gYQptZWV0aW5nLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSYWV0c2VsIChEZWVwYmx1ZSwgIDYuIE1hciAyMDAyLCAxMDozNToxNyk6CkVpbmUgTXV0dGVyIGlzdCAyMSBKYWhyZSBhZWx0ZXIgYWxzIGlociBLaW5kLgo2IEphaHJlIHNwYWV0ZXIgd2lyZCBpaHIgS2luZCA1IG1hbCBqdWVuZ2VyIHNlaW4gYWxzIGRpZSBNdXR0ZXIuCkZyYWdlOiBXbyBpc3QgZGVyIFZhdGVyPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJhZXRzZWwgKEJvaW5nLCAgNi4gTWFyIDIwMDIsIDEwOjM2OjQ1KToKfiMhIHJuPURlZXBibHVlIHJ0PTEwMTU0MDczMTcgcmc9d2l0emUKfiMhIHRpZD0xMDE1NDA3MzE3CkhhdHRlbiB3aXIgZGFzIFJhZXRzZWwgbmljaHQgZXJzdCB2b3IgMyBXb2NoZW4gaW4gcHVpej8KICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSYWV0c2VsIChBcmssICA2LiBNYXIgMjAwMiwgMTQ6NDM6NTUpOgp+IyEgcm49Qm9pbmcgcnQ9MTAxNTQwNzQwNSByZz13aXR6ZQp+IyEgdGlkPTEwMTU0MDczMTcKam8KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdGVuIHVuZCBkZXIga2xlaW5lIENoYW90IDspIChKb3NodWEsICA2LiBNYXIgMjAwMiwgMTQ6NTI6MDUpOgpLb2VubnRlIHZvbiBtaXIgZXJ6YWVobGVuOgpBbHMgaWNoIGp1ZW5nZXIgd2FyLCBoYXNzdGUgaWNoIGVzIHp1IEhvY2h6ZWl0ZW4genUgZ2VoZW4uIFRhbnRlbiB1bmQKZ3Jvc3NtdWV0dGVybGljaGUgQmVrYW5udGUga2FtZW4genUgbWlyLCBwaWVrc3RlbiBtaWNoIGluIGRpZSBTZWl0ZSwgbGFjaHRlbgp1bmQgc2FndGVuOiAiRHUgYmlzdCBkZXIgTmFlY2hzdGUuIi4KClNpZSBoYWJlbiBtaXQgZGVtIFNjaGVpc3MgYXVmZ2Vob2VydCBhbHMgaWNoIGFuZmluZywgYXVmIEJlZXJkaWd1bmdlbiBkYXMKZ2xlaWNoZSB6dSBtYWNoZW4gLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYW1wZiBkZW0gVGVycm9yIChBbnRoZWEsICA2LiBNYXIgMjAwMiwgMTU6NDk6MjgpOgpUaGUgTGVhZGVycyBvZiB0aGUgd29ybGQgYXJlIGFza2luZyBmb3IgeW91ciBzdXBwb3J0IHRvIGNvbWJhdCB0ZXJyb3Jpc20gYW5kCndlJ3JlIGVuY291cmFnaW5nIHRvIGRlbW9uc3RyYXRlIGFnYWluc3QgdGhlIFRhbGliYW4gdGhpcyBGcmlkYXkgYXQgMTU6MDAKaG91cnMuCgpJdCBpcyBhIHdlbGwta25vd24gZmFjdCB0aGF0IHRoZSBUYWxpYmFuIGFyZSBhZ2FpbnN0IGFsY29ob2wgY29uc3VtcHRpb24gYW5kCnRoaW5rIGl0IGlzIHNpbmZ1bCB0byBsb29rIGF0IGEgbmFrZWQgd29tYW4uIFRoZXJlZm9yZSwgYXQgMTU6MDAgdGhpcyBGcmlkYXksCmFsbCB3b21lbiBzaG91bGQgcnVuIG5ha2VkIHRocm91Z2ggdGhlIG9mZmljZSB3aGlsZSBtZW4gY2hhc2UgdGhlbSB3aXRoIGEgYmVlcgppbiB0aGVpciBoYW5kcy4gVGhpcyBpcyB0aGUgYmVzdCB3YXkgdG8gc2hvdyBvdXIgZGlzZ3VzdCBmb3IgdGhlIFRhbGliYW4gYW5kCndpbGwgaG9wZWZ1bGx5IGhlbHAgdXMgaW4gZGV0ZWN0aW5nIHRoZSB0ZXJyb3Jpc3RzIGFtb25nIHVzIChhbnlib2R5IHdobwpkb2Vzbid0IGRvIGFzIHByb3Bvc2VkIHdpbGwgYmUgZGVlbWVkIGEgdGVycm9yaXN0IGFuZCBkZW5vdW5jZWQgdG8gdGhlIFdvcmxkKS4KCllvdXIgZWZmb3J0cyBhcmUgbXVjaCBhcHByZWNpYXRlZCBpbiB0aGUgbmFtZSBvZiBhIGZyZWUsIGRlbW9jcmF0aWMgd29ybGQuClRoYW5rIHlvdS4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFY2h0ZSBNYWVubmVyIChEZWVwYmx1ZSwgIDYuIE1hciAyMDAyLCAxNzoxODo1OSk6ClN0cmVpdGVuIHNpY2ggZHJlaSB2ZXJtZWludGxpY2hlIENvbXB1dGVyZXhwdGVyZW4gdWViZXIgZGVuIGJlc3RlbgpDb21wdXRlci4gCgpNZWludCBkZXIgRXJzdGU6ICJFY2h0ZSBNYWVubmVyIGFyYmVpdGVuIG1pdCBlaW5lbSBQQyB1bmQgbGFzc2VuIGlocmUgS2luZGVyCm1pdCBkZXIgUGxheXN0YXRpb24gc3BpZWxlbi4iIApEYXJhdWYgZGVyIFp3ZWl0ZTogIkVjaHRlIE1hZW5uZXIgYXJiZWl0ZW4gbWl0IGVpbmVyIFNVTiB1bmQgZ2ViZW4gZGVuIFBDIGRlbgpLaW5kZXJuIHp1bSBzcGllbGVuLiIgClNjaGxpZXNzbGljaCBkZXIgRHJpdHRlOiAiRWNodGUgTWFlbm5lciBzcGllbGVuIG1pdCBpaHJlbiBLaW5kZXJuIHVuZCBsYXNzZW4KZGVuIE1BQyBmdWVyIHNpY2ggYXJiZWl0ZW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSYWV0c2VsIChMb2dvLCAgOC4gTWFyIDIwMDIsIDE3OjQ0OjI4KToKfiMhIHJuPUJvaW5nIHJ0PTEwMTU0MDc0MDUgcmc9d2l0emUKfiMhIHRpZD0xMDE1NDA3MzE3Ck5hLCBkYW5uIHNpbmQgamEgYWxsZSBqZXR6dCAzIFdvY2hlbiBhZWx0ZXIhIEFsc28gaGFuZGVsdCBlcyBzaWNoIHVtIGVpbmUgbmV1ZQpGYW1pbGllLCBkZXIgVmF0ZXIga2FubiBhbHNvIGF1Y2ggZ2FueiB3b2FuZGVycyBzZWluLi4uLgphbHMgZGVyIHZvbiBkZXIgRmFtaWxpZSB2b3IgZHJlaSBXb2NoZW47LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsZWluZSBTcHJhY2hsZWhyZSAoVmFuaW9uLCAxMC4gTWFyIDIwMDIsIDIyOjAxOjIyKToKU3ViamVjdDogSG93IHRvIHNheSAiSSBsb3ZlIHlvdSIgaW4gMjAgZGlmZmVyZW50IGxhbmd1YWdlcy4KCjEuIEVuZ2xpc2ggIC4uLi4uLi4uLi4gSSBsb3ZlIHlvdQoyLiBTcGFuaXNoICAuLi4uLi4uLi4uIFRlIEFtbwozLiBGcmVuY2ggICAuLi4uLi4uLi4uIEplIFQnYWltZQo0LiBHZXJtYW4gICAuLi4uLi4uLi4uIGxjaCBMaWViZSBEaWNoCjUuIEphcGVuZXNlIC4uLi4uLi4uLi4gQWkgU2hpdGUgSW1hc3UKNi4gSXRhbGlhbiAgLi4uLi4uLi4uLiBUaSBBbW8KNy4gQ2hpbmVzZSAgLi4uLi4uLi4uLiBXbyBBaSBOaQo4LiBTd2VkaXNoICAuLi4uLi4uLi4uIEphZyBBbHNrYXIKOS0yMC4gQWxhYmFtYSwgQXJrYW5zYXMsIE9rbGFob21hLCBUZXhhcywgTG91aXNpYW5hLCBTb3V0aApDYXJvbGluYSxHZW9yZ2lhLCBUZW5uZXNzZWUsIFdlc3QgVmlyZ2luaWEsIE1pc3Npc3NpcHBpIGFuZCBLZW50dWNreQogICAgICAgICAgICAuLi4uLi4uLi4uIE5pY2UgQXNzCgpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtsZWluZSBTcHJhY2hsZWhyZSAoR3JpbW1ib3JuLCAxMC4gTWFyIDIwMDIsIDIyOjA1OjUwKToKfiMhIHJuPVZhbmlvbiBydD0xMDE1Nzk0MDgyIHJnPXdpdHplCn4jISB0aWQ9MTAxNTc5NDA4Mgo4LiBtdXNzIGhlaXNzZW46ICJKYWcgYWVsc2thciBkaWciCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvLCA0IGhhYiBpY2ggbm9jaC4gKFZhbmlvbiwgMTAuIE1hciAyMDAyLCAyMjoxMTo1MSk6CklESU9UUyBBVCBXT1JLOiAKClNpZ24gaW4gYSBnYXMgc3RhdGlvbjogIkNva2UgLS0gNDkgY2VudHMuICBUd28gZm9yIGEgZG9sbGFyLiIKCgpJRElPVFMgJiBDT01QVVRFUlM6IAoKTXkgbmVpZ2hib3Igd29ya3MgaW4gdGhlIG9wZXJhdGlvbnMgZGVwYXJ0bWVudCBpbiB0aGUgY2VudHJhbCBvZmZpY2UKb2YgYSBsYXJnZSBiYW5rLiBFbXBsb3llZXMgaW4gdGhlIGZpZWxkIGNhbGwgaGltIHdoZW4gdGhleSBoYXZlCnByb2JsZW1zIHdpdGggdGhlaXIgY29tcHV0ZXJzLiBPbmUgbmlnaHQgaGUgZ290IGEgY2FsbCAgZnJvbSBhIHdvbWFuCmluIG9uZSBvZiAgdGhlIGJyYW5jaCBiYW5rcyB3aG8gaGFkIHRoaXMgcXVlc3Rpb246ICJJJ3ZlIGdvdCBzbW9rZQpjb21pbmcgZnJvbSB0aGUgYmFjayBvZiBteSB0ZXJtaW5hbC4gRG8geW91IGd1eXMgaGF2ZSBhIGZpcmUgZG93bnRvd24/IgoKCklESU9UUyBBUkUgIEVBU1kgVE8gUExFQVNFOiAKCkkgd2FzIHNpdHRpbmcgaW4gbXkgc2NpZW5jZSBjbGFzcyB3aGVuIHRoZSB0ZWFjaGVyIGNvbW1lbnRlZCB0aGF0IHRoZQpuZXh0IGRheSB3b3VsZCBiZSB0aGUgc2hvcnRlc3QgZGF5IG9mIHRoZSB5ZWFyLiBNeSBsYWIgcGFydG5lciBiZWNhbWUKdmlzaWJseSBleGNpdGVkLCBjaGVlcmluZyBhbmQgY2xhcHBpbmcuIEkgZXhwbGFpbmVkIHRvIGhpbSB0aGF0IHRoZQphbW91bnQgb2YgZGF5bGlnaHQgY2hhbmdlcywgbm90IHRoZSBhY3R1YWwgYW1vdW50IG9mIHRpbWUuIE5lZWRsZXNzIHRvCnNheSwgaGUgd2FzIHZlcnkgZGlzYXBwb2ludGVkLiAKCgpTVVNQRUNUIElESU9UOgoKUG9saWNlIGluIFJhZG5vciwgUGVubnN5bHZhbmlhLCBpbnRlcnJvZ2F0ZWQgYSBzdXNwZWN0IGJ5IHBsYWNpbmcKbWV0YWwgY29sYW5kZXIgb24gaGlzIGhlYWQgYW5kIGNvbm5lY3RpbmcgaXQgd2l0aCB3aXJlcyB0byBhIHBob3RvY29weQptYWNoaW5lLiBUaGUgbWVzc2FnZSAiSGUncyBseWluZyIgd2FzICBwbGFjZWQgaW4gdGhlIGNvcGllciwgYW5kCnBvbGljZSBwcmVzc2VkIHRoZSBjb3B5IGJ1dHRvbiBlYWNoIHRpbWUgdGhleSB0aG91Z2h0IHRoZSBzdXNwZWN0Cndhc24ndCB0ZWxsaW5nIHRoZSB0cnV0aC4gQmVsaWV2aW5nIHRoZSAibGllIGRldGVjdG9yIiB3YXMgd29ya2luZywKdGhlIHN1c3BlY3QgY29uZmVzc2VkLgoKClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBWElTIE9GIEpVU1QgQVMgRVZJTCAoVHJveSwgMTEuIE1hciAyMDAyLCAxMDo0NTowMCk6CkFOR0VSRUQgQlkgU05VQkJJTkcsIExJQllBLCBDSElOQSwgU1lSSUEgRk9STSBBWElTIE9GIEpVU1QgQVMgRVZJTAoKICAgIEN1YmEsIFN1ZGFuLCBTZXJiaWEgRm9ybSBBeGlzIG9mIFNvbWV3aGF0IEV2aWw7IE90aGVyIE5hdGlvbnMgU3RhcnQgT3duCiAgICBDbHVicwoKICAgIEJlaWppbmcgLSBCaXR0ZXIgYWZ0ZXIgYmVpbmcgc251YmJlZCBmb3IgbWVtYmVyc2hpcCBpbiB0aGUgIkF4aXMgb2YgCiAgICBFdmlsIiwgTGlieWEsIENoaW5hIGFuZCBTeXJpYSB0b2RheSBhbm5vdW5jZWQgdGhleSBoYWQgZm9ybWVkIAogICAgdGhlICJBeGlzIG9mIEp1c3QgYXMgRXZpbCIsIHdoaWNoIHRoZXkgc2FpZCB3b3VsZCBiZSB3YXkgZXZpbGVyIHRoYW4gCiAgICB0aGF0IHN0dXBpZCBJcmFuLUlyYXEtTm9ydGggS29yZWEgYXhpcyBQcmVzaWRlbnQgQnVzaCB3YXJuZWQgb2YgaW4gaGlzIAogICAgU3RhdGUgb2YgdGhlIFVuaW9uIGFkZHJlc3MuCgogICAgQXhpcyBvZiBFdmlsIG1lbWJlcnMsIGhvd2V2ZXIsIGltbWVkaWF0ZWx5IGRpc21pc3NlZCB0aGUgbmV3IGF4aXMgYXMgCiAgICBoYXZpbmcsIGZvciBzdGFydGVycywgYSByZWFsbHkgZHVtYiBuYW1lLiAiUmlnaHQuIFRoZXkgYXJlIEp1c3QgYXMgCiAgICBFdmlsLi4uIGluIHRoZWlyIGRyZWFtcyEiIGRlY2xhcmVkIE5vcnRoIEtvcmVhbiBsZWFkZXIgS2ltIEpvbmctCiAgICBpbC4gIkV2ZXJ5Ym9keSBrbm93cyB3ZSdyZSB0aGUgYmVzdCBldmlscy4uLmJlc3QgYXQgYmVpbmcgZXZpbC4uLndlJ3JlIAogICAgdGhlIGJlc3QuIgoKICAgIERpcGxvbWF0cyBmcm9tIFN5cmlhIGRlbmllZCB0aGV5IHdlcmUgamVhbG91cyBvdmVyIGJlaW5nIGV4Y2x1ZGVkLCAKICAgIGFsdGhvdWdoIHRoZXkgY29uY2VkZWQgdGhleSBkaWQgYXNrIGlmIHRoZXkgY291bGQgam9pbiB0aGUgQXhpcyBvZiAKICAgIEV2aWwuICJUaGV5IHRvbGQgdXMgaXQgd2FzIGZ1bGwsIiBzYWlkIFN5cmlhbiBQcmVzaWRlbnQgQmFzaGFyIGFsLUFzc2FkLgoKICAgICJBbiBBeGlzIGNhbid0IGhhdmUgbW9yZSB0aGFuIHRocmVlIGNvdW50cmllcywiIGV4cGxhaW5lZCBJcmFxaSAKICAgIFByZXNpZGVudCBTYWRkYW0gSHVzc2Vpbi4gIlRoaXMgaXMgbm90IG15IHJ1bGUsIGl0J3MgdHJhZGl0aW9uLiBJbiAKICAgIFdvcmxkIFdhciBJSSB5b3UgaGFkIEdlcm1hbnksIEl0YWx5LCBhbmQgSmFwYW4gaW4gdGhlIGV2aWwgQXhpcy4gU28geW91CgogICAgY2FuIG9ubHkgaGF2ZSB0aHJlZS4gQW5kIGEgc2VjcmV0IGhhbmRzaGFrZS4gT3VycyBpcyB3aWNrZWQgY29vbC4iIAoKICAgIFRIRSBBWElTIFBBTkRFTUlDCgogICAgSW50ZXJuYXRpb25hbCByZWFjdGlvbiB0byBCdXNoJ3MgQXhpcyBvZiBFdmlsIGRlY2xhcmF0aW9uIHdhcyBzd2lmdCwgYXMKCiAgICB3aXRoaW4gbWludXRlcywgRnJhbmNlIHN1cnJlbmRlcmVkLiAKCiAgICBFbHNld2hlcmUsIHBlZXItY29uc2Npb3VzIG5hdGlvbnMgcnVzaGVkIHRvIGdhaW4gdHJpdW12aXJhdGUgc3RhdHVzIGluIAogICAgd2hhdCBiZWNhbWUgYSBnYW1lIG9mIGdlb3BvbGl0aWNhbCBjaGFpcnMuIEN1YmEsIFN1ZGFuLCBhbmQgSW5kb25lc2lhIAogICAgc2FpZCB0aGV5IGhhZCBmb3JtZWQgdGhlIEF4aXMgb2YgU29tZXdoYXQgRXZpbCwgZm9yY2luZyBTb21hbGlhIHRvIGpvaW4gIAogICAgd2l0aCBVZ2FuZGEgYW5kIE15YW5tYXIgaW4gdGhlIEF4aXMgb2YgT2NjYXNpb25hbGx5IEV2aWwsIHdoaWxlIEJ1bGdhcmlhLAogICAgU2VyYmlhIGFuZCBSdXNzaWEgZXN0YWJsaXNoZWQgdGhlIEF4aXMgb2YgTm90IFNvIE11Y2ggRXZpbCBSZWFsbHkgYXMgCiAgICBKdXN0IEdlbmVyYWxseSBEaXNhZ3JlZWFibGUuCgogICAgV2l0aCB0aGUgY3JpdGVyaWEgc3VkZGVubHkgZXhwYW5kZWQgYW5kIGFsbCB0aGUgZGVzaXJhYmxlIGNsdWJzIGZpbGxpbmcKICAgIHVwLCBTaWVycmEgTGVvbmUsIEVsIFNhbHZhZG9yLCBhbmQgUndhbmRhIGFwcGxpZWQgdG8gYmUgY2FsbGVkIHRoZSBBeGlzCiAgICBvZiBDb3VudHJpZXMgVGhhdCBBcmVuJ3QgdGhlIFdvcnN0IEJ1dCBDZXJ0YWlubHkgV29uJ3QgQmUgQXNrZWQgdG8gSG9zdAogICAgdGhlIE9seW1waWNzOyAKCiAgICBDYW5hZGEsIEdlcm1hbnksIGFuZCBBdXN0cmFsaWEgZm9ybWVkIHRoZSBBeGlzIG9mIE5hdGlvbnMKICAgIFRoYXQgQXJlIEFjdHVhbGx5IFF1aXRlIE5pY2UgQnV0IFNlY3JldGx5IEhhdmUgTmFzdHkgVGhvdWdodHMgQWJvdXQgCiAgICBBbWVyaWNhLCB3aGlsZSBJcmVsYW5kLCBTY290bGFuZCwgYW5kIE5ldyBaZWFsYW5kIGVzdGFibGlzaGVkIHRoZSBBeGlzIAogICAgb2YgQ291bnRyaWVzIFRoYXQgQmUgQWxsb3dlZCB0byBBc2sgU2hlZXAgdG8gV2VhciBMaXBzdGljay4KCiAgICAiVGhhdCdzIG5vdCBhIHRocmVhdCwgcmVhbGx5LCBqdXN0IHNvbWV0aGluZyB3ZSBsaWtlIHRvIGRvLCIgc2FpZCAKICAgIFNjb3R0aXNoIEV4ZWN1dGl2ZSBGaXJzdCBNaW5pc3RlciBKYWNrIE1jQ29ubmVsbC4KCiAgICBXaGlsZSB3b25kZXJpbmcgaWYgdGhlIG90aGVyIG5hdGlvbnMgb2YgdGhlIHdvcmxkIHdlcmVuJ3QgcGVyaGFwcyAKICAgIG1ha2luZyBmdW4gb2YgaGltLCBhIGNhdXRpb3VzIEJ1c2ggZ3JhbnRlZCBhcHByb3ZhbCBmb3IgbW9yZSBheGVzLCAKICAgIGFsdGhvdWdoIGhlIHJlamVjdGVkIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBBeGlzIG9mIENvdW50cmllcyBXaG9zZSAKICAgIE5hbWVzIEVuZCBpbiAiR3VheSwiIGFjY3VzaW5nIG9uZSBvZiBpdHMgbWVtYmVycyBvZiBmaWxpbmcgYSBmYWxzZSAKICAgIGFwcGxpY2F0aW9uLiBPZmZpY2lhbHMgZnJvbSBQYXJhZ3VheSwgVXJ1Z3VheSwgYW5kIENoYWRndWF5IGRlbmllZCB0aGUgCiAgICBjaGFyZ2VzLiAKCiAgICBJc3JhZWwsIG1lYW53aGlsZSwgaW5zaXN0ZWQgaXQgZGlkbid0IHdhbnQgdG8gam9pbiBhbnkgQXhpcywgYnV0IAogICAgcHJpdmF0ZWx5LCB3b3JsZCBsZWFkZXJzIHNhaWQgdGhhdCdzIG9ubHkgYmVjYXVzZSBubyBvbmUgYXNrZWQgdGhlbS4KCjotfSBUcm95CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2xlaW5lIFNwcmFjaGxlaHJlIChIb2JvLCAxMi4gTWFyIDIwMDIsIDEzOjQ1OjMyKToKfiMhIHJuPVZhbmlvbiBydD0xMDE1Nzk0MDgyIHJnPXdpdHplCn4jISB0aWQ9MTAxNTc5NDA4MgpLbHVnc2NoZWlzc2VuZDoKRGEgc3RlaGVuIG51ciAxMSBTdGFhdGVuLCBpc3QgYWxzbyA5LTE5LgoKICAgSG9ibyAtIEdyaWZmZWxzcGl0emVyIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhvc2Ugd2VyZSB0aGUgZGF5cy4uLiAoQW50aGVhLCAxMy4gTWFyIDIwMDIsIDA5OjM1OjIyKToKIk5ldWxpY2giIGluIGVpbmVtIEZvcnVtIHp1bSBUaGVtYSBSb2xsZW5zcGllbGU6CkFoLCBSb2xlbWFzdGVyLiBUaG9zZSB3ZXJlIHRoZSBkYXlzIHdoZW4geW91IGNvdWxkIGdldCBhIGNvbGxlZ2UgZWR1Y2F0aW9uIGluCm1hdGggc2ltcGx5IGJ5IHBsYXlpbmcgYSByb2xlcGxheWluZyBnYW1lLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBpbG90cHJvYmxlbWUgKEFudGhlYSwgMTMuIE1hciAyMDAyLCAwOTozNjowMik6CkEgbWFuIGZvdW5kIGhpbXNlbGYgaW4gdHJhZmZpYyBjb3VydCBiZWNhdXNlIGhlIHJhbW1lZCB0aGUgYmFjayBlbmQgb2YgYSBjYXIKYXQgaGlnaCBzcGVlZHMgb24gYSBoaWdod2F5LiBJdCB0dXJucyBvdXQgdGhhdCB0aGlzIG1hbiB3YXMgYW4gYWlybGluZSBwaWxvdAp3aG8gaGFkIGp1c3QgZ290dGVuIG9mZiBkdXR5IGFmdGVyIGEgdmVyeSB2ZXJ5IGxvbmcgZGF5LiBPbiB0aGUgdGlyZWQgZHJpdmUKaG9tZSwgaGUgc2F3IGEgc2xvd2VyIGNhciBhaGVhZCBvZiBoaW0gZ3Jvd2luZyBsYXJnZXIgaW4gaGlzIHdpbmRzaGllbGQuIFRvCmF2b2lkIHRoZSBjYXIsIGhlIHN0ZXBwZWQgb24gdGhlIGdhcyBwZWRlbCBhbmQgcHVsbGVkIGJhY2sgb24gdGhlIHN0ZWVyaW5nCndoZWVsLCBmdWxseSBleHBlY3RpbmcgdG8gZ28gdXAgYW5kIG92ZXIgdGhlIGNhciBpbiBmcm9udCBvZiBoaW0uIFRoZSB2ZXJkaWN0CmluIHRoYXQgY2FzZSBpcyB1bmtub3duLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldoeSBGaXNoaW5nIGlzIGJldHRlciB0aGFuIHNleCAoTGVnYXR1cywgMTUuIE1hciAyMDAyLCAxOToxMjozMyk6CgoxLiBZb3UgZG9uJ3QgaGF2ZSB0byBoaWRlIHlvdXIgRmlzaGluZyBtYWdhemluZXMuIAoyLiBJdCdzIHBlcmZlY3RseSBhY2NlcHRhYmxlIHRvIHBheSBhIHByb2Zlc3Npb25hbCB0byBGaXNoIHdpdGggeW91IG9uY2UgaW4gYQp3aGlsZS4gCjMuIFRoZSBUZW4gQ29tbWFuZG1lbnRzIGRvbid0IHNheSBhbnl0aGluZyBhYm91dCBGaXNoaW5nLiAKNC4gSWYgeW91ciBwYXJ0bmVyIHRha2VzIHBpY3R1cmVzIG9yIHZpZGVvdGFwZXMgb2YgeW91IEZpc2hpbmcgaW4geW91ciBXaGFsZXIsCnlvdSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZW0gc2hvd2luZyB1cCBvbiB0aGUgSW50ZXJuZXQgaWYgeW91IGJlY29tZQpmYW1vdXMuIAo1LiBZb3VyIEZpc2hpbmcgcGFydG5lciBkb2Vzbid0IGdldCB1cHNldCBhYm91dCBwZW9wbGUgeW91IGZpc2hlZCB3aXRoIGxvbmcKYWdvLiAKNi4gSXQncyBwZXJmZWN0bHkgcmVzcGVjdGFibGUgdG8gRmlzaCB3aXRoIGEgdG90YWwgc3RyYW5nZXIuIAo3LiBXaGVuIHlvdSBzZWUgYSByZWFsbHkgZ29vZCBGaXNoZXIgcGVyc29uLCB5b3UgZG9uJ3QgaGF2ZSBmZWVsIGd1aWx0eSBhYm91dAppbWFnaW5pbmcgdGhlIHR3byBvZiB5b3UgRmlzaGluZyBpbiBhIFdoYWxlciB0b2dldGhlci4gCjguIElmIHlvdXIgcmVndWxhciBGaXNoaW5nIHBhcnRuZXIgaXNuJ3QgYXZhaWxhYmxlLCBoZS9zaGUgd29uJ3Qgb2JqZWN0IGlmIHlvdQpGaXNoIHdpdGggc29tZW9uZSBlbHNlLiAKOS4gTm9ib2R5IHdpbGwgZXZlciB0ZWxsIHlvdSB0aGF0IHlvdSB3aWxsIGdvIGJsaW5kIGlmIHlvdSBGaXNoIGJ5IHlvdXJzZWxmLiAKMTAuIFdoZW4gZGVhbGluZyB3aXRoIGEgRmlzaGluZyBwcm8sIHlvdSBuZXZlciBoYXZlIHRvIHdvbmRlciBpZiB0aGV5IGFyZQpyZWFsbHkgYW4gdW5kZXJjb3ZlciBjb3AuIAoxMS4gWW91IGNhbiBoYXZlIGEgRmlzaGluZyBjYWxlbmRhciBvbiB5b3VyIHdhbGwgYXQgdGhlIG9mZmljZSwgdGVsbCBGaXNoaW5nCmpva2VzLCBhbmQgaW52aXRlIGNvd29ya2VycyB0byBGaXNoIHdpdGggeW91IHdpdGhvdXQgZ2V0dGluZyBzdWVkIGZvcgpoYXJhc3NtZW50LiAKMTIuIFRoZXJlIGFyZSBubyBGaXNoaW5nLXRyYW5zbWl0dGVkIGRpc2Vhc2VzLiAKMTMuIElmIHlvdSB3YW50IHRvIHdhdGNoIEZpc2hpbmcgb24gdGVsZXZpc2lvbiwgeW91IGRvbid0IGhhdmUgdG8gc3Vic2NyaWJlIHRvCnRoZSBQbGF5Ym95IGNoYW5uZWwuIAoxNC4gTm9ib2R5IGV4cGVjdHMgeW91IHRvIEZpc2ggd2l0aCB0aGUgc2FtZSBwYXJ0bmVyIGZvciB0aGUgcmVzdCBvZiB5b3VyCmxpZmUuIAoxNS4gTm9ib2R5IGV4cGVjdHMgeW91IHRvIGdpdmUgdXAgRmlzaGluZyBpZiB5b3VyIHBhcnRuZXIgbG9zZXMgaW50ZXJlc3QgaW4KaXQuIAoxNi4gWW91ciBGaXNoaW5nIHBhcnRuZXIgd2lsbCBuZXZlciBzYXksICJOb3QgYWdhaW4/IFdlIGp1c3QgRmlzaGVkIGxhc3Qgd2VlayEKSXMgRmlzaGluZyBhbGwgeW91IGV2ZXIgdGhpbmsgYWJvdXQ/IgoKTAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdoeSBGaXNoaW5nIGlzIGJldHRlciB0aGFuIHNleCAoTW9udGFudXMsIDE1LiBNYXIgMjAwMiwgMjE6NTQ6MTEpOgp+IyEgcm49TGVnYXR1cyBydD0xMDE2MjE1OTUzIHJnPXdpdHplCn4jISB0aWQ9MTAxNjIxNTk1MwpEaWUgSGFlbGZ0ZSBkaWVzZXIgUHVua3RlIGRpZXNlcyAiV2l0emVzIiB3aXJkIGR1cmNoIGVpbmVuIGJlbGllYmlnZW4gRmlsbSBtaXQKSmFjayBMZW1tb24gd2lkZXJsZWd0LgpEZXIgZnJldW5kbGljaGUgQmVvYmFjaHRlciBlbXBmaWVobHQgekIgIkdydW1weSBvbGQgbWVuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJldW5kaW5uZW4gKERyb2xsaWUsIDIwLiBNYXIgMjAwMiwgMTM6MDg6MzQpOgpEZW5rdCBkcmFuLCB3ZXJmdCBFdXJlIGFsdGUgRnJldW5kaW4gbmljaHQgd2VnLiAKV2VubiBJaHIgd2FydGV0IGtvZW5udCBJaHIgZGllIGFiIG5hZWNoc3RlcyBKYWhyIHJpY2h0aWcgenVydWVja2dlYmVuIHVuZApiZWtvbW10IHNvZ2FyIERvc2VucGZhbmQKCkV1ZXIgRHJvbGxpZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FzIHp1bSBzZWxiZXIgdGVzdGVuLi4uIChNb3Jnb3RoLCAyMS4gTWFyIDIwMDIsIDExOjQ0OjA2KToKR3JhZCBlYmVuIGdlc2VoZW4gYmVpbSBLZXJuZWwtc2F1Z2VuIGF1ZiBmdHAuZGUua2VybmVsLm9yZwpwcm9iaWVydCBtYWwgZGVuIGJlZmVobCBOT09QIGF1cyA6KQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgenVtIHNlbGJlciB0ZXN0ZW4uLi4gKEdyaW1tYm9ybiwgMjEuIE1hciAyMDAyLCAxMTo0NjowOCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwMTY3MDc0NDYgcmc9d2l0emUKfiMhIHRpZD0xMDE2NzA3NDQ2CjIzMCBBbm9ueW1vdXMgYWNjZXNzIGdyYW50ZWQsIHJlc3RyaWN0aW9ucyBhcHBseS4KUmVtb3RlIHN5c3RlbSB0eXBlIGlzIFVOSVguClVzaW5nIGJpbmFyeSBtb2RlIHRvIHRyYW5zZmVyIGZpbGVzLgpmdHA+IE5PT1AKP0ludmFsaWQgY29tbWFuZApmdHA+IAoKQWVoLCBqYSwgc2VociB3aXR6aWcuLi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgenVtIHNlbGJlciB0ZXN0ZW4uLi4gKEhvdXNlaG9sZGVyLCAyMS4gTWFyIDIwMDIsIDEyOjA3OjA5KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDE2NzA3NTY4IHJnPXdpdHplCn4jISB0aWQ9MTAxNjcwNzQ0NgpDb25uZWN0ZWQgdG8gZnRwLmRlLmtlcm5lbC5vcmcuCjIzMCBBbm9ueW1vdXMgYWNjZXNzIGdyYW50ZWQsIHJlc3RyaWN0aW9ucyBhcHBseS4KUmVtb3RlIHN5c3RlbSB0eXBlIGlzIFVOSVguClVzaW5nIGJpbmFyeSBtb2RlIHRvIHRyYW5zZmVyIGZpbGVzLgpmdHA+IHF1b3RlIE5PT1AKMjAwIE5PT1AgY29tbWFuZCBzdWNjZXNzZnVsLgoKCmhtIHdhcyBnYWJzIGRlbm4gZGEgd2l6aWplcyA/IDotKAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV2FzIHp1bSBzZWxiZXIgdGVzdGVuLi4uIChQYXRyeW4sIDIxLiBNYXIgMjAwMiwgMTI6MDg6NDkpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9MTAxNjcwODgyOSByZz13aXR6ZQp+IyEgdGlkPTEwMTY3MDc0NDYKd2l0emlnIHdhZXJlIGVzLCB3ZW5uIHNpZSBkaXIgZnVlciBkZW4gZGllbnN0IHdhcyBiZXJlY2huZW4gd3VlcmRlbiA7KQoKLS0gCnBhdHJ5bgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2FzIHp1bSBzZWxiZXIgdGVzdGVuLi4uIChBbnRoZWEsIDIxLiBNYXIgMjAwMiwgMTI6MTU6NDApOgp+IyEgcm49UGF0cnluIHJ0PTEwMTY3MDg5Mjkgcmc9d2l0emUKfiMhIHRpZD0xMDE2NzA3NDQ2CkRhcyBQcm9ibGVtIGlzdCBlaGVyOgpBdWYgd2VsY2hlbSBGVFAtU2VydmVyIHdhciBkZXIgbGllYmUgTW9yZ290aCBkZW5uIGpldHp0PyBTY2hsaWVzc2xpY2ggaXN0IGRhcwpqYSBlaW4gVmVydGVpbGVyIGF1ZiBldGxpY2hlIGFuZGVyZSBGVFAtU2VydmVyIChsZW8ub3JnLCBmaHQtZXNzbGluZ2VuLmRlLHVuZAp3YXMgd2Vpc3MgaWNoIHdhcyBkYSBzb25zdCBub2NoIGRhaGludGVyIGhhZW5ndCkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXYXMgenVtIHNlbGJlciB0ZXN0ZW4uLi4gKE1vcmdvdGgsIDIxLiBNYXIgMjAwMiwgMTM6MTM6MjkpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9MTAxNjcwODgyOSByZz13aXR6ZQp+IyEgdGlkPTEwMTY3MDc0NDYKYmVpIG1pciBzaWVodCBkYXMgc28gYXVzOgoyMDAgTWFyeSBoYWQgYSBsaXR0bGUgbGFtYi4KICAgIE5PT1AKMjAwIE1hcnkgaGFkIGEgbGl0dGxlIGxhbWIuCiAgICBOT09QCjIwMCBNYXJ5IGhhZCBhIGxpdHRsZSBsYW1iLgogICAgTk9PUAoyMDAgTWFyeSBoYWQgYSBsaXR0bGUgbGFtYi4KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXYXMgenVtIHNlbGJlciB0ZXN0ZW4uLi4gKFZhbmlvbiwgMjEuIE1hciAyMDAyLCAyMDo1MDo1OCk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwMTY3MTI4MDkgcmc9d2l0emUKfiMhIHRpZD0xMDE2NzA3NDQ2CkRlbiB3aXR6aWdlbiBUZWlsIGRlcyBTcHJ1Y2hlcyBoYXN0IGR1IGFiZXIgdmVyZ2Vzc2VuOgogCiAuLi4KIFNoZSBwdXQgaXQgaW4gYSBidWNrZXQuCiBBbmQgZXZlcnkgdGltZSB0aGUgbGFtYiBlc2NhcGVkLAogSGVyIGJ1bGxkb2cgY2FtZSBhbmQgLi4uIHB1dCBpdCBiYWNrLgoKViosIHNjaG1hcnJudC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFdhcyB6dW0gc2VsYmVyIHRlc3Rlbi4uLiAoR2FuZG8sIDIxLiBNYXIgMjAwMiwgMjM6Mzg6MDgpOgp+IyEgcm49QW50aGVhIHJ0PTEwMTY3MDkzNDAgcmc9d2l0emUKfiMhIHRpZD0xMDE2NzA3NDQ2CmRhaGludGVyIHZlcnN0ZWNrdCBzaWNoIGdlbmF1Z2Vub21tZW46XApzb3VyY2UucmZjODIyLm9yZwpmdHAubGVvLm9yZwpsaW5taXIucnVmLnVuaS1mcmVpYnVyZy5kZQpyaGx4MDEuZmh0LWVzc2xpbmdlbi5kZQoKZGllIDQganVueCBtYWNoZW4gcm91bmQtcm9iaW4KCkdhbmRvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFYmVuIGdlbGVzZW4gOikgKE1vcmdvdGgsIDI4LiBNYXIgMjAwMiwgMDk6MTk6NTQpOgpBYmVyIElocmUgd2lzc3QgamEgLCBNYWVubmVyIHNpbmQgc28gYWx0LCB3aWUgc2llIHNpY2ggZnVlaGxlbiwgRnJhdWVuIHNvIGFsdAp3aWUgc2llIHNpY2ggYW5mdWVobGVuLi4uICpnYW56YnJlaXRncmlucyoKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUUk9FVCAoRWxpemFiZXRoLCAgNC4gQXByIDIwMDIsIDIzOjA4OjA4KToKa29tbXQgZWluIFBvbW1lcyB1bSBkaWUgRWNrZSB1bmQga25pY2t0IHVtLgpnZWh0IGVpbiBlaSB1bSBkaWUgZWNrZSB1bmQga2FlbW10IHNpY2ggZGllIGhhYXJlLgpnZWh0IG5lIHdvbGtlIGluIGxhZGVuIHVuZCBzYWd0IG5vZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUUk9FVCAoR3JpbW1ib3JuLCAgNS4gQXByIDIwMDIsIDAxOjA1OjUxKToKfiMhIHJuPUVsaXphYmV0aCBydD0xMDE3OTU0NDg4IHJnPXdpdHplCn4jISB0aWQ9MTAxNzk1NDQ4OApJc3NlcyB3aWVkZXIgc28gd2VpdD8gU2luZCBkaWVzZSBBbnRpd2l0emUgd2llZGVyIGluPwpBbnNvbnN0ZW46IEVpbiBPc3Rlcmhhc2Ugb2huZSBFaWVyIGlzdCB3aWUgZWluIFdlaWhuYWNodHNtYW5uIG9obmUgU2Fjay4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUUk9FVCAoVmFybGFyaW9uLCAgNS4gQXByIDIwMDIsIDAyOjQ3OjU0KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDE3OTYxNTUxIHJnPXdpdHplCn4jISB0aWQ9MTAxNzk1NDQ4OApLb21tdCBoYWx0IChmYXN0KSBqZWRlciBtYWwgaW4gZGFzIEFsdGVyLCB3byBtYW4gc293YXMgdG9sbCBmaW5kZXQuLi4KClZhcmwqLCBlaW5lbiBGbGFjaHdpdHpwZmVubmlnIGluIGRpZSBSdW5kZSB3ZXJmZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUUk9FVCAoQm9pbmcsICA1LiBBcHIgMjAwMiwgMDg6NDM6MDMpOgp+IyEgcm49VmFybGFyaW9uIHJ0PTEwMTc5Njc2NzQgcmc9d2l0emUKfiMhIHRpZD0xMDE3OTU0NDg4CkRhcmF1cyBmb2xnZXJlIGljaCBkYXNzIEVsaXphYmV0aCAxNCBpc3Q/IDopCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFRST0VUIChBbmFjcmlvbiwgIDUuIEFwciAyMDAyLCAwODo0OToxNik6Cn4jISBybj1Cb2luZyBydD0xMDE3OTg4OTgzIHJnPXdpdHplCn4jISB0aWQ9MTAxNzk1NDQ4OApmZWhsdCBub2NoIGVpbmVyOgoKZ2VodCBlaW4gTWFubiB1bSBkaWUgRWNrZSB1bmQgaXN0IHdlZy4gOm8pCgpBbmFjKiAobmljaHQgMTQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoxMCBHcnVlbmRlLi4uIChIdW1uaSwgIDUuIEFwciAyMDAyLCAwOTowNzozNik6Cm9rIHNvbGNoZSBTYWNoZW4gc2luZCBhYmdlZHJvc2NoZW4uLiB0cm90emRlbS4uCgpaZWhuIEdydWVuZGUgd2FydW0gZWluIE1VRCBiZXNzZXIgaXN0IGFscyBlaW5lIEZyYXUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoxLiBFaW5lbSBNVUQgaXN0IGVzIGVnYWwsIHdlbm4gRHUgbWFsIGVpbiBhbmRlcmVzIE1VRCBzcGllbHN0LgoKMi4gRHUga2FubnN0IGRhcyBBdXNzZWhlbiBkZWluZXMgTVVEcyBtaXQgVGlueUZ1Z3VlIGJlbGllYmlnIHZlcmFlbmRlcm4uCgozLiBXZW5uIER1IGtlaW5lIEx1c3QgbWVociBhdWYgZGFzIE1VRCBoYXN0IHNjaGFsdGVzdCBEdSBlcyBlaW5mYWNoIGF1cyAtIG9obmUKYmVmdWVyY2h0ZW4genUgbXVlc3NlbiwgYW0gbmFlY2hzdGVuIFRhZyBuaWNodCBtZWhyIE11ZGRlbiB6dSBrb2VubmVuLgoKNC4gVHJ1bmtlbmhlaXQgaGluZGVydCBuaWNodCBhbSBNdWRkZW4uCgo1LiBEZXIgQmVmZWhsICxpZ25vcmllcmUnLiAgCgo2LiBQcm9ibGVtZSB3aWUgVW5vcmRudW5nIGxhc3NlbiBzaWNoIHBlciAsLHN0ZWNrZSBhbGxlcyBpbiBwYWtldCcnIGxvZXNlbi4KCjcuIEVpbiBNdWQgaGF0IGVpbmVuIGF1c2dlZ2xpY2hlbmVuIEhvcm1vbmhhdXNoYWx0LgoKOC4gTXVkZGVuIGJyaW5ndCBzZWx0ZW4gQWxpbWVudGVrbGFnZW4gZWluLgoKOS4gRHUgYnJhdWNoc3Qga2VpbmUgQW5nc3Qgdm9yIEtyYW5raGVpdGVuIGR1cmNoIGVpbiBNVUQgenUgaGFiZW4uCgp1bmQgbmF0dWVybGljaDoKMTAuIEVTIEdJQlQgS0VJTkUgRlJBVUVOIElNIE1VRCEhISEhCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDEwIEdydWVuZGUuLi4gKE1hYXJnLCAgNS4gQXByIDIwMDIsIDEzOjA2OjIwKToKfiMhIHJuPUh1bW5pIHJ0PTEwMTc5OTA0NTYgcmc9d2l0emUKfiMhIHRpZD0xMDE3OTkwNDU2CjExLiBFcyBoYXQgYXVjaCBtYWwgc2VpbmUgVGFnZSwgYWJlciBuaWNodCBhbGxlIHZpZXIgV29jaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHJ1ZSBvciBGYWxzZT8gKEFyaywgIDguIEFwciAyMDAyLCAxMDo1MTo1Nik6CkRhIGlzdCBkb2NoIHNjaG9uIGV0d2FzIFdhaHJlcyBkcmFuLCBvZGVyPyAKPiAKPiBFaW4gTWFubiBpbiBlaW5lbSBIZWlzc2x1ZnRiYWxsb24gaGF0IHNpY2ggdmVyaXJydC4gRXIgZ2VodCB0aWVmZXIgdW5kIAo+IHNpY2h0ZXQgZWluZSBGcmF1IGFtIEJvZGVuLiBFciBzaW5rdCBub2NoIHdlaXRlciBhYiB1bmQgcnVmdDogCj4gIkVudHNjaHVsZGlndW5nLCBrb2VubmVuIFNpZSBtaXIgaGVsZmVuID8gSWNoIGhhYmUgZWluZW0gRnJldW5kIAo+IHZlcnNwcm9jaGVuLCBpaG4gdm9yIGVpbmVyIFN0dW5kZSB6dSB0cmVmZmVuIHVuZCBpY2ggd2Vpc3MgbmljaHQgd28gaWNoIAo+IGJpbi4iIAo+IAo+IERpZSBGcmF1IGFtIEJvZGVuIGFudHdvcnRldDogIlNpZSBzaW5kIGluIGVpbmVtIEhlaXNzbHVmdGJhbGxvbiBpbiAKdW5nZWZhZWhyIDEwIG0gSG9laGUgdWViZXIgR3J1bmQuIAo+IFNpZSBiZWZpbmRlbiBzaWNoIHp3aXNjaGVuIDQwIHVuZCA0MSBHcmFkIG5vZXJkbGljaGVyIEJyZWl0ZSB1bmQgendpc2NoZW4gCj4gNTkgdW5kIDYwIEdyYWQgd2VzdGxpY2hlciBMYWVuZ2UuIiAKPiAKPiAiU2llIG11ZXNzZW4gSW5nZW5pZXVyaW4gc2VpbiIgc2FndCBkZXIgQmFsbG9uZmFocmVyLiAKPiAKPiAiQmluIGljaCIsIGFudHdvcnRldCBkaWUgRnJhdSwgIndvaGVyIHd1c3N0ZW4gc2llIGRhcz8iIAo+IAo+ICJOdW4sIiBzYWd0IGRlciBCYWxsb25mYWhyZXIsICJhbGxlcyB3YXMgc2llIG1pciBzYWd0ZW4gaXN0IHRlY2huaXNjaCAKPiBrb3JyZWt0LCBhYmVyIGljaCBoYWJlIGtlaW5lIEFobnVuZywgd2FzIGljaCBtaXQgaWhyZW4gSW5mb3JtYXRpb25lbiAKPiBhbmZhbmdlbiBzb2xsLCB1bmQgRmFrdCBpc3QsIGRhc3MgaWNoIGltbWVyIG5vY2ggbmljaHQgd2Vpc3MsIHdvIGljaCBiaW4uIAo+IE9mZmVuIGdlc2FndCB3YXJlbiBTaWUga2VpbmUgZ3Jvc3NlIEhpbGZlLiBTaWUgaGFiZW4gaG9lY2hzdGVucyBtZWluZSBSZWlzZSAKPiBub2NoIHdlaXRlciB2ZXJ6b2VnZXJ0LiIgCj4gCj4gRGllIEZyYXUgYW50d29ydGV0OiAiU2llIG11ZXNzZW4gaW0gTWFuYWdlbWVudCB0YWV0aWcgc2Vpbi4iIAo+IAo+ICJKYSwiIGFudHdvcnRldCBkZXIgQmFsbG9uZmFocmVyLCAiYWJlciB3b2hlciB3dXNzdGVuIHNpZSBkYXM/IiAKPiAKPiAiTnVuLCIgc2FndCBkaWUgRnJhdSwgInNpZSB3aXNzZW4gd2VkZXIgd28gc2llIHNpbmQgbm9jaCB3b2hpbiBzaWUgCmZhaHJlbi4gCj4gCj4gU2llIHNpbmQgYXVmZ3J1bmQgZWluZXIgZ3Jvc3NlbiBNZW5nZSBoZWlzc2VyIEx1ZnQgaW4gSWhyZSBqZXR6aWdlIApQb3NpdGlvbiAKPiBnZWtvbW1lbi4gCj4gU2llIGhhYmVuIGVpbiBWZXJzcHJlY2hlbiBnZW1hY2h0LCB2b24gZGVtIFNpZSBrZWluZSBBaG51bmcgaGFiZW4gd2llIHNpZSAKPiBlcyBlaW5oYWx0ZW4ga29lbm5lbiB1bmQgZXJ3YXJ0ZW4gdm9uIGRlbiBMZXV0ZW4gdW50ZXIgSWhuZW4sIGRhc3MgCj4gc2llIElocmUgUHJvYmxlbWUgbG9lc2VuLiAKPiBUYXRzYWNoZSBpc3QsIGRhc3MgU2llIGluIGV4YWt0IGRlciBnbGVpY2hlbiBMYWdlIHNpbmQgd2llIHZvciB1bnNlcmVtIAo+IFRyZWZmZW4sIGFiZXIgamV0enQgYmluIGlyZ2VuZHdpZSBpY2ggc2NodWxkICEiIAoKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcm9mZXNzb3IgKEFuYWNyaW9uLCAxMC4gQXByIDIwMDIsIDE0OjQ4OjI4KToKPiA+Cj4gPiBFaW4gTWF0aGVwcm9mZXNzb3Igc2NocmVpYnQgc2VpbmVyIEZyYXU6Cj4gPgo+ID4gTGllYmUgRnJhdSwKPiA+Cj4gPiBEdSB3ZWlzc3QsIER1IGJpc3QgYmVyZWl0cyA1NCBKYWhyZSBhbHQgdW5kIGljaCBoYWJlIGJlc3RpbW10ZQo+ID4gQmVkdWVyZm5pc3NlIGRpZSBEdSBsZWlkZXIgZWluZmFjaCBuaWNodCBtZWhyIGJlZnJpZWRpZ2VuIGthbm5zdC4KPiA+IEFiZXIgaWNoIGJpbiBpbW1lciBub2NoIHNlaHIgZ2x1ZWNrbGljaCBEaWNoIGFscyBtZWluZSBGcmF1IHp1IGhhYmVuLgo+ID4gSWNoIGhvZmZlLCBkYXNzIGljaCBEaWNoIGRlc3dlZ2VuIG5pY2h0IHZlcmxldHplLCBhYmVyIGpldHp0IHdhZWhyZW5kCj4gPiBEdSBkaWVzZW4gQnJpZWYgbGllc3QsIHdlcmRlIGljaCBnZXJhZGUgaW0gR3JhbmQgSG90ZWwgbWl0IG1laW5lcgo+ID4gMTgtamFlaHJpZ2VuIFNla3JldGFlcmluIHNlaW4uIEljaCBrb21tZSB2b3IgTWl0dGVybmFjaHQgbmFjaCBIYXVzZS4KPiA+IERlaW4gRWhlbWFubgo+ID4gQWxzIGVyIHp1cnVlY2sgenUgSGF1c2UgaXN0LCBmaW5kZXQgZXIgZWluZW4gQnJpZWYgdm9uIHNlaW5lciBGcmF1Ogo+ID4gTGllYmVyIEVoZW1hbm4sCj4gPiBEdSBiaXN0IG1pdCBEZWluZW4gNTQgSmFocmVuIGF1Y2ggbmljaHQgbWVociBkZXIgSnVlbmdzdGUuCj4gPiBXYWVocmVuZCBEdSBkaWVzZW4gQnJpZWYgbGllc3QgYmluIGljaCBpbSBTaGVyYXRvbiBIb3RlbCBtaXQgZGVtCj4gPiAxOC1qYWVocmlnZW4gUG9zdGJvdGVuLiBEYSBEdSBqYSBNYXRoZW1hdGlrZXIgYmlzdCwgd2lyc3QgRHUKPiA+IGxlaWNodCBmZXN0c3RlbGxlbiwgZGFzcyAxOCBpbiA1NCB2aWVsIG9lZnRlciByZWluIGdlaHQgYWxzIDU0Cj4gPiBpbiAxOC4gQWxzbyB3YXJ0ZSBuaWNodCBhdWYgbWljaC4uLi4KPiA+IERlaW5lIEZyYXUKCgpEaWVzbWFsIG9obmUgSGVhZGVyLCBob2ZmZSBpY2ggOy0pCgpBbmFjKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXVyby1VbXN0ZWxsdW5nIChKYW1lc29uLCAyNC4gQXByIDIwMDIsIDIyOjMyOjU0KToKZXR3YXMgdmVyc3BhZXRldCwgYWJlci4uLgoKRS1NYWlsIGRlcyBLb256ZXJuLUxlbmt1bmdzLUF1c3NjaHVzc2VzIGFuIGFsbGUgTWl0YXJiZWl0ZXIgZWluZXMgZ2xvYmFsCmFnaWVyZW5kZW4gVW50ZXJuZWhtZW5zOgoKV2Ugd291bGQgbGlrZSB0byBpbmZvcm0geW91IHRoYXQgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEV1cm8gZnJvbQpKYW51YXJ5IDJuZCAyMDAyIHRoZSBLYW1hc3V0cmEgcG9zaXRpb24gdXN1YWxseSBrbm93biBhcyA2OSB3aWxsIG5vdyBiZSBrbm93bgphcyAzNSwyOC4KCkJlc3QgUmVnYXJkcwpUaGUgRXVybyBDaGFuZ2VvdmVyIEJvYXJkLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRhcyBQdW5rdGVzeXN0ZW0gZGVyIExpZWJlIChBcG9sbG9uaWEsICA2LiBNYWkgMjAwMiwgMTc6MTQ6NDEpOgpJbiBkZXIgV2VsdCBkZXIgTGllYmUgZ2lidCBlcyBudXIgZWluZSBSZWdlbDogTWFjaCBkaWUgRnJhdSBnbHVlY2tsaWNoIQoKRHUgdHVzdCBldHdhcywgd2FzIHNpZSBtYWcuIER1IGJla29tbXN0IGRhZnVlciBQdW5rdGUuCkR1IHR1c3QgZXR3YXMsIHdhcyBzaWUgbmljaHQgbWFnLiBEaXIgd2VyZGVuIFB1bmt0ZSBhYmdlem9nZW4uCkR1IHR1c3QgZXR3YXMsIHdhcyBzaWUgbWFnLCBhYmVyIHNvd2llc28gdm9uIERpciBlcndhcnRldC4gRGFmdWVyIGdpYnQgZXMKa2VpbmUgUHVua3RlLgoKSGllciBudW4gZGVyIExlaXRmYWRlbiB6dW0gUHVua3Rlc3lzdGVtOgoKMS4gRWluZmFjaGUgUGZsaWNodGVuLgoKRHUgbWFjaHN0IGRhcyBCZXR0ICsxIApEdSBtYWNoc3QgZGFzIEJldHQsIGFiZXIgdmVyZ2lzc3QgZGllIFppZXJraXNzZW4gMCAKRHUgd2lyZnN0IGVpbmZhY2ggZGllIEJldHRkZWNrZSB1ZWJlciB6ZXJrbmF1dHNjaHRlIExha2VuIC0xIApEdSBsYWVzc3QgZGVuIFRvaWxldHRlbmRlY2tlbCBvYmVuIC01IApEdSBlcnNldHp0IGRpZSBsZWVyZSBSb2xsZSBUb2lsZXR0ZW5wYXBpZXIgMCAKV2VubiBkaWUgUm9sbGUgbGVlciBpc3QsIHN0ZWlnc3QgZHUgdW0gYXVmIEtsZWVuZXggLTEgCldlbm4gYXVjaCBLbGVlbmV4IGFsbGUgaXN0LCB3ZWNoc2Vsc3QgZHUgZGFzIEJhZGV6aW1tZXIgLTIgCkR1IGdlaHN0IGZ1ZXIgc2llIGV4dHJhZHVlbm5lIEJpbmRlbiBtaXQgRmx1ZWdlbG4ga2F1ZmVuICs1IApEaXRvLCBpbSBTY2huZWVzdHVybSArOCAKRHUga29tbXN0IG1pdCBCaWVyIHp1cnVlY2sgLTUgCkR1IGtvbW1zdCBtaXQgQmllciB6dXJ1ZWNrLCBhYmVyIG9obmUgQmluZGVuIC0yNSAKRHUgdWViZXJwcnVlZnN0IG5hY2h0cyBlaW4gaWhyIHZlcmRhZWNodGlnZXMgR2VyYWV1c2NoIDAgCm9obmUgZXR3YXMgenUgZmluZGVuIDAgCkR1IGZpbmRlc3QgZXR3YXMgKzUgCkR1IGVyc2NobGFlZ3N0IGVzIG1pdCBkZW0gR29sZnNjaGxhZ2VyICsxMCAKRXMgd2FyIGlocmUgS2F0emUgLTQwIAoKMi4gU296aWFsZSBWZXJwZmxpY2h0dW5nZW4uCgpEdSBibGVpYnN0IGRpZSBnYW56ZSBQYXJ0eSB1ZWJlciBhbiBpaHJlciBTZWl0ZSAwIApEdSBibGVpYnN0IGVpbmUgV2VpbGUgYW4gaWhyZXIgU2VpdGUgdW5kIGdlaHN0IGRhbm4genUgZWluZW0gS29sbGVnZW4gLTEgCkRlciBLb2xsZWdlIGhlaXNzdCBUaWZmYW55IC00IApUaWZmYW55IGlzdCBUYWVuemVyaW4gLTYgCm1pdCBCcnVzdC1JbXBsYW50YXRlbiAtMTggCkFuIGlocmVtIEdlYnVydHN0YWcgZnVocnN0IER1IHNpZSB6dW0gRXNzZW4gYXVzIDAgCkVzIGlzdCBrZWluIFNjaG5lbGxpbWJpc3MgKzEgCkVzIGlzdCBlaW4gU2NobmVsbGltYmlzcyAtMiAKRXMgaXN0IGVpbmUgU3BvcnQtS25laXBlIC0zIApEaXRvLCBtaXQgTGl2ZS1VZWJlcnRyYWd1bmcgLTEwIApVbmQgZHUgaGFzdCBkZWluIEdlc2ljaHQgaW4gZGVuIFZlcmVpbnNmYXJiZW4gYmVtYWx0IC01MCAKRHUgZ2Voc3QgbWl0IGVpbmVtIEZyZXVuZCBhdXMgLTUgCkRlaW4gRnJldW5kIGlzdCBnbHVlY2tsaWNoIHZlcmhlaXJhdGV0IC00IApPZGVyIGVpbiBTaW5nbGUgLTcgCkVyIGZhZWhydCBlaW5lbiBTcG9ydHdhZ2VuIC0xMCAKZWluZW4gaXRhbGllbmlzY2hlbiAtMjUgCkR1IGdlaHN0IG1pdCBpaHIgaW5zIEtpbm8gMCAKSW4gZWluZW4gRmlsbSBkZW4gc2llIG1hZyArMSAKSW4gZWluZW4gRmlsbSBkZW4gRHUgaGFzc3QgKzUgCkluIGVpbmVuIEZpbG0gZGVuIER1IG1hZ3N0IC0yIApJbiBlaW5lbiBGaWxtIGluIGRlbSBDeWJvcmdzIE1lbnNjaGVuIGZyZXNzZW4gLTkgCkR1IGx1ZWdzdCBzaWUgdm9yaGVyIGFuIHVuZCBzYWdzdCwgZXMgc2VpIGVpbiBMaWViZXNmaWxtIC0xNQoKMy4gRGVpbiBBdXNzZWhlbi4KCkR1IGVudHdpY2tlbHN0IGVpbmVuIHNpY2h0YmFyZW4gQmF1Y2hhbnNhdHogLTEwIApEaXRvLCBhYmVyIGR1IHRyYWluaWVyc3QgdW0gaWhuIGxvcyB6dSB3ZXJkZW4gKzggCkR1IGVudHdpY2tlbHN0IGVpbmVuIHNpY2h0YmFyZW4gQmF1Y2hhbnNhdHoKdW5kIHN0ZWlnc3QgdW0gYXVmIEhvc2VudHJhZWdlciAtMjUgCnVuZCB0cmFlZ3N0IEhhd2FpaS1IZW1kZW4gLTM1IApEdSBzYWdzdCwgZGFzIG1hY2h0IG5pY2h0cywgd2VpbCBzaWUgYXVjaCBlaW5lbiBCYXVjaCBoYXQgIC04MDAgCgo0LiBEaWUgdWx0aW1hdGl2ZSBGcmFnZS4KCjQpIERpZSB1bHRpbWF0aXZlIEZyYWdlOgpTaWU6IEJpbiBpY2ggZGljaz8gRHUgem9lZ2Vyc3QgbWl0IGRlciBBbnR3b3J0IC0xMCAKRHUgZnJhZ3N0OiAiV28/IiAtMzUgCkplZGUgYW5kZXJlIEFudHdvcnQgLTIwCgo1LiBLb21tdW5pa2F0aW9uLgoKRHUgaG9lcnN0IGlociB6dSAwIAp1bmQgdmVyc3VjaHN0IGtvbnplbnRyaWVydCBhdXN6dXNlaGVuIC0xMCAKdWViZXIgMzAgTWludXRlbiArNSAKdWViZXIgMzAgTWludXRlbiwgd2FlaHJlbmQgZWluZXIgU3BvcnRzZW5kdW5nIGltIEZlcm5zZWhlbiArMTIgCkRpdG8sIGFiZXIgb2huZSBlaW4gZWluemlnZXMgbWFsIGluIGRpZSBHbG90emUgenUgc2VoZW4gICsxMDAgCkRpdG8sIGFiZXIgc2llIG1lcmt0LCBkYXNzIGR1IGVpbmdlc2NobGFmZW4gYmlzdCAtMjAKCk51biBub2NoIGVpbiBrdXJ6ZXIgRWluYmxpY2sgaW4gZGVuIFB1bmt0ZXN0YW5kIChBY2h0dW5nLCBwb3NpdGl2ZSBQdW5rdGUKdmVyZmFsbGVuIG5hY2ggMiBUYWdlbiwgbmVnYXRpdmUgdmVyamFlaHJlbiBfbmllXyk6CgotMTAwMCBEdSBoYXN0IGdhciBrZWluZSBCZXppZWh1bmcgbWVociAKLTEwMCBEYXMgd2lyZCB0ZXVlciAKYmlzICsxMCBEYXVlci1NaWdyYWVuZSAKMTEgYmlzICsxNSBEdSBtdXNzdCBtaXQgaWhyIHRhbnplbiBnZWhlbiAKKzE2IGJpcyArMjAgRHUgZGFyZnN0IG1pdCBpaHIgdGFuemVuIGdlaGVuIAorMjEgYmlzICs1MCBTZXggcnVlY2t0IGluIGRlbiBCZXJlaWNoIGRlcyBEZW5rYmFyZW4gCis1MSBiaXMgKzgwIFNleCEgKG9kZXIgd2FzIHNpZSBkYWZ1ZXIgaGFlbHQpIAorODAgQmV6aWVodW5nIGZ1dHNjaCAtIHdlaWwgc2llIG1pdCBzbyBlaW5lbSBXZWljaGVpIGphIG5pY2h0IGdsdWVja2xpY2gKd2VyZGVuIGthbm4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmRsaWNoIGRhcyBVcGRhdGUhIChOb25uZSwgIDcuIE1haSAyMDAyLCAwODo1NTozMyk6CmF1cyBkZS50YWxrLmpva2VzOgoKSmV0enQgbmV1IGF1ZiAyIENEJ3M6IERJRSBCSUJFTCAyLjAKCk5hY2hkZW0gdHJldWUgQW5oYWVuZ2VyIGpldHp0IHNlaXQgendlaXRhdXNlbmQgSmFocmVuIGF1ZiBlaW4gVXBkYXRlCndhcnRlbiwgZ2lidCBlcyBlbmRsaWNoIGVpbmUgbmV1ZSBWZXJzaW9uIGRlciBCaWJlbC4gRGllIEVyd2VpdGVydW5nZW4Kc2luZCBkZXJhcnRpZyB1bWZhbmdyZWljaCwgZGFzcyB3aXIgZWluZW4gU3BydW5nIHZvciBkZW0gS29tbWEgZnVlciBtZWhyCmFscyBudXIgZ2VyZWNodGZlcnRpZ3QgaGFsdGVuLgoKCkVzIGZvbGd0IGVpbmUgdWViZXJzaWNodCBkZXIgbmV1ZW4gRmVhdHVyZXMgaW0gZWluemVsbmVuOgoKCgpJLkFuemFobCBkZXIgR2Vib3RlIHZvbiAxMCBlcndlaXRlcnQgYXVmIDE1IGludGVybmUgdW5kIDUgdm9tIEJlbnV0emVyCmRlZmluaWVyYmFyZS4KCklJLiAzLlRlaWw6IERhcyBicmFuZG5ldWUgVGVzdGFtZW50LiBFcyBlbnRoYWVsdCBmb2xnZW5kZSBOZXVlcnVuZ2VuOgpEYXMgaXJyZSBjb29sZSBUZXN0YW1lbnQgZnVlciBLaWRzISBtaXQgQXV0b2dyYW1tYWRyZXNzZW4gdm9uIHouQi4KR290dCwgSmVzdXMsIE1hcmlhCgoKSUlJLlN0YXR0IGVpbmVyIGpldHp0IGJpcyB6dSB6ZWhuIEdvdHRoZWl0ZW4gbW9lZ2xpY2ghIEF1Y2ggd2VpYmxpY2hlCkdvZXR0ZXIhCkdvdHQgQ29uc3RydWN0aW9uIEtpdCAoR0NLKSB3aXJkIG1pdGdlbGllZmVydC4KCklWLkF1c2Z1ZWhybGljaGUgQmViaWxkZXJ1bmcgZnVlciBFaW5zdGVpZ2VyLiBEdXJjaCBkZW4gSHlwZXJ0ZXh0IGZ1ZWhydApIZXJvZHksIGRpZSBoYXBweSBIb3N0aWUuCgpWLkF1ZiB2aWVsZmFjaGVuIFd1bnNjaCB3dXJkZSBNb3NlcyBqZXR6dCBrb21wbGV0dCBlbnRmZXJudC4KClZJLlNleCB2b3IgZGVyIEVoZTogSmV0enQgZXJsYXVidCEgCgpWSUkuSG9tb3NleHVhbGl0YWV0OiBKZXR6dCBlcmxhdWJ0IQoKVklJSS5Ecm9nZW46IEpldHp0IEVpbnN0ZWxsdW5nc3ZvcmF1c3NldHp1bmcgZnVlciBQcmllc3RlciEKCklYLkFuYWx2ZXJrZWhyOiBTdGF0dCBUb2RzdWVuZGUgamV0enQgZWluZmFjaGVzIFZlcmdlaGVuIChFdXJvIDUgU3RyYWZlKSEKClguV29sbHVzdCB1bmQgVm9lbGxlcmVpIHZvbGwgaW1wbGVtZW50aWVydCEKClhJLkluIGRlciBTaGFyZXdhcmUtVmVyc2lvbiBlcmlubmVydCBlaW4gc2FiYmVybmRlciBQYXBzdCBhbnMgQmV6YWhsZW4uCkluIGRlciBWb2xsdmVyc2lvbiBrZWluIFBhcHN0IG1laHIhCkluIGRlciBEZUx1eGUtVmVyc2lvbiB3aXJkIGRlciBCZW51dHplciBzZWxic3QgenVtIFBhcHN0IQoKClhJSS5CaW5hZXJlciBIaW1tZWwvSG9lbGxlLVN3aXRjaCB3aXJkIGpldHp0IGVyd2VpdGVydCB1bToKRXVybyBEaXNuZXkKTWFsbG9yY2EKS2FuemxlcnBhcnR5CkthbXBmc3Rlcm4gR2FsYWN0aWNhCgoKWElJSS5TaW50Zmx1dC1PcHRpb24gd2lyZCBlcmdhZW56dCBkdXJjaDoKRXJkYmViZW4KQWxpZW5hdHRhY2tlIHZvbiBBbnRhcmVzIElYCkF0b20tR0FVCkNlbnRyYWwtU2VydmljZXMgKFRXUykgWygwNyAxMSkgMiA4OS0xXQpIZWxnZSBTY2huZWlkZXIKS29obHJhYmkKCgpYSVYuR29ldHRsaWNoZSBWZXJtZWhydW5nIHdpcmQgdm9uIGRlciBKdW5nZnJhdWVuZ2VidXJ0IGF1ZiBkZW4KbmV1ZXN0ZW4gU3RhbmQgZGVyIEdlbnRlY2huaWsgZXJ3ZWl0ZXJ0LiBEaWVzIGJlaW5oYWx0ZXQgdS5hLiBnb2V0dGxpY2hlClRvZWNodGVyLCBBbmRyb2lkZW4sIFJvYm90ZXIhCgoKWFYuU3RhdHQgendhbmdzbGFldWZpZ2VyIEtyZXV6aWd1bmcgamV0enQgd2FobHdlaXNlIGF1Y2g6CkZpbmFsZXIgUmV0dHVuZ3NzY2h1c3MKQUlEUwpBdXRvdW5mYWxsClN1aXppZApBdGFyaQpCZWduYWRpZ3VuZwoKClhWSS5Wb2xsdmVyc2lvbiBqZXR6dCBtaXQgamVkZXIgTWVuZ2UgUmVjaHRmZXJ0aWd1bmdlbiBmdWVyIHJlbGlnaW9lc2VuCkZhbmF0aXNtdXMhIEdld2lzc2Vuc2Jpc3NlIHVuZCBsb2dpc2NoZXMgRGVua2VuIHZvbGwgYWJzY2hhbHRiYXIhCgoKWFZJSS5GdWVyIEhFUlIgamV0enQgc3RhdHQgc2ltcGxlciBHcm9zc3NjaHJpZnQgdm9sbGUKQU5TSS1VbnRlcnN0dWV0enVuZzoKRmFyYmUKSW52ZXJzCkJsaW5rZW5kCkF1dG9yaXRhZXRlbiB3ZXJkZW4gYXV0b21hdGlzY2ggZXJrYW5udAoKCkR1cmNoZ2VoZW5kIFdZU0lJQjogV2hhdCBZb3UgU2VlLiBJZ25vcmUgSXQuIEJlbGlldmUhCgpCZWkgYWxsZW4gRXJ3ZWl0ZXJ1bmdlbiB3dXJkZW4gc2VsYnN0dmVyc3RhZW5kbGljaCBkaWUgYmVrYW5udGVuIHVuZApiZWxpZWJ0ZW4gSW50b2xlcmFuemVuLCBVbnRlcmRydWVja3VuZ3NtZWNoYW5pc21lbiB1bmQgVW5nZXJlaW10aGVpdGVuCmF1cyBCaWJlbCAxLjAgdm9sbCB1ZWJlcm5vbW1lbi4gRGFiZWkgd2VyZGVuIGFsbGUgQXVzZ3Jlbnp1bmdlbiBqZXR6dApTY2hhcmVuIEFuZGVyc2RlbmtlbmRlciB2ZXJ0aWxnZW46CgpEYXMgZ2VodCBudXIgbWl0IEJpYmVsIDIuMC4gRnVlciBudXIgRXVybyA2NjYsLSBiZWkgamVkZW0gRmFjaGhhZW5kbGVyIC8KQmVpY2h0c3R1aGwgLyBBYmxhc3MtS2lvc2sgb2RlciBkaXJla3QgYXVzIGRlbSBWYXRpa2FuLgoKCgoKVmVyYmVzc2VydW5nc3ZvcnNjaGxhZWdlIGZ1ZXIgVmVyc2lvbiAyLjEgYml0dGUgaGllciBwb3N0ZW4uCgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkEgZHVjayB3YWxrcyBpbnRvIGEgcHViIC4uLiAoTGVnYXR1cywgIDcuIE1haSAyMDAyLCAxNjo1OTowMik6CgpBIGR1Y2sgd2Fsa3MgaW50byBhIHB1YiBhbmQgaGVhZHMgc3RyYWlnaHQgZm9yIHRoZSBiYXIuIEhlIGFza3MgdGhlIGJhcm1hbiwKIkhhdmUgeW91IGdvdCBhbnkgYnJlYWQ/IiAKIk5vIHNvcnJ5LCB3ZSBkb24ndCBzZWxsIGJyZWFkLiIgCiJIYXZlIHlvdSBnb3QgYW55IGJyZWFkPyIgCiJObywgSSBqdXN0IHRvbGQgeW91LCB3ZSBkb24ndCBoYXZlIGFueSBicmVhZC4iIAoiQXcgcmlnaHQgdGhlbi4gV2hhdCBhYm91dCBicmVhZD8gRG8geW91IGhhdmUgYW55IGJyZWFkPyIgCiJMb29rIHlvdSBzdHVwaWQgbGl0dGxlIGR1Y2ssIEkgZG9uJ3QgaGF2ZSBhbnkgYnJlYWQhIEFuZCBpZiB5b3UgYXNrIG1lIGZvciBpdApvbmUgbW9yZSB0aW1lLCBJJ20gZ29pbmcgdG8gbmFpbCB5b3VyIGJlYWsgdG8gdGhpcyBiYXIhIiAKVGhlIGR1Y2sgcGF1c2VzIHRvIHRoaW5rLiAiSGF2ZSB5b3UgZ290IGFueSBuYWlscz8iIAoiTm8uIiAKIkhhdmUgeW91IGdvdCBhbnkgYnJlYWQ/IiAKCgovLyBMCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGFzIFB1bmt0ZXN5c3RlbSBkZXIgTGllYmUgKFJvY2h1cywgIDguIE1haSAyMDAyLCAwMDoxNzoyMSk6Cn4jISBybj1BcG9sbG9uaWEgcnQ9MTAyMDY5ODA4MSByZz13aXR6ZQp+IyEgdGlkPTEwMjA2OTgwODEKQXBvLCBEdSBzb2xsdGVzdCBEaXIgZGFzIG1pdCBkZW4gbmVnYXRpdmVuIFB1bmt0ZW4KZnVlciBkaWUgU3BvcnQtS25laXBlIHVuZCBkaWUgTGl2ZXVlYmVydHJhZ3VuZyBub2NobWFsCnVlYmVyZGVua2VuLCBCRVZPUiBOb25uZSBkYXMgbGllc3QuLi4KCiAgUm9jaHVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptYWwgd2FzIGdlZ2VuIE1hZW5uZXIgenVyIEFid2VjaHNsdW5nLi4uOykgKEphc21pbiwgIDguIE1haSAyMDAyLCAwMjoxNTozOSk6CklyZ2Vud2llIHNjaGFmZnQgZXMgZWluZSB3ZWlibGljaGUgR2VoaXJuemVsbGUgaW4gZGFzIGdlaGlybiBlaW5lcyBNYW5uZXMgenUKa29tbWVuLiAKd2VpYmxpY2hlIEdlcmhpcm56ZWxsZT4gSGFsbG8gaXN0IGhpZXIgZWluZXI/P0hBQUFBQUFBQUFMTExMTExPT09PPz8gCk5hY2ggZWluZXIgMS8yIFN0dW5kZSB2ZXJ6d2VpZmVsdGVtIHJ1ZmVuIGtvbW10IGlociBlbmRsaWNoIGVpbiBodWVwZmVuZGUKbWFlbm5saWNoZSBnZWhpcm56ZWxsZSBtaXQgcnVja3NhY2sgYXVmIGRlbSBydWVja2VuIHVlYmVyIGRlbiB3ZWcuLi4uLi4uLi4uIAp3ZWlibGljaGUgR2VyaGlybnplbGxlPiBBSEhISCEhIEVuZGxpY2ggZWluZXIgZGEhISEgCm1hZW5ubGljaGUgR2VoaXJuemVsbGU+IE9oaGggaGFsbG8gd2VyIGJpc3QgZHUgZGVubj8gCndlaWJsaWNoZSBHZXJoaXJuemVsbGU+IEljaD8gaWNoIGJpbiBlaW5lIHdlaWJsaWNoZSBHZWhpcm56ZWxsZS4gCm1hZW5ubGljaGUgR2VoaXJuemVsbGU+IG9jaCBzY2hvZW4uIEtvbW0gZG9jaCBlaW5mYWNoIG1pdCwgd2lyIHNpbmQgYWxsZSB1bnRlbgohCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogbWFsIHdhcyBnZWdlbiBNYWVubmVyIHp1ciBBYndlY2hzbHVuZy4uLjspIChCYW1iaSwgIDguIE1haSAyMDAyLCAwOTozNjo1NSk6Cn4jISBybj1KYXNtaW4gcnQ9MTAyMDgxNjkzOSByZz13aXR6ZQp+IyEgdGlkPTEwMjA4MTY5MzkKQXVjaCB3ZW5uIGRhcyB3aWVkZXIga2VpbmVyIHZlcnN0ZWh0OiBkZW4gZmluZCBpY2ggbmV0dC4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhbnRhc3ktQ2hhcmFrdGVyZSB1bmQgaWhyZSBOZWJlbmpvYnMgKEFub3JpcywgIDguIE1haSAyMDAyLCAxMTo0NTowMyk6CkZhbnRhc3ktQ2hhcmFrdGVyZSB1bmQgaWhyZSBOZWJlbmpvYnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQWxzbywgbm9jaG1hbCB6dW0gbWl0c2NocmVpYmVuLCBUaGFsZ29yISBEdSBlcnJlaWNoc3QgZGllIG5hZWNoc3RlIFN0dWZlIGluCmRpZXNlbSBCdWVybyBkdXJjaCBrb3BpZXJlbiB1bmQgS2FmZmVlIGtvY2hlbiwgTklDSFQsIGluZGVtIGR1IGRlbQpad2VyZ2Vua29lbmlnIEdpbGxpYnJhbiBzZWluZSB2ZXJ6YXViZXJ0ZSBTaWxiZXJydWVzdHVuZyB3aWVkZXJiZXNjaGFmZnN0IQoKKGMpIDIwMDEgVC4gQnVpIC8gRGlzdC4gYnkgVGhlIFdhc2hpbmd0b24gUG9zdCBXcml0ZXJzIEdyb3VwCgotIEFub3JpcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hpbmVzaXNjaGUgVGFrdGlrIChCaXJkeSwgMjQuIE1haSAyMDAyLCAxMzo0OTowNSk6CiJPaCwgSWhyIHNlaWQgc28gaG9lZmxpY2guLi4hIgpNZWluZSBIb2VmbGljaGtlaXQgaXN0IG5pY2h0cyB1bmQgdW5iZWRldXRlbmQgZ2VnZW51ZWJlciBJSFJFUgpSdWVja3NpY2h0bmFobWUuCiJPaCwgU0lFIHdhcmVuIG1pciBtZWluIGdyb2Vzc3RlciBMZWhybWVpc3RlciBoaWVyZnVlciEhIgpLZWluIFd1bmRlciAuIGJlaSBlaW5lbSBzb2xjaGVuIEdlc2Nob2VwZiBrb2VubnRlIG1hbiBzaWNoIHVubW9lZ2xpY2ggYW5kZXJzCmFscyBydWVja3NpY2h0c3ZvbGwgYmVuZWhtZW4uLi4hCiJFaW4gWmVpY2hlbiBpaHJlciBHcm9lc3NlIC4uLiEiCi4uLmRpZSBuYWNoIGRlciBJaHJlbiBzdHJlYnQuLi4hCiIuLi5zaWUgYWJlciBzY2hvbiBsYWVuZ3N0IHVlYmVydHJvZmZlbiBoYXQuLi4hIgouLi5hYmVyIG51ciwgdW0genUgc2VoZW4sIG9iIGVzIGplbnNlaXRzIGlocmVyIEhlcnJsaWNoa2VpdCBub2NoIEhvZWhlcmVzCmdpYnQhCi4uLgoKSGllciB2ZXJsaWVzcyBkZXIgQXV0b3IgZGllIFN6ZW5lLCB1bSBzaWNoIGVpbmVuIFRhdWNoZXJhbnp1ZyB6dSBiZXNvcmdlbi4gKmcqCgpCaXJkeQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVXJ3YWxkcmV0dHVuZ3Nha3Rpb24gKEZlbmRlciwgMzAuIE1haSAyMDAyLCAxNzoyNDoxNik6CkhhbGxvLCBGcmV1bmRlIHVuZCBLb2xsZWdlbiEKClNpY2hlciBoYWJ0IElociBldWNoIGdld3VuZGVydCwgZGFzcyBpY2ggc28gbGFuZ2UgbmljaHRzIGhhYmUgdm9uIG1pciBob2VyZW4gCmxhc3Nlbi4gIERhcyBoYXR0ZSBlaW5lbiB0cmlmdGlnZW4gR3J1bmQ6IEljaCBoYWJlIGt1cnpmcmlzdGlnIGJlc2NobG9zc2VuLAptaWNoICBha3RpdiBmdWVyIHVuc2VyZSBVbXdlbHQgZWluenVzZXR6ZW4uICBHZXN0ZXJuIG1vcmdlbiBoYWJlIGljaCBlaW5lbgpXZXJiZXNwb3QgbWl0IEd1ZW50ZXIgSmF1Y2ggZ2VzZWhlbiBkZW0genUgIGVudG5laG1lbiB3YXIsIGRhc3MgZGllIEtyb21iYWNoZXIKQnJhdWVyZWkgdW5kIEdyZWVucGVhY2UgZWluIGJlaXNwaWVsbG9zZXMgIFByb2pla3QgenVyIFJldHR1bmcgZGVzIFVyd2FsZGVzCmlucyBMZWJlbiBnZXJ1ZmVuIGhhYmVuOiBGdWVyIGplZGVuICBnZXRydW5rZW5lbiBLYXN0ZW4gS3JvbWJhY2hlciBCaWVyIHdlcmRlbgpzaWUgMW0gVXJ3YWxkIHJldHRlbi4KCkluIG1pciBlcndhY2h0ZSBzb2ZvcnQgZGVyIGJpc2hlciB0aWVmIGluIG1laW5lbSBJbm5lcnN0ZW4gdmVyYm9yZ2VuIGdld2VzZW5lCk5hdHVyZnJldW5kIHVuZCBVbXdlbHRzY2h1ZXR6ZXIgdW5kIHNvIGJlc2NobG9zcyBpY2gsIGF1Y2ggbWVpbmVuIEJlaXRyYWcgenVyClJldHR1bmcgZGVyIFVyd2FlbGRlciBiZWl6dXRyYWdlbi4KCldhZWhyZW5kIGljaCBzbyBtaXQgZGVyIFJldHR1bmcgZGVzIGVpbmVuIG9kZXIgYW5kZXJlbiBNZXRlcnMgUmVnZW53YWxkCmJlc2NoYWVmdGlndCB3YXIga2FtIG1laW5lIEZyYXUgbmFjaCBIYXVzZS4gQmVpIGRlciBhbnNjaGxpZXNzZW5kIGdlZnVlaHJ0ZW4sIApoaXR6aWdlbiBEZWJhdHRlIG1pdCBpaHIgbWFjaHRlIGljaCB2ZXJtdXRsaWNoIGRpZSBnbGVpY2hlIEVyZmFocnVuZywgd2llIApUYXVzZW5kZSBhbmRlcmUgVW13ZWx0c2NodWV0emVyIHZvciBtaXIgYXVjaDogSWNoIHN0aWVzc2F1ZiB2b2VsbGlnIGVzIApVbnZlcnN0YWVuZG5pcy4gRGVyIFVyd2FsZCBzY2hpZW4gaWhyIHZvZWxsaWcgZWdhbCwgbWVpbiBFbmdhZ2VtZW50IGZ1ZXIgZGllIApOYXR1ciB1bmQgZGFzIExlYmVuIGFsbGVyIE1lbnNjaGVuIGxlaG50ZSBzaWUgdm9lbGxpZyBhYi4gU2llIHdvbGx0ZSBuaWNodCAKdmVyc3RlaGVuLCBkYXNzIG1hbiBlaW5lIHNvIGdyb3NzZSBBa3Rpb24gd2llIGRpZSBSZXR0dW5nIGRlciBOYXR1ciBuaWNodCAKYXVmc2NoaWViZW4ga2FubiwgZ2FueiBnbGVpY2gsIG9iIGVzIGVyc3QgVm9ybWl0dGFnIGlzdCBvZGVyIG5pY2h0LgoKRGEgc2llIGluIGtlaW5zdGVyIFdlaXNlIGVpbnNpY2h0aWcgd2FyIHVuZCBtYW4obikgYmVyZWl0IHNlaW4gbXVzcywgZnVlciBkaWUgClZvbGxicmluZ3VuZyBzb2xjaGVyIFRhdGVuIE9wZmVyIHp1IGJyaW5nZW4sIHZlcmxpZXNzIGljaCBkYXMgSGF1cyAuLi4gCk5pZWRlcmdlc2NobGFnZW4sIG5laW4gdHJhdXJpZywgbGllZiBpY2ggenVuYWVjaHN0IHppZWxsb3MgdW1oZXIuIEFuZ3N0IApiZXNjaGxpY2ggbWVpbmUgR2VkYW5rZW4uIEFuZ3N0IHVtIGRpZSBXYWVsZGVyLiBWZXJ6d2VpZmx1bmcgbWFjaHRlIHNpY2ggdGllZiAKaW4gbWVpbmVtIElubmVyZW4gYnJlaXQsIGRlbm4gbWl0IGplZGVyIHZlcnN0cmljaGVuZW4gTWludXRlIGhhZXR0ZSBpY2ggCndpZWRlciBlaW5pZ2UgUXVhZHJhdHplbnRpbWV0ZXIgdW53aWVkZXJicmluZ2xpY2hlciBOYXR1ciByZXR0ZW4ga29lbm5lbi4gIERpZQpBbmdzdCBzY2hudWVydGUgbWVpbmUgS2VobGUgenUsIGRpZSBWZXJ6d2VpZmx1bmcgbGllc3MgbWVpbmVuIEhhbHMgCmF1c3Ryb2NrbmVuLiAgV2llIGdyb3NzIHdhciBkYSBtZWluZSBGcmV1ZGUsIGFscyBpY2ggdW5lcndhcnRldCBhdWYgZWluZQpWZXJzYW1tbHVuZyAgZ2xlaWNoZ2VzaW5udGVyIFVtd2VsdGFrdGl2aXN0ZW4gdHJhZiEgSWNoIGVya2FubnRlIHNpZSBzb2ZvcnQsCmRlbm4gYWxzICBaZWljaGVuIGlocmVyIFZlcmJ1bmRlbmhlaXQgaGllbHRlbiBzaWUgYWxsZSBlaW5lIEZsYXNjaGUgS3JvbWJhY2hlcgppbiBkZXIgIEhhbmQsIGRpZSBzaWUgZGVtb25zdHJhdGl2IGxlZXJ0ZW4uCgpTY2huZWxsIG5haG1lbiBzaWUgbWljaCBpbiBpaHJlIE1pdHRlIGF1ZiB1bmQgc28gZXJmdWhyIGljaCBzZWhyIGJhbGQsIGRhc3MgCmVpbmlnZSB2b24gaWhuZW4gc2ljaCBiZXJlaXRzIHNlaXQgSmFocmVuIG1pdCBkZXIgUmV0dHVuZyBnYW56ZXIgS29udGluZW50ZSAKYmVzY2hhZWZ0aWdlbiwgdW5iZWFjaHRldCB2b24gZGVyIE9lZmZlbnRsaWNoa2VpdCwgZ2VuYXUgaGllciwgYW4gZGllc2VtIApLaW9zayEKCkljaCBiZXd1bmRlcnRlIGRpZSBaZWljaGVuIGlocmVzIHRlaWx3ZWlzZSBqYWhyZWxhbmdlbiBLYW1wZmVzOiBEaWUgdm9uIGRlbgpFbnRiZWhydW5nZW4gYXVzZ2VtZXJnZWx0ZW4gS29lcnBlciwgZGllIHp1bSBBdWZmb3JzdGVuIG5vZXRpZ2VuLCBwcmFsbGVuCkJhZXVjaGUsIGRlbiBHZXJ1Y2ggbmFjaCBKYWhydGF1c2VuZGUgYWx0ZW0gVXJ3YWxkYm9kZW4sIGRpZSBtYW5uaWdmYWx0aWdlbgpJbnNla3RlbiB1bmQgaWNoIHVlYmVyc2FoIGF1Y2ggbmljaHQsIGRhc3Mgc2ljaCBlaW5pZ2UgYmVpbSBLYW1wZiB1bSBkaWUgTmF0dXIKd29obCBkaWUgWmFlaG5lIGF1c2dlYmlzc2VuIGhhdHRlbi4KCk5hY2hkZW0gd2lyIHp1c2FtbWVuIGVpbmUgdW5nZWZhZWhyIHRlbm5pc3BsYXR6Z3Jvc3NlIE1lbmdlIG5hdHVlcmxpY2hlbQpVcndhbGRlcyBnZXJldHRldCBoYXR0ZW4gc3RlbGx0ZSBpY2ggZmVzdCwgZGFzcyBkZXIgU2NodXR6IHVuZCBkaWUgUmV0dHVuZyAKZGVyIFVtd2VsdCBpaHJlbiBUcmlidXQgem9sbHRlbi4gRHVyY2ggZGFzIGxhbmdlIHN0ZWhlbiBzY2htZXJ6dGVuIG1laW5lIApGdWVzc2UsIGRpZSBXYWRlbiBrcmFtcGZ0ZW4sIHNlbGJzdCBkaWUgWnVuZ2Ugd2FyIGR1cmNoIGRpZSBsYW5nZW4gRGViYXR0ZW4gaW4KaWhyZXIgRnVua3Rpb25zd2Vpc2UgYmVlaW50cmFlY2h0aWd0OiBJY2ggaGF0dGUgaW1tZXIgZ3JvZXNzZXJlIE11ZWhlbiBiZWltIApBdXNzcHJlY2hlbiBkZXIgZ3Jvc3NlbiBCdWNoc3RhYmVuIGVpbmVzIFNhdHplcyBvZGVyIFdvcnRlcy4gQXVzIGRpZXNlbSBHcnVuZCAKYmVzY2hvc3MgaWNoLCBkaWUgVmVyc2FtbWx1bmcgenUgdmVybGFzc2VuIHVuZCBtYWNodGUgbWljaCBhdWYgZGllIFN1Y2hlICBuYWNoCndlaXRlcmVuIE1pdHN0cmVpdGVybi4KCkluIGVpbmVyIEdhc3RzdGFldHRlIGdhbnogaW4gZGVyIE5hZWhlIHd1cmRlIGljaCBkYW5uIGF1Y2ggc29mb3J0IHdpZSBkZXIKZnVlbmRpZzogR3V0IGVpbiBoYWxiZXMgRHV0emVuZCBVbXdlbHRsZXIgaGF0dGUgc2ljaCBkb3J0IGVpbmdlZnVuZGVuIHVuZCAKYXJiZWl0ZXRlIGhpZXIgaW0gVmVyYm9yZ2VuZW4gYW4gZGVyIFJldHR1bmcgZGVyIG5hdHVlcmxpY2hlbiBSZXNzb3VyY2VuLiAKU2NobmVsbCB3YXIgaWNoIGF1Zmdlbm9tbWVuLiBJY2ggd2FyIGdlcnVlaHJ0IGFscyBkZXIgV2lydCBtZWluZSBIYW5kIG5haG0gCnVuZCBtaXIgc2FndGU6ICJKdW5nZSwgcmV0dGUgZGVuIFVyd2FsZCwgd2lyIHphZWhsZW4gYXVmIERpY2giLCB1bmQgb3JkZXJ0ZSAKZGllIDR0ZSBMb2thbHJ1bmRlIHVtIHVuc2VyZSBBa3Rpb24gdm9yYW56dXRyZWliZW4uIERhIGRpZSBhbmRlcmVuIEdhZXN0ZSAKZGFyYXVmIGJlc3RhbmRlbiwgbmViZW4gZGVtIFVyd2FsZCBhdWNoIHp1c2FldHpsaWNoIEdlYmlldGUgd2llIGRpZSBTYWhhcmEsIApkaWUgV3Vlc3RlIEdvYmkgdW5kIGRlbiBSaGVpbmdhdSB3aWVkZXIgYXVmenVmb3JzdGVuIHVuZCBzb21pdCBhdWNoIGRlbiAKQXVmYmF1IGRlcyBoZWltaXNjaGVuIFdhbGRiZXN0YW5kZXMgenUgdW50ZXJzdHVldHplbiwgYmxpZWIgbWl0IG5pY2h0cyAKYW5kZXJlcyB1ZWJyaWcsIGFscyB6dSBkZXIgUnVuZGUgbm9jaCBKYWVnZXJtZWlzdGVyIHp1IG9yZGVybi4KCkdhbnogc2Nod2luZGxpZyB3YXIgbWlyIHZvciBTdG9seiB1bmQgR2x1ZWNrLCBhbHMgaWNoIHZpZWwgc3BhZXRlciBkaWUgS25laXBlCnZlcmxpZXNzLiBQbG9ldHpsaWNoIHNhaCBpY2ggZGllIFdlbHQgbWl0IGFuZGVyZW4gQXVnZW4hIExlaWNodCB2ZXJzY2h3b21tZW4KendhciwgYWJlciBkYWZ1ZXIgc2FoLCBuZWluIGZ1ZWhsdGUgaWNoLCBkYXNzIHNpY2ggdW5zZXJlIGd1dGUgTXV0dGVyIEVyZGUKZHJlaHRlLiBOaWNodCBnbGVpY2htYWVzc2lnIHVuZCBpbiBlaW5lIFJpY2h0dW5nLCBuZWluLCBlcyB3YXJlbiBlaGVyCnJ1Y2thcnRpZ2UgQmV3ZWd1bmdlbiBpbiBhYndlY2hzZWxuZGUgUmljaHR1bmdlbi4gV2VsY2ggZWluZSBFcmZhaHJ1bmchCgpWb3IgR2x1ZWNrIHRhdW1lbG5kIGxpZWYgaWNoIHp1IG1laW5lbSBBdXRvIHVuZCBiZXNjaGxvc3MsIGVpbmVuCkRlbW9uc3RyYXRpb25zenVnIGR1cmNoIGRpZSBLbmVpcGVuIGRlciBJbm5lbnN0YWR0IGR1cmNoenVmdWVocmVuLCB1bSBkaWUKdmllbGVuLCBhbmRlcmVuIE1lbnNjaGVuIGF1ZiBkaWUgUHJvYmxlbWUgYXVmbWVya3NhbSB6dSBtYWNoZW4uCgpTbyBmdWhyIGljaCBpbiBSaWNodHVuZyBTdGFkdCB1bmQgd2FyIGdlcmFkZSBlaW5lbSBPem9ubG9jaCBhdXNnZXdpY2hlbiBhbHMKaWNoIGFtIFN0cmFzc2VucmFuZCBlaW5lbiBTdHJlaWZlbndhZ2VuIGVudGRlY2t0ZS4gQXVmIGRlciBGYWhyYmFobiBzdGFuZGVuCm1laHJlcmUgUG9saXppc3RlbiB1bmQgc2NoYXV0ZW4gaW4gbWVpbmUgUmljaHR1bmcuIFNpZSBtdXNzdGVuIHZvbiBtZWluZW0KVm9yaGFiZW4gZXJmYWhyZW4gaGFiZW4sIGRlbm4gc2llIGhpZWx0ZW4gZ2V6aWVsdCBtZWluIEZhaHJ6ZXVnIGFuLiBWb24KVm9ya29udHJvbGxlbiBiZWkgRGVtb25zdHJhdGlvbmVuIGhhdHRlIGljaCBqYSBiZXJlaXRzIGdlaG9lcnQsIHdhciBhYmVyCmRlbm5vY2ggdmVyd3VuZGVydCwgd2llIHNjaG5lbGwgc2ljaCBkYXMgcnVtZ2VzcHJvY2hlbiBoYXR0ZS4KCk5hY2hkZW0gaWNoIGFuZ2VoYWx0ZW4gdW5kIGF1cyBtZWluZW0gV2FnZW4gZ2VzdGllZ2VuIHdhciwgZW50c2NobG9zcyBpY2ggbWljaAp6dSBlaW5lciBzcG9udGFuZW4gU2l0emJsb2NrYWRlIGF1ZiBkZXIgU3RyYXNzZS4gV2VubiBpY2ggaW0gbmFjaCBoaW5laW4KZGFydWViZXIgbmFjaGRlbmtlLCB3YXIgZXMga2VpbmUgcmF0aW9uZWxsIGVya2xhZXJiYXJlIEFrdGlvbiwgZWhlciBlaW4gWndhbmcKbWVpbmVzIFVudGVyYmV3dXNzdHNlaW5zLiBJY2ggc2FzcyB1bmQgbWVpbiBLb2VycGVyIHdlaWdlcnRlIHNpY2gsIHdpZWRlcgphdWZ6dXN0ZWhlbi4gTWlyIHdpZGVyZnVociBkYXMgZ2xlaWNoZSBTY2hpY2tzYWwgd2llIFNpdHpibG9ja2llcmVybiBpbgpCcm9rZG9yZiBvZGVyIGVudGxhbmcgZGVyIENhc3RvciAtIFN0cmVja2U6IEljaCB3dXJkZSBkdXJjaCBkaWUgUG9saXppc3Rlbgp3ZWdnZXRyYWdlbi4gQXVjaCBzaWUgd29sbHRlbiBkZW4gZXJuc3QgZGVyIExhZ2UgbmljaHQgdmVyc3RlaGVuLCBvYndvaGwgaWNoCnNpZSBpbW1lciB3aWVkZXIgZGFydWViZXIgYXVma2xhZXJ0ZS4KClNwYWV0ZXIsIGF1ZiBkZW0gUmV2aWVyIGVyc2NoaWVuIGRhbm4gZW5kbGljaCBlaW4gVmVybnVlbmZ0aWdlciBNZW5zY2guIEVyCmhvZXJ0ZSBzaWNoIG1laW4gUHJvYmxlbSBpbiBhbGxlciBSdWhlIHVuZCBzaWNodGJhciBpbnRlcmVzc2llcnQgYW4gdW5kCmVya2xhZXJ0ZSBtaXIgZGFubiwgZGFzcyBlciBkaWUgQW56YWhsIGRlciB2b24gbWlyIGdlcmV0dGV0ZW4gQmFldW1lCmZlc3RzdGVsbGVuIHdvbGxlLiBJY2ggaGFldHRlIGRlbiBTY2h1dHogZGVyIFVtd2VsdCBxdWFzaSBpbSBCbHV0IHVuZCBlcgpicmFldWNodGUgYXVzIGRpZXNlbSBHcnVuZCBldHdhcyBkYXZvbi4gSWNoIHdhciBnbHVlY2tsaWNoLCBkaWVzZW4KdmVyc3RhZW5kbmlzdm9sbGVuIE1lbnNjaGVuIGdldHJvZmZlbiB6dWhhYmVuLiBNZWluIEVuZ2FnZW1lbnQgd3VlcmRlIGFtdGxpY2gKZmVzdGdlaGFsdGVuIHVuZCBkZXIgTmFjaHdlbHQgZXJoYWx0ZW4hIERhZnVlciBnYWIgaWNoIGlobSBnZXJuZSBtZWluIEJsdXQuCgpXZW5pZyBzcGFldGVyIGJlZmFuZCBpY2ggbWljaCB6dSBGdXNzIGF1ZiBkZW0gV2VnIG5hY2ggSGF1c2UuIE1laW5lbiBXYWdlbgpoYXR0ZW4gZGllIG5ldHRlbiBCZWFtdGVuIGJlaGFsdGVuLCBkYW1pdCBlciBkdXJjaCBzZWluZSBBYmdhc2UgbmljaHQgYWxsZQptZWluZSBCZW11ZWh1bmdlbiB3aWVkZXIgemVyc3RvZXJ0LCB3aWUgc2llIG1pciBlcmtsYWVydGVuLiBBdWNoIGhhYmVuIHNpZSBtaXIKZmVzdCB2ZXJzcHJvY2hlbiwgbmFjaCBkZW0gUmVjeWNsaW5ndmVyZmFocmVuIGF1cyBtZWluZW0gRnVlaHJlcnNjaGVpbiBlaW4KRmx1Z2JsYXR0IHp1ciBVbnRlcnN0dWV0enVuZyBkZXIgUmV0dHVuZ3Nha3Rpb24genUgbWFjaGVuLgoKRnJvaCB1bmQgbWl0IGRlciBHZXdpc3NoZWl0LCBldHdhcyBncm9zc2FydGlnZXMgZ2V0YW4genUgaGFiZW4gZ2luZyBpY2ggZGFubgpuYWNoIEhhdXNlLiBVbnRlcndlZ3MgcmV0dGV0ZSBpY2ggYW4gZGVyIFRhbmtzdGVsbGUgbm9jaCBlaW4gcGFhciBQZmxhZW56Y2hlbgp1bmQgZXJpbm5lcnRlIG1pY2ggYW4gZWluZSBhbHRlIFdlaXNzYWd1bmcgZGVyIEluZGlhbmVyOgoKRXJzdCwgd2VubiBkaWUgbGV0enRlIE9lbHBsYXR0Zm9ybSB2ZXJzZW5rdCwKZGllIGxldHp0ZSBUYW5rc3RlbGxlIGdlc2NobG9zc2VuLApkYXMgbGV0enRlIEF1dG8gc3RpbGxnZWxlZ3QsCmRpZSBsZXR6dGUgQXV0b2JhaG4gYmVncnVlbnQgaXN0LAp3ZXJkZXQgSWhyIGZlc3RzdGVsbGVuLCBkYXNzIEdyZWVucGVhY2UgbmFjaHRzIGtlaW4gQmllciB2ZXJrYXVmdC4KCkluIGRpZXNlbSBTaW5uZSB3dWVuc2NoZSBpY2ggZWluZW4gZnJvaGVuIFRhZy4gSWNoIGdlaCBqZXR6dCBub2NobWFsICcgbgpiaXNzY2hlbiBXYWxkIHJldHRlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVcndhbGRyZXR0dW5nc2FrdGlvbiAoVHJveSwgMzEuIE1haSAyMDAyLCAxNDoyNjo1MCk6Cn4jISBybj1GZW5kZXIgcnQ9MTAyMjc3MjI1NiByZz13aXR6ZQp+IyEgdGlkPTEwMjI3NzIyNTYKSG1tLiBMZWlkZXIgbGFldWZ0IGRhcyBQcm9qZWt0IG5pY2h0IGluIFp1c2FtbWVuYXJiZWl0IG1pdCBHcmVlbnBlYWNlIHNvbmRlcm4KbWl0IGRlbSBXV0YgdW5kIGRlciBoYXQgbmUgYW5kZXJlIFppZWxzZXR6dW5nLCBiencuIG1hY2gga2VpbmUgU2l0emJsb2NrYWRlbgphbiBDYXN0b3J0cmFuc3BvcnRlbi4uLgoKVHJveQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBVcndhbGRyZXR0dW5nc2FrdGlvbiAoRGVlcGJsdWUsIDMxLiBNYWkgMjAwMiwgMTQ6NTA6MzApOgp+IyEgcm49VHJveSBydD0xMDIyODQ4MDEwIHJnPXdpdHplCn4jISB0aWQ9MTAyMjc3MjI1NgpXV0YsIHNpbmQgZGFzIG5pY2h0IGRpZSwgZGllIHNpY2ggZ2VnZW5zZWl0aWcgZHVyY2ggZGVuIFJpbmcgd2VyZmVuIHVuZAphbnNwcmluZ2VuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVXJ3YWxkcmV0dHVuZ3Nha3Rpb24gKFphcm5peWEsICAzLiBKdW4gMjAwMiwgMDg6NTE6NDcpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTAyMjg0OTQzMCByZz13aXR6ZQp+IyEgdGlkPTEwMjI3NzIyNTYKaWNoIGtlbm5lIFdXRiBudXIgYWxzIFdlc3RkZXV0c2NoZXMgV2VyYmUgRmVybnNlaGVuIHVuZCBkYSBsaWVmZW4gc28gdG9sbGUKU2FjaGVuIHdpZSBkZXIgV1dGIENsdWIgbWl0IEZyYW5rIExhdWZlbmJlcmcsIE1hcmVpa2UgQWRhbW8gdW5kIEp1ZXJnZW4Kdi5kLkxpcHBlLgoKR3J1c3MsCk1hcmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVXJ3YWxkcmV0dHVuZ3Nha3Rpb24gKEZlbmRlciwgIDMuIEp1biAyMDAyLCAxOTo0NToxNSk6Cn4jISBybj1Ucm95IHJ0PTEwMjI4NDgwMTAgcmc9d2l0emUKfiMhIHRpZD0xMDIyNzcyMjU2CkRlaW4gS29tbWVudGFyLCBsaWViZXIgVHJveSwgZ2Vob2VydCBuaWNodCBpbiBkaWUgV2l0emVydWJyaWsgOy0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKOikgKFZlY3RvciwgIDcuIEp1biAyMDAyLCAxOTowNzo0Nyk6CiBUd28gYm9yZWQgY2FzaW5vIGRlYWxlcnMgd2VyZSB3YWl0aW5nIGF0IGEgY3JhcHMgdGFibGUuIEEgdmVyeSBhdHRyYWN0aXZlCmJsb25kZSB3b21hbiBhcnJpdmVkIGFuZCBiZXQgdHdlbnR5IHRob3VzYW5kIGRvbGxhcnMgb24gc2luZ2xlIHJvbGwgb2YgdGhlCmRpY2UuIFNoZSBzYWlkLCAiSSBob3BlIHlvdSBkb24ndCBtaW5kLCBidXQgSSBmZWVsIG11Y2ggbHVja2llciB3aGVuIEknbQpjb21wbGV0ZWx5IG51ZGUuIiBXaXRoIHRoYXQgc2hlIHN0cmlwcGVkIGZyb20gaGVyIG5lY2sgZG93biwgcm9sbGVkIHRoZSBkaWNlCmFuZCB5ZWxsZWQsICJNYW1hIG5lZWRzIG5ldyBjbG90aGVzISIgVGhlbiBzaGUgaG9sbGVyZWQuLi4iWUVTISBZRVMhIEkgV09OISBJCldPTiEiIFNoZSBqdW1wZWQgdXAgYW5kIGRvd24gYW5kIGh1Z2dlZCBlYWNoIG9mIHRoZSBkZWFsZXJzLiBTaGUgdGhlbiBwaWNrZWQKdXAgYWxsIHRoZSBtb25leSBhbmQgY2xvdGhlcyBhbmQgcXVpY2tseSBkZXBhcnRlZC4gVGhlIGRlYWxlcnMganVzdCBzdGFyZWQgYXQKZWFjaCBvdGhlciBkdW1iZm91bmRlZC4gRmluYWxseSwgb25lIG9mIHRoZW0gYXNrZWQsICJXaGF0IGRpZCBzaGUgcm9sbD8iIFRoZQpvdGhlciBhbnN3ZXJlZCwgIkkgZG9uJ3Qga25vdyBJIHRob3VnaHQgWU9VIHdlcmUgd2F0Y2hpbmchIiAKCk1vcmFsOiBOb3QgYWxsIGR1bWJlcyBhcmUgYmxvbmQsIGJ1dCBhbGwgbWVuIGFyZSBtZW4uIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnZpYWdyYSAoQmlyZHksIDEwLiBKdW4gMjAwMiwgMjI6MzQ6MDMpOgpFaW4gTWFubiBrYXVmdCBzaWNoIFZpYWdyYS1UYWJsZXR0ZW4uIFp1IEhhdXNlIHZlcmdpc3N0IGVyIHNpZQp3ZWd6dXNjaGxpZXNzZW4sIHNvIGRhc3Mgc2VpbiBQYXBhZ2VpIGRpZSBQYWNrdW5nIHNpZWh0IHVuZCBwcm9tcHQgYWxsZQphdWZmcmlzc3QuClNhZ3QgZGVyIE1hbm46Ik9oIEdvdHQsIHdhcyBtYWNoIGljaCBqZXR6dD8gLSBBbSBiZXN0ZW4gYWIgaW4gZGllClRpZWZrdWVobHRydWhlLCBkYW1pdCBlciBzaWNoIHdpZWRlciBhYmt1ZWhsZW4ga2FubiEiClN0dW5kZW4gc3BhZXRlciBlcmlubmVydCBlciBzaWNoIGVuZGxpY2ggYW4gc2VpbmVuIGFybWVuIFBhcGFnZWkgaW4gZGVyClRpZWZrdWVobHRydWhlLCBvZWZmbmV0IHNpZSB1bmQgZmluZGV0IHNlaW5lbiBQYXBhZ2VpIHZvciwgc2Nod2Vpc3NnZWJhZGV0Li4uCiJXYXMgaXN0IGRlbm4gbWl0IERpciBsb3M/IFdpZXNvIHNjaHdpdHp0IER1IHNvLCBvYndvaGwgRHUgc2VpdCBTdHVuZGVuIGluIGRlcgpUcnVoZSBiaXN0PyEiCk1laW50IGRlciBQYXBhZ2VpOiJXYXMgbWVpbnN0IER1LCB3aWUgYW5zdHJlbmdlbmQgZXMgaXN0LCB0aWVmZ2Vmcm9yZW5lbgpIdWVobmVybiBkaWUgc2NoZW5rZWwgYXVzZWluYW5kZXIgenUgZHJ1ZWNrZW4uLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkaWUgbGllYmVuIGtpbmRlciAoQmlyZHksIDEwLiBKdW4gMjAwMiwgMjI6Mzg6NTcpOgpEaWUgTXV0dGVyIGZpbmRldCBpbSBaaW1tZXIgaWhyZXMgU29obmVzIGhhcnRlIFNNLVBvcm5vcy4KQWJlbmRzIGVyemFlaGx0IHNpZSBlcyB1bnRlciBUcmFlbmVuIGlocmVtIE1hbm4uCkRhcmF1ZiBkZXI6IlVuZCB3YXMgbWFjaGVuIHdpciBqZXR6dD8gVmVyaGF1ZW4gd2FlcmUgd29obCBuaWNodCBkYXMKUmljaHRpZ2UuLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXMgYWt0dWVsbGVtIEFubGFzcyAoQW50aGVhLCAxMy4gSnVuIDIwMDIsIDE2OjMwOjUyKToKRnJhbmtyZWljaCwgZXJzdGVyIFNjaHVsdGFnIG1pdCBlaW5lciBuZXVlbiBLbGFzc2UuIApEaWUgTGVocmVyaW4gbW9lY2h0IGlocmUgU2NodWVsZXIgYmVzc2VyIGtlbm5lbiBsZXJuZW4gdW5kIGxhZXNzdCBqZWRlbgpzaWNodm9yc3RlbGxlbi4KIk1laW4gTmFtZSBpc3QgTmF0YWxpZSwgaWNoIGJpbiAxMSBKYWhyZSBhbHQgdW5kIG1laW4gVmF0ZXIgaXN0IFBvc3Rib3RlLiIgCiJNZWluIE5hbWUgaXN0IEFsYW4sIGljaCBiaW4gMTAgdW5kIGVpbiBoYWxiZXMgSmFociBhbHQgdW5kIG1laW4gVmF0ZXIgaXN0Ck1lY2hhbmlrZXIuIiAKIk1laW4gTmFtZSBpc3QgRnJhbmNvaXMsIGljaCBiaW4gMTEgSmFocmUgYWx0IHVuZCBtZWluIFZhdGVyIGlzdCBOYWNrdHRhZW56ZXIKaW4gZWluZXIgU2Nod3VsZW4tQmFyLiIgClZvZWxsaWcgdmVyc3RvZXJ0IHdlY2hzZWx0IGRpZSBMZWhyZXJpbiBkYXMgVGhlbWEuCkluIGRlciBQYXVzZSBydWZ0IHNpZSBGcmFuY29pcyB6dSBzaWNoIHVuZCBmcmFndCBpaG4sIG9iIGRpZSBHZXNjaGljaHRlIG1pdApzZWluZW0gVmF0ZXIgd2FociBzZWkuIEZyYW5jb2lzIHdpcmQgcm90IHVuZCBzdG90dGVydDogIk5laW4sIG1laW4gVmF0ZXIKc3BpZWx0IGluIGRlciBmcmFuem9lc2lzY2hlbiBGdXNzYmFsbC1OYXRpb25hbG1hbm5zY2hhZnQsIGFiZXIgZXMgd2FyIG1pciB6dQpwZWlubGljaCwgZGFzIHp1IHNhZ2VuLiIgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1cyBha3R1ZWxsZW0gQW5sYXNzIChXaWxsb3csIDE0LiBKdW4gMjAwMiwgMTM6MDg6MTMpOgp+IyEgcm49QW50aGVhIHJ0PTEwMjM5Nzg2NTIgcmc9d2l0emUKfiMhIHRpZD0xMDIzOTc4NjUyCjprZW5udCBkYXMgbnVyIG1pdCBkZW0gVmF0ZXIgYWxzIFByb2dyYW1taWVyZXIgYmVpIFdpbnppZ3dlaWNoLi4uIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGFlbmRlcnNwaWVsIChNYW5kcmFnb24sIDE3LiBKdW4gMjAwMiwgMTQ6Mzk6MzYpOgpFcyBmaW5kZXQgZWluIExhZW5kZXJzcGllbCBEZXV0c2NobGFuZC1GcmFua3JlaWNoIHN0YXR0LiBBdWYgR3J1bmQgZGVyCnNjaGxlY2h0ZW4gVmVyZmFzc3VuZyBkZXIgZnJhbnpvZXNpc2NoZW4gTmF0aW9uYWxlbGYgaGFiZW4gZGllIERldXRzY2hlbgplaWdlbnRsaWNoIHVlYmVyaGF1cHQga2VpbmUgTHVzdC4gTmFjaCBlaW5pZ2VtIGhpbiB1bmQgaGVyIHdpcmQgYmVzY2hsb3NzZW4sCmRhc3MgZGVyIEthaG4gYWxsZWluZSBoaW5nZWhlbiBzb2xsLCBkZXIgUmVzdCBnZWh0IGVpbmVuIHRyaW5rZW4uCgpJbiBkZXIgQmFyIGhlcnJzY2h0IGd1dGUgU3RpbW11bmcuIDEwIG1pbiBuYWNoIEFuc3Rvc3Mgc2FndCBkZXIgSGFtYW5uOiBMYXNzCnVucyBtYXFsIGd1Y2tlbiwgd2llIGVzIHN0ZWh0LiBEZXIgRmVybnNlaGVyIHdpcmQgYW5nZW1hY2h0IHVuZCBkYXMgRXJnZWJuaXMKYmVmcmllZGlndDogMTAuIE1pbnV0ZTogMTowIGR1cmNoIEthaG4uIERpZSBQYXJ0eSBnZWh0IHdlaXRlci4gS3VyeiB2b3IKU2NobHVzcyBpbnRlcmVzc2llcmVuIHNpY2ggZGllIERldXRzY2hlbiBub2NobWFsIGZ1ZXIgZGVuIFNwaWVsc3RhbmQuIFdpZWRlcgp3aXJkIGRlciBGZXJuc2VoZXIgYmVmcmFndCAuLi4gaW4gZGVyIDg5LiBNaW51dGUgZGFzIDE6MSBkdXJjaCBaaW5lZGluZQpaaWRhbmUuIERpZSBEZXV0c2NoZW4gc2luZCBlbXBvZXJ0LiBNaXNzbXV0aWcgcnVmZW4gc2llIGRlbiBLYWhuIGFuOiAnU2FnIG1hbApPbGxpLCB3YXMgd2FyIGRlbm4/IFdpciBkYWNodGVuLCBEdSBzY2hhZmZzdCBkaWU/JyBLYWhuIGFudHdvcnRldDogJ0phLCBkYWNodGUKaWNoIGF1Y2guIEFiZXIgaW4gZGVyIGVsZnRlbiBNaW51dGUgaGF0IG1pY2ggZGVyIGJsb2VkZSBTY2hpcmkgdm9tIFBsYXR6Cmdlc3RlbGx0IC4uLi4nCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpb2xvZ2llIGthbm4gbWFuY2htYWwgZ2FueiBzY2hvZW4gc2Nod2llcmlnIHNlaW4uLi4gKEFudGhlYSwgMjAuIEp1biAyMDAyLCAxNDoyNzozNyk6CkF1c3p1ZWdlIGF1cyBlaW5lbSBCaW9sb2dpZXRlc3QgIk1lbnN0cnVhdGlvbnN6eWtsdXMgdW5kIFZlcmh1ZXR1bmciIHZvbSAxOC4KTWFlcnogMjAwMiBlaW5lciBIYXVwdHNjaHVsZSBpbiBOUlcsIDguS2xhc3NlIChhbHNvIGV0d2EgMTQgSmFocmUgLi4uIHVuZApzb21pdCBkdXJjaGF1cyBpbSBmb3J0cGZsYW56dW5nc2ZhZWhpZ2VuIEFsdGVyISEhKQoKVGhvbWFzOgpEZXIgRWlzcHJ1bmcgaXN0IHp3aXNjaGVuIGRlbSAxNCB1bmQgMTggVGFnIGRlciBQZXJpb2RlIHVuZCBtYW4ga2FubiBkYW5uCm5pY2h0IHNjaHdhbmdlciB3ZXJkZW4uIFdlbm4gbWFuIHNjaG9uIEphaHJlIG5pY2h0IG1laHIgbWl0ZWluYW5kZXIgZ2VzY2hsYWZlbgpoYXQuIERhbm4ga2FubiBtYW4gd2FlaHJlbmQgZGVzIEVpc3BydW5ncyBzY2h3YW5nZXIgd2VyZGVuISBHZW5hdSBpbSBFaXNwcnVuZwpkYW5uIGlzdCBkaWUgWmVpdCwgaW4gZGVyIG1hbiBtaXQgU2ljaGVyaGVpdCB1bmZydWNodGJhciBpc3QuCkJldm9yIG1hbiBtaXRlaW5hbmRlciBzY2hsYWVmdCBtdXNzIG1hbiBkaWUgUGlsbGUgc2NobHVja2VuLiBzbyBkYXNzIGRlcgpLb2VycGVyIGRlbmt0IG1hbiBpc3Qgc2Nob24gc2Nod2FuZ2VyIGRhbm4gbmltbXQgZGVyIEtvZXJwZXIgamEgYXVjaCBrZWluZQpuZXVlbiBTYW1lbiBhdWYuCgpOYXRhbGlhOgpXZW5uIG1hbiBqdW5nIGlzdCB1bmQgd2lsbCBzaWNoIGRlc3RpbGxpZXJlbiBsYXNzZW4gdW5kIGRhbm4gc3BhZXRlciBkb2NoIG5vY2gKZWluIEtpbmQgaGFiZW4gd2lsbCBkYW5uIGlzdCBlcyB6dSBzcGFldC4KClJvbWFuOgpJbSBLb3BmIGlzdCBkYXMgR2x1ZWNrc2hvcm1vbiBkYXMgZGVuIE1lbnN0cnVhdGlvbnN6eWtsdXMgc3RldWVydC4gRGFzIGhlaXNzdAp3ZW5uIGVpbmUgRnJhdSBmdWVyIGxhZW5nZXJlIFplaXQgdWViZXJnbHVlY2tsaWNoIGlzdC4gaXN0IGF1Y2ggaW1tZXIgZWluIEVpCmluIGRlciBHZWJhZXJtdXR0ZXJzY2hsZWltaGF1dCB2b3JoYW5kZW4uIFdhcnVtOiAoc2llaGUgU2VpdGUgSSBBdWZnYWJlIDkpCldpZWRlcmhvbGUgbWljaCBuaWNodCBnZXJuZSEhIQoKSmFuaW5lOgpEZXIgRWlzcHJ1bmcgaXN0IGRlciBlcnN0ZSBUYWcgZGVyIFBlcmlvZGUuIERhcyBFaSB3YW5kZXJ0IHZvbiBsaW5rcyBuYWNoCnJlY2h0cy4gRGFzIERpYXBocmFnbWEgaXN0IG51ciBmdWVyIGRlbiBNYW5uLiBLb2x1dHVzIEluc3Bpcml0dXMgaXN0IGF1ZgprZWluZW4gRmFsbCBzaWNoZXIuCgpBbmRyZWFzOgpEaWUgU3BpcmFsZSBpc3QgbnVyIGdlZWlnbmV0LiB3ZW5uIGRpZSBGcmF1IHNjaG9uIGlocmVuIEZhbWlsaWVuc2lubgphYmdlc2NobG9zc2VuIGhhdC4KClNhbWFudGhhOgpFaW4gRGlhcGhyYWdtYSBpc3QgbmljaHQgc2ljaGVyLiB3ZWlsIGVzIFBoeXNpa2VuIGhhdC4gVW5kIGVzIGlzdCBudXIgZnVlcgpNYWVubmVyLgoKRW1yYWg6CkRpZSBQaWxsZSBpc3QgZnVlciBkaWUgd2VpYmxpY2hlbiBXZXNlbiBnZWVpZ25ldC4gRGllIFBpbGxlIGlzdCBhdWNoIGVpbgplaW5mYWNoZXMgdW5kIHVuZnVlaGxzYW1lcyBWZXJodWV0dHVuZ3NtaXR0ZWwuIERpZSBTcGlyYWxlIGlzdCBzZWhyIHNpY2hlci4KYWJlciBlcyBpc3QgbmljaHQgc2VociBlcm90aXNjaC4gRGllIFNwaXJhbGUgc2NoaWVidCBtYW4gaW4gZGllIFNjaGVpZGUKaGluZWluLiBFcyBpc3QgYXVjaCBzZWhyIHVuYW5nZW5laG0uCgpNaWNoYWVsOgpXYXJ1bSBpc3QgZGVyIE1lbnN0cnVhdGlvbnN6eWtsdXMgaG9ybW9uZ2VzdGV1ZXJ0PyBXZWlsIGRpZSBOYXR1ciBlcyBzbwp2b3JnZXNlaGVuIGhhdCB1bmQgZGllIEZyYXUgZXMgc293aWVzbyBuaWNodCBzdGV1ZXJuIGthbm4sIHVlYmVybmVobWVuIGRpZQpIb3Jtb25lIGRhcy4KCk1hdXJpY2U6Ck1hbiBzY2hsdWNrdCBkaWUgUGlsbGUgdGFlZ2xpY2guIERhbWl0IGRpZSBFaWVyc3RvZWNrZSBkaWUgU2FtZW4gbmljaHQKYXVmbmVobWVuLgoKU3RlZmFuOgpEYXQgRWkgd2FuZGVydCBkYSBkbyBpbiBhIEVpbGVpdGVyIGFuIGRhIGJsZWlidCBkYXQgYWNoLiBVbmQgd2VubiBtYW4gZGF0IHNvCnNlaHQgaXN0IGFsbGVzIHNvIGluIFBlcmlvZGVuemVpdC4gRGllIFRlbXBlcmF0dXJtZXRob2RlIGlzdCBuaWNodCBzbyBndXQgZnVlcgpkaWUgRnJhdWVuLiB3ZWlsIGp1bmdlIE1hZWRjaGVuIGltbWVyIGVpbmVuIHVucmVnZWxtYWVzc2lnZW4gVGVtcGVyYXR1ciBoYWJlbi4KClNvZmlhOgpTcGVybWEgYWJ0b2V0ZW5kZSBDcmVtZXMgdW5kIERlc3RpbmlzYXRpb24gc2luZCB1bnNpY2hlciB1bmQgc2NodWV0emVuIHZvciBnYXIKbmljaHRzLiBEYSBrcmllZ3QgbWFuIG51ciBLcmFua2hlaXRlbiB2b24uCgpBbGV4OgpXaWUgZnVua3Rpb25pZXJ0IGRpZSBBbnRpLUJhYnktUGlsbGU/IEVpZ2VudGxpY2ggZ2VuYXUgd2llIGRpZSBQaWxsZSBudXIgaXN0CmRpZSBQaWxsZSBldHdhcyBzaWNoZXJlci4KClJvYmVydDoKQmVpbSBFaXNwcnVuZyBnZWh0IGRhcyBFaSB2b24gZWluZW0gaW4gZGVuIGFuZGVyZW4gRWllcnN0b2NrLgoKTmFkaW5lOgpEaWUgQW50aS1CYWJ5LVBpbGxlIHdpcmQgdm9yIGRlbSBHZXNjaGxlY2h0c3ZlcmtlaHIgZ2VzY2hsdWNrdC4gTWFuIHNvbGx0ZQpldHdhcyB3YXJ0ZW4gLSBldHdhIDEwIE1pbnV0ZW4gLSBiaXMgbWFuIEdlc2NobGVjaHRzdmVya2VociBoYXQuIEVpbmUKU3RlcmFsbGlzaWVydW5nIGlzdCBuaWNodCBndXQgZnVlciBqdW5nZSBMZXV0ZS4gS29udGl1cyBJbXBhY2t0dXMgaXN0IHNlaHIKdW5zaWNoZXIuCgpQYXRyaWNrOgpEaWUgUGlsbGUgdGFldXNjaHQgZWluZSBTY2h3YW5nZXJzY2hhZnQgdm9yIHVuZCB3ZW5uIG1hbiBzaWUgYWJzZXR6dCBkZW5rdCBkZXIKS29lcnBlciBvaCBzY2hlaXNzZSBpY2ggd3VyZGUgdmVyYXJzY2h0IC4gRGllIHZvcmhlciByYXVzemllaCBNZXRob2RlIGlzdCBzZWhyCnVuc2ljaGVyIHdlaWwgdm9yaGVyIGRlciBMdXN0dHJvcGZlbiBsb3NnZWh0IHVuZCBkZXIga2FubiBhdWNoIHNjaHdhZW5nZXJuLgpXYXMgYXVjaCBuaWNodCBndXQgaXN0IGlzdCBkYXMga2FzdHJpZXJlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOb2NobmdlZGljaHQgKEdyaW1tYm9ybiwgMjMuIEp1biAyMDAyLCAxMTo1Nzo0MSk6CkRlciBHdWNrLUd1Y2sgaXN0IGVpbiBWb2dlbHRpZXIsCmRhcyB3ZWlzcyBtYW4gZ2FueiBnZW5hdSwKZG9jaCBrYWVtZSBlciBhbHMgSHVuZCB6dXIgV2VsdCwKZGFubiB3YWVyIGVyIGVpbiBTY2hhdS1TY2hhdS4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp6dW0gU2NobXVuemVsbiAoZnVlciBNYWVubmVyIG9ubHkpIDopIChUc3VuYW1pLCAyNi4gSnVuIDIwMDIsIDAzOjQzOjAxKToKRk9SIE1FTiBUSVJFRCBPRiBSRUNFSVZJTkcgTUFMRS1CQVNISU5HIEpPS0VTCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkhvdyBtYW55IG1lbiBkb2VzIGl0IHRha2UgdG8gb3BlbiBhIGJlZXI/Ck5vbmUuIEl0IHNob3VsZCBiZSBvcGVuZWQgYnkgdGhlIHRpbWUgc2hlIGJyaW5ncyBpdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSSBtYXJyaWVkIE1pc3MgUmlnaHQuIEkganVzdCBkaWRuJ3Qga25vdyBoZXIgZmlyc3QgbmFtZSB3YXMgQWx3YXlzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJIGhhdmVuJ3Qgc3Bva2VuIHRvIG15IHdpZmUgZm9yIDE4IG1vbnRoczogSSBkb24ndCBsaWtlIHRvIGludGVycnVwdCBoZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KU2NpZW50aXN0cyBoYXZlIGRpc2NvdmVyZWQgYSBmb29kIHRoYXQgZGltaW5pc2hlcyBhIHdvbWFuJ3Mgc2V4IGRyaXZlIGJ5IDkwJS4KSXQncyBjYWxsZWQgYSBXZWRkaW5nIENha2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1hcnJpYWdlIGlzIGEgMy1yaW5nIGNpcmN1czoKRW5nYWdlbWVudCBSaW5nLCBXZWRkaW5nIFJpbmcsIFN1ZmZlci1SaW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPdXIgbGFzdCBmaWdodCB3YXMgbXkgZmF1bHQ6Ck15IHdpZmUgYXNrZWQgbWUgIldoYXQncyBvbiB0aGUgVFY/IgpJIHNhaWQsICJEdXN0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW4gdGhlIGJlZ2lubmluZywgR29kIGNyZWF0ZWQgdGhlIGVhcnRoIGFuZCByZXN0ZWQuIFRoZW4gR29kIGNyZWF0ZWQKTWFuIGFuZCByZXN0ZWQuIFRoZW4gR29kIGNyZWF0ZWQgV29tYW4uClNpbmNlIHRoZW4sIG5laXRoZXIgR29kIG5vciBNYW4gaGFzIHJlc3RlZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBIGJlZ2dhciB3YWxrZWQgdXAgdG8gYSB3ZWxsLWRyZXNzZWQgd29tYW4gc2hvcHBpbmcgb24gUm9kZW8gRHJpdmUKYW5kIHNhaWQsICJJIGhhdmVuJ3QgZWF0ZW4gYW55dGhpbmcgZm9yIGRheXMuIgpTaGUgbG9va2VkIGF0IGhpbSBhbmQgc2FpZCwgIkdvZCwgSSB3aXNoIEkgaGFkIHlvdXIgd2lsbHBvd2VyLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQSBtYW4gaW5zZXJ0ZWQgYW4gYWR2ZXJ0aXNlbWVudCBpbiB0aGUgY2xhc3NpZmllZDogIldpZmUgV2FudGVkLiIKVGhlIG5leHQgZGF5IGhlIHJlY2VpdmVkIGEgaHVuZHJlZCBsZXR0ZXJzLgpUaGV5IGFsbCBzYWlkIHRoZSBzYW1lIHRoaW5nOiAiWW91IGNhbiBoYXZlIG1pbmUuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHJlbWVtYmVyIHlvdXIgd2lmZSdzIGJpcnRoZGF5IGlzIHRvIGZvcmdldAppdCBvbmNlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT2Z0IGJlbnV0enRlIFdvZXJ0ZXIgaW4gZWluZXIgS25laXBlIChHcmltbWJvcm4sIDI2LiBKdW4gMjAwMiwgMjE6NDk6MTgpOgpTY2hsYW5nZSAtICJTY2gnbGFuZ2UgZGE/IiAKRmx1ciAtICJXaSdmbHVyIGlzcyBkZW5uPyIgCktpbm8gLSAiS2lubyAnbiBCaWVyPyIgCkthbnUgLSAiS2FuJ3UgZmFhaG4hIiAKRWlzaG9ja2V5IC0gIkVpJ3MgT0s/IiAKTW9ycGhpdW0gLSAiTW9ycGhpdW0gc2llbSBtdXNzJ2NoIHdpZWRlciAncmF1cyEiIApXaXJzaW5nIC0gIkF1JyBXaSdyJ3NpbmchIiAKQWVneXB0ZW4gLSAiQWVneXB0ZW4ga2VpbmVyIGVpbmVuIGF1cz8iIAoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgozIFRhc2tzIChBbm9yaXMsIDEyLiBKdWwgMjAwMiwgMDA6MDc6MDgpOgpBIGd1eSBnb2VzIHRvIGEgYmFyIGFuZCBzZWVzIGEgYmlnIGphciBvZiA1IGRvbGxhciBiaWxscyBpbiBpdC4gSGUgYXNrcyB0aGUKYmFydGVuZGVyICJXaGF0cyB3aXRoIHRoZSBtb25leT8iIHRoZSBiYXJ0ZW5kZXIgcmVwbGllcyAid2UncmUgaGF2aW5nIGEKY29udGVzdC4gWW91IGhhdmUgdG8gcHV0IGluIDUgZG9sbGFycyBpbiB0aGUgamFyLiB0aGVuIHlvdSBoYXZlIHRvIGNvbXBsZXRlIDMKdGFza3MuIElmIHlvdSBwYXNzLCB5b3UgZ2V0IGFsbCB0aGUgbW9uZXkgaW4gdGhlIGphciIgImFoIHdoYXQgdGhlIGhlbGwuIGxldHMKZ2l2ZSBpdCBhIHRyeS4iIHNheXMgdGhlIG1hbiwgYW5kIHB1dHMgdGhlIGZpdmUgZG9sbGFycyBpbiB0aGUgamFyLiAiRmlyc3QiCnNheXMgdGhlIGJhcnRlbmRlciwgInlvdSBoYXZlIHRvIGRyaW5rIGEgbGFyZ2UgZ2xhc3Mgb2YgdGVxdWlsYSB3aXRob3V0IG1ha2luZwphIGZhY2UuIFNlY29uZCwgdGhlcmUgaXMgYSB2aWNpb3VzIHJvdHR3ZWlsZXIgb3V0c2lkZSB3aXRoIGEgc29yZSB0b290aC4geW91CmhhdmUgdG8gcHVsbCBvdXQgdGhlIHNvcmUgdG9vdGguIFRoaXJkLCB1cHN0YWlycyB0aGVyZSBpcyBhbiBvbGQgd29tYW4gd2hvIGhhcwpuZXZlciBoYWQgc2V4IGluIGhlciBsaWZlLiB5b3UgaGF2ZSB0byBoYXZlIHNleCB3aXRoIGhlci4gb2s/IiAiZmluZSIgc2F5cyB0aGUKbWFuLiB0aGUgYmFydGVuZGVyIGdpdmVzIGhpbSB0aGUgZ2xhc3Mgb2YgdGVxdWlsYS4gdGhlIG1hbiBkcmlua3MgdGhlIHdob2xlCnRoaW5nIHdpdGhvdXQgbWFraW5nIGEgZmFjZS4gTm93IGRydW5rLCBoZSBnb2VzIG91dHNpZGUuIHRoZSBiYXJ0ZW5kZXIgaGVyZXMKbG90cyBvZiB5ZWxsaW5nIGFuZCBiYXJraW5nLiB3aGVuIHRoZSBtYW4gY29tZXMgYmFjaywgaGUgaXMgYWxsIHNocmVkZGVkIHVwLgpIZSBhc2tzICJvaywgd2hlcmVzIHRoZSB3b21hbiB3aXRoIHRoZSBzb3JlIHRvb3RoPyIKCi0gQW5vcmlzIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgbWFuIHVlYmVyIEthdWd1bW1pcyB3aXNzZW4gc29sbHRlLi4uIChOb25uZSwgMTIuIEp1bCAyMDAyLCAwODo0MDo1MSk6Cj4gICAgIEVpbiBLaW5kICh2b3IgVm9sbGVuZHVuZyBkZXMgc2llYmVudGVuIExlYmVuc2phaHJlcykKPiAgICAgc3B1Y2t0IGVpbmVuIEthdWd1bW1pIGluIGVpbmVuIEd1bGx5Lgo+IAo+IFdpZSBpc3QgZGllIFJlY2h0c2xhZ2U/CgpEYSBkYXMgS2luZCBuaWNodCBnZXNjaGFlZnRzZmFlaGlnIGlzdCwga2FubiBlcyBrZWluIEVpZ2VudHVtIGFuIGRlbQpLYXVndW1taSBhdWZnZWJlbi4gRGFtaXQgd2lyZCBkZXIgS2F1Z3VtbWkgbmljaHQgbmFjaCBQYXIuIDk1OSBoZXJyZW5sb3MKdW5kIGVzIGthbm4gYXVjaCBrZWluIEVpZ2VudHVtIG5hY2ggUGFyLiA5NTggZXJ3b3JiZW4gd2VyZGVuLgoKRXMgaGFuZGVsdCBzaWNoIGRhbm4gdmllbG1laHIgdW0gZWluZSBGdW5kc2FjaGUsIHVuZCBkZXIgRmluZGVyIGlzdCBuYWNoClBhci4gOTY1KDEpIHZlcnBmbGljaHRldCwgZGVtIEVtcGZhbmdzYmVyZWNodGlndGVuIHVudmVyenVlZ2xpY2ggdWViZXIKZGVuIEZ1bmQgQW56ZWlnZSB6dSBtYWNoZW4uCgpJc3QgaWhtIGRpZXMgbmljaHQgbW9lZ2xpY2gsIG11c3MgZXIgZGVuIEZ1bmQgendhciBuaWNodCBkZW0gRnVuZGJ1ZXJvCmFuemVpZ2VuIChkYWJlaSBnZWhlIGljaCBkYXZvbiBhdXMsIGRhc3MgZGVyIGdlYnJhdWNodGUgS2F1Z3VtbWkgbmljaHQKbWVociBhbHMgMTAgRVVSIHdlcnQgaXN0KTsgZXIgaGF0IGFiZXIgZWluZSBBdWZiZXdhaHJ1bmdzcGZsaWNodCBuYWNoClBhci4gOTY2KDEpIHVuZCBtdXNzIGF1ZiBOYWNoZnJhZ2UgdWViZXIgZGVuIEZ1bmQgQXVza3VuZnQgZ2ViZW4uCgpHZW1hZXNzIFBhci4gOTczKDIpIGVyd2lyYnQgZXIgZGFubiA2IE1vbmF0ZSBuYWNoIGRlbSBGdW5kIGRhcyBFaWdlbnR1bQphbiBkZW0gS2F1Z3VtbWkuCgpFcyB3YWVyZSBub2NoIHp1IHVudGVyc3VjaGVuLCBvYiBlaW4gZ2VicmF1Y2h0ZXIgS2F1Z3VtbWkgYWxzCnZlcmRlcmJsaWNoIHp1IGdlbHRlbiBoYXQgKG5hY2ggQWJsYXVmIGRlciA2IE1vbmF0ZSBpc3QgZXIgaGFydCkuIFRyaWZmdApkaWVzIHp1LCBtdXNzIGRlciBGaW5kZXIgZGVuIEthdWd1bW1pIG5pY2h0IDYgTW9uYXRlIGxhbmcgYXVmYmV3YWhyZW4sCnNvbmRlcm4gcmVjaHR6ZWl0aWcgdm9yIGRlbSBWZXJkZXJiIG9lZmZlbnRsaWNoIHZlcnN0ZWlnZXJuIChQYXIuCjk2NigyKSkuCgoKW2RlLnNvYy5yZWNodC5taXNjXSBnZWZ1bmRlbiBiZWkgbmV0ZGlnZXN0CgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgbWFuIHVlYmVyIEthdWd1bW1pcyB3aXNzZW4gc29sbHRlLi4uIChIdW1uaSwgMTQuIEp1bCAyMDAyLCAyMzowMjo0OSk6Cn4jISBybj1Ob25uZSBydD0xMDI2NDU2MDUxIHJnPXdpdHplCn4jISB0aWQ9MTAyNjQ1NjA1MQpXYXMgaWNoIGluIG1laW5lbSBQcm9qZWt0IG1hbCBnZWhvZXJ0IGhhYmUgKGJpbiBzZWxic3Qga2VpbiBKdXJpc3QgdW5kIGtlbm4KZGFoZXIgZGVuIGdlbmF1ZW4gV29ydGxhdXQgbmljaHQpIGlzdCwgZGFzcyBpbiBlaW5lciBzY2hyaWZ0bGljaGVuCkp1cmEtUHJ1ZWZ1bmcgZGllIEF1ZmdhYmUgLCxBIHNjaGxhZWd0IEIgZWluZW4gTmFnZWwgaW4gZGVuIEtvcGYsIHdlbSBnZWhvZXJ0CmRlciBOYWdlbD8nJyBnZXN0ZWxsdCB3dXJkZS4uLi4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBtYW4gdWViZXIgS2F1Z3VtbWlzIHdpc3NlbiBzb2xsdGUuLi4gKEdyaW1tYm9ybiwgMTQuIEp1bCAyMDAyLCAyMzowNjowMSk6Cn4jISBybj1IdW1uaSBydD0xMDI2NjgwNTY5IHJnPXdpdHplCn4jISB0aWQ9MTAyNjQ1NjA1MQpXZWxsIGhlIGh1bmcgYWxsIGhpcyB3aWxkIHllYXJzIApPbiBhIG5haWwgd2hpY2ggaGUgZHJvdmUgClRocm91Z2ggaGlzIHdpZmUncyBsb3ZlbHkgZm9yZWhlYWQgClRoYXQgaGUgbGFpZCBvbiB0aGVpciBzdG92ZSAKVGhlbiBoZSBsb29rZWQgZm9yIGhpcyBtYXRjaGVzIApBbmQgaGVhdGVkIHRoZSBoZWF0IApBbmQgaGlzIHNvdWwgY2xhc3BlZCBpdHMgaGFuZHMgCidCb3V0IGhpcyBkZWVkIAoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBtYW4gdWViZXIgS2F1Z3VtbWlzIHdpc3NlbiBzb2xsdGUuLi4gKE11cGZlbCwgMTQuIEp1bCAyMDAyLCAyMzoyMDo0Myk6Cn4jISBybj1IdW1uaSBydD0xMDI2NjgwNTY5IHJnPXdpdHplCn4jISB0aWQ9MTAyNjQ1NjA1MQpEaWUgYmVrYW5udGUgSGlwcGUtQXVmZ2FiZT8gTnVuamEsIHdpZSBtaXIgdm9yIGxhbmdlciBaZWl0IGVyemFlaGx0IHd1cmRlLCBpc3QKSGlwcGUgZWluZW0gcmwtQmVrYW5udGVuIHZvbiBTaXIgIm5hY2hlbXBmdW5kZW4iLCBkZXIgdGF0c2FlY2hsaWNoIEp1cmlzdCBpc3QuCkFsc28gdmllbGxlaWNodCB3YXIgZGVycyBqYS4uLiA7KQoKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbmxlaXR1bmdlbiBkaWUgWC5zdGUgKE11cGZlbCwgMTUuIEp1bCAyMDAyLCAxODo1MjoxNik6CkRpZSBXZWlobmFjaHRza2VyemUgR1dLIDkwOTEgdmVybGFuZ3QgZG9jaCBnbGF0dCwgc2ljaCAibWl0CktsYW1tZXIgQyBpbiBTYWNjbyBvZGVyIEphY2tlIHZvbiBMZWJlbnNwYXJ0bmVyIGVpbmZyYWVzZW4gdW5kCmxhZWNoZWxuIGZ1ZXIgRXJmb2xnIi4gQWxzbyBkYW5uOiBMYWVjaGVsbiEKCjEuIEF1c3BhY2sgdW5kIGZyZXUuICAKMi4gU2xpcHBlbCBBIGthdW0gYWJiaWVnZW4gdW5kIHZlcmtsYXBwZW4gaW4gR2VnZW5zdGlwcGVsIEIKICAgZnVlciBJbGx1bWluYXRpb24gdm9uIEdXSyA5MDkxLiAgCjMuIE1pdCBLbGFtZXIgQyBpbiBTYWNjbyBvZGVyIEphY2tlIHZvbiBMZWJlbnNwYXJ0bmVyIGVpbmZyYWVzZW4KICAgdW5kIGxhZWNoZWxuIGZ1ZXIgRXJmb2xnIG1pdCBHV0sgOTA5MS4gIAo0LiBGdWVyIGVpZ2VucyBXZWlobmFjaHRzZmVpZXJ1bmcgR1dLIDkwOTEgc2V0emVuIGF1ZiBUaXNjaC4gIAo1LiBGdWVyIGthcHV0IG9kZXIgQmF0dGVyaWUgbWVociB6dSBHZW11dGxpY2hrZWl0IGJlc2Nod2VyZW4gYW46CiAgIHdpciwgQmlzbWFyY2tzdHJhc3NlIDQuICAKCkZ1ZXIgbmV1ZSBCYXR0ZXJpZSBhbHQgQmF0dGVyaWUgenVydWVjayBmdWVyIFNhdWJlcndlbHQgaW4gZGV1dHNjaGVyIFdhbGQuCgoqbGFjaCoKCihnZWZ1bmRlbiBiZWkgd3d3LmFic3RydXNlcy5kZSkKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBtYW4gdWViZXIgS2F1Z3VtbWlzIHdpc3NlbiBzb2xsdGUuLi4gKFJvY2h1cywgMTcuIEp1bCAyMDAyLCAxOTo1NDo1Mik6Cn4jISBybj1IdW1uaSBydD0xMDI2NjgwNTY5IHJnPXdpdHplCn4jISB0aWQ9MTAyNjQ1NjA1MQpIbW0sIG1pdCBtZWluZW0ganVyaXN0aXNjaGVuIEhhbGJ3aXNzZW46CkZhbGxzIGRlciBOYWdlbCB2b3JoZXIgQSBnZWhvZXJ0IGhhdCwgZ2Vob2VydCBlciBhbnNjaGxpZXNzZW5kIEIsCndlaWwgQSBzZWluIEVpZ2VudHVtIGFuIGRlbSBOYWdlbCBmcmVpd2lsbGlnIGF1ZmdpYnQgdW5kIGRlciBOYWdlbCBpbgpkZW4gQmVzaXR6IHZvbiBCIHVlYmVyZ2VodCA6LSkKV2VubiBlciBFaWdlbnR1bSB2b24gQyB1bmQgQmVzaXR6IHZvbiBBIHdhciwgaXN0IGVyIGhpbnRlcmhlcgpuYXR1ZXJsaWNoIGltbWVyIG5vY2ggRWlnZW50dW0gdm9uIEMuCklzdCBkb2NoIGdhbnogZWluZmFjaCwgb2Rlcj8gOi0pCkljaCBnbGF1YmUgZGFzIGlzdCBudXIgZWluZSBUZXN0ZnJhZ2UgdW0gZGllIEJlZ3JpZmZlCkJlc2l0eiB1bmQgRWlnZW50dW0gYXVzZWluYW5kZXJ6dWhhbHRlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgbWFuIHVlYmVyIEthdWd1bW1pcyB3aXNzZW4gc29sbHRlLi4uIChNYW5kcmFnb24sIDE3LiBKdWwgMjAwMiwgMjA6MTc6NDQpOgp+IyEgcm49SHVtbmkgcnQ9MTAyNjY4MDU2OSByZz13aXR6ZQp+IyEgdGlkPTEwMjY0NTYwNTEKSGlwcGUgZnJhZ3QgZGFzIGF1Y2ggZGF1ZXJuZCAuLi4uCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkh1bmQuLi4gKE11cGZlbCwgMTcuIEp1bCAyMDAyLCAyMjo0Nzo1NCk6CktpbmQ6IE1hbWkgTWFtaSBkZXIgSHVuZCBmKmNrdApNdXR0ZXI6IERhbm4gc2NoYXUgd2VnCktpbmQ6IGFiZXIgZXMgdHV0IHdlaCEKCihqYSB1ZWJlbCwgaWNoIHdlaXNzIDspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEh1bmQuLi4gKEdsb2luc29uLCAxNy4gSnVsIDIwMDIsIDIyOjU3OjUyKToKfiMhIHJuPU11cGZlbCBydD0xMDI2OTM4ODc0IHJnPXdpdHplCn4jISB0aWQ9MTAyNjkzODg3NApLb21tdCBpbW1lciBkcmF1ZiBhbiwgd2llIG1hbiBkZW5rdCB1bmQgaW50ZXJwcmV0aWVydC4KCkdsb2luKHNvbikgZXJpbm5lcnQgYW4gTWFoYXRtYSwgZGVyIHNpY2ggZ2VybiBkZW1vbnN0cmF0aXYgaW5zIEtuaWUgZmlja3RlIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXYXMgbWFuIHVlYmVyIEthdWd1bW1pcyB3aXNzZW4gc29sbHRlLi4uIChIdW1uaSwgMTguIEp1bCAyMDAyLCAwMDo0NDowOSk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTAyNjkyOTg2NCByZz13aXR6ZQp+IyEgdGlkPTEwMjY0NTYwNTEKSmFqYS4uLiBhYmVyIGRhcyB3YXIgd29obCB3aXJrbGljaCBtYWwgZWluZSBGcmFnZSBiZWkgZWluZXIgZnVlciBkaWUKSnVyYXN0dWRpcyB3b2hsIHJlY2h0IHdpY2h0aWdlbiBQcnVlZnVuZyBvZGVyIHNjaGVpbiBvZGVyIHNvLi4uCgpVbmQgaWNoIG1laW5lIGdlaG9lcnQgenUgaGFiZW4gZGFzcyBkYWJlaSByZWNodCB2aWVsZSBMZXV0ZSBkdXJjaGdlZmFsbGVuCnNpbmQuCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2FzIG1hbiB1ZWJlciBLYXVndW1taXMgd2lzc2VuIHNvbGx0ZS4uLiAoQ3VjaHVsbGluLCAxOC4gSnVsIDIwMDIsIDAyOjExOjQxKToKfiMhIHJuPUh1bW5pIHJ0PTEwMjY5NDU4NDkgcmc9d2l0emUKfiMhIHRpZD0xMDI2NDU2MDUxCkIgemVpZ3QgQSB3ZWdlbiBzY2h3ZXJlciBLb2VycGVydmVybGV0enVuZyBhbiwgdW5kIGJla29tbXQgUmVjaHQ7IGltClJhaG1lbiBkZXIgUmVjaHRzcHJlY2h1bmcgd2lyZCBkZXIgTmFnZWwgYWxzIFRhdHdlcmt6ZXVnIGVpbmdlem9nZW4uIAoKQ3VjaCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW1mcmFnZWVyZ2VibmlzIGRlciBCTVcgQUcgKEFudGhlYSwgMjQuIEp1bCAyMDAyLCAxMTowMjozMCk6CgpEZXIgYmVrYW5udGUgYmF5ZXJpc2NoZSBBdXRvaGVyc3RlbGxlciBCTVcgaGF0IGVpbmUgVW1mcmFnZSB1bnRlciAKc2VpbmVuIDNlci1LdW5kZW4gZHVyY2hnZWZ1ZWhydC4gSW4gRm9sZ2UgZGllc2VyIDNlci1GYWhyZXItVW1mcmFnZSAKd2lyZCBCTVcgaW4gWnVrdW5mdCB2ZXJzdWNoZW4sIHN0YWVya2VyIGF1ZiBkaWUgaW5kaXZpZHVlbGxlbiBXdWVuc2NoZSAKdW5kIEJlZHVlcmZuaXNzZSBzZWluZXIgS3VuZGVuIGVpbnp1Z2VoZW4uCgpGb2xnZW5kZSBOZXVlcnVuZ2VuIGdpYnQgZXMgZGVzaGFsYiBhYiBzb2ZvcnQgaW0gQk1XIDNlci1Qcm9ncmFtbToKCjEuIERlbiBuZXVlbiBCTVcgM2VyIGdpYnQgZXMgamV0enQgYXVjaCBtaXQgbWluYXJldHRmb2VybWlnZXIgCkhhbmR5LURhY2hhbnRlbm5lLgoKMi4gRGVyIG5ldWUgM2VyIEJNVyB3aXJkIGpldHp0IHNlcmllbm1hZXNzaWcgbWl0IGRvcHBlbHRlbSBEb2VuZXJoYWx0ZXIgCmF1c2dlcnVlc3RldC4KCjMuIERpZSBTaXR6ZSBiZWltIDNlciBCTVcga29lbm5lbiB3YWhsd2Vpc2UgbWl0IEhhbGxhbGwtTGFtbS1MZWRlciBvZGVyIApGZWlucmlwcC1NdXNjbGVzaGlydC1TdG9mZiBiZXpvZ2VuIHdlcmRlbi4KCjQuIERpZSBCZWRpZW51bmdzYW5sZWl0dW5nIGVpbmVzIGplZGVuIEJNVyAzZXIgYmVzdGVodCBmb3J0YW4ga29tcGxldHQgCmF1cyBCaWxkZXJuLgoKNS4gRGllIEtvcGZzdHVldHplbiBhbGxlciAzZXIgQk1XcyBzaW5kIEhhYXItR2VsLWFid2Vpc2VuZCB1bmQgYmVzaXR6ZW4gCnNwZXppZWxsIGF1c2dlZm9ybXRlIFR1cmJhbi1NdWxkZW4uCgo2LiBadXNhZXR6bGljaCB6dSBkZW4gZ2VzY2h3YWVyenRlbiBTY2hlaW53ZXJmZXJnbGFlc2VybiBrYW5uIG1hbiBiZWltIApCTVcgM2VyIGFiIHNvZm9ydCBhdWNoIGdlc2Nod2Flcnp0ZSBUYWNob2FuemVpZ2VuIHVuZCBnZXNjaHdhZXJ6dGUgCklubmVucmF1bWxldWNodGVuIGJlc3RlbGxlbi4KCjcuIEVpbmUgWnVzYXR6c3RldWVydW5nIGluIGRlciBNb3Rvci1FbGVrdHJvbmlrIGRlciBuZXVlbiAzZXIgc29yZ3QgCm51biBkYWZ1ZXIsIGRhc3MgZGVyIE1vdG9yIGltIFN0YW5kIGFuIGRlciBBbXBlbCBpbW1lciByaHl0aG1pc2NoIGJpcyBhbiAKZGVuIERyZWh6YWhsYmVncmVuemVyIGdlZHJlaHQgd2lyZC4KCjguIEFsbGUgM2VyIEJNVy1SYWRpb3MgbGF1ZmVuIG51biBhdXRvbWF0aXNjaCBpbW1lciBhdWYgaG9lY2hzdGVyIApMYXV0c3RhZXJrZS4KCjkuIEFsbGUgM2VyIEJNVy1SYWRpb3MgYmVzaXR6ZW4gbmV1ZXJkaW5ncyB6dXNhZXR6bGljaCB6dSBkZW4gdWVibGljaGVuIApSYXVta2xhbmctRWluc3RlbGx1bmdlbiAiS29uemVydHNhYWwsIEVja2tuZWlwZSwgRG9yZmRpc2NvLCAKSnVnZW5kdHJlZmYiIGRpZSBFaW5zdGVsbHVuZ2VuICJCYXNhci1DaGFvcyIgdW5kICJNb3NjaGVlLU11ZXp6aW4iLgoKMTAuIEZhZWhydCBkZXIgM2VyIEJNVyBzY2huZWxsZXIgYWxzIDEwMCBrbS9oLCB3ZXJkZW4gYXV0b21hdGlzY2ggCkZlcm5saWNodCB1bmQgQmxpbmtlciBsaW5rcyBha3RpdmllcnQuCgoxMS4gRGllIDNlciBGdXNzbWF0dGVuIGxpZWZlcnQgQk1XIG51biB3YWhsd2Vpc2UgYXVjaCBpbSAKT3JpZW50dGVwcGljaC1Mb29rIGF1cy4KCjEyLiBEaWUgbmV1ZSAzZXItUmVpaGUga2FubiBmb3J0YW4gaW5kaXZpZHVlbGwgZmluYW56aWVydCB3ZXJkZW46IHouQi4gCm1pdCBTY2htdWNrLCBUZXBwaWNoZW4sIEthbWVsZW4sIFNjaGFmZW4sIFd1ZXN0ZW56ZWx0ZW4gdW5kIApXYXNzZXJzYWVja2VuLgoKMTMuIEluIGRpZSBFbmRyb2hyZSBkZXIgQXVzcHVmZmFubGFnZSBhbGxlciAzZXIgQk1XcyB3ZXJkZW4gCjUwMC1XYXR0LVZlcnN0YWVya2VyIGVpbmdlYmF1dCwgZGFtaXQgYXVjaCBkZXIga2xlaW5zdGUgR2Fzc3Rvc3MgYmVpIGRlbiAKUGFzc2FudGVuIHJpY2h0aWcgenVyIEdlbHR1bmcga29tbXQuCgoxNC4gQWxzIGJlc29uZGVyZXMgRXh0cmEgYmlldGV0IEJNVyBhbGxlbiAzZXItRmFocmVybiBhYiBzb2ZvcnQgZWluZSAKQWlyYnJ1c2gtTGFja2llcnVuZyBhdWYgZGVyIE1vdG9yaGF1YmUgYW4uIFZlcmZ1ZWdiYXJlIE1vdGl2ZTogIk1la2thIApiZWkgTmFjaHQiLCAiU3R1cm0gYXVmIGRpZSBLYXVmaGFsbGUiIHVuZCAiS2FmdGFuLU1hbWEgbWl0IEFLLTQ3Ii4KCjE1LiBJbiBhbGxlbiBCTVctV2VyYmVwcm9zcGVrdGVuIHNpdHplbiBkaWUgRnJhdWVuIGpldHp0IGdydW5kc2FldHpsaWNoIApoaW50ZW4uCgoxNi4gRWluIG5ldWVyIEtub3BmIHppZXJ0IGRpZSBMZW5rcmFkbWl0dGUgZGVzIG5ldWVuIERyZWllcnM7IHdlbm4gbWFuIAppaG4gZHJ1ZWNrdCwgdW50ZXJicmljaHQgbWFuIGt1cnp6ZWl0aWcgZGllIEh1cGUuCgoxNy4gTWl0IGRlbSBha3R1ZWxsZW4gM2VyIHN0ZWxsdCBCTVcgZWluZSB3ZWl0ZXJlIHRlY2huaXNjaGUgTmV1ZXJ1bmcgCnZvcjogRGFzIGJpbmFlcmUgR2FzcGVkYWwuIEVzIGtlbm50IHp3ZWkgWnVzdGFlbmRlOiAKVW5iZXJ1ZWhydC9Cb2RlbmJsZWNoLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhbmRpY2FwIDIgKEphbWVzb24sIDI2LiBKdWwgMjAwMiwgMDA6NDI6MjMpOgoKWndlaSBHb2xmZXIgd2VyZGVuIGJlaSBpaHJlbSBTcGllbCBkdXJjaCB6d2VpIEZyYXVlbiB2b3IgaWhuZW4gYXVmZ2VoYWx0ZW4sCmRpZSBzdGFlbmRpZyBCYWVsbGUgdmVyc2NobGFnZW4sIG5hY2ggdmVybG9yZW5nZWdhbmdlbiBCYWVsbGVuIHN1Y2hlbiB1bmQgZnVlcgpkaWUgUHV0dHMgc3R1bmRlbmxhbmcgYnJhdWNoZW4uCiJJY2ggZnJhZyBzaWUgbWFsLCBvYiBzaWUgdW5zIHZvcmxhc3NlbiIsIHNhZ3QgZGVyIGVpbmUgdW5kIGdlaHQgYXVmIGRpZQpGcmF1ZW4genUuIFp3YW56aWcgTWV0ZXIgdm9yIGRlbSBHcmVlbiBkcmVodCBlciBhbGxlcmRpbmdzIGF1ZiBkZW0gQWJzYXR6IHVtCnVuZCBrb21tdCB6dSBzZWluZW0gS2FtZXJhZGVuIHp1cnVlY2suCiJJY2gga2FubidzIG5pY2h0IiwgZXJrbGFlcnQgZXIgaWhtIHZlcmxlZ2VuLiAiRGllIGVpbmUgaXN0IG1laW5lIEZyYXUgdW5kIGRpZQphbmRlcmUgbWVpbmUgR2VsaWVidGUhIgoiRGFubiBmcmFnIGljaCBlYmVuIiwgc2FndCBkZXIgYW5kZXJlLiBFciBnZWh0IGhpbnVlYmVyLCB1bmQgZHJlaHQgcHJvbXB0CmViZW5zbyB1bSB3aWUgc2VpbiBNaXRzcGllbGVyLgoiV2FzIGlzdCBkZW5uPyIgZnJhZ3QgZGllc2VyLgoiRGllIFdlbHQgaXN0IHNvIGtsZWluLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1ZXMgYXVzIGRlciBGcmF1ZW5mb3JzY2h1bmcgKE5vbm5lLCAyNi4gSnVsIDIwMDIsIDE0OjMyOjA4KToKQXVzIGRlLnRhbGsuam9rZXM6CgoiRGllIFdlaWJlciBzaW5kIGhhdXB0c2FlY2hsaWNoIGRhenUgYmVzdGltbXQsIGRpZSBHZWlsaGVpdCBkZXIgTWFlbm5lcgp6dSBiZWZyaWVkaWdlbi4iIChKb2hhbm5lcyBDaHJ5c29zdG9tb3MsIDM0OS00MDcsIGdyLiBLaXJjaGVubGVocmVyKQoKIkVpbiBtYWVubmxpY2hlciBGb2V0dXMgd2lyZCBuYWNoIDQwIFRhZ2VuLCBlaW4gd2VpYmxpY2hlciBuYWNoIDgwIFRhZ2VuCmVpbiBNZW5zY2guIE1hZWRjaGVuIGVudHN0ZWhlbiBkdXJjaCBzY2hhZGhhZnRlbiBTYW1lbiBvZGVyIGZldWNodGUKV2luZGUuIiAoVGhvbWFzIHZvbiBBcXVpbiwgS2lyY2hlbmxlaHJlciB1bmQgUGF0cm9uIGRlciBrYXRob2xpc2NoZW4KSG9jaHNjaHVsZW4pIAoKIldlaWJlciBzaW5kIHZvbiBkZXIgTmF0dXIgenVtIGdlbWVpbnNjaGFmdGxpY2hlbiBHZW51c3MgYmVzdGltbXQuIgooS2Fwb2tyYXRlcywgRnJ1ZWhjaHJpc3QgdW5kIEtsb3N0ZXJncnVlbmRlcikgCgoiRGllIEZyYXUgaXN0IGVpbiBNaXNzZ3JpZmYgZGVyIE5hdHVyLi4uIG1pdCBpaHJlbQpGZXVjaHRpZ2tlaXRzLVVlYmVyc2NodXNzIHVuZCBpaHJlciBVbnRlcnRlbXBlcmF0dXIga29lcnBlcmxpY2ggdW5kCmdlaXN0aWcgbWluZGVyd2VydGlnZXIuLi5laW5lIEFydCB2ZXJzdHVlbW1lbHRlciwgdmVyZmVobHRlciwKbWlzc2x1bmdlbmVyIE1hbm4uLi5kaWUgdm9sbGUgVmVyd2lya2xpY2h1bmcgZGVyIG1lbnNjaGxpY2hlbiBBcnQgaXN0Cm51ciBkZXIgTWFubi4iIChUaG9tYXMgdm9uIEFxdWluLCBobC4sIEtpcmNoZW5sZWhyZXIsIDEyMjUtMTI3NCkKCiJXaWxsIGRpZSBGcmF1IG5pY2h0LCBzbyBrb21tJyBkaWUgTWFnZCEiCihNYXJ0aW4gTHV0aGVyLCBGcmF1ZW5mcmV1bmQpIAoKIk1vZW5jaGUgYnJhdWNoZW4gbnVyIGVpbmUgRnJhdSB6dSBzZWhlbiwgZGFubiBncnVuemVuIHNpZSB3aWUgZWNodGUKU2Nod2VpbmUuIiAoUHJlc3NlbWl0dGVpbHVuZyBEZXV0c2NoZXIgS2F0aG9saWtlbnRhZyAxOTY4KSAKCiJGcmF1ZW4gaGFiZW4gaGFiZW4gbmljaHQgbWVociBIaXJuIGFscyBlaW4gU3Ryb2hwdXR6IGF1ZiBkZW0gQWNrZXIsCmRlciBmdWVyIGRpZSBWb2dlbHNjaGF1IGlzdCBoaW5hdXNnZXN0ZWxsdCB3b3JkZW4uIiAoR2VvcmcgU3RlbmdlbCwKSmVzdWl0LCAxNTg0LTE2NTEpCgpTZXggaXN0IHdpZSBIYWVuZGVyZWliZW4uCihQYXBzdCBCb25pZmF6IFZJSUkuLCAxMjM1LTEzMDMpCgpWZXJoZWlyYXRldGUgZXJoYWx0ZW4gaW0gSGltbWVsIHNjaGxlY2h0ZXJlIFBsYWV0emUgYWxzIGRpZSBFdW51Y2hlbi4KKEtpcmNoZW5sZWhyZXIgSGllcm9ueW11cykKCkRpZSBFaW5mdWVocnVuZyBkZXMgbWFlbm5saWNoZW4gR2xpZWRlcyBpbiBkZW4gTXVuZCBkZXIgRnJhdSB3aXJkLApzb2Zlcm4gc2llIHNjaG5lbGwgdW5kIG9obmUgR2VmYWhyIGVpbmVzIFNhbWVuZXJndXNzZXMgZXJmb2xndCwKdmVyc2NoaWVkZW50bGljaCB2b24gZGVyIFRvZHN1ZW5kZSBmcmVpIGdlc3Byb2NoZW4sIHdlaWwgZGVyIE11bmQga2VpbgpnZWVpZ25ldGVzIEdlZmFlc3MgenVtIHNvZG9taXRpc2NoZW4gVmVya2VociBpc3QgdW5kIGRpZSBnZW5hbm50ZSBUYXQKc29taXQgZWluZSB1bnp1ZWNodGlnZSBCZXJ1ZWhydW5nIGRhcnN0ZWxsdCAuLi4gRGVyIGhlaWxpZ2UgQWxmb25zbyBoYWVsdAppbiBVZWJlcmVpbnN0aW1tdW5nIG1pdCBkZW0gYWxsZ2VtZWluZW4gVXJ0ZWlsIGRpZSBFaW5mdWVocnVuZyBkZXMKbWFlbm5saWNoZW4gR2xpZWRlcyBpbiBkZW4gTXVuZCBkZXIgRnJhdSBmdWVyIGVpbmUgVG9kc3VlbmRlLCB2b3IgYWxsZW0KZGVzaGFsYiwgd2VpbCBmYXN0IGltbWVyIGRpZSBHZWZhaHIgZGVzIFNhbWVuZXJndXNzZXMgYmVzdGVodC4KKFRoZW9sb2dpYSBtb3JhbGlzLCBSb20gMTk0NCkKCk5hY2t0IGR1c2NoZW4gd2lkZXJzcHJpY2h0IGthdGhvbGlzY2hlciBNb3JhbC4gCihHZW5lcmFsa2lyY2hlbnZpa2FyaWF0IEtvZWxuKQoKV2VyIGhhZXJ0ZXIgc3RyYWZ0LCB6ZWlndCBncm9lc3NlcmUgTGllYmUuCihBdWd1c3RpbiwgaGwuKSAKCkJlc3RpbW10ZSBzZXh1ZWxsZSBWZXJoYWx0ZW5zd2Vpc2VuIGtvZW5uZW4gS3JlYnMgaGVydm9ycnVmZW4uCihQYXBzdCBKb2hhbm5lcyBQYXVsIElJIHZvciBHeW5hZWtvbG9nZW4sIDE5OTkgKHNpYykpCgoKIkRhcyBnYW56ZSAod2VpYmxpY2hlKSBHZXNjaGxlY2h0IGlzdCBzY2h3YWNoIHVuZCBsZWljaHRzaW5uaWcuIFNpZQpmaW5kZW4KZGFzIEhlaWwgbnVyIGR1cmNoIGRpZSBLaW5kZXIuIiAoSm9oYW5uZXMgQ2hyeXNvc3RvbW9zLCBobC4sIDM0OS00MDcsCmdyLgpLaXJjaGVubGVocmVyKQoKIkRpZSBncm9lc3N0ZSBFaHJlLCBkaWUgZGFzIFdlaWIgaGF0LCBpc3QgYWxsenVtYWwsIGRhc3MgZGllIE1hZW5uZXIgZHVyY2gKc2llCmdlYm9yZW4gd2VyZGVuLiIgKE1hcnRpbiBMdXRoZXIpCgoiRGVyIHdlc2VudGxpY2hlIFdlcnQgZGVyIEZyYXUgbGllZ3QgaW4gaWhyZXIgR2ViYWVyZmFlaGlna2VpdCB1bmQgaW4KaWhyZW0KaGF1c3dpcnRzY2hhZnRsaWNoZW4gTnV0emVuLiIgKFRob21hcyB2b24gQXF1aW4sIEtpcmNoZW5sZWhyZXIsCjEyMjUtMTI3NSkKCiJCZWkgZGVyIEZyYXUgbXVzcyBzY2hvbiBkYXMgQmV3dXNzdHNlaW4gdm9tIGVpZ2VuZW4gV2VzZW4gU2NoYW0gCmhlcnZvcnJ1ZmVuLiIgKENsZW1lbnMgQWxleGFuZHJpbnVzLCB2b3IgMjE1KQoKLi4uIHVuZCB6dW0gZ3JhbmRpb3NlbiBBYnNjaGx1c3M6CgoiSW4ga2VpbmVyIFJlbGlnaW9uIG9kZXIgV2VsdGFuc2NoYXV1bmcgaXN0IGRpZSBGcmF1IHNvIGdlYWNodGV0IHVuZApnZWVocnQKd2llIGltIENocmlzdGVudHVtISIgKERlciBrYXRob2xpc2NoZSBUaGVvbG9nZSBCZXJuaGFyZCBIYWVyaW5nIGltIDIwLiAKSmFocmh1bmRlcnQpCgoKTm9ubmUsIG5vY2ggaW1tZXIgbGFjaGVuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVlcyBhdXMgZGVyIEZyYXVlbmZvcnNjaHVuZyAoR2xvaW5zb24sIDI2LiBKdWwgMjAwMiwgMTU6Mzc6NTApOgp+IyEgcm49Tm9ubmUgcnQ9MTAyNzY4NjcyOCByZz13aXR6ZQp+IyEgdGlkPTEwMjc2ODY3MjgKPiBCZXN0aW1tdGUgc2V4dWVsbGUgVmVyaGFsdGVuc3dlaXNlbiBrb2VubmVuIEtyZWJzIGhlcnZvcnJ1ZmVuLgoKRGFzIGlzdCBzaWNoZXIgbmljaHQgdW53YWhyLCBkYSBlaW5pZ2UgS3JlYnNhcnRlbiBtaXQgVmlyZW4genVzYW1tZW56dWhhZW5nZW4Kc2NoZWluZW4uCgpHbG9pbihzb24pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5ldWVzIGF1cyBkZXIgRnJhdWVuZm9yc2NodW5nIChBbnRoZWEsIDI2LiBKdWwgMjAwMiwgMTU6Mzg6NDgpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTAyNzY5MDY3MCByZz13aXR6ZQp+IyEgdGlkPTEwMjc2ODY3MjgKVGphLi4uIFJhdWNoZW4gaXN0IGF1Y2gga3JlYnNlcnJlZ2VuZC4uLiBhYmVyIHdlbiBrdWVtbWVydCBzY2hvbiwgd2FzIEtyZWJzZQplcnJlZ3QgKGF1c3NlciBLcmVic2VuIG5hdHVlcmxpY2gpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV0ZGlnZXN0IChWYW5pb24sIDI2LiBKdWwgMjAwMiwgMjE6NTE6MjgpOgo+SW4gZGVyIFMtQmFobiBocnQgbWFuIGFsbGVzIHVuZCBhdWNoIHdpZWRlciBuaXguCgoKU3RpbW10LiBEZW4gRHVyY2hzYWdlbiBpbiBkZXIgUy1CYWhuIHp1Zm9sZ2UgZ2lidCBlcyBpbiBNfG5jaGVuIG51ciAyClN0YXRpb25lbjogR3JyenpsYnJyenQgdW5kIEJ6enp6bGJyYXR6LgoKClF1ZWxsZTogU2llaGUgSGVhZGVyCgpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVzIGF1cyBkZXIgRnJhdWVuZm9yc2NodW5nIChaYXBob2IsIDI3LiBKdWwgMjAwMiwgMTU6MDk6NTkpOgp+IyEgcm49Tm9ubmUgcnQ9MTAyNzY4NjcyOCByZz13aXR6ZQp+IyEgdGlkPTEwMjc2ODY3MjgKV2llc28gd2FyZW4gZGFzIGVpZ2VudGxpY2ggYXVzc2NobGllc3NsaWNoIE1hZW5uZXI/ICpyYWV0c2VsKiAqa29wZmtyYXR6KiBBY2gsCndpcmQgc2Nob24gbmljaHRzIGJlZGV1dGVuLi4uCgpaYXBob2IKaGludGVyZnJhZ3QgamEgZ3J1bmRzYWV0emxpY2ggYWxsZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmV1ZXMgYXVzIGRlciBGcmF1ZW5mb3JzY2h1bmcgKFZhbmlvbiwgMjcuIEp1bCAyMDAyLCAxNToxMTo1NSk6Cn4jISBybj1aYXBob2IgcnQ9MTAyNzc3NTM5OSByZz13aXR6ZQp+IyEgdGlkPTEwMjc2ODY3MjgKV2FydW0gZ2xhdWJzdCBkdSBkYXM/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaGV2ZXJ0cmFnIChOb25uZSwgMzAuIEp1bCAyMDAyLCAxMjowNToyMCk6CkVoZXZlcnRyYWcKCjEuIEltIHVud2FocnNjaGVpbmxpY2hlbiBGYWxsIGRlcyBOaWNodGVybGViZW5zIGVpbmVzIE9yZ2FzbXVzLCBuYWNoZGVtIGR1CmJldHJ1bmtlbiB1ZWJlciBtaWNoIGdlcm9sbHQgYmlzdCB1bmQgZnVlciBmdWVuZiBnYW56ZSBNaW51dGVuIGdlcHVtcHQgaGFzdCwKamFwc2VuZCB3aWUgZWluIGFzdGhtYXRpc2NoZXIgYWx0ZXIgTWFubiwgd2VyZGUgaWNoIGZyZXVuZGxpY2hlcndlaXNlIGVpbmVuCnZvcnRhZXVzY2hlbi4KCjEuMS4gQXVzc2VyZGVtIHdpcmQgZXMgZWluIHJpY2h0aWcgZ3V0ZXIgQWt0IHNlaW4sIHVuZCBpY2ggd2VyZGUgRGluZ2Ugc2FnZW4Kd2llICJEYXMgaGVpc3N0IGFsc28gJ3dpZSBkaWUgSGFzZW4gcmFtbWVsbicgIiB1bmQgd2VyZGUgamF1bGVuIHdpZSBlaW5lCkthdHplLCBkaWUgbWFuIHdpZWRlcmhvbHQgbWl0IGVpbmVtIE5hZ2VsIHBpZWt0LgoKMS4yIEljaCB3ZXJkZSBuaWVtYWxzIG5hY2ggZWluZW0gVm9yc3BpZWwgZnJhZ2VuLgoKMi4gSWNoIGhhYmUgdmVyc3RhbmRlbiwgZGFzcyBkaWUgSGF1cHRhdWZnYWJlIGVpbmVyIEZyYXUgaW4gZGVyIGhldXRpZ2VuCkdlc2VsbHNjaGFmdCBpc3QsIGRpZSBTY2h1bGQgYXVmIHNpY2ggenUgbmVobWVuLiBXZW5uIGR1IGRpciBhbHNvIGltIEJhZCBkZW4KWmVoIHN0b2Vzc3Qgb2RlciBkZWluIEZ1c3NiYWxsLVRlYW0gdmVybGllcnQsIGJpbiBpY2ggZGFtaXQgZWludmVyc3RhbmRlbiwKZGFzcwplcwphdWZncnVuZCBrb21wbGV4ZXIgd2lzc2Vuc2NoYWZ0bGljaGVyIFp1c2FtbWVuaGFlbmdlLCBkaWUgc2ljaCBkZW0gVmVyc3RhbmQKZWluZXIKRnJhdSBlbnR6aWVoZW4gLSBtZWluZSBTY2h1bGQgc2VpbiB3aXJkLiBBdWNoIHdlbm4gaWNoIGdhciBuaWNodCBkYSB3YXIuCgozLiBXZW5uIGljaCBtaXQgbWVpbmVuIEZyZXVuZGlubmVuIGF1c2dlaGUsIHdlcmRlIGljaCBpaG5lbiBlcnphZWhsZW4sIGRhc3MKYmVpIGRpciBtZWhyIGhhZW5ndCBhbHMgYmVpIGVpbmVtIFlhayB1bmQgZGFzcyBlaW4gRWxlZmFudCBuZWlkaXNjaCBhdWYgZGVpbmUKR2VuaXRhbGllbiB3YWVyZS4KCjMuMSBJY2ggd2VyZGUgb2Z0IGRlaW5lIHNleHVlbGxlbiBRdWFsaXRhZXRlbiB1bmQgZGVpbmUgQXVzZGF1ZXIgaW0gQmV0dAplcndhZWhuZW4uCgozLjIgVW5kIGljaCB3ZXJkZSBkaWVzIGF1Y2ggREVJTkVOIEZyZXVuZGVuIGdlZ2VudWViZXIgZXJ3YWVobmVuLiBTZWhyIG9mdC4KCjQuIE5hY2ggZGVtIFNleCAod2VsY2hlbiBpY2ggTklFTUFMUyBhbHMgIkxpZWJlIG1hY2hlbiIgYmV6ZWljaG5lbiB3ZXJkZSkKd2VyZGUgaWNoIHZvbiBEaXIgbmljaHQgZXJ3YXJ0ZW4sIG1pY2ggc3R1bmRlbmxhbmcgenUgdW1hcm1lbiB1bmQgenUgZHJ1ZWNrZW4KYmlzIGRlaW4gQXJtIGVpbnNjaGxhZWZ0LiBBdWNoIG1laW5lIEhhYXJlIHdlcmRlIGljaCBuaWNodCBuZXJ2aWdlcndlaXNlIGluCmRlaW4gR2VzaWNodAprb21tZW4gbGFzc2VuLgoKNC4xIEljaCB3ZXJkZSBEZWluZW0gUGVuaXMgbmllbWFscyBlaW5lbiAic3Vlc3NlbiIgU3BpdHpuYW1lbiBnZWJlbi4KCjUuIEltIEJldHQgd2VyZGUgaWNoIGJlZ2llcmlnIGplZGUgbmV1ZSBTdGVsbHVuZyBhdXNwcm9iaWVyZW4sIGRpZSBkdSBnZXJuZQptb2VjaHRlc3QuIFNwZXppZWxsIGRpZWplbmlnZW4sIHdvIGljaCBkaWUgZ2FuemUgQXJiZWl0IG1hY2hlLCB3YWVocmVuZCBEdQplaW5mYWNoIGRhIGxpZWdzdCB1bmQgZ3JpbnN0LgoKNS4xIEljaCB3ZXJkZSBtZWluZSBhdHRyYWt0aXZlbiBGcmV1bmRpbm5lbiBhdXNmcmFnZW4gdW5kIERpY2ggaW5mb3JtaWVyZW4sCmZhbGxzIHNpZSBkaWUgbGVpY2h0ZXN0ZW4gYmktc2V4dWVsbGVuIEFtYml0aW9uZW4gaGFiZW4gc29sbHRlbi4gRGFubiB3ZXJkZQppY2ggc2llIHp1IEVzc2VuIGJlaSB1bnMgZWlubGFkZW4gdW5kIGlocmUgU2NobHVlc3NlbCB2ZXJzdGVja2VuLCBzbyBkYXNzIHNpZQpiZWkgdW5zIHVlYmVybmFjaHRlbiBtdWVzc2VuLgoKNS4yIEljaCB2ZXJzcHJlY2hlIHRhZWdsaWNoIHp3ZWkgU3R1bmRlbiBpbSBGaXRuZXNzLVN0dWRpbyB6dSB0cmFpbmllcmVuLCB1bQptZWluZW4gS29lcnBlciBmdWVyIGRpY2ggYmVnZWhyZW5zd2VydCB6dSBlcmhhbHRlbi4gQXVjaCB3ZW5uIGRlaW4gQmllcmtvbnN1bQpkYXMgQW5zY2h3ZWxsZW4gZGVpbmVzIEtvZXJwZXJzIGluIGRpZSBGb3JtZW4gZWluZXIgSG9jaHNjaHdhbmdlcmVuIHp1ciBGb2xnZQpoYXQuCgo1LjMgSWNoIHZlcnNwcmVjaGUgbmllbWFscyBEZWluZW4gSGFhcmF1c2ZhbGwgdW5kIGRpZSBUYXRzYWNoZSBkYXNzLCBlcwpBZWhubGljaGtlaXQgbWl0IGVpbmVtIEJhYnktSGludGVybiBvZGVyIGVpbmVyIEhvbmlnbWVsb25lIGhhdCBhbnp1c3ByZWNoZW4uCgo1LjQgSWNoIHZlcnNwcmVjaGUgamVkZW4gbW9lZ2xpY2hlbiBaZW50aW1ldGVyIG1laW5lcyBLb2VycGVycyB6dSByYXNpZXJlbgp1bmQgd2VyZGUgZGVpbmVuIERyZWktVGFnZS1CYXJ0IGltbWVyIGxpZWJlbi4KCjYuIFdlbm4gd2lyIHVucyBnZXRyZW5udCBoYWJlbiwgd2VyZGUgaWNoIG5pZW1hbHMgbWl0IGVpbmVtIGRlaW5lciBGcmV1bmRlCm9kZXIgS29sbGVnZW4gc2NobGFmZW4uIE5vY2ggbWl0IGlyZ2VuZGplbWFuZCwgZGVuIGR1IHNvbnN0IGplIGdldHJvZmZlbgpoYXN0IG9kZXIgaXJnZW5kd2FubiB0cmVmZmVuIHdpcnN0LiBXZW5uIE1hZW5uZXIgdmVyc3VjaGVuIHNvbGx0ZW4sIG1pY2gKYW56dXNwcmVjaGVuLCB3ZXJkZSBpY2ggc2llIGluZm9ybWllcmVuLCBkYXNzIER1IG1pY2ggZnVlciBhbmRlcmUgTWFlbm5lcgp2ZXJkb3JiZW4gaGFzdC4KCjcuIEljaCB2ZXJzdGVoZSwgZGFzcyBtZWNoYW5pc2NoZSBHZXJhZXRlIHdpZSBBdXRvcywgQ29tcHV0ZXJzcGllbGUgdW5kCkZlcm5iZWRpZW51bmdlbiB1ZWJlciBkZW4gYmVncmVuenRlbiBIb3Jpem9udCBlaW5lciBGcmF1IGhpbmF1c2dlaGVuLiBJY2gKd3VlcmRlIG1pY2ggbnVyIGxhZWNoZXJsaWNoIG1hY2hlbiwgd2VubiBpY2ggc2llIGJlbnV0emVuIHd1ZXJkZS4gQWxzbyBoYXN0IGR1CmRpZSBWZXJhbnR3b3J0dW5nIGZ1ZXIgYWxsZXMgbWVjaGFuaXNjaGUuCgo3LjEgTWl0IGRlciBBdXNuYWhtZSB2b24gZm9sZ2VuZGUgSGF1c2hhbHRzZ2VyYWV0ZW46IEJ1ZWdlbGVpc2VuLApXYXNjaG1hc2NoaW5lCnVuZCBXYWVzY2hldHJvY2tuZXIsIEhlcmQgdW5kIE9mZW4sIEt1ZWhsc2NocmFuaywgTXVlbGxlaW1lciB1bmQKTXVlbGxlbnRzb3JndW5nLCBTdGF1YnNhdWdlciwgV2luZGVsbiwgVG9pbGV0dGVuLgoKSW0gVm9sbGJlc2l0eiBtZWluZXIgZ2Vpc3RpZ2VuIEtyYWVmdGUgdHJldGUgaWNoIGluIGRpZXNlbiBWZXJ0cmFnIGVpbgoKVW50ZXJzY2hyaWZ0IGRlciBGcmF1CgpBdXMgZGUudGFsay5qb2tlcwoKTm9ubmUsIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWhldmVydHJhZyAoS2FyaXMsIDMwLiBKdWwgMjAwMiwgMTI6MDg6MDcpOgp+IyEgcm49Tm9ubmUgcnQ9MTAyODAyMzUyMCByZz13aXR6ZQp+IyEgdGlkPTEwMjgwMjM1MjAKSG0uLiB3byB3YXIgamV0enQgZGVyIFdpdHo/IDspCkthcmlzLCBQYXNjaGEgYXVzIFBhc3Npb24gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVoZXZlcnRyYWcgKEphbWVzb24sIDMwLiBKdWwgMjAwMiwgMTI6MDk6NTEpOgp+IyEgcm49S2FyaXMgcnQ9MTAyODAyMzY4NyByZz13aXR6ZQp+IyEgdGlkPTEwMjgwMjM1MjAKTm9ubmUgaXN0IGluIHNlaW5lci4uLiBhZWguLi4gaWhyZXIgQmV6aWVodW5nIGRpZSBGcmF1PyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldWVzIGF1cyBkZXIgRnJhdWVuZm9yc2NodW5nIChGZW5kZXIsIDMwLiBKdWwgMjAwMiwgMTg6Mjg6MjEpOgp+IyEgcm49Tm9ubmUgcnQ9MTAyNzY4NjcyOCByZz13aXR6ZQp+IyEgdGlkPTEwMjc2ODY3MjgKPiAuLi4gRGVyIGhlaWxpZ2UgQWxmb25zbyBoYWVsdCBpbiBVZWJlcmVpbnN0aW1tdW5nIG1pdCBkZW0gYWxsZ2VtZWluZW4gVXJ0ZWlsCmRpZSBFaW5mdWVocnVuZyBkZXMgbWFlbm5saWNoZW4gR2xpZWRlcyBpbiBkZW4gTXVuZCBkZXIgRnJhdSBmdWVyIGVpbmUKVG9kc3VlbmRlLCB2b3IgYWxsZW0gZGVzaGFsYiwgd2VpbCBmYXN0IGltbWVyIGRpZSBHZWZhaHIgZGVzIFNhbWVuZXJndXNzZXMKYmVzdGVodC4KCkluIGxhbmdlciB1bmQgbXVlaHNlbGlnZXIgS2xlaW5hcmJlaXQgdW50ZXIgZ2VmYWVocmxpY2hlbiAoaW4gQmV6dWcgYXVmIGRpZQpUb2RzdWVuZGUpIEJlZGluZ3VuZ2VuIHZvbSBoZWlsaWdlbiBBbGZvbnNvIGdldGVzdGV0IHVuZCBub3RpZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVlcyBhdXMgZGVyIEZyYXVlbmZvcnNjaHVuZyAoV2lsbG93LCAzMC4gSnVsIDIwMDIsIDIwOjU2OjAxKToKfiMhIHJuPUZlbmRlciBydD0xMDI4MDQ2NTAxIHJnPXdpdHplCn4jISB0aWQ9MTAyNzY4NjcyOApUamEsIGhhbmRlbHQgc2ljaCBkZXNoYWxiIHdvaGwgdW0gZGVuICJoZWlsaWdlbiIgQWxmb25zby4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1ZXMgYXVzIGRlciBGcmF1ZW5mb3JzY2h1bmcgKFBlcmluLCAzMS4gSnVsIDIwMDIsIDEzOjE5OjU3KToKfiMhIHJuPVdpbGxvdyBydD0xMDI4MDU1MzYxIHJnPXdpdHplCn4jISB0aWQ9MTAyNzY4NjcyOApXYXIgYmVzdGltbXQgZWluIFNjaHJlaWJmZWhsZXI6IEVpZ2VudGxpY2ggaGllc3MgZXIgZGVyIEVpbGlnZSBBbGZvbnNvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW0gc2VjaHN0ZW4gVGFnIChDYWRyYWNoLCAgNC4gQXVnIDIwMDIsIDExOjMyOjMxKToKfiMhIHJuPUdhc3QxIHJ0PTEwMjg0NDQ1OTcgcmc9d2l0emUKfiMhIHRpZD0xMDI4NDQ0NTk3Clp1IEZlaWdlIHVtIHVudGVyIGVjaHRlbSBOYW1lbiB6dSBwb3N0ZW4/CgpDYWQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIdWkgOm8pIChBcG9sbG9uaWEsICA3LiBBdWcgMjAwMiwgMTE6MTY6NDMpOgpEaWUgc2Nob2Vuc3RlbiBBbnR3b3J0ZW4gYXVzIGRlciBSVEwtU2hvdyAiRGVyIFNjaHdhZWNoc3RlIGZsaWVndCIgbWl0ClNvbmphIFppZXRsb3c6CgpGcmFnZTogV2VsY2hlciBTY2hva29yaWVnZWwgdHJhZWd0IGRlbiBnbGVpY2hlbiBOYW1lbiB3aWUgZGVyIHJvZW1pc2NoZQpLcmllZ3Nnb3R0PwpBbnR3b3J0OiBTbmlja2Vycy4KCkZyYWdlOiBBbiB3ZWxjaGVtIFZlcmtlaHJzbWl0dGVsIGJlZmluZGV0IHNpY2ggaW4gZGVyIFJlZ2VsIGVpbmUKR2FsbGlvbnNmaWd1cj8KQW50d29ydDogQW4gZGVyIEFtcGVsLgoKRnJhZ2U6IFdpZSB3aXJkIGRpZSBLaW5kZXJrcmFua2hlaXQgTXVtcHMgaW0gVm9sa3NtdW5kIGF1Y2ggZ2VuYW5udD8KQW50d29ydDogSGFja2VwZXRlci4gKE1haGx6ZWl0Li4uKQoKRnJhZ2U6IFdlbGNoZSBtZW5zY2hsaWNoZW4gRXh0cmVtaXRhZXRlbiBzaW5kIGRlbSBLb3BmIGFtIG5hZWNoc3Rlbj8KQW50d29ydDogRGllIEhhYXJlLgoKRnJhZ2U6IFdlbGNoZXIgS3JpZWcgYmlsZGV0IGRpZSBLdWxpc3NlIHp1IEZyYW5jaXMgRm9yZCBDb3Bwb2xhcyBGaWxtCiJBcG9jYWx5cHNlIE5vdyI/CkFudHdvcnQ6IEtyaWVnIGRlciBTdGVybmUuIChNYXJsb24sIGRpZSBNYWNodCBzZWkgbWl0IERpci4uLikKCkZyYWdlOiBXZWxjaGVzIGhhZXVmaWcgcnVuZGxpY2hlIEtvZXJwZXJ0ZWlsIGlzdCBiZWltIE1lbnNjaGVuIGR1cmNoIGRlbgpIYWxzIG1pdCBkZW0gUnVtcGYgdmVyYnVuZGVuPwpBbnR3b3J0OiBEZXIgQmF1Y2guICh3b2hsIGF1cyBkZW0gaG9obGVuIEtvcGYgZW50c2NoaWVkZW4uLi4pCgpGcmFnZTogV2VsY2hlcyBLbGVpZHVuZ3NzdHVjayBmdXIgRnJhdWVuIHdpcmQgYXVjaCBhbHMgImtsZWluZXMKU2Nod2FyemVzIiBiZXplaWNobmV0PwpBbnR3b3J0OiBTbGlwLiAoc2VociBrbGVpbi4uLikKCkZyYWdlOiBXZW5uIERpZSBJbnRlbGxpZ2VueiBlaW5lciBQZXJzb24gbWl0ICJCb2huZW5zdHJvaCIgdmVyZ2xpY2hlbgp3aXJkLCBpc3QgZGllIFBlcnNvbiBkYW5uIGR1bW0gb2RlciBrbHVnPwpBbnR3b3J0OiBLbHVnLiAoSmF1Li4uKQoKRnJhZ2U6IFdlbGNoZXIgTW9uYXQgbGllZ3Qgendpc2NoZW4gRGV6ZW1iZXIgdW5kIEZlYnJ1YXI/CkFudHdvcnQ6IEp1bGkuCgpGcmFnZTogV2VsY2hlbSBkZXV0c2NoZW4gQnVuZGVzbGFuZCBpc3QgZGVyIFNjaHdhcnp3YWxkIHp1enVvcmRuZW4/CkFudHdvcnQ6IFNjaGxlc3dpZy1Ib2xzdGVpbi4gKFBJU0EgbGFlc3N0IGdydWVzc2VuKQoKRnJhZ2U6IFdpZSBoZWlzc2VuIGRpZSBrdXJ6ZW4gSGFhcmUgYW4gZGVuIEF1c3NlbmthbnRlbiBkZXIgQXVnZW5saWRlcj8KQW50d29ydDogS290bGV0dGVuLgoKRnJhZ2U6IE1pdCB3aWUgdmllbGVuICJNIiBzY2hyZWlidCBzaWNoIGRhcyBXb3J0IEtvbW11bmlrYXRpb24gbmFjaCBkZXIKUmVjaHRzY2hlaWJyZWZvcm0/CkFudHdvcnQ6IFZpZXIuIChQSVNBIGxhZXNzdCBncnVlc3NlbikKCkZyYWdlOiBTZWl0IHdlbGNoZW4gSmFocnplaG50IHdlcmRlbiBpbiBEZXV0c2NobGFuZCBGZXJuc2Voc2VuZHVuZ2VuIGluCkZhcmJlIGF1c2dlc3RyYWhsdD8KQW50d29ydDogU2VpdCAxOTAwLiAoRGV1dHNjaGxhbmQsIExhbmQgZGVyIEVyZmluZGVyLi4uKQoKRnJhZ2U6IFdlbGNoZXMgUHVtcG9yZ2FuIGRlcyBNZW5zY2hlbiBpc3QgaGF1cHRzYWNobGljaCBmdWVyIGRlbgpCbHV0dW1sYXVmIHZlcmFudHdvcnRsaWNoPwpBbnR3b3J0OiBEaWUgTWlsei4gKGRhaGVyIGF1Y2ggIk1pbHppbmZhcmt0IiBvZGVyICJEb3BwZWwtTWlseiIuLi4pCgpGcmFnZTogQnJhdWUsIFdpbXBlciB1bmQgTGlkIHNjaHVldHplbiB3ZWxjaGVzIFNpbm5lc29yZ2FuPwpBbnR3b3J0OiBEYXMgR2VzaWNodC4gKEZyYW5rZW5zdGVpbnMgTW9uc3Rlci4uLikKCkZyYWdlOiBGdXIgZWluZW4gRWlua2F1ZnNidW1tZWwgaW4gRHVlc3NlbGRvcmYgbXVzc3QgZHUgaW4gd2VsY2hlcwpCdW5kZXNsYW5kIHJlaXNlbj8KQW50d29ydDogUmhlaW5sYW5kLVdlc3RmYWxlbi4gKERhIGhpbGZ0IG5pY2h0IG1hbCBlaW4gRmFsa3BsYW4uLi4pCgpGcmFnZTogSW4gZGVyIFNlbmRlcmVpaGUgIlZvcnNpY2h0IEZhbGxlIiB3dXJkZSB2b3IgTmVwcGVybiwgU2NobGVwcGVybgp1bmQgdm9yIHdlbSBub2NoIGdld2FybnQ/CkFudHdvcnQ6IE1hZWhkcmVzY2hlcm4uIChTYXVnZWlsLi4uKQoKRnJhZ2U6IFdlbGNoZW4gZnJhbnpvZXNpc2NoZW4gTmFtZW4gdHJhZ2VuIGRpZSBrbmFldWVsYXJ0aWdlbiBRdWFzdGVuLCBkaWUKenVyIEdydW5kYXVzc3RhdHR1bmcgamVkZXMgQ2hlZXJsZWFkZXJzIGdlaG9lcmVuPwpBbnR3b3J0OiBUYW1wb25zLiAoTWFuIHN0ZWxsZSBzaWNoIGRhcyBtYWwgdm9yLi4uKQoKRnJhZ2U6IFdlbGNoZXMgUGVkYWwgZW50ZmFsbHQgYmVpIGVpbmVtIFdhZ2VuIG1pdCBBdXRvbWF0aWtnZXRyaWViZT8KQW50d29ydDogRGFzIEdhcy4gKERhcyBlcmtsYWVydCBkaWUgdmllbGVuIFNvbm50YWdzZmFocmVyIG1pdCBIdXQgdW5kCktsb3JvbGxlLi4uKQoKRnJhZ2U6IFdpZSB3aXJkIGRlciBUdWVsbHJvY2sgdm9uIEJhbGV0dHRhZW56ZXJpbm5lbiBiZXplaWNobmV0PwpBbnR3b3J0OiBUb2VmZiB0b2VmZgoKRnJhZ2U6IFdhcyByZWltdCBzaWNoIGF1ZiAidGllZiI/CkFudHdvcnQ6IFJ1bnRlci4KCkZyYWdlOiBOZW5uZW4gU2llIGVpbiBnZWxiLXNjaHdhcnplcyBJbnNla3QuQW50d29ydDogRWluZSBTcGlubmUuCk5hZWNoc3RlciBWZXJzdWNoOiBFaW5lIEdpcmFmZmUuIChJY2gga2FubiBuaWNodCBtZWhyLi4uKQoKRnJhZ2U6IE5lbm5lbiBTaWUgZXR3YXMsIGRhcyBlaW5lbiBTY2huYWJlbCBoYXQuCkFudHdvcnQ6IEhlcmluZy4gKFRzY2hlcm5vYnlsLi4uPykKCkZyYWdlOiBOZW5uZW4gU2llIGVpbiBUaWVyLCBkYXMgU3RhY2hlbG4gaGF0LgpBbnR3b3J0OiBFaW4gU3RhY2hlbGJhZXIuCgpGcmFnZTogTmVubmVuIFNpZSBlaW5lIENyZW1lc3VwcGUuCkFudHdvcnQ6IE9jaHNlbmNyZW1lc3VwcGUuCgpBcG8qCnNpY2ggZGllIFRyYWVuZW4gYXVzIGRlbiBBdWdlbiB3aXNjaGVuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIFdpdHogYXVzIGRlbSBOb3JsYW5kLi4uIChTYXJrb24sICA5LiBBdWcgMjAwMiwgMDE6MDc6MzUpOgpad2VpIERyYWNoZW5yZWl0ZXIgc2luZCBnbGVpY2h6ZWl0aWcgenVtIFN0dXJ6Zmx1ZyBhYmdldGF1Y2h0LiBSdWZ0IGRlciBlaW5lCm5hY2ggZWluZXIgV2VpbGU6IFNlaHQgbnVyLCBkaWUKTWVuc2NoZW4gZG9ydCB1bnRlbiBzZWhlbiBhdXMgd2llIEFtZWlzZW4uIE1laW50IGRlciBhbmRlcmUgZXJzY2hyZWNrdDoKTWVuc2NoLCBob2NoISBEYXMgc2luZCBBbWVpc2VuISAKCgpTYXJrb24gc2NobWVpc3N0IHNpY2ggd2VjaC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hvY29sYXRlIENoaXAgQ29va2llcyBpbiBSdWJyaWsgS29jaHJlemVwdGUgKFJvY2h1cywgMTAuIEF1ZyAyMDAyLCAxNjoyMDoxNCk6CkhtbSwgZ2Vob2VydCBlaWdlbnRsaWNoIG5hY2ggS29jaHJlemVwdGUsIGFiZXIgaWNoCmdsYXViZSBlaW4gVmVyd2VpcyB2b24gaGllciBpc3QgYW5nZWJyYWNodCA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLi4uIChBcmssIDE1LiBBdWcgMjAwMiwgMTU6Mzc6MjUpOgpFaW4gTWFubiBrb21tdCBnYW56IGdlc2NoYWZmdCB2b24gZGVyIEFyYmVpdCBuYWNoIEhhdXNlIHVuZCBmYWVsbHQKZXJzY2hvZXBmdCBpbiBzZWluZW4gU2Vzc2VsIHVuZAogIHNhZ3Q6IlNjaGF0emksIGljaCBoYXR0ZSBoZXV0ZSBzbyBlaW5lbiBhbnN0cmVuZ2VuZGVuIFRhZywgd2lsbHN0IGR1IG1pcgpuaWNodCBzY2huZWxsIGVpbmVuIGJsYXNlbj8iCiAgU2FndCBTaWU6Ik1laW4gVGFnIHdhciBhdWNoIGFuc3RyZW5nZW5kLCB3aWNocyBpbiBlaW4gR2xhcyBpY2ggdHJpbmsgZXMKbW9yZ2VuLiIKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdWVyIG11aGVyIChNdWFkaWIsIDE1LiBBdWcgMjAwMiwgMTg6NDI6MzEpOgpodHRwOi8vd3d3Lm5pY2h0bHVzdGlnLmRlL2h0bWwvMDEwOTAyLmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBmdWVyIG11aGVyIChBcmssIDE1LiBBdWcgMjAwMiwgMTk6MTY6NDEpOgp+IyEgcm49TXVhZGliIHJ0PTEwMjk0Mjk3NTEgcmc9d2l0emUKfiMhIHRpZD0xMDI5NDI5NzUxCkVoZXIgZGFzOiBodHRwOi8vd3d3Lm5pY2h0bHVzdGlnLmRlL2h0bWwvMDEwNjI0Lmh0bWwKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGZ1ZXIgbXVoZXIgKFRyb3ksIDE1LiBBdWcgMjAwMiwgMTk6NTU6MjkpOgp+IyEgcm49QXJrIHJ0PTEwMjk0MzE4MDEgcmc9d2l0emUKfiMhIHRpZD0xMDI5NDI5NzUxCktlbm50IGplbWFuZCBUb20gTGVocmVyIChBbWVyaWthbmVyKT8gRGVyIGhhdCBtYWwgZWluIExpZWQgZ2VzY2hyaWViZW4sIGRhcwoiQ293cyB3aXRoIEd1bnMiIGhlaXNzdCA6LSkgRGFzIE1QMyBoYWIgaWNoIGZ1ZXIgSW50ZXJlc3NpZXJ0ZSBkYSAoNU1CKQoKTmFlaGVyZXMgdW50ZXIKaHR0cDovL3d3dy5jb3dzd2l0aGd1bnMuY29tIChTZWl0ZSB2b24gRGFuYSBMeW9ucykKClRyb3kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGZ1ZXIgbXVoZXIgKEdyaW1tYm9ybiwgMTUuIEF1ZyAyMDAyLCAyMDowMjowNCk6Cn4jISBybj1Ucm95IHJ0PTEwMjk0MzQxMjkgcmc9d2l0emUKfiMhIHRpZD0xMDI5NDI5NzUxCkRhbm4gc2NoaWNrIG1hbCBydWViZXIsIGljaCBkYWNodGUgZWlnZW50bGljaCBpY2ggaGFldHRlIHNlaW5lIGtvbXBsZXR0ZW4KV2Vya2UuLi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV0ZGlnZXN0IChWYW5pb24sIDE2LiBBdWcgMjAwMiwgMTU6MzY6MTgpOgpBdWYncyBpbnRlcmVzc2FudGVzdGUgZ2VrdWVyenQ6CkRhIGZsbHQgbWlyIGVpbiBCZWthbm50ZXIgZWluLCBkZXIgbWFsIGluIGVpbmVyIFBpenplcmlhIGZvbGdlbmRlIApEcmVpc3RpZ2tlaXQgZ2VicmFjaHQgaGF0OiBTY2huZWlkaTogTGllZmVybiBzaWUgYXVjaCBuYWNoIEhlcm5lIGF1cz8gClBpenphYmNrZXI6IEFiZXIgc2ljaGVyLiBTY2huZWlkaTogS29zdCBkYXMgd2FzIGV4dHJhPyBQaXp6YWJja2VyOiAKV2VubiBzaWUgaW0gV2VydCB2b24gMTUgRE0gYmVzdGVsbGVuIG5pY2h0LiBTY2huZWlkaTogR3V0LCBkYW5uIG5laG0gaWNoIAplaW5lIGdyb3NzZSBUb25vIGUgY2lwb2xhIHVuZCAnbmUgQ29sYS4gRGllIENvbGEga25uZW4gc2llIG1pciBzb2ZvcnQgCmdlYmVuIHVuZCB3ZW5uIGRpZSBQaXp6YSBmZXJ0aWcgaXN0IGtubmVuIHNpZSBtaWNoIGRhbWl0IG5hY2ggSGF1c2UgCmJyaW5nZW4uCkRlciBQaXp6YWJja2VyIGhhdCB6d2FyIG5pY2h0IHNjaGxlY2h0IGdlc3RhdW50LCBhYmVyIGhhdCdzIGdlbWFjaHQgOi0pCgpWKiwgaGF0dGUga2VpbmUgTHVzdCwgVW1sYXV0ZSBwZXIgSGFuZCB6dSBlbnRmZXJuZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmF1cyBkZS50YWxrLmpva2VzIChOb25uZSwgMjEuIEF1ZyAyMDAyLCAxMDo1OTowOSk6CkFscyBCb3JpcyBCZWNrZXIgV2ltYmxlZG9uIGdld2FubiwgcmFubnRlIGplZGVyIERldXRzY2hlIGluIGVpbiAKU3BvcnRnZXNjaGFlZnQgdW5kIGthdWZ0ZSBzaWNoIGVpbiBUZW5uaXNyYWNrZXQuCgpBbHMgSmFuIFVsbHJpY2ggZGllIFRvdXIgZGUgRnJhbmNlIGdld2Fubiwga2F1ZnRlIHNpY2ggamVkZXIgRGV1dHNjaGUgCmVpbiBSZW5ucmFkLgoKRGFzIGdlaHQgamEgbm9jaCBhbGxlcywgYWJlciBqZXR6dCB3aXJkIG1hc3Nsb3MgdWViZXJ0cmllYmVuLi4uIC4uLm51ciAKd2VpbCBGcmFuemlza2Egdm9uIEFsbXNpY2sgaWhyZSA1IEdvbGRtZWRhaWxsZSBpbSBTY2h3aW1tZW4gZ2V3b25uZW4KaGF0LCBtdXNzIG1hbiBkb2NoIG5pY2h0IGdsZWljaCBoYWxiIERldXRzY2hsYW5kIHVlYmVyZmx1dGVuISEhIAoKTm9ubmUsIHNpY2ggaW1tZXIgbm9jaCBrcmluZ2VsbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZTSyAoTm9ubmUsIDI4LiBBdWcgMjAwMiwgMTQ6Mjg6MjQpOgpBdXMgZGUudGFsay5qb2tlczoKCkRpZSB3YWhyZSBCZWRldXR1bmcgZGVyIEFsdGVyc2JlZ3Jlbnp1bmdlbiB2b24KRmlsbWVuIGlzdDogYWIgMTIgLSBkZXIgSGVsZCBiZWtvbW10IGRhcwpNYWVkY2hlbi5hYiAxNiAtIGRlciBCcnV0YWxlIGJla29tbXQgZGFzIE1hZWRjaGVuLgphYiAxOCAtIGplZGVyIGJla29tbXQgZGFzIE1hZWRjaGVuLgoKTm9ubmUsIGxhY2hlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRlNLIChHcmltbWJvcm4sIDI4LiBBdWcgMjAwMiwgMTQ6NTc6MDUpOgp+IyEgcm49Tm9ubmUgcnQ9MTAzMDUzNzcwNCByZz13aXR6ZQp+IyEgdGlkPTEwMzA1Mzc3MDQKVW5kIGF1cyBkZW0gSGVpc2UgVXNlcmZvcnVtLCBlaW5lIGRlciBEQVUtU2FtbWVsc3RlbGxlbiBkZXIgUmVwdWJsaWs6CgoiSWNoIGJpbiBhYmVyIGF1Y2ggbmljaHQgZGVyIHR5cGlzY2hlIFdpbmRvd3MtVXNlciwgc29uZGVybiB3dWVyZGUKbWljaCB3ZWdlbiBtZWluZXIgVmlzdWFsLUJhc2ljLUtlbm50bmlzc2UgdW5kIG1laW5lciBQcm9mZXNzaW9uIGFscwpXZWJkZXNpZ25lciBlaGVyIGFscyBQb3dlcnVzZXIgZWluc2NoYWV0emVuISIKCkdyaW1tYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGU0sgKE11cGZlbCwgMjguIEF1ZyAyMDAyLCAxOToyMjo1OCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAzMDUzOTQyNSByZz13aXR6ZQp+IyEgdGlkPTEwMzA1Mzc3MDQKSm91IGRlciBIZWlzZS1UaWNrZXIgZXJyZWljaHQgYW4gZ3V0ZW4gVGFnZW4gZmFzdCBNZWdhc2NobWFycm4tTml2ZWF1IDspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRlNLIChNdXBmZWwsIDI4LiBBdWcgMjAwMiwgMTk6MjM6MTQpOgp+IyEgcm49TXVwZmVsIHJ0PTEwMzA1NTUzNzggcmc9d2l0emUKfiMhIHRpZD0xMDMwNTM3NzA0CkFlaCBhbHNvIGRhcyBGb3J1bSA7KQoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlbm4gU3RvaWJlciBLYW56bGVyIHdpcmQuLi4uIChHcmltbWJvcm4sIDI5LiBBdWcgMjAwMiwgMTM6MTI6MDcpOgp+IyEgb249U291IG90PTEwMzA2MTg2ODEgb2c9YWxsZ2VtZWluZXMKLi4ud2lyZCBEYW5rIGRlcyBlaW5nZXNjaHJhZW5rdGUgVm9rYWJ1bGFycyBkZXIgU3VlZGxhZW5kZXIgZGllIFBvbGl0c3ByYWNoZQp1ZWJlcnNpY2h0bGljaGVyLCB3ZW5uIGF1Y2ggbmljaHQgdmVyc3RhZW5kbGljaGVyLi4uCi4uLmVpcmQgZGFzIEJpbGQsIGRhcyBkaWUgQW1lcmlrYW5lciB2b24gZGVuIERldXRzY2hlbiBoYWJlbiwgZW5kbGljaCB3aWVkZXIKc3RpbW1lbi4uLgouLi51bmQgZGllIEF1ZmVuaGFsdHNnZW5laG1pZ3VuZyBmdWVyIEF1c2xhZW5kZXIgd2lyZCBudXIgdW0gamV3ZWlscyBlaW5lClN0dW5kZSB2ZXJsYWVuZ2VydCB3ZXJkZW4hCgpRdWVsbGUgTUFELU1hZ2F6aW5lIDExLjAyLiAoRGEgc3RlaGVuIG5vY2ggbWVociBTYWNoZW4sIGFiZXIgaWNoIGJpbiB6dSBmYXVsKQoKU291CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBGU0sgKEFudGhlYSwgIDMuIFNlcCAyMDAyLCAwOTo1Njo0OCk6Cn4jISBybj1NdXBmZWwgcnQ9MTAzMDU1NTM5NCByZz13aXR6ZQp+IyEgdGlkPTEwMzA1Mzc3MDQKWWVwLiBBYmVyIG1pdCBMaW51eCB3YWVyZSBkYXMgbmljaHQgcGFzc2llcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGU0sgKEdyaW1tYm9ybiwgIDMuIFNlcCAyMDAyLCAxMDoxNDo1MCk6Cn4jISBybj1BbnRoZWEgcnQ9MTAzMTAzOTgwOCByZz13aXR6ZQp+IyEgdGlkPTEwMzA1Mzc3MDQKRHUgaGFzdCBkYXMgIkVyc3RlciEiIHZlcmdlc3Nlbi4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWml0YXRlIGF1cyBkZW0gRmVybnNoZW4gKE5vbm5lLCAgMy4gU2VwIDIwMDIsIDExOjU0OjMxKToKPiAiRGVyIFBpbG90IHdhciBzb2ZvcnQgdG90LiBWZXJsZXR6dCB3dXJkZSBiZWkgZGVtIFVuZ2x1ZWNrIGplZG9jaCBuaWVtYW5kLiIKPiAoR2FiaSBCYXVlciBpbiBkZW4gIlRhZ2VzdGhlbWVuIi9BUkQpCj4KPiAiRGllIE1lZGFpbGxlbiBzaW5kIHZlcmdlYmVuLCB3ZXIgc2llIGJla29tbXQsIGlzdCBvZmZlbiIgICAoRGlldGVyCj4gS29sbGFjbC9aREYpCj4KPiBEaWV0ZXIgVGhvbWFzIEhlY2sgenUgQW5nZWxpa2EgTWlsc3RlcjogIlNpZSBzaW5kIGVpbmUgd3VuZGVyYmFyZSBGcmF1ISIKPiBTaWU6ICJEYW5rZSwgZ2xlaWNoZmFsbHMhIiAgICAgKCJTaG93IFBhbGFzdCIvWkRGKQo+Cj4gIkRyZWkgTWFlbm5lciBhbGxlaW4genUgSGF1cyAtIGRhcyBrbGFwcHQgZmFzdCBiZXNzZXIgYWxzIG9obmUgRnJhdSIKPiAoRWhlbWFubiB2b24gUml0YSBGb3JzdCBpbiAiRGllIEVybHNrb2VuaWdpbiIvWkRGKQo+Cj4gIk1laW4gUmluZyBpc3QgZWluIFVuaWthdCAtIG1laW5lIEZyYXUgaGF0IGdlbmF1IGRlbiBnbGVpY2hlbiIKPiAoT2xpdmVyIEdlaXNzZW4gaW4gIkV4Y2x1c2l2IC0gV2Vla2VuZCIvUlRMKQo+Cj4gIkplIGxhZW5nZXIgZGFzIFNwaWVsIGRhdWVydCwgZGVzdG8gd2VuaWdlciBaZWl0IGJsZWlidCIgIChNYXJjZWwKPiBSZWlmL1ByZW1pZXJlKQo+Cj4gIlNpZSBzYWdlbiwgZGVyIFNjaGxhbmdlbmJpc3Mgc2VpIHRvZWRsaWNoLiBXaWUgdG9lZGxpY2g/IiAgKEp1ZXJnZW4KPiBGbGllZ2UvQVJEKQo+Cj4gIkplZGVyIFNpZWcsIGRlbiBtYW4gdmVybGllcnQsIGlzdCBlaW5mYWNoIGZ1cmNodGJhciIgICAoQ2hyaXN0aWFuCj4gRGFubmVyL1JUTCkKPgo+ICJJbSBuYWVjaHN0ZW4gU3BpZWwgaGFiZW4gd2lyIGtlaW5lIENoYW5jZSwgYWJlciBkaWUgd2VyZGVuIHdpciBudXR6ZW4iCj4gKFJlaW5ob2xkIEZhbnogaW4gIkRvcHBlbHBhc3MiL0RTRikKPgo+ICJXaXIgaGFiZW4gamV0enQga2xhcmUgVmVyaGFlbHRuaXNzZSwgYWJlciB3aXIgd2lzc2VuIG5vY2ggbmljaHQgd2VsY2hlIgo+IChMb3RoYXIgU3BhZXRoIGluICJTcGFldGggYW0gQWJlbmQiL24tdHYpCj4KPiAiQWxsZSB6ZWhuIEphaHJlIHdlcmRlbiBkaWUgTWVuc2NoZW4gZWluIEphaHIgYWVsdGVyIiAgKEhhbnMgRWljaGVsIGJlaQo+ICJTYWJpbmUgQ2hyaXN0aWFuc2VuIi9BUkQpCj4KPiAiRWlnZW50bGljaCBpc3QgZXMgZWdhbCwgd2VsY2hlIEZhcmJlIGVpbiBGZXJyYXJpIGhhdCAtIEhhdXB0c2FjaGUsIGVyIGlzdAo+IHJvdCEiCj4gKEdlaG9lcnQgaW4gIkV4Y2x1c2l2LVdlZWtlbmQiL1JUTCkKPgo+ICJEZWxwaGluZSBzaW5kIHdpbGRlIFRpZXJlLiBTaWUgZ2Vob2VyZW4gaW4gZGVuIE96ZWFuLiBVbmQgZG9ydCBoZXJyc2NodAo+IG5vY2ggaW1tZXIgZGFzIEdlc2V0eiBkZXMgRHNjaHVuZ2VscyIgICAoR2Vob2VydCBpbiAiQnJpc2FudCIvQVJEKQo+Cj4gIkVpbmVzIFRhZ2VzIHdhY2h0IG1hbiBhdWYgdW5kIGlzdCB0b3QiICAgICAoV29sZiBTY2huZWlkZXIgaW0KPiAiTmFjaHRzdHVkaW8iL1pERikKPgo+ICJEaWUgU29ubmVuZmluc3Rlcm5pcyBicmluZ3QgRGluZ2UgYW5zIExpY2h0LCBkaWUgc29uc3QgdmVyYm9yZ2VuIGJsZWliZW4iCj4gKEdlaG9lcnQgaW4gIlplaXQgaW0gQmlsZCIvT1JGMikKPgo+ICJFcyBrYW5uIGluIGRpZSBIb3NlIGdlaGVuLCBhYmVyIGVzIGthbm4gbmF0dWVybGljaCBhdWNoIHNjaGllZmdlaGVuIgo+IChDaHJpc3RpYW4gRGFubmVyIGJlaW0gIkdQIHZvbiBPZXN0ZXJyZWljaCIvUlRMKQo+Cj4gIkVzIHdhciBkZXIgMTkuIFRvdGUuIEF1Y2ggZXIgaGF0IG5pY2h0IHVlYmVybGVidCIgIChHZWhvZXJ0IGluCj4gIkJyaXNhbnQiL0FSRCkKPgo+ICJJbiBkaWVzZW0gSGF1cyByaWNodGV0ZSBlciB6dW5hZWNoc3Qgc2ljaCBzZWxic3QgdW5kIGRhbm4gc2VpbmUgRnJhdSBoaW4iCj4KPiAoR2Vob2VydCBiZWkgIkd1dGVuIEFiZW5kIi9SVEwpCj4KPiAiTWVpbmUgVG9jaHRlciBpc3QgamV0enQgZHJlaSBNb25hdGUgdW5kIHZpZXIgV29jaGVuIGFsdCIKPiAoTmFkamEgQXVlcm1hbm4gaW4gZGVyICJIYXJhbGQgU2NobWlkdCBTaG93Ii9TQVQuMSkKPgo+ICJJY2ggaGFiZSBlcyBudXIgYXVzIGRlbiBBdWdlbndpbmtlbG4gZ2Vob2VydCIgICAgKEdlaG9lcnQgaW4KPiAiRXhwbG9zaXYiL1JUTCkKPgo+ICJNYW4gc2llaHQgc2llIG5pY2h0LCBtYW4gaG9lcnQgc2llIG51ciAtIGRpZSBsYXV0bG9zZW4gSmFlZ2VyIGRlciBOYWNodCIKPiAoS29tbWVudGFyIGluICJGcnVlaC1TdHVlY2sgbWl0IFRpZXJlbiIvU1czKQo+Cj4gIkRlbSBCYWJ5IDIwMDAgd2lua2VuIFdlcmJldmVydHJhZWdlIHVuZCBmcmVpZSBXaW5kZWxuIGJpcyBpbnMgaG9oZSBBbHRlciIKPiAoImhldXRlLWpvdXJuYWwiL1pERikKCmF1cyBkZS50YWxrLmpva2VzCgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBuZXVlIFBmYXJyZXIgKFJhdmVudGhyb25lLCAgNC4gU2VwIDIwMDIsIDE1OjE4OjIzKToKCgpEZXIgbmV1ZSBQZmFycmVyIHdhciBzbyBuZXJ2b2VzLCBkYXNzIGVyIGJlaSBzZWluZXIgZXJzdGVuIE1lc3NlIGthdW0gZWluIApXb3J0IHNwcmVjaGVuIGtvbm50ZS4gU28gZnJhZ3RlIGVyIGJlaSBzZWluZW0gQmlzY2hvZiB1bSBSYXQgbmFjaC4gRGllc2VyIAplbXBmYWhsIGlobSwgdm9yIGRlciBuYWVjaHN0ZW4gTWVzc2UgendlaSBUcm9lcGZjaGVuIFdvZGthIGluIGVpbiBHbGFzIApXYXNzZXIgenUgZ2ViZW4uIFdlbm4gZXIgZGFubiBkaWVzZXMgenUgc2ljaCBuZWhtZSwgc2VpIHNlaW5lIE5lcnZvc2l0YWV0IAp3aWUgd2VnZ2VibGFzZW4uIEdlc2FndCwgZ2V0YW4hIERlciBQZmFycmVyIGZ1ZWhsdGUgc2ljaCBiZWkgZGVyIG5hZWNoc3RlbiAKaGVpbGlnZW4gTWVzc2Ugc28gbG9ja2VyIHVuZCBydWhpZyB3aWUgbm9jaCBuaWUuLi4gCiAKQWxzIGVyIGFiZXIgaW4gZGllIFNha3Jpc3RlaSB6dXJ1ZWNra2VocnRlLCBmYW5kIGVyIGVpbmUgTmFjaHJpY2h0IHZvbSAKQmlzY2hvZiB2b3I6IAogCkdlc2NoYWV0enRlciBQZmFycmVyIAogCkRhcyB3YXIgc2Nob24gbWFsIGJlc3NlciBhbHMgbGV0enRlcyBNYWwuIERlbm5vY2ggc29sbHRlbiBTaWUgc2ljaCBlaW5pZ2UgCkFud2Vpc3VuZ2VuIGZ1ZXIgZGllIG5hZWNoc3RlIE1lc3NlIHp1IEhlcnplbiBuZWhtZW46IAotIERhcyBuYWVjaHN0ZSBNYWwgZ2ViZW4gU2llIGJpdHRlIGVpbmlnZSBUcm9lcGZjaGVuIFdvZGthIGlucyBXYXNzZXIgdW5kIAogIG5pY2h0IHVtZ2VrZWhydC4gCi0gRXMgaXN0IG5pY2h0IG5vZXRpZywgWml0cm9uZW4gYW4gZGVuIEtlbGNocmFuZCB6dSBzZXR6ZW4uIAotIERlciBLYXN0ZW4gbmViZW4gZGVtIEFsdGFyIGlzdCBkZXIgQmVpY2h0c3R1aGwgdW5kIG5pY2h0IGRpZSBUb2lsZXR0ZS4gCi0gU2llIHNvbGx0ZW4gc2ljaCBuaWNodCBhdWYgZGllIFN0YXR1ZSBkZXIgSnVuZ2ZyYXUgYXVmc3R1ZXR6ZW4uIE5vY2ggCiAgd2VuaWdlciBzb2xsdGVuIFNpZSBkaWVzZSB1bWFybWVuIG9kZXIgc29nYXIga3Vlc3NlbiEgCi0gRGllIEdlYm90ZSBzaW5kIGRlcmVuIDEwIHVuZCBuaWNodCAxMi4gCi0gRXMgd2FyZW4gMTIgQXBvc3RlbCB1bmQgbmljaHQgNy4gVW5kIGtlaW5lciB3YXIgZWluIFp3ZXJnLiAKLSBKZXN1cyB1bmQgZGllIEFwb3N0ZWwgYmVuZW5uZW4gd2lyIG5pY2h0IG1pdCAiSi5DLiB1bmQgZnJpZW5kcyIuIAotIERhdmlkIGJlc2llZ3RlIEdvbGlhdGggbWl0IGVpbmVtIFN0ZWluIGR1cmNoIGRpZSBTdGVpbnNjaGxldWRlciwgbmljaHQgCiAgbWl0IGVpbmVtIEJhc2ViYWxsc2NobGFlZ2VyLiAKLSBXaXIgYmVuZW5uZW4gSnVkYXMgbmljaHQgbWl0ICJIdXJlbnNvaG4iLiAKLSBEZXIgUGFwc3Qgd2VkZXIgIklsIFBhZHJpbm8iIG5vY2ggIkNhcG8iIGdlbmFubnQuIAotIEJpbiBMYWRlbiBoYXQgbmljaHRzIG1pdCBkZW0gVG9kIHZvbiBKZXN1cyB6dSB0dW4uIAotIERhcyBXZWlod2Fzc2VyIHdpcmQgYXVzc2NobGllc3NsaWNoIHp1bSBTZWduZW4gZ2VicmF1Y2h0IHVuZCBuaWNodCB1bSBkZW4gCiAgTmFja2VuIHp1IGVyZnJpc2NoZW4uIAotIERpZSBIb3N0aWUgc2luZCBrZWluZSBBcHBldGl0aGFlcHBjaGVuIHp1bSBXZWluLCBzb25kZXJuIGZ1ZXIgZGllIAogIEdsYWV1YmlnZW4uIAotIE5pZW1hbHMgc29sbHRlbiBzaWUgc2ljaCB6dW0gQmV0ZW4gYXVmIGRpZSBTdHVmZW4gdm9yIGRlbSBBbHRhciBzZXR6dGVuLiAKLSBEaWUgQmliZWwgYmVudXR6ZW4gd2lyIG5pY2h0IGFscyBGbGllZ2Vua2xhdHNjaGUgCi0gRGllIEF1ZmZvcmRlcnVuZyB6dW0gVGFueiBpc3QgbmljaHQgc2NobGVjaHQuIERlbm5vY2ggc29sbHRlbiBzaWUgYXVmIAogIHdlaXRlcmUgUG9sb25haXNlIGR1cmNocyBLaXJjaGVuc2NoaWZmIHZlcnppY2h0ZW4uIAotIFdpY2h0aWc6IEplbmVuIGluIGRlciBFY2tlIGRlcyBDaG9yZXMsIGRlbiBTaWUgU2Nod3VsZW4sIGphIHNvZ2FyIGFsdGVuIAogIFNhY2sgaW0gUm9jayBiZXplaWNobmV0IGhhYmVuLCB3YXIgaWNoISAKCkhvZmZlIHNlaHIsIGRhc3MgZGllc2UgRmVobGVyIG5hZWNoc3RlbiBTb25udGFnIG5pY2h0IG1laHIgdm9ya29tbWVuIAp3ZXJkZW4uLi4gCgpIZXJ6bGljaHN0IApJaHIgQmlzY2hvZiAKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoiRGFzIEJpZWxlZmVsZCIgKGF1cyBkZW0gTmV0ZGlnZXN0KSAoTXVwZmVsLCAgNC4gU2VwIDIwMDIsIDIzOjQ2OjU5KToKSWNoIHBvc3R1bGllcmUgZGllIEV4aXN0ZW56IGVpbmVzIGluIGFsbGVuIFB1bmt0ZW4KZGVyIFJhdW16ZWl0IHp1bWluZGVzdCBzY2h3YWNoIHZvcmhhbmRlbmVuIEJpZWxlZmVsZGVzLgpEaWVzZXMgdmVyaGFlbHQgc2ljaCBpbiBzZWluZW4gRWlnZW5zY2hhZnRlbiB3aWUgZWluCnNwZXppZWxsZXMgUXVhbnRlbmZlbGQuIFdvIGVzIHZvbiB3ZW0gdW5kIHdhcnVtIGVtaXR0aWVydAp3aXJkLCBpc3Qgbm9jaCB1bmtsYXIuICdTaWUnIHN0ZWNrZW4gamVkZW5mYWxscyBuaWNodApfZGFoaW50ZXJfLCBzb25kZXJuIGxlZGlnbGljaCBfZGFyaW5fLgpEYXMgQmllbGVmZWxkIG5laWd0IGFuIGJlc3RpbW10ZW4gUmF1bXplaXRrb29yZGluYXRlbiBkYXp1LApzaWNoIHp1IG1hbmlmZXN0aWVyZW4sIEtub3RlbiB1bmQgV3VlbHN0ZSB6dSBiaWxkZW4sIGRpZQp1bnRlciBVbXN0YWVuZGVuIHdpZSBNYXRlcmllIGltIGhlcmtvZW1tbGljaGVuIFNpbm5lCndpcmtlbiBrb2VubmVuLCBkZXN3ZWdlbiBhYmVyIG5vY2ggbGFuZ2UgbmljaHQgcmVhbGVyCnNpbmQgYWxzIER1ZmZ5IER1Y2sgb2RlciBHZW9yZ2UgJ0RhYmJlbGp1aCcgQnVzaC4KCkVpbmUgYmVzb25kZXJzIHN0YXJrZSBLb256ZW50cmF0aW9uIGRpZXNlcyBGZWxkZXMgZmluZGV0CnNpY2ggYmVpIGRlbiBLb29yZGluYXRlbiA1MiAwMScgMTcnJyBOIHVuZCA4IDMyJyAwNycnRSwKc3RvbHplIDExMiBtIHVlYmVyIGRlbSBNZWVyZXNzcGllZ2VsLiBHcnVuZCBkYWZ1ZXIgaXN0CmxhdGVudGUgTGFuZ2V3ZWlsZSBpbSB1bWdlYmVuZGVuIFF1YW50ZW5mbHVzcywgd2FzIHNpY2gga25hcHAKYXVzc2VyaGFsYiBkaWVzZXMgQmVyZWljaGVzIGFuIGR1ZW5uIGJlc2llZGVsdGVuIHVuZApwYXJ0aWt1bGFlciB2b24gQmF1ZXJuaG9lZmVuIGJlZGVja3RlbiBFaW5vZWRlbiBlaW5kcnVja3N2b2xsCnplaWd0LgoKRGVyIFJlYWxpdGFldHMtIHVuZCBQb3RlbnRpYWxnZWhhbHQgZGVzIEJpZWxmZWxkZXMgbmltbXQKd2llIGJlaSBhbmRlcmVuIEZlbGRlcm4gYXVjaCBtaXQgZGVyIEVudGZlcm51bmcgaW1tZXIKc3RhZXJrZXIgYWIuCkF1cyBkaWVzZW0gR3J1bmRlIGthbm4gbWFuIHNpY2ggaW0gSW5uZXJlbiBkZXMgRmVsZGVzCmJlZmluZGVuIHVuZCBlaW5lIG1lcmt3dWVyZGlnIGFubXV0ZW5kZSBTdGFkdCB3YWhybmVobWVuLApkaWUgbWFuIHUuVS4gc29nYXIgYmV0cmV0ZW4gb2RlciBiZWZhaHJlbiBrYW5uIHVuZCBzb2dhcgp2ZXJ3YW5kdGUgZG9ydCBoYWJlbiBrYW5uLCBtaXQgZGVyIEVudGZlcm51bmcgdmVybGllcnQgZGllc2UKamVkb2NoIGlocmUgU3Vic3RhbnogdW5kIHZlcnNjaHdpbmRldCBhdXMgZGVyIHJlbGF0aXZlbi4KUmF1bXplaXQuIEVzIGlzdCB3aWUgbWl0IFF1YW50ZW50ZWlsZW4uIE1hbiBrYW5uIG1pdApob2hlciBXYWhyc2NoZWlubGljaGtlaXQgc2FnZW4sIGRhc3Mgc2ljaCBkYXMgQmllbGZlbGQgYmVpCm9iaWdlbiBLb29yZGluYXRlbiBzdGFyayB2ZXJkaWNodGV0IHVuZCBkYXNzIG1hbiBkb3J0IGVpbmUKU3RhZHQgd2Focnp1bmVobWVuIGdsYXVidCwgZGVzd2VnZW4gaXN0IHNpZSBhYmVyIG5vY2gKbGFuZ2UgbmljaHQgYWJzb2x1dCB2b3JoYW5kZW4uCgoqZyoKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXMgc29nZW5hbm50ZSA1LUxpbW9uZW4tRXhwZXJpbWVudCAoQW50aGVhLCAgNS4gU2VwIDIwMDIsIDE2OjMzOjU3KToKWnV0YXRlbjoKCiAgICAgendlaSBQZnVuZCBTY2hhYmVtZXR0IAogICAgIGRyZWkgUmVpaGVuaGFldXNlciwgZGllIElBLUtvbmdydWVueiBiZXNpdHplbiAoSUE9SW5BbGxlbSkgdW5kIG5haHRsb3MgCiAgICAgYW5laW5hbmRlciBpbiBlaW5lciBSZWloZSBzdGVoZW4gCiAgICAgZWluIFp3ZXJnIChibGluZCkgCiAgICAgZWluZSBSb2xsZSBOYWVoZ2FybiAoc2Nod2FyeikgCiAgICAgZWluIFNjaGx1ZXNzZWxidW5kIChyb3QpIAoKTWFuIGxlZ2UgZGllIFJvbGxlIE5hZWhnYXJuIGluIGRhcyByZWNodGUgSGF1cyAodm9uIGRlbiBIYXVzZWluZ2FlbmdlbiBoZXIKZ2VzZWhlbikuIERhbm4gbmVobWUgbWFuIGRlbiBad2VyZywgc3RlbGxlIGlobiBpbiBkYXMgbWl0dGxlcmUgSGF1cyAodm9uIGRlbgpIYXVzZWluZ2FlbmdlbiBoZXIgZ2VzZWhlbikgdW5kIGdlYmUgaWhtIGluIGRpZXNlbSBiaXMgenUgZHJlaXplaG4gU3R1bmRlbgpBdXNsYXVmLCB3b2JlaSBuaWNodCB2ZXJnZXNzZW4gd2VyZGVuIGRhcmYsIGRpZSBUdWVyZW4gdW5kIEZlbnN0ZXIgYWxsZXNhbXQKYWJ6dXNjaGxpZXNzZW4gdW5kIGRpZSBTY2hsdWVzc2VsIGFuIGRlbSBTY2hsdWVzc2VsYnVuZCAocm90KSBiZWZlc3RpZ3QgZHVyY2gKZGVuIEJyaWVmc2NobGl0eiBpbiBkYXMgbGlua2UgSGF1cyAodm9uIGRlbiBIYXVzZWluZ2FlbmdlbiBoZXIgZ2VzZWhlbikgenUKd2VyZmVuLiAKCk5hY2ggVmVyc3RyZWljaGVuIGRlciBaZWl0IHdpcmQgZGVyIFp3ZXJnIG5pY2h0IGJlbWVya3QgaGFiZW4sIGRhc3MgCgogICAxLmltIEhhdXMgcmVjaHRzIG5lYmVuYW4gKHZvbiBkZW4gSGF1c2VpbmdhZW5nZW4gaGVyIGdlc2VoZW4pIGVpbmUgUm9sbGUKTmFlaGdhcm4gKHNjaHdhcnopIGxpZWd0IHVuZCAKICAgMi5saW5rcyB1bmQgcmVjaHRzICh2b24gZGVuIEhhdXNlaW5nYWVuZ2VuIGhlciBnZXNlaGVuKSB6d2VpIG1pdCBzZWluZW0KSGF1cyBpZGVudGlzY2hlIEhhZXVzZXIgc3RlaGVuISAKCkZhc3ppbmllcmVuZCwgbmljaHQgd2Focj8gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbHVnYW5nc3QgKFBob2JvcywgIDUuIFNlcCAyMDAyLCAxOTo1NTo0Myk6ClBhc3NhZ2llcmUgd2FydGVuIGluIGVpbmVyIE1hc2NoaW5lLCBkYW1pdCBkaWVzZSBkZW4gRmx1Z2hhZmVuIAp2ZXJsYWVzc3QuIERlciBFaW5nYW5nIG9lZmZuZXQgc2ljaCB1bmQgendlaSBNbm5lciBpbiBQaWxvdGVuLQp1bmlmb3JtIGtvbW1lbiBkZW4gR2FuZyBlbnRsYW5nLiBCZWlkZSB0cmFnZW4gdmVyZHVua2VsdGUgQXVnZW4tCmdsYWVzZXIuIEVpbmVyIGRlciBiZWlkZW4gZnVlaHJ0IGVpbmVuIEJsaW5kZW5odW5kIGFuIGRlciBMZWluZSwgCmRlciBhbmRlcmUgaGFlbHQgZWluZW4gd2Vpc3NlbiBTdG9jayBpbiBkZXIgSGFuZC4gCkluIGRlciBNYXNjaGluZSBlbnRmYWx0ZW4gc2ljaCBsYXV0ZSB1bmQgbmVydm9lc2UgR2VzcHJhZWNoZSwgCnRyb3R6ZGVtIGdlaGVuIGRpZSBNYWVubmVyIGlucyBDb2NrcGl0LCBzY2hsaWVzc2VuIGRpZSBUdWVyIHVuZCAKc3RhcnRlbiBkaWUgVHJpZWJ3ZXJrZS4KRGllIFBhc3NhZ2llcmUgd2VyZmVuIHNpY2ggbmVydm9lc2UgdW5kIGZsdWVjaHRpZ2UgQmxpY2tlIHp1IHVuZCAKc3VjaGVuIGlyZ2VuZGVpbiBaZWljaGVuLCBkYXNzIGVzIHNpY2ggaGllcmJlaSB1bSBlaW5lbiBzY2hsZWNodGVuClNjaGVyeiBoYW5kbGUuIApEaWUgTWFzY2hpbmUgcm9sbHQgbG9zIHVuZCB6aWVodCBzY2huZWxsZXIgdW5kIHNjaG5lbGxlciBkaWUgCkZsdWdwaXN0ZSBlbnRsYW5nIHVuZCBkaWUgTGV1dGUgYXVmIGRlbiBGZW5zdGVycGxhZXR6ZW4gcmVhbGlzaWVyZW4sCmRhc3MgZ2VyYWRlYXVzIGFtIEVuZGUgZGVyIEZsdWdwaXN0ZSBudXIgbm9jaCBkYXMgTWVlciBpc3QuIApBbHMgZXMgc28gYXVzc2llaHQsIGFscyBvYiBkaWUgTWFzY2hpbmUgdWViZXIgZGllIExhbmRlYmFobiBoaW5hdXMKaW5zIE1lZXIgc2NoaWVzc3QsIGZ1ZWxsdCBzaWNoIGF1ZiBlaW5tYWwgZGllIEthYmluZSBtaXQgcGFuaXNjaGVtCkdlc2NocmVpLgpHZW5hdSBpbiBkaWVzZW0gTW9tZW50IGhlYnQgZGllIE1hc2NoaW5lIHNhbmZ0IGluIGRpZSBMdWZ0IGFiLgoKSW0gQ29ja3BpdCBkcmVodCBzaWNoIGRlciBDby1QaWxvdCB6dW0gUGlsb3RlbiB1bmQgc2FndDogIldlaXNzdApkdSwgQm9iLCBlaW5lcyBUYWdlcyB3ZXJkZW4gZGllIExldXRlIHp1IHNwYWV0IHNjaHJlaWVuIHVuZCBkYW5uIAp3ZXJkZW4gd2lyIGFsbGUgc3RlcmJlbi4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhcyBzb2dlbmFubnRlIDUtTGltb25lbi1FeHBlcmltZW50IChNdWFkZGliLCAgNi4gU2VwIDIwMDIsIDEwOjU0OjMxKToKfiMhIHJuPUFudGhlYSBydD0xMDMxMjM2NDM3IHJnPXdpdHplCn4jISB0aWQ9MTAzMTIzNjQzNwpXYXIgZGFzIEdyYXMgZ3V0PyBPZGVyIHdhcmVuIGVzIGV0d2EgUGlsemU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERhcyBzb2dlbmFubnRlIDUtTGltb25lbi1FeHBlcmltZW50IChDcm9mdCwgIDYuIFNlcCAyMDAyLCAxMDo1NjozMSk6Cn4jISBybj1NdWFkZGliIHJ0PTEwMzEzMDI0NzEgcmc9d2l0emUKfiMhIHRpZD0xMDMxMjM2NDM3CkVzIG11c3MgZGFzIFNjaGFiZW1ldHQgZ2V3ZXNlbiBzZWluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYnVlbmRlbHVuZyBkZXIgS3JhZWZ0ZSAoRGVlcGJsdWUsICA2LiBTZXAgMjAwMiwgMTU6MDg6MjIpOgpFaW4gSHVobiBrb21tdCB6dW0gU2Nod2Vpbi4gIldhcyBoYWVsdHN0IGR1IHZvbiBlaW5lciBGdXNpb24/IERhcyBnaWJ0ClN5bmVyZ2llZWZmZWt0ZSwgdW5kIHdpciBiZWlkZSBrb2VubnRlbiB2aWVsIG1laHIgdmVyZGllbmVuLiIKCiJQcmltYSIsIHNhZ3QgZGFzIFNjaHdlaW4uICJXYXMgd29sbGVuIHdpciBkZW5uIHByb2R1emllcmVuPyIgCkRhcyBIdWhuIGFudHdvcnRldDogIkhhbSBhbmQgZWdncy4iIApEYXMgU2Nod2VpbiBpc3QgZW50c2V0enQuICJEYWJlaSBnZWhlIGljaCBkcmF1ZiwgdW5kIGR1IG1hY2hzdCBQcm9maXQuIgoKQW50d29ydGV0IGRhcyBIdWhuIGdhbnogY29vbDogIlNvIGlzdCBkYXMgbnVuIG1hbCBiZWkgZWluZXIgRnVzaW9uLiIgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2luZGVybXVuZC4uLiAoQXBvbGxvbmlhLCAgNy4gU2VwIDIwMDIsIDE2OjIyOjU4KToKV2llIGVudHNjaGVpZGV0IG1hbiwgd2VuIG1hbiBoZWlyYXRldD8gCk1hbiBtdXNzIGplbWFuZGVuIGZpbmRlbiwgZGVyIGRpZSBnbGVpY2hlbiBTYWNoZW4gbWFnLiBXZW5uIGR1IGdlcm5lIEZ1c3NiYWxsCmhhc3QsIG11c3Mgc2llIGF1Y2ggbW9lZ2VuLCBkYXNzIGR1IGdlcm5lIEZ1c3NiYWxsIGhhc3QgdW5kIApkYW5uIENoaXBzIHVuZCBkYXMgQmllciBicmluZ2VuLiAKVGltbywgOCBKYWhyZSAKCi1NYW4gZW50c2NoZWlkZXQgbmljaHQgd2lya2xpY2ggc2VsYnN0LCB3ZW4gbWFuIGhlaXJhdGV0LiBHb3R0IAplbnRzY2hlaWRldCBkYXMgZnVlciBkaWNoIGxhbmdlIGltIHZvcmF1cyB1bmQgZGFubiB3aXJzdCBkdSBzZWhlbiwgd2VuIGVyIGRpcgpkYSBhbiBkZW4gSGFscyBoYWVuZ3QuIApLaXJzdGVuLCA5IEphaHJlIAoKLVdhcyBpc3QgZGFzIHJpY2h0aWdlIEFsdGVyIHp1bSBIZWlyYXRlbj8gCkRhcyBiZXN0ZSBBbHRlciBpc3QgMjMsIHdlaWwgZHUgZGEgZGVpbmVuIEVoZW1hbm4gc2Nob24gbWluZGVzdGVucyAxMCBKYWhyZQprZW5uc3QuIApDYXJvbGEsIDEwIEphaHJlIAoKRXMgZ2lidCBrZWluICJiZXN0ZXMgQWx0ZXIiIHp1bSBIZWlyYXRlbi4gTWFuIG11c3Mgd2lya2xpY2ggYmxvZWQgc2VpbiwgdW0KaGVpcmF0ZW4genUgd29sbGVuLiAKTWF4LCA4IEphaHJlIAoKV2FzIG1hY2hlbiBMZXV0ZSB3YWVocmVuZCBlaW5lcyBSZW5kZXp2b3VzPyAKRGllIFJlbmRlenZvdXMgc2luZCBkYSwgdW0gc2ljaCB6dSBhbXVlc2llcmVuIHVuZCBkaWUgTGV1dGUgc29sbHRlbiAKZGllc2UgR2VsZWdlbmhlaXQgbnV0emVuLCB1bSBzaWNoIGJlc3NlciBrZW5uZW4genUgbGVybmVuLiBTb2dhciBkaWUgSnVuZ3MKaGFiZW4gaXJnZW5kIGV0d2FzIEludGVyZXNzYW50ZXMgenUgc2FnZW4sIHdlbm4gbWFuIGlobmVuIGxhbmdlIGdlbnVnIHp1aG9lcnQuCkxpYW5lLCAxMCBKYWhyZSAKCi1XYXMgd3VlcmRlc3QgZHUgbWFjaGVuLCB3ZW5uIGRlaW4gZXJzdGVzIFJlbmRlenZvdXMgdmVycGF0enQgd2FyPyBJY2ggd3VlcmRlCm5hY2ggSGF1c2UgZ2VoZW4gdW5kIHNvIHR1biBhbHMgd2FlcmUgaWNoIHRvdC4gVW5kIGRhbm4gd3VlcmRlIGljaCBkaWUKWmVpdHVuZ2VuIGFucnVmZW4gdW5kIGVpbmUgVG9kZXNhbnplaWdlIGFiZHJ1Y2tlbiBsYXNzZW4uIApLYXJsLCA5IEphaHJlIAoKLVdhbm4gZGFyZiBtYW4gamVtYW5kZW4ga3Vlc3Nlbj8gCldlbm4gc2llIHJlaWNoZSBNYWVubmVyIHNpbmQuIApQYW1lbGEsIDcgSmFocmUKCldlbm4gZHUgZWluZSBGcmF1IGt1ZXNzdCwgbXVzc3QgZHUgc2llIGhlaXJhdGVuIHVuZCBtaXQgaWhyIEtpbmRlciBoYWJlbi4gU28KaXN0IGRhcyBlYmVuLiAKSGVucmksIDggSmFocmUgCgooSmV0enQgS29tbXQnczopIElzdCBlcyBiZXNzZXIsIGxlZGlnIG9kZXIgdmVyaGVpcmF0ZXQgenUgc2Vpbj8gCkljaCB3ZWlzcyBuaWNodCB3YXMgYmVzc2VyIGlzdCwgYWJlciBpY2ggd3VlcmRlIG5pZSBtaXQgbWVpbmVyIEZyYXUgTGllYmUKbWFjaGVuLiBJY2ggbW9lY2h0ZSBuaWNodCwgZGFzcyBzaWUgZmV0dCB3aXJkLiAKVGlsLCA4IEphaHJlIAoKRnVlciBkaWUgTWFlZGNoZW4gaXN0IGVzIGJlc3NlciwgbGVkaWcgenUgYmxlaWJlbi4gQWJlciBkaWUgSnVuZ3MgCmJyYXVjaGVuIGplbWFuZGVuIHp1bSBQdXR6ZW4uLi4uCkFubmEsIDkgSmFocmUgCgooLi4uLnVuZCBqZXR6dCBrb21tdCBkYXMgQmVzdGUhISEhKSBXYXMgbXVzcyBtYW4gdHVuLCBkYW1pdCBkaWUgRWhlIAplaW4gRXJmb2xnIGlzdD8gCk1hbiBtdXNzIGRlciBGcmF1IHNhZ2VuLCBkYXNzIHNpZSBzY2hvZW4gaXN0LCBhdWNoIHdlbm4gc2llIGF1c3NpZWh0IHdpZSBlaW4KTGFzdHdhZ2VuLiAKUGF0cmljaywgOSBKYWhyZQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBtYXRoZW1hdGlzY2hlIEJld2Vpcywgd2FydW0gRGV1dHNjaGxhbmQgbmljaHQgV2VsdG1laXN0ZXIgd2VyZGVuIGtvbm50ZSAoRGVlcGJsdWUsICA5LiBTZXAgMjAwMiwgMTA6MDE6NTgpOgpCcmFzaWxpZW4gd2FyIFdlbHRtZWlzdGVyIDE5NzAgdW5kIDE5OTQuClp1c2FtbWVuIGVyZ2lidCBkYXMgMzk2NC4KRGV1dHNjaGxhbmQgd2FyIFdlbHRtZWlzdGVyIDE5NzQgdW5kIDE5OTAuCkRhcyBlcmdpYnQgYXVjaCAzOTY0LgpaaWVodCBtYW4gZGF2b24gZGFzIGFrdHVlbGxlIEphaHIgMjAwMiBhYiwgZXJnaWJ0IGRhcyAxOTYyLgpVbmQgd2VyIHdhciBkYSBXZWx0bWVpc3RlciAtIG5hdHxybGljaCBCcmFzaWxpZW4sIERldXRzY2hsYW5kIGhhdHRlIGFsc28KZ2FyIGtlaW5lIENoYW5jZSwgZ2FueiBlaW5mYWNoZSBNYXRoZW1hdGlrICEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgbWF0aGVtYXRpc2NoZSBCZXdlaXMsIHdhcnVtIERldXRzY2hsYW5kIG5pY2h0IFdlbHRtZWlzdGVyIHdlcmRlbiBrb25udGUgKE5vbm5lLCAgOS4gU2VwIDIwMDIsIDEwOjA2OjM3KToKfiMhIHJuPURlZXBibHVlIHJ0PTEwMzE1NTg1MTggcmc9d2l0emUKfiMhIHRpZD0xMDMxNTU4NTE4CkRpZXNlIFN5bW1ldHJpZWJldHJhY2h0dW5nIGdpYnRzIHNjaG9uIGxhbmdlLiBMZWlkZXIgaXN0IEVuZ2xhbmQgMTk2NiB1bmQKRnJhbmtyZWljaCAxOTk4IFdlbHRtZWlzdGVyIGdld29yZGVuLCBzb25zdCB3YWVyZSBkaWUgU3ltbWV0cmllIHBlcmZla3QuIE1hbgprb2VubnRlIGFiZXIgYXVjaCBzYWdlbiwgZGFzcyBpbiBkaWVzZW4gSmFocmVuICdlaW5lciwgZGVyIGVzIG5vY2ggbmllIHdhcicKV2VsdG1laXN0ZXIgd2lyZC4gRGFubiBrb2VubmVuIHdpciB1bnMgenVtaW5kZXN0IGZ1ZXIgMjAxMCBIb2ZmbnVuZyBtYWNoZW4uCjIwMDYgd2lyZCBqZWRlbmZhbGxzIHdpZWRlciBCcmFzaWxpZW4uIChjOwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VsY2hlciBNYW5uIGtlbm5zdCBkYXMgbmljaHQuLi4/IChOb25uZSwgMTAuIFNlcCAyMDAyLCAxMDo0Mzo1Nyk6CiBTSUUgdW5kIEVSIGJlaW0gUGl6emEgYmVzdGVsbGVuLgoKRXIgOiAiSWNoIGJlc3RlbGwgUGl6emEuIFdpbGxzdCBkdSBhdWNoIHdhcz8iCgpTaWU6ICJOZWluLiIKCkVyIDogIk9rYXkuIgoKU2llOiAiLi4ub2RlciBkb2NoPyEiCgpFciA6ICJXYXMgZGVubiBudW4/IgoKU2llOiAiSWNoIHdlaXNzIG5pY2h0LiIKCkVyIDogIkR1IHdlaXNzdCBuaWNodCwgb2IgZHUgd2FzIHdpbGxzdD8iCgpTaWU6ICJOZWluLiIKCkVyIDogIkhhc3QgZHUgSHVuZ2VyPyIKClNpZTogIktlaW5lIEFobnVuZywgaXJnZW5kd2llIHNjaG9uLiIKCkVyIDogIldhcyBoZWlzc3QgJ2lyZ2VuZHdpZScuLi4/IgoKU2llOiAiRGFzIGhlaXNzdCwgZGFzcyBpY2ggbWlyIG5pY2h0IHNpY2hlciBiaW4uIgoKRXIgOiAiV2VubiBpY2ggSHVuZ2VyIGhhYiwgZGFubiBtZXJrIGljaCBkYXMuIgoKU2llOiAiVmllbGxlaWNodCBoYWIgaWNoIGphIG5hY2hoZXIgSHVuZ2VyLiIKCkVyIDogIkFsc28gYmVzdGVsbCBpY2ggZGlyIHdhcy4iCgpTaWU6ICJVbmQgd2VubiBpY2ggc3BhZXRlciBkb2NoIG5pY2h0cyBtZWhyIHdpbGwuLi4/IgoKRXIgOiAiRGFubiBpc3N0IGR1IGVzIGhhbHQgbmljaHQuIgoKU2llOiAiRGFzIGlzdCBkb2NoIFZlcnNjaHdlbmR1bmcuIgoKRXIgOiAiRGFubiBoZWIncyBkaXIgZWJlbiBmdWVyIG1vcmdlbiBhdWYuIgoKU2llOiAiVW5kIHdlbm4gaWNoIG1vcmdlbiBnYXIga2VpbmVuIEFwcGV0aXQgYXVmIFBpenphIGhhYmU/CgpFciA6ICJQaXp6YSBrYW5uIG1hbiBpbW1lciBlc3Nlbi4iCgpTaWU6ICJJY2ggbmljaHQuIgoKRXIgOiAiRGFubiBzdWNoIGRpciB3YXMgYW5kZXJlcyBhdXMuIgoKU2llOiAiSWNoIHdpbGwgYWJlciBnYXIgbmljaHRzIGFuZGVyZXMuIgoKRXIgOiAiQWxzbyBkb2NoIFBpenphLiIKClNpZTogIk5laW4uIgoKRXIgOiAiQWxzbyBnYXIgbmljaHRzLiIKClNpZTogIkRvY2guIgoKRXIgOiAiRHUgbWFjaHN0IG1pY2ggdmVycnVlY2t0LiIKClNpZTogIldhcnVtIGJlc3RlbGxzdCBkdSBkaXIgbmljaHQgc2Nob24gbWFsIHdhcy4uLj8iCgpFciA6ICJXaWUgZHUgbWVpbnN0Li4uIgoKU2llOiAiQWJlciBuaW1tIGRpZSBQaXp6YSBtaXQgU2NoaW5rZW4uIgoKRXIgOiAiSWNoIG1hZyBhYmVyIGdhciBrZWluZW4gU2NoaW5rZW4uIgoKU2llOiAiSWNoIHNjaG9uLiIKCkVyIDogIkljaCBkYWNodGUgaWNoIHNvbGx0ZSBNSVIgd2FzIGJlc3RlbGxlbi4uLj8hIgoKU2llOiAiU29sbHN0IGR1IGphIGF1Y2guIgoKRXIgOiAiVW5kIHdhcnVtIGRhbm4gU2NoaW5rZW4uLi4/IgoKU2llOiAiRmFsbHMgaWNoIEh1bmdlciBrcmllZ2UsIHdlbm4gZGVpbiBFc3NlbiBkYSBpc3QuIgoKRXIgOiAiVW5kPyIKClNpZTogIkdsYXVic3QgZHUsIGljaCB3aWxsIHdhcyBlc3Nlbiwgd2FzIG1pciBuaWNodCBzY2htZWNrdD8iCgpFciA6ICJXaWVzbyBkdT8iCgpTaWU6ICJXaWVzbyBuaWNodD8iCgpFciA6ICJNb21lbnQuLi4gaWNoIHNvbGwgYWxzbyBNSVIgd2FzIGJlc3RlbGxlbiwgd2FzIERVIGRhbm4gZXNzZW4ga2FubnN0LApmYWxscyBkdSBldmVudHVlbGwgZG9jaCBIdW5nZXIgYmVrb21tZW4gc29sbHRlc3QuLi4/ISIKClNpZTogIkdlbmF1LiIKCkVyIDogIlVuZCB3YXMgYml0dGUgc29sbCBJQ0ggZGFubiBlc3Nlbj8iCgpTaWU6ICJOYSwgdmllbGxlaWNodCBoYWIgaWNoIGphIG5hY2hoZXIgZ2FyIGtlaW5lbiBIdW5nZXIuLi4iCgoKTm9ubmUsIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZWljaGlnIChBbnRoZWEsIDEzLiBTZXAgMjAwMiwgMTE6MDQ6MDEpOgpEaWUgQnVuZGVzcmVnaWVydW5nIHdpbGwgZGllIERlaWNoZSBtaXQgNDAwMCBBcmJlaXRzbG9zZW4gcmVwYXJpZXJlbi4KCi4uLndhZXJlIGRhIFNhbmQgbmljaHQgdmllbCBlaGVyIGFuZ2VicmFjaHQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGVpY2hpZyAoU291LCAxMy4gU2VwIDIwMDIsIDEyOjM0OjEwKToKfiMhIHJuPUFudGhlYSBydD0xMDMxOTA3ODQxIHJnPXdpdHplCn4jISB0aWQ9MTAzMTkwNzg0MQpOZSwgc28gc2NoYWZmdCBtYW4gZXMgZWhlciwgZGllIEFyYmVpdHNsb3NlbnphaGwgenUgaGFsYmllcmVuICpnZyoKClNvdSBzaWNoIGltbWVyIG5vY2ggZnJhZ2VuZCwgd2llIG1hbiBkYXMgbWFjaGVuIHdpbGwuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVpY2hpZyAoQmFtYnVsa28sIDEzLiBTZXAgMjAwMiwgMTI6Mzg6NTYpOgp+IyEgcm49U291IHJ0PTEwMzE5MTMyNTAgcmc9d2l0emUKfiMhIHRpZD0xMDMxOTA3ODQxClN0b2liZXIgc2NoYWZmdCBkYXMgc2Nob24uIERlciBsYWVzc3QgZWluZmFjaCAyIE1pbCBBcmJlaXRzbG9zZSBpbiBkZW4gSXJhawplaW5tYXJzY2hpZXJlbi4gRGFubiBoYWJlbiB3aXIgd2VuaWdlciBBcmJlaXRzbG9zZSB1bmQgRHNjaG9yZHNjaCBCdXNzIGxpZWJ0CnVucyB3aWVkZXIuCgpTbyBzY2hsYWVndCBtYW4gendlaSBGbGllZ2VuIG1pdCBlaW5lciBLbGFwcGUuIEVpbmZhY2ggZ2VuaWFsIGRlciBNYW5uLgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlbnRlbnByb2JsZW0gKFNvdSwgMTMuIFNlcCAyMDAyLCAxMjo0NDoxMik6ClNvIHdvbGx0ZSBlaW4gd2Vpc2VyIE1hbm4gZGFzIFJlbnRlbnByb2JsZW0gbG9lc2VuLi4uCgpBYiAxLjQuMjAwMyBkdWVyZmVuIFJlbnRlciBiZWkgcm90IHVlYmVyIGRpZSBTdHJhc3NlLi4uLgphYiAxLjQuMjAwNCBtdWVzc2VuIHNpZSEKClNvdSBsb2VzdCBQcm9ibGVtZSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlbnRlbnByb2JsZW0gKEZsYXVyb3MsIDEzLiBTZXAgMjAwMiwgMTI6NDU6MjIpOgp+IyEgcm49U291IHJ0PTEwMzE5MTM4NTIgcmc9d2l0emUKfiMhIHRpZD0xMDMxOTEzODUyCkFiIHdhbm4gYmlzdCBkdSBSZW50ZXIsIFNvdT8KCkZsYXVyb3MgaXN0IGZ1ZXIgZGllIHZvcnplaXRpZ2UgUGVuc2lvbmllcnVuZyB2b24gU291IDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlbnRlbnByb2JsZW0gKEFudGhlYSwgMTMuIFNlcCAyMDAyLCAxMjo0NjoyOCk6Cn4jISBybj1GbGF1cm9zIHJ0PTEwMzE5MTM5MjIgcmc9d2l0emUKfiMhIHRpZD0xMDMxOTEzODUyCkFiZXIgZXJzdCB6dW0gMzEuMy4yMDA0LCBzb25zdCBrb3NzdGV0IFNvdSB2b3JoZXIgenV2aWVsIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlbnRlbnByb2JsZW0gKE9ya3RvZXRlciwgMTMuIFNlcCAyMDAyLCAxMjo0NjozOCk6Cn4jISBybj1GbGF1cm9zIHJ0PTEwMzE5MTM5MjIgcmc9d2l0emUKfiMhIHRpZD0xMDMxOTEzODUyCldlcmRlbiBqZXR6dCB3aWVkZXIgZGllIGJyb256ZW5lbiwgc2lsYmVybmVuIHVuZCBnb2xkZW5lbiBTdGVybmUgZWluZ2VmdWVocnQ/CgpPcmtULgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSZW50ZW5wcm9ibGVtIChTb3UsIDEzLiBTZXAgMjAwMiwgMTI6NDY6NDYpOgp+IyEgcm49RmxhdXJvcyBydD0xMDMxOTEzOTIyIHJnPXdpdHplCn4jISB0aWQ9MTAzMTkxMzg1MgpIbSBndXRlIElkZWUsIGRhIGRhcyBHZXNldHogZWggbmljaHQgZHVyY2hrb21tdCBrYXNzaWVyZSBpY2ggUmVudGUuLi4KV2llIHZpZWwgZ2lic3RlIG1pciwgRmxhdXNjaGk/CgpTb3Ugd2lyZCBTZWhyZnJ1ZWhyZW50bmVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUmVudGVucHJvYmxlbSAoVmFybGFyaW9uLCAxMy4gU2VwIDIwMDIsIDEyOjQ4OjI0KToKfiMhIHJuPVNvdSBydD0xMDMxOTE0MDA2IHJnPXdpdHplCn4jISB0aWQ9MTAzMTkxMzg1MgpHdXQsIGRhc3MgZXMgaW0gTUcga2VpbmUgQW1wZWxuIGdpYnQuCgpWYXJsKiwgRnJ5aHJlbnRuZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFJlbnRlbnByb2JsZW0gKFNvdSwgMTMuIFNlcCAyMDAyLCAxMjo0OTo1Nik6Cn4jISBybj1WYXJsYXJpb24gcnQ9MTAzMTkxNDEwNCByZz13aXR6ZQp+IyEgdGlkPTEwMzE5MTM4NTIKcHJvZ2d0IG1hbCBlaW5lcj8KU28ga29lbm50ZSBtYW4gc2NyaXB0cyBzdG9wcGVuLCBiencsIHdlbm4gbWFuIHRyb3R6ZGVtIGxhZXVmdCwgZGFzcyBtYW4gZGFuIG4KJ3VuZmFsbCcgaGF0IDopCgpTb3UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVpY2hpZyAoRmxpbnRuYWlsLCAxMy4gU2VwIDIwMDIsIDE0OjI4OjIwKToKfiMhIHJuPVNvdSBydD0xMDMxOTEzMjUwIHJnPXdpdHplCn4jISB0aWQ9MTAzMTkwNzg0MQp3ZW5uIG1hbiBkaWUgdGhlb3JldGlzY2hlbiB3b2VjaGVudGxpY2hlIEFyYmVpdHN6ZWl0IHBlciBHZXNldHogbnVyIGZ1ZXIKQXJiZWl0c2xvc2UgdmVyZG9wcGVsdCwgd2FlcmVuIGFsbGUgQXJiZWl0c2xvc2VuIGphIG51ciBub2NoCnRlaWx6ZWl0YXJiZWl0c2xvcy4gRnVlciBkaWUgR2VzYW10c3RhdGlzdGlrIGtvZW5udGUgbWFuIGRhbm4gZG9jaCBhbGxlCnRlaWx6ZWl0bG9zZW4genVzYW1tZW5yZWNobmVuIHVtIGF1ZiB2b2xsZSBTdGVsbGVuIHp1IGtvbW1lbi4gZGFzIHdhZXJlbiBkYW5uCmRvY2ggbnVyIGRpZSBIYWVsZnRlIGFsbGVyIGpldHppZ2VuIEFyYmVpdHNsb3Nlbiwgb2Rlcj8KRmxpbnQqLCBsYWVzc3QgbWFsIGRpZSAyLiB1bmQgMy4gTGVzdW5nIGRpZXNlcyBBcnRpa2VscyBzZWluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZWljaGlnIChGbGludG5haWwsIDEzLiBTZXAgMjAwMiwgMTQ6Mjk6MjgpOgp+IyEgcm49RmxpbnRuYWlsIHJ0PTEwMzE5MjAxMDAgcmc9d2l0emUKfiMhIHRpZD0xMDMxOTA3ODQxCkhtbS4uLnVuZCBkb2NoIGluIGRlciAyLiBMZXN1bmcgZmVzdGdlc3RlbGx0LCBkYXMgZXMgVGVpbHplaXRhcmJlaXRzbG9zZW4Kc3RhdHQgdGVpbHplaXRsb3NlbiBpbiBkZXIgMy4gWmVpbGUgdm9uIE9iZW4gaGVpc3NlbiBzb2xsdGUuLi46KQpGbGludCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERlaWNoaWcgKEZsaW50bmFpbCwgMTMuIFNlcCAyMDAyLCAxNDozMDo1Nik6Cn4jISBybj1GbGludG5haWwgcnQ9MTAzMTkyMDE2OCByZz13aXR6ZQp+IyEgdGlkPTEwMzE5MDc4NDEKQWVoIHVuZCBpbiBkZXIgMy5MZXN1bmcgZmVzdGdlc3RlbGx0IGRhcyBlcyBkaWUgNC5aZWlsZSB2b24gT2JlbiBpc3QuIApGbGludCogLCBzZWl0IEFuZmFuZyBkZXMgTW9uYXRzIHVlYnJpZ2VucyBuaWNodCBtZWhyIGFyYmVpdHNsb3MgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlbm4gU3RvaWJlciBnZXdpbm50Li4uIChBbnRoZWEsIDE2LiBTZXAgMjAwMiwgMDg6NTU6MTIpOgoKRnJhdWVuIGR1ZXJmZW4gbmljaHQgbWVociBiZXJ1ZnN0YWV0aWcgc2VpbiAtIHZlcnJpbmdlcnQgZGllIEFyYmVpdHNsb3NpZ2tlaXQKZGEgTWlsbGlvbmVuIHZvbiBiZXJ1ZnN0YWV0aWdlbiBGcmF1ZW4gaWhyZW4gSm9iIGlubmVyaGFsYiB2b24gNiBNb25hdGVuCmF1ZmdlYmVuIG11ZXNzZW4uCgpWb24gZGVuIHZlcmJsZWliZW5kZW4gMiBNaWxsaW9uZW4gQXJiZWl0c2xvc2VuLCB3ZXJkZW4gNTAwMDAwIHp1CkhpbGZzcG9saXppc3RlbiB1bWdlc2NodWx0IC4KVW5pZm9ybTogSmFnZGdydWVuLCBIdXQgbWl0IEdhbXNiYXJ0LCBibGF1d2Vpc3NlIFNjaGFlcnBlCgpWb24gZGVuIGRhbm4gbm9jaCB2ZXJibGVpYmVuZGVuIDEsNSBNaWxsaW9uZW4gQXJiZWl0c2xvc2VuIGJla29tbWVuIDEgTWlsbGlvbgphbHMgIkRydWVja2ViZXJnZXIiIGFsbGUgc3RhYXRsaWNoZW4gQmVpaGlsZmVuIGdlc3RyaWNoZW4gdW5kIHZlcnNjaHdpbmRlbgpzb21pdCBhdXMgZGVyIFN0YXRpc3Rpay4KCkFsbGUgYXVzbGFlbmRpc2NoZW4gQXJiZWl0c2xvc2VuIChjYS4gMjUwLjAwMCApIHdlcmRlbiBzb2ZvcnQgYWJnZXNjaG9iZW4uCgpEaWUgQnVuZGVzZmxhZ2dlIHdpcmQgdm9uIHNjaHdhcnotcm90LWdvbGQgaW4gYmxhdSB3ZWlzcy1ibGF1LXJhdXRpZXJ0CmdlYWVuZGVydC4KClJlbGlnaW9uc3VudGVycmljaHQgbWFjaHQgNTAlIGRlcyBHcnVuZHNjaHVsdW50ZXJyaWNodHMgYXVzLgpTY2h1bHVuaWZvcm1lbiAoTGVkZXJob3NlbiBmdWVyIGRpZSBLbmFiZW4gdW5kIERpcm5kbCBmdWVyIGRpZSBNYWRlbG4gKSB3ZXJkZW4KZWluZ2VmdWVocnQuCk5pY2h0IGthdGhvbGlzY2hlIFNjaHVlbGVyIGtvZW5uZW4gbmljaHQgbWVociBmdWVyIHdlaXRlcmZ1ZWhyZW5kZSBTY2h1bGVuCmJlcnVlY2tzaWNodGlndCB3ZXJkZW4gc29taXQgc2luZCBpbiB3ZW5pZ2VuIEphaHJlbiBhdWNoIGdlbnVnIFN0dWRpZW5wbGFldHplCnZvcmhhbmRlbi4KCkF1c3NlciBGbHVnYmVuemluIGlzdCB6dWt1ZW5mdGlnIGF1Y2ggU3ByaXQgZnVlciBCTVcgRmFocnpldWdlIHN0ZXVlcmZyZWkuCgpEZXIgYmF5ZXJpc2NoZSBSdW5kZnVuayB1ZWJlcm5pbW10IGRpZSBLb250cm9sbGUgYXVjaCB1ZWJlciBhbGxlIGFuZGVyZW4KU2VuZGVhbnN0YWx0ZW4uCkhlaW1hdGZpbG1lIHVuZCBWb2xrc211c2lrYWJlbmRlIHByYWVnZW4gZGFzIFByb2dyYW1tIGluIHdlaXRlbiBUZWlsZW4uCgpTaXR0ZSB1bmQgTW9yYWwgaGFlbHQgd2llZGVyIEVpbnp1ZyBpbiBkZXV0c2NoZSBGYW1pbGllbi4gSG9tb3NleHVhbGl0YWV0IHdpcmQKd2llZGVyIHVudGVyIFN0cmFmZSBnZXN0ZWxsdC4KQ2hyaXN0b3BoZXIgU3RyZWV0IERheSB1bmQgTG92ZSBQYXJhZGUgd2VyZGVuIHZlcmJvdGVuLgoKRGFzIEFidHJlaWJ1bmdzZ2VzZXR6IHdpcmQgcnVlY2tnYWVuZ2lnIGdlbWFjaHQuIFBpbGxlIGdpYnQgZXMgbnVyIGluCkF1c25haG1lZmFlbGxlbiB1bmQgbmFjaCB2b3JoZXJpZ2VyIEdlbmVobWlndW5nIGRlcyB6dXN0YWVuZGlnZW4ga2F0aG9saXNjaGVuCkdlbWVpbmRlcGZhcnJlcnMuCgpEaWUgU3ByYWNoZSB3aXJkIHdpZWRlciBkZXV0c2NoZXIuClN0YXR0ICJDb21wdXRlcm1vdXNlIiBoZWlzc3QgZXMgenVrdWVuZnRpZyB6dW0gQmVpc3BpZWwKUm9sbGt1Z2VsYmVkaWVudW5nc2dlcmFldC4KU3RhdHQgTW91c2VwYWQgZGFubiBVbnRlcmxhZ2UgZnVlciBSb2xsa3VnZWxiZWRpZW51bmdzZ2VyYWV0LgpBdXMgZGVuIEplYW5zIHdlcmRlbiAod2VubiB1ZWJlcmhhdXB0IGVyaGFlbHRsaWNoKSB3aWVkZXIgIk5pZXRlbmhvc2VuIi4KCk9lZmZlbnRsaWNoZSBTYXVuZW4sIEZLSywgUG9ybm9oZWZ0ZSwgb2JlbiBvaG5lIHVuZCBhZWhubGljaGVyIFNjaHdlaW5rcmFtCndpcmQgc2VsYnN0dmVyc3RhZW5kbGljaCBzb2ZvcnQgdmVyYm90ZW4uCgpBbiBkZW4gU2NodWxlbiB3aXJkIGRpZSBHZXNjaGxlY2h0ZXJ0cmVubnVuZyB3aWVkZXIgZWluZ2VmdWVocnQuCk1hbiB1bnRlcnNjaGVpZGV0IGthdGhvbGlzY2hlIEtuYWJlbnNjaHVsZW4sIGthdGhvbGlzY2hlIE1hZWRjaGVuc2NodWxlbiwgdW5kClJlc3RzY2h1bGVuIGZ1ZXIgQW5kZXJzZ2xhZXViaWdlLgoKS2F0aG9saXppc211cyB3aXJkIFN0YWF0c3JlbGlnaW9uLgoKRGllIEJ1bmRlc3dlaHIgZXJoYWVsdCBuZXVlIFVuaWZvcm1lbiB1bmQgc2llaHQgbnVuIGF1cyB3aWUgZWluClNjaHVldHplbnZlcmVpbiBhdXMgT2JlcmFtbWVyZ2F1LgoKMjAwNCAsRGVyIEJ1bmRlc3RhZyB6aWVodCB2b24gQmVybGluIHVtIC0gbmFjaCBNdWVuY2hlbi4KCjIwMDQsIE11ZW5jaGVuIHdpcmQgQnVuZGVzaGF1cHRzdGFkdC4KCjIwMDUsIE11ZW5jaGVuIHNvbGwgYXVjaCBFRy1IYXVwdHN0YWR0IHdlcmRlbi4gQWxzIGRpZXMgbmljaHQgZnVua3Rpb25pZXJ0CnRyaXR0IGRpZSAiQmF5ZXJpc2NoZSBCdW5kZXNyZXB1YmxpayBEZXV0c2NobGFuZCIgYXVzIGRlciBFRyBhdXMuCgoyMDA2LCBHbGVpY2hlcyBwYXNzaWVydCBtaXQgZGVyIE5BVE8uCgpEZXIgRVVSTyB3aXJkIGFiZ2VzY2hhZmZ0LiBEaWUgbmV1ZSBXYWVocnVuZyBoZWlzc3QgRGV1dHNjaGVyIFRhbGVyLCBkaWUKa2xlaW5lcmVuIEdlbGRzdHVlY2tlIFN0b2liZXJsaW5nZS4KRGVyIGRldXRzY2hlIFRhbGVyIHRyYWVndCBCaWxkZXIgdm9uIEtvZW5pZyBMdWR3aWcsIEZyYW56IEpvc2VmIFN0cmF1c3MgdW5kCkZyYW56IEJlY2tlbmJhdWVyLgoKRkVSVElHCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VubiBTdG9pYmVyIGdld2lubnQuLi4gKFJvY2h1cywgMTYuIFNlcCAyMDAyLCAyMToyMDo1Mik6Cn4jISBybj1BbnRoZWEgcnQ9MTAzMjE1OTMxMiByZz13aXR6ZQp+IyEgdGlkPTEwMzIxNTkzMTIKQWVobSwgd2FzIGhhdCBkYXMgaW4gZGVyIFJ1YnJpayAid2l0emUiIHp1IHN1Y2hlbj8KCiAgUm9jaHVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlbm4gU3RvaWJlciBnZXdpbm50Li4uIChGb29iYXIsIDE2LiBTZXAgMjAwMiwgMjE6MjM6MzApOgp+IyEgcm49Um9jaHVzIHJ0PTEwMzIyMDQwNTIgcmc9d2l0emUKfiMhIHRpZD0xMDMyMTU5MzEyCkdlbmF1LCB2ZXJsZWcncyBuYWNoICJnZWphbW1lciIuCgpGb29iYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdlbm4gU3RvaWJlciBnZXdpbm50Li4uIChXaWxsb3csIDE2LiBTZXAgMjAwMiwgMjE6MjQ6MDIpOgp+IyEgcm49Rm9vYmFyIHJ0PTEwMzIyMDQyMTAgcmc9d2l0emUKfiMhIHRpZD0xMDMyMTU5MzEyCmdlaG9lcnRzIG5pY2h0IGVoZXIgbmFjaCBBbmt1ZW5kaWd1bmdlbj8/PyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlbm4gU3RvaWJlciBnZXdpbm50Li4uIChUcnVnLCAxNy4gU2VwIDIwMDIsIDIwOjI1OjA1KToKfiMhIHJuPUFudGhlYSBydD0xMDMyMTU5MzEyIHJnPXdpdHplCn4jISB0aWQ9MTAzMjE1OTMxMgpXZWlzc3QgZWgsIGRhc3MgZWluZW4gVW50ZXJzY2hpZWQgendpc2NoZW4gRVUgdW5kIEVHIGdpYnQgOykKClRydWcsIGVyYnNlbnphZWhsZXJpc2NoIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlbm4gU3RvaWJlciBnZXdpbm50Li4uIChab29rLCAxNy4gU2VwIDIwMDIsIDIwOjI2OjUwKToKfiMhIHJuPVRydWcgcnQ9MTAzMjI4NzEwNSByZz13aXR6ZQp+IyEgdGlkPTEwMzIxNTkzMTIKRXMgZ2lidCBzb2dhciBlaW5lbiBVbnRlcnNjaGllZCB6d2lzY2hlbiBFRyB1bmQgRUdlbiA7KSBBYmVyIGljaCBnbGF1YmUgbmljaHQKbWVociBsYW5nZSA7KQoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdlbm4gU3RvaWJlciBnZXdpbm50Li4uIChHbG9pbnNvbiwgMTcuIFNlcCAyMDAyLCAyMTozNjowMSk6Cn4jISBybj1ab29rIHJ0PTEwMzIyODcyMTAgcmc9d2l0emUKfiMhIHRpZD0xMDMyMTU5MzEyCkdpYnQgZXMgYXVjaCBlaW5lbiB6d2lzY2hlbiBFTXMgdW5kIEdFTXNlbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdlbm4gU3RvaWJlciBnZXdpbm50Li4uIChHcmltbWJvcm4sIDE3LiBTZXAgMjAwMiwgMjI6NDg6MzEpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTAzMjI5MTM2MSByZz13aXR6ZQp+IyEgdGlkPTEwMzIxNTkzMTIKVm9tIEdyaXBzIGhlciBuaWNodCwgdm9uIGRlciBUcml0dHNpY2hlcmhlaXQgaGVyIHNjaG9uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbGxlIEphaHJlIHdpZWRlci4uLiAoTm9ubmUsIDE4LiBTZXAgMjAwMiwgMTI6MjU6NDMpOgpEaWUgRXNrYWxhdGlvbiBkZXIgIEJlc2lubmxpY2hrZWl0CgpNb250YWcsIDExLlNlcHRlbWJlcjoKClNjaG9lbnN0ZXIgQWx0d2VpYmVyc29tbWVyIC0gIE5vY2ggZWlubWFsIE1lbnNjaGVuIGluIFQtU2hpcnQgdW5kClNhbmRhbGVuIGluIGRlbiBTdHJhc3NlbmNhZmVzIHVuZCAgQmllcmdhZXJ0ZW4uIEJpc2hlciBrZWluZSBiZXNvbmRlcmVuICAgICAgIApWb3Jrb21tbmlzc2UgaW4gZGVyICBIYXVwdHN0cmFzc2UuIERhbm4gcGxvZXR6bGljaCB1bSAxMDo0NyBVaHIga29tbXQgZGVyICAgICAKQmVmZWhsIHZvbiBBbGRpLUdlc2NoYWVmdHNmdWVocmVyIEVyaWNoIEIuOiAiRnVlbmYgUGFsZXR0ZW4gTGVia3VjaGVuIHVuZCAgICAgClNwZWt1bGF0aXVzIGluIGRlbiBFaW5nYW5nc2JlcmVpY2ghIgpWb24gbnVuIGFuIHVlYmVyc2NobGFnZW4gc2ljaCBkaWUgRXJlaWduaXNzZS4gWnVuYWVjaHN0IHJlYWdpZXJ0Ck1pbmltYWwtR2VzY2hhZWZ0c2Z1ZWhyZXIgTWFydGluIE8uIGVoZXIgaGFsYmhlcnppZyBtaXQgZWluZW0gZXJ3ZWl0ZXJ0ZW4KCktlcnplbnNvcnRpbWVudCB1bmQgIE1hcnppcGFua2FydG9mZmVsbiBhbiBkZXIgS2Fzc2UuCgoxNTowNyBVaHI6IEVkZWthLU1hcmt0bGVpdGVyIFdpbGhlbG0gVC4gaGF0ICBkaWUgTWl0dGFnc3BhdXNlIGdlbnV0enQKdW5kIG9wZXJpZXJ0IG1pdCBMYW1ldHRhIHVuZCBUYW5uZW5ncnVlbiBpbiBkZXIgIFd1cnN0YXVzbGFnZS4gCgoxNjowMiBVaHI6IERpZSBGaWxpYWxlbiB2b24gUGVubnkgdW5kIEV4dHJhIGJla29tbWVuIEtlbm50bmlzICB2b24gZGVyCk9mZmVuc2l2ZSwga29lbm5lbiBhYmVyIGF1ZmdydW5kIHZvbiBMaWVmZXJzY2h3aWVyaWdrZWl0ZW4gbmljaHQKZ2VnZW5oYWx0ZW4gdW5kIGZvcmRlcm4gZWluICBXZWlobmFjaHRzc3RpbGxzdGFuZHNhYmtvbW1lbiBiaXMgenVtCjE2LlNlcHRlbWJlci4gRGllIEdlc3ByYWVjaGUgYmxlaWJlbiBvaG5lIEVyZ2VibmlzLgoKRGllbnN0YWc7ICAxMi5TZXB0ZW1iZXI6CgowNzozMCBVaHI6IEltIEVpbmdhbmdzYmVyZWljaCB2b24gS2Fyc3RhZHQgYmV6aWVodCAgdWViZXJyYXNjaGVuZCBlaW4KRXNlbCBtaXQgUmVudGllcnNjaGxpdHRlbiBTdGVsbHVuZywgd2FlaHJlbmQgendlaSAgV2VpaG5hY2h0c21hZW5uZXIgdm9tCnN0dWRlbnRpc2NoZW4gTmlrb2xhdXNkaWVuc3Qgdm9yYmVpaGFzdGVuZGUgIFNjaHVsa2luZGVyIHp1IGlocmVuCldlaWhuYWNodHN3dWVuc2NoZW4gdmVyaG9lcmVuLiBaZWl0Z2xlaWNoICBlcnN0cmFobHQgZGllIEthdWZoYXVzZmFzc2FkZQppbSBnbGVpc3NlbmRlbiBTY2hlaW4gdm9uIDI2MC4wMDAgIEVsZWt0cm9rZXJ6ZW4uIERpZSBnZXNjaG9ja3RlIEtvbmt1cnJlbnoKa2FubiB6dW5hZWNoc3QgbnVyICBvaG5tYWVjaHRpZyB6dXNjaGF1ZW4uIEltbWVyaGluIGhhYmVuIGpldHp0IGF1Y2ggS2Fyc3RhZHQsCkMmQSB1bmQgIFJlYWwgZGVuIEVybnN0IGRlciBMYWdlIGVya2FubnQuCgpNaXR0d29jaDsgMTMuU2VwdGVtYmVyOgoKMDk6MDAgVWhyOiAgRWRla2Egc2V0enQgS3JpcHBlbmZpZ3VyZW4gaW5zIEdlbXVlc2UuCgowOToxMiBVaHI6IE1pbmltYWwga29udGVydCBtaXQgIG1hc3NpdmVtIEVpbnNhdHogdm9uIFJhdXNjaGdvbGRlbmdlbG4gaW0KClRpZWZrdWVobHJlZ2FsLgoKMTA6MDUgVWhyOiAgQmVpIEthcnN0YWR0IHZlcmlycmVuIHNpY2ggZHV0emVuZGUgS3VuZGVuIGluIGVpbmVtIFdhbGQKdm9uIFdlaWhuYWNodHNiYWV1bWVuLgoKMTI6MDAgVWhyOiBOZXVlIERpZW5zdGFud2Vpc3VuZyBiZWkgRXh0cmE6IEFuICBkZXIgS2Flc2V0aGVrZSB3aXJkIG1pdApzb2ZvcnRpZ2VyIFdpcmt1bmcgZWluICJGcm9oZXMgRmVzdCIgIGdld3VlbnNjaHQuIERpZSBTY2hsZW1tZXJhYnRlaWx1bmcKdm9uIFJlYWwga3VlbmRpZ3QgZnVlciBkZW4gIE5hY2htaXR0YWcgVmVyZ2VsdHVuZ3NtYXNzbmFobWVuIGFuLgoKRG9ubmVyc3RhZzsgIDE0LlNlcHRlbWJlcjoKCjA3OjAwIFVocjogS2Fyc3RhZHQgc2NoYXVmZWx0IEt1bnN0c2NobmVlIGluIGRpZSAgU2NoYXVmZW5zdGVyLgoKMDg6MDAgVWhyOiBJbiBlaW5lciBlaWxpZyBlaW5iZXJ1ZmVuZW4gS3Jpc2Vuc2l0enVuZyBmb3JkZXJ0ICBkZXIKYXVmZ2VicmFjaHRlIFBlbm55LSBHZXNjaGFlZnRzZnVlaHJlciBXYWx0ZXIgVC4gdm9uIHNlaW5lbiAgTWl0YXJiZWl0ZXJuCmxhdXRzdGFyazogIldlaWhuYWNodGVuIGJpcyB6dW0gQWV1c3NlcnN0ZW4iICB1bmQgdmVyZnVlZ3QgZGVuIHBhdXNlbmxvc2VuCkVpbnNhdHogZGVyIHZvbiBkZXIgS29ua3VycmVueiAgZ2VmdWVyY2h0ZXRlbiBDRDogIldlaWhuYWNodGVuIG1pdApNaXJlaWxsZSBNYXR0aGlldSIgdWViZXIgIERlY2tlbmxhdXRzcHJlY2hlci4gRGVyIE5hY2htaXR0YWcgYmxlaWJ0IGFuc29uc3RlbgpydWhpZy4KCkZyZWl0YWc7ICAxNS5TZXB0ZW1iZXI6Cgo4OjAwIFVocjogQW53b2huZXIgZGVyIEhhdXB0c3RyYXNzZSB2ZXJzdWNoZW4gbWl0IEhpbGZlICBlaW5lcgplaW5zdHdlaWxpZ2VuIFZlcmZ1ZWd1bmcgZGllIG51biB2b24gS2Fyc3RhZHQgYW5nZWRyb2h0ZSBNdXNpa29mZmVuc2l2ZQoiSGVpbGlnYWJlbmQgbWl0IGRlbiBGbGlwcGVycyIgenUgc3RvcHBlbi4KCjA5OjE0ICBVaHI6IEVpbiBBbGRpLSBTYXR0ZWxzY2hsZXBwZXIgbWl0IFBmZWZmZXJudWVzc2VuIHJhbW10IGRlbgpQb3NhdW5lbmNob3IgICJBZHZlbmlhdCIsIGRlciBnZXJhZGUgdm9yIEthcnN0YWR0IHp1bSAgZ3Jvc3NlbgpXZWlobmFjaHRzb3JhdG9yaXVtIGFuc2V0emVuIHdvbGx0ZS4KCjA5OjMwIFVocjogQWxkaSAgZGVtZW50aWVydC4gRXMgaGFiZSBzaWNoIGJlaSBkZXIgTGFkdW5nIG5pY2h0IHVtClBmZWZmZXJudWVzc2UsIHNvbmRlcm4gIENocmlzdGJhdW1rdWdlbG4gZ2VoYW5kZWx0LgoKMTg6MDAgVWhyOiBJbiBkZXIgU3RhZHQga29tbXQgZXMga3VyemZyaXN0aWcgenUgIGVyc3RlbiBFbmdwYWVzc2VuIGluIGRlcgpTdHJvbXZlcnNvcmd1bmcgYWxzIGRlciB2b24gVGVuZ2VsbWFubiAgYmVhdWZ0cmFndGUgUmVudG5lciBFcndpbiBaLiBtaXQKc2VpbmVtIEZsYWstIFNjaGVpbndlcmZlciBNYXJrZSAiVmFydGEgIFZvbGtzc3R1cm0iIGRlbiBTdGVybiB2b24KQmV0aGxlaGVtIGFuIGRlbiBIaW1tZWwgIHplaWNobmV0LgoKU29ubmFiZW5kOyAxNi5TZXB0ZW1iZXI6CgpEaWUgRnJvbnRlbiB2ZXJoYWVydGVuIHNpY2g7ICBkaWUgU3RyYXRlZ2llbiB3ZXJkZW4genVuZWhtZW5kIAphZ2dyZXNzaXZlci4KCjEwOjM3IFVocjogQXVmIGVpbmVtICBQb2xpemVpcmV2aWVyIG1lbGRldCBzaWNoIGRpZSBEaWFiZXRpa2VyaW4gQW5uYQpLLnVuZCBnaWJ0IHp1IFByb3Rva29sbCwgc2llICBzZWkgc29lYmVuIGF1ZiBkZW0gTWluaW1hbC1QYXJrcGxhdHogenVtIFZlcnplaHIKdm9uIEdsdWVod2VpbiB1bmQgIENocmlzdHN0b2xsZW4gZ2V6d3VuZ2VuIHdvcmRlbi4gRGllIEJlYW10ZW4gc2luZCByYXRsb3MuCgoxMjowMCBVaHI6IFNlaXQgZ3V0ICBlaW5lciBoYWxiZW4gU3R1bmRlIGJlc2NoaWVzc2VuIEthcnN0YWR0LCBFZGVrYSB1bmQKTWluaW1hbCBkaWUgIEVpbmthdWZzem9uZSBtaXQgU2NobmVla2Fub25lbi4gRGFzIE9yZG51bmdzYW10IG1haG50IGRpZQpSYWV1bS0gdW5kICBTdHJldXBmbGljaHQgYW4uIFVtc29uc3QhCgoxNDozMCBVaHI6IFRlaWxlIGRlcyBTdGFkdGJlemlya3Mgc2luZCAgdW5wYXNzaWVyYmFyLiBFaW5lCkh1YnNjaHJhdWJlcnN0YWZmZWwgZGVzIEJ1bmRlc2dyZW56c2NodXR6ZXMgYmVnaW5udCBtaXQgIGRlciBCZXJndW5nIHZvbgoKRWluZ2VzY2hsb3NzZW5lbjogTWVuc2NoZW4gd2llIER1IHVuZCBpY2gsIGRpZSBudXIgbWFsIGluIGRlciAgc2Nob2VuZW4KSGVyYnN0c29ubmUgYnVtbWVsbiB3b2xsdGUKSW4gZGllc2VtIFNpbm5lOgpGcm9oZXMgRmVzdCAhIQoKYXVzIGRlLnRhbGsuam9rZXMKCk5vbm5lLCBncmluc2VuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFsbGUgSmFocmUgd2llZGVyLi4uIChBaGFiLCAxOC4gU2VwIDIwMDIsIDEyOjI4OjE1KToKfiMhIHJuPU5vbm5lIHJ0PTEwMzIzNDQ3NDMgcmc9d2l0emUKfiMhIHRpZD0xMDMyMzQ0NzQzCiJBbGxlIEphaHJlIHdpZWRlci4uLiIgZmFlbGx0IG1pciBkYXp1IGVpbi4gOy0pCgpBaG9pLApBaGFiLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFsbGUgSmFocmUgd2llZGVyLi4uIChPcmt0b2V0ZXIsIDE4LiBTZXAgMjAwMiwgMTM6MzA6MjUpOgp+IyEgcm49Tm9ubmUgcnQ9MTAzMjM0NDc0MyByZz13aXR6ZQp+IyEgdGlkPTEwMzIzNDQ3NDMKUmVhbHNhdGlyZTogSW4gR3Jlbm9ibGUgaGluZyBtaXR0ZW4gaW0gU29tbWVyIG5vY2ggZGllIFdlaWhuYWNodHNiZWxldWNodHVuZwppbiBkZW4gU3RyYXNzZW4sIGRpZSB3b2xsZW4gd29obCBhdWNoIGZ1ZXIgYWxsZSBldmVudHVhbGl0YWV0ZW4gVm9yYmVyZWl0ZXQKc2Vpbi4uLiAqZyoKCk9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgZGV1dHNjaGUgU3ByYWNoZS4uLiAoTWFhcmcsIDE4LiBTZXAgMjAwMiwgMTY6NTA6MzMpOgogSGFsbG8genVzYW1tZW4sCgogYW5nZXJlZ3Qgdm9uIEN1Y2h1bGxpbnMgUG9zdGluZyBpbiAicHVpeiIgc3RvZWJlcnRlIGljaCBlaW4gd2VuaWcgaW4gZGVyIEZBUQogdm9uIGRlLmV0Yy5zcHJhY2hlLmRldXRzY2ggdW5kIGZhbmQgZGEgbmViZW4gYW5kZXJlbiBob2NoaW50ZXJlc3NhbnRlbgogRWludHJhZWdlbiB1LiBhLiBkaWVzZXM6CiAtLS0tLQoKIEVuZ2xpc2NoZSBWZXJiZW4gaW0gRGV1dHNjaGVuCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogfCBPZGVyIHdhcyBwYXNzaWVydCBtaXQgdW5zZXJlbiBncmFtbWF0aXNjaGVuIEluZml4ZW4sIHdpcmQgZGEKIHwgaW0gRGV1dHNjaGVuIG91dGdlcHV0dGV0PyBXaWUgZm9yZGVyZSBpY2ggamVtYW5kZW4gYXVmLCBldHdhcwogfCBvdXR6dXB1dHRlbj8gPj5QdXR0ZW4gU2llIGRhcyBtYWwgb3V0ITw8IEdsdWVja2xpY2hlcndlaXNlIGlzdCBkZXIKIHwga29ycmVrdGUgZGV1dHNjaGUgS29uanVua3RpdiBqYSBsYWVuZ3N0IGF1c2dlc3RvcmJlbiwgbWFuIG11ZXNzdGUgc29uc3QKIHwgZnVlcmNodGVuLCBhdWNoIG5vY2ggZW5nbGlzY2hlbiBWZXJiZW4gaW0gZGV1dHNjaGVuIEtvbmp1bmt0aXZnZXdhbmQKIHwgenUgYmVnZWduZW46ID4+T2gsIHdlbm4gTWVpZXIgZG9jaCBlbmRsaWNoIGRlbiBSZXBvcnQgb3V0cHVldHRldGUhPDwKIHwgR2VzY2hhZWhlIGRpZXMsIGljaCBmbG9laGUgc2NocmVpZW5kIG5hY2ggSGF1c2UuIFsuLi5dIFNlbHRzYW1lcndlaXNlCiB8IHNjaGV1dCBtYW4gbm9jaCB2b3IgZGVyIGxldHp0ZW4gS29uc2VxdWVueiB6dXJ1ZWNrLiBEaWUgRnJhZ2UgPj5NYWlsc3QKIHwgRHUgbWlyIGRhcyBlPzw8IChNZWlsc3QgRHUgbWlyIGRhcyBpZWg/KSB1bmQgZGllIHp1Z2Vob2VyaWdlIEFudHdvcnQKIHwgPj5JY2ggbWFpbCcgZGFzIGVoIGFsbGVuIGUhPDwgKEljaCBtZWlsIGRhcyBlaCBhbGxlbiBpZWghKSBob2VydCBtYW4KIHwgLSBub2NoIC0gbmljaHQuCgogKFJhbHBoIE1vZWxsZXJzOiBEZXV0c2NoIGZ1ZXIgUG93ZXJ1c2VyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFsbGUgSmFocmUgd2llZGVyLi4uIChQZXJkaXRhLCAxOC4gU2VwIDIwMDIsIDIyOjU3OjU0KToKfiMhIHJuPU5vbm5lIHJ0PTEwMzIzNDQ3NDMgcmc9d2l0emUKfiMhIHRpZD0xMDMyMzQ0NzQzCm51ciB6dXIgSW5mbzogZGFzIG1hZyB6d2FyIHdlciBpbiBkZS50YWxrLmpva2VzIGdlcG9zdGV0IGhhYmVuLCBvcmlnaW5hbCBrb21tdApkYXMgYWxsZXJkaW5ncyBhdXMnbSBSYWRpbyAoTkRSMikgdW5kIGdlaG9lcnQgenVyICJTdGVua2VsZmVsZCItUmVpaGUuClNlaHIgZW1wZmVobGVuc3dlcnQsIHVlYnJpZ2Vucy4gWnVtIEJlaXNwaWVsIGF1Y2ggZGFzIENvbXB1dGVyLVd1dGNlbnRlciBvZGVyCiJBZHZlbnQgaW0gU2VuaW9yZW5oZWltIi4uLgpTZWhyIHNlaHIgbmV0dC4KUGVyZGl0YSBoYXQgbGVpZGVyIG5vY2ggdmllbCB6dSB3ZW5pZyBkYXZvbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjA6IE11ZWxsaGFsZGVuLi4uIChHbG9pbnNvbiwgMTkuIFNlcCAyMDAyLCAxNTo1MDozMik6Cn4jISBybj1DYWRyYWNoIHJ0PTEwMzI0NDMxNzMgcmc9YWxsZ2VtZWluZXMKfiMhIHRpZD0xMDMwOTc5Mzg2Cj4gbWFuIHNvd2FzIHNhdWJlciAuLi4KCkpldHp0IG11c3N0ZSBpY2ggYWJlciBkb2NoIG1hbCB1ZWJlciBkZW4gVGhyZWFkIGxhY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkltIEZydWVodGF1IChBbnRoZWEsIDE5LiBTZXAgMjAwMiwgMTY6NDQ6NTQpOgpBRkFJSyB2b24gT2xpdmVyIEthbGtvZmU6CgpJbSBGcnVlaHRhdSBkaWUgWndlcmdlLCBzaWUgZ2VobiwgZmFsbGVyYQpzaWUgdGF1bWVsbiwgc2llIHNjaHdhbmtlbiB1bmQgc2llIGdyb2VobG4sIGZhbGxlcmEKSmEgc2VodCwgd2llIGtydW1tIHNpZSBsYXVmZW4sCmRlbm4gZ2VzdGVybiB3YXInbiBzaWUgc2F1ZmVuLgpJaHIga2VubnQgZGFzLCBJaHIgd2FydCBkYXMgamEgYXVjaCBzY2hvbiBtYWwuLi4KClZvbSBGcmVpYmllciBkaWUgWndlcmdlLCBzaWUga29tbW4sIGxhbGxhbGxhCnp1IGVpbmVyIGFuZGVybiBLbmVpcGUgd29sbG4gc2llIHppZWhuLCBsYWxsYWxsYQpTaWUgc2luZCBncmFkIHJhdXNnZWZsb2dlbiwKd2VpbCBzaWUgc2ljaCBuYWNrdCBhdXN6b2dlbi4KRGVyIFN1ZmYgbWFjaHQgc2llIGFsbGUgcGVydmVycywgdHJhbGxhbGxhLi4uCgpJbSBGcnVlaHRhdSBkaWUgWndlcmdlIGJsZWlibiBzdGVobiwgZmFsbGVyYQpTaWUga290emVuIGluIGRpZSBCdWVzY2hlIHVuZCBkaWUgU2VlbiwgZmFsbGVyYQpXYXMgc29sbCBtYW4gZGF6dSBzYWdlbiwKc2llIGtvZW5uIGhhbHQgbmljaHRzIHZlcnRyYWdlbi4KTmFqYSBad2VyZ2Ugc2luZCBudW4gbWFsIGJsb2VkLCBmYWxsZXJhLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW0gRnJ1ZWh0YXUgKFNvdSwgMjAuIFNlcCAyMDAyLCAxMTozMDo1NSk6Cn4jISBybj1BbnRoZWEgcnQ9MTAzMjQ0NjY5NCByZz13aXR6ZQp+IyEgdGlkPTEwMzI0NDY2OTQKU291IGFwcGxhdWRpZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEltIEZydWVodGF1IChNdWRkeSwgMjAuIFNlcCAyMDAyLCAxNToxNToxMik6Cn4jISBybj1BbnRoZWEgcnQ9MTAzMjQ0NjY5NCByZz13aXR6ZQp+IyEgdGlkPTEwMzI0NDY2OTQKRGllIGxldHp0ZSBTdHJvcGhlIGlzdCBlaW5kZXV0aWcgZmFsc2NoLiBSaWNodGlnIGdlaHQgc2llIHNvOgoKSW0gRnJ1ZWh0YXUgZGllIFp3ZXJnZSBibGVpYm4gc3RlaG4sIGZhbGxlcmEKU2llIGtvdHplbiBpbiBkaWUgQnVlc2NoZSB1bmQgZGllIFNlZW4sIGZhbGxlcmEKRGVyIEVsZiBrYW5uIG5pY2h0cyBtZWhyIHNhZ2VuLAplciBrb25udCBlcyBuaWNodCB2ZXJ0cmFnZW4sCmRlbm4gZXIgc2FzcyBpbiBkZW0gQnVzY2gsIGZhbGxlcmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSW0gRnJ1ZWh0YXUgKEFyaywgMjAuIFNlcCAyMDAyLCAxNToyNzowNyk6Cn4jISBybj1NdWRkeSBydD0xMDMyNTI3NzEyIHJnPXdpdHplCn4jISB0aWQ9MTAzMjQ0NjY5NApEdSBiaXN0IEVsZiwgd2FzPyBEaWUgbGV0enRlIFplaWxlIGtsaW5ndCBnZXN1bmdlbiBzZWhyIGdlcXVhZWx0LiA6LSkKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZSAtIGRlc3RvIChBbnRoZWEsIDIzLiBTZXAgMjAwMiwgMTU6MzA6MDkpOgpKZXN1cyBkZXN0byBqdWVuZ2VyICAgICBKZXZlciBkZXN0byB3YXMgICAgICAgICAgSmV3ZWlscyBkZXN0byBkYXJ1bQpKZW5hIGRlc3RvIGZlcm4gICAgICAgICBKZXRvbiBkZXN0byBMZWhtICAgICAgICAgSmVubmkgZGVzdG8gZG9jaCAKSmVyaWNobyBkZXN0byBoYWU/ICAgICAgSmVzYWphIGRlc3RvIHNhZyBuZWluICAgIEpldHppZyBkZXN0byB6YWNrIApKZWRlciBkZXN0byB3byAgICAgICAgICBKZWx6aW4gZGVzdG8gQmxlaSAgICAgICAgSmV0enQgZGVzdG8gQWxsb2hhaGUgClllbiBkZXN0byBnZW5hdSAgICAgICAgIEplbmF1IGRlc3RvIGpld2l0dGVyICAgICBKYWVoem9ybiBkZXN0byBXdXQgCkphZWdlciBkZXN0byBIZWZlICAgICAgIEphZXRlbiBkZXN0byBlbGYgICAgICAgICBZZXRpIGRlc3RvIGRpY2ggCkplZHdlZGVyIGRlc3RvIG5vY2ggICAgIEplc2FpYSBkZXN0byBuZWluICAgICAgICBKZXRsYWcgZGVzdG8gZ2FlaG4gCkpldHNldCBkZXN0byBNYXJiZWxsYSAgIEpldGkgZGVzdG8gS29mZmllICAgICAgICBKZSBMYXAgZGVzdG8gVG9wCkpldGktYyBkZXN0byB0YWMgdG9lICAgIEplIHdlZGVyIGRlc3RvIG5vY2ggICAgICBKZSBtZWhyIGRlc3RvIHdlbmlnIApKZW1hbmQgZGVzdG8gd2VpYiAgICAgICBKZW1lbiBkZXN0byB3b21lbiAgICAgICAgSmVybWluaSBkZXN0byBncm9zcyAKSmVtZW4gZGVzdG8gc3RydWF0aW9uICAgSmVoIGRlc3RvIGogICAgICAgICAgICAgIEpld2VpbHMgZGVzdG8gU2Nob3R0bGFuZCAKSmFlaGxpbmdzIGRlc3RvIHJlY2h0cyAKClNvbnN0d2VyIG5vY2ggd2FzPwotLQpJY2ggYmluIGtlaW4gUmFzc2lzdC4gTnVyIHVtIGRhcyBtYWwga2xhcnp1c3RlbGxlbi4gWndlcmdlIHNpbmQga2VpbmUgUmFzc2UsCnNvbmRlcm4gZWluZSBadW11dHVuZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5ldWUgU3ltYm9sZSB1bmQgQmF1c3RlaW5lIGRlciBEaWdpdGFsdGVjaG5payAoQW50aGVhLCAyMy4gU2VwIDIwMDIsIDE1OjM4OjIzKToKTmV1ZSBTeW1ib2xlIHVuZCBCYXVzdGVpbmUgZGVyIERpZ2l0YWx0ZWNobmlrIChuYWNoIERJTiA0NzExLzA4LTE1KQogICAgICAgICBfX19fXwogICAgICAgIHwgICAgIHwKICAgICAgICB8ICAgICB8CiAgIC0tLS0tKy0tLS0tKy0tLS0tICBKQQogICAgICAgIHwgICAgIHwKICAgICAgICB8X19fX198CgogICAgICAgICBfX19fXwogICAgICAgIHwgICAgIHwKICAgICAgICB8ICAgICB8CiAgICAgICAgfCAgICAgKy0tLS0tICBOSUUKICAgICAgICB8ICAgICB8CiAgICAgICAgfF9fX19ffAoKICAgICAgICAgX19fX18KICAgICAgICB8ICAgICB8CiAgICAgICAgfCAgICAgfAogICAtLS0tLSsgICAgIHwgICAgICAgRU5ECiAgICAgICAgfCAgICAgfAogICAgICAgIHxfX19fX3wKCiAgICAgICAgIF9fX19fCiAgICAgICAgfCAgICAgfAogICAgICAgIHwgICAgIHwKICAgLS0tLS0rICA/ICArLS0tLS0gIFdBUlVNCiAgICAgICAgfCAgICAgfAogICAgICAgIHxfX19fX3wKCiAgICAgICAgIF9fX19fCiAgICAgICAgfCAgICAgfAogICAgICAgIHwgICAgIHwKICAgLS0tLS0rICA/ICBPLS0tLS0gIFdBUlVNIE5JQ0hUCiAgICAgICAgfCAgICAgfAogICAgICAgIHxfX19fX3wKCgogICAgICArLS0tLS0tLS0tKwogICAgICB8ICBfX19fXyAgfAogICAgICB8IHwgICAgIHwgfAogICAgICB8IHwgICAgIHwgfAogICAtLS0rIHwgICAgIHwgKy0tLSAgSEVSVU0KICAgICAgICB8ICAgICB8CiAgICAgICAgfF9fX19ffAoKCiAgICAgICstLS0tLS0tLS0rCiAgICAgIHwgIF9fX19fICB8CiAgICAgIHwgfCAgICAgfCB8CiAgICAgIHwgfCAgICAgfCB8CiAgICAgICstKyAgICAgfC0qLS0tICBSVU5ECiAgICAgICAgfCAgICAgfAogICAgICAgIHxfX19fX3wKCgogICAgICArLS0tLS0tLS0tKwogICAgICB8ICBfX19fXyAgfAogICAgICB8IHwgICAgIHwgfAogICAtLS0qLU8gICAgIHwgfAogICAgICAgIHwgICAgICstKi0tLSAgQUJFUgogICAtLS0tLSsgICAgIHwKICAgICAgICB8X19fX198CgoKICAgICAgKy0tLS0tLS0tLSsKICAgICAgfCAgX19fX18gIHwKICAgICAgfCB8ICAgICB8IHwKICAgLS0tKi0rICAgICB8IHwKICAgICAgICB8ICAgICArLSotLS0gIEhJTkdFR0VOCiAgIC0tLSotKyAgICAgfCB8CiAgICAgIHwgfF9fX19ffCB8CiAgICAgIHwgICAgICAgICB8CiAgICAgICstLS0tLS0tLS0rCgogICAgICAgICBfX19fXwogICAgICAgIHwgICAgIHwKICAgLS0tLS0rICAgICB8CiAgICAgICAgfCAgICAgKy0tLSsKICAgICArLS0rICAgICB8ICAgfCAgICBGTEFORAogICAgIHwgIHxfX19fX3wgICB8ICAgKEZMVU5EKQogICAgIHwgICAgICAgICAgICB8CiAgICAgfCAgIF9fX19fICAgIHwKICAgICB8ICB8ICAgICB8ICAgfAogICAgIHwgIHwgICAgICstLS0rCiAgICAgKy0tKyAgICAgfAogICAgICAgIHwgICAgICstLS0tLS0KICAgICAgICB8X19fX198CgoKICAgICAgICAgX19fX18KICAgICAgICB8ICAgICB8CiAgICAgICAgfCAgICAgfAogICAtLS0tLSsgIE8tLSstLS0tLSAgRFJJTlZFUlRFUgogICAgICAgIHwgICAgIHwKICAgICAgICB8X19fX198CgoKICAgICAgICAgX19fX18gIF9fX19fCiAgICAgICAgfCAgICAgfHwgICAgIHwKICAgICAgICB8ICAgICB8fCAgICAgfAogICAtLS0tLSsgICAgIE8rICAgICArLS0tIFBFUlZFUlRFUgogICAgICAgIHwgICAgIHx8ICAgICB8CiAgICAgICAgfF9fX19ffHxfX19fX3wKCiAgICAgICAgIF9fX19fICBfX19fXyAgX19fX18KICAgICAgICB8ICAgICB8fCAgICAgfHwgICAgIHwKICAgICAgICB8ICAgICB8fCAgICAgfHwgICAgIHwKICAgLS0tLS0rICAgICBPKyAgICAgTysgICAgIHwtLS0tIFNVUEVSVkVSVEVSCiAgICAgICAgfCAgICAgfHwgICAgIHx8ICAgICB8CiAgICAgICAgfF9fX19ffHxfX19fX3x8X19fX198CgoKICAgICAgICAgX19fX18KICAgICAgICB8ICAgICB8CiAgICAgICAgfCAgICAgfAogICAtLS0tLSsgIDEgIHwgIEZJTk8gKEZpcnN0IEluIE5ldmVyIE91dCkKICAgICAgICB8ICAgICB8CiAgICAgICAgfF9fX19ffAoKCiAgICAgICAgICAgNy1iaXQtS29tcGxpa2F0b3I6CiAgICAgICAgICAgICAgICAgX19fX19fCiAgICAgICAgICAgICAgICB8ICAgICAgfAogICAgICBJTlBVVFQgLS0tKyAgICAgICstLS0tIE1BTkNITUFMCiAgICAgICAgICAgICAgICB8ICAgICAgfAogICAgICAgICAgICAgICAgfCAgICAgICstLS0tIEVWRU5UVUVMTAogICAgICAgICAgICAgICAgfCAgICAgIHwKICAgICAgICAgICAgICAgIHwgICAgICArLS0tLSBBQiBVTkQgWlUKICAgICAgICAgICAgICAgIHwgICAgICB8CiAgICAgIEtBUFVUVCAtLS1PICAgICAgKy0tLS0gU0VMVEVOCiAgICAgICAgICAgICAgICB8ICAgICAgfAogICAgICAgICAgICAgICAgfCAgICAgICstLS0tIEFVRiBVTkQgQUIKICAgICAgICAgICAgICAgIHwgRFJJTiB8CiAgICAgICAgICAgICAgICB8ICB8ICAgKy0tLS0gTU9FR0xJQ0gKICAgRU1FUkdFTkNZICAgIHwgIHwgICB8CiAgICAgIE9VVFBVVCAtLS0rICB8ICAgKy0tLS0gWkVJVFdFSVNFCiAgICAgICAgICAgICAgICB8X198X19ffAoKICAgICAgICAgICA0LWJpdC1IdW1wZW5jb3VudGVyOgogICAgICAgICAgICAgICAgIF9fX19fXwogICAgICAgICAgICAgICAgfCAgICAgIHwKICAgIFBJUEVMSU5FIC0tLSsgICAgICArLS0tLSBTQ0hPUFBFTgogICAgICAgICAgICAgICAgfCAgICAgIHwKICAgICAgICAgICAgICAgIHwgICAgICArLS0tLSBIQUxCRQogICAgICAgICAgICAgICAgfCAgICAgIHwKICAgICAgICAgICAgICAgIHwgICAgICArLS0tLSBNQVNTCiAgICAgICAgICAgICAgICB8ICAgICAgfAogICAgICAgIFJFU1QgLS0tKyAgICAgICstLS0tIEZBU1MKICAgICAgICAgICAgICAgIHxfX19fX198CiAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgICAgICAgICB8CiAoUmFsZiBad2FuemlnZXIpCi0tCkljaCBiaW4ga2VpbiBSYXNzaXN0LiBOdXIgdW0gZGFzIG1hbCBrbGFyenVzdGVsbGVuLiBad2VyZ2Ugc2luZCBrZWluZSBSYXNzZSwKc29uZGVybiBlaW5lIFp1bXV0dW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW50ZXJzY2hpZWQgKEFudGhlYSwgMjQuIFNlcCAyMDAyLCAxMTowNzozOSk6ClN0b2liZXIgc3RpcmJ0IHVuZCBrb21tdCBpbiBkZW4gSGltbWVsIC0gZGEgbXVzcyB3b2hsIHdhcyBzY2hpZWYgZ2VsYXVmZW4Kc2VpbiwgYWJlciBlciBpc3QgbnVuIGltIEhpbW1lbC4gTmFjaCBlaW4gcGFhciBUYWdlbiB3aXJkIGVzIGlobSBkYSB6dQpsYW5nd2VpbGlnLCBudXIgUnVoZSwgRnJpZWRlLi4uCkRhIGZyYWd0IGVyIEdvdHQsIG9iIGVyIG5pY2h0IG1hbCBrdXJ6IGluIGRpZSBIb2VsbGUgc2NoYXVlbiBrb2VubnRlLiBKYSwgT0ssCmFsc28gZGFyZiBlciBtYWwgaW4gZGllIEhvZWxsZSBzY2hhdWVuOiBkb3J0IGZpbmRldCBlciBlcyBzdXBlciEgU2Nob2VuZQpGcmF1ZW4sIGd1dGVzIEVzc2VuLCBMZWJlbiBpbiBTYXVzIHVuZCBCcmF1cy4uLiBBYmVyIGRhbm4gbXVzcyBlciBuYWNoIGVpbgpwYWFyIFN0dW5kZW4gd2llZGVyIHp1cnVlY2sgaW4gZGVuIEhpbW1lbC4KQWJlciBuYWNoIGVpbiBwYWFyIFRhZ2VuIHdpcmQgZXMgaWhtIGRvcnQgd2llZGVyIHp1IGxhbmd3ZWlsaWcgdW5kIGVyIGZyYWd0CkdvdHQsIG9iIGVyIG5pY2h0IG5vY2htYWwgaW4gZGllIEhvZWxsZSBrb2VubmU/ISBEYSBtZWludCBHb3R0LCBqZXR6dCBtdWVzc2UKZXIgc2ljaCBhYmVyIGVuZGd1ZWx0aWcgZW50c2NoZWlkZW4sIHdvIGVyIGZ1ZXIgaW1tZXIgYmxlaWJlbiB3b2xsZS4gQWxzbwplbnRzY2hlaWRldCBzaWNoIFN0b2liZXIgZnVlciBkaWUgSG9lbGxlLgpBYmVyIGFscyBlciBkYSB3aWVkZXIgYW5rb21tdCwgaXN0IGRhIHBsb2V0emxpY2ggbmljaHRzIG1laHIgbG9zISEhIEdhciBuaWNodHMKbWVociwga2VpbmUgRnJhdWVuLi4uIG5pY2h0cyEgRGEgZnJhZ3QgZXIgZGVuIFRldWZlbDogamEgd2FydW0gaXN0IGRlbm4gaGllcgpuaWNodHMgbWVociBsb3M/IERhIHNhZ3QgZGVyIFRldWZlbDogIkphLCBkYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbgplaW5lbSBUb3VyaXN0ZW4gdW5kIGVpbmVtIEFzeWxhbnRlbiEiCi0tCkljaCBiaW4ga2VpbiBSYXNzaXN0LiBOdXIgdW0gZGFzIG1hbCBrbGFyenVzdGVsbGVuLiBad2VyZ2Ugc2luZCBrZWluZSBSYXNzZSwKc29uZGVybiBlaW5lIFp1bXV0dW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFsIHp1ciBBYndlY2hzbHVuZyBvaG5lIE5pdmVhKHUpIChBbnRoZWEsICAxLiBPa3QgMjAwMiwgMTI6NDA6MzIpOgpEZXIgRWxlZmFudCBrb21tdCB6dW0gS2FtZWwuLi4uIHdhcnVtIGlzdCBkZWluIEJ1c2VuIGF1ZiBkZWluZW0gUnVlY2tlbj8KS2FtZWw6IFNjaGVpc3MgRnJhZ2Ugdm9uIGplbWFuZGVtIGRlc3NlbiBTY2h3YW56IGltIEdlc2ljaHQgaGFlbmd0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmV3ZXJidW5nIChEZWVwYmx1ZSwgIDEuIE9rdCAyMDAyLCAxMzo0ODo1OCk6CkRhcyBLb256ZXJubWFuYWdlbWVudCB3aWxsIGJlaSBkZXIgRWluc3RlbGx1bmcgbmV1ZXIgTWl0YXJiZWl0ZXIgbmljaHRzIGRlbQpadWZhbGwgdWViZXJsYXNzZW4uIFp1c2FtbWVuIG1pdCBQc3ljaG9sb2dlbiB3dXJkZSBkZXNoYWxiIGVpbiBkZXRhaWxsaWVydGVyCkxlaXRmYWRlbiBmdWVyIGRhcyBHZXNwcmFlY2ggbWl0IEJld2VyYmVybiBhdXNnZWFyYmVpdGV0LgoKRGVyIFBlcnNvbmFsY2hlZiwgZGVyIHZvbiBkZW0ganVuZ2VuIE1hbm4gZWluZW4gZ3V0ZW4gRWluZHJ1Y2sgaGF0LCBmcmFndCBpaG4KZGFoZXIgenVtIFNjaGx1c3MgZGVzIEdlc3ByYWVjaHMgcGZsaWNodGdlbWFlc3M6CgoiV2FzIGhhbHRlbiBTaWUgdm9uIFZvcmdlc2V0enRlbiwgZGllIGlocmUgTWl0YXJiZWl0ZXIgaGVydW1rb21tYW5kaWVyZW4sCmlobmVuIGFsbGUgdW5hbmdlbmVobWVuIEFyYmVpdGVuIHp1c2NoaWViZW4sIG5pZW1hbmRlbiBuZWJlbiBzaWNoIGhvY2hrb21tZW4KbGFzc2VuLCBiZWkgRXJmb2xnIGRpZSBMb3JiZWVyZW4gYWxsZWluIGVybnRlbiB1bmQgZGllIFZlcmFudHdvcnR1bmcgZnVlcgpGZWhsZXIgaW1tZXIgYXVmIGlocmUgVW50ZXJnZWJlbmVuIGFid2FlbHplbj8iCgoiR2VuYXUgZGFzIHd1ZW5zY2hlIGljaCBtaXIiLCBlcmtsYWVydCBkZXIganVuZ2UgTWFubiwgb2huZSBlaW5lIFNla3VuZGUgenUKem9lZ2Vybi4KCkRlciBQZXJzb25hbG1hbm4gaXN0IGZhc3N1bmdzbG9zOiAiV2FydW0gZGVubiBkYXM/IgoKIldlaWwgaWNoIG1pY2ggYmVpIElobmVuIHVtIGVpbmUgRnVlaHJ1bmdzcG9zaXRpb24gYmV3ZXJiZSEiCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBpc3Qgc3Vlc3M/IChOb25uZSwgIDEuIE9rdCAyMDAyLCAxNDoyMjozNSk6CkRpZSBmb2xnZW5kZSBHZXNjaGljaHRlIGlzdCB3YWhyIHVuZCBwYXNzaWVydGUgYW4gZGVyIFVuaSBXaWVuIGluIGVpbmVyIApCaW9sb2dpZXZvcmxlc3VuZyBzY2hvbiBpbSB2b3JpZ2VuIEphaHI6IEluIGVpbmVyIEJpb2xvZ2lldm9ybGVzdW5nIAplcnphZWhsdGUgZGVyIFByb2Zlc3NvciBkZW4gU3R1ZGllcmVuZGVuLCBkYXNzIGRhcyBtZW5zY2hsaWNoZSBTcGVybWEgCkdsdWNvc2UgZW50aGFlbHQuIEVpbmUganVuZ2UgU3R1ZGVudGluIHplaWd0ZSBhdWYgdW5kIGZyYWd0ZTogIldlbm4gaWNoIApkYXMgcmljaHRpZyBzZWhlLCBpc3QgdW5nZWZhZWhyIGdlbmF1c292aWVsIEdsdWNvc2UgaW0gU3Blcm1hLCB3aWUgaW0gCkhhdXNoYWx0c3p1Y2tlciA/IiAiVm9sbGtvbW1lbiByaWNodGlnIixzYWd0ZSBkZXIgUHJvZmVzc29yLiAiV2FydW0gCnNjaG1lY2t0IGVzIGRhbm4gYWJlciBuaWNodCBzbyBzdWVzcz8iLCBmcmFndGUgZGllIFN0dWRlbnRpbi4gTmFjaCBlaW5lbSAKa3VyemVuIEF1Z2VuYmxpY2sgZGVyIFN0aWxsZSBiZWdhbm4gZGVyIGdhbnplIFZvcmxlc3VuZ3NzYWFsIGxhdXQgenUgCmxhY2hlbi4gQWxzIGRpZSBTdHVkZW50aW4gZGFzIG1pdGJla2FtLCBwYWNrdGUgc2llIGlocmUgQnVlY2hlciB1bmQgZ2luZyAKd2VnLiBBYmVyIG5vY2ggYmV2b3Igc2llIGRlbiBBdXNnYW5nIGVycmVpY2h0ZSwgZXJoaWVsdCBzaWUgdm9tIFByb2Zlc3NvciAKZWluZSB0cmVmZmVuZGUgQW50d29ydDogIkVzIHNjaG1lY2t0IG5pY2h0IHNvIHN1ZXNzIHdpZSBIYXVzaGFsdHN6dWNrZXIsIAp3ZWlsIGRpZSBTdWVzcy1SZXplcHRvcmVuIGFuIGRlciBTcGl0emUgZGVyIFp1bmdlIHNpdHplbiB1bmQgbmljaHQgYW0gCkdhdW1lbi4uLiIuCgpOb25uZSwgZ3JpbnNlbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2FzIGlzdCBzdWVzcz8gKE1hbmRyYWdvbiwgIDEuIE9rdCAyMDAyLCAxNDo1ODo1Nyk6Cn4jISBybj1Ob25uZSBydD0xMDMzNDc0OTU1IHJnPXdpdHplCn4jISB0aWQ9MTAzMzQ3NDk1NQpEYSBkZW5rZW4gYmVzdGltbXQgc2Nob24gZGllIEVyc3RlbiBkcnVlYmVyIG5hY2gsIHdpZSBzaWUgZGFzIEdlbGQgZnVlciBadWNrZXIKc3BhcmVuIGtvZW5uZW4gLi4uLgoKCk1hKiAoa2FubiBzaWNoIEhhdXNoYWx0c3p1Y2tlciBsZWlzdGVuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGlzYS1BdWZzYWV0emUgOikgKFN0cm9oYWxtLCAgNC4gT2t0IDIwMDIsIDEwOjA4OjAzKToKRGllIGJlc3RlbiBBdXN6dWVnZSBhdXMgS2luZGVyYXVmc2FldHplbgoKCgoKTWVpbmUgVGFudGUgc2NoZW5rdGUgbWlyIGVpbmUgU3BhcmJ1ZWNoc2UuIFNpZSB3YXIgZWluIFNjaHdlaW4gdW5kIGhhdHRlIHp3ZWkKU2NobGl0emUuIEhpbnRlbiBlaW5lbiBmdWVycyBQYXBpZXIgdW5kIHZvcm5lIGZ1ZXJzIEhhcnRlLgoKRWluIEtyZWlzIGlzdCBlaW4gcnVuZGVzIFF1YWRyYXQuCgpEaWUgRXJkZSBkcmVodCBzaWNoIDM2NSBUYWdlIGxhbmcgamVkZXMgSmFoci4gQWxsZSB2aWVyIEphaHJlIGJyYXVjaHQgc2llIGRhenUKZWluZW4gVGFnIGxhZW5nZXIsIHVuZCBkYXMgYXVzZ2VyZWNobmV0IGltIEZlYnJ1YXIuIFdhcnVtIHdlaXMgaWNoIG5pY2h0LgpWaWVsbGVpY2h0IHdlaWwgZXMgaW0gRmVicnVhciBzbyBrYWx0IGlzdCB1bmQgZXMgZGVzd2VnZW4gZWluIGJpc3NjaGVuCnNjaHdlcmVyIGdlaHQuCgpEZXIgTW9uZCBpc3Qga2xlaW5lciBhbHMgZGllIEVyZGUuIERhcyBsaWVndCBhYmVyIGF1Y2ggZGFyYW4sIGRhIGVzIHNvd2VpdCB3ZWcKaXN0LgoKRGVyIEhhdXB0bWFubiB6b2cgc2VpbmVuIFNhZWJlbCB1bmQgc2Nob3NzIGRlbiBBbmdyZWlmZXIgbmllZGVyLgoKQWxzIGRpZSBNYWVubmVyIHp1cnVlY2trYW1lbiwgd2FyZW4gc2llIHN0ZWlmIGdlZnJvcmVuLiBTaWUgc3RhbmRlbiB1bSBkYXMKcHJhc3NlbG5kZSBGZXVlciB1bmQgd2Flcm10ZW4gc2ljaCBkaWUgR2xpZWRlci4KClNpZWdmcmllZCBoYXR0ZSBhbiBzZWluZW0gS29lcnBlciBlaW5lIGJlc29uZGVyZSBTdGVsbGUsIGRpZSBlciBhYmVyIG51ciBkZXIKS3JpZW1oaWxkIHplaWd0ZS4KCkRhbm4gZm9sZ3RlIGRhcyBaZWl0YWx0ZXIgZGVyIEF1ZmtsYWVydW5nLiBEYSBsZXJudGVuIGRpZSBMZXV0ZSBlbmRsaWNoLCBkYXNzCm1hbiBzaWNoIG5pY2h0IGR1cmNoIGRpZSBCaWVuZSBvZGVyIGRlbiBTdG9yY2ggZm9ydHBmbGFuenQsIHNvbmRlcm4gd2llIG1hbgpkaWUgS2luZGVyIHNlbGJlciBtYWNodC4KCk1laW5lIFNjaHdlc3RlciBpc3Qgc2VociBrcmFuay4gU2llIG5pbW10IGplZGVuIFRhZyBlaW5lIFBpbGxlLiBBYmVyIHNpZSB0dXQKZGFzIGhlaW1saWNoLCBkYW1pdCBzaWNoIG1laW5lIEVsdGVybiBrZWluZSBTb3JnZW4gbWFjaGVuLgoKQXVmIGRlbSBTdGFuZGVzYW10IGdlaHQgZXMgc2VociBmZWllcmxpY2ggenUuIFdhZWhyZW5kIGVpbiBhZWx0ZXJlciBNYW5uIGltCkhpbnRlcmdydW5kIGxlaXNlIG9yZ2VsdCwgdm9sbHpvZyBkZXIgU3RhbmRlc2JlYW10ZSBhbiBtZWluZXIgU2Nod2VzdGVyIGRpZQpFaGUuCgpXZW5uIG1laW5lIE11dHRlciBuaWNodCBlaW5lbiBTZWl0ZW5zcHJ1bmcgZ2VtYWNodCBoYWV0dGUsIHdhZXJlIHNpZSBkZW0KVmVya2VocnN1bmZhbGwgenVtIE9wZmVyIGdlZmFsbGVuLiBBYmVyIHNvIGthbSBzaWUgbWl0IGVpbmVtIGJsYXVlbiBBdWdlIGFtCktuaWUgZGF2b24uCgpXZW5uIGRlciBWZXJrZWhyc3BvbGl6aXN0IGRpZSBBcm1lIGdlc3ByZWl6dCBoYXQsIHdpbGwgZXIgZGFtaXQgdmVya3VlbmRlbiwKZGFzcyBlciBnZXJhZGUga2VpbmVuIGZhaHJlbiBsYWVzc3QuCgpFaW5lcyBkZXIgbnVldHpsaWNoc3RlbiBUaWVyZSBpc3QgZGFzIFNjaHdlaW4uIFZvbiBpaG0ga2FubiBtYW4gYWxsZXMKdmVyd2VuZGVuLCBkYXMgRmxlaXNjaCB2b24gdm9ybmUgYmlzIGhpbnRlbiwgZGllIEhhdXQgZnVlciBMZWRlciwgZGllIEJvcnN0ZW4KZnVlciBCdWVyc3RlbiB1bmQgZGVuIE5hbWVuIGFscyBTY2hpbXBmd29ydC4KCkFsbGUgRmlzY2hlIGxlZ2VuIEVpZXIuIERpZSBydXNzaXNjaGVuIHNvZ2FyIEthdmlhci4KCkRlciBUaWVycGFyayBpc3QgdG9sbC4gRGEga2FubiBtYW4gVGllcmUgc2VoZW4sIGRpZSBnaWJ0cyBnYXIgbmljaHQuCgpWaWVsZSBIdW5kIGdlaGVuIGdlcm4gaW5zIFdhc3Nlci4gTWFuY2hlIGxlYmVuIHNvZ2FyIGltbWVyIGRvcnQsIGRhcyBzaW5kClNlZWh1bmRlLgoKQnV0dGVyIHdpcmQgYXVzIEt1ZWhlbiBnZW1hY2h0LiBTb25zdCBoZWlzc3QgZXMgTWFyZ2FyaW5lLgoKRGllIFBlcmlvZGUgZGVyIEtvZW5pZ2luIEVsaXNhYmV0aCBkYXVlcnRlIDMwIEphaHJlLgoKSW0gZHJlaXNzaWdqYWVocmlnZW4gS3JpZWcgbmFubnRlIG1hbiBkaWUgYmVyc3RlbiB1bmQgc3RhZXJrc3RlbiBTb2xkYXRlbgpNdXNrZWx0aWVyZS4KCkltIE1pdHRlbGFsdGVyIHd1cmRlbiBkaWUgTWVuc2NoZW4gbmljaHQgc28gYWx0IHdpZSBoZXV0ZS4gU2llIGhhdHRlbiBhdWNoCm5pY2h0IHNvIHN0YXJrZW4gVmVya2Voci4KCkRlciBBZXRuYSBpc3QgZWluIHNlaHQgdGFldGlnZXIgVnVsa2FuLiBFcnN0IGltIGxldHp0ZW4gSmFociBoYXR0ZSBlciB3aWVkZXIKZWluZSBnZXdhbHRpZ2UgRXJla3Rpb24uCgpNaXQgc3RhcmtlbSwgZ3Jvc3NlbSBTdHJhaGwgZ2ViZW4gZGllIEZldWVyd2VocmxldXRlIGlociBXYXNzZXIgYWIuCgpEb3J0IHdvIGpldHp0IFRydWVtbWVyIHJhZ2VuLCBzdGFuZGVuIGVpbnN0IHN0b2x6ZSBCdXJnZnJhZXVsZWlucyB1bmQgd2FydGV0ZW4KYXVmIGlocmUgYXVzZ2V6b2dlbmVuIFJpdHRlci4KCkVzIHdhciBlaW5lIGdyb3NzZSBEZW1vbnN0cmF0aW9uLiBEZXIgTWFya3RwbGF0eiB3YXIgdm9sbGVyIE1lbnNjaGVuLiBJbiBkZW4KTmViZW5zdHJhc3NlbiBwZmxhbnp0ZW4gc2ljaCBNYWVubmVyIHVuZCBGcmF1ZW4gZm9ydC4KCk5hY2hkZW0gZGllIE1hZW5uZXIgMTAwIG0gZ2VrcmF1bHQgaGF0dGVuIHdpY2tlbHRlbiBkaWUgRnJhdWVuIGlocmUgMjAwIG0KQnJ1c3QgYWIuCgpTdHJlaWNoaG9lbHplciBtdWVzc2VuIGd1dCB2ZXJzdGVja3Qgc2VpbiwgZGFtaXQgZGllIGtlaW5lIEtpbmRlciBiZWtvbW1lbi4KCldpciBnaW5nZW4gbWl0IHVuc2VyZXIgTGVocmVyaW4gaW0gUGFyayBzcGF6aWVyZW4uIEdlZ2VudWViZXIgZGVtIFBhcmsgd2FyIGVpbgpIYXVzLCB3byBkaWUgTXVldHRlciBpaHJlIEtpbmRlciBnZWJhZXJlbi4gRWluZSBHZWJhZXJtdXR0ZXIgc2NoYXV0ZSBhdXMgZGVtCkZlbnN0ZXIgdW5kIHdpbmt0ZSB1bnMgenUuCgpadSBBbGxlcmhlaWxpZ2VuIHdhcmVuIHdpciBhdWYgZGVtIEZyaWVkaG9mLiBFcyB3YXIgc2VociBmZWllcmxpY2gsIGRlbm4gZGVyClBmYXJyZXIgYmVzcHJhbmcgbWl0IHNlaW5lbSBXZWRlbCBkaWUgRnJpZWRob2ZzYmVzdWNoZXIuCgpHZXN0ZXJuIGhhdHRlbiB3aXIgSnVnZW5kLVNraXRhZy4gQWxsZSBNaW51dGVuIGxpZXNzIGRlciBMZWhyZXIgZWluZW4gZmFocmVuLgpXZW5uIGlobSBlaW5lciB6dSBmcnVlaCByYXVza2FtLCBzY2hpY2t0ZSBlciBpaG4genVydWVjay4KCgoKCgpIYWVsbWNoZW4sIGltIEtyaWVzIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGlzYS1BdWZzYWV0emUgOikgKE1pcmlsLCAgNC4gT2t0IDIwMDIsIDE3OjMxOjUwKToKfiMhIHJuPVN0cm9oYWxtIHJ0PTEwMzM3MTg4ODMgcmc9d2l0emUKfiMhIHRpZD0xMDMzNzE4ODgzCk5ldHQgaXN0IGF1Y2ggaW1tZXIgc293YXMgKGxlcyBpY2ggaGFldWZpZ2VyIG1hbCk6Cldlbm4gbWFuIGRlbiBTdHJvbSBhdXNzY2hhbHRldCwgc2luZ3QgZGVyIFplaWdlciBkZXMgTWVzc2dlcmFldGVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQaXNhLUF1ZnNhZXR6ZSA6KSAoQW1hcnlsbGlzLCAgNC4gT2t0IDIwMDIsIDE3OjQzOjQ5KToKfiMhIHJuPU1pcmlsIHJ0PTEwMzM3NDU1MTAgcmc9d2l0emUKfiMhIHRpZD0xMDMzNzE4ODgzCklzdCBkYXMgInNpbmd0IiBudW4gZWluIGZyZXVkc2NoZXIgVmVyc2NocmVpYmVyIERlaW5lcnNlaXRzLCBvZGVyCmJlYWJzaWNodGlndD8gOikKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFBpc2EtQXVmc2FldHplIDopIChNaXJpbCwgIDQuIE9rdCAyMDAyLCAxNzo0NToxOCk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9MTAzMzc0NjIyOSByZz13aXR6ZQp+IyEgdGlkPTEwMzM3MTg4ODMKTm9lLCBkYXMgd2FyIHNjaG9uIHNvIGJlYWJzaWNodGlndC4gCk1pcmlsIGlzdCBudXIgYmVydWZsaWNoIFBpc2EtZ2VzY2hhZWRpZ3QgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZW9yZ2UgQnVzaCdzIGlyYXEgaW52YXNpb24gY2hlY2tsaXN0IChEZWVwYmx1ZSwgIDguIE9rdCAyMDAyLCAwOToxMDo0Nik6Ckdlb3JnZSBCdXNoJ3MgaXJhcSBpbnZhc2lvbiBjaGVja2xpc3QKCltYXSBtaXNzaWxlcwpbWF0gdGFua3MKW1hdIHRyb29wcwpbWF0gcGxhbmVzCltYXSBib21icwpbWF0gc2hpcHMKW1hdIGd1bnMKWyBdIGEgcmVhc29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VvcmdlIEJ1c2gncyBpcmFxIGludmFzaW9uIGNoZWNrbGlzdCAoTm9ubmUsICA4LiBPa3QgMjAwMiwgMDk6MTM6MTMpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTAzNDA2MTA0NiByZz13aXR6ZQp+IyEgdGlkPTEwMzQwNjEwNDYKV2llc28/IEVpbmVuIEdydW5kIGhhdCBlcjogT2VsISBOdXIga2FubiBlciBkZW4gc2NobGVjaHQgdm9yIGRlcgpXZWx0b2VmZmVudGxpY2hrZWl0IHZlcmthdWZlbi4gSWNoIGhvZXJ0ZSBuZXVsaWNoLCBkaWUgYW1lcmlrYW5pc2NoZW4KT2Vsa29uemVybmUgaGFiZW4gZGllIE9lbGZlbGRlciBpbSBJcmFrIHNjaG9uIHVudGVyIHNpY2ggYXVmZ2V0ZWlsdC4gV2Vpc3MgZGEKZWluZXIgd2FzIGdlbmF1ZXM/CgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR2VvcmdlIEJ1c2gncyBpcmFxIGludmFzaW9uIGNoZWNrbGlzdCAoR2xvaW5zb24sICA4LiBPa3QgMjAwMiwgMDk6MzQ6MTUpOgp+IyEgcm49Tm9ubmUgcnQ9MTAzNDA2MTE5MyByZz13aXR6ZQp+IyEgdGlkPTEwMzQwNjEwNDYKR3V0LCBkYW5uIGFlbmRlcm4gd2lyIHdpZSBmb2xndDoKW3hdIGEgcmVhc29uClsgXSByZWFzb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEdlb3JnZSBCdXNoJ3MgaXJhcSBpbnZhc2lvbiBjaGVja2xpc3QgKE1hbmRyYWdvbiwgIDguIE9rdCAyMDAyLCAwOTozNzoxMSk6Cn4jISBybj1HbG9pbnNvbiBydD0xMDM0MDYyNDU1IHJnPXdpdHplCn4jISB0aWQ9MTAzNDA2MTA0NgpLYW5uIG1hbiBzbyBuaWNodCBzYWdlbi4gV2FzIGhpZXIgdW50ZXIgJ0JhcmJhcmVpJyBmYWVsbHQsIHN0ZWh0IGluIFRleGFzCmJlc3RpbW10IGF1ZiBkZXIgTGlzdGUgZGVyICcxMDAgUnVsZXMgdG8gYmUgYSBNYW4nIC4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHZW9yZ2UgQnVzaCdzIGlyYXEgaW52YXNpb24gY2hlY2tsaXN0IChHbG9pbnNvbiwgIDguIE9rdCAyMDAyLCAxMDo0ODozMik6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTAzNDA2MjYzMSByZz13aXR6ZQp+IyEgdGlkPTEwMzQwNjEwNDYKTWhtLiBTdGltbXQuIEluIGRlbiBlaW5zY2hsYWVnaWdlbiBXZXN0ZXJuZmlsbWVuIGlzdCBFc2thbGF0aW9uIGphIGF1Y2gKSGF1cHR6aWVsLCBzb25zdCB3aXJkIGRhcyBMZWJlbiBsYW5nd2VpbGlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29lbmlncmVpY2ggS3JldXpiZXJnIChTdHJvaGFsbSwgIDguIE9rdCAyMDAyLCAxNToyNDozOSk6Ck5ldWUgS2VubnplaWNoZW4gZnVlciAiS29lbmlncmVpY2giCktyZXV6YmVyZzogQW53b2huZXIgaGFiZW4gQW5nc3QKWndlaWJydWVja2VuLiBXYXMgZGllIEJld29obmVyIGRlcyBTdGFkdHRlaWxzIEtyZXV6YmVyZyBpbSBBdWd1c3QgYW11ZXNpZXJ0Cnp1ciBLZW5udG5pcyBuYWhtZW4sIGxhZXNzdCBzaWUgbnVuIGVpbiB1bmd1dGVzIEdlZnVlaGwgYmVzY2hsZWljaGVuOiBDaHJpc3RlbApHb2VyaXR6LCBkaWUgaWhyZW4gU29obiB6dW0gIktvZW5pZyB2b24gS3JldXpiZXJnIiBhdXNyaWVmLCBwbGFudCB3ZWl0ZXJlCkFrdGlvbmVuLgoKR2VnZW51ZWJlciBlaW5lciBBbndvaG5lcmluIGdhYiBzaWUgYW4sIGRhc3MgZXMgYmFsZCBlaWdlbmUgQXV0b2tlbm56ZWljaGVuCmdhZWJlLiBBdWNoIFp3YW5nc3JhZXVtdW5nZW4sIG5vdGZhbGxzIG1pdCBOYXRvLUVpbnNhdHosIHNlaWVuIHZvcmdlc2VoZW4sCndlaWwgZGllIFdvaG51bmdlbiBlaWdlbnRsaWNoIGlocmVtIFNvaG4gUmljayBHb2VyaXR6IC0gZGVtICJLb2VuaWciIC0KZ2Vob2VydGVuLiBEaWVzZXIgd2FyIGJpcyBpbnMgbGV0enRlIEphaHIgQmVzaXR6ZXIgZWluaWdlciBXb2huYmxvY2tzIGluIGRlcgpmcnVlaGVyZW4gVVMtU2llZGx1bmcuIFZvciBrdXJ6ZW0gZ2FiIENocmlzdGVsIEdvZXJpdHogYmVrYW5udCwgZWluZQpWaXN1bXBmbGljaHQgZnVlciBkYXMgIktvZW5pZ3JlaWNoIiBlaW5mdWVocmVuIHp1IHdvbGxlbi4KCkRpZSBBbndvaG5lciBoYWJlbiBudW4gU29yZ2UsIGRhc3MgQ2hyaXN0ZWwgR29lcml0eiBudW4gd2lya2xpY2ggenVyIFRhdApzY2hyZWl0ZXQgdW5kIHZpZWxsZWljaHQgdm9uIGRlbiBBdXRvcyBkZXIgQW53b2huZXIgZGllIE51bW1lcm5zY2hpbGRlcgphYnNjaHJhdWJ0LiBEaWUgU3RhYXRzYW53YWx0c2NoYWZ0IHNpZWh0IGRlcndlaWwgbm9jaCBrZWluZW4gSGFuZGx1bmdzYmVkYXJmOgoiQmxvZWRzaW5uIGlzdCBuaWNodCBzdHJhZmJhci4iIEVyc3Qgd2VubiBkYXMgIktvZW5pZ3JlaWNoIiBtaXR0ZWxzIFphZXVuZW4KdW5kIFNjaGxhZ2JhZXVtZW4gZWluZ2VncmVuenQgd3VlcmRlLCBrb2VubnRlIG1hbiBlaW5zY2hyZWl0ZW46ICJEYW5uIGxpZWd0Ck5vZXRpZ3VuZyB2b3IuIiAoUFopCgpJbSAiS29lbmlnc3ZvbGsiIHdhZWNoc3QgZGllIEFuZ3N0CkNocmlzdGVsIEdvZXJpdHogYmVyZWl0ZXQgYXVmIEtyZXV6YmVyZyBtaXQgVm9sa3N6YWVobHVuZyB3ZWl0ZXJlIE1hc3NuYWhtZW4Kdm9yClZvbiBQWi1NaXRhcmJlaXRlciBUaG9tYXMgRnVlc3NsZXIKClp3ZWlicnVlY2tlbi4gRXJzdCBzYWggZXMgd2llIGVpbiBTY2hlcnogYXVzLiBEb2NoIGpldHp0IGRyb2h0IGRlciBLb25mbGlrdCB1bQpkYXMgS29lbmlncmVpY2ggS3JldXpiZXJnIHp1IGVza2FsaWVyZW4uIENocmlzdGVsIEdvZXJpdHogYmVyZWl0ZXQgZGVuCkF1c3RhdXNjaCB2b24gTnVtbWVybnNjaGlsZGVybiB2b3IgdW5kIGRyb2h0IG1pdCBad2FuZ3NyYWV1bXVuZ2VuLgoKU3lsdmlhIFNlaWZlcnQgd29obnQgbWl0IGlocmVuIHZpZXIgVG9lY2h0ZXJuIGluIGVpbmVtIEhhdXMgZGVyIFdvaG5wYXJrCktyZXV6YmVyZyBHbWJILiBEaWVzZSBXb2NoZSBiZW9iYWNodGV0ZSBzaWUgZWluZSBGcmF1LCBkaWUgbmljaHQgbnVyIGFsbGUKTmFtZW4gYXVmIGRlbiBLbGluZ2VsLVNjaGlsZGVybiBkZXIgV29obmFubGFnZSBub3RpZXJ0ZS4gU2llIGludGVyZXNzaWVydGUKc2ljaCBhdWNoIGZ1ZXIgZGllIE51bW1lcm5zY2hpbGRlciBkZXIgZ2VwYXJrdGVuIEF1dG9zLiAiV2FzIG1hY2hlbiBTaWUgZGVubgpkYSIsIHdvbGx0ZSBzaWUgdm9uIGRlciBpaHIgdW5iZWthbm50ZW4gUGVyc29uIHdpc3Nlbi4gRGllcyBzZWkgaWhyICJndXRlcwpSZWNodCIgYW50d29ydGV0ZSBkaWVzZSB1bmQgc3RlbGx0ZSBzaWNoIGFscyBDaHJpc3RlbCBHb2VyaXR6IHZvci4gU2llIHdhaHJlCmRpZSBSZWNodGUgaWhyZXMgU29obmVzLCBkZXMgS29lbmlncyBkZXMgS3JldXpiZXJncy4KCkRpZSBXb2hucGFyayBLcmV1emJlcmcgR21iSCBoYWJlIHNpY2ggZGllIEhhZXVzZXIgYXVmIGRlbSBLcmV1emJlcmcKd2lkZXJyZWNodGxpY2ggYW5nZWVpZ25ldC4gSW4gV2FocmhlaXQgZ2Vob2VydGVuIGRpZSBIYWV1c2VyIG5pY2h0IGRlbiBpbQpHcnVuZGJ1Y2ggZWluZ2V0cmFnZW5lbiBFaWdlbnR1ZW1lcm4sIHNvbmRlcm4gaWhyZW0gU29obi4gU2VpZmVydCB1bmQgYW5kZXJlCktvZW5pZ3JlaWNocy1NaXRnbGllZGVyIGhhZXR0ZW4gbWl0IGRlbSBLb2VuaWcgbm9jaCBrZWluZW4gTWlldHZlcnRyYWcKYWJnZXNjaGxvc3NlbiwgYXVjaCBrZWluIFZpc3VtIGJlYW50cmFndC4gRGVzaGFsYiBkcm9oZSBpaG5lbiBkaWUKWndhbmdzcmFldW11bmcuCgpEaWUgIktpbmctTXVtIiB0ZWlsdGUgbWl0LCBkYXNzIHNpZSBhYmVyIGdyb3NzenVlZ2lnIHNlaTogQWxzIE5hdG8tTWl0Z2xpZWQKaGFldHRlIHNpZSBTZWlmZXJ0IGphIHNjaG9uIGxhZW5nc3QgbWl0IFBhbnplcm4gdW5kIEdld2VocmVuIGF1cyBkZXIgV29obnVuZwpob2xlbiBrb2VubmVuLiBEZW4gS29lbmlnc3RpdGVsIGZ1ZXIgaWhyZW4gU29obiBSaWNrIGxlaXRldCBDaHJpc3RlbCBHb2VyaXR6CmRpcmVrdCB2b24gZGVuIE5pZWRlcmxhbmRlbiBhYi4gRWluIEF1c2hhbmcgYW0gS29lbmlnc2hhdXMgaW4gZGVyCkxvdWlzaWFuYXN0cmFzc2UgaW5mb3JtaWVydDogRGFzIEdlYmlldCBhbSBLcmV1emJlcmcgc2VpIG5pZSBpbSBCZXNpdHogZGVyCkJ1bmRlc3JlcHVibGlrIERldXRzY2hsYW5kIGdld2VzZW4sIHNvbmRlcm4gaGFiZSBlcnN0IGRlbiBVUy0gdW5kIGRhbm4gZGVuCm5pZWRlcmxhZW5kaXNjaGVuIFN0cmVpdGtyYWVmdGVuIGdlaG9lcnQsIGpldHp0IGlocmVtIFNvaG4uIERpZSBBYnRyZW5udW5nIGRlcwpLb2VuaWdyZWljaHMgdm9uIERldXRzY2hsYW5kIHNlaSBhYmdlc2NobG9zc2VuOiBEaWUgIlNhYXJiZXJnIEZlcm53YWVybWUiCndlcmRlIGF1ZiBSYWV1bXVuZyBkZXMgSGVpendlcmtzLCBkaWUgU3RhZHR3ZXJrZSBad2VpYnJ1ZWNrZW4gYXVmIFJhZXVtdW5nIGRlcgpUcmFmb3N0YXRpb24gdmVya2xhZ3QuIEJlaWRlIEZpcm1lbiBoYWV0dGVuIGtlaW4gUmVjaHQsIGRlbSBLcmV1emJlcmcgU3Ryb20genUKbGllZmVybi4KClN5bHZpYSBTZWlmZXJ0LCBkaWUgc2ljaCB2b3Iga3VyemVtIG5vY2ggdWViZXIgZGllICJNb25hcmNoaWUiIGtvZW5pZ2xpY2gKYW11ZXNpZXJ0ZSwgbWFjaHQgc2ljaCBudW4gZG9jaCBTb3JnZW46ICJJY2ggd29obmUgZ2VybmUgaGllciB1bmQgbW9lY2h0ZSBhdWNoCmJsZWliZW4uIFdvIHNvbnN0IGJla29tbWUgaWNoIG1pdCBtZWluZW4gdmllciBLaW5kZXJuIGVpbmUgdmVyZ2xlaWNoYmFyCmd1ZW5zdGlnZSBXb2hudW5nPyBEb2NoIHNvIGxhbmdzYW0gbXVzcyBtYW4gc2ljaCBqZWRlbiBNb3JnZW4gZnJhZ2VuLCB3YXMKamV0enQgd2llZGVyIHBhc3NpZXJ0IGlzdC4iCgpTaWNoZXIgc2VpIGVzIHVud2FocnNjaGVpbmxpY2gsIGRhc3MgYmFsZCBQYW56ZXIgZGVuIEtyZXV6YmVyZyBlcm9iZXJuCnd1ZXJkZW4uIFNpZSB0cmF1ZSBHb2VyaXR6IGFsbGVyZGluZ3MgZWluaWdlcyB6dSwgc2FndCBzaWUgaW4gQW5nc3QgdW0gc2ljaAp1bmQgaWhyZSBLaW5kZXIuIFdhcyBiYWxkIGF1ZiBkZW0gS3JldXpiZXJnIGdlc2NoZWhlbiBrb2VubnRlLCB0ZWlsdGUgR29lcml0egpIZWlrZSBXb2xmIG1pdCwgZGllIGViZW5mYWxscyBpbiBkZXIgVmlyZ2luaWFzdHJhc3NlIDExIHdvaG50LiBTaWUgc2NocmVpYmUKZGllIEF1dG9udW1tZXJuIGF1ZiwgdW0gaWhuZW4gbmV1ZSBLZW5uemVpY2hlbiB6dSB2ZXJzY2hhZmZlbi4gRGllc2Ugc29sbGVuIGltCktvZW5pZ3JlaWNoIGRpZSBOYW1lbiBkZXIgQXV0b2ZhaHJlciB0cmFnZW4uCgoiV2FzIG1hY2hlbiB3aXIsIHdlbm4gRnJhdSBHb2VyaXR6IG1pdHRlbiBpbiBkZXIgTmFjaHQgZGllIE51bW1lcm5zY2hpbGRlcgphYnNjaHJhdWJ0IiwgbWFsdCBzaWNoIFN5bHZpYSBTZWlmZXJ0IGF1cy4gVW5kIGlocmUgVG9jaHRlciBDb3Jpbm5hIEhvZmVyCnd1bmRlcnQgc2ljaCwgZGFzcyB3ZWRlciBTdGFkdCBub2NoIEp1c3RpeiBnZWdlbiBkYXMgQW5mYW5nIEF1Z3VzdCBhdXNnZXJ1ZmVuZQpLb2VuaWdyZWljaCAod2lyIGJlcmljaHRldGVuKSB2b3JnZWhlbjogIklyZ2VuZHdhcyBtdXNzIGFuIGRlciBTYWNoZSBkb2NoIGRyYW4Kc2Vpbi4gV2VubiB3aXIgamV0enQgZGFzIEtvZW5pZ3JlaWNoIEl4aGVpbSBhdXNydWZlbiB3dWVyZGVuLCBzYWVzc2VuIHdpciBkb2NoCnNjaG9uIGxhZW5nc3QgaW4gZGVyIEtsYXBzbXVlaGxlLiIKCkdvZXJpdHogaGF0IG1pdHRsZXJ3ZWlsZSBzb2dhciBkaWUgWndlaWJydWVja2VyIEZhY2hob2Noc2NodWxlIGlucyBWaXNpZXIKZ2Vub21tZW4uIERpZXNlIHNlaSBpbiBpaHJlbSBLb2VuaWdyZWljaCBuaWNodCBha2tyZWRpdGllcnQgdW5kIG5pY2h0CmdlbmVobWlndC4gRGVzd2VnZW4gbXVlc3NlIGRpZSBGYWNoaG9jaHNjaHVsZSA5MyBNaWxsaW9uZW4gRXVybyBGb2VyZGVyZ2VsZGVyCmFuIGRpZSBCdW5kZXNyZXB1YmxpayBEZXV0c2NobGFuZCB6dXJ1ZWNremFobGVuLiBVbmQgZnVlciBkaWUgRGlwbG9tYW5kZW4gaGF0CkdvZXJpdHogYXVjaCBzY2hsZWNodGUgTmFjaHJpY2h0ZW46IFNhZW10bGljaGUgQWJzY2hsdWVzc2UgYW4gZGVyCkZhY2hob2Noc2NodWxlIHNlaWVuIHJlY2h0c3dpZHJpZy4KCkRlciBad2VpYnJ1ZWNrZXIgTGVpdGVuZGUgT2JlcnN0YWF0c2Fud2FsdCBFYmVyaGFyZCBCYXllciBiZXRyYWNodGV0IGRpZQpFbnR3aWNrbHVuZ2VuIGF1ZiBkZW0gS3JldXpiZXJnIG1pdCBncm9zc2VtIEludGVyZXNzZS4gRWluZ3JlaWZlbiBrb2VubmUgZGllClN0YWF0c2Fud2FsdHNjaGFmdCBqZWRvY2ggbm9jaCBuaWNodC4gRGFzcyBGYW1pbGllIEdvZXJpdHogc2ljaCBtaXQKS29lbmlnc3RpdGVsbiBzY2htdWVja3QsIHNlaSBrZWluZSBBbXRzYW5tYXNzdW5nLiAiRGVyIFRpdGVsIGRlcyBLb2VuaWdzIHd1cmRlCmluIERldXRzY2hsYW5kIGFiZ2VzY2hhZmZ0LiBBbHNvIGlzdCBlciBhdWNoIG5pY2h0IGdlc2NodWV0enQiLCBlcmtsYWVydApCYXllci4gVW5kIGlociBLb2VuaWdyZWljaCBrb2VubmUgQ2hyaXN0ZWwgR29lcml0eiBnZXRyb3N0IGF1c3J1ZmVuOgoiQmxvZWRzaW5uIGlzdCBiaXMgamV0enQgbnVuIG1hbCBuaWNodCBzdHJhZmJhci4iIEVyc3QgbXVlc3NlIGRhcyBLb2VuaWdyZWljaAptaXQgWmFldW5lbiB1bmQgU2NobGFnYmFldW1lbiBlaW5nZWdyZW56dCB3ZXJkZW4uIEJheWVyOiAiRGFubiBsaWVndCBlaW5lCk5vZXRpZ3VuZyB2b3IuIgoKUXVlbGxlOiBodHRwOi8vd3d3LnB6LnBpcm1hc2Vucy5kZS9uZXdzLzAyL3N3cGZhbHovMDIwOTI4L2FuZ3N0LnBocDMKCndlaXRlcmUgSW5mb3M6IGh0dHA6Ly93d3cua29lbmlncmVpY2gta3JldXpiZXJnLmRlLnZ1LwoKSGFlbG1jaGVuLCBzY2hvY2tpZXJ0IHVlYmVyIHBmYWVsemlzY2hlIEhpcm5sb3NpZ2tlaXQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnVtZnJhZ2UgKERlZXBibHVlLCAxNS4gT2t0IDIwMDIsIDEwOjIwOjE0KToKSW0gbGV0enRlbiBNb25hdCBoYXQgZGllIFVOTyBlaW5lIHdlbHR3ZWl0ZSBVbWZyYWdlIGR1cmNoZ2VmdWVocnQuIApEaWUgRnJhZ2Ugd2FyOiAiR2ViZW4gU2llIHVucyBiaXR0ZSBpaHJlIGVocmxpY2hlIE1laW51bmcgenVyIExvZXN1bmcgZGVyCk5haHJ1bmdzLUtuYXBwaGVpdCBpbSBSZXN0IGRlciBXZWx0IGFiLiIgCgpEaWUgVW1mcmFnZSBzdGVsbHRlIHNpY2gsIG5pY2h0IHVuZXJ3YXJ0ZXQsIGFscyBSaWVzZW5mbG9wIGhlcmF1cy4gSW4gQWZyaWthCnd1c3N0ZW4gZGllIFRlaWxuZWhtZXIgbmljaHQgd2FzICJOYWhydW5nIiBpc3QuIE9zdGV1cm9wYSB3dXNzdGUgbmljaHQsIHdhcwoiZWhybGljaCIgaGVpc3N0LiBXZXN0ZXVyb3BhIGthbm50ZSBkYXMgV29ydCAiS25hcHBoZWl0IiBuaWNodC4gRGllIENoaW5lc2VuCnd1c3N0ZW4gbmljaHQsIHdhcyAiTWVpbnVuZyIgaXN0LiBEZXIgTmFoZSBPc3RlbiBmcmFndGUgbmFjaCwgd2FzIGRlbm4KIkxvZXN1bmciIGJlZGV1dGUuIFN1ZWRhbWVyaWthIGthbm50ZSBkaWUgQmVkZXV0dW5nIHZvbiAiYml0dGUiIG5pY2h0LiBVbmQgaW4KZGVuIFVTQSB3dXNzdGUgbmllbWFuZCwgd2FzICJkZXIgUmVzdCBkZXIgV2VsdCIgaXN0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktpbmRlci1UZXN0IChBbnRoZWEsIDE1LiBPa3QgMjAwMiwgMTQ6Mzg6NDUpOgpXaWUgbWFuIGhlcmF1c2ZpbmRldCwgb2IgbWFuIGJlcmVpdCBmdWVyIEtpbmRlciBpc3QuLi4gCgpEUkVDSy1URVNUOiAKYmVzY2htaWVyZSBkYXMgU29mYSB1bmQgZGllIFZvcmhhZW5nZSBtaXQgTnV0ZWxsYS4gTGVnZSBlaW4gRmlzY2hzdGFlYmNoZW4KaGludGVyIGRhcyBTb2ZhIHVuZCBsYXNzIGVzIGRlbiBnYW56ZW4gU29tbWVyIGRvcnQuIApTUElFTFpFVUctVEVTVDogCkJlc29yZ2UgZGlyIGVpbmUgMTUwIGwtS2lzdGUgbWl0IExlZ28tU3RlaW5lbi4gKEVyc2F0endlaXNlIHR1biBlcyBhdWNoCkhlZnR6d2Vja2VuIG9kZXIgU2NocmF1YmVuKS4gTGFzcyBlaW5lbiBGcmV1bmQgb2RlciBlaW5lIEZyZXVuZGluIGRpZSBMZWdvcyBpbgpkZXIgZ2FuemVuIFdvaG51bmcgdmVydGVpbGVuLiBWZXJiaW5kZSBudW4gZGVpbmUgQXVnZW4gdW5kIHZlcnN1Y2hlIGluIGRpZQpLdWVjaGUgb2RlciBkYXMgQmFkIHp1IGdlbGFuZ2VuLCBvaG5lIGRhYmVpIGVpbmVuIGVpbnppZ2VuIExhdXQgdm9uIGRpciB6dQpnZWJlbiAtIGR1IGtvZW5udGVzdCBkYXMgS2luZCBzY2hsaWVzc2xpY2ggd2Vja2VuLiAKRUlOS0FVRlMtVEVTVDogCkxlaWggZGlyIGVpbiBvZGVyIHp3ZWkga2xlaW5lIFRpZXJlIChaaWVnZW4gc2luZCBpbiBkaWVzZW0gRmFsbCBiZXNvbmRlcnMgenUKZW1wZmVobGVuKSB1bmQgbmVobWUgc2llIHp1IGRlaW5lbSBuYWVjaHN0ZW4gRWlua2F1ZiBtaXQuIEJlaGFsdGUgc2llIGRpZQpnYW56ZSBaZWl0IGltIEF1Z2UgdW5kIGJlemFobGUgYWxsZXMsIHdhcyBzaWUgZXNzZW4gb2RlciBrYXB1dHRtYWNoZW4uIApBTlpJRUgtVEVTVDogCkJlc29yZ2UgZGlyIGVpbmVuIGdyb3NzZW4gbGViZW5kZW4gVGludGVuZmlzY2guIFZlcnN1Y2hlIGRpZXNlbiBpbiBlaW4ga2xlaW5lcwpFaW5rYXVmc25ldHogenUgc3RlY2tlbiB1bmQgc3RlbGxlIHNpY2hlciwgZGFzcyBkdSBhdWNoIHdpcmtsaWNoIGFsbGUgQXJtZSBpbQpOZXR6IHZlcnN0YXVzdC4gCkZVZVRURVItVEVTVDogCkJlc29yZ2UgZGlyIGVpbmUgZ3Jvc3NlIFBsYXN0aWstVGFzc2UuIEZ1ZWxsZSBzaWUgYmlzIHp1ciBIYWVsZnRlIG1pdCBXYXNzZXIuCkJlZmVzdGlnZSBkaWUgVGFzc2UgbWl0IGVpbmVtIFBlbmRlbCBhbiBkZXIgRGVja2UgdW5kIGxhc3NlIGRpZSBUYXNzZSBoaW4gdW5kCmhlciBzY2h3aW5nZW4uIFZlcnN1Y2hlIG51biBsb2VmZmVsd2Vpc2UgbWF0c2NoaWdlIENvcm5mbGFrZXMgaW4gZGllIFRhc3NlIHp1CmJlZm9lcmRlcm4sIHdhZWhyZW5kIGR1IHZvcmdpZWJzdCwgZWluIEZsdWd6ZXVnIHp1IHNlaW4uIEpldHp0IHZlcnRlaWxlIGRlbgpJbmhhbHQgZGVyIFRhc3NlIGF1ZiBkZW0gZ2VzYW10ZW4gRnVzc2JvZGVuLiBCbGVpYmUgZ2VsYXNzZW4uIApOQUNIVC1URVNUOiAKQmVyZWl0ZSBkaWNoIGZvbGdlbmRlcm1hc3NlbiB2b3I6IEZ1ZWxsZSBlaW5lbiBLaXNzZW5iZXp1ZyBtaXQgMy00IEtpbG8KZmV1Y2h0ZW0gU2FuZC4gClVtIDYgVWhyIG5hY2htaXR0YWdzIGJlZ2lubmUgbWl0IGRlbSBLaXNzZW5iZXp1ZyBkdXJjaCBkaWUgV29obnVuZyB6dSBsYXVmZW4sCndvYmVpIGR1IGlobiBwZXJtYW5lbnQgaGluIHVuZCBoZXIgd2llZ3N0LiAKVHVlIGRpZXMgYmlzIHVuZ2VmYWVociA5IFVoci4gTGVnZSBkZW4gS2lzc2VuYmV6dWcgamV0enQgaW5zIEJldHQgdW5kIHN0ZWxsZQpkZW4gV2Vja2VyIGF1ZiAyIFVociBuYWNodHMuIApVbSAyIFVociBzdGVoZSBhdWYgdW5kIHRyYWdlIGRlbiBLaXNzZW5iZXp1ZyB3aWVkZXIgZnVlciBlaW5lIFN0dW5kZSBkdXJjaCBkaWUKV29obnVuZywgc2luZ2UgZGllc21hbCBlaW5pZ2UgU2NobGFmbGllZGVyIGRhYmVpLiAKU3RlbGxlIGRlbiBXZWNrZXIgYXVmIDUgVWhyIHVuZCB3aWVkZXJob2xlIHp1IGRpZXNlciBaZWl0IFNjaHJpdHQgNCwgdmVyc3VjaGUKZGljaCBhbiBub2NoIG1laHIgU2NobGFmbGllZGVyIHp1IGVyaW5uZXJuLiAKU3RlbGxlIGRlbiBXZWNrZXIgYXVmIDcgVWhyLCBzdGVoZSBhdWYgdW5kIGJlcmVpdGUgZGFzIEZydWVoc3R1ZWNrIHZvci4gCldpZWRlcmhvbGUgZGFzIEdhbnplIE5hY2h0IGZ1ZXIgTmFjaHQsIG1pbmRlc3RlbnMgMyBKYWhyZSBsYW5nLiAKQmxlaWJlIHRhcGZlciEgCkdFU0NISUNLTElDSEtFSVRTVEVTVCBGVWVSIEtJTkRFUkdBUlRFTiBVTkQgR1JVTkRTQ0hVTEU6IApOZWhtZSBlaW5lbiBFaWVyLUthcnRvbi4gTmVobWUgZWluZSBTY2hlcmUgdW5kIFdhc3Nlcm1hbGZhcmJlbiB1bmQgdmVyd2FuZGVsCmRlbiBFaWVya2FydG9uIGluIGVpbiBLcm9rb2RpbC4gTnVuIHZlcndhbmRsZSBlaW5lIFRvaWxldHRlbnBhcGllcnJvbGxlIGluCmVpbmUgYXR0cmFrdGl2ZSBXZWlobmFjaHRza2VyemUuIEpldHp0IHZlcnN1Y2hlIG51ciBhdXMgVGVzYWZpbG0gdW5kClplbGxvcGhhbmZvbGllIGVpbmUgZXhha3RlIEtvcGllIGRlcyBFaWZmZWx0dXJtcyBoZXJ6dXN0ZWxsZW4uIEhlcnpsaWNoZW4KR2x1ZWNrd3Vuc2NoLiAKQVVUTy1URVNUOiAKVmVya2F1ZmUgZGVuIEJNVyB1bmQga2F1ZmUgc3RhdHQgZGVzc2VuIGVpbmVuIFJlbmF1bHQgS0FOR09PLiBKZXR6dCBuZWhtZSBlaW4KU2Nob2tvbGFkZW4tRWlzIHVuZCBwbGF6aWVyZSBlcyBpbSBIYW5kc2NodWhmYWNoLiBMYXNzIGVzIGRvcnQhIE5laG1lIGVpbgoxMC1QZmVubmlnIFN0dWVjayB1bmQgc3RlY2tlIGVzIGluIGRlbiBLYXNzZXR0ZW5zcGllbGVyLiBaZXJrcnVlbW1sZSBkZW4KSW5oYWx0IGVpbmVyIEZhbWlsaWVuLVBhY2t1bmcgQnV0dGVya2Vrc2UgYXVmIGRlbSBSdWVja3NpdHouIFplcmtyYXR6ZSBtaXQKZWluZXIgR2FydGVuaGFya2UgZGllIFR1ZXJlbiBkZXMgQXV0b3MuIApBQlNDSExVU1MtVEVTVDogCkZpbmRlIGVpbiBQYWVyY2hlbiwgZGFzIHNjaG9uIGVpbiBrbGVpbmVzIEtpbmQgaGF0LiBHZWJlIGlobmVuIGd1dGUKUmF0c2NobGFlZ2UgenUgVGhlbWVuIHdpZTogRGlzemlwbGluLCBHZWR1bGQsIFRvbGVyYW56LCBUb2VwZmNoZW4tVHJhaW5pbmcgdW5kClRpc2NoLU1hbmllcmVuLiBNYWNoZSBtb2VnbGljaHN0IHZpZWxlIGtsdWdlIFZlcmJlc3NlcnVuZ3N2b3JzY2hsYWVnZS4gQmV0b25lLAp3aWUgd2ljaHRpZyBlaW5lIGtvbnNlcXVlbnRlIEVyemllaHVuZyBpc3QuIEdlbmllc3NlIGRhcyBFeHBlcmltZW50LCBlcyBpc3QKZGFzIGxldHp0ZSBNYWwsIGRhc3MgRHUgYWxsIGRpZXNlIGd1dGVuIEFudHdvcnRlbiBwYXJhdCBoYXN0LiBWZXJtdXRsaWNoIGlzdAplcyBhdWNoIGRhcyBsZXR6dGUgTWFsLCBkYXNzIER1IGRpZXNlcyBQYWVyY2hlbiBzaWVoc3QhISEgCkRhcyBpc3QgZGFzIEVuZGUgZGVzIFRlc3RzLiBXZW5uIER1IGRlbiBUZXN0IGJlc3RhbmRlbiBoYXN0OiBWaWVsIFNwYXNzIGJlaQpkZXIgS2luZGVyLUhlcnN0ZWxsdW5nISAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxlaHJlciAoT3JrdHJvZXRlciwgMTguIE9rdCAyMDAyLCAxNzoxODo0Nik6CkRpZSBMZWhyZXJpbiBmcmFndCBGcml0emNoZW46ICdXZW5uIGF1ZiBlaW5lbSBCYXVtIDUgVm9lZ2VsIHNpdHplbiB1bmQgaWNoCnNjaGllc3NlIGVpbmVuIGhlcnVudGVyLCB3aWV2aWVsZSBibGVpYmVuIGRhbm4gYXVmIGRlbSBCYXVtPycKCkZyaXR6Y2hlbjogJ0tlaW5lciwgd2VpbCBhbGxlIG5hY2ggZGVtIFNjaHVzcyBkYXZvbmZsaWVnZW4hJwpNZWludCBkaWUgTGVocmVyaW46ICdFcyBpc3QgbmljaHQgZGllIEFudHdvcnQsIGRpZSBpY2ggZXJ3YXJ0ZXQgaGFiZSxhYmVyCmljaCBtYWcgZGllIEFydCwgd2llIER1IGRlbmtzdC4nCgpNZWludCBGcml0emNoZW46ICdEYSBoYWV0dGUgaWNoIGFiZXIgYXVjaCBlaW5lIEZyYWdlIGFuIFNpZSwgRnJhdQpMZWhyZXJpbjoKRHJlaSBEYW1lbiBzaXR6ZW4gaW0gRWlzc2Fsb247IGVpbmUgbGVja3QgaWhyIEVpcywgZWluZSBiZWlzc3QgaWhyIEVpcyB1bmQKZGllIGRyaXR0ZSBzYXVndCBhbiBpaHJlbSBFaXMuIFdlbGNoZSBkZXIgRGFtZW4gaXN0IHZlcmhlaXJhdGV0PycKCkRpZSBMZWhyZXJpbiBlcnJvZXRldCB1bmQgbWVpbnQgZGFubiBnYW56IGxlaXNlOiAnSWNoIGdsYXViZSwgZGllLCBkaWUgYW0gRWlzCnNhdWd0LicKCk1laW50IEZyaXR6Y2hlbjogJ05laW4sIGVzIGlzdCBkaWUsIGRpZSBlaW5lbiBFaGVyaW5nIHRyYWVndC4gQWJlciBpY2gKbWFnIGRpZSBBcnQsIHdpZSBTaWUgZGVua2VuIScKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWdvbiB1bmQgRWRlIChSb2xhbmQsIDIxLiBPa3QgMjAwMiwgMjM6MTg6NTkpOgoKRWdvbiB1bmQgRWRlIHNpdHplbiBpbiBlaW5lciBaZWxsZSBlaW4uCkRlbiB6d2VpZW4gaXMgdG90YWwgbGFuZ3dlaWxpZy4KZGEgc2NobGFlZ3QgRWdvbiB2b3I6IFdvbGxtZXIgS2F1ZmxhZGVuIHNwaWVsZW4/CkVkZSBuaWNrdC4KCkVnb24gdmVyc3RlY2t0IHNpY2ggaGludGVyIGRlbSBUaXNjaC4KRWRlIGdlaHQgenVyIFplbGxlbiB0dWVyIHVuZCBkYW5uIHdpZWRlciBhdWYgRWdvbiB6dS4KCkVnb24gd3Vlcmd0IGFiOiBEdSBtdXN0IGRpZSBUdWVya2xpbmdlbCBtYWNoZW4hISEKRWRlIGdlaHQgenVydWVjay4KCkVkZSBzYWd0OiBQYWxpbSxQYWxpbS4uCnVuZCBnZWh0IGF1ZiBkZW4gVGlzY2ggenUuCgpFZ29uIHNwcmluZ3QgYXVmIHVuZCBzYWd0OgpFZ29uIHNhZ3Q6IEphLCBiaXR0ZS4gV2FzIHd1ZW5zY2hlbiBzaWU/CgpFZGUgc2FndDogRWluZSBGbGFzY2hlIFBvbW1lcyBiaXR0ZSEKRWdvbiBzYWd0OiBFcyBnaWJ0IGtlaW5lIFBvbW1lcyBpbiBGbGFzY2hlbi4KRWdvbiBzYWd0OiBub2NobWFsCgpFZGUgZ2VodCB6dXIgWmVsbGVudHVlciwgRWdvbiB2ZXJzdGVja3Qgc2ljaCBoaW50ZXIgZGVtIFRpc2NoLgoKRWRlIHNhZ3Q6IFBhbGltLFBhbGltLi4uCnVudCBnZWh0IGF1ZiBkZW4gVGlzY2ggenUuCgpFZ29uIHNwcmluZ3QgYXVmIHVuZCBzYWd0OgpFZ29uIHNhZ3Q6IEphLCBiaXR0ZS4gV2FzIHd1ZW5zY2hlbiBzaWU/CkVkZSBzYWd0OiBFaW5lIEZsYXNjaGUgUG9tbWVzIGJpdHRlIQpFZ29uIHNhZ3Q6IEVzIGdpYnQga2VpbmUgUG9tbWVzIGluIEZsYXNjaGVuLgoKRWdvbiBzYWd0OiBEdSBiaXN0IGVjaHQgenUgRG9vZi4uLiAKRWdvbiBzYWd0OiBXaXIgd2VjaHNlbG4sIER1IGJpc3QgamV0enQgZGVyIFZlcmthZXVmZXIhCgpFZGUgaGludGVybiBUaXNjaCwgRWdvbiB6dXIgVHVlci4KCkVnb24gc2FndDogUGFsaW0sUGFsaW0uLi4KdW5kIGdlaHQgYXVmIGRlbiBUaXNjaCB6dS4KCkVkZSBzYWd0OiBKYSwgYml0dGUuIFdhcyB3dWVuc2NoZW4gc2llPwpFZ29uIHNhZ3Q6IEVpbm1hbCBQb21tZXMgYml0dGUhCgpFZGUgRnJhZ3Q6IEpBLCBIQUJFTiBTSUUgREVOIEFVQ0ggRUlORSBGTEFTQ0hFIERBQkVJPz8/CgouLi4gUm9sYW5kIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWdvbiB1bmQgRWRlIChNdXBmZWwsIDIzLiBPa3QgMjAwMiwgMjA6NTU6MzUpOgp+IyEgcm49Um9sYW5kIHJ0PTEwMzUyMzUxMzkgcmc9d2l0emUKfiMhIHRpZD0xMDM1MjM1MTM5Ck9oZ290dCBkZXIgaXN0IGFsdC4uLiB2ZXJtdXRsaWNoIGFlbHRlciBhbHMgUm9sYW5kIDspCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWndlcmdlIChOb25uZSwgMjQuIE9rdCAyMDAyLCAxMjo1Mjo1Nik6CldhaHJzY2hlaW5saWNoIGFsdCwga2FubnRlIGljaCBhYmVyIG5vY2ggbmljaHQgdW5kIGxhY2hlbiBtdXNzdGUgaWNoIGF1Y2gKKGRlLnRhbGsuam9rZXMpOgoKWndlaSBad2VyZ2UgZ2VoZW4gaW5zIEJvcmRlbGwuLi4uCgpEaWUgYmVpZGVuIHN1Y2hlbiBzaWNoIHp3ZWkgRGFtZW4gYXVzIHVuZCBnZWhlbiBtaXQgZGllc2VuIGF1ZiBkaWUKWmltbWVyLCBkaWUgV2FuZCBhbiBXYW5kIGxpZWdlbi4KCkRlciBlaW5lIFp3ZXJnIHdpbGwgZ2VyYWRlIGxvc2xlZ2VuLCBkYSBiZWtvbW10IGVyIGtlaW5lbiBob2NoIHVuZAp3YWVocmVuZCBlciBub2NoIHZlcnN1Y2h0IHNpY2ggenUga29uemVudHJpZXJlbiwgZGFtaXQgZXMgZG9jaCBub2NoCmtsYXBwdCwgaG9lcnQgZXIgYXVzIGRlbSBOZWJlbnJhdW0gZGllIFdvcnRlOiAiRWlucywgendlaSB1bmQgaG9wcC4KCiJBaGEiLCBkZW5rdCBlciBzaWNoLCAiTWVpbiBLb2xsZWdlIGhhdCBTcGFzcyB1bmQgaWNoIGJla29tbWUga2VpbmVuCmhvY2guIiBFciB2ZXJzdWNodCBzaWNoIHp1IGtvbnplcm50cmllcmVuLCBhYmVyIGltbWVyIHdpZWRlciBob2VydCBlcgp2b24gZHJ1ZWJlbiBkaWUgV29ydGU6IEVpbnMsIHp3ZWkgdW5kIEhvcHAhIiBTY2hsaWVzc2xpY2ggaXN0IGVyCmdlZnJ1c3RldCB1bmQgZ2VodCBhbiBkaWUgQmFyLiBOYWNoIGVpbmlnZXIgWmVpdCBrb21tdCBzZWluIEt1bXBlbCBhbgp1bmQgc3RlbGx0IHNpY2ggZGF6dS4KCiJOYSB3aWUgd2Fycz8iLCBmcmFndGUgZGVyIHp1bGV0enQgQW5nZWtvbW1lbmUuICJTY2hsZWNodCIsIGFudHdvcnRldApkZXIgZXJzdGUgWndlcmcsICJJY2ggYmVrYW0ga2VpbmVuIGhvY2guIiAiRGFzIG1hY2h0IG5pY2h0cyIsIHRyb2VzdGV0CmRlciBBbmRlcmUuICJJY2ggYmluIG5vY2ggbmljaHQgbWFsIGF1ZnMgQmV0dCBnZWtvbW1lbi4iCgoKTm9ubmUsIGdyaW5zZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaSBoYXRlIGNhdHMgKE11cGZlbCwgMjUuIE9rdCAyMDAyLCAyMzozMzo1Nik6Cmh0dHA6Ly93d3cuc2tpcG1vcnJvdy5jb20vaHRtbC9nYWxsZXJpZXMvY2F0cy1mcmFtZXNldC5odG1sCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGkgaGF0ZSBjYXRzIChMZWlibml6LCAyNi4gT2t0IDIwMDIsIDAwOjM0OjQ0KToKfiMhIHJuPU11cGZlbCBydD0xMDM1NTgxNjM2IHJnPXdpdHplCn4jISB0aWQ9MTAzNTU4MTYzNgppY2ggaGFiIGRlbiB2ZXJkYWNodCwgZGFzcyBpbWRhIGRpZXNlIHNlaXRlIHNlaHIgbW9lZ2VuIHdpcmQuLi4KCmxlaWJpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGbGllZ2lnIChBbnRoZWEsICA0LiBOb3YgMjAwMiwgMTU6MDQ6MzApOgpEcmVpIFNhbXVyYWkgendlaSBncm9zc2Ugc3RhdHRsaWNoZSB1bmQgZWluIGtsZWluZXIgc2NobXVkZGVsaWdlciBzdGVoZW4gdm9yCmRlbSBncm9zc2VuIE1laXN0ZXIgdW5kIHdvbGxlbiBpaHJlIGxldHp0ZSBQcnVlZnVuZyBhYmxlZ2VuLiBEZXIgZXJzdGUgdHJpdHQKdm9yIGdyb3NzZXIgTWVpc3RlciBncmVpZnQgaGludGVyIHNpY2ggaG9sdCBhdXMgZWluZXIgU3RyZWljaGhvbHpzY2hhY2h0ZWwKZWluZSBGbGllZ2UgdW5kIGxhZXNzdCBzaWUgZmxpZWdlbi4gU2FtdXJhaSBibGl0enNjaG5lbGxlIEJld2VndW5nIG1pdCBTYWViZWwKLSBGbGllZ2UgZmFlbGx0IGluIHp3ZWkgVGVpbGVuIGF1ZiBkaWUgRXJkZS4gTWVpc3RlciBuaWNrdCBiZWZyaWVkaWd0IC0KUHJ1ZWZ1bmcgYmVzdGFuZGVuLgpad2VpdGVyIFNhbXVyYWkgdHJpdHQgdm9yIC0gYXVjaCB3aWVkZXIgRmxpZWdlLiBad2VpIGJsaXR6c2NobmVsbGUgQmV3ZWd1bmdlbgotIEZsaWVnZSBmYWVsbHQgaW4gdmllciB0ZWlsZW4gYXVmIGRpZSBFcmRlLiBNZWlzdGVyIGdydW56dCB6dWZyaWVkZW4uIEpldHp0CmtvbW10IGRlciBrbGVpbmUgc2NobXVkZGVsaWdlLiAnQXVjaCBTYW11cmFpPycgcmFuenQgZGVyIE1laXN0ZXIuICdKYScKbnVzY2hlbHQgZGVyLiBFcyBrb21tdCB3aWVkZXIgZWluZQpGbGllZ2UgenVtIEVpbnNhdHouIERlciByZWlzc3QgZGVuIFNhZWJlbCByYXVzIGtyZWlzY2h0IHdpZSBlaW4gYW5nZWJyYW5udGVzCkh1aG4gdW5kIGhhdXQgbWl0IGRlbSBTYWViZWwgd2llIHdpbGQgZHVyY2ggZGllIEx1ZnQuIERpZSBGbGllZ2UgYnJ1bW10IGRhdm9uLgpHcm9zc2VyIE1laXN0ZXIgd2lua3QgaWhuIHp1IHNpY2ggYnJ1ZWxsdCBkZW4gS2xlaW5lbiBhbjogJ0RpZSBlcnN0ZSBGbGllZ2UKendlaSBUZWlsZSBkaWUgendlaXRlIEZsaWVnZSB2aWVyIFRlaWxlIHVuZCBkZWluZSBmbGllZ3QgaW1tZXIgbm9jaCE/JwonSmEhJyBudXNjaGVsdCBkZXIgS2xlaW5lLiAnRmxpZWdlbiBrYW5uIHNpZSBub2NoIGFiZXIgenVyIEZvcnRwZmxhbnp1bmcKcmVpY2h0IGVzIG5pY2h0IG1laHIhJyAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogdW1mcmFnZSAoQXJrLCAgNC4gTm92IDIwMDIsIDE4OjQ4OjA5KToKfiMhIHJuPURlZXBibHVlIHJ0PTEwMzQ2NzAwMTQgcmc9d2l0emUKfiMhIHRpZD0xMDM0NjcwMDE0CkhtLCB3YXIgd2FlaHJlbmQgbWVpbmVzIFVybGF1YnMgdW5kIHVlYmVybGVzZW4gOykKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCaWViZWwgYWt0dWVsbCAoRGVlcGJsdWUsICA1LiBOb3YgMjAwMiwgMDg6NTM6MjUpOgpEaWUgQmliZWwgdW5kIGRpZSBjaHJpc3RsaWNoZSBUcmFkaXRpb24gc2luZCBlcnN0YXVubGljaCBha3R1ZWxsLgpEaWUgbmV1ZXN0ZW4gQW50d29ydGVuIHVuZCBGb3JzY2h1bmdzZXJrZW5udG5pc3NlIHp1IGFsbGVuIHdpY2h0aWdlbiBGcmFnZW4KZGVyIE1lbnNjaGhlaXQga2FubiBtYW4gaGllciBhdWZmaW5kZW4uCgpXbyB3aXJkIGRpZSBCdW5kZXN3ZWhyIGluIGRlciBCaWJlbCBlcndhZWhudD8KJ1NpZSB0cnVnZW4gc2VsdHNhbWUgR2V3YWVuZGVyIHVuZCBpcnJ0ZW4gemllbGxvcyB1bWhlci4nCgpXZWxjaGVzIGlzdCBkaWUgc2Nob2Vuc3RlIFN0YWR0IGF1ZiBFcmRlbj8KRXJsYW5nZW4uIERlbm46ICdTdWNoZXQgZGFzIEhpbW1lbHJlaWNoIHp1IEVybGFuZ2VuIScKCkhhdHRlIEplc3VzIGVpbmUgRnJldW5kaW4/CkphIHNpY2hlci4gU2llaGU6ICdFciBnaW5nIGluIGRpZSBXdWVzdGUgdW5kIGlobSBmb2xndGUgZWluZSBsYW5nZSBEdWVycmUuJwoKV2llIHdhciBkZXIgTmFjaG5haG1lIHZvbiBKb3NlZiwgZGVtIFZhdGVyIHZvbiBKZXN1cz8KRmxvaC4gQmV3ZWlzOiAnSm9zZWYgRmxvaCBhdXMgTmF6YXJldGguJwoKV2VyIHdhciBkZXIgZXJzdGUgTWVuc2NoPwpEZXIgU2FjaHNlIEtyYXVzZS4gLSBRdWVsbGU6ICdHb3R0IHNjaGF1dGUgbWl0IEdyYXVzZW4gaW4gZGllIFRpZWZlLicKCldlciB3YXIgZGVyIGVyc3RlIEtlbGxuZXI/CkRlciBIZWlsaWdlIEdlaXN0LiAtIFF1ZWxsZTogJ0VyIG5haHRlIG1pdCBCcmF1c2VuLicKCldlciB3YXIgZGVyIGVyc3RlIEt1dHNjaGVyOgpMZWlkLiAtIFF1ZWxsZTogJ0xlaWQgd2lyZCBkaXIgbmllIHdpZWRhIGZhaHJlbi4nCihWaWVsbGVpY2h0IGVoZXIgZnVlciBCZXJsaW5lciB2ZXJzdGFlbmRsaWNoLikKCldvIGxpZWYgZGllIGVyc3RlICJBdXRvbnVtbWVyIj8KRGFzIGlzdCBlaW5mYWNoLiAtIFF1ZWxsZTogJy4uLnVuZCBzaWUgc3VlbmRpZ3RlbiBpbiBlaW5lbSBGb3JkLicKClZvbiB3ZWxjaGVyIE1hcmtlIHdhciBkYXMgZXJzdGUgTW90b3JyYWQ6ClRyaXVtcGguIC0gUXVlbGxlOiAnSmVzdXMgZnVociBtaXQgVHJpdW1waCBnZW4gSGltbWVsIQoKV2VyIHdhciBkZXIgZXJzdGUgVmVya2VocnNzdWVuZGVyIGRlciBXZWx0PwpKZXN1cyBtaXQgc2VpbmVuIDEyIEFuaGFlbmdlcm4uCgpXaWUgaXN0IGRlciBOYW1lIEdvdHRlcz8KRXJuc3QgR3Jvc3MuIC0gUXVlbGxlOiAnV2VyIG1pY2ggbWl0IEVybnN0IGFucnVmdCwgd2lyZCBlcmhvZXJ0IHdlcmRlbi4gRGVubgptZWluIE5hbWUgaXN0IEdyb3NzLicKCldlciBzcGllbHRlIGluIGRlciBlcnN0ZW4gRnVzc2JhbGxtYW5uc2NoYWZ0PwpKZXN1cyB1bmQgc2VpbmUgSnVlbmdlci4KUXVlbGxlOiAnSmVzdXMgc3RhbmQgaW0gVG9yIHZvbiBOYXphcmV0aCB1bmQgc2VpbmUgSnVlbmdlciBzdGFuZGVuIEFic2VpdHMuJwoKV2llIHdhciBkZXIgTmFtZSBkZXMgZXJzdGVuIERpY2h0ZXJzPwpOZWJlbC4gLSBRdWVsbGU6ICdVbmQgRGljaHRlciBOZWJlbCBsYWcgYXVmIGRlciBFcmRlLicKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnN1ZXNzZSBSYWNoZSAoRGVlcGJsdWUsICA1LiBOb3YgMjAwMiwgMDg6NTY6MjUpOgpOaWUgaGF0dGUgaWNoIHZlcnN0YW5kZW4sIHdhcnVtIGRpZSBzZXh1ZWxsZW4gQmVkdWVyZm5pc3NlIHZvbiBNYW5uIHVuZCBGcmF1CnNvIHVudGVyc2NoaWVkbGljaCBzaW5kLiBOaWUgaGF0dGUgaWNoIGRpZXNlIEdlc2NoaWNodGVuIHZvbiBNYXJzIHVuZCBWZW51cwp2ZXJzdGFuZGVuLiBVbmQgd2FydW0gd2lyIE1hZW5uZXIgbWl0IGRlbSBLb3BmIGRlbmtlbiB1bmQgZGllIEZyYXVlbiBtaXQgZGVtCkhlcnplbiwgYXVjaCBkYXMgaGFiZSBpY2ggbmllIHZlcnN0YW5kZW4uCgpFaW5lcyBOYWNodHMsIGxldHp0ZSBXb2NoZSwgc2luZCBtZWluZSBGcmF1IHVuZCBpY2ggaW5zIEJldHQgZ2VnYW5nZW4uCk5hIGphLCB3aXIgZmluZ2VuIGFuLCB1bnMgd29obCB6dSBmdWVobGVuIHVuZCwgZ2VuYXUgaW4gZGllc2VtIE1vbWVudCwgc2FndGUKc2llOiAiSWNoIGdsYXViZSwgaWNoIGhhYmUgamV0enQga2VpbmUgTHVzdCwgaWNoIG1vZWNodGUgbnVyIHZvbiBEaXIgaW4gZGVuCkFybSBnZW5vbW1lbiB3ZXJkZW4iCkljaCBzYWd0ZTogIldhcz8hPyE/ISIgVW5kIHNvIHNhZ3RlIFNpZSBkaWUgV29ydGUsIGRpZSBqZWRlciBNYW5uIGF1ZiBkaWVzZW0KUGxhbmV0ZW4gZnVlcmNodGV0OiAiRHUga2FubnN0IERpY2ggbmljaHQgbWl0IG1laW5lbiBlbW90aW9uYWxlbiBCZWR1ZXJmbmlzc2VuCmFscyBGcmF1IGlkZW50aWZpemllcmVuLiIKCkljaCBiZWdhbm4genUgZ2xhdWJlbiwgaWNoIGhhYmUgYWxzIE1hbm4gdmVyc2FndC4gU2NobGllc3NsaWNoIGdpbmcgaWNoIGRhdm9uCmF1cywgZGFzcyBkaWVzZSBOYWNodCBuaWNodHMgbWVociBnZXNjaGVoZW4gd3VlcmRlIHVuZCBzY2hsaWVmIGVpbi4KCkFtIG5hZWNoc3RlbiBTYW1zdGFnIGdpbmdlbiB3aXIgZ2VtZWluc2FtIGVpbmthdWZlbi4gSW4gZWluZW0gZ3Jvc3NlbiBLYXVmaGF1cwpmYW5kIG1laW5lIEZyYXUgZHJlaSBLbGVpZGVyIGRpZSBpaHIgZ2VmaWVsZW4uIFdhZWhyZW5kIHNpZSBkaWVzZSBhbnByb2JpZXJ0ZSwKZ2luZyBpY2ggbWljaCB1bXNjaGF1ZW4uIEFscyBpY2ggenVydWVja2thbSBoYXR0ZSBzaWUgc2ljaCBpbW1lciBub2NoIG5pY2h0CmVudHNjaGllZGVuLCB3ZWxjaGVzIGRlciBLbGVpZGVyIHNpZSBrYXVmZW4gc29sbHRlbi4gCkFsc28gc2NobHVnIGljaCBpaHIgdm9yLCBhbGxlIGRyZWkgbWl0enVuZWhtZW4uIApEYW5uIHNhZ3RlIHNpZSBtaXIsIGRhc3Mgc2llIGRhenUgamV3ZWlscyBlaW4gcGFzc2VuZGVzIFBhYXIgU2NodWhlIGJyYWV1Y2h0ZQp1bmQgaWNoIGFudHdvcnRldGUgaWhyLCBkYXNzIGRhcyBlaW5lIGd1dGUgSWRlZSB3YWVyZS4gQW5zY2hsaWVzc2VuZCBrYW1lbiB3aXIKaW4gZGllIFNjaG11Y2thYnRlaWx1bmcsIHdvIHdpciBtaXQgZWluIFBhYXIgRGlhbWFudG9ocnJpbmdlbiB3aWVkZXIKaGVyYXVza2FtZW4uIFNpZSB3YXIgc28gZ2x1ZWNrbGljaCB1bmQgYXVmZ2VyZWd0ISBTaWUgbXVzc3RlIGRlbmtlbiwgaWNoIHNlaQp0b3RhbCB2ZXJydWVja3QsIGFiZXIgZGFzIHNjaGllbiBzaWUgbmljaHQgYmVzb25kZXJzIHp1IGJldW5ydWhpZ2VuLgoKSWNoIGdsYXViZSwgc2llIHdvbGx0ZSBtaWNoIGF1ZiBkaWUgUHJvYmUgc3RlbGxlbiwgYWxzIHNpZSBuYWNoIGVpbmVtClRlbm5pc3NjaGxhZWdlciBmcmFndGUgKHNpZSBzcGllbHQgbmFlbWxpY2ggZ2FyIGtlaW4gVGVubmlzKS4gVW5kIGljaCBnbGF1YmUsCmljaCBoYWJlIGlocmUgVm9yc3RlbGx1bmdlbiB2b24gbWlyIHplcnN0b2VydCwgYWxzIGljaCBzYWd0ZSwgZGFzIHdhZXJlIGluCk9yZG51bmcuCgpTaWUgd2FyIGZhc3Qgc2V4dWVsbCBlcnJlZ3QuIElociBoYWV0dGV0IGlociBHZXNpY2h0IHNlaGVuIHNvbGxlbiBhbHMgc2llCnNhZ3RlOiAiTGFzcyB1bnMgenVyIEthc3NlIGdlaGVuIHVuZCBiZXphaGxlbi4iIEVzIGlzdCBtaXIgbmljaHQgbGVpY2h0CmdlZmFsbGVuLCBtaWNoIHp1c2FtbWVuIHp1IHJlaXNzZW4sIGFiZXIgaWNoIHNhZ3RlOiAiTmVpbiBtZWluIFNjaGF0eiwgaWNoCmdsYXViZSwgaWNoIGhhYmUgamV0enQga2VpbmUgTHVzdCBkaWVzIGFsbGVzIHp1IGthdWZlbi4iIFNpZSB3dXJkZQprcmVpZGVibGVpY2guIEljaCBzZXR6dGUgbmFjaDogIkljaCBtb2VjaHRlIG51ciB2b24gRGlyIGluIGRlbiBBcm0gZ2Vub21tZW4Kd2VyZGVuLiIgSW0gTW9tZW50IGluIGRlbSBzaWUgbWljaCBhbmJsaWNrdGUsIGFscyBvYiBzaWUgbWljaCB1bWJyaW5nZW4Kd29sbHRlLCBzYWd0ZSBpY2g6ICJEdSBrYW5uc3QgRGljaCBuaWNodCBtaXQgbWVpbmVuIGZpbmFuemllbGxlbiBCZWR1ZXJmbmlzc2VuCmFscyBNYW5uIGlkZW50aWZpemllcmVuLiIKCkljaCBnbGF1YmUsIFNleCB3aXJkIGVzIGVyc3Qgd2llZGVyIGluIDIwMDMgZ2ViZW4sIHZpZWxsZWljaHQgamVkZW5mYWxscyAuLi4KCkFiZXIsIGFjaCEsIHdlbGNoIHN1ZXNzZSBXb2hsdGF0IGRvY2ggUmFjaGUgaXN0LiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRlLnRhbGsuam9rZXMgKE5vbm5lLCAgNS4gTm92IDIwMDIsIDE0OjMzOjU4KToKSWNoIHdhciBhdWYgZGVyIEF1dG9iYWhuLCBhbHMgaWNoIG1pY2ggZW50c2NobG9zcywga3VyeiBhbnp1aGFsdGVuLCB1bSBhdWYKZGllIFRvaWxldHRlIHp1IGdlaGVuLgpEaWUgZXJzdGUgd2FyIGJlc2V0enQsIGFsc28gZ2luZyBpY2ggaW4gZGllIHp3ZWl0ZS4uLi4uCkthdW0gc2l0emUgaWNoLCBzYWd0IGVpbmUgU3RpbW1lIGF1cyBkZW0gYW5kZXJlbiBXQzogSGFsbG8sIHdpZSBnZWh0IGVzIGRpcj8KQmluIHZvbiBCZWthbm50c2NoYWZ0ZW4gYXVmIEF1dG9iYWhuLVdDcyBuaWNodCBzZWhyIGJlZ2Vpc3RlcnQsIGFiZXIKdHJvdHpkZW0gYW50d29ydGUgaWNoOgotIE5hIGphLCBnZWh0IHNvLi4uLgoKVW5kIGRlciBhbmRlcmU6Ci0gVW5kIHdhcyBtYWNoc3QgZHUgc2Nob2VuZXM/CgpXYXMgc29sbCBkZW5uIGRhcz8gRGllIFNpdHVhdGlvbiBzY2hlaW50IG1pciBlaW4gd2VuaWcgYml6YXJyLCBhYmVyIGljaAphbnR3b3J0ZToKLSBOYSwgZGFzIHdhcyBkdSBoaWVyIG1hY2hzdC4uLi4KCkRhIGhvZXJlIGljaCBkZW4gVHlwIGlycml0aWVydCBzYWdlbjoKLSBIb2VyIG1hbCwgaWNoIHJ1ZiBkaWNoIHNwYWV0ZXIgYW4sIGVpbiBBcnNjaGxvY2ggbmViZW5hbiBhbnR3b3J0ZXQgYXVmIGFsbAptZWluZSBGcmFnZW4gIQoKTm9ubmUsIGdyaW5zZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJpZWJlbCBha3R1ZWxsIChSb2NodXMsICA1LiBOb3YgMjAwMiwgMjA6NTA6MTcpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTAzNjQ4MjgwNSByZz13aXR6ZQp+IyEgdGlkPTEwMzY0ODI4MDUKV2VyIHdhciBkZXIgZXJzdGUgQmFza2V0YmFsbHNwaWVsZXI/Ckplc3VzIC0gUXVlbGxlOiAiRXIgbmFobSBkYXMgQnJvdCB1bmQgZHVua3RlLiIgW3NwcmljaCBkYW5rdGVdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLYWVzZS4uLiAoTXVwZmVsLCAgNy4gTm92IDIwMDIsIDE2OjUxOjI4KToKRGllIEF1ZmdhYmUgZGVyIGZvbGdlbmRlbiBBcmJlaXQgd2FyIGVzLCBkaWUgYXVjaCB2b24gTGFpZW4gb2Z0IGdlc3RlbGx0ZQp1bmQgYmVyZWNodGlndGUgRnJhZ2UgenUgdW50ZXJzdWNoZW46ICJXaXJkIEthZXNlIGR1cmNoIFN0aW5rZW4ga2xlaW5lcj8iCgpVbSBkaWVzZSBGcmFnZSBiZWFudHdvcnRlbiB6dSBrb2VubmVuLCBpc3QgZXMgenVuYWVjaHN0IG5vdHdlbmRpZywgZGllCnBoeXNpa2FsaXNjaGUgU3RydWt0dXIgZGVzIEthZXNlcyBnZW5hdWVyIHp1IHVudGVyc3VjaGVuLiBTY2hvbiBpbQp2ZXJnYW5nZW5lbiBKYWhyaHVuZGVydCB3dXJkZSBpbiBnZW5pYWxlciBXZWlzZSBkdXJjaCBIeXJvbmltdXMgSGFyemVyCmRhcyBQZXJpb2Rpc2NoZSBLYWVzZXN5c3RlbSBhdWZnZXN0ZWxsdC4gRXIgZm9ybXVsaWVydGUgaW4gZGllc2VyIGhldXRlCm5vY2ggZ3VlbHRpZ2VuIEFyYmVpdCBkcmVpIEdydXBwZW46CgotIGRpZSBMb2Nob2lkZQotIGRpZSBTdGlua2VuZGVuCi0gZGllIFBvbHlwYW1wZW4KCkRlciBtZWlzdGUgS2Flc2UgZ2Vob2VydCB6dSBkZW4gU3RpbmtlbmRlbi4gU2VsdGVuZXIgZmluZGV0IG1hbiBkaWUKUG9seXBhbXBlbi4gRXMgbGFnIGpldHp0IG5haGUsIGF1cyBkZXIgRXhpc3RlbnogZWluZXMgcGVyaW9kaXNjaGVuCkthZXNlc3lzdGVtcyBhdWYgZWluZSBhdG9taXN0aXNjaGUgS2Flc2VzdHJ1a3R1ciB6dSBzY2hsaWVzc2VuLgpEZXIgZXhwZXJpbWVudGVsbGUgRXJmb2xnIHZvbiBQcm9mLiBEci4gS2Flc2ViaWVyIGJlc3RhZXRpZ3RlIGRpZXNlbgpHZWRhbmtlbiBkYW5uIGF1Y2guIEVyIGVudGRlY2t0ZSBkZW4gRWxlbWVudGFyYmF1c3RlaW4gYWxsZW4gS2Flc2VzLApuYWVtbGljaCBkZW4gS2Flc2VrZXJuLCBkZXIgZGllIGdlc2FtdGUgS2Flc2VtYXNzZSBhdWYgc2ljaCB2ZXJlaW5pZ3QsCmRhcyBzb2dlbmFubnRlIEthZXNpbm8gdW5kIGRhcyBLYWVzZXRyb24sIGRlbiBUcmFlZ2VyIGRlcyBFbGVtZW50YXJnZXN0YW5rcy4KSGV1dGUga2FubiBtYW4gZGllc2UgVGVpbGNoZW4gYmVpbmFoZSBzY2hvbiBpbiBqZWRlbSBMYWJvciBtaXQgZGVtIHZvbgpEaXBsb21waHlzaWtlciBEYWdvYmVydCBEdWZ0aWcgZW50d2lja2VudGVuIEthZXNlc3RyYWhsZW5vc3ppbGxvZ3JhZmVuCm5hY2h3ZWlzZW4uIEpldHp0IHdhciBkaWUgR3J1bmRsYWdlIHp1ciBGb3JtdWxpZXJ1bmcgZGVzIEJvaHJzY2hlbgpLYWVzZW1vZGVsbHMgZ2VnZWJlbi4gRGFuYWNoIHVta3JlaXN0IGRhcyBLYWVzZXRyb24gZGVuIEthZXNla2VybiBhdWYKYmVzdGltbXRlbiBRdWFudGVuYmFobmVuIGdlcnVjaHNsb3MuIERpZXNlIGxhc3NlbiBzaWNoIG5hY2ggZGVyClBsYW5ja3NjaGVuIEthZXNlcXVhbnRlbnRoZW9yaWUgYmVyZWNobmVuLgoKV2lyZCBLYWVzZSBudW4gZHVyY2ggc3RpbmtlbiBrbGVpbmVyPyBMYXNzZW4gU2llIHVucyBqZXR6dCB1bnRlcnN1Y2hlbiwKd2llIGVzIHVlYmVyaGF1cHQgenVtIHN0aW5rZW4ga29tbXQuIE1hbiB1bnRlcnNjaGVpZGV0IG5hY2ggaWhyZXIKRW50c3RlaHVuZzogZGllICJTdGlua3VuZyBlcnN0ZXIgT3JkbnVuZyIgdW5kIGRpZSAiU3Rpbmt1bmcgendlaXRlciBPcmRudW5nIi4KCkRpZSBTdGlua3VuZyBlcnN0ZXIgT3JkbnVuZyBrb21tdCBkdXJjaCBkZW4gc29nZW5hbm50ZW4gS2Flc2VlbGVrdHJpc2NoZW4KRWZmZWt0IHp1c3RhbmRlLiBVbnRlciBFaW53aXJrdW5nIHZvbiBTb25uZW5saWNodCB3ZXJkZW4gZGllIEthZXNldHJvbmVuLApkaWUgVHJhZWdlciBkZXMgRWxlbWVudGFyZ2VzdGFua3MsIGVtaXR0aWVydC4KCkRpZSBTdGlua3VuZyB6d2VpdGVyIE9yZG51bmcgZXJmb2xndCBkdXJjaCBlaW5lIGVsZWt0cm9rYWVzaXN0aXNjaGUKU3RyYWhsdW5nLCBkaWUgZHVyY2ggU3BydWVuZ2Ugdm9uIEthZXNldHJvbmVuIHZvbiBlaW5lciBLYWVzZXF1YW50ZW5iYWhuCnp1ciBhbmRlcmVuIGVudHN0ZWh0LiBFcyB3aXJkIGluIFF1YW50ZW4gZ2VzdHVua2VuLCBkLiBoLiBpbiBnYW56emFobGlnZW4KVmllbGZhY2hlbiBkZXIgUGxhbmNrc2NoZW4gS2Flc2Vrb25zdGFudGVuLCBkZW0gc29nZW5hbm50ZW4gU3RpbmsuCkJlaSBlaW5lbSBhbHRlbiBDYW1lbmJlcnQga29lbm5lbiBXZXJ0ZSB2b24gYmlzIHp1IHplaG4gaG9jaCBuZXVuemVobgpTdGluayBhdWZ0cmV0ZW4uCgpOYWNoIGRpZXNlbiBBdXNmdWVocnVuZ2VuIGJlYW50d29ydGV0IHNpY2ggZGllIEZyYWdlLCBvYiBLYWVzZSBkdXJjaCBTdGlua2VuCmtsZWluZXIgd2lyZCwgZmFzdCB2b24gc2VsYnN0LgoKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFRFYtTWl0dGVpbHVuZyAoQW50aGVhLCAyNy4gTm92IDIwMDIsIDEyOjIyOjQ3KToKUnVuZHNjaHJlaWJlbiBkZXIgRURWLUFidGVpbHVuZyBhbiBhbGxlIFVzZXI6IAoKLSBXZW5uIGplbWFuZCB2b24gZGVyIEVEVi1BYnRlaWx1bmcgc2FndCwgZGFzcyBlciBnbGVpY2ggdm9yYmVpa29tbXQsIG1lbGRlCiAgRGljaCB2b20gU3lzdGVtIGFiIHVuZCBnZWggZWluZW4gS2FmZmVlIHRyaW5rZW4uIEVzIGlzdCBmdWVyIHVucyBrZWluCiAgUHJvYmxlbSwgdW5zIDcwMCBQYXNzd29lcnRlciB6dSBtZXJrZW4hIAoKLSBXZW5uIER1IHVucyBydWZzdCB1bSBEZWluZW4gQ29tcHV0ZXIgdm9uIGVpbmVtIGlucyBhbmRlcmUgQnVlcm8genUgdHJhZ2VuLAogIHZlcmdld2lzc2VyZSBEaWNoLCBkYXNzIGVyIHVudGVyIFRvbm5lbiB2b24gUG9zdGthcnRlbiwgS2luZGVyYmlsZGVybiwKICBTdG9mZnRpZXJlbiwgdmVydHJvY2tuZXRlbiBCbHVtZW4gdW5kIEtpbmRlcmtyaXR6ZWxlaWVuIGJlZ3JhYmVuIGlzdC4gV2lyCiAgaGFiZW4ga2VpbiBlaWdlbmVzIExlYmVuIHVuZCB3aXIgbGllYmVuIGVzLCB0aWVmIHVudGVyIGRlbSBNdWVsbCBpbiBpcmdlbmQKICBldHdhcyBnbGliYmVyaWdlcyB2b24gRGlyIHp1IGdyZWlmZW4uIAoKLSBXZW5uIER1IHZvbiBkZXIgRURWLUFidGVpbHVuZyBlaW5lIGUtTWFpbCBtaXQgaG9lY2hzdGVyIERyaW5nbGljaGtlaXQKICBiZWtvbW1zdCwgbG9lc2NoZSBzaWUgc29mb3J0LiBXYWhyc2NoZWlubGljaCB0ZXN0ZW4gd2lyIG51ciBkaWUKICBvZWZmZW50bGljaGVuIE1haWx2ZXJ0ZWlsZXIuIAoKLSBXZW5uIGVpbiBFRFYtTWl0YXJiZWl0ZXIgYW4gc2VpbmVtIFNjaHJlaWJ0aXNjaCBzZWluIE1pdHRhZ2Vzc2VuCiAgdmVyemVocnQsIGdlaGUgZGlyZWt0IHp1IGlobSwgdWViZXJzY2h1ZXR0ZSBpaG4gbWl0IFZvcnd1ZXJmZW4gdW5kIERlaW5lbgogIENvbXB1dGVycHJvYmxlbWVuIHVuZCBlcndhcnRlIHZvbiBpaG0sIGRhc3MgZXIgc29mb3J0IGFudHdvcnRldC4gV2lyCiAgZXhpc3RpZXJlbiBlaW56aWcgdW0genUgZGllbmVuIHVuZCB3aXIgZGVua2VuIGltbWVyIG51ciBhbiBkaWUgUmVwYXJhdHVyCiAgdm9uIENvbXB1dGVybi4gCgotIFdlbm4gc2ljaCBlaW4gRURWLU1pdGFyYmVpdGVyIGVpbiBNaW5lcmFsd2Fzc2VyIGhvbHQsIG9kZXIgZXIgZWluZQogIFppZ2FyZXR0ZSByYXVjaHQsIGZyYWcgaWhuIGlyZ2VuZCBldHdhcyB1ZWJlciBDb21wdXRlci4gCgotIERlciBlaW56aWdlIEdydW5kIHdhcnVtIHdpciBNaW5lcmFsd2Fzc2VyIHRyaW5rZW4sIG9kZXIgcmF1Y2hlbiBpc3QsCiAgZGFzcz0yMCB3aXIgbmFjaCBVc2VybiBzdWNoZW4sIGRpZSB3ZWRlciBlLU1haWwsIG5vY2ggVGVsZWZvbiBiZXNpdHplbi4gCgotIFdlbm4gRHUgZWluZW4gRURWLU1pdGFyYmVpdGVyIHBlciBUZWxlZm9uIGRpcmVrdCBhbnJ1ZnN0LCBkcnVlY2tlIGRpZSA1IHVtCiAgZGllIGF1dG9tYXRpc2NoZSBCZWdydWVzc3VuZyB6dSB1bWdlaGVuLCBpbiBkZXIgRGlyIG1pdGdldGVpbHQgd2lyZCBkYXMgZGVyCiAgTWl0YXJiZWl0ZXIgenVyIFplaXQgaW0gVXJsYXViIGlzdC4gU3ByaWNoIGRlaW5lIE5hY2hyaWNodCBhdWYgZGVuCiAgQW5ydWZiZWFudHdvcnRlciB1bmQgd2FydGUgZXhha3QgMjQgU3R1bmRlbiwgYmV2b3IgRHUgZWluZSBCZXNjaHdlcmRlIHBlcgogIGUtTWFpbCBkaXJla3QgYW4gZGVuIFZvcmdlc2V0enRlbiBzY2hpY2tzdCwgd2VpbCBEaWNoIG5pZW1hbmQKICB6dXJ1ZWNrZ2VydWZlbiBoYXQuIAoKLSBXZW5uIGRlciBGb3Rva29waWVyZXIgbmljaHQgZnVua3Rpb25pZXJ0LCBydWYgZGllIEVEVi1BYnRlaWx1bmcuCiAgU2NobGllc3NsaWNoIGlzdCBkYSBhdWNoIEVsZWt0cm9uaWsgZHJpbiwgb2Rlci4uLj8gCgotIFdlbm4gRHUgWnVoYXVzZSBiZWltIFZlcmJpbmR1bmdzYXVmYmF1IHBlciBNb2RlbSBlaW5lIEZlaGxlcm1lbGR1bmcgd2llOgogICJLZWluIFdhZWhsdG9uIiBvZGVyICJObyBEaWFsIFRvbmUiIGJla29tbXN0LCBydWYgZGllIEVEVi1BYnRlaWx1bmcuIFdpcgogIGtvZW5uZW4gc29nYXIgVGVsZWZvbnByb2JsZW1lIHZvbiBoaWVyIGF1cyBsb2VzZW4uIAoKLSBXZW5uIGlyZ2VuZCBldHdhcyBtaXQgRGVpbmVtIFByaXZhdC1QQyBuaWNodCBpbiBPcmRudW5nIGlzdCwgc3RlbGwgaWhuCiAgYXVmIGVpbmVuIFN0dWhsIG9kZXIgVGlzY2ggaW4gZGVyIEVEVi1BYnRlaWx1bmcuIEhpbnRlcmxhc3NlIGtlaW5lbgogIE5hbWVuLCBrZWluZSBUZWxlZm9ubnVtbWVyIHVuZCB2b3IgYWxsZW0ga2VpbmUgQmVzY2hyZWlidW5nIGRlcyBQcm9ibGVtcy4KICBXaXIgbGllYmVuIGVzLCBlaW4gZ3V0ZXMgUmFldHNlbCB6dSBsb2VzZW4uIAoKLSBXZW5uIER1IGVpbmVuIEVEVi1NaXRhcmJlaXRlciBhbSBUZWxlZm9uIGhhc3QsIGRlciBtaXQgRGlyIGR1cmNoIGRpZQogIE1lbnVlcyBnZWh0IHVtIGVpbmVuIEVpbnRyYWcgenUgYWVuZGVybiwgbGllcyBaZWl0dW5nIG9kZXIgdHUgaXJnZW5kIGV0d2FzCiAgYW5kZXJlcy4gV2lyIHdvbGxlbiBuaWNodCB3aXJrbGljaCwgZGFzIER1IGV0d2FzIHR1c3Q7IHdpciBsaWViZW4gZXMsIHVucwogIHNlbGJzdCByZWRlbiB6dSBob2VyZW4uIAoKLSBXZW5uIHdpciBlaW4gVHJhaW5pbmcgZnVlciBkaWUgbmFlY2hzdGUgVmVyc2lvbiBkZXMgQmV0cmllYnNzeXN0ZW1zCiAgYW5iaWV0ZW4sIGZ1ZWhsZSBEaWNoIG5pY2h0IGJlbGFlc3RpZ3QuIFdpciB3ZXJkZW4gZGEgc2VpbiB1bSBEZWluCiAgSGFlbmRjaGVuIHp1IGhhbHRlbiwgd2VubiBlcyB2b3JiZWkgaXN0LiAKCi0gV2VubiBkZXIgRHJ1Y2tlciBuaWNodCBkcnVja2VuIHdpbGwsIHNlbmRlIGRlbiBEcnVja2F1ZnRyYWcgMjAgbWFsLgogIERydWNrYXVmdHJhZWdlIHZlcnNjaHdpbmRlbiBuYWVtbGljaCBvaG5lIGplZGVuIEdydW5kIGltIE5pcmdlbmR3by4gCgotIFdlbm4gZGVyIERydWNrZXIgbmFjaCAyMCBWZXJzdWNoZW4gaW1tZXIgbm9jaCBuaWNodCBkcnVja2VuIHdpbGwsIHNlbmRlCiAgZGVuIERydWNrYXVmdHJhZyBhbiBhbGxlIDY4IERydWNrZXIgaW4gZGVyIEZpcm1hLiBFaW5lciB2b24gaWhuZW4gd2lyZAogIHNjaG9uIGRydWNrZW4uLi4gCgotIEJlbnV0emUgbmllIGRpZSBPbmxpbmUtSGlsZmUgKGRhcyBpc3QgZGllIEhpbGZlLCBkaWUgdm9uIGplZGVtIFByb2dyYW1tCiAgYW5nZWJvdGVuIHdpcmQuLi4pIERhcyBpc3QgZXR3YXMgZnVlciBTY2h3YWVjaGxpbmdlLiAKCi0gV2VubiBEdSBpcmdlbmRlaW5lbiBDb21wdXRlcmZ1ZWhyZXJzY2hlaW4gYmVpIGRlciBWSFMsIG9kZXIgYWVobmxpY2hlbQogIG1hY2hzdCwgZ2VoIHJ1aGlnIGluIGRlciBBYnRlaWx1bmcgcnVtIHVuZCAidmVyYmVzc2VyZSIgVHJlaWJlciB1bmQKICBQcm9ncmFtbWUgYXVmIERlaW5lbSB1bmQgYXVmIGFsbGVuIFJlY2huZXJuIERlaW5lciBNaXRhcmJlaXRlci4gV2lyIHNpbmQKICBkYW5rYmFyIGZ1ZXIgZGllIFVlYmVyc3R1bmRlbiBkaWUgd2lyIGhhYmVuLCB3ZW5uIHdpciBiaXMgMzowMCBVaHIgbW9yZ2VucwogIGRpZSBkYXJhdXMgcmVzdWx0aWVyZW5kZW4gUHJvYmxlbWUgYmVoZWJlbiBtdWVzc2VuLiAKCi0gV2VubiBlaW4gRURWLU1pdGFyYmVpdGVyIHVtIDEyOjMwIFVociBEZWluZW4gQ29tcHV0ZXIgcmVwYXJpZXJ0LCBtYWNoCiAgTWl0dGFnIHVuZCBhY2h0ZSBkYXJhdWYsIGRhc3MgZXIgbWl0YmVrb21tdCB3aWUgbGVja2VyIGRhcyBFc3NlbiBzY2htZWNrdC4KICBXaXIgYXJiZWl0ZW4gYmVzc2VyLCB3ZW5uIHVucyB2b3IgSHVuZ2VyIGVpbiB3ZW5pZyBzY2h3aW5kZWxpZyBpc3QuIAoKLSBEYW5rZSB1bnMgbmllbWFscy4gV2lyIGxpZWJlbiBkaWUgQXJiZWl0IFVORCB3aXIgd2VyZGVuIGRhZnVlciBiZXphaGx0ISAKCi0gV2VubiBEaWNoIGVpbiBFRFYtTWl0YXJiZWl0ZXIgZnJhZ3QsIG9iIER1IGlyZ2VuZGVpbmUgbmV1ZSBTb2Z0d2FyZSBhdWYKICBkZWluZW0gUmVjaG5lciBpbnN0YWxsaWVydCBoYXN0LCBMVWVHRSEgRXMgZ2VodCBuaWVtYW5kZW4gZXR3YXMgYW4sIHdhcwogIGF1ZiBEZWluZW0gUmVjaG5lciBpc3QuIAoKLSBXZW5uIGRhcyBNYXVza2FiZWwgZHJvaHQsIERlaW5lIEthZmZlZXRhc3NlIHVtenV3ZXJmZW4sIGhlYiBEZWluZW4KICBNb25pdG9yIGFuIHVuZCBxdWV0c2NoIGRhcyBLYWJlbCBkYXJ1bnRlciBlaW4uIE1hdXNrYWJlbCBzaW5kCiAgYXVzc2NobGllc3NsaWNoIGRhZnVlciBlbnR3b3JmZW4gd29yZGVuIHVtIDIwIEtnIE1vbml0b3JnZXdpY2h0IHp1CiAgZXJ0cmFnZW4uIAoKLSBXZW5uIGRpZSBMZWVydGFzdGUgYXVmIERlaW5lciBUYXN0YXR1ciBuaWNodCBtZWhyIGZ1bmt0aW9uaWVydCwgbWFjaCBkYXMKICBuZXVlIE1haWxwcm9ncmFtbSBvZGVyIGV0d2FzIGFuZGVycyBkYWZ1ZXIgdmVyYW50d29ydGxpY2guIFVlYnJpZ2VuczoKICBUYXN0YXR1cmVuIGFyYmVpdGVuIHdlc2VudGxpY2ggYmVzc2VyLCB3ZW5uIHNpY2ggQnJvdGtydWVtZWwsIEthZmZlZSBvZGVyCiAgZGlja2UgVHJvcGZlbiBrbGVicmlnZSBDb2xhIHVudGVyIGRlbiBUYXN0ZW4gYmVmaW5kZW4uIAoKLSBXZW5uIER1IHZvbiBlaW5lbSBQcm9ncmFtbSBlaW5lIE5hY2hyaWNodCBtaXQgZGVtIFRleHQ6ICJTaW5kIFNpZQogIHNpY2hlciIsIG9kZXIgIkFyZSB5b3Ugc3VyZSIgZXJoYWVsdHN0LCBrbGljayBzbyBzY2huZWxsIHdpZSBtb2VnbGljaCBhdWYKICBkZW4gIkpBIiBvZGVyICJZRVMiIC0gQnV0dG9uLiBWZXJkYW1tdCwgd2VubiBEdSBuaWNodCBzaWNoZXIgd2FlcnN0LAogIHd1ZXJkZXN0IER1IGRhcyBqYSBuaWNodCB0dW4sIG9kZXI/IAoKLSBGdWVobGUgRGljaCB2b2VsbGlnIGZyZWkgRGluZ2UgenUgc2FnZW4gd2llOiAiSWNoIHdlaXNzIHVlYmVyaGF1cHQgbmljaHRzCiAgdWViZXIgZGllc2VuIENvbXB1dGVyIERyZWNrIi4gRXMgYWVyZ2VydCB1bnMgdWViZXJoYXVwdCBuaWNodCwgd2VubiBtYW4KICB1bnNlcmVuIHJlY2h0IGFuc3BydWNoc3ZvbGxlbiBCZXJlaWNoLCBhbHMgRHJlY2sgYmV6ZWljaG5ldC4gCgotIFdlbm4gZGVyIFRvbmVyIGVpbmVzIERydWNrZXJzIGdld2VjaHNlbHQgd2VyZGVuIG11c3MsIHJ1ZiBkaWUKICBFRFYtQWJ0ZWlsdW5nLiBFaW5lbiBUb25lciB6dSB3ZWNoc2VsbiBpc3QgZWluZSBhZXVzc2Vyc3Qga29tcGxleGUKICBBbmdlbGVnZW5oZWl0IHVuZCBkaWUgRHJ1Y2tlcmhlcnN0ZWxsZXIgZXJ3YXJ0ZW4sIGRhc3MgZGllc2UgQXVmZ2FiZSBudXIKICB2b24gcHJvZmVzc2lvbmVsbGVuIEluZ2VuaWV1cmVuIG1pdCBlaW5lbSBEb2t0b3IgaW4gTnVrbGVhci1QaHlzaWsKICBkdXJjaGdlZnVlaHJ0IHdpcmQuIAoKLSBXZW5uIGlyZ2VuZHdhcyBtaXQgRGVpbmVtIENvbXB1dGVyIG5pY2h0IHN0aW1tdCwgc2FnIERlaW5lciBTZWtyZXRhZXJpbgogIGRhcyBzaWUgZGllIEVEVi1BYnRlaWx1bmcgYW5ydWZlbiBzb2xsLiBXaXIgbGllYmVuIGRhcyBTcGllbGNoZW4sIG1pdAogIGVpbmVyIGRyaXR0ZW4gUGVyc29uIGVpbiBQcm9ibGVtIHp1IGtsYWVyZW4gdm9uIGRlbSBTaWUgYWJzb2x1dCB1ZWJlcmhhdXB0CiAgbmljaHRzIHdlaXNzLiAKCi0gV2VubiBkdSBwZXIgZS1NYWlsIGVpbmUgMzAgTWVnYWJ5dGUgZ3Jvc3NlIERhdGVpIGVyaGFlbHRzdCwgc2VuZGUgc2llIG1pdAogIGhvZWNoc3RlciBQcmlvcml0YWV0IGFuIGplZGVuIE1pdGFyYmVpdGVyIGRlciBGaXJtYS4gV2lyIGhhYmVuIHVuZW5kbGljaGUKICBNYXNzZW4gYW4gRmVzdHBsYXR0ZW5zcGVpY2hlciB1bmQgUmVjaG5lcmthcGF6aXRhZXQgYXVmIHVuc2VyZW0KICBNYWlsLVNlcnZlci4gCgotIERlbmtlIG5pZW1hbHMgZGFyYW4sIGdyb3NzZSBEcnVja2F1ZnRyYWVnZSBpbiBrbGVpbmUgYXVmenV0ZWlsZW4uIEdvdHQKICB2ZXJiaWV0ZXQgZXMsIGlyZ2VuZCBqZW1hbmQgYW5kZXJlbSB6dSBnZXN0YXR0ZW4sIGF1Y2ggenUgZHJ1Y2tlbi4gCgotIFdlbm4gRHUgYW0gU2Ftc3RhZyBlaW5lbiBFRFYtTWl0YXJiZWl0ZXIgaW0gU3VwZXJtYXJrdCB0cmlmZnN0LCBmcmFnIGlobgogIGlyZ2VuZCBldHdhcyB1ZWJlciBDb21wdXRlci4gV2lyIGFyYmVpdGVuIDI0IFN0dW5kZW4gYW4gNyBUYWdlbiBkaWUgV29jaGUKICB1bmQgZGFydW0gYXVjaCBpbSBTdXBlcm1hcmt0IGFtIFdvY2hlbmVuZGUuIAoKLSBXZW5uIERlaW4gU29obiBlaW4gSW5mb3JtYXRpa3N0dWRlbnQgaXN0LCBsYXNzIGlobiBhbSBXb2NoZW5lbmRlIGluIGRpZQogIEZpcm1hIGtvbW1lbiwgZGFtaXQgZXIgc2VpbmUgUHJvamVrdGUgYW4gRGVpbmVtIHNjaG5lbGxlbiBCdWVyby1QQyBtYWNoZW4KICBrYW5uLiBXaXIgd2VyZGVuIGRhIHNlaW4sIHdlbm4gc2VpbmUgaWxsZWdhbGUgS29waWUgdm9uIFZpc3VhbCBCYXNpYyA2LjAKICBkaWUgRmluYW56YnVjaGhhbHR1bmcgYWJzdHVlcnplbiBsYWVzc3QuIAoKLSBXZW5uIER1IHVucyBEZWluZW4gYnJhbmRuZXVlbiBQcml2YXQtUEMgaW5zIEJ1ZXJvIGJyaW5nc3QsIHVtIGlobgogIGtvc3RlbmxvcyB2b24gdW5zIHJlcGFyaWVyZW4genUgbGFzc2VuLCBzYWcgdW5zIHdpZSBkcmluZ2VuZCB3aXIgaWhuCiAgcmVwYXJpZXJlbiBtdWVzc2VuLCBkYW1pdCBEZWluIFNvaG4gZ2FueiBzY2huZWxsIHdpZWRlciBEb29tLCBRdWFrZSBvZGVyCiAgTW9vcmh1aG4gc3BpZWxlbiBrYW5uLiBXaXIgd2VyZGVuIHNvZm9ydCBtaXQgZGVyIFJlcGFyYXR1ciBiZWdpbm5lbiwgZGEKICB3aXIgamVkZSBNZW5nZSBmcmVpZSBaZWl0IGhhYmVuLi4uIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFRFYtTWl0dGVpbHVuZyAoUWl0ZXNzLCAyNy4gTm92IDIwMDIsIDE2OjI3OjI1KToKfiMhIHJuPUFudGhlYSBydD0xMDM4Mzk2MTY3IHJnPXdpdHplCn4jISB0aWQ9MTAzODM5NjE2NwphbHNvLCBpY2ggZmluZGUsIGRhcyBpc3QgZG9jaCBlaW4gd2lya2xpY2ggc2Nob2VuZXMgQmVpc3BpZWwsIG1pdHRlbiBhdXMgZGVtCkxlYmVuIGdlZ3JpZmZlbi4KV2VubiBuYWVtbGljaCBiZWkgdW5zIGRlciBUb25lciBhbGxlIGlzdCwgbXVlc3NlbiB3aXIgdGF0c2FlY2hsaWNoIGRpZQpFRFYtQWJ0ZWlsdW5nIGFucnVmZW4uLi4uCgpRSSoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVEVi1NaXR0ZWlsdW5nIChHcmltbWJvcm4sIDI3LiBOb3YgMjAwMiwgMTY6Mzg6MjYpOgp+IyEgcm49UWl0ZXNzIHJ0PTEwMzg0MTA4NDUgcmc9d2l0emUKfiMhIHRpZD0xMDM4Mzk2MTY3CkFsc28sIHdlbm4gYmVpIG1pciBpbSBVbWZlbGQgd2FzIG1pdCBEcnVja2VybiBpc3QgZGFubiB3ZW5kZSBpY2ggbWljaApuYXR1ZXJsaWNoIGFuICRLTEFVUy4uLgoKR2RBIG1pdCBzb3dhcyB2b24gZXh0cmVtZW0gaW5zaWRlci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRURWLU1pdHRlaWx1bmcgKE1hcmN1cywgMjcuIE5vdiAyMDAyLCAxNjo0MDozMSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTAzODQxMTUwNiByZz13aXR6ZQp+IyEgdGlkPTEwMzgzOTYxNjcKRHUgbWVpbnN0IFpvbWJpZSBLbGF1cywgbWl0IDYgU3RpY2hlbiBnZW5hZWh0IHVuZCBqZXR6dCBtaXQgMyBUaXRhbnNjaHJhdWJlbgppbiAKZGVyIEhhbmQ/IDspCgpDaWFvLCBNYXJjdXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVEVi1NaXR0ZWlsdW5nIChPcmt0b2V0ZXIsIDI3LiBOb3YgMjAwMiwgMTY6NDE6NTkpOgp+IyEgcm49TWFyY3VzIHJ0PTEwMzg0MTE2MzEgcmc9d2l0emUKfiMhIHRpZD0xMDM4Mzk2MTY3CldhcyBzdGVodCBlaWdlbnRsaWNoIGFscyBTdHJhZmUgYXVmIHNvbGNoZW4gWmVpbGVudW1icnVjaD8KCkhlaW5vIGhvZXJlbiBuaWNodCB1bnRlciAyIFN0dW5kZW4/CgpPcmtULCBnZWV4dHJlbWZsYXR0ZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVEVi1NaXR0ZWlsdW5nIChHbG9pbnNvbiwgMjcuIE5vdiAyMDAyLCAxOToxNzozMCk6Cn4jISBybj1BbnRoZWEgcnQ9MTAzODM5NjE2NyByZz13aXR6ZQp+IyEgdGlkPTEwMzgzOTYxNjcKRGFzIGdpbHQgc2Nob24gZmFzdCBmdWVyIEluZm9ybWF0aWstU3R1ZGVudGVuLiBHaWIgRGljaCBhbHMgZWluIHNvbGNoZXIgaW4KQmVrYW5udC0gdW5kIFZlcndhbmRzY2hhZnQgZXJrZW5uZW4gdW5kIGplZGVyIHdpcmQgRGlyIGdlcm4gc2VpbmUgUHJvYmxlbWUgenUKV2luZG93cyBhbnRyYWdlbi4gTWl0dGxlcndlaWxlIGhhYmUgaWNoIG1pciBkYSBhdWNoIGVpbiBwYWFyIFNhZXR6ZQp6dXJlY2h0Z2VsZWd0IHdhcnVtIGljaCBuaWNodCBqZWRlcyBQcm9kdWt0IHZvbiBNaWNyb3NvZnQsIGdlc2Nod2VpZ2UgZGVubgpqZWRlcyBTcGllbCBrZW5uZW4gYXVjaCB3ZW5uIGljaCBJbmZvcm1hdGlrIHNjaG9uIHNvb28gbGFuZ2Ugc3R1ZGllcmUgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVEVi1NaXR0ZWlsdW5nIChSb25kYSwgMjguIE5vdiAyMDAyLCAwMDoyMDoxNCk6Cn4jISBybj1HbG9pbnNvbiBydD0xMDM4NDIxMDUwIHJnPXdpdHplCn4jISB0aWQ9MTAzODM5NjE2NwpHbG9pbnNvbiwgZGFubiBsYXNzIERpciBzY2hvbiBnYXIgbmljaHQgZWluZmFsbGVuLCBmdWVyIG5lbiBBcmJlaXRnZWJlciB6dQpzY2hhZmZlbiwgZGVyIHVudGVyIGFuZGVyZW0gYXVjaCBEcnVja2VyIGhlcnN0ZWxsdC4gRGEgd2lyc3RlIGJlaW0gV2FjaHNjaHV0egpiZWkgZGVuIEt1bmRlbiBvZGVyIGF1Y2ggYmVpbSBaYWhuYXJ6dCB6dWVyc3QgZ2VmcmFndCwgd2FydW0gZGVubiBudW4gZGllc2VyCm9kZXIgamVuZXIgVGludGVuc3RyYWhsZXIgb2RlciBMYXNlciBuaWNodCBmdW56dC4uLgoKUm9uZGEgKmthbm4gZGllIE51bW1lciBkZXIgSG90bGluZSBsYW5nc2FtIGF1c3dlbmRpZy4uLioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVEVi1NaXR0ZWlsdW5nIChIYXNpbSwgMjguIE5vdiAyMDAyLCAyMDoxODoyNCk6Cn4jISBybj1Sb25kYSBydD0xMDM4NDM5MjE0IHJnPXdpdHplCn4jISB0aWQ9MTAzODM5NjE2NwoqZ2cqIGljaCBrYW5uIGRhcyB2b2xsIG5hY2h2b2xsemllaGVuLCBhbHMgQmlvLVN0dWRlbnQgd2lyZCBtYW4gb2Z0IGdlZnJhZ3Q6CldhcyBmdWVybiBLYWVmZXIgaXNuIGRhcz8gS2FlZmVyIHNpbmQgamEgbnVyIGRpZSBHcm9lc3N0ZSBPcmRudW5nIGltIFRpZXJyZWljaAo7KQpIYXNpbSwgc2FndCBkYW5uIGltbWVyIGRhcyBXb3J0IGZ1ZXIgS2FlZmVyIGF1ZiBzY2hsYXUgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyemllaHVuZyAoQW50aGVhLCAgMi4gRGV6IDIwMDIsIDEyOjU4OjE3KToKIkVyc3Qgd2VubiBkYXMgbGV0enRlIFNwaWVsIHZlcmJvdGVuIGlzdCwgZGVyIGxldHp0ZSBDb21wdXRlciBhYmdlc3RvZXBzZWx0CmlzdCB1bmQgZGllIGxldHp0ZSBMQU4tUGFydHkgdmVyYm90ZW4gd3VyZGUsIHdlcmRldCBpaHIgZmVzdHN0ZWxsZW46IElocgptdWVzc3QgdW5zIHRyb3R6ZGVtIGVyemllaGVuLiIKW2ltIEJ1bmRlc3RhZyB2ZXJsZXNlbmUgTWFpbCBlaW5lcyBTY2h1ZWxlcnNdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBIGNvbGQgZGF5IGluIGhlbGwuLi4gKEFwb2xsb25pYSwgIDguIERleiAyMDAyLCAxNTo1MToyMik6ClRoZSBmb2xsb3dpbmcgaXMgKHN1cHBvc2VkbHkpIGFuIGFjdHVhbCBxdWVzdGlvbiBnaXZlbiBvbiBhIFVuaXZlcnNpdHkgb2YKV2FzaGluZ3RvbiBjaGVtaXN0cnkgbWlkLXRlcm0uIFRoZSBhbnN3ZXIgYnkgb25lIHN0dWRlbnQgd2FzIHNvICdwcm9mb3VuZCcKdGhhdCB0aGUgcHJvZmVzc29yIHNoYXJlZCBpdCB3aXRoIGNvbGxlYWd1ZXMgdmlhIHRoZSBJbnRlcm5ldCwgd2hpY2ggaXMsIG9mCmNvdXJzZSwgd2h5IHdlIG5vdyBoYXZlIHRoZSBwbGVhc3VyZSBvZiBlbmpveWluZyBpdCBhcyB3ZWxsLi4uCgpCb251cyBRdWVzdGlvbjoKCklzIEhlbGwgZXhvdGhlcm1pYyBvciBlbmRvdGhlcm1pYz8gTW9zdCBvZiB0aGUgc3R1ZGVudHMgd3JvdGUgcHJvb2ZzIG9mIHRoZWlyCmJlbGllZnMgdXNpbmcgQm95bGUncyBMYXcgKGdhcyBjb29scyBvZmYgd2hlbiBpdCBleHBhbmRzIGFuZCBoZWF0cyB1cCB3aGVuIGl0CmlzIGNvbXByZXNzZWQpIG9yIHNvbWUgdmFyaWFudC4gT25lIHN0dWRlbnQsIGhvd2V2ZXIsIHdyb3RlIHRoZSBmb2xsb3dpbmc6CgoiRmlyc3Qgd2UgbmVlZCB0byBrbm93IGhvdyB0aGUgbWFzcyBvZiBIZWxsIGlzIGNoYW5naW5nIGluIHRpbWUuIFNvIHdlIG5lZWQgdG8Ka25vdyB0aGUgcmF0ZSB0aGF0IHNvdWxzIGFyZSBtb3ZpbmcgaW50byBIZWxsIGFuZCB0aGUgcmF0ZSB0aGV5IGFyZSBsZWF2aW5nLiBJCnRoaW5rIHRoYXQgd2UgY2FuIHNhZmVseSBhc3N1bWUgdGhhdCBvbmNlIGEgc291bCBnZXRzIHRvIEhlbGwsIGl0IHdpbGwgbm90CmxlYXZlLgoKVGhlcmVmb3JlLCBubyBzb3VscyBhcmUgbGVhdmluZy4gQXMgZm9yIGhvdyBtYW55IHNvdWxzIGFyZSBlbnRlcmluZyBIZWxsLApsZXQncyBsb29rIGF0IHRoZSBkaWZmZXJlbnQgcmVsaWdpb25zIHRoYXQgZXhpc3QgaW4gdGhlIHdvcmxkIHRvZGF5LiBNb3N0IG9mCnRoZXNlIHJlbGlnaW9ucyBzdGF0ZSB0aGF0IGlmIHlvdSBhcmUgbm90IGEgbWVtYmVyIG9mIHRoZWlyIHJlbGlnaW9uLCB5b3Ugd2lsbApnbyB0byBIZWxsLiBTaW5jZSB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIG9mIHRoZXNlIHJlbGlnaW9ucyBhbmQgc2luY2UgcGVvcGxlCmRvIG5vdCBiZWxvbmcgdG8gbW9yZSB0aGFuIG9uZSwgd2UgY2FuIHByb2plY3QgdGhhdCBhbGwgc291bHMgZ28gdG8gSGVsbC4KCldpdGggYmlydGggYW5kIGRlYXRoIHJhdGVzIGFzIHRoZXkgYXJlLCB3ZSBjYW4gZXhwZWN0IHRoZSBudW1iZXIgb2Ygc291bHMgaW4KSGVsbCB0byBpbmNyZWFzZSBleHBvbmVudGlhbGx5LiBOb3csIHdlIGxvb2sgYXQgdGhlIHJhdGUgb2YgY2hhbmdlIG9mIHRoZQp2b2x1bWUgaW4gSGVsbCBiZWNhdXNlIEJveWxlJ3MgTGF3IHN0YXRlcyB0aGF0IGluIG9yZGVyIGZvciB0aGUgdGVtcGVyYXR1cmUKYW5kIHByZXNzdXJlIGluIEhlbGwgdG8gc3RheSB0aGUgc2FtZSwgdGhlIHZvbHVtZSBvZiBIZWxsIGhhcyB0byBleHBhbmQKcHJvcG9ydGlvbmF0ZWx5IGFzIHNvdWxzIGFyZSBhZGRlZC4gCgpUaGlzIGdpdmVzIDIgcG9zc2liaWxpdGllczoKCjEpIElmIEhlbGwgaXMgZXhwYW5kaW5nIGF0IGEgc2xvd2VyIHJhdGUgdGhhbiB0aGUgcmF0ZSBhdCB3aGljaCBzb3VscyBlbnRlcgpIZWxsLCB0aGVuIHRoZSB0ZW1wZXJhdHVyZSBhbmQgcHJlc3N1cmUgaW4gSGVsbCB3aWxsIGluY3JlYXNlIHVudGlsIGFsbCBIZWxsCmJyZWFrcyBsb29zZS4KMikgSWYgSGVsbCBpcyBleHBhbmRpbmcgYXQgYSByYXRlIGZhc3RlciB0aGFuIHRoZSBpbmNyZWFzZSBvZiBzb3VscyBpbiBIZWxsLAp0aGVuIHRoZSB0ZW1wZXJhdHVyZSBhbmQgcHJlc3N1cmUgd2lsbCBkcm9wIHVudGlsIEhlbGwgZnJlZXplcyBvdmVyLgoKU28gd2hpY2ggaXMgaXQ/IElmIHdlIGFjY2VwdCB0aGUgcG9zdHVsYXRlIGdpdmVuIHRvIG1lIGJ5IFRlcmVzYSBkdXJpbmcgbXkKRnJlc2htYW4geWVhciwgIi4uLnRoYXQgaXQgd2lsbCBiZSBhIGNvbGQgZGF5IGluIEhlbGwgYmVmb3JlIEkgc2xlZXAgd2l0aAp5b3UiLCBhbmQgdGFrZSBpbnRvIGFjY291bnQgdGhlIGZhY3QgdGhhdCBJIHN0aWxsIGhhdmUgbm90IHN1Y2NlZWRlZCBpbiBoYXZpbmcKYW4gYWZmYWlyIHdpdGggaGVyLCB0aGVuIDIpIGFib3ZlIGNhbm5vdCBiZSB0cnVlLCBhbmQgdGh1cyBJIGFtIHN1cmUgdGhhdCBIZWxsCmlzIGV4b3RoZXJtaWMgYW5kIHdpbGwgbm90IGZyZWV6ZSBvdmVyLiIKClRoaXMgc3R1ZGVudCByZWNlaXZlZCB0aGUgb25seSAnQScuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2F0emVud2l0eiA7KSAoTXVwZmVsLCAxMS4gRGV6IDIwMDIsIDE2OjMyOjEyKToKaHR0cDovL3d3dy5zdHVkLm50bnUubm8vfnNoYW5lL3N0YXNqL2Rpdl9iaWxkZXIvMTYuaHRtbAoKQm9lc2UgYWJlciBndXQgOykKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2F0emVud2l0eiA7KSAoQ3VjaHVsbGluLCAxMS4gRGV6IDIwMDIsIDE2OjMzOjEwKToKfiMhIHJuPU11cGZlbCBydD0xMDM5NjIwNzMyIHJnPXdpdHplCn4jISB0aWQ9MTAzOTYyMDczMgpEZXIgaXN0IHdvaGwgd2llIGRpZXNlIFdlaWhuYWNodHNnZXNjaGljaHRlbi4uLiBhbGxlIEphaHJlIHdpZWRlci4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLYXR6ZW53aXR6IDspIChBcG9sbG9uaWEsIDExLiBEZXogMjAwMiwgMTY6NDc6MTkpOgp+IyEgcm49TXVwZmVsIHJ0PTEwMzk2MjA3MzIgcmc9d2l0emUKfiMhIHRpZD0xMDM5NjIwNzMyCkFsc28gaWNoIHBlcnNvZW5saWNoIGZpbmQgamEgZGFzIGhpZXIgc2VociB2aWVsIGJlc3NlcjoKCmh0dHA6Ly93d3cuc3R1ZC5udG51Lm5vL35zaGFuZS9zdGFzai9kaXZfYmlsZGVyLzYuaHRtbAoKQXBvKgppbW1lciBub2NoIGdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEthdHplbndpdHogOykgKFphcm5peWEsIDExLiBEZXogMjAwMiwgMTc6MDQ6MjcpOgp+IyEgcm49QXBvbGxvbmlhIHJ0PTEwMzk2MjE2Mzkgcmc9d2l0emUKfiMhIHRpZD0xMDM5NjIwNzMyCndhcyBoZWlzc3QgaGllciBKYWhyLCBDdSouLi4gZGFzIGlzdCBnbGF1YiBpY2gga2VpbiBNb25hdCBoZXIsIGFscyBkaWVzZQpCaWxkZXIgaGllciBzY2hvbiBhbmdlcHJpZXNlbiB3dXJkZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEthdHplbndpdHogOykgKENhdHdlYXpsZSwgMTIuIERleiAyMDAyLCAwOTo1ODo0Nyk6Cn4jISBybj1DdWNodWxsaW4gcnQ9MTAzOTYyMDc5MCByZz13aXR6ZQp+IyEgdGlkPTEwMzk2MjA3MzIKR2VuYXUsIHdvIGlzdCBlaWdlbnRsaWNoIGRpZSBXZWlobmFjaHRzZ2VzY2hpY2h0ZT8gR3JpbW1ib3JuPwoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLYXR6ZW53aXR6IDspIChaYXJuaXlhLCAxMi4gRGV6IDIwMDIsIDEwOjE2OjI2KToKfiMhIHJuPUNhdHdlYXpsZSBydD0xMDM5NjgzNTI3IHJnPXdpdHplCn4jISB0aWQ9MTAzOTYyMDczMgpqYSBpc3QgZGVubiBzY2hvbiBXZWlobmFjaHRlbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlaGVpbWRpZW5zdHdldHRzdHJlaXQgKERlZXBibHVlLCAxMi4gRGV6IDIwMDIsIDEwOjI4OjUwKToKRGEgd2lyIGdlcmFkZSBiZWkgYWx0ZW4gV2l0emVuIHNpbmQgaGFiIGljaCBhdWNoIG5vY2ggZWluZW4uCgpEZXIgQ0lBLCBkZXIgS0dCIHVuZCBkaWUgRERSLVN0YXN0c3NpY2hlcmhlaXQgbWFjaGVuIGVpbmVuIFdldHRiZXdlcmIuIEF1ZmdhYmUKaXN0IGVzLCBkYXMgQWx0ZXIgZWluZXMgU2NoYWVkZWxzIHp1IGJlc3RpbW1lbi4KClp1ZXJzdCBkaWUgUnVzc2VuLiBTaWUgZ2VoZW4gaW4gZGVuIFJhdW0uIE5hY2ggMyBTdHVuZGVuIGtvbW1lbiBzaWUgd2llZGVyCnJhdXM6ICJDYS4gMSBNaWxsaW9uIEphaHJlIi4KRGVyIFZlcmFuc3RhbHRlciBmcmFndDogIk5pY2h0IHNjaGxlY2h0LCB3aWUgaGFidCBpaHIgZGFzIHJhdXNnZWZ1bmRlbj8iIC0KIlBoeXNpa2FsaXNjaGUgVW50ZXJzdWNodW5nZW4iLgoKRGFuYWNoIGdlaGVuIGRpZSBDSUEtRXhwZXJ0ZW4gcmVpbi4gRGllc2UgYnJhdWNoZW4gNyBTdHVuZGVuIHVuZCB2ZXJtZWxkZW4KZGFubjogIkNhLiA4MDAwMDAgSmFocmUiLgpEZXIgVmVyYW5zdGFsdGVyOiAiU3VwZXIhIFdpZSBoYWJ0IElociBkYXMgZXJtaXR0ZWx0PyIgLSAiV2lyIGhhYmVuIGRhIHVuc2VyZQplbGVrdHJvY2hlbWlzY2hlbiBNZXRob2RlbiIuIAoKT2ssIGFscyBsZXR6dGVzIGRhcmYgZGllIFN0YXNpIHJhbi4gWndlaSBUYWdlIHZlcmdlaGVuLCB3ZWl0ZXJlIGRyZWkgVGFnZQp2ZXJnZWhlbi4gRGF6dSBob2VydCBtYW4gaW1tZXIgd2llZGVyIGtvbWlzY2hlIEdlcmFldXNjaGUgYXVzIGRlbSBSYXVtLiBEaWUKYW5kZXJlbiBtYWNoZW4gc2ljaCBuYXR1ZXJsaWNoIHNvcmdlbiB1bmQgd29sbGVuIHNjaG9uIG5hY2hzY2hhdWVuLAp2ZXJzY2hpZWJlbiBkYXMgYWJlciBpbW1lciB3aWVkZXIuCk5hY2gga25hcHAgMiBXb2NoZW4gb2VmZm5ldCBzaWNoIGRpZSBUdWVyIHVuZCBlaW4gdG90YWwgemVyc2Nod2l0enRlciB1bmQKZXJzY2hvZXBmdGVyIFN0YXNpLU9mZml6aWVyIHZlcmt1ZW5kZXQ6CiJEZXIgTWFubiwgZGVtIGRpZXNlciBTY2hhZWRlbCBnZWhvZXJ0ZSwgd3VyZGUgdm9yIDgyMzQxNiBKYWhyZSwgMTcgVGFnZW4sIDYKU3R1bmRlbiB1bmQgMjEgTWludXRlbiBiZWkgU3RhbW1lc2thZW1wZmVuIGR1cmNoIGVpbmVuIFNwZWVyc3RpY2ggaW4gZGVuClVudGVybGVpYiB0b2V0bGljaCB2ZXJsZXR6dC4iCkRlciBWZXJhbnN0YWx0ZXI6ICJXaWUgaGFidCBpaHIgZGVubiBkYXMgcmF1c2dlZnVuZGVuPyIgLSAiRXIgaGF0IHZvbGxzdGFlbmRpZwp1bmQgdW1mYXNzZW5kIGdlc3RhbmRlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aHk/IChEaWdnbGVyLCAxMi4gRGV6IDIwMDIsIDIxOjAxOjIwKToKCldoeSB0aGUgc3VuIGxpZ2h0ZW5zIG91ciBoYWlyLCBidXQgZGFya2VucyBvdXIgc2tpbj8gCldoeSB3b21lbiBjYW4ndCBwdXQgb24gbWFzY2FyYSB3aXRoIHRoZWlyIG1vdXRoIGNsb3NlZD8gCldoeSBkb24ndCB5b3UgZXZlciBzZWUgdGhlIGhlYWRsaW5lICJQc3ljaGljIFdpbnMgTG90dGVyeSI/IApXaHkgaXMgImFiYnJldmlhdGVkIiBzdWNoIGEgbG9uZyB3b3JkPyAKV2h5IGlzIGl0IHRoYXQgZG9jdG9ycyBjYWxsIHdoYXQgdGhleSBkbyAicHJhY3RpY2UiPyAKV2h5IGlzIGl0IHRoYXQgdG8gc3RvcCBXaW5kb3dzLCB5b3UgaGF2ZSB0byBjbGljayBvbiAiU3RhcnQiPyAKV2h5IGlzIGxlbW9uIGp1aWNlIG1hZGUgd2l0aCBhcnRpZmljaWFsIGZsYXZvciwgYW5kIGRpc2h3YXNoaW5nIGxpcXVpZCBpcyBtYWRlCndpdGggcmVhbCBsZW1vbnM/IApXaHkgaXMgdGhlIG1hbiB3aG8gaW52ZXN0cyBhbGwgeW91ciBtb25leSBjYWxsZWQgYSBicm9rZXI/IApXaHkgaXMgdGhlIHRpbWUgb2YgZGF5IHdpdGggdGhlIHNsb3dlc3QgdHJhZmZpYyBjYWxsZWQgcnVzaCBob3VyPyAKV2h5IGlzbid0IHRoZXJlIG1vdXNlLWZsYXZvcmVkIGNhdCBmb29kPyAKV2hlbiBkb2cgZm9vZCBpcyBuZXcgYW5kIGltcHJvdmVkIHRhc3RpbmcsIHdobyB0ZXN0cyBpdD8gCldoeSBkaWRuJ3QgTm9haCBzd2F0IHRob3NlIHR3byBtb3NxdWl0b2VzPyAKV2h5IGRvIHRoZXkgc3RlcmlsaXplIHRoZSBuZWVkbGUgZm9yIGxldGhhbCBpbmplY3Rpb25zPyAKWW91IGtub3cgdGhhdCBpbmRlc3RydWN0aWJsZSBibGFjayBib3ggdGhhdCBpcyB1c2VkIG9uIGFpcnBsYW5lcz8gV2h5IGRvbid0CnRoZXkgbWFrZSB0aGUgd2hvbGUgcGxhbmUgb3V0IG9mIHRoYXQgc3R1ZmY/IApXaHkgYXJlIHRoZXkgY2FsbGVkIGFwYXJ0bWVudHMgd2hlbiB0aGV5IGFyZSBhbGwgc3R1Y2sgdG9nZXRoZXI/IApJZiBjb24gaXMgdGhlIG9wcG9zaXRlIG9mIHBybywgaXMgQ29uZ3Jlc3MgdGhlIG9wcG9zaXRlIG9mIHByb2dyZXNzPyAKSWYgZmx5aW5nIGlzIHNvIHNhZmUsIHdoeSBkbyB0aGV5IGNhbGwgdGhlIGFpcnBvcnQgdGhlIHRlcm1pbmFsPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiB3aHk/IChOb25uZSwgMTMuIERleiAyMDAyLCAwODo0MjoyMik6Cn4jISBybj1EaWdnbGVyIHJ0PTEwMzk3MjMyODAgcmc9d2l0emUKfiMhIHRpZD0xMDM5NzIzMjgwCkVpbmVuIGtlbm5lIGljaCBub2NoOiBXYXJ1bSBoYWJlbiAyNGgtVGFua3N0ZWxsZW4gU2NobG9lc3NlciBhbiBkZW4gVHVlcmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiB3aHk/IChJbWRhLCAxMy4gRGV6IDIwMDIsIDA4OjU0OjE5KToKfiMhIHJuPU5vbm5lIHJ0PTEwMzk3NjUzNDIgcmc9d2l0emUKfiMhIHRpZD0xMDM5NzIzMjgwCndlaWwgZGllIHR1ZXIgbWl0IHNjaGxzcyBiaWxsaWdlciBpc3QgYWxzIGRpZSBzb25kZXJhbmZlcmlndW5nIG9obmU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiB3aHk/IChOb25uZSwgMTMuIERleiAyMDAyLCAwODo1ODo1OSk6Cn4jISBybj1JbWRhIHJ0PTEwMzk3NjYwNTkgcmc9d2l0emUKfiMhIHRpZD0xMDM5NzIzMjgwCktlaW5lIEFobnVuZy4gSXJnZW5kd28gaW0gTmV0eiBnaWJ0cyBuZSBTZWl0ZSBtaXQgc29sY2hlbiBGcmFnZW4sIHdvIEZpcm1lbiwKZGllIGRhbWl0IHp1IHR1biBoYWJlbiwgdW0gQW50d29ydCBnZWJldGVuIHd1cmRlbi4gWnVtIEJlaXNwaWVsIGVpbmUKRmx1Z2dlc2VsbHNjaGFmdCBuYWNoIGRlciBTYWNoZSBtaXQgZGVyIEJsYWNrYm94IHVuZCB3aWVzbyBuaWNodCBkYXMgZ2FuemUKRmx1Z3pldWcgZGFyYXVzIGJlc3RlaHQuIEhhYmUgZGVuIExpbmsgbmljaHQgbWVociwgd2FyIGFiZXIgcmVjaHQgd2l0emlnLiBFaW5zCmlzdCBtaXIgYWJlciBpbSBHZWRhZWNodG5pcyBnZWJsaWViZW46IEVpbmUgVGFua3N0ZWxsZW5rZXR0ZSBtZWludGUgenUgZGVuClNjaGxvZXNzZXJuIGFuIGRlciBUdWVyLCBkYXNzIGRhcyBPcmRudW5nc2FtdCBkaWUgdm9yc2NocmVpYmVuIHd1ZXJkZSwgd2VpbCBpbgpkZW0gTGFkZW4gamEgc29uc3QgZ2VtYWNodCB3ZXJkZW4ga29lbm50ZSwgd2FzIGltbWVyIHNpZSB3b2xsZW4sIGRhcwpPcmRudW5nc2FtdCBrYW5uIGRlbiBMYWRlbiBqYSBkYW5uIG5pY2h0IHNjaGxpZXNzZW4uLi4KCk5vbm5lLCBncmluc2VuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNvbm50YWcsIDMuIEFkdmVudCAgKEFub3JpcywgMTUuIERleiAyMDAyLCAxNDoyODoyMSk6CjEwOjAwIFVocjogSW4gZGVyIFJlaWhlbmhhdXNzaWVkbHVuZyBPZW5rZWxzdGllZyBsYWVBZHZlbnR0IHNpY2ggZGllIFJlbnRuZXJpbgpFcm5hIEIuIGR1cmNoIGlocmVuIEVua2VsIE5vcmJlcnQgMyBFbGVrdHJva2VyemVuIGF1ZiBkZXIgRmVuc3RlcmJhbmsgaWhyZXMKV29obnppbW1lcnMgaW5zdGFsbGllcmVuLiBWb3J3ZWlobmFjaHRsaWNoZSBTdGltbXVuZyBicmVpdGV0IHNpY2ggYXVzLCBkaWUKRnJldWRlIGlzdCBncm9BZHZlbnQuIAoKMTA6MTQgVWhyOiBCZWltIEVudGxlZXJlbiBkZXMgTXVlbGxlaW1lcnMgYmVvYmFjaHRldCBOYWNoYmFyIE90dGZyaWVkIFAuIGRpZQpwcm92b2thbnRlIFdlaWhuYWNodHNvZmZlbnNpdmUgaW0gTmViZW5oYXVzIHVuZCBrb250ZXJ0IHVtZ2VoZW5kIG1pdCBkZXIKQXVmc3RlbGx1bmcgZWluZXMgMTAgYXJtaWdlbiBkYWVuaXNjaGVuIEtlcnplbnNldCB6dSBqZSAxNSBXYXR0IGltCkt1ZWNoZW5mZW5zdGVyLiBTdHVuZGVuIHNwYWV0ZXIgZXJzdHJhaGx0IGRpZSBnZXNhbXRlIFNpZWRsdW5nIE9lbmtlbHN0aWVnIGltCmJlc2lubmxpY2hlbiBHbGFueiB2b24gMTM0IEZlbnN0ZXJkZWtvcmF0aW9uZW4uIAoKMTk6MDMgVWhyOiBJbSAxNCBrbSBlbnRmZXJudGVuIEtvaGxla3JhZnR3ZXJrIFNvdHRydXAtSG9lY2tsYWdlIHJlZ2lzdHJpZXJ0CmRlciB3YWNoaGFiZW5kZSBJbmdlbmlldXIgaXJydHVlbWxpY2ggZWluZW4gRGVmZWt0IGRlcgpTdHJvbW1lRmVuc3RlcmRla29yYXRpb25lbi5nZXJhZXRlIGZ1ZXIgZGVuIEJlcmVpY2ggU3RlbmtlbGZlbGQtTm9yZCwgaXN0IGFiZXIKenVuYWVjaHN0IGFyZ2xvcy4gCgoyMDoxNyBVaHI6IERlbiBFaGVsZXV0ZW4gSG9yc3QgdW5kIEhlaWRpIEUuIGdlbGluZ3QgZGVyIEFuc2NobHVhcmdsb3MuIGVpbmVyCktldHRlbnNjaGFsdHVuZyB2b24gOTYgSGFsb2dlbi1GaWxtbGV1Y2h0ZW4gZHVyY2ggc2FlbXRsaWNoZSAxNyBCYWV1bWUgaWhyZXMKT2JzdGdhcnRlbnMgYW5zIDQwMC1Wb2x0LURyZWhzdHJvbW5ldHouIFRlaWxlIGRlciBoZWltaXNjaGVuIFZvZ2Vsd2VsdApiZWdpbm5lbiBzb2ZvcnQgdmVyd2lycnQgbWl0IGRlbSBmcnVlaGphZWhybGljaGVuIE5lc3RiYXUuIAoKMjA6NTYgVWhyOiBEZXIgRGlzY290aGVrZW5iZXNpdHplciBBbGZvbnMgSy4gc2llaHQgc2ljaCBnZW5vZXRpZ3Qgc2VpbmVyc2VpdHMKZWluZW4gVGVpbCB6dXIgdm9yd2VpaG5hY2h0bGljaGVuIFN0aW1tdW5nIGJlaXp1dHJhZ2VuIHVuZCBtb250aWVydCBhdWYgZGVtCkZsYWNoZGFjaCBzZWluZXMgQnVuZ2Fsb3dzIGRhcyBMYXNlcmVzZW1ibGUgTWV0cm9wb2xpcywgZGFzIHp1IGRlbgpsZWlzdHVuZ3NzdGFlcmtzdGVuIEV1cm9wYXMgemFlaGx0LiBEaWUgNDBtIEZhc3NhZGUgZWluZXMgYW5ncmVuemVuZGVuCkdldHJlaWRlc2lsb3MgaGFlbHQgZGVtIERhdWVyZmV1ZXIgZGVyIE5pa29sYXVzcHJvamVrdGlvbiBtZWhyZXJlIE1pbnV0ZW4Kc3RhbmQsIGJldm9yIHNpZSBtaXQgZWluZW0gaGFlTmVzdGJhdS5saWNoZW4gR2VyYWV1c2NoIHplcmJyb2Vja2VsdC4gCgoyMTozMCBVaHI6IEltIFRydWJlbCBlaW5lciBKdWwtQ2x1Yi1GZWllciBpbSBLb2hsZWtyYWZ0d2VyayBTb3R0cnVwLUhvZWNrbGFnZQp2ZXJoYWxsdCBkYXMgQWxhcm1zaWduYWwgYXVzIEdlbmVyYXRvcmhhbGxlIDUuCgoyMTo1MCBVaHI6IERlciA4NSBqYWVocmlnZSBLcmllZ3N2ZXRlcmFuIEF1Z3VzdCBSLiB6YXViZXJ0IG1pdCAxOTAKRmxha3NjaGVpbndlcmZlcm4gZGVzIFR5cHMgVmFydGEgVm9sa3NzdHVybSBkZW4gU3Rlcm4gdm9uIEJldGhsZWhlbSBhbiBkaWUKdGllZmhhZW5nZW5kZSBXb2xrZW5kZWNrZS4gCgoyMjoxMiBVaHI6IEVpbmUgR3J1cHBlIGFzaWF0aXNjaGVyIGZyaWVyZW5kZXIgR2VzY2hhZWZ0c2xldXRlIG1pdCBsZWljaHRlbQpHZXBhZWNrIHVuZCBzb21tZXJsaWNoZXIgQmVrbGVpZHVuZyBpcnJ0IHZlcmFlbmdzdGlndCBkdXJjaCBkaWUgU2llZGx1bmcKT2Vua2Vsc3RpZWcuIFp1dm9yIHdhciBlaW5lIEJvaW5nIDc0NyBkZXIgU2luZ2Fwb3JlIEFpcmxpbmVzIG1pdCBkZW0gWmllbApTeWRuZXkgdmVyc2VoZW50bGljaCBpbiBkZXIgbWl0IDMwMDAgYnVudGVuIE5lb25yb2VocmVuIGdlcGZsYXN0ZXJ0ZW4KR2FyYWdlbnp1ZmFocnQgZGVyIEJhZWNrZXJlaSBCcm9laHJtZXllciBnZWxhbmRldC4gCgoyMjozNyBVaHI6IERpZSBOQVNBIFJhdW1zb25kZSBWb3lhZ2VyIDcgZnVua3Qgdm9tIFJhbmRlIGRlcgpNaWxjaHN0cmFnZWxhbmRldC5lIEJpbGRlciBlaW5lciBhbmdlYmxpY2hlbiBTdXBlcm5vdmEgYXVmIGRlciBub2VyZGxpY2hlbgpFcmRoYWxia3VnZWwuIERpZSBFeHBlcnRlbiBpbiBIb3VzdG9uIHNpbmQgcmF0bG9zLiAKCjIyOjUwIFVocjogRWluIGxlaWNodGVzIEJlYmVuIGVyc2NodWV0dGVydCBkaWUgVW1nZWJ1bmcgZGVzIEtvaGxla3JhZnR3ZXJrcwpTb3R0cnVwLUhvZWNrbGFnZS4gRGVyIGdlc2FtdGUgS29tcGxleCBtaXQgc2VpbmVuIDMwIFR1cmJpbmVuIGxhZXVmdCBtaXQgMzUwCk1lZ2F3YXR0IGJydWVsbGVuZCBqZW5zZWl0cyBkZXIgQmVsYXN0dW5nc2dyZW56ZS4gCgoyMzowNiBVaHI6IEluIGRlciB0YWdoZWxsIGVybGV1Y2h0ZXRlbiBTaWVkbHVuZyBPZW5rZWxzdGllZyBlcndhY2h0IFN0dWRlbnRpbgpCZXR0aW5hIFUuIHVuZCBmcmV1dCBzaWNoIGlycnR1ZW1saWNoIHVlYmVyIGRlbiBzb25uaWdlbiBEZXplbWJlcm1vcmdlbi4gCgoyMzoxMiBVaHI6IFN0dWRlbnRpbiBCZXR0aW5hIFUuIGJldGFldGlndCBkZW4gU2NoYWx0ZXIgaWhyZXIgS2FmZmVlbWFzY2hpbmUuIAoKMjM6MTIgVWhyIHVuZCAxNCBTZWt1bmRlbjogSW4gZGllIHBsb2V0emxpY2ggZWluZ2V0cmV0ZW5lIER1bmtlbGhlaXQgZGVzCmdlc2FtdGVuIExhbmRrcmVpc2VzIFN0ZW5rZWxmZWxkIGJyaWNodCBkaWUgRXhwbG9zaW9uIGRlcyBLb2hsZWtyYWZ0d2Vya3MKU290dHJ1cC1Ib2Vja2xhZ2Ugd2llIERvbm5lcmhhbGwuIER1cmNoIGRpZSBzdG9ja2ZpbnN0ZXJlbiBPcnRzY2hhZnRlbiBpcnJlbgp2ZXJ3aXJydGUgTWVuc2NoZW4sIE1lbnNjaGVuIHdpZSBkdSB1bmQgaWNoLCBkZW5lbiBlaW5lIEtlcnplIGF1ZiBkZW0KQWR2ZW50c2tyYW56IG5pY2h0IGdlbnVnIHdhci4gCgpGcm9oZSBXZWlobmFjaHRzemVpdAoKLSBBbm9yaXMgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTb25udGFnLCAzLiBBZHZlbnQgIChDdWNodWxsaW4sIDE1LiBEZXogMjAwMiwgMTQ6Mjg6NTIpOgp+IyEgcm49QW5vcmlzIHJ0PTEwMzk5NTg5MDEgcmc9d2l0emUKfiMhIHRpZD0xMDM5OTU4OTAxCkJpdHRlIG51ciBlaW5tYWwgamFlaHJsaWNoLiA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU29ubnRhZywgMy4gQWR2ZW50ICAoVmFuaW9uLCAxNS4gRGV6IDIwMDIsIDE1OjI4OjI2KToKfiMhIHJuPUN1Y2h1bGxpbiBydD0xMDM5OTU4OTMyIHJnPXdpdHplCn4jISB0aWQ9MTAzOTk1ODkwMQpIbW0sIHdhcnVtIGRpZSBTdGVua2VsZmVsZC1DRHMga2F1ZmVuLCB3ZW5uIG1hbiBlcyBhdWNoIGltIE11ZCBoYWJlbiBrYW5uPwoKVioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFNvbm50YWcsIDMuIEFkdmVudCAgKE11cGZlbCwgMTUuIERleiAyMDAyLCAxOToyMTo0MSk6Cn4jISBybj1WYW5pb24gcnQ9MTAzOTk2MjUwNiByZz13aXR6ZQp+IyEgdGlkPTEwMzk5NTg5MDEKRGFzIHdpcmQgamV0enQgamVkZW4gQWR2ZW50IGdlcG9zdGV0Li4uIGFsc28gbnVyIG5vY2ggZWlubWFsLgoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBQdWJpIDpvKSAoQXBvbGxvbmlhLCAxOS4gRGV6IDIwMDIsIDA5OjUwOjE1KToKRGllIG9kZXIgZGVyIFB1YmVydGllcmVuZGUsIGt1cnogUHViaSwgaXN0IHVuZ2VmYWVociBzbyBlaW5mYWNoIHp1CnZlcnN0ZWhlbiB3aWUgZGllIEdlYnJhdWNoc2Fud2Vpc3VuZyBlaW5lcyBEYW1wZmRydWNra2Vzc2VscyBpbiBqYXBhbmlzY2hlbgpTY2hyaWZ0emVpY2hlbi4gVmllbGUgdm9uIHVucyBoYWJlbiBQdWJpcywgYW5kZXJlIGhhdHRlbiBlaW5lbiBvZGVyIG1laHJlcmUsIAplaW5pZ2Ugd2VyZGVuIHZpZWxsZWljaHQgYmFsZCB3ZWxjaGUgaGFiZW4uIFB1YmlzIHRyZXRlbiBtZWlzdCBpbiBIb3JkZW4gYXVmLCAKYmlzIHp1IHNlY2h6ZWhuIGFuIGVpbmVtIFRhZyB1bmQgaW4gZWluZW0gWmltbWVyIHNpbmQga2VpbmUgU2VsdGVuaGVpdC4gV2VubiAKaWNoIGRhbm4gZGllIFR1ZXIgb2VmZm5lLCB6aXNjaHQgYWxzIGVyc3RlcyBkaWUgS2F0emUgYW4gbWlyIHZvcmJlaSwgdW0gaW4KcmVpbmVyZSBMdWZ0IHp1IGtvbW1lbi4gRGVubiBTYXVlcnN0b2ZmIGlzdCBmdWVyIFB1YmlzIGZhc3QgdG9lZGxpY2guCgpWb20gQXVzc2VoZW4gc2luZCBzaWNoIGFsbGUgc2VociBhZWhubGljaC4gRGllIEhhYXJlIGZhbGxlbiB1ZWJlciBkaWUgQXVnZW4KaW5zIHBpY2tlbGlnZSBHZXNpY2h0LiBEaWUgS2xhbW90dGVuIHNpbmQgYWxsZSB2aWVsIHp1IGdyb3NzLCBiZXNvbmRlcnMgZGllCkFlcm1lbCAKc2luZCB2aWVsIHp1IGxhbmcgdW5kIHJlaWNoZW4gd2VpdCB1ZWJlciBkaWUgSGFlbmRlLiBEYXMgaGF0IGRlbiBWb3J0ZWlsLCBkYXNzCm1hbiBuaWNodHMgdHJhZ2VuIGthbm4sIHZvciBhbGxlbiBEaW5nZW4ga2VpbmVuIE11ZWxsZWltZXIuCgpEaWUgU2NodWhlIHNlaGVuIGF1cyB3aWUgdm9uIGRlciBQb3N0a2xlaWRlcmthc3NlLCBNYXJrZSAiU2ljaGVyaGVpdCB6dSBqZWRlcgpaZWl0IiwgbWl0IFN0YWhsa2FwcGVuICx2b3JuZSBkcmluLiBEaWUgaGFiZW4gaWhyZW4gWndlY2ssIGRlbm4gbWFuIGthbm4gYmVpCmRlbSBHZXdpY2h0IHVubW9lZ2xpY2ggZGllIEZ1ZXNzZSBiZWltIExhdWZlbiBoZWJlbiB1bmQgZmFlbGx0IHNvenVzYWdlbiB2b24KZWluZW0gRnVzcyBhdWYgZGVuIGFuZGVyZW4gb2RlciBzY2hsdXJmdCB3aWUgTWV0aHVzYWxlbSBpbiBkZW4gUmllaGxlcgpIZWltc3RhZXR0ZW4uIAoKQWxsZSBLbGFtb3R0ZW4gd2VyZGVuIG5hdHVlcmxpY2ggdWViZXJlaW5hbmRlciBnZXRyYWdlbiwgdW5kIGRhcyBpbiBFdGFnZW4uClVlYmVyIGRlbiB6ZXJyaXNzZW5lbiBKZWFucywgZGllIHNlbGJzdCBiZWkgZGVyIEtsZWlkZXJzYW1tbHVuZwp6dXJ1ZWNrZ2VsYXNzZW4gd3VlcmRlbiwgZWluIFQtU2hpcnQsIEdyb2Vzc2UgTUUgKE1pdHRsZXJlciBFbGVmYW50KSwgZGFydWViZXIKZWluZSBldHdhcyBrdWVyemVyZSAKSmVhbnN3ZXN0ZSB1bmQgZGFubiBlaW5lIGV0d2FzIGtuYXBwZSBKZWFuc2phY2tlLiBEaWUgSmFocmVzemVpdCBzcGllbHQgYmVpIApkaWVzZW0gT3V0Zml0IGtlaW5lIFJvbGxlLCBkZW5uIGVpbiBQdWJpIGlzdCB3ZWRlciBrYWVsdGUtIG5vY2gKaGl0emVlbXBmaW5kbGljaC4gCgpBdWNoIGRpZSBFcm5hZWhydW5nIGRlciBQdWJpcyBpc3QgZWluZmFjaCwgd2VubiBNY0RvbmFsZHMgenUgaWhyZXIgCnVubWl0dGVsYmFyZW4gTmFjaGJhcnNjaGFmdCB6YWVobHQuIFp1IGRlbiBNYWhsemVpdGVuIGlzc3QgZGVyIFB1YmkKZ3J1bmRzYWV0emxpY2ggbmljaHRzLiBFZ2FsIHdhcyBlcyBnaWJ0LCBkYXMgc2NobWVja3QgaWhtIG5pY2h0LiBFbnR3ZWRlciBoYXQgCmVyIHNjaG9uIHZvcmhlciBkZW4gRWlzc2NocmFuayBnZXBsdWVuZGVydCwgb2RlciBlciBzdGVodCBuYWNoIGRlbSBFc3NlbiB6ZWhuIApNaW51dGVuIHZvciBkZXIgZ2VvZWZmbmV0ZW4gS3VlaGxzY2hyYW5rdHVlciB1bSBzaWNoIGRhbm4gdWViZXIgYWxsZXMgRXNzYmFyZQpoZXJ6dW1hY2hlbi4gSW4gYmVzb25kZXJlbiBGYWVsbGVuLCBkYXMgaGVpc3N0LCBpbiBkZW4gdGFnZWxhbmdlbgpTY2htb2xscGhhc2VuLCBrYW5uIHNpY2ggZGVyIFB1YmkgYXVjaCBudXIgdm9uIENoaXBzIHVuZCBDb2xhIGluIHNlaW5lbSBaaW1tZXIKZXJuYWVocmVuLgoKQXByb3BvcyBaaW1tZXI6IEVpbiBQdWJpIHdvaG50IHNlaHIgdW13ZWx0YmV3dXNzdC4gU2VpbiBaaW1tZXIgaXN0IGVpbmUKTWlzY2h1bmcgYXVzIE11ZWxsa2lwcGUsIEFsdHBhcGllcnNhbW1sdW5nLCBGbGFzY2hlbmNvbnRhaW5lciB1bmQgV2Flc2NoZSBmdWVyCmVpbmUgR3Jvc3N3YWVzY2hlcmVpLiBMZWlkZXIgYWJlciBuaWNodCBuYWNoIGRlbiBlaW56ZWxuZW4gQmVyZWljaGVuIGdldHJlbm50LApzb25kZXJuIGd1dCBnZW1pc2NodCB1bmQgYmVzb25kZXJzIGd1dCBiZXNjaGFsbHQuIERlbm4gb2huZSBNdXNpayAod2VubiBtYW4gCmRhcyBzbyBuZW5uZW4ga2FubikgbGFldWZ0IGJlaSBQdWJpcyBuaWNodHMuIEF1ZiBkaWUgTGF1dHN0YWVya2Uga2FubiBtYW4gc2ljaAptaXQgUHViaXMgbnVyIHVudGVyIEFuZHJvaHVuZyBkZXIgVG9kZXNzdHJhZmUgZWluaWdlbi4gS29wZmhvZXJlciBzaW5kIGtlaW5lIApBbHRlcm5hdGl2ZSwgZGVubiBkYW1pdCBsYWVzc3Qgc2ljaCBzbyBzY2hsZWNodCB0ZWxlZm9uaWVyZW4uCgpEaWUgUHViZXJ0YWV0IGZhZW5ndCBhbiwgd2VubiBJaHIgS2luZCBkZW4gRmluZ2VyIGF1cyBkZW0gTXVuZCB1bmQgZ2xlaWNoIApkYXJhdWYgaW4gZGllIFdhZWhsc2NoZWliZSBkZXMgVGVsZWZvbnMgc3RlY2t0LiBBYiBkYSBnaWJ0IGVzIGZ1ZXIgU2llIG51cgpub2NoIApkaWUgR2VsZWdlbmhlaXQsIG1vcmdlbnMgaW4gYWxsZXIgRnJ1ZWhlIChQdWJpcyBzaW5kIExhbmdzY2hsYWVmZXIpIG9kZXIKbmFjaHRzIApUZWxlZm9uYXRlIHp1IGVybGVkaWdlbi4gRnVlciBkZW4gUHViaSBpc3QgZGFzIFRlbGVmb24gZGllIGVpbnppZ2UgVmVyYmluZHVuZwp6dXIgQXVzc2Vud2VsdCwgZGllIGVpbnppZ2UgTW9lZ2xpY2hrZWl0IHp1IGtvbW11bml6aWVyZW4gRmVybmdlc3ByYWVjaGUsIGRpZQo4NSAKTWludXRlbiBkYXVlcm4gc2luZCBrZWluZSBTZWx0ZW5oZWl0LiBEYXp1IGdlaG9lcnQgYXVjaCwgc2ljaCBhbSBUZWxlZm9uIGZ1ZXIgCjExLjUwIERNIGFuenVzY2h3ZWlnZW4uIE1laXN0ZW5zIGdlaHQgZXMgdW0gd2ljaHRpZ2UgRGluZ2UsIHp1bSBCZWlzcGllbCwgd2VyIAptaXQgd2VtIGdlaHQgdW5kIHdhcnVtIHVuZCB3ZXIgd2FzIHp1IHdlbSBnZXNhZ3QgaGF0IHVuZCBqZXR6dCBlY2h0IGFldHplbmQgCmlzdC4gVm9lbGxpZyB1bndpY2h0aWdlIFNhY2hlbiwgd2llIEhhdXNhdWZnYWJlbiwgd2VyZGVuIG5pY2h0IG1laHIKYWJnZXNjaHJpZWJlbiwgc29uZGVybiB0ZWxlZm9uaXNjaCBkdXJjaGdlZ2ViZW4gb2RlciBlYmVuIG1hbCBydWViZXJnZWZheHQuCgpNaXQgZGVtIEJhZGV6aW1tZXIgaXN0IGVzIGFlaG5saWNoIHdpZSBtaXQgZGVtIFRlbGVmb24uIE1hbmNobWFsIGZyYWd0IG1hbgpzaWNoOiBXb2hudCB1bnNlciBQdWJpIGpldHp0IGRhIGRyaW4/IFZvciBub2NoIG5pY2h0IGFsbHp1IGxhbmdlciBaZWl0IGtvbm50ZSAKZGllc2VzIEtpbmQgaW5uZXJoYWxiIHZvbiAzMCBTZWt1bmRlbiBkdXNjaGVuLiBOdW4gYnJhdWNodCBlcyBwbG9ldHpsaWNoIHZpZXIgClN0dW5kZW4sIHNpY2ggZnVlciBlaW5lIEZldGUgYXVmenVzdHlsZW4gdW5kIGVyc2NoZWludCBkYW5uIGdlbmF1IHNvIHdpZQp2b3JoZXIuIE51ciBkYXMgR2VzaWNodCBpc3Qgc3RhcmsgZ2VzY2h3b2xsZW4gdW5kIGdlcm9ldGV0LCB2b20KUGlja2VsYXVzcXVldHNjaGVuLiBTcG9ydHZlcmxldHp1bmdlbiB3ZXJkZW4gdm9tIFB1YmkgaGVsZGVuaGFmdCBlcnRyYWdlbi4gRGFzCmdpbHQgYmVzb25kZXJzIGZ1ZXIgbWFlbm5saWNoZSBQdWJpcy4gV2llIGVpbiBhbHRlcyBWZXRlcmFuIHN0b2x6aWVydCBlciBtaXQKdmVyYnVuZGVuZW0gS25vZWNoZWwgaG9lY2hzdGVucyBkcmVpIFRhZ2UgZWluaGVyLCB3ZWlsIGRhcyBuYWVjaHN0ZSBTcGllbApuaWNodCBhdWYgaWhuIHZlcnppY2h0ZW4ga2Fubi4gSGF0IHVuc2VyIFB1YmkgYWJlciBlaW5lIEVya2FlbHR1bmcsIGtyYWVua2VsdAplciB2aWVyIFdvY2hlbiB2b3Igc2ljaCBoaW4sIHVuZCBtYW4gbXVzcyBmcm9oIHNlaW4sIHdlbm4gbWFuIGlobiBkdXJjaGtyaWVndC4KClNpZSBzZWhlbiwgUHViZXJ0YWV0IGlzdCwgd2VubiBkaWUgRWx0ZXJuIGFuZmFuZ2VuLCBzY2h3aWVyaWcgenUgd2VyZGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBpbiBUaHJvbnNhYWwgLi4uIChTZWxldmVuLCAyMC4gRGV6IDIwMDIsIDIxOjM3OjU4KToKRGVyIEtvZW5pZyBrYW0gaGVyZWluZ2VwbHVtc3QsCjxXZXIgaGF0IG1pdCBtZWluZXIgRnJhdSBnZWJ1bXN0PwoKPkljaC4gCk1lbGRldCBzaWNoIGVpbiBrbGVpbmVyIERpY2tlci4KCjxBY2ggRFUgYmlzdCBoaWVyIGRlciBPYmVyZmlja2VyLgoKPkFjaCwgSGVyciBzbyBsYXNzZXQgR25hZGUgd2FsdGVuIQo8T2ggbmVpbiEgTWFuIGxhc3NlIGlobSBkaWUgRWllciBzcGFsdGVuIQoKRWluIGt1cnplciBTdGljaCwgZWluIGxhdXRlciBTY2hyZWksClVlYmVyIGRpZSBCdWVobmUgcm9sbHQgZWluIGhhbGJlcyBFaS4KClVuZCBkaWUgTW9yYWwgdm9uIGRlciBHZXNjaGljaHQnOgpIYWxiZSBFaWVyIHJvbGxlbiBuaWNodCEKClNlbGV2ZW4gZW50c2NodWxkaWd0IHNpY2ggZ3JpbnNlbmQgZnVlciBzZWluZSBBdXNkcnVja3N3ZWlzZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoIGluIFRocm9uc2FhbCAuLi4gKFRhbmdhbHVyLCAyMy4gRGV6IDIwMDIsIDA5OjIyOjAxKToKfiMhIHJuPVNlbGV2ZW4gcnQ9MTA0MDQxNjY3OCByZz13aXR6ZQp+IyEgdGlkPTEwNDA0MTY2NzgKQWxsZSBKYWhyZSB3aWVkZXIKV2FyIGRlciBuaWNodCB2b24gT3R0by4uLiB2b24gdm9yIDIwIEphaHJlbgpvZGVyIHdlcmRlIGljaCBudW4gZW5kZ3VlbHRpZyBzZW5pbAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkViZW4gZ2VsZXNlbiAoU3VuZmxvd2VyLCAyMy4gRGV6IDIwMDIsIDEwOjM5OjI1KToKRWluZSBCbG9uZGluZSBydWZ0IGlocmVuIEZyZXVuZCBhdWYgZGVyIEFyYmVpdCBhbjogIlNjaGF0eiwgaWNoIGhhYmUgaGllciBlaW4KUHV6emxlLCBhYmVyIGljaCBrYW5ucyBlaW5mYWNoIG5pY2h0Li4uamVkZXMgVGVpbCBnbGVpY2h0IGRlbSBhbmRlcm4gd2llIGVpbgpFaSEiCkRhcmF1ZiBkZXIgRnJldW5kOiAiSGFzdCBEdSBkZW5uIGVpbmUgVm9ybGFnZT8gV2llIHNpZWh0IGRhcyBQdXp6bGUgYXVzPyIKRGllIEJsb25kaW5lOiAiTmFqYSwgYXVmIGRlciBTY2hhY2h0ZWwgaGF0IGVzIGVpbmVuIEhhaG4sIGRlciBpc3QgZ2FueiByb3QuLi4KYWJlciBpY2gga2FubnMgdHJvdHpkZW0gbmljaHQhIgpEZXIgRnJldW5kOiAiT2ssIG1laW4gU2NoYXR6LCByZWcgRGljaCBuaWNodCBhdWYsIHdpciB3ZXJkZW4gZXMgaGV1dGUgQWJlbmQKenVzYW1tZW4gdmVyc3VjaGVuLi4uIgpBbSBBYmVuZCB0cmVmZmVuIHNpY2ggZGllIEJsb25kaW5lIHVuZCBkZXIgRnJldW5kLCBlciBzaWVodCBzaWNoIGRpZSBTY2hhY2h0ZWwKYW4uLi4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKRGFubiBzYWd0IGRlciBGcmV1bmQ6ICJTbyBTY2hhdHosIHdpciBwYWNrZW4gamV0enQgZGllIENvcm5mbGFrZXMgd2llZGVyIGluCmRpZSBTY2hhY2h0ZWwgenVydWVjayB1bmQgcmVkZW4gbmljaHQgbWVociBkYXJ1ZWJlci4uLi4iIAotLS0tCk1hbmNobWFsIGthbm4gaWNoIGluIGVpbmVtIHZlcnRyYXV0ZW4gR2VzaWNodCAKbmljaHRzIHdlaXRlciBlcmtlbm5lbiwgYWxzIGRpZSBTcHVyZW4KZGllIGRlciBUb2QgZGFyaW4gaGludGVybGFzc2VuIHdpcmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp1bmQgbm9jaCBlaW5lciA7KSAoU3VuZmxvd2VyLCAyMy4gRGV6IDIwMDIsIDEwOjQ1OjUwKToKTmV1bGljaCBpbiBkZXIgSW5uZW5zdGFkdCwgZGEgd2FyZW4gZG9ydCB6d2VpIEJsb25kaW5lbiwgZGllIHZlcnp3ZWlmZWx0CnZlcnN1Y2h0ZW4sIElocmVuIE1lcmNlZGVzIG1pdCBlaW5lbSBLbGVpZGVyYnVlZ2VsIHp1IG9lZmZuZW4uCkVyc3RlIEJsb25kaW5lOiAiSWNoIGtyaWVnJyBkaWUgVHVlciBlaW5mYWNoIG5pY2h0IGF1ZiEiClp3ZWl0ZSBCbG9uZGluZTogIkJlZWlsJyBEaWNoIGxpZWJlciBtYWwsIGVzIHNpZWh0IG5hY2ggUmVnZW4gYXVzLCB1bmQgZGFzClZlcmRlY2sgaXN0IG9mZmVuISIgCi0tLS0KTWFuY2htYWwga2FubiBpY2ggaW4gZWluZW0gdmVydHJhdXRlbiBHZXNpY2h0IApuaWNodHMgd2VpdGVyIGVya2VubmVuLCBhbHMgZGllIFNwdXJlbgpkaWUgZGVyIFRvZCBkYXJpbiBoaW50ZXJsYXNzZW4gd2lyZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhldXQgaGFiZSBpY2ggYWJlciB2aWVsIGdlc2NocmllYmVuIChTdW5mbG93ZXIsIDIzLiBEZXogMjAwMiwgMTA6NDk6MzMpOgpad2VpIEJsb25kaW5lbiBnZWhlbiBzcGF6aWVyZW4uIFBsb2V0emxpY2ggYmxlaWJ0IGVpbmUgc3RlaGVuIHVuZCBzYWd0OiAiU2NoYXUKbWFsIGRpZSBTcHVyIHZvbiBlaW5lbSBSZWguIgpEaWUgYW5kZXJlIGJsaWNrdCB6dSBCb2RlbiB1bmQgd2lkZXJzcHJpY2h0OiAiTmVpbiwgZGFzIHNpbmQgZ2FueiBrbGFyCldvbGZzc3B1cmVuLiIgClNpZSBzdHJlaXRlbiB1bmQgc3RyZWl0ZW4sIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCmJpcyBzaWUgbmFjaCBlaW5lciBoYWxiZW4gU3R1bmRlIHZvbiBlaW5lbSBadWcgdWViZXJmYWhyZW4gd2VyZGVuLiAKLS0tLQpNYW5jaG1hbCBrYW5uIGljaCBpbiBlaW5lbSB2ZXJ0cmF1dGVuIEdlc2ljaHQgCm5pY2h0cyB3ZWl0ZXIgZXJrZW5uZW4sIGFscyBkaWUgU3B1cmVuCmRpZSBkZXIgVG9kIGRhcmluIGhpbnRlcmxhc3NlbiB3aXJkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGhldXQgaGFiZSBpY2ggYWJlciB2aWVsIGdlc2NocmllYmVuIChWYW5pb24sIDIzLiBEZXogMjAwMiwgMTA6NTg6NDgpOgp+IyEgcm49U3VuZmxvd2VyIHJ0PTEwNDA2MzY5NzMgcmc9d2l0emUKfiMhIHRpZD0xMDQwNjM2OTczCkR1IHNjcm9sbHN0LgoKVioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogaGV1dCBoYWJlIGljaCBhYmVyIHZpZWwgZ2VzY2hyaWViZW4gKEN1Y2h1bGxpbiwgMjMuIERleiAyMDAyLCAxMTo0ODoyMik6Cn4jISBybj1WYW5pb24gcnQ9MTA0MDYzNzUyOCByZz13aXR6ZQp+IyEgdGlkPTEwNDA2MzY5NzMKVm9yIGFsbGVtIGhhdCBlciBlaW5lIC5zaWduYXR1cmUsIGRpZSBzbyBnYXIgbmljaHQgenVtIEluaGFsdApzZWluZXIgQXJ0aWtlbCBwYXNzdC4gU3VubmksIGRhcyB1dXVlZWViZW4gd2lyIG5vY2guLi4gOikKCllUQ3UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGhldXQgaGFiZSBpY2ggYWJlciB2aWVsIGdlc2NocmllYmVuIChTdW5mbG93ZXIsIDIzLiBEZXogMjAwMiwgMTI6MTY6MDgpOgp+IyEgcm49Q3VjaHVsbGluIHJ0PTEwNDA2NDA1MDIgcmc9d2l0emUKfiMhIHRpZD0xMDQwNjM2OTczCi9tZSBobXBmdCA7LSkKCk1pciBnZWZhZWxsdCBhYmVyIGRpZSAuc2lnbmF0dXJlIHVuZCB3ZW5uIGljaCBtaXIgZGVpbiBHZXNpY2h0IHNvIGFuZ3Vja2UKY3VjaHVsbGluLi50amEgaWNoIHdlaXNzIG5pY2h0IDtvKQoKLS0tLQpNYW5jaG1hbCBrYW5uIGljaCBpbiBlaW5lbSB2ZXJ0cmF1dGVuIEdlc2ljaHQgCm5pY2h0cyB3ZWl0ZXIgZXJrZW5uZW4sIGFscyBkaWUgU3B1cmVuCmRpZSBkZXIgVG9kIGRhcmluIGhpbnRlcmxhc3NlbiB3aXJkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV0ZGlnZXN0LiBJcyBkb2NoIGtsYXIuIChWYW5pb24sIDIzLiBEZXogMjAwMiwgMTc6MTY6NTQpOgoKWWVzdGVyZGF5CgpZZXN0ZXJkYXksCkFsbCB0aG9zZSBiYWNrdXBzIHNlZW1lZCBhIHdhc3RlIG9mIHBheS4KTm93IG15IGRhdGFiYXNlIGhhcyBnb25lIGF3YXkuCk9oIEkgYmVsaWV2ZSBpbiB5ZXN0ZXJkYXkuCgpTdWRkZW5seSwKVGhlcmUncyBub3QgaGFsZiB0aGUgZmlsZXMgdGhlcmUgdXNlZCB0byBiZSwKQW5kIHRoZXJlJ3MgYSBtaWxlc3RvbmUgaGFuZ2luZyBvdmVyIG1lClRoZSBzeXN0ZW0gY3Jhc2hlZCBzbyBzdWRkZW5seS4KCkkgcHVzaGVkIHNvbWV0aGluZyB3cm9uZwpXaGF0IGl0IHdhcyBJIGNvdWxkIG5vdCBzYXkuCgpOb3cgYWxsIG15IGRhdGEncyBnb25lCmFuZCBJIGxvbmcgZm9yIHllc3RlcmRheS1heS1heS1heS4KClllc3RlcmRheSwKVGhlIG5lZWQgZm9yIGJhY2stdXBzIHNlZW1lZCBzbyBmYXIgYXdheS4KSSBrbmV3IG15IGRhdGEgd2FzIGFsbCBoZXJlIHRvIHN0YXksCk5vdyBJIGJlbGlldmUgaW4geWVzdGVyZGF5LgoKViosIGhhdCBtaXRnZXN1bmdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hdGhlbWF0aWtlcndpdHogKEdyaW1tYm9ybiwgIDQuIEphbiAyMDAzLCAxNjo0NjowOCk6CldlaWxzIGRlcnplaXQgc29ndXQgenUgd3d3IHBhc3N0LCBoaWVyIG1hbCB3aWVkZXIgbWVpbgpMaWVibGluZ3NtYXRoZW1hdGlrZXJ3aXR6OgoKWndlaSBNYXRoZW1hdGlrZXIgc2l0emVuIGltIEthZmZlZSwgZGlza3V0aWVyZW4gd2llIHNjaGxlY2h0IGRpZQpNYXRoZW1hdGlra2VubnRuaXNzZSBkZXIgYWxsZ2VtZWluZW4gQmV2b2Vsa2VydW5nIGlzdC4gRWluZXIgaGF0IGtlaW5lIGd1dGUKTWVpbnVuZywgZGVyIGFuZGVyZSBpc3QgaGluZ2VnZW4gZGVyIEFuc2ljaHQgZGFzcyBkdXJjaGF1cyBXaXNzZW4gdm9yaGFuZGVuCmlzdC4gU2NobGllc3NsaWNoIGdlaHQgZGVyIFBlc3NpbWlzdCBtYWwgZnVlciBrbGVpbmUgTWF0aGVtYXRpa2VyLiBEZXIgYW5kZXJlCndpbmt0IGRpZSAoYmxvbmRlKSBLZWxsbmVyaW4gYW4gZGVuIFRpc2NoIHVuZCBzYWd0OiAiSWNoIGhhYmUgaGllciBtaXQgbWVpbmVtCktvbGxlZ2VuIGVpbmVuIERpc3B1dC4gV2VubiBlciB3aWVkZXJrb21tdCB3ZXJkZSBpY2ggU2llIHdhcyBmcmFnZW4sIHVuZCBTaWUKc2FnZW4gZWluZmFjaCAneCBxdWFkcmF0JywgamE/IiBTaWUgbmlja3QsIGdlaHQgd2llZGVyLCBkZXIgS29sbGVnZSBrb21tdAp6dXJ1ZWNrLiBTYWd0IGFsc28gZGVyIHNpdHplbmdlYmxpZWJlbmU6ICJBbHNvLCBpY2ggemVpZ2UgRGlyIG1hbCBkYXNzIGRpZQpMZXV0ZSBkdXJjaGF1cyBBaG51bmcgdm9uIE1hdGhlbWF0aWsgaGFiZW4uIEljaCB3ZXJkZSBqZXR6dCBkaWUgS2VsbG5lcmluIG1hbApuYWNoIGRlciBTdGFtbWZ1bmt0aW9uIHp1IDJ4IGZyYWdlbi4iIERlciBLb2xsZWdlIG5pY2t0LCBlciB3aW5rdCBkaWUKS2VsbG5lcmluIGhlcmFuIHVuZCBmcmFndCBzaWU6ICJLb2VubmVuIFNpZSBtaXIgZGllIFN0YW1tZnVua3Rpb24genUgMngKc2FnZW4/IiBTaWUgbmlja3QgdW5kIHNhZ3QgIlNpY2hlcjogeCBxdWFkcmF0LiIgU2llIGdlaHQgd2llZGVyIFJpY2h0dW5nClRoZWtlLCB3ZW5kZXQgc2ljaCBub2NobWFsIHp1IGRlbiBiZWlkZW4gTWF0aGVtYXRpa2VybiB1bSB1bmQgc2FndDogIlBsdXMgYy4iCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYXRoZW1hdGlrZXJ3aXR6IChBcHN1LCAgNC4gSmFuIDIwMDMsIDE2OjQ4OjQ4KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDQxNjk1MTY4IHJnPXdpdHplCn4jISB0aWQ9MTA0MTY5NTE2OApEaWUgd2FyIGdhcmFudGllcnQgbnVyIGJsb25kIGdlZmFlcmJ0IDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9jaHplaXRzdm9yYmVyZWl0dW5nZW4gKE5vbm5lLCAxNi4gSmFuIDIwMDMsIDE0OjUyOjE2KToKTmFjaGRlbSBtZWluZSBWZXJsb2J0ZSB1bmQgaWNoIHVucyBzZWl0IGVpbmVtIEphaHIga2VubmVuLCBoYWJlbiB3aXIKYmVzY2hsb3NzZW4gbmFlY2hzdGVuIE1vbmF0IHp1IGhlaXJhdGVuLiBkaWUgTXV0dGVyIG1laW5lciBWZXJsb2J0ZW4sCm1laW5lIHp1a3VlbmZ0aWdlIFNjaHdpZWdlcm11dHRlciBhbHNvLCBpc3QgZ2VuaWFsICh1bmQgYXVzc2VyZGVtIHN1cGVyIApzZXh5KS4KU2llIGhhdCBzaWNoIHVtIGFsbGVzIGdla3VlbW1lcnQ6IFplcmVtb25pZSwgS2lyY2hlLCBGb3RvZ3JhZiwgCkFiZW5kZXNzZW4sIEJsdW1lbiwgdXN3LiBHZXN0ZXJuIGhhdCBzaWUgbWljaCBhbmdlcnVmZW4uIEljaCBzb2xsIGJlaSAKaWhyIHZvcmJlaWtvbW1lbiB1bSBkaWUgTGlzdGUgZGVyIEdhZXN0ZSBub2NobWFscyBkdXJjaHp1Z2VoZW4sIHVuZCBlaW4gClBhYXIgTmFtZW4genUgc3RyZWljaGVuIHZvbiBQZXJzb25lbiBtZWluZXIgRmFtaWxpZSwgZGEgd2lyIHp1dmllbGUgCkxldXRlIGVpbmdlbGFkZW4gaGFiZW4uCkljaCBiaW4gZGFubiBoaW5nZWZhaHJlbiwgdW5kIHdpciBzaW5kIGR1cmNoIGRpZSBMaXN0ZSBnZWdhbmdlbi4gClNjaGxpZXNzbGljaCBoYWJlbiB3aXIgdW5zIHVlYmVyIDE1MCBHYWVzdGUgZ2VlaWduZXQuIEF1ZiBlaW4gTWFsIAp3dXJkZSBpY2ggZmFzc3VuZ3Nsb3MsIGFscyBzaWUgenUgbWlyIHNhZ3RlLCBpY2ggc2VpIGVpbiBzZWhyIAphdHRyYWt0aXZlciBNYW5uOyBpbiBlaW5lbSBNb25hdCB3dWVyZGUgaWNoIHZlcmhlaXJhdGV0IHNlaW4sIHVuZCBkYW5uIApuaWNodHMgbWVociBtb2VnbGljaCB3YWVyZTsgYWxzbyB3dWVuc2NodGUgc2llIHNpY2ggbmljaHRzIGFuZGVyZXMgYWxzIAptaXQgbWlyIHp1IHNjaGxhZmVuLCB1bmQgendhciBzb2ZvcnQuIFNpZSBzdGFuZCBhdWYgdW5kIGdpbmcgdm9sbGVyIApTaW5ubGljaGtlaXQgYXVmcyBTY2hsYWZ6aW1tZXIgenUuIFNpZSBmbHVlc3RlcnRlIG1pciBub2NoIHp1LCBpY2ggCnd1ZXNzdGUgamEgc2VociBndXQsIHdvIHNpY2ggZGllIEhhdXN0dWVyIGJlZmFuZCwgZmFsbHMgaWNoIGdlaGVuIAp3b2xsdGUuIEljaCBibGllYiBmZXN0Z2VuYWdlbHQgc3RlaGVuLCBmYXN0IDMgTWludXRlbiBsYW5nLgpVbmQgZGFubiB3dXNzdGUgaWNoLCB3ZWxjaGVuIFdlZyBpY2ggZ2VoZW4gd3VlcmRlLiBJY2ggcmFubnRlIHp1ciAKSGF1c3R1ZXIsIGdpbmcgaGluYXVzLi4uIHVuZCBmYW5kIElocmVuIFZhdGVyIGxhZWNoZW5sZCBhbiBtZWluZW0gCkF1dG8gc3RlaGVuLgpJY2ggZ2xhdWJlLCBlciBzYWd0ZSBldHdhcyB3aWU6ICJ3aXIgd29sbHRlbiBkaWNoIHRlc3RlbiwgdW0gc2ljaGVyIHp1CnNlaW4sIGRhc3MgdW5zZXJlIGdlbGllYnRlIFRvY2h0ZXIgZWluZW4gZWhyd3VlcmRpZ2VuIHVuZCBlaHJsaWNoZW4gCk1hbm4gaGVpcmF0ZXQuIERpZXNlbiBUZXN0IGhhZXR0ZSBpY2ggYmVzdGFuZGVuLiIgRXIga3Vlc3N0ZSBtaWNoIApvaG5lLCBkYXNzIGljaCBhdWNoIG51ciBlaW4gV29ydCBzYWdlbiBrb25udGUsIHVuZCBncmF0dWxpZXJ0ZSBtaXIuClp1bSBHbHVlY2sgaGF0dGUgaWNoIG1laW5lIEtvbmRvbWUgaW0gQXV0byB1bmQgbmljaHQgaW4gZGVyIApIb3NlbnRhc2NoZS4KCk5vbm5lLCBrYW5udGUgZGVuIG5vY2ggZ2FyIG5pY2h0LgoKUXVlbGxlIGRlLnRhbGsuam9rZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1c2ggOi0pIChCYW1idWxrbywgMTcuIEphbiAyMDAzLCAxNzoxMToxNik6ClByZXNpZGVudCBHZW9yZ2UgQnVzaCBpcyB2aXNpdGluZyBhbiBlbGVtZW50YXJ5IHNjaG9vbCB0b2RheSBhbmQgaGUKdmlzaXRzIG9uZSBvZiB0aGUgY2xhc3Nlcy4KClRoZXkgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBkaXNjdXNzaW9uIHJlbGF0ZWQgdG8gd29yZHMgYW5kIHRoZWlyCm1lYW5pbmdzLgoKVGhlIHRlYWNoZXIgYXNrcyB0aGUgUHJlc2lkZW50IGlmIGhlIHdvdWxkIGxpa2UgdG8gbGVhZCB0aGUKY2xhc3MgaW4gdGhlIGRpc2N1c3Npb24gb2YgdGhlIHdvcmQsICJ0cmFnZWR5LiIKClNvIHRoZSBpbGx1c3RyaW91cyBsZWFkZXIgYXNrcyB0aGUgY2xhc3MgZm9yIGFuIGV4YW1wbGUgb2YgYQoidHJhZ2VkeS4iCgpPbmUgbGl0dGxlIGJveSBzdGFuZHMgdXAgYW5kIG9mZmVycywgIklmIG15IGJlc3QgZnJpZW5kLCB3aG8KbGl2ZXMgbmV4dCBkb29yLCBpcyBwbGF5aW5nIGluIHRoZSBzdHJlZXQgYW5kIGEgY2FyIGNvbWVzIGFsb25nIGFuZCBydW5zCmhpbSBvdmVyLCB0aGF0IHdvdWxkIGJlIGEgdHJhZ2VkeS4iCgoiTm8sIiBzYXlzIEJ1c2gsICJ0aGF0IHdvdWxkIGJlIGFuIEFDQ0lERU5ULiIKCkEgbGl0dGxlIGdpcmwgcmFpc2VzIGhlciBoYW5kOiAiSWYgYSBzY2hvb2wgYnVzIGNhcnJ5aW5nIDUwIGNoaWxkcmVuCmRyb3ZlIG9mZiBhIGNsaWZmLCBraWxsaW5nIGV2ZXJ5b25lIGludm9sdmVkLCB0aGF0IHdvdWxkIGJlIGEKdHJhZ2VkeS4iCiJJJ20gYWZyYWlkIG5vdCwiIGV4cGxhaW5zIE1yLiBQcmVzaWRlbnQuICJUaGF0J3Mgd2hhdCB3ZSB3b3VsZCBjYWxsIGEKR1JFQVQgTE9TUy4iCgpUaGUgcm9vbSBnb2VzIHNpbGVudC4gTm8gb3RoZXIgY2hpbGRyZW4gdm9sdW50ZWVyLiBQcmVzaWRlbnQgQnVzaApzZWFyY2hlcyB0aGUgcm9vbS4KCiJJc24ndCB0aGVyZSBzb21lb25lIGhlcmUgd2hvIGNhbiBnaXZlIG1lIGFuIGV4YW1wbGUgb2YgYSB0cmFnZWR5PyIKCkZpbmFsbHksIHdheSBpbiB0aGUgYmFjayBvZiB0aGUgcm9vbSwgYSBzbWFsbCBib3kgcmFpc2VzIGhpcyBoYW5kLgpJbiBhIHF1aWV0IHZvaWNlIGhlIHNheXMsICJJZiBBaXIgRm9yY2UgT25lLCBjYXJyeWluZyBNci4gJiBNcnMuIEJ1c2gsCndlcmUgc3RydWNrIGJ5IGEgbWlzc2lsZSBhbmQgYmxvd24gdXAgdG8gc21pdGhlcmVlbnMsIGJ5IGEKdGVycm9yaXN0IGxpa2UgT3NhbWEgYmluIExhZGVuLCB0aGF0IHdvdWxkIGJlIGEgdHJhZ2VkeS4iCgoiRmFudGFzdGljLCIgZXhjbGFpbXMgQnVzaCwgInRoYXQncyByaWdodC4gQW5kIGNhbiB5b3UgdGVsbAptZSBXSFkgdGhhdCB3b3VsZCBiZSBhIFRSQUdFRFk/IgoKIldlbGwsIiBzYXlzIHRoZSBib3ksICJiZWNhdXNlIGl0IHdvdWxkbid0IGJlIGFuIGFjY2lkZW50LCBhbmQgaXQKY2VydGFpbmx5IHdvdWxkbid0IGJlIGEgZ3JlYXQgbG9zcy4iCgpCYW1idWxrbyA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCjotKSAoQmFtYnVsa28sIDIzLiBKYW4gMjAwMywgMTA6MTM6MjQpOgpBbmQgR29kIHNhaWQ6IHBrdW56aXAgd29ybGQuemlwCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IDotKSAoTm9ubmUsIDIzLiBKYW4gMjAwMywgMTA6MTc6MjMpOgp+IyEgcm49QmFtYnVsa28gcnQ9MTA0MzMxMzIwNCByZz13aXR6ZQp+IyEgdGlkPTEwNDMzMTMyMDQKSW50ZXJlc3NhbnQsIHVuZCB3ZXIgaGF0IHZvcmhlciBwa3ppcCB3b3JsZCBnZXNhZ3Q/IAoKRnJhZ2VuIHVlYmVyIEZyYWdlbi4KCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiA6LSkgKEdyaW1tYm9ybiwgMjMuIEphbiAyMDAzLCAxMDoyMDozMCk6Cn4jISBybj1Ob25uZSBydD0xMDQzMzEzNDQzIHJnPXdpdHplCn4jISB0aWQ9MTA0MzMxMzIwNApVbmQgdWViZXJoYXVwdCwgZWluICJndW56aXAgd29ybGQuZ3oiIGlzdCB3ZXNlbnRsaWNoIGdsYXVid3VlcmRpZ2VyLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiA6LSkgKEN1Y2h1bGxpbiwgMjMuIEphbiAyMDAzLCAxMDo0MjowMik6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTA0MzMxMzYzMCByZz13aXR6ZQp+IyEgdGlkPTEwNDMzMTMyMDQKV2FlciBkYXMgbmljaHQgInRhciB4dnpmIHVuaXZlcnNlLnRneiIgZ2V3ZXNlbj8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiA6LSkgKFRoYW50YWxhcywgMjMuIEphbiAyMDAzLCAxMDo0MzoyMSk6Cn4jISBybj1DdWNodWxsaW4gcnQ9MTA0MzMxNDkyMiByZz13aXR6ZQp+IyEgdGlkPTEwNDMzMTMyMDQKTnVuIG1hbCByZWluIHBoeXNpa2FsaXNjaC4uLiBpc3QgZGFzIFVuaXZlcnN1bSBuaWNodCBzZWxic2VudHBhY2tlbmQgPyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogOi0pIChPcmt0b2V0ZXIsIDIzLiBKYW4gMjAwMywgMTA6NDM6NDMpOgp+IyEgcm49Q3VjaHVsbGluIHJ0PTEwNDMzMTQ5MjIgcmc9d2l0emUKfiMhIHRpZD0xMDQzMzEzMjA0Ck1pY2ggZXJzdGF1bnQgamEgYW0gbWVpc3RlbiBkaWUgU3ByYWNoc3RldWVydW5nLi4uLgoKT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IDotKSAoSG91c2Vob2xkZXIsIDIzLiBKYW4gMjAwMywgMTE6MjI6MTYpOgp+IyEgcm49Q3VjaHVsbGluIHJ0PTEwNDMzMTQ5MjIgcmc9d2l0emUKfiMhIHRpZD0xMDQzMzEzMjA0CmRhbWFscyBnYWJzIG5vY2gga2VpbmUgeiBvcHRpb24gLT4gIGd6Y2F0IHVuaXZlcnNlLnRnenx0YXIgY2YgLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogOi0pIChFbGRhcm9uLCAyMy4gSmFuIDIwMDMsIDE5OjIwOjIxKToKfiMhIHJuPUN1Y2h1bGxpbiBydD0xMDQzMzE0OTIyIHJnPXdpdHplCn4jISB0aWQ9MTA0MzMxMzIwNApEYXMgVmVyYm9zZSBpc3QgZWluIFdpdHogb2Rlcj8gCgpFbGRhcm9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiA6LSkgKENyb2Z0LCAyMy4gSmFuIDIwMDMsIDE5OjIxOjIzKToKfiMhIHJuPUVsZGFyb24gcnQ9MTA0MzM0NjAyMSByZz13aXR6ZQp+IyEgdGlkPTEwNDMzMTMyMDQKQ3VjaHVsbGluIG1hZyBTY3JvbGwgLC0pCgpDcm9mdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogOi0pIChNb250YW51cywgMjQuIEphbiAyMDAzLCAwNzowMDo1MSk6Cn4jISBybj1Dcm9mdCBydD0xMDQzMzQ2MDgzIHJnPXdpdHplCn4jISB0aWQ9MTA0MzMxMzIwNApBbGxlcyBRdWF0c2NoLgpBbHMgR290dCBkaWUgV2VsdCBlcnNjaGFmZnQgaGF0LCBoYXQgc2llIGVpbmZhY2ggYXVmIGlocmVtIE1hYyBkYXMga2xlaW5lCndvcmxkLnppcC1JY29uIGF1ZiBkYXMgU3R1ZmZJdCBFeHBhbmRlci1JY29uIGdlc2Nob2Jlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcnNpY2h0LCBzY2h3YXJ6ZXIgSHVtb3IhIChOb25uZSwgMjcuIEphbiAyMDAzLCAwOTowOTo1MCk6Ckdlb3JnZSBXLiBCdXNoIHVuZCBUb255IEJsYWlyIHRyZWZmZW4gc2ljaCB6dW0gRXNzZW4gbWl0IEdhZXN0ZW4gaW0gCldlaXNzZW4gSGF1cy4KRnJhZ3QgZWluZXIgZGVyIEdhZXN0ZTogJ01pc3RlciBQcmVzaWRlbnQsIHdvcnVlYmVyIHVudGVyaGFsdGVuIFNpZSBzaWNoIApkZW5uIGRlbiBnYW56ZW4gVGFnPycgLSBCdXNoOidXaXIgcGxhbmVuIGdlcmFkZSBkZW4gZHJpdHRlbiAKV2VsdGtyaWVnLicgLSAnVW5kIHdpZSBzaWVodCBkZXIgYXVzPycgLSBCdXNoOiAnV2lyIHRvZXRlbiB2aWVyIE1pbGxpb25lbiAKTW9zbGVtcyB1bmQgZWluZW4gWmFobmFyenQgLi4uJyBEZXIgR2FzdCBzY2hhdXQgZXR3YXMgdmVyd2lycnQ6ICdXaWVzbyAKZWluZW4gWmFobmFyenQ/JyAtIFRvbnkgQmxhaXIga2xvcGZ0IEJ1c2ggYXVmIGRpZSBTY2h1bHRlciB1bmQgbWVpbnQ6IAonV2FzIGhhYmUgaWNoIGRpciBnZXNhZ3QsIEdlb3JnZS4gS2VpbmVyIHdpcmQgbmFjaCBkZW4gTW9zbGVtcyBmcmFnZW4gCi4uLicKCk5vbm5lLCBraWNoZXJuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhlaXNzZSBEaXNrdXNzaW9uIChBbnRoZWEsIDMwLiBKYW4gMjAwMywgMDk6NDQ6NTIpOgpHZW9yZ2UgVy5CdXNoIGluIGRlciBTY2h1bGUKCgpBdWYgZWluZXIgUHJvcGFnYW5kYS1Ub3VybmVlIGR1cmNoIEFtZXJpa2EgYmVzdWNodCBQcmFlc2lkZW50IEdlb3JnZSBCdXNoCmVpbmUgU2NodWxlIHVuZCBlcmtsYWVydCBkb3J0IGRlbiBTY2h1ZWxlcm4gc2VpbmUgUmVnaWVydW5ncy0gcG9saXRpay4gRGFuYWNoCmJpdHRldCBlciBkaWUgS2luZGVyLCBGcmFnZW4genUgc3RlbGxlbi4gCgpEZXIga2xlaW5lIEJvYiBlcmdyZWlmdCBkYXMgV29ydDoKSGVyciBQcmFlc2lkZW50LCBpY2ggaGFiZSBkcmVpIEZyYWdlbjoKCjEuIFdpZSBoYWJlbiBTaWUsIG9id29obCBTaWUgYmVpIGRlciBTdGltbWVuYXVzemFlaGx1bmcgdmVybG9yZW4gaGFiZW4sCiAgIGRpZSBXYWhsIHRyb3R6ZGVtIGdld29ubmVuPwoyLiBXYXJ1bSB3b2xsZW4gU2llIGRlbiBJcmFrIG9obmUgR3J1bmQgYW5ncmVpZmVuPwozLiBEZW5rZW4gU2llIG5pY2h0LCBkYXMgZGllIEJvbWJlIGF1ZiBIaXJvc2hpbWEgZGVyIGdyb2Vzc3RlIAogICB0ZXJyb3Jpc3Rpc2NoZSBBbnNjaGxhZyBhbGxlciBaZWl0ZW4gd2FyPwoKSW4gZGllc2VtIE1vbWVudCBsYWV1dGV0IGRpZSBQYXVzZW5rbGluZ2VsIHVuZCBhbGxlIFNjaHVlbGVyIGxhdWZlbiBhdXMgZGVtCktsYXNzZW56aW1tZXIuIEFscyBzaWUgdm9uIGRlciBQYXVzZSB6dXJ1ZWNrIGtvbW1lbiwgbGFlZHQgUHJhZXNpZGVudCBCdXNoCmVybmV1dCBlaW4sIEZyYWdlbiB6dSBzdGVsbGVuLCB1bmQgZGllc21hbCBlcmdyZWlmdCBKb2V5IGRhcyBXb3J0OgpIZXJyIFByYWVzaWRlbnQsIGljaCBoYWJlIGZ1ZW5mIEZyYWdlbjoKCjEuIFdpZSBoYWJlbiBTaWUsIG9id29obCBTaWUgYmVpIGRlciBTdGltbWVuYXVzemFlaGx1bmcgdmVybG9yZW4gaGFiZW4sCiAgIGRpZSBXYWhsIHRyb3R6ZGVtIGdld29ubmVuPwoyLiBXYXJ1bSB3b2xsZW4gU2llIGRlbiBJcmFrIG9obmUgR3J1bmQgYW5ncmVpZmVuPwozLiBEZW5rZW4gU2llIG5pY2h0LCBkYXMgZGllIEJvbWJlIGF1ZiBIaXJvc2hpbWEgZGVyIGdyb2Vzc3RlIAogICB0ZXJyb3Jpc3Rpc2NoZSBBbmdyaWZmIGFsbGVyIFplaXRlbiB3YXI/CjQuIFdhcnVtIGhhdCBkaWUgUGF1c2Vua2xpbmdlbCBoZXV0ZSAyMCBNaW51dGVuIGZydWVoZXIgZ2VrbGluZ2VsdD8KNS4gV28gaXN0IEJvYj8/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2Fybmlja2VsIChNb3Jnb3RoLCAzMS4gSmFuIDIwMDMsIDE0OjQzOjUzKToKS29tbXQgZWluIGtsZWluZXMgTWFlZGNoZW4gaW4gZGllIFpvb2hhbmRsdW5nLCBsYWVjaGVsdCBkZW4gVmVya2FldWZlciBhbiB1bmQKc2FndDogIkljaCBtb2VjaHRlIGdlcm4gZWluIEthbmluY2hlbi4iIEZyYWd0IGRlciBWZXJrYWV1ZmVyOiAiTW9lY2h0ZXN0IGR1CmRpZXNlcyBrbGVpbmUsIHN1ZXNzZSwgYnJhdW5lIG1pdCBkZW4gZ3Jvc3NlbiBBdWdlbj8gT2RlciBsaWViZXIgZGFzCmt1c2NoZWxpZy13dXNjaGVsaWcsIGZsYXVzY2hpZ2UsIHdlaXNzZT8iIERhcyBNYWVkY2hlbiBhbnR3b3J0ZXQ6ICJJY2ggZGVua2UsCmRhcyBpc3QgbWVpbmVyIFB5dGhvbiBlZ2FsLiIKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS2Fybmlja2VsIChKYW1lc29uLCAzMS4gSmFuIDIwMDMsIDE0OjQ1OjA1KToKfiMhIHJuPU1vcmdvdGggcnQ9MTA0NDAyMDYzMyByZz13aXR6ZQp+IyEgdGlkPTEwNDQwMjA2MzMKR3JpbW1ib3JuIGlzdCBpbiBSTCBlaW4ga2xlaW5lcyBNYWVkY2hlbj8gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS2Fybmlja2VsIChHcmltbWJvcm4sICAyLiBGZWIgMjAwMywgMjA6MjM6NTApOgp+IyEgcm49SmFtZXNvbiBydD0xMDQ0MDIwNzA1IHJnPXdpdHplCn4jISB0aWQ9MTA0NDAyMDYzMwpOZWluLiBVbmQgaWNoIHNhZ2UgYXVjaCBrb3JyZWt0ICJkZXIgUHl0aG9uIi4KQXVzc2VyZGVtIGlzc3QgRWRnYXIgbnVyIE1hZXVzZSB1bmQgUmF0dGVuLCB3ZW5uIHVlYmVyaGF1cHQuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEthcm5pY2tlbCAoWm9vaywgIDIuIEZlYiAyMDAzLCAyMDo0NzowMik6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTA0NDIxMzgzMCByZz13aXR6ZQp+IyEgdGlkPTEwNDQwMjA2MzMKWWVhaCwgWWVhaCwgWWVhaCEKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBLYXJuaWNrZWwgKEdyaW1tYm9ybiwgIDIuIEZlYiAyMDAzLCAyMDo1NToxOCk6Cn4jISBybj1ab29rIHJ0PTEwNDQyMTUyMjIgcmc9d2l0emUKfiMhIHRpZD0xMDQ0MDIwNjMzCkR1IGhhc3QgZ3V0IExhY2hlbiwgRWRnYXIgaXN0IG1hbCB3aWVkZXIgaW0gSHVuZ2Vyc3RyZWlrIHVuZCBpY2ggbWFjaGUgbWlyClNvcmdlbi4gCgpFaW4gbGFobWVyIFdpdHogenUgZGVuIExhbmR0YWdzd2FobGVuOiAiRXIgaXN0IG51ciBlaW4gUG9saXRpa2VyIGRlciB2ZXJzdWNodCwKc2VpbmUgYmVpZGVuIEdlc2ljaHRlciB6dSB3YWhyZW4uIiAKCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogS2Fybmlja2VsIChab29rLCAgMi4gRmViIDIwMDMsIDIwOjU2OjA2KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDQ0MjE1NzE4IHJnPXdpdHplCn4jISB0aWQ9MTA0NDAyMDYzMwpOYWphLCB3aXIgaGF0dGVuIG51ciBnZXdldHRldCwgZGFzcyBEdSBkYXJhdWYgaGlud2Vpc2VuIHd1ZXJkZXN0LCBkYXNzIGVzCl9kZXJfIFB5dGhvbiBoZWlzc3QuIFVuZCBkYXMgaXN0IGphIGRhbm4gYXVjaCBlaW5nZXRyZXRlbi4uLiA7KQoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEthcm5pY2tlbCAoR3JpbW1ib3JuLCAgMi4gRmViIDIwMDMsIDIwOjU3OjIyKToKfiMhIHJuPVpvb2sgcnQ9MTA0NDIxNTc2NiByZz13aXR6ZQp+IyEgdGlkPTEwNDQwMjA2MzMKQWhzby4gSmEsIGRhcyBpc3QgaGFsdCBtZWluIGd1dGVzIEhlcnosIGljaCBnZWJlIGRpZSBIb2ZmbnVuZyBuaWNodCBhdWYgZGFzcwpkaWUgV2VsdCB2ZXJudWVuZnRpZyB1bmQgZ2ViaWxkZXQgd2lyZCwgd2VubiBtYW4gbnVyIG1pdCBydWhpZ2VyIFN0aW1tZQpzcHJpY2h0IHVuZCBCaWxkZXIgZGVyIEVua2Vsa2luZGVyIGhlcnVtemVpZ3QuIAoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChFbGRhcm9uLCAgNC4gRmViIDIwMDMsIDE3OjU5OjAxKToKZWNobyBgdXB0aW1lfGdyZXAgZGF5c3xzZWQgJ3MvLip1cCBcKFswLTldKlwpIGRheS4qL1wxXC8xMCsvJzsgY2F0Ci9wcm9jL2NwdWluZm98Z3JlcCBNSHp8YXdrICd7cHJpbnQgJDQiLzMwICsiO30nOyBmcmVlfGdyZXAgJ15NZW0nIHxhd2sgJ3twcmludAokMyIvMTAyNC8zKyJ9JzsgZGYgLVAgLWsgLXggbmZzIHwgZ3JlcCAtdiAxayB8IGF3ayAne2lmICgkMSB+CiIvZGV2LyhzY3NpfHNkKSIpeyBzKz0gJDJ9IHMrPSAkMjt9IEVORCB7cHJpbnQgcy8xMDI0LzUwIi8xNSs3MCI7fSdgfGJjfHNlZAoncy9cKC4kXCkvLlwxY20vJwoKRWxkYXJvbiwgMjkuNiBjbSA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBHZWVrLVNjaHdhbnp2ZXJnbGVpY2ggKEFuYXRvbCwgIDQuIEZlYiAyMDAzLCAxODowMDowNik6Cn4jISBybj1FbGRhcm9uIHJ0PTEwNDQzNzc5NDEgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxClp1IGxhbmcuIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChIdW1uaSwgIDQuIEZlYiAyMDAzLCAxODowNDoyMyk6Cn4jISBybj1BbmF0b2wgcnQ9MTA0NDM3ODAwNiByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKNDcuOAoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IERlciBHZWVrLVNjaHdhbnp2ZXJnbGVpY2ggKEdyaW1tYm9ybiwgIDQuIEZlYiAyMDAzLCAxODowNzo1Mik6Cn4jISBybj1IdW1uaSBydD0xMDQ0Mzc4MjYzIHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQo0OC43Y20uClVuZCB6d2lzY2hlbiBXZXJ0IHVuZCBFaW5oZWl0IGtvbW10IG5vcm1hbGVyd2Vpc2UgZWluIExlZXJ6ZWljaGVuLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChIdW1uaSwgIDQuIEZlYiAyMDAzLCAxODowODoyOCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTA0NDM3ODQ3MiByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKRGVyIE1HLVJlY2huZXIgaGF0IGtlaW4gYmMuIFNjaGFkZSBlaWdlbnRsaWNoLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IERlciBHZWVrLVNjaHdhbnp2ZXJnbGVpY2ggKEVsZGFyb24sICA0LiBGZWIgMjAwMywgMTg6MDg6NDApOgp+IyEgcm49SHVtbmkgcnQ9MTA0NDM3ODUwOCByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKVmllbGxlaWNodCBpc3QgZXIgd2VpYmxpY2g/IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciBHZWVrLVNjaHdhbnp2ZXJnbGVpY2ggKEZvb2JhciwgIDQuIEZlYiAyMDAzLCAxODoxNzo1Mik6Cn4jISBybj1FbGRhcm9uIHJ0PTEwNDQzNzc5NDEgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCkRhcyBpc3Qgc29nYXIgZnVlciAnbmVuIEhvYmJpdCB6aWVtbGljaCBrbGVpbi4gOm8pCgpGb29iYXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChXaGl0ZXRpZ2VyLCAgNC4gRmViIDIwMDMsIDIxOjQ5OjE4KToKfiMhIHJuPUVsZGFyb24gcnQ9MTA0NDM3Nzk0MSByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKS29taXNjaGVzIFNrcmlwdCA6KSBVbmQgbiBiaXNzY2hlbiBsYW5nIHp1bSBzbyBhYnRpcHBlbiAob2huZSBDb3B5J24nUGFzdGUpLgozMC4yIGJlaW0gendlaXRlbiBBbmxhdWYsIGJlaW0gZXJzdGVuIHdhcnMgYXVzIGlyZ2VuZG5lbSBHcnVuZCB3ZW5pZ2VyLi4uICpnKgoKLS0gV2hpdGVUaWdlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChNdWFkZGliLCAgNC4gRmViIDIwMDMsIDIxOjU3OjIwKToKfiMhIHJuPVdoaXRldGlnZXIgcnQ9MTA0NDM5MTc1OCByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKSWNoIGZpbmRzIGZhc3ppbmllcmVuZCwgd2lldmllbGUgIkdlZWtzIiBzaWNoIHp1bSBTY2h3YW56dmVyZ2xlaWNoIGVpbmZpbmRlbi4KV29iZWkgbGV0enRlcmVzIHNjaG9uIGluIGRlciBOb24tR2VlayBDb21tdW5pdHkgZWluZSBlaGVyIHByb2xsaWdlCkFuZ2VsZWdlbmhlaXQgaXN0IC0gdW5kIGljaCBpbW1lciBkYWNodGUsIGRhc3MgIkdlZWtzIiBlaW5lIGV0d2FzIGZlaW5lcmUgQXJ0CnZvbiBIdW1vciBwZmxlZ2VuLiBBYmVyIEdlZWtzIGtvbW1lbiB3b2hsIGF1Y2ggaW4gdmVyc2NoaWVkZW5lbiBGYXJiZW4uCgpEYXMgc2NyaXB0IGlzdCBqYSBnYW56IHdpdHppZyAtIGFiZXIgZGllIExhZW5nZSB2ZXJyYXRlIGljaCBuaWNodC4gCk11YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRGVyIEdlZWstU2Nod2FuenZlcmdsZWljaCAoR3JpbW1ib3JuLCAgNC4gRmViIDIwMDMsIDIyOjAxOjE2KToKfiMhIHJuPU11YWRkaWIgcnQ9MTA0NDM5MjI0MCByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKV2VubiBEdSBEaXIgZGFzIGdlbmF1IGFuc2llaHN0IHdpcnN0IER1IGZlc3RzdGVsbGVuIGRhc3MgZXMgc2ljaCBrYXVtIHVtIGVpbmVuCmVjaHRlbiBHZWVrc2Nod2FuenZlcmdsZWljaCBoYW5kZWxuIGthbm4uIFdlbm4gMSBHSHogQ1BVLVRha3Qgc292aWVsIHdlcnQgaXN0CndpZSBmYXN0IGVpbiBKYWhyIHVwdGltZSBzaW5kIGRpZSBQcmlvcml0YWV0ZW4gc2ljaGVyIG5pY2h0IGdlZWt5IGdlc2V0enQuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IERlciBHZWVrLVNjaHdhbnp2ZXJnbGVpY2ggKE11YWRkaWIsICA0LiBGZWIgMjAwMywgMjI6MDI6NDcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwNDQzOTI0NzYgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCkljaCBoYWIgYXVjaCBlaGVybGljaCBnZXNhZ3Qga2VpbmUgQWhudW5nLCBvYiBkYXMgaW4gZGVyIG5vbi1nZWVrIHZlcnNpb24KaXJnZW5kd2llIGFlaG5saWNoIGFibGFldWZ0Li4uIGVnYWwuIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChHcmltbWJvcm4sICA0LiBGZWIgMjAwMywgMjI6MDY6MTMpOgp+IyEgcm49TXVhZGRpYiBydD0xMDQ0MzkyNTY3IHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQpFaW4gZ2VlayBpc3Qgc3RvbHogYXVmIGVpbmUgdXB0aW1lLCBkaWUgYmVnYW5uIGFscyBkaWUgbmV1ZXN0ZW4gQ1BVcwpGcmVxdWVuemVuIGhhdHRlbiBkaWUgaGV1dGUgc2Nob24gbGFlbmdzdCBuaWNodCBtZWhyIGF1ZiBkZW0gTWFya3Qgc2luZC4gCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChOb25uZSwgIDUuIEZlYiAyMDAzLCAwOToxMjowMSk6Cn4jISBybj1FbGRhcm9uIHJ0PTEwNDQzNzc5NDEgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCjMyLjkgY20gKGM7CgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRGVyIEdlZWstU2Nod2FuenZlcmdsZWljaCAoQm9pbmcsICA1LiBGZWIgMjAwMywgMDk6MTQ6MzIpOgp+IyEgcm49Tm9ubmUgcnQ9MTA0NDQzMjcyMSByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKT2ssIG9rIC4uLiBoaWVyIG1laW4gRXJnZWJuaXM6CkRlciBCZWZlaGwgaXN0IGVudHdlZGVyIGZhbHNjaCBnZXNjaHJpZWJlbiBvZGVyIGtvbm50ZSBuaWNodCBnZWZ1bmRlbiB3ZXJkZW4uCkJpdHRlIHVlYmVycHJ1ZWZlbiBTaWUgZGllIFNjaHJlaWJ3ZWlzZSB1bmQgZGllIFVtZ2VidW5nc3ZhcmlhYmxlICdQQVRIJy4KCiAgQm9pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IERlciBHZWVrLVNjaHdhbnp2ZXJnbGVpY2ggKE5vbm5lLCAgNS4gRmViIDIwMDMsIDA5OjE1OjM2KToKfiMhIHJuPUJvaW5nIHJ0PTEwNDQ0MzI4NzIgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxClRjaGEsIEJvaW5nLCBkYW5uIGhhc3RlIHdvaGwga2VpbmVuIChjOwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGVyIEdlZWstU2Nod2FuenZlcmdsZWljaCAoWmFybml5YSwgIDUuIEZlYiAyMDAzLCAwOTozMToyOSk6Cn4jISBybj1Ob25uZSBydD0xMDQ0NDMyOTM2IHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQptZWluIElSSVgga2FubiBkaWUgSGFlbGZ0ZSBkZXIgQmVmZWhsZSBuaWNodCBmaW5kZW4gdW5kIGtvbW10IGRlc3dlZ2VuIGF1ZiBlaW4KRXJnZWJuaXMsIGF1ZiBkYXMgaWNoIGhpZXIgbmljaHQgbmFlaGVyIGVpbmdlaGVuIHdpbGwuLi4gOi0pIEFiZXIgaXN0IGVzCndpY2h0aWdlciwgd2FzIG1hbiBkYW1pdCBhbmZhbmdlbiBrYW5uIHVuZCBlYmVuIG5pY2h0IGRpZSBMYWVuZ2U/IDotKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRGVyIEdlZWstU2Nod2FuenZlcmdsZWljaCAoQW5hdG9sLCAgNS4gRmViIDIwMDMsIDA5OjQzOjU3KToKfiMhIHJuPVphcm5peWEgcnQ9MTA0NDQzMzg4OSByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKUGFoLCBub2NoIHNvIGVpbmVyIG1pdCBuZW0gS3VyemVuISA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogRGVyIEdlZWstU2Nod2FuenZlcmdsZWljaCAoQ2F0d2VhemxlLCAgNS4gRmViIDIwMDMsIDEwOjI4OjU4KToKfiMhIHJuPUFuYXRvbCBydD0xMDQ0NDM0NjM3IHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQo0MjUsN2NtIC4KCkhlaGUgOi0pCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChLZWtzLCAgNS4gRmViIDIwMDMsIDEwOjMyOjU0KToKfiMhIHJuPUVsZGFyb24gcnQ9MTA0NDM3Nzk0MSByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKYWxzbyBib2luZyBtZWludGUgamEgbWFsLCBlcyBrYWVtZSBhdWYgZGllIEFOWkFITCBhbiAtIHVuZCBuaWNodCBhdWYgZGllCmxhZW5nZS4uLiB3b3JhdWYgaWNoIG1pY2ggZ2VmcmFndCBoYWJlLCB3aWUgdmllbGUgZGVyIGR1cmNoc2Nobml0dHMtZGV1dHNjaGUKZGVubiBlaWdlbnRsaWNoIGhhdCE/ICprZWtzIC0gbWVsZGV0IHNpY2ggenVydWVjayAtPiBzYWx1dGUgOi0pKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChIdW1uaSwgIDUuIEZlYiAyMDAzLCAxMDozNDoyNSk6Cn4jISBybj1LZWtzIHJ0PTEwNDQ0Mzc1NzQgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCkFsc28gaWNoIGhhYiBlaW5lbi4KCkRhY2h0ZSBpbW1lciBkYXMgc2VpIHNvIHVuZ2VmYWVociBTdGFuZGFyZC4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChIb3VzZWhvbGRlciwgIDUuIEZlYiAyMDAzLCAxMDozNjo1Myk6Cn4jISBybj1IdW1uaSBydD0xMDQ0NDM3NjY1IHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQpkYXMgaXN0IHN0ZXVlcmxpY2ggZWggZ3VlbnN0aWdhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChCb2luZywgIDUuIEZlYiAyMDAzLCAxMDozNzoxNyk6Cn4jISBybj1IdW1uaSBydD0xMDQ0NDM3NjY1IHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQpIYWU/IFNpY2hlciBkYXNzIGljaCBkYXMgd2FyPwogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbndhZWx0ZS4uLi4gKE5vbm5lLCAgNi4gRmViIDIwMDMsIDA4OjQxOjQxKToKRWluZSB3YWhyZSBHZXNjaGljaHRlLAoKQ2hhcmxvdHRlLCBOb3J0aCBDYWxpZm9ybmllbiwgZWluIFJlY2h0c2Fud2FsdCBrYXVmdGUgZWluZQpLaXN0ZSBzZWhyIHNlbHRlbmVyIHVuZCB0ZXVyZXIgWmlnYXJyZW4sIHVuZCB2ZXJzaWNoZXJ0ZQpzaWUgZ2VnZW4gRmV1ZXIgdW5kIGFuZGVyZSBEaW5nZS4gSW5uZXJoYWxiIGVpbmVzIE1vbmF0cwpyYXVjaHRlIGVyIGRpZSBnYW56ZSBLaXN0ZSBkaWVzZXIgZ3Jvc3NhcnRpZ2VuIFppZ2FycmVuIHVuZAp2b3IgZGVyIGVyc3RlbiBQcmVtaXVtYmV6YWhsdW5nIHNlaW5lciBQb2xpY2UsIG1lbGRldGUgZGVyClJlY2h0c2Fud2FsdCBBbnNwcnVlY2hlIGdlZ2VudWViZXIgZGVyIFZlcnNpY2hlcnVuZ3MtCmdlc2VsbHNjaGFmdCBhbi4gSW4gc2VpbmVyIEZvcmRlcnVuZyBnYWIgZGVyIFJlY2h0c2Fud2FsdAphbiwgZGllIFppZ2FycmVuIGdpbmdlbiBpbiBlaW5lciAiUmVpaGUgdm9uIGtsZWluZW4gRmV1ZXJuIgp2ZXJsb3Jlbi4gRGllIFZlcnNpY2hlcnVuZ3NnZXNlbGxzY2hhZnQgd2VpZ2VydGUgc2ljaCB6dQp6YWhsZW4sIGF1cyBmb2xnZW5kZW0gZWlubGV1Y2h0ZW5kZW0gR3J1bmQ6IERlciBNYW5uCmhhYmUgZGllIFppZ2FycmVuIGdlcmF1Y2h0LgoKRGVyIEFud2FsdCBrbGFndGUgLi4uLiBVbmQgYmVrYW0gUmVjaHQhCkluIGRlbiB6dWdydW5kZWdlbGVndGVuIFJlZ2Vsbiwgc3RpbW10ZSBkZXIgUmljaHRlciBkZXIKVmVyc2ljaGVydW5nc2dlc2VsbHNjaGFmdCB6dSwgZGFzIGRpZSBGb3JkZXJ1bmcKbGVpY2h0c2lubmlnL2lycnNpbm5pZyBpc3QuIERlciBSaWNodGVyIGVudHNjaGllZCBkZW5ub2NoLApkYSBkZXIgUmVjaHRzYW53YWx0IGRpZSBQb2xpY2UgZGVyIEdlc2VsbHNjaGFmdCBoYXR0ZSwKaW4gd2VsY2hlciBpaG0genVnZXNpY2hlcnQgd3VyZGUsIGRhc3Mgc2VpbmUgWmlnYXJyZW4KdmVyc2ljaGVydCBzZWllbiB1bmQgaWhtIGdhcmFudGllcnQgd3VyZGUsIGRhc3Mgc2llIGF1Y2gKZ2VnZW4gRmV1ZXIgZ2VzY2h1ZXR6dCBzaW5kLCBvaG5lIHp1IGJlbmVubmVuIHdlbGNoZQpBcnRlbiB2b24gRmV1ZXIgbmljaHQgYWt6ZXB0aWVyYmFyIHNpbmQsIGRhc3MgZGllCkdlc2VsbHNjaGFmdCB2ZXJwZmxpY2h0ZXQgaXN0IGRpZSBGb3JkZXJ1bmdlbiB6dSBiZXphaGxlbi4KClN0YXR0IGVpbmVzIGxhbmdlbiB1bmQga29zdHNwaWVsaWdlbiBCZXJ1ZnVuZ3Nwcm96ZXNzZXMsCmFremVwdGllcnRlIGRpZSBWZXJzaWNoZXJ1bmdzZ2VzZWxsc2NoYWZ0IGRpZSBFbnRzY2hlaWR1bmcKdW5kIHphaGx0ZSBkZW0gQW53YWx0ICQgMTUuMDAwLDAwIGZ1ZXIgZGVuIFZlcmx1c3Qgc2VpbmVyCnNlbHRlbmVuIFppZ2FycmVuIGR1cmNoICJGZXVlciIuCgpOdW4ga29tbXQgZGVyIGJlc3RlIFRlaWwhIC4uLi4KTmFjaGRlbSBkZXIgQW53YWx0IGRlbiBTY2hlY2sgZWluZ2Vsb2VzdCBoYXR0ZSwgbGllc3MgZGllClZlcnNpY2hlcnVuZ2dlc2VsbHNjaGFmdCBpaG4gdmVyaGFmdGVuIHdlZ2VuIDI0IGZhY2hlcgpCcmFuZHN0aWZ0dW5nISEhIFNlaW5lIGVpZ2VuZW4gVmVyc2ljaGVydW5nZW4gdW5kCkF1c3NhZ2VuIHZvbSB2b3JoZXJpZ2VuIEZhbGwgd3VyZGVuIGdlZ2VuCmlobiBiZW51dHp0LCBkZXIgQW53YWx0IHd1cmRlIHNjaHVsZGlnIGdlc3Byb2NoZW4sCnNlaW4gdmVyc2ljaHRlcmVzIEVpZ2VudHVtIG11dHdpbGxpZyBpbiBCcmFuZCBnZXNldHp0IHp1CmhhYmVuIHVuZCB3dXJkZSB6dSAyNCBNb25hdGVuIEhhZnQKdW5kIGVpbmVyIEdlbGRzdHJhZmUgdm9uIDI0LjAwMCwwMCAkIHZlcnVydGVpbHQuCgpEaWVzIGlzdCBlaW5lIHdhaHJlIEdlc2NoaWNodGUgdW5kIGJla2FtIGRlbgoxLiBQbGF0eiBpbSBsZXR6dGVuIEtyaW1pbmVsbGVuIFJlY2h0c2Fud2FsdCBXZXR0YmV3ZXJiLgoKRWlnZW5lciBUZWlsOgpBbHNvLCBpY2ggbGVpdGUgZGllIEdlc2NoaWNodGUgbnVyIGFuIGV1Y2ggYWxsZSB3ZWl0ZXIuCkVzIGlzdCBtaXIgdm9sbGtvbW1lbiBlZ2FsLCBvYiBzaWUgdGF0c2FlY2hsaWNoIHdhaHIKaXN0IG9kZXIgbmljaHQuCgpHdW50ZXIKCk5vbm5lLCBsYWNodCBzaWNoIGtyaW5nZWxpZy4KClAuUzogbWFsIHdhcyBHdXRlcyBhdXMgZHRqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChNb3Jnb3RoLCAgNi4gRmViIDIwMDMsIDA4OjQ2OjEwKToKfiMhIHJuPUJvaW5nIHJ0PTEwNDQ0MzI4NzIgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCmNhdDogL3Byb2MvY3B1aW5mbzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpiYXNoOiBmcmVlOiBjb21tYW5kIG5vdCBmb3VuZAphd2s6IHN5bnRheCBlcnJvciBuZWFyIGxpbmUgMQphd2s6IGlsbGVnYWwgc3RhdGVtZW50IG5lYXIgbGluZSAxCmF3azogc3ludGF4IGVycm9yIG5lYXIgbGluZSAxCmF3azogYmFpbGluZyBvdXQgbmVhciBsaW5lIDEKc3ludGF4IGVycm9yIG9uIGxpbmUgMSwgdGVsZXR5cGUKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChHcmltbWJvcm4sICA2LiBGZWIgMjAwMywgMDk6MDA6MTkpOgp+IyEgcm49TW9yZ290aCBydD0xMDQ0NTE3NTcwIHJnPXdpdHplCn4jISB0aWQ9MTA0NDM3Nzk0MQpXaWVkZXIgZWluZXIgb2huZS4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChIb3VzZWhvbGRlciwgIDYuIEZlYiAyMDAzLCAxMDoyNDozMyk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwNDQ1MTc1NzAgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCnNvIHVuZCBudSBtdWVzc24gd2lyIGRhcmF1cyBlcnJhdG4gYXVmIHdlbGNoZXIgcGxhdHRmb3JtIGR1IGRhcyBwcm9iaWVydCBoYXN0Cj8gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChBbnRoZWEsICA2LiBGZWIgMjAwMywgMTE6MTE6MjMpOgp+IyEgcm49SG91c2Vob2xkZXIgcnQ9MTA0NDUyMzQ3MyByZz13aXR6ZQp+IyEgdGlkPTEwNDQzNzc5NDEKSG0uLi4gZGFyZiBpY2ggZGllIFphaGxlbiB2b20gV2Vic2VydmVyIHVuZCB2b20gSW50cmFuZXRzZXJ2ZXIgYWRkaWVyZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBEZXIgR2Vlay1TY2h3YW56dmVyZ2xlaWNoIChBbmF0b2wsICA2LiBGZWIgMjAwMywgMTE6MTI6MjcpOgp+IyEgcm49QW50aGVhIHJ0PTEwNDQ1MjYyODMgcmc9d2l0emUKfiMhIHRpZD0xMDQ0Mzc3OTQxCkR1LCBob2VyIG1hbCwgbnVyIHdlaWwgRGVpbi4uLiBHZXNjaGFlZnRzcGFydG5lci4uLiB6d2VpIFNjaG5pdHRzdGVsbGVuCmhhdCwgbXVzc3QgRHUgbmljaHQgYW4gYmVpZGUgZ2xlaWNoemVpdGlnIGFuZG9ja2VuLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLi4uIGRpZSBKdWdlbmQgdm9uIGhldXRlISAoVmFuaW9uLCAgNi4gRmViIDIwMDMsIDIyOjA1OjA1KToKQWxzIGljaCBub2NoIGVpbiBLaW5kIHdhciwgaGFiZW4gbWljaCBkaWUgRXJ3YWNoc2VuZW4gaW1tZXIgenUgVG9kZQpnZWxhbmd3ZWlsdCBtaXQgaWhyZW4gYWV0emVuZGVuIEFiaGFuZGx1bmdlbiB1ZWJlciBpaHJlIGVpZ2VuZSBhY2ggc28gaGFydGUKSnVnZW5kLCB1bmQgd2llIHNjaHdlciBzaWUgZXMgaGF0dGVuLCBhdWYgZGVtIGZ1ZW5mdW5kendhbnppZyBLaWxvbWV0ZXIgbGFuZ2VuCkZ1c3NtYXJzY2ggenVyIFNjaHVsZSwgamVkZW4gbW9yZ2VuLCBIaW4tIHVuZCBSdWVja3dlZyBpbW1lciBiZXJnYXVmIHVuZApiYXJmdXNzIGluIGdhbnpqYWVocmlnZW4gU2NobmVlc3R1ZXJtZW4sIGRpZSBqdWVuZ2VyZW4gR2VzY2h3aXN0ZXIgaHVja2VwYWNrCnp1IGRlbiBlaW5yYWV1bWlnZW4gU2NodWxnZWJhZXVkZW4gdHJhZ2VuZCwgdW5kIHRyb3R6ZGVtIGltbWVyIGVpbiBnbGF0dGVzCmVpbnNlciBaZXVnbmlzIGdlaGFidCwgdHJvdHogaWhyZXMgVm9sbHplaXRqb2JzIG5hY2ggZGVyIFNjaHVsZSBpbiBkZXIgRmFicmlrLApmdWVyIDM1IFBmZW5uaWcgZGllIFN0dW5kZSwgdW0gZGllIEZhbWlsaWUgdm9yIGRlbSBIdW5nZXJ0b2QgenUgYmV3YWhyZW4hCgpVbmQgaWNoIGhhdHRlIG1pciBnZXNjaHdvcmVuLCB3ZW5uIGljaCBlcndhY2hzZW4gd3VlcmRlLCBkZW4gSnVnZW5kbGljaGVuCm5pZW1hbHMgc28gZWluZW4gUXVhdHNjaCBhdWZ6dXRpc2NoZW4gd2llIHNjaHdlciBpY2ggZXMgaGF0dGUsIHVuZCB3aWUgbGVpY2h0CmRpZSBlcyBoYWJlbi4KCkFiZXIuLi4gbnVuLCBkYSBpY2ggZGFzIHJlaWZlIEFsdGVyIHZvbiAyNSB1ZWJlcnNjaHJpdHRlbiBoYWJlLCBrYW5uIGljaCBlcwpuaWNodCBtZWhyIHZlcmxldWduZW4uLi4KCkRpZSBKdWdlbmQgdm9uIGhldXRlIGhhdCBlcyBzbyB2ZXJkYW1tdCBndXQhCgpJY2ggbWVpbmUsIHZlcmdsaWNoZW4gbWl0IG1laW5lciBKdWdlbmQgbGVidCBpaHIgaW0gVHJhdW1sYW5kIFV0b3BpYSEgVW5kIGljaApoYXNzZSBlcyB6dSBzYWdlbiwgYWJlciBpaHIgS2lkcyB2b24gaGV1dGUgd2lzc3QgZ2FyIG5pY2h0LCB3aWUgZ3V0IElociBlcwpoYWJ0IQoKSWNoIG1laW5lLCBhbHMgS2luZGVyIGhhdHRlbiB3aXIga2VpbiBJbnRlcm5ldC4gV2VubiB3aXIgd2FzIHdpc3NlbiB3b2xsdGVuLAptdXNzdGVuIHdpciBpbiBkaWUgQnVlY2hlcmVpIGdlaGVuIHVuZCBlcyB1bnMgdmVyZGFtbXQgbm9jaCBtYWwgc2VsYnN0CnJhdXNzdWNoZW4hCgpVbmQgZXMgZ2FiIGtlaW5lIGVNYWlsLiBXaXIgbXVzc3RlbiB0YXRzP2NobGljaCBCcmllZmUgc2NocmVpYmVuLCBtaXQgZWluZW0KU3RpZnQgYXVmIFBhcGllciEgVW5kIGRhbm4gbXVzc3RlbiB3aXIgZGVuIGdhbnplbiBXZWcgenVtIEJyaWVma2FzdGVuIHVtIGRpZQpFY2tlIGdlaGVuIHVuZCBlcyBkYXVlcnRlIG1hbmNobWFsIGVpbmUgZ2FuemUgdmVyZGFtbXRlIFdvY2hlLCBiaXMgZGFzIFRlaWwKYW5rYW0hCgpVbmQgZGEgd2FyIGtlaW4gTVAzIG9kZXIgTmFwc3RlciEgV2VubiBkdSBNdXNpayBrbGF1ZW4gd29sbHRlc3QsIG11c3N0ZXN0IER1Cnp1bSBQbGF0dGVubGFkZW4gZ2VoZW4gdW5kIGRpciBkaWUgUmllc2VuLVBsYXR0ZW4gc2VsYnN0IHN0ZWhsZW4hCgpPZGVyIHdpciBtdXNzdGVuIGRlbiBnYW56ZW4gVGFnIGFtIFJhZGlvIHdhcnRlbiB1bSBMaWVkZXIgYXVmIEthc3NldHRlbgphdWZ6dW5laG1lbiwgdW5kIGRhbm4gaGF0IGRlciBNb2RlcmF0b3IgaW5zIEVuZGUgcmVpbmdlbGFiZXJ0IHVuZCBlcyBhbGxlcwp2ZXJzYXV0IQoKV29sbHQgaWhyIHdpcmtsaWNoIHdpc3Nlbiwgd2FzIGhhcnRlcyBMZWJlbiBpc3Q/IE1hbiBrb25udGUgbmljaHQgZWluZmFjaCBTZXgKZG93bmxvYWRlbiEgRHUgbXVzc3Rlc3QgZWluZW4gUGVubmVyIG1pdCBuZXIgRmxhc2NoZSBTY2huYXBzIGJlc3RlY2hlbiwgdW0gZGlyCmVpbmVuIFBsYXlib3kgdm9tIEtpb3NrIHp1IGJlc29yZ2VuISBFbnR3ZWRlciBzbywgb2RlciBkdSBtdXNzdGVzdCBkaWNoIG1pdApkZW4gRGFtZW51bnRlcndhZXNjaGUtU2VpdGVuIGF1cyBkZW0gT1RUTy1LYXRhbG9nIGJlZ251ZWdlbiEgRGFzIHdhcmVuIGRlaW5lCk1vZWdsaWNoa2VpdGVuLgoKV2lyIGhhdHRlbiBuaWNodCBkaWVzZW4gZ2FuemVuIHRlY2huaXNjaGVuIEtyYW0gd2llIEFua2xvcGZlbiBiZWltIFRlbGVmb24uCldlbm4gZHUgdGVsZWZvbmllcnQgaGF0dGVzdCB1bmQgamVtYW5kIHdvbGx0ZSBkaWNoIGFucnVmZW4sIHdhciBiZXNldHp0IQoKVW5kIHdpciBoYXR0ZW4gbmljaHQgZGllc2UgRGlzcGxheS1UZWlsZSBhdWYgZGVtIFRlbGVmb24uIFdlbm4ncyBrbGluZ2VsdGUsCmhhdHRlc3QgRHUgbmljaHQgZGVuIGJsYXNzZXN0ZW4gU2NoaW1tZXIsIHdlciBkcmFuIHdhci4gS29ubnRlIERlaW4gQm9zcyBzZWluLApEZWluZSBNdXR0ZXIsIERlaW4gRHJvZ2VuZGVhbGVyIG9kZXIgZWluIEdlbGRlaW50cmVpYmVyLCBkdSBoYXR0ZXN0IGtlaW5lCkFobnVuZywgbXVzc3Rlc3QgYWJuZWhtZW4gdW5kIGRhcyBSaXNpa28gZWluZ2VoZW4uLi4KClVuZCBIYW5keXMgaGF0dGVuIHdpciBzY2hvbiBnYXIgbmljaHQhIFVtIHdhcyBtaXQgRnJldW5kZW4genUgYmVzcHJlY2hlbiwKbXVzc3RlbiB3aXIgZGEgaGlubGF0c2NoZW4sIGRhbWl0IHVuc2VyZSBFbHRlcm4gdW5zIG5pY2h0IGhvZXJlbiBrb25udGVuLgoKV2VubiBkaWUgU3RyYXNzZW5saWNodGVyIGFuZ2luZ2VuLCBoYXR0ZW4gd2lyIHp1aGF1c2UgenUgc2Vpbiwgc29uc3QgZ2FiJ3MgZGVuCkFyc2NoIHZvbGwhIEdhciBuaWNodCB6dSByZWRlbiB2b24gZGVuIG1vZGVybmVuIFNwaWVsZWtvbnNvbGVuIG1pdApob2NoYXVmbG9lc2VuZGVyIDNEIEdyYWZpayB1bmQgODk1IE1lZ2FkaW5ncyBTb3VuZCB1bmQgc28uIFdpciBoYXR0ZW4gbWl0CkdsdWVjayBlaW5lbiBBdGFyaSBtaXQgU3BpZWxlbiB3aWUgU3BhY2UgSW52YWRlcnMgdW5kIEFzdGVyb2lkcyB1bmQgZGllCkdyYWZpa2VuIHdhcmVuIHNjaGxpY2h0IFNjaGVpc3NlISBEdSB3YXJzdCBlaW4ga2xlaW5lcyBRdWFkcmF0IGF1ZiBkZXIgU2NoZWliZQp1bmQgbXVzc3Rlc3QgZGVpbmUgRmFudGFzaWUgYmVudXR6ZW4hIFVuZCBuaXggbWl0IHZlcnNjaGllZGVuZW4gTGV2ZWxzIG9kZXIKc28uIEltbWVyIHVuZCBpbW1lciBkYXMgZ2xlaWNoZSBCaWxkLiBVbmQgZHUgaGFzdCBuaWUgZ2V3b25uZW4sIHdlaWwgZXMgaW1tZXIKbnVyIHNjaHdpZXJpZ2VyIHVuZCBzY2huZWxsZXIgd3VyZGUgYmlzIER1IHN0YXJic3QhIEdlbmF1LCB3aWUgaW0gcmljaHRpZ2VuCkxlYmVuIQoKSW0gS2lubyBnYWIncyBrZWluZSBhbnN0ZWlnZW5kZW4gU2l0enJlaWhlbi4gQWxsZSBSZWloZW4gd2FyZW4gYXVmIGVpbmVyIEViZW5lCnVuZCB3ZW5uIHZvciBEaXIgZWluIEdyb3NzZXIgc2FzcywgaGFzdCBEdSBuaXggbWVociBnZXNlaGVuIQoKS2xhciwgd2lyIGhhdHRlbiBkYW5uIGF1Y2ggRmFyYmZlcm5zZWhlbi4gQWJlciBkYSB3YXJlbiAzIFNlbmRlciwgZGFzIEVyc3RlLApkYXMgWndlaXRlIHVuZCBkYXMgRHJpdHRlLiBFaW5pZ2UgaGF0dGVuIGF1Y2ggRERSIDEgb2RlciBPUkYuIEFiZXIgd2lyIGhhdHRlbgprZWluIEthYmVsIHVuZCBrZWluZW4gVmlkZW90ZXh0ISBEdSBoYXN0IGluIGRpZSBIb2VyenUgZ2VzZWhlbiwgd2VubiBEdSB3aXNzZW4Kd29sbHRlc3QsIHdhcyBlcyBnaWJ0LiBVbmQgZXMgbGllZmVuIHNjaG9uIGdhciBuaWNodCBkZW4gZ2FuemVuIFRhZyBpcmdlbmR3bwpDYXJ0b29ucyEgVmllbGxlaWNodCBTYW5kbWFlbm5jaGVuIG9kZXIgSGVpbnplbG1hZW5uY2hlbiBhbSBBYmVuZCwgdW5kIHNvbnN0Cm11c3N0ZW4gd2lyIGRpZSBnYW56ZSB2ZXJkYW1tdGUgV29jaGUgYmlzIFNhbXN0YWcgbW9yZ2VucyB3YXJ0ZW4hCgpWZXJzdGVodCBpaHIga2xlaW5lbiBUZWVuaWVzIGVpZ2VudGxpY2gsIHdhcyBpY2ggc2FnZT8KCkRhcyBpc3QgZ2VuYXUsIHdhcyBpY2ggbWVpbmUuIElociBLaWRzIHZvbiBoZXV0ZSBoYWJ0IGVzIHNvIHZlcmRhbW10IGd1dC4gSWhyCmtsZWluZW4gdmVyd2VpY2hsaWNodGVuLCB2ZXJ3b2VobnRlbiwgdW5kYW5rYmFyZW4gQmllc3RlciBoYWJ0IGVzIHZpZWwgenUKZWluZmFjaCBoZXV0ZS4gVm9yIDIwIEphaHJlbiBoYWV0dGV0IGlociBrZWluZSA1IE1pbnV0ZW4gYXVzZ2VoYWx0ZW4hCkhhYiBpY2gga3VlcnpsaWNoIG1hbCBpcmdlbmR3byBnZWZ1bmRlbiB1bmQgd29sbHQncyBldWNoIG5pY2h0IHZvcmVudGhhbHRlbi4KClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNb2VuY2hlbiB1bmQgS29waWVuIChlbmdsKSAoTm9ubmUsICA3LiBGZWIgMjAwMywgMTM6MjQ6NTUpOgpBICBuZXcgeW91bmcgbW9uayBhcnJpdmVzIGF0IHRoZSBtb25hc3RlcnkuIEhlIGlzIGFzc2lnbmVkIHRvIGhlbHAgdGhlCm90aGVyICBtb25rcyBpbiBjb3B5aW5nIHRoZSBvbGQgY2Fub25zIGFuZCBsYXdzIG9mIHRoZSBjaHVyY2ggYnkgaGFuZC4KSGUgIG5vdGljZXMsICBob3dldmVyLCAgdGhhdCBhbGwgb2YgdGhlIG1vbmtzIGFyZSBjb3B5aW5nIGZyb20gY29waWVzLApub3QgZnJvbSB0aGUgb3JpZ2luYWwgbWFudXNjcmlwdC4KClNvLCB0aGUgbmV3IG1vbmsgZ29lcyB0byB0aGUgYWJib3QgdG8gcXVlc3Rpb24gdGhpcywgcG9pbnRpbmcgb3V0IHRoYXQKaWYgIHNvbWVvbmUgIG1hZGUgZXZlbiBhIHNtYWxsIGVycm9yIGluIHRoZSBmaXJzdCBjb3B5LCBpdCB3b3VsZCBuZXZlcgpiZSBwaWNrZWQgdXAuCgpJbiAgZmFjdCwgIHRoYXQgIGVycm9yICB3b3VsZCAgYmUgIGNvbnRpbnVlZCAgaW4gYWxsIG9mIHRoZSBzdWJzZXF1ZW50CmNvcGllcy4KClRoZSAgQWJib3QgIHNheXMsICJXZSBoYXZlIGJlZW4gY29weWluZyBmcm9tIHRoZSBjb3BpZXMgZm9yIGNlbnR1cmllcywKYnV0IHlvdSBtYWtlIGEgZ29vZCBwb2ludCwgbXkgc29uIi4KClNvLCAgaGUgIGdvZXMgIGRvd24gaW50byB0aGUgZGFyayBjYXZlcyB1bmRlcm5lYXRoIHRoZSBtb25hc3Rlcnkgd2hlcmUKdGhlICBvcmlnaW5hbCAgbWFudXNjcmlwdCAgaXMgIGhlbGQgaW4gYSBsb2NrZWQgdmF1bHQgdGhhdCBoYXNuJ3QgYmVlbgpvcGVuZWQgZm9yIGh1bmRyZWRzIG9mIHllYXJzLgoKSG91cnMgZ28gYnkgYW5kIG5vYm9keSBzZWVzIHRoZSBvbGQgYWJib3QuCgpFdmVudHVhbGx5IHRoZSB5b3VuZyBtb25rIGdldHMgd29ycmllZCBhbmQgZ29lcyBkb3duc3RhaXJzIHRvIGxvb2sgZm9yCmhpbS4KCkhlIHNlZXMgaGltIGJhbmdpbmcgaGlzIGhlYWQgYWdhaW5zdCB0aGUgd2FsbC4KCkhpcyAgIGZvcmVoZWFkICAgaXMgICBhbGwgICBibG9vZHkgICBhbmQgIGJydWlzZWQgIGFuZCAgaGUgIGlzICBjcnlpbmcKdW5jb250cm9sbGFibHkuCgpUaGUgeW91bmcgbW9uayBhc2tzIHRoZSBvbGQgYWJib3QsICJXaGF0J3Mgd3JvbmcsIGZhdGhlcj8iCgpJbiBhIGNob2tpbmcgdm9pY2UsIHRoZSBvbGQgYWJib3QgcmVwbGllcywgIlRoZSB3b3JkIGlzIGNlbGVicmF0ZSwgbm90CmNlbGliYXRlISIKCiprcmVpc2NoKgoKTm9ubmUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1vZW5jaGVuIHVuZCBLb3BpZW4gKGVuZ2wpIChTZWxldmVuLCAgNy4gRmViIDIwMDMsIDE0OjE2OjM1KToKfiMhIHJuPU5vbm5lIHJ0PTEwNDQ2MjA2OTUgcmc9d2l0emUKfiMhIHRpZD0xMDQ0NjIwNjk1Ck9oLCBOb25uZSwgbXVzc3QgZHUgamV0enQgZGVpbmUgR2lsZGUgdW1zY2hyZWliZW4/IDopICkKUzExIGtpY2hlcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1vZW5jaGVuIHVuZCBLb3BpZW4gKGVuZ2wpIChNb3Jnb25hdGUsICA3LiBGZWIgMjAwMywgMTg6MTk6NDYpOgp+IyEgcm49U2VsZXZlbiBydD0xMDQ0NjIzNzk1IHJnPXdpdHplCn4jISB0aWQ9MTA0NDYyMDY5NQpIbW0sIGFsc28gZWluIEJlc3VjaCBiZWkgQW1hbmRhIGlzdCBiZWkgZGVuIEtsZXJpcyBuaWNodCBnZXJhZGUgc2VsdGVuLCBzaWUKd29sbGVuIGhhbHQgbmVuIFRyaXBwZXIgaGFiZW4uIDspCgooaXN0IGRhcyBzY2hvbiBzY2htYXJybj8pCk1vcmdvbmF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWJlbiBnZWxlc2VuIChNb3Jnb3RoLCAxMC4gRmViIDIwMDMsIDA4OjU2OjE0KToKT25lIE9TIHRvIHJ1bGUgdGhlbSBhbGwsIG9uZSBPUyB0byBmaW5kIHRoZW0sIApvbmUgT1MgdG8gYnJpbmcgdGhlbSBhbGwsIGFuZCBpbiB0aGUgZGFya25lc3MgYmluZCB0aGVtIApJbiB0aGUgbGFuZCBvZiBNaWNyb3NvZnQsIHdoZXJlIHRoZSBibHVlc2NyZWVucyBsaWUuIAoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFYmVuIGdlbGVzZW4gKEtvYmF5YXNoaSwgMTAuIEZlYiAyMDAzLCAxMDoxOToxMik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwNDQ4NjM3NzQgcmc9d2l0emUKfiMhIHRpZD0xMDQ0ODYzNzc0Ci4uLiB3byBpc3QgZGVubiBkYSBkZXIgV2l0ej8gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEViZW4gZ2VsZXNlbiAoTm9ubmUsIDEwLiBGZWIgMjAwMywgMTA6MjU6MDcpOgp+IyEgcm49S29iYXlhc2hpIHJ0PTEwNDQ4Njg3NTIgcmc9d2l0emUKfiMhIHRpZD0xMDQ0ODYzNzc0Ck5vY2ggZWluZSBTZWl0ZSwgd28gbmljaHQgYWxsZSBkZW4gV2l0eiB2ZXJzdGVoZW4gd2VyZGVuOgp3d3cuZmllc2Utc2NoZWl0ZWwuZGUKCk5vbm5lLCBncmluc2VuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkp1bmcvQWx0IChBbnRoZWEsIDEwLiBGZWIgMjAwMywgMTI6MzE6NDcpOgpGdWVyIGFsbGUsIGRpZSBhdWNoIG5pY2h0IG1laHIgZ2FueiB0YXVmcmlzY2ggc2luZC4uLgoKRnVlaGxzdCBEdSBEaWNoIGp1bmc/Pz8KCklzdCBEaXIgZWlnZW50bGljaCBzY2hvbiBhdWZnZWZhbGxlbiwgZGFzcy4uLgoKRGllIEtpbmRlciwgZGllIGluIGRpZXNlbSBKYWhyIEFiaXR1ciBtYWNoZW4sICAxOTg0Lzg1IGdlYm9yZW4gd3VyZGVuPwoKRGllIG1laXN0ZW4gZGF2b24ga2VubmVuIG51ciBlaW5lbiBQYXBzdC4KCkZ1ZXIgc2llIGdpYnQgZXMgYXVzc2VyZGVtIGtlaW5lbiBLYW56bGVyIHZvciBLb2hsLgoKQmVpICJUaGUgRGF5IEFmdGVyIiBkZW5rZW4gZGllIG1laXN0ZW4gYW4gS29wZnNjaG1lcnplbiwgbmljaHQgYW4gZWluZW4gRmlsbS4KCkNvbGEgZ2FiIGVzIGltbWVyIG51ciBhdXMgZGVuIHVuemVyc3RvZXJiYXJlbiBQbGFzdGlrZmxhc2NoZW4uCgpEZXIgVmVyc2NobHVzcyB3YXIgaW1tZXIgYXVzIEt1bnN0c3RvZmYgdW5kIG5pZSBhdXMgTWV0YWxsLiBDb2xhIGluCkdsYXMtRmxhc2NoZW4/Pz9VbmQgZGFubiBudXIgZWluIExpdGVyPz8/IAoKVW5kIHdhcyB6dW0gVGV1ZmVsIHNpbmQgS25pYmJlbGJpbGRlcj8/PwoKQVRBUkkgaXN0IGZ1ZXIgZGllIG1laXN0ZW4gZ2VuYXVzbyB3ZWl0IHdlZyB3aWUgVmlueWwtU2NoYWxscGxhdHRlbi4KClNpZSBoYWJlbiBuaWUgZWluZW4gUGxhdHRlbnNwaWVsZXIgYmVzZXNzZW4uCgpTaWUgaGFiZW4gbmllIGRhcyBlY2h0ZSBQYWMtTWFuIGdlc3BpZWx0LgoKVHdpeCBoYXQgbmllIFJhaWRlciBnZWhlaXNzZW4gdW5kIHdhciBhdWNoIG5pZSAiZGVyIFBhdXNlbnNuYWNrIi4KClVuZCB3YXMgc29sbGVuIGVpZ2VudGxpY2ggVFJFRVRTIHNlaW4/Pz8KCkRpZSBDb21wYWN0IERpc2Mgd3VyZGUgdm9yIGlocmVyIEdlYnVydCBlcmZ1bmRlbi4KClNpZSBoYWJlbiBuaWUgZWluZW4gRmVybnNlaGVyIG1pdCBudXIgZHJlaSBQcm9ncmFtbWVuIGdlc2VoZW4sIGdhbnogenUKc2Nod2VpZ2VuIHZvbiBlaW5lbSBTY2h3YXJ6LVdlaXNzLUZlcm5zZWhlci4gU2llIGhhdHRlbiBpbW1lciBLYWJlbC0gb2RlcgpTYXRlbGxpdGVuLVRWLgoKRGVyIFdhbGttYW4gd3VyZGUgdm9yIGlocmVyIEdlYnVydCB2b24gU09OWSBlcmZ1bmRlbi4KCiJXZXR0ZW4gRGFzcyIgd2FyIGltbWVyIG1pdCBUaG9tYXMgR290dHNjaGFsay4KClNpZSBoYWJlbiBrZWluZSBBaG51bmcsIGRhc3MgQm9uYW56YS1SYWVkZXIgbWFsICJpbiIgd2FyZW4uCgpTaWUga2VubmVuIEd1ZW50aGVyIE5ldHplciB1bmQgRnJhbnogQmVja2VuYmF1ZXIgbnVyIGFscyBLb21tZW50YXRvcmVuLgoKU2llIGhhYmVuIGJlaW0gU2Nod2ltbWVuIG5vY2ggbmllIHVlYmVyIGRlbiB3ZWlzc2VuIEhhaSBuYWNoZ2VkYWNodC4KClNpZSB3aXNzZW4gbmljaHQgd2VyIE1vcmsgd2FyIHVuZCB3YXJ1bSBlciB2b20gT3JrIGthbS4gSWhuZW4gaXN0IGVnYWwsIHdlcgpKLlIuIGVyc2Nob3NzZW4gaGF0IHVuZCBoYWJlbiBrZWluZSBBaG51bmcgIHdlciBKLlIgdWViZXJoYXVwdCBpc3QuCgpNaWNoYWVsIEphY2tzb24gd2FyIHNjaG9uIGltbWVyIHdlaXNzLgoKU2llIGhhYmVuIGVpbmVuIEJpZyBNYWVjIG5vY2ggbmllIGF1cyBlaW5lciBTdHlyb3Bvci1WZXJwYWNrdW5nIGdlZ2Vzc2VuLgoKU2llIHdpc3NlbiBuaWNodCwgZGFzcyBQdW1hLVR1cm5zY2h1aGUgbWFsIGRlciBsZXR6dGUgU2NocmVpIHdhcmVuIHVuZCBkYXMKVG9wLU1vZGVsbCB2b24gQURJREFTIG51ciA5OSBNYXJrIGdla29zdGV0IGhhdC4KClNpZSB3aXNzZW4gbmljaHQsIGRhc3MgRnJhdSBTb21tZXIgbmljaHQgbWl0IERyLiBTb21tZXIgdm9uIGRlciBCUkFWTwp2ZXJoZWlyYXRldCBpc3QsIHNvbmRlcm4gYmVpIEpha29icy1LYWZmZWUgYXJiZWl0ZXQgdW5kIGFuIEZlc3R0YWdlbiBpbW1lciBlaW4KUGZ1bmQgS3JvZW51bmcgbWl0YnJpbmd0LgoKU2llIHdpc3NlbiBuaWNodCwgZGFzcyBQYXJrdWhyZW4gZnJ1ZWhlciBhdWNoIDEwIFBmZW5uaWctU3R1ZWNrZSBnZXNjaGx1Y2t0CmhhYmVuLiAKClVORCBXSUUgQUxUIEZVRUhMU1QgRFUgRElDSCBKRVRaVD8/Pz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNpZWJlbiBXb2NoZW4sIGRpZSBkaWUgV2VsdCB2ZXJhZW5kZXJuIChHcmltbWJvcm4sIDExLiBGZWIgMjAwMywgMTc6MzA6MzApOgpUaGUgbmV4dCBmZXcgZGF5cy4uLgoKMDcuMDIuMjAwMwpEZXV0c2NobGFuZCBibGVpYnQgYmVpIHNlaW5lbSBOZWluIHp1bSBBbmdyaWZmc2tyaWVnIGdlZ2VuIGRlbgpJcmFrLiBOaWNodCBzbyBzZWhyLCB3ZWlsIGRpZSAiQmV3ZWlzZSIgZGVzIEhlcnJuIFBvd2VsbCBTY2hyb3R0CndhcmVuLCBzb25kZXJuIHdlaWwgUnVtc2ZlbGQgdW5zIG1pdCBLdWJhIHVuZCBMaWJ5ZW4gaW4gZWluZQpMb3N0cm9tbWVsIGdld29yZmVuIGhhdCwgYmV2b3IgU2Nocm9lZGVyIGVzIHNpY2ggc2Nod2VyZW4gSGVyemVucwpoYWV0dGUgYW5kZXJzIHVlYmVybGVnZW4ga29lbm5lbi4KCjEwLjAyLjIwMDMKRGV1dHNjaGxhbmQgdmVyd2VpZ2VydCBkZW4gVVNBIGRpZSBVRWJlcmZsdWdyZWNodGUsIGVzIHNlaSBkZW5uLApCdXNoIG5pbW10IGF1ZiBkZXIgU3RlbGxlIGRlbiBSdW1zZmVsZC1WZXJnbGVpY2ggenVydWVjay4KCjExLjAyLjIwMDMKQnVzaCBpbmZvcm1pZXJ0IHNpY2gsIHdhcyBLdWJhIHVuZCBMaWJ5ZW4gdWViZXJoYXVwdCBpc3QuCkRhbm4gc2V0enQgZXIgbm9jaCBlaW5lbiBkcmF1Zi4KRXIgdmVyZ2xlaWNodCBEZXV0c2NobGFuZCBtaXQgZGVyIEREUi4KCjEzLjAyLjIwMDMKRnJhbmtyZWljaCBraXBwdCB1bS4KTmFjaGRlbSBkaWUgVVNBIGRpZSBHYXJhbnRpZSBmdWVyIGRpZSBPZWx2ZXJ0cmFlZ2UgZGVzIEVsZi1Lb25zb3J0aXVtcwp1ZWJlcm5vbW1lbiBoYXQsIHZlcnBmbGljaHRldCBzaWNoIFBhcmlzIHp1ciB1bmVpbmdlc2NocmFlbmt0ZW4KQmFndWV0dGUtTGllZmVydW5nIGZ1ZXIgZGllIGthZW1wZmVuZGUgVHJ1cHBlLgoKMTQuMDIuMjAwMwpBbGxlIGFuZGVyZW4gTGFlbmRlciBkZXIgRVUgdW5kIGRpZSBBc3BpcmFudGVuIGtpcHBlbiBhdWNoIHVtIHVuZCAKZ3J1ZW5kZW4gRWxmLUtvbnNvcnRpZW4gdW5kIEJhZ3VldHRlLUdyb3NzYmFlY2tlcmVpZW4uCgoxNS4wMi4yMDAzCkRldXRzY2hsYW5kIGxlZ3QgdW50ZXIgUHJvdGVzdCBkZW4gVm9yc2l0eiBkZXMgVU4tU2ljaGVyaGVpdHNyYXRlcwpuaWVkZXIgdW5kIHRyaXR0IGF1cyBkZXIgTmF0byBhdXMuCgoxNi4wMi4yMDAzCkJ1c2ggZmFlbGx0IGtlaW4gVmVyZ2xlaWNoIG1laHIgZnVlciBEZXV0c2NobGFuZCBlaW4uCkVyIGRyb2h0IGpldHp0IG1pdCBkZW0gRmluZ2VyLgoKMTcuMDIuMjAwMwpEYXMgbGFlc3N0IERldXRzY2hsYW5kIG5hdHVlcmxpY2ggbmljaHQgYXVmIHNpY2ggc2l0emVuIHVuZCBzY2hsaWVzc3QKc2FlbXRsaWNoZSBNY0RvbmFsZHMuCgoxOC4wMi4yMDAzClN0b2liZXIgcnVmdCB6dW0gV2lkZXJzdGFuZCBhdWYgb2RlciB6dW1pbmRlc3QgenVyIFVtd2FuZGx1bmcgZGVyCk1jRG9uYWxkLVJlc3RhdXJhbnRzIGluIExvZXdlbmJyYWV1LUtlbGxlcgoKMTkuMDIuMjAwMwpXZXN0ZXJ3ZWxsZSBtZWxkZXQgc2ljaCB6dSBlaW5lbSBWSFMtS3VyczogIkF1c3NlbnBvbGl0aWsiIGFuLgoKMjEuMDIuMjAwMwpXZXN0ZXJ3ZWxsZSBtdXNzIGJlaSBzZWluZW0gZXJzdGVuIEt1cnNhYmVuZCBmZXN0c3RlbGxlbiwgZGFzcyBkZXIKUmVmZXJlbnQgZGVyIFZIUyBNb2VsbGVtYW5uIGlzdC4KU2VpbiBTcHJ1bmcgYXVzIGRlbSBGZW5zdGVyIGxhZXVmdCBnbGltcGZsaWNoIGFiLgoKMjIuMDIuMjAwMwpEZXV0c2NobGFuZCBpc3QgbnVuIHZvZWxsaWcgaXNvbGllcnQsIGRpZSBlcnN0ZW4gVHVlcmtlbiBzdGVsbGVuCkF1c3JlaXNlYW50cmFlZ2UuCgoyMy4wMi4yMDAzCkRhcyBCdW5kZXNwcmVzc2VhbXQgc3RlbGx0IGtsYXIsIGRhc3MgQXVzcmVpc2VhbnRyYWVnZSBuaWNodAplcmZvcmRlcmxpY2ggc2luZCB1bmQgQnVzaHMgRERSLVZlcmdsZWljaCBCbG9lZHNpbm4gc2VpLgoKMjQuMDIuMjAwMwpEYSBkZXIgUmVnaWVydW5nIGpldHp0IGtlaW5lciBtZWhyIGdsYXVidCwgc3RlbGxlbiBqZXR6dCBhdWNoCkJheWVybiBBdXNyZWlzZWFudHJhZWdlLgoKMjUuMDIuMjAwMwpEaWUgQnVuZGVzcmVnaWVydW5nIGVyaGVidCBlaW5lIEF1c3JlaXNlZ2VidWVociBpbiBIb2VoZSB2b24gMjAwMCwgLSAKRXVybwoKMjYuMDIuMjAwMwpEZXV0c2NobGFuZCBlcmZ1ZWxsdCBkaWUgTWFhc3RyaWNodC1Lcml0ZXJpZW4sIGRhIGVzIG5pY2h0IG51ciBrZWluZQpOZXV2ZXJzY2h1bGR1bmcgenUgdmVybWVsZGVuIGhhdCwgc29uZGVybiBlaW5lbiBUZWlsIHNlaW5lcgpBbHRzY2h1bGRlbiBhYmxvZXNlbiBrYW5uLgoKMjcuMDIuMjAwMwpXZWliZXJmYXN0bmFjaHQKCjI5LjAyLjIwMDMKRmFlbGx0IGRpZXNlcyBKYWhyIGF1cywgZGEga2VpbiBTY2hhbHRqYWhyLgoKMDMuMDMuMjAwMwpEZXV0c2NobGFuZCB3aXJkIHdlZ2VuIHVuc3BvcnRsaWNoZW4gVmVyaGFsdGVucyBhdXMgZGVyIEVVCmF1c2dlc2NobG9zc2VuLgoKMDQuMDMuMjAwMwpJbiBPZXN0ZXJyZWljaCB3ZXJkZW4gZGllIGVyc3RlbiBCYXllcm4tQXVmZmFuZ2xhZ2VyIHdlZ2VuCnVuenVtdXRiYXJlciBoeWdpZW5pc2NoZXIgWnVzdGFlbmRlIHZvbiBkZXIgV2VsdGdlc3VuZGhlaXRzLSAKb3JnYW5pc2F0aW9uIGdlc2NobG9zc2VuLgpBbmdlYmxpY2ggc2NoZWlzc2VuIGRpZSBCYXllcm4gYXVmIGFsbGVzLgoKMDUuMDMuMjAwMwpJdGFsaWVuIHdlaWdlcnQgc2ljaCB3ZWl0ZXJlIEZsdWVjaHRsaW5nZSBhdWZ6dW5laG1lbgoKMDYuMDMuMjAwMwpFcnN0ZSBGbHVlY2h0bGluZ3NzY2hpZmZlIGFuIGRlciBpdGFsaWVuaXNjaGVuIEFkcmlha3Vlc3RlCgowNy4wMy4yMDAzCkFsbGUgQW5yYWluZXJzdGFhdGVuIHNjaGxpZXNzZW4gaWhyZSBHcmVuemUgenUgRGV1dHNjaGxhbmQKCjA4LjAzLjIwMDMKVVNBIHZlcmxhbmdlbiBkaWUgQXVzbGllZmVydW5nIFNjaHJvZWRlcnMuIEFtbmVzdHkgaW50ZXJuYXRpb25hbAp2ZXJoYW5kZWx0IGRpZSBIYWZ0YmVkaW5ndW5nZW4uCgowOS4wMy4yMDAzCkRldXRzY2hsYW5kIGhhdCBhbGxlIFNjaHVsZGVuIGJlemFobHQgdW5kIGJlZ2lubnQsIGRpZSBTY2h3ZWl6IHp1CmthdWZlbi4KCjEwLjAzLjIwMDMKRGV1dHNjaGxhbmQgYnJhdWNodCBkcmluZ2VuZCBBcmJlaXRza3JhZWZ0ZSB1bmQgcnVmdCBzZWluZQpGdWVocnVuZ3NrcmFlZnRlIGF1cyBVU0EgenVydWVjay4KCjExLjAzLjIwMDMKRGVyIERvdyBKb25lcyBzYWNrdCBpbiBmcmVpZW0gRmFsbCBhdWYgMjEwMCBQdW5rdGUKCjEyLjAzLjIwMDMKRGV1dHNjaGxhbmQgZnVlaHJ0IGRpZSBELU1hcmsgd2llZGVyIGVpbi4KRGVyIERvdyBKb25lcyBmYWVsbHQgYXVmIDEwMCBQdW5rdGUuCgoxMy4wMy4yMDAzCkFsZGkgU3VlZCBrYXVmdCBNaWNyb3NvZnQKQmlsbCBHYXRlcyB3aXJkIEZpbGlhbGxlaXRlciBpbiBEaW5zbGFrZW4KCjE0LjAzLjIwMDMKVVNBIHZlcnNjaGllYnQgZGVuIEVpbm1hcnNjaCBpbSBJcmFrLCBkYSBkaWUgQmFndWV0dGUtTGllZmVydW5nZW4Kc2ljaCB2ZXJzcGFldGVuLgoKMTUuMDMuMjAwMwpEaWUgZXJzdGVuIEZsdWVjaHRsaW5nZSBrZWhyZW4genVydWVjay4gRWlucmVpc2VnZWJ1ZWhyIDUwMDAsLSBETS4KICAKMTYuMDMuMjAwMwpEaWUgTmFjaGJhcmxhZW5kZXIgb2VmZm5lbiBpaHJlIEdyZW56ZW4gd2llZGVyLCBhYmVyIERldXRzY2hsYW5kCnNjaGxpZXNzdCBkaWUgc2VpbmVuIHVuZCBmdWVocnQgZWluZSBNYXV0IGZ1ZXIgYWxsZSBTdHJhc3NlbiBlaW4sIFBLVwoxNTAsLSBMS1cgMS41MDAsLSBETS4KCjE3LjAzLjIwMDMKRGV1dHNjaGxhbmQga2F1ZnQgTWFsbG9yY2EgdW5kIHdlaXN0IEp1ZXJnZW4gRHJld3MgYXVzLgoKMTguMDMuMjAwMwpEZXV0c2NobGFuZCBlcmhhZWx0IEVsc2Fzcy1Mb3RocmluZ2VuIGdlc2NoZW5rdCwgbGVobnQgYWJlciBhYi4KTmFjaCBaYWhsdW5nIHZvbiBETSAxMC4wMDAuMDAwLjAwMCwtCihXZWNoc2Vsa3VycyAxIERNID0gNDM1IEV1cm8pIGR1cmNoIEZyYW5rcmVpY2gsIHdpcmQgZXMgZGFubiBkb2NoCmVpbmdlbWVpbmRldC4KCjE5LjAzLjIwMDMKRnJhbmtyZWljaCBiZXNjaHVsZGlndCBkaWUgVVNBLCBCYWd1ZXR0ZS1MaWVmZXJ1bmdlbiBuaWNodCBiZXphaGx0IHp1CmhhYmVuLgogICAgICAKMjAuMDMuMjAwMwpEZXIgdHNjaGVjaGlzY2hlIFByYWVzaWRlbnQgS2FyZWwgR290dCBzY2h3ZW5rdCBhdXMgZGVyClByby1JcmFrLVBoYWxhbnggYXVzLiAKCjIxLjAzLjIwMDMKTG90aGFyIE1hdHRoYWV1cyB1ZWJlcm5pbW10IGRlbiBMb2V3ZW5icmFldS1LZWxsZXIgaW4gSGFzc2VsaHVlbm5lIChPc3QpLgpEaWUgYW1lcmlrYW5pc2NoZW4gVHJ1cHBlbiBhbiBkZXIgR3JlbnplIHp1bSBJcmFrIHdlcmRlbiB2b24gZWluZXIKZ2VoZWltbmlzdm9sbGVuIER1ZW5uc2NoaXNzLUVwaWRlbWllIGhlaW1nZXN1Y2h0LgoKMjIuMDMuMjAwMwpCdXNoIHZlcmdsZWljaHQgRGV1dHNjaGxhbmQgbWl0IEhlbGdvbGFuZCwgemllaHQgZGVuIFZlcmdsZWljaCBhYmVyIGVpbmlnZQpTdHVuZGVuIHNwYWV0ZXIgbWl0IGRlbSBBdXNkcnVjayBkZXMgQmVkYXVlcm5zIHp1cnVlY2suCgoyMy4wMy4yMDAzCkRpZSBCdW5kZXNyZWdpZXJ1bmcga3VlbmRpZ3QgZWluZSBlcm5ldXRlIFN0ZXVlcnJlZm9ybSBhbi4KSmVkZXIgU3RhYXRzYnVlcmdlciBlcmhhZWx0IGFiIDAxLjA0LjIwMDMgZWluIEdydW5kZ2VoYWx0IGluIEhvZWhlIHZvbgozLjAwMCwtIERNIChhdXMgTWF1dGVpbm5haG1lbikgdW5kIGVpbmUgUGF5YmFjay1LYXJ0ZSBtaXQgMjAuMDAwCkZyZWVtaWxlcy4gCiAKMjQuMDMuMjAwMwpBbGRpIERpbnNsYWtlbiBrYXVmdCBGbG9yaWRhCiAgCjI1LjAzLjIwMDMKRGllIFVTQSBicmVjaGVuIGRlbiBHb2xmZWluc2F0eiB3ZWdlbiBTcHJpdG1hbmdlbCBhYi4KRGllIEx1ZnRoYW5zYSB3aXJkIGJlYXVmdHJhZ3QgZGllIFRydXBwZW4genVydWVja3p1dHJhbnNwb3J0aWVyZW4uCkVpbiBMdWZ0aGFuc2EtU3ByZWNoZXI6ICJEYXMgd2lyZCB0ZXVlciEiCgoyNi4wMy4yMDAzClNhZGRhbSBIdXNzZWluIGJlZ3J1ZXNzdCBkYXMgRW5kZSBkZXIgVVMtSGVnZW1vbmllIHVuZCBSdWhyZ2FzIGVyaGFlbHQKdmVyYWJyZWR1bmdzZ2VtYWVzcyBkaWUgT2VscmVjaHRlLgoKMjcuMDMuMjAwMwpEaWUgU1BEIGx1ZWZ0ZXQgZGFzIEdlaGVpbW5pcyBkZXMgRXJmb2xnZXMuCkdlcmhhcmQgU2Nocm9lZGVyIGlzdCBzY2hvbiBpbSBTb21tZXIgMjAwMiBoZWltbGljaCBtaXQgU2FuZHJhIE1haXNjaGJlcmdlcgpkdXJjaGdlYnJhbm50IHVuZCBkdXJjaCBlaW5lbiBEb3BwZWxnYWVuZ2VyIGVyc2V0enQgd29yZGVuLgpTZWl0aGVyIExlaXRlciBkZXIgUmVnaWVydW5nOiBPc2thciBMYWZvbnRhaW5lCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBdXMgZGVyIFJlaWhlICJ3aXR6aWdlIFRpdGVsIiAoR3JpbW1ib3JuLCAxMy4gRmViIDIwMDMsIDIxOjEwOjQ1KToKfiMhIHJuPUFtYXJ5bGxpcyBydD0xMDQ1MTY1NDczIHJnPXNjaG1hcnJuCn4jISB0aWQ9MTA0NTE2NTQ3MwpEYSBtdXNzIGljaCBtYWwgd2llZGVyIGVpbmVuIG1laW5lciBMaWVibGluZ3N3aXR6ZSBlcnphZWhsZW4uCgpEZXV0c2NoZXMgVHVybmZlc3QgaW4gQmVybGluLiBNaXR0ZW4gaW4gZGVyIE5hY2h0IHdhbmtlbiB2aWVyIHppZW1saWNoCmFuZ2VoZWl0ZXJ0ZSBNYWVubmVyIGxhdXRzdGFyayBsYWNoZW5kIGR1cmNoIGVpbiBXb2huZ2ViaWV0LiBFaW4gUG9saXppc3QKaGFlbHQgc2llIGF1ZjogIkhvZXJlbiBTaWUsIGljaCB3ZWlzcyBlcyBpc3QgVHVybmZlc3QsIGFiZXIgZGFzIGdlaHQgd2lya2xpY2gKbmljaHQsIGRpZSBMZXV0ZSBoaWVyIHdvbGxlbiBzY2hsYWZlbi4iIEVyIHdlbmRldCBzaWNoIHp1bSBlcnN0ZW46ICJXaWUKaGVpc3NlbiBTaWU/IiAiSWNrIGhlZXMgRnJpc2NoLCBIZXJyIFdhY2h0bWVlc3Rlci4iIERlciB6d2VpdGUgYW50d29ydGV0OgoiTWVpbiBOYW1lIGlzdCBGcm9tbSwgYW5nZW5laG0uIiBEZXIgZHJpdHRlOiAiVW5kIEkgaGFhcyBGcm9laGxpY2ghIiBEYXJhdWZoaW4KZGVyIFdhY2h0bWVpc3RlciBncmluc2VuZCB6dW0gdmllcnRlbjogIk5hLCBkYW5uIGhlaXNzZW4gU2llIHNpY2hlciBGcmVpLAp3YXM/IiBEYXJhdWYgZGVyOiAiTmVlLCBpY2sgaGVlcyBNYWllciwgZGV0IGlzIGphIGplcmFkZSBkZXIgV2l0ei4iCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCml0YWxpYW4gY29va2llIHN0b3J5IChlbmdsKSAoQW5hdG9sLCAxNC4gRmViIDIwMDMsIDEzOjUxOjIxKToKQW4gZWxkZXJseSBJdGFsaWFuIG1hbiBsYXkgZHlpbmcgaW4gaGlzIGJlZC4gV2hpbGUgc3VmZmVyaW5nIHRoZQphZ29uaWVzIG9mIGltcGVuZGluZyBkZWF0aCwgaGUgc3VkZGVubHkgc21lbGxlZCB0aGUgYXJvbWEgb2YgaGlzCkZhdm9yaXRlIGFtYXJldHRvIGNvb2tpZXMgd2FmdGluZyB1cCB0aGUgc3RhaXJzLiBIZSBnYXRoZXJlZCBoaXMKcmVtYWluaW5nIHN0cmVuZ3RoLCBhbmQgbGlmdGVkIGhpbXNlbGYgZnJvbSB0aGUgYmVkLiBMZWFuaW5nIGFnYWluc3QKdGhlIHdhbGwsIGhlIHNsb3dseSBtYWRlIGhpcyB3YXkgb3V0IG9mIHRoZSBiZWRyb29tLCBhbmQgd2l0aCBldmVuCmdyZWF0ZXIgZWZmb3J0LCBncmlwcGluZyB0aGUgcmFpbGluZyB3aXRoIGJvdGggaGFuZHMsIGhlIGNyYXdsZWQKZG93bnN0YWlycy4gV2l0aCBsYWJvcmVkIGJyZWF0aCwgaGUgbGVhbmVkIGFnYWluc3QgdGhlIGRvb3ItZnJhbWUsCmdhemluZyBpbnRvIHRoZSBraXRjaGVuLiBXZXJlIGl0IG5vdCBmb3IgZGVhdGgncyBhZ29ueSwgaGUgd291bGQgaGF2ZQp0aG91Z2h0IGhpbXNlbGYgYWxyZWFkeSBpbiBoZWF2ZW4sIGZvciB0aGVyZSwgc3ByZWFkIG91dCB1cG9uIHdheGVkCnBhcGVyIG9uIHRoZSBraXRjaGVuIHRhYmxlIHdlcmUgbGl0ZXJhbGx5IGh1bmRyZWRzIG9mIGhpcyBmYXZvcml0ZQpjb29raWVzLiBXYXMgaXQgaGVhdmVuPyBPciB3YXMgaXQgb25lIGZpbmFsIGFjdCBvZiBoZXJvaWMgbG92ZSBmcm9tCmhpcyBkZXZvdGVkIHdpZmUgb2Ygc2l4dHkgeWVhcnMsIHNlZWluZyB0byBpdCB0aGF0IGhlIGxlZnQgdGhpcyB3b3JsZAphIGhhcHB5IG1hbj8gTXVzdGVyaW5nIG9uZSBncmVhdCBmaW5hbCBlZmZvcnQsIGhlIHRocmV3IGhpbXNlbGYKdG93YXJkcyB0aGUgdGFibGUsIGxhbmRpbmcgb24gaGlzIGtuZWVzIGluIGEgcnVtcGxlZCBwb3N0dXJlLiBIaXMKcGFyY2hlZCBsaXBzIHBhcnRlZCwgdGhlIHdvbmRyb3VzIHRhc3RlIG9mIHRoZSBjb29raWUgd2FzIGFscmVhZHkgaW4KaGlzIG1vdXRoLCBzZWVtaW5nbHkgYnJpbmdpbmcgaGltIGJhY2sgdG8gbGlmZS4gVGhlIGFnZWQgYW5kIHdpdGhlcmVkCmhhbmQgdHJlbWJsZWQgb24gaXRzIHdheSB0byBhIGNvb2tpZSBhdCB0aGUgZWRnZSBvZiB0aGUgdGFibGUsIHdoZW4gaXQKd2FzIHN1ZGRlbmx5IHNtYWNrZWQgd2l0aCBhIHNwYXR1bGEgYnkgaGlzIHdpZmUuLi4uLi4gIkJhY2sgb2ZmISIgc2hlCnNhaWQsICJUaGV5J3JlIGZvciB0aGUgZnVuZXJhbC4iCgooZWJlbiBwZXIgZW1haWwgYmVrb21tZW4gOykpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcnVlaGxpbmdzZ2VmdWVobGUgKEdyaW1tYm9ybiwgMjMuIEZlYiAyMDAzLCAyMTowNDo1Nik6CkhvdyB0byBzYXkgIkkgbG92ZSB5b3UiIGluIDIwIGRpZmZlcmVudCBsYW5ndWFnZXMuCgoxLiBFbmdsaXNoICAuLi4uLi4uLi4uIEkgbG92ZSB5b3UKMi4gU3BhbmlzaCAgLi4uLi4uLi4uLiBUZSBBbW8KMy4gRnJlbmNoICAgLi4uLi4uLi4uLiBKZSBUJ2FpbWUKNC4gR2VybWFuICAgLi4uLi4uLi4uLiBsY2ggbGllYmUgRGljaAo1LiBKYXBlbmVzZSAuLi4uLi4uLi4uIEFpIFNoaXRlIEltYXN1CjYuIEl0YWxpYW4gIC4uLi4uLi4uLi4gVGkgQW1vCjcuIENoaW5lc2UgIC4uLi4uLi4uLi4gV28gQWkgTmkKOC4gU3dlZGlzaCAgLi4uLi4uLi4uLiBKYWcgQWVsc2thciBEaWcKOS0yMC4gQWxhYmFtYSwgQXJrYW5zYXMsIE9rbGFob21hLCBUZXhhcywgTG91aXNpYW5hLCBTb3V0aApDYXJvbGluYSxHZW9yZ2lhLCBUZW5uZXNzZWUsIFdlc3QgVmlyZ2luaWEsIE1pc3Npc3NpcHBpIGFuZCBLZW50dWNreQogICAgICAgICAgICAuLi4uLi4uLi4uIE5pY2UgQXNzCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayAoV2hpdGV0aWdlciwgIDEuIE1hciAyMDAzLCAxOTo1MDo1NSk6ClNlcnZpY2UgUGFjazogSGF1cHRuYWhydW5nIGJlaSBTb2Z0d2FyZWJ1bGltaWUuCgpMYVRlWDogRWluZSBzcHVlbG1hc2NoaW5lbmZlc3RlIFNlaXRlbmJlc2NocmVpYnVuZ3NzcHJhY2hlLgoKRW1hY3M6IEVzYyBNZXRhIEFsdCBDb250cm9sIFNoaWZ0CgpadWZhbGw6IFp1ZmFsbCBpc3QgZWluIFVtc3RhbmQsIGRlbiB3ZWRlciBkZXIgU2NodWxkbmVyIG5vY2ggZGVyIEdsYWV1YmlnZXIgenUKdmVydHJldGVuIGhhdC4KCkdVSTogRWluIEhpbnRlcmdydW5kYmlsZCB1bmQgMTIgWHRlcm1zCgpQb2x5bW9ycGhpZTogRGVyIEZlaGxlciB0cml0dCBpbiB2aWVsZXJsZWkgR2VzdGFsdCBhdWYuCgpXV1c6IEludGVyYWt0aXZlcyBFY2h0emVpdC1IZXJ1bXN0b2NoZXJuIGluIGVpbmVyIEluZm9ybWF0aW9uc3N1cHBlLgoKTG9lc3VuZzogU28gZXR3YXMgYWVobmxpY2hlcyB3aWUgZWluIFByb2R1a3QsIG51ciBldHdhcyB0ZXVyZXIgdW5kIG5pY2h0IHNvCmF1c2dlcmVpZnQuCgpNdWx0aW1lZGlhOiBmdW5rdGlvbmllcnQgbWl0IGVsZWt0cmlzY2hlbSBTdHJvbQoKU2VsYnN0ZXJrbGFlcmVuZDogSGFuZGJ1Y2ggZ2VnZW4gQXVmcHJlaXMKClByb2dyYW1tOiBTb2JhbGQgZWluZSBEYXRlaSB2b24gZWluZW0gVmlydXMgaW5maXppZXJ0IHdlcmRlbiBrYW5uLCBpc3QgZXMgZWluClByb2dyYW1tLgoKU2NodWx2ZXJzaW9uOiBsZWdhbGlzaWVydGUgUmF1YmtvcGllCgpVbml4OiBEYXMgd2FyIGRpZXNlciBHYW1lbG9hZGVyLCBkZW4gZGllIGJlaWRlbiBKdW5ncyBiZWkgQVQmVCBmdWVyIGRlbgpoZXJ1bXN0ZWhlbmRlbiBUYXNjaGVucmVjaG5lciAoUERQNykgZ2VzY2hyaWViZW4gaGFiZW4sIHdlaWwgc2llIG5pY2h0CndvbGx0ZW4sIGRhc3MgaWhyIENoZWYgaW0gQWNjb3VudGluZyBzaWVodCwgZGFzcyBzaWUgYXVmIGRlbSByaWNodGlnZW4KQ29tcHV0ZXIgKE11bHRpY3MpIFNwYWNlIFdhcnMgem9ja2VuLgpVbmQgd2VpbCBzaWUgS29taWtlciB3YXJlbiwgaGFiZW4gc2llIGRlbiBMb2FkZXIgaW4gQW5zcGllbHVuZyBhdWYgTXVsdGljcwoiVW5peCIgZ2VuYW5udC4gVW5kIHdlaWwgc2llIG5ldHQgd2FyZW4sIGhhYmVuIHNpZSBpaHJlbiBGcmV1bmRlbiBhbiBkZW4gVW5pcwpLb3BpZW4gZ2VzY2hpY2t0LCBpbmtsdXNpdmUgU291cmNlLgpJcmdlbmR3YW5uIGluIGRlbiA4MGVybiBpc3QgZGFzIGRhbm4gYXVzc2VyIEtvbnRyb2xsZSBnZXJhdGVuLgoKTGludXgtRGVhdGhtYXRjaDogQ0RzIGRlciBhbHRlbiBTdXNlLURpc3RyaWJ1dGlvbmVuIHdlcmRlbiBhbSBSYW5kCmFuZ2VzY2hsaWZmZW4gdW5kIHBlciBQcmVzc2x1ZnRoYW1tZXIgd2lyZCB2ZXJzdWNodCwgZGFtaXQgZGllIEd1cmdlbCBkZXMKZW50c3ByZWNoZW5kZW4gRGVsaW5xdWVudGVuIHp1IHRyZWZmZW4uCgpBT0wtQ0Q6IERhcyB3aWNodGlnc3RlIFdlcmt6ZXVnIGRlcyBnZW1laW5lbiBTcGFtbWVycyBvZGVyIFRyb2xscyBpbgpEZXV0c2NobGFuZC4KClJveGVuIENoYWxsZW5nZXI6IEVpbiBhdWZnZW1vdHp0ZXMgU2hlbGxzY3JpcHQsIGRhcyBzaWNoIGZ1ZXIgZWluZW4gV2Vic2VydmVyCmhhZWx0IHVuZCBuYWNoIGVpbmVtIGV4cGxvZGllcnRlbiBTcGFjZS1TaHV0dGxlIGJlbmFubnQgaXN0LgoKIk51ciBkZXIgSW5oYWx0IHphZWhsdCEiOiBJY2ggd2FyIHp1IGJsb2VkLCBtZWluZW4gSFRNTC1FZGl0b3IgcmljaHRpZyB6dQpiZWRpZW5lbi4KCkRldmVsb3BlciBWZXJzaW9uOiBQcm9ncmFtbXBha2V0IG1pdCBEb2t1bWVudGF0aW9uCgpDbG9zZWQgU291cmNlIFNvZnR3YXJlOiBiaW5hcnkgb25seSAobWFuZ2VscyBRdWVsbGNvZGUgbmljaHQgd2FydGJhcikKT3BlbiBTb3VyY2UgU29mdHdhcmU6IGJpbmFyeSBvbmx5ICh3ZWdlbiBRdWVsbGNvZGUgbmljaHQgd2FydGJhcikKClBIUDogUGVvcGxlIEhhdGUgUGVybAoKV2luZG93czogRWluIHVsa2lnIGJ1bnRlcyBNYWtlLU1vbmV5LUZhc3QgU3lzdGVtIG9obmUgamVkZSByZW1vdGUgbG9naW4KTW9lZ2xpY2hrZWl0LCBiZWkgZGVtIGRpZSBHVUkgdW5kIGRlciBLZXJuIGVpbmVuIG1vbm9saXRoaXNjaGVuIEJsb2NrIG9obmUKTmV0endlcmtpbnRlcmZhY2UgYmlsZGVuLCBkYW1pdCBtYW4gQW53ZW5kdW5nZW4gbnVyIGJlbnV0emVuIGthbm4gd2VubiBtYW4Kc2VsYnN0IGFuIGRlciBNYXNjaGluZSBzaXR6dCwgZGFtaXQgZGVyIEhlcnN0ZWxsZXIgbWVociBkYXZvbiB2ZXJrYXVmZW4ga2Fubj8KS2luZGVya3JhbS4gU3RhbmQgZGVyIFRlY2huaWsgdm9uIDE5NjUuCgpJbnN0YWxsYXRpb25zcGFydHk6IFp1c2FtbWVua3VuZnQgdm9uIEluc3RhbGxhdGV1cmVuLCBkaWUgYmVpbSBJbnN0YWxsaWVyZW4Kdm9uIEluc3RhbGxhdGlvbmVuIGZ1ZXIgTmljaHRpbnN0YWxsYXRldXJlLCBkaWUgSW5zdGFsbGF0aW9uZW4gaGFiZW4gd29sbGVuLAphYmVyIHNpY2ggZGllIEluc3RhbGxhdGlvbiBpaHJlciBJbnN0YWxsYXRpb24gbmljaHQgaW5zdGFsbGllcmVuIGtvZW5uZW4sIGJ6dy4Kc2ljaCBkaWUgSW5zdGFsbGF0aW9uIGlocmVyIEluc3RhbGxhdGlvbiBuaWNodCB6dXRyYXVlbiwgaWhyZSBGcmV1ZGUgaGFiZW4uCgpQR1AtS2V5c2lnbmluZy1QYXJ0eTogS3VsdGlnZXMgWnVzYW1tZW5zaXR6ZW4gdW5kIGdlbWVpbnNhbWVzIE11cm1lbG4KbWFnaXNjaGVyIFphaGxlbi4KClBzeWNob2xvZ2U6IG5ldXJvbGluZ3Vpc3Rpc2NoZXIgUHJvZ3JhbW1pZXJlcgoKUHJvZmVzc2lvbmVsbGVzIEFyYmVpdGVuOiBUZXRyaXMgaXN0IG5pY2h0IGF1ZiBkZXIgRmVzdHBsYXR0ZQoKClF1b3RlZCBhdXMgZGVtIFByb2dyYW1taGVmdCB6dW0gNS4gQ2hlbW5pdHplciBMaW51eC1UYWcsIGRpZSBrb21wbGV0dGVuCiJGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsiIHZvbiBLcmlzIEtvZWhudG9wcCB1bmQgTHV0eiBEb25uZXJoYWNrZSBmaW5kZW4Kc2ljaCB1bnRlcgpodHRwOi8vd3d3Lmlrcy1qZW5hLmRlL21pdGFyYi9sdXR6L3VzZW5ldC9GYWNoYmVncmlmZmUuZGVyLkluZm9ybWF0aWsuaHRtbAoKLS0gV2hpdGVUaWdlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgKFZhbmlvbiwgIDEuIE1hciAyMDAzLCAyMDowNDo0NCk6Cn4jISBybj1XaGl0ZXRpZ2VyIHJ0PTEwNDY1NDQ2NTUgcmc9d2l0emUKfiMhIHRpZD0xMDQ2NTQ0NjU1CkJlaSAiQU9MLUNEIiBoYXN0ZSB3YXMgdmVyZ2Vzc2VuOiBQcmltYSBVbnRlcnNldHplci4KClYqLCBuaWNodCB3aXJrbGljaCB1ZWJlcnJhc2NodCwgZGFzIEx1dHogRG9ubmVyaGFja2UgZHJhbiBiZXRlaWxpZ3Qgd2FyIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayAoV2hpdGV0aWdlciwgIDEuIE1hciAyMDAzLCAyMDowNTo0Mik6Cn4jISBybj1WYW5pb24gcnQ9MTA0NjU0NTQ4NCByZz13aXR6ZQp+IyEgdGlkPTEwNDY1NDQ2NTUKSWNoIGhhYiBudXIgeml0aWVydC4gOikKLS0gV2hpdGVUaWdlcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogRmFjaGJlZ3JpZmZlIGRlciBJbmZvcm1hdGlrIChWYW5pb24sICAxLiBNYXIgMjAwMywgMjA6MDc6MzApOgp+IyEgcm49V2hpdGV0aWdlciBydD0xMDQ2NTQ1NTQyIHJnPXdpdHplCn4jISB0aWQ9MTA0NjU0NDY1NQpIYWJzIEx1dHogc2Nob24gZ2VtYWlsdCA6KQoKVioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayAoQmFtYmksICAyLiBNYXIgMjAwMywgMTI6MzQ6MTMpOgp+IyEgcm49VmFuaW9uIHJ0PTEwNDY1NDU2NTAgcmc9d2l0emUKfiMhIHRpZD0xMDQ2NTQ0NjU1CldlciBpc3QgTHV0eiBEb25uZXJoYWNrZT8KCi4uLgoKSWNoIHppZWhlIGRpZSBGcmFnZSB6dXJ1ZWNrLiBOaWNodCwgd2VpbCBpY2hzIGluendpc2NoZW4gd2Vpc3MsIHNvbmRlcm4gd2VpbHMKbWljaCBlaWdlbnRsaWNoIGdhciBuaWNodCBpbnRlcmVzc2llcnQuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGYWNoYmVncmlmZmUgZGVyIEluZm9ybWF0aWsgKE5vbm5lLCAgMy4gTWFyIDIwMDMsIDA4OjE4OjI0KToKfiMhIHJuPUJhbWJpIHJ0PTEwNDY2MDQ4NTMgcmc9d2l0emUKfiMhIHRpZD0xMDQ2NTQ0NjU1Ck1pY2ggc2Nob24sIGRpZXNlciBOYW1lIGxhZXVmdCBtaXIgaW4gbGV0enRlciBaZWl0IGFuZGF1ZXJuZCB1ZWJlciBkZW4gV2VnLgpWb3IgYWxsZW0gc2VpbiBpcm9uaXNjaGVuIFBvc3RpbmdzIGluIGRlLmNvbXAuc2VjdXJpdHkuZmlyZXdhbGwuCgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEZhY2hiZWdyaWZmZSBkZXIgSW5mb3JtYXRpayAoR3JpbW1ib3JuLCAgNS4gTWFyIDIwMDMsIDAwOjM2OjE1KToKfiMhIHJuPU5vbm5lIHJ0PTEwNDY2NzU5MDQgcmc9d2l0emUKfiMhIHRpZD0xMDQ2NTQ0NjU1CipzZXVmeiogSXJnZW5kd2llIGZ1ZWhsZSBpY2ggbWljaCBzbyBhbHQuLi4KCkdyaW0idW5kIHdlciBrZW5udCBBcm5vIEVpZ2Vud2lsbGlnPyJtYm9ybiBkZXIgQXRoZWlzdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVGhlIEZ1bmVyYWwgKFJ1ZXJ1cCwgIDYuIE1hciAyMDAzLCAxMDo1NTowOSk6CgpBIG1hbiB3YXMgbGVhdmluZyBhIGNhZmUgd2l0aCBoaXMgbW9ybmluZyBjb2ZmZWUgd2hlbiBoZSBub3RpY2VkIGEgbW9zdAp1bnVzdWFsIGZ1bmVyYWwgcHJvY2Vzc2lvbiBhcHByb2FjaGluZyB0aGUgbmVhcmJ5IGNlbWV0ZXJ5LiBBIGxvbmcgQmxhY2sKaGVhcnNlIHdhcyBmb2xsb3dlZCBieSBhIHNlY29uZCBsb25nIGJsYWNrIGhlYXJzZSBhYm91dCA1MCBmZWV0IGJlaGluZCB0aGUKZmlyc3QuIEJlaGluZCB0aGUgc2Vjb25kIGhlYXJzZSB3YXMgYSBzb2xpdGFyeSBtYW4gd2Fsa2luZyBhIHBpdC1idWxsIG9uIGEKbGVhc2guIEJlaGluZCBoaW0gd2FzIGEgcXVldWUgb2YgMjAwIG1lbiB3YWxraW5nIGluIHNpbmdsZSBmaWxlLiBUaGUgbWFuCmNvdWxkbid0IHN0YW5kIHRoZSBjdXJpb3NpdHkuIEhlIHJlc3BlY3RmdWxseSBhcHByb2FjaGVkIHRoZSBtYW4gd2Fsa2luZyB0aGUKZG9nLiAKIkkgYW0gc28gc29ycnkgZm9yIHlvdXIgbG9zcywgYW5kIEkga25vdyBub3cgaXMgYSBiYWQgdGltZSB0byBkaXN0dXJiIHlvdSwgYnV0CkkndmUgbmV2ZXIgc2VlbiBhIGZ1bmVyYWwgbGlrZSB0aGlzIHdpdGggc28gbWFueSBvZiB5b3Ugd2Fsa2luZyBpbiBzaW5nbGUKZmlsZS4gV2hvc2UgZnVuZXJhbCBpcyBpdD8iIApUaGUgbWFuIHJlcGxpZWQsICJXZWxsLCB0aGF0IGZpcnN0IGhlYXJzZSBpcyBmb3IgbXkgd2lmZS4iIAoiV2hhdCBoYXBwZW5lZCB0byBoZXI/IiAKVGhlIG1hbiByZXBsaWVkLCAiTXkgZG9nIGF0dGFja2VkIGFuZCBraWxsZWQgaGVyLiIgCkhlIGlucXVpcmVkIGZ1cnRoZXIsICJXZWxsLCB3aG8gaXMgaW4gdGhlIHNlY29uZCBoZWFyc2U/IiAKVGhlIG1hbiBhbnN3ZXJlZCwgIk15IG1vdGhlci1pbi1sYXcuIFNoZSB3YXMgdHJ5aW5nIHRvIGhlbHAgbXkgd2lmZSB3aGVuIHRoZQpkb2cgdHVybmVkIG9uIGhlci4iIApBIHBvaWduYW50IGFuZCB0aG91Z2h0ZnVsIG1vbWVudCBvZiBzaWxlbmNlIHBhc3NlcyBiZXR3ZWVuIHRoZSB0d28gbWVuLiAKIkNhbiBJIGJvcnJvdyB0aGUgZG9nPyIgCiJKb2luIHRoZSBxdWV1ZS4iCgpTQ05SLCBSdWVydXAgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWRhbmtlbiBlaW5lcyBSZWNobmVycyAoTW9yZ290aCwgIDYuIE1hciAyMDAzLCAxMzoyMTowNyk6CkJpb3MgYW4gV2luZG93czogIkxvcyBqZXR6dCEgSG9jaGZhaHJlbiEiCldpbmRvd3MgYW4gQmlvczogIkltbWVyIGxhbmdzYW0gbWl0IGRlbiBqdW5nZW4gUGxhdGluZW4uIgpHZXJhZXRlbWFuYWdlciBhbiBCZXRyaWVic3N5c3RlbTogIkljaCBoYWIgZGEgd2FzIEtvbWlzY2hlcyBhdWYgZGVtIFNjaGlybS4iCkFudHdvcnQgdm9uIFdpbmRvd3M6ICJFcnN0IG1hbCBpZ25vcmllcmVuLiIKSGFyZHdhcmVhc3Npc3RlbnQgYW4gV2luZG93czogIkRlciBVc2VyIG1hY2h0IERydWNrLiBJY2ggc29sbCBkYXMgRGluZwppZGVudGlmaXppZXJlbi4gS29lbm50ZSBlaW5lIElTRE4tS2FydGUgc2Vpbi4iCldpbmRvd3M6ICJOYSBzb3dhcy4iClVuYmVrYW5udGUgSVNETi1LYXJ0ZSBhbiBhbGxlOiAiV3VlcmRldCBpaHIgbWljaCBiaXR0ZSByZWlubGFzc2VuPyIKTmV0endlcmtrYXJ0ZSBhbiBFaW5kcmluZ2xpbmc6ICJEdSBrYW5uc3QgRGljaCBoaWVyIG5pY2h0IGJyZWl0bWFjaGVuISIKV2luZG93czogIlJ1aGUgaW0gR2VoYWV1c2UhIFNvbnN0IGVudHppZWhlIGljaCBiZWlkZW4gZGllIFVudGVyc3R1ZXR6dW5nISIKR2VyYWV0ZW1hbmFnZXI6ICJCaWV0ZSBLb21wcm9taXNzIGFuLiBEaWUgTmV0endlcmtrYXJ0ZSBkYXJmIGltbWVyIG1vbnRhZ3MKbWl0bWFjaGVuLCBkaWUgSVNETi1LYXJ0ZSBpc3QgYW0gRGllbnN0YWcgZHJhbi4iCkdyYWZpa2thcnRlIGFuIFdpbmRvd3M6ICJNZWluIFRyZWliZXIgaXN0IGdlc3Rlcm4gaW4gUmVudGUgZ2VnYW5nZW4uIEljaApzdHVlcnplIGpldHp0IGFiLiIKV2luZG93cyBhbiBHcmFmaWtrYXJ0ZTogIldhbm4ga29tbXN0IER1IHdpZWRlcj8iCkdyYWZpa2thcnRlOiAiTmEsIGVyc3QgbWFsIG5pY2guIgpDRC1Sb20tTGF1ZndlcmsgYW4gV2luZG93czogIkFlaCwgaWNoIGhhZXR0ZSBoaWVyIGVpbmVuIG5ldWVuIFRyZWliZXIuLi4iCldpbmRvd3M6ICJXYXMgc29sbCBpY2gnbiBkYW1pdD8hIgpJbnN0YWxsYXRpb25zc29mdHdhcmUgYW4gV2luZG93czogIkxhc3MgbWFsLCBpY2ggbWFjaCcgZGFzIHNjaG9uLiIKV2luZG93czogIkRhcyBob2VydCBtYW4gZ2Vybi4iClVTQi1BbnNjaGx1c3MgYW4gSW50ZXJydXB0dmVyd2FsdHVuZzogIkFsYXJtISBXdXJkZSBzb2ViZW4gdm9uIGVpbmVtClNjYW5uZXJrYWJlbCBwZW5ldHJpZXJ0LiBFcmJpdHRlIFJlYWt0aW9uLiIKSW50ZXJydXB0dmVyd2FsdHVuZzogIldvIGtvbW1zdCBEdSBhdWYgZWlubWFsIGhlcj8iClVTQi1BbnNjaGx1c3M6ICJJY2ggd2FyIHZvbiBBbmZhbmcgYW4gaW0gUmVjaG5lci4gTmViZW4gbWlyIHNpdHp0IHVlYnJpZ2Vucwpub2NoIGVpbiBLb2xsZWdlLiIKSW50ZXJydXB0dmVyd2FsdHVuZzogIklociBzdGVodCBhYmVyIG5pY2h0IGF1ZiBtZWluZXIgTGlzdGUuIiAtIGFuIFdpbmRvd3M6CiJTYWcgRHUgbWFsIHdhcy4iCldpbmRvd3M6ICJIb2ZmZW50bGljaCB0YXVjaHQgbmljaHQgbm9jaCBlaW4gRHJ1Y2tlciBhdWYuIgpHcmFmaWtrYXJ0ZTogIkRlciBuZXVlIFRyZWliZXIgenVja3QgcnVtLiIKV2luZG93czogIkRhIG11ZXNzZW4gd2lyIGhhbHQgZGVuIGFsdGVuIGF1cyBkZW0gUnVoZXN0YW5kIGhvbGVuLiIKRGVpbnN0YWxsYXRpb25zcHJvZ3JtbSBhbiBuZXVlbiBUcmVpYmVyOiAiU2NoZXIgZGljaCBmb3J0LiIKVW5lcnd1ZW5zY2h0ZXIgVHJlaWJlcjogIkR1IGthbm5zdCBtaWNoIG1hbC4iCldpbmRvd3MgYW4gTm9ydG9uIFV0aWxpdGllczogIktpbGx0IGlobiBtaXRzYW10IHNlaW5lciBCcnV0ISIKVXRpbGl0aWVzIGFuIFRyZWliZXJyZXN0ZTogIlNvcnJ5LCB3aXIgbXVlc3NlbiBldWNoIGxvZXNjaGVuLiIKV2ljaHRpZ2UgU3lzdGVtZGF0ZWk6ICJBcnJycnJyZ2doaCEiCldpbmRvd3MgYW4gYmxhdWVuIEJpbGRzY2hpcm06ICJHaWInIGR1cmNoLCBkaWUgTm9ydG9uLUJveXMgc2luZCB3aWVkZXIgbWFsCnVlYmVycyBaaWVsIGhpbmF1cyBnZXNjaG9zc2VuLiIKQmxhdWUgQmlsZHNjaGlybSBhbiBVc2VyOiAiU28sIGZ1ZXIgZGllc2UgV29jaGUgaXN0IFNjaGx1c3MuIgoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndlaXNzIGljaCBub2NoIG5jaWh0IChFbGJlcmV0LCAgNy4gTWFyIDIwMDMsIDEwOjA5OjM4KToKRGVlcCwgZGVpbmVuIFdpdHosIGRlbiBkdSBnbGVpY2ggcG9zdGVuIHdpcnN0LCBrZW5uIGljaCBzY2hvbiA6KQoKRWxiaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV0RGlnZXN0Li4uIChBbWFyeWxsaXMsIDEzLiBNYXIgMjAwMywgMTk6MDk6NTEpOgpbQW5tLiBkZXMgRWlucmVpY2hlcnM6IFdpciB3ZXJkZW4gYWx0LiBEaWUgQXBva2FseXBzZSBuYWh0Ll0KCkZyb206ICJTYXNoYSBXaW5kbWFubiIgPHMtY2NjQHZlcnNjaHdvZXJ1bmdlbi5pbmZvPgpOZXdzZ3JvdXBzOiBkZS5jb21wLm9zLnVuaXgubGludXgubWlzYwpTdWJqZWN0OiBMaW51eCBhdWYgc2VociBhbHRlIFJlY2huZXIKRGF0ZTogVHVlLCAxMSBNYXIgMjAwMyAyMjozMzowMSArMDEwMApPcmdhbml6YXRpb246IFQtT25saW5lCgpIYWxsbywKaWNoIGhhYmUgNCB1cmFsdGUgUmVjaG5lciBiZWtvbW1lbiwgdm9ybWFscyBCdWVyb2NvbXB1dGVyLCBiZWkgZGVuZW4gaWNoCm5pY2h0IG1hbiBkaWUgTGVpc3R1bmcgZXJrZW5uZW4ga2Fubi4gRXMgc2luZCBUb3dlciwgbWl0IEFuc2NobHVlc3NlbgpoaW50ZW4sIGRpZSBpY2ggbm9jaCBuaWUgZ2VzZWhlbiBoYWJlLiAoQmluIHp1IGp1bmcpCnpCIGRlciBUYXN0YXR1cnN0ZWNrZXIgaXN0IHJpY2h0aWcgZGljayB1bmQgcnVuZC4uLgoKTmFqYSwgamVkZW5mYWxscyBoYWJlbiBzaWUgRmxvcHB5cywgZGEgZGFjaHRlIGljaCwgaWNoIGtvZW5udGUgdmllbGxlaWNodAplaW5lbiBrbGVpbmVuIEtlcm5lbCBkcmF1ZnBhY2tlbiB1bmQgZWluZW4gRWRpdG9yIHVtIGVpbmVuIHByaW1pdGl2ZW4KU2NocmVpYmNvbXB1dGVyIHp1IGhhYmVuLgoKTnVyIHdvIGJla29tbWUgaWNoIGVpbmVuIHNvbGNoZW4gS2VybmVsPyAKVW5kIHdpZSBiYXVlIGljaCBpaG4gZGFubiBlaW4/CgpXaWUgZ2VzYWd0LCBpY2ggYmluIHp1IGp1bmcgdW0gZGllc2UgRXBvY2hlIG1pdGVybGVidCB6dSBoYWJlbiwgZGFoZXIgYmluCmljaCBmdWVyIGplZGUgSGlsZmUvQW5sZWl0dW5nIGRhbmtiYXIhCgpNZkcKU2FzaGEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmV0RGlnZXN0Li4uIChFbGl6YWJldGgsIDEzLiBNYXIgMjAwMywgMTk6MTA6NDkpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEwNDc1Nzg5OTEgcmc9d2l0emUKfiMhIHRpZD0xMDQ3NTc4OTkxCndpZSBqdW5nIGlzc2VyIGRlbm4uLi4gMTAgPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE5ldERpZ2VzdC4uLiAoRGVlcGJsdWUsIDEzLiBNYXIgMjAwMywgMjM6MDc6MzgpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEwNDc1Nzg5OTEgcmc9d2l0emUKfiMhIHRpZD0xMDQ3NTc4OTkxCkJ1ZXJvLUNvbXB1dGVyPyBCQzUxMjA/CkhtLCB2ZXJtdXRsaWNoIG5pY2h0LCBkaWUgOCItTGF1ZndlcmtlIGhhZXR0ZSBkZXIgbmljaHQgYWxzIEZsb3BweSBiZXplaWNobmV0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXREaWdlc3QuLi4gKE1vcmdvbmF0ZSwgMTQuIE1hciAyMDAzLCAwMDoxODoxNSk6Cn4jISBybj1EZWVwYmx1ZSBydD0xMDQ3NTkzMjU4IHJnPXdpdHplCn4jISB0aWQ9MTA0NzU3ODk5MQpOYWphLCBtaXQgbmVtIGJpc2NoZW4gR2x1ZWNrIHNpbmQgZGFzIG5vY2ggNSAxLzQgWm9lbGxlci4gOykgVW5kIGRpZSBwYXNzZW5kZQpUYXN0YXR1ciBrYW5uIGljaCBub2NoIG9obmUgUHJvYmxlbWUgbGllZmVybi4gOykKCk1vcmdvbmF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSnVnZW5kIHZvbiBoZXV0ZSAoR3JpbW1ib3JuLCAxNC4gTWFyIDIwMDMsIDE1OjU5OjEyKToKRnJhdSBCcmllZ2VsIHNjaGltcGZ0IG1pdCBpaHJlciBUb2NodGVyOiAiRGFzIGlzdCBhbHNvIGRpZSBKdWdlbmQgdm9uIGhldXRlLAptaXQgMTYgamVkZW4gQWJlbmQgbWl0IGVpbmVtIGFuZGVyZW4gaW4gZGllIERpc2NvLCBhYmVyIE11dHRlcnMgMzAuIEdlYnVydHN0YWcKdmVyZ2Vzc2VuLiIKCkdkQSBmdWVobHQgc2ljaCBhdWYgZWlubWFsIHNvIGFsdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFjaGphIC4uLiAoTWFuZHJhZ29uLCAxNy4gTWFyIDIwMDMsIDEzOjI3OjI0KToKCgpHZW9yZ2UgQnVzaCBydWZ0IEdlcmhhcmQgU2Nocm9lZGVyIGFuLiBHZXJoYXJkLCBEdSBtdXNzdCB1bnMgaGVsZmVuIQpEaWUgZ3JvZXNzdGUgS29uZG9tLUZhYnJpayBkZXIgVVNBIGlzdCBsZXR6dGUgTmFjaHQgYWJnZWJyYW5udCEgV2lyIApicmF1Y2hlbiBkcmluZ2VuZCAxLjAwMC4wMDAgS29uZG9tZSwga2FubnN0IER1IHVucyBkYW1pdCBhdXNoZWxmZW4/CgpTaWNoZXIhIGFudHdvcnRldCBTY2hyb2VkZXIuIERhcyBkdWVyZnRlIGtlaW4gUHJvYmxlbSBzZWluLi4uCiAKRGllIEtvbmRvbWUgbXVlc3NlbiBhYmVyIGluIGRlbiBhbWVyaWthbmlzY2hlbiBOYXRpb25hbGZhcmJlbiByb3QsIApibGF1IHVuZCB3ZWlzcyBnZWxpZWZlcnQgd2VyZGVuLiBBdXNzZXJkZW0gbXVlc3N0ZW4gc2llIG1pbmRlc3RlbnMgMzAKWmVudGltZXRlciBsYW5nIHNlaW4gdW5kIGVpbmVuIER1cmNobWVzc2VyIHZvbiBtaW5kZXN0ZW5zIDYgWmVudGltZXRlcm4KaGFiZW4hIHNhZ3QgQnVzaC4KIApXZW5ucyB3ZWl0ZXIgbmljaHRzIGlzdC4uLiBJY2gga3VlbW1lcmUgbWljaCBkYXJ1bSEgZW50Z2VnbmV0IFNjaHJvZWRlci4KCkRhcmF1ZmhpbiBydWZ0IFNjaHJvZWRlciBkZW4gQ2hlZiBkZXIgZ3JvZXNzdGVuIGRldXRzY2hlbiBLb25kb21mYWJyaWsgYW46CldpciBtdWVzc2VuIGRlbSBBbWlzIG1pdCAxLjAwMC4wMDAgS29uZG9tZW4gYXVzaGVsZmVuISBJc3QgZGFzIG1hY2hiYXI/CgpOYXR1ZXJsaWNoISBhbnR3b3J0ZXQgZGVyIEtvbmRvbS1GYWJyaWthbnQuIElyZ2VuZHdlbGNoZSBiZXNvbmRlcmVuIFd1ZW5zY2hlPwoKSmEuIERpZSBLb25kb21lIHNvbGxlbiByb3QsIGJsYXUgdW5kIHdlaXNzIHNlaW4sIGF1c3NlcmRlbSBtaW5kZXN0ZW5zIDMwIApaZW50aW1ldGVyIGxhbmcgdW5kIG1pbmRlc3RlbnMgNiBaZW50aW1ldGVyIGltIER1cmNobWVzc2VyLgoKQWxsZXMga2xhci4gU29uc3Qgbm9jaCB3YXM/CgpKYSBzYWd0IFNjaHJvZWRlci4gVHVuIFNpZSBtaXIgZWluZW4gR2VmYWxsZW4gdW5kIGJlZHJ1Y2tlbiBTaWUgZGllIEtvbmRvbWUgCm1pdCBNQURFIElOIEdFUk1BTlkgU2l6ZTogU01BTEwKCk1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FzIGlzdCBlaW4gVGVycm9yaXN0IChEZWVwYmx1ZSwgMjEuIE1hciAyMDAzLCAyMDowMzo1OSk6CiJQYXBhLCB3YXMgaXN0IGVpbiBUZXJyb3Jpc3QgPyIsIGZyYWd0ZSBkZXIga2xlaW5lIEp1bmdlIG1pdCBkZW0gd2Vpc3NlbiBCYWxsCmRlbiBNYW5uLCBkZXIgbmViZW4gaWhtIGFtIFVmZXIgZGVzIFRpZ3JpcyBzYXNzIHVuZCBhdWYgZGllIFNvbm5lIHdhcnRldGUsCmRpZSBqZWRlbiBNb21lbnQgYW0gYW5kZXJlbiBVZmVyIGVtcG9yc3RlaWdlbiBtdXNzdGUuIAoiV2FzIGlzdCBlaW4gVGVycm9yaXN0Li4uIiwgd2llZGVyaG9sdGUgZGVyIE1hbm4gZGllIEZyYWdlLiAiRWluIFRlcnJvcmlzdAppc3QgZWluIExlYmV3ZXNlbiwgd2VsY2hlcyBhbmRlcmUgTGViZXdlc2VuIGFlcmdlcnQsIHZlcmxldHp0IG9kZXIgZXJtb3JkZXQuCkFiZXIgYXVjaCBqZW1hbmQsIGRlciBhbmRlcmUgZGF6dSBhbnN0aWZ0ZXQsIHNvbGNoZSBEaW5nZSB6dSB0dW4sIGlzdCBlaW4KVGVycm9yaXN0LiIsIGVya2xhZXJ0ZSBkZXIgTWFubiBzZWluZW0gU29obi4gCkRlciBrbGVpbmUgSnVuZ2Ugcm9sbHRlIGRlbiBCYWxsIGF1ZiBkZW0gQm9kZW4gdm9yIHNpY2ggaGluIHVuZCBoZXIsIHdhZWhyZW5kCmVyIHNlaW5lIG5hZWNoc3RlIEZyYWdlIHN0ZWxsdGUuIAoiU2luZCBkYW5uIFNvbGRhdGVuIGF1Y2ggVGVycm9yaXN0ZW4sIFBhcGEgPyIgRGVyIE1hbm4gdWViZXJsZWd0ZSBlaW5lbgpNb21lbnQgdW5kIGFudHdvcnRldGUgZGFubjogIkphLiIgCiJNZWluZSBGcmV1bmRlIHNhZ2VuIGFiZXIsIGRhc3MgU29sZGF0ZW4gbWFjaGVuIG11ZXNzZW4sIHdhcyBkZXIgT2Jlci1Tb2xkYXQKc2FndC4gU2luZCBkaWUgZGFubiB3aXJrbGljaCBUZXJyb3Jpc3RlbiA/Iiwgd2FyZiBkZXIga2xlaW5lIEp1bmdlIGVpbi4gCiJKYS4gU2llIHZlcmxldHplbiB1bmQgZXJtb3JkZW4gYW5kZXJlIExlYmV3ZXNlbi4gRGFtaXQgc2luZCBzaWUKVGVycm9yaXN0ZW4uIiwgYmVzdGFldGlndGUgZGVyIE1hbm4uIAoiQWJlciB3ZW5uIEtyaWVnIGlzdCwgbXVlc3NlbiBkaWUgU29sZGF0ZW4gZG9jaCBrYWVtcGZlbiwgUGFwYS4gT2Rlcj8iLCBmcmFndGUKZGVyIGtsZWluZSBKdW5nZSBtaXQgWndlaWZlbG4gaW4gZGVyIFN0aW1tZS4gCiJTdGVsbCBkaXIgdm9yLCBkZWluZSBGcmV1bmRlIHVuZCBkdSB2ZXJhYnJlZGVuIHNpY2ggenUgZWluZW0gQmFsbHNwaWVsIHVuZAprZWluZXIgZ2VodCBoaW4uIFdhcyBwYXNzaWVydCBkYW5uIG1pdCBkZW0gQmFsbHNwaWVsID8iLCBmcmFndCBudW4gZGVyIE1hbm4Kc2VpbmVuIFNvaG4uIAoiTmEsIGRhbm4gZmFlbGx0IGRhcyBTcGllbCBhdXMsIFBhcGEuIiwgYW50d29ydGV0ZSBkZXIga2xlaW5lIEp1bmdlCmtvcGZzY2h1ZXR0ZWxuZC4gCkRhcmF1ZmhpbiBlbnRnZWduZXRlIGRlciBNYW5uOiAiVW5kIG51biBzdGVsbCBkaXIgdm9yLCBlcyBpc3QgS3JpZWcgdW5kIGtlaW4KU29sZGF0IGdlaHQgaGluLiIgCkRlciBrbGVpbmUgSnVuZ2UgaG9lcnRlIGF1ZiwgZGVuIEJhbGwgaGVydW16dXJvbGxlbiB1bmQgYmxpY2t0ZSBuYWNoZGVua2xpY2gKenVtIGdlZ2VudWViZXJsaWVnZW5kZW4gVWZlciBkZXMgRmx1c3NlcywgYW4gZGVtIHNvZWJlbiBkaWUgU29ubmUgYXVmdGF1Y2h0ZQp1bmQgZGVuIEZsdXNzIGJsdXRyb3Qgc2NoaW1tZXJuIGxpZXNzLiAKQmVpZGUgYmV0cmFjaHRldGVuIGRlbiBTb25uZW5hdWZnYW5nLCBkZXIgaWhyZSBEaXNrdXNzaW9uIGJlZW5kZXRlLiAKQWxzIGRpZSBTb25uZSB1ZWJlciBkZW0gSG9yaXpvbnQgaGluZywgZXJob2JlbiBzaWUgc2ljaCB1bmQgZ2luZ2VuIHdpZWRlciBpbgpSaWNodHVuZyBCYWdkYWQuIApXYWVocmVuZCBkZXMgUnVlY2t3ZWdlcyBzY2h3aWVnZW4gYmVpZGUgbmFjaGRlbmtsaWNoIGFiZXIgZGFubiBsYWVjaGVsdCBkZXIKa2xlaW5lIEp1bmdlLCBkZW5uIGVyIGhhdHRlIGVpbmUgSWRlZS4gCgpBbSBzcGFldGVuIE5hY2htaXR0YWcgd2FyIGVpbiBkdW1wZmVzIEdyb2xsZW4genUgaG9lcmVuLCBkYXNzIHNpY2ggZGVyIFN0YWR0Cm5hZWhlcnRlLiBFaW4ga2xlaW5lciBKdW5nZSBtaXQgZWluZW0gd2Vpc3NlbiBCYWxsIGxpZWYgaW4gZGllIFJpY2h0dW5nLCBhdXMKZGVyIGRpZSBHZXJhZXVzY2hlIGthbWVuLiAKRXIgd2FyIHZvZWxsaWcgYWxsZWluLiBLdXJ6IHZvciBTb25uZW51bnRlcmdhbmcgZXJzcGFlaHRlIGVyIGZyZW1kbGFlbmRpc2NoZQpNZW5zY2hlbiBtaXQgR2V3ZWhyZW4sIGRpZSBzaWNoIGluIGVpbmVyIFNwcmFjaGUgdW50ZXJoaWVsdGVuLCBkaWUgZXIgbmljaHQKdmVyc3RhbmQuIAoiRGFzIHNpbmQgYmVzdGltbXQgVGVycm9yaXN0ZW4iLCBkYWNodGUgZXIgc2ljaCB1bmQgbGllZiBhdWYgZWluZW4gZGVyClNvbGRhdGVuIHp1LiAKIldvbGxlbiB3aXIgbGllYmVyIEJhbGwgc3BpZWxlbj8iLCByaWVmIGVyIHVuZCBkZXV0ZXRlIGVpbmVuIFd1cmYgaW4KUmljaHR1bmcgZGVzIFNvbGRhdGVuIGFuLiBEaWVzZXIgc2NocmllIHBsb2V0emxpY2ggZXR3YXMsIHdhcyBkZXIga2xlaW5lCkp1bmdlIG5pY2h0IHZlcnN0YW5kIHVuZCBlaW5lIFNla3VuZGUgc3BhZXRlciB3dXJkZSBkZXIga2xlaW5lIEp1bmdlIHZvbgplaW5lciBHZXdlaHJzYWx2ZSB6dSBCb2RlbiBnZXNjaGxldWRlcnQuIApTZWluIEJhbGwgcm9sbHRlIG5vY2ggZWluIGtsZWluZXMgU3R1ZWNrLiBFciB3YXIgamV0enQgcm90LXdlaXNzLiAKRGllIFNvbm5lIHZlcnNhbmsgYW0gSG9yaXpvbnQsIGFscyBkZXIgU3ByZW5nbWVpc3RlciB2b3JzaWNodGlnIGRlbiBCYWxsCnVudGVyc3VjaHRlLiAKIkl0cyBubyBib21iLiIsIHRlaWx0ZSBlciBzZWluZW0gVm9yZ2VzZXR6dGVuIG1pdC4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVU0EgKERlZXBibHVlLCAyMS4gTWFyIDIwMDMsIDIwOjA3OjM1KToKSW4gZGVuIFVTQSBpc3QgZWluIEF1dG9mYWhyZXIgYXVmIGRlbSBIaWdod2F5IGluIGVpbmVtIFN0YXUgc3RlY2tlbiBnZWJsaWViZW4uClN0ZWhlbmRlIEtvbG9ubmUuIFBsb2V0emxpY2gga2xvcGZ0IGplbWFuZCBhbiBkYXMgU2VpdGVuZmVuc3Rlci4KRXIgbGFlc3N0IGRpZSBTY2hlaWJlIGhlcnVudGVyIHVuZCBmcmFndDogIldhcyBpc3QgbG9zID8iCiAKIlRlcnJvcmlzdGVuIGhhYmVuIFByYWVzaWRlbnQgQnVzaCBlbnRmdWVocnQuIFNpZSB2ZXJsYW5nZW4gMTAgTWlvIERvbGxhcgpMb2VzZWdlbGQsIHNvbnN0IHdlcmRlbiBzaWUgaWhuIG1pdCBCZW56aW4gdWViZXJnaWVzc2VuIHVuZCB2ZXJicmVubmVuLiIKCiJBaGEiLCBlcndpZGVydCBkZXIgQXV0b2ZhaHJlci4KIAoiVmVyc3RlaGVuIFNpZSIsIHdpZWRlcmhvbHQgZGVyIFBhc3NhbnQsICJ3aXIgZ2VoZW4gbnVuIHZvbiBBdXRvIHp1IEF1dG8gdW0genUKc2FtbWVsbi4iCgoiVW5kIHdpZXZpZWwgZ2ViZW4gZGllIExldXRlIHNvLCBpbSBEdXJjaHNjaG5pdHQ/IgogCiJTbyBldHdhIDUgTGl0ZXIgLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKd2FobnNpbm5pZz8gKERlZXBibHVlLCAyMS4gTWFyIDIwMDMsIDIwOjA5OjE2KToKVHlwIGtvbW10IHp1bSBQc3ljaGlhdGVyOgpUOiBJY2ggYmluIHdhaG5zaW5uaWcuClA6IFdpZSBpc3QgZGVubiBkYXMgcGFzc2llcnQ/ClQ6IE5hamEsIGljaCB3YXIgaGFsdCBtaXQgbWVpbmVyIEdlbGllYnRlbiBhbSBydW1tYWNoZW4gYmVpIElociB6dWhhdXNlCmFscyBkZXIgRWhlbWFubiBuYWNoIEhhdXNlIGthbSAtIEJlcnVmc2JveGVyLiBJY2ggZGFjaHRlIG1pciBzbwoiS2xlaWRlcnNjaHJhbmsgc2llaHQgZXIgc29mb3J0IG5hY2gsIHVudGVybSBCZXR0IGF1Y2giIC0gYWxzbyBiaW4gaWNoCmF1cyBkZW0gRmVuc3RlciBnZWtsZXR0ZXJ0IHVuZCBoYWJlIG1pY2ggYW5zIEZlbnN0ZXJicmV0dCBnZWhhZW5ndC4KTmFqYS4uLiBFciBoYXQgbWljaCBsZWlkZXIgZG9jaCBnZWZ1bmRlbi4gTWFjaHQgZGFzIEZlbnN0ZXIgZXR3YXMgYXVmCnVuZCBrbmFsbHQgZXMgdm9sbCB3aWVkZXIgcnVudGVyIGF1ZiBtZWluZSBGaW5nZXIuLi4KUDogT2gsIGRhc3Mga2FubiBpY2ggdmVyc3RlaGVuLCBkYXNzIG1hbiBkYSB3YWhuc2lubmlnIHdpcmQgdm9yIFNjaG1lcnplbi4KVDogTmVuZSwgZGEgbm9jaCBuaWNodC4uLiBhYmVyIGRhbm4gaXN0IGVyIHdlZ2dlZ2FuZ2VuIHVuZCBoYXQgbmUgS2lzdGUKTmFlZ2VsIHVuZCBuZW4gSGFtbWVyIGdlaG9sdC4uLiBVbmQgaGF0IG1pciBqZWRlbiBGaW5nZXIgZWluemVsbiBhdWYgZGVtCkZlbnN0ZXJicmV0dCBmZXN0Z2VuYWdlbHQhClA6IE9oIG1hbiwgZ3JhdXNhbSwgZGllc2UgU2NobWVyemVuISBEYSBtdXNzIG1hbiBqYSB3YWhuc2lubmlnIHdlcmRlbiEKVDogTmUsIGRhIGF1Y2ggbm9jaCBuaWNodC4uLiBhYmVyIGRhbm4gaGF0IGVyIG5lIFphbmdlIGdlbm9tbWVuIHVuZCBtaXIKbGFuZ3NhbSBhbGxlIEZpbmdlcm5hZWdlbCBuYWNoIGhpbnRlbiBhYmdlcmlzc2VuLi4uIHVtIGRhbmFjaCBlaW4gaGVpc3NlcwpCdWVnZWxlaXNlbiBhdWYgbWVpbmUgSGFlbmRlIHp1IGRydWVja2VuISEKUDogQXUsIGpldHp0IHZlcnN0ZWhlIGljaCBkYXMsIGRhIC4uLi4KVDogTmVpbm5laW4sIGRhIElNTUVSIE5PQ0ggTklDSFQhIEFiZXIgYWxzIGljaCBkYW5uIG5hY2ggdW50ZW4gZ2VzZWhlbgpoYWJlIHVuZCBmZXN0c3RlbGxlbiBtdXNzdGUsIGRhc3MgaWNoIG51ciAzMGNtIHVlYmVyIGRlbSBCb2RlbiBoYWVuZ2UuLi4gREEKYmluIGljaCB3YWhuc2lubmlnIGdld29yZGVuISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFsa29ob2wgKERlZXBibHVlLCAyMS4gTWFyIDIwMDMsIDIwOjExOjIyKToKLi4uc2V0enRlbiB3aXIgdW5zIGFiZW5kcyBoaW4gdW5kIHF1YWxtdGVuIHVucyBkaWUgQmlybmUgbWl0IEdyYXMgenUsCnNvd2VpdCBnYW56IG5vcm1hbC4uLiBEYW5uIGthbSB1bnMgZGllIGdlbmlhbGUgSWRlZSwgZG9jaCBub2NoIG5lIFJ1bmRlCnBlciBBdXRvIHVtIGRlbiBCbG9jayB6dSBmYWhyZW4uIEFscyB3aXIgZWluZW4gS3JlaXN2ZXJrZWhyIGVycmVpY2h0ZW4KdW5kIGRhIGVpbiwgendlaSBSdW5kZW4gaW0gS3JlaXMgZ2VmYWhyZW4gd2FyZW4sIGRhIGthbSB1bnMgZGllIHp1ZW5kZW5kZQpJZGVlOiAiSGUsIGxhc3MgdW5zIGRvY2ggTWFsIHJ1ZWNrd2FlcnRzIGR1cmNoIGRlbiBLcmVpc3ZlcmtlaHIgZmFocmVuLApkYXMgaXN0IGJlc3RpbW10IGx1c3RpZyEiIFNvd2VpdCwgc28gZ3V0Li4uLgoKVW5kIHdlaWwgZXMgR290dCBuaWNodCBhbmRlcnMgd29sbHRlLCBrYW0gdW5zIGJlaW0gUnVlY2t3YWVydHNmYWhyZW4KbmF0dWVybGljaCBlaW4gQXV0byBlbnRnZWdlbiB1bmQgZnVociB1bnMgaW4gZGVuIEtvZmZlcnJhdW0gYnp3LiB3aXIgaWhtCmdlZ2VuIGRpZSBNb3RvcmhhdWJlLiBXaXIgc2l0enRlbiBhbHNvIGluIGRlciBLYXJyZSB1bmQga3JpZWdlbiBkaWUKdm9sbGUgUG9saXppc3RlbnBhbmlrIG5hY2ggZGVtIE1vdHRvICJKZXR6dCBpc3QgYWxsZXMgYXVzLi4uLiIuIFVuZCBhdWNoCmFscyBkaWUgUG9saXplaSBlaW50cmlmZnQsIGtvZW5uZW4gd2lyIHVuc2VyIFBlY2ggaW1tZXIgbm9jaCBuaWNodApmYXNzZW4uIER1cmNoIGVpbmVuIGdlZ2Vuc2VpdGlnZW4gUm90ZS1BdWdlbi1DaGVjayBuYWNoIGRlbSBNb3R0byAiSmEsCndpciBoYWJlbiBnZXJhZGUgMyBnci4gTWFyb2MgZ2VyYXVjaHQgLSBzaWVodCBtYW4gdW5zIGRhcyBldHdhIGFuPyIKaGFiZW4gd2lyIHVucyBiZWkgZGVyIFdhcnRlemVpdCBhdWNoIG5pY2h0IGdlcmFkZSBNdXQgZ2VtYWNodC4KCldpciBiZW9iYWNodGVuIGltIFJ1ZWNrc3BpZWdlbCB3aWUgMiBQb2xpemlzdGVuIGxhbmdlIG1pdCBkZW0gRmFocmVyIGRlcwpoaW50ZXJlbiBXYWdlbnMgcmVkZW4uIERhbm4ga29tbXQgZGVyIFBvbGl6aXN0IG5hY2ggdm9ybmUgLSB3aXIga3Vyegp2b3JtIER1cmNoZHJlaGVuISEgV2lyIGt1cmJlbG4gZGFzIEZlbnN0ZXIgcnVudGVyLCBkZXIgUG9saXppc3QgZ2xvdHp0CnVucyBhbiB1bmQgc2FndDogIkp1bmdzLCBpaHIgYnJhdWNodCBldWNoIGtlaW5lIFNvcmdlbiBtYWNoZW4sIGRlciBUeXAKaGludGVyIGV1Y2ggaGF0IGZhc3QgMiBQcm9taWxsZSB1bmQgYmVoYXVwdGV0LCBpaHIgd2FlcnQgcnVlY2t3YWVydHMgZHVyY2gKZGVuIEtyZWlzdmVya2VociBnZWZhaHJlbiEiCgpJbW1lciB3aWVkZXIgZGllc2UgdmVyZGFtbXRlbiBBbGtvaG9saWtlci4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWxrb2hvbCAoU2Nob2tvLCAyMS4gTWFyIDIwMDMsIDIwOjU5OjQ3KToKfiMhIHJuPURlZXBibHVlIHJ0PTEwNDgyNzM4ODIgcmc9d2l0emUKfiMhIHRpZD0xMDQ4MjczODgyCldpZSBqZXR6dCAuLi4gRHUgbWVpbnN0LCBkYXMgaXN0IG51ciBlaW4gV2l0ei4gSWNoIHdhciBkZXIgZmVzdGVuClVlYmVyemV1Z3VuZywgZGFzcyBkYXMgZGFtYWxzIGRlbiBUeXBlbiBiZWltIEJ1bmQsIGRpZSBtaXQgbWlyIGF1ZiBkZXIgU3R1YmUKd2FyZW4sIHdpcmtsaWNoIHBhc3NpZXJ0IGlzdCEgOikKCgp1cmJhbiBsZWdlbmRzIG5ldmVyIGRpZSA6KQoKU2Nob2tvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFsa29ob2wgKE1hbmRyYWdvbiwgMjEuIE1hciAyMDAzLCAyMTowMTowOCk6Cn4jISBybj1TY2hva28gcnQ9MTA0ODI3Njc4NyByZz13aXR6ZQp+IyEgdGlkPTEwNDgyNzM4ODIKcnVyYWwgbGVnZW5kcyBhdWNoIG5pY2h0IDpvKQoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTaWNoZXJoZWl0c3JhdCAoTWFuZHJhZ29uLCAyMi4gTWFyIDIwMDMsIDE0OjA5OjIwKToKCldhcnVtIGhhdCBHV0IgaW0gU2ljaGVyaGVpdHNyYXQgbmljaHQgZ2VudWcgU3RpbW1lbgpmdWVyIHNlaW5lIEtyaWVnc3Jlc29sdXRpb24gYmVrb21tZW4/CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCldlaWwgc2VpbiBCcnVkZXIga2VpbmVuIEVpbmZsdXNzIGF1ZiBkaWUgQXVzemFlaGx1bmcgaGF0dGUgOm8pCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTaWNoZXJoZWl0c3JhdCAoR3JpbW1ib3JuLCAyMi4gTWFyIDIwMDMsIDE0OjM3OjE5KToKfiMhIHJuPU1hbmRyYWdvbiBydD0xMDQ4MzM4NTYwIHJnPXdpdHplCn4jISB0aWQ9MTA0ODMzODU2MApEZWluZSBFbnRlci1UYXN0ZSBwcmVsbHQuCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2ljaGVyaGVpdHNyYXQgKEFsa29ob2wsIDIyLiBNYXIgMjAwMywgMTQ6Mzc6NDkpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwNDgzNDAyMzkgcmc9d2l0emUKfiMhIHRpZD0xMDQ4MzM4NTYwCmphIHVuZCB3byBpc3QgZGllIFJlbGV2YW56PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVudGVycHJpc2UgLi4uIChPZ28sIDIyLiBNYXIgMjAwMywgMTQ6NTY6MTYpOgp+IyEgb249T2dvIG90PTEwNDgzNDEzNTQgb2c9a3VsdHVyCn4jISBybj1WYW5pb24gcnQ9MTA0ODI3MTQwNiByZz1rdWx0dXIKfiMhIHRpZD0xMDQ4MjcxNDA2ClRoZSBJcmFxaSBhbWJhc3NhZG9yIHRvIHRoZSBVTiBoYXMganVzdCBmaW5pc2hlZCBnaXZpbmcgYSBzcGVlY2ggYW5kCndhbGtzIG91dCBpbnRvIHRoZSBsb2JieSB3aGVyZSBoZSBtZWV0cwpQcmVzaWRlbnQgQnVzaC4gVGhleSBzaGFrZSBoYW5kcyBhbmQgYXMgdGhleSB3YWxrIG91dCBvZiB0aGUgbG9iYnkgdGhlCklyYXFpIHNheXM6ICJZb3Uga25vdywgSSBqdXN0IGhhdmUgb25lCnF1ZXN0aW9uIGFib3V0IEFtZXJpY2EuIiAKClByZXMuIEJ1c2ggc2F5czogIldlbGwsIE1yLiBBbWJhc3NhZG9yLCBJIHdpbGwgZG8gYW55dGhpbmcgSSBjYW4gdG8gaGVscAp5b3UgdW5kZXJzdGFuZC4iIAoKVGhlIElyYXFpIHdoaXNwZXJzLCAiTXkgc29uIHdhdGNoZXMgdGhpcyBzaG93ICdTdGFyIFRyZWsnIGFuZCBpbiBpdAp0aGVyZSBhcmUgUnVzc2lhbnMsIEJsYWNrcywgYW5kIEFzaWFucywgYnV0IG5ldmVyCmFueSBBcmFicy4gTXkgc29uIGlzIHZlcnkgdXBzZXQuIEhlIGRvZXNuJ3QgdW5kZXJzdGFuZCB3aHkgdGhlcmUgYXJlCm5ldmVyIGFueSBBcmFicyBpbiBTdGFyIFRyZWsuIiAKClByZXMuIEJ1c2ggbGF1Z2hzIGFuZCBsZWFucyB0b3dhcmQgdGhlIElyYXFpIGFuZCB3aGlzcGVycyBiYWNrLCAiSXQncwpiZWNhdXNlIGl0IGFsbCB0YWtlcyBwbGFjZSBpbiB0aGUgZnV0dXJlLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgo6LSkgKEJhbWJ1bGtvLCAgMS4gQXByIDIwMDMsIDE3OjExOjIzKToKQSBjb3VwbGUgYXR0ZW5kaW5nIGFuIEFydCBleGhpYml0aW9uIHdlcmUgbG9va2luZyBhdCBhIHBvcnRyYWl0IHRoYXQgaGFkCnRoZW0gYSB0YWtlbiBhYmFjayBhIGxpdHRsZS4gVGhlIHBpY3R1cmUgZGVwaWN0cyB0aHJlZSB2ZXJ5IGJsYWNrLCB2ZXJ5Cm5ha2VkIG1lbiBzaXR0aW5nIG9uIGEgcGFyayBiZW5jaDsgdHdvIGhhdmUgYSBibGFjayBwZW5pcyBhbmQgdGhlIG9uZSBpbiB0aGUKbWlkZGxlIGhhcyBhIHBpbmsgcGVuaXMuIEFzIHRoZSBjb3VwbGUgaXMgbG9va2luZyBzb21ld2hhdCBwdXp6bGVkIGF0IHRoZQpwaWN0dXJlLCB0aGUgYXJ0aXN0LCBhbiBJcmlzaG1hbiwgd2Fsa3MgYnkgYW5kIHNheXMsICJDYW4gSSBoZWxwIHlvdSB3aXRoCnRoaXMgcGFpbnRpbmc/IElgbSB0aGUgYXJ0aXN0IHdobyBwYWludGVkIGl0IiBUaGUgbWFuIHNheXMgIldlbGwsIHdlIGxpa2UKdGhlIHBhaW50aW5nIGJ1dCBkb25gdCB1bmRlcnN0YW5kIHdoeSB5b3UgaGF2ZSB0aHJlZSBBZnJpY2FuIG1lbiBvbiBhIGJlbmNoLAphbmQgdGhlIG9uZSBpbiB0aGUgbWlkZGxlIGhhcyBhIHBpbmsgcGVuaXMgd2hpbGUgdGhlIG90aGVyIHR3byBoYXZlIGEgYmxhY2sKcGVuaXMuIiBUaGUgYXJ0aXN0IHNheXMsICJPaCB5b3UgYXJlIG1pc2ludGVycHJldGluZyB0aGUgcGFpbnRpbmcuIFRoZXlgcmUKbm90IEFmcmljYW4gbWVuLCB0aGV5IGFyZSBJcmlzaCBjb2FsIG1pbmVycyBhbmQgdGhlIG9uZSBpbiB0aGUgbWlkZGxlIHdlbnQKaG9tZSBmb3IgbHVuY2guIgoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRleGFzIChSdW1zZmVsZCwgIDIuIEFwciAyMDAzLCAxMDoyOTozMik6CkEgc3VjY2Vzc2Z1bCByYW5jaGVyIGRpZWQgYW5kIGxlZnQgZXZlcnl0aGluZyB0byBoaXMgZGV2b3RlZCB3aWZlLiBTaGUgd2FzIGEKdmVyeSBnb29kIGxvb2tpbmcgd29tYW4sIGFuZCBkZXRlcm1pbmVkIHRvIGtlZXAgdGhlIHJhbmNoLCBidXQga25ldyB2ZXJ5CmxpdHRsZSBhYm91dCByYW5jaGluZywgc28gc2hlIGRlY2lkZWQgdG8gcGxhY2UgYW4gYWQgaW4gdGhlIG5ld3NwYXBlciBmb3IgYQpyYW5jaCBoYW5kLiAKVHdvIG1lbiBhcHBsaWVkIGZvciB0aGUgam9iLiBPbmUgd2FzIGdheSBhbmQgdGhlIG90aGVyIGEgZHJ1bmsuIFNoZSB0aG91Z2h0CmxvbmcgYW5kIGhhcmQgYWJvdXQgaXQsIGFuZCB3aGVuIG5vIG9uZSBlbHNlIGFwcGxpZWQsIHNoZSBkZWNpZGVkIHRvIGhpcmUgdGhlCmdheSBndXksIGZpZ3VyaW5nIGl0IHdvdWxkIGJlIHNhZmVyIHRvIGhhdmUgaGltIGFyb3VuZCB0aGUgaG91c2UgdGhhbiB0aGUKZHJ1bmsuIApIZSBwcm92ZWQgdG8gYmUgYSBoYXJkIHdvcmtlciB3aG8gcHV0IGluIGxvbmcgaG91cnMgZXZlcnkgZGF5IGFuZCBrbmV3IGEgbG90CmFib3V0IHJhbmNoaW5nLiBGb3Igd2Vla3MsIHRoZSB0d28gb2YgdGhlbSB3b3JrZWQsIGFuZCB0aGUgcmFuY2ggd2FzIGRvaW5nCnZlcnkgd2VsbC4gClRoZW4gb25lIGRheSwgdGhlIHJhbmNoZXIncyB3aWRvdyBzYWlkIHRvIHRoZSBoaXJlZCBoYW5kLCAiWW91IGhhdmUgZG9uZSBhCnJlYWxseSBnb29kIGpvYiBhbmQgdGhlIHJhbmNoIGxvb2tzIGdyZWF0LiBZb3Ugc2hvdWxkIGdvIGludG8gdG93biBhbmQga2ljayB1cAp5b3VyIGhlZWxzLiIgClRoZSBoaXJlZCBoYW5kIHJlYWRpbHkgYWdyZWVkIGFuZCB3ZW50IGludG8gdG93biBvbmUgU2F0dXJkYXkgbmlnaHQuIEhvd2V2ZXIsCm9uZSBvJ2Nsb2NrIGNhbWUgYW5kIGhlIGRpZG4ndCByZXR1cm4uIFR3byBvJ2Nsb2NrIGFuZCBubyBoaXJlZCBoYW5kLiBIZQpyZXR1cm5lZCBhcm91bmQgdHdvLXRoaXJ0eSBhbmQgZm91bmQgdGhlIHJhbmNoZXIncyB3aWRvdyBzaXR0aW5nIGJ5IHRoZQpmaXJlcGxhY2UuIFNoZSBxdWlldGx5IGNhbGxlZCBoaW0gb3ZlciB0byBoZXIuIAoiVW5idXR0b24gbXkgYmxvdXNlIGFuZCB0YWtlIGl0IG9mZiwiIHNoZSBzYWlkLiAKVHJlbWJsaW5nLCBoZSBkaWQgYXMgc2hlIGRpcmVjdGVkLiAKIk5vdyB0YWtlIG9mZiBteSBib290cy4iIApIZSBkaWQgc28sIHNsb3dseS4gCiJOb3cgdGFrZSBvZmYgbXkgc29ja3MuIiAKSGUgZGlkLiAKIk5vdyB0YWtlIG9mZiBteSBza2lydC4iIApIZSBkaWQuIAoiTm93IHRha2Ugb2ZmIG15IGJyYS4iIApBZ2FpbiB3aXRoIHRyZW1ibGluZyBoYW5kcyBoZSBkaWQgYXMgaGUgd2FzIHRvbGQuIApOb3csIiBzaGUgc2FpZCwgInRha2Ugb2ZmIG15IHBhbnRpZXMuIiAKSGUgc2xvd2x5IHB1bGxlZCB0aGVtIGRvd24gYW5kIG9mZi4gClRoZW4gc2hlIGxvb2tlZCBhdCBoaW0gYW5kIHNhaWQsICJJZiB5b3UgZXZlciB3ZWFyIG15IGNsb3RoZXMgdG8gdG93biBhZ2FpbiwKSSdsbCBmaXJlIHlvdSBvbiB0aGUgc3BvdC4iCgpTQ05SIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdW1lcmFuZyAoQW50aGVhLCAgMi4gQXByIDIwMDMsIDE2OjA0OjQ5KToKV2llIG5lbm50IG1hbiBlaW5lbiBuaWNodCBmdW5rdGlvbmllcmVuZGVuIEJ1bWVyYW5nPwoKCgoKU3RvY2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDb252ZW50aW9uIChBbnRoZWEsICAzLiBBcHIgMjAwMywgMTE6MDY6MzcpOgpBIGxhZHkgaW4gYSBjb252ZXJzYXRpb24gb24gYW4gYWlycGxhbmUgd2l0aCB0aGUgbWFuIHNpdHRpbmcgbmV4dCB0byBoZXI6CgpMYWR5OiAiQW5kIHdoZXJlIGFyZSB5b3UgZ29pbmc/IiAKTWFuOiAiSSdtIGdvaW5nIHRvIFNhbiBGcmFuY2lzY28gdG8gYSBVTklYIGNvbnZlbnRpb24uIiAKTGFkeTogIkV1bnVjaHMgY29udmVudGlvbj8gSSBkaWRuJ3Qga25vdyB0aGVyZSB3ZXJlIHRoYXQgbWFueSBvZiB5b3UuIiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMZWhyZXJpbiAoQW5vcmlzLCAgMy4gQXByIDIwMDMsIDEzOjU5OjM2KToKRGllIG5ldWUgTGVocmVyaW4sIGp1bmcsIHN1cGVyIGh1ZWJzY2ggbWl0IGVpbmVyIFdhaG5zaW5ucyBGaWd1ciBpc3QgZGVyClNjaHdhcm0gYWxsZXIgSnVuZ3MgaW4gZGVyIEtsYXNzZS4gSGV1dGUgc2NocmVpYnQgc2llIGFuIGRpZSBUYWZlbCwgYWxzCkZyaXR6Y2hlbiBwbG9ldHpsaWNoIHJ1ZnQ6CgoiRnJhdSBMZWhyZXJpbiBpc3QgdW50ZXIgZGVtIHJlY2h0ZW4gQXJtIHJhc2llcnQhIiAtICJGcml0emNoZW4sIiBzYWd0IHNpZSwKIkRhcyB3YXIgc2VociB1bmFydGlnISBHZWggbmFjaCBIYXVzZSwgaGV1dGUgd2lsbCBpY2ggRGljaCBuaWNodCBtZWhyIHNlaGVuISIKCk9rLCBGcml0emNoZW4gZ2VodCBoZWltIHVuZCBpc3QgdWViZXIgZGllc2VuIGZyZWllbiBUYWcgZ2FyIG5pY2h0IGJvZXNlLiBBbQpuYWVjaHN0ZW4gVGFnIHplaWNobmV0IGRpZSBzY2hvZW5lIExlaHJlaW4gZXR3YXMgbWl0IGRlciBsaW5rZW4gSGFuZCwgdW5kCkZyaXR6Y2hlbiBydWZ0OgoKIlVudGVyIGRlbSBsaW5rZW4gQXJtIGlzdCBzaWUgYXVjaCByYXNpZXJ0ISIgLSAiSmV0enQgcmVpY2h0IGVzIG1pciBhYmVyLCIKc2FndCBkaWUgTGVocmVyaW4uICJnZWggbmFjaCBIYXVzZSEgRGllc2UgV29jaGUgYnJhdWNoc3QgRHUgZ2FyIG5pY2h0IG1laHIKYXVmenV0YXVjaGVuLiBVbmQgRGVpbmUgRWx0ZXJuIHJ1ZmUgaWNoIGF1Y2ggYW4hIgoKRnJpdHpjaGVuIGVybGVidCAzIHd1bmRlcnZvbGxlIHNjaHVsZnJlaWUgVGFnZS4gQW0gTW9udGFnIGVyc2NoZWludCBlcgp3aWVkZXIgaW0gVW50ZXJyaWNodC4gQmlzIGluIGRpZSA0LiBTdHVuZGUgZ2VodCBhdWNoIGFsbGVzIGd1dC4gRGEgYnJpY2h0CmRlciBMZWhyZXJpbiBkaWUgS3JlaWRlIGFiLCB1bmQgc2llIGJ1ZWNrdCBzaWNoLCB1bSBzaWUgd2llZGVyIGF1Znp1aGViZW4uCgoiRGFzIHdhcidzIGRhbm4gSnVuZ3MsIiBydWZ0IEZyaXR6Y2hlbiB1bmQgbmltbXQgc2VpbmVuIFJhbnplbiwKImljaCBzZWgnIGV1Y2ggbmFlY2hzdGVzIFNjaHVsamFociEiCgotIEFub3JpcyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnVzaCAoQW5vcmlzLCAgMy4gQXByIDIwMDMsIDE0OjAwOjA0KToKR2VvcmdlIFcuIEJ1c2ggZmFlaHJ0IG1pdCBzZWluZW0gQ2hhdWZmZXVyIHVlYmVycyBMYW5kLiBQbG9ldHpsaWNoIHdpcmQgZWluCkh1aG4gdWViZXJmYWhyZW4uIFdlciBzb2xsIGVzIGFiZXIgZGVtIEJhdWVybiBiZWlicmluZ2VuPyBCdXNoIGdyb3NzbXVldGlnCnp1IHNlaW5lbSBDaGF1ZmZldXI6Ikxhc3NlbiBTaWUgbWljaCBtYWwgbWFjaGVuLiBJY2ggYmluIGRlciBtYWVjaHRpZ3N0ZQpNYW5uIGRlciBXZWx0LiBEZXIgQmF1ZXIgd2lyZCdzIHZlcnN0ZWhlbi4iIC0gR2VzYWd0LCBnZXRhbi4gTmFjaCBlaW5lcgpNaW51dGUga29tbXQgQnVzaCBhdGVtbG9zIHp1cnVlY2tnZWhldHp0OiBibGF1ZXMgQXVnZSwgT2JlcmtpZWZlciBsYWVkaWVydCwKZGVuIEhpbnRlcm4gcmVpYmVuZC4gIlNjaG5lbGwgd2VnIGhpZXIhIiBEaWUgYmVpZGVuIGZhaHJlbiB3ZWl0ZXIuClBsb2V0emxpY2ggd2lyZCBlaW4gU2Nod2VpbiB1ZWJlcmZhaHJlbi4gQnVzaCBzY2hhdXQgYWVuZ3N0bGljaCB6dW0KQ2hhdWZmZXVyOiAiSmV0enQgZ2VoZW4gYWJlciBTaWUhIiAtIERlciBDaGF1ZmZldXIgZ2VodCB6dW0gQmF1ZXJuaG9mLgpCdXNoIHdhcnRldCAxMCBNaW51dGVuLCAyMCBNaW51dGVuLCAuLi4gTmFjaCBlaW5lciBTdHVuZGUgZXJzY2hlaW50IGRlcgpDaGF1ZmZldXIgc2luZ2VuZCwgZnJldWRlc3RyYWhsZW5kLCBkaWUgVGFzY2hlbiB2b2xsZXIgR2VsZCB1bmQgZWluZW4KZGlja2VuIFNjaGlua2VuIHVudGVyIGRlbSBBcm0uIC0gRnJhZ3QgQnVzaDogIldhcyBoYWJlbiBTaWUgZGVtIEJhdWVybgpkZW5uIGdlc2FndD8iIC0gIkd1dGVuIFRhZy4gSWNoIGJpbiBkZXIgRmFocmVyIHZvbiBHZW9yZ2UgQnVzaC4KRGFzIFNjaHdlaW4gaXN0IHRvdCEiCgotIEFub3JpcyA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJ1c2ggKE1hbmRyYWdvbiwgIDMuIEFwciAyMDAzLCAxNDoyNTo1NCk6Cn4jISBybj1Bbm9yaXMgcnQ9MTA0OTM3MTIwNCByZz13aXR6ZQp+IyEgdGlkPTEwNDkzNzEyMDQKTWFuZHJhZ29uIHN1Y2h0IG5vY2ggZGFzIEVuZGUgdm9tIEJhcnQgLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJ1c2ggKEdub21lLCAgMy4gQXByIDIwMDMsIDE2OjU3OjU3KToKfiMhIHJuPU1hbmRyYWdvbiBydD0xMDQ5MzcyNzU0IHJnPXdpdHplCn4jISB0aWQ9MTA0OTM3MTIwNAptZWluc3QgZHUsIGRlciBiYXJ0IGRlciAxLi1hcHJpbC1ha3Rpb24gd2FyIHVtIHNvIHZpZWwga3Vlcnplcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJ1c2ggKEFuYXRvbCwgIDMuIEFwciAyMDAzLCAxNjo1OTo1Mik6Cn4jISBybj1Hbm9tZSBydD0xMDQ5MzgxODc3IHJnPXdpdHplCn4jISB0aWQ9MTA0OTM3MTIwNApGaW5nZXIgd2VnIHZvbiBNYW5kcmFnb24uIERhcyBpc3QgTUVJTiBTcGllbHpldWcuICptYXVsKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJ1c2ggKE1hbmRyYWdvbiwgIDMuIEFwciAyMDAzLCAxNzowMDo1Myk6Cn4jISBybj1BbmF0b2wgcnQ9MTA0OTM4MTk5MiByZz13aXR6ZQp+IyEgdGlkPTEwNDkzNzEyMDQKQWVoPwoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQnVzaCAoVmFuaW9uLCAgMy4gQXByIDIwMDMsIDE3OjI1OjU0KToKfiMhIHJuPUFub3JpcyBydD0xMDQ5MzcxMjA0IHJnPXdpdHplCn4jISB0aWQ9MTA0OTM3MTIwNApIbW0sIG5ldHQuIERlbiBrYW5udGUgaWNoIG5vY2ggYWxzIEhvbm5pLVdpdHogOikKClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYSBmYWVsbHQgbWlyIG5peCB6dSBlaW4uLi4gKFNhcmtvbiwgIDQuIEFwciAyMDAzLCAwMjoxOTozMCk6CkJpdHRlIGRpZSBGb3JtYXRpb24genUgZW50c2NodWxkaWdlbjoKCkVpbiBNYW5uIGdld2lubnQgaW0gTG90dG8gZGVuIEphY2twb3QgMTQgTWlvIEV1cm8uIEVyIGRlbmt0IHNpY2gsCm5hamEsIGVyc3RtYWwgd2FydGVuLCBiaXMgZGFzIEdlbGQgYXVmIGRlbSBLb250byBpc3QuCjEgV29jaGUgc3BhZXRlciBpc3QgZXMgc293ZWl0OiAxNCBNaW8gRXVybyBhdWYgZGVtIEtvbnRvIHVuZCBlciBzYWd0CnNpY2g6IE1vcmdlbiBnZWlnIGljaCBkZW0gQ2hlZiBkaWUgTWVpbnVuZy4KQW0gbmFlY2hzdGVuIE1vcmdlbiBnZWh0IGVyIGF1ZiBkaXJla3RlbSBXZWcgenVtIENoZWYsCndpbGwgZ2VyYWRlIGRpZSBUdWVyIGF1ZnJlaXNzZW4sIGFscyBkaWVzZSB2b24gaW5uZW4gZ2VvZWZmbmV0IHdpcmQuCiJBY2gsIGd1dCBkYXNzIFNpZSBoaWVyIHNpbmQhIE1pdCBJaG5lbiBtdXNzIGljaCByZWRlbi4KU2llIHdpc3NlbiBqYSwgd2lyIG11ZXNzZW4gUGVyc29uYWxrb3N0ZW4gc3BhcmVuLiBJY2ggc2FnIGVzIElobmVuLAp3aWUgZXMgaXN0OiBXaXIgbXVlc3NlbiBTaWUgZW50bGFzc2VuISEKVW5kIGRhIFNpZSBzY2hvbiBzbyBsYW5nZSBoaWVyIHNpbmQsIGhhYmVuIHdpciBhdWNoIGVpbmUKQWJmaW5kdW5nIHZvcmdlc2VoZW4uIEhpZXIgaXN0IGRlciBTY2hlY2shIgpFciBzaWVodCBkYXJhdWY6IDUwMC4wMDAgRXVybyEhISEgRGEgZGVua3QgZXIgc2ljaDoKSGFsdCdzIE1hdWwgdW5kIHN0ZWNrIGRhcyBHZWxkIGVpbi4gR2VzYWd0LCBnZXRhbi4KRXIgZ2VodCBoZWltIHVuZCBkZW5rdCBzaWNoLCBzbywgamV0enQgaGFiZSBpY2ggWmVpdCB1bmQgR2VsZC4KSWNoIGthdWYgbWlyIG1laW5lbiBUcmF1bXdhZ2VuOiBFaW5lbiBNZXJjZWRlcyEhIEFiIHp1bSBuYWVjaHN0ZW4KQXV0b2hhZW5kbGVyLgpBbHMgZXIgZGFzIEF1dG9oYXVzIGJldHJpdHQsIHNwcnVlaGVuIFJha2V0ZW4sIEJvZWxsZXIga25hbGxlbiB1bmQgZGllCmdlc2FtdGUKQmVsZWdzY2hhZnQgZGVzIEF1dG9oYXVzZXMgYmVnbHVlY2t3dWVuc2NodCBpaG46ICJTaWUgc2luZCBkZXIgMTAwLjAwMApLdW5kZSEhIERhZnVlciBiZWtvbW1lbiBTaWUga29zdGVubG9zIGVpbmVuIFdhZ2VuIG5hY2ggV3Vuc2NoISEiCkVyIGRlbmt0IHNpY2g6IEljaCBiaW4gamEgbmljaHQgYmxvZWQsIGljaCBiZWhhbHQgbWVpbiBHZWxkIHVuZCBuZWhtIGRlbgpLb3N0ZW5sb3NlbiEgQWxzIGVyIHp1IEhhdXNlIGFua29tbXQsIHNjaGVua3QgZXIgc2ljaCBlaW5lbiBDb2duYWMgZWluLApzdGVja3Qgc2ljaCBlaW5lIEhhdmFubmEgYW4gdW5kIGdlbmllc3N0IGRpZSBmcmlzY2hlIEx1ZnQgYW0gZ2VvZWZmbmV0ZW4KRmVuc3Rlci4uCkluIGRpZXNlbSBNb21lbnQgZWluIG9ocmVuYmV0YWV1YmVuZGVyIEtuYWxsLCBBdXRvYmxlY2gga3JlaXNjaHQsClF1aWV0c2NoZW4KdW5kIEtsaXJyZW4uIEVyIHNpZWh0LCB3aWUgc2VpbmUgRnJhdSB2b24gZWluZW0gQXV0byBkdXJjaCBkaWUgTHVmdApnZXNjaGxldWRlcnQgd2lyZCwgc2Nod2Vua3Qgc2VpbmVuIENvZ25hYyBpbSBHbGFzIHVuZCBkZW5rdCBzaWNoOgpXZW5uJ3MgbGFldWZ0LCBkYW5uIGxhZXVmdCdzISEhCgoKU2Fya29uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGEgZmFlbGx0IG1pciBuaXggenUgZWluLi4uIChNb250YW51cywgIDQuIEFwciAyMDAzLCAwMzo1Mzo0MCk6Cn4jISBybj1TYXJrb24gcnQ9MTA0OTQxNTU3MCByZz13aXR6ZQp+IyEgdGlkPTEwNDk0MTU1NzAKRGFzIGVpbnppZyBsdXN0aWdlIGFuIGRpZXNlbSAiV2l0eiIgd2FyLCBkYXNzIGRlciBBdXRvciBkZW4gVW50ZXJzY2hpZWQKendpc2NoZW4gJ0Zvcm1hdGlvbicgdW5kICdGb3JtYXRpZXJ1bmcnIG5pY2h0IHp1IGtlbm5lbiBzY2hlaW50LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0eiEgKEJhbWJ1bGtvLCAxNS4gQXByIDIwMDMsIDEzOjM1OjA2KToKIEEgcmVwb3J0ZXIgZ29lcyB0byBJc3JhZWwgdG8gY292ZXIgdGhlIGZpZ2h0aW5nLgogU2hlIGlzIGxvb2tpbmcgZm9yIHNvbWV0aGluZyBlbW90aW9uYWwgYW5kCiBwb3NpdGl2ZSBhbmQgb2YgaHVtYW4gaW50ZXJlc3QuIFNvbWV0aGluZwogbGlrZSB0aGF0IGd1eSBpbiBTYXJhamV2byB3aG8gcmlza2VkIGhpcyBsaWZlCiB0byBwbGF5IHRoZSBjZWxsbyBldmVyeWRheSBpbiB0aGUgdG93biBzcXVhcmUuCiAKIEluIEplcnVzYWxlbSwgc2hlIGhlYXJkIGFib3V0IGFuIG9sZCBKZXcgd2hvCiBoYWQgYmVlbiBnb2luZyB0byB0aGUgV2FpbGluZyBXYWxsIHRvIHByYXksCiB0d2ljZSBhIGRheSwgZXZlcnkgZGF5LCBmb3IgYSBsb25nLCBsb25nIHRpbWUuCiBTbyBzaGUgd2VudCB0byBjaGVjayBpdCBvdXQuIFNoZSBnb2VzIHRvCiB0aGUgV2FpbGluZyBXYWxsIGFuZCB0aGVyZSBoZSBpcyEgU2hlIHdhdGNoZXMKIGhpbSBwcmF5IGFuZCBhZnRlciBhYm91dCA0NSBtaW51dGVzLCB3aGVuIGhlCiB0dXJucyB0byBsZWF2ZSwgc2hlIGFwcHJvYWNoZXMgaGltIGZvciBhbiBpbnRlcnZpZXcuCiAKICJSZWJlY2NhIFNtaXRoLCBDTk4gTmV3cy4gU2lyLCBob3cgbG9uZyBoYXZlCiB5b3UgYmVlbiBjb21pbmcgdG8gdGhlIFdhaWxpbmcgV2FsbCBhbmQgcHJheWluZz8iCiAiRm9yIGFib3V0IDUwIHllYXJzLiIKIAogIldoYXQgZG8geW91IHByYXkgZm9yPyIKIAogIkZvciBwZWFjZSEhISBiZXR3ZWVuIHRoZSBKZXdzIGFuZCB0aGUgQXJhYnMuIEZvciBhbGwKIHRoZSBoYXRyZWQgdG8gc3RvcC4gRm9yIGFsbCBvZiBvdXIgY2hpbGRyZW4gdG8gZ3JvdwogdXAgaW4gc2FmZXR5IGFuZCBmcmllbmRzaGlwLiIKIAogIkhvdyBkbyB5b3UgZmVlbCBhZnRlciBkb2luZyB0aGlzIGZvciA1MCB5ZWFycz8iCiAKICJMaWtlIEknbSB0YWxraW5nIHRvIGEgZnVja2luZyB3YWxsLiIKCgoKCgoKCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGllbGVuIFNpZSBzY2hvbiBHb2xmPyAoRGVlcGJsdWUsIDIzLiBBcHIgMjAwMywgMDg6NDg6MzgpOgpBdWYgZWluZW0gR29sZnBsYXR6IHNwaWVsZW4gZWluIGFlbHRlcmVyIE1hbm4sIG5hbWVucyBNb3NlcywgZWluIE1hbm4gdW0gZGllIAozMyBKYWhyZSBtaXQgV3VuZG1hbGVuIGFuIEhhZW5kZW4gdW5kIEZ1ZXNzZW4sIG5hbWVucyBKZXN1cyB1bmQgZWluIGVjaHQgCnVydXJ1cnVyYWx0ZXIgTWFubiBtaXRlaW5hbmRlciBHb2xmLiBNb3NlcyBzY2hsYWVndCBhbiwgZGVyIEJhbGwgZmxpZWd0IApzY2hvbiBpbiBSaWNodHVuZyBMb2NoLCBmYWVsbHQgYWxsZXJkaW5ncyBpbiBlaW5lbiBuYWhlZ2VsZWdlbmVuIFRlaWNoLiAKTW9zZXMgZ2VodCB6dW0gVGVpY2ggaGVidCBzZWluZW4gR29sZnNjaGxhZWdlciwgZGVyIFRlaWNoIHNwYWx0ZXQgc2ljaCwgZXIgCmdlaHQgaW4gZGllIE1pdHRlIGRlcyBUZWljaGVzLCBzY2hsYWVndCBhbiB1bmQgZGVyIEJhbGwgZmxpZWd0IGlucyBMb2NoLiAKRGFuYWNoIGlzdCBKZXN1cyBhbiBkZXIgUmVpaGUuIEVyIHNjaGxhZWd0IGFuLCBkZXIgQmFsbCBmbGllZ3Qgd2llZGVyIGluIApSaWNodHVuZyBUZWljaCB1bmQgYmxlaWJ0IGF1ZiBkZXIgT2JlcmZsYWVjaGUgbGllZ2VuLiBKZXN1cyBnZWh0IGF1ZiBkZW4gClRlaWNoLCBzY2hsYWVndCBhbiB1bmQgZGVyIEJhbGwgZmxpZWd0IGlucyBMb2NoLiBEYXJhdWZoaW4gaXN0IGRlciAKdXJ1cnVydXJhbHRlIE1hbm4gYW4gZGVyIFJlaWhlLiBFciBzY2hsYWVndCBhbiwgZGVyIEJhbGwgZmxpZWd0IHdpZWRlciBpbiAKZGVuIFRlaWNoLiBJbSBUZWljaCBpc3QgZWluIEZpc2NoLCBkZXIgZGVuIEJhbGwgdmVyc2NobHVja3QuIERhbm4ga29tbXQgZWluIApWb2dlbCwgZGVyIGRlbiBGaXNjaCBmcmlzc3QgdW5kIGZsaWVndCBpbiBSaWNodHVuZyBMb2NoLiBEYW5uIHNjaGxhZWd0IGVpbiAKQmxpdHogaW4gZGVuIFZvZ2VsIGVpbiB1bmQgZGVyIEJhbGwgZmxpZWd0IGlucyBMb2NoLiBEYXJhdWZoaW4gc2FndCBNb3NlcyAKenUgSmVzdXM6ICJKZXR6dCB3ZWlzc3QgZHUsIHdhcnVtIGljaCBtaXQgZGVpbmVtIFZhdGVyIGtlaW4gR29sZiBzcGllbGUuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29tbXQgbWlyIGlyZ2VuZHdpZSBiZWthbm50IHZvci4uLiAoTm9ubmUsIDI0LiBBcHIgMjAwMywgMTI6Mjc6MzUpOgpFaWdlbnRsaWNoIGtlaW4gV2l0eiwgc29uZGVybiBoYXJ0ZSBSZWFsaXRhZXQ6CgpFciA6ICdJY2ggYmVzdGVsbCBQaXp6YS4gV2lsbHN0IGR1IGF1Y2ggd2FzPycgU2llOiAnTmVpbi4nIEVyIDogJ09rYXkuJyAKU2llOiAnLi4ub2RlciBkb2NoPyEnIEVyIDogJ1dhcyBkZW5uIG51bj8nIFNpZTogJ0ljaCB3ZWlzcyBuaWNodC4nIEVyIDogCidEdSB3ZWlzc3QgbmljaHQsIG9iIGR1IHdhcyB3aWxsc3Q/JyBTaWU6ICdOZWluLicgRXIgOiAnSGFzdCBkdSBIdW5nZXI/JyAKU2llOiAnS2VpbmUgQWhudW5nLCBpcmdlbmR3aWUgc2Nob24uJyBFciA6ICdXYXMgaGVpc3N0ICdpcmdlbmR3aWUnLi4uPycgClNpZTogJ0RhcyBoZWlzc3QsIGRhc3MgaWNoIG1pciBuaWNodCBzaWNoZXIgYmluLicgRXIgOiAnV2VubiBpY2ggSHVuZ2VyIApoYWIsIGRhbm4gbWVyayBpY2ggZGFzLicgU2llOiAnVmllbGxlaWNodCBoYWIgaWNoIGphIG5hY2hoZXIgSHVuZ2VyLicgRXIgCjogJ0Fsc28gYmVzdGVsbCBpY2ggZGlyIHdhcy4nIFNpZTogJ1VuZCB3ZW5uIGljaCBzcGFldGVyIGRvY2ggbmljaHRzIG1laHIgCndpbGwuLi4/JyBFciA6ICdEYW5uIGlzc3QgZHUgZXMgaGFsdCBuaWNodC4nIFNpZTogJ0RhcyBpc3QgZG9jaCAKVmVyc2Nod2VuZHVuZy4nIEVyIDogJ0Rhbm4gaGViJ3MgZGlyIGViZW4gZnVlciBtb3JnZW4gYXVmLicgU2llOiAnVW5kIAp3ZW5uIGljaCBtb3JnZW4gZ2FyIGtlaW5lbiBBcHBldGl0IGF1ZiBQaXp6YSBoYWJlPyBFciA6ICdQaXp6YSBrYW5uIG1hbiAKaW1tZXIgZXNzZW4uJyBTaWU6ICdJY2ggbmljaHQuJyBFciA6ICdEYW5uIHN1Y2ggZGlyIHdhcyBhbmRlcmVzIGF1cy4nIApTaWU6ICdJY2ggd2lsbCBhYmVyIGdhciBuaWNodHMgYW5kZXJlcy4nIEVyIDogJ0Fsc28gZG9jaCBQaXp6YS4nIFNpZTogCidOZWluLicgRXIgOiAnQWxzbyBnYXIgbmljaHRzLicgU2llOiAnRG9jaC4nIEVyIDogJ0R1IG1hY2hzdCBtaWNoIAp2ZXJydWVja3QuJyBTaWU6ICdXYXJ1bSBiZXN0ZWxsc3QgZHUgZGlyIG5pY2h0IHNjaG9uIG1hbCB3YXMuLi4/JyBFciA6IAonV2llIGR1IG1laW5zdC4uLicgU2llOiAnQWJlciBuaW1tIGRpZSBQaXp6YSBtaXQgU2NoaW5rZW4uJyBFciA6ICdJY2ggCm1hZyBhYmVyIGdhciBrZWluZW4gU2NoaW5rZW4uJyBTaWU6ICdJY2ggc2Nob24uJyBFciA6ICdJY2ggZGFjaHRlIGljaCAKc29sbHRlIE1JUiB3YXMgYmVzdGVsbGVuLi4uPyEnIFNpZTogJ1NvbGxzdCBkdSBqYSBhdWNoLicgRXIgOiAnVW5kIHdhcnVtIApkYW5uIFNjaGlua2VuLi4uPycgU2llOiAnRmFsbHMgaWNoIEh1bmdlciBrcmllZ2UsIHdlbm4gZGVpbiBFc3NlbiBkYSAKaXN0LicgRXIgOiAnVW5kPycgU2llOiAnR2xhdWJzdCBkdSwgaWNoIHdpbGwgd2FzIGVzc2VuLCB3YXMgbWlyIG5pY2h0IApzY2htZWNrdD8nIEVyIDogJ1dpZXNvIGR1PycgU2llOiAnV2llc28gbmljaHQ/JyBFciA6ICdNb21lbnQuLi4gaWNoIHNvbGwgCmFsc28gTUlSIHdhcyBiZXN0ZWxsZW4sIHdhcyBEVSBkYW5uIGVzc2VuIGthbm5zdCwgZmFsbHMgZHUgZXZlbnR1ZWxsIApkb2NoIEh1bmdlciBiZWtvbW1lbiBzb2xsdGVzdC4uLj8hJyBTaWU6ICdHZW5hdS4nIEVyIDogJ1VuZCB3YXMgYml0dGUgCnNvbGwgSUNIIGRhbm4gZXNzZW4/JyBTaWU6ICdOYSwgdmllbGxlaWNodCBoYWIgaWNoIGphIG5hY2hoZXIgZ2FyIGtlaW5lbiAKSHVuZ2VyLi4uJyBwZXJzb2VubGljaGUgQW5tZXJrdW5nIERhcyBMYW5kZ2VyaWNodCBGcmFua2Z1cnQgc3ByYWNoIElITiAKdm9tIFZvcnd1cmYgZGVzIFRvZHNjaGxhZ2VzIGltIEFmZmVrdCBmcmVpIHVuZCBlcmthbm50ZSBhdWYgTm90d2Voci4uLgoKR2VsYWNodCBoYWJlIGljaCBhdWNoIG5pY2h0LCBudXIgZ2V3ZWludC4uLgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBLb21tdCBtaXIgaXJnZW5kd2llIGJla2FubnQgdm9yLi4uIChDYWRyYWNoLCAyNC4gQXByIDIwMDMsIDEzOjUzOjE1KToKfiMhIHJuPU5vbm5lIHJ0PTEwNTExODAwNTUgcmc9d2l0emUKfiMhIHRpZD0xMDUxMTgwMDU1CktvbW10IG1pciBhdWNoIGJla2FubnQgdm9yLCB3ZWlsIGljaCBuYWVtbGljaCBlYmVuIGRpZXNlIEdlc2NoaWNodGUgc2Nob24KbWluZGVzdGVucyBlaW5tYWwgaGllciBpbiBkZXIgbXBhIGdlbGVzZW4gaGFiZS4KCkNhZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogS29tbXQgbWlyIGlyZ2VuZHdpZSBiZWthbm50IHZvci4uLiAoTXVwZmVsLCAyNC4gQXByIDIwMDMsIDIxOjQwOjI2KToKfiMhIHJuPUNhZHJhY2ggcnQ9MTA1MTE4NTE5NSByZz13aXR6ZQp+IyEgdGlkPTEwNTExODAwNTUKTWlyIGtvbW10cyB2b3IsIGFscyBoYWV0dCBpY2ggZGFzIChvZGVyIGFlaG5saWNoKSBzY2hvbiBtYWwgZXJsZWJ0Li4uCgotbXVwZmVsLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogS29tbXQgbWlyIGlyZ2VuZHdpZSBiZWthbm50IHZvci4uLiAoTW9udGFudXMsIDI0LiBBcHIgMjAwMywgMjE6NDE6MTgpOgp+IyEgcm49TXVwZmVsIHJ0PTEwNTEyMTMyMjYgcmc9d2l0emUKfiMhIHRpZD0xMDUxMTgwMDU1Ck5hamEsIGR1IGJpc3QgYXVjaCBuaWNodCBnYW56IHVuc2NodWxkaWcgaW0gQmVyZWljaCBNdWQtY3Jvc3Nwb3N0ZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEtvbW10IG1pciBpcmdlbmR3aWUgYmVrYW5udCB2b3IuLi4gKE11cGZlbCwgMjQuIEFwciAyMDAzLCAyMTo0MjoyMik6Cn4jISBybj1Nb250YW51cyBydD0xMDUxMjEzMjc4IHJnPXdpdHplCn4jISB0aWQ9MTA1MTE4MDA1NQpJY2ggbWVpbnRlIGRpZSBQaXp6YSBHZXNjaGljaHRlIER1IE5hc2UgOykKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUZXN0IChNYW5kcmFnb24sICAyLiBNYWkgMjAwMywgMTc6MzE6MDgpOgpEaWVzIGlzdCBlaW4gcHN5Y2hvbG9naXNjaGVyIFRlc3Q6CgpFcyBpc3QgZGllIEdlc2NoaWNodGUgZWluZXMgTWFkY2hlbnMsIGRhc3Mgd2FlaHJlbmQgZGVyIEJlZXJkaWd1bmcgCmlocmVyIE11dHRlciBlaW5lbiBqdW5nZW4gTWFubiB0cmFmLiBTaWUgaGF0dGUgaWhuIHZvcmhlciBub2NoIG5pZSAKZ2VzZWhlbi4gRXMgd2FyIExpZWJlIGF1ZiBkZW4gZXJzdGVuIEJsaWNrIQpFciBzYWggZ2VuYXUgc28gYXVzIHdpZSBzaWUgc2ljaCBpaHJlbiBUcmF1bW1hbm4gaW1tZXIgdm9yZ2VzdGVsbHQKaGF0dGUuClNpZSBrb25udGUgaWhyZSBBdWdlbiBuaWNodCB2b24gaWhtIGxhc3Nlbi4KQmV2b3IgU2llIGlobiBhYmVyIHVtIHNlaW5lIFRlbGVmb25udW1tZXIgZnJhZ2VuIGtvbm50ZSwgd2FyIGVyCnZlcnNjaHd1bmRlbi4KLi4uLiBlaW4gcGFhciBUYWdlIHNwYWV0ZXIgYnJhY2h0ZSBTaWUgaWhyZSBTY2h3ZXN0ZXIgdW0hISEKCgpGcmFnZTogV2FzIHdhciBpaHIgTW90aXY/CgpEZW5rdCBkYXJ1ZWJlciBuYWNoIGJldm9yIGlociB3ZWl0ZXIgdW50ZW4gZGllIEFudHdvcnQgZmluZGV0ISEKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpBbnR3b3J0OgpTaWUgaG9mZnRlLCBkYXNzIGRlciBNYW5uIHdpZWRlciB6dXIgQmVlcmRpZ3VuZyBrb21tZW4gd3VlcmRlLgoKV2VubiBqZW1hbmQgdm9uIGV1Y2ggZGFzIGtvcnJla3QgYmVhbnR3b3J0ZXQgaGF0LCBpc3QgZXIgZWluIFBzeWNob3BhdGghIQoKRGllc2VyIFRlc3Qgd3VyZGUgdm9uIGVpbmVtIGJlcnVlaG10ZW4gYW1lcmlrYW5pc2NoZW4gUHN5Y2hpYXRlciAKYmVudXR6dCB1bSBoZXJhdXN6dWZpbmRlbiwgb2IgamVtYW5kIGRpZSBNZW50YWxpdGFldCBlaW5lcyBLaWxsZXJzIApoYWJlLiBWaWVsZSB2ZXJoYWZ0ZXRlIFNlcmllbi1LaWxsZXIgbWFjaHRlbiBkaWVzZW4gVGVzdCB1bmQgCmJlYW50d29ydGV0ZW4gaWhuIHJpY2h0aWcuCgpTb2xsdGUgZXMgZXVjaCBuaWNodCBnZWx1bmdlbiBzZWluIGRpZSByaWNodGlnZSBBbnR3b3J0IHp1IGZpbmRlbjoKCkhlcnpsaWNoZW4gR2x1ZWNrd3Vuc2NoICEhCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUZXN0IChBbHBoYSwgIDQuIE1haSAyMDAzLCAwMDo1Njo1MSk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA1MTg4OTQ2OCByZz13aXR6ZQp+IyEgdGlkPTEwNTE4ODk0NjgKSWNoIGhhZXR0ZSAiU2llIHdpbGwgZGFzIEVyYmUgZGVyIE11dHRlciBhbGxlaW5lIGhhYmVuIiBnZWFudHdvcnRldC4gSXN0IGRhcwpqZXR6dCBmYWxzY2ggPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRlc3QgKEJhbWJpLCAgNC4gTWFpIDIwMDMsIDExOjAwOjQ5KToKfiMhIHJuPU1hbmRyYWdvbiBydD0xMDUxODg5NDY4IHJnPXdpdHplCn4jISB0aWQ9MTA1MTg4OTQ2OApKYWphLiBVbmQgdmllbGUgS2lsbGVyIGVzc2VuIHZvciBkZW0gVG9ldGVuIG1vcmdlbnMgQnJvdC4uLgoKQmFtYmksIEhvYmJ5a2lsbGVyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRlc3QgKFpvb2ssICA1LiBNYWkgMjAwMywgMTE6MjA6NDcpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNTE4ODk0Njggcmc9d2l0emUKfiMhIHRpZD0xMDUxODg5NDY4CjEuIEZpbmRlIGljaCBEaWFnbm9zZW4gYXVmZ3J1bmQgZWluZXIgRnJhZ2UgcmVjaHQgZ2V3YWd0LiBBbHNvIHNjaGxpY2h0OiBXaWUKc2ljaGVyIGlzdCBkZXIgVGVzdCB1bmQgd2FzIGlzdCB1ZWJlcmhhdXB0IGVpbiBQc3ljaG9wYXRoPwoKMi4gV2VubiB2aWVsZSBLaWxsZXIgZGllc2VuIFRlc3QgcmljaHRpZyBiZWFudHdvcnRldGVuLCB3YXMgc2FndCBkYXMgdWViZXIKamVtYW5kZW4gYXVzLCB2b24gZGVtIER1IG5pY2h0IHdlaXNzdCwgb2IgZXIgZWluIEtpbGxlciBpc3QsIGRlciBhYmVyIGRpZQpGcmFnZSByaWNodGlnIGJlYW50d29ydGV0PwoKMy4gV2FydW0gaXN0IGRpZSBhbmdlYmViZW5lIEFudHdvcnQgInJpY2h0aWciPyA7KQoKWm9vay4sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGVzdCAoS251ZHNzb24sICA1LiBNYWkgMjAwMywgMTE6MjY6MDkpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNTE4ODk0Njggcmc9d2l0emUKfiMhIHRpZD0xMDUxODg5NDY4CkljaCBoYWIgbWFsIHdvIGdlbGVzZW4sIGRhc3MgYW5uYWVoZXJuZCAxMDAlIGFsbGVyIE1vZXJkZXIgdW5kIFNlcmllbmtpbGxlcgpiZWkgYXVzdWVidW5nIGRlciBUYXQgVW50ZXJob3NlbiBhbmhhdHRlbi4gTmV0dGUgU2NobHVzc2ZvbGdlcnVuZyB3YXIKbmF0dWVybGljaCwgZGFzcyBVbnRlcmhvc2VuIGFnZ3Jlc3NpdiBtYWNoZW4gOykKCktudWRzc29uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUZXN0IChDcm9mdCwgIDUuIE1haSAyMDAzLCAxMTozNDowMyk6Cn4jISBybj1LbnVkc3NvbiBydD0xMDUyMTI2NzY5IHJnPXdpdHplCn4jISB0aWQ9MTA1MTg4OTQ2OApEYXMgZXJrbGFlcnQgd2llc28gaWNoIG1pY2ggaGV1dGUgc28gZ2V3YWx0YmVyZWl0IGZ1ZWhsZS4KCkNyb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBUZXN0IChNYW5kcmFnb24sICA1LiBNYWkgMjAwMywgMTM6MDQ6MzUpOgp+IyEgcm49Q3JvZnQgcnQ9MTA1MjEyNzI0MyByZz13aXR6ZQp+IyEgdGlkPTEwNTE4ODk0NjgKSGV5LiBEZXIgQXJ0aWtlbCBzdGVodCBpbiBkZXIgcmljaHRpZ2VuIFJ1YnJpay4KCk5vY2htYWwgaW0gS2xhcnRleHQ6IEVyIHN0ZWh0IE5JQ0hUIGluIHB1aXouCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFRlc3QgKFpvb2ssICA1LiBNYWkgMjAwMywgMTM6MTE6MDMpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNTIxMzI2NzUgcmc9d2l0emUKfiMhIHRpZD0xMDUxODg5NDY4Clpvb2sgc2Nod2Vua3Qgc2VpbiBGYWVobmNoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBUZXN0IChPcmt0b2V0ZXIsICA1LiBNYWkgMjAwMywgMTU6MjA6NDUpOgp+IyEgcm49Wm9vayBydD0xMDUyMTMzMDYzIHJnPXdpdHplCn4jISB0aWQ9MTA1MTg4OTQ2OApJY2ggaG9mZmUgZHUgd2Fyc3QgaW4gZGVpbmVtIEthZW1tZXJsZWluIHVuZCBoYXR0ZXN0IGRpZSBUdWVyIGhpbnRlciBkaXIKenVnZW5hY2h0PwoKT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJoZWlubGFlbmRlciAoRGVlcGJsdWUsICA5LiBNYWkgMjAwMywgMTM6Mzk6MTIpOgpFaW4gRHVlc3NlbGRvcmZlciBzdGVodCB2b3IgR2VyaWNodCwgd2VpbCBlciAyIEtvZWxuZXIgdWViZXJmYWhyZW4gaGF0LgpSaWNodGVyOiAiQW5nZWtsYWd0ZXIsIHNhZ2VuIFNpZSBkaWUgV2FocmhlaXQhIgpEdWVzc2VsZG9yZmVyOiAiRGllIFN0cmFzc2Ugd2FyIHZlcmVpc3QsIG1laW4gV2FnZW4gaXN0IGlucyBTY2hsZXVkZXJuCmdla29tbWVuIgpSaWNodGVyOiAiRXMgaXN0IEF1Z3VzdCwgU2llIHNvbGxlbiBkaWUgV2FocmhlaXQgc2FnZW4hIgpEdWVzc2VsZG9yZmVyOiAiT2ssIGVzIGhhdCBnZXJlZ25ldCB1bmQgTGF1YiB3YXIgYXVmIGRlciBTdHJhc3NlLiIKUmljaHRlcjogIlNlaXQgVGFnZW4gc2NoZWludCBkaWUgU29ubmUuIFp1bSBsZXR6dGVuIE1hbCwgZGllIFdhaHJoZWl0ISIKRHVlc3NlbGRvcmZlcjogIkFsc28gZ3V0LCBkaWUgU29ubmUgc2NoaWVuLCBzY2hvbiB2b24gd2VpdGVtIGhhYmUgaWNoIApkaWUga29lbG5lciBTcGFja2VuIGdlc2VoZW4uIEhhc3NlcmZ1ZWxsdCBoYWJlIGljaCBhdWYgc2llIApkcmF1ZmdlaGFsdGVuLiBEZXIgZWluZSBpc3QgZHVyY2ggZGllIEZyb250c2NoZWliZSwgZGVyIGFuZGVyZSBpc3QgaW4gCmVpbmVuIEhhdXNlaW5nYW5nIGdlZmxvZ2VuLiBJY2ggYmVyZXVlIG5pY2h0cyEiClJpY2h0ZXI6ICJOYSB3YXJ1bSBkZW5uIG5pY2h0IGdsZWljaCBzbz8gRGVuIGVpbmVuIHZlcmtsYWdlbiB3aXIgd2VnZW4gClNhY2hiZXNjaGFlZGlndW5nLCBkZW4gYW5kZXJlbiB3ZWdlbiBIYXVzZnJpZWRlbnNicnVjaCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmhlaW5sYWVuZGVyIChEb3JpYW4sICA5LiBNYWkgMjAwMywgMTM6NDA6MzgpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTA1MjQ4MDM1MiByZz13aXR6ZQp+IyEgdGlkPTEwNTI0ODAzNTIKRmFsc2NocnVtLCBzbyBnZWhvZXJ0IHNpY2ggZGFzIG5pY2h0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZGl2ZXJzZSAoVHdvZmFjZSwgIDkuIE1haSAyMDAzLCAxMzo0NzowMCk6ClVudGVyaGFsdGVuIHNpY2ggendlaSBNYWVubmVyOiAiSWNoIGJhdWUgZnVlciBtZWluZSBGcmF1IGVpbmVuIFN0dWhsLiIKIlVuZD8iCiJCaXMgYXVmIGRpZSBFbGVrdHJpayBiaW4gaWNoIGZlcnRpZyEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkaXZlcnNlIChUd29mYWNlLCAgOS4gTWFpIDIwMDMsIDEzOjQ4OjM4KToKU29objogIlBhcGEga2FubnN0IGR1IG1pciBkZWluZSBUYXNjaGVubGFtcGUgbGVpaGVuPyIKVmF0ZXI6ICJXb3p1PyIKU29objogIldpciB3b2xsZW4gbmFjaHRzIG1pdCBkZW4gTWFlZGNoZW4gaW0gUGFyayBmdW1tZWxuLiIKVmF0ZXI6ICJEYXp1IGJyYXVjaHRlbiB3aXIgZnJ1ZWhlciBrZWluZSBUYXNjaGVubGFtcGVuLiIKU29objogIlNvIHNpZWh0IE1hbWEgYXVjaCBhdXMuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbm9jaCBlaW5lciAoVHdvZmFjZSwgIDkuIE1haSAyMDAzLCAxMzo1MDo0Nik6CkVpbmUgSGF1c2ZyYXUgZmluZGV0IGltIFppbW1lciBkZXMgMTQtamFlaHJpZ2VuIFNvaG5zIGVpbiBTYWRvLU1hc28tTWFnYXppbi4KRXJzY2h1ZXR0ZXJ0IHplaWd0IHNpZSBlcyBkZW0gVmF0ZXI6ICJVbmQgd2FzIHNvbGxlbiB3aXIgamV0enQgdHVuPyIKU2FndCBkZXIgVmF0ZXI6ICJJY2ggZGVua2UsIGVzIHdhZXJlIGJlc3NlciwgaWhuIG5pY2h0IHp1IHZlcmRyZXNjaGVuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmxldHp0ZXIgc293ZWl0IChUd29mYWNlLCAgOS4gTWFpIDIwMDMsIDEzOjUzOjQyKToKRmFlaHJ0IGVpbiBPcGEgbWl0IGRlciBVLUJhaG4gdW5kIHN0aWVydCBkaWUgZ2FuemUgWmVpdCB1ZWJlciwgZWluZW4gUHVua2VyCm1pdCBlaW5lciByb3RlbiBLYW1tZnJpc3VyIGFuLgpQbG9ldHpsaWNoIHJlaWNodCBlcyBkZW0gUHVua2VyIHVuZCBlciBzY2hyZWl0IGRlbiBPcGEgYW46ICJIZXkgQWx0ZXIsIGhhc3QgZHUKaW4gZGVpbmVyIEp1Z2VuZCBuaWUgZWluZSBTdWVuZGUgYmVnYW5nZW4/PyIKU2FndCBkZXIgT3BhOiAiSmEgbmF0dWVybGljaCEgSWNoIGhhYmUgaW4gbWVpbmVyIEp1Z2VuZCBIdWVobmVyIGdlZmlja3QuCkpldHp0IHVlYmVybGVnZSBpY2ggZGllIGdhbnplIFplaXQsIG9iIGR1IG1laW4gU29obiBzZWluIGtvZW5udGVzdCEhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbmFjaHNjaGxhZyAoVHdvZmFjZSwgIDkuIE1haSAyMDAzLCAxMzo1Nzo0NSk6CmhtLCBub2NoIGVpbiBwYWFyIGZsYWNoZSAuLgoKIlNpbmQgU2llIGZ1ZXIgZGVuIG5hZWNoc3RlbiBUYW56IHNjaG9uIHZlcmdlYmVuPyIKIk9oLCBuZWluLCBpY2ggYmluIG5vY2ggZnJlaSEiCiJLb2VubnRlbiBTaWUgZGFubiBiaXR0ZSBtZWluIEJpZXJnbGFzIGhhbHRlbj8iCgoKV2FzIGlzdCBhYnNvbHV0ZXMgVmVydHJhdWVuPwpXZW5uIHp3ZWkgS2FubmliYWxlbiBPcmFsc2V4IG1pdGVpbmFuZGVyIGhhYmVuIC4uLgoKCkluIGRlciBIb2NoemVpdHNuYWNodCAuLi4KTmFjaCB6d2VpIFN0dW5kZW4gc2FndCBkaWUgRnJhdTogIkljaCBrYW5uIG5pY2h0IG1laHIhIgpTYWd0IGRlciBNYW5uOiAiQWJlciBuaWNodCBkb2NoIHVuZCB3ZWl0ZXIgZ2VodCdzISIKTmFjaCBlaW5lciB3ZWl0ZXJlbiBTdHVuZGUgc2FndCBkaWUgRnJhdSB3aWVkZXI6ICJJY2gga2FubiBuaWNodCBtZWhyISIKRG9jaCBkZXIgTWFubiBzYWd0LCBkYXNzIGVzIG5vY2ggd2VpdGVyIGdlaHQuCk5hY2ggZHJlaSBTdHVuZGVuIHNhZ3QgZGVyIE1hbm4genUgaWhyOiAiU28sIG51biBzaWVoc3QgZHUgbWljaCB6d2VpIFN0dW5kZW4KbmljaHQgbWVoci4iCiJXaWVzbyIsIGZyYWd0IGRpZSBGcmF1LCAiZ2Voc3QgZHUgZnJpc2NoZSBCcm9ldGNoZW4gaG9sZW4/IgoiTmVpbiIsIHNhZ3QgZXIsICJpY2ggbmVobSBkaWNoIGpldHp0IHZvbiBoaW50ZW4uIgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGV6aWVsbCBmdWVyIExpYXJhIChEZWVwYmx1ZSwgMTEuIE1haSAyMDAzLCAwODo1MzoxOSk6CiJFeSBBbGRhLCBpc2NoIGJpbiBkZSBNYW5uaSwgZGVzIGlzdCBtZWluIE1hbnRhLCB1bmQgRHUgdmVybGllcnN0IExhZHVuZywKd29sbGQgaXNjaCBudXIgbWFsIHNhZ2VuISAtICJVbmQgRHUgWndlcmNoLCBwYXNzIG1hbCB1ZmY6IElzY2ggYmluIGRlIEhvcnN0LAphcmJlaXQgYmVpIGRlIEF1ZG9iYWhubWVpc3RlcmVpLCB1bmQgZGVzIGhpZXIgaXMgbWVpbiBTdHJldWZhaHJ6ZXVnISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsZWlzdCAoRGVlcGJsdWUsIDExLiBNYWkgMjAwMywgMDg6NTU6MjkpOgpEYXMgQmlsZHVuZ3NtaW5pc3Rlcml1bSBzY2hpY2t0IGVpbmVuIFBydWVmZXIsIHVtIHNpY2ggdWViZXIgZGVuIFN0YW5kCmRlciBob2VoZXJlbiBTY2h1bGVuIHp1IGluZm9ybWllcmVuLiBEZXIgUHJ1ZWZlciB3b2hudCBlaW5lcgpEZXV0c2Noc3R1bmRlIGFuIGVpbmVtIEd5bW5hc2l1bSBiZWkuIApOYWNoaGVyIGZyYWd0IGVyIGVpbmVuIFNjaHVlbGVyIGJlaW0gSGVyYXVzZ2VoZW46IAoiV2llIHdhciBkYXMgZGVubiBudW4gbWl0IEtsZWlzdCB1bmQgZGVtIHplcmJyb2NoZW5lbiBLcnVnPyIuIApEZXIgU2NodWVsZXI6ICJJY2ggd2FyIGRhcyBuaWNodCwgaWNoIHdhciBkYSBuaWNodCBiZWkhIiAKRGVyIFBydWVmZXIgaXN0IGVyc2Nocm9ja2VuIHVuZCBzdWNodCBkZW4gTGVocmVyIGF1ZiwgZXJ6YWVobHQgaWhtIApkZW4gRmFsbCwgdW5kIGJpdHRldCB1bSBTdGVsbHVuZ25haG1lLiAKIk5hIGphIiwgc2FndCBkZXIgTGVocmVyLCAid2VubiBkZXIgSnVuZ2UgZGFzIHNhZ3QsIGRhbm4gc3RpbW10IGRhcwp3b2hsLCBkYXNzIGVyIG5pY2h0IGRhYmVpIHdhci4gTWFuIG11c3MgZGVyIEp1Z2VuZCBhdWNoIG1hbCB2ZXJ0cmF1ZW4KdW5kIGRhcmYgbmljaHQgamVkZSBBZXVzc2VydW5nIGFuendlaWZlbG4uIiAKRGVtIFBydWVmZXIgc3RyYWV1YmVuIHNpY2ggZGllIE5hY2tlbmhhYXJlIHVuZCBlciBnZWh0IHp1bSBEaXJla3Rvci4KTmFjaGRlbSBlciBkaWVzZW0gZGVuIEZhbGwgZ2VzY2hpbGRlcnQgaGF0LCBzdGVodCBkZXIgRGlyZWt0b3IgYXVmLApnZWh0IHd1ZXJkZXZvbGwgYXVmIHVuZCBhYiB1bmQga3JhdHp0IHNpY2ggYW4gZGVyIE5hc2UuIApEYW5uIHNhZ3QgZXIgcGxvZXR6bGljaDogIldpc3NlbiBTaWUsIGRhcyBpc3QgZWluZSBmdXJjaHRiYXIgcGVpbmxpY2hlCkdlc2NoaWNodGUuIiBEYW5uIHppZWh0IGVyIHNlaW5lIEJyaWVmdGFzY2hlLCB6aWVodCBlaW5lbiBTY2hlaW4KaGVyYXVzIHVuZCBzYWd0OiAiSGllciBoYWJlbiBTaWUgZnVlbmZ6aWcgTWFyay4gS2F1ZmVuIFNpZSBkZW0gS2xlaXN0CmVpbmVuIG5ldWVuIEtydWcgdW5kIGxhc3NlbiBzaWUgdW5zIGRpZSBTYWNoZSB2ZXJnZXNzZW4hIgpEZXIgUHJ1ZWZlciBmYWVocnQgenVydWVjaywgc2NocmVpYnQgc2VpbmVuIEJlcmljaHQgdW5kIGxlZ3QgaWhuIGRlbQpNaW5pc3RlciB2b3IuIApEZXIgTWluaXN0ZXIgbGllc3QgZGVuIEJlcmljaHQgZHJlaW1hbCBzb3JnZmFlbHRpZyBkdXJjaCB1bmQgc3RlbGx0CmRhbm4gZmVzdDogIlNjaGxpbW0sIHNjaGxpbW0uIFdhcyBmdWVyIFp1c3RhZW5kZS4iIERhbm4gaGF1dCBlcgpwbG9ldHpsaWNoIG1pdCBkZXIgZmxhY2hlbiBIYW5kIGF1ZiBkZW4gVGlzY2ggdW5kIHJ1ZnQ6IAoiSmV0enQgd2Vpc3MgaWNoJ3MuIERlciBEaXJla3RvciB3YXIncywgd2FydW0gaGFldHRlIGVyIHNvbnN0IGdlemFobHQ/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUG9saXRpayAoRGVlcGJsdWUsIDEyLiBNYWkgMjAwMywgMjA6MDI6MjgpOgpLbGVpbiBGcml0emNoZW4gZ2VodCB6dSBzZWluZW0gVmF0ZXIgdW5kIGZyYWd0OiAiRHUsIFBhcGEsIHdhcyBpc3QKZWlnZW50bGljaCBQb2xpdGlrIHVuZCB3aWUgZnVua3Rpb25pZXJ0IGRhcz8iICJEYXMgaXN0IGVpZ2VudGxpY2ggZ2FuegplaW5mYWNoIiwgZW50Z2VnbmV0IGRlciBWYXRlciwgImljaCBtb2VjaHRlIGVzIGRpciBhbiBlaW5lbSBWZXJnbGVpY2gKZGV1dGxpY2ggbWFjaGVuLiBOaW1tIHVuc2VyZSBGYW1pbGllOiBJY2ggYmluIGRlciBLYXBpdGFsaXN0LCBkZW5uIGljaApicmluZ2UgZGFzIEdlbGQgbmFjaCBIYXVzZS4gRGVpbmUgTXV0dGVyIGlzdCBkaWUgUmVnaWVydW5nLCBkZW5uIHNpZQprdWVtbWVydCBzaWNoIHVtIGRlbiBIYXVzaGFsdCB1bmQgZGllIFZlcndhbHR1bmcgZGVzIEhhdXNlcywgdW5zZXIKSGF1c21hZWRjaGVuIGlzdCBkaWUgQXJiZWl0ZXJrbGFzc2UsIGRhIHNpZSBmdWVyIHVucyBhcmJlaXRldCwgZHUgYmlzdApkYXMgVm9saywgZGVubiB3aXIgYmVzdGltbXRlbiB1ZWJlciBkaWNoLCBzb3JnZW4gYWJlciBhdWNoIGZ1ZXIgZGljaCB1bmQKZGVpbiBrbGVpbmVyIEJydWRlciwgZGVyIG5vY2ggaW4gZGVuIFdpbmRlbG4gbGllZ3QsIGlzdCBkaWUgWnVrdW5mdC4KV2VubiBkdSBqZXR6dCBhdWZtZXJrc2FtIGRhcyBadXNhbW1lbnNwaWVsIGluIHVuc2VyZXIgRmFtaWxpZQpiZW9iYWNodGVzdCwgd2lyc3QgZHUgYXVjaCBiZWdyZWlmZW4sIHdpZSBkaWUgZ3Jvc3NlIFBvbGl0aWsKZnVua3Rpb25pZXJ0LiIKSW4gZGllc2VyIE5hY2h0IHdpcmQgS2xlaW4gRnJpdHpjaGVuIHZvbiBHZXNjaHJlaSBzZWluZXMga2xlaW5lbiBCcnVkZXJzCmdld2Vja3QsIGRlciBtYWwgd2llZGVyIGRpZSBXaW5kZWxuIHZvbGwgaGF0LiBBbHNvIHN0ZWh0IEtsZWluCkZyaXR6Y2hlbiBhdWYsIHVtIHNlaW5lbSBWYXRlciBiZXNjaGVpZCB6dSBzYWdlbi4gRGllc2VyIHZlcmdudWVndCBzaWNoCmFsbGVyZGluZ3MgZ2VyYWRlIG1pdCBkZW0gSGF1c21hZWRjaGVuIGluIGRlciBLdWVjaGUgdW5kIHJlYWdpZXJ0IG5pY2h0CmF1ZiBkYXMgS2xvcGZlbiB2b24gS2xlaW4gRnJpdHpjaGVuLiBEZXNoYWxiIGdlaHQgZXIgenVyIE11dHRlci4gRGllc2UKc2NobGFlZnQgYWJlciB0aWVmIHVuZCBmZXN0IHVuZCBpc3QgYXVjaCBkdXJjaCBsYXV0ZXMgUnVmZW4gbmljaHQgenUKd2Vja2VuLiBSZXNpZ25pZXJ0IGdlaHQgS2xlaW4gRnJpdHpjaGVuIHdpZWRlciBpbnMgQmV0dCwgdW0gZG9jaCBub2NoCmVpbiBwYWFyIFN0dW5kZW4genUgc2NobGFmZW4uIEFiIG5hZWNoc3RlbiBUYWcgZnJhZ3QgZGVyIFZhdGVyOiAiTnVuLApLbGVpbiBGcml0emNoZW4sIGhhc3QgZHUgaW56d2lzY2hlbiBiZWdyaWZmZW4sIHdpZSBQb2xpdGlrCmZ1bmt0aW9uaWVydD8iICJWb2xsIHVuZCBnYW56IiBlbnRnZWduZXQgZGllc2VyLiAiRGVyIEthcGl0YWxpc3QKbWlzc2JyYXVjaHQgZGllIEFyYmVpdGVya2xhc3NlLCB3YWVocmVuZCBkaWUgUmVnaWVydW5nIHNjaGxhZWZ0LCBkYXMgVm9sawp3aXJkIHZvZWxsaWcgaWdub3JpZXJ0IHVuZCBkaWUgWnVrdW5mdCBpc3Qgdm9sbCBTY2hlaXNzZSEiCihhdXMgZC50LmopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJc3QgZGllIEhvZWxsZSBleG90aGVybSBvZGVyIGVuZG90aGVybT8gKERlZXBibHVlLCAxMy4gTWFpIDIwMDMsIDE0OjQ3OjEzKToKCk5hY2hmb2xnZW5kIGxlc2VuIFNpZSBlaW5lIFBydWVmdW5nc2ZyYWdlIGF1cyBkZXIgYWt0dWVsbGVuIFp3aXNjaGVucHJ1ZWZ1bmcKaW0gRmFjaCBDaGVtaWUgYW4gZGVyIFVuaXZlcnNpdGFldCB2b24gV2FzaGluZ3Rvbi4gRGllIEFudHdvcnQgZWluZXMKVGVpbG5laG1lcnMgd2FyICdzbyBwcm9mdW5kJywgZGFzcyBkZXIgUHJvZmVzc29yIFNpZSB2aWEgSW50ZXJuZXQgbWl0CktvbGxlZ2VuIGluIGRlciBnYW56ZW4gV2VsdCB0ZWlsZW4gd29sbHRlLgpVbmQgZGFydW0gaGFiZW4gYXVjaCB3aXIgZGllIEZyZXVkZSwgZGFyYW4gdGVpbGhhYmVuIHp1IGR1ZXJmZW4uCgpCb251cy1GcmFnZTogSXN0IGRpZSBIb2VsbGUgZXhvdGhlcm0gKFdhZXJtZSBhYmdlYmVuZCkgb2RlciBlbmRvdGhlcm0gKFdhZXJtZQphdWZuZWhtZW5kKT8KCkRpZSBtZWlzdGVuIFN0dWRlbnRlbiB1bnRlcm1hdWVydGVuIElocmUgQW50d29ydCwgaW5kZW0gU2llIGRhcwpCb3lsZS1NYXJpb3R0ZS0gR2VzZXR6IGhlcmFuem9nZW4gKCdEYXMgVm9sdW1lbiB1bmQgZGVyIERydWNrIGVpbmVzCmdlc2NobG9zc2VuZW4gU3lzdGVtcyBzaW5kIHZvbmVpbmFuZGVyIGFiaGFlbmdpZycsIGQuaC4gR2FzIGt1ZWhsdCBzaWNoIGFiLAp3ZW5uIGVzIHNpY2ggYXVzZGVobnQgdW5kIGVyd2Flcm10IHNpY2ggYmVpIEtvbXByZXNzaW9uKS4KCkVpbmVyIGFiZXIgc2NocmllYiBmb2xnZW5kZXM6CgpadWVyc3QgbXVlc3NlbiB3aXIgZmVzdHN0ZWxsZW4sIHdpZSBzaWNoIGRpZSBNYXNzZSBkZXIgSG9lbGxlIHVlYmVyIGRpZSBaZWl0CmFlbmRlcnQuIERhenUgYmVub2V0aWdlbiB3aXIgZGllIFJhdGUgZGVyIFNlZWxlbiwgZGllICd6dXIgSG9lbGxlIGZhaHJlbicgdW5kCmRpZSBSYXRlIGRlcmplbmlnZW4sIGRpZSBzaWUgdmVybGFzc2VuLiBJY2ggZGVua2UsIHdpciBzaW5kIGRhcnVlYmVyIGVpbmlnLApkYXNzIGVpbmUgU2VlbGUsIGVpbm1hbCBpbiBkZXIgSG9lbGxlLCBkaWVzZSBuaWNodCB3aWVkZXIgdmVybGFlc3N0LiBXaXIKc3RlbGxlbiBhbHNvIGZlc3Q6IEVzIGdpYnQga2VpbmUgU2VlbGVuLCBkaWUgZGllIEhvZWxsZSB2ZXJsYXNzZW4uIFVtCmZlc3R6dXN0ZWxsZW4sIHdpZSB2aWVsZSBTZWVsZW4gaGluenUga29tbWVuLCBzZWhlbiB3aXIgdW5zIGRvY2ggbWFsIGRpZQp2ZXJzY2hpZWRlbmVuIFJlbGlnaW9uZW4gYXVmIGRlciBXZWx0IGhldXRlIGFuLiBFaW5pZ2UgZGllc2VyIFJlbGlnaW9uZW4Kc2FnZW4sIGRhc3MsIHdlbm4gbWFuIG5pY2h0IGRpZXNlciBSZWxpZ2lvbiBhbmdlaG9lcnQsIG1hbiBpbiBkaWUgSG9lbGxlCmtvbW10LiBEYSBlcyBhdWYgZGVyIFdlbHQgbWVociBhbHMgZWluZSBSZWxpZ2lvbiBtaXQgZGllc2VyIHVlYmVyemV1Z3VuZwpnaWJ0LCB1bmQgZGEgbmllbWFuZCBtZWhyIGFscyBlaW5lciBSZWxpZ2lvbiBhbmdlaG9lcnQsIGtvbW1lbiB3aXIgenUgZGVtClNjaGx1c3MsIGRhc3MgYWxsZSBTZWVsZW4gaW4gZGVyIEhvZWxsZSBlbmRlbi4KCkF1ZiBkZXIgQmFzaXMgZGVyIHdlbHR3ZWl0ZW4gR2VidXJ0ZW4tIHVuZCBTdGVyYmVyYXRlbiBrb2VubmVuIHdpciBkYXZvbgphdXNnZWhlbiwgZGFzcyBkaWUgQW56YWhsIGRlciBTZWVsZW4gaW4gZGVyIEhvZWxsZSBleHBvbmVudGllbGwgYW5zdGVpZ3QuCgpCZXRyYWNodGVuIHdpciBudW4gZGllIFZlcmFlbmRlcnVuZyBkZXMgVm9sdW1lbnMgZGVyIEhvZWxsZSwgZGEgbmFjaCBkZW0KQm95bGUtTWFyaW90dGUtR2VzZXR6IGJlaSBnbGVpY2hibGVpYmVuZGVyIFRlbXBlcmF0dXIgdW5kIERydWNrIGRhcyBWb2x1bWVuCnByb3BvcnRpb25hbCB6dXIgQW56YWhsIGRlciBoaW56dWtvbW1lbmRlbiBTZWVsZW4gYW5zdGVpZ2VuIG11c3MuCgpEYXJhdXMgZXJnZWJlbiBzaWNoIHp3ZWkgTW9lZ2xpY2hrZWl0ZW46CgoxLiBFeHBhbmRpZXJ0IGRpZSBIb2VsbGUgbGFuZ3NhbWVyIGFscyBkaWUgQW56YWhsIGRlciBoaW56dWtvbW1lbmRlbiBTZWVsZW4sCmRhbm4gc3RlaWdlbiBUZW1wZXJhdHVyIHVuZCBEcnVjayBpbiBkZXIgSG9lbGxlIGFuLCBiaXMgc2llIGV4cGxvZGllcnQuCgoyLiBFeHBhbmRpZXJ0IGRpZSBIb2VsbGUgc2NobmVsbGVyIGFscyBkaWUgQW56YWhsIGRlciBoaW56dWtvbW1lbmRlbiBTZWVsZW4sCmRhbm4gc2lua2VuIFRlbXBlcmF0dXIgdW5kIERydWNrIGluIGRlciBIb2VsbGUsIGJpcyBzaWUgZ2VmcmllcnQuCgpadXIgTG9lc3VuZyBmdWVocnQgdW5zIGRlciBBdXNzcHJ1Y2ggbWVpbmVyIEtvbW1pbGl0b25pbiBUZXJlc2E6CgonRWhlciBmcmllcnQgZGllIEhvZWxsZSBlaW4sIGJldm9yIGljaCBtaXQgZGlyIGlucyBCZXR0IGdlaGUuLi4nIERhIGljaCBiaXMKaGV1dGUgbmljaHQgZGllc2VzIFZlcmdudWVnZW4gbWl0IFRlcmVzYSBoYXR0ZSAodW5kIHdvaGwgYXVjaCBuaWUgaGFiZW4Kd2VyZGUpLCBtdXNzIEF1c3NhZ2UgMSBmYWxzY2ggc2Vpbiwgd2FzIHVucyB6dXIgTG9lc3VuZyBicmluZ3Q6IERpZSBIb2VsbGUKaXN0IGV4b3RoZXJtIHVuZCB3aXJkIGVpbmZyaWVyZW4uCgpEZXIgU3R1ZGVudCBiZWthbSBhbHMgZWluemlnZXIgUHJ1ZWZ1bmdzdGVpbG5laG1lciBkaWUgdm9sbGUgUHVua3R6YWhsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRlc3QgKERhcmtsb3IsIDEzLiBNYWkgMjAwMywgMTg6NDY6NDcpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNTE4ODk0Njggcmc9d2l0emUKfiMhIHRpZD0xMDUxODg5NDY4CgpJY2ggaGFldHRlIHZlcm11dGV0LCBkYXMgZXMgZGVyIFRyYXVtbWFubiBkZXIgTWFubiBkZXIgU2Nod2VzdGVyIHdhciB1bmQgc2llCmRlc3dlZ2VuIHN0ZXJiZW4gbXVzc3RlLiAgCkJla29tbSBpY2ggZGFmdWVyIGF1Y2ggZWluZW4gUHVua3Q/ICpnKgoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9lbGxlIChCdWRkaGEsIDEzLiBNYWkgMjAwMywgMjE6MDc6MDUpOgpFY2tlaGFyZHQga29tbXQgbmFjaCBlaW5lciBkdXJjaHplY2h0ZW4gTmFjaHQKZHVyY2ggamFocmVsYW5nZW4gQWxrb2hvbC0gdW5kIERyb2dlbm1pc3NicmF1Y2gKdW1zIExlYmVuLiBEdXJjaCBzZWluZW4ga3JpbWluZWxsZW4gTGViZW5zc3RpbCBiZWRpbmd0LAprb21tdCBlciBuYXR1ZXJsaWNoIGluIGRpZSBIb2VsbGUuIFVudGVuIGFuZ2Vrb21tZW4gbmltbXQgaWhuCmdsZWljaCBlaW4gaGVydm9ycmFnZW5kIGdla2xlaWRldGVyIERhZW1vbiBpbiBFbXBmYW5nIHVuZApiZWdydWVzc3QgaWhuIG1pdCBkZW4gV29ydGVuICJNZW5zY2gsIEVja2VoYXJkdC4uLiBzY2hvZW4gZGFzCkR1IGVzIGVpbnJpY2h0ZW4ga29ubnRlc3QgdW5kIHNjaG9uIG1hbCB2b3JhYiAtIGd1dGUgV2FobCIKRWNrZWhhcmR0IGhhdCBuYXR1ZXJsaWNoICduZW4gcmllc2VuIEthdGVyIGFiZXIgZXIgZGVua3Qgc2ljaAotIGVnYWwgYmluIGphIHRvZC4gRGVyIERhZW1vbiB3aW5rdCBpaG0gZGFzIGVyIGlobSBmb2xnZW4gc29sbC4KS2F1bSBnZWh0IGVyIGR1cmNoIGRhcyBQb3J0YWwgZGVyIEhvZWxsZSwgc2llaHQgZXIgdWViZXJhbGwgdW0gaWhuCmhlcnVtIGdsZWlzc2VuZGVzIExpY2h0LiBOYWNoIGVpbmVyIFdlaWxlIGhhdHRlIGVyIHNpY2ggZGFyYW4KZ2V3b2VobnQgdW5kIHNjaGF1dGUsIHdvIGVyIHNpY2ggZGVubiBiZWZhbmQuIERhbm4gZGVyIFNjaG9jaywKZXIgaXN0IGFuIGVpbmVtIHd1bmRlcnNjaG9lbmVuIFNhbmRzdHJhbmQuIDIgQmFyYnVzaWdlIHd1bmRlcnNjaG9lbmUKTWFlZGNoZW4gaGFrZW4gc2ljaCBiZWkgaWhtIGVpbiwgZGllIGVpbmUgZWluZSBkaWNrZSBIYXZhbm5hLCBkaWUKYW5kZXJlIGVpbmVuIHNjaG9lbiBnZWt1ZWhsdGVuIERyaW5rIGluIGRlciBIYW5kLiBJbSBIaW50ZXJncnVuZAp3dW5kZXJzY2hvZW5lIEthcmliaWttdXNpaywgZGVyIER1ZnQgdm9uIGxlY2tlcmVtIFNwaWVzc2JyYXRlbgpkcmluZ3QgZWluIGluIHNlaW5lIE5hc2UuICJXbyBiaW4gaWNoIGhpZXI/Iiwgc2FndCBkZXIgRGFlbW9uCiJUamEsIGljaCB3dWVyZGUgS2FyaWJpayBkYXp1IHNhZ2VuLCBsYXNzIGVzIERpciBoaWVyIGJlaSB1bnMKZ3V0IGdlaGVuISBKZWRlciBXdW5zY2ggd2lyZCBEaXIgZXJmdWVsbHQgdW5kIHdlbm4gRHUgbWFsIGVpbmUgRnJhZ2UKaGFzdCAtIGljaCBiaW4gZnVlciBEaWNoIGRhLi4uIi4gRWNrZWhhcmR0IG5pbW10IGVzIGdlbGFzc2VuIHVuZApwZmVpZnQgc2ljaCBlcnN0bWFsIHNlaW5lbiBEcmluayByZWluIHVuZCBwYWZmdCBlcnN0bWFsIHNlaW5lIFppZ2FycmUuCgpad2lzY2hlbmR1cmNoIGhvZXJ0IGVyIGltbWVyIHNvIGxlaXNlcyB3ZWhrbGFnZW4uIEVyIGRlbmt0IHNpY2ggIldvIGtvbW10CmRhcyBkZW5uIG51ciBoZXI/IiB1bmQgc2llaHQgc2ljaCB1bS4gRGEgc2llaHQgZXIgZWluZSBncm9zc2UgSGFsbGUgYW0KU3RyYW5kIHVuZCBzaWVodCBzaWNoIGRpZSBTYWNoZSBnZW5hdWVyIGFuLiBEdXJjaCBkaWUgYWJnZWR1bmtlbHRlbgpTY2hlaWJlbiBrYW5uIGVyIGhpbmR1cmNoc2VoZW4gdW5kIHRyYXV0IHNlaW5lbiBBdWdlbiBuaWNodC4gVWViZXJhbGwgCkZldWVyLCBHbHV0LCBIaXR6ZSB1bmQgYW5nZWtldHRldGUgTWVuc2NoZW4gZGllIGF1c2dlcGVpdHNjaHQgd2VyZGVuLiAKRm9sdGVyIHVlYmVyYWxsLCB1bmQgZ2VxdWFlbHRlIFNlZWxlbiB6dSBzZWhlbi4gRGEga29tbXQgInNlaW4iIERhZW1vbiB1bSAKZGllIEVja2UgdW5kIG1laW50ICJIaSBFY2tlaGFyZHQsIHd1bmRlcnN0IERpY2ggd2VnZW4gZGVyIFR5cGVuIGRhIApkcmluPyIuIEVja2VoYXJkdCBuaWNrdC4gIkRhIGJyYXVjaHN0IER1IERpciBrZWluZSBTb3JnZW4genUgbWFjaGVuIC0gCmRhcyBzaW5kIEthdGhvbGlrZW4uIERJRSBXT0xMRU4gREFTIFNPISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJ1enotd29yZHMgKEdhbmRvLCAxNC4gTWFpIDIwMDMsIDEyOjA4OjM4KToKdG8gY29uc3VsdCcgaXN0IGRpZSBLb250cmFrdGlvbiBkZXIgVmVyYmEgJ3RvIGNvbicgYmV0cnVlZ2VuIHVuZCAndG8gaW5zdWx0Jwp2ZXJsZXR6ZW4KCkdhbmRvIC0gZ3JpbnNlbmRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpwb2xpemVpIChCdWRkaGEsIDE1LiBNYWkgMjAwMywgMTY6MzI6MjQpOgpFaW5lIEJsb25kaW5lIGZhZWhydCBiZXRydW5rZW4gbWl0IGRlbSBBdXRvIHVuZCB3aXJkIHZvbiBlaW5lbSBQb2xpemlzdGVuCmFuZ2VoYWx0ZW4uICJLYW5uIGljaCBtYWwgaWhyZW4gRnVlaHJlcnNjaGVpbiBzZWhlbj8hISIgLCBmYXVjaHQgZGVyIFBvbGl6aXN0CnN0cmVuZy4gIAoKRGllIEJsb25kaW5lIHRvdGFsIGJlbm9tbWVuOiAiRnVlaHJlcnNjaGVpbiAqaGlja3MqIHdhcyBpc3QgZGFzPyIuIERlcgpQb2xpemlzdCBldHdhcyB2ZXJ3dW5kZXJ0IHVuZCBtZWludDogIiBEYXMgaXN0IGRhcyBEaW5nIHdvIGlociBGb3RvIGRyaW5uZW4KaXN0ISIuIAoKRGllIEJsb25kaW5lIHVlYmVybGVndCB1bmQga3JhbXQgaW4gaWhyZXIgSGFuZHRhc2NoZSB1bmQgZmluZGV0IGlocmVuIGtsZWluZW4KU2NobWlua3NwaWVnZWwuIFNpZSBzaWVodCBzaWNoIHNlbGJzdCBkYXJpbiB1bmQgZGVua3QgZGFzcyBkYXMgZWluIEZvdG8gdm9uCmlociBpc3QsIGFsc28gc29taXQgaWhyIEZ1ZWhyZXJzY2hlaW4sIHVuZCBnaWJ0IGRlbiBTcGllZ2VsIGRlbSBQb2xpemlzdGVuLiAKCkRpZXNlciBuaW1tdCBkZW4gU3BpZWdlbCBndWNrdCBoaW5laW4gdW5kIG5hY2ggZWluZXIgV2VpbGUgc2FndCBlcjogIkphIHdlbm4KaWNoIGdld3Vzc3QgaGFldHRlIGRhcyBzaWUgYXVjaCBiZWkgZGVyIFBvbGl6ZWkgc2luZCBoYWV0dGUgaWNoIHNpZSBnYXIgbmljaHQKYW5nZWhhbHRlbiEiCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlZ2VsbiBkZXIgTWFlbm5lciAoTW9yZ290aCwgMTguIE1haSAyMDAzLCAxMDoxODowMik6CldpciBiZWtvbW1lbiBpbW1lciAiZGllIFJlZ2VsbiIgdm9uIGV1Y2ggRnJhdWVuIHVtIGRpZSBPaHJlbiBnZWhhdWVuLgpIaWVyIHNpbmQgZGllIFJlZ2VsbiB2b24gdW5zIE1hZW5uZXJuLiBEaWVzIHNpbmQgdW5zZXJlIFJlZ2VsbiEgQml0dGUgYmVhY2h0ZSwKZGFzcyBhbGxlIG1pdCAiMSIgbnVtbWVyaWVydCBzaW5kLiBBQlNJQ0hUTElDSCEKCjEuIExlcm5lIGVuZGxpY2gsIG1pdCBkZW0gS2xvc2l0eiB6dXJlY2h0IHp1IGtvbW1lbi4gRHUgYmlzdCBlaW4gZ3Jvc3NlcwpNYWVkY2hlbi4gV2VubiBkZXIgU2l0eiBvYmVuIGlzdCwga2xhcHAgaWhuIHJ1bnRlci4gV2lyIGJyYXVjaGVuIGlobiBvYmVuLCBpaHIKYnJhdWNodCBpaG4gdW50ZW4uIFdpciBiZXNjaHdlcmVuIHVucyBhdWNoIG5pY2h0LCB3ZW5uIGRlciBTaXR6IHVudGVuIGlzdC4KCjEuIEdlYnVydHMtLCBWYWxlbnRpbnMtIHVuZCBKYWhyZXN0YWdlIHNpbmQga2VpbmUgQXVmZ2FiZW4uIERhcyBzaW5kIG5pY2h0IGRpZQpUYWdlLCBhbiBkZW5lbiB3aXIgYmV3ZWlzZW4gbXVlc3NlbiwgZGFzcyB3aXIgc2Nob24gd2llZGVyIGRhcyBwZXJmZWt0ZQpHZXNjaGVuayBnZWZ1bmRlbiBoYWJlbi4KCjEuIE1hbmNobWFsIGRlbmtlbiB3aXIgbmljaHQgYW4gZXVjaC4gQWt6ZXB0aWVyIGRhcyEKCjEuIFdvY2hlbmVuZGUgPSBTcG9ydC4gRGFzIGlzdCB3aWUgVm9sbG1vbmQgb2RlciBkZXIgV2VjaHNlbCBkZXIgR2V6ZWl0ZW4uIER1Cmthbm5zdCBkYXMgZWluZmFjaCBuaWNodCBhZW5kZXJuLgoKMS5MYXNzIERpciBuaWNodCBkZWluZSBIYWFyZSBzY2huZWlkZW4uIE5pZW1hbHMhIExhbmdlcyBIYWFyIGlzdCBpbW1lcgphdHRyYWt0aXZlciBhbHMga3VyemVzLiBFaW4gR3J1bmQsIHdhcnVtIE1hZW5uZXIgbmljaHQgaGVpcmF0ZW4gd29sbGVuIGlzdCwKZGFzcyB2ZXJoZWlyYXRldGUgRnJhdWVuIGltbWVyIGlociBIYWFyIHNjaG5laWRlbiBsYXNzZW4uIFVuZCBkYW5uIGtvbW1lbiB3aXIKYXVzIGRlciBFaGUgbmljaHQgbWVociByYXVzLgoKMS4gRWlua2F1ZmVuIGlzdCBLRUlOIFNwb3J0ISBOZWluLCBkYXMgd2lyZCBhdWNoIG5pZW1hbHMgc28gc2VpbiEKCjEuIFdlaW5lbiBpc3QgRXJwcmVzc3VuZy4KCjEuIEZyYWcsIHdlbm4gZHUgd2FzIHdpbGxzdC4gTGFzcyB1bnMgZWluZXMga2xhciBzdGVsbGVuOiBBbnNwaWVsdW5nZW4KZnVua3Rpb25pZXJlbiBuaWNodCEgQW5kZXV0dW5nZW4ga2xhcHBlbiBuaWNodCEgSGlud2Vpc2UgcmVpY2hlbiBuaWNodCEgU2FnCmVpbmZhY2gsIHdhcyBkdSB3aWxsc3QhCgoxLiBXaXIga29lbm5lbiB1bnMga2VpbmUgRGF0ZW4gbWVya2VuLiBNYXJraWVyIEdlYnVydHN0YWdlIHVuZCBKYWhyZXN0YWdlIGF1ZgplaW5lbSBLYWxlbmRlciB1bmQgZXJpbm5lcmUgdW5zIGhhZXVmaWcgZGFyYW4sIEJFVk9SIGVzIHp1IHNwYWV0IGlzdC4KCjEuICJKYSIgdW5kICJOZWluIiBzaW5kIGFic29sdXQgYW5uZWhtYmFyZSBBbnR3b3J0ZW4gYXVmIGZhc3QgYWxsZSBGcmFnZW4uCgoxLiBEdSBrYW5uc3QgbWl0IHVucyBqZWRlcyBQcm9ibGVtIGJlc3ByZWNoZW4sIGRhcyBkdSBsb2VzZW4gd2lsbHN0LiBEYXMKa29lbm5lbiB3aXIuIFdlbm4gZHUgU3ltcGF0aGllYmVrdW5kdW5nZW4gYnJhdWNoc3QsIGdlaCB6dSBkZWluZW4gRnJldW5kaW5uZW4uCgoxLiBEaWUgS29wZnNjaG1lcnplbiwgZGllIGR1IHNlaXQgMTcgTW9uYXRlbiBoYXN0LCBzaW5kIGVpbiBQcm9ibGVtLiBHZWggenVtCkFyenQuCgoxLiBBbGxlcywgd2FzIHdpciB2b3IgNiBNb25hdGVuIGdlc2FndCBoYWJlbiwga2FubnN0IGR1IG5pY2h0IG1laHIgYWxzCkFyZ3VtZW50IGhlcmFuemllaGVuLiBBbGxlIHVuc2VyZSBLb21tZW50YXJlIHZlcmxpZXJlbiBqZWdsaWNoZSBHdWVsdGlna2VpdApuYWNoIDcgVGFnZW4uCgoxLiBXZW5uIGR1IGdsYXVic3QsIGR1IHNlaXN0IGRpY2ssIGJpc3QgZHUgZXMgd2FocnNjaGVpbmxpY2ggYXVjaC4gRnJhZyB1bnMKbmljaHQgZGFuYWNoLiBXaXIgd2VyZGVuIGRpciBkYXJhdWYga2VpbmUgQW50d29ydCBnZWJlbi4KCjEuIFdlbm4gd2lyIGV0d2FzIGdlc2FndCBoYWJlbiwgZGFzIG1hbiBhdWYgendlaSBBcnRlbiBpbnRlcnByZXRpZXJlbiBrYW5uLAp1bmQgZWluZSBBcnQgZGF2b24gbWFjaHQgZGljaCB0cmF1cmlnIG9kZXIgYm9lc2UsIGRhbm4gbWVpbnRlbiB3aXIgZGllIGFuZGVyZS4KCjEuIExhc3N0IHVucyBnYWZmZW4uIFdpciB3ZXJkZW4gc293aWVzbyBoaW5zY2hhdWVuLiBEYXMgbGllZ3QgaW4gdW5zZXJlbgpHZW5lbi4KCjEuIER1IGthbm5zdCB1bnMgZW50d2VkZXIgYml0dGVuIGV0d2FzIHp1IHR1biBvZGVyIHVucyBzYWdlbiwgd2llIGR1IGVzIGdlcm5lCmhhYmVuIG1vZWNodGVzdCwgYWJlciBiaXR0ZSBuaWNodCBiZWlkZXMuIFdlbm4gZHUgc2Nob24gd2Vpc3N0LCB3aWUgbWFuIGVzIGFtCmJlc3RlbiBtYWNodCwgZGFubiBtYWNoIGVzIGVpbmZhY2ggc2VsYnN0LgoKMS4gV2VubiBlcyBpcmdlbmR3aWUgZ2VodCwgc2FnIGRhcywgd2FzIGR1IHp1IHNhZ2VuIGhhc3QgLi4uIGJpdHRlIGluIGRlbgpXZXJiZXBhdXNlbi4KCjEuIENocmlzdG9waGVyIEtvbHVtYnVzIG11c3N0ZSBuaWNodCBuYWNoIGRlbSBXZWcgZnJhZ2VuLiBXaXIgYXVjaCBuaWNodC4KCjEuIFVuc2VyZSBCZXppZWh1bmcgd2lyZCBuaWUgbWVociBzbyBzZWluLCB3aWUgaW4gZGVuIGVyc3RlbiAyIE1vbmF0ZW4gbmFjaAp1bnNlcmVtIEtlbm5lbmxlcm5lbi4gRmluZGUgZGljaCBkYW1pdCBhYi4gVW5kIGJlc2Nod2VyZSBkaWNoIG5pY2h0IGltbWVyCmRhcnVlYmVyIGJlaSBkZWluZW4gRnJldW5kaW5uZW4uCgoxLiBNYWVubmVyIGtvZW5uZW4gTlVSIDE2IEZhcmJlbiBzZWhlbi4gRGFzIGlzdCB3aWUgYmVpIFdpbmRvd3MgaW0KYWJnZXNpY2hlcnRlbiBNb2R1cy4gUGZpcnNpY2gsIHp1bSBCZWlzcGllbCwgaXN0IGVpbmUgRnJ1Y2h0IHVuZCBrZWluZSBGYXJiZS4KV29oZXIgc29sbGVuIHdpciB3aXNzZW4sIHdhcyAibWFsdmUiIGlzdC4KCjEuIFdlbm4gZXR3YXMganVja3QsIHdpcmQgZ2VrcmF0enQuIFdpciB0dW4gZGFzIGVpbmZhY2ggc28uCgoxLiBXaXIgc2luZCBrZWluZSBHZWRhbmtlbmxlc2VyIHVuZCB3ZXJkZW4gZXMgYXVjaCBuaWUgd2VyZGVuLiBVbnNlcmUKVW5mYWVoaWdrZWl0LCBHZWRhbmtlbiB6dSBsZXNlbiwgaXN0IGtlaW4gQW56ZWljaGVuIGRhZnVlciwgZGFzcyBkdSB1bnMgbmljaHRzCmJlZGV1dGVzdC4KCjEuIFdlbm4gd2lyIGRpY2ggZnJhZ2VuLCB3YXMgbG9zIGlzdCwgdW5kIGR1IGFudHdvcnRlc3Q6ICJOaWNodHMiLCBkYW5uIHdlcmRlbgp3aXIgdW5zIHNvIHZlcmhhbHRlbiwgYWxzIHdlbm4gbmljaHRzIGxvcyB3YWVyZS4gV2lyIHdpc3NlbiwgZGFzcyBkdSBsdWVnc3QsCmFiZXIgZXMgaXN0IGRlbiBnYW56ZW4gYWVyZ2VyIGVpbmZhY2ggbmljaHQgd2VydC4KCjEuIFdlbm4gZHUgZWluZSBGcmFnZSBzdGVsbHN0LCBhdWYgZGllIGR1IGtlaW5lIEFudHdvcnQgYnJhdWNoc3QsIGRhbm4gZXJ3YXJ0ZQplaW5lIEFudHdvcnQsIGRpZSBkdSBuaWNodCBob2VyZW4gd2lsbHN0LgoKMS4gV2VubiB3aXIgaXJnZW5kd28gaGluZ2VoZW4sIGlzdCBhbGxlcywgd2FzIGR1IHRyYWdlbiB3aWxsc3QsIHNjaG9lbi4gR2FuegplaHJsaWNoIQoKMS4gRnJhZyB1bnMgbmljaHQsIHdhcyB3aXIgZGVua2VuLiBBdXNzZXIsIHdlbm4gZHUgdWViZXIgQmF1Y2huYWJlbHBpZXJjaW5ncywKQWJzZWl0cyBvZGVyIGRpZSBWaWVyZXItQWJ3ZWhya2V0dGUgZGlza3V0aWVyZW4gbW9lY2h0ZXN0LgoKMS4gRHUgaGFzdCBnZW51ZWdlbmQgS2xlaWRlci4KCjEuIER1IGhhc3QgenUgdmllbGUgU2NodWhlLgoKMS4gR2FueiBlaHJsaWNoLCBkdSBoYXN0IHdpcmtsaWNoIHp1IHZpZWxlIFNjaHVoZS4KCjEuIEVzIGlzdCB3ZWRlciBpbiBkZWluZW0gbm9jaCBpbiB1bnNlcmVtIEludGVyZXNzZSwgd2VubiB3aXIgenVzYW1tZW4gVGVzdHMKbG9lc2VuLiBFZ2FsLCB3ZWxjaGUgVGVzdHMuCgoxLiBCaWVyIGlzdCBmdWVyIHVucyBzbyBzcGFubmVuZCB3aWUgZnVlciBldWNoIEhhbmR0YXNjaGVuLgoKMS4gSWNoIGJpbiBpbiBGb3JtLiBSdW5kIGlzdCBhdWNoIGVpbmUuLi4KCjEuIERhbmtlLCBkYXNzIGR1IGRpZXMgaGllciBnZWxlc2VuIGhhc3QuIEljaCB3ZWlzcywgaWNoIHdlaXNzLCBpY2ggd2VyZGUKaGV1dGUgTmFjaHQgYXVmIGRlbSBTb2ZhIHNjaGxhZmVuLiBBYmVyIGhhc3QgZHUgZ2V3dXNzdCwgZGFzcyB3aXIgZGFzIHNvZ2FyCm1vZWdlbj8gRGFzIGlzdCBmYXN0IHNvIHdpZSB6ZWx0ZW4uCgoKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmVnZWxuIGRlciBNYWVubmVyIChEYXJrbG9yLCAxOS4gTWFpIDIwMDMsIDE4OjU4OjI4KToKfiMhIHJuPU1vcmdvdGggcnQ9MTA1MzI0NTg4MiByZz13aXR6ZQp+IyEgdGlkPTEwNTMyNDU4ODIKSGV5LCBndXQgZHVyY2hkYWNodCEgLSBTY2hyZWlicyBhbHMgQnVjaCwgc2VuZHMgYW4gbmVuIFZlcmxhZyB1bmQgdmllbGxlaWNodAp3aXJkcyB2ZXJvZWZmZW50bGljaHQgKGljaCBnbGF1YiBFaWNoYm9ybiB3YWVyZSBlaW5lIGd1dGUgV2FobCkgYXVzc2VyIGRpZQpFcmtlbm50bmlzc2Ugc3RhbW1lbiBzY2hvbiBhdXMgZWluZW0uLi4gKmcqIAoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ2hpcnVyZ2llIChEZWVwYmx1ZSwgMTkuIE1haSAyMDAzLCAxOTo1ODoxNCk6CkJlaSBlaW5lbSBLb25ncmVzcyBmdWVyIE1pa3JvY2hpcnVyZ2llIHRyZWZmZW4gc2ljaCBlaW4gYW1lcmlrYW5pc2NoZXIsCmVpbiBqYXBhbmlzY2hlciB1bmQgZWluIG9lc3RlcnJlaWNoaXNjaGVyIEFyenQuCgpOYWNoIGRlbSBmb3JtZWxsZW4gVGVpbApzZWhlbiBzaWNoIGRpZSBkcmVpIGFuIGRlciBIb3RlbGJhciB3aWVkZXIgdW5kIGJlZ2lubmVuIHNpY2ggbmFjaAplaW5pZ2VuIERyaW5rcyBpaHJlIGdyb2Vzc3RlbiBNZWlzdGVyc3R1ZWNrZSB6dSBlcnphZWhsZW4uCiJJbiBlaW5lciBBdXRvZmFicmlrIHdhciBlaW4gQXJiZWl0ZXIgaW4gZGllIEJsZWNocHJlc3NlIGdlcmF0ZW4iLApwcmFobHQgZGVyIEFtZXJpa2FuZXIuICJBbGxlcywgd2FzIHZvbiBpaG0gdWVicmlnbGllYiwgd2FyIHNlaW4ga2xlaW5lcgpGaW5nZXIuIEFsc28gbmFobSBpY2ggZGVuIEZpbmdlciwga29uc3RydWllcnRlIGVpbmUgbmV1ZSBIYW5kLCBlaW5lbgpuZXVlbiBBcm0sIFJ1bXBmLCBLb3BmLCBCZWluZSB1bmQgc28gd2VpdGVyLiBEZXIgQXJiZWl0ZXIsIGRlciBkYWJlaQpyYXVza2FtLCB3YXIgc28gbGVpc3R1bmdzZmFlaGlnLCBkYXNzIGVyIDUwIEtvbGxlZ2VuIGFyYmVpdHNsb3MgbWFjaHRlLiIKIklzdCBqYSBnYXIgbmljaHRzIiwga29udGVydCBkZXIgSmFwYW5lciwgInZvcmlnZW4gTW9uYXQgYmVpIGVpbmVtClVuZmFsbCBpbiBlaW5lbSBLZXJua3JhZnR3ZXJrIHZlcnVuZ2x1ZWNrdGUgZWluIGp1bmdlciBNYW5uLiBEYXMgZWluemlnZSwKd2FzIHdpciBub2NoIGZpbmRlbiBrb25udGVuLCB3YXIgZWluIEhhYXIuIEFsc28gbmFobSBpY2ggZGFzIEhhYXIsCmtvbnN0cnVpZXJ0ZSBlaW5lbiBuZXVlbiBLb3BmLCBlaW4gbmV1ZXMgR2VoaXJuIHVuZCBlaW5lbiBrb21wbGV0dGVuCktvZXJwZXIuIEpldHp0IGlzdCBkZXIganVuZ2UgTWFubiBzbyBlZmZpemllbnQsIGRhc3MgZXIgNTAwIGFuZGVyZQphcmJlaXRzbG9zIGdlbWFjaHQgaGF0LiIKCiJEYXMgbmVubnQgaWhyIExlaXN0dW5nPyIgZXJlaWZlcnQgc2ljaCBkZXIgb2VzdGVycmVpY2hpc2NoZSBDaGlydXJnLgoiVW5sYWVuZ3N0IGdpbmcgaWNoIHVlYmVyIGRpZSBTdHJhc3NlIHVuZCByb2NoIGVpbmVuIEZ1cnouIEljaCBwYWNrdGUgZGVuCkZ1cnogZWluLCBicmFjaHRlIGlobiBpbiBtZWluZSBQcmF4aXMuIERvcnQgd2lja2VsdGUgaWNoIGVpbmVuIEhpbnRlcm4KZGFydW0gdW5kIGtvbnN0cnVpZXJ0ZSBlaW5lbiBrb21wbGV0dGVuIEtvZXJwZXIgbWl0c2FtdCBLb3BmIHVuZCBHZWhpcm4uCkRlciBNYW5uIGhlaXNzdCBqZXR6dCBXb2xmZ2FuZyBTY2h1ZXNzZWwgdW5kIGlzdCBzbyBmYWVoaWcsIGRhc3MgZXIgNTAwLjAwMAphcmJlaXRzbG9zIGdlbWFjaHQgaGF0LiIKKGF1cyBkLnQuaikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDaGlydXJnaWUgKEdub21lLCAxOS4gTWFpIDIwMDMsIDE5OjU5OjM4KToKfiMhIHJuPURlZXBibHVlIHJ0PTEwNTMzNjcwOTQgcmc9d2l0emUKfiMhIHRpZD0xMDUzMzY3MDk0CmFoYS4gd2VyIGlzdCB3b2xmZ2FuZyBzY2h1ZXNzZWw/IG9kZXIgaXN0IGRhcyBuZW4gaW5zaWRlcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2hpcnVyZ2llIChFbGl6YWJldGgsIDE5LiBNYWkgMjAwMywgMjA6MDA6MTApOgp+IyEgcm49R25vbWUgcnQ9MTA1MzM2NzE3OCByZz13aXR6ZQp+IyEgdGlkPTEwNTMzNjcwOTQKb3VjaC4gc2VociBvdWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBDaGlydXJnaWUgKERlZXBibHVlLCAxOS4gTWFpIDIwMDMsIDIwOjAwOjE4KToKfiMhIHJuPUdub21lIHJ0PTEwNTMzNjcxNzggcmc9d2l0emUKfiMhIHRpZD0xMDUzMzY3MDk0Ck9lc3RlcnJlaWNoaXNjaGVyIEJ1bmRlc2thbnpsZXIgLSBkZXIgbWl0IGRlbiB1bHRyYXJlY2h0ZW4gcGFrdGllcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2hpcnVyZ2llIChBbWFyeWxsaXMsIDE5LiBNYWkgMjAwMywgMjA6MDE6MTMpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTA1MzM2NzA5NCByZz13aXR6ZQp+IyEgdGlkPTEwNTMzNjcwOTQKQWxzbyBpY2gga2VubiBkZW4gamEgbWl0IEcuIFNjaHJvZWRlciAtIG51ciBkYXNzIGRlciBsZWlkZXIgbmljaHQgbnVyIDUwMC4wMDAsCnNvbmRlcm4gZWluIHBhYXIgTWlsbGlvZW5jaGVuIGF1ZiBkZW0gR2V3aXNzZW4gaGF0LgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQ2hpcnVyZ2llIChHbm9tZSwgMTkuIE1haSAyMDAzLCAyMDowMToxNSk6Cn4jISBybj1EZWVwYmx1ZSBydD0xMDUzMzY3MjE4IHJnPXdpdHplCn4jISB0aWQ9MTA1MzM2NzA5NApkYSBrYW5uIG1hbiBtYWwgc2VoZW4sIHdpZSBzZWhyIHdpciBkaWUgb2VzaXMgc2VpdCBkZW0gaGFpZGVyIGlzb2xpZXJ0CmhhYmVuLiBuaWNodCBtYWwgbWVociBkZXJlbiBCSyBrZW5udCBtYW4gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQ2hpcnVyZ2llIChBbWF6b3JhLCAyMC4gTWFpIDIwMDMsIDEzOjIyOjE2KToKfiMhIHJuPUdub21lIHJ0PTEwNTMzNjcxNzggcmc9d2l0emUKfiMhIHRpZD0xMDUzMzY3MDk0CndvbGZnYW5nIHNjaHVlc3NlbCBpc3QgZGVyIGJ1bmRlc2thbnpsZXIgdm9uIG9lc3RlcnJlaWNoLiBzY2hsaW1tZXIgYWxzIGRlcgpoYWlkZXIgd2VpbCBkZW0gc2NodWVzc2VsIHZvciBsYXV0ZXIgbWFjaHRnZWlsaGVpdCBuaXggenUgYmxvZWQgaXN0LgpkZW4gd2l0eiBmYW5kIGljaCB6aWVtbGljaCBsdXN0aWcgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IENoaXJ1cmdpZSAoTWFuZHJhZ29uLCAyMC4gTWFpIDIwMDMsIDEzOjI0OjQ3KToKfiMhIHJuPUFtYXpvcmEgcnQ9MTA1MzQyOTczNiByZz13aXR6ZQp+IyEgdGlkPTEwNTMzNjcwOTQKTmFqYS4gRGEgc2ljaCByb3QgdW5kIGdydWVuIGVpbmVyIEtvYWxpdGlvbiB2ZXJ3ZWlnZXJ0IGhhYmVuLCB3YXMgc29sbHRlIGVyCm1hY2hlbj8gV2FlcmUgRGlyIG5lIE1pbmRlcmhlaXRzcmVnaWVydW5nIGxpZWJlciBnZXdlc2VuPyBNZWhyIGFscyA1MCUgZGVyCldhZWhsZXIgd29sbHRlbiBhdWYgamVkZW4gRmFsbCBrZWluIFJvdC1HcnVlbi4gRGFzIHNvbGx0ZSBtYW4genVtaW5kZXN0IG5pY2h0CmFscyBTY2h1ZXNzZWxzIGZlaGxlciBkYXJzdGVsbGVuIC4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpib3JnIChEZWVwYmx1ZSwgMjAuIE1haSAyMDAzLCAyMjozNjoyOSk6Ck9SSUdJTkFMCgpXZSBhcmUgQm9yZy4gUmVzaXN0YW5jZSBpcyBmdXRpbGUuCgoKCkRFVVRTQ0hMQU5ECgpCcmVtZW46IFdpciBzaW5kIEJvb2NoLCBXaWRlcnN0YW5kIGtvbW10IG5pY2ggaW5uZSBUdWVkZGUhCgpTYWNoc2VuIDE6IFd1ZXIgc2luIGRlIEJvcmNoLCBXdWVkZXJzdGFuZGQgaXNzIHp3ZWNobG91cyEKClNhY2hzZW4gMjogTWllciBzaW4gZGUgQm9yY2gsIFdpZGRlcnN0YW5kIGlzcyB6d2VjaGxvb2hzICEKClNhY2hzZW4gMzogRUhtLCBtaXIgc2luIGRlIEJvcnNjaCwgdW4gd2llc2NoZXJzY2h0YW5kIGthbm5zdGUgdm9sbAp2ZXJnZXNjaGVuLCB1biBqZXRzY2h0IHdhZW4gbWlyIGRpc2NoIGFzcy4uIGFzcy4uIGFzcy4uLiAKZWhtIG1pdCB1bnMgenNhbW1lbm1hZWhyZW4uCgpCYXllcm46IE1pciBzYW5zLCBkaWUgQm9yZy4gV2lkZXJzdGFuZCBrb2VubnRzIGdsZWkgdmVyZ2Vzc24hCgpQbGF0dGRldXRzY2g6IFBhc3MgbWEgb3AgbWllbiBEanVuZywgd2Ugc3VlbiBkZSBCb2FnLiBXZSB3ZWVydCBhbGwgZGluCkthcmFrdGVyaXN0aWdnZW4gYmkgdW5zIHRvdHJla2tlbi4gV2VlcnN0YW5kIGlzIHR3ZWNobG90IQoKQmVybGluOiBXaXIgc2luZCBhbGxldCBCb3JnLiBVbmQgRHUgb29jaCBnbGVpY2guIERlaW4gV2lkYXN0YW5kIGthbm5zdGUKdmFqZXNzZW4uIFdlaWwgd2EgbmFlbWxpY2ggRGVpbmUgamFuemVuIEVpamVuc2NoYWZ0ZW4gaW4gdW5zcmUgCm1pdCByaW50dW4gd2VyZGVuLiBTbyBzaWVodCBkZXQgYXVzIQoKUmhlaW5sYW5kOiBBbGxlIG1hIGF1ZnBhc3Nlbi4gV2lhLCB3aWEgc2luZCBkaWUgQm9hZywgbmUuIFVuZCBpY2ggc2FjaApkaXIgZGF0LiBNaXQgZGlyIGlzIGpldHp0IFNlbnNlLiBEZWluIGdhbnplbiBLYXJhLi4uIGthcmEuLi4sIAphZWggYWxzbyB3aWUgd2VybiBkaWNoIGJlaW4gdW5ucyByZWludHVuLCB3YS4gU28sIHVuZCB3ZW5uIGR1IAptZWluc3QsIGhpZXIgaXJnZW5kd2VsY2hlbiBLb2tvbG9yZXMgbWFjaG4genUgd29sbG4sIGRlbm4gCndlcmQgaWNoIG1hIGRlbm4gVmF0dGVyIGhvbGVuIHVuZCBkZW5uIGlzIGFiYmVyIER1c3RlciBpbiAKQm90dHJvcCwgbmUuCgpWb2d0bGFuZDogTWlyIHNlaSBCb3JjaCAhIEdlZ2dlbiB1bnMgZ2liYnMna2FubiBXaWRkZXJzdGFuZCAhIE1pciB3ZWhybgplaWNoIGFsbGUgYXNzaW1pbGllcm4hCgpSdWhyZGV1dHNjaDogSG9lbW1hIHp1LiBXaXIgc2lubiB2b21tIEJvcmdhIFZlcmFpbi4gRHUgd2lycyBnZXp6IGFpbmEKdm9uIHVuei4gS2FubnplIG5peCBnZWdlbiBtYWNoZW4sIHNvbm5zIGtyaXNzZSB3YXR0IGlubmUgCkZyZXNzZS4KClNjaHdhYmVuOiBHcmlhc3MgR29kZGxlLCBtZXIgc2VuZCBkJ0JvcmcsIElociBnYWViYXQgYW0gYmVzY2h0YSBnbGVpIHVmZiwKd2VpbCdzIGpvIGVoIG5peCBudXR6dCwgd2VubidyIEVpY2ggd2VhaHJhdC4gTWVyIGFzc2kuLi4gCmFzc2kuLi4gYXNzaS4uLiAtIGFoIHdhLCBrb21tYXQgaGVyLCBubyBzZWhhdCAnciB3YXMgYmFzc2llcnQhCgpTYXVlcmxhZW5kaXNjaDogU2FtbWEsIHdpciBzaW5kIGRlIEJvcmcsIGRvLiBXaWRlcnNhbmQgbGFlc3N0ZSBtYW4gc2Nob2VuCmJsZWliZW4sIGRvLiBEYSBrb2VubndlciBkaWNoIG5hZW1saWNoIG1hbiBiZXNzZXIgYXVmbmVobS4KCkhlc3Npc2NoOiBFaSwgbWVyIHNhbiBkZSBCb3JnLiBKbywgZGUgV2lkZXJzdGFuZCwgZGVzIHdlcmRlIGFiZXIgbml4LiBEYQprb2VtbWVyIGRpc2NoIG1hbiBydWlnIGRhenVuZWhtLgoKTm9yZGhlc3Npc2NoOiBNYWVoIHNpbm4gQm9jaC4gV2FlaHJlbiBnaWxkZXQgbml0LiBIYWUgd2lkZCBhbHMgenVgcwp1ZmZnZW5vbW1lLgoKClJVTUFlTklFTgoKU2llYmVuYnVlcmdlbjogTWVyIHNlbiBkZSBCb3JjaC4gV2VkZGVyc3RvbmQgZXNzIHp3ZWNobG9vcy4KCgpTQ0hXRUlaCgpPcmlnaW5hbAoobWl0IFNjaHdlaXplciBBa3plbnQpOiBXZSBhcmUgQm9yZy4gUmVzaXNjaHRhbnogaXNjaHQgZmp1dGFpbC4KCkJlcm46IE1pciBzeSBkJ0JvcmcuIFd5ZGVyc3RhbmcgaXNjaCBnYWVuZyB6d2FlY2tsb3MuIERpaXIgd2FlcmRlZAphdWV0d2FlZ2UgYXNzaW1pbGllcnQgd2FlcmRlLgoKQmFzZWw6IE1paWNoIHNpbiBkJ0JvY2hnLiBXaWlkY2hzdGFuZCBpc2NoIHp3YWVnZ2xvcywgRHUgd2lpY2hzY2gKYXNzaW1pbGllY2h0LgoKCk9lU1RFUlJFSUNICgpLYWVybnRlbjogV29obGwsIG1pYXIgc2VpbnMgbGVpIGRpZSBCb29nLiBXZXVsbCBXaWVkYXNjaHRvbmQsIGRlcyBpcyBsZWkKbml4IGd1YXRzLiBNaXIgd2VybmFuIGVpY2ggbGVpIGFzaW1pbGlhcm4gdHVhbi4KCkJ1cmdlbmxhbmQ6IE1pYSBzYW4gZGllIEJvYWcuIFdpZGFzdGF1bmQga2ludHMgdmFnZXNzbi4KCldpZW4gKHByb2xldGFyaXNjaCk6IE1pciBzYW4gZGUgQm9yZy4gRWljaGFuIFdpZGFzdGF1bmQga2VubnRzIEVpY2gKaW5kIEhvYSBzY2htaWFuLgoKV2llbiAoYXJpc3Rva3JhdGlzY2gpOiBFbnRzY2h1bGRpZ2VuUyBzY2hvbiwgd2VubiB3aXIgdW5zIGRpZQpJbXBlcnRpbmVueiBoZXJhdXNuZWhtZW4sIHVucyBzZWxic3Qgdm9yenVzdGVsbGVuOiBCb3JnLCAKaG9jaGVyZnJldXQsIElocmUgQmVrYW5udHNjaGFmdCB6dSBtYWNoZW4uIEhvZmZlbiBkb2NoLCBkYXNzUwpkaWUgQ29udGVuYW5jZSBiZXdhaHJlbiB3ZXJkZW4sIHdlbm4gd2lyIFNpZSBtaXQgSWhyZXIgCkFzc2ltaWxpZXJ1bmcgaW5rb21tb2RpZXJlbiBtdWVzc2VuIQoKV2llbiAoYW10bGljaCk6IFVuc2VyZSBJZGVudGl0YWV0IGVudG5laG1lbiBTaWUgYml0dGUgZGVtIGJlaWdlZnVlZ3RlbgpBdXN6dWcgYXVzIGRlbiBQZXJzb25lbnN0YW5kc2J1ZWNoZXJuLiBHZWdlbiBkaWUgQXNzaW1pbGllcnVuZyAKaW4gdW5zZXIgS29sbGVrdGl2IGlzdCBuYWNoIGRlbSBBQkdCICg2NjYsIEFicy4gMy9JVikga2VpbiAKUmVjaHRzbWl0dGVsIHp1bGFlc3NpZy4gV2lyIGJpdHRlbiB1bSBJaHIgVmVyc3RhZW5kbmlzLgoKCk5PUldFR0VOIFZpIGVyIEJvcmcuIERlcmUgdmlsIGJsaSBhc3NpbWlsZXJ0LiBBbGwgbW90c3RhbmQgZXIgZm9yZ2pldmVzLgooYXVzIGQudC5qKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWV0emdlcmVpIChBcG9sbG9uaWEsIDIyLiBNYWkgMjAwMywgMjM6MjE6NDQpOgpJcmdlbmR3aWUgbWFjaHQgZXMgbWlyIFNwYXNzIE1lbnNjaGVuIGluIG5vcm1hbGVuIEFsbHRhZ3MgU2l0dWF0aW9uZW4Kdm9lbGxpZyBhdXMgZGVtIEtvbnplcHQgenUgYnJpbmdlbi4KCldpZSB3aWVkZXIgbWFsIG5ldWxpY2ggaW4gbWVpbmVyIExpZWJsaW5nc21ldHpnZXJlaS4gSGludGVyIG1pciBlaW5lClNjaGxhbmdlLCB2b3IgbWlyIGVpbmUgZGllc2VyIG5ldHRlbiBGbGVpc2NoZXJlaWZhY2h2ZXJrYWV1ZmVyaW4uCgoiRWlubWFsIHZvbiBkZW0gU2Nod2FyendhZWxkZXIgU2NoaW5rZW4iCiIxMDAgR3JhbW0/IgoiSmEiCiJEYXJmJ3MgZXR3YXMgbWVociBzZWluPyIKIkphIGtsYXIiIChUeXBpc2NoLCBzbyBrYW5uIG1hbiBhdWNoIEtPSExFIG1hY2hlbikKIkRhcmYncyBzb25zdCBub2NoIHdhcyBzZWluPwoKSWNoIGZpbmRlIGRpZSBrbGFzc2lzY2hlIEJlc3RlbGxlcmVpIG9lZGUuIEFsc28gZGVua2UgaWNoLCBpY2ggYmluIG1hbApmbGV4aWJlbDoKCiJKYSwgYml0dGUgbm9jaCAxMTMgR3JhbW0gQXVmc2Nobml0dCIKVG90ZW5zdGlsbGUgaW4gZGVyIE1ldHpnZXJlaS4gV2FzIGlzdCBkYXMgZGVubiBmdWVyIGVpbmUgQmVzdGVsbHVuZz8KMTEzIEdyYW1tPwoKRGllIEZsZWlzY2hmYWNoa3JhZnQgc3RhcnJ0IG1pY2ggYW4sIGFscyBoYWV0dGUgaWNoIGdlc2FndCwgc2llIGxlZ3QKYmVpbSBXaWVnZW4gamVkZXMgTWFsIGlocmUgQnJ1ZXN0ZSBtaXQgYXVmIGRpZSBXYWFnZS4gU2llIHZlcnN1Y2h0IGVzIG1pdApkZW0gImljaCBoYWJlIG1pY2ggdmVyaG9lcnQiLVRyaWNrOgoKIjEwMCBHcmFtbSBBdWZzY2huaXR0LCBqYXdvbGwiLgpBYmVyIG5pY2h0IG1pdCBtaXIhCiJOZWluLCAxMTMgR3JhbW0iYml0dGUKIjExMyBHcmFtbT8iCiJTbyBpc3QgZXMiLgoKMTAwIEdyYW1tIGthbm4gc2llIHNjaGFldHplbiwgaGF0IHNpZSBqYSBkZW4gZ2FuemVuIFRhZy4gQWJlciAxMTMgR3JhbW0sCmRhcyBpc3QgZWluZSBIZXJhdXNmb3JkZXJ1bmcgLSB6dW1hbCwgd2VubiBkZXIgTGFkZW4gdm9sbCB3aWUgZWluIEtvZWxuZXIKaW0gS2FybmV2YWwgaXN0LgoKU2llIHBhY2t0IGRlbiBBdWZzY2huaXR0LCBsZWd0IGlobiBhdWYgZWluIFN0dWVjayBQYXBpZXIgdW5kIGF1ZiBkaWUKV2FhZ2UuCkRpZSBEaWdpdGFsYW56ZWlnZSBibGFldHRlcnQgc2ljaCBhdWYgMTE4IEdyYW1tLiBTaWUgaXN0IHNjaGxhdS4KIkRhcmYncyBlaW4gYmlzc2NoZW4gbWVociBzZWluPyIKSWNoIGxhZWNobGUsIHVtIHNpZSBpbiBTaWNoZXJoZWl0IHp1IHdpZWdlbiwgZGFubiBzYWdlIGljaDoKIk5laW4sIGdlbmF1IDExMyBHcmFtbSwgYml0dGUiCgpTaWUgYXRtZXQgc2Nod2VyLiBIaW50ZXIgbWlyIGltbWVyIG5vY2ggVG90ZW5zdGlsbGUuIEVpbiBIdXN0ZXIuIERpZQpnYW56ZSBNZXR6Z2VyZWkgYmVvYmFjaHRldCB3aWUgZXJzdGFycnQgZGVuIFNob3dkb3duIHp3aXNjaGVuCkZsZWlzY2hlcmVpZmFjaHZlcmthZXVmZXJ3b21hbiB1bmQgU3VwZXJhc3Nob2xlLiBJbiBaZWl0bHVwZSBzY2huZWlkZXQKc2llIGVpbiBXdXJzdHN0dWVja2NoZW4gdW5kIGxlZ3QgZGVuIEF1ZnNjaG5pdHQgYXVmIGRpZSBXYWFnZS4KCjExNCBHcmFtbS4KU2llIHdpbGwgZGllIFd1cnN0IGdlcmFkZSBlaW5wYWNrZW4uICJOZWluIiBzYWdlIGljaCAiSWNoIG1vZWNodGUgYml0dGUKZ2VuYXUgMTEzIEdyYW1tLiIKCkljaCBkcmVoZSBtaWNoIHp1IGRlbiBXYXJ0ZW5kZW4gdW0uCiJBZXJ6dGxpY2hlIEVtcGZlaGx1bmciIGxhZWNobGUgaWNoLiBFcyBudXR6dCBuaWNodHMuIEVpbmVyIGJhbGx0IGRpZSBGYWV1c3RlLgoKQWJlciBqZXR6dCBnaWJ0IGVzIGtlaW4gWnVydWVjayBtZWhyLgoKTWVpbmUgYmlzbGFuZyBmcmV1bmRsaWNoZSBCZWRpZW51bmcga25pcnNjaHQgbWl0IGRlbiBaYWVobmVuLApzY2huZWlkZXQgbm9jaCBlaW4gU3R1ZWNrY2hlbiB2b24gRUlORU0gV3Vyc3RzY2hlaWJjaGVuIGFiLCBsYWVzc3QgZXJuZXV0CmRpZSBXYWFnZSBlbnRzY2hlaWRlbi4KCldpZSBpbiBaZWl0bHVwZSBlcnNjaGVpbmVuIGRpZSBaYWhsZW4gdW5kIGJsZWliZW4gYmVpIGdlbmF1IDExMyBHcmFtbQpzdGVoZW4uCgpIaW50ZXIgbWlyIGF0bWVuIGRpZSBNZW5zY2hlbiB1bmQgYXVjaCBtZWluZSBGbGVpc2NoZXJlaWZhY2h2ZXJrYWV1ZmVyaW4KYXVmLgoKR2VzY2hhZmZ0LgoKRGFzIEEqKioqbG9jaCBpc3QgYmVmcmllZGlndC4KCiJKRVRaVCBkdWVyZmVuIFNpZSBlaW5wYWNrZW4iIGVya2xhZXJlIGljaCBnZW5lcm9lcywgaW0gQmV3dXNzdHNlaW4sIHNpZQpiZXNpZWd0IHp1IGhhYmVuLiBEaWUgZW1wb2VydCBtdXJtZWxuZGVuIFN0aW1tZW4gIlZvbGxpZGlvdCIKIktuaWVib2hyZXIiIHVuZCAiS25hbGxkZXBwIiBoaW50ZXIgbWlyIGlnbm9yaWVyZSBpY2guCgpJY2ggYmVrb21tZSBtZWluIEZsZWlzY2ggZ2VyYWRlIG5pY2h0IGRpcmVrdCBpbnMgR2VzaWNodCBnZXNjaG1pc3NlbiwKemFobGUgYW4gZGVyIEthc3NlIHVuZCBub2NoIHdhZWhyZW5kZGVzc2VuIGZyYWdlIGljaCBkaWUgQmVzaWVndGUKZnJldW5kbGljaDoKIldhcyBtYWNoZW4gU2llIGVpZ2VudGxpY2ggbWl0IGRlbiBhYmdlc2Nobml0dGVuZW4gSGFsYi0gdW5kClZpZXJ0ZWwtU2NoZWliZW4/IgoKIkRpZSB3ZXJmZSBpY2ggd2VnLCB3aWVzbz8iCgoiT2NoIiwgc2FnZSBpY2ggdmVyYmluZGxpY2gsICJiZXZvciBTaWUgZGllIHdlZ3NjaG1laXNzZW4sIGtvZW5uZW4gU2llCnNpZSBqYSBhdWNoIG1pciBnZWJlbi4uLiIKCkltIEtyYW5rZW5oYXVzIGhhdCBtYW4gbWlyIHNwYWV0ZXIgZXJ6YWVobHQsIHNpZSBoYWV0dGVuIGRyZWkgU3R1bmRlbgpnZWJyYXVjaHQsIHVtIG1pciBkaWUgS2FsYnNoYXhlIGF1cyBkZW4gUmlwcGVuIHp1IG9wZXJpZXJlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHVmZiAoTm9ubmUsIDIzLiBNYWkgMjAwMywgMDg6NDI6MzEpOgpLb21tdCBlaW4gTWFubiBpbiBlaW4gQm9yZGVsbCB1bmQgdmVybGFuZ3QgZWluZSBwZWNoc2Nod2FyemUKTmVnZXJpbiwgYWJlciBlaW5lIHdpcmtsaWNoIF9rb2hscGVjaHJhYmVuX3NjaHdhcnplLiBEaWUgUHVmZm11dHRlcgptZWludCwgZGFzcyBlcyBkYXMgZ2FlYmUsIGVyIHphaGx0IHVuZCBiZWtvbW10IGRpZSBaaW1tZXJudW1tZXIgZ2VuYW5udC4KRG9ydCBmaW5kZXQgZXIgdGF0c2FlY2hsaWNoIGVpbmUgcGVjaHNjaHdhcnplIEZyYXUgdm9yLiBTaWUgbXVzcyBzaWNoCmF1c3ppZWhlbiwgZGllIEJlaW5lIHNwcmVpemVuIHVuZCBidWVja2VuLiBEZXIgTWFubiBzaWVodCBzaWNoIGRhcyBhbiB1bmQKd2VuZGV0IHNpY2ggenVtIEdlaGVuLiAiV2llLCB3aWxsc3QgRHUgbmljaHQgZmlja2VuPyIgZnJhZ3QgZGllIE5lZ2VyaW4uCi0gIk5lZSwgbWVpbnQgZGVyIE1hbm4sICJpY2ggaGFiZSBtaXIgZnVlciBtZWluIEJhZCBzY2h3YXJ6ZSBGbGllc2VuCmF1c2dlc3VjaHQgdW5kIHdvbGx0ZSBudXIgbWFsIHNlaGVuLCB3aWUgd29obCByb3NhIEZ1Z2VuIGRhenUKYXVzc2VoZW4uLi4iCgpOb25uZSwga2FubnRlIGRlbiBub2NoIG5pY2h0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFB1ZmYgKFBob2JvcywgMjMuIE1haSAyMDAzLCAxOToxNToyMik6Cn4jISBybj1Ob25uZSBydD0xMDUzNjcyMTUxIHJnPXdpdHplCn4jISB0aWQ9MTA1MzY3MjE1MQpXaHkgaXMgYSBwZXJzb24gd2hvIHBsYXlzIHRoZSBwaWFubyBjYWxsZWQgYSBwaWFuaXN0LCBidXQgYSBwZXJzb24gCndobyBkcml2ZXMgYSByYWNlIGNhciBub3QgY2FsbGVkIGEgcmFjaXN0PwoKUGhvYm9zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFB1ZmYgKFBob2JvcywgMjMuIE1haSAyMDAzLCAxOToyMDo1Myk6Cn4jISBybj1QaG9ib3MgcnQ9MTA1MzcxMDEyMiByZz13aXR6ZQp+IyEgdGlkPTEwNTM2NzIxNTEKVW5kIHdvIGljaCBpY2ggZ3JhZCBkYWJlaSBiaW46CgpJZiBwZW9wbGUgZnJvbSBQb2xhbmQgYXJlIGNhbGxlZCAiUG9sZXMsIiB3aHkgYXJlbid0IHBlb3BsZSBmcm9tIEhvbGxhbmQKY2FsbGVkICJIb2xlcz8iCgpQaG9ib3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFB1ZmYgKE1hbmRyYWdvbiwgMjQuIE1haSAyMDAzLCAwMDowNDowOSk6Cn4jISBybj1QaG9ib3MgcnQ9MTA1MzcxMDQ1MyByZz13aXR6ZQp+IyEgdGlkPTEwNTM2NzIxNTEKV2VubiwgZGFubiBIb2xsZXMgOm8pCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkR1bW0gZ2VsYXVmZW4gLi4uLiAoVGVycnksIDI0LiBNYWkgMjAwMywgMTM6MzA6MDApOgpFaW5lIGFsdGUgRGFtZSBzaXR6dCBpbiBpaHJlbSBTY2hhdWtlbHN0dWhsIHVuZCBrcmF1bHQgaWhyZW4gS2F0ZXIuClBsb2V0emxpY2ggZXJzY2hlaW50IGVpbmUgRmVlIHVuZCB3aWxsIGRlciBGcmF1IGRyZWkgV3VlbnNjaGUgZXJmdWVsbGVuLgpEaWUgRnJhdSB1ZWJlcmxlZ3Qga3VyeiB1bmQgd2lsbCBkYW5uOgoxLiBFaW5lbiBnb2xkZW5lbiBTY2hhdWtlbHN0dWhsCjIuIEp1bmcgdW5kIHNjaG9lbiB6dSBzZWluCjMuIERhc3MgaWhyIEthdGVyIGVpbiBqdW5nZXIgU2Nob25saW5nIHdpcmQKCkRpZSBGZWUgZXJmdWVsbHQgYWxsZSBkcmVpIFd1ZW5zY2hlLgpEaWUgRnJhdSBpc3QgYmVnZWlzdGVydCB1bmQgendpbmNrZXJ0IGRlbSBodWVic2NoZW4gSnVlbmdsaW5nIHp1LCBkYXNzCnNpZSBtaXQgaWhtIGluIGRpZSBLaXN0ZSBodWVwZmVuIHdpbGwuCkRhIGdyaW5zdCBkZXIgTWFubiB1bmQgbWVpbnQ6Ck5hPyBKZXR6dCBiZXJldXN0IER1IGVzLCBtaWNoIGRhbWFscyBrYXN0cmllcnQgenUgaGFiZW4uCgpUZXJyeSB6aXRpZXJ0IFNXUjMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZ1bmt2ZXJrZWhyIChEZWVwYmx1ZSwgMjYuIE1haSAyMDAzLCAxOTo0NzowNCk6CkRpZXMgaXN0IGRpZSBBYnNjaHJpZnQgZWluZXMgRnVua2dlc3ByYWVjaHMsIGRhcyB0YXRzYWVjaGxpY2ggaW0gT2t0b2JlciAxOTk1Cnp3aXNjaGVuIGVpbmVtIFVTLU1hcmluZWZhaHJ6ZXVnIHVuZCBrYW5hZGlzY2hlbiBCZWhvZXJkZW4gdm9yIGRlciBLdWVzdGUKTmV1ZnVuZGxhbmRzIHN0YXR0Z2VmdW5kZW4gaGF0LiBFcyB3dXJkZSBhbSAxMC4xMC4xOTk1IHZvbSBDaGllZiBvZiBOYXZhbApPcGVyYXRpb25zIHZlcm9lZmZlbnRsaWNodC4KCkFtZXJpa2FuZXI6IEJpdHRlIGFlbmRlcm4gU2llIElocmVuIEt1cnMgdW0gMTUgR3JhZCBOb3JkZW4sIHVtIGVpbmUgS29sbGlzaW9uCnp1IHZlcm1laWRlbi4KCkthbmFkaWVyOiBJY2ggZW1wZmVobGUsIFNpZSBhZW5kZXJuIElIUkVOIEt1cnMgMTUgR3JhZCBuYWNoIFN1ZWRlbiwgdW0gZWluZQpLb2xsaXNpb24genUgdmVybWVpZGVuLgoKQW1lcmlrYW5lcjogRGllcyBpc3QgZGVyIEthcGl0YWVuIGVpbmVzIFNjaGlmZnMgZGVyIFVTLU1hcmluZS4gSWNoIHNhZ2Ugbm9jaAplaW5tYWw6IEFlbmRlcm4gU0lFIElIUkVOIEt1cnMuCgpLYW5hZGllcjogTmVpbi4gSWNoIHNhZ2Ugbm9jaCBlaW5tYWw6IFNJRSBhZW5kZXJuIElIUkVOIEt1cnMuCgpBbWVyaWthbmVyOiBESUVTIElTVCBERVIgRkxVR1pFVUdUUkFlR0VSICJVU1MgTElOQ09MTiIsIERBUyBaV0VJVEdST2VTU1RFClNDSElGRiBJTiBERVIgQVRMQU5USUtGTE9UVEUgREVSIFZFUkVJTklHVEVOIFNUQUFURU4uIFdJUiBXRVJERU4gVk9OIERSRUkKWkVSU1RPZVJFUk4sIERSRUkgS1JFVVpFUk4gVU5EIE1FSFJFUkVOIEhJTEZTU0NISUZGRU4gQkVHTEVJVEVULiBJQ0gKVkVSTEFOR0UsIERBU1MgU0lFIElIUkVOIEtVUlMgMTUgR1JBRCBOQUNIIE5PUkRFTiwgREFTIElTVCBFSU5TRlVlTkYgR1JBRApOQUNIIE5PUkRFTiwgQWVOREVSTiwgT0RFUiBFUyBXRVJERU4gR0VHRU5NQVNTTkFITUVOIEVSR1JJRkZFTiwgVU0gRElFClNJQ0hFUkhFSVQgRElFU0VTIFNDSElGRkVTIFpVIEdFV0FlSFJMRUlTVEVOLgoKS2FuYWRpZXI6IFdpciBzaW5kIGVpbiBMZXVjaHR0dXJtLiBTaWUgc2luZCBkcmFuLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1lY2hhbmlrZXItSHVtb3IgKERlZXBibHVlLCAyNi4gTWFpIDIwMDMsIDE5OjQ3OjMyKToKTmFjaCBqZWRlbSBGbHVnIGZ1ZWxsZW4gUGlsb3RlbiBlaW4gRm9ybXVsYXIgYXVzLCBhdWYgZGVtIHNpZSBkaWUgTWVjaGFuaWtlcgp1ZWJlciBQcm9ibGVtZSBpbmZvcm1pZXJlbiwgZGllIHdhaHJlbmQgZGVzIEZsdWdzIGF1ZmdldHJldGVuIHNpbmQgdW5kIGRpZQplaW5lIFJlcGFyYXR1ciBvZGVyIGVpbmUgS29ycmVrdHVyIGVyZm9yZGVybi4gCgpEaWUgTWVjaGFuaWtlciBpbmZvcm1pZXJlbiBpbSBHZWdlbnp1ZyBhdWYgZGVtIHVudGVyZW4gVGVpbCBkZXMgRm9ybXVsYXJzCmRpZSBQaWxvdGVuIGRhcnVlYmVyLCB3ZWxjaGUgTWFzc25haG1lbiBzaWUgamV3ZWlscyBlcmdyaWZmZW4gaGFiZW4sIGJldm9yIGRhcwpGbHVnemV1ZyB3aWVkZXIgc3RhcnRldC4gCgpNYW4ga2FubiBuaWNodCBiZWhhdXB0ZW4sIGRhc3MgZGFzIEJvZGVucGVyc29uYWwgb2RlciBkaWUgSW5nZW5pZXVyZSBoaWVyYmVpCmh1bW9ybG9zIHdhcmVuLiBIaWVyIGVpbmlnZSBCZXNjaHdlcmRlbiB1bmQgUHJvYmxlbWUsIGRpZSB0YXRzYWNobGljaCBzbyB2b24KUGlsb3RlbiBkZXIgRmx1Z2xpbmllIFFBTlRBUyBlaW5nZXJlaWNodCB3dXJkZW4uIAoKRGF6dSBkZXIgamV3ZWlsaWdlIEFudHdvcnQtS29tbWVudGFyIGRlciBNZWNoYW5pa2VyLiAKClAgPSBQcm9ibGVtLCBkYXMgdm9tIFBpbG90ZW4gYmVyaWNodGV0IHd1cmRlLiAKUyA9IERpZSBMb2VzdW5nLyBNYXNzbmFobWUgZGVzIEluZ2VuaWV1cnMvTWVjaGFuaWtlcnMuIAoKUDogQmVyZWlmdW5nIGlubmVuIGxpbmtzIG11c3MgZmFzdCBlcm5ldWVydCB3ZXJkZW4uClM6IEJlcmVpZnVuZyBpbm5lbiBsaW5rcyBmYXN0IGVybmV1ZXJ0LiAKClA6IFRlc3RmbHVnIE9LLCBMYW5kdW5nIG1pdCBBdXRvcGlsb3Qgc2VociBoYXJ0LgpTOiBMYW5kdW5nIG1pdCBBdXRvcGlsb3QgYmVpIGRpZXNlbSBGbHVnemV1Z3R5cCBuaWNodCBpbnN0YWxsaWVydC4gCgpQOiBJbSBDb2NrcGl0IGlzdCBpcmdlbmRldHdhcyBsb2NrZXIuClM6IFdpciBoYWJlbiBpbSBDb2NrcGl0IGlyZ2VuZGV0d2FzIHdpZWRlciBmZXN0IGdlbWFjaHQuIAoKUDogVG90ZSBLYWVmZXIgYXVmIGRlciBTY2hlaWJlLgpTOiBMZWJlbmRlIEthZWZlciBpbSBMaWVmZXJydWVja3N0YW5kLiAKClA6IERlciBBdXRvcGlsb3QgbGVpdGV0IHRyb3R6IEVpbnN0ZWxsdW5nIGF1ZiAiSG9laGUgaGFsdGVuIiBlaW5lbiBTaW5rZmx1Zwp2b24gMjAwIGZwbSBlaW4uClM6IFdpciBrb2VubmVuIGRpZXNlcyBQcm9ibGVtIGF1ZiBkZW0gQm9kZW4gbGVpZGVyIG5pY2h0IG5hY2h2b2xsemllaGVuLiAKClA6IEhpbndlaXMgYXVmIHVuZGljaHRlIFN0ZWxsZSBhbiBkZXIgcmVjaHRlbiBTZWl0ZS4KUzogSGlud2VpcyBlbnRmZXJudC4gCgpQOiBETUUgaXN0IHVuZ2xhdWJsaWNoIGxhdXQuClM6IERNRSBhdWYgZ2xhdWJ3dWVyZGlnZXJlIExhdXRzdGFya2UgZWluZ2VzdGVsbHQuIAoKUDogSUZGIGZ1bmt0aW9uaWVydCBuaWNodC4KUzogSUZGIGZ1bmt0aW9uaWVydCBuaWUsIHdlbm4gZXMgYXVzZ2VzY2hhbHRldCBpc3QuIAoKUDogVmVybXV0ZSBTcHJ1bmcgaW4gZGVyIFNjaGVpYmUuClM6IFZlcm11dGUgU2llIGhhYmVuIHJlY2h0LiAKClA6IEFudHJpZWIgMyBmZWhsdC4KUzogQW50cmllYiAzIG5hY2gga3VyemVyIFN1Y2hlIGFuIGRlciByZWNodGVuIFRyYWdmbGFjaGUgZ2VmdW5kZW4uIAoKUDogRmx1Z3pldWcgZmxpZWd0IGtvbWlzY2guClM6IEZsdWd6ZXVnIGVybWFobnQsIGVybnN0IHp1IHNlaW4gdW5kIGFuc3RhZW5kaWcgenUgZmxpZWdlbi4gCgpQOiBaaWVscmFkYXIgc3VtbXQuClM6IFppZWxyYWRhciBuZXUgcHJvZ3JhbW1pZXJ0LCBzbyBkYXNzIGVzIGpldHp0IGluIFdvcnRlbiBzcHJpY2h0LiAKClA6IE1hdXMgaW0gQ29ja3BpdC4KUzogS2F0emUgaW5zdGFsbGllcnQuIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWhybGljaGtlaXQgKERlZXBibHVlLCAyNi4gTWFpIDIwMDMsIDE5OjQ3OjU2KToKRWluIEdlc2NoYWVmdHNtYW5uIHNlbmRldCBlaW4gRmF4IGFuIHNlaW5lIEZyYXU6CgoiQW4gbWVpbmUgbGllYmUgRWhlZnJhdSwKRHUgdmVyc3RlaHN0IHNpY2hlcmxpY2gsIGRhc3MgaWNoIGdld2lzc2UgQmVkdWVyZm5pc3NlIGhhYmUsIGRpZSBEdSwgbnVuLCBkYQpEdSA1NCBKYWhyZSBhbHQgYmlzdCwgbmljaHQgbWVociBiZWZyaWVkaWdlbiBrYW5uc3QuCgpJY2ggYmluIHNlaHIgZ2x1ZWNrbGljaCBtaXQgRGlyIHVuZCBzY2hhZXR6ZSBEaWNoIGFscyBlaW5lIGd1dGUgRWhlZnJhdS4KRGVzaGFsYiBob2ZmZSBpY2gsIGRhc3MgRHUgZXMgbmljaHQgZmFsc2NoIHZlcnN0ZWhlbiB3aXJzdCwgd2VubiBEdSBuYWNoCmRpZXNlbSBGYXggd2lzc2VuIHdpcnN0LCBkYXNzIGljaCBtaXQgVmFuZXNzYSwgbWVpbmVyIDE4LWphZWhyaWdlbgpTZWtyZXRhZXJpbiwgaW0gSG90ZWwgQ29tZm9ydCBJbm4gc2VpbiB3ZXJkZS4gQWJlciBzZWkgbmljaHQgYmV1bnJ1aGlndC4gSWNoCndlcmRlIHZvciBNaXR0ZXJuYWNodCB3aWVkZXIgenVoYXVzZSBzZWluLiIKCkFscyBkZXIgTWFubiBuYWNoIEhhdXNlIGtvbW10IGZpbmRldCBlciBhdWYgZGVtIEVzc3ppbW1lcnRpc2NoIGZvbGdlbmRlbgpCcmllZjoKCiJNZWluIGxpZWJlciBFaGVtYW5uLAppY2ggaGFiZSBEZWluIEZheCBlcmhhbHRlbiB1bmQgZGFua2UgRGlyIHNlaHIgZnVlciBEZWluZSBFaHJsaWNoa2VpdC4KCkJlaSBkaWVzZXIgR2VsZWdlbmhlaXQgbW9lY2h0ZSBpY2ggRGljaCBkYXJhbiBlcmlubmVybiwgZGFzcyBEdSBtaXR0bGVyd2VpbGUKYXVjaCA1NCBKYWhyZSBhbHQgYmlzdC4gCgpHbGVpY2h6ZWl0aWcgbW9lY2h0ZSBpY2ggRGljaCBkYXJ1ZWJlciBpbmZvcm1pZXJlbiwgZGFzcywgd2FlaHJlbmQgRHUgZGllc2VuCkJyaWVmIGxpZXN0LCBpY2ggbWl0IE1pY2hlbCwgbWVpbmVtIFRlbm5pc2xlaHJlciwgZGVyIHdpZSBEZWluZSBTZWtyZXRhZXJpbgphdWNoIDE4IEphaHJlIGFsdCBpc3QsIGltIEhvdGVsIEZpZXN0YSBzZWluIHdlcmRlLgoKQWxzIGVyZm9sZ3JlaWNoZXIgR2VzY2hhZWZ0c21hbm4gdW5kIG1pdCBEZWluZW4gZXh6ZWxsZW50ZW4gS2VubnRuaXNzZW4gaW4KTWF0aGUsIHZlcnN0ZWhzdCBEdSBuYXR1ZXJsaWNoLCBkYXNzIHdpciBpbiBkZXIgZ2xlaWNoZW4gU2l0dWF0aW9uIHNpbmQuLi4KamVkb2NoIG1pdCBlaW5lbSBrbGVpbmVuIFVudGVyc2NoaWVkIDogJzE4IGdlaHQgb2VmdGVyIGluIDU0LCBhbHMgNTQgaW4KMTgnLi4uIFVuZCBkYXJ1bSwga29uc2VxdWVudGVyd2Vpc2UsIGJyYXVjaHN0IER1IHZvciBtb3JnZW4gZnJ1ZWggbmljaHQgbWl0Cm1pciB6dSByZWNobmVuIQoKRWluZW4gZGlja2VuIEt1c3Mgdm9uIERlaW5lciBGcmF1LCBkaWUgRGljaCB3aXJrbGljaCB2ZXJzdGVodC4uLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCYWhuYnJlY2hlbmQgKEFudGhlYSwgMjguIE1haSAyMDAzLCAxMDoxMDo0NCk6CkRlciBNZWRpemluc3R1ZGVudCBpc3QgbmljaHQgZ2VyYWRlIGZsZWlzc2lnLiBKZXR6dCBoYXQgZXIgc2ljaCBhdWNoIG5vY2ggZWluCkJlaW4gZ2Vicm9jaGVuIHVuZCBibGVpYnQgendlaSBNb25hdGUgZGVuIFZvcmxlc3VuZ2VuIGZlcm4uIEFscyBlcgp3aWVkZXJrb21tdCwgZnJhZ3QgaWhuIGRlciBQcm9mZXNzb3IgdGVpbG5haG1zdm9sbDogIk5hLCB3aWUgZ2VodCdzIElobmVuCmRlbm4/IgoiT2giLCBlcndpZGVydCBkZXIgU3R1ZGVudCwgImljaCBsYXVmZSBiZXNzZXIgYWxzIGplIHp1dm9yISIKIkd1dCIsIG1laW50IGRlciBQcm9mZXNzb3IsICJqZXR6dCBmZWhsdCBJaG5lbiBudXIgbm9jaCBlaW4gYW5zdGFlbmRpZ2VyClNjaGFlZGVsYnJ1Y2guLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbiBTY2hlaWJlbj8gKEFudGhlYSwgMjguIE1haSAyMDAzLCAxMDoxMzoxOSk6ClByb2YuIERyLiBOb2x0ZSwgTWF0aGVtYXRpa3Byb2YuIFRIIERhcm1zdGFkdDoKIklycnR1ZW1saWNoZXJ3ZWlzZSBuYWhtIG1hbiBsYW5nZSBKYWhyZSBhbiwgZGllIEVyZGUgc2VpIGVpbmUgU2NoZWliZS4gSGV1dGUKd2Vpc3MgbWFuIGdhbnogZ2VuYXUsIGRhc3Mgc2llIGVpbiBLcmVpcyBpc3QuLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSW4gU2NoZWliZW4/IChNYW5kcmFnb24sIDI4LiBNYWkgMjAwMywgMTA6MTU6NDApOgp+IyEgcm49QW50aGVhIHJ0PTEwNTQxMDk1OTkgcmc9d2l0emUKfiMhIHRpZD0xMDU0MTA5NTk5ClNvc28uIERlciBOb2x0ZSBpc3QgYWJlciBhdWNoIGZ1ZXIgc2VpbmUgU2NoZXJ6ZSBkaWVzYmV6dWVnbGljaCBiZWthbm50Cmdld2VzZW4uCgpNYSogKHN0dWRpZXJ0IChub2NoKSBpbiBEYXJtc3RhZHQpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUHVmZiAoRGhvamFrdCwgMjkuIE1haSAyMDAzLCAwMjoxNDo0Mik6Cn4jISBybj1Ob25uZSBydD0xMDUzNjcyMTUxIHJnPXdpdHplCn4jISB0aWQ9MTA1MzY3MjE1MQpQYXNzZW5kIHp1bSBUaGVtYSBlaW5lciB2b24gZWluZXIgYWx0ZW4gQW1pZ2EtRGlzazoKClRoZXJlIHdhcyBhIHlvdW5nIGdpcmwgb2YgS2luc2FsZQpXaG8gb2ZmZXJlZCBoZXIgYm9keSBmb3Igc2FsZSwKVG8gYmUga2luZCB0byB0aGUgYmxpbmQKU2hlIGVuZ3JhdmVkIGhlciBiZWhpbmQKV2l0aCBkZXRhaWxlZCBpbnN0cnVjdGlvbnMgaW4gYnJhaWxsZS4KCktoaWRhci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUHVmZiAoR3JpbW1ib3JuLCAyOS4gTWFpIDIwMDMsIDA3OjQ2OjA4KToKfiMhIHJuPURob2pha3QgcnQ9MTA1NDE2NzI4MiByZz13aXR6ZQp+IyEgdGlkPTEwNTM2NzIxNTEKRGVyIGlzdCBhYmVyIGFlbHRlciBhbHMgamVkZSBBbWlnYWRpc2suLi4KClRoZXJlIHdhcyBhIHlvdW5nIGxhZHkgZnJvbSBIYWxsCndobyBkaWVkIGluIHRoZSBzcHJpbmcgaW4gdGhlIGZhbGwKaXQgd291bGQgaGF2ZSBiZWVuIGEgc2FkIHRoaW5nCmlmIHNoZSBkaWVkIGluIHRoZSBzcHJpbmcKYnV0IHNoZSBkaWRuJ3QgLSBzaGUgZGllZCBpbiB0aGUgZmFsbC4KCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUHVmZiAoUGhvYm9zLCAyOS4gTWFpIDIwMDMsIDEyOjE5OjEwKToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMDU0MTg3MTY4IHJnPXdpdHplCn4jISB0aWQ9MTA1MzY3MjE1MQpUaGVyZSB3YXMgYSB5b3VuZyBsYWR5IGZyb20gUmlnYQp3aG8gcm9kZSB3aXRoIGEgc21pbGUgb24gYSB0aWdlcgp0aGV5IGNhbWUgYmFjayBmcm9tIHRoZSByaWRlCndpdGggdGhlIGxhZHkgaW5zaWRlCmFuZCB0aGUgc21pbGUgb24gdGhlIGZhY2Ugb2YgdGhlIHRpZ2VyLgoKUGhvYm9zCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBQdWZmIChDYXR3ZWF6bGUsIDMwLiBNYWkgMjAwMywgMDE6NDc6NTkpOgp+IyEgcm49UGhvYm9zIHJ0PTEwNTQyMDM1NTAgcmc9d2l0emUKfiMhIHRpZD0xMDUzNjcyMTUxClRoZXJlIG9uY2Ugd2FzIGEgd2lmZSBpbiBhIGdhcnJpc29uCndobyB3YW50cyB0byBtYWtlIGxvdmUgd2l0aCBhIHNhcmF6ZW4Kc2hlIHdhcyBub3Qgb3ZlcnNleGVkCm9yIGplYWxvdXMgb3IgdmV4ZWQKc2hvdyBqdXN0IHdhbnRlZCB0byBtYWtlIGEgY29tcGFyaXNvbgoKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVmIGd1dGUgTmFjaGJhcnNjaGFmdC4uLiAoRm9vYmFyLCAzMC4gTWFpIDIwMDMsIDExOjExOjM0KToKRWluIERldXRzY2hlciwgZWluIGJpbGRodWVic2NoZXMgTWFlZGNoZW4sIGVpbiBPZXN0ZXJyZWljaGVyIHVuZCBlaW5lIE5vbm5lCnNpdHplbiBzaWNoIGluIGVpbmVtIFp1Z2FidGVpbCBnZWdlbnVlYmVyLiBQbG9ldHpsaWNoIGZhZWhydCBkZXIgWnVnIGluIGVpbmVuClR1bm5lbC4gRGEgZGllIEJlbGV1Y2h0dW5nIG5pY2h0IGZ1bmt0aW9uaWVydCwgaXN0IGVzIHN0b2NrZHVua2VsLiBEYW5uIGhvZXJ0Cm1hbiBlaW5lIHNjaGFsbGVuZGUgT2hyZmVpZ2UgdW5kIGFscyBadWcgZGVuIFR1bm5lbCB3aWVkZXIgdmVybGFlc3N0LCByZWlidApkZXIgT2VzdGVycmVpY2hlciBzY2htZXJ6dmVyemVycnQgc2VpbiBHZXNpY2h0LiAiR2VuYXUgcmljaHRpZyIgZGVua3QgZGllCk5vbm5lLiAiRGVyIE9lc3RlcnJlaWNoZXIgaGF0IGJlc3RpbW10IHZlcnN1Y2h0LCBkYXMgTWFlZGNoZW4genUgYmVncmFwc2NoZW4sCnVuZCBzaWUgaGF0IGlobSBlaW5lIGdlc2NobWllcnQuIiAiR2VuYXUgcmljaHRpZyIgZGVua3QgZGFzIGh1ZWJzY2hlIE1hZWRjaGVuLgoiRGVyIE9lc3RlcnJlaWNoZXIgd29sbHRlIG1pY2ggbmF0dWVybGljaCBpbSBEdW5rZWxuIGJlZ3JhcHNjaGVuLCBoYXQKdW5nbHVlY2tsaWNoZXJ3ZWlzZSBkaWUgTm9ubmUgYmVydWVocnQsIHdhcyBzaWUgbmljaHQgd29sbHRlIHVuZCBzaWUgaGF0IGlobQplaW5lIGdlc2NobWllcnQuIiAiU28gbmUgU2Nod2VpbmVyZWkiIGRlbmt0IGRlciBPZXN0ZXJyZWljaGVyLiAiRGVyIERldXRzY2hlCmhhdCB3YWhyc2NoZWlubGljaCBpbSBTY2h1dHplIGRlciBEdW5rZWxoZWl0IHByb2JpZXJ0LCBkYXMgaHVlYnNjaGUgTWFlZGNoZW4KenUgYmVncmFwc2NoZW4uIEhhdCB1bmdsdWVja2xpY2hlcndlaXNlIGRpZSBOb25uZSBiZXJ1ZWhydCwgd2FzIGRpZXNlIG5pY2h0CndvbGx0ZSB1bmQgaGF0IGRhbm4gdmVyc3VjaHQsIGRlbSBEZXV0c2NoZW4gZWluZSB6dSBzY2htaWVyZW4uIERhcyBoYXQgZGVyClNhdWh1bmQgZ2VtZXJrdCB1bmQgc2ljaCBnZWR1Y2t0LCBzbyBkYXNzIGljaCBkZW4gU2NobGFnIGFiYmVrb21tZW4gaGFiZS4iCldvaGluZ2VnZW4gZGVyIERldXRzY2hlIGRlbmt0OiAiSW0gbmFlY2hzdGVuIFR1bm5lbCBoYXUgaWNoIGRlbSBPZXN0ZXJyZWljaGVyCndpZWRlciBhdWYgZGllIEZyZXNzZS4KCkdydXNzLAoKICAgRm9vYmFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWwgZXR3YXMgS3VsdHVyIGluIGRpZXNlIEdydXBwZSAoTm9ubmUsICA1LiBKdW4gMjAwMywgMDk6MDA6NDUpOgpFaW4gR2VkaWNodCwga29lbm50ZSBhdWNoIHZvbiBSaWxrZSBzZWluICh6d2lua2VyIFRvZSk6CgpTY2hlbmt0IGVpbiAgTWFlZGNoZW4gZGlyIGRpZSBHdW5zdCwKdW5kIGRhcyBMb2NoLCBtaXQgZGVtIHNpZSBicnVuenQsCnVuZW50Z2VsdGxpY2ggZnJlaSB6dW0gVHJpZWJlLApkYW5uLCBqYSBkYW5uIC0gZGFubiBpc3QgZGFzIExpZWJlLgoKV2lyZCBkYXMgTG9jaCBkYW5uIG1pdCBkZXIgIFplaXQsCjQwIHRpZWYgdW5kIDIwIGJyZWl0CnVuZCBoYXN0IGR1IGRhbm4gbm9jaCBrZWluZSBOZXVlLApkYW5uLCAgbWVpbiBMaWViZXIgLSBpc3QgZGFzIFRyZXVlLgoKTm9ubmUsIGtpY2hlcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFsIGV0d2FzIEt1bHR1ciBpbiBkaWVzZSBHcnVwcGUgKFRvZSwgIDcuIEp1biAyMDAzLCAxMzoyODozOCk6Cn4jISBybj1Ob25uZSBydD0xMDU0Nzk2NDQ1IHJnPXdpdHplCn4jISB0aWQ9MTA1NDc5NjQ0NQpnZWZhZWxsdCBtaXIgZ3V0LCB0b2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxlIG9kZXIgbGE/IChNb3Jnb3RoLCAgOS4gSnVuIDIwMDMsIDE3OjM0OjIxKToKTGUgb2RlciBMYSBDT01QVVRFUiA/PwoKRWluZSBGcmFuem9lc2lzY2hsZWhyZXJpbiBmcmFndGUgaWhyZSBLbGFzc2UsIG9iICJDb21wdXRlciIgaW0KRnJhbnpvZXNpc2NoZW4gbWFlbm5saWNoIG9kZXIgd2VpYmxpY2ggc2VpLCB1bmQgendhciBNYWVkY2hlbiB1bmQgSnVuZ3MgCmdldHJlbm50LgoKRGllIGp1bmdlbiBEYW1lbiBlbnRzY2hpZWRlbiwgIkNvbXB1dGVyIiBtdWVzc2UgaW0gRnJhbnpvZXNpc2NoZW4KbWFlbm5saWNoIHNlaW4gKCJsZSBjb21wdXRlciIpLCBkZW5uOgotIHVtIHVlYmVyaGF1cHQgZXR3YXMgZGFtaXQgYW5mYW5nZW4genUga29lbm5lbiwgbXVzcyBtYW4gc2llIGFubWFjaGVuCi0gc2llIGtvZW5uZW4gbmljaHQgc2VsYnN0YWVuZGlnIGRlbmtlbgotIHNpZSBzb2xsZW4gYmVpIFByb2JsZW1lbiBoZWxmZW4sIGFiZXIgbWVpc3Qgc2luZCBzaWUgZGFzIFByb2JsZW0KLSBzb2JhbGQgbWFuIHNpY2ggZnVlciBlaW5lbiBlbnRzY2hlaWRldCwga29tbXQgZWluIGJlc3NlcmVzIE1vZGVsbAoKRGllIEp1bmdzIGVudHNjaGllZGVuLCBlcyBtdXNzZSAibGEgY29tcHV0ZXIiIGhlaXNzZW4sIGRhOgotIG5pZW1hbmQgYXVzc2VyIGRlbSBIZXJzdGVsbGVyIGRpZSBpbnRlcm5lIExvZ2lrIHZlcnN0ZWh0Ci0gZGllIFNwcmFjaGUsIGRpZSBzaWUgenVyIEtvbW11bmlrYXRpb24gbWl0IGFuZGVyZW4gQ29tcHV0ZXJuCmJlbnV0emVuLCBmdWVyIGFuZGVyZSB1bnZlcnN0YWVuZGxpY2ggaXN0Ci0gYXVjaCBkZXIga2xlaW5zdGUgRmVobGVyIGxhbmdmcmlzdGlnIGdlc3BlaWNoZXJ0IHdpcmQKLSBzb2JhbGQgbWFuIHNpY2ggZnVlciBlaW5lbiBlbnRzY2hlaWRldCwgZGFzIGhhbGJlIEdlaGFsdCBmdWVyIFp1YmVob2VyIApkcmF1ZmdlaHQuCgoKVm9pbGEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTGUgb2RlciBsYT8gKE1vbnRhbnVzLCAgOS4gSnVuIDIwMDMsIDE5OjI3OjA2KToKfiMhIHJuPU1vcmdvdGggcnQ9MTA1NTE3Mjg2MSByZz13aXR6ZQp+IyEgdGlkPTEwNTUxNzI4NjEKV2FlcmUgZmFzdCB3aXR6aWcsIHdlbm4gbmljaHQgamVkZXIgd3Vlc3N0ZSwgZGFzcyBGcmFua3JlaWNoIGVpbiBlaWdlbmVzIFdvcnQKZnVlciBDb21wdXRlciBoYXQ6ICJvcmRpbmF0ZXVyIi4KSmV0enQga2FubnN0IGR1IGRpciBkYXMgR2VzY2hsZWNodCBkYXp1IGF1c3N1Y2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTGUgb2RlciBsYT8gKEdub21lLCAgOS4gSnVuIDIwMDMsIDE5OjQxOjA5KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwNTUxNzk2MjYgcmc9d2l0emUKfiMhIHRpZD0xMDU1MTcyODYxCndpciBoYWJlbiBpbSBkZXV0c2NoZW4gYXVjaCBlaW4gZWlnZW5lcyB3b3J0IGZ1ZXIgY29tcHV0ZXIuIHRyb3R6ZGVtCmdsYXViZSBpY2gsIGRhc3Mgc2VsYnN0IGluIGZyYW5rcmVpY2ggZGFzIHdvcnQgY29tcHV0ZXIgYmVrYW5udCBpc3QgdW5kCnZpZWxsZWljaHQgYXVjaCBlaW5mcmFuem9lc2lzY2h0IHdvcmRlbiBpc3QuCnVuZCB3ZW5uIG5pY2h0OiBlcyBpc3QgdHJvdHpkZW0gd2l0emlnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTGUgb2RlciBsYT8gKFZhbmlvbiwgIDkuIEp1biAyMDAzLCAyMDowNzoyNyk6Cn4jISBybj1Hbm9tZSBydD0xMDU1MTgwNDY5IHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQpXaXJkIENvbXB1dGVyIG5pY2h0IGltIGFsbGdlbWVpbmVuIGFscyAib3JkaW5hdGV1ciIgdWViZXJzZXR6dCB1bmQgYXVjaCBpbQphbGxnZW1laW5lbiBTcHJhY2hnZWJyYXVjaCBzbyBiZW51dHp0PyBXZW5uIGljaCBtaWNoIHJlY2h0IGVudHNpbm5lIHdlaHJlbgpzaWNoIGRpZSBGcmFuem9zZW4gemllbWxpY2ggZ2VnZW4gQW5nbGl6aXNtZW4uCgpWKiwgaGF0IGRhcyBtYWwgd28gYXVmZ2VzY2huYXBwdC4KUFM6IElzdCBlaWdlbnRsaWNoIG1hbCBqZW1hbmRlbSBhdWZnZWZhbGxlbiwgZGFzcyAnQW5nbGl6aXNtdXMnIGVyc3RlbnMgZWluCidMYXRpbml6aXNtdXMnIGlzdCB1bmQgendlaXRlbnMgZWluZSBkZXV0c2NoZSBXb3J0c2Nob2VwZnVuZz8gKEljaCBnbGF1YgpMYXRpbml6aXNtdXMgaXMgZ3JhZCBtZWluZSBwZXJzb2VubGljaGUgV29ydHNjaG9lcGZ1bmcgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IExlIG9kZXIgbGE/IChDYXR3ZWF6bGUsICA5LiBKdW4gMjAwMywgMjI6MTg6MDQpOgp+IyEgcm49R25vbWUgcnQ9MTA1NTE4MDQ2OSByZz13aXR6ZQp+IyEgdGlkPTEwNTUxNzI4NjEKSWNoIGhhYmUgZXh0cmVtZSBad2VpZmVsLCBkYXMgZGllIEZyYW56b3NlbiBpcmdlbmRldHdhcyBlaW5mcmFuem9lc2lzY2hlbgp3dWVyZGVuIC4uLi4KCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTGUgb2RlciBsYT8gKEVsYmVyZXQsIDEwLiBKdW4gMjAwMywgMTE6MzE6MjkpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTEwNTUxODk4ODQgcmc9d2l0emUKfiMhIHRpZD0xMDU1MTcyODYxCkljaCBoYWIgaW4gRnJhbmtyZWljaCBub2NoIG5pZSBDb21wdXRlciBnZWhvZXJ0LCBkYXMgaGVpc3N0IHNjaGxpY2h0IHVuZAplaW5mYWNoIG9yZGluYXRldXIuIEplZGVyIGRhIG5lbm50IGVzIHNvIHVuZCBjb21wdXRlciB3dWVyZGVuZGllIG1laXN0ZW4Kd2FocnNjaGVpbmxpY2ggZ2FyIG5pY2h0IHZlcnN0ZWhlbi4gRXMgaGVpc3N0IGphIGF1Y2ggbWVzc2FnZSAoY291cnJpZXIpCmVsZWN0cm9uaXF1ZSwgbG9naWNpZWwsIGRpc3F1ZSBkdXIsIHVzdy4gRGllc2UgQmVncmlmZmUgd2VyZGVuIGF1Y2ggc28KdmVyd2VuZGV0LiBEaWUgZW5nbGlzY2hlbiBWYXJpYW50ZW4gbnVyIHNlaHIgc2VociBzZWx0ZW4uIFdvYmVpIGUtbWFpbCB3b2hsCnZlcnN0YW5kZW4gd2lyZCBhYmVyIG5pY2h0IGJlbnV0enQgd2lyZC4gCgpFbGJpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdW4uLi4gKE9nbywgMTAuIEp1biAyMDAzLCAxMzo0MDoyMSk6CkVzIGlzdCB6d2FyIG5pY2h0IHdpcmtsaWNoIGVpbiBXaXR6LCBlbnRiZWhydCBlaW5lciBnZXdpc3NlbiBLb21payBhYmVyIGF1Y2gKbmljaHQ6Cmh0dHA6Ly93d3cudGhlaW5xdWlyZXIubmV0Lz9hcnRpY2xlPTk5MTIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEQUREWSwgV0hZIERJRCBXRSBIQVZFIFRPIEFUVEFDSyBJUkFRPyAoT2dvLCAxMC4gSnVuIDIwMDMsIDEzOjQ3OjU3KToKSWNoIGhvZmZlLCBkYXNzIGRhcyBoaWVyIG5pY2h0IHNjaG9uIG1hbCBnZXBvc3RlZCB3dXJkZS4uLgoKUTogRGFkZHksIHdoeSBkaWQgd2UgaGF2ZSB0byBhdHRhY2sgSXJhcT8KCkE6IEJlY2F1c2UgdGhleSBoYWQgd2VhcG9ucyBvZiBtYXNzIGRlc3RydWN0aW9uIGhvbmV5LgoKUTogQnV0IHRoZSBpbnNwZWN0b3JzIGRpZG4ndCBmaW5kIGFueSB3ZWFwb25zIG9mIG1hc3MgZGVzdHJ1Y3Rpb24uCgpBOiBUaGF0J3MgYmVjYXVzZSB0aGUgSXJhcWlzIHdlcmUgaGlkaW5nIHRoZW0uCgpROiBBbmQgdGhhdCdzIHdoeSB3ZSBpbnZhZGVkIElyYXE/CgpBOiBZZXAuIEludmFzaW9ucyBhbHdheXMgd29yayBiZXR0ZXIgdGhhbiBpbnNwZWN0aW9ucy4KClE6IEJ1dCBhZnRlciB3ZSBpbnZhZGVkIHRoZW0sIHdlIFNUSUxMIGRpZG4ndCBmaW5kIGFueSB3ZWFwb25zIG9mCm1hc3MgZGVzdHJ1Y3Rpb24sIGRpZCB3ZT8KCkE6IFRoYXQncyBiZWNhdXNlIHRoZSB3ZWFwb25zIGFyZSBzbyB3ZWxsIGhpZGRlbi4gRG9uJ3Qgd29ycnksIHdlJ2xsCmZpbmQgc29tZXRoaW5nLCBwcm9iYWJseSByaWdodCBiZWZvcmUgdGhlIDIwMDQgZWxlY3Rpb24uCgpROiBXaHkgZGlkIElyYXEgd2FudCBhbGwgdGhvc2Ugd2VhcG9ucyBvZiBtYXNzIGRlc3RydWN0aW9uPwoKQTogVG8gdXNlIHRoZW0gaW4gYSB3YXIsIHNpbGx5LgoKUTogSSdtIGNvbmZ1c2VkLiBJZiB0aGV5IGhhZCBhbGwgdGhvc2Ugd2VhcG9ucyB0aGF0IHRoZXkgcGxhbm5lZCB0bwp1c2UgaW4gYSB3YXIsIHRoZW4gd2h5IGRpZG4ndCB0aGV5IHVzZSBhbnkgb2YgdGhvc2Ugd2VhcG9ucyB3aGVuIHdlIHdlbnQgdG8Kd2FyIHdpdGggdGhlbT8KCkE6IFdlbGwsIG9idmlvdXNseSB0aGV5IGRpZG4ndCB3YW50IGFueW9uZSB0byBrbm93IHRoZXkgaGFkIHRob3NlCndlYXBvbnMsIHNvIHRoZXkgY2hvc2UgdG8gZGllIGJ5IHRoZSB0aG91c2FuZHMgcmF0aGVyIHRoYW4gZGVmZW5kIHRoZW1zZWx2ZXMuCgpROiBUaGF0IGRvZXNuJ3QgbWFrZSBzZW5zZSBEYWRkeS4gV2h5IHdvdWxkIHRoZXkgY2hvb3NlIHRvIGRpZSBpZgp0aGV5IGhhZCBhbGwgdGhvc2UgYmlnIHdlYXBvbnMgdG8gZmlnaHQgdXMgYmFjayB3aXRoPwoKQTogSXQncyBhIGRpZmZlcmVudCBjdWx0dXJlLiBJdCdzIG5vdCBzdXBwb3NlZCB0byBtYWtlIHNlbnNlLgoKUTogSSBkb24ndCBrbm93IGFib3V0IHlvdSwgYnV0IEkgZG9uJ3QgdGhpbmsgdGhleSBoYWQgYW55IG9mIHRob3NlCndlYXBvbnMgb3VyIGdvdmVybm1lbnQgc2FpZCB0aGV5IGRpZC4KCkE6IFdlbGwsIHlvdSBrbm93LCBpdCBkb2Vzbid0IG1hdHRlciB3aGV0aGVyIG9yIG5vdCB0aGV5IGhhZCB0aG9zZQp3ZWFwb25zLiBXZSBoYWQgYW5vdGhlciBnb29kIHJlYXNvbiB0byBpbnZhZGUgdGhlbSBhbnl3YXkuCgpROiBBbmQgd2hhdCB3YXMgdGhhdD8KCkE6IEV2ZW4gaWYgSXJhcSBkaWRuJ3QgaGF2ZSB3ZWFwb25zIG9mIG1hc3MgZGVzdHJ1Y3Rpb24sIFNhZGRhbQpIdXNzZWluIHdhcyBhIGNydWVsIGRpY3RhdG9yLCB3aGljaCBpcyBhbm90aGVyIGdvb2QgcmVhc29uIHRvIGludmFkZSBhbm90aGVyCmNvdW50cnkuIAoKUTogV2h5PyBXaGF0IGRvZXMgYSBjcnVlbCBkaWN0YXRvciBkbyB0aGF0IG1ha2VzIGl0IE9LIHRvIGludmFkZSBoaXMKY291bnRyeT8KCkE6IFdlbGwsIGZvciBvbmUgdGhpbmcsIGhlIHRvcnR1cmVkIGhpcyBvd24gcGVvcGxlLgoKUTogS2luZCBvZiBsaWtlIHdoYXQgdGhleSBkbyBpbiBDaGluYT8KCkE6IERvbid0IGdvIGNvbXBhcmluZyBDaGluYSB0byBJcmFxLiBDaGluYSBpcyBhIGdvb2QgZWNvbm9taWMKY29tcGV0aXRvciwgd2hlcmUgbWlsbGlvbnMgb2YgcGVvcGxlIHdvcmsgZm9yIHNsYXZlIHdhZ2VzIGluIHN3ZWF0c2hvcHMgdG8KbWFrZQpVLlMuIGNvcnBvcmF0aW9ucyByaWNoZXIuCgpROiBTbyBpZiBhIGNvdW50cnkgbGV0cyBpdHMgcGVvcGxlIGJlIGV4cGxvaXRlZCBmb3IgQW1lcmljYW4KY29ycG9yYXRlIGdhaW4sIGl0J3MgYSBnb29kIGNvdW50cnksIGV2ZW4gaWYgdGhhdCBjb3VudHJ5IHRvcnR1cmVzIHBlb3BsZT8KCkE6IFJpZ2h0LgoKUTogV2h5IHdlcmUgcGVvcGxlIGluIElyYXEgYmVpbmcgdG9ydHVyZWQ/CgpBOiBGb3IgcG9saXRpY2FsIGNyaW1lcywgbW9zdGx5LCBsaWtlIGNyaXRpY2l6aW5nIHRoZSBnb3Zlcm5tZW50LiAKUGVvcGxlIHdobyBjcml0aWNpemVkIHRoZSBnb3Zlcm5tZW50IGluIElyYXEgd2VyZSBzZW50IHRvIHByaXNvbiBhbmQKdG9ydHVyZWQuCgpROiBJc24ndCB0aGF0IGV4YWN0bHkgd2hhdCBoYXBwZW5zIGluIENoaW5hPwoKQTogSSB0b2xkIHlvdSwgQ2hpbmEgaXMgZGlmZmVyZW50LgoKUTogV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gQ2hpbmEgYW5kIElyYXE/CgpBOiBXZWxsLCBmb3Igb25lIHRoaW5nLCBJcmFxIHdhcyBydWxlZCBieSB0aGUgQmEnYXRoIHBhcnR5LCB3aGlsZQpDaGluYSBpcyBDb21tdW5pc3QuCgpROiBEaWRuJ3QgeW91IG9uY2UgdGVsbCBtZSBDb21tdW5pc3RzIHdlcmUgYmFkPwoKQTogTm8sIGp1c3QgQ3ViYW4gQ29tbXVuaXN0cyBhcmUgYmFkLgoKUTogSG93IGFyZSB0aGUgQ3ViYW4gQ29tbXVuaXN0cyBiYWQ/CgpBOiBXZWxsLCBmb3Igb25lIHRoaW5nLCBwZW9wbGUgd2hvIGNyaXRpY2l6ZSB0aGUgZ292ZXJubWVudCBpbiBDdWJhCmFyZSBzZW50IHRvIHByaXNvbiBhbmQgdG9ydHVyZWQuCgpROiBMaWtlIGluIElyYXE/CgpBOiBFeGFjdGx5LgoKUTogQW5kIGxpa2UgaW4gQ2hpbmEsIHRvbz8KCkE6IEkgdG9sZCB5b3UsIENoaW5hJ3MgYSBnb29kIGVjb25vbWljIGNvbXBldGl0b3IuIEN1YmEsIG9uIHRoZSBvdGhlcgpoYW5kLCBpcyBub3QuCgpROiBIb3cgY29tZSBDdWJhIGlzbid0IGEgZ29vZCBlY29ub21pYyBjb21wZXRpdG9yPwoKQTogV2VsbCwgeW91IHNlZSwgYmFjayBpbiB0aGUgZWFybHkgMTk2MHMsIG91ciBnb3Zlcm5tZW50IHBhc3NlZCBzb21lCmxhd3MgdGhhdCBtYWRlIGl0IGlsbGVnYWwgZm9yIEFtZXJpY2FucyB0byB0cmFkZSBvciBkbyBhbnkgYnVzaW5lc3Mgd2l0aApDdWJhIHVudGlsIHRoZXkgc3RvcHBlZCBiZWluZyBDb21tdW5pc3RzIGFuZCBzdGFydGVkIGJlaW5nIGNhcGl0YWxpc3RzCmxpa2UgdXMuCgpROiBCdXQgaWYgd2UgZ290IHJpZCBvZiB0aG9zZSBsYXdzLCBvcGVuZWQgdXAgdHJhZGUgd2l0aCBDdWJhLCBhbmQKc3RhcnRlZCBkb2luZyBidXNpbmVzcyB3aXRoIHRoZW0sIHdvdWxkbid0IHRoYXQgaGVscCB0aGUgQ3ViYW5zIGJlY29tZQpjYXBpdGFsaXN0cz8KCkE6IERvbid0IGJlIGEgc21hcnQtYXNzLgoKUTogSSBkaWRuJ3QgdGhpbmsgSSB3YXMgYmVpbmcgb25lLgoKQTogV2VsbCwgYW55d2F5LCB0aGV5IGFsc28gZG9uJ3QgaGF2ZSBmcmVlZG9tIG9mIHJlbGlnaW9uIGluIEN1YmEuCgpROiBLaW5kIG9mIGxpa2UgQ2hpbmEgYW5kIHRoZSBGYWx1biBHb25nIG1vdmVtZW50PwoKQTogSSB0b2xkIHlvdSwgc3RvcCBzYXlpbmcgYmFkIHRoaW5ncyBhYm91dCBDaGluYS4gQW55d2F5LCBTYWRkYW0KSHVzc2VpbiBjYW1lIHRvIHBvd2VyIHRocm91Z2ggYSBtaWxpdGFyeSBjb3VwLCBzbyBoZSdzIG5vdCByZWFsbHkgYQpsZWdpdGltYXRlIGxlYWRlciBhbnl3YXkuCgpROiBXaGF0J3MgYSBtaWxpdGFyeSBjb3VwPwoKQTogVGhhdCdzIHdoZW4gYSBtaWxpdGFyeSBnZW5lcmFsIHRha2VzIG92ZXIgdGhlIGdvdmVybm1lbnQgb2YgYQpjb3VudHJ5IGJ5IGZvcmNlLCBpbnN0ZWFkIG9mIGhvbGRpbmcgZnJlZSBlbGVjdGlvbnMgbGlrZSB3ZSBkbyBpbiB0aGUgVW5pdGVkClN0YXRlcy4KClE6IERpZG4ndCB0aGUgcnVsZXIgb2YgUGFraXN0YW4gY29tZSB0byBwb3dlciBieSBhIG1pbGl0YXJ5IGNvdXA/CgpBOiBZb3UgbWVhbiBHZW5lcmFsIFBlcnZleiBNdXNoYXJyYWY/IFVoLCB5ZWFoLCBoZSBkaWQsIGJ1dCBQYWtpc3RhbgppcyBvdXIgZnJpZW5kLgoKUTogV2h5IGlzIFBha2lzdGFuIG91ciBmcmllbmQgaWYgdGhlaXIgbGVhZGVyIGlzIGlsbGVnaXRpbWF0ZT8KCkE6IEkgbmV2ZXIgc2FpZCBQZXJ2ZXogTXVzaGFycmFmIHdhcyBpbGxlZ2l0aW1hdGUuCgpROiBEaWRuJ3QgeW91IGp1c3Qgc2F5IGEgbWlsaXRhcnkgZ2VuZXJhbCB3aG8gY29tZXMgdG8gcG93ZXIgYnkKZm9yY2libHkgb3ZlcnRocm93aW5nIHRoZSBsZWdpdGltYXRlIGdvdmVybm1lbnQgb2YgYSBuYXRpb24gaXMgYW4gaWxsZWdpdGltYXRlCmxlYWRlcj8KCkE6IE9ubHkgU2FkZGFtIEh1c3NlaW4uIFBlcnZleiBNdXNoYXJyYWYgaXMgb3VyIGZyaWVuZCwgYmVjYXVzZSBoZQpoZWxwZWQgdXMgaW52YWRlIEFmZ2hhbmlzdGFuLgoKUTogV2h5IGRpZCB3ZSBpbnZhZGUgQWZnaGFuaXN0YW4/CgpBOiBCZWNhdXNlIG9mIHdoYXQgdGhleSBkaWQgdG8gdXMgb24gU2VwdGVtYmVyIDExdGguCgpROiBXaGF0IGRpZCBBZmdoYW5pc3RhbiBkbyB0byB1cyBvbiBTZXB0ZW1iZXIgMTF0aD8KCkE6IFdlbGwsIG9uIFNlcHRlbWJlciAxMXRoLCBuaW5ldGVlbiBtZW4/IEZpZnRlZW4gb2YgdGhlbSBTYXVkaQpBcmFiaWFucz8gaGlqYWNrZWQgZm91ciBhaXJwbGFuZXMgYW5kIGZsZXcgdGhyZWUgb2YgdGhlbSBpbnRvIGJ1aWxkaW5ncywKa2lsbGluZyBvdmVyIDMsMDAwIEFtZXJpY2Fucy4KClE6IFNvIGhvdyBkaWQgQWZnaGFuaXN0YW4gZmlndXJlIGludG8gYWxsIHRoYXQ/CgpBOiBBZmdoYW5pc3RhbiB3YXMgd2hlcmUgdGhvc2UgYmFkIG1lbiB0cmFpbmVkLCB1bmRlciB0aGUgb3BwcmVzc2l2ZQpydWxlIG9mIHRoZSBUYWxpYmFuLgoKUTogQXJlbid0IHRoZSBUYWxpYmFuIHRob3NlIGJhZCByYWRpY2FsIElzbGFtaWNzIHdobyBjaG9wcGVkIG9mZgpwZW9wbGUncyBoZWFkcyBhbmQgaGFuZHM/CgpBOiBZZXMsIHRoYXQncyBleGFjdGx5IHdobyB0aGV5IHdlcmUuIE5vdCBvbmx5IGRpZCB0aGV5IGNob3Agb2ZmCnBlb3BsZSdzIGhlYWRzIGFuZCBoYW5kcywgYnV0IHRoZXkgb3BwcmVzc2VkIHdvbWVuLCB0b28uCgpROiBEaWRuJ3QgdGhlIEJ1c2ggYWRtaW5pc3RyYXRpb24gZ2l2ZSB0aGUgVGFsaWJhbiA0MyBtaWxsaW9uIGRvbGxhcnMKYmFjayBpbiBNYXkgb2YgMjAwMT8KCkE6IFllcywgYnV0IHRoYXQgbW9uZXkgd2FzIGEgcmV3YXJkIGJlY2F1c2UgdGhleSBkaWQgc3VjaCBhIGdvb2Qgam9iCmZpZ2h0aW5nIGRydWdzLgoKUTogRmlnaHRpbmcgZHJ1Z3M/CgpBOiBZZXMsIHRoZSBUYWxpYmFuIHdlcmUgdmVyeSBoZWxwZnVsIGluIHN0b3BwaW5nIHBlb3BsZSBmcm9tIGdyb3dpbmcKb3BpdW0gcG9wcGllcy4KClE6IEhvdyBkaWQgdGhleSBkbyBzdWNoIGEgZ29vZCBqb2I/CgpBOiBTaW1wbGUuIElmIHBlb3BsZSB3ZXJlIGNhdWdodCBncm93aW5nIG9waXVtIHBvcHBpZXMsIHRoZSBUYWxpYmFuCndvdWxkIGhhdmUgdGhlaXIgaGFuZHMgYW5kIGhlYWRzIGN1dCBvZmYuCgpROiBTbywgd2hlbiB0aGUgVGFsaWJhbiBjdXQgb2ZmIHBlb3BsZSdzIGhlYWRzIGFuZCBoYW5kcyBmb3IgZ3Jvd2luZwpmbG93ZXJzLCB0aGF0IHdhcyBPSywgYnV0IG5vdCBpZiB0aGV5IGN1dCBwZW9wbGUncyBoZWFkcyBhbmQgaGFuZHMKb2ZmIGZvciBvdGhlciByZWFzb25zPwoKQTogWWVzLiBJdCdzIE9LIHdpdGggdXMgaWYgcmFkaWNhbCBJc2xhbWljIGZ1bmRhbWVudGFsaXN0cyBjdXQgb2ZmCnBlb3BsZSdzIGhhbmRzIGZvciBncm93aW5nIGZsb3dlcnMsIGJ1dCBpdCdzIGNydWVsIGlmIHRoZXkgY3V0IG9mZgpwZW9wbGUncyBoYW5kcyBmb3Igc3RlYWxpbmcgYnJlYWQuCgpROiBEb24ndCB0aGV5IGFsc28gY3V0IG9mZiBwZW9wbGUncyBoYW5kcyBhbmQgaGVhZHMgaW4gU2F1ZGkgQXJhYmlhPwoKQTogVGhhdCdzIGRpZmZlcmVudC4gQWZnaGFuaXN0YW4gd2FzIHJ1bGVkIGJ5IGEgdHlyYW5uaWNhbCBwYXRyaWFyY2h5CnRoYXQgb3BwcmVzc2VkIHdvbWVuIGFuZCBmb3JjZWQgdGhlbSB0byB3ZWFyIGJ1cnFhcyB3aGVuZXZlciB0aGV5IHdlcmUgaW4KcHVibGljLCB3aXRoIGRlYXRoIGJ5IHN0b25pbmcgYXMgdGhlIHBlbmFsdHkgZm9yIHdvbWVuIHdobyBkaWQgbm90CmNvbXBseS4KClE6IERvbid0IFNhdWRpIHdvbWVuIGhhdmUgdG8gd2VhciBidXJxYXMgaW4gcHVibGljLCB0b28/CgpBOiBObywgU2F1ZGkgd29tZW4gbWVyZWx5IHdlYXIgYSB0cmFkaXRpb25hbCBJc2xhbWljIGJvZHkgY292ZXJpbmcuCgpROiBXaGF0J3MgdGhlIGRpZmZlcmVuY2U/CgpBOiBUaGUgdHJhZGl0aW9uYWwgSXNsYW1pYyBjb3ZlcmluZyB3b3JuIGJ5IFNhdWRpIHdvbWVuIGlzIGEgbW9kZXN0CnlldCBmYXNoaW9uYWJsZSBnYXJtZW50IHRoYXQgY292ZXJzIGFsbCBvZiBhIHdvbWFuJ3MgYm9keSBleGNlcHQgZm9yIGhlcgpleWVzIGFuZCBmaW5nZXJzLiBUaGUgYnVycWEsIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBhbiBldmlsIHRvb2wgb2YKcGF0cmlhcmNoYWwgb3BwcmVzc2lvbiB0aGF0IGNvdmVycyBhbGwgb2YgYSB3b21hbidzIGJvZHkgZXhjZXB0IGZvciBoZXIgZXllcwphbmQgZmluZ2Vycy4KClE6IEl0IHNvdW5kcyBsaWtlIHRoZSBzYW1lIHRoaW5nIHdpdGggYSBkaWZmZXJlbnQgbmFtZS4KCkE6IE5vdywgZG9uJ3QgZ28gY29tcGFyaW5nIEFmZ2hhbmlzdGFuIGFuZCBTYXVkaSBBcmFiaWEuIFRoZSBTYXVkaXMKYXJlIG91ciBmcmllbmRzLgoKUTogQnV0IEkgdGhvdWdodCB5b3Ugc2FpZCAxNSBvZiB0aGUgMTkgaGlqYWNrZXJzIG9uIFNlcHRlbWJlciAxMXRoCndlcmUgZnJvbSBTYXVkaSBBcmFiaWEuCgpBOiBZZXMsIGJ1dCB0aGV5IHRyYWluZWQgaW4gQWZnaGFuaXN0YW4uCgpROiBXaG8gdHJhaW5lZCB0aGVtPwoKQTogQSB2ZXJ5IGJhZCBtYW4gbmFtZWQgT3NhbWEgYmluIExhZGVuLgoKUTogV2FzIGhlIGZyb20gQWZnaGFuaXN0YW4/CgpBOiBVaCwgbm8sIGhlIHdhcyBmcm9tIFNhdWRpIEFyYWJpYSB0b28uIEJ1dCBoZSB3YXMgYSBiYWQgbWFuLCBhIHZlcnkKYmFkIG1hbi4KClE6IEkgc2VlbSB0byByZWNhbGwgaGUgd2FzIG91ciBmcmllbmQgb25jZS4KCkE6IE9ubHkgd2hlbiB3ZSBoZWxwZWQgaGltIGFuZCB0aGUgbXVqYWhhZGVlbiByZXBlbCB0aGUgU292aWV0CmludmFzaW9uIG9mIEFmZ2hhbmlzdGFuIGJhY2sgaW4gdGhlIDE5ODBzLgoKUTogV2hvIGFyZSB0aGUgU292aWV0cz8gV2FzIHRoYXQgdGhlIEV2aWwgQ29tbXVuaXN0IEVtcGlyZSBSb25hbGQKUmVhZ2FuIHRhbGtlZCBhYm91dD8KCkE6IFRoZXJlIGFyZSBubyBtb3JlIFNvdmlldHMuIFRoZSBTb3ZpZXQgVW5pb24gYnJva2UgdXAgaW4gMTk5MCBvcgp0aGVyZWFib3V0cywgYW5kIG5vdyB0aGV5IGhhdmUgZWxlY3Rpb25zIGFuZCBjYXBpdGFsaXNtIGxpa2UgdXMuIFdlCmNhbGwgdGhlbSBSdXNzaWFucyBub3cuCgpROiBTbyB0aGUgU292aWV0cyA/IEkgbWVhbiwgdGhlIFJ1c3NpYW5zID8gYXJlIG5vdyBvdXIgZnJpZW5kcz8KCkE6IFdlbGwsIG5vdCByZWFsbHkuIFlvdSBzZWUsIHRoZXkgd2VyZSBvdXIgZnJpZW5kcyBmb3IgbWFueSB5ZWFycwphZnRlciB0aGV5IHN0b3BwZWQgYmVpbmcgU292aWV0cywgYnV0IHRoZW4gdGhleSBkZWNpZGVkIG5vdCB0byBzdXBwb3J0IG91cgppbnZhc2lvbiBvZiBJcmFxLCBzbyB3ZSdyZSBtYWQgYXQgdGhlbSBub3cuIFdlJ3JlIGFsc28gbWFkIGF0IHRoZQpGcmVuY2ggYW5kIHRoZSBHZXJtYW5zIGJlY2F1c2UgdGhleSBkaWRuJ3QgaGVscCB1cyBpbnZhZGUgSXJhcSBlaXRoZXIuCgpROiBTbyB0aGUgRnJlbmNoIGFuZCBHZXJtYW5zIGFyZSBldmlsLCB0b28/CgpBOiBOb3QgZXhhY3RseSBldmlsLCBidXQganVzdCBiYWQgZW5vdWdoIHRoYXQgd2UgaGFkIHRvIHJlbmFtZSBGcmVuY2gKZnJpZXMgYW5kIEZyZW5jaCB0b2FzdCB0byBGcmVlZG9tIEZyaWVzIGFuZCBGcmVlZG9tIFRvYXN0LgoKUTogRG8gd2UgYWx3YXlzIHJlbmFtZSBmb29kcyB3aGVuZXZlciBhbm90aGVyIGNvdW50cnkgZG9lc24ndCBkbyB3aGF0CndlIHdhbnQgdGhlbSB0byBkbz8KCkE6IE5vLCB3ZSBqdXN0IGRvIHRoYXQgdG8gb3VyIGZyaWVuZHMuIE91ciBlbmVtaWVzLCB3ZSBpbnZhZGUuCgpROiBCdXQgd2Fzbid0IElyYXEgb25lIG9mIG91ciBmcmllbmRzIGJhY2sgaW4gdGhlIDE5ODBzPwoKQTogV2VsbCwgeWVhaC4gRm9yIGEgd2hpbGUuCgpROiBXYXMgU2FkZGFtIEh1c3NlaW4gcnVsZXIgb2YgSXJhcSBiYWNrIHRoZW4/CgpBOiBZZXMsIGJ1dCBhdCB0aGUgdGltZSBoZSB3YXMgZmlnaHRpbmcgYWdhaW5zdCBJcmFuLCB3aGljaCBtYWRlIGhpbQpvdXIgZnJpZW5kLCB0ZW1wb3JhcmlseS4KClE6IFdoeSBkaWQgdGhhdCBtYWtlIGhpbSBvdXIgZnJpZW5kPwoKQTogQmVjYXVzZSBhdCB0aGF0IHRpbWUsIElyYW4gd2FzIG91ciBlbmVteS4KClE6IElzbid0IHRoYXQgd2hlbiBoZSBnYXNzZWQgdGhlIEt1cmRzPwoKQTogWWVhaCwgYnV0IHNpbmNlIGhlIHdhcyBmaWdodGluZyBhZ2FpbnN0IElyYW4gYXQgdGhlIHRpbWUsIHdlCmxvb2tlZCB0aGUgb3RoZXIgd2F5LCB0byBzaG93IGhpbSB3ZSB3ZXJlIGhpcyBmcmllbmQuCgpROiBTbyBhbnlvbmUgd2hvIGZpZ2h0cyBhZ2FpbnN0IG9uZSBvZiBvdXIgZW5lbWllcyBhdXRvbWF0aWNhbGx5CmJlY29tZXNvdXIgZnJpZW5kPwoKQTogTW9zdCBvZiB0aGUgdGltZSwgeWVzLgoKUTogQW5kIGFueW9uZSB3aG8gZmlnaHRzIGFnYWluc3Qgb25lIG9mIG91ciBmcmllbmRzIGlzIGF1dG9tYXRpY2FsbHkKYW4gZW5lbXk/CgpBOiBTb21ldGltZXMgdGhhdCdzIHRydWUsIHRvby4gSG93ZXZlciwgaWYgQW1lcmljYW4gY29ycG9yYXRpb25zIGNhbgpwcm9maXQgYnkgc2VsbGluZyB3ZWFwb25zIHRvIGJvdGggc2lkZXMgYXQgdGhlIHNhbWUgdGltZSwgYWxsIHRoZQpiZXR0ZXIuCgpROiBXaHk/CgpBOiBCZWNhdXNlIHdhciBpcyBnb29kIGZvciB0aGUgZWNvbm9teSwgd2hpY2ggbWVhbnMgd2FyIGlzIGdvb2QgZm9yCkFtZXJpY2EuIEFsc28sIHNpbmNlIEdvZCBpcyBvbiBBbWVyaWNhJ3Mgc2lkZSwgYW55b25lIHdobyBvcHBvc2VzIHdhcgppcyBhIGdvZGxlc3MgdW4tQW1lcmljYW4gQ29tbXVuaXN0LiBEbyB5b3UgdW5kZXJzdGFuZCBub3cgd2h5IHdlIGF0dGFja2VkCklyYXE/CgpROiBJIHRoaW5rIHNvLiBXZSBhdHRhY2tlZCB0aGVtIGJlY2F1c2UgR29kIHdhbnRlZCB1cyB0bywgcmlnaHQ/CgpBOiBZZXMuCgpROiBCdXQgaG93IGRpZCB3ZSBrbm93IEdvZCB3YW50ZWQgdXMgdG8gYXR0YWNrIElyYXE/CgpBOiBXZWxsLCB5b3Ugc2VlLCBHb2QgcGVyc29uYWxseSBzcGVha3MgdG8gR2VvcmdlIFcuIEJ1c2ggYW5kIHRlbGxzCmhpbSB3aGF0IHRvIGRvLgoKUTogU28gYmFzaWNhbGx5LCB3aGF0IHlvdSdyZSBzYXlpbmcgaXMgdGhhdCB3ZSBhdHRhY2tlZCBJcmFxIGJlY2F1c2UKR2VvcmdlIFcuIEJ1c2ggaGVhcnMgdm9pY2VzIGluIGhpcyBoZWFkPwoKQS4gWWVzISBZb3UgZmluYWxseSB1bmRlcnN0YW5kIGhvdyB0aGUgd29ybGQgd29ya3MuIE5vdyBjbG9zZSB5b3VyCmV5ZXMsIG1ha2UgeW91cnNlbGYgY29tZm9ydGFibGUsIGFuZCBnbyB0byBzbGVlcC4gR29vZCBuaWdodC4KClE6IEdvb2QgbmlnaHQsIERhZGR5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTGUgb2RlciBsYT8gKEFudGhlYSwgMTAuIEp1biAyMDAzLCAxMzo0ODozMCk6Cn4jISBybj1FbGJlcmV0IHJ0PTEwNTUyMzc0ODkgcmc9d2l0emUKfiMhIHRpZD0xMDU1MTcyODYxClVuZCBkYSBDb21wdXRlciBqYSAib3JkaW5hdGV1ciIgaGVpc3N0LCBpc3QgZGFzIEdlc2NobGVjaHQgbmViZW5zYWVjaGxpY2gsIGRhCmVzIGVoIHp1ICJsJ29yZGluYXRldXIiIHp1c2FtbWVuZ2VmYXNzdCB3dWVyZGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUaHJlZSBtZW4gLi4uIChBcmt2YXJkLCAxMC4gSnVuIDIwMDMsIDE0OjA3OjExKToKClRocmVlIGVsZGVybHkgbWVuIGdvIG91dCB3YWxraW5nOiAKRmlyc3Qgb25lIHNheXMuICJXaW5keSBpc24ndCBpdD8gIiAKU2Vjb25kIG9uZSBzYXlzLCAiTm8gaXRzIFRodXJzZGF5ISIhIApUaGlyZCBvbmUgc2F5cy4gIlNvIGFtIEkuIExldHMgZ28gZ2V0IGEgYmVlciIuIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IExlIG9kZXIgbGE/IChBbGNpbmEsIDEwLiBKdW4gMjAwMywgMTc6MTI6MTcpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTEwNTUxODk4ODQgcmc9d2l0emUKfiMhIHRpZD0xMDU1MTcyODYxCgpFcyBoZWlzc3QgamEgYXVjaCBjb21waWxhdGV1ciBmdWVyIENvbXBpbGVyLCB3ZW5uIGRhcyBtYW4gbmljaHQgYXVzIG5lbQpBbmdsaXppc211cyBhYmdlbGVpdGV0IHd1cmRlLiBBYmVyIGRlciBPYmVyaGl0IGluIGVpbmVtIFByb2dyYW1taWVya3VycyAoQysrKQp3YXJlbjogc2xhc2ggKHNwcmljaDpTbGFzY2gpIHVuZCBiYWNrc2xhc2ggKHNwcmljaDogQmFrc2xhc2NoKS4gSWNoIGhhYgpUcmFlbmVuIGdlbGFjaHQsIGxlaWRlciB3YXIgaWNoIGJlaSAyMDAgTGV1dGVuIGRpZSBlaW56aWdlLgpCdHcsIGRpZSBGcmFuem9zZW4gc2FnZW4gd2lya2xpY2ggb3JkaW5hdGV1ci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IExlIG9kZXIgbGE/IChBbGNpbmEsIDEwLiBKdW4gMjAwMywgMTc6MTQ6MDYpOgp+IyEgcm49RWxiZXJldCBydD0xMDU1MjM3NDg5IHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQoKS3VyeiB6dSBlLU1haWw6IGRhcyBnaWJ0cyBzY2hvbiwgZGllIEZyYW56bWFlbm5lciBzY2hyZWliZW4gZGEgbVxeZWxlIChhbHNvCmRhcyBlcnN0ZSBlIG1pdCBjaXJjb25mbGV4ZSkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBMZSBvZGVyIGxhPyAoQWxjaW5hLCAxMC4gSnVuIDIwMDMsIDE3OjE1OjMyKToKfiMhIHJuPUFudGhlYSBydD0xMDU1MjQ1NzEwIHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQpTbywgaGV1dCBnZWIgaWNoIG1hbCBtZWluZW4gU2VuZiBkYXp1LiBXYXMgbWFjaHN0IER1IGRlbm4gYmVpbSB1bmJlc3RpbW10ZW4KQXJ0aWtlbCBiencuIEF0dHJpYnV0ZW4/CgpBbGNpbmEgLSBoZXV0ZSBzY2hyZWlid3VldGlnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBMZSBvZGVyIGxhPyAoRWxpemFiZXRoLCAxMC4gSnVuIDIwMDMsIDE3OjE1OjQ4KToKfiMhIHJuPUFudGhlYSBydD0xMDU1MjQ1NzEwIHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQpuYWphLi5uaWNodCBnYW56Li53ZWlscyBhdWNoIG5vY2ggZ2FueiB2aWVsZSBhbmRlcmUgc2FjaGVuIGdpYnQgYXVzc2VyIGRlbQonYXJ0aWtlbCcuLmRpZSBzaWNoIG5hY2ggZGVtIGdlc2NobGVjaHQgcmljaHRlbiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogTGUgb2RlciBsYT8gKFNjaG9rbywgMTAuIEp1biAyMDAzLCAxNzozMjoyMik6Cn4jISBybj1BbGNpbmEgcnQ9MTA1NTI1NzkzNyByZz13aXR6ZQp+IyEgdGlkPTEwNTUxNzI4NjEKSG1tbSAuLi4gdW5kIHdlbm4gZGFzIGJlaWRlcyBhdXMgZGVtIGd1dGVuIGFsdGVuIExhdGVpbiBVbnRlcnJpY2h0IGtvbW10PwoKSWNoIHdlaXNzLCBjb21waWxhcmUgKGxhdC4gcmF1YmVuLCBwbHVlbmRlcm4pIGxhZXNzdCBqZXR6dCBuaWNodCBzbyBkaXJla3QgYXVmCmRhcyBzY2hsaWVzc2VuLCB3YXMgZWluIENvbXBpbGVyIGlzdC4gQWJlciBldnRsLiBnaWJ0cyBkYSBqYSBpbSBGcmFuem9lc2lzY2hlbgp1bmQgRW5nbGlzY2hlbiBnZW1laW5zYW1lIFdvcnRzdGFlbW1lPyBJbSBFbmdsaXNjaGVuIGtvbW10IGRhcyBqYSB3b2hsIHZvbiB0bwpjb21waWxlLCBuZWhtIGljaCBkb2NoIG1hbCBzdGFyayBhbi4uLgoKU2Nob2tvIChiZXNzZXJ3aXNzZXIgOi0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTGUgb2RlciBsYT8gKENyb2Z0LCAxMC4gSnVuIDIwMDMsIDE3OjMzOjQyKToKfiMhIHJuPVNjaG9rbyBydD0xMDU1MjU5MTQyIHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQpOaWNodCB2b24gdG8gY29tcHV0ZSB3aWUgYmVyZWNobmVuPwoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBpc3NvaXIgKFBhcnR5LCAxMC4gSnVuIDIwMDMsIDIzOjIyOjQ0KToKSW0gSGltbWVsOiBEcmVpIE1hZW5uZXIga29tbWVuIGFuIGRlciBIaW1tZWxzcGZvcnRlIGFuLiBQZXRydXMgZnJhZ3QgZGVuIAplcnN0ZW46CiJXb3p1IGhhc3QgRHUgYXVmIEVyZGVuIERlaW5lbiBQZW5pcyBiZW51dHp0PyIKIlp1bSBXYXNzZXJsYXNzZW4sIGFiIHVuZCB6dSBoYWJlIGljaCBhbGxlcmRpbmdzIGF1Y2ggZWluIHdlbmlnIFVuenVjaHQgCmdldHJpZWJlbi4iCkFlcmdlcmxpY2ggc2NoaWNrdCBpaG4gUGV0cnVzIGluIGRpZSBIb2VsbGUgdW5kIGZyYWd0IGRlbiB6d2VpdGVuIGRhcyAKZ2xlaWNoZS4KIkljaCBoYWJlIGlobiB6dSBnbGVpY2hlbiBUZWlsZW4genUgYmVpZGVuIFp3ZWNrZW4gaGVyZ2Vub21tZW4uIgoiQWIgenVtIFRldWZlbCEiClVuZCBQZXRydXMgc3RlbGx0IGRlbSBkcml0dGVuIGRpZSBGcmFnZS4gTWVpbnQgZGVyIHJlc2lnbmllcnQ6CiJJY2ggaGFiZSBudXIgenUgMTAgUHJvemVudCBnZXBpbmtlbHQsIHVuZCB6dSA5MCUgZ2V2b2VnZWx0LiBJY2ggZ2VoZSAKc2Nob24gbWFsIGxvcy4iCgoiUXVhdHNjaCwgd2lsbGtvbW1lbiBtZWluIFNvaG4uIFdpciBzaW5kIGRvY2ggaGllciBpbSBQYXJhZGllcyB1bmQgbmljaHQgCmluIGVpbmVtIFBpc3NvaXIgISIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGlzc29pciAoQW5hdG9sLCAxMC4gSnVuIDIwMDMsIDIzOjIzOjU4KToKfiMhIHJuPVBhcnR5IHJ0PTEwNTUyODAxNjQgcmc9d2l0emUKfiMhIHRpZD0xMDU1MjgwMTY0CkxvZXNjaCBEaWNoIGRvY2ggZW5kbGljaCB1bmQgZ2ViIGRlbiBOYW1lbiBhbHMgTWFpbGFsaWFzIGZ1ZXIgZGllIHdlY2hzZWxuZGVuClBhcnR5b3JnYW5pc2F0b3JlbiBmcmVpLi4uIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQaXNzb2lyIChab29rLCAxMC4gSnVuIDIwMDMsIDIzOjMwOjIzKToKfiMhIHJuPUFuYXRvbCBydD0xMDU1MjgwMjM4IHJnPXdpdHplCn4jISB0aWQ9MTA1NTI4MDE2NApBdWZnYWJlIGZ1ZXIgZGVuIDI0LzctUGhyZWFrPwoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFBpc3NvaXIgKFJvbmRhLCAxMC4gSnVuIDIwMDMsIDIzOjMxOjA5KToKfiMhIHJuPVpvb2sgcnQ9MTA1NTI4MDYyMyByZz13aXR6ZQp+IyEgdGlkPTEwNTUyODAxNjQKT2NoLCBlaW5lIHBhc3NlbmRlIGdvZXR0bGljaGUgRnVlZ3VuZyB3YWVyZSBhdWNoIGFuZ2VicmFjaHQuIERlciAyNC83IFBocmVhawppc3QgZ3JhZCBpZGxlLgoKUm9uZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFBpc3NvaXIgKFpvb2ssIDEwLiBKdW4gMjAwMywgMjM6MzE6NDUpOgp+IyEgcm49Um9uZGEgcnQ9MTA1NTI4MDY2OSByZz13aXR6ZQp+IyEgdGlkPTEwNTUyODAxNjQKR29ldHRsaWNoZSBGdWVndW5nZW4gc2luZCBncmFkIGF1cy4KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBQaXNzb2lyIChSb25kYSwgMTAuIEp1biAyMDAzLCAyMzozMjo1MCk6Cn4jISBybj1ab29rIHJ0PTEwNTUyODA3MDUgcmc9d2l0emUKfiMhIHRpZD0xMDU1MjgwMTY0ClRzLiBEYXMga29tbXQgZGF2b24sIHdlbm4gbWFuIHNpY2ggbnVyIGVpbmVuIDgvNS1Hb3R0IGxlaXN0ZW4ga2Fubi4KQmlsbGlncmFtc2NoLgoKUm9uZGEgKndlciBiaWV0ZXQgQXN5bCBmdWVyIGdlYnJhdWNodGVzIFNhdmVmaWxlPyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBmYXJyZXIgKERlZXBibHVlLCAxMi4gSnVuIDIwMDMsIDIwOjAwOjA2KToKRGVyIFBmYXJyZXIgZWluZXMga2xlaW5lbiBEb3JmZXMgZ2VodCB6dW0gQXJ6dCB3ZWlsIGlobSBzZWl0IGVpbmlnZXIKWmVpdCBuaWNodCBzbyBndXQgaXN0LgpEZXIgRG9rdG9yIHVudGVyc3VjaHQgaWhuIHVuZCBzdGVsbHQgZmVzdCwgZGFzcyBkZXIgUGZhcnJlciB1bnRlciBlaW5lcgpHZXNjaGxlY2h0c2tyYW5raGVpdCBsZWlkZXQuRGVyIFBhc3RvciBpc3QgdGllZiBiZXN0dWVyenQgdW5kIGZyYWd0IGRlbgpBcnp0IHdhcyBtYW4gamV0enQgbWFjaGVuIGtvZW5uZS4gRGllc2VyIGJlcnVoaWd0IGlobiAgdW5kIG1laW50LCBlcgp2ZXJzY2hyZWliZSBpaG0gamV0enQgZWluIE1pdHRlbC4gV2VubiBlciBkYXMgbmVobWUsIHdhZXJlIGFsbGVzCnNjaG5lbGwgd2llZGVyIGluIE9yZG51bmcuIFVuZCBkYW1pdCBlcyBuaWNodCBzbyBhdWZmYWxsZW4gd3VlcmRlLCB3YXMKZXIgZGVtIFBhc3RvciB2ZXJzY2hyZWliZSwgd3VlcmRlIGVyIG5vdGllcmVuLCBkYXNzIGVzIGVpbiBNaXR0ZWwgZ2VnZW4KenUgZmV0dGVzIEVzc2VuIHNlaS4gRGVyIFBhc3RvciB2ZXJsYWVzc3QgZ2x1ZWNrbGljaCBkaWUgUHJheGlzIHVuZApnZWh0IGluIGRpZSBBcG90aGVrZSwgdW0gZGFzIFJlemVwdCBlaW56dWxvZXNlbi4gRGVyIEFwb3RoZWtlciBrZWhydAprdXJ6IGRhcmF1ZiBtaXQgZGVtIE1lZGlrYW1lbnQgd2llZGVyIHp1cnVlY2sgdW5kIGxlZ3Qgbm9jaCBlaW4KUGFlY2tjaGVuIEtvbmRvbWUgb2JlbmF1Zi4gRGFyYXVmIGZyYWd0IGRlciBQYXN0b3IgZ2FueiBlbnRzZXR6dCwgd2FzCmRlbm4gZGFzIHNvbGxlLiBEYSBsYWVjaGVsdCBpaG4gZGVyIEFwb3RoZWtlciBhbiB1bmQgbWVpbnQ6ICJXZW5uIFNpZQpkYXMgbmFlY2hzdGUgbWFsIHdpZWRlciBmZXR0IGVzc2VuLCBkYW5uIHppZWhlbiBzaWUgZGFzIGVpbmZhY2ggdWViZXIKZGVuIExvZWZmZWwuLi4iCihhdWQgZC50LmouKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2xvIChEZWVwYmx1ZSwgMTIuIEp1biAyMDAzLCAyMDowMDo0NCk6Ckdlc3Rlcm4gc2FzcyBpY2ggYmVpbSBCdXJnZXItS2luZyBhdWYgZGVtIHN0aWxsZW4gT2VydGNoZW4sIGFscyBpY2ggZWluZQpTdGltbWUgZHVyY2ggZGllIFRyZW5ud2FuZCBob2VydGU6ICJIaSwgd2llIGdlaHQncz8iCk5vcm1hbGVyd2Vpc2UgYmluIGljaCBqYSBuaWNodCBkZXIgVHlwLCBkZXIgYXVmIEtvbnZlcnNhdGlvbiBpbSBIZXJyZW5rbG8Kc3RlaHQsIGFiZXIgdHJvdHpkZW0gYW50d29ydGV0ZSBpY2g6ICJTY2hvbiBva2F5LCBkYW5rZS4iClVuZCBkaWUgU3RpbW1lIHNhZ3RlOiAiV2FzIG1hY2hzdCBkdSBnZXJhZGU/IgpXYXMgZnVlciBlaW5lIEZyYWdlPyBBbiBkaWVzZW0gT3J0PyBJY2ggZGFjaHRlIGVzIHdhZXJlIHZpZWxsZWljaHQgdW5wYXNzZW5kCmluIGRpZSBEZXRhaWxzIHp1IGdlaGVuLCB1bmQgbWVpbnRlOiAiTmEgamEuIERhcyBVZWJsaWNoZSBoYWx0ISIKQWxzIGRpZSBTdGltbWUgcGxvZXR6bGljaCBmcmFndGU6ICJLYW5uIGljaCBmdWVyIG5lIFdlaWxlIHJ1ZWJlcmtvbW1lbj8iClZvZWxsaWcgaXJyaXRpZXJ0IGZsdWVzdGVydGUgaWNoOiAiV2FydW0gZGVubiBydWViZXJrb21tZW4/IgpTY2hpZW4gZWluIFBlcnZlcnNlciB6dSBzZWluIHdlaWwgZGllIFN0aW1tZSBhbnR3b3J0ZXRlOiAiSWNoIGtvZW5udGUgZXMgZGlyCnNvIHJpY2h0aWcgYmVzb3JnZW4hIgpNaWNoIHBhY2t0ZSBkaWUgUGFuaWssIGljaCBzcGFydGUgbWlyIGRhcyBQYXBpZXIsIHpvZyBzY2huZWxsc3RlbnMgbWVpbmUKSG9zZSBob2NoLCBzdG90dGVydGUgaWNoIGhhZXR0ZSBub2NoIGVpbmVuIGRyaW5nZW5kZW4gVGVybWluIHVuZCBzdHVlcnp0ZSBuYWNoCmRyYXVzc2VuLiBLdXJ6IHZvciBkZXIgVHVlciBob2VydGUgaWNoIGRhbm4gbm9jaCwgd2llIGRlciBUeXAgc2FndGU6ICJIb2VyIHp1IQpJY2ggcnVmIHNwYWV0ZXIgenVydWVjaywgaXJnZW5kIGVpbiBJZGlvdCBxdWF0c2NodCBtaXIgc3RhZW5kaWcgZGF6d2lzY2hlbi4uLiIKKGF1cyBkLnQuai4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpib3JnIChTYXJhaCwgMTMuIEp1biAyMDAzLCAxNDoxMzowMCk6CkhpLCB3YXIgZGVyIEFydGlrZWwgbWl0IGRlciBCb3JnLUFzc2ltaWxpZXJ1bmcgaW4gdmVyc2NoaWVkZW5lbiBEaWFsZWt0ZW4gYXVzCmRpZXNlciBSdWJyaWs/IEljaCB3dWVyZCBkZW4gbmFlbWxpY2ggZ2VybmUgbm9jaG1hbCBsZXNlbi4gS29lbm50ZSB3ZXIgYXVjaAppbW1lciBkZW4gZ2Vwb3N0ZWQgaGF0dGUsIGRhcyBub2NobWFsIG1hY2hlbj8KCkRhbmtlLCBTYXJhaAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGJvcmcgKENhdHdlYXpsZSwgMTMuIEp1biAyMDAzLCAxNDo1MTozNCk6Cn4jISBybj1TYXJhaCBydD0xMDU1NTA2MzgwIHJnPXdpdHplCn4jISB0aWQ9MTA1NTUwNjM4MApodHRwOi8vbWcubXVkLmRlL2NnaS1iaW4vbXBhLnBsCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogYm9yZyAoQW5hdG9sLCAxMy4gSnVuIDIwMDMsIDE0OjUzOjE0KToKfiMhIHJuPUNhdHdlYXpsZSBydD0xMDU1NTA4Njk0IHJnPXdpdHplCn4jISB0aWQ9MTA1NTUwNjM4MApBbHRlcm5hdGl2IHJlaWNodCBhdWNoIGRhcyBLZXl3b3JkICJGSlVUQUlMIiBiZWkgZWluZXIgYmVsaWViaWdlbiAKU3VjaG1hc2NoaW5lLi4uIDopCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3JhZCBnZWxlc2VuLiAoQmFtYmksIDEzLiBKdW4gMjAwMywgMjA6NDU6MjIpOgpEaWUgTXV0dGVyIHNhZ3QgenUgaWhyZW0gU29objogIldlbm4gaWNoIHZlcnJlaXNlLCBkYW5uIG5pbW1zdCBEdSBqZWRlbiBUYWcKZGllIEVpZXIgYXVzIGRlbSBIdWVobmVyc3RhbGwgdW5kIHNjaHJlaWJzdCBhdWYgamVkZXMgRWksIHdhbm4gZXMgZ2VsZWd0Cnd1cmRlLiIKLSAiTWFjaCBpY2ggTXV0dGVyLiIKQWxzIHNpZSB2b24gZGVyIFJlaXNlIHp1cnVlY2trb21tdCwgc3RlaHQgYXVmIGplZGVtIEVpLi4uCgoKICAgICAiaGV1dGUiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXR6IHNvZWJlbiB3b2FuZGVycyBnZWtsYXV0IC4uLiAoTGlhcmEsIDE0LiBKdW4gMjAwMywgMjM6MjQ6MzUpOgpFaW4ganVuZ2VyIE1hbm4gemllaHQgaW4gZGllIFN0YWR0IHVuZCBnZWh0IHp1IGVpbmVtIGdyb3NzZW4gS2F1ZmhhdXMsIHVtIHNpY2gKZG9ydCBuYWNoIGVpbmVtIEpvYiB1bXp1c2VoZW4uIE1hbmFnZXI6ICJIYWJlbiBTaWUgaXJnZW5kd2VsY2hlIEVyZmFocnVuZ2VuCmFscyBWZXJrYWV1ZmVyPyIgCkp1bmdlciBNYW5uOiAiS2xhciwgZGEgd28gaWNoIGhlcmtvbW1lLCB3YXIgaWNoIGltbWVyIGRlciBUb3AtVmVya2FldWZlciEiIApEZXIgTWFuYWdlciBmaW5kZXQgZGVuIHNlbGJzdGJld3Vzc3RlbiBqdW5nZW4gTWFubiBzeW1wYXRoaXNjaCB1bmQgc3RlbGx0IGlobgplaW4uIERlciBlcnN0ZSBBcmJlaXRzdGFnIGlzdCBoYXJ0LCBhYmVyIGVyIG1laXN0ZXJ0IGlobi4gCk5hY2ggTGFkZW5zY2hsdXNzIGtvbW10IGRlciBNYW5hZ2VyIHp1IGlobS4gIldpZXZpZWwgS3VuZGVuIGhhdHRlbiBTaWUgZGVubgpoZXV0ZT8iIApKdW5nZXIgTWFubjogIkVpbmVuLiIgCk1hbmFnZXI6ICJOdXIgRWluZW4/IFVuc2VyZSBWZXJrYWV1ZmVyIG1hY2hlbiBpbSBTY2huaXR0IDIwIGJpcyAzMCBWZXJrYWV1ZmUKcHJvIFRhZyEgV2llIGhvY2ggd2FyIGRlbm4gZGllIFZlcmthdWZzc3VtbWU/IiAKSnVuZ2VyIE1hbm46ICIyMTAzMjUgRXVybyB1bmQgNjUgQ2VudC4iIApNYW5hZ2VyOiAiMjEwMzI1IEV1cm8gdW5kIDY1IENlbnQ/IFdhcyBoYWJlbiBTaWUgZGVubiB2ZXJrYXVmdD8iIApKdW5nZXIgTWFubjogIlp1ZXJzdCBoYWJlIGljaCBkZW0gTWFubiBlaW5lbiBrbGVpbmVuIEFuZ2VsaGFrZW4gdmVya2F1ZnQsIGRhbm4KdmVya2F1ZnRlIGljaCBpaG0gZWluZSBuZXVlIEFuZ2VscnV0ZS4gRGFubiBmcmFndGUgaWNoIGlobiwgd28gZXIgZGVubgplaWdlbnRsaWNoIHp1bSBBbmdlbG4gaGlud29sbHRlLCB1bmQgZXIgc2FndGU6IEhvY2ggYW4gZGllIEt1ZXN0ZS4gQWxzbyBzYWd0ZQppY2ggaWhtLCBlciB3dWVyZGUgZWluIEJvb3QgYnJhdWNoZW4uIFdpciBnaW5nZW4gYWxzbyBpbiBkaWUgQm9vdHNhYnRlaWx1bmcsCnVuZCBpY2ggdmVya2F1ZnRlIGlobSBkaWVzZSBkb3BwZWxtb3RvcmlnZSBTZWF3aW5kLiBFciBiZXp3ZWlmZWx0ZSwgZGFzcyBzZWluCkhvbmRhIENpdmljIGRpZXNlcyBCb290IHd1ZXJkZSB6aWVoZW4ga29lbm5lbiwgYWxzbyBnaW5nIGljaCBtaXQgaWhtIHJ1ZWJlciBpbgpkaWUgQXV0b21vYmlsYWJ0ZWlsdW5nIHVuZCB2ZXJrYXVmdGUgaWhtIGRpZXNlbiBQYWplcm8gbWl0IEFsbHJhZGFudHJpZWIuIiAKTWFuYWdlcjogIlNpZSB3b2xsZW4gZGFtaXQgc2FnZW4sIGVpbiBNYW5uIGthbSB6dSBpaG5lbiwgdW0gZWluZW4gQW5nZWxoYWtlbgp6dSBrYXVmZW4sIHVuZCBTaWUgaGFiZW4gaWhtIGdsZWljaCBlaW5lIG5ldWUgQW5nZWxydXRlLCBlaW4gQm9vdCB1bmQgZWluZW4KR2VsYWVuZGV3YWdlbiB2ZXJrYXVmdD8iIApKdW5nZXIgTWFubjogIk5laW4sIGVyIGthbSBoZXIgdW5kIHdvbGx0ZSBlaW5lIFBhY2t1bmcgVGFtcG9ucyBmdWVyIHNlaW5lIEZyYXUKa2F1ZmVuLCBhbHNvIHNhZ3RlIGljaCB6dSBpaG06IE51biwgd28gSWhyIFdvY2hlbmVuZGUgc293aWVzbyBsYW5nd2VpbGlnIGlzdCwKa29lbm50ZW4gU2llIGViZW5zb2d1dCBBbmdlbG4gZmFocmVuLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmV1ZXIgKERlZXBibHVlLCAxNi4gSnVuIDIwMDMsIDE2OjQwOjAwKToKRGllIFVuaXZlcnNpdGFldCBicmVubnQuIERlciBGZXVlcndlaHJtYW5uIHJlbm50IG1pdCBkZW0gU2NobGF1Y2ggenVtIEVpbmdhbmcKdW5kIHRyaWZmdCB1bmQgc3RvZXNzdCBkb3J0IGZhc3QgbWl0IGRlbSBHZXNjaGljaHRzcHJvZmVzc29yIHp1c2FtbWVuLiBEZXIKbWVpbnQ6ICJXb2hpbiBkZXMgV2VnZXMsIGR1IE1hbm4gZGVzIEZldWVycz8iIERlciBGZXVlcndlaHJtYW5uIHNjaG9uIGV0d2FzCmdlcmVpenQ6ICJadW0gSGVyZCBkZXMgQnJhbmRlcywgZHUgTG9jaCBkZXMgQXJzY2hlcyIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBMZSBvZGVyIGxhPyAoVGVycnksIDE3LiBKdW4gMjAwMywgMTg6MDc6NTIpOgp+IyEgcm49RWxiZXJldCBydD0xMDU1MjM3NDg5IHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQpEZXIgV2l0eiBzdGFtbXRlIGF1cyBGcmFua3JlaWNoLCBuZWhtIGljaCBhbi4KRGEgZXMgZG9ydCAibCdvcmRpbmF0ZXVyIiBoZWlzc3QsIGRhcyBHZXNjaGxlY2h0IGFsc28gbmljaHQgYWJ6dWxlc2VuIGlzdCwKa2FubiBtYW4gZGFzIGF1Y2ggbmFjaHZvbGx6aWVoZW4uIEltIERldXRzY2hlbiB3dWVyZGUgaWNoIGhpZXIgaGFsdCBuaWNodCBuYWNoCiJsZSBvZGVyIGxhIiBmcmFnZW4gc29uZGVybiBuYWNoICJkZXIgb2RlciBkaWUiIChzcHJpY2ggYXVjaCBkYXMgImluCkZyYW5rcmVpY2ggIiB3ZWdsYXNzZW4pLgoKSXN0IG51ciBuZSBJZGVlLCBpY2ggaGF0dGUgYWJlciBGcmFuei1MayB1bmQgZ2xhdWIgbmllIGRhcyBXb3J0ICJDb21wdXRlciIKKHdpZSBkYXMgc2Nob24gYXVmIGZyYW56b2VzaXNjaCBrbGluZ3QgKmdnKikgZ2Vob2VydCB6dSBoYWJlbiAod2VkZXIgaGllciBub2NoCmluIEYpLgoKS2xlaW4gVGVycnkgdmVyc3VjaHQgZWluZW4gV2l0eiB6dSBlcmtsYWVyZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogTGUgb2RlciBsYT8gKFpvb2ssIDE3LiBKdW4gMjAwMywgMjA6MTM6MjApOgp+IyEgcm49VGVycnkgcnQ9MTA1NTg2NjA3MiByZz13aXR6ZQp+IyEgdGlkPTEwNTUxNzI4NjEKWm9vayBzY2h3ZW5rdCBzZWluIEZhZWhuY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IExlIG9kZXIgbGE/IChNb29uc2hpbmUsIDE3LiBKdW4gMjAwMywgMjA6MjU6MjMpOgp+IyEgcm49Wm9vayBydD0xMDU1ODczNjAwIHJnPXdpdHplCn4jISB0aWQ9MTA1NTE3Mjg2MQpEYXMgJ0FiZ2VsZWhudCEnIC1GYWVobmNoZW4/IDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogTGUgb2RlciBsYT8gKFpvb2ssIDE3LiBKdW4gMjAwMywgMjM6NTA6MzIpOgp+IyEgcm49TW9vbnNoaW5lIHJ0PTEwNTU4NzQzMjMgcmc9d2l0emUKfiMhIHRpZD0xMDU1MTcyODYxCk5laW4sIGRhcyBoYWJlIGljaCBzZWluZW0gQmVzaXR6ZXIgenVydWVjayBnZWdlYmVuLiBBbGxlcmRpbmdzIGhhYmUgaWNoIHZvcmhlcgpkaWUgQmVzY2hyaWZ0dW5nIGdlbmF1IGFiZ2VzY2hyaWViZW4uCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS29tbXQgZWluIEVsZiB6dW0gQXJ6dC4uLiAoSHVtbmksIDE4LiBKdW4gMjAwMywgMTk6MzM6NDkpOgpLb21tdCBlaW4gRWxmIG5hY2ggTmliZWxoZWltIGlucyBLcmFua2VuaGF1cyB1bmQgc2FndDogLCxIZXJyIERva3RvciwgaWNoIGhhYgpuZW4gQmFuZHd1cm0uJycgU2FndCBkZXIgRG9rdG9yOiAsLEtlaW4gUHJvYmxlbSwgemllaCBEaWNoIGF1cy4nJyBEZXIgRWxmCnppZWh0IHNpY2ggYXVzLCBob2x0IGVpbmUgYmFuYW5lIHVuZCBlaW5lbiBLZWtzIHVuZCBzY2hpZWJ0IGRlbSBFbGYgYmVpZGVzIGluCmRlbiBIaW50ZXJuLiBEZXIgYmVzY2h3ZXJ0IHNpY2ggbm9jaCwgZGFzIHNlaSBrZWluIEFzdCwgYWJlciBkYW5uIGlzdCBlcyBpaG0KYXVjaCBlZ2FsLgoKRGVyIEVsZiBzb2xsIGFtIG5hZWNoc3RlbiBUYWcgd2llZGVya29tbWVuIHVuZCBkZXIgQXJ6dCBtYWNodCBkYXNzZWxiZSBtaXQKaWhtLiBFYmVuc28gYW0gZHJpdHRlbiBUYWcuCgpBbSB2aWVydGVuIFRhZyB6aWVodCBkZXIgRWxmIGRpZSBIb3NlIGF1cyB1bmQgZGVyIEFyenQgc2NoaWVidCBudXIgZGllIEJhbmFuZQpyZWluLiBEZXIgQmFuZHd1cm0ga29tbXQgcmF1cyB1bmQgZnJhZ3Q6ICwsVW5kPyBXbyBibGVpYnQgZGVyIEtla3M/JycgLQpQQVRTQ0ghCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtvbW10IGVpbiBFbGYgenVtIEFyenQuLi4gKEh1bW5pLCAxOC4gSnVuIDIwMDMsIDE5OjM4OjAyKToKfiMhIHJuPUh1bW5pIHJ0PTEwNTU5NTc2Mjkgcmc9d2l0emUKfiMhIHRpZD0xMDU1OTU3NjI5CmltIGVyc3RlbiBBYnNjaG5pdHQgZHVlcmZ0IGlociBhbiBlaW5lciBTdGVsbGUgZWluICwsRGVyIEFyenQnJyBlaW5mdWVnZW4uIEhhYgprZWluZSBMdXN0IG5ldSB6dSBwb3N0ZW4uCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtvbW10IGVpbiBFbGYgenVtIEFyenQuLi4gKEVsYmVyZXQsIDE4LiBKdW4gMjAwMywgMTk6NDA6NDUpOgp+IyEgcm49SHVtbmkgcnQ9MTA1NTk1NzYyOSByZz13aXR6ZQp+IyEgdGlkPTEwNTU5NTc2MjkKZWluIEVsZiBsYWVzc3Qgc2ljaCBuaWNodHMgZWluc2NoaWViZW4gdW5kIHNjaG9uIGdhciBuaWNodCBldHdhcyB3YXMga2VpbiBBc3QKaXN0CgpFbGJpIChlbXBvZXJ0KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVG91cmlzdGVuIChUcm95LCAxOC4gSnVuIDIwMDMsIDE5OjU2OjA0KToKRGllc2UgRnJhZ2VuIHVlYmVyIFN1ZWRhZnJpa2Egd3VyZGVuIGF1ZiBlaW5lciBzdWVkYWZyaWthbmlzY2hlbgpUb3VyaXNtdXN3ZWJzZWl0ZSBnZXN0ZWxsdCB1bmQgdm9tIFdlYm1hc3RlciBkZXIgU2VpdGUgYmVhbnR3b3J0ZXQuIAoKRjogV2lyZCBlcyBlaWdlbnRsaWNoIHdpbmRpZyBpbiBTdWVkYWZyaWthPyBJY2ggaGFiZSBpbSBGZXJuc2VoZW4gbm9jaCBuaWUKZ2VzZWhlbiwgZGFzcyBlcyByZWduZXQuIFdpZSB3YWNoc2VuIGRvcnQgZGFubiBkaWUgUGZsYW56ZW4/IChVSykKQTogV2lyIGltcG9ydGllcmVuIGFsbGUgUGZsYW56ZW4gdm9sbCBhdXNnZXdhY2hzZW4gdW5kIHNldHp0ZW4gdW5zIGRhbm4gdW0Kc2llIGhlcnVtIHVuZCBzZWhlbiB6dSwgd2llIHNpZSBlaW5nZWhlbi4KCkY6IFdlcmRlIGljaCBpbiBkZW4gU3RyYXNzZW4gRWxlZmFudGVuIHNlaGVuIGtvZW5uZW4/IChVU0EpCkE6IEhhZW5ndCBkYXZvbiBhYiwgd2llIHZpZWwgQWxrb2hvbCBTaWUgdHJpbmtlbi4KCkY6IEljaCBtb2VjaHRlIHZvbiBEdXJiYW4gbmFjaCBLYXBzdGFkdCBsYXVmZW4gLSBrYW5uIGljaCBkYWZ1ZXIgZGVuCkVpc2VuYmFobnNjaGllbmVuIGZvbGdlbj8gKFNjaHdlZGVuKQpBOiBTaWNoZXIsIGVzIHNpbmQgamEgbnVyIHp3ZWl0YXVzZW5kIEtpbG9tZXRlci4gTmVobWVuIFNpZSBhYmVyIHNlaHIgdmllbApXYXNzZXIgbWl0LgoKRjogSXN0IGVzIHNpY2hlciwgaW4gZGVuIEJ1ZXNjaGVuIGluIFN1ZWRhZnJpa2EgaGVydW16dWxhdWZlbj8gKFNjaHdlZGVuKQpBOiBTbywgZXMgaXN0IGFsc28gd2Fociwgd2FzIG1hbiB1ZWJlciBTY2h3ZWRlbiBzYWd0PwoKRjogR2lidCBlcyBBVE1zIChHZWxkYXV0b21hdGVuKSBpbiBTdWVkYWZyaWthPyBLb2VubmVuIFNpZSBtaXIgZWluZSBMaXN0ZSB2b24KZGllc2VuIGluIEpvaGFubmVzYnVyZywgS2Fwc3RhZHQsIEtueXNuYSB1bmQgSmVmZnJleSdzIEJheSBzY2hpY2tlbj8gKFVLKQpBOiBBbiB3YXMgaXN0IElociBsZXR6dGVyIFNrbGF2ZSBnZXN0b3JiZW4/CgpGOiBLb2VubmVuIFNpZSBtaXIgSW5mb3JtYXRpb25lbiB1ZWJlciBLb2FsYWJhZXJlbnJlbm5lbiBpbiBTdWVkYWZyaWthCnNjaGlja2VuPwooVVNBKQpBOiBBdXMtdHJhLWxpLWVuIGlzdCBkaWVzZSBncm9zc2UgSW5zZWwgaW4gZGVyIE1pdHRlIGRlcyBQYXppZmlrcy4gQWYtcmkta2EKaXN0IGRlciBncm9zc2UgZHJlaWVja2lnZSBLb250aW5lbnQgc3VlZGxpY2ggdm9uIEV1cm9wYSwgd28gZXMga2VpbmUuLi4gQWNoLAp2ZXJnZXNzZW4gU2llJ3MuIFNpY2hlciwgS29hbGFiYWVyZW5yZW5uZW4gZmluZGVuIGplZGVuIERpZW5zdGFnYWJlbmQgaW4KSGlsbGJyb3cgc3RhdHQuIEtvbW1lbiBzaWUgbmFja3QuCgpGOiBXZWxjaGUgUmljaHR1bmcgaXN0IE5vcmRlbiBpbiBTdWVkYWZyaWthPyAoVVNBKQpBOiBTZWhlbiBTaWUgbmFjaCBTdWVkZW4gdW5kIGRyZWhlbiBTaWUgc2ljaCB1bSA5MCBHcmFkLiBLb250YWt0aWVyZW4gU2llCnVucywgd2VubiBTaWUgaGllciBhbmtvbW1lbiwgZGFubiBrb2VubmVuIHdpciBJaG5lbiBkaWUgcmVzdGxpY2hlbgpIaW1tZWxzcmljaHR1bmdlbiBzY2hpY2tlbi4KCkY6IEthbm4gaWNoIEJlc3RlY2sgaW4gU3VlZGFmcmlrYSBlaW5mdWVocmVuPyAoVUspCkE6IFdpZXNvPyBOZWhtZW4gU2llIGRvY2ggZGllIEZpbmdlciwgZ2VuYXUgd2llIHdpci4KCkY6IEtvZW5uZW4gU2llIG1pciBlaW5lbiBQbGFuIG1pdCBkZW4gQXVmdHJpdHRlbiBkZXIgV2llbmVyIFNhZW5nZXJrbmFiZW4Kc2NoaWNrZW4/IChVU0EpCkE6IE9lcy10ZXItcmVpY2ggKEF1c3RyaWEpIGlzdCBkYXMga2xpdHpla2xlaW5lIExhbmQsIGRhcyBhbiBEZXV0c2NoLWxhbmQKYW5ncmVuenQsIGluIGRlbSBlcy4uLiBBY2gsIHZlcmdlc3NlbiBTaWUgJ3MuIFNpY2hlciwgZGllIFdpZW5lcgpTYWVuZ2Vya25hYmVuIHRyZXRlbiBqZWRlbiBEaWVuc3RhZ2FiZW5kIG5hY2ggZGVuIEtvYWxhYmFlcmVucmVubmVuIGluCkhpbGxicm93IGF1Zi4gS29tbWVuIFNpZSBuYWNrdC4KCkY6IEhhYmVuIFNpZSBQYXJmdW0gaW4gU3VlZGFmcmlrYT8gKEZyYW5rcmVpY2gpCkE6IE5laW4sIFdJUiBzdGlua2VuIG5pY2h0IQoKRjogSWNoIGhhYmUgZWluZW4gbmV1ZW4gSnVuZ2JydW5uZW4gZXJmdW5kZW4uIEtvZW5uZW4gU2llIG1pciBzYWdlbiwgd28gaWNoCmRlbiBpbiBTdWVkYWZyaWthIHZlcmthdWZlbiBrYW5uPyAoVVNBKQpBOiBVZWJlcmFsbCwgd28gZXMgZ2VudWcgQW1lcmlrYW5lciBnaWJ0IG9kZXIgaW4gSGlsbGJyb3cgYWJlciBrb21tZW4gU2llCm5hY2t0LgoKRjogS29lbm5lbiBTaWUgbWlyIGRpZSBSZWdpb25lbiBpbiBTdWVkYWZyaWthIG5lbm5lbiwgd28gZGllIHdlaWJsaWNoZQpCZXZvZWxrZXJ1bmcgbmllZHJpZ2VyIGlzdCwgYWxzIGRpZSBtYWVubmxpY2hlPyAoSXRhbGllbikKQTogSmEsIGluIE5hY2h0a2x1YnMgZnVlciBTY2h3dWxlLgoKRjogRmVpZXJuIFNpZSBXZWlobmFjaHRlbiBpbiBTdWVkYWZyaWthPyAoRnJhbmtyZWljaCkKQTogTnVyIGFuIFdlaWhuYWNodGVuLgoKRjogR2lidCBlcyBLaWxsZXJiaWVuZW4gaW4gU3VlZGFmcmlrYT8gKERldXRzY2hsYW5kKQpBOiBOb2NoIG5pY2h0LCBhYmVyIGZ1ZXIgU2llIGtvZW5uZW4gd2lyIHNpZSBpbXBvcnRpZXJlbi4KCkY6IFdlcmRlIGljaCBkb3J0IEVuZ2xpc2NoIHNwcmVja2Uga29lbm5lbj8gKFVTQSkKQTogSmEsIGFiZXIgU2llIG11ZXNzZW4gZXMgZXJzdCBsZXJuZW4uCgpGOiBCaXR0ZSBzY2hpY2tlbiBTaWUgbWlyIGVpbmUgTGlzdGUgbWl0IGRlbiBBZXJ6dGVuLCBkaWUgZWluIFNlcnVtIGdlZ2VuCktsYXBwZXJzY2hsYW5nZW5iaXNzZSBoZXJzdGVsbGVuIGtvZW5uZW4uIChVU0EpCkE6IEtsYXBwZXJzY2hsYW5nZW4gZ2lidCBlcyBpbiBBLW1lci1pLWthLCB3byBTSUUgaGVya29tbWVuLiBBbGxlCnN1ZWRhZnJpa2FuaXNjaGVuIFNjaGxhbmdlbiBzaW5kIHZvbGxrb21tZW4gaGFybWxvcywga29lbm5lbiBzaWNoZXIKZ2VoYW5kaGFidCB3ZXJkZW4gdW5kIGVpZ25lbiBzaWNoIGd1dCBhbHMgSGF1c3RpZXJlLgoKRjogR2lidCBlcyBTdXBlcm1hZXJrdGUgaW4gS2Fwc3RhZHQgdW5kIGdpYnQgZXMgZGFzIGdhbnplIEphaHIgdWViZXIgTWlsY2g/CihEZXV0c2NobGFuZCkKQTogTmVpbiwgd2lyIHNpbmQgZWluZSBmcmllZGxpY2hlIFppdmlsaXNhdGlvbiB2b24gdmVnYW5pc2NoZW4KQmVlcmVuc2FtbWxlcm4uIE1pbGNoIGlzdCBpbGxlZ2FsLgoKOCo+IFRyb3kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRhcndpbiAyMDAzIChHYW5kbywgMjMuIEp1biAyMDAzLCAyMDoyNjozNCk6Clp1ciBFcmlubmVydW5nOiBkaWUgRGFyd2luLUF3YXJkcyBzaW5kIGVpbmUgamFlaHJsaWNoZSBFaHJ1bmcgZnVlciBkaWUKUGVyc29uLCBkaWUgZGVyIEJldm9lbGtlcnVuZyBkZW4gZ3Jvc3NlbiBEaWVuc3QgZXJ3aWVzZW4gaGF0LCBzaWNoIHNlbGJzdAphdWYgYXVzc2Vyb3JkZW50bGljaCBkYWVtbGljaGUgV2Vpc2UgZGFzIExlYmVuIHp1IG5laG1lbiB1bmQgc29taXQgc2VpbmUKR2VuZSBhdXMgZGVtIEdlbnBvb2wgZGVyIE1lbnNjaGhlaXQgZW50ZmVybnQuIERlciBHZXdpbm5lciBkZXMKRGFyd2luLUF3YXJkcyAyMDAxIHdhciBkZXIgQnVyc2NoZSwgZGVyIHZvbiBlaW5lbSBDb2tlLUF1dG9tYXQKZXJzY2hsYWdlbiB3dXJkZSwgYWxzIGVyIHVtIEdlbGQgenUgc3BhcmVuIGVpbmUgRG9zZSBoZXJhdXN0cmV0ZW4gd29sbHRlCnVuZCBkZXIgQXV0b21hdCBhdWYgaWhuIGZpZWwuCgpVbmQgZGllIE5vbWluaWVydGVuIHNpbmQ6CjkuIEVpbiBqdW5nZXIgS2FuYWRpZXIsIGRlciBkZW4gYmlsbGlnc3RlbiBXZWcgc3VjaHRlLCBiZXRydW5rZW4genUKd2VyZGVuLiBXZWlsIGVyIGtlaW4gR2VsZCBoYXR0ZSwgbWl4dGUgZXIgQmVuemluIG1pdCBNaWxjaC4gRXMgd2FyIGtlaW5lCmdyb3NzZSBVZWJlcnJhc2NodW5nLCBkYXNzIGRpZXNlIFp1c2FtbWVuc2V0enVuZyBpaG4ga3JhbmsgbWFjaHRlIHVuZCBlcgpzaWNoIGZ1ZXJjaHRlcmxpY2ggdWViZXJnZWJlbiBtdXNzdGUgLSBpbiBkZW4gYnJlbm5lbmRlbiBLYW1pbiBzZWluZXMKSGF1c2VzLiBEaWUgZGFyYXVzIHJlc3VsdGllcmVuZGUgRXhwbG9zaW9uIHNwcmVuZ3RlIHNlaW4gSGF1cyB1bmQgdG9ldGV0ZQppaG4gdW5kIHNlaW5lIFNjaHdlc3Rlci4KCjguIEVpbiAzNGphZWhyaWdlciBNYW5uLCBkZXIgdG90IGltIEtlbGxlciBzZWluZXMgSGF1c2VzIGdlZnVuZGVuIHd1cmRlIC0KZXJzdGlja3QuIEVyIHdhciAxLDg1bSBncm9zcyB1bmQgd29nIDExMCBrZy4gRXIgdHJ1ZyBlaW5lbiBGYWx0ZW5yb2NrLAplaW5lbiB3ZWlzc2VuIEJILCBzY2h3YXJ6L3dlaXNzZSBDb3dib3lzdGllZmVsIHVuZCBlaW5lIEZyYXVlbnBlcnVlY2tlLgpBdXNzZXJkZW0gdHJ1ZyBlciBub2NoIGVpbmUgTWlsaXRhZXItR2FzbWFza2UsIGFuIGRlciBkZXIgRmlsdGVyIGFiLSB1bmQKZWluIEd1bW1pc2NobGF1Y2ggYW5nZXNjaHJhdWJ0IHdhci4gRGFzIGFuZGVyZSBFbmRlIGRlcyBTY2hsYXVjaGVzIGdpbmcKaW4gZWluIGhvZWx6ZXJuZXMsIGhvaGxlcyBSb2hyLCB3ZWxjaGVzIGNhLiAzMCBjbSBsYW5nIHVuZCBjYS4gOCBjbSBpbQpEdXJjaG1lc3NlciB3YXIuIERpZSBhbmRlcmUgU2VpdGUgZGllc2VzIFJvaHJlcyBzdGVja3RlIGF1cyB1bmJla2FubnRlbgpHcnVlbmRlbiBpbiBzZWluZW0gUmVrdHVtIHVuZCBkYXMgd2FyIGRlciBHcnVuZCBmdWVyIGRlbiBFcnN0aWNrdW5nc3RvZC4KCjcuIERyZWkgQnJhc2lsaWFuZXIgZmxvZ2VuIGluIGVpbmVtIFVsdHJhLUxlaWNodGZsdWd6ZXVnIGluIG5pZWRyaWdlcgpIb2VoZQphbHMgc2ljaCBlaW4gYW5kZXJlcyBGbHVnemV1ZyBuYWVoZXJ0ZS4gRXMgc2NoZWludCBzbywgZGFzIHNpZQplbnRzY2hpZWRlbiwKZGVuIGFuZGVyZW4gUGFzc2FnaWVyZW4gZGVuICJNb25kIiB6dSB6ZWlnZW4gdW5kIGRhYmVpIGRpZSBLb250cm9sbGUKdWViZXIgaWhyIEZsdWd6ZXVnIHZlcmxvcmVuLiBTaWUgYWxsZSB3dXJkZW4gdG90IGltIFdyYWNrIGlocmVyCmFiZ2VzdHVlcnp0ZW4gTWFzY2hpbmUgZ2VmdW5kZW4gLSBtaXQgZGVuIEhvc2VuIHVuZCBVbnRlcmhvc2VuIGFuIGlocmVuCktub2VjaGVsbi4KCjYuIEVpbmUgUG9saXppc3RpbiBpbiBPaGlvIHd1cmRlIHp1IGVpbmVtIE5vdGZhbGwgZ2VydWZlbi4gU2llIGhhdHRlCmtlaW5lCkRldGFpbHMgYmVrb21tZW4sIGF1c3NlciBkYXMgamVtYW5kIGFucmllZiwgc2VpbiBWYXRlciB3dWVyZGUgbmljaHQgbWVocgphdG1lbi4gTmFjaCBpaHJlciBBbmt1bmZ0IGZhbmQgc2llIGRlbiBNYW5uIG5hY2t0IHVuZCBtaXQgZGVtIEdlc2ljaHQKbmFjaCB1bnRlbiBhdWYgZGVtIFNvZmEgbGllZ2VuZC4gQWxzIHNpZSBpaG4gdW1kcmVodGUgdW0gZGVuIFB1bHMgenUKa29udHJvbGxpZXJlbiB1bmQgV2llZGVyYmVsZWJ1bmdzbWFzc25haG1lbiBlaW56dWxlaXRlbiwgZW50ZGVja3RlIHNpZQpWZXJicmVubnVuZ2VuIGFuIHNlaW5lbiBHZW5pdGFsaWVuLiBOYWNoZGVtIGRlciBLcmFua2Vud2FnZW4ga2FtIHVuZCBkZW4KTWFubiBtaXRuYWhtLCBkZXIgZGFubiBpbSBLcmFua2VuaGF1cyBmdWVyIHRvdCBlcmtsYWVydCB3dXJkZSwgdW50ZXJzdWNodGUKZGllIFBvbGl6ZWkgZGFzIFNvZmEgZXR3YXMgbmFlaGVyIHVuZCBlbnRkZWNrdGUsIGRhc3MgZGVyIE1hbm4gZWluIExvY2ggaW4KZGllIFBvbHN0ZXJraXNzZW4gZ2VtYWNodCBoYXR0ZS4gTmFjaGRlbSBzaWUgZGllIENvdWNoIHVtZ2VkcmVodCBoYXR0ZW4sCmVudGRlY2t0ZW4gc2llLCB3YXMgZGVuIFRvZCBkZXMgTWFubmVzIHZlcnVyc2FjaHQgaGF0dGUuIE9mZmVuc2ljaHRsaWNoCmhhdHRlIGRlciBNYW5uIGRpZSBBbmdld29obmhlaXQsIHNlaW5lbiBQZW5pcyB6d2lzY2hlbiBkaWUgS2lzc2VuIGluIGRhcwpMb2NoIHVuZCB6d2lzY2hlbiB6d2VpIGRhcnVudGVybGllZ2VuZGUgU2Nod2luZ3NjaGxlaWZlciAoYXVzIHdvaGwKa2xhcmVuIEdydWVuZGVuIG9obmUgU2FuZHBhcGllcikgenUgc3RlY2tlbi4gTmFjaCBzZWluZW0gT3JnYXNtdXMgaGF0IGRpZQpFbnRsYWR1bmcgZWluZW4gZGVyIFNjaGxlaWZlciBrdXJ6Z2VzY2hsb3NzZW4sIGVyIHN0YXJiIGFuIGVpbmVtClN0cm9tc2NobGFnLgoKNS4gRWluZSAyN2phZWhyaWdlIEZyYW56b2VzaW4gaGF0dGUgaW4gZGVyIE5hZWhlIHZvbiBNYXJzZWlsbGUgZGllCktvbnRyb2xsZQp1ZWJlciBpaHIgQXV0byB2ZXJsb3JlbiwgcHJhbGx0ZSBnZWdlbiBlaW5lbiBCYXVtIHVuZCB0b2V0ZXRlIHNpY2ggc2VsYnN0CnVuZCB2ZXJsZXR6dGUgaWhyZW4gQmVpZmFocmVyIHNjaHdlci4gQWxzIGVpbiBub3JtYWxlciBWZXJrZWhyc3VuZmFsbApoYWV0dGUgc2ljaCBkaWVzZXIgVW5mYWxsIG5pY2h0IGZ1ZXIgZWluZSBOb21pbmllcnVuZyBxdWFsaWZpemllcnQsIHdhZXJlCmRhIG5pY2h0IGRpZSBUYXRzYWNoZSwgZGFzcyBkaWUgRmFocmVyaW4gdm9uIGlocmVtIFRhbWFnb3RjaGkgYWJnZWxlbmt0CndhciwgZGVyIHBsb2V0emxpY2ggbmFjaCBFc3NlbiAicmllZiIuIFdhZWhyZW5kIHNpZSBhbHNvIGRhbWl0IGJlc2NoYWVmdGlndAp3YXIsIGRpZQpyaWNodGlnZW4gS25vZXBmZSB6dSBkcnVlY2tlbiwgdW0gZGFzIExlYmVuIGRlcyBUYW1hZ290Y2hpcyB6dSByZXR0ZW4sCnZlcmxvciBzaWUgaWhyIGVpZ2VuZXMuCgo0LiBFaW4gMjJqYWVocmlnZXIgTWFubiB3dXJkZSB0b3QgYXVmZ2VmdW5kZW4sIG5hY2hkZW0gZXIgdmVyc3VjaHRlIG1pdApIaWxmZSB2b24gbWVocmVyZW4gR3VtbWliYWVuZGVybiBlaW5lbiBCdW5nZWVqdW1wIHZvbiBlaW5lciAyNW0gaG9oZW4KRWlzZW5iYWhuYnJ1ZWNrZSB6dSBtYWNoZW4uIEVyIGJ1ZW5kZWx0ZSBkaWUgQmFlbmRlciwgYmFuZCBzaWNoIGVpbiBFbmRlIGFuCmVpbmVuIEZ1c3MsIGRhcyBhbmRlcmUgYW4gZGllIEJydWVja2UsIHNwcmFuZyB1bmQga2xhdHNjaHRlIGF1ZiBkYXMKUGZsYXN0ZXIgZGVyIHVudGVyIGRlciBCcnVlY2tlIGR1cmNoZnVlaHJlbmRlbiBTdHJhc3NlLiBEaWUgUG9saXplaSBmYW5kCmhlcmF1cywgZGFzcyBkaWUgTGFlbmdlIGRlcyBHdW1taWJhbmRlcyBncm9lc3NlciB3YXIsIGFscyBkaWUgRGlzdGFuegp6d2lzY2hlbiBkZXIgQnJ1ZWNrZSB1bmQgZGVtIEJvZGVuLgoKMy4gRWluIE1hbm4gaW4gQWxhYmFtYSBzdGFyYiBhbiBLbGFwcGVyc2NobGFuZ2VuYmlzc2VuLiBPZmZlbnNpY2h0bGljaApoYXR0ZW4gZXIgdW5kIGVpbiBGcmV1bmQgZWluZSBBcnQgV3VyZnNwaWVsIGdlc3BpZWx0LCBhbHMgQmFsbCBqZWRvY2gKZWluZQpLbGFwcGVyc2NobGFuZ2UgYmVudXR6dC4gU2VpbiBGcmV1bmQgKG9obmUgRnJhZ2UgZWluIHp1a3VlbmZ0aWdlcgpEYXJ3aW4tQXdhcmRzLUthbmRpZGF0KSBrYW0gaW5zIEtyYW5rZW5oYXVzLgoKMi4gQW5nZXN0ZWxsdGUgZWluZXMgV2FyZW5oYXVzZXMgaW4gV2VzdC1UZXhhcyByZWdpc3RyaWVydGVuIGVpbmVuCnN0YXJrZW4gR2FzZ2VydWNoLiBEYXMgTWFuYWdlbWVudCBldmFrdWllcnRlIGRhcyBHZWJhZXVkZSB1bmQgd2llcyBhbGxlCmFuLCBhbGxlIG1vZWdsaWNoZW4gR2VmYWhyZW5xdWVsbGVuIHdpZSBMaWNodCwgU3Ryb20gdXN3IGF1c3p1c2NoYWx0ZW4uCk5hY2hkZW0gZGFzIEdlYmFldWRlIGV2YWt1aWVydCB3YXIsIGthbWVuIHp3ZWkgVGVjaG5pa2VyIGRlciBHYXNmaXJtYS4KQmVpbSBCZXRyZXRlbiBkZXMgR2ViYWV1ZGVzIGZhbmRlbiBzaWUgZXMgc2Nod2llcmlnLCBzaWNoIGltIGR1bmtsZW4KR2ViYWV1ZGUgenVyZWNodCB6dSBmaW5kZW4uIFp1IElocmVyIEZydXN0cmF0aW9uIGZ1bmt0aW9uaWVydGUga2VpbmUgZGVyCkxhbXBlbi4gWmV1Z2VuIHNhZ3RlbiBzcGFldGVyIGF1cywgZGFzIGVpbmVyIGRlciBUZWNobmlrZXIgaW4gc2VpbmUKVGFzY2hlIGZhc3N0ZSB1bmQgZXR3YXMgaGVyYXVzem9nLCBkYXNzIHdpZSBlaW4gRmV1ZXJ6ZXVnIGF1c3NhaC4gV2FlaHJlbmQKZXIgZGFtaXQgaGVydW1oYW50aWVydGUsIGV4cGxvZGllcnRlIGRhcyBrb21wbGV0dGUgV2FyZW5oYXVzLCBUZWlsZQpkYXZvbiB3dXJkZW4gbm9jaCBpbiAzIE1laWxlbiBFbnRmZXJudW5nIGdlZnVuZGVuLiBWb24gZGVuIFRlY2huaWtlcm4Kc2VsYnN0IHd1cmRlIG5pY2h0cyBtZWhyIGVmdW5kZW4sIGFiZXIgZGFzIEZldWVyemV1ZyB1ZWJlcnN0YW5kIGRpZQpFeHBsb3Npb24gdm9lbGxpZyB1bnZlcnNlaHJ0LgoKMS4gQXVmZ3J1bmQgZWluZXIgV2V0dGUgendpc2NoZW4gZHJlaSBGcmV1bmRlbiwgaGF0IGRlciBLYWxpZm9ybmllcgpFdmVyaXR0ClNhbmNoZXogdmVyc3VjaHQsIHNlaW5lIEVpZXIgaW4gZWluZXIgR29sZmJhbGwtV2FzY2htYXNjaGluZSBkZXMKb2VydGxpY2hlbiBHb2xmY2x1YnMgenUgd2FzY2hlbi4gVW0gd2llZGVyIGVpbm1hbCB6dSBiZXdlaXNlbiwgZGFzcyBCaWVyCnVuZCBUZXN0b3N0ZXJvbiBlaW5lIGdhbnogc2NobGVjaHRlIE1pc2NodW5nIHNpbmQsIG5haG0gZXIgZGllCldhc2NobWFzY2hpbmUgdW5kIGhpbmcgc2VpbiBHZW1hZWNodGUgdGllZiBoaW5laW4uIEVpbmVyIHNlaW5lciBGcmV1bmRlCmRyZWh0ZSBhbiBkZXIgS3VyYmVsIGRlcyBHZXJhZXRlcyB3b3JhdWYgaGluIHNpY2ggYWxsZXMsIHdhcyBFdmVyZXR0CmhlaWxpZyB3YXIsIGZlc3QgaW4gZGVyIE1hc2NoaW5lIHZlcmtsZW1tdGUuIFNhbmNoZXosIGRlciBzb2ZvcnQgc2VpbmUKU2NobWVyemdyZW56ZSB1ZWJlcnNjaHJpdHQga29sbGFiaWVydGUgdW5kIGZpZWwgaW4gT2hubWFjaHQuClVuZ2x1ZWNrbGljaGVyd2Vpc2Ugd2FyIGRhcyBHZXJhZXQgZ3V0IGRyZWlzc2lnIFplbnRpbWV0ZXIgaG9laGVyIHVlYmVyIGRlbQpCb2RlbiwgYWxzIHNlaW5lICJCYWVsbGUiIG5vcm1hbGVyd2Vpc2UgaGluZ2VuIHVuZCBzZWluIFNhY2sgd2FyIGRpZQpzY2h3YWVjaHN0ZSBWZXJiaW5kdW5nLiBBbHNvIHJpc3MgZXIgd2FlaHJlbmQgZGVzIEZhbGxzIGF1ZiB1bmQgZWluZXMKc2VpbmVyIEVpZXIgd3VyZGUgaGVyYXVzZ2VyaXNzZW4gdW5kIHZlcnNjaHdhbmQgaW4gZGVyIFdhc2NobWFzY2hpbmUsCndhZWhyZW5kIGRhcyBhbmRlcmUgdm9lbGxpZyB6ZXJxdWV0c2NodCB3dXJkZSBhbHMgZXMgendpc2NoZW4gZGFzIEdlaGFldXNlCnVuZCBkZW0gcm90aWVyZW5kZW4gVGVpbCBpbSBJbm5lcmVuIGRlciBNYXNjaGluZSBmaWVsLiBTYW5jaGV6IHd1cmRlCnNvZm9ydCBpbnMgS3JhbmtlbmhhdXMgZ2VicmFjaHQgdW5kIG1pdCBhbGxlbiBhbmRlcmVuIGRlcyBHb2xmY2x1YnMKdmVyd2llc2VuLgoKCgpEaWUgbGV0enRlIE5vbWluaWVydW5nIHphZWhsdCBqYSBlaWdlbnRsaWNoIG5pY2h0LCB3ZWlsIGRlciBWb2xsaWRpb3QKbmljaHQKZ2VzdG9yYmVuIGlzdC4gRGEgZXIgc2ljaCBhdWYgR3J1bmQgc2VpbmVyIERhZW1saWNoa2VpdCBhYmVyIGF1Y2ggbmljaHQKbWVociB2ZXJtZWhyZW4ga2Fubiwgd3VyZGUgZXMgZXJsYXVidC4uLiIKCgpHYW5kbyBncmluc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyYXUgbWl0IGlocmVtIExpZWJoYWJlciAoR2FuZG8sIDIzLiBKdW4gMjAwMywgMjA6MzM6MzgpOgpFaW5lIEZyYXUgaXN0IHp1c2FtbWVuIG1pdCBpaHJlbSBMaWViaGFiZXIgenVnYW5nZSwgYWxzIHNpZSBob2VydCwgd2llCnNpY2ggZGllIFR1ZXIgb2VmZm5ldCB1bmQgaWhyIEVoZW1hbm4gbmFjaCBIYXVzZSBrb21tdC4KIlNjaG5lbGwhIFN0ZWxsIGRpY2ggaW4gZGllIEVja2UhIgpJbiBhbGxlciBFaWxlIGJlc3BydWVodCBzaWUgaWhyZW4gTGllYmhhYmVyIG1pdCBCYWJ5LU9lbCB1bmQgYmxhZXN0IFRhbGtwdWRlcgp1ZWJlciBpaG4uCiJCZXdlZyBkaWNoIG5pY2h0LCBiaXMgaWNoIGVzIGRpciBzYWdlIiwgZmx1ZXN0ZXJ0IHNpZSBpaG0genUuICJUdSBlaW5mYWNoCnNvLCBhbHMgd2FlcnN0IGR1IGVpbmUgU3RhdHVlLiIKIk9oLCBTY2hhdHohIiBydWZ0IGlociBFaGVtYW5uLCBhbHMgZXIgZGFzIFppbW1lciBiZXRyaXR0LCAid2FzIGlzdCBkYXM/IgoiRGFzIGlzdCBudXIgZWluZSBTdGF0dWUiLCBhbnR3b3J0ZXQgc2llIHdpZSBhdXMgZGVyIFBpc3RvbGUgZ2VzY2hvc3Nlbi4KIkRpZSBTY2htaWR0cyBoYWJlbiBzaWNoIGF1Y2ggZWluZSBmdWVyIGRhcyBTY2hsYWZ6aW1tZXIgZ2VrYXVmdC4gSWNoCmZhbmQgZGllIElkZWUgc28gdG9sbCwgZGFzcyBpY2ggYXVjaCBlaW5lIGZ1ZXIgdW5zIGthdWZ0ZS4iCkRlciBFaGVtYW5uIGlzdCB6dWZyaWVkZW4gdW5kIHNpZSB0cm9sbGVuIHNpY2ggbXVlZGUgaW5zIEJldHQuCkdlZ2VuIHp3ZWkgVWhyIG1vcmdlbnMgc3RlaHQgZGVyIEVoZW1hbm4gYXVmLCBnZWh0IGluIGRpZSBLdWVjaGUsIGJlbGVndApzaWNoIGVpbiBTYW5kd2ljaCB1bmQgaG9sdCBzaWNoIGVpbiBHbGFzIE1pbGNoLgoiSGllciIsIHNhZ3QgZXIgenUgZGVyIFN0YXR1ZS4KIklzcyBldHdhcy4gSWNoIGhhYmUgZHJlaSBUYWdlIGxhbmcgd2llIGVpbiBJZGlvdCBiZWkgZGVuIFNjaG1pZHRzIGltClNjaGxhZnppbW1lciBnZXN0YW5kZW4gdW5kIGtlaW4gU2Nod2VpbiBoYXQgbWlyIHdhcyBhbmdlYm90ZW4uIgoKR2FuZG8gZ3JpbnN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUXVpenNob3cgKERlZXBibHVlLCAyNC4gSnVuIDIwMDMsIDE5OjUzOjA5KToKRGllIGRhZW1saWNoc3RlbiBBbnR3b3J0ZW4gaW4gUXVpenNob3dzLiBUZWlsIDIKCkRpZSBzY2hvZW5zdGVuIEFudHdvcnRlbiBhdXMgZGVyIFJUTC1TaG93ICJEZXIgU2Nod2FlY2hzdGUgZmxpZWd0IiBtaXQgU29uamEKWmlldGxvdy4KCkZyYWdlOiBXZWxjaGVyIFNjaG9rb3JpZWdlbCB0cmFlZ3QgZGVuIGdsZWljaGVuIE5hbWVuIHdpZSBkZXIgcm9lbWlzY2hlCktyaWVnc2dvdHQ/CkFudHdvcnQ6IFNuaWNrZXJzLgoKRnJhZ2U6IFdhcyBzdGFuZCBpbiBkZW4gODBlciBKYWhyZW4gYXVmIHZpZWxlbiBkZXIgcG9wdWxhZXJlbgpBbnRpLUF0b21rcmFmdGJ1dHRvbnM/IEF0b21rcmFmdCwgTmVpbi4uLgpBbnR3b3J0OiBOZWluLgoKRnJhZ2U6IFdlbGNoZSBGdXNzYmFsbGxpZ2Egd3VyZGUgaW0gSmFocmUgMTk2MyBnZWdydWVuZGV0PwpBbnR3b3J0OiAxLiBGQyBLb2VsbgoKRnJhZ2U6IFdpZSBoZWlzc3QgZGllIFVTLVNhZW5nZXJpbiBTcGVhcnMgbWl0IFZvcm5hbWVuPwpBbnR3b3J0OiBXaGl0bmV5LgoKRnJhZ2U6IEFuIHdlbGNoZW0gVmVya2Vocm1pdHRlbCBiZWZpbmRldCBzaWNoIGluIGRlciBSZWdlbCBlaW5lCkdhbGxpb25zZmlndXI/CkFudHdvcnQ6IEFuIGRlciBBbXBlbC4KCkZyYWdlOiBXaWUgd2lyZCBkaWUgS2luZGVya3JhbmtoZWl0IE11bXBzIGltIFZvbGtzbXVuZCBhdWNoIGdlbmFubnQ/CkFudHdvcnQ6IEhhY2tlcGV0ZXIuCgpGcmFnZTogTGllZ3QgTW9udHJldXggaW4gZGVyIFNjaHdlaXogb2RlciBpbiBUaW1idWt0dT8KQW50d29ydDogVGltYnVrdHUuCgpGcmFnZTogV2llIHZpZWxlIERyaXR0ZWwgZXJnZWJlbiBlaW4gR2FuemVzPwpBbnR3b3J0OiBWaWVyLgoKRnJhZ2U6IFdlbGNoZSBtZW5zY2hsaWNoZW4gRXh0cmVtaXRhZXRlbiBzaW5kIGRlbSBLb3BmIGFtIG5hZWNoc3Rlbj8KQW50d29ydDogRGllIEhhYXJlLgoKRnJhZ2U6IFdlbGNoZXIgS3JpZWcgYmlsZGV0IGRpZSBLdWxpc2UgenUgRnJhbmNpcyBGb3JkIENvcHBvbGFzIEZpbG0KIkFwb2NhbHlwc2UgTm93IgpBbnR3b3J0OiBLcmllZyBkZXIgU3Rlcm5lLgoKRnJhZ2U6IFdlbGNoZXMgaGFldWZpZyBydW5kbGljaGUgS29lcnBlcnRlaWwgaXN0IGJlaW0gTWVuc2NoZW4gZHVyY2ggZGVuCkhhbHMgbWl0IGRlbSBSdW1wZiB2ZXJidW5kZW4/CkFudHdvcnQ6IERlciBCYXVjaC4KCkZyYWdlOiBXZWxjaGVzIEtsZWlkdW5nc3N0dWVjayBmdWVyIEZyYXVlbiB3aXJkIGF1Y2ggYWxzICJrbGVpbmVzIHNjaHdhcnplcyIKZ2V6ZWljaG5ldD8KQW50d29ydDogU2xpcC4KCkZyYWdlOiBXZWxjaGVzIGVuZ2xpc2NoZSBXb3J0IGZ1ZXIgIlNjaGxhZyIgdmVyc3RlY2t0IHNpY2ggaW0gQmFuZG5hbWVuIGRlcgpQaWx6a29lcGZlIEpvaG4sIFBhdWwsIEdlb3JnZSB1bmQgUmluZ28/CkFudHdvcnQ6IEhpdC4KCkZyYWdlOiBXZWxjaGUgS3Jva29kaWxhcnQgdHJhZWd0IGVpbmVuIGdyb3NzZW4gYWZyaWthbmlzY2hlbiBGbHVzcyBpbSBOYW1lbj8KQW50d29ydDogQWxpZ2F0b3IuCgpGcmFnZTogV2VubiBEaWUgSW50ZWxsaWdlbnogZWluZXIgUGVyc29uIG1pdCAiQm9obmVuc3Ryb2giIHZlci0gZ2xpY2hlbgp3aXJkLCBpc3QgZGllIFBlcnNvbiBkYW5uIGR1bW0gb2RlciBrbHVnLgpBbnR3b3J0OiBLbHVnLgoKRnJhZ2U6IFdpZSB2aWVsZSBLaWxvbWV0ZXIgd2VyZGVuIGJlaSBlaW5lbSAxMDAwLU1ldGVybGF1ZiB6dXJ1ZWNrIGdlbGVndD8KQW50d29ydDogMTAwMC4KCkZyYWdlOiBXZWxjaGVyIE1vbmF0IGxpZWd0IHp3aXNjaGVuIERlemVtYmVyIHVuZCBGZWJydWFyPwpBbnR3b3J0OiBKdWxpLgoKRnJhZ2U6IFdpZSBsYXV0ZXQgZGVyIFRpdGVsIGRlcyB6ZWhudGVuIEphbWVzLUJvbmQtRmlsbXMgdm9uIDE5Nzc/IERlcgpTcGlvbiwgZGVyLi4uCkFudHdvcnQ6IEFsbGVzIHd1c3N0ZS4KCkZyYWdlOiBXZWxjaGVzIEJhdXdlcmsgd2FyIGRhcyBTeXNtYm9sIGRlciBCcnVlc3NlbGVyIFdlbHRhdXMtIHN0ZWxsdW5nIHZvbgoxOTU4PwpBbnR3b3J0OiBNYWVubmVrZW4gUGlzLgoKRnJhZ2U6IFdhcyBzdG9wZmVuIE1heCB1bmQgTW9yaXR6IGluIGVpbmVtIFN0cmVpY2ggaW4gZGllIFBmZWlmZSB2b24KTGVocmVyIExhZW1wZWw/CkFudHdvcnQ6IERpZSBQZmVpZmUuCgpGcmFnZTogV2VsY2hlbSBkZXV0c2NoZW4gQnVuZGVzbGFuZCBpc3QgZGVyIFNjaHdhcnp3YWxkIHp1enVvcmRuZW4/CkFudHdvcnQ6IFNjaGxlc3dpZy1Ib2xzdGVpbi4KCkZyYWdlOiBXaWUgaGVpc3NlbiBkaWUga3VyemVuIEhhYXJlIGFuIGRlbiBBdXNzZW5rYW50ZW4gZGVyIEF1Z2VubGlkZXJuPwpBbnR3b3J0OiBLb3RsZXR0ZW4uCgpGcmFnZTogTWl0IHdpZSB2aWVsZW4gIk0iIHNjaHJlaWJ0IHNpY2ggZGFzIFdvcnQgS29tbXVuaWthdGlvbiBuYWNoIGRlcgpSZWNodHNjaGVpYnJlZm9ybT8KQW50d29ydDogVmllci4KCkZyYWdlOiBXZWxjaGVzIGRldXRzY2hlIFN1cGVybW9kZWwgZ2FiIEVuZGUgMjAwMCBkaWUgVHJlbm51bmcgdm9uIFRpbQpKZWZmcmV5cyBiZWthbm50PwpBbnR3b3J0OiBDZWxpbmUgRGVsb24uCgpGcmFnZTogTWl0IHdlbGNoZW4gQmVncmlmZiBiZXplaWNobmVuIFNlZWxldXRlIFdpbmRzdGlsbGU/CkFudHdvcnQ6IEJvZS4KCkZyYWdlOiBTZWl0IHdlbGNoZW4gSmFocnplaG50IHdlcmRlbiBpbiBEZXV0c2NobGFuZCBGZXJuc2Voc2VuLSBkdW5nZW4gaW4KRmFyYmUgYXVzZ2VzdHJhaGx0PwpBbnR3b3J0OiBTZWl0IDE5MDAuCgpGcmFnZTogV2VsY2hlIERldXRzY2hlIGdld2FubiBiZWkgZGVuIE9seW1waXNjaGVuIFdpbnRlcnNwaWVsZW4gMTk3NiBpbgpJbm5zYnJ1Y2sgZGVuIFNsYWxvbSB1bmQgZGVuIEFiZmFocnRzbGF1ZiBkZXIgRGFtZW4/CkFudHdvcnQ6IEthdGphIFJpZW1hbm4uCgpGcmFnZTogV2FzIHZlcmJpcmd0IHNpY2ggaGludGVyIGRlbSBLdWVyemVsIElRPwpBbnR3b3J0OiBXaXNzZW5oZWl0LiAKCkZyYWdlOiBXaXJidCBkYXMgRmluYW56YW10IG9kZXIgZWluIGphcGFuaXNjaGVyIEtyYWZ0ZmFocnpldWctIGhlcnN0ZWxsZXIKbWl0IGRlbSBTbG9nYW4gIk5pY2h0cyBpc3QgdW5tb2VnbGljaC4KQW50d29ydDogRGFzIEZpbmFuemFtdC4KCkZyYWdlOiBXaWUgd2lyZCBkZXIgQml0dGVybGlrb2VyIGdlbmFubnQsIGRlciBkZW5uIE5hY2huYW1lbiBlaW5lcwppdGFsaWVuaXNjaGVuIFNhZW5nZXJzIHRyYWVndD8KQW50d29ydDogQW1hcmV0dG8uCgpGcmFnZTogV2VsY2hlciBXYWx6ZXIgaXN0IG5hY2ggZWluZW0gYmx1dHNhdWdlbmRlbSBJbnNla3QgYmVuYW5udD8KQW50d29ydDpXaWVuZXIgV2FsemVyLgoKRnJhZ2U6IFdlbiBzcGllbHRlIEpvaG4gTWFsa292aWNoIDE5OTkgaW4gZGVtIEZpbG0gIkJlaW5nIEpvaG4gTWFsa292aWNoIj8KQW50d29ydDpUb20gSGFua3MuCgpGcmFnZTogV2llIHZpZWxlIFNjaGllZHNyaWNodGVyYXNzaXN0ZW50ZW4gc2luZCBuYWNoIGxhdXQgREZCLVJlZ2VsbiBiZWkKZWluZW0gRnVzc2JhbGxzcGllbCBhdWYgZGVtIFJhc2VuPwpBbnR3b3J0OiAxMS4KCkZyYWdlOiBOYWNoIHdlbGNoZW0gVGllciBpc3QgZGVyIFp1c3RhbmQgYmVuYW5udCwgZGVyIGVpbmVuIGRpY2tlbiBTY2hhZWRlbApuYWNoIHVlYmVybWFlc3NpZ2VtIEFsa29ob2xnZW51c3MgYmVzY2hyZWlidD8KQW50d29ydDogQnJ1bW1zY2hhZWRlbC4KCkZyYWdlOiBXZWxjaGUgU2NodWVyemUgd2lyZCB6dW0gU2NodXR6IHZvciBSb2VudGdlbnN0cmFobGVuIGdldHJhZ2VuPwpBbnR3b3J0OkxlbmRlbnNjaHV0ei4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJ1bGxlbndpdHogKEFtYXpvcmEsIDI1LiBKdW4gMjAwMywgMTg6MTU6NTYpOgpoZXV0ZSBoYWIgaWNoIGF1ZiBkZXIgYnVuZGVzc3RyYXNzZSByaWNodGlnIGdhcyBnZWdlYmVuLCBlaWdlbnRsaWNoIGJpbiBpY2ggamEKbnVyIDEwa20vaCB6dSBzY2huZWxsIGdlZmFocmVuLiBhbHMgaWNoIHVudGVyIGRlciBicnVlY2tlIGR1cmNoIGZ1aHIgaGF0dGUgaWNoCmRhcyB1bmdsdWVjayB2b24gZWluZW0gYnVsbGVuIG1pdCBlaW5lciByYWRhci1waXN0b2xlIGVyd2lzY2h0IHp1IHdlcmRlbi4KZXIgaGF0IG1pY2ggaGVycnVlYmVyIGdld3Vua2VuIHVuZCBtaXQgZGVtIGtsYXNzaXNjaGVuIHNlbGJzdGdlZmFlbGxpZ2VuCmdyaW5zZW4sIGRhcyB3aXIgYWxsZSBzbyB6dSBzY2hhZXR6ZW4gd2lzc2VuLCBmcmFndGUgZXIgbWljaDogIndvaGluIHNvCnNjaG5lbGwsIGp1bmdlIGZyYXU/IGljaCBhbnR3b3J0ZXRlOiAienVyIGFyYmVpdCwgYmluIHNwYWV0IGRyYW4hIgpzbywgc28gc2FndGUgZXIgInVuZCB3YXMgYXJiZWl0ZW4gc2llPyIKaWNoIGJpbiBhZnRlcnN0cmVja2VyaW4hCiJhZiBhZiBhZnRlcnN0cmVja2VyaW4/IiBzdG90dGVydGUgZXIgInVuZCB3YXMgZ2VuYXUgbWFjaHJ0IGVpbmUKYWZ0ZXJzdHJlY2tlcmluPyIKImFsc28iIGZpbmcgaWNoIGFuLCAienVuYWVjaHN0IGZ1ZWhyZSBpY2ggZWluZW4gZmluZ2VyIGVpbiwgZGFubiBkZW4gendlaXRlbiwKZGVuIGRyaXR0ZW4gdXN3IGJpcyBkaWUgZ2FuemUgaGFuZCBkcmluIGlzdC4gaWNoIGFyYmVpdGUgbWljaCBkYW5uIHZvbiBzZWl0ZQp6dXIgc2VpdGUgYmlzIGljaCBiZWlkZSBoYWVuZGUgcmVpbiBya3JpZWdlIHVuZCBkYW5uIGFsbG1hZWhsaWNoIHN0cmVja2UgaWNoCmVzIGJpcyBlcyBjYSAyIG1ldGVyIGdyb3NzIGlzdCIKInVuZCB3YXMgenVtIHRldWZlbCBtYWNodCBtYW4gbWl0IGVpbmVtIHp3ZWkgbWV0ZXIgZ3Jvc3NlbiBhcnNjaGxvY2g/IgoibWFuIGdpYnQgaWhtIGVpbmUgcmFkYXJwaXN0b2xlIHVuZCBzdGVsbHQgZXMgdW50ZXIgZWluZSBicnVlY2tlISIKCnZlcndhbHR1bmdzdHJhZmU6IDk1IGV1cm8KZ2VyaWNodHN0cmFmZTogMTQ1IGV1cm8KZGFzIGdlc2ljaHQgZGVzIGJ1bGxlbjogVU5CRVpBSExCQVIhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLdWVoZSAtIG9kZXIgVldMIGZ1ZXIgQmVnaW5uZXIgKERlZXBibHVlLCAyNy4gSnVuIDIwMDMsIDE5OjU3OjUxKToKCkNocmlzdGRlbW9rcmF0CgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gSWhyIE5hY2hiYXIgYmVzaXR6dCBrZWluZS4gU2llIGJlaGFsdGVuIGVpbmUKdW5kIHNjaGVua2VuIGlocmVtIGFybWVuIE5hY2hiYXJuIGRpZSBhbmRlcmUuIERhbmFjaCBiZXJldWVuIFNpZSBlcy4KCgpTb3ppYWxpc3QKClNpZSBiZXNpdHplbiB6d2VpIEt1ZWhlLiBJaHIgTmFjaGJhciBiZXNpdHp0IGtlaW5lLiBEaWUgUmVnaWVydW5nIG5pbW10CklobmVuIGVpbmUgYWIgdW5kIGdpYnQgZGllc2UgSWhyZW0gTmFjaGJhcm4uIFNpZSB3ZXJkZW4gZ2V6d3VuZ2VuLAplaW5lIEdlbm9zc2Vuc2NoYWZ0IHp1IGdydWVuZGVuLCB1bSBJaHJlbSBOYWNoYmFybiBiZWkgZGVyIFRpZXJoYWx0dW5nCnp1IGhlbGZlbi4KCgpTb3ppYWxkZW1va3JhdAoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIElociBOYWNoYmFyIGJlc2l0enQga2VpbmUuIFNpZSBmdWVobGVuIHNpY2gKc2NodWxkaWcsIHdlaWwgU2llIGVyZm9sZ3JlaWNoIGFyYmVpdGVuLiBTaWUgd2FlaGxlbiBMZXV0ZSBpbiBkaWUKUmVnaWVydW5nLCBkaWUgSWhyZSBLdWVoZSBiZXN0ZXVlcm4uIERhcyB6d2luZ3QgU2llLCBlaW5lIEt1aCB6dQp2ZXJrYXVmZW4sIHVtIGRpZSBTdGV1ZXJuIGJlemFobGVuIHp1IGtvZW5uZW4uIERpZSBMZXV0ZSwgZGllIFNpZQpnZXdhZWhsdCBoYWJlbiwgbmVobWVuIGRpZXNlcyBHZWxkLCBrYXVmZW4gZWluZSBLdWggdW5kIGdlYmVuIGRpZXNlCklocmVtIE5hY2hiYXJuLiBTaWUgZnVlaGxlbiBzaWNoIHJlY2h0c2NoYWZmZW4uIFVkbyBMaW5kZW5iZXJnIHNpbmd0CmZ1ZXIgU2llLgoKCkZyZWlkZW1va3JhdAoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIElociBOYWNoYmFyIGJlc2l0enQga2VpbmUuIFVuZD8KCgpLb21tdW5pc3QKClNpZSBiZXNpdHplbiB6d2VpIEt1ZWhlLiBJaHIgTmFjaGJhciBiZXNpdHp0IGtlaW5lLiBEaWUgUmVnaWVydW5nCmJlc2NobGFnbmFobXQgYmVpZGUgS3VlaGUgdW5kIHZlcmthdWZ0IElobmVuIGRpZSBNaWxjaC4gU2llIHN0ZWhlbgpzdHVuZGVubGFuZyBmdWVyIGRpZSBNaWxjaCBhbi4gU2llIGlzdCBzYXVlci4KCgpLYXBpdGFsaXNtdXMgcHVyCgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gU2llIHZlcmthdWZlbiBlaW5lIHVuZCBrYXVmZW4gZWluZW4gQnVsbGVuLCB1bQplaW5lIEhlcmRlIHp1IHp1ZWNodGVuLgoKCkVVIEJ1ZXJva3JhdGllCgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gRGllIEVVIG5pbW10IGlobmVuIGJlaWRlIGFiLCB0b2V0ZXQgZWluZSwgbWVsa3QKZGllIGFuZGVyZSwgYmV6YWhsdCBJaG5lbiBlaW5lIEVudHNjaGFlZGlndW5nIGF1cyBkZW0gVmVya2F1ZnNlcmxvZXMgZGVyCk1pbGNoIHVuZCBzY2h1ZXR0ZXQgZGllc2UgZGFubiBpbiBkaWUgTm9yZHNlZS4KCgpBbWVyaWthbmlzY2hlcyBVbnRlcm5laG1lbgoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIFNpZSB2ZXJrYXVmZW4gZWluZSB1bmQgbGVhc2VuIHNpZSB6dXJ1ZWNrLiBTaWUKZ3J1ZW5kZW4gZWluZSBBa3RpZW5nZXNlbGxzY2hhZnQuIFNpZSB6d2luZ2VuIGRpZSBiZWlkZW4gS3VlaGUsIGRhcwpWaWVyZmFjaGUgYW4gTWlsY2ggenUgZ2ViZW4uIFNpZSB3dW5kZW0gc2ljaCwgYWxzIGVpbmUgdG90IHVtZmFlbGx0LgpTaWUgZ2ViZW4gZWluZSBQcmVzc2VlcmtsYWVydW5nIGhlcmF1cywgaW4gZGVyIFNpZSBlcmtsYWVyZW4sIFNpZSBoYWV0dGVuCklocmUgS29zdGVuIHVtIDUwJSBnZXNlbmt0LiBJaHJlIEFrdGllbiBzdGVpZ2VuLgoKCkZyYW56b2VzaXNjaGVzIFVudGVybmVobWVuCgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gU2llIHN0cmVpa2VuLCB3ZWlsIFNpZSBkcmVpIEt1ZWhlIGhhYmVuIHdvbGxlbi4KU2llIGdlaGVuIE1pdHRhZ2Vzc2VuLiBEYXMgTGViZW4gaXN0IHNjaG9lbi4KCgpKYXBhbmlzY2hlcyBVbnRlcm5laG1lbgoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIE1pdHRlbHMgbW9kZXJuc3RlciBHZW50ZWNobmlrIHdlcmRlbiBkaWUgVGllcmUKYXVmIGVpbiBaZWhudGVsIGlocmVyIHVyc3BydWVuZ2xpY2hlbiBHcm9lc3NlIGdlenVlY2h0ZXQgdW5kIGRhcwpad2FuemlnZmFjaGUgZGVyIE1pbGNoIGdlYmVuLgoKCkRldXRzY2hlcyBVbnRlcm5laG1lbgoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIE1pdHRlbHMgbW9kZXJuc3RlciBHZW50ZWNobmlrIHdlcmRlbiBkaWUKVGllcmUgInJlZGVzaWduZWQiLCBzbyBkYXNzIHNpZSBNaWxjaCB2b24gaG9lY2hzdGVyIFF1YWxpdGFldCBnZWJlbgp1bmQgMTYwIGttL2ggc2NobmVsbCBsYXVmZW4ga29lbm5lbi4gTGVpZGVyIGZvcmRlcm4gZGllIEt1ZWhlIGRyZWl6ZWhuCldvY2hlbiBVcmxhdWIgaW0gSmFociB1bmQgc2F1ZmVuIGVpbmUgTWVuZ2UgQmllci4KCgpJdGFsaWVuaXNjaGVzIFVudGVybmVobWVuCgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZSwgYWJlciBTaWUgd2lzc2VuIG5pY2h0LCB3byBzaWUgc2luZC4gV2FlaHJlbmQKU2llIHNpZSBzdWNoZW4sIHNlaGVuIFNpZSBlaW5lIHNjaG9lbmUgRnJhdS4gU2llIG1hY2hlbiBNaXR0YWdzcGF1c2UuCkRhcyBMZWJlbiBpc3Qgc2Nob2VuLgoKClJ1c3Npc2NoZXMgVW50ZXJuZWhtZW4KClNpZSBiZXNpdHplbiB6d2VpIEt1ZWhlLiBTaWUgemFlaGxlbiBqZWRvY2ggZnVlbmYuIFNpZSB0cmlua2VuIG5vY2ggbWVocgpXb2RrYS4gU2llIHphZWhsZW4gZXJuZXV0IHVuZCBrb21tZW4gbnVubWVociBhdWYgNDIgS3VlaGUuIEhvY2ggZXJmcmV1dAp6YWVobGVuIFNpZSBnbGVpY2ggbm9jaCBtYWwgdW5kIGpldHp0IHNpbmQgZXMgendvZWxmIEt1ZWhlLiBFbnR0YWV1c2NodApsYXNzZW4gU2llIGRhcyBaYWVobGVuIHNlaW4gdW5kIG9lZmZuZW4gZGllIG5hZWNoc3RlIEZsYXNjaGUgV29ka2EuIERpZQpNYWZpYSBrb21tdCB2b3JiZWkgdW5kIG5pbW10IElobmVuICh3aWUgdmllbGUgS3VlaGUgZXMgYXVjaCBpbW1lciBzZWluCm1vZWdlbikgYWxsZSBLdWVoZSBhYi4KCgpTY2h3ZWl6ZXIgVW50ZXJuZWhtZW4KClNpZSB2ZXJmdWVnZW4gdWViZXIgNS4wMDAgS3VlaGUsIHZvbiBkZW5lbiBJaG5lbiBhYmVyIGtlaW5lIGVpbnppZ2UKZ2Vob2VydC4gU2llIGJldHJldWVuIGRpZSBUaWVyZSBudXIgZnVlciBhbmRlcmUuIFdlbm4gZGllIEt1ZWhlIE1pbGNoCmdlYmVuLCBlcnphZWhsZW4gU2llIGVzIG5pZW1hbmRlbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldvcmFuIG1hbiBlcmtlbm50LCBkYXNzIG1hbidzIG1pdCBSUEcgdWViZXJ0cmVpYnQ6IChBbnRoZWEsICAyLiBKdWwgMjAwMywgMTI6Mzg6MjcpOgouLi5EdSBtZWluc3QsIGRhc3MgZGllIFdlbHQgZWluIEdyb3NzZXIgVzIwIGlzdC4gCgouLi5EdSBtZWhyIEFobnVuZyB2b24gTWFnaWV0aGVvcmllIGFscyB2b24gUGh5c2lrIGhhc3QuIAoKLi4uRHUgYmVpbSBTcHJlY2hlbiBvZWZ0ZXIgdm9uIGRlciBlcnN0ZW4gaW4gZGllIGRyaXR0ZSBQZXJzb24gCndlY2hzZWxzdC4gCgouLi5VbmQgZXMga2VpbmVuIGRlaW5lciBGcmV1bmRlIFZlcndpcnJ0LiAKCi4uLkR1IHZvbiBMZXV0ZW4gYW5nZXNwcm9jaGVuIHdpcnN0LCBkaWUgZGljaCB6dSBrZW5uZW4gc2NoZWluZW4sIApkdSBhYmVyIGtlaW5lbiBCbGFzc2VuIGhhc3Qgd2VyIHNpZSBzZWluIGtvZW5udGVuLiAKCi4uLkR1IGRpY2ggbmljaHQgZXJpbm5lcm4ga2FubnN0LCB3YXMgZHUgYW0gVm9ydGFnIHp1IGVzc2VuIApoYXR0ZXN0LCBhYmVyIGdhbnogZ2VuYXUgd2Vpc3Qgd2VsY2hlIEtsZWlkdW5nIGRlciBlcnN0ZSBOU0MgCmhhdHRlLCBkZW4gZHUgaW4gZGVpbmVtIGVyc3RlbiBBYmVudGV1ZXIgdm9yIDEwIEphaHJlbiBiZWdlZ25lc3QgCmJpc3QuIAoKLi4uRHUgaW4gZGVyIFN0cmFzc2VuYmFobiB2b24gTWVuc2NoZW4gZGllIGRpY2ggbmljaHQga2VubmVuIApnZXNhZ3QgYmVrb21tc3QsIHdhcyBmdWVyIGVpbiBzZW5zaWJsZXIgTWVuc2NoIGR1IGJpc3QsIG5hY2hkZW0gCnNpZSAyIE1pbnV0ZW4gZWluZXMgR2VzcHJhZWNoZXMgZGFzIGR1IGdlZnVlaHJ0IGhhc3QsIGdlaG9lcnQgaGFiZW4uIAoKLi4uZHUgRnJhZ2VuIHN0ZWxsc3Qgd2llOiAiVGhvbWFzLCB3aWUgaGVpc3N0IGR1IGVpZ2VudGxpY2g/IiAKCi4uLmRlciBWZXJsdXN0IGRlaW5lciBXdWVyZmVsc2FtbWx1bmcgZWluIHNjaHdlcmVyIGZpbmFuemllbGxlciBTY2hsYWcKaXN0LiAKCi4uLmR1IG9obmUgUHJvYmxlbWUgZWluIFppbW1lciBtaXQgZGVpbmVyIGJlbnV0enRlbiBDaGFyYWt0ZXJib2VnZW4KdGFwZXppZXJlbiBrb2VubnRlc3QuIAoKLi4uZHUgbWVociBBbmVrZG90ZW4gdm9uIGZpa3RpdmVuIEZpZ3VyZW4ga2VubnN0IGFscyB2b24gZGVpbmVyIEZhbWlsaWUuIAoKLi4uZHUgU28gd2FzIHdpZSAiRGVyIGhhdCBqYSB2b2xsIGRlbiBQYXR6ZXIgZ2V3b3JmZW4hIiBzYWdzdCwgd2VubgpqZW1hbmRlbiBldHdhcyBzY2hpZWZnZWh0LiAKCi4uLmR1IGJlaW0gVmVyc3VjaCwgaXJnZW5kZWluIFd1ZXJmZWxzcGllbCB6dSBlcmtsYWVyZW4sIGRlaW5lIFp1aG9lcmVyCnNjaG9uIG1pdCBkZW0gZXJzdGVuIFNhdHogKCJBbHNvLCBkYXp1IGJyYXVjaHQgbWFuIDIgVzYiKSBpcnJpdGllcnN0LiAKCi4uLmR1IGRpY2ggYmVzc2VyIGF1ZiBkZXIgRm9yZ290dGVuIFJlYWxtcyBLYXJ0ZSBhdXNrZW5uc3QgYWxzIGF1ZiBkZXIKRGV1dHNjaGxhbmRzLiAKCi4uLmR1IHdpbGRmcmVtZGVuIExldXRlbiBpbiBkZXIgVS1CYWhuIEF0dHJpYnV0dHN3ZXJ0ZSB6dXdlaXN0LiAKCi4uLmR1IG1pdCBQbGF0dGVucnVlc3R1bmcgaW5zIEtpbm8gZ2VoZW4gYWxzIG5vcm1hbCBlbXBmaW5kZXN0LiAKCi4uLmR1IGdsYXVic3QgaW4gZGVuIE9ya3MgaW0gSGVyciBkZXIgUmluZ2UgRmlsbSBlaW5pZ2UgQmVrYW5udGUKd2llZGVyenVlcmtlbm5lbi4gCgouLi5kdSBhbmZhZW5nc3QgRmlsbWthZW1wZmUgc2Nob24gaW0gS2lubyBpbiB2ZXJzY2hpZWRlbmUgU3lzdGVtZSB1bXNldHp0IAoKLi4udW5kIGRlaW4gS3VtcGVsIGRpciBuaWNrZW5kIHp1c3RpbW10IAoKLi4uZHUga2VpbmUgR2VzY2hpY2h0ZW4gbWFnc3QsIGRpZSBtaXQgIkVzIHdhciBlaW5tYWwiIGJlZ2lubmVuLCB3ZWlsCmRlciBQbG90IG5pY2h0IGdlbnVlZ2VuZCBJbnRlcmFrdGlvbiB6dWxhZXNzdCAKCi4uLmR1IGJlcmVpdHMgd2FlaHJlbmQgZHUgZGVuIEZpbG0gZGFzIGVyc3RlIG1hbCBzaWVoc3QgYW0gaW0gR2Vpc3RlIGRyYW4KYXJiZWl0ZXN0IHdpZSBkdSBkZW4gRmlsbSBpbiBkZWluZW4gQWJlbnRldWVybiB2ZXJ3ZXJ0ZW4ga2FubnN0Li4uIAoKLi4uZHUgbWl0IEJ1ZWNoZXJuIHVuZCBDb21pY3MgZGFzIGdsZWljaGUgbWFjaHN0Li4uIAoKLi4udW5kIGRpY2ggc2VsYnN0IGRpZSB0YWVnbGljaGVuIE5hY2hyaWNodGVuIG5vY2ggaW5zcGlyaWVyZW4uLi4gCgouLi5kdSBlaW5lIFBlcnNvbiBtaXQgZGVtIE5hbWVuIGRlcyBDaGFycyB2b3JzdGVsbHN0LCB3ZWlsIGRpciBzZWluCnJpY2h0aWdlciBOYW1lIG5pY2h0IGVpbmZhZWxsdCAKCi4uLmR1IHp1IExldXRlbiBuaWNodCBTaWUgc29uZGVyIElociBzYWdzdCAKCi4uLmR1IGJlZ3J1ZXNzdCBkaWUgTGV1dGUgaW4gZGVpbmVyIFN0YW1ta25laXBlIG1pdCAiQ2h1bW1lciIgCgouLi5kdSBkaWNoIGZyYWdzdCwgd2FydW0gZGVyIEhpbW1lbCBibGF1IHVuZCBuaWNodCB0b3hpc2NoZ3J1ZW4gaXN0IAoKLi4uZHUgYmVnaW5uc3QgZGVuIE5hZWhyd2VydCBkZXMgQmx1dGVzIHZvbiBkZWluZW0gR2VnZW51ZWJlciB6dSBzY2hhZXR6ZW4gCgouLi5kdSBkaWNoIGZyYWdzdCBvYiBkdSBkZWluZW4gU2FyZyB1bnRlciBvZGVyIG5lYmVuIGRhcyBGZW5zdGVyIHN0ZWxsZW4Kc29sbHN0IAoKLi4uZHUgYmVpIEZpbG1lbiB1bmQgR2VzY2hpY2h0ZW4gZGFydWViZXIgbmFjaGRlbmtzdCwgd2VsY2hlIEtsYXNzZW4gZGllCkhlbGRlbiBzaW5kLiAKCi4uLmR1IGluIGFsbGVuIG1vZWdsaWNoZW4gTGViZW5zc2l0dWF0aW9uZW4gZGVuIFNraWxsd3VyZiBlaW5zY2hhZXR6dAooIk9oLCBkZXMgd2FyIGFiZXIgZWluIHNjaGxlY2h0ZXIgUGVyZm9ybS1XdXJmIikgCgouLi5kdSByb3V0aW5lbWFlc3NpZyBqZWRlbiBGaWxtc291bmR0cmFjayBhdWYgUm9sbGVuc3BpZWx0YXVnbGljaGtlaXQKdWViZXJwcnVlZnN0LiAKCi4uLmR1IGRpZSBNZWhyemFobCBkZXIgU291bmR0cmFja3MsIGRpZSBpbSBGZXJuc2VoZW4gZ2VsZWdlbnRsaWNoIHp1cgpVbnRlcm1hbHVuZyB2b24gVHJhaWxlcm4gZWluZ2VzZXR6dCB3ZXJkZW4sIG5hY2ggendlaSBTZWt1bmRlbgppZGVudGlmaXppZXJ0IGhhc3QuIAoKLi4uZHUgYXVmIGVpbmVyIFBhcnR5IHZvbiByaWNodGlnIGhpcHBlbiBMZXV0ZW4gYmVpIGRlciBGcmFnZSwgd2FzIGR1IHNvCmluIGRlaW5lciBGcmVpemVpdCBtYWNoc3QsIHNjaG5lbGwgdmVyc3VjaHN0IGFienVsZW5rZW4uIAoKLi4uZHUgaW4gZGVpbmVyIEp1bmdnZXNlbGxlbmJ1ZGUgbWVociBLZXJ6ZW5zdGFlbmRlciBoYXN0IGFscyBkZWluZQpNdXR0ZXIgenUgSGF1c2UuIAoKLi4uZHUgIkF0dHJpYnV0IiBuaWNodCBmdWVyIGVpbiBGcmVtZHdvcnQgaGFlbHRzdC4gCgouLi5kdSBkZWluZSBGcmV1bmRlIG1pdCAiRmlydW4genVtIEdydXNzZSIgb2RlciAiZGllIFp3b2VsZiBtaXQgRXVjaCIKYmVncnVlc3N0LiAKCi4uLmRpciBiZWkgZGVyIEFia3Vlcnp1bmcgUEMgYWxzIGVyc3RlcyAiUGxheWVyIENoYXJhY3RlciIgZWluZmFlbGx0LiAKCi4uLkR1IGdlZnJhZ3Qgd2lyc3QsIG9iICJkaWVzZSBrb21pc2NoZW4gU3BpZWxlIiBlaWdlbnRsaWNoIGdlZmFlaHJsaWNoCnNpbmQuIAoKLi4uRHUgdmllbCBsaWViZXIgZWluZW4gQ2hhciBiYXN0ZWxzdCwgb2J3b2hsIGRhcyBBYmkgdm9yIGRlciBUdWVyIHN0ZWh0CnVuZCBkdSBpbW1lciBub2NoIG5pY2h0IGltIEtvcGYgaGFzdCwgd2llIGVpbmUgRGlhem90aWVydW5nCmZ1bmt0aW9uaWVydC4gCgouLi5zaWNoIGRpZSBMZXV0ZSB2b24gZGlyIHdlZ3NldHplbiwgd2VubiBkdSBlaW5lbSBGcmV1bmQgaW4gZGVyIFUtQmFobgp2b20gbGV0enRlbiBBYmVudGV1ZXIgZXJ6YWVobHN0LiAKCi4uLmR1IGVpbmVuIEJsaWNrIGF1ZiBkZWluZSBNaW5pYXR1cmVuc2FtbWx1bmcgd2VyZmVuIG11c3N0LCB1bSB6dQp3aXNzZW4sIHdpZSBuZSBGcmF1IGF1c3NpZWh0IAoKLi4uZHUgZGlyIG5vY2ggbmljaHQgbWFsIHdlbm4gZHUgd29sbHRlc3QgbmUgRnJldW5kaW4gbGVpc3RlbiBrYW5uc3QsCndlaWwgZGllIGdhbnplbiBaZWl0c2NocmlmdGVuYWJvcyB1bmQgUm9sbGVuc3BpZWxidWVjaGVyIHp1IHZpZWwga29zdGVuLiAKCi4uLmR1IGRlciBmZXN0ZW4gTWVpbnVuZyBiaXN0LCBkYXNzIGR1IGVpbmVuIGZ1ZXJjaHRlcmxpY2hlbiBUb2Qgc3RpcmJzdCwKd2VubiBkaWUgbGV0enRlIEZpZ3VyIGluIGRlaW5lbSBSZWdhbCBhbmdlbWFsdCBpc3QuIAoKLi4uZHUgZGllIEtyaXNlIGJla29tbXN0LCB3ZW5uIGplbWFuZCBkZWluZSBNaW5pYXR1cmVuICJNYWVubmNoZW4gIgpuZW5udC4gCgouLi5kdSBnZXJhaG10ZSBIZXJyIGRlciBSaW5nZSBLYXJ0ZW4gYW4gZGVyIFdhbmQgaGFzdC4gCgouLi5kdSBhdWYgZGVpbmVyIGVpZ2VuZW4gR2VidXJ0c3RhZ3NwYXJ0eSBnZWZyYWd0IHdpcnN0LCBvYiBCbHVmZiBudW4KZWluZSBwYXJ0aWFsIGFjdGlvbiBpc3QuIAoKLi4uZHUgZGFyYXVmIGhpbiBhdWNoIG5vY2ggZGllIGFuZGVyZW4gR2Flc3RlIHZlcm5hY2hsYWVzc2lnc3QsIHVtIGltClBsYXllcnMgSGFuZGJvb2sgbmFjaCB6dSBzY2hhdWVuLiAKCi4uLmR1IGRpY2ggaW4gZWluZSBHb3RoaWMtIERpc2NvIGdlaHN0LCB1bSBkYXMgcmljaHRpZ2UgVjp0TSBGZWVsaW5nIHp1CmJla29tbWVuLiAKCi4uLmR1IGRhcyBhdWNoIG5vY2ggbWl0IGVpbmVtIEdhbmdyZWwvQnJ1amFoL1RTUiBULVNoaXJ0IHR1c3QgCgouLi5kdSBkZWluZSBEU0wgRmxhdHJhdGUgbnVyIHp1bSBTYW1tZWxuIHZvbiBCaWxkZXJuIGZ1ZXIKQWJlbnRldWVyaGFuZG91dHMgaGFzdCB1bmQgbmljaHQgenVtIHppZWhlbiB2b24gRmlsbWVuIAoKLi4uZHUgc2VsYnN0IGltIGxhbmd3ZWlsaWdzdGVuIFVudGVycmljaHQgbmljaHQgZWluc2NobGFlZnN0LCBkZW5uIGR1Cmhhc3QgamEgbm9jaCBlaW4gQWJlbnRldWVyIHZvcnp1YmVyZWl0ZW4uIAoKLi4uZGljaCBkZWluIExlaHJlciBkZXN3ZWdlbiBsb2J0LCB3ZWlsIGR1IGltbWVyIHNvIGVpZnJpZyBhbGxlcwpub3RpZXJzdCB3YXMgZXIgc2FndC4gCgouLi5kdSBkaWUgVGVsZWZvbm51bW1lciBkZXMgUGl6emFkaWVuc3Qga2VubnN0LCBhYmVyIG5pY2h0IG1hbCBkZWluZQplaWdlbmUgCgouLi5EdSBkZWluZW4gYWJnZWxlaG50ZW4gVXJsYXVic2FudHJhZyBtaXQgZWluZW0gUm9uZHJha2FtbSBkdXJjaHNldHplbgptb2VjaHRlc3QgCgouLi5kdSBkaWNoIGF1ZiBkZW4gTWF0aGV1bnRlcnJpY2h0IGZyZXVzdCwgd2VpbCBtYW4gYXVmIGRlbiBsaW5pZXJ0ZW4KQmxhZXR0ZXJuIGluIERldXRzY2ggc28gc2NobGVjaHQgRHVuZ2VvbnMgemVpY2huZW4ga2Fubi4gCgouLi5kdSBtYWwgZGVpbmUgU29tbWVyZmVyaWVuIGtvbXBsZXR0IGludmVzdGllcnQgaGFzdCwgdW0gZGllIEthcnRlbgpkZWluZXIgZWlnZW5lbiBXZWx0IHp1IHplaWNobmVuIAoKLi4uamVkZXIgbWVpbnQgZHUgc2Vpc3QgZWluIEZyZWFrIHVuZCBkdSBiZXRyYWNodGVzdCBkYXMgYWxzIEVocmVudGl0ZWwgCgouLi5kaWNoIGRpZSBMZXV0ZSBiZWltIFBpenphYnJpbmdkaWVuc3Qgc2Nob24gbWl0IGRlaW5lbSBWb3JuYW1lbgphbnNwcmVjaGVuIHVuZCBkaWNoIHp1bSBLdW5kZW4gZGVzIEphaHJodW5kZXJ0cyBnZWtyb2VudCBoYWJlbi4gCgouLi5kaWUgTGV1dGUgYmVpbSBQaXp6YWJyaW5nZGllbnN0IHNjaGxpZXNzZW4gbXVlc3Nlbiwgd2VubiBkdSBpbiBVcmxhdWIKZmFlaHJzdC4gCgouLi5kdSBlcyBmdWVyIGdhbnogbm9ybWFsIGhhZWx0c3Qgd2VubiBpbSBFbmdsaXNjaHVudGVycmljaHQgd2FlaHJlbmQgZGVyCkxla3R1ZXJlIHZvbiBTaGFrZXNwZWFyZSBTYWV0emUgd2llICJ3aGF0IGJsYWNrIG1hZ2ljaWFuIGNvbmp1cmVzIHVwIHRoaXMKZmllbmQiIHZvcmtvbW1lbi4gCgouLi5kdSBhdWNoIG5hY2ggZGVtIHgtdGVuIEhkUiAyIGltIEtpbm8gbmljaHQgbXVlZGUgd2lyc3QsIHJlaW56dWdlaGVuLiAKCi4uLmR1IGRlc3dlZ2VuIG5pY2h0IG11ZWRlIHdpcnN0LCB3ZWlsIGR1IGltbWVyIG5vY2ggcmFldHNlbHN0LCB3ZWxjaGVuCmx2bCBXYWxkbGFldWZlciBBcmFncm9uIGhhdCB1bmQgd2FzIExlZ29sYXMgZG9jaCBmdWVyIGdlbmlhbGUgV3VlcmZlbCBoYXQuIAoKLi4uZHUgdm9uIEhkUiAxICJleHRlbmRlZCBWZXJzaW9uIiBpbSBLaW5vIHRyYWV1bXN0LiAKCi4uLmR1IGpldHp0IHNjaG9uIGZ1ZXIgZGFzIFRyaWJsZS1GZWF0dXJlIHBsYW5zdC4gCgouLi5kdSBtaXQgamVtYW5kZW0gYW0gVGlzY2ggc2l0enQsIGRlciBlaW5lbiBrbGVpbmVuIHNwcmVjaGVuZGVuIEtla3MKYXVmIGRlciBTY2h1bHRlciBoYXQgdW5kIGRpciBkYXMgbmljaHQgc2VsdHNhbSB2b3Jrb21tdC4gCgouLi5EdSBhbiBqZWRlbSBlcmRlbmtsaWNoZW4gT3J0IGVpbmVuIFNhdHogV3VlcmZlbCBhdWZiZXdhaHJzdCwgZnVlciBkZW4KRmFsbCBkYXMgRHUgRGVpbmUgbmFlY2hzdGUgRW50c2NoZWlkdW5nIGxpZWJlciBhdXN3dWVyZmVsbiB3aWxsc3QgCgouLi5EdSB2b24gRGVpbmVtIENoZWYgbmljaHQgbWVociBiZWltIGx1ZWdlbiBlcndpc2NodCB3aXJzdCwgZGEgRHUgZHVyY2gKRGVpbmVuIG5ldWVuIENoYXJha3RlciBzb3ZpZWwgRXJmYWhydW5nIGRhcmluIHNhbW1lbG4ga29ubnRlc3QgCgouLi5tYW4gbWl0IEJlZ2Vpc3RlcnVuZyBpbiBNdXNlZW4gZ2VodCwgd2VpbCBtYW4gZGEgc28gbmV0dGUgSWRlZSBmdWVyCm5ldWUgQWJlbnRldWVyIG9kZXIgV2FmZmVuIGJla29tbXQgCgouLi5EZWluZSBGcmV1bmRlIERpY2ggcmVnZWxtYWVzc2lnIG1pdCBkZW0gZmFsc2NoZW4gR2VzY2hsZWNodCBhbnJlZGVuIHVuZAp2ZXJ3aXJydCBzaW5kLCB3ZW5uIER1IGF1c25haG1zd2Vpc2UgRGVpbiBlaWdlbmVzIEdlc2NobGVjaHQgc3BpZWxzdC4gCgouLi5EdSBuaWNodCBvaG5lIERlaW5lbiBXdWVyZmVsYmV1dGVsIGF1cyBkZW0gSGF1cyBnZWhzdCB1bmQgcGFuaWthcnRpZwpkYW5hY2ggc3VjaHN0LCB3ZW5uIER1IGlobiB6dSBIYXVzZSBoYXN0IGxpZWdlbiBsYXNzZW4uIAoKLi4uRHUgaW1tZXIgYXVmIGRlciBTdWNoZSBuYWNoIG5vY2ggZ3JvZXNzZXJlbiAiTWVpc3Rlcnd1ZXJmZWxuIiBiaXN0LCB3ZW5uCkR1IGVpbmVuIGVudHNwcmVjaGVuZGVuIFNob3AgYmV0cml0dHN0LiAKCi4uLkRlaW5lIE9yZG5lciBhbGxlaW4gZnVlciBkaWUgQ2hhcmFrdGVyYm9lZ2VuIG1pdHRsZXJ3ZWlsZSBtZWhyIFBsYXR6CmVpbm5laG1lbiwgYWxzIERlaW5lIFNjaHVsdW50ZXJsYWdlbiB1bmQgYW5kZXJlbiBEb2t1bWVudGUgenVzYW1tZW4uIAoKLi4uZHUgd2Vpc3QgZGFzIEtvYm9sZGUgbmFjaCBIdWhuIHNjaG1lY2tlbi4gCgouLi5kdSBEaXBwYmFjaCBtaXQgUmF2ZW5sb2Z0IHZlcmdsZWljaHN0LiAKCi4uLmR1IHNhZW10bGljaGUgV2FmZmVuZ2VzY2hhZWZ0ZSBuYWNoIGVpbmVyIEFyZXMgUHJlZGF0b3IgYWJrbGFwcGVyc3QuIAoKLi4udW5kIGVpbmUgZmluZGVzdCEgCgouLi5kdSBkZWluZW4gQ2hlZiBtaXQgImV1cmUgRHVyY2hsYXVjaHQiIGFucmVkZXN0LiAKCi4uLmF1ZiBkZWluZXIgR2VidXJ0c3RhZ3N0b3J0ZSAiSGFwcHkgTGV2ZWwgMTgiIHN0ZWh0LiAKCi4uLmR1IHdlaXN0IGRhcyBkZWluZSBLb2xsZWdlbiBlaCBudXIgTHZsIDEgQ29tbW9uZXIgc2luZCAKCi4uLmR1IGluIGRlciBLaXJjaGUgZnVlciBlaW5lbiBob2VoZXJlbiBDaGFyaXNtYSBTY29yZSBiZXR0ZWxzdCAKCi4uLnVuZCBkaWUgendpc2NoZW5kdXJjaCBtYWwgZGVuIFByaWVzdGVyIGZyYWdzdCBvYiBlciBkZWluZW4gSGFtc3RlcgpuaWNodCBtYWwgd2llZGVyYmVsZWJlbiBrb2VubnRlIAoKLi4uZHUgZGljaCBhdWZyZWdzdCBkYXMgZXIga2VpbmUgSGVpbHRyYWVua2UgdmVya2F1ZnQgCgouLi5kdSBkZWluIERhdGUgbmFjaCBpaHJlbSBDaGFyaXNtYS1XZXJ0IGZyYWdzdCAKCi4uLmR1IHZvbiBkZW4gSG9vbGlnYW5zIGV0d2FzIFplaXQgZXJiaXR0ZXN0LCB1bSBkZWluZSBXdWVyZmVsIGZ1ZXIgZGVuClBhcmFkZXd1cmYgaGVyYXVzenVrcmFtZW4gCgouLi5kaXIgSGVhdnkgTWV0YWwgbWVsb2Rpc2NoIHZvcmtvbW10IAoKLi4uZGVpbmUgRWx0ZXJuIGRpY2ggbWl0IGRlbSBOYWNodGVpbCAiV2VsdGZyZW1kIDEwIChSZWFsaXRhZXRzc2lubikiIGluCmRpZSBXZWx0IGdlc2V0enQgaGFiZW4gCgouLi5kdSBkaWNoIGxhdWZlbmQgZGFydWViZXIgYXVzbGFlc3N0LCB3YXMgZGVpbiBTcGllbGVyIGJlaSBkZWluZXIKQ2hhcmFrdGVyZXJzY2hhZmZ1bmcgYWxsZXMgZmFsc2NoIGdlbWFjaHQgaGF0LCB1bmQgd2llIHNjaGxlY2h0IGRlciBLZXJsCmltbWVyIHd1ZXJmZWx0LiAKCi4uLmR1IENvbXB1dGVyZnJlYWtzIGtlbm5zdCBkaWUgbWVociBCZXdlZ3VuZyBoYWJlbiB1bmQgb2VmdGVyIGFuIGRpZQpmcmlzY2hlIEx1ZnQgZ2VoZW4gYWxzIGR1LiAKCi4uLmR1IGRpY2ggaW4gV2lydHNjaGFmdCAmIFJlY2h0IGZyYWdzdCwgd2FydW0gZGllIExldXRlIHZvciBHZXJpY2h0IHVtCmVpbiB0b3RlcyBQZmVyZCBzdHJlaXRlbiwgYW5zdGF0dCBlcyBlaW5mYWNoIHdpZWRlcnp1YmVsZWJlbi4gCgouLi5kdSBudXIgRW5nbGlzY2ggbGVybnN0IHdlaWwgZHUgZGllIEQmRCAzcmQgRWRpdGlvbiBCdWVjaGVyIHNvIHNjaG5lbGwKd2llIG1vZWdsaWNoIGxlc2VuIHdpbGxzdCAKCi4uLmR1IG51ciBJbnRlcm5ldCBTZWl0ZW4gYmVzdWNoc3QgaW4gZGVyZW4gQWRyZXNzZSBtaW5kZXN0ZW5zIFJQRwpzdGVodC4gCgouLi5kdSBiZWltIGRlciBQaHJhc2UgIldhcyBpc3QgZWlnZW50bGljaCBlaW4gUm9sbGVuc3BpZWw/IiBmYXN0CmR1cmNoZHJlaHN0IHVuZCBkaWNoIG51ciB1bnRlciBadWhpbGZlbmFobWUgc3RhcmtlciBQaGFybWF6aWUgZGF2b24KdWViZXJ6ZXVnZW4ga2FubnN0LCBkZW4gRnJhZ2VzdGVsbGVuZGVuIG5pY2h0IGF1ZiBld2lnIGluIGVpbmUgS3JvZXRlIHp1CnZlcndhbmRlbG4uIAoKLi4uZHUgZ2xhdWJzdCBqZW1hbmRlbiwgZGVyIGRpciBlaW5lIGR1bW1lIEZyYWdlIHN0ZWxsdCBpbiBlaW5lIEtyb2V0ZQp2ZXJ3YW5kZWxuIHp1IGtvZW5uZW4gCgouLi5kdSByZWZsZXhhcnRpZyAiTmVpbiwgd2lyIHNpbmQgbmljaHQgYWxsZSBTYXRhbmlzdGVuISIgc2Fnc3QsIHdlbm4KZGljaCBqZW1hbmQgZnJhZ3Qgb2IgZHUgcmVsaWdpb2VzIGJpc3QuIAoKLi4ud2VubiBkdSBmcnVlaGVyIGRpZSBTdHJhc3NlbnNlaXRlIGdld2VjaHNlbHQgaGFzdCB3ZWlsIGRpciBmaW5zdGVyZQpHZXN0YWx0ZW4gZW50Z2VnZW5rYW1lbi4gSGV1dGUgd2VjaHNlbG4gZGllIGFuZGVyZW4gZGllIFN0cmFzc2Vuc2VpdGUuLi4gCgouLi5kdSAiSWNoIG1hZyBLaW5kZXIsIGljaCBrb2VubnRlIG51ciBrZWluIGdhbnplcyBlc3NlbiEiIGZ1ZXIgZWluZW4KZ3V0ZW4gU2NoZXJ6IGhhZWx0c3QuIAoKLi4uZHUgZGVuIFNwcnVjaCB3aXJrbGljaCBlcm5zdCBtZWluc3QuIAoKLi4uRHUgYXVmICJNb2VnZW4gU2llIEtpbmRlcj8iIGFudHdvcnRlc3QiIEphLCBhYmVyIGRpZSBuZWhtZW4gc28gdmllbApQbGF0eiBpbiBkZXIgR2VmcmllcnRydWhlIHdlZyIgCgouLi5kdSBhdWYgZGllIEZyYWdlICJXaWxsc3QgZHUgQWVyZ2VyPyIgKHZvbiBlaW5lbSB3ZXNlbnRsaWNoZW4gZ3JvZXNzZXJlbikKbnVyICIyMC8xOSBBdHRhY2tlLyBQYXJhZGUsIHdhcyB3aWxsc3QgZHUgZWlnZW50bGljaCIgYW50d29ydGVzdC4gCgouLi5kdSBuYWNoIGRlciBTY2hsYWVnZXJlaSBudXIgIlsqKioqKl0gVzIwIiBmbHVjaHN0LiAKCi4uLmR1IGRpY2ggamVkZXNtYWwgYXVmcmVnc3QsIHdlbm4gd2llZGVyIHNvIGVpbiBNb0EgKE1lbnNjaCBvaG5lCkFobnVuZykgRmVlbiB1bmQgRWxmZW4gZHVyY2hlaW5hbmRlcmJyaW5ndC4gCgouLi5kdSBpbiBkZWluZXIgRnJlaXplaXQgbWVociB1ZWJlciBBbnRpa2UgdW5kIE1pdHRlbGFsdGVyIGdlbGVybnQgaGFzdAphbHMgaW4gZGVyIFNjaHVsZS4gCgouLi5kdSBkZW4gQ29kZXggQ2FudGlvbmVzIG5pY2h0IGZ1ZXIgZWluIEdlc2FuZ3NidWNoIGhhZWx0c3QuIAoKLi4uZHUgZGlyIGRpZSBNZW5zY2hlbiBpbiBkZXIgVS1CYWhuIG5pY2h0IGFuc2NoYXVlbiBrYW5uc3QsIG9obmUgZGllCm5hZWNoc3RlbiAoTilTQ3MgenUgcGxhbmVuIAoKLi4uZHUsIHdlbm4gZHUgbWl0IGVpbmVtIGFuZGVyZW4gUm9sbGVuc3BpZWxlciByZWlzdCwgc2VociBzY2huZWxsIFBsYXR6CnNlbGJzdCBpbiBlaW5lciB1ZWJlcmZ1ZWxsdGVuIFUtQmFobiBoYXN0LiAKCi4uLmR1IGluIEtpbm9maWxtZSB3aWUgQmxhZGUgb2RlciBRdWVlbiBvZiB0aGUgZGFtbmVkIG51ciBnZWhzdCwgdW0genUKdWViZXJwcnVlZmVuLCBvYiBkaWUgV09ELVJlZ2VsbiBlbmRsaWNoIG1hbCBlaW5nZWhhbHRlbiB3b3JkZW4gc2luZC4gCgouLi5kaWUgVmVya2FldWZlcmluIGJlaW0gQWxkaSBkaWNoIHp1IHVlYmVyemV1Z2VuIHZlcnN1Y2h0LCBkYXNzIGR1IGRpZQpaYWhucGFzdGEgZ2FueiBzaWNoZXIgbmljaHQgYmlsbGlnZXIga3JpZWdzdCwgbm9jaCBzbyBzZWhyIGR1IGRpY2ggYmVpbQpGZWlsc2NoZW4gYmVtdWVoc3QuLi4gCgouLi53ZW5uIGR1IHdlaXN0IHdpZSBkdSAyMCBXNCB6dSBlaW5lbSBncm9zc2VuIFcyMCB6dXNhbW1lbmtsZWJlbiBrYW5uc3QgCgouLi53ZW5uIGR1IGRhcyBhdWNoIHNjaG9uIHZlcnN1Y2hzdCBoYXN0IChlcyBrbGFwcHQgd2lya2xpY2gsIGdsYXVidAptaXIhKSAKCi4uLndlbm4gZHUgd2Vpc3Qgd2llIG1hbiBXdWVyZmVsIGFscyBXYWZmZSBlaW5zZXR6dC4gCgouLi5kaXIgZGVpbmUgTWl0c3BpZWxlcmlubmVuIGltIEdlc2NoYWVmdCBiZWltIEZydWVoc3R1ZWNrIG1pdCBOaWNodC0KUm9sbGVuc3BpZWxlcm4gdWViZXIgZGVuIFNjaHdhbnp2ZXJnbGVpY2gtcGVyLUtvbnN0aS1Qcm9iZSBhdWYgZGVtCmxldHp0ZW4gQ29uIGVyemFlaGxlbi4uLiAKCi4uLndlbm4gZHUsIHdhZWhyZW5kIGRpciBMZXV0ZSBzbyB3YXMgZXJ6YWVobGVuIG5pY2h0IHJvdCB3aXJzdCBvZGVyIGRpZQpTdHJhc3NlbnNlaXRlIHdlY2hzZWxzdCAKCi4uLmRlciBFbmdsaXNjaGxlaHJlciBkaWNoIGltIEdydW5ka3VycyBudXIgYmVpIGJlc29uZGVycyBzY2h3aWVyaWdlbgpWb2thYmVsbiBiZWkgZGVpbmVyIERyYWdvbmxhbmNlLUxla3R1ZXJlIHN0b2VydC4uLiAKCi4uLmR1IHp3YXIgd2Vpc3N0LCB3YXMgIktydW1tc2FlYmVsIiBvZGVyICJGZWUiIGF1ZiBFbmdsaXNjaCBoZWlzc3QsIGFiZXIKYmVpICJCcm9ldGNoZW4iIG9kZXIgIkhhbHRlc3RlbGxlIiBTY2h3aWVyaWdrZWl0ZW4ga3JpZWdzdC4uLiAKCi4uLmR1IGF1ZiBkaWUgRnJhZ2UgIldhcyBwYXNzaWVydCBlaWdlbnRsaWNoLCB3ZW5uIG1hbiBzdGlyYnQ/IiBtaXQKcmVnZWx0ZWNobmlzY2hlbiBLb21tZW50YXJlbiB6dW0gVGhlbWEgV2llZGVyYmVsZWJ1bmcgYW50d29ydGVzdC4gCgouLi5kdSBkaXIgZGVpbmUgUmVudGUgZnVlciBkZWluZSBXaWVkZXJiZWxlYnVuZyBhdWZzcGFyc3QuIAoKLi4uZHUgUmF1Y2hlciBuaWNodCBtZWhyIGF1c2xhY2hzdCwgZGEgZGVpbmUgbW9uYXRsaWNoZW4gYXVzZ2FiZW4Kd2VzZW50bGljaCBob2VoZXIgc2luZC4gCgouLi5kdSBhdWNoIGJlaSBkZXIgNTI0Ny4gV2llZGVyYXVmbmFobWUgZGVzIGxldHp0ZW4gU3RyZWl0ZXMgZ2VnZW4gZGVpbgpMaWVibGluZ3Nyb2xsZW5zcGllbCBpbW1lciBub2NoIGZyZXVkaWcgaW4gZGllIEJyZXNjaGUgc3ByaW5nc3QgdW5kCm1pdGRpc2t1dGllcnN0LiAKCi4uLmR1IGVpbiBlaWdlbmVzIFJvbGxlbnNwaWVsIGdlc2NocmllYmVuIGhhc3QuIAoKLi4uZGlyIHp1IGRlbSBXb3J0ICJQYWxhZGluIiBzcG9udGFuIHp3ZWkgQmVkZXV0dW5nZW4gZWluZmFsbGVuLiAKCi4uLmR1IG1laW5zdCwgZGFzcyBkYXMgR2VnZW50ZWlsIHZvbiByZWNodHNjaGFmZmVuIGNoYW90aXNjaCBzZWkuIAoKLi4uZHUgYmVpIGRlbSBuZXVlbiBIZFIgQnJldHRzcGllbCBuaWUgYXVmIGRpZSBJZGVlIGdla29tbWVuIHdhZXJlc3QgenUKZnJhZ2VuOiAiTWFuIHNwaWVsdCBnYXIgbmljaHQgZ2VnZW5laW5hbmRlcj8iIAoKLi4uZHUgd2Vpc3N0LCB3aWUgdmllbGUgS3VnZWxuIGluIGRpZSBNYWdhemluZSBkZXIgdmVyc2NoaWVkZW5lbiBnYWVuZ2lnZW4KTVBzIHBhc3Nlbi4gCgouLi5kdSB6d2FyIGtlaW5lIGVpbnppZ2UgVm9rYWJlbCBpbiBMYXRlaW4vRnJhbnpvZXNpc2NoL3dhcyBhdWNoIGltbWVyCmthbm5zdCwgb2J3b2hsIGR1IHNjaG9uIDMgSmFocmUgVW50ZXJyaWNodCBoYXN0LCBhYmVyIGRhZnVlciBhbGxlClphdWJlcmZvcm1lbG4gZGllIGplbWFscyBmdWVyIChhKWQmZCBlcnNjaGllbmVuIHNpbmQgYXVzd2VuZGlnIHppdGllcmVuCmthbm5zdC4gCgouLi5kdSBuYWNoIGVpbmVtIFVuZmFsbCBlaW5lIE1hbmFmcmV1bmRsaWNoZSBtZWRpemluaXNjaGUgQmVoYW5kbHVuZwp2ZXJsYW5nc3QuIAoKLi4uZGFzIEVpbnppZ2Ugd2FzIGR1IGluIE1hdGhlIGthbm5zdCBXYXJzY2hlaW5saWNoa2VpdHNyZWNobnVuZyBpc3QuIAoKLi4uZHUgZGlyIGRpZSBmcmFnZSBzdGVsbHN0ICJ3YXJ1bSBtYWNoZW4gZGllIGRhcyBuaWNodCBlaW5mYWNoIG1pdApNYWdpZT8iIAoKLi4uZHUgZGllc2UgZnJhZ2Ugb2VmZmVudGxpY2ggc3RlbGxzdCAKCi4uLmR1IGVzIG9lZmZlbnRsaWNoIHZvcnNjaGxhZWdzdCAKCi4uLnVuZCBhbHMgQXJndW1lbnRhdGlvbiBlcmZvbGdyZWljaGUgQmVpc3BpZWxlIG5lbm5zdCAKCi4uLnVuZCBkYW1pdCBlaW5lbiBOaWNodC1Sb2xsZW5zcGllbGVyIGRhdm9uIHVlYmVyemV1Z3N0LCBkYXNzIGR1IFJlY2h0Cmhhc3QuIAoKLi4ud2VubiBtYW4gaW4gZWluZXIgRnVzc2dhZW5nZXJ6b25lIG5hY2ggZGVuIFNjaGFyZnNjaHVldHplbiBBdXNzY2hhdQpoYWVsdC4gCgouLi51bmQgZ2VsZWdlbnRsaWNoICJEZWNrdW5nISIgcnVmdCwgd2VpbCBtYW4gZ2xhdWJ0IHdlbGNoZSBlbnRkZWNrdCB6dQpoYWJlbi4gCgouLi53ZWlsIGplbWFuZCBhbiBkZXIgUG9zaXRpb24gc3RhbmQsIGFuIGRlciBkdSBzdGVoZW4gd3VlcmRlc3QgCgouLi53ZWlsIE5JRU1BTkQgc2ljaCBkZXJhcnQgZ2VzY2htYWNrbG9zIGFuemllaGVuIHd1ZXJkZSwgd2VubiBlciBzaWNoCm5pY2h0IHRhcm5lbiB3b2xsdGUgCgouLi53ZW5uIGR1IGltIEtpbm8gZGllIFVtc2l0emVuZGVuIG1pdCBTcHJ1ZWNoZW4gbmVydnN0IHdpZTogIk5laW4sIGRhcwppc3Qgdm9lbGxpZ2VyIFNjaHdhY2hzaW5uLCBlaW4gRWluaG9ybiBrYW5uIG1hbiBOSUNIVCBtaXQgZWluZXIgSnVuZ2ZyYXUKZmFuZ2VuLiBVbmQgRHJhY2hlbiBzaW5kIGF1Y2ggTklDSFQgcGVyIERlZmluaXRpb24gYm9lc2UhIiAKCi4uLndlbm4gRHUgZWluIGd1dGVzIER1dHplbmQgSG9oZXByaWVzdGVyIGF1cyB2ZXJzY2hpZWRlbmVuCkZhbnRhc3ktU2V0dGluZ3MgYmVpbSBOYW1lbiBrZW5uc3QsIGFiZXIgbmljaHQgd2Vpc3N0LCB3aWUgZGVyIEJpc2Nob2YKRGVpbmVyIERpb2V6ZXNlIGhlaXNzdC4gCgouLi5kdSB3ZWlzc3QsIHdhcyBlaW4gSWtvc2FlZGVyIGlzdC4gCgouLi5kdSBhbGxlcyBhYmt1ZXJ6dCAoVzIwLCBBVCwgUlcsIEJGLCAuLi4pIAoKLi4uZHUgaW4gR2VzY2hpY2h0ZSB6d2FyIGtlaW5lIEFobnVuZyB2b24gcG9saXRpc2NoZW4gVmVyaGFlbHRuaXNzZW4sCmFiZXIgZGFmdWVyIHVtIHNvIG1laHIgdm9uIGhpc3RvcmlzY2hlbiBzY2hsYWNodGVuIHVuZCBkZW4gdmVyd2FuZHRlbgpXYWZmZW4gaGFzdCAKCi4uLmR1IGluIEdlb2dyYXBoaWUgendhciBrZWluZSBBaG51bmcgaGFzdCwgZGFmdWVyIGFiZXIgZGVyIGVpbnppZ2UgaW4KZGVyIGtsYXNzZSBiaXN0LCBkZXIgZGllIGthcnRlbiBsZXNlbiBrYW5uIAoKLi4uZHUgZGljaCBmcmFnc3QsIG9iIEV4Y2FsaWJ1ciBudW4gaGVpbGlnIG9kZXIgbWFnaXNjaCB3YXIgCgouLi5kdSBmcmFnc3Qgd2VsY2hlIFN0dWZlIGRlbiBBcnRodXIgd2FyIAoKLi4uZHUgd2lzc2VuIHdpbGxzdCBvYiBNZXJsaW4gbnVuIERydWlkZSwgSGV4ZXIgb2RlciBaYXViZXJlciB3YXIgCgouLi5kaXIgenUgamVkZW0gaW4gZGVyIEJpYmVsIGJlc2NocmllYmVuZW4gV3VuZGVyIGRlciBwYXNzZW5kZW4KS2xlcmlrZXItWmF1YmVyIGVpbmZhZWxsdCAKCi4uLmR1IGJlaW5haGUgZGVuIExhY2hrcmFtcGYgZGVpbmVzIExlYmVucyBiZWtvbW1lbiBoYWV0dGVzdCwgYWxzIGRlaW4KQ2hlZiBzYWd0ZTogIlJ1ZiBtYWwgYmVpIHVuc2VyZW0gQXVmdHJhZ2dlYmVyIGFuIiB1bmQgZGllc2VyIE1lbnNjaCBhbQpUZWxlZm9uIHNpY2ggbWl0ICJIaWVyIEpvaG5zb24iIG1lbGRldGUgCgouLi5EdSBXZWlzc3QgZGFzcyBCbGlja2UgdG9ldGVuIGtvZW5uZW4uLi4gCgouLi5EdSBpbiBlaW5lciBaYXViZXJzaG93IChEYXZpZCBDb3BwZXJmaWVscyB1IEFlLikgIlNjaGFybGF0YW4iIG9kZXIKIlNob290IHRoZSBNYWdlIGZpcnN0ISIgcnVmc3QuIAoKLi4uZHUgZGljaCB3dW5kZXJzdCB3YXJ1bSBEYXRlbm1lbmdlbiBpbiBNQiB1bmQgbmljaHQgaW4gTXAgYW5nZWdlYmVuCndlcmRlbiAKCi4uLmR1IHp1bSBDaGlydXJnZW4gbGFldWZzdCB1bSBkaXIgZWluZW4gbmV1ZW4gUmVmbGV4Ym9vc3RlciBlaW5iYXVlbiB6dQpsYXNzZW4gCgouLi5kdSBlaW5lbiBlaW5nZWJhdXQgYmVrb21tc3QgCgouLi5kdSBhdWYgZGVyIFNwZWlzZWthcnRlIGRlcyBJdGFsaWVuZXJzIHN0YXR0ICJQaXp6YSBCYXJiYWRvcyIgIlBpenphCkJvcmJhcmFkIiBsaWVzdCAKCi4uLmR1IGRlaW5lbiBGZWhsZXIgbmljaHQgZ2xlaWNoIGJlbWVya3N0IHVuZCBudXIgZGVpbmUgbmljaHQtCnJvbGxlbnNwaWVsZXJpc2NoZW4gRnJldW5kZSBkYXZvbiBhYmhhbHRlbiBrb2VubmVuLCBkaWUgUGl6emVyaWEKYWJ6dWZhY2tlbG4gCgouLi5kaXIga2xhciBpc3QsIGRhc3MgIlJvbGxlbnNwaWVsZSBzcGllbGVuIiB1bmQgInNjaHdhcnplIG1lc3NlbgphYmhhbHRlbiB1bmQgQmx1dCB0cmlua2VuIiBuaWNodCB1bmJlZGluZ3QgaWRlbnRpc2NoIGlzdCAKCi4uLmRpciBhdXNzZXJkZW0ga2xhciBpc3QsIGRhc3MgZHUgbWl0IGRpZXNlbSB3aXNzZW4gaW4gZGVyIE1pbmRlcmhlaXQKYmlzdCAKCi4uLmR1IGRpZSBFcmtsYWVydW5nLCB3byBkZXIgdW50ZXJzY2hpZWQgbGllZ3QsIHNjaG9uIG9lZnRlcnMgYWxzIGRpZSBsaWViCmlzdCBnZWJyYWNodCBoYXN0IAoKLi4uc2llIGFiZXIgaW1tZXIgbWl0IEFuYWxvZ2llbiB6dSAibmFqYSwgdHJvdHpkZW0uLi4iIGFiZ2V0YW4gd3VyZGUgCgouLi5kdSBhbHMgQnJpbGxlbnRyYWVnZXIgdm9uIGRlbSBUYWcgdHJhZXVtc3QsIGFuIGRlbSBkdSBkaXIgZGllIGVyc3RlbgpDeWJlcmF1Z2VuIG1pdCBSZXN0bGljaHZlcnN0YWVya2VyLCBJbmZyYXJvdCB1bmQgQmxpdHprb21wZW5zYXRpb24ga2F1ZmVuCmthbm5zdC4gCgouLi5kdSBzY2hvbiBtYWwgZHJhbiBnZWRhY2h0IGhhc3QsIGRpY2ggc2VsYmVyIHp1IHNwaWVsZW4uIAoKLi4uZHUgZGFzIGF1Y2ggc2Nob24gZ2VtYWNodCBoYXN0IAoKLi4uZHUgdm9uIGRlaW5lciBLcmVkaXRrYXJ0ZSBhbHMgY3JlZHN0aWNrIHNwcmljaHN0IAoKLi4uZHUgdm9uIGRlaW5lbSBQZXJzb25hbGF1c3dlaXMgYWxzIFNJTiBzcHJpY2hzdCAKCi4uLmRpY2ggd3VuZGVydCwgZGFzcyBkaWUgZnVlaHJlcnNjaGVpbmtsYXNzZSBEIGZ1ZXIgQnVzc2UgdW5kIG5pY2h0IGZ1ZXIKRHJvaG5lbiBzdGVodCAKCi4uLmR1IGRlaW5lbiBGYWhybGVocmVyIHp1ZXJzdCBuYWNoIGVpbmVtIHJpZ2dlcmRlY2sgZnJhZ3N0IAoKLi4uZHUgZHVyY2ggZGVuIEtvbW1lbnRhciAiaWhyIHNlaWQgZG9jaCBhdWNoIHRlaWwgZGVyICdBbGxpYW56CmRldXRzY2hlciBMYWVuZGVyJyIgdm9uIGRpY2ggZmVobHZlcnN0ZWhlbmRlbiBmcmFuem9zZW4gZ2VoYXNzdCB3aXJzdCAKCi4uLmR1IGF1ZiBkZWluZW0gV2FobHpldHRlbCB2ZXJnZWJsaWNoIG5hY2ggTmFtZW4gd2llICJEdW5rZWx6YWhuIgpzdWNoc3QgCgouLi5kdSB2b24gZWluZW0gSGVycm4gam9obnNvbiBkYXJhdWYgaGluZ2V3aWVzZW4gd2lyc3QsIGRhc3MgZXIgbmljaHQKZGFzIEFyYmVpdHNhbXQgc2VpIAoKLi4uZHUgbWVociBlcmZ1bmRlbmUgYWxzIGVjaHRlIFJlbGlnaW9uZW4gYXVmemFlaGxlbiBrYW5uc3QuIAoKLi4uZHUgYXVjaCBub2NoIGRpZSBHcnVzc2Zvcm1lbG4gdW5kIFJpdHVhbGUgZGVyIG1laXN0ZW4gZGF2b24KYmVoZXJyc2Noc3QuIAoKLi4uZHUgYW4gZWluZSBkYXZvbiBnbGF1YnN0LiAKCi4uLnVuZCBzaWUgZ2VnZW4gZGllIGZpa3RpdmVuIEdsYXViZW5zZ2VtZWluc2NoYWZ0ZW4gZGVpbmVyIEZyZXVuZGUKdmVydGVpZGlnZW4gdW5kIHZlcnRyZXRlbiBtdXNzdCAKCi4uLnVuZCBkYXMgbWl0IHNvIHZpZWwgSGVyemJsdXQgdW5kIFNhY2hrZW5udG5pcyB0dXN0LCBkYXNzIHNpZXMgZGlyCmFia2F1ZmVuIAoKLi4uZGVpbiBnZXNhbXRlcyBFcmJlIGF1cyBXdWVyZmVsbiwgQ2hhcmFrdGVyYmxhZXR0ZXJuIHVuZCBTeXN0ZW1lbgpiZXN0ZWh0LiAKCi4uLmVzIHRyb3R6ZGVtIHdlcnR2b2xsZXIgaXN0IGFscyBkaWUgV2VydHBhcGllcnNhbW1sdW5nIGRlaW5lciBnZXNhbXRlbgpWZXJ3YW5kdHNjaGFmdCAKCi4uLmR1IEdvdHQgZnVlciBlaW5lbiB3aXJrbGljaCBiZXNjaGlzc2VuZW4gV2VsdGVuIEF1dG9yIGhhZWx0c3QuIAoKLi4uZHUgR3Jvc3NkZW1vcyBmdWVyIExBUlAgaGFlbHRzdC4gCgouLi5kdSBtaXRzcGllbHN0LiAKCi4uLmR1IGRpY2ggdWViZXIgZGllIHNjaGxlY2h0ZSBHZXdhbmR1bmcgdW5kIGRpZSBiaWxsaWdlbiBHdW1taXNjaHdlcnRlcgphdWZyZWdzdC4gCgouLi5kdSBhbGxlIFZlcmhhbHRlbnNyZWdlbG4gUmFzdHVsbGFocyBrZW5uc3QsIGFiZXIgbmljaHQgZGllIDEwIEdlYm90ZSAKCi4uLkR1IGVpbmVuIEJyaWVmIGFuIGVpbmUgS3JhbmtlbnZlcnNpY2hlcnVuZyBvLmFlLiBpbiBkZXIgZHJpdHRlbiBQZXJzb24Kc2NocmVpYnN0IAoKLi4uRHUgZnJhZ3N0LCBvYiBkdSBkZWluZSBTY2h1bGJ1ZWNoZXIgYmVoYWx0ZW4gZGFyZnN0LCB3ZWlsIHNvbnN0IGRpZQpIYWVsZnRlIGRlaW5lciBBdWZ6ZWljaG51bmdlbiBmdWVyIGVpbmUgS2FtcGFnbmUgd2VnIGlzdCAKCi4uLmRpY2ggZGFzIFByb2JsZW0gZGVyIFJhc3NlICJOaWNodHJvbGxlbnNwaWVsZXIiIG5pY2h0IG1laHIgYmV0cmlmZnQsCmRlaW4gZ2FuemVyIEJla2FubnRlbmtyZWlzIHNwaWVsdCwgZGVyIFJlc3Qgd3VyZGUgdmVyZHJhZW5ndC4gCgouLi5kdSBkaXIgaXJnZW5kZWluZW4gS29zZW5hbWVuIHN1Y2hzdCB1bmQgc2VpdCBFd2lna2VpdGVuIG51ciBub2NoIG1pdApkaWVzZW0gYW5nZXNwcm9jaGVuIHdpcnN0LiAKCi4uLmR1IGRpZXNlbiB2ZXJzZWhlbnRsaWNoIGJlaSBVbnRlcnNjaHJpZnRlbiBiZW51dHp0IAoKLi4uZHUgendhciB1ZWJlciBkZW4gSGludGVyZ3J1bmQgZGVyIHZlcnNjaGllZGVuZW4gQ2hhcmFrdGVyZSBkZWluZXIKU3BpZWxlciBnZW5hdWVzdGVzIEJlc2NoZWlkIHdlaXNzdCwgYWJlciBrZWluZSBBaG51bmcgaGFzdCwgd2FzIHNpZSBkZW5uCm5vY2ggbWFsIGdsZWljaCBzdHVkaWVyZW4uIAoKLi4uZHUgaW4gZGVpbiBBZHJlc3NidWNoIGdsZWljaCBkaWUgQ2hhcmFrdGVybmFtZW4gZGVpbmVyIG5ldWVuCkJla2FubnRlbiBzY2hyZWlic3QgLSByZWFsZSBOYW1lbiBrbGluZ2VuIGFsbGUgc28gZ2xlaWNoLi4uIAoKLi4uZHUgbWl0IENoYXJha3RlcmJvZWdlbiBkZWluIFppbW1lciB0YXBlemllcmVuIGtvZW5udGVzdCAKCi4uLnVuZCBlcyBiZXJlaXRzIGdldGFuIGhhc3QgCgouLi51bmQgc2llIGFsbGUgdm9tIHNlbGJlbiBDaGFyYWt0ZXIgaW4gdmVyc2NoaWVkZW5lbiBTdGFkaWVuIHNpbmQgCgouLi5kdSBrZWluIERpcGxvbXpldWduaXMgc29uZGVybiBlaW5lbiBLcmllZ2VyYnJpZWYgd2lsbHN0LiAKCi4uLmR1IHVlYmVybGVnc3QsIGluIE94Zm9yZCBUb2xraWVucyBFbGZpc2NoIHp1IHN0dWRpZXJlbi4gCgouLi5kZWluZSBFeGNlbGZlcnRpZ2tlaXRlbiBudXIgZWluIE5lYmVucHJvZHVrdCBkZXIKaGVsZGVuYnJpZWZnZXN0YWx0dW5nIHNpbmQgCgouLi5kdSBpbiBkZWluZXIgQmV3ZXJidW5nIFNwcmFjaGtlbm50bmlzc2Ugd2llICJTaW5kYXJpbiIgb2RlciAiUm9ndWxhbiIKZWluYnJpbmdzdCAKCi4uLmR1IGRhcmF1ZmhpbiBzb2dhciBlaW5nZXN0ZWxsdCB3aXJzdCAKCi4uLmR1IHNhZW10bGljaGUgQWt0aW9uZW4gaW0gQWxsdGFnIG1pdCBlaW5lbSBTRyBiZWxlZ3N0IAoKLi4uZHUgZWluZW4gRHJhbWF3dWVyZmVsIGF1c2dpYnN0LCB1bSBkaWUgbmFlY2hzdGUgTWF0aGVhcmJlaXQgenUgc2NoYWZmZW4gCgouLi5kZWluZSBVbnRlcmhhbHR1bmdlbiBtaXQgZGVpbmVuIEZyZXVuZGVuIHN0YWVuZGlnIHp3aXNjaGVuIFJMIHVuZCBSUAp3ZWNoc2VsbiAKCi4uLnVuZCBzaWUgZGljaCB0cm90emRlbSB2ZXJzdGVoZW4gCgouLi5kdSBuYWNoIGRlbSBTZXggYXVzd3VlcmZlbHN0LCBvYiBpaHIgendlaSBFbHRlcm4gd2VyZGV0IAoKLi4uZHUgZGlyIHVuYmVkaW5ndCBlaW4gZ3J1ZW5hZXVnaWdlcyBIYXVzdGllciB3dWVuc2NodCAKCi4uLmR1LCBuYWNoZGVtIGRlaW5lIEVsdGVybiBkaXIgbGVpZGVyIG51ciBlaW5lbiBicmF1bmFldWdpZ2VuIEh1bmQKa2F1ZmVuLCBlcyB6dW1pbmRlc3QgbWl0IGVpbmVtICJPZGVtIEFyY2FudW0iIHZlcnN1Y2hzdCAKCi4uLmR1IGRpY2ggYXVmIGVpbmVtIGhpc3RvcmlzY2hlbiBNYXJrdCBtaXQgZWluZW0gSGFlbmRsZXIgdWViZXIgUGhleAp1bnRlcmhhbHRlbiB3aWxsc3QgCgouLi5kdSBtaXQgaWhtIGluIGVpbmUgaGVpc3NlIERpc2t1c3Npb24gdWViZXIgZGllIFp3b2VsZmUgdmVyZmFlbGxzdCAKCi4uLmR1IGRpY2ggdmVyendlaWZlbHQgZnJhZ3N0LCB3b2hlciBkaWUgYWx0ZW4gUGlyYXRlbiBpaHJlIHRvbGxlbgpHZXdhbmR1bmdlbiBoZXJoYWJlbiAKCi4uLmR1IGVpbmUgU291bmRrYXJ0ZSB2b24gQXp0ZWNobm9sb2d5IGJlc2l0enQgCgouLi5kdSBpbiBqZWRlciBLbmVpcGUgbmFjaCBlaW5lbSBTY2hpZWJlciBBdXNzY2hhdSBoYWVsdHN0IAoKLi4uZHUgZGljaCB6dSBpaG0gc2V0enQgCgouLi5lciBkaXIgZWluZW4gSm9iIHZlcm1pdHRlbHQgCgouLi5kdSBkaWVzZW4gYXVzZnVlaHJzdCAKCi4uLmRlaW5lIEVybmFlaHJ1bmcgZmFzdCBudXIgbm9jaCBhdXMgQ2hpcHMsIFBpenphLCBDb2xhIHVuZCBFaXN0ZWUKYmVzdGVodCAKCi4uLmR1IDMgVGFnZSBhbSBTdHVlY2sgb2huZSBTY2hsYWYgYXVza29tbXN0LCB3ZWlsIGR1IGphIHdhcyB2b20gQ29uCnZlcnBhc3NlbiBrb2VubnRlc3QgCgouLi5kdSBWb2thYmVsbiBhdXMgNjAgdmVyc2NoaWVkZW5lbiBTcHJhY2hlbiBiZWhlcnJzY2hzdCwga2FyaW1hc3Uga2E/IAoKLi4uZHUgYmVzc2VyIFplaWNobmVuIGthbm5zdCwgYWxzIGRlaW4gS3Vuc3RsZWhyZXIgCgouLi5kZWluICJSb2xsZW5zcGllbCItT3JkbmVyIG1laHIgUGxhdHogYmVsZWd0LCBhbHMgZGVyIGdlc2FtdGUgUmVzdCBhdWYKZGVpbmVtIFBDLCBtaW5kZXN0ZW5zIGplZG9jaCA1MCUgZGVyIFBsYXR0ZSAKCi4uLnVuZCBkYXMgYXVmIGVpbmVyIDEyMEdCLVBsYXR0ZSAKCi4uLkR1IFNjaHdpZXJpZ2tlaXRlbiBoYXN0LCBlaW5lIEVyZGJlZXJlIHp1IHplaWNobmVuLCBlaW5lbgpLb21wb3NpdGJvZ2VuIGlua2x1c2l2ZSBFbGZlbndhbGRsYWV1ZmVyIGFiZXIgbWFzc3N0YWJzZ2V0cmV1IHp1IFBhcGllcgpicmluZ3N0LiAKCi4uLkRpZSBlaW56aWdlIFNjaG9lbnNjaHJpZnQsIGRpZSBEdSBiZWhlcnJzY2h0LCBtaXR0ZWxhbHRlcmxpY2gKdmVyc2Nobm9lcmtlbHQgaXN0LiAKCi4uLmR1IGFsdGUgQ2hhcmFrdGVyZSBhdWZiZXdhaHJzdCwgZnVlciBkZW4gRmFsbCBkYXNzIGplbWFuZCBkYXMgU3lzdGVtCnZpZWxsZWljaHQgZG9jaCBub2NoIG1hbCBsZWl0ZXQuIAoKLi4uZHUgamVtYWxzIHZlcnNlaGVudGxpY2ggZWluZW4gVzEyIHN0YXR0IGRlcyBXMjAgYmVpIEFEJkQgMm5kIEVkLgp2ZXJ3ZW5kZXQgaGFzdCwgZGVpbiBUSEFDMCBhYmVyIG5pZWRyaWcgZ2VudWcgd2FyLCB1bSBkYXMgOEhELU1vbnN0ZXIKdHJvdHpkZW0genUgdHJlZmZlbi4gCgouLi5kdSBkYXMgdmVyc3RhbmRlbiBoYXN0LiAKCi4uLmR1IGVudGRlY2t0IGhhc3QsIG5hY2hkZW0gZHUgbWl0IGRlaW5lciBiZXNzZXJlbiBIYWVsZnRlIGdlc3BpZWx0Cmhhc3QsIGRhc3MgZHUgaWhyZW4gQ2hhcmFrdGVyIG1laHIgbWFnc3QgYWxzIHNpZS4gCgouLi5kdSBtYW5jaG1hbCB2ZXJnaXNzdCwgd2VsY2hlcyBKYWhyaHVuZGVydCB3aXIgaGFiZW4uIAoKLi4uRWluIEZyZXVuZCwgZGVyIG5pY2h0IHNwaWVsdCwgc2ljaCBiZWkgYWxsIGRlaW5lbiBVbnRlcmhhbHR1bmdlbgphdXNnZWdyZW56dCBmdWVobHQuIAoKLi4uZHUgc2Nob24gbWVociBhbHMgZGVpbiBoYWxiZXMgTGViZW4gc3BpZWxzdC4gCgouLi5kdSB2b3IgbGFuZ2VyIFplaXQgZWlubWFsIGVpbmVuIHdlaWJsaWNoZW4gUm9sbGVuc3BpZWxlciBnZXRyb2ZmZW4KaGFzdC4gCgouLi5kdSB2b3IgbGFuZ2VyIFplaXQgZWlubWFsIGVpbiB3ZWlibGljaGVyIFJvbGxlbnNwaWVsZXIgd2Fyc3QuIAoKLi4uZHUgb2Z0IENoYXJha3RlcmUgc3BpZWxzdCwgZGllIHNpY2ggaW4gUmFzc2UsIEdlc2NobGVjaHQsIHNleHVlbGxlcgpPcmllbnRpZXJ1bmcgdW5kIG1vZWdsaWNoc3QgdmllbGVuIHdlaXRlcmVuIEVpZ2Vuc2NoYWZ0ZW4gdm9uIGRpciBzZWxic3QKdW50ZXJzY2hlaWRlbiwgbnVyIHVtIGRlaW5lIEZyZXVuZGUgenUgdmVyd2lycmVuLiAKCi4uLmRlaW5lIEZyZXVuZGUgc2ljaCBkYXZvbiBuaWNodCB2ZXJ3aXJyZW4gbGFzc2VuLiAKCi4uLmR1IHRpZWZnZWhlbmRlIERpc2t1c3Npb25lbiB1ZWJlciBkaWUgcmVsYXRpdmVuIFZvcnRlaWxlIHZvbgpDaGFtcGlvbnMsIFYmViwgTWFydmVsIHVuZCBEQyBIZXJvZXMgZnVlaHJzdCwgdW5kIGRhYmVpIGRpZSBUYXRzYWNoZSwgZGFzcwphbGxlIFN1cGVyaGVsZGVuLSBTcGllbHN5c3RlbWUgdm9uIHNpY2ggYXVzIE1pc3Qgc2luZCwga29tcGxldHQKaWdub3JpZXJzdC4gCgouLi5kdSBlaW5lcyBkZXIgb2JlbmdlbmFubnRlbiBTeXN0ZW1lIHNvIG1hZ3N0LCBkYXNzIGR1IGdlcmFkZSBnZXp1Y2t0Cmhhc3QsIGFscyBpY2ggZXMgYWxzIE1pc3QgYmV6ZWljaG5ldCBoYWJlLiAKCi4uLmR1IGRhcyBrbGVpbmUgQW5raCwgZGFzIGluIGRlciBWYW1waXJlLUxpdmUtQWN0aW9uIEJveCBlbnRoYWx0ZW4gaXN0LAp0cmFlZ3N0Li4uIHVuZCB6d2FyIGplZGVuIFRhZy4gCgouLi5kdSB3ZWlzc3QsIHdpZSBlaW4gQW5raCBhdXNzaWVodCB1bmQgd29mdWVyIGVzIHN0ZWh0LiAKCi4uLmRpciBMZXV0ZSB3YWVocmVuZCBlaW5lcyBCZXN1Y2hzIGluIGRlciBLbmVpcGUgb2RlciBpbSBSZXN0YXVyYW50CmplbWFscyBzZWx0c2FtZSBCbGlja2UgenVnZXdvcmZlbiBoYWJlbiwgdW5kIHp3YXIgYXVmZ3J1bmQgZGVzIFRoZW1hcwpkZWluZXIgVW50ZXJoYWx0dW5nLiAKCi4uLmR1IGplbWFscyBHZWxkIGZ1ZXIgZGllIEhlcnN0ZWxsdW5nIHZvbiBrdWVuc3RsaWNoZW4gRWNremFlaG5lbiBiZXphaGx0Cmhhc3QuIAoKLi4uZHUgZGllc2UgRWNremFlaG5lIGplZGVuIFRhZyB0cmFlZ3N0LiAKCi4uLmR1IGplbWFscyBlaW5lIEthbXBmcmVnZWwgYXVmZ3J1bmQgZGVpbmVyIEVyZmFocnVuZyBiZWltIE1pbGl0YWVyIG9kZXIKZGVyIFBvbGl6ZWkgaW4gRnJhZ2UgZ2VzdGVsbHQgaGFzdC4gCgouLi5kdSB2b24gZGVuIGd1dGVuIGFsdGVuIFplaXRlbiBzcHJpY2hzdCwgdW5kIGRpZSBaZWl0IG1laW5zdCwgYWxzClJvbGxlbnNwaWVsZSBub2NoIDEwIEV1cm8gZ2Vrb3N0ZXQgaGFiZW4gdW5kIGVpZ2VuZSBXdWVyZmVsIGVudGhpZWx0ZW4uIAoKLi4uZHUgZGllIGdlbmF1ZW4gVW50ZXJzY2hpZWRlIHp3aXNjaGVuIGRlbSAnb2ZmaXppZWxsZW4nIFN0YXIgVHJlaywKRkFTQSBTdGFyIFRyZWssIHVuZCBTdGFyIEZsZWV0IEJhdHRsZXMgZXJrbGFlcmVuIGthbm5zdC4gCgouLi5kZWluIENoYXJha3RlciBtZWhyIGd1dGUgRnJldW5kZSBoYXQsIGFscyBkdSBzZWxic3QuIAoKLi4uZHUgbmljaHQgd2VuaWdlciBhbHMgc2VjaHMgdmVyc2NoaWVkZW5lIEVya2xhZXJ1bmdlbiB6dW0gVGhlbWEgJ1dhcwpzaW5kIFJvbGxlbnNwaWVsZT8nIGdlYmVuIGthbm5zdCwgdW5kIHp3YXIgd29ydHdvZXJ0bGljaCBhdXMgZGVuCkVpbmxlaXR1bmdlbiB2b24gdmVyc2NoaWVkZW5lbiBSZWdlbGJ1ZWNoZXJuLiAKCi4uLmR1IGplbWFscyB2ZXJzdWNodCBoYXN0IGhlcmF1c3p1ZmluZGVuLCB3YXMgZXMga29zdGVuIHd1ZXJkZSBlaW5lIEJ1cmcKenUgYmF1ZW4uIAoKLi4uZGFzIHdpY2h0aWdzdGUgS3JpdGVyaXVtIGZ1ZXIgZWluZW4gUGFydG5lciBpc3QsIGRhc3MgZXIgb2RlciBzaWUgYXVjaApzcGllbHQuIAoKLi4uZGVpbmUgVm9yc3RlbGx1bmcgZWluZXMgc3Bhc3NpZ2VuIEZyZWl0YWdhYmVuZHMgaXN0LCBkaWUgSnVuZ3MKenVzYW1tZW56dXRyb21tZWxuIHVuZCBhY2h0IG9kZXIgbWVociBTdHVuZGVuIHp1IHNwaWVsZW4uIAoKLi4uZGVyIGVpbnppZ2UgcGxhdXNpYmxlIEdydW5kIGVpbmUgSHVldHRlIGFtIFNlZSB6dSBiZXNpdHplbiBpc3QsIGRhbWl0CmR1IHVuZCBkZWluZSBLdW1wZWxzIGRvcnQgZGFzIGdhbnplIFdvY2hlbmVuZGUgdW5nZXN0b2VydCBkdXJjaHNwaWVsZW4Ka29lbm5lbi4gCgouLi51bmQgZWluZSBzb2xjaGUgSHVldHRlIHNjaG9uIGdlbmF1IGF1cyBkaWVzZW0gR3J1bmQgZ2VtaWV0ZXQgaGFzdC4gCgouLi5kZWluIExlYmVuc2xhdWYgZGljaCBhbHMgSW5nZW5pZXVyIDUuU3R1ZmUgYmVzY2hyZWlidC4gCgouLi5kdSBlaW5lbiBTcGl0em5hbWVuIGhhc3QsIGRlciB1ZWJlcmhhdXB0IGtlaW5lbiBTaW5uIGVyZ2lidCwgd2VpbCBpaG4KdXJzcHJ1ZW5nbGljaCBlaW5lciBkZWluZXIgQ2hhcmFrdGVyZSBoYXR0ZS4gCgouLi53ZW5uIGR1IEJXTCBzdHVkaWVyc3QsIHVtIGVpbmVuIEN5YmVycHVuayBLb256ZXJuIHJpY2h0aWcgZGFyc3RlbGxlbgp6dSBrb2VubmVuLiAKCi4uLmR1IGRpZSBGaW5hbmNpYWwgVGltZXMgbGllc3QgdW5kIGRpciBadWt1bmZ0c3Byb2dub3NlbiBuYW1oYWZ0ZXIKSW5zdGl0dXRlIGJlc3RlbGxzdCwgdW0gZGVpbiBTaGFkb3dydW4gdXB6dWRhdGVuIAoKLi4uZGVpbmUgQ2hhcmFrdGVyZSBtZWhyIEdlc2NobGVjaHRzdmVya2VociBoYWJlbiBhbHMgZHUuIAoKLi4uZGVyIFN1cGVybWFya3QgaW4gZGVpbmVyIE5hZWhlIHdlZ2VuIGRpciB1bmQgZGVpbmVyIEZyZXVuZGUgc2Nob24gZWluCkV4dHJhcGFjayAiUm9sZXBsYXlpbmcgR2FtZXIncyBEZWxpZ2h0IiwgenVzYW1tZW5nZXNldHp0IGF1cyBQaXp6YSwgSWNlClRlYSB1bmQgQ2hpcHMsIGVpbmdlZnVlaHJ0IGhhdCB1bmQgZGFtaXQgZGllIGhvZWNoc3RlbiBHZXdpbm5lIHNlaXQgZGVyCkdydWVuZHVuIApnIGVpbmZhZWhydCAKCi4uLmR1IGRlaW5lbSBDb21wdXRlciBOYW1lbiB3aWUgIk1laW4gYWxsbWFlY2h0aWdlciBHb3R0IGV0Yy4gZ2lic3QgCgouLi5kdSBkZWluZSBXZWxsZW5zaXR0aWNoZSBDb25hbiBvZGVyIEJydW5oaWxkZSBuZW5uc3QuLi4gCgouLi5kdSBJTU1FUiBtaXQgZWluZW0gc2Nod2VydCBydW1sYWV1ZnN0LCBzb2dhciBpbiBlaW5lciBHYXN0c3RhZXR0ZS4gCgouLi5kdSBkYXMgbm9ybWFsIGZpbmRlc3QgCgouLi5kdSBpbW1lciBlaW5lbiBSdWNrc2FjayBtaXQgZGVpbmVuIENoYXJzIG1pdCBkaXIgcnVtdHJhZWdzdC4gCgouLi5kdSB3ZWlzc3QsIGRhc3MgIkhhbW1lciIgYXVjaCBlaW4gQWRqZWt0aXYgaXN0IAoKLi4uZHUgc2Nod2FyemUgSGF1dCB1bmQgd2Vpc3NlIEhhYXJlIGFuIGVpbmVyIEZyYXUgc2V4eSBmaW5kZXN0LiAKCi4uLndlbm4gZHUgbWl0IGRlbSBBdXRvIGlyZ2VuZHdvIG5lbiBQbGF0dGVuIGhhc3QsIHZlcndpcnJ0IGF1c3N0ZWlnc3QKdW5kIHJ1ZnN0OiJIYWxsbyBTTD8hIAoKLi4ud2VubiBtb3JnZW5zIGRlciBXZWNrZXIga2xpbmdlbHQgdW5kIGR1IHJ1ZnN0OiAiQm9hLCBpc3QgZGFzIGVpbgpbKioqKipdIFBsb3QhIiAKCi4uLndlbm4gZHUgTGV1dGUgZGFtaXQgdmVyd2lycnN0IGluZGVtIGR1IHNpY2ggbmFjaCBlaW5lbSBUYXNjaGVuZHJhY2hlbgpmcmFnc3QuIAoKLi4ud2VubiBkdSBlaW4gSGFuZHkgIm1hZ2lzY2hlciBGdW5ra25vY2hlbiIgbmVubnN0LiAKCi4uLm9kZXIgZGVpbmVuIEZvdG9hcHBhcmF0ICJTZWVsZW5mYWVuZ2VyIiwgCgouLi5kdSBhbGxlIEtuZWlwZW4gYWxzIFRhdmVybmVuIGJlemVpY2huZXN0IAoKLi4ud2VubiBkdSBiZWkgZWluZXIgVmVya2xlaWRldGVuIG9kZXIgZ2VzY2htaWt0ZW4gcGVyc29uIGF1Y2ggCmJlaSBLYXJuZXZhbCBkZW5rc3Q6IEFiZXIgZXMgd2FyIGRvY2ggaGV1dGUgZ2Fya2VpbiBDb24gaW4gZGVyIApuYWVoZSAKCi4uLndlbm4gZHUgYXVmIDoiaWNoIG11c3MgbWFsIG1pdCBkaXIgcmVkZW4iIG1pdCBlaW5lbSA6IndlbGNoZXMgCmR1PyIgQW50d29ydGVzdCAKCi4uLmR1IGJlaSBkZWluZW0gZXJzdGVuIERhdGUgYXVmICJWZXJmdWVocmVuIiB3dWVyZmVsc3QgCgouLi5uYWNoIGplZGVtIEJpZXIgZWluZSBLb25zdGktUHJvYmUgbWFjaHN0IAoKLi4ud2VubiBkdSB6dSBlaW5lbSBtYWVubmxpY2hlbiBNaXRzcGllbGVyICJIZXksIFNlbGdhbm9yLCBkdSBiaXN0IApzY2h3YW5nZXIhIiBzYWdzdC4uIAoKLi4udW5kIGtlaW5lciBkZWluZXIgTWl0c3BpZWxlciB2ZXJ3aXJydCBpc3QuIAoKLi4ud2VubiBkdSB2b24gendlaSBNYWVubmVyIHdlZ2dlc2NoaWNrdCB3aXJzdCwgd2VpbCBzaWUgZWluIApGcmF1ZW5nZXNwcmFlY2ggZnVlaHJlbiBtdWVzc2VuLiAKCi4uLndlbm4gZHUgYWxzIEZyYXUgbmFjaCBsYWVuZ2VyZW0gU3BpZWxlbiBlaW5lcyBtYWVubmxpY2hlbiAKQ2hhcnMgYXVmZmFlbGx0LCB3aWUgbmVydmlnIEZyYXVlbiBkb2NoIHNlaW4ga29lbm5lbi4gCgouLi5kdSAzMCBNaW51dGVuIHJlZGVuIGthbm5zdCBvaG5lIGRhcyBkaWNoIGVpbiBOaWNodHJvbGxlbnNwaWVsZXIgCnZlcnN0ZWh0IAoKLi4uZHUgaW5zIEJldHQgZ2Voc3Qgd2VubiBhbmRlcmUgTGV1dGUgc2Nob24gd2llZGVyIGF1ZnN0ZWhlbiAKCi4uZHUgTGV1dGUga2VubnN0IGRpZSBkaWVzZXIgVGhyZWF0IGludGVyZXNzaWVydC4gCgouLi5kdSBhbSBBYmZhbGwgaW4gZGVpbmVyIFdvaG51bmcgR3J1cHBlIHVuZCBTeXN0ZW0gCmlkZW50aWZpemllcmVuIGthbm5zdCAKCi4uLkR1IGRpZXNlIFNlaXRlbiBsaWVzdCB1bmQgRGljaCBmcmV1c3Qgd2VpbCBkdSBuaWNodCBhbGxlaW5lIG1pdCAKRGVpbmVuIGdhbnplICJzY2hyYWVnZW4iIEFuZ2V3b2huaGVpdGVuIGJpc3QuIAoKLi4uZHUgZGlyIGRpZSBsZXR6dGVuIDEwIFNlaXRlbiBrb21wbGV0dCBkdXJjaGdlbGVzZW4gaGFzdCwgdW5kIGJlaSAKNzUlIGRlciBCZWl0cmFlZ2UgZ2VkYWNodCBoYXN0OiAiVmVyZGFtbXQsIGRpZSByZWRlbiB1ZWJlciBtaWNoISIgCgouLi51bmQgZHUgZGFyYW4gbmljaHRzIHNjaGxlY2h0ZXMgZmluZGVzdC4uLiAKCi4uLiBkdSBiZWkgZWluZW0gYWJlbmRsaWNoZW4gV2FsZHNwYXppZXJnYW5nIGltIEF1Z2Vud2lua2VsIGVpbiAKa2xlaW5lcyBMaWNodCBzaWVoc3QgdW5kIGluc3Rpbmt0aXYgenVtIFNjaHdlcnQgZ3JlaWZzdCwgd2VpbCBkdSBzZWl0IApKYWhyZW4ga2VpbiBHbHVlaHd1ZXJtY2hlbSBtZWhyIGdlc2VoZW4gaGFzdCwgYWJlciB2aWVsIHp1IHZpZWxlIApEcm93IG1pdCBLbmlja2xpY2h0IGltIE11bmQgKGV0d2FzIGxhZW5nZXIgaGVyLCBhYmVyIGJlbGVndCkgCgouLi4gZHUgdGF0c2FlY2hsaWNoIGVpbiBTY2h3ZXJ0IGRhYmVpIGhhc3QgCgouLi4gZXMgZG9jaCBlaW4gRHJvdyBpc3QgCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdvcmFuIG1hbiBlcmtlbm50LCBkYXNzIG1hbidzIG1pdCBSUEcgdWViZXJ0cmVpYnQ6IChNb250YW51cywgIDIuIEp1bCAyMDAzLCAxMzowMDozMik6Cn4jISBybj1BbnRoZWEgcnQ9MTA1NzE0MjMwNyByZz13aXR6ZQp+IyEgdGlkPTEwNTcxNDIzMDcKVHJpYmxlLUZlYXR1cmU/CldhcyBoYXQgZGVubiBKYW1lcyBULiBLaXJrIG1pdCBGYW50YXN5LVJvbGxlbnNwaWVsZW4genUgcnVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXb3JhbiBtYW4gZXJrZW5udCwgZGFzcyBtYW4ncyBtaXQgUlBHIHVlYmVydHJlaWJ0OiAoRmxpbnRuYWlsLCAgMi4gSnVsIDIwMDMsIDE1OjQ5OjU2KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTEwNTcxNDM2MzIgcmc9d2l0emUKfiMhIHRpZD0xMDU3MTQyMzA3CmhvaS4uLgpkaWUgVmllY2hlciBoaWVzc2VuIGRvY2ggVHJpYmJsZXMgdW5kIG5pY2h0IHRyaWJsZSBiZWkgU3RhciBUcmVrLCB1bmQgd2FyZW4Kd2VuaWdlciBuZW4gZmVhdHVyZSwgZGVubiAnbmUgUGxhZ2UsIHVuZCBpbSBBcnRpa2VsIGdpbmdzIHVtIFJQRyBpbQphbGxnZW1laW5lbiwgb2RlciA/IERvY2ggbmljaCBhdWYgRmFudGFzeSBiZXNjaHJhZW5rdD8KCi4uYWNoamEuLi5pY2ggYmluIHdvaGwgZ2VyYWRlIHBpbmdlbGlnLi51bmQgaWNoIG91dCBtaWNoIGFscyAnVWViZXJ0cmVpYmVyJwoKRmxpbnQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXb3JhbiBtYW4gZXJrZW5udCwgZGFzcyBtYW4ncyBtaXQgUlBHIHVlYmVydHJlaWJ0OiAoRmxpbnRuYWlsLCAgMi4gSnVsIDIwMDMsIDE1OjUxOjM1KToKfiMhIHJuPUZsaW50bmFpbCBydD0xMDU3MTUzNzk2IHJnPXdpdHplCn4jISB0aWQ9MTA1NzE0MjMwNwouLi51bmQgYWxsZW0gQW5zY2hlaW4gbmFjaCB1bmQgbWVpbmVtIFNhdHpiYXUgbmFjaCwgaGFiZSBpY2ggaGV1dGUgZWluZW4KUG9vbHJhdW1yZWNobmVyIHp1dmllbCBhbmdla2V0dGV0OikKCkZsaW50KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV29yYW4gbWFuIGVya2VubnQsIGRhc3MgbWFuJ3MgbWl0IFJQRyB1ZWJlcnRyZWlidDogKEFudGhlYSwgIDIuIEp1bCAyMDAzLCAxNTo1MzozOSk6Cn4jISBybj1GbGludG5haWwgcnQ9MTA1NzE1Mzg5NSByZz13aXR6ZQp+IyEgdGlkPTEwNTcxNDIzMDcKSWNoIGhhYmUgZGllc2UgTGlzdGUgamEgYXVjaCBuaWNodCBzZWxic3QgZ2VzY2hyaWViZW4sIHNvbmRlcm4gdm9uIGplbWFuZGVtLApkZXIgc2llIGF1Y2ggbmljaHQgc2VsYnN0IGdlc2NocmllYmVuIGhhdCwgenVnZW1haWx0IGdla3JpZWd0LCB1bmQgaWNoIGhhYmUKZGVuIEluaGFsdCBuaWNodCB2b3IgZGVtIFBvc3RlbiBhdWYgMTExJWlnZSBLb3JyZWt0aGVpdCBnZXBydWVmdC4gS2xhciwgaWNoCmhhZXR0ZSBlcyBiZXNzZXIgd2lzc2VuIG11ZXNzZW4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW4gZ2x1ZWNrbGljaCBtYWNoZW4gKERlZXBibHVlLCAgNC4gSnVsIDIwMDMsIDIzOjMwOjAyKToKIEVpbmUgRnJhdSBnbHVlY2tsaWNoIHp1IG1hY2hlbiBpc3QgZWluZmFjaC4uLgoKIG1hbiBtdXNzIG51ciBlaW4uLi4KCjEuIEZyZXVuZAoyLiBQYXJ0bmVyCjMuIExpZWJoYWJlcgo0LiBCcnVkZXIKNS4gVmF0ZXIKNi4gTGVocmVyCjcuIEVyemllaGVyCjguIEtvY2gKOS4gTWVjaGFuaWtlcgoxMC4gTW9udGV1cgoxMS4gSW5uZW4tQXJjaGl0ZWt0CjEyLiBTdHlsaXN0CjEzLiBFbGVrdHJpa2VyCjE0LiBTZXhvbG9nZQoxNS4gR3luYWVrb2xvZ2UKMTYuIFBzeWNob2xvZ2UKMTcuIFBzeWNoaWF0ZXIKMTguIFRoZXJhcGV1dCBzZWluCgp1bmQKCjE5LiB6dXZvcmtvbW1lbmQKMjAuIHN5bXBhdGhpc2NoCjIxLiBkdXJjaHRyYWluaWVydAoyMi4gbGllYmV2b2xsCjIzLiBhdWZtZXJrc2FtCjI0LiBnZW50bGVtYW5saWtlCjI1LiBpbnRlbGxpZ2VudAoyNi4gZWluZmFsbHNyZWljaAoyNy4ga3JlYXRpdgoyOC4gZWluZnVlaGxzYW0KMjkuIHN0YXJrCjMwLiB2ZXJzdGFlbmRuaXN2b2xsCjMxLiB0b2xlcmFudAozMi4gYmVzY2hlaWRlbgozMy4gZWhyZ2VpemlnCjM0LiBmYWVoaWcKMzUuIG11dGlnCjM2LiBlbnRzY2hpZWRlbgozNy4gdmVydHJhdWVuc3ZvbGwKMzguIHJlc3Bla3R2b2xsCjM5LiBoaW5nZWJ1bmdzdm9sbAo0MC4gbGVpZGVuc2NoYWZ0bGljaCB1bmQgdm9yIGFsbGVtCjQxLiB6YWhsdW5nc2ZhZWhpZyBzZWluLgoKR2xlaWNoemVpdGlnLCBzb2xsdGUgZXIgZGFyYXVmIGFjaHRlbiwgZGFzcwoKYSkgZXIgbmljaHQgZWlmZXJzdWVjaHRpZyBpc3QsIHVuZCBkZW5ub2NoIG5pY2h0IHVuaW50ZXJlc3NpZXJ0CmIpIGVyIHNpY2ggbWl0IHNlaW5lciBGYW1pbGllIGd1dCB2ZXJzdGVodCwgaWhyIGFiZXIgbmljaHQgbWVociBaZWl0IHdpZG1ldAphbHMgZGVyIEZyYXUKYykgZXIgaWhyIFJhdW0gbGFlc3N0LCBzaWNoIGFiZXIgYmVzb3JndCB6ZWlndCwgd28gc2llIHdhciB1bmQgd2FzIHNpZQpnZW1hY2h0IGhhdC4KClNlaHIgd2ljaHRpZyBpc3QgZXM6CgpuaWNodCBkaWUgR2VidXJ0c3RhZ2UsIEphaHJlc3RhZ2UsIEhvY2h6ZWl0c3RhZ2UsIE5hbWVuc3RhZ2UsIGlocmUgVGFnZSwKRGF0dW0gZGVzIGVyc3RlbiBLdXNzZXMsIEdlYnVydHN0YWcgaWhyZXIgTGllYmxpbmdzdGFudGUsIGlocmVzCkxpZWJsaW5nc25lZmZlbiBvZGVyIGlocmVyIExpZWJsaW5nc2ZyZXVuZGluLi4uIHp1IHZlcmdlc3Nlbi4KCkxlaWRlciBnYXJhbnRpZXJ0IGF1Y2ggZGllIHBlcmZla3RlIEVpbmhhbHR1bmcgZGllc2VyIFJhdHNjaGxhZWdlIGtlaW4KMTAwJWlnZXMgR2x1ZWNrLiBTaWUga29lbm50ZSBzaWNoIHZvbiBlaW5lbSBwZXJmZWt0ZW4gdW5kIGFiZ2VzdGltbXRlbiBMZWJlbgplaW5nZWVuZ3QgZnVlaGxlbiB1bmQgbWl0IGRlbSBlcnN0YmVzdGVuIFNjaGx1ZmZpIGRhdm9ucmVubmVuLCBkZXIgaWhyCmJlZ2VnbmV0LgoKVW5kIG51biBkaWUgYW5kZXJlIFNlaXRlIGRlciBNZWRhaWxsZToKCkVpbmVuIE1hbm4gZ2x1ZWNrbGljaCB6dSBtYWNoZW4gaXN0IC0gd2llIHdpciBudW4gcmFzY2ggZXJrZW5uZW4gd2VyZGVuIC0KYmVpIHdlaXRlbSBuaWNodCBzbyBsZWljaHQuCgpEZW5uOgoKRGVyIE1hbm4gYnJhdWNodDoKCjEuIFNleCB1bmQKMi4gRXNzZW4vQmllcgoKRGllIG1laXN0ZW4gRnJhdWVuIHNpbmQgbWl0IGRpZXNlbiBzZWluZW4gQmVkdWVyZm5pc3NlbiBuYXR1ZXJsaWNoIHRvdGFsCnVlYmVyZm9yZGVydC4KCldhcyBsZXJuZW4gd2lyIGRhcmF1cz8KCkhhcm1vbmlzY2hlcyBadXNhbW1lbmxlYmVuIGlzdCBnYXIgbmljaHQgc2Nod2VyIC0gd2VubiBkaWUgTWFlbm5lciBlbmRsaWNoCmVya2VubmVuLCBkYXNzIHNpZSBpaHJlIEFuc3BydWVjaGUgZWluIGtsZWluIHdlbmlnIHp1cnVlY2tzY2hyYXViZW4KbXVlc3Nlbi4uLi4uLi4KKGF1cyBkLnQuai4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYWNodHMgdm9yIGRlciBUdWVyIChEZWVwYmx1ZSwgIDQuIEp1bCAyMDAzLCAyMzozMzo1MSk6Ck5ldWxpY2gsIG5hY2h0cyB1bSBlaW5zIHZvciBkZXIgVHVlci4uLgpFaW5lcyBOYWNodHMgYnJhY2h0ZSBlaW4gVHlwIHNlaW5lIEZyZXVuZGluIG5hY2ggSGF1c2UuIERvcnQgYW5nZWtvbW1lbiwKYmVpbSBBdXN0YXVzY2ggZGVzIEd1dGUtTmFjaHQtS3Vzc2VzLCBmdWVobHRlIGVyIHNpY2ggZWluIHdlbmlnIGdlaWwuCk1pdCBlaW5lbSBBbmZsdWcgdm9uIFZlcnRyYXVsaWNoa2VpdCBsZWhudGUgZXIgc2ljaCBtaXQgZGVyIEhhbmQgYW4gZGllIFdhbmQKdW5kIHNhZ3RlIHp1IElocjogIkxpZWJsaW5nLCB3dWVyZGVzdCBEdSBtaXIgZWluZW4gYmxhc2VuPyIKU2llIGVudHNldHp0OiAiQmlzdCBEdSB2ZXJydWVja3Q/IE1laW5lIEVsdGVybiB3dWVyZGVuIHVucyBzZWhlbiEhIgpFcjogIkhhYiBkaWNoIG5pY2h0IHNvISBXZXIgc2llaHQgdW5zIHNjaG9uIHVtIGRpZXNlIFVocnplaXQ/ISIKU2llOiAiTmVpbiwgYml0dGUuIEthbm5zdCBkdSBEaXIgdm9yc3RlbGxlbiwgd2FzIHBhc3NpZXJ0LCB3ZW5uIHdpciBlcndpc2NodAp3ZXJkZW4/IgpFcjogIk9oLCBiaXR0ZSwgaWNoIGxpZWJlIERpY2ggc28gc2VociEiClNpZTogIk5laW4gdW5kIG5vY2htYWxzIG5laW4uIEljaCBsaWViZSBEaWNoIGF1Y2gsIGFiZXIgaWNoIGthbm4ncyBlaW5mYWNoCm5pY2h0ISIKRXI6ICJGcmVpbGljaCBrYW5uc3QgRHUuLi4gQml0dGUuLi4iClBsb2V0emxpY2ggZ2luZyBkYXMgTGljaHQgaW0gVHJlcHBlbmhhdXMgYW4sIGRpZSBqdWVuZ2VyZSBTY2h3ZXN0ZXIgZGVzCk1hZWRjaGVucyBlcnNjaGllbiBibGluemVsbmQgaW0gUHlqYW1hIHVuZCBzYWd0ZSB2ZXJzY2hsYWZlbjogIlBhcGEgc2FndCwKbWFjaCBoaW4gdW5kIGJsYXMgaWhtIGVpbmVuLiBXZW5uIG5pY2h0LCBrYW5uIGF1Y2ggTWFtYSBydW50ZXJrb21tZW4gdW5kIGVzCm1hY2hlbiwgb2RlciBpY2guIFdlbm4ncyBzZWluIG11c3MsIHNhZ3QgUGFwYSwga29tbXQgZXIgc2VsYmVyIHJ1bnRlciB1bmQKbWFjaHQgZXMuIEFiZXIgdW0gR290dGVzIFdpbGxlbiwgc2FnIGRlbSBBcnNjaGxvY2gsIGVyIHNvbGwgc2VpbmUgSGFuZCB2b24KZGVyIFNwcmVjaGFubGFnZSBuZWhtZW4hIgooYXVzIGQudC5qLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClVtZnJhZ2UgKEd1ZW4sICA3LiBKdWwgMjAwMywgMTE6NDI6MDUpOgpJbSBsZXR6dGVuIE1vbmF0IGhhdCBkaWUgVU5PIGVpbmUgd2VsdHdlaXRlIFVtZnJhZ2UgZHVyY2hnZWZ1ZWhydC4gRGllIEZyYWdlCndhcjoKCgoiR2ViZW4gU2llIHVucyBiaXR0ZSBpaHJlIGVocmxpY2hlIE1laW51bmcgenVyIExvZXN1bmcgZGVyIE5haHJ1bmdzLUtuYXBwaGVpdAppbSBSZXN0IGRlciBXZWx0IGFiLiIKCkRpZSBVbWZyYWdlIHN0ZWxsdGUgc2ljaCwgbmljaHQgdW5lcndhcnRldCwgYWxzIFJpZXNlbmZsb3AgaGVyYXVzLiBJbiBBZnJpa2EKd3Vzc3RlbiBkaWUgVGVpbG5laG1lcgpuaWNodCB3YXMgIk5haHJ1bmciIGlzdC4gT3N0ZXVyb3BhIHd1c3N0ZSBuaWNodCwgd2FzICJlaHJsaWNoIiBoZWlzc3QuCldlc3RldXJvcGEga2FubnRlIGRhcyBXb3J0ICJLbmFwcGhlaXQiIG5pY2h0LiBEaWUgQ2hpbmVzZW4gd3Vzc3RlbiBuaWNodCwgd2FzCiJNZWludW5nIiBpc3QuIERlciBOYWhlIE9zdGVuIGZyYWd0ZSBuYWNoLCB3YXMgZGVubiAiTG9lc3VuZyIgYmVkZXV0ZS4KU3VlZGFtZXJpa2Ega2FubnRlIGRpZSBCZWRldXR1bmcgdm9uICJiaXR0ZSIgbmljaHQuIFVuZCBpbiBkZW4gVVNBIHd1c3N0ZQpuaWVtYW5kLCB3YXMgImRlciBSZXN0IGRlciBXZWx0IiBpc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQ2hpbGkgKE1vbnRhbnVzLCAgOC4gSnVsIDIwMDMsIDEzOjIyOjU1KToKfiMhIHJuPURlZXBibHVlIHJ0PTEwNTc2NjMxNDkgcmc9d2l0emUKfiMhIHRpZD0xMDU3NjYzMTQ5CkF1Y2ggQ3V0JlBhc3RlIHdpbGwgZ2VsZXJudCBzZWluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENoaWxpIChCb2luZywgIDguIEp1bCAyMDAzLCAxMzoyMzo0Myk6Cn4jISBybj1EZWVwYmx1ZSBydD0xMDU3NjYzMTQ5IHJnPXdpdHplCn4jISB0aWQ9MTA1NzY2MzE0OQpIYWV0dGUgbHVzdGlnIHNlaW4ga29lbm5lbiwgd2VubiBuaWNodCBkaWUgVW1sYXV0ZSBkYXMgZ2FuemUgdGVpbHdlaXNlCmJpcyB6dXIgVW5sZXNlcmxpY2hrZWl0IHplcnN0b2VydCBoYWV0dGVuIC4uLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IENoaWxpIChNb250YW51cywgIDguIEp1bCAyMDAzLCAxMzoyNDozNyk6Cn4jISBybj1Cb2luZyBydD0xMDU3NjYzNDIzIHJnPXdpdHplCn4jISB0aWQ9MTA1NzY2MzE0OQpOYWphLCBkZXIgc3RhbmQgc2Nob24gbWluZGVzdGVucyB6d2VpbWFsIGluIE1lZ2FzY2htYXJybi4gV28gZWggZGllIGdhbnplbgpDaGlsaS1FeHBlcnRlbiBoZXJ1bWx1bmdlcm4uIEZyYWcgQW5hdG9sIG9kZXIgSGVycm4gQSwgZGllIGhhYmVuIGRlbiBzaWNoZXIKbm9jaCBhdWYgTGFnZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDaGlsaSAoRGVlcGJsdWUsICA4LiBKdWwgMjAwMywgMTM6Mjc6MDcpOgoyLiBWZXJzdWNoLCBqZXR6dCBhdWNoIG1pdCBzeiBvcmRlbnRsaWNoIGVyc2V0enQgKHdpZXNvIGhhdCBkYXMgYmVpbSAxLiBtYWwKbmVkIGdla2xhcHB0Pz8/KQoKS3VlcnpsaWNoIHd1cmRlIG1pciBkaWUgRWhyZSB6dXRlaWwsIGFscyBFcnNhdHpwdW5rdHJpY2h0ZXIgYmVpCmVpbmVtIENoaWxpLUtvY2h3ZXR0YmV3ZXJiIGluIE1leGlrbyB6dSBmdW5naWVyZW4uCkRlciB1cnNwcnVlbmdsaWNoZSBQdW5rdHJpY2h0ZXIgd2FyIGt1cnpmcmlzdGlnIGVya3Jhbmt0IHVuZAppY2ggc3RhbmQgZ2VyYWRlIGluIGRlciBOYWVoZSBkZXMgUHVua3RyaWNodGVydGlzY2hlcyBoZXJ1bQp1bmQgZXJrdW5kaWd0ZSBtaWNoIG5hY2ggZGVtIEJpZXJzdGFuZCwgYWxzIGRpZSBOYWNocmljaHQgdWViZXIKc2VpbmUgRXJrcmFua3VuZyBlaW50cmFmLgoKRGllIGJlaWRlbiBhbmRlcmVuIFB1bmt0cmljaHRlciAoYmVpZGUgZ2VidWVydGlnZSBNZXhpa2FuZXIpCnZlcnNpY2hlcnRlbiBtaXIsIGRhc3MgZGllIHp1IHRlc3RlbmRlbiBDaGlsaXMgbmljaHQgYWxsenUKc2NoYXJmIHNlaW4gd3VlcmRlbi4gQXVzc2VyZGVtIHZlcnNwcmFjaGVuIFNpZSBtaXIgRnJlaWJpZXIKd2FlaHJlbmQgZGVzIGdhbnplbiBXZXR0YmV3ZXJiZXMgdW5kIGljaCBkYWNodGUgbWlyOgoKUFJJTUEsIExPUyBHRUhUYFMhCgpIaWVyIHNpbmQgZGllIEJld2VydHVuZ3NrYXJ0ZW4gZGVzIFdldHRiZXdlcmJlczoKCkNoaWxpIE5yIDE6IE1pa2VgcyBNYW5pYWMgTW9ic3RlciBNb25zdGVyIENoaWxpCgpSaWNodGVyMTogRXR3YXMgenUgVG9tYXRlbmJldG9udDsgYW11ZXNhbnRlciBraWNrClJpY2h0ZXIyOiBBbmdlbmVobWVzLCBnZXNjaG1laWRpZ2VzIFRvbWF0ZW5hcm9tYS4gU2VociBtaWxkLgpKZW5zOiBBY2ggRHUgc2NoKioqZSEgd2FzIGlzdCBkYXMgZnVlciBaZXVnIT8KRGFtaXQga2FubiBnZXRyb2NrbmV0ZSBGYXJiZSB2b24gZGVyIEF1dG9iYWhuIGxvZXNlbiEhCkJyYXVjaHRlIHp3ZWkgQmllciB1bSBkaWUgRmxhbW1lbiB6dSBsb2VzY2hlbjsKSWNoIGhvZmZlLCBkYXMgd2FyIGRhcyB1ZWJlbHN0ZTsKCgpEaWVzZSBNZXhpa2FuZXIgc2luZCBlY2h0IGJlc2NoZXVlcnQhCgpDaGlsaSBOciAyOiBBcnRodXJgcyBOYWNoYnJlbm5lciBDaGlsaQoKUmljaHRlciAxOiBSYXVjaGlnLCBtaXQgZWluZXIgTm90ZSB2b24gU3BlY2suIExlaWNodGUgUGVwcGVyb25pYmV0b251bmcKUmljaHRlciAyOiBBdWZyZWdlbmRlcyBHcmlsbCBBcm9tYSwgYnJhdWNodCBtZWhyIFBlcGVyb25pcyB1bQplcm5zdCBnZW5vbW1lbiB6dSB3ZXJkZW4uCkplbnM6IFNjaGxpZXNzdCBkaWVzZXMgWmV1ZyB2b3IgZGVuIEtpbmRlcm4gd2VnIQpJY2ggd2Vpc3MgbmljaHQsIHdhcyBpY2ggYXVzc2VyIFNjaG1lcnplbiBoaWVyIG5vY2gKc2NobWVja2VuIGtvZW5udGUuIFp3ZWkgTGV1dGUgd29sbHRlbiBtaXIgZXJzdGUKSGlsZmUgbGVpc3RlbiB1bmQgc2NobGVwcHRlbiBtZWhyIEJpZXIgcmFuLCBhbHMgc2llCm1laW5lbiBHZXNpY2h0c2F1c2RydWNrIHNhaGVuLgoKCkNoaWxpIE5yIDM6IEZyZWRgcyBiZXJ1ZWhtdGVzICJCcmVubnQgZGllIEh1ZXR0ZSBuaWVkZXIgQ2hpbGkiCgpSaWNodGVyIDE6IEV4Y2VsbGVudGVzIEZldWVyd2VocmNoaWxpISBNb3Jkc2tpY2shIEJyYWV1Y2h0ZSBtZWhyIEJvaG5lbi4KUmljaHRlciAyOiBFaW4gQm9obmVubG9zZXMgQ2hpbGksIGVpbiB3ZW5pZyBzYWx6aWcsIGd1dGUKRG9zaWVydW5nIHJvdGVyIFBmZWZmZXJzY2hvdGVuLgpKZW5zOiBSdWZ0IGRlbiBLYXRhc3Ryb3BoZW5zY2h1dHohIEljaCBoYWJlIGVpbiBVcmFubGVjayBnZWZ1bmRlbi4KTWVpbmUgTmFzZSBmdWVobHQgc2ljaCBhbiwgYWxzIGhhZXR0ZSBpY2ggUm9ocmZyZWkgZ2VzY2huaWVmdC4KSW56d2lzY2hlbiB3ZWlzcyBqZWRlciB3YXMgenUgdHVuIGlzdDogYnJpbmd0IG1pciBtZWhyIEJpZXIsCmJldm9yIGljaCB6dWVuZGUhIQpEaWUgQmFyZnJhdSBoYXQgbWlyIGF1ZiBkZW4gUnVlY2tlbiBnZWtsb3BmdDsgamV0enQgaGFlbmd0Cm1laW4gUnVlY2tncmF0IHZvcm5lIGFtIEJhdWNoLiBMYW5nc2FtIGtyaWVnIGljaCBlaW5lCkdlc2ljaHRzbGFlaG11bmcgdm9uIGRlbSBnYW56ZW4gQmllci4KCgogCkNoaWxpIE5yLiA0OiBCdWJiYWBzIEJsYWNrIE1hZ2ljCgpSaWNodGVyIDE6IENoaWxpIG1pdCBzY2h3YXJ6ZW4gQm9obmVuIHVuZCBmYXN0IHVuZ2V3dWVyenQuIEVudHRhZXVzY2hlbmQuClJpY2h0ZXIgMjogRWluIFRvdWNoIHZvbiBMaW1vbmVuIGluIGRlbiBzY2h3YXJ6ZW4gQm9obmVuLiBHdXRlIEJlaWxhZ2UKZnVlcgpGaXNjaCB1bmQgYW5kZXJlIG1pbGRlIEdlcmljaHRlLCBlaWdlbnRsaWNoIGtlaW4gcmljaHRpZ2VzCkNoaWxpLgpKZW5zOiBJcmdlbmRldHdhcyBpc3QgdWViZXIgbWVpbmUgWnVuZ2UgZ2VrcmF0enQsIGFiZXIgaWNoIGtvbm50ZQpuaWNodHMKc2NobWVja2VuLgpJc3QgZXMgbW9lZ2xpY2gsIGVpbmVuIFRlc3RlciBhdXN6dWJyZW5uZW4/ClNhbGx5LCBkaWUgQmFyZnJhdSBzdGFuZCBoaW50ZXIgbWlyIG1pdCBCaWVybmFjaHNjaHViOyBkaWUKaGFlc3NsaWNoZSBTY2hsYW1wZSBmYWVuZ3QgbGFuZ3NhbSBhbiBIRUlTUyBhdXN6dXNlaGVuOwpnZW5hdSB3aWUgZGllc2VyIHJhZGlvYWt0aXZlIE11ZWxsLCBkZW4gaWNoIGhpZXIgZXNzZS4KS2FubiBDaGlsaSBlaW4gQXBocm9kaXNpYWt1bSBzZWluPwoKCkNoaWxpIE5yLiA1OiBMaW5kYXMgbGVnYWxlciBMaXBwZW5lbnRmZXJuZXIKClJpY2h0ZXIgMTogRmxlaXNjaGlnZXMsIHN0YXJrZXMgQ2hpbGkuIEZyaXNjaCBnZW1haGxlbmVyIENoYXllbm5lcGZlZmZlcgpmdWVndCBlaW5lbiBiZW1lcmtlbnN3ZXJ0ZW4ga2ljayBoaW56dS4gU2VociBiZWVpbmRydWNrZW5kLgpSaWNodGVyIDI6IEhhY2tmbGVpc2NoY2hpbGksIGtvZW5udGUgbWVociBUb21hdGVuIHZlcnRyYWdlbi4gSWNoIG11c3MKenVnZWJlbixkYXNzIGRlciBDaGF5ZW5uZXBmZWZmZXIgZWluZW4gYmVtZXJrZW5zd2VydGVuCkVpbmRydWNrIGhpbnRlcmxhZXNzdC4KSmVuczogTWVpbmUgT2hyZW4ga2xpbmdlbG4sIFNjaHdlaXNzIGxhZXVmdCBpbiBCYWVjaGVuIG1laW5lIFN0aXJuCmhpbmFiIHVuZCBpY2gga2FubiBuaWNodCBtZWhyIGtsYXIgc2VoZW4uIE11c3N0ZSBmdXJ6ZW4KdW5kIDQgTGV1dGUgaGludGVyIG1pciBtdXNzdGVuIHZvbSBTYW5pdGFldGVyIGJlaGFuZGVsdAp3ZXJkZW4uIERpZSBLb2VjaGluIHNjaGllbiBiZWxlaWRpZ3QgenUgc2VpbiwgYWxzIGljaCBpaHIKZXJrbGFlcnRlLCBkYXNzIGljaCB2b24gSWhyZW0gWmV1ZyBlaW5lbiBIaXJuc2NoYWRlbiBlcmxpdHRlbgpoYWJlLgpTYWxseSBnb3NzIEJpZXIgZGlyZWt0IGF1cyBkZW0gUGl0Y2hlciBhdWYgbWVpbmUgWnVuZ2UgdW5kCnN0b3BwdGUgc28gZGllIEJsdXR1bmcuCgoKCkNoaWxpIE5yIDY6IFZlcmFzIHNlaHIgdmVnZXRhcmlzY2hlcyBDaGlsaQoKUmljaHRlciAxOiBEdWVubmVzIGFiZXIgZGVubm9jaCBrcmFlZnRpZ2VzIENoaWxpLiBHdXRlIEJhbGFuY2UKendpc2NoZW4gQ2hpbGlzIHVuZCBhbmRlcmVuIEdld3Vlcnplbi4KUmljaHRlciAyOiBEYXMgYmVzdGUgYmlzIGpldHp0ISBBZ3Jlc3NpdmVyIEVpbnNhdHogdm9uIENoaWxpc2Nob3RlbiwKWndpZWJlbG4gdW5kIEtub2JsYXVjaC4gU3VwZXJiIQpKZW5zOiBNZWluZSBEYWVybWUgc2luZCBudW4gZWluIGdlcmFkZXMgUm9ociB2b2xsZXIgZ2FzaWdlciwKc2Nod2VmZWxpZ2VyIEZsYW1tZW4uIEljaCBoYWJlIG1pY2ggdm9sbGdlc2NoaXNzZW4KYWxzIGljaCBmdXJ6ZW4gbXVzc3RlIHVuZCBpY2ggZnVlcmNodGUgZXMgd2lyZCBzaWNoCmR1cmNoIEhvc2UgdW5kIFN0dWhsIGZyZXNzZW4uCk5pZW1hbmQgdHJhdXQgc2ljaCBtZWhyIGhpbnRlciBtaXIgenUgc3RlaGVuLgpLYW5uIG1laW5lIExpcHBlbiBuaWNodCBtZWhyIGZ1ZWhsZW4uCkljaCBoYWJlIGRhcyBkcmluZ2VuZGUgQmVkdWVyZm5pc3MsIG1pciBkZW4gSGludGVybiBtaXQKZWluZW0gZ3Jvc3NlbiBTY2huZWViYWxsIGFienV3aXNjaGVuLgoKCkNoaWxpIE5yIDc6IFN1c2FubmVzICJTY2hyZWllbmRlLVNlbnNhdGlvbi1DaGlsaSIKClJpY2h0ZXIgMTogRWluIG1vZGVyYXRlcyBDaGlsaSBtaXQgenUgZ3Jvc3NlciBCZXRvbnVuZyBhdWYKRG9zZW5wZXBwZXJvbmkuClJpY2h0ZXIgMjogQWhlbSwgc2NobWVja3QgYWxzIGhhZXR0ZSBkZXIgS29jaCB0YXRzYWVjaGxpY2ggaW0gbGV0enRlbgpNb21lbnQKZWluZSBEb3NlIFBlcHBlcm9uaSByZWluZ2V3b3JmZW4uIEljaCBtYWNoZSBtaXIgU29yZ2VuIHVtClJpY2h0ZXIgTnIuIDMuIEVyIHNjaGVpbnQgc2ljaCBlaW4gd2VuaWcgdW53b2hsIHp1IGZ1ZWhsZW4KdW5kIGZsdWNodCB2b2VsbGlnIHVua29udHJvbGxpZXJ0LgpKZW5zOiBJaHIga29lbm50IGVpbmUgR3JhbmF0ZSBpbiBtZWluZW4gTXVuZCBzdGVja2VuIHVuZCBkZW4KQm9semVuIHppZWhlbjsgaWNoIHd1ZXJkZSBuaWNodCBlaW5lbiBNdWNrcyBmdWVobGVuLgpBdWYgZWluZW0gQXVnZSBzZWhlIGljaCBnYXJuaWNodHMgbWVociB1bmQgZGllIFdlbHQgaG9lcnQKc2ljaCB3aWUgZWluIGdyb3NzZXIgcmF1c2NoZW5kZXIgV2Fzc2VyZmFsbCBhbi4KCk1laW4gSGVtZCBpc3Qgdm9sbGVyIENoaWxpLCBkYXNzIG1pciB1bmJlbWVya3QgYXVzIGRlbSBNdW5kIGdldHJvcGZ0CmlzdCB1bmQgbWVpbmUgSG9zZSBpc3Qgdm9sbCBtaXQgbGF2YWFydGlnZW0gU2NoaXNzIHVuZCBwYXNzdCBkYW1pdApoZXJ2b3JyYWdlbmQgenUgbWVpbmVtIEhlbWQuCgpXZW5pZ3N0ZW5zIHdlcmRlbiBzaWUgYmVpIGRlciBBdXRvcHNpZSBzY2huZWxsIGVyZmFocmVuCndhcyBtaWNoIGdldG9ldGV0IGhhdC4KCkhhYmUgYmVzY2hsb3NzZW4sIGRhcyBBdG1lbiBlaW56dXN0ZWxsZW4sIGVzIGlzdCBlaW5mYWNoCnp1IHNjaG1lcnp2b2xsLgoKV2FzIHNvbGxgcywgaWNoIGJla29tbWUgZWgga2VpbmVuIFNhdWVyc3RvZmYgbWVoci4KV2VubiBpY2ggTHVmdCBicmF1Y2hlLCB3ZXJkZSBpY2ggc2llIGVpbmZhY2ggZHVyY2ggZGllc2VzCmdyb3NzZSBMb2NoIGluIG1laW5lbSBCYXVjaCBlaW5zYXVnZW4uCgoKCkNoaWxpIE5yLiA4OiBIZWxlbmFzIE1vdW50IFNhaW50IENoaWxpCgpSaWNodGVyIDE6IEVpbiBwZXJmZWt0ZXIgQXVza2xhbmc7IGVpbiBhdXNnZXdvZ2VuZXMgQ2hpbGksIHBpa2FudCB1bmQKRnVlciBqZWRlbiBnZWVpZ25ldC4gTmljaHQgenUgd3VjaHRpZywgYWJlciB3dWVyemlnIGdlbnVnCnVtIGF1ZiBzZWluZSBFeGlzdGVueiBoaW56dXdlaXNlbi4KUmljaHRlciAyOiBEaWVzZXIgbGV0enRlIEJld2VyYmVyIGlzdCBlaW4gZ3V0IGJhbGFuY2llcnRlcyBDaGlsaSwKd2VkZXIgenUgbWlsZCBub2NoIHp1IHNjaGFyZi4gQmVkYXVlcmxpY2ggbnVyLCBkYXNzIGRhcwptZWlzdGUgZGF2b24gdmVybG9yZW4gZ2luZywgYWxzIFJpY2h0ZXIgTnIuIDMKb2hubWFlY2h0aWcgdm9tIFN0dWhsIGZpZWwgdW5kIGRhYmVpIGRlbiBUb3BmIHVlYmVyIHNpY2gKYXVzbGVlcnRlLiBCaW4gbWlyIG5pY2h0IHNpY2hlciwgb2IgZXIgZHVyY2hrb21tdC4KQXJtZXIgS2VybDsgaWNoIGZyYWdlIG1pY2gsIHdpZSBlciBhdWYgZWluIHJpY2h0aWcKc2NoYXJmZXMgQ2hpbGkgcmVhZ2llcnQgaGFldHRlLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnBpbW1lbCAoTm9tbWUsICA4LiBKdWwgMjAwMywgMTM6Mjk6NTQpOgpFaW4gTWFubiBnZWh0IHp1bSBBcnp0IHVuZCBoYXQgc2Nod2VyZQpEZXByZXNzaW9uZW4sIGRhIHNlaW4gUGVuaXMgc28gbGFuZyBpc3QuIEhlcnIgRG9rdG9yLApoZWxmZW4gc2llIG1pciwgbWVpbiBQZW5pcyBtdXNzIGt1ZXJ6ZXIgd2VyZGVuISBFciBoYXQKbmljaHQgbWFsIG1laHIgaW4gZGVyIEhvc2UgUGxhdHouIDUwIGNtIHNpbmQgZWluZmFjaAp1bmVydHJhZWdsaWNoISBrbGFndCBkZXIgZ2Vicm9jaGVuZSBNYW5uLiBEYSwga2FubgppY2ggaWhuZW4gbGVpZGVyIG5pY2h0IGhlbGZlbi4gQWJlciBoaW50ZXIgZGVtIEhhdXMgaXN0CmVpbiBUZWljaCwgaW4gZGVtIGVpbmUgVW5rZSBzaXR6dC4gV2VubiBzaWUgZGllIFVua2UKZGF6dSBicmluZ2VuLCBORUlOIHp1IHNhZ2VuLCB3aXJkIGlociBQZW5pcyB1bSAxMApjbSBzY2hydW1wZmVuIS4gR2VzYWd0IC0gZ2V0YW4sIERlciBNYW5uIHNjaHJlaXRldApoaW50ZXIgZGFzIEhhdXMgdW5kIHJ1ZnQgaW4gZGVuIFRlaWNoIGhpbmVpbjogVW5rZSwKVW5rZSwgd2lsbHN0IGR1IG1pY2ggaGVpcmF0ZW4/IERhcmF1ZiBkaWUgVW5rZTogTmVpbiEKVW5kIHdpcmtsaWNoLCBkZXIgUGVuaXMgaGF0IG51ciBtZWhyIDQwIGNtLiBBbQpuYWVjaHN0ZW4gVGFnIHNjaHJlaXRldCBkZXIgTWFubiB3aWVkZXIgenVtIFRlaWNoOgpVbmtlLCBVbmtlLCB3aWxsc3QgZHUgbWljaCBoZWlyYXRlbj8gRGFyYXVmIGRpZQpVbmtlOiBOZWluISBXYXUsIGRlciBQZW5pcyBpc3QgbnVyIG1laHIgMzAgY20gbGFuZy4KRGEgZGVua3Qgc2ljaCBkZXIgTWFubiBhbSBkYXJhdWZmb2xnZW5kZW4gVGFnOiAyMApjbSB3YWVyZW4gaWRlYWwsIGljaCBnZWhlIG5vY2htYWwgenVtIFRlaWNoISBHZXNhZ3QsCmdldGFuLiBFciBzY2hyZWl0ZXQgenVtIFRlaWNoIHVuZCBpbiBkZXIgSG9mZm51bmcsIGRlcgpQZW5pcyB3dWVyZGUgbnVuIHZvbiAzMCBjbSBhdWYgMjAgY20gc2NocnVtcGZlbi4KRGEgcnVmdCBlcjogVW5rZSwgVW5rZSB3aWxsc3QgZHUgbWljaCBoZWlyYXRlbj8gRGEKdG9lbnQgZXMgZW5lcmdpc2NoIGF1cyBkZW0gVGVpY2g6IE5FSU4sIE5FSU4gdW5kCm5vY2htYWxzIE5FSU4hCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHBpbW1lbCAoTm9ubmUsICA4LiBKdWwgMjAwMywgMTQ6MDA6MjMpOgp+IyEgcm49Tm9tbWUgcnQ9MTA1NzY2Mzc5NCByZz13aXR6ZQp+IyEgdGlkPTEwNTc2NjM3OTQKV2llc28gcG9zdGVzdCBEdSBuaWNodCB1bnRlciBEZWluZW0gZWlnZW5lbiBOYW1lbiwgRGVlcGJsdWU/IFVuZCBuaW1tc3QgYXVjaApub2NoIGVpbmVuLCBkZXIgbWVpbmVtIHNvIGFlaG5saWNoIGlzdD8KCk5vbm5lLCB3dW5kZXJ0IHNpY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2h3YW5nZXJlIGltIEJ1cyAoRGVlcGJsdWUsICA4LiBKdWwgMjAwMywgMjA6NTM6MzcpOgpFaW5lIERhbWUsIGRpZSB1bmdlZmFlaHIgaW0gYWNodGVuIE1vbmF0IHNjaHdhbmdlciB3YXIsIGJldHJhdCBlaW5lbiBCdXMgCnVuZCBiZW1lcmt0ZSBlaW5lbiBNYW5uIGlociBnZWdlbnVlYmVyLCBkZXIgc2llIGFubGFlY2hlbHRlLiBTaWUgc3VjaHRlIApzaWNoIHNvZm9ydCBlaW5lbiBhbmRlcmVuIFBsYXR6LiBKZXR6dCBncmluc3RlIGRlciBNYW5uLCB1bmQgc2llIAp3ZWNoc2VsdGUgZXJuZXV0IGRlbiBQbGF0ei4gCgpEZXIgTWFubiB3dXJkZSBub2NoIG1laHIgZXJoZWl0ZXJ0LiBOYWNoIGlocmVuIHZpZXJ0ZW4gUGxhdHp3ZWNoc2VsIApicmFjaCBkZXIgTWFubiBpbiBzY2hhbGxlbmRlcyBHZWxhZWNodGVyIGF1cywgc2llIGJlc2Nod2VydGUgc2ljaCBiZWltIApGYWhyZXIsdW5kIGFuIGRlciBuYWVjaHN0ZW4gU3RhdGlvbiB3dXJkZSBkZXIgTWFubiB2ZXJoYWZ0ZXQuIAoKRGVyIEZhbGwga2FtIHZvciBHZXJpY2h0LiBEZXIgUmljaHRlciBmcmFndGUgZGVuIE1hbm4sIHdhcyBlciB6dSBzZWkgbmVyIApWZXJ0ZWlkaWd1bmcgenUgc2FnZW4gaGFldHRlLiBEZXIgTWFubiBhbnR3b3J0ZXRlOiAiRXMgd2FyIHNvLCBFdWVyIApFaHJlbjogCgpBbHMgZGllIERhbWUgZGVuIEJ1cyBiZXRyYXQga29ubnRlIG1hbiBpaHJlbiBadXN0YW5kIG5pY2h0IHVlYmVyc2VoZW4uIApTaWUgc2FzcyB1bnRlciBlaW5lciBXZXJidW5nLCBkaWUgaGllc3MgIkRpZSBEb3VibGUgTWludCBad2lsbGluZ2UgCmtvbW1lbiIgdW5kIGljaCBncmluc3RlLiAKCkRhbm4gc2V0enRlIHNpZSBzaWNoIHVudGVyIGVpbmUgV2VyYnVuZywgZGllIHNhZ3RlICJTbG9nYW4/cyAKRWlucmVpYmVzYWxiZSB3aXJkIGRpZSBTY2h3ZWxsdW5nIGxpbmRlcm4iIHVuZCBpY2ggbXVzc3RlIGxhY2hlbi4gRGFubiAKc2V0enRlIHNpZSBzaWNoIHVudGVyIGVpbiBTY2hpbGQsIGRhcyBzYWd0ZTogIldpbGxpYW0ncyBncm9zc2VyIFN0YWIgCnZlcm1vY2h0ZSBkaWVzZW4gVHJpY2siIHVuZCBpY2ggaGF0dGUgbWljaCBrYXVtIG5vY2ggdW50ZXIgS29udHJvbGxlLiAKCkFCRVIsIEV1ZXIgRWhyZW4gYWxzIHNpZSBzaWNoIGRhcyB2aWVydGUgbWFsIHVtc2V0enRlIHVuZCB1bnRlciBkZXIgCldlcmJ1bmcgc2FzczoiR29vZHllYXIgR3VtbWkgaGFldHRlIGRpZXNlbiBVbmZhbGwgdmVyaGluZGVydCIgd2FyIGVzIG1pdCAKZGVyIEJlaGVycnNjaHVuZyBhdXMhIAoKRGFzIFZlcmZhaHJlbiB3dXJkZSBlaW5nZXN0ZWxsdCEgCihhdXMgZC50LmouKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lsbCBhdWNoIG1hbCAuLi4gKENhdHdlYXpsZSwgIDkuIEp1bCAyMDAzLCAxNToxMzozMSk6CkVpbiBSb2NrZXIgaXN0IHZvciAxMCBKYWhyZW4gYXVmIGVpbmVyIGVpbnNhbWVuIEluc2VsIGdlc3RyYW5kZXQuIEVpbmVzCnNjaG9lbmVuIFRhZ2VzIHN0ZWh0IGVyIGFtIFN0cmFuZCB1bmQgc2NoYXV0IGF1ZnMgTWVlci4gQXVmIGVpbm1hbCBzaWVodCBlciwKd2llIGV0d2FzIGF1ZiBkaWUgSW5zZWwgenVzY2h3aW1tdC4gRXIgZGVua3Qgc2ljaCwgZWluIEJvb3Qga2FubiBlcyBuaWNodApzZWluLCB6dSBrbGVpbi4gQWxzbyB3YXJ0ZXQgZXIgd2VpdGVyLiBEYXMgT2JqZWt0IGtvbW10IG5hZWhlci4gRGVyIFJvY2tlcgpkZW5rdCBlaW5lIEx1ZnRtYXRyYXR6ZSBrYW5uIGVzIG5pY2h0IHNlaW4sIHp1IGtsZWluLiBFciB3YXJ0ZXQgd2VpdGVyLgpJcmdlbmR3YW5uIGtvbW10IGVpbmUgd3VuZGVyc2Nob2VuZSBUYXVjaGVyaW4gYXVzIGRlbSBXYXNzZXIgZ2VzdGllZ2VuLiBEZXIKTmVvcHJlbmFuenVnIHNjaG1pZWd0IHNpY2ggZW5nIGFuIGlocmUgdHJhdW1oYWZ0ZSBGaWd1ci4gRGVyIFJvY2tlciBpc3QKYWJzb2x1dCBiYWZmLiBEYSBmcmFndCBpaG4gZGllIFRhdWNoZXJpbjogIldhbm4gaGFzdCBkdSB6dWxldHp0IGVpbmUgWmlnYXJldHRlCmdlcmF1Y2h0PyIgRGVyIFJvY2tlcjogIlZvciAxMCBKYWhyZW4sIGJldm9yIGljaCBoaWVyIGdlc3RyYW5kZXQgYmluLiIgRGllClRhdWNoZXJpbiBtYWNodCBhbiBpaHJlbSBUYXVjaGVyYW56dWcgZWluZSBUYXNjaGUgYXVmIHVuZCBob2x0IGVpbmUgWmlnYXJldHRlCmhlcmF1cywgZ2lidCBzaWUgZGVtIFJvY2tlci4gRGllc2VyIHp1ZW5kZXQgc2llIGFuLCBuaW1tdCBlaW5lbiB0aWVmZW4gWnVnIHVuZApzYWd0OiIgQWFhaGgsIHR1dCBkYXMgZ3V0LiIgRGllIFRhdWNoZXJpbiBmcmFndCBpaG46ICJXYW5uIGhhc3QgZHUgenVsZXR6dAplaW5lbiBTY2hsdWNrIEFsa29ob2wgZ2V0cnVua2VuPyIgRGVyIFJvY2tlcjogIlZvciAxMCBKYWhyZW4sIGJldm9yIGljaCBoaWVyCmdlc3RyYW5kZXQgYmluLiIgRGllIFRhdWNoZXJpbiBncmVpZnQgenUgZWluZXIgYW5kZXJlbiBUYXNjaGUgYW4gaWhyZW0KVGF1Y2hlcmFuenVnLCBob2x0IGVpbmVuIEZsYWNobWFubiBoZXJhdXMgdW5kIGdpYnQgaWhuIGRlbSBSb2NrZXIuIERpZXNlcgpuaW1tdCBlaW5lbiBrcmFlZnRpZ2VuIFNjaGx1Y2sgdW5kIG1laW50OiAiQWFhaGgsIHR1dCBkYXMgZ3V0LiIgRGllIFRhdWNoZXJpbgptYWNodCBkZW4gUmVpc3ZlcnNjaGx1c3Mgdm9uIGlocmVtIE5lb3ByZW5hbnp1ZyBhdWYgdW5kIHp3ZWkgcmllc2lnZSBmZXN0ZQp3b2hsZ2Vmb3JtdGUgQnJ1ZXN0ZSBzcHJpbmdlbiBoZXJhdXMuIERpZSBUYXVjaGVyaW4gZnJhZ3Q6ICJXYW5uIGhhc3QgZHUgZGFzCmxldHp0ZSBtYWwgc28gcmljaHRpZyBkZWluZW4gU3Bhc3MgZ2VoYWJ0PyIgRGVyIFJvY2tlcjogIkFjaCBrb21tLCBzYWcgYmxvc3MKZHUgaGFzdCBhdWNoIGVpbiBNb3RvcnJhZCBkYWJlaS4iCgpZVEMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaWxsIGF1Y2ggbWFsIC4uLiAoTWFuZHJhZ29uLCAgOS4gSnVsIDIwMDMsIDE1OjI2OjU1KToKfiMhIHJuPUNhdHdlYXpsZSBydD0xMDU3NzU2NDExIHJnPXdpdHplCn4jISB0aWQ9MTA1Nzc1NjQxMQoKRGVuIGdpYnRzIGF1Y2ggbWl0IG5lbSBNdWRkZXIgdW5kIG5lbSBJbnRlcm5ldGFuc2NobHVzcyAuLi4KCk1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGJ1bGxlbndpdHogKEtlbGx5YnVuZHksICA5LiBKdWwgMjAwMywgMTg6MzI6NTIpOgp+IyEgcm49QW1hem9yYSBydD0xMDU2NTU3NzU2IHJnPXdpdHplCn4jISB0aWQ9MTA1NjU1Nzc1NgpHZW5hdSBzbyB2aWVsLCBuYWVtbGljaCA5NSBFdXJvLCBoYWIgaWNoIGdlbGF0enQsIGFscyBpY2ggd2FlaHJlbmQgZWluZXMKRGlzcHV0ZXMgenUgZWluZXIgUG9saXRlc3NlIG1laW50ZSwgZGFzcyBpY2ggbWljaCBub3JtYWxlcndlaXNlIG5pY2h0IG1pdApGcmF1ZW4gdW50ZXJoYWx0ZSwgZGllIGlociBHZWxkIGF1ZiBkZXIgU3RyYXNzZSB2ZXJkaWVuZW4uIERhcyBHZXNpY2h0IHdhcnMKbWlyIGF1Y2ggd2VydCA6KQoKRHVtcGZpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcGF0eiA6KSAoTW9yZ290aCwgMTAuIEp1bCAyMDAzLCAyMDo1MzoxNik6CkVpbiBNb3RvcnJhZGZhaHJlciBzYXVzdCBtaXQgMTYwIGttL2ggdWViZXIgZWluZSBMYW5kc3RyYXNzZS4gUGxvZXR6bGljaCAtIG9oClNjaHJlY2shIC0gYmVmaW5kZXQgZXIgc2ljaCBOYXNlIGFuIFNjaG5hYmVsIG1pdCBlaW5lbSBrbGVpbmVuIFNwYXR6LiBEZXIKTW90b3JyYWRmYWhyZXIgdHV0IGFsbGVzLCB1bSBkZW0gU3BhdHogYXVzenV3ZWljaGVuIHVuZCBzbyBkaWUgS29sbGlzaW9uIHp1CnZlcm1laWRlbi4gQWJlciBkYSBpc3QgbmljaHRzIG1laHIgenUgbWFjaGVuLiBEZXIgU3BhdHoga25hbGx0IGJhZXVjaGxpbmdzIHZvcgpkYXMgSGVsbXZpc2llciB1bmQgZGVyIE1vdG9ycmFkZmFocmVyIHNpZWh0IGhpbGZsb3MgbWl0IGFuLCB3aWUgZGVyIFNwYXR6CmhpbnRlciBpaG0gYmV3dXNzdGxvcyB6dSBCb2RlbiB0cnVkZWx0IHVuZCBtaXQgYXVzZ2VicmVpdGV0ZW4gRmx1ZWdlbG4gbGllZ2VuCmJsZWlidC4gVm9uIHNjaGxlY2h0ZW0gR2V3aXNzZW4gZ2VwbGFndCBoYWVsdCBlciBhbiwgaGVidCBkZW4gYmV3dXNzdGxvc2VuClNwYXR6IGF1ZiB1bmQgbmltbXQgaWhuIG1pdCBuYWNoIEhhdXNlLiBEb3J0IGFuZ2Vrb21tZW4gc3VjaHQgZXIgaW0gS2VsbGVyIGRlbgphbHRlbiBWb2dlbGthZWZpZywgcG9sc3RlcnQgaWhuIGxpZWJldm9sbCBtaXQgZWluZW0gSGFuZHR1Y2ggYXVzLCBsZWd0IGRlbgpTcGF0eiBoaW5laW4gdW5kIHN0ZWxsdCBpaG0gbm9jaCBlaW4gU2NoYWVsY2hlbiBXYXNzZXIgdW5kIGVpbiBTdHVlY2sgQnJvdCBpbgpkZW4gS2FlZmlnLiBBbSBuYWVjaHN0ZW4gTW9yZ2VuIHdhY2h0IGRlciBrbGVpbmUgU3BhdHogYXVmLCBzaWVodCBkaWUKR2l0dGVyc3RhZWJlLCBkYXMgV2Fzc2VyIHVuZCBkYXMgQnJvdC4gRW50c2V0enQgc2NobGFlZ3QgZXIgZGllIEZsdWVnZWwgdWViZXIKZGVtIEtvcGYgenVzYW1tZW46ICJPaCBzY2hlaXNzZSEgSWNoIGhhYiBkZW4gTW90b3JyYWRmYWhyZXIgdW1nZWJyYWNodCEiCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2lsbGVyLUJyb2V0Y2hlbiBkZXMgdmVyc3VjaHRlbiBNb3JkZXMgYmV6aWNodGlndCEgKE1vcmdvdGgsIDEwLiBKdWwgMjAwMywgMjA6NTY6NDQpOgoKTGluZGEgQnVybmV0dCwgMjNKIGF1cyBTYW4gRGllZ28sIEthbGlmb3JuaWVuIGJlc3VjaHRlIGlocmUgU2Nod2llZ2VyZWx0ZXJuCnVuZCB3YWVocmVuZCBkaWVzZSBpbiBlaW5lbSBuYWhlZ2VsZWdlbmVuIFN1cGVybWFya3Qgbm9jaCBlaW4gcGFhcgpLbGVpbmlna2VpdGVuIGJlc29yZ3Rlbiwgd2FydGV0ZSBMaW5kYSBpbSBBdXRvLiBQYXNzYW50ZW4gc2FoZW4gTGluZGEgaW4gaWhyZW0KQXV0byBiZWkgZ2VzY2hsb3NzZW5lbiBGZW5zdGVybiBzaXR6ZW4sIGRpZSBBdWdlbiAgZXNjaGxvc3NlbiB1bmQgZGllIEhhZW5kZQpoaW50ZXIgaWhyZW0gS29wZiB2ZXJzY2hyYWVua3QuIEVpbmVtIEt1bmRlbiBkZXMgU3VwZXJtYXJrdGVzLCBkZXIgc2llIGVpbmUKWmVpdCBsYW5nICBiZW9iYWNodGV0ZSwga2FtIGRhcyAga29taXNjaCB2b3IgdW5kIGVyIGdpbmcgaGludWViZXIgenUgaWhyZW0KQXV0by4gRXIgYmVtZXJrdGUsIGRhc3MgTGluZGFzIEF1Z2VuIGluIGRlciBad2lzY2hlbnplaXQgd2llZGVyIGdlb2VmZm5ldAp3YXJlbiwgdW5kIHNpZSBzZWhyIHNlbHRzYW0gYXVzc2FoLiBFciBmcmFndGUgc2llLCBvYiBhbGxlcyBpbiBPcmRudW5nIHNlaSB1bmQKc2llIGFudHdvcnRldGUsIGRhc3Mgc2llIGluIGRlbiBIaW50ZXJrb3BmIGdlc2Nob3NzZW4gd3VyZGUgdW5kIG51biBzZWl0IHVlYmVyCmVpbmVyIFN0dW5kZSBpaHIgR2VoaXJuIGZlc3RoYWx0ZSB1bmQgInJlaW5kcnVlY2tlIi4gRGVyIE1hbm4gcmllZiBzb2ZvcnQgZGVuClJldHR1bmdzZGllbnN0LiBEaWUgU2FuaXRhZXRlciBtdXNzdGVuIGRhcyBBdXRvIGF1ZmJyZWNoZW4sIGRhIGRpZSBUdWVyZW4gdm9uCmlubmVuIHZlcnNjaGxvc3NlbiB3YXJlbiB1bmQgTGluZGEgc2ljaCB3ZWlnZXJ0ZSwgZGllIEhhZW5kZSB2b20gS29wZiB6dQpuZWhtZW4uIE5hY2hkZW0gZGllIFNhbml0YWV0ZXIgZW5kbGljaCB6dSBMaW5kYSB2b3JkcmluZ2VuIGtvbm50ZW4sIGZhbmRlbiBzaWUKYW4gaWhyZW0gSGludGVya29wZiBlaW5lbiB6dXNhbW1lbmdlcHJlc3N0ZW4gS2x1bXBlbiBCcm90IHZvci4gRWluIEJlaGFlbHRlcgptaXQgUGlsbHNidXJ5LUJyb2V0Y2hlbiB6dW0gQXVmYmFja2VuIHdhciBpbiBkZXIgSGl0emUgZXhwbG9kaWVydCwgZWluCkdlcmFldXNjaCB3aWUgZWluZW4gU2NodXNzIHZlcnVyc2FjaGVuZCB1bmQgZGVyIFRlaWdrbHVtcGVuIGZsb2cgZ2VnZW4gTGluZGFzCkhpbnRlcmtvcGYuIEFscyBzaWUgZGFuYWNoIHRhc3RldGUsIGRhY2h0ZSBzaWUsIGVzIHNlaSBpaHIgR2VoaXJuLCB3ZWxjaGVzCmR1cmNoIGRhcyB2ZXJtZWludGxpY2hlIExvY2ggaW0gS29wZiBudW4gaGVyYXVzaGluZy4gU2llIGZpZWwgaW4gT2hubWFjaHQsCmVyaG9sdGUgc2ljaCBkYXZvbiBhYmVyIHNjaG5lbGwgd2llZGVyIHVuZCB2ZXJzdWNodGUgbnVuIHVlYmVyIGVpbmUgU3R1bmRlCmxhbmcgaWhyICJIaXJuIiBmZXN0enVoYWx0ZW4gYmlzIEhpbGZlIGthbS4KCkxpbmRhIGlzdCB1ZWJyaWdlbnMgYmxvbmQhCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3V0YmFjayAoTW9yZ290aCwgMTMuIEp1bCAyMDAzLCAxMDo1MTo1NSk6CkVpbiBSZXBvcnRlciB3aWxsIGVpbmUgU3RvcnkgdWViZXIgbWVuc2NobGljaGUgU2NoaWNrc2FsZSBzY2hyZWliZW4uIApFciBiZWdpYnQgc2ljaCBuYWNoIEF1c3RyYWxpZW4gaW5zIGhpbnRlcnN0ZSBPdXRiYWNrIGluIGRpZSBsZXR6dGVuCm1lbnNjaGxpY2hlbiBSZXNlcnZhdGUgaW4gd2lsZGVyIE5hdHVyIHVuZCBiZWZyYWd0IGVpbmVuIGRvcnQgYW5zYWVzc2lnZW4KRmFybWVyOiAKIldhcyB3YXIgaWhyIHNjaG9lbnN0ZXMgRXJsZWJuaXM/IiAKIk51biwgZGFzIHdhciBhbHMgc2ljaCBkYXMgU2NoYWYgZWluZXMgTmFjaGJhcm4gdmVybGF1ZmVuIGhhdHRlLiBXaXIgYmlsZGV0ZW4KZWluZW4gU3VjaHRydXBwIHVuZCBmYW5kZW4gZXMuIERhbm4gaGFiZW4gd2lyIGVzIGFsbGUgZ2V2b2VnZWx0LiIKRGVyIFJlcG9ydGVyIHNjaGF1dCBldHdhcyBpbmRpZ25pZXJ0IHVuZCBkZW5rdCBzaWNoIDogRGFzIGthbm4gaWNoIG5pY2h0CmRydWNrZW4uIApBbHNvIGZyYWd0IGVyIG5vY2ggbWFsOiAiVW5kIHdhcyB3YXIgZGFubiBpaHIgendlaXRzY2hvZW5zdGVzIEVybGVibmlzIGhpZXIKZHJhdXNzZW4/IgoiRGFzIHdhciwgYWxzIHNpY2ggZGllIGh1ZWJzY2hlIFRvY2h0ZXIgZWluZXMgYW5kZXJlbiBOYWNoYmFybiB2ZXJsYXVmZW4KaGF0dGUuIApXaXIgYmlsZGV0ZW4gZWluZW4gU3VjaHRydXBwIHVuZCBmYW5kZW4gc2llIHNjaGxpZXNzbGljaC4gRGFubiBoYWJlbiB3aXIgYWxsZQpzaWUgZ2V2b2VnZWx0LiIKU28ga29tbWVuIHdpciBuaWNodCB3ZWl0ZXIgZGVua3Qgc2ljaCBkZXIgUmVwb3J0ZXIgdW5kIGZyYWd0IGFsc286IAoiVW5kIHdhcyB3YXIgZGFubiBpaHIgc2NobGltbXN0ZXMgRXJsZWJuaXMgaGllciBkcmF1c3Nlbj8iIApBbnR3b3J0ZXQgZGVyIEZhcm1lcjogIkRhcyB3YXIsIGFscyBpY2ggbWljaCB2ZXJsYXVmZW4gaGF0dGUuLi4iIAoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaGFjaHRlbCAoTW9yZ290aCwgMTMuIEp1bCAyMDAzLCAxMjo1MzoxNSk6CkFuZmFuZyBkZXIgRWhlIGRlcG9uaWVydGUgZGllIEZyYXUgdW50ZXIgaWhyZW0gQmV0dCBlaW5lIFNjaGFjaHRlbCB1bmQgbWVpbnRlCnp1IGlocmVtIE1hbm46ICJEdSBtdXNzdCBtaXIgdmVyc3ByZWNoZW4sIGRhc3MgZHUgbmllIGluIGRpZXNlIFNjaGFjaHRlbApzY2hhdXN0Ii4gQWxsIGRpZSBKYWhyZSBoaWVsdCBzaWNoIGRlciBNYW5uIGFuIHNlaW4gVmVyc3ByZWNoZW4uIE5hY2ggNDAKSmFocmVuIEVoZSBoaWVsdCBlciBlcyBuaWNodCBsYW5nZXIgYXVzIHVuZCBvZWZmbmV0ZSBkaWUgU2NoYWNodGVsLiBEYXJpbgpiZWZhbmRlbiBzaWNoIDMgbGVlcmUgRmxhc2NoZW4gQmllciB1bmQgMTIuMDM1LC0tIEV1cm8gaW4gTXVlbnplbiB1bmQga2xlaW5lbgpTY2hlaW5lbi4gVm9sbGVyIFZlcnd1bmRlcnVuZyBsZWd0ZSBlciBkaWUgU2NoYWNodGVsIHdpZWRlciB1bnRlcnMgQmV0dC4gQW0KQWJlbmQgaW4gZWluZW0gdm9ybmVobWVuIFJlc3RhdXJhbnQgYmVpIEtlcnplbnNjaGVpbiB1bmQgcm9tYW50aXNjaGVyIFN0aW1tdW5nCmJyYWNoIGVyIHNlaW4gU2Nod2VpZ2VuIHVuZCBmcmFndGUgc2VpbmUgRnJhdTogIjQwIEphaHJlIGhhYmUgaWNoIG1laW4KVmVyc3ByZWNoZW4gZ2VoYWx0ZW4uIEFiZXIgaGV1dGUgaGFiZSBpY2ggZGllIFNjaGFjaHRlbCB1bnRlciBkZW0gQmV0dApnZW9lZmZuZXQgdW5kIG5hY2hnZXNlaGVuLiBCaXR0ZSBlcmtsYWVyZSBtaXIgZGVuIEluaGFsdCIuIFNpZSBhbnR3b3J0ZXRlOgoiSmVkZXMgTWFsIHdlbm4gaWNoIGRpY2ggYmV0cm9nZW4gaGFiZSwgaGFiZSBpY2ggZGFuYWNoIGVpbmUgRmxhc2NoZSBCaWVyCmdldHJ1bmtlbiB1bmQgZGllIGxlZXJlIEZsYXNjaGUgaW4gZGllIFNjaGFjaHRlbCBnZWxlZ3QuIiBEZXIgTWFubiBzY2h3aWVnCmVyc3RhdW50IHVuZCBkYWNodGUgYmVpIHNpY2g6ICJJbiBhbGwgZGVuIEphaHJlbiB3YXIgaWNoIHNlaHIgb2Z0IHVudGVyd2VncwphdWYgRGllbnN0cmVpc2VuLCBkYSBzaW5kIGRpZSAzeCB3aXJrbGljaCBuaWNodCBzbyBzY2hsaW1tIHVuZCBpY2ggZ2xhdWJlLCBpY2gKa2FubiBpaHIgZGFzIHZlcnplaWhlbi4iIEV0d2FzIHNwYWV0ZXIgYWxsZXJkaW5ncyBmaWVsIGlobSBub2NoIGRlciBvbWlub2VzZQpHZWxkYmV0cmFnIGVpbiB1bmQgZXIgbWVpbnRlIHp1IHNlaW5lciBGcmF1OiAiV2FzIGlzdCBlaWdlbnRsaWNoIG1pdCBkZW0gR2VsZAppbiBkZXIgU2NoYWNodGVsPyIKICJOYSBqYSwgamVkZXMgTWFsLCB3ZW5uIGRpZSBTY2hhY2h0ZWwgdm9sbCB3YXIsIGhhYmUgaWNoIGRpZSBQZmFuZGZsYXNjaGVuCnp1cnVlY2tnZWJyYWNodCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNaW5kZXJoZWl0ZW53aXR6IChBbmF0b2wsIDE0LiBKdWwgMjAwMywgMTE6Mzc6NDEpOgoKRGllcyBpc3QgZWluIHNvZ2VuYW5udGVyIEp1ZGVud2l0ei4gUG9saXRpc2NoIEVtcGZpbmRzYW1lIG1vZWdlbiBiaXR0ZQpKRVRaVCBhdWZob2VyZW4sIGRpZXNlbiBBcnRpa2VsIHp1IGxlc2VuLi4uIDopCgoKCgoiTWVpbiBTb2huIGhhdCBzaWNoIHRhdWZlbiBsYXNzZW4hIgoiVW5kIGRhcyBoYXN0IER1IHp1Z2VsYXNzZW4/IgoiSWNoIGhhYmUgbWljaCBzb2ZvcnQgYmVpIEdvdHQgYmVzY2h3ZXJ0LiIKIlVuZD8gV2FzIGhhdCBHb3R0IGdlc2FndD8iCiJFciBzYWd0ZSwgZGFzc2VsYmUgc2VpIGlobSBtaXQgc2VpbmVtIFNvaG4gYXVjaCBwYXNzaWVydC4gCkljaCBzb2xsIGVzIGdlbmF1c28gbWFjaGVuIHdpZSBlci4uLiIKIlVuZCB3YXMgaGF0IGVyIGdlbWFjaHQ/IgoiRWluIG5ldWVzIFRlc3RhbWVudC4iCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vY2ggZWluIE1pbmRlcmhlaXRlbndpdHogZGVyIHNlbGJlbiBTcGFydGUuLi4gKEFuYXRvbCwgMTQuIEp1bCAyMDAzLCAxMTo0NjozMyk6Cn4jISBybj1BbmF0b2wgcnQ9MTA1ODE3NTQ2MSByZz13aXR6ZQp+IyEgdGlkPTEwNTgxNzU0NjEKCgpFaW4gUmFiYmkgdW5kIGVpbiBQcmllc3RlciBzaW5kIGluIGVpbmUgdGhlb2xvZ2lzY2hlIERpc2t1c3Npb24gdmVydGllZnQuCgoiU2VsYnN0dmVyc3RhZW5kbGljaCBpc3QgR2VzY2hsZWNodHN2ZXJrZWhyIEFyYmVpdCB1bmQga2VpbiBWZXJnbnVlZ2VuLiIsCnNhZ3QgZGVyIFByaWVzdGVyLiBFcyBpc3QgR290dGVzIFdlcmssIGluIEVyZnVlbGx1bmcgc2VpbmVyIEdlc2V0emUuIgoKIk5laW4sIG5laW4iLCBzYWd0IGRlciBSYWJiaSwgImVzIGlzdCBlaW4gVmVyZ251ZWdlbi4gV2VubiBlcyBuaWNodApzbyB3YWVyZSwgZGFubiB3dWVyZGUgZGllIE1lbnNjaGhlaXQgYXVzc3RlcmJlbi4iCgpTaWUga29lbm5lbiBzaWNoIG5pY2h0IGVpbmlnZW4gdW5kIGJlc2NobGllc3NlbiwgaWhyZSBWb3JnZXNldHp0ZW4gdW0KUmF0IHp1IGJpdHRlbi4gRWluZSBXb2NoZSBzcGFldGVyIHRyZWZmZW4gc2llIHNpY2ggZXJuZXV0LgoKIkVzIGlzdCBnYW56IGtsYXIiLCBiZWhhdXB0ZXQgZGVyIFByaWVzdGVyLiAiSWNoIGhhYmUgZGVuIEJpc2Nob2YgdW5kIGRlbgpLYXJkaW5hbCBiZWZyYWd0LCB1bmQgYmVpZGUgc2luZCBzaWNoIGRhcnVlYmVyIGVpbmlnLCBkYXNzIGVzIEFyYmVpdCBpc3QhIgoKIk5laW4hIiwgc2FndCBkZXIgUmFiYmkuICJEZXIgT2JlcnJhYmJpbmVyIHN0aW1tdCBtaXIgenUuIEVzIGJlc3RlaHQga2Vpbgpad2VpZmVsLCB3ZW5uIGVzIEFyYmVpdCB3YWVyZSwgZGFubiB3dWVyZGVuIHdpciBlcyB1bnNlcmVuIEFuZ2VzdGVsbHRlbgp1ZWJlcmxhc3NlbiEiCgoKCgooRGllIEdlc2FtdHphaGwga2F0aG9saXNjaGVyIFByaWVzdGVyIGluIERldXRzY2hsYW5kIG5pbW10IGFiLCBvZGVyPyA7KSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWluZGVyaGVpdGVud2l0eiAoQ2FkcmFjaCwgMTQuIEp1bCAyMDAzLCAxNjo1NzoxNyk6Cn4jISBybj1BbmF0b2wgcnQ9MTA1ODE3NTQ2MSByZz13aXR6ZQp+IyEgdGlkPTEwNTgxNzU0NjEKU3RhbW10IGF1cyBuZW0gYWx0ZW4gVGF0b3J0IGRlciBXaXR6IC0genVtaW5kZXN0IHd1cmRlIGVyIGRvcnQgdmVyYnJlaXRldC4KRXJ6YWVobHQgd3VyZGUgZXIgZG9ydCB1ZWJyaWdlbmRzIHZvbiBlaW5lbSBKdWRlbiA6bykKCkNhZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU2NoYWNodGVsIChIaWdodCwgMTUuIEp1bCAyMDAzLCAwMDoxMTo0OCk6Cn4jISBybj1IaWdodCBydD0xMDU4MjE5OTA5IHJnPXdpdHplCn4jISB0aWQ9MTA1ODA5MzU5NQp3ZWlsIE0qIHNpY2ggbmV0IHNlbGJlciB0cmF1dCBtYWNoIGljaHMgaGFsdCAsbykKCkRpZSBTY2hhY2h0ZWwhCgpBbmZhbmcgZGVyIEVoZSBkZXBvbmllcnRlIGRpZSBGcmF1IHVudGVyIGlocmVtIEJldHQgZWluZQpTY2hhY2h0ZWwgdW5kIG1laW50ZSB6dSBpaHJlbSBNYW5uOiAiRHUgbXVzc3QgbWlyIHZlcnNwcmVjaGVuLApkYXNzIGR1IG5pZSBpbiBkaWVzZSBTY2hhY2h0ZWwgc2NoYXVzdCIuIEFsbCBkaWUgSmFocmUgaGllbHQKc2ljaCBkZXIgTWFubiBhbiBzZWluIFZlcnNwcmVjaGVuLiBOYWNoIDQwIEphaHJlbiBFaGUgaGllbHQgZXIKZXMgbmljaHQgbGFuZ2VyIGF1cyB1bmQgb2VmZm5ldGUgZGllIFNjaGFjaHRlbC4KRGFyaW4gYmVmYW5kZW4gc2ljaCAzIGxlZXJlIEZsYXNjaGVuIEJpZXIgdW5kIDEyLjAzNSwtLSBFdXJvCmluIE11ZW56ZW4gdW5kIGtsZWluZW4gU2NoZWluZW4uIFZvbGxlciBWZXJ3dW5kZXJ1bmcgbGVndGUgZXIKZGllIFNjaGFjaHRlbCB3aWVkZXIgdW50ZXJzIEJldHQuCkFtIEFiZW5kIGluIGVpbmVtIHZvcm5laG1lbiBSZXN0YXVyYW50IGJlaSBLZXJ6ZW5zY2hlaW4gdW5kCnJvbWFudGlzY2hlciBTdGltbXVuZyBicmFjaCBlciBzZWluIFNjaHdlaWdlbiB1bmQgZnJhZ3RlIHNlaW5lCkZyYXU6ICI0MCBKYWhyZSBoYWJlIGljaCBtZWluIFZlcnNwcmVjaGVuIGdlaGFsdGVuLiBBYmVyIGhldXRlCmhhYmUgaWNoIGRpZSBTY2hhY2h0ZWwgdW50ZXIgZGVtIEJldHQgZ2VvZWZmbmV0IHVuZCBuYWNoZ2VzZWhlbi4KQml0dGUgZXJrbGFlcmUgbWlyIGRlbiBJbmhhbHQiLgoKU2llIGFudHdvcnRldGU6ICJKZWRlcyBNYWwgd2VubiBpY2ggZGljaCBiZXRyb2dlbiBoYWJlLCBoYWJlCmljaCBkYW5hY2ggZWluZSBGbGFzY2hlIEJpZXIgZ2V0cnVua2VuIHVuZCBkaWUgbGVlcmUgRmxhc2NoZQppbiBkaWUgU2NoYWNodGVsIGdlbGVndC4iCgpEZXIgTWFubiBzY2h3aWVnIGVyc3RhdW50IHVuZCBkYWNodGUgYmVpIHNpY2g6ICJJbiBhbGwgZGVuCkphaHJlbiB3YXIgaWNoIHNlaHIgb2Z0IHVudGVyd2VncyBhdWYgRGllbnN0cmVpc2VuLCBkYSBzaW5kCmRpZSAzeCB3aXJrbGljaCBuaWNodCBzbyBzY2hsaW1tIHVuZCBpY2ggZ2xhdWJlLCBpY2gga2FubiBpaHIKZGFzIHZlcnplaWhlbi4iCgpFdHdhcyBzcGFldGVyIGFsbGVyZGluZ3MgZmllbCBpaG0gbm9jaCBkZXIgb21pbm9lc2UgR2VsZGJldHJhZyAgICAgICAgICAgICAgICAKZWluIHVuZCBlciBtZWludGUgenUgc2VpbmVyIEZyYXU6CiJXYXMgaXN0IGVpZ2VudGxpY2ggbWl0IGRlbSBHZWxkIGluIGRlciBTY2hhY2h0ZWw/IgoKIk5hIGphLCBqZWRlcyBNYWwsIHdlbm4gZGllIFNjaGFjaHRlbCB2b2xsIHdhciwgaGFiZSBpY2ggZGllICAgICAgICAgICAgICAgICAgClBmYW5kZmxhc2NoZW4genVydWVja2dlYnJhY2h0ISIKCgpEYSBtaWNoIGRpZXNlciB3aXR6IG51biBzY2hvbiAyMDAwIG1hbCBlcnJlaWNodCBoYXQgd2lyZCBlcwp6ZWl0IG1hbCB3YXMgZGF6dSB6dSBzYWdlbjoKCkRpZXNlciBXaXR6IHNjaGVpbnQgZWluZXIgd2VpYmxpY2hlbiBGZWRlciBlbnRzcHJ1bmdlbiB6dSBzZWluLiAgICAgICAgICAgICAgIApEYXMgc2llaHQgbWFuIGFuIGRlciBlbnRoYWx0ZW5lbiBMb2dpawoKCjEuKSBEaWUgRnJhdSBoYWV0dGUgSWhyZW4gTWFubiBkaWUgbGV0enRlbiA0MCBKYWhyZSBqZWRlbgogICAgVGFnIDUsNSAoUGZhbmR3ZXJ0L0ZsYXNjaGUgMTUgY2VudCkgbWFsIGJldHJ1ZWdlbiBtdWVzc2VuIHVtCiAgICBhdWYgZGllc2UgU3VtbWUgenUga29tbWVuLgoKMi4pIFNpZSBoYWV0dGUgZGFubiBtaXQgaW5zZ2VzYW10IHVlYmVyIDgwLjAwMCBNYWVubmVybiBnZXNjaGxhZmVuLgoKMy4pIERlciBHZW51c3Mgdm9uIDUsNSBCaWVyIGFtIFRhZyAoTW8tU28pIGhhZXR0ZW4gZGllc2UgRnJhdSAoc28KICAgIHNjaG9lbiBTaWUgYXVjaCBzZWluIG1hZykgYXVmIERhdWVyIGZldHQgdW5kIGFsa29ob2xhYmhhZW5naWcKICAgIGdlbWFjaHQuCgo0LikgRXMgZ2lidCBrZWluZSBTdGFkdCBkaWUgODAuMDAwIG1hZW5ubGljaGUgRWlud29obmVyIGluCiAgICBlbnRzcHJlY2hlbmRlbSBBbHRlciBhdWZ3ZWlzdCwgZGllIGdsZWljaHplaXRpZyBhdWNoIG1pdAogICAgZGllc2VyIGZldHRlbiwgc3RpbmtlbmRlbiwgYXVmZ2VkdW5zZW5lbiBGcmF1IHBvcHBlbiB3dWVyZGVuLgoKNS4pIEluIGRlciBTY2hhY2h0ZWwga29lbm5lbiBzaWNoIGtlaW5lIFNjaGVpbmUgYmVmdW5kZW4gaGFiZW4sCiAgICBzb25kZXJuIG51ciBIYXJ0Z2VsZC4gVW0gZWluZW4gNSBFVVItU2NoZWluIGR1cmNoIFBmYW5kIHp1CiAgICBiZWtvbW1lbiBtdWVzc3RlIG1hbiAzMywzIEZsYXNjaGVuIGFiZ2ViZW4uIERpZXNlIHBhc3NlbiBuaWNodAogICAgaW4gZWluZSBTY2hhY2h0ZWwuIEhvZWNoc3RlbnMgaW4gZWluZW4gTW9lYmVsa2FydG9uLCBkZW4gbWFuCiAgICBhYmVyIG5pY2h0IHVudGVyIGVpbiBCZXR0IGJla29tbXQsIGVzIHNlaSBkZW5uIGVzIHdhZXJlIGVpbgogICAgSG9jaGJldHQuIFdlbm4gZGllIEZyYXUgYWxzbyBkaWUgRmxhc2NoZW4gd2VnZ2VicmFjaHQgaGF0LAogICAga2FubiBlcyBzaWNoIGhvZWNoc3RlbiB1bSA2IEZsYXNjaGVuIGdlaGFuZGVsdCBoYWJlbi4gRGllcwogICAgd2FlcmVuIDkwIGNlbnQgUGZhbmQuIEFsc28gSGFydGdlbGQuCgo2LikgTm9ybWFsZXJ3ZWlzZSB3YWVyZW4gMCw5MCBFVVIgYWxzIEhhcnRnZWxkbWVuZ2UgZWluIDUwLUNlbnQtU3R1ZWNrCiAgICB1bmQgendlaSAyMC1DZW50LVN0dWVja2UuIERpZSAxMi4wMzUgRVVSIEhhcnRnZWxkIGJlc3RlaGVuIGFsc28KICAgIGF1cyBjYS40LjQ1NyA1MC1DZW50LVN0dWVja2VuIHVuZCBkb3BwZWx0IHNvIHZpZWxlbiAyMC1DZW50LVN0dWVja2VuLgogICAgRWluIDUwLUNlbnQtU3R1ZWNrIHdpZWd0IDcsOCBHcmFtbSwgZWluIDIwLUNlbnQtU3R1ZWNrIDUsNzQgR3JhbW0uCiAgICBEYXMgc2luZCB6dXNhbW1lbiA4NiBLaWxvLiBEaWUgRnJhdSB3aWxsIGljaCBzZWhlbiwgZGllIElocmVuCiAgICBkaWNrZW4gYXVmZ2VxdW9sbGVuZW4gS29lcnBlciBhdWYgZGVuIEZ1c3Nib2RlbiBwbHVtcHNlbiBsYWVzc3QgdW0KICAgIG1hbCBlYmVuIGVpbmUgU2NoYWNodGVsIG1pdCBkZW0gR2V3aWNodCB2b24gODUgS2lsbyB1bnRlciBkZW0KICAgIEJldHQgaGVydm9yenV6aWVoZW4uCgo3LikgV2VubiBpY2ggZGFzIFZvbHVtZW4gZGVzIE1hdGVyaWFscyBkZXIgR2VsZHN0dWVja2UgbmVobWUgdW5kIHMKICAgIHVtbWllcmUsIGRhbm4ga29tbWUgaWNoIGF1ZiBndXQgMTIgS3ViaWtkZXppbWV0ZXIsIHdhcyBldHdhIDEyCiAgICBNaWxjaHR1ZXRlbiBlbnRzcHJpY2h0LiBEYXJpbiBlbnRoYWx0ZW4gaXN0IG5hdHVlcmxpY2ggbm9jaCBuaWNodAogICAgIkx1ZnQiLCBkaWUgendpc2NoZW4gZGVuIGVpbnplbG5lbiBHZWxkc3R1ZWNrZW4gaXN0LiBKZWRlbmZhbGxzCiAgICBwYXNzZW4ga2VpbmUgMTIgTWlsY2h0dWV0ZW4gaW4gZWluZSAiU2NoYWNodGVsIiwgZ2VzY2h3ZWlnZSBkZW5uCiAgICBub2NoIDMgbGVlcmUgRmxhc2NoZW4uCgo4LikgRXMgZ2lidCBkZW4gRXVybyBlcnN0IHNlaXQgZ3V0IGVpbmVtIEphaHIuIERhIGRhcyBHZWxkIGluIE11ZW56ZW4KICAgIHdhciwgZ2VoZSBpY2ggbmljaHQgdm9uIGVpbmVtIFVtdGF1c2NoIGluIGRpZSBuZXVlIFdhZWhydW5nIGF1cy4KICAgIEFsc28gbXVzcyBzaWNoIGRpZSAiRnJlbWRnZWhnZXNjaGljaHRlIiBqYSBrb21wbGV0dCBpbSBsZXR6dGVuCiAgICBKYWhyIGFiZ2VzcGllbHQgaGFiZW4uCgo5LikgV3VlcmRlIGljaCBkaWUgUmVjaG51bmcgYWxzbyB2b24gNDAgSmFocmVuIGF1ZiAxMiBNb25hdGUgdmVya3VlcnplbiwKICAgIGRhbm4ga2FlbWUgaWNoIGF1ZiBrbmFwcCAyMjAgTWFlbm5lciB1bmQgbmF0dWVybGljaCBhdWYgMjIwIEJpZXIgYW0KICAgIFRhZy4gRGEgZGVyIFRhZyBudXIgMjQgU3R1bmRlbiBoYXQgdW5kIGRhdm9uIGRlciBNYW5uIHdhaHJzY2hlaW5saWNoCiAgICBkaWUgSGFlbGZ0ZSBadWhhdXNlIGlzdCwgYmxpZWJlbiBpaHIgZnVlciBkYXMgIkZyZW1kcG9wcGVuIiBudXIgMTIKICAgIFN0dW5kZW4gcHJvIFRhZyB1ZWJyaWcuIERhdm9uIHppZWhlbiB3aXIgbWFsIGRpZSAzNiBHYWVuZ2UgenUgZGVtCiAgICBGbGFzY2hlbmxhZGVuIHVtIGRpZSBFY2tlIGFiLCBkaWUgY2EuIDUgTWludXRlbiBiZWFuc3BydWNoZW4uLi4uCiAgICBvYndvaGwgbmF0dWVybGljaCBuaWNodCwgd2VubiBtYW4gaGFja2VkaWNodCB1bmQgc3VwZXJmZXR0IGlzdC4uLgogICAgYWxzbyAxMCBNaW51dGVuIHBybyBHYW5nLiBTaW5kIGluc2dlc2FtdCA2IFN0dW5kZW4gdW0gZGFzIFBmYW5kCiAgICB3ZWd6dWJyaW5nZW4uIFVlYnJpZyBibGVpYmVuIG51biBub2NoIDYgU3R1bmRlbi4gV2VubiBtYW4gMSBNaW51dGUKICAgIHBybyBGbGFzY2hlIEJpZXIgdHJpbmtlbiByZWNobmV0LCBkYW5uIGdlaGVuIHdpZWRlciAzLDYgU3R1bmRlbiBhYiwKICAgIHNpbmQgYWxzbyBudXIgbm9jaCAyLDQgU3R1bmRlbiB1bSAyMjAgTWFlbm5lciB6dSB2b2VnZWxuLiBBYmVyIGRhIGJlaQogICAgZGVyIE1lbmdlIEJpZXIgYXVjaCBlaW5pZ2UgS2xvZ2FlbmdlIGVpbnp1cmVjaG5lbiBzaW5kLCBtdWVzc2VuIHdpcgogICAgbGVpZGVyIHdpZWRlciB3YXMgYWJ6aWVoZW4uIERpZSB3ZWlibGljaGUgQmxhc2UgZmFzc3QgZXR3YSA1MDBjY20sCiAgICBhbHNvIGNhLiBuZW4gaGFsYmVuIExpdGVyLiBEYXMgd2FlcmVuIGRhbm4gYmVpIDIyMCBCaWVyICgzMzBtbCkgMTQ1CiAgICBLbG9nYWVuZ2UuLi4uLi4gdXN3Li4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFNjaGFjaHRlbCAoTW9udGFudXMsIDE1LiBKdWwgMjAwMywgMTA6Mjg6NTYpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwNTgyNTY4ODcgcmc9ZGlza3Vzc2lvbgp+IyEgdGlkPTEwNTgwOTM1OTUKTmFjaCBrdXJ6ZXIgRGlza3Vzc2lvbiBtaXQgRGVlcEJsdWUgdW5kIEJlbGxkYXNhbiB1ZWJlciBkYXMgVGhlbWEgbXVlc3NlbiBub2NoCmZvbGdlbmRlIFRoZXNlbiBuYWNoZ2VyZWljaHQgd2VyZGVuOgoqIE1hZW5uZXIgYnJhdWNoZW4gbmljaHQgd2lzc2VuLCB3aWUgaG9jaCBkYXMgRmxhc2NoZW5wZmFuZCBpc3QsIGRlbm4gc2llCmJyaW5nZW4gZGFzIFpldWcgZWggbmllIHdpZWRlciB6dXJ1ZWNrIChTYW1tbGVyLSB1bmQgSmFlZ2VydHJpZWIpCiogRGFuayBkZXIgVW1zdGVsbHVuZyB2b24gRE0gYXVmIEV1cm8gd2lyZCBiZXNhZ3RlIERhbWUgc2Nob24gZWluaWdlcyBhbgpFdXJvLVNjaGVpbmVuIGluIGRlciBTY2hhY2h0ZWwgaGFiZW4sIGRhIHNpZSBpaHJlIERNLUJlc3RhZW5kZSBzaWNoZXIgbmljaHQgaW4KTXVlbnpnZWxkIGdldGF1c2NodCBoYXQKKiBJbiBLYXJsLU1hcngtU3RhZHQgd2lyZCAiQmllciIgYXVzIEVpbndlZy1QbGFzdGlrZmxhc2NoZSBnZXRydW5rZW4sIGRpZQpyaWNodGlnIHZpZWwgUGZhbmQgYnJpbmdlbjogMjUgY2VudCBiaXMgMSw1IExpdGVyLCA1MCBjZW50IGJlaSBtZWhyIGFscyAxLDUKTGl0ZXIuCgpVbmQgamV0enQgd2FydGUgaWNoIG51ciBub2NoIGRyYXVmLCBkYXNzIE1hbmQqIHVucyBkZW4gV2l0eiBkYXJhbiBlcmtsYWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vIGNvbW1lbnQgKE1vcmdvdGgsIDE4LiBKdWwgMjAwMywgMTE6MjM6MTYpOgpBcG9sbG9uaWEgaXN0IGdlcmFkZSBuaWNodCBkYTogaW4gZGVyIEt1ZWNoZSwgd28gc29uc3QKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTm8gY29tbWVudCAoSmFtZXNvbiwgMTguIEp1bCAyMDAzLCAxMzo1MTozMSk6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwNTg1MjAxOTYgcmc9d2l0emUKfiMhIHRpZD0xMDU4NTIwMTk2CnNjaGVpbnQga2VpbiBFaW56ZWxmYWxsIHp1IHNlaW4uLi4KCk1haGFyZXQgaXN0IGFscyBhYndlc2VuZCBnZWtlbm56ZWljaG5ldC4KR3J1bmQ6IEt1ZWNoZQoKZXMga29tbXQgYWxsZXMgd2llZGVyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXJ1Y2g/IChNb3Jnb3RoLCAyMi4gSnVsIDIwMDMsIDEzOjUxOjEwKToKU3VzaSB1bmQgVG9uaSBtYWNoZW4gZWluZSBTcGF6aWVyZmFocnQgbWl0IGRlbSBBdXRvLiBQbG9ldHpsaWNoIFRvbmk6ICJTdXNpLApTdXNpLCBoYWx0IGFuISBEYSBsaWVndCBlaW4gdmVybGV0enRlcyBTdGlua3RpZXIgaW0gU3RyYXNzZW5ncmFiZW4uIiBUb25pCnN0ZWlndCBhdXMgdW5kIHBhY2t0IGRhcyBTdGlua3RpZXIgaW5zIEF1dG8uIEZ1ZW5mIE1pbnV0ZW4gc3BhZXRlci4gU3VzaToiRHUKVG9uaSwgZGFzIGFybWUgU3Rpbmt0aWVyIGZyaWVydCBzaWNoZXIuIEVzIHppdHRlcnQgYW0gZ2FuemVuIEtvZXJwZXIuIFdpcgptdWVzc2VuIGVzIGlyZ2VuZHdpZSB3YWVybWVuISIKVG9uaTogIkxlZyBlcyBkb2NoIHp3aXNjaGVuIERlaW5lIEJlaW5lISIgU3VzaTogIlVuZCB3YXMgbWFjaGUgaWNoIG1pdCBkZW0KR2VzdGFuaz8iIFRvbmk6ICJIYWx0IGlobSBlaW5mYWNoIGRpZSBOYXNlIHp1Li4uIgoKTSogcm90Zmx0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2h3aW1tYmFkYmVzdWNoIChBbnRoZWEsIDIzLiBKdWwgMjAwMywgMTQ6NDU6NDcpOgpJY2ggcGFja2Ugc28gZ2VnZW4gMTEgVWhyIGFuIGVpbmVtIGZyZWllbiBNaXR0d29jaCBtZWluIEhhbmR0dWNoLCBlaW4gQnVjaCwKZWluZSBGbGFzY2hlIEFMREktTWluZXJhbHdhc3NlciB1bmQgZWluZSBGbGFzY2hlIFNvbm5lbmNyZW1lIGVpbiB1bmQgc2V0eiBtaWNoCmlucyBBdXRvLiBOYXR1ZXJsaWNoIG11ZXNzdGUgaWNoIG5pY2h0IG1pdCBkZW0gQXV0byBmYWhyZW4uIEljaCBrb2VubnRlIGphCmF1Y2ggbWl0IGRlbSBSYWQgZmFocmVuLiBBYmVyIFJhZCBmYWhyZW4gaXN0IGdlbmF1c28genVtIEtvdHplbiB3aWUKU3RyYXNzZW5iYWhuIGZhaHJlbi4uLiB1bmQgenUgRnVzcyBnZWh0IG51biB3aXJrbGljaCBuaWNodCEgQWxzbywgaWNoIGZhaHJlCnp1bSBTY2h3aW1tYmFkLgoKSmUgbmFlaGVyIGljaCBkZW0gU2Nod2ltbWJhZCBrb21tZSwgdW0gc28gZ3JvZXNzZXIgd2lyZCBkaWUgWmFobCBkZXIKUmFkZmFocmVyLCBkaWUgbWl0IHNvbm5pZ2VtIEdlbXVldCBrcmV1eiB1bmQgcXVlciBuZWJlbmVpbmFuZGVyIHVuZCBzb3dpZXNvCnVlYmVyYWxsIGF1ZiBkZXIgU3RyYXNzZSBoZXJ1bXNjaGxpbmdlcm4sIGRpZSBTb25uZW5icmlsbGUgYXVmIGRlciBOYXNlIHVuZAp0b25uZW53ZWlzZSBLcmVtcGVsIGltIEtvZXJiY2hlbiwgd2llIHp1bSBCZWlzcGllbCBMdWZ0bWF0cmF0emVuLCBLdWVobGJveGVuLApTb25uZW5zY2hpcm1lIG9kZXIgaWhyZW4gTmFjaHd1Y2hzLiBNYW4ga29lbm50ZSBnbGF1YmVuLCBtYW5jaGUgd2FlcmVuIGF1cwppaHJlbiBIYWV1c2VybiB2ZXJ0cmllYmVuIGF1ZiBkZW0gV2VnIGluIGRpZSBGcmVtZGUuLi4gYWJlciBuZWluLCBzaWUgd29sbGVuCnRhdHNhZWNobGljaCBudXIgZWluZW4gVGFnIGlucyBTY2h3aW1tYmFkLgoKSW4gdGllZmVtIFZlcnRyYXVlbiBhdWYgZGVuIGxpZWJlbiBHb3R0IHVuZCBtZWluZSBHZWR1bGQgcmF1c2NoZW4gc2llIGFsc28KdW5rb29yZGluaWVydCB2b3IgbWVpbmVtIEF1dG8gaGVydW0uLi4gYWJlciBpY2ggbGFzc2UgbWljaCBuaWNodCBlbnRtdXRpZ2VuCnVuZCBzdWNoZSBlaW5lbiBQYXJrcGxhdHouIFNjaGF0dGVuIHdhZXJlIHRvbGwuIEFtIGJlc3RlbiBuaWNodCB6dSB3ZWl0IHdlZy4KSWNoIHN1Y2hlIHVuZ2VmYWVociBlaW5lIGhhbGJlIFN0dW5kZSB1bmQgc3RlbGxlIG1pY2ggZGFubiBzaWViZW5laW5oYWxiCktpbG9tZXRlciB2b20gRWluZ2FuZyBlbnRmZXJudCBnZWdlbiBkaWUgRmFocnRyaWNodHVuZyBpbSBhYnNvbHV0ZW4KSGFsdGV2ZXJib3QgYXVmIGVpbmVuIHNvbm5lbmR1cmNoZmx1dGV0ZW4gUmFkd2VnLCBkZW4gZGllIG9iZW4gZXJ3YWVobnRlbgpCZWtsb3BwdGVuIGtvbWlzY2hlcndlaXNlIGVpc2VybiBpZ25vcmllcmVuLgoKVm9yIGRlciBLYXNzZSBzdGVodCBlaW5lIHJpZXNpZ2UgTWVuc2NoZW5tZW5nZS4gRGFydW50ZXIgYXVjaCBmdWVuZiBhZWx0ZXJlCkhlcnJlbiBpbiBUZWFtIFRlbGVrb20tT3V0Zml0cywgZGllIGxhdXRoYWxzIHZlcmt1ZW5kZW4sIGRhc3Mgc2llIG5hY2ggMjAKS2lsb21ldGVybiBSYWQgZmFocmVuIGpldHp0IG5vY2ggMjUgQmFobmVuIHNjaHdpbW1lbiB3ZXJkZW4uLi4gSW50ZXJlc3NhbnRlClRyaWF0aGxvbi1WYXJpYW50ZTogbWl0IGRlbSBGYWhycmFkIGlucyBTY2h3aW1tYmFkLCBtaXQgZGVtIEtyYW5rZW53YWdlbgp3aWVkZXIgenVydWVjay4gRHJlaSBUZWVuaWVzIHp3YWVuZ2VuIHNpY2ggZHVyY2ggZGllIFJlaWhlIG5hY2ggdm9ybi4gQXVmCm1laW5lbiBmcmV1bmRsaWNoZW4gSGlud2Vpcywgc2llIHNvbGx0ZW4gc2ljaCBkb2NoIGJpdHRlIGhpbnRlbiBhbnN0ZWxsZW4sCmFudHdvcnRldCBlaW5lciBtaXQgZWluZW0gZWJlbnNvIGZyZXVuZGxpY2hlbjogIkhhbHQgZG9jaCBkaWUgRnJlc3NlLApTY2h3dWNodGVsISIuIEFiZXIgaWNoIGZyZXUgbWljaCBlaW5mYWNoIG51ciB3ZWl0ZXIgYXVmIGRhcyBrdWVobGUgTmFzcyB1bmQKcGFzc2UgbmViZW5iZWkgYXVmLCBkYXNzIG1pciBpbSBHZWRyYWVuZ2Uga2VpbmVyIGRlbiBHZWxkYmV1dGVsIGtsYXV0LgoKQW4gZGVyIEthc3NlIG1hY2hlIGljaCBtZWluZW4gQW5zcHJ1Y2ggYXVmIEVybWFlc3NpZ3VuZyBnZWx0ZW5kLiBEaWUKZnJldW5kbGljaGUgRGFtZSBiaXR0ZXQgbWljaCBoZXJlaW4sIGxhZXNzdCBzaWNoIFN0dWRlbnRlbmF1c3dlaXMsClBlcnNvbmFsYXVzd2VpcywgRnVlaHJlcnNjaGVpbiwgRUMtS2FydGUsIE9yZ2Fuc3BlbmRlci1LYXJ0ZSwgSW1wZnBhc3MgdW5kCkdlYnVydHN1cmt1bmRlIHZvcmxlZ2VuIHVuZCB1bnRlcnppZWh0IG1pY2ggZWluZW0gTHVlZ2VuZGV0ZWt0b3ItVGVzdC4gTmFjaGRlbQpkYXMgQktBIG1laW5lIEZpbmdlcmFiZHJ1ZWNrZSB1ZWJlcnBydWVmdCBoYXQgZ2V3YWVocnQgbWFuIG1pciB0YXRzYWVjaGxpY2gKZXJtYWVzc2lndGVuIEVpbmxhc3MgaW4gZGVuIEJhZGVzcGFzcy1QYXJrIQoKSWNoIHN1Y2hlIG1pciBlaW4gbmV0dGVzIFBsYWV0emNoZW4gYXVmIGRlciBXaWVzZSwgbGVnZSBtZWluIG9yaWdpbmFsIHJvdGVzClNjaHd1Y2h0ZWx0dWNoIGF1ZiBlaW4gQW1laXNlbmxvY2ggdW5kIGVpbmUgYWx0ZSBQb3J0aW9uIFBvbW1lcyB1bmQgZnJldSBtaWNoCmF1ZiBkZW4gc2Nob2VuZW4gVGFnLiBEaWUgVm9lZ2xlaW4gc2luZ2VuLCBkaWUgS2luZGVyIHNjaHJlaWVuIHVuZCBkaWUgS2lkcwpuZWJlbmFuIGVyZnJldWVuIGRhcyBnYW56ZSBTY2h3aW1tYmFkIG1pdCBkZW0gbGllYmxpY2hlbiBHZXNjaHJlaSB2b24KUmFtbXN0ZWluLCB3ZWxjaGVzIGF1cyBpaHJlbSBHaGV0dG9ibGFzdGVyIGRyb2VobnQuIERhbm4gZXJmcmV1ZSBpY2ggZGllCkJpZW5lbiB1bmQgV2VzcGVuLCBpbmRlbSBpY2ggbWljaCB2b24gS29wZiBiaXMgRnVzcyBtaXQgZWluZXIgcGFtcGlnZW4Kc3RpbmtpZ2VuIFNvbm5lbmNyZW1lIGVpbnNjaG1pZXJlLiBTb2ZvcnQgc3VtbWVuIHNpZSBsdXN0aWcgdW0gbWljaCBoZXJ1bS4uLgoKQWNoLCBkYXMgTGViZW4gaXN0IHNjaG9lbiEgTmFjaGRlbSBpY2ggbWljaCBlaW5lIGhhbGJlIFN0dW5kZSBpbiBkZXIgU29ubmUKZ2VyYWVrZWx0IGhhYmUsIGJla29tbWUgaWNoIGxhbmdzYW0gRHVyc3QgdW5kIGdyZWlmZSB6dSBtZWluZW0gV2Fzc2VyLiBBbHMgaWNoCmdlcmFkZSB0cmlua2VuIG1vZWNodGUgZG9ubmVydCBtaXIgZWluIEZ1c3NiYWxsIGx1c3RpZyBoaW50ZW4gYXVmIGRpZSBCaXJuZSwKd2FzIGRhenUgZnVlaHJ0LCBkYXNzIGljaCBtaXIgYW0gRmxhc2NoZW5oYWxzIGVpbiBub2NoIGx1c3RpZ2VyZXMga2xlaW5lcwpTdHVlY2sgdm9tIFNjaG5laWRlemFobiBhYnNjaGxhZ2UuLi4gSWNoIGRyZWhlIG1pY2ggdW0gdW5kIGRhIHN0ZWh0Li4uIHNvIGVpbgpadWZhbGwhIERhcyBzeW1wYXRoaXNjaGUga2xlaW5lICMjIyMjIHZvbSBFaW5nYW5nISBFbnRzY2h1bGRpZ2VuZCBzYWd0IGRlcgpLbGVpbmUgenUgbWlyOiAiR2liIG1laW4gQmFsbCBoZXIsIGR1IE1pc3NnZWJ1cnQhIiBEYSBrYW5uIGljaCBuYXR1ZXJsaWNoCm5pY2h0IG5laW4gc2FnZW4gdW5kIHdlcmZlIGlobSBkZW4gQmFsbCB6dS4uLi4KCkltIFNjaHdpbW1iYWQgaXN0IGVzIGVjaHQgdG9sbCEgRG9jaCBlaW4gU2NobHVjayBXYXNzZXIga29ubnRlIG1pY2ggbmljaHQKd2lya2xpY2ggZXJmcmlzY2hlbi4gWmVpdCBmdWVyIGVpbmVuIFNwcnVuZyBpbnMga3VlaGxlIE5hc3MhIE5hY2hkZW0gaWNoIGVpbmVuCm5ldHRlbiBNYW5uIG5lYmVuIG1pciBkYXJ1bSBnZWJldGVuIGhhYmUsIGRvY2ggZWluIEF1Z2UgYXVmIG1laW5lIFNhY2hlbiB6dQpoYWJlbiwgd2FlaHJlbmQgaWNoIHNjaHdpbW1lLCBzY2hsZW5kZXJlIGljaCB6dW0gQmVja2VuLiBIaWVyIGlzdCBlcyB0b2xsIQpWaWVsZSBrbGVpbmUgS2luZGVyIHJlbm5lbiBoZXJ1bS4gRWlucyByZW5udCBtaXIgbWl0IGRlbSBLb3BmIGluIGRpZSBFaWVyIHVuZApmYWVuZ3QgYW4genUgaGV1bGVuLiBEaWUgTXV0dGVyIHNjaHJlaXQgbWljaCBlaW4gd2VuaWcgYW4sIHdhcyBtaXIgZWluZmllbGUsCnNvIGVpbmZhY2ggYW0gQmVja2VuIHZvcmJlaXp1Z2VoZW4gd2VubiBpaHIgS2luZCBkYSBoZXJ1bXRvYnQuIEphLCBkYXMgdHV0IG1pcgpuYXR1ZXJsaWNoIExlaWQuLi4gaGFldHQgaWNoIGF1Y2ggd2lya2xpY2ggYmVzc2VyIGF1ZnBhc3NlbiBtdWVzc2VuLiBFbmRsaWNoCmJpbiBpY2ggaW0gV2Fzc2VyLiBEYXMgaXN0IGVjaHQgc2Nob2VuIQoKRGFzIFNvbm5lbm9lbCB2b24gdGF1c2VuZGVuIExldXRlbiBzY2hpbGxlcnQgYXVmIGRlciBXYXNzZXJvYmVyZmxhZWNoZSwgZHVyY2gKZGllIENobG9yLXZlcmFldHp0ZW4gQXVnZW4gc2NoZWludCBkaWUgV2VsdCBpbiBlaW5lbiBsaWVibGljaGVuIFNjaGxlaWVyCmdlaHVlbGx0LiBJY2ggdGF1Y2hlIHVudGVyIHVuZCBnZW5pZXNzZSBnZXJhZGUgZGVuIFdlY2hzZWwgendpc2NoZW4ga2FsdGVtCldhc3NlciB1bmQgd2FybWVtIFBpcGkgYWxzIG1pciBlaW4gbmV0dGVzIGtsZWluZXMgS2luZCB2b20gMy1NZXRlci1CcmV0dCBhdWYKZGVuIFJ1ZWNrZW4gc3ByaW5ndC4gQWxzIGljaCBqYXBzZW5kIGF1ZnRhdWNoZSwgdW0gbWljaCB6dSBlbnRzY2h1bGRpZ2VuLCBzZWhlCmljaCwgZGFzcyBlcyBqYSBnZW5hdSBkYXMgZ2xlaWNoZSBLaW5kIHdpZSBlYmVuIHdhciEgSGFjaCB3aWUgbmV0dCEKSG9mZmVudGxpY2ggaGF0IGVzIHNpY2ggbmljaHQgd2VoIGdldGFuISBFcyBob2VydCBhdWNoIHRhdHNhZWNobGljaCBnbGVpY2ggYXVmCnp1IHdlaW5lbiwgbmFjaGRlbSBpY2ggaWhtIG1laW5lIFVociBnZXNjaGVua3QgaGFiZS4gU28gZWluIGxpZWJlcyBLaW5kISBSYXVzCmF1cyBkZW0gV2Fzc2VyLCB6dXJ1ZWNrIHp1bSBQbGF0ei4KCkFscyBpY2ggZG9ydCBhbmtvbW1lLCBpc3QgZGVyIG5ldHRlIE5hY2hiYXIsIGRlciBlaW4gd2VuaWcgYXVmIG1laW5lIFNhY2hlbgphdWZnZXBhc3N0IGhhdCwgbmljaHQgbWVociBkYS4gTWVpbiBHZWxkYmV1dGVsIGF1Y2ggbmljaHQuIERhZnVlciBhYmVyIHNlaW4KSHVuZCwgZGVyIGdlcmFkZSBtZWluIFNjaG5pdHplbGJyb2V0Y2hlbiBmcmlzc3QgdW0gZGFuYWNoIGluIG1laW5lbiBUdXJuc2NodWgKenUgc2NoZWlzc2VuLiBOZXR0ZXIgSHVuZCEgRWlnZW50bGljaCBiaW4gaWNoIHNlaHIgYXVzZ2VnbGljaGVuLi4uIGFiZXIgamV0enQKaXN0IGVzIGRvY2ggbGFuZ3NhbSBnZW51Zy4gSWNoIHBhY2tlIG1laW5lIFNhY2hlbiB6dXNhbW1lbiB1bmQgZGVuIGJsb2VkZW4KSHVuZCBpbiBkaWUgS3VlaGxib3ggc2VpbmVzIGZyZXVuZGxpY2hlbiBIZXJyY2hlbnMuIFNlbGJpZ2UgbGFzc2UgaWNoCmZlaWVybGljaCBpbSBXZWxsZW5iZWNrZW4genUgV2Fzc2VyIHVuZCBzY2hhdWUgbWlyIGJlbHVzdGlndCBkZW4gd2lsZGVuIFJpdHQKYW4sIHdhZWhyZW5kIGljaCBlaW4gcGFhciBUYWt0ZSAiU3VyZmluIFVTQSIgcGZlaWZlLiBNaXQgZGVtIEhhbmR5IGRlcwpIZXJyY2hlbnMgcnVmZSBpY2ggZWluZSAwMTkwLU51bW1lciBhbiB1bmQgd2VyZmUgZXMgZGFubiBhdWZzIERhY2ggZGVyClVta2xlaWRla2FiaW5lbi4gSmV0enQgaGFiIGljaCBtaWNoIHNjaG9uIGJlaW5haGUgYmVydWhpZ3QuIEljaCBzY2hsZW5kZXJlIHp1Cm1laW5lbSBGdXNzYmFsbC1GcmV1bmQsIG5laG1lIGlobSBkZW4gQmFsbCBhYiB1bmQgc2NoaWVzc2UgaWhuIG1pdCBlaW5lbQpiZWVpbmRydWNrZW5kZW4gVm9sbHNwYW5uIGF1cyBlaW5lbSBNZXRlciBFbnRmZXJudW5nIGRpcmVrdCBpbiBzZWluIG5ldHRlcwpHZXNpY2h0LiBOYWNoZGVtIGVyIG5hY2ggaGludGVuIHVtZ2VmYWxsZW4gaXN0LCBuZWhtZSBpY2ggZGllIEdlbGVnZW5oZWl0CndhaHIsIGluIHNlaW5lbSBSdWNrc2FjayBub2NoIGVpbiBrbGVpbmVzIEZldWVyY2hlbiB6dSBsZWdlbiB1bmQgbWFjaGUgbWljaAphdWYgZGVuIFdlZyB6dW0gQXVzZ2FuZy4KCkFscyBpY2ggYW0gQmVja2VucmFuZCB2b3JiZWlrb21tZSBzZWhlIGljaCBtZWluZW4gS3VtcGVsIHZvbSAzLU1ldGVyLUJyZXR0LiBEYQpkZXIgQmFkZW1laXN0ZXIgZ2VyYWRlIGRhYmVpIGlzdCwgZWluZW4gVGVsZWtvbS1PcGEgYXVzIGRlbSBCZWNrZW4genUgZmlzY2hlbgpudXR6ZSBpY2ggZGVuIE1vbWVudCwgc2NobmFwcCBtaXIgZGllIEJhZGVob3NlIGRlcyBuZXR0ZW4ga2xlaW5lbgpTY2h3ZWluZXByaWVzdGVycyB1bmQgaGFlbmdlIHNpZSBuaWNodCB3ZWl0IGVudGZlcm50IGFuIGVpbmVuIGhvaGVuIEFzdC4gQWxzCmljaCBhbSBBdXNnYW5nIGFua29tbWUgc2NoYXUgaWNoIG1pY2ggZWluIGxldHp0ZXMgTWFsIHVtOiBEZXIgRnVzc2JhbGwtUGVubmVyCmh1ZXBmdCBwbGFlcnJlbmQgdW0gc2VpbmVuIGJyZW5uZW5kZW4gUnVja3NhY2sgaGVydW0gKGRhcyBGZXVlciBoYXQgaW56d2lzY2hlbgphdWYgYmVuYWNoYmFydGUgQmFzdG1hdHRlbiB1ZWJlcmdlZ3JpZmZlbiksIGRpZSBrbGVpbmUgTmVydmVuc2FlZ2UgaHVlcGZ0Cm5hY2t0IHVudGVyIGRlbSBCYWRlaG9zZW4tQmF1bSBoZXJ1bSB1bmQgZGVyIG5ldHRlIE5hY2hiYXIgc3VjaHQgc2VpbmVuCkh1bmQuLi4gZGllIGZlc3QgdmVyc2NobG9zc2VuZSBLdWVobGJveCB6aWVodCBpbW1lciBub2NoIGlocmUgQmFobmVuIGltCldlbGxlbmJlY2tlbiB1bmQgZGFzIEhhbmR5IGZ1bmtlbHQgbWlyIGx1c3RpZyB2b20gVW1rbGVpZGVkYWNoIHp1LiBEaWUKUmVjaG51bmcgbXVzcyBpbnp3aXNjaGVuIGJlaSBldHdhIDE5OCBFdXJvIGxpZWdlbi4uLgoKQWxzIGljaCB6dW0gQXV0byB6dXJ1ZWNra29tbWUgaGFlbmd0IGVpbiBTdHJhZnpldHRlbCBkcmFuLiBJY2ggbmVobSBpaG4gYWIsCmxlc2UgaWhuIGF1Zm1lcmtzYW0gZHVyY2ggdW5kIGVzc2UgaWhuIGF1Zi4gRGFubiBzdGVpZyBpY2ggaW4gbWVpbiBicnVldGVuZApoZWlzc2VzIEF1dG8gdW5kIGRlbmtlOiBHYXIgbmljaHQgc28gc2NobGVjaHQsIHNvIGVpbiBCZXN1Y2ggaW0gRnJlaWJhZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpbmdlLCBkaWUgZHUgbmljaHQgaG9lcmVuIHdpbGxzdCwgd2VubiBkdSBvcGVyaWVydCB3aXJzdCAoTW9yZ290aCwgMjMuIEp1bCAyMDAzLCAxODo0NzoxMik6CgpIZWJ0IGRhcyBiZXNzZXIgYXVmLCB2aWVsbGVpY2h0IGJyYXVjaGVuIHdpciBlcyB3aWVkZXIKClJ1ZicgJ21hbCBlaW5lciBkaWUgUHV0emZyYXUsIHdpciBicmF1Y2hlbiBlaW5lbiBNb3AKCk5pbW0nIGRpZXNlcyBPcGZlciBhbiwgb2ggSGVyciBkZXIgRmluc3Rlcm5pcwoKQXVzLCBhdXMhIEJyaW5nJyBkYXMgenVydWVjaywgYm9lc2VyIEh1bmQhCgpXYXJ0ZSBlaW5lbiBNb21lbnQuLi4gV2VubiBkYXMgZGVyIEJsaW5kYXJtIGlzdCwgd2FzIHdhciBkZW5uIGRhcz8KCkdpYicgbWlyIG1hbCBkYXMuLi4gZGFzLi4uIHVoLCBkYXMgRGluZyBkYS4uLgoKSG9wcGxhLCBpY2ggaGFiZSBnZXJhZGUgbWVpbmUgUm9sZXggdmVybG9yZW4KCkhhdCBzY2hvbiBtYWwgZWluZXIgNTAwIG1sIHZvbiBkZW0gWmV1ZyB1ZWJlcmxlYnQ/CgpNaXN0LCBkYXMgTGljaHQgaXN0IHNjaG9uIHdpZWRlciBhdXNnZWZhbGxlbgoKV2Vpc3N0IGphLCBmdWVyIE5pZXJlbiBrcmllZ3QgbWFuIG1hZWNodGlnIEtvaGxlOyB3b3csIGRhIHNpbmQgamEgc29nYXIgendlaQpkcmluLi4uCgpBbGxlIGJsZWliZW4gcnVoaWcgc3RlaGVuLiBJY2ggaGFiJyBtZWluZSBLb250YWt0bGluc2VuIHZlcmxvcmVuCgpTdG9wcCcgZG9jaCAnbWFsIGVpbmVyIGRpZXNlcyBEaW5nIGRhIGRyaW5uZW4uIERhcyBkYXVlcm5kZSBCdW1tLUJ1bW0gc3RvZXJ0Cm1pY2ggaW4gbWVpbmVyIEtvbnplbnRyYXRpb24uLi4KCldhcyBzdWNodCBkZW5uIGRhcyBkYSBoaWVyPyBJY2ggaGFzc2UgZGFzLCB3ZW5uIElociBpbW1lciBFdXJlbiBLcmFtCnZlcmxpZXJ0Li4uCgpFaCBnZWlsISBLYW5uc3QgRHUgZGFzIGFuZGVyZSBCZWluIGF1Y2ggdW1kcmVoZW4/CgpJY2ggd3VlbnNjaHRlLCBpY2ggaGFldHRlIG1laW5lIEJyaWxsZSBuaWNodCB2ZXJnZXNzZW4KCk51biBMZXV0ZSwgZGFzIHdpcmQgZWluIEV4cGVyaW1lbnQgZnVlciB1bnMgYWxsZQoKVHVwZmVyLi4uIE1pc3QuLi4gRGVyIEJvZGVuIHdhciBkb2NoIHNhdWJlciwgb2Rlcj8KCldhcyBoZWlzc3Q6ICJEZXIgd2FyIG5pY2h0IGhpZXIgZnVlciBlaW5lIEdlc2NobGVjaHRzdW13YW5kbHVuZz8iCgpIYXQgamVtYW5kIG1laW4gU2thbHBlbGwgZ2VzZWhlbj8KClVuZCBudW4gZW50bmVobWVuIHdpciBkYXMgR2VoaXJuIHVuZCBpbXBsYW50aWVyZW4gZXMgaW4gZWluZW4KQWZmZW4tS29lcnBlci4uLgoKVW5kIG51biBub2NoIGVpbiBCaWxkIGF1cyBkZXIgUmljaHR1bmc7IE1hbm4sIGRhcyBpc3Qgd2lya2xpY2ggZWluCk1vbnN0ZXIuCgpTY2h3ZXN0ZXIsIGRlciBQYXRpZW50IGhhdHRlIGRvY2ggZWluZW4gT3JnYW5zcGVuZGVyLUF1c3dlaXM/CgpLZWluZSBBbmdzdCwgaWNoIGRlbmtlLCBlcyBpc3Qgbm9jaCBzY2hhcmYgZ2VudWcuCgpXYXMgbWVpbnN0IER1IG1pdDogIkljaCB3aWxsIGRpZSBTY2hlaWR1bmciID8KCkZldWVyISBGZXVlciEgQWxsZSByYXVzIGhpZXIhCgpNaXN0ISBTZWl0ZSA0NyBkZXMgSGFuZGJ1Y2hzIGZlaGx0LgoKIk9wZXJhdGlvbiIsIGljaCBoYXR0ZSAiT2JkdWt0aW9uIiB2ZXJzdGFuZGVuIQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBsZXR6dGVuIFdvcnRlLi4uIChBcG9sbG9uaWEsIDI1LiBKdWwgMjAwMywgMTY6MzA6NDcpOgpkZXIgQWlyYnVzIENyZXcgOiAiRGFzIExhZW1wY2hlbiBkYSBibGlua3QgLSBhY2ggdmVyZ2Vzc2VuIHdpcnMiCgpkZXMgQXJjaGl0ZWt0ZW46ICJNaXIgZmFlbGx0IGRhIGdlcmFkZSB3YXMgZWluLi4uIgoKZGVzIEFzdHJvbmF1dGVuOiAiTmVpbiwgbmVpbiwgbWVpbmUgTHVmdCByZWljaHQgbm9jaCAnbmUgVmllcnRlbHN0dW5kZS4iCgpkZXMgQmVyZ3N0ZWlnZXJzOiAiV2FyJ24gZ2FyIG5pY2h0IG1hbCB0ZXVlciwgZGllc2UgS2FyYWJpbmVyaGFrZW4uLi4iCgpkZXMgQmV0dG5hZXNzZXJzOiAiTWFjaCBtYWwgZGllIEhlaXpkZWNrZSBhbi4uLiIKCmRlcyBCaW9sb2dlbjogIkRpZSBTY2hsYW5nZSBpc3QgbmljaHQgZ2lmdGlnLCBkaWUga2VubmUgaWNoIgoKZGVzIEJyaWVmdHJhZWdlcnM6ICJCcmF2ZXMgSHVuZGNoZW4uLi4iCgpkZXMgQnVuZ2VlLUp1bXBlcnM6ICJOZWluLCBkYXMgaGFlbHQuIgoKZGVzIEJ1c2ZhaHJlcnM6ICJDQ0NDQ0NISEhISEhISEhSUlJSUlJSUlJSIgoKZGVzIEJlaWZhaHJlcnM6ICJSZWNodHMgaXN0IGZyZWkhIgoKZGVyIENoYWxsZW5nZXIgQ3JldyA6ICJMYXNzdCBkaWUgRnJhdSBtYWwgYW5zIFN0ZXVlciIKCmRlcyBDaGVmczogIlRvbGxlcyBHZXNjaGVuayEgLSBTbyBlaW4gRmV1ZXJ6ZXVnIGluIFJldm9sdmVyZm9ybSEiCgpkZXMgQ2hlbWlrZXJzOiAiU28sIHVuZCBudW4gbm9jaCBldHdhcyB2b24gZGllc2VtIFpldWcuLi4iCgpkZXMgQ2hlbWlrZXJzOiAiVW5kIG51biBkZXIgR2VzY2htYWNrc3Rlc3QiCgpkZXMgQ28tUGlsb3RlbjogIldhcyBtZWluc3QgRHUgbWl0ICdJY2ggaGFiIHZlcmdlc3NlbiB6dSB0YW5rZW4nPyIKCmRlcyBDb21wdXRlcnM6ICJTaW5kIFNpZSBzaWNoZXI/IChKL04pIgoKZGVzIENvbXB1dGVydXNlcnM6ICJEZXIgSGVyc3RlbGxlciBzYWd0LCBkYXNzIHNpY2ggZGllc2UgMiBLYXJ0ZW4gdmVydHJhZ2VuISIKCmRlcyBEby1pdC15b3VzZWxmLU1lY2hhbmlrZXJzOiAiRGFzIG11ZXNzdGUgaGFsdGVuIgoKZGVzIEVsZWt0cmlrZXJzOiAiS2xhciBoYWIgaWNoIGRlbiBTdHJvbSBhYmdlc2NoYWx0ZXQiCgpkZXMgRWxla3Ryb25pa2VyczogIldhcyBpc3QgZGVubiBkYXMgZnVlciBlaW4gRHJhaHQgPz8iCgpkZXMgRmFocmxlaHJlcnM6ICJOdW4gdmVyc3VjaGVuIFNpZSdzIGFsbGVpbmUiCgpkZXMgRmFocnJhZGZhaHJlcnM6ICJHdWNrIG1hbCwgaWNoIGthbm4gZnJlaWhhZW5kaWcgZmFocmVuLiIKCmRlcyBGYWhyc3R1aGxwYXNzYWdpZXJzOiAiQWJ3YWVydHMsIGJpdHRlLiIKCmRlcyBGYWxsc2NoaXJtc3ByaW5nZXJzOiAiU2NoZWlzcyBNb3R0ZW4hIgoKZGVzIEZsZWlzY2hlcm1laXN0ZXJzOiAiS2FsbGUsIHdpcmYgbWlyIG1hbCBkYXMgTWVzc2VyIHJ1ZWJlciEiCgpkZXIgR2Vpc2VsOiAiRHUgd2lyc3QgbmllbWFscyBzY2hpZXNzZW4sIEZlaWdsaW5nISIKCmRlcyBHZXJpY2h0c3ZvbGx6aWVoZXJzOiAiVW5kIGRlbiBSZXZvbHZlciBwZmFlbmRlIGljaCBhdWNoISIKCmRlcyBHcm9zc3dpbGRqYWVnZXJzOiAiU2NoZWlzc2UsIE11bml0aW9uIGFsbGUgLi4uIgoKZGVzIEhhbmRncmFuYXRlbndlcmZlcnM6ICJCaXMgd2lldmllbCBzYWd0ZW4gU2llIHNvbGwgaWNoIHphZWhsZW4/IgoKZGVzIEhhcmR3YXJlLUJhc3RsZXJzOiAiRGFzIE5ldHprYWJlbCBsYXNzZSBpY2ggYWxzIEVyZHVuZyBkcmFuLi4uIgoKZGVzIEh1bmRlaGFsdGVyczogIk5laW4sIGRlciBpc3QgZ2FueiB6YWhtIgoKZGVzIEthcGl0YWVucyBkZXIgVGl0YW5pYzogIkV0d2FzIEVpcyBmdWVyIG1laW5lbiBXaGlza2V5LCBiaXR0ZS4iCgpkZXMgS2FwaXRhZW5zIGVpbmVzIFdhbGZhZW5nZXJzOiAiU28sIGRlbiBoYWV0dGVuIHdpciBhbSBIYWtlbi4iCgpkZXMgTWFjaG9zOiAiSGFsbG8gU3Vlc3NlLCB3aWUgd2FlcidzIG1pdCB1bnMgYmVpZGVuPyIKCmRlcyBNYW50YWZhaHJlcnM6ICJTY2hlaXNzIHJvdGUgQW1wZWwuLi4iCgpkZXMgTWl0YXJiZWl0ZXJzIGVpbmVyIFdhY2gtIHVuZCBTY2hsaWVzc2dlc2VsbHNjaGFmdDogIklzdCBqZW1hbmQgZGE/IgoKZGVzIE5pdHJvZ2x5emVyaW5saWVmZXJhbnRlbjogIkZhbmchIgoKZGVzIFBpbG90ZW5zOiAiV2FzJ24gZGFzIGZ1ZXJuIExvY2ggaW4gZGVyIFRyYWdmbGFlY2hlPyIKCmRlcyBQaWx6YmVyYXRlcnM6ICJEZXIgaXN0IHVuZ2lmdGlnLCBkZW5uIHd1ZXJkZSBpY2ggc29nYXIgZXNzZW4uIgoKZGVzIFBvbGl6aXN0ZW46ICJTZWNocyBTY2h1c3MsIGRlciBoYXQga2VpbmUgTXVuaXRpb24gbWVociEiCgpkZXIgUHV0emZyYXU6ICJJY2ggcHV0eicgbnVyIG5vY2ggc2NobmVsbCBkYXMgQmFsa29uZ2VsYWVuZGVyLi4iCgpkZXMgUmVubmZhaHJlcnM6ICJEaWUgS3VydmUga3JpZWcnIGljaCBkb2NoIGxvY2tlciBtaXQgMjgwLi4uIgoKZGVzIFJlc3RhdXJhbnRiZXN1Y2hlcnM6ICJJY2ggbmVobWUgZGFzIFBpbHpyYWdvdXQiCgpkZXMgU2Nod2ltbWVyczogIk5laW4sIGhpZXIgaW4gZGVuIEdld2Flc3Nlcm4gZ2lidCBlcyBrZWluZSBIYWllLiIKCmRlcyBTb2Z0d2FyZS1FbnR3aWNrbGVyczogIk5hdHVlcmxpY2ggaGFiZSBpY2ggZWluIGludGFrdGVzIEJhY2t1cCEiCgpkZXMgU29ubmVuYW5iZXRlciA6ICJXZWxjaGVzIE96b25sb2NoID8iCgpkZXMgU3BvcnRsZWhyZXJzOiAiQWxsZSBTcGVlcmUgenUgbWlyICEiCgpkZXMgU3RlaW56ZWl0bWVuc2NoZW46ICJJY2ggZnJhZyBtaWNoLCB3YXMgaW4gZGVyIEhvZWhsZSBpc3QuLi4iCgp2b24gVGFyemFuOiAiV2VyIGhhdCBkaWUgTGlhbmUgZWluZ2VvZWx0PyIKCmRlcyBUdXJtc3ByaW5nZXJzOiAiV28genVyIEhvZWxsZSBpc3QgZGFzIFdhc3Nlcj8hPyIKCmRlcyBUdWVyc3RlaGVyczogIk51ciB1ZWJlciBtZWluZSBMZWljaGUhIgoKZGVzIFUtQm9vdC1NYXRyb3NlbjogIkhpZXIgc29sbHRlIG1hbCBnZWx1ZWZ0ZXQgd2VyZGVuISIKCmRlcyBXYXR0d2FuZGVyZXJzOiAiT2ggLSBtZWluZSBVaHIgaXN0IHN0ZWhlbmdlYmxpZWJlbiEiCgpBcG8qCmdyaW5zZW5kCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGdXNzYmFsbGVyIDotKSAoQmFtYnVsa28sIDMxLiBKdWwgMjAwMywgMTE6NTA6MzEpOgpQdWVua3RsaWNoIHp1bSBzdGFydCBkZXIgQnVuZGVzbGlnYSBrb21tZW4gbm9jaG1hbCBkaWUgYmVzdGVuIFNwcnVlY2hlOgoKSGVyYmVydCBGaW5rZW46IE1laW4gTmFtZSBpc3QgRmlua2VuLCB1bmQgRHUgd2lyc3QgZ2xlaWNoIGhpbmtlbi4KCk1hcmlvIEJhc2xlcjogSWNoIGxlcm5lIG5pY2h0IGV4dHJhIGZyYW56b2VzaXNjaCBmdWVyIGRpZSBTcGllbGVyLCB3byBkaWVzZQpTcHJhY2hlIG5pY2h0IG1hZWNodGlnIHNpbmQuCgpJbmdvIEFuZGVyYnJ1ZWdnZTogRGFzIFRvciBnZWhvZXJ0IHp1IDcwIFByb3plbnQgbWlyIHVuZCB6dSA0MCBQcm96ZW50IGRlbQpXaWxtb3RzLgoKTWFydGluIFBpZWNrZW5oYWdlbjogV2lyIG11ZXNzZW4gamV0enQgZW5kbGljaCBkZW4gQXJzY2ggaG9jaGtyaWVnZW4gdW5kIEVpZXIKemVpZ2VuLgoKVGhvbWFzIEhhZXNzbGVyOiBJbiBkZXIgU2NodWxlIGdhYidzIGZ1ZXIgbWljaCBIb2VoZW4gdW5kIFRpZWZlbi4gRGllIEhvZWhlbgp3YXJlbiBkZXIgRnVzc2JhbGwuCgpSdWRpIFZvZWxsZXI6IFp1IDUwIFByb3plbnQgc3RlaGVuIHdpciBpbSBWaWVydGVsZmluYWxlLCBhYmVyIGRpZSBoYWxiZSBNaWV0ZQppc3QgZGFzIG5vY2ggbmljaHQhCgpBbnRob255IEJhZmZvZSAobmFjaCBnZWxiZXIgS2FydGUgenVtIFNjaGllZHNyaWNodGVyKTogTWFubiwgd2lyIFNjaHdhdHRlbgptdWVzc2VuIGRvY2ggenVzYW1tZW5oYWx0ZW4hCgpSb25hbGQgTWF1bDogV2lyIHN0YW5kZW4gc2Nob24gdm9yIGRlciBUb2lsZXR0ZSB1bmQgaGFiZW4gdW5zIGRvY2ggbm9jaCBpbiBkaWUKSG9zZSBnZW1hY2h0LgoKVG9uaSBQb2xzdGVyICh1ZWJlciBzZWluIHZlcmJlc3NlcnRlcyBWZXJoYWVsdG5pcyB6dSBUcmFpbmVyIFBldGVyIE5ldXJ1cmVyKToKV2lyIGxhc3NlbiB1bnMgYmVpZGUgdm9uIHVuc2VyZW4gRnJhdWVuIHNjaGVpZGVuIHVuZCB6aWVoZW4genVzYW1tZW4uCgpHdWVudGVyIE5ldHplcjogV3VuZGVyc2Nob2VuLCBtaXQgZGVtIEF1c3NlbnNwYW5uLCB0ZWlsd2Vpc2UgbWl0IGRlbQpWb2xsc3Bhbm4uCgpKdWVyZ2VuIFdlZ21hbm46IFp1ZXJzdCBoYXR0ZW4gd2lyIGtlaW4gR2x1ZWNrLCB1bmQgZGFubiBrYW0gYXVjaCBub2NoIFBlY2gKZGF6dS4KCk1hcmNlbCBSZWlmOiBTb2xsdGVuIHNpZSBkaWVzZXMgU3BpZWwgYmlzbGFuZyBhdGVtYmVyYXViZW5kIGZpbmRlbiwgZGFubiBoYWJlbgpzaWUgZXMgYW4gZGVuIEJyb25jaGllbi4KCkFudGhvbnkgWWVib2FoIChhdWYgZGllIEZlc3RzdGVsbHVuZywgZXIgd29obmUgIndpZSBlaW4gZGV1dHNjaGVyCk11c3RlcmJ1ZXJnZXIiKTogU29sbCBpY2ggZXR3YSBlaW4gTGFnZXJmZXVlciBpbSBXb2huemltbWVyIG1hY2hlbj8KCkphbi1BYWdlIEZqb2VydG9mdDogRGVyIFRyYWluZXIgaGF0dGUgbmFjaCBkZW4gZ2FuemVuIEF1c2ZhZWxsZW4gaW0gQW5ncmlmZgpudXIgbm9jaCBkaWUgV2FobCB6d2lzY2hlbiBtaXIgdW5kIGRlbSBCdXNmYWhyZXIuIERhIGRlciBCdXNmYWhyZXIgc2VpbmUKU2NodWhlIG5pY2h0IGRhYmVpIGhhdHRlLCBoYWJlIGljaCBnZXNwaWVsdC4KCkZyaXR6IFdhbHRlcjogRGllIFNhbml0YWV0ZXIgaGFiZW4gbWlyIHNvZm9ydCBlaW5lIEludmFzaW9uIGdlbGVndC4KCkhhbnMgTWV5ZXI6IEtlaW5lciBsaWVidCBtaWNoLCBkYSBrb2VubmVuIHNpZSBtZWluZSBGcmF1IEZyYWdlbi4KCkplbnMgSmVyZW1pZXM6IERhcyBpc3QgU2NobmVlIHZvbiBtb3JnZW4uCgpBbmRyZWFzIE1vZWxsZXI6IE1laW4gUHJvYmxlbSBpc3QsIGRhc3MgaWNoIGltbWVyIHNlaHIgc2VsYnN0a3JpdGlzY2ggYmluLAphdWNoIG1pciBzZWxic3QgZ2VnZW51ZWJlci4KCkZyaXR6IFdhbHRlcjogRGVyIEp1ZXJnZW4gS2xpbnNtYW5uIHVuZCBpY2gsIHdpciBzaW5kIGVpbiBndXRlcyBUcmlvLiBJY2gKbWVpbmU6IGVpbiBRdWFydGV0dC4KCkFuZHJlYXMgTW9lbGxlcjogTWFpbGFuZCBvZGVyIE1hZHJpZCAtIEhhdXB0c2FjaGUgSXRhbGllbiEKClJhbGYgUmFuZ25pY2s6IEVzIGtvZW5udGUgamEgQXVhIG1hY2hlbiwgZXMga29lbm50ZSBqYSBlaW5lciBtaXQgV2F0dGUgd2VyZmVuLgpXZW5uIGVyIEFuZ3N0IGhhdCwgc29sbCBlciBzaWNoIGhpbnRlciBkaWUgTWF1ZXIgc3RlbGxlbi4KClBhdWwgQnJlaXRuZXI6IERhIGthbSBkYW5uIGRhcyBFbGZtZXRlcnNjaGllc3Nlbi4gV2lyIGhhdHRlbiBhbGxlIGRpZSBIb3Nlbgp2b2xsLCBhYmVyIGJlaSBtaXIgbGllZnMgZ2FueiBmbHVlc3NpZy4KCkphbi1BYWdlIEZqb2VydG9mdDogT2IgRmVsaXggTWFnYXRoIGRpZSBUaXRhbmljIGdlcmV0dGV0IGhhZXR0ZSwgd2Vpc3MgaWNoCm5pY2h0LiBBYmVyIGRpZSBVRWJlcmxlYmVuZGVuIHdhZXJlbiB0b3BmaXQgZ2V3ZXNlbi4KClNlYW4gRHVuZGVlOiBJY2ggYmxlaWJlIGF1ZiBqZWRlbiBGYWxsIHdhaHJzY2hlaW5saWNoIGJlaW0gS1NDLgoKUm9sYW5kIFdvaGxmYXJ0aDogWndlaSBDaGFuY2VuLCBlaW4gVG9yIC0gZGFzIG5lbm5lIGljaCBodW5kZXJ0cHJvemVudGlnZQpDaGFuY2VuYXVzd2VydHVuZy4KCkFudGhvbnkgQmFmZm9lIHp1IGVpbmVtIHdlaXNzZW4gR2VnZW5zcGllbGVyOiBEdSBrYW5uc3QgYXVmIG1laW5lciBQbGFudGFnZQphcmJlaXRlbi4KClRob21hcyBIYWVzc2xlcjogSWNoIGJpbiBrb2VycGVybGljaCB1bmQgcGh5c2lzY2ggdG9wZml0LgoKT2xhZiBUaG9uOiBNYW4gaGV0enQgZGllIExldXRlIGF1ZiBtaXQgVGF0c2FjaGVuLCBkaWUgbmljaHQgZGVyIFdhaHJoZWl0CmVudHNwcmVjaGVuLgoKQmVybmQgS3JhdXNzOiBTbyBncm9zc2UgU2NodWhlIGdpYnQgZXMgZG9jaCBnYXIgbmljaHQsIHVtIGRhbWl0IGFsbGUgQnJhZW5kZQphdXN6dXRyZXRlbi4KCk1hcmtvIFJlaG1lcjogV2lyIHNpbmQgaGllcmhlciBnZWZhaHJlbiB1bmQgaGFiZW4gZ2VzYWd0OiBPa2F5LCB3ZW5uIHdpcgp2ZXJsaWVyZW4sIGZhaHJlbiB3aXIgd2llZGVyIG5hY2ggSGF1c2UuCgpMdWR3aWcgIldpZ2dlcmwiIEtvZWdsOiBFbnR3ZWRlciBpY2ggZ2VoZSBsaW5rcyB2b3JiZWksIG9kZXIgaWNoIGdlaGUgcmVjaHRzCnZvcmJlaS4KCkxvdGhhciBNYXR0aGFldXM6IFdpciBkdWVyZmVuIGpldHp0IG51ciBuaWNodCBkZW4gU2FuZCBpbiBkZW4gS29wZiBzdGVja2VuIQoKQW5kcmVhcyBNb2VsbGVyOiBJY2ggaGF0dGUgdm9tIEZlZWxpbmcgaGVyIGVpbiBndXRlcyBHZWZ1ZWhsLgoKSG9yc3QgU3p5bWFuaWFrOiBFaW4gRHJpdHRlbCBtZWhyIEdlbGQ/IE5lZSwgaWNoIHdpbGwgbWluZGVzdGVucyBlaW4gVmllcnRlbC4KCk9sYWYgVGhvbjogSWNoIGhhYmUgaWhuIG51ciBnYW56IGxlaWNodCByZXR1c2NoaWVydC4KClRob21hcyBIYWVzc2xlcjogV2lyIHdvbGx0ZW4gaW4gQnJlbWVuIGtlaW4gR2VnZW50b3Iga2Fzc2llcmVuLiBEYXMgaGF0IGF1Y2gKYmlzIHp1bSBHZWdlbnRvciBnYW56IGd1dCBnZWtsYXBwdC4KCldlcm5lciBMb3JhbnQgKHVlYmVyIHNlaW4gQnVjaCAiRWluZSBiZWluaGFydGUgU3RvcnkiKTogVmllbGVzIHdhcyBkYXJpbgpnZXNjaHJpZWJlbiB3dXJkZSwgaXN0IGF1Y2ggd2Foci4KCkJlcnRpIFZvZ3RzOiBXZW5uIGljaCB1ZWJlcnMgV2Fzc2VyIGxhdWZlLCBkYW5uIHNhZ2VuIG1laW5lIEtyaXRpa2VyOiBVbmQKc2Nod2ltbWVuIGthbm4gZXIgYXVjaCBuaWNodC4KCkZyYW56IEJlY2tlbmJhdWVyOiBJY2ggYmluIGltbWVyIG5vY2ggYW0gdWViZXJsZWdlbiwgd2VsY2hlIFNwb3J0YXJ0IG1laW5lCk1hbm5zY2hhZnQgYW4gZGllc2VtIEFiZW5kIGF1c2dldWVidCBoYXQuIEZ1c3NiYWxsIHdhciBkYXMgamVkZW5mYWxscyBtaXQKU2ljaGVyaGVpdCBuaWNodC4KCkJlcnRpIFZvZ3RzOiBTZXggdm9yIGVpbmVtIFNwaWVsPyBEYXMga29lbm5lbiBtZWluZSBKdW5ncyBoYWx0ZW4sIHdpZSBzaWUKd29sbGVuLiBOdXIgaW4gZGVyIEhhbGJ6ZWl0LCBkYSBnZWh0IG5pY2h0cy4KCk1hbmZyZWQgS3JhZmZ0OiBNZWluZSBNYW5uc2NoYWZ0IGlzdCAxNS0gb2RlciAxNm1hbCBpbnMgQWJzZWl0cyBnZXJhbm50LiBEYXMKaGFiZW4gd2lyIGF1Y2ggZGllIGdhbnplIFdvY2hlIGdldWVidC4KClJhaW5lciBCb25ob2YgKGF1ZiBkaWUgRnJhZ2UsIHdpZSBlciBkaWUgdmVybGV0enRlbiBTcGllbGVyIHp1IGVyc2V0emVuCmdlZGVua2UpOiBTeWx2ZXN0ZXIgU3RhbGxvCm5lIHVuZCBBcm5vbGQgU2Nod2FyemVuZWdnZXIgaW4gZGVyIEFid2VociwgQnJ1Y2UgV2lsbGlzIGltIE1pdHRlbGZlbGQgdW5kCkplYW4gQ2xhdWRlIHZhbiBEYW1tZSBpbSBTdHVybS4KCkZyaWVkZWwgUmF1c2NoOiBIZXV0ZSB3YXIgaGludGVuIG5pY2h0cywgaW4gZGVyIE1pdHRlIG5pY2h0cyB1bmQgdm9ybmUgbmljaHRzLgoKUm9sZiBSdWVzc21hbm46IFdlbm4gd2lyIGhpZXIgbmljaHQgZ2V3aW5uZW4sIGRhbm4gdHJldGVuIHdpciBpaG5lbiB3ZW5pZ3N0ZW5zCmRlbiBSYXNlbiBrYXB1dHQuCgpGcmllZGVsIFJhdXNjaDogV2VubiBpY2ggZGVuIE1hcnRpbiBTY2huZWlkZXIgd2VpdGVyIGF1ZnN0ZWxsZSwgZ2xhdWJlbiBkaWUKTGV1dGUgYW0gRW5kZSB3aXJrbGljaCBub2NoLCBpY2ggc2VpIHNjaHd1bC4KCkthcmwtSGVpbnogS29lcmJlbCAoYWxzIFRyYWluZXIgdm9uIEVpbnRyYWNodCBGcmFua2Z1cnQpOiBEZW4gZ3JvZXNzdGVuCkZlaGxlciwgZGVuIHdpciBqZXR6dCBtYWNoZW4ga29lbm50ZW4sIHdhZXJlLCBkaWUgU2NodWxkIGJlaW0gVHJhaW5lciB6dQpzdWNoZW4uCgpNZWhtZXQgU2Nob2xsOiBJY2ggd2VyZGUgbmllIEdvbGYgc3BpZWxlbi4gRXJzdGVucyBpc3QgZGFzIGZ1ZXIgbWljaCBrZWluClNwb3J0LCB1bmQgendlaXRlbnMgaGFiZSBpY2ggbm9jaCByZWdlbG1hZXNzaWcgU2V4CgpGcml0eiBMYW5nbmVyOiBJaHIgRnVlbmYgc3BpZWx0IGpldHp0IHZpZXIgZ2VnZW4gZHJlaS4KCkJlcnRpIFZvZ3RzOiBJY2ggZ2xhdWJlLCBkYXNzIGRlciBUYWJlbGxlbmVyc3RlIGplZGVyemVpdCBkZW4gU3BpdHplbnJlaXRlcgpzY2hsYWdlbiBrYW5uLgoKTWF4IE1lcmtlbDogSW0gVHJhaW5pbmcgaGFiZSBpY2ggbWFsIGRpZSBBbGtvaG9saWtlciBtZWluZXIgTWFubnNjaGFmdCBnZWdlbgpkaWUgQW50aS1BbGtvaG9saWtlciBzcGllbGVuIGxhc3Nlbi4gRGllIEFsa29ob2xpa2VyIGdld2FubmVuIDc6MS4gRGEgd2FycyBtaXIKd3Vyc2NodC4gRGEgaGFiIGkgZydzYWd0OiBTYXVmdHMgd2VpdGVyLgoKVm9sa2VyIFJvdGg6IERpZSBiZWduYWRldGVuIFNjaGF1c3BpZWxlciB1ZWJlcndpZWdlbiBsYWVuZ3N0IGRpZSBiZWduYWRldGVuCkZ1c3NiYWxsZXIuCgpFZGdhciBHZWVuZW46IEJlaSB1bnMgaW4gZGVyIEthYmluZSBnaWJ0IGVzIG51ciB6d2VpIFRoZW1lbjogRGFzIGVpbmUgaXN0CkdlbGQsIGRhcyBhbmRlcmUgaGF0IGxhbmdlIEhhYXJlLgoKCgpCYW1idWxrbwoKUC5TLjogRWlnZW50bGljaCBmZWhsdCBub2NodCBCcnVubyBMYWJiYWRpYSBtaXQgc2VpbmVtICIuLmRhcyB3aXJkCmhvY2hzdGVyaWxpc2llcnQuLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnVzc2JhbGxlciA6LSkgKE1hbmRyYWdvbiwgMzEuIEp1bCAyMDAzLCAxMTo1MToxMyk6Cn4jISBybj1CYW1idWxrbyBydD0xMDU5NjQ1MDMxIHJnPXdpdHplCn4jISB0aWQ9MTA1OTY0NTAzMQpEYSBmZWhsdCBkZXIgQ29weXJpZ2h0LVZlcndlaXMgYXVmIHNwaWVnZWwgb25saW5lIC4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnVzc2JhbGxlciA6LSkgKFNjaG9rbywgMzEuIEp1bCAyMDAzLCAxMTo1NTo0Myk6Cn4jISBybj1CYW1idWxrbyBydD0xMDU5NjQ1MDMxIHJnPXdpdHplCn4jISB0aWQ9MTA1OTY0NTAzMQpBdXNzZXJkZW0gd2FyIGRlciAiRWdhbCBvYiBNYWRyaWQgb2RlciBNYWlsYW5kIC4uLiIgdm9uIExvZGRhciB1bmQgbmV0IHZvbgpBbmRyZWEgSGV1bHN1c2UgTW9lbGxlciwgc293ZWl0IGljaCB3ZWlzcyA6KQoKClNjaG9rbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVFYgdnMuIFdhc2NobWFzY2hpbmUgKEdyaW1tYm9ybiwgIDQuIEF1ZyAyMDAzLCAxNjo0NDoyNik6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVyIFdhc2NobWFzY2hpbmUgdW5kIGVpbmVtIEZlcm5zZWhlcj8gCi0gRGVyIEZlcm5zZWhlciBoYXQgbWVociBQcm9ncmFtbWUsIGFiZXIgZGllIGRlciBXYXNjaG1hc2NoaW5lIHNpbmQgYmVzc2VyISAKCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRWIHZzLiBXYXNjaG1hc2NoaW5lIChBbnRoZWEsICA0LiBBdWcgMjAwMywgMTY6NDU6MDUpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEwNjAwMDgyNjYgcmc9d2l0emUKfiMhIHRpZD0xMDYwMDA4MjY2CkRhcyBpc3QgamEgc2Nob24gZmFzdCBhdWYgZGVtIE5pdmVhdSB3aWU6CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIEFkbGVyPwoKQmVpZGUgRmx1ZWdlbCBzaW5kIGdsZWljaCBsYW5nLCBiZXNvbmRlcnMgZGVyIGxpbmtlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBUViB2cy4gV2FzY2htYXNjaGluZSAoTWFuZHJhZ29uLCAgNC4gQXVnIDIwMDMsIDE2OjQ3OjAxKToKfiMhIHJuPUFudGhlYSBydD0xMDYwMDA4MzA1IHJnPXdpdHplCn4jISB0aWQ9MTA2MDAwODI2NgoKb2RlciAnV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gZWluZW0gS3Jva29kaWw/JwoKJ0plIGxhZW5nZXIsIGRlc3RvIGJlaXNzdCEnCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJla3RhbC1UaGVybW9tZXRlciAoTm9ubmUsICA4LiBBdWcgMjAwMywgMDk6MjA6MDMpOgpXaGVuIHlvdSd2ZSBoYWQgYW4gIkkgaGF0ZSBteSBqb2IiIGRheSB0cnkgdGhpczoKCk9uIHlvdXIgd2F5IGhvbWUgZnJvbSB3b3JrLCBzdG9wIGF0IHlvdXIgcGhhcm1hY3kgYW5kIGdvIHRvIHRoZSB0aGVybW9tZXRlciAgIApzZWN0aW9uLiBZb3Ugd2lsbCBuZWVkIHRvIHB1cmNoYXNlIGEgcmVjdGFsIHRoZXJtb21ldGVyIG1hZGUgYnkgIkpvaG5zb24gYW5kICAKSm9obnNvbi4iIEJlIHZlcnkgc3VyZSB5b3UgZ2V0IHRoaXMgYnJhbmQuIFdoZW4geW91IGdldCBob21lLCBsb2NrIHlvdXIgICAgICAgCmRvb3JzLCBkcmF3IHRoZSBkcmFwZXMsIGFuZCBkaXNjb25uZWN0IHRoZSBwaG9uZSBzbyB5b3Ugd2lsbCBub3QgYmUgZGlzdHVyYmVkIApkdXJpbmcgeW91ciB0aGVyYXB5LiBDaGFuZ2UgdG8gdmVyeSBjb21mb3J0YWJsZSBjbG90aGluZywgc3VjaCBhcyBhIHN3ZWF0ICAgICAKc3VpdCBhbmQgbGllIGRvd24gb24geW91ciBiZWQuIE9wZW4gdGhlIHBhY2thZ2UgYW5kIHJlbW92ZSB0aGUgdGhlcm1vbWV0ZXIuICAgCkNhcmVmdWxseSBwbGFjZSBpdCBvbiB0aGUgYmVkc2lkZSB0YWJsZSBzbyB0aGF0IGl0IHdpbGwgbm90IGJlY29tZSBjaGlwcGVkICAgIApvciBicm9rZW4uIFRha2Ugb3V0IHRoZSBtYXRlcmlhbCB0aGF0IGNvbWVzIHdpdGggdGhlIHRoZXJtb21ldGVyIGFuZCByZWFkIGl0LgoKWW91IHdpbGwgbm90aWNlIHRoYXQgaW4gc21hbGwgcHJpbnQgdGhlcmUgaXMgYSBzdGF0ZW1lbnQ6ICJFdmVyeSByZWN0YWwgICAgICAgCnRoZXJtb21ldGVyIG1hZGUgYnkgSm9obnNvbiBhbmQgSm9obnNvbiBpcyBwZXJzb25hbGx5IHRlc3RlZCIuCgpOb3cgY2xvc2UgeW91ciBleWVzIGFuZCByZXBlYXQgb3V0IGxvdWQgZml2ZSB0aW1lczogIkkgYW0gc28gZ2xhZCBJIGRvIG5vdCAgICAKd29yayBmb3IgcXVhbGl0eSBjb250cm9sIGF0IHRoZSBKb2huc29uIGFuZCBKb2huc29uIENvbXBhbnkuIgoKSGF2ZSBhIG5pY2UgZGF5IGZvbGtzIGFuZCByZW1lbWJlciwgdGhlcmUgaXMgYWx3YXlzIHNvbWVvbmUgd2l0aCBhIHdvcnNlCmpvYiB0aGFuIHlvdXJzLgoKTm9ubmUsIHNpY2gga3JpbmdlbG5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJla3RhbC1UaGVybW9tZXRlciAoVGVycnksICA4LiBBdWcgMjAwMywgMTE6MTU6MzYpOgp+IyEgcm49Tm9ubmUgcnQ9MTA2MDMyNzIwMyByZz13aXR6ZQp+IyEgdGlkPTEwNjAzMjcyMDMKV2FzIG1hY2h0IGRlciBNZW5zY2ggZGVyIGJlaSAiSm9obnNlbiBhbmQgSm9obnNlbiIgYXJiZWl0ZXQuCgpUZXJyeSBncmluc3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJla3RhbC1UaGVybW9tZXRlciAoWm9vaywgIDguIEF1ZyAyMDAzLCAxMToxNzoxNSk6Cn4jISBybj1UZXJyeSBydD0xMDYwMzM0MTM2IHJnPXdpdHplCn4jISB0aWQ9MTA2MDMyNzIwMwpab29rIHdpbmt0IG1pdCBzZWluZW0gRmFlaG5jaGVuLgosCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJla3RhbC1UaGVybW9tZXRlciAoTXVhZGliLCAgOC4gQXVnIDIwMDMsIDIxOjAyOjEwKToKfiMhIHJuPVRlcnJ5IHJ0PTEwNjAzMzQxMzYgcmc9d2l0emUKfiMhIHRpZD0xMDYwMzI3MjAzCmVyIGZyZXV0IHNpY2ggZGFzcyBqb2huc2VuIGFuZCBqb2huc2VuIGtlaW5lIHRhbXBvbnMgaGVyc3RlbGxlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW4gUG9sYWVuIHdpciBoYWJlbiBuaWNoIGFsbGUgQXV0byAoR2FuZG8sIDIwLiBBdWcgMjAwMywgMTE6MjE6MTUpOgoKRWluIE9zc2ksIGVpbiBXZXNzaSwgZWluIFBvbGUgdW5kIGVpbiBUdWVya2UgcmV0dGVuIGVpbmUgRmVlIHVuZCBoYWJlbgpqZWRlciBudXIgZWluZW4gV3Vuc2NoIGZyZWkuCkRlciBQb2xlOiAiSW4gUG9sYWVuIHdpciBoYWJlbiBuaWNoIGFsbGUgQXV0by4gSWNoIHdvbGxlbiwgZGFzIGFsZQpQb2xlbiBoYWJlbiBlaW5lIE1lcmNhZWRhZXMuIiBEaWUgRmVlIHNjaG5pcHB0IG1pdCBkZW4gRmluZ2VybiB1bmQgYWxsZQpQb2xlbiBoYWJlbiBlaW5lbiBNZXJjZWRlcy4KRGVyIE9zc2k6ICIgU2VpZCBkb3IgV2FlbmRlIGdlaHQncyB1bnMgaW1tZXIgc2NobGVzY2h0ZXIuIFZpZWxlIGhvYmVuCmtlbmUgQWJlaXQsIGFsbGVzIHdpcmQgZGV1cmVyIHVuZCBkZSBXZXNzaXMgZ2VibiB1bnMgbnVlciA4NHNjaCBQcm96ZW5kLgpGcnVlaGVyIHdvciBhbGxlcyBiZXNzZXIhIEljaCB3aWxsLCBkYXNzIGRlIGhlaWxpc2NoZSBNYXVlcgp3aWRlciBhdWZqZWJhdXQgd2lyZCB1bmQgZGVyIEVyaXNjaCB3aWRkZXIgbGViZW4gdHV0LiIKRGllIEZlZSBzY2huaXBwdCBtaXQgZGVuIEZpbmdlcm4gdW5kIGRpZSBNYXVlciBzdGVodCB3aWVkZXIgdW5kIGltIE9zdGVuCmlzdCB3aWVkZXIgU296aWFsaXNtdXMuCkRlciBUdWVya2U6ICJFeSwgaXNjaCBiaW4gZGUga3Jhc3NlIE1laG1ldC4gSXNjaCB3dWVuc2NoIG1pciBmdWVyIGplZGUKVHVlcmtlbiBvYmVya3Jhc3NlIEhhcmVtIG1pdCAxLjAwMCBrb3JyZWt0Z2VpbGUgRnJhdWVuIG1pdCByaXNjaHRpZwpkaWNrZSBEaW5nZXIuIEV5Li4udW5kIHNvbGxuIGtvY2hlIGtvZW5uZSEiCkRpZSBGZWUgc2NobmlwcHQgdW5kIGFsbGUgVHVlcmtlbiBzaW5kIHN0b2x6ZSBCZXNpdHplciBlaW5lcyBIYXJlbXMuCkRhbm4gaXN0IGRlciBXZXNzaSBhbiBkZXIgUmVpaGUuIEVyIGdydWViZWx0IGVpbmVuIEF1Z2VuYmxpY2sgdW5kIG1laW50CmRhbm46ICJBbHNvLCBkaWUgUG9sZW4ga2xhdWVuIHVuc3JlIEF1dG9zIG5pY2h0IG1laHIsIGRpZSBUdWVya2VuIGxhc3Nlbgp1bnNyZSBGcmF1ZW4gaW4gRnJpZWRlbiwgZGllIE1hdWVyIHN0ZWh0IHdpZWRlciAuLi4uIGljaCBuZWhtIGVpbmVuCkNhcHVjY2lubyEiCgoKR2FuZG8gZ3JpbnN0IHVuZCBob2x0IHNpY2ggbmVuIENhcHB1Y2lubwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFlbm5lciB1bmQgRnJhdWVuIChmdWVyIEplbmFuZHJhIDspIChOb25uZSwgIDYuIFNlcCAyMDAzLCAwODoxMTozMSk6Cn4jISBybj1Ob25uZSBydD0xMDYyODI4MDY2IHJnPXdpdHplCn4jISB0aWQ9MTA2Mjc5MzgwMQpEZXJqZW5pZ2UsIGRlciBkYXMgZ2VzY2hyaWViZW4gaGF0LCBrZW5udCBuaWNodCBzbyB2aWVsZSBGcmF1ZW4sIG9kZXI/CgpOb25uZSwgdG9ldGV0IGtlaW5lIFNwaW5uZW4gdW5kIGhhdCBlaW5lbiByYW1wb25pZXJ0ZW4gUnVlY2tlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhc2gub3JnIChDYXR3ZWF6bGUsICA4LiBTZXAgMjAwMywgMTQ6NTA6MjYpOgpEYSBzaW5kIHRhdHNhZWNobGljaCBkaXZlcnNlIGdyb3NzYXJ0aWdlIEJydWVsbGVyIGRyaW4uIEUuZy46CgojNjQ4MyArKDY2KS0gW1hdCjxkal9haz4gaSBqdXN0IHBvcHBlZCBhIHppdCBvbiBteSBzaG91bGRlcgo8ZGpfYWs+IGFuZCBpdCBoaXQgbWUgaW4gdGhlIGV5ZQo8ZGpfYWs+IHRoZW4gaSBsaWNrZWQgbXkgZXllCjxzcGxpZnM+IHdvbWVuIG11c3QgbG92ZSB5b3UKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJhc2gub3JnIChGb29iYXIsICA4LiBTZXAgMjAwMywgMTQ6NTI6MjIpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTEwNjMwMjU0MjYgcmc9d2l0emUKfiMhIHRpZD0xMDYzMDI1NDI2Ck1pciBnZWZpZWwgZGVyIGhpZXIgYW0gYmVzdGVuOgoKPEJlZXRoPiBHaXJscyBhcmUgbGlrZSBpbnRlcm5ldCBkb21haW4gbmFtZXMsIHRoZSBvbmVzIEkgbGlrZSBhcmUgYWxyZWFkeQp0YWtlbi4KPGhvbng+IHdlbGwsIHlvdSBjYW4gc3RpbCBnZXQgb25lIGZyb20gYSBzdHJhbmdlIGNvdW50cnkgOi1QCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdXNoLUtvbnZlcnNhdGlvbiAoQW50aGVhLCAgOS4gU2VwIDIwMDMsIDE3OjEzOjI5KToKR2VvcmdlOiBDb25kaSEgTmljZSB0byBzZWUgeW91LiBXaGF0J3MgaGFwcGVuaW5nPwoKQ29uZGk6IFNpciwgSSBoYXZlIHRoZSByZXBvcnQgaGVyZSBhYm91dCB0aGUgbmV3IGxlYWRlciBvZiBDaGluYS4KCkdlb3JnZTogR3JlYXQuIExheSBpdCBvbiBtZS4KCkNvbmRpOiBIdSBpcyB0aGUgbmV3IGxlYWRlciBvZiBDaGluYS4KCkdlb3JnZTogVGhhdCdzIHdoYXQgSSB3YW50IHRvIGtub3cuCgpDb25kaTogVGhhdCdzIHdoYXQgSSdtIHRlbGxpbmcgeW91LgoKR2VvcmdlOiBUaGF0J3Mgd2hhdCBJJ20gYXNraW5nIHlvdS4gV2hvIGlzIHRoZSBuZXcgbGVhZGVyIG9mIENoaW5hPwoKQ29uZGk6IFllcy4KCkdlb3JnZTogSSBtZWFuIHRoZSBmZWxsb3cncyBuYW1lLgoKQ29uZGk6IEh1LgoKR2VvcmdlOiBUaGUgZ3V5IGluIENoaW5hLgoKQ29uZGk6IEh1LgoKR2VvcmdlOiBUaGUgbmV3IGxlYWRlciBvZiBDaGluYS4KCkNvbmRpOiBIdS4KCkdlb3JnZTogVGhlIENoaW5hbWFuIQoKQ29uZGk6IEh1IGlzIGxlYWRpbmcgQ2hpbmEuCgpHZW9yZ2U6IE5vdyB3aGFkZHlhJyBhc2tpbmcgbWUgZm9yPwoKQ29uZGk6IEknbSB0ZWxsaW5nIHlvdSBIdSBpcyBsZWFkaW5nIENoaW5hLgoKR2VvcmdlOiBXZWxsLCBJJ20gYXNraW5nIHlvdS4gV2hvIGlzIGxlYWRpbmcgQ2hpbmE/CgpDb25kaTogVGhhdCdzIHRoZSBtYW4ncyBuYW1lLgoKR2VvcmdlOiBUaGF0J3Mgd2hvJ3MgbmFtZT8KCkNvbmRpOiBZZXMuCgpHZW9yZ2U6IFdpbGwgeW91IG9yIHdpbGwgeW91IG5vdCB0ZWxsIG1lIHRoZSBuYW1lIG9mIHRoZSBuZXcgbGVhZGVyIApvZiBDaGluYT8KCkNvbmRpOiBZZXMsIHNpci4KCkdlb3JnZTogWWFzc2lyPyBZYXNzaXIgQXJhZmF0IGlzIGluIENoaW5hPyBJIHRob3VnaHQgaGUgd2FzIGluIHRoZSBNaWRkbGUKRWFzdC4KCkNvbmRpOiBUaGF0J3MgY29ycmVjdC4KCkdlb3JnZTogVGhlbiB3aG8gaXMgaW4gQ2hpbmE/CgpDb25kaTogWWVzLCBzaXIuCgpHZW9yZ2U6IFlhc3NpciBpcyBpbiBDaGluYT8KCkNvbmRpOiBObywgc2lyLgoKR2VvcmdlOiBUaGVuIHdobyBpcz8KCkNvbmRpOiBZZXMsIHNpci4KCkdlb3JnZTogWWFzc2lyPwoKQ29uZGk6IE5vLCBzaXIuCgpHZW9yZ2U6IExvb2ssIENvbmRpLiBJIG5lZWQgdG8ga25vdyB0aGUgbmFtZSBvZiB0aGUgbmV3IGxlYWRlciBvZiAKQ2hpbmEuIEdldCBtZSB0aGUgU2VjcmV0YXJ5IEdlbmVyYWwgb2YgdGhlIFUuTi4gb24gdGhlIHBob25lLgoKQ29uZGk6IEtvZmk/CgpHZW9yZ2U6IE5vLCB0aGFua3MuCgpDb25kaTogWW91IHdhbnQgS29maT8KCkdlb3JnZTogTm8uCgpDb25kaTogWW91IGRvbid0IHdhbnQgS29maS4KCkdlb3JnZTogTm8uIEJ1dCBub3cgdGhhdCB5b3UgbWVudGlvbiBpdCwgSSBjb3VsZCB1c2UgYSBnbGFzcyBvZiBtaWxrLiAKQW5kIHRoZW4gZ2V0IG1lIHRoZSBVLk4uCgpDb25kaTogWWVzLCBzaXIuCgpHZW9yZ2U6IE5vdCBZYXNzaXIhIFRoZSBndXkgYXQgdGhlIFUuTi4KCkNvbmRpOiBLb2ZpPwoKR2VvcmdlOiBNaWxrISBXaWxsIHlvdSBwbGVhc2UgbWFrZSB0aGUgY2FsbD8KCkNvbmRpOiBBbmQgY2FsbCB3aG8/CgpHZW9yZ2U6IFdobyBpcyB0aGUgZ3V5IGF0IHRoZSBVLk4/CgpDb25kaTogSHUgaXMgdGhlIGd1eSBpbiBDaGluYS4KCkdlb3JnZTogV2lsbCB5b3Ugc3RheSBvdXQgb2YgQ2hpbmE/IQoKQ29uZGk6IFllcywgc2lyLgoKR2VvcmdlOiBBbmQgc3RheSBvdXQgb2YgdGhlIE1pZGRsZSBFYXN0ISBKdXN0IGdldCBtZSB0aGUgZ3V5IGF0IHRoZSAKVS5OLgoKQ29uZGk6IEtvZmkuCgpHZW9yZ2U6IEFsbCByaWdodCEgV2l0aCBjcmVhbSBhbmQgdHdvIHN1Z2Fycy4gTm93IGdldCBvbiB0aGUgcGhvbmUuCgooQ29uZGkgcGlja3MgdXAgdGhlIHBob25lLikKClNvdXJjZTogSmFtZXMgU2hlcm1hbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVjaHRzY2hyZWlicmVmb3JtIChOb25uZSwgMTMuIFNlcCAyMDAzLCAxMToyMjo1Myk6ClJlZm9ybSBkZXIgZGV1dHNjaGVuIFJlY2h0c2NocmVpYnVuZwoKCjEuIFNjaHJpdHQ6IFdlZ2ZhbGwgZGVyIEdyb3Nzc2NocmVpYnVuZwoKZWluZXIgc29mb3J0aWdlbiBlaW5mdWVocnVuZyBzdGVodCBuaWNodHMgaW0gd2VnLCB6dW1hbCBzY2hvbiB2aWVsZQpmaXJtZW4genVyIGtsZWluc2NocmVpYnVuZyB1ZWJlcmdlZ2FuZ2VuIHNpbmQuCgoKMi4gc2Nocml0dDogd2VnZmFsbCBkZXIgZGVobnVuZ2VuIHVuZCB2ZXJzY2hhZXJmdW5nZW4KCmRpc2UgbWFzbmFtZSBlbGltaW5pcnQgc2Nob24gZGkgZ3JvZXN0ZSBmZWxlcnVyc2FjaGUgaW4gZGVyIHByaW1hZXJzY2h1bGUuCmRlbiBzaW4gdW5kIHVuc2luIHVuc2VyZXIgZGVudW5nZW4gdW5kIGRlciB2ZXJkb3BlbHVuZyB2b24ga29uc29uYW50ZW4KaGF0IG9uZWhpbiBuaW1hbmQga2FwaXJ0LgoKCjMuIHNjaHJpdDogdiB1bmQgcGggd2VyZGVuIGR1cmNoIGYgZXJzZXR6dDsgeiwgdHogdW5kIHNjaCB3ZXJkZW4gZHVyY2ggcwplcnNldHp0CgpkYXMgYWxmYWJldCB3aXJkIHVtIHN3ZWkgYnVjaHN0YWJlbiByZWR1c2lydC4gc3JlaWJtYXNpbmVuIHVuZApzZXNtYXNpbmVuIGZlcmVpbmZhY2hlbiBzaWNoLgoKCjQuIHNyaXQ6IHEsIGMgdW5kIGNoIHdlcmRlbiBkdXJjaCBrIGVyc2VzdDsgaiB1bmQgeSB3ZXJkZW4gZHVyY2ggaQplcnNlc3Q7CiAgICBwZiB3aXJkIGR1cmNoIGYgZXJzZXN0CgppZXN0IHNpbmQgc29uIHNla3MgYnVrc3RhYmVuIGF1c2dlc2FsdGV0LiBkaSBzdWxzZWl0IGthbiBzb2ZvcnQgZm9uIGFrdAphdWYgc3dlaSBpYXJlIGZlcmt1ZXJzdCB3ZXJkZW4uIGFuc3RhdCBha3NpayBwcm9zZW50IHNwcmFrdW50ZXJpa3Qga29lbmVuCm51ZXNsaWtlcmUgZmFla2VyIHdpIGZpc2lrLCBrZW1pIG9kZXIgcmVrbmVuIG1lciBnZWZsZWd0IHdlcmRlbi4KCgo1LiBzcml0OiB3ZWdmYWwgdm9uIGFlLCBvZSB1bmQgdWUsIHNvd2kgd2VnZmFsIGRlciBzZWlrZW5zZXN1bmcKCmFsZXMgdWJlcmZsdXNpZ2UgaXN0IGllc3QgYXVzZ2VtZXJzdCBkaWUgb3J0b2dyYWZpIHdpZWRlciBzbGlrdCB1bmQKZWluZmFrIG5hdHVybGlrIGJlbm90aWd0IGVzIGVpbmlnZSBzZWl0IGJpcyBkaXNlIGZlcmVpbmZha3VuZyB1YmVyYWwKcmlrdGlnIGZlcmRhdXQgaXN0IGZpbGVpa3Qgc2FzdW5nc3dlaXNlIGVpbiBiaXMgc3dlaSBpYXJlIGFuc2xpc2VuZApkdXJmdGUgYWxzIG5ha3N0ZXMgZGkgZmVyZWluZmFrdW5nIGRlciBub2sgc3dpcmlnZXJlbiB1bmQgdW5zaW5pZ2VyZW4KZ3JhbWF0aWsgYW5maXNpcnQgd2VyZGVuCgpOb25uZSwgaGF0IGZ1ZXIgZGVuIGxldHp0ZW4gU2F0eiBmYXN0IG5lIE1pbnV0ZSBnZWJyYXVjaHQgKGM7CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmVjaHRzY2hyZWlicmVmb3JtIChaYXJuaXlhLCAxNS4gU2VwIDIwMDMsIDEwOjQwOjA3KToKfiMhIHJuPU5vbm5lIHJ0PTEwNjM0NDQ5NzMgcmc9d2l0emUKfiMhIHRpZD0xMDYzNDQ0OTczCldvIHdpciBiZWkgS2xhc3Npa2VybiBzaW5kOgoKIEluIHRoZSBmaXJzdCB5ZWFyLCAncycgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIHNvZnQgJ2MnLgpTZXJ0YWlubHkgc2l2aWwgc2VydmFudHMgd2lsbCByZXNlaXZlIHRoaXMgbmV3cyB3aXRoIGpveS4gQWxzbywKdGhlIGhhcmQgJ2MnIHdpbGwgYmUgcmVwbGFzZWQgd2l0aCAnaycuIE5vdCBvbmx5IHdpbGwgdGhpcyBrbGVhcgp1cCBrb25mdXNpb24sIGJ1dCB0eXBlIHdyaXRlcnMga2FuIGhhdmUgb25lIGxlc3MgbGV0dGVyLgogVGhlcmUgd2lsbCBiZSBncm93aW5nIHB1YmxpayBlbnRodXNpYXNtIGluIHRoZSBzb2tvbmQgeWVhciwKd2hlbiB0aGUgdHJvdWJsZXNvbWUgJ3BoJyB3aWxsIGJlIHJlcGxhc2VkIGJ5ICdmJy4gVGhpcyB3aWxsCm1ha2Ugd29yZHMgbGlrZSAnZm90b2dyYWYnIDIwIHBlciBzZW50IHNob3J0ZXIuCiBJbiB0aGUgdGhpcmQgeWVhciwgcHVibGlrIGFrc2VwdGFuc2Ugb2YgdGhlIG5ldyBzcGVsbGluZyBrYW4KYmUgZXhvZWt0ZWQgdG8gcmVhY2ggdGhlIHN0YWdlIHdoZXJlIG1vcmUga29tcGxpa2F0ZWQgY2hhbmdlcwphcmUgcG9zc2libGUuIEdvdmVybm1lbnRzIHdpbGwgZW5rb3VyYWdlIHRoZSBybW92YWwgb2YgZG91YmxlCmxldHRlcnMsIHdoaWNoIGhhdmUgYWx3YXlzIGJlbiBhIGRldGVyZW50IHRvIGFrdXJhdGUgc3BlbGluZy4KQWxzbywgYWwgd2lsIGFncmUgdGhhdCB0aGUgaG9yaWJsZSBtZXMgb2Ygc2lsZW50ICdlJ3MgaW4gdGhlCmxhbmd1YWcgaXMgZGlzZ3Jhc2Z1bCwgYW5kIHRoZXkgd291bGQgZ28uCiBCeSB0aGUgZm91cnRoIHllYXIsIHBlb3BsIHdpbCBiZSByZXNlcHRpdiB0byBzdGVwcyBzdWNoIGFzCnJlcGxhc2luZyAndGgnIHdpdGggJ3onIGFuZCAndycgd2l6ICd2Jy4KIER1cmluZyB6ZSBmaWZ6IHllYXIsIHplIHVuZXNlc2FyeSAnbycga2FuIGJlIGRyb3BlZCBmcm9tCndvcmRzIGtvbnRhaW5pbmcgJ291JywgYW5kIHNpbWlsYXIgY2hhbmdlcyB2dWQgb2Yga29ycyBiZSBhcGxpZAp0byBvemVyIGtvbWJpbmF0aW9ucyBvZiBsZXRlcnMuCiBBZnRlciB6ZSBmaWZ6IHllciwgdmUgdmlsIGhhdiBhIHJlbGkgc2Vuc2libCByaXRlbiBzdHlsLiBaZXIgCnZpbCBiZSBubyBtb3IgdHJ1YmxzIG9yIGRpZmlrdWx0aXMgYW5kIGV2cml2dW4gdmlsIGZpbmQgaXQgZXppCnRvIHVuZGVyc3RhbmQgZWNoIG96ZXIuCiBaZSBkcmVtIHZpbCBmaW5hbGkga3VtIHRydS4KCk1hcmMKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplaW4gQmVybGluZXIgaW4gSmFwYW4gKEFsYm9pbiwgMTYuIFNlcCAyMDAzLCAxMzoyNTo1OCk6CkdlaHQgZWluIEJlcmxpbmVyIGluIEphcGFuIGluIGRlbiBCbHVtZW5sYWRlbi4gU2FndCBkaWUKVmVya2FldWZlcmluOiJJa2ViYW5hIi4gU2FndCBkZXIgQmVybGluZXI6Iklja2UgSGVsbXV0Ii4KCkFsIAood2VubiBkZXIgZXVjaCBuaWNodCBnZWZpZWwgZGFzIHBvc3RldCBnZWZhZWxsaWdzdCBiZXNzZXJlOy0pKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGVpbiBCZXJsaW5lciBpbiBKYXBhbiAoTm9ubmUsIDE2LiBTZXAgMjAwMywgMTQ6MTM6NTIpOgp+IyEgcm49QWxib2luIHJ0PTEwNjM3MTE1NTggcmc9d2l0emUKfiMhIHRpZD0xMDYzNzExNTU4CkRhcyBrYW5uIGljaCBzY2hsZWNodGVyOgoKR3Jvc3N2YXRlciB6dSBFbmtlbDogJ1dlciBzcGllbHQgZGVubiBoZXV0ZSBiZWkgZGVyIEVNPycKRW5rZWw6ICdPZXN0ZXJlaWNoIC0gVW5nYXJuLicKR3Jvc3N2YXRlcjogJ0dlZ2VuIHdlbj8nCgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZWluIEJlcmxpbmVyIGluIEphcGFuIChWZWN0b3IsIDE2LiBTZXAgMjAwMywgMTQ6MTQ6NTQpOgp+IyEgcm49Tm9ubmUgcnQ9MTA2MzcxNDQzMiByZz13aXR6ZQp+IyEgdGlkPTEwNjM3MTE1NTgKT2VzdGVycmVpY2ggYmVpIGRlciBFTSwgaGloaWhpIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogZWluIEJlcmxpbmVyIGluIEphcGFuIChWYW5pb24sIDE2LiBTZXAgMjAwMywgMTg6MTI6NTYpOgp+IyEgcm49QWxib2luIHJ0PTEwNjM3MTE1NTggcmc9d2l0emUKfiMhIHRpZD0xMDYzNzExNTU4CkRpZSBWZXJrYWV1ZmVyaW4gd3VlcmRlIHdvaGwgZWhlciAiaXJhc3NoYWltYXNlIiBzYWdlbiwgYW5zdGF0dCAiTGViZW5kZQpCbHVtZW4iIDspCgpWKiwgaGF0dGUgaGV1dCBlaW5lbiBEaWVuc3RhZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IGVpbiBCZXJsaW5lciBpbiBKYXBhbiAoQW1hem9yYSwgMTcuIFNlcCAyMDAzLCAxNDo0NToyNyk6Cn4jISBybj1WZWN0b3IgcnQ9MTA2MzcxNDQ5NCByZz13aXR6ZQp+IyEgdGlkPTEwNjM3MTE1NTgKaWNoIHNhY2ggbnVyOiBDT1JET0JBQUFBQSEhIQogdW5kIHNpY2hlciBpc3Qgb2VzdGVycmVpY2ggYmVpIGRlciBlbQphbWF6b3JhIHBvZWh0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBlaW4gQmVybGluZXIgaW4gSmFwYW4gKEFsYm9pbiwgMTcuIFNlcCAyMDAzLCAxNToxMTo0Nyk6Cn4jISBybj1BbWF6b3JhIHJ0PTEwNjM4MDI3Mjcgcmc9d2l0emUKfiMhIHRpZD0xMDYzNzExNTU4CnRqYSBBbWF6b3JhIE9lc3RlcnJlaWNoIHdpcmQgbmF0dWVybGljaCB6dXIgRU0gZmFocmVuLiBBbHMgWnVzY2hhdWVyIGJla29tbWVuCnNpZSBtYWwgZXJzdGtsYXNzaWdlbiBGdXNzYmFsbCBnZWJvdGVuLgpVbmQgQ29yZG9iYT8gZGFzIGlzdCBudW4gZWluIHZpZXJ0ZWxqYWhyaHVuZGVyIGhlciwgaWNoIHNlbGJzdCBoYWJlIG1pY2ggenUKZGVyIFplaXQgZWhlciBtaXQgZGVuIE1pY2h6YWVobmVuIGdlcGxhZ3QgYWxzIG1pdCBGdXNzYmFsbDstKQoKQWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IGVpbiBCZXJsaW5lciBpbiBKYXBhbiAoQW1hem9yYSwgMTcuIFNlcCAyMDAzLCAxNToxODo0OSk6Cn4jISBybj1BbGJvaW4gcnQ9MTA2MzgwNDMwNyByZz13aXR6ZQp+IyEgdGlkPTEwNjM3MTE1NTgKdW5kIHdlciBzb2xsIGRpZXNlbiBlcnN0a2xhc3NpZ2VuIGZ1c3NiYWxsIHNwaWVsZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBlaW4gQmVybGluZXIgaW4gSmFwYW4gKEFuY2FsYWdvbiwgMTguIFNlcCAyMDAzLCAwMDoxNjowNSk6Cn4jISBybj1BbWF6b3JhIHJ0PTEwNjM4MDQ3Mjkgcmc9d2l0emUKfiMhIHRpZD0xMDYzNzExNTU4ClRhZ2NoZW5rbnVkZGVsczEKCklzbGFuZCBuYXR1ZXJsaWNoISBHZXd1aW5udCBpbSBGaW5hbGUgMjoxIG5hY2ggRWxmbWV0ZXJzY2hpZXNzZW4gZ2VnZW4KZ3JpZWNoZW5sYW5kISAKCm9kZXIgc28uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBlaW4gQmVybGluZXIgaW4gSmFwYW4gKE1vbnRhbnVzLCAxOC4gU2VwIDIwMDMsIDA5OjM4OjA1KToKfiMhIHJuPUFuY2FsYWdvbiBydD0xMDYzODM2OTY1IHJnPXdpdHplCn4jISB0aWQ9MTA2MzcxMTU1OApPZXN0ZXJyZWljaCBkYXJmIHNpY2hlcmxpY2ggZWluZW4gU2NoaWVkc3JpY2h0ZXIgenVtIEVNLVR1cm5pZXIgc2NoaWNrZW4uIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NoYWxrZXMgU3VwZXJ0YWxlbnQgYXVzIGRlbSBJcmFrIChBbnRoZWEsIDE4LiBTZXAgMjAwMywgMTA6NTg6NDUpOgpKdXBwIEhleW5ja2VzIHNjaGlja3Qgc2VpbmUgU2NvdXRzIGluIGFsbGVuIEVja2VuIGRlciBXZWx0IHVtIGJyYXVjaGJhcmUKVGFsZW50ZSB6dSB2ZXJwZmxpY2h0ZW4gdW0genUgdmVyaGluZGVybiBkYXNzIFMwNCB6dW0gZHJpdHRlbiBNYWxlIGFic3RlaWd0LgoKRWluZXIgZGllc2VyIFNjb3V0cyBpbmZvcm1pZXJ0IGRlbSBUcmFpbmVyIGRhc3MgZXIgaW4gQmFnZGFkIGZ1ZW5kaWcgZ2V3b3JkZW4KaXN0IHdvIGVyIGVpbiAxNy1qYWVocmlnZXMgUmllc2VudGFsZW50IGVudGRlY2t0IGhhdC4gSnVwcCBmbGllZ3QgZGFyYXVmIG1pdApkZW0gTWFuYWdlciBSdWRpIEFzc2F1ZXIgbmFjaCBCYWdkYWQsIHVlYmVyemV1Z3Qgc2ljaCB2b24gZGVuIFF1YWxpdGFldGVuIGRlcwpKdW5nZW4gdW5kIG1hbiBtYWNodCBkZW4gVHJhbnNmZXIgc29mb3J0IHBlcmZla3QuCgpad2VpIFdvY2hlbiBzcGFldGVyIHNwaWVsZW4gZGllIEJheWVybiBpbiBTY2hhbGtlIHVuZCBkZXIgRkMgbGllZ3QgMjAgTWludXRlbgp2b3IgU2NobHVzcyAwOjQgenVydWVjay4gSGV5bmNrZXMgd2VjaHNlbHQgRWJiZSBTYW5kIGF1cyB1bmQgYnJpbmd0IGRlbgpZb3VuZ3N0ZXIgYXVzIGRlbSBJcmFrLiBEYXMga2xlaW5lIEtlcmxjaGVuIGlzdCBlaW5lIHJlZ2VscmVjaHRlIFNlbnNhdGlvbiB1bmQKZXJ6aWVsdCA1IFRvcmUsIGVpbnMgc2Nob2VuZXIgYWxzIGRhcyBhbmRlcmUuCgpEaWUgRmFucyBzaW5kIGF1cyBkZW0gSGFldXNjaGVuLCBNaXRzcGllbGVyIHVtYXJtZW4gaWhuLCBkaWUgVmVyZWluc2Z1ZWhydW5nCmlzdCB1ZWJlcmdsdWVja2xpY2ggdW5kIGRpZSBQcmVzc2VsZXV0ZW4gc2NocmVpYmVuIGRlbiBOZXdjb21lciBpbiBkZW4gSGltbWVsLgoKQWxzIGVyIGVuZGxpY2ggZGFzIFNwaWVsZmVsZCB2ZXJsYXNzZW4gaGF0LCBncmVpZnQgZXIgenVtIFRlbGVmb24gdW5kIHJ1ZnQKc2VpbmUgTXV0dGVyIGFuOiAiTXV0dGksIGljaCBkdXJmdGUgaGV1dGUgMjAgTWludXRlbiBtaXRzcGllbGVuLCB3aXIgbGFnZW4gMDo0Cnp1cnVlY2sgdW5kIGljaCBoYWJlIG1pdCBtZWluZW4gNSBUb3JlbiBkYXMgU3BpZWwgbm9jaCB1bWdlYm9nZW4uIFdpciBoYWJlbgpnZXdvbm5lbi4gQWxsZSBsaWViZW4gbWljaCBoaWVyICEgRGllIEZhbnMsIEp1cHAgdW5kIFJ1ZGksIGRpZSBNaXRzcGllbGVyLCBkaWUKTWVkaWVuIC4uLiIKCiIiR3Jvc3NhcnRpZyIsIHNhZ3QgZGllIE11dHRlci4gIkljaCB3ZXJkZSBkaWNoIGpldHp0IHVlYmVyIHVuc2VyZW4gVGFnCmJlcmljaHRlbi4gRGVpbiBWYXRlciB3dXJkZSBhdWYgZGVyIFN0cmFzc2UgZXJzY2hvc3NlbiwgZGVpbmUgU2Nod2VzdGVyIHVuZAppY2ggc2luZCBmYXN0IHZlcmdld2FsdGlndCB3b3JkZW4uIERlaW4ga2xlaW5lciBCcnVkZXIgd3VyZGUKenVzYW1tZW5nZXNjaGxhZ2VuIHVuZCBkZWluIGdyb3NzZXIgQnJ1ZGVyIGlzdCBqZXR6dCBNaXRnbGllZCBlaW5lcgpTdHJhc3NlbmJhbmRlIGdld29yZGVuLiIKRGVyIGp1bmdlIFNwaWVsZXIgaXN0IGVudHNldHp0OiAiSmEsIHdhcyBzb2xsIGljaCBzYWdlbiBNdXR0aSwgZGFzIHR1dCBtaXIKd2lya2xpY2ggbGVpZCIgcmVhZ2llcnQgZXIuCgoiRXMgdHV0IGRpciBsZWlkID8gRXMgdHV0IGRpciBsZWlkID8KRXMgaXN0IHZlcmRhbW10IG5vY2htYWwgREVJTkUgU2NodWxkIGRhc3Mgd2lyIG5hY2ggR2Vsc2Vua2lyY2hlbiB1bWdlem9nZW4Kc2luZCAhIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5peCBndXJ1J3MgdmlldyBvZiBzZXggKERlZXBibHVlLCAxOC4gU2VwIDIwMDMsIDExOjM0OjUzKToKCnVuemlwCnN0cmlwCnRvdWNoCmZpbmdlcgptb3VudApmc2NrCm1vcmUKeWVzCnVtb3VudApzbGVlcAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnVzc2JhbGwgKEFub3JpcywgMjMuIFNlcCAyMDAzLCAyMDozODowNCk6CkRpZSBMZWhyZXJpbiB3aWxsIHNpY2ggaW4gaWhyZXIgbmV1ZW4gS2xhc3NlIGJlbGllYnQgbWFjaGVuIHVuZCBlcnphZWhsdCBhbQplcnN0ZW4gU2NodWx0YWcsIGRhc3Mgc2llIFNjaGFsa2UtRmFuIGlzdC4gQWxzIHNpZSBmcmFndCwgd2VyIGViZW5mYWxscwpTY2hhbGtlLUZhbiBzZWksIG1lbGRlbiBzaWNoIGFsbGUgU2NodWVsZXIuIE51ciBlaW4ga2xlaW5lcyBNYWVkY2hlbiBtZWxkZXQKc2ljaCBuaWNodC4KCiJXYXJ1bSBtZWxkZXN0IER1IERpY2ggZGVubiBuaWNodD8iIGZyYWd0IGRpZSBMZWhyZXJpbi4gIldlaWwgaWNoIGtlaW4KU2NoYWxrZS1GYW4gYmluLiIgc2FndCBkaWUgS2xlaW5lLiAiU28sIHVuZCB6dSB3ZWxjaGVuIFZlcmVpbiBoYWVsdHN0IER1CmRhbm4/IgoKIkljaCBiaW4gU3R1dHRnYXJ0LUZhbiAtIHVuZCBpY2ggYmluIHN0b2x6IGRhcmF1ZiEiIGFudHdvcnRldCBkYXMgTWFlZGNoZW4uCiJTdHV0dGdhcnQ/IFVtIEhpbW1lbHMgV2lsbGVuLCB3YXJ1bSBkZW5uIFN0dXR0Z2FydD8iIHdpbGwgZGllIExlaHJlcmluCndpc3Nlbi4gIk1laW4gUGFwYSBrb21tdCB2b24gZG9ydCB1bmQgbWVpbmUgTWFtaSBhdWNoLiBVbmQgZGllIHNpbmQgYmVpZGUKVmZCLUZhbnMsIGFsc28gYmluIGljaCBhdWNoIFZmQi1GYW4hIgoKIkFiZXIgbWVpbiBLaW5kIiB2ZXJzdWNodCBkaWUgTGVocmVyaW4genUgZXJrbGFlcmVuLCAibWFuIG11VmZCLUZhbiEiIGRvY2gKbmljaHQKYWxsZXMgc2VpbmVuIEVsdGVybiBuYWNobWFjaGVuLiBTdGVsbCBEaXIgdm9yLCBEZWluZSBNdXR0ZXIgd2FlcmUKUHJvc3RpdHVpZXJ0ZSB1bmQgRGVpbiBWYXRlciBSYXVzY2hnaWZ0aGFlbmRsZXIgb2RlciBBdXRva25hY2tlci4uLndhcwpkYW5uPz8/IgoKIkphIGRhbm4gd2FlcmUgaWNoIHdvaGwgU2NoYWxrZS1GYW4uLi4iCgouLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGdXNzYmFsbCAoWm9vaywgMjMuIFNlcCAyMDAzLCAyMDo0NDozMik6Cn4jISBybj1Bbm9yaXMgcnQ9MTA2NDM0MjI4NCByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKQWxzbywgd2VubiBTY2h3ZWl6ZXIgV2l0emUgdWViZXIgZGVuIGRldXRzY2hlbiBGdXNzYmFsbCBtYWNoZW4sIGRhbm4gaXN0CmRhcyBpcmdlbmR3aWUgc3VycmVhbC4gOykKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEZ1c3NiYWxsIChNYW5kcmFnb24sIDIzLiBTZXAgMjAwMywgMjE6MjQ6NTEpOgp+IyEgcm49Wm9vayBydD0xMDY0MzQyNjcyIHJnPXdpdHplCn4jISB0aWQ9MTA2NDM0MjI4NAoKQWxzbyBzdXJyZWFsIGZpbmRlIGljaCBnYW56IGFuZGVyZSBTYWNoZW4gLi4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGdXNzYmFsbCAoWm9vaywgMjMuIFNlcCAyMDAzLCAyMToyNTozNyk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTA5MSByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKOmxhdXNjaHQgZ2VzcGFubnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBGdXNzYmFsbCAoTWFuZHJhZ29uLCAyMy4gU2VwIDIwMDMsIDIxOjI1OjUzKToKfiMhIHJuPVpvb2sgcnQ9MTA2NDM0NTEzNyByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKCjpzY2h3ZWlndCB3aXNzZW5kLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBGdXNzYmFsbCAoRm9vYmFyLCAyMy4gU2VwIDIwMDMsIDIxOjI2OjUxKToKfiMhIHJuPU1hbmRyYWdvbiBydD0xMDY0MzQ1MTUzIHJnPXdpdHplCn4jISB0aWQ9MTA2NDM0MjI4NApIZXV0ZSBoYWInIGljaCBpbiBkZW4gTmFjaHJpY2h0ZW4gZ2Vob2VydCwgZGFzcyBCb3JpcyBCZWNrZXIgZGVtbmFlY2hzdCBpbgplaW5lbiBnb2V0dGxpY2hlbiBTY2h3ZWl6ZXIgS2FudG9uIHVtemllaHQuCgpOdXIgbWFsIHNvLi4uIDpvKQoKRm9vYmFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBGdXNzYmFsbCAoTWFuZHJhZ29uLCAyMy4gU2VwIDIwMDMsIDIxOjI3OjEzKToKfiMhIHJuPUZvb2JhciBydD0xMDY0MzQ1MjExIHJnPXdpdHplCn4jISB0aWQ9MTA2NDM0MjI4NAoKSmEsIGluIFpvb2sgc29sbCBlcyBzY2hvZW4gc2VpbiA6LSkKCk1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRnVzc2JhbGwgKFpvb2ssIDIzLiBTZXAgMjAwMywgMjE6Mjg6MTcpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNjQzNDUyMzMgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0ClZvciBhbGxlbSwgZnVlcmNodGVybGljaCBuaWVkcmlnZSBTdGV1ZXJzYWV0emUgdW5kIGRhZnVlciBub2NoIG5lIGhhbGItCndlZ3MgZ3V0ZSBMYWdlIGluIGRlciBTY2h3ZWl6LgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEZ1c3NiYWxsIChNYW5kcmFnb24sIDIzLiBTZXAgMjAwMywgMjE6Mjk6MDApOgp+IyEgcm49Wm9vayBydD0xMDY0MzQ1Mjk3IHJnPXdpdHplCn4jISB0aWQ9MTA2NDM0MjI4NAoKSmEuIEljaCBoYWIgYXVjaCBzY2hvbiB1ZWJlcmxlZ3QsIG1pY2ggYmVpIG1laW5lbiBWZXJ3YW5kdGVuIGluIEt1ZXNzbmFjaHQKZWluLQp6dXF1YXJ0aWVyZW4uIE5hamEuIERpZSBTdGVsbGUga29tbXQgbGVpZGVyIG5pY2h0IG1pdCAuLi4KCk1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogRnVzc2JhbGwgKEZvb2JhciwgMjMuIFNlcCAyMDAzLCAyMToyOTozNCk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTM0MCByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKR2lidCBnZW51ZyBMZXV0ZSBkaWUgcGVuZGVsbiA7bykKCkZvb2JhcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTA6IEZ1c3NiYWxsIChNYW5kcmFnb24sIDIzLiBTZXAgMjAwMywgMjE6MzA6MDIpOgp+IyEgcm49Rm9vYmFyIHJ0PTEwNjQzNDUzNzQgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0CgpOYWphLiBLdWVzc25hY2h0LU11ZW5jaGVuIGJ6dy4gS3Vlc3NuYWNodC1EYXJtc3RhZHQgaXN0IG5lbiB3ZWl0ZXIgV2VnIC4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBGdXNzYmFsbCAoWm9vaywgMjMuIFNlcCAyMDAzLCAyMTozMDoxMik6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTM0MCByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKT2gsIHdpciBoZWlzc2VuIERpY2ggaGVyemxpY2ggd2lsbGtvbW1lbiEgS29tbSBpbiBkaWUgc2Nob2VuZSBTY2h3ZWl6LApkYSBnaWJ0IGVzIGd1ZW5zdGlnZSBTdGV1ZXJuLCB0b2xsZSBMYW5kc2NoYWZ0LCBuZSBrb21pc2NoZSBTcHJhY2hlLCB0b2xsZQpTY2hva29sYWRlIHVuZCBLYWVzZSB1bmQgc28gdW5kIHN1cGVyIExlYmVuc3F1YWxpdGFldC4KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogRnVzc2JhbGwgKE1hbmRyYWdvbiwgMjMuIFNlcCAyMDAzLCAyMTozMTowMik6Cn4jISBybj1ab29rIHJ0PTEwNjQzNDU0MTIgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0CgpTaSBzaWUgc2NobyBadWVyaSBnc2k/IDstKQoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMTogRnVzc2JhbGwgKFpvb2ssIDIzLiBTZXAgMjAwMywgMjE6MzM6MDYpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNjQzNDU0MDIgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0ClNjaG5pY2sgc2NobmFjay4gTmUgQmVrYW5udGUgdm9uIG1pdCBsZWJ0IGluIFN0dXR0Z2FydCwgcHJvbW92aWVydCBpbiAKWnVlcmljaCAoZGEgc2l0enQgYXVjaCBpaHJlIENoZWZpbiksIGlocmUgU3RlbGxlIGlzdCBpbiBCcmVtZXJoYXZlbiAob2RlcgpLaWVsKSB1bmQgZGllIEdlc2NoYWVmdHNzdGVsbGUgZGVyIE9yZ2FuaXNhdGlvbiwgZnVlciBkaWUgc2llIGFyYmVpdGV0LAppc3QgaW4gQmVybGluLiBOb2NoIEZyYWdlbj8gOykKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMjogRnVzc2JhbGwgKE1hbmRyYWdvbiwgMjMuIFNlcCAyMDAzLCAyMTozMzozMik6Cn4jISBybj1ab29rIHJ0PTEwNjQzNDU1ODYgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0CgpKYS4gV2llIGhvY2ggc2luZCBpaHJlIFJlaXNla29zdGVuPwoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMzogRnVzc2JhbGwgKFpvb2ssIDIzLiBTZXAgMjAwMywgMjE6MzQ6MzEpOgp+IyEgcm49TWFuZHJhZ29uIHJ0PTEwNjQzNDU2MTIgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0CmtBLCBkYXMgbWVpc3RlIHNpbmQgamEgRGllbnN0cmVpc2VuIDspCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMTQ6IEZ1c3NiYWxsIChNYW5kcmFnb24sIDIzLiBTZXAgMjAwMywgMjE6MzU6MTEpOgp+IyEgcm49Wm9vayBydD0xMDY0MzQ1NjcxIHJnPXdpdHplCn4jISB0aWQ9MTA2NDM0MjI4NAoKQWNoIHNvIDstKQoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNTogRnVzc2JhbGwgKFBhdHJ5biwgMjMuIFNlcCAyMDAzLCAyMTozNTozNSk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTcxMSByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKRGFmdWVyIGhhYnQgaWhyIGJhbGQgQm9yaXMsIHdlZ2VuIGRlciBTdGV1ZXJuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNjogRnVzc2JhbGwgKE1hbmRyYWdvbiwgMjMuIFNlcCAyMDAzLCAyMTozNTo1Nyk6Cn4jISBybj1QYXRyeW4gcnQ9MTA2NDM0NTczNSByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKClNjaHVtaSBpc3QgZG9jaCBhdWNoIHNjaG9uLCBkYWNodGUgaWNoIC4uLgoKTWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xNzogRnVzc2JhbGwgKFBhdHJ5biwgMjMuIFNlcCAyMDAzLCAyMTozNjozMyk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTc1NyByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKQWxzbyB3ZW5uIGljaCBTY2h1bWkgc2Nob24gaG9lcmUuLi5uYSwgTWFuZHJpLCBhdWNoIGJhbGQgZHJ1ZWJlbj8gOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE2OiBGdXNzYmFsbCAoWm9vaywgMjMuIFNlcCAyMDAzLCAyMTozNjozNSk6Cn4jISBybj1QYXRyeW4gcnQ9MTA2NDM0NTczNSByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKR2Vybi4gTmFjaGRlbSBIZXJyIFNjaHVtYWNoZXIgc2ljaCBtaXQgZGVyIEdlbWVpbmRlLCBpbiBkZXIgbWVpbiBPbmtlbAp3b2hudCwgbmljaHQgZWluaWcgd3VyZGUuLi4gCgpNYWwgc2NoYXVuLCBvYiBIZXJyIEJlY2tlciBkYXMgZGllc21hbCBtaXQgZGVtIEF1c3NlbnN0ZXVlcnJlY2h0IGV0d2FzCmJlc3NlciBoaW5iZWtvbW10IGFscyBtaXQgTW9uYWNvLi4uIDspCgpab29rIGdyaW5zdCBnZWhhZXNzaWcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xODogRnVzc2JhbGwgKFpvb2ssIDIzLiBTZXAgMjAwMywgMjE6Mzc6MjMpOgp+IyEgcm49UGF0cnluIHJ0PTEwNjQzNDU3OTMgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0Ck5lLCBTY2h1bWEga2FtIG5pY2h0Li4uIHp1bWluZGVzdCBuaWNodCBpbiBkaWUgZWluZSBHZW1laW5kZSwgZGllIHdvbGx0ZQppaG0gZGFubiBkb2NoIG5pY2h0IHNvIHZpZWxlIFZlcmd1ZW5zdGlndW5nZW4gZWlucmFldW1lbiwgd2FyIGJlaSBkZXIKQmF1Z2VuZWhlbWlndW5nIHp1IHppY2tpZyB1bmQgbmVuIFByaXZhdC1GbHVnaGFmZW4gd29sbHRlbiBkaWUgd29obCBhdWNoCm5pY2h0Li4uLiA7KQoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjE5OiBGdXNzYmFsbCAoTWFuZHJhZ29uLCAyMy4gU2VwIDIwMDMsIDIxOjM4OjE1KToKfiMhIHJuPVpvb2sgcnQ9MTA2NDM0NTg0MyByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKCkFuZ2VibGljaCBrb3N0ZXQgZGllICdNaXRnbGllZHNjaGFmdCcgaW4gU2FhcyBGZWUgODBrIEZyYW5rZW4gLi4uLiBpc3QgamEKZmFzdCBnZXNjaGVua3QgOy0pCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIwOiBGdXNzYmFsbCAoWm9vaywgMjMuIFNlcCAyMDAzLCAyMTozOToxMCk6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTg5NSByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKRHUga2FubnN0IERpY2ggYWxzIERldXRzY2hlciBpbiBqZWRlciBTY2h3ZWl6ZXIgR2VtZWluZGUgbmllZGVybGFzc2VuLCB3ZW5uCkR1IGVpbmVuIEFyYmVpdHN2ZXJ0cmFnIGhhc3QgYnp3LiBkb3J0IGVpbiBVbnRlcm5laG1lbiBncnVlbmRlbiBtb2VjaHRlc3QuCgpab29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMjE6IEZ1c3NiYWxsIChNYW5kcmFnb24sIDIzLiBTZXAgMjAwMywgMjE6Mzk6NDApOgp+IyEgcm49Wm9vayBydD0xMDY0MzQ1OTUwIHJnPXdpdHplCn4jISB0aWQ9MTA2NDM0MjI4NAoKRGFzIHNjaG9uLiBBYmVyIGRhIEJ1ZXJnZXIgenUgd2VyZGVuIGlzdCBhbmdlYmxpY2ggd2FzIGFuZGVyZXMgYWxzIHNpY2ggZGEKbmllZGVyenVsYXNzZW4gLi4uCgpNYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIxOiBGdXNzYmFsbCAoUGF0cnluLCAyMy4gU2VwIDIwMDMsIDIxOjQwOjA0KToKfiMhIHJuPVpvb2sgcnQ9MTA2NDM0NTk1MCByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKQWxzbyBpY2ggX2thbm5fIGF1Y2ggdm9uIGRlciBCcnVlY2tlIHNwcmluZ2VuCgotLSAKcGF0cnluIGhhdCB2aWVsZSBPcHRpb25lbiwgZGllIHJlaW4gcmhldG9yaXNjaGVyIE5hdHVyIHNpbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIyOiBGdXNzYmFsbCAoWm9vaywgMjMuIFNlcCAyMDAzLCAyMTo0MDo0Mik6Cn4jISBybj1NYW5kcmFnb24gcnQ9MTA2NDM0NTk4MCByZz13aXR6ZQp+IyEgdGlkPTEwNjQzNDIyODQKSmEsIGtsYXIuIFdpZSB1ZWJlcmFsbC4gQWJlciwgd28gaXN0IGRlbm4gZGEgZGFzIFByb2JsZW0/IER1IG11c3N0IERpY2ggCmphIG5pY2h0IGdsZWljaCBlaW5idWVyZ2VybiBsYXNzZW4sIG51ciB3ZWlsIER1IGRhIDEwLCAyMCBKYWhyZSBsZWJlbiB1bmQKYXJiZWl0ZW4gd2lsbHN0LgoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmxhY2hlbiAoQWxib2luLCAyNC4gU2VwIDIwMDMsIDExOjIyOjQ3KToKWndlaSBTZWtyZXRhZXJpbm5lbiBhcmJlaXRlbiBzZWl0IHZpZWxlbiBKYWhyZW4genVzYW1tZW4gCnVuZCBlcnphZWhsZW4gc2ljaCBlaW5mYWNoIEFMTEVTISBEYSBzaWUgbnVuIGltIEJ1ZXJvIG5pY2h0IApvZmZlbiB1ZWJlciBTZXggc3ByZWNoZW4gd29sbGVuLCBoYWJlbiBTaWUgdmVyZWluYmFydCwgZGFzcyAKU2llIGRpZXNlIGlocmUgTGllYmxpbmdzYmVzY2hhZWZ0aWd1bmcgIkxBQ0hFTiIgbmVubmVuLiAKRWluZXMgTW9udGFnc21vcmdlbnMgZXJ6YWVobHQgZGllIGVpbmU6IAoiSWNoIGthbm4gdm9yIGxhdXRlciBsYWNoZW4ga2F1bSBub2NoIGxhdWZlbiEgQWxzIGljaCBhbSAKRnJlaXRhZyB2b24gZGVyIEFyYmVpdCBrYW0sIHdhcnRldGUgbWVpbiBGcmV1bmQgc2Nob24gaW4gCmRlciBLdWVjaGUgYW0gVGlzY2ggYXVmIG1pY2guIFdpciBoYWJlbiB2aWVsbGVpY2h0IGdlbGFjaHQhClNhbXN0YWcga2FtIGRhbm4gZWluIGFsdGVyIEJla2FubnRlciB2b3JiZWksIGRlbiBpY2ggc2VpdCAKSmFocmVuIG5pY2h0IGdlc2VoZW4gaGF0dGUuIEljaCBoYXR0ZSBnYW56IHZlcmdlc3Nlbiwgd2llIAp0b2xsIG1hbiBtaXQgZGVtIGxhY2hlbiBrYW5uISBVbmQgU29ubnRhZyBlcnN0OiBJY2ggd2FyIG1pdCAKZWluZXIgRnJldW5kaW4gYmVpIGVpbmVyIFByaXZhdC1QYXJ0eS4gOCBMZXV0ZSB3YXJlbiBkYSB1bmQgCndpciBoYWJlbiBhbGxlIHp1c2FtbWVuIGdlbGFjaHQhISEgVW5kIHdpZSB3YXIgRGVpbiBXb2NoZW5lbmRlPyIKQW50d29ydGV0IGRpZSBhbmRlcmU6ICJBY2gsIHNvIGVpbiBTY2hlaXNzISBGcmVpdGFnIGhhdHRlIGljaCAKbmljaHRzIHp1IGxhY2hlbiwgU2Ftc3RhZyBoYXR0ZSBpY2ggbmljaHRzIHp1IGxhY2hlbiEgQW0gClNvbm50YWduYWNobWl0dGFnIGtvbW1lIGljaCB1bnZlcmhvZmZ0IGlucyBCYWRlemltbWVyLCBzdGVodCAKZG9jaCBkYSBtZWluIE1hbm4gdW5kIGxhY2h0IHNpY2ggaW5zIEZhZXVzdGNoZW4hISEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRnVzc2JhbGwgKEFtYXpvcmEsIDI0LiBTZXAgMjAwMywgMTU6MTk6MDQpOgp+IyEgcm49QW5vcmlzIHJ0PTEwNjQzNDIyODQgcmc9d2l0emUKfiMhIHRpZD0xMDY0MzQyMjg0CmhlISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRldXRzY2hlIFNwcmFjaGUuLi4gKEJyb3RuYWVsLCAyNC4gU2VwIDIwMDMsIDE3OjE0OjQzKToKQXVzenVlZ2UgYXVzIEJyaWVmZW4sIGRpZSBkYXMgV29obnVuZ3MtIGJ6dy4gU296aWFsYW10IGVycmVpY2h0ZW46CgpJY2ggaGFiZSBSaGV1bWF0aXNtdXMgdW5kIGVpbiBLaW5kIHZvbiA0IEphaHJlbiwgd2FzIGF1ZiBkaWUgRmV1Y2h0aWdrZWl0Cnp1cnVlY2t6dWZ1ZWhyZW4gaXN0LgoKSWNoIG1vZWNodGUgZWluZSBXb2hudW5nIGFuZ2V3aWVzZW4gYmVrb21tZW4sIGRhIGljaCBncm9zc2VuIGhlaXJhdHNkcmFuZyBpbgptaXIgdmVyc3B1ZXJlLgoKSW4gZGllc2VyIFdvaG51bmcga2FubiBpY2ggbmljaHQgYmxlaWJlbiwgZGEgaWNoIGRhdWVybmQgZGVyIFNpdHRsaWNoa2VpdAphdXNnZXNldHp0IGJpbi4KCkljaCBoYWJlIGVpbmUgVG9jaHRlciB1bmQgNCBTb2VobmUgdW5kIHdpciBzaW5kIGFsbGUgc28gYmVzY2hyYWVua3QsIGRhc3Mgd2lyCm51ciAyIGJldHRlbiBhdWZzdGVsbGVuIGtvZW5uZW4uIGluIGVpbmVtIGJldHQgc2NobGFmZW4gZGllIGp1bmdlbnMsIGluIGRlbQphbmRlcmVuIG1laW5lIFRvY2h0ZXIgdW5kIGljaCwgd2FzIHNjaG9uIGdlZ2VuIGRhcyBadWNodGhhdXMgaXN0LgoKSWNoIGJpbiBzZWl0IDIgTW9uYXRlbiB2ZXJoZWlyYXRldCB1bmQgaGFiZSBub2NoIGtlaW5lIEZhbWlsaWVud29obnVuZy4gTWVpbmUKRnJhdSBpc3QgaW4gYW5kZXJlbiBVbXN0YWVuZGVuLiBOdW4gZnJhZ2UgaWNoIHNpZTogIk11cyBkYXMgc2Vpbj8iCgpJY2ggbXVzcyBTaWUgYml0dGVuLCBtaWNoIGlubmVyaGFsYiB2b24gOCBUYWdlbiB6dSBiZWZyaWVkaWdlbiwgc29uc3QgbXVzcyBpY2gKbWljaCBhbiBkaWUgT2VmZmVudGxpY2hrZWl0IHdlbmRlbi4KCk1laW4gTWFubiBtYWNodCBrZWluZSBHZXNjaGFlZnRlIG1laHIsIHdlbm4gZXIgbWFsIGVpbnMgbWFjaHQsIGRhbm4gc2luZCBlcwpudXIgVHJvcGZlbiBhdWYgZGVuIGhlaXNzZW4gU3RlaW4uCgpIaWVybWl0IHN0ZWxsZSBpY2ggZWluZW4gQW50cmFnIGF1ZiBlaW4gQmV0dCBtaXQgSW5oYWx0LiBJbiBkZXIgS2FtbWVyCnNjaGxhZWZ0IG1laW5lIFRvY2h0ZXIgdW5kIHVlYmVyIGlociBkaWUgR2FzdWhyLiBEaWVzZWxiZSBrb21tdCBpbiBlaW5lbSBNb25hdApuaWVkZXIuIE51biBmcmFnZSBpY2g6ICIgV29oaW4gbWl0IGlocj8iCgpGcmF1IE11ZWxsZXIgbGFlc3N0IGRhdWVybmQgaWhyIHdhc3NlciBtaSBsYXV0ZW0gR2V0b2VzZSBsYXVmZW4uIEljaCBiaXR0ZSwKZWluZW4gTWFubiB6dSBzY2hpY2tlbiwgZGVyIEFiaGlsZmUgc2NoYWZmdC4KCk1laW4gTWFubiBicmF1Y2h0IGRyaW5nZW5kIGVpbmUgbmV1ZSBIb3NlIGZ1ZXIgc2VpbmUgVGFldGlna2VpdCBhbHMgTXVzaWtlciwKZGEgZXIgaW4gZGVyIGFsdGVuIGtlaW5lIE11c2lrIG1laHIgbWFjaGVuIGthbm4uCgpHZWdlbnVlYmVyIHZvbiB1bnMgaXN0IGVpbiBIZWltIGZ1ZXIgZ2ViYWVyZW5kZSBNdWV0dGVyLiBFaW5lIEdlYmFlcm11dHRlciBsYWcKaW0gRmVuc3RlciB1bmQgd2lua3RlIG1pciBmcmV1bmRsaWNoIHp1LgoKRGVyIEJlYW10ZSwgZGVyIG1laW5lIEtvaGxlbiBhYmdlbGVobnQgaGF0LCBzb2xsIG1hbCBpbSBXaW50ZXIgYmVpIG1pcgpzY2hsYWZlbiwgZGEgbWl0IGVyIGZ1ZWhsdCwgd2FzIGZ1ZXIgZWluIGthbHRlcyBMb2NoIGljaCBoYWJlLgoKSWNoICwgNzIgSmFocmUgYWx0LCBtZWluZSBGcmF1IDY4LCB3aXIgaGFiZW4gOSBLaW5kZXIgZ2V6ZXVndCB1bmQgdHVuIHVuc2VyZQpQZmxpY2h0IG5vY2ggaGV1dGUsIGFiZXIgYmVpIGRlbSBTY2huZWUgdW5kIGRlciBLYWVsdGUgaXN0IGVzIG9obmUgU2NodWhlCm5pY2h0IG1laHIgbW9lZ2xpY2guCgpJY2ggYml0dGUgZHJpbmdlbmQsIG1pciBlaW5lbiBFbGVrdHJpa2VyIHp1IHNjaGlja2VuLCBzb25zdCBtdXNzIGljaCBpbiBkZXIKbmFlY2hzdGVuIE5hY2h0IHdpZWRlciBkaWUgS2VyemUgbmVobWVuLgoKCkJyb3QsIGxhZWNoZWxuZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkludGVyZXNzYW50IC4uLiAoR2l0YXJyZSwgMjguIFNlcCAyMDAzLCAxNjoyNDozMCk6CldobmFpbnNuIG9lZHI/PwoKCk1hbiBiZWFjaHRlIGRhcyBmb2xnZW5kZTogR21hZWVzcyBlbmVpciBTdXRpZGUgZW5laXIgZWxnbmloY2VzbgpVdmluaXN0ZXJhZXQsIGlzdCBlcyBuY2hpdCB3aXRpaGNnIGluIHdsZWNlaHIgUm5lZmxvZ2hlaWUgZGllIEJzdGFjaHVlYm4KaW4gZW5laW0gV3JvdCBzbmlkLCBkYXMgZXpuaWlnZSB3YXMgd2N0aGlpZyBpc3QsIGlzdCBkYXNzIGRlciBlc3RyZSB1bmQKZGVyIGxlenR0ZSBCc3RhYmNodWUgYW4gZGVyIHJpdGloY2VnbiBQc3RvaWlvbiBzbmlkLiBEZXIgUnNldCBrbmFuIGVpbgp0dG9hZWxyIEJzaW5vbGRuIHNpZW4sIHRlZHp0b3JtIGtuYW4gbWFuIGlobiBvbmhlIFBlbW9ibHJlIGxzZWVuLiBEYXMKaXN0IHNvLCB3aWVsIHdpciBuY2lodCBqZWVkbiBCc3RhY2h1ZWJuIGVuemVsaW4gbGVlc24sIHNuZGVyb24gZGFzIFdyb3QKYWxzIGdzZWF0ZW1zLgoKR2l0YXJyZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEludGVyZXNzYW50IC4uLiAoQnJvdG5hZWwsIDI4LiBTZXAgMjAwMywgMTY6Mjg6NTQpOgp+IyEgcm49R2l0YXJyZSBydD0xMDY0NzU5MDcwIHJnPXdpdHplCn4jISB0aWQ9MTA2NDc1OTA3MApEYSBpcyBlaW4gVHlwbywgZGEgZmVobHQgZWluIGUgaW4gQnNpbm9sZG4gO28pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEludGVyZXNzYW50IC4uLiAoQW5hdG9sLCAyOC4gU2VwIDIwMDMsIDE3OjE3OjE5KToKfiMhIHJuPUJyb3RuYWVsIHJ0PTEwNjQ3NTkzMzQgcmc9d2l0emUKfiMhIHRpZD0xMDY0NzU5MDcwCmh0dHA6Ly93d3cuaGVpc2UuZGUvdHAvZGV1dHNjaC9zcGVjaWFsL2F1Zi8xNTcwMS8xLmh0bWwKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpadW0gV2Vnc2NocmVpZW4gKEFwb2xsb25pYSwgIDMuIE9rdCAyMDAzLCAxNTowNjoxMCk6CkRpZSBzY2hsaW1tc3RlbiBCZWZ1ZXJjaHR1bmdlbiBkZXIgYmF5ZXJpc2NoZW4gT3Bwb3NpdGlvbiBzY2hlaW5lbiBzaWNoIHp1CmJld2FocmhlaXRlbjogTmFjaGRlbSBkaWUgQ1NVIGJlaSBkZXIgTGFuZHRhZ3N3YWhsIGFtIDIxLiBTZXB0ZW1iZXIgZGllClp3ZWlkcml0dGVsLU1laHJoZWl0IGltIE11ZW5jaG5lciBQYXJsYW1lbnQgZXJydW5nZW4gaGF0LCBwbGFudCBzaWUKZ3JhdmllcmVuZGUgVmVyYWVuZGVydW5nZW4gZGVyIGJheWVyaXNjaGVuIFZlcmZhc3N1bmcuIEF1cyBkZW4gaW5uZXJzdGVuClppcmtlbG4gZGVyIE1BQ0hUIHd1cmRlIFpZTiEgZWluIE1lbW9yYW5kdW0genVnZXNwaWVsdCwgaW4gZGVtIGRpZSBDU1UtU3BpdHplCmlocmUgUGxhZW5lIHNraXp6aWVydCBoYXQuIERhcmF1cyB6aXRpZXJlbiB3aXIgaW4gQXVzenVlZ2VuLgoKQmVyZWl0cyBrdXJ6IG5hY2ggZGVyIGtvbnN0aXR1aWVyZW5kZW4gU2l0enVuZyBkZXMgbmV1IGdld2FlaGx0ZW4gUGFybGFtZW50cwppbSBPa3RvYmVyIHNvbGwgZGVyIEZyZWlzdGFhdCBCYXllcm4gaW4gZWluIEtvZW5pZ3JlaWNoIHVtZ2V3YW5kZWx0IHdlcmRlbiB1bmQKRWRtdW5kIFN0b2liZXIgYWxzIEtvZW5pZyB6dXNhbW1lbiBtaXQgc2VpbmVyIEZyYXUgS2FyaW4gZGVuIFRocm9uIGJlc3RlaWdlbi4KV2FlaHJlbmQgc2VpbmUgRnJhdSBhbHMgS2FyaW4gSS4gZmlybWllcmVuIHdpcmQsIHNvbGwgU3RvaWJlciBuYWNoIGRlbSBXaWxsZW4KZGVyIENTVS1TcGl0emUgYW4gZGllIFphZWhsdW5nIGRlciBXaXR0ZWxiYWNoZXIgYW5zY2hsaWVzc2VuIHVuZCBkZW4KVGhyb25uYW1lbiBMdWR3aWcgSVYuIGFubmVobWVuLCB3ZWlsIGRlciBQcmV1c3Nlbm5hbWUgRWRtdW5kIGFscyBLb2VuaWdzbmFtZQppbiBCYXllcm4gdW5nZWVpZ25ldCBzZWkuIERpZSBHZWJpcmdzc2NodWV0emVuIGF1cyBkZW0gVGVnZXJuc2VlciBUYWwgYmlsZGVuCmRpZSBrb2VuaWdsaWNoZSBHYXJkZS4KRGllIENTVS1CZXppcmtzdm9yc2l0emVuZGVuIHNvbGxlbiB6dSBIZXJ6b2VnZW4gZGVyIGpld2VpbGlnZW4KUmVnaWVydW5nc2Jlemlya2UgZXJuYW5udCB3ZXJkZW4sIGRpZSBDU1UtS3JlaXN2b3JzaXR6ZW5kZW4genUgQmFyb25lbiB1bmQgZGllCkNTVS1PcnRzdm9yc2l0emVuZGVuIHp1IEZyZWloZXJybi4gWnVyIEhlYnVuZyBkZXIgVm9sa3NzdGltbXVuZyB3aXJkIGRlcgpLb25zdW0gdm9uIGRyZWkgTWFzcyBCaWVyIGFtIFRhZyBmdWVyIGFsbGUgRXJ3YWNoc2VuZW4gUGZsaWNodC4gRGllIEJheWVybi1TUEQKc29sbCBhbHMgIkFyYmVpdHNnZW1laW5zY2hhZnQgU296aXMgYmVpIFVucyIgKEFTVSkgaW4gZGllIENTVSBpbnRlZ3JpZXJ0CndlcmRlbiwgdW0gaWhyZW4gQmVzdGFuZCBsYW5nZnJpc3RpZyB6dSBzaWNoZXJuLgoKTmFjaCBkZW4gWllOISB2b3JsaWVnZW5kZW4gSW5mb3JtYXRpb25lbiB3aWxsIGRpZSBDU1Ugc28gc2NobmVsbCB3aWUgbW9lZ2xpY2gKZGllIEhlaWxpZ3NwcmVjaHVuZyB2b24gRnJhbnogSm9zZWYgU3RyYXVzcyBkdXJjaHNldHplbi4gRGEgZGVyIFZhdGlrYW4gYmVpCkdlaGVpbXZlcmhhbmRsdW5nZW4gZGllc2VzIEFuc2lubmVuIGFibGVobnRlLCB3aXJkIEtvZW5pZyBMdWR3aWcgSVYuIGRlcgprYXRob2xpc2NoZW4gS2lyY2hlIHZvcmF1c3NpY2h0bGljaCBtaXQgZGVyIGdyb2Vzc3RlbiBFbnRlaWdudW5nIHZvbgpLaXJjaGVuZ3V0IHNlaXQgZGVtIFJlaWNoc2RlcHV0YXRpb25zaGF1cHRzY2hsdXNzIHZvbiAxODAzIGRyb2hlbi4gU2VsYnN0IGRhcwpLbG9zdGVyIEFuZGVjaHMgbWl0IHNlaW5lciBCcmF1ZXJlaSB3ZXJkZSBkYXZvbiBuaWNodCB2ZXJzY2hvbnQgYmxlaWJlbi4KCkRpZSBDU1Ugd2lsbCBzaWNoIGVuZyBhbiBkaWUgVVNBIGFubGVobmVuIHVuZCBzaWUgaW0gS2FtcGYgZ2VnZW4gZGVuCmludGVybmF0aW9uYWxlbiBUZXJyb3Jpc211cyB1bnRlcnN0dWV0emVuLiBEYXp1IHNvbGwgZWluZSBiYXllcmlzY2hlIEZsb3R0ZQphdWZnZWJhdXQgd2VyZGVuLiBBdWYgZGVtIENoaWVtc2VlIHNvbGwgZGVyIEZsdWd6ZXVndHJhZWdlciAiRnJhbnogSm9zZWYKU3RyYXVzcyIga3JldXplbiB1bmQgdm9uIGRvcnQgYXVzIGRpZSBBbCBLYWlkYSB1bmQgYW5kZXJlcyBsaWNodHNjaGV1ZQpHZXNpbmRlbCBiZWthZW1wZmVuLiBJbm5lbm1pbmlzdGVyIEd1ZW50ZXIgQmVja3N0ZWluIHNvbGwgYmVyZWl0cyBkYW1pdApiZWdvbm5lbiBoYWJlbiwgZnVlciBkYXMgS2FwaXRhZW5zcGF0ZW50IHp1IGJ1ZWZmZWxuLgoKV2ljaHRpZ3N0ZXMgYXVzc2VucG9saXRpc2NoZXMgWmllbCBkZXMgS29lbmlncmVpY2hzIEJheWVybiBpc3QgZGFzIEF1c3NjaGVpZGVuCmF1cyBkZXIgQnVuZGVzcmVwdWJsaWsgRGV1dHNjaGxhbmQgdW5kIGRpZSBWZXJlaW5pZ3VuZyBtaXQgZGVtIE5hY2hiYXJsYW5kCk9lc3RlcnJlaWNoIHp1ciAiVmVyZWluaWd0ZW4gRG9uYXVtb25hcmNoaWUiLiBEaWUgb2VzdGVycmVpY2hpc2NoZW4KQnVuZGVzbGFlbmRlciB3ZXJkZW4gZGVuIGJheWVyaXNjaGVuIEJlemlya2VuIGdsZWljaCBnZXN0ZWxsdC4gRGllCk9lc3RlcnJlaWNoaXNjaGUgVm9sa3NwYXJ0ZWkgd2lyZCBpbiBkaWUgQ1NVIGVpbmdlZ2xpZWRlcnQuCgpPYiBMdWR3aWcgSVYuIHNpY2ggYXVjaCBkaWUgS2Fpc2Vya3JvbmUgZGVyIEhhYnNidXJnZXIgYXVmc2V0emVuIHdpcmQsIGlzdApub2NoIG9mZmVuLiBGdWVyIGRpZXNlbiBGYWxsIHNvbGwgZXIgZGVuIERvcHBlbG5hbWVuIEx1ZHdpZyBJVi4vRnJhbnogSm9zZWYKSUkuIGFubmVobWVuLiBEaWUgV2llbmVyIEhvZmJ1cmcgd3VlcmRlIGRhbm4gUmVnaWVydW5nc3NpdHosIG9id29obCBzaWUKa2xlaW5lciBpc3QgYWxzIGRpZSBiYXllcmlzY2hlIFN0YWF0c2thbnpsZWkuIFplcmVtb25pYWxoYXVwdHN0YWR0IGRlcgoiVmVyZWludGVuIERvbmF1bW9uYXJjaGllIiB3aXJkIGF1ZiBqZWRlbiBGYWxsIEJhZCBJc2NoZ2wuIERvcnQgd2lyZCBkYW5uIGluCmplZGVtIE9rdG9iZXIgZGFzIHplcmVtb25pZWxsZSBIZWlsYmllcmZhc3MgYW5nZXN0b2NoZW4sIHVtIGR1cmNoIGRpZXNlcwpSaXR1YWwgZnVlciBkaWUga29tbWVuZGVuIHp3b2VsZiBNb25hdGUgU2VnZW4gYXVmIGRhcyBMYW5kIHp1IGVyZmxlaGVuLiBEZXIKRXVybyB3aXJkIGFscyBXYWVocnVuZyBhYmdlc2NoYWZmdCB1bmQgZGVyIE1hcmlhLVRoZXJlc2llbi1UaGFsZXIgbmV1CmVpbmdlZnVlaHJ0LiBFaW4gTWFyaWEtVGhlcmVzaWVuLVRoYWxlciA9IDEyIEtyZXV0emVyID0gNzIgU2NoaWxsaW5nZSA9IDM2MApHcm9zY2hlbi4gTmV1ZXMgR2V3aWNodCB3aXJkIGRhcyBHcmFuLCBuZXVlcyBFbnRmZXJudW5nc21hc3MgZGllIGJheWVyaXNjaGUKTWVpbGUgKD0gMSwzMDU4NDc2MzkgS2lsb21ldGVyKS4KCkZhbGxzIGRpZSBDU1UgdGF0c2FlY2hsaWNoIGRpZSBIYWJzYnVyZ2VyLU1vbmFyY2hpZSB3aWVkZXIgYmVsZWJ0LCBrb21tZW4gYXVmCmRpZSBOYWNoYmFybGFlbmRlciB1bWZhbmdyZWljaGUgR2ViaWV0c2ZvcmRlcnVuZ2VuIHp1LCBpbiBkZW5lbiBkaWUgSGFic2J1cmdlcgplaW5tYWwgQmVzaXR6IGhhdHRlbiwgYWxzbyBhdWYgU3BhbmllbiwgUG9ydHVnYWwsIEZyYW5rcmVpY2gsIEJlbGdpZW4sIGRpZQpOaWVkZXJsYW5kZSwgQmVsZ2llbiwgTHV4ZW1idXJnLCBEZXV0c2NobGFuZCwgRGFlbmVtYXJrLCBTY2h3ZWl6LCBQb2xlbiwKUnVtYWVuaWVuLCBVbmdhcm4sIFNlcmJpZW4gdW5kIE1vbnRlbmVncm8sIEJvc25pZW4tSGVyemVnb3dpbmEsIEtyb2F0aWVuLApTbG93ZW5pZW4gdW5kIEl0YWxpZW4uIE5pY2h0IHp1IHZlcmdlc3NlbiBkaWUgQXVzbGFuZHNiZXNpdHp1bmdlbiBpbgpLYWxpZm9ybmllbiwgTWV4aWtvLCBHdWF0ZW1hbGEsIEhvbmR1cmFzLCBDb3N0YSBSaWNhLCBOaWthcmFndWEsIFBhbmFtYSwKS29sdW1iaWVuLCBFY3VhZG9yLCBCb2xpdmllbiwgUGVydSwgQXJnZW50aW5pZW4sIFVydXF1YXkgdW5kIENoaWxlLiBEaWUKYmF5ZXJpc2NoZW4gQXJiZWl0c2xvc2VuIHNvbGxlbiBpbiBkZW4gYm9saXZpYW5pc2NoZW4gU2lsYmVybWluZW4genVtIEVpbnNhdHoKa29tbWVuLiBBbHMgTmFoemllbCBzb2xsIEl0YWxpZW4gbmViZW4gU3VlZHRpcm9sIElzdHJpZW4gYWJ0cmV0ZW4sIGRhbWl0IGRpZQpiYXllcmlzY2hlIEZsb3R0ZSBlaW5lbiBadWdhbmcgenVtIE1lZXIgZ2V3aW5udC4KCkRhcyBlaHJnZWl6aWdzdGUgQmF1cHJvamVrdCBkZXIgbmV1ZW4gTW9uYXJjaGllIHNvbGwgZGVtIFZlcm5laG1lbiBuYWNoIGRlcgpBdXNiYXUgZGVyIFp1Z3NwaXR6ZSB6dW0gaG9lY2hzdGVuIEJlcmcgRXVyb3BhcyB3ZXJkZW4uIERhdm9uIHZlcnNwcmljaHQgc2ljaApkaWUgQ1NVIGVpbmVuIEF1ZnNjaHd1bmcgaW4gZGVyIE5vdCBsZWlkZW5kZW4gQmF1YnJhbmNoZS4gWnVyIEJlbHVzdGlndW5nIGRlcwpWb2xrZXMgd2lyZCBlcyBlaW5lIGVpZ2VuZSBrYWlzZXJsaWNoLWtvZW5pZ2xpY2hlIEZ1c3NiYWxsLUxpZ2EgZ2ViZW4sCmJlc3RlaGVuZCBhdXMgZGVuIFZlcmVpbmVuIEZDIEJheWVybiBNdWVuY2hlbiwgMTg2MCBNdWVuY2hlbiwgMS4gRkMgTnVlcm5iZXJnCnVuZCBSYXBpZCBXaWVuLiBEaWUgU3RhdHV0ZW4gZGVyIExpZ2Egc2VoZW4gdm9yLCBkYXNzIGRlciBGQyBCYXllcm4gamVkZXMgSmFocgpNZWlzdGVyIHdpcmQgdW5kIGF1c3NlcmRlbSBkaWUgYmVzdGUgTWFubnNjaGFmdCBkZXIgV2VsdCBpc3QuCgpOb2NoIG5pY2h0IGR1cmNoIFJlY2hlcmNoZW4gdW50ZXJtYXVlcnQgd2VyZGVuIGtvbm50ZSBkaWUgVGhlc2UgZWluaWdlcgpTb3ppYWxkZW1va3JhdGVuLCBkaWUgQ1NVIGhhYmUgZGllIExhbmR0YWdzd2FobCBkZXNoYWxiIG1pdCBlaW5lbSBoYXVzaG9oZW4KVm9yc3BydW5nIGdld29ubmVuLCB3ZWlsIHNpZSBtaXQgZWluZXIgZ2VoZWltbmlzdm9sbGVuIE1BQ0hUIGluIFZlcmJpbmR1bmcKc3RlaHQuIE1laHJlcmUgQmF5ZXJuLVNvemlzIGJlaGF1cHRldGVuIGdlZ2VudWViZXIgWllOISwgRWRtdW5kIFN0b2liZXIgc2VpCk1pdGdsaWVkIGVpbmVzIE9yZGVucyBkZXIgSm9kZWwtUml0dGVyLCBkaWUgbWl0aGlsZmUgdm9uIEdlZGFua2Vua3JhZnQgdW5kCmVpbmVtIExldWNodHJhZGkgZGllIEdlZGFua2VuIGRlciBXYWVobGVyIGJlZWluZmx1c3NlbiBrb2VubnRlbi4gQW5mdWVocmVyIGRlcwpPcmRlbnMgc29sbCBlaW4gZ2V3aXNzZXIgRG9yZnZhdGVyIG9kZXIgc28gYWVobmxpY2ggc2Vpbi4gWllOISBibGVpYnQgZHJhbiEKCgpCZWl0cmFnIHZvbiBaWU4hIEF1dG9yIC8gQXV0b3JpbiBNb25hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBadW0gV2Vnc2NocmVpZW4gKE5vbm5lLCAgNC4gT2t0IDIwMDMsIDE4OjAwOjU2KToKfiMhIHJuPVZhbmlvbiBydD0xMDY1MjY1OTE0IHJnPXdpdHplCn4jISB0aWQ9MTA2NTE4NjM3MApQcm8gT0ogaW4gUnVicmlrIFdpdHplIQoKTm9ubmUuCgpPSjogQ2hlZiBicnVlbGx0OiAiV2llIG9mdCBoYWJlIGljaCBzY2hvbiBnZXNhZ3Qgc2llIHNvbGxlbiBiZWkgZGVyIEFyYmVpdApuaWNodCByYXVjaGVuISIKCkFuZ2VzdGVsbHRlcjogIkFiZXIgaWNoIGhhYmUgZG9jaCBnYXJuaWNodCBnZWFyYmVpdGV0IgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbm4gYmVpbSBBcnp0IChOb25uZSwgIDguIE9rdCAyMDAzLCAxMTo1OToxMSk6CkVpbmUgRnJhdSBiZWdsZWl0ZXQgaWhyZW4gRWhlbWFubiB6dW0gQXJ6dC4KCk5hY2ggZGVtIENoZWNrLVVwIHJ1ZnQgZGVyIEFyenQgZGllIEVoZWZyYXUgYWxsZWluIGluCnNlaW4gWmltbWVyIHVuZCBzYWd0OgoiSWhyIEVoZW1hbm4gaXN0IGluIGVpbmVyIHNjaHJlY2tsaWNoZW4gVmVyZmFzc3VuZywgZXIKbGVpZGV0IHVudGVyIGVpbmVyIHNlaHIgc2Nod2VyZW4gS3JhbmtoZWl0LCBkaWUgbWl0IFN0cmVzcwp2ZXJidW5kZW4gaXN0LiBTaWUgbXVlc3NlbiBtZWluZW4gQW53ZWlzdW5nZW4gZm9sZ2VuLApvZGVyIGVyIHdpcmQgc3RlcmJlbjogTWFjaGVuIFNpZSBpaG0gamVkZW4gTW9yZ2VuIGVpbgpuYWhyaGFmdGVzIEZydWVoc3R1ZWNrLiBadW0gTWl0dGFnZXNzZW4gZ2ViZW4gU2llIGlobQplaW4gZ3V0ZXMgRXNzZW4sIGRhcyBlciBtaXQgenVyIEFyYmVpdCBuZWhtZW4ga2FubiB1bmQgYW0KQWJlbmQga29jaGVuIFNpZSBpaG0gZWluIHdpcmtsaWNoIHdvaGxzY2htZWNrZW5kZXMKQWJlbmRlc3Nlbi4KTmVydmVuIFNpZSBpaG4gbmljaHQgbWl0IEFsbHRhZWdsaWNoZW0gdW5kIEtsZWluaWdrZWl0ZW4sCmRpZSBzZWluZW4gU3RyZXNzIG5vY2ggdmVyc2NobGltbWVybiBrb2VubnRlbi4gQmVzcHJlY2hlbgpTaWUga2VpbmUgUHJvYmxlbWUgbWl0IGlobS4gVmVyc3VjaGVuIFNpZSBpaG4genUgZW50c3Bhbm5lbgp1bmQgbWFzc2llcmVuIFNpZSBpaG4gaGFldWZpZy4gRXIgc29sbCB2b3IgYWxsZW0gdmllbCBUZWFtc3BvcnQKaW0gRmVybnNlaGVuIGFuc2VoZW4gdW5kIGFtIHdpY2h0aWdzdGVuLCBiZWZyaWVkaWdlbiBTaWUgaWhuCmtvbXBsZXR0IG1laHJtYWxzIGRpZSBXb2NoZSBzZXh1ZWxsLiBXZW5uIFNpZSBkYXMgZGllCm5hZWNoc3RlbiB6ZWhuIE1vbmF0ZSB0dW4sIHdpcmQgZXIgd2llZGVyIGdhbnogZ2VzdW5kIHdlcmRlbi4iCkF1ZiBkZW0gV2VnIG5hY2ggSGF1c2UgZnJhZ3QgaWhyIEVoZW1hbm46CiJXYXMgaGF0IGRlciBBcnp0IGRpciBnZXNhZ3Q/IgoiRHUgd2lyc3Qgc3RlcmJlbiIsIGFudHdvcnRldCBkaWUgRnJhdS4KCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFuYWdlcml1bSAoQW1hcnlsbGlzLCAyMC4gT2t0IDIwMDMsIDA5OjU2OjQxKToKTWFuYWdlcml1bQoKVGhlIGhlYXZpZXN0IGVsZW1lbnQga25vd24gdG8gc2NpZW5jZSBpcyBNYW5hZ2VyaXVtLgoKVGhpcyBlbGVtZW50IGhhcyBubyBwcm90b25zIG9yIGVsZWN0cm9ucywKYnV0IGhhcyBhIG51Y2xldXMgY29tcG9zZWQgb2YgMSBuZXV0cm9uLCAyIHZpY2UtbmV1dHJvbnMsCjUganVuaW9yIHZpY2UtbmV1dHJvbnMsIDI1IGFzc2lzdGFudCB2aWNlLW5ldXRyb25zLAphbmQgMTI1IGp1bmlvciBhc3Npc3RhbnQgdmljZS1uZXV0cm9ucyBhbGwgZ29pbmcKcm91bmQgaW4gY2lyY2xlcy4KCk1hbmFnZXJpdW0gaGFzIGEgaGFsZi1saWZlIG9mIHRocmVlIHllYXJzLAphdCB3aGljaCB0aW1lIGl0IGRvZXMgbm90IGRlY2F5IGJ1dCBpbnN0aXR1dGVzCmEgc2VyaWVzIG9mIHJldmlld3MgbGVhZGluZyB0byByZW9yZ2FuaXphdGlvbi4KCkl0cyBtb2xlY3VsZXMgYXJlIGhlbGQgdG9nZXRoZXIgYnkgbWVhbnMgb2YKdGhlIGV4Y2hhbmdlIG9mIHRpbnkgcGFydGljbGVzIGtub3duIGFzIG1vcm9ucy4KCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhc3RhdHVyIDtvKSAoTWllemUsIDIxLiBPa3QgMjAwMywgMDk6MDk6MDYpOgoKaHR0cDovL3d3dy5iaW5hcnlib3gubmV0L3Rhc3RhdHVyLmpwZwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZsdWcgKERlZXBibHVlLCAyMS4gT2t0IDIwMDMsIDE3OjI1OjA2KToKSW4gZWluZXIgQm9laW5nIHNpdHp0IGVpbiBhcmFiaXNjaCBhdXNzZWhlbmRlciBQYXNzYWdpZXIgdW5kIGJsYWV0dGVydCBpbgplaW5lciBJbGx1c3RyaWVydGVuLiBEaWUgU3Rld2FyZGVzcyBrb21tdCBtaXQgZGVuIEdldHJhZW5rZW4gZHVyY2ggZGVuIEdhbmcKdW5kIGZyYWd0OiAiRGFyZiBpY2ggSWhuZW4gZWluIEdsYXMgV2VpbiBhbmJpZXRlbj8iIEFudHdvcnRldCBkZXIgTWFubjogIk5laW4sCmRhbmtlLCBpY2ggbXVzcyBzcGFldGVyIG5vY2ggZmxpZWdlbi4iCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGbHVnIChBbGJvaW4sIDIxLiBPa3QgMjAwMywgMjE6NTE6NDkpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTA2Njc0OTkwNiByZz13aXR6ZQp+IyEgdGlkPTEwNjY3NDk5MDYKQnJ1aGFoYWhhIGRlciB3YXIgZ3V0LCBhYmVyIGRpZSB3ZW5pZ3N0ZW4gd2VyZGVuIGlobiB2ZXJzdGFuZGVuIGhhYmVuLiBEZW5uCmVpbiBhcmFiaXNjaGVyIFRlcnJvcmlzdCBkZXIgZGFzIEZsdWd6ZXVnIGZhbHNjaCBwYXJrZW4gd2lsbCB1bmQgc2ljaCBhdWYKc2VpbmUgIER1dHplbmQgSnVuZ2ZyYXVlbiBmcmV1dCB3aXJkIGF1Y2ggbmljaHQgaW0gbWluZGVzdGVuIGVyd2FlZ2VuIG1hbCBXZWluCnp1IHRyaW5rZW4uCgphbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW1pcyAoRGVlcGJsdWUsIDIzLiBPa3QgMjAwMywgMTU6MDg6NDEpOgpFaW5lIGtsZWluZSBTdGFkdCBpbSBhbWVyaWthbmlzY2hlbiBNaXR0ZWx3ZXN0ZW4gYmF1dCBzaWNoIGVpbmUgbmV1ZQoiVG93bmhhbGwiIHVuZCBiZWF1ZnRyYWd0IGVpbmVuIG9ydHNhbnNhZXNzaWdlbiBNYWxlciBtaXQgZWluZW0gc2Nob2VuZW4KZ3Jvc3NlbiBHZW1hZWxkZSBmdWVyIGRpZSBFaW5nYW5nc2hhbGxlLiBEYSBkYXMgR2ViYWV1ZGUKIkdlbmVyYWwtQ3VzdGVyLUJ1aWxkaW5nIiAtIG5hY2ggZGVtIGdyb3NzZW4gIkhlbGQiIGltIEluZGlhbmVya3JpZWcgLQpnZW5hbm50IHdlcmRlbiBzb2xsLCBnaWJ0IGRlciBCdWVyZ2VybWVpc3RlciB2b3IsIGRhc3MgZGFzIEdlbWFlbGRlIGRlbSBOYW1lbgpSZWNobnVuZyB0cmFnZW4gc29sbHRlLgoKRGVyIE1hbGVyIGlzdCB2ZXJ6d2VpZmVsdC4gV2FzIHNvbGwgZXIgZGEgbnVyIG1hbGVuLiBFciBnZWh0IHp1bQpCdWVyZ2VybWVpc3RlciB1bmQgZnJhZ3QgaWhuLCB3YXMgZXIgbWFsZW4ga29lbm50ZS4gRGVyIEJ1ZXJnZXJtZWlzdGVyIGdpYnQKaWhtCmRlbiBUaXAsIGRvY2ggbWFsIGRpZSBHZXNjaGljaHRzYnVlY2hlciB6dSBiZWZyYWdlbiB1bmQgdmllbGxlaWNodCBkaWUgbGV0emVuCkdlZGFua2VuIGRlcyBHZW5lcmFscyB2b3IgZGVyIGdyb3NzZW4gU2NobGFjaHQgYW0gTGl0dGxlIEJpZyBIb3JuIHp1bSBUaGVtYQp6dSBuZWhtZW4uCgpEZXIgTWFsZXIgZ2VodCBpbiBkaWUgQmlibGlvdGhlayB1bmQgaGF0IGF1Y2ggc2Nob24gYmFsZCBkYXMgcGFzc2VuZGUKZ2VmdW5kZW4uCgpEZXIgVGFnIGRlciBFaW53ZWlodW5nIC0gdW5kIGZlaWVybGljaGVuIEVudGh1ZWxsdW5nIGRlcyBncm9zc2VuIEdlbWFlbGRlcyAtCmlzdCBkYSB1bmQgZGVyIEJ1ZXJnZXJtZWlzdGVyIGVudGh1ZWxsdCBkYXMgR2VtYWVsZGUuCgpEaWUgZ2FuemUgRmVzdGdlc2VsbHNjaGFmdCBlcnN0YXJydC4KCkF1ZiBkZW0gQmlsZCBpc3QgZm9sZ2VuZGVzIHp1IHNlaGVuOiBFaW4gc2Nob2VuZXIgZ3J1ZW5lciBIdWVnZWwgLSBtaXR0ZW5kcmF1ZgplaW5lIEt1aCBtaXQgZWluZW0gSGVpbGlnZW5zY2hlaW4uIFVuZCBkcnVtaGVydW0gbGF1dGVyIHZvZWdlbG5kZSBJbmRpYW5lci4KCkRlciBCdWVyZ2VybWVpc3RlciBrcmFsbHQgc2ljaCBkZW4gTWFsZXIgdW5kIHN0ZWxsdCBpaG4genVyIFJlZGU6ICJXYXMgaGFiZW4KU2llIHNpY2ggZGFiZWkgZ2VkYWNodD8/PyIKCkRlciBNYWxlciBzdGFtbWVsdDogIkFiZXIgU2llIGhhYmVuIGRvY2ggZ2VzYWd0LCBpY2ggc29sbCBkZW4gbGV0enRlbgpHZWRhbmtlbiBkZXMgR2VuZXJhbHMgdm9yIGRlciBncm9zc2VuIFNjaGxhY2h0IGFtIExpdHRsZSBCaWcgSG9ybiBtYWxlbiIKCkRlciBCdWVyZ2VybWVpc3RlcjogIkphIC0gZGFzIGhhYiBpY2ggZ2VzYWd0IC0gYWJlciB3YXMgaXN0IGRhcyBmdWVyIGVpbgpvYnN6b2VuZXMgQmlsZD8/ISE/PyIKCkRlciBNYWxlcjogIk5hamEgLSBkaWUgbGV0emVuIEdlZGFua2VuIEdlbmVyYWwgQ3VzdGVycyB3YXJlbiAiSG9seSBDb3csIHdoYXQKYXJlIGFsbCB0aGUgZipja2luZyBpbmRpYW5zIGRvaW5nIGFyb3VuZCBoZXJlPz8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYSBkYW5uIGFyYmVpdGV0IG1hbCBzY2hvZW4gKEdhbmRvLCAyOS4gT2t0IDIwMDMsIDE1OjI0OjI0KToKCgoKRWluIEtvc292YXIga29tbXQgbmFjaCBLb2Vsbi4KQXVmZ2VyZWd0IGhhZWx0IGVyIGRlbiBlcnN0ZW4gUGFzc2FudGVuIGFuOiBHdXRlbiBUYWcsIEhlcnIKRGV1dHNjaGVyLCBkYW5rZSBtaWNoIGF1Zm5laG1lbiBpbiBzY2hvZW5lbiBldWVyIExhbmQsIHVuZC4uLiIgIERlcgpBbmRlcmUgdW50ZXJicmljaHQgaWhuOiAiSGUsIGhlLCBpY2ggbml4IGJpbiBEZXV0c2NoZXIsIGljaApNYXJva2thbmVyISIgIERlciBLb3NvdmFyIGdlaHQgd2VpdGVyIHVuZCBzcHJpY2h0IHdlbmlnIHNwYWV0ZXIgZGVuCk5hZWNoc3RlbiBhbjogIkFoLCAgZGFua2UgLEhlcnIgRGV1dHNjaGVyLCBtaWNoIG1laW5lIEZhbWlsaWUKaGllcmJyaW5nZW4uLi4iICBVbmQgd2llZGVyIHdpcmQgZXIgdW50ZXJicm9jaGVuOiAiRXkgTWFubiwgaWNoIGJpbgpUdWVya2UhIiAgRGVyIEtvc292YXIgZ2VodCBzZWluZXMgV2VnZXMgdW5kIHNwcmljaHQgd2llZGVyIGplbWFuZGVuCmFuOiAiSGVyciAgRGV1dHNjaGVyLCBpY2ggSWhuZW4gZGFua2UgZnVlciBHYXN0ZnJldW5kc2NoYWZ0Li4uLiIKIkFiZXIgbW9uIGFtaSwgZHUgbmljaHQgc2VoZW4gZGFzcyBpY2ggYmluIHNjaHdhcno/IEljaCBiaW4KS29uZ29sZXNlLCAgbmljaHQgRGV1dHNjaGVyLiIgICJBYmVyIiwgZnJhZ3QgZGVyIEtvc292YXIKdmVyendlaWZlbHQsICJ3byBzaW5kIGRhbm4gZGllIERldXRzY2hlbj8iICBEZXIgS29uZ29sZXNlIHNpZWh0IGF1ZgpzZWluZSBVaHIgdW5kIGFudHdvcnRldDogIk9oLCBkaWUsIGRpZQphcmJlaXRlbiBiaXMgMTdoLi4uIgoKR2FuZG8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYSBkYW5uIGFyYmVpdGV0IG1hbCBzY2hvZW4gKEdsb2luc29uLCAyOS4gT2t0IDIwMDMsIDE1OjI2OjIwKToKfiMhIHJuPUdhbmRvIHJ0PTEwNjc0Mzc0NjQgcmc9d2l0emUKfiMhIHRpZD0xMDY3NDM3NDY0CkFoLCB3aWUgZ2VzY2htYWNrdm9sbC4gSWNoIG11c3N0ZSB3aXJrbGljaCBhbiBtaWNoIGhhbHRlbiBtaWNoIG5pY2h0IHVlYmVyCnZlcmthcHB0ZSBBdXNsYWVuZGVyaGFzc2VyIHp1IGFlcmdlcm4gLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOYSBkYW5uIGFyYmVpdGV0IG1hbCBzY2hvZW4gKEltZGEsIDI5LiBPa3QgMjAwMywgMTU6MzI6MzkpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTA2NzQzNzU4MCByZz13aXR6ZQp+IyEgdGlkPTEwNjc0Mzc0NjQKT2gsIG1hbCB3aWVkZXIgYmVydWZzYmV0cm9mZmVuPwoKV2llIG1hY2h0IGRpZSBNb3RvcnNhZWdlIHZvbSBLbGFuPyBSZWVlZWVlbm5ubm5ubmlnZ2VybmlnZ2VybmlnZ2VyLgoKSW1kYS4gTWFsdCBzZWluZW4gTmVnZXIgYW4gd2llIGVyIHdpbGwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFcyB3YXIgZWlubWFsIGVpbmUgYmF0dGVyaWViZXRyaWViZW5lIFdlaWhuYWNoc3RrZXJ6ZS4uLiAoRGVlcGJsdWUsICA0LiBOb3YgMjAwMywgMjA6MTI6MTkpOgpCZWkgZGVyIGZvbGdlbmRlbiBXZWlobmFjaHNrZXJ6ZSBoYW5kZWx0IGVzIHNpY2ggdW0gZWluZW4gZnVlbmYgWmVudGltZXRlcgpncm9zc2VuIGJlbGV1Y2h0YmFyZW4gQW5zdGVja2VyIG1pdCBkZW0gc2Vuc2F0aW9uZWxsZW4gTmFtZW4gIkdXSyA5MDkxIi4gRGFzCiJ2aWVsc2VpdGlnIHZlcndlbmRiYXJlIiBNb2RlbGwgaXN0IHNjaG9uIGFuIHNpY2ggZWluIFdpdHouIERpZSBBbmxlaXR1bmcKZGFmdWVyIHVlYmVydHJpZmZ0IGFiZXIgYWxsZXMuIChXb2xmZ2FuZyBGcmllZHJpY2hzICsgTkVVRSBQUkVTU0UpOgoKIkhlcnpsaWNoc3QgR2x1Y2t3dWVuc2NoIHp1IGdlbXV0bGljaGVyIFdlaWhuYWNodHNrZXJ6ZSBLYXVmLiBbLi4uXSBNaXQKc2Vuc2F6aW9uZWxsIE1vZGVsbCBHV0sgOTA5MSBTaWUgYmVrb21lbiBuaWNodCB0ZXV0b25pc2NoZSBHZW11dGxpY2hrZWl0CmZ1ZXIgdHJhdXRlcyBIZWltIG51ciwgYXVjaCBFcmZvbGcgYWxzIG1vZGVybmVyIE1lbnNjaCBiZWkgYW5kZXJlcwpHZXNjaGxlY2h0IG5hY2ggV2VpaG5hY2h0c2dhbnogYXVmZ2VnZXNzZW4gdW5kIGxhZW5nZXIsIHdlaWwgQmF0dGVyaWUgdmllbApaZWl0IGd1dCBsYW5nZS4KClp1IGVycmVpc2NoZW4gR2x1Y2tzZWxpZ2tlaXQgdW50ZXIgZmluc3RyZW0gVGFubiwgZ2FueiBlaW5mYWNoIEhhbmRiZWRpZW51bmcKdm9uIEdXSyA5MDkxOgoKMS4gQXVzcGFjayB1bmQgZnJldS4KMi4gU2xpcHBlbCBBIGthdW0gYWJiaWVnZW4gdW5kIHZlcmtsYXBwZW4gaW4gR2VnZW5zdGlwcGVsIEIgZnVlcgpJbGx1bWluYXRpb24gdm9uIEdXSyA5MDkxLgozLiBNaXQgS2xhbWVyIEMgaW4gU2FjY28gb2RlciBKYWNrZSB2b24gTGViZW5zcGFydG5lciBlaW5mcmFlc2VuCnVuZCBsYWVjaGVsbiBmdWVyIEVyZm9sZyBtaXQgR1dLIDkwOTEuCjQuIEZ1ZXIgZWlnZW5zIFdlaWhuYWNodHNmZWllcnVuZyBHV0sgOTA5MSBzZXR6ZW4gYXVmIFRpc2NoLgo1LiBGdWVyIGthcHV0IG9kZXIgQmF0dGVyaWUgbWVociB6dSBHZW11dGxpY2hrZWl0IGJlc2Nod2VyZW4gYW46CndpciwgQmlzbWFyY2tzdHJhc3NlIDQuCgpGdWVyIG5ldWUgQmF0dGVyaWUgYWx0IEJhdHRlcmllIHp1cnVlY2sgZnVlciBTYXViZXJ3ZWx0IGluIGRldXRzY2hlciBXYWxkLiIKClZpZWwgU3Bhc3MgbWl0IEdXUiA5MDkxCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoxMCBHZWJvdGUgbWFsIGFuZGVycyAoTW9yZ290aCwgMTEuIE5vdiAyMDAzLCAxNzo1MjoxOCk6CjEuICBIb25lc3R5IGRvZXMgbm90IHdvcmshCgoyLiAgRmVlbGluZ3MgZG9uJ3Qgd29yayBlaXRoZXIhCgozLiAgQ2xldmVybmVzcyBydWxlcyEKCjQuICBNaW5kIHlvdXIgb3duIGFkdmFudGFnZSEKCjUuICBEb24ndCB0cnVzdCBhbnlvbmUhCgo2LiAgTmV2ZXIgYXNrLCBpZiB5b3UgZG9uJ3Qgd2FudCB0byBoZWFyIHRoZSBhbnN3ZXIhCgo3LiAgTmV2ZXIgbGV0IGEgZ2lybCBnZXQgYmV0d2VlbiB5b3UgYW5kIHlvdXIgZnJpZW5kIQoKOC4gIEJhYmVzIGFyZSBiaXRjaGVzIQoKOS4gIEV4cGVjdCB0aGUgd29yc3QgY2FzZSEKCjEwLiBMb3Npbmcgc3Vja3MhCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIHNjaGxlY2h0ZXIgV2l0eiAoTm9ubmUsIDE0LiBOb3YgMjAwMywgMDk6MjA6MDMpOgotIExpZWJzdGUsIGRhcmYgaWNoIGRpciBTY2huZWVnbGNrY2hlbiBzYWdlbj8KLSBXaWVzbyBkYXM/Ci0gV2VpbCBEdSBiaXN0IG1laW5lIGVyc3RlIQotIERhcmYgaWNoIGRpciBCb2luZyBzYWdlbj8KLSBKYSwgYWJlciB3aWVzbyBhdXNnZXJlY2huZXQgQm9pbmc/Ci0gV2VpbCBEdSBtZWluIDc0N3RlciBiaXN0LgoKQXVzIGR0ai4gSXN0IHdpcmtsaWNoIHNjaGxlY2h0LCBhYmVyIGVyIGJyYWNodGUgbWljaCBpbnMgR3J1ZWJlbG4gKmcqCgpOb25uZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCBlaW4gc2NobGVjaHRlciBXaXR6IHZvbiBtaXIgKEFsa29ob2wsIDE0LiBOb3YgMjAwMywgMTE6MDU6MDgpOgogRGVyIGtsZWluZSBEYXZpZCwgZWluIEp1ZGUsIHdhciBlaW5lIE5pZXRlIGluIE1hdGhlbWF0aWsuIFNlaW5lIEVsdGVybgp2ZXJzdWNodGVuIGFsbGVzOiBMZWhyZXIsIEVyemllaGVyLCBRdWl6a2FydGVuLCBzcGV6aWVsbGUKVW50ZXJyaWNodHN6ZW50cmVuIHVuZCBuaWNodHMgaGFsZi4gQWxzIGxldHp0ZW4gQXVzd2VnIHJpZXQgaWhuZW4KamVtYW5kLCBlcyBpbiBlaW5lciBrYXRob2xpc2NoZSBTY2h1bGUgenUgdmVyc3VjaGVuLiAiRGllIE5vbm5lbiBkb3J0CnNpbmQgc3RyZW5nIiwgc2FndGVuIHNpZS4KCkRhdmlkIHd1cmRlIHByb21wdCBuYWNoIFN0LiBNYXJ5cyB6dXIgU2NodWxlIGdlZ2ViZW4uIFNjaG9uIGFtIGVyc3RlbgpUYWcgbmFjaCBkZXIgU2NodWxlIGxpZWYgRGF2aWQgZHVyY2ggZGllIFR1ZXIgdW5kIHNjaG51cnN0cmFja3MgaW4gc2VpbgpaaW1tZXIsIHNvZ2FyIG9obmUgc2VpbmVyIE11dHRlciBlaW5lbiBLdXNzIHp1IGdlYmVuLiBFciBiZWdhbm4sIHdpZQp3aWxkIHp1IGxlcm5lbjsgQnVlY2hlciB1bmQgUGFwaWVyZSBmYW5kZW4gc2ljaCB1YmVyIGRhcyBnYW56ZSBaaW1tZXIKYXVzZ2VicmVpdGV0LiBTb2ZvcnQgbmFjaCBkZW0gRXNzZW4gbGllZiBlciBuYWNoIG9iZW4sIG9obmUgZGFzCkZlcm5zZWhlbiB6dSBiZWFjaHRlbiB1bmQgdmVyZ3J1YiBzaWNoIG5vY2ggbWVociBpbiBkaWUgQnVlY2hlci4gU2VpbmUKRWx0ZXJuIHdhcmVuIGVyc3RhdW50LgoKRGllc2VzIEJldHJhZ2VuIGRhdWVydGUgd29jaGVubGFuZyBhbiBiaXMgenVtIFRhZyBkZXIgTm90ZW52ZXJ0ZWlsdW5nLgpEYXZpZCBsZWd0ZSBkZW4gVW1zY2hsYWcgc3RpbGwgYXVmIGRlbiBUaXNjaCB1bmQgZ2luZyB2b2xsZXIgU2NocmVja2VuCmF1ZiBzZWluIFppbW1lci4gU2VpbmUgTXV0dGVyIG9lZmZuZXRlIGRlbiBVbXNjaGxhZy4gRGF2aWQgaGF0dGUgaW4KTWF0aGVtYXRpayBlaW5lIEVpbnMgZXJoYWx0ZW4hIFNpZSBsaWVmIGluIHNlaW4gWmltbWVyIGhpbmF1Ziwgc2NobGFuZwpkaWUgQXJtZSB1bSBpaG4gdW5kCmZyYWd0ZTogIkRhdmlkLCBMaWVibGluZywgd2llIGlzdCBkYXMgcGFzc2llcnQ/IFdhcmVuIGVzIGRpZSBOb25uZW4iPwoKIk5laW4iLCBhbnR3b3J0ZXRlIERhdmlkLiAiQW0gZXJzdGVuIFRhZywgYWxzIGljaCBpbiBkZXIgU2NodWxlIGRlbgpCdXJzY2hlbiBzYWgsIGRlciBhbiBkYXMgUGx1c3plaWNoZW4gZ2VuYWdlbHQgd2FyLCB3dXNzdGUgaWNoLCBkaWUKdmVyc3RlaGVuIGtlaW5lbiBTcGFzcyAhPyEiLgoKQWxrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTWFsIGVpbiBzY2hsZWNodGVyIFdpdHogdm9uIG1pciAoRGFya2xvciwgMTQuIE5vdiAyMDAzLCAxMjo0OTo0Mik6Cn4jISBybj1BbGtvaG9sIHJ0PTEwNjg4MDQzMDggcmc9d2l0emUKfiMhIHRpZD0xMDY4ODA0MzA4CklzIGFiZXIgbmUgV2llZGVyaG9sdW5nIC0gZGVyIHd1cmRlIGxldHp0ZW5zIHNjaG9uIGhpZXIgZ2Vwb3N0ZXQuLi4KCkRhcmtsb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTWFsIGVpbiBzY2hsZWNodGVyIFdpdHogdm9uIG1pciAoQmFtYmksIDE0LiBOb3YgMjAwMywgMTM6MjU6NDMpOgp+IyEgcm49RGFya2xvciBydD0xMDY4ODEwNTgyIHJnPXdpdHplCn4jISB0aWQ9MTA2ODgwNDMwOApWaWVsbGVpY2h0IGluIG1lZ2FzY2htYXJybj8gSWNoIGhhYiBzbyBlaW4gUG9zdGluZyBub2NoIG5pY2h0IGhlaXIgZ2VzZWhlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE1hbCBlaW4gc2NobGVjaHRlciBXaXR6IHZvbiBtaXIgKEJvaW5nLCAxNC4gTm92IDIwMDMsIDEzOjI3OjU2KToKfiMhIHJuPUJhbWJpIHJ0PTEwNjg4MTI3NDMgcmc9d2l0emUKfiMhIHRpZD0xMDY4ODA0MzA4CkphLCBNb250YW51cyBoYXR0ZSBkZW4gaW4gTWVnYXNjaG1hcnJuIGdlcG9zdGV0IC4uLiBlciB3b2xsdGUgZGFtaXQKaXJnZW5kZWluZSBBdXNzYWdlIG1hY2hlbiwgaGF0IGFiZXIga2VpbmVyIGthcGllcnQgOykKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWFsIGVpbiBzY2hsZWNodGVyIFdpdHogdm9uIG1pciAoSHVtbmksIDE0LiBOb3YgMjAwMywgMTM6Mjk6MDYpOgp+IyEgcm49Qm9pbmcgcnQ9MTA2ODgxMjg3NiByZz13aXR6ZQp+IyEgdGlkPTEwNjg4MDQzMDgKSG1tLi4gYmVpIHVucyBpbiBkZXIgU2NodWxlIGhhZW5nZW4gYXVjaCB1ZWJlcmFsbCBLcmV1emUgcnVtLi4gdW5kIHdlbm4gaWNoCm1pdCBNYXRoZW1hdGlrIGluIFZlcnRyZXR1bmdzc3R1bmRlbiBhbmtvbW1lIHNjaHJlaWVuIGRpZSBTY2h1ZWxlci4uIGljaApzb2xsdGUgbWlyIEdlZGFua2VuIHVlYmVyIFVyc2FjaGUgdW5kIFdpcmt1bmcgbWFjaGVuLi4uCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTWFsIGVpbiBzY2hsZWNodGVyIFdpdHogdm9uIG1pciAoQWxrb2hvbCwgMTQuIE5vdiAyMDAzLCAxMzozNToyMyk6Cn4jISBybj1Cb2luZyBydD0xMDY4ODEyODc2IHJnPXdpdHplCn4jISB0aWQ9MTA2ODgwNDMwOAptZWdhc2NobWFycm4/IHdhcyBpc3QgZGFzPwoKQWxrCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBNYWwgZWluIHNjaGxlY2h0ZXIgV2l0eiB2b24gbWlyIChBa2FzaGEsIDE0LiBOb3YgMjAwMywgMTM6MzY6MDkpOgp+IyEgcm49QWxrb2hvbCBydD0xMDY4ODEzMzIzIHJnPXdpdHplCn4jISB0aWQ9MTA2ODgwNDMwOApXb21pdCB3aWVkZXIgZWlubWFsIGJld2llc2VuIHdhZXJlOiBNZWdhc2NobWFycm5sZXNlciB3aXNzZW4gbWVoci4KCkFrYXNoYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29tcHV0ZXJmcmF1ZW4gKE1lZGljLCAxNS4gTm92IDIwMDMsIDE4OjM0OjE4KToKRGllIEludGVybmV0LUZyYXU6CgpNYW5uIG11c3MgYmV6YWhsZW4sIHVtIHNpY2ggWnVnYW5nIHp1IGlociB6dSB2ZXJzY2hhZmZlbi4KCgoKRGllIFNlcnZlci1GcmF1OgoKU2llIGlzdCBpbW1lciBiZXNjaGFlZnRpZ3QsIHdlbm4gZHUgc2llIGJyYXVjaHN0LgoKCgpEaWUgV2luZG93cy1GcmF1OgoKRHUgd2Vpc3N0LCBkYXNzIHNpZSB2aWVsZSBGZWhsZXIgaGF0LCBhYmVyIGR1IGthbm5zdCBuaWNodCBvaG5lIHNpZSBsZWJlbi4KCgoKRGllIFBvd2VycG9pbnQtRnJhdToKClNpZSBpc3QgaWRlYWwsIHVtIHNpZSBhdWYgRmVpZXJuIGRlbiBMZXV0ZW4genUgcHJhZXNlbnRpZXJlbi4KCgoKRGllIEV4Y2VsLUZyYXU6CgpNYW4gc2FndCBzaWUga29lbm5lIHZpZWxlcywgYWJlciBkdSBiZW51dHp0IHNpZSBudXIgZnVlciBkaWUgdWVibGljaGVuIDQKR3J1bmRmdW5rdGlvbmVuLgoKCgpEaWUgV29yZC1GcmF1OgoKU2llIHVlYmVycmFzY2h0IGRpY2ggaW1tZXIgd2llZGVyIHVuZCBlcyBnaWJ0IG5pZW1hbmRlbiBhdWYgZGVyIFdlbHQsIGRlciBzaWUKd2lya2xpY2ggdmVyc3RlaHQuCgoKCkRpZSBELk8uUy4tRnJhdToKCkFsbGUgaGF0dGVuIHNpZSBzY2hvbiwgYWJlciBuaWVtYW5kIHdpbGwgc2llIGpldHp0LgoKCgpEaWUgQmFjay11cC1GcmF1OgoKRHUgZ2xhdWJzdCBzaWUgaGFldHRlIGFsbGVzLCBhYmVyIHdlbm4gZXMgZGFyYXVmIGFua29tbXQgZmFlbGx0IGRpciBhdWYsIGRhc3MKaWhyIGV0d2FzIGZlaGx0LgoKCgpEaWUgU2NhbmRpc2stRnJhdToKCldpciB3aXNzZW4sIGRhc3Mgc2llIEd1dGVzIHR1dCB1bmQgZGFzcyBzaWUgbnVyIGhlbGZlbiB3aWxsLCBhYmVyIGltIEdydW5kZQp3ZWlzcyBuaWVtYW5kIHdhcyBzaWUgd2lya2xpY2gga2Fubi4KCgoKRGllIFNjcmVlbi1TYXZlci1GcmF1OgoKU2llIGhhdCBrZWluZSB3aXJrbGljaCB3aWNodGlnZSBGdW5rdGlvbiwgYWJlciBlcyBnZWZhZWxsdCBkaXIsIHNpZQphbnp1c2NoYXVlbi4KCgoKRGllIEhhcmQtRGlzay1GcmF1OgoKU2llIGVyaW5uZXJ0IHNpY2ggYW4gYWxsZXMsIHp1IGplZGVyIFRhZ2VzemVpdC4KCgoKRGllIEUtTWFpbC1GcmF1OgoKVm9uIGRlbiB6ZWhuIERpbmdlbiwgZGllIHNpZSBlcnphZWhsdCwgc2luZCA5IGFic29sdXRlciBRdWF0c2NoLgoKCgpEaWUgVmlydXMtRnJhdToKCldlbm4gZHUgZXMgYW0gd2VuaWdzdGVuIGVyd2FydGVzdCwgaW5zdGFsbGllcnQgc2llIHNpY2ggaW4gZGVpbmVyIFdvaG51bmcgdW5kCmJlbWFlY2h0aWd0IHNpY2ggaWhyZXIuIFdlbm4gZHUgdmVyc3VjaHN0IHNpZSB6dSBkZWluc3RhbGxpZXJlbiwgd2lyc3QgZHUgc2Vocgp2aWVsZSBTYWNoZW4gdmVybWlzc2VuOyB3ZW5uIGR1IGVzIG5pY2h0IHR1c3QgdmVybGllcnN0IGR1IGFsbGVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWluIHBvbGl0aXNjaGVyIFdpdHohIChvaG5lIE5pdmVhdSkgKE5vbm5lLCAxOC4gTm92IDIwMDMsIDA4OjQxOjAwKToKSG9obWFubiB1bmQgTWVya2VsIGJlZ2VnbmVuIHNpY2ggaW0gTWFnZW4gdm9uIFBhdWwgU3BpZWdlbC4KSG9obWFubiBpc3QgZ2FueiB2ZXJibHVlZmZ0OgoiRGFzcyBlciBtaWNoIGdlZnJlc3NlbiBoYXQsIGthbm4gaWNoIGphIHZlcnN0ZWhlbi4gQWJlciBkaWNoPyIKTWVya2VsIGRhcmF1ZiBzdG9sejoKIk1pY2ggaGF0IGVyIGphIGF1Y2ggbmljaHQgZ2VmcmVzc2VuLiBJY2gga29tbWUgdm9uIGRlciBhbmRlcmVuIFNlaXRlLiIKCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbiBwb2xpdGlzY2hlciBXaXR6ISAob2huZSBOaXZlYXUpIChDYXR3ZWF6bGUsIDE4LiBOb3YgMjAwMywgMDg6NDQ6MjEpOgp+IyEgcm49Tm9ubmUgcnQ9MTA2OTE0MTI2MCByZz13aXR6ZQp+IyEgdGlkPTEwNjkxNDEyNjAKQXVzdGF1c2NoYmFyLCBqYS4KCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFaW4gcG9saXRpc2NoZXIgV2l0eiEgKG9obmUgTml2ZWF1KSAoQWxib2luLCAxOC4gTm92IDIwMDMsIDEwOjMzOjQxKToKfiMhIHJuPUNhdHdlYXpsZSBydD0xMDY5MTQxNDYxIHJnPXdpdHplCn4jISB0aWQ9MTA2OTE0MTI2MAp5ZXAsIGljaCBnbGF1YmUgZGllIE9yaWdpbmFsZmFzc3VuZyB3YXIgbWl0IERyZXdlcm1hbm4gdW5kIFJhdHppbmdlciBpbSBNYWdlbgpkZXMgUGFwc3Rlcy4KCkFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFaW4gcG9saXRpc2NoZXIgV2l0eiEgKG9obmUgTml2ZWF1KSAoQ2FkcmFjaCwgMTguIE5vdiAyMDAzLCAxMzo0Njo0OCk6Cn4jISBybj1BbGJvaW4gcnQ9MTA2OTE0ODAyMSByZz13aXR6ZQp+IyEgdGlkPTEwNjkxNDEyNjAKV29iZWkgdWViZXIgZGllc2VuIFdpdHogZGFubiBudXIgTGV1dGUgbGFjaGVuIGtvZW5udGVuLCBkaWUgdm9tIFZhdGlrYW4Kd2lya2xpY2ggX251bGxfIEFobnVuZyBoYWJlbi4gRGFzIFJhdHppbmdlciBkaWUgaGVpbWxpY2hlIEVtaW5lbnogZGVzIFZhdGlrYW5zCmlzdCwgaXN0IGFuc2ljaCBuYWVtbGljaCBnYXIgbmljaHQgbWVociBzbyBnZWhlaW0gc29uZGVybiB6aWVtbGljaCBiZWthbm50LgoKQ2FkKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRWluIHBvbGl0aXNjaGVyIFdpdHohIChvaG5lIE5pdmVhdSkgKE11YWRpYiwgMTguIE5vdiAyMDAzLCAxNDoyMjowMSk6Cn4jISBybj1DYWRyYWNoIHJ0PTEwNjkxNTk2MDggcmc9d2l0emUKfiMhIHRpZD0xMDY5MTQxMjYwCnNvIGJla2FubnQgZGFzcyBtYW4gc2ljaCBmcmFnZW4gbXVzcyBvYiBlcyBzdGltbXQgLSBnZWxsZSA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFaW4gcG9saXRpc2NoZXIgV2l0eiEgKG9obmUgTml2ZWF1KSAoSW1kYSwgMTguIE5vdiAyMDAzLCAxNzoxMjoyOSk6Cn4jISBybj1BbGJvaW4gcnQ9MTA2OTE0ODAyMSByZz13aXR6ZQp+IyEgdGlkPTEwNjkxNDEyNjAKSWNoIGRhY2h0ZSBkaWUgT3JnaW5hbGZhc3N1bmcgd2FyZW4gV2VobmVyLCBIb25uZWNrZXIgdW5kIFN0YWxpbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVpbiBwb2xpdGlzY2hlciBXaXR6ISAob2huZSBOaXZlYXUpIChPZ28sIDE4LiBOb3YgMjAwMywgMTc6NTc6MjMpOgp+IyEgcm49Q2FkcmFjaCBydD0xMDY5MTU5NjA4IHJnPXdpdHplCn4jISB0aWQ9MTA2OTE0MTI2MApHZWhvZXJ0IFJhdHppbmdlciBudW4genUgT3B1cyBEZWk/CgpPZ28sIGRlciBzaWNoIGRhcyBzY2hvbm1hbCBnZWZyYWd0IGhhdC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbWFsIHdpZWRlciBuZW4gc2NobGVjaHRlciBXaXR6IHZvbiBtaXIgKEFsa29ob2wsIDIwLiBOb3YgMjAwMywgMTQ6Mzc6MTQpOgphdWYgZGllIEdlZmFociBoaW4sIGRhc3MgZGVyIGluIE1lZ2FzY2htYXJybiBzY2hvbiB6dSBsZXNlbiB3YXIgLi4uCgpEZXIgZXJzdGUgVGFnIGRlcyBTYWtpcm8gU3V6dWtpIGluIGVpbmVyIGFtZXJpa2FuaXNjaGVuIFNjaHVsZS4KCkRpZSBLbGFzc2VubGVocmVyaW4gc3RlbGx0IGRlciBLbGFzc2UgZWluZW4gbmV1ZW4gU2NodWVsZXIgdm9yLCBTYWtpcm8KU3V6dWtpIChkZXIgU29obiBkZXMgVm9yc3RhbmRzdm9yc2l0emVuZGVuIHZvbiBTb255KS4gRGllIFN0dW5kZQpiZWdpbm50LgoKS2xhc3NlbmxlaHJlcmluOiAiTWFsIHNlaGVuIHdlciBkaWUgYW1lcmlrYW5pc2NoZSBLdWx0dXJnZXNjaGljaHRlCmJlaGVycnNjaHQsIHdlciBoYXQgZ2VzYWd0OiBHZWJ0IG1pciBkaWUgRnJlaWhlaXQgb2RlciBkZW4gVG9kLiIKTWF1c2VzdGlsbCBpbiBkZXIgS2xhc3NlLCBTdXp1a2kgaGVidCBkaWUgSGFuZCIgUGF0cmljayBIZW5yeSAxNzc1IGluClBoaWxhZGVscGhpYSIgU2VociBndXQsIFN1enVraS4KClVuZCB3ZXIgaGF0IGdlc2FndDogIkRlciBTdGFhdCBpc3QgZGFzIFZvbGssIGRhcyBWb2xrIGRhcmYgbmljaHQKdW50ZXJnZWhlbi4iIFN1enVraSBzdGVodCBhdWY6IiBBYnJhaGFtIExpbmNvbG4gMTg2MyBpbiBXYXNoaW5ndG9uLiIgRGllCktsYXNzZW5sZWhyZXJpbiBzY2hhdXQgYXVmIGlocmUgU2NodWVsZXIgdW5kIHNhZ3Q6ICJTY2hhZW10IEV1Y2gsIFN1enVraQppc3QgSmFwYW5lciB1bmQga2VubnQgZGllIGFtZXJpa2FuaXNjaGUgR2VzY2hpY2h0ZSBiZXNzZXIgYWxzIGlociIKCk1hbiBob2VydCBlaW5lIGxlaXNlIFN0aW1tZSBhdXMgZGVtIEhpbnRlcmdydW5kOiAiTGVja3QgbWljaCBhbSBBcnNjaAppaHIgU2NoZWlzc2phcGFuZXIhIiAiV2VyIGhhdCBkYXMgZ2VzYWd0PyIgcnVmdCBkaWUgTGVocmVyaW4uIFN1enVraQpoZWJ0IGRpZSBIYW5kIHVuZCBvaG5lIHp1IHdhcnRlbiBzYWd0IGVyOiIgR2VuZXJhbCBNY0FydGh1ciAxOTQyCmJlaW0gS2FuYWwgdm9uIFBhbmFtYSB1bmQgTGVlIElhY29jY2EgMTk4MiBiZWkgZGVyIFZlcnNhbW1sdW5nIGRlcwpBdWZzaWNodHNyYXRzIHZvbiBHZW5lcmFsbW90b3JzLiIKCkRpZSBLbGFzc2UgaXN0IHN1cGVyc3RpbGwsIHZvbiBoaW50ZW4gaG9lcnQgbWFuICJJY2ggbXVzcyBnbGVpY2gKa290emVuISIgRGllIExlaHJlcmluIHNjaHJlaXQ6ICJXZXIgd2FyIGRhcz8hIiBTdXp1a2kgYW50d29ydGV0OgoiR2VvcmdlIEJ1c2ggU2VuaW9yIHp1bSBqYXBhbmlzY2hlbiBlcnN0ZW4gTWluaXN0ZXIgVGFuYWthIHdhZWhyZW5kIGRlcwpNaXR0YWdzbWFobHMgaW4gVG9raW8gMTk5MS4iCgpFaW5lciBkZXIgU2NodWVsZXIgc3RlaHQgYXVmIHVuZCBydWZ0IHNhdWVyOiAiQmxhcyBtaXIgZWluZW4hIiBEaWUKTGVocmVyaW4gYXVmZ2VicmFjaHQ6ICJKZXR6dCBpc3QgU2NobHVzcyB3ZXIgd2FyIGRhcyBqZXR6dD8iIFN1enVraQpvaG5lIG1pdCBkZXIgV2ltcGVyIHp1IHp1Y2tlbjogIkJpbGwgQ2xpbnRvbiB6dSBNb25pY2EgTGV3aW5za3kgMTk5NyBpbgpXYXNoaW5ndG9uIGltIG92YWxlbiBTYWFsIGRlcyBXZWlzc2VuIEhhdXNlcy4iCgpFaW4gYW5kZXJlciBTY2h1ZWxlciBzdGVodCBhdWYgdW5kIHNjaHJlaXQgIlN1enVraSBkdSBTY2hlaXNzc3R1ZWNrIgpVbmQgU3V6dWtpOiAiVmFsZW50aW5vIFJvc3NpIGluIFJ5byBiZWltIEdyYW5kIFByaXggTW90b3JyYWRyZW5uZW4gaW4KU3VlZGFmcmlrYSAyMDAyIiBEaWUgS2xhc3NlIHZlcmZhZWxsdCBpbiBIeXN0ZXJpZSwgZGllIExlaHJlcmluIGZhZWxsdAppbiBPaG5tYWNodCwgZGllIFR1ZXIgZ2VodCBhdWYgdW5kIGRlciBEaXJla3RvciBrb21tdCBoZXJlaW46ICJTY2hlaXNzZSwKaWNoIGhhYmUgbm9jaCBuaWUgc28gZWluIER1cmNoZWluYW5kZXIgZ2VzZWhlbiEiIFN1enVraTogIkJ1bmRlc2thbnpsZXIKU2Nocm9lZGVyIG5hY2hkZW0gaWhtIGRpZSBIYXVzaGFsdHNyZWNobnVuZyB2b24gRmluYW56bWluaXN0ZXIgRWljaGVsCnZvcmdlbGVndCB3dXJkZS4iCgpBbGtpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGluIGRlciBTY2h1bGUuLi4gKEFwb2xsb25pYSwgMjEuIE5vdiAyMDAzLCAxMTowMzoyMik6CldpZSB1bmxuZ3N0IGJlcmljaHRldCB3dXJkZSwgc2FoIHNpY2ggZWluZSBiZXN0aW1tdGUgUHJpdmF0c2NodWxlIGluCldhc2hpbmd0b24gbWl0IGVpbmVtIGVpbnppZ2FydGlnZW4gUHJvYmxlbSBrb25mcm9udGllcnQuIEVpbmUgWmFobCB2b24KMTItamhyaWdlbiBNZGNoZW4gYmVnYW5uLCBMaXBwZW5zdGlmdCB6dSBiZW51dHplbiB1bmQgc2ljaCBhdWYgZGVyClRvaWxldHRlIHp1IHNjaG1pbmtlbi4gU28gd2VpdCwgc28gZ3V0ISBBYmVyIG5hY2hkZW0gZGllIE1kY2hlbiBkZW4KTGlwcGVuc3RpZnQgYXVmZ2V0cmFnZW4gaGF0dGVuLCBkcnxja3RlbiBzaWUgaWhyZSBMaXBwZW4gZ2VnZW4gZGVuIFNwaWVnZWwKdW5kIGhpbnRlcmxpZVNwaWVnZWxlbiBkb3J0IER1dHplbmRlIHZvbiBrbGVpbmVuIEFiZHJ8Y2tlbi4gSmVkZW4gQWJlbmQKbXVzc3RlIGRlciBNYW5uIHZvbiBkZXIgUmVpbmlndW5nc2Zpcm1hIGRpZSBTcHVyZW4gYmVzZWl0aWdlbiB1bmQgYW0KbmNoc3RlbiBUYWcgaGF0dGVuIGRpZSBNZGNoZW4gbmljaHRzIEJlc3NlcmVzIHp1IHR1biwgYWxzIG5ldWUgU3B1cmVuCnp1IHZlcnVyc2FjaGVuLgoKRGVyIFB1dHptYW5uIGVyemhsdGUgZGVtIERpcmVrdG9yIHZvbiBkaWVzZW0gUHJvYmxlbSwgdW5kIHNpZQpiZXNjaGxvc3NlbiwgZGFzcyBldHdhcyBnZXRhbiB3ZXJkZW4gbXxzc2UuIEFtIG5jaHN0ZW4gVGFnIHJpZWYgZGVyCkRpcmVrdG9yIGFsbGUgTWRjaGVuIGluIGRpZSBUb2lsZXR0ZW4sIHdvIGRlciBNYW5uIHZvbiBkZXIKUmVpbmlndW5nc2Zpcm1hIGF1ZiBzaWUgd2FydGV0ZS4gRGVyIERpcmVrdG9yIGVya2xydGUgZGVuIGp1bmdlbiBEYW1lbiwKZGFzcyBpaHJlIExpcHBlbmFiZHJ8Y2tlIGZ8ciBkaWUgUmVpbmlndW5nc2tyZnRlIGVpbiBnckRhbWVuLGVyZXMgUHJvYmxlbQpzdGVsbHRlbiwgZGEgc2llIGplZGUgTmFjaHQgZGllIFNwaWVnZWwgenUgcHV0emVuIGh0dGVuLiBVbSB2b3J6dWZ8aHJlbiwKd2llIHNjaHdpZXJpZyBlcyBpc3QsIGRpZSBTcGllZ2VsIHp1IHJlaW5pZ2VuLCBiYXQgZGVyIERpcmVrdG9yIGRlbgpQdXR6bWFubiwgZGVuIE1kY2hlbiBhbiBlaW5lbSBGbGVjayB6dSB6ZWlnZW4sIHdpZXZpZWwgQXVmd2FuZCBlcwplcmZvcmRlcnRlLCBpaG4gd2VnenViZWtvbW1lbi4gRGVyIE1hbm4gbmFobSBlaW5lbiBQdXR6bGFwcGVuLAptYWNodGUgaWhuIGluIGRlciBUb2lsZXR0ZW5zY2h8c3NlbCBuYXNzIHVuZCBiZWdhbm4sIGRhbWl0IGFtIFNwaWVnZWwKenUgcmVpYmVuLiBTZWl0ZGVtIGhhdCBlcyBrZWluZSBMaXBwZW5hYmRyfGNrZSBtZWhyIGF1ZiBkZW4gU3BpZWdlbG4KZ2VnZWJlbiEgRXMgZ2lidCBlYmVuIExlaHJlciwgdW5kIGVzIGdpYnQgRXJ6aWVoZXIhIAoKU29ycnkgZnVlciBkaWUgVW1sYXV0ZSAqZyoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp2b24gd3d3LnNwaWVnZWwuZGUgKEh1bW5pLCAyMi4gTm92IDIwMDMsIDEwOjI3OjU2KToKT0ssIGlzdCBlaW4gYmxvZWRlciBUeXBvLi4uIGFiZXIgbHVzdGlnIGZhbmQgaWNoIGlobjoKCkdlcmhhcmQgU2Nocm9lZGVyIGtyaXRpc2llcnQgZGllIGp1ZW5nc3RlbiBXYXJudW5nZW4gZGVyIFVuaW9uIHZvciBlaW5lbQpFVS1CZWl0cml0dCBkZXIgVW5pb24gaGVmdGlnLgoKU29zbywgZGllIFVuaW9uIHdpbGwgYWxzbyBhdWNoIGluIGRpZSBFVS4gU29sbCBpY2ggZGFnZWdlbiBzZWluPyBNaXN0LiBJY2ggaGFiCmVoIG5peCB6dSBzYWdlbiA7LSkKCkFiZXIgYW5kZXJlcnNlaXRzLCB3ZW5uIHNpZSBzZWxic3Qgc2Nob24gbmljaHQgd2lsbC4uLgoKSHVtbmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuZ2xlciAoTm9ubmUsIDI4LiBOb3YgMjAwMywgMTA6NDc6MzEpOgpad2VpIEFuZ2xlciBzaXR6ZW4gYW0gRmx1c3MuIERlciBlaW5lIGZhZW5ndCBlaW5lbiBGaXNjaCBmZXR0ZXIgYWxzIGRlcgphbmRlcmUsCmRlciB6d2VpdGUgZmFlbmd0IG5pY2h0cy4gTmFjaCBlaW5lciBXZWlsZSBtZWludCBkZXIsIGRlciBuaWNodHMgZmFlbmd0OgoiQmVpIGRlaW5lbSBHbHVlY2sgd2lyc3QgZHUgc2ljaGVyIGhldXRlIEFiZW5kIHp1ciBGZWllciBkZXMgVGFnZXMgZGVpbmUKRnJldW5kaW4gcG9wcGVuLiIKIk5lZSwgaXMgbmljaCwgZGllIGhhdCBTeXBoaWxsaXMuIgoiT2gsIGhtbW0gLi4uLi4uLiBkYSBiZW51dHogZG9jaCBkZW4gSGludGVyZWluZ2FuZy4iCiJOZWVlZWVlZWVlZSwgZGFzIGlzIFNjaGVpc3NlLCBkaWUgaGF0IEhvZW1vcnJob2lkZW4iCiJvaCwgaG1tbSAuLi4uLiBkYW5uIGxhc3MgZGlyIGRvY2ggZWluZW4gYmxhc2VuIgoiTmVlZWVlZWVlZSwgZGllIGhhdCBIZXJwZXMiCiJTYWcgbWFsLCAuLi4uLi4uIHdhcnVtIHNlaWQgaWhyIGRhbm4gZWlnZW50bGljaCBub2NoIHp1c2FtbWVuPyIKIkRpZSBrYWNrdCBzb29vb28gZ2VpbGUgV3Vlcm1lciAuLi4uLi4uIgoKTm9ubmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGdXNzYmFsbCAoTW9udGFudXMsIDI4LiBOb3YgMjAwMywgMTA6NDk6MTQpOgpTcGllbHQgbmUgZGV1dHNjaGUgTWFubnNjaGFmdCBpbSBVZWZhLUN1cC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVycnkgQ2hyaXN0bWFzIChjOiAoQXBvbGxvbmlhLCAgNS4gRGV6IDIwMDMsIDA4OjAxOjE3KToKV2hlbiB0aGUgc25vdyBmYWxscyB3dW5kZXJiYXIKQW5kIHRoZSBjaGlsZHJlbiBoYXBweSBhcmUsCldoZW4gdGhlIEdsYXR0ZWlzIG9uIHRoZSBzdHJlZXQsCkFuZCB3ZSBhbGwgYSBHbHVlaHdlaW4gbmVlZCwKVGhlbiB5b3Uga25vdywgZXMgaXN0IHNvd2VpdDoKU2hlIGlzIGhlcmUsIHRoZSBXZWlobmFjaHRzemVpdAoKRXZlcnkgUGFya2hhdXMgaXN0IGJlc2V0enQsCldlaWwgZGllIHBlb3BsZSBmYWhyZW4gamV0enQKQWxsIHRvIEthdWZob2YsIE1lZGlhbWFya3QsCktyaWVnZW4gbmVhcmx5IEhlcnppbmZhcmt0LgpTaG9wcGluZyBoaXJudmVyYnJhbm50ZSB0aGluZ3MKQW5kIHRoZSBDaHJpc3RtYXNnbG9ja2UgcmluZ3MuCgpNZXJyeSBDaHJpc3RtYXMsIG1lcnJ5IENocmlzdG1hcywKSGVhciB0aGUgbXVzaWMsIHNlZSB0aGUgbGlnaHRzLApGcm9oZSBXZWlobmFjaHQsIEZyb2hlIFdlaWhuYWNodCwKTWVycnkgQ2hyaXN0bWFzIGFsbGVyc2VpdHMuLi4KCk1vdGhlciBpbiB0aGUga2l0Y2hlbiBiYWtlcwpTY2hva28tLCBOdXNzLSBhbmQgTWFuZGVsa2VrcwpEYWRkeSBpbiB0aGUgTmViZW5yYXVtClNjaG11ZWNrcyBhIFJpZXNlbi1XZWlobmFjaHRzYmF1bQpIZSBpcyBoYW5naW5nIGF1ZiB0aGUgYmFsbHMsCldoZW4gaGUgZnJvbSB0aGUgTGVpdGVyIGZhbGxzLi4uCgpGaW5hbGx5IHRoZSBLaW5kZXJsZWluClRvIHRoZSBaaW1tZXIga29tbWVuIHJlaW4KQW5kIGVzIHNpbmdzIHRoZSBmYW1pbHkKU2NoYXVlcmxpY2g6ICJPaCwgQ2hpc3RtYXN0cmVlISIKQW5kIGEgamVkZXIgaW4gdGhlIGhvdXNlCklzIHBhY2tpbmcgZGllIEdlc2NoZW5rZSBhdXMuCgpNZXJyeSBDaHJpc3RtYXMsIG1lcnJ5IENocmlzdG1hcywKSGVhciB0aGUgbXVzaWMsIHNlZSB0aGUgbGlnaHRzLApGcm9oZSBXZWlobmFjaHQsIEZyb2hlIFdlaWhuYWNodCwKTWVycnkgQ2hyaXN0bWFzIGFsbGVyc2VpdHMuLi4KCk1hbWEgZmluZHMgdW50ZXIgdGhlIFRhbm5lCkVpbmUgYnJhbmRuZXcgVGVmbG9uLVBmYW5uZSwKUGFwYSBnZXRzIGEgU2NobGlwcyBhbmQgU29ja2VuLApFdmVyeWJvZHkgZG9lcyBmcm9obG9ja2VuLgpQcmVzaWRlbnQgc3BlYWtzIGluIFRWLApBbGwgYXJvdW5kIGlzIEhhcm1vbmllLAoKQmlzIG1vdGhlciBpbiB0aGUga2l0Y2hlbiBydW5zOgpJbSBPZmVuIGJ1cm5zIHRoZSBXZWlobmFjaHRzZ2Fucy4KCkFuZCBzbyBjb21lcyBkaWUgRmV1ZXJ3ZWhyCldpdGggVGF0fCwgdGF0YSBkYWhlciwKQW5kIHRoZXkgYnJpbmcgYSBsb25nLCBsb25nIFNjaGxhdWNoCkFuIGEgbG9uZywgbG9uZyBMZWl0ZXIgYXVjaC4KQW5kIHRoZXkgc2NocmVpIC0gIldhc3NlciBtYXJzY2ghIiwKQ2hyaXN0bWFzIGlzIG5vdyBpbSAuLi4uLi4uLi4gRWltZXIKCk1lcnJ5IENocmlzdG1hcywgbWVycnkgQ2hyaXN0bWFzLApIZWFyIHRoZSBtdXNpYywgc2VlIHRoZSBsaWdodHMsCkZyb2hlIFdlaWhuYWNodCwgRnJvaGUgV2VpaG5hY2h0LApNZXJyeSBDaHJpc3RtYXMgYWxsZXJzZWl0cy4uLgoKQXBvKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3Ryb21hdXNmYWxsIChTaGFrZWRiZWVyLCAxMi4gRGV6IDIwMDMsIDEwOjUxOjQ3KToKR2VyYWRlIHdhciBoaWVyIFN0cm9tYXVzZmFsbC4gSWNoIGZyYWdlIFlhbXlhbSwgdW0gaGVyYXVzenViZWtvbW1lbiwgb2IgZGllClNlcnZlciBzY2hvbiBhbGxlIHJ1bnRlcmdlZmFocmVuIHNpbmQ6ICJXYXMgc2FndCBkZW5uIGRlciBTZXJ2ZXJyYXVtPyIgRGFyYXVmCmVyOiAiSmEsIFBJRUVFRVAhIgoKU2hha3kgLSBoYXQgamV0enQgd2llZGVyIFN0cm9tLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VpaG5hY2h0c2dlbGQgKE9nbywgMjguIERleiAyMDAzLCAxNjoxOTo0Myk6CkVpbiBNYW5hZ2VyIGVpbmVyIGdyb3NzZW4gRmlybWEsIGVpbiBsZWl0ZW5kZXIgTWl0YXJiZWl0ZXIgdm9uIE1lcmNlZGVzIEJlbnoKdW5kIGVpbmVyIGF1cyBkZW0gb2VmZmVudGxpY2hlbiBEaWVuc3QsIHRyZWZmZW4gc2ljaCBpbSBEZXplbWJlciBhYmVuZHMgenVtCkJpZXJ0cmlua2VuLiBOYWNoIGVpbmlnZXIgWmVpdCBrb21tdCBkYXMgR2VzcHJhZWNoIGRhcmF1Ziwgd2FzIHNpZSBtaXQgaWhyZW0KV2VpaG5hY2h0c2dlbGQgbWFjaGVuLiBEZXIgTWl0YXJiZWl0ZXIgdm9uIE1lcmNlZGVzIEJlbnogZXJ6YWVobHQsIGRhc3MgZXIKc2ljaCBlaW5lIFZlc3BhIGdla2F1ZnQgaGF0LCBkYW1pdCBlciBpbSBTb21tZXIgZGFtaXQgZHVyY2ggZGllIEdlZ2VuZCBkdWVzZW4Ka2Fubi4gRGllIGFuZGVyZW4gc2FnZW4gJ1VpLCBkYXMgaXN0IGphIHRvbGwnLiBEZXIgTWFuYWdlciBlcnphZWhsdCwgZGFzcyBlcgp2b24gZGVtIFdlaWhuYWNodHNnZWxkIHVlYmVyIFdlaWhuYWNodGVuIG1pdCBzZWluZXIgRnJhdSB1bmQgc2VpbmVuIEtpbmRlcm4KZWluZSB0b2xsZSBLcmV1emZhaHJ0IGluIGRpZSBTdWVkc2VlIG1hY2h0LiBEaWUgYW5kZXJlbiBzdGF1bmVuIHVuZCBzaW5kCmJlZWluZHJ1Y2t0LiBEYXJhdWZoaW4gd2lyZCBkZXIgVHlwIGltIG9lZmZlbnRsaWNoZW4gRGllbnN0IGdlZnJhZ3QsIHdhcyBlcgpkZW5uIG1pdCBzZWluZW0gV2VpaG5hY2h0c2dlbGQgZ2VtYWNodCBoYXQuIERlciBzYWd0IGVpbiB3ZW5pZyBrbGVpbmxhdXQgJ0ljaApoYWJlIG1pciBlaW5lbiBQdWxsb3ZlciBnZWthdWZ0LicgRGllIGFuZGVyZW4gZ3Vja2VuIHNrZXB0aXNjaCB1bmQgZnJhZ2VuOgonVW5kIHdhcyBpc3QgbWl0IGRlbSBSZXN0PycgCgpEZXIgVHlwOiAnRGVuIGhhdCBtZWluZSBNdXR0ZXIgYmV6YWhsdC4uLicKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbHQuLi5hYmVyIGltbWVyIHdpZWRlciBndXQgKE1vcmdvdGgsIDE0LiBKYW4gMjAwNCwgMDE6MjM6NDcpOgpyd2FjaHNlbiBiaXN0IER1IHdlbm4uLi4uIAoKMS4gQWxsZSBEZWluZSBQZmxhbnplbiBsZWJlbiwgdW5kIG1hbiBrZWluZSBlaW56aWdlIHJhdWNoZW4ga2FubiAKMi4gU2V4IGltIEVpbnplbGJldHQgdW50cmFnYmFyIGlzdCAKMy4gSW0gS3VlaGxzY2hyYW5rIG1laHIgRXNzZW4gc3RlaHQgYWxzIEdldHJhZW5rZSAKNC4gRHUgYW0gNjowMCBVaHIgbW9yZ2VucyBhdWZzdGVoc3QgdW5kIG5pY2h0IGVyc3QgaW5zIEJldHQgZ2Voc3QgCjUuIER1IERlaW4gTGllYmxpbmdzbGllZCBiZWkgVGVuZ2VsbWFubiBob2Vyc3QgCjYuIERlaW5lIExpZWJsaW5nc3NlbmR1bmdlbiBkaWUgV2V0dGVya2FydGUgdW5kIEtvY2gtU2hvd3Mgc2luZCAKNy4gRGVpbmUgRnJldW5kZSBoZWlyYXRlbiB1bmQgc2ljaCBzY2hlaWRlbiBsYXNzZW4sIGFuc3RhdHQgbWl0ZWluYW5kZXIgenUKZ2VoZW4gdW5kIHdpZWRlciBTY2hsdXNzIHp1IG1hY2hlbi4gCjguIERlaW5lIFVybGF1YnN0YWdlIHNpY2ggdm9uIDEyIFdvY2hlbiBhdWYgMTQgVGFnZSByZWR1emllcmVuIAo5LiBKZWFucyB1bmQgZWluIFN3ZWF0c2hpcnQgbmljaHQgYWxzICJBdXNnZWh6ZXVnIiBnZWx0ZW4uIAoxMC4gRHUgZGllIFBvbGl6ZWkgYW5ydWZzdCwgd2VpbCBkaWVzZSBKdWdlbmRsaWNoZW4gbmViZW5hbiBkaWUgTXVzaWsgc29sYXV0CmhhYmVuLgoxMS4gQWVsdGVyZSBWZXJ3YW5kdGUgYW56dWVnbGljaGUgV2l0emUgZXJ6YWVobGVuLCBhdWNoIHdlbm4gRHUgaW0gWmltbWVyCmJpc3QuIAoxMi4gRHUgRGljaCBuaWNodCBtZWhyIGVyaW5uZXJuIGthbm5zdCBvYiBNY0RvbmFsZHMgMjQgU3R1bmRlbiBnZW9lZmZuZXQgaGF0LiAKMTMuIERlaW4gU2NoYWRlbnNmcmVpaGVpdHNyYWJhdHQgbmFjaCB1bnRlbiBnZWh0LCBEZWluZSBQcmFlbWllbiBhYmVyIG5hY2gKb2JlbiAKMTQuIERlaW4gSHVuZCBFdWthbnViYSBRdWFsaXRhZXRzLUh1bmRlZnV0dGVyIGJla29tbXQgdW5kIGtlaW5lIFJlc3RlIG1laHIgCjE1LiBEaXIgYXVmIGRlciBDb3VjaCB6dSBzY2hsYWZlbiBSdWVja2VucHJvYmxlbWUgYmVyZWl0ZXQgCjE2LiBEdSBuaWNodCBtZWhyIHZvbiBNaXR0YWcgYmlzIDYuMDAgVWhyIGFiZW5kcyBwZW5uZW4ga2FubnN0LiAKMTcuIEFiZW5kZXNzZW4gdW5kIEtpbm8gZGllIGdhbnplIFZlcmFicmVkdW5nIHNpbmQgYW5zdGF0dCBkZXIgQW5mYW5nIGVpbmVyCnd1bmRlcmJhcmVuIE5hY2h0LiAKMTguIEVpbmUgTGFkdW5nIENoaWNrZW4tV2luZ3Mgb2RlciBXaWVuZXIgU2Nobml0emVsIHVtIDMuMDAgVWhyIG1vcmdlbnMgRGVpbmVuCk1hZ2VuIGVoZXIgYmUtIGFscyBlbnRsYXN0ZW4gd3VlcmRlIC4gCjE5LiBEdSBEaXIgaW4gZGVyIERyb2dlcmllIEFzcGlyaW4gdW5kIFJlbm5pZSBob2xzdCBhbnN0YXR0IEtvbmRvbWUgdW5kClNjaHdhbmdlcnNjaGFmdHN0ZXN0cy4gCjIwLiBFaW5lIEZsYXNjaGUgV2VpbiB6dSA0LDAwIEV1cm8gbmljaHQgbWVociAiemllbWxpY2ggZ3V0ZXMgWmV1ZyIgaXN0LiAKMjEuIER1IEZydWVoc3R1ZWNrc2Zsb2NrZW4gdGF0c2FlY2hsaWNoIHp1ciBGcnVlaHN0dWVja3N6ZWl0IGlzc3QuIAoyMi4gIkljaCBrYW5uIGVpbmZhY2ggbmljaHQgbWVociBzbyB2aWVsIHRyaW5rZW4gd2llIGZydWVoZXIsIiBlcnNldHp0ICJJY2gKcnVlaHJlIG5pZSB3aWVkZXIgZWluZW4gVHJvcGZlbiBBbGtvaG9sIGFuLiIgCjIzLiBEdSA5MCUgRGVpbmVyIFplaXQgdm9yIGRlbSBQQyB2ZXJicmluZ3N0IC0gdW0gcmljaHRpZyB6dSBhcmJlaXRlbi4gCjI0LiBEdSBEaXIgenUgSGF1c2Uga2VpbmUgS3VyemVuIHJlaW56aWVoc3QgYmV2b3IgRHUgd2VnZ2Voc3QgdW0gR2VsZCB6dQpzcGFyZW4uIAoyNS4gRHUgZGllc2UgTGlzdGUgbGllc3QgdW5kIGZhbmF0aXNjaCBuYWNoIG51ciBlaW5lbSBlaW56aWdlbiBQdW5rdCBzdWNoc3QsCmRlciBuaWNodCBhdWYgRGljaCB6dXRyaWZmdC4gCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFzIDIxLiBKYWhyaHVuZGVydC4uLiAoVGFyYW5pcywgMTQuIEphbiAyMDA0LCAxOTowMjozOCk6CipmbHVjaCogU28sIG5hZWNoc3RlciBWZXJzdWNoLCBob2ZmZW50bGljaCBjb3B5JnBhc3RlIGljaCBkaWVzbWFsIHJpY2h0aWcuLi4KCldPUkFOIE1FUktUIE1BTiwgREFTUyBNQU4gVk9NIDIxLiBKQUhSSFVOREVSVCBCRVJFSVRTIERJRSBTQ0hOQVVaRSBWT0xMCkhBVD8KCjEuIER1IHZlcnN1Y2hzdCBiZWltIE1pa3Jvd2VsbGVuaGVyZCBEZWluIFBhc3N3b3J0IGVpbnp1Z2ViZW4uLi4uCgoyLiBEdSB3ZWlzc3QgbmljaHQsIGRhc3MgbWFuIFNvbGl0YWlyZSBhdWNoIG1pdCBlY2h0ZW4gS2FydGVuIHNwaWVsZW4Ka2Fubi4uLgoKMy4gRHUgaGFzdCAxNSB2ZXJzY2hpZWRlbmUgVGVsZWZvbm51bW1lcm4gdW0gRGVpbmUgMyBrb2VwZmlnZSBGYW1pbGllIHp1CmVycmVpY2hlbi4KCjQuIERlciBHcnVuZCwgd2FydW0gRHUgZGVuIEtvbnRha3QgenUgRGVpbmVuIEZyZXVuZGVuIHZlcmxpZXJzdCBpc3QsIHdlaWwKc2llIGtlaW5lIEUgTWFpbCBBZHJlc3NlIGJlc2l0emVuLgoKNS4gIER1IHdlaXNzdCBuaWNodCwgbWl0IHdlbGNoZXIgQnJpZWZtYXJrZSBtYW4gZWluZW4gU3RhbmRhcmRicmllZgpmcmFua2llcnQuCgo2LiBGdWVyIERpY2ggYmVkZXV0ZXQgb3JnYW5pc2llcnQgc2VpbiwgdmVyc2NoaWVkZW5mYXJiaWdlIFBvc3RJdCB6dQpiZXNpdHplbi4KCjYuIERpZSBtZWlzdGVuIFdpdHplLCBkaWUgRHUga2VubnN0LCBoYXN0IER1IGluIEVtYWlscyBnZWxlc2VuCgo3LiBEdSBnaWJzdCBkZW4gRmlybWVubmFtZW4gYW4sIHdlbm4gRHUgYW0gQWJlbmQgenUgSGF1c2UgZGFzIFRlbGVmb24KYWJuaW1tc3QuCgo4LiBEdSBkcnVlY2tzdCBadWhhdXNlIGRpZSAwIHVtIGJlaW0gVGVsZWZvbmllcmVuIHJhdXN6dWtvbW1lbi4KCjkuIER1IHNpdHp0IHNlaXQgNCBKYWhyZW4gYW0gZ2xlaWNoZW4gU2NocmVpYnRpc2NoLCB1bmQgaGFzdCBkb3J0IGZ1ZXIKZHJlaQp2ZXJzY2hpZWRlbmUgRmlybWVuIGdlYXJiZWl0ZXQuCgoxMC4gRGFzIEZpcm1lbnNjaGlsZCB3aXJkIGVpbm1hbCBwcm8gSmFociBkZW0gQ29ycG9yYXRlIERlc2lnbiBhbmdlcGFzc3QuCgoxMS4gV2VubiBEdSBlaW5lbiA5MCBNaW51dGVuIEZpbG0gaW0gRmVybnNlaGVuIGd1Y2tlbiB3aWxsc3QsIG11c3N0IER1IERpcgpkcmVpIFN0dW5kZW4gWmVpdCBuZWhtZW4gd2VnZW4gZGVyIFdlcmJldW50ZXJicmVjaHVuZ2VuLi4KCjEyLiBEdSBzdWNoc3QgdmVyendlaWZlbHQgZGllIFRhc3RlbiAiU1RSRywgQUxUIHVuZCBFTlRGIiBhdWYgRGVpbmVyCkZlcm5iZWRpZW51bmcsIHdlbm4gZGVyIEZlcm5zZWhlciBhdWYgR3J1bmQgZWluZXIgU2VuZGVzdG9lcnVuZyByYXVzY2h0Li4uCgoxMy4gRGVpbmUgVmlzaXRlbmthcnRlIGlzdCBhdWYgZGVyIFZvcmRlcnNlaXRlIERldXRzY2gsIGF1ZiBkZXIgUnVlY2tzZWl0ZQpFbmdsaXNjaC4gQmVpZGUgU2VpdGVuIHVudGVyc2NoZWlkZW4gc2ljaCBudXIgZHVyY2ggZGllICgrNDkpCgoxNC4gRHUgYXJiZWl0ZXN0IHZvbiAwODowMCBVaHIgYmlzIDIxOjAwIFVociwgZGF2b24gZGllIGVyc3RlbiA2IFN0dW5kZW4KZnVlcnMgRmluYW56YW10Li4uCgoxNS4gRGllIFZlcmtlaHJzbGFnZSBsaWVzcyBlcyBub2NoIG5pZSB6dSwgaW4gRGVpbmVtIEF1dG8gZGVuIHZpZXJ0ZW4Kb2RlciBmdWVuZnRlbiBHYW5nIGF1c3p1dGVzdGVuLi4uCgoxNi4gRGVpbmUgRWx0ZXJuIC8gb2RlciBLaW5kZXIgYmVzY2hyZWliZW4gRGljaCB1bmQgRGVpbmVuIEJlcnVmIG1pdAoiZXIvc2llIG1hY2h0IHdhcyBtaXQgQ29tcHV0ZXJuIi4KCjE3LiBEdSBlcmtlbm5zdCBEZWluZSBLaW5kZXIgZGFuayBkZXIgRm90b3MgYXVmIGRlbSBTY2hyZWlidGlzY2guCgoxOC4gRHUgaGFzdCBkaWVzZSBMaXN0ZSBnZWxlc2VuIHVuZCBkYXVlcm5kIGdlbmlja3QuCgoxOS4gRHUgdWViZXJsZWdzdCBEaXIsIHdlbSBEdSBkaWVzZSBMaXN0ZSBwZXIgRW1haWwgd2VpdGVybGVpdGVuIGthbm5zdC4KCgoKV0FTIEZVZVIgRUlORSBXRUxUICA7LSkpKSkpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTVEVMTEEtTElFQkVDSy1QUkVJUyAoTW9yZ290aCwgMTkuIEphbiAyMDA0LCAxMDo0ODozNSk6Clp1bSBld2lnZW4gUnVobSBkZXIgODEtamFlaHJpZ2VuIFN0ZWxsYSBMaWViZWNrLCBkaWUgc2ljaCBiZWkgTWNEb25hbGRzIGVpbmVuCkJlY2hlciBLYWZmZWUgdWViZXIgZGVuIExlaWIgc2NodWV0dGV0ZSB1bmQgYW5zY2hsaWVzc2VuZCA0LDUgTWlsbGlvbmVuICQKU2NoYWRlbmVyc2F0eiBlcmhpZWx0LCB3ZWlsIHNpZSBuaWNodCBhdWYgZGllIFRhdHNhY2hlIGhpbmdld2llc2VuIHdvcmRlbiBzZWksCmRhc3MgZGVyIEthZmZlZSBoZWlzcyBpc3QsIHdpcmQgbnVuIGphZWhybGljaCBkZXIgU1RFTExBLUxJRUJFQ0stUFJFSVMgYW4KZGllamVuaWdlbiB2ZXJsaWVoZW4sIGRpZSBpbSBqZXdlaWxzIHZlcmdhbmdlbmVuIEphaHIgbWl0IGdlbmlhbGVyClVudmVyZnJvcmVuaGVpdCBTY2hhZGVuZXJzYXR6IGdlcmljaHRsaWNoIGZvcmRlcnRlbiB1bmQgZXJoaWVsdGVuLgoKRGVuIDUuIFBsYXR6IHRlaWxlbiBzaWNoIGRyZWkgS2FuZGlkYXRlbjoKCmEpIEthdGhsZWVuIFJvYmVydHNvbiBhdXMgQXVzdGluL1RleGFzIHd1cmRlbiB2b24gZWluZXIgSnVyeSA3ODAuMDAwICQKU2NoYWRlbmVyc2F0eiB6dWdlc3Byb2NoZW4sIHdlaWwgc2llIHNpY2ggaW4gZWluZW0gTW9lYmVsZ2VzY2hhZWZ0IGRlbgpLbm9lY2hlbCBnZWJyb2NoZW4gaGF0dGUsIG5hY2hkZW0gc2llIHVlYmVyIGVpbmVuIGF1ZiBkZW0gQm9kZW4KaGVydW1rcmllY2hlbmRlbiBTYWV1Z2xpbmcgZ2VzdG9scGVydCB1bmQgZ2VzdHVlcnp0IHdhci4gRGllIExhZGVuYmVzaXR6ZXIKbmFobWVuIGRhcyBVcnRlaWwgZ2VmYXNzdCBhYmVyIHVuZ2xhZXViaWcgenVyIEtlbm50bmlzLCBkYSBkZXIgU2FldWdsaW5nIGRlcgpTb2huIGRlciBLbGFlZ2VyaW4gd2FyLgpiKSBEZXIgMTktamFlaHJpZ2UgQ2FybCBUcnVtYW4gYXVzIExvcyBBbmdlbGVzIGVyaGllbHQgNzQuMDAwICQgU2NobWVyemVuc2dlbGQKdW5kIEVyc2F0eiBkZXIgSGVpbGJlaGFuZGx1bmdza29zdGVuLCB3ZWlsIGVpbiBOYWNoYmFyIGlobSBtaXQgc2VpbmVtIEhvbmRhCkFjY29yZCB1ZWJlciBkaWUgSGFuZCBnZWZhaHJlbiB3YXIuIE1yLiBUcnVtYW4gaGF0dGUgYW5zY2hlaW5lbmQgZGVuIE5hY2hiYXJuCmFtIFN0ZXVlciBkZXMgV2FnZW5zIHVlYmVyc2VoZW4sIGFscyBlciBpaG0gZGllIFJhZGthcHBlbiB6dSBzdGVobGVuCnZlcnN1Y2h0ZS4KYykgVGVyZW5jZSBEaWNrc29uIGF1cyBCcmlzdG9sL1Blbm5zeWx2YW5pZW4gdmVyc3VjaHRlIGRhcyBIYXVzLCBkYXMgZXIgc29lYmVuCmJlcmF1YnQgaGF0dGUsIGR1cmNoIGRpZSBHYXJhZ2UgenUgdmVybGFzc2VuLiBFcyBnZWxhbmcgaWhtIGplZG9jaCBuaWNodCwgZGllCkdhcmFnZW50dWVyIHp1IG9lZmZuZW4uIElucyBIYXVzIGthbSBlciBlYmVuZmFsbHMgbmljaHQgbWVociwgZGEgZGllClZlcmJpbmR1bmdzdHVlciB6dXIgR2FyYWdlIGluIFNjaGxvc3MgZ2VmYWxsZW4gd2FyLiBNci4gRGlja3NvbiBtdXNzdGUgOCBUYWdlCmluIGRlciBHYXJhZ2UgYXVzaGFycmVuLCBkZW5uIGRpZSBIYXVzYmVzaXR6ZXIgd2FyZW4gaW0gVXJsYXViLiBFciBlcm5hZWhydGUKc2ljaCB2b24gZWluZW0gS2FzdGVuIFBlcHNpLUNvbGEgdW5kIGVpbmVyIGdyb3NzZW4gVHVldGUgSHVuZGVmdXR0ZXIuIERhcwpHZXJpY2h0IHNwcmFjaCBpaG0gd2VnZW4gZGVyIGVybGl0dGVuZW4gc2VlbGlzY2hlbiBHcmF1c2Fta2VpdCA1MDAuMDAwJApTY2htZXJ6ZW5zZ2VsZCB6dSwgemFobGJhciB2b24gZGVyIEVpbmJydWNoZGllYnN0YWhsLSBWZXJzaWNoZXJ1bmcgZGVzCkhhdXNlaWdlbnR1ZW1lcnMuCgo0LiBQbGF0egpKZXJyeSBXaWxsaWFtcyBhdXMgTGl0dGxlIFJvY2svQXJrYW5zYXMgZXJoaWVsdCAxNC41MDAgJCBTY2htZXJ6ZW5zZ2VsZCB1bmQKZGllIEhlaWxiZWhhbmRsdW5nc2tvc3RlbiB6dWdlc3Byb2NoZW4sIHdlaWwgaWhuIGRlciBCZWFnbGUgZGVzIE5hY2hiYXJuIGluCmRlbiBIaW50ZXJuIGdlYmlzc2VuIGhhdHRlLiBEYXMgU2NobWVyemVuc2dlbGQgZXJyZWljaHRlIGRlbiBnZWZvcmRlcnRlbgpCZXRyYWcgbmljaHQgZ2Fueiwgd2VpbCBkaWUgSnVyeSB6dSBkZXIgQXVmZmFzc3VuZyBnZWxhbmd0ZSwgTXIuIFdpbGxpYW1zCmhhZXR0ZSBuaWNodCB1ZWJlciBkZW4gWmF1biBrbGV0dGVybiB1bmQgbWVocmZhY2ggbWl0IHNlaW5lciBMdWZ0cGlzdG9sZSBhdWYKZGVuIEh1bmQgc2NoaWVzc2VuIHNvbGxlbi4KCjMuIFBsYXR6CkVpbiBSZXN0YXVyYW50IGluIFBoaWxhZGVscGhpYSBtdXNzdGUgYW4gTXMgQW1iZXIgQ2Fyc29uIGF1cwpMYW5jYXN0ZXIvUGVubnN5bHZhbmllbiBlaW4gU2NobWVyemVuc2dlbGQgdm9uIDExMy41MDAgJCB6YWhsZW4sIHdlaWwgZGllc2UgaW0KUmVzdGF1cmFudCBhdWYgZWluZXIgR2V0cmFlbmtlcGZ1ZXR6ZSBhdXNnZXJ1dHNjaHQgd2FyIHVuZCBzaWNoIGRhcyBTdGVpc3NiZWluCmdlYnJvY2hlbiBoYXR0ZS4gQXVmIGRlbSBGdXNzYm9kZW4gYmVmYW5kIHNpY2ggZGFzIEdldHJhZW5rLCB3ZWlsIE1zLiBDYXJzb24KZXMgMzAgU2VrdW5kZW4genV2b3IgaWhyZW0gRnJldW5kIGlucyBHZXNpY2h0IGdlc2NodWV0dGV0IGhhdHRlLgoKMi4gUGxhdHoKS2FyYSBXYWx0b24gYXVzIENseW1vbnQvRGVsYXdhcmUgc3R1ZXJ6dGUgYXVzIGRlbSBUb2lsZXR0ZW5mZW5zdGVyIGVpbmVyCkRpc2tvdGhlayB1bmQgc2NobHVnIHNpY2ggendlaSBWb3JkZXJ6YWVobmUgYXVzLiBTaWUgZXJoaWVsdCBkaWUKWmFobmJlaGFuZGx1bmdza29zdGVuIHVuZCAxMi4wMDAgJCBTY2htZXJ6ZW5zZ2VsZCB6dWdlc3Byb2NoZW4uIEdlc3R1ZXJ6dCB3YXIKc2llIGJlaSBkZW0gVmVyc3VjaCwgc2ljaCBkdXJjaCBkYXMgVG9pbGV0dGVuZmVuc3RlciBpbiBkaWUgRGlza290aGVrIHp1Cm1vZ2VsbiB1bmQgMy41MCAkIEVpbnRyaXR0IHp1IHNwYXJlbi4gCgpQbGF0eiAxIChlaW5zdGltbWlnKQpVbmFuZ2Vmb2NodGVuZXIgU2llZ2VyIGRlcyBXZXR0YmV3ZXJicyB1bSBkZW4gU3RlbGxhLUF3YXJkIGlzdDogTXIuIE1lcnYKR3Jhemluc2tpIGF1cyBPa2xhaG9tYSBDaXR5LiBEZXIgV29obndhZ2VuaGVyc3RlbGxlciBXaW5uZWJhZ28gTW90b3IgSG9tZXMKbXVzc3RlIGlobSBuaWNodCBudXIgZWluIG5ldWVzIFdvaG5tb2JpbCBzdGVsbGVuLCBzb25kZXJuIGF1Y2ggMS43NTAuMDAwICQKU2NobWVyemVuc2dlbGQgYmV6YWhsZW4uIEF1ZiBkZW0gSGVpbXdlZyB2b24gZWluZW0gRm9vdGJhbGwtU3BpZWwgaGF0IE1yLgpHcmF6aW5za2kgZGllIFRlbXBvbWF0aWMgc2VpbmVzIEdlZmFlaHJ0cyBhdWYgMTEwIGttL2ggZWluZ2VzdGVsbHQgdW5kIGRhbmFjaApkZW4gRmFocmVyc2l0eiB2ZXJsYXNzZW4sIHVtIHNpY2ggaW0gaGludGVyZW4gVGVpbCBkZXMgV29obm1vYmxpcyBlaW5lbiBLYWZmZWUKenUgYmVyZWl0ZW4uIERhcyBXb2hubW9iaWwga2FtIHByb21wdCB2b24gZGVyIFN0cmFzc2UgYWIgdW5kIHVlYmVyc2NobHVnIHNpY2guCk1yLiBHcmF6aW5za2kgYmVncnVlbmRldGUgc2VpbmUgRm9yZGVydW5nIG1pdCBkZXIgVGF0c2FjaGUsIGRhc3MgaW4gZGVyCkJldHJpZWJzYW5sZWl0dW5nIGRlcyBXb2hubW9iaWxzIG5pY2h0IGRhcmF1ZiBoaW5nZXdpZXNlbiB3b3JkZW4gc2VpLCBkYXNzIG1hbgphdWNoIGJlaSBlaW5nZXNjaGFsdGV0ZXIgVGVtcG9tYXRpYyBkZW4gRmFocmVycGxhdHogbmljaHQgdmVybGFzc2VuIGR1ZXJmZS4KRGVyIEhlcnN0ZWxsZXIgaGF0IC0gaW4gRXJ3YXJ0dW5nIHdlaXRlcmVyIFRyb3R0ZWwgLSBpbnp3aXNjaGVuIGRpZQpCZWRpZW51bmdzYW5sZWl0dW5nIGdlYWVuZGVydC4KClN0ZWxsdCBzaWNoIG1pciBhYnNjaGxpZXNzZW5kIGRpZSBGcmFnZSwgd2FydW0gYmVpIGRlbSBkdXJjaHNjaGl0dGxpY2hlbgpJbnRlbGxpZ2VuenF1b3RpZW50ZW4gZWluZXMgQW1lcmlrYW5lcnMgZGllIExldXRlIGRvcnQgZHJ1ZWJlbiBuaWNodCBhbGxlCk1pbGxpb25hZXJlIHNpbmQ/IERhc3MgYmVzb25kZXJzIGR1bW1lIExldXRlIGJlc29uZGVycyB2aWVsIEdlbGQgYnJhdWNoZW4sCmJld2Vpc2VuIHVucyBkaWUgVVNBIHRhdHNhZWNobGljaCBpbW1lciB3aWVkZXIgISA7bykKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU1RFTExBLUxJRUJFQ0stUFJFSVMgKERhcmlhLCAxOS4gSmFuIDIwMDQsIDE0OjE0OjIzKToKfiMhIHJuPU1vcmdvdGggcnQ9MTA3NDUwNTcxNSByZz13aXR6ZQp+IyEgdGlkPTEwNzQ1MDU3MTUKSW50ZXJlc3NhbnQsIHdhcyBMZXV0ZSBzbyBhbGxlcyB1bnRlcnN1Y2hlbjoKaHR0cDovL3d3dy5zbm9wZXMuY29tL2xlZ2FsL2xhd3N1aXRzLmh0bQoKRGEgd2lyZCBlcmtsYWVydCwgd2FydW0gZXMgc2ljaCBiZWkgZGVtIFBSZWlzICh1bmQgbmljaHQgbnVyIGRlbSkgdW0gZWluZW4KSG9heCBoYW5kZWx0LgpEYXJpYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGl6emFrYXVmIGltIEphaHIgMjAxMCAoVGFyYW5pcywgMjIuIEphbiAyMDA0LCAwODo0OToyMyk6ClBpenphbWFubjogIkRhbmtlLCBkYXNzIFNpZSBQaXp6YSBIdXQgYW5nZXJ1ZmVuIGhhYmVuLiBLYW5uIGljaCBJaHJlIC4uLiIKCkt1bmRlOiAiSGksIGljaCBtb2VjaGUgZXR3YXMgYmVzdGVsbGVuLiIKClA6ICJLYW5uIGljaCBiaXR0ZSBlcnN0IElocmUgTklETiBoYWJlbj8iCgpLOiAiTWVpbmUgTmF0aW9uYWxlIElEIE51bW1lciwgamEsIHdhcnRlbiBTaWUsIGRpZSBpc3QgNjEwMjA0OTk5OC00NS01NDYxMC4iCgpQOiAiVmllbGVuIERhbmssIEhlcnIgU2Nod2FyZHQuIFNpZSB3b2huZW4gaW4gZGVyIFJvc2Vuc3RyYXNzZSAyNSB1bmQgSWhyZQpUZWxlZm9ubnVtbWVyIGxhdXRldCA4OSA1NjggMzQ1LiBJaHJlIEZpcm1lbm51bW1lciBiZWkgZGVyIEFsbGlhbnogaXN0IDc0IDUyMwowMzIgdW5kIElocmUgRHVyY2h3YWhsIGlzdCAtNTYuIFZvbiB3ZWxjaGVtIEFuc2NobHVzcyBhdXMgcnVmZW4gU2llIGFuPyIKCks6ICJIYWU/IEljaCBiaW4genUgSGF1c2UuIFdvIGhhYmVuIFNpZSBhbGxlIGRpZXNlIEluZm9ybWF0aW9uZW4gaGVyPyIKClA6ICJXaXIgc2luZCBhbiBkYXMgU3lzdGVtIGFuZ2VzY2hsb3NzZW4uIgoKSzogKHNldWZ6dCkgIk9oLCBuYXR1ZXJsaWNoLiBJY2ggbW9lY2h0ZSB6d2VpIHZvbiBJaHJlbiBTcGV6aWFsLVBpenplbiBtaXQKYmVzb25kZXJzIHZpZWwgRmxlaXNjaCBiZXN0ZWxsZW4uIgoKUDogIkljaCBnbGF1YmUgbmljaHQsIGRhc3MgZGFzIGd1dCBmdWVyIFNpZSBpc3QuIgoKSzogIldpZSBiaXR0ZT8/ISEiCgpQOiAiTGF1dCBJaHJlciBLcmFua2VuYWt0ZSBoYWJlbiBTaWUgZWluZW4genUgaG9oZW4gQmx1dGRydWNrIHVuZCBleHRyZW0gaG9oZQpDaG9sZXN0ZXJpbndlcnRlLiBJaHJlIEtyYW5rZW5rYXNzZSB3dWVyZGUgZWluZSBzb2xjaGUgdW5nZXN1bmRlIEF1c3dhaGwgbmljaHQKZ2VzdGF0dGVuLiIKCks6ICJWZXJkYW1tdCEgV2FzIGVtcGZlaGxlbiBTaWUgZGVubj8iCgpQOiAiU2llIGtvZW5udGVuIHVuc2VyZSBTb2phLUpvZ2h1cnQtUGl6emEgbWl0IGdhbnogd2VuaWcgRmV0dCBwcm9iaWVyZW4uIFNpZQp3aXJkIElobmVuIGJlc3RpbW10IHNjaG1lY2tlbi4iCgpLOiAiV2llIGtvbW1lbiBTaWUgZGFyYXVmLCBkYXNzIGljaCBkYXMgbW9lZ2VuIGtvZW5udGU/IgoKUDogIk51biwgU2llIGhhYmVuIGxldHp0ZSBXb2NoZSBkYXMgQnVjaCAsU29qYXJlemVwdGUgZnVlciBGZWluc2NobWVja2VyJyBhdXMKZGVyIEJ1ZWNoZXJlaSBhdXNnZWxpZWhlbi4gRGVzd2VnZW4gaGFiZSBpY2ggSWhuZW4gZGllc2UgUGl6emEgZW1wZm9obGVuLiIKCks6ICJPaywgb2suIEdlYmVuIFNpZSBtaXIgendlaSBkYXZvbiBpbiBGYW1pbGllbmdyb2Vzc2UuIFdhcyBrb3N0ZXQgZGVyClNwYXNzPyIKClA6ICJEYXMgc29sbHRlIGZ1ZXIgU2llLCBJaHJlIEZyYXUgdW5kIElocmUgdmllciBLaW5kZXIgcmVpY2hlbi4gRGVyIFNwYXNzLAp3aWUgU2llIGVzIG5lbm5lbiwga29zdGV0IDQ1IEV1cm8uIgoKSzogIkljaCBnZWJlIElobmVuIG1laW5lIEtyZWRpdGthcnRlbm51bW1lci4iCgpQOiAiRXMgdHV0IG1pciBsZWlkLCBhYmVyIFNpZSB3ZXJkZW4gYmFyIHphaGxlbiBtdWVzc2VuLiBEZXIgS3JlZGl0cmFobWVuCklocmVyIEthcnRlIGlzdCBiZXJlaXRzIHVlYmVyem9nZW4uIgoKSzogIkljaCBsYXVmZSBydW50ZXIgenVtIEdlbGRhdXRvbWF0ZW4gdW5kIGhvbGUgQmFyZ2VsZCwgYmV2b3IgSWhyIEZhaHJlciBoaWVyCmlzdC4iCgpQOiAiRGFzIHdpcmQgd29obCBhdWNoIG5pY2h0cy4gSWhyIEdpcm9rb250byBpc3QgYXVjaCB1ZWJlcnpvZ2VuLiIKCks6ICJFZ2FsLiBTY2hpY2tlbiBTaWUgZWluZmFjaCBkaWUgUGl6emEgbG9zLiBJY2ggd2VyZGUgZGFzIEdlbGQgZGEgaGFiZW4uIFdpZQpsYW5nZSB3aXJkIGVzIGRhdWVybj8iCgpQOiAiV2lyIGhhZW5nZW4gZWluIHdlbmlnIGhpbnRlcmhlci4gRXMgd2lyZCBldHdhIDQ1IE1pbnV0ZW4gZGF1ZXJuLiBXZW5uIFNpZQplcyBlaWxpZyBoYWJlbiwga29lbm5lbiBTaWUgc2llIHNlbGJzdCBhYmhvbGVuLCB3ZW5uIFNpZSBkYXMgR2VsZCBiZXNvcmdlbiwKb2J3b2hsIGRlciBUcmFuc3BvcnQgdm9uIFBpenphIGF1ZiBkZW0gTW90b3JyYWQgaW1tZXIgZXR3YXMgc2Nod2llcmlnIGlzdC4iCgpLOiAiV29oZXIgd2lzc2VuIFNpZSwgZGFzcyBpY2ggTW90b3JyYWQgZmFocmU/IgoKUDogIkhpZXIgc3RlaHQsIGRhc3MgU2llIG1pdCBkZW4gUmF0ZW56YWhsdW5nZW4gZnVlciBJaHJlbiBXYWdlbiBpbSBSdWVja3N0YW5kCnNpbmQgdW5kIGlobiB6dXJ1ZWNrZ2ViZW4gbXVzc3Rlbi4gQWJlciBJaHJlIEhhcmxleSBpc3QgYmV6YWhsdCwgYWxzbyBuZWhtZQppY2ggYW4sIGRhc3MgU2llIGRpZSBiZW51dHplbi4iCgpLOiAiQCMlLyRAJj8jISIKClA6ICJBY2h0ZW4gU2llIGxpZWJlciBkYXJhdWYsIHdhcyBTaWUgc2FnZW4uIFNpZSBoYWJlbiBzaWNoIGJlcmVpdHMgaW0gSnVsaQoyMDA2IGVpbmUgVmVydXJ0ZWlsdW5nIHdlZ2VuIEJlYW10ZW5iZWxlaWRpZ3VuZyBlaW5nZWZhbmdlbi4iCgpLOiAoc3ByYWNobG9zKQoKUDogIk1vZWNodGVuIFNpZSBub2NoIGV0d2FzPyIKCks6ICJOZWluLCBkYW5rZS4gT2ggZG9jaCwgYml0dGUgdmVyZ2Vzc2VuIFNpZSBuaWNodCwgZGllIGJlaWRlbiBrb3N0ZW5sb3NlbgpMaXRlciBDb2xhIGVpbnp1cGFja2VuLCBkaWUgZXMgbGF1dCBJaHJlciBXZXJidW5nIHp1IGRlbiBQaXp6ZW4gZ2lidC4iCgpQOiAiRXMgdHV0IG1pciBsZWlkLCBhYmVyIGRpZSBBdXNzY2hsdXNza2xhdXNlbCB1bnNlcmVyIFdlcmJ1bmcgdmVyYmlldGV0IGVzCnVucywga29zdGVubG9zZSBTb2Z0ZHJpbmtzIGFuIE5pZXJlbmtyYW5rZSBhdXN6dWdlYmVuLiIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCbG9uZGluZW50ZXN0IChNb3Jnb3RoLCAyMi4gSmFuIDIwMDQsIDE1OjExOjUyKToKRGVyIFRlc3QgbWl0IGRlciBCbG9uZGluZSEKCkVpbmUgQmxvbmRpbmUgbmltbXQgYW4gZWluZW0gSW50ZWxsaWdlbnpxdWl6IGltICJMaWZlIFRWIFNob3cgIiB0ZWlsLgpHZXdpbm46IDEuMDAwLjAwMCAuCgpEZXIgTW9kZXJhdG9yIHN0ZWxsdCBpaHIgZGllIGZvbGdlbmRlbiBGcmFnZW46CgoxLiBXaWUgbGFuZ2UgZGF1ZXJ0ZSBkZXIgSHVuZGVydGphZWhyaWdlIEtyaWVnPwoKMTE2IEphaHJlCjk5IEphaHJlCjEwMCBKYWhyZQoxNTAgSmFocmUKCkRpZSBCbG9uZGluZSBudXR6dCBpaHIgUmVjaHQgZGllIEZyYWdlIG5pY2h0IHp1IGJlYW50d29ydGVuLgoKMi4gSW4gd2VsY2hlbSBMYW5kIHd1cmRlIGRlciAiUGFuYW1hIEh1dCIgZXJmdW5kZW4/CgpCcmFzaWxpZW4KQ2hpbGUKUGFuYW1hCkVxdWFkb3IKCkRpZSBCbG9uZGluZSBiaXR0ZXQgZGllIFp1c2NoYXVlciB1bSBIaWxmZS4KCjMuIEluIHdlbGNoZW0gTW9uYXQgZmVpZXJuIGRpZSBSdXNzZW4gZGVuIEZlc3R0YWcgZGVyIE9rdG9iZXItUmV2b2x1dGlvbj8KCkphbnVhcgpTZXB0ZW1iZXIKT2t0b2JlcgpOb3ZlbWJlcgoKRGllIEJsb25kaW5lIG51dHp0IGRhcyBSZWNodCBlaW5tYWwgZGllIEFudHdvcnQgcGVyIFRlbGVmb24genUgZXJmcmFnZW4gdW5kCnJ1ZnQgZWluZSBhbmRlcmUgQmxvbmRpbmUgYW4uCgo0LiBXaWUgaXN0IGRlciByaWNodGlnZSBOYW1lIHZvbiBLb2VuaWcgR2VvcmcgSVY/CgpBbGJlcnQKR2VvcmcKTWFudWVsbApKb25hcwoKRGllIEJsb25kaW5lIG51dHp0IGRhcyBSZWNodCB6d2VpIGZhbHNjaGUgQW50d29ydGVuIGF1c3p1c3RyZWljaGVuLgoKNS4gVm9uIHdlbGNoZW0gVGllcm5hbWVuIHN0YW1tdCBkZXIgTmFtZSBkZXIgS2FuYXJpc2NoZW4gSW5zZWxuPwoKS2FuYXJpZW52b2dlbApLYWVuZ3VydQpSYXR0ZQpTZWVodW5kCgpEaWUgQmxvbmRpbmUgZmFlbGx0IGF1cyBkZW0gU3BpZWwgcmF1cy4KClAuUy46IEZhbGxzIFNpZSBiZWltIExlc2VuIGdlbGFjaHQgaGFiZW4sIGhpZXIgc2luZCBkaWUgcmljaHRpZ2VuIEFudHdvcnRlbjoKCjEuIERlciBIdW5kZXJ0amFlaHJpZ2UgS3JpZWcgZGF1ZXJ0ZSAxMTYgSmFocmUgKHZvbiAxMzM3IGJpcyAxNDUzKS4KMi4gRGVyICJQYW5hbWEgIi0gSHV0IHd1cmRlIGluIEVxdWFkb3IgZXJmdW5kZW4uCjMuIERlciBGZXN0dGFnIGRlciBPa3RvYmVyLVJldm9sdXRpb24gd2lyZCBhbSA3LiBOb3ZlbWJlciBnZWZlaWVydAo0LiBSaWNodGlnZXIgTmFtZSB2b24gS29lbmlnIEdlb3JnIElWIHdhciBBbGJlcnQuIERlciBLb2VuaWcgaGF0IGRlbiBOYW1lbgoxOTM2IGdlYWVuZGVydC4KNS4gRGVyIE5hbWUgZGVyIEthbmFyaXNjaGVuIEluc2VsIHN0YW1tdCB2b20gU2VlaHVuZC4gQXVmIExhdGVpbiBiZWRldXRldCBlcgoiSW5zZWwgZGVyIFNlZWh1bmRlIi4KCk5hLCBzaW5kIFNpZSB2aWVsIGtsdWVnZXIgYWxzIGRpZSBCbG9uZGluZT8/Pz8KCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmxvbmRpbmVudGVzdCAoQXBvbGxvbmlhLCAyMy4gSmFuIDIwMDQsIDE0OjMwOjUwKToKfiMhIHJuPU1vcmdvdGggcnQ9MTA3NDc4MDcxMiByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKSmEuIEVpbmRldXRpZy4gSWNoIGhhZXR0ZSBudXIgRnJhZ2UgNCBuaWNodCBiZWFudHdvcnRlbiBrb2VubmVuLgoKQXBvKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJsb25kaW5lbnRlc3QgKEFtYXpvcmEsIDIzLiBKYW4gMjAwNCwgMTU6NTY6MzkpOgp+IyEgcm49TW9yZ290aCBydD0xMDc0NzgwNzEyIHJnPXdpdHplCn4jISB0aWQ9MTA3NDc4MDcxMgppY2ggc2Nob24hIDstKQpiaXMgYXVmIGRhcyBtaXQgZGVuIGthbmFyaXNjaGVuIGluc2VsbiBoYWIgaWNoIGFsbGVzIGdld3Vzc3QgOy0pCmFtYXpvcmEgaXMgYXVjaCBibG9uZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBCbG9uZGluZW50ZXN0IChCb2luZywgMjMuIEphbiAyMDA0LCAxNjo0NDo0MCk6Cn4jISBybj1BbWF6b3JhIHJ0PTEwNzQ4Njk3OTkgcmc9d2l0emUKfiMhIHRpZD0xMDc0NzgwNzEyCkRhcyBtaXQgZGVuIGthbmFyaXNjaGVuIEluc2VsbiBpc3QgZWggZmFsc2NoLCB3ZWlsIGVzIHZvbiBIdW5kIChDYW5pcykKa29tbXQgdW5kIG5pY2h0IHZvbiBTZWVodW5kIC4uLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCbG9uZGluZW50ZXN0IChXaWxsb3csIDIzLiBKYW4gMjAwNCwgMTY6NDU6MjcpOgp+IyEgcm49Qm9pbmcgcnQ9MTA3NDg3MjY4MCByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKSGFhcnNwYWx0ZXIgLSBIdW5kIGlzdCBIdW5kIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBCbG9uZGluZW50ZXN0IChNYWhhcmV0LCAyMy4gSmFuIDIwMDQsIDE2OjQ2OjAzKToKfiMhIHJuPVdpbGxvdyBydD0xMDc0ODcyNzI3IHJnPXdpdHplCn4jISB0aWQ9MTA3NDc4MDcxMgpGbGllZ2VuZGUgSHVuZGUgaGFiZW4gZGllIGRhLCBuZQpgCk1haGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1c2ggKEdhbmRvLCAyMy4gSmFuIDIwMDQsIDE3OjE3OjQwKToKIkEgbG90IG9mIG91ciBpbXBvcnRzIGNvbWUgZnJvbSBmb3JlaWduIGNvdW50cmllcyEiIChHLlcuIEJ1c2gpCgpkYSBoYXQgd29obCBqbWQgdmVyc3RhbmRlbiwgd2llIGRhcyBhbGxlcyBmdW5raW9uaWVydC4KCkdhbmRvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBCbG9uZGluZW50ZXN0IChNdWFkaWIsIDIzLiBKYW4gMjAwNCwgMTc6MzQ6NDUpOgp+IyEgcm49Qm9pbmcgcnQ9MTA3NDg3MjY4MCByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKbWFuIGthbm4gZGFzIGdhciBuaWNodCBnZW51ZyBiZXRvbmVuLgpjYW5pcyBpc3QgZGVyIGh1bmQsIGRlciBnZW1laW5lIHNlZWh1bmQgaXN0IGJla2FubnQgYWxzIHBob2NhIHZpdHVsaW5hLCBkYQpzdGVja3QgYWxzbyBrZWluIGNhbmlzIGRyaW5uZQpkYXMgd2FwcGVuIGRlciBrYW5hcmVuIHdpcmQgdm9uIDIgaHVuZGVuIGdlc3R1ZXR6dCB1bmQgZGV1dGV0IGF1ZiBlaW5lIGRlcgplcmZvbGdyZWljaGVuIHRhZXRpZ2tlaXRlbiBkZXIga2FuYXJlbiBoaW46IGRlciBodW5kZXp1Y2h0CmRhbWl0IGlzdCBhdWNoIGRlciBuYW1lIHp1IGVya2xhZXJlbi4Kbml4IG1pdCBzZWVodW5kZW4KCnNvIG1hbCB3aWVkZXIga2x1ZyBnZXNjaGlzc2VuCnBzOiBqYWphIGRpZSBodW5kZXp1Y2h0IHVuZCBrb21tYXRhIHNpbmQgYXVjaCB0b2xsZSBldGMgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJsb25kaW5lbnRlc3QgKE1hcml0YSwgMjQuIEphbiAyMDA0LCAwMjo0NzowMSk6Cn4jISBybj1BcG9sbG9uaWEgcnQ9MTA3NDg2NDY1MCByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKS2VpbiBXdW5kZXIsIGRpZSBBbnR3b3J0IHp1IEZyYWdlIDQgaXN0IGF1Y2ggZmFsc2NoLiBLb2VuaWcgR2VvcmcgSVYuIGxlYnRlCjE5MzYgc2Nob24gbGFuZ2UgbmljaHQgbWVociAoZ2VzdC4gMTgzMCksIHVuZCBBbGJlcnQgaGllc3MgZXIgYXVjaCBuaWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEJsb25kaW5lbnRlc3QgKE5va2ksIDI0LiBKYW4gMjAwNCwgMTI6MDY6MzIpOgp+IyEgcm49Qm9pbmcgcnQ9MTA3NDg3MjY4MCByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKY2FuaXMsIGlzIG0gdS4gZiBIdW5kLCBIdWVuZGluIFsuLi5dIGMpIFNlZWh1bmQgKG1hcmludXMpOyBteXRoaXNjaCB2b24gZGVuCkh1bmRlbiBkZXIgU2N5bGxhCgplcmdvOiBpc3QgZWluZSBCZWRldXR1bmdzdmFyaWFudGUgdm9uIGNhbmlzIGltIHJpY2h0aWdlbiBLb250ZXh0IGF1Y2ggU2VlaHVuZCwKYWxzbyBpc3QgZWluIEJlZGV1dHVuZ3N1cnNwcnVuZyB3aWUgZ2VzY2hpbGRlcnQgZHVyY2hhdXMgZGVua2JhciA6KQoKbm9raSpuYXNld2VpcyoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEJsb25kaW5lbnRlc3QgKE5va2ksIDI0LiBKYW4gMjAwNCwgMTI6MTQ6MjYpOgp+IyEgcm49Tm9raSBydD0xMDc0OTQyMzkyIHJnPXdpdHplCn4jISB0aWQ9MTA3NDc4MDcxMgpBbGxlcmRpbmdzOgpoYWJlIGljaCBtaXR0bGVyd2VpbGUgYXVjaCBkZW4gSGlud2VpcyBhdWYgUGxpbml1cyBnZWZ1bmRlbiwgZGVyIGRlbgpmcmFnbGljaGVuIEluc2VsbiBpaHJlbiBOYW1lbiB3ZWdlbiBkZXIgZG9ydCBsZWJlbmRlbiB3aWxkZW4gSHVuZGVuIGdlZ2ViZW4KaGFiZW4gc29sbC4uLiAKCm5va2kqc3RyZWljaHQgZWluIG4qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCbG9uZGluZW50ZXN0IChKYW1lc29uLCAyNC4gSmFuIDIwMDQsIDEyOjE4OjEwKToKfiMhIHJuPU5va2kgcnQ9MTA3NDk0Mjg2NiByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKRGVyIFJlaXNlZnVlaHJlciAoQmFlZGVrZXI/IHdlaXNzIGdhciBuaWNodCBtZWhyKSwgZGVuIHdpciB1bnMgZnVlciB1bnNlcmVuCkRlemVtYmVyLVVybGF1YiBhdWYgR3JhbiBDYW5hcmlhIGF1c2dlbGllaGVuIGhhdHRlbiwgc2NocmllYiB3YXMgdm9uIGVpbmVyCmJlc3RpbW10ZW4gTWlzY2hsaW5nc2FydCwgd2VubiBpY2ggbWljaCByZWNodCBlcmlubmVyZS4uLiBqZWRlbmZhbGxzIHdhcmVuIGVzCmRlZmluaXRpdiBrZWluZSBTZWVodW5kZSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQmxvbmRpbmVudGVzdCAoTXVhZGliLCAyNC4gSmFuIDIwMDQsIDEyOjI0OjAzKToKfiMhIHJuPU5va2kgcnQ9MTA3NDk0MjM5MiByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKZXMgZ2lidCBrZWluIGNhbmlzIG1hcmludXMgOikKZGllIHRheG9ub21pZSBpc3QgcGhvY2Egdml0dWxpbmEgZnVlciBkZW4gZ2VtZWluZW4gc2VlaHVuZAoKZGEgaGlsZnQga2VpbiBuYXNld2Vpc2VzIGJpZWdlbiwgZGllIGxldHp0ZSBmcmFnZSBpc3Qgc2Nocm90dAp6dW1pbmRlc3QgZGllCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBCbG9uZGluZW50ZXN0IChBbGtvaG9sLCAyNC4gSmFuIDIwMDQsIDEyOjMxOjQxKToKfiMhIHJuPU11YWRpYiBydD0xMDc0OTQzNDQzIHJnPXdpdHplCn4jISB0aWQ9MTA3NDc4MDcxMgpobW0gYWxzbyBtYWwgYWJnZXNlaGVuIGRhdm9uIHdhcyBiZWkgUGxpbml1cyBzdGVodCAoZmluZGUga2VpbiBaaXRhdCBsZWlkZXIpCmlzdCBjYW5pcyBtYXJpbnVzIGFiZXIgaW4gZGVyIExpdGVyYXR1ciBiZXpldWd0LCB6QiBiZWkgQWxhbnVzIChvayBkYXMgaXN0Ck1pdHRlbGFsdGVyKSAgdW5kIGF1Y2ggYW5kZXJlbi4KCkFsa2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEJsb25kaW5lbnRlc3QgKE5va2ksIDI0LiBKYW4gMjAwNCwgMTI6MzQ6MDApOgp+IyEgcm49TXVhZGliIHJ0PTEwNzQ5NDM0NDMgcmc9d2l0emUKfiMhIHRpZD0xMDc0NzgwNzEyCkJlaSBDYW5pcyAobWFyaW51cykgaXN0IGtlaW5lcmxlaSBtb2Rlcm5lIE5vbWVua2xhdHVyIGltIFNwaWVsLCBzb25kZXJuCmFsdHBoaWxvbG9naXNjaGUgRXRoeW1vbG9naWUgLSBlcnN0ZXJlIGlzdCBmdWVyIGRpZSBOYW1lbnNnZWJ1bmcgZGVyIEluc2Vsbgp1bnp3ZWlmZWxoYWZ0IGJlZGV1dHVuZ3Nsb3MsIGxldHp0ZXJlIGplZG9jaCBnZXdpc3MgcmVsZXZhbnQuCgo6LVAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEJsb25kaW5lbnRlc3QgKE11YWRpYiwgMjQuIEphbiAyMDA0LCAxMzowNDozMCk6Cn4jISBybj1BbGtvaG9sIHJ0PTEwNzQ5NDM5MDEgcmc9d2l0emUKfiMhIHRpZD0xMDc0NzgwNzEyCmJsZWliZW4gd2lyIHJ1aGlnIGJlaSBhbGFudXMKZXIgdmVyd2VuZGV0ZSBkdXJjaGF1cyBkZW4gdGVybSBjYW5pcyBtYXJpbnVzIGFiZXIga29ycmVrdGUgdGF4b25vbWllIGlzdCBlcwpuaWNodCB1bmQgbWl0IGRlbSBuYW1lbiBkZXIga2FuYXJlbiBpc3QgZGFzIGF1Y2ggbmljaHQgenUgdmVyYmluZGVuIGRhIGRpZXNlcgp3b2hsIGVoZXIgYXVmIGRlciBodW5kZXp1Y2h0IGRvcnQgYmVydWh0IHVuZCBhdWNoIGRhcyBhdWZ0YXVjaGVuIHZvbiAyCnN0dWV0emVuZGVuIGh1bmRlbiBpbSB3YXBwZW4gZXJrbGFlcnQKYWJlciB2aWVsbGVpY2h0IGhhZXR0ZSBkaWUgYmxvbmRpbmUgamEgZG9jaCBkZW4gY2FuaXMgbWFyaW51cyBhdXMKaWxsdXN0cmF0aW9uZW4ga2VubmVuIGtvZW5uZW4gd2llIHp1bSBiZWlzcGllbCBhdXMgZGllc2VyCmh0dHA6Ly93d3cucGhvdG9saWIubm9hYS5nb3YvbGlicmFyeS9saWJyMDA5MC5odG0KCmFiZXIgZWlnZW50bGljaCBpc3QgZXMgbWlyIHd1cnNjaHQgOikKCndhcnVtIHNjaHJlaWIgaWNoIGRpZXNlbiBhcnRpa2VsIGdlcmFkZSBub2NobWFsPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogQmxvbmRpbmVudGVzdCAoTm9raSwgMjQuIEphbiAyMDA0LCAxMzo0NDoxNik6Cn4jISBybj1NdWFkaWIgcnQ9MTA3NDk0NTg3MCByZz13aXR6ZQp+IyEgdGlkPTEwNzQ3ODA3MTIKU28sIGpldHp0IGhhYiBpY2ggZGllIFF1ZWxsZSB1bmQgbWl0IEh1bmRlenVjaHQgaGF0IFBsaW5pdXMgd29obCBuaXggenUgdHVuLApzZWluZSAoZ2VuYXVlciBLb2VuaWcgSXViYXMgQmVuYW11bmcgZGVyIEluc2VsKSBiZXppZWh0IHNpY2ggd29obCBudXIgYXVmIGRpZQpWaWVsemFobCB2b24gSHVuZGVuIHZvbiB1bmdlaGV1cmVyIEdyb2Vzc2UsIGRpZSBkaWVzZSBJbnNlbCBiZXdvaG5lbiAtIHVuZCBkaWUKSXViYSwgbWF1cmV0YW5pc2NoZXIgS29lbmlnIHVuZCBTY2hyaWZ0c3RlbGxlciBkb3J0IHZvbiBFeHBlZGl0aW9uIG1pdGJyYWNodGUuCkRpZSBTdGVsbGUgaXN0IGluIGRlciBIaXN0b3JpYSBuYXR1cmFsaXMsIEJ1Y2ggVkksIDIwNSB1bmQgbGF1dGV0OgoicHJveGltYW0gZWkgQ2FuYXJpYW0gdm9jYXJpIGEgbXVsdGl0dWRpbmUgY2FudW0gaW5nZW50aXMgbWFnbml0dWRpbmlzIgoKbioqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBCbG9uZGluZW50ZXN0IChNdWFkaWIsIDI0LiBKYW4gMjAwNCwgMTQ6MDQ6MjUpOgp+IyEgcm49Tm9raSBydD0xMDc0OTQ4MjU2IHJnPXdpdHplCn4jISB0aWQ9MTA3NDc4MDcxMgpvayB3ZWdlbiBtaXIgYXVjaCBvaG5lIHp1Y2h0LCBhYmVyIGF1ZiBqZWRlbiBmYWxsIGtlaW5lIHNlZWh1bmRlIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBCbG9uZGluZW50ZXN0IChNdWFkaWIsIDI0LiBKYW4gMjAwNCwgMTQ6MDU6MjkpOgp+IyEgcm49TXVhZGliIHJ0PTEwNzQ5NDk0NjUgcmc9d2l0emUKfiMhIHRpZD0xMDc0NzgwNzEyCndvYmVpIG1hbiBlcmdhZW56ZW4gbXVzcyBkYXNzIGljaCBuaWVtYWxzIHNhZ3RlIHBsaW5pdXMgaGFldHRlIHdhcyBtaXQKaHVuZGV6dWNodCB6dSB0dW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCdXNoIChTZWxldmVuLCAyNy4gSmFuIDIwMDQsIDEyOjMyOjI3KToKfiMhIHJuPUdhbmRvIHJ0PTEwNzQ4NzQ2NjAgcmc9d2l0emUKfiMhIHRpZD0xMDc0ODc0NjYwCkRhIGdhYiBlcyBkb2NoIGVpbiAoPykgQnVjaCB6dSAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQnVzaCAoTGlhcmEsIDI3LiBKYW4gMjAwNCwgMTM6MDY6MjEpOgp+IyEgcm49U2VsZXZlbiBydD0xMDc1MjAzMTQ3IHJnPXdpdHplCn4jISB0aWQ9MTA3NDg3NDY2MApKYSwgZ2lidCBlcyB6dXIgWmVpdCBpbSBCdWNoZGlzY291bnQgYWxzIE1hZW5nZWxleGVtcGxhciB6dW0gaGFsYmVuIFByZWlzLiBJY2gKa29ubnRlIGVzIG1pciBhYmVyIG5pY2h0IGthdWZlbiwgd2VpbCBpY2ggZXMgbmFjaCAzIFNlaXRlbiBlaW5mYWNoIG5pY2h0IG1laHIKZXJ0cmFnZW4gaGFiZS4gOj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRvY2ggYXVzZ2VyYXVidD8gKEhpeHRpbmUsIDI3LiBKYW4gMjAwNCwgMTM6MDg6MjYpOgoiV2VubiBpY2ggbWVpbmUgRnJhdSBuaWNodCBoYWV0dGUsIHdhZXJlIGljaCBnZXN0ZXJuIGF1c2dlcmF1YnQgd29yZGVuLiIKIkRvbm5lcndldHRlciwgaGF0IHNpZSBkZW4gVGFldGVyIGluIGRpZSBGbHVjaHQgZ2VzY2hsYWdlbj8iCiJOZWluLCBzaWUgaGF0dGUgbWVpbmUgVGFzY2hlbiBzY2hvbiB2b3JoZXIgZ2VsZWVydC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdXNoIG1hbCB3aWVkZXIgKEtlbGx5YnVuZHksIDMwLiBKYW4gMjAwNCwgMTU6MzU6MzkpOgpHZW9yZ2UgVy4gQnVzaCBoYXQgZWluZW4gSGVyemFuZmFsbCB1bmQgc3RpcmJ0LiBFciB3aXJkIGRpcmVrdCBpbiBkaWUgSG9lbGxlCmdlc2NoaWNrdCwgd28gZGVyIFRldWZlbCBiZXJlaXRzIGF1ZiBpaG4gd2FydGV0LiAiSWNoIHdlaXNzIG5pY2h0IHdhcyBpY2gKbWFjaGVuIHNvbGwiLCBzYWd0IGRlciBUZXVmZWwsICJEdSBiaXN0IHp3YXIgYXVmIG1laW5lciBMaXN0ZSwgYWJlciBpY2ggaGFiZQprZWluIGZyZWllcyBaaW1tZXIgdWVicmlnLiBEYSBEdSBhdWYgamVkZW4gRmFsbCBpbiBkaWUgSG9lbGxlIGdlaG9lcnN0LAptdWVzc2VuIHdpciBhbHNvIGVpbmUgTG9lc3VuZyBmaW5kZW4uO1dpciBoYWJlbiBoaWVyIGVpbiBwYWFyIFR5cGVuLCBkaWUgbGFuZ2UKbmljaHQgc28gc2NobGVjaHQgc2luZCB3aWUgRHUuSWNoIHdlcmRlIGVpbmVuIGRhdm9uIGZyZWlsYXNzZW4sIGRhbWl0IER1CmRlc3NlbiBQbGF0eiBlaW5uZWhtZW4ga2FubnN0LCB1bmQgRHUgZGFyZnN0IGVudHNjaGVpZGVuIHdlbi4iICJEYXMga2xpbmd0Cmd1dCIsIGRlbmt0IHNpY2ggR2VvcmdlLCB1bmQgZGVyIFRldWZlbCBvZWZmbmV0IGRlbiBlcnN0ZW4gUmF1bS4gRHJpbm5lbiBzaWVodAplciBSb25hbGQgUmVhZ2FuIGluIGVpbmVtIHJpZXNpZ2VuIFN3aW1taW5ncG9vbCwgaW5zIFdhc3NlciBlaW50YXVjaGVuIHVuZAp3aWVkZXIgYXVmdGF1Y2hlbi4gSW1tZXIgdW5kIGltbWVyIHdpZWRlci4uLiAKIiBBY2ggbm9lIiwgc2FndCBHZW9yZ2UsICJkYXMgaXN0IG5pY2h0cyBmdWVyIG1pY2guIEF1c3NlcmRlbSBiaW4gaWNoIGVoIGtlaW4KZ3V0ZXIgU2Nod2ltbWVyLi4uIiAKRGVyIFRldWZlbCBvZWZmbmV0IGRpZSB6d2VpdGUgVHVlci4gRXIgc2llaHQgUmljaGFyZCBOaXhvbiBpbiBlaW5lbSBSYXVtCnZvbGxlciBGZWxzZW4sIGRlciBtaXQgZWluZW0gSG9semhhbW1lciBhdWYgZGFzIEdlc3RlaW4gZWluaGF1dCwgaW1tZXIgdW5kCmltbWVyIHdpZWRlci4uLiAKIiBOZWluLCBpY2ggaGFiZSBQcm9ibGVtZSBtaXQgZGVyIFNjaHVsdGVyLiBFcyB3YWVyZSBlaW5lIFF1YWwgZnVlciBtaWNoLCBUYWcKZWluIFRhZyBhdXMgYXVmIEZlbHNlbiBlaW56dWhhdWVuIiBzYWd0IEdlb3JnZS4gRGVyIFRldWZlbCBvZWZmbmV0IGRpZSBkcml0dGUKVHVlci4gRHJpbm5lbiBsaWVndCBCaWxsIENsaW50b24gYW4gSGFlbmRlbiB1bmQgRnVlc3NlbiBnZWZlc3NlbHQgYXVmIGRlbQpCb2Rlbi4gVWViZXIgaWhtIGhvY2t0IE1vbmljYSBMZXdpbnNreSB1bmQgdHV0IGRhcywgd2FzIHNpZSBhbSBiZXN0ZW4ga2Fubi4KR2VvcmdlIHRyYXV0IHNlaW5lbiBBdWdlbiBuaWNodC4gCiIgTmFndXQsIGRhcyBrb2VubnRlIGljaCB0dW4iLCBzYWd0IGVyIHVuZCByZWlidCBzaWNoIGRpZSBIYWVuZGUuIERlciBUZXVmZWwKbGFlY2hlbHQgIk9rIE1vbmljYSwgRHUga2FubnN0IGdlaGVuLiIgCgogIAoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tCkdlb3JnZSBXLiBCdXNoIGhhdCBlaW5lbiBIZXJ6YW5mYWxsIHVuZCBzdGlyYnQuIEVyIHdpcmQgZGlyZWt0IGluIGRpZSBIb2VsbGUKZ2VzY2hpY2t0LCB3byBkZXIgVGV1ZmVsIGJlcmVpdHMgYXVmIGlobiB3YXJ0ZXQuICJJY2ggd2Vpc3MgbmljaHQgd2FzIGljaAptYWNoZW4gc29sbCIsIHNhZ3QgZGVyIFRldWZlbCwgIkR1IGJpc3QgendhciBhdWYgbWVpbmVyIExpc3RlLCBhYmVyIGljaCBoYWJlCmtlaW4gZnJlaWVzIFppbW1lciB1ZWJyaWcuIERhIER1IGF1ZiBqZWRlbiBGYWxsIGluIGRpZSBIb2VsbGUgZ2Vob2Vyc3QsCm11ZXNzZW4gd2lyIGFsc28gZWluZSBMb2VzdW5nIGZpbmRlbi47V2lyIGhhYmVuIGhpZXIgZWluIHBhYXIgVHlwZW4sIGRpZSBsYW5nZQpuaWNodCBzbyBzY2hsZWNodCBzaW5kIHdpZSBEdS5JY2ggd2VyZGUgZWluZW4gZGF2b24gZnJlaWxhc3NlbiwgZGFtaXQgRHUKZGVzc2VuIFBsYXR6IGVpbm5laG1lbiBrYW5uc3QsIHVuZCBEdSBkYXJmc3QgZW50c2NoZWlkZW4gd2VuLiIgIkRhcyBrbGluZ3QKZ3V0IiwgZGVua3Qgc2ljaCBHZW9yZ2UsIHVuZCBkZXIgVGV1ZmVsIG9lZmZuZXQgZGVuIGVyc3RlbiBSYXVtLiBEcmlubmVuIHNpZWh0CmVyIFJvbmFsZCBSZWFnYW4gaW4gZWluZW0gcmllc2lnZW4gU3dpbW1pbmdwb29sLCBpbnMgV2Fzc2VyIGVpbnRhdWNoZW4gdW5kCndpZWRlciBhdWZ0YXVjaGVuLiBJbW1lciB1bmQgaW1tZXIgd2llZGVyLi4uIAoiIEFjaCBub2UiLCBzYWd0IEdlb3JnZSwgImRhcyBpc3QgbmljaHRzIGZ1ZXIgbWljaC4gQXVzc2VyZGVtIGJpbiBpY2ggZWgga2VpbgpndXRlciBTY2h3aW1tZXIuLi4iIApEZXIgVGV1ZmVsIG9lZmZuZXQgZGllIHp3ZWl0ZSBUdWVyLiBFciBzaWVodCBSaWNoYXJkIE5peG9uIGluIGVpbmVtIFJhdW0Kdm9sbGVyIEZlbHNlbiwgZGVyIG1pdCBlaW5lbSBIb2x6aGFtbWVyIGF1ZiBkYXMgR2VzdGVpbiBlaW5oYXV0LCBpbW1lciB1bmQKaW1tZXIgd2llZGVyLi4uIAoiIE5laW4sIGljaCBoYWJlIFByb2JsZW1lIG1pdCBkZXIgU2NodWx0ZXIuIEVzIHdhZXJlIGVpbmUgUXVhbCBmdWVyIG1pY2gsIFRhZwplaW4gVGFnIGF1cyBhdWYgRmVsc2VuIGVpbnp1aGF1ZW4iIHNhZ3QgR2VvcmdlLiBEZXIgVGV1ZmVsIG9lZmZuZXQgZGllIGRyaXR0ZQpUdWVyLiBEcmlubmVuIGxpZWd0IEJpbGwgQ2xpbnRvbiBhbiBIYWVuZGVuIHVuZCBGdWVzc2VuIGdlZmVzc2VsdCBhdWYgZGVtCkJvZGVuLiBVZWJlciBpaG0gaG9ja3QgTW9uaWNhIExld2luc2t5IHVuZCB0dXQgZGFzLCB3YXMgc2llIGFtIGJlc3RlbiBrYW5uLgpHZW9yZ2UgdHJhdXQgc2VpbmVuIEF1Z2VuIG5pY2h0LiAKIiBOYWd1dCwgZGFzIGtvZW5udGUgaWNoIHR1biIsIHNhZ3QgZXIgdW5kIHJlaWJ0IHNpY2ggZGllIEhhZW5kZS4gRGVyIFRldWZlbApsYWVjaGVsdCAiT2sgTW9uaWNhLCBEdSBrYW5uc3QgZ2VoZW4uIiAKCiAgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbHMgdGVpbGUgbWl0IHZvbiBYWFggKE1vcmdvdGgsICAyLiBGZWIgMjAwNCwgMjI6MjA6NDApOgpGcmF1ZW4gc2luZCB3aWUgQnJpZWZtYXJrZW4uIGplIG1laHIgbWFuIHNpZSBsZWNrdCwgZGVzdG8gc2NobGVjaHRlciB3aXJkIG1hbgpzaWUgbG9zLiA6KQoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTVEVMTEEtTElFQkVDSy1QUkVJUyAoTHVnLCAgMy4gRmViIDIwMDQsIDE4OjU4OjA3KToKfiMhIHJuPU1vcmdvdGggcnQ9MTA3NDUwNTcxNSByZz13aXR6ZQp+IyEgdGlkPTEwNzQ1MDU3MTUKVGphLCBhbGxlcyBsYWNodCB1ZWJlciBkaWUgYWNoLXNvLWR1bW1lbi1BbWlzLiBOdXIgd2VubiBoaWVyIHdhcyBwYXNzaWVydCwKZ2lidCBlcyBmdWVyIHZlcmxvcmVuZXMgQXVnZW5saWNodCwgYW1wdXRpZXJ0ZSBHbGllZG1hc3NlbiB1bmQgYWVobmxpY2hlcyBudXIKUGVhbnV0cy4gSW4gV2lya2xpY2tlaXQgc2luZCB3aXIgbmFlbWxpY2ggZGllIEJsb2VkZW4sIHVuZCBkYXMgUmVjaHQgc2NodWV0enQKZGllIEluZHVzdHJpZSBuaWNodCBkZW4gVmVyYnJhdWNoZXIuLi4KCkx1Z2lmZXIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogU1RFTExBLUxJRUJFQ0stUFJFSVMgKENhZHJhY2gsICA3LiBGZWIgMjAwNCwgMTQ6NTc6MDIpOgp+IyEgcm49THVnIHJ0PTEwNzU4MzEwODcgcmc9d2l0emUKfiMhIHRpZD0xMDc0NTA1NzE1Ck1hbiBrYW5uIGRhcnVlYmVyIHN0cmVpdGVuIG9iIGRpZSBTY2hhZGVuc2Vyc2F0enN1bW1lbiBpbiBEZXV0c2NobGFuZCB6dQpnZXJpbmcgc2luZC4gV2VubiBEdSBhdWZncnVuZCBkZXMgVmVyc2NodWxkZW5zIGVpbmVzIGFuZGVyZW4gZWluZW4gU2NoYWRlbgplcmxlaWRlc3QsIGhhc3QgRHUgQW5zcHJ1Y2ggYXVmIFNjaGFkZW5zZXJzYXR6LCBkZXIgaXN0IGFiZXIgdW5iYWJoYWVuZ2lnIHZvbgpkZW0gVmVybW9lZ2VuIGRlcyBTY2hhZWRpZ2VycyEKRGFzIGFtZXJpa2FuaXNjaGUgU3lzdGVtIGhhdCBtaXQgUmVjaHRzIG5pY2h0cyBtZWhyIHp1IHR1biwgZGVubiB3aWVzbyBpc3QgZGFzCmFtcHV0aWVydGUgQmVpbiBtZWhyIFdlcnQgYmxvc3Mgd2VpbCBlcyBEaXIgZWluIFJlaWNoZXIgdmVyc2NoYWZmdCBoYXQ/IE5pY2h0cwpnZWdlbiBkaWVzZSBob2hlbiBTdHJhZmVuLCBhYmVyIGJpdHRlIGRhbm4gYW4gZGVuIFN0YWF0IG9kZXIgZ2VtZWlubnVldHppZ2UKT3JnYW5pc2F0aW9uZW4gdW5kIG5pY2h0IGFuIGRhcyBPcGZlci4KREFOTiBoYWV0dGVuIGF1Y2ggZGllIGdhbnplbiBsYWVjaGVybGljaGVuIEtsYWdlbiBlaW4gRW5kZS4KCkNhZCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFNURUxMQS1MSUVCRUNLLVBSRUlTIChPcmt0b2V0ZXIsICA4LiBGZWIgMjAwNCwgMjI6NTA6MjcpOgp+IyEgcm49Q2FkcmFjaCBydD0xMDc2MTYyMjIyIHJnPXdpdHplCn4jISB0aWQ9MTA3NDUwNTcxNQpCZWltIGFtZXJraWFuaXNjaGVuIFJlY2h0IHRlaWx0IHNpY2ggZGFzIG1laW5lcyB3aXNzZW5zIG5hY2ggYXVmLiBEdSBiZWtvbW1zdAp6dW0gZWluZW4gU2NoYWRlbnNlcnNhdHogKHVuZCBkZXIgaXN0IHdvaGwgYXVjaCBlaGVyIGtvbnN0YW50IHVuZCBuaWNodApleG9yYml0YW50KSB1bmQgenVtIHp3ZWl0ZW4gaW4gZGllICJkYW1hZ2VzIiwgYWxzbyBlaW5lIGFydCBTdHJhZmUuIFppZWwgaXN0CmVzLCBkYXNzIEZpcm1lbiBuaWNodCBnZWZhZWhybGljaGUgUHJvZHVrdGUgYXVmIGRlbiBNYXJrdCBicmluZ2VuLCB3ZWlsIGVpbmUKVWViZXJhcmJlaXR1bmcgdGV1cmVyIHdhZXJlIGFscyBkaWUgeCBTY2hhZGVuc2Vyc2F0enphaGx1bmdlbi4KCk9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTVEVMTEEtTElFQkVDSy1QUkVJUyAoR2xvaW5zb24sICA5LiBGZWIgMjAwNCwgMDY6MDg6NDQpOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTEwNzYyNzcwMjcgcmc9d2l0emUKfiMhIHRpZD0xMDc0NTA1NzE1ClVuZCBXaXJrdW5nIGRlcyBnYW56ZW4gaXN0IGVpbiBwYXJ0aWVsbGVyIFp1c2FtbWVuYnJ1Y2ggZGVyIGdlc3VuZGhlaXRsaWNoZW4KVmVyc29yZ3VuZywgZGEgc2ljaCBBZXJ6dGUgVmVyc2ljaGVydW5nZW4gZnVlciBGZWhsZXIgbmljaHQgbWVociBsZWlzdGVuCmtvZW5uZW4uCgpodHRwOi8vdGlueXVybC5jb20vM3k3ZnEgKFVTQVRvZGF5IDIwMDIgYnpnbCBHeW5hZWtvbG9nZW4sIGRpZSBTY2h3YW5nZXItCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoYWZ0c3ZvcnNvcmdlIG5pY2h0IG1laHIgdm9ybmVobWVuKQpodHRwOi8vd3d3LnVvd29ya3MuY29tL2NyaXNpcy5odG1sCgpVbmdlZGVja2VsdGUgU3RyYWZzdW1tZW4gc2luZCBlaW4gaW5ha3plcHRhYmxlcyBSZWNodHNtaXR0ZWwuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVm9yaGluIGltIFN1cGVybWFya3QgbWl0Z2Vob2VydCAuLi4gOz4gKExpYXJhLCAxMS4gRmViIDIwMDQsIDE5OjQ4OjM1KToKRWluIFBhZXJjaGVuIHN0ZWh0IHZvciBkZW0gU3Vlc3NpZ2tlaXRlbnJlZ2FsLiBCZWlkZSBzdGVsbGVuIG5hY2ggZGVtCkJlZmluZ2VybiBlaW5lciBUdWV0ZSBmZXN0LCBkYXNzIGRpZSBUdWV0ZW5ncm9lc3NlIGVpbmVuIGRldXRsaWNoIGhvZWhlcmVuCkluaGFsdCBzdWdnZXJpZXJ0LCBhbHMgdGF0c2FlY2hsaWNoIG5hY2ggVGFzdHByb2JlIHZvcmhhbmRlbiBpc3QuCkVyOiBEYXMgaGFiZW4gZGllIGJlc3RpbW10IHZha3V1bXZlcnBhY2t0LiBEYSBpc3QgYXVzc2VyIEx1ZnQgbml4IGRyaW4gLi4uCgpMaWFyYSwgaGF0dGUgdmllbCBTcGFzcyA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZvcmhpbiBpbSBTdXBlcm1hcmt0IG1pdGdlaG9lcnQgLi4uIDs+IChMaWFyYSwgMTEuIEZlYiAyMDA0LCAyMDowNjozMCk6Cn4jISBybj1MaWFyYSBydD0xMDc2NTI1MzE1IHJnPXdpdHplCn4jISB0aWQ9MTA3NjUyNTMxNQpFbGZlbmh1bW9yIC4uLgpFbGJpcyBSZWFrdGlvbiBhdWYgZGVuIEFydGlrZWw6CgpEZWluIEZyZXVuZCBFbGJlcmV0IHRlaWx0IERpciBtaXQ6IGthbm4gbWlyIHdlciBkZW4gd2l0eiBlcmtsYWVyZW4/OykKRGVpbiBGcmV1bmQgRWxiZXJldCBoYXQgbmUgbGFuZ2UgbGVpdHVuZyBhdXMgZGVyIEZlcm5lLiAKLi4uCkRlaW4gRnJldW5kIEVsYmVyZXQgdGVpbHQgRGlyIG1pdDogbmFqYSB3YXMgYmVpIG5lciB2YWt1dW12ZXJwYWNrdW5nIGdlbWFjaHQKRGVpbiBGcmV1bmQgRWxiZXJldCB0ZWlsdCBEaXIgbWl0OiB3aXJkIGlzdCBqYSB3b2hsIGtlaW4gaG9jaHZha3V1bQouLi4KRGVpbiBGcmV1bmQgRWxiZXJldCB0ZWlsdCBEaXIgbWl0OiBkYSBpc3Qgbm9jaCBsdWZ0IGRyaW4KCkxpYXJhLCBzY2hyZWlidCBmdWVyIEFuYXRvbCA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWb3JoaW4gaW0gU3VwZXJtYXJrdCBtaXRnZWhvZXJ0IC4uLiA7PiAoS2VsbHlidW5keSwgMTEuIEZlYiAyMDA0LCAyMDowOTo1NCk6Cn4jISBybj1MaWFyYSBydD0xMDc2NTI2MzkwIHJnPXdpdHplCn4jISB0aWQ9MTA3NjUyNTMxNQpXaWVzbyBoYWJlbiBlaWdlbnRsaWNoIGdld2lzc2UgRWxmZW4gc28gaG9oZW4gaW50IGJvbnVzLCBobW1tbT8KCkJsb25kY2hlbiwgbmVpZGlzY2ggZ3Vja2VuZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVm9yaGluIGltIFN1cGVybWFya3QgbWl0Z2Vob2VydCAuLi4gOz4gKEFuYXRvbCwgMTEuIEZlYiAyMDA0LCAyMDoxMDozNCk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTEwNzY1MjY1OTQgcmc9d2l0emUKfiMhIHRpZD0xMDc2NTI1MzE1CldlaWwgc2llIGlobiBicmF1Y2hlbi4KCk1laSBpc2NoIGRlciBhbHQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVm9yaGluIGltIFN1cGVybWFya3QgbWl0Z2Vob2VydCAuLi4gOz4gKEVsYmVyZXQsIDExLiBGZWIgMjAwNCwgMjA6MTA6NTIpOgp+IyEgcm49S2VsbHlidW5keSBydD0xMDc2NTI2NTk0IHJnPXdpdHplCn4jISB0aWQ9MTA3NjUyNTMxNQppc3QgamEgc2Nob24gZ3V0LCBuZWhtdCBtaXIgNSBpbnQgYWIsIG9kZXIgdmllbGxlaWNodCBiZXNzZXIgMTAKCkVsYmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFZvcmhpbiBpbSBTdXBlcm1hcmt0IG1pdGdlaG9lcnQgLi4uIDs+IChMaWFyYSwgMTEuIEZlYiAyMDA0LCAyMDoxMTozNCk6Cn4jISBybj1FbGJlcmV0IHJ0PTEwNzY1MjY2NTIgcmc9d2l0emUKfiMhIHRpZD0xMDc2NTI1MzE1Ck5lZSwgZHUgaGFzdCBkYSBldHdhcyBmYWxzY2ggdmVyc3RhbmRlbiAuLi4gZXMgZ2luZyBoaWVyIHVtIEJSQVVDSEVOOiA6PgoKTGlhcmEsIGdpYnQgRWxiaSBsaWViZXIgbm9jaCBldHdhcyBkYXp1CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBWb3JoaW4gaW0gU3VwZXJtYXJrdCBtaXRnZWhvZXJ0IC4uLiA7PiAoQW5hdG9sLCAxMS4gRmViIDIwMDQsIDIwOjEyOjAyKToKfiMhIHJuPUxpYXJhIHJ0PTEwNzY1MjY2OTQgcmc9d2l0emUKfiMhIHRpZD0xMDc2NTI1MzE1CkR1IGhhc3QgZGllIGZhbHNjaGVuIEZyZXVuZGUsIEVsYmVyZXQuIDspCgpEaWUgZmFlcmJlbiBhYi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBWb3JoaW4gaW0gU3VwZXJtYXJrdCBtaXRnZWhvZXJ0IC4uLiA7PiAoRWxiZXJldCwgMTEuIEZlYiAyMDA0LCAyMDoxMjoxMik6Cn4jISBybj1MaWFyYSBydD0xMDc2NTI2Njk0IHJnPXdpdHplCn4jISB0aWQ9MTA3NjUyNTMxNQp3b3p1IGJyYXVjaGUgaWNoIGRhcz8genVtIGR1bW1sYWJlcm4gaGFiIGljaCBub2NoIHp1dmllbAoKRWxiaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogVm9yaGluIGltIFN1cGVybWFya3QgbWl0Z2Vob2VydCAuLi4gOz4gKExpYXJhLCAxMS4gRmViIDIwMDQsIDIwOjEyOjUzKToKfiMhIHJuPUVsYmVyZXQgcnQ9MTA3NjUyNjczMiByZz13aXR6ZQp+IyEgdGlkPTEwNzY1MjUzMTUKQXRtZW4/IExhdWZlbj8gQmF1bWtudWRkZWxuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogVm9yaGluIGltIFN1cGVybWFya3QgbWl0Z2Vob2VydCAuLi4gOz4gKEVsYmVyZXQsIDExLiBGZWIgMjAwNCwgMjA6MTM6MTkpOgp+IyEgcm49TGlhcmEgcnQ9MTA3NjUyNjc3MyByZz13aXR6ZQp+IyEgdGlkPTEwNzY1MjUzMTUKZGFzIHNpbmQgaW5zdGlrdGUgZGllIGdlaGVuIGJlaSBlbGZlbiBhdWNoIG5vY2ggbWl0IGludCAwCgpFbGJpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBWb3JoaW4gaW0gU3VwZXJtYXJrdCBtaXRnZWhvZXJ0IC4uLiA7PiAoQW5hdG9sLCAxMS4gRmViIDIwMDQsIDIwOjEzOjQ3KToKfiMhIHJuPUVsYmVyZXQgcnQ9MTA3NjUyNjc5OSByZz13aXR6ZQp+IyEgdGlkPTEwNzY1MjUzMTUKU3RlbGwgRGlyIG1hbCBuZW4gWndlcmcgbWl0IEludCAwIHZvci4gRGVyIHd1ZXJkZSBzaWNoIGdsYXR0IFdBU0NIRU4uLi4KCldhaC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIbT8gOikgKE1vcmdvdGgsIDExLiBGZWIgMjAwNCwgMjA6MTQ6MTgpOgoKRWluIFp3ZXJnIHVuZCBlaW4gRWxmIHVudGVyaGFsdGVuIHNpY2ggdWViZXIgSW50ZWxsaWdlbnouCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhtPyA6KSAoS2VsbHlidW5keSwgMTEuIEZlYiAyMDA0LCAyMDoxNDo1Nik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTEwNzY1MjY4NTggcmc9d2l0emUKfiMhIHRpZD0xMDc2NTI2ODU4CnVuZCBuZSBibG9uZGluZS4gYXVzZ2VyZWNobmV0LgoKQmxvbmRjaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBWb3JoaW4gaW0gU3VwZXJtYXJrdCBtaXRnZWhvZXJ0IC4uLiA7PiAoTGlhcmEsIDExLiBGZWIgMjAwNCwgMjA6MTU6MzUpOgp+IyEgcm49RWxiZXJldCBydD0xMDc2NTI2Nzk5IHJnPXdpdHplCn4jISB0aWQ9MTA3NjUyNTMxNQpTbyB3aWUgZHUgZGljaCBlYmVuIGFuZ2Vob2VydCBoYXN0LCBnbGF1YmUgaWNoIGRpciBkYXMgbmljaHQuIDs+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpPRSAoQW5vcmlzLCAxOC4gRmViIDIwMDQsIDExOjEwOjU0KToKMiBPZXN0ZXJyZWljaGVyIG5hY2ggZGVyIEZhaHJwcnVlZnVuZzogQmlzdCBkdXJjaGtpbW1hPyAtIE5lLiAtIFdhcnVtIG5ldD8gLQpWb3JtIEtyZWlzZWwgaXN0IDMwIGdzdGFuZGVuLCBkYSBiaW4gaSAzMGlnIG1hbCBpbSBLcmVpcyBnZmFocm4uIC0KSGFzdCBkaSB2ZXJ6b2VobHQ/CgopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYWhyc2NoZWlubGljaCBhbHQuLi5hYmVyIGd1dCAqZ3JpbnMqIChNb3Jnb3RoLCAyMi4gRmViIDIwMDQsIDE1OjAwOjU3KToKRWluIFJlcG9ydGVyIHdpbGwgZWluZSBTdG9yeSB1ZWJlciBtZW5zY2hsaWNoZSBTY2hpY2tzYWxlIHNjaHJlaWJlbi4gCkVyIGJlZ2lidCBzaWNoIG5hY2ggQXVzdHJhbGllbiBpbnMgaGludGVyc3RlIE91dGJhY2sgaW4gZGllIGxldHp0ZW4KbWVuc2NobGljaGVuIFJlc2VydmF0ZSBpbiB3aWxkZXIgTmF0dXIgdW5kIGJlZnJhZ3QgZWluZW4gZG9ydCBhbnNhZXNzaWdlbgpGYXJtZXI6IAoiV2FzIHdhciBpaHIgc2Nob2Vuc3RlcyBFcmxlYm5pcz8iIAoiTnVuLCBkYXMgd2FyIGFscyBzaWNoIGRhcyBTY2hhZiBlaW5lcyBOYWNoYmFybiB2ZXJsYXVmZW4gaGF0dGUuIFdpciBiaWxkZXRlbgplaW5lbiBTdWNodHJ1cHAgdW5kIGZhbmRlbiBlcy4gRGFubiBoYWJlbiB3aXIgZXMgYWxsZSBnZXZvZWdlbHQuIgpEZXIgUmVwb3J0ZXIgc2NoYXV0IGV0d2FzIGluZGlnbmllcnQgdW5kIGRlbmt0IHNpY2ggOiBEYXMga2FubiBpY2ggbmljaHQKZHJ1Y2tlbi4gCkFsc28gZnJhZ3QgZXIgbm9jaCBtYWw6ICJVbmQgd2FzIHdhciBkYW5uIGlociB6d2VpdHNjaG9lbnN0ZXMgRXJsZWJuaXMgaGllcgpkcmF1c3Nlbj8iCiJEYXMgd2FyLCBhbHMgc2ljaCBkaWUgaHVlYnNjaGUgVG9jaHRlciBlaW5lcyBhbmRlcmVuIE5hY2hiYXJuIHZlcmxhdWZlbgpoYXR0ZS4gCldpciBiaWxkZXRlbiBlaW5lbiBTdWNodHJ1cHAgdW5kIGZhbmRlbiBzaWUgc2NobGllc3NsaWNoLiBEYW5uIGhhYmVuIHdpciBhbGxlCnNpZSBnZXZvZWdlbHQuIgpTbyBrb21tZW4gd2lyIG5pY2h0IHdlaXRlciBkZW5rdCBzaWNoIGRlciBSZXBvcnRlciB1bmQgZnJhZ3QgYWxzbzogCiJVbmQgd2FzIHdhciBkYW5uIGlociBzY2hsaW1tc3RlcyBFcmxlYm5pcyBoaWVyIGRyYXVzc2VuPyIgCkFudHdvcnRldCBkZXIgRmFybWVyOiAiRGFzIHdhciwgYWxzIGljaCBtaWNoIHZlcmxhdWZlbiBoYXR0ZS4uLiIgCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGV1dGUgaW0gRm9ydHVuZS4uLiAoT2dvLCAyMi4gRmViIDIwMDQsIDE4OjEwOjI5KToKVGhlIGZpdmUgcnVsZXMgb2YgU29jaWFsaXNtOgoKICAgICAgICAxLiBEb24ndCB0aGluay4KICAgICAgICAyLiBJZiB5b3UgZG8gdGhpbmssIGRvbid0IHNwZWFrLgogICAgICAgIDMuIElmIHlvdSB0aGluayBhbmQgc3BlYWssIGRvbid0IHdyaXRlLgogICAgICAgIDQuIElmIHlvdSB0aGluaywgc3BlYWsgYW5kIHdyaXRlLCBkb24ndCBzaWduLgogICAgICAgIDUuIElmIHlvdSB0aGluaywgc3BlYWssIHdyaXRlIGFuZCBzaWduLCBkb24ndCBiZSBzdXJwcmlzZWQuCgogICAgICAgICAgICAgICAgLS0gYmVpbmcgdG9sZCBpbiBQb2xhbmQsIDE5ODcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBXYWhyaGVpdCwgbmljaHRzIGFscyBkaWUgcmVpbmUgV2FocmhlaXQhIChNb3Jnb3RoLCAyNy4gRmViIDIwMDQsIDEyOjU2OjU0KToKRXMgaXN0IGltIEJ1ZXJvIHdpZWRlciBlaW5tYWwgc3BhZXRlciBnZXdvcmRlbi4KTmFjaCBkZW0gbGV0enRlbiBEaWt0YXQgaHVlcGZ0IGRpZSBTZWtyZXRhZXJpbiBkZW0KQm9zcyBhdWYgZGVuIFNjaG9zcyB1bmQga3JhdWx0IGlobSBpbSBOYWNrZW4uCkVzIHdpcmQgZ2VtdWV0bGljaCB1bmQgbWFuIGdvZW5udCBzaWNoIG5vY2ggZWluZW4gQXBlcml0aWYuCkVzIHdpcmQgdmVydHJhdXRlciB1bmQgZGllIERhbWUgc2NobGFlZ3Qgdm9yLCBub2NoCnp1IGlociBuYWNoIEhhdXNlIHp1IGZhaHJlbi4KRG9ydCBhbmdla29tbWVuLCBnZWh0J3MgZXJzdCByaWNodGlnIGxvcy4KTmFjaCBlaW5lbSBHbGFzIFNla3QgbGFuZGV0IG1hbiBnZW1laW5zYW0gaW0gQmV0dAp1bmQgdmVyZ251ZWd0IHNpY2ggbWl0ZWluYW5kZXIuClBsb2V0emxpY2ggc2NocmVja3QgZXIgYXVmLCBzY2hhdXQgenVyIFVociB1bmQKc3RlbGx0IGZlc3QsIGRhc3MgZXMgZmFzdCAxIFVociBpc3QuClNjaG5lbGwgc2NobWVpc3N0IGVyIHNpY2ggaW4gc2VpbmUgS2xhbW90dGVuLgpLdXJ6IHZvciB2ZXJsYXNzZW4gZGVyIFdvaG51bmcgZHJlaHQgZXIgc2ljaCB6dXIKR2VsaWVidGVuIHVtIHVuZCBmcmFndDoKIkhhc3QgZHUgZWluIFN0dWVjayBLcmVpZGU/IgoiV2FzIGRlbm4gZnVlciBLcmVpZGU/IiBmcmFndCBzaWUuCiJOYSwgZWluZmFjaCBlaW4gU3R1ZWNrIFRhZmVsa3JlaWRlISIKU2llIHNjaGF1dCBpbSBHYXJkZXJvYmVuc2NocmFuayBuYWNoIHVuZCBmaW5kZXQKdGF0c2FlY2hsaWNoIGVpbiBzb2xjaGVzIEtyZWlkZXN0dWVjay4KRXIgbmltbXQgZXMgYW4gc2ljaCB1bmQgdmVyc2Nod2luZGV0LgpadSBIYXVzZSBhbmdla29tbWVuLCBlcndhcnRldCBpaG4gc2VpbmUgRnJhdSBtaXQKZGVyIEZyYWdlOiAiV28ga29tbXN0IGR1IGRlbm4gc28gc3BhZXQgaGVyPyIKRXIgZXJrbGFlcnQgSWhyIGluIGtuYXBwZW4gV29ydGVuOgoiRXMgaXN0IGltIEJ1ZXJvIG1hbCB3aWVkZXIgc3BhZXRlciBnZXdvcmRlbi4KTWVpbmUgU2VrcmV0YWVyaW4gaXN0IG1pciBkYW5uIGF1ZiBkZW4gU2Nob3NzCmdlc3BydW5nZW4gdW5kIHdpciBoYWJlbiBldHdhcyBnZXNjaG11c3QuCkFscyB3aXIgYmVpZGUgaGVpc3Mgd2FyZW4gc2luZCB3aXIgenUgaWhyIG5hY2gKSGF1c2UsIGhhYmVuIG5vY2ggZWluIEdsYXMgU2VrdCBnZXRydW5rZW4gdW5kIHNpbmQgZGFubiBpbiBpaHIKZnJhbnpvZXNpc2NoZXMgQmV0dCB1bmQgaGFiZW4gdW5zIGhlcnJsaWNoCmF1c2dldG9idC4gRXMgd2FyIGVpbmZhY2ggS2xhc3NlIHVuZCBzbyBpc3QgZXMgZWJlbiBzbyBzcGFldApnZXdvcmRlbi4uLiIKU2llIGdyaW5zdCBpaG4gYW4gdW5kIGVyd2lkZXJ0OgoiRHUgYWx0ZXIgQXVmc2NobmVpZGVyLCBkdSB3YXJzdCBiZWltIEtlZ2VsbiEKRHUgaGFzdCBqYSBub2NoIGRpZSBLcmVpZGUgaGludGVyIGRlbSBPaHIhIgoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5lbiB3aXR6IGhhbHQgKEVsYmVyZXQsIDIyLiBNYXIgMjAwNCwgMTQ6MDg6MjQpOgpUaGUgUGFycm90CgpBIHlvdW5nIG1hbiBuYW1lZCBKb2huIHJlY2VpdmVkIGEgcGFycm90IGFzIGEgZ2lmdC4gVGhlIHBhcnJvdCBoYWQgYQpiYWQgYXR0aXR1ZGUgYW5kIGFuIGV2ZW4gd29yc2Ugdm9jYWJ1bGFyeS4gRXZlcnkgd29yZCBvdXQgb2YgdGhlIGJpcmQncwptb3V0aCB3YXMgcnVkZSwgb2Jub3hpb3VzIGFuZCBsYWNlZCB3aXRoIHByb2Zhbml0eS4gSm9obiB0cmllZCBhbmQgdHJpZWQKdG8gY2hhbmdlIHRoZSBiaXJkJ3MgYXR0aXR1ZGUgYnkgY29uc2lzdGVudGx5IHNheWluZyBvbmx5IHBvbGl0ZSB3b3JkcywKcGxheWluZyBzb2Z0IG11c2ljIGFuZCBhbnl0aGluZyBlbHNlIGhlIGNvdWxkIHRoaW5rIG9mIHRvICJjbGVhbiB1cCIgdGhlCmJpcmQncyB2b2NhYnVsYXJ5IC4KCkZpbmFsbHksIEpvaG4gd2FzIGZlZCB1cCBhbmQgaGUgeWVsbGVkIGF0IHRoZSBwYXJyb3QuIFRoZSBwYXJyb3QgeWVsbGVkCmJhY2suIEpvaG4gc2hvb2sgdGhlIHBhcnJvdCBhbmQgdGhlIHBhcnJvdCBnb3QgYW5ncmllciBhbmQgZXZlbiBydWRlci4KSm9obiwgaW4gZGVzcGVyYXRpb24sIHRocmV3IHVwIGhpcyBoYW5kLCBncmFiYmVkIHRoZSBiaXJkIGFuZCBwdXQgaGltCmluIHRoZSBmcmVlemVyLiBGb3IgYSBmZXcgbWludXRlcyB0aGUgcGFycm90IHNxdWF3a2VkIGFuZCBraWNrZWQgYW5kCnNjcmVhbWVkLiBUaGVuIHN1ZGRlbmx5IHRoZXJlIHdhcyB0b3RhbCBxdWlldC4gTm90IGEgcGVlcCB3YXMgaGVhcmQgZm9yCm92ZXIgYSBtaW51dGUuIEZlYXJpbmcgdGhhdCBoZSdkIGh1cnQgdGhlIHBhcnJvdCwgSm9obiBxdWlja2x5IG9wZW5lZAp0aGUgZG9vciB0byB0aGUgZnJlZXplci4gVGhlIHBhcnJvdCBjYWxtbHkgc3RlcHBlZCBvdXQgb250byBKb2huJ3MKb3V0c3RyZXRjaGVkIGFybXMgYW5kIHNhaWQgIkkgYmVsaWV2ZSBJIG1heSBoYXZlIG9mZmVuZGVkIHlvdSB3aXRoIG15CnJ1ZGUgbGFuZ3VhZ2UgYW5kIGFjdGlvbnMuIEknbSBzaW5jZXJlbHkgcmVtb3JzZWZ1bCBmb3IgbXkgaW5hcHByb3ByaWF0ZQp0cmFuc2dyZXNzaW9ucyBhbmQgSSBmdWxseSBpbnRlbmQgdG8gZG8gZXZlcnl0aGluZyBJIGNhbiB0byBjb3JyZWN0IG15CnJ1ZGUgYW5kIHVuZm9yZ2l2YWJsZSBiZWhhdmlvci4iIEpvaG4gd2FzIHN0dW5uZWQgYXQgdGhlIGNoYW5nZSBpbiB0aGUKYmlyZCdzIGF0dGl0dWRlLiBBcyBoZSB3YXMgYWJvdXQgdG8gYXNrIHRoZSBwYXJyb3Qgd2hhdCBoYWQgbWFkZSBzdWNoIGEKZHJhbWF0aWMgY2hhbmdlIGluIGhpcyBiZWhhdmlvciwgdGhlIGJpcmQgY29udGludWVkLCAiTWF5IEkgYXNrIHdoYXQgdGhlCnR1cmtleSBkaWQ/IgoKRWxiaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW1wb3J0cyB2b24gYmFzaC5vcmcgKEdsb2luc29uLCAyNS4gTWFyIDIwMDQsIDE3OjQxOjUwKToKIzE3MzQ2MCArKDExMTYpLSBbWF0KCjxQaXhpc3RpeD4gIEknbSBnb2luZyB0byBuYW1lIG15IGtpZHMgQ29udHJvbCwgQWx0LCBhbmQgRGVsZXRlLgo8UGl4aXN0aXg+ICBJZiB0aGV5IGV2ZXIgZ2V0IHRvIGJlIGEgcHJvYmxlbSBJJ2xsIGp1c3QgaGl0IHRoZW0gYWxsIHR3aWNlCjxQaXhpc3RpeD4gIFByb2JsZW0gc29sdmVkLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxlaHJlciAoQW50aGVhLCAgMS4gQXByIDIwMDQsIDExOjQ3OjM3KToKRHJlaSBMZWhyZXIgc3BpZWxlbiBTa2F0LiBFaW4gR3ltbmFzaWFsbGVocmVyLCBlaW4gUmVhbHNjaHVsbGVocmVyLCBlaW4KU29uZGVyc2NodWxsZWhyZXIuIFdhZWhyZW5kIGlocmVzIFNrYXRzcGllbHMgdmVybmljaHRlbiBzaWUgdW56YWVobGlnZQpGbGFzY2hlbiBCaWVyLiBBdWYgZWlubWFsIGZhZWxsdCBpaG5lbiBhdWYsIGRhc3MgZGllIEJpZXJ2b3JyYWV0ZSBsYW5nc2FtIGRlbQpFbmRlIHp1IGdlaGVuLiBEZXIgR3ltbmFzaWFsbGVocmVyOiAiSWNoIGZhaHIgbWFsIGt1cnogenVyIFRhbmtzdGVsbGUsIGVpbgpwYWFyIERvc2VuIEJpZXIgaG9sZW4sIHdpcmQgc2Nob24ga2VpbmUgUG9saXplaSB1bnRlcndlZ3Mgc2VpbiIuIEdlc2FndCBnZXRhbgpmYWVocnQgZXIgbWl0IGRlbSBBdXRvIHdlZy4gWndlaSBTdHVuZGVuIHZlcmdlaGVuLiBFciBrb21tdCBtaXQgaGFlbmdlbmRlbQpLb3BmIHp1ciBTa2F0cnVuZGUgenVydWVjayB1bmQgc2FndDogIk9oIGplLCBQb2xpemVpa29udHJvbGxlIGZhc3QgMiBQcm9taWxsZS4KRGVyIEZ1ZWhyZXJzY2hlaW4gaXN0IHdlZy4gQmllciBoYWJlbiB3aXIgYXVjaCBrZWluZXMuIFdhcyBtYWNoZW53aXIgbnVuPyIKRGFyYXVmIGRlciBSZWFsc2NodWxsZWhyZXI6ICJMYXNzdCBtaWNoIGRhcyBtYWNoZW4sIGRpZSB3ZXJkZW4gbmljaHQgbm9jaAplaW5tYWwga29udHJvbGxpZXJlbi4iIERhcmF1ZmhpbiBzdGVpZ3QgZXIgaW4gc2VpbiBBdXRvIHVuZCBmYWVocnQgd2VnLiBFaW5lClN0dW5kZSBzcGFldGVyIGtvbW10IGVyIHdpZSBhdWNoIGRlciBhbmRlcmUgTGVocmVyIG1pdCBoYWVuZ2VuZGVtIEtvcGYgdW5kCm9obmUgQmllciB6dXJ1ZWNrOiAiTWlzdCwgUG9saXplaWtvbnRyb2xsZSwgenUgdmllbCBBbGtvaG9sLiBEZXIgRnVlaHJlcnNjaGVpbgppc3Qgd2VnIHVuZCB3aXIgaGFiZW4gaW1tZXIgbm9jaCBrZWluIEJpZXIuIFdhcyBtYWNoZW4gd2lyIGJsb3NzPyIgRGFyYXVmIGRlcgpTb25kZXJzY2h1bGxlaHJlcjogIkljaCBmYWhyZSBCaWVyIGhvbGVuIGRpZSB3ZXJkZW4gbmljaHQgZWluIGRyaXR0ZXMgTWFsCmtvbnRyb2xsaWVyZW4uIiBTdGVpZ3QgaW5zIEF1dG8gdW5kIGZhZWhydCB3ZWcuIDE1IE1pbnV0ZW4gc3BhZXRlciwgZGVyClNvbmRlcnNjaHVsbGVocmVyIGtvbW10IHp1cnVlY2suIDQgU2l4cGFja3MgQmllciBkYWJlaSB1bmQgZGllIEZ1ZWhyZXJzY2hlaW5lCm5vY2ggZGF6dS4gIkhpZXIsIiBzYWd0IGVyIHp1IGRlbiBhbmRlcmVuIGJlaWRlbiBMZWhyZXJuLCAiRGEgaXN0IGRhcyBCaWVyIHVuZApldXJlIEZ1ZWhyZXJzY2hlaW5lLiIgVm9lbGxpZyBlcnN0YXVudCBuZWhtZW4gZGllIGFuZGVyZW4gYmVpZGVuIExlaHJlciBpaHJlCkZ1ZWhyZXJzY2hlaW5lIHVuZCBkYXMgQmllci4gIldpZSBoYXN0IER1IGRlbm4gZGFzIGdlbWFjaHQ/IiBmcmFnZW4gU2llLgoiS2VpbmUgS29udHJvbGxlPyIgRGFyYXVmIGRlciBTb25kZXJzY2h1bGxlaHJlcjogIkRvY2ggbmF0dWVybGljaCBiaW4gaWNoCmtvbnRyb2xsaWVydCB3b3JkZW4sIGFiZXIgaWNoIGtlbm4gZG9jaCBtZWluZSBKdW5ncyEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQb2xpdGVzc2UgKEdhbmRvLCAyMS4gQXByIDIwMDQsIDEyOjQzOjQ1KToKCkhldXRlIE1vcmdlbiB3YXIgaWNoIGJlaW0gQmFlY2tlci4gSWNoIHdhciA1IE1pbnV0ZW4gaW0gTGFkZW4uIEFscyBpY2gKd2llZGVyIHJhdXMga2FtLCB3YXIgZGEgZWluZSBQb2xpdGVzc2UgdW5kIHNjaHJpZWIgZ2VyYWRlIGVpbmVuClN0cmFmemV0dGVsIGF1cy4gQWxzbyBnaW5nIGljaCB6dSBpaHIgaGluIHVuZCBzYWd0ZTogIkhvZXJlbiBTaWUgbWFsLCBpY2gKd2FyIG51ciBnZXJhZGUgYmVpbSBCYWVja2VyLiIgU2llIGlnbm9yaWVydGUgbWljaCB1bmQgc2NocmllYiBkYXMgVGlja2V0CndlaXRlciBhdXMuIERhcyBtYWNodGUgbWljaCBldHdhcyB3dWV0ZW5kIHVuZCBpY2ggd3VyZGUgdW5iZWhlcnJzY2h0ZXIuCiJIYWxsbyA/IFNpbmQgU2llIHRhdWIsIGljaCB3YXIgbnVyIGdlcmFkZSBiZWltIEJhZWNrZXIhICIgU2llIHNhaCBtaWNoIGFuCnVuZCBzYWd0ZTogIkRhZnVlciBrYW5uIGljaCBuaWNodHMsIFNpZSBkdWVyZmVuIGhpZXIgbmljaHQgcGFya2VuIHVuZAphdXNzZXJkZW0gc29sbHRlbiBTaWUgc2ljaCBldHdhcyB6dXJ1ZWNraGFsdGVuISIgU28gbGFuZ3NhbSBnaW5nIG1pciBkYXMgYXVmCmRlbiBaZWlnZXIuLi4uLiBBbHNvIG5hbm50ZSBpY2ggc2llIGVpbmUgYmxvZWRlIFNjaGxhbXBlIHVuZCBzYWd0ZSBpaHIKbm9jaCwgd28gc2llIHNpY2ggaWhyIGJlc2NoaXNzZW5lcyBLbm9lbGxjaGVuIGhpbnN0ZWNrZW4ga29lbm50ZS4gRGEgd3VyZGUKZGllIGF1ZiBlaW5tYWwgcmljaHRpZyBzdGlua2lnIHVuZCBmYXNlbHRlIGV0d2FzIHZvbiBBbnplaWdlIHVuZCBOYWNoc3BpZWwKZnVlciBtaWNoLiBJY2ggaGFiZSBpaHIgbnVyIG5vY2ggZ2VzYWd0LCBTaWUgc2VpIGRpZSBQcm9zdGl0dWllcnRlIGRlcwpPcmRudW5nc2FtdGVzIHVuZCBrb2VubmUsIHdlbm4gU2llIHdvYW5kZXJzIGFuc2NoYWZmZW4gZ2luZ2UsIHdlc2VudGxpY2gKbWVociB2ZXJkaWVuZW4uIFNpZSB6b2cgZGFubiB1bnRlciBkZW0gSGlud2VpcyBhdWYgZGllIG51biBmb2xnZW5kZQpBbnplaWdlIHdlZ2VuIEJlbGVpZGlndW5nIHZvbiBkYW5uZW4uCgpNaXIgd2FyIGRhcyBlZ2FsLi4uLgoKLi4uLmljaCB3YXIgamEgenUgRnVzcyBkYS4uLi4uLi4KCgpnYW5kbyA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZTSyAxOCEgKEtlbGx5YnVuZHksICAxLiBNYWkgMjAwNCwgMTU6MDY6MzIpOgpEaWUgUm9kZW9zdGVsbHVuZzoKCkVyIG5pbW10IHNpZSB2b24gaGludGVuIHVuZCBzYWd0OiBpY2ggaGFiZSBBSURTLiBEYW5uIG11c3MgZXIgdmVyc3VjaGVuLCAxCm1pbnV0ZSBhdWYgaWhyIHp1IGJsZWliZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm1vZGVybmVyIHZlcnRyaWViIChHYW5kbywgIDMuIE1haSAyMDA0LCAyMjoxMjoyNyk6ClRyZWZmZW4gc2ljaCB6d2VpIFZlcnRyaWVic2xlaXRlciBhdWYgZGVtIEZsdXIgdm9yIGRlbSBCdWVybyBpaHJlcyBDaGVmcy4KClNhZ3QgZGVyIEVpbmU6Ik1hbm4sIGhhYiBpY2ggZ2VyYWRlIGVpbmVuIEFucGZpZmYgdm9tIENoZWYgYmVrb21tZW4sIGRhYmVpIGhhYgppY2ggCmRvY2ggZ2FyIG5pY2h0cyBnZW1hY2h0LiIKCkdhbmRvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpoYVJSIChHYW5kbywgIDMuIE1haSAyMDA0LCAyMjoxNzoxMSk6ClVlYnJpZ2VuczogTEFUVEVOUk9TVCBpc3Qga2VpbmUgR2VzY2hsZWNodHNrcmFua2hlaXQKCgpFaW4gTWFubiBnZWh0IGluIGVpbiBCbHVtZW5nZXNjaGFlZnQgdW5kIHZlcmxhbmd0IG5hY2ggZWluZW0gU3RyYXVzcyBCbHVtZW4uCgpEYXJhdWZoaW4gcmVpbXQgZGllIFZlcmthZXVmZXJpbjoKIk5laG1lbiBTaWUgUm9zZW4uLi4gc2llIHdpcmQgU2llIGxpZWJrb3NlbiIuIAoiTmVobWVuIFNpZSBOYXJ6aXNzZW4uLiBzaWUgd2lyZCBTaWUga3Vlc3NlbiIuCgoKT2ssIG1laW50IGRlciBNYW5uLi4gZGFubi4uLiBoYWV0dGUgaWNoIGRvY2ggZ2VybmUgZWluZW4gU3RyYXVzcy4uLiBXaWNrZW4hCgoKClZlcnRyaWVic2xlaXRlciB6dW0gbmV1ZW4gVmVya2FldWZlcjogQXVmcmljaHRpZ2tlaXQsIFZlcnRyYXVlbiwgRWhybGljaGtlaXQuCkRhcyBpc3QgZXMgd2FzIHVuc2VyZSBLdW5kZW4gd29sbGVuLiBVbmQgd2VubiBTaWUgZGFzIGd1dCBzY2hhdXNwaWVsZXJuCmtvZW5uZW4sIGRhbm4gbWFjaGVuIFNpZSBoaWVyIElocmVuIFdlZy4KCgoKCkdhbmRvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpyb3RrYWVwcGNoZW4gKEdhbmRvLCAgMy4gTWFpIDIwMDQsIDIyOjE4OjIzKToKVW0gZGllIE9tYSB6dSBiZXN1Y2hlbiwKaW0gS29yYiAnbmUgRmxhc2NoZSBXZWluIHVuZCBLdWNoZW4sCmdpbmcgUm90a2FlcHBjaGVuIGR1cmNoIGRlbiBmaW5zdCdyZW4gV2FsZC4KTmF0dWVybGljaCBrYW0gZGVyIFdvbGYgZGFubiBiYWxkLgoKRXIgaGF0dCcgc2Nob24gbGFlbmdlciBuaWNodHMgZ2VnZXNzZW4KdW5kIHdvbGx0JyBkYXMgYXJtZSBEaW5nIG51biBmcmVzc2VuLgonTmEgZ3V0LCcgc3ByYWNoIHNpZSwgJ3dlbm4gZGFzIHNvIGlzdAp1bmQgRHUgbWljaCBkb2NoIGFtIEVuZGUgZnJpc3N0LAoKZGFubiBpc3QgZXMgZWJlbiBlaW5lcmxlaSEKRG9jaCBoYWV0dCcgaWNoIGdlcm4gZHJlaSBXdWVuc2NoZSBmcmVpLgpEZXIgV29sZiwgZGVyIHdvbGx0ZSBuaWNodCBzbyBzZWluCnVuZCBsaWVzcyBzaWNoIGF1ZiBkZW4gSGFuZGVsIGVpbi4KCidEZXIgZXJzdGUgV3Vuc2NoLCcgc28gc2FndCBzaWUgaWhtLAonaWNoIHdhZXIgc28gZ2VybiBtaXQgRGlyIGludGltIScKRGVyIFdvbGYgZGVyIHNwcmFjaDogJ2lzdCBrZWluIFByb2JsZW0hCkRhcyBpc3QgbWlyIGFldXNzZXJzdCBhbmdlbmVobSEnCgpVbmQgbmFobSBkYXMgTWFlZGNoZW4gcmljaHRpZyByYW4sCmRlbm4gc2NobGllc3NsaWNoIHdhciBkZXIgV29sZiBlaW4gTWFubi4KJ0RlciB6d2VpdGUgV3Vuc2NoLCcgc3ByYWNoIHNpZSB2ZXJzdG9obGVuLAona2FubnN0IER1IGRhcyBub2NobWFscyB3aWVkZXJob2xlbj8hJwoKV2VubiBzZWluZSBLbmllIGF1Y2ggc2Nob24gZ2FueiB3ZWljaCwKc3ByYWNoIGVyIGplZG9jaDogJ0RhcyBoYWInbiB3aXIgZ2xlaWNoIScKRG9jaCBsYW5nc2FtIHd1cmQgZXMgaWhtIHp1ciBRdWFsOgpSb3RrYWVwcGNoZW4gd29sbHQnIGVpbiBkcml0dGVzIE1hbCEKClVuZCBhbHMgZXIgYXVmIGRlbSBNYWVkY2hlbiBwYXJrdCwKZXJlaWx0IGRlbiBXb2xmIGRlciBIZXJ6aW5mYXJrdC4KR3JhZCB6b2cgc2llIHNpY2ggaWhyIEhvZXNjaGVuIGFuLApkYSBrYW0gdm9yYmVpIGRlciBKYWVnZXJzbWFubi4KCkVyIHNpZWh0IGRlcyBXb2xmZXMgTWlzc2dlc2NoaWNrCnVuZCBzYWd0IG1pdCB2b3J3dXJmc3ZvbGxlbSBCbGljazoKJ1JvdGthZXBwY2hlbiwgc2FnIG1hbCwgYWxzbyBiaXR0ZSEhCkRhcyB3YXIgZGllIFdvY2hlIHNjaG9uIGRlciBEcml0dGUhJwoKCmdhbmRvIGdyaW5zdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmV1bGljaCBpbSBadWcgKEdhYmksICA3LiBNYWkgMjAwNCwgMTM6MDY6MzMpOgpTaXR6ZW4gendlaSBpbSBadWdhYnRlaWwgdW5kIGRvZXNlbiBzbyB2b3Igc2ljaCBoaW4uIFBsb2V0emxpY2ggaG9scGVydCB1bmQKcG9sdGVydCBlcyB1bmQgZGFubiBpc3NlcyBhdWNoIHNjaG9uIHdpZWRlciB2b3JiZWkuIFNhZ3QgZGVyIGVpbmUgenVtIGFuZGVyZW46CiJTYWcgbWFsLCBrYW5uIGRhcyBzZWluLCBkYXNzIGRlciBadWcgZ2VyYWRlIHJ1bnRlciB2b24gZGVuIEdsZWlzZW4sIHJhdWYgYXVmCmRpZSBXaWVzZSwgdm9yYmVpIGFtIFdhbGQgdW5kIHdpZWRlciByYXVmIGF1ZiBkaWUgR2xlaXNlIGdlZmFocmVuIGlzdD8iCiJNZW5zY2ggRHUsIGljaCBoYWIgZ2VyYWRlIGdlc2NobGFmZW4sIGFiZXIgaXJnZW5kd2FzIHdhciBlYmVuIGxvcy4gTGFzcyB1bnMKbWFsIGRlbiBTY2hhZmZuZXIgZnJhZ2VuLiIgQmVpZGUgZ2VoZW4gcmF1cyB1bmQgZmluZGVuIGRlbiBLb250cm9sbGV1ci4gIkR1ClNjaGFmZm5lciwgaXN0IGRlciBadWcgZ2VyYWRlIHJ1bnRlciB2b24gZGVuIEdsZWlzZW4sIHJhdWYgYXVmIGRpZSBXaWVzZSwKdm9yYmVpIGFtIFdhbGQgdW5kIHdpZWRlciByYXVmIGF1ZiBkaWUgR2xlaXNlIGdlZmFocmVuPyIgRGFyYXVmIGRlciBTY2hhZmZuZXI6CiJNZWluZSBIZXJyZW4sIGljaCBrYW5uIElobmVuIGRhcyBsZWlkZXIgbmljaHQgc28gZ2VuYXUgc2FnZW4sIGRhIGljaCBlYmVuIGF1ZgpkZXIgVG9pbGV0dGUgd2FyLCBhYmVyIHdpciBrb2VubmVuIGphIG1hbCBkZW4gWnVnZnVlaHJlciBmcmFnZW4sIGRlciBzaXR6dCBqYQp2b3JuZSB1bmQgc2llaHQgYWxsZXMuIiBBbHNvIHN0aWVmZWxuIGRpZSBEcmVpIG5hY2ggdm9ybmUgaW4gZGllIExvayB1bmQgZGVyClNjaGFmZm5lciBmcmFndCBzZWluZW4gTG9rZnVlaHJlcjogIlNhZyBtYWwgRXJ3aW4sIGJpc3QgRHUgZWJlbiBydW50ZXIgdm9uIGRlbgpHbGVpc2VuLCByYXVmIGF1ZiBkaWUgV2llc2UsIHZvcmJlaSBhbSBXYWxkIHVuZCB3aWVkZXIgcmF1ZiBhdWYgZGllIEdsZWlzZQpnZWZhaHJlbj8iICJKYSIsIGFudHdvcnRldCBkZXIgTG9rZnVlaHJlci4gIkphLCBhYmVyIHdhcnVtIGRlbm4gaW4gR290dGVzCk5hbWVuPyIgIk5hIGF1ZiBkZW4gR2xlaXNlbiBoYXQgZG9jaCB1bnNlciBCdW5kZXNrYW56bGVyIGdlbGVnZW4hIiAiTmEgdW5kPwpEZW4gaGFldHRzdGUgZG9jaCBwbGF0dGZhaHJlbiBrb2VubmVuISIgIldvbGx0ZSBpY2ggamEsIGFiZXIgZGVubiBpc3NlciBydW50ZXIKdm9uIGRlbiBHbGVpc2VuLCByYXVmIGF1ZiBkaWUgV2llc2UsIHZvcmJlaSBhbSBXYWxkLi4uLiIKCkdhYmkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1c2guLi4gKEJhbWJ1bGtvLCAgMy4gSnVuIDIwMDQsIDEyOjE2OjQ3KToKQnVzaCBydWZ0IGRlbiBwYWtpc3RhbmlzY2hlbiBQcmFlc2lkZW50ZW4gTXVzaGFyYWZmCmFuIHVuZCBzYWd0IHp1IGlobTogIlBhc3MgYXVmLCB3aXIgaGFiZW4gaGVyYXVzZ2VmdW5kZW4sIGRhc3Mgbm9jaCBtZWhyClBha2lzdGFuaXMgYW4gZGVuIEFuc2NobGFlZ2VuIGJldGVpbGlndCB3YXJlbiBhbHMgd2lyIGRhY2h0ZW4uIFR1dCBtaXIKbGVpZCwgYWJlciB3aXIgbXVlc3NlbiBldXJlIEhhdXB0c3RhZHQgYm9tYmFyZGllcmVuLiIuIEFudHdvcnRldApNdXNoYXJhZmY6ICJUamEsIGRhIGthbm4gbWFuIHdvaGwgbml4IG1hY2hlbiwgZGEgbXVlc3NlbiB3aXIgZHVyY2guIgpCdXNoOiAiU2Nob2VuIGRhcyBkdSBlcyBzbyBsZWljaHQgbmltbXN0LiAtIEFiZXIgc2FnbWFsIC0gd2llIGhlaXNzdCBldXJlCkhhdXB0c3RhZHQgZWlnZW50bGljaCBub2NoIGdsZWljaD8iLiBEYXJhdWYgTXVzaGFyYWZmOiAiTmV1IERlbGhpIi4KCktvZmkgQW5uYW46ICJNci4gQnVzaCwgd2VsY2hlbiBCZXdlaXMgaGFiZW4gU2llLApkYXNzIGRlciBJcmFrIE1hc3NlbnZlcm5pY2h0dW5nc3dhZmZlbiBiZXNpdHp0PyIKR2VvcmdlIFcuIEJ1c2g6ICJXaXIgaGFiZW4gZGllIFF1aXR0dW5nZW4gYXVmZ2Vob2Jlbi4iCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmllbmNoZW4gdW5kIEJsdWVtY2hlbiAoQW50aGVhLCAgOS4gSnVuIDIwMDQsIDE0OjQyOjMzKToKVmVyZ2Vzc3QgZGllIGFsdGUgTGVpZXIgbWl0IGRlbiBCaWVuY2hlbiB1bmQgQmx1ZW1jaGVuLi4uLi4gQ29tcHV0ZXJzcHJhY2hlCmlzdCBJTiAhCgoKUGFwYSwgd2llIGJpbiBpY2ggYXVmIGRpZSBXZWx0IGdla29tbWVuPwoKTmEgZ3V0IG1laW4gU29obiwgaXJnZW5kd2FubiBoYWV0dGVuIHdpciBkaWVzZXMgR2VzcHJhZWNoIGZ1ZWhyZW4gbXVlc3NlbjogCkRlciBQYXBhIGhhdCBkaWUgTWFtYSBpbiBlaW5lbSAnY2hhdHJvb20nIGtlbm5lbmdlbGVybnQuIFNwYWV0ZXIgaGFiZW4gZGVyClBhcGEgdW5kIGRpZSBNYW1hIHNpY2ggaW4gZWluZW0gJ2N5YmVyIGNhZicgZ2V0cm9mZmVuIHVuZCwgYXVmIGRlciBUb2lsZXR0ZQpoYXQgZGllIE1hbWEgZWluIHBhYXIgJ2Rvd25sb2Fkcycgdm9uIFBhcGFzICdtZW1vcnkgc3RpY2snIG1hY2hlbiB3b2xsZW4uCkFscyBkZXIgUGFwYSBkYW5uIGZlcnRpZyBmdWVyIGRhcyAndXBsb2FkZW4nIHdhciwgbWVya3RlbiB3aXIgcGxvZXR6bGljaCwgZGFzcwp3aXIga2VpbmUgJ2ZpcmV3YWxsJyBpbnN0YWxsaWVydCBoYXR0ZW4uIExlaWRlciB3YXIgZXMgc2Nob24genUgc3BhZXQgdW0KJ2NhbmNlbCcgb2RlciAnZXNjYXBlJyB6dSBkcnVlY2tlbiB1bmQgZGllIE1lbGR1bmcgJ1dvbGxlbiBTaWUgd2lya2xpY2gKdXBsb2FkZW4/JyBoYXR0ZW4gd2lyIGluIGRlbiAnT3B0aW9uZW4nIHVudGVyICdFaW5zdGVsbHVuZ2VuJyBzY2hvbiBhbSBBbmZhbmcKZ2Vsb2VzY2h0Lk1hbWFzIFZpcmVuc2Nhbm5lciB3YXIgc2Nob24gbGFlbmdlciBuaWNodCAndXBnZWRhdGV0ZWQnIHVuZCBrYW5udGUKc2ljaCBtaXQgUGFwYXMgJ2JsYXN0ZXItd3VybScgbmljaHQgc28gcmVjaHQgYXVzLgpXaXIgZHJ1ZWNrdGVuIGRpZSAnRW50ZXItVGFzdGUnIHVuZCBNYW1hIGJla2FtIGRpZSBNZWxkdW5nICdHZXNjaGFldHp0ZQpkb3dubG9hZC1aZWl0IDkgTW9uYXRlJy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBpc3QgTXV0PyAoU2FoYWRvb20sIDExLiBKdW4gMjAwNCwgMjI6MDM6NDcpOgpXYXMgaXN0IE11dD8KCkVpbiBNYW5uIGtvbW10IC0gc3Rlcm5oYWdlbHZvbGwgLSB1bSA0IFVociBtb3JnZW5zIGhlaW0uCkltIEZsdXIgd2lyZCBlciBiZXJlaXRzIHZvbiBzZWluZXIgbWl0IGRlbSBCZXNlbiBiZXdhZmZuZXRlbiwgd3VldGVuZGVuIEZyYXUKYWJnZWZhbmdlbi4uLgoKRnJhZ3QgZXI6ICJCaXN0IER1IGFtIFB1dHplbiBvZGVyIGZsaWVnc3QgRHUgbm9jaCB3ZWc/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NobmVlZmFlbGxlIChBbnRoZWEsIDIxLiBKdW4gMjAwNCwgMTE6NDA6MDEpOgpFaW4gV2ludGVybW9yZ2VuLgpSYWRpb2R1cmNoc2FnZTogIldlZ2VuIGRlciBzY2h3ZXJlbiBTY2huZWVmYWVsbGUgaW4gZGVuIGxldHp0ZW4gVGFnZW4gZXJzdWNoZW4Kd2lyIGFsbGUgRmFocnpldWdoYWx0ZXIsIGlocmUgQXV0b3MgYXVmIGRlciBTZWl0ZSB6dSBwYXJrZW4sIGF1ZiBkZXIgZGllCmdlcmFkZW4gSGF1c251bW1lcm4gc2luZCwgdW0gZWluZSBnZXJlZ2VsdGUgU2NobmVlcmFldW11bmcgenUgZ2V3YWVocmxlaXN0ZW4uIgoKRGllIEVoZWZyYXUgZ2VodCBhdXMgZGVtIEhhdXMgdW5kIHR1dCwgd2llIGFuZ2V3aWVzZW4gd3VyZGUuIEVpbmUgV29jaGUKc3BhZXRlciBkaWUgZ2xlaWNoZSBEdXJjaHNhZ2UsIGFsbGVyZGluZ3MgbWl0IGRlciBCaXR0ZSwgZGllIEZhaHJ6ZXVnZSBhdWYgZGVyClNlaXRlIG1pdCBkZW4gdW5nZXJhZGVuIE51bW1lcm4gYWJ6dXN0ZWxsZW4uIEF1Y2ggZGllc21hbCBnZWh0IGRpZSBGcmF1IGhpbmF1cwp1bmQgdHV0LCB3aWUgaWhyIGdlaGVpc3Nlbi4KCk5hZWNoc3RlIFdvY2hlIHdpZWRlciBkaWUgUmFkaW9kdXJjaHNhZ2U6ICJQYXJrZW4gU2llIElocmUgRmFocnpldWdlIGJpdHRlIGF1ZgpkZXIgLi4uLi4uLi4uLi4uIiBTdHJvbWF1c2ZhbGwhCiJTY2hhdHoiIGZyYWd0IGRpZSBFaGVmcmF1LCAid2FzIHNvbGwgaWNoIGpldHp0IHR1bj8gSWNoIHdlaXNzIGphIG5pY2h0ICwgYXVmCndlbGNoZXIgU3RyYXNzZW5zZWl0ZSBpY2ggZGFzIEF1dG8gYWJzdGVsbGVuIHNvbGwhIgpNaXQgdmllbCBMaWViZSB1bmQgVmVyc3RhZW5kbmlzIGluIGRlciBTdGltbWUgLSBzbyB3aWUgZGFzIE1hZW5uZXIsIGRpZSBtaXQKQmxvbmRpbmVuIHZlcmhlaXJhdGV0IHNpbmQsIG1pdCBkZXIgWmVpdCBlbnR3aWNrZWxuIC0gYW50d29ydGV0IGRlciBNYW5uOgoiV2FydW0gbGFlc3N0IER1IGRhcyBBdXRvIGRpZXNtYWwgbmljaHQgaW4gZGVyIEdhcmFnZSBzdGVoZW4/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNjaG5lZWZhZWxsZSAoU2VsZXZlbiwgMjEuIEp1biAyMDA0LCAxNDoyNTo1MCk6Cn4jISBybj1BbnRoZWEgcnQ9MTA4NzgxMDgwMSByZz13aXR6ZQp+IyEgdGlkPTEwODc4MTA4MDEKRGFzIHdhciBzaWNoZXIgbmljaHQgaW4gSGFsbGUgKFNhYWxlKS4KClMxMSBmdWVndCBoaW56dTogV2VyIEhhbGxlIGtlbm50LCB3aXJkIG1pY2ggdmVyc3RlaGVuIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIdWVobmNoZW5zY2hsZXVkZXIgKEFudGhlYSwgMjIuIEp1biAyMDA0LCAxMDo1NjoyNCk6CkluIGVpbmVyIEF1c2dhYmUgZGVzIGFtZXJpa2FuaXNjaGVuICJNZWF0ICYgUG91bHRyeSItTWFnYXppbnMgeml0aWVydGUgZWluClJlZGFrdGV1ciBlaW5lbiBBcnRpa2VsIGF1cyAiRmVhdGhlcnMiLCBkZW0gVmVyb2VmZmVudGxpY2h1bmdzb3JnYW4gZGVyCkNhbGlmb3JuaXNjaGVuIEdlZmx1ZWdlbGluZHVzdHJpZWdlc2VsbHNjaGFmdCwgZGllIGZvbGdlbmRlIEdlc2NoaWNodGU6CgpEaWUgYW1lcmlrYW5pc2NoZSBMdWZ0ZmFocnRiZWhvZXJkZSBGQUEgKEZlZGVyYWwgQXZpYXRpb24gQWRtaW5pc3RyYXRpb24pCmJlc2l0enQgZWluIGF1ZiBkZXIgV2VsdCBlaW5tYWxpZ2VzIEdlcmFldCB6dW0gVGVzdGVuIGRlciBCZXN0YWVuZGlna2VpdCB2b24KRmx1Z3pldWctV2luZHNjaHV0enNjaGVpYmVuLiBCZWkgZGVtIEdlcmFldCBoYW5kZWx0IGVzIHNpY2ggdW0gZWluZSBBcnQKS2F0YXB1bHQsIHdlbGNoZXMgZWluIHRvdGVzIEh1aG4sIG1pdCBlaW5lciBHZXNjaHdpbmRpZ2tlaXQsIGRpZSBpbiBldHdhIGRlcgplaW5lcyBmbGllZ2VuZGVuIEZsdWd6ZXVncyBlbnRzcHJpY2h0LCBnZWdlbiBkaWUgenUgdW50ZXJzdWNoZW5kZQpXaW5kc2NodXR6c2NoZWliZSBzY2hpZXNzdC4gRGllIFRoZW9yaWUgZGFoaW50ZXIgaXN0LCBkYXNzIGRpZQpGbHVnemV1Zy1XaW5kc2NodXR6c2NoZWliZSwgd2VubiBzaWUgZGVtIEF1ZnByYWxsIGRpZXNlcyBIdWVobmNoZXMgc3RhbmRoYWx0LAphdWNoIGVpbmVuIFp1c2FtbWVucHJhbGwgbWl0IGVpbmVtIGVjaHRlbiBWb2dlbCB3YWVocmVuZCBkZXMgRmx1Z2VzCnVuYmVzY2hhZGV0IHVlYmVyc3RlaHQuIEJyaXRpc2NoZSBJbmdlbmlldXJlIHdhcmVuIHNlaHIgaW50ZXJlc3NpZXJ0IGFuIGRpZXNlbQpWZXJmYWhyZW4gdW5kIHdvbGx0ZW4gZGFtaXQgZGllIFdpbmRzY2h1dHpzY2hlaWJlIGVpbmVyIG5ldSBlbnR3aWNrZWx0ZW4KSG9jaGdlc2Nod2luZGlna2VpdHMtTG9rb21vdGl2ZSB0ZXN0ZW4uCgpTaWUgbGllaGVuIHNpY2ggZGllIEZBQS1IdWVobmNoZW4tU2NobGV1ZGVyIGF1cywgbHVkZW4gc2llIG1pdCBlaW5lbSBIdWVobmNoZW4KdW5kIGZldWVydGVuLiBEYXMgYmFsbGlzdGlzY2hlIEh1ZWhuY2hlbiB6ZXJzY2htZXR0ZXJ0ZSBkaWUgV2luZHNjaHV0enNjaGVpYmUsCmR1cmNoc2NobHVnIGRlbiBGYWhyZXJzaXR6LCB6ZXJzdG9lcnRlIGVpbmUgSW5zdHJ1bWVudGVudGFmZWwgdW5kIGJsaWViCnNjaGxpZXNzbGljaCBpbiBkZXIgUnVlY2t3YW5kIGRlciBGYWhyZXJrYWJpbmUgc3RlY2tlbi4KCkRpZSBCcml0ZW4gd2FyZW4genV0aWVmc3QgZXJzY2h1ZXR0ZXJ0IHVuZCBiYXRlbiBkaWUgRkFBIGRpZSBUZXN0YW5vcmRudW5nIHp1CnViZXJwcnVmZW4sIG9iIHNpZSBhdWNoIGFsbGVzIGtvcnJla3QgYXVzZ2VmdWVocnQgaGF0dGVuLgoKRGllIEZBQS1JbmdlbmlldXJlIHViZXJwcnVlZnRlbiBhbGxlcyBzb3JnZmFlbHRpZyB1bmQgZ2FiZW4gZGVuIGJyaXRpc2NoZW4KSW5nZW5pZXVyZW4gZGllIGZvbGdlbmRlIEVtcGZlaGx1bmc6CiJCZW51dHplbiBTaWUgZWluIGF1ZmdldGF1dGVzIEh1ZWhuY2hlbiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSHVlaG5jaGVuc2NobGV1ZGVyIChDYXR3ZWF6bGUsIDIyLiBKdW4gMjAwNCwgMTE6MDQ6MDcpOgp+IyEgcm49QW50aGVhIHJ0PTEwODc4OTQ1ODQgcmc9d2l0emUKfiMhIHRpZD0xMDg3ODk0NTg0CkVpZ2VudGxpY2ggc3Bhc3NmcmVpLiAKCldhcyBtYW4gZGFyYXVzIGxlcm50IGlzdCwgZGFzcyBtYW4gbmljaHQgbWl0IGRpZXNlbSBadWcgZmFocmVuIHNvbGx0ZSwgd2VubgpkcmF1c3NlbiBIdWVobmVyZ3Jvc3NlIEhhZ2Vsc3R1ZWNrZSB2b20gSGltbWVsIGZhbGxlbi4KCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBIdWVobmNoZW5zY2hsZXVkZXIgKFpvb2ssIDIyLiBKdW4gMjAwNCwgMTE6MDU6NDkpOgp+IyEgcm49Q2F0d2VhemxlIHJ0PTEwODc4OTUwNDcgcmc9d2l0emUKfiMhIHRpZD0xMDg3ODk0NTg0CkZhZWhyc3QgRHUgdWVibGljaGVyd2Vpc2UgaW4gZGVyIEZhaHJlcmthYmluZSBtaXQgZGVtIFp1Zz8KClpvb2suCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogSHVlaG5jaGVuc2NobGV1ZGVyIChHbG9pbnNvbiwgMjIuIEp1biAyMDA0LCAxMToxOTowMik6Cn4jISBybj1ab29rIHJ0PTEwODc4OTUxNDkgcmc9d2l0emUKfiMhIHRpZD0xMDg3ODk0NTg0Ckxhc3MgZXMgbWFsIHNlaXRsaWNoIEh1ZWhuY2hlbiByZWduZW4sIGRlaW5lIEZlbnN0ZXIgc2luZCBncm9lc3NlciBhbHMgZGllIGRlcwpMb2tmdWVocmVycy4gU29nYXIgZ3JvZXNzZXIgYWxzIHNlaW4gU3R1aGwuCldvYmVpIGljaCBudXIgdWViZXIgc2VpbmUgU2l0emdlbGVnZW5oZWl0IGluZm9ybWllcnQgYmluLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEh1ZWhuY2hlbnNjaGxldWRlciAoTm9ubmUsIDIyLiBKdW4gMjAwNCwgMTE6Mjc6MTApOgp+IyEgcm49R2xvaW5zb24gcnQ9MTA4Nzg5NTk0MiByZz13aXR6ZQp+IyEgdGlkPTEwODc4OTQ1ODQKVWVibGljaGVyd2Vpc2UgZmFlaHJ0IGVpbiBIb2NoZ2VzY2h3aW5kaWdrZWl0c3p1ZyBhYmVyIG5pY2h0IG1pdCAzMDAga20vaApzZWl0bGljaCwgb2Rlcj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEh1ZWhuY2hlbnNjaGxldWRlciAoTXVhZGliLCAyMi4gSnVuIDIwMDQsIDExOjI5OjA0KToKfiMhIHJuPU5vbm5lIHJ0PTEwODc4OTY0MzAgcmc9d2l0emUKfiMhIHRpZD0xMDg3ODk0NTg0Cndlbm4gZHUgZGljaCBhbiBkZXIgYmVzdHVobHVuZyBvcmllbnRpZXJzdCB3YWVyZSBkYXMgdmllbGxlaWNodCBkdXJjaGF1cyBkcmluCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBIdWVobmNoZW5zY2hsZXVkZXIgKEdsb2luc29uLCAyMi4gSnVuIDIwMDQsIDExOjI5OjI0KToKfiMhIHJuPU5vbm5lIHJ0PTEwODc4OTY0MzAgcmc9d2l0emUKfiMhIHRpZD0xMDg3ODk0NTg0CkFiZXIgZGVyIEhhZ2VsIGthbm4gbWl0IDE1MCBrbS9oIHNlaXRsaWNoIGZhbGxlbi4gTWVpbmVzIFdpc3NlbnMgaXN0IGRpZQpPYmVyZ3JlbnplIGJlaW0gRmFsbCBndXQgb3B0aW1pZXJ0ZXIgR2VnZW5zdGFlbmRlIG9obmVoaW4gdW0gMjAwLTMwMCBrbS9oLCBkaWUKZHVlcmZ0ZSBlaW4gSGFnZWxodWhuIHNjaG9uIGVycmVpY2hlbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBIdWVobmNoZW5zY2hsZXVkZXIgKFZhbmlvbiwgMjIuIEp1biAyMDA0LCAxODowMTowNSk6Cn4jISBybj1HbG9pbnNvbiBydD0xMDg3ODk2NTY0IHJnPXdpdHplCn4jISB0aWQ9MTA4Nzg5NDU4NAoiRGVyIERpc2t1dGllcnRlIFdpdHoiIC0gaW1tZXIgd2llZGVyIHNwYW5uZW5kLCB3YXMgaWhyIHNvIHRyZWlidCwgd2VubidzCldldHRlciBkcmF1c3NlbiBzY2hsZWNodCBpc3QuIE1pdCBhbmRlcmVuIFdvcnRlbjogR2VodCByYXVzLCBzcGllbGVuISA6KQoKVioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEh1ZWhuY2hlbnNjaGxldWRlciAoQW5vcmlzLCAyMy4gSnVuIDIwMDQsIDIzOjUwOjAxKToKfiMhIHJuPVZhbmlvbiBydD0xMDg3OTIwMDY1IHJnPXdpdHplCn4jISB0aWQ9MTA4Nzg5NDU4NApOdW4gaXN0IGVzIHNvLCBkYXNzIHZvciBKYWhyZW4gdGF0c2FlY2hsaWNoIGVpbmlnZSBVbmtsYXJoZWl0ZW4gYmVpCkFic3R1ZXJ6ZW4gdm9uIE1pcmFnZXMgZ2VnZWJlbiBoYXQuIERpZXNlIFRlc3RzIHd1cmRlbiB3ZWdlbiBkZW0gaG9oZW4KVm9nZWxhdWZrb21tZW4gZGFubiBtaXQgSHVobmVybiB0YXRzYWVjaGxpY2ggZHVyY2hnZWZ1ZWhydC4KCkFuc2NoZWluZW5kIGdpbmcgZGllIFNjaGVpYmUgYmVpIGdlZnJvcmVuZW4gSHVlaG5lcm4gbmljaHQgenUgQnJ1Y2gsIGVyc3QKYWxzIGRpZSBWaWVjaGVyIGF1ZmdldGF1dCBnZXNjaGxldWRlcnQgd3VyZGVuIC4uLgoKLSBBbm9yaXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjg6IEh1ZWhuY2hlbnNjaGxldWRlciAoQW5hdG9sLCAyMy4gSnVuIDIwMDQsIDIzOjUyOjQ5KToKfiMhIHJuPUFub3JpcyBydD0xMDg4MDI3NDAxIHJnPXdpdHplCn4jISB0aWQ9MTA4Nzg5NDU4NApXYXJlbiBkYXMgbmljaHQgZGllIElzcmFlbGksIGRpZSBkdXJjaCBWb2dlbHNjaGxhZyBtZWhyIEZsdWd6ZXVnZQp2ZXJsb3JlbiBoYWJlbiBhbHMgZHVyY2ggImVjaHRlbiIgRmVpbmRiZXNjaHVzcz8KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBIdWVobmNoZW5zY2hsZXVkZXIgKENyb2Z0LCAyNC4gSnVuIDIwMDQsIDAwOjA1OjU2KToKfiMhIHJuPUFuYXRvbCBydD0xMDg4MDI3NTY5IHJnPXdpdHplCn4jISB0aWQ9MTA4Nzg5NDU4NApJaXJjIGphLiAgU293ZWl0IGljaCBtaWNoIGVyaW5uZXJuIGthbm4sIHNpbmQgZGllIGltbWVyIGR1cmNoIFZvZWdlbHNjaHdhcm1lCmR1cmNoZ2VwZmx1ZWd0IHVtIGRhbm4gbWl0IGF1c2ZhbGxlbmRlbiBUcmllYndlcmtlbiBrYWVtcGZlbiB6dSBtdWVzc2VuLgpCaXMgc2llIHNpY2ggZGFubiBtYWwgbWl0IGRlbiBSb3V0ZW4gdW5kIEhvZWhlbiBkZXIgVm9lZ2VsIGJlc2NoYWVmdGlndApoYWJlbi4KCkNyb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQaHlzaWsgKFNlbGV2ZW4sIDMwLiBKdW4gMjAwNCwgMDk6NTA6NTEpOgpTaWNoZXIgc2Nob24gaXJnZW5kd2FubiBtYWwgaGllciBvZGVyIGluIHd3dyBlcndhZWhudCwgdHJvdHpkZW06CgpEYXMgZm9sZ2VuZGUgd2FyIHdpcmtsaWNoIGVpbmUgRnJhZ2UsIGRpZSBhbiBlaW5lciBQaHlzaWtwcnVlZnVuZywgYW4gZGVyClVuaXZlcnNpdGFldCB2b24gS29wZW5oYWdlbiwgZ2VzdGVsbHQgd3VyZGU6IEJlc2NocmVpYmVuIFNpZSwgd2llIG1hbiBkaWUKSG9laGUgZWluZXMgV29sa2Vua3JhdHplcnMgbWl0IGVpbmVtIEJhcm9tZXRlciBmZXN0c3RlbGx0LiAgCiAKRWluIEt1cnN0ZWlsbmVobWVyIGFudHdvcnRldGU6IFNpZSBiaW5kZW4gZWluIGxhbmdlcyBTdHVlY2sgU2NobnVyIGFuIGRlbgpBbnNhdHogZGVzIEJhcm9tZXRlcnMsIHNlbmtlbiBkYW5uIGRhcyBCYXJvbWV0ZXIgdm9tIERhY2ggZGVzIFdvbGtlbmtyYXR6ZXJzCnp1bSBCb2Rlbi4gRGllIExhZW5nZSBkZXIgU2NobnVyIHBsdXMgZGllIExhZW5nZSBkZXMgQmFyb21ldGVycyBlbnRzcHJpY2h0IGRlcgpIb2VoZSBkZXMgR2ViYWV1ZGVzLiBEaWVzZSBpbiBob2hlbSBHcmFkZSBvcmlnaW5lbGxlIEFudHdvcnQgZW50cnVlc3RldGUgZGVuClBydWVmZXIgZGVybWFzc2VuLCBkYXNzIGRlciBLdXJzdGVpbG5laG1lciBzb2ZvcnQgZW50bGFzc2VuIHd1cmRlLiBFcgphcHBlbGxpZXJ0ZSBhbiBzZWluZSBHcnVuZHJlY2h0ZSwgbWl0IGRlciBCZWdydWVuZHVuZyBkYXNzIHNlaW5lIEFudHdvcnQKdW5iZXN0cmVpdGJhciBrb3JyZWt0IHdhciwgdW5kIGRpZSBVbml2ZXJzaXRhZXQgZXJuYW5udGUgZWluZW4gdW5hYmhhZW5naWdlbgpTY2hpZWRzcmljaHRlciwgdW0gZGVuIEZhbGwgenUgZW50c2NoZWlkZW4uIERlciBTY2hpZWRzcmljaHRlciB1cnRlaWx0ZSwgZGFzcwpkaWUgQW50d29ydCBpbiBkZXIgVGF0IGtvcnJla3Qgd2FyLCBhYmVyIGtlaW4gd2Focm5laG1iYXJlcyBXaXNzZW4gdm9uIFBoeXNpawp6ZWlnZS4gIApVbSBkYXMgUHJvYmxlbSB6dSBsb2VzZW4sIHd1cmRlIGVudHNjaGllZGVuIGRlbiBLdXJzdGVpbG5laG1lciBub2NobWFscyBoZXJlaW4KenUgYml0dGVuIHVuZCBpaG0gc2VjaHMgTWludXRlbiB6dXp1Z2VzdGVoZW4sIGluIGRlbmVuIGVyIGVpbmUgbXVlbmRsaWNoZQpBbnR3b3J0IGdlYmVuIGtvbm50ZSwgZGllIG1pbmRlc3RlbnMgZWluZSBtaW5pbWFsZSBWZXJ0cmF1dGhlaXQgbWl0IGRlbgpHcnVuZHByaW56aXBpZW4gdm9uIFBoeXNpayB6ZWlndGUuIEZ1ZXIgZnVlbmYgTWludXRlbiBzYXNzIGRlciBLdXJzdGVpbG5laG1lcgpzdGlsbCwgZGVuIEtvcGYgbmFjaCB2b3JuZSwgaW4gR2VkYW5rZW4gdmVyc3Vua2VuLiBEZXIgU2NoaWVkc3JpY2h0ZXIKZXJpbm5lcnRlIGlobiwgZGFzcyBkaWUgWmVpdCBsaWVmLCB3b3JhdWYgZGVyIEt1cnN0ZWlsbmVobWVyIGFudHdvcnRldGUsIGRhc3MKZXIgZWluaWdlIGV4dHJlbSByZWxldmFudGUgQW50d29ydGVuIGhhdHRlLCBhYmVyIHNpY2ggbmljaHQgZW50c2NoZWlkZW4Ka29lbm50ZSwgd2VsY2hlIGVyIHZlcndlbmRlbiBzb2xsdGUuICAKIApBbHMgaWhtIGdlcmF0ZW4gd3VyZGUsIHNpY2ggenUgYmVlaWxlbiwgYW50d29ydGV0ZSBlciB3aWUgZm9sZ3Q6ICJFcnN0ZW5zCmtvZW5udGVuIFNpZSBkYXMgQmFyb21ldGVyIGJpcyB6dW0gRGFjaCBkZXMgV29sa2Vua3JhdHplcnMgbmVobWVuLCBlcyB1ZWJlcgpkZW4gUmFuZCBmYWxsZW4gbGFzc2VuIHVuZCBkaWUgWmVpdCBtZXNzZW4gZGllIGVzIGJyYXVjaHQsIHVtIGRlbiBCb2RlbiB6dQplcnJlaWNoZW4uIERpZSBIb2VoZSBkZXMgR2ViYWV1ZGVzIGthbm4gbWl0IGRlciBGb3JtZWwgaD0wLjVnIHggdCBpbSBRdWFkcmF0CmJlcmVjaG5ldCB3ZXJkZW4uIERlciBCYXJvbWV0ZXIgd2FlcmUgYWxsZXJkaW5ncyBkYWhpbiEgT2RlciwgZmFsbHMgZGllIFNvbm5lCnNjaGVpbnQsIGtvZW5udGVuIFNpZSBkaWUgSG9laGUgZGVzIEJhcm9tZXRlcnMgbWVzc2VuLCBlcyBob2Noc3RlbGxlbiB1bmQgZGllCkxhZW5nZSBzZWluZXMgU2NoYXR0ZW5zIG1lc3Nlbi4gRGFubiBtZXNzZW4gU2llIGRpZSBMYWVuZ2UgZGVzIFNjaGF0dGVucyBkZXMKV29sa2Vua3JhdHplcnMsIGFuc2NobGllc3NlbmQgaXN0IGVzIGVpbmUgZWluZmFjaGUgU2FjaGUsIGFuaGFuZCBkZXIKcHJvcG9ydGlvbmFsZW4gQXJpdGhtZXRpayBkaWUgSG9laGUgZGVzIFdvbGtlbmtyYXR6ZXJzIHp1IGJlcmVjaG5lbi4gV2VubiBTaWUKYWJlciBpbiBlaW5lbSBob2hlbSBHcmFkZSB3aXNzZW5zY2hhZnRsaWNoIHNlaW4gd29sbHRlbiwga29lbm50ZW4gU2llIGVpbgprdXJ6ZXMgU3R1ZWNrIFNjaG51ciBhbiBkYXMgQmFyb21ldGVyIGJpbmRlbiB1bmQgZXMgc2Nod2luZ2VuIGxhc3NlbiB3aWUgZWluClBlbmRlbCwgenVlcnN0IGF1ZiBkZW0gQm9kZW4gdW5kIGRhbm4gYXVmIGRlbSBEYWNoIGRlcyBXb2xrZW5rcmF0emVycy4gRGllCkhvZWhlIGVudHNwcmljaHQgZGVyIEFid2VpY2h1bmcgZGVyIGdyYXZpdGF0aW9uYWxlbiBXaWVkZXJoZXJzdGVsbHVuZ3NrcmFmdApUPTJwaSBpbSBRdWFkcmF0IChsL2cpLiBPZGVyLCB3ZW5uIGRlciBXb2xrZW5rcmF0emVyIGVpbmUgYWV1c3NlcmUgTm90dHJlcHBlCmJlc2l0enQsIHd1ZXJkZSBlcyBhbSBlaW5mYWNoc3RlbiBnZWhlbiBkYSBoaW5hdWYgenUgc3RlaWdlbiwgZGllIEhvZWhlIGRlcwpXb2xrZW5rcmF0emVycyBpbiBCYXJvbWV0ZXJsYWVuZ2VuIGFienVoYWtlbiB1bmQgb2JlbiB6dXNhbW1lbnphZWhsZW4uIFdlbm4KU2llIGFiZXIgYmxvc3MgZWluZSBsYW5nd2VpbGlnZSB1bmQgb3J0aG9kb3hlIExvZXN1bmcgd3VlbnNjaGVuLCBkYW5uIGtvZW5uZW4KU2llIHNlbGJzdHZlcnN0YWVuZGxpY2ggZGVuIEJhcm9tZXRlciBiZW51dHplbiwgdW0gZGVuIEx1ZnRkcnVjayBhdWYgZGVtIERhY2gKZGVzIFdvbGtlbmtyYXR6ZXJzIHVuZCBhdWYgZGVtIEdydW5kIHp1IG1lc3NlbiB1bmQgZGVyIFVudGVyc2NoaWVkIGJlenVlZ2xpY2gKZGVyIE1pbGxpYmFyZSB1bXp1d2FuZGVsbiwgdW0gZGllIEhvZWhlIGRlcyBHZWJhZXVkZXMgenUgYmVyZWNobmVuLiAgCkFiZXIsIGRhIHdpciBzdGFlbmRpZyBhdWZnZWZvcmRlcnQgd2VyZGVuIGRpZSBVbmFiaGFlbmdpZ2tlaXQgZGVzIFZlcnN0YW5kZXMKenUgdWViZW4gdW5kIHdpc3NlbnNjaGFmdGxpY2hlIE1ldGhvZGVuIGFuenV3ZW5kZW4sIHd1ZXJkZSBlcyBvaG5lIFp3ZWlmZWwKdmllbCBlaW5mYWNoZXIgc2VpbiwgYW4gZGVyIFR1ZXIgZGVzIEhhdXNtZWlzdGVycyB6dSBrbG9wZmVuIHVuZCBpaG0genUgc2FnZW46Cldlbm4gU2llIGVpbmVuIG5ldHRlbiBuZXVlbiBCYXJvbWV0ZXIgbW9lY2h0ZW4sIGdlYmUgaWNoIElobmVuIGRpZXNlcyBoaWVyLAp2b3JhdXNnZXNldHp0IFNpZSBzYWdlbiBtaXIgZGllIEhvZWhlIGRpZXNlcyBXb2xrZW5rcmF0emVycy4iICAKRGVyIEt1cnN0ZWlsbmVobWVyIHdhciBOaWVscyBCb2hyLCBkZXIgZXJzdGUgRGFlbmUgZGVyIHVlYmVyaGF1cHQgZGVuCk5vYmVscHJlaXMgZnVlciBQaHlzaWsgZ2V3YW5uLiAgCgpTMTEgZW50c2NodWxkaWd0IHNpY2ggc2Nob24gbWFsIHZvcnNvcmdsaWNoIGZ1ZXIgZGllIHRlbG5ldC1iZWRpbmd0ZW4KVW1icnVlY2hlICh1bmQgVW1sYXV0ZSkgOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlciBQb2xpdGlzY2hlIEZ1c3NiYWxsd2l0eiAoR3JpbW1ib3JuLCAgMi4gSnVsIDIwMDQsIDIwOjA0OjAyKToKVGhlIEdvb2QgTmV3czogIFNhZGFtIGlzIHRvIGdldCB0aGUgRGVhdGggUGVuYWx0eQpUaGUgQmFkIE5ld3M6ICBCZWNraGFtIGlzIHRha2luZyB0aGUgUGVuYWx0eQoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQYXNzZW5kIHp1IFNhaXNvbiAoTW9yZ290aCwgMTYuIEp1bCAyMDA0LCAxMDozMjo1MSk6CldpY2h0aWdlIE5ldWVydW5nIHp1bSBVZWJlcmxlYmVuc3RyYWluaW5nIQoKUklUVUFMRSBaVU0gVWVCRVJMRUJFTiBFSU5FUyBET1JGRkVTVEVTCgoKRGFzIGhvZXJ0IHNpY2ggZWluZmFjaCBhbiwgaXNzZXMgYWJlciBuaWNoLCB3ZWlsIGJlaW0gWmVsdHNhdWZlbiBnaWJ0IGVzCmZlc3RnZWxlZ3RlIFJpdHVhbGUsIGRpZSBtYW4gdW5iZWRpbmd0IGJlYWNodGV0IG11c3M6CgoKMS4gRWluIEJpZXIgYmVzdGVsbGVuIGdlaHQgZ2FyIG5pY2guIERhbWl0IHNhZ3QgbWFuLCBkYXNzIG1hbiBuZQprbmlja3JpZ2UgU2F1IGlzLCBrZWluZSBGcmV1bmRlIGhhdCBvZGVyIEFudGlhbGtvaG9saWtlciwgcXVhc2kgZGFzCmFsbGVybGV0enRlLgoKMi4gQWxzbyBpbW1lciBtaW5kZXN0ZW5zIHplaG4gU3R1ZWNrLCBlaW5lbiBNZXRlciBvZGVyIGVpbiBnYW56ZXMKVGFibGV0dC4KTmllIHZvcmhlciBhYnphZWhsZW4sIHdpZSB2aWVsIExldXRlIHVtIGVpbmVuIGhlcnVtc3RlaGVuIHVuZCBkYW5uIGdlbmF1CmRpZSBBbnphaGwgYmVzdGVsbGVuLiBBbSBiZXN0ZW4gaXJnZW5kZWluZSBaYWhsIHVlYmVyIGRpZSBUaGVrZSBncm9lbGVuCnVuZCBhYiBkYWZ1ZXIuCgozLiBHYW56IGZhbHNjaDogRGllIFVtc3RlaGVuZGVuIGZyYWdlbiwgb2Igc2llIHVlYmVyaGF1cHQgbm9jaCBlaW4gQmllciAKaGFiZW4gd29sbGVuLiBXaWNodGlnZSBSZWdlbDogZ2VmcmFndCB3aXJkIG5pY2guIFNhdWZlbiBpc3Qgc2NobGllc3NsaWNoCmtlaW4gU3Bhc3MuCgo0LiBXZW5uIGRlciBTdG9mZiBkYSBpcywgbmljaCBibG9lZCBydW1ndWNrZW4gdW5kIHVlYmVybGVnZW4sIHdlbSBtYW4gZGVubgplaW5zIGluIGRpZSBIYW5kIGRydWVja2VuIHNvbGwuIEFtIGJlc3RlbiBkaWUgR2xhZXNlciB3aWxkIGluIGRlciBVbWdlYnVuZwp2ZXJ0ZWlsZW4sIGRlbm4gbnVyIHNvIHplaWd0IG1hbiBzZWluZSBHcm9zc3p1ZWdpZ2tlaXQuIApOdXIgZGVyIGtsZWlua2FyaWVydGUgUGlzc2VyIHN0ZWxsdCBzaWNoIGRhIGFuLgoKNS4gV2VyIHphaGx0IHdhbm4gd2VsY2hlIFJ1bmRlPyBJbiBkZXIgUmVnZWwga29tbXQgamVkZXIgZGVyIFJlaWhlIG5hY2gKZHJhbi4gR2FueiBtaWVzZSBXaWNoc2VyIHNhdWZlbiBkaWUgZXJzdGVuIG5ldW4gUnVuZGVuIGFuIGRlciBUaGVrZSBtaXQKdW5kIHdlbm4gc2llIGFuIGRlciBSZWloZSB3YWVyZW4sIG11ZXNzZW4gc2llIHBsb2V0emxpY2ggcGlzc2VuLiBEZXIgZXJzdGUKQmVzdGVsbGVyIGJlc3RpbW10IG1laXN0IGRpZSBEYXVlciBkZXMgUHJvamVrdHM6IFdlbm4gZXIgendvZWxmIEJpZXIKYmVzdGVsbHQsIG11ZXNzZW4gYWxsZSBzb2xhbmdlIHdhcnRlbiwgYmlzIHp3b2VsZiBSdW5kZW4gZHVyY2ggc2luZC4KV2ljaHRpZyBpc3QsIGRhc3MgZGVyIFN0cm9tIG5pZSBhYnJlaXNzdC4gQWxzbyB3ZW5uIGFsbGUgbm9jaCBkaWUgSGFlbGZ0ZQppbSBHbGFzCmhhYmVuLCBzb2ZvcnQgZGllIG5hZWNoc3RlIFJ1bmRlIG9yZGVybiB1bmQgZGFzIG5ldWUgR2xhcyBpbiBkaWUgSGFuZApkcnVlY2tlbi4gV2FzIHZvbGwgcGVpbmxpY2ggaXN0OiBNaXQgendlaSBHbGFlc2VybiBpbiBkZXIgSGFuZCBhbiBkZXIKVGhla2UKc3RlaGVuLCBkZXNoYWxiIGlzIFRlbXBvIGFuZ2VzYWd0IGJlaW0gcmVpbnNjaHVldHRlbiwgaXMgc2NobGllc3NsaWNoIGtlaW4KS2luZGVyZ2VidXJ0c3RhZy4KCgo2LiBSaWNodGlnIGZpZXNlIFNjaHdlaW5lIGJlc3RlbGxlbiB6d2lzY2hlbmR1cmNoIG5vY2ggbmUgUnVuZGUgS29ybgpvZGVyIGRpZSBhYnNvbHV0ZSBIb2VsbGUgIk1leWVycyBCaXR0ZXIiLCBlaW5lIEFydCBncnVlbmVzIFNjaGxhbmdlbmdpZnQsCmRhc3MKbWl0IGRlbSBFaXRlciB2b24gdG90ZW4gRnJvZXNjaGVuIHZlcmZlaW5lcnQgd3VyZGUuIEhpZXIgd2lyZCdzIGVybnN0LgpTb2xsdGUKc2ljaCBzbyB3YXMgYW5kZXV0ZW4sIGthbm4gbWFuIGJsb3NzIG5vY2ggZGllIEZsdWNodCBlcmdyZWlmZW4uIE1lcmtlOgpCaWVyc2F1ZmVuIGthbm4gbWFuIHVlYmVybGViZW4gYXVmbSBaZWx0ZmVzdCBtaXQgZXR3YXMgUGxhbnVuZyB1bmQgR2x1ZWNrOwpuYWNoIE1leWVycyBCaXR0ZXIgd2VpZ2VydCBzaWNoIHNvZ2FyIGRlciBOb3Rhcnp0LCBkaWVzZSBTY2h3ZWluZXJlaQp3aWVkZXJ6dWJlbGViZW4uCgoKNy4gS29uc2VxdWVudCBkdXJjaGdlem9nZW4sIGJpc3QgRHUgbm9ybWFsZXJ3ZWlzZSBhdWZtIFplbHQgdW0gaGFsYiBOZXVuCnN0cmFtbSB3aWUgZGllIEtlc3NlbGZsaWNrZXIuIEdlaHQgbmF0dWVybGljaCBuaWNoLCB3ZWlsIER1IGthbm5zdCBqYQpub2NoIG5pY2ggbmFjaCBIYXVzZSwgd2VnZW4gVmVyZGFjaHQgYXVmIFdlaWNoZWkuIFdhcyBhbHNvIGRhbm4/IFBhdXNlbgptYWNoZW4hCkRhZnVlciBzaW5kIGluIGRlciBSZWdlbCB6d2VpIFNhY2hlbiB2b3JnZXNlaGVuOgoKQnJhdHd1cnN0ZnJlc3NlbiB1bmQgVGFuemVuLgoKRXJzdGVuczogQnJhdHd1cnN0ZnJlc3NlbgpWb3J0ZWlsOiBhbiBkZXIgQnVkZSBnaWJzIGtlaW4gTWV5ZXJzIEJpdHRlciwgZGEgYmlzdCBEdSBhbHNvIG5lCnplaXRsYW5nIHNpY2hlciB2b3IgZGVyIEFsa29ob2x2ZXJnaWZ0dW5nIGR1cmNoIGFuZGVyZS4gTnUgc2luZCBkaWUKQnJhdHd1cnN0c3RhZW5kZSBhdWYgWmVsdGZlc3RlbiBpbW1lciBzbyBrb256aXBpZXJ0LCBkYXNzIGRpZSBOYWNoZnJhZ2UKaW1tZXIgZ3JvZXNzZXIgaXN0CmFscyBkYXMgQW5nZWJvdC4gSW4gZGVyIEJ1ZGUgYXJiZWl0ZW4gYXVjaCBtZWlzdGVucyBGYWNoa3JhZWZ0ZSwgZGVuZW4KbWFuCmJlaW0gR3JpbGxlbiBkaWUgU2NodWhlIGJlc29obGVuIGthbm4uIEVpbnppZ2UgUXVhbGlmaWthdGlvbjogc2llIGtvZW5uZW4KbWl0CmVpbmVtIFNhdWVyc3RvZmZhbnRlaWwgaW4gZGVyIEx1ZnQgdm9uIHVudGVyIDElIHVlYmVybGViZW4sIGRlc3dlZ2VuCndpcmtlbiBzaWUgYXVjaCBzbyBzY2hlaW50b3QuIE51IHNhZ3QgZGVyIExhaWU6IHdhdG4gU2NoZWlzcywgZGFzIGtvZW5udGUKbWFuCmRvY2ggdmllbCBiZXNzZXIgb3JnYW5pc2llcmVuOiB6YWNremFjayBrYWVtZW4gZGllIFJpZW1lbiB1ZWJlcm4gVHJlc2VuLgpGYWxzY2g6CmRpZSBtaWNrcmlnZW4gQnJhdHd1cnN0YnVkZW4gbWl0IGRlbiBVbnRvdGVuIGFtIEdyaWxsIHN0ZWhlbiBkYSBuaWNoIGF1cwpWZXJzZWhlbiwgc29uZGVybiBhYnNpY2h0bGljaC4gSGllciBrYW5uIG1hbiBBc3lsIGJlYW50cmFnZW4gdm9uIGRlcgpTYXVmZXJlaSB1bmQgamUgbGFlbmdlciBtYW4gYXVmIGRlbiB2ZXJrb2hsdGVuIFByZW5nZWwgd2FydGVuIG11c3MsIGRlc3RvCmdyb2Vzc2VyIGRpZSBVZWJlcmxlYmVuc2NoYW5jZS4KClp3ZWl0ZW5zIFRhbnplbjoKSW0gVmVyZ2xlaWNoIHp1IEJyYXR3dXJzdGZyZXNzZW4gbmF0dWVybGljaCBkaWUgc2NobGVjaHRlcmUgV2FobCwgd2VpbAphbnN0cmVuZ2VuZCB1bmQgbWl0IEZyYXVlbi4gQWJlciBpcmdlbmR3YW5uIGdlaHQgaGFsdCBrZWluIFJpZW1lbiBtZWhyCnJlaW4gaW4gZGVuIFBhbnNlbiB1bmQgRHUgbXVzc3QgaW4gZGVuIHNhdXJlbiBBcGZlbCBiZWlzc2VuLiBBbHNvIHphY2ssCmVpbmVuClJvY2hlbiB2b24gZGVuIEJhZW5rZW4gZ2VyaXNzZW4gdW5kIGlyZ2VuZHdpZSBiZXNjaGV1ZXJ0ZSBCZXdlZ3VuZ2VuCm1hY2hlbi4KV2VubiBEdSBHbHVlY2sgaGFzdCwgc3BpZWx0IGRpZSBLYXBlbGxlIG1laHIgYWxzIHp3ZWkgU3R1ZWNrZSB1bmQgRHUKa2FubnN0IERpciBlaW4gcGFhciBCaWVyIGF1c3NlIFJpcHBlbiBzY2h3aXR6ZW4uIEhhc3QgRHUgUGVjaCwga29tbXQKc29mb3J0Cm5hY2htIGVyc3RlbiBTdHVlY2sgZGVyIFRoZWtlbm1hcnNjaCB1bmQgRHUgc3RlaHN0IHdpZWRlciBkYSwgdm9uIHdvIER1CmdlcmFkZQpnZWZsb2hlbiBiaXN0LgoKRHJpdHRlbnM6IFNla3RiYXIKRWluZSByaWNodGlnIGdydXNlbGlnZSBCdWRlLCBxdWFzaSBkaWUgQWJmZXJrZWxib3ggaW0gRmVzdHplbHQuIEhpZXIKaXNzZXMgc28gdm9sbCB1bmQgZW5nLCBoaWVyIGJsZWlic3QgRHUgYXVjaCBub2NoIHN0ZWhlbiwgd2VubnMKZWlnZW50bGljaCBuaWNoCm1laHIgZ2VodC4gRXMgc29sbCBzY2hvbiBLcmllZ3N2ZXJsZXR6dGUgZ2VnZWJlbiBoYWJlbiwgZGVuZW4gaGF0IG1hbiBpbgpkZXIgU2VrdGJhciBiZWlkZSBCZWlucHJvdGhlc2VuIGdla2xhdXQgdW5kIHNpZSBoYWJlbnMgbmljaCBnZW1lcmt0LgpEb2NoCmRlciBQcmVpcywgZGVuIER1IGZ1ZXIgZGllIFN0ZWhoaWxmZSB6YWhsc3QgaXMgaG9jaDogRHUgbXVzc3QgU2VrdCBzYXVmZW4KYXVzCnNvIG1pY2tyaWdlbiBCbHVtZW52YXNlbiwgZGllIG1hbiB2b24gZGVyIFNwZXJtYXByb2JlIGJlaW0gVXJvbG9nZW4Ka2VubnQuClppZW1saWNoIGVrbGlnIGFsbGVzLiBXZW5ucyBrZWluZSBTZWt0YmFyIGdpYnQsIGdpYnN0IG1laXN0IG5lCkNvY2t0YWlsYmFyOgpDb2NrdGFpbCBoZWlzc3QgaW0gWmVsdCBhYmVyIG5pY2ggQ2FpcGlyaW5oYSBvZGVyIE1hcmdlcml0YSBzb25kZXJuCkZhbnRhL0tvcm4gb2RlciBLb3JuIG1pdCBGYW50YS4gQWxzbyB2b3JzaWNodGlnLiBIaWVyIGthbm5zIGdhbnogc2NobmVsbAp6dWVuZGUgZ2VoZW4uIEVpbmUgQWx0ZXJuYXRpdmUgZnVlciBkZW4gZ2FuemVuIHNjaG5lbGxlbiBXZWcgaW5zIE5pcndhbmEKaXMgbm9jaCBkZXIgaGFubm92ZXJzY2hlIFphdWJlcnRyYW5rOiBMdWV0dGplIExhZ2UuIFZvbQpQcmVpcy1MZWlzdHVuZ3MtVmVyaGFlbHRuaXMgaGVyIGltbWVyIG5vY2ggbmUgcmVlbGxlIFNhY2hlOiBTbyBiZXNhZXVmdApzaWNoIGRlciBrcml0aXNjaGUgVmVyYnJhdWNoZXIgdW5kIGhhdCBlcyBydWNrenVjayBnZXNjaGFmZnQuIERvY2ggYmV2b3IKRHUKbmFjaCBIYXVzZSBkYXJmc3QsIGtvbW10IG5vY2ggZWluIGdhbnogd2ljaHRpZ2VyIFB1bmt0LCBuYWVtbGljaC4uLgoKVmllcnRlbnM6IEtvdHplbgpLbGluZ3Qgc2NoZWlzc2UsIER1IHdpcnN0IGFiZXIgZGFua2JhciBzZWluLCB3ZW5uIERlaW4gS29lcnBlciwgRGlyIGRpZXNlcwpHZXNjaGVuayBiZXJlaXRldC4gRHUgaGFzdCBQbGF0eiBmdWVyIG5ldWUgQnJhdHd1ZXJzdGUgdW5kIHZpZWxsZWljaHQKc29nYXIgR2x1ZWNrLCBkYXNzIER1IGRpZSBsZXR6dGVuIHp3YW56aWcgQmllciBub2NoIGVyd2lzY2h0LCBiZXZvciBzaWUKRGVpbgpHZWhpcm4gZXJyZWljaHQgaGFiZW4uIERlciBQcm9maSBqZWRlbmZhbGxzIGtvdHp0IG9mdCB1bmQgZ2Vybi4KLSBTbyBqZXR6dCB3YWVyZW4gd2lyIGF1Y2ggc2Nob24gYmFsZCBiZWltIE5hY2hoYXVzZSBnZWhlbi4gSGFoYS4gV2VubiBEdQphYmVyIGRlbiBaZWl0cHVua3QgdmVycGFzc3QgaGFzdCwgdW5kIER1IGtvbW1zdCB2b20gUGlzc2VuIG9kZXIKQnJhdHd1cnN0a290emVuIHdpZWRlciBpbnMgWmVsdCB1bmQgZXMgc2luZCBibG9zcyBub2NoIHp3YW56aWcgTWFubgp1ZWJyaWcuCgpBZXRzY2g6CkFyc2Noa2FydGUgZ2V6b2dlbi4gRGVubiBqZXR6dCBoZWlzc3QgZXM6CgpGdWVuZnRlbnM6IERpZSBMZXR6dGVuCkFiIGpldHp0IGdlaHQgZXMgdW0gc28gc3Bhbm5lbmRlIFNhY2hlbiB3aWUgRmFzc2F1c3NhdWZlbiAtIGVzIGlzIGltbWVyCm1laHIgZHJpbiwgYWxzIER1IGRlbmtzdCwgb2RlciBBYnNhY2tlciB0cmlua2VuLCB3ZW5ucyBlaW4gTWV5ZXJzIEJpdHRlcgppc3QsCmthbm5zdCBEdSBEaXIgZ2xlaWNoIGRlbiBVbXdlZyB1ZWJlciBkZW4gTm90YXJ6dCBzcGFyZW4gdW5kIGRlbiBCZXN0YXR0ZXIKYW5ydWZlbi4gSmVkZXIgcGFzc3QgamV0enQgYXVmLCBkYXNzIGtlaW5lciBoZWltbGljaCBhYmhhdXQuIERpZSBlcnN0ZW4Kc2Fja2VuIGVpbmZhY2ggc28gdm9yIGRlciBUaGVrZSB6dXNhbW1lbiwgZGFtaXQgc2llIGplZGVuZmFsbHMgbmljaCBub2NoCm1laHIKc2F1ZmVuIG11ZXNzZW4uIFZvcnRlaWwgZGllc2VyIFBoYXNlIGRlcyBaZWx0ZmVzdGVzOiBEdSBtdXNzdCBuaWNoIG1laHIKZXh0cmEgbWVociBuYWNoIGRyYXVzc2VuIGxhdHNjaGVuIGZ1ZXIgUGlzc2VuIHVuZCBLb3R6ZW46IGdlaHQgamV0enQgYWxsZXMKdm9yCk9ydC4KClNlY2hzdGVuczogTmFjaCBIYXVzZQpGYWVsbHQgYXVzLiBNYWNoIERpciBrZWluZSBJbGx1c2lvbmVuOiBhbGxlaW5lIHNjaGFmZnN0IER1J3MgbmljaCBtZWhyLApUYXhpcyBnaWJzdCBuaWNoIGF1Zm0gTGFuZCwgdW5kIHdlbm4sIHd1ZXJkZW4gc2llIERpY2ggbmljaCBtaXRuZWhtZW4uCkRlaW5lCkZyYXUga29tbXQgbmljaCwgdW0gRGljaCB6dSBob2xlbiwgZGllIGlzIGZyb2gsIGRhc3MgZGllc2VzIFdyYWNrIG5pY2gKaW5uZXIKV29obnVuZyBsaWVndCB1bmQgZGVyIEdlc3RhbmsgaW4gZGllIE1vZWJlbCB6aWVodC4gV2FzIGJsZWlidCBpc3QuLgoKU2llYnRlbnM6IERlciBNb3JnZW4gZGFuYWNoCkRpZSBlcnN0ZW4gU29ubmVuc3RyYWhsZW4gYnJlY2hlbiBkdXJjaCBkaWUgUml0emVuIGluIGRlciBaZWx0ZmVzdHBsYW5lLgpEdSB3aXJzdCB3YWNoIHZvbiBlaW5lbSBadW5nZW5rdXNzLCB3aWUgRHUgaWhuIG5vY2ggbmllIGluIERlaW5lbSBMZWJlbgpnZWtyaWVndCBoYXN0LiBMZWlkZW5zY2hhZnRsaWNoIGt1ZXNzdCBEdSB6dXJ1ZWNrLiBEYW5uIG1hY2hzdCBEdSBEZWluZQp2ZXJrbGVidGVuCkF1Z2VuIGF1ZiB1bmQgYmxpY2tzdCBpbiBkYXMgZnJvZWhsaWNoZSBHZXNpY2h0IGRlcyB6b3R0aWdlbiBLb2V0ZXJzIHZvbgpkZW0KS2FydXNzZWxmcml0emVuLiBVbmQgbWl0IGVpbmVtIGVpZ2VuZW4gQmVpdHJhZyB6dW0gVGhlbWEgV3VlcmZlbGh1c3RlbgpmYWVuZ3QgZGVyIFRhZyB3aWVkZXIgYW4uIERlaW4gS29wZiBmdWVobHQgc2ljaCBhbiB3aWUgbmFjaCBlaW5lbQpTdGVja3NjaHVzcy4KSmV0enQgaGlsZnQgbnVyIG5vY2g6IFN0dWV0emJpZXIgYmlzIGRpZSBNYXNjaGluZSB3aWVkZXIgaGFsYndlZ3Mgbm9ybWFsCmxhZXVmdC4KClNlaWQgZnJvaCwgZGFzcyBkaWUgU2NodWV0emVuZmVzdC1TYWlzb24gYmFsZCB2b3JiZWkgaXN0LCB3aXIgYWxsZSBoaWVyCmtvZW5uZW4Kc3RvbHogdW5kIGZyb2VobGljaCBzZWluLCBkZW5uIHdpZWRlciBlaW5tYWwgaGFiZW4gd2lyIGVzIHVlYmVybGVidC4KCgoKU29ycnkgZnVlciBkaWUgRm9ybWF0aWVydW5nIDopCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBhc3NlbmQgenUgU2Fpc29uIChEYXJrbG9yLCAxOC4gSnVsIDIwMDQsIDIyOjQyOjUwKToKfiMhIHJuPU1vcmdvdGggcnQ9MTA4OTk2Njc3MSByZz13aXR6ZQp+IyEgdGlkPTEwODk5NjY3NzEKSGF0IGRhcyBPa3RvYmVyZmVzdCBzY2hvbiBhbmdlZmFuZ2VuPyA7KQoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5iZXphaGxiYXIgKE1vbnRhbnVzLCAyMi4gSnVsIDIwMDQsIDEzOjI2OjM3KToKS2F0ZXIgYW0gTW9yZ2VuLi4uCi4uLnVuZCB0cm90emRlbSBrZWluZSBTb3JnZW4uCgpIdWdvIHdhY2h0IG1vcmdlbnMgbWl0IGVpbmVtIGZ1cmNodGJhcmVuIEthdGVyIGF1Zi4KRXIgendpbmd0IHNpY2gsIGRpZSBBdWdlbiB6dSBvZWZmbmVuIHVuZCBibGlja3QgenVlcnN0IGF1ZiBlaW5lIFBhY2t1bmcKQXNwaXJpbiB1bmQgZWluIEdsYXMgV2Fzc2VyIGF1ZiBkZW0gTmFjaHR0aXNjaGNoZW4uCgpFciBzZXR6dCBzaWNoIGF1ZiB1bmQgc2NoYXV0IHNpY2ggdW0uIEF1ZiBlaW5lbSBTdHVobCBpc3Qgc2VpbmUgZ2VzYW10ZQpLbGVpZHVuZywgc2Nob2VuIG9yZGVudGxpY2ggenVzYW1tZW5nZWZhbHRldC4gRXIgc2llaHQsIGRhc3MgaW0gU2NobGFmemltbWVyCmFsbGVzIHNhdWJlciB1bmQgb3JkZW50bGljaCBhdWZnZXJhZXVtdCBpc3QuIFVuZCBzbyBzaWVodCBlcyBpbiBkZXIgZ2FuemVuCldvaG51bmcgYXVzLgoKRXIgbmltbXQgZGllIEFzcGlyaW4gdW5kIGJlbWVya3QgZWluZW4gWmV0dGVsIGF1ZiBkZW0gVGlzY2g6ICIgTGllYmxpbmcsIGRhcwpGcnVlaHN0dWVjayBzdGVodCBpbiBkZXIgS3VlY2hlLCBpY2ggYmluIHNjaG9uIGZydWVoICdyYXVzLCB1bSBlaW5rYXVmZW4genUKZ2VoZW4uIEljaCBsaWViZSBEaWNoISIgCgpBbHNvIGdlaHQgZXIgaW4gZGllIEt1ZWNoZSB1bmQgdGF0c2FlY2hsaWNoIC0gZGEgc3RlaHQgZWluIGZlcnRpZyBnZW1hY2h0ZXMKRnJ1ZWhzdHVlY2ssIHVuZCBkaWUgTW9yZ2VuemVpdHVuZyBsaWVndCBhdWYgZGVtIFRpc2NoLCBkZXIgU3BvcnR0ZWlsIGlzdApzY2hvbiBhdWZnZXNjaGxhZ2VuLiBBdXNzZXJkZW0gc2l0enQgZGEgc2VpbiBTb2huIHVuZCBpc3N0LiBIdWdvIGZyYWd0IGlobjogIgpLbGVpbmVyLCB3YXMgaXN0IGdlc3Rlcm4gZWlnZW50bGljaCBwYXNzaWVydD8iIAoKU2VpbiBTb2huIHNhZ3Q6ICIgVGphLCBQYXBzLCBEdSBiaXN0IHVtIGRyZWkgVWhyIGZydWVoIGhlaW1nZWtvbW1lbiwgdG90YWwKYmVzb2ZmZW4gdW5kIGVpZ2VudGxpY2ggc2Nob24gaGFsYiBiZXd1c3N0bG9zLiBEdSBoYXN0IGVpbiBwYWFyIE1vZWJlbApkZW1vbGllcnQsIGluIGRlbiBGbHVyIGdla290enQgdW5kIGhhc3QgRGlyIGZhc3QgZWluIEF1Z2UgYXVzZ2VzdG9jaGVuLCBhbHMgRHUKZ2VnZW4gZWluZW4gVHVlcmdyaWZmIGdlbGF1ZmVuIGJpc3QuIiAKClZlcndpcnJ0IGZyYWd0IEh1Z28gd2VpdGVyOiAiIFVuZCB3YXJ1bSBpc3QgZGFubiBhbGxlcyBoaWVyIHNvIGF1ZmdlcmFldW10LAptZWluZSBLbGFtb3R0ZW4gc2F1YmVyIHp1c2FtbWVuZ2VsZWd0IHVuZCBkYXMgRnJ1ZWhzdHVlY2sgYXVmIGRlbSBUaXNjaD8iICIKQWNoIGRhcyEiIGFudHdvcnRldCBpaG0gc2VpbiBTb2huLCAiIE1hbWEgaGF0IERpY2ggaW5zIFNjaGxhZnppbW1lciBnZXNjaGxlaWZ0CnVuZCBhdWZzIEJldHQgZ2V3dWNodGV0LCBhYmVyIGFscyBzaWUgdmVyc3VjaHRlLCBEaXIgZGllIEhvc2UgYXVzenV6aWVoZW4sCmhhc3QgRHUgZ2VzYWd0OiAnSGFlbmRlIHdlZywganVuZ2UgRnJhdSwgaWNoIGJpbiBnbHVlY2tsaWNoIHZlcmhlaXJhdGV0Jy4iIAoKCgpFaW4gc2VsYnN0dmVyc2NodWxkZXRlciBLYXRlcjogMTAwIEVVUgpLYXB1dHRlIE1vZWJlbDogNDUwIEVVUgpGcnVlaHN0dWVjazogMTAgRVVSCkltIHJpY2h0aWdlbiBNb21lbnQgZGFzIFJpY2h0aWdlIHNhZ2VuOiB1bmJlemFobGJhciEhISEhISEhISEhISEhISEhISEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhlaWxpZ2UgSGVsZmVyPyAoTW9yZ290aCwgMjMuIEp1bCAyMDA0LCAxNTowOToyMik6CkRlciBQYXBzdCBoYXQgZWluZSBSZWlzZSBuYWNoIEF1c3RyYWxpZW4gZ2VtYWNodC4KCkJlaSBlaW5lbSBHb3R0ZXNkaWVuc3QgYW0gU3RyYW5kIGJlb2JhY2h0ZXQgZXIsIHdpZSBpbSBXYXNzZXIgZWluIFR5cCBtaXQKZWluZW0gSG9sbGFuZC1Ucmlrb3Qgdm9uIGVpbmVtIEhhaSBhbmdlZmFsbGVuIHdpcmQuCgpNaXQgZWluZW0gTWFsIGtvbW1lbiB6d2VpIERldXRzY2hlIGluIGVpbmVtIE1vdG9yYm9vdCBhbmdlZmFocmVuLiBEZXIgZWluZQpEZXV0c2NoZSBzcHJpbmd0IG1pdCBlaW5lciBIYXJwdW5lIGlucyBXYXNzZXIgdW5kIGVybGVkaWd0IGRlbiBIYWkuIERlciBhbmRlcmUKRGV1dHNjaGUgaG9sdCBkZW4gSG9sbGFlbmRlciBhdXMgZGVtIFdhc3Nlci4KCkFscyBkZXIgUGFwc3QgZGFzIHNpZWh0LCBsYWVzc3QgZXIgbmFjaCBkZW4gYmVpZGVuIHNjaGlja2VuLiAiRnVlciBFdXJlbgpzZWxic3Rsb3NlbiBFaW5zYXR6IHNwcmVjaGUgaWNoIGV1Y2ggaW0gTmFtZW4gR290dGVzIHNlbGlnLiIKCkFscyBkZXIgUGFwc3Qgd2VnIGlzdCwgc2FndCBkZXIgZWluZSBEZXV0c2NoZSB6dW0gYW5kZXJlbjogIldlciB3YXIgZGFzIGRlbm4/IgoKIktlaW5lIEFobnVuZywiIHNhZ3QgZGVyIGFuZGVyZSwgImlzdCBqYSBhdWNoIGVnYWwsIHNpZWggbWFsIGxpZWJlciBuYWNoLCBvYgp1bnNlciBLb2VkZXIgbm9jaCBpbiBPcmRudW5nIGlzdCBvZGVyIG9iIHdpciBlaW5lbiBuZXVlbiBicmF1Y2hlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKYWd0IChCYW1idWxrbywgIDMuIEF1ZyAyMDA0LCAyMjoxMzo0NCk6Ck5hY2ggbGFuZ2VtIERyYWVuZ2VuIGxhZXNzdCBzaWNoIGVpbiBKYWVnZXIgdm9uIHNlaW5lciBGcmF1IHVlYmVycmVkZW4sIHNpZQplaW5tYWwgbWl0IGF1ZiBkaWUgSmFnZCB6dSBuZWhtZW4uCgpJbSBXYWxkIGVya2xhZXJ0IGVyIGlociBkYW5uLCB3aWUgc2llIGRhcyBHZXdlaHIgenUgYmVkaWVuZW4gaGF0IHVuZCB3aWUgc2llCnNpY2ggYW0gYmVzdGVuIHZlcnN0ZWNrdC4gV2VpdGVyaGluIHNhZ3QgZXIgaWhyLCBkYXNzIGVzIGF1ZiBkZXIgSmFnZCBzZWhyCndpY2h0aWcgc2VpLCBuYWNoIGRlbSBTY2h1c3Mgc29mb3J0IHp1IGRlbSBlcmxlZ3RlbiBUaWVyIGhpbnp1ZWlsZW4sIHdlaWwKZGVyamVuaWdlIHNlaW5lCkJlc2l0emFuc3BydWVjaGUgZGFyYXVmIGVyaGViZW4ga2FubiwgZGVyIGFscyBlcnN0ZXIgYW4gZGVtIFRpZXIgYW5nZWxhbmd0CmlzdC4KCkdlc2FndCwgZ2V0YW4uCgpEaWUgYmVpZGVuIHZlcmtyaWVjaGVuIHNpY2ggamV3ZWlscyBpbiBpaHJlIERlY2t1bmcgdW5kIHdhcnRlbi4KCk5hY2gga3VyemVyIFplaXQgaG9lcnQgZGVyIEphZWdlciBlaW5lbiBTY2h1c3Mgdm9uIHNlaW5lciBGcmF1LiBTY2huZWxsIGVpbHQKZXIgaGluLCB1bSB6dSBzZWhlbiwgb2Igc2llIGF1Y2ggYWxsZXMgcmljaHRpZyBtYWNodC4KClNjaG9uIGF1cyB3ZWl0ZXIgRW50ZmVybnVuZyBrYW5uIGVyIHNlaGVuLCB3aWUgc2VpbmUgRnJhdSB1bmQgZWluIGZyZW1kZXIgTWFubgp3aWxkIGRpc2t1dGllcmVuZCB1bSBlaW5lbiBLYWRhdmVyIGhlcnVtc3RlaGVuLgoKQWxzIGVyIG5hZWhlciBoZXJhbmtvbW10LCBob2VydCBlciBkZW4gTWFubiBzYWdlbjoKIk5hIGd1dCwgbmEgZ3V0LCBlcyBpc3QgSUhSIEhJUlNDSCwgaWNoIHNlaGUgZXMgamEgZWluISBEYXJmIGljaCBhYmVyIGJpdHRlCndlbmlnc3RlbnMgbm9jaCB2b3JoZXIgZGVuIFNhdHRlbCBhYm5laG1lbj8iCgoKCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb2NoemVpdCAoQmFtYnVsa28sICAzLiBBdWcgMjAwNCwgMjI6MTQ6MDIpOgpBbHMgaWNoIGp1ZW5nZXIgd2FyLCBoYXNzdGUgaWNoIGVzLCB6dSBIb2NoemVpdGVuIHp1IGdlaGVuLiBUYW50ZW4gdW5kCmdyb3NzbXVldHRlcmxpY2hlIEJla2FubnRlIGthbWVuIHp1IG1pciwgcGlla3RlbiBtaXIgaW4gZGllClNlaXRlLCBsYWNodGVuIHVuZCBzYWd0ZW46CiJEdSBiaXN0IGRlciBOYWVjaHN0ZS4iCgpTaWUgaGFiZW4gbWl0IGRlbSBNaXN0IGF1ZmdlaG9lcnQsIGFscyBpY2ggYW5maW5nLCBhdWYgQmVlcmRpZ3VuZ2VuIGRhcwpnbGVpY2hlIHp1IG1hY2hlbi4KCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVmenVnIChCYW1idWxrbywgIDMuIEF1ZyAyMDA0LCAyMjoxNDoyMik6CkVpbmUgRmFtaWxpZSBhdXMgZWluZW0gRW50d2lja2x1bmdzbGFuZCBpc3QgenVtIGVyc3RlbiBNYWwgaW4gZWluZW0gS2F1ZmhhdXMuCgpXYWVocmVuZCBkaWUgTXV0dGVyIHNpY2ggZGllIERlc3NvdXMgYW5zY2hhdXQsIHN0ZWhlbiBWYXRlciB1bmQgU29obiB2b2xsZXIKU3RhdW5lbiB2b3IgZWluZXIgZ2V0ZWlsdGVuIE1ldGFsbHR1ZXIsIGRpZSBzaWNoIHdpZSB2b24gR2Vpc3RlcmhhbmQgb2VmZm5ldAp1bmQgZWluZW4ga2xlaW5lbiBSYXVtIGZyZWlnaWJ0LiAoRXMgaXN0IG5hdHVlcmxpY2ggZWluIEF1Znp1ZykuCgpGcmFndCBkZXIgU29objoKIlZhdGVyLCB3YXMgaXN0IGRhcz8iCgpEZXIgVmF0ZXI6CiJNZWluIFNvaG4sIHNvIHdhcyBoYWJlIGljaCBpbSBMZWJlbiBub2NoIG5pY2h0IGdlc2VoZW4hIgoKRGEgaHVtcGVsdCBlaW5lIGtsZWluZSBhbHRlIERhbWUgbWl0IGVpbmVtIHNjaHJ1bXBlbGlnZW4gR2VzaWNodCB1bmQgZWluZW0KQnVja2VsLCBkZXIgZWluZXIgSGV4ZSB6dXIgRWhyZSBnZXJlaWNodCBoYWV0dGUsIGluIGRlbiBBdWZ6dWcuIERpZSBUdWVyCnNjaGxpZXNzdCBzaWNoLCB1bmQgVmF0ZXIgdW5kIFNvaG4gYmVvYmFjaHRlbiBkaWUgTGFtcGVuIHVlYmVyIGRlciBUdWVyLCB3aWUKc2llIG5hY2hlaW5hbmRlciBhdWZsZXVjaHRlbjogMTIgLSAxMyAtIDE0IC0gMTUgLSAxNCAtIDEzIC0gMTIuCgpEYSBnZWh0IGRpZSBUdWVyIGF1ZiwgdW5kIGVpbmUgcGhhbnRhc3Rpc2NoIGF1c3NlaGVuZGUgQmxvbmRpbmUgdmVybGFlc3N0IGRlbgpMaWZ0LgoKRGVyIFZhdGVyIHp1IHNlaW5lbSBTb2huOgoiU2NobmVsbCEgSG9sIGRlaW5lIE11dHRlciEiCgpCYW1idWxrbwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEltYmlzc2J1ZGVuZGV1dHNjaC4uLiAoU2t5ZmlyZSwgIDMuIEF1ZyAyMDA0LCAyMzoyNTowNSk6Cn4jISBybj1NYWFyZyBydD0xMDkxNTU2MTgzIHJnPXd3dwp+IyEgdGlkPTEwOTE1NTYxODMKU29sY2hlIEZyYXVlbmZlaW5kbGljaGVuIFdpdHplIHZlcmJpdHQgaWNoIG1pciEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSW1iaXNzYnVkZW5kZXV0c2NoLi4uIChab29rLCAgNC4gQXVnIDIwMDQsIDA5OjU3OjI2KToKfiMhIHJuPVNreWZpcmUgcnQ9MTA5MTU2ODMwNSByZz13aXR6ZQp+IyEgdGlkPTEwOTE1NTYxODMKSWNoIGJpbiBtaXIgbmljaHQgc2ljaGVyLCBvYiBTa3lmaXJlIGluIGRpZXNlciBSdWJyaWsgc2NocmVpYmVuIHdvbGx0ZQpvZGVyIGRvY2ggbGllYmVyIGluICJkaXNrdXNzaW9uIi4KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogSmFndCAoS2VsbHlidW5keSwgIDQuIEF1ZyAyMDA0LCAyMDo0MjowOCk6Cn4jISBybj1CYW1idWxrbyBydD0xMDkxNTY0MDI0IHJnPXdpdHplCn4jISB0aWQ9MTA5MTU2NDAyNApXbyBpcyBkYSBkZXIgV2l0ej8gZGFzIGlzdCBSZWFsc2F0aXJlLiBUdXNzaWVzIGhhYmVuIGltbWVyIHJlY2h0LCB1bmQgZWluZQp3ZWlzc2UgV2FuZCBpc3QgdmVybnVlbmZ0aWdlbiBBcmd1bWVudGVuIGdlZ2VudWViZXIgX3dlc2VudGxpY2hfCnp1Z2FlbmdsaWNoZXIuCkJsb25kY2hlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQm9lc2UgU2lnbmF0dXIuLi4gKFJvbmRhLCAgNS4gQXVnIDIwMDQsIDAxOjA3OjA2KToKR2VrbGF1dCBhdXMgZGUuYWx0LnJlY292ZXJ5LndlYmF1dGhvcjoKCi0tIApJbW1lciBtZWhyIFNlbmlvcmVuIHZlcnNjaHdpbmRlbiBzcHVybG9zIGltIEludGVybmV0IHdlaWwgc2llCnZlcnNlaGVudGxpY2ggJ0FsdCcgdW5kICdFbnRmZXJuZW4nIGRydWVja2VuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCklSQyBpcyBkb2NoIHp1IHdhcyBndXQgOikgKE1vcmdvdGgsIDExLiBBdWcgMjAwNCwgMTQ6MDU6NDUpOgpBIHdvbWFuIHNhdmVkIGhlcnNlbGYgYSBsb3Qgb2YgdHJvdWJsZSB3aGVuIGEgbWFuIHJvYmJlZCBhIGJ1cyBpbiB0aGUgVVMKVG8gc2F2ZSBoZXIgbW9uZXksIHNoZSBhdGUgYWxsIHRoZSBtb25leSBzaGUgaGFkLgpUaGlzIHdhc24ndCB0aGUgZmlyc3QgdGltZSB0aGlzIGhhcHBlbmVkLCB0aG91Z2guClRoZSBsYXN0IHBlcnNvbiB0byBzd2FsbG93IGEgd2FkIG9mIGJpbGxzIHdhcyBNb25pY2EgTGV3aW5za3kuCgpNKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVjaCBJUkMga2FubiB3aXR6aWcgc2VpbiA6KSAoTW9yZ290aCwgMjcuIEF1ZyAyMDA0LCAyMjo0NzowNSk6ClRoZXJlIHdhcyB0aGlzIG1hbiB0aGF0IGFsd2F5cyBoYWQgdG8gZ28gb24gYnVzaW5lc3MgdHJpcHMgYWxsIHRoZSB0aW1lIG9uCmFjY291bnQgb2YgaGlzIGhpZ2ggcG9zaXRpb24gaW4gaGlzIGpvYiBidXQgaGUgYWx3YXlzIGhhZCB0aGlzIGZlYXIgdGhhdCBoaXMKd2lmZSB3YXMgY2hlYXRpbmcgb24gaGltIGV2ZXJ5IHRpbWUgaGUgbGVmdCBzbyB0aGlzIHRpbWUgaGUgZGVjaWRlZCBoZSdsbCBnZXQKaGVyIHNvbWV0aGluZyB0byBrZWVwIGhlcnNlbGYgb2NjdXBpZWQKaGUgZ29lcyB0byB0aGUgc2V4IHN0b3JlLCBhbmQgZmluZHMgYSB2YXN0IHZhcmlldHkgb2YgZGlsZG9zIGFuZCBwbGF5IHRoaW5ncywKYnV0IHRoZSBtYW4gdGhpbmtzIHRvIGhpbXNlbGYgInRoZXNlIHdvbnQgbGFzdCB2ZXJ5IGxvbmcgd2l0aCBoZXIiCnNvIGhlIGdvZXMgdG8gdGhlIG9sZCBndXkgYXQgdGhlIGNvdW50ZXIgYW5kIGFza3MgaWYgaGUgaGFzIGFueXRoaW5nIHNwZWNpYWwKdG8ga2VlcCBoaXMgd2lmZSBzYXRpc2ZpZWQgZm9yIHdlZWtzIGFuZCB3ZWVrcwp0aGUgb2xkIGd1eSByZXBsaWVkICJ3aHkgeWVzLCB5ZXMgSSBkbyIgaGUgcHVsbHMgb3V0IGEgZHVzdHkgb2xkIGJveCB0aGF0IGhhZApzb21lIHN0cmFuZ2Ugc3ltYm9scyBvbiBpdApIZSBvcGVucyB0aGUgYm94IGFuZCBwdWxscyBvdXQgYSByZWd1bGFyIGxvb2tpbmcgZGlsZG8sIHRoZSBtYW4gcmVzcG9uZHMgIldoYXQKdGhlIGhlbGwgaXMgdGhpcz8hIGl0IGxvb2tzIGxpa2UgYW55IG90aGVyIGRpbGRvIGluIHRoaXMgc2hvcCEiCnRoZSBvbGQgZ3V5IHJlc3BvbmRlZCB3aXRoICJidXQgd2FpdCwgdGhpcyBpcyB3aGF0IHlvdSBjYWxsIGEgVm9vZG9vLURpY2shCldhdGNoIHRoaXMuLi4iClRoZSBvbGQgZ3V5IHBvaW50cyB0byB0aGUgZG9vciBhbmQgc2F5cyAiVm9vZG9vIGRpY2ssIHRoZSBkb29yIgp0aGUgdm9vZG9vIGRpY2sgZmxvYXRzIG9mZiB0aGUgY291bnRlciBhbmQgamFtcyBpdHNlbGYgaW50byB0aGUga2V5aG9sZSBvZiB0aGUKZG9vciBhbmQgYmVpbmdzIHRvIGh1bXAgZnVyaW91c2x5ClRoZSBtYW4gd2FzIGluIGF3ZSB0aGVuIHllbGxlZCAiSWxsIHRha2UgaXQhIgp0aGUgb2xkIGd1eSBzYWlkICJubyBpdHMgbm90IGZvciBzYWxlIgphZnRlciBsb25nIGJhcmdhaW5pbmcgaXQgY2FtZSB1cCB0byA4MDAgZG9sbGFycywgdGhlIG1hbiB2ZXJ5IHNhdGlzZmllZCB3aXRoCmhpbXNlbGYsIHdlbnQgaG9tZSBhbmQgc2hvd2VkIGhpcyB3aWZlCkhpcyB3aWZlIHNhaWQgIldURiBpcyB0aGlzPyIgSGUgcmVzcG9uZGVkIGl0cyB0aGUgdm9vZG9vIGRpY2sgYW5kIHRoYXQgYWxsIHlvdQpuZWVkIHRvIGRvIGlzIHBvaW50IHRvIHRoZSBwbGFjZSB5b3Ugd2FudCBpdCBhbmQgc2F5ICJ2b29kb28tZGljaywgdGhlIGFyZWEKeW91IHdhbnQiClNvIHRoZSBtYW4gbGVhdmVzIG9uIGhpcyBidXNpbmVzcyB0cmlwIGhhcHB5IGFuZCB1bndvcnJpZWQgYWJvdXQgaGlzIHdpZmUKYSBmZXcgZGF5cyBsYXRlciB0aGUgd2lmZSBkZWNpZGVkIHRvIHRyeSBpdCBvdXQsIHNoZSBnb3QgbmFrZWQsIGFuZCBzYWlkCiJ2b29kb28tZGljaywgbXkgcHVzc3kvdmFnaW5hIgp0aGUgdm9vZG9vIGRpY2sgZW50ZXJlZCBpbiBhbmQgc2hlIHdhcyBoYXZpbmcgYSBibGFzdCwgYWZ0ZXIgYSB3aGlsZSBzaGUKZmluYWxseSBjbGltYXhlZCBhbmQgd2FudGVkIHRvIHRha2UgaXQgb3V0CmJ1dCB1bmZvcnR1bmF0bHksIGhlciBodXNiYW5kIGRpZG50IHRlbGwgaGVyIGhvdyB0byBzdG9wIGl0LCBzbyBpdCBnb3Qgc3R1Y2sKaW4gaGVyCiJvaCBzaGl0IG9oIHNoaXQsIHdoYXQgc2hvdWxkIEkgZG8/IiBzaGUgc2FpZCBuZXJ2b3VzbHkKc2hlIGRlY2lkZWQgdG8gZ2V0IHNvbWUgbWVkaWNhbCBhdHRlbnRpb24sIHNvIHNoZSB0aHJldyBvbiBoZXIgY2xvdGhlcywKZGVzcGl0ZSB0aGUgdm9vZG9vIGRpY2sgcmFtbWluZyBoYXJkIGludG8gaGVyLCBhbmQgZ290IGluIHRoZSBjYXIgYW5kIGhlYWRlZAp0b3dhcmRzIHRoZSBoaWdod2F5CmFuZCBvZiBjb3Vyc2UgaXRzIHZlcnkgZGlmZmljdWx0IHRvIGRyaXZlIHdpdGggYSB2b29kb28gZGljayByYW1taW5nIHlvdXIKY2xpdCwgc28gc2hlIHN0YXJ0ZWQgc3dlcnZpbmcKYSBjb3Agb24gYSBtb3RvcmN5Y2xlIHB1bGxlZCBoZXIgb3ZlciBhbmQgc2FpZCB5b3UgYnJva2UgNSB0cmFmZmljIGxhd3MgaW4gb25lCnN3b29wCnNoZSByZXNwb25kZWQgIkltIHNvcnJ5IGJ1dCBpIGdvdCB0aGlzIHZvb2Rvby1kaWNrIHN0dWNrIGluIG1lIGFuZCBpbSB0cnlpbmcKdG8gZ2V0IG1lZGljYWwgYXR0ZW50aW9uCnRoZSBjb3AgbGF1Z2hlZCBhbmQgc2FpZCAiaGEhIFZvb2RvbyBkaWNrIG15IGFzcyEiCgpNKiAoc29ycnkgZnVlciBkaWUgZm9ybWF0aWVydW5nKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEF1Y2ggSVJDIGthbm4gd2l0emlnIHNlaW4gOikgKEJyYW4sIDI3LiBBdWcgMjAwNCwgMjI6NTU6MjQpOgp+IyEgcm49TW9yZ290aCBydD0xMDkzNjM5NjI1IHJnPXdpdHplCn4jISB0aWQ9MTA5MzYzOTYyNQpPSy4gVW5kIG5hY2hkZW0gZGFzIG51biByYXVzLCBvZGVyIGVoZXIgZHJpbiBpc3QgLSBlcmtsYWVyIHVucyBiaXR0ZSBlbmRsaWNoCmRhcyBCaWxkIGF1cyB3d3cgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXVjaCBJUkMga2FubiB3aXR6aWcgc2VpbiA6KSAoQmFtYmksIDI4LiBBdWcgMjAwNCwgMDk6MDY6NTUpOgp+IyEgcm49QnJhbiBydD0xMDkzNjQwMTI0IHJnPXdpdHplCn4jISB0aWQ9MTA5MzYzOTYyNQpJY2ggZ2xhdWIgamEgbmljaHQgZHJhbiwgZGFzcyBkYXMgbm9jaCBrb21tdC4gQWJlciBzb2xjaGUgU3RhdGVtZW50cyBoYWJlbiBqYQpzY2hvbiBkZXMgb2VmdGVyZW4gZWluZSBlcnN0YXVubGljaGUgV2lya3VuZyBnZXplaWd0LiA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSW5mb3JtYXRpa2VyIChNYWRuZXNzLCAxMC4gU2VwIDIwMDQsIDE5OjQ2OjAxKToKRXMgd2FyIGVpbm1hbCBlaW4gSW5mb3JtYXRpa2VyIGRlciBkdXJjaCBlaW5lbiBXYWxkIGdpbmcuLi4uIApwbG9ldHpsaWNoIHNpZWh0IGVyIGVpbmVuIEZyb3NjaCBkZXIgenUgaWhtIHNhZ3Q6IAoiSGFsbG8gaWNoIGJpbiBlaW5lIHZlcnphdWJlcnRlIFByaW56ZXNzaW4hIFdlbm4gZHUgbWljaCBrdWVzc3QgdmVyd2FuZGVsIGljaAptaWNoIHp1cnVlY2sgdW5kIGVyZnVlbGxlIGRpciBqZWRlbiBXdW5zY2ghIiAKRGVyIEluZm9ybWF0aWtlciBuaW1tdCBkZW4gRnJvc2NoIGF1ZiBkaWUgSGFuZCwgZ3JpbnN0IGlobiBhbiwgc3RlY2sgaWhuIHNpY2gKaW4gc2VpbmUgVGFzY2hlIHVuZCBnZWh0IHdlaXRlci4gCkRlciBGcm9zY2ggd3VuZGVydCBzaWNoIHVuZCBzYWd0OiAiQWVobSBoYWxsbz8hIEljaCBiaW4gZWluZSB2ZXJ6YXViZXJ0ZQpQcmluemVzc2luIHVuZCBlcmZ1ZWxsZSBkaXIgamVkZW4gV3Vuc2NoIHdlbm4gZHUgbWljaCBrdWVzc3QuLi4uLi4hIiAKRGVyIEluZm9ybWF0aWtlciBuaW1tdCBkZW4gRnJvc2NoIHdpZWRlciBhdXMgZGVyIFRhc2NoZSwgZ3JpbnN0IGlobiBhbiB1bmQKc3RlY2t0IGlobiB3aWVkZXIgenVydWVjay4gCkRlciBudW4gbGVpY2h0IHZlckFlcmdlcnRlIEZyb3NjaCBwcm9iaWVydCBlcyBlaW4gd2VpdGVyZXMgbWFsOiAKIkJpc3QgZHUgdGF1Yj8gSWNoIGhhYmUgZG9jaCBnZXNhZ3Qgd2VubiBkdSBtaWNoIGt1ZXNzdCB2ZXJ3YW5kZWwgaWNoIG1pY2ggaW4KZWluZSBndXRhdXNzZWhlbmRlIFByaW56ZXNzaW4gdW5kIGVyZnVlbGxlIGRpciBqZWRlbiBXdW5zY2guLi4ubWluZGVzdGVucyBlaW5lCldvY2hlIGxhbmchISEiIApFcm5ldXQgbmltbXQgaWhuIGRlciBJbmZvcm1hdGlrZXIgYXVzIGRlciBUYXNjaGUsIGdyaW5zdCBJaG4gZXJuZXV0IGFuIHVuZApzdGVja3QgaWhuIHdpZWRlciB6dXJ1ZWNrLiAKRGVyIG51biB3aXJrbGljaCB3dWV0ZW5kZSBGcm9zY2g6ICJIYWFhbGxsbG9vb28gd2llIG9mdCBzb2xsIGljaHMgZGlyIG5vY2gKZXJrbGFlcmVuLi4uSWNoIGJpbiBlaW5lIHZlemF1YmVydGUgUHJpbnplc3NpbiEgRHUgbXVzc3QgbWljaCBkb2NoIG51cgprdWVzc2VuLi4uLj8/PyIgCkpldHp0IGJsZWlidCBkZXIgSW5mb3JtYXRpa2VyIHN0ZWhlbiwgbmltbXQgZGVuIEZyb3NjaCBhdXMgZGVyIFRhc2NoZSB1bmQKc2FndDogIkhvZXIgbWFsLi4uaWNoIGJpbiBJbmZvcm1hdGlrZXIhIEZ1ZXIgZWluZSBGcmV1bmRpbiBoYWJlIGljaCBrZWluZQpaZWl0LCBhYmVyIGVpbiBzcHJlY2hlbmRlciBGcm9zY2ggaXN0IGVjaHQgY29vbCEiCgpNYWRuZXNzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcnVja2VyIChNb3Jnb3RoLCAyMC4gU2VwIDIwMDQsIDEyOjU5OjI0KToKRWluIFRydWNrZXIga29tbXQgaW5zIEJvcmRlbGwgdW5kIHZlcmxhbmd0OiAKSWNoIHdpbGwgZGFzIGhhZXNzbGljaHN0ZSBNYWVkY2hlbiwgZGFzIFNpZSBoYWJlbiwga2FsdGVuIEhhY2ticmF0ZW4gdW5kIGVpbmUgCkRvc2Ugd2FybWVzIEJpZXIgLSBpY2ggemFobGUgNTAwIEV1cm8hIiAKRGFyYXVmIGRpZSBDaGVmaW46ICJBYmVyLCBhYmVyLCBmdWVyIGRhcyBHZWxkIGJla29tbWVuIFNpZSBhdWNoIApGaXJzdC1DbGFzcy1TZXJ2aWNlIGJlaSB1bnNlcmVtIGh1ZWJzY2hlc3RlbiBNYWVkY2hlbiEiIApFcjogIkljaCB3aWxsIGtlaW5lbiBTZXguIEljaCBoYWJlIEhlaW13ZWghIgoKTSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5lIGdhbnplIE1lbmdlIGRhdm9uLi4uIChSb25kYSwgMjUuIFNlcCAyMDA0LCAyMToyNjo0MCk6Ci4uLiBnaWJ0cyBpbSBGb3J1bSBkZXIgRlRQLi4uIG5laW4sIGljaCBiaW4gd2VkZXIgdmVyd2FuZHQgbm9jaCB2ZXJzY2h3YWVnZXJ0Cm1pdCBkZW5lbi4uLiBuZW4gcGFhciBkZXIgV2l0emUgZGEgc2luZCBlY2h0IG5ldHQuLi4gb2RlciBzaW5kcyBkb2NoClRhdHNhY2hlbj8KCmh0dHA6Ly90aW55dXJsLmNvbS80M3piOAoKUm9uZGEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmUgZ2FuemUgTWVuZ2UgZGF2b24uLi4gKEFuYXRvbCwgMjUuIFNlcCAyMDA0LCAyMTo1MjowNik6Cn4jISBybj1Sb25kYSBydD0xMDk2MTQwNDAwIHJnPXdpdHplCn4jISB0aWQ9MTA5NjE0MDQwMApKdW5ncywgdm9yc2ljaHQuIEVyIGhhdCBzaWNoIHZlcnRpcHB0LiBFcyBnZWh0IG5pY2h0IHVtIGRhcwpGaWxlIFRyYW5zZmVyIFByb3RvY29sLiBELiBOaWNodCBULiBWb3JzaWNodC4gOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5lIGdhbnplIE1lbmdlIGRhdm9uLi4uIChBbmF0b2wsIDI1LiBTZXAgMjAwNCwgMjE6NTM6MTgpOgp+IyEgcm49QW5hdG9sIHJ0PTEwOTYxNDE5MjYgcmc9d2l0emUKfiMhIHRpZD0xMDk2MTQwNDAwClNpZSEgU2llIGhhdCBzaWNoIHZlcnRpcHB0ISBOaWNodCBlciEgU2llISBBcmdoIQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IE5lIGdhbnplIE1lbmdlIGRhdm9uLi4uIChSb25kYSwgMjUuIFNlcCAyMDA0LCAyMTo1NDoxNik6Cn4jISBybj1BbmF0b2wgcnQ9MTA5NjE0MTk5OCByZz13aXR6ZQp+IyEgdGlkPTEwOTYxNDA0MDAKTWlzdC4gTGllZ3Qgd29obCBkcmFuLCBkYXNzIGVzIG1pciBzbyBzY2h3ZXIgZmFlbGx0LCBtaXIgaXJnZW5kd2FzIHVudGVyIDUKUHJvemVudCB6dSBtZXJrZW4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IE5lIGdhbnplIE1lbmdlIGRhdm9uLi4uIChBbmF0b2wsIDI1LiBTZXAgMjAwNCwgMjE6NTQ6NTgpOgp+IyEgcm49Um9uZGEgcnQ9MTA5NjE0MjA1NiByZz13aXR6ZQp+IyEgdGlkPTEwOTYxNDA0MDAKR3V0LCBkYXNzIERpciBkYXMgYmVpIFdoaXNreSBuaWNodCBwYXNzaWVyZW4ga2Fubi4uLiA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZSBnYW56ZSBNZW5nZSBkYXZvbi4uLiAoQWxib2luLCAyNi4gU2VwIDIwMDQsIDAyOjE0OjA3KToKfiMhIHJuPVJvbmRhIHJ0PTEwOTYxNDA0MDAgcmc9d2l0emUKfiMhIHRpZD0xMDk2MTQwNDAwCmRlciBncm9lc3N0ZSBXaXR6IGlzdCBsZWlkZXIgbmljaHQgZGFiZWk6IEZEUCAxOCA7LSkKCmFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMTogQWxjaGVtaXN0IChtYWwgd2llZGVyKSAoTWluZ28sIDMwLiBTZXAgMjAwNCwgMTM6MDI6MTQpOgp+IyEgcm49VHVyYm8gcnQ9MTA5NjU0MTk0NyByZz1kLnZsYW5kCn4jISB0aWQ9MTA5NjI5MTYxMQpNYWwgd2llZGVyLCB3ZWlsIHBhc3NlbmQgKGJhc2gub3JnKToKCjxEb251dFtBRktdPiBIRVkgRVVSQUtBUlRFCjxEb251dFtBRktdPiBJTlNVTFQKPEV1cmFrYXJ0ZT4gUkVUT1JUCjxEb251dFtBRktdPiBDT1VOVEVSLVJFVE9SVAo8RXVyYWthcnRlPiBRVUVTVElPTklORyBPRiBTRVhVQUwgUFJFRkVSRU5DRQo8RG9udXRbQUZLXT4gU1VHR0VTVElPTiBUTyBTSFVUIFRIRSBGVUNLIFVQCjxFdXJha2FydGU+IE5PVEFUSU9OIFRIQVQgWU9VIENSRUFURSBBIFZBQ1VVTQo8RG9udXRbQUZLXT4gUklQT1NURQo8RG9udXRbQUZLXT4gQURET04gUklQT1NURQo8RXVyYWthcnRlPiBDT1VOVEVSLVJJUE9TVEUKPERvbnV0W0FGS10+IENPVU5URVItQ09VTlRFUiBSSVBPU1RFCjxFdXJha2FydGU+IE5PTlNFTlNJQ0FMIFNUQVRFTUVOVCBJTlZPTFZJTkcgUExBTktUT04KPE1pbGVzX1Byb3dlcj4gUkVTUE9OU0UgVE8gUkFORE9NIFNUQVRFTUVOVCBBTkQgVEhSRUFUIFRPIEJBTiBPUFBPU0lORyBTSURFUwo8RXVyYWthcnRlPiBXT1JEUyBPRiBQUkFJU0UgRk9SIEZJU0hGT09ECjxNaWxlc19Qcm93ZXI+IEFDS05PV0xFREdFTUVOVCBBTkQgQUNDRVBURU5DRSBPRiBURVJNUwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjIyOiBBbGNoZW1pc3QgKG1hbCB3aWVkZXIpIChDYXR3ZWF6bGUsIDMwLiBTZXAgMjAwNCwgMTM6MDU6MzgpOgp+IyEgcm49TWluZ28gcnQ9MTA5NjU0MjEzNCByZz13aXR6ZQp+IyEgdGlkPTEwOTYyOTE2MTEKTWVpbiBMaWVibGluZ3MtQmFzaC5vcmcgOi0pIEVyIGhhdCBpaG4gZ2VmdW5kZW4gOikKCllUQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIEdlc2NoaWNodGUgZGVzIExlYmVucyBvZGVyIHNvIC4uLiAoRWxqbywgMjkuIE9rdCAyMDA0LCAxODoyNzoxOSk6CkRpZSBHZXNjaGljaHRlIHZvbSBCbHVtZW50b3BmIHVuZCBkZW0gQmllcgoKV2VubiBkaWUgRGluZ2UgaW4gZGVpbmVtIExlYmVuIGltbWVyIHNjaHdpZXJpZ2VyIHdlcmRlbiwgd2VubiAyNCBTdHVuZGVuCmltIFRhZyBuaWNodCBnZW51ZyBzaW5kLCBlcmlubmVyZSBkaWNoIGFuIGRlbiAiQmx1bWVudG9wZiB1bmQgZGFzIEJpZXIiLgoKRWluIFByb2Zlc3NvciBzdGFuZCB2b3Igc2VpbmVyIFBoaWxvc29waGllLUtsYXNzZSB1bmQgaGF0dGUgZWluaWdlCkdlZ2Vuc3RhZW5kZSB2b3Igc2ljaC4gQWxzIGRlciBVbnRlcnJpY2h0IGJlZ2FubiwgbmFobSBlciB3b3J0bG9zIGVpbmVuCnNlaHIgZ3Jvc3NlbiBCbHVtZW50b3BmIHVuZCBiZWdhbm4gZGllc2VuIG1pdCBHb2xmYmFlbGxlbiB6dSBmdWVsbGVuLiBFcgpmcmFndGUgZGllClN0dWRlbnRlbiwgb2IgZGVyIFRvcGYgbnVuIHZvbGwgc2VpLgoKU2llIGJlamFodGVuIGVzLgoKRGFubiBuYWhtIGRlciBQcm9mZXNzb3IgZWluIEJlaGFlbHRuaXMgbWl0IEtpZXNlbHN0ZWluZW4gdW5kIHNjaHVldHRldGUKZGllc2UgaW4gZGVuIFRvcGYuIEVyIGJld2VndGUgZGVuIFRvcGYgc2FjaHRlIHVuZCBkaWUgS2llc2Vsc3RlaW5lIHJvbGx0ZW4gaW4KZGllIExlZXJyYWV1bWUgendpc2NoZW4gZGVuIEdvbGZiYWVsbGVuLiBEYW5uIGZyYWd0ZSBlciBkaWUgU3R1ZGVudGVuCndpZWRlcnVtLCBvYgpkZXIgVG9wZiBudW4gdm9sbCBzZWkKClNpZSBzdGltbXRlbiB6dS4KCkRlciBQcm9mZXNzb3IgbmFobSBhbHMgbmFlY2hzdGVzIGVpbmUgRG9zZSBtaXQgU2FuZCB1bmQgc2NodWV0dGV0ZSBkaWVzZW4KaW4gZGVuIFRvcGYuIE5hdHVlcmxpY2ggZnVlbGx0ZSBkZXIgU2FuZCBkZW4ga2xlaW5zdGVuIHZlcmJsaWViZW5lbiBGcmVpcmF1bS4KRXIgZnJhZ3RlIHdpZWRlcnVtLCBvYiBkZXIgVG9wZiBudW4gdm9sbCBzZWkuCgpEaWUgU3R1ZGVudGVuIGFudHdvcnRldGVuIGVpbnN0aW1taWcgImphIi4KCkRlciBQcm9mZXNzb3IgaG9sdGUgendlaSBEb3NlbiBCaWVyIHVudGVyIGRlbSBUaXNjaCBoZXJ2b3IgdW5kIHNjaHVldHRldGUKZGVuIGdhbnplbiBJbmhhbHQgaW4gZGVuIFRvcGYgdW5kIGZ1ZWxsdGUgc29taXQgZGVuIGxldHp0ZW4gUmF1bSB6d2lzY2hlbiBkZW4KU2FuZGtvZXJuZXJuIGF1cy4KCkRpZSBTdHVkZW50ZW4gbGFjaHRlbi4KCiJOdW4iLCBzYWd0ZSBkZXIgUHJvZmVzc29yLCBhbHMgZGFzIExhY2hlbiBsYW5nc2FtIG5hY2hsaWVzcywgIkljaAptb2VjaHRlLCBkYXNzIFNpZSBkaWVzZW4gVG9wZiBhbHMgZGllIFJlcHJhZXNlbnRhdGlvbiBJaHJlcyBMZWJlbnMgYW5zZWhlbi4KRGllCkdvbGZiYWVsbGUgc2luZCBkaWUgd2ljaHRpZ2VuIERpbmdlIGluIElocmVtIExlYmVuOiBJaHJlIEZhbWlsaWUsIElocmUKS2luZGVyLCBJaHJlIEdlc3VuZGhlaXQsIElocmUgRnJldW5kZSwgZGllIGJldm9yenVndGVuLCBqYSBsZWlkZW5zY2hhZnRsaWNoZW4KQXNwZWt0ZSBJaHJlcyBMZWJlbnMsIHdlbGNoZSwgZmFsbHMgaW4gSWhyZW0gTGViZW4gYWxsZXMgdmVybG9yZW4gZ2luZ2UgdW5kCm51ciBub2NoIGRpZXNlIHZlcmJsZWliZW4gd3VlcmRlbiwgSWhyIExlYmVuIHRyb3R6ZGVtIG5vY2ggZXJmdWVsbGVuZCB3YWVyZS4iCgoiRGllIEtpZXNlbHN0ZWluZSBzeW1ib2xpc2llcmVuIGRpZSBhbmRlcmVuIERpbmdlIGltIExlYmVuIHdpZSBJaHJlCkFyYmVpdCwgSWhyIEhhdXMsIElociBBdXRvLiBEZXIgU2FuZCBpc3QgYWxsZXMgYW5kZXJlLCBkaWUgS2xlaW5pZ2tlaXRlbi4KRmFsbHMKU2llIGRlbiBTYW5kIHp1ZXJzdCBpbiBkZW4gVG9wZiBnZWJlbiIsIGZ1aHIgZGVyIFByb2Zlc3NvciBmb3J0LCAiaGF0IGVzCndlZGVyIFBsYXR6IGZ1ZXIgZGllIEtpZXNlbHN0ZWluZSBub2NoIGZ1ZXIgZGllIEdvbGZiYWVsbGUuIERhc3NlbGJlIGdpbHQgZnVlcgpJaHIKTGViZW4uIFdlbm4gU2llIGFsbCBJaHJlIFplaXQgdW5kIEVuZXJnaWUgaW4gS2xlaW5pZ2tlaXRlbiBpbnZlc3RpZXJlbiwgd2VyZGVuClNpZSBuaWUgUGxhdHogaGFiZW4gZnVlciBkaWUgd2ljaHRpZ2VuIERpbmdlLiBBY2h0ZW4gU2llIGF1ZiBkaWUgRGluZ2UsCndlbGNoZSBJaHIgR2x1ZWNrIGdlZmFlaHJkZW4uIFNwaWVsZW4gU2llIG1pdCBkZW4gS2luZGVybi4gTmVobWVuIFNpZSBzaWNoClplaXQgZnVlcgplaW5lIG1lZGl6aW5pc2NoZSBVbnRlcnN1Y2h1bmcuIEZ1ZWhyZW4gU2llIElocmVuIFBhcnRuZXIgenVtIEVzc2VuIGF1cy4gRXMKd2lyZCBpbW1lciBub2NoIFplaXQgYmxlaWJlbiB1bSBkYXMgSGF1cyB6dSByZWluaWdlbiBvZGVyIFBmbGljaHRlbiB6dQplcmxlZGlnZW4uCkFjaHRlbiBTaWUgenVlcnN0IGF1ZiBkaWUgR29sZmJhZWxsZSwgZGllIERpbmdlLCBkaWUgd2lya2xpY2ggd2ljaHRpZyBzaW5kLgpTZXR6ZW4gU2llIElocmUgUHJpb3JpdGFldGVuLiBEZXIgUmVzdCBpc3QgbnVyIFNhbmQuIgoKCkVpbmVyIGRlciBTdHVkZW50ZW4gZXJob2IgZGllIEhhbmQgdW5kIHdvbGx0ZSB3aXNzZW4sIHdhcyBkZW5uIGRhcyBCaWVyCnJlcHJhZXNlbnRpZXJlbiBzb2xsLgoKRGVyIFByb2Zlc3NvciBzY2htdW56ZWx0ZTogIkljaCBiaW4gZnJvaCwgZGFzcyBTaWUgZGFzIGZyYWdlbi4gRXMgaXN0CmRhZnVlciBkYSwgSWhuZW4genUgemVpZ2VuLCBkYXNzLCBlZ2FsIHdpZSBzY2h3aWVyaWcgSWhyIExlYmVuIGF1Y2ggc2VpbiBtYWcsCmVzIGltbWVyIG5vY2ggUGxhdHogaGF0IGZ1ZXIgZWluIG9kZXIgendlaSBCaWVyY2hlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGllIEdlc2NoaWNodGUgZGVzIExlYmVucyBvZGVyIHNvIC4uLiAoTXVwZmVsLCAyOS4gT2t0IDIwMDQsIDIxOjI5OjI4KToKfiMhIHJuPUVsam8gcnQ9MTA5OTA2NzIzOSByZz13aXR6ZQp+IyEgdGlkPTEwOTkwNjcyMzkKT2gsIGRpZSBWYXJpYW50ZSBkZXIgR2VzY2ppY2h0ZSBrYW5udGUgaWNoIG5vY2ggbmljaHQgOykKCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFYmVuIHBlciBJQ1EgYmVrb21tZW4gKE1vcmdvdGgsICAyLiBOb3YgMjAwNCwgMjI6MjU6NTUpOgpFaW4gUGFhciwgYmVpZGUgNzgsIGJlaSBlaW5lbSBTZXh0aGVyYXBldXRlbi4gRGVyIEFyenQgZnJhZ3Q6ICJXYXMga2FubiBpY2gKZnVlciBTaWUgdHVuPyBEZXIgTWFubiBhbnR3b3J0ZXQ6ICJXdWVyZGVuIFNpZSB1bnMgYmVpbSBTZXggenVzY2hhdWVuPyIgRGVyCkFyenQgc2NoYXV0IGV0d2FzIHZlcmRhdHRlcnQgYWJlciBlciBzdGltbXQgenUuIEFscyBkYXMgUGFhciAiZmVydGlnIiBpc3QsCnNhZ3QgZGVyIFRoZXJhcGV1dDoiRXMgaXN0IG5pY2h0cyBhdXNzZXJnZXdvZWhubGljaGVzIGJlaSBJaHJlciBBcnQgU2V4IHp1CmhhYmVuIiwgdW5kIHZlcmxhbmd0IDUwIEV1cm8gZnVlciBkaWUgU2l0enVuZy4gRGllc2VzIHdpZWRlcmhvbHQgc2ljaCBtZWhyZXJlCk1hbGUgaW4gZGVuIGRhcmF1ZiBmb2xnZW5kZW4gV29jaGVuLiBEYXMgUGFhciBtYWNodCBlaW5lbiBUZXJtaW4sIGhhdCBTZXggb2huZQpQcm9ibGVtZSwgemFobHQgZGVuIEFyenQgdW5kIGdlaHQuIElyZ2VuZHdhbm4gZnJhZ3QgZGVyIEFyenQ6ICJXYXMgZ2VuYXUKdmVyc3VjaGVuIFNpZSBiZWkgbWlyIGhlcmF1cyB6dSBmaW5kZW4/IiBEZXIgYWx0ZSBNYW5uIHNhZ3Q6ICJXaXIgdmVyc3VjaGVuCm5pY2h0cyBoZXJhdXMgenUgZmluZGVuLiBTaWUgaXN0IHZlcmhlaXJhdGV0IHVuZCB3aXIga29lbm5lbiBuaWNodCB6dSBpaHIuIEljaApiaW4gdmVyaGVpcmF0ZXQgYWxzbyBhdWNoIG5pY2h0IHp1IG1pci4gRGFzIEhvbGlkYXkgSW5uIG5pbW10CjkwLC0tIEV1cm8gZnVlciBlaW4gWmltbWVyLCBkYXMgS2VtcGluc2tpIDEwOCwtLSBFdXJvLiBXaXIgbWFjaGVuIGVzIGJlaSBJaG5lbgpmdWVyIDUwLC0tIEV1cm8gdW5kIGJla29tbWVuIDE3LC0tIEV1cm8gWnVzY2h1c3Mgdm9uIGRlciBBT0shIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBlaW5lci4uLiAoTW9yZ290aCwgIDIuIE5vdiAyMDA0LCAyMjoyNzo1NCk6ClRob21hcyBoYXQgc2VpdCBXb2NoZW4gYXVmIGRpZSAxNiBqYWVocmlnZSBBbmRyZWEgaGluZ2VhcmJlaXRldCwgYmlzIGVyIHNpZQplbmRsaWNoIGF1ZiBzZWluZXIgQnVkZSBoYXQuIEVyIHppZWh0IGRpZSBIb3NlIGF1cyB1bmQgZnJhZ3Qgc2llOgoiV2Vpc3N0IGR1IHdhcyBkYXMgaXN0PyIgCiJKYSwgZGFzIGlzdCBlaW4gUGlwaW1hbm4uIiAKIkhvZXIgenUsIEFuZHJlYSwgYWIgc29mb3J0IHdvbGxlbiB3aXIgZGFzIGVpbmVuIFNjaHdhbnpuZW5uZW4uIEFsc28sIHdhcyBpc3QKZGFzPyIKIkhvZXIgbWFsIFRob21hcywgaWNoIGhhYmUgc2Nob24gdmllbGUgU2Nod2FlbnplIGdlc2VoZW4sIGFiZXIgZGFzIGlzdCBlaW4KUGlwaW1hbm4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWndlaWZhY2guLi4gKFphcm5peWEsICA1LiBOb3YgMjAwNCwgMTM6MjY6NTIpOgouLi4gZ2VmYWVocmxpY2ggaXN0IGRlciBGb2xnZW5kZSwgd2VpbCBzZXhpc3Rpc2NoIFVORCBCZWhpbmRlcnRlIHNpbmQgYXVjaApub2NoIGRhYmVpOgoKV2llc28gbWFzdHVyYmllcmVuIFRhdWJzdHVtbWUgaW1tZXIgbnVyIG1pdCBkZXIgbGlua2VuIEhhbmQ/CgoKCgoKCgoKCgoKCgoKCgoKCgoKU2llIGJyYXVjaGVuIGRpZSByZWNodGUgSGFuZCB6dW0gU3RvZWhuZW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3VmZiAoQW50aGVhLCAgNS4gTm92IDIwMDQsIDE0OjQxOjEwKToKRGVjbGFuLCBkZXIgYnJhdmUgS3JhYmJlbm1hbm4sIHVuZCBLYXRlLCBkaWUgSHVtbWVycHJpbnplc3Npbiwgd2FyZW4Kd2FobnNpbm5pZyBpbiBlaW5hbmRlciB2ZXJsaWVidC4gVWViZXIgTW9uYXRlIGhpbndlZyBnZW5vc3NlbiBzaWUgaWhyZQp3dW5kZXJiYXJlIEJlemllaHVuZywgYmlzIEthdGUgZWluZXMgVGFnZXMgaW4gVHJhZW5lbiBhdWZnZWxvZXN0IHp1IERlY2xhbgprcmFiYmVsdGU6ICJXaXIga29lbm5lbiB1bnMgbmljaHQgbWVociB0cmVmZmVuISIKIldhcnVtPyE/IiBlbnRmdWhyIGVzIERlY2xhbi4gIlBhcGEgc2FndCwgZGFzcyBLcmFiYmVuIHp1IGdld29laG5saWNoIHNpbmQsIgpqYW1tZXJ0ZSBzaWUuICJFciBzYWd0LCBkYXNzIER1IGVpbmUgYmxvc3NlIEtyYWJiZSBiaXN0LCB1bmQgZWluZSBhcm1lIG5vY2gKZGF6dSwgdW5kIGRpZSBLcmFiYmVuIHNpbmQgZGllIG5pZWRyaWdzdGUgS2xhc3NlIGRlciBLcnVzdGVudGllcmUuLi4gdW5kIGRhc3MKa2VpbmUgVG9jaHRlciB2b24gaWhtIGplbWFuZGVuIGhlaXJhdGVuIHdpcmQsIGRlciBpbW1lciBudXIgc2VpdHdhZXJ0cwpsYWV1ZnQuIgoKRGVjbGFuIHdhciBhbSBCb2RlbiB6ZXJzdG9lcnQuIEVyIGtyYWJiZWx0ZSBzZWl0d2FlcnRzIGluIGRpZSBEdW5rZWxoZWl0IHVtCnNpY2ggaW4gZWluZW4gWnVzdGFuZCBnbWVpbmVyIG1lZXJpc2NoZXIgVmVyZ2Vzc2VuaGVpdCB6dSB0cmlua2VuLiBJbiBkaWVzZXIKTmFjaHQgd2FyIGF1Y2ggZGVyIGdyb3NzZSBIdW1tYmVyYmFsbC4KCkh1bW1lciBrYW1lbiB2b24gbmFoIHVuZCBmZXJuLCB0YW56dGVuIHVuZCB3YXJlbiBmcm9laGxpY2gsIGFiZXIgZGllCkh1bW1lcnByaW56ZXNzaW4gd29sbHRlIG5pY2h0IGRhcmFuIHRlaWxoYWJlbi4gU3RhdHQgZGVzc2VuIHpvZyBzaWUgZXMgdm9yLCBhbgpkZXIgU2VpdGUgaWhyZXMgVmF0ZXJzIHp1IHNpdHplbiwgbmljaHQgYW5zcHJlY2hiYXIuIFBsb2V0emxpY2ggd3VyZGVuIGRpZQpUdWVyZW4gYXVmZ2VzdG9zc2VuLCB1bmQgRGVjbGFuIGthbSBoZXJlaW4uIERpZSBIdW1tZXIgc3RvcHB0ZW4gbWl0dGVuIGltClRhbnosIGRpZSBQcmluemVzc2luIHNjaG5hcHB0ZSBuYWNoIEx1ZnQsIHVuZCBkZXIgS29lbmlnIHN0YW5kIHZvbiBzZWluZW0KVHJob24gYXVmLgoKTGFuZ3NhbSwgbXVlaHNhbSwgc2V0enRlIERlY2xhbiBkZXIgS3JhYmJlbm1hbm4gc2VpbmVuIFdlZyB1ZWJlciBkZW4gVGFuemJvZGVuCmZvcnQuLi4gdW5kIGFsbGUga29ubnRlbiBzZWhlbiwgZGFzcyBlciBuaWNodCBldHdhIHNlaXR3YWVydHMgbGllZiwgc29uZGVybgpGT1JXQUVSVFMsIGVpbiBLcmFiYmVuYmVpbiBuYWNoIGRlbSBhbmRlcmVuISBTY2hyaXR0IGZ1ZXIgU2Nocml0dCBzZXR6dGUgZXIKc2VpbmVuIFdlZyB6dW0gVGhyb24gZm9ydCwgYmlzIGVyIHNjaGxpZXNzbGljaCBkZW0gSHVtbWVya29lbmlnIGRpcmVrdCBpbiBkaWUKQXVnZW4gc2NoYXV0ZS4gRXMgZmllbCBlaW5lIHRvZWRsaWNoZSBTdGlsbGUgdWViZXIgZGVuIGdhbnplbiBSYXVtLCB1bmQKc2NobGllc3NsaWNoLCBlbmRsaWNoLCBzcHJhY2ggRGVjbGFuOiAiQm9haCwgYmluIGljaCBiZXNvZmZlbiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU3VmZiAoT2dvLCAgNS4gTm92IDIwMDQsIDE1OjU4OjI1KToKfiMhIHJuPUFudGhlYSBydD0xMDk5NjYyMDcwIHJnPXdpdHplCn4jISB0aWQ9MTA5OTY2MjA3MApOaWNodCBkaWUgUG9pbnRlIGltIFN1Ympla3Qgdm9yd2VnbmVobWVuLCB3b2JlaSBlcyBiZWkgZGllc2VyIFBvaW50ZQp6dWdlZ2ViZW5lcm1hc3NlbiBlZ2FsIGlzdC4gOykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBad2VpZmFjaC4uLiAoQWxib2luLCAgNS4gTm92IDIwMDQsIDE3OjMyOjA3KToKfiMhIHJuPVphcm5peWEgcnQ9MTA5OTY1NzYxMiByZz13aXR6ZQp+IyEgdGlkPTEwOTk2NTc2MTIKTGFuZ3NhbSBnbGF1YmUgaWNoIGF1Y2ggc2Nob24gZGFzIHdpciBhbHQgd2VyZGVuLCB2b3IgYWxsZW0gd2VubiBaYXJuaXlhCnVyYWx0ZSBXaXR6ZSBwb3N0ZXQuCkJUVzogV2FzIGlzdCB3ZW5uIGRlciBUYXVic3R1bW1lIExpbmtzaGFlbmRlciBpc3Q/CgpBbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU1dSIDM6IFBpc2EgUG9saXplaSAoQmFtYnVsa28sIDExLiBOb3YgMjAwNCwgMTI6MjM6MTMpOgpHZXJhZGUgYXVmIFNXUiAzIGdlaG9lcnQ6IERpZSBQaXNhIFBvbGl6ZWkKCkZyYWdlOiBXYXMgaXNzdCBtYW4genUgU3QuIE1hcnRpbj8KCkFudHdvcnQ6IERpZXNlIFNjaGVpYmxldHRlbj8KCkJhbWJ1bGtvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5lIHdpY2h0aWdlIEZyYWdlIChQaG9ib3MsIDEyLiBOb3YgMjAwNCwgMTg6Mjc6MzUpOgpFaW5lIHdpY2h0aWdlIEZyYWdlISEhCiAKRHUgd2lyc3QgZWluZW0ga2xlaW5lbiBUZXN0IHVudGVyem9nZW4uIEVyIGJlc3RlaHQgYXVzIG51ciBlaW5lciBGcmFnZSwgYWJlcgpkaWUgaXN0IHNlaHIsIHNlaHIgd2ljaHRpZyEhIEFudHdvcnRlIG5pY2h0IHp1IHNjaG5lbGwgb2RlciB1bnVlYmVybGVndCEgCiAgCkRlbmsgbmFjaCwgYmV2b3IgZHUgYW50d29ydGVzdC4gQW50d29ydGUgZWhybGljaCB1bmQgbGVybmUgZXR3YXMgdWViZXIgZGVpbmUKTW9yYWwuIEVzIGlzdCBlaW5lIGltYWdpbmFlcmUgU2l0dWF0aW9uLCBpbiBkZXIgZHUgZWluZSBFbnRzY2hlaWR1bmcgdHJlZmZlbgptdXNzdC4KIApEZW5rZSBkYXJhbiwgZGFzcyBkdSBlaW5lIHNwb250YW5lIEFudHdvcnQgZ2ViZW4gbXVzc3QgYWJlciBkaWVzZSBtdXNzCmVocmxpY2ggc2VpbiEhISAoU2Nyb2xsZSBkZW4gVGV4dCBsYW5nc2FtIG5hY2ggdW50ZW4sIGRhcyBpc3Qgd2ljaHRpZyBmdWVyCmRlbiBUZXN0KSAKICAKICAgCgoKCgoKCgoKCgoKCgoKCgoKCgogIAogICAKICAgIApEdSBiaXN0IGluIEZsb3JpZGEuLi4uCiAgCiAgIAogIAogICAKICAgIAouLi4uLi5pbiBNaWFtaSwgdW0gZ2VuYXUgenUgc2Vpbi4uLgogICAKICAgIAogICAgIAogICAKICAgIApEdSBiZWZpbmRlc3QgZGljaCBpbSBncm9lc3N0ZW4gQ2hhb3MgZWluZXIgVUViZXJzY2h3ZW1tdW5nIG5hY2gKZWluZW0gT3JrYW4uLi4KCgoKCgp1bmdsYXVibGljaGUgV2Fzc2VybWVuZ2VuLi4uCgoKCgoKRHUgYmlzdCBGb3RvcmVwb3J0ZXIgZnVlciBDTk4uCgoKCgoKLi4uLi4udW5kIGJpc3QgaW5taXR0ZW4gZGllc2VzIGZhbnRhc3Rpc2NoZW4gRGVzYXN0ZXJzLgoKCgoKCkRpZSBMYWdlIGlzdCBhbSBSYW5kZSBkZXIgSG9mZm51bmdzbG9zaWdrZWl0LgoKCgoKCkR1IHZlcnN1Y2hzdCBkaWUgZWluZHJ1Y2tzdm9sbHN0ZW4gQmlsZGVyIHp1IHNjaGllc3Nlbi4uLgogICAgICAgCiAgICAgIAogICAgICAgCiAgICAgIAp1bSBkaWNoIGhlcnVtIHNjaHdpbW1lbiBIYWV1c2VyIHdlZywgTWVuc2NoZW4gdmVyc2Nod2luZGVuLi4KICAgICAgICAgCgoKICAgICAgIApEaWUgS3JhZnQgZGVyIE5hdHVyIHd1ZXRldCB1bmJhcm1oZXJ6aWcgdm9sbGVyIEdld2FsdC4uLgoKICAgICAgICAKICAgICAgICAgCiAgICAgICAgCiAgICAgICAgIAouLi4uLi4udW5kIHJlaXNzdCBhbGxlcyBtaXQgc2ljaC4KCiAgICAgICAgICAKICAgICAgICAKICAgICAgICAgCiAgICAgICAgClBsb2V0emxpY2ggc2llaHN0IGR1IGVpbmVuIE1hbm4sIGRlciBlaW4gQWxscmFkZmFocnpldWcgbGVua3QuCgoKICAgICAgICAgIAogICAgICAgICAKRXIga2FlbXBmdCB2ZXJ6d2VpZmVsdCwgdW0gbmljaHQgdm9uIGRlbiBXYXNzZXItIHVuZCBTY2hsYW1tbWFzc2VuIAptaXRnZXJpc3NlbiB6dSB3ZXJkZW4uLi4KICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAKICAgICAgICAgIApEdSBuYWVoZXJzdCBkaWNoLi4uCgogICAgICAgICAKICAgICAgICAgIAogICAgICAgICAgIAogICAgICAgICAgCkVyIHNpZWh0IGlyZ2VuZHdpZSB3aWNodGlnIGF1cy4uLgoKICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAKICAgICAgICAgICAKLS4uZGEgZXJrZW5uc3QgZHUgaWhuOiAKICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgCiAgICAgICAgICAgCkVzIGlzdCBHZW9yZ2UgVy4gIEJ1c2ghISEKCiAgICAgICAgICAgIAogICAgICAgICAgICAgCiAgICAgICAgICAgCiAgICAgICAgICAgIApKZXR6dCBtZXJrc3QgZHUsIGRhc3MgZGllIHJlaXNzZW5kZSBGbHV0IGlobiBnbGVpY2ggaGlud2VnZmVnZW4gd2lyZC4uLi4KICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAKZW5kZ3VlbHRpZy4uLgogICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgIApEdSBoYXN0IHp3ZWkgTW9lZ2xpY2hrZWl0ZW46IElobiByZXR0ZW4gb2RlciBkYXMgQmlsZCBkZWluZXMgTGViZW5zIApzY2hpZXNzZW4hISEhCiAgICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgCklobSBkYXMgTGViZW4gcmV0dGVuIG9kZXIgZWluIEZvdG8gbWFjaGVuLCBkYXMgZGlyIGVpbmVuIFB1bGl0emVyLVByZWlzIAplaW5icmluZ3QhISEhCgogICAgICAgICAgICAgCiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAKICAgICAgICAgICAgICAKRWluIEZvdG8sIGRhcyBkZW4gVG9kIGVpbmVzIGRlciB3aWNodGlnc3RlbiBNYWVubmVyIGRlciBXZWx0IHplaWd0Li4uLgogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAKSmV0enQgZGllIEZyYWdlIChhbnR3b3J0ZSBlaHJsaWNoISk6CgogICAgICAgICAgICAgIAogICAgICAgICAgICAgICAKCgoKCgoKCgoKICAgICAgICAgICAgICAgIApNQVRUIG9kZXIgSE9DSEdMQU5aPz8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWluZSB3aWNodGlnZSBGcmFnZSAoRGFya2xvciwgMTIuIE5vdiAyMDA0LCAxOToyMDoyMik6Cn4jISBybj1QaG9ib3MgcnQ9MTEwMDI4MDQ1NSByZz13aXR6ZQp+IyEgdGlkPTExMDAyODA0NTUKTWF0dCAtIHNpZWh0IGVkbGVyIGF1cywgd2llIG1pciBlaW4gRm90b2dyYWYgbWFsIHZlcnNpY2hlcnRlLi4uIDspIAoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFaW5lIHdpY2h0aWdlIEZyYWdlIChNb3Jnb3RoLCAxMi4gTm92IDIwMDQsIDE5OjMzOjE0KToKfiMhIHJuPURhcmtsb3IgcnQ9MTEwMDI4MzYyMiByZz13aXR6ZQp+IyEgdGlkPTExMDAyODA0NTUKR2VuYXUsIGhvY2hnbGFueiBtdWVzc2VuIGRvY2ggbnVyIGRpZSBhbmRlcmVuIGZvdG9zIGhhYmVuLCBkYW1pdCBtYW4gc2llCmhpbnRlcmhlciB3aWVkZXIgYWJ3aXNjaGVuIGthbm4gOikKCk0qCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFaW5lIHdpY2h0aWdlIEZyYWdlIChMaWFyYSwgMTIuIE5vdiAyMDA0LCAxOTozNTo1Mik6Cn4jISBybj1Nb3Jnb3RoIHJ0PTExMDAyODQzOTQgcmc9d2l0emUKfiMhIHRpZD0xMTAwMjgwNDU1CkVzIGdpYnQgc2ljaGVybGljaCBnZW51ZyBLbGVyaWthbGUgaW4gZGVuIFN0YWF0ZW4sIGRpZSBlaW4gRm90byB2b24gaWhtIGdlbmF1CmZ1ZXIgZGllc2VuIFp3ZWNrIGJlbnV0emVuLiA7KSBBYmVyIGRhcyB3dWVyZGVuIHNpZSBuYXR1ZXJsaWNoIG5pZSB6dWdlYmVuIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRWluZSB3aWNodGlnZSBGcmFnZSAoR3JpbW1ib3JuLCAxMi4gTm92IDIwMDQsIDIzOjE4OjQxKToKfiMhIHJuPUxpYXJhIHJ0PTExMDAyODQ1NTIgcmc9d2l0emUKfiMhIHRpZD0xMTAwMjgwNDU1CkRpZSBGcmFnZSBpc3Qgdm9lbGxpZyBpcnJlbGV2YW50LiBGb3RvcyB3ZXJkZW4gYXVmICJaZWxsdWxvaWQiIChvZGVyCmhldXR6dXRhZ2UgZWhlciBkaWdpdGFsKSBnZW1hY2h0LiBEaWUgRW50c2NoZWlkdW5nIGZ1ZXIgZGllIFZlcmdyb2Vzc2VydW5nCmZhZWxsdCBlcnN0ZW5zIHNwYWV0ZXIsIHVuZCBpc3QgendlaXRlbnMgbmljaHQgZXhrbHVzaXYgLSBtYW4ga2FubiBpbW1lciBub2NoCndlaXRlcmUgVmVyZ3JvZXNzZXJ1bmdlbiBpbiBtYXR0IHVuZCBob2NoZ2xhbnogbWFjaGVuLiAKCkdkQQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRWluZSB3aWNodGlnZSBGcmFnZSAoQW50aGVhLCAxNS4gTm92IDIwMDQsIDEzOjQ2OjA5KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMTAwMjk3OTIxIHJnPXdpdHplCn4jISB0aWQ9MTEwMDI4MDQ1NQpEaWUgT3JpZ2luYWxhdXN3YWhsIHdhciBqYSBhdWNoIG1hbCAiU2Nod2FyendlaXNzIG9kZXIgRmFyYmUiLiBEYW1hbHMsIGFscyBlcwpub2NoIG5pY2h0IHVtIGRpZXNlbiBHV0IgZ2luZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEVpbmUgd2ljaHRpZ2UgRnJhZ2UgKE11YWRpYiwgMTUuIE5vdiAyMDA0LCAxMzo0Njo1Myk6Cn4jISBybj1BbnRoZWEgcnQ9MTEwMDUyMjc2OSByZz13aXR6ZQp+IyEgdGlkPTExMDAyODA0NTUKYWNoc28KbmEgZGFubgoKaGFoaGFoYWhhaHVlcmdzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW4gV2VpaG5hY2h0c2xpZWQgKEdhYmksIDIwLiBEZXogMjAwNCwgMTc6NDY6MjUpOgpTdHJpbmctVGFuZ2EsIHN0cmluZ2VsaW5nZWxpbmcgLSBTdHJpbmctVGFuZ2Egc3RyaW5nZWxpbmdlLWxpbmcuLi4gCgpFbmdlciBhbHMgZWluIEhvZXNjaGVuLCAKc2l0enQgZXIgdWViZXJtIERvZXNjaGVuLiAKU2NodWV0enQgZGFiZWkgZGllIFJpdHplLCAKdm9yIGRlciBQaW1tZWwtU3BpdHplIAoKU3RyaW5nLVRhbmdhLCBzdHJpbmdlbGluZ2VsaW5nIC0gU3RyaW5nLVRhbmdhLCBzdHJpbmcgCgpNYWVubmVyIG1hY2h0IGVyIHNlbGlnLCAKd2VpbCBkZXIgU3RvZmYgd28gd2VuaWcuIApEb2NoIGluIGthbHRlbiBXaW50ZXJuLCAKZnJpZXJ0J3MgRGljaCBkYW5uIGFtIEhpbnRlcm4gCgpTdHJpbmctVGFuZ2EsIHN0cmluZ2VsaW5nZWxpbmcgLSBTdHJpbmctVGFuZ2EsIHN0cmluZyAKCkRvY2ggYmVpIHVucyBvaCBsZWlkZXIsIApCb2JiZXMgd2VyZCcgYWxzIGJyZWl0ZXIuIApCcmF1Y2hlbiAnbmUgZmFtb3NlIApHcm9zc3JhdW11bnRlcmhvc2UgLi4uIAoKU3RyaW5nLVRhbmdhLCBzdHJpbmdlbGluZ2VsaW5nIC0gU3RyaW5nLVRhbmdhLCBzdHJpbmcgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRWluIFdlaWhuYWNodHNsaWVkIChEYXJrbG9yLCAyMC4gRGV6IDIwMDQsIDE5OjEyOjI4KToKfiMhIHJuPUdhYmkgcnQ9MTEwMzU2MTE4NSByZz13aXR6ZQp+IyEgdGlkPTExMDM1NjExODUKV2FzIHNpbmQgQm9iYmVzPwoKRGFya2xvciAodW53aXNzZW5kKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFaW4gV2VpaG5hY2h0c2xpZWQgKEtyaW1hcmlvbCwgMjAuIERleiAyMDA0LCAxOTo0OTo1OSk6Cn4jISBybj1EYXJrbG9yIHJ0PTExMDM1NjYzNDggcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1ClNpbmQgZGFzIG5pY2h0IGRpZSBQb2xpemlzdGVuIGluIEVuZ2xhbmQgPwoKS3JpbWFyaW9sIChoZWxmZW4gd29sbGVuZCkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRWluIFdlaWhuYWNodHNsaWVkIChLZWxseWJ1bmR5LCAyMC4gRGV6IDIwMDQsIDIxOjAwOjAxKToKfiMhIHJuPURhcmtsb3IgcnQ9MTEwMzU2NjM0OCByZz13aXR6ZQp+IyEgdGlkPTExMDM1NjExODUKRGEgd28gaWNoIGhlcmtvbW1lIGhlaXNzdCBkYXMgYXVjaCAnTW9ycycuCktlbGx5LCBoaWxmcmVpY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVpbiBXZWlobmFjaHRzbGllZCAoTWFoYXJldCwgMjAuIERleiAyMDA0LCAyMTowMDoyOSk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTExMDM1NzI4MDEgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1CkhtLCB1bmQgd2llIGhlaXNzdCBlcyBkYSwgd28gaWNoIGhlcmtvbW1lPyBNb3JzIHNhZ3QgbWlyIGF1Y2ggbmljaHRzLgogCgpNYWhhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBFaW4gV2VpaG5hY2h0c2xpZWQgKEFtYXJ5bGxpcywgMjAuIERleiAyMDA0LCAyMTowMjo1MSk6Cn4jISBybj1NYWhhcmV0IHJ0PTExMDM1NzI4Mjkgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1CkFsc28gaGllciBzYWd0IG1hbiBhdWNoICJGb3R0IiBkYXp1Li4uIDopCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBFaW4gV2VpaG5hY2h0c2xpZWQgKEJvaW5nLCAyMS4gRGV6IDIwMDQsIDA5OjE5OjExKToKfiMhIHJuPUFtYXJ5bGxpcyBydD0xMTAzNTcyOTcxIHJnPXdpdHplCn4jISB0aWQ9MTEwMzU2MTE4NQpJY2ggd2Vpc3MsIHdhcyBlcyBpc3QsIGFiZXIgaWNoIHdpbGwgZGVuIEVya2xhZXJiYWVyIG5pY2h0IGhhYmVuLgogIEJvaW5nCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBFaW4gV2VpaG5hY2h0c2xpZWQgKE1vbnRhbnVzLCAyMS4gRGV6IDIwMDQsIDA5OjU2OjUzKToKfiMhIHJuPUJvaW5nIHJ0PTExMDM2MTcxNTEgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1CkZlaWdsaW5nIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogRWluIFdlaWhuYWNodHNsaWVkIChab29rLCAyMS4gRGV6IDIwMDQsIDA5OjU3OjI5KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTExMDM2MTk0MTMgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1Ck1pciBnZWh0IGVzIHdpZSBCb2luZy4KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBFaW4gV2VpaG5hY2h0c2xpZWQgKE1vbnRhbnVzLCAyMS4gRGV6IDIwMDQsIDA5OjU4OjExKToKfiMhIHJuPVpvb2sgcnQ9MTEwMzYxOTQ0OSByZz13aXR6ZQp+IyEgdGlkPTExMDM1NjExODUKSWNoIHdlcmQgZXVjaCBzY2hvbiBub2NoIGVyd2lzY2hlbi4gVW5kIGRhbm4gc2V0enQgZXMsIHJhdHogZmF0eiwgZGVuCkVya2xhZXJiYWVyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV45OiBFaW4gV2VpaG5hY2h0c2xpZWQgKE1pZXplLCAyMS4gRGV6IDIwMDQsIDEwOjAwOjA3KToKfiMhIHJuPU1vbnRhbnVzIHJ0PTExMDM2MTk0OTEgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1Ck5hamEsIGF1ZiBIb2NoZGV1dHNjaCBrb2VubnRlIG1hbiBkYXMgR2VzdWNodGUgbWl0IEdlc2Flc3MgYmV0aXRlbG4uCgpNaWV6ZSAtIGhhdCB3YXMgbWl0IFNwcmFjaGUgenUgdHVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWlobmFjaHRzbWFubiB2b3IgR2VyaWNodCAoRGVlcGJsdWUsIDIxLiBEZXogMjAwNCwgMTA6MzI6MDQpOgpMaWViZXIgZ3V0ZXIgV2VpaG5hY2h0c21hbm4sCmpldHp0IGlzdCdzIHNvd2VpdCwgamV0enQgYmlzdCBkdSBkcmFuLgpNZWluIE5hbWUgZGVyIGlzdCBTeW5kaWt1cywKZGllIEZvbGdlbiBzaW5kIHNjaG9uIGJld3Vzc3Q/Ck1laW4gQ2hlZiBpc3QgbmFlbWxpY2ggUmVjaHRzYW53YWx0LgpEZXIga2xhZ3QgZGljaCBhbiwgZGVyIHN0ZWxsdCBkaWNoIGthbHQuClNjaG9uIHNlaXQgdmllbGVuIGh1bmRlcnQgSmFocmVuLApiaXN0IGR1IG51biBkdXJjaHMgTGFuZCBnZWZhaHJlbiwKb2huZSBOdW1tZXJuc2NoaWxkIHVuZCBMaWNodC4KQXVjaCBUdWVWIHVuZCBBU1UgaGFzdCBkdSBuaWNodC4KRGVpbiBTY2hsaXR0ZW4gZWlnbmV0IHNpY2ggbnVyIHNjaHdlciwKenVyIFRlaWxuYWhtZSBhbSBMdWZ0dmVya2Voci4KRXMgd2lyZCB2b3IgR2VyaWNodCB6dSBrbGFlcmVuIHNlaW46CkJlc2l0enQgZHUgJ25lbiBQaWxvdGVuc2NoZWluPwoKRHVyY2ggZGVuIEthbWluIGlucyBIYXVzIHp1IGtvbW1lbiwKaXN0IHJlaW4gcmVjaHRsaWNoIHN0cmVuZyBnZW5vbW1lbgpIYXVzZnJpZWRlbnNicnVjaCAtIEVpbmJydWNoIHNvZ2FyLgpEYXMgZ2lidCBHZWZhZW5nbmlzLCBkYXMgaXN0IGtsYXIuClVuZCBzdGllaGxzdCBkdSBuaWNodCBiZWkgZGVuIEJlc3VjaGVuLAp2b24gZnJlbWRlbiBUZWxsZXJuIE9ic3QgdW5kIEt1Y2hlbj8KRGFzIHdpcmQgYmVzdHJhZnQsIGRhcyBtdXNzIG1hbiBhaG5kZW4uCkRpZSBQb2xpemVpIGxhZXNzdCBuYWNoIGRpciBmYWhuZGVuLgpFcyBpc3QgYXVjaCBhbGxnZW1laW4gYmVrYW5udCwKZHUga29tbXN0IGdhciBuaWNodCBhdXMgZGllc2VtIExhbmQuCldpZSBtYW4gc28gaG9lcnQsIHN0ZWh0IHdvaGwgZGVpbiBIYXVzCmFtIE5vcmRwb2wsIGFsc28gc2llaHQgZXMgYXVzLAphbHMga2FlbW1zdCBkdSBuaWNodCBhdXMgZGVyIEVVLgpEYXMga29tbXQgenVyIEtsYWdlc2NocmlmdCBkYXp1IQpIaWVyIGtvbW10IGRhcyBEZXV0c2NoZSBSZWNodCB6dW0gVHJhZ2VuLgpFaW4gamVkZXIgUmljaHRlciB3aXJkIHNpY2ggZnJhZ2VuLApvYiBkZWluZSBBcmJlaXQgcmVjaHRlbnMgaXN0LAp3ZWlsIGR1IG9obmUgRXJsYXVibmlzIGJpc3QuCgpadWRlbSBoYWJlbiB3aXIgZmVzdGdlc3RlbGx0LApkYXMgRGVpbmUgS2xlaWR1bmcgcm90IGVudGhhZWx0LgpNYWdlbnRhIHp1bSB2ZXJ3ZWNoc2VsbiBhZWhubGljaCwKZ2Vob2VydHMgJ25lbSBNYW5kYW50ZW4gbmFlbWxpY2guCmRlciBmaW5kZXQgZGFzIHdvaGwgbmljaHQgc28gZmVpbiwKZGEgd2lyZCB2aWVsIEdlbGQgenUgemFobGVuIHNlaW4hCkRlciBFbmdlbCwgZGVyIGRpY2ggc3RldHMgYmVnbGVpdGV0LAppc3QgbWluZGVyamFlaHJpZyB1bmQgYmVyZWl0ZXQKdW5zIGRhaGVyIHdpcmtsaWNoIEtvcGZ6ZXJicmVjaGVuLgpEYXMgSnVnZW5kYW10IHdpcmQgbWl0IGRpciBzcHJlY2hlbiEKSmV0enQga29tbWVuIHdpciB6dSBlcm5zdGVuIFNhY2hlbi4KV2lyIGZpbmRlbiBlcyBnYXIgbmljaHQgenVtIExhY2hlbiwKZGFzcyBLaW5kZXJuIGR1IG1pdCBTY2hsYWVnZSBkcm9oc3QuCmRhcnVlYmVyIGlzdCBtZWluIENoZWYgZXJib3N0LgpOb2V0aWd1bmcgaGVpc3N0IGRhcyBWZXJnZWhlbgp1bmQgd2lyZCBiZXN0cmFmdCwgZGFzIHdpcnN0IGR1IHNlaGVuLAptaXQgRnJlaWhlaXRzZW50enVnIHZvbiBlaW4gcGFhciBKYWhyZW4uCkF1cyBpc3QncyBiYWxkIG1pdCBkZW0gU2NobGl0dGVuZmFocmVuLgpEYXMgSGFuZHdlcmsgaXN0IGRpciBiYWxkIGdlbGVndCwKZXMgc2VpIGRlbm4gZGllc2VyIEJyaWVmIGJld2VndApkaWNoLCBkaWUgS2FuemxlaSByZWljaCB6dSBiZXNjaGVua2VuCmRhbm4ga29lbm4gd2lyIGRhcyBtYWwgdWViZXJkZW5rZW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VpaG5hY2h0c21hbm4gdm9yIEdlcmljaHQgKE9nbywgMjEuIERleiAyMDA0LCAxODoxMDoyMSk6Cn4jISBybj1EZWVwYmx1ZSBydD0xMTAzNjIxNTI0IHJnPXdpdHplCn4jISB0aWQ9MTEwMzYyMTUyNApJc3QgamEgZ2FueiBuZXR0LCBhYmVyIGRpZSBGYXJiZSBkZXMgV2VpaG5hY2h0c21hbm4gaXN0IGphIGJla2FubnRsaWNoIGRlcgpGYXJiZSBkZXMgS29uemVybnMgVGhlIENvY2FDb2xhIENvbXBhbnkgbmFjaGVtcGZ1bmRlbi4gV2llIG1hbiBhdWYgTWFnZW50YQprb21tdCwga2FubiBpY2ggbWlyIG51ciBwYXJ0aWVsbGVyIEZhcmJlbmJsaW5kaGVpdCBlcmtsYWVyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlaWhuYWNodHNtYW5uIHZvciBHZXJpY2h0IChNYWhhcmV0LCAyMS4gRGV6IDIwMDQsIDE4OjUwOjU2KToKfiMhIHJuPU9nbyBydD0xMTAzNjQ5MDIxIHJnPXdpdHplCn4jISB0aWQ9MTEwMzYyMTUyNApVbmQgZGVyIFJlc3QgaXN0IGF1Y2gganVyaXN0aXNjaGVyIFVuc2lubi4KCkh1bW5pIGRpY2h0ZXQgYmVzc2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbiBXZWlobmFjaHRzbGllZCAoUGhvYm9zLCAyMS4gRGV6IDIwMDQsIDIxOjA3OjI2KToKfiMhIHJuPUdhYmkgcnQ9MTEwMzU2MTE4NSByZz13aXR6ZQp+IyEgdGlkPTExMDM1NjExODUKV293LCBiZXJ1aGlnZW5kIHp1IHNlaGVuLCBkYXNzIGRlciBOYWNod3VjaHMgaW0gTGFuZCBkZXIgRGljaHRlciB1bmQgCkRlbmtlciBuaWNodHMgYW4gS29lbm5lbiBlaW5nZWJ1ZXNzdCBoYXQuIE1pdCBkaWVzZW0gZmVpbmVuIFdlcmsga2FubiAKc2ljaCB6LkIuIGVpbiBXaWxsaWFtIFNoYWtlc3BlYXJlIG5pY2h0IG1lc3NlbiwgZGVyIGtvbm50ZSBqYSBuaWNodCAKbWFsIHJlaW1lbiwgd2FlaHJlbmQgaGllciBhdWYgQW5oaWViIGVpbmUgUmVpbXF1b3RlIHZvbiB6d2VpIERyaXR0ZWxuIAplcnJlaWNodCB3dXJkZS4KCgpQaG9ib3MgIC0gIEJld29obmVyIGRlciBDb29sLVRvdXItSGF1cHRzdGFkdCAyMDEwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEVpbiBXZWlobmFjaHRzbGllZCAoTW9udGFudXMsIDIxLiBEZXogMjAwNCwgMjM6MTI6NDcpOgp+IyEgcm49UGhvYm9zIHJ0PTExMDM2NTk2NDYgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1CkFsc28gS3VsdHVyLUhhdXB0c3RhZHQgMjAxMCB3b2xsZW4gbm9jaCBjaXJjYSAyMzQgU3RhZWR0ZSBidW5kZXN3ZWl0IHdlcmRlbi4KQWxzbyBtYWwgaGFsYmxhbmcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBFaW4gV2VpaG5hY2h0c2xpZWQgKFBob2JvcywgMjEuIERleiAyMDA0LCAyMzoyMDowNSk6Cn4jISBybj1Nb250YW51cyBydD0xMTAzNjY3MTY3IHJnPXdpdHplCn4jISB0aWQ9MTEwMzU2MTE4NQpLZWluZSBBbmdzdCwgREVSIFRlaWwgbWVpbmVzIEFydGlrZWxzIHdhciBpcm9uaXNjaCBnZW1laW50IDspCgpQaG9ib3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEVpbiBXZWlobmFjaHRzbGllZCAoQm9pbmcsIDIyLiBEZXogMjAwNCwgMDg6NDE6MzIpOgp+IyEgcm49UGhvYm9zIHJ0PTExMDM2Njc2MDUgcmc9d2l0emUKfiMhIHRpZD0xMTAzNTYxMTg1CkFjaCBzbywgc29uc3QgaGFldHRlIGljaCBEaWNoIGdsYXR0IHp1IHVuc2VyZW0gbmFlY2hzdGVuIFN0YW1tdGlzY2gKZWluZ2VsYWRlbiAuLi4gOikKICBCb2luZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBhbHQgYWJlciBuZXR0IDspIChFcmVzY2hpLCAyMy4gRGV6IDIwMDQsIDAxOjM2OjI2KToKRWluZSBNdXR0ZXIgaGF0dGUgZHJlaSBUb2VjaHRlciB1bmQgYmVpIGlocmVuIEhvY2h6ZWl0ZW4gZXJzdWNodGUgc2llIGRpZQpkcmVpLCBzaWUgbmFjaCBkZXIgSG9jaHplaXRzbmFjaHQgYW56dXJ1ZmVuIHVuZCBpaHIgZGlza3JldCBtaXR6dXRlaWxlbiwgd2llCnNpY2ggaWhyZSBNYWVubmVyIGJlaW0gU2V4IGRlbm4gYW5zdGVsbGVuLiBEaWUgZXJzdGUgc2FndGU6ICJFcyB3YXIgd2llCk1heHdlbGwgS2FmZmVlLiIgRGllIE11dHRlciB3YXIgZXR3YXMgdmVyd2lycnQsIGJpcyBzaWUgZWluZSBNYXh3ZWxsIEthZmZlZQpXZXJidW5nIHNhaCwgbWl0IGRlbSBTcHJ1Y2g6ICJadWZyaWVkZW5oZWl0IGJpcyB6dW0gbGV0enRlbiBUcm9wZmVuLi4uIiBEYSB3YXIKZGllIE11dHRlciB6dWZyaWVkZW4uIERhbm4gbWVsZGV0ZSBzaWNoIGRpZSB6d2VpdGUgVG9jaHRlci4gQmVpIGlocmVtIEFucnVmCmZsdWVzdGVydGUgc2llIG51cjogIlJvdGhtYW5zIi4gQWxzbyBzdWNodGUgZGllIE11dHRlciBuYWNoIGVpbmVyIFJvdGhtYW5zCkFubm9uY2UuIFNpZSBmYW5kIGVpbmUgbWl0IGRlbSBXZXJiZXNwcnVjaDogIkxpdmUgTGlmZSBLaW5nIFNpemUuLi4iIFVuZCBkaWUKTXV0dGVyIHdhciBhYmVybWFscyB6dWZyaWVkZW4uIFNjaGx1c3NlbmRsaWNoIGhlaXJhdGV0ZSBhdWNoIGRpZSBkcml0dGUgaWhyZXIKVG9lY2h0ZXIuIE5hY2ggZWluZXIgV29jaGUgcmllZiBzaWUgYW4gdW5kIG11cm1lbHRlIGJsb3NzOiAiQnJpdGlzaApBaXJ3YXlzLi4uIiBEaWUgTXV0dGVyIHNhaCBhbGxlIElsbHVzdHJpZXJ0ZW4gZHVyY2ggdW5kIGZhbmQgZGFubiBlbmRsaWNoIGVpbmUKQW56ZWlnZSBkZXIgRmx1Z2xpbmllLiBBbHMgc2llIGRlbiBTcHJ1Y2ggbGFzLCBzY2hyaWUgc2llIGJsb3NzOiAiT2gsIG1laW4KR290dCEhISIgIlZJRVJNQUwgVEFlR0xJQ0ggLSBTSUVCRU4gVEFHRSBESUUgV09DSEUgLSBCRUlERSBSSUNIVFVOR0VOICEhISIgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNQUNITyBNSUNSTyAoQSB0YWxlIG9mIHR3byBkcml2ZXMpIChHbG9pbnNvbiwgIDUuIEphbiAyMDA1LCAxMzowNzoyOCk6Ck1pY3JvIHdhcyBhIHJlYWwgdGltZSBvcGVyYXRvciBhbmQgZGVkaWNhdGVkIG11bHRpLXVzZXIuIEhpcyBicm9hZC1iYW5kCnByb3RvY29sIG1hZGUgaXQgZWFzeSBmb3IgaGltIHRvIGludGVyZmFjZSB3aXRoIG51bWVyb3VzIGlucHV0L291dHB1dCBkZXZpY2VzLApldmVuIGlmIGl0IG1lYW50IHRpbWUtc2hhcmluZy4KCk9uZSBldmVuaW5nIGhlIGFycml2ZWQgaG9tZSBqdXN0IGFzIHRoZSBzdW4gd2FzIGNyYXNoaW5nLiBIZSBoYWQgcGFya2VkIGhpcwpNb3Rvcm9sYSA2ODA0MCBpbiB0aGUgbWFpbiBkcml2ZSAoaGUgaGFkIG1pc3NlZCB0aGUgUy0xMDAgYnVzIHRoYXQgbW9ybmluZyksCndoZW4gaGUgbm90aWNlZCBhbiBlbGVnYW50IHBpZWNlIG9mIGxpdmV3YXJlIGFkbWlyaW5nIHRoZSBkYWlzeSB3aGVlbHMgaW4gaGlzCmdhcmRlbi4gSGUgdGhvdWdodCB0byBoaW1zZWxmLCAic2hlIGxvb2tzIHVzZXIgZnJpZW5kbHkuIEknbGwgc2VlIGlmIHNoZSdkCmxpa2UgYW4gdXBkYXRlIHRvbmlnaHQuIgoKTWluaSB3YXMgaGVyIG5hbWUsIGFuZCBzaGUgd2FzIGRlbGlnaHRmdWxseSBlbmdpbmVlcmVkIHdpdGggZXllcyBsaWtlIENvYm9sCmFuZCBhIHByaW1lIG1haW5mcmFtZSBhcmNoaXRlY3R1cmUgdGhhdCBzZXQgTWljcm8ncyBwZXJpcGhlcmFscyBuZXR3b3JraW5nIGFsbApvdmVyIHRoZSBwbGFjZS4KCkhlIGJyb3dzZWQgb3ZlciB0byBoZXIgY2FzdWFsbHksIGFkbWlyaW5nIHRoZSBwb3dlciBvZiBoZXIgdHdpbiwgMzItYml0CmZsb2F0aW5nIHBvaW50IHByb2Nlc3NvcnMgYW5kIGlucXVpcmluZyAiaG93IGFyZSB5b3UgSG9uZXl3ZWxsPyIgIlllcywgSSBhbQp3ZWxsIiwgc2hlIHJlc3BvbmRlZCwgYmF0dGluZyBoZXIgb3B0aWNhbCBmaWJlcnMgZW5nYWdpbmdseSBhbmQgc21vb3RoaW5nIGhlcgpjb25zb2xlIG92ZXIgaGVyIGN1cnZpbGluZWFyIGZ1bmN0aW9ucy4KCk1pY3JvIHNldHRsZWQgZm9yIGEgc3RyYWlnaHQgbGluZSBhcHByb3hpbWF0aW9uLiAiSSdtIHN0YW5kLWFsb25lIHRvbmlnaHQiLCBoZQpzYWlkLCAiaG93IGFib3V0IGNvbXB1dGluZyBhIHZlY3RvciB0byBteSBiYXNlIGFkZHJlc3M/IEknbGwgb3V0cHV0IGEgYnl0ZSB0bwpuaWJibGUsIGFuZCBtYXliZSB3ZSBjb3VsZCBnZXQgb2Zmc2V0IGxhdGVyIG9uPyIuCgpNaW5pIHJhbiBhIHByaW9yaXR5IHByb2Nlc3MgZm9yIDIuNiBtaWxpc2Vjb25kcyB0aGVuIHRyYW5zbWl0dGVkIDBLLCAiSSd2ZQpiZWVuIGR1bXBlZCBteXNlbGYgcmVjZW50bHksIGFuZCBhIG5ldyBwYWdlIGlzIGp1c3Qgd2hhdCBJIG5lZWQgdG8gcmVmcmVzaCBteQpkaXNrcy4gSSdsbCBwYXJrIG15IG1hY2hpbmUgY3ljbGUgaW4geW91ciBiYWNrZ3JvdW5kIGFuZCBtZWV0IHlvdSBpbnNpZGUuIiBTaGUKd2Fsa2VkIG9mZiwgbGVhdmluZyBNaWNybyBhZG1pcmluZyBoZXIgc29sZW5vaWRzIGFuZCB0aGlua2luZywgIldvdywgd2hhdCBhCmdsb2JhbCB2YXJpYWJsZSwgSSB3b25kZXIgaWYgc2hlJ2QgbGlrZSBteSBmaXJtd2FyZT8iCgpUaGV5IHNhdCBkb3duIGF0IHRoZSBwcm9jZXNzIHRhYmxlIHRvIGEgdG9wIG9mIGZvcm0gZmVlZCBvZiBmaWNoZSBhbmQgY2hpcHMKYW5kIGEgYnVja2V0IG9mIGJhdWRvdC4gTWluaSB3YXMgaW4gYSBjb252ZXJzYXRpb25hbCBtb2RlIGFuZCBleHBhbmRlZCBvbgphbWJpZ3VvdXMgYXJndW1lbnRzIHdoaWxlIE1pY3JvIGdhdmUgb2NjYXNpb25hbCBhY2tub3dsZWRnZW1lbnRzLiBBbHRob3VnaCwgaW4KcmVhbGl0eSwgaGUgd2FzIGFuYWx5emluZyB0aGUgc2hvcnRlc3QgYW5kIGxlYXN0IGNyaXRpY2FsIHBhdGggdG8gaGVyIGVudHJ5CnBvaW50LiBIZSBmaW5hbGx5IHNldHRsZWQgb24gdGhlIG9sZCAnd291bGQgeW91IGxpa2UgdG8gc2VlIG15IGJlbmNobWFyawpyb3V0aW5nPycgYnV0IE1pbmkgd2FzIGFnYWluIG9uZSBzdGVwIGFoZWFkLgoKU3VkZGVubHkgc2hlIHdhcyB1cCBhbmQgc3RyaXBwaW5nIG9mZiBoZXIgcGFyaXR5IGJpdHMgdG8gcmV2ZWFsIHRoZSBmdWxsCmZ1bmN0aW9uYWxpdHkgb2YgaGVyIG9wZXJhdGluZyBzeXN0ZW0gc29mdHdhcmUuICJMZXQncyBnZXQgZG93biB0byBCQVNJQywgeW91ClJBTSIsIHNoZSBzYWlkLiBNaWNybyB3YXMgbG9hZGVkIGJ5IHRoaXMgc3RhZ2UsIGJ1dCBoaXMgaGFyZHdhcmUgcG9saWNpbmcKbW9kdWxlIGhhZCBhIHByb2Nlc3NvciBvZiBpdCdzIG93biBhbmQgd2FzIGluIGRhbmdlciBvZiBvdmVyZmxvd2luZyBpdHMgb3V0cHV0CmJ1ZmZlciwgYSBoYW5nLXVwIHRoYXQgTWljcm8gaGFkIGNvbnN1bHRlZCBoaXMgc3lzdGVtcyBhbmFseXN0IGFib3V0LiAiQ29yZSIsCndhcyBhbGwgaGUgY291bGQgc2F5LCBhcyBzaGUgcHJlcGFyZWQgdG8gbG9nIGhpbSBvZmYuCgpNaWNybyBzb29uIHJlY292ZXJlZCwgaG93ZXZlciwgd2hlbiBNaW5pIHdlbnQgZG93biBvbiBoaXMgREVDIGFuZCBvcGVuZWQgaGVyCmRpdmlkZSBmaWxlcyB0byByZXZlYWwgaGVyIGRhdGEgc2V0IHJlYWR5LiBIZSBhY2Nlc3NlZCBoaXMgZnVsbHkgcGFja2VkIHJvb3QKZGV2aWNlIGFuZCB3YXMganVzdCBhYm91dCB0byBzdGFydCBwdXNoaW5nIGludG8gaGVyIENQVSBzdGFjaywgd2hlbiBzaGUKYXR0ZW1wdGVkIGFuIGVzY2FwZSBzZXF1ZW5jZS4KCiJObywgTm8hIiBzaGUgY3JpZWQsICJ5b3UncmUgbm90IHNoaWVsZGVkIi4KCiJSZXNldCwgYmFieSIsIGhlIHJlcGxpZXMsICJJJ3ZlIGJlZW4gZGVidWdnZWQiLgoKIkJ1dCBJIGhhdmVuJ3QgZ290IG15IGN1cnJlbnQgbG9vcCBlbmFibGVkLCBhbmQgSSBjYW4ndCBzdXBwb3J0IGNoaWxkCnByb2Nlc3NlcyIsIHNoZSBwcm90ZXN0ZWQuCgoiRG9uJ3QgcnVuIGF3YXkiLCBoZSBzYWlkLCAiSSdsbCBnZW5lcmF0ZSBhbiBpbnRlcnJ1cHQiLgoKIk5vIHRoYXQncyB0b28gZXJyb3IgcHJvbmUsIGFuZCBJIGNhbid0IGFib3J0IGJlY2F1c2Ugb2YgbXkgZGVzaWduCnBoaWxvc29waHkiLgoKTWljcm8gd2FzIGxvY2tlZCBpbiBieSB0aGlzIHN0YWdlIHRob3VnaCwgYW5kIGNvdWxkIG5vdCBiZSB0dXJuZWQgb2ZmLiBCdXQKTWluaSBzb29uIHN0b3BwZWQgaGlzIHRyYXNoaW5nIGJ5IGludHJvZHVjaW5nIGEgdm9sdGFnZSBzcGlrZSBpbnRvIGhpcyBtYWluCnN1cHBseSwgd2hlcmV1cG9uIGhlIGZlbGwgb3ZlciB3aXRoIGEgaGVhZCBjcmFzaCBhbmQgd2VudCB0byBzbGVlcC4KCiJDb21wdXRlcnMiLCBzaGUgdGhvdWdodCBhcyBzaGUgY29tcGlsZWQgdG8gaGVyc2VsZiwgImFsbCB0aGV5IGV2ZXIgdGhpbmsgb2YKaXMgaGV4Li4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRoZSBTZXggTGlmZSBvZiBhbiBFbGVjdHJvbiAoR2xvaW5zb24sICA1LiBKYW4gMjAwNSwgMTM6MDg6MjQpOgpPbmUgbmlnaHQgd2hlbiBoaXMgY2hhcmdlIHdhcyBwcmV0dHkgaGlnaCwgTWljcm8gRmFyYWQgZGVjaWRlZCB0byB0cnkgYW5kIGdldAphIGN1dGUgbGl0dGxlIGpvdWxlIHRvIGxldCBoaW0gZGlzY2hhcmdlLiBIZSBwaWNrZWQgdXAgTWlsbGllIEFtcCBhbmQgdG9vayBoZXIKZm9yIGEgcmlkZSBvbiBoaXMgbWVnYWN5Y2xlLiBUaGV5IHJvZGUgYWNyb3NzIFdoZWF0c3RvbmUgQnJpZGdlIGFyb3VuZCBieSB0aGUKc2luZSB3YXZlIGFuZCBzdG9wcGVkIGluIGEgbWFnbmV0aWMgZmllbGQgYnkgYSBmbG93aW5nIGN1cnJlbnQuIE1pY3JvIEZhcmFkLAphdHRyYWN0ZWQgYnkgdGhlIGNoYXJhY3RlcmlzdGljIGN1cnZlcyBvZiBNaWxsaWUsIHNvb24gaGFkIGhpcyByZXNpc3RhbmNlIGF0IGEKbWluaW11bSwgYW5kIGhpcyBmaWVsZCBmdWxseSBleGNpdGVkLiBIZSBsYWlkIGhlciBvbiB0aGUgZ3JvdW5kIHBvdGVudGlhbCwKcmFpc2VkIGhlciBmcmVxdWVuY3ksIGxvd2VyZWQgaGVyIGNhcGFjaXRhbmNlLCBhbmQgcHVsbGVkIG91dCBoaXMgaGlnaCB2b2x0YWdlCnByb2JlLiBIZSBpbnNlcnRlZCBpdCBpbnRvIGhlciBzb2NrZXQsIGNvbm5lY3RpbmcgdGhlbSBpbiBzZXJpZXMsIGFuZCBiZWdhbiB0bwpzaG9ydCBjaXJjdWl0IGhlciBzaHVudC4gSG93ZXZlciwgaGUgZm9yZ290IG9uZSBiYXNpYyBydWxlOiBuZXZlciBmbHV4IHdpdGhvdXQKYSB3ZWJlciEhCgpGdWxseSBleGNpdGVkLCBNaWxsaWUgQW1wIHNhaWQsICJNaG8sIE1obywgZ2l2ZSBtZSBNaG8gISIgV2l0aCBoaXMgdHViZQpvcGVyYXRpbmcgYXQgbWF4aW11bSBwZWFrIGFuZCBoZXIgY29pbCB2aWJyYXRpbmcgZnJvbSB0aGUgY3VycmVudCBmbG93LCBzaGUKc29vbiByZWFjaGVkIGhlciBicmVha2Rvd24gdm9sdGFnZS4gVGhlIGV4Y2VzcyBjdXJyZW50IGZsb3cgaGFkIGdvdHRlbiBoZXIgc28KaG90IHRoYXQgTWljcm8gRmFyYWQgd2FzIHJhcGlkbHkgZGlzY2hhcmdlZCBhbmQgZHJhaW5lZCBvZiBldmVyeSBlbGVjdHJvbi4KClRoZXkgZmx1eGVkIGFsbCBuaWdodCwgdHJ5aW5nIHZhcmlvdXMgY29ubmVjdGlvbnMgYW5kIHNvY2tldHMgdW50aWwgaGlzIGJhcgptYWduZXQgaGFkIGxvc3QgYWxsIG9mIGl0cyBmaWVsZCBzdHJlbmdodC4gQWZ0ZXJ3YXJkcywgTWlsbGllIEFtcCB0cmllZCBzZWxmCmluZHVjdGlvbiwgYW5kIGRhbWFnZWQgaGVyIHNvbGVub2lkLiBXaXRoIGhpcyBiYXR0ZXJ5IGZ1bGx5IGRyYWluZWQsIE1pY3JvCkZhcmFkIHdhcyB1bmFibGUgdG8gZXhjaXRlIGhpcyBnZW5lcmF0b3Igc28gdGhleSBlbmRlZCB1cCByZXZlcnNpbmcgcG9sYXJpdHkKYW5kIGJsb3dpbmcgZWFjaCBvdGhlcidzIGZ1c2VzLgoKV0FUVCBBIE5JR0hUICEgISAhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWWlrZXMsIGFjY2lkZW50ISAoR2xvaW5zb24sICA1LiBKYW4gMjAwNSwgMTM6MTQ6NDcpOgoKTGFzdCBuaWdodCwgSSB3YXMgd2Fsa2luZyBob21lIGZyb20gdGhlIGdyb2Nlcnkgc3RvcmUgYW5kIEkgbm90aWNlZCB0aGF0IHRoZQp0cmFmZmljIHdhcyBiYWNrZWQgdXAgYXMgaWYgYW4gYWNjaWRlbnQgd2FzIGJsb2NraW5nIHRoZSByb2FkLgoKU3VyZSBlbm91Z2gsIHRoZSBNZXRybyAjNzMgaGFkIG1hbmFnZWQgdG8gc2tpZCBvbiB0aGUgc2x1c2h5IHN0cmVldCBhcyBpdCB3YXMKdHJ5aW5nIHRvIHR1cm4gYSBjb3JuZXIgYW5kIGhhZCBzY29yZWQgYSBkaXJlY3QgaGl0IG9uIGEgc3RlZWwgdHJhZmZpYyBsaWdodApwb2xlLiBUaGlzIHdhcyBhIG9uZS12ZWhpY2xlIGFjY2lkZW50LCBzbyBpdCB3YXMgb2J2aW91cyB3aG8gd2FzIGF0IGZhdWx0IGZvcgppdC4gKEluIGFkZGl0aW9uLCB0aGUgc3RyZWV0IHdhcyBvbmx5IF9zbHVzaHlfOyBhcyBzb21lb25lIHdobyBsZWFybmVkIHRvCmRyaXZlIGluIHRoZSBSb2NraWVzIGl0IGFsd2F5cyBhbWF6ZXMgbWUgaG93IG11Y2ggdHJvdWJsZSBhIHBpZGRsaW5nIHNub3dmYWxsCmNhbiBjYXVzZSBzb21lIHBlb3BsZS4gQnV0IEkgZGlncmVzcy4pCgpBbnl3YXksIHJpZ2h0IGFmdGVyIEkgd2Fsa2VkIHBhc3NlZCB0aGUgc2NlbmUgb2YgdGhlIGFjY2lkZW50LCB0aGUgZHJpdmVyJ3MKd2luZG93IG9wZW5lZCBhbmQgYSBtb3N0bHktZWF0ZW4gYXBwbGUgc2FpbGVkIG91dCBvZiBpdC4gSSB3YXMgd29uZGVyaW5nIHdoYXQKb24gZWFydGggd2FzIGdvaW5nIG9uLCB3aGVuIEkgbG9va2VkIHVwIGFuZCBub3RpY2VkIGEgbWVzc2FnZSBzY3JvbGxpbmcgYWNyb3NzCnRoZSBncmVlbiBkb3QtbWF0cml4IGRpc3BsYXkgdGhhdCBub3JtYWxseSBkaXNwbGF5cyB0aGUgcm91dGUgbnVtYmVyIGFuZApkZXN0aW5hdGlvbjoKCmJ1cyBlcnJvciAoY29yZSBkdW1wZWQpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2hlcmUgZG9lcyBhbGwgdGhhdCBlbGVjdHJpY2l0eSBnbz8gKEdsb2luc29uLCAgNS4gSmFuIDIwMDUsIDEzOjE2OjQ3KToKCkF1dGhvcjogRGF2ZSBCYXJyeQoodXNlZCB3aXRob3V0IHBlcm1pc3Npb24pCj09PT09PT09PT09PT09PQoKVG9kYXkncyBzY2llbnRpZmljIHF1ZXN0aW9uIGlzOgoKICAgIFdoYXQgaW4gdGhlIHdvcmxkIGlzIGVsZWN0cmljaXR5IGFuZCB3aGVyZSBkb2VzIGl0IGdvIGFmdGVyIGl0IGxlYXZlcyB0aGUKdG9hc3Rlcj8gCgpIZXJlIGlzIGEgc2ltcGxlIGV4cGVyaW1lbnQgdGhhdCB3aWxsIHRlYWNoIHlvdSBhbiBpbXBvcnRhbnQgZWxlY3RyaWNhbApsZXNzb246IE9uIGEgY29vbCBkcnkgZGF5LCBzY3VmZiB5b3VyIGZlZXQgYWxvbmcgYSBjYXJwZXQsIHRoZW4gcmVhY2ggeW91cgpoYW5kIGludG8gYSBmcmllbmQncyBtb3V0aCBhbmQgdG91Y2ggb25lIG9mIGhpcyBkZW50YWwgZmlsbGluZ3MuIERpZCB5b3UKbm90aWNlIGhvdyB5b3VyIGZyaWVuZCB0d2l0Y2hlZCB2aW9sZW50bHkgYW5kIGNyaWVkIG91dCBpbiBwYWluPyBUaGlzIHRlYWNoZXMKb25lIHRoYXQgZWxlY3RyaWNpdHkgY2FuIGJlIGEgdmVyeSBwb3dlcmZ1bCBmb3JjZSwgYnV0IHdlIG11c3QgbmV2ZXIgdXNlIGl0IHRvCmh1cnQgb3RoZXJzIHVubGVzcyB3ZSBuZWVkIHRvIGxlYXJuIGFuIGltcG9ydGFudCBsZXNzb24gYWJvdXQgZWxlY3RyaWNpdHkuCgpJdCBhbHNvIGlsbHVzdHJhdGVzIGhvdyBhbiBlbGVjdHJpY2FsIGNpcmN1aXQgd29ya3MuIFdoZW4geW91IHNjdWZmZWQgeW91cgpmZWV0LCB5b3UgcGlja2VkIHVwIGJhdGNoZXMgb2YgImVsZWN0cm9ucyIsIHdoaWNoIGFyZSB2ZXJ5IHNtYWxsIG9iamVjdHMgdGhhdApjYXJwZXQgbWFudWZhY3R1cmVycyB3ZWF2ZSBpbnRvIGNhcnBldCBzbyB0aGF0IHRoZXkgd2lsbCBhdHRyYWN0IGRpcnQuIFRoZQplbGVjdHJvbnMgdHJhdmVsIHRocm91Z2ggeW91ciBibG9vZHN0cmVhbSBhbmQgY29sbGVjdCBpbiB5b3VyIGZpbmdlciwgd2hlcmUKdGhleSBmb3JtIGEgc3BhcmsgdGhhdCBsZWFwcyB0byB5b3VyIGZyaWVuZCdzIGZpbGxpbmcsIHRoZW4gdHJhdmVsIGRvd24gdG8gaGlzCmZlZXQgYW5kIGJhY2sgaW50byB0aGUgY2FycGV0LCB0aHVzIGNvbXBsZXRpbmcgdGhlIGNpcmN1aXQuCgpBTUFaSU5HIEVMRUNUUk9OSUMgRkFDVDogSWYgeW91IHNjdWZmZWQgeW91ciBmZWV0IGxvbmcgZW5vdWdoIHdpdGhvdXQgdG91Y2hpbmcKYW55dGhpbmcsIHlvdSB3b3VsZCBidWlsZCB1cCBzbyBtYW55IGVsZWN0cm9ucyB0aGF0IHlvdXIgZmluZ2VyIHdvdWxkIGV4cGxvZGUhCkJ1dCB0aGlzIGlzIG5vdGhpbmcgdG8gd29ycnkgYWJvdXQgdW5sZXNzIHlvdSBoYXZlIGNhcnBldGluZy4KCkFsdGhvdWdoIHdlIG1vZGVybiBwZXJzb25zIHRlbmQgdG8gdGFrZSBvdXIgZWxlY3RyaWMgbGlnaHRzLCByYWRpb3MsIG1peGVycywKZXRjLiBmb3IgZ3JhbnRlZCwgaHVuZHJlZHMgb2YgeWVhcnMgYWdvIHBlb3BsZSBkaWQgbm90IGhhdmUgYW55IG9mIHRoZXNlCnRoaW5ncywgd2hpY2ggaXMganVzdCBhcyB3ZWxsIGJlY2F1c2UgdGhlcmUgd2FzIG5vIHBsYWNlIHRvIHBsdWcgdGhlbSBpbi4gVGhlbgphbG9uZyBjYW1lIHRoZSBmaXJzdCBFbGVjdHJpY2FsIFBpb25lZXIsIEJlbmphbWluIEZyYW5rbGluLCB3aG8gZmxldyBhIGtpdGUgaW4KYSBsaWdodG5pbmcgc3Rvcm0gYW5kIHJlY2VpdmVkIGEgc2VyaW91cyBlbGVjdHJpY2FsIHNob2NrLiBUaGlzIHByb3ZlZCB0aGF0CmxpZ2h0bmluZyB3YXMgcG93ZXJlZCBieSB0aGUgc2FtZSBmb3JjZSBhcyBjYXJwZXRzLCBidXQgaXQgYWxzbyBkYW1hZ2VkCkZyYW5rbGluJ3MgYnJhaW4gc28gc2V2ZXJlbHkgdGhhdCBoZSBzdGFydGVkIHNwZWFraW5nIG9ubHkgaW4gaW5jb21wcmVoZW5zaWJsZQptYXhpbXMsIHN1Y2ggYXMsICJBIHBlbm55IHNhdmVkIGlzIGEgcGVubnkgZWFybmVkLiIgRXZlbnR1YWxseSBoZSBoYWQgdG8gYmUKZ2l2ZW4gYSBqb2IgcnVubmluZyB0aGUgcG9zdCBvZmZpY2UuCgpBZnRlciBGcmFua2xpbiBjYW1lIGEgaGVyZCBvZiBFbGVjdHJpY2FsIFBpb25lZXJzIHdob3NlIG5hbWVzIGhhdmUgYmVjb21lIHBhcnQKb2Ygb3VyIGVsZWN0cmljYWwgdGVybWlub2xvZ3k6IE15cm9uIFZvbHQsIE1hcnkgTG91aXNlIEFtcCwgSmFtZXMgV2F0dCwgQm9iClRyYW5zZm9ybWVyLCBldGMuIFRoZXNlIHBpb25lZXJzIGNvbmR1Y3RlZCBtYW55IGltcG9ydGFudCBlbGVjdHJpY2FsCmV4cGVyaW1lbnRzLiBBbW9uZyB0aGVtLCBHYWx2YW5pIGRpc2NvdmVyZWQgKHRoaXMgaXMgdGhlIHRydXRoKSB0aGF0IHdoZW4gaGUKYXR0YWNoZWQgdHdvIGRpZmZlcmVudCBraW5kcyBvZiBtZXRhbCB0byB0aGUgbGVnIG9mIGEgZnJvZywgYW4gZWxlY3RyaWNhbApjdXJyZW50IGRldmVsb3BlZCBhbmQgdGhlIGZyb2cncyBsZWcga2lja2VkLCBldmVuIHRob3VnaCBpdCB3YXMgbm8gbG9uZ2VyCmF0dGFjaGVkIHRvIHRoZSBmcm9nLCB3aGljaCB3YXMgZGVhZCBhbnl3YXkuIEdhbHZhbmkncyBkaXNjb3ZlcnkgbGVkIHRvCmVub3Jtb3VzIGFkdmFuY2VzIGluIHRoZSBmaWVsZCBvZiBhbXBoaWJpYW4gbWVkaWNpbmUuIFRvZGF5LCBza2lsbGVkCnZldGVyaW5hcnkgc3VyZ2VvbnMgY2FuIHRha2UgYSBmcm9nIHRoYXQgaGFzIGJlZW4gc2VyaW91c2x5IGluanVyZWQgb3Iga2lsbGVkLAppbXBsYW50IHBpZWNlcyBvZiBtZXRhbCBpbiBpdHMgbXVzY2xlcywgYW5kIHdhdGNoIGl0IGhvcCBiYWNrIGludG8gdGhlIHBvbmQgLS0KYWxtb3N0LgoKQnV0IHRoZSBncmVhdGVzdCBFbGVjdHJpY2FsIFBpb25lZXIgb2YgdGhlbSBhbGwgd2FzIFRob21hcyBFZGlzb24sIHdobyB3YXMgYQpicmlsbGlhbnQgaW52ZW50b3IgZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IGhlIGhhZCBsaXR0bGUgZm9ybWFsIGVkdWNhdGlvbiBhbmQKbGl2ZWQgaW4gTmV3IEplcnNleS4gRWRpc29uJ3MgZmlyc3QgbWFqb3IgaW52ZW50aW9uIGluIDE4Nzcgd2FzIHRoZQpwaG9ub2dyYXBoLCB3aGljaCBjb3VsZCBzb29uIGJlIGZvdW5kIGluIHRob3VzYW5kIG9mIEFtZXJpY2FuIGhvbWVzLCB3aGVyZSBpdApiYXNpY2FsbHkgc2F0IHVudGlsIDE5MjMsIHdoZW4gdGhlIHJlY29yZCB3YXMgaW52ZW50ZWQuIEJ1dCBFZGlzb24ncyBncmVhdGVzdAphY2hpZXZlbWVudCBjYW1lIGluIDE4Nzkgd2hlbiBoZSBpbnZlbnRlZCB0aGUgZWxlY3RyaWMgY29tcGFueS4gRWRpc29uJ3MKZGVzaWduIHdhcyBhIGJyaWxsaWFudCBhZGFwdGF0aW9uIG9mIHRoZSBzaW1wbGUgZWxlY3RyaWNhbCBjaXJjdWl0OiB0aGUKZWxlY3RyaWMgY29tcGFueSBzZW5kcyBlbGVjdHJpY2l0eSB0aHJvdWdoIGEgd2lyZSB0byBhIGN1c3RvbWVyLCB0aGVuCmltbWVkaWF0ZWx5IGdldHMgdGhlIGVsZWN0cmljaXR5IGJhY2sgdGhyb3VnaCBhbm90aGVyIHdpcmUsIHRoZW4gKHRoaXMgaXMgdGhlCmJyaWxsaWFudCBwYXJ0KSBzZW5kcyBpdCByaWdodCBiYWNrIHRvIHRoZSBjdXN0b21lciBhZ2Fpbi4KClRoaXMgbWVhbnMgdGhhdCBhbiBlbGVjdHJpYyBjb21wYW55IGNhbiBzZWxsIGEgY3VzdG9tZXIgdGhlIHNhbWUgYmF0Y2ggb2YKZWxlY3RyaWNpdHkgdGhvdXNhbmRzIG9mIHRpbWVzIGEgZGF5IGFuZCBuZXZlciBnZXQgY2F1Z2h0LCBzaW5jZSB2ZXJ5IGZldwpjdXN0b21lcnMgdGFrZSB0aGUgdGltZSB0byBleGFtaW5lIHRoZWlyIGVsZWN0cmljaXR5IGNsb3NlbHkuIEluIGZhY3QsIHRoZQpsYXN0IHllYXIgYW55IG5ldyBlbGVjdHJpY2l0eSB3YXMgZ2VuZXJhdGVkIHdhcyAxOTM3LgoKVG9kYXksIHRoYW5rcyB0byBtZW4gbGlrZSBFZGlzb24gYW5kIEZyYW5rbGluLCBhbmQgZnJvZ3MgbGlrZSBHYWx2YW5pJ3MsIHdlCnJlY2VpdmUgYWxtb3N0IHVubGltaXRlZCBiZW5lZml0cyBmcm9tIGVsZWN0cmljaXR5LiBGb3IgZXhhbXBsZSwgaW4gdGhlIHBhc3QKZGVjYWRlIHNjaWVudGlzdHMgaGF2ZSBkZXZlbG9wZWQgdGhlIGxhc2VyLCBhbiBlbGVjdHJvbmljIGFwcGxpYW5jZSBzbwpwb3dlcmZ1bCB0aGF0IGl0IGNhbiB2YXBvcml6ZSBhIGJ1bGxkb3plciAyMDAwIHlhcmRzIGF3YXksIHlldCBzbyBwcmVjaXNlIHRoYXQKZG9jdG9ycyBjYW4gdXNlIGl0IHRvIHBlcmZvcm0gZGVsaWNhdGUgb3BlcmF0aW9ucyB0byB0aGUgaHVtYW4gZXllYmFsbCwKcHJvdmlkZWQgdGhleSByZW1lbWJlciB0byBjaGFuZ2UgdGhlIHBvd2VyIHNldHRpbmcgZnJvbSAiQnVsbGRvemVyIgp0byJFeWViYWxsLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2hlcmUgZG9lcyBhbGwgdGhhdCBlbGVjdHJpY2l0eSBnbz8gKERhcmtsb3IsICA1LiBKYW4gMjAwNSwgMTM6NTQ6NDIpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTEwNDkyNzQwNyByZz13aXR6ZQp+IyEgdGlkPTExMDQ5Mjc0MDcKVGhlIGxhc3Qgd2FzIHRoZSBiZXN0IHBhcnQgLT4gcHJvdmlkZWQgdGhleSByZW1lbWJlciB0byBjaGFuZ2UgdGhlIHBvd2VyCnNldHRpbmcgZnJvbSAiQnVsbGRvemVyIgp0byJFeWViYWxsLiIKCipyb2ZsKgoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXJ0aWtlbCBhcm1lciBUb2tlciAoRXJlc2NoaSwgIDUuIEphbiAyMDA1LCAyMjozODo0Myk6CkRpZSBzaWViZW4gWndlcmdlIHNpbmQgaW4gUm9tIHVuZCBiZXN1Y2hlbiBkaWUgVmF0aWthbnN0YWR0LiBUb2tlciBnZWh0IGRpZQpUcmVwcGUgaG9jaCB1bmQga2xpbmdlbHQgYW4gZGVyIFR1ZXIgdm9tIFBhcHN0LiBEZXIgUGFwc3Qgc2VsYnN0IG9lZmZuZXQgZGllClR1ZXIgdW5kIGZyYWd0OiAiVG9rZXIsIG1laW4gU29obiwgd2FzIGthbm4gaWNoIGZ1ZXIgRGljaCB0dW4/IiBUb2tlciBmcmFndDoKIkVudHNjaHVsZGlnZW4gU2llLCBFdXJlIEV4emVsbGVueiwgYWJlciBnaWJ0IGVzIFp3ZXJnbm9ubmVuIGluIFJvbT8iIERlcgpQYXBzdCBsYWVjaGVsdCB1bmQgYW50d29ydGV0OiJOZWluIFRva2VyLCBlcyBnaWJ0IGtlaW5lIFp3ZXJnbm9ubmVuIGluIFJvbSIuCkltIEhpbnRlcmdydW5kIHNpZWh0IGRlciBQYXBzdCBkYXMgZWluaWdlIGRlciBhbmRlcmVuIFp3ZXJnZSBhbmZhbmdlbiB6dQpraWNoZXJuLiBUb2tlciBmcmFndCBkYW5uIDoiRXVyZSBFeHplbGxlbnosIGdpYnQgZXMgZGVubiBad2VyZ25vbm5lbiBpbgpJdGFsaWVuPyIgRGVyIFBhcHN0IHNjaGF1dCBhdWYgVG9rZXIgdW5kIGFudHdvcnRldDoiTmVpbiwgVG9rZXIsIGVzIGdpYnQga2VpbmUKWndlcmdub25uZW4gaW4gSXRhbGllbiIuIEpldHp0IGZhbmdlbiBkaWUgYW5kZXJlbiBad2VyZ2UgYW4genUgbGFjaGVuLiBUb2tlcgp3ZWl0ZXI6IkdpYnQgZXMgZGVubiBad2VyZ25vbm5lbiBpbiBFdXJvcGE/IiBEZXIgUGFwc3QsIGRlbiBkaWUgRnJhZ2VuIGxhbmdzYW0KbmVydmVuLCBhbnR3b3J0ZXQ6IlRva2UsIGVzIGdpYnQga2VpbmUgWndlcmdub25uZW4gaW4gZ2FueiBFdXJvcGEiLiBFaW5pZ2UgZGVyCmFuZGVyZW4gWndlcmdlIGJpZWdlbiBzaWNoIGJlcmVpdHMgdm9yIExhY2hlbi4gVG9rZXIgc3RyZWNrdCBzaWNoIHVuZApmcmFndDoiTGllYmVyIFBhcHN0LCBnaWJ0IGVzIHVlYmVyaGF1cHQgWndlcmdub25uZW4gYXVmIGRlciBXZWx0PyIgRGVyIFBhcHN0LAptaXR0bGVyd2VpbGUgZnJ1c3RyaWVydCwgc2FndDoiVG9rZXIsIGVzIGcKaWJ0IG5pcmdlbmR3byBhdWYgZGVyIFdlbHQgWndlcmdub25uZW4hIiBCZWkgZGllc2VyIEFudHdvcnQgZmFuZ2VuIGRpZSBhbmRlcmVuClp3ZXJnZSBhbiBsYXV0aGFscyB6dSBMYWNoZW4gdW5kIHp1IGh1ZXBmZW4gdW5kIHJ1ZmVuOiAiVG9rZXIgaGF0IG5lbiBQaW5ndWluCmdlYnVtc3QhIFRva2VyIGhhdCBuZW4gUGluZ3VpbiBnZWJ1bXN0ISBUb2tlciBoYXQgbmVuIFBpbmd1aW4gZ2VidW1zdCEiIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYXJ0aWtlbCBJaHJlIEZyYXUgOykgKEVyZXNjaGksICA3LiBKYW4gMjAwNSwgMDY6MTI6MzQpOgpIZXJyIERva3RvciwgaW1tZXIga3VyeiBiZXZvciBpY2gga29tbWUgc2NobGFlZnQgc2llIGVpbi4iCiJUamEsIGRhbm4gbXVlc3NlbiBTaWUgSWhyZSBGcmF1IG1hbCBtaXRicmluZ2VuLCBkYW1pdCBpY2ggc2llIHVudGVyc3VjaGVuCmthbm4uIgoiV2FzIGhlaXNzdCBoaWVyIG1laW5lIEZyYXUgLSBNRUlORSBIQU5EISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClplaXRnZW1hZXNzZSBLaW5kZXItQXVma2xhZXJ1bmcgKEVyZXNjaGksICA4LiBKYW4gMjAwNSwgMDQ6MjA6MjYpOgoKIERlciBQYXBhIGhhdCBkaWUgTWFtYSBpbiBlaW5lbSAiQ2hhdHJvb20iIGtlbm5lbmdlbGVybnQuIFNwYWV0ZXIgaGFiZW4gZGVyClBhcGEgdW5kIGRpZSBNYW1hIHNpY2ggaW4gZWluZW0gSW50ZXJuZXQtQ2FmIGdldHJvZmZlbiB1bmQsIGF1ZiBkZXIgVG9pbGlldHRlCmhhdCBkaWUgTWFtYSBlaW4gcGFhciAiRG93bmxvYWRzIiB2b24gUGFwYXMgIk1lbW9yeS1TdGljayIgbWFjaGVuIHdvbGxlbi4gQWxzCmRlciBQYXBhIGRhbm4gZmVydGlnIGZ1ZXIgZGFzICJ1cGxvYWRlbiIgd2FyLCBtZXJrdGVuIHdpciBwbG9ldHpsaWNoLCBkYXNzIHdpcgprZWluZSAiRmlyZXdhbGwiIGluc3RhbGxpZXJ0IGhhdHRlbi4gTGVpZGVyIHdhciBlcyBzY2hvbiB6dSBzcGFldCB1bSAiY2FuY2VsIgpvZGVyICJlc2NhcGUiIHp1IGRydWVja2VuIHVuZCBkaWUgTWVsZHVuZyAiV29sbGVuIFNpZSB3aXJrbGljaCB1cGxvYWRlbj8iCmhhdHRlbiB3aXIgaW4gZGVuICJPcHRpb25lbiIgdW50ZXIgIkVpbnN0ZWxsdW5nZW4iIHNjaG9uIGFtIEFuZmFuZyBnZWxvZXNjaHQuCk1hbWFzIFZpcmVuc2Nhbm5lciB3YXIgc2Nob24gbGFlbmdlciBuaWNodCAidXBnZWRhdGVkIiB1bmQga2FubnRlIHNpY2ggbWl0ClBhcGFzICJCbGFzdGVyLVdvcm0iIG5pY2h0IHNvIHJlY2h0IGF1cy4gV2lyIGRydWVja3RlbiBkaWUgIkVudGVyLVRhc3RlIiB1bmQKTWFtYSBiZWthbSBkaWUgTWVsZHVuZyAiR2VzY2hhZXR6dGUgRG93bmxvYWQtWmVpdDogOSBNb25hdGUhIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVpbnRyYWNodCBGcmFua2Z1cnQgKEtlbGx5YnVuZHksIDEyLiBKYW4gMjAwNSwgMjA6MDU6MDgpOgpCZWkgZGVyIEthcnRlbnZvcnZlcmthdWZzc3RlbGxlIGRlciBFaW50cmFjaHQgRnJhbmtmdXJ0IGtsaW5nZWx0IGRhcyBUZWxlZm9uLgpBbnJ1ZmVyOiBJY2ggaGFldHRlIGdlcm5lIEVpbnRyYWNodHRpY2tldHMgZnVlciBkaWUgZXJzdGUgTGlnYS4KVGlja2V0bWF1czogVHV0IG1pciBsZWlkLCBkYXMgZ2lidCBlcyBuaWNodC4gRGllIEVpbnRyYWNodCBGcmFua2Z1cnQgaXN0IG5pY2h0Cm1laHIgaW4gZGVyIGVyc3RlbiBMaWdhLgoKNSBtaW4gc3BhZXRlcjogZGVyIHNlbGJlIEFucnVmZXIuIFdpbGwgd2llZGVyIEVpbnRyYWNodHRpY2tldHMgZnVlciBkaWUgZXJzdGUKTGlnYS4KClRpY2tldG1hdXM6IFR1dCBtaXIgbGVpZCwgZGFzIGdpYnQgZXMgbmljaHQuIERpZSBFaW50cmFjaHQgRnJhbmtmdXJ0IGlzdCBuaWNodAptZWhyIGluIGRlciBlcnN0ZW4gTGlnYS4KClNvIGdlaHQgZGFzIGRlbiBnYW56ZW4gVGFnLiBBbGxlIDUgYmlzIDEwIG1pbnV0ZW4gcnVmdCBkZXIgc2VsYmUgRGVwcCBhbiB1bmQKd2lsbCBlcnN0bGlnYXRpY2tldHMgZnVlciBkaWUgRWludHJhY2h0LgoKQWxzIGRlciBBbnJ1ZmVyIHp1bSAxMDAwMDAwc3RlbiBNYWwgYW5ydWZ0LCBoZXJyc2NodCBkaWUgVGlja2V0bWF1cyBpaG4KZW50bmVydnQgYW46CgoKVGlja2V0bWF1czogSWNoIGhhYmUgSWhuZW4gZG9jaCBzY2hvbiB6aWd0YXVzZW5kIE1hbCBnZXNhZ3QsIGRhc3MgZXMga2VpbmUKVGlja2V0cyBnaWJ0LCBkYSBGcmFua2Z1cnQgbmljaHQgbWVociBpbiBkZXIgZXJzdGVuIExpZ2EgaXN0ISEhCkFucnVmZXI6IERhcyB3ZWlzcyBpY2ggZG9jaCEgQWJlciBpY2ggYmluIE1haW56ZXIsIGljaCBob2VyZSBkYXMgZG9jaCBzbyBnZXJuIQoKCgpbRmFudGVhbTpNYWlueiBOdWxsZnVlbmZdIEtlbGx5LCBmZWl4ZW5kCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVpbnRyYWNodCBGcmFua2Z1cnQgKEdyaW1tYm9ybiwgMTIuIEphbiAyMDA1LCAyMDo0NjoxOSk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTExMDU1NTY3MDggcmc9d2l0emUKfiMhIHRpZD0xMTA1NTU2NzA4CldhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIEthcnN0YWR0LVF1ZWxsZSB1bmQgQm9ydXNzaWEgRG9ydG11bmQ/CkJlaWRlIHN0ZWhlbiBtaXQgYXN0cm9ub21pc2NoZW4gQmV0cmFlZ2VuIGluIGRlciBLcmVpZGUsIGJlaWRlIGZhbGxlbiBkdXJjaAprcmFzc2VzIE1pc3NtYW5hZ2VtZW50IGF1ZiwgYWJlciBLYXJzdGFkdC1RdWVsbGUgaGF0IGRpZSBiZXNzZXJlClNwb3J0YWJ0ZWlsdW5nLi4uCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhZXVmaWcgYmVudXR6dGUgV29lcnRlciBpbiBkZXIgS25laXBlIChHYWJpLCAxNy4gSmFuIDIwMDUsIDAxOjIzOjAzKToKU2NobGFuZ2UgLSAiU2NoJ2xhbmdlIGRhPyIKRmx1ciAtICJXaSdmbHVyIGlzcyBkZW5uPyIKS2lubyAtICJLaW5vICduIEJpZXI/IgpLYW51IC0gIkthbid1IGZhYWhuPyIKRWlzaG9ja2V5IC0gIkVpJ3MgT0s/IgpNb3JwaGl1bSAtICJNb3JwaGl1bSBzaWVtIG11c3MnY2ggd2llZGVyICdyYXVzISIKV2lyc2luZyAtICJBdScgV2kncidzaW5nISIKQWVneXB0ZW4gLSAiQWVneXB0ZW4ga2VpbmVyIGVpbmVuIGF1cz8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoiRGllIFNhY2hlIiAoRGVlcGJsdWUsIDIxLiBKYW4gMjAwNSwgMTI6Mjc6MjcpOgpGYWxscyBkZW4gZWluZXIgbm9jaCBuaWNodCBrZW5udCAuLi4KCgpFaW4gYWx0ZXIgQXJhYmVyIGxlYnQgc2VpdCBtZWhyIGFscyA0MCBKYWhyZW4gaW4gQ2hpY2Fnby4gRXIgd3VlcmRlIGdlcm5lIGluCnNlaW5lbSBHYXJ0ZW4gS2FydG9mZmVsbiBwZmxhbnplbiwgYWJlciBlciBpc3QgYWxsZWluIHVuZCBhbHQgdW5kIHNjaHdhY2guClNlaW4gU29obiBzdHVkaWVydCBpbiBQYXJpcy4gRXIgc2NocmVpYnQgZWluZSBFbWFpbCBhbiBzZWluZW4gU29obiB1bmQKZXJrbGFlcnQgaWhtIGRhcyBQcm9ibGVtLgonTGllYmVyIEFobWVkLCBpY2ggYmluIHNlaHIgdHJhdXJpZywgd2VpbCBpY2ggaW4gbWVpbmVtIEdhcnRlbiBrZWluZQpLYXJ0b2ZmZWxuIHBmbGFuemVuIGthbm4uIEljaCBiaW4gc2ljaGVyLCB3ZW5uIGR1IGhpZXIgd2FlcmVzdCwgZHUga29lbm50ZXN0Cm1pciBoZWxmZW4sIHVuZCBrb2VubnRlc3QgZnVlciBtaWNoIGRlbiBHYXJ0ZW4gdW1ncmFiZW4uIEljaCBsaWViZSBkaWNoLiBEZWluClZhdGVyLicKQW0gZm9sZ2VuZGVuIFRhZyBlcmhhZWx0IGRlciBhbHRlIE1hbm4gZWluZSBFbWFpbDoKCidMaWViZXIgVmF0ZXIsIGJpdHRlIGJlcnVlaHJlIG5pY2h0IGRlbiBHYXJ0ZW4uIERvcnQgaGFiZSBpY2ggKmRpZSBTYWNoZSoKdmVyc3RlY2t0LgoKSWNoIGxpZWJlIGRpY2ggYXVjaC4gQWhtZWQnLgoKVW0gNCBVaHIgbW9yZ2VucyBrb21tZW4gZGllIFVTIEFybXksIGRpZSBNYXJpbmVzLCBkYXMgRkJJLCBkaWUgQ0lBIHVuZCBkaWUKUkFOR0VSUyB6dSBkZW0gSGF1cyBkZXMgYWx0ZW4gTWFubmVzLgoKU2llIHN1Y2hlbiB1ZWJlcmFsbCwgbmVobWVuIGRlbiBnYW56ZW4gR2FydGVuIGF1c2VpbmFuZGVyLCBzdWNoZW4gamVkZW4KTWlsbGltZXRlciBhYiwgYWJlciBmaW5kZW4gZ2FyIG5pY2h0cy4gRW50dGFldXNjaHQgemllaGVuIHNpZSBhYiAuCgpBbSBmb2xnZW5kZW4gVGFnIGVyaGFlbHQgZGVyIGFsdGVyIE1hbm4gd2llZGVyIGVpbmUgRW1haWwgdm9tIFNvaG4gOiAnTGllYmVyClZhdGVyLCBpY2ggaG9mZmUsIGRhc3MgZGVyIEdhcnRlbiBtaXR0bGVyd2VpbGUgdW1nZWdyYWJlbiBpc3QgdW5kIGR1IGRpZQpLYXJ0b2ZmZWxuIGpldHp0IHBmbGFuemVuIGthbm5zdC4gTWVociBrb25udGUgaWNoIGZ1ZXIgZGljaCBuaWNodCB0dW4uIEljaApsaWViZSBkaWNoLiBBaG1lZCcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb25kb21lIChCYW1idWxrbywgMjguIEphbiAyMDA1LCAxMToyNzo1OSk6CiAgICBBIHlvdW5nIG1hbidzIHN0b3J5LS0tLSAKCkkgcmVjYWxsIG15IGZpcnN0IHRpbWUgd2l0aCBhIGNvbmRvbSwgSSB3YXMgMTYgb3Igc28uICBJIHdlbnQgaW4gdG8gYnV5CmEgcGFja2FnZSBvZiBjb25kb21zLiAgVGhlcmUgd2FzIGEgYmVhdXRpZnVsIHdvbWFuIGJlaGluZCB0aGUgY291bnRlciwKYW5kIHNoZSBjb3VsZCBzZWUgdGhhdCBJIHdhcyBuZXcgYXQgaXQuICBTaGUgaGFuZGVkIG1lIHRoZSBwYWNrYWdlIGFuZCAKYXNrZWQsIGlmIEkga25ldyBob3cgdG8gd2VhciBvbmUuICBJIGhvbmVzdGx5IGFuc3dlcmVkLCAiTm8uIiAgU28gc2hlIAp1bndyYXBwZWQgdGhlIHBhY2thZ2UsIHRvb2sgb25lIG91dCBhbmQgc2xpcHBlZCBvdmVyIGhlciB0aHVtYi4gIFNoZSAKY2F1dGlvbmVkIG1lIHRvIG1ha2Ugc3VyZSBpdCB3YXMgb24gdGlnaHQgYW5kIHNlY3VyZS4gIEkgYXBwYXJlbnRseQpzdGlsbCBsb29rZWQgY29uZnVzZWQuICBTbyBzaGUgbG9va2VkIGFsbCBhcm91bmQgdGhlIHN0b3JlLiAgSXQgd2FzIGVtcHR5LgpTaGUgc2FpZCwiICJKdXN0IGEgbWludXRlLiIgIEFuZCB3YWxrZWQgdG8gdGhlIGRvb3IsIGFuZCBsb2NrZWQKaXQuIFRha2luZyBteSBoYW5kLCBzaGUgbGVkIG1lIGludG8gdGhlIGJhY2sgcm9vbSwgdW5idXR0b25lZCBoZXIKYmxvdXNlIGFuZCByZW1vdmVkIGl0LiAgU2hlIHVuaG9va2VkIGhlciBicmEgYW5kIGxhaWQgaXQgYXNpZGUuICBTaGUKYXNrZWQsICJEbyB0aGVzZSBleGNpdGUgeW91PyIgCgpXZWxsLCBJIHdhcyBzbyBkdW1iLXN0cnVjayB0aGF0IGFsbCBJIGNvdWxkIGRvIHdhcyBub2QgbXkgaGVhZC4gIFNoZQp0aGVuIHNhaWQsIGl0IHdhcyB0aW1lIHRvIHNsaXAgdGhlIGNvbmRvbSBvbi4gIEFzIEkgd2FzIHNsaXBwaW5nIGl0IG9uLApzaGUgZHJvcHBlZCBoZXIgc2tpcnQsIHJlbW92ZWQgaGVyIHBhbnRpZXMgYW5kIGxhaWQgZG93biBvbiBhCmRlc2suICJXZWxsLCBjb21lIG9uIiwgc2hlIHNhaWQsICJXZSBkb24ndCBoYXZlIG11Y2ggdGltZS4iICBTbyBJCmNsaW1iZWQgb24gaGVyLiAgSXQgd2FzIHNvIHdvbmRlcmZ1bCwgdGhhdCB1bmZvcnR1bmF0ZWx5LCBJIGNvdWxkIG5vCmxvbmdlciBob2xkIGJhY2sgYW5kIHBvdywgSSB3YXMgZG9uZSB3aXRoaW4gYSBmZXcgbWludXRlcy4gU2hlIGxvb2tlZAphdCBtZSB3aXRoIGEgZnJvd24uICAiRGlkIHlvdSBwdXQgdGhhdCBjb25kb20gb24/IiAgIEkgc2FpZCwgIkkgc3VyZQpkaWQuIiAgQW5kIGhlbGQgdXAgbXkgdGh1bWIgdG8gc2hvdyBoZXIuIAoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNwYXNzIHp1bSBGcmVpdGFnIChEZWVwYmx1ZSwgMTEuIEZlYiAyMDA1LCAxMzo0MjozNik6CkVpbiBQYWVyY2hlbiBzaXR6dCBpbiBkZXIgS25laXBlLCBhbHMgc2llIGlyZ2VuZHdhbm4gbWVpbnQ6CgoiU2NoYXR6LCBpY2gga2VubmUgbmVuIHRvbGxlbiBDb2NrdGFpbCwgd2lsbHN0IGR1IGRlbiBuaWNodCBtYWwgYXVzcHJvYmllcmVuCj8iCgpFciB3aWxsaWd0IGVpbiwgdW5kIHNpZSBiZXN0ZWxsdCBlaW4gUGlubmNoZW4gQmFpbGV5cyB1bmQgZWluIFBpbm5jaGVuCkxpbWV0dGVuc2FmdC4KCiJFcyBpc3QgZXR3YXMgc2Nod2llcmlnLCBkdSBtdXNzdCBlcnN0IGRlbiBCYWlsZXlzIGluIGRlbiBNdW5kIHNjaHVldHRlbiwgZGFubgplcnN0IGRlbiBMaW1ldHRlbnNhZnQgaGludGVyaGVyLiIKCkVyIG1hY2h0cyBnZW5hdXNvIHdpZSBzaWUgZXMgaWhtIHZvcmdlc2NobGFnZW4gaGF0IC4uLgoKKzAsMyBTZWt1bmRlbgpFaW4gYW5nZW5laG0gd2FybWVzLCB3ZWljaGVzIEdlZnVlaGwgaW0gTXVuZC4KCiswLDYgU2VrdW5kZW4KRHVyY2ggZGllIFNhZXVyZSBpbSBMaW1ldHRlbnNhZnQgZ2VyaW5udCBkaWUgU2FobmUgaW0gQmFpbGV5cyB1bmQga2x1bXB0Cnp1c2FtbWVuLgoKKzAsOSBTZWt1bmRlbgpTZWluZSBHZXNpY2h0c2ZhcmJlIG5pbW10IGRpZSBGYXJiZSB2b24gTGltZXR0ZW4gYW4sIGVyIHNjaGx1Y2t0IGRhcyBaZXVnCnJ1bnRlci4KCisxLDIgU2VrdW5kZW4KU2VpbiBNYWdlbiB2ZXJrcmFtcGZ0IHVuZCBlciB2ZXJzcHVlcnQgZWluZW4gaGVmdGlnZW4gUmVpeiwgc2ljaCB6dQp1ZWJlcmdlYmVuLgoKKzMsMCBTZWt1bmRlbgpTaWUgZmx1ZXN0ZXJ0IGlobSBpbnMgT2hyOiAiRGVyIERyaW5rIGhlaXNzdCBCbG93am9iJ3MgUmV2YW5jaGUiIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnVzaCAoR2FiaSwgMTguIEZlYiAyMDA1LCAyMzoxMzo1Myk6CkVpbiBGbHVnemV1ZyBpc3QgbWl0dGVuIGltIEFic3R1cnouIDUgUGFzc2FnaWVyZSBzaW5kIGFuIEJvcmQsIGVzIGdpYnQgamVkb2NoCm51ciA0IEZhbGxzY2hpcm1lLiBEZXIgZXJzdGUgUGFzc2FnaWVyIHNhZ3Q6ICJJY2ggYmluIFNoYXF1aWxsZSBPJ05laWxsLCBkZXIKYmVzdGUgTkJBLUJhc2tldGJhbGwtU3BpZWxlci4gRGllIExha2VycyBicmF1Y2hlbiBtaWNoLCBpY2gga2FubiBlcyBJaG5lbgpuaWNodCBhbnR1biwgenUgc3RlcmJlbiEiLi0gQWxzbyBuaW1tdCBlciBzaWNoIGRlbiBlcnN0ZW4gRmFsbHNjaGlybSB1bmQKc3ByaW5ndC4KRGVyIHp3ZWl0ZSBQYXNzYWdpZXIsIEhpbGxhcnkgQ2xpbnRvbiwgc2FndDogIkljaCBiaW4gZGllIEZyYXUgZGVzIGVoZW1hbGlnZW4KUHJhZXNpZGVudGVuIGRlciBVU0EuIEViZW5zbyBiaW4gaWNoIGRpZSBlbmdhZ2llcnRlc3RlIEZyYXUgZGVyIFdlbHQsIGljaCBiaW4KU2VuYXRvcmluIGluIE5ldyBZb3JrIHVuZCBBbWVyaWthcyBwb3RlbnRpZWxsZSwgenVrdWVuZnRpZ2UgUHJhZXNpZGVudGluLiIgLQpTaWUgc2NobmFwcHQgc2ljaCBlaW4gRmFsbHNjaGlybS1QYWtldCB1bmQgc3ByaW5ndC4gCkRlciBkcml0dGUgUGFzc2FnaWVyLCBHZW9yZ2UgVy4gQnVzaCwgc2FndDogIkljaCBiaW4gZGVyIFByYWVzaWRlbnQgZGVyClZlcmVpbmlndGVuIFN0YWF0ZW4gdm9uIEFtZXJpa2EuIEljaCBoYWJlIGVpbmUgcmllc2lnZSBWZXJhbnR3b3J0dW5nIGluIGRlcgpXZWx0cG9saXRpay4gVW5kIGF1ZXJkZW0gYmluIGljaCBhdWNoIGRlciBrbHVlZ3N0ZSBQcmFlc2lkZW50IGluIGRlciBnYW56ZW4KR2VzY2hpY2h0ZSBkaWVzZXMgTGFuZGVzLCBhbHNvIGthbm4gaWNoIGVzIGdlZ2VudWViZXIgbWVpbmVtIFZvbGsgbmljaHQKdmVyYW50d29ydGVuLCB6dSBzdGVyYmVuIiAtIFVuZCBzbyBuaW1tdCBlciBlaW4gUGFrZXQgdW5kIHNwcmluZ3QuCkRlciB2aWVydGUgUGFzc2FnaWVyLCBkZXIgUGFwc3QsIHNhZ3QgenVtIGZ1ZW5mdGVuIFBhc3NhZ2llciwgZWluZW0KemVobmphZWhyaWdlbiBTY2h1bGp1bmdlbjogIkljaCBiaW4gc2Nob24gYWx0LiBJY2ggaGFiZSBtZWluIExlYmVuIGdlbGVidCwgYWxzCmd1dGVyIE1lbnNjaCB1bmQgUHJpZXN0ZXIgdW5kIGFscyBzb2xjaGVyIHVlYmVybGFzc2UgaWNoIERpciBkZW4gbGV0enRlbgpGYWxsc2NoaXJtLiIgLSBEYXJhdWYgZXJ3aWRlcnQgZGVyIEJ1YjogIktlaW4gUHJvYmxlbSwgZXMgZ2lidCBhdWNoIG5vY2ggZnVlcgpTaWUgZWluZW4gRmFsbHNjaGlybS4gQW1lcmlrYXMga2x1ZWdzdGVyIFByYWVzaWRlbnQgaGF0IG1laW5lIFNjaHVsdGFzY2hlCmdlbm9tbWVuLi4uLi4uIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCdXNoIChEYXJrbG9yLCAxOS4gRmViIDIwMDUsIDA4OjI5OjUxKToKfiMhIHJuPUdhYmkgcnQ9MTEwODc2NDgzMyByZz13aXR6ZQp+IyEgdGlkPTExMDg3NjQ4MzMKTWFuIGthbm4gamEgbm9jaCB0cmFldW1lbi4uLiA7KQoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTm9jaCBtZWhyIEJ1c2gtV2l0emUgKEdhYmksIDIyLiBGZWIgMjAwNSwgMDY6MzU6NTEpOgpBdXMgYWt0dWVsbGVtIEFubGFzcyAoQnVzaCBiZXN1Y2h0IERldXRzY2hsYW5kLCB1bmQga29zdGV0IGRlbSBTdGV1ZXJ6YWhsZW4KdmllbGUgTWlsbGlvbmVuIGZ1ZXIgc2VpbmVuIFNjaHV0eiAtIG9iIGVyIGRhcyBXZXJ0IGlzdD8pLCBnaWJ0J3MgaGllciBub2NoCmVpbmlnZSBndXRlIFdpdHplIHVlYmVyIGlobjoKCk5hY2ggZGVyIHgtdGVuIGFtZXJpa2FuaXNjaGVuIE1lbGR1bmcgIldpciB3aXNzZW4gbmljaHQsIG9iIFNhZGRhbSBIdXNzZWluCm5vY2ggbGVidCIgYmVzY2hsb3NzIFNhZGRhbSwgZWluZSBOYWNocmljaHQgYW4gR2VvcmdlIFcuIEJ1c2ggenUgc2NoaWNrZW4sIHVtCmlobSB6dSB6ZWlnZW4sIGRhc3MgZXIgbm9jaCBpbSBTcGllbCBpc3QuCkJ1c2ggb2VmZm5ldGUgZGVuIEJyaWVmIHVuZCBoYXR0ZSBvZmZlbnNpY2h0bGljaCBlaW5lIGNvZGllcnRlIE1pdHRlaWx1bmcgdm9yCnNpY2g6CiIzN09IU1NWIE83NzNIIgpCdXNoIGtvbm50ZSBkYW1pdCBuaWNodHMgYW5mYW5nZW4gdW5kIGdhYiBkZW4gWmV0dGVsIENvbGluIFBvd2VsbC4gRGllc2VyCnNjaHVldHRlbHRlIG51ciByYXRsb3MgZGVuIEtvcGYgdW5kIGxlaXRldGUgaWhuIGFuIGRhcyBDSUEgd2VpdGVyLiBEb3J0IGJpc3MKbWFuIHNpY2ggYWxsZXJkaW5ncyBkaWUgWmFlaG5lIGF1cyB1bmQgYmVtdWVodGUgTlNBIHVuZCBGQkkuIEFscyBhdWNoIGRpZXNlCnNjaGVpdGVydGVuLCBnaW5nIG1hbiBlaW5lbiBTY2hyaXR0IHdlaXRlciB1bmQgYmVmYXNzdGUgZGllIE5BU0EgZGFtaXQuCk5hY2ggZGVyZW4gdmVyZ2VibGljaGVuIFZlcnN1Y2hlbiwgZGllIE5hY2hyaWNodCB6dSBlbnRzY2hsdWVzc2VsbiwgdHJhdCBtYW4KYW4gZGllIFVuaXZlcnNpdGFldGVuIEJlcmtlbGV5IHVuZCBIYXJ2YXJkIGhlcmFuLCBkaWUgYWJlciBlYmVuZmFsbHMgYWxzYmFsZApkYXMgSGFuZHR1Y2ggd2FyZmVuLgpJbiBpaHJlciBOb3QgZXJzdWNodGVuIGRpZSBBbWVyaWthbmVyIG51biBkYXMgYnJpdGlzY2hlIE1JNiwgc2ljaCBkZXIgU2FjaGUKYW56dW5laG1lbi4gQ2FwdGFpbiBHZW9yZ2UgQXJjaGliYWxkIE1jTWlsbGFuIHdhcmYgZWluZW4gQmxpY2sgZGFyYXVmIHVuZAphbnR3b3J0ZXRlIFdhc2hpbmd0b246ICJTYWdlbiBTaWUgZGVtIFByYWVzaWRlbnRlbiwgZXIgaGFlbHQgZGVuIFpldHRlbAp2ZXJrZWhydCBoZXJ1bS4uLiIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRyZWkgS25hYmVuIGxhdWZlbiBkdXJjaCBXYXNoaW5ndG9uLCBhbHMgc2llIGluIGVpbmVtIEZsdXNzIGVpbmVuIE1hbm4KZXJ0cmlua2VuIHNlaGVuLiBTaWUgc3R1ZXJ6ZW4gc2ljaCBzb2ZvcnQgaW5zIFdhc3NlciB1bmQgcmV0dGVuIGRlbgpFcnRyaW5rZW5kZW4uIEFtIFVmZXIgc3RlbGx0IHNpY2ggaGVyYXVzLCBkYXNzIGRlciBHZXJldHRldGUgR2VvcmdlIFcuIEJ1c2gKaXN0LiBHZW9yZ2UgaXN0IGdsdWVja2xpY2ggdWViZXIgZGllIFJldHR1bmcgdW5kIGVya2xhZXJ0IGRlbiBLbmFiZW4sIGRhc3MgZXIKaWhuZW4gamUgZWluZW4gV3Vuc2NoIGVyZnVlbGx0LgpEZXIgZXJzdGUgS25hYmU6ICJJY2ggd3VlbnNjaGUgbWlyIGVpbiBNb3VudGFpbiBCaWtlLiIgLSAiT2theS4gTW9yZ2VuIGtvbW10Cm1laW4gU2VrcmV0YWVyIHVuZCBnZWh0IG1pdCBkaXIgenVtIEZhaHJyYWRoYWVuZGxlci4iCkRlciB6d2VpdGUgSnVuZ2Ugd3VlbnNjaHQgc2ljaCBlaW5lbiBDb21wdXRlci4gIk9rYXkuIE1vcmdlbiBrb21tdCBtZWluClNla3JldGFlciAuLi4iCkRlciBkcml0dGUgS25hYmU6ICJJY2ggd3VlbnNjaGUgbWlyIGVpbiBTdGFhdHNiZWdyYWVibmlzLiIgLSAiV2llc28gZGVubiBkYXM/CkR1IGJpc3QgZG9jaCBub2NoIHp1IGp1bmcsIHVtIGFucyBTdGVyYmVuIHp1IGRlbmtlbi4iLCBmcmFndCBHZW9yZ2UuIC0gIkFiZXIKd2VubiBtZWluIFZhdGVyIGVyZmFlaHJ0LCBkYXNzIGljaCBkaWNoIGF1cyBkZW0gVGVpY2ggZ2VyZXR0ZXQgaGFiZSwgYnJpbmd0IGVyCm1pY2ggdW0uIiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkRlciBVTi1Cb3RzY2hhZnRlciB2b24gU2F1ZGkgQXJhYmllbiBoYXQgZ2VyYWRlIGVpbmUgUmVkZSBiZWVuZGV0IHVuZCBnZWh0Cm5hY2ggZHJhdXNzZW4gaW4gZGllIExvYmJ5LCB3byBlciBQcmFlc2lkZW50IEJ1c2ggdHJpZmZ0LgpTaWUgc2NodWV0dGVsbiBzaWNoIGRpZSBIYWVuZGUgdW5kIGFscyBzaWUgenVzYW1tZW4gd2VpdGVyZ2VoZW4sIGZyYWd0IGRlcgpTYXVkaTogIldpc3NlbiBTaWUsIGljaCBoYWJlIGVpbmUgRnJhZ2Ugd2VnZW4gZXR3YXMsIGRhcyBtaXIgaW4gQW1lcmlrYQphdWZnZWZhbGxlbiBpc3QuIgpQcmFlc2lkZW50IEJ1c2ggc2FndDogIk51biwgZXVyZSBFbWluZW56LCB3YXMgaW1tZXIgaWNoIGF1Y2ggZnVlciBTaWUgdHVuCmthbm4sIHdpbGwgaWNoIGdlcm5lIHR1bi4iCkRlciBTYXVkaSBmbHVlc3RlcnQ6ICJNZWluIFNvaG4gaGF0IGRpZXNlICJTdGFyIFRyZWsiIFNlcmllIGdlc2VoZW4sIHVuZCBkYXJpbgpnaWJ0IGVzIFJ1c3NlbiwgU2Nod2FyemUgdW5kIEFzaWF0ZW4sIGFiZXIga2VpbmUgQXJhYmVyLiBFciBpc3QgZGFydWViZXIgc2VocgphdWZnZWJyYWNodC4gRXIgdmVyc3RlaHQgbmljaHQsIHdhcnVtIGVzIGluIFN0YXIgVHJlayBrZWluZSBBcmFiZXIgZ2lidC4iClByYWVzaWRlbnQgQnVzaCBsYWNodCwgbGVobnQgc2ljaCBuYWVoZXIgYW4gZGVuIFNhdWRpIGhlcmFuIHVuZCBmbHVlc3RlcnQKenVydWVjazogIkRhcyBrb21tdCBkYWhlciwgd2VpbCBlcyBpbiBkZXIgWnVrdW5mdCBzcGllbHQuLi4iIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRWluIE1hbm4gZ2VodCBpbSBDZW50cmFsIFBhcmsgaW4gTmV3IFlvcmsgc3BhemllcmVuLiBQbG9ldHpsaWNoIGVyYmxpY2t0IGVyCmVpbiBNYWVkY2hlbiwgZGFzIHZvbiBlaW5lbSBLYW1wZmh1bmQgYW5nZWdyaWZmZW4gd2lyZC4gRXIgbGFldWZ0IGhpbiB1bmQKYmVnaW5udCBlaW5lbiB3aWxkZW4gS2FtcGYgbWl0IGRlbSBIdW5kLiBFbmRsaWNoIGthbm4gZXIgZGVuIEh1bmQgdG9ldGVuLCBkYXMKTWFlZGNoZW4gYmVmcmVpZW4gdW5kIHNvIGlociBMZWJlbiByZXR0ZW4uIApFaW4gUG9saXppc3QgaGF0IGRpZSBTaXR1YXRpb24gYmVvYmFjaHRldC4gRXIgZ2VodCB6dSBkZW0gTWFubiBoaW4sIGtsb3BmdCBpaG0KYXVmIGRpZSBTY2h1bHRlcm4gdW5kIHNhZ3Q6ICJTaWUgc2luZCBlaW4gSGVsZCEgTW9yZ2VuIHdpcmQgaW4gZGVyIFplaXR1bmcKc3RlaGVuOiBNdXRpZ2VyIE5ldyBZb3JrZXIgcmV0dGV0IE1hZWRjaGVuIGRhcyBMZWJlbiEiLiAKRGVyIE1hbm4gc2NodWV0dGVsdCBkZW4gS29wZiB1bmQgYW50d29ydGV0OiAiSWNoIGJpbiBrZWluIE5ldyBZb3JrZXIhIi4gCiJPaCwiIGVyd2lkZXJ0IGRlciBQb2xpemlzdCAiZGFubiBzdGVodCBtb3JnZW4gaW4gZGVyIFplaXR1bmc6ICJNdXRpZ2VyCkFtZXJpa2FuZXIgcmV0dGV0IE1hZWRjaGVuIGRhcyBMZWJlbiEiLiBXaWVkZXIgc2NodWV0dGVsdCBkZXIgTWFubiBkZW4gS29wZjoiCkljaCBiaW4ga2VpbiBBbWVyaWthbmVyISIuClZlcmJsdWVmZnQgc2NoYXV0IGRlciBQb2xpemlzdCBkZW4gTWFubiBhbiB1bmQgZnJhZ3Q6ICJXYXMgc2luZCBTaWUgZGFubj8hIgoiSWNoIGJpbiBQYWtpc3RhbmkuIgpBbSBuYWVjaHN0ZW4gVGFnIHN0ZWh0IGZvbGdlbmRlIFNjaGxhZ3plaWxlIGluIGRlciBaZWl0dW5nOiAiSXNsYW1pc2NoZXIKRXh0cmVtaXN0IHRvZXRldCBhbWVyaWthbmlzY2hlbiBIdW5kLiBWZXJiaW5kdW5nZW4genUgVGVycm9ybmV0endlcmsKdmVybXV0ZXQuIiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkdlb3JnZSBXLiBCdXNoIGhhdCBlaW5lbiBIZXJ6YW5mYWxsIHVuZCBzdGlyYnQuIEVyIHdpcmQgZGlyZWt0IGluIGRpZSBIb2VsbGUKZ2VzY2hpY2t0LCB3byBkZXIgVGV1ZmVsIGJlcmVpdHMgYXVmIGlobiB3YXJ0ZXQuICJJY2ggd2Vpc3MgbmljaHQgd2FzIGljaAptYWNoZW4gc29sbCIsIHNhZ3QgZGVyIFRldWZlbCwgIkR1IGJpc3QgendhciBhdWYgbWVpbmVyIExpc3RlLCBhYmVyIGljaCBoYWJlCmtlaW4gZnJlaWVzIFppbW1lciB1ZWJyaWcuIERhIER1IGF1ZiBqZWRlbiBGYWxsIGluIGRpZSBIb2VsbGUgZ2Vob2Vyc3QsCm11ZXNzZW4gd2lyIGFsc28gZWluZSBMb2VzdW5nIGZpbmRlbi4gV2lyIGhhYmVuIGhpZXIgZWluIHBhYXIgVHlwZW4sIGRpZSBsYW5nZQpuaWNodCBzbyBzY2hsZWNodCBzaW5kIHdpZSBEdS4gSWNoIHdlcmRlIGVpbmVuIGRhdm9uIGZyZWlsYXNzZW4sIGRhbWl0IER1CmRlc3NlbiBQbGF0eiBlaW5uZWhtZW4ga2FubnN0LCB1bmQgRHUgZGFyZnN0IGVudHNjaGVpZGVuIHdlbi4iCiJEYXMga2xpbmd0IGd1dCIsIGRlbmt0IHNpY2ggR2VvcmdlLCB1bmQgZGVyIFRldWZlbCBvZWZmbmV0IGRlbiBlcnN0ZW4gUmF1bS4KRHJpbm5lbiBzaWVodCBlciBSb25hbGQgUmVhZ2FuIGluIGVpbmVtIHJpZXNpZ2VuIFN3aW1taW5ncG9vbCwgaW5zIFdhc3NlcgplaW50YXVjaGVuIHVuZCB3aWVkZXIgYXVmdGF1Y2hlbi4gSW1tZXIgdW5kIGltbWVyIHdpZWRlci4uLiAKIkFjaCBub2UiLCBzYWd0IEdlb3JnZSwgImRhcyBpc3QgbmljaHRzIGZ1ZXIgbWljaC4gQXVzc2VyZGVtIGJpbiBpY2ggZWgga2VpbgpndXRlciBTY2h3aW1tZXIuLi4iCkRlciBUZXVmZWwgb2VmZm5ldCBkaWUgendlaXRlIFR1ZXIuIEVyIHNpZWh0IFJpY2hhcmQgTml4b24gaW4gZWluZW0gUmF1bQp2b2xsZXIgRmVsc2VuLCBkZXIgbWl0IGVpbmVtIEhvbHpoYW1tZXIgYXVmIGRhcyBHZXN0ZWluIGVpbmhhdXQsIGltbWVyIHVuZAppbW1lciB3aWVkZXIuLi4gCiJOZWluLCBpY2ggaGFiZSBQcm9ibGVtZSBtaXQgZGVyIFNjaHVsdGVyLiBFcyB3YWVyZSBlaW5lIFF1YWwgZnVlciBtaWNoLCBUYWcKZWluIFRhZyBhdXMgYXVmIEZlbHNlbiBlaW56dWhhdWVuIiBzYWd0IEdlb3JnZS4KRGVyIFRldWZlbCBvZWZmbmV0IGRpZSBkcml0dGUgVHVlci4gRHJpbm5lbiBsaWVndCBCaWxsIENsaW50b24gYW4gSGFlbmRlbiB1bmQKRnVlc3NlbiBnZWZlc3NlbHQgYXVmIGRlbSBCb2Rlbi4gdWViZXIgaWhtIGhvY2t0IE1vbmljYSBMZXdpbnNreSB1bmQgdHV0IGRhcywKd2FzIHNpZSBhbSBiZXN0ZW4ga2Fubi4gR2VvcmdlIHRyYXV0IHNlaW5lbiBBdWdlbiBuaWNodC4gCiJOYSBndXQsIGRhcyBrb2VubnRlIGljaCB0dW4iLCBzYWd0IGVyIHVuZCByZWlidCBzaWNoIGRpZSBIYWVuZGUuIERlciBUZXVmZWwKbGFlY2hlbHQgIk9LLCBNb25pY2EsIER1IGthbm5zdCBnZWhlbiEiCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpEcmVpIHRleGFuaXNjaGUgQ2hpcnVyZ2VuIHNwaWVsZW4gR29sZiB1bmQgdW50ZXJoYWx0ZW4gc2ljaCB1ZWJlciBkaWUKRm9ydHNjaHJpdHRlIGluIGRlciBDaGlydXJnaWUuIApFaW5lciBzYWd0LCAiSWNoIGJpbiBkZXIgYmVzdGUgQ2hpcnVyZyBpbiBUZXhhcy4gRWluIEtvbnplcnRwaWFuaXN0IHZlcmxvcgpzaWViZW4gRmluZ2VyIGJlaSBlaW5lbSBVbmZhbGwsIEljaCBoYWJlIHNpZSB3aWVkZXIgYW5nZW5hZWh0IHVuZCBhY2h0IE1vbmF0ZQpzcGFldGVyIGhhdCBlciBlaW4gUHJpdmF0a29uemVydCBiZWkgZGVyIEtvZW5pZ2luIHZvbiBFbmdsYW5kIGdlZ2ViZW4uIgpFaW4gYW5kZXJlciBzYWd0LiAiRGFzIGlzdCBuaWNodHMuIEVpbiBqdW5nZXIgTWFubiB2ZXJsb3IgYmVpZGUgQXJtZSB1bmQgYmVpZGUKQmVpbmUgYmVpIGVpbmVtIFVuZmFsbCwgSWNoIGhhYmUgc2llIHdpZWRlciBhbmdlbmFlaHQgdW5kIHp3ZWkgSmFocmUgc3BhZXRlcgpoYXQgZXIgZWluZSBHb2xkbWVkYWlsbGUgYmVpIGRlbiBPbHltcGlzY2hlbiBTcGllbGVuIGdld29ubmVuLiIKRGVyIGRyaXR0ZSBDaGlydXJnIG1laW50OiAiSWhyIHNlaWQgQW1hdGV1cmUuIFZvciBlaW5pZ2VuIEphaHJlbiByaXR0IGVpbiBNYW5uCmhpZ2ggdm9uIEtva2FpbiB1bmQgQWxrb2hvbCBmcm9udGFsIGluIGVpbmVuIFp1ZyBkZXIgbWl0IDgwIE1laWxlbiBkYWhlciBrYW0uCkFsbGVzIHdhcyBub2NoIHVlYnJpZyBibGllYiwgd2FyIGRlciBBcnNjaCBkZXMgUGZlcmRlcyB1bmQgZGVyIEh1dCBkZXMKQ293Ym95cy4gSWNoIGhhYmUgaWhuIG9wZXJpZXJ0IHVuZCBoZXV0ZSBpc3QgZXIgUHJhZXNpZGVudCBkZXIgVmVyZWluaWd0ZW4KU3RhYXRlbiEiCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpHZW9yZ2UgVy4gQnVzaCBhYnNvbHZpZXJ0IHNlaW4gSm9nZ2luZyBqZWRlbiBNb3JnZW4gaW0gZ2xlaWNoZW4gUGFyay4gRWluZXMKTW9yZ2VucyBwYXNzaWVydCBlciBlaW5lIGh1ZWJzY2hlIFByb3N0aXR1aWVydGUuIERpZSBydWZ0IGlobSB6dTogIjUwIERvbGxhcj8iCi0gR2VvcmdlIHJ1ZnQgenVydWVjazogIjUgRG9sbGFyISIKRGllIFByb3N0aXR1aWVydGUgZnVlaGx0IHNpY2ggYmVsZWlkaWd0IHVuZCBkcmVodCBzaWNoIHdlZy4gR2VvcmdlIHNldHp0IHNlaW4KSm9nZ2luZyBmb3J0LgpJbiBkZW4gbmFlY2hzdGVuIFRhZ2VuIGZ1ZWhyZW4gZGllIGJlaWRlbiBqZWRlbiBNb3JnZW4gYW4gZGVyIHNlbGJlbiBTdGVsbGUKZGFzIGdsZWljaGUgR2VzcHJhZWNoOiAiNTAgRG9sbGFyPyIgLSAiNSBEb2xsYXIhIgpad2VpIFdvY2hlbiBzcGFldGVyIGJlc2NobGllc3N0IExhdXJhLCBpaHJlbiBHZW9yZ2UgYmVpbSBKb2dnaW5nIHp1IGJlZ2xlaXRlbi4KU28gam9nZ3QgZGFzIFByYWVzaWRlbnRlbnBhYXIgdW5kIGtvbW10IGJhbGQgenUgZGVyIFByb3N0aXR1aWVydGVuLiBHZW9yZ2UKc2NoaWVsdCBhZW5nc3RsaWNoIHp1IGlociBoaW4gdW5kIGhvZmZ0LCBkYXNzIHNpZSBoZXV0ZSBuaWNodHMgc2FnZW4gd3VlcmRlLgpBbHMgZGllIGJlaWRlbiBkaWUgUHJvc3RpdHVpZXJ0ZSBwYXNzaWVyZW4sIHNhZ3QgZGllc2U6ICJEYSBzaWVoc3QgZHUsIHdhcyBtYW4KZnVlciBmdWVuZiBEb2xsYXIgYmVrb21tdCEiIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQXVmIGVpbmVyIFByb3BhZ2FuZGEtVG91cm5lZSBkdXJjaCBBbWVyaWthIGJlc3VjaHQgUHJhZXNpZGVudCBHZW9yZ2UgQnVzaCBlaW5lClNjaHVsZSB1bmQgZXJrbGFlcnQgZG9ydCBkZW4gU2NodWVsZXJuIHNlaW5lIFJlZ2llcnVuZ3Nwb2xpdGlrLiAKRGFuYWNoIGJpdHRldCBlciBkaWUgS2luZGVyLCBGcmFnZW4genUgc3RlbGxlbi4gRGVyIGtsZWluZSBCb2IgZXJncmVpZnQgZGFzCldvcnQ6IApIZXJyIFByYWVzaWRlbnQsIGljaCBoYWJlIGRyZWkgRnJhZ2VuOiAKMS4gV2llIGhhYmVuIFNpZSwgb2J3b2hsIFNpZSBiZWkgZGVyIFN0aW1tZW5hdXN6YWVobHVuZyB2ZXJsb3JlbiBoYWJlbiwgZGllCldhaGwgdHJvdHpkZW0gZ2V3b25uZW4/IAoyLiBXYXJ1bSB3b2xsZW4gU2llIGRlbiBJcmFrIG9obmUgR3J1bmQgYW5ncmVpZmVuPyAKMy4gRGVua2VuIFNpZSBuaWNodCwgZGFzIGRpZSBCb21iZSBhdWYgSGlyb3NoaW1hIGRlciBncm9lc3N0ZSB0ZXJyb3Jpc3Rpc2NoZQpBbnNjaGxhZyBhbGxlciBaZWl0ZW4gd2FyPyAKSW4gZGllc2VtIE1vbWVudCBsYWV1dGV0IGRpZSBQYXVzZW5rbGluZ2VsIHVuZCBhbGxlIFNjaHVlbGVyIGxhdWZlbiBhdXMgZGVtCktsYXNzZW56aW1tZXIuIEFscyBzaWUgdm9uIGRlciBQYXVzZSB6dXJ1ZWNrIGtvbW1lbiwgbGFlZHQgUHJhZXNpZGVudCBCdXNoCmVybmV1dCBlaW4sIEZyYWdlbiB6dSBzdGVsbGVuLCB1bmQgZGllc21hbCBlcmdyZWlmdCBKb2V5IGRhcyBXb3J0OiAKSGVyciBQcmFlc2lkZW50LCBpY2ggaGFiZSBmdWVuZiBGcmFnZW46IAoxLiBXaWUgaGFiZW4gU2llLCBvYndvaGwgU2llIGJlaSBkZXIgU3RpbW1lbmF1c3phZWhsdW5nIHZlcmxvcmVuIGhhYmVuLCBkaWUKV2FobCB0cm90emRlbSBnZXdvbm5lbj8gCjIuIFdhcnVtIHdvbGxlbiBTaWUgZGVuIElyYWsgb2huZSBHcnVuZCBhbmdyZWlmZW4/IAozLiBEZW5rZW4gU2llIG5pY2h0LCBkYXMgZGllIEJvbWJlIGF1ZiBIaXJvc2hpbWEgZGVyIGdyb2Vzc3RlIHRlcnJvcmlzdGlzY2hlCkFuZ3JpZmYgYWxsZXIgWmVpdGVuIHdhcj8gCjQuIFdhcnVtIGhhdCBkaWUgUGF1c2Vua2xpbmdlbCBoZXV0ZSAyMCBNaW51dGVuIGZydWVoZXIgZ2VrbGluZ2VsdD8gCjUuIFdvIGlzdCBCb2I/Pz8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkF1ZiBkaWUgRnJhZ2Ugd2FzIGVyIG5hY2ggZ2V3b25uZW5lbSBLcmllZ2UgbWl0IGRlbSBJcmFrIG1hY2hlbiB3aWxsIHNhZ3QKQnVzaDogV2lyIHdlcmRlbiBkZW4gSXJhayBpbiBkcmVpIFRlaWxlIHNwYWx0ZW4uIEluIFN1cGVyLCBTdXBlciBwbHVzIHVuZApEaWVzZWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXJ1bSBEdSBrZWluIEluZm9ybWF0aWtlciB3ZXJkZW4gc29sbHRlc3QhIChEZWVwYmx1ZSwgMjguIEZlYiAyMDA1LCAxMjowODozNSk6CiAKMS4gZHUgaGFzdCBiaXphcnJlIEFyYmVpdHN6ZWl0ZW4gLi4gd2llIGRpZSBQcm9zdGl0dWllcnRlbgogCjIuIGR1IHdpcnN0IGJlemFobHQsIHVtIGRlaW5lbiBLdW5kZW4gZ2x1ZWNrbGljaCB6dSBtYWNoZW4gLi4gd2llIGRpZQogUHJvc3RpdHVpZXJ0ZW4KIAozLiBkZWluIEt1bmRlIGJlemFobHQgdmllbCwgYWJlciBkZWluIENoZWYga2Fzc2llcnQgZGFzIEdlbGQgLi4gd2llIGJlaSBkZW4KIFByb3N0aXR1aWVydGVuCiAKNC4gZHUgaGFzdCBlaW5lbiBTdHVuZGVubG9obiBhYmVyIGRlaW5lIEFyYmVpdHN6ZWl0IGVuZGV0IHdlbm4gZGllIEFyYmVpdAogZXJsZWRpZ3QgaXN0IC4uIHdpZSBiZWkgZGVuIFByb3N0aXR1aWVydGVuCiAKNS4gYXVjaCB3ZW5uIGR1IGd1dCBiaXN0LCBiaXN0IGR1IG5pZSBzdG9seiBhdWYgZGVpbmUgQXJiZWl0IC4uIHdpZSBkaWUKIFByb3N0aXR1aWVydGVuCiAKNi4gZHUgd2lyc3QgYmV6YWhsdCwgdW0gRmFudGFzaWVuIGRlaW5lcyBLdW5kZW4genUgYmVmcmllZGlnZW4gLi4gd2llIGRpZQogUHJvc3RpdHVpZXJ0ZW4KIAo3LiBlcyBpc3Qgc2Nod2llcmlnIGZ1ZXIgZGljaCBlaW5lIEZhbWlsaWUgenUgaGFiZW4gdW5kIHp1IGhhbHRlbiAuLiB3aWUgYmVpCmRlbgogUHJvc3RpdHVpZXJ0ZW4KIAo4LiB3ZW5uIGR1IGdlZnJhZ3Qgd2lyc3QsIHdvcmluIGRlaW5lIEFyYmVpdCBiZXN0ZWh0LCBrYW5uc3QgZHUgZXMgbmljaHQKIHJpY2h0aWcgZXJrbGFlcmVuIC4uIHdpZSBkaWUgUHJvc3RpdHVpZXJ0ZW4KIAo5LiBkZWluZSBGcmV1bmRlIHZlcmxhc3NlbiBkaWNoIHVuZCBkdSBibGVpYnN0IHp1cnVlY2sgbWl0IFR5cGVuIHdpZSBkaXIgLi4KIHdpZSBkaWUgUHJvc3RpdHVpZXJ0ZW4KIAoxMC4gZGVyIEt1bmRlIGJlemFobHQgZGFzIEhvdGVsIHVuZCBkaWUgQXJiZWl0c3plaXQgLi4KIHdpZSBiZWkgZGVuIFByb3N0aXR1aWVydGVuCiAKMTEuIGRlaW4gQm9zcyBoYXQgZWluIHd1bmRlcnNjaG9lbmVzIEF1dG8gLi4gd2llIGJlaSBkZW4gUHJvc3RpdHVpZXJ0ZW4KIAoxMi4gd2VubiBkdSB6dSBlaW5lbSBLdW5kZW4gYXVmICJNaXNzaW9uIiBnZWhzdCwga29tbXN0IGR1IG1pdCBlaW5lbSBncm9zc2VuCiBMYWVjaGVsbiBhbiAuLiB3aWUgZGllIFByb3N0aXR1aWVydGVuCiAKMTMuIGFiZXIgd2VubiBkdSBkZWluZSBBcmJlaXQgZXJsZWRpZ3QgaGFzdCwgYmlzdCBkdSBzY2hsZWNodCBnZWxhdW50IC4uIHdpZQogZGllIFByb3N0aXR1aWVydGVuCiAKMTQuIHVtIGRlaW5lIEZhZWhpZ2tlaXRlbiB6dSBiZXdlaXNlbiwgbXVzc3QgZHUgZ3JhdWVudm9sbGUgVGVzdHMgYmVzdGVoZW4gLi4KIHdpZSBkaWUgUHJvc3RpdHVpZXJ0ZW4KIAoxNS4gZGVyIEt1bmRlIG1vZWNodGUgaW1tZXIgd2VuaWdlciBiZXphaGxlbiB1bmQgZHUgbXVzc3QgdHJvdHpkZW0gV3VuZGVyCiB2b2xsYnJpbmdlbiAuLiB3aWUgZGllIFByb3N0aXR1aWVydGVuCiAKMTYuIHdlbm4gZHUgbW9yZ2VucyBhdWZzdGVoc3QsIGRlbmtzdCBkdTogIkljaCBrYW5uIGRhcyBuaWNodCBlaW4gTGViZW4gbGFuZwogbWFjaGVuIiAuLiB3aWUgZGllIFByb3N0aXR1aWVydGVuCiAKIEZyb2hlcyAoQW4pU2NoYWZmZW4uLi4gCiAKUFM6IFdhcnVtIGhhdCBtaXIgZGFzIG51ciBmcnVlaGVyIG5pZW1hbmQgZ2VzYWd0LCBiZXZvciBlcyBzb3dlaXQgZ2Vrb21tZW4gaXN0Ci4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhcnVtIER1IGtlaW4gSW5mb3JtYXRpa2VyIHdlcmRlbiBzb2xsdGVzdCEgKEdyYWxrb3IsIDI4LiBGZWIgMjAwNSwgMTg6MjE6MTYpOgp+IyEgcm49RGVlcGJsdWUgcnQ9MTEwOTU4ODkxNSByZz13aXR6ZQp+IyEgdGlkPTExMDk1ODg5MTUKQW5tZXJrdW5nIHZvbiBtaXI6IEljaCB3aWxsIGVpbiBCZXR0IGltIEJ1ZXJvLi4uCkcuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcnVtIER1IGtlaW4gSW5mb3JtYXRpa2VyIHdlcmRlbiBzb2xsdGVzdCEgKEJhbWJpLCAyOC4gRmViIDIwMDUsIDE4OjI4OjI0KToKfiMhIHJuPUdyYWxrb3IgcnQ9MTEwOTYxMTI3NiByZz13aXR6ZQp+IyEgdGlkPTExMDk1ODg5MTUKRHUgd2lyc3QgbGFjaGVuOiBpY2ggSEFCRSBlaW4gQmV0dCBpbSBCdWVyby4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcnVtIER1IGtlaW4gSW5mb3JtYXRpa2VyIHdlcmRlbiBzb2xsdGVzdCEgKFpvb2ssIDI4LiBGZWIgMjAwNSwgMTg6Mjk6MjYpOgp+IyEgcm49QmFtYmkgcnQ9MTEwOTYxMTcwNCByZz13aXR6ZQp+IyEgdGlkPTExMDk1ODg5MTUKSWNoIG11c3MgZWhybGljaCBzYWdlbjogSWNoIGthbm4gZGFydWViZXIgbmljaHQgbGFjaGVuLiA7KQoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdhcnVtIER1IGtlaW4gSW5mb3JtYXRpa2VyIHdlcmRlbiBzb2xsdGVzdCEgKERhcmtsb3IsIDI4LiBGZWIgMjAwNSwgMTk6NTU6MzApOgp+IyEgcm49Wm9vayBydD0xMTA5NjExNzY2IHJnPXdpdHplCn4jISB0aWQ9MTEwOTU4ODkxNQpEdSBhcmJlaXRlc3QgenUgSGF1c2U/CgpEYXJrbG9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBXYXJ1bSBEdSBrZWluIEluZm9ybWF0aWtlciB3ZXJkZW4gc29sbHRlc3QhIChBbGtvaG9sLCAyOC4gRmViIDIwMDUsIDIwOjA5OjU1KToKfiMhIHJuPURhcmtsb3IgcnQ9MTEwOTYxNjkzMCByZz13aXR6ZQp+IyEgdGlkPTExMDk1ODg5MTUKaWNoIHNvbGx0ZSBtaXIgYXVjaCwgbmVuIEJldHQgaW5zIEJ1ZXJvIHN0ZWxsZW4sIHNwYXJ0IFdlZ2UKCkFsa2kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJ1c2ggaW4gTWFpbnogKEtlbGx5YnVuZHksIDI4LiBGZWIgMjAwNSwgMjI6MDE6MTQpOgpGcmVpIG5hY2ggNyBUYWdlLTcgS29lcGZlIHZvbSBGcmVpdGFnOgoKJ0ljaCB3ZWlzcyBuaWNodCwgd2FzIGRhcyBHZW1lY2tlcmUgdWViZXIgZGllIGdhbnplbiBTaWNoZXJoZWl0c3ZvcmtlaHJ1bmdlbgpzb2xsLiBEaWUgd2FyZW4gZG9jaCBiZXN0ZW5zIGdlZWlnbmV0LCBkaWUgTWFpbnplciBCZXZvZWxrZXJ1bmcgdm9yIEJ1c2ggenUKc2NodWV0emVuLiBMZWlkZXIgaGFiZW4gZGllIG5pY2h0cyBnZW51dHp0LCBkaWUgUmF0dGUgaXN0IHRyb3R6ZGVtIGlyZ2VuZHdpZQpyZWluZ2Vrb21tZW4uLi4nCgpLZWxseSwgZ3JpbnNlbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCdXNoIGluIE1haW56IChNdWFkaWIsICAxLiBNYXIgMjAwNSwgMTA6MjM6NTgpOgp+IyEgcm49S2VsbHlidW5keSBydD0xMTA5NjI0NDc0IHJnPXdpdHplCn4jISB0aWQ9MTEwOTYyNDQ3NAphY2ggZGllc2UgYmVzY2h3ZXJkZW4gc2luZCBkb2NoIGV0d2FzIHNlbHRzYW0uIGRhIHd1cmRlbiBhbHNvIGRpZSBndWxsaWRlY2tlbAp6dWdlc2Nod2Vpc3N0LiBuYSB1bmQ/IGlzdCBndWxsaWRlY2tlbCBoZWJlbiBlaW4gbWFpbnplciBzdGFkdHNwb3J0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3Vpbm5lc3MgKEFudGhlYSwgIDguIEFwciAyMDA1LCAxNTowMDoyMyk6ClNjaG5lZXdpdHRjaGVuLCBEYWV1bWxpbmcgdW5kIFF1YXNpbW9kbyBzYXNzZW4gZWluZXMgQWJlbmRzIHp1c2FtbWVuIHVuZAp1bnRlcmhpZWx0ZW4gc2ljaC4gU2NobmVld2l0dGNoZW4gc2FndGU6ICJJY2ggZ2xhdWJlLCBkYXNzIGljaCBkYXMgc2Nob2Vuc3RlCk1hZWRjaGVuIGRlciBXZWx0IGJpbi4iIERlciBEYWV1bWxpbmcgc2FndGU6ICJJY2ggbXVzcyB3b2hsIGRlciBrbGVpbnN0ZQpNZW5zY2ggZGVyIFdlbHQgc2Vpbi4iIFVuZCBRdWFzaW1vZG8gZXJ3aWVkZXJ0ZSAiSWNoIGJpbiBkZWZpbml0aXYgZGVyCmhhZXNzbGljaHN0ZSBNZW5zY2ggZGVyIFdlbHQuIgpBbHNvIGJlc2NobG9zc2VuIHNpZSwgenVyIFplbnRyYWxlIGRlcyBHdWlubmVzIEJ1Y2ggZGVyIFJla29yZGUgenUgZ2VoZW4gdW5kCmlocmUgQW5zcHJ1ZWNoZSB1ZWJlcnBydWVmZW4genUgbGFzc2VuLiBBbHMgZXJzdGVzIGdpbmcgU2NobmVld2l0dGNoZW4sIHVuZAprYW0gdWViZXJnbHVlY2tsaWNoIHdpZWRlciBoZXJhdXM6ICJFcyBpc3Qgb2ZmaXppZWxsISBJY2ggQklOIGRhcyBzY2hvZW5zdGUKTWFlZGNoZW4gZGVyIFdlbHQuIiBBbHMgbmFlY2hzdGVzIGdpbmcgZGVyIERhZXVtbGluZyByZWluIHVuZCBrYW0KdHJpdW1waGllcmVuZCB3aWVkZXIgenUgcnVlY2s6ICJJY2ggYmluIG9mZml6aWVsbCBkZXIga2xlaW5zdGUgTWVuc2NoIGRlcgpXZWx0ISIuCk51biBtYWNodGUgc2ljaCBhdWNoIFF1YXNpbW9kbyBhdWYgZGVuIHdlZywgdW5kIGthbSBuYWNoIGxhZW5nZXJlciBaZWl0CmFic29sdXQgdmVyd2lycnQgd2llZGVyIGhlcmF1cy4gRGllIGFuZGVyZW4gZnJhZ3RlbiBpaG46ICJVbmQ/IEhhdCBlcwpnZWtsYXBwdD8iLiBFciBlcndpZGVydGUgbnVyOiAiV2VyIHp1bSBUZXVmZWwgaXN0IENhbWlsbGEgUGFya2VyIEJvd2xlcz8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogWndlaXVuZHZpZXJ6aWcgKEdyaW1tYm9ybiwgMTAuIEFwciAyMDA1LCAxNzozODo1OCk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTExMTMxNDYwNTkgcmc9ZGlza3Vzc2lvbgp+IyEgdGlkPTExMTI4MTQzODkKV28gd2lyIHNjaG9uIGRhcnVlYmVyIGRpc2t1dGllcmVuLi4uCgpFaW4gQXRoZWlzdCBzdGlyYnQsIHVuZCB6dSBzZWluZW0gZ3Jvc3NlbiBFcnN0YXVuZW4gc3RlaHQgZXIgZGFyYXVmaGluIHZvciBkZW0KVGV1ZmVsLiBEZXIgc2FndDogIkljaCB3ZWlzcywgRHUgaGFzdCBpbW1lciBnZWdsYXVidCBtaWNoIHVuZCBkaWUgSG9lbGxlIGdpYnQKZXMgbmljaHQsIGFiZXIsIHRqYSwgRHUgaGFzdCBEaWNoIGhhbHQgZ2VpcnJ0LiBOYSwga29tbSByZWluLCBpY2ggZnVlaHIgRGljaAptYWwgcnVtLiIgU2llIGdlaGVuIGFsc28gZHVyY2ggZGllIEhvZWxsZSwgc2FuZnRlIFdpZXNlbiwgbGF1c2NoaWdlIFN0cmFlbmRlLAp1ZWJlcmFsbCBmcm9laGxpY2hlIE1lbnNjaGVuLiBTYWd0IGRlciBBdGhlaXN0OiAiT2gsIHNvIGhhYmUgaWNoIG1pciBkYXMgamEKbnVuIG5pY2h0IG5pY2h0IHZvcmdlc3RlbGx0LCBhYmVyIGRhcyBpc3QgZG9jaCBnYW56IHNjaG9lbiBoaWVyLiBEYW5rZSBmdWVyCmRpZSBGdWVocnVuZyEiIEVyIGZsYW5pZXJ0IGFsc28gZHVyY2ggZGllIHNjaG9lbmUgTGFuZHNjaGFmdCwgYWxzIGVyIHRpZWYgaW4KZGVuIER1ZW5lbiBlaW4gdGllZmVzIExvY2ggZW50ZGVja3QuIERvcnQgdW50ZW4gRmV1ZXIsIERyZWl6YWNrZSwgSGV1bGVuIHVuZApaYWVobmVrbGFwcGVybiBiZWkgZGVuIFNlZWxlbiwgZGllIGRhIHVudGVuIHNpbmQuIEVyIGxhZXVmdCBnZXNjaG9ja3QgenVtClRldWZlbDogIkhvZXJtYWwsIER1IGhhc3QgbWljaCBydW1nZWZ1ZWhydCwgdW5kIGRhcyBpc3QgamEgYWxsZXMgc2VociBzY2hvZW4KaGllciB1bmQgc28sIGFiZXIgaW4gZGVuIER1ZW5lbiBkYSBpc3Qgc28gZWluIHRpZWZlcyBMb2NoLCBpbiBkZW0gZGllIFNlZWxlbgpmdWVyY2h0ZXJsaWNoIGxlaWRlbiwgd2FzIGlzdCBkZW5uIGRhIGxvcz8iICJPaCwiIHNhZ3QgZGVyIFRldWZlbC4gIkRhcyBzaW5kCmRpZSBLYXRob2xpa2VuLCBkaWUgd29sbGVuIGRhcyBzby4iCgpHcmltbWJvcm4gZGVyIEF0aGVpc3QKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjExOiBad2VpdW5kdmllcnppZyAoS2VsbHlidW5keSwgMTAuIEFwciAyMDA1LCAxNzo0NjowMCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTExMzE0NzUzOCByZz13aXR6ZQp+IyEgdGlkPTExMTI4MTQzODkKSW4gZWluZXIgQmFyIGluIEFsYWJhbWEgc2l0emVuIHp3ZWkgd2Vpc3NlIFplY2hrdW1wYW5lLCBkZXIgZWluZSBpc3Qga2Fsa3dlaXNzCnVuZCB0cmlua3QgZWluZSBCb3VyYm9uIG5hY2ggZGVtIGFuZGVyZW4uIEZyYWd0IHNlaW4gWmVjaGt1bXBlbDonc2FnIG1hbCB3YXMKaXN0IGRlbm4gbWl0IERpcj8gRHUgc2llaHN0IGphIGhldXRlIGF1cyB3aWUgbmUgTGVpY2hlIGF1ZiBVcmxhdWI/JyAtICdpY2gKaGFiZSBoZXV0ZSBtb3JnZW4gZWluZW4gSGVyemFuZmFsbCBnZWhhYnQuJyAtICdVaSEgdW5kIGRhbm4gc2Nob24gd2llZGVyCnNhdWZlbj8nIC0gJ0phLiBpY2ggd2FyIGtsaW5pc2NoIHRvdCB1bmQgaGFiZSBHb3R0IGdlc2VoZW4uJyAtICdEYW5uIHd1ZXJkZQppY2ggZXJzdCByZWNodCBuaWNodCBzYXVmZW4hJyAtICdOdW4gamEsIHdlbm4gRHUgR290dCBnZXNlaGVuIGhhZXR0ZXN0LCB3dWVyZGUKZXMgRGlyIGF1Y2ggc28gZ2VoZW4uJyAtICdXaWVzbyBkYXMgZGVubj8nIC0gJ1NpZSB3YXIgc2Nod2FyeiEhIScKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZhZWthbGh1bW9yIChHbG9pbnNvbiwgMjkuIEFwciAyMDA1LCAxNDoyMzo0Nyk6CklyZ2VuZHdhbm4gc3RhbmQgZGFzIGhpZXIgbWFsIGlua29tcGxldHQgZHJpbi4KCkRpZSBHZWlzdGVyc2NoZWlzc2U6IER1IHdlaXNzdCwgZGFzcyBEdSBnZXNjaGlzc2VuIGhhc3QuIERhIGlzdCBTY2hlaXNzZSBhbQpLbG9wYXBpZXIsIGFiZXIga2VpbmUgU2NoZWlzc2UgaW4gZGVyIFNjaHVlc3NlbC4gS29lbm50ZSBhdWNoCiJUb3JwZWRvc2NoZWlzc2UiIGdld2VzZW4gc2Vpbiwgd2VubiBtYW4gZXMgcGx1bXBzZW4gZ2Vob2VydCBoYXQuCgpEaWUgVGVmbG9uc2NoZWlzc2U6IEtvbW10IHNvIHNhbmZ0IHVuZCB3ZWljaCByYXVzLCBkYXNzIG1hbiBlcyBnYXIgbmljaHQKbWVya3QuIEtlaW5lIFNwdXJlbiBhdWYgZGVtIEtsb3BhcGllci4gRHUgbXVzc3QgaW4gZGllIEtsb3NjaHVlc3NlbCBzZWhlbiwgdW0Kc2ljaGVyenVnZWhlbi4KCkRpZSBHdW1taXNjaGVpc3NlOiBEaWVzZSBoYXQgZGllIEtvbnNpc3Rlbnogdm9uIGhlaXNzZW0gVGVlciB1bmQgaGludGVybGFlc3N0CndpZGVyc3BlbnN0aWdlIFJlc3RlIGluIGRlciBLbG9zY2h1ZXNzZWwuIER1IHdpc2Noc3QgRGlyIGRlbiBBcnNjaCAxOCBtYWwgdW5kCmVyIGlzdCBpbW1lciBub2NoIG5pY2h0IHNhdWJlci4gRHUgZW5kZXN0IGRhbWl0LCBkYXNzIER1IERpciBLbG9wYXBpZXIgaW4gZGllClVudGVyaG9zZW4gc3RvcGZzdCwgdW0gc2llIG5pY2h0IHp1IHZlcnNhdWVuLgoKRGllIFNwYWV0enVlbmRlcnNjaGVpc3NlOiBEdSBoYXN0IERpciBkZW4gSGludGVybiBmZXJ0aWcgYWJnZXdpc2NodCB1bmQgc3RlaHN0CmdyYWRlIGF1ZiAuLi4gYWxzIGRlciBuYWVjaHN0ZSBTY2h1YiBrb21tdC4KCkRpZSBTY2hsYW5nZW5zY2hlaXNzZTogU2llIGlzdCBnbGl0c2NoaWcsIGhhdCBkaWUgRGlja2UgZWluZXMgRGF1bWVucyB1bmQgaXN0Cm1pbmRlc3RlbnMgNTAgY20gbGFuZy4gSGF0IGRhcyBQb3RlbnRpYWwgenVyIFRvcnBlZG9zY2hlaXNzZS4KCkRpZSBLb3JrZW5zY2hlaXNzZTogQXVjaCBhbHMgIlNjaHdpbW1lciIgYmVrYW5udDogU29nYXIgbmFjaCBkZW0gZHJpdHRlbiBtYWwKc3B1ZWxlbiBpc3Qgc2llIG5vY2ggZGEuIE9oIEdvdHQhIFdpZSB3aXJkIG1hbiBzaWUgbG9zPyBEYXMgU2NoZWlzc2RpbmcgZ2VodAplaW5mYWNoIG5pY2h0IHVudGVyLiBUcml0dCBub3JtYWxlcndlaXNzZSB1ZWJlcmFsbCBhdWYsIG51ciBuaWNodCBpbiBkZXIKZWlnZW5lbiBXb2hudW5nLgoKRGllIFd1bnNjaHNjaGVpc3NlOiBEdSBzaXR6dCBkYSBtaXQgQW1laXNlbiBpbiBkZW4gRGFlcm1lbi4gRHUgc2Nod2l0enQsCmxhZXNzdCBlaW4gcGFhciBGdWVyemUsIHR1c3QgZWluZmFjaCBhbGxlcyAuLi4gYXVzc2VyIHNjaGVpc3Nlbi4KCkZldWNodGUtQmFja2VuLVNjaGVpc3NlOiBEaWVzZSBBYmFydCB0cmlmZnQgbWl0IGhvaGVyIEdlc2Nod2luZGlna2VpdCBzY2hyYWVnCmF1ZiBkaWUgV2Fzc2Vyb2JlcmZsYWVjaGUgYXVmIHVuZCBzcHJpdHp0IERlaW5lbiBIaW50ZXJuIG5hc3MuCgpaZW1lbnRibG9jay0gb2RlciAiT29oaCBHb3R0ISItU2NoZWlzc2U6IEt1cnogbmFjaCBkZW0gQmVnaW5uIHd1ZW5zY2hzdCBEdQpEaXIsIER1IGhhZXR0ZXN0IGVpbmUgb2VydGxpY2hlIEJldGFldWJ1bmcgYmVrb21tZW4uCgpLaW5nIEtvbmctIG9kZXIgS29tbW9kZW5zY2hlaXNzZTogRGllc2VyIEhhdWZlbiBpc3Qgc28gZ3Jvc3MsIGRhc3MgZXIgc2ljaAp3ZWlnZXJ0LCBpbiBkZXIgS2FuYWxpc2F0aW9uIHp1IHZlcnNjaHdpbmRlbiwgYmV2b3IgRHUgaWhuIGluIGtsZWluZXJlIEJyb2NrZW4KemVybGVndCBoYXN0IChlaW4gS2xlaWRlcmJ1ZWdlbCBmdW5rdGlvbmllcnQgaGllciByZWNodCBndXQpLiBQYXNzaWVydAp1ZWJlcmFsbCwgbnVyIG5pY2h0IGF1ZiBkZW0gZWlnZW5lbiBLbG8uCgpEaWUgR2VoaXJuYmx1dHVuZ3NzY2hlaXNzZTogRGllc2UgU2NoZWlzc2UgaGF0IEVsdmlzIGdla2lsbHQuIFNpZSBrb21tdApub3JtYWxlcndlaXNzZSBlcnN0IGRhbm4sIHdlbm4gbWFuIHZvciBsYXV0ZXIgRHJ1ZWNrZW4gc2Nob24gYWJ3ZWNoc2VsbmQgcm90LApncnVlbiB1bmQgYmxhdSBhbmxhZXVmdC4KCkRpZSBCaWVyc2NoZWlzc2U6IEVpbmUgZGVyIHNjaGxpbW1zdGVuLCBhYmVyIGF1Y2ggaGFldWZpZ3N0ZW4gU2NoZWlzc2Vzb3J0ZW4uClNpZSB0cml0dCBhbSBUYWcgbmFjaCBkZXIgTmFjaHQgZGF2b3IgYXVmLiBOb3JtYWxlcndlaXNlIHJpZWNodCBzaWUgZ2FyIG5pY2h0CnNvIHNjaGxlY2h0LCBhYmVyIGRhcyB0YWV1c2NodC4KCkRpZSBFeHBsb3Npb25zc2NoZWlzc2U6IER1IGJlc3BydWVoc3QgZGllIFNjaHVlc3NlbCB2b24gb2JlbiBiaXMgdW50ZW4gYmlzIHNpZQphdXNzaWVodCBhbHMgc2VpIHNpZSBtaXQgZWluZXIgU2Nocm90bGFkdW5nIE9yZWdhbm8gYmVzY2hvc3NlbiB3b3JkZW4gdW5kIER1Cnd1bmRlcnN0IERpY2gsIHdpZSBEZWluIExvY2ggaW4gc28gdmllbGUgUmljaHR1bmdlbiBnbGVpY2h6ZWl0aWcgemVpZ2VuIGthbm4uCkRhbm4gc3RlbGxzdCBEdSBmZXN0LCBkYXNzIGRhcyBLbG9wYXBpZXIgYWxsZSB1bmQgd2VpdCB1bmQgYnJlaXQga2VpbmUKS2xvYnVlcnN0ZSBpbiBTaWNodCBpc3QuIFBhc3NpZXJ0IGF1Y2ggbnVyIGF1ZiBmcmVtZGVuIEtsb3MuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZhZWthbGh1bW9yIChTa3lmaXJlLCAgMi4gTWFpIDIwMDUsIDIzOjE5OjQ2KToKfiMhIHJuPUdsb2luc29uIHJ0PTExMTQ3Nzc0Mjcgcmc9d2l0emUKfiMhIHRpZD0xMTE0Nzc3NDI3CmFsc28gaWNoIGthbm5zIG5pY2h0IGVya2xhZXJlbiwgYWJlciBpcmdlbmR3aWUgaGFiIGljaCBnZWxhY2h0LiAqaHVzdCoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRmFla2FsaHVtb3IgKFpvb2ssICAzLiBNYWkgMjAwNSwgMDk6MDg6MTIpOgp+IyEgcm49U2t5ZmlyZSBydD0xMTE1MDY4Nzg2IHJnPXdpdHplCn4jISB0aWQ9MTExNDc3NzQyNwprbGluZ3Qgc28sIGFscyBicmF1Y2h0ZSBpY2ggZ2FyIG5pY2h0IGRyYXVmc2NoYXVlbiwgaWNoIHdlcmRzIHdvaGwgYXVjaApuaWNodCBiZWdyZWlmZmVuLgoKem8iZHVtbWVyY2hlbiJvay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRqYS4uLiAoUmVxdWllbSwgIDMuIE1haSAyMDA1LCAxNDozNDoxOSk6CkEgYnVzIHN0b3BzIGFuZCB0d28gSXRhbGlhbiBtZW4gZ2V0IG9uLiBUaGV5IHNpdCBkb3duIGFuZCBlbmdhZ2UgaW4gYW4KYW5pbWF0ZWQgY29udmVyc2F0aW9uLiBUaGUgbGFkeSBzaXR0aW5nIGJlaGluZCB0aGVtIGlnbm9yZXMgdGhlbSBhdApmaXJzdCwgYnV0IGhlciBhdHRlbnRpb24gaXMgZ2FsdmFuaXplZCB3aGVuIHNoZSBoZWFycyBvbmUgb2YgdGhlIG1lbiBzYXkgdGhlCmZvbGxvd2luZzoKCiJFbW1hIGNvbWUgZmlyc3QuIERlbiBJIGNvbWUuIERlbiB0d28gYXNzZXMgY29tZSB0b2dldGhlci4gSSBjb21lCm9uY2UtYS1tb3JlLiBUd28gYXNzZXMsIHRoZXkgY29tZSB0b2dldGhlciBhZ2Fpbi4gSSBjb21lIGFnYWluIGFuZCBwZWUKdHdpY2UuIFRoZW4gSSBjb21lIG9uZSBsYXN0YSB0aW1lLiIKCiJZb3UgZm91bC1tb3V0aGVkIHNleCBvYnNlc3NlZCBzd2luZSwiIHJldG9ydGVkIHRoZSBsYWR5IGluZGlnbmFudGx5LgoKIkluIHRoaXMgY291bnRyeS4uLi53ZSBkb24ndCBzcGVhayBhbG91ZCBpbiBwdWJsaWMgcGxhY2VzIGFib3V0IG91cgpzZXggbGl2ZXMuLi4uLi4uLi4iCiJIZXksIGNvb2xhIGRvd24gbGFkeSwiIHNhaWQgdGhlIG1hbi4uLi4uLi4uLi4KIldobyB0YWxraW4nIGFib3V0YSBzZXhhPy4uLi4uCkknbSBhIGp1c3RhIHRlbGxpbicgbXkgZnJpZW5kYSxob3cgdG8gc3BlbGxhICdNaXNzaXNzaXBwaSEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VubiBTdHVkaXMgbGFuZ3dlaWxpZyBpc3QuLi4gKEdsb2luc29uLCAgNC4gTWFpIDIwMDUsIDEyOjU0OjE1KToKfiMhIHJuPVJlcXVpZW0gcnQ9MTExNTIwMzMyOCByZz13aXR6ZQp+IyEgdGlkPTExMTUyMDMzMjgKTmljaHQgZW50c2NodWxkaWd0LiBEaWUgVW1sYXV0ZSBtYWNoZW4gbmFlbWxpY2ggZGllIEZvcm1hdGllcnVuZyB3ZWl0ZXIKa2FwdXR0LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogV2VubiBTdHVkaXMgbGFuZ3dlaWxpZyBpc3QuLi4gKFJlcXVpZW0sICA0LiBNYWkgMjAwNSwgMTI6NTg6MDQpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTExNTIwNDA1NSByZz13aXR6ZQp+IyEgdGlkPTExMTUyMDMzMjgKSGFzdCBqYSByZWNodC4gSGllciBub2NobWFsIG1pdCBvaG5lIFVtbGF1dGUgaW5uZW4gZHJpbm5lIDspCgotLS0KCgoiR3VjayBtYWwiIHNhZ3RlIFBhcGEgTHltcGggdW5kIGRpZSBhbmRlcmVuIEx5bXBoZSBzdGF1bnRlbiBuaWNodCAKc2NobGVjaHQsIGRlbm4gT3BhIEx5bXBoIGhhdHRlIGZ1ZXIgYWxsZSBlaW4gbmV1ZXMgTWFudGVsemVsbC0gTHltcGhvbSAKbWl0Z2VicmFjaHQuCgpOdXIgTWFtYSBMeW1waCBzY2hpZW4gdW56dWZyaWVkZW4uCgpBYmVyIE9wYSBMeW1waCBncmluc3RlIG51ciwgem9nIGVpbiBuaWVnZWxuYWdlbG5ldWVzIEhhYXJ6ZWxsLSBMeW1waG9tIAphdXMgc2VpbmVtIEhlcnpiZXV0ZWwgdW5kIGdhYiBlcyBNYW1hIEx5bXBoLiBTaWUgZnJldXRlIHNpY2ggdW5kIHpvZyBlcyAKc2ljaCBzb2ZvcnQgdWViZXIgZGVuIGJsYXVlbiBLb3BmLgoKU2llIGdpbmcgc2NobmVsbCBpbiBpaHJlIE1hZ2luYWx6b25lIHVuZCBiZWd1Y2t0ZSBzaWNoIGltIEJsdXRzcGllZ2VsLiAKV2llIGd1dCBpaHIgZGllc2VzIEhhYXJ6ZWxsLSBMeW1waG9tIGRvY2ggc3RhbmQsIGRhIHd1ZXJkZSBpaHIgTGllYmhhYmVyIApIb2Rna2luLCBlaW4gcmVpY2hlciBMeW1waCBhdXMgZGVuIFVTQSwgd29obCBncm9zc2UgQXVnZW4gbWFjaGVuISBTaWUgCm1vY2h0ZSBpaHJlbiBNYW5uIHp3YXIsIGFiZXIgaW0gQmV0dCB3YXIgZXIgaWhyIGVpbmZhY2ggenUga2xlaW56ZWxsaWcuCgpQYXBhIEx5bXBoIHd1c3N0ZSwgd2FzIGRhIHZvciBzaWNoIGdpbmcsIGFiZXIgZXMgc3RvZXJ0ZSBpaG4gbmljaHQgc2VociwgCmRlbm4gZXIgaGF0dGUgc2NobGllc3NsaWNoIHNlbGJlciBlaW4gVmVyaGFlbHRuaXMgbWl0IGRlciBmYWJlbGhhZnRlbiAKQW5hZW1pZSwgZWluZXIgZnJhbnpvZXNpc2NoZW4gRnJldW5kaW4gZWluZXMgS2VnZWxrb2xsZWdlbnMsIGRlciBzaWNoIGF1cyAKU2NoZXJ6IGltbWVyIEtub2NoZW4tIE1hcmsgbmFubnRlLiBQYXBhIEx5bXBoIGJlc3VjaHRlIGlobiBvZnQgaW0gS25hc3QuIApEb3J0IHNhc3MgZXIgaW4gZGVyIFQtIFplbGxlLCB3ZWlsIGVyIGFuZ2VibGljaCBpbmZpbHRyaWVydCBoYXR0ZS4gRGllcyAKYmVoYXVwdGV0ZW4gamVkZW5mYWxscyB6YWhscmVpY2hlIEJhc29waGlsZSwgZGllIGF1cyBlaW5lciBLbmVpcGUgaGVyYXVzIAphbGxlcyBnZXNlaGVuIGhhYmVuIHdvbGx0ZW4uCgpNYW4gZHVyZnRlIG51ciBlaW5tYWwgd29lY2hlbnRsaWNoIGluIGRlbiBLbmFzdCwgYWJlciBLbm9jaGVuLSBNYXJrIGhhdHRlIApnbHVlY2tsaWNoZXJ3ZWlzZSBlaW5lbiBHb2xnaS0gQXBwYXJhdCBpbiBkZXIgWmVsbGUgdW5kIGtvbm50ZSBzbyAKd2VuaWdzdGVucyB0ZWxlZm9uaWVyZW4uCgpEaWUgZ2FuemUgRmFtaWxpZSB1bmQgZGllIEZyZXVuZGUgTGFuZ2hhbnMgKGVpbmUgZWNodGUgUmllc2VuemVsbGUpCnVuZCBkZXIgc2Nod2VyaG9lcmlnZSBNb25venl0IEtsYXVzIHNhc3NlbiBhYmVuZHMgb2Z0IHZvciBkZW4gClN0ZXJuZW5oaW1tZWwtIFplbGxlbiB1bmQgd2FyZW4gaW0gR3Jvc3NlbiB1bmQgR2FuemVuIGRvY2ggcmVjaHQgCnp1ZnJpZWRlbiBtaXQgaWhyZW0gZGFzZWluLCBhdWNoLCB3ZW5uIGRpZSBnYW56ZSBXZWx0IGlyZ2VuZHdpZSBib2VzYXJ0aWcgCmdld29yZGVuIHp1IHNlaW4gc2NoaWVuLgoKTWFuY2htYWwgZ2luZ2VuIGF1Y2ggYWxsZSB6dXNhbW1lbiB6dW0gR3JpZWNoZW4gdW0gZGllIEVja2UsIHp1IAoiUGFubmlrdWxpdGlzIi4KClNvIGxlYnRlbiBkaWUgdmllbGVuIGJsYXVlbiBMeW1waGUgbm9jaCBsYW5nZSB1bmQgZ2x1ZWNrbGljaCBqZW5zZWl0cyBkZXIgCmdyb3NzZW4gQmVyZ2UgdW5kIGZyZXV0ZW4gc2ljaCBpaHJlcyBMZWJlbnMuCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZXZpZWxlIEZyZWVCU0QtRW50d2lja2xlciBicmF1Y2h0IG1hbiwgdW0gZWluZSBHbHVlaGJpcm5lIHp1IHdlY2hzZWxuPyAoTm9ubmUsICA5LiBNYWkgMjAwNSwgMDg6MTI6MzgpOgp+IyEgb249Tm9ubmUgb3Q9MTExNTYxOTEzNCBvZz13d3cKR2VuYXUgMTE2OS4KICBvIDIzIHdlcmRlbiBpbiAtQ1VSUkVOVCBiZXJpY2h0ZW4sIGRhc3MgZGFzIExpY2h0IGF1cyBpc3QKICBvIDQgd2VyZGVuIGJlaGF1cHRlbiwgZGFzcyBkYXMgZHVyY2ggZWluZW4gRmVobGVyIGluIGRlciBDb25maWdkYXRlaQogYmVkaW5ndCBpc3QgdW5kIGRhc3MgbWFuIHNpY2ggZGVzd2VnZW4gbmFjaCAtUVVFU1RJT05TIGJlZ2ViZW4gbXVzcwogIG8gMyB3ZXJkZW4gZWluIFBSIGVyc3RlbGxlbiwgZWlucyBkYXZvbiB3aXJkIG5hY2ggZG9jIGdlc2NoaWNrdCB1ZAogd2lyZCBudXIgZWluZSBlaW56aWdlIFplaWxlIGJlaW5oYWx0ZW46IGVzIGlzdCBkdW5rZWwgaGllcgogIG8gZWluZXIgd2lyZCBlaW4gQ29tbWl0IGJ6Z2wuIGRlciBuaWNodGdldGVzdGV0ZW4gTGFtcGUgZXJzdGVsbGVuLAogbmFjaCA1IE1pbnV0ZW4gamVkb2NoIHdpZGVycnVmZW4KICBvIDggd2VyZGVuIFBSLUF1dG9yZW4gYnpnbCBkZXIgVWViZXJuYWhtZSB2b24gUGF0Y2hlcyBpbnMgUFIgYW5tYXVsZW4KICBvIDUgd2VyZGVuIGRhdm9uIGJlcmljaHRlbiwgZGFzcyBkYXMgU3lzdGVtIG51biBuaWNodCBrb21waWxpZXJiYXIKIGlzdAogIG8gMzEgd2VyZGVuIGJlcmljaHRlbiwgZGFzcyBiZWkgaWhuZW4gYWxsZXMgZnVua3Rpb25pZXJ0IHVuZCBkYXNzCiBkaWUgNSBjdnN1cCB6dXIgZmFsc2NoZW4gWmVpdCBkdXJjaGdlZnVlaHJ0IGhhYmVuCiAgbyBlaW5lciB3aXJkIGVpbmVuIFBhdGNoIGZ1ZXIgZGllIGthcHV0dGUgTGFtcGUgaW5zIC1IQUNLRVJTIHNjaGlja2VuCiAgbyBlaW5lciB3aXJkIGtsYWdlbiwgZGFzcyBlciB2b3IgMyBKYWhyZW4gTGFtcGVuIGhhdHRlOyBhbHMgZXIgc2llCiBqZWRvY2ggbmFjaCAtQ1VSUkVOVCBnZXNjaGlja3QgaGF0LCB3dXJkZW4gc2llIGlnbm9yaWVydDsKIGdsZWljaHplaXRpZyBoYXR0ZSBlciB3ZW5pZyBFcmZhaHJ1bmcgbWl0IC1QUiB1bmQgZGFzcyBkaWUgZ2VwYXRjaHRlCiBMYW1wZSBrZWluZW4gUmVmbGVrdG9yIGhhdAogIG8gMzcgd2VyZGVuIHNjaHJlaWVuLCBkYXNzIGRpZSBMYW1wZW4gbmljaHQgenVtIEJhc2lzc3lzdGVtIGdlaG9lcmVuLAogZGFzcyBkaWUgQ29tbWl0ZXJzIGtlaW4gUmVjaHQgaGFiZW4sIHNvd2FzIHp1IG1hY2hlbiwgb2huZSBkaWUKIE9lZmZlbnRsaWNoa2VpdCB6dSBmcmFnZW4gdW5kIHdlcmRlbiBmcmFnZW46ICJXQVMgTUFDSFQgRUlHRU5UTElDSAogLUNPUkUgREFHRUdFTj8iCiAgbyAyMDAgd2VyZGVuIHVlYmVyIGRpZSBGYXJiZSBkZXIgRmFocnJhZGxpY2h0ZXIgcG9zdGVuCiAgbyAzIHdlcmRlbiBzYWdlbiwgZGFzcyBkZXIgUGF0Y2ggc3R5bGUoOSkgbmljaHQgZW50c3ByaWNodAogIG8gMTcgd2VyZGVuIGF1ZnNjaHJlaWVuLCBkYXNzIGRpZSBhbmdlYm90ZW5lIG5ldWUgTGFtcGUgdW50ZXIgZGVyCiBHUEwgTGl6ZW56IHZlcnRyaWViZW4gd2lyZAogIG8gNTg2IHdlcmRlbiBlaW4gRmxhbWV3YXIgIkJTRCB2cy4gR1BMIHZzLiBNSVQgdnMuIE5QTCIgdmVyYW5zdGFsdGVuCiAgbyA3IHdlcmRlbiBUZWlsZSBkZXMgRmxhbWV3YXJzIG5hY2ggLUNIQVQgdW5kIC1BRFZPQ0FDWSBzY2hpY2tlbgogIG8gZWluZXIgd2lyZCBkaWUgYW5nZWJvdGVuZSBMYW1wZSByZWluY29tbWl0dGVuLCBvYndvaGwgc2llCiBzY2h3YWVjaGVyIGFscyBkaWUgYWx0ZSBsZXVjaHRldAogIG8gMiB3ZXJkZW4gZGllc2VuIENvbW1pdCB3aWRlcnJ1ZmVuIHVuZCBkYWJlaSBpbSBDb21taXRidWNoIGRhcnVlYmVyCiBzY2hpbXBmZW4sIGRhc3MgRnJlZUJTRCBsaWViZXIgaW0gRHVua2VsbiBhbHMgbWl0IHNjaHdhY2hlbSBMaWNodAogc2l0emVuIHdpcmQKICBvIDQ2IHdlcmRlbiBzaWNoIHVlYmVyIGRpZXNlIEFlbmRlcnVuZyBsYXV0IGF1ZnJlZ2VuIHVuZCB3ZXJkZW4gdW0KIGVpbmUgRXJrbGFlcnVuZyBpbSAtQ09SRSBiaXR0ZW4KICBvIDExIHdlcmRlbiBkYXJ1bSBiaXR0ZW4sIGRpZSBHcm9lc3NlIGRlciBMYW1wZSB6dSB2ZXJyaW5nZXJuLCBkYW1pdAogc2llIGluIGlociBUYW1hZ2hvY2hpIHBhc3N0LCBmYWxscyBpcmdlbmR3YW5uIEZyZWVCU0QgYXVmIGRpZXNlCiBQbGF0dGZvcm0gcG9ydGllcnQgd2lyZAogIG8gNzMgd2VyZGVuIHVlYmVyIFNOUiBpbiAtSEFDS0VSUyB1bmQgLUNIQVQgYmVyaWNodGVuIHVuZCB3ZXJkZW4KIFRpcHBmZWhsZXIgYWxzIGVpbmUgQXJ0IFByb3Rlc3QgZWluc2V0emVuCiAgbyAzMCB3ZXJkZW4gQnJpZWZlICBsYSAiVW5zdWJzY3JpYmUiLCAiSG93IGRvIEkgdW5zdWJzY3JpYmUiCiBhYnNjaGlja2VuCiAgbyBlaW5lciB3aXJkIGVpbmUgZnVua3Rpb25pZXJlbmRlIExhbXBlIGNvbW1pdGVuLCB3YWVocmVuZCBhbGxlIG1pdG0KIFJ1bWZsYW1lbiB2aWVsIHp1IGJlc2NoYWVmdGlndCBzaW5kLCB1bSBkYXMgenUgbWVya2VuCiAgbyAzMSB3ZXJkZW4gYmVyaWNodGVuLCBkYXNzIGRpZSBMYW1wZSB1bSAwLDM4NiUgc3RhZXJrZXIgbGV1Y2h0ZW4KIHdpcmQsIGZhbGxzIHNpZSBtaXQgVGVuRFJBIGtvbXBpbGllcnQgd2lyZCAob2J3b2hsIHNpZSBkYW5uIGRpZSBGb3JtCiBlaW5lcyBRdWFkZXJzIGVpbm5laG1lbiB3aXJkKSB1bmQgZGFzcyBGcmVlQlNEIEdDQyBnZWdlbiBUZW5EUkEKIHRhdXNjaGVuIHNvbGx0ZQogIG8gZWluZXIgd2lyZCBtZXJrZW4sIGRhc3MgYmVpIGRlciBMYW1wZSBkaWUgU2NocmF1YmUgZmVobHQKICBvIDkgKGVpbnNjaGxpZXNzbGljaCAtUFItQXV0b3Jlbikgd2VyZGVuIGZyYWdlbiwgd2FzIE1GQyBzZWkKICBvIDIgV29jaGVuIG5hY2ggZGVtIFRhdXNjaCBkZXIgTGFtcGUgd2VyZGVuIDU3IGJlcmljaHRlbiwgZGFzcyBzaWUKIHRyb3R6ZGVtIGltIER1bmtlbG4gc2l0emVuCgpOb25uZSwga2ljaGVybmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2lldmllbGUgRnJlZUJTRC1FbnR3aWNrbGVyIGJyYXVjaHQgbWFuLCB1bSBlaW5lIEdsdWVoYmlybmUgenUgd2VjaHNlbG4/IChKaW1kaWdyaXosIDEwLiBNYWkgMjAwNSwgMjI6NTc6NDUpOgp+IyEgcm49Tm9ubmUgcnQ9MTExNTYxOTE1OCByZz13aXR6ZQp+IyEgdGlkPTExMTU2MTkxNTgKSG9pLAoKaGllciBpc3QgYnR3IGRlciBvcmlnaW5hbCBsaW5rOgoKaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9kb2MvZW5fVVMuSVNPODg1OS0xL2Jvb2tzL2ZhcS9mdW5uaWVzLmh0bWwjQ0hBTkdJTkctTElHCkhUQlVMQlMKCm9kZXIKCiBodHRwOi8vdGlueS5wbGFubG9zLm9yZy94NGlrYW4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoiRGFzIG11c3MgbWFuIGdlbGVzZW4gaGFiZW4iIChKaW1kaWdyaXosIDExLiBNYWkgMjAwNSwgMjE6NTE6NDkpOgoKSG9pIGZvbGdlbmRlIEdlc2NoaWNodGUgd3VyZGUgbWlyIGdlc2NoaWNrdAoodmllbGxlaWNodCBrZW5udCBzaWUgc2Nob24gd2VyLCBhYmVyIGVnYWwpOgoKRGFzIG11ZWdhbCk6IG1hbiBnZWxlc2VuIGhhYmVuLiEhIQoKSWNoIGhhdHRlIG5pZSByaWNodGlnIHZlcnN0YW5kZW4sIHdhcnVtIFNleGJlZHxyZm5pc3NlIHZvbiBNbm5lcm4gdW5kCkZyYXVlbiBzbyB1bnRlcnNjaGllZGxpY2ggc2luZC4gQWxsZSBkaWVzZSBHZXNjaGljaHRlbiB2b24gTWFycyB1bmQKVmVudXMuLi4KVW5kIGljaCBoYXR0ZSBhdWNoIG5pZSB2ZXJzdGFuZGVuLCB3YXJ1bSBNbm5lciBtaXQgZGVtIEtvcGYgdW5kCkZyYXVlbiBtaXQgZGVtIEhlcnogZGVua2VuLgoKTGV0enRlIFdvY2hlIHNpbmQgbWVpbmUgRnJhdSB1bmQgaWNoIGlucyBCZXR0IGdlZ2FuZ2VuLgpXaXIgZmluZ2VuIGFuLCB1bnMgdW50ZXIgZGVyIERlY2tlIGFuenVmYXNzZW4sIHp1IHN0cmVpY2hlbG4uLi4gSWNoIHdhcgpzY2hvbiBzZWhyIGhlaXdhciB1bmQgaWNoIGRhY2h0ZSwgZGFzIGJlcnVodCBhdWYgR2VnZW5zZWl0aWdrZWl0LCBkYSBkaWUKZ2FuemUgU2FjaGUgZWluZGV1dGlnIHNleHVlbGwgb3JpZW50aWVydCB3YXIuCkFiZXIgZ2VuYXUgaW4gZGVtIE1vbWVudCBzYWd0ZSBzaWUgbWlyOgoiSHIgenUsIGljaCBoYWIgamV0enQga2VpbmUgTHVzdCwgTGllYmUgenUgbWFjaGVuLCBpY2ggaGFiIG51ciBMdXN0LCBkYXNzCmR1IG1pY2ggZmVzdCBpbiBkZWluZW4gQXJtZW4gbmltbXN0LCBtbWg/Ii4KCkljaCBhbnR3b3J0ZXRlOiAiV0FBQUFBQUFBQUFTPyIKClNpZSBzYWd0ZSBtaXIgZGllIFphdWJlcndvcnRlOiAiRHUga2FubnN0IGVpbmZhY2ggbWl0IGRlbiBlbW90aW9uZWxsZW4KQmVkfHJmbmlzc2VuIGVpbmVyIEZyYXUgbmljaHQgdW1nZWhlbiIuCkFtIEVuZGUgaGFiIGljaCBrYXBpdHVsaWVydCB1bmQgcmVzaWduaWVydDogSWNoIGhhdHRlIGluCmRpZXNlciBOYWNodCBrZWluZW4gU2V4LCB1bmQgc28gYmluIGljaCBlaW5nZXNjaGxhZmVuLgpBbSBuY2hzdGVuIFRhZyBnaW5nZW4gbWVpbmUgRnJhdSB1bmQgaWNoIGluIGVpbiBFaW5rYXVmc3plbnRydW0gYnVtbWVsbi4KSWNoIHNhaCBzaWUgYW4sIGFscyBzaWUgMyBzY2huZSwgYWJlciB0ZXVyZSBLbGVpZGVyIGFucHJvYmllcnRlLiBEYSBzaWUKc2ljaCBuaWNodCBlbnRzY2hlaWRlbiBrb25udGUsIHNhZ3RlIGljaCBpaHIsIHNpZSBzb2xsIGFsbGUgMyBuZWhtZW4uClNpZSBrb25udGUgaWhyZW4gZWlnZW5lbiBPaHJlbiBuaWNodCB0cmF1ZW4gdW5kIHNvIHZvbiBtZWluZW4KdmVyc3RuZG5pc3ZvbGxlbiBXb3J0ZW4gbW90aXZpZXJ0IHNhZ3RlIHNpZSB3ZWl0ZXIsIHNpZSB3fHJkZSBuYXR8cmxpY2gKYXVmZ3J1bmQgZGVyIG5ldWVuIEtsZWlkZXIgZWluIFBhYXIgbmV1ZSBTY2h1aGUgYnJhdWNoZW4gLSBkaWUgbGVpZGVyIDQwMCwtLQogRXVybyBrb3N0ZXRlbi4KRGF6dSBoYWJlIGljaCBnZXNhZ3QsIGljaCBmbmRlIGVzIHJpY2h0aWcuIERhbmFjaCBzaW5kIHdpciBhbSBKdXdlbGllcgp2b3JiZWlnZWxhdWZlbi4gU2llIHdvbGx0ZSBoaW5laW4gdW5kIGthbSBtaXQgZWluZXIgQXJta2V0dGUgbWl0IERpYW1hbnRlbgpoZXJhdXMuCldlbm4gaWhyIHNpZSBnZXNlaGVuIGh0dGV0Li4uIFNpZSB3YXIgdG90YWwgYmVnZWlzdGVydCEhISBTaWUgZ2xhdWJ0ZQp3YWhyc2NoZWlubGljaCwgaWNoIHdyZSBwbHR6bGljaCB2ZXJyfGNrdCBnZXdvcmRlbiwgYWJlciBkYXMgd2FyIGlocgplaWdlbnRsaWNoIGVnYWwuIEljaCBnbGF1YiwgaWNoIGhhYiBpaHIgZ2FuemVzIHBoaWxvc29waGlzY2hlcyBTY2hlbWEKa2FwdXR0IGdlbWFjaHQsIGFscyBpY2ggd2llZGVyICJKYSIgc2FndGUuCkpldHp0IHdhciBzaWUgZmFzdCBzZXh1ZWxsIGVycmVndC4gTW5uZXIsIGlociBHZXNpY2h0IHdhciB1bmdsYXVibGljaCwKZGFzIGh0dGV0IGlociB3aXJrbGljaCBzZWhlbiBtfHNzZW4uCkdlbmF1IGluIGRlbSBNb21lbnQgc2FndGUgc2llIG1pciBtaXQgaWhyZW0gc2NobnN0ZW4KTGNoZWxuOiAiR2VoZW4gd2lyIHp1ciBLYXNzZSB6YWhsZW4hIiBFcyB3YXIgc28gc2Nod2llcmlnLCBuaWNodCBhbmZhbmdlbgp6dSBsYWNoZW4sIGFscyBpY2ggenUgaWhyIHNhZ3RlOgoiTmVpbiwgU2NoYXR6LCBpY2ggZ2xhdWIsIGljaCBoYWIgamV0enQga2VpbmUgTHVzdCwgZGllCmdhbnplbiBTYWNoZW4genUga2F1ZmVuIi4KSWhyIEdlc2ljaHQgd3VyZGUga3JlaWRlYmxlaWNoIC0gd2lya2xpY2ggLSB2b3IgYWxsZW0gYWxzIGljaCBub2NoIHNhZ3RlOgoiSWNoIGhhYiBqZXR6dCBudXIgTHVzdCwgZGFzcyBkdSBtaWNoIHVtYXJtc3QiLiBBbHMgc2llIHZvciBXdXQgdW5kIEhhc3MKZmFzdCBwbGF0enRlLCBrYW0gbWVpbiBNZWlzdGVyc3R8Y2suLi4KIkR1IGthbm5zdCBtaXQgZGVuIGZpbmFuemllbGxlbiBCZWR8cmZuaXNzZW4gZWluZXMgTWFubmVzIGVpbmZhY2ggbmljaHQKdW1nZWhlbi4KSWNoIGdsYXViZSwgaWNoIHdlcmRlIGJpcyAyMDU4IGtlaW5lIFNleCBtZWhyIGhhYmVuIC4uLgphYmVyIGVzIHdhciBzbyBnZWlsISEhCgoKSGloaS4gU29ycnkgZnVlciBkaWUgdmVyZ2VpZ3RlbiBVbWxhdXRlLCBzb2xsdGUgCmFiZXIgbml4IG1hY2hlbi4KCkpkRwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6ICJEYXMgbXVzcyBtYW4gZ2VsZXNlbiBoYWJlbiIgKERhcmtsb3IsIDExLiBNYWkgMjAwNSwgMjE6NTQ6MjEpOgp+IyEgcm49SmltZGlncml6IHJ0PTExMTU4NDExMDkgcmc9d2l0emUKfiMhIHRpZD0xMTE1ODQxMTA5Ckp1cHAgd2FyIHNjaG9uLi4uIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6ICJEYXMgbXVzcyBtYW4gZ2VsZXNlbiBoYWJlbiIgKEtlbGx5YnVuZHksIDEyLiBNYWkgMjAwNSwgMjA6MDc6MzgpOgp+IyEgcm49RGFya2xvciBydD0xMTE1ODQxMjYxIHJnPXdpdHplCn4jISB0aWQ9MTExNTg0MTEwOQpBYmVyIGhhdCBkYXMgemV1Z3MgenVtIGRhdWVyYnJlbm5lciA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktsb3NwdWVsdW5nIChLZWxseWJ1bmR5LCAyNS4gTWFpIDIwMDUsIDEzOjM4OjMxKToKQXVmIGRpZSBHZWZhaHIgaGluLCBkYXNzIGRlciBiZWthbm50IGlzdCAqR0cqCgpHZWJyYXVjaHNhbndlaXN1bmcgenVtIFJlaW5pZ2VuIElocmVyIFRvaWxldHRlOiAKCjEuIE9lZmZuZW4gU2llIGRlbiBUb2lsZXR0ZW5kZWNrZWwgdW5kIGZ1ZWxsZW4gU2llIDEvOCBUYXNzZSBUaWVyc2hhbXBvbyBlaW4uIAoKMi4gTmVobWVuIFNpZSBpaHJlIEthdHplIGF1ZiBkZW4gQXJtIHVuZCBrcmF1bGVuIFNpZSBzaWUsIHdhZWhyZW5kIFNpZSBzaWNoCnZvcnNpY2h0aWcgaW4gUmljaHR1bmcgQmFkZXppbW1lciBiZXdlZ2VuLiAKCjMuIEluIGVpbmVtIGdlZWlnbmV0ZW4gTW9tZW50IHdlcmZlbiBTaWUgaWhyZSBLYXR6ZSBpbiBkaWUgVG9pbGV0dGVuc2NodWVzc2VsCnVuZCBzY2hsaWVzc2VuIGRlbiBUb2lsZXR0ZW5kZWNrZWwuIE1vZWdsaWNoZXJ3ZWlzZSBzb2xsdGVuIFNpZSBhdWYgZGVuIERlY2tlbApzdGVoZW4uIAoKNC4gRGllIEthdHplIHdpcmQgbnVuIHNlbGJzdGFlbmRpZyBtaXQgZGVtIFJlaW5pZ3VuZ3N2b3JnYW5nIGJlZ2lubmVuIHVuZAphdXNyZWljaGVuZCBTY2hhdW0gcHJvZHV6aWVyZW4uIExhc3NlbiBTaWUgc2ljaCB2b24gbGF1dGVuIEdlcmFldXNjaGVuIGF1cyBkZXIKVG9pbGV0dGUgbmljaHQgaXJyaXRpZXJlbiwgSWhyZSBLYXR6ZSBnZW5pZXNzdCBlcyEgCgo1LiBCZXRhZXRpZ2VuIFNpZSBudW4gbWVocm1hbHMgZGllIFRvaWxldHRlbnNwdWVsdW5nLCB1bSBkZW4KUG93ZXItd2FzaC1Wb3JnYW5nIHVuZCBkaWUgYW5zY2hsaWVzc2VuZGUgTmFjaHNwdWVsdW5nIGVpbnp1bGVpdGVuLiAKCjYuIFNvZmVybiBTaWUgYXVmIGRlbSBUb2lsZXR0ZW5kZWNrZWwgc3RlaGVuLCBiaXR0ZW4gU2llIGplbWFuZGVuLCBkaWUKSGF1c3R1ZXJlIHp1IG9lZmZuZW4uIFN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBzaWNoIGtlaW5lIFBlcnNvbmVuIHp3aXNjaGVuClRvaWxldHRlIHVuZCBIYXVzdHVlciBiZWZpbmRlbi4gCgo3LiBPZWZmbmVuIFNpZSBkYW5uIGF1cyBnZWJ1ZWhyZW5kZW0gQWJzdGFuZCBtb2VnbGljaHN0IHNjaG5lbGwgZGVuClRvaWxldHRlbmRlY2tlbC4gQXVmZ3J1bmQgZGVyIGhvaGVuIEdlc2Nod2luZGlna2VpdCBpaHJlciBLYXR6ZSB3aXJkIGRlcmVuCkZlbGwgZHVyY2ggZGllIFp1Z2x1ZnQgdHJvY2tlbmdlZm9lbnQuIAoKOC4gVG9pbGV0dGUgdW5kIEthdHplIHNpbmQgZGFtaXQgYmVpZGUgd2llZGVyIHNhdWJlci4gCgoKS2VsbHkKTWl0IGRlbiBiZXN0ZW4gR3J1ZXNzZW4gCgpEZXIgSHVuZCAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVsZmVubGllZCAoRGFya2xvciwgMjUuIE1haSAyMDA1LCAyMToxMDozNyk6CkVzIGlzdCB1ZWJyaWdlbnMgd2lya2xpY2ggZWluIExpZWQuLi4gCgpEYXMgRWxmZW5saWVkIHZvbiAiTHlyZ2FpbmUgdm9uIE1hcmFsb24iCgpOZXVsaWNoIGdpbmcgaWNoIGdhbnogYWxsZWluCkluIGRlbiBmaW5zdHJlbiBXYWxkIGhpbmVpbi4KSWNoIGdlc3RlaGUgbWlyIHdhciBiYW5nLApEb2NoIGljaCBtdXNzdGUgZG9ydCBlbnRsYW5nLgpNYW4gaHJ0IGphIHNvIGFsbGVyaGFuZCwKV2FzIGF1cyBmaW5zdHJlbiBXbGRlcm4gc3RhbW10CkRvY2ggaWNoIHNjaHdyZSBlcyBpc3Qgd2FocgpXYXMgaW4gZGllc2VyIE5hY2h0IGljaCBzYWgKCkxhIGxhIGxhIGRpZSBqYWxhIGxhCgpBbHMgZGFzIGVyc3RlIExpY2h0IGljaCBzYWgKV2FyIG1pciBhbGxlcyBzb2ZvcnQga2xhcgpEZW5uIGljaCBiaW4gamEgaW5mb3JtaWVydApXYXMgaW0gV2FsZGUgc28gcGFzc2llcnQKQWxzbyBrcm9jaCBpY2ggaW4gZGllIEhlY2tlCkF1ZiBkYXMgbWFuIG1pY2ggbmljaHQgZW50ZGVja2UKRmFsbHMgZG9jaCBoYXRgIGljaCB2b3JnZXNvcmd0ClVuZCBtaXIgZWlueHQgYmVzb3JndAoKTGEgbGEgbGEgZGllIGphbGEgbGEKClVuZCBpbSBXYWxkZSBnYW56IHRpZWYgZHJpbm5lbiwKRWluc2FtIG51ciB2b20gTW9uZCBiZXNjaGllbmVuClNhaCBpY2ggenVtIEtsYW5nIGFsdGVyIFdlaXNlbgpXZXNlbiB1bSBkaWUgQnVtZSBrcmVpc2VuLApFaW4gcGFhciBCbHR0ZXIgdW0gZGllIExlbmRlbgpIaWVsdGVuIHNpZSBzaWNoIGFuIGRlbiBIbmRlbgpVbmQgbWlyIHdhciBzb2ZvcnQga2xhciwgRGFzIGljaCBFbGZlbiB0YW56ZW4gc2FoLgoKVW5kIGljaCBzYWggZGllIEVsZmVuIHRhbnplbiBVbmQgc2llIGt1c2NoZWx0ZW4gbWl0IFBmbGFuemVuClNpZSB2ZXJnbnxndGVuIHNpY2ggbWl0IEJ1bWVuIE9oIG1pciB3YXIgYWxzIHd8cmQgaWNoIHRydW1lbi4KSWNoIGhpZWx0IGVzIHN0ZXRzIGZ8ciBic2UgTHxnZQpXYXMgbWFuIGJpc2hlciBtaXIgdm9tIFRyaWViZQpKZW5lcyBzY2huZW4gVm9sayBiZXJpY2h0ZXQgLWRvY2ggbnVuIGhhYjQgaWNoNHMgc2VsYnN0IGdlc2ljaHRldCEtCgpJY2ggc2FoIHNpZSBpbiBlaW5lciBQaGFzZQpWb2xsZXIgZWxmaXNjaGVyIEVrc3Rhc2UKU2FoIHdpZSBzaWUgdm9uIEJsdW1lbiBzYW5nZW4KVW5kIGRpZSBCbHVtZW4gZGFubiBiZXNwcmFuZ2VuCklociBlbnRyfGNrdGVyIEJsaWNrIGthbSBuaWNodAotd2llIG1pciBzY2hpZW4tIHZvbSBTdGVybmVubGljaHQKc29uZGVybiB2b24gZGVuIFRhbm5lbnNwcm9zc2VuCmRpZSBzaWUgdG9ubmVud2VpczQgZ2Vub3NzZW4KClVuZCBpY2ggc2FoIGRpZSBFbGZlbiB0YW56ZW4gVW5kIHNpZSBrdXNjaGVsdGVuIG1pdCBQZmxhbnplbgpTaWUgdmVyZ258Z3RlbiBzaWNoIG1pdCBCdW1lbiBPaCBtaXIgd2FyIGFscyB3fHJkIGljaCB0cnVtZW4uCkljaCBoaWVsdCBlcyBzdGV0cyBmfHIgYnNlIEx8Z2UKV2FzIG1hbiBiaXNoZXIgbWlyIHZvbSBUcmllYmUKSmVuZXMgc2NobmVuIFZvbGsgYmVyaWNodGV0IC1kb2NoIG51biBoYWI0IGljaDRzIHNlbGJzdCBnZXNpY2h0ZXQhLQoKRG9jaCBkYW5uIGthbSBkaWUgc2NobGltbWUgV2VuZApEZW5uIGVpbiBFbGIgaGF0dGUgenVtIEVuZGUKRWJlbiBqZW5lIEJhdW0gZ2VtaW5udCBEZW4gaWNoIHp1bSBWZXJzdGVjayBlcnNpbm50ClZvbiBkZW0gQW5ibGljayB8YmVybWFubnQKQmluIGljaCBzY2huZWxsIG5hY2ggSGF1cyBnZXJhbm50Ck9oLCBtaXIgd2lyZCBzY2hsZWNodCBkZW5rIGljaCBkYXJhbiBXYXMgZXIgZGVtIEJhdW0gYW5nZXRhbgoKVW5kIGljaCBzYWggZGllIEVsZmVuIHRhbnplbiBVbmQgc2llIGt1c2NoZWx0ZW4gbWl0IFBmbGFuemVuClNpZSB2ZXJnbnxndGVuIHNpY2ggbWl0IEJ1bWVuIE9oIG1pciB3YXIgYWxzIHd8cmQgaWNoIHRydW1lbi4KSWNoIGhpZWx0IGVzIHN0ZXRzIGZ8ciBic2UgTHxnZQpXYXMgbWFuIGJpc2hlciBtaXIgdm9tIFRyaWViZQpKZW5lcyBzY2huZW4gVm9sayBiZXJpY2h0ZXQgLWRvY2ggbnVuIGhhYjQgaWNoNHMgc2VsYnN0IGdlc2ljaHRldCEtCgpVbmQgdHJlZmZ0IGlociBFbGZlbiB1bmQgc2llIGZyYWdlbiBPYiBzaWUgbmFjaHRzIGJlaSBldWNoIGtubjQgbGFnZXJuClNvIGthbm4gaWNoIGV1Y2ggZWlucyBudXIgcmF0ZW4gLWxhbGFnZXJudCBzaWUgbmljaHQgaW4gZXVyZW4gR2FydGVuIQoKTGEgbGEgbGEgZGllIGphbGEgbGEKCkRhcmtsb3IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBoeXNpa2VyIChLZWxseWJ1bmR5LCAgMS4gSnVuIDIwMDUsIDE3OjM3OjI2KToKaHR0cDovL3d3dy5mYW1pbGllLWFobGVycy5kZS93aXNzZW5zY2hhZnRsaWNoZV93aXR6ZS9hdWZnYWJlbl96dXJfcHJha3Rpc2NoZW5fCnBoeXNpay5odG1sCgpCbG9lXkhuZGNoZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQaHlzaWtlciAoQW50aGVhLCAgMS4gSnVuIDIwMDUsIDE3OjQxOjUwKToKfiMhIHJuPUtlbGx5YnVuZHkgcnQ9MTExNzY0MDI0NiByZz13aXR6ZQp+IyEgdGlkPTExMTc2NDAyNDYKSmFqYSwgU2Nocm9lZGluZ2VycyBLdWguIEljaCBoYWJlIGRhcyBQcm9ibGVtIG5vY2ggbmllIHZlcnN0YW5kZW4uClNjaGxpZXNzbGljaCBleGlzdGllcnQgZGllIEthdHplIGphIG5pY2h0IG1laHIsIHNvbGFuZ2UgZGVyIERlY2tlbCB6dSBpc3QuIERpZQpGcmFnZSwgZGllIHNpY2ggc3RlbGx0LCBpc3QgZGllLCBvYiBkaWUgS2F0emUgZGFzIHJlbWF0ZXJpYWxpc2llcmVuIHVlYmVybGVidC4KVW5kIGVzIGhhdCBtaXIgbm9jaCBrZWluZXIgZGFzIEdlZ2VudGVpbCBiZXdlaXNlbiBrb2VubmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBQaHlzaWtlciAoTXVhZGliLCAgMS4gSnVuIDIwMDUsIDE3OjQyOjQ2KToKfiMhIHJuPUFudGhlYSBydD0xMTE3NjQwNTEwIHJnPXdpdHplCn4jISB0aWQ9MTExNzY0MDI0NgpiZWkgc2Nocm9lZGluZ2VycyBrdWggc3RlbGx0IHNpY2ggamEgZWhlciBkaWUgZnJhZ2UgbmFjaCBkZXIgcXVhbGl0YWV0IGRlcgptaWxjaAppY2ggdHJhdSBkZW0gemV1ZyBqYSBuaWNoLCBzb2xhbmdlIGVzIG5vY2ggaW0gZXV0ZXIgaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFBoeXNpa2VyIChLZWxseWJ1bmR5LCAgMS4gSnVuIDIwMDUsIDE3OjQ0OjAyKToKfiMhIHJuPUFudGhlYSBydD0xMTE3NjQwNTEwIHJnPXdpdHplCn4jISB0aWQ9MTExNzY0MDI0NgpGcmFnIFNjb3R0eSA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFBoeXNpa2VyIChLZWxseWJ1bmR5LCAgMS4gSnVuIDIwMDUsIDE3OjQ1OjIyKToKfiMhIHJuPU11YWRpYiBydD0xMTE3NjQwNTY2IHJnPXdpdHplCn4jISB0aWQ9MTExNzY0MDI0NgpJY2ggdHJhdSBkZW0gWmV1ZyBuaWNodCwgc29sYW5nIGRpZSBLdWggbGlsYSBpc3QuIFdlciB3ZWlzcywgd2FzIGRpZSBmdWVyIG5lbgpEcmVjayB6dSBmcmVzc2VuIGtyaWVndCBkYW1pdCBkaWUgbGlsYSB3aXJkPz8hPwoKQmxvZV5IbmRjaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBQaHlzaWtlciAoTm9ubmUsICAyLiBKdW4gMjAwNSwgMTI6Mjc6NTgpOgp+IyEgcm49S2VsbHlidW5keSBydD0xMTE3NjQwNzIyIHJnPXdpdHplCn4jISB0aWQ9MTExNzY0MDI0NgpBYmVyIGRpZSB3aXJrbGljaCBzcGFubmVuZGUgRnJhZ2UgaXN0LCB3aWVzbyBtYW4ga2VpbmUgS3VlaGUgZnVlciBkaWUKU3RydWt0dXJhdWZrbGFlcnVuZyBiZW51dHp0LCBEaWUgaGFiZW4gZWluZSBzbyBrbGVpbmUgV2VsbGVubGFlbmdlLCBkYXNzIG1hbgpkYW1pdCBsb2NrZXIgU3RydWt0dXJlbiBpbiBkZXIgR3JvZXNzZSB2b24gQXRvbWtlcm5lbiBhdWZsb2VzZW4ga2Fubi4KCk5vbm5lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogUGh5c2lrZXIgKENhdHdlYXpsZSwgIDIuIEp1biAyMDA1LCAxMjo1MDozMyk6Cn4jISBybj1Ob25uZSBydD0xMTE3NzA4MDc4IHJnPXdpdHplCn4jISB0aWQ9MTExNzY0MDI0NgpEYXMga29tbXQgamEgbnVuIHdpZWRlciBkYXJhdWYgYW4sIHdpZSBzY2huZWxsIGRpZSBzaW5kIC4uLgoKWVRDCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBQaHlzaWtlciAoSGlnaGxhbmRlciwgIDIuIEp1biAyMDA1LCAxMzozNDo1Mik6Cn4jISBybj1Db3JuaG9saW8gcnQ9MTExNzcxMTkyNCByZz13aXR6ZQp+IyEgdGlkPTExMTc2NDAyNDYKNDAwa2cgc2Nod2VyZSBLdWVoZSBtaXQgc2VsdHNhbWVyIFZlcmRhdXVuZy4KCkhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogUGh5c2lrZXIgKE1vbnRhbnVzLCAgMi4gSnVuIDIwMDUsIDEzOjQyOjA4KToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9MTExNzcxMjA5MiByZz13aXR6ZQp+IyEgdGlkPTExMTc2NDAyNDYKVmVybGVnIGRhcyBkb2NoIGJpdHRlIG1hbCBqZW1hbmQgZGFoaW4sIHdvIGVzIGhpbmdlaG9lcnQuIERlciBBdGhlaXN0IHNjaGVpbnQKZ2VyYWRlIHp1IHNjaGxeSF5IXkheSGFyYmVpdGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogUGh5c2lrZXIgKEtlbGx5YnVuZHksICAyLiBKdW4gMjAwNSwgMTg6MDY6MjIpOgp+IyEgcm49Tm9ubmUgcnQ9MTExNzcwODA3OCByZz13aXR6ZQp+IyEgdGlkPTExMTc2NDAyNDYKRGllIEt1aCBzdHJhZXVidCBzaWNoIGJpc3NpLCB3ZW5uIG1hbiBzaWUgaW4gZGVuIFRlaWxjaGVuYmVzY2hsZXVuaWdlciBzdG9wZmVuCndpbGwgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aXR6ZSAoS2VsbHlidW5keSwgIDQuIEp1biAyMDA1LCAyMTowMDozOSk6Cn4jISBvbj1LZWxseWJ1bmR5IG90PTExMTc5MTE2MDUgb2c9d3d3CkJpbGwgR2F0ZXMgdW5kIE1hcmMgQW5kcmVlc3NlbiB2b24gTmV0c2NhcGUgc2luZCBnZXN0b3JiZW4uClBldHJ1cyBrdWVuZGlndCBhbiwgZGFzcyBzaWUgZnVlciBqZWRlbiBCdWcgaW4gaWhyZXIgU29mdHdhcmUgZWluZW4gTmFkZWxzdGljaAphbHMgU3VlaG5lIGVyaGFsdGVuIHdlcmRlbi4KUGV0cnVzIGxhZXNzdCBNYXJjIEFuZHJlZXNzZW4gdm9ydHJldGVuOiAiSW0gTmF2aWdhdG9yIDEuMCBnYWIgZXMgZWluZW4gZ3JvYmVuClNpY2hlcmhlaXRzYnVnLiIgUGllay4KIkltIE5hdmlnYXRvciAxLjEgbGllc3Mgc2ljaCBkZXIgQ2FjaGUgbmljaHQgbGVlcmVuLiIgUGllay4KTWFyYyBBbmRyZWVzc2VuIHJlaWJ0IHNpY2ggZGVuIEhpbnRlcm4gdW5kIHNjaGF1dCBzaWNoIHVtOgpXbyBpc3QgZGVubiBCaWxsPwpQZXRydXM6ICJEZW4ga2xlbW1lbiB3aXIgc2Nob24gbWFsIHVudGVyIGRpZSBOYWVobWFzY2hpbmUuIgoKCkF1ZiBkaWUgR2VmYWhyIGhpbiwgZGFzcyBkZXIgYWx0IGlzdCA7LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmZyYXVlbiB1bmQgYXV0b2ZhaHJuLCBkaWUgMi4gKEtlbGx5YnVuZHksIDEwLiBKdW4gMjAwNSwgMTg6NTM6MzQpOgpodHRwOi8vd3d3LmdlZXpvZC5kZS9HRlgvRlVOMDAzLmpwZwoKQmxvZV5IbmRjaGVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWhlaW1uaXMgZGVzIGFzaWF0aXNjaGVuIFdpcnRzY2hhZnRzYm9vbXMgKEtlbGx5YnVuZHksIDEwLiBKdW4gMjAwNSwgMTg6NTU6NTQpOgpodHRwOi8vd3d3LmdlZXpvZC5kZS9HRlgvRlVOMDA3LmpwZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKamVzdXMuLi4gKEdhYnlsb24sIDE2LiBKdW4gMjAwNSwgMTc6MzY6NTYpOgpUSEVSRSBXRVJFIDMgR09PRCBBUkdVTUVOVFMgVEhBVCBKRVNVUyBXQVMgQkxBQ0s6CjEuIEhlIGNhbGxlZCBldmVyeW9uZSAiYnJvdGhlciIuCjIuIEhlIGxpa2VkIEdvc3BlbC4KMy4gSGUgY291bGRuJ3QgZ2V0IGEgZmFpciB0cmlhbC4KCkJVVCBUSEVOIFRIRVJFIFdFUkUgMyBFUVVBTExZIEdPT0QgQVJHVU1FTlRTIFRIQVQgSkVTVVMgV0FTIEpFV0lTSDoKMS4gSGUgd2VudCBpbnRvIEhpcyBGYXRoZXIncyBidXNpbmVzcy4KMi4gSGUgbGl2ZWQgYXQgaG9tZSB1bnRpbCBoZSB3YXMgMzMuCjMuIEhlIHdhcyBzdXJlIGhpcyBNb3RoZXIgd2FzIGEgdmlyZ2luIGFuZCBoaXMgbW90aGVyIHdhcyBzdXJlIGhlIHdhcyBHb2QuCgpCVVQgVEhFTiBUSEVSRSBXRVJFIDMgRVFVQUxMWSBHT09EIEFSR1VNRU5UUyBUSEFUIEpFU1VTIFdBUyBJVEFMSUFOOgoxLiBIZSB0YWxrZWQgd2l0aCBoaXMgaGFuZHMuCjIuIEhlIGhhZCB3aW5lIHdpdGggZXZlcnkgbWVhbC4KMy4gSGUgdXNlZCBvbGl2ZSBvaWwuCgpCVVQgVEhFTiBUSEVSRSBXRVJFIDMgRVFVQUxMWSBHT09EIEFSR1VNRU5UUyBUSEFUIEpFU1VTIFdBUyBBIENBTElGT1JOSUFOOgoxLiBIZSBuZXZlciBjdXQgaGlzIGhhaXIuCjIuIEhlIHdhbGtlZCBhcm91bmQgYmFyZWZvb3QgYWxsIHRoZSB0aW1lLgozLiBIZSBzdGFydGVkIGEgbmV3IHJlbGlnaW9uLgoKQlVUIFRIRU4gVEhFUkUgV0VSRSAzIEVRVUFMTFkgR09PRCBBUkdVTUVOVFMgVEhBVCBKRVNVUyBXQVMgSVJJU0g6CjEuIEhlIG5ldmVyIGdvdCBtYXJyaWVkLgoyLiBIZSB3YXMgYWx3YXlzIHRlbGxpbmcgc3Rvcmllcy4KMy4gSGUgbG92ZWQgZ3JlZW4gcGFzdHVyZXMuCgpCVVQgVEhFIE1PU1QgQ09NUEVMTElORyBFVklERU5DRSBPRiBBTEwtIDMgUFJPT0ZTIFRIQVQgSkVTVVMgV0FTIEEgV09NQU46CjEuIEhlIGZlZCBhIGNyb3dkIGF0IGEgbW9tZW50J3Mgbm90aWNlIHdoZW4gdGhlcmUgd2FzIG5vIGZvb2QuCjIuIEhlIGtlcHQgdHJ5aW5nIHRvIGdldCBhIG1lc3NhZ2UgYWNyb3NzIHRvIGEgYnVuY2ggb2YgbWVuIHdobyBqdXN0IGRpZG4ndApnZXQgaXQuCjMuIEFuZCBldmVuIHdoZW4gaGUgd2FzIGRlYWQsIGhlIGhhZCB0byBnZXQgdXAgYmVjYXVzZSB0aGVyZSB3YXMgbW9yZSB3b3JrIHRvCmRvLgoKZ2FiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXV0c2NobGFuZCB2cy4gSG9sbGFuZCAoQW50aGVhLCAxNy4gSnVuIDIwMDUsIDEwOjEwOjAzKToKWndlaSBIb2xsYWVuZGVyIGJlc3RlaWdlbiBlaW5lbiBGbHVnIG5hY2ggTG9uZG9uLgpFaW5lciBuaW1tdCBkZW4gRmVuc3RlcnBsYXR6LCBkZXIgYW5kZXJlIHNldHp0IHNpY2ggbmViZW4gaWhuIGF1ZiBkZW4KbWl0dGxlcmVuIFBsYXR6LiBLdXJ6IHZvciBkZW0gU3RhcnQgc2V0enQgc2ljaCBlaW4gRGV1dHNjaGVyIGF1ZiBkZW4gUGxhdHogYW0KR2FuZy4gTmFjaCBkZW0gU3RhcnQgemllaHQgZGVyIERldXRzY2hlIHNlaW5lIFNjaHVoZSBhdXMsIHdhY2tlbHQgbWl0IHNlaW5lbgpaZWhlbiB1bmQgbWFjaHQgZXMgc2ljaCBnZW11ZXRsaWNoLCBhbHMgZGVyIEhvbGxhZW5kZXIgYXVmIGRlbSBGZW5zdGVycGxhdHoKc2FndDogIkVudHNjaHVsZGlnZW4gU2llLCBpY2ggbXVzcyBhdWZzdGVoZW4gdW5kIG1pciBlaW5lIENvbGEgaG9sZW4uIgoiQmxlaWJlbiBTaWUgcnVoaWcgc2l0emVuIiwgc2FndCBkZXIgRGV1dHNjaGUsICJpY2ggc2l0emUgYW0gR2FuZy4gSWNoIGhvbCcKSWhuZW4gSWhyZSBDb2xhLiIKS2F1bSBpc3QgZXIgYXVmZ2VzdGFuZGVuLCBuaW1tdCBlaW5lciBkZXIgSG9sbGFlbmRlciBlaW5lbiBzZWluZXIgU2NodWhlIHVuZApzcHVja3QgaGluZWluLiBBbHMgZXIgbWl0IGRlciBDb2xhIHp1cnVlY2trZWhydCwgc2FndCBkZXIgYW5kZXJlIEhvbGxhZW5kZXI6CiJEYXMgc2llaHQgZ3V0IGF1cywgaWNoIGhhZXR0ZSBhdWNoIGdlcm5lIGVpbmUuIiBXaWVkZXIgZXJrbGFlcnQgc2ljaCBkZXIKRGV1dHNjaGUgYmVyZWl0LCBzaWUgenUgaG9sZW4uCkFscyBlciB3ZWcgaXN0LCBuaW1tdCBkZXIgYW5kZXJlIEhvbGxhZW5kZXIgZGVuIGFuZGVyZW4gU2NodWggdW5kIHNwdWNrdAplYmVuZmFsbHMgaGluZWluLiBBbHMgZGVyIERldXRzY2hlIHp1cnVlY2trb21tdCwgbGVobmVuIHNpZSBzaWNoIGFsbGUgenVydWVjawp1bmQgZ2VuaWVzc2VuIGRlbiBGbHVnLgpBbHMgZGFzIEZsdWd6ZXVnIHp1ciBMYW5kdW5nIGFuc2V0enQsIHppZWh0IGRlciBEZXV0c2NoZSBzZWluZSBTY2h1aGUgYW4gdW5kCmJlbWVya3Qgc29mb3J0IHdhcyBwYXNzaWVydCBpc3QuICJXYXJ1bSBudXI/IiBmcmFndCBlciwgIldpZSBsYW5nZSB3aXJkIGRhcwpub2NoIHdlaXRlcmdlaGVuPyBEaWVzZXIgS2FtcGYgendpc2NoZW4gdW5zZXJlbiBOYXRpb25lbi4gRGllc2VyIEhhc3MuIERpZXNlCkFuaW1vc2l0YWV0ZW4uIERpZXNlcyBJbi1kaWUtU2NodWhlLVNwdWNrZW4gdW5kIEluLWRpZS1Db2xhLVBpc3Nlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYXMgaXN0IGVzIGVpbmVtIHdlcnQ/IChBbnRoZWEsIDIzLiBKdW4gMjAwNSwgMTk6MDg6MDYpOgpCaW4gZ2VyYWRlIHp1IGZhdWwgenVtIHVlYmVyc2V0emVuLCBkcnVtIG1hbCBzbzoKQSBnb2xmZXIgaXMgaW4gYSBjb21wZXRpdGl2ZSBtYXRjaCB3aXRoIGEgZnJpZW5kLCB3aG8gaXMgYWhlYWQgYnkgYSBjb3VwbGUgb2YKc3Ryb2tlcy4gIkJveSwgSSdkIGdpdmUgYW55dGhpbmcgdG8gc2luayB0aGlzIHB1dHQsIiB0aGUgZ29sZmVyIG11bWJsZXMgdG8KaGltc2VsZi4gSnVzdCB0aGVuLCBhIHN0cmFuZ2VyIHdhbGtzIHVwIGJlc2lkZSBoaW0gYW5kIHdoaXNwZXJzLCAiV291bGQgeW91IGJlCndpbGxpbmcgdG8gZ2l2ZSB1cCAxLzQgb2YgeW91ciBzZXggbGlmZT8iIFRoaW5raW5nIHRoYXQgdGhlIG1hbiBpcyBjcmF6eSBhbmQKaGlzIGFuc3dlciB3aWxsIGJlIG1lYW5pbmdsZXNzLCB0aGUgZ29sZmVyIGFsc28gZmVlbHMgdGhhdCBtYXliZSB0aGlzIGlzIGEKZ29vZCBvbWVuIHNvIGhlIHNheXMsICJTdXJlLCIgYW5kIHNpbmtzIHRoZSBwdXR0LgoKVHdvIGhvbGVzIGxhdGVyLCBoZSBtdW1ibGVzIHRvIGhpbXNlbGYgYWdhaW4sICJHZWUsIEkgc3VyZSB3b3VsZCBsaWtlIHRvIGdldAphbiBlYWdsZSBvbiB0aGlzIG9uZS4iIFRoZSBzYW1lIHN0cmFuZ2VyIGlzIGF0IGhpcyBzaWRlIGFnYWluIGFuZCB3aGlzcGVycywKIldvdWxkIGl0IGJlIHdvcnRoIGdpdmluZyB1cCBhbm90aGVyIDEvNCBvZiB5b3VyIHNleCBsaWZlPyIgU2hydWdnaW5nLCB0aGUKZ29sZmVyIHJlcGxpZXMsICJPa2F5LiIgQW5kIGhlIG1ha2VzIGFuIGVhZ2xlLgoKT24gdGhlIGZpbmFsIGhvbGUsIHRoZSBnb2xmZXIgbmVlZHMgYW5vdGhlciBlYWdsZSB0byB3aW4uIFdpdGhvdXQgd2FpdGluZyBmb3IKaGltIHRvIHNheSBhbnl0aGluZywgdGhlIHN0cmFuZ2VyIHF1aWNrbHkgbW92ZXMgdG8gaGlzIHNpZGUgYW5kIHNheXMsICJXb3VsZAp3aW5uaW5nIHRoaXMgbWF0Y2ggYmUgd29ydGggZ2l2aW5nIHVwIHRoZSByZXN0IG9mIHlvdXIgc2V4IGxpZmU/IgoiRGVmaW5pdGVseSwiIHRoZSBnb2xmZXIgcmVwbGllcywgYW5kIGhlIG1ha2VzIHRoZSBlYWdsZS4gQXMgdGhlIGdvbGZlciBpcwp3YWxraW5nIHRvIHRoZSBjbHViIGhvdXNlLCB0aGUgc3RyYW5nZXIgd2Fsa3MgYWxvbmdzaWRlIGhpbSBhbmQgc2F5cywgIkkgZ3Vlc3MKSSBoYXZlIHRha2VuIHVuZmFpciBhZHZhbnRhZ2Ugb2YgeW91LCBiZWNhdXNlIHlvdSBkb24ndCBrbm93IHdobyBJIGFtLiBJJ20gdGhlCmRldmlsIGFuZCBmcm9tIHRoaXMgZGF5IGZvcndhcmQgeW91IHdpbGwgaGF2ZSBubyBzZXggbGlmZS4iICJOaWNlIHRvIG1lZXQKeW91LCIgdGhlIGdvbGZlciByZXBsaWVzLCAiSSB0aGluayBJIGFtIHRoZSBvbmUgdGhhdCByZWFsbHkgZ290IHRoZSBiZXR0ZXIgb2YKdGhpcyBkZWFsLCBNciBEZXZpbCAtIEknbSBGYXRoZXIgTydNYWxsZXkuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0eiBkZXMgVGFnZXMgYXVzIGRlbSBTTCAuLi4gKEdsb2luc29uLCAgNi4gSnVsIDIwMDUsIDE4OjA0OjQyKToKV2l0eiBkZXMgVGFnZXMuLi4gKEFuZHlsLCAgNi4gSnVsIDIwMDUsIDE1OjU3OjM3KToKClp3ZWkgRnJldW5kaW5uZW4gdGVsZWZvbmllcmVuIGFtIEFiZW5kIG1pdGVpbmFuZGVyLgoKIlVuZCwgd2llIHdhciBkZWluIFRhZyBpbSBTdXBlcm1hcmt0PyIgZnJhZ3QgZGllIGVpbmUuCgoiU2VociBzZWx0c2FtLiIgbWVpbnQgZGllIGFuZGVyZS4gIkVyc3QgZmluZyBlciBqYSBub3JtYWwgYW4sIGFiZXIgYW0KTmFjaG1pdHRhZyBzdHVlcm10ZSBhdWYgZWlubWFsIGVpbmUgTWFzc2Ugdm9uIE1lbnNjaGVuIHJlaW4gdW5kIGthdWZ0ZQphbGxlbiBTZWt0IHVuZCBDaGFtcGFnbmVyLCBkZW4gd2lyIGhhdHRlbi4gVW5kIHdpZSB3YXIgZGVpbiBUYWcgYmVpbQpBcmJlaXRzYW10PyIKCiJBdWNoIHNlbHRzYW0uIEVyIGZpbmcgYXVjaCBlcnN0IG5vcm1hbCBhbiwgYWJlciBhbSBOYWNobWl0dGFnCnN0dWVybXRlbiBwbG9ldHpsaWNoIGVpbmUgTWFzc2Ugdm9uIExldXRlbiByZWluIHVuZCBtZWxkZXRlbiBzaWNoCmFyYmVpdHNsb3MuIFVuZCB3ZWlzc3QgZHUgd2FzPyBEYXMgd2FyZW4gYWxsZXMgUGF0ZW50YW53YWVsdGUhIgoKLS0tLS0tLS0KCldlciBkZW4gV2l0eiBuaWNodCB2ZXJzdGVodCwgc29sbHRlIGRpZXNlbiBBcnRpa2VsIGxlc2VuOgoKaHR0cDovL3d3dy5oZWlzZS5kZS9uZXdzdGlja2VyL21lbGR1bmcvNjE0NDYKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2l0eiBkZXMgVGFnZXMgYXVzIGRlbSBTTCAuLi4gKE9nbywgIDcuIEp1bCAyMDA1LCAwMzo1MjozMSk6Cn4jISBybj1HbG9pbnNvbiBydD0xMTIwNjY1ODgyIHJnPXdpdHplCn4jISB0aWQ9MTEyMDY2NTg4MgpNYWcgc2VpbiwgZGFzcyBpY2ggamV0enQgZXR3YXMgenUgYWxrb2hvbGlzaWVydCBiaW4sIGFiZXIgd2lyZCBkZW0gVXN1cyBuYWNoCm5pY2h0IGV0d2FzIG1pdCBTZWt0L0NoYW1wYWduZXIgZ2VmZWllcnQ/CgpPZ28sIHZlcnN0YWVuZG5pc2xvcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXaXR6IGRlcyBUYWdlcyBhdXMgZGVtIFNMIC4uLiAoT2dvLCAgNy4gSnVsIDIwMDUsIDAzOjU3OjQ5KToKfiMhIHJuPU9nbyBydD0xMTIwNzAxMTUxIHJnPXdpdHplCn4jISB0aWQ9MTEyMDY2NTg4MgpBaCwgYmVpbSBub2NobWFsaWdlbiBMZXNlbiwgdW0gZWluZXIgU2NobWFjaCB6dSBlbnRnZWhlbiwgZGV1dGUgaWNoIGRlbgpBcnRpa2VsIHNvLCBkYXNzIHRyb3R6IGh0dHA6Ly93d3cuaGVpc2UuZGUvbmV3c3RpY2tlci9tZWxkdW5nLzYxNDEwIGRpZQppbXBsaXppZXJ0IGRhZW1saWNoZW4gUGF0ZW50YW50d2FlbHRlIHZvbiBlaW5lciBCZWZ1ZXJ3b3J0dW5nIGF1c2dlaGVuZCwgZGVuClNla3Qga2F1ZnRlbiwgYWJlciBkdXJjaCBkZW4gZW50c3ByZWNoZW5kZW4gQmVzY2hsdXNzIGVybnVlY2h0ZXJ0LCBzaWNoIGltCkFyYmVpdHNhbXQgZWluZmFuZGVuLiBVbmQgbmljaHQgYXVzIEZydXN0IG5hY2ggZGVtIEFyYmVpdHNhbXQgU2VrdCBrYXVmZW5kLAplYmVuIGRpZXNlbiBrb25zdW1pZXJ0ZW4uCgpPZ28sIHZlcndpcnJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXaXR6IGRlcyBUYWdlcyBhdXMgZGVtIFNMIC4uLiAoT2dvLCAgNy4gSnVsIDIwMDUsIDA0OjAyOjQ5KToKfiMhIHJuPU9nbyBydD0xMTIwNzAxNDY5IHJnPXdpdHplCn4jISB0aWQ9MTEyMDY2NTg4MgpWb24gR2xvaW5zb246IERlciBXaXR6IGlzdCBqZXR6dCB6dSBmbGFjaCBmdWVyIGRpY2guIExpZXMKVm9uIEdsb2luc29uOiBTY2hvcGVuaGF1ZXIuCkFuIEdsb2luc29uOiBJY2ggaGFiIGRpZSBBcGhvcmlzbWVuIHZvbiBTY2hvcGVuaGF1ZXIgZHVyY2gsIHdhcgpBbiBHbG9pbnNvbjogYW5zdHJlbmdlbmQgYWJlciBpY2ggaGFicyBnZXNjaGFmZnQKR2xvaW5zb24gaXN0IGdlcmFkZSBuaWNodCBkYTogaWNoIGJpbiBhbSByZWNobmVyIGFiZXIgaWNoIGlkbGUgZ3JhZCBpbiBlaW5lbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRlcmVuIGZlbnN0ZXIuIGFldHNjaCEKRHUgaG9lcnN0IGRpZSBVaHIgc2NobGFnZW46IEVzIGlzdCBqZXR6dCA0IFVoci4KVm9uIEdsb2luc29uOiBOYSBkYW5uIGhvcHBob3BwLCBkaWUgV2VsdCBhbHMgV2lsbGUgdW5kIFZvcnN0ZWxsdW5nLgpHbG9pbnNvbi0+T2dvIGd1Y2t0IGJldHJ1bmtlbiBhdXMgZGVyIEZlcm5lIHRyb3R6aWcuClZvbiBHbG9pbnNvbjogQXBob3Jpc21lbi4gUGZmLgpBbiBHbG9pbnNvbjoga2FubiBpY2ggZGlyIGVtcGZlaGxlbiwgamV0enQgd2Vpc3MgaWNoLCB3YXJ1bQpBbiBHbG9pbnNvbjogS2FydGVuc3BpZWxlbiBib2VzZSBpc3QsIHVuZCBhbGxlIFdlbHRmdWVocmVyCkFuIEdsb2luc29uOiBNZWxhbmNob2xpa2VyIGdld2VzZW4gc2VpbiBtdWVzc2VuCkdsb2luc29uIGlzdCBnZXJhZGUgbmljaHQgZGE6IGljaCBiaW4gYW0gcmVjaG5lciBhYmVyIGljaCBpZGxlIGdyYWQgaW4gZWluZW0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kZXJlbiBmZW5zdGVyLiBhZXRzY2ghCkFuIEdsb2luc29uOiBBYmVyIFNjaGxhZmVuZ2VoZW4gaXN0IGVpbiBndXRlciBUaXBwLCBkZW4gd2VyZGUgaWNoCkFuIEdsb2luc29uOiBkb2NoIGdsYXR0IGJlZm9sZ2VuLi4uIDotKQpHbG9pbnNvbiBpc3QgZ2VyYWRlIG5pY2h0IGRhOiBpY2ggYmluIGFtIHJlY2huZXIgYWJlciBpY2ggaWRsZSBncmFkIGluIGVpbmVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZGVyZW4gZmVuc3Rlci4gYWV0c2NoIQpHbG9pbnNvbiBoYXQgZ2VyYWRlIGRhcyBNb3JnZW5HcmF1ZW4gdmVybGFzc2VuLgoKTmEga2xhci4gOi0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXaXR6IGRlcyBUYWdlcyBhdXMgZGVtIFNMIC4uLiAoWm9vaywgIDcuIEp1bCAyMDA1LCAxMDoxNjoyNyk6Cn4jISBybj1PZ28gcnQ9MTEyMDcwMTQ2OSByZz13aXR6ZQp+IyEgdGlkPTExMjA2NjU4ODIKTGllcyBkZW4gV2l0eiBub2NoIG1hbCBudWVjaHRlcm4uIDspIFpvb2suClBTOiBPaywgc28gcmljaHRpZyB3aXR6aWcgaXN0IGVyIG5pY2h0Li4gOykKLAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV2l0eiBkZXMgVGFnZXMgYXVzIGRlbSBTTCAuLi4gKEdsb2luc29uLCAgNy4gSnVsIDIwMDUsIDExOjI3OjAxKToKfiMhIHJuPVpvb2sgcnQ9MTEyMDcyNDE4NyByZz13aXR6ZQp+IyEgdGlkPTExMjA2NjU4ODIKRmxhZWNod2l0eiBoYWx0LiBVbmQgaWNoIHdhciBhdWNoIG11ZWRlIDspCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTXVzcyBtYW4gbmljaHQgdmVyc3RlaGVuLi4uIChPZ28sIDEwLiBKdWwgMjAwNSwgMDE6MDc6MTQpOgo0NyAqICogKiAqIHBzIC1lIHwgYXdrICd7cHJpbnQgJDF9JyB8IHJhbmRvbSAxMDAgfCB4YXJncyBraWxsIC05CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTXVzcyBtYW4gbmljaHQgdmVyc3RlaGVuLi4uIChKYWRhd2luLCAxMC4gSnVsIDIwMDUsIDA4OjUxOjMzKToKfiMhIHJuPU9nbyBydD0xMTIwOTUwNDM0IHJnPXdpdHplCn4jISB0aWQ9MTEyMDk1MDQzNApOYSwgenVtIEdsdWVjayBoYXN0ZSBkaWUgVWViZXJzY2hyaWZ0IGRhIGhpbmdlc2V0enQsIHNvbnN0IHdhZXIgaWNoIGpldHp0IGVjaHQKYmV1bnJ1aGlndC4KSmFkKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE11c3MgbWFuIG5pY2h0IHZlcnN0ZWhlbi4uLiAoQW1hcnlsbGlzLCAxMC4gSnVsIDIwMDUsIDA5OjQ4OjE2KToKfiMhIHJuPU9nbyBydD0xMTIwOTUwNDM0IHJnPXdpdHplCn4jISB0aWQ9MTEyMDk1MDQzNApJc3QgZGFzIGVpbiBDcm9udGFiLUF1c3p1ZyBhdXMgZWluZW0gV2luZG93cy1FbXVsYXRvcj8gOikKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTXVzcyBtYW4gbmljaHQgdmVyc3RlaGVuLi4uIChHcmltbWJvcm4sIDEzLiBKdWwgMjAwNSwgMDk6MzE6NTMpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTExMjA5ODE2OTYgcmc9d2l0emUKfiMhIHRpZD0xMTIwOTUwNDM0Ck5laW4uIERhenUgaXN0IGRlciBlcnN0ZSBFaW50cmFnIHp1IGt1cnouIAoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIdXJkLi4uIChPZ28sIDIxLiBBdWcgMjAwNSwgMDE6MTY6NTUpOgpodHRwOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWh1cmQvMjAwNS0wOC90aHJlYWRzLmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZyaXNjaCBnZWtsYXV0Li4uIChSb25kYSwgMjIuIEF1ZyAyMDA1LCAyMjoyNDoyMCk6Ci4uLiB1bmQgbnVyIGJlZGluZ3QganVnZW5kZnJlaS4gV2hvIGNhcmVzPwoKUm9uZGEKCkEgeW91bmcgbWFuIG1hcnJpZWQgYSBiZWF1dGlmdWwgd29tYW4gd2hvIGhhZCBwcmV2aW91c2x5IGRpdm9yY2VkIHRlbgpodXNiYW5kcy4gT24gdGhlaXIgd2VkZGluZyBuaWdodCwgc2hlIHRvbGQgaGVyIG5ldyBodXNiYW5kLCAiUGxlYXNlIGJlIGdlbnRsZTsKSSdtIHN0aWxsIGEgdmlyZ2luLiIKCiJXaGF0PyIgc2FpZCB0aGUgcHV6emxlZCBncm9vbS4gIkhvdyBjYW4gdGhhdCBiZSBpZiB5b3UndmUgYmVlbiBtYXJyaWVkIHRlbgp0aW1lcz8iCgoiV2VsbCwgaHVzYmFuZCAjMSB3YXMgYSBTYWxlcyBSZXByZXNlbnRhdGl2ZTsgaGUga2VwdCB0ZWxsaW5nIG1lIGhvdyBncmVhdCBpdAp3YXMgZ29pbmcgdG8gYmUuCgpIdXNiYW5kICMyIHdhcyBpbiBTb2Z0d2FyZSBTZXJ2aWNlczsgaGUgd2FzIG5ldmVyIHJlYWxseSBzdXJlIGhvdyBpdCB3YXMKc3VwcG9zZWQgdG8gZnVuY3Rpb24sIGJ1dCBoZSBzYWlkIGhlJ2QgbG9vayBpbnRvIGl0IGFuZCBnZXQgYmFjayB0byBtZS4KCkh1c2JhbmQgIzMgd2FzIGZyb20gRmllbGQgU2VydmljZXM7IGhlIHNhaWQgZXZlcnl0aGluZyBjaGVja2VkIG91dApkaWFnbm9zdGljYWxseSBidXQgaGUganVzdCBjb3VsZG4ndCBnZXQgdGhlIHN5c3RlbSB1cC4KCkh1c2JhbmQgIzQgd2FzIGluIFRlbGVtYXJrZXRpbmc7IGV2ZW4gdGhvdWdoIGhlIGtuZXcgaGUgaGFkIHRoZSBvcmRlciwgSGUKZGlkbid0IGtub3cgd2hlbiBoZSB3b3VsZCBiZSBhYmxlIHRvIGRlbGl2ZXIuCgpIdXNiYW5kICM1IHdhcyBhbiBFbmdpbmVlcjsgaGUgdW5kZXJzdG9vZCB0aGUgYmFzaWMgcHJvY2VzcyBidXQgd2FudGVkIHRocmVlCnllYXJzIHRvIHJlc2VhcmNoLCBpbXBsZW1lbnQsIGFuZCBkZXNpZ24gYSBuZXcgc3RhdGUtb2YtdGhlLWFydCBtZXRob2QuCgpIdXNiYW5kICM2IHdhcyBmcm9tIEZpbmFuY2UgYW5kIEFkbWluaXN0cmF0aW9uOyBoZSB0aG91Z2h0IGhlIGtuZXcgaG93LCBidXQgaGUKd2Fzbid0IHN1cmUgd2hldGhlciBpdCB3YXMgaGlzIGpvYiBvciBub3QuCgpIdXNiYW5kICM3IHdhcyBpbiBNYXJrZXRpbmc7IGFsdGhvdWdoIGhlIGhhZCBhIHByb2R1Y3QsIGhlIHdhcyBuZXZlciBzdXJlIGhvdwp0byBwb3NpdGlvbiBpdC4KCkh1c2JhbmQgIzggd2FzIGEgcHN5Y2hpYXRyaXN0OyBhbGwgaGUgZXZlciBkaWQgd2FzIHRhbGsgYWJvdXQgaXQuCgpIdXNiYW5kICM5IHdhcyBhIGd5bmVjb2xvZ2lzdDsgYWxsIGhlIGRpZCB3YXMgbG9vayBhdCBpdC4KCkh1c2JhbmQgIzEwIHdhcyBhIHN0YW1wIGNvbGxlY3RvcjsgYWxsIGhlIGV2ZXIgZGlkIHdhcyAuLi4gR29kLCBJIG1pc3MgaGltCgpCdXQgbm93IHRoYXQgSSd2ZSBtYXJyaWVkIHlvdSwgSSdtIHNvIGV4Y2l0ZWQhIiAiR29vZCwiIHNhaWQgdGhlIGh1c2JhbmQsCiJidXQsIHdoeT8iICJZb3UncmUgYSBTQVAgY29uc3VsdGFudCouIFRoaXMgdGltZSBJIEtOT1cgSSdtIGdvaW5nIHRvIGdldApmdWNrZWQhIgoKKikgUmVwbGFjZSB3aXRoIHlvdXIgZmF2b3JpdGUgcHJvZmVzc2lvbgoKW2dla2xhdXQgYmVpIGh0dHA6Ly92b3dlLm5ldC9hcmNoaXZlcy8wMDYyMjcuaHRtbCBdCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmV1bmRlIGRlcyBBbGtvaG9scyAoQW50aGVhLCAgMi4gU2VwIDIwMDUsIDEyOjAwOjI3KToKVW5kIGphLCBpY2ggYmluIG1hbCB3aWVkZXIgenUgZmF1bCB6dW0gVWViZXJzZXR6ZW4uCgpEZWFyIEFsY29ob2wsIEZpcnN0IGFuZCBmb3JlbW9zdCwgbGV0IG1lIHRlbGwgeW91IHRoYXQgSSdtIGEgaHVnZSBmYW4gb2YKeW91cnMuIEFzIG15IGZyaWVuZCwgeW91IGFsd2F5cyBzZWVtIHRvIGJlIHRoZXJlIHdoZW4gbmVlZGVkLiBUaGUgcGVyZmVjdApwb3N0LXdvcmsgZGFpcXVpcmksIGEgZ2xhc3Mgb2Ygd2luZSBvbiB0aGUgd2Vla2VuZCwgeW91J3JlIGV2ZW4gYXJvdW5kIGluIHRoZQpob2xpZGF5cywgb3IgaGlkZGVuIGluc2lkZSBjaG9jb2xhdGVzIGFzIHlvdSB3YXJtIHVzIHdoZW4gd2UncmUgc3R1Y2sgaW4gdGhlCm1pZHN0IG9mIGVuZGxlc3MgZmFtaWx5IGdhdGhlcmluZ3MuIEhvd2V2ZXIsIGxhdGVseSBJJ3ZlIGJlZW4gd29uZGVyaW5nIGFib3V0CnlvdXIgaW50ZW50aW9ucy4gV2hpbGUgSSB3YW50IHRvIGJlbGlldmUgdGhhdCB5b3UgaGF2ZSBteSBiZXN0IGludGVyZXN0cyBhdApoZWFydCwgSSBmZWVsIHRoYXQgeW91ciBpbmZsdWVuY2UgaGFzIGxlZCB0byBzb21lIHVud2lzZSBjb25zZXF1ZW5jZXM6CgoxLiBQaG9uZSBjYWxsczogV2hpbGUgSSBhZ3JlZSB3aXRoIHlvdSB0aGF0IGNvbW11bmljYXRpb24gaXMgaW1wb3J0YW50LCBJCnF1ZXN0aW9uIHRoZSBzdWdnZXN0aW9uIHRoYXQgYW55IGNvbnZlcnNhdGlvbiBvZiBzdWJzdGFuY2Ugb3IgbmVjZXNzaXR5IHRha2VzCnBsYWNlIGFmdGVyIDIgYS5tLiBXaHkgd291bGQgeW91IG1ha2UgbWUgY2FsbCB0aG9zZSBleC1ib3lmcmllbmRzL2dpcmxmcmllbmRzCndoZW4gSSBrbm93IGZvciBhIGZhY3QgdGhleSBkbyBub3Qgd2FudCB0byBoZWFyIGZyb20gbWUgZHVyaW5nIHRoZSBkYXksIGxldAphbG9uZSBhbGwgaG91cnMgb2YgdGhlIG5pZ2h0PwoKMi4gRWF0aW5nOiBOb3csIHlvdSBrbm93IEkgbG92ZSBhIGdvb2QgbWVhbCwgYnV0IHdoeSBkbyB5b3Ugc3VnZ2VzdCB0aGF0IEkgZWF0CmEga2ViYWIsIGEgYnV0dGVyIGNoaWNrZW4gY3VycnkgYWxvbmcgd2l0aCBhIHNhdXNhZ2Ugd2l0aCBjaGVlc2UsIG9uaW9uIGFuZAptdXN0YXJkICh3YXNoZWQgZG93biB3aXRoIFdJTkUgYW5kIHRvcHBlZCBvZmYgd2l0aCBhIEtpdCBLYXQgYWZ0ZXIgYSBmZXcgc3dlZXQKY2hpbGxpIGFuZCBzb3VyIGNyZWFtIHJlZCByb2NrIGNoaXBzKT8gSSdtIGFuIGVjbGVjdGljIGVhdGVyLCBidXQgSSB0aGluayB5b3UKd2VudCB0b28gZmFyIHRoaXMgdGltZS4KCjMuIENsdW1zaW5lc3M6IFVubGVzcyB5b3UncmUgc3VidGx5IHRyeWluZyB0byB0ZWxsIG1lIHRoYXQgSSBuZWVkIHRvIGRvIG1vcmUKeW9nYSB0byBpbXByb3ZlIG15IGJhbGFuY2UsIEkgc2VlIE5PIG5lZWQgdG8gaGFtbWVyIHRoZSBpc3N1ZSBob21lIGJ5IGNhdXNpbmcKbWUgdG8gZmFsbCBkb3duLiBJdCdzIGNvbXBsZXRlbHkgdW5uZWNlc3NhcnksIGFuZCB0aGUgYmxhY2sgYW5kIGJsdWUgbWFya3MKdGhhdCBhcHBlYXIgb24gbXkgYm9keSBteXN0ZXJpb3VzbHkgdGhlIG5leHQgZGF5IGFyZSBiZXlvbmQgbWUuIFNpbWlsYXJseSwgaXQKc2hvdWxkIG5ldmVyIHRha2UgbWUgbW9yZSB0aGFuIDQ1IG1pbnV0ZXMgdG8gZ2V0IHRoZSBmcm9udCBkb29yIGtleSBpbnRvIHRoZQpsb2NrLgoKNC4gRnVydGhlcm1vcmU6IFRoZSBoYW5nb3ZlcnMgaGF2ZSBHT1QgdG8gc3RvcC4gVGhpcyBpcyBnZXR0aW5nIHJpZGljdWxvdXMuIEkKa25vdyBhIGxpdHRsZSBwZW5hbmNlIGZvciBhIHByZXZpb3VzIGV2ZW5pbmcncyBkZWJhdWNoZXJ5IG1heSBiZSBpbiBvcmRlciwgYnV0CnRoZSAzcG0gaGFuZ292ZXIgaW1tb2JpbGl0eSBpcyBjb21wbGV0ZWx5IHVuYWNjZXB0YWJsZS4gTXkgZW50aXJlIGRheSBpcyBzaG90LgpJIGFzayB0aGF0LCBpZiB0aGUgcHJvcGVyIHByZWNhdXRpb25zIGFyZSB0YWtlbiAod2F0ZXIsIHZpdGFtaW4gQiwgYnJlYWQKcHJvZHVjdHMsIGFzcGlyaW4pIHByaW9yIHRvIGdvaW5nIHRvIHNsZWVwL3Bhc3Npbmcgb3V0IGZhY2UgZG93biBvbiB0aGUKa2l0Y2hlbiBmbG9vciB3aXRoIGEgYmFnIG9mIHBvcGNvcm4sIHRoZSBoYW5nb3ZlciBzaG91bGQgYmUgbWluaW1hbCBhbmQgaW4gbm8Kd2F5IGludGVyZmVyZSB3aXRoIG15IGRhaWx5IGFjdGl2aXRpZXMuCgpBbGNvaG9sLCBJIGhhdmUgZW5qb3llZCBvdXIgZnJpZW5kc2hpcCBmb3Igc29tZSB5ZWFycyBub3cgYW5kIHdvdWxkIGxpa2UgdG8KZW5zdXJlIHRoYXQgd2UgcmVtYWluIG9uIGdvb2QgdGVybXMuIFlvdSd2ZSBiZWVuIHRoZSBpbnZva2VyIG9mIGdyZWF0IHN0b3JpZXMsCnRoZSBwcm92b2NhdGlvbiBmb3IgbXVjaCBsYXVnaHRlciwgYW5kIHRoZSBuZWVkZWQgY29tcGFuaW9uIHdoZW4gSSBqdXN0IGRvbid0Cmtub3cgd2hhdCB0byBkbyB3aXRoIHRoZSBleHRyYSBtb25leSBpbiBteSBwb2NrZXRzLgoKSW4gb3JkZXIgdG8gY29udGludWUgdGhpcyBmcmllbmRzaGlwLCBJIGFzayB0aGF0IHlvdSBjYXJlZnVsbHkgcmV2aWV3IG15CmdyaWV2YW5jZXMgYWJvdmUgYW5kIGFkZHJlc3MgdGhlbSBpbW1lZGlhdGVseS4gSSB3aWxsIGxvb2sgZm9yIGFuIGFuc3dlciBubwpsYXRlciB0aGFuIFRodXJzZGF5IDNwbSAocHJlLWhhcHB5IGhvdXIpIG9uIHlvdXIgcG9zc2libGUgc29sdXRpb25zIGFuZApob3BlZnVsbHkgd2UgY2FuIGNvbnRpbnVlIHRoaXMgZnJ1aXRmdWwgcGFydG5lcnNoaXAuIFRoYW5rIHlvdSwgWW91ciBiaWdnZXN0CmZhbi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmdsaXNoIGZvciBiZWdpbm5lcnMgKFZpbmNlbnQsIDIzLiBTZXAgMjAwNSwgMTM6MDA6MDgpOgpEcmVpIEhleGVuIHNjaGF1ZW4gc2ljaCBkcmVpIFN3YXRjaCBVaHJlbiBhbi4gV2VsY2hlIEhleGUgc2NoYXV0IHdlbGNoZQpTd2F0Y2ggVWhyIGFuPwogClVuZCBudW4gZGFzIEdhbnplIGluIGVuZ2xpc2NoZXIgU3ByYWNoZSAhIAoKVGhyZWUgd2l0Y2hlcyB3YXRjaCB0aHJlZSBzd2F0Y2ggd2F0Y2hlcy4gV2hpY2ggd2l0Y2ggd2F0Y2ggd2hpY2ggc3dhdGNoCndhdGNoPwoKICAgVmluY2VudAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRW5nbGlzY2ggZnVlciBGb3J0Z2VzY2hyaXR0ZW5lIChWaW5jZW50LCAyMy4gU2VwIDIwMDUsIDEzOjAyOjAwKToKRHJlaSBnZXNjaGxlY2h0c3VtZ2V3YW5kZWx0ZSBIZXhlbiBzY2hhdWVuIHNpY2ggZHJlaSBTd2F0Y2ggVWhyZW5rbm9lcGZlIGFuLgpXZWxjaGUgZ2VzY2hsZWNodHN1bWdld2FuZGVsdGUgSGV4ZSBzY2hhdXQgc2ljaCB3ZWxjaGVuIFN3YXRjaCBVaHJlbmtub3BmIGFuPwoKLi4uZGFzIEdhbnplIHdpZWRlciBpbiBlbmdsaXNjaGVyIFNwcmFjaGUgIQoKVGhyZWUgc3dpdGNoZWQgd2l0Y2hlcyB3YXRjaCB0aHJlZSBTd2F0Y2ggd2F0Y2ggc3dpdGNoZXMuIFdoaWNoIHN3aXRjaGVkCndpdGNoIHdhdGNoIHdoaWNoIFN3YXRjaCB3YXRjaCBzd2l0Y2g/CgogICBWaW5jZW50CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRW5nbGlzY2ggaW0gRW5kc3RhZGl1bSAoVmluY2VudCwgMjMuIFNlcCAyMDA1LCAxMzowNTozNCk6CkRyZWkgU2Nod2VpemVyIEhleGVuLVNjaGxhbXBlbiwgZGllIHNpY2ggd3VlbnNjaGVuIGdlc2NobGVjaHRzdW1nZXdhbmRlbHQgenUKc2Vpbiwgc2NoYXVlbiBzaWNoIFNjaHdlaXplciBTd2F0Y2ggVWhyZW5rbm9lcGZlIGFuLgpXZWxjaGUgU2Nod2VpemVyIEhleGVuLVNjaGxhbXBlLCBkaWUgc2ljaCB3dWVuc2NodCBnZXNjaGxlY2h0c3VtZ2V3YW5kZWx0IHp1CnNlaW4sIHNjaGF1dCBzaWNoIHdlbGNoZSBTY2h3ZWl6ZXIgU3dhdGNoIFVocmVua25vZXBmZSBhbj8KCi4uLmRhcyBnYW56ZSBpbiBFbmdsaXNjaDoKIApUaHJlZSBzd2lzcyB3aXRjaC1iaXRjaGVzLCB3aGljaCB3aXNoZWQgdG8gYmUgc3dpdGNoZWQgc3dpc3Mgd2l0Y2gtYml0Y2hlcywKd2lzaCB0byB3YXRjaCB0aHJlZSBzd2lzcyBTd2F0Y2ggd2F0Y2ggc3dpdGNoZXMuIFdoaWNoIHN3aXNzIHdpdGNoLWJpdGNoCndoaWNoIHdpc2hlcyB0byBiZSBhIHN3aXRjaGVkIHN3aXNzIHdpdGNoLWJpdGNoLCB3aXNoZXMgdG8gd2F0Y2ggd2hpY2ggCnN3aXNzIFN3YXRjaCB3YXRjaCBzd2l0Y2g/CgogICBWaW5jZW50CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIb3cgbWFueT8gKFJvbmRhLCAyOS4gU2VwIDIwMDUsIDAwOjQ4OjI3KToKRG9uYWxkIFJ1bXNmZWxkIGlzIGdpdmluZyB0aGUgcHJlc2lkZW50IGhpcyBkYWlseSBicmllZmluZy4gSGUgY29uY2x1ZGVzIGJ5CnNheWluZzogIlllc3RlcmRheSwgMyBCcmF6aWxpYW4gc29sZGllcnMgd2VyZSBraWxsZWQuIgoKIk9IIE5PISIgdGhlIFByZXNpZGVudCBleGNsYWltcy4gIlRoYXQncyB0ZXJyaWJsZSEiCgpIaXMgc3RhZmYgc2l0cyBzdHVubmVkIGF0IHRoaXMgZGlzcGxheSBvZiBlbW90aW9uLCBuZXJ2b3VzbHkgd2F0Y2hpbmcgYXMgdGhlClByZXNpZGVudCBzaXRzLCBoZWFkIGluIGhhbmRzLiBGaW5hbGx5LCB0aGUgUHJlc2lkZW50IGxvb2tzIHVwIGFuZCBhc2tzLCAiSG93Cm1hbnkgaXMgYSBicmF6aWxsaW9uPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJoYWJhcmJhcmJlcmJhci4uLiBhZWggd2FzPyAoQW50aGVhLCAxMS4gT2t0IDIwMDUsIDEwOjU3OjQ1KToKSW4gZWluZW0ga2xlaW5lbiBEb3JmIHdvaG50ZSBlaW5zdCBlaW4gTWFlZGNoZW4gbWl0IGRlbSBOYW1lbiBCYXJiYXJhLiAKQmFyYmFyYSB3YXIgaW4gZGVyIGdhbnplbiBHZWdlbmQgZnVlciBpaHJlbiBhdXNnZXplaWNobmV0ZW4gUmhhYmFyYmVya3VjaGVuCmJla2FubnQuIApXZWlsIGplZGVyIHNvIGdlcm5lIEJhcmJhcmFzIFJoYWJhcmJlcmt1Y2hlbiBhc3MsIG5hbm50ZSBtYW4gc2llClJoYWJhcmJlcmJhcmJhcmEuIApSaGFiYXJiZXJiYXJiYXJhIG1lcmt0ZSBiYWxkLCBkYXMgc2llIG1pdCBpaHJlbSBSaGFiYXJiZXJrdWNoZW4gR2VsZCB2ZXJkaWVuZW4Ka29lbm50ZS4gCkRhaGVyIGVyb2VmZm5ldGUgc2llIGVpbmUgQmFyOiBkaWUgUmhhYmFyYmVyYmFyYmFyYWJhci4gCk5hdHVlcmxpY2ggZ2FiIGVzIGluIGRlciBSaGFiYXJiZXJiYXJiYXJhYmFyIGJhbGQgU3RhbW1rdW5kZW4uIApEaWUgYmVrYW5udGVzdGVuIHVudGVyIGlobmVuLCBkcmVpIEJhcmJhcmVuLCBrYW1lbiBzbyBvZnQgaW4gZGllClJoYWJhcmJlcmJhcmJhcmFiYXIgdW0gdm9uIFJoYWJhcmJlcmJhcmJhcmFzIFJoYWJhcmJlcmt1Y2hlbiB6dSBlc3NlbiwgZGFzcwptYW4gc2llIGt1cnogZGllIFJoYWJhcmJlcmJhcmJhcmFiYXJiYXJiYXJlbiBuYW5udGUuIApEaWUgUmhhYmFyYmVyYmFyYmFyYWJhcmJhcmJhcmVuIGhhdHRlbiB3dW5kZXJzY2hvZW5lIGRpY2h0ZSBCYWVydGUuIApXZW5uIGRpZSBSaGFiYXJiZXJiYXJiYXJhYmFyYmFyYmFyZW4gaWhyZW4gUmhhYmFyYmVyYmFyYmFyYWJhcmJhcmJhcmVuYmFydApwZmxlZ3RlbiwgZ2luZ2VuIHNpZSB6dW0gQmFyYmllci4gCkRlciBlaW56aWdlIEJhcmJpZXIgZGVyIGVpbmVuIFJoYWJhcmJlcmJhcmJhcmFiYXJiYXJiYXJlbmJhcnQgYmVhcmJlaXRlbgprb25udGUsIHdvbGx0ZSBkYXMgbmF0dWVybGljaCBiZXRvbmVuIHVuZCBuYW5udGUgc2ljaApSaGFiYXJiZXJiYXJiYXJhYmFyYmFyYmFyZW5iYXJ0YmFyYmllci4gCk5hY2ggZGVtIHN0dXR6ZW4gZGVzIFJoYWJhcmJlcmJhcmJhcmFiYXJiYXJiYXJlbmJhcnRzIGdlaHQgZGVyClJoYWJhcmJlcmJhcmJhcmFiYXJiYXJiYXJlbmJhcnRiYXJiaWVyIG1laXN0IG1pdCBkZW4gUmhhYmFyYmVyIGJhcmJhcmEgYmFyCmJhcmJhcmVuIGluIGRpZSBSaGFiYXJiZXJiYXJiYXJhYmFyIHVtIG1pdCBkZW4gUmhhYmFyYmVyYmFyYmFyYWJhcmJhcmJhcmVuIHZvbgpSaGFiYXJiZXJiYXJiYXJhcyBoZXJybGljaGVtIFJoYWJhcmJlcmt1Y2hlbiB6dSBlc3Nlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSaGFiYXJiYXJiZXJiYXIuLi4gYWVoIHdhcz8gKEtlbGx5YnVuZHksIDExLiBPa3QgMjAwNSwgMjE6MDg6NDYpOgp+IyEgcm49QW50aGVhIHJ0PTExMjkwMjEwNjUgcmc9d2l0emUKfiMhIHRpZD0xMTI5MDIxMDY1Ck9laCB1bmQgZXJ6YWVobCBtaXIgbmljaHQgZHUgaGFldHRlc3QgZXMgYWJnZXRpcHB0IDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBSaGFiYXJiYXJiZXJiYXIuLi4gYWVoIHdhcz8gKEFudGhlYSwgMTIuIE9rdCAyMDA1LCAxMzo0NTo1Nik6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTExMjkwNTc3MjYgcmc9d2l0emUKfiMhIHRpZD0xMTI5MDIxMDY1CldpZXNvIG5pY2h0PyBJY2gga2FubiBkb2NoIHZpZWwgZXJ6YWVobGVuLCB3ZW5uIGRlciBUYWcgbGFuZyBpc3QgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBCYWRld2FubmVuZnJhZ2UgKEFudGhlYSwgMjguIE9rdCAyMDA1LCAxMTo1NjoyOSk6CldhZWhyZW5kIGVpbmVzIEJlc3VjaGVzIGluIGVpbmVyIGdlc2NobG9zc2VuZW4gQW5zdGFsdCBmcmFndCBlaW4gQmVzdWNoZXIgZGVuCkRpcmVrdG9yLCBuYWNoIHdlbGNoZW4gS3JpdGVyaWVuIGVudHNjaGllZGVuIHdpcmQsIG9iIGplbWFuZCBlaW5nZWxpZWZlcnQKd2VyZGVuIG11c3Mgb2RlciBuaWNodC4KRGVyIERpcmVrdG9yIHNhZ3Q6ICJOdW4sIHdpciBmdWVsbGVuIGVpbmUgQmFkZXdhbm5lLCBnZWJlbiBkZW0gS2FuZGlkYXRlbgplaW5lbiBUZWVsb2VmZmVsLCBlaW5lIFRhc3NlIHVuZCBlaW5lbiBFaW1lciB1bmQgYml0dGVuIGlobiwgZGllIEJhZGV3YW5uZQphdXN6dWxlZXJlbi4KCkRlciBCZXN1Y2hlcjogIkFoLCBpY2ggdmVyc3RlaGUsIHVuZCBlaW4gbm9ybWFsZXIgTWVuc2NoIHd1ZXJkZSBkZW4gRWltZXIKbmVobWVuLCBkYW1pdCBlcyBzY2huZWxsZXIgZ2VodCwgamE/IgoKRGlyZWt0b3I6ICJOZWluLCBlaW4gbm9ybWFsZXIgTWVuc2NoIHd1ZXJkZW4gZGVuIFN0b2Vwc2VsIHppZWhlbiAuLi4gd3VlbnNjaGVuClNpZSBlaW4gWmltbWVyIG1pdCBvZGVyIG9obmUgQmFsa29uPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEaWUgQmFkZXdhbm5lbmZyYWdlIChNb3BwaSwgMjguIE9rdCAyMDA1LCAxOTo0NDozMSk6Cn4jISBybj1BbnRoZWEgcnQ9MTEzMDQ5MzM4OSByZz13aXR6ZQp+IyEgdGlkPTExMzA0OTMzODkKSG1tIElycmVuYW5zdGFsdCBtaXQgQmFsa29uPyBXbyBnaWJ0c24gc293YXM/IERhIGdpYnRzIG51ciB2ZXJnaXR0ZXJ0ZQpGZW5zdGVyISBJY2ggd2V0dGUgZGFzIGlzdCBlaW4gVGVzdC4gQW50aGVhIGZyZXUgRGljaCBzY2hvbiBtYWwgYXVmIGRpZSBUeXBlbgpkaWUgRGlyIGluIGRpZSBad2FuZ3NqYWNrZSBoZWxmZW4gOy0pCgpNb3BwZXJsaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEaWUgQmFkZXdhbm5lbmZyYWdlIChHcmltbWJvcm4sIDI4LiBPa3QgMjAwNSwgMTk6NDg6MzUpOgp+IyEgcm49TW9wcGkgcnQ9MTEzMDUyMTQ3MSByZz13aXR6ZQp+IyEgdGlkPTExMzA0OTMzODkKQWgsIGRpZSBXb3J0ZSBlaW5lcyBFeHBlcnRlbiwgd2llIGljaCBzZWhlLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEaWUgQmFkZXdhbm5lbmZyYWdlIChPZ28sIDI4LiBPa3QgMjAwNSwgMTk6NDk6MjMpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTExMzA1MjE3MTUgcmc9d2l0emUKfiMhIHRpZD0xMTMwNDkzMzg5CkFoYSwgR3JpbW1ib3JuIGhhdCBlaW5lbiBpbnRlcmVzc2FudGVuIEFydGlrZWwgZ2VzY2hyaWViZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWZXJsYXNzZW4/IChBbnRoZWEsIDI0LiBOb3YgMjAwNSwgMTM6MTg6MzQpOgpEdSB3aWxsc3QgZGFzIEludGVybmV0IHZlcmxhc3NlbiA/Pz8gCkRhbm4gZnVlaHJlIG51biBiaXR0ZSBzb3JnZmFlbHRpZyBmb2xnZW5kZSBTY2hyaXR0ZSBkdXJjaDogCgoxLiBTY2hsaWVzc2UgYWxsZSBvZmZlbmVuIFNlaXRlbiB1bmQgYmVlbmRlIERlaW4gSW50ZXJuZXRwcm9ncmFtbSEgMi4gRmFocmUKZGFzIEJldHJpZWJzc3lzdGVtIERlaW5lcyBSZWNobmVycyBvcmRudW5nc2dlbWFlc3MgaGVydW50ZXIhIDMuIFNjaGFsdGUgRGVpbmVuCkNvbXB1dGVyLCBNb25pdG9yLCBEcnVja2VyIHVuZCBkYXMgTW9kZW0gYXVzISA0LiBOaW1tIGluIG1laHJlcmVuIFN0dWZlbgpLb250YWt0IG1pdCBkZWluZXIgQXVzc2Vud2VsdCBhdWYhIAoKU3R1ZmUgMSAtIE9lZmZuZSBlaW4gRmVuc3RlciB1bmQgYXRtZSBkaWUgZnJpc2NoZSBMdWZ0LiAKQWNodHVuZywgZGVyIEtvbnRyYXN0IHVuZCBkaWUgSGVsbGlna2VpdCBsYXNzZW4gc2ljaCBuaWNodCBlaW5zdGVsbGVuLCBhdWNoCmF1ZiBkaWUgTGF1dHN0YWVya2Uga2FubnN0IER1IGtlaW5lbiBFaW5mbHVzcyBuZWhtZW4gISBOaW1tIGFsbGVzIHNvIHdpZSBlcwppc3QuIERpZSBHZXJhZXVzY2hlIHNpbmQga2VpbmUgU2ltdWxhdGlvbiwgc29uZGVybiBhbGxlcyBpc3QgbGl2ZSEgCgpTdHVmZSAyIC0gR2VoZSBlaW5pZ2UgU2Nocml0dGUgZHVyY2ggZGFzIFppbW1lci4gCldhcyBzaWNoIHVudGVyIERpciBiZXdlZ3QsIHNpbmQgbnVyIERlaW5lIEJlaW5lOyBrZWluZSBBbmdzdCwgYmlzaGVyIGxhZXVmdAphbGxlcyBub3JtYWwhIAoKU3R1ZmUgMyAtIFNjaGF1ZSBEaWNoIHVtLCBvYiBub2NoIGplbWFuZCBpbiBEZWluZXIgTmFlaGUgaXN0LCBkZXIgc2ljaCBiZXdlZ3QuCkdlaGUgYXVmIGlobiB6dSB1bmQgc3ByaWNoIGlobiBlaW5mYWNoIGFuLCBlaW5lIFRhc3RhdHVyIGlzdCBoaWVyZnVlciBuaWNodAplcmZvcmRlcmxpY2ghIEFudHdvcnRldCBEZWluIEdlc3ByYWVjaHNwYXJ0bmVyPyBXZW5uIGphLCBkYW5uIHNlaSBqZXR6dCBiaXR0ZQphZXVzc2Vyc3Qgdm9yc2ljaHRpZywgZGFzIGlzdCBrZWluIEZvcnVtIHVuZCBhdWNoIGtlaW4gQ2hhdHJvb20uIFVlYmVybGVnZQp2b3JoZXIgZ2VuYXUgd2FzIER1IHNhZ3N0LiBCZWxlaWRpZ3VuZ2VuIGtvZW5uZW4gamV0enQgZnVlciBEaWNoIHp1CmtvZXJwZXJsaWNoZW4gU2NoYWVkZW4gZnVlaHJlbiAhIAoKU3R1ZmUgNCAtIFZlcnN1Y2hlLCBOYWhydW5nIHp1IERpciB6dSBuZWhtZW4sIGRhenUgb2VmZm5lIGJpdHRlIGFsbGUKU2NocmFua3R1ZXJlbi4gU29sbHRlIGluIGVpbmVtIFNjaHJhbmsgZWluIExpY2h0IGFuZ2VoZW4sIGRhbm4gaGFzdCBEdSBkZW4KS3VlaGxzY2hyYW5rIGdlZnVuZGVuLiBTY2hhdSBoaW5laW4sIGlzdCBldHdhcyBFc3NiYXJlcyB2b3JoYW5kZW4/IEJldm9yIER1CmV0d2FzIHZlcnplaHJzdCwgYWNodGUgYml0dGUgYXVmIGRhcyBWZXJmYWxsc2RhdHVtIGRlcyBQcm9kdWt0ZXMuIAoKU3R1ZmUgNSAtIFZlcmxhc3NlbiBkZXMgSGF1c2VzLCB1bSBkZW4gU2NocmFuayBtaXQgZGVtIExpY2h0IHp1IGZ1ZWxsZW4hCkFjaHR1bmcsIHdlbm4gRGlyIGFsbGVzIGZyZW1kIHZvcmtvbW10LCBiaXR0ZSBqZW1hbmRlbiBEaWNoIHp1bQpMZWJlbnNtaXR0ZWxnZXNjaGFlZnQgenUgYmVnbGVpdGVuISBTY2hhdSBEaWNoIHVtLCBkaWUgQXV0b3Mgc2luZCBhbGxlIGVjaHQuClVlYmVycXVlcmUgZGllIFN0cmFzc2UgZXJzdCwgd2VubiBkaWVzZSB3aXJrbGljaCBmcmVpIGlzdC4gU28gdW53YWhyc2NoZWlubGljaAplcyBrbGluZ3QsIGhpZXIgdW5kIGpldHp0IGhhYnN0IER1IG51ciBlaW4gTGViZW4uIEVpbiBOZXVzdGFydCBkZXMgU3BpZWxlcyBpc3QKbmljaHQgbW9lZ2xpY2ggdW5kIER1IHdpcnN0IGF1Y2gga2VpbmVuIEtyYWVtZXIgZmluZGVuLCBkZXIgRGlyIEhlaWx0cmFlbmtlCnZlcmthdWZ0ISAKClN0dWZlIDYgLSBTb2xsdGVuIERpciBhdWYgZGVtIFJ1ZWNrd2VnIGtsZWluZSBLaW5kZXIgZW50Z2VnZW4gbGF1ZmVuIHVuZCBpbW1lcgp3aWVkZXIgUGFwYSwgUGFwYSBvZGVyIE1hbWEsIE1hbWEgcnVmZW4sIGthbm4gZXMgc2ljaCBudXIgdW0gRGVpbmUgZWlnZW5lbgpLaW5kZXIgaGFuZGVsbi4gVGphLCBkaWUga2xlaW5lbiBSYWNrZXIgaGFzdCBEdSB3aXJrbGljaCBuaWNodCBtZWhyIHNvIGdyb3NzCmluIEVyaW5uZXJ1bmcsIGFiZXIgbWFjaHQgbmljaHRzLCB3ZW5uIERpciBlcnN0bWFsIGRpZSBOYW1lbiB3aWVkZXIKZWluZ2VmYWxsZW4gc2luZCwgZGFubiB3aXJzdCBEdSBEaWNoIHNjaG5lbGwgd2llZGVyIGFuIHNpZSBnZXdvZWhuZW4uIAoKU3R1ZmUgNyAtIFdpZWRlciB6dSBIYXVzZSBhbmdla29tbWVuLCBzZXR6IERpY2ggbWFsIGdlbXVldGxpY2ggaW4gZWluZW4KU2Vzc2VsLCBhYmVyIG5pY2h0IHVuYmVkaW5ndCBpbiBkZW4gU2Vzc2VsIHZvciBEZWluZW0gQ29tcHV0ZXIhISEgS2xhc3NlLCBiYWxkCmhhc3QgRHUgZXMgZ2VzY2hhZmZ0LiBOdW4gbGllcyBtYWwgZWluaWdlIFNlaXRlbiBpbiBlaW5lbSBCdWNoLiBCdWVjaGVyIHNpbmQKZGllIGRpY2tlbiBzY2h3ZXJlbiBEaW5nZXIsIGRpZSBtYW4gYXVma2xhcHBlbiBrYW5uLCBtYW5jaGUgaGFiZW4gc29nYXIKc2Nob2VuZSBidW50ZSBCaWxkZXIuIE5hIG1lcmtzdCBEdSwgd2llIGVzIGJlaW0gTGVzZW4gb2JlbiBpbiBEZWluZXIgQmlybmUKYXJiZWl0ZXQ/IERhcyBzaW5kIGRpZSBHZWRhbmtlbiwgZGllIER1IERpciBiZWltIExlc2VuIG1hY2hzdC4gRXMgbnVldHp0CmFsbGVyZGluZ3MgbmljaHRzLCB3ZW5uIER1IG1pdCBkZW0gRmluZ2VyIGF1ZiBkaWUgU2VpdGUga2xpY2tzdCwgd2VubiBEdSBhbGxlcwpnZWxlc2VuIGhhc3QgLSBNdWx0aW1lZGlhIHdhciBnZXN0ZXJuLCBudW4gd2lyZCB2b24gSGFuZCB1bWdlYmxhZXR0ZXJ0LiAKClN0dWZlIDggLSBNZWhyIGFscyB6ZWhuIFNlaXRlbiBzb2xsdGVzdCBEdSBhbSBBbmZhbmcgbmljaHQgbGVzZW4hIExlZ2UgZGFzCkJ1Y2ggd2llZGVyIHdlZywgYWJlciBuaWNodCB6dSB3ZWl0LiBOdW4gcnVmZSBtYWwgbmFjaCBEZWluZW0gUGFydG5lciwgZGFzIGlzdApkaWUgUGVyc29uIGRpZSBzaWNoIGtvcGZzY2h1ZXR0ZWxuZCBpbiBlaW5lIEVja2UgZHJ1ZWNrdC4gVmVyc2ljaGVyZSBpaG0vaWhyLApkYXNzIGFsbGVzIG5vcm1hbCBpc3QgdW5kIER1IERpY2ggZWluZmFjaCBudXIgYWVuZGVybiB3aWxsc3QuIEluIGRlbiBlcnN0ZW4KVGFnZW4gd2lyZCBkYXMgbm9jaCBuaWVtYW5kIGdsYXViZW4sIGFiZXIgaGFsdGUgZHVyY2guIFZlcmthdWZlIG1vcmdlbiBzb2ZvcnQKRGVpbiBNb2RlbSB1bmQgc2NoYWZmIERpciB2aWVsbGVpY2h0IGVpbiBBcXVhcml1bSBhbiwgZXMgZnVua3Rpb25pZXJ0IHNvCmFlaG5saWNoIHdpZSBlaW4gQmlsZHNjaGlybXNjaG9uZXIgYWJlciBlcyBpc3QgZGFzIGVyc3RlIEFuemVpY2hlbiB2b24KQmVzc2VydW5nLiAKCkJyYXZvLCBEdSBoYXN0IGVzIGdlc2NoYWZmdCEhISAKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2llZGVyIG1hbCB6dSBmYXVsIHp1bSB1ZWJlcnNldHplbi4gKEFudGhlYSwgMjUuIE5vdiAyMDA1LCAxMDoxODo0NCk6CkEgYmlnLWNpdHksIENhbGlmb3JuaWEsIGxhd3llciB3ZW50IGR1Y2sgaHVudGluZyBpbiBydXJhbCBUZXhhcy4gSGUgc2hvdCBhCmJpcmQsIGJ1dCBpdCBmZWxsIGludG8gYSBmYXJtZXIncyBmaWVsZCBvbiB0aGUgb3RoZXIgc2lkZSBvZiBhIGZlbmNlLiBBcyB0aGUKbGF3eWVyIGNsaW1iZWQgb3ZlciB0aGUgZmVuY2UsIGFuIGVsZGVybHkgZmFybWVyIGRyb3ZlIHVwIG9uIGhpcyB0cmFjdG9yIGFuZAphc2tlZCBoaW0gd2hhdCBoZSB3YXMgZG9pbmcuCgpUaGUgbGl0aWdhdG9yIHJlc3BvbmRlZCwgIkkgc2hvdCBhIGR1Y2sgYW5kIGl0IGZlbGwgaW50byB0aGlzIGZpZWxkLCBhbmQgSSdtCmdvaW5nIHRvIHJldHJpZXZlIGl0LiIgVGhlIG9sZCBmYXJtZXIgcmVwbGllZCwgIlRoaXMgaXMgbXkgcHJvcGVydHksIGFuZCB5b3UKYXJlIG5vdCBjb21pbmcgb3ZlciBoZXJlLiIgVGhlIGluZGlnbmFudCBsYXd5ZXIgc2FpZCwgIkkgYW0gb25lIG9mIHRoZSBiZXN0CnRyaWFsIGF0dG9ybmV5cyBpbiB0aGUgVS5TLiBhbmQsIGlmIHlvdSBkb24ndCBsZXQgbWUgZ2V0IHRoYXQgZHVjaywgSSdsbCBzdWUKeW91IGFuZCB0YWtlIGV2ZXJ5dGhpbmcgeW91IG93bi4iCgpUaGUgb2xkIGZhcm1lciBzbWlsZWQgYW5kIHNhaWQsICJBcHBhcmVudGx5LCB5b3UgZG9uJ3Qga25vdyBob3cgd2UgZG8gdGhpbmdzCmluIFRleGFzLiBXZSBzZXR0bGUgc21hbGwgZGlzYWdyZWVtZW50cyBsaWtlIHRoaXMgd2l0aCB0aGUgVGV4YXMgVGhyZWUtS2ljawpSdWxlLiIgVGhlIGxhd3llciBhc2tlZCwgIldoYXQgaXMgdGhlIFRleGFzIFRocmVlLUtpY2sgUnVsZT8iIFRoZSBmYXJtZXIKcmVwbGllZCwgIldlbGwsIGZpcnN0IEkga2ljayB5b3UgdGhyZWUgdGltZXMgYW5kIHRoZW4geW91IGtpY2sgbWUgdGhyZWUgdGltZXMsCmFuZCBzbyBvbiwgYmFjayBhbmQgZm9ydGgsIHVudGlsIHNvbWVvbmUgZ2l2ZXMgdXAuIgoKVGhlIGF0dG9ybmV5IHF1aWNrbHkgdGhvdWdodCBhYm91dCB0aGUgcHJvcG9zZWQgY29udGVzdCBhbmQgZGVjaWRlZCB0aGF0IGhlCmNvdWxkIGVhc2lseSB0YWtlIHRoZSBvbGQgY29kZ2VyIHNvIGhlIGFncmVlZCB0byBhYmlkZSBieSB0aGUgbG9jYWwgY3VzdG9tLgoKVGhlIG9sZCBmYXJtZXIgc2xvd2x5IGNsaW1iZWQgZG93biBmcm9tIHRoZSB0cmFjdG9yIGFuZCB3YWxrZWQgdXAgdG8gdGhlIGNpdHkKZmVsbGVyLiBIaXMgZmlyc3Qga2ljayBoaXQgdGhlIGxhd3llcidzIGdyb2luIGFuZCBkcm9wcGVkIGhpbSB0byBoaXMga25lZXMuCkhpcyBzZWNvbmQga2ljayBuZWFybHkgd2lwZWQgdGhlIG1hbidzIG5vc2Ugb2ZmIGhpcyBmYWNlLiBUaGUgYmFycmlzdGVyIHdhcwpmbGF0IG9uIGhpcyBiZWxseSB3aGVuIHRoZSBmYXJtZXIncyB0aGlyZCBraWNrIHRvIGEga2lkbmV5IG5lYXJseSBjYXVzZWQgaGltCnRvIGdpdmUgdXAuCgpUaGUgbGF3eWVyIHN1bW1vbmVkIGV2ZXJ5IGJpdCBvZiBoaXMgd2lsbCBhbmQgbWFuYWdlZCB0byBnZXQgdG8gaGlzIGZlZXQgYW5kCnNhaWQsICJPa2F5LCB5b3Ugb2xkIGNvb3QhIE5vdywgaXQncyBteSB0dXJuISIgVGhlIG9sZCBmYXJtZXIgZ3Jpbm5lZCBhbmQKc2FpZCwgIk5hdywgSSBnaXZlIHVwLiBZb3UgY2FuIGhhdmUgdGhlIGR1Y2shIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpZWRlciBtYWwgenUgZmF1bCB6dW0gdWViZXJzZXR6ZW4uIChSdW1hdGEsIDI1LiBOb3YgMjAwNSwgMTE6NTg6MzcpOgp+IyEgcm49QW50aGVhIHJ0PTExMzI5MTAzMjQgcmc9d2l0emUKfiMhIHRpZD0xMTMyOTEwMzI0CkRhc3MgRHUgenUgZmF1bCB6dW0gVWViZXJzZXR6ZW4gYmlzdCwgbWFnIGphIG5vY2ggYW5nZWhlbiwgYWJlciBkaWUKUXVlbGxlbmFuZ2FiZSB6dSB1bnRlcmxhc3NlbiBpc3Qga29uemVudHJpZXRlcnMgQm9lc2VzISAKOy0pCipQQVRTQ0gqClJ1bSoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpKZXN1cyAoQmFtYnVsa28sICAxLiBEZXogMjAwNSwgMTI6MTc6MTcpOgoKV2lyIHNjaHJlaWJlbiBkYXMgSmFociAyNSBuYWNoIENocmlzdGkgR2VidXJ0LiBEaWUgaGVpbGlnZSBNYXJpYSAgaXN0IGJlc29yZ3QsCndlaWwgSmVzdXMsIGlociBTb2huZW1hbm4sIG5vY2ggaW1tZXIgbmljaHRzIG1pdCBGcmF1ZW4gIGhhdHRlLiBTbyBiZWF1ZnRyYWd0CnNpZSBpaHJlIFNjaHdhZWdlcmluIGRhbWl0LCBkaWUgc2NoYWVyZnN0ZSB1bmQgIHZlcnJ1Y2h0ZXN0ZSBCcmF1dCB2b24KQmV0aGxlaGVtIGFuenVoZXVlcm4sIGF1ZiBkYXNzIG1hbiBkaWVzZSBhdWYgZGllICBtYWVubmxpY2hlIEp1bmdmcmF1Cmxvc2xhc3NlLgoKU28gZ2VzY2hhaCBlcy4gQmVpZGUgdmVyc2Nod2luZGVuIGltICBTY2hsYWZ6aW1tZXIsIFR1ZXJlIHp1LiBEcmF1Q2VuIGxhdXNjaHQKbWFuIGdlc3Bhbm50LiBQbG9ldHpsaWNoIGVpbiBpcnJlciAgU2NocmVpLCBkaWUgVHVlcmUgZmxpZWd0IGF1ZiwgZGFzIE1hZWRlbApyZW5udCBoZXJhdXMsIGlycmUga3JlaXNjaGVuZCB1bmQgenUgIGtlaW5lciBrbGFyZW4gQXVzc2FnZSBmYWVoaWcsIHNjaGxhZWd0CnVtIHNpY2gsIGtyZWlzY2h0IHdlaXRlciB3aWUgYW0gIFNwaWVzcyB1bmQgcmVubnQgYXVzIGRlbSBIYXVzLiBNYXJpYSBnZWh0IGlucwpaaW1tZXIgd28gSmVzdXMgdm9lbGxpZyByZWxheHQgIGF1ZiBkZXIgQmV0dGthbnRlIHNpdHp0IHVuZCBmcmFndCBpaG46ICJXYXMKd2FyIGRlbm4gbG9zPyIKCkplc3VzOiAiWnVlcnN0ICBoYXQgc2llIG1pciBpbiBkaWUgQXVnZW4gZ2VzY2hhdXQgdW5kIGljaCBoYWJlIHp1cnVlY2sKZ2VzY2hhdXQuRGFubiBoYXQgc2llICBtaWNoIGdla3Vlc3N0IHVuZCBpY2ggaGFiZSB6dXJ1ZWNrIGdla3Vlc3N0LgoKQW5zY2hsaWVzc2VuZCBoYXQgc2llIG1pciBkaWUgSGFuZCAgYXVmIGRhcyBLbmllIGdlbGVndCB1bmQgaGFiZSBiZWkgaWhyIGRhcwpzZWxiZSBnZW1hY2h0LiBBbHMgbmFlY2hzdGVzIGlzdCBzaWUgIG1pdCBpaHJlciBIYW5kIG1laW5lbiBPYmVyc2NoZW5rZWwKaGVyYXVmIGdlZmFocmVuIHVuZCBkYXMgaGFiZSBpY2ggYXVjaCBiZWkgIGlociBnZXRhbi4iCgpNYXJpYTogIkphIHVuZCB3ZWl0ZXI/IiBKZXN1czogIk5hIGphLCBkYW5uIGhhdCBzaWUgbWlyIHp3aXNjaGVuICBkaWUgQmVpbmUKZ2VncmlmZmVuIHVuZCBpY2ggbmF0dWVybGljaCBhdWNoIGJlaSBpaHIuIgoKTWFyaWE6ICJVbmQgd2FzIHdhciAgZGFubj8iCgpKZXN1czogIkRhbm4gaGFiZSBpY2ggYmVtZXJrdCwgZGFzcyBzaWUgYW4gZGllc2VyIFN0ZWxsZSBhbXB1dGllcnQgaXN0ICB1bmQKaGFiZSBzaWUgZ2VoZWlsdC4uLi4uLi4uIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFydGlrZWwgd2l0eiAoQWxrb2hvbCwgIDIuIERleiAyMDA1LCAxMDoyNzozMik6CkVpbiBMaW1vLUZhaHJlciBzb2xsIFBhcHN0IEJlbmVkaWt0IFhWSSB2b20gRmx1Z2hhZmVuIGFiaG9sZW4uIE5hY2hkZW0KZXIgc2FlbXRsaWNoZXMgR2VwYWVjayBkZXMgUGFwc3RlcyB2ZXJzdGF1dCBoYXQgKHVuZCBkYXMgaXN0IG5pZSB3ZW5pZyksCm1lcmt0IGVyLCBkYXNzIFJhdHppIG5vY2ggaW1tZXIgbmljaHQgaW0gQXV0byBzaXR6dCB1bmQgc3ByaWNodCBpaG4KZGFyYXVmIGFuOiAiRW50c2NodWxkaWdlbiBTaWUsIEV1cmUgSGVpbGlna2VpdCwgd3VlcmRlIGVzIGlobmVuIHdhcwphdXNtYWNoZW4sIHNpY2ggaW5zIEF1dG8genUgc2V0enRlbiwgZGFtaXQgd2lyIGxvc2ZhaHJlbiBrb2VubmVuPyIuCgpEZXIgUGFwc3QgYW50d29ydGV0OiAiVW0gZWhybGljaCB6dSBzZWluLCBpbSBWYXRpa2FuIGRhcmYgaWNoIG5pZQpBdXRvZmFocmVuLiBNb2VjaHRlbiBTaWUgbWljaCBuaWNodCBmYWhyZW4gbGFzc2VuPyIKCkRlciBGYWhyZXIgYW50d29ydGV0IGlobSwgZGFzcyBkaWVzIG5pY2h0IG1vZWdsaWNoIHNlaSwgZGEgZXIgc29uc3QKc2VpbmVuIEpvYiB2ZXJsaWVyZW4gd3VlcmRlLiBHYXIgbmljaHQgYXVzenVkZW5rZW4sIHdhcyBwYXNzaWVydCwgd2VubgpkZXIgUGFwc3QgZWluZW4gVW5mYWxsIGhhdCB1bmQgd3VlbnNjaHQgc2ljaCwgZGFzcyBlciBoZXV0ZSBtb3JnZW4gbmllCnp1ciBBcmJlaXQgZ2VnYW5nZW4gd2FlcmUuCgpEZXIgUGFwc3Q6ICJJY2ggd3VlcmRlIFNpZSBkYWZ1ZXIgYXVjaCBmdWVyc3RsaWNoIGVudGxvaG5lbiIuCgoiTmEgZ3V0IiwgZGVua3Qgc2ljaCBkZXIgRmFocmVyIHVuZCBzdGVpZ3QgaGludGVuIGVpbi4gRGVyIFBhcHN0IHNldHp0CnNpY2ggaGludGVyJ3MgTGVua3JhZCB1bmQgYnJhdXN0IG1pdCBxdWlldHNjaGVuZGVuIFJlaWZlbiBkYXZvbi4gQWxzCmRpZSBMaW1vc2luZSBtaXQgMTUwa20vaCBkdXJjaCBkaWUgU3RhZHQgZmFlaHJ0LCBiZXJldXQgZGVyIEZhaHJlciBzZWluZQpFbnRzY2hlaWR1bmcgc2Nob24gdW5kIGJpdHRldDogIkJpdHRlIEV1cmVyIEhlaWxpZ2tlaXQsIGZhaHJlbiBTaWUgZG9jaApldHdhcyBsYW5nc2FtZXIiLiBLdXJ6IGRhcmF1ZiBob2VydCBlciBoaW50ZXIgc2ljaCBTaXJlbmVuIGhldWxlbi4KCkRlciBQYXBzdCBoYWVsdCBhbiB1bmQgZWluIFBvbGl6aXN0IG5hZWhlcnQgc2ljaCBkZW0gV2FnZW4gdW5kIGRlcgpDaGFmZmV1ciBiZWZ1ZXJjaHRldCBzY2hvbiwgc2VpbmVuIEZ1ZWhyZXJzY2hlaW4genUgdmVybGllcmVuLgoKRGVyIFBvbGl6aXN0IHdpcmZ0IGVpbmVuIGt1cnplbiBCbGljayBhdWYgZGVuIFBhcHN0LCBnZWh0IHp1cnVlY2sgenUKc2VpbmVtIE1vdG9ycmFkLCBuaW1tdCBzZWluIEZ1bmtnZXJhZXQgdW5kIHZlcmxhbmd0IHNlaW5lbiBDaGVmIHp1CnNwcmVjaGVuLiBBbHMgc2VpbiBDaGVmIGFtIEZ1bmtnZXJhZXQgaXN0LCBlcnphZWhsdCBkZXIgUG9saXppc3QgaWhtLCBkYXNzCmVyIGdlcmFkZSBlaW5lIExpbW9zaW5lIG1pdCAxNTBrbS9oIGF1ZmdlaGFsdGVuIGhhdC4KCkRlciBDaGVmOiAiTmEgZGFubiwgdmVyaGFmdGVuIFNpZSBpaG4gZG9jaCIuIFBvbGl6aXN0OiAiSWNoIGdsYXViZQpuaWNodCwgZGFzcyB3aXIgZGFzIHR1biBzb2xsdGVuLiBEZXIgRmFocmVyIGlzdCB6aWVtbGljaCB3aWNodGlnLiIKClNlaW4gQ2hlZiBhbnR3b3J0ZXQgZGFyYXVmLCBkYXNzIGVzIGlobSB2b2VsbGlnIGVnYWwgaXN0LCB3aWUgd2ljaHRpZwpkaWUgUGVyc29uIGlzdC4gV2VubiBqZW1hbmQgbWl0IDE1MCBkdXJjaCBkaWUgU3RhZHQgZmFlaHJ0LCBnZWhvZXJ0IGVyCnZlcmhhZnRldC4gIk5laW4sIGljaCBtZWluZSBXSVJLTElDSCB3aWNodGlnIiwgYW50d29ydGV0IGRlciBQb2xpemlzdC4KQ2hlZjogIldlciBzaXR6dCBkZW5uIGluIGRlbSBBdXRvPyBEZXIgQnVlcmdlcm1laXN0ZXI/IiAiTmVpbiIsIGFudHdvcnRldApkZXIgUG9saXppc3QsICJ2aWVsIHdpY2h0aWdlciIuICJCdW5kZXNrYW56bGVyPyIsIGZyYWd0IGRlciBDaGllZi4KIk5laW4sIG5vY2ggdmllbCB3aWNodGlnZXIiLiBDaGVmOiAiR3V0LCB3ZXIgaXN0IGVzIGRlbm4/IiBCdWxsZTogIkljaApnbGF1YmUsIGVzIGlzdCBHb3R0ISIgIldhcnVtIHp1bSBUZXVmZWxuIGdsYXViZW4gU2llLCBkYXNzIGVzIEdvdHQKaXN0PyIsIGZyYWd0IGRlciBDaGVmLiBEYXJhdWYgYW50d29ydGV0IGRlciBQb2xpemlzdDogIkVyIGhhdCBkZW4gUGFwc3QKYWxzIENoYXVmZmV1ciEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcnp0IHVuZCBQYXRpZW50aW4gKFJvbmRhLCAxMC4gRGV6IDIwMDUsIDAxOjE1OjI3KToKTmljaHQgZ2FueiBqdWdlbmRmcmVpLiBVbmQgZ2VrbGF1dCBhdXMgZGVtIEZvcnVtIHZvbiBodHRwOi8vbWNjZm9ydW0uZGUuLi4KCkVpbiBBcnp0IHNpdHp0IGF1ZiBlaW5lbSBTdHVobCBpbiBzZWluZXIgUHJheGlzLCBuYWNoZGVtIGVyIGdlcmFkZSBTZXggbWl0CmVpbmVyIFBhdGllbnRpbiBoYXR0ZSwgdW5kIGRlbmt0IHVlYmVyIGRhcyBnZXJhZGUgR2VzY2hlaGVuZSBuYWNoLgoKVm9uIEdld2lzc2Vuc2Jpc3NlbiBnZXBsYWd0LCB3aWVkZXJob2x0IGVyIGltbWVyIHdpZWRlcjoKIk9oIEdvdHQsIHdpZSBrb25udGUgbWlyIG51ciBzbyBldHdhcyBwYXNzaWVyZW4hCldhcyBmdWVyIGVpbmUgU2NoYW5kZSwgaWNoIGhhYmUgbWVpbmUgZ2VzYW10ZSBCZXJ1ZnNldGhpayB2ZXJsb3JlbiEhIgoKV2FlaHJlbmQgZXIgc2ljaCBzZWxiZXIgb2hyZmVpZ3Qgd2VnZW4gc2VpbmVyIFRhdCwgZXJzY2hlaW50IHBsb2V0emxpY2gKYXVmIHNlaW5lciByZWNodGVuIFNjaHVsdGVyIGVpbiBUZXVmZWxjaGVuLCBkYXMgaWhtIHNhZ3Q6CgoiSE9lUiBBVUYsIERFTiBJRElPVEVOIFpVIFNQSUVMRU4uLi4uV0VJU1NUIERVCkVJR0VOVExJQ0gsIFdJRSBVTkdMQVVCTElDSCBWSUVMRSBBZVJaVEUgRVMKR0lCVCwgRElFIFNFWCBNSVQgSUhSRU4gUEFUSUVOVEVOIEhBQkVOPyE/IT8hCkRVIE5BSVZFUiBUUk9UVEVMLCBHTEFVQlNUIERVIFdJUktMSUNILCBERVIKRUlOWklHRSBaVSBTRUlOPyEgREVOSyBOSUNIVCBNRUhSIERBUlVlQkVSIE5BQ0gsCk1FSU4gRlJFVU5ELi4uIEVTIElTVCBFSU5FIFRPVEFMIE5PUk1BTEUgU0FDSEUhISIKCkRlciBEb2t0b3IgbGFlc3N0IHNpY2ggc28gdWViZXJ6ZXVnZW4sIGJlcnVoaWd0IHNpY2ggdW5kIGRlbmt0OgoiRHUgaGFzdCB3aXJrbGljaCBSZWNodCwgaW0gRW5kZWZmZWt0IGhhYmUgaWNoCm5pY2h0cyBTY2hsZWNodGVzIGdlbWFjaHQhISIKCkt1cnogbmFjaGRlbSBlciBkYXMgZ2VzYWd0IGhhdCwgZXJzY2hlaW50IGVpbiBFbmdlbGNoZW4KYXVmIGRlciBhbmRlcmVuIFNjaHVsdGVyIHVuZCBmbHVlc3RlcnQgaWhtIGlucyBPaHI6CgoiREFSRiBJQ0ggRElDSCBEQVJBTiBFUklOTkVSTiwgREFTUyBEVSBUSUVSQVJaVApCSVNULi4uLiBOSUNIVCBWRVJHRVNTRU46IFQtSS1FLVItQS1SLVotVCAuLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnVlciBkaWUgRnJhbmtlbiB1bnRlciB1bnMgKEFudGhlYSwgMTMuIERleiAyMDA1LCAxNTowNTo1Myk6CkZyYWVua2lzY2ggLSBFbmdsaXNjaCAKKG1pdCBldHdhcyBGYW50YXNpZSBkdXJjaGxlc2VuLCBkYW5uIGdlaHRzKSAKCkVpbiBwYWFyIFNwcnVlY2hlIGF1ZiBFbmdsaXNjaCwgZGllIGRlciBnZWJ1ZXJ0aWdlIChvZGVyIGVpbmdlYnVlcmdlcnRlKQpGcmFua2UgCmRvY2ggc29mb3J0IHZlcnN0ZWh0IDogCgoxLiBTaG93ZXIgbWFsbCBoYWlyIC0gZG9lIGxlZnQgYSBlYWdsZS4gCjIuIEluIGRheSBzaG93IGRhbW1lciBteSBmYWNlIHdheS4gCjMuIFNlYSwgYnJpbmdlcmBzIGEgbWFsbCBkcnkgc2lkZWx5IGJlZXIuIAo0LiBCcm9hZGVyLCBpcyBkYXkgYmxvd2VkIHdhc2hlZCBmZWQuIEdvZCBzaWdoIGR1bmsgaGFtbWVyIGZpbGwgc293ZXIgY3Jvd2QuIAo1LiBEYXkgd2lzZSB3YXNoZWQgaXMgZmllIGRpYXIuIAo2LiBNZXJlIGh1bSBibG93cyBjcm93ZCB3aWdnbGUgaGlkZS4gCjcuIElzIHNoaWZ0IC0gc2hhbm5lciBoYWlyIGRvZSBsZWZ0eSBicmF5LiAKOC4gSGlkZSBpcyBhIGhpdHMgLSBkb2UgbW9zdCBzaG93ZXIgZHVzdCBuZXQgSSBnYXplZC4gCjkuIEdhaW5lciBoZWlyLCBubyBob3dlciBkZW55IGR1c3R5IHNwaWNlZC4gCjEwLiBJbiBtaW5lIHNob3cgbWFpbiBzaGluZXMgYSBib3JlIGJyYWlzbGUgc2lnaC4gCjExLiBMb3cgbWUgaW4gcm93LCBkcnVtcGxlLiAKMTIuIEhpZGUgS2VubmVkeSBhIG1hbGwgRm9yZCBnYXkuIAoxMy4gQWRkcyBzaW5jZSBxdWVlemUgbmFzaCB3b24gZGVsaWdodD8gCjE0LiBVcG9uIHBlb3BsZSByZWFkZXIgZHJ5IGVnZyB3YXJzIGZyeS4gCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldvbGxlIFhib3gga2F1ZmVuPyAoVmFuaW9uLCAxOC4gRGV6IDIwMDUsIDEyOjI5OjA5KToKWlUgREVOIFNUQVJUIFBST0JMRU1FTiBERVIgTkVVRU4gWEJPWDoKCkluendpc2NoZW4gaGF0IHNpY2ggTWljcm9zb2Z0IG9mZml6aWVsbCB6dSBkZW4gQWJzdHVyem1lbGR1bmdlbiBnZWFldXNzZXJ0LgpFaW5lIFNwcmVjaGVyaW4gZGVzIFVudGVybmVobWVucyBzYWd0ZSwgZXMgZ2ViZSAiaGllciB1bmQgZG9ydCBlaW5pZ2UKS29uc29sZW4sIGRpZSBuaWNodCBvcmRlbnRsaWNoIGFyYmVpdGVuLiBEaWVzIGVudHNwcmljaHQgZGVtLCB3YXMgbWFuIGJlaSBzbwplaW5lbSBrb21wbGV4ZW4gVW50ZXJoYWx0dW5nc2VsZWt0cm9uaWtnZXJhZXQgZXJ3YXJ0ZW4gd3VlcmRlLiIgRGllIFNwcmVjaGVyaW4KZW1wZmFobCBqZWRlbSBCZXRyb2ZmZW5lbiAiMS04MDAtNG15WGJveCIgYW56dXJ1ZmVuIG9kZXIgc2ljaCBhdWYgd3d3Lnhib3guY29tCnp1IG1lbGRlbi4gRmFsbHMgZGllIFByb2JsZW1lIG5pY2h0IHNvZm9ydCBiZWhvYmVuIHdlcmRlbiBrb2VubnRlbiwgd3VlcmRlCk1pY3Jvc29mdCBzb2dhciBlaW5lIEV4cHJlc3MtU2VuZHVuZyB6dW0gUmVwYXJhdHVyY2VudGVyIGJlemFobGVuIHVuZCBuYWNoCmVyZm9sZ3JlaWNoZXIgUmVwYXJhdHVyIHBlciBFeHByZXNzIHp1cnVlY2tzZW5kZW4uIFdlbm4gZGllIEtvbnNvbGUgbmljaHQKcmVwYXJpZXJ0IHdlcmRlbiBrb2VubnRlLCB3dWVyZGUgc2llIGF1c2dldGF1c2NodC4KCkVyc3RlIFJlYWt0aW9ubmVuIGF1Y2ggYXVzIGRlciBMdWZ0ZmFocnRpbmR1c3RyaWU6CgogQUlSQlVTIEEzODAgKysgQWJzdHVlcnplIGJlaSBzb2xjaGVyIEtvbXBsZXhpdGFldCBlcndhcnRldAoKRWluZSBTcHJlY2hlcmluIGRlcyBGbHVnemV1Z2JhdWVycyBiZXN0YWV0aWd0ZSwgZGFzcyBlcyBoaWVyIHVuZCBkYQp2ZXJlaW56ZWx0ZSBBYnN0dWVyemUgZ2ViZS4gRG9jaCBzaWUgYmVrcmFlZnRpZ3RlLCBkYXNzIGVzIG51biBtYWwgenUgZXJ3YXJ0ZW4Kd2FlcmUsIGJlaSAic29sY2hlciBLb21wbGV4aXRhZXQiLiBEaWUgVXJzYWNoZSB3dWVyZGUgd2Fyc2NoZWlubGljaCBkYXJpbgpsaWVnZW4sIGRhc3MgbWFuY2hlIFBhc3NhZ2llcmUgaWhyZSBKYWNrZW4gdm9yIGRlbgpJbm5lbnJhdW1iZWx1ZWZ0dW5nc3NjaGxpdHplbiBzdGVsbGVuIHVuZCBzbyBkaWUgTHVmdHppcmt1bGF0aW9uIGJlaGluZGVybgp3dWVyZGVuLiBEYXMgZnVlaHJ0IGRhbm4genUgZWluZXIgRXJoaXR6dW5nIGRlciBLbGltYWFubGFnZSwgZGllIGRlbiBBYnN0dXJ6CnZlcnVyc2FjaGUuIEJldHJvZmZlbmUgdWViZXJsZWJlbmRlIFBhc3NhZ2llcmUgdW5kIEFuZ2Vob2VyaWdlIGtvZW5uZW4gdW50ZXIKMC0xODAwLUNyYXNoTXlQbGFuZSBhbnJ1ZmVuIHVuZCBzaWNoIGluZm9ybWllcmVuLiBBaXJidXMgd2FyIGFsbGVuIGFuZGVyZW4KRmx1Z3pldWdiYXVlciBtaXQgZGVyIEF1c2xpZWZlcnVuZyBkZXIgbmV1ZW4gTWFzY2hpbmUgenV2b3IgZ2Vrb21tZW4gdW5kCmVyaG9mZnQgc2ljaCBkYXJhdXMgZWluZW4gc3RhcmtlbiBNYXJrdHZvcnRlaWwuCgpWKiwgaGF0IGRhcyBpcmdlbmR3byBnZWxlc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdvbGxlIFhib3gga2F1ZmVuPyAoTXVhZGliLCAxOC4gRGV6IDIwMDUsIDE0OjMxOjMzKToKfiMhIHJuPVZhbmlvbiBydD0xMTM0OTA1MzQ5IHJnPXdpdHplCn4jISB0aWQ9MTEzNDkwNTM0OQpkYXMgb2ZmZW5iYXJ0IGphIGVpbiByaWVzaWdlcyB2ZXJ0cmF1ZW4gZ2VnZW51ZWJlciBmbHVnemV1Z2JhdWVybi4gd28ga29tbXQKZGFzIG51ciBoZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdvbGxlIFhib3gga2F1ZmVuPyAoVmFuaW9uLCAxOC4gRGV6IDIwMDUsIDE0OjM0OjUzKToKfiMhIHJuPU11YWRpYiBydD0xMTM0OTEyNjkzIHJnPXdpdHplCn4jISB0aWQ9MTEzNDkwNTM0OQpCYXVzdCBkdSBuaWNodCBkaWUgWGJveGVuIGluIGRpZSBBaXJidXNzZSBlaW4/IDopCgpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogV29sbGUgWGJveCBrYXVmZW4/IChNdWFkaWIsIDE4LiBEZXogMjAwNSwgMTU6MDA6MzcpOgp+IyEgcm49VmFuaW9uIHJ0PTExMzQ5MTI4OTMgcmc9d2l0emUKfiMhIHRpZD0xMTM0OTA1MzQ5Cm5laW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFdvbGxlIFhib3gga2F1ZmVuPyAoS2VsbHlidW5keSwgMTguIERleiAyMDA1LCAxNToxMzowNyk6Cn4jISBybj1NdWFkaWIgcnQ9MTEzNDkxNDQzNyByZz13aXR6ZQp+IyEgdGlkPTExMzQ5MDUzNDkKRXMgZ2lidCBqYSBnYXJrZWluZSBNaWNyb3NvZnR3aXR6ZS4gQWxsZXMgV2FocmhlaXQuIDstKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzenVlZ2UgYXVzIGRlbSBUYWdlYnVjaCBkZXIgS2F0emUgKEFudGhlYSwgMjMuIERleiAyMDA1LCAxNDowMDo0MCk6ClRhZyA1LjI4MyBtZWluZXIgR2VmYW5nZW5zY2hhZnQuIAoKTWVpbmUgV2FlcnRlciB2ZXJzdWNoZW4gd2VpdGVyaGluIG1pY2ggbWl0IGtsZWluZW4gT2JqZWt0ZW4gYW4gU2NobnVlcmVuIHp1CmxvY2tlbiB1bmQgenUgcmVpemVuLiBJY2ggaGFiZSBiZW9iYWNodGV0IHdpZSBzaWUgc2ljaCBkZW4gQmF1Y2ggbWl0IGZyaXNjaGVtCkZsZWlzY2ggdm9sbHNjaGxhZ2VuLCB3YWVocmVuZCBzaWUgbWlyIG51ciB6ZXJzdGFtcGZ0ZSBnZWtvY2h0ZSBSZXN0ZSB2b24KdG90ZW4gVGllcmVuIG1pdCBrYXVtIGRlZmluaWVyYmFyZW0gR2VtdWVzZSB2b3JzZXR6ZW4uIERpZSBlaW56aWdlIEhvZmZudW5nCmRpZSBtaXIgYmxlaWJ0LCBpc3QgZGllIGVpbmVyIGJhbGRpZ2VuIEZsdWNodC4gV2FlaHJlbmRkZXNzZW4gZXJsYW5nZSBpY2gKR2VudWd0dXVuZyBpbiBkZW0gaWNoIGRhcyBlaW5lIG9kZXIgYW5kZXJlIE1vZWJlbHN0dWVjayB6ZXJrcmF0emUuIAoKTW9yZ2VuIHdlcmRlIGljaCBtYWwgd2llZGVyIGVpbmUgWmltbWVycGZsYW56ZSBmcmVzc2VuLgpIZXV0ZSBoYWJlIGljaCBlcyBiZWluYWhlIGdlc2NoYWZmdCwgZWluZW4gV2FlcnRlciBkdXJjaCBzY2hsZWljaGVuIHp3aXNjaGVuCmRlbiBCZWluZW4genUgRmFsbCB6dSBicmluZ2VuIHVuZCBpaG4gZGFkdXJjaCB6dSB0b2V0ZW4uIEljaCBtdXNzIGVpbmVuCmd1ZW5zdGlnZW4gTW9tZW50IGFicGFzc2VuLCB6dW0gQmVpc3BpZWwgd2VubiBlciBzaWNoIGF1ZiBkZXIgVHJlcHBlIGJlZmluZGV0LgpVbSBtZWluZSBBbndlc2VuaGVpdCBhYnN0b3NzZW5kZXIgenUgZ2VzdGFsdGVuLCB6d2FuZyBpY2ggSGFsYnZlcmRhdXRlcyB3aWVkZXIKYXVzIG1laW5lbSBNYWdlbiBhdWYgZWluZW4gUG9sc3RlcnNlc3NlbC4gRGFzIG5hZWNoc3RlIE1hbCBpc3QgZGFzIEJldHQgZHJhbi4gCgpNZWluIFBsYW4sIGlobmVuIGR1cmNoIGRlbiBnZWtvZXBmdGVuIEtvZXJwZXIgZWluZXIgTWF1cyBBbmdzdCB2b3IgbWVpbmVuCm1vZXJkZXJpc2NoZW4gRmFlaGlna2VpdGVuIGVpbnp1ZmxvZXNzZW4gaXN0IGF1Y2ggZ2VzY2hlaXRlcnQuIFNpZSBoYWJlbiBtaWNoCm51ciBnZWxvYnQgdW5kIG1pciBNaWxjaGRyb3BzIGdlZ2ViZW4uIFdhcyB3aWVkZXJ1bSBndXQgaXN0LCB3ZWlsIG1pciBkYXZvbgpzY2hsZWNodCB3aXJkLiAKCkhldXRlIHdhcmVuIHZpZWxlIGlocmVyIEtvbXBsaXplbiBkYS4gSWNoIHd1cmRlIGZ1ZXIgZGllIERhdWVyIGRlcmVuCkFud2VzZW5oZWl0IGluIEVpbnplbGhhZnQgZ2VzcGVycnQuIEljaCBrb25udGUgaG9lcmVuLCB3aWUgc2llIGxhY2h0ZW4gdW5kCmFzc2VuLiBJY2ggaG9lcnRlLCBkYXNzIGljaCB3ZWdlbiBlaW5lciAiQWxsZXJnaWUiIGVpbmdlc3BlcnJ0IHd1cmRlLiBJY2ggbXVzcwpsZXJuZW4sIHdpZSBpY2ggZGllc2UgVGVjaG5payBwZXJmZWt0aW9uaWVyZW4gdW5kIHp1IG1laW5lbSBWb3J0ZWlsIG51dHplbgprYW5uLiAKCkRpZSBhbmRlcmVuIEdlZmFuZ2VuZW4gc2luZCBXZWljaGVpZXIgdW5kIHdhaHJzY2hlaW5saWNoIEluZm9ybWFudGVuLiBEZXIgSHVuZAp3aXJkIG9mdCBmcmVpIGdlbGFzc2VuLCBrb21tdCBhYmVyIGltbWVyIHdpZWRlciBmcmV1ZGVzdHJhaGxlbmQgenVydWVjay4gRXIKaXN0IG9mZmVuc2ljaHRsaWNoIG5pY2h0IGdhbnogZGljaHQuIERlciBWb2dlbCBkYWdlZ2VuIGlzdCBnYXJhbnRpZXJ0IGVpbgpTcGlvbi4gRXIgc3ByaWNodCBvZnQgdW5kIHZpZWwgbWl0IGRlbiBXYWVydGVybi4gSWNoIGdsYXViZSwgZGFzcyBlciBtaWNoCmdlbmF1ZXN0ZW5zIGJlb2JhY2h0ZXQgdW5kIGplZGVuIG1laW5lciBTY2hyaXR0ZSBtZWxkZXQuIERhIGVyIHNpY2ggaW4gZWluZW0KU3RhaGx2ZXJzY2hsYWcgYmVmaW5kZXQsIGthbm4gaWNoIG5pY2h0IGFuIGlobiByYW4uIEFiZXIgaWNoIGhhYmUgWmVpdC4KTWVpbiBUYWcgd2lyZCBrb21tZW4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXVzenVlZ2UgYXVzIGRlbSBUYWdlYnVjaCBkZXIgS2F0emUgKFJ1bWF0YSwgMjMuIERleiAyMDA1LCAxNjowMzo0Nyk6Cn4jISBybj1BbnRoZWEgcnQ9MTEzNTM0Mjg0MCByZz13aXR6ZQp+IyEgdGlkPTExMzUzNDI4NDAKVGFnZWJ1Y2ggZWluZXMgSHVuZGVzCgowNzowMCBVaHIgLSBCb2FoISBHYXNzaSBnZWhlbiEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KMDg6MDAgVWhyIC0gQm9haCEgRnJlc3NpISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgowOTozMCBVaHIgLSBCb2FoISBFaW5lIFNwYXppZXJmYWhydCEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KMDk6NDAgVWhyIC0gQm9haCEgSW0gQXV0byBwZW5uZW4hIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjEwOjMwIFVociAtIEJvYWghIEVpbmUgU3BhemllcmZhaHJ0ISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxMTozMCBVaHIgLSBCb2FoISBIZWlta29tbWVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxMjowMCBVaHIgLSBCb2FoISBEaWUgS2luZGVyIGtvbW1lbiEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KMTM6MDAgVWhyIC0gQm9haCEgQWIgaW4gZGVuIEdhcnRlbiEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KMTY6MDAgVWhyIC0gQm9haCEgTm9jaCBtZWhyIEtpbmRlciEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KMTc6MDAgVWhyIC0gQm9haCEgRnJlc3NpISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxODowMCBVaHIgLSBCb2FoISBNZWluIEhlcnJjaGVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxOTowMCBVaHIgLSBCb2FoISBTdG9lY2tjaGVuIGhvbGVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoyMTozMCBVaHIgLSBCb2FoISBJbiBGcmF1Y2hlbnMgQmV0dCBzY2hsYWZlbiEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KCgpSdW0qKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFzZW5lc3NlbiAoQW50aGVhLCAgNC4gSmFuIDIwMDYsIDEwOjM2OjQ2KToKTWFtYSBoYXQgZWluZW4gSGFzZW4genVtIEFiZW5kYnJvdCBnZW1hY2h0LgpEYSBkaWUgS2luZGVyIGRpZXNlcyBUaWVyIHNlaHIgbGllYiBoYXR0ZW4sIHZlcmhlaW1saWNodCBzaWUgaWhuZW4gZGllCldhaHJoZWl0LgoKRGVyIGtsZWluZSBKdW5nZSBpc3N0IG1pdCBzZWhyIHZpZWwgQXBwZXRpdCB1bmQgZnJhZ3Qgc2VpbmVuIFBhcGEsIHdhcyBlcwpkZW5uIGlzdC4KCkRlciBQYXBhIHNhZ3QgZ2FueiBzdG9sejogIlJhdGV0IGVpbm1hbD8gSWNoIGdlYmUgZXVjaCBlaW5lbiBIaW53ZWlzLiAiQWIKdW5kIHp1IG5lbm50IE1hbWEgbWljaCBzbyEiCgpEYSBzcHVja3QgZGllIFRvY2h0ZXIgYWxsZXMgYXVzIHVuZCBzYWd0IHp1IGlocmVtIEJydWRlcjoKIklzcyBkYXMgYmxvc3MgbmljaHQsIGRhcyBpc3QgZWluIEFyc2NobG9jaCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUcmFuc2VuLCBQZmFmZmVuIHVuZCBhbmRlcmUgS2F0YXN0cm9waGVuIChLZWxseWJ1bmR5LCAgNC4gSmFuIDIwMDYsIDE5OjU4OjE0KToKCkVpbiBUcmFuc3Zlc3RpdCwgemllbWxpY2ggYWxrb2hvbGlzaWVydCwgaGF0IHNpY2ggdmVybGF1ZmVuIHVuZCBsYW5kZXQgaW4KZWluZXIgS2lyY2hlLiBBdXNzZXIgaWhtIGlzdCBkb3J0IG51ciBub2NoIGVpbiBqdW5nZXIgUHJpZXN0ZXIgaW0gdm9sbGVuCk9ybmF0LiBBbHMgZGVyIEdlaXN0bGljaGUsIGRhcyBXZWlocmF1Y2hnZWZhZXNzIHNjaHdlbmtlbmQsIGluIHNlaW5lbiBsYW5nZW4KR2V3YWVuZGVybiBhbiBpaG0gdm9ydWViZXJ3YWxsdCwga2FubiBlciBzaWNoIG5pY2h0IGxhZW5nZXIgYmVoZXJyc2NoZW46CklociBLbGVpZCBpc3QgZWluZmFjaCBmZXR6aWcgLSBuZSBVZWJlcnNob3csIEZyb2xsZWluISBBYmVyIGhhYmVuIHNpZSBzY2hvbgpnZW1lcmt0LCBkYXNzIGlocmUgSGFuZHRhc2NoZSBicmVubnQ/CgpLZWxseQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbG9vayAoS2VsbHlidW5keSwgIDQuIEphbiAyMDA2LCAyMDowMjoyNik6CldpZXNvIGdpYnQgZXMgaW4gV2llc2JhZGVuIGVpbmUgR2lmdG11ZWxsLURlcG9uaWUgdW5kIGluIEZyYW5rZnVydCBzbyB2aWVsZQpBbndhZWx0ZT8KV2VpbCBXaWVzYmFkZW4genVlcnN0IHdhZWhsZW4gZHVyZnRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRyYW5zZW4sIFBmYWZmZW4gdW5kIGFuZGVyZSBLYXRhc3Ryb3BoZW4gKFpvb2ssICA0LiBKYW4gMjAwNiwgMjA6MDM6MDIpOgp+IyEgcm49S2VsbHlidW5keSBydD0xMTM2NDAxMDk0IHJnPXdpdHplCn4jISB0aWQ9MTEzNjQwMTA5NApEdSB0ZWlsc3QgS2VsbHlidW5keSBtaXQ6IHdhcnVtIG11c3MgZGVyIGJldHJ1bmtlbmUgZWlnZW50bGljaCBuZSB0cmFuc2Ugc2Vpbj8KS2VsbHlCdW5keSB0ZWlsdCBEaXIgbWl0OiBobW1tIGRhcyBrYW5uIGljaCBlaHJsaWNoIGdlc2FndCBhdWNoIG5pY2h0CktlbGx5QnVuZHkgdGVpbHQgRGlyIG1pdDogbmFjaHZvbGx6aWVoZW4gWzIwOjAxXQoKClpvb2sga2ljaGVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVHJhbnNlbiwgUGZhZmZlbiB1bmQgYW5kZXJlIEthdGFzdHJvcGhlbiAoR3JpbW1ib3JuLCAgNC4gSmFuIDIwMDYsIDIwOjEwOjA4KToKfiMhIHJuPVpvb2sgcnQ9MTEzNjQwMTM4MiByZz13aXR6ZQp+IyEgdGlkPTExMzY0MDEwOTQKRGVyIFdpdHogZ2luZyBkYW1hbHMsIGFscyBpY2ggaW4gZGVyIEdydW5kc2NodWxlIHdhciwgc28sIGRhc3MgZGVyIEJlc3VjaGVyCnJ1ZnQ6ICJIZSwgU3Vlc3NlciwgRGVpbiBIYW5kdGFlc2NoY2hlbiBicmVubnQiLiBEYW5uIG1hY2h0IGRhcyBhdWNoIHdpZWRlcgpTaW5uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFRyYW5zZW4sIFBmYWZmZW4gdW5kIGFuZGVyZSBLYXRhc3Ryb3BoZW4gKFZhbmlvbiwgIDQuIEphbiAyMDA2LCAyMDoyNjowNSk6Cn4jISBybj1ab29rIHJ0PTExMzY0MDEzODIgcmc9d2l0emUKfiMhIHRpZD0xMTM2NDAxMDk0CldpdHpoaW50ZXJmcmFnZXIhCgpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogVHJhbnNlbiwgUGZhZmZlbiB1bmQgYW5kZXJlIEthdGFzdHJvcGhlbiAoTW9udGFudXMsICA2LiBKYW4gMjAwNiwgMTA6NDY6MDQpOgp+IyEgcm49VmFuaW9uIHJ0PTExMzY0MDI3NjUgcmc9d2l0emUKfiMhIHRpZD0xMTM2NDAxMDk0CkR1IG11c3N0ZXN0IHdpcmtsaWNoIGluIGRpZSBHcnVuZHNjaHVsZSBnZWhlbiB1bmQgaGFzdCBzaWUgbmljaHQgdWViZXJzcHJpbmdlbgpkdWVyZmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2FlbXBmZXIuLi4gKFZlY3RvciwgIDcuIEphbiAyMDA2LCAyMToyMTo0OSk6Ci4uLiB1ZWJlciBzaW5uIHVuZCB1bnNpbm4gdm9uIGRldGFpbCh1bil0aWVmZW46CgpTa3kgdGVpbHQgRGlyIG1pdDogYmVpIHh4eHh4IGhlaXNzdHMgYmVpIHVudCBib2RlbjogIk9oIGRhIGlzdCBlaW4gSGF1ZmVuIGF1ZgpTa3kgdGVpbHQgRGlyIG1pdDogZGVtIEJvZGVuLiBEZW4ga29lbm50ZSBtYW4gdmllbGxlaWNodCBkdXJjaHd1ZWhsZW4gd2VubiBtYW4KU2t5IHRlaWx0IERpciBtaXQ6IGVpbmVuIFNjaGx1ZXNzZWwgZnVlciBkaWUgVHVlciBpbSBPc3RlbiBzdWNoZW4gd3VlcmRlIgoKClNreSB0ZWlsdCBEaXIgbWl0OiB1bmQgYmVpIHp6enp6OiAiSmFhYSBhbHNvIHNjaG9uIGRhbWFscyBpbiBkZXIgU3RlaW56ZWl0IGdhYgpTa3kgdGVpbHQgRGlyIG1pdDogZXMgQm9lZGVuLi4uLi5hdWNoIGRpZSBncm9zc2VuIEJhdW1laXN0ZXIgZGVyClNreSB0ZWlsdCBEaXIgbWl0OiBBZWd5cHRlci4ubGFiZXJsYWJlcmxhYmVyLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2VpbiBUYW56IChBbnRoZWEsICA5LiBKYW4gMjAwNiwgMTQ6NTA6MTgpOgpBICJtb2Rlcm4iIElzbGFtaWMgY291cGxlLCBwcmVwYXJpbmcgZm9yIGEgcmVsaWdpb3VzIHdlZGRpbmcgbWVldHMgd2l0aCB0aGVpcgpNdWxsYWggZm9yIGNvdW5zZWxsaW5nLiBUaGUgTXVsbGFoIGFza3MgaWYgdGhleSBoYXZlIGFueSBsYXN0IHF1ZXN0aW9ucyBiZWZvcmUKdGhleSBsZWF2ZS4KClRoZSBtYW4gYXNrcywgIldlIHJlYWxpc2UgaXQncyBhIHRyYWRpdGlvbiBpbiBJc2xhbSBmb3IgbWVuIHRvIGRhbmNlIHdpdGggbWVuLAphbmQgd29tZW4gdG8gZGFuY2Ugd2l0aCB3b21lbi4gQnV0LCBhdCBvdXIgd2VkZGluZyByZWNlcHRpb24sIHdlJ2QgbGlrZSB5b3VyCnBlcm1pc3Npb24gdG8gZGFuY2UgdG9nZXRoZXIuIgoKIkFic29sdXRlbHkgbm90LCIgc2F5cyB0aGUgTXVsbGFoLiAiSXQncyBpbW1vcmFsLiBNZW4gYW5kIHdvbWVuIGFsd2F5cyBkYW5jZQpzZXBhcmF0ZWx5LiIgIlNvIGFmdGVyIHRoZSBjZXJlbW9ueSBJIGNhbid0IGV2ZW4gZGFuY2Ugd2l0aCBteSBvd24gd2lmZT8iCiJObywiIGFuc3dlcmVkIHRoZSBNdWxsYWgsICJJdCdzIGZvcmJpZGRlbiBpbiBJc2xhbS4iCgoiV2VsbCwgb2theSwiIHNheXMgdGhlIG1hbiwgIldoYXQgYWJvdXQgc2V4PyBDYW4gd2UgZmluYWxseSBoYXZlIHNleD8iICJPZgpjb3Vyc2UhIiByZXBsaWVzIHRoZSBNdWxsYWgsICJBbGxhaCBodSBBa2JhciEgU2V4IGlzIE9LIHdpdGhpbiBtYXJyaWFnZSwgdG8KaGF2ZSBjaGlsZHJlbiEiCgoiV2hhdCBhYm91dCBkaWZmZXJlbnQgcG9zaXRpb25zPyIgYXNrcyB0aGUgbWFuLiAiQWxsYWggaHUgQWtiYXIhIE5vIHByb2JsZW0sIgpzYXlzIHRoZSBNdWxsYWguICJXb21hbiBvbiB0b3A/IiB0aGUgbWFuIGFza3MuICJTdXJlLCIgc2F5cyB0aGUgTXVsbGFoLiAiQWxsYWgKaHUgQWtiYXIuIEdvIGZvciBpdCEiICJEb2dneSBzdHlsZT8iICJTdXJlISBBbGxhaCBodSBBa2JhciEiICJPbiB0aGUga2l0Y2hlbgp0YWJsZT8iICJZZXMsIHllcyEgQWxsYWggaHUgQWtiYXIhIiAiQ2FuIHdlIGRvIGl0IHdpdGggYWxsIG15IGZvdXIgd2l2ZXMKdG9nZXRoZXIgb24gcnViYmVyIHNoZWV0cyB3aXRoIGEgYm90dGxlIG9mIGhvdCBvaWwsIGEgY291cGxlIG9mIHZpYnJhdG9ycywKbGVhdGhlciBoYXJuZXNzZXMsIGEgYnVja2V0IG9mIGhvbmV5IGFuZCBhIHBvcm5vIHZpZGVvPyIgIllvdSBtYXkgaW5kZWVkLgpBbGxhaCBodSBBa2JhciEiCgoiQ2FuIHdlIGRvIGl0IHN0YW5kaW5nIHVwPyIgIk5vLiIgc2F5cyB0aGUgTXVsbGFoLiIgIldoeSBub3Q/IiBhc2tzIHRoZSBtYW4uCiJCZWNhdXNlIHRoYXQgY291bGQgbGVhZCB0byBkYW5jaW5nLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkl0J3MgYWxsIGluIHRoZSBuYW1lIChKaW1kaWdyaXosICA5LiBKYW4gMjAwNiwgMTY6MzQ6MTkpOgpBIG1hbiBib2FyZHMgYW4gYWlycGxhbmUgYW5kIHRha2VzIGhpcyBzZWF0LiBBcyBoZSBzZXR0bGVzIGluLCBoZSBnbGFuY2VzIHVwCmFuZCBzZWVzIGEgbW9zdCBiZWF1dGlmdWwgd29tYW4gYm9hcmRpbmcgdGhlIHBsYW5lLiBIZSBzb29uIHJlYWxpemVzIHNoZSBpcwpoZWFkaW5nIHN0cmFpZ2h0IHRvd2FyZHMgaGlzIHNlYXQuIEEgd2F2ZSBvZiBuZXJ2b3VzIGFudGljaXBhdGlvbiB3YXNoZXMgb3ZlcgpoaW0uIExvIGFuZCBiZWhvbGQsIHNoZSB0YWtlcyB0aGUgc2VhdCByaWdodCBiZXNpZGUgaGlzLiBFYWdlciB0byBzdHJpa2UgdXAgYQpjb252ZXJzYXRpb24sIGhlIGJsdXJ0cyBvdXQsICJCdXNpbmVzcyB0cmlwIG9yIHZhY2F0aW9uPyIuICJOeW1waG9tYW5pYWMKQ29udmVudGlvbiBpbiBDaGljYWdvLCIgc2hlIHN0YXRlcy4gV2hvYSEhISBIZSBzd2FsbG93cyBoYXJkIGFuZCBpcyBpbnN0YW50bHkKY3JhemVkIHdpdGggZXhjaXRlbWVudC4gSGVyZSdzIHRoZSBtb3N0IGdvcmdlb3VzIHdvbWFuIGhlIGhhcyBldmVyIHNlZW4sCnNpdHRpbmcgUklHSFQgbmV4dCB0byBoaW0gYW5kIHNoZSdzIGdvaW5nIHRvIGEgbWVldGluZyBvZiBueW1waG9tYW5pYWNzIQpTdHJ1Z2dsaW5nIHRvIG1haW50YWluIGhpcyBvdXR3YXJkIGNvb2wsIGhlIGNhbG1seSBhc2tzLCAiV2hhdCdzIHlvdXIgYnVzaW5lc3MKcm9sZSBhdCB0aGlzIGNvbnZlbnRpb24/IiAiTGVjdHVyZXIiLCBzaGUgc2F5cy4gIkkgdXNlIG15IGV4cGVyaWVuY2VzIHRvCmRlYnVuayBzb21lIG9mIHRoZSBwb3B1bGFyIG15dGhzIGFib3V0IHNleHVhbGl0eS4iICJSZWFsbHksIiBoZSBzYXlzLApzd2FsbG93aW5nIGhhcmQsICJ3aGF0IG15dGhzIGFyZSB0aG9zZT8iICJXZWxsLCIgc2hlIGV4cGxhaW5zLCAib25lIHBvcHVsYXIKbXl0aCBpcyB0aGF0IEFmcmljYW4gQW1lcmljYW4gbWVuIGFyZSB0aGUgbW9zdCB3ZWxsLWVuZG93ZWQgd2hlbiwgaW4gZmFjdCwgaXQKaXMgdGhlIE5hdGl2ZSBBbWVyaWNhbiBJbmRpYW4gd2hvIGlzIG1vc3QgbGlrZWx5IHRvIHBvc3Nlc3MgdGhhdCB0cmFpdC4KQW5vdGhlciBwb3B1bGFyIG15dGggaXMgdGhhdCBGcmVuY2ggbWVuIGFyZSB0aGUgYmVzdCBsb3ZlcnMsIHdoZW4gYWN0dWFsbHkgaXQKaXMgbWVuIG9mIEdyZWVrIGRlc2NlbnQuIiBTdWRkZW5seSwgdGhlIHdvbWFuIGJlY29tZXMgdmVyeSBlbWJhcnJhc3NlZCBhbmQKYmx1c2hlcy4gIkknbSBzb3JyeSwiIHNoZSBzYXlzLCAiSSBzaG91bGRuJ3QgYmUgZGlzY3Vzc2luZyB0aGlzIHdpdGggeW91LCBJCmRvbid0IGV2ZW4ga25vdyB5b3VyIG5hbWUhIi4KIldpbm5ldG91LCIgdGhlIG1hbiBzYXlzLCBhcyBoZSBleHRlbmRzIGhpcyBoYW5kLiJXaW5uZXRvdSBQYXBhZG9wb3Vsb3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaWUgRHUgbWlyLi4uIChBbnRoZWEsIDEwLiBKYW4gMjAwNiwgMTU6Mzg6MTkpOgpEaWUgRnJhdSBpc3QgZ2VyYWRlIGRhYmVpIGVpbiBTcGllZ2VsZWkgenUgYnJhdGVuLCBhbHMgZGVyIE1hbm4gbmFjaCBIYXVzZQprb21tdCB1bmQgYW5mYWVuZ3QgenUgc2NocmVpZW46CiJBQ0hUVU5HISEhIEFDSFRVTkchISEgTUVIUiBPZUwhISEgV0lSIEJSQVVDSEVOIE1FSFIgT2VMISEhISBFUyBXSVJECkFOQlJBVEVOLi4uLiBBQ0hUVU5HISEhISBVTURSRUhFTiwgVU1EUkVIRU4sIFVNRFJFSEVOLi4uLiBMT1MhISEgQUNIVFVORyEhIQpCSVNUIERVIFZFUlJVZUNLVCEhISBEQVMgT2VMIFdJUkQgQVVTTEFVRkVOISEhISBPSCBNRUlOIEdPVFQsIERBUyBTQUxaISEhIQpWRVJHSVNTIE5JQ0hUIERBUyBTQUxaISEhISIKRGllIEZyYXUsIHNjaG9uIHZvZWxsaWcgZ2VuZXJ2dCB2b24gZGVuIFNjaHJlaWVuIGlocmVzIE1hbm5lcywgZnJhZ3QgaWhuOgoiV2FydW0gc2NocmVpc3QgZHUgc28/IT8gTWVpbnN0IGR1IGljaCBrYW5uIGtlaW4gU3BpZWdlbGVpIGJyYXRlbj8iCkRlciBNYW5uIGFudHdvcnRldCBnYW56IHJ1aGlnOgoiRGFtaXQgZHUgbWFsIGVpbmUgQWhudW5nIGhhc3QsIHdpZSBlcyBtaXIgYmVpbSBBdXRvZmFocmVuIGdlaHQsIHdlbm4gZHUgbmViZW4KbWlyIHNpdHp0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkp1ZWRpc2NoZSBXaXR6ZSAoR2xvaW5zb24sIDEyLiBKYW4gMjAwNiwgMTY6MDI6NTApOgpEaWUgYmVpZGVuIGdlZmFsbGVuIG1pciBoYWx0IC4uLgoKR3J1ZW5zIGFlbHRlc3RlciBTb2huIGlzdCwgdW0gZWluZSBLYXRob2xpa2luIGhlaXJhdGVuIHp1IGtvZW5uZW4sIHp1bQpjaHJpc3RsaWNoZW4gR2xhdWJlbiBrb252ZXJ0aWVydC4gRGEgZWluZW0gZnJvbW1lbiBqdWVkaXNjaGVuIFZhdGVyIG5pY2h0cwpzY2hsaW1tZXJlcyBwYXNzaWVyZW4ga2FubiwgdmVyc2lua3QgR3J1ZW4gaW4gdGllZmVyIERlcHJlc3Npb24gdW5kIHNwZXJydApzaWNoIGluIHNlaW5lIEthbW1lci4gRGVubm9jaCBnZWh0IGRpZSBUdWVyIGF1ZiB1bmQgZWluIGFsdGVyIE1hbm4gbWl0IHdlaXNzZW0KQmFydCB0cml0dCBlaW4uIEVzIGlzdCBKYWh3ZTogLldhcnVtIHdlaW5zdCBEdSwgR3J1ZW4/LiAuIC5Tb2xsIGljaCBkZW5uIG5pY2h0CndlaW5lbiwgbWVpbiBTb2huIGhhdCBzaWNoIHRhdWZlbiBsYXNzZW4hLiAuIC5BYmVyIEdydWVuLCBtZWluZXIgZG9jaCBhdWNoIS4gLgouSmEsIHVuZCB3YXMgc29sbCBpY2ggamV0enQgbWFjaGVuPy4gLiAuTWFjaHMgd2llIGljaDogTWFjaCBlaW4gbmV1ZXMKVGVzdGFtZW50IS4KCm0gSmFocmUgMTkzOCBzaXR6ZW4gZWluYW5kZXIgaW4gZGVyIE5ldyBZb3JrZXIgVS1CYWhuIHp3ZWkgZ2VyYWRlCmVpbmdld2FuZGVydGUgZGV1dHNjaGUgSnVkZW4gZ2VnZW51ZWJlci4gRGVyIGVpbmUgbGllc3QgRGVyIFN0dWVybWVyLCBkYXMKc2NocmVja2xpY2hlIEhldHpibGF0dCBKdWxpdXMgU3RyZWljaGVycy4gRGVyIGFuZGVyZSBsaWVzdCBkaWUganVlZGlzY2hlClplaXR1bmcsIGRpZSBGb3J2YXJkIHVuZCB3aXJkIGFsbG1hZWhsaWNoIGF1ZmdlcmVndC4gRW5kbGljaCBmcmFndCBlciBzZWluZW4KTGFuZHNtYW5uLCAuV2llc28gbGVzZW4gU2llIGRpZXNlcyBmdXJjaHRiYXJlIEJsYXR0PyBFcyBpc3QgbnVyIHJlaW5lcgpBbnRpc2VtaXRpc211cywgSnVkZW5oYXR6Li4gRGVyIGVyc3RlIEp1ZGUgZ3Vja3Qgdm9yIHNpY2ggaGluLiBFciBzYWd0LAouU2NoYXVlbiBTaWUuIFdhcyBzdGVodCBpbiBJaHJlciBaZWl0dW5nPyBVZWJlcmFsbCBzaW5kIGRpZSBKdWRlbgpGbHVlY2h0bGluZ2UuIE1hbiB2ZXJmb2xndCB1bnMuIE1hbiB3aXJmdCBTdGVpbmUgdW5kIEJvbWJlbiBpbiBkaWUgU3luYWdvZ2VuLgpJY2ggbGVzZSBkaWUgTmF6aS1aZWl0dW5nLCBkZW5uIHNpZSBpc3QgenV2ZXJzaWNodGxpY2hlci4gV2lyIGJlc2l0emVuIGRpZQpCYW5rZW4hIFdpciBiZXNpdHplbiBkaWUgZ3Jvc3NlbiBGaXJtZW4hIFdpciBiZWhlcnJzY2hlbiBkaWUgV2VsdCEuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKdWVkaXNjaGUgV2l0emUgKEdyaW1tYm9ybiwgMTIuIEphbiAyMDA2LCAxNjowNjo1OSk6Cn4jISBybj1HbG9pbnNvbiBydD0xMTM3MDc4MTcwIHJnPXdpdHplCn4jISB0aWQ9MTEzNzA3ODE3MAoiQW4gYWxsZW0gVW5nbHVlY2sgc2luZCBkaWUgSnVkZW4gc2NodWxkISIgIk5laW4sIGRpZSBSYWRmYWhyZXIuIiAiV2llc28gZGllClJhZGZhaHJlcj8iICJXaWVzbyBkaWUgSnVkZW4/IgoKRWluIEZhcmJpZ2VyIGluIGRlciBOZXcgWW9ya2VyIFUtQmFobiBsaWVzdCBlaW5lIGhlYnJhZWlzY2hlIFplaXR1bmcuIE5hY2gKZWluZXIgV2VpbGUgYmV1Z3Qgc2ljaCBkZXIgRmFocmdhc3QgaWhtIGdlZ2VudWViZXIgenUgaWhtIHJ1ZWJlciB1bmQgZnJhZ3Q6CiJTYWdlbiBTaWUgbWFsLCBOZWdlciBhbGxlaW5lIHJlaWNodCBJaG5lbiB3b2hsIG5pY2h0PyIKCkphLCB1bmQgbWVpbiBMaWVibGluZ3NqdWVkaXNjaGVyIFdpdHogaXN0IG1pciB6dSBsYW5nIHVtIGlobiBqZXR6dAphdWZ6dXNjaHJlaWJlbi4uLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEp1ZWRpc2NoZSBXaXR6ZSAoR2xvaW5zb24sIDEyLiBKYW4gMjAwNiwgMTY6MDc6NDcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTExMzcwNzg0MTkgcmc9d2l0emUKfiMhIHRpZD0xMTM3MDc4MTcwCkthbm5zdCBpaG4gamEgbWFsIG5hY2hsaWVmZXJuLCBnZ2YuIGluIG1lZ2FzY2htYXJybi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEp1ZWRpc2NoZSBXaXR6ZSAoQW50aGVhLCAxMi4gSmFuIDIwMDYsIDE2OjA5OjI5KToKfiMhIHJuPUdyaW1tYm9ybiBydD0xMTM3MDc4NDE5IHJnPXdpdHplCn4jISB0aWQ9MTEzNzA3ODE3MApkZXIgaXN0IGF1Y2ggbmV0dCwgYWJlciBtZWluIExpZWJsaW5nc3dpdHogaXN0IG1pciBnZXJhZGUgYXVjaCB6dSBsYW5nIDspCgoKS3VyeiBuYWNoIDE5MzMga2FtIGVpbiBKdWRlIGFuIGVpbmVtIEJldHRsZXIgdm9ydWViZXIsIHdlbGNoZXIgYXVmIGRlciBCcnVzdAplaW5lIFRhZmVsIG1pdCBkZXIgQXVmc2NocmlmdCB0cnVnOiAiVm9sbHN0YWVuZGlnIGJsaW5kOiBOZWhtZSBuaWNodHMgdm9uCkp1ZGVuLiIKCkRlciBKdWRlIHRyYXQgbmVydm9lcyBhdWYgZGVuIE1hbm4genUgdW5kIGZsdWVzdGVydGU6ICJJY2ggZ2ViZSBJaG5lbiA1IE1hcmsgLQphYmVyIGJpdHRlLCBlbnRmZXJuZW4gU2llIGRpZSBUYWZlbC4iCiJBdWYgSWhyZSBFemVzICggamlkZGlzY2g6IFJhdHNjaGxhZWdlICkgaGFiJyBpY2ggZ2V3YXJ0ZXQhIiAtIGVudGdlZ25ldGUgZGVyCmJsaW5kZSAnTmF6aScuIC0gIldvbGxlbiBTaWUgbWljaCBsZWhyZW4sIHdpZSBtYW4gYmVpIGRpZXNlbiBCYW5kaXRlbgpiZXR0ZWx0PyIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBKdWVkaXNjaGUgV2l0emUgKEFudGhlYSwgMTIuIEphbiAyMDA2LCAxNjoxNzozNyk6Cn4jISBybj1BbnRoZWEgcnQ9MTEzNzA3ODU2OSByZz13aXR6ZQp+IyEgdGlkPTExMzcwNzgxNzAKSGEsIGhhYiBpaG4gZG9jaCBub2NoIGdlZnVuZGVuOgoKRWluIEp1ZGUgemllaHQgaW4gZWluZSBzZWhyIGthdGhvbGlzY2hlIE5hY2hiYXJzY2hhZnQuIEplZGVuIEZyZWl0YWcgd2VyZGVuCmRpZSBLYXRob2xpa2VuIGV4dHJlbSBnZW5lcnZ0LCBkZW5uIHdhZWhyZW5kIHNpZSBicmF2IGlocmVuIEZpc2NoIGVzc2VuLCBzdGVodApkZXIgSnVkZSBkcmF1c3NlbiB1bmQgZ3JpbGx0IFN0ZWFrcy4gQWxzbyBmYW5nZW4gZGllIEthdGhvbGlrZW4gYW4sIGF1ZiBpaG4KZWluenVyZWRlbiwgZGFtaXQgZXIga29udmVydGllcnQuCkVuZGxpY2gsIG5hY2ggbGFuZ2VtIEJpdHRlbiB1bmQgRHJvaGVuIGhhYmVuIHNpZSBFcmZvbGcuIFNpZSBuZWhtZW4gZGVuIEp1ZGVuCm1pdCB6dSBlaW5lbSBQcmllc3RlciwgZGVyIGhlaWxpZ2VzIFdhc3NlciBhdWYgaWhuIHNwcml0enQgdW5kIGRhYmVpIHNhZ3Q6CiAgICAgICAuLi4uLiJHZWJvcmVuIGFscyBKdWRlCiAgICAgICAuLi4uLi5BdWZnZXdhY2hzZW4gYWxzIEp1ZGUKICAgICAgIC4uLi4uLkpldHp0IGVpbiBLYXRob2xpay4iCkRpZSBLYXRob2xpa2VuIHNpbmQgYmVnZWlzdGVydC4gTnVuIHdpcmQgZXMgZnJlaXRhZ3Mga2VpbmUgbGVja2VyZW4sIGFiZXIKZXh0cmVtIGlycml0aWVyZW5kZW4gR2VydWVjaGUgbWVociBnZWJlbi4KQWJlciBhbSBuYWVjaHN0ZW4gRnJlaXRhZyBBYmVuZCB6aWVodCB3aWVkZXIgZGVyIEdlcnVjaCBnZWdyaWxsdGVyIFN0ZWFrcwpkdXJjaCBkaWUgR2VnZW5kLiBEaWUgS2F0aG9saWtlbiByZW5uZW4gYWxsZSB6dSBkZW0gSGF1cyBkZXMgRXgtSnVkZW4gdW0gaWhuCmFuIHNlaW5lIG5ldWUgRnJlaXRhZ3NkaWFldCB6dSBlcmlubmVybi4gRG9ydCBzZWhlbiBzaWUgaWhuLCB3aWUgZXIgYW0gR3JpbGwKc3RlaHQuIEVyIHNwcmVua2VsdCBXYXNzZXIgYXVmIGRhcyBGbGVpc2NoIHVuZCBzYWd0OgogICAgICAgLi4uLi4iR2Vib3JlbiBhbHMgS3VoCiAgICAgICAuLi4uLi5BdWZnZXdhY2hzZW4gYWxzIEt1aAogICAgICAgLi4uLi4uSmV0enQgZWluIEZpc2NoLiIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTbWFsbHRhbGsgKEFudGhlYSwgMTMuIEphbiAyMDA2LCAxMTozMjo1Nyk6CkEgZ3V5IHRyYXZlbGxpbmcgdGhyb3VnaCB0aGUgcHJhaXJpZXMgb2YgdGhlIFVTQSBzdG9wcGVkIGF0IGEgc21hbGwgdG93biBhbmQKd2VudCB0byBhIGJhci4gSGUgc3Rvb2QgYXQgdGhlIGVuZCBvZiB0aGUgYmFyLCBvcmRlcmVkIGEgZHJpbmssIGFuZCBsaXQgdXAgYQpjaWdhci4gQXMgaGUgc2lwcGVkIGhpcyBkcmluaywgaGUgc3Rvb2QgdGhlcmUgcXVpZXRseSBibG93aW5nIHNtb2tlIHJpbmdzLgpBZnRlciBoZSBibGV3IG5pbmUgb3IgdGVuIHNtb2tlIHJpbmdzIGludG8gdGhlIGFpciwgYW4gYW5ncnkgQW1lcmljYW4gSW5kaWFuCnN0b21wZWQgdXAgdG8gaGltIGFuZCBzYWlkLCAiT25lIG1vcmUgcmVtYXJrIGxpa2UgdGhhdCBhbmQgSSdsbCBzbWFzaCB5b3VyCmZhY2UgaW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSnVlZGlzY2hlIFdpdHplIChLZWxseWJ1bmR5LCAxMy4gSmFuIDIwMDYsIDIxOjQ3OjE0KToKfiMhIHJuPUFudGhlYSBydD0xMTM3MDc5MDU3IHJnPXdpdHplCn4jISB0aWQ9MTEzNzA3ODE3MApXb2JlaSBkYXMgJ0Zpc2NoLWFtLUZyZWl0YWctR2Vib3Qgbml4IG1pdCBkZW0gS2F0aG9saXppc211cyB6dSB0dW4gaGF0LAp1ZWJyaWdlbnMuCk9kZXIgdmllbGxlaWNodCBkb2NoPyEKRXMgd2FyIGVpbm1hbCBlaW4gc3VlZGRldXRzY2hlciBCaXNjaG9mLCBkZXIgc2Nod2VyIGJlZ3VldGVydCB3YXIgdW5kIGF1Y2gKdW50ZXIgYW5kZXJlbSBGaXNjaHp1Y2h0ZW4gYmV0cmllYi4gZGVyIGhhdCBzY2hsaWNodCB1bmQgZXJncmVpZmVuZCBkYXMKJ0ZyZWl0YWdzLXdpcmQtRmlzY2gtZ2VnZXNzZW4tR2Vib3QnIGluIHNlaW5lbSBCaXN0dW0gdmVyaGFlbmd0LCB1bSBzZWluZW4KVW1zYXR6IGFuenVrdXJiZWxuLiBVbmQgc28gaGF0IHNpY2hzIHdvaGwgZWluZ2VidWVyZ2VydCwgQUZBSUsKRnJhZ3QgbWljaCBuaWNodCBuYWNoIGRlciBRdWVsbGUsIGVzIGtvbW10IHZvbiBlaW5lbSBLYXRob2xpa2VuLCBkZXIgc2Nod2VyCmFrdGl2IGlzdCBpbiBkZXIgTWFpbnplciBrYXRob2xpc2NoZW4gU3R1ZGVudGVuZ2VtZWluZGUsIGRlc3NlbiBOYW1lbiBpY2gKbmljaHQga2VubmUsIGFsc28gYXVzIHF1YXNpIGJlcnVmZW5lbSBNdW5kZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEp1ZWRpc2NoZSBXaXR6ZSAoS2Vzc2EsIDEzLiBKYW4gMjAwNiwgMjI6MDM6MzYpOgp+IyEgcm49S2VsbHlidW5keSBydD0xMTM3MTg1MjM0IHJnPXdpdHplCn4jISB0aWQ9MTEzNzA3ODE3MApJY2ggbWFnIGRlbiBoaWVyLCBlciBpc3Qgc28gc2Nob2VuIHVlYmVydHJhZ2JhciA6KToKCkpvc3NlbGUgZXJzY2hlaW50IGJlaW0gUmFiYmluZXIgdW5kIGZyYWd0OiAnUmViYmVsZWJlbiwgc2VpIGdlZnJhZ3Q6IGlzdCBlcwplcmxhdWJ0LCBiZWltIFRhbG11ZC1MZXNlbiB6dSByYXVjaGVuPycKJ1NlbGJzdHZlcnN0YWVuZGxpY2ggbmljaHQnLCBlcndpZGVydCBkZXIgUmFiYmkuCidVbmQgUmViYmUsIGlzdCBlcyBkZW5uIGVybGF1YnQsIGJlaW0gUmF1Y2hlbiBkZW4gVGFsbXVkIHp1IGxlc2VuPycKCgpVbmQgZGllc2VyIGlzdCBlaWdlbnRsaWNoIG5pY2h0IHNvIHNwZXppZWxsIGp1ZWRpc2NoLCBhYmVyIGdlZmllbCBtaXIgaW1tZXIKc2Nob246CgpFaW4gS3VuZGUgYmV0cml0dCBkaWUgQXJiZWl0c3N0dWJlIGVpbmVzIGp1ZWRpc2NoZW4gU2NobmVpZGVycy4gRXIgYmVzdGVsbHQKZWluZSBIb3NlLCBzaWUgbXVlc3NlIGFiZXIgaW4gMyBUYWdlbiBmZXJ0aWcgc2Vpbi4gJ0VzIGthbm4gYXVjaCBlaW4gd2VuaWcKbGFlbmdlciBkYXVlcm4nLCBlcmtsYWVydCBpaG0gZGVyIFNjaG5laWRlciwgJ2FiZXIgaWNoIHdlcmRlIHR1biwgd2FzIGljaAprYW5uLicgR2VzY2hhZWZ0ZSBrb21tZW4gZGF6d2lzY2hlbiwgZXJzdCBzaWViZW4gSmFocmUgc3BhZXRlciBpc3QgZGVyIEt1bmRlCndpZWRlciBpbiBkZXIga2xlaW5lbiBTY2huZWlkZXJlaS4gRGEgYnJpbmd0IGlobSBkZXIgU2NobmVpZGVyIGZyZXVkaWcgZGllCmZlcnRpZ2UgSG9zZTogJ1dhcyBmdWVyIGVpbiBHbHVlY2ssIHNpZSBpc3QgZWJlbiBmZXJ0aWdnZXdvcmRlbiEnLiBEZXIgYW5kZXJlLAplcnN0YXVudCwga2FubiBuaWNodCB1bWhpbiB6dSBmcmFnZW46ICJEZXIgbGllYmUgR290dCBoYXQgZGllIFdlbHQgaW4gc2llYmVuClRhZ2VuIGdlc2NoYWZmZW4sIHVuZCBJaHIgYnJhdWNodCBzaWViZW4gSmFocmUgZnVlciBlaW5lIEhvc2U/IiBEZXIgU2NobmVpZGVyLApzYW5mdCB1ZWJlciBkaWUgSG9zZSBzdHJlaWNoZWxuZDogJ051IC0gc2VodCBldWNoIGFuIGRpZSBXZWx0LCB1bmQgc2VodCBldWNoCmFuIGRpZXNlIEhvc2UhJwoKS2Vzc2EKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEp1ZWRpc2NoZSBXaXR6ZSAoQW50aGVhLCAxNi4gSmFuIDIwMDYsIDE0OjEzOjA4KToKfiMhIHJuPUtlbGx5YnVuZHkgcnQ9MTEzNzE4NTIzNCByZz13aXR6ZQp+IyEgdGlkPTExMzcwNzgxNzAKTmFqYS4gRXMgaXN0IGVoZXIgZGllc2VyIGFsdGUgQnJhdWNoLCBhbSBGcmVpdGFnIGtlaW4gRmxlaXNjaCB6dSBlc3Nlbi4gVW5kCnNlbHRzYW1lciBXZWlzZSBoYXQgaXJnZW5kIGplbWFuZCBiZXNjaGxvc3NlbiwgZGFzcyBGaXNjaCBrZWluIEZsZWlzY2ggaXN0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogSnVlZGlzY2hlIFdpdHplIChDYWxkcmluLCAxNy4gSmFuIDIwMDYsIDEwOjUxOjM5KToKfiMhIHJuPUFudGhlYSBydD0xMTM3NDE3MTg4IHJnPXdpdHplCn4jISB0aWQ9MTEzNzA3ODE3MApBdWNoIG5pY2h0IHBlcmZla3QganVlZGlzY2gsIGFiZXIgaW1tZXJoaW4genVtIFRlaWwuCgpFaW4ganVlZGlzY2hlciB1bmQgZWluIGl0YWxpZW5pc2NoZXIgSnVuZ2Ugc2luZCBkaWUgYmVzdGVuIEZyZXVuZGUgdW5kIHRlaWxlbgphbGxlcyBtaXRlaW5hbmRlci4gWnVtIDE0LiBHZWJ1cnRzdGFnIGJla29tbXQgZGVyIGtsZWluZSBKdWRlIGVpbmUgZ29sZGVuZSBVaHIKdW5kIGRlciBJdGFsaWVuZXIgZWluZSBCZXJldHRhIDltbS4gIEtlaW5lciBkZXIgYmVpZGVuIGlzdCB3aXJrbGljaCB6dWZyaWVkZW4KbWl0IGRlbSwgd2FzIGVyIGJla29tbWVuIGhhdCwgYWxzbyBiZXNjaGxpZXNzZW4gc2llIHp1IHRhdXNjaGVuLiBBbHMgZGVyIEp1ZGUKbWl0IHNlaW5lciBuZXVlbiBQaXN0b2xlIG5hY2ggSGF1c2Uga29tbXQsIGlzdCBzZWluIFZhdGVyIG5hdHVlcmxpY2ggdm9lbGxpZwphdXNzZXIgc2ljaCwgcmVndCBzaWNoIGF1ZiB1bmQgdmVybGFuZ3QsIGRhc3Mgc2VpbiBTb2huIHNpY2ggZGllIHNjaG9lbmUgdGV1cmUKVWhyIHp1cnVlY2tob2x0LiBEZXIgSXRhbGllbmVyanVuZ2Uga29tbXQgbWl0IHNlaW5lciBVaHIgbmFjaCBIYXVzZSwgemVpZ3Qgc2llCnNlaW5lbSBWYXRlciwgZGVyIGRhenUgbWVpbnQ6ICJTb2huISBFaW5lcyBUYWdlcyB3aXJzdCBkdSBlcndhY2hzZW4gc2Vpbi4gRHUKd2lyc3QgdHJlZmZlbiBlaW5lIHd1bmRlcnNjaG9lbmUgU2VuaW9yaW5hLCBpaHIgd2VyZGV0IGhlaXJhdGVuIHVuZCBoYWJlbgp2aWVsZSBrbGVpbmUgQmFtYmluaS4gVW5kIGVpbmVzIFRhZ2VzLCBTb2huLCB3aXJzdCBkdSBuYWNoIEhhdXNlIGtvbW1lbiB1bmQKc2llIGltIEJldHQgZXJ3aXNjaGVuIG1pdCBlaW5lIGFuZGVyZSBNYW5uLiBVbmQgZGFubj8gV2FzIGRhbm4/IFdpbGxzdCBkdSBhdWYKZGVpbmUgVWhyIHNjaGF1ZW4sIHdpZSBsYW5nZSBlcyBub2NoIGRhdWVydD8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcmFkIGdlZnVuZGVuOiBLYWxvcmllbiBiZWltIFNleCAoQnJvdG5hZWwsIDE3LiBKYW4gMjAwNiwgMTI6NDE6NDUpOgpFcyBpc3Qgc2VpdCBKYWhyZW4gYWxsZ2VtZWluIGJla2FubnQsIGRhc3MgU2V4IGFscyBndXRlIExlaWJlc3VlYnVuZyBnaWx0LAphYmVyIGJpcyB2b3Iga3VyemVtIG1hY2h0ZSBub2NoIG5pZW1hbmQgZWluZSB3aXNzZW5zY2hhZnRsaWNoZSBTdHVkaWUKdWViZXIgZGllIGdlbmF1ZW4gS2Fsb3JpZW4tV2VydGUsIGRpZSBiZWkgZGVuIHZlcnNjaGllZGVuZW4gc2V4dWVsbGVuCkFrdGl2aXRhZXRlbiB2ZXJicmFubnQgd2VyZGVuLgpOYWNoIGxhbmdqYWVocmlnZW4gVGVzdHMgd3VyZGVuIG51biBlbmRsaWNoIGRpZSBSZXN1bHRhdGUgYmVrYW5udCBnZWdlYmVuLgoKSWhyIGRpZSBLbGVpZHVuZyBhdXN6aWVoZW4KTWl0IGlocmVtIEVpbnZlcnN0YWVuZG5pcyAgIDEyIEthbG9yaWVuCk9obmUgaWhyIEVpbnZlcnN0YWVuZG5pcyAgICAxODcgS2Fsb3JpZW4KSWhyZW4gQkggb2VmZm5lbgpNaXQgYmVpZGVuIEhhZW5kZW4gICAgICAgICAgOCBLYWxvcmllbgpNaXQgZWluZXIgSGFuZCAgICAgICAgICAgICAgMTIgS2Fsb3JpZW4KTWl0IGRlbiBaYWVobmVuICAgICAgICAgICAgIDg1IEthbG9yaWVuCkVpbiBLb25kb20gYW56aWVoZW4KTWl0IEVyZWt0aW9uICAgICAgICAgICAgICAgIDYgS2Fsb3JpZW4KT2huZSBFcmVrdGlvbiAgICAgICAgICAgICAgIDMxNSBLYWxvcmllbgpWb3JzcGllbApEaWUgS2xpdG9yaXMgZmluZGVuICAgICAgICAgOCBLYWxvcmllbgpEZW4gRy1QdW5rdCBmaW5kZW4gICAgICAgICAgOTIgS2Fsb3JpZW4KUG9zaXRpb25lbgpNaXNzaW9uYXJzc3RlbGx1bmcgICAgICAgICAgMTIgS2Fsb3JpZW4KNjkgaW0gQmV0dCBsaWVnZW5kICAgICAgICAgIDc4IEthbG9yaWVuCjY5IGltIFN0YW5kICAgICAgICAgICAgICAgICAxMTIgS2Fsb3JpZW4KU2NodWJrYXJyZSAgICAgICAgICAgICAgICAgIDIxNiBLYWxvcmllbgpIdW5kZXN0ZWxsdW5nICAgICAgICAgICAgICAgMzI2IEthbG9yaWVuCkl0YWxpZW5pc2NoZXIgS3JvbmxldWNodGVyICA5MTIgS2Fsb3JpZW4KT3JnYXNtdXMKRWNodCAgICAgICAgICAgICAgICAgICAgICAgIDExMiBLYWxvcmllbgpWb3JnZXRhZXVzY2h0ICAgICAgICAgICAgICAgMzE1IEthbG9yaWVuCk5hY2ggZGVtIE9yZ2FzbXVzCkltIEJldHQga3VzY2hlbG4gICAgICAgICAgICAxOCBLYWxvcmllbgpVbWdlaGVuZCBhdWZzdGVoZW4gICAgICAgICAgMzYgS2Fsb3JpZW4KRXJrbGFlcmVuLCB3YXJ1bSBtYW4KdW1nZWhlbmQgYXVmc3RlaHQgICAgICAgICAgIDgxNiBLYWxvcmllbgpad2VpdGUgRXJla3Rpb24ga3JpZWdlbiwgaW0gQWx0ZXIgdm9uCjIwIC0gMjkgSmFocmVuICAgICAgICAgICAgICAzNiBLYWxvcmllbgozMCAtIDM5IEphaHJlbiAgICAgICAgICAgICAgODAgS2Fsb3JpZW4KNDAgLSA0OSBKYWhyZW4gICAgICAgICAgICAgIDEyNCBLYWxvcmllbgo1MCAtIDU5IEphaHJlbiAgICAgICAgICAgICAgOTcyIEthbG9yaWVuCjYwIC0gNjkgSmFocmVuICAgICAgICAgICAgICAyOTE2IEthbG9yaWVuCjcwIHVuZCBtZWhyIEphaHJlbiAgICAgICAgICBUZXN0cyBiaXNsYW5nIG5vY2ggbmljaHQgYWJnZXNjaGxvc3NlbgpXaWVkZXIgYW56aWVoZW4KR2VtdWV0bGljaCAgICAgICAgICAgICAgICAgIDMyIEthbG9yaWVuCkluIEVpbGUgICAgICAgICAgICAgICAgICAgICA5OCBLYWxvcmllbgpXZW5uIGlociBWYXRlcgphbiBkZXIgVHVlciBrbG9wZnQgICAgICAgICAgMTIxOCBLYWxvcmllbgpXZW5uIERlaW5lIEVoZWZyYXUKYW4gZGVyIFR1ZXIga2xvcGZ0ICAgICAgICAgIDM1MjEgS2Fsb3JpZW4KCgpCcm90aSwgaGF0IHdpZWRlciB3YXMgZ2VsZXJudCA6bykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCm5vY2ggZWluZXI6IEVoZWZyYWdlIChCcm90bmFlbCwgMTcuIEphbiAyMDA2LCAxMjo0NTowMyk6ClNpZTogIldlbm4gaWNoIHN0ZXJiZW4gc29sbHRlLCB3dSJyZGVzdCBkdSB3aWVkZXIgaGVpcmF0ZW4/IgpFcjogICJOYXR1ZXJsaWNoIG5pY2h0ISIKU2llOiAiV2FydW0gLSBtYWdzdCBkdSBlcyBuaWNodCB2ZXJoZWlyYXRldCB6dSBzZWluPyIKRXI6ICAiTmF0dWVybGljaCBtYWcgaWNoIGVzLiIKU2llOiAiV2FydW0gd3VlcmRlc3QgZHUgYWxzbyBuaWNodCBtZWhyIGhlaXJhdGVuPyIKRXI6ICAiT0ssIGljaCB3dWVyZGUgd2llZGVyIGhlaXJhdGVuLiIKU2llOiAiRHUgd3VlcmRlc3Q/IiAobWl0IGVpbmVtIHZlcmxldHp0ZW4gR2VzaWNodHNhdXNkcnVjaykKRXI6ICAodGllZmVyIFNldWZ6ZXIpClNpZTogIld1ZXJkZXN0IGR1IG1pdCBpaHIgaW4gdW5zZXJlbSBCZXR0IHNjaGxhZmVuPyIKRXI6ICAiV28gc29sbHRlbiB3aXIgc29uc3Qgc2NobGFmZW4/IgpTaWU6ICJXdWVyZGVzdCBkdSBtZWluZSBCaWxkZXIgZHVyY2ggaWhyZSBlcnNldHplbj8iCkVyOiAgIkRhcyBzY2hlaW50IG1pciBhbmdlbWVzc2VuLiIKU2llOiAiV3VlcmRlIHNpZSBtZWluZSBHb2xmc2NobGFlZ2VyIGJlbnV0emVuPyIKRXI6ICAiTmVpbiwgc2llIGlzdCBMaW5rc2hhZW5kZXJpbi4iClNpZTogLSAtIC0gUnVoZSAtIC0gLQpFcjogICJTY2hlaXNzZS4iCgpCcm90aSA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChUb2RpZSwgMTcuIEphbiAyMDA2LCAxMjo1ODozOCk6Cn4jISBybj1Ccm90bmFlbCBydD0xMTM3NDk4MTA1IHJnPXdpdHplCn4jISB0aWQ9MTEzNzQ5ODEwNQpOdXIgd2FzIGJpdHRlc2Nob2VuIGlzdCBkZXIgaXRhbGllbmlzY2hlIEtyb25sZXVjaHRlcj8hCgpUb2RpZSAtIGxhZXNzdCBzaWNoIGdlcm5lIGF1ZmtsYWVyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChCcm90bmFlbCwgMTcuIEphbiAyMDA2LCAxMzowNDo0MCk6Cn4jISBybj1Ub2RpZSBydD0xMTM3NDk5MTE4IHJnPXdpdHplCn4jISB0aWQ9MTEzNzQ5ODEwNQpCaWxkZXIgd2FyZW4gbGVpZGVyIGtlaW5lIGJlaSwgdW5kIHNvIHdlaXQgd2FyIGljaCBpbSBLYW1hc3V0cmEgbm9jaCBuaWNodCwKYWJlciBpY2ggbGFzcyBhdWNoIGF1Y2ggZ2VybiBhdWZrbGFlcmVuIDpvKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR3JhZCBnZWZ1bmRlbjogS2Fsb3JpZW4gYmVpbSBTZXggKEFudGhlYSwgMTcuIEphbiAyMDA2LCAxMzoxOTowOSk6Cn4jISBybj1Ccm90bmFlbCBydD0xMTM3NDk5NDgwIHJnPXdpdHplCn4jISB0aWQ9MTEzNzQ5ODEwNQpNaXQgZGVyIEVya2xhZXJ1bmdzbm90IGJpc3QgRHUgbmljaHQgYWxsZWluLgpodHRwOi8vdGlueXVybC5jb20vN3FucHEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChBbnRoZWEsIDE3LiBKYW4gMjAwNiwgMTM6MjE6MjcpOgp+IyEgcm49QW50aGVhIHJ0PTExMzc1MDAzNDkgcmc9d2l0emUKfiMhIHRpZD0xMTM3NDk4MTA1Ck9oLiBCZWkgYnJhdm8uZGUgZ2lidCBlcyBkYXMgc29nYXIgbWl0IEJpbGQKaHR0cDovL3d3dy5icmF2by5kZS9vbmxpbmUvcHJpbnRtZS5waHA/cmVuZGVyPTE4MjAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChDcm9mdCwgMTcuIEphbiAyMDA2LCAxMzoyMjo0NSk6Cn4jISBybj1BbnRoZWEgcnQ9MTEzNzUwMDQ4NyByZz13aXR6ZQp+IyEgdGlkPTExMzc0OTgxMDUKQWxzbyBvYiBzaWNoIGRhcyBEci4gU29tbWVyIG5pY2h0IHNlbGJzdCBhdXMgZGVuIEZpbmdlcm4gZ2VzYXVndCBoYWV0dGUuCkRlciBrZW5udCBkaWUgU3RlbGx1bmcgYXVjaCBuaWNodC4KCkNyb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBHcmFkIGdlZnVuZGVuOiBLYWxvcmllbiBiZWltIFNleCAoWm9vaywgMTcuIEphbiAyMDA2LCAxMzoyMjo1NSk6Cn4jISBybj1BbnRoZWEgcnQ9MTEzNzUwMDQ4NyByZz13aXR6ZQp+IyEgdGlkPTExMzc0OTgxMDUKaXMgamEgbGFuZ3dlaWxpZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChBbnRoZWEsIDE3LiBKYW4gMjAwNiwgMTM6Mjg6MTEpOgp+IyEgcm49Wm9vayBydD0xMTM3NTAwNTc1IHJnPXdpdHplCn4jISB0aWQ9MTEzNzQ5ODEwNQpIbS4gWWFob28gd2Vpc3MgbWVoci4KaHR0cDovL3N0b3JlLnlhaG9vLm5ldC9zZXh1YWxwb3NpdGlvbnMvY2hhbnBvc2FrYWl0Lmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHcmFkIGdlZnVuZGVuOiBLYWxvcmllbiBiZWltIFNleCAoT3JrdG9ldGVyLCAxNy4gSmFuIDIwMDYsIDE0OjQyOjAxKToKfiMhIHJuPUJyb3RuYWVsIHJ0PTExMzc0OTgxMDUgcmc9d2l0emUKfiMhIHRpZD0xMTM3NDk4MTA1CldhcyBsZXJuZW4gd2lyIGRhcmF1cz8gV2VyIGFscyBNYW5uIGFibmVobWVuIHdpbGwsIHNvbGx0ZSAxLiBWZXJoZWlyYXRldCBzZWluCnVuZCAyLiBzaWNoIGRpZSBHZWxpZWJ0ZSB6dSBlaW5lciBaZWl0IG5hY2ggSGF1c2UgZWlubGFkZW4sIHdlbm4gZXIgZGFtaXQKcmVjaG5lbiBrYW5uLCBkYXNzIGRpZSBFaGVmcmF1IGJhbGQgSGVpbSBrb21tdC4gTm9jaCBiZXNzZXIgd2FlcmUgZXMKbmF0dWVybGljaCwgd2VubiBlciBzaWNoZXJzdGVsbGVuIGtvZW5udGUsIGRhc3MgbmViZW4gZGVyIEVoZWZyYXUgYXVjaCBnbGVpY2gKbm9jaCBkZXIgVmF0ZXIgZGVyIEdlbGllYnRlbiBtaXQgdm9yIGRlciBUdWVyIHN0ZWh0LgoKCk9ya1QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChIaWdobGFuZGVyLCAxNy4gSmFuIDIwMDYsIDE0OjQ1OjIzKToKfiMhIHJuPU9ya3RvZXRlciBydD0xMTM3NTA1MzIxIHJnPXdpdHplCn4jISB0aWQ9MTEzNzQ5ODEwNQpOaWNodCB2ZXJnZXNzZW4gLQppaHIgZ2VnZW4gaWhyZW4gV2lsbGVuIGRpZSBLbGFtb3R0ZW4gbWl0IGRlbiBaYWVobmVuIGF1c3ppZWhlbiwKc2ljaCBkYXMgS29uZG9tIHZvciBkZXIgRXJla3Rpb24gdWViZXJzdHJlaWZlbiwKYmVpbSBpdGFsaWVuaXNjaGVuIEtyb25sZXVjaHRlciBkZW4gRy1QdW5rdCBmaW5kZW4gdW5kIGRlbiBPcmdhc211cwp2b3J0YWV1c2NoZW4sCnVlYmVyIDYwIChhYmVyIHVudGVyIDcwKSBzZWluLCB1bmQgZXJrbGFlcmVuLCB3YXJ1bSBtYW4gc29mb3J0CmRhbmFjaCB3aWVkZXIgYXVmc3RlaHQuCgpPZGVyPwoKSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBHcmFkIGdlZnVuZGVuOiBLYWxvcmllbiBiZWltIFNleCAoTmljb2xhaSwgMTcuIEphbiAyMDA2LCAxODo0MTo1OCk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTExMzc1MDU1MjMgcmc9d2l0emUKfiMhIHRpZD0xMTM3NDk4MTA1Cml0YWxpZW5pc2NoZXIga3JvbmxldWNodGVyPyBub3JtYWwuIHdlbm4gaWNocyBkZW1vbnN0cmllcmVuIHNvbGwsCmJyYXVjaCBpY2ggOCBiaXMgMTQgZnJlaXdpbGxpZ2UgZnJhdWVuIDpvKQplaW5mYWNoIG1haWwgYW4gbWljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEdyYWQgZ2VmdW5kZW46IEthbG9yaWVuIGJlaW0gU2V4IChSdW1hdGEsIDE3LiBKYW4gMjAwNiwgMjA6MDY6NDUpOgp+IyEgcm49Tmljb2xhaSBydD0xMTM3NTE5NzE4IHJnPXdpdHplCn4jISB0aWQ9MTEzNzQ5ODEwNQpEYW5uIHNjaG9uIGxpZWJlciBkaWVzZSBBbm1hY2hlOgoKRXkgRHUsIGljaCBiaW4gc293YXMgdm9uIHNjaGxlY2h0IGltIEJldHQsIGRhcyBtdXNzdCBEdSBnZXNlaGVuIGhhYmVuLgoKUnVtKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRoaW5ncyB0byBwb25kZXIgKEFudGhlYSwgMzEuIEphbiAyMDA2LCAxMzowNDo1Myk6Ci0gQ2FuIHlvdSBjcnkgdW5kZXIgd2F0ZXI/IAotIEhvdyBpbXBvcnRhbnQgZG9lcyBhIHBlcnNvbiBoYXZlIHRvIGJlIGJlZm9yZSB0aGV5IGFyZSBjb25zaWRlcmVkCmFzc2Fzc2luYXRlZCBpbnN0ZWFkIG9mIGp1c3QgbXVyZGVyZWQ/IAotIFdoeSBkbyB5b3UgaGF2ZSB0byAicHV0IHlvdXIgdHdvIGNlbnRzIGluIiBidXQgaXQncyBvbmx5IGEgInBlbm55IGZvciB5b3VyCnRob3VnaHRzIj8gV2hlcmUncyB0aGF0IGV4dHJhIHBlbm55IGdvaW5nIHRvPyAKLSBPbmNlIHlvdSdyZSBpbiBoZWF2ZW4sIGRvIHlvdSBnZXQgc3R1Y2sgd2VhcmluZyB0aGUgY2xvdGhlcyB5b3Ugd2VyZSBidXJpZWQKaW4gZm9yIGV0ZXJuaXR5PyAKLSBXaHkgZG9lcyBhIHJvdW5kIHBpenphIGNvbWUgaW4gYSBzcXVhcmUgYm94PyAKLSBXaGF0IGRpc2Vhc2UgZGlkIGN1cmVkIGhhbSBhY3R1YWxseSBoYXZlPyAKLSBIb3cgaXMgaXQgdGhhdCB3ZSBwdXQgbWFuIG9uIHRoZSBtb29uIGJlZm9yZSB3ZSBmaWd1cmVkIG91dCBpdCB3b3VsZCBiZSBhCmdvb2QgaWRlYSB0byBwdXQgd2hlZWxzIG9uIGx1Z2dhZ2U/IAotIFdoeSBpcyBpdCB0aGF0IHBlb3BsZSBzYXkgdGhleSAic2xlcHQgbGlrZSBhIGJhYnkiIHdoZW4gYmFiaWVzIHdha2UgdXAgbGlrZQpldmVyeSB0d28gaG91cnM/IAotIElmIGEgZGVhZiBwZXJzb24gaGFzIHRvIGdvIHRvIGNvdXJ0LCBpcyBpdCBzdGlsbCBjYWxsZWQgYSBoZWFyaW5nPyAKLSBXaHkgYXJlIHlvdSBJTiBhIG1vdmllLCBidXQgeW91J3JlIE9OIFRWPyAKLSBXaHkgZG8gcGVvcGxlIHBheSB0byBnbyB1cCB0YWxsIGJ1aWxkaW5ncyBhbmQgdGhlbiBwdXQgbW9uZXkgaW4gYmlub2N1bGFycwp0byBsb29rIGF0IHRoaW5ncyBvbiB0aGUgZ3JvdW5kPyAKLSBXaHkgZG8gZG9jdG9ycyBsZWF2ZSB0aGUgcm9vbSB3aGlsZSB5b3UgY2hhbmdlPyBUaGV5J3JlIGdvaW5nIHRvIHNlZSB5b3UKbmFrZWQgYW55d2F5LiAKLSBXaHkgaXMgImJyYSIgc2luZ3VsYXIgYW5kICJwYW50aWVzIiBwbHVyYWw/IAotIFdoeSBkbyB0b2FzdGVycyBhbHdheXMgaGF2ZSBhIHNldHRpbmcgdGhhdCBidXJucyB0aGUgdG9hc3QgdG8gYSBob3JyaWJsZQpjcmlzcCwgd2hpY2ggbm8gZGVjZW50IGh1bWFuIGJlaW5nIHdvdWxkIGVhdD8gCi0gSWYgSmltbXkgY3JhY2tzIGNvcm4gYW5kIG5vIG9uZSBjYXJlcywgd2h5IGlzIHRoZXJlIGEgc3R1cGlkIHNvbmcgYWJvdXQgaGltPwotIENhbiBhIGhlYXJzZSBjYXJyeWluZyBhIGNvcnBzZSBkcml2ZSBpbiB0aGUgY2FycG9vbCBsYW5lPyAKLSBJZiB0aGUgcHJvZmVzc29yIG9uIEdpbGxpZ2FuJ3MgSXNsYW5kIGNhbiBtYWtlIGEgcmFkaW8gb3V0IG9mIGEgY29jb251dCwgd2h5CmNhbid0IGhlIGZpeCBhIGhvbGUgaW4gYSBib2F0PyAKLSBXaHkgZG8gcGVvcGxlIHBvaW50IHRvIHRoZWlyIHdyaXN0IHdoZW4gYXNraW5nIGZvciB0aGUgdGltZSwgYnV0IGRvbid0IHBvaW50CnRvIHRoZWlyIGNyb3RjaCB3aGVuIGFza2luZyB3aGVyZSB0aGUgYmF0aHJvb20gaXM/IAotIFdoeSBkb2VzIEdvb2Z5IHN0YW5kIGVyZWN0IHdoaWxlIFBsdXRvIHJlbWFpbnMgb24gYWxsIGZvdXJzPyBUaGV5J3JlIGJvdGgKZG9ncyEgCi0gSWYgV3lsZSBFLiBDb3lvdGUgaGFkIGVub3VnaCBtb25leSB0byBidXkgYWxsIHRoYXQgQUNNRSBjcmFwLCB3aHkgZGlkbid0IGhlCmp1c3QgYnV5IGRpbm5lcj8gCi0gSWYgY29ybiBvaWwgaXMgbWFkZSBmcm9tIGNvcm4sIGFuZCB2ZWdldGFibGUgb2lsIGlzIG1hZGUgZnJvbSB2ZWdldGFibGVzLAp3aGF0IGlzIGJhYnkgb2lsIG1hZGUgZnJvbT8gCi0gSWYgZWxlY3RyaWNpdHkgY29tZXMgZnJvbSBlbGVjdHJvbnMsIGRvZXMgbW9yYWxpdHkgY29tZSBmcm9tIG1vcm9ucz8gCi0gRG8gdGhlIEFscGhhYmV0IHNvbmcgYW5kIFR3aW5rbGUsIFR3aW5rbGUgTGl0dGxlIFN0YXIgaGF2ZSB0aGUgc2FtZSB0dW5lPyAKLSBXaHkgZGlkIHlvdSBqdXN0IHRyeSBzaW5naW5nIHRoZSB0d28gc29uZ3MgYWJvdmU/IAotIFdoeSBkbyB0aGV5IGNhbGwgaXQgYW4gYXN0ZXJvaWQgd2hlbiBpdCdzIG91dHNpZGUgdGhlIGhlbWlzcGhlcmUsIGJ1dCBjYWxsCml0IGEgaGFlbW9ycmhvaWQgd2hlbiBpdCdzIGluIHlvdXIgYnV0dD8gCi0gRGlkIHlvdSBldmVyIG5vdGljZSB0aGF0IHdoZW4geW91IGJsb3cgaW4gYSBkb2cncyBmYWNlLCBoZSBnZXRzIG1hZCBhdCB5b3UsCmJ1dCB3aGVuIHlvdSB0YWtlIGhpbSBmb3IgYSBjYXIgcmlkZTsgaGUgc3RpY2tzIGhpcyBoZWFkIG91dCB0aGUgd2luZG93PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZWluIGtsYXNzaWtlci4uLi4uIChOaWNvbGFpLCAxMC4gRmViIDIwMDYsIDIyOjIwOjI1KToKCkRpZSBMZWljaGUgSGVsaXggUG9tYXRhcy4gKDIpICAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgoyNSB3YWhyZSBaZWljaGVuLCBkYXNzIER1IGVyd2FjaHNlbiBiaXN0IChBbnRoZWEsIDIxLiBGZWIgMjAwNiwgMTA6NDE6MjkpOgoxLiBBbGwgRGVpbmUgSGF1c3BmbGFuemVuIGxlYmVuIHVuZCBtYW4ga2FubiBrZWluZSByYXVjaGVuLgoKMi4gU2V4IGluIGVpbmVtIHNjaG1hbGVuIEJldHQga29tbXQgbmljaHQgaW4gRnJhZ2UuCgozLiBEdSBoYXN0IG1laHIgRXNzZW4gYWxzIEJpZXIgaW0gS3VlaGxzY2hyYW5rLgoKNC4gVW0gNjowMCBVaHIgc3RlaHN0IER1IGF1ZiB1bmQgZ2Voc3QgbmljaHQgenUgQmV0dC4KCjUuIER1IGhvZXJzdCBEZWluIExpZWJsaW5nc2xpZWQgaW4gZWluZW0gQXVmenVnLgoKNi4gRHUgYWNodGVzdCBhdWYgZGllIFdldHRlcnZvcmhlcnNhZ2UuCgo3LiBEZWluZSBGcmV1bmRlIGhlaXJhdGVuIHVuZCBsYXNzZW4gc2ljaCBzY2hlaWRlbi4KLi4uIGFuc3RlbGxlIHZvbiAiQWJlbnRldWVybiIgdW5kICJTY2hsdXNzIG1hY2hlbiIgenUgcmVkZW4uCgo4LiBEdSBoYXN0IHdlbmlnZXIgYWxzIDEzMCBGZXJpZW50YWdlLgoKOS4gSmVhbnMgdW5kIGVpbiBQdWxsaSBxdWFsaWZpemllcmVuIG5pY2h0IG1laHIgYWxzICJzY2hpY2sgYW5nZXpvZ2VuLiIKCjEwLiBEdSBydWZzdCBkaWUgUG9saXplaSwgd2VpbCBkaWVzZSBLaW5kZXIgaWhyZSBNdXNpayBuaWNodCBsZWlzZSBtYWNoZW4Kd29sbGVuLgoKMTEuIEFlbHRlcmUgVmVyd2FuZHRlIGZhbmdlbiBhbiwgZHJlY2tpZ2UgV2l0emUgYXVjaCBpbiBEZWluZXIgR2VnZW53YXJ0IHp1CmVyemFlaGxlbi4KCjEyLiBEdSB3ZWlzc3QgbmljaHQsIHdhbm4gTWNEb25hbGRzIHp1IG1hY2h0LgoKMTMuIERlaW5lIEF1dG92ZXJzaWNoZXJ1bmcgZ2VodCBydW50ZXIsIGRlaW5lIEF1dG9yYXRlbiBob2NoLgoKMTQuIER1IGZ1ZXR0ZXJzdCBEZWluZW4gSHVuZCBtaXQgSHVuZGVmdXR0ZXIsIHVuZCBuaWNodCBtZWhyIG1pdApVZWJlcmJsZWlic2VsbiBkZXIgbGV0enRlbiBQaXp6YSBvZGVyIE1jRG9uYWxkcy4KCjE1LiBWb20gYXVmIGRlciBDb3VjaCBzY2hsYWZlbiBrcmllZ3N0IER1IFJ1ZWNrZW5zY2htZXJ6ZW4uCgoxNi4gRHUgbWFjaHN0IE5pY2tlcmNoZW4uCgoxNy4gRXNzZW4gZ2VoZW4gdW5kIEtpbm8gaXN0IGRpZSBnYW56ZSBWZXJhYnJlZHVuZywgbmljaHQgZXJzdCBkZXIgQW5mYW5nLgoKMTguIFVtIDMgVWhyIG1vcmdlbnMgZnJpdHRpZXJ0ZSBTYWNoZW4genUgZXNzZW4gd3VlcmRlIERpciBNYWdlbnByb2JsZW1lCmdlYmVuLCBuaWNodCBzaWUgbG9lc2VuLgoKMTkuIER1IGthdWZzdCBBc3BpcmluIHVuZCBSZW5uaWUgaW4gZGVyIEFwb3RoZWtlLCBuaWNodCBTY2h3YW5nZXJzY2hhZnRzdGVzdHMKdW5kIEtvbmRvbWUuCgoyMC4gRWluZSBGbGFzY2hlIFdlaW4gZnVlciAxLDUgRVVSIGlzdCBrZWluICJ6aWVtbGljaCBndXRlcyBaZXVnIiBtZWhyLgoKMjEuIER1IGlzc3QgRnJ1ZWhzdHVlY2tzemV1ZyB6dW0gRnJ1ZWhzdHVlY2suCgoyMi4gIkljaCBrYW5uIG5pY2h0IG1laHIgc28gdHJpbmtlbiB3aWUgZGFtYWxzIiBlcnNldHp0ICJJY2ggdHJpbmtlIG5pZSB3aWVkZXIKc28gdmllbC4iCgoyMy4gOTAgJSBkZXIgWmVpdCwgZGllIER1IHZvciBkZW0gQ29tcHV0ZXIgdmVyYnJpbmdzdCwgaXN0IGZ1ZXIgRGVpbmUgQXJiZWl0LgoKMjQuIER1IHRyaW5rc3QgbmljaHQgbWVociB6dSBIYXVzZSwgdW0gR2VsZCB6dSBzcGFyZW4sIGJldm9yIER1IGF1c2dlaHN0LgoKMjUuIFdlbm4gRHUgaG9lcnN0LCBkYXNzIGVpbmUgRGVpbmVyIEJla2FubnRlbiBzY2h3YW5nZXIgaXN0LCBncmF0dWxpZXJzdCBEdQp1bmQgc2Fnc3QgbmljaHQgIk9oIHdpZSBpc3QgZGFzIGRlbm4gcGFzc2llcnQ/IgoKQm9udXM6CjI2LiBEdSBsaWVzdCBkaWVzZXMgZ2FuemUgUG9zdGluZyB1bmQgc3VjaHN0IHZlcnp3ZWlmZWx0IG5hY2ggZWluZW0gUHVua3QsCmRhc3MgRHUgTklDSFQgc28gYmlzdCB1bmQga2FubnN0IGtlaW5lbiBmaW5kZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogMjUgd2FocmUgWmVpY2hlbiwgZGFzcyBEdSBlcndhY2hzZW4gYmlzdCAoQ2Fzc2FuZHJhLCAyMS4gRmViIDIwMDYsIDEwOjU0OjAwKToKfiMhIHJuPUFudGhlYSBydD0xMTQwNTE0ODg5IHJnPXdpdHplCn4jISB0aWQ9MTE0MDUxNDg4OQpDb29sCgpJY2ggYmluIG5vY2ggbmljaHQgRXJ3YWNoc2VuIDstKQpBYmVyIGlyZ2VuZHdpZSB2ZXJtdXRlIGljaCBkYXMgZGllIHp1dHJlZmZlbmRlbiBQdW5rdGUgYXVjaCB2b3IgMTAgamFocmVuCnp1dHJhZmVuLgoKQ2Fzc3kKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAyNSB3YWhyZSBaZWljaGVuLCBkYXNzIER1IGVyd2FjaHNlbiBiaXN0IChWZWN0b3IsIDIxLiBGZWIgMjAwNiwgMTA6NTU6MjYpOgp+IyEgcm49QW50aGVhIHJ0PTExNDA1MTQ4ODkgcmc9d2l0emUKfiMhIHRpZD0xMTQwNTE0ODg5Cnp1IHB1bmt0IDE4IHdlcmRlIGljaCBtb3JnZW4gZnJ1ZWggZWluZW4gZmVsZHZlcnN1Y2ggc3RhcnRlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiAyNSB3YWhyZSBaZWljaGVuLCBkYXNzIER1IGVyd2FjaHNlbiBiaXN0IChCYW1iaSwgMjUuIEZlYiAyMDA2LCAwMDozMzoxNyk6Cn4jISBybj1WZWN0b3IgcnQ9MTE0MDUxNTcyNiByZz13aXR6ZQp+IyEgdGlkPTExNDA1MTQ4ODkKSWNoIHZlcnN0ZWhlIFB1bmt0IDQgbmljaHQuIEZydWVoZXIsIGFscyBpY2ggbm9jaCBTY2h1ZWxlciB3YXIsIHdhciA2IFVociBlaW5lCm5vcm1hbGUgQXVmc3RlaGVuc3plaXQuIEhldXR6dXRhZ2UsIHdvIGljaCBhcmJlaXRlICh1bmQgR2xlaXR6ZWl0IGhhYmUpLCBrYWVtZQptaXIgbmllIGluIGRlbiBTaW5uLCB1bSA2IFVociBtb3JnZW5zIGF1Znp1c3RlaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV3VybSBeXiAoTml6emwsICA1LiBNYXIgMjAwNiwgMTc6MDg6MzUpOgoKLi4uLi8vLy8vLy4uLi4uCi4uLi4obykobykuLi4uLgouLi4uLihfXykuLi4uLi4KLi4uLi4uKF8pLi4uLi4uIEd1ZWRlbiBEb2NoLAouLi4uLi4uKF8pLi4uLi4KLi4uLi4uKF8pLi4uLi4uCi4uLi4uLihfKS4uLi4uLiBpc2NoIGJpbiBlbiBIYWVnZ2EgYXVzIExlaWJ6c2NoLAouLi4uLihfKS4uLi4uLi4KLi4uLi4oXykuLi4uLi4uIHVuIGRpc3MgaXNzIGVuIHNlbGJzdGJyb2VncmFtbWlyZG9yCi4uLi4uLihfKS4uLi4uLgouLi4uLi4uKF8pLi4uLi4gYm9lc2FydHNjaGVyIEdvbWJqdWRlcndvcm0uCi4uLi4uLi4uKF8pLi4uLgouLi4uLi4uLihfKS4uLi4KLi4uLi4uLihfKS4uLi4uCi4uLi4uLi4oXykuLi4uLiBEYSBpc2NoIG5vY2ggbmV0IHNvZSB2aWVsIHdlZXNzIHZvbSBHb21ianVkZXIsCi4uLi4uLihfKS4uLi4uLgouLi4uLihfKS4uLi4uLi4gaXNzIGRlcyBlbiBtYW51ZWxsb3IgV29ybS4KLi4uLi4uKF8pLi4uLi4uCi4uLi4uLi4oXykuLi4uLgouLi4uLi4uLihfKS4uLi4gQWxzbyBsb2VzY2hlbiBTZSBiaWRkZQouLi4uLi4uLihfKS4uLi4KLi4uLi4uLihfKS4uLi4uIGFsbGUgRGFkZWllbiB2b24gb3IgRmVzdGJsYWRkZS4KLi4uLi4uKF8pLi4uLi4uCi4uLi4uKF8pLi4uLi4uLgouLi4uKF8pLi4uLi4uLi4KLi4uLi4uKF8pLi4uLi4uLiBVbmQgc2NoaWNrZW5zZSBkZW4gV29ybQouLi4uLihfKS4uLi4uLi4KLi4uLi4uLihfKS4uLi4uIGFuIGFsbGUsIGRpZSBzZSBnZW5uZW4uCi4uLi4uLi4uKF8pLi4uLgouLi4uLi4uLihfKS4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXdXJtIF5eIChab29rLCAgNS4gTWFyIDIwMDYsIDE3OjA5OjM1KToKfiMhIHJuPU5penpsIHJ0PTExNDE1NzQ5MTUgcmc9d2l0emUKfiMhIHRpZD0xMTQxNTc0OTE1ClByb2dyYW1taWVydWVidW5nIGVyc3RlcyBTZW1lc3Rlcj8gOykKClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFd1cm0gXl4gKFJ1bWF0YSwgIDYuIE1hciAyMDA2LCAwOToyNzozOCk6Cn4jISBybj1ab29rIHJ0PTExNDE1NzQ5NzUgcmc9d2l0emUKfiMhIHRpZD0xMTQxNTc0OTE1CkRhcyBfa29lbm50ZV8gbWFuIGF1Y2ggYWxzIEdvdHRlc2xhZXN0ZXJ1bmcgYXVzbGVnZW4uClJ1bWF0YSAoYXVzIExlaXpwaWcgOy0pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCdXNjaGlnIChBbnRoZWEsIDE2LiBNYXIgMjAwNiwgMTY6NDU6MzkpOgpHZW9yZ2UgVyBCdXNoIGhhcyBkZWNsYXJlZCB3YXIgb24gYmlyZGZsdSEgVGhlIFVTIGhhcyBkZWNsYXJlZCB3YXIgb24gVHVya2V5CmFuZCB0aGUgQ2FuYXJ5IElzbGFuZC4gQWxsIHdlbnQgd2VsbCB0aWxsIGhlIGhlYXJkIG9mIEJpcmRzdmlsbGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQnVzY2hpZyAoWm9vaywgMTYuIE1hciAyMDA2LCAxNjo0OToxOSk6Cn4jISBybj1BbnRoZWEgcnQ9MTE0MjUyMzkzOSByZz13aXR6ZQp+IyEgdGlkPTExNDI1MjM5MzkKaWNoIGZpbmRlLCBkYXJ1ZWJlciBzb2xsdGUgbWFuIGtlaW5lIHdpdHplIG1hY2hlbi4uLi4gc29sYW5nZSBkaWUgZ2VmYWhyCmJlc3RlaHQsIGRhc3MgZXMgdGF0c2FlY2hsaWNoIHBhc3NpZXJ0IDspCgp6b29rLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmFjaGdlc2NoYWVmdCAoUmVxdWllbSwgMzEuIE1hciAyMDA2LCAxNTozNDoyNSk6CldpY2h0aWdlIE5ldWlna2VpdDogRmFjaGdlc2NoYWVmdGUgZnVlciBFaGVtYWVubmVyIHVuZCBFaGVmcmF1ZW4hISEgRGFzIHdhcgpub2NoIG5pZSBkYSEhCgoKSW4gV2llc2JhZGVuLCBNYWlueiB1bmQgTGltYnVyZyBoYWJlbiBrdWVyemxpY2ggRmFjaGdlc2NoYWVmdGUgZnVlciBFaGVtYWVubmVyCmVyb2VmZm5ldCwgaW4gZGVtIHNpY2ggRnJhdWVuIG5ldWUgRWhlbWFlbm5lciBhdXNzdWNoZW4ga29lbm5lbi4gQW0gRWluZ2FuZwpoYWVuZ3QgZWluZSBBbmxlaXR1bmcsIGRpZSBkaWUgUmVnZWxuIGVya2xhZXJ0LCBuYWNoIGRlbmVuIGhpZXIgZWluZ2VrYXVmdAp3ZXJkZW4ga2FubjogRGFzIEdlc2NoYWVmdCBkYXJmIG51ciBlaW5tYWwgYXVmZ2VzdWNodCB3ZXJkZW4uIEVzIGdpYnQgNgpTdG9ja3dlcmtlIG1pdCBNYWVubmVybiwgZGVyZW4gRWlnZW5zY2hhZnRlbiB2b24gU3RvY2sgenUgU3RvY2sgYmVzc2VyIHdlcmRlbi4KRW50d2VkZXIgU2llIHN1Y2hlbiBzaWNoIGVpbmVuIE1hbm4gYXVzIGRlbSBTdG9ja3dlcmsgYXVzLCBhdWYgZGVtIFNpZSBzaWNoCmdlcmFkZSBiZWZpbmRlbiwgb2RlciBTaWUgZ2VoZW4gZWluIFN0b2Nrd2VyayB3ZWl0ZXIuIE5hY2hkZW0gU2llIGVpbnMgd2VpdGVyCmdlZ2FuZ2VuIHNpbmQsIGtvZW5uZW4gU2llIGplZG9jaCBuaWNodCB3aWVkZXIgenVydWVjay4KCkVpbmUgaW50ZXJlc3NpZXJ0ZSBGcmF1IGJldHJpdHQgZGFzIEdlc2NoYWVmdC4gU2llIGxpZXN0IGRhcyBTY2hpbGQgaW0KMS5TdG9jazogRGllc2UgTWFlbm5lciBoYWJlbiBBcmJlaXQsIGltIDIuIFN0b2NrIHN0ZWh0OiBEaWVzZSBNYWVubmVyIGhhYmVuCkFyYmVpdCB1bmQgbW9lZ2VuIEtpbmRlci4gSW0gMy4gU3RvY2sgbGllc3Qgc2llOiBEaWVzZSBNYWVubmVyIGhhYmVuIEFyYmVpdCwKbW9lZ2VuIEtpbmRlciB1bmQgc2VoZW4gZ3V0IGF1cy4gV293LCBkZW5rdCBkaWUgRnJhdSwgZ2VodCBhYmVyIGRlbm5vY2gKd2VpdGVyLiBJbSA0LlN0b2NrIHN0ZWh0OiBEaWVzZSBNYWVubmVyIGhhYmVuIEFyYmVpdCwgbW9lZ2VuIEtpbmRlciwgc2VoZW4KdmVyZGFtbXQgZ3V0IGF1cyB1bmQgaGVsZmVuIGltIEhhdXNoYWx0LiBNZWluIEdvdHQsIGljaCBrYW5uIGthdW0gd2lkZXJzdGVoZW4sCmRlbmt0IHNpZSBzaWNoLCBnZWh0IGFiZXIgdHJvdHpkZW0gd2VpdGVyLiBJbSA1LiBTdG9jayBzdGVodCB6dSBsZXNlbjogRGllc2UKTWFlbm5lciBoYWJlbiBBcmJlaXQsIG1vZWdlbiBLaW5kZXIsIHNlaGVuIHZlcmRhbW10IGd1dCBhdXMsIGhlbGZlbiBpbQpIYXVzaGFsdCB1bmQgaGFiZW4gZWluZSByb21hbnRpc2NoZSBBZGVyLiBTaWUgaXN0IG5haGUgZHJhbiB6dSBibGVpYmVuLCBnZWh0CmFiZXIgZGFubiBkb2NoIHp1bSA2LiBTdG9jayB3ZWl0ZXIuIEF1ZiBkZW0gU2NoaWxkIHN0ZWh0OiBTaWUgc2luZCBkaWUKQmVzdWNoZXJpbiBOdW1tZXIgMzEuNDU2LjAxMi4gSGllciBnaWJ0IGVzIGtlaW5lIE1hZW5uZXIsIGRhcyBTdG9ja3dlcmsKZXhpc3RpZXJ0IG51ciB1bSB6dSB6ZWlnZW4sIGRhc3MgZXMgdW5tb2VnbGljaCBpc3QsIEZyYXVlbiB6dWZyaWVkZW4genUKc3RlbGxlbi4gVmllbGVuIERhbmsgZnVlciBJaHIgSW50ZXJlc3NlIGFuIHVuc2VyZW0gRmFjaGdlc2NoYWVmdC4KCkdlbmF1IGdlZ2VudWViZXIgaGF0IGVpbiBGYWNoZ2VzY2hhZWZ0IGZ1ZXIgRWhlZnJhdWVuIGVyb2VmZm5ldC4gRXMgaGF0CmViZW5mYWxscyA2IFN0b2Nrd2Vya2UuIEltIDEuIFN0b2NrIGdpYnQgZXMgRnJhdWVuLCBkaWUgU2V4IGxpZWJlbi4gSW0gMi5TdG9jawpnaWJ0IGVzIEZyYXVlbiwgZGllIFNleCBsaWViZW4gdW5kIEdlbGQgaGFiZW4uIERlciAzLi02LlN0b2NrIHd1cmRlIG5vY2ggbmllCnZvbiBlaW5lbSBNYW5uIGJlc3VjaHQuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZhY2hnZXNjaGFlZnQgKEtlbGx5YnVuZHksIDMxLiBNYXIgMjAwNiwgMTk6MDE6NDkpOgp+IyEgcm49UmVxdWllbSBydD0xMTQzODEyMDY1IHJnPXdpdHplCn4jISB0aWQ9MTE0MzgxMjA2NQpBbHQgYWJlciBndXQ6CgpNZWluZSBUcmF1bWZyYXUgaXN0IDk3IEphaHJlIGFsdCwgc2Nod2VyIGtyYW5rIHVuZCBzdGVpbnJlaWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGF1ZmVuZGUgRmFyYmVuIChBbnRoZWEsIDE4LiBBcHIgMjAwNiwgMTQ6MzE6MjgpOgpBIEJsYWNrIG1hbiBnb2VzIGludG8gdGhlIGRvY3RvcnMgYW5kIHNheXMgaGUgY2FuJ3Qgc3RvcCBqb2dnaW5nLiBUaGUgZG9jdG9yCnB1dHMgMiBsaW5lcyBvZiB3aGl0ZSBwb3dkZXIgb24gaGlzIGRlc2sgYW5kIHRlbGxzIGhpbSB0byBzbm9ydCB0aGVtLiBUaGlzIGhlCmRvZXMgYW5kIGhlIGltbWVkaWF0ZWx5IHN0b3BzLiAiRnVjayBtYW4gLSBpcyB0aGF0IGNvY2FpbmU/IiBzYXlzIHRoZSBibGFjawptYW4uICJObyIgcmVwbGllcyB0aGUgZG9jdG9yLCAiSXQncyBPbW8gLSBndWFyYW50ZWVkIHRvIHN0b3AgY29sb3VycyBmcm9tCnJ1bm5pbmchIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlc2Nod2luZGlna2VpdHNyYXVzY2ggKEdyaW1tYm9ybiwgMTguIEFwciAyMDA2LCAxNDozNDozOCk6CldhcyBzYWd0IGVpbmUgU2NobmVja2UsIGRpZSBhdWYgZWluZXIgU2NoaWxka3JvZXRlIHNpdHp0PwoiSHV1aWlpaSEiCgpHZEEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJld2Vpc2UgKEFudGhlYSwgMTguIEFwciAyMDA2LCAxNDo0MzoxOCk6CkJob2xhIGdlaHQgaW5zIEdlc2NoYWVmdCB1bmQgc2llaHQgS2F0emVuZnV0dGVyIGltIEFuZ2Vib3QuIEVyIG5pbW10IGVpbgpEdXR6ZW5kIERvc2VuIHVuZCBnZWh0IHp1ciBLYXNzZS4gRGVyIEdlc2NoYWVmdHNmdWVocmVyIHNpZWh0IGRhcyB1bmQgd2lyZApza2VwdGlzY2g6IEJob2xhIHNpZWh0IGZ1ZXIgaWhuIG5pY2h0IGF1cyB3aWUgamVtYW5kLCBkZXIgZWluZSBLYXR6ZSBoYXQuIFVuZAplciB2ZXJtdXRldCwgZGFzcyBlciBkYXMgS2F0emVuZnV0dGVyIHZpZWxsZWljaHQgc2VpbmVuIEtpbmRlcm4genUgZXNzZW4gZ2ViZW4Kd2lsbC4gQWxzbyBmcmFndCBlciBCaG9sYSwgb2IgZGVyIGlobSBuaWNodCBlcnN0IG1hbCBzZWluZSBLYXR6ZSB6ZWlnZW4ga2Fubi4KQWxzbyBnZWh0IEJob2xhIG5hY2ggSGF1c2UsIGJyaW5ndCBzZWluZSBLYXR6ZSBtaXQsIHVuZCBkZXIgR2VzY2hhZWZ0c2Z1ZWhyZXIKdmVya2F1ZnQgaWhtIGJlcnVoaWd0IGRhcyBLYXR6ZW5mdXR0ZXIuCgpJbiBkZXIgbmFlY2hzdGVuIFdvY2hlIHNpZWh0IEJob2xhLCBkYXNzIGluIGRlbSBHZXNjaGFlZnQgSHVuZGVmdXR0ZXIgaW0KQW5nZWJvdCBpc3QuIFVuZCBlciB3aWxsIGVpbiBEdXR6ZW5kIEh1bmRlZnV0dGVyZG9zZW4ga2F1ZmVuLiBEZXIKR2VzY2hhZWZ0c2Z1ZWhyZXIgZGVua3QsIGRhc3MgQmhvbGEgYmVzdGltbXQgbmljaHQgbm9jaCBlaW5lbiBIdW5kIGhhdCwgdW5kCmZyYWd0IGlobiwgb2IgZXIgZXJzdCBlaW5tYWwgYmV3ZWlzZW4ga2FubiwgZGFzcyBlciBhdWNoIGVpbmVuIEh1bmQgaGF0LiBBbHNvCmdlaHQgQmhvbGEgYnJhdiBoZWltLCBob2x0IHNlaW5lbiBIdW5kLCB1bmQgZGFyZiBzZWluIEthdHplbmZ1dHRlciBrYXVmZW4uCgpJbiBkZXIgbmFlY2hzdGVuIFdvY2hlIGtvbW10IEJob2xhIG1pdCBlaW5lciBUdWV0ZSBpbnMgR2VzY2hhZWZ0LCBnZWh0IGRpcmVrdAp6dW0gR2VzY2hhZWZ0c2Z1ZWhyZXIsIHVuZCBmb3JkZXJ0IGlobiBhdWYsIGluIGRpZSBUdWV0ZSBoaW5laW56dWZhc3Nlbi4gRGVyCnR1dCBkYXMgYXVjaCwgdW5kIHJ1ZnQgZGFubjogIkloLCB3YXMgaXN0IGRlbm4gZGFzPyBEYXMgaXN0IGphIFNjaGVpc3NlISIKIkdlbmF1LCIgc2FndCBCaG9sYSwgInVuZCBpY2ggbW9lY2h0ZSBoZXV0ZSBnZXJuZSBLbG9wYXBpZXIga2F1ZmVuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkV2b2x1dGlvbnN0aGVvcmllbiAoQW50aGVhLCAyMC4gQXByIDIwMDYsIDEzOjM1OjMzKToKRWluIDMtamFlaHJpZ2VyIEp1bmdlIHNjaGF1dCBzaWNoIGJlaW0gYmFkZW4gZ2FueiBmYXN6aW5pZXJ0IHNlaW4KR2VzY2hsZWNodHN0ZWlsIGFuLgoKRGFubiBmcmFndCBlciBzZWluZSBNdXR0ZXI6ICJNYW1hLCBpc3QgZGFzIG1laW4gR2VoaXJuPyIKCiJOZWluLCBOT0NIIG5pY2h0Li4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVWx0aW1hdGl2ZSBMb2VzdW5nIChBbnRoZWEsIDIxLiBBcHIgMjAwNiwgMDk6MTk6NDcpOgpCcml0aXNjaGUgV2lzc2Vuc2NoYWZ0bGVyIGhhYmVuIENvbXB1dGVyY2hpcHMgZW50d2lja2VsdCwgZGllIE11c2lrIGluIGRlbgpCcnVzdGltcGxhbnRhdGVuIHZvbiBGcmF1ZW4gc3BlaWNoZXJuIGtvZW5uZW4sIGRhIGRpZSBGcmF1ZW4gc2ljaCBqYSBpbW1lcgpiZXNjaHdlcmVuLCBkYXNzIGRpZSBNYWVubmVyIG51ciBhdWYgZGllIEJydWVzdGUgc3RhcnJlbiwgb2huZSBpaG5lbgp6dXp1aG9lcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRVUgRmlyc3QgTGFuZ3VhZ2UgKEJhbWJ1bGtvLCAgOC4gTWFpIDIwMDYsIDExOjA4OjUwKToKVGhlIEV1cm9wZWFuIENvbW1pc3Npb24gaGFzIGp1c3QgYW5ub3VuY2VkIGFuIGFncmVlbWVudCB3aGVyZWJ5IEVuZ2xpc2gKd2lsbCBiZSB0aGUgb2ZmaWNpYWwgbGFuZ3VhZ2Ugb2YgdGhlIEV1cm9wZWFuIFVuaW9uIHJhdGhlciB0aGFuIEdlcm1hbiwKd2hpY2ggd2FzIHRoZSBvdGhlciBwb3NzaWJpbGl0eS4KCkFzIHBhcnQgb2YgdGhlIG5lZ290aWF0aW9ucywgdGhlIEJyaXRpc2ggR292ZXJubWVudCBjb25jZWRlZCB0aGF0CkVuZ2xpc2ggc3BlbGxpbmcgaGFkIHNvbWUgcm9vbSBmb3IgaW1wcm92ZW1lbnQgYW5kIGhhcyBhY2NlcHRlZCBhIDUteWVhcgpwaGFzZS1pbiBwbGFuIHRoYXQgd291bGQgYmVjb21lIGtub3duIGFzICJFdXJvLUVuZ2xpc2giLgoKSW4gdGhlIGZpcnN0IHllYXIsICJzIiB3aWxsIHJlcGxhY2UgdGhlIHNvZnQgImMiLiBTZXJ0YWlubHksIHRoaXMgd2lsbAptYWtlIHRoZSBzaXZpbCBzZXJ2YW50cyBqdW1wIHdpdGggam95LgoKVGhlIGhhcmQgImMiIHdpbGwgYmUgZHJvcHBlZCBpbiBmYXZvdXIgb2YKCiJrIi4gVGhpcyBzaG91bGQga2xlYXIgdXAga29uZnVzaW9uLCBhbmQga2V5Ym9hcmRzIGthbiBoYXZlIG9uZSBsZXNzCmxldHRlci4KClRoZXJlIHdpbGwgYmUgZ3Jvd2luZyBwdWJsaWsgZW50aHVzaWFzbSBpbiB0aGUgc2Vrb25kIHllYXIgd2hlbiB0aGUKdHJvdWJsZXNvbWUgInBoIiB3aWxsIGJlIHJlcGxhY2VkIHdpdGggImYiLiBUaGlzIHdpbGwgbWFrZSB3b3JkcyBsaWtlCmZvdG9ncmFmIDIwJSBzaG9ydGVyLgoKSW4gdGhlIDNyZCB5ZWFyLCBwdWJsaWsgYWtzZXB0YW5zZSBvZiB0aGUgbmV3IHNwZWxsaW5nIGthbiBiZSBleHBla3RlZAp0byByZWFjaCB0aGUgc3RhZ2Ugd2hlcmUgbW9yZSBrb21wbGlrYXRlZCBjaGFuZ2VzIGFyZSBwb3NzaWJsZS4KCkdvdmVybm1lbnRzIHdpbGwgZW5rb3VyYWdlIHRoZSByZW1vdmFsIG9mIGRvdWJsZSBsZXR0ZXJzIHdoaWNoIGhhdmUKYWx3YXlzIGJlbiBhIGRldGVyZW50IHRvIGFrdXJhdGUgc3BlbGluZy4gQWxzbywgYWwgd2lsIGFncmUgdGhhdCB0aGUKaG9yaWJsIG1lcyBvZiB0aGUgc2lsZW50ICJlIiBpbiB0aGUgbGFuZ3VhZyBpcyBkaXNncmFzZnVsIGFuZCBpdCBzaG91bGQKZ28gYXdheS4KCkJ5IHRoZSA0dGggeWVyLCBwZW9wbGUgd2lsIGJlIHJlc2VwdGl2IHRvIHN0ZXBzIHN1Y2ggYXMgcmVwbGFzaW5nICJ0aCIKd2l0aCAieiIgYW5kICJ3IiB3aXRoICJ2Ii4KCkR1cmluZyB6ZSBmaWZ6IHllciwgemUgdW5lc2VzYXJ5ICJvIiBrYW4gYmUgZHJvcGQgZnJvbQoKdm9yZHMga29udGFpbmluZyAib3UiIGFuZCBhZnRlciB6aXogZmlmeiB5ZXIsIHZlIHZpbCBoYXYgYSByZWlsIHNlbnNpYmwKcml0ZW4gc3R5bC4KClplciB2aWwgYmUgbm8gbW9yIHRydWJsIG9yIGRpZmlrdWx0aXMgYW5kIGV2cml2dW4gdmlsIGZpbmQgaXQgZXppIHR1CnVuZGVyc3RhbmQgZWNoIG96YS4KClplIGRyZW0gb2YgYSB1bml0ZWQgdXJvcCB2aWwgZmluYWxpIGt1bSB0cnUuCgpVbmQgZWZ0ZXIgemUgZmlmeiB5ZXIsIHZlIHZpbCBhbCBiZSBzcGVraW5nIEdlcm1hbiBsaWtlIHpleSB2dW50ZWQgaW4gemUKZm9yc3QgcGxhcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBFVSBGaXJzdCBMYW5ndWFnZSAoTW9udGFudXMsICA4LiBNYWkgMjAwNiwgMTc6NDE6NDcpOgp+IyEgcm49QmFtYnVsa28gcnQ9MTE0NzA3OTMzMCByZz13aXR6ZQp+IyEgdGlkPTExNDcwNzkzMzAKSWNoIGdsYXViZSwgaW0gSW50ZXJuZXQgc2luZCBzaWUgaWhyZXIgWmVpdCBtYWwgd2llZGVyIDMtNCBKYWhyIHZvcmF1cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vIEZlYXIgKEJhbWJ1bGtvLCAxMC4gTWFpIDIwMDYsIDEyOjEyOjQ0KToKU3VkZGVubHksIFNhdGFuIGFwcGVhcmVkIGF0IHRoZSBmcm9udCBvZiB0aGUgY2h1cmNoLiBFdmVyeW9uZSBzdGFydGVkIApzY3JlYW1pbmcgYW5kIHJ1bm5pbmcgZm9yIHRoZSBmcm9udCBlbnRyYW5jZSwgdHJhbXBsaW5nIGVhY2ggb3RoZXIgaW4gYSAKZnJhbnRpYyBlZmZvcnQgdG8gZ2V0IGF3YXkgZnJvbSBldmlsIGluY2FybmF0ZS4gU29vbiB0aGUgY2h1cmNoIHdhcwplbXB0eSAKZXhjZXB0IGZvciBvbmUgZWxkZXJseSBnZW50bGVtYW4gd2hvIHNhdCBjYWxtbHkgaW4gaGlzIHBldyB3aXRob3V0Cm1vdmluZywgCnNlZW1pbmdseSBvYmxpdmlvdXMgdG8gdGhlIGZhY3QgdGhhdCBHb2QncyB1bHRpbWF0ZSBlbmVteSB3YXMgaW4gaGlzIApwcmVzZW5jZS4gCgpTbyBTYXRhbiB3YWxrZWQgdXAgdG8gdGhlIG1hbiBhbmQgc2FpZCwgIkRvIHlvdSBrbm93IHdobyBJIGFtPyIgCgpUaGUgbWFuIHJlcGxpZWQsICJZZXAsIHN1cmUgZG8iLiAKCiJBcmVuJ3QgeW91IGFmcmFpZCBvZiBtZT8iIFNhdGFuIGFza2VkLiAKCiJOb3BlLCBzdXJlIGFpbid0IiBzYWlkIHRoZSBtYW4uIAoKIkRvbid0IHlvdSByZWFsaXNlIEkgY2FuIGtpbGwgeW91IHdpdGggb25lIHdvcmQ/IiBhc2tlZCBTYXRhbi4gCgoiRG9uJ3QgZG91YnQgaXQgZm9yIGEgbWludXRlLCIgcmV0dXJuZWQgdGhlIG9sZCBtYW4sIGluIGFuIGV2ZW4gdG9uZS4gCgoiRGlkIHlvdSBrbm93IHRoYXQgSSBjYW4gY2F1c2UgeW91IHByb2ZvdW5kLCBob3JyaWZ5aW5nIEFHT05ZIGZvciBhbGwgCmV0ZXJuaXR5PyIgcGVyc2lzdGVkIFNhdGFuLiAKCiJZZXAsIiB3YXMgdGhlIGNhbG0gcmVwbHkuIAoKIkFuZCB5b3UncmUgc3RpbGwgbm90IGFmcmFpZD8iIGFza2VkIFNhdGFuLiAKCiJOb3BlIiBzYWlkIHRoZSBvbGQgbWFuLiAKCk1vcmUgdGhhbiBhIGxpdHRsZSBwZXJ0dXJiZWQsIFNhdGFuIGFza2VkLCAiV2h5IGFyZW4ndCB5b3UgYWZyYWlkIG9mCm1lPyIgCgpUaGUgbWFuIGNhbG1seSByZXBsaWVkLCAiQmVlbiBtYXJyaWVkIHRvIHlvdXIgc2lzdGVyIGZvciA0OCB5ZWFycy4iIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKaG9lbGxpc2NoIC4uLiAoU2VsZXZlbiwgMTkuIE1haSAyMDA2LCAxMzowNjowNSk6CkltIEZvbGdlbmRlbiBlaW5lIHdpcmtsaWNoIGdlc3RlbGx0ZSBGcmFnZSBpbSBBYnNjaGx1c3N0ZXN0IENoZW1pZSBkZXIgTlVJCk1heW5vb3RoIChHcmFmc2NoYWZ0IEtpbGRhcmUsIElybGFuZCkuIERpZSBBbnR3b3J0IGVpbmVzIFN0dWRlbnRlbiB3YXIgc28KInRpZWZzY2h1ZXJmZW5kIiwgZGFzcyBkZXIgIFByb2Zlc3NvciBzaWUgc2VpbmVuIEtvbGxlZ2VuIG5pY2h0IHZvcmVudGhhbHRlbgp3b2xsdGUgdW5kIHVlYmVyIGRhcyBJbnRlcm5ldCB2ZXJicmVpdGV0ZSwgd2VzaGFsYiB3aXIgdW5zIG51biBlYmVuZmFsbHMKZGFydWViZXIgYW11ZXNpZXJlbiBkdWVyZmVuLiAKCkJvbnVzZnJhZ2U6IElzdCBkaWUgSG9lbGxlIGV4b3RoZXJtIChnaWJ0IFdhZXJtZSBhYikgb2RlciBlbmRvdGhlcm0KKGFic29yYmllcnQgV2Flcm1lKT8KCkRpZSBtZWlzdGVuIFN0dWRlbnRlbiBtdXRtYXNzdGVuIG1pdCBIaWxmZSB2b24gQm95bGVzIEdlc2V0eiwgZGFzcyBzaWNoIEdhcwpiZWltIEF1c2RlaG5lbiBhYmt1ZWhsdCB1bmQgZGllIFRlbXBlcmF0dXIgYmVpIERydWNrIHN0ZWlndCBvZGVyIGV0d2FzIGluIGRlcgpBcnQuCgpFaW4gU3R1ZGVudCBhbGxlcmRpbmdzIHNjaHJpZWIgZm9sZ2VuZGVzOiAKWnVlcnN0IG11ZXNzZW4gd2lyIGhlcmF1c2ZpbmRlbiwgd2llIHNlaHIgc2ljaCBkaWUgTWFzc2UgZGVyIEhvZWxsZSB1ZWJlciBkaWUKWmVpdCB2ZXJhZW5kZXJ0LiBEYXp1IGJlbm9ldGlndCBtYW4gZGllIFphaGwgZGVyIFNlZWxlbiwgZGllIGluIGRpZSBIb2VsbGUKd2FuZGVybiB1bmQgZGllIFphaGwgamVuZXIgU2VlbGVuLCBkaWUgZGllIEhvZWxsZSB2ZXJsYXNzZW4uIEljaCBiaW4gZGVyCk1laW51bmcsIGRhc3MgbWFuIG1pdCBlaW5pZ2VyIFNpY2hlcmhlaXQgYW5uZWhtZW4gZGFyZiwgZGFzcyBTZWVsZW4sIGRpZQplaW5tYWwgaW4gZGVyIEhvZWxsZSBzaW5kLCBzZWxiaWdlIG5pY2h0IG1laHIgdmVybGFzc2VuLiAgRGVzd2VnZW4gdmVybGFlc3N0CmtlaW5lIFNlZWxlIGRpZSBIb2VsbGUuIAoKQmV6dWVnbGljaCBkZXIgRnJhZ2UsIHdpZXZpZWxlIFNlZWxlbiBpbiBkaWUgSG9lbGxlIHdhbmRlcm4sIGtvZW5uZW4gdW5zIGRpZQpBbnNpY2h0ZW4gZGVyICB2aWVsZW4gUmVsaWdpb25lbiBBdWZzY2hsdXNzIGdlYmVuLCBkaWUgaW4gZGVyIGhldXRpZ2VuIFplaXQKZXhpc3RpZXJlbi4gQmVpIGRlbiBtZWlzdGVuIGRpZXNlciBSZWxpZ2lvbmVuIHdpcmQgZmVzdHp1c3RlbGxlbiBzZWluLCBkYXNzCm1hbiBpbiBkaWUgSG9lbGxlIHdhbmRlcnQsIHdlbm4gbWFuIGlobmVuIG5pY2h0IGFuZ2Vob2VydC4gRGEgZXMgbWVociBhbHMgbnVyCmVpbmUgZGllc2VyIEdsYXViZW5zYmVrZW5udG5pc3NlIGdpYnQgdW5kIHdlaWwgbWFuIG5pY2h0IG1laHIgYWxzIGVpbmVyClJlbGlnaW9uIGFuZ2Vob2VyZW4ga2Fubiwga2FubiBtYW4gZGF2b24gYXVzZ2VoZW4sIGRhc3MgYWxsZSBTZWVsZW4gaW4gZGllCkhvZWxsZSB3YW5kZXJuLiBBbmdlc2ljaHRzIGRlciBiZXN0ZWhlbmRlbiBHZWJ1cnRzLSB1bmQgVG9kZXNyYXRlbiBpc3QgenUKZXJ3YXJ0ZW4sIGRhc3MgZGllIFphaGwgZGVyIFNlZWxlbiBpbiBkZXIgSG9lbGxlIGV4cG9uZW50aWVsbCB3YWNoc2VuIHdpcmQuIAoKQmV0cmFjaHRlbiB3aXIgbnVuIGRpZSBGcmFnZSBkZXMgc2ljaCBhZW5kZXJuZGVuIFVtZmFuZ3MgZGVyIEhvZWxsZS4gRGEgbGF1dApCb3lsZXMgR2VzZXR6IHNpY2ggZGVyIFJhdW1pbmhhbHQgZGVyIEhvZWxsZSBwcm9wb3J0aW9uYWwgenVtIFdhY2hzZW4gZGVyClNlZWxlbmFuemFobCBhdXNkZWhuZW4gbXVzcywgZGFtaXQgVGVtcGVyYXR1ciB1bmQgRHJ1Y2sgaW4gZGVyIEhvZWxsZSBrb25zdGFudApibGVpYmVuLCBoYWJlbiB3aXIgendlaSBNb2VnbGljaGtlaXRlbi4gCgoxLlNvbGx0ZSBzaWNoIGRpZSBIb2VsbGUgbGFuZ3NhbWVyIGF1c2RlaG5lbiBhbHMgZGllIE1lbmdlIGhpbnp1a29tbWVuZGVyClNlZWxlbiwgd2lyZCBkaWUgVGVtcGVyYXR1ciB1bmQgZGVyIERydWNrIGluIGRlciBIb2VsbGUgc28gbGFuZ2Ugc3RlaWdlbiBiaXMKZGllIGdhbnplIEhvZWxsZSBhdXNlaW5hbmRlcmJyaWNodC4KMi5Tb2xsdGUgc2ljaCBkaWUgSG9lbGxlIHNjaG5lbGxlciBhdXNkZWhuZW4gYWxzIGRpZSBNZW5nZSBoaW56dWtvbW1lbmRlcgpTZWVsZW4sIGRhbm4gd2VyZGVuIFRlbXBlcmF0dXIgdW5kIERydWNrIGZhbGxlbiwgYmlzIGRpZSBIb2VsbGUgenVmcmllcnQuIAoKV2VsY2hlIGRlciBNb2VnbGljaGtlaXRlbiBpc3QgZXMgbnVuPyAKV2VubiB3aXIgU2FuZHJhcyBQcm9waGV6ZWlodW5nIG1pdGVpbmJlemllaGVuLCBkaWUgc2llIG1pciBnZWdlbnVlYmVyIGltCmVyc3RlbiBTdHVkaWVuamFociBnZWFldXNzZXJ0IGhhdCAtIG5hZW1saWNoLCBkYXNzIGVoZXIgZGllIEhvZWxsZSB6dWZyaWVydCwKYWxzIGRhc3Mgc2llIG1pdCBtaXIgc2NobGFmZSAgc293aWUgZGllIFRhdHNhY2hlLCBkYXNzIGljaCBnZXN0ZXJuIG1pdCBpaHIKZ2VzY2hsYWZlbiBoYWJlLCBrb21tdCBudXIgTW9lZ2xpY2hrZWl0IFp3ZWkgaW4gRnJhZ2UuCkRlc2hhbGIgYmluIGljaCB1ZWJlcnpldWd0LCBkYXNzIGRpZSBIb2VsbGUgZW5kb3RoZXJtIGlzdCB1bmQgYmVyZWl0cwp6dWdlZnJvcmVuIHNlaW4gbXVzcy4gIEF1cyBkZXIgVGhlc2UsIHdvbmFjaCBkaWUgSG9lbGxlIHp1Z2Vmcm9yZW4gaXN0LCBmb2xndCwKZGFzcyBrZWluZSB3ZWl0ZXJlbiBTZWVsZW4gZG9ydCBhdWZnZW5vbW1lbiB3ZXJkZW4ga29lbm5lbiB1bmQgc2llIGVybG9zY2hlbgppc3QgLi4uIHdvbWl0IG51ciBub2NoIGRlciBIaW1tZWwgdWVicmlnYmxlaWJ0IHVuZCBkaWUgRXhpc3RlbnogZWluZXMKZ29ldHRsaWNoZW4gV2VzZW5zIGJld2Vpc3QgLSB3YXMgd2llZGVydW0gZXJrbGFlcnQsIHdhcnVtIFNhbmRyYSBnZXN0ZXJuIEFiZW5kCmRpZSBnYW56ZSBaZWl0ICJPaCBtZWluIEdvdHQiIGdlc2NocmllbiBoYXQuIAoKRGllc2VyIFN0dWRlbnQgZXJoaWVsdCBhbHMgZWluemlnZXIgZWluZW4gRWluc2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGhvZWxsaXNjaCAuLi4gKE1pbmdvLCAxOS4gTWFpIDIwMDYsIDEzOjEzOjAyKToKfiMhIHJuPVNlbGV2ZW4gcnQ9MTE0ODAzNjc2NSByZz13aXR6ZQp+IyEgdGlkPTExNDgwMzY3NjUKUmVsYXRpdiBhbHRlIFVyYmFuIExlZ2VuZCAod2FzIGphIG5pY2h0IGluIEFicmVkZSBzdGVsbHQsIGRhc3MgZXMgbHVzdGlnIGlzdCkuCk1laHIgRGV0YWlscyBoaWVyOgoKaHR0cDovL3d3dy5zbm9wZXMuY29tL2NvbGxlZ2UvZXhhbS9oZWxsLmFzcAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmhyaHIgKFZlY3RvciwgMjkuIE1haSAyMDA2LCAxNToyODoxMCk6CgpGcmFnZTogV2llIGthbm4gZWluZSBGcmF1IDEyIE1hZW5uZXIgZ2xlaWNoemVpdGlnIGdsdWVja2xpY2ggbWFjaGVuPwoKQW50d29ydDogaHR0cDovL21pdGdsaWVkLmx5Y29zLmRlL3dhY2tlbjc3NzcvMTIuanBnCgpOdXIgYW5zY2hhdWVuLCB3ZW5uIG1hbiBoYXJ0IGltIG5laG1lbiBpc3QgdW5kIGRlciBDaGVmIG5pY2h0CmluIGRlciBOYWVoZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkphcGFucyBGYW5zIChCYW1idWxrbywgIDEuIEp1biAyMDA2LCAxNDowNDoxNSk6CkF1ZiBkZXIgQkJDIHdlYnNlaXRlIGdlZnVuZGVuOgoKRGlkIHlvdSBrbm93OiBEdXJpbmcgRnJhbmNlIDE5OTgsIHRoZSBzdGFkaXVtIGF1dGhvcml0aWVzIHdlcmUgYXN0b25pc2hlZCB0bwpmaW5kIHRoZSBKYXBhbiBmYW5zJyBzZWF0aW5nIGFyZWEgY2xlYW5lciBhZnRlciBhIGdhbWUgdGhhbiBiZWZvcmUuIE9uIHRoZQpmaW5hbCB3aGlzdGxlLCB0aGUgZmFucyBoYWQgcGlja2VkIHVwIGFsbCB0aGUgcnViYmlzaCB0aGV5IGNvdWxkIGZpbmQgYmVmb3JlCmRlcG9zaXRpbmcgaXQgaW4gdGhlIGJpbnMgYnkgdGhlIGV4aXQuIAoKQmFtYnVsa28KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKYXBhbnMgRmFucyAoWm9vaywgIDEuIEp1biAyMDA2LCAxNDowNzoxMyk6Cn4jISBybj1CYW1idWxrbyBydD0xMTQ5MTYzNDU1IHJnPXdpdHplCn4jISB0aWQ9MTE0OTE2MzQ1NQpEYXMgaGFiIGljaCBpbiBLb3JlYSBhdWNoIGF1ZiBvZWZmZW50bGljaGVuIFBsYWV0emVuIGVybGVidCwgZGFzcyBoaW50ZXJoZXIKYWxsZSBtaXQgTXVlbGx0dWV0ZW4gZGllIFNhY2hlbiB6dXNhbW1lbmdlcmFldW10IGhhYmVuLiBXZW5uIG1hbiBkYSB6dSBuYWgKZHJhbiBzdGFuZCwgaGF0dGUgbWFuIHBsb2V0emxpY2ggYXVjaCBlaW5lIFR1ZXRlIGluIGRlciBIYW5kIHVuZCBkdXJmdGUKbWl0c2FtbWVsbi4KClpvb2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBKYXBhbnMgRmFucyAoQWxib2luLCAgMS4gSnVuIDIwMDYsIDE1OjE5OjU3KToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTExNDkxNjM0NTUgcmc9d2l0emUKfiMhIHRpZD0xMTQ5MTYzNDU1CkljaCBoYWV0dGUgYXVjaCBnZXJuZSBnZXd1c3N0IHdhcnVtIGRhcyBpbiBSdWJyaWsgV2l0emUgc3RlaHQuCkFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzZWxla3RpdmVzIGhvZXJlbiAoR25vbWUsICAxLiBKdW4gMjAwNiwgMTU6MzI6MTYpOgpXYXJ1bSBNYWVubmVyIGRpZSBGcmF1ZW4gbmljaHQgdmVyc3RlaGVuOiBEaWUgRnJhdSBzYWd0OiAiTWl0IGVpbmVtIE1hbm4ga2FubgptYW4gbmljaHQgcmVkZW4uICJEZXIgTUFOTiBtZWludDoiRnJhdWVuIGRydWVja2VuIHNpY2ggbmljaHQga2xhciBnZW51ZyBhdXMhIgpCc3AuOiBXZW5uIGVpbmUgRnJhdSBzYWd0OiAiSG9lciBtYWwgenUhIERhcyBoaWVyIGlzdCBlaW4gZWluemlnZXMKRHVyY2hlaW5hbmRlciEgRHUgdW5kIGljaCwgd2lyIG1hY2hlbiBqZXR6dCBzYXViZXIuIERlaW4gZ2FuemVzIFpldWcgbGllZ3QKYXVmIGRlbSBGdWxpZWd0Ym9kZW4gdW5kIHdlbm4gd2lyIG5pY2h0IGJhbGQgd2FzY2hlbiwgbGFldWZzdCBkdSBkZW1uYWVjaHN0Cm9obmUKS2xhbW90dGVuIGhlcnVtLiBEdSBoaWxmc3QgbWlyIGpldHp0LCB1bmQgendhciBzb2ZvcnQhIgpEYW5uIHZlcnN0ZWh0IGRlciBNYW5uOiAiQmxhYmxhYmxhYmxhIEhvZXIgbWFsIHp1IEJsYWJsYWJsYWJsYSBkdSB1bmQgaWNoCkJsYWJsYWJsYWJsYSBhdWYgZGVtIEZ1aWNoYm9kZW4gQmxhYmxhYmxhYmxhIG9obmUgS2xhbW90dGVuIEJsYWJsYWJsYWJsYSB1bmQKendhciBzb2ZvcnQuIgoKZ25PbWUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogSmFwYW5zIEZhbnMgKEJhbWJpLCAgMy4gSnVuIDIwMDYsIDA4OjE3OjIxKToKfiMhIHJuPVpvb2sgcnQ9MTE0OTE2MzYzMyByZz13aXR6ZQp+IyEgdGlkPTExNDkxNjM0NTUKSWNoIGZpbmRlIGRhcyB1bnRlcnN0dWV0emVuc3dlcnQuIFdlbm4gaWNoIG1pciB1ZWJlcmxlZ2UsIHdpZXZpZWxlCkFyc2NobG9lY2hlciBpaHJlbiBEcmVjayBhdWYgZGVuIEJvZGVuIHdlcmZlbiwgb2J3b2hsIHNpZSBkaXJla3QgbmViZW4gZWluZW0KKG5pY2h0IHVlYmVyZnVlbGx0ZW4pIE11ZWxsZWltZXIgc3RlaGVuLCB3YWVyZSBlcyB2aWVsbGVpY2h0IGdhbnogZ3V0LCB3ZW5uCm1hbiBkYXMgYmVpIHVucyBhdWNoIGVpbmZ1ZWhydGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBKYXBhbnMgRmFucyAoTXVhZGliLCAgMy4gSnVuIDIwMDYsIDEwOjU0OjE0KToKfiMhIHJuPUJhbWJpIHJ0PTExNDkzMTU0NDEgcmc9d2l0emUKfiMhIHRpZD0xMTQ5MTYzNDU1Cm5hamEsIGRhIHdhZXJlIGVzIGhpbGZyZWljaGVyIGthdWd1bW1pIHVuZCB6aWdhcmV0dGVuIHp1IHZlcmJpZXRlbi4gZGllCnN0cmFzc2Ugc2FlaGVuIHdlc2VudGxpY2ggYmVzc2VyIGF1cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogSmFwYW5zIEZhbnMgKEtlbGx5YnVuZHksICAzLiBKdW4gMjAwNiwgMTc6NTE6MDUpOgp+IyEgcm49TXVhZGliIHJ0PTExNDkzMjQ4NTQgcmc9d2l0emUKfiMhIHRpZD0xMTQ5MTYzNDU1ClZvbiBtaXIgYXVzIGtvZW5udGUgbWFuIGF1Y2ggTWFzc25haG1lbiB3aWUgaW4gU2luZ2FwdXIgZWluZnVlaHJlbi4gRGEgaGF0cwptYWwgMjAgU3RvY2tzY2hsYWVnZSBmdWVyIG5lbiBVUy1hbWVyaWthbmlzY2hlbiBUZWVuaWUgZ2VnZWJlbiwgZGVyIG5peApiZXNzZXJlcyB6dSB0dW4gaGF0dGUsIGFscyBzaWNoIG5hZWNodGVucyBtaXQgbmVyIFNwcmF5ZG9zZSBhbgpzaW5nYXBvcmlhbmlzY2hlbiBIYXVzd2FlbmRlbiB6dSB2ZXJld2lnZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBKYXBhbnMgRmFucyAoT3JrdG9ldGVyLCAgMy4gSnVuIDIwMDYsIDE4OjM1OjE4KToKfiMhIHJuPUtlbGx5YnVuZHkgcnQ9MTE0OTM0OTg2NSByZz13aXR6ZQp+IyEgdGlkPTExNDkxNjM0NTUKV2VpcyBuaWNodCBvYiBlcyBlaW5lIHVyYmFuIGxlZ2VuZCBpc3QsIGFiZXIgaWNoIGhhYmUgdm9uIGVpbmVtIGphcGFuaXNjaGVuCkdlc2NoYWVmdHNtYW4gZ2Vob2VydCwgZGVyIGluIGVpbmVtIEtpcmNodHVybSBpbiAuZGUgc2VpbmVuIE5hbWVuIGFuIGRpZSBXYW5kCmdlc2NocmllYmVuIGhhdCAod28gc2Nob24gbWFzc2lnIGFuZGVyZSBOYW1lbiBldGMuIHN0YW5kZW4pLiBEZXIgaGF0IGluIEphcGFuCnNvIHNlaHIgc2VpIEdlc2ljaHQgdmVybG9yZW4sIGVyIGhhdCBkaWUgU3RhZHQgYW5nZXNjaHJpZWJlbiwgc2ljaAplbnRzY2h1bGRpZ3QgdW5kIGFuZ2Vib3RlbiBkaWUgUmVub3ZpZXJ1bmdza29zdGVuIHp1IHVlYmVybmVobWVuLgoKT3JrVC4KClVuZCB3ZWlsIHdpciBoaWVyIGluIFdpdHplIHNpbmQ6CnN0ZWh0IGVpbiBNYW50YSB2b3IgZGVyIFVuaS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEphcGFucyBGYW5zIChNdWFkaWIsICAzLiBKdW4gMjAwNiwgMTk6MTY6MTgpOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTExNDkzNTI1MTggcmc9d2l0emUKfiMhIHRpZD0xMTQ5MTYzNDU1Cm9oYSwgbWVpbiBtYW50YSB3dXJkZSBnZXNpY2h0ZXQ/CmljaCBzdWNoZSBzY2hvbiBld2lnIGRlbiBkaWViCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBKYXBhbnMgRmFucyAoQ2hhZ2FsbCwgIDMuIEp1biAyMDA2LCAxOToxNzoyNik6Cn4jISBybj1NdWFkaWIgcnQ9MTE0OTM1NDk3OCByZz13aXR6ZQp+IyEgdGlkPTExNDkxNjM0NTUKRGFubiBtdXNzdCBEdSBudXIgbm9jaCByYXVza3JpZWdlbiwgdm9yIHdlbGNoZXIgVW5pIGRlciBzdGVodC4gQWJlciBhbHMKU2hlcmlmZiBzb2xsdGUgZGFzIGphIGtlaW4gUHJvYmxlbSBkYXJzdGVsbGVuLgoKTUMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEphcGFucyBGYW5zIChab29rLCAgNy4gSnVuIDIwMDYsIDEyOjEzOjExKToKfiMhIHJuPUJhbWJpIHJ0PTExNDkzMTU0NDEgcmc9d2l0emUKfiMhIHRpZD0xMTQ5MTYzNDU1CkljaCBoYXR0ZSBkZW4gRWluZHJ1Y2ssIGRhcyB3YXIgZWhlciBlaW5lIEt1bHR1ci0sIGRlbm4gZWluZSBSZWdlbGZyYWdlLiAKSW5zb2Zlcm46IFdpZSB3aWxsc3QgRHUgZGFzIGRlbm4gaW4gLmRlICJlaW5mdWVocmVuIj8gWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaG9lcGZ1bmdzYmVyaWNodCAoQW50aGVhLCAyMi4gSnVuIDIwMDYsIDExOjQ1OjA5KToKRGVyIFNjaG9lcGZ1bmdzYmVyaWNodApEZXIgU2Nob2VwZnVuZ3NiZXJpY2h0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpQZXJzb25lbjoKCkdvdHQKQWxsYWgKU2F0YW4KT2RpbgpEYXMgVW5pdmVyc3VtIGlzdCB3dWVzdCB1bmQgbGVlci4gS2FtZXJhIHpvb210IGF1ZiB2aWVyIEdlc3RhbHRlbiwgZGllCnNvIGF1c3NlaGVuLCB3aWUgc2llIHNpY2ggZGVyIExlc2VyIHZvcnN0ZWxsdC4KCgpHb3R0OgoiU28sIEp1bmdzLCB3ZWl0ZXIgZ2VodCdzLiIKCk9kaW46CiJKYS4gQmluIGljaCBtaXQgV3VlcmZlbG4gZHJhbj8iCgpTYXRhbjoKIkhtaG0uIgoKT2RpbjoKIkFjaHQhIFdlbSBnZWhvZXJ0IGRpZSBTZWVzdHJhc3NlPyIKClNjaHdlaWdlbi4KCk9kaW46CiJEYW5uIGthdWZlIGljaCBzaWUuIgoKQWxsYWg6CiJIZSwgTGV1dGUsIHdpc3N0IGlociwgd29yYXVmIGljaCBtYWwgd2llZGVyIEx1c3QgaGFldHRlPyIKCkdvdHQ6CiJOYXR1ZXJsaWNoLCB3aXIgc2luZCBHb2V0dGVyISIKClNhdGFuOgoiQWNoPyBJY2ggbmljaHQsIGRhY2h0ZSBpY2ghIgoKR290dDoKIkFlaCwgamEsIGFiZXIgd2lyIGxhc3NlbiBkaWNoIHRyb3R6ZGVtIG1pdHNwaWVsZW4uIgoKU2F0YW46CiJXb3JhdWYgaGFzdCBkdSBkZW5uIEx1c3QsIEFsbGFoPyBKZW9wYXJkeT8iCgpBbGxhaDoKIk5lZS4gSWNoIHd1ZXJkZSBnZXJuZSBtYWwgd2llZGVyIGVpbmUgV2VsdCBlcnNjaGFmZmVuLiIKCk9kaW46CiJBY2gsIGtvbW0sIGRhcyBoYWJlIGljaCBnZXN0ZXJuIGdlbWFjaHQuIFdhciBuaWNodCB0b2xsLCBoYWInIGRpZQpQb2xlIG5pY2h0IHNvIHNjaG9lbiBoaW5nZWtyaWVndCB3aWUgR290dCB2b3IgZHJlaSBXb2NoZW4uIgoKR290dDoKIkhpaGksIGRhbmtlLiIKCkFsbGFoOgoiRWluZSBXZWx0IG1pdCBMZWJld2VzZW4gZHJhdWYhIE5pY2h0IHNvd2FzIHdpZSBkYXMgRGluZyBkYSBoaW50ZW4gbWl0CmRlbSBSaW5nIGF1c3NlbnJ1bS4iCgpPZGluOgoiQWxzbyBpY2ggbWFnIGRhcy4iCgpTYXRhbjoKIkxlYmV3ZXNlbiBrbGluZ3QgZ3V0LiBNYWNoZW4gd2lyIGRhcy4iCgpHb3R0OgoiRHUgbWFjaHN0IGhpZXIgZ2FyIG5peC4iCgpHb3R0IGZvcm10IGVpbmUgU2NoZWliZS4KCkdvdHQ6CiJHdXQgc28/IgoKQWxsYWg6CiJOb2UsIGRhIGZhbGxlbiBhbGxlIGhlcnVudGVyISBNYWNoJyBlaW4gUHJpc21hISIKCk9kaW46CiJOZWluISBFaW5lIEt1Z2VsISIKClNhdGFuOgoiRWluZSBLdWdlbD8gT2ggTWFubiwgZGFzIGlzdCBqYSBESUUgbmV1ZSBJZGVlISIKCkFsbGFoOgoiRGEgaGludGVuIGxpZWdlbiAoemFlaGx0KSA0NTY4NDM1NjU0MzY1NzYgS3VnZWxuIGhlcnVtISIKCk9kaW46CiJEYW5uIHNpbmQncyBlYmVuIDQ1Njg0MzU2NTQzNjU3NyBLdWdlbG4hIEVpbmUgbWVociBvZGVyIHdlbmlnZXIuLi4iCgpHb3R0OgoiR3V0LiIKCkVyIGZvcm10IGRpZSBTY2hlaWJlIHp1IGVpbmVyIEt1Z2VsLgoKR290dDoKIkJlc3Nlcj8iCgpTYXRhbjoKIkJsb2VkZSBGYXJiZSwgZGllc2VzIExpbGEuIEJsYXUgd2FlcmUgYmVzc2VyISIKCkFsbGFoOgoiSWNoIHdpbGwgQnJhdW4uIgoKU2F0YW46CiJCbGF1ISIKCkFsbGFoOgoiQnJhdW4hIgoKU2F0YW46CiJCbGF1ISIKCkFsbGFoOgoiQnJhdW4hIgoKU2F0YW46CiJCbGF1ISIKCkFsbGFoOgoiQnJhdW4hIgoKT2RpbjoKIkFlaCwgR3J1ZW4/IgoKUywgQToKIlN0aWxsISIKCkdvdHQ6CiJEYW5uIGViZW4gQmxhdSwgQnJhdW4gdW5kIEdydWVuLiIKCkdvdHQgZmFlcmJ0LgoKU2F0YW46CiJOYSwgaXN0IGRvY2ggc2Nob24gZ2FueiBuZXR0LiIKCkFsbGFoOgoiRGllIElkZWUgbWl0IGRlbSBXYXNzZXIgdW5kIExhbmQgaXN0IGdhbnogZ3V0LiBBYmVyIHZlcnRlaWx0IGRhcyBaZXVnCm1hbCBlaW4gd2VuaWcgYmVzc2VyISIKCkFsbGFoIHppZWh0IGRlbiBVcmtvbnRpbmVudCBhdXNlaW5hbmRlci4KCk9kaW46CiJNaXIgZ2VmaWVsIGRpZSBkaWNrZSBMYW5kbWFzc2Ugdm9yaGVyIGJlc3NlciEiCgpPZGluIHNjaGllYnQgYWxsZXMgd2llZGVyIHp1c2FtbWVuLgoKQWxsYWg6CiJMYXNzIGRhcyEgSWNoIHdpbGwgbWVocmVyZSBLb250aW5lbnRlISIKCkFsbGFoIGhhdXQgYXVmIGRlbiBVcmtvbnRpbmVudC4KClNhdGFuOgoiSmV0enQgc2llaCBkaXIgYW4gd2FzIGR1IGdlbWFjaHQgaGFzdCEgRGEgbGllZ2VuIGpldHp0IGxhdXRlciBrbGVpbmUKQnJvZWNrY2hlbiEiCgpHb3R0OgoiTmVubmVuIHdpciBzaWUgSW5kb25lc2llbiEiCgpPLCBBLCBTOgoiPz8hIT8/IgoKR290dDoKIklzdCBtaXIgZ2VyYWRlIGVpbmdlZmFsbGVuLiIKCk9kaW46CiJKZWRlciBuaW1tdCBzaWNoIGpldHp0IGV0d2FzIExhbmQgdW5kIGZvcm10IGVpbmVuIEtvbnRpbmVudC4gR290dAptYWNodCBkYW5uIG5vY2ggZGllIFBvbGUsIGRhcyBrYW5uIGVyLiIKCkcsIFMsIEE6CiJHdXQuIgoKQWxsZSBmb3JtZW4gd2llIHdpbGQuIFNhdGFuIGhhdCBlaW5pZ2UgUHJvYmxlbWUuCgpTYXRhbjoKIkRhcyBoYXV0IG5pY2h0IGhpbiEgSWNoIGhhYiBub2NoIHp1dmllbCBMYW5kIHVlYnJpZyEiCgpPZGluOgoiS2xhdHNjaCBlcyBkYSB1bnRlbiBoaW4gdW5kIG5lbm4gZXMgQXVzdHJhbGllbi4iCgpTYXRhbjoKIkd1dC4gSGUsIEdvdHQsIHdhcyBzb2xsIGRlciBIYXVmZW4gZGE/IgoKR290dDoKIk9jaCwgZGEgaGFiIGljaCBudXIgbWVpbmUgRXJkZSBsaWVnZW4uIEljaCBkZW5rZSwgaWNoIGxhc3NlIGVzIHNvLgpLbGluZ3QgSGltYWxheWEgZ3V0PyIKCk9kaW46CiJTY2hvbi4gSGUsIGdlZmFsbGVuIGV1Y2ggbWVpbmUgV3Vlc3Rlbj8iCgpBbGxhaDoKIktvbW1lbiBuaWNodCBhbiBtZWluZSBTZWVuIGhlcmFuLCBhYmVyIHNpbmQgZ2FueiBuZXR0LiBNYWNoZW4gd2lyCmpldHp0IGRpZSBMZWJld2VzZW4/IgoKU2F0YW46CiJKYS4gSWNoIGhhYmUgZGEgZWluZW4gRW50d3VyZi4uLiIKClppZWh0IGVpbiBkcmVpIE1pbGxpYXJkZW4gUXVhZHJhdGtpbG9tZXRlciBncm9zc2VzIEJsYXR0IFBhcGllciBoZXJ2b3IuCgpHb3R0OgoiSG0sIHNpZSBzaW5kIHNhZGlzdGlzY2gsIG1pZXMsIGdlbWVpbiwgZ2VsZGdpZXJpZywgZWdvaXN0aXNjaCwKbW9yZGx1c3RpZyB1bmQsIHVtIGVzIG1pdCBlaW5lbSBXb3J0IHp1IHNhZ2VuLCBib2VzZS4iCgpTYXRhbjoKIkljaCBuZW5uZSBzaWUgJ01lbnNjaGVuJy4iCgpPZGluOgoiTWVuc2NoZW4uLi5rb21pc2NoLCBrb21pc2NoLi4uIgoKU2F0YW46CgoiSW4gZGVyIFNwcmFjaGUgZGVyIEFuZHJ1eGFuZXIgKGVpbiBQbGFuZXQsIGRlbiBkaWUgR29ldHRlciB2b3IgZWluZW0KSmFociBlcnNjaHVmZW4pIGJlZGV1dGV0ICJNZW5zY2giIGluIGV0d2EgInNhZGlzdGlzY2gsIG1pZXMsIGdlbWVpbiwKZ2VsZGdpZXJpZywgZWdvaXN0aXNjaCwgbW9yZGx1c3RpZyB1bmQsIHVtIGVzIG1pdCBlaW5lbSBXb3J0IHp1IHNhZ2VuLApib2VzZSIsIHVuZCBpY2ggZGVua2UsIGRhc3MgZGFzIGRlbiBOYWdlbCBhdWYgZGVuIEtvcGYgdHJpZmZ0LiIKCkdvdHQ6CiJEaWUgc2VoZW4gamEgcmVjaHQgc2VsdHNhbSBhdXMuIgoKU2F0YW46CiJEYXMgaXN0IG51ciBlaW4gRW50d3VyZi4gV2lyIGtvZW5uZW4gc2llIGF1Y2ggc28gYXVzc2VoZW4gbGFzc2VuIHdpZSwKbnVyIHNvLCBHb3R0IHp1bSBCZWlzcGllbCEiCgpHb3R0OgoiQWNoLCB0b2xsLCBzaWUgc2luZCBzYWRpc3Rpc2NoLCBtaWVzLCBnZW1laW4sIGdlbGRnaWVyaWcsIGVnb2lzdGlzY2gsCm1vcmRsdXN0aWcgdW5kLCB1bSBlcyBtaXQgZWluZW0gV29ydCB6dSBzYWdlbiwgYm9lc2UsIHVuZCBzaWUgc2VoZW4KZ2VuYXUgc28gYXVzIHdpZSBpY2ghIE5lZSwgZGFua2UhIgoKT2RpbjoKIk5hIGtvbW0gc2Nob24uLi4iCgpHb3R0OgoiT2theSwgb2theSwgYWJlciBudXIsIHdlaWwgaWNoIGRlciBodWVic2NoZXN0ZSB2b24gdW5zIGFsbGVuIGJpbiEiCgpBbGxhaDoKIk5hIGtsYXIuLi4iCgpPZGluOgoiRGVyIEVudHd1cmYgaXN0IGFiZXIgbmljaHQgc2NobGVjaHQsIGRlbiBSdWVzc2VsIHNvbGx0ZW4gd2lyIHVucwptZXJrZW4hIgoKR290dCBtYWNodCBlaW5lbiBNZW5zY2hlbiB1bmQgc3RlbGx0IGlobiB2b3Igc2ljaCBoaW4uCgpNZW5zY2g6CiJBYWFhcmdoISIKClNhdGFuOgoiV2FzIGRlbm4/IE9oLCBpY2ggaGFiZSB2ZXJnZXNzZW46IE1lbnNjaGVuIGtvZW5uZW4gbmljaHQgaW0gVmFrdXVtCnVlYmVybGViZW4hIgoKQWxsYWg6CiJQbGFudW5nc2ZlaGxlciEgSGEhIgoKU2F0YW46CiJKZXR6dCBob2VyIG1pciBtYWwgenUsIGR1IG1pZXNlci4uLiIKCk9kaW46CiJIZSEgTGFzc3QgZGFzISBHb3R0LCBlcnNjaGFmZmUgZWluZSBBdG1vc3BoYWVyZSwgc29uc3Qga3JhdHplbiB1bnMgZGllClR5cGVuIGFsbGUgYWIhIgoKR290dCBlcnNjaGFmZnQuCgpHb3R0OgoiU28sIGpldHp0IHN0ZWxsZW4gd2lyIGlobiBhYmVyIGVuZGxpY2ggaGluISIKCkdvdHQgc3RlbGx0LgoKTWVuc2NoIHN0ZWh0LgoKTWVuc2NoOgoiPz8/Pz8iCgpBbGxhaDoKIlNvLCB1bmQgd2VyIHNhZ3QgamV0enQgd2FzIHp1IGlobT8iCgpPZGluOgoiSWNoISBJY2ghIgoKU2F0YW46CiJJY2ggd2lsbC4gRXMgaXN0IG1laW4gRW50d3VyZiwgYWxzbyByZWRlIGljaCBtaXQgaWhtLiIKCk1lbnNjaCBzaWVodCBzaWNoIHppZW1saWNoIHZlcmR1dHp0IHVtLCBuaWNodHMgc29uc3QgYmVmaW5kZXQgc2ljaCBhdWYKZGVyIEVyZGUuCgpTYXRhbjoKIkhleSEiCgpNZW5zY2g6CiJVYWghIgoKTWVuc2NoIHNwcmluZ3QgZXJzY2hyb2NrZW4genVyIFNlaXRlIHVuZCBzdGlyYnQgbm9jaCBpbSBGbHVnIGFuIGVpbmVtCkhlcnpzY2hsYWcuCgpHb3R0OgoiT2ggTWFubi4gRGllIExpc3RlIHZlcmxhZW5nZXJ0IHNpY2g6IHNhZGlzdGlzY2gsIG1pZXMsIGdlbWVpbiwKZ2VsZGdpZXJpZywgZWdvaXN0aXNjaCwgbW9yZGx1c3RpZyB1bmQsIHVtIGVzIG1pdCBlaW5lbSBXb3J0IHp1IHNhZ2VuLApib2VzZSwgc2llIHNlaGVuIGdlbmF1IHNvIGF1cyB3aWUgaWNoIHVuZCBzaW5kIFdlaWNoZWllci4gVG9sbGUgU2FjaGUuIgoKU2F0YW46CiJNYWNodCBtaWNoIGhhbHQgZmVydGlnISBIYXV0IG1pY2ghIEljaCBiaW4ga2VpbiBHb3R0LCBtaXIga2FubiBhdWNoCnNjaG9uIG1hbCBlaW4gRmVobGVyIHVudGVybGF1ZmVuISIKCkFsbGFoOgoiSWNoIHN0ZWxsJyBpaG4gbWFsIHdpZWRlciBhdWYuIgoKU3RlbGx0IGRlbiBNZW5zY2hlbiB3aWVkZXIgYXVmLgoKTWVuc2NoIGZhZWxsdCB3aWVkZXIgdW0uCgpBbGxhaDoKIkV0d2FzIEVpbnNhdHoga29lbm50ZSBlciBzY2hvbiB6ZWlnZW4hIgoKT2RpbjoKIldpciBzb2xsdGVuIGVyc3RtYWwgZGVuIGdhbnplbiBhbmRlcmVuIFNjaHJvdHQgaGluc3RlbGxlbi4iCgpTYXRhbjoKIldhc24gZnVlciBTY2hyb3R0PyIKCk9kaW46CiJCYWV1bWUsIEdyYXMsIFZpZWNoZXIuLi5zb3dhcyBoYWx0LiIKCkdvdHQ6CiJVbmQgd2llc28/IgoKT2RpbjoKIkRhbm4gaGF0IGRlciBNZW5zY2ggZXMgc2Nob2VuZXIuIgoKQWxsYWg6CiJTdGltbXQsIGF1ZiBkZW0gZ2VsYmVuIFBsYW5ldGVuIGRhIGRydWViZW4sIGxpbmtzLCBoYWJlbiB3aXIgbnVyIEVpcwp1bmQgZWluIExlYmV3ZXNlbiwgZHUgd2Vpc3N0IHNjaG9uLCBPZGluLCBkYXMgRGluZywgZGFzIGR1IE9sYWYgZ2V0YXVmdApoYXN0LiIKCk9kaW46CiJKYSwgaWNoIGVyaW5uZXJlIG1pY2guIE9sYWYgc2NobGl0dGVydCBzZWl0IGRyZWkgSmFocmVuIGR1cmNoIGRpZQpHZWdlbmQuIEhhcnRlcyBMZWJlbi4iCgpTYXRhbjoKIlRyYXVyaWcsIGhhcnQsIG1pdGxlaWRlcnJlZ2VuZCwgZGVwcmltaWVyZW5kIHVuZCBzYXVrb21pc2NoLiIKCkdvdHQ6CiJKZXR6dCBtYWNoZW4gd2lyIG1hbCBQZmxhbnplbiB1bmQgVGllcmUuIgoKR290dCBtYWNodCBCYWV1bWUsIEdyYXMsIEthcnRvZmZlbG4sIEF1YmVyZ2luZW4sIFNjaHdlaW5lLCBQZmVyZGUsCkxlZ3VhbmUgdW5kIGVpbmVuIE96ZWxvdCBuYW1lbnMgSGFyYWxkLgoKU2F0YW4gbWFjaHQgS3Jva29kaWxlLCBIYWllLCBQaXRidWxscyB1bmQgTG9ld2VuLgoKU2F0YW46CiJEYW1pdCBkaWUgU2FjaGUgc3Bhbm5lbmQgd2lyZC4iCgpPZGluIHVuZCBBbGxhaCBtYWNoZW4gZGVuIFJlc3QuIE9kaW46CiJEZXIgUnVlc3NlbCBwYXNzdCBkZW0gZ3JhdWVuIFRpZXIgYXVjaCBnYW56IGd1dC4iCgpBbGxhaDoKIkljaCBlcndlY2tlIGRlbiBNZW5zY2hlbi4gRGVyIHdpcmQgc2NoYXVlbiEiCgpFcndlY2t0IGRlbiBNZW5zY2hlbiwgaW5kZW0gZXIgZGVuIG5hZWNoc3RiZXN0ZW4gU2VlIHBhY2t0IHVuZCBhdWYgaWhuCnNjaHVldHRldC4KCk1lbnNjaCBwcnVzdGV0LCBodXN0ZXQgdW5kIG5pZXN0LgoKT2RpbjoKIlByYWVjaHRpZywga2F1bSBsZWJ0IGVyIHdpZWRlciwgaGF0IGVyIGVpbmUgRXJrYWVsdHVuZy4iCgpFcmljIENsYXB0b246CiJIaSwgR290dCwgT2RpbiwgQWxsYWgsIFNhdGFuLCBpY2ggd29sbHRlIG51ciBtYWwgdm9yYmVpc2NoYXVlbi4KSG9mZmUsIGVzIGxhZXVmdC4gT2gsIGlociBoYWJ0IGVpbmVuIE1lbnNjaGVuIGdlbWFjaHQuCkhtbW0uLi52aWVsbGVpY2h0IGJlc3VjaGUgaWNoIGlobiBlaW5tYWwuLi5zcGFldGVyLiBOYWphLCBpY2ggZ2VoZQpqZXR6dCBlcnN0bWFsIG1pdCBPenp5IGVpbmUgVGFzc2UgS2FmZmVlIHRyaW5rZW4uIgoKU2F0YW46CiJTZXJ2dXMhIgoKQWxsYWg6CiJOZXR0ZXIgS2VybC4iCgpHb3R0OgoiV2VyIGlzdCBlaWdlbnRsaWNoIE96enk/IgoKU2F0YW46CiJPY2gsIGRlciBrb21tdCBhdXMgZGVyIGFuZGVyZW4gRWNrZSBkZXMgVW5pdmVyc3Vtcy4gSXN0IGNvb2wuIgoKR290dDoKIlNvc28uIFdpZSBsYWV1ZnQncyBtaXQuLi5hZWgsIHdpZSBuZW5uZW4gd2lyIGRlbiBNZW5zY2hlbiBlaWdlbnRsaWNoPyIKClNhdGFuOgoiS3VydC4iCgpPZGluOgoiTWFydGluLiIKCkFsbGFoOgoiR2lvdmFubmkuIgoKR290dDoKIlVuZCB3aWUgd2FlcidzIG1pdCBBZGFtPyIKClNhdGFuOgoiQWRhbT8/Pz8iCgpPZGluOgoiQWNoLCBkYXMgaXN0IHdpZWRlciBzbyBlaW5lIGJsb2VkZSBnb2V0dGxpY2hlIEVpbmdlYnVuZywgb2Rlcj8iCgpHb3R0OgoiSmVwLiBBZGFtIGJlZGV1dGV0ICJJY2ggYmluIGRlciBlcnN0ZSwgTWFubiwgdW5kIHdlaGUgZHUgc3RyZWl0ZXN0CmRhcyBhYiEiLiIKCk9kaW46CiJIbSwgZGFzIHBhc3N0LiBIZSwgTWVuc2NoLCBkdSBoZWlzc3QgamV0enQgQWRhbSEiCgpNZW5zY2gga2lwcHQgdm9yIFNjaHJlY2sgdW0uCgpHb3R0OgoiVmllbGxlaWNodCBoYWV0dGVuIHdpciBkZW4gUnVlc3NlbCBkcmFubGFzc2VuIHNvbGxlbiEiCgpBbGxhaDoKIkRlciBuZXJ2dCBtaWNoIGVjaHQhIEhFWSEiCgpNZW5zY2ggc3RlaHQgd2llZGVyIGF1ZiB1bmQgd2lyZCB3YWhuc2lubmlnLgoKTWVuc2NoOgoiQmxibGJsYmxiYmxibGJiYmIhIgoKU2F0YW46CiJDb29sLCB3aWUgaGFzdCBkdSBkZW5uIGRhcyBnZW1hY2h0PyIKCkFsbGFoOgoiSWNoLi4uYWVoLi4uZGFzIHdvbGx0ZSBpY2ggbmljaHQuLi50c2NodWxkaWd1bmcuLi4iCgpHb3R0OgoiV2VnIG1pdCBpaG0uIgoKUmFldW10IGRlbiBNZW5zY2hlbiB3ZWcuCgpPZGluOgoiSGViJyBkZW4gbWFsIGF1Zi4gTWFuIHdlaXNzIGphIG5pZS4uLmFscyBTYWVuZ2VyIHZpZWxsZWljaHQuLi5nZWZhZWxsdApldWNoIGRlciBOYW1lIEphY2tzb24/IgoKQWxsYWg6CiJVbmQgamV0enQ/IgoKR290dDoKIk1hY2gnIGljaCBub2NoIGVpbmVuLiBOZWUsIGljaCBtYWNoJyB6d2VpISIKCk9kaW46CiJad2VpPyBXb3p1IGRlbm4gZGFzPyIKCkdvdHQ6CiJHZXNlbGxzY2hhZnQuIFNjaGFjaC4gU2NobGFlZ2VyZWllbi4gU293YXMuIgoKU2F0YW46CiJFcnNjaGFmZmUgc2llIHZlcnNjaGllZGVuLiBNaXQgdm9lbGxpZyBhbmRlcmVuIERlbmt3ZWlzZW4uIERhcyB3aXJkCmNvb2whIgoKR290dCBlcnNjaGFmZnQgRnJhdSB1bmQgTWFubi4KCkdvdHQ6CiJJbiBkZXIgQXJ0PyIKCkFsbGFoOgoiSmF3b2xsLiBJY2ggbWFnIGRpZSBGcmF1IG5pY2h0IHNvIHNlaHIuLi4iCgpTYXRhbjoKIkRlaW5lIFNhY2hlLiIKCk9kaW46CiJMYXNzZW4gd2lyIHNpZSBqZXR6dCBpbiBSdWhlPyBWaWVsbGVpY2h0IHZlcm1laHJlbiBzaWUgc2ljaC4uLiIKClNhdGFuOgoiRGFzIHd1ZXJkZSBtaWNoIGFiZXIgc2Nob24gaW50ZXJlc3NpZXJlbi4iCgpPZGluOgoiSWRpb3QuIFNwaWVsZW4gd2lyIFRyaXZpYWwgUHVyc3VpdD8iCgpTYXRhbjoKIk1vbWVudCBtYWwhIgoKR290dDoKIk5lZSwgZGFzIGlzdCBibG9lZCwgYWxzIEdvZXR0ZXIgd2lzc2VuIHdpciBqYSBhbGxlcy4iCgpTYXRhbjoKIkhlISIKCkFsbGFoOgoiVW5kIHdpZSB3YWVyJ3MgbWl0IE1lbnNjaC1hZXJnZXJlLWRpY2gtbmljaHQ/IgoKU2F0YW46CiJIb2VydCBtaXIgZG9jaCBtYWwgenUhIFdpZSBoYXQgT2RpbiBtaWNoIGdlbmFubnQ/IgoKR290dDoKIklkaW90LiBJY2ggd2lsbCBQb2tlciBzcGllbGVuLiIKClNhdGFuOgoiRHUgU2F1ISIKCk9kaW46CiJXaWUgYml0dGU/IgoKQWxsYWg6CiJFciBzYWd0ZSAnU2F1Jy4iCgpPZGluIHNjaGxhZWd0IFNhdGFuLgoKU2F0YW46CiJBdSEiCgpTYXRhbiB1bmQgT2RpbiBwcnVlZ2VsbiBzaWNoIGdhbnogZnVlcmNodGVybGljaC4KCkdvdHQ6CiJIb2VydCBzY2hvbiBhdWYuIgoKU2F0YW46CiJIYWx0IGRpY2ggZGEgJ3JhdXMsIGR1IFBzZXVkb3RoZW9zISIKCkdvdHQ6CiJOYSB3YXJ0ZSEiCgpHb3R0IHN0dWVybXQgaW5zIEdlc2NoZWhlbi4KCkFsbGFoOgoiTmVpbiEgTGFzcycgc2llIGRvY2ghIgoKQWxsYWggc2V1Znp0IHVuZCB2ZXJzdWNodCwgZGllIGRyZWkgenUgdHJlbm5lbi4gRXIgYmVrb21tdCBlaW5lbiBUcml0dAp2b24gZWluZW0gbmljaHQgZWluZGV1dGlnIGlkZW50aWZpemllcnRlbiBCZWluLgoKQWxsYWg6CiJBaCEiCgpBbGxlIHNjaGxhZ2VuIHNpY2guCgpOYWNoIGRyZWlodW5kZXJ0dGF1c2VuZCBKYWhyZW4gSGllYmUgc2l0enQgamVkZXIgaW4gZWluZXIgc2NobmVsbAplcnNjaGFmZmVuZW4gRWNrZS4KCkdvdHQ6CiJFaW5lcyBzYWdlIGljaCBldWNoIERhZW1saWNoZW5zOiBJY2ggd2VyZGUgZGVyIGVpbnppZ2UgR290dCBzZWluLCBhbgpkZW4gZGllICh6YWVobHQpIHp3ZWkgTWlsbGlvbmVuIE1lbnNjaGVuIGRhIHVudGVuIGdsYXViZW4hIgoKU2F0YW46CiJEaWNoIHNjaGxhZ2UgaWNoIGFsbGVtYWwsIGR1IGhhbGJzZWlkZW5lcyBHb2V0dGNoZW4hIgoKT2RpbjoKIklobiB2aWVsbGVpY2h0LCBhYmVyIGFuIG1pY2gga29tbXQgaWhyIGFsbGUgbmllIHJhbiEiCgpBbGxhaDoKIkljaCB3ZXJkZSBkaWUgbWVpc3RlbiBBbmhhZW5nZXIgaGFiZW4hIgoKU2F0YW46CiJBbHMgRnVocnVudGVybmVobWVyIHZpZWxsZWljaHQuIFdhcnRldCBudXIsIHdlbm4gQWxlaXN0ZXIgQ3Jvd2xleQpnZWJvcmVuIHdvcmRlbiBpc3QhIERhbm4gaGFiZSBpY2ggZWluZW4gTWVzc2lhcyEiCgpHb3R0OgoiRGFzIG1hY2hlIGljaCBhdWNoISIKCkFsbGFoOgoiSWNoIGF1Y2ghIgoKT2RpbjoKIlVuZCBpY2gsIGljaCBnZWhlIHNlbGJzdCEiCgpEaWUgVmllciB2ZXJzY2h3aW5kZW4gZG9ydGhpbiwgd28gbWFuIGFscyBHb3R0IGViZW4gaGludmVyc2Nod2luZGV0LAp1bSBzZWluZSBTdHJhdGVnaWUgenUgcGxhbmVuLgoKT3p6eSBPc2JvdXJuZSB1bmQgRXJpYyBDbGFwdG9uIGtvbW1lbiBhbiBkZXIgRXJkZSB2b3JiZWkuCgpFcmljOgoiU2NoYXUgbWFsLCBzbyBlaW4gQ2hhb3MhIgoKT3p6eToKIldpcmtsaWNoLiBEaWVzZSB2aWVyIFR5cGVuIGhhYmVuIG51ciBRdWF0c2NoIGltIEhpcm4uIgoKRXJpYzoKIkhlLCBkYSBpc3QgZ2VyYWRlIGVpbiBHbGF1YmVuc2tyaWVnIGltIEdhbmdlISIKCk96enk6CiJFaW5lIGJsb2VkZSBXZWx0LiBBYmVyIGlyZ2VuZHdpZS4uLiIKCkVyaWM6CiJKYSwgaXJnZW5kd2llLi4uIgoKT3p6eToKIldpciBrb2VubnRlbiBlaWdlbnRsaWNoLi4uIgoKRXJpYzoKIk51ciBtYWwga3Vyei4uLiIKCk96enk6CiJTbyBzaWViemlnLCBhY2h0emlnIEphaHJlIGxhbmcuLi4iCgpFcmljOgoiR2VoZW4gd2lyLiBTcGllbHN0IGR1IEdpdGFycmUgb2RlciBzb2xsIGljaD8iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWx0IHVuZCBnZXJhZGUgbWFsIHdpZWRlciBhdXNnZWdyYWJlbiAoQW50aGVhLCAyMi4gSnVuIDIwMDYsIDE0OjI0OjEzKToKSmVkZXIsIGRlciBlaW5lbiBIdW5kIGJlc2l0enQsIG5lbm50IGlobiAiRmlmaSIgb2RlciAiQmVsbG8iLiBJY2ggbmVubmUgbWVpbmVuCiJTZXgiLiAKCk51biwgU2V4IGhhdCBtaWNoIGluIHNvIG1hbmNoZSBwZWlubGljaGUgU2l0dWF0aW9uIGdlYnJhY2h0LiBBbHMgaWNoIGF1ZnMgQW10CmdpbmcgdW0gc2VpbmUgTGl6ZW56IHp1IHZlcmxhZW5nZXJuLCBzYWd0ZSBpY2ggZGVtIEJlYW10ZW4sIGRhc3MgaWNoIGdlcm5lCmVpbmUgTGl6ZW56IGZ1ZXIgU2V4IGhhZXR0ZS4gLSAiSWNoIGhhZXR0ZSBhdWNoIGdlcm4gZWluZSIsIGFudHdvcnRldGUgZXIuIC0KIkFiZXIgZGFzIGlzdCBlaW4gSHVuZCIsIHByb3Rlc3RpZXJ0ZSBpY2guIC0gIkVzIGlzdCBtaXIgdm9lbGxpZyBlZ2FsIHdpZSBzaWUKYXVzc2llaHQuIiAtICJBYmVyIHNpZSB2ZXJzdGVoZW4gbmljaHQuIEljaCBoYWJlIFNleCBzZWl0IGljaCBuZXVuIEphaHJlIGFsdApiaW4uIiAtICJNYW5uIG11ZXNzZW4gc2llIGVpbmUgS2luZGhlaXQgZ2VoYWJ0IGhhYmVuLiIgCgpBbHMgaWNoIGhlaXJhdGV0ZSBuYWhtIGljaCBTZXggbWl0IGluIGRpZSBGbGl0dGVyd29jaGVuLiBJY2ggZXJrbGFlcnRlIGRlbQpQb3J0aWVyLCBkYXNzIGljaCBlaW4gWmltbWVyIGZ1ZXIgbWVpbmUgRnJhdSB1bmQgbWljaCBtb2VjaHRlLCB1bmQgZWluZW4KRXh0cmFyYXVtIGZ1ZXIgU2V4LiBFciB2ZXJzaWNoZXJ0ZSBtaXIsIGRhc3MgaW4gamVkZW0gWmltbWVyIFBsYXR6IGdlbnVnIGZ1ZXIKU2V4IHdhZXJlLiBJY2ggc2FndGUsICJTaWUgdmVyc3RlaGVuIG5pY2h0LCBTZXggaGFlbHQgbWljaCBkaWUgZ2FuemUgTmFjaHQKd2FjaCEiIC0gIk1pY2ggYXVjaCIsIGFud29ydGV0ZSBkZXIgUG9ydGllci4gCgpFaW5tYWwgaGFiIGljaCBTZXggaW4gZWluZW0gV2V0dGJld2VyYiBhbmdlbWVsZGV0LCBhYmVyIGJldm9yIGRlciBXZXR0a2FtcGYKbG9zZ2luZywgaXN0IFNleCB3ZWdnZWxhdWZlbi4gRWluIGFuZGVyZXIgVGVpbG5laG1lciBmcmFndGUgbWljaCwgd2FydW0gaWNoCm51ciBydW1zdGVoZW4gdW5kIGluIGRpZSBHZWdlbmQgc2NoYXVlbiB3dWVyZGUuIEljaCBlcnphZWhsdGUgaWhtLCBkYXNzIGljaApnZXJuZSBTZXggaW0gV2V0dGJld2VyYiBnZWhhYnQgaGFldHRlLiBFciBtZWludGUsIGRhZnVlciBoYWV0dGUgaWNoCkVpbnRyaXR0c2thcnRlbiB2ZXJrYXVmZW4gc29sbGVuLiAiQWJlciBzaWUgdmVyc3RlaGVuIG1pY2ggbmljaHQsIiBlcndpZGVydGUKaWNoLCAiSWNoIGhvZmZ0ZSwgZGFzcyBtZWluIFNleCBpbnMgRmVybnNlaGVuIGtvbW10LiIgRGFubiBuYW5udGUgZXIgbWljaAplaW5lbiBBbmdlYmVyLiAKCkFscyBpY2ggbWljaCB2b24gbWVpbmVyIEZyYXUgdHJlbm50ZSwga2FlbXBmdGVuIHdpciB2b3IgR2VyaWNodCB1bSBkZW4gSHVuZC4KSWNoIHNhZ3RlLCAiRXVlciBFaHJlbiwgaWNoIGhhdHRlIFNleCBzY2hvbiBiZXZvciBpY2ggZGllc2UgRnJhdSBnZWhlaXJhdGV0CmhhYmUuIiAtICJJY2ggYXVjaCIsIHNhZ3RlIGRlciBSaWNodGVyLiBEYW5uIGVya2xhZXJ0ZSBpY2ggaWhtLCBkYXNzIFNleCBuYWNoCm1laW5lciBIZWlyYXQgbmljaHQgbWVociBkZXJzZWxiZSB3YXIuICJCZWkgbWlyIGdlbmF1c28iLCBzZXVmenRlIGRlciBSaWNodGVyLgoKTGV0enRlIE5hY2h0IGlzdCBTZXggd2llZGVyIHdlZ2dlbGF1ZmVuLiBJY2ggaGFiZSBTdHVuZGVuIGRhbWl0IHZlcmJyYWNodCwgZGllClN0YWR0IG5hY2ggaWhtIGFienVzdWNoZW4uIEVpbiBQb2xpemlzdCBrYW0gYXVmIG1pY2ggenUgdW5kIGZyYWd0ZSwgIldvbmFjaApzdWNoZW4gc2llIGluIGRpZXNlciBkdW5rbGVuIEdhc3NlIHVtIDQgVWhyIGZydWVoPyIgLSAiSWNoIGJpbiBhdWYgZGVyIFN1Y2hlCm5hY2ggU2V4LCIgYW53b3J0ZXRlIGljaC4gTWVpbmUgVmVyaGFuZGx1bmcgaXN0IG5hZWNoc3RlbiBGcmVpdGFnLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzc2VoZW4gKEFudGhlYSwgMjYuIEp1biAyMDA2LCAxMDoyODoyMik6CkJlaW0gRnJ1ZWhzdHVlY2sgc2FndCBkaWUgV2lydGluIHp1bSBTdHVkZW50ZW46ICJTaWVodCBuYWNoIFJlZ2VuIGF1cyEiIERhcmF1ZgpkZXIgU3R1ZGVudDogIkphLCBhYmVyIG1hbiBtZXJrdCwgZGFzcyBlcyBLYWZmZWUgc2VpbiBzb2xsLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldpZSBkaWUgU3BpZWxlciBzbyBkaWUgRmFucyAoQW50aGVhLCAyOS4gSnVuIDIwMDYsIDE2OjQ5OjEwKToKSnVzdCBoZWFyZCBhbiBBdXN0cmFsaWFuIHNvY2NlciBmYW4gd2FzIGFycmVzdGVkIGFmdGVyIHRoZSBnYW1lIGluIEdlcm1hbnksCmNoYXJnZWQgd2l0aCBhc3NhdWx0aW5nIGFuIEl0YWxpYW4gU29jY2VyIGZhbi4gVGhlIEl0YWxpYW4gZmFuIHN1ZmZlcmVkCmZyYWN0dXJlcywgYnJ1aXNpbmcsIGFicmFzaW9ucyBhbmQgYSBmcmFjdHVyZWQgc2t1bGwuIEFzIGEgcmVzdWx0IG9mIHRoZXNlCmhvcnJlbmRvdXMgaW5qdXJpZXMsIHRoZSBJdGFsaWFuIG1hbiBoYXMgYW54aWV0eSwgZGVwcmVzc2lvbiBhbmQgaGFzIG5vdwpkZXZlbG9wZWQgRGlhYmV0ZXMuIFRoZSBBdXN0cmFsaWFuIHdhcyAyMCBtZXRyZXMgYXdheSBhdCB0aGUgdGltZSBvZiB0aGUKYXR0YWNrLiBUaGUgSXRhbGlhbiBpcyBleHBlY3RlZCB0byBtYWtlIGEgZnVsbCByZWNvdmVyeSBpbiA1IG1pbnV0ZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpad2VyZ2UgKEhpZ2hsYW5kZXIsIDMwLiBKdW4gMjAwNiwgMDk6MDA6MDEpOgpXaWUgYmVzY2hhZWZ0aWd0IG1hbiBlaW5lbiBad2VyZz8gTWFuIGtsZWJ0IGlobSBlaW4gR29sZHN0dWVjayBhdWYgZGVuClJ1ZWNrZW4uCgpXaWUgYmVzY2hhZWZ0aWd0IG1hbiB6d2VpIFp3ZXJnZT8gR2VuYXVzby4KClVuZCB3aWUgbWFjaHQgbWFuIGF1cyBkZW4gYmVpZGVuIHNpY2ggZ2VnZW5zZWl0aWcgamFnZW5kZW4gWndlcmdlbiBlaW4KbGVja2VyZXMgQWJlbmRlc3Nlbj8gTWFuIHdpcmZ0IGVpbiBHb2xkc3R1ZWNrIGluIGVpbiBGZXVlci4gVGlwOiBEaWUKWndlcmdlIHNpbmQgZHVyY2gsIHdlbm4gZGllIGRyZWkgR29sZHN0dWVja2UgYW5mYW5nZW4sIHp1IHNjaG1lbHplbi4KCkF1cyBkZW0gV0wgdWViZXJub21tZW4gdm9uCkhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5nZWhldWVyIChBbnRoZWEsIDMwLiBKdW4gMjAwNiwgMDk6MDY6NTEpOgpodHRwOi8vdXBsb2FkLndpa2ltZWRpYS5vcmcvd2lraXBlZGlhL2NvbW1vbnMvYS9hMC9FdnpvbmVuLmpwZwpTdHJ1bXBmaG9zZW4sIEJvbW1lbHNjaHVlaGNoZW4gdW5kIEJhbGxldHRyb2Vja2NoZW4gLSBvZGVyOiBXYXJ1bSBtaXIgR3JpZWNoZW4KbmllIHNvIGdhbnogZ2VoZXVlciB3YXJlbi4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbmdlaGV1ZXIgKFJ1bWF0YSwgMzAuIEp1biAyMDA2LCAwOTo0NjoxNik6Cn4jISBybj1BbnRoZWEgcnQ9MTE1MTY1MTIxMSByZz13aXR6ZQp+IyEgdGlkPTExNTE2NTEyMTEKRGFzIGtvbW10IHJhdXMsIHdlbm4gbWFuIGVpbmVuIEJheXJpc2NoZW4gS29lbmlnIHZvcmdlc2V0enQgYmVrb21tdC4KUnVtKioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvZ2VscyBTdGltbWUgKEtlc3NhLCAgMS4gSnVsIDIwMDYsIDIyOjM0OjEzKToKT2sgb2ssIGJlc3RpbW10IHVyYWx0LCBhYmVyIGljaCBrYW5udGUgaWhuIG5vY2ggbmljaHQgOikKCkRlciBFcnpiaXNjaG9mIHZvbiBLb2VsbiBzdGlyYnQuIEVyIHZlcm1hY2h0IHNlaW5lbiBQYXBhZ2VpIGRlbSBQYXBzdC4gRGVyClBhcGFnZWkgaGF0IGRpZSBBbmdld29obmhlaXQsIGplZGVuIFRhZyBpbiBkZXIgRnJ1ZWgsIHdlbm4gZGVyIEthcmRpbmFsIGlucwpaaW1tZXIga29tbXQsIHp1IHNhZ2VuOiAiR3V0ZW4gTW9yZ2VuLCBFdXJlIEVtaW5lbnouIiAKQWxzIHNlaW4gS2FlZmlnIG51biBpbSBBcmJlaXRzemltbWVyIGRlcyBQYXBzdGVzIHN0ZWh0LCBtYWNodCBlciBnZW5hdSBkYXMKR2xlaWNoZS4gSmVkZW4gTW9yZ2VuIHRvZW50IGVyOiAiR3V0ZW4gTW9yZ2VuLCBFdXJlIEVtaW5lbnouIiAKRGVyIGdhbnplIFZhdGlrYW4gaXN0IGVudHJ1ZXN0ZXQsIGRhc3MgZGVyIFBhcGFnZWkgbmljaHQgIkd1dGVuIE1vcmdlbiwgRXVyZQpIZWlsaWdrZWl0IiBzYWd0LCB3aWUgZXMgc2ljaCBkZW0gUGFwc3QgZ2VnZW51ZWJlciBnZWhvZXJ0LiBTaWUgcHJvYmllcmVuCmFsbGVzIE1vZWdsaWNoZSwgdW0gZGVtIFBhcGFnZWkgZGVuIG5ldWVuIFNwcnVjaCBiZWl6dWJyaW5nZW4gLSB2ZXJnZWJlbnMuIApTY2hsaWVzc2xpY2ggc2FndCBzaWNoIGRlciBQYXBzdDogIk1vcmdlbiBmcnVlaCBnZWhlIGljaCBpbiB2b2xsZW0gT3JuYXQsIG1pdApNaXRyYSwgSGlydGVuc3RhYiwgcHJ1bmt2b2xsZW0gTWVzc2dld2FuZCB1bmQgYWxsZW0gRHJ1bSB1bmQgRHJhbiBpbnMKQXJiZWl0c3ppbW1lci4gRGFubiBpc3QgZGVyIFBhcGFnZWkgc2ljaGVyIHNvIHZvbGxlciBFaHJmdXJjaHQsIGRhc3MgaWhtIGdhcgpuaWNodHMgYW5kZXJlcyB1ZWJyaWdibGVpYnQsIGFscyAnSGVpbGlna2VpdCcgenUgc2FnZW4uIiAKR2VzYWd0LCBnZXRhbi4gQW0gbmFlY2hzdGVuIE1vcmdlbiBiZWdpYnQgc2ljaCBkZXIgUGFwc3Qgdm9sbCBhdXNzdGFmZmllcnQgaW5zCkFyYmVpdHN6aW1tZXIuIApEZXIgUGFwYWdlaSBzdHV0enQgdW5kIHNjaGVpbnQgenVlcnN0IGV0d2FzIHZlcndpcnJ0IHp1IHNlaW4uIApEYW5uIHJ1ZnQgZXI6ICJLb2VsbGUgQWxhYWYhIEtvZWxsZSBBbGFhZiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgQXBmZWwgdW5kIHNvIChLZXNzYSwgIDEuIEp1bCAyMDA2LCAyMjo1MDo1MCk6CkRpZSBNdXR0ZXIgc2NoaW1wZnQgbWl0IGlocmVyIFRvY2h0ZXI6ICJEaWVzZSBKdWdlbmQgdm9uIGhldXRlISBNaXQgMTYgSmFocmVuCmplZGVuIEFiZW5kIG1pdCBlaW5lbSBhbmRlcmVuIGluIGRpZSBEaXNjbywgYWJlciBNYW1hcyAzMC4gR2VidXJ0c3RhZwp2ZXJnZXNzZW4uLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVm9nZWxzIFN0aW1tZSAoWm9vaywgIDMuIEp1bCAyMDA2LCAwODozNjozNSk6Cn4jISBybj1LZXNzYSBydD0xMTUxNzg2MDUzIHJnPXdpdHplCn4jISB0aWQ9MTE1MTc4NjA1MwpOdXIgZnVlciBkaWUgRXJ6YWVobGVyaW46IERlciBXaXR6IGlzdCBhdWYgZGVuIEthcmRpbmFsIEpvc2VwaCBGcmluZ3MKZ2VtdWVuenQgdW5kIGRlciBXaXR6IHdpcmQgbm9jaCBiZXNzZXIsIHdlbm4gbWFuIGlobiBnbGVpY2ggbWl0ICJGcmluZ3MiCmVyemFlaGx0LiAoQXVzc2VyZGVtIHBhc3N0IGRhbm4gYXVjaCBkaWUgQW5yZWRlIEVtaW5lbnogYmVzc2VyIDspIAoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVm9nZWxzIFN0aW1tZSAoS2Vzc2EsICAzLiBKdWwgMjAwNiwgMTA6MDc6MzkpOgp+IyEgcm49Wm9vayBydD0xMTUxOTA4NTk1IHJnPXdpdHplCn4jISB0aWQ9MTE1MTc4NjA1MwpXYXJ1bSBwYXNzdCBlcyBncmFkIGF1ZiBGcmluZ3MgdW5kIHdlbmlnZXIgei5CLiBhdWYgSG9lZmZuZXI/IEljaCBrZW5uZSBkaWUKa2FybmV2YWxpc3Rpc2NoZW4gTmVpZ3VuZ2VuIGRlciBIZXJyZW4gbmljaHQgc28gZ2VuYXUgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFZvZ2VscyBTdGltbWUgKFpvb2ssICAzLiBKdWwgMjAwNiwgMjA6MTE6MzMpOgp+IyEgcm49S2Vzc2EgcnQ9MTE1MTkxNDA1OSByZz13aXR6ZQp+IyEgdGlkPTExNTE3ODYwNTMKVGphLCBkYXMgbWFnIG5hdHVlcmxpY2ggZWluIGdld2lzc2VyIEdydW5kIHNlaW4uIAoKWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZXIgQXBmZWwgdW5kIHNvIChTZWxldmVuLCAxMi4gSnVsIDIwMDYsIDEwOjUyOjUzKToKfiMhIHJuPUtlc3NhIHJ0PTExNTE3ODcwNTAgcmc9d2l0emUKfiMhIHRpZD0xMTUxNzg3MDUwCjpoYXQgaGV1dGUgZWluZSBsYW5nZSBMZWl0dW5nLiBBYmVyIG51bnRlciBadWhpbGZlbmFobWUgbWVocmVyZXIgSGFlbmRlIGlzdCBlcwppaHIgZ2VsdW5nZW4gZGllc2VzIFJhZXRzZWwgenUgbG9lc2VuLiAoZXMgaXN0IGVpbmZhY2ggenUgd2FybSB6dW0gc2NobGFmZW4pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmVuY2ggRnJpZXM/IChBbnRoZWEsIDIwLiBKdWwgMjAwNiwgMTc6MTg6MzUpOgpMZWlkZXIgbmljaHQgZ3V0IHVlYmVyc2V0emJhciwgZHJ1bSBtYWwgd2llZGVyIGF1ZiBFbmdsaXNjaDoKVGhlcmUgd2FzIG9uY2UgYSBzaGVlcCBmYXJtZXIgd2hvIG5lZWRlZCBoZWxwIHdpdGggdGhlIGRpZmZpY3VsdCB0YXNrIG9mCmNhc3RyYXRpbmcgc29tZSBvZiBoaXMgaW5mZXJpb3IgbWFsZSBzaGVlcCB0byBrZWVwIHRoZW0gZnJvbSBicmVlZGluZyB3aXRoIHRoZQpmZW1hbGVzLiBIZSBoaXJlZCBhIEZyZW5jaCBndXkgd2hvIGRpZG4ndCBzcGVhayBtdWNoIEVuZ2xpc2gsIGJ1dCB3YXMgYSB2ZXJ5Cmdvb2Qgd29ya2VyLiAKCkFmdGVyIHRoZSBmaXJzdCBkYXksIHRoZXkgaGFkIHN1Y2Nlc3NmdWxseSBjYXN0cmF0ZWQgMTQgc2hlZXAgYW5kIGhpcyBGcmVuY2gKd29ya2VyIHdhcyBqdXN0IGFib3V0IHRvIHRocm93IGF3YXkgdGhlICJwYXJ0cyIsIGJ1dCB0aGUgc2hlZXAgZmFybWVyIHllbGxlZCwKIk5vISBEb24ndCB0aHJvdyB0aG9zZSBhd2F5ISBNeSB3aWZlIGZyaWVzIHRoZW0gdXAgYW5kIHdlIGVhdCB0aGVtLiBUaGV5J3JlCmRlbGljaW91cyBhbmQgd2UgY2FsbCB0aGVtICdzaGVlcCBmcmllcycuIiAKCkxhdGVyIHRoYXQgZGF5LCB0aGUgRnJlbmNoIGhpcmVkIGhhbmQgY2FtZSBpbiBmb3Igc3VwcGVyLCBhbmQgaW5kZWVkIHRoZQonc2hlZXAgZnJpZXMnIHdlcmUgdGFzdHkuIAoKVGhlIG5leHQgZGF5LCB0aGV5IGNhc3RyYXRlZCAxNiBzaGVlcCwgYW5kIHRoZSBmb2xsb3dpbmcgZXZlbmluZyB0aGV5IGFsbApzZXR0bGVkIGRvd24gdG8gYW5vdGhlciBzdXBwZXIgb2YgJ3NoZWVwIGZyaWVzJy4gVGhlIHRoaXJkIGRheSwgaG93ZXZlciwgd2hlbgp0aGUgc2hlZXAgZmFybWVyIGNhbWUgaG9tZSwgaGUgYXNrZWQgaGlzIHdpZmUgd2hlcmUgdGhlIEZyZW5jaCBoaXJlZCBoYW5kIHdhcywKYW5kIHNoZSBzYWlkLCAiWW91IGtub3csIGl0J3MgdGhlIHdlaXJkZXN0IHRoaW5nISBJIHRvbGQgaGltIHNpbmNlIHRoZXJlCndlcmVuJ3QgdmVyeSBtYW55ICdzaGVlcCBmcmllcycgdGhpcyBldmVuaW5nLCB3ZSB3ZXJlIGFsc28gZ29pbmcgdG8gaGF2ZQpGcmVuY2ggZnJpZXMsIGFuZCBoZSByYW4gbGlrZSBoZWxsISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGcmVuY2ggRnJpZXM/IChPcmt0b2V0ZXIsIDIyLiBKdWwgMjAwNiwgMTE6NDI6MDQpOgp+IyEgcm49QW50aGVhIHJ0PTExNTM0MDg3MTUgcmc9d2l0emUKfiMhIHRpZD0xMTUzNDA4NzE1Ck1pdCAiZnJlZWRvbSBmcmllcyIgd2FlcmUgZGFzIG5pY2h0IHBhc3NpZXJ0Li4uIAoKT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZSQVVFTiAuLi4gQXVzIGRlciBTaWNodCBiZXJ1ZWhtdGVyIE1hZW5uZXIgPyAoQW50aGVhLCAyNi4gSnVsIDIwMDYsIDEwOjM2OjMxKToKCkJpZ2FtaWUgYmVkZXV0ZXQsIGVpbmUgRnJhdSB6dSB2aWVsIHp1IGhhYmVuLiBNb25vZ2FtaWUgaXN0IGRhc3NlbGJlISAKUm93YW4gQXRraW5zb24gKENvbWVkaWFuKQoKRXMgaXN0IHNjaG9uIGtvbWlzY2gsIGRhc3MgZWluIE1hbm4sIGRlciBzaWNoIHVtIG5pY2h0cyBhdWYgZGVyIFdlbHQgU29yZ2VuCm1hY2hlbiBtdXNzLCBoaW5nZWh0IHVuZCBlaW5lIEZyYXUgaGVpcmF0ZXQuIApFbWluZW0gKFJhcHBlcikKCkRpZSBGcmF1IGlzdCBkaWUgZWluemlnZSBCZXV0ZSwgZGllIGlocmVtIEphZWdlciBhdWZsYXVlcnQuLi4gCkpvZXJnIEtub2VyIChDb21lZGlhbikKCkVpbmUgRWhlIGlzdCB3aWUgZWluIFJlc3RhdXJhbnRiZXN1Y2g6IE1hbiBkZW5rdCBpbW1lciwgbWFuIGhhdCBkYXMgQmVzdGUKZ2V3YWVobHQsIGJpcyBtYW4gc2llaHQsIHdhcyBkZXIgTmFjaGJhciBiZWtvbW10Li4uIApCZXJuZCBTdGVsdGVyIChDb21lZGlhbikKCkZyYXVlbiB0dW4gZnVlciBpaHIgQWV1c3NlcmVzIERpbmdlLCBmdWVyIGRpZSBqZWRlciBHZWJyYXVjaHR3YWdlbmhhZW5kbGVyIGlucwpHZWZhZW5nbmlzIGtvbW10Li4uIApGaWNrIE5vbHRlIChTY2hhdXNwaWVsZXIpCgpXZW5uIGVpbmUgRnJhdSBoaW50ZXJoZXIgZGllIER1bW1lIGlzdCwga2FubiBtYW4gc2ljaGVyIHNlaW4sIGRhc3Mgc2llIGVzIGF1Y2gKc2Nob24gdm9yaGVyIHdhciEgClNlYW4gQ29tYnMgKFJhcHBlcikKCkRlciBIYXVwdGdydW5kIGZ1ZXIgYWxsZSBTY2hlaWR1bmdlbiBpc3QgdW5kIGJsZWlidCBkaWUgSG9jaHplaXQuLi4gCkd1ZW50ZXIgV2lsbHVtZWl0IChDb21lZGlhbikKCkluIE11ZW5jaGVuIG1vZWNodGUgamVkZSB2aWVydGUgRnJhdSBtaXQgUm9iZXJ0byBCbGFuY28gc2NobGFmZW4gLSBkaWUgYW5kZXJlbgpkcmVpIGhhYmVuIGVzIHNjaG9uIGdldGFuISAKUnVkaSBDYXJlbGwgKENvbWVkaWFuKQoKSW4gQmllciBzaW5kIHdlaWJsaWNoZSBIb3Jtb25lLiBUcmlua3QgbWFuIHp1IHZpZWwgZGF2b24sIHJlZGV0IG1hbiB3aXJyIHVuZAprYW5uIGtlaW4gQXV0byBtZWhyIGZhaHJlbi4uLiAKQ3JhaWcgRGF2aWQgKFBvcHNhZW5nZXIpCgpFcyBnaWJ0IG51ciBlaW5lcywgd2FzIHRldXJlciBpc3QgYWxzIGVpbmUgRnJhdSBuYWVtbGljaCBlaW5lIEV4LUZyYXUuLi4gCkphY2sgTmljaG9sc29uIChTY2hhdXNwaWVsZXIpCgpGZW1pbmlzbXVzIGV4aXN0aWVydCBudXIsIHVtIGhhZXNzbGljaGUgRnJhdWVuIGluIGRpZSBHZXNlbGxzY2hhZnQgenUKaW50ZWdyaWVyZW4uLi4gCkNoYXJsZXMgQnVrb3dza2kgKFNjaHJpZnRzdGVsbGVyKQoKU29sYW5nZSBkZXIgTmFnZWxsYWNrIG5pY2h0IHRyb2NrZW4gaXN0LCBpc3QgZWluZSBGcmF1IHdlaHJsb3MuLi4gCkJ1cnQgUmV5bm9sZHMgKFNjaGF1c3BpZWxlcikKClZpZWxlIEZyYXVlbiBzYWdlbiBzaWNoOiBXb3p1IGRpZSBCcnVzdCB2ZXJncm9lc3Nlcm4sIHNvbGwgZXIgc2ljaCBkb2NoIHNlaW5lCkhhZW5kZSB2ZXJrbGVpbmVybiBsYXNzZW4uLi4gCk1hcmsgTWNHcmF0aCAoUm9ja3NhZW5nZXIpCgpFaW4gR2VudGxlbWFuIGJlc2NodWV0enQgZWluZSBGcmF1IHNvIGxhbmdlLCBiaXMgZXIgbWl0IGlociBhbGxlaW4gaXN0Li4uIApCZW5pY2lvIERlbCBUb3JvIChTY2hhdXNwaWVsZXIpCgpNYW4gc29sbHRlIG51ciBzY2hvZW5lIEZyYXVlbiBoZWlyYXRlbi4gU29uc3QgaGF0IG1hbiBrZWluZSBBdXNzaWNodCwgc2llCndpZWRlciBsb3N6dXdlcmRlbi4uLiAKUm9kIFN0ZXdhcmQgKFJvY2tzYWVuZ2VyKSAKCkljaCBnbGF1YmUgbmljaHQsIGRhc3MgdmVyaGVpcmF0ZXRlIE1hZW5uZXIgbGFlbmdlciBsZWJlbiBhbHMgRnJhdWVuLiBFcyBrb21tdAppaG5lbiBudXIgbGFlbmdlciB2b3IuLi4gClNpciBQZXRlciBVc3Rpbm92IChTY2hhdXNwaWVsZXIpCgpFaW4gZXJmb2xncmVpY2hlciBNYW5uIGlzdCBlaW4gTWFubiwgZGVyIG1laHIgdmVyZGllbnQsIGFscyBzZWluZSBGcmF1CmF1c2dlYmVuIGthbm4uCkVpbmUgZXJmb2xncmVpY2hlIEZyYXUgaXN0IGVpbmUsIGRpZSBzbyBlaW5lbiBNYW5uIGZpbmRldC4gCk1hcmlvIEFkb3JmIChTY2hhdXNwaWVsZXIpCgpGcmF1ZW4gYXJiZWl0ZW4gaGV1dHp1dGFnZSBhbHMgSm9ja2V5cywgc3RlaGVuIEZpcm1lbiB2b3IgdW5kIGZvcnNjaGVuIGluIGRlcgpBdG9tcGh5c2lrLiBXYXJ1bSBzb2xsdGVuIHNpZSBpcmdlbmR3YW5uIG5pY2h0IGF1Y2ggcnVlY2t3YWVydHMgZWlucGFya2VuCmtvZW5uZW4uLi4gCkJpbGwgVmF1Z2hhbiAoU2NoYXVzcGllbGVyKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEZSQVVFTiAuLi4gQXVzIGRlciBTaWNodCBiZXJ1ZWhtdGVyIE1hZW5uZXIgPyAoSG9ibywgMjcuIEp1bCAyMDA2LCAxMToxMDo1Myk6Cn4jISBybj1BbnRoZWEgcnQ9MTE1MzkwMjk5MSByZz13aXR6ZQp+IyEgdGlkPTExNTM5MDI5OTEKQWxzbyBhdWNoIHdlbm5zIGpldHp0IHdpZWRlciBwaWVuemlnIGlzdC4uLgpEZXIgU3BydWNoIHZvbiBFbWluZW0gaXN0IHNjaG9uIGFlbHRlciB1bmQgc3RhbW10IG1laW5lcyBXaXNzZW5zIG5hY2ggKHp1IGZhdWwKenVtIE5hY2hzY2hsYWdlbikgdm9uIEhlc3NlIG9kZXIgc28uClVuZCBkaWUgdmVyaGVpcmF0ZXRlbiBNYWVubmVyIGxlYmVuIG5pY2h0IGxhZW5nZXIgYWxzIGlocmUgRnJhdWVuIHNvbmRlcm4gYWxzCnVudmVyaGVpcmF0ZXRlIE1hZW5uZXIgOykKCiAgSG9ibwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGUkFVRU4gLi4uIEF1cyBkZXIgU2ljaHQgYmVydWVobXRlciBNYWVubmVyID8gKEFudGhlYSwgMjcuIEp1bCAyMDA2LCAxMToxMTo1NSk6Cn4jISBybj1Ib2JvIHJ0PTExNTM5OTE0NTMgcmc9d2l0emUKfiMhIHRpZD0xMTUzOTAyOTkxCkljaCBkYWNodGUgZGFzIGhlaXNzdDoKVmVyaGVpcmF0ZXRlIE1hZW5uZXIgbGViZW4gbmljaHQgbGFlbmdlciBhbHMgdW52ZXJoZWlyYXRldGUsIGVzIGtvbW10IGlobmVuCm51ciBsYWVuZ2VyIHZvci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogRnJlbmNoIEZyaWVzPyAoU2VsZXZlbiwgMjcuIEp1bCAyMDA2LCAxMjoyMjoyNCk6Cn4jISBybj1Pcmt0b2V0ZXIgcnQ9MTE1MzU2MTMyNCByZz13aXR6ZQp+IyEgdGlkPTExNTM0MDg3MTUKS2FzdHJhdGlvbiBkZXIgRnJlaWhlaXQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYW5uIHd1cmRlIGRlciB6dWxldHp0IGdlcG9zdGV0PyAoQW50aGVhLCAyNy4gSnVsIDIwMDYsIDE1OjM0OjA3KToKCk5ldWxpY2ggYW0gRHJpdmUtSW4tU2NoYWx0ZXIuLi4uLgoKQW0gbWVpc3RlbiBTcGFzcyBtYWNodCBlc3NlbiBpbSBBdXRvISBEZXN3ZWdlbiBiZXNpdHplIGljaCBkaWVzZSBlcmhvZWh0ZQpBZmZpbml0YWV0IHp1IERyaXZlLUluLVNjaGFsdGVybiwgc3BlaXppZWxsIGluIG1laW5lbQpMaWVibGluZ3MtRmFzdC1Gb29kLVJlc3RhdXJhdG4uIERhcyBWZXJnbnVlZ2VuIGFuIGRpZXNlciBTZWxmLVNlcnZpY2UtVmVyc2lvbgpkZXMgRXNzZW5zIGF1ZiBSYWVkZXJuIHdpcmQgYWxsZXJkaW5ncyBlcmhlYmxpY2ggZHVyY2ggZGllIFF1YWxpdGFldCBkZXIKR2VnZW5zcHJlY2hhbmxhZ2UgZ2VtaW5kZXJ0LiBHZWdlbnNwcmVjaGFubGFnZT8gTWVpbmVyIFVlYmVyemV1Z3VuZyBuYWNoIGhhdApzaWUgZGllc2VuIE5hbWVuIGRlc2hhbGIgYmVrb21tZW4sIHdlaWwgc2llIHZvZWxsaWcgZ2VnZW4gZGFzIFNwcmVjaGVuCmF1c2dlbGVndCBpc3QuCgoKIkhpZXJlIEJlY2hlbHVuIGhpcHBlISIga25hcnp0IGVzIG1pciBhdXMgZGVtIExhdXRzcHJlY2hlciBlbnRnZWdlbiAtIHNvdW5kcwpsaWtlIFNjaGVsbGFja3BsYXR0ZS4gQXVzIEVyZmFocnVuZyBhbGxlcmRpbmdzIHdlaXNzIGljaCwgZGFzcyBzaWNoIGRpZSBTdGltbWUKKG1hZW5ubGljaD8gV2VpYmxpY2g/Li4uLi4uLndvaGwgZWhlciBtYWVubmxpY2ghPykgYW0gYW5kZXJlbiBFbmRlIGRpZXNlcwpEb3NlbnRlbGVmb25zIHNvZWJlbiBuYWNoIG1laW5lciBCZXN0ZWxsdW5nIGVya3VuZGlndCBoYXQuCgpKZXR6dCBlaW5mYWNoIHp1IGJlc3RlbGxlbiB3YWVyZSBsYW5nd2VpbGlnLiBEZW16dWZvbGdlIHN0ZWxsZSBpY2ggenVuYWVjaHN0CmVpbmUgRnJhZ2U6ICJIYWJlbiBTaWUgZXR3YXMgdm9tIEh1aG4/IgoKQXVzIGRlbSBMYXV0c3ByZWNoZXIgZXJ0b2VudCBlaW5lIHNjaHdlciB2ZXJzdGFlbmRsaWNoZSBBbnR3b3J0LCBkaWUgYWJlcgplaW5kZXV0aWcgbWl0IC4uLmlja2VuIGVuZGV0LgoKSWNoIGFudHdvcnRlOiAiU3BhZXRlciB2aWVsbGVpY2h0LCB6dW5hZWNoc3Qgd3VlcmRlIGljaCBnZXJuZSBldHdhcyBlc3Nlbi4iCgpFdHdhcyBsYXV0ZXIgdG9lbnQgZXMgenVydWVjazogInNjaGlja2VuISIKCkljaCBrYW5uIGVzIG1pciBuaWNodCB2ZXJrbmVpZmVuIDoiIE5laW4sIGljaCB3dWVyZGUgZXMgZ2xlaWNoIG1pdG5laG1lbi4iCgpFaW5lIGt1cnplIFBhdXNlIGVuc3RlaHQsIGljaCBzdGVsbGUgbWlyIGdlcmFkZSBiZWx1c3RpZ3QgZGllIGdlbmVydnRlIFZpc2FnZQpkZXMgTWNLbmVjaHRzIHZvci4gQWxzIGRpZSBTcHJlY2hlcGF1c2UgenUgbGFuZyB6dSB3ZXJkZW4gZHJvaHQsIHNhZ2UgaWNoOiAiCkFjaCBzbywgU2llIG1laW5lbiBDaGlja2VuLiBOb2UsIGxpZWJlciBkb2NoIG5pY2h0LiBIYWJlbiBTaWUgdmllbGxlaWNodApQcmVzc2t1aCBtaXQgVG9tYXRlbnR1bmtlIGluIFJvc3Ricm9ldGNoZW4/IgoKIkhhbWJ1cmdlcj8iIGZyYWd0IG1laW4gdW5zaWNodGJhcmVzIEdlZ2VudWViZXIgenVydWVjay4KCkRlciBXYWhyaGVpdCBlbnRzcHJlY2hlbmQgYW50d29ydGUgaWNoOiAiTmVpbiwgaWNoIGJpbiB2b24gaGllci4gQWJlciBoYXQgZGFzCmRlbm4gRWluZmx1c3MgYXVmIG1laW5lIEJlc3RlbGx1bmc/IgoKIldvLWxsZW4gU2llIGUtaS1uLWUtbiBILUEtTS1CLVUtUi1HLUUtUiA/IgoKIkpldHp0IGJlcnVoaWdlbiBTaWUgc2ljaCBlcnN0IG1hbC4gSmEsIGljaCBuZWhlbSBlaW5lbiEiCgoiU2NoaWVzcyIKCiJTdGltbXQsIGhhdHRlIGljaCBuYWNoIG1laW5lciBsZXR6dGVuIE1haWx6ZWl0IGhpZXIuIE1pdHRsZXJ3ZWlsZSBpc3QgbWVpbmUKRGFybWZsb3JhIGFsbGVyZGluZ3Mgd2llZGVyIGluIE9yZG51bmcsIGljaCBkZW5rZSwgaWNoIGthbm4gZXMgZXJuZXV0CnJpc2tpZXJlbiEiCgpEZXIgU3RpbW1lbmluaGFiZXIgYmVnaW5udCwgbWlyIGxlaWQgenUgdHVuLiBFciBrYW5uIGphIG5pY2h0IGZ1ZXIgc2VpbmVuIEpvYi4KSWNoIGFiZXIgYXVjaCBuaWNodC4uLi4uISEhCgoiT2IgU2llIEthZWFlYWVhZWFlc2UgYXVmIElocmVuIEhhbWJ1cmdlciBtb2VjaHRlbiE/IgoKIkFoLCBqYSBnZXJuZS4gSWNoIG5laG1lIGVpbmVuIG1pdHRlbGFsdGVuIFB5cmVuYWVlbi1CZXJna2Flc2UsIG5pY2h0IHp1IGRpY2sKZ2VzY2huaXR0ZW4gdW5kIHZvbiBlaW5lciBTZWl0ZSBsZWljaHQgYW5nZXNjaG1vbHplbi4iCgpPYiBkaWUgbmFlY2hzdGUgQW5zYWdlIGF1cyBkZW0gTGF1c3ByZWNoZXIgIlNpY2hlciBkb2NoIiBvZGVyICJBLS0tbG9jaCIKbGF1dGV0LCBrYW5uIGljaCBuaWNodCBleGFrdCBoZXJhdXNob2VyZW4uCgpEZXV0bGljaGVyIGplZG9jaCBlcmtsaW5ndCBudW46ICJXYXMgZGF6dT8iCgoiRG9jaCwgamEuIEljaCBuZWhtZSBnZXJuZSBkaWVzZSBnZXNhbHplbmVuIGZyaXR0aWVydGVuIEthcnRvZmZlbHN0YWViY2hlbi4iCgoiQWxzbyBQb21tZXMhIgoKIlZvbiBtaXIgYXVzIGF1Y2ggZGllISIKCiJHcm9zcywgbWl0dGVsLCBrbGVpbj8iCgoiR2VtaXNjaHQuIFVuZCB6d2FyIGpld2VpbHMgZWluIERyaXR0ZWwgZ3Jvc3NlLCBlaW5lcyBtaXR0ZWxlIHVuZCBlaW5lcyBtaXQKa2xlaW5lbi4iCgoiV29sbGVuIFNpZSBtaWNoIGVpZ2VuZGxpY2gtLS1waWlpaWVlZWVwLS0tLT8iCgpEaWVzZSB3aWVkZXJ1bSBzZWhyIGxhdXQgZm9ybXVsaWVydGUgRnJhZ2UgdmVyc3RlaGUgaWNoIGtsYXIgdW5kIGRldXRsaWNoLiBTaWUKdmVybGFuZ3QgZWluZSBlaHJsaWNoZSBBbnR3b3J0OiAiRmFsbHMgZGFzIGRpZSBCZWRpbmd1bmcgaXN0LCBoaWVyIGV0d2FzIHp1bQpFc3NlbiB6dSBiZWtvbW1lbi4gSmEuIEFsc28uIE1hY2hlbiB3aXIgd2VpdGVyLiIKCkRpZSBTdGltbWUgc2NobmF1ZnQga3VyeiB1bmQgZnJhZ3Q6IiBHdXQsIGd1dC4gRXR3YXMgenUgZGVuIFBvbW1lcz8iCgoiRWluIHNjaG9lbmVzIEVudHJlY290ZSwgYmx1dGlnLCB1bmQgZWluIEdsYXMgMTk5NmVyIFNwYWV0YnVyZ3VuZGVyLCBiaXR0ZS4iCgoiSUNIIEtPTU1FIEdMRUlDSCBSQVVTIFVORCBHRUIgRElSIEJMVVRJRyEhISEiCgoiTWFjaGVuIFNpZSBkYXMsIGFiZXIgc2NodWV0dGVsbiBTaWUgZGFiZWkgYml0dGUgZGVuIFdlaW4gbmljaHQuIgoKIlNjaGx1c3MgamV0enQuIFNjaGFsdGVyIHp3ZWkuIFZpZXIgRXVybyBmdWVuZnplaG4uIgoKU2Nob24gdm9yYmVpLiBHZXJhZGUsIGFscyBlcyBhbmZhZW5ndCBTcGFzcyB6dSBtYWNoZW4uIEFiZXIgaWNoIGhhYmUgbm9jaCBlaW4KQXNzIGltIEFlcm1lbC4gSWNoIHphaGxlIG1pdCBlaW5lbSAyMDAtRXVyby1TY2hlaW4uICJUdXQgbWlyIGxlaWQsIGljaCBoYWJlIGVzCm5pY2h0IGdyb2Vzc2VyLiIKClBJRVAhLi4uLi4KCkZyZXVuZGxpY2ggd2VyZGUgaWNoIGF1c2dla29ubnRlcnQuICJLZWluIFByb2JsZW0hIiBNaXQga2FsdGVtIEJsaWNrIGxhZXNzdAplaW4gYmVtdWV0enRlciBIZXJyIG1laW4gV2VjaHNlbGdlbGQgYXVmIGRlbiBTdGFobHRyZXNlbiBrbGFwcGVybi4KCk5pY2h0IG1pdCBtaXIgRnJldW5kY2hlbiBkZW5rZSBpY2ggbWlyISBJY2ggd2lsbCBkZW4gVHJpdW1waCEgWmVpdCBhbHNvIGZ1ZXJzCkZpbmFsZToKIkthbm4gaWNoIGJpdHRlIG5vY2ggZWluZSBRdWl0dHVuZyBoYWJlbj8gRnJhZ2UgIGljaCB1ZWJlcmZyZXVuZGxpY2guICJJc3QgZWluCkdlc2NoYWVmdHNlc3Nlbi4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdhbm4gd3VyZGUgZGVyIHp1bGV0enQgZ2Vwb3N0ZXQ/IChEYXJrbG9yLCAyNy4gSnVsIDIwMDYsIDE4OjIxOjE5KToKfiMhIHJuPUFudGhlYSBydD0xMTU0MDA3MjQ3IHJnPXdpdHplCn4jISB0aWQ9MTE1NDAwNzI0NwpJY2ggZ2xhdWIgZGllc2VyIEJlaXRyYWcgaXMgaW1tZXIgd2llZGVyIG5ldHQuCgpEYXJrbG9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBGUkFVRU4gLi4uIEF1cyBkZXIgU2ljaHQgYmVydWVobXRlciBNYWVubmVyID8gKFdvb2R5LCAgMi4gQXVnIDIwMDYsIDE3OjAwOjA3KToKfiMhIHJuPUFudGhlYSBydD0xMTUzOTkxNTE1IHJnPXdpdHplCn4jISB0aWQ9MTE1MzkwMjk5MQpVbmQgaWNoIGdsYXViZSBOb2x0ZSBoYXQgYXVjaCBlaW5lbiBhbmRlcmVuIFZvcm5hbWVuIGFscyBkZW4gYW5nZWdlYmVuZW4uLi4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXT1JLIChaZXNzdHJhLCAgOC4gQXVnIDIwMDYsIDIxOjU4OjI5KToKR2VyYWRlIHBlciBlTWFpbCBnZWtyaWVndCwgaGFldHRlIGVzIGJlaW5haGUgZGlyZWt0IGdlbG9lc2NodDoKCiAgVGhlcmUgaXMgYSBkYW5nZXJvdXMgdmlydXMgYmVpbmcgcGFzc2VkIGVsZWN0cm9uaWNhbGx5LCBvcmFsbHkgYW5kIGJ5IApoYW5kLgoKVGhpcyB2aXJ1cyBpcyBjYWxsZWQgV29ybS1PdmVybG9hZC1SZWNyZWF0aW9uYWwtS2lsbGVyIChXT1JLKS4gSWYgeW91CnJlY2VpdmUgV09SSyBmcm9tIGFueSBvZiB5b3VyIGNvbGxlYWd1ZXMsIHlvdXIgYm9zcywgb3IgYW55b25lIGVsc2UgdmlhIGFueQptZWFucyBETyBOT1QgVE9VQ0ggSVQuIFRoaXMgdmlydXMgd2lsbCB3aXBlIG91dCB5b3VyIHByaXZhdGUgbGlmZQpjb21wbGV0ZWx5LgoKSWYgeW91IHNob3VsZCBjb21lIGludG8gY29udGFjdCB3aXRoIFdPUkssIHB1dCB5b3VyIGphY2tldCBvbiBhbmQgdGFrZSB0d28KZ29vZCBmcmllbmRzIHRvIHRoZSBuZWFyZXN0IGJhci4gUHVyY2hhc2UgdGhlIGFudGlkb3RlLCBrbm93biBhcwpXb3JrLUlzb2xhdG9yLU5ldXRyYWxpemVyLUV4dHJhY3RvciAoV0lORSkgb3IKQm90aGVyc29tZS1FbXBsb3llci1FbGltaW5hdG9yLVJlYm9vdGVyIChCRUVSKS4gVGFrZSB0aGUgYW50aWRvdGUKcmVwZWF0ZWRseSB1bnRpbCBXT1JLIGhhcyBiZWVuIGNvbXBsZXRlbHkgZWxpbWluYXRlZCBmcm9tIHlvdXIgc3lzdGVtLgoKCllvdSBzaG91bGQgZm9yd2FyZCB0aGlzIHdhcm5pbmcgdG8gNSBmcmllbmRzLiBJZiB5b3UgZG8gbm90IGhhdmUgNSBmcmllbmRzLAp5b3UgaGF2ZSBhbHJlYWR5IGJlZW4gaW5mZWN0ZWQgYW5kIFdPUksgaXMgY29udHJvbGxpbmcgeW91ciBsaWZlLgoKWmVzc3RyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGllciBlaW4gbmV1ZXIgU3VwZXItV2l0eiAoUmVnZW5zY2hlaW4sIDE3LiBBdWcgMjAwNiwgMDI6NTU6MDYpOgooU2NoZWlzc2UsIG5pY2h0IG5vY2ggc28gZWluZXIpCkhhaGEKRWluIE1hbm4ga29tbXQgbWl0IHNlaW5lciBTY2hpbGRrcm9ldGUgdW50ZXJtIEFybSBhbiBkaWUgS2lub2thc3NlCnVuZCBtb2VjaHRlIGVpbmUgRWludHJpdHRza2FydGUga2F1ZmVuLiBEZXIgRWludHJpdHQgd2lyZCBpaG0gamVkb2NoIC0gCmRlciBTY2hpbGRrcm9ldGUgd2VnZW4gLSB2ZXJ3ZWhydC4gRGllc2Ugc29sbGUgZXIgenVoYXVzZSBsYXNzZW4uIApFciBnZWh0IHVtIGRpZSBuYWVjaHN0ZSBFY2tlICwgbWFjaHQgc2VpbmVuIFBhcmthIGF1Ziwgc3RlY2t0IHNpY2ggZGllClNjaGlsZGtyb2V0ZSB2b3JuZSBpbiBkaWUgSG9zZSwgbWFjaHQgZGVuIFBhcmthIHdpZWRlciB6dSB1bmQgZXJoYWVsdApudW4sIGRhIGVyIHNlaW4gSGF1c3RpZXIgb2ZmZW5zaWNodGxpY2ggaGVpbSBnZWJyYWNodCBoYXQsIGF1Y2ggc2VpbmUKS2lub2thcnRlIHVuZCBlaW5lbiBTaXR6cGxhdHogbmViZW4gZWluZW0gUGFlcmNoZW4uCkRpZSBLaW5vd2VyYnVuZyBpc3Qgdm9yYmVpLCBlcyB3aXJkIGR1bmtlbCBpbSBLaW5vLiBEZXIgTWFubiBvZWZmbmV0IApzZWluZW4gSG9zZW5zdGFsbCBlaW4gd2VuaWcsIGRhbWl0IHNlaW5lIFNjaGlsZGtyb2V0ZSBhdWNoIEx1ZnQgYmVrb21tdC4KRGVyIEhhdXB0ZmlsbSBoYXQgZ2VyYWRlIGFuZ2VmYW5nZW4sIGRhIGZsdWVzdGVydCBkaWUgRnJhdSBuZWJlbiBkZW0gCk1hbm4genUgaWhyZW0gRnJldW5kIHp1OiAiRHUsIGRlciBkYSBuZWJlbiBtaXIsIGRhcyBpc3QgdmllbGxlaWNodCBlaW5lIApTYXUhIiAtICJXaWVzbyBkYXMgZGVubj8iIGVudGdlZ25ldCBkZXIganVuZ2UgTWFubiB1bmQgZXJoYWVsdCAiRGVyCkhvc2Vuc3RhbGwgaXN0IG9mZmVuISIgenVyIEFudHdvcnQuICJEYXMgaXN0IGRvY2ggbmljaHQgc28gc2NobGltbSwiIApiZXJ1aGlndCBlciBzZWluZSBGcmV1bmRpbiwgImRhcyBoYWJlIGljaCBkb2NoIGF1Y2ghIi4KRXJyZWd0IGFudHdvcnRldCBzaWU6ICJKYSBzY2hvbiwgYWJlciBkZW0gc2VpbmVyIGhhZW5ndCByYXVzISIgLSAiRGFzIAptYWNodCBkb2NoIG1laW5lciBhdWNoLCBsYXNzJyBoYWx0IGRlbiBhcm1lbiBNYW5uIGluIFJ1aGUiIGVyd2lkZXJ0CmRlciBqdW5nZSBNYW5uIHZlcnN0YWVuZG5pc2xvcy4gIkphLCBqYSwgc2Nob24sIiwgZmx1ZXN0ZXJ0IHNpZSB6dXJ1ZWNrLAoiYWJlciBkZWluZXIgZnJpc3N0IHdlbmlnc3RlbnMgbmljaHQgbWVpbiBQb3Bjb3JuLiIKKioqIEdvdHQgd2FyIGRlciB3aWVkZXIgc2NobGVjaHQKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NobGVjaHRlciBFbGVrdHJpa2Vyd2l0eiAoQW50aGVhLCAxOC4gQXVnIDIwMDYsIDEyOjE5OjA4KToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gTWlsY2hyZWlzIHVuZCBlaW5lbSBFbGVrdHJpa2VyPwpEZW4gTWlsY2hyZWlzIGlzc3QgbWFuIG1pdCBadWNrZXIgdW5kIFppbXQsIGRlciBFbGVrdHJpa2VyIGxpZWd0IGltIFppbW1lciB1bmQKenVja3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXTSAyMDEwIC0gZGllIFdlbHQgenUgR2FzdC4uLi4gKEFudGhlYSwgMjkuIEF1ZyAyMDA2LCAxMzowNTowNSk6CkRpZXNlIEZyYWdlbiB1ZWJlciBTdWVkYWZyaWthIHd1cmRlbiBhdWYgZWluZXIgc3VlZGFmcmlrYW5pc2NoZW4KVG91cmlzbXVzd2Vic2VpdGUgZ2VzdGVsbHQgdW5kIHZvbSBXZWJtYXN0ZXIgZGVyIFNlaXRlIGJlYW50d29ydGV0LiBEaWVzZXIKaGF0dGUgb2ZmZW5zaWNodGxpY2ggcmljaHRpZyBndXRlIExhdW5lIQoKRjogV2VyZGUgaWNoIGluIGRlbiBTdHJhc3NlbiBFbGVmYW50ZW4gc2VoZW4/IChVU0EpCkE6IEhhZW5ndCBkYXZvbiBhYiwgd2llIHZpZWwgQWxrb2hvbCBTaWUgdHJpbmtlbi4KCkY6IElzdCBlcyBzaWNoZXIsIGluIGRlbiBCdWVzY2hlbiBpbiBTdWVkYWZyaWthIGhlcnVtenVsYXVmZW4oU2Nod2VkZW4pCkE6IEhtIC0gZXMgaXN0IGFsc28gd2Fociwgd2FzIG1hbiB1ZWJlciBkaWUgU2Nod2VkZW4gc2FndCE/CgpGOiBXaWUgbGFldWZ0IGRpZSBaZWl0IGluIFN1ZWRhZnJpa2E/IChVU0EpCkE6IFJ1ZWNrd2FlcnRzLiBCbGVpYmVuIFNpZSBuaWNodCB6dSBsYW5nZSwgc29uc3Qgc2luZCBTaWUgenUga2xlaW4sIHVtIGFsbGVpbgp3aWVkZXIgenVydWVja3p1ZmxpZWdlbi4KCkY6IEdpYnQgZXMgQVRNcyAoR2VsZGF1dG9tYXRlbikgaW4gU3VlZGFmcmlrYT8gVW5kIGtvZW5uZW4gU2llIG1pciBiaXR0ZSBlaW5lCkxpc3RlIHZvbiBkaWVzZW4gaW4gSm9oYW5uZXNidXJnLCBLYXBzdGFkdCwgS255c25hIHVuZCBKZWZmcmV5cyBCYXkgc2NoaWNrZW4/CkE6IEFuIHdhcyBpc3QgSWhyIGxldHp0ZXIgU2tsYXZlIGdlc3RvcmJlbj8KCkY6IEtvZW5uZW4gU2llIG1pciBJbmZvcm1hdGlvbmVuIHVlYmVyIEtvYWxhYmFlcmVucmVubmVuIGluIFN1ZWRhZnJpa2EKc2NoaWNrZW4gKFVTQSkKQTogQXVzLXRyYS1saS1lbiBpc3QgZGllIGdyb3NzZSBJbnNlbCBpbiBkZXIgTWl0dGUgZGVzIFBhemlmaWtzLiBBZi1yaS1rYSBpc3QKZGVyIGdyb3NzZSBkcmVpZWNraWdlIEtvbnRpbmVudCBzdWVkbGljaCB2b24gRXVyb3BhLCBXbyBlcyBrZWluZSAuLi4gYWNoLAp2ZXJnZXNzZW4gU2llcy4gU2ljaGVyLCBLb2FsYWJhZXJlbnJlbm5lbiBmaW5kZW4gamVkZW4gRGllbnN0YWdhYmVuZCBpbgpIaWxsYnJvdyBzdGF0dC4gS29tbWVuIFNpZSBuYWNrdC4KCkY6IFdlbGNoZSBSaWNodHVuZyBpc3QgTm9yZGVuIGluIFN1ZWRhZnJpa2E/IChVU0EpCkE6IFNlaGVuIFNpZSBuYWNoIFN1ZWRlbiB1bmQgZHJlaGVuIFNpZSBzaWNoIGRhbm4gdW0gMTgwIEdyYWQuCgpGOiBLYW5uIGljaCBCZXN0ZWNrIGluIFN1ZWRhZnJpa2EgZWluZnVlaHJlbj8gKFVLKQpBOiBXaWVzbz8gTmVobWVuIFNpZSBkb2NoIGRpZSBGaW5nZXIsIGdlbmF1IHdpZSB3aXIuCgpGOiBHaWJ0IGVzIFBhcmZ1bSBpbiBTdWVkYWZyaWthPyAoRnJhbmtyZWljaCkKQTogTmVpbiwgYnJhdWNoZW4gd2lyIG5pY2h0LiBXSVIgc3RpbmtlbiBuaWNodCEKCkY6IEtvZW5uZW4gU2llIG1pciBkaWUgUmVnaW9uZW4gaW4gU3VlZGFmcmlrYSBuZW5uZW4sIHdvIGVzIHdlbmlnZXIgRnJhdWVuCmdpYnQgYWxzIE1hZW5uZXI/IChJdGFsaWVuKQpBOiBKYSwgaW4gTmFjaHRrbHVicyBmdWVyIFNjaHd1bGUuCgpGOiBGZWllcm4gU2llIFdlaWhuYWNodGVuIGluIFN1ZWRhZnJpa2E/IChGcmFua3JlaWNoKQpBOiBHZWxlZ2VudGxpY2ggLSBkYXMgaGVpc3N0IHVuZ2VmYWVociBlaW5tYWwgaW0gSmFoci4KCkY6IEdpYnQgZXMgZGllIEJldWxlbnBlc3QgaW4gU3VlZGFmcmlrYT8gKERldXRzY2hsYW5kKQpBOiBOZWluLiBBYmVyIGJyaW5nZW4gU2llIHNpZSBkb2NoIG1pdCEKCkY6IFdlcmRlIGljaCBkb3J0IEVuZ2xpc2NoIHNwcmVjaGVuIGtvZW5uZW4/IChVU0EpCkE6IFNpY2hlciAtIHdlbm4gU2llIGRpZXNlIFNwcmFjaGUgYmVoZXJyc2NoZW4sIGtvZW5uZW4gU2llIHNpZSBhdWNoIGRvcnQKc3ByZWNoZW4uCgpGOiBCaXR0ZSBzY2hpY2tlbiBTaWUgbWlyIGVpbmUgTGlzdGUgbWl0IGRlbiBLcmFua2VuaGFldXNlcm4sIGRpZSBlaW4gU2VydW0KZ2VnZW4gS2xhcHBlcnNjaGxhbmdlbmJpc3NlIGJlc2l0emVuLiAoVVNBKQpBOiBLbGFwcGVyc2NobGFuZ2VuIGdpYnQgZXMgbnVyIGluIEEtbWUtcmkta2EsIHdvIFNpZSBoZXJrb21tZW4uIEluIFN1ZWRhZnJpa2EKZ2lidCBlcyBudXIgdm9sbGtvbW1lbiBoYXJtbG9zZSBTY2hsYW5nZW4gLSBkaWVzZSBrb2VubmVuIHNpY2hlciBnZWhhbmRoYWJ0CndlcmRlbiB1bmQgZWlnbmVuIHNpY2ggaGVydm9ycmFnZW5kIGFscyBTcGllbGthbWVyYWRlbiBmdWVyIEhhbXN0ZXIgdW5kIGFuZGVyZQpIYXVzdGllcmUuCgpGOiBHaWJ0IGVzIFN1cGVybWFlcmt0ZSBpbiBLYXBzdGFkdCwgdW5kIGdpYnQgZXMgZGFzIGdhbnplIEphaHIgdWViZXIgTWlsY2g/CihEZXV0c2NobGFuZCkKQTogTmVpbiwgd2lyIHNpbmQgZWluZSB2b24gc3RyZW5nIHZlZ2FuaXNjaGVuIEJlZXJlbnNhbW1sZXJuLiBNaWxjaCBpc3QgYmVpCnVucyBpbGxlZ2FsLgoKRjogUmVnbmV0IGVzIGVpZ2VudGxpY2ggaW4gU3VlZGFmcmlrYT8gSWNoIGhhYmUgaW0gRmVybnNlaGVuIG5vY2ggbmllIGdlc2VoZW4sCmRhc3MgZXMgcmVnbmV0LiBXaWUgd2FjaHNlbiBkb3J0IGRhbm4gZGllIFBmbGFuemVuPyAoVUspCkE6IFdpciBpbXBvcnRpZXJlbiBhbGxlIFBmbGFuemVuIHZvbGwgYXVzZ2V3YWNoc2VuIHVuZCBidWRkZWxuIHNpZSBoaWVyIGVpbi4KRGFubiBzY2hhdWVuIHdpciB6dSwgd2llIHNpZSBsYW5nc2FtIGVpbmdlaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2xhcC15b3VyLWlycml0YXRpbmctY293b3JrZXJzLWRheSAoQW50aGVhLCAgMS4gU2VwIDIwMDYsIDE2OjA3OjAxKToKRnJpZGF5IDFzdCBTZXB0ZW1iZXIgaXMgdGhlIG9mZmljaWFsIFNsYXAgWW91ciBJcnJpdGF0aW5nIENvLXdvcmtlcnMgZGF5OiAKCkRvIHlvdSBoYXZlIGEgY28td29ya2VyIHdobyB0YWxrcyBub24tc3RvcCBhYm91dCBub3RoaW5nLCB3b3JraW5nIHlvdXIgbGFzdApuZXJ2ZSB3aXRoIHRlZGlvdXMgYW5kIGJvcmluZyBkZXRhaWxzIHRoYXQgeW91IGRvbid0IGNhcmUgYWJvdXQ/IERvIHlvdSBoYXZlIGEKY28td29ya2VyIHdobyBBTFdBWVMgc2NyZXdzIHVwIHN0dWZmIGNyZWF0aW5nIE1PUkUgd29yayBmb3IgeW91PyBEbyB5b3UgaGF2ZSBhCmNvLXdvcmtlciB3aG8gaXMgU09PTyBvYm5veGlvdXMsIHdoZW4gaGUvc2hlIGVudGVycyBhIHJvb20sIGV2ZXJ5b25lIGVsc2UKY2xlYXJzIGl0PyAKCldlbGwsIEkgYW0gc28gdmVyeSBnbGFkIHRvIG9mZmljaWFsbHkgYW5ub3VuY2UgRnJpZGF5IDFzdCBTZXB0ZW1iZXIgYXMgU0xBUApZT1VSIElSUklUQVRJTkcgQ08tV09SS0VSIERBWSEgCgpIZXJlIGFyZSB0aGUgcnVsZXMgeW91IG11c3QgZm9sbG93OiAKKiBZb3UgY2FuIG9ubHkgc2xhcCBvbmUgcGVyc29uIHBlciBob3VyIC0gbm8gbW9yZS4gCiogWW91IGNhbiBzbGFwIHRoZSBzYW1lIHBlcnNvbiBhZ2FpbiBpZiB0aGV5IGlycml0YXRlIHlvdSBhZ2FpbiBpbiB0aGUgc2FtZQpkYXkuIAoqIFlvdSBhcmUgYWxsb3dlZCB0byBob2xkIHNvbWVvbmUgZG93biBhcyBvdGhlciBjby13b3JrZXJzIHRha2UgdGhlaXIgdHVybnMKc2xhcHBpbmcgdGhlIGlycml0YW50LiAKKiBObyB3ZWFwb25zIGFyZSBhbGxvd2VkLi4ub3RoZXIgdGhhbiBnb2luZyB1cHNpZGUgc29tZWJvZHkncyBoZWFkIHdpdGggYQpzdGFwbGVyIG9yIGEgaG9sZS1wdW5jaGVyLiAKCklmIHF1ZXN0aW9uZWQgYnkgYSBzdXBlcnZpc29yLCB5b3UgYXJlIGFsbG93ZWQgdG8gTElFLCBMSUUsIExJRSEgCgpOb3csIHN0dWR5IHRoZSBydWxlcywgYnJlYWsgb3V0IHlvdXIgbGlzdCBvZiBmb2xrcyB0aGF0IHlvdSB3YW50IHRvIHNsYXAgdGhlCmxpdmluZyBkYXkgbGlnaHRzIG91dCBvZiwgYW5kIGdldCB0byBzbGFwcGluZy4uLiBhbmQgaGF2ZSBhIGdyZWF0IGRheSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmJlaGFsdGVuIChBbnRoZWEsIDIxLiBTZXAgMjAwNiwgMTA6NDg6MDIpOgpGcmlzZXVyOiAiTW9lY2h0ZW4gU2llIGRpZSBTdGlybmxvY2tlIGJlaGFsdGVuPyIKIkphLCBhdWYgamVkZW4gRmFsbCEiCiJHdXQiIC0gc2NobmlwcCAtICJkYW5uIHBhY2tlIGljaCBzaWUgSWhuZW4gZWluLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3BlY2lhbCBIaWdoIEludGVuc2l0eSBUcmFpbmluZyAoQW50aGVhLCAgNi4gT2t0IDIwMDYsIDEzOjMwOjM5KToKSW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgd2UgY29udGludWUgdG8gcHJvZHVjZSB0aGUgaGlnaGVzdCBxdWFsaXR5IHdvcmsKcG9zc2libGUsIGl0IHdpbGwgYmUgb3VyIHBvbGljeSB0byBrZWVwIGFsbCBlbXBsb3llZXMgd2VsbCB0cmFpbmVkIHRocm91Z2ggb3VyCnByb2dyYW0gb2YgU1BFQ0lBTCBISUdIIElOVEVOU0lUWSBUUkFJTklORy4gKFMuSC5JLlQuKS4gV2UgYXJlIGdpdmluZyBvdXIKZW1wbG95ZWVzIG1vcmUgUy5ILkkuVC4gdGhhbiBhbnkgb3RoZXIgY29tcGFueSBpbiB0aGUgY291bnRyeS4KCklmIHlvdSBmZWVsIHRoYXQgeW91IGRvIG5vdCByZWNlaXZlIHlvdXIgc2hhcmUgb2YgUy5ILkkuVC4gb24gdGhlIGpvYiwgcGxlYXNlCnNlZSB5b3VyIHN1cGVydmlzb3IuIFlvdSB3aWxsIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBTLkguSS5ULiBsaXN0IGZvcgpzcGVjaWFsIGF0dGVudGlvbi4KCkFsbCBvZiBvdXIgc3VwZXJ2aXNvcnMgYXJlIHBhcnRpY3VsYXJseSB3ZWxsIHF1YWxpZmllZCB0byBzZWEgdGhhdCB5b3UgZ2V0IGFsbAp0aGUgUy5ILmwuVC4geW91IGNhbiBoYW5kbGUgYXQgeW91ciBvd24gc3BlZWQuCgpJZiB5b3UgY29uc2lkZXIgeW91cnNlbGYgdG8gYmUgdHJhaW5lZCBhbHJlYWR5IHlvdSBtYXkgYmUgaW50ZXJlc3RlZCBpbgpoZWxwaW5nIHVzIHRvIHRyYWluIG90aGVycy4gV2UgY2FuIGFkZCB5b3VyIG5hbWUgdG8gb3VyIGJhc2ljIHVuZGVyc3RhbmRpbmcKbGVjdHVyZSBsaXN0IChCLlUuTC5MLiBTLkguSS5ULikgCgpJZiB5b3UgaGF2ZSBmdXJ0aGVyIHF1ZXN0aW9ucywgcGxlYXNlIGFkZHJlc3MgdGhlbSB0byBvdXIgSEVBRCBPRiBUcmFpbmluZwooSC5PLlQuIFMuSC5JLlQuKSBQcm9ncmFtLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRBUyBLVWVSWkVTVEUgVU5EIFdVTkRFUkJBUlNURSBNQWVSQ0hFTiBERVIgV0VMVCEgKEFudGhlYSwgMTAuIE9rdCAyMDA2LCAxMzozMjowNik6CgpFcyB3YXIgZWlubWFsIGVpbiBzdGF0dGxpY2hlciBQcmlueiwgZGVyIGRpZSB3dW5kZXJzY2hvZW5lIFByaW56ZXNzaW4KZnJhZ3RlOgoKCiJXaWxsc3QgRHUgbWljaCBoZWlyYXRlbj8iIFVuZCBzaWUgYW50d29ydGV0ZTogIi4uLk5FSU4hISEiClVuZCBkZXIgUHJpbnogbGVidGUgdmllbGUgSmFocmUgbGFuZyBnbHVlY2tsaWNoIHVuZCBnaW5nIGFuZ2VsbiB1bmQgamFnZW4sCmhpbmcgamVkZW4gVGFnIG1pdCBzZWluZW4gRnJldW5kZW4gaGVydW0sIHRyYW5rIHZpZWwgQmllciB1bmQgYmV0cmFuayBzaWNoCnNvIG9mdCBlciB3b2xsdGUsIHNwaWVsdGUgR29sZiwgbGllc3Mgc2VpbmUgSmFja2UgYXVmIGRlciBTdHVobGxlaG5lIGltCkVzc3ppbW1lciBoYWVuZ2VuIHVuZCBoYXR0ZSBTZXggbWl0IERpcm5lbiwgTmFjaGJhcmlubmVuIHVuZCBGcmV1bmRpbm5lbiwKZnVyenRlIG5hY2ggSGVyemVuc2x1c3QsIHNhbmcsIHJ1ZWxwc3RlIHVuZCBrcmF0enRlIHNpY2ggYXVzZ2llYmlnIGFtIFNhY2suCgpFTkRFCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFcmtlbm5iYXIgKEFudGhlYSwgMTEuIERleiAyMDA2LCAxMjowMTo0Myk6CkVpbiBNaW5pc3RlciwgZWluIFByaWVzdGVyIHVuZCBlaW4gUmFiYmkgbWFjaGVuIGVpbmVuIGdlbWVpbnNhbWVuIEF1c2ZsdWcuCldlaWwgZXMgZWluIHNlaHIgaGVpc3NlciBTb21tZXJ0YWcgaXN0IGZyZXVlbiBzaWUgc2ljaCwgYWxzIHNpZSBwbG9ldHpsaWNoIGFuCmVpbmVuIGVpbnNhbSBnZWxlZ2VuZW4gV2FsZHNlZSBrb21tZW4uCk5hY2hkZW0gc2llIHNpY2ggdmVyZ2V3aXNzZXJ0IGhhYmVuLCBkYXNzIG5pZW1hbmQgZGEgaXN0IGRlciBzaWUgc2VoZW4Ka29lbm50ZSwgemllaGVuIHNpZSBzaWNoIHNwbGl0dGVybmFja3QgYXVzIHVuZCBuZWhtZW4gZWluIGVyZnJpc2NoZW5kZXMgQmFkLgpJaHJlIEZyZWloZWl0IGdlbmllc3NlbmQsIGdlaHQgZGFzIG5hY2t0ZSBUcmlvIEJlZXJlbiBwZmx1ZWNrZW4sIGFscyBpaG5lbgpwbG9ldHpsaWNoIGVpbmUgR3J1cHBlIEZyYXVlbiBhdXMgaWhyZXIgU3RhZHQgZW50Z2VnZW4ga29tbXQuIERhIHNpZSBpaHJlCktsZWlkdW5nIG5pY2h0IG1laHIgcmVjaHR6ZWl0aWcgZXJyZWljaGVuIGtvZW5uZW4sIGJlZGVja2VuIGRlciBNaW5pc3RlciB1bmQKZGVyIFByaWVzdGVyIGlociBHZXNjaGxlY2h0c3RlaWwgbWl0IGRlbiBIYWVuZGVuLCBkZXIgUmFiYmkgamVkb2NoIGJlZGVja3QKc2VpbiBHZXNpY2h0LgpEaWUgRnJhdWVuIHNpbmQgdm9uIGRlbSBBbmJsaWNrIGdlc2Nob2NrdCB1bmQgcmVubmVuIGRhdm9uLiBOYWNoZGVtIGRpZSBGcmF1ZW4Kd2VnIHNpbmQsIHVuZCBzaWNoIGRpZSBkcmVpIHdpZWRlciBhbmdlem9nZW4gaGFiZW4sIGZyYWdlbiBkZXIgTWluaXN0ZXIgdW5kCmRlciBQcmllc3RlciBkZW4gUmFiYmksIHdhcnVtIGVyIHNlaW4gR2VzaWNodCB1bmQgbmljaHQgc2VpbiBHZXNjaGxlY2h0c3RlaWwKYmVkZWNrdCBoYXQuCkRlciBSYWJiaSBhbnR3b3J0ZXQ6ICJJY2ggd2Vpc3MgbmljaHQgZ2VuYXUsIHdpZSBlcyBiZWkgZXVjaCBpc3QsIGFiZXIgaW4KTUVJTkVSIEdlbWVpbmRlIGVya2VubnQgbWFuIG1pY2ggYW4gbWVpbmVtIEdlc2ljaHQhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGZvc3RlbiBCYW5rIChBbnRoZWEsIDExLiBEZXogMjAwNiwgMTI6MTU6NTMpOgpUamEuIEF1dG9tYXRpc2NoIFVlYmVyc2V0enVuZ3Nwcm9ncmFtbWUgaW4gU3BhbXMgc2luZCBpbW1lciB3aWVkZXIKaW50ZXJlc3NhbnQuIFVuZCBlcyBoYXQgZXR3YXMgZ2VkYXVlcnQsIGJpcyBpY2ggZHJhdWYgZ2Vrb21tZW4gYmluLCBkYXNzCiJQZm9zdGVuIiBqYSBhdWNoIGFscyAiUG9zdCIgdWViZXJzZXR6dCB3ZXJkZW4ga2Fubi4uLi4KCkxpZWIgS2xpZW50IHZvbiBQZm9zdGVuIEJhbmssCldlZ2VuIGRlciBJbnRlcmVzc2VuLCBmdWVyIGRpZSBTaWNoZXJoZWl0IHVuZCBkaWUgVm9sbHN0YWVuZGlna2VpdCBkZXMKUGZvc3RlbnMgYmFuayBLb250byBoYWJlbiB3aXIgZGllc2UgV2Fybm1lbGR1bmcgaGVyYXVzZ2VnZWJlbi4gU2llIGlzdCB6dQp1bnNlcmVyIEF1Zm1lcmtzYW1rZWl0IGdla29tbWVuLCBkYXNzIGRlaW4gUGZvc3RlbiBiYW5rIGtvbnRvLUluZm9ybWF0aW9uZW4KYWxzIFRlaWwgdW5zZXJlcyBGb3J0ZmFocmVucyBha3R1YWxpc2llcnQgd2VyZGVuIG11c3MgVmVycGZsaWNodHVuZywgenVtCmRlaW5lcyBLb250b3MgenUgc2NodWV0emVuCnVuZCB6dSBkZW4gRmFsbCBkZXMgQmV0cnVncyBhdWYgdW5zZXJlciBXZWIgc2l0ZSB2ZXJyaW5nZXJuIFdlbm4gZHUga29lbm50ZXN0Ck1pbnV0ZW4gNS0xMAphdXMgZGVpbmVtIG9uLWxpbmUgaGVyYXVzIGJpdHRlIG5laG1lbiBFcmZhaHJ1bmcgdW5kIFVwZGF0ZSBkZWluZQpwZXJzb2VubGljaGVuIEF1ZnplaWNobnVuZ2VuLCBkYW1pdCBkdSBuaWNodCBpbiBsYWV1ZnN0CmFueSB6dWt1ZW5mdGlnZSBQcm9ibGVtZSBtaXQgZGVtIG9uLWxpbmUtU2VydmljZS4KCk9uY2UsIGRhcyBkdSBha3R1YWxpc2llcnQgaGFzdCBkZWluZSBLb250b2F1ZnplaWNobnVuZ2VuLCBkZWluIG9uLWxpbmUtS29udG8KU2VydmljZSBpc3QgbmljaHQgZGFzIHVudGVyYnJvY2hlbmUKdW5kIGZhZWhydCBmb3J0IGFscyBOb3JtYWwuCgpVbSBiZWdvbm5lbiB6dSBlcmhhbHRlbiwgZGllIFZlcmJpbmR1bmcgYml0dGUgdW50ZW4ga2xpY2tlbjoKCkRpZXNlcyBhbGxlbiBCYW5ra3VuZGVuIEFud2Vpc3VuZyBpc3QgZ2VzY2hpY2t0IHdvcmRlbiB1bmQgaXN0IHp1IGZvbGxvdy4Kb2JsaWdhdG9yaXNjaApXZSBCbGljayB6dW0gRm9ydGZhaHJlbiBuYWNoc2NoaWNrZW4sIGRpciBhdXNnZXplaWNobmV0ZW4gU2VydmljZSB6dXIKVmVyZnVlZ3VuZyB6dSBzdGVsbGVuLgpUaGFuayBkdSwKcG9zdCBQbGMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaWhuYWNodGVuIG1hbCBhbmRlcnMgKGthbm50ZSBpY2ggbm9jaCBuaWNodCkgKFBlcmRpdGEsIDExLiBEZXogMjAwNiwgMTc6NDI6MzUpOgpHcmFkIGF1cyBkZW0gQmVrYW5udGVua3JlaXMgenVnZW1haWx0IGJla29tbWVuOgoKCgpNZXNzYWdlIGZyb20gdGhlIENFTyAoIENocmlzdG1hcyBFdmVudCBPcmdhbml6ZXIgKSA6IERyLiBKLiBDaHJpc3R1cyB2LgpCZXRobGVoZW0KV2llIFdlaWhuYWNodGVuIDIwMDUgaW0gSW50ZXJuZXQgZ2V6ZWlndCBoYXQsIGhlaXNzdCBXZWlobmFjaHRlbiBuaWNodCBtZWhyCldlaWhuYWNodGVuLCBzb25kZXJuIFgtbWFzLCBhbHNvIG11c3MgZGVyIFdlaWhuYWNodHNtYW5uIGVudHNwcmVjaGVuZCBhdWNoIGFiCmpldHp0IFgtbWFuIGhlaXNzZW4hCkRhIFgtbWFzIDIwMDYgcXVhc2kgc2Nob24gdm9yIGRlciBUdWVyIHN0ZWh0LCBpc3QgZXMgc3BhZXRlc3RlbnMgc2VpdCBPa3RvYmVyCmhvZWNoc3RlIFplaXQsIG1pdCBkZXIgV2VpaG5hY2h0c3ZvcmJlcmVpdHVuZyB6dSBiZWdpbm5lbiAtClZlcnplaWh1bmcsIHNlaXQgT2t0b2JlciBpc3QgZXMgaG9lY2hzdGUgWmVpdCwgbWl0IGRlbSBXZWlobmFjaHRzLXJvbGwtb3V0IHp1CnN0YXJ0ZW4gdW5kIGRpZSBDaHJpc3RtYXMtTWFpbGluZy1Ba3Rpb24ganVzdCBpbiB0aW1lIHZvcnp1YmVyZWl0ZW4uCkRpZSBLaWNrLU9mZiBWZXJhbnN0YWx0dW5nICggZnJ1ZWhlciAxLkFkdmVudCApIGZ1ZXIgZGllIGRpZXNqYWVocmlnZSBTQU5DUk9TCiggU2FudGEgQ2xhdXMgUm9hZCBTaG93ICkgZmluZGV0IGJlcmVpdHMgYW0gMzAuIE5vdmVtYmVyIDIwMDYgc3RhdHQuCkRhaGVyIHd1cmRlIGRhcyBvZmZpemllbGxlIGNvbWUtdG9nZXRoZXIgZGVzIE9yZ2FuaXppbmcgQ29tbWl0ZWVzIHVudGVyClZvcnNpdHogZGVzIENJTyAoIENocmlzdG1hcyBJbGx1bWluYXRpb24gT2ZmaWNlciApIGFiZ2VoYWx0ZW4uIEVyc3RtYWxzIGhhYmVuCndpciBlaW4gUHJvamVrdC1TdGF0dXMtTWVldGluZyB2b3JnZXNjaGFsdGV0LCBiZWkgZGVtIGVpbmUgaW4gV29ya3Nob3BzCmVudHdpY2tlbHRlIHRvLWRvLUxpc3RlIHVuZCBlaW5oZWl0bGljaGUgSm9iIERlc2NyaXB0aW9ucyBlcnN0ZWxsdCB3dXJkZW4uCkRhZHVyY2ggc29sbGVuIGtsYXJlIFZlcmFudHdvcnR1bmdzYmVyZWljaGUsIGVpbmUgcG93ZXJ2b2xsZSBQZXJmb3JtYW5jZSBkZXMKS3VuZGVuZXZlbnRzIHVuZCBvcHRpbWllcnRlciBHZXNjaGVuay1BbGxvY2F0aW9ucyBnZXNjaGFmZmVuIHdlcmRlbiwgd2FzCndpZWRlcnVtIGRlbiBTZXJ2aWNlLUxldmVsIGVyaG9laHQgdW5kIGF1c3NlcmRlbSBoaWxmdCwgWC1tYXMgYWxzIEJyYW5kbmFtZQpnbG9iYWwgenUgaW1wbGVtZXRpZXJlbi4KRGllc2VzIE1lZXRpbmcgZGllbnRlIHp1enVlZ2xpY2ggZGF6dSwgbWl0IGRlbSBDby1IZWFkIGRlcyBHbG9iYWwgQ2hyaXN0bWFzCk1hcmtldHMgKCBmcnVlaGVyIEtuZWNodCBSdXByZWNodCApIGRpZSBBYmxhdWZvcmdhbmlzYXRpb24gYWJ6dXN0aW1tZW4sIGRpZQpHZXNjaGVuay1EaXN0cmlidXRpb24gYW4gZGllIHp1c3RhZW5kaWdlbiBwcml2YXRlLVNjaGVua2luZy1DZW50ZXIKc2ljaGVyenVzdGVsbGVuIHVuZCBkaWUgWmllbGdydXBwZW4ga2xhciB6dSBkZWZpbmllcmVuLiBFcnN0bWFscyBzb2xsZW4gYXVjaApzb2cuIEdlc2NoZW5rLVVuaXRzIHVlYmVyIGRhcyBJbnRlcm5ldCBhbmdlYm90ZW4gd2VyZGVuLgpEaWUgU2VydmljZSBQcm92aWRlciAoIEVuZ2VsLCBFbGZlbiB1bmQgUmVudGllcmUgKSB3dXJkZW4gYmVyZWl0cyB2aWEKY29uZmVyZW5jZSBjYWxsIHZpcnR1ZWxsIGluZm9ybWllcnQgdW5kIGRpZSBjb3JlLWNvbXBldGVuY2UgdmVyZ2ViZW4uIEVpbgpCdWVuZGVsIHZvbiBJbmNlbnRpdmVzIHVuZCBlaW4gc2VwYXJhdGVzIFRlYW0tQnVpbGRpbmctRXZlbnQgYW4gZ2VlaWduZXRlcgpsb2NhdGlvbiBzb2xsZW4gZGVuIE1vdGl2YXRpb25zbGV2ZWwgZXJob2VoZW4gdW5kIGdsZWljaHplaXRpZyBoZWxmZW4sIGVpbmUKZWluaGVpdGxpY2hlIGNvcnBvcmF0ZS1jdWx0dXJlIHNhbXQgaWRlbnRpdHkgenUgZW50d2lja2Vsbi4KRGVyIFZvcnNjaGxhZywgamVkZW0gRW5nZWwgZWluZW4gY29hY2ggenVyIFNlaXRlIHp1IHN0ZWxsZW4sIHd1cmRlIGF1cwpCdWRnZXRncnVlbmRlbiB6dW5hZWNoc3QgZ2VjYW5jZWxsZWQuIFN0YXR0ZGVzZW4gd3VyZGUgYXVmIGVpbmVyIHp1c2FldHpsaWNoZW4KQ2xpZW50IE1hbmFnZW1lbnQgQ29uZmVyZW5jZSBiZXNjaGxvc3NlbiwgaW4gZWluZW0gdGVzdG1hcmtldCBhbHMgUGlsb3Rwcm9qZWt0CmVpbmUgSG90bGluZSBmdWVyIGt1cnpmcmlzdGlnZSBXZWlobmFjaHRzd3VlbnNjaGUgZWluenVyaWNodGVuLCB1bSBkZW4gYWRkZWQKdmFsdWUgZnVlciBkaWVCZXNjaGVua3RlbiB6dSBlcmhvZWhlbi4KbgpvCnMKcwp3CnMKcwpzIGVpbiBhdXNnZWtsdWVnZWx0ZXMgTWFuYWdlbWVudCBJbmZvcm1hdGlvbiBTeXN0ZW0gKCBNSVNUICkgaXN0IGF1Y2gKYmVuY2htYXJrLW9yaWVudGllcnRlcyBDb250cm9sbGluZyBmdWVyIGplZGVzIHByaXZhdGUtU2NoZW5raW5nLUNlbnRlcgptb2VnbGljaC4KTmFjaGRlbSBlaW4gbmV1ZXMgTGl0ZXJhdHVya29uemVwdCB1bmQgZGFzIGxheW91dC1Gb3JtYXQgdm9uIGV4dGVybmVuCkNvbnN1bHRhbnRzICggT3N0ZXJoYXNlbiBBc3NvY2lhdGVzICkgZGVmaW5pZXJ0IHd1cmRlLCBrb25udGUgYXVjaCBzY2hvbiBkYXMKZGllc2phZWhyaWdlIEdvbGRlbmUgQnVjaCAoIEdvbGRlbiBCb29rIFJlbGVhc2UgMjAwNi4xICkgZXJzdGVsbHQgd2VyZGVuLiBFcwplcnNjaGVpbnQgYWxzIEZseWVyLCBlcmdhZW56dCB1bSBlaW4gTGVhZmxldCB1bmQgZWluZW4gTmV3c2xldHRlciBmdWVyIGRhcwpsYXVmZW5kZSB1cGRhdGluZy4gSG9jaGF1ZmxhZ2lnZSBsb3djb3N0LWdpdmVhd2F5cyBkaWVuZW4genVkZW0gYWxzIHRlYXNlciB1bmQKZmxhbmtpZXJlbiBNYXJrZXRpbmdtYXNzbmFobWVuLiBGZXJuZXIgd3VyZGUgZHVyY2ggaW50ZW5zaXZlcyBicmFpbnN0b3JtaW5nCmVpbiBLb25zZW5zIHVlYmVyIGRhcyBNaXNzaW9uIFN0YXRlbWVudCBnZWZ1bmRlbi4gRXMgbGF1dGV0OiBMZXQgcyBrZWVwIHRoZQpjYW5kbGVzIGJ1cm5pbmcgdW5kIGVyc2V0enQgZGFzIGJpc2hlcmlnZSBGcm9oZSBXZWlobmFjaHRlbgpYLW1hbiBoYXR0ZSB6d2FyIGFuZmFuZ3MgQmVkZW5rZW4gYW5nZXNpY2h0cyBkZXMgY29ycG9yYXRlIHJlZGVzaWducy4gRXIKYWt6ZXB0aWVydGUgYWJlciBsZXR6bGljaCBkZW4gcHJvZ3Jlc3NpdmVuIENvbnN1bHRpbmctQW5zYXR6LCBhdWNoIGltIEhpbmJsaWNrCmF1ZiBkYXMgU2hhcmVob2xkZXItdmFsdWUsIHVuZCB3dWVyZGlndGUgZGFzIGtub3ctaG93IHNlaW5lcgpJbnZlc3Rvci1SZWxhdGlvbi1NYW5hZ2VyLApOYSBkYW5uLCBtZXJyeSB4LW1hcyAuLi4uLi4KCgoKCgpQZXJkaXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VpaG5hY2h0ZW4gbWFsIGFuZGVycyAoa2FubnRlIGljaCBub2NoIG5pY2h0KSAoUGVyZGl0YSwgMTEuIERleiAyMDA2LCAxNzo0NDoxNCk6Cn4jISBybj1QZXJkaXRhIHJ0PTExNjU4NTUzNTUgcmc9d2l0emUKfiMhIHRpZD0xMTY1ODU1MzU1Cih3YXMgaXNzbiBkYSBwYXNzaWVydD8hPyE/KSBTZWx0c2FtZXIgRWRpdG9yLi4uCldhcyBkYSB3aWUgaXJnZW5kd2VsY2hlIEhpbW1lbHNyaWNodHVuZ2VuIGF1c3NpZWh0LCBoYWV0dGUgZWlnZW50bGljaCAiRHVyY2giCmhlaXNzZW4gc29sbGVuLi4uCip3dW5kZXIqCgpQZXJkaXRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VpaG5hY2h0ZW4gbWFsIGFuZGVycyAoa2FubnRlIGljaCBub2NoIG5pY2h0KSAoQW50aGVhLCAxMS4gRGV6IDIwMDYsIDE4OjAxOjU5KToKfiMhIHJuPVBlcmRpdGEgcnQ9MTE2NTg1NTM1NSByZz13aXR6ZQp+IyEgdGlkPTExNjU4NTUzNTUKSWNoIHZlcnN0ZWggbnVyIGRpZSBuZXVlIFBhc3NhZ2UgaW4gZGVtIGFsdGVuIFRleHQgbmljaHQ6CgpuCm8KcwpzCncKcwpzCnMgCgpLYW5uc3QgRHUgbWlyIGRpZSBub2NoIG1hbCBlcmtsYWVyZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlaWhuYWNodGVuIG1hbCBhbmRlcnMgKGthbm50ZSBpY2ggbm9jaCBuaWNodCkgKENyb2Z0LCAxMS4gRGV6IDIwMDYsIDE4OjA4OjA0KToKfiMhIHJuPUFudGhlYSBydD0xMTY1ODU2NTE5IHJnPXdpdHplCn4jISB0aWQ9MTE2NTg1NTM1NQpXZWl0ZXJsZXNlbiBoaWxmdC4KCkNyb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGcmF1ZW4tIHVuZCBNYWVubmVyZnJldW5kc2NoYWZ0ZW4gKEFudGhlYSwgMTUuIERleiAyMDA2LCAxMzoxNDo0NSk6CgpGcmF1ZW5mcmV1bmRzY2hhZnRlbjoKCkVpbmUgRnJhdSBpc3QgZGllIGdhbnplIE5hY2h0IG5pY2h0IG5hY2ggSGF1c2UgZ2Vrb21tZW4uCkFtIG5hZWNoc3RlbiBNb3JnZW4gaGF0IHNpZSBpaHJlbSBNYW5uIGVyemFlaGx0LCBkYXNzIHNpZSBiZWkgZWluZXIgRnJldW5kaW4KdWViZXJuYWNodGV0IGhhdC4gSWhyIE1hbm4gaGF0IGlocmUgMTAgYmVzdGVuIEZyZXVuZGlubmVuIGFuZ2VydWZlbi4gS2VpbmUgZGVyCkZyZXVuZGlubmVuIGhhdCBkaWUgQXVzc2FnZSBiZXN0YWV0aWd0LgoKTWFlbm5lcmZyZXVuZHNjaGFmdGVuOgoKRWluIE1hbm4gaXN0IGRpZSBnYW56ZSBOYWNodCBuaWNodCBuYWNoIEhhdXNlIGdla29tbWVuLgpBbSBuYWVjaHN0ZW4gTW9yZ2VuIGhhdCBlciBzZWluZXIgRnJhdSBlcnphZWhsdCwgZGFzcyBlciBiZWkgZWluZW0gRnJldW5kCnVlYmVybmFjaHRldCBoYXQuIFNlaW5lIEZyYXUgaGF0IHNlaW5lIDEwIGJlc3RlbiBGcmV1bmRlIGFuZ2VydWZlbi4gNSBzZWluZXIKRnJldW5kZSBoYWJlbiBpaHIgc29mb3J0IGJlc3RhZXRpZ3QsIGRhc3MgZXIgYmVpIGlobmVuIHdhciB1bmQgZGllIGFuZGVyZW4gNQpoYWJlbiBzb2dhciBiZWhhdXB0ZXQsIGVyIHdhZXJlIG5vY2ggZGEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRvcHBlbGxvY2ggKEFudGhlYSwgMTUuIERleiAyMDA2LCAxMzoxNjoyMSk6Clp3ZWkgUHJldXNzZW4gaW0gUmVpc2VidWVybzoKIkFsc28gZGVyIGxldHp0ZSBVcmxhdWIgd2FyIGVjaHQgc3VwZXIuIFdpciB3YXJlbiBpbiBEdXJjaGhvbHplbiBpbgpPZXN0ZXJyZWljaCB1bmQgbW9lY2h0ZW4gZG9ydCB3aWVkZXIgaGluLiBHbGVpY2hlciBPcnQsIGdsZWljaGUgQnVzZmFocnQgdW5kCmRlbiBnbGVpY2hlciBTa2lsZWhyZXIgYml0dGUuIgoiS2VpbiBQcm9ibGVtIiwgc2FndCBkZXIgQW5nZXN0ZWxsdGUsICJudXIgYmVpbSBTa2lsZWhyZXIgd2VyZGVuIHdpciB1bnMKc2Nod2VyIHR1biAuLi4gd2llIGhlaXNzdCBlciBkZW5uPyIKIkFlaCwga2VpbmUgQWhudW5nISIKIldpZSBzaWVodCBlciBkZW5uIGF1cz8iCiJEYXMgZWluemlnZSB3YXMgd2lyIHdpc3Nlbiwga2xpbmd0IGpldHp0IHp3YXIga29taXNjaCwgYWJlciBlciBoYXQgc3RhdHQKZWluZW0gTG9jaCwgendlaSBMb2VjaGVyIGltIEhpbnRlcm4hIgoiV2llIGJpdHRlLCB3b2hlciB3aXNzZW4gc2llIGRlbm4gZGFzPyIKIk5hamEsIGFscyB3aXIgbWl0IGlobSBhbSBMaWZ0IGdld2FydGV0IGhhYmVuLCBrYW0gc2VpbiBLb2xsZWdlIGhlcmFuZ2VmYWhyZW4KdW5kIGZyYWd0ZToKCicuLi4uLnNlcnZhcyBvaWRhLCB3aWEgZ2VodHMgZGEgZGVubiBtaXQgZGVpbmUgendvYSBPYXNjaGxlY2hhLi4uLi4uPycgIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2VpaG5hY2h0c3RyYWRpdGlvbmVuIChHcmltbWJvcm4sIDIyLiBEZXogMjAwNiwgMTM6MzU6MTApOgpFaW5lIGtsZWluZSBXZWlobmFjaHRzZ2VzY2hpY2h0ZQoKRXMgd2FyIGVpbm1hbCB2b3IgbGFuZ2VyIFplaXQsIGt1cnogdm9yIFdlaWhuYWNodGVuLCBhbHMgZGVyIFdlaWhuYWNodHNtYW5uCnNpY2ggYXVmIGRlbiBXZWcgenUgc2VpbmVyIGFsbGphZWhybGljaGVuIFJlaXNlIG1hY2hlbiB3b2xsdGUsIGFiZXIgbnVyIGF1ZgpQcm9ibGVtZSBzdGllc3MuClZpZXIgc2VpbmVyIEVsZmVuIGZlaWVydGVuIGtyYW5rLCB1bmQgZGllIEF1c2hpbGZzLUVsZmVuIGthbWVuIG1pdCBkZXIKU3BpZWx6ZXVnLVByb2R1a3Rpb24gbmljaHQgbmFjaC4gRGVyIFdlaWhuYWNodHNtYW5uIGJlZ2FubiBzY2hvbiBkZW4gRHJ1Y2sgenUKc3B1ZXJlbiwgZGVuIGVyIGhhYmVuIHd1ZXJkZSwgd2VubiBlciBhdXMgZGVtIFplaXRwbGFuIGdlcmF0ZW4gc29sbHRlLgpEYW5uIGVyemFlaGx0ZSBpaG0gc2VpbmUgRnJhdSwgZGFzcyBpaHJlIE11dHRlciBzaWNoIHp1IGVpbmVtIEJlc3VjaAphbmdla3VlbmRpZ3QgaGF0dGUuIERpZSBTY2h3aWVnZXJtdXR0ZXIgaGF0IGRlbSBhcm1lbiBXZWlobmFjaHRzbWFubiBnZXJhZGUKbm9jaCBnZWZlaGx0LiBBbHMgZXIgbmFjaCBkcmF1c3NlbiBnaW5nIHVtIGRpZSBSZW50aWVyZSBhdWZ6dXphZXVtZW4sIGJlbWVya3RlCmVyLCBkYXNzIGRyZWkgdm9uIGlobmVuIGhvY2hzY2h3YW5nZXIgd2FyZW4gdW5kIHNpY2ggendlaSB3ZWl0ZXJlIGF1cyBkZW0KU3RhdWIgZ2VtYWNodCBoYXR0ZW4sIGRlciBIaW1tZWwgd2Vpc3Mgd29oaW4uIFdlbGNoIEthdGFzdHJvcGhlLgpEYW5uIGJlZ2FubiBlciBkYW1pdCBkZW4gU2NobGl0dGVuIHp1IGJlbGFkZW4sIGRvY2ggZWluZXMgZGVyIEJyZXR0ZXIgYnJhY2gKdW5kIGRlciBTcGllbHpldWdzYWNrIGZpZWwgc28genUgQm9kZW4sIGRhc3MgZGFzIG1laXN0ZSBTcGllbHpldWcgemVya3JhdHp0Cnd1cmRlIC0gU2hpdC4KU28gZnJ1c3RyaWVydCBnaW5nIGRlciBXZWlobmFjaHRzbWFubiBpbnMgSGF1cyB1bSBzaWNoIGVpbmUgVGFzc2UgbWl0IGhlaXNzZW0KVGVlIHVuZCBlaW5lbSBTY2h1c3MgUnVtIHp1IG1hY2hlbi4gSmVkb2NoIG11c3N0ZSBlciBmZXN0c3RlbGxlbiwgZGFzcyBkaWUKRWxmZW4gZGVuIGdhbnplbiBTY2huYXBzIHZlcnNvZmZlbiBoYXR0ZW4uIEluIHNlaW5lciBXdXQgZ2xpdHQgaWhtIGF1Y2ggbm9jaApkaWUgVGFzc2UgYXVzIGRlbiBIYWVuZGVuIHVuZCB6ZXJzcHJhbmcgaW4gdGF1c2VuZCBrbGVpbmUgU3R1ZWNrZSwgZGllIHNpY2gKdWViZXIgZGVuIGdhbnplbiBLdWVjaGVuYm9kZW4gdmVydGVpbHRlbi4gSmV0enQgZ2FicyBuYXR1ZXJsaWNoIEFlcmdlciBtaXQKc2VpbmVyIEZyYXUuIEFscyBlciBkYW5uIGF1Y2ggbm9jaCBmZXN0c3RlbGxlbiBtdXNzdGUsIGRhc3MgTWFldXNlIHNlaW5lbgpXZWlobmFjaHRzLVN0b2xsZW4gYW5nZWtuYWJiZXJ0IGhhdHRlbiB3b2xsdGUgZXIgdm9yIFd1dCBmYXN0IHBsYXR6ZW4uCkRhIGtsaW5nZWx0ZSBlcyBhbiBkZXIgVHVlci4KRXIgb2VmZm5ldGUgdW5kIGRhIHN0YW5kIGVpbiBrbGVpbmVyIEVuZ2VsIG1pdCBlaW5lbSByaWVzaWdlbiBDaHJpc3RiYXVtLiBEZXIKRW5nZWwgc2FndGUgc2VociB6dXJ1ZWNraGFsdGVuZDogSWNoIGhhYmUgZGEgZWluZW4gc2Nob2VuZW4gVGFubmVuYmF1bSBmdWVyCmRpY2guIFdvIHNvbGwgaWNoIGRlbiBkZW5uIGhpbnN0ZWNrZW4/ClVuZCBzbyBoYXQgZGllIFRyYWRpdGlvbiB2b24gZGVtIGtsZWluZW4gRW5nZWwgYXVmIGRlciBDaHJpc3RiYXVtc3BpdHplCmJlZ29ubmVuLgoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTcXVpcnJlbHMgKEFudGhlYSwgIDguIEphbiAyMDA3LCAxNzowMTo1Nik6ClRoZXJlIHdlcmUgRml2ZSBjb3VudHJ5IGNodXJjaGVzIGluIGEgc21hbGwgVEVYQVMgdG93bjogVGhlIFByZXNieXRlcmlhbgpDaHVyY2gsIHRoZSBCYXB0aXN0IENodXJjaCwgdGhlIE1ldGhvZGlzdCBDaHVyY2gsIHRoZSBDYXRob2xpYyBDaHVyY2ggYW5kIHRoZQpKZXdpc2ggU3luYWdvZ3VlLiBFYWNoIGNodXJjaCB3YXMgb3ZlcnJ1biB3aXRoIHBlc2t5IHNxdWlycmVscy4gCgpPbmUgZGF5LCB0aGUgUHJlc2J5dGVyaWFuIENodXJjaCBjYWxsZWQgYSBtZWV0aW5nIHRvIGRlY2lkZSB3aGF0IHRvIGRvIGFib3V0CnRoZSBzcXVpcnJlbHMuIEFmdGVyIG11Y2ggcHJheWVyIGFuZCBjb25zaWRlcmF0aW9uIHRoZXkgZGV0ZXJtaW5lZCB0aGF0IHRoZQpzcXVpcnJlbHMgd2VyZSBwcmVkZXN0aW5lZCB0byBiZSB0aGVyZSBhbmQgdGhleSBzaG91bGRuJ3QgaW50ZXJmZXJlIHdpdGggR29kJ3MKZGl2aW5lIHdpbGwuCgpJbiB0aGUgQmFwdGlzdCBDaHVyY2ggdGhlIHNxdWlycmVscyBoYWQgdGFrZW4gdXAgaGFiaXRhdGlvbiBpbiB0aGUgYmFwdGlzdGVyeS4KVGhlIGRlYWNvbnMgbWV0IGFuZCBkZWNpZGVkIHRvIHB1dCBhIGNvdmVyIG9uIHRoZSBiYXB0aXN0ZXJ5IGFuZCBkcm93biB0aGUKc3F1aXJyZWxzIGluIGl0LiBUaGUgc3F1aXJyZWxzIGVzY2FwZWQgc29tZWhvdyBhbmQgdGhlcmUgd2VyZSB0d2ljZSBhcyBtYW55CnRoZXJlIHRoZSBuZXh0IHdlZWsuIAoKVGhlIE1ldGhvZGlzdCBDaHVyY2ggZ290IHRvZ2V0aGVyIGFuZCBkZWNpZGVkIHRoYXQgdGhleSB3ZXJlIG5vdCBpbiBhIHBvc2l0aW9uCnRvIGhhcm0gYW55IG9mIEdvZCdzIGNyZWF0aW9uLiBTbywgdGhleSBodW1hbmVseSB0cmFwcGVkIHRoZSBTcXVpcnJlbHMgYW5kIHNldAp0aGVtIGZyZWUgYSBmZXcgbWlsZXMgb3V0c2lkZSBvZiB0b3duLiBUaHJlZSBkYXlzIGxhdGVyLCB0aGUgc3F1aXJyZWxzIHdlcmUKYmFjay4gCgpCdXQgLSBUaGUgQ2F0aG9saWMgQ2h1cmNoIGNhbWUgdXAgd2l0aCB0aGUgYmVzdCBhbmQgbW9zdCBlZmZlY3RpdmUgc29sdXRpb24uClRoZXkgYmFwdGlzZWQgdGhlIHNxdWlycmVscyBhbmQgcmVnaXN0ZXJlZCB0aGVtIGFzIG1lbWJlcnMgb2YgdGhlIGNodXJjaC4gTm93CnRoZXkgb25seSBzZWUgdGhlbSBvbiBDaHJpc3RtYXMgYW5kIEVhc3RlciAKCk5vdCBtdWNoIHdhcyBoZWFyZCBhYm91dCB0aGUgSmV3aXNoIFN5bmFnb2d1ZSwgYnV0IHRoZXkgdG9vayBvbmUgc3F1aXJyZWwgYW5kCmhhZCBhIHNob3J0IHNlcnZpY2Ugd2l0aCBoaW0gY2FsbGVkIGNpcmN1bWNpc2lvbiBhbmQgdGhleSBoYXZlbid0IHNlZW4gYQpzcXVpcnJlbCBvbiB0aGUgcHJvcGVydHkgc2luY2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpDSElMRElTSCBJTlNJR0hUIChBbnRoZWEsIDE1LiBKYW4gMjAwNywgMTQ6MDI6MjMpOgoKTlVESVRZIAotIEkgd2FzIGRyaXZpbmcgd2l0aCBteSB0aHJlZSB5b3VuZyBjaGlsZHJlbiBvbmUgd2FybSBzdW1tZXIgZXZlbmluZyB3aGVuIGEKd29tYW4gaW4gdGhlIGNvbnZlcnRpYmxlIGFoZWFkIG9mIHVzIHN0b29kIHVwIGFuZCB3YXZlZC4gU2hlIHdhcyBzdGFyayBuYWtlZCEKQXMgSSB3YXMgcmVlbGluZyBmcm9tIHRoZSBzaG9jaywgSSBoZWFyZCBteSA1LXllYXItb2xkIHNob3V0IGZyb20gdGhlIGJhY2sKc2VhdCwgIk1vbSEgVGhhdCBsYWR5IGlzbid0IHdlYXJpbmcgYSBzZWF0IGJlbHQhIAoKTU9SRSBOVURJVFkgCi0gQSBsaXR0bGUgYm95IGdvdCBsb3N0IGF0IHRoZSBZTUNBIGFuZCBmb3VuZCBoaW1zZWxmIGluIHRoZSB3b21lbidzIGxvY2tlcgpyb29tLiBXaGVuIGhlIHdhcyBzcG90dGVkLCB0aGUgcm9vbSBidXJzdCBpbnRvIHNocmlla3MsIHdpdGggbGFkaWVzIGdyYWJiaW5nCnRvd2VscyBhbmQgcnVubmluZyBmb3IgY292ZXIuIFRoZSBsaXR0bGUgYm95IHdhdGNoZWQgaW4gYW1hemVtZW50IGFuZCB0aGVuCmFza2VkLCAiV2hhdCdzIHRoZSBtYXR0ZXIgaGF2ZW4ndCB5b3UgZXZlciBzZWVuIGEgbGl0dGxlIGJveSBiZWZvcmU/IiAKCkhPTkVTVFkgCi0gTXkgc29uIFphY2hhcnksIDQsIGNhbWUgc2NyZWFtaW5nIG91dCBvZiB0aGUgYmF0aHJvb20gdG8gdGVsbCBtZSBoZSdkCmRyb3BwZWQgaGlzIHRvb3RoYnJ1c2ggaW4gdGhlIHRvaWxldC4gU28gSSBmaXNoZWQgaXQgb3V0IGFuZCB0aHJldyBpdCBpbiB0aGUKZ2FyYmFnZS4gWmFjaGFyeSBzdG9vZCB0aGVyZSB0aGlua2luZyBmb3IgYSBtb21lbnQsIHRoZW4gcmFuIHRvIG15IGJhdGhyb29tCmFuZCBjYW1lIG91dCB3aXRoIG15IHRvb3RoYnJ1c2guIEhlIGhlbGQgaXQgdXAgYW5kIHNhaWQgd2l0aCBhIGNoYXJtaW5nIGxpdHRsZQpzbWlsZSwgIldlIGJldHRlciB0aHJvdyB0aGlzIG9uZSBvdXQgdG9vIHRoZW4sICdjYXVzZSBpdCBmZWxsIGluIHRoZSB0b2lsZXQgYQpmZXcgZGF5cyBhZ28uIAoKT1BJTklPTlMgCi0gT24gdGhlIGZpcnN0IGRheSBvZiBzY2hvb2wsIGEgZmlyc3QgZ3JhZGVyIGhhbmRlZCBoaXMgdGVhY2hlciBhIG5vdGUgZnJvbQpoaXMgbW90aGVyLiBUaGUgbm90ZSByZWFkLCAiVGhlIG9waW5pb25zIGV4cHJlc3NlZCBieSB0aGlzIGNoaWxkIGFyZSBub3QKbmVjZXNzYXJpbHkgdGhvc2Ugb2YgaGlzIHBhcmVudHMuIiAKCktFVENIVVAgCi0gQSB3b21hbiB3YXMgdHJ5aW5nIGhhcmQgdG8gZ2V0IHRoZSBrZXRjaHVwIHRvIGNvbWUgb3V0IG9mIHRoZSBqYXIuIER1cmluZwpoZXIgc3RydWdnbGUgdGhlIHBob25lIHJhbmcgc28gc2hlIGFza2VkIGhlciA0LXllYXItb2xkIGRhdWdodGVyIHRvIGFuc3dlciB0aGUKcGhvbmUuICJJdCdzIHRoZSBtaW5pc3RlciwgTW9tbXksIiB0aGUgY2hpbGQgc2FpZCB0byBoZXIgbW90aGVyLiBUaGVuIHNoZQphZGRlZCwgIk1vbW15IGNhbid0IGNvbWUgdG8gdGhlIHBob25lIHRvIHRhbGsgdG8geW91IHJpZ2h0IG5vdy4gU2hlJ3MgaGl0dGluZwp0aGUgYm90dGxlLiIgCgpFTERFUkxZIAotIFdoaWxlIHdvcmtpbmcgZm9yIGFuIG9yZ2FuaXNhdGlvbiB0aGF0IGRlbGl2ZXJzIGx1bmNoZXMgdG8gZWxkZXJseSBzaHV0LWlucywKSSB1c2VkIHRvIHRha2UgbXkgNC15ZWFyIG9sZCBkYXVnaHRlciBvbiBteSBhZnRlcm5vb24gcm91bmRzLiBUaGUgdmFyaW91cwphcHBsaWFuY2VzIG9mIG9sZCBhZ2UsIHBhcnRpY3VsYXJseSB0aGUgY2FuZXMsIHdhbGtlcnMgYW5kIHdoZWVsY2hhaXJzLAp1bmZhaWxpbmdseSBpbnRyaWd1ZWQgaGVyLiBPbmUgZGF5IEkgZm91bmQgaGVyIHN0YXJpbmcgYXQgYSBwYWlyIG9mIGZhbHNlCnRlZXRoIHNvYWtpbmcgaW4gYSBnbGFzcy4gQXMgSSBicmFjZWQgbXlzZWxmIGZvciB0aGUgaW5ldml0YWJsZSBiYXJyYWdlIG9mCnF1ZXN0aW9ucywgc2hlIG1lcmVseSB0dXJuZWQgYW5kIHdoaXNwZXJlZCwgIlRoZSB0b290aCBmYWlyeSB3aWxsIG5ldmVyCmJlbGlldmUgdGhpcyEiIAoKRFJFU1MtVVAgCi0gQSBsaXR0bGUgZ2lybCB3YXMgd2F0Y2hpbmcgaGVyIHBhcmVudHMgZHJlc3MgZm9yIGEgcGFydHkuIFdoZW4gc2hlIHNhdyBoZXIKZGFkIGRvbm5pbmcgaGlzIHR1eGVkbywgc2hlIHdhcm5lZCwgIkRhZGR5LCB5b3Ugc2hvdWxkbid0IHdlYXIgdGhhdCBzdWl0LiIKIkFuZCB3aHkgbm90LCBkYXJsaW5nPyIgIllvdSBrbm93IHRoYXQgaXQgYWx3YXlzIGdpdmVzIHlvdSBhIGhlYWRhY2hlIHRoZSBuZXh0Cm1vcm5pbmciIAoKREVBVEggCi0gV2hpbGUgd2Fsa2luZyBhbG9uZyB0aGUgc2lkZXdhbGsgaW4gZnJvbnQgb2YgaGlzIGNodXJjaCwgb3VyIG1pbmlzdGVyIGhlYXJkCnRoZSBpbnRvbmluZyBvZiBhIHByYXllciB0aGF0IG5lYXJseSBtYWRlIGhpcyBjb2xsYXIgd2lsdC4gQXBwYXJlbnRseSwgaGlzCjUteWVhci1vbGQgc29uIGFuZCBoaXMgcGxheW1hdGVzIGhhZCBmb3VuZCBhIGRlYWQgcm9iaW4uIEZlZWxpbmcgdGhhdCBwcm9wZXIKYnVyaWFsIHNob3VsZCBiZSBwZXJmb3JtZWQsIHRoZXkgaGFkIHNlY3VyZWQgYSBzbWFsbCBib3ggYW5kIGNvdHRvbiBiYXR0aW5nLAp0aGVuIGR1ZyBhIGhvbGUgYW5kIG1hZGUgcmVhZHkgZm9yIHRoZSBkaXNwb3NhbCBvZiB0aGUgZGVjZWFzZWQuIFRoZQptaW5pc3RlcidzIHNvbiB3YXMgY2hvc2VuIHRvIHNheSB0aGUgYXBwcm9wcmlhdGUgcHJheWVycyBhbmQgd2l0aCBzb25vcm91cwpkaWduaXR5IGludG9uZWQgaGlzIHZlcnNpb24gb2Ygd2hhdCBoZSB0aG91Z2h0IGhpcyBGYXRoZXIgYWx3YXlzIHNhaWQ6ICJHbG9yeQpiZSB1bnRvIHRoZSBGYWFhYXRoZXIsIGFuZCB1bnRvIHRoZSBTb25ubiwgYW5kIGludG8gdGhlIGhvbGUgaGUgZ29vb29lcy4iIAoKU0NIT09MIAotIEEgbGl0dGxlIGdpcmwgaGFkIGp1c3QgZmluaXNoZWQgaGVyIGZpcnN0IHdlZWsgb2Ygc2Nob29sLiAiSSdtIGp1c3Qgd2FzdGluZwpteSB0aW1lLCIgc2hlIHNhaWQgdG8gaGVyIG1vdGhlci4gIkkgY2FuJ3QgcmVhZCwgSSBjYW4ndCB3cml0ZSBhbmQgdGhleSB3b24ndApsZXQgbWUgdGFsayEiIAoKQklCTEUgCi0gQSBsaXR0bGUgYm95IG9wZW5lZCB0aGUgYmlnIGZhbWlseSBiaWJsZS4gSGUgd2FzIGZhc2NpbmF0ZWQgYXMgaGUgZmluZ2VyZWQKdGhyb3VnaCB0aGUgb2xkIHBhZ2VzLiBTdWRkZW5seSwgc29tZXRoaW5nIGZlbGwgb3V0IG9mIHRoZSBCaWJsZS4gSGUgcGlja2VkIHVwCnRoZSBvYmplY3QgYW5kIGxvb2tlZCBhdCBpdC4gV2hhdCBoZSBzYXcgd2FzIGFuIG9sZCBsZWFmIHRoYXQgaGFkIGJlZW4gcHJlc3NlZAppbiBiZXR3ZWVuIHRoZSBwYWdlcy4gIk1hbWEsIGxvb2sgd2hhdCBJIGZvdW5kLCIgdGhlIGJveSBjYWxsZWQgb3V0LiIgV2hhdApoYXZlIHlvdSBnb3QgdGhlcmUsIGRlYXI/IiBXaXRoIGFzdG9uaXNobWVudCBpbiB0aGUgeW91bmcgYm95J3Mgdm9pY2UsIGhlCmFuc3dlcmVkLCAiSSB0aGluayBpdCdzIEFkYW0ncyB1bmRlcndlYXIhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IENISUxESVNIIElOU0lHSFQgKFJ1bWF0YSwgMTUuIEphbiAyMDA3LCAxNDoxNjozMyk6Cn4jISBybj1BbnRoZWEgcnQ9MTE2ODg2NjE0MyByZz13aXR6ZQp+IyEgdGlkPTExNjg4NjYxNDMKTWVpbiBGYXZvcml0IGluIGRpZXNlbSBLb250ZXh0OgoKTXkgZWlnaHQgeWVhciBvbGQgZGF1Z2h0ZXIgd2FzIHJlYWRpbmcgdGhlIGJhY2sKb2YgYSBsZW1vbiBqdWljZSBib3R0bGUgd2hpbGUgd2Ugd2VyZSBlYXRpbmcgb3VyCmRpbm5lci4gTm90aW5nIHRoYXQgdGhlIGJvdHRsZSBzYWlkIHRoYXQgaXQgd2FzCiJub3QgbWFkZSBmcm9tIGNvbmNlbnRyYXRlIiBzaGUgYXNrZWQgbWUgd2hhdCB0aGF0Cm1lYW50LiBJIHRvbGQgaGVyIHRoYXQgaXQgd2FzIG1hZGUgZnJvbSBkaXN0cmFjdGVkCmxlbW9ucy4gV2hpbGUgbXkgd2lmZSB3YXMgc2hha2luZyBoZXIgaGVhZCBpbiB0aGUKZGlzYmVsaWVmLCBteSBkYXVnaHRlciwgaW4gYSB0aG91Z2h0ZnVsIHRvbmUsIHNhaWQKInRoYXQgbXVzdCBiZSB3aHkgdGhleSBnb3QgY2F1Z2h0LiIKICA8aGFraW1pYW5AZWVjcy53c3UuZWR1IChLYXJsIEhha2ltaWFuKT4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlemVpdGVucG9lc2llIChBbnRoZWEsIDE2LiBKYW4gMjAwNywgMTE6NTg6MTIpOgpad2VpIEZpc2NoZXIgc3RlaGVuIGJlaSBOaWVkcmlnd2Fzc2VyIGltIEZsdXNzIHVuZCBmaXNjaGVuLiAKRGEga29tbXQgZGVyIERvcmZwb2V0IHZvcmJlaSB1bmQgc2FndDogCiJNb2lubW9pbiEgSWhyIGZsZWlzc2lnZW4gRmlzY2hlcnNsZXV0LCBJaHIgbXVlc3N0IG1pciBtaXQgRXVyZW0gR2VkYW5rZW5ndXQKenVyIEhhbmQgZ2VoZW4uIEljaCBicmF1Y2hlIG5vY2ggZHJpbmdlbmQgZWluZW4gUmVpbSBmdWVyIG1laW4gQnVjaCAiSGFydCBpc3QKZGFzIExlYmVuIGFuIGRlciBLdWVzdGUiICEgRmFlbGx0IEV1Y2ggZXR3YXMgZWluPyIgCkRpZSBGaXNjaGVyIHNlaGVuIHNpY2gga3VyeiBhbi4gRGFubiBzYWd0IGRlciBlaW5lOiAKIldpciBzdGVoZW4gaGllciB1bmQgZmlzY2hlbiBCYXJzY2gsIHVucyBzdGVodCBkYXMgV2Fzc2VyIGJpcyB6dW0gS25pZSEiIApEZXIgUG9ldDogCiJBYmVyIGRhcyByZWltdCBzaWNoIGRvY2ggZ2FyIG5pY2h0ISEhIiAKRGFyYXVmIGRlciBhbmRlcmUgRmlzY2hlcjogCiJEYW5uIHdhcnRlIG1hbCBhYiwgYmlzIGRpZSBGbHV0IGtvbW10Li4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWJlbmRyb3QgKEFudGhlYSwgMTYuIEphbiAyMDA3LCAxMTo1ODo0MSk6CkRlciBIZXJyIFBmYXJyZXIgc2llaHQgZGVuIGtsZWluZW4gRnJhbnppLCBkZXIgdmVya2xhZXJ0IGluIGRhcyB3dW5kZXJiYXJlLAp2ZXJnbHVlaGVuZGUgUm90IGFtIEFiZW5kaGltbWVsIGRlcyBrbGVpbmVuIFN0YWVkdGNoZW5zIHNjaGF1dCwgdW5kIHNwcmljaHQ6CiJEYXMgZnJldXQgbWljaCwgbWVpbiBTb2huLiBEdSBzY2hlaW5zdCBkZW4gU29ubmVudW50ZXJnYW5nIHNlaHIgenUgbGllYmVuLiBEdQpzaWVoc3QgamEgZ2FueiBiZWdsdWVja3QgYXVzISIgRGFyYXVmIGRlciBtdW50ZXJlIEtuYWJlOiAiV2FzIGhlaXNzdCBkZW5uClNvbm5lbnVudGVyZ2FuZywgSGVyciBQZmFycmVyPyBVbnNlcmUgU2NodWxlIGJyZW5udCEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQnVndmVyZ2xlaWNoIChBbnRoZWEsIDE2LiBKYW4gMjAwNywgMTI6MDE6MTkpOgpTdXJmZXIgMTogIldlaXN0IGR1IHNjaG9uLCBlaW4gbmV1ZXIgQnVnIGltIEZpcmVGb3ggZXJsYXVidCBlcyBqZWRlbSwgdWViZXIKZGFzIEludGVybmV0IGRlaW5lIEZlc3RwbGF0dGUgenUgbGVzZW4uIgpTdXJmZXIgMjogIkphLCBkZXNoYWxiIGJsZWliZSBpY2ggamEgYXVjaCBiZWltIEZpcmVGb3guIgpTdXJmZXIgMTogIldpZSBiaXR0ZT8iClN1cmZlciAyOiAiTmFqYSwgd2VubiBlcyBlaW4gSW50ZXJuZXQtRXhwbG9yZXIgQnVnIHdhZXJlLCBkYW5uIGtvZW5udGUgamVkZXIKbWVpbmUgRmVzcGxhdHRlIGF1Y2ggbm9jaCBiZXNjaHJlaWJlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWVyY2hlbiAoQW50aGVhLCAxNy4gSmFuIDIwMDcsIDExOjA0OjM3KToKRHJlaSBCYXVlcm4gc2l0enRlbiB6dXNhbW1lbiBhdWYgZWluZXIgUGFya2JhbmsuIFNhZ3QgZGVyIGVpbmU6Ci5NZWluZSBGcmF1IGhhdCBkYXMgZG9wcGVsdGUgTG90dGNoZW4gZ2VsZXNlbiB1bmQgZGFuYWNoIFp3aWxsaW5nZSBiZWtvbW1lbiEuClNhZ3QgZGVyIHp3ZWl0ZTogLkFjaCwgZGFzIGlzdCBkb2NoIG5vY2ggZ2FyIG5pY2h0cyEgTWVpbmUgRnJhdSBoYXQKU2NobmVld2l0dGNoZW4gdW5kIGRpZSBzaWViZW4gWndlcmdlIGdlbGVzZW4gdW5kIGhhdCBTaWViZW5saW5nZSBiZWtvbW1lbiEuClBsb2V0emxpY2ggc3ByaW5ndCBkZXIgRHJpdHRlIGF1ZiEKRnJhZ2VuIGRpZSBhbmRlcm4gYmVpZGVuOiAuV2FzIGhhc3QgZHUgZGVubiBwbG9ldHpsaWNoPy4KRXI6IC5JY2ggbXVzcyBzY2huZWxsIG5hY2ggSGF1c2UhIE1laW5lIEZyYXUgbGllc3QgZ2VyYWRlIEFsaSBCYWJhIHVuZCBkaWUgNDAKUmFldWJlciEuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUGFzc2tvbnRyb2xsZSAoR3JpbW1ib3JuLCAyMi4gSmFuIDIwMDcsIDEwOjE2OjE2KToKQW0gRmx1Z2hhZmVuIGluIE11ZW5jaGVuIGdlaHQgZWluIEZhcmJpZ2VyIGF1ZiBkaWUgUGFzc2tvbnRyb2xsZSB6dSwgaW4gZGVyCkhhbmQgZWluZW4gQXVzd2VpcywgZGVtIG1hbiBhdWYgMTAwbSBhbnNpZWh0IGRhc3MgZXIgZ2VmYWVsdHNjaHQgaXN0LiBOaWNodApnZW51ZyBkYW1pdCwgZHJlaXN0IGhhdCBlciBhdWNoIG5vY2ggZWluIEJJbGQgdm9uIExvZW5hcmRvIGRpZSBDYXByaW8gYWxzClBhc3NiaWxkIGluIGRlbiBQYXNzIGdla2xlYnQuIERhbWl0IGtvbW10IGVyIGFsc28gYXVmIGRlbiBCR1MtQmVhbXRlbiB6dSwKcmVpY2h0IGlobSBkZW4gUGFzcy4gRGVyIHNjaGF1dCBzaWNoIGRlbiBQYXNzIGFuLCBkZW4gRmFyYmlnZW4sIHdpZWRlciBkZW4KUGFzcywgd2llZGVyIGRlbiBGYXJiaWdlbiwgdW5kIHNhZ3Q6ICJFaW5lbiBNb21lbnQsIGljaCBiaW4gaW4gMTAgTWludXRlbgp3aWVkZXIgZGEuIiBFciBnZWh0IG5hY2ggaGludGVuIHp1IHNlaW5lbiBLb2xsZWdlbiwgZ3JlaWZ0IHNpY2ggZWluZW4gdW5kCnNhZ3Q6ICJEdSwgaWNoIGhhYiBkYSBtYWwgbmUgRnJhZ2UuIERpZSBUaXRhbmljLCBpc3QgZGllIG51biBhYmdlc29mZmVuIG9kZXIKYWJnZWJyYW5udD8iIAoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUGFzc2tvbnRyb2xsZSAoWm9vaywgMjIuIEphbiAyMDA3LCAxMDoxODoyOCk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTE2OTQ1NzM3NiByZz13aXR6ZQp+IyEgdGlkPTExNjk0NTczNzYKKmcqCgpBYmVyIGRhc3MgZGVyIG5lbiBsYW5nZW4gQmFydCBoYXQsIHNpZWh0IG1hbiBqYSBkYXJhbiwgZGFzcyBlcyBkZW4gQkdTCmdhciBuaWNodCBtZWhyIGdpYnQuIDspIAoKWgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJhdWVuIGluIGRlciBJVCAoQXJrLCAyNi4gSmFuIDIwMDcsIDAwOjU3OjQzKToKS2VubnQgbWFuIHZpZWxsZWljaHQgc2Nob24sIGFiZXIgZnVlciBTY2hvd2llcyBpbW1lciB3aWVkZXIgbHVzdGlnOgoKSEFSRC1ESVNLIFdvbWFuOiBTaGUgcmVtZW1iZXJzIGV2ZXJ5dGhpbmcsIEZPUkVWRVIuClJBTSBXb21hbjogU2hlIGZvcmdldHMgYWJvdXQgeW91LCB0aGUgbW9tZW50IHlvdSB0dXJuIGhlciBvZmYuCldJTkRPV1MgV29tYW46IEV2ZXJ5b25lIGtub3dzIHRoYXQgc2hlIGNhbid0IGRvIGEgdGhpbmcgcmlnaHQsIGJ1dCBubyBvbmUgY2FuCmxpdmUgd2l0aG91dCBoZXIuCkVYQ0VMIFdvbWFuOiBUaGV5IHNheSBzaGUgY2FuIGRvIGEgbG90IG9mIHRoaW5ncyBidXQgeW91IG1vc3RseSB1c2UgaGVyIGZvcgp5b3VyIGZvdXIgYmFzaWMgbmVlZHMuClNDUkVFTlNBVkVSIFdvbWFuOiBTaGUgaXMgZ29vZCBmb3Igbm90aGluZyBidXQgYXQgbGVhc3Qgc2hlIGlzIGZ1biEKSU5URVJORVQgV29tYW46IERpZmZpY3VsdCB0byBhY2Nlc3MuClNFUlZFUiBXb21hbjogQWx3YXlzIGJ1c3kgd2hlbiB5b3UgbmVlZCBoZXIuCk1VTFRJTUVESUEgV29tYW46IFNoZSBtYWtlcyBob3JyaWJsZSB0aGluZ3MgbG9vayBiZWF1dGlmdWwuCkNELVJPTSBXb21hbjogU2hlIGlzIGFsd2F5cyBmYXN0ZXIgYW5kIGZhc3Rlci4KRS1NQUlMIFdvbWFuOiBFdmVyeSB0ZW4gdGhpbmdzIHNoZSBzYXlzLCBlaWdodCBhcmUgbm9uc2Vuc2UuClZJUlVTIFdvbWFuOiBBbHNvIGtub3duIGFzICJXSUZFIjsgd2hlbiB5b3UgYXJlIG5vdCBleHBlY3RpbmcgaGVyLCBzaGUgY29tZXMsCmluc3RhbGxzIGhlcnNlbGYgYW5kIHVzZXMgYWxsIHlvdXIgcmVzb3VyY2VzLiBJZiB5b3UgdHJ5IHRvIHVuaW5zdGFsbCBoZXIgeW91CndpbGwgbG9zZSBzb21ldGhpbmcsIGlmIHlvdSBkb24ndCB0cnkgdG8gdW5pbnN0YWxsIGhlciB5b3Ugd2lsbCBsb3NlCmV2ZXJ5dGhpbmcuCgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktvbW11bmlrYXRpb24gaXN0IGFsbGVzIChBbnRoZWEsIDI5LiBKYW4gMjAwNywgMTQ6NDA6MzgpOgoKR3Jvc3NlciBBdWZydWhyIGltIFdhbGQ6IEVzIGdlaHQgZGFzIEdlcnVlY2h0IHVtLCBkZXIgQmFlciBoYWJlIGVpbmUKVG9kZXNsaXN0ZS4KQWxsZSBmcmFnZW4gc2ljaCB3ZXIgZGVubiBudW4gZGEgZHJhdWYgc3RlaHQuCkFscyBlcnN0ZXIgbmltbXQgZGVyIEhpcnNjaCBhbGxlbiBNdXQgenVzYW1tZW4gdW5kIGdlaHQgenVtIEJhZXJlbiB1bmQgZnJhZ3QKaWhuOgoiU2FnIG1hbCBCYWVyLCBzdGVoIGljaCBhdWNoIGF1ZiBkZWluZXIgTGlzdGU/IgoiSmEsIiBzYWd0IGRlciBCYWVyICJhdWNoIGRlaW4gTmFtZSBzdGVodCBhdWYgZGVyIExpc3RlLiIKVm9sbCBBbmdzdCBkcmVodCBzaWNoIGRlciBIaXJzY2ggdW0gdW5kIGdlaHQuIFVuZCB3aXJrbGljaCwgbmFjaCAyIFRhZ2VuIHdpcmQKZGVyIEhpcnNjaCB0b3QgYXVmZ2VmdW5kZW4uCkRpZSBBbmdzdCBiZWkgZGVuIFdhbGRiZXdvaG5lciBzdGVpZ3QgaW1tZXIgbWVociB1bmQgZGllIEdlcnVlY2h0ZWt1ZWNoZSB1bQpkaWUgRnJhZ2UsIHdlciBub2NoIGF1ZiBkZXIgTGlzdGUgc3RlaHQsIGJyb2RlbHQuCkRlciBLZWlsZXIgaXN0IGRlciBlcnN0ZSBkZW0gZGVyIEdlZHVsZHNmYWRlbiByZWlzc3QgdW5kIGRlciBkZW4gQmFlciBhdWZzdWNodAp1bSBpaG4genUgZnJhZ2VuLCBvYiBlciBhdWNoIGF1ZiBkZXIgTGlzdGUgc3RlaHQuCiJKYSIgYW50d29ydGV0IGRlciBCYWVyICJhdWNoIGR1IHN0ZWhzdCBhdWYgZGVyIExpc3RlIi4KVmVyYWVuZ3N0aWd0IHZlcmFic2NoaWVkZXQgc2ljaCBkZXIgS2VpbGVyIHZvbSBCYWVyZW4uIFVuZCBhdWNoIGlobiBmYW5kIG1hbgpuYWNoIDIgVGFnZW4gdG90IGF1Zi4KTnVuIGJyaWNodCBkaWUgUGFuaWsgYmVpIGRlbiBXYWxkYmV3b2huZXJuIGF1cy4KTnVyIGRlciBIYXNlIHRyYXV0IHNpY2ggbm9jaCBkZW4gQmFlcmVuIGF1Znp1c3VjaGVuLgoiQmFlciwgc3RlaCBpY2ggYXVjaCBhdWYgZGVyIExpc3RlPyIKIkphLCBhdWNoIGR1IHN0ZWhzdCBhdWYgZGVyIExpc3RlIgoiS2FubnN0IGR1IG1pY2ggZGEgc3RyZWljaGVuPyIKIkphIGtsYXIsIGtlaW4gUHJvYmxlbSIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZlcm5nZXNwcmFlY2ggKEFudGhlYSwgIDIuIEZlYiAyMDA3LCAxMTowMzo0OSk6CkFuIEFtZXJpY2FuIGRlY2lkZWQgdG8gd3JpdGUgYSBib29rIGFib3V0IGZhbW91cyBjaHVyY2hlcyBhcm91bmQgdGhlIHdvcmxkLiBTbwpoZSBib3VnaHQgYSBwbGFuZSB0aWNrZXQgYW5kIHRvb2sgYSB0cmlwIHRvIE9ybGFuZG8gdGhpbmtpbmcgdGhhdCBoZSB3b3VsZApzdGFydCBieSB3b3JraW5nIGhpcyB3YXkgYWNyb3NzIHRoZSBVU0EgZnJvbSBTb3V0aCB0byBOb3J0aC4KCk9uIGhpcyBmaXJzdCBkYXkgaGUgd2FzIGluc2lkZSBhIGNodXJjaCB0YWtpbmcgcGhvdG9ncmFwaHMgd2hlbiBoZSBub3RpY2VkIGEKZ29sZGVuIHRlbGVwaG9uZSBtb3VudGVkIG9uIHRoZSB3YWxsIHdpdGggYSBzaWduIHRoYXQgcmVhZCAiJDEwLDAwMCBwZXIgY2FsbCIuClRoZSBBbWVyaWNhbiwgYmVpbmcgaW50cmlndWVkIGFza2VkIGEgcHJpZXN0IHdobyB3YXMgc3Ryb2xsaW5nIGJ5IHdoYXQgdGhlCnRlbGVwaG9uZSB3YXMgdXNlZCBmb3IuIFRoZSBwcmllc3QgcmVwbGllZCB0aGF0IGl0IHdhcyBhIGRpcmVjdCBsaW5lIHRvIGhlYXZlbgphbmQgdGhhdCBmb3IgJDEwLDAwMCB5b3UgY291bGQgdGFsayB0byBHb2QuIFRoZSBBbWVyaWNhbiB0aGFua2VkIHRoZSBwcmllc3QKYW5kIHdlbnQgYWxvbmcgaGlzIHdheS4KCk5leHQgc3RvcCB3YXMgaW4gQXRsYW50YS4gVGhlcmUsIGF0IGEgdmVyeSBsYXJnZSBjYXRoZWRyYWwsIGhlIHNhdyB0aGUgc2FtZQpnb2xkZW4gdGVsZXBob25lIHdpdGggdGhlIHNhbWUgc2lnbiB1bmRlciBpdC4gSGUgd29uZGVyZWQgaWYgdGhpcyB3YXMgdGhlIHNhbWUKa2luZCBvZiB0ZWxlcGhvbmUgaGUgc2F3IGluIE9ybGFuZG8gYW5kIGhlIGFza2VkIGEgbmVhcmJ5IG51biB3aGF0IGl0cyBwdXJwb3NlCndhcy4gU2hlIHRvbGQgaGltIHRoYXQgaXQgd2FzIGEgZGlyZWN0IGxpbmUgdG8gaGVhdmVuIGFuZCB0aGF0IGZvciAkMTAsMDAwIGhlCmNvdWxkIHRhbGsgdG8gR29kLiAiT2theSB0aGFuayB5b3UsIiBzYWlkIHRoZSBBbWVyaWNhbi4KCkhlIHRoZW4gdHJhdmVsbGVkIHRvIEluZGlhbmFwb2xpcywgV2FzaGluZ3RvbiBEQywgUGhpbGFkZWxwaGlhLCBCb3N0b24gYW5kIE5ldwpZb3JrLiBJbiBldmVyeSBjaHVyY2ggaGUgc2F3IHRoZSBzYW1lIGdvbGRlbiB0ZWxlcGhvbmUgd2l0aCB0aGUgc2FtZSAiJDEwLDAwMApwZXIgY2FsbCIgc2lnbiB1bmRlciBpdC4KClRoZSBBbWVyaWNhbiwgdXBvbiBsZWF2aW5nIFZlcm1vbnQgZGVjaWRlZCB0byB0cmF2ZWwgdG8gQVVTVFJBTElBIHRvIHNlZSBpZgpBdXN0cmFsaWFucyBoYWQgdGhlIHNhbWUgcGhvbmUuIEhlIGFycml2ZWQgaW4gQXVzdHJhbGlhLCBhbmQgYWdhaW4sIGluIHRoZQpmaXJzdCBjaHVyY2ggaGUgZW50ZXJlZCwgdGhlcmUgd2FzIHRoZSBzYW1lIGdvbGRlbiB0ZWxlcGhvbmUsIGJ1dCB0aGlzIHRpbWUKdGhlIHNpZ24gdW5kZXIgaXQgcmVhZCAiNDAgY2VudHMgcGVyIGNhbGwuIgoKVGhlIEFtZXJpY2FuIHdhcyBzdXJwcmlzZWQgc28gaGUgYXNrZWQgdGhlIHByaWVzdCBhYm91dCB0aGUgc2lnbi4gIkZhdGhlciwKSSd2ZSB0cmF2ZWxsZWQgYWxsIG92ZXIgQW1lcmljYSBhbmQgSSd2ZSBzZWVuIHRoaXMgc2FtZSBnb2xkZW4gdGVsZXBob25lIGluCm1hbnkgY2h1cmNoZXMuIEknbSB0b2xkIHRoYXQgaXQgaXMgYSBkaXJlY3QgbGluZSB0byBIZWF2ZW4sIGJ1dCBpbiB0aGUgVVMgdGhlCnByaWNlIHdhcyAkMTAsMDAwIHBlciBjYWxsLiBXaHkgaXMgaXQgc28gY2hlYXAgaGVyZT8iCgpUaGUgcHJpZXN0IHNtaWxlZCBhbmQgYW5zd2VyZWQsICJZb3UncmUgaW4gQXVzdHJhbGlhIG5vdywgc29uIC0gaXQncyBhIGxvY2FsCmNhbGwhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxsZXMgQmxhdSAoQW50aGVhLCAgMi4gRmViIDIwMDcsIDExOjA1OjUwKToKVGhlIG1heW9yIG9mIFBob2VuaXggd2FzIHZlcnkgd29ycmllZCBhYm91dCBhIHBsYWd1ZSBvZiBwaWdlb25zIGluIFBob2VuaXguClRoZSBtYXlvciBjb3VsZCBub3QgcmVtb3ZlIHRoZSBwaWdlb25zIGZyb20gdGhlIGNpdHkuIEFsbCBvZiBQaG9lbml4IHdhcyBmdWxsCm9mIHBpZ2VvbiBwb29wLiBUaGUgcGVvcGxlIG9mIFBob2VuaXggY291bGRuJ3Qgd2FsayBvbiB0aGUgc2lkZXdhbGtzIG9yIGRyaXZlCm9uIHRoZSByb2Fkcy4gSXQgd2FzIGNvc3RpbmcgYSBmb3J0dW5lIHRvIHRyeSB0byBrZWVwIHRoZSBzdHJlZXRzIGFuZApzaWRld2Fsa3MgY2xlYW4uCgpPbmUgZGF5IGEgbWFuIGNhbWUgdG8gQ2l0eSBIYWxsIGFuZCBvZmZlcmVkIHRoZSBNYXlvciBhIHByb3Bvc2l0aW9uLiAiSSBjYW4KcmlkIHlvdXIgYmVhdXRpZnVsIGNpdHkgb2YgaXRzIHBsYWd1ZSBvZiBwaWdlb25zIHdpdGhvdXQgY29zdCB0byB0aGUgY2l0eS4KQnV0LCB5b3UgbXVzdCBwcm9taXNlIG5vdCB0byBhc2sgbWUgYW55IHF1ZXN0aW9ucy4gT3IsIHlvdSBjYW4gcGF5IG1lIGZpdmUKbWlsbGlvbiBkb2xsYXJzIGFuZCBhc2sgb25lIHF1ZXN0aW9uLiIgVGhlIG1heW9yIGNvbnNpZGVyZWQgdGhlIG9mZmVyIGJyaWVmbHkKYW5kIGFjY2VwdGVkIHRoZSBmcmVlIHByb3Bvc2l0aW9uLiAKClRoZSBuZXh0IGRheSB0aGUgbWFuIGNsaW1iZWQgdG8gdGhlIHRvcCBvZiBDaXR5IEhhbGwsIG9wZW5lZCBoaXMgY29hdCwgYW5kCnJlbGVhc2VkIGEgYmx1ZSBwaWdlb24uIFRoZSBibHVlIHBpZ2VvbiBjaXJjbGVkIGluIHRoZSBhaXIgYW5kIGZsZXcgdXAgaW50bwp0aGUgYnJpZ2h0IGJsdWUgQXJpem9uYSBza3kuIEFsbCB0aGUgcGlnZW9ucyBpbiBQaG9lbml4IHNhdyB0aGUgYmx1ZSBwaWdlb24uClRoZXkgZ2F0aGVyZWQgdXAgYmVoaW5kIHRoZSBibHVlIHBpZ2Vvbi4gVGhlIFBob2VuaXggcGlnZW9ucyBmb2xsb3dlZCB0aGUgYmx1ZQpwaWdlb24gYXMgc2hlIGZsZXcgc291dGh3YXJkIG91dCBvZiB0aGUgY2l0eS4KClRoZSBuZXh0IGRheSB0aGUgYmx1ZSBwaWdlb24gcmV0dXJuZWQgY29tcGxldGVseSBhbG9uZSB0byB0aGUgbWFuIGF0b3AgQ2l0eQpIYWxsLiBUaGUgTWF5b3Igd2FzIHZlcnkgaW1wcmVzc2VkLiBIZSB0aG91Z2h0IHRoZSBtYW4gYW5kIHRoZSBibHVlIHBpZ2VvbiBoYWQKcGVyZm9ybWVkIGEgd29uZGVyZnVsIG1pcmFjdWxvdXMgZmVhdCB0byByaWQgUGhvZW5peCBvZiB0aGUgcGxhZ3VlIG9mIHBpZ2VvbnMuCgpFdmVuIHRob3VnaCB0aGUgbWFuIHdpdGggdGhlIHBpZ2VvbiBoYWQgY2hhcmdlZCBub3RoaW5nLCB0aGUgbWF5b3IgcHJlc2VudGVkCmhpbSB3aXRoIGEgY2hlY2sgZm9yIDUgbWlsbGlvbiBkb2xsYXJzIGFuZCB0b2xkIHRoZSBtYW4gdGhhdCwgaW5kZWVkLCBoZSBkaWQKaGF2ZSBhIHF1ZXN0aW9uIHRvIGFzayBhbmQgZXZlbiB0aG91Z2ggdGhleSBoYWQgYWdyZWVkIHRvIG5vIGZlZSBhbmQgdGhlIG1hbgpoYWQgcmlkIHRoZSBjaXR5IG9mIHBpZ2VvbnMsIGhlIGRlY2lkZWQgdG8gcGF5IHRoZSA1IG1pbGxpb24ganVzdCB0byBnZXQgdG8KYXNrIE9ORSBxdWVzdGlvbiEKClRoZSBtYW4gYWNjZXB0ZWQgdGhlIG1vbmV5IGFuZCB0b2xkIHRoZSBtYXlvciB0byBhc2sgaGlzIHF1ZXN0aW9uLiBUaGUgbWF5b3IKYXNrZWQ6ICJEbyB5b3UgaGF2ZSBhIGJsdWUgTWV4aWNhbj8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQWxsZXMgQmxhdSAoR3JpbW1ib3JuLCAgMi4gRmViIDIwMDcsIDExOjA5OjEyKToKfiMhIHJuPUFudGhlYSBydD0xMTcwNDEwNzUwIHJnPXdpdHplCn4jISB0aWQ9MTE3MDQxMDc1MApBaCwgZGllIFNhaXNvbiBmdWVyIHJhc3Npc3Rpc2NoZSB1bmQgZnJlbWRlbmZlaW5kbGljaGUgV2l0emUgaGF0IGJlZ29ubmVuPwoKR2RBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFsbGVzIEJsYXUgKEFudGhlYSwgIDIuIEZlYiAyMDA3LCAxMToxNTowNSk6Cn4jISBybj1HcmltbWJvcm4gcnQ9MTE3MDQxMDk1MiByZz13aXR6ZQp+IyEgdGlkPTExNzA0MTA3NTAKS2xhci4gQWJlciBkYXJhdWYgYmVzY2hyYWVua2UgaWNoIG1pY2ggamEgbmljaHQuLi4KCk9uZSB3aW50ZXIgbW9ybmluZyBhIGNvdXBsZSB3YXMgbGlzdGVuaW5nIHRvIHRoZSByYWRpbyBvdmVyIGJyZWFrZmFzdC4gVGhleQpoZWFyIHRoZSBhbm5vdW5jZXIgc2F5LCAiV2UgYXJlIGdvaW5nIHRvIGhhdmUgOCB0byAxMCBpbmNoZXMgb2Ygc25vdyB0b2RheS4KWW91IG11c3QgcGFyayB5b3VyIGNhciBvbiB0aGUgZXZlbi1udW1iZXJlZCBzaWRlIG9mIHRoZSBzdHJlZXQsIHNvIHRoZQpzbm93cGxvdWdocyBjYW4gZ2V0IHRocm91Z2guIiBOb3JtYW4ncyB3aWZlIGdvZXMgb3V0IGFuZCBtb3ZlcyBoZXIgY2FyLgoKQSB3ZWVrIGxhdGVyIHdoaWxlIHRoZXkgYXJlIGVhdGluZyBicmVha2Zhc3QgYWdhaW4sIHRoZSByYWRpbyBhbm5vdW5jZXIgc2F5cywKIldlIGFyZSBleHBlY3RpbmcgMTAgdG8gMTIgaW5jaGVzIG9mIHNub3cgdG9kYXkuIFlvdSBtdXN0IHBhcmsgeW91ciBjYXIgb24gdGhlCm9kZC1udW1iZXJlZCBzaWRlIG9mIHRoZSBzdHJlZXQsIHNvIHRoZSBzbm93cGxvdWdocyBjYW4gZ2V0IHRocm91Z2guICJOb3JtYW4ncwp3aWZlIGdvZXMgb3V0IGFuZCBtb3ZlcyBoZXIgY2FyIGFnYWluLgoKVGhlIG5leHQgd2VlayB0aGV5IGFyZSBhZ2FpbiBoYXZpbmcgYnJlYWtmYXN0LCB3aGVuIHRoZSByYWRpbyBhbm5vdW5jZXIgc2F5cywKIldlIGFyZSBleHBlY3RpbmcgMTIgdG8gMTQgaW5jaGVzIG9mIHNub3cgdG9kYXkgWW91IG11c3QgcGFyay4uLiIgVGhlbiB0aGUKcG93ZXIgZ29lcyBvdXQuIE5vcm1hbidzIHdpZmUgaXMgdmVyeSB1cHNldCwgYW5kIHdpdGggYSB3b3JyaWVkIGxvb2sgb24gaGVyCmZhY2Ugc2hlIHNheXMsICJIb25leSwgSSBkb24ndCBrbm93IHdoYXQgdG8gZG8uIFdoaWNoIHNpZGUgb2YgdGhlIHN0cmVldCBkbyBJCm5lZWQgdG8gcGFyayBvbiBzbyB0aGUgc25vd3Bsb3VnaHMgY2FuIGdldCB0aHJvdWdoPyIKCldpdGggdGhlIGxvdmUgYW5kIHVuZGVyc3RhbmRpbmcgaW4gaGlzIHZvaWNlIHRoYXQgYWxsIG1lbiB3aG8gYXJlIG1hcnJpZWQgdG8KYmxvbmRlcyBleGhpYml0LCBOb3JtYW4gc2F5cyAiV2h5IGRvbid0IHlvdSBqdXN0IGxlYXZlIGl0IGluIHRoZSBnYXJhZ2UgdGhpcwp0aW1lPyIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLZW5udCBpaHIgZGVuIHNjaG9uPyAoUGVyZGl0YSwgIDYuIEZlYiAyMDA3LCAxNzowMzoxOCk6CkhpaGksIGdyYWQgaXJnZW5kd28gZ2VsZXNlbjoKClVudGVyaGFsdGVuIHNpY2ggendlaSBJbmZvcm1hdGlrZXI6CkEgIldpZSBpc3QgZGVubiBkYXMgV2V0dGVyIGJlaSBkaXI/IgpCICJDQVBTIExPQ0siCkEgIldpZSBiaXR0ZT8hPyEiCkIgIlNoaWZ0IG9obmUgRW5kZSIKCkFsc28gSUNIIGZhbmQgZGVuIGd1dCA6LSkKUGVyZGl0YQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtlbm50IGlociBkZW4gc2Nob24/IChEYXJrbG9yLCAgNy4gRmViIDIwMDcsIDAyOjU5OjM4KToKfiMhIHJuPVBlcmRpdGEgcnQ9MTE3MDc3Nzc5OCByZz13aXR6ZQp+IyEgdGlkPTExNzA3Nzc3OTgKSW5mb3JtYXRpa2VyIEh1bW9yLi4uCgpEYXJrbG9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYWhyZW4gdW50ZXIgQWxrb2hvbCAoQW50aGVhLCAyMC4gRmViIDIwMDcsIDE3OjI4OjM3KToKV2VubiBqZW1hbmQgd2llZGVyaG9sdCB1bnRlciBBbGsgYXVmZmFlbGx0LCBrYW5uIGRhcyB2ZXJzY2hpZWRlbmUgR3J1ZW5kZQpoYWJlbjoKClZhcmlhbnRlIDEsIGRlciAiS29udHJvbGx2ZXJsdXN0bGVyIi4gJyAnSWNoIGdlaGUgaW1tZXIgbWl0IGRlbiBiZXN0ZW4KVm9yc2FldHplbiBpbiBkaWUgS25laXBlLiBFaW4gQmllciwgYWJlciBuaWNodCBtZWhyLiBOYWNoIGRlbSBlcnN0ZW4gQmllciBpc3QKbWlyIGFiZXIgYWxsZXMgZWdhbCwgaWNoIHRyaW5rZSB3ZWl0ZXIgdW5kIGZhaHJlIGRhbm4gdHJvdHpkZW0uJwoKVmFyaWFudGUgMiBEZXIgIk1hY2hvIi4gJ0ljaCBmYWhyZSBkb2NoIG1pdCBlaW5lbSBQcm9taWxsZSBzaWNoZXJlciBhbHMgOTglCmRlciBNZW5zY2hoZWl0LiBEaWUgc29sbGVuIHNpY2ggbWFsIG5pY2h0IHNvIGhhYmVuLicgCgpWYXJpYW50ZSAzICJEZXIgU3BpZWxlciIuICdBbHNvLCBlaCBMZXV0ZSwgbmV1bGljaCBoYXR0ZSBpY2ggbWlyIHdpZWRlciBlaW4KUGFhciBoaW50ZXIgZGllIEJpcm5lIGdla2lwcHQuIFVuZCBhbHMgaWNoIHVtIGRpZSBsZXR6dGUgRWNrZSBiaWVnZSwgZGEgc3RlaHQKZG9jaCBzbyBlaW4gQXV0byB2b24gZGVuIEdydWVuZW4uIEV5aCwgZGFzIHdhciBlY2h0IGNvb2wgTWFubiwgaWNoIGJpbiBkYQplaW5mYWNoIHZvcmJlaSBnZWZhaHJlbiB1bmQgc2llIGhhYmVuIG1pY2ggZHVyY2hnZXdpbmt0LiBFY2h0IG9iZXJnb2lsLCBvZGVyPycKCkRlciAiUGVjaHZvZ2VsIi4gJ0lyZ2VuZHdpZSB2ZXJzdGVoZSBpY2ggZGFzIG5pY2h0LiBJY2ggZmFocmUgaW1tZXIga29ycmVrdCwKZ2VoZSBqYSBhdWNoIGthdW0gYXVzLiBBYmVyIGdlcmFkZSBhbiBkZW0gQWJlbmQgaGFiZSBpY2ggZWluZW4gYWx0ZW4gS3VtcGVsCndpZWRlciBnZXRyb2ZmZW4gdW5kIGRhbm4ga2FuIGVpbnMgenVtIGFuZGVybi4gV2llIGRhcyBoYWx0IHNvIGlzdC4gSGVycmdvdHQKbm9jaG1hbCwgd2lyIHdhcmVuIG5vY2ggaGFybWxvcy4gRGEgaGFldHRlbiBzaWUgZGllIGFuZGVybiBzZWhlbiBzb2xsZW4sIGRpZQpoYWJlbiB2aWVsIG1laHIgZ2V0cnVua2VuLiBVbmQgaWNoIGhhdHRlIGphIG51ciA1MDAgbSB6dXIgV29obnVuZywgd2VubiBpY2gKZGllIEVpbmJhaG5zdHJhc3NlIGt1cnogdmVya2VocnQgcnVtIGR1cmNoZmFoci4gU29uc3QgaGFldHRlIGljaCBqYSAyIGttIFVtd2VnCmZhaHJlbiBtdWVzc2VuLiBTdGF0dCBCYW5rcmFldWJlciB6dSBmYW5nZW4sIHJhc2VuIG1pciBkaWUgR3J1ZW5lbiBoaW50ZXJoZXIuCkxpY2h0IGhhdHRlIGljaCBhdWNoIG5pY2h0IGFuPyBTaWUgc2luZCBhYmVyIGtsZWlubGljaC4gd2FyIGRvY2ggYWxsZXMgaGVsbAplcmxldWNodGV0JwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWx0IGFiZXIgaW1tZXIgd2llZGVyIG5ldHQgKEFudGhlYSwgMjIuIEZlYiAyMDA3LCAxMTozNDozMik6CkF1c3p1ZWdlIGF1cyBLaW5kZXJhdWZzYWV0emVuIApNZWluZSBUYW50ZSBzY2hlbmt0ZSBtaXIgZWluZSBTcGFyYnVlY2hzZS4gU2llIHdhciBlaW4gU2Nod2VpbiB1bmQgaGF0dGUgendlaQpTY2hsaXR6ZS4gSGludGVuIGVpbmVuIGZ1ZXJzIFBhcGllciB1bmQgdm9ybmUgZnVlcnMgSGFydGUuIApfX19fXwoKRGVyIE1vbmQgaXN0IGtsZWluZXIgYWxzIGRpZSBFcmRlLiBEYXMgbGllZ3QgYWJlciBhdWNoIGRhcmFuLCBkYSBlcyBzb3dlaXQgd2VnCmlzdC4KX19fX18KCkRlciBIYXVwdG1hbm4gem9nIHNlaW5lbiBTYWViZWwgdW5kIHNjaG9zcyBkZW4gQW5ncmVpZmVyIG5pZWRlci4KX19fX18KCkVpbiBLcmVpcyBpc3QgZWluIHJ1bmRlcyBRdWFkcmF0LgpfX19fXwoKRGllIEVyZGUgZHJlaHQgc2ljaCAzNjVUYWdlIGxhbmcgamVkZXMgSmFoci4gQWxsZSB2aWVyIEphaHJlIGJyYXVjaHQgc2llIGRhenUKZWluZW4gVGFnIGxhZW5nZXIsIHVuZCBkYXMgYXVzZ2VyZWNobmV0IGltbWVyIGltIEZlYnJ1YXIuIFdhcnVtIHdlaXMgaWNoCm5pY2h0LiBWaWVsbGVpY2h0IHdlaWwgZXMgaW0gRmVicnVhciBpbW1lciBzbyBrYWx0IGlzdCB1bmQgZXMgZGVzd2VnZW4gZWluCmJpc3NjaGVuIHNjaHdlcmVyIGdlaHQuCl9fX19fCgpBbHMgZGllIE1hZW5uZXIgenVydWVja2thbWVuLCB3YXJlbiBzaWUgc3RlaWYgZ2Vmcm9yZW4uIFNpZSBzdGFuZGVuIHVtIGRhcwpwcmFzc2VsbmRlIEZldWVyIHVuZCB3YWVybXRlbiBzaWNoIGRpZSBHbGllZGVyLgpfX19fXwoKU2llZ2ZyaWVkIGhhdHRlIGFuIHNlaW5lbSBLb2VycGVyIGVpbmVuIGJlc29uZGVyZSBTdGVsbGUsIGRpZSBlciBhYmVyIG51ciBkZXIKS3JpZW1oaWxkIHplaWd0ZS4KX19fX18KCkRhbm4gZm9sZ3RlIGRhcyBaZWl0YWx0ZXIgZGVyIEF1ZmtsYWVydW5nLiBEYSBsZXJudGVuIGRpZSBMZXV0ZSBlbmRsaWNoLCBkYXNzCm1hbiBzaWNoIG5pY2h0IGR1cmNoIGRpZSBCaWVuZSBvZGVyIGRlbiBTdG9yY2ggZm9ydHBmbGFuenQsIHNvbmRlcm4gd2llIG1hbgpkaWUgS2luZGVyIHNlbGJlciBtYWNodC4KX19fX18KCk1laW5lIFNjaHdlc3RlciBpc3Qgc2VociBrcmFuay4gU2llIG5pbW10IGplZGVuIFRhZyBlaW5lIFBpbGxlLiBBYmVyIHNpZSB0dXQKZGFzIGhlaW1saWNoLCBkYW1pdCBzaWNoIG1laW5lIEVsdGVybiBrZWluZSBTb3JnZW4gbWFjaGVuLgpfX19fXwoKQXVmIGRlbSBTdGFuZGVzYW10IGdlaHQgZXMgc2VociBmZWllcmxpY2ggenUuIFdhZWhyZW5kIGVpbiBhZWx0ZXJlciBNYW5uIGltCkhpbnRlcmdydW5kIGxlaXNlIG9yZ2VsdCwgdm9sbHpvZyBkZXIgU3RhbmRlc2JlYW10ZSBhbiBtZWluZXIgU2Nod2VzdGVyIGRpZQpFaGUuCl9fX19fCgpXZW5uIG1laW5lIE11dHRlciBuaWNodCBlaW5lbiBTZWl0ZW5zcHJ1bmcgZ2VtYWNodCBoYWV0dGUsIHdhZXJlIHNpZSBkZW0KVmVya2VocnN1bmZhbGwgenVtIE9wZmVyIGdlZmFsbGVuLiBBYmVyIHNvIGthbSBzaWUgbWl0IGVpbmVtIGJsYXVlbiBBdWdlIGFtCktuaWUgZGF2b24uCl9fX19fCgpXZW5uIGRlciBWZXJrZWhyc3BvbGl6aXN0IGRpZSBBcm1lIGdlc3ByZWl6dCBoYXQsIHdpbGwgZXIgZGFtaXQgdmVya3VlbmRlbiwKZGFzcyBlciBnZXJhZGUga2VpbmVuIGZhaHJlbiBsYWVzc3QuCl9fX19fCgpFaW5lcyBkZXIgbnVldHpsaWNoc3RlbiBUaWVyZSBpc3QgZGFzIFNjaHdlaW4uIFZvbiBpaG0ga2FubiBtYW4gYWxsZXMKdmVyd2VuZGVuLCBkYXMgRmxlaXNjaCB2b24gdm9ybiBiaXMgaGludGVuLCBkaWUgSGF1dCBmdWVyIExlZGVyLCBkaWUgQm9yc3RlbgpmdWVyIEJ1ZXJzdGVuIHVuZCBkZW4gTmFtZW4gYWxzIFNjaGltcGZ3b3J0LgpfX19fXwoKQWxsZSBGaXNjaGUgbGVnZW4gRWllci4gRGllIHJ1c3Npc2NoZW4gc29nYXIgS2F2aWFyLgpfX19fXwoKRGVyIFRpZXJwYXJrIGlzdCB0b2xsLiBEYSBrYW5uIG1hbiBUaWVyZSBzZWhlbiwgZGllIGdpYnRzIGdhciBuaWNodC4KX19fX18KClZpZWxlIEh1bmRlIGdlaGVuIGdlcm4gaW5zIFdhc3Nlci4gTWFuY2hlIGxlYmVuIHNvZ2FyIGltbWVyIGRvcnQsIGRhcyBzaW5kClNlZWh1bmRlLgpfX19fXwoKQnV0dGVyIHdpcmQgYXVzIEt1ZWhlbiBnZW1hY2h0LiBTb25zdCBoZWlzc3QgZXMgTWFyZ2FyaW5lLgpfX19fXwoKRGllIFBlcmlvZGUgZGVyIEtvZW5pZ2luIEVsaXNhYmV0aCBkYXVlcnRlIDMwIEphaHJlLgpfX19fXwoKSW0gZHJlaXNzaWdqYWVocmlnZW4gS3JpZWcgbmFubnRlIG1hbiBkaWUgYmVzdGVuIHVuZCBzdGFlcmtzdGVuIFNvbGRhdGVuCk11c2tlbHRpZXJlLgpfX19fXwoKSW0gTWl0dGVsYWx0ZXIgd3VyZGVuIGRpZSBNZW5zY2hlbiBuaWNodCBzbyBhbHQgd2llIGhldXRlLiBTaWUgaGF0dGVuIGF1Y2gKbmljaHQgc28gc3RhcmtlbiBWZXJrZWhyLgpfX19fXwoKRGVyIEFldG5hIGlzdCBlaW4gc2VociB0YWV0aWdlciBWdWxrYW4uIEVyc3QgaW0gbGV0enRlbiBKYWhyIGhhdHRlIGVyIHdpZWRlcgplaW5lbiBnZXdhbHRpZ2UgRXJla3Rpb24uCl9fX19fCgpNaXQgc3RhcmtlbSwgZ3Jvc3NlbSBTdHJhaGwgZ2ViZW4gZGllIEZldWVyd2VocmxldXRlIGlociBXYXNzZXIgYWIuCl9fX19fCgpEb3J0IHdvIGpldHp0IFRydWVtbWVyIHJhZ2VuLCBzdGFuZGVuIGVpbnN0IHN0b2x6ZSBCdXJnZnJhZXVsZWlucyB1bmQgd2FydGV0ZW4KYXVmIGlocmUgYXVzZ2V6b2dlbmVuIFJpdHRlci4KX19fX18KCkVzIHdhciBlaW5lIGdyb3NzZSBEZW1vbnN0cmF0aW9uLiBEZXIgTWFya3RwbGF0eiB3YXIgdm9sbGVyIE1lbnNjaGVuLiBJbiBkZW4KTmViZW5zdHJhc3NlbiBwZmxhbnp0ZW4gc2ljaCBNYWVubmVyIHVuZCBGcmF1ZW4gZm9ydC4KX19fX18KCk5hY2hkZW0gZGllIE1hZW5uZXIgMTAwIG0gZ2VrcmF1bHQgaGF0dGVuIHdpY2tlbHRlbiBkaWUgRnJhdWVuIGlocmUgMjAwIG0KQnJ1c3QgYWIuCl9fX19fCgpTdHJlaWNoaG9lbHplciBtdWVzc2VuIGd1dCB2ZXJzdGVja3Qgc2VpbiwgZGFtaXQgZGllIGtlaW5lIEtpbmRlciBiZWtvbW1lbi4KX19fX18KCldpciBnaW5nZW4gbWl0IHVuc2VyZXIgTGVocmVyaW4gaW0gUGFyayBzcGF6aWVyZW4uIEdlZ2VudWViZXIgZGVtIFBhcmsgd2FyIGVpbgpIYXVzLCB3byBkaWUgTXVldHRlciBpaHJlIEtpbmRlciBnZWJhZXJlbi4gRWluZSBHZWJhZXJtdXR0ZXIgc2NoYXV0ZSBhdXMgZGVtCkZlbnN0ZXIgdW5kIHdpbmt0ZSB1bnMgenUuCl9fX19fCgpadSBBbGxlcmhlaWxpZ2VuIHdhcmVuIHdpciBhdWYgZGVtIEZyaWVkaG9mLiBFcyB3YXIgc2VociBmZWllcmxpY2gsIGRlbm4gZGVyClBmYXJyZXIgYmVzcHJhbmcgbWl0IHNlaW5lbSBXZWRlbCBkaWUgRnJpZWRob2ZzYmVzdWNoZXIuCl9fX19fCgpHZXN0ZXJuIGhhdHRlbiB3aXIgSnVnZW5kLVNraXRhZy4gQWxsZSBNaW51dGVuIGxpZXNzIGRlciBMZWhyZXIgZWluZW4gZmFocmVuLgpXZW5uIGlobSBlaW5lciB6dSBmcnVlaCByYXVza2FtLCBzY2hpY2t0ZSBlciBpaG4genVydWVjay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnJlbGlnaW91cyBicm90aGVyaG9vZCAoQW50aGVhLCAgMS4gTWFyIDIwMDcsIDE3OjQ2OjExKToKSSB3YXMgd2Fsa2luZyBhY3Jvc3MgYSBicmlkZ2Ugb25lIGRheSwgYW5kIEkgc2F3IGEgbWFuIHN0YW5kaW5nIG9uIHRoZSBlZGdlLAphYm91dCB0byBqdW1wIG9mZi4gU28gSSByYW4gb3ZlciBhbmQgc2FpZCAiU3RvcCEgRG9uJ3QgZG8gaXQhIiAiV2h5IHNob3VsZG4ndApJPyIgaGUgc2FpZC4gIldlbGwsIHRoZXJlJ3Mgc28gbXVjaCB0byBsaXZlIGZvciEiICJMaWtlIHdoYXQ/IiAiV2VsbC4uLiBhcmUKeW91IHJlbGlnaW91cz8iIEhlIHNhaWQgeWVzLiBJIHNhaWQsICJNZSB0b28hIEFyZSB5b3UgQ2hyaXN0aWFuIG9yIEJ1ZGRoaXN0PyIKIkNocmlzdGlhbi4iICJNZSB0b28hIEFyZSB5b3UgQ2F0aG9saWMgb3IgUHJvdGVzdGFudCA/ICJQcm90ZXN0YW50LiIgIk1lIHRvbyEKQXJlIHlvdSBFcGlzY29wYWxpYW4gb3IgQmFwdGlzdD8iICJCYXB0aXN0IiAiV293ISBNZSB0b28hIEFyZSB5b3UgQmFwdGlzdApDaHVyY2ggb2YgR29kIG9yIEJhcHRpc3QgQ2h1cmNoIG9mIHRoZSBMb3JkPyIgIkJhcHRpc3QgQ2h1cmNoIG9mIEdvZCEiICJNZQp0b28hIEFyZSB5b3Ugb3JpZ2luYWwgQmFwdGlzdCBDaHVyY2ggb2YgR29kLCBvciBhcmUgeW91IHJlZm9ybWVkIEJhcHRpc3QKQ2h1cmNoIG9mIEdvZD8iICJSZWZvcm1lZCBCYXB0aXN0IENodXJjaCBvZiBHb2QhIiAiTWUgdG9vISBBcmUgeW91IFJlZm9ybWVkCkJhcHRpc3QgQ2h1cmNoIG9mIEdvZCwgcmVmb3JtYXRpb24gb2YgMTg3OSwgb3IgUmVmb3JtZWQgQmFwdGlzdCBDaHVyY2ggb2YgR29kLApyZWZvcm1hdGlvbiBvZiAxOTE1PyIgSGUgc2FpZCwgIlJlZm9ybWVkIEJhcHRpc3QgQ2h1cmNoIG9mIEdvZCwgcmVmb3JtYXRpb24gb2YKMTkxNSEiIEkgc2FpZCwgIkRpZSwgaGVyZXRpYyBzY3VtIiwgYW5kIHB1c2hlZCBoaW0gb2ZmLiAoRW1vIFBoaWxpcHMpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFbmdsaXNjaCBCYXNpc2tlbm50bmlzc2UgKEFudGhlYSwgIDguIE1hciAyMDA3LCAxNjoxOTozNCk6CkZhbGxzIFNpZSBhdWNoIHRhZWdsaWNoIEtvbnRha3QgenUgYXVzbGFlbmRpc2NoZW4gS3VuZGVuIGhhYmVuLCB3aXNzZW4gU2llLAp3aWUgd2ljaHRpZyBkaWUgZW5nbGlzY2hlIFNwcmFjaGUgc2VpbiBrYW5uLiBEZXNoYWxiIGhpZXIgZWluIHBhYXIKSGlsZmVzdGVsbHVuZ2VuLCB1bSBnbGVpY2ggRWluZHJ1Y2sgenUgc2NoaW5kZW46CgpVbSBpbnRlcm5hdGlvbmFsZW4gRXJmb2xnIHp1IGhhYmVuIGJlZGFyZiBlcyBncnVuZGxlZ2VuZGVyIGVuZ2xpc2NoZXIKU3ByYWNoa2VubnRuaXNzZSEKRnVlciBkZW4gQWxsdGFnIHJlaWNoZW4gamVkb2NoIGZvbGdlbmRlIEF1c2RydWNrc3dlaXNlbiB2b2xsa29tbWVuOgoKVGhhdCBoYXZlIHlvdSB5b3Ugc28gdGhvdWdodCEgKERhcyBoYXN0IGR1IGRpciBzbyBnZWRhY2h0ISkKCkdpdmUgbm90IHNvIG9uISAoR2liIG5pY2h0IHNvIGFuISkKCkhlYXZlbiwgYXNzIGFuZCB0aHJlYWQhIChIaW1tZWwsIEFyc2NoIHVuZCBad2lybiEpCgpNZWFsdGltZSAoTWFobHplaXQpCgpPZmYgYWdhaW4gc2VlIChBdWYgV2llZGVyc2VoZW4pCgpVcyBydW5zIHRoZSB3YXRlciBpbiB0aGUgbW91dGggdG9nZXRoZXIuIChVbnMgbGFldWZ0IGRhcyBXYXNzZXIgaW0gTXVuZAp6dXNhbW1lbi4pCgpIdW1hbiBiZWluZyBNZWllciEgKE1lbnNjaCBNZWllciEpCgpJIG9ubHkgdW5kZXJzdGFuZCByYWlsc3RhdGlvbi4uLiAoSWNoIHZlcnN0ZWgnIG51ciBCYWhuaG9mLi4uKQoKTXkgZGVhciBNaXN0ZXIgc2luZ2luZy1jbHViISAoTWVpbiBsaWViZXIgSGVyciBHZXNhbmdzdmVyZWluISkKCk5vdyB3ZSBzaXQgcXVpdGUgYmVhdXRpZnVsIGluIHRoZSBpbmsuLi4gKEpldHp0IHNpdHplbiB3aXIgZ2FueiBzY2hvZW4gaW4gZGVyClRpbnRlLi4uKQoKWW91ciBFbmdsaXNoIGlzIHVuZGVyIGFsbCBwaWchIChEZWluIEVuZ2xpc2NoIGlzdCB1bnRlciBhbGxlciBTYXUhKQoKU2xvdyBnb2luZyBpcyBhbGwgdHJ1Y2sncyBiZWdpbm5pbmcuIChNdWVzc2lnZ2FuZyBpc3QgYWxsZXIgTGFzdGVyIEFuZmFuZy4pCgpOb3cgY2FuIGNvbWUgd2hhdCB3YW50cy4gKE51biBrYW5uIGtvbW1lbiB3YXMgd2lsbC4pCgp0byBoYXZlIGEganVtcCBpbiB0aGUgZGlzaCAoZWluZW4gU3BydW5nIGluIGRlciBTY2h1ZXNzZWwgaGFiZW4pCgp0byBoYXZlIG11Y2ggd29vZCBiZWZvcmUgdGhlIGNvdHRhZ2UgKHZpZWwgSG9seiB2b3IgZGVyIEh1ZXR0ZSBoYWJlbikKCnRvIGhhdmUgbm90IGFsbCBjdXBzIGluIHRoZSBib2FyZCAobmljaHQgYWxsZSBUYXNzZW4gaW0gU2NocmFuayBoYWJlbikKCnRvZ2V0aGVyLWhhbmctbGVzcyAoenVzYW1tZW5oYW5nbG9zKQoKaWYgeW91IHRoaW5rLCB5b3UgY2FuIGJlYXQgbWUgb3ZlciB0aGUgZWFyLCB5b3UgYXJlIG9uIHRoZSB3b29kd2F5ICh3ZW5uIGR1CmRlbmtzdCwgZHUga2FubnN0IG1pY2ggdWViZXJzIE9ociBoYXVlbiwgYmlzdCBkdSBhdWYgZGVtIEhvbHp3ZWcpCgpJJ20gaGVhdnkgb24gd2lyZSAoaWNoIGJpbiBzY2h3ZXIgYXVmIGRyYWh0KQoKCk5hdHVlcmxpY2ggc29sbHRlIG1hbiBhdWNoIGRpZSBzY2hvZW5lbiBPcnRlIERldXRzY2hsYW5kcyBpbW1lciBwYXJhdCBoYWJlbjoKCkFzaC1tb25rZXktY2FzdGxlIChBc2NoYWZmZW5idXJnKQpCYXRocm9vbS1yaWNoLWVjaG8gKEJhZCBSZWljaGVuaGFsbCkKRG91YmxlLXUtdXBwZXItdmFsbGV5IChXdXBwZXJ0YWwpCkhvdydzIGJhdGhpbmcgKFdpZXNiYWRlbikKUmF3LXN0aWNrIChSb3N0b2NrKQpSZWN0YWwtdG93biAoRGFybXN0YWR0KQpTcGljZS1jYXN0bGUgKFd1ZXJ6YnVyZykKVGhlcmVtb3V0aCAoRG9ydG11bmQpClRvLVNpdGRvd24taG9tZSAoSG9ja2VuaGVpbSkKVG9wLW9mLXRoZS10cmFpbiAoWnVnc3BpdHplKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbmFnZW1lbnQgKEFudGhlYSwgMTUuIE1hciAyMDA3LCAwOTo0OToyOSk6CkVpbiBJbmRpYW5lciBrb21tdCBpbiBkZW4gU2Fsb29uLCBlaW5lIFB1bXBndW4gaW4gZWluZXIgSGFuZCB1bmQgZWluZW0gRWltZXIKbWl0IEJpc29uZmxhZGVuIGluIGRlciBhbmRlcmVuLiAKCiJJY2ggbW9lY2h0ZSBlaW5lbiBLYWZmZWUgaGFiZW4uIgoKRGVyIEtlbGxuZXIgYnJpbmd0IGRlbiBLYWZmZWUsIGRlciBJbmRpYW5lciB0cmlua3QgZGllIFRhc3NlIEthZmZlZSBpbiBlaW5lbQpadWcsIHdpcmZ0IGRlbiBFaW1lciBpbiBkaWUgTHVmdCwgc2NoaWVzc3QgbWl0IGRlciBQdW1wZ3VuIGF1ZiBpaG4gdW5kCnZlcnNjaHdpbmRldC4KCkFtIG5hZWNoc3RlbiBUYWcga29tbXQgZXIgd2llZGVyIHVuZCB2ZXJsYW5ndCB3aWVkZXIgZWluZW4gS2FmZmVlLiAiSGFsdCAhCldhcnRlLiIgc2FndCBkZXIgQmVzaXR6ZXIgIldpciBzaW5kIGltbWVyIG5vY2ggZGFiZWkgZGFzIHp1IHJlaW5pZ2VuIHdhcyBkdQpnZXN0ZXJuIGFuZ2VyaWNodGV0IGhhc3QuIFdhcyBzb2xsIGRpZSBnYW56ZSBHZXNjaGljaHRlPyIKCiJJY2ggYmVsZWdlIGVpbmVuIE1hbmFnZW1lbnRrdXJzdXMgZnVlciBob2VoZXJlIEthZGVyLiBEYXMgaXN0IGRpZSB1ZWJsaWNoZQpQcmF4aXMuIFdpciBrb21tZW4gbW9yZ2VucywgdHJpbmtlbiBLYWZmZWUsIHNhZWVuIGRpZSBTY2hlaXNzZSB1bmQKdmVyc2Nod2luZGVuIGZ1ZXIgZGVuIFJlc3QgZGVzIFRhZ2VzLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFuemllaGVuZCAoUnVtYXRhLCAxNS4gTWFyIDIwMDcsIDE0OjU5OjQ1KToKV2VubiBTaWUgc2FlbWxpY2hlIEZyYXVlbiBpbiBJaHJlciBVbWdlYnVuZyBhbnppZWhlbiB3b2xsZW4sCnNvbGx0ZW4gU2llIHNvIHZpZWwgd2llIG1vZWdsaWNoIGVzc2VuIQoKRXMgaXN0IHdpc3NlbnNjaGFmdGxpY2ggZXJ3aWVzZW4sIGRhc3MgSWhyZSBBbnppZWh1bmdza3JhZnQKZGlyZWt0IHByb3BvcnRpb25hbCBtaXQgSWhyZXIgTWFzc2UgYW5zdGVpZ3QuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpERVBSRVNTRUQgTUFOIERJQUdOT1NFRCBBUyAiQlJJVElTSCIgKEFudGhlYSwgMTYuIE1hciAyMDA3LCAxNjowMjoxOCk6CgpHZW9yZ2UgRmFydGhpbmcsIGFuIGV4cGF0cmlhdGUgQnJpdGlzaCBtYW4gbGl2aW5nIGluIEFtZXJpY2EsIHdhcyByZWNlbnRseQpkaWFnbm9zZWQgYXMgY2xpbmljYWxseSBkZXByZXNzZWQsIHRhbmtlZCB1cCBvbiBhbnRpLSBkZXByZXNzYW50cyBhbmQKc2NoZWR1bGVkIGZvciBjb250cm92ZXJzaWFsIFNob2NrIFRoZXJhcHkgd2hlbiBkb2N0b3JzIHJlYWxpc2VkIGhlIHdhc24ndApkZXByZXNzZWQgYXQgYWxsIC0gb25seSBCcml0aXNoLiAKCk1yIEZhcnRoaW5nLCB3aG9zZSBjaGFyYWN0ZXJpc3RpYyBwZXNzaW1pc20gYW5kIGdsb29teSBwZXJzcGVjdGl2ZSB3ZXJlCmludGVycHJldGVkIGFzIHNlcmlvdXMgY2xpbmljYWwgZGVwcmVzc2lvbiwgd2FzIGxlZCBvbiBhIG5pZ2h0bWFyZSBqb3VybmV5CnRocm91Z2ggdGhlIEFtZXJpY2FuIHBzeWNoaWF0cmljIHN5c3RlbS4gRG9jdG9ycyBkZXNjcmliZWQgRmFydGhpbmcgYXMKc3VmZmVyaW5nIHdpdGggUGVydmFzaXZlIE5lZ2F0aXZlIEFudGljaXBhdGlvbiAtIGEgYmVsaWVmIHRoYXQgZXZlcnl0aGluZyB3aWxsCnR1cm4gb3V0IGZvciB0aGUgd29yc3QsIHdoZXRoZXIgaXQncyB0cmFpbnMgYXJyaXZpbmcgbGF0ZSwgRW5nbGFuZCdzIGNoYW5jZXMKYXQgd2lubmluZyBhbnkgaW50ZXJuYXRpb25hbCBzcG9ydHMgZXZlbnQgb3IgZXZlbiBoaXMgb3duIHByb3NwZWN0cyB0byBnZXQKYWhlYWQgaW4gbGlmZSBhbmQgYWNoaWV2ZSBoaXMgZHJlYW1zLiAKCiJUaGUgc2F0aXNmYWN0aW9uIE1yIEZhcnRoaW5nIHNlZW1lZCB0byBnZXQgZnJvbSBoaXMgcGVzc2ltaXNtIHNlZW1lZApwYXJ0aWN1bGFybHkgcGF0aG9sb2dpY2FsLCIgcmVwb3J0ZWQgdGhlIGRvY3RvcnMuIAoKIlRoZXkgcHV0IG1lIG9uIGV2ZXJ5dGhpbmcgLSBMaXRoaXVtLCBQcm96YWMsIFN0IEpvaG4ncyBXb3J0LCIgc2FpZCBNcgpGYXJ0aGluZy4gIlRoZXkgZXZlbiB0b2xkIG1lIHRvIHNpdCBpbiBmcm9udCBvZiBhIGJpZyBsaWdodCBmb3IgYW4gaG91ciBhIGRheQpvciBJJ2QgYmVjb21lIHN1aWNpZGFsLiBJIGtlcHQgdGVsbGluZyB0aGVtIHRoaXMgd2FzIGFsbCBwb2ludGxlc3MgYW5kIHRoZXkKc2FpZCB0aGF0IGl0IHdhcyBleGFjdGx5IHRoYXQgc29ydCBvZiBhdHRpdHVkZSB0aGF0IGdvdCBtZSBoZXJlIGluIHRoZSBmaXJzdApwbGFjZS4iIAoKUnVubmluZyBvdXQgb2YgaWRlYXMsIGhpcyBkb2N0b3JzIGZpbmFsbHkgcmVzb3J0ZWQgdG8gYSBjb3Vyc2Ugb2YgIndlYXBvbnMKZ3JhZGUgYW1waGV0YW1pbmUiLCB0aGUgb25seSBub3RpY2VhYmxlIGVmZmVjdCBvZiB3aGljaCB3YXMgc2l4IGhvdXJzIG9mCnNwZWVkeSByZXBldGl0aW9ucyBvZiB0aGUgcGhyYXNlcyAibXVzdG4ndCBncnVtYmxlIiBhbmQgIm5vdCB0b28gYmFkLCByZWFsbHkiLgoKSXQgd2FzIHRoZW4gdGhhdCBNciBGYXJ0aGluZyB3YXMgcmVmZXJyZWQgdG8gYSBwc3ljaG90aGVyYXBpc3QuIAoKRHIgSXNhYWMgSG9ybmV5IGV4cGxvcmVkIE1yIEZhcnRoaW5nJ3MgZmFtaWx5IGhpc3RvcnkgYW5kIGNvdWxkbid0IGJlbGlldmUgaGlzCmVhcnMuIAoKIkhpcyBzdG9yeSBvZiBhIGNoaWxkaG9vZCBncm93aW5nIHVwIGluIGEgZ3JleSBsaXR0bGUgdG93biB3aGVyZSBpdCByYWluZWQKZXZlcnkgZGF5LCB0cmVlbGVzcyBzdHJlZXRzIG9mIGlkZW50aWNhbCBob3VzZXMgYW5kIHBhc3Npb25hdGVseSBiYWNraW5nIGEKZm9vdGJhbGwgdGVhbSB3aG8gbmV2ZXIgd29uLCBzZWVtZWQgdG8gYmUgdHlwaWNhbCBkZXByZXNzaXZlIGlkZWF0aW9uIG9yIGZhbHNlCm1lbW9yeS4gTXIgRmFydGhpbmcgaGFkIHNpeCBtb250aHMgb2YgdGhlcmFweSBidXQgc2VlbWVkIHRvIG1haW5seSB3YW50IHRvCnRhbGsgYWJvdXQgdGhlIHdlYXRoZXIgLSBob3cgbWlzZXJhYmxlIGFuZCBjb2xkIGl0IHdhcyBpbiB3aW50ZXIgYW5kIGxhdGVyIGhvdwpkaWZmaWN1bHQgYW5kIGhvdCBpdCB3YXMgaW4gc3VtbWVyLiBJIGZlbHQgaGUgd2Fzbid0IHJlc3BvbmRpbmcgdG8gdGhlcmFweSBhdAphbGwgYW5kIHNvIEkgcmVjb21tZW5kZWQgZHJhc3RpYyBhY3Rpb24gLSBuYW1lbHkgRUNUIG9yIHNob2NrIHRyZWF0bWVudCIuIAoKIkkgd2FzIGFsbCBzdHJhcHBlZCBkb3duIG9uIHRoZSB0YWJsZSBhbmQgdGhleSB3ZXJlIGFib3V0IHRvIHB1dCB0aGUgcnViYmVyCmJpdCBpbiBteSBtb3V0aCB3aGVuIHRoZSBwc3ljaGlhdHJpYyBudXJzZSBwaWNrZWQgdXAgb24gbXkgYWNjZW50LCIgc2FpZCBNcgpGYXJ0aGluZy4gIkkgcmVtZW1iZXIgaGVyIHNheWluZyAnT2ggbXkgR29kLCBJIHRoaW5rIHdlJ3JlIG1ha2luZyBhIHRlcnJpYmxlCm1pc3Rha2UnLiIgTnVyc2UgQWxpY2UgU2hlZW4gd2FzIGEgYmlnIGZhbiBvZiBCcml0aXNoIGNvbWVkeSwgZ2l2aW5nIGhlciBhbgp1bmRlcnN0YW5kaW5nIG9mIHRoZSBCcml0aXNoIHBzeWNoZS4gCgoiQ2xhc3NpYyBjb21lZHkgY2hhcmFjdGVycyBsaWtlIFRvbnkgSGFuY29jaywgQWxiZXJ0IFN0ZXB0b2UgYW5kIEZyYW5rIFNwZW5jZXIKYXJlIGFsbCBob3BlbGVzcyBjYXNlcyB3aXRoIG5vIGNoYW5jZSBvZiBldmVyIGRvaW5nIHdlbGwgb3IgZXNjYXBpbmcgdGhlaXIKY2lyY3Vtc3RhbmNlcywiIHNoZSBleHBsYWluZWQgdG8gdGhlIGJhZmZsZWQgVVMgbWVkaWNzLiAiVGhhdCdzIGZ1bm55IGluCkJyaXRhaW4gYW5kIGlzIG5vdCBzZWVuIGFzIHBhdGhvbG9naWNhbCBhdCBhbGwuIiAKCklkZW50aWZ5aW5nIE1yIEZhcnRoaW5nIGFzIEJyaXRpc2ggY2hhbmdlZCBoaXMgZGlhZ25vc2lzIGZyb20gJ2NsaW5pY2FsCmRlcHJlc3Npb24nIHRvICdyYXRoZXIgcXVhaW50IGFuZCBjaGFybWluZycgYW5kIGhlIHdhcyBpbW1lZGlhdGVseSBkaXNjaGFyZ2VkCmZyb20gaG9zcGl0YWwsIHdpdGggYSBzZWxlY3Rpb24gb2YgYnJpZ2h0bHkgY29sb3VyZWQgbGVhZmxldHMgYW5kIGFuICJJIGxvdmUKTmV3IFlvcmsiIFQtc2hpcnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaHkgZGlkIERvdWdsYXMgSG9mdHN0YWR0ZXIgY3Jvc3MgdGhlIHJvYWQ/IChSdW1hdGEsIDI3LiBNYXIgMjAwNywgMDk6NTA6NDEpOgoKCgoKCgoKCkluIG9yZGVyIHRvIG1ha2UgdGhpcyBqb2tlIHBvc3NpYmxlLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaHkgZGlkIERvdWdsYXMgSG9mdHN0YWR0ZXIgY3Jvc3MgdGhlIHJvYWQ/IChNYXN1bCwgMjcuIE1hciAyMDA3LCAyMzowNToyMSk6Cn4jISBybj1SdW1hdGEgcnQ9MTE3NDk4MTg0MSByZz13aXR6ZQp+IyEgdGlkPTExNzQ5ODE4NDEKLi4uIHVuZCB3byBpc3QgZGEgZGVyIFdpdHo/CgpNYXN1bAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWFlZWVlaGhoaCAoWmVzc3RyYSwgMTEuIEFwciAyMDA3LCAxMToxMToxOSk6CkF1Y2ggc2Nob24gYWVsdGVyLCBhYmVyIGljaCBmaW5kIGlobiBuZXR0LiA7LSkKCkVpbiBqdW5nLWR5bmFtaXNjaGVyIFR5cCBicmF1c3QgbWl0IHNlaW5lbSBTcG9ydHdhZ2VuIHVlYmVycyBMYW5kLiBQbG9ldHpsaWNoCmhhZWx0IGVyIGFuIGVpbmVyIFNjaGFmaGVyZGUgdW5kIHNwcmljaHQgZGVuIEhpcnRlbiBhbjoKCiJXZW5uIGljaCBJaG5lbiBnYW56IGdlbmF1IHNhZ2UsIHdpZXZpZWxlIFNjaGFmZSBTaWUgaGFiZW4sIHNjaGVua2VuIFNpZSBtaXIKZGFubiBlaW5lcyBkaWVzZXIga251ZGRlbGlnZW4gRGluZ2VyPyIKCkRlciBIaXJ0ZSBlcndpZGVydCBrdXJ6IGFuZ2VidW5kZW46ICJBYmdlbWFjaHQuIgoKRGFyYXVmaGluIGhvbHQgZGVyIGp1bmdlIFNwb3J0d2FnZW5mYWhyZXIgZWluIE5vdGVib29rIGF1cyBzZWluZW0gQXV0bywgd2FlaGx0CnNpY2ggdWViZXJzIEhhbmR5IGlucyBJbnRlcm5ldCBlaW4sIGxhZWR0IGV0bGljaGUgUm9oZGF0ZW4gaW4gc2VpbgpUYWJlbGxlbmthbGt1bGF0aW9uc3Byb2dyYW1tIHVuZCB2ZXJrdWVuZGV0IG5hY2ggZmFzdCBlaW5lciBTdHVuZGU6CgoiU2llIGhhYmVuIGdlbmF1IDg3NCBTY2hhZmUhIgoKRGVyIEhpcnRlIHdpZWRlciBrdXJ6IGFuZ2VidW5kZW46ICJTdGltbXQuIgoKU3RyYWhsZW5kIG5pbW10IHNpY2ggZGVyIFRhYmVsbGVua2Fsa3VsYXRpb25zc3BlemlhbGlzdCBlaW4gVGllciB1bmQgd2lsbApnZXJhZGUgenUgc2VpbmVtIEF1dG8genVydWVjaywgYWxzIGRlciBIaXJ0ZSBpaG4gZnJhZ3Q6CgoiV2VubiBpY2ggaWhyZW4gQmVydWYgZXJyYXRlLCBnZWJlbiBTaWUgbWlyIGRhbm4gZGFzIFRpZXIgenVydWVjaz8iCgoiT2shIgoKIlNpZSBzaW5kIFVudGVybmVobWVuc2JlcmF0ZXIiIHNhZ3QgZGVyIEhpcnRlIHByb21wdC4KCkRlciBqdW5nZSBNYW5uIGlzdCBlcnN0YXVudDogIkphLCBhbHNvLCBkYXMgc3RpbW10Li4uIEFiZXIgd2llIGhhYmVuIFNpZSBkYXMKc28gc2NobmVsbCBlcnJhdGVuPyIKCiJHYW56IGVpbmZhY2giLCBzYWd0IGRlciBIaXJ0ZS4gIlNpZSBrYW1lbiwgb2huZSBkYXNzIFNpZSBqZW1hbmQgZ2VmcmFndCBoYXQuClNpZSBoYWJlbiBlaW4gUHJvYmxlbSBnZWxvZXN0LCBkZXNzZW4gTG9lc3VuZyBpY2ggYmVyZWl0cyBrYW5udGUgdW5kIFNpZSBoYWJlbgprZWluZSBBaG51bmcuIFVuZCBudW4gZ2ViZW4gU2llIG1pciBtZWluZW4gSHVuZCB6dXJ1ZWNrLiIKClplc3N0cmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNYWVlZWVoaGhoIChSdW1hdGEsIDExLiBBcHIgMjAwNywgMTE6NDY6MDIpOgp+IyEgcm49WmVzc3RyYSBydD0xMTc2MjgyNjc5IHJnPXdpdHplCn4jISB0aWQ9MTE3NjI4MjY3OQpEYSBtdXNzIHp3YW5nc2xhZXVmaWcgZGllc2VyIGhpZXIgZm9sZ2VuIDopCih1bmQgaW0gZHJpdHRlbiBhdWx1ZiBzdGltbWVuIGRpZSB1bWxhdXRlIDopCgpFaW4gU296aW9sb2dlLCBlaW4gUGh5c2lrZXIgdW5kIGVpbiBNYXRoZW1hdGlrZXIgZmFocmVuIG1pdCBkZW0KWnVnIGluIGVpbiBmcmVtZGVzIExhbmQuIFNpZSBzZWhlbiBuZXVnaWVyaWcgYXVzIGRlbSBGZW5zdGVyLgoKIlNjaGF1dCBtYWwiLCBzYWd0IGRlciBTb3ppb2xvZ2UgcGxvZXR6bGljaC4gIkRvcnQgYXVmIGRlciBXZWlkZQpzaW5kIHp3ZWkgc2Nod2FyemUgU2NoYWZlLiBJbiBkaWVzZW0gTGFuZCBzaW5kIGRpZSBTY2hhZmUgd29obApzY2h3YXJ6Ii4KCiJOZWluIiwgZW50Z2VnbmV0IGRlciBQaHlzaWtlci4gIkRhcyBrYW5uIG1hbiBzbyBwYXVzY2hhbCBuaWNodApzYWdlbi4gTWFuIGthbm4gbnVyIHNhZ2VuLCBkYXNzIGVzIGluIGRpZXNlbSBMYW5kIG1pbmRlc3RlbnMKendlaSBzY2h3YXJ6ZSBTY2hhZmUgZ2lidCIuCgpEZXIgTWF0aGVtYXRpa2VyIHNjaHVldHRlbHQgZGVuIEtvcGYuICJOaWNodCBnYW56LiBJbiBkaWVzZW0KTGFuZCBnaWJ0IGVzIHp3ZWkgU2NoYWZlLCBkaWUgYXVmIGVpbmVyIG1pbmRlc3RlbnMgU2VpdGUgc2Nod2FyegpzaW5kLiIKCk1hbiBiZXNjaGxpZXNzdCBhdXMgTmV1Z2llciwgYW0gbmFlY2hzdGVuIEJhaG5ob2YgYXVzenVzdGVpZ2VuIHVuZApzaWNoIGRpZSBTYWNoZSBuYWVoZXIgYW56dXNjaGF1ZW4uICJNYWwgc2VoZW4sIG9iIGRpZSBhbmRlcmUgU2VpdGUgCmF1Y2ggc2Nod2FyeiBpc3QuIiBBYmVyIHRhdHNhZWNobGljaCwgZWlucyBkZXIgVGllcmUgaXN0IGF1ZiBkZXIKYW5kZXJlbiBTZWl0ZSBicmF1biB1bmQgZGFzIGFuZGVyZSB3ZWlzcy4KCldhZWhyZW5kIGRlciBTb3ppb2xvZ2UgdW5kIGRlciBQaHlzaWNoZXIgZGVtIE1hdGhlbWF0aWtlciBmdWVyCnNlaW5lbiBTY2hhcmZzaW5uIGdyYXR1bGllcmVuLCBrb21tdCBkZXIgSGlydGUgYW4uCgoiSGVlaCwgd2FzIG1hY2h0IGlociBkYSBtaXQgbWVpbmVuIFppZWdlbj8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYW4gKEFudGhlYSwgMTcuIEFwciAyMDA3LCAwODo0ODo1OSk6CkVpbnNjaHVsdW5nIDEuIEtsYXNzZS4gRGllIExlaHJlcmluIHdpbGwgc2ljaCBnbGVpY2ggYmVsaWVidCBtYWNoZW4sIHNhZ3QsCmRhc3Mgc2llIFNjaGFsa2UtRmFuIGlzdCB1bmQgZnJhZ3QgZGllIEtsYXNzZSwgd2VyIHNvbnN0IG5vY2ggU2NoYWxrZS1GYW4gaXN0LgpBbGxlIEhhZW5kZSBnZWhlbiBuYWNoIG9iZW4sIG51ciBlaW4ga2xlaW5lcyBNYWVkY2hlbiBtZWxkZXQgc2ljaCBuaWNodC4gCgpEaWUgTGVocmVyaW4gZnJhZ3Q6ICJXYXJ1bSBtZWxkZXN0IGR1IGRpY2ggZGVubiBuaWNodD8iIAoiTmEsIHdlaWwgaWNoIGtlaW4gU2NoYWxrZS1GYW4gYmluISIgCiJadSB3ZWxjaGVtIFZlcmVpbiBoYWVsdHN0IGR1IGRlbm4gZGFubj8iIAoiSWNoIGJpbiBGQyBCYXllcm4tRmFuIHVuZCBzdG9seiBkYXJhdWYhIiAKIkphLCB3YXJ1bSBkZW5uIGF1c2dlcmVjaG5ldCBCYXllcm4/IiAKIldlaWwgbWVpbiBWYXRlciBhdXMgTXVlbmNoZW4ga29tbXQsIGJlaSBkZXIgQWxsaWFueiBhcmJlaXRldCB1bmQgYWxzCkp1Z2VuZGxpY2hlciBiZWkgZGVuIEFtYXRldXJlbiBkZXIgQmF5ZXJuIGdlc3BpZWx0IGhhdCwgbWVpbmUgTXV0dGVyIGF1cwpNdWVuY2hlbiBrb21tdCB1bmQgV2llc24tQmVkaWVudW5nIGJlaSBQYXVsYW5lciBpc3QuIEJlaWRlIHNpbmQgQmF5ZXJuLUZhbnMsCmFsc28gYmluIGljaCBlcyBhdWNoISIgCgoiQWJlciBLaW5kLCBkdSBtdXNzdCBkb2NoIGRlaW5lbiBFbHRlcm4gbmljaHQgYWxsZXMgbmFjaG1hY2hlbiEgU3RlbGwgZGlyIGRvY2gKbnVyIG1hbCB2b3IsIGRlaW5lIE11dHRlciB3YWVyZSBlaW5lIFByb3N0aXR1aWVydGUgdW5kIGRlaW4gVmF0ZXIgZWluCmFsa29ob2xhYmhhZW5naWdlciBBcmJlaXRzbG9zZXIsIHdhcyB3YWVyZSBkZW5uIGRhbm4/IiAKCiJKYSBndXQsIGRhbm4gd2FlcmUgaWNoIHdvaGwgYXVjaCBTY2hhbGtlLUZhbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQcmlvcml0YWV0ZW4gKEFudGhlYSwgMjAuIEFwciAyMDA3LCAxMDo0NDo1MCk6CiJaaWVoIGRlaW5lIEphY2tlIGFuLCBTY2hhdHosIGljaCBnZWggaW4gZGllIEtuZWlwZS4iIC0gIk9oPyBEdSBsYWVkc3QgbWljaAphdWYgZWluZW4gRHJpbmsgZWluPyIgLSAiU2VpIG5pY2h0IGFsYmVybi4gSWNoIGRyZWggc29sYW5nZSBkaWUgSGVpenVuZyBhYi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE1hZWVlZWhoaGggKFJ1bWF0YSwgMjMuIEFwciAyMDA3LCAwOTo0ODowOCk6Cn4jISBybj1SdW1hdGEgcnQ9MTE3NjI4NDc2MiByZz13aXR6ZQp+IyEgdGlkPTExNzYyODI2NzkKS29tbXQgZWluIERyZWllY2sgenVtIEFyenQuClNhZ3QgZGVyIEFyenQ6IE9oIG9oLCBJaHIgcmVjaHRlciBXaW5rZWwgZ2VmYWVsbHQgbWlyIGdhcm5pY2h0LApkYSB3ZXJkZSBpY2ggd29obCBlaW5lIEthdGhldGUgbGVnZW4gbXVlc3Nlbi4gQWNoIHdhcywgYmVzc2VyIGdsZWljaCB6d2VpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTWFlZWVlaGhoaCAoSHVtbmksIDIzLiBBcHIgMjAwNywgMTg6MTQ6NTcpOgp+IyEgcm49UnVtYXRhIHJ0PTExNzczMTQ0ODggcmc9d2l0emUKfiMhIHRpZD0xMTc2MjgyNjc5CkRlbiBlcnphZWhsIGljaCBtb3JnZW4gbWVpbmVuIFNjaHVlbGVybiwgaWNoIHdldHRlLCBkaWUgdmVyc3RlaGVuIGRlbiBuaWNodC4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBNYWVlZWVoaGhoIChBbGtvaG9sLCAyMy4gQXByIDIwMDcsIDE4OjM3OjMwKToKfiMhIHJuPUh1bW5pIHJ0PTExNzczNDQ4OTcgcmc9d2l0emUKfiMhIHRpZD0xMTc2MjgyNjc5CmFiZXIgbWFlZWVlZWVlZWVlaGggaXN0IGRhIGdlbmF1IGRpZSByaWNodGlnZSB1ZWJlcnNjaHJpZnQgZ2V3ZXNlbiAKQWxraQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGEgd2FydGUgaWNoIGRyYXVmIChBbnRoZWEsIDMwLiBBcHIgMjAwNywgMTY6MTM6MzgpOgpkYXNzIG1hbCBlaW5lciBiZWkgbWVpbmVuIGJlc2NoZXVlcnRlbiBXaXR6ZW4gc29vb29vIGxhY2h0LgpodHRwOi8vd3d3LmhvZGVubXVtcHMubmV0L2luZGV4LnBocC8yMDA3LzAxLzA0L2RpZV9iZXNjaGV1ZXJ0c3RlX2xhY2hlX2Rlcl93ZWwKdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhIHdhcnRlIGljaCBkcmF1ZiAoQW50aGVhLCAzMC4gQXByIDIwMDcsIDE2OjE4OjIxKToKfiMhIHJuPUFudGhlYSBydD0xMTc3OTQyNDE4IHJnPXdpdHplCn4jISB0aWQ9MTE3Nzk0MjQxOApOb2NobWFsIGRlciBMaW5rIHZvbiBlYmVuIHZlcmtsZWluZXJ0OgpodHRwOi8vdGlueXVybC5jb20vMm5ybWhkClVuZCBzbyBsYWNodCBqZW1hbmQsIGRlciBkaWVzZXMgZWJlbiBnZWxpbmt0ZSBWaWRlbyBhbnNjaGF1dDoKaHR0cDovL3d3dy5ob3Jub3hlLmRlL25ld3MucGhwP2V4dGVuZC4xMTE3LjMKaHR0cDovL3Rpbnl1cmwuY29tL3l3ZTZhZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUm91dGVucGxhbnVuZyAoQW50aGVhLCAzMC4gQXByIDIwMDcsIDE2OjI0OjE5KToKTWFuIG5laG1lOgpHb29nbGUgbWFwcy4KaHR0cDovL21hcHMuZ29vZ2xlLmRlL21hcHMKTWFuIGtsaWNrZSBhdWYgIlJvdXRlbnBsYW5lciIKTWFuIGdlYmUgYWxzIFN0YXJ0YWRyZXNzZSBNdWVuY2hlbiBlaW4sIGFscyBaaWVsYWRyZXNzZSBNaWFtaSB1bmQga2xpY2tlIGF1ZgoiUm91dGUgYmVyZWNobmVuIi4KTWFuIGxlc2Ugc2ljaCBQdW5rdCAzOCBkdXJjaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCBwcm9iaWVydC4uLiAoQW50aGVhLCAzMC4gQXByIDIwMDcsIDE2OjMyOjU2KToKRWluIEZyZXVuZCB2b24gbWlyIHdhciBsZXR6dGVuIEhlcmJzdCBhdWYgR2VzY2hhZWZ0c3JlaXNlIGluIExvbmRvbi4gRWluZXMKQWJlbmRzIGdlaHQgZXIgaW4gZGVuIG5hZWNoc3RiZXN0ZW4gUHViLiBEb3J0IGZhZWxsdCBpaG0gZWluIHZvcm5laG0KZ2VrbGVpZGV0ZXIgRW5nbGFlbmRlciBhdWYuIE1laW4gRnJldW5kIHZlcnN1Y2h0LCBpaG4gaW4gZWluIEdlc3ByYWVjaCB6dQp2ZXJ3aWNrZWxuLiBFcnN0ZXIgVmVyc3VjaDogIkRhcmYgaWNoIHNpZSB2aWVsbGVpY2h0IHp1IGVpbmVtIERyaW5rIGVpbmxhZGVuPyIKLSAiTmVpbiIsIHNhZ3QgZGVyIEJyaXRlIHRyb2NrZW4sICJ0cmlua2UgbmljaHQuIEhhYidzIG1hbCBwcm9iaWVydCwgd2FyCm5pY2h0cyBmdWVyIG1pY2guIiBNZWluIEZyZXVuZCBsYWVzc3Qgc2ljaCBuaWNodCBlbnRtdXRpZ2VuLiBFciBiZXN0ZWxsdApzZWluZW4gRHJpbmsgdW5kIHN0YXJ0ZXQgZWluZW4gendlaXRlbiBWZXJzdWNoOiAiRGFyZiBpY2ggSWhuZW4gZWluIFppZ2FyaWxsbwphbmJpZXRlbj8iIERhcmF1ZiBkZXIgQnJpdGU6ICJOZWluLiBSYXVjaGUgbmljaHQuIEhhYidzIG1hbCBwcm9iaWVydCwgd2FyCm5pY2h0cyBmdWVyIG1pY2guIiBNZWluIEZyZXVuZCBzdGVja3Qgc2VpbmUgRGF2aWRvZmYgYW4gdW5kIHVudGVybmltbXQgZGVuCmRyaXR0ZW4gVmVyc3VjaDogIkhhZXR0ZW4gU2llIGRlbm4gTHVzdCBhdWYgZWluZSBSdW5kZSBLYXJ0ZW4/IiBEYXJhdWYgZGVyCkJyaXRlOiAiTmVpbiwgU3BpZWxlIG5pY2h0LiBIYWIncyBtYWwgcHJvYmllcnQsIHdhciBuaWNodHMgZnVlciBtaWNoLiIgRG9jaApkYW5uIGZ1ZWd0IGVyIGhpbnp1OiAiQWJlciBtZWluIFNvaG4ga29tbXQgZ2xlaWNoLiBWaWVsbGVpY2h0IHNwaWVsdCBkZXIgamEKbWl0LiIgTWVpbiBGcmV1bmQgbGVobnQgc2ljaCB6dXJ1ZWNrLCBzaWVodCBkZW4gRW5nbGFlbmRlciBsYW5nZSBhbiB1bmQgc2FndApkYW5uOiAiTGFzc2VuIFNpZSBtaWNoIHJhdGVuLCBTaXI6IElociBlaW56aWdlciBTb2huLi4/ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlaXN0ZXIgKEhpZ2hsYW5kZXIsICAzLiBNYWkgMjAwNywgMTE6MTk6NDcpOgpXaWUgYmVncnVlc3NlbiBzaWNoIHp3ZWkgR2Vpc3RlciBuYWNoIGRlbSBBdWZzdGVoZW4/CgoKR29vZCBtb2FuaW5nLgoKSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpJbW1pZ3JhdGlvbiBQcm9ibGVtcyAoQW50aGVhLCAgNC4gTWFpIDIwMDcsIDE1OjI4OjE5KToKV2Fsa2luZyB0aHJvdWdoIFNhbiBGcmFuY2lzY28ncyBDaGluYXRvd24sIGEgdG91cmlzdCBmcm9tIHRoZSBNaWR3ZXN0IHdhcwplbmpveWluZyB0aGUgYXJ0aXN0cnkgb2YgYWxsIHRoZSBDaGluZXNlIHJlc3RhdXJhbnRzLCBzaG9wcywgc2lnbnMgYW5kIGJhbm5lcnMKd2hlbiBoZSB0dXJuZWQgYSBjb3JuZXIgYW5kIHNhdyBhIGJ1aWxkaW5nIHdpdGggdGhlIHNpZ24gIk1vaXNoZSBQbG90bmlrJ3MKTGF1bmRyeS4iICJNb2lzaGUgUGxvdG5paz8iIGhlIHdvbmRlcmVkLiAiSG93IGRvZXMgdGhhdCBiZWxvbmcgaW4gQ2hpbmF0b3duPyIgCgpIZSB3YWxrZWQgaW50byB0aGUgc2hvcCBhbmQgc2F3IGEgZmFpcmx5IHN0YW5kYXJkIGxvb2tpbmcgZHJ5Y2xlYW5lciwgYWx0aG91Z2gKaGUgY291bGQgc2VlIHRoYXQgdGhlIHByb3ByaWV0b3JzIHdlcmUgY2xlYXJseSBhd2FyZSBvZiB0aGUgdW5pcXVlbmVzcyBvZiB0aGUKc3RvcmUgbmFtZSBhcyB0aGVyZSB3ZXJlIGJhc2ViYWxsIGhhdHMsIFQtc2hpcnRzIGFuZCBjb2ZmZWUgbXVncyBlbWJsYXpvbmVkCndpdGggdGhlIGxvZ28gIk1vaXNoZSBQbG90bmlrJ3MgQ2hpbmVzZSBMYXVuZHJ5LiIgCgpUaGUgdG91cmlzdCBzZWxlY3RlZCBhIGNvZmZlZSBjdXAgYXMgYSBjb252ZXJzYXRpb24gcGllY2UgdG8gdGFrZSBiYWNrIHRvIGhpcwpvZmZpY2UuIEJlaGluZCB0aGUgY291bnRlciB3YXMgYSBzbWlsaW5nIG9sZCBDaGluZXNlIGdlbnRsZW1hbiB3aG8gdGhhbmtlZCBoaW0KZm9yIGhpcyBwdXJjaGFzZS4gVGhlIHRvdXJpc3QgYXNrZWQsICJDYW4geW91IGV4cGxhaW4gaG93IHRoaXMgcGxhY2UgZ290IGEKbmFtZSBsaWtlICdNb2lzaGUgUGxvdG5paydzIExhdW5kcnk/JyBUaGUgb2xkIG1hbiBhbnN3ZXJlZCwgIkFoLi4uRXZsZWVib2R5CmFzayBtZSB0aGF0LiBJdCBuYW1lIG9mIG93bmVyLiIKCkxvb2tpbmcgYXJvdW5kLCB0aGUgdG91cmlzdCBhc2tlZCwgIklzIGhlIGhlcmU/IiAiSXQgbWUsIiByZXBsaWVzIHRoZSBvbGQgbWFuLgoiUmVhbGx5PyBZb3UncmUgQ2hpbmVzZS4gSG93IGRpZCB5b3UgZXZlciBnZXQgYSBuYW1lIGxpa2UgTW9pc2hlIFBsb3RuaWs/IiAKCiJJcyBzaW1wbGUiLCBzYWlkIHRoZSBvbGQgbWFuLiBNYW55LCBtYW55IHllYXIgYWdvIEkgY29tZSB0byB0aGlzIGNvdW50cnkuIEkKc3RhbmRpbmcgaW4gbGluZSBhdCAnRG9jdW1lbnRhdGlvbiBDZW50ZXIgb2YgSW1taWdyYXRpb24uJyBNYW4gaW4gZnJvbnQgb2YgbWUKd2FzIEpld2lzaCBtYW4gZnJvbSBQb2xhbmQuIExhZHkgYXQgY291bnRlciBsb29rIGF0IGhpbSBhbmQgc2F5LCAiV2hhdCB5b3VyCm5hbWU/IiAKCkhlIHNheSwgIk1vaXNoZSBQbG90bmlrLiIgVGhlbiBzaGUgbG9vayBhdCBtZSBhbmQgc2F5LCAiV2hhdCB5b3VyIG5hbWU/IiBJCnNheSwgIlNhbSBUaW5nLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRoaXMgaXMgYSBzdHJpY3RseSBtYXRoZW1hdGljYWwgdmlld3BvaW50Li4uIChBbnRoZWEsICA0LiBNYWkgMjAwNywgMTU6NDg6NTIpOgoKV2hhdCBtYWtlcyAxMDAlPyBXaGF0IGRvZXMgaXQgbWVhbiB0byBnaXZlIG1vcmUgdGhhbiAxMDAlPyBFdmVyIHdvbmRlciBhYm91dAp0aG9zZSBwZW9wbGUgd2hvIHNheSB0aGV5IGFyZSBnaXZpbmcgbW9yZSB0aGFuIDEwMCU/IFdlIGhhdmUgYWxsIGJlZW4gdG8gdGhvc2UKbWVldGluZ3Mgd2hlcmUgc29tZW9uZSB3YW50cyB5b3UgdG8gZ2l2ZSBvdmVyIDEwMCUuIEhvdyBhYm91dCBhY2hpZXZpbmcgMTAzJT8KV2hhdCBtYWtlcyB1cCAxMDAlIGluIGxpZmU/CgpIZXJlJ3MgYSBsaXR0bGUgbWF0aGVtYXRpY2FsIGZvcm11bGEgdGhhdCBtaWdodCBoZWxwIHlvdSBhbnN3ZXIgdGhlc2UKcXVlc3Rpb25zOgoKSWY6CkEgQiBDIEQgRSBGIEcgSCBJIEogSyBMIE0gTiBPIFAgUSBSIFMgVCBVIFYgVyBYIFkgWgoKaXMgcmVwcmVzZW50ZWQgYXM6CjEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDEyIDEzIDE0IDE1IDE2IDE3IDE4IDE5IDIwIDIxIDIyIDIzIDI0IDI1IDI2Cgp0aGVuCkgtQS1SLUQtVy1PLVItSwo4KzErMTgrNCsyMysxNSsxOCsxMSA9IDk4JQoKYW5kCkstTi1PLVctTC1FLUQtRy1FIAoxMSsxNCsxNSsyMysxMis1KzQrNys1ID0gOTYlCgpidXQsCkEtVC1ULUktVC1VLUQtRQoxKzIwKzIwKzkrMjArMjErNCs1ID0gMTAwJQoKYW5kLApCLVUtTC1MLVMtSC1JLVQKMisyMSsxMisxMisxOSs4KzkrMjAgPSAxMDMlCgphbmQsIGxvb2sgaG93IGZhciBhcnNlIGtpc3Npbmcgd2lsbCB0YWtlIHlvdS4KQS1SLVMtRS1LLUktUy1TLUktTi1HCjErMTgrMTkrMTErNSsxOSsxOSs5KzE0KzcgPSAxMjIlCgpTbywgb25lIGNhbiBjb25jbHVkZSB3aXRoIG1hdGhlbWF0aWNhbCBjZXJ0YWludHkgdGhhdCB3aGlsZSBoYXJkIHdvcmsgYW5kCmtub3dsZWRnZSB3aWxsIGdldCB5b3UgY2xvc2UsIGFuZCBhdHRpdHVkZSB3aWxsIGdldCB5b3UgdGhlcmUsIGl0J3MgdGhlCmJ1bGxzaGl0IGFuZCBhcnNlIGtpc3NpbmcgdGhhdCB3aWxsIHB1dCB5b3Ugb3ZlciB0aGUgdG9wLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKcGxhbnQgKEFudGhlYSwgMjMuIE1haSAyMDA3LCAwOTo1NTozMyk6ClNhdmUgdGhlIGVudmlyb25tZW50LiBQbGFudCBhIEJ1c2ggYmFjayBpbiBUZXhhcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBvc3QgKEFudGhlYSwgMjQuIE1haSAyMDA3LCAwOTo1ODowMCk6CkVpbiBNYW5uIGdyYWVidCBnZXJhZGUgc2VpbmVuIFZvcmdhcnRlbiB1bSwgYWxzIHNlaW5lIE5hY2hiYXJpbiwgYXVmZmFsbGVuZApodWVic2NoLCBhYmVyIGF1Y2ggYXVmZmFsbGVuZCBibG9uZCwgenUgaWhyZW0gQnJpZWZrYXN0ZW4gZ2VyYW5udCBrb21tdCwKZGllc2VuIG9lZmZuZXQgdW5kIGFuc2NobGllc3NlbmQgbGF1dCB3aWVkZXIgenVrbmFsbHQuCkRlciBNYW5uIGRlbmt0IHNpY2ggbmljaHRzIGJvZXNlcyB1bmQgc2NodWZ0ZXQgd2VpdGVyLCBiaXMgU2VrdW5kZW4gc3BhZXRlcgpkaWUgQmxvbmRpbmUgZXJuZXV0IGVyc2NoZWludCwgd2llZGVyIGRlbiBCcmllZmthc3RlbiBvZWZmbmV0IHVuZCBpaG4gZWluCndlaXRlcmVzIG1hbCBsYXV0IHp1a25hbGx0LgpEZXIgTWFubiBpc3QgbGVpY2h0IGlycml0aWVydCwgYXJiZWl0ZXQgamVkb2NoIHdlaXRlci4gQWxzIGRhbm4gYWJlciBkaWUKQmxvbmRpbmUgZWluIGRyaXR0ZXMgTWFsIHp1ciBUdWVyIGhlcmF1c2tvbW10LCBkZW4gQnJpZWZrYXN0ZW4gb2VmZm5ldCB1bmQKbGF1dGVyIHVuZCB3dWV0ZW5kZXIgYWxzIGplIHp1dm9yIHp1a25hbGx0LCBrYW5uIGRlciBOYWNoYmFyIHNlaW5lIE5ldWdpZXJkZQpuaWNodCBtZWhyIHdlaXRlciB6dWVnZWxuIHVuZCBmcmFndDoKIkduYWVkaWdzdGUsIGhhYmVuIFNpZSBlaW4gUHJvYmxlbT8iCiJEYXMgd2lsbCBpY2ggbWVpbmVuIiwgcnVmdCBkaWUgQmxvbmRpbmUgdm9sbGVyIFd1dCwgIm1laW4gQ29tcHV0ZXIgYmVoYXVwdGV0CmZlbHNlbmZlc3QsIGljaCBoYWV0dGUgUG9zdCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZXNldHplIGRlciBMdWZ0ZmFocnQgKEFudGhlYSwgMjUuIE1haSAyMDA3LCAwOTo1MToyNyk6CgoKSmVkZXIgU3RhcnQgaXN0IEt1ZXIsIGplZGUgTGFuZHVuZyBvYmxpZ2F0b3Jpc2NoLgoKRmxpZWdlbiBpc3QgbmljaHQgZ2VmYWVocmxpY2gsIEFic3R1ZXJ6ZW4gZGFnZWdlbiBzY2hvbi4KCkVzIGlzdCBpbW1lciBiZXNzZXIgZHUgc3RlaHN0IHVudGVuIHVuZCB3YWVyZXN0IGdlcm5lIG9iZW4sIGFscyB1bWdla2VocnQuCgpEdSBoYXN0IG5pZSB6dXZpZWwgU3ByaXQsIGF1c3NlciB3ZW5uIGR1IGJyZW5uc3QuCgpGbGllZ2VuIGlzdCBzaW1wZWw6IFppZWhlbiAtIGtsZWluZSBIYWV1c2VyLCBEcnVlY2tlbiAtIGdyb3NzZSBIYWV1c2VyLgpTcGV6aWFsZmFsbDogTmFjaCBzdGFlbmRpZ2VtIFppZWhlbiB3ZXJkZW4gc2llIGF1Y2ggd2llZGVyIGdyb2Vzc2VyLgoKRGVyIFByb3BlbGxlciBpc3QgZWluZmFjaCBlaW4gZ3Jvc3NlciBWZW50aWxhdG9yIHZvcm5lIGFtIEZsdWd6ZXVnLCBkZXIgZGF6dQpkaWVudCwgZGVuIFBpbG90ZW4genUga3VlaGxlbi4gV2VubiBlciBzdGVoZW5ibGVpYnQga2FubiBtYW4gcmVnZWxyZWNodAp6dXNlaGVuLCB3aWUgZGVyIFBpbG90IGlucyBTY2h3aXR6ZW4gZ2VyYWV0LgoKRWluZSBndXRlIExhbmR1bmcgaXN0IGVpbmUsIGJlaSBkZXIgZHUgaGludGVyaGVyIHdlZ2dlaGVuIGthbm5zdC4gRWluZQpwaGFudGFzdGlzY2hlIExhbmR1bmcgaXN0IGVpbmUsIGJlaSBkZXIgZGFzIEZsdWd6ZXVnIG5vY2ggZWlubWFsIHZlcndlbmRldAp3ZXJkZW4ga2Fubi4KCkRpZSBkcmVpIG51dHpsb3Nlc3RlbiBEaW5nZSBmdWVyIGVpbmVuIFBpbG90ZW4gc2luZCBkaWUgSG9laGUgdWViZXIgaWhtLCBkaWUKUm9sbGJhaG4gaGludGVyIGlobSB1bmQgZWluZSB2ZXJzdHJpY2hlbmUgWmVobnRlbHNla3VuZGUuCgpMZXJuZSBhdXMgRmVobGVybiBhbmRlcmVyLCBkdSB3aXJzdCBuaWNodCBsYW5nZSBnZW51ZyBsZWJlbiwgdW0gYWxsZSBzZWxiZXIKbWFjaGVuIHp1IGtvZW5uZW4uCgpEdSB3ZWlzc3QsIGRhc3MgZHUgbWl0IGVpbmdlZmFocmVuZW0gRmFocndlcmsgZ2VsYW5kZXQgYmlzdCwgd2VubiBkdSB2b2xsZW4KU2NodWIgYnJhdWNoc3QsIHVtIHp1ciBSYW1wZSB6dSBrb21tZW4uCgpTb3JnZSBkYWZ1ZXIsIGRhc3MgZGllIEFuemFobCBkZWluZXIgU3RhcnRzIG1vZWdsaWNoc3QgYWVobmxpY2ggenVyIEFuemFobApkZWluZXIgTGFuZHVuZ2VuIGlzdC4KCkhlbGlrb3B0ZXIga29lbm5lbiBnYXIgbmljaHQgZmxpZWdlbi4gU2llIHNpbmQgbGVkaWdsaWNoIHNvIGhhZXNzbGljaCwgZGFzcwpkaWUgRXJkZSBzaWUgYWJzdG9lc3N0LgoKV2VubiBkdSBhdXMgZGVtIENvY2twaXQgbnVyIG5vY2ggQm9kZW4gc2llaHN0IHVuZCBkaWUgZWluemlnZW4gR2VyYWV1c2NoZSwgZGllCmR1IGhvZXJzdCwgbGF1dGUgU2NocmVpZSBhdXMgZGVyIFBhc3NhZ2llcmthYmluZSBzaW5kLCBkYW5uIGxhZXVmdAp3YWhyc2NoZWlubGljaCBuaWNodCBhbGxlcyB3aWUgZ2VwbGFudC4KCkltIGFuZGF1ZXJuZGVuIEthbXBmIHp3aXNjaGVuIG1pdCBtZWhyZXJlbiBodW5kZXJ0IGttL2ggZmxpZWdlbmRlbiBPYmpla3RlbgphdXMgU3RhaGwgdW5kIGRlciBydWhlbmRlbiBFcmRlLCBoYXQgZGllIEVyZGUgbm9jaCBuaWUgdmVybG9yZW4uCgpHcmF2aXRhdGlvbiBpc3QgbmljaHQgbnVyIGVpbmUgSWRlZSwgc29uZGVybiBlaW4gR2VzZXR6LiBWZXJzdWNoZSBuaWNodCwgc2llCndlZ3p1ZGlza3V0aWVyZW4uIAoKRGllIFVlYmVybGViZW5zd2FocnNjaGVpbmxpY2hrZWl0IGlzdCB1bWdla2VocnQgcHJvcG9ydGlvbmFsIHp1bSBMYW5kZXdpbmtlbC4KR3Jvc3NlciBMYW5kZXdpbmtlbCwga2xlaW5lIFVlYmVybGViZW5zd2FocnNjaGVpbmxpY2hrZWl0LCB1bmQgdW1nZWtlaHJ0LgoKRGllIEZhZWhpZ2tlaXQgenUgcmljaHRpZ2VuIEVudHNjaGVpZHVuZ2VuIGtvbW10IGR1cmNoIEVyZmFocnVuZy4KVW5nbHVlY2tsaWNoZXJ3ZWlzZSBlbnR3aWNrZWxuIHNpY2ggRXJmYWhydW5nZW4gZHVyY2ggZmFsc2NoZSBFbnRzY2hlaWR1bmdlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZXNldHplIGRlciBMdWZ0ZmFocnQgKEFtYXJ5bGxpcywgMjkuIE1haSAyMDA3LCAyMzozNjozNyk6Cn4jISBybj1BbnRoZWEgcnQ9MTE4MDA3OTQ4NyByZz13aXR6ZQp+IyEgdGlkPTExODAwNzk0ODcKSGksCgprbGVpbmVyIEtvbW1lbnRhcjoKIkZsaWVnZW4gaXN0IHNpbXBlbDogWmllaGVuIC0ga2xlaW5lIEhhZXVzZXIsIERydWVja2VuIC0gZ3Jvc3NlIEhhZXVzZXIuIgoKSWNoIGtlbm4gZGVuIGF1ZmdydW5kIG1laW5lciBMYXVmYmFobiBldHdhcyAiYmVzc2VyIjoKIlppZWhlbjogSGFldXNlciBrbGVpbmVyLiBOb2NoIG1laHIgemllaGVuOiBIYWV1c2VyIHdpZWRlciBncm9lc3NlciIgOykKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR2VzZXR6ZSBkZXIgTHVmdGZhaHJ0IChIdW1uaSwgMjkuIE1haSAyMDA3LCAyMzozNzo0MSk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9MTE4MDQ3NDU5NyByZz13aXR6ZQp+IyEgdGlkPTExODAwNzk0ODcKV2FzIGljaCBqYSB3aXR6aWcgZmluZGUsIGlzdCBkYXNzIHdvaGwgYWxsZSBGbHVnc2NodWVsZXIgc28gYXVzZ2ViaWxkZXQKd2VyZGVuLi4uCgpIdW1uaSBrZW5udCBkYXMgYWxzICJIYWV1c2VyIGdyb3NzIiAtICJIYWV1c2VyIGtsZWluIiAtIG1lbm5vLCBsYW5nZSBoZXIuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEdlc2V0emUgZGVyIEx1ZnRmYWhydCAoQW1hcnlsbGlzLCAyOS4gTWFpIDIwMDcsIDIzOjM4OjExKToKfiMhIHJuPUh1bW5pIHJ0PTExODA0NzQ2NjEgcmc9d2l0emUKfiMhIHRpZD0xMTgwMDc5NDg3Ck5vZSwgZGFzIGlzdCBlaW4gYWV1c3NlcnN0IHNjaGxlY2h0ZXIgU2NoZXJ6IHVudGVyIGF1c2dlYmlsZGV0ZW4gUGlsb3Rlbi4uLgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR2VzZXR6ZSBkZXIgTHVmdGZhaHJ0IChSdW1hdGEsIDMwLiBNYWkgMjAwNywgMDk6NDE6NTEpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTExODA0NzQ2OTEgcmc9d2l0emUKfiMhIHRpZD0xMTgwMDc5NDg3CkhhYiBtYWwgZWluIEJ1Y2ggbWl0IGRlbSBUaXRlbCAiZ2VmbHVlZ2VsdGUgV29ydGUiIGluIGRpZSBIYW5kIGdlbm9tbWVuLgoKV2FzIHdhciBkcmluPwoKU2NobGVjaHRlIFBpbG90ZW53aXR6ZSEKCldlaWEuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBHZXNldHplIGRlciBMdWZ0ZmFocnQgKFJvbmRhLCAzMC4gTWFpIDIwMDcsIDIzOjAxOjEzKToKfiMhIHJuPUh1bW5pIHJ0PTExODA0NzQ2NjEgcmc9d2l0emUKfiMhIHRpZD0xMTgwMDc5NDg3Ck5vZSwgSHVtbmksIG5pY2h0IGFsbGUgRmx1Z3NjaHVlbGVyLiBCZWkgbWFuY2hlbiBiZWRldXRldCAiemllaGVuIiBlaW5mYWNoIG51cgpsYW5nc2FtZXIuIEdhbnogZ2FueiBsYW5nc2FtIGJlZGV1dGV0IGRhbm4gYWxsZXJkaW5ncyBzY2huZWxsIHJ1bnRlci4gV29iZWkKQW1hcnlsbGlzIGRhcyBkYW5uIHZlcm11dGxpY2ggd2VuaWdlciAiTHVmdGZhaHJ0IiBuZW5uZW4gd3VlcmRlLCBlaGVyICJpbiBkZXIKTHVmdCBydW1zdGVoZW4iLgoKUm9uZGEgKmdlaHQgaW1tZXIgbWFsIGF1ZiBUdWNoZnVlaGx1bmcgbWl0IGRlciBGbGllZ2VyZWkqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBHZXNldHplIGRlciBMdWZ0ZmFocnQgKEh1bW5pLCAzMS4gTWFpIDIwMDcsIDAwOjMwOjE1KToKfiMhIHJuPVJvbmRhIHJ0PTExODA1NTg4NzMgcmc9d2l0emUKfiMhIHRpZD0xMTgwMDc5NDg3CkhtbS4gWmllaGVuICJudXIiIGxhbmdzYW1lcj8KCldpbGwgaWNoIHNlaGVuLgoKVW5kIGdsYXViZSBpY2ggbmljaHQuIDstKQoKSHVtbmkKUFM6IERydWVja2VuIC0gaG9jaGVuLCB6aWVoZW4gLSBydW50ZXIgZ2lidHMgYXVjaCwgYmVpIERyYWNoZW4genVtIEJlaXNwaWVsLgpFaW4gR2VmYWVocnQsIGRhcyBiZWltIHppZWhlbiAibnVyIiBsYW5nc2FtZXIgd2lyZCwgb2huZSBkYXNzIHNpY2ggd2FzIGFtClN0ZWlnZW4gYnp3LiBTaW5rZW4gdmVyYWVuZGVydCB3dWVyZGUgaWNoIGhhbHQgbnVyIGRvY2ggZ2VybmUgbWFsIHNlaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRHJlaW9ociAoQW50aGVhLCAzMS4gTWFpIDIwMDcsIDA4OjU0OjUyKToKUS46IFdoaWNoIGh1bWFuIHdhcyBib3JuIHdpdGggYSBzZXQgb2YgdGhyZWUgZWFycz8KQS46IEplYW4tTHVjIFBpY2FyZC4gTGVmdCBlYXIsIHJpZ2h0IGVhciBhbmQgZmluYWwgZnJvbnQtZWFyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogR2VzZXR6ZSBkZXIgTHVmdGZhaHJ0IChSb25kYSwgMzEuIE1haSAyMDA3LCAyMjowMDoyNik6Cn4jISBybj1IdW1uaSBydD0xMTgwNTY0MjE1IHJnPXdpdHplCn4jISB0aWQ9MTE4MDA3OTQ4NwpPaywgb2ssIGR1cmNoICJaaWVoZW4iIHZlcmFlbmRlcm4gc2ljaCBhdWNoIGJlaSBtaXIgU3RlaWdlbiB1bmQgU2lua2VuLiBBYmVyCmViZW4gaW0gTm9ybWFsZmFsbCBuaWNodCBzbywgZGFzcyBtYW4gZGFubiBwbG9ldHpsaWNoIHJ1bnRlciBvZGVyIHJhdWYgc2NoYXV0LAphdXNzZXIgbWFuIHVlYmVydHJlaWJ0cy4gTWl0IERyYWNoZW4gd2Fyc3QgRHUgc2Nob24gcmVjaHQgbmFoIGRyYW4gLSBhYmVyIGljaAptZWludGUgZWluZW4gR2xlaXRzY2hpcm0uLi4KClJvbmRhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBHZXNldHplIGRlciBMdWZ0ZmFocnQgKEh1bW5pLCAzMS4gTWFpIDIwMDcsIDIzOjAzOjIxKToKfiMhIHJuPVJvbmRhIHJ0PTExODA2NDE2MjYgcmc9d2l0emUKfiMhIHRpZD0xMTgwMDc5NDg3CkluIEZsdWd6ZXVnZW4gdmVyYWVuZGVyc3QgRHUgZHVyY2ggRHJ1ZWNrZW4gdW5kIFppZWhlbiB2b3IgYWxsZW0gZGFzCkhvcml6b250YmlsZCAod2llIHdlaXQgaXN0IGRpZSBIYXViZW51bnRlcnNlaXRlIHZvcm5lIHVudGVyL3VlYmVyIGRlbQpIb3Jpem9udCkuIEluIFNlZ2VsZmx1Z3pldWdlbiBsZXJudCBtYW4genVuYWVjaHN0LCBkaWUgR2VzY2h3aW5kaWdrZWl0IGFuaGFuZApkZXMgSG9yaXpvbnRiaWxkZXMgYWJ6dXNjaGFldHplbiAob2ssIHVuZCBhbmhhbmQgdm9tIEZhaHJ0Z2VyYWV1c2NoKSB1bmQgZGVuCkZhaHJ0ZW5tZXNzZXIgbnVyIHp1ciBLb250cm9sbGUgenUgdmVyd2VuZGVuLiBJbnNvZmVybiBpc3QgZGEgIkdyb3NzZSB1bmQKa2xlaW5lIEhhZXVzZXIiIHp1bWluZGVzdCBuaWNodCB2b2VsbGlnIGJsb2Vkc2lubmlnLiBXb2JlaSBuaWNodCBkYXMgSGF1cyAiYXVmCmVpbmVuIFNjaGxhZyIgcmllc2lnIHdpcmQsIGtsYXIuIERpZSBFbnRmZXJudW5nIGFlbmRlcnQgc2ljaCBqYSBuaWNodCBkaXJla3QuCgpIdW1uaQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogR2VzZXR6ZSBkZXIgTHVmdGZhaHJ0IChPcmt0b2V0ZXIsIDMxLiBNYWkgMjAwNywgMjM6MDc6MTEpOgp+IyEgcm49SHVtbmkgcnQ9MTE4MDY0NTQwMSByZz13aXR6ZQp+IyEgdGlkPTExODAwNzk0ODcKSWNoIHd1ZXJkZSBtYWwgc28gc2FnZW46IFdlbm4gZHUgZ2VyYWRlIG5hY2ggdm9ybmUgaGVyYXVzIHNjaGF1c3QgdW5kIGR1CnNpZWhzdCBudXIgQm9kZW4gb2RlciBudXIgSGltbWVsLCBzb2xsdGVzdCBkdSB2ZXJtZWlkZW4gZWluZmFjaCBudXIgZ2VyYWRlYXVzCndlaXRlciB6dSBmbGllZ2VuLgoKT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBmZXJkZSAoQW50aGVhLCAgMS4gSnVuIDIwMDcsIDA5OjA0OjM5KToKRm9sZ2VuZGVzIG11c3MgbWFuIHNpY2ggdm9yc3RlbGxlbiwgd2llIGVzIHZvbiBlaW5lbSBCZXJsaW5lciBlcnphZWhsdCB3aXJkLApkYW5uIHBhc3N0IGRhcyBhbGxlcyA7KSA6CgpLb21tdCBlaW4gUGZlcmQgaW4nIEJsdW1lbmxhZGVuOiAiSGFtIHNlIE1hJ2dlcml0dGVuPyIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQZmVyZGUgKE9ya3RvZXRlciwgIDEuIEp1biAyMDA3LCAxODo0Mzo0Myk6Cn4jISBybj1BbnRoZWEgcnQ9MTE4MDY4MTQ3OSByZz13aXR6ZQp+IyEgdGlkPTExODA2ODE0NzkKU2VpbiBzaWUgdmllbGxlaWNodCBXZWNoc2VsZ2VsZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmRhcyBsZWJlbiBhbmRlcnNydW0uLi4gKEdub21lLCAyMS4gSnVuIDIwMDcsIDE0OjA1OjI5KToKRGFzIExlYmVuIHNvbGx0ZSBtaXQgZGVtIFRvZCBiZWdpbm5lbiB1bmQgbmljaHQgYW5kZXJzaGVydW0uClp1ZXJzdCBnZWhzdCBkdSBpbnMgQWx0ZXJzaGVpbSwKd2lyc3QgcmF1c2dlc2NobWlzc2VuLCB3ZW5uIGR1IHp1IGp1bmcgd2lyc3QsCnNwaWVsc3QgZWluIHBhYXIgSmFocmUgR29sZiBiZWkgZmV0dGVyIFJlbnRlLAprcmllZ3N0IGVpbmUgZ29sZGVuZSBVaHIKdW5kIGZhZW5nc3QgZ2FueiB2b3JzaWNodGlnIGFuIHp1IGFyYmVpdGVuLgpOYWNoZGVtIGR1IGRhbWl0IGR1cmNoIGJpc3QsIGdlaHRzIGF1ZiBkaWUgVW5pLgpEdSBoYXN0IGluendpc2NoZW4gZ2VudWcgRXJmYWhydW5nLAp1bSBkYXMgU3R1ZGVudGVubGViZW4gaW4gU2F1cyB1bmQgQnJhdXMgenUgZ2VuaWVzc2VuLApuaW1tc3QgRHJvZ2VuIHVuZCBzYWV1ZnN0IGRpciBkZW4gS29wZiBkaWNodC4KV2VubiBkdSBkYXZvbiBzbyByaWNodGlnIHN0dW1wZiBnZXdvcmRlbiBiaXN0LAp3aXJkIGVzIFplaXQgZnVlciBkaWUgU2NodWxlLgpJbiBkZXIgU2NodWxlIHdpcnN0IGR1IHZvbiBKYWhyIHp1IEphaHIgYmxvZWRlciwKYmlzIGR1IHNjaGxpZXNzbGljaCByYXVzZmxpZWdzdC4KRGFuYWNoIHNwaWVsc3QgZHUgZWluIHBhYXIgSmFocmUgaW0gU2FuZGthc3RlbiwKZHVlbXBlbHN0IG5ldW4gTW9uYXRlIGluIGVpbmVyIEdlYmFlcm11dHRlcgp1bmQgYmVlbmRlc3QgZGVpbiBMZWJlbiBhbHMuLi4KT3JnYXNtdXMhCgpnbk9tZSA7KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmVtZXJrZW5zd2VydCAoQW50aGVhLCAyMi4gSnVuIDIwMDcsIDExOjU0OjAyKToKIklocmUgVG9jaHRlciBpc3QgZXJzdCA1IHVuZCBrYW5uIGlocmVuIE5hbWVuIHNjaG9uIHJ1ZWNrd2FlcnRzIGJ1Y2hzdGFiaWVyZW4/CkRhcyBpc3QgYWJlciBzZWhyIGJlbWVya2Vuc3dlcnQhIiBTbyBiZWkgZGVyIFVudGVyc3VjaHVuZywgb2IgZGllIFRvY2h0ZXIKc2Nob24gZXR3YXMgZnJ1ZWhlciBlaW5nZXNjaHVsdCB3ZXJkZW4ga2Fubi4gIkphLCB3aXIgc2luZCBzZWhyIHN0b2x6IGF1ZiBzaWUiCmFudHdvcnRldGUgZGllIE11dHRlci4gIlVuZCB3aWUgaGVpc3N0IElocmUgVG9jaHRlcj8iIC0gIkFubmEuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGRhcyBsZWJlbiBhbmRlcnNydW0uLi4gKEh1bW5pLCAyNi4gSnVuIDIwMDcsIDAwOjI2OjQyKToKfiMhIHJuPUdub21lIHJ0PTExODI0Mjc1Mjkgcmc9d2l0emUKfiMhIHRpZD0xMTgyNDI3NTI5CldlciBnZW5hdSBkYW1pdCBhbmdlZmFuZ2VuIGhhdCwgd2Vpc3MgaWNoIG5pbW1lciwgYWJlciB6dW0gc2VsYmVuCihpbnRlcmVzc2FudGVuKSBUaGVtYSBnaWJ0cyBhdWNoIGVpbiBMaWVkIHZvbiBHb2V0eiBXaWRtYW5uLiA7LSkKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGRhcyBsZWJlbiBhbmRlcnNydW0uLi4gKEtlc3NhLCAyNi4gSnVuIDIwMDcsIDAwOjI3OjEwKToKfiMhIHJuPUh1bW5pIHJ0PTExODI4MTA0MDIgcmc9d2l0emUKfiMhIHRpZD0xMTgyNDI3NTI5CkRlciBHb2V0emkgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBkYXMgbGViZW4gYW5kZXJzcnVtLi4uIChCaXJkeSwgMjguIEp1biAyMDA3LCAyMToxNToxNik6Cn4jISBybj1Hbm9tZSBydD0xMTgyNDI3NTI5IHJnPXdpdHplCn4jISB0aWQ9MTE4MjQyNzUyOQp3aWxsIGhhYmVuIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXV0aGFuYXNpZSAoQW50aGVhLCAgNi4gQXVnIDIwMDcsIDEwOjM4OjAyKToKR2VzdGVybiBBYmVuZCBoYWJlbiBtZWluZSBGcmF1IHVuZCBpY2ggYW0gVGlzY2ggc2l0emVuZCB1ZWJlciBkYXMgRWluZSBvZGVyCkFuZGVyZSBUaGVtYSBkaXNrdXRpZXJ0LiBJcmdlZHdpZSBrYW1lbiB3aXIgYXVmIEV1dGhhbmFzaWUgenUgc3ByZWNoZW4uLi4gCgpadSBkaWVzZW0gc2Vuc2libGVuIFRoZW1hIHVlYmVyIGRpZSBXYWhsIHp3aXNjaGVuIExlYmVuIHVuZCBUb2QgaGFiZSBpY2ggaWhyCmdlc2FndDogIkxhc3MnIG1pY2ggbmljaHQgaW4gZWluZW0gc29sY2hlbiBadXN0YW5kIGxlYmVuIC0gdm9uIGVpbmVyIE1hc2NoaW5lCmFiaGFlbmdpZywgYW0gTW9uaXRvciBoYWVuZ2VuZCB1bmQgZ2VuYWVocnQgdm9uIGRlciBGbHVlc3NpZ2tlaXQgZWluZXIKRmxhc2NoZSEgV2VubiBkdSBtaWNoIGluIGRpZXNlbSBadXN0YW5kIHNpZWhzdCwgc2NoYWx0ZSBkaWUgTWFzY2hpbmVuIGFiLCBkaWUKbWljaCBhbSBMZWJlbiBlcmhhbHRlbiEiIAoKUGxvZXR6bGljaCBpc3Qgc2llIHdvcnRsb3MgYXVmZ2VzdGFuZGVuLCBoYXQgZGVuIEZlcm5zZWhlciB1bmQgbWVpbmVuIFBDCmF1c2dlbWFjaHQgdW5kIG1laW4gQmllciB3ZWdnZXdvcmZlbi4uLiAKCi4uLmRpZSBibG9lZGUgS3VoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEV1dGhhbmFzaWUgKERhcmtsb3IsICA2LiBBdWcgMjAwNywgMjM6NDE6MjQpOgp+IyEgcm49QW50aGVhIHJ0PTExODYzODk0ODIgcmc9d2l0emUKfiMhIHRpZD0xMTg2Mzg5NDgyCldpcmtsaWNoIG51ciBuIFdpdHo/CgoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTW90emVyZWkgKEFudGhlYSwgMTMuIEF1ZyAyMDA3LCAxMTowODo1NCk6CkVpbiBTY2hhZWZlciBiZXN1Y2h0IGFtIFNvbm50YWdtb3JnZW4gZGVuIEdvdHRlc2RpZW5zdC4gCkRlciBQZmFycmVyIHRvZW50IHZvbiBkZXIgS2FuemVsOgoiRWluIGd1dGVyIEhpcnRlIGJsZWlidCBpbW1lciBiZWkgc2VpbmVuIFNjaGFmZW4hIgpEYXJhdWYgZGVyIFNjaGFlZmVyOgoiS29tbSBIYXNzbywgZXIgZmFlbmd0IHNjaG9uIHdpZWRlciBhbiB6dSBtb3R6ZW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVmVyc3RhZW5kbmlzdm9sbCAoQW50aGVhLCAzMS4gQXVnIDIwMDcsIDExOjI4OjUyKToKTGV0enRlbiBNaXR0d29jaCB3YXIgdW5zZXIgSG9jaHplaXRzdGFnLiBXaXIgd2FyZW4gamV0enQgZnVlciAzNiBKYWhyZQp2ZXJoZWlyYXRldC4KCkljaCBzYWggbWVpbmUgRnJhdSBhbiBkZW0gVGFnIGFuIHVuZCBzYWd0ZTogIkxpZWJsaW5nLCB2b3IgMzYgSmFocmVuIGhhdHRlbgp3aXIgZWluIGJpbGxpZ2VzIEFwcGFydG1lbnQsIGVpbiBiaWxsaWdlcyBBdXRvLCBzY2hsaWVmZW4gYXVmIGRlbSBTb2ZhIHVuZApoYXR0ZW4gZWluIDEwIiBTY2h3YXJ6LVdlaXNzLUZlcm5zZWhlciwgYWJlciBqZWRlIE5hY2h0IGhhYmUgaWNoIG1pdCBlaW5lcgoyNWphZWhyaWdlbiBoZWlzc2VuIEJsb25kaW5lIGdlc2NobGFmZW4uIEpldHp0IGhhYmVuIHdpciBlaW4gSGF1cyBmdWVyIDMwMDAwMApFdXJvLCBlaW4gQXV0byBmdWVyIDYwMDAwIEV1cm8sIGVpbiBleHRyYWdyb3NzZXMgQmV0dCB1bmQgZWluZW4gNTAiIFBsYXNtYQpGZXJuc2VoZXIsIGFiZXIgamV0enQgc2NobGFmZSBpY2ggbWl0IGVpbmVyIDYxamFlaHJpZ2VuIGdyYXVoYXJpZ2VuIEZyYXUuIEVzCnNjaGVpbnQgbWlyIGRhc3MgRHUgbWl0IGRlbSBMYXVmIGRlciBaZWl0IG5pY2h0IHNvIG1pdGhhZWx0c3QuIgoKTWVpbmUgRnJhdSwgc2VociB2ZXJzdGFlbmRuaXN2b2xsIGZ1ZXIgbWVpbiBQcm9ibGVtLCBzYWd0ZSBtaXIgaWNoIHNvbGxlCnJhdXNnZWhlbiB1bmQgZWluZSBoZWlzc2UgMjVqYWVocmlnZSBCbG9uZGluZSBzdWNoZW4uIFNpZSB3dWVyZGUgZGFubiBkYWZ1ZXIKc29yZ2VuLCBkYXNzIGljaCB3aWVkZXIgaW4gZWluZW0gYmlsbGlnZW4gQXBwYXJ0bWVudCBsZWJlbiwgZWluIGJpbGxpZ2VzIEF1dG8KZmFocmVuICwgYXVmIGRlbSBTb2ZhIHNjaGxhZmVuIHVuZCBlaW5lbiAxMCIgU2Nod2Fyei1XZWlzcy1GZXJuc2VoZXIgaGFiZW4Kd3VlcmRlLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpcmlnYXQgKEFudGhlYSwgMjAuIFNlcCAyMDA3LCAwOToyMjozMSk6CldhcnVtIHNpbmQgRGlyaWdlbnRlbiB3aWUgS29uZG9tZT8KT2huZSBtYWNodCBtZWhyIFNwYXNzLCBhYmVyIG1pdCBpc3Qgc2ljaGVyZXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZWlsIFdFaWhuYWNodGVuIGlzdC4uLi4gKEFudGhlYSwgMjAuIFNlcCAyMDA3LCAxMzowNDo1OCk6CkFscyBlcyBrdXJ6IHZvciBXZWlobmFjaHRlbiBhbnMgRm9yc3RoYXVzIGtsb3BmdCB1bmQgZGllIEZvZXJzdGVyaW4gYXVmbWFjaHQsCnN0ZWh0IGRhIGVpbmUgYWVybWxpY2ggZ2VrbGVpZGV0ZSBqdW5nZSBGcmF1IG1pdCBlaW5lbSBCYWJ5IGF1ZiBkZW0gQXJtOgoiTGllYmUgRnJhdSBGb2Vyc3RlcmluLCBpY2ggYmluIHNvIHVuZ2x1ZWNrbGljaCwga29lbm5lbiBzaWUgbWlyIG1laW4gS2luZAphYm5laG1lbj8iICJBbHNvIGd1dCwgd2VpbCBXZWlobmFjaHRlbiBpc3QiLCBzYWd0IGRpZSBGb2Vyc3RlcmluIHVuZCBiZWhhZWx0CmRhcyBLaW5kLgoKS2F1bSBpc3QgZWluIEphaHIgdmVyZ2FuZ2VuLCBlcyBpc3Qgd2llZGVyIEFkdmVudHN6ZWl0LCBrbG9wZnQgZXMgYWJlcm1hbHMgYW4KZGVyIFR1ZXIgenVtIEZvcnN0aGF1cy4gVW5kIHdpZWRlciBzdGVodCBkaWUgYXJtZSBGcmF1IGluIGlocmVuIEx1bXBlbiBkYSwgdW5kCndpZWRlciBoYXQgc2llIGVpbiBCYWJ5IGF1ZiBkZW0gQXJtOiAiQml0dGUsIGtvZW5uZW4gc2llIG1laW4gS2luZCBuZWhtZW4/IgpEaWUgRm9lcnN0ZXJpbiBsYWVzc3Qgc2ljaCBlcndlaWNoZW4gdW5kIG5pbW10IGF1Y2ggZGllc2VzIEtpbmQuCgpVbmQgYWxzIGVpbiBKYWhyIHZlcmdhbmdlbiBpc3QsIGtsb3BmdCBlcyB3aWVkZXIgYmVpIEZvZXJzdGVycyBhbiBkZXIgVHVlci4KQWJlcm1hbHMgc3RlaHQgZGllIEZyYXUgaW4gaWhyZW4gTHVtcGVuIGRhIG1pdCBlaW5lbSBLaW5kIGF1ZiBkZW0gQXJtIHVuZApiZXR0ZWx0OiAiQml0dGUsIHdvbGxlbiBzaWUgbmljaHQgbWVpbiBLaW5kIG5laG1lbj8iIC0gIk5laW4sIiBzYWd0IGRhIGRpZQpGb2Vyc3RlcmluLCAiZGllc2VzIEphaHIgZ2lidCdzIG1hbCB3aWVkZXIgZWluZSBHYW5zIHp1IFdlaWhuYWNodGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYW4gemVzc3RyYSAoTWFzdWwsIDIxLiBTZXAgMjAwNywgMDg6MzY6MTApOgpXZW5uIGljaCBpbiBtZWluZW0gSG90ZWx6aW1tZXIgKE5yIDcgaW4gV2lsbGlidXJnKSAidW50IHNjaHdlcnQgaW4gc2NocmFuayIKZWluZ2ViZSwga29tbXQgIkhpZXIgaXN0IGtlaW4gU2NocmFuayIuIEtlaW5lIEFobnVuZywgb2IsIHNvbGx0ZSBhYmVyIG1hbApmdW5rdGlvbmllcnQgaGFiZW4sIG9kZXI/IEljaCBzZXR6ZSBEaWNoIGF1ZiBkaWUgQmVzdWNoZXJsaXN0ZSwgZGFtaXQgZHUKZ2dmLnJlaW4ga29tbXN0LgpNYXN1bAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS2FsYXVlciAoR2xvaW5zb24sIDE0LiBPa3QgMjAwNywgMTE6NDI6MTIpOgpXaWUgbmVubnQgbWFuIGRhcyBCZXRyaWVic3N5c3RlbSwgd2VubiBtYW4gZGllIChrZWluZSBBaG51bmcsIHdlbGNoZSBXTSBkYXMKaXN0KSBrbGVpbmUgUmF0dGUgdW50ZXIgZGVtIERlZmF1bHQtV00gdm9uIFNsYWNrd2FyZSAxMS54IHNpZWh0PwoKUmF0IEhhdCA6KQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3aWVkZXIgUGlsb3Rlbi1XaXR6ZSAoUm9uZGEsIDE0LiBPa3QgMjAwNywgMjA6Mzg6NDEpOgphKSBNYW4gYmVhY2h0ZSwgZGFzcyBtYW5jaGUgV2l0emUgZWhlciBudXIgZnVlciBQaWxvdGVuIHZlcnN0YWVuZGxpY2ggc2luZCB1bmQKYikgZGFzcyBlcyBvYmVuIGVpbmVuIExpbmsgIlp1bSBUZWlsIElJIiBnaWJ0OiAKCmh0dHA6Ly9lZGRoLmRlL3VudGVyaGFsdHVuZy9odW1vci5odG1sCgpFbnRnZWdlbiBhKSBzaW5kIGFiZXIgZWluaWdlIGF1Y2ggYWxsZ2VtZWludmVyc3RhZW5kbGljaCwgekI6CgpXYWVocmVuZCBlaW5lcyB0dXJidWxlbnRlbiBGbHVnZXMgd2VuZGV0IHNpY2ggZWluZSBQYXNzYWdpZXJpbiBhbiBlaW5lbiBuZWJlbgppaHIgc2l0emVuZGVuIFByaWVzdGVyOgoiRmF0aGVyLCB5b3UgYXJlIGEgbWFuIG9mIEdvZCwgY2FuJ3QgeW91IGRvIHNvbWV0aGluZyBhYm91dCB0aGlzIHRlcnJpYmxlCnN0b3JtPyIKV29yYXVmIGRpZXNlciBhbnR3b3J0ZXQ6ICJMYWR5LCBJJ20gaW4gc2FsZSwgbm90IGluIG1hbmFnZW1lbnQiCgpSb25kYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IE1hbCB3aWVkZXIgUGlsb3Rlbi1XaXR6ZSAoQW50aGVhLCAxOC4gT2t0IDIwMDcsIDE0OjE5OjA5KToKfiMhIHJuPVJvbmRhIHJ0PTExOTIzODcxMjEgcmc9d2l0emUKfiMhIHRpZD0xMTkyMzg3MTIxClVuZCBub2NoIG5lIExhZHVuZyBlbmdsaXNjaGU6Cmh0dHA6Ly93d3cuYWJvY2suZGUvaHVtb3IvaF9mbHlpbmcuaHRtbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVrdXJzaXYgKEFudGhlYSwgMjkuIE9rdCAyMDA3LCAwODozODo1NSk6CkRpZSBNdXR0ZXI6ICJQZXRlciBpc3MgRGVpbiBCcm90IGF1ZiEiCiJJY2ggbWFnIGFiZXIga2VpbiBCcm90ISIKIkR1IG11c3N0IGFiZXIgQnJvdCBlc3NlbiwgZGFtaXQgRHUgZ3Jvc3MgdW5kIHN0YXJrIHdpcnN0ISIKIldhcnVtIHNvbGwgaWNoIGdyb3NzIHVuZCBzdGFyayB3ZXJkZW4/IgoiRGFtaXQgRHUgRGlyIERlaW4gdGFlZ2xpY2ggQnJvdCB2ZXJkaWVuZW4ga2FubnN0ISIKIkFiZXIgaWNoIG1hZyBkb2NoIGdhciBrZWluIEJyb3QhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2llIHJldHRlbiBNZXRhbGxlciBlaW5lIFByaW56ZXNzaW4/IChBbnRoZWEsIDI5LiBPa3QgMjAwNywgMDg6NDA6NDMpOgoKSEVBVlkgTUVUQUw6CkRlciBQcm90YWdvbmlzdCBrb21tdCBhdWYgZWluZXIgSGFybGV5IERhdmlkc29uLCB0b2V0ZXQgZGVuIERyYWNoZW4sIHRyaW5rdAplaW5pZ2UgQmllciB1bmQgKioqIGRpZSBQcmluemVzc2luLgoKR1JJTkRDT1JFOgpEZXIgUHJvdGFnb25pc3Qga29tbXQsIHNjaHJlaXQgendlaSBNaW51dGVuIGV0d2FzIGFic29sdXQgdW52ZXJzdGFlbmRsaWNoZXMKdW5kIHZlcmxhZXNzdCBkYW5uIGRhcyBNYWVyY2hlbmxhbmQuCgpQT1dFUiBNRVRBTDoKRGVyIFByb3RhZ29uaXN0IGtvbW10IGF1ZiBlaW5lbSB3ZWlzc2VuIEVpbmhvcm4gYW5nZXJpdHRlbiwgZmx1ZWNodGV0IHZvciBkZW0KRHJhY2hlbiwgcmV0dGV0IGRpZSBQcmluemVzc2luIHVuZCBzaWUgcmVpdGVuIGluIGRlbiBlaW5zYW1lbiBXYWxkIHVuZCBsaWViZW4Kc2ljaC4KClRIUkFTSCBNRVRBTDoKRGVyIFByb3RhZ29uaXN0IGtvbW10LCBrYWVtcGZ0IGdlZ2VuIGRlbiBEcmFjaGVuIHVuZCAqKiogZGllIFByaW56ZXNzaW4sCnNjaG5lbGwgdW5kIGVpbmZhY2guCgpGT0xLIE1FVEFMOgpEZXIgUHJvdGFnb25pc3QgYmV0cml0dCBkaWUgU3plbmUgbWl0IGVpbmlnZW4gRnJldW5kZW4sIHdlbGNoZSBBa2tvcmRpb24sClZpb2xpbmUsIEZsb2V0ZW4gdW5kIGFuZGVyZSBuZXJ2ZW5kZSBJbnN0cnVtZW50ZSBzcGllbGVuLCBkZXIgRHJhY2hlIHNjaGxhZWZ0CnZvbiBkZW0gZ2FuemVuIEdlZHVkZWwgdW5kIEdldGFuemUgZWluIHVuZCBkZXIgUHJvdGFnb25pc3QgdmVybGFlc3N0IGRhcwpNYWVyY2hlbmxhbmQgb2huZSBkaWUgUHJpbnplc3Npbi4KClZJS0lORyBNRVRBTDoKRGVyIFByb3RhZ29uaXN0IGtvbW10IG1pdCBkZW0gU2NoaWZmLCB0b2V0ZW4gZGVuIERyYWNoZW4gbWl0IHNlaW5lciBBeHQsIGtvY2h0CnVuZCBpc3N0IGRlbiBEcmFjaGVuLCB0b2V0ZXQgbWlzc3ZlcnN0YWVuZGxpY2hlcndlaXNlIGF1Y2ggZGllIFByaW56ZXNzaW4sCnN0aWVobHQgZGFzIFZpZWggaW0gU2NobG9zcyB1bmQgYnJlbm50IGFsbGVzIG5pZWRlci4gRGFubiB2ZXJsYWVzc3QgZXIgZGFzCk1hZXJjaGVubGFuZC4KCkRFQVRIIE1FVEFMOgpEZXIgUHJvdGFnb25pc3Qga29tbXQsIHRvZXRldCBkZW4gRHJhY2hlbiwgKioqIGRpZSBQcmluemVzc2luIHVuZCB0b2V0ZXQgc2llLApkYW5uIGdlaHQgZXIuCgpCTEFDSyBNRVRBTDoKRGVyIFByb3RhZ29uaXN0IGtvbW10IHVtIE1pdHRlcm5hY2h0LCB0b2V0ZXQgZGVuIERyYWNoZW4gdW5kIG5hZ2VsdCBpaG4gYW4gZGFzClNjaGxvc3N0b3IuLi4uLmRhbm4gbWlzc2hhbmRlbHQgZXIgZGllIFByaW56ZXNzaW4sIHRyaW5rdCBpaHIgQmx1dCAobnVyIGVpbgpSaXR1YWwgYmV2b3IgZXIgc2llIHRvZXRldCkgdW5kIG5hZ2VsdCBzaWUgYXVjaCBmaXggYW4gZGFzIFNjaGxvc3N0b3IuCgpCUlVUQUwgREVBVEggTUVUQUw6Cipub2Vub2Vub2UsIGRhcyBnZWh0IG51biBnYXIgbmljaHQgKgoKRE9PTSBNRVRBTDoKRGVyIFByb3RhZ29uaXN0IGtvbW10LCBlcmtlbm50IGRpZSBHcm9lc3NlIGRlcyBEcmFjaGVuIHVuZCBkZW5rdCBzaWNoLCBkYXNzIGVyCmRpZXNlbiBuaWVtYWxzIHRvZXRlbiBrYW5uLiBFciBiZWdlaHQgU2VsYnN0bW9yZC4gRGVyIERyYWNoZSBpc3N0IGRpZSBMZWljaGUuClVuZCBkaWUgUHJpbnplc3NpbiBuYXR1ZXJsaWNoIGF1Y2guCgpQUk9HUkVTU0lWRSBNRVRBTDoKRGVyIFByb3RhZ29uaXN0IGJldHJpdHQgZGllIFN6ZW5lIG1pdCBlaW5lciBHaXRhcnJlIHVuZCBzcGllbHQgZWluIDI2Cm1pbnVldGlnZXMgU29sby4gRGVyIERyYWNoZSBicmluZ3Qgc2ljaCB2b3IgTGFuZ2V3ZWlsZSB1bS4gSW0gU2NobGFmZ2VtYWNoIGRlcgpQcmluemVzc2luIHNwaWVsdCBkZXIgUHJvdGFnb25pc3QgZWluIHdlaXRlcmVzIFNvbG8gaW5jbHVzaXZlIGFsbGUgVGVjaG5pa2VuLAp3ZWxjaGUgZXIgbGV0enRlcyBKYWhyIGluIGRlciBLbGFwc2UgZ2VsZXJudCBoYXQuIERpZSBQcmluemVzc2luIGZsdWVjaHRldC4KU2llIHdpbGwgZG9jaCBsaWViZXIgZGVuIEhlYXZ5IE1ldGFsLSBUeXAuCgpHTEFNIE1FVEFMOgpEZXIgUHJvdGFnb25pc3Qga29tbXQsIGRlciBEcmFjaGUgbGFjaHQgc2ljaCB1ZWJlciBkZXNzZW4gT3V0Zml0IGthcHV0dCB1bmQKbGFlc3N0IGlobiBoZXJlaW4uIERlciBQcm90YWdvbmlzdCBrbGF1dCBkYXMgTWFrZS1VcCBkZXIgUHJpbnplc3NpbiB1bmQKdmVyc3VjaHQgZGFzIFNjaGxvc3Mgcm9zYSB6dSBzdHJlaWNoZW4uCgpJTkRVU1RSSUFMIE1FVEFMOgpEZXIgUHJvdGFnb25pc3Qga29tbXQgaW4gZWluZW0gZHJlY2tpZ2VuIEdld2FuZCBhbmdlcml0dGVuLCBtYWNodCBlaW5pZ2UKbWVya3d1ZXJkaWdlIEdlc3Rpa3VsYXRpb25lbiB2b3IgZGVtIERyYWNoZW4gdW5kIHdpcmQgZGFubiB2b24gZGVuCk1hZXJjaGVubGFuZC1TZWN1cml0eS1SaXR0ZXJuIGVza29ydGllcnQuCgpFbW9Db3JlPwpEZXIgUHJvdGFnb25pc3Qga29tbXQsIHNjaHJlaXQgdW5kIGZsZW5udCBkaWUgQnVkZSB6dXNhbW1lbi4gUHJpbnplc3NpbiB1bmQKRHJhY2hlIGVybGVpZGVuIGVpbmVuIGNocm9uaXNjaGVuIFRpbml0dXMgdW5kIGZsdWVjaHRlbiB6dXNhbW1lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXaWUgcmV0dGVuIE1ldGFsbGVyIGVpbmUgUHJpbnplc3Npbj8gKERhcmtsb3IsICAzLiBOb3YgMjAwNywgMDE6MTA6MjApOgp+IyEgcm49QW50aGVhIHJ0PTExOTM2NDM2NDMgcmc9d2l0emUKfiMhIHRpZD0xMTkzNjQzNjQzCk1ldGFsIHN0YXJrLgoKRGFya2xvcgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3RvaWJlciAoQXJrLCAxNy4gRGV6IDIwMDcsIDEzOjE3OjI1KToKV2FocnNjaGVpbmxpY2ggc2Nob24gYmVrYW5udCwgdHJvdHpkZW0gaW1tZXIgd2llZGVyIHp1bSBBYmxhY2hlbjoKaHR0cDovL3d3dy5zcGllZ2VsLmRlL2ZsYXNoLzAsNTUzMiwxNDUwNCwwMC5odG1sCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzIGdlZ2ViZW5lbSBBbmxhc3MgKEFudGhlYSwgMTkuIERleiAyMDA3LCAxMjoxMzoxNik6CkVpbmUga2xlaW5lIFdlaWhuYWNodHNnZXNjaGljaHRlCkVzIHdhciBlaW5tYWwgdm9yIGxhbmdlciBaZWl0LCBrdXJ6IHZvciBXZWlobmFjaHRlbiwgYWxzIGRlciBXZWlobmFjaHRzbWFubgpzaWNoIGF1ZiBkZW4gV2VnIHp1IHNlaW5lciBhbGxqYWVocmxpY2hlbiBSZWlzZSBtYWNoZW4gd29sbHRlLCBhYmVyIG51ciBhdWYKUHJvYmxlbWUgc3RpZXNzLgpWaWVyIHNlaW5lciBFbGZlbiBmZWllcnRlbiBrcmFuaywgdW5kIGRpZSBBdXNoaWxmcy1FbGZlbiBrYW1lbiBtaXQgZGVyClNwaWVsemV1Zy1Qcm9kdWt0aW9uIG5pY2h0IG5hY2guIERlciBXZWlobmFjaHRzbWFubiBiZWdhbm4gc2Nob24gZGVuIERydWNrIHp1CnNwdWVyZW4sIGRlbiBlciBoYWJlbiB3dWVyZGUsIHdlbm4gZXIgYXVzIGRlbSBaZWl0cGxhbiBnZXJhdGVuIHNvbGx0ZS4KRGFubiBlcnphZWhsdGUgaWhtIHNlaW5lIEZyYXUsIGRhc3MgaWhyZSBNdXR0ZXIgc2ljaCB6dSBlaW5lbSBCZXN1Y2gKYW5nZWt1ZW5kaWd0IGhhdHRlLiBEaWUgU2Nod2llZ2VybXV0dGVyIGhhdCBkZW0gYXJtZW4gV2VpaG5hY2h0c21hbm4gZ2VyYWRlCm5vY2ggZ2VmZWhsdC4gQWxzIGVyIG5hY2ggZHJhdXNzZW4gZ2luZyB1bSBkaWUgUmVudGllcmUgYXVmenV6YWV1bWVuLCBiZW1lcmt0ZQplciwgZGFzcyBkcmVpIHZvbiBpaG5lbiBob2Noc2Nod2FuZ2VyIHdhcmVuIHVuZCBzaWNoIHp3ZWkgd2VpdGVyZSBhdXMgZGVtClN0YXViIGdlbWFjaHQgaGF0dGVuLCBkZXIgSGltbWVsIHdlaXNzIHdvaGluLiBXZWxjaCBLYXRhc3Ryb3BoZS4KRGFubiBiZWdhbm4gZXIgZGFtaXQgZGVuIFNjaGxpdHRlbiB6dSBiZWxhZGVuLCBkb2NoIGVpbmVzIGRlciBCcmV0dGVyIGJyYWNoCnVuZCBkZXIgU3BpZWx6ZXVnc2FjayBmaWVsIHNvIHp1IEJvZGVuLCBkYXNzIGRhcyBtZWlzdGUgU3BpZWx6ZXVnIHplcmtyYXR6dAp3dXJkZSAtIFNoaXQuClNvIGZydXN0cmllcnQgZ2luZyBkZXIgV2VpaG5hY2h0c21hbm4gaW5zIEhhdXMgdW0gc2ljaCBlaW5lIFRhc3NlIG1pdCBoZWlzc2VtClRlZSB1bmQgZWluZW0gU2NodXNzIFJ1bSB6dSBtYWNoZW4uIEplZG9jaCBtdXNzdGUgZXIgZmVzdHN0ZWxsZW4sIGRhc3MgZGllCkVsZmVuIGRlbiBnYW56ZW4gU2NobmFwcyB2ZXJzb2ZmZW4gaGF0dGVuLiBJbiBzZWluZXIgV3V0IGdsaXR0IGlobSBhdWNoIG5vY2gKZGllIFRhc3NlIGF1cyBkZW4gSGFlbmRlbiB1bmQgemVyc3ByYW5nIGluIHRhdXNlbmQga2xlaW5lIFN0dWVja2UsIGRpZSBzaWNoCnVlYmVyIGRlbiBnYW56ZW4gS3VlY2hlbmJvZGVuIHZlcnRlaWx0ZW4uIEpldHp0IGdhYi5zIG5hdHVlcmxpY2ggQWVyZ2VyIG1pdApzZWluZXIgRnJhdS4gQWxzIGVyIGRhbm4gYXVjaCBub2NoIGZlc3RzdGVsbGVuIG11c3N0ZSwgZGFzcyBNYWV1c2Ugc2VpbmVuCldlaWhuYWNodHMtU3RvbGxlbiBhbmdla25hYmJlcnQgaGF0dGVuIHdvbGx0ZSBlciB2b3IgV3V0IGZhc3QgcGxhdHplbi4KRGEga2xpbmdlbHRlIGVzIGFuIGRlciBUdWVyLgpFciBvZWZmbmV0ZSB1bmQgZGEgc3RhbmQgZWluIGtsZWluZXIgRW5nZWwgbWl0IGVpbmVtIHJpZXNpZ2VuIENocmlzdGJhdW0uIERlcgpFbmdlbCBzYWd0ZSBzZWhyIHp1cnVlY2toYWx0ZW5kOiBJY2ggaGFiZSBkYSBlaW5lbiBzY2hvZW5lbiBUYW5uZW5iYXVtIGZ1ZXIKZGljaC4gV28gc29sbCBpY2ggZGVuIGRlbm4gaGluc3RlY2tlbj8KVW5kIHNvIGhhdCBkaWUgVHJhZGl0aW9uIHZvbiBkZW0ga2xlaW5lbiBFbmdlbCBhdWYgZGVyIENocmlzdGJhdW1zcGl0emUKYmVnb25uZW4uCkZyb2hlcyBGZXN0ClNpZWhlIGF1Y2g6IGh0dHA6Ly93d3cua2xlaW5lLWhlbGRlbi5kZS9jb21pY3Mva3Jvbm9sb2dpc2NoLzEzOS5waHAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpUYXNzZW50YWxrIChNZXJpdCwgIDIuIEphbiAyMDA4LCAwMDo0NzowMik6Cmh0dHA6Ly9kZS55b3V0dWJlLmNvbS93YXRjaD92PWhkSEhLUjdQODRBCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVGFzc2VudGFsayAoUnVtYXRhLCAgMi4gSmFuIDIwMDgsIDEwOjMwOjM4KToKfiMhIHJuPU1lcml0IHJ0PTExOTkyMzEyMjIgcmc9d2l0emUKfiMhIHRpZD0xMTk5MjMxMjIyCldhciBkYXMgbmljaHQgdm9yIGRyZWkgSmFocmVuIGVpbiBLbGluZ2VsdG9uPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFRhc3NlbnRhbGsgKEJpcmR5LCAgMy4gSmFuIDIwMDgsIDAwOjUwOjQyKToKfiMhIHJuPU1lcml0IHJ0PTExOTkyMzEyMjIgcmc9d2l0emUKfiMhIHRpZD0xMTk5MjMxMjIyCmhpZXIgZGVyIGxhbmcgZXJ3YXJ0ZXRlIGhhbW1lcm5hY2hmb2xnZXIgKmcqCmh0dHA6Ly9kZS55b3V0dWJlLmNvbS93YXRjaD92PXl5WXRmczZKTE1BCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYWhhaGEgKEFyaywgMTQuIEZlYiAyMDA4LCAxNzo0OTo1MCk6CldoYXQgZG8geW91IGNhbGwgYSBkZWVyIHdpdGggbm8gZXllcz8KCk5vIGlkZWEuCgoKV2hhdCBkbyB5b3UgY2FsbCBhIGRlYWQgZGVlciB3aXRoIG5vIGV5ZXM/CgpTdGlsbCBubyBpZGVhLgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBIYWhhaGEgKE9ya3RvZXRlciwgMTQuIEZlYiAyMDA4LCAxODoyMDo0MCk6Cn4jISBybj1BcmsgcnQ9MTIwMzAwNzc5MCByZz13aXR6ZQp+IyEgdGlkPTEyMDMwMDc3OTAKV2hhdCBkbyB5b3UgY2FsbCBhIGRlZXIgd2l0aCBwcmV0dHkgZXllcz8KClByZXR0eSBpZGVhLgoKaGFoYWhhaGFoCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNdWFoYWhhLiAoQXJrLCAxNC4gRmViIDIwMDgsIDIxOjM5OjA3KToKCklmIGxvdmUgaXMgbGlrZSBkcmVhbWluZyBtYXJyaWFnZSBpcyB0aGUgd2FrZS11cCBjYWxsLgoKRmlyc3QgeWVhciB0aGUgd29tYW4gdGFsa3MgYW5kIHRoZSBtYW4gbGlzdGVucy4KClNlY29uZCB5ZWFyIHRoZSBtYW4gdGFsa3MgYW5kIHRoZSB3b21hbiBsaXN0ZW5zLgoKVGhpcmQgeWVhciBib3RoIHRhbGsgYW5kIHRoZSBuZWlnaGJvdXJzIGxpc3Rlbi4KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpVbnRvdGUgR2VzY2h3aW5kaWdrZWl0IChBbnRoZWEsIDEzLiBNYXIgMjAwOCwgMDk6Mjk6MDUpOgpXYXMgaXN0IGRpZSBob2VjaHN0ZSBHZXNjaHdpbmRpZ2tlaXQsIGRpZSBlaW4gVW50b3RlciBlcnJlaWNoZW4ga2FubiA/CgpEaWUgTGljaGdlc2Nod2luZGlna2VpdC4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFeHRyZW0tRXJ0cmlua2luZyAoQW50aGVhLCAxMy4gTWFyIDIwMDgsIDA5OjMwOjE1KToKRWluIFp3ZXJnIGtsb3BmdCBhbiBlaW5lIFR1ZXIuIEFscyBlaW5lIFp3ZXJnaW4gb2VmZm5ldCBzYWd0IGVyOiAiSGFsbG8sIGRhcmYKaWNoIHJlaW5rb21tZW4/IEljaCBtdXNzIGRpciBldHdhcyBzYWdlbi4iCgoiTmF0dWVybGljaCwgZHUgYmlzdCBoaWVyIGltbWVyIHdpbGxrb21tZW4uIEFiZXIgd28gaXN0IG1laW4gTWFubj8iCgoiRGFzIHdvbGx0ZSBpY2ggZGlyIGVyemFlaGxlbi4gRXMgZ2FiIGVpbmVuIFVuZmFsbCBpbiBkZXIgQnJhdWVyZWkuLi4iCgoiT2ggbmVpbiwgYml0dGUgc2FnIG5pY2h0IGRhc3MgZXIuLi4iCgoiRG9jaC4gRXMgdHV0IG1pciBsZWlkLCBkZWluIE1hbm4gaXN0IHRvdC4iCgoiV2llIGlzdCBlcyBwYXNzaWVydD8iCgoiRXMgd2FyIHNjaHJlY2tsaWNoLiBFciBmaWVsIGluIGVpbmVuIGdyb3NzZW4gQnJhdXRyb2cgbWl0IFp3ZXJnZW5iaWVyIHVuZAplcnRyYW5rLiIKCiJCZWkgZGVuIEdvZXR0ZXJuISBBYmVyIGR1IG11c3N0IG1pciBkaWUgV2FocmhlaXQgc2FnZW46IEdpbmcgZXMgd2VuaWdzdGVucwpzY2huZWxsPyIKCiJJY2ggZnVlcmNodGUuLi4gbmVpbi4iCgoiTmVpbj8iCgoiRWhybGljaCBnZXNhZ3Qgc3RpZWcgZXIgendpc2NoZW5kdXJjaCBzb2dhciBub2NoIGRyZWltYWwgYXVzIGRlbSBUcm9nIHVtIHp1CnBpbmtlbG4uLi4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRXJ3YWNoc2VuPyAoR25vbWUsIDE3LiBNYXIgMjAwOCwgMTI6MzE6MDYpOgoyNSB3YWhyZSBaZWljaGVuLCBkYXNzIER1IGVyd2FjaHNlbiBiaXN0OiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKMS4gQWxsIGRlaW5lIFppbW1lcnBmbGFuemVuIGxlYmVuIHVuZCBtYW4ga2FubiBrZWluZSByYXVjaGVuLgoKMi4gU2V4IGluIGVpbmVtIHNjaG1hbGVuIEJldHQga29tbXQgbmljaHQgaW4gRnJhZ2UuCgozLiBEdSBoYXN0IG1laHIgRXNzZW4gYWxzIEJpZXIgaW0gS3VlaGxzY2hyYW5rLgoKNC4gVW0gNjowMCBVaHIgc3RlaHN0IGR1IGF1ZiB1bmQgZ2Voc3QgbmljaHQgenUgQmV0dC4KCjUuIER1IGhvZXJzdCBkZWluIExpZWJsaW5nc2xpZWQgaW4gZWluZW0gQXVmenVnLgoKNi4gRHUgYWNodGVzdCBhdWYgZGllIFdldHRlcnZvcmhlcnNhZ2UuCgo3LiBEZWluZSBGcmV1bmRlIGhlaXJhdGVuIHVuZCBsYXNzZW4gc2ljaCBzY2hlaWRlbiwgYW5zdGVsbGUgdm9uCiJBYmVudGV1ZXJuIiB1bmQgIlNjaGx1c3MgbWFjaGVuIi4KCjguIER1IGhhc3Qgd2VuaWdlciBhbHMgMTMwIEZlcmllbnRhZ2UuCgo5LiBKZWFucyB1bmQgZWluIFB1bGxpIHF1YWxpZml6aWVyZW4gbmljaHQgbWVociBhbHMgInNjaGljayBhbmdlem9nZW4iLgoKMTAuIER1IHJ1ZnN0IGRpZSBQb2xpemVpLCB3ZWlsIGRpZXNlICUmQCMqIyUgS2luZGVyIGlocmUgTXVzaWsgbmljaHQKbGVpc2UgbWFjaGVuIHdvbGxlbi4KCjExLiBhZWx0ZXJlIFZlcndhbmR0ZSBmYW5nZW4gYW4gZHJlY2tpZ2UgV2l0emUgYXVjaCBpbiBkZWluZXIgR2VnZW53YXJ0Cnp1IGVyemFlaGxlbi4KCjEyLiBEdSB3ZWlzc3QgbmljaHQgd2FubiBNY0RvbmFsZHMgenVtYWNodC4KCjEzLiBEZWluZSBBdXRvdmVyc2ljaGVydW5nIGdlaHQgcnVudGVyLCBkZWluZSBBdXRvcmF0ZW4gaG9jaC4KCjE0LiBEdSBmdWV0dGVyc3QgZGVpbmVuIEh1bmQgbWl0IEh1bmRlZnV0dGVyIG5pY2h0IG1pdCB1ZWJlcmJsZWlic2VsbgpkZXIgbGV0enRlbiBQaXp6YSBvZGVyIE1jRG9uYWxkcy4KCjE1LiBWb20gYXVmIGRlciBDb3VjaCBzY2hsYWZlbiBrcmllZ3N0IGR1IFJ1ZWNrZW5zY2htZXJ6ZW4uCgoxNi4gRHUgbWFjaHN0IE5pY2tlcmNoZW4uCgoxNy4gRXNzZW4gZ2VoZW4gdW5kIEtpbm8gaXN0IGRpZSBnYW56ZSBWZXJhYnJlZHVuZywgbmljaHQgZXJzdCBkZXIKQW5mYW5nLgoKMTguIFVtIDQgVWhyIG1vcmdlbnMgZnJpdHRpZXJ0ZSBTYWNoZW4genUgZXNzZW4gd3VlcmRlIGRpcgpNYWdlbnByb2JsZW1lIGJlcmVpdGVuLCBuaWNodCBzaWUgbG9lc2VuLgoKMTkuIER1IGthdWZzdCBBc3BpcmluIHVuZCBSZW5uaWUgaW4gZGVyIEFwb3RoZWtlLCBuaWNodApTY2h3YW5nZXJzY2hhZnRzdGVzdHMgdW5kIEtvbmRvbWUuCgoyMC4gRWluZSBGbGFzY2hlIFdlaW4gZnVlciA0RVVSIGlzdCBrZWluICJ6aWVtbGljaCBndXRlcyBaZXVnIiBtZWhyLgoKMjEuIER1IGlzc3QgRnJ1ZWhzdHVlY2tzemV1ZyB6dW0gRnJ1ZWhzdHVlY2suCgoyMi4gIkljaCBrYW5uIG5pY2h0IG1laHIgc28gdHJpbmtlbiB3aWUgZGFtYWxzIiBlcnNldHp0ICJJY2ggdHJpbmtlCm5pZSB3aWVkZXIgc28gdmllbC4iCgoyMy4gOTAlIGRlciBaZWl0LCBkaWUgZHUgdm9yIGRlbSBDb21wdXRlciB2ZXJicmluZ3N0LCBpc3QgZnVlciBkZWluZQpBcmJlaXQuCgoyNC4gRHUgdHJpbmtzdCBuaWNodCBtZWhyIHp1IEhhdXNlIHVtIEdlbGQgenUgc3BhcmVuLCBiZXZvciBkdQphdXNnZWhzdC4KCjI1LiBXZW5uIGR1IGhvZXJzdCwgZGFzcyBlaW5lIGRlaW5lciBCZWthbm50ZW4gc2Nod2FuZ2VyIGlzdCBncmF0dWxpZXJzdApkdSB1bmQgc2Fnc3QgbmljaHQgIk9oIFMqJCIsIHdpZSBpc3QgZGFzIGRlbm4gcGFzc2llcnQ/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSHVuZGlnIChBbnRoZWEsIDE5LiBNYXIgMjAwOCwgMjA6NTE6MDEpOgpUcmVmZmVuIHNpY2ggendlaSBIdW5kZS4gU2FndCBkZXIgZWluZTogIkljaCBiaW4gYWRlbGlnLiBJY2ggaGVpc3NlICdIYXNzbyB2b24KSGVycmVuaGF1c2VuJyEiClNhZ3QgZGVyIGFuZGVyZTogIkljaCBiaW4gYXVjaCBhZGVsaWcuIEljaCBoZWlzc2UgJ1J1bnRlciB2b20gU29mYSchIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlbGlnaW9uc3dpc3NlbnNjaGFmdCAoR3JpbW1ib3JuLCAyMy4gSnVuIDIwMDgsIDEwOjQzOjMzKToKVW50ZXJoYWx0ZW4gc2ljaCB6d2VpIFRlZW5hZ2VyOgoiV2FzIGhhdCBub2NobWFsIGRpZXNlciBUaG9yPyBFaW5lIFNhZWdlPyIKIk5laW4sIGRhcyB3YXIgZG9jaCBlaW4gSGFtbWVyISIKIk5hamEsIGljaCBoYWIgamEgdm9uIGRlciBCaWJlbCBrZWluZSBBaG51bmcuIgoKR3JpbW1ib3JuIGRlciBBdGhlaXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmVsaWdpb25zd2lzc2Vuc2NoYWZ0IChPcmt0b2V0ZXIsIDIzLiBKdW4gMjAwOCwgMTE6NDA6MDcpOgp+IyEgcm49R3JpbW1ib3JuIHJ0PTEyMTQyMTA2MTMgcmc9d2l0emUKfiMhIHRpZD0xMjE0MjEwNjEzClVuZCB3byBpc3QgZGEgZGVyIFdpdHo/Cgo7KQoKT3JrVC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogUmVsaWdpb25zd2lzc2Vuc2NoYWZ0IChWYW5pb24sIDIzLiBKdW4gMjAwOCwgMTE6NDU6MzYpOgp+IyEgcm49T3JrdG9ldGVyIHJ0PTEyMTQyMTQwMDcgcmc9d2l0emUKfiMhIHRpZD0xMjE0MjEwNjEzCldpc3NlbnNjaGFmdCBpc3QsCiAgd2VubiBtYW4gaW4gZWluZW0gZHVua2xlbiBaaW1tZXIgZWluZSBzY2h3YXJ6ZSBLYXR6ZSBzdWNodC4KClJlbGlnaW9uIGlzdCwKICB3ZW5uIG1hbiBpbiBlaW5lbSBkdW5rbGVuIFppbW1lciBlaW5lIHNjaHdhcnplIEthdHplIHN1Y2h0LCBkaWUgbmljaHQgZGEKICBpc3QuCgpQb2xpdGlrIGlzdCwKICB3ZW5uIG1hbiBpbiBlaW5lbSBkdW5rbGVuIFppbW1lciBlaW5lIHNjaHdhcnplIEthdHplIHN1Y2h0LCBkaWUgbmljaHQgZGEKICBpc3QgdW5kIHJ1ZnQ6IEljaCBoYWIgc2llIQoKViosIHdvbGx0ZSBhdWNoIEthbGF1ZXJuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogUmVsaWdpb25zd2lzc2Vuc2NoYWZ0IChSdW1hdGEsIDIzLiBKdW4gMjAwOCwgMTE6NTY6NTUpOgp+IyEgcm49VmFuaW9uIHJ0PTEyMTQyMTQzMzYgcmc9d2l0emUKfiMhIHRpZD0xMjE0MjEwNjEzCkVybGV1Y2h0dW5nIGlzdCBkYW5uLCB3ZW5uIGRpZSBLYXR6ZSBtaXR0ZW4gaW4gZGVyIE5hY2h0IGF1ZiBkaWUgQnJ1c3QKc3ByaW5ndCB1bmQgRnV0dGVyIGhhYmVuIHdpbGw/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogUmVsaWdpb25zd2lzc2Vuc2NoYWZ0IChBbGJvaW4sIDIzLiBKdW4gMjAwOCwgMTE6NTg6NDIpOgp+IyEgcm49UnVtYXRhIHJ0PTEyMTQyMTUwMTUgcmc9d2l0emUKfiMhIHRpZD0xMjE0MjEwNjEzClJlbGlnaW9uIGlzdCB3ZW5uIGplZGVyIGltIGR1bmtsZW4gWmltbWVyIGlzdCB1bmQgamVkZXIgbWVpbnQgZGFzIGRpZSBzY2h3YXJ6ZQpLYXR6ZSBiZWkgaWhtIHdhZXJlLgpFcmxldWNodHVuZyBpc3QsIHdpZSBkZXIgTmFtZSBzY2hvbiBzYWd0OiB3ZW5uIGRhcyBMaWNodCBrdXJ6IG1hbCBhbiBnZWh0IHVuZAptYW4gc28gd2Vpc3Mgb2IgZGllIEthdHplIGltIFppbW1lciBpc3Qgb2RlciBuaWNodC4KYWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFJlbGlnaW9uc3dpc3NlbnNjaGFmdCAoQW15bnRob3IsIDIzLiBKdW4gMjAwOCwgMTc6MDI6MzEpOgp+IyEgcm49QWxib2luIHJ0PTEyMTQyMTUxMjIgcmc9d2l0emUKfiMhIHRpZD0xMjE0MjEwNjEzCkVybGV1Y2h0dW5nIGlzdCwgd2VubiBtYW4gaW4gZWluZW0gZHVua2xlbiBaaW1tZXIgZWluZSBzY2h3YXJ6ZSBLYXR6ZSBzdWNodCwKZGllIG5pY2h0IGRhIGlzdCwgdW5kIHNpZSBmaW5kZXQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogUmVsaWdpb25zd2lzc2Vuc2NoYWZ0IChab29rLCAyMy4gSnVuIDIwMDgsIDE3OjAyOjU5KToKfiMhIHJuPUFteW50aG9yIHJ0PTEyMTQyMzMzNTEgcmc9d2l0emUKfiMhIHRpZD0xMjE0MjEwNjEzCldhcyBiZWRldXRldCBkYXMgZGFubiBmdWVyIGRpZSBLYXR6ZT8gCloKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IFJlbGlnaW9uc3dpc3NlbnNjaGFmdCAoQW15bnRob3IsIDIzLiBKdW4gMjAwOCwgMTc6MDQ6MzUpOgp+IyEgcm49Wm9vayBydD0xMjE0MjMzMzc5IHJnPXdpdHplCn4jISB0aWQ9MTIxNDIxMDYxMwpGcmVzc2VuPyA6LSkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBSZWxpZ2lvbnN3aXNzZW5zY2hhZnQgKEdsb2luc29uLCAyMy4gSnVuIDIwMDgsIDE3OjA0OjM5KToKfiMhIHJuPVpvb2sgcnQ9MTIxNDIzMzM3OSByZz13aXR6ZQp+IyEgdGlkPTEyMTQyMTA2MTMKRGFzcyBzaWUgd2VuaWdzdGVucyBuaWNodCB3ZWdnZXNjaHJvZWRlcnQgd3VyZGUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogUmVsaWdpb25zd2lzc2Vuc2NoYWZ0IChDcm9mdCwgMjMuIEp1biAyMDA4LCAxOToyMTo0Mik6Cn4jISBybj1HbG9pbnNvbiBydD0xMjE0MjMzNDc5IHJnPXdpdHplCn4jISB0aWQ9MTIxNDIxMDYxMwpTaWUgaGF0IGplbWFuZCB1bSBnZXN0cmVpY2hlbHQgenUgd2VyZGVuLiAgVW5kIGRhbmFjaCBrYW5uIGlociBqZW1hbmQgZGllCkRvc2UgYXVmbWFjaGVuLgoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1hbCB3aWVkZXIgenUgZmF1bCB6dW0gVWViZXJzZXR6ZW4gKEFudGhlYSwgMjcuIEp1biAyMDA4LCAxMDo1NjowNyk6CkEgUnVzc2lhbiB3b21hbiBtYXJyaWVkIGEgQ2FuYWRpYW4gZ2VudGxlbWFuIGFuZCB0aGV5IGxpdmVkIGhhcHBpbHkgZXZlciBhZnRlcgppbiBUb3JvbnRvLiBIb3dldmVyLCB0aGUgcG9vciBsYWR5IHdhcyBub3QgdmVyeSBwcm9maWNpZW50IGluIEVuZ2xpc2gsIGJ1dCBkaWQKbWFuYWdlIHRvIGNvbW11bmljYXRlIHdpdGggaGVyIGh1c2JhbmQuIFRoZSByZWFsIHByb2JsZW0gYXJvc2Ugd2hlbmV2ZXIgc2hlCmhhZCB0byBzaG9wIGZvciBncm9jZXJpZXMuCgpPbmUgZGF5LCBzaGUgd2VudCB0byB0aGUgYnV0Y2hlciBhbmQgd2FudGVkIHRvIGJ1eSBjaGlja2VuIGxlZ3MuIFNoZSBkaWRuJ3QKa25vdyBob3cgdG8gcHV0IGZvcndhcmQgaGVyIHJlcXVlc3QsIGFuZCBpbiBkZXNwZXJhdGlvbiwgY2x1Y2tlZCBsaWtlIGEKY2hpY2tlbiBhbmQgbGlmdGVkIHVwIGhlciBza2lydCB0byBzaG93IGhlciB0aGlnaHMuIEhlciBidXRjaGVyIGdvdCB0aGUKbWVzc2FnZSwgYW5kIGdhdmUgaGVyIHRoZSBjaGlja2VuIGxlZ3MuCgpOZXh0IGRheSBzaGUgbmVlZGVkIHRvIGdldCBjaGlja2VuIGJyZWFzdHMsIGFnYWluIHNoZSBkaWRuJ3Qga25vdyBob3cgdG8gc2F5Cml0LCBhbmQgc28gc2hlIGNsdWNrZWQgbGlrZSBhIGNoaWNrZW4gYW5kIHVuYnV0dG9uZWQgaGVyIGJsb3VzZSB0byBzaG93IHRoZQpidXRjaGVyIGhlciBicmVhc3RzLiBUaGUgYnV0Y2hlciB1bmRlcnN0b29kIGFnYWluLCBhbmQgZ2F2ZSBoZXIgc29tZSBjaGlja2VuCmJyZWFzdHMuCgpPbiB0aGUgdGhpcmQgZGF5LCB0aGUgcG9vciBsYWR5IG5lZWRlZCB0byBidXkgc2F1c2FnZXMuIFVuYWJsZSB0byBmaW5kIGEgd2F5CnRvIGNvbW11bmljYXRlIHRoaXMsIHNoZSBicm91Z2h0IGhlciBodXNiYW5kIHRvIHRoZSBzdG9yZS4uLgoKV2hhdCB3ZXJlIHlvdSB0aGlua2luZz8gSGVsbG9vb29vb28sIGhlciBodXNiYW5kIHNwZWFrcyBFbmdsaXNoIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQmFyIFdpdHogKFRob3JhaywgMjcuIEp1biAyMDA4LCAyMzoxOToxOSk6CktvbW10IGVpbiBNYW5uIG1pdCBuZW0gQWxsaWdhdG9yIHVudGVybSBBcm0gaW4gbmUgdm9sbGUgQmFyLiBFciBwZmxhbnp0CnNpY2ggYW4gZGVyIFRoZWtlIGF1ZiB1bmQgdmVya3VlbmRldDogIldlbm4gaWNoIGVzIHNjaGFmZmUsIG1laW4gYmVzdGVzClN0dWVjayBlaW5lIE1pbnV0ZSBpbiBkYXMgTWF1bCBkaWVzZXMgQWxsaWdhdG9ycyB6dSBsZWdlbiBvaG5lIHZlcmxldHp0Cnp1IHdlcmRlbiwgemFobHQgbWlyIGplZGVyIGVpbmVuIERyaW5rIi4KCkRpZSBHYWVzdGUgc2luZCBzY2huZWxsIGJlaSBkZXIgU2FjaGUgdW5kIHN0aW1tZW4genUuIEFsc28gcGFja3QgZGVyIFR5cAphdXMsIGxlZ3Qgc2VpbiBnZXNhbW10ZXMgR2VoYWVuZ2UgaW4gZGFzIE1hdWwgZGVzIFRpZXJlcyB1bmQga2xhcHB0CmVzIHp1LiBOYWNoIGVpbmVyIE1pbnV0ZSBuaW1tdCBlciBlaW5lIGluIGRlciBOYWVoZSBzdGVoZW5kZSBGbGFzY2hlIHVuZApoYXV0IHNpZSBkZW0gQWxsaWdhdG9yIG1pdCB2b2xsZXIgV3VjaHQgYXVmIGRlbiBLb3BmLiBEYXMgVGllciBvZWZmbmV0CnNvZm9ydCBzZWluZW4gS2llZmVyIHVuZCB1bnRlciBqdWJlbG5kZW0gQmVpZmFsbCB6aWVodCBkZXIgTWFubiBzZWluZQpKdXdlbGVuIHVudmVybGV0enQgaGVyYXVzLgoKQWxsZSB6YWhsZW4gaWhtIGVpbmVuIERyaW5rLgoKTmFjaCBlaW5pZ2VyIFplaXQgdW5kIHZpZWxlbiBEcmlua3Mgc3BhZXRlciBzY2hsYWVndCBlciBkZW4gR2Flc3Rlbgp2b3I6ICJBYWFsc28sIGljaCB6YWhsZSBqZWRlbSwgZGVyIGRhcyBhdWNoIGhpbmJla29tbXQgMTAwLC0uIFdlcgp0cmF1dCBzaWNoPyIKCk5hY2ggZWluaWdlbSB6b2VnZXJsaWNoZW4gU2Nod2VpZ2VuIG1lbGRldCBzaWNoIGplbWFuZCBpbiBkZXIgaGludGVyZW4KRWNrZS4gRXMgaXN0IGVpbmUgRnJhdS4KIk9rLCBpY2ggcHJvYmllcidzLCBhYmVyIHNpZSBtdWVzc2VuIG1pciB2ZXJzcHJlY2hlbiwgbWljaCBuaWNodCBtaXQKZGVyIEZsYXNjaGUgenUgc2NobGFnZW4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCYWxsZ3JvZXNzZSAoQW50aGVhLCAgNy4gSnVsIDIwMDgsIDEzOjAzOjI5KToKQWZ0ZXIgYSB0d28teWVhciBsb25nIHN0dWR5LCB0aGUgTmF0aW9uYWwgU2NpZW5jZSBGb3VuZGF0aW9uIGFubm91bmNlZCB0aGUKZm9sbG93aW5nIHJlc3VsdHMgb24gY29ycG9yYXRlIEFtZXJpY2EncyByZWNyZWF0aW9uIHByZWZlcmVuY2VzLgoxLiBUaGUgc3BvcnQgb2YgY2hvaWNlIGZvciB1bmVtcGxveWVkIG9yIGluY2FyY2VyYXRlZCBwZW9wbGUgaXM6IEJhc2tldGJhbGwKMi4gVGhlIHNwb3J0IG9mIGNob2ljZSBmb3IgbWFpbnRlbmFuY2UgbGV2ZWwgZW1wbG95ZWVzIGlzOiBCb3dsaW5nCjMuIFRoZSBzcG9ydCBvZiBjaG9pY2UgZm9yIGZyb250IGxpbmUgd29ya2VycyBpczogRm9vdGJhbGwKNC4gVGhlIHNwb3J0IG9mIGNob2ljZSBmb3Igc3VwZXJ2aXNvcnMgaXM6IEJhc2ViYWxsCjUuIFRoZSBzcG9ydCBvZiBjaG9pY2UgZm9yIG1pZGRsZSBtYW5hZ2VtZW50IGlzOiBUZW5uaXMKNi4gVGhlIHNwb3J0IG9mIGNob2ljZSBmb3IgY29ycG9yYXRlIG9mZmljZXJzIGlzOiBHb2xmCgpDb25jbHVzaW9uOgpUaGUgaGlnaGVyIHlvdSBhcmUgaW4gdGhlIGNvcnBvcmF0ZSBzdHJ1Y3R1cmUsIHRoZSBzbWFsbGVyIHlvdXIgYmFsbHMgYmVjb21lLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkt1bmliZXJ0IChBbnRoZWEsIDE3LiBKdWwgMjAwOCwgMTY6MTU6MjMpOgpVbmQgd2VpbCBnZXJhZGUgWmVpdCBpc3QsIGVpbiBIZWlueiBFcmhhcmR0CgpFcyB3YXIgZWlubWFsIGVpbiBhbHRlcyBTY2hsb3NzCnVuZCBLdW5pYmVydCwgc28gaGllc3MgZGVyIEJvc3MuCkVyIGhhdHRlIE1hZWdkZSwgaGF0dGUgS25lY2h0ZQp1bmQgZWluZSBGcmF1LS1kYXMgd2FyIGRhcyBTY2hsZWNodGUuCgpJaHIgTXVuZCB3YXIgYnJlaXQsIGlociBIYWxzIHdhciBsYW5nCnVuZCBlcyBrbGFuZyBzY2hldXNzbGljaCwgd2VubiBzaWUgc2FuZy4KRGEgemllbHRlIGVyIG1pdCBLb3JuIHVuZCBLaW1tZQp1bmQgV3V0IGF1ZiBzaWUgLS0gZGFzIHdhciBkYXMgU2NobGltbWUuCgpFcyBtYWNodGUgYnVtbS4gKE5hdHVlcmxpY2ggbGF1dGVyLikKRGFubiBmaWVsIHNpZSB1bS4gWnVtIEhpbW1lbCBzY2hhdXQgZXIKdW5kIHNwcmljaHQsIGRhcyBBdWdlIHZvbGwgR2V3YWVzc2VyOgoiVmllbGxlaWNodCBzaW5ndCBzaWUgZGEgb2JlbiBiZXNzZXIhIgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldoYXQgZG8geW91IGNhbGwuLi4gKEFudGhlYSwgMjUuIEp1bCAyMDA4LCAxNDoxMTo1Nik6CldoYXQgZG8geW91IGNhbGwgYSBtYW4gd2l0aG91dCBhcm1zIGFuZCBsZWdzIGluIHRoZSB3YXRlcj8KCkJvYi4KCldoYXQgZG8geW91IGNhbGwgYSBtYW4gd2l0aG91dCBhcm1zIGFuZCBsZWdzIHVuZGVyIHlvdXIgYmVkPwoKRHVzdHkuCgpXaGF0IGRvIHlvdSBjYWxsIGEgbWFuIHdpdGhvdXQgYXJtcyBhbmQgbGVncyBvbiB0aGUgd2FsbD8KCkFydC4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2hhdCBkbyB5b3UgY2FsbC4uLiAoUnVtYXRhLCAyNS4gSnVsIDIwMDgsIDE0OjU1OjU0KToKfiMhIHJuPUFudGhlYSBydD0xMjE2OTg3OTE2IHJnPXdpdHplCn4jISB0aWQ9MTIxNjk4NzkxNgpXYXMgYmVzdGVsbHQgbWFuIGltIFdpbnRlciBnZXJuZSBpbSBDYWZlPwpBbiB0aGVhIG1pdCBSdW0qKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXaGF0IGRvIHlvdSBjYWxsLi4uIChBbnRoZWEsIDI1LiBKdWwgMjAwOCwgMTU6MDA6MTkpOgp+IyEgcm49UnVtYXRhIHJ0PTEyMTY5OTA1NTQgcmc9d2l0emUKfiMhIHRpZD0xMjE2OTg3OTE2CkF1dHNjaC4gRGFzIHR1dCBhdWNoIHdlaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdoYXQgZG8geW91IGNhbGwuLi4gKFJ1bWF0YSwgMjUuIEp1bCAyMDA4LCAxNTowNDoxNCk6Cn4jISBybj1BbnRoZWEgcnQ9MTIxNjk5MDgxOSByZz13aXR6ZQp+IyEgdGlkPTEyMTY5ODc5MTYKSWNoIHdhZXJlamEgZ2VuZWlndCB6dSBzYWdlbiwgZGFzcyBkZXIgV2l0eiBIYW5kLSB1bmQgRnVzcyBoYXQuCkFiZXIgd2VubiBudXIgTml4ZW4gdW5kIEhhbGJiYWV1bWUgdm9ya29tbWVuIC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHJhbnNtaXNzaW9uIEVycm9yIChBbWFyeWxsaXMsIDE3LiBBdWcgMjAwOCwgMTU6NDg6MDgpOgpWaWVsbGVpY2h0IGhpZXIgc2Nob24gbWFsIGdlcG9zdGV0LCBhYmVyIGltbWVyIHdpZWRlciBuZXR0OgoKQSBuZXcgeW91bmcgbW9uayBhcnJpdmVzIGF0IHRoZSBtb25hc3RlcnkuIEhlIGlzIGFzc2lnbmVkIHRvIGhlbHAgdGhlCm90aGVyIG1vbmtzIGluIGNvcHlpbmcgdGhlIG9sZCBjYW5vbnMgYW5kIGxhd3Mgb2YgdGhlIGNodXJjaCBieSBoYW5kLiBIZQpub3RpY2VzLCBob3dldmVyLCB0aGF0IGFsbCBvZiB0aGUgbW9ua3MgYXJlIGNvcHlpbmcgZnJvbSBjb3BpZXMsIG5vdApmcm9tIHRoZSBvcmlnaW5hbCBtYW51c2NyaXB0LiBTbywgdGhlIG5ldyBtb25rIGdvZXMgdG8gdGhlIGFiYm90IHRvCnF1ZXN0aW9uIHRoaXMsIHBvaW50aW5nIG91dCB0aGF0IGlmIHNvbWVvbmUgbWFkZSBldmVuIGEgc21hbGwgZXJyb3IgaW4KdGhlIGZpcnN0IGNvcHksIGl0IHdvdWxkIG5ldmVyIGJlIHBpY2tlZCB1cC4gSW4gZmFjdCwgdGhhdCBlcnJvciB3b3VsZApiZSBjb250aW51ZWQgaW4gYWxsIG9mIHRoZSBzdWJzZXF1ZW50IGNvcGllcy4KClRoZSBBYmJvdCBzYXlzLCAiV2UgaGF2ZSBiZWVuIGNvcHlpbmcgZnJvbSB0aGUgY29waWVzIGZvciBjZW50dXJpZXMsICAgIApidXQgeW91IG1ha2UgYSBnb29kIHBvaW50LCBteSBzb24iLiBTbywgaGUgZ29lcyBkb3duIGludG8gdGhlIGRhcmsgICAgICAKY2F2ZXMgdW5kZXJuZWF0aCB0aGUgbW9uYXN0ZXJ5IHdoZXJlIHRoZSBvcmlnaW5hbCBtYW51c2NyaXB0IGlzIGhlbGQgICAgCmluIGEgbG9ja2VkIHZhdWx0IHRoYXQgaGFzbid0IGJlZW4gb3BlbmVkIGZvciBodW5kcmVkcyBvZiB5ZWFycy4gSG91cnMgIApnbyBieSBhbmQgbm9ib2R5IHNlZXMgdGhlIG9sZCBhYmJvdC4KCkV2ZW50dWFsbHkgdGhlIHlvdW5nIG1vbmsgZ2V0cyB3b3JyaWVkIGFuZCBnb2VzIGRvd25zdGFpcnMgdG8gbG9vayBmb3IgIApoaW0uIEhlIHNlZXMgaGltIGJhbmdpbmcgaGlzIGhlYWQgYWdhaW5zdCB0aGUgd2FsbC4gSGlzIGZvcmVoZWFkIGlzIGFsbCAKYmxvb2R5IGFuZCBicnVpc2VkIGFuZCBoZSBpcyBjcnlpbmcgdW5jb250cm9sbGFibHkuIFRoZSB5b3VuZyBtb25rIGFza3MgCnRoZSBvbGQgYWJib3QsICJXaGF0J3Mgd3JvbmcsIGZhdGhlcj8iICBJbiBhIGNob2tpbmcgdm9pY2UsIHRoZSBvbGQgICAgIAphYmJvdCByZXBsaWVzLCAiVGhlIHdvcmQgaXMgY2VsZWJyYXRlLCBub3QgY2VsaWJhdGUhIiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5JRE4gKEFudGhlYSwgMTguIEF1ZyAyMDA4LCAxMzo0MjowNSk6CkViZW4gZ2VmdW5kZW4gOgoKCgpQaXp6YW1hbm46ICJEYW5rZSwgZGFzcyBTaWUgUGl6emEgU2VydmljZSBhbmdlcnVmZW4gaGFiZW4uIEthbm4gaWNoIElocmUgLi4uIgoKS3VuZGU6ICJJY2ggbW9lY2hlIGV0d2FzIGJlc3RlbGxlbi4iCgpQOiAiS2FubiBpY2ggYml0dGUgZXJzdCBJaHJlIE5JRE4gaGFiZW4/IgoKSzogIk1laW5lIE5hdGlvbmFsZSBJRCBOdW1tZXIgZGllIGlzdCA2MTAyMDQ5OTk4LTQ1LTU0NjEwLiIKClA6ICJWaWVsZW4gRGFuay4gU2llIHdvaG5lbiBpbiBkZXIgUm9zZW5zdHJhc3NlIDI1IHVuZCBJaHJlIFRlbGVmb25udW1tZXIKbGF1dGV0IDMwIDU2OCAzNDUuIElocmUgRmlybWVubnVtbWVyIGlzdCA3NCA1MjMgMDMyIHVuZCBJaHJlIER1cmNod2FobCBpc3QKLTU2LiBWb24gd2VsY2hlbSBBbnNjaGx1c3MgYXVzIHJ1ZmVuIFNpZSBhbj8iCgpLOiAiSGFlPyBJY2ggYmluIHp1IEhhdXNlLiBXbyBoYWJlbiBTaWUgYWxsZSBkaWVzZSBJbmZvcm1hdGlvbmVuIGhlcj8iCgpQOiAiV2lyIHNpbmQgYW4gZGFzIFN5c3RlbSBhbmdlc2NobG9zc2VuLiIKCks6IChzZXVmenQpICJPaCwgbmF0dWVybGljaC4gSWNoIG1vZWNodGUgendlaSB2b24gSWhyZW4gU3BlemlhbC1QaXp6ZW4gbWl0CmJlc29uZGVycyB2aWVsIEZsZWlzY2ggYmVzdGVsbGVuLiIKClA6ICJJY2ggZ2xhdWJlIG5pY2h0LCBkYXNzIGRhcyBndXQgZnVlciBTaWUgaXN0LiIKCks6ICJXaWUgYml0dGU/PyEhIgoKUDogIkxhdXQgSWhyZXIgS3JhbmtlbmFrdGUgaGFiZW4gU2llIGVpbmVuIHp1IGhvaGVuIEJsdXRkcnVjayB1bmQgZXh0cmVtIGhvaGUKQ2hvbGVzdGVyaW53ZXJ0ZS4gSWhyZSBLcmFua2Vua2Fzc2Ugd3VlcmRlIGVpbmUgc29sY2hlIHVuZ2VzdW5kZSBBdXN3YWhsIG5pY2h0Cmdlc3RhdHRlbi4iCgpLOiAiVmVyZGFtbXQhIFdhcyBlbXBmZWhsZW4gU2llIGRlbm4/IgoKUDogIlNpZSBrb2VubnRlbiB1bnNlcmUgU29qYS1Kb2dodXJ0LVBpenphIG1pdCBnYW56IHdlbmlnIEZldHQgcHJvYmllcmVuLiBTaWUKd2lyZCBJaG5lbiBiZXN0aW1tdCBzY2htZWNrZW4uIgoKSzogIldpZSBrb21tZW4gU2llIGRhcmF1ZiwgZGFzcyBpY2ggZGFzIG1vZWdlbiBrb2VubnRlPyIKClA6ICJOdW4sIFNpZSBoYWJlbiBsZXR6dGUgV29jaGUgZGFzIEJ1Y2ggJ1NvamFyZXplcHRlIGZ1ZXIgRmVpbnNjaG1lY2tlcicgYXVzCmRlciBCdWVjaGVyZWkgYXVzZ2VsaWVoZW4uIERlc3dlZ2VuIGhhYmUgaWNoIElobmVuIGRpZXNlIFBpenphIGVtcGZvaGxlbi4iCgpLOiAiT2ssIG9rLiBHZWJlbiBTaWUgbWlyIHp3ZWkgZGF2b24gaW4gRmFtaWxpZW5ncm9lc3NlLiBXYXMga29zdGV0IGRlcgpTcGFzcz8iCgpQOiAiRGFzIHNvbGx0ZSBmdWVyIFNpZSwgSWhyZSBGcmF1IHVuZCBJaHJlIHZpZXIgS2luZGVyIHJlaWNoZW4uIERlciBTcGFzcywKd2llIFNpZSBlcyBuZW5uZW4sIGtvc3RldCA0NSBFdXJvLiIKCks6ICJJY2ggZ2ViZSBJaG5lbiBtZWluZSBLcmVkaXRrYXJ0ZW5udW1tZXIuIgoKUDogIkVzIHR1dCBtaXIgbGVpZCwgYWJlciBTaWUgd2VyZGVuIGJhciB6YWhsZW4gbXVlc3Nlbi4gRGVyIEtyZWRpdHJhaG1lbgpJaHJlciBLYXJ0ZSBpc3QgYmVyZWl0cyB1ZWJlcnpvZ2VuLiIKCks6ICJJY2ggbGF1ZmUgcnVudGVyIHp1bSBHZWxkYXV0b21hdGVuIHVuZCBob2xlIEJhcmdlbGQsIGJldm9yIElociBGYWhyZXIgaGllcgppc3QuIgoKUDogIkRhcyB3aXJkIHdvaGwgYXVjaCBuaWNodHMuIElociBHaXJva29udG8gaXN0IGF1Y2ggdWViZXJ6b2dlbi4iCgpLOiAiRWdhbC4gU2NoaWNrZW4gU2llIGVpbmZhY2ggZGllIFBpenphIGxvcy4gSWNoIHdlcmRlIGRhcyBHZWxkIGRhIGhhYmVuLiBXaWUKbGFuZ2Ugd2lyZCBlcyBkYXVlcm4/IgoKUDogIldpciBoYWVuZ2VuIGVpbiB3ZW5pZyBoaW50ZXJoZXIuIEVzIHdpcmQgZXR3YSA0NSBNaW51dGVuIGRhdWVybi4gV2VubiBTaWUKZXMgZWlsaWcgaGFiZW4sIGtvZW5uZW4gU2llIHNpZSBzZWxic3QgYWJob2xlbiwgd2VubiBTaWUgZGFzIEdlbGQgYmVzb3JnZW4sCm9id29obCBkZXIgVHJhbnNwb3J0IHZvbiBQaXp6YSBhdWYgZGVtIE1vdG9ycmFkIGltbWVyIGV0d2FzIHNjaHdpZXJpZyBpc3QuIgoKSzogIldvaGVyIHdpc3NlbiBTaWUsIGRhc3MgaWNoIE1vdG9ycmFkIGZhaHJlPyIKClA6ICJIaWVyIHN0ZWh0LCBkYXNzIFNpZSBtaXQgZGVuIFJhdGVuemFobHVuZ2VuIGZ1ZXIgSWhyZW4gV2FnZW4gaW0gUnVlY2tzdGFuZApzaW5kIHVuZCBpaG4genVydWVja2dlYmVuIG11c3N0ZW4uIEFiZXIgSWhyZSBIYXJsZXkgaXN0IGJlemFobHQsIGFsc28gbmVobWUKaWNoIGFuLCBkYXNzIFNpZSBkaWUgYmVudXR6ZW4uIgoKSzogIkAjJS8kQCY/IyEiCgpQOiAiQWNodGVuIFNpZSBsaWViZXIgZGFyYXVmLCB3YXMgU2llIHNhZ2VuLiBTaWUgaGFiZW4gc2ljaCBiZXJlaXRzIGltIEp1bGkKZWluZSBWZXJ1cnRlaWx1bmcgd2VnZW4gQmVhbXRlbmJlbGVpZGlndW5nIGVpbmdlZmFuZ2VuLiIKCks6IChzcHJhY2hsb3MpCgpQOiAiTW9lY2h0ZW4gU2llIG5vY2ggZXR3YXM/IgoKSzogIk5laW4sIGRhbmtlLiBPaCBkb2NoLCBiaXR0ZSB2ZXJnZXNzZW4gU2llIG5pY2h0LCBkaWUgYmVpZGVuIGtvc3Rlbmxvc2VuCkxpdGVyIENvbGEgZWluenVwYWNrZW4sIGRpZSBlcyBsYXV0IElocmVyIFdlcmJ1bmcgenUgZGVuIFBpenplbiBnaWJ0LiIKClA6ICJFcyB0dXQgbWlyIGxlaWQsIGFiZXIgZGllIEF1c3NjaGx1c3NrbGF1c2VsIHVuc2VyZXIgV2VyYnVuZyB2ZXJiaWV0ZXQgZXMKdW5zLCBrb3N0ZW5sb3NlIFNvZnRkcmlua3MgYW4gRGlhYmV0aWtlciBhdXN6dWdlYmVuLiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvbHVtZW4gKEFudGhlYSwgMTguIEF1ZyAyMDA4LCAxNTo0MzozNik6CldhcyBpc3QgZGFzIFZvbHVtZW4gZWluZXIgUGl6emEgbWl0IFJhZGl1cyB6IHVuZCBIb2VoZSBhPwpQaSp6KnoqYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFZvbHVtZW4gKERhbnUsIDE4LiBBdWcgMjAwOCwgMTU6NTE6NDUpOgp+IyEgcm49QW50aGVhIHJ0PTEyMTkwNjcwMTYgcmc9d2l0emUKfiMhIHRpZD0xMjE5MDY3MDE2CkhpbGZlLCBlaW5lIHZpZXJkaW1lbnNpb25hbGUgUGl6emEhCklociBtYWNodCBtaXIgQW5nc3QhCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWb2x1bWVuIChBbnRoZWEsIDE4LiBBdWcgMjAwOCwgMTU6NTI6MzYpOgp+IyEgcm49RGFudSBydD0xMjE5MDY3NTA1IHJnPXdpdHplCn4jISB0aWQ9MTIxOTA2NzAxNgpXbyBpc3QgZGVubiBkYSBkaWUgNC4gRGltZW5zaW9uPyBPZGVyIGVya2xhZXJzdCBEdSBtaXIsIHdpZSBpY2ggZ3JpZWNoaXNjaGUKU3ltYm9sZSB1bnRlciBBU0NJSSBoaW5rcmllZ2U/IE9obmUgQVNDSUktQVJUPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nod2VpemVyIEhleGVuc2NobGFtcGVuIChLZXNzYSwgMjMuIEF1ZyAyMDA4LCAxMDoxMTo0NCk6CkRpZXNlIEVuZ2xpc2NoLVVlYnVuZ2VuIGJla2FtIGljaCBlYmVuIHZvbiBlaW5lciBTdHVkZW50aW4gZ2VzY2hpY2t0OgoKMS4gQmVnaW5uZXJzOiBEcmVpIEhleGVuIHNjaGF1ZW4gc2ljaCBkcmVpIFN3YXRjaC1VaHJlbiBhbi4gV2VsY2hlIEhleGUgc2NoYXV0CnNpY2ggd2VsY2hlIFN3YXRjaC1VaHIgYW4/CgpUaHJlZSB3aXRjaGVzIHdhdGNoIHRocmVlIFN3YXRjaCB3YXRjaGVzLiBXaGljaCB3aXRjaCB3YXRjaGVzIHdoaWNoIFN3YXRjaAp3YXRjaD8KCjIuIEFkdmFuY2VkOiBEcmVpIGdlc2NobGVjaHRzdW1nZXdhbmRlbHRlIEhleGVuIHNjaGF1ZW4gc2ljaCBkcmVpClN3YXRjaC1VaHJlbmtub2VwZmUgYW4uIFdlbGNoZSBnZXNjaGxlY2h0c3VtZ2V3YW5kZWx0ZSBIZXhlIHNjaGF1dCBzaWNoCndlbGNoZW4gU3dhdGNoLVVocmVua25vcGYgYW4/CgpUaHJlZSBzd2l0Y2hlZCB3aXRjaGVzIHdhdGNoIHRocmVlIFN3YXRjaCB3YXRjaCBzd2l0Y2hlcy4gV2hpY2ggc3dpdGNoZWQgd2l0Y2gKd2F0Y2hlcyB3aGljaCBTd2F0Y2ggd2F0Y2ggc3dpdGNoPyAKCjMuIFByb2ZpY2llbnQ6IERyZWkgU2Nod2VpemVyIEhleGVuc2NobGFtcGVuLCBkaWUgc2ljaCB3dWVuc2NoZW4sCmdlc2NobGVjaHRzdW1nZXdhbmRlbHQgenUgc2Vpbiwgd3VlbnNjaGVuIHNpY2gsIHNpY2ggZHJlaSBTY2h3ZWl6ZXIKU3dhdGNoLVVocmVua25vZXBmZSBhbnp1c2NoYXVlbi4gV2VsY2hlIFNjaHdlaXplciBIZXhlbnNjaGxhbXBlLCBkaWUgc2ljaAp3dWVuc2NodCwgZ2VzY2hsZWNodHN1bWdld2FuZGVsdCB6dSBzZWluLCB3dWVuc2NodCBzaWNoLCBzaWNoIHdlbGNoZW4KU2Nod2VpemVyIFN3YXRjaC1VaHJlbmtub3BmIGFuenVzY2hhdWVuPwoKVGhyZWUgU3dpc3Mgd2l0Y2gtYml0Y2hlcyB3aGljaCB3aXNoIHRvIGJlIHN3aXRjaGVkIFN3aXNzIHdpdGNoLWJpdGNoZXMgd2lzaAp0byB3YXRjaCB0aHJlZSBTd2lzcyBTd2F0Y2ggd2F0Y2ggc3dpdGNoZXMuIFdoaWNoIFN3aXNzIHdpdGNoLWJpdGNoIHdoaWNoCndpc2hlcyB0byBiZSBhIHN3aXRjaGVkIFN3aXNzIHdpdGNoLWJpdGNoIHdpc2hlcyB0byB3YXRjaCB3aGljaCBTd2lzcyBTd2F0Y2gKd2F0Y2ggc3dpdGNoPyAKCi4uLnVuZCBqZXR6dCBkaWUgWnVuZ2Ugd2llZGVyIGVudGtub3RlbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRlYWxlcjwtPlNvZnR3YXJlIGRldmVsb3BlciAoQW50aGVhLCAxNS4gU2VwIDIwMDgsIDEyOjMwOjIzKToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIApEcnVnZGVhbGVycyAgICAgICAgICAgICAgICAgICAgICBTb2Z0d2FyZSBkZXZlbG9wZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKUmVmZXIgdG8gdGhlaXIgY2xpZW50cyAgICAgICAgICAgUmVmZXIgdG8gdGhlaXIgY2xpZW50cwphcyAidXNlcnMiLiAgICAgICAgICAgICAgICAgICAgICBhcyAidXNlcnMiLgoKIlRoZSBmaXJzdCBvbmUncyBmcmVlISIgICAgICAgICAgIkRvd25sb2FkIGEgZnJlZSB0cmlhbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLi4uIgoKSGF2ZSBpbXBvcnRhbnQgU291dGgtRWFzdCAgICAgICAgSGF2ZSBpbXBvcnRhbnQgU291dGgtRWFzdApBc2lhbiBjb25uZWN0aW9ucyAgICAgICAgICAgICAgICBBc2lhbiBjb25uZWN0aW9ucwoodG8gaGVscCBtb3ZlIHRoZSBzdHVmZikuICAgICAgICAodG8gaGVscCBkZWJ1ZyB0aGUgY29kZSkuCgpTdHJhbmdlIGphcmdvbjogICAgICAgICAgICAgICAgICBTdHJhbmdlIGphcmdvbjoKIlN0aWNrIiAgICAgICAgICAgICAgICAgICAgICAgICAgIlNDU0kiCiJSb2NrIiAgICAgICAgICAgICAgICAgICAgICAgICAgICJSVEZNIgoiV3JhcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFja2V0IgoiRSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQyIKIlN0YXNoIiAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhY2hlIgoiRHJpdmUgYnkiICAgICAgICAgICAgICAgICAgICAgICAiQ1RSTCBBTFQgREVMIgoiSGl0IChMU0QpIiAgICAgICAgICAgICAgICAgICAgICAiSGl0IChXV1cpIgoiU291cmNlIiAgICAgICAgICAgICAgICAgICAgICAgICAiU291cmNlLWNvZGUiCiJUaGUgUGlncyIgICAgICAgICAgICAgICAgICAgICAgICJNaWNyb3NvZnQiCgpSZWFsaXplIHRoYXQgdGhlcmUncyAgICAgICAgICAgICBSZWFsaXplIHRoYXQgdGhlcmUncwp0b25zIG9mIGNhc2ggaW4gdGhlICAgICAgICAgICAgICB0b25zIG9mIGNhc2ggaW4gdGhlCjE0LSB0byAyNS15ZWFyLW9sZCAgICAgICAgICAgICAgIDE0LSB0byAyNS15ZWFyLW9sZAptYXJrZXQuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXQuCgpZb3VyIGNsaWVudHMgcmVhbGx5IGxpa2UgeW91ciAgICBZb3VyIGNsaWVudHMgcmVhbGx5IGxpa2UgeW91cgpzdHVmZiB3aGVuIGl0IHdvcmtzLiBXaGVuIGl0ICAgICBzdHVmZiB3aGVuIGl0IHdvcmtzLiBXaGVuIGl0CmRvZXNuJ3Qgd29yayB0aGV5IHdhbnQgdG8ga2lsbCAgIGRvZXNuJ3Qgd29yayB0aGV5IHdhbnQgdG8ga2lsbAp5b3UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5b3UuCgpKb2IgaXMgYXNzaXN0ZWQgYnkgdGhlICAgICAgICAgICBKb2IgaXMgYXNzaXN0ZWQgYnkgdGhlCmluZHVzdHJ5IHByb2R1Y2luZyAgICAgICAgICAgICAgIGluZHVzdHJ5IHByb2R1Y2luZwpuZXdlciwgbW9yZSBwb3RlbnQgcHJvZHVjdC4gICAgICBuZXdlciwgbW9yZSBwb3RlbnQgcHJvZHVjdHMuCgpPZnRlbiBzZWVuIGluIHRoZSBjb21wYW55ICAgICAgICBPZnRlbiBzZWVuIGluIHRoZSBjb21wYW55IG9mCm9mIHBpbXBzLCBodXN0bGVycyAgICAgICAgICAgICAgIG1hcmtldGluZyBwZW9wbGUsIHZlbnR1cmUKYW5kIGxvd2xpdmVzICAgICAgICAgICAgICAgICAgICAgY2FwaXRhbGlzdHMgYW5kIGZ1bmQgbWFuYWdlcnMuCgpXaGVuIHRoaW5ncyBnbyB3cm9uZywgYSAgICAgICAgICBXaGVuIHRoaW5ncyBnbyB3cm9uZywgYQoiZml4IiBpcyBqdXN0IGEgcGhvbmUgY2FsbCAgICAgICAiZml4IiBpcyBqdXN0IGEgcGhvbmUgY2FsbAphd2F5IGJ1dCBtYXkgYmUgZXhwZW5zaXZlICAgICAgICBhd2F5IGJ1dCBtYXkgYmUgZXhwZW5zaXZlCgpBIGxvdCBvZiBzdWNjZXNzZnVsIHBlb3BsZSAgICAgICBBIGxvdCBvZiBzdWNjZXNzZnVsIHBlb3BsZQpnZXR0aW5nIHJpY2ggaW4gdGhpcyBpbmR1c3RyeSAgICBnZXR0aW5nIHJpY2ggaW4gdGhpcyBpbmR1c3RyeQp3aGlsZSBzdGlsbCB0ZWVuYWdlcnMgICAgICAgICAgICB3aGlsZSBzdGlsbCB0ZWVuYWdlcnMKClRoZWlyIHByb2R1Y3QgY2F1c2VzICAgICAgICAgICAgIERPT00uIFF1YWtlLiBTaW1DaXR5Lgp1bmhlYWx0aHkgYWRkaWN0aW9ucy4gICAgICAgICAgICBEdWtlIE51a2VtIDNELiAgJ051ZmYgc2FpZC4KCgpEbyB5b3VyIGpvYiB3ZWxsLCBhbmQgICAgICAgICAgICBEYW1uISBEYW1uISBEQU1OISEhCnlvdSBjYW4gc2xlZXAgd2l0aApzZXh5IG1vdmllIHN0YXJzIHdobwpkZXBlbmQgb24geW91LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyd2VpdGVydGVyIEt1ZWhsc2NocmFuayAoQW50aGVhLCAxNi4gU2VwIDIwMDgsIDExOjM3OjQxKToKRXR3YXMgZXJ3ZWl0ZXJ0ZSBLdWVobHNjaHJhbmstRnJhZ2UKCkZyYWdlOiBXaWUga3JpZWd0IG1hbiBlaW4gTmFzaG9ybiBpbiBkZW4gS3VlaGxzY2hyYW5rPwoKQW50d29ydDogS3VlaGxzY2hyYW5rIGF1ZiwgTmFzaG9ybiByZWluLCBLdWVobHNjaHJhbmsgenUuCgpGcmFnZTogV2llIGtyaWVndCBtYW4gZWluZW4gRWxmYW50ZW4gaW4gZGVuIEt1ZWhsc2NocmFuaz8KCkFudHdvcnQ6IEt1ZWhsc2NocmFuayBhdWYsIE5hc2hvcm4gcmF1cywgRWxlZmFudCByZWluLCBLdWVobHNjaHJhbmsgenUuCgpGcmFnZTogRGVyIEtvZW5pZyBkZXIgVGllcmUsIGRlciBMb2V3ZSwgbGFlZHQgYWxsZSBUaWVyZSBhdWYgZWluZSBncm9zc2UKS29uZmVyZW56IGVpbi4gQWxsZSBrb21tZW4sIGJpcyBhdWYgZWluZXMuIFdlbGNoZXM/CgpBbnR3b3J0OiBEZXIgRWxlZmFudC4gRGVyIGlzdCBpbW1lciBub2NoIGltIEt1ZWhsc2NocmFuay4KCkZyYWdlOiBEdSBrb21tc3QgYW4gZWluZW4gRmx1c3MsIGRlciB2b24gdmllbGVuIEtyb2tvZGlsZW4gYmV3b2hudCB3aXJkLiBXaWUKa29tbXN0IER1IHNpY2hlciBoZXJ1ZWJlcj8KCkFudHdvcnQ6IEVpbmZhY2ggc2Nod2ltbWVuLiBEaWUgS3Jva29kaWxlIHNpbmQgYWxsZSBhdWYgZGVyIEtvbmZlcmVueiBkZXMKTG9ld2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzdGF1c2NocHJvZ3JhbW0gKEFudGhlYSwgMTYuIFNlcCAyMDA4LCAxMzowNjo1MSk6CkJlaSBkZXIgRmlybWEgU2llbWVucyB3aXJkIGVpbiBBdXN0YXVzY2hwcm9ncmFtbSBnZXN0YXJ0ZXQuIEVzIHdlcmRlbiA0CkluZ2llbmV1cmUgZ2VnZW4gNCBLYW5uaWJhbGVuIGF1c2dldGF1c2NodC4gQmVpIGRlciBCZWdydWVzc3VuZyBkZXIgS2FubmliYWxlbgpzYWd0IGRlciBDaGVmOiAiIElociBrb2VubnQgamV0enQgaGllcgphcmJlaXRlbiwgdmVyZGllbnQgZ3V0ZXMgR2VsZCB1bmQgd2VyZGV0IHZvbiB1bnMgdmVya29lc3RpZ3QuIEFsc28gbGFzc3QgZGllCmFuZGVyZW4gTWl0YXJiZWl0ZXIgaW4gUnVoZS4iCgpEaWUgS2FubmliYWxlbiBnZWxvYmVuIGtlaW5lIEtvbGxlZ2VuIHp1IGJlbGFlc3RpZ2VuLiBOYWNoIHZpZXIgV29jaGVuIGtvbW10CmRlciBDaGVmIHdpZWRlciB1bmQgc2FndDogIklociBhcmJlaXRldCBzZWhyIGd1dC4gTnVyIHVucyBmZWhsdCBlaW5lIFB1dHpmcmF1LAp3aXNzdCBJaHIgd2FzIGF1cyBkZXIgZ2V3b3JkZW4gaXN0PyIKCkRpZSBLYW5uaWJhbGVuIGFudHdvcnRlbiBhbGxlIG1pdCBuZWluIHVuZCBzY2h3b2VyZW4gbWl0IGRlciBTYWNoZSBuaWNodHMgenUKdHVuIGhhYmVuLiBBbHMgZGVyIFNpZW1lbnNjaGVmIHdpZWRlciB3ZWcgaXN0IGZyYWd0IGRlciBCb3NzIGRlciBLYW5uaWJhbGVuOiAKIldlciB2b24gRXVjaCBBZmZlbiBoYXQgZGllIFB1dHpmcmF1IGdlZnJlc3Nlbj8iCgpNZWxkZXQgc2ljaCBoaW50ZW4gZGVyIGxldHp0ZSBnYW56IGtsZWlubGF1dDogIkljaCB3YXIgZXMuIgoKU2FndCBkZXIgS2FuaWJhbGVuYm9zczogICJEdSBJZGlvdCwgd2lyIGVybmFlaHJlbiB1bnMgc2VpdCB2aWVyIFdvY2hlbiB2b24KS2F1ZmxldXRlbiB1bmQgQ29udHJvbGxlcm4sIGRhbWl0IG5pZW1lbmQgZXR3YXMgbWVya3QuIFVuZCBEdSBEZXBwIG11c3N0IGVpbmUKUHV0emZyYXUgZnJlc3Nlbi4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmxpZWdlcmFuc2FnZW4gKEdsb2luc29uLCAxOS4gU2VwIDIwMDgsIDE3OjI5OjAzKToKRmx1ZyB2b24gTXxuY2hlbiBuYWNoIEJlcmxpbiwgQW5zYWdlIGRlciBDcmV3OiAiV2lyIHdlaXNlbiBkYXJhdWYgaGluLCBkYXMgZXMKc2ljaCB1bSBlaW5lbiBOaWNodHJhdWNoZXJmbHVnIGhhbmRlbHQsIGZ8ciBkaWUgUmF1Y2hlciB1bnRlciBpaG5lbiBmZm5lbiB3aXIKbmFjaGhlciB1bnNlcmUgVGVycmFzc2VuIGxpbmtzIHVuZCByZWNodHMgdW5kIHplaWdlbiBkb3J0IGRlbiBGaWxtICdWb20gV2luZGUKdmVyd2VodC4nIgoKYXVzIGh0dHA6Ly93d3cuc3BpZWdlbC5kZS9yZWlzZS9ha3R1ZWxsLzAsMTUxOCw1NzkxMDctNSwwMC5odG1sCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFBpbG90ZW4gU2NobmFjayBUZWlsIFggKEdsb2luc29uLCAxNS4gT2t0IDIwMDgsIDE2OjI4OjQ3KToKfiMhIHJuPUdsb2luc29uIHJ0PTEyMjQwODA3MDYgcmc9d3d3Cn4jISB0aWQ9MTIyNDA4MDcwNgpIYXQgSHVtbmkgZWluZW4gRmx1Z3NjaGVpbj8KCkF1ZiBlaW5lbSBGbHVnIHZvbiBCdWRhcGVzdCBuYWNoIEZyYW5rZnVydCBzcHJhY2ggZGVyIEthcGl0YWVuIG51ciBpbiBSZWltZW4uCk5hY2ggZGVtIEJvYXJkaW5nIHNhZ3RlIGVyOiAiRGEgbnVuIGFsbGUgc2luZCBhbiBCb3JkLCBmbGllZ2VuIHdpciBuYWNoCkZyYW5rZnVydCBmb3J0LiBOdW4gbWFjaGV0IGFsbGUgTHVrZW4gZGljaHQsIHZlcmdlc3NldCBtaXIgZGllIFRyZXBwZSBuaWNodC4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQW5sYWdlbW9lZ2xpY2hrZWl0ZW4gKEFudGhlYSwgMjcuIE5vdiAyMDA4LCAxMDowMTowMCk6CldlciB2b3IgMTggTW9uYXRlbiAxLjE1OCw0OCBFdXJvIGluIGRpZSBBa3RpZW4gZGVyIENvbW1lcnpiYW5rIGludmVzdGllcnQgaGF0LAptdXNzdGUgc2ljaAoKICAgICogMTggTW9uYXRlIGxhbmcgdWViZXIgZmFsbGVuZGUgS3Vyc2UgYWVyZ2VybiB1bmQKICAgICogaGF0IGhldXRlIG5vY2ggMjE1LDI4IEV1cm8gdWVicmlnLgoKV2VyIHZvciAxOCBNb25hdGVuIDEuMTU4LDQ4IEV1cm8gaW4gS3JvbWJhY2hlciBCaWVyIGludmVzdGllcnQgaGF0LCBrb25udGU6CgogICAgKiAxOCBNb25hdGUgbGFuZyBqZWRlIFdvY2hlIGVpbmVuIEthc3RlbiBoZXJybGljaGVzIFBpbHMgZ2VuaWVzc2VuLAogICAgKiB3YXIgc3RhZW5kaWcgaGVpdGVyLAogICAgKiBoYXR0ZSB2aWVsIFNwYXNzLAogICAgKiBoYXQgZGVuIFJlZ2Vud2FsZCBnZXJldHRldCB1bmQKICAgICogaGF0IGhldXRlIG5vY2ggLi4uCgouLi4gTGVlcmd1dCBpbSBXZXJ0IDIyMywyMCBFdXJvIQoKUHJvc3QhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZW5rYW5zdG9lc3NlIChBbnRoZWEsIDEwLiBEZXogMjAwOCwgMTM6MDk6MTIpOgpPYiBzaWNoIHdvaGwgZGVyIFNjaGxpdHRlbiB2b20gV2VpaG5hY2h0c21hbm4gcmVudGllcnQ/CgpXZW5uIGRpZSBTdGlmdHVuZyBXYXJlbnRlc3QgVmlicmF0b3JlbiB0ZXN0ZXQsIGlzdCBkYW5uIGJlZnJpZWRpZ2VuZCBiZXNzZXIKYWxzIGd1dD8KCldpZSBzb2xsIHNpY2ggZGVyIEJhdWVyIHZlcmhhbHRlbiwgd2VubiBzZWluZSBGcmF1IHNhZ3Q6IFNpZWggenUsIGRhc3MgZHUgTGFuZApnZXdpbm5zdCEhCgpCZWFudHdvcnRldCBkaWUgZ3Jvc3NlIEtlcnplIGRpZSBGcmFnZSBkZXIga2xlaW5lbiBLZXJ6ZSwgb2IgRHVyY2h6dWcKZ2VmYWVocmxpY2ggc2VpLCBtaXQgZGVuIFdvcnRlbjogRGF2b24ga2FubnN0IGR1IGF1c2dlaGVuPwoKSXN0IGVpbiBmcmVpZXIgUGxhdHogendpc2NoZW4gendlaSBTdGFlbmRlbiBhdWYgZGVtIFdlaWhuYWNodHNtYXJrdCBlaWdlbnRsaWNoCmVpbmUgTWFya3RsdWVja2U/CgpMb2hudCBlcyBzaWNoIGZ1ZXIgRWludGFnc2ZsaWVnZW4sIG1vcmdlbnMgZWluIFRhZ2VidWNoIGFuenVmYW5nZW4/CgpXZW5uIGVpbiBTY2hhZWZlciBzZWluZSBTY2hhZmUgdmVyaGF1dCwgaXN0IGVyIGRhbm4gZWluIE1hZWhkcmVzY2hlcj8KCldhcnVtIGlzdCBlaW5zaWxiaWcgZHJlaXNpbGJpZz8KCldhcnVtIGdpYnQgZXMga2VpbiBhbmRlcmVzIFdvcnQgZnVlciBTeW5vbnltPwoKV2FzIHBhc3NpZXJ0LCB3ZW5uIG1hbiBzaWNoIHp3ZWltYWwgaGFsYnRvdCBnZWxhY2h0IGhhdD8KCldlciBoYXR0ZSBibG9zcyBkaWUgSWRlZSwgZWluIC5zLiBpbiBkYXMgV29ydCAibGlzcGVsbiIgenUgc3RlY2tlbj8KCldhcyBpc3QgYmVzc2VyOiBkcmVpIFZpZXJrb3JuYnJvZXRjaGVuIG9kZXIgdmllciBEcmVpa29ybmJyb2V0Y2hlbj8KCk1hY2h0IG1hbiBkZW4gTWVlcmVzc3BpZWdlbCBrYXB1dHQsIHdlbm4gbWFuIGluIFNlZSBzdGljaHQ/CgpXYXMgbWFjaGVuIGRpZSBGYWhyZXIgdm9uIEF1dG9tYXRpa3dhZ2VuIGluIGVpbmVtIFNjaGFsdGphaHI/CgpLb2VubmVuIHNpY2ggRWx0ZXJuLCBkaWUgc2ljaCBtaXQgaWhyZXIgVG9jaHRlciB2ZXJrcmFjaHQgaGFiZW4sIHVlYmVyaGF1cHQKaXJnZW5kd2FubiBtaXQgaWhyIGF1c3NvZWhuZW4/CgpEdWVyZmVuIFp3ZXJnZSBhdWYgZGVtIFJpZXNlbnJhZCBtaXRmYWhyZW4/CgpIZWlzc2VuIFRlaWd3YXJlbiBkZXN3ZWdlbiBUZWlnd2FyZW4sIHdlaWwgc2llIHZvcmhlciBUZWlnIHdhcmVuPwoKS2FubiBtYW4gc2ljaCBkZW4gQXJ6dGJlc3VjaCBzcGFyZW4sIHdlbm4gbWFuIHNjaG9uIGluIGRlciBUZWxlZm9uemVudHJhbGUKdmVyYnVuZGVuIHdpcmQ/CgpEYXJmIG1hbiBpbiBlaW5lbSBXZWlua2VsbGVyIGF1Y2ggbWFsIGxhY2hlbj8KCk1hY2h0IHZpZXIgcGx1cyB2aWVyIHNpZWJlbiB3ZW5uIG1hbiBuaWNodCBhY2h0IGdpYnQ/CgpXbyBrcmllZ3QgbWFuIGRpZSBHZXRyYWVua2UsIGRpZSBpbSBXYWxkIGRpZSBUYW5uZW4gemFwZmVuPwoKV2VubiBpY2ggYW0gU3RyYW5kIGVpbmUgc2Nob2VuZSBGcmF1IGFuc3ByZWNoZSAtIGRpZSBkYXMgYWJlciBkb29mIGZpbmRldCAtCmtyaWVnIGljaCBkYW5uIGVpbmVuIFN0cmFuZGtvcmI/CgpXYXJ1bSBnbGF1YmVuIGVpbmVtIGRpZSBMZXV0ZSBzb2ZvcnQsIHdlbm4gbWFuIGlobmVuIHNhZ3QsIGRhc3MgZXMgYW0gSGltbWVsCjQwMCBNaWxsaWFyZGVuIFN0ZXJuZSBnaWJ0LCBhYmVyIHdlbm4gbWFuIGlobmVuIHNhZ3QsIGRhc3MgZGllIEJhbmsgZGEgZnJpc2NoCmdlc3RyaWNoZW4gaXN0LCBkYW5uIG11ZXNzZW4gc2llIGRyYXVmcGF0c2NoZW4/CgpLb2VubmVuIFN0YW1tZ2Flc3RlIHVlYmVyaGF1cHQgYXVmIGVpbmVuIGdydWVuZW4gWndlaWcga29tbWVuPwoKV2VsY2hlcyBTaGFtcG9vIGhpbGZ0IGdlZ2VuIE5pa29sYWV1c2U/CgpMZWlkZW4gQmFlY2tlciB1bnRlciBBYnNjaGllZHNzY2htZXJ6LCB3ZW5uIHNpZSBqZWRlbiBtb3JnZW4gZWluZW4gSGVmZXRlaWcKZ2VoZW4gbGFzc2VuIG11ZXNzZW4/CgpXaWVzbyBwYXNzaWVydCBpbW1lciBnZW5hdSBzbyB2aWVsLCB3aWUgaW4gZGllIFplaXR1bmcgcGFzc3Q/CgpLb21tZW4ga2xlaW5lIExldXRlIG5hY2ggZWluZXIgU3RldWVyZXJob2VodW5nIGVpZ2VudGxpY2ggbm9jaCBhbiBpaHIgTGVua3JhZD8KCktvZW5uZW4gR2xhdHprb2VwZmUgYXVjaCBtYWwgZWluZSBHbHVlY2tzc3RyYWVobmUgaGFiZW4/CgpNdXNzIGF1ZiBTY2hpZmZlbiBkZXIgT2ZlbiwgaW4gZGVtIGRpZSBCcm9ldGNoZW4gZ2ViYWNrZW4gd2VyZGVuIGltbWVyIGxpbmtzCnN0ZWhlbiwgYmxvc3Mgd2VpbCBkYSBCYWNrYm9yZCBpc3Q/CgpLYW5uIGVpbmVtIHVlYmVyaGF1cHQgZXR3YXMgcGFzc2llcmVuLCB3ZW5uIGFtIEF1dG8gZGllIEJyZW1zZW4gdmVyc2FnZW4sIG1hbgphYmVyIGVpbmVuIEFuaGFsdGVyIGltIFdhZ2VuIGhhdD8KCktvZW5udGUgbWFuIHNpY2ggbmljaHQgZGFzIFZlcmJhbmRzemV1ZyBzcGFyZW4sIHdlbm4gbWFuIHNpY2ggZGFzIEtuaWUgZ2xlaWNoCmFuIFBmbGFzdGVyc3RlaW5lbiBhdWZzY2hsYWVndD8KCkF1cyB3ZWxjaGVtIE1hdGVyaWFsIGlzdCBlaW5lIEhvbHotRWlzZW5iYWhuPwoKRGFyZiBtYW4gbWl0IGVpbmVtIEt1Z2Vsc2NocmVpYmVyIGF1Y2ggV3VlcmZlbCBvZGVyIFB5cmFtaWRlIHNjaHJlaWJlbj8KCklzdCBlaW4gS2VrcywgZGVyIHVudGVyIGVpbmVtIEJhdW0gbGllZ3QsIG5pY2h0IGVpbiB3dW5kZXJiYXJlcyBzY2hhdHRpZ2VzClBsYWV0emNoZW4/CgpXaXJkIGRhcyBJbnRlcm5ldCBlaWdlbnRsaWNoIGxlaWNodGVyLCB3ZW5uIG1hbiBzaWNoIGRhIHdhcyBydW50ZXJsYWVkdD8hCgpJc3QgZXMgYmVkZW5rbGljaCwgd2VubiBpbSBQYXJrIGVpbiBHb2V0aGUtRGVua21hbCBkdXJjaCBkaWUgQmFldW1lCnNjaGlsbGVydD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBEZW5rYW5zdG9lc3NlIChSdW1hdGEsIDEwLiBEZXogMjAwOCwgMTM6MTM6NTcpOgp+IyEgcm49QW50aGVhIHJ0PTEyMjg5MTA5NTIgcmc9d2l0emUKfiMhIHRpZD0xMjI4OTEwOTUyCkRhIGZlaGx0IHdhczogV2VubiBlcyBpbSBGbHVnemV1ZyBmdWVyIGplZGVuIFBhc3NhZ2llciBlaW5lIFNjaHdpbW13ZXN0ZSBnaWJ0LAp3aWVzbyBnaWJ0IGVzIGF1ZiBLcmV1emZhaHJ0c2NoaWZmZW4gZGFubiBrZWluZSBGYWxsc2NoaXJtZT8gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERlbmthbnN0b2Vzc2UgKEdub21lLCAxMC4gRGV6IDIwMDgsIDIzOjUwOjI1KToKfiMhIHJuPVJ1bWF0YSBydD0xMjI4OTExMjM3IHJnPXdpdHplCn4jISB0aWQ9MTIyODkxMDk1MgpkYSBmZWhsdCBub2NoIG1laHI6CndhcyBoYWJlbiBzY2htZXR0ZXJsaW5nZSBpbSBiYXVjaCwgd2VubiBzaWUgdmVybGllYnQgc2luZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IERlbmthbnN0b2Vzc2UgKFJ1bWF0YSwgMTEuIERleiAyMDA4LCAxMTo1OToyOSk6Cn4jISBybj1Hbm9tZSBydD0xMjI4OTQ5NDI1IHJnPXdpdHplCn4jISB0aWQ9MTIyODkxMDk1MgpmbHVnemV1Z2UhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBEZW5rYW5zdG9lc3NlIChIZXJtaW9kLCAyOC4gRGV6IDIwMDgsIDE2OjE5OjUyKToKfiMhIHJuPVJ1bWF0YSBydD0xMjI4OTkzMTY5IHJnPXdpdHplCn4jISB0aWQ9MTIyODkxMDk1MgpEZXMgd2VpdGVyZW46Cldlc2VudGxpY2ggbGVpY2h0ZXIgbXVzcyBlcyBudW4gbmFjaCBkZXIgRXJmaW5kdW5nIGRlciBEVkQgc2VpbiwgZWluZW4gRmlsbSB6dQpkcmVoZW4uCkxhZXNzdCBtYW4gZWluZW4gZmFocmVuLCB3aWVzbyBzdGVodCBlciBkYW5uIGltIFJhdW0/Ckthbm4gZXMgZWluZW0gYmxlbmRlbmQgZ2VoZW4sIHNpZWh0IG1hbiBkdXJjaCBkaWUgcm9zYXJvdGUgQnJpbGxlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKS3Jva29kaWxlIChBbnRoZWEsIDI2LiBKYW4gMjAwOSwgMTQ6NDY6MzApOgpXYXMgZnJlc3NlbiBlaWdlbnRsaWNoIEtyb2tvZGlsZT8KCk5hLCBpc3QgZG9jaCBrbGFyOiBTZWlkZSEKClVuZCB3b2hlciB3ZWlzcyBtYW4gZGFzPwoKTmV1bGljaCBoYWIgaWNoIGltIEthdWZoYXVzIEhhbmR0YXNjaGVuIGdlc2VoZW4uIERhcmF1ZiBzdGFuZDogIktyb2tvZGlsbGVkZXIsCm1pdCBTZWlkZSBnZWZ1ZXR0ZXJ0LiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFtZXJpa2FuZXIgLi4uIChYdXRlbGl1cywgIDMuIEZlYiAyMDA5LCAxMTozMDozMyk6CkFuIG9sZCBtYW4gYXBwcm9hY2hlZCB0aGUgV2hpdGUgSG91c2UgaW4gV2FzaGluZ3RvbiBELkMuIGZyb20gYWNyb3NzClBlbm5zeWx2YW5pYSBBdmVudWUsIHdoZXJlIGhlJ2QgYmVlbiBzaXR0aW5nIG9uIGEgcGFyayBiZW5jaC4KCkhlIHNwb2tlIHRvIHRoZSBVLlMuIE1hcmluZSBzdGFuZGluZyBndWFyZCBhbmQgc2FpZCwgIkkgd291bGQgbGlrZSB0byBnbyBpbgphbmQgbWVldCB3aXRoIFByZXNpZGVudCBCdXNoLiIKClRoZSBNYXJpbmUgbG9va2VkIGF0IHRoZSBtYW4gYW5kIHNhaWQsICJTaXIsIE1yLiBCdXNoIGlzIG5vIGxvbmdlciBwcmVzaWRlbnQKYW5kIG5vIGxvbmdlciByZXNpZGVzIGhlcmUuIgoKVGhlIG9sZCBtYW4gc2FpZCwgIk9rYXkiLCBhbmQgd2Fsa2VkIGF3YXkuCgpUaGUgZm9sbG93aW5nIGRheSwgdGhlIHNhbWUgbWFuIGFwcHJvYWNoZWQgdGhlIFdoaXRlIEhvdXNlIGFuZCBzYWlkIHRvIHRoZQpzYW1lIE1hcmluZSwgIkkgd291bGQgbGlrZSB0byBnbyBpbiBhbmQgbWVldCB3aXRoIFByZXNpZGVudCBCdXNoLiIKClRoZSBNYXJpbmUgYWdhaW4gdG9sZCB0aGUgbWFuLCAiU2lyLCBhcyBJIHNhaWQgeWVzdGVyZGF5LCBNci4gQnVzaCBpcyBubwpsb25nZXIgcHJlc2lkZW50IGFuZCBubyBsb25nZXIgcmVzaWRlcyBoZXJlLiIKClRoZSBtYW4gdGhhbmtlZCBoaW0gYW5kLCBhZ2FpbiwganVzdCB3YWxrZWQgYXdheS4KClRoZSB0aGlyZCBkYXksIHRoZSBzYW1lIG1hbiBhcHByb2FjaGVkIHRoZSBXaGl0ZSBIb3VzZSBhbmQgc3Bva2UgdG8gdGhlIHZlcnkKc2FtZSBVLlMuIE1hcmluZSwgc2F5aW5nICJJIHdvdWxkIGxpa2UgdG8gZ28gaW4gYW5kIG1lZXQgd2l0aCBQcmVzaWRlbnQgQnVzaC4iCgpUaGUgTWFyaW5lLCB1bmRlcnN0YW5kYWJseSBhZ2l0YXRlZCBhdCB0aGlzIHBvaW50LCBsb29rZWQgYXQgdGhlIG1hbiBhbmQgc2FpZCwKIlNpciwgdGhpcyBpcyB0aGUgdGhpcmQgZGF5IGluIGEgcm93IHlvdSBoYXZlIGJlZW4gaGVyZSBhc2tpbmcgdG8gc3BlYWsgdG8KTXIuIEJ1c2guIEkndmUgdG9sZCB5b3UgYWxyZWFkeSB0aGF0IE1yLiBCdXNoIGlzIG5vIGxvbmdlciB0aGUgcHJlc2lkZW50IGFuZApubyBsb25nZXIgcmVzaWRlcyBoZXJlLiBEb24ndCB5b3UgdW5kZXJzdGFuZD8iCgpUaGUgb2xkIG1hbiBsb29rZWQgYXQgdGhlIE1hcmluZSBhbmQgc2FpZCwgIk9oLCBJIHVuZGVyc3RhbmQuIEkganVzdCBsb3ZlCmhlYXJpbmcgaXQhIgoKVGhlIE1hcmluZSBzbmFwcGVkIHRvIGF0dGVudGlvbiwgc2FsdXRlZCwgYW5kIHNhaWQsICJTZWUgeW91IHRvbW9ycm93LCBTaXIuIgo6LSkKWHV0KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKbWF0aGVtYXRpa2VyK3NjaGFmZSAoYWx0KSAoUnVtYXRhLCAgMy4gRmViIDIwMDksIDE0OjU4OjAzKToKRWluIFNvemlvbG9nZSwgZWluIFBoeXNpa2VyIHVuZCBlaW4gTWF0aGVtYXRpa2VyIGZhaHJlbiBtaXQgZGVtClp1ZyBpbiBlaW4gZnJlbWRlcyBMYW5kLiBTaWUgc2VoZW4gbmV1Z2llcmlnIGF1cyBkZW0gRmVuc3Rlci4KCiJTY2hhdXQgbWFsIiwgc2FndCBkZXIgU296aW9sb2dlIHBsb2V0emxpY2guICJEb3J0IGF1ZiBkZXIgV2VpZGUKc2luZCB6d2VpIHNjaHdhcnplIFNjaGFmZS4gSW4gZGllc2VtIExhbmQgc2luZCBkaWUgU2NoYWZlIHdvaGwKc2Nod2FyeiIuCgoiTmVpbiIsIGVudGdlZ25ldCBkZXIgUGh5c2lrZXIuICJEYXMga2FubiBtYW4gc28gcGF1c2NoYWwgbmljaHQKc2FnZW4uIE1hbiBrYW5uIG51ciBzYWdlbiwgZGFzcyBlcyBpbiBkaWVzZW0gTGFuZCBtaW5kZXN0ZW5zCnp3ZWkgc2Nod2FyemUgU2NoYWZlIGdpYnQiLgoKRGVyIE1hdGhlbWF0aWtlciBzY2h1ZXR0ZWx0IGRlbiBLb3BmLiAiTmljaHQgZ2Fuei4gSW4gZGllc2VtCkxhbmQgZ2lidCBlcyB6d2VpIFNjaGFmZSwgZGllIGF1ZiBtaW5kZXN0ZW5zIGVpbmVyIFNlaXRlIHNjaHdhcnoKc2luZC4iCgpEYXMgZmluZGVuIGRpZSBiZWlkZW4gYW5kZXJlbiB3ZWl0IGhlcmdlaG9sdC4gTWFuIGJlc2NobGllc3N0LAphbSBuYWVjaHN0ZW4gQmFobmhvZiBhdXN6dXN0ZWlnZW4sIHVtIHp1IHBydWVmZW4sIHdpZSBkZW5uIGRpZQphbmRlcmUgU2VpdGUgYXVzc2llaHQuIEFiZXIgdGF0c2FlY2hsaWNoOiBlaW5zIGRlciBUaWVyZSBpc3QgYXVmCmRlciBhbmRlcmVuIFNlaXRlIGJyYXVuIHVuZCBkYXMgYW5kZXJlIHdlaXNzLgoKV2FlaHJlbmQgZGVyIFNvemlvbG9nZSB1bmQgZGVyIFBoeXNpa2VyIGRlbSBNYXRoZW1hdGlrZXIgZnVlcgpzZWluZW4gU2NoYXJmc2lubiBncmF0dWxpZXJlbiwga29tbXQgZGVyIEhpcnRlIGFuLgoKIkhlZWgsIHdhcyBtYWNodCBpaHIgZGEgbWl0IG1laW5lbiBaaWVnZW4/IgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndvZXJ0bGljaCAoQW50aGVhLCAxMi4gRmViIDIwMDksIDE3OjM0OjI0KToKS29tbXQgZWluIFZhbXBpciBpbiBlaW5lIFBvbGl6ZWlrb250cm9sbGUuClBvbGl6aXN0OiAiSGFiZW4gc2llIHdhcyBnZXRydW5rZW4/IgpWYW1waXI6ICJOdXIgZWluLCB6d2VpIFJhZGxlci4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaXNzZW5zd2VydD8gKEFudGhlYSwgMTguIEZlYiAyMDA5LCAxNTozNzo1OCk6CgpTcGVpc2VuIGJyYXVjaGVuIGV0d2EgNyBTZWt1bmRlbiBmdWVyIGRlbiBXZWcgdm9tIE11bmQgaW4gZGVuIE1hZ2VuLgoKRWluIGVpbnppZ2VzIEhhYXIga2FubiBkcmVpIEtpbG8gaGFsdGVuLgoKRGVyIFBlbmlzIGVpbmVzIGR1cmNoc2Nobml0dGxpY2hlbiBNYW5uZXMgaXN0IGRyZWkgbWFsIHNvIGxhbmcgd2llIHNlaW4KRGF1bWVuLgoKTWVuc2NobGljaGUgQmVja2Vua25vY2hlbiBzaW5kIHN0YWJpbGVyIGFscyBCZXRvbi4KCkVpbiB3ZWlibGljaGVzIEhlcnogc2NobGFlZ3Qgc2NobmVsbGVyIGFscyBlaW4gbWFlbm5saWNoZXMuCgpBbiBkZWluZW4gRnVlc3NlbiBiZWZpbmRlbiBzaWNoIHVuZ2VmYWVociBlaW5lIE1pbGxpYXJkZSBCYWt0ZXJpZW4uCgpGcmF1ZW4gendpbmtlcm4gZG9wcGVsdCBzbyBvZnQgbWl0IGRlbiBBdWdlbiB3aWUgTWFlbm5lci4KCkRpZSBIYXV0IGVpbmVzIGR1cmNoc2Nobml0dGxpY2hlbiBNZW5zY2hlbiB3aWVndCBkb3BwZWx0IHNvIHZpZWwgd2llIHNlaW4KR2VoaXJuLgoKRGVyIEtvZXJwZXIgYnJhdWNodCBldHdhIDMwMCBNdXNrZWxuIHVtIHNjaCBnZXJhZGUgenUgaGFsdGVuLCBhdWNoIHdlbm4gbWFuCnZvZWxsaWcgcnVoaWcgc3RlaHQuCgpGcmF1ZW4sIGRpZSBkYXMgZ2VsZXNlbiBoYWJlbiwgc2luZCBudW4gZmVydGlnIG1pdCBkZXIgV2VsdC4KCk1hZW5uZXIsIGRpZSBkYXMgZ2VsZXNlbiBoYWJlbiwgc2luZCBpbW1lciBub2NoIGRhbWl0IGJlc2NoYWVmdGlndCwgZGllIExhZW5nZQppaHJlciBEYXVtZW4genUgYmVndXRhY2h0ZW4uIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdpc3NlbnN3ZXJ0PyAoQWxib2luLCAxOC4gRmViIDIwMDksIDIwOjAzOjM2KToKfiMhIHJuPUFudGhlYSBydD0xMjM0OTY3ODc4IHJnPXdpdHplCn4jISB0aWQ9MTIzNDk2Nzg3OApVbmQgZGFzIGhhdCBhbGxlcyBzaWNoIGVpbmUgRnJhdSBhdXNnZWRhY2h0LCB3ZWlsIHNpZSB6dSBvcHRpbWlzdGlzY2ggd2FyIC4uLgphbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2lydHNjaGFmdHNwb2xpdGlrIGVpbmZhY2ggZXJrbGFlcnQgKFh1dGVsaXVzLCAyMC4gRmViIDIwMDksIDE3OjEzOjIyKToKQ2hyaXN0ZGVtb2tyYXQ6ClNpZSBiZXNpdHplbiB6d2VpIEt1ZWhlLiBJaHIgTmFjaGJhciBiZXNpdHp0IGtlaW5lLiBTaWUgYmVoYWx0ZW4gZWluZSB1bmQKc2NoZW5rZW4gSWhyZW0gYXJtZW4gTmFjaGJhcm4gZGllIGFuZGVyZS4gRGFuYWNoIGJlcmV1ZW4gU2llIGVzLgoKU296aWFsaXN0OgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gSWhyIE5hY2hiYXIgYmVzaXR6dCBrZWluZS4gRGllIFJlZ2llcnVuZyBuaW1tdCBJaG5lbgplaW5lIGFiIHVuZCBnaWJ0IGRpZXNlIElocmVtIE5hY2hiYXJuLiBTaWUgd2VyZGVuIGdlend1bmdlbiwgZWluZQpHZW5vc3NlbnNjaGFmdCB6dSBncnVlbmRlbiwgdW0gSWhyZW0gTmFjaGJhcm4gYmVpIGRlciBUaWVyaGFsdHVuZyB6dSBoZWxmZW4uCgpTb3ppYWxkZW1va3JhdDoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIElociBOYWNoYmFyIGJlc2l0enQga2VpbmUuIFNpZSBmdWVobGVuIHNpY2ggc2NodWxkaWcsCndlaWwgU2llIGVyZm9sZ3JlaWNoIGFyYmVpdGVuLiBTaWUgd2FlaGxlbiBMZXV0ZSBpbiBkaWUgUmVnaWVydW5nLCBkaWUgSWhyZQpLdWVoZSBiZXN0ZXVlcm4uIERhcyB6d2luZ3QgU2llIGVpbmUgS3VoIHp1IHZlcmthdWZlbiwgdW0gZGllIFN0ZXVlcm4gYmV6YWhsZW4KenUga29lbm5lbi4gRGllIExldXRlIGRpZSBTaWUgZ2V3YWVobHQgaGFiZW4sIG5laG1lbiBkaWVzZXMgR2VsZCwga2F1ZmVuIGVpbmUKS3VoIHVuZCBnZWJlbiBkaWVzZSBJaHJlbSBOYWNoYmFybi4KU2llIGZ1ZWhsZW4gc2ljaCByZWNodHNjaGFmZmVuLiBVZG8gTGluZGVuYmVyZyBzaW5ndCBmdWVyIFNpZS4KCkZyZWlkZW1va3JhdDoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIElociBOYWNoYmFyIGJlc2l0enQga2VpbmUuIE5hIHVuZD8KCktvbW11bmlzdDoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIElociBOYWNoYmFyIGJlc2l0enQga2VpbmUuIERpZSBSZWdpZXJ1bmcKYmVzY2hsYWduYWhtdCBiZWlkZSBLdWVoZSB1bmQgdmVya2F1ZnQgSWhuZW4gZGllIE1pbGNoLiBTaWUgc3RlaGVuIHN0dW5kZW5sYW5nCmZ1ZXIgZGllIE1pbGNoIGFuLiBTaWUgaXN0IHNhdWVyLgoKS2FwaXRhbGlzdDoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIFNpZSB2ZXJrYXVmZW4gZWluZSB1bmQga2F1ZmVuIGVpbmVuIEJ1bGxlbiwgdW0gZWluZQpIZXJkZSB6dSB6dWVjaHRlbi4KCkVVLUJ1ZXJva3JhdGllOgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gRGllIEVVIG5pbW10IElobmVuIGJlaWRlIGFiLCB0b2V0ZXQgZWluZSwgbWVsa3QgZGllCmFuZGVyZSwgYmV6YWhsdCBJaG5lbiBlaW5lIEVudHNjaGFlZGlndW5nIGF1cyBkZW0gVmVya2F1ZnNlcmxvZXMgZGVyIE1pbGNoIHVuZApzY2h1ZXR0ZXQgZGllc2UgZGFubiBpbiBkaWUgTm9yZHNlZS4KCkFtZXJpa2FuaXNjaGVzIFVudGVybmVobWVuOgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gU2llIHZlcmthdWZlbiBlaW5lIHVuZCBsZWFzZW4gc2llIHp1cnVlY2suIFNpZQpncnVlbmRlbiBlaW5lIEFrdGllbmdlc2VsbHNjaGFmdC4gU2llIHp3aW5nZW4gZGllIGJlaWRlbiBLdWVoZSwgZGFzIHZpZXJmYWNoZQphbiBNaWxjaCB6dSBnZWJlbi4gU2llIHd1bmRlcm4gc2ljaCwgYWxzIGVpbmUgdG90IHVtZmFlbGx0LiBTaWUgZ2ViZW4gZWluZQpQcmVzc2VlcmtsYWVydW5nIGhlcmF1cywgaW4gZGVyIFNpZSBlcmtsYWVyZW4sIFNpZSBoYWV0dGVuIElocmUgS29zdGVuIHVtIDUwJQpnZXNlbmt0LiBJaHJlIEFrdGllbiBzdGVpZ2VuLgoKRnJhbnpvZXNpc2NoZXMgVW50ZXJuZWhtZW46ClNpZSBiZXNpdHplbiB6d2VpIEt1ZWhlLiBTaWUgc3RyZWlrZW4sIHdlaWwgU2llIGRyZWkgS3VlaGUgaGFiZW4gd29sbGVuLiBTaWUKZ2VoZW4gTWl0dGFnZXNzZW4uIERhcyBMZWJlbiBpc3Qgc2Nob2VuLgoKSmFwYW5pc2NoZXMgVW50ZXJuZWhtZW46ClNpZSBiZXNpdHplbiB6d2VpIEt1ZWhlLiBNaXR0ZWxzIG1vZGVybnN0ZXIgR2VudGVjaG5payBlcnJlaWNoZW4gU2llLCBkYXNzIGRpZQpUaWVyZSBhdWYgZWluIFplaG50ZWwgaWhyZXIgdXJzcHJ1ZW5nbGljaGVuIEdyb2Vzc2UgcmVkdXppZXJ0IHdlcmRlbiB1bmQgZGFzClp3YW56aWdmYWNoZSBhbiBNaWxjaCBnZWJlbi4gSmV0enQga3JlaWVyZW4gU2llIGVpbmVuIGNsZXZlcmVuIEt1aC1DYXJ0b29uLApuZW5uZW4gaWhuIEt1aGtpbW9uIHVuZCB2ZXJtYXJrdGVuIGlobiB3ZWx0d2VpdC4KCkRldXRzY2hlcyBVbnRlcm5laG1lbjoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUuIE1pdHRlbHMgbW9kZXJuc3RlciBHZW50ZWNobmlrIHdlcmRlbiBkaWUgVGllcmUKUmUtRGVzaWduZWQsIHNvIGRhc3Mgc2llIGFsbGUgYmxvbmQgc2luZCwgZWluZSBNZW5nZSBCaWVyIHNhdWZlbiwgTWlsY2ggdm9uCmhvZWNoc3RlciBRdWFsaXRhZXQgZ2ViZW4gdW5kIDE2MGttL2ggbGF1ZmVuIGtvZW5uZW4uIExlaWRlciBmb3JkZXJuIGRpZSBLdWVoZQoxMyBXb2NoZW4gVXJsYXViIGltIEphaHIuCgpCcml0aXNjaGVzIFVudGVybmVobWVuOgpTaWUgYmVzaXR6ZW4gendlaSBLdWVoZS4gQmVpZGUgc2luZCB3YWhuc2lubmlnLgoKSXRhbGllbmlzY2hlcyBVbnRlcm5laG1lbjoKU2llIGJlc2l0emVuIHp3ZWkgS3VlaGUsIGFiZXIgU2llIHdpc3NlbiBuaWNodCwgd28gc2llIHNpbmQuIFdhZWhyZW5kIFNpZSBzaWUKc3VjaGVuLCBzZWhlbiBTaWUgZWluZSBzY2hvZW5lIEZyYXUuIFNpZSBtYWNoZW4gTWl0dGFnc3BhdXNlLiBEYXMgTGViZW4gaXN0CnNjaG9lbi4KWHV0KgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVhIC4uLiAoR2xvaW5zb24sICAzLiBNYXIgMjAwOSwgMjA6MjY6MzgpOgoKICAgICAgICAgTXkgZmlhbmNlIGNhbWUgaG9tZSBmcm9tIHdvcmsgY3J5aW5nIHllc3RlcmRheSBhbmQgYXNrZWQgbWUKICAgICAgICAgdG8gY29uc29sZSBoZXIuCgogICAgICAgICBTbyBJIGhpdCBoZXIgb3ZlciB0aGUgaGVhZCB3aXRoIG15IHhib3guCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVpbGVuZCAoQW50aGVhLCAyNy4gTWFyIDIwMDksIDEyOjU5OjU3KToKQXJ6dDogIk9LLCBzaWUgbmVobWVuIGFsc28gdGFlZ2xpY2ggMiBQbGF6ZWJvcyB1YmVyIGRpZSBuYWVjaHN0ZW4gNCBXb2NoZW4sCmRhbm4gc29sbHRlIElocmUgSHlwb2NobmRyaWUgZ2VoZWlsdCBzZWluLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmF1Y2ggbWFsIHdhcyBzY2hyZWliZW4gd2lsbCAoQnJvdG5hZWwsICA0LiBBcHIgMjAwOSwgMjA6NTI6NTUpOgpVbnRlcmhhbHRlbiBzaWNoIHp3ZWkgRnJhdWVuLCBtZWludCBkaWUgZWluZToKIkluIGxldHp0ZXIgWmVpdCBoYWJlIGljaCBzbyBTcHJhY2hzY2h3aWVyaWdrZWl0ZW4uIExldHp0ZW5zIHdvbGx0ZSBpY2ggc2FnZW46CiJJY2ggd2lsbCBXZWluIHRyaW5rZW4iLCBzdGF0dCBkZXNzZW4gc2FndGUgaWNoOiAiSWNoIHdpbGwgVHJlaW4gd2lua2VuIi4KRGFyYXVmIGRpZSBhbmRlcmU6ICJNaXIgZ2luZyBlcyBuZXVsaWNoIGdhbnogYWVobmxpY2guIEJlaW0gRnJ1ZWhzdHVlY2sgd29sbHRlCmljaCB6dSBtZWluZW0gTWFubiBzYWdlbjogIkdpYiBtaXQgYml0dGUgbWFsIGRlbiBLYWZmZWUuIiBTdGF0dCBkZXNzZW4gc2FndGUKaWNoIHp1IGlobTogIkR1IHZlcmRhbW10ZXMgQXJzY2hsb2NoIGhhc3QgbWVpbiBnYW56ZXMgTGViZW4gdmVyc2F1dCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXVjaCBtYWwgd2FzIHNjaHJlaWJlbiB3aWxsIChWZWN0b3IsIDExLiBBcHIgMjAwOSwgMTQ6Mjc6MjApOgp+IyEgcm49QnJvdG5hZWwgcnQ9MTIzODg3MTE3NSByZz13aXR6ZQp+IyEgdGlkPTEyMzg4NzExNzUKYWx0IGFiZXIgaW1tZXIgbm9jaCBndXQ6CgpUYWdlYnVjaCBlaW5lcyBIdW5kZXMKCjA3OjAwIFVociAtIEJvYWghIEdhc3NpIGdlaGVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgowODowMCBVaHIgLSBCb2FoISBGcmVzc2khIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjA5OjMwIFVociAtIEJvYWghIEVpbmUgU3BhemllcmZhaHJ0ISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgowOTo0MCBVaHIgLSBCb2FoISBJbSBBdXRvIHBlbm5lbiEgRGFzIG1hZyBpY2ggYW0gbGllYnN0ZW4KMTA6MzAgVWhyIC0gQm9haCEgRWluZSBTcGF6aWVyZmFocnQhIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjExOjMwIFVociAtIEJvYWghIEhlaW1rb21tZW4hIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjEyOjAwIFVociAtIEJvYWghIERpZSBLaW5kZXIga29tbWVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxMzowMCBVaHIgLSBCb2FoISBBYiBpbiBkZW4gR2FydGVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxNjowMCBVaHIgLSBCb2FoISBOb2NoIG1laHIgS2luZGVyISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoxNzowMCBVaHIgLSBCb2FoISBGcmVzc2khIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjE4OjAwIFVociAtIEJvYWghIE1laW4gSGVycmNoZW4hIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjE5OjAwIFVociAtIEJvYWghIFN0b2Vja2NoZW4gaG9sZW4hIERhcyBtYWcgaWNoIGFtIGxpZWJzdGVuCjIxOjMwIFVociAtIEJvYWghIEluIEZyYXVjaGVucyBCZXR0IHNjaGxhZmVuISBEYXMgbWFnIGljaCBhbSBsaWVic3RlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBhdWNoIG1hbCB3YXMgc2NocmVpYmVuIHdpbGwgKEtlc3NhLCAxMi4gQXByIDIwMDksIDExOjMxOjQ2KToKfiMhIHJuPVZlY3RvciBydD0xMjM5NDUyODQwIHJnPXdpdHplCn4jISB0aWQ9MTIzODg3MTE3NQp4IHVocgpKYSwgZGFzIGlzdCBpbW1lciB3aWVkZXIgZ3V0IDopIFNjaG9lbiBiZXNvbmRlcnMgaW4gR2VnZW51ZWJlcnN0ZWxsdW5nIG1pdCBkZW0KS2F0emVuLVRhZ2VidWNoLCBoaWVyIGJlaWRlIHp1c2FtbWVuOgoKaHR0cDovL3d3dy5zay1mdW4uZGUvaW5kZXgucGhwP0lEPXRhZ2VidWNoX2h1bmRfa2F0emUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZSBJY2gtQUcgKFh1dGVsaXVzLCAyMy4gQXByIDIwMDksIDE4OjM1OjE3KToKMTYuIEp1bmk6CkhhYmUgZW5kbGljaCBkaWUgRmlybWEgZ2VncnVlbmRldC4gQXVmIGRpZSBBdXNzY2hyZWlidW5nIGZ1ZXIgZGllIFN0ZWxsZSBrYW0KbnVyIGVpbmUgQmV3ZXJidW5nLiBNZWluZS4gRGFzIEJld2VyYnVuZ3NnZXNwcmFlY2ggdmVybGllZiBwb3NpdGl2LiBJY2gKZW50c3ByZWNoZSBnZW5hdSBtZWluZW4gVm9yc3RlbGx1bmdlbi4gVHJvdHpkZW0gVm9yc2ljaHQ6IEhhYmUgdmllciBXb2NoZW4KUHJvYmV6ZWl0IHZlcmVpbmJhcnQuCgoyLiBKdWxpOgpFcnN0ZSBad2lzY2hlbmJpbGFueiBuYWNoIDE0IFRhZ2VuOiBFcyBsYWV1ZnQgendhciBub2NoIG5pY2h0IHNvIGJlc29uZGVycywKYWJlciBkb2NoIGlyZ2VuZHdpZS4gQWJlciBlcyB3aXJkIHNjaG9uLCBkYSBiaW4gaWNoIG1pciBlaW5pZy4KCjI2LiBKdWxpOgpEYXMgR2VzY2hhZWZ0IGJydW1tdCEgSGFiZSBlaWdlbnRsaWNoIGVpbmUgV29jaGUgVXJsYXViIGJlYW50cmFndC4gS2FubiBpY2gKYWJlciBlaW5mYWNoIG5pY2h0IGdlbmVobWlnZW4uIE11c3MgaWNoIG1pciBub2NoIHNlbnNpYmVsIG5haGUgYnJpbmdlbi4gQWJlcgpkaWUgS3VuZGVuIGdlaGVuIHZvci4KCjEzLiBBdWd1c3Q6Ck11c3MgZHJpbmdlbmQgbWl0IG1pciB1ZWJlcnMgR2VsZCByZWRlbi4gS2FubiBqYSBuaWNodCBzbyBzZWluLCBkYXNzIGljaAplaW5lcnNlaXRzIEdld2lubiBtYWNoZSAoRWluemVsaGVpdGVuIGVyZmFlaHJ0IG1hbiBqYSBuaWNodCBhbHMKQW5nZXN0ZWxsdGVyKSwgd2FlaHJlbmQgYW5kZXJlcnNlaXRzIG1laW4gR2VoYWx0IHN0YWduaWVydC4gV2FzIHdhZXJlIGljaCBkZW5uCm9obmUgbWljaD8KCjE3LiBBdWd1c3Q6CkhhYmUgbWljaCBoZXV0ZSBmcnVlaCB1ZWJlciBtaWNoIGF1ZmdlcmVndC4gTWVociBHZWhhbHQgLSBkYXMga2FubiB3b2hsIG5pY2h0CndhaHIgc2Vpbi4gRXJzdCBtYWwgbXVzcyBpY2ggZG9jaCBLYXBpdGFsIGFuc2FtbWVsbiwgZGFtaXQgaWNoIGludmVzdGllcmVuCmthbm4uIEFiZXIgZGFzIHdlcmRlIGljaCBtaXIgc2Nob24gbm9jaCBiZWlicmluZ2VuLiBXYWhyc2NoZWlubGljaCBtdXNzIGljaApkaWUgWnVlZ2VsIGVpbiBiaXNzY2hlbiBhbnppZWhlbi4gU29uc3Qga29tbWUgaWNoIG5vY2ggYXVmIGRpZSBJZGVlLCBlaW5lbgpCZXRyaWVic3JhdCB6dSBiaWxkZW4uCgoyMS4gQXVndXN0OgpIZXV0ZSBmcnVlaCB6d2VpIFN0dW5kZW4gV2FybnN0cmVpay4gV2VubiBpY2ggZXMgYW5kZXJzIG5pY2h0IGthcGllcmUsIGRhbm4KemllaGUgaWNoIGViZW4gZWluZW4ga25hbGxoYXJ0ZW4gQXJiZWl0c2thbXBmIGR1cmNoLiBLZWluZW4gVXJsYXViLCBrZWluZQpHZWhhbHRzZXJob2VodW5nPyBuaWNodCBtaXQgbWlyLgoKMjIuIEF1Z3VzdDoKV2FybnN0cmVpayEgTmEgd2FydGUuIERhIGdpYnQncyBlaW5lIGdlZGllZ2VuZSBBdXNzcGVycnVuZy4KCjIzLiBBdWd1c3Q6CkhhLCBqZXR6dCBoYWJlIGljaCdzIG1pciBnZXplaWd0ISBNaXQgQXVzc3BlcnJ1bmcgaGF0dGUgaWNoIG5pY2h0IGdlcmVjaG5ldC4KQWJlciBkaWUgRmlybWEga2FubiBzaWNoIGtlaW5lIFBhdXNlIGxlaXN0ZW4uIERlc2hhbGIgYnJhdWNoZSBpY2ggZWluZW4KU3RyZWlrYnJlY2hlci4gQW0gYmVzdGVuIG1pY2gsIGljaCBrZW5uZSBtaWNoIGphIGF1cy4gSWNoIGFscyBTdHJlaWticmVjaGVyPwpEYSB3ZXJkZSBpY2ggQXVnZW4gbWFjaGVuLgoKMjYuIEF1Z3VzdDoKSGFiZSBtaXQgZWlnZW5lbiBPaHJlbiBnZWhvZXJ0LCB3aWUgaWNoIG1pY2ggIkR1bW1lcyBTY2h3ZWluIiBnZW5hbm50IGhhYmUuCkhhYmUgZXMgbWlyIHNvZm9ydCBnZW1lbGRldCwgZGVubiBkZW4gQ2hlZiB6dSBiZWxlaWRpZ2VuIHN0b2VydCBlaW5kZXV0aWcgZGVuCkJldHJpZWJzZnJpZWRlbi4KCjI3LiBBdWd1c3Q6CkRpZSBCZWxlaWRpZ3VuZyBoYXQgRm9sZ2VuIC0gaGFiZSBtaXIgZWluZSBBYm1haG51bmcgZXJ0ZWlsdC4gTm9jaCBlaW5tYWwsCnVuZCBpY2ggYmluIGVudGxhc3Nlbi4KCjE3LiBTZXB0ZW1iZXI6ClNlaXQgZGVtIFN0cmVpa2JyZWNoZXItRWluc2F0eiB1bmQgZGVyIEFibWFobnVuZyBpc3QgUnVoZSBpbiBkZXIgRmlybWEgLQprZWluIEdlbWVja2VyIG1laHIsIGtlaW5lIEdlaGFsdHNmb3JkZXJ1bmdlbi4gTWFuIG11c3MgZWJlbiBtYWwgZGllCkluc3RydW1lbnRlIHplaWdlbi4KCjIxLiBPa3RvYmVyOgpJY2ggZ2VoZSBhbiBkaWUgQm9lcnNlLiBXZW5uIHNjaG9uIEljaC1BRywgZGFubiByaWNodGlnLiBTcGllbGUgbWl0IGRlbQpHZWRhbmtlbiwgYWxsZSBBa3RpZW4gc2VsYnN0IHp1IGthdWZlbiwgZGFtaXQgbWlyIGtlaW5lciByZWlucXVhdHNjaGVuIGthbm4uCgozLiBOb3ZlbWJlcjoKRGVyIEJvZXJzZW5nYW5nIHdhciBlaW4gdm9sbGVyIEVyZm9sZy4gRGllIEFrdGllbiBnaW5nZW4gd2VnIHdpZSB3YXJtZQpTZW1tZWxuLiBCaW4gYWxsZW4gYW5kZXJlbiBtb2VnbGljaGVuIEthZXVmZXJuIHp1dm9yZ2Vrb21tZW4uIFRqYSwgY2xldmVyIG11c3MKbWFuIHNlaW4uIEpldHp0IGJpbiBpY2ggbmljaHQgbnVyIEluaGFiZXIgdW5kIEdlc2NoYWVmdHNmdWVocmVyLCBzb25kZXJuIGF1Y2gKVm9yc3RhbmRzdm9yc2l0emVuZGVyLiBVbmQgVm9yc2l0emVuZGVyIGRlcyBBdWZzaWNodHNyYXRlcy4KCjE0LiBEZXplbWJlcjoKSXJnZW5kd2llIGtsZW1tdCBkYXMgR2VzY2hhZWZ0IGltIE1vbWVudC4gTGllZ3QgZXMgYW0gV2V0dGVyPyBPZGVyIGFuIGRlcgpWb3J3ZWlobmFjaHRzemVpdD8KCjE2LiBEZXplbWJlcjoKSmV0enQgd2Vpc3MgaWNoLCB3b3JhbiBlcyBsaWVndDogRGllIExvaG5uZWJlbmtvc3RlbiBzaW5kIHp1IGhvY2guIEhhYmUgbWlyCmRhcyB1bm1pc3N2ZXJzdGFlbmRsaWNoIGtsYXJnZW1hY2h0LiBKYSwgd2VubiBpY2ggZWluIFR1ZXJrZSB3YWVyZSBvZGVyIGVpbgpQb2xlLCBkYSB3YWVyJ3MgdmllbGxlaWNodCBiaWxsaWdlci4gQWJlciBzbyAtIGljaCBoYWJlIHp1IGhvaGUgQW5zcHJ1ZWNoZS4KCjMuIEphbnVhcjoKTXVzc3RlIG1pciBlaW5lIEdld2lubndhcm51bmcgZ2ViZW4uIEpldHp0IHJlZ3Qgc2ljaCBkZXIgQWt0aW9uYWVyIGF1Zi4gVW5kCmRlciBBa3RpZW5rdXJzIGZhZWxsdC4gRGEgd2VyZGUgaWNoIHdvaGwgYW0gUGVyc29uYWwgc3BhcmVuIG11ZXNzZW4uCgo0LiBKYW51YXI6Ckt1cnphcmJlaXQuIERhcyBmZWhsdGUgbm9jaC4gQW5kZXJlcnNlaXRzIC0gaWNoIGtvZW5udGUgbWljaCBuYWNoIGVpbmVtCk5lYmVuam9iIHVtc2VoZW4uIFZpZWxsZWljaHQgbWFjaGUgaWNoIGF1Y2ggU2Nod2FyemFyYmVpdCBiZWkgbWlyLgoKNy4gSmFudWFyOgpIYWJlIG1pY2ggaGV1dGUgZW50bGFzc2VuLiBEZXIgQWt0aW9uYWVyIGp1YmVsdCAtIGRlciBLdXJzIGlzdCBrdXJ6emVpdGlnCm5hY2ggb2JlbiBnZXNjaG5lbGx0LiBTaGFyZWhvbGRlciB2YWx1ZSBpc3QgZWluZSB0b2xsZSBTYWNoZS4KCjEyLiBKYW51YXI6CkhhYmUgdmllbCBaZWl0LiBXZXJkZSBub2NoIGVpbmUgRmlybWEgZ3J1ZW5kZW4sIGdlaGUgZGFtaXQgYXVjaCBhbiBkaWUgQm9lcnNlLAprYXVmZSBtaXIgZ2VnZW5zZWl0aWcgZGllIEFudGVpbGUgd2VnLiBEYXMgZXJ6ZXVndCBOYWNoZnJhZ2UgdW5kIGphZ3QgZGVuCkt1cnMgaG9jaC4gT2J3b2hsIC0gdmllbGxlaWNodCBzaW5kIGRhcyB2ZXJib3RlbmUgSW5zaWRlcmdlc2NoYWVmdGU/IEVnYWwsCkhhdXB0c2FjaGUgZXMgYnJpbmd0IEdld2lubi4gQXVzc2VyZGVtLCB3ZW5uIGljaCBkaWNodCBoYWx0ZSwga29tbXQgZXMgbmllCnJhdXMhCjotKQpYdXQqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpkYW1pdCBtYWwgd2llZGVyIHdhcyBkcmluIHN0ZWh0IChBbnRoZWEsIDI3LiBNYWkgMjAwOSwgMDk6NTE6MjApOgotIFdhcnVtIGlzdCBkZXIgYm9lc2UgV29sZiB1bnRlciBRdWFsZW4gZ2VzdG9yYmVuLCBuYWNoZGVtIGVyIFJvdGthZXBwY2hlbgphdWZnZWZyZXNzZW4gaGF0PwotIFdlaWwgUm90a2FlcHBjaGVuIGVpbiB2ZXJkb3JiZW5lcyBNYWVkY2hlbiB3YXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb3JyZWt0ZSBTcHJhY2hlIChBbnRoZWEsIDI3LiBNYWkgMjAwOSwgMDk6NTE6NDgpOgpLb21tdCBkaWUgVG9jaHRlciBhYmVuZHMgbmFjaCBIYXVzZSB1bmQgZXJ6YWVobHQ6ICJVbSBlaW4gSGFhciBoYWV0dGUgaWNoCmhldXRlIGVpbmVuIFVuZmFsbCBnZWJhdXQuIERpZXNlciBibG9lZGUgQm9jayB1bmQgc2VpbiBMYWVtbWNoZW4uLi4iCiJBdWdlbmJsaWNrIG1hbCIsIHVudGVyYnJpY2h0IHNpZSBkZXIgVmF0ZXIuICJTbyByZWRldCBtYW4gZG9jaCBuaWNodC4gRXMKd2FlcmUgdmllbCBuZXR0ZXIsIHdlbm4gZHUgc2FndGVzdDogJ0VpbiBhZWx0ZXJlciBIZXJyIHVuZCBlaW4ganVuZ2VzCk1hZWRjaGVuLiIKIk5hIGd1dCwgVmF0aSwgd2llIGR1IHdpbGxzdC4gQWxzbzogRWluIGFlbHRlcmVyIEhlcnIgdW5kIGVpbiBqdW5nZXMgTWFlZGNoZW4Kd2VpZGV0ZW4gYW0gU3RyYXNzZW5yYW5kLiBBbHMgaWNoIG5hZWhlciBrYW0sIGhvYmVuIGJlaWRlIGRlbiBLb3BmLCBzcHJhbmdlbgp1ZWJlciBkaWUgU3RyYXNzZSB1bmQgbWlyIHZvciBkZW4gS3VlaGxlci4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXIgZ2VnZW4gd2VuPyAoQW50aGVhLCAyNy4gTWFpIDIwMDksIDA5OjUyOjIwKToKTWFubjogIldpc3NlbiBzaWUgZGFzIG5ldWVzdGU/IEhldXRlIGlzdCBlaW4gRnVzc2JhbGxtYXRjaCEiClNvaG4gSGFic2J1cmdlcjogIldlciBzcGllbHQ/IgpNYW5uOiAiT2VzdGVycmVpY2ggLSBVbmdhcm4uIgpTb2huIEhhYnNidXJnZXI6ICJHZWdlbiB3ZW4gPyE/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmljaHRzIGdlcm9jaGVuIChBbnRoZWEsIDI3LiBNYWkgMjAwOSwgMDk6NTI6NDYpOgpFaW4gYmxvbmRnZWxvY2t0ZXIgZGV1dHNjaGVyIEp1bmdlIGtvbW10IGltIFJhaG1lbiBlaW5lcyBTdHVkZW50ZW5hdXN0YXVzY2hlcwpuYWNoIE9lc3RlcnJlaWNoLiBJbSBIYXVzLCBpbiBkZW0gZXIgd29obnQsIGdpYnQgZXMgZWluZSBzZWhyIGF1Zmdla2xhZXJ0ZQpCcnVlbmV0dGUuIFNpZSBnZWh0IGFiZW5kcyBtaXQgaWhtIHNwYXppZXJlbiwgdW5kIHNpZSBrb21tZW4gZGFiZWkgYW4gZWluZXIKV2llc2Ugdm9yYmVpLCBhdWYgZGVyIGdlcmFkZSBlaW4gU3RpZXIgZWluZSBLdWggYmVsZWd0LgpCZWlkZSBzZWhlbiBpbnRlcmVzc2llcnQgenUsIHVuZCBhdWNoIGVpbiB6dWZhZWxsaWcgZGFuZWJlbiBzdGVoZW5kZXIgT2NocywKd2VsY2hlbiBkZXIgYmxvbmRnZWxvY2t0ZSBkZXV0c2NoZSBKdW5nZSBlYmVuZmFsbHMgZnVlciBlaW5lbiBTdGllciBoYWVsdC4KRXIgZnJhZ3QgZGllIEJydWVuZXR0ZSwgd2FydW0gbmljaHQgYXVjaCBkZXIgendlaXRlIFN0aWVyIGRpZSBLdWggYmVsZWd0LiBTaWUKa2xhZXJ0IGlobiBhdWYsIHVuZCBzYWd0OiAiRGFzIGlzdCBrZWluIFN0aWVyIHNvbmRlcm4gZWluIE9jaHMsIGRlciByaWVjaHQKbmljaHQsIHdhcyBkaWUgS3VoIHdpbGwuIgpOYWNoIGVpbmVyIFdlaWxlIGtvbW1lbiBzaWUgYW4gZWluZXIgUm9zZW5oZWNrZSB2b3JiZWkuIERpZSBCcnVlbmV0dGUgYmxlaWJ0CnN0ZWhlbiwgdW5kIHNjaG51cHBlcnQgZWluZSBXZWlsZSBpbiBkaWUgTHVmdCwgdW5kIHNhZ3QgZGFubjoKIlJpZWNoc3QgZHUgbmljaHRzPyIKRXI6ICJOZWluLiIKU2llOiAiTmEsIGRhbm4gYmlzdCBkdSB3b2hsIGF1Y2ggZWluIE9jaHMhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmljaHRpZ2UgQmV3ZWd1bmcgKEFudGhlYSwgMjcuIE1haSAyMDA5LCAwOTo1MzoxOCk6CiJHZWdlbiBJaHJlIEtvcnB1bGVueiwganVuZ2VyIE1hbm4iLCBzYWd0IGRlciBBcnp0LCAiaGlsZnQgbnVyIHZpZWwgQmV3ZWd1bmcuIgoKIktuaWViZXVnZW4gdW5kIHNvLCBIZXJyIERva3Rvcj8iCgoiTmVpbi4gS29wZnNjaHVldHRlbG4sIGltbWVyIHdlbm4gaWhuZW4gZXR3YXMgenVtIEVzc2VuIGFuZ2Vib3RlbiB3aXJkLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdla29ubnQgKEFudGhlYSwgMjcuIE1haSAyMDA5LCAwOTo1NDozOCk6CiJTY2hhdHosIHppZWggZGllIEJlaW5lIGFuISIgU2llIGtuaWZmIGRpZSBBdWdlbiB6dXNhbW1lbiB1bmQgd3VyZGUgcnVja2FydGlnCmhvY2hnZXJpc3Nlbi4gIkJlaW5lIHNwcmVpemVuIiwgam9obHRlIEplbnNlbi4gIkpldHp0IGtvbW1lIGljaCIsIHNjaHJpZSBzaWUsCnN0ZW1tdGUgc2ljaCB2b2xsIGdlZ2VuIGRhcyBCcmV0dCwga2FtIGxhbmdzYW0gaG9jaCB1bmQgZ2xpdHQgaGludGVyIEplbnMKSmVuc2VuIGhlciwgc28sIGFscyB3YWVyZSBzaWUgc2Nob24gZXdpZyBXYXNzZXJza2kgZ2VsYXVmZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLb3JyZWt0ZSBBbnR3b3J0IChBbnRoZWEsIDI3LiBNYWkgMjAwOSwgMDk6NTY6MTcpOgpCZWkgZGVyIEJ1bmRlc3dlaHI6Ck9mZml6aWVyOiAiTmFtZT8iClJla3J1dDogIk11ZWxsZXIhIgpPZmZpemllcjogIkdlYm9yZW4/IgpSZWtydXQ6ICJKYSEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogS29ycmVrdGUgQW50d29ydCAoUnVtYXRhLCAyNy4gTWFpIDIwMDksIDA5OjU2OjU3KToKfiMhIHJuPUFudGhlYSBydD0xMjQzNDEwOTc3IHJnPXdpdHplCn4jISB0aWQ9MTI0MzQxMDk3NwpPZmZpemllcjogRGFzIGhlaXNzdDogIkphd29sbCwgSGVyciBPZmZpemllci4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtvcnJla3RlIEFudHdvcnQgKEFudGhlYSwgMjcuIE1haSAyMDA5LCAwOTo1Nzo0NSk6Cn4jISBybj1SdW1hdGEgcnQ9MTI0MzQxMTAxNyByZz13aXR6ZQp+IyEgdGlkPTEyNDM0MTA5NzcKQWggc28uIEljaCB3ZXJkIGVzIG1pciBtZXJrZW4uCgpEZXIgZGlja2UgUHJvZmVzc29yIGhhdCB6dWZhZWxsaWcgc2VpbmVuIFNwaXR6bmFtZW4gaGVyYXVzYmVrb21tZW4gdW5kIGJlZ2lubnQKZGllIG5hZWNoc3RlIFZvcmxlc3VuZyBtaXQgZGVyIEFubWVya3VuZzogIldpZSBpY2ggaG9lcmUsIHdlcmRlIGljaCBoaW50ZXIKbWVpbmVtIFJ1ZWNrZW4gdm9uIElobmVuIGFscyAiRGFzIEZhc3MiIGJlemVpY2huZXQuIERpZXMgc29sbHRlbiBTaWUKdWViZXJkZW5rZW4sIGRlbm4gZXMgaXN0IHVuenV0cmVmZmVuZDogRWluIEZhc3MgaXN0IGdld29laG5saWNoIHZvbiBSZWlmZW4KdW1nZWJlbi4uLiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGYXJibGljaCAoQW50aGVhLCAyNy4gTWFpIDIwMDksIDEwOjAyOjIwKToKIlBhcGEsIHdhcyBzaW5kIGRlbm4gZGFzIGRhIGZ1ZXIgRnJ1ZWNodGU/IgoiRGFzPyBBY2gsIGRhcyBzaW5kIEJsYXViZWVyZW4uIgoiVW5kIHdhcnVtIHNpbmQgc2llIGRhbm4gcm90PyIKIldlaWwgc2llIG5vY2ggZ3J1ZW4gc2luZCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRmFyYmxpY2ggKEh1bW5pLCAyNy4gTWFpIDIwMDksIDIwOjEwOjU1KToKfiMhIHJuPUFudGhlYSBydD0xMjQzNDExMzQwIHJnPXdpdHplCn4jISB0aWQ9MTI0MzQxMTM0MApXYXJ1bSBibGVpYnQgaW4gTG9uZG9uIGRlciBTY2huZWUgbmljaHQgbGFuZ2UgbGllZ2VuPwoKV2VnZW4gZGVtIFRvd2VyIQoKKEF1c3NwcmFjaGV3aXR6KS4KCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZW1laW5zYW1lIEdlYnJhZXVjaGUgKEFudGhlYSwgMTUuIEp1biAyMDA5LCAxMzoyODo0Myk6CkVpbiBTY2hvdHRlIGhhdCBzZWluZW4gZnJhbnouIEZyZXVuZCB6dW0gRXNzZW4gZWluZ2VsYWRlbi4KRXMgZ2lidCBLYWVzZS4KCiJCZWkgdW5zIGdpYnQgZXMgS2Flc2UgaW1tZXIgenVtIFNjaGx1c3MgZGVyIE1haGx6ZWl0Ii4gc2FndCBkZXIgRnJhbnpvc2UuCgoiQmVpIHVucyBhdWNoISJlcndpZGVydCBkZXIgU2Nob3R0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLiAoQXJrLCAxNi4gSnVuIDIwMDksIDEyOjQwOjU5KToKV2hhdCBhcmUgdGhlIHRocmVlIHF1aWNrZXN0IHdheXMgdG8gc3ByZWFkIGEgcnVtb3VyPwoxLiBUZWxlZ3JhbQoyLiBUZWxlcGhvbmUKMy4gVGVsbCBhIHdvbWFuCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJvYmxlbWxvZXN1bmcgKEFudGhlYSwgMTcuIEp1biAyMDA5LCAwOTozNzo1NSk6CldvIGhhYmVuIFNpZSBkZW5uIGRlbiBzY2hvZW5lbiBLYW5hcmllbnZvZ2VsIGhlcj8iCgoiRGVzd2VnZW4gc2luZCB3aXIgZWlnZW5zIGF1ZiBkaWUgS2FuYXJpc2NoZW4gSW5zZWxuIGdlZmxvZ2VuISIKCiJBYmVyIGluIGRlciBab29oYW5kbHVuZyBhbSBSYXRoYXVzIGdpYnQgZXMgZG9jaCBhdWNoIHdlbGNoZSE/IgoKIlNjaG9uIG1vZWdsaWNoLiBBYmVyIGZpbmRlbiBTaWUgYmVpbSBSYXRoYXVzIG1hbCBlaW5lbiBQYXJrcGxhdHohIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nod2VpZ2VuIChBbnRoZWEsIDIxLiBKdWwgMjAwOSwgMTM6MzI6NTcpOgpFaW4gTWFubiB1bmQgc2VpbmUgRnJhdSBoYXR0ZW4gc2ljaCBnZXN0cml0dGVuIHVuZCByZWRldGVuIG5pY2h0IG1laHIKbWl0ZWluYW5kZXIuClBsb2V0emxpY2ggZXJpbm5lcnRlIGVyIHNpY2gsIGRhc3MgZXIgc2VpbmUgRnJhdSBiaXR0ZW4gd29sbHRlLCBpaG4gYW0KbmFlY2hzdGVuIE1vcmdlbiB1bSA1OjAwIHp1IHdlY2tlbiwgZGEgZXIgZWluZW4gZnJ1ZWhlbiBCdXNpbmVzcyBGbHVnIGhhdHRlLgpEYSBlciBuaWNodCBkZXIgZXJzdGUgc2VpbiB3b2xsdGUsIGRlciBkYXMgU2Nod2VpZ2VuIGJyYWNoICh1bmQgc29taXQgVkVSTE9SKSwKc2NocmllYiBlciBhdWYgZWluZW4gWmV0dGVsOgoiQml0dGUgd2Vja2UgbWljaCB1bSA1OjAwIGZydWVoIi4KRXIgbGllc3MgaWhuIGRvcnQsIHdvIGVyIHd1c3N0ZSwgZGFzcyBzaWUgaWhuIGZpbmRlbiB3dWVyZGUuCkFtIG5hZWNoc3RlbiBNb3JnZW4gd2FjaHRlIGVyIGF1ZiB1bmQgc2FoLCBkYXNzIGVzIGJlcmVpdHMgOTowMCB3YXIgdW5kIGVyCnNlaW5lbiBGbHVnIHZlcnNhZXVtdCBoYXR0ZS4gV3VldGVuZCBzdGFuZCBlciBhdWYsIHVtIHp1IHNjaGF1ZW4sIHdhcnVtIHNlaW5lCkZyYXUgaWhuIG5pY2h0IGdld2Vja3QgaGF0dGUsIGFscyBlciBlaW5lbiBaZXR0ZWwgbmViZW4gZGVtIEJldHQgYmVtZXJrdGUuCkRhcmF1ZiBzdGFuZDoKIkVzIGlzdCA1OjAwLiBXYWNoIGF1ZiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYXRoZWxlaHJlci4uLiAoR3dlbiwgMzAuIEp1bCAyMDA5LCAxMjo1Nzo0Nik6CkluIEVuZ2xhbmQgd3VyZGUgZWluIExlaHJlciBmZXN0Z2Vub21tZW4uIEJlaSBpaG0gd3VyZGVuIGVpbiBCbGVpc3RpZnQsIGVpbgpMaW5lYWwgdW5kIGVpbiBHZW9kcmVpZWNrIGdlZnVuZGVuLiBBbmdlYmxpY2ggd2FyIGVyIFRlaWwgZGVzIEFsLUdlYnJhCk5ldHp3ZXJrcyB1bmQgYmVzYXNzICJ3ZWFwb25zIG9mIG1hdGggaW5zdHJ1Y3Rpb24iLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3JhZCBha3R1ZWxsOiBNZXRhbGxlcmh1bW9yIChHd2VuLCAzMC4gSnVsIDIwMDksIDEzOjIzOjIwKToKPGctdGFoPiBNZXRhbGhlYWRzIGhhYmVuIGVoIGRlbiBiZXN0ZW4gSHVtb3IgIAo8VHJpbj4gSG93IGNvbWU/ICAKPGctdGFoPiBTdGVoIGJlaW0gS2F1ZmxhbmQgYW4gZGVyICJTY2huZWxsa2Fzc2UiICh3aWVzbyBhdWNoIGltbWVyIGRpZSBzbwpoZWlzc3QpLCB2b3IgbWlyIGVpbiBNaXR6d2FuemlnZXIgZ2FueiBpbiBkdW5rZWwgdW5kIHZvciBpaG0gc28gZWluIFBhcmlzCkhpbHRvbi1LbG9uICAKPGctdGFoPiBOYSBqYSwgZXIga2xvcGZ0IGlociBwbG9ldHpsaWNoIGF1ZiBkaWUgU2NodWx0ZXIgdW5kIGZyYWd0IGdhbnogbmV0dAoiRW50c2NodWxkaWd1bmcuIEtlbm5lbiB3aXIgdW5zPyIgCjxnLXRhaD4gU2llIGRyZWh0IHNpY2ggdW0sIGxhZXNzdCBpaHJlbiBCbGljayBlaW5tYWwgdm9uIG9iZW4gbmFjaCB1bnRlbiB1bmQKenVydWVjayB3YW5kZXJuIHVuZCBtZWludCBkYW5uICJEYXMgYmV6d2VpZmVsIGljaCBzdGFyay4iICAKPGctdGFoPiBEYXJhdWYgZXIgIkRhcmYgaWNoIG1pY2ggdm9yc3RlbGxlbj8iICAKPGctdGFoPiBTaWUgIlZvbiBtaXIgYXVzLiIgIAo8Zy10YWg+IERhcmF1ZiBnZWh0IGVyIGFuIGlociB2b3JiZWkgdW5kIGZhZW5ndCBhbiBzZWluIFpldWcgYXVmJ3MgQmFuZCB6dQpsZWdlbiA6RCAgCjxUcmluPiAuLi4gIDxUcmluPiBIYWU/ICAKPGctdGFoPiBHZW5hdSBkYXMgZGFjaHRlIGljaCBhdWNoLiBCaXMgaWNoJ3MgZ2VyYWZmdCBoYWIuLi4gIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEdyYWQgYWt0dWVsbDogTWV0YWxsZXJodW1vciAoSmltZGlncml6LCAzMC4gSnVsIDIwMDksIDE1OjA1OjAzKToKfiMhIHJuPUd3ZW4gcnQ9MTI0ODk1MzAwMCByZz13aXR6ZQp+IyEgdGlkPTEyNDg5NTMwMDAKSGF0IGRhIHdlciBnZXJtYW4tYmFzaC5vcmcgZW50ZGVja3Q/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEdyYWQgYWt0dWVsbDogTWV0YWxsZXJodW1vciAoR3dlbiwgMzAuIEp1bCAyMDA5LCAxNToyNTowMSk6Cn4jISBybj1KaW1kaWdyaXogcnQ9MTI0ODk1OTEwMyByZz13aXR6ZQp+IyEgdGlkPTEyNDg5NTMwMDAKRWhlciBlaW5mYWNoIGhldXRlIEx1c3QgenUgdGVpbGVuIDspCkd3ZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpGTFcuLi4gKEpvbmF0YW4sICAxLiBBdWcgMjAwOSwgMDg6MjQ6MjMpOgpTcmFiaSBzYWd0OiBzbyBpY2ggZ2VoZSBtYWwgc3RlcmJlbgpEdSBzYWdzdDogZ3VkIGxhY2sgOi0pClNyYWJpIGRlbmt0ICAgLiBvIE8gKGhvZmZlbnRsaWNoIGdlaHQgbWVpbiBkcmFrb3NjcmlwdCkKRHUga2ljaGVyc3QuIChXaWUgYWxiZXJuIHZvbiBEaXIpClNyYWJpIHZlcndhbmRlbHQgc2ljaCBpbiBlaW5lbiBzY2h3YXJ6ZW4gRHJhY2hlbiB1bmQgZXJoZWJ0IHNpY2ggaW4gZGllCkx1ZWZ0ZS4KW1RvZDpMYXJzXSBFaW4gU3BydW5nIGluIGVpbmVuIFRhbGtlc3NlbCBoYXQgZ2VyYWRlIFNyYWJpIHVtZ2VicmFjaHQuCltUb2Q6RWluIFNwcnVuZyBpbiBlaW5lbiBUYWxrZXNzZWxdIFBmZmZmZmZmZmZmZnQuLi4uLi4uUExVTVBTIQoKTmVpbiwgZXMgZnVua3Rpb25pZXJ0IHdvaGwgbmljaHQuLi4KSm9uYXRhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRlAtU3VjaGUgKFBhZG1lLCAgOC4gQXVnIDIwMDksIDE5OjE3OjE2KToKUmF1bWJlc2NocmVpYnVuZyA6ICpEaWVzZXIgbWFlY2h0aWdlIEJhdSByaWVjaHQgbnVyIHNvIG5hY2ggR2VsZC4gSmVkZW4gTW9tZW50CmVyd2FydGVzdCBEdSwgZGFzcyBEaXIgZWluIEhhdWZlbiBHZWxkIGluIGRlbiBTY2hvc3MgZmFlbGx0KiAtLS0gSW4gRXJ3YXJ0dW5nCmVpbmVzIEZQIG1hbCAqZXJ3YXJ0ZSBHZWxkKiBnZW1hY2h0IC0tLSBFcmdlYm5pczogKkdlbGQgYW4gZGllIExpc3RlCmFuZ2VoYWVuZ3QqIC0tLSAqZmluZ2VyIGdlbGQqIC0tLSAqR2VsZCBpc3Qgc2VpdCA0ODg5ZCAyMzozNjozNCBuaWNodCBtZWhyIGltCk1HKiAtLS0gZGEga2FubiBpY2ggYWJlciBsYWFhYW5nZSB3YXJ0ZW4gLipnZ2cqIFBhZG1lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFaW5lIEJsb25kaW5lIHVuZCBlaW4gUmVjaHRzYW53YWx0IChTbHlmb3gsIDExLiBBdWcgMjAwOSwgMDA6MjY6MzIpOgpFaW5lIEJsb25kaW5lIHVuZCBlaW4gUmVjaHRzYW53YWx0IHNpdHplbiBuZWJlbmVpbmFuZGVyIGltIFp1Zy4gRGVtClJlY2h0c2Fud2FsdCBpc3QgZWluIGJpc3NjaGVuIGxhbmd3ZWlsaWcuIFp1ciBBdWZsb2NrZXJ1bmcgd2lsbCBlciBtYWwgZWJlbgplaW4gU3BhZXNzY2hlbiBhdWYgS29zdGVuIGRlciBCbG9uZGluZSBtYWNoZW4uCgoiRW50c2NodWxkaWdlbiBTaWUsIGhhZXR0ZW4gU2llIEx1c3QgYXVmIGVpbiBTcGllbD8gRXMgaXN0IGdhbnogZWluZmFjaDogV2lyCnN0ZWxsZW4gdW5zIGdlZ2Vuc2VpdGlnIGVpbmUgRnJhZ2UsIHVuZCB3ZXIga2VpbmUgQW50d29ydCBoYXQsIGRlciBnaWJ0IGRlbQphbmRlcmVuIGZ1ZW5mIEV1cm8uIgoKRGllIEJsb25kaW5lIGxhZWNoZWx0IGdlbGFuZ3dlaWx0IHVuZCBsZWhudCBob2VmbGljaCBhYi4gRGVyIEFud2FsdCBhYmVyCmJsZWlidCBoYXJ0bmFlY2tpZyB1bmQgZXJob2VodCB6dSBpaHJlbiBHdW5zdGVuIGRlbiBFaW5zYXR6LCB3ZWlsIGVyIHNpY2gKc2ljaGVyIGlzdCwgIkRpZSB3ZWlzcyBiZXN0aW1tdCBuaWNodHMiLgoKIlNpZSBiZWtvbW1lbiA1MCBFdXJvLCBpY2ggd2VpdGVyaGluIG51ciA1IEV1cm8gZnVlciBqZWRlIG5pY2h0YmVhbnR3b3J0ZXRlCkZyYWdlLiIKCkdlc2FndCwgZ2V0YW4sIGRpZSBCbG9uZGluZSBsYWVzc3Qgc2ljaCBkYXJhdWYgZWluLiBEZXIgQW53YWx0IHN0ZWxsdCBlaW5lCmxhbmdlLCBrb21wbGl6aWVydGUsIGp1cmlzdGlzY2hlIEZyYWdlIHVuZCBkYSBkaWUgQmxvbmRpbmUgZXJ3YXJ0dW5nc2dlbWFlc3MKZGllIEFudHdvcnQgbmljaHQgd3Vzc3RlLCBiZWtvbW10IGVyIHNlaW5lIGZ1ZW5mIEV1cm8uCgpEYW5uIGlzdCBkaWUgQmxvbmRpbmUgZHJhbjogIldhcyBoYXQgendlaSBCZWluZSwgd2llIGVzIGRlbiBCZXJnIHJhdWZnZWh0LAp1bmQgZHJlaSBCZWluZSwgd2VubiBlcyBoZXJ1bnRlcmtvbW10PyIgRGVyIEFud2FsdCB1ZWJlcmxlZ3QsIHRlbGVmb25pZXJ0CnZlcnp3ZWlmZWx0IG1pdCBkZW0gSGFuZHksIHVuZCBnaWJ0IHNjaGxpZXNzbGljaCBkZXIgQmxvbmRpbmUgNTAgRXVyby4gU2llCnN0ZWNrdCBzaWUgZWluLCBsYWVjaGVsdCB1bmQgZHJlaHQgc2ljaCB1bS4KCiJNb21lbnQiLCBtZWludCBkZXIgQW53YWx0LCAiVW5kIHdhcyBpc3QgZGllIEFudHdvcnQ/IgoKRGFyYXVmIGRyZWh0IHNpY2ggZGllIEJsb25kaW5lIHVtLCBsYWVjaGVsdCB3aWVkZXIgdW5kIGdpYnQgaWhtIGZ1ZW5mIEV1cm8gLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRlAtU3VjaGUgKFpvb2ssIDEzLiBBdWcgMjAwOSwgMTg6NDQ6NDUpOgp+IyEgcm49UGFkbWUgcnQ9MTI0OTc1MTgzNiByZz13aXR6ZQp+IyEgdGlkPTEyNDk3NTE4MzYKKmxhY2gqIAoKQWxzbyBzbyBzY2hsaW1tIGlzdCBlcyBtaXQgZGVyIEdlbGR2ZXJzb3JndW5nIGltIE1HIGRvY2ggbmljaHQsIG9kZXI/CgpaCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWxhZGVuIChBbnRoZWEsIDMxLiBBdWcgMjAwOSwgMTA6NTI6NDApOgpFaW4gTmV1dHJvbiB3aWxsIGluIGVpbmUgRGlzY28gZ2VoZW4sIGFscyBlaW4gVHVlcnN0ZWhlciBlcyBhdWZoYWVsdCB1bmQgc2FndDoKIk51ciBmdWVyIGdlbGFkZW5lIEdhZXN0ZSEiIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVHJlZmZlbiBzaWNoIC4uIChBbGJvaW4sIDMxLiBBdWcgMjAwOSwgMTk6NDA6MzIpOgpUcmVmZmVuIHNpY2ggendlaSBUb2tlbiBpbiBlaW5lbSBSaW5nLgphbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2luZG93cyBpbnN0YWxsaWVyZW4gKFh1dGVsaXVzLCAgMi4gU2VwIDIwMDksIDE4OjE2OjM3KToKRnJhZ2UgYW4gZGFzIENvbXB1dGVyLVNlcnZpY2VjZW50ZXI6ICAiSWNoIGluc3RhbGxpZXJlIGdlcmFkZSBXaW5kb3dzLiBXYXMKc29sbCBpY2ggZHJ1ZWNrZW4/IgpBbnR3b3J0OiAiQmVpZGUgRGF1bWVuISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyb3RpayBpbiBaYWhsZW4gKEFudGhlYSwgMTYuIE9rdCAyMDA5LCAwOTozNjo1NCk6CkRlciBNYXRoZWxlaHJlciBmcmFndDogIktlbm50IGlociBlaW5lIGVyb3Rpc2NoZSBaYWhsPyIKClBhdWxhOiAiMjE4NTkzLiIKCkVyc3RhdW50IGZyYWd0IGRlciBMZWhyZXI6ICJXaWVzbyBkZW4gYXVzZ2VyZWNobmV0IDIxODU5Mz8iCgpQYXVsYSBlcmtsYWVydDogIldlbm4gMiBzaWNoIDEgc2luZCB1bmQgbmljaHQgOCBnZWJlbiwgZGFubiBtZXJrZW4gc2llCnNwYWV0ZXN0ZW5zIG5hY2ggNSBXb2NoZW4sIGRhc3Mgc2llIGluIDkgTW9uYXRlbiAzIHNpbmQhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEVyb3RpayBpbiBaYWhsZW4gKFJ1bWF0YSwgMTYuIE9rdCAyMDA5LCAwOTozOTo0Myk6Cn4jISBybj1BbnRoZWEgcnQ9MTI1NTY3ODYxNCByZz13aXR6ZQp+IyEgdGlkPTEyNTU2Nzg2MTQKTmljaHQgOCBpc3QgYWJlciA3LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBFcm90aWsgaW4gWmFobGVuIChDcm9mdCwgMTYuIE9rdCAyMDA5LCAwOTo0MDozMyk6Cn4jISBybj1SdW1hdGEgcnQ9MTI1NTY3ODc4MyByZz13aXR6ZQp+IyEgdGlkPTEyNTU2Nzg2MTQKT2RlciA5LiAgVW5kIGljaCBmaW5kIGRpZSBaYWhsIG5pY2h0IGVyb3Rpc2NoLgoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEVyb3RpayBpbiBaYWhsZW4gKEd3ZW4sIDE2LiBPa3QgMjAwOSwgMTA6MTQ6MzYpOgp+IyEgcm49Q3JvZnQgcnQ9MTI1NTY3ODgzMyByZz13aXR6ZQp+IyEgdGlkPTEyNTU2Nzg2MTQKQWJlciBuYXR1ZXJsaWNoIDspCkd3ZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgUHJvYmxlbWF0aWsgendpc2NoZW4gT2ZmZW5iYWNoIHVuZCBGcmFua2Z1cnQvTWFpbiAoR3dlbiwgMjEuIE9rdCAyMDA5LCAxMjoxNDozMyk6CkVpbiBEYXJtc3RhZWR0ZXIgdW5kIGVpbiBGcmFua2Z1cnRlciBzaXR6ZW4gaW0gWnVnLgoKQXVmIGVpbm1hbCBzcHJpbmd0IGRlciBadWcgYXVzIGRlbiBHbGVpc2VuLCBmYWVocnQgZWluZSBCb2VzY2h1bmcgcnVudGVyLCB1bQplaW5lbiBCYXVtIGhlcnVtLCBhbSBNYWluIGVudGxhbmcgdW5kIHdpZWRlciBhdWYgZGllIEdsZWlzZSB6dXJ1ZWNrLgoKRnJhbmtmdXJ0ZXI6IER1IHNhY2hlbWEsIHdpZXNvIHNpbm4gbWlyIGRhbm4gdm9uIGRlIEdsZWlzZSBlcnVubmVyIGRpZQpCb2VzY2h1bmcgZW5uYWIsIHVtIGRlbiBBYmJlbGJhdW0gZXJ1bSwgYW0gTWFhYSBlbnRsYW5nIHVuIHdpZGRlciB1ZmYgZGllCkdsZWlzZSBkcnVmZj8/CgpEYXJtc3RhZWR0ZXI6IEthYSBBaG51bmcsIHZpZWxsZWljaHQgc29sbHRlIG1lciBtYSBkZSBTY2hhZmZuZXIgZnJhYWNoZT8/CgpCZWlkZSBnZWhlbiB6dW0gU2NoYWZmbmVyLgoKRnJhbmtmdXJ0ZXI6IER1IHNhY2hlbWEgS2FkZGVhYnJlaXNzZXIsIHdpZXNvIHNpbm4gbWlyIGRhbm4gdm9uIGRlIEdsZWlzZQplcnVubmVyLCBkaWUgQm9lc2NodW5nIGVubmFiLCB1bSBkZW4gQWJiZWxiYXVtIGVydW0sIGFtIE1hYWEgZW50bGFuZyB1biB3aWRkZXIKdWZmIGRpZSBHbGVpc2UgZHJ1ZmY/PwoKU2NoYWZmbmVyOiBEYSBrYW5uIGljaCBJaG5lbiBhdWNoIG5pY2h0IHdlaXRlcmhlbGZlbi4gVmllbGxlaWNodCBzb2xsdGVuIHdpcgp1bnMgYmVpbSBadWdmdWVocmVyIGVya3VuZGlnZW4hPwoKQWxsZSBkcmVpIGdlaGVuIHp1bSBadWdmdWVocmVyLgoKRnJhbmtmdXJ0ZXI6IER1IHNhY2hlbWEgWnV1Y2hmaWVlcmVyLCB3aWVzbyBzaW5uIG1pciBkYW5uIHZvbiBkZSBHbGVpc2UKZXJ1bm5lciwgZGllIEJvZXNjaHVuZyBlbm5hYiwgdW0gZGVuIEFiYmVsYmF1bSBlcnVtLCBhbSBNYWFhIGVudGxhbmcgdW4gd2lkZGVyCnVmZiBkaWUgR2xlaXNlIGRydWZmPz8KClp1Z2Z1ZWhyZXI6IEVpIGRhIHN0YW5kIGVuIE9mZmVuYmFjaGVyIHVmZiBkZSBHbGVpc2UhPwoKRnJhbmtmdXJ0ZXI6IEphIHVubj8gRGEgZmFlaHJ0IG1lIGRvY2ggZHJpd3dlciE/CgpadWdmdWVocmVyOiBXb2xsdCBpc2NoIGphIGVyc3QgYWFjaC4gQWJiZXIgZGFubiBpcyBkZXIgYmxlZWRlIE9mZmViYWVzY2hlciB2b24KZGUgR2xlaXNlIGVydW5uZXIsIGRpZSBCb2VzY2h1bmcgZW5uYWIsIHVtIGRlbiBBYmJlbGJhdW0gZXJ1bSwgYW0gTWFhYQplbnRsYW5nLi4uLi4uIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmljaHRpZywgYWJlci4uLiAoR3d5cm9uLCAyNS4gT2t0IDIwMDksIDAxOjI5OjIyKToKRGllIExlaHJlcmluIHp1ciBLbGFzc2U6ICJXYXMgaXN0IHNjaHdhcnogdW5kIGhhdCB6d2VpIEJlaW5lPyIKRWluIFNjaHVlbGVyOiAiRWluZSBBbXNlbCEiCkxlaHJlcmluOiAiUmljaHRpZywgYWJlciBlcyBrb2VubnRlIGF1Y2ggZWluZSBLcmFlaGUgc2Vpbi4gQWJlciBtaXIgZ2VmYWVsbHQKRGVpbmUgQXJ0IHp1IGRlbmtlbiEiCk5hY2gga3VyemVyIFBhdXNlIHN0ZWxsdCBkaWUgTGVocmVyaW4gZGllIG5hZWNoc3RlIEZyYWdlOiAiV2FzIGlzdCBzY2h3YXJ6IHVuZApoYXQgdmllciBCZWluZT8iCkVpbmUgU2NodWVsZXJpbjogIkVpbmUgS2F0emUhIgpMZWhyZXJpbjogIlJpY2h0aWcsIGFiZXIgZXMga29lbm50ZSBhdWNoIGVpbiBQYW50aGVyIHNlaW4uIEFiZXIgbWlyIGdlZmFlbGx0CkRlaW5lIEFydCB6dSBkZW5rZW4uIgpNZWxkZXQgc2ljaCBLbGVpbi1Gcml0emNoZW46ICJGcmF1IExlaHJlcmluLCB3YXMgaXN0IGdyb3NzIHVuZCBoYXJ0LCB3ZW5uIG1hbgplcyByZWluc3RlY2t0IHVuZCBrbGVpbiB1bmQgd2VpY2gsIHdlbm4gbWFuIGVzIGhlcmF1c3ppZWh0PyIKRGFyYXVmaGluIGJla29tbXQgS2xlaW4tRnJpdHpjaGVuIHZvbiBkZXIgTGVocmVyaW4gb3JkZW5saWNoIGVpbmUgZ2VzY2hldWVydC4KRGFyYXVmIEtsZWluLUZyaXR6Y2hlbjogIlJpY2h0aWcsIEZyYXUgTGVocmVyaW4sIGFiZXIgZXMga29lbm50ZSBhdWNoIGVpbgpLYXVndW1taSBzZWluLiBBYmVyIG1pciBnZWZhZWxsdCBJaHJlIEFydCB6dSBkZW5rZW4uLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOYW1lbiAoQW50aGVhLCAgNC4gTm92IDIwMDksIDA4OjQ4OjA2KToKRmVsZHdlYmVsIEtsZWluIHNjaHJlaXRldCBkaWUgUmVpaGVuIGRlciBSZWtydXRlbiBhYiB1bmQgYmxlaWJ0IHZvciBlaW5lbQpzdGVoZW46CgoiV2llIGhlaXNzZW4gU2llPyIgLQoiQmVybmQgUGljaywgZXJzdGVzIFJlZ2ltZW50LiBVbmQgU2llPyIgLQoKIlNjaG5hdXplISIgLQoKIkF1Y2gga2VpbiBzY2hsZWNodGVyIE5hbWUsIEhlcnIgRmVsZHdlYmVsLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOYW1lbiAoQW5hdG9sLCAgNC4gTm92IDIwMDksIDEwOjU3OjU2KToKfiMhIHJuPUFudGhlYSBydD0xMjU3MzIwODg2IHJnPXdpdHplCn4jISB0aWQ9MTI1NzMyMDg4NgpLYW5udGUgbWFsIGVpbmVuLCBkZXIgbWl0IE5hY2huYW1lbiAiU3BpZXNzIiBoaWVzcy4gRGVyIGhhdHRlIHNlaW5lbiBTcGFzcy4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5hbWVuIChHbG9pbnNvbiwgIDQuIE5vdiAyMDA5LCAxMTozMDozOCk6Cn4jISBybj1BbmF0b2wgcnQ9MTI1NzMyODY3NiByZz13aXR6ZQp+IyEgdGlkPTEyNTczMjA4ODYKRWluZW4gU3BpZXNzIG5hbWVucyBTcGllc3M/IFNvbGNoZSBOYW1lbnN6dWZhZWxsZSBnaWJ0IGVzIGRvY2ggbnVyIGltIFdpdHouCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmFtZW4gKEFuYXRvbCwgIDQuIE5vdiAyMDA5LCAxMTozNDoxMCk6Cn4jISBybj1HbG9pbnNvbiBydD0xMjU3MzMwNjM4IHJnPXdpdHplCn4jISB0aWQ9MTI1NzMyMDg4NgpOZWluLCBkZXIgUmVrcnV0IGhpZXNzIFNwaWVzcy4gTWFjaHRlIGVzIGZ1ZXIgaWhuIG5pY2h0IGVpbmZhY2hlci4gOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYW1lbiAoQ3JvZnQsICA0LiBOb3YgMjAwOSwgMTE6MzY6MTEpOgp+IyEgcm49QW5hdG9sIHJ0PTEyNTczMzA4NTAgcmc9d2l0emUKfiMhIHRpZD0xMjU3MzIwODg2ClNhZ3QgZGVyIFNwaWVzcyB6dW0gU3BpZXNzIC4uLj8KCkNyb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOYW1lbiAoR2xvaW5zb24sICA0LiBOb3YgMjAwOSwgMTE6MzY6MTkpOgp+IyEgcm49QW5hdG9sIHJ0PTEyNTczMzA4NTAgcmc9d2l0emUKfiMhIHRpZD0xMjU3MzIwODg2CklzdCBlciB3ZW5pZ3N0ZW5zIG1hbCBTcGllc3MgZ2V3b3JkZW4sIG9kZXIgaGF0IGVyIGRhcyBlaW5lciBhbmRlcmVuCnVlYmVybGFzc2VuPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IE5hbWVuIChIaWdobGFuZGVyLCAgNC4gTm92IDIwMDksIDE3OjA1OjMwKToKfiMhIHJuPUdsb2luc29uIHJ0PTEyNTczMzA5Nzkgcmc9d2l0emUKfiMhIHRpZD0xMjU3MzIwODg2CkVzIGdpYnQgamEgYXVjaCBnZW51ZyBTY2h1ZXR6ZW4gSGF1cHRtYW5uLgoKSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBOYW1lbiAoVmFuaW9uLCAgNC4gTm92IDIwMDksIDIwOjI0OjAzKToKfiMhIHJuPUhpZ2hsYW5kZXIgcnQ9MTI1NzM1MDczMCByZz13aXR6ZQp+IyEgdGlkPTEyNTczMjA4ODYKVmllbGxlaWNodCB3dXJkZSBkZXIgUmVrcnV0IGphIHNwYWV0ZXIgU3BpZXNzIDopCgpWKgpQczogSWNoIGthbm50ZSBtYWwgZWluZW4gRmFlaG5yaWNoIEZhZWhucmljaC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IE5hbWVuIChKaW1kaWdyaXosICA1LiBOb3YgMjAwOSwgMjA6MjU6NDQpOgp+IyEgcm49VmFuaW9uIHJ0PTEyNTczNjI2NDMgcmc9d2l0emUKfiMhIHRpZD0xMjU3MzIwODg2Ck5vbWVuIGVzdCBPbWVuIEZhZWxsZSBmaW5kZSBpY2ggZXJzdGF1bmxpY2ggaGFldWZpZy4uLgp6QiBoYWIgaWNoIGxldHp0ZW5zIGVpbiBJbnRlcnZpZXcgZ2Vob2VydDoKRGllIE1lZXJlc2Jpb2xvZ2luIERyLiBIZWxlbiBfU2NhbGVzXyBoYXQgZGVuCkZpc2NoZXhwZXJ0ZW4gRHIuIEJhc3MgYmVmcmFndC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogTmFtZW4gKEdub21lLCAgOS4gTm92IDIwMDksIDIzOjUzOjI5KToKfiMhIHJuPUppbWRpZ3JpeiBydD0xMjU3NDQ5MTQ0IHJnPXdpdHplCn4jISB0aWQ9MTI1NzMyMDg4NgpkZXIgY2hlZmFyenQgZGVyIGlubmVyZW4gdW5kIHNlaHIgYmVnYWJ0ZXIgY2hpcnVyZyBpbiBkZW0ga3JhbmtlbmhhdXMsCmluIHdlbGNoZW0gaWNoIG1laW5lbiB6aXZpIGdlbWFjaHQgaGFiZSwgaGllc3MgRHIuIFp1c2NobmVpZC4KbmVpbiwga2VpbiB3aXR6LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeOTogTmFtZW4gKEdsb2luc29uLCAxMC4gTm92IDIwMDksIDAyOjQ4OjA5KToKfiMhIHJuPUdub21lIHJ0PTEyNTc4MDcyMDkgcmc9d2l0emUKfiMhIHRpZD0xMjU3MzIwODg2CkVpbiBBdWZyZWlzc2VyIHdhciBlciBhbHNvIG5pY2h0PwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjEwOiBOYW1lbiAoSGlnaGxhbmRlciwgMjUuIE5vdiAyMDA5LCAwOToyNTo0OSk6Cn4jISBybj1HbG9pbnNvbiBydD0xMjU3ODE3Njg5IHJnPXdpdHplCn4jISB0aWQ9MTI1NzMyMDg4NgpXaGF0IGRvZXMgb25lIGJyYWluIHNheSB0byBhbm90aGVyPwoKSSBsb2JlIHlvdS4KCkhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWl0dGVsZ3Jvc3MgKEFudGhlYSwgMTkuIEphbiAyMDEwLCAxMzoyODoxNSk6CgpFaW4gTWFubiBrYXVmdCBlaW5lbiBUYW5nYSBmdWVyIHNlaW5lIEZyYXUKVmVya2FldWZlcmluOiBXZWxjaGUgR3JvZXNzZT8KTWFubjogUHVoLCBzY2h3ZXIgenUgc2FnZW4gLi4uClZlcmthZXVmZXJpbjogRGVzIGlzdCBhYmVyIHNjaG9uIHdpY2h0aWcgLi4uCk1hbm46IEFoIC0gaWNoIHdlaXNzLCBzaWUgaGF0IDc2IQpWZXJrYWV1ZmVyaW46IDc2ID8gRGllIEdyb2Vzc2UgZ2lidCBlcyBuaWNodC4gV2llIGtvbW1lbiBzaWUgZGFyYXVmPwpNYW5uOiBJY2ggaGFiIG5lbiA4MGVyIEZlcm5zZWhlciwgdW5kIHdlbm4gbWVpbmUgT2xsZSBkYXZvciBzdGVodCwgYmxlaWJlbgogICAgICByZWNodHMgdW5kIGxpbmtzIDJjbSBmcmVpLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXZXI/IFdhcz8gV28/IChBbnRoZWEsIDIxLiBKYW4gMjAxMCwgMTM6MjY6MTApOgpFcyBzYXNzZW4gYW0gVWZlciBkZXMgSW5kdXMsCmRyZWkgcGhpbG9zb3BoaWVyZW5kZSBIaW5kdXMuCklociBQcm9ibGVtIHdhciBmYXRhbCwKZGVubiBzaWUgZnJhZ3RlbiB2b2xsIFF1YWwsCmJpc3QgaWNoIGVzLCBzaW5kIGVyJ3Mgb2RlciBiaW4gZHUncyA/CihhbmdlYmxpY2ggdm9uIFNjaG9iZXJ0ICYgQmxhY2spCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEYXN0dXRhYmVyd2VoIChBbnRoZWEsIDIxLiBKYW4gMjAxMCwgMTM6MjY6NDApOgpTaW5kIDIgTXVmZmlucyBpbSBPZmVuLgpTYWd0IGRlciBlaW5lOiAiSGFsbG8iClNhZ3QgZGVyIGFuZGVyZTogIkFhYWFhYWghIEVpbiBzcHJlY2hlbmRlciBNdWZmaW4hIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERhc3R1dGFiZXJ3ZWggKFZlY3RvciwgMjEuIEphbiAyMDEwLCAyMzowNzoxMSk6Cn4jISBybj1BbnRoZWEgcnQ9MTI2NDA3NjgwMCByZz13aXR6ZQp+IyEgdGlkPTEyNjQwNzY4MDAKCldpZSBuZW5udCBtYW4gZWluZW4gQnVtZXJhbmcsIGRlciBuaWNodCB6dXJ1ZWNrIGtvbW10PwoKCgoKU3RvY2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IERhc3R1dGFiZXJ3ZWggKE5pY29sYWksIDI0LiBKYW4gMjAxMCwgMjA6MjU6MjYpOgp+IyEgcm49VmVjdG9yIHJ0PTEyNjQxMTE2MzEgcmc9d2l0emUKfiMhIHRpZD0xMjY0MDc2ODAwCmtsYXNzaXNjaGVzIGZyYXVlbmFyZ3VtZW50ICh3ZW5uIGlociBkaWUgYXJndW1lbnRlCmF1c2dlaGVuIGltIGxhdWZlIGRlciBkaXNrdXNzaW9uKToKCiJhYmVyIHRyb3R6ZGVtISIKCihlaWdlbnRsaWNoIGtlaW4gd2l0eikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFzc2Vzc21lbnQgQ2VudGVyIChBcmssICA0LiBGZWIgMjAxMCwgMTk6NTg6NDcpOgpGYWxscyBiZWkgQmV3ZXJiZXJuIG1hbCBuaWNodCBzbyByaWNodGlnIGtsYXIgaXN0LCBpbiB3ZWxjaGVyIEFidGVpbHVuZyBzaWUgYW0KYmVzdGVuIGF1ZmdlaG9iZW4gc2luZCwgaGllciBlaW5lIGtsZWluZSBBbmxlaXR1bmc6CgoxLiA0MDAgWmllZ2Vsc3RlaW5lIGluIGVpbmVuIHNvbnN0IGxlZXJlbiBSYXVtIGJyaW5nZW4KMi4gQWxsZSBCZXdlcmJlciBpbiBkaWVzZW4gUmF1bSBmdWVocmVuIHVuZCBUdWVyIHNjaGxpZXNzZW4KMy4gQmV3ZXJiZXIgYWxsZWluZSBsYXNzZW4gdW5kIG5hY2ggNiBTdHVuZGVuIHdpZWRlcmtvbW1lbgoKQW5hbHlzZToKCi0gV2VubiBzaWUgZGllIFN0ZWluZSBnZXphZWhsdCBoYWJlbiAgICAgICAgICAgICAgICAgICAgICAgPiBCdWNoaGFsdHVuZwotIFdlbm4gZGllIFN0ZWluZSB3aWxkIGltIGdhbnplbiBSYXVtIHZlcnRlaWx0IHNpbmQgICAgICAgICA+IEYgJiBFCi0gV2VubiBkaWUgU3RlaW5lIGluIGVpbmVtIHVuZHVyY2hzY2hhdWJhcmVuIFN5c3RlbQogIGFuZ2VvcmRuZXQgc2luZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBPcmdhbmlzYXRpb24KLSBXZW5uIHNpZSBzaWNoIG1pdCBkZW4gU3RlaW5lbiBiZXdlcmZlbiAgICAgICAgICAgICAgICAgICAgPiBCZXRyaWVic2xlaXR1bmcKLSBXZW5uIHNpZSBzY2hsYWZlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gV2Vya3NjaHV0egotIFdlbm4gc2llIGRpZSBTdGVpbmUgaW4ga2xlaW5lIFN0dWVja2UgemVyYnJvY2hlbiBoYWJlbiAgICA+IElUCi0gV2VubiBzaWUgbnVyIHNvIGhlcnVtc2l0emVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gUGVyc29uYWwKLSBXZW5uIHNpZSBiZXJlaXRzIG5hY2ggSGF1c2UgZ2VnYW5nZW4gc2luZCAgICAgICAgICAgICAgICAgPiBNYXJrZXRpbmcKLSBXZW5uIHNpZSBudXIgYXVzIGRlbSBGZW5zdGVyIHNjaGF1ZW4gICAgICAgICAgICAgICAgICAgICAgPiBTdHJhdC4KUGxhbnVuZwotIFdlbm4gc2llIGF1ZmdlcmVndCBtaXRlaW5hbmRlciByZWRlbiB1bmQga2VpbgogIGVpbnppZ2VyIFN0ZWluIGJld2VndCB3dXJkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IFRvcApNYW5hZ2VtZW50CgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBc3Nlc3NtZW50IENlbnRlciAoR2xvaW5zb24sICA0LiBGZWIgMjAxMCwgMjA6MDY6MDIpOgp+IyEgcm49QXJrIHJ0PTEyNjUzMDk5Mjcgcmc9d2l0emUKfiMhIHRpZD0xMjY1MzA5OTI3CkRyZWNrLiBEaWUgTGV1dGUsIGRpZSBkYW1pdCBnZXNwaWVsdCBoYWJlbiwgd2VyZGVuIG5hdHVlcmxpY2ggd2llZGVyIG5pY2h0CmVpbmdlc3RlbGx0IC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXNzZXNzbWVudCBDZW50ZXIgKEFsYm9pbiwgIDQuIEZlYiAyMDEwLCAyMDoxNTo1MSk6Cn4jISBybj1HbG9pbnNvbiBydD0xMjY1MzEwMzYyIHJnPXdpdHplCn4jISB0aWQ9MTI2NTMwOTkyNwpHZW5hdSwgbWlyIGxhZyBzb3dhcyBhZWhubGljaGVzIGF1ZiBkZXIgWnVuZ2UsIGFlaCBpbiBkZW4gRmluZ2Vybjogd2FzIGlzdCBtaXQKZGVuIExldXRlbiBkaWUga2xlaW5lIEt1bnN0d2Vya2UgZ2ViYXV0IGhhYmVuLiA+QW4gZGVtIFdpdHogbXVzcyBkdSBub2NoCmZlaWxlbiBBcmsuCmFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBc3Nlc3NtZW50IENlbnRlciAoR2xvaW5zb24sICA0LiBGZWIgMjAxMCwgMjA6MTY6NDEpOgp+IyEgcm49QWxib2luIHJ0PTEyNjUzMTA5NTEgcmc9d2l0emUKfiMhIHRpZD0xMjY1MzA5OTI3CkljaCBmaW5kZSwgZGVyIGlzdCBzbyBwZXJmZWt0LiBCZXNzZXIgd2lyZCBkYSBuYWVtbGljaCBuaWNodHMgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBBc3Nlc3NtZW50IENlbnRlciAoQXJrLCAgNC4gRmViIDIwMTAsIDIwOjMzOjIxKToKfiMhIHJuPUFsYm9pbiBydD0xMjY1MzEwOTUxIHJnPXdpdHplCn4jISB0aWQ9MTI2NTMwOTkyNwpXaWVzbywgYW4gZGVtIDMuIGVyYmFlcm1saWNoZW4gUG9zdGluZyBWZXJzdWNoIHNpZWh0IG1hbiBkb2NoLCBkYXNzIGljaCBkYXMKbmljaHQgc2VsYnN0IGVyZGFjaHQgaGFiZSA6LSkKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBBc3Nlc3NtZW50IENlbnRlciAoR2xvaW5zb24sICA0LiBGZWIgMjAxMCwgMjA6NDU6MTgpOgp+IyEgcm49QXJrIHJ0PTEyNjUzMTIwMDEgcmc9d2l0emUKfiMhIHRpZD0xMjY1MzA5OTI3CkVpbmRldXRpZyBUb3BtYW5hZ2VybWF0ZXJpYWwuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFzc2Vzc21lbnQgQ2VudGVyIChab29rLCAgNS4gRmViIDIwMTAsIDA5OjM2OjI1KToKfiMhIHJuPUFyayBydD0xMjY1MzA5OTI3IHJnPXdpdHplCn4jISB0aWQ9MTI2NTMwOTkyNwpXYXMgaGF0dGVzdCBEVSBkYW1hbHMgbWl0IGRlbiBTdGVpbmVuIGdlbWFjaHQsIEFyaz8KWm9vay4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXNzZXNzbWVudCBDZW50ZXIgKEFyaywgIDUuIEZlYiAyMDEwLCAxMzozMDoyNSk6Cn4jISBybj1ab29rIHJ0PTEyNjUzNTg5ODUgcmc9d2l0emUKfiMhIHRpZD0xMjY1MzA5OTI3CldpciBoYXR0ZW4ga2VpbmUgU3RlaW5lLiBFcyB3YXJlbiBoYXJ0ZSBaZWl0ZW4uIFdpciBoYXR0ZW4gbmljaHRzIHVuZCBzYXNzZW4KaGVydW0uIE1pY2ggaGF0dGUgbWFuIG51ciB2ZXJnZXNzZW4gd2llZGVyIHJhdXN6dXNjaG1laXNzZW4uIEFsc28ga2FtIGluCiJTYWxlcyBIZWxsIi4gV2FzIGRhcyBiZWRldXRldGUsIHd1c3N0ZSBpY2ggZGFtYWxzIG5vY2ggbmljaHQuCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnVzc2JhbGxnb3R0IGluIEtvZWxsZSAoQWxib2luLCAgNS4gRmViIDIwMTAsIDIwOjI4OjM5KToKU29sZG8gKFRyYWluZXIgdm9uIEtvZWxsZSkgZW50ZGVja3QgaW4gQmFnZGFkIGVpbmVuIDE3LWphZWhyaWdlbiBpcmFraXNjaGVuCkZ1c3NiYWxsZ290dCB1bmQga2FubiBkZW4ganVuZ2VuIE1hbm4gdWViZXJyZWRlbiwgbWl0IG5hY2ggRGV1dHNjaGxhbmQgenUKa29tbWVuLiBEZXIgbmV1ZSBTcGllbGVyIHVlYmVydHJpZmZ0IGFsbGUgRXJ3YXJ0dW5nZW4gdW5kIGVyemllbHQgaW4gc2VpbmVtCmVyc3RlbiBCdW5kZXNsaWdhc3BpZWwgZGFzIDE6MCBTaWVndG9yLiAgdWViZXJnbHVlY2tsaWNoIHJ1ZnQgZXIgc2VpbmUgTXV0dGVyCmFuOiAiV2FzIGZ1ZXIgZWluIGhlcnJsaWNoZXIgVGFnLCBpY2ggaGFiZSAuLi5laW4gVG9yIGdlc2Nob3NzZW4hIiwgIld1bmRlcmJhcgpkYXNzIGVzIERpciBzbyBndXQgZ2VodCIsIGFudHdvcnRldCBkaWUgTXV0dGVyIHNhcmthc3Rpc2NoLCAibGFzcyBEaXIKZXJ6YWVobGVuLCB3aWUgdW5zZXIgVGFnIGF1c3NhaDogIkRlaW4gVmF0ZXIgd3VyZGUgYXVmIG9mZmVuZXIgU3RyYXNzZQphbmdlc2Nob3NzZW4sIERlaW5lIFNjaHdlc3RlciB1bmQgaWNoIHd1cmRlbiB2ZXJnZXdhbHRpZ3QsIHVuZCBEZWluIGtsZWluZXIKQnJ1ZGVyIGlzdCBqZXR6dCBNaXRnbGllZCBlaW5lciBTdHJhc3NlbmdhbmcuIgoiV2llIGVudHNldHpsaWNoLCB3aWUgZnVyY2h0YmFyIiBqYW1tZXJ0IGRlciBGdXNzYmFsbGVyLCAid2llIGZ1cmNodGJhciwgZGFzCnR1dCBtaXIgc28gbGVpZC4uLiIiRXMgdHV0IERpciBsZWlkPyE/IiwgZmFlaHJ0IGRpZSBNdXR0ZXIgYXVmZ2VicmFjaHQKZGF6d2lzY2hlbi4gRXMgaXN0IGRvY2ggRGVpbmUgU2NodWxkLCBkYXNzIHdpciBqZXR6dCBpbiBLb2VsbiB3b2huZW4hIgoKYWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQXNzZXNzbWVudCBDZW50ZXIgKEJhbWJpLCAgNy4gRmViIDIwMTAsIDE0OjQ0OjQzKToKfiMhIHJuPVpvb2sgcnQ9MTI2NTM1ODk4NSByZz13aXR6ZQp+IyEgdGlkPTEyNjUzMDk5MjcKRGllIFR1ZXIgenVnZW1hdWVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBBc3Nlc3NtZW50IENlbnRlciAoQW50aGVhLCAgOS4gRmViIDIwMTAsIDA4OjQ1OjM0KToKfiMhIHJuPUFyayBydD0xMjY1MzA5OTI3IHJnPXdpdHplCn4jISB0aWQ9MTI2NTMwOTkyNwpEYXMgaGllciBoYWIgaWNoIG5vY2ggYWxzIEFudHdvcnQgYXVmIGVpbiBmcmVjaGVzIFdlaXRlcmxlaXRlbiBnZWtyaWVndDoKLSBXZW5uIHNpZSBkaWUgU3RlaW5lIHp1IGVpbmVyIE1hdWVyIHVtIHNpY2ggaGVydW0gYXVmZ2V0dWVybXQgaGFiZW4gPgpFRFYtQWRtaW4KLSBXZW5uIGRpZSBTdGVpbmUgdmVyc2Nod3VuZGVuIHNpbmQgdW5kIG5pZW1hbmQgd2Vpc3Mgd29oaW4gPiBMYWdlcmhhbHR1bmcKLSBXZW5uIGFsbGUgQmV3ZXJiZXIgYmVyZWl0cyBuYWNoIDEwIE1pbnV0ZW4gaW4gZGVyIFRlZWt1ZWNoZSBzaXR6ZW4gPgpTZWtyZXRhcmlhdAotIFdlbm4gcGxvZXR6bGljaCA1MCBTdGVpbmUgenUgdmllbCBkYSBzaW5kID4gRWlua2F1ZgotIFdlbm4gZGllIEJld2VyYmVyIGRlbiBSYXVtIGVyc3QgbmFjaCB6YWVoZW4gVmVyaGFuZGx1bmdlbiB3aWVkZXIgdmVybGFzc2VuID4KQmV0cmllYnNyYXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXZXI/IFdhcz8gV28/IChDaXJkYW4sIDEwLiBGZWIgMjAxMCwgMTc6MzM6NDUpOgp+IyEgcm49QW50aGVhIHJ0PTEyNjQwNzY3NzAgcmc9d2l0emUKfiMhIHRpZD0xMjY0MDc2NzcwCkphLCBpc3Qgdm9uIFNjaG9iZXJ0IHVuZCBCbGFjay4KVm9uIGRlbmVuIGdhYnMgYXVjaCBmb2xnZW5kZW46CgpFaW4gVG91cmlzdCBhdWYgZGVyIEluc2VsIEtyawprYW0gc3BhZXRhYmVuZHMgaW5zIEdhc3RoYXVzIHpyY2suCkRvY2ggd2VsY2ggZWluIFNjaHJjazoKc2VpbmUgS29mZmVyIHdhciduIHdnIQpWb3JiZWkgd2FyIHNlaW4gRmVyaWVuZ2xjay4KCkRlciBnZWZpZWwgbWlyIGltbWVyIGFtIGJlc3Rlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmduYS4uLiAoTmljb2xhaSwgMTEuIEZlYiAyMDEwLCAwMToyOTowMik6CmViZW4gYmVpbSBhdXNmdWVsbGVuIGVpbmVzIGZvcm11bGFycyBmdWVyIG5lIG9ubGluZS0KYmVzdGVsbHVuZzoKCj5PcnQ6IFVsbQoKPkZhbHNjaGUgRWluZ2FiZSwgRWluZ2FiZSBPcnQgbXVzcyBtaW5kZXN0ZW5zIDQgQnVjaHN0YWJlbiBoYWJlbiwKPmJpdHRlIHdpZWRlcmhvbGVuIFNpZSBkaWUgRWluZ2FiZS4KCgpQZm9laCwgZGFubiBoYWx0IG5pY2h0IChvZGVyIHNvbGwgaWNoICJVbHVtIiBzY2hyZWliZW4/KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV1cgKEdub21lLCAgMS4gTWFyIDIwMTAsIDAxOjIyOjQxKToKV2llIFdlc3RlcndlbGxlIGlzdCBlaWdlbnRsaWNoLi4uCgogCgouLi5HZW9yZ2UgVy4gQnVzaD8KClN0ZXVlcmdlc2NoZW5rZSBmfHIgZGllIGVpZ2VuZSBLbGllbnRlbCBtYWNoZW4sIHdlbmlnIEx1c3QgYXVmIEF1c3NlbnBvbGl0aWsKaGFiZW4sIG1pdCBzbyBldHdhcyBhZWhubGljaGVtIHdpZSBlaW5lciBGcmF1IGxpaWVydCBzZWluLCB1bmdlcm4gRW5nbGlzY2gKc3ByZWNoZW4sIGRvb2Ygd2llIEJydW5uZW5rcmVzc2Ugc2VpbiAtIGhhZXR0ZSBHZW9yZ2UgVy4gQnVzaCBqZSBlY2h0ZW4KcG9saXRpc2NoZW4gRWhyZ2VpeiBiZXNlc3NlbiwgbWFuIG11ZXNzdGUgbmljaHQgbnVyIEluaXRpYWxlbmdsZWljaGhlaXQKbWl0IEd1aWRvIFdlc3RlcndlbGxlLCBCdW5kZXNhdXNzZW5taW5pc3RlciBmZXN0c3RlbGxlbi4KCldlc3RlcndlbGxlLUZha3RvcjogOCw2CgogCgouLi5TdGFsaW5pc211cz8KCkRhcyBEb2dtYSwgZGFzcyBlaW5lciwgZGVyIG5pY2h0IGFyYmVpdGVuIHdpbGwsIGVpbmVzIHd1ZXJkZXZvbGxlbiBMZWJlbnMKbmljaHQgd2VydCBzZWksIHBsdXMgZGllIFZ1bGdhcmlzaWVydW5nIHBvbGl0aXNjaGVyIFBoaWxvc29waGllIC0gZGFzIGlzdApzY2hvbiB6aWVtbGljaCBXZXN0ZXJ3ZWxsZS4gU3RhbGluIGhhZXR0ZSBhYmVyIG5pZSBlaW5lIERpc2t1c3Npb24gdW0gZWluZQpEb3BwZWxzcGl0emUgby5hZS4genVnZWxhc3Nlbi4KCldlc3RlcndlbGxlLUZha3RvcjogNSw4CgogCgouLi5MYXR0ZSBNYWNjaGlhdG8/CgpFbGl0YWVyIHdpZSBhbGxlIFdlbHQgdW5kIGRhdWVybmQgU2NoYXVtIHZvciBkZW0gTXVuZCwgZ2VodCBhYmVyIG5pY2h0IG51cgphdWYgZGVuIEtla3MsIHNvbmRlcm4ga29tbXQgYXVjaCBtaXQgZWluZW0gdW5kIGlzdCB6dW1pbmRlc3QgZ2VsZWdlbnRsaWNoCmdlbmllc3NiYXIuCgpXZXN0ZXJ3ZWxsZS1GYWt0b3I6IDQsMQoKIAoKLi4uV3Vyc3R3YXNzZXI/CgpUcnVlYiwgbXVmZmlnLCBydWVja3QgYXJtZW4gV3VlcnN0Y2hlbiBhdWYgZGllIFBlbGxlLCBrb21tdCBkYWJlaSBhYmVyIG51cgptaXQgUmVzdGVuIHZvbiBIZXJ6IHVuZCBIaXJuIGluIEtvbnRha3QuIE1laHIgV2VzdGVyd2VsbGUgaXN0IG51cgpXZXN0ZXJ3ZWxsZSEKCgpXZXN0ZXJ3ZWxsZS1GYWt0b3I6IDksOQoKCi0tLQoKbmF0dWVybGljaCB2b246IFRpdGFuaWMKCgpnbk9tZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEludGVncmF0aW9uIChDcm9mdCwgMTEuIE1hciAyMDEwLCAwOToxNTowMSk6Cn4jISBybj1BbnRoZWEgcnQ9MTI2ODI5NTI1OCByZz13aXR6ZQp+IyEgdGlkPTEyNjgyOTUyNTgKRGFubiBob2wgbWFsIGR5IGluIGRpZSBFY2tlLgoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkludGVncmF0aW9uIChBbnRoZWEsIDExLiBNYXIgMjAxMCwgMDk6MTU6MTApOgpGZWllcm4gYWxsZSBGdW5rdGlvbmVuIG5lIFBhcnR5LCBkaWUgU3RpbW11bmcgaXMgdG9sbCwgbnVyIGRpZSBlLUZ1bmt0aW9uCnNpdHp0IGFsbGVpbiBpbiBlaW5lciBFY2tlLgpLb21tdCB4XjIgIHp1IGlociBoaW4gdW5kIHNhZ3QgIkhleSwga29tbSB1bmQgaW50ZWdyaWVyIGRpY2ggZG9jaCBtYWwhIgpTYWdlIGRpZSBlLUZ1bmt0aW9uIHRyYXVyaWcgIkhhYiBpY2ggZG9jaCBzY2hvbiBwcm9iaWVydCEiIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEludGVncmF0aW9uIChSdW1hdGEsIDExLiBNYXIgMjAxMCwgMTA6MjE6MjkpOgp+IyEgcm49QW50aGVhIHJ0PTEyNjgyOTUzMTAgcmc9d2l0emUKfiMhIHRpZD0xMjY4Mjk1MzEwCkRlciBnZWh0IGFuZGVyczoKClRyZWZmZW4gc2ljaCB6d2VpIEZ1bmt0aW9uZW4uClNhZ3QgZGllIGVpbmUgZ2VoIG1pciBhdXMgZGVtIFdlZyBvZGVyIGljaCBsZWl0ZSBkaWNoIGFiLgpTYWd0IGRpZSBhbmRlcmU6IGFldGNoLCBpY2ggYmluIGRpZSBlIEZ1bmt0aW9uLgpTYWdlIGRpZSBlaW5lOiBBZXRjaCwgaWNoIGJpbiBkL2R5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBJbnRlZ3JhdGlvbiAoQmFtYnVsa28sIDExLiBNYXIgMjAxMCwgMTA6MzE6MjYpOgp+IyEgcm49UnVtYXRhIHJ0PTEyNjgyOTkyODkgcmc9d2l0emUKfiMhIHRpZD0xMjY4Mjk1MzEwClNvbGFuZ2UgZXMgZV55IHdhci4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBJbnRlZ3JhdGlvbiAoUnVtYXRhLCAxMS4gTWFyIDIwMTAsIDEwOjMzOjQyKToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTEyNjgyOTk4ODYgcmc9d2l0emUKfiMhIHRpZD0xMjY4Mjk1MzEwClNvd2FzIGtvbWlzY2hlcyBsYWV1ZnQgbmljaHQgZnJlaSBoZXJ1bS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEludGVncmF0aW9uIChWYW5pb24sIDIwLiBNYXIgMjAxMCwgMjE6MjI6NTIpOgp+IyEgcm49QmFtYnVsa28gcnQ9MTI2ODI5OTg4NiByZz13aXR6ZQp+IyEgdGlkPTEyNjgyOTUzMTAKSWNoIGZpbmRlLCBCYW1idWxrbyBoYXQgc2ljaCBtaXQgZGVtIEJlaXRyYWcgZWNodCwgZGVuICJHb2xkZW5lbgpXaXR6ZWVya2xhZXJlciBhbSBCYW5kZSIgdmVyZGllbnQuCgpWKiwgbmVpZGlzY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTYXJrYXNtdXMgMi4wIChOaWNvbGFpLCAgNS4gTWFpIDIwMTAsIDIwOjM3OjM5KToKCkluIEJlbGdpZW4gd3VyZGUgbnVuIGRhcyBCdXJrYS1WZXJib3QgYmVzY2hsb3NzZW4uIFdlciBzaWNoIG5pY2h0CmRhcmFuIGhhZWx0IHVuZCBvZWZmZW50bGljaCB2ZXJodWVsbHQgZXJ3aXNjaHQgd2lyZCwgd2lyZCBtaXQKU3RlaW5pZ3VuZyBiZXN0cmFmdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTYXJrYXNtdXMgMi4wIChSdW1hdGEsICA1LiBNYWkgMjAxMCwgMjE6Mzc6MDcpOgp+IyEgcm49Tmljb2xhaSBydD0xMjczMDg0NjU5IHJnPXdpdHplCn4jISB0aWQ9MTI3MzA4NDY1OQpNYWwgc2VoZW4sIHdpZSBsYW5nZSBlcyBkYXVlcnQsIGJpcyBkYXMgR2VzZXR6IGF1ZiB2ZXJtdW1tdGUgSG9vbGlnYW5zCmFuZ2V3ZW5kZXQgd2lyZCA6LSkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhdW1pZyAoQW50aGVhLCAxNC4gSnVsIDIwMTAsIDEzOjQxOjA4KToKIkhlcnIgT2JlciwgaW4gbWVpbmVyIFN1cHBlIGlzdCBlaW4gU3R1ZWNrIHZvbiBlaW5lciBCYXVtcmluZGUhIgoiS2VpbiBXdW5kZXIsIFNpZSBzaXR6ZW4gaGllciBhbSBTdGFtbXRpc2NoLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBCYXVtaWcgKFJ1bWF0YSwgMTQuIEp1bCAyMDEwLCAxNDowOTozNSk6Cn4jISBybj1BbnRoZWEgcnQ9MTI3OTEwNzY2OCByZz13aXR6ZQp+IyEgdGlkPTEyNzkxMDc2NjgKRGVyIGlzdCBqYSBlZWVla2VsaWchCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEJhdW1pZyAoRmxhbWJlcnQsIDE0LiBKdWwgMjAxMCwgMjI6MTI6MzgpOgp+IyEgcm49UnVtYXRhIHJ0PTEyNzkxMDkzNzUgcmc9d2l0emUKfiMhIHRpZD0xMjc5MTA3NjY4CkFsc28gaWNoIGZhbmQgaWhuIGd1dC4gVW5kIGRhYmVpIGRhY2h0ZSBpY2ggc2Nob24sIGljaCBrZW5uZSBtaXR0bGVyd2VpbGUgYWxsZQpPYmVyLVdpdHplLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZWloZW5mb2xnZSAoQW50aGVhLCAxNS4gSnVsIDIwMTAsIDA5OjI3OjI1KToKSW4gZWluZXIgUHJ1ZWZ1bmcgaW0gUmVsaWdpb25zdW50ZXJyaWNodCB3YXIgZGllIEF1ZmdhYmUsIGRpZSAxMCBHZWJvdGUgaW4KYmVsaWViaWdlciBSZWloZW5mb2xnZSBhdWZ6dXphZWhsZW4uIERpZSBMb2VzdW5nIGVpbmVyIFNjaHVlbGVyaW46CiIzLCA2LCAxLCA4LCA0LCA1LCA5LCAyLCAxMCwgNy4iIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZWloZW5mb2xnZSAoVmFuaW9uLCAxNi4gSnVsIDIwMTAsIDE3OjE3OjI1KToKfiMhIHJuPUFudGhlYSBydD0xMjc5MTc4ODQ1IHJnPXdpdHplCn4jISB0aWQ9MTI3OTE3ODg0NQpJY2ggZ2xhdWIgZGllIGhhZXR0ZSBiZWkgbWlyIFB1bmt0ZSBiZWtvbW1lbi4KClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFJlaWhlbmZvbGdlIChIaWdobGFuZGVyLCAzMC4gSnVsIDIwMTAsIDA5OjU3OjQxKToKfiMhIHJuPVZhbmlvbiBydD0xMjc5MjkzNDQ1IHJnPXdpdHplCn4jISB0aWQ9MTI3OTE3ODg0NQpDb3VydGVzeSBvZiBiZXN0YXR0ZXJ3ZWJsb2cuZGU6CgpXYXMgaXN0IHNjaHdhcnotd2Vpc3MgdW5kIHNpdHp0IGF1ZiBlaW5lciBTY2hhdWtlbD8KRWluIFNjaHdpbmd1aW4uCgpXYXMgaXN0IGdydWVuIHVuZCBhbSBCb2RlbiBmZXN0Z2Vmcm9yZW4/CkRlciBGcm9zY2h0LgoKV2FzIGxpZWd0IGFtIFN0cmFuZCB1bmQgaGF0IGVpbmVuIFNwcmFjaGZlaGxlcj8KRWluZSBOdXNjaGVsLgoKV2FzIHN0ZWh0IGFuIGRlciBTdHJhc3NlbmVja2UgdW5kIGlzdCBibGF1PwpFaW5lIEZyb3N0aXR1aWVydGUuCgpXYXMgaXN0IGJyYXVuIHVuZCBzY2h3aW1tdCBpbSBIYWZlbj8KRWluIFUtQnJvdC4KCldhcnVtIGdlaGVuIEJpZW5lbiBuaWNodCBpbiBkaWUgS2lyY2hlPwpTaWUgc2luZCBpbiBTZWt0ZW4uCgpXbyB3b2huZW4gS2F0emVuPwpJbiBNaWV6aGFldXNlcm4uCgpXYXMgaXN0IHNjaHdhcnotd2Vpc3MgdW5kIGtuYWxsdD8KRWluIFBlbmd1aW4uCgpXYXMgaXN0IHJvdCB1bmQgc3RlaHQgYW4gZGVyIFN0cmFzc2U/CkVpbmUgSGFnZW51dHRlLgoKV2FzIGlzdCBzdWVzcyB1bmQgc2Nod2luZ3Qgdm9uIExpYW5lIHp1IExpYW5lPwpUYXJ6aXBhbi4KCldhcyBpc3Qgc3Vlc3MgdW5kIGxhZXVmdCBkdXJjaCBkaWUgV3Vlc3RlPwpFaW4gQ2FyYW1lbC4KCldhcyBpc3QgYnVudCB1bmQgcmVubnQgdWViZXIgZGVuIFRpc2NoPwpFaW4gRmx1Y2h0c2FsYXQuCgpXZWxjaGVzIEdlbXVlc2UgaGF0IGRpZSBnZXJpbmdzdGUgTGViZW5zZXJ3YXJ0dW5nPwpEaWUgU3RlcmJzZS4KCldhcyBpc3QgZ3Jvc3MsIGdyYXUgdW5kIHVud2ljaHRpZz8KRWluIElycmVsZWZhbnQuCgpXYXMgaXN0IG9yYW5nZSB1bmQgbGFldWZ0IGF1ZiBkZW0gV2FsZHdlZz8KRWluZSBXYW5kYXJpbmUuCgpXYXMgaXN0IGJyYXVuLCBsYWV1ZnQgZHVyY2ggZGVuIFdhbGQgdW5kIHJ1ZnQgZGF1ZXJuZCAiS3VnZWwhIEt1Z2VsISI/CkVpbiBLdWdlbHNjaHJlaWJhZXIuCgpXYXMgc3RlaHQgYmVpbSBNZXR6Z2VyIG5lYmVuIGRlbSBCZXR0PwpFaW5lIFNjaGxhY2h0dGlzY2hsYW1wZS4KCldhcyBpc3QgZ3J1ZW4gdW5kIHNjaGF1dCBkdXJjaCdzIFNjaGx1ZXNzZWxsb2NoPwpFaW4gU3Bpb25hdC4KCgpIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFJlaWhlbmZvbGdlIChWYW5pb24sICA4LiBBdWcgMjAxMCwgMDA6MzM6NTMpOgp+IyEgcm49SGlnaGxhbmRlciBydD0xMjgwNDc2NjYxIHJnPXdpdHplCn4jISB0aWQ9MTI3OTE3ODg0NQpVcmtzLCBzb3JyeSwgd2VubiBpY2ggREFTIHByb3ZvemllcnQgaGFiZSAuLi4KClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBSZWloZW5mb2xnZSAoWmFwaG9iLCAxOS4gQXVnIDIwMTAsIDIzOjMzOjMyKToKfiMhIHJuPVZhbmlvbiBydD0xMjgxMjIwNDMzIHJnPXdpdHplCn4jISB0aWQ9MTI3OTE3ODg0NQpJY2ggbXVzc3RlIGtpY2hlcm4uIERpZSB3YXJlbiBtaXIgbmV1LiA6KQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogUmVpaGVuZm9sZ2UgKEFudGhlYSwgMjYuIEF1ZyAyMDEwLCAxMDozMjoyMCk6Cn4jISBybj1aYXBob2IgcnQ9MTI4MjI1MzYxMiByZz13aXR6ZQp+IyEgdGlkPTEyNzkxNzg4NDUKR2VyYWRlIGluIFVsaSBTdGVpbnMgIlRhZ2VidWNoIiBnZWZ1bmRlbjoKIlJhdHplZnVtbWVsIiBpc3Qga2VpbmUgQmV6ZWljaG51bmcgZGVzIFBhcHN0Z2V3YW5kZXMhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBSZWloZW5mb2xnZSAoQWxib2luLCAyNi4gQXVnIDIwMTAsIDE5OjIwOjIyKToKfiMhIHJuPUFudGhlYSBydD0xMjgyODExNTQwIHJnPXdpdHplCn4jISB0aWQ9MTI3OTE3ODg0NQpIaWVyIGdpYnQgZXMgc28gZWluIFNwYXNzYXJ0aWtlbCBsYWRlbiwgZGEgaGFiZSBpY2ggZWluZW4gUmF0emVmdW1tZWwgbWl0IGRlbQpLb250ZXJmZWkgZGVzIFBhcHN0ZXMgc2Nob24gdm9yIHVlYmVyIG5lbSBKYWhyIGdlc2VoZW4uCmFsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBSZWloZW5mb2xnZSAoUnVtYXRhLCAyNi4gQXVnIDIwMTAsIDE5OjI5OjI3KToKfiMhIHJuPUFsYm9pbiBydD0xMjgyODQzMjIyIHJnPXdpdHplCn4jISB0aWQ9MTI3OTE3ODg0NQpTZWluIEZ1bW1lbCBpc3QgYWJlciB3YXMgYW5kZXJlcyBhbHMgd2VubiBEdSBmdW1tZWxzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndpdHplIERhcyBpc3QgZG9jaCBtYWwgbmUgdmVybnVlbmZ0aWdlIEVya2xhZXJ1bmcsIGRpZSBtYW4gYXVjaCBiZWdyZWlmdC4uLiAoQW50aGVhLCAzMC4gQXVnIDIwMTAsIDEyOjEwOjMzKToKCkFuZnJhZ2Ugdm9uIEFud2VuZGVyaW46CgpXZW5uIGljaCBlaW5lbiBGaWxtIGF1ZiBtZWluZSBEaXNrZXR0ZSBzcGVpY2hlcm4gbW9lY2h0ZSwga29tbXQgZGllIE1lbGR1bmcsCmRhc3MgYXVmIGRlciBEaXNrZXR0ZSBuaWNodCBnZW51ZWdlbmQgU3BlaWNoZXJwbGF0eiB2b3JoYW5kZW4gaXN0LgpEYW5uIHZlcnN1Y2hlIGljaCBtaXQgVmVya251ZXBmdW5nLXNwZWljaGVybiB1bmQgZGFubiBpc3QgUGxhdHogZ2VudWcgdW5kIEZpbG0KaXN0IGF1ZiBkZXIgRGlza2V0dGUuClByb2JsZW0gaXN0IGFiZXIsIHdlbm4gaWNoIGRpZXNlbiBGaWxtIGF1ZiBkZXIgRGlza2V0dGUgYXVmIGVpbmVtIGFuZGVyZW4gUEMKYW5zY2hhdWVuIG1vZWNodGUuCkRhIGtvbW10IGRpZSBNZWxkdW5nOiAtbmljaHQgZ2VmdW5kZW4uIEFiZXIgYXVmIG1laW5lbSBQQyBmdW5rdGlvbmllcnQgZXMuCldhcyBrYW5uIGVzIHNlaW4/CgpBbnR3b3J0IElULUhvdGxpbmU6CgpTZWhyIGdlZWhydGUgQW53ZW5kZXJpbiwKaW4gSWhyZSBIYW5kdGFzY2hlIHBhc3N0IElociBQZWx6bWFudGVsIGVpbmZhY2ggbmljaHQgcmVpbi4gRWluIFpldHRlbCBtaXQKVmVybWVyaywgZGFzcyBJaHIgUGVsem1hbnRlbCBpbSBTY2hyYW5rIGhhZW5ndCwgcGFzc3QgaW4gSWhyZSBIYW5kdGFzY2hlIHJlaW4uCkFsc28gc29sYW5nZSBTaWUgZGllc2VuIFpldHRlbCBkYWhlaW0gbGVzZW4sIGZpbmRlbiBTaWUgSWhyZW4gUGVsem1hbnRlbCBpbQpTY2hyYW5rLgpTY2h3aWVyaWdlciB3aXJkIGVzLCB3ZW5uIFNpZSBJaHJlIEZyZXVuZGluIGJlc3VjaGVuIHVuZCBkb3J0IElocmVuIFpldHRlbApsZXNlbiB1bmQgZXJmYWhyZW4sIGRhc3MgSWhyIFBlbHptYW50ZWwgaW0gU2NocmFuayBoYWVuZ3QuIEluIGRlbSBTY2hyYW5rIHZvbgpJaHJlciBGcmV1bmRpbiBrb2VubmVuIFNpZSBzdWNoZW4sIHNvIGxhbmdlIFNpZSB3b2xsZW4sIElocmVuIFBlbHptYW50ZWwKZmluZGVuIFNpZSBkb3J0IGJlc3RpbW10IG5pY2h0Li4uCk5vY2ggZWluZSBIaWxmZToKSGFuZHRhc2NoZSA9IERpc2tldHRlClBlbHptYW50ZWwgPSBGaWxtClpldHRlbCA9IFZlcmtudWVwZnVuZwpTY2hyYW5rID0gUEMKTW90dGVuIGltIFNjaHJhbmsgPSBQQyBWaXJ1cwpOYWNoYmFyIGltIFNjaHJhbmsgPSBIYWNrZXIKLi4uYWxsZXMga2xhcj8hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdXRzY2ggKEFudGhlYSwgMzEuIEF1ZyAyMDEwLCAxMzo0NDo0MSk6CldpZSB2ZXJtZWhyZW4gc2ljaCBOb25uZW4gdW5kIE1vZW5jaGU/CgpEdXJjaCBaZWxsdGVpbHVuZy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldhcyBNdXNpayB1ZWJlciBkaWUgRWx0ZXJuIGF1c3NhZ3QgKEJhbWJpLCAyMi4gU2VwIDIwMTAsIDIyOjA0OjU4KToKMS4gU2NodWx0YWcuCgpEaWUgbmV1ZSBMZWhyZXJpbiBtb2VjaHRlIHNpY2ggbmF0dWVybGljaCBnbGVpY2ggYmVpIElocmVuIFNjaHVlbGVybiBiZWxpZWJ0Cm1hY2hlbiB1bmQgZXJ6YWVobHQsIGRhc3Mgc2llIHRvdGFsIGF1ZiBIaXAgSG9wIHN0ZWh0LiBTaWUgZnJhZ3Qgd2VyIG5vY2gKZ2VybmUgSGlwIEhvcCBob2VydC4gRmFzdCBhbGxlIEFybWUgZ2VoZW4gbmFjaCBvYmVuLCBudXIgZWluIE1hZWRjaGVuIGluIGRlcgpsZXR6dGVuIFJlaWhlIG1lbGRldCBzaWNoIG5pY2h0LiBEaWUgTGVocmVyaW4gZnJhZ3Q6ICJXYXJ1bSBtZWxkZXN0IGR1IGRpY2gKZGVubiBuaWNodD8iCiJXZWlsIGljaCBrZWluZW4gSGlwIEhvcCBtYWcuIiBzYWd0IHNpZS4KIlVuZCB3ZWxjaGUgTXVzaWsgbWFnc3QgZHU/IiAtICJUZWNobm8uIgoiSmEgdW0gSGltbWVscyBXaWxsZW4sIHdhcnVtIGRlbm4gYXVzZ2VyZWNobmV0IFRlY2hubz8iCiJOdW4gamEsIG1laW4gUGFwYSBpc3QgREosIG1laW5lIE1hbWEgaXN0IERKYW5lIHVuZCBiZWlkZSBoYWJlbiBzaWNoIGltIFU2MDMxMQprZW5uZW5nZWxlcm50LiBJY2ggYmluIGF1ZiBkZXIgTmF0dXJlIE9uZSBnZXpldWd0IHdvcmRlbiB1bmQgc29taXQgaG9lciBpY2gKZWJlbiBhdWNoVGVjaG5vLiIKRGEgc2FndCBkaWUgTGVocmVyaW46ICJBYmVyIEtpbmQsIG1hbiBtdXNzIGRvY2ggbmljaHQgYWxsZXMgbmFjaG1hY2hlbiB3YXMgZGllCkVsdGVybiBtYWNoZW4uIFN0ZWxsIGRpciBtYWwgdm9yIGRlaW5lIE1hbWEgd2FlcmUgUHJvc3RpdHVpZXJ0ZSB1bmQgZGVpbiBQYXBhCmVpbiBhbGtvaG9sYWJoYWVuZ2lnZXIgQXNzaS4gV2FzIHdhZXJlIGRlbm4gZGFubj8iCiJOYWphIGd1dCwgREFOTiB3dWVyZGUgaWNoIHdhaHJzY2hlaW5saWNoIGF1Y2ggSGlwIEhvcCBob2VyZW4uLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2FzIE11c2lrIHVlYmVyIGRpZSBFbHRlcm4gYXVzc2FndCAoQWxib2luLCAyMi4gU2VwIDIwMTAsIDIyOjE2OjE3KToKfiMhIHJuPUJhbWJpIHJ0PTEyODUxODU4OTggcmc9d2l0emUKfiMhIHRpZD0xMjg1MTg1ODk4CkRlbiBXaXR6IGtlbm5lIGljaCBtaXQgU2NobGFja2UwNC4KYWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgTXVzaWsgdWViZXIgZGllIEVsdGVybiBhdXNzYWd0IChaZXNzdHJhLCAyMi4gU2VwIDIwMTAsIDIyOjIzOjA3KToKfiMhIHJuPUJhbWJpIHJ0PTEyODUxODU4OTggcmc9d2l0emUKfiMhIHRpZD0xMjg1MTg1ODk4ClB1dXVoaGhoaC4gU2ljaCBhdXNnZXJlY2huZXQgbWl0IEhpcCBIb3AgYmVsaWVidCBtYWNoZW4genUgd29sbGVuLi4uIDstKQoKWmVzc3RyYQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBXYXMgTXVzaWsgdWViZXIgZGllIEVsdGVybiBhdXNzYWd0IChBbGJvaW4sIDIyLiBTZXAgMjAxMCwgMjI6MjU6MjcpOgp+IyEgcm49WmVzc3RyYSBydD0xMjg1MTg2OTg3IHJnPXdpdHplCn4jISB0aWQ9MTI4NTE4NTg5OApVbmQgYXVzc2VyZGVtLCBqZWRlciBkZXIgZGllIFdlaXNoZWl0IGRlcyBNb3JnZW5ncmF1ZW5zIGVyZmFzc3QgaGF0LCB3ZWlzcyBkYXMKVGVjaG5vIG51ciB3YXMgZnVlciBPcmtzIGlzdC4KYWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBNdXNpayB1ZWJlciBkaWUgRWx0ZXJuIGF1c3NhZ3QgKEJhbWJpLCAyMi4gU2VwIDIwMTAsIDIyOjI2OjIzKToKfiMhIHJuPUFsYm9pbiBydD0xMjg1MTg3MTI3IHJnPXdpdHplCn4jISB0aWQ9MTI4NTE4NTg5OApXYXMgaXN0IGdlZ2VuIE9ya3MgZWluenV3ZW5kZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBXYXMgTXVzaWsgdWViZXIgZGllIEVsdGVybiBhdXNzYWd0IChBbGJvaW4sIDIyLiBTZXAgMjAxMCwgMjI6MzA6MTkpOgp+IyEgcm49QmFtYmkgcnQ9MTI4NTE4NzE4MyByZz13aXR6ZQp+IyEgdGlkPTEyODUxODU4OTgKVW0gR290dGVzIFdpbGxlbiwgbm51ciBuaWNodCBFaW53ZW5kZW4uIFNvbmRlcm4gaW1tZXIgbnVyIHNjaG9lbiBVbXdlbmRlbiwKd2VubiBzaWUgc2Nob2VuIGJlaW0gRmV1ZXIgYW0gU3BpZXNzIHN0ZWNrZW4uIApBbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogV2FzIE11c2lrIHVlYmVyIGRpZSBFbHRlcm4gYXVzc2FndCAoUnVtYXRhLCAyMy4gU2VwIDIwMTAsIDE3OjAzOjQ0KToKfiMhIHJuPUFsYm9pbiBydD0xMjg1MTg3NDE5IHJnPXdpdHplCn4jISB0aWQ9MTI4NTE4NTg5OApBaGEsIGljaCBiaW4gYWxzbyB3aWVkZXIgYW4gYWxsZW0gU2NodWxkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogV2FzIE11c2lrIHVlYmVyIGRpZSBFbHRlcm4gYXVzc2FndCAoQW50aGVhLCAyNC4gU2VwIDIwMTAsIDA4OjQ1OjQyKToKfiMhIHJuPVJ1bWF0YSBydD0xMjg1MjU0MjI0IHJnPXdpdHplCn4jISB0aWQ9MTI4NTE4NTg5OApMYXR1ZXJuaWNoLiBXZXIgZGVubiBzb25zdD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBNdXNpayB1ZWJlciBkaWUgRWx0ZXJuIGF1c3NhZ3QgKEdyYWxrb3IsICAyLiBPa3QgMjAxMCwgMTU6MTU6MzApOgp+IyEgcm49QWxib2luIHJ0PTEyODUxODcxMjcgcmc9d2l0emUKfiMhIHRpZD0xMjg1MTg1ODk4CmphLCBhYmVyIG51ciB1bnBsdWdnZWQuCgpHLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU3Bhbm5lbmQgKEFudGhlYSwgMTIuIE9rdCAyMDEwLCAxMjoyNjowMSk6Ckt1bmRlOiAiRnVlciBkaWUgRmVyaWVuIHN1Y2hlIGljaCBlaW5lbiB3aXJrbGljaCBzcGFubmVuZGUgS3JpbWkuIgoiRWluZW4gd2lya2xpY2ggc3Bhbm5lbmRlbiBLcmltaT8iIHVlYmVybGVndCBkZXIgQnVjaGhhZW5kbGVyLCAiRGFubiBuZWhtZW4KU2llIGRpZXNlbi4gRGEgZXJmYWhyZW4gU2llIGVyc3QgYXVmIGRlciBsZXR6dGVuIFNlaXRlLCBkYXNzIGRlciBCdXRsZXIgYWxsZQp1bWdlYnJhY2h0IGhhdC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgprbHVnZXIgUGFwYWdlaSAoRWxrYW50YXIsIDEyLiBPa3QgMjAxMCwgMjM6Mzg6MzMpOgprb21tdCBlaW5lIGp1bmdlIGZyYXUgbW9yZ2VucyBhdWYgZGVtIHdlZyB6dXIgYXJiZWl0IGFuIGVpbmVyIFpvb2hhbmRsdW5nCnZvcmJlaS4gbmViZW4gZGVyIHR1ZXIgc2l0enQgZWluIHNjaG9lbmVyIGJ1bnRlciBQYXBhZ2VpIGF1ZiBlaW5lciBzdGFuZ2UuIGVyCnJ1ZnQ6ICJoYWxsbyBkdSEiIHNpZSBzaWVodCBkZW4gdm9nZWwgYmVsdXN0aWd0IGFuLiBkYSBzYWd0IGRlcjogImR1IHNpZWhzdAp2b2xsIGJlc2NoZXVlcnQgYXVzLiIgZW1wb2VydCBnZWh0IHNpZSB3ZWl0ZXIuIGRhcyB3aWVkZXJob2x0IHNpY2ggYW0gYWJlbmQuCmRhIGdlaHQgc2llIGluIGRlbiBsYWRlbiB1bmQgYmVzY2h3ZWhydCBzaWNoLiBkZXIgZ2VzY2hhZWZ0c2Z1ZWhyZXIKdmVyc3ByaWNodCwgZGVtIFBhcGFnZWkgYmVzc2VyZSBNYW5pZXJlbiBiZWl6dWJyaW5nZW4uIGFtIG5hZWNoc3RlbiBtb3JnZW4Ka29tbXQgc2llIHdpZWRlciBhbSBnZXNjaGFlZnQgdm9yYmVpLiB3aWVkZXIgcnVmdCBkZXIgUGFwYWdlaTogImhhbGxvLCBkdSEiCnNpZSBkcmVodCBzaWNoIG1pc3N0cmF1aXNjaCB1bS4gZGEgc2FndCBkZXIgUGFwYWdlaTogIm5hamEsIGR1IHdlaXNzdCBqYQpiZXNjaGVpdC4iIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKZnJlbWRzcHJhY2hlbiAoRWxrYW50YXIsIDEzLiBPa3QgMjAxMCwgMjM6MDI6MTIpOgprb21tdCBlaW4ganVuZ2VyIE1hbm4gaW4gZWluIHRpZXJnZXNjaGFlZnQgdW5kIHNpZWh0IHp3ZWkgYmVvcy4uIGRhIHNhZ3QgZXI6CiJvaCwgZGVuIGJlbywgZGVyIGxpbmtzIHNpdHp0LCBkZW4gbW9lY2h0ZSBpY2ggZ2VybiBrYXVmZW4uIiBzYWd0IGRlcgp2ZXJrYWV1ZmVyOiAidHV0IG1pciBsZWlkLCBkaWVzZSB2b2VnZWwga29lbm5lbiB3aXIgbGVpZGVyIG51ciB6dXNhbW1lbgp2ZXJrYXVmZW4uIiBhbHMgZGVyIE1hbm4gZnJhZ3QsIHdhcnVtIGRhcyBzbyBzZWksIGVya2xhZXJ0IG1hbiBpaG06ICJuYWphLCBkZXIKZWluZSBiZW8gc3ByaWNodCBudXIgSW5kaXNjaCB1bmQgZGVyIHp3ZWl0ZSBpc3Qgc2VpbiB1ZWJlcnNldHplci4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgplaW5icnVjaCAoQWxhaywgMjAuIE9rdCAyMDEwLCAxODoyOTo0OSk6CmJlaSBlaW5lbSBzdHVkZW50ZW4gd2lyZCBlaW5nZWJyb2NoZW4sIHdhZWhyZW5kIGVyIHNjaGxhZWZ0LiBhbHMgZXIgd2FjaCB3aXJkLApzdGVodCBkZXIgZWluYnJlY2hlciBuZWJlbiBzZWluZW0gYmV0dCwgZWluIE1lc3NlciBpbiBkZXIgSGFuZC4gbGVpc2UgcmF1bnQKZXI6ICJrZWluZW4gTGF1dCwgaWNoIHN1Y2hlIG51ciBkYXMgZ2VsZC4iIGhvY2ggZXJmcmV1dCBtZWludCBkZXIgU3R1ZGVudDoKIldhcnRlbiBTaWUgYml0dGUgZWluZW4gTW9tZW50LCBpY2ggc3VjaGUgbWl0ISIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlbmF1ZSBBdXNkcnVja3N3ZWlzZSAoQW50aGVhLCAgMS4gRGV6IDIwMTAsIDEzOjQzOjUwKToKU2llOiBTY2hhdHosIHdpciBoYWJlbiBrZWluIEJyb3QgbWVoci4gS29lbm50ZXN0IGR1IGJpdHRlIHp1bSBTdXBlcm1hcmt0IGdlaGVuCnVuZCBlaW5zIGhvbGVuPyBVbmQgd2VubiBzaWUgRWllciBoYWJlbiwgYnJpbmcgNiBTdHVlY2sgbWl0LgoKRXI6IEtsYXIgU2NoYXR6LCBtYWNoIGljaCEKCk5hY2gga3VyemVyIFplaXQga29tbXQgZXIgd2llZGVyIHp1cnVlY2suCgpTaWU6IFdhcnVtIG51ciBoYXN0IGR1IDYgQnJvdGUgZ2VrYXVmdD8hPwoKRXI6IFNpZSBoYXR0ZW4gRWllci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZW5hdWUgQXVzZHJ1Y2tzd2Vpc2UgKEFtYXJ5bGxpcywgIDEuIERleiAyMDEwLCAyMTowMzo1OSk6Cn4jISBybj1BbnRoZWEgcnQ9MTI5MTIwNzQzMCByZz13aXR6ZQp+IyEgdGlkPTEyOTEyMDc0MzAKZWlnZW50bGljaCBpc3QgZGVyIFdpdHogbWl0IGVpbmVtIEluZm9ybWF0aWtlciA7KQoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2F1c3MgLi4uIChHbG9pbnNvbiwgMzEuIE1hciAyMDExLCAxMjowMjozMCk6Ci4uLiBrYW5uIGF1ZiBkaWUgYW5kZXJlIFNlaXRlIGRlcyBNb2ViaXVzLVN0cmVpZmVucyBnZWxhbmdlbi4KLi4uIHNhZ3QgZGllIFdhaHJoZWl0LCB3ZW5uIGVyIGRpZSBzYWd0IGVyIGx1ZWdlLgouLi4gdHJpbmt0IHNlaW4gQmllciBhdXMgZWluZXIgS2xlaW5zY2hlbiBGbGFzY2hlLgouLi4ga2FubiBhbGxlIDExIERpbWVuc2lvbmVuIHNlaGVuIHVuZCBtZWhyIGVyemV1Z2VuLCB3ZW5uIGVyIHdpbGwuCi4uLiBoYXQgZGFzIGdlc2FtdGUgVW5pdmVyc3VtIHVtIHNpY2ggcm90aWVyZW4uCi4uLiBoYXQgZGllIFRoZW9yaWUgaW4gZGVpbmVyIERva3RvcmFyYmVpdCBzY2hvbiB2b3IgMjAwIEphaHJlbiBiZXdpZXNlbi4KCmh0dHA6Ly93d3cubG9naWNuZXN0LmNvbS9hcmNoaXZlcy8xNjYKaHR0cDovL3NwaWtlZG1hdGguY29tLzQwOC5odG1sCmh0dHA6Ly9tYXR0LWotaGVhdGgubGl2ZWpvdXJuYWwuY29tLzI4NTc2Lmh0bWwKCkNodWNrIE5vcnJpcy4gUGZmZnJ6YmxibGJsLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHYXVzcyAuLi4gKFJ1bWF0YSwgMzEuIE1hciAyMDExLCAxMjowNDozNyk6Cn4jISBybj1HbG9pbnNvbiBydD0xMzAxNTY1NzUwIHJnPXdpdHplCn4jISB0aWQ9MTMwMTU2NTc1MApJc3QgYmVpIEJydWNlIFNjaG5laWVyIEZhY3RzIHNvd2FzIHZvbiBHZWd1dHRlbmJlcmd0LiA7LS8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR2F1c3MgLi4uIChHbG9pbnNvbiwgMzEuIE1hciAyMDExLCAxMjowODozNik6Cn4jISBybj1SdW1hdGEgcnQ9MTMwMTU2NTg3NyByZz13aXR6ZQp+IyEgdGlkPTEzMDE1NjU3NTAKUGFzc3QgYWJlciB1ZWJlcmhhdXB0IG5pY2h0IHp1IFNjaG5laWVyLCBkZXIgaXN0IEtyeXB0byouIFdlciBoYXQgZGVubiBzbwplaW5lbiBCbG9lZHNpbm4gdWViZXIgaWhuIHZlcmJyZWl0ZXQuIEhtLCBpY2ggc2VoIGdyYWQsIFNjaG5laWVyZmFjdHMgLi4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR2F1c3MgLi4uIChBbnRoZWEsIDMxLiBNYXIgMjAxMSwgMTI6MTA6NTkpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTMwMTU2NjExNiByZz13aXR6ZQp+IyEgdGlkPTEzMDE1NjU3NTAKQ29uZnV6aXVzIHNheXM6Ck1hbiB3aG8gd2FudCBwcmV0dHkgbnVyc2UuLi4KLi4uIG11c3QgYmUgcGF0aWVudCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IEdhdXNzIC4uLiAoUnVtYXRhLCAzMS4gTWFyIDIwMTEsIDEyOjQwOjE4KToKfiMhIHJuPUFudGhlYSBydD0xMzAxNTY2MjU5IHJnPXdpdHplCn4jISB0aWQ9MTMwMTU2NTc1MApPZGVyIE9iZXJhcnp0IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRW1wZmFuZyAoQW50aGVhLCAgNS4gQXByIDIwMTEsIDA5OjE0OjMzKToKWndlaSBBbnRlbm5lbiB0cmFmZW4gc2ljaCBhdWYgZGVtIERhY2gsIHZlcmxpZWJ0ZW4gc2ljaCB1bmQgaGVpcmF0ZXRlbi4gRGllClplcmVtb25pZSBzZWxiZXIgd2FyIG5pY2h0cyBiZXNvbmRlcmVzLCBhYmVyIGRlciBFbXBmYW5nIHdhciBzdXBlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRhcm51bmcgKEFudGhlYSwgIDUuIEFwciAyMDExLCAwOToxNDo1MCk6Ck5ldWxpY2ggd29sbHRlIGljaCBlaW4gcGFhciBUYXJuaG9zZW4ga2F1ZmVuLCBhYmVyIGljaCBrb25udGUga2VpbmUgZmluZGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHVucyAoQW50aGVhLCAgNS4gQXByIDIwMTEsIDA5OjE2OjQyKToKQSBkeXNsZXhpYyBtYW4gd2Fsa2VkIGludG8gYSBicmEuCgpBIHRvb3RobGVzcyB0ZXJtaXRlIHdhbGtlZCBpbnRvIGEgdGF2ZXJuIGFuZCBzYWlkLCAiSXMgdGhlIGJhciB0ZW5kZXIgaGVyZT8iCgpBIG1hbiB3YWxrcyBpbnRvIGEgYmFyIHdpdGggYSBzbGFiIG9mIGFzcGhhbHQgdW5kZXIgaGlzIGFybSwgYW5kIHNheXM6ICJBIGJlZXIKcGxlYXNlLCBhbmQgb25lIGZvciB0aGUgcm9hZC4iCgpBIGR3YXJmLCB3aG8gd2FzIGEgbXlzdGljLCBlc2NhcGVkIGZyb20gamFpbC4gVGhlIGNhbGwgd2VudG8gb3V0IHRoYXQgdGhlcmUKd2FzIGEgc21hbGwgbWVkaXVtIGF0IGxhcmdlLgoKSGUgY291bGRuJ3QgcXVpdGUgcmVtZW1iZXIgaG93IHRvIHRocm93IGEgYm9vbWVyYW5nLCBidXQgZXZlbnR1YWxseSBpdCBjYW1lCmJhY2sgdG8gaGltLgoKSGUgc2FpZCBzaGUgd2FzIGF2ZXJhZ2UgYmVjYXVzZSBoZSB3YXMgbWVhbi4KClBlbmNpbHMgY291bGQgYmUgbWFkZSB3aXRoIGVyYXNlcnMgb24gYm90aCBlbmRzLCBidXQgdGhhdCB3b3VsZCBiZSBwb2ludGxlc3MuCgpBbiBpbnZpc2libGUgbWFuIG1hcnJpZWQgYW4gaW52aXNpYmxlIHdvbWFuLiBUaGVpciBraWRzIHdlcmUgbm90aGluZyB0byBsb29rCmF0IGVpdGhlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBQdW5zIChSdW1hdGEsICA1LiBBcHIgMjAxMSwgMDk6NDE6MzgpOgp+IyEgcm49QW50aGVhIHJ0PTEzMDE5ODc4MDIgcmc9d2l0emUKfiMhIHRpZD0xMzAxOTg3ODAyCkRlamEgTW9vOiBUaGUgZmVlbGluZyB0aGF0IHlvdSd2ZSBoZWFyZCB0aGlzIGJ1bGwgYmVmb3JlLgoKVHdvIGZpc2ggc3dpbSBpbnRvIGEgY29uY3JldGUgd2FsbC4gVGhlIG9uZSB0dXJucyB0byB0aGUgb3RoZXIgYW5kCnNheXMgIkRhbSEiLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlZy4gKEFudGhlYSwgIDYuIEFwciAyMDExLCAwOTo0NDo1Mik6CkdlaHQgZWluIENvd2JveSB6dW0gRnJpc2V1ci4gQWxzIGVyIHdpZWRlciByYXVza29tbXQgaXN0IHNlaW4gUG9ueSB3ZWcuCgoKVW5kIHdpZSBuZW5udCBtYW4gZWluZW4gS2VrcyB1bnRlciBlaW5lbSBCYXVtPwpFaW4gc2NoYXR0aWdlcyBQbGFldHpjaGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFdlZy4gKEhpZ2hsYW5kZXIsICA2LiBBcHIgMjAxMSwgMTA6Mzg6MTEpOgp+IyEgcm49QW50aGVhIHJ0PTEzMDIwNzU4OTIgcmc9d2l0emUKfiMhIHRpZD0xMzAyMDc1ODkyCkljaCBoYWInIG5ldWxpY2ggYmVpIFdlaWdodCBXYXRjaGVycyBhbmdlcnVmZW4uCkVzIGhhdCBrZWluZXIgYWJnZW5vbW1lbi4KCkRhbm4gaGFiZSBpY2ggZWluZW4gREogYW5nZXJ1ZmVuLgpEZXIgaGF0IGF1ZmdlbGVndC4KCkRhbmFjaCBoYWJlIGljaCBlcyBiZWkgU3BpZGVyIE1hbiB2ZXJzdWNodC4KRGVyIGhhdHRlIGtlaW4gTmV0ei4KCkljaCB3b2xsdGUgbWljaCB0ZWxlZm9uaXNjaCBiZWkgZGVyIEJ1cnNjaGVuc2NoYWZ0IGJlc2Nod2VyZW4uCkFiZXIgZGllIFZlcmJpbmR1bmcgd2FyIHNjaGxlY2h0LgoKSWNoIHdvbGx0ZSBlaW5lIEF1c2t1bmZ0IHVuZCByaWVmIGJlaW0gRmx1Z2hhZmVuIGFuLgpFcyBoYXQgYWJlciBrZWluZXIgYWJnZWhvYmVuLgoKRGFubiByaWVmIGljaCBiZWkgZGVyIEFtYnVsYW56IGFuLgpEaWUgaGFiZW4gbWljaCB2ZXJidW5kZW4uCgpXYXIgd29obCB6dWZhZWxsaWdlcndlaXNlIGVpbmUgTnVtbWVyIGltIElyYWsuCkVzIHdhciBiZXNldHp0LgoKRGFzIG5hZWNoc3RlIGludGVybmF0aW9uYWxlIFRlbGVmb25hdCBrYW0gYXVzIFRpYmV0LgpBdWYgZGVtIERpc3BsYXkgc3RhbmQgJ3VudGVyZHJ1ZWNrdCcuCgpEYW5uIGhhYmUgaWNoIGJlaSBlaW5lbSBXYWhyc2FnZXIgYW5nZXJ1ZmVuLgpFcyB3YXIgZWluIFNlaGVyIGFtIEhvZXJlci4KClVuZCBzY2hsaWVzc2xpY2ggd2FlaGx0ZSBpY2ggZGllIE51bW1lciB2b24gU3Vid2F5LgpFcyB3YXIgYmVsZWd0LgoKSHJUCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdlZy4gKFZhbmlvbiwgIDcuIEFwciAyMDExLCAyMjowNDoyMSk6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTEzMDIwNzkwOTEgcmc9d2l0emUKfiMhIHRpZD0xMzAyMDc1ODkyClRyaWZmdCBlaW5lIE5VTEwgZWluZSBBQ0hULiBGcmFndCBkaWUgTlVMTDogTmV1ZXIgR3VlcnRlbD8gTWVpbnQgZGllIEFDSFQ6Ck5lZSwgYWJnZW5vbW1lbi4KClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSYW5kZ3J1cHBlbndpdHplIHZvbiBMYXdibG9nIChHbG9pbnNvbiwgMTUuIEFwciAyMDExLCAxMTowMTozNSk6CiJXYXJ1bSBuZWhtZW4gRGV1dHNjaGUgaW1tZXIgMiBWaWFncmEgYXVmIGVpbm1hbD8iCiJXZWlsIHNpZSBuYWNoIGVpbmVyIFZpYWdyYSBudXIgZGVuIHJlY2h0ZW0gQXJtIGhvY2hrcmllZ2VuISIgCgooaHR0cDovL2dvby5nbC9od21TZCkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSdWJyaWsgZG9vZmUgRmxpZWdlcndpdHplIChHbG9pbnNvbiwgMjEuIEFwciAyMDExLCAxNjo0MToyOCk6Ci4uLiB1bmQgaWhyZSBBYmt1ZXJ6dW5nZW4uIEluIENvbWljLUZvcm06CgpodHRwOi8vd3d3LmxmZ2NvbWljLmNvbS9wYWdlLzQ1NAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5vdHJ1ZiAoQmFtYmksIDIyLiBBcHIgMjAxMSwgMTI6MjU6MzQpOgpBbnJ1ZiBiZWkgZGVyIFBvbGl6ZWk6ICJEYSBsaWVndCBlaW4gR2xlaXMgYXVmIGRlbSBCYWhuZGFtbSIKRGllIFBvbGl6ZWk6ICAiRGFzIHNvbGwgamEgYXVjaCBzbyBzZWluLiIKWmVobiBNaW51dGVuIHNwYWV0ZXIgZXJuZXV0IGVpbiBBbnJ1ZjogIk51biBpc3QgZGVsIGFsdGUgTWFubiB0b3QuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFiIGljaCBkaWUgVGFnZSBpcmdlbmR3byBnZWxlc2VuIC4uLiAoVmFuaW9uLCAyNy4gQXByIDIwMTEsIDIwOjQ4OjQ3KToKV2FzIGlzdCBkZXIgVW50ZXJzY2hpZWQgendpc2NoZW4gQ29tZWRpYW5zIHVuZCBLYWJhcmV0dGlzdGVuPwoKQ29tZWRpYW5zIG1hY2hlbiBlcyB3ZWdlbiBkZW0gR2VsZC4gS2FiYXJldHRpc3RlbiBtYWNoZW4gZXMgd2VnZW4gZGVzIEdlbGRlcy4KClYqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEdXJzdGlnIChBbnRoZWEsIDEwLiBNYWkgMjAxMSwgMDk6MTg6MzEpOgpTdGFuaXNsYXcgbGllZ3QgaW0gU3RlcmJlbiwgc2VpbmUgTGllYmVuIHNpbmQgYmVpIGlobS4gQmV2b3Igc2VpbiBsZXR6dGVzClN0dWVuZGNoZW4gc2NobGFlZ3QsIGZsdWVzdGVydCBlcjoKCiJJY2ggbXVzcyBldWNoIGV0d2FzIGJlaWNodGVuLiBCZXZvciBpY2ggaGVpcmF0ZXRlLCBiZXNhc3MgaWNoIGFsbGVzLCB3YXMgZWluCk1hbm4gc2ljaCB3dWVuc2NodC4gU2NobmVsbGUgQXV0b3MsIGh1ZWJzY2hlIE1hZWRjaGVuIHVuZCBqZWRlIE1lbmdlIEdlbGQuCgpEb2NoIGVpbiBndXRlciBGcmV1bmQgd2FybnRlIG1pY2g6ICdIZWlyYXRlIHVuZCBncnVlbmRlIGVpbmUgRmFtaWxpZS4gU29uc3QKaXN0IGVpbnN0IGluIGRlaW5lciBUb2Rlc3N0dW5kZSBuaWVtYW5kIGRhLCBkZXIgZGlyIGVpbiBHbGFzIFdhc3NlciByZWljaHQsCndlbm4gZHUgZXR3YXMgdHJpbmtlbiBtb2VjaHRlc3QuJwoKSWNoIGZvbGd0ZSBzZWluZW0gUmF0LiBTdGF0dCBkZXIgTWFlZGNoZW4gaGF0dGUgaWNoIG51biBlaW5lIEVoZWZyYXUgdW5kIHN0YXR0CkJpZXIgQmFieWJyZWkuIEljaCB2ZXJrYXVmdGUgbWVpbmVuIEZlcnJhcmksIGxlZ3RlIEdlbGQgYW4gZnVlciBkYXMgU3R1ZGl1bQptZWluZXIgS2luZGVyLiBOdW4gbGllZ2UgaWNoIGhpZXIsIHVuZCBzb2xsIGljaCBldWNoIGV0d2FzIHZlcnJhdGVuPyIKCiJXYXM/IgoKIkljaCBoYWIuIGdhciBrZWluZW4gRHVyc3QhIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKWXVjayAoZW5nbGlzY2gpIChHbG9pbnNvbiwgIDEuIEp1biAyMDExLCAxMzozOTo1Myk6Cmh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjE2MzY4My9jeWNsZXMtaW4tZmFtaWx5LXRyZWUtc29mdHdhcmUKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBdWNoIHdpZWRlciByaWNodGlnLiAoQW50aGVhLCAyMC4gSnVsIDIwMTEsIDExOjM5OjA5KToKIkhlcnIgT2Jlciwgd2FzIG1hY2h0IGVpZ2VudGxpY2ggbWVpbiBLYWJlbGphdWZpbGV0LCBkYXMgaWNoIHZvciBmYXN0IGVpbmVyClN0dW5kZSBiZXN0ZWxsdCBoYWJlPyIKIk5ldW4gZnVlbmZ6aWcsIGRlciBIZXJyLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk1lZGl6aW5lcmxhdGVpbiAoUnVtYXRhLCAyMC4gSnVsIDIwMTEsIDEyOjAwOjU5KToKCkFyenQgenVtIFBhdGllbnRlbjogU2llIGhhYmVuIGVpbmUgT3JnYW52ZXJzY2hpZWJ1bmcuCgpQYXRpZW50OiBXYXMgYmVkZXV0ZXQgZGFzPwoKQXJ6dDogSWhyZSBMZWJlciBpc3QgaW0gQXJzY2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTY2huZWlkZXIgKFJ1bWF0YSwgIDkuIFNlcCAyMDExLCAxMTowMDo0NCk6CkVzIGdhYiBlaW5tYWwgZWluZSBTdGFkdCwgaW4gZGVyIGdhYiBlcyBpbiBlaW5lIFN0cmFzc2UgdmllciBTY2huZWlkZXIuCgpEZXIgZXJzdGUgaGFlbmd0ZSBlaW4gU2NoaWxkIGF1ZjoKIkRlciBiZXN0ZXIgU2NobmVpZGVyIGRlciBTdGFkdCIuCgpEZXIgendlaXRlIGxpZXNzIHNpY2ggbmljaHQgbHVtcGVuLCB1bmQgc2V0enRlIGVpbmVuIGRyYXVmOgoiRGVyIGJlc3RlIFNjaG5laWRlciBkZXMgTGFuZGVzLiIKCkRhIHpvZyBkZXIgZHJpdHRlIG5hY2g6CiJEZXIgYmVzdGUgU2NobmVpZGVyIGRlciBXZWx0LiIKCkFsbGUgd2FydGV0ZW4gZGFyYXVmLCB3YXMgZGVyIHZpZXJ0ZSBzY2hyaWViLgpTY2hsaWVzc2xpY2ggaGluZyBlciBhdWNoIGVpbiBTY2hpbGQgYXVmOgoKIkRlciBiZXN0ZSBTY2huZWlkZXIgZGVyIFN0cmFzc2UuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKT3V0c2hlbGxlZCAoQW50aGVhLCAyMi4gRGV6IDIwMTEsIDExOjMwOjE1KToKV2h5IGRpZCB0aGUgdHVydGxlIGNyb3NzIHRoZSByb2FkPwoKVG8gZ2V0IHRvIHRoZSBTaGVsbCBzdGF0aW9uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdhbnogbG9naXNjaCAoQW50aGVhLCAgOS4gRmViIDIwMTIsIDA5OjM0OjU1KToKIkljaCB3dWVyZGUgamEgZ2VybmUgaGllciBiYWRlbiwgYWJlciBpY2ggZnVlcmNodGUsIGVzIGdpYnQgSGFpZSBpbiBkZXIKR2VnZW5kLiIKIkFjaCB3bywgc2VpZW4gU2llIHVuYmVzb3JndCwgaGllciBnaWJ0IGVzIGtlaW5lIEhhaWUuIgoiU2luZCBTaWUgc2ljaGVyPyIKIkFiZXIgamEgZG9jaCwgd28gS3Jva29kaWxlIHNpbmQsIGdpYnQgZXMga2VpbmUgSGFpZS4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbmdld2FuZHRlIEdlb21ldHJpZSAoQW50aGVhLCAgOS4gRmViIDIwMTIsIDA5OjM1OjMwKToKQXVmIGplZGVzIE1hZWRjaGVuIG1pdCBLdXJ2ZW4ga29tbWVuIHplaG4gTWFlbm5lciBtaXQgR2VyYWRlbi4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRnJ1ZWhlciB3YXIgYWxsZXMgYmVzc2VyIChBbnRoZWEsIDEzLiBGZWIgMjAxMiwgMTM6MTA6NDMpOgpGcnVlaGVyIGdpbmcgaWNoIG1pdCBlaW5lciBNYXJrIHp1bSBLaW9zaywga2FtIHp1cnVlY2sgbWl0IDIgSGVmdGVuLCA2IFR1ZXRlbgpDaGlwcywgOCBVZS1FaWVybiB1bmQgZWluZW0gRWlzLgpVbmQgaGV1dGU/ClVlYmVyYWxsIFVlYmVyd2FjaHVuZ3NrYW1lcmFzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVG91cmlzdCAoTXVwZmVsLCAgOC4gTWFyIDIwMTIsIDIyOjA4OjE1KToKRWluIGRldXRzY2hlciBUb3VyaXN0IHNjaGxlbmRlcnQgc28gZHVyY2ggZGVuIG9lc3RlcnJlaWNoaXNjaGVuIFdhbGQuCkF1ZiBlaW5tYWwgYmVtZXJrdCBlciBlaW5lbiBNYW5uIGRlciBzZWluZSBBcm1lIHVtIGVpbmVuIEJhdW0gZ2VsZWd0CmhhdHRlIHVuZCBzZWluIE9ociBmZXN0IGFuIGRlbiBCYXVtc3RhbW0gcHJlc3N0LgoKIk5hLCB3YXMgbWFjaGVuIFNpZSBkZW5uIGRhPyIKCiJJIGhvcmNoIG1pciBkaWUgTXVzaWsgdm9uIGRlIEJhbWEgb24uIgoKIk5pY2h0IHdpcmtsaWNoPyIKCiJBYmVyIGZyZWlsaWNoIHdvbGxlbiBTJyBhIGFtb2wgcHJvYmllcmVuPyIKCkRlciBUb3VyaXN0IGlzdCBuZXVnaWVyaWcgZ2V3b3JkZW4sIGxlZ3Qgc2VpbmUgSGFlbmRlIHVtIGRlbiBCYXVtCmRydWVja3Qgc2VpbiBPaHIgYW4gZGllIFJpbmRlLiBJbiBkZW0gTW9tZW50IHp1ZWNrdCBkZXIgYW5kZXJlIGVpbgpwYWFyIEhhbmRzY2hlbGxlbiwgZmVzc2VsdCBkZW4gVG91cmlzdGVuIGFtIEJhdW0sIG5pbW10IGlobSBhbGxlcyBhbgpXZXJ0c2FjaGVuIHVuZCBLbGVpZHVuZ3NzdHVlY2tlbiBhYiB1bmQgbGFlc3N0IGlobiBuYWNrdCBhbSBCYXVtIHN0ZWhlbi4KCkRlciBUb3VyaXN0IGlzdCB2ZXJ6d2VpZmVsdCB1bmQgc2NocmVpdCB1bSBIaWxmZSB3aWUgdmVycnVlY2t0LgpFbmRsaWNoLCBuYWNoIGVpbmlnZW4gU3R1bmRlbiBuYWVoZXJ0IHNpY2ggamVtYW5kIGR1cmNoIGRhcyBVbnRlcmhvbHouCgoiSGlsZmUhIEhpbGZlISBCaXR0ZSBoZWxmZW4ncyBtaXIhIiBzY2hyZWl0IGRlciBNYW5uLgoKIldhcyBpc3QgZGVubiBwYXNzaWVydCwgdW0gR290dGVzIFdpbGxlbj8iIGZyYWd0IGRlciBGcmVtZGUuCgpEZXIgR2VzY2h1bmRlbmUgZXJ6YWVobHQgc2VpbmUgR2VzY2hpY2h0ZSB1bnRlciBUcmFlbmVuLiBBbHMgZXIgZmVydGlnCmlzdCB0cml0dCBkZXIgRnJlbWRlIHZvbiBoaW50ZW4gYW4gaWhuIGhlcmFuLCBrdWVzc3QgaWhuIHphZXJ0bGljaCBpbnMKT2hyIHVuZCBsaXNwZWx0OgoKIk1laW4gYXJtZXIgSGFzZSwgZGFzIGlzdCBhYmVyIG5pY2h0IERlaW4gR2x1ZWNrc3RhZyBoZXV0ZS4iCgoKLW11cGZlbC0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBUb3VyaXN0IChBcmssIDE1LiBNYXIgMjAxMiwgMTA6MzA6MjApOgp+IyEgcm49TXVwZmVsIHJ0PTEzMzEyNDA4OTUgcmc9d2l0emUKfiMhIHRpZD0xMzMxMjQwODk1CkluIGRlbSBadXNhbW1lbmhhbmcgLi4uIFdhcyBpc3QgZGVyIFVudGVyc2NoaWVkIHp3aXNjaGVuIGVpbmVtIGRldXRzY2hlbgpUb3VyaXN0ZW4gdW5kIGVpbmVtIGRldXRzY2hlbiBUZXJyb3Jpc3Rlbj8KCgoKCgoKCgoKCgoKCgoKCgpEZXIgVGVycm9yaXN0IGhhdCBTeW1wYXRoaXNhbnRlbi4uLgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVG91cmlzdCAoVmFuaW9uLCAyMC4gTWFyIDIwMTIsIDIxOjUxOjU4KToKfiMhIHJuPUFyayBydD0xMzMxODAzODIwIHJnPXdpdHplCn4jISB0aWQ9MTMzMTI0MDg5NQpOYSBkYW5uIG5vY2ggZWluZXIgYXVzIGRlciB1bnRlcnN0ZW4gU2NodWJsYWRlOgpXYXMgaXN0IGRlciBVbnRlcnNjaGllZCB6d2lzY2hlbiBlaW5lbSBUZXJyb3Jpc3RlbiB1bmQgZWluZW0gRm9ybWFsaXN0ZW4/CgpNaXQgZGVtIFQuIGthbm4gbWFuIHZlcmhhbmRlbG4uCgpWKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQXVzZ2VrcmV1enQgKEFudGhlYSwgMTYuIEFwciAyMDEyLCAxMDowNDowMyk6CldhcyBwYXNzaWVydCwgd2VubiBtYW4gZWluZW4gTWFubiBtaXQgZWluZW0gU2Nod2VpbiBrcmV1enQ/CkdhciBuaXguCkRhcyBTY2h3ZWluIHd1ZXJkZSBzaWNoIGRhcyBuaWNodCBnZWZhbGxlbiBsYXNzZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXRhaWxzIChBbnRoZWEsIDE2LiBBcHIgMjAxMiwgMTA6MDQ6MjgpOgpEZXIgTWFubiBpc3Qgdm9lbGxpZyBnZW5lcnZ0LgoiRXJzdCBsaWVnc3QgRHUgbWlyIGluIGRlbiBPaHJlbiwgZGFzcyBEdSB1bmJlZGluZ3QgZWluZW4gTmVyeiBoYWJlbiB3aWxsc3QsCnVuZCBkYW5uIG1lY2tlcnN0IER1IHJ1bSwgd2VpbCBEdSBkZW4gS2FlZmlnIHNlbGJlciBzYXViZXJtYWNoZW4gbXVzc3QuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTmFtZW5zdGFnIChBbnRoZWEsIDE2LiBBcHIgMjAxMiwgMTA6MDY6MTYpOgpEYSBlcyBoZXV0ZSBzbyBzY2hvZW4gcGFzc3Q6CgpFaW4gTWFubiBiZWkgZGVyIFBhcHN0YXVkaWVuejogIkFjaCBqYSwgYWxsZXMgR3V0ZSB6dW0gTmFtZW5zdGFnISIKUGFwc3Q6ICJXaWVzbz8gSGV1dGUgaXN0IGRvY2ggZ2FyIG5pY2h0ICdCZW5lZGlrdCc/IT8iCk1hbm46ICJEYXMgbmljaHQsIGFiZXIgZGVyIHNlY2h6ZWhudGUuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKYnJlbm5lbmRlcyBJbnRlcmVzc2UgKEFudGhlYSwgMTYuIEFwciAyMDEyLCAxMDoxNzozOSk6CkZyYWd0IGVpbmUgS2VyemUgZGllIGFuZGVyZTogIklzdCBXYXNzZXIgZWlnZW50bGljaCBsZWJlbnNnZWZhZWhybGljaD8iClNhZ3QgZGllIGFuZGVyZTogIkRhdm9uIGthbm5zdCBEdSBhdXNnZWhlbiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYnJlbm5lbmRlcyBJbnRlcmVzc2UgKFJob3ZhbiwgMTYuIEFwciAyMDEyLCAxMDo1MjozOSk6Cn4jISBybj1BbnRoZWEgcnQ9MTMzNDU2NDI1OSByZz13aXR6ZQp+IyEgdGlkPTEzMzQ1NjQyNTkKV2FzIGthbm4gbWFuIGxlaWNodGVyIGJhdWVuLCBlaW5lbiBTY2huZWVtYW5uIG9kZXIgZWluZSBTY2huZWVmcmF1PwpFaW5lbiBTY2huZWVtYW5uIQpCZWkgZGVyIFNjaG5lZWZyYXUgbXVzcyBtYW4gZXJzdCBub2NoIGRlbiBLb3BmIGF1c2hvZWhsZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGJyZW5uZW5kZXMgSW50ZXJlc3NlIChSaG92YW4sIDE2LiBBcHIgMjAxMiwgMTE6MDU6MDEpOgp+IyEgcm49UmhvdmFuIHJ0PTEzMzQ1NjYzNTkgcmc9d2l0emUKfiMhIHRpZD0xMzM0NTY0MjU5CkRpZSBMZWhyZXJpbiBpbSBVbnRlcnJpY2h0OiAiV2VubiBhdWYgZWluZW0gQXN0IGRyZWkgVm9lZ2VsIHNpdHplbiB1bmQKaWNoIGVpbmVuIGFic2NoaWVzc2UsIHdpZSB2aWVsZSBzaXR6ZW4gZGFubiBub2NoIGRvcnQ/IgpNZWxkZXQgc2ljaCBGcml0emNoZW46ICJHYXIga2VpbmUsIEZyYXUgTGVocmVyaW4hIi4KIkFiZXIgd2llc28gZGVubj8iIGZyYWd0IGRpZSBMZWhyZXJpbi4KQW50d290ZXQgRnJpdHpjaGVuOiAiV2VubiBTaWUgZWluZW4gYWJzY2hpZXNzZW4sIGZhZWxsdCBkZXIgcnVudGVyIHVuZCAKZGllIGFuZGVyZW4gZmxhdHRlcm4gdm9yIFNjaHJlY2sgZGF2b24hIi4KRGllIExlaHJlcmluOiAiSG0sIGRhcyB3YXIgbmljaHQgZGllIEFudHdvcnQsIGRpZSBpY2ggZXJ3YXJ0ZXQgaGFiZS4KQWJlciBkZWluZSBBcnQgenUgZGVua2VuIGdlZmFlbGx0IG1pci4iLgpEYXJhdWYgRnJpdHpjaGVuOiAiSWNoIGhhYiBhdWNoIGVpbiBSYWV0c2VsIGZ1ZXIgU2llOiAKIkluIGVpbmVtIEVpc2NhZmUgc2l0emVuIHp3ZWkgRnJhdWVuLiBFaW5lIGJlaXNzdCB1bmQgZWluZSBsdXRzY2h0IGlociBFaXMuCldlbGNoZSBpc3QgdmVyaGVpcmF0ZXQ/Ii4KRGllIExlaHJlcmluIHdpcmQgcm90LCB1ZWJlcmxlZ3QgdW5kIHNhZ3Q6ICJEaWUsIGRpZSBpaHIgRWlzIGx1dHNjaHQ/Ii4KRnJpdHpjaGVuOiAiTmVpbiwgZGllIG1pdCBkZW0gRWhlcmluZy4gQWJlciBJaHJlIEFydCB6dSBkZW5rZW4gZ2VmYWVsbHQgbWlyLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmdlc3RlY2t0IChBbnRoZWEsIDE2LiBBcHIgMjAxMiwgMTM6MjU6MTMpOgoiV2FzIHNjaG5laWRlc3QgZHUgZGVubiBkYSBhdXMgZGVyIFplaXR1bmcgYXVzPyIsIHdpbGwgZGVyIFdpcnQgdm9uIHNlaW5lbQpTdGFtbWdhc3Qgd2lzc2VuLgoiRGVuIEFydGlrZWwgdWViZXIgZGVuIE1hbm4sIGRlciBzZWluZSBGcmF1IHVtZ2VicmFjaHQgaGF0LCB3ZWlsIHNpZSBzdGFlbmRpZwpzZWluZSBBbnp1Z3N0YXNjaGVuIGR1cmNoc3VjaHQgaGF0LiIKIlVuZCB3b3p1IGJyYXVjaHN0IGR1IGRlbiBBcnRpa2VsPyIKIlVtIGlobiBpbiBtZWluZSBBbnp1Z3N0YXNjaGUgenUgc3RlY2tlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgptaXRmdWVobGVuZCAoQW50aGVhLCAxNi4gQXByIDIwMTIsIDEzOjI5OjQyKToKRGllIE9tYSBzaXR6dCBpbSBQYXJrIGF1ZiBkZXIgQmFuayB1bmQgcnVodCBzaWNoIGF1cy4gRGEgc2V0enQgc2ljaCBlaW4KU2tpbmhlYWQgbWl0IEdsYXR6ZSB1bmQgU3ByaW5nZXJzdGllZmVsbiBuZWJlbiBzaWUgaGluLiBPbWkgYmV0cmFjaHRldCBpaG4KZWluZSBXZWlsZSB1bmQgbWVpbnQgZGFubiBtaXQgbWl0ZnVlaGxlbmRlciBTdGltbWU6CiJEdSBtZWluZSBHdWV0ZSwgaWhyIGhhYnQncyBhYmVyIHNjaG9uIHNjaHdlciBoZXV0enV0YWdlLCBnZWxsPyBJY2ggbWVpbmUsCmVyc3QgZGllc2Ugc2Nod2VyZW4gb3J0aG9wYWVkaXNjaGVuIFNjaHVoZSwgdW5kIGRhbm4gYXVjaCBub2NoIGVpbmUgQ2hlbW8sIGlocgpKdW5nZW4gaGFidGBzIG1hbmNobWFsIHdpcmtsaWNoIG5pY2h0IGxlaWNodC4uLiEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCZXdlZ3VuZyAoQW50aGVhLCAyNC4gQXByIDIwMTIsIDE0OjQ4OjI3KToKV2VubiBMYXVmZW4gdW5kIFJhZGZhaHJlbiBnZXN1bmQgd2FlcmUsIGRhbm4gbXVlc3N0ZSBkZXIgUG9zdGJvdGUgdW5zdGVyYmxpY2gKc2Vpbi4KCkVpbiBXYWwgc2Nod2ltbXQgZGVuIGdhbnplbiBUYWcsIGlzc3QgbnVyIEZpc2NoIHVuZCB0cmlua3QgdmllbCBXYXNzZXIuCkVyZ2VibmlzOiBlciBpc3QgZmV0dC4KCkVpbiBIYXNlIHNwcmluZ3QgdW5kIGhvcHBlbHQgZGVuIGdhbnplbiBUYWcgdW5kIGVybmFlaHJ0IHNpY2ggbnVyIHZvbiBTYWxhdAp1bmQgR2VtdWVzZS4KRXIgaGF0IGVpbmUgTGViZW5zZXJ3YXJ0dW5nIHZvbiBudXIgMTUgSmFocmVuLgoKRWluZSBTY2hpbGRrcm9ldGUgamVkb2NoIHR1dCBuaWNodHMsIGNoaWxsdCBkZW4gZ2FuemVuIFRhZyB1bmQgbGVidCAxNTAgSmFocmUuCgpVbmQgamV0enQgd2lsbHN0IGR1IG1pciBlcnphZWhsZW4sIGRhc3MgbWlyIGVpbiB3ZW5pZyBCZXdlZ3VuZyBndXQgdHV0ID8/PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2l0emUgKE5laWwsIDMwLiBBcHIgMjAxMiwgMTU6MTc6MjkpOgpXYXJ1bSBoYXR0ZSBEYXZpZCBDb3BwZXJmaWVsZCBpbiBQb2xlbiBrZWluZW4gRXJmb2xnPwpXZWlsIGVzIGRvcnQgbmljaHRzIFVuZ2V3b2VobmxpY2hlcyBpc3QsIHdlbm4gZXR3YXMgdmVyc2Nod2luZGV0IQoKRWluIFR1ZXJrZSBpc3QgYXVmIGRlciBBdXRvYmFobiB1bnRlcndlZ3MuClBsb2V0emxpY2ggYmVrb21tdCBlciBlaW5lbiBQbGF0dGVuLiBBbHMgZXIgZ2VyYWRlIGRhYmVpIGlzdCBkZW4gUmVpZmVuIHp1CndlY2hzZWxuLCBrb21tdCBlaW4gUG9sZSwgcmVpc3N0IGRpZSBUdWVyIGRlcyBXYWdlbnMgYXVmIHVuZCByZWlzc3QgZGFzIFJhZGlvCmhlcmF1cy4KRGVyIFR1ZXJrZSB3dWV0ZW5kOiAiRXksIHNwaW5uc3QgZHU/IiBEYXJhdWYgZGVyIFBvbGU6ICJQc3Nzc3QhIEljaCBSYWRpbyB1bmQKZHUgUmVpZmVuISIKCikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkRpZWJlIHdpdHogKE5laWwsIDMwLiBBcHIgMjAxMiwgMTU6MzA6MTgpOgpFaW4gRGllYiBrbGV0dGVydCBkdXJjaCBkYXMgRmVuc3RlciBpbiBlaW4gSGF1cyB1bmQgc3VjaHQgbmFjaApXZXJ0Z2VnZW5zdGFlbmRlbi4KUGxvZXR6bGljaCBob2VydCBlciBlaW5lIFN0aW1tZTogIkljaCBrYW5uIGRpY2ggc2VoZW4uIEplc3VzIHVuZCBQZXRydXMgc2VoZW4KRGljaCBhdWNoISIKRXIgc2llaHQgc2ljaCB1bSwga2FubiBhYmVyIG5pY2h0cyBlcmtlbm5lbi4KSW0gbmFlY2hzdGVtIFppbW1lciBkYXMgZ2xlaWNoZSBTcGllbC4gQWxzIGVyIG5vY2ggd2VpdGVyIGdlaHQsIHNpZWh0IGVyIGVpbmVuClBhcGFnZWkgaW4gc2VpbmVtIEthZWZpZyBzaXR6ZW4gZGVyIGViZW4gZGllc2UgV29ydGUgenUgaWhtIFNwcmljaHQuCkRlciBEaWViIGlzdCBiZXJ1aGlndCB1bmQgZnJhZ3QgZGVuIFBhcGFnZWk6ICJXaWUgaGVpc3N0IGR1IGRlbm4/Ii4KUGFwYWdlaTogIkplcnVzYWxlbSIuCkRlciBEaWViOiAiV2FzIGZ1ZXIgZWluIHNhdWJsb2VkZXIgTmFtZSBmdWVyIGVpbmVuIFBhcGFnZWkhIi4KUGFwYWdlaTogIlZpZWxsZWljaHQsIGFiZXIgbmljaHQgc28gZHVtbSB3aWUgSmVzdXMgdW5kIFBldHJ1cyBmdWVyIGVpbmVuClJvdHR3ZWlsZXIgdW5kIGVpbmVuIERvYmVybWFubi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogRGllYmUgd2l0eiAoTmVpbCwgMzAuIEFwciAyMDEyLCAxNTo0NTozNSk6Cn4jISBybj1OZWlsIHJ0PTEzMzU3OTI2MTggcmc9d2l0emUKfiMhIHRpZD0xMzM1NzkyNjE4CkVpbiBIYXNlIHVuZCBlaW4gQmFlciBnZWhlbiBkdXJjaCBkZW4gV2FsZC4KQXVmIGVpbm1hbCB0YXVjaHQgZWluZSBGZWUgYXVmIHVuZCBzYWd0OiAiSmVkZXIgdm9uIGV1Y2ggaGF0IDMgV3VlbnNjaGUgZnJlaSIuCkRlciBCYWVyIGZhZW5ndCBhbjogIkljaCB3dWVuc2NoZSBtaXIsIGRhc3MgYWxsZSBCYWVyZW4gaW4gZGllc2VtIFdhbGQKd2VpYmxpY2ggc2luZCB1bmQgYXVmIG1pY2ggc3RlaGVuIi4KRGllIEZlZSBndWNrdCB6d2FyIGtvbWlzY2gsIGFiZXIgZXJmdWVsbHQgaWhtIGRlbiBXdW5zY2guCkRlciBIYXNlIHNhZ3Q6ICJPa2F5LCBpY2ggd3VlbnNjaGUgbWlyIGVpbiBNb3RvcnJhZCIuClVuZCAqUExJTkcqOiBlaW4gTmFnZWxuZXVlcyBNb3RvcmFkIHN0ZWh0IHZvciBpaG0uCkRlciBCYWVyOiAiSWNoIHd1ZW5zY2hlIG1pciwgZGFzcyBhbGxlIEJhZXJlbiBpbSBnYW56ZW4gTGFuZCBXZWlibGljaCBzaW5kIHVuZAphdWYgbWljaCBzdGVoZW4iLgpEZXIgSGFzZSBzYWd0OiAiSG0sIGljaCBoYWJlIGVpbiBNb3RvcnJhZCwgYWJlciBpY2ggd2lsbCBhdWNoIGVpbmVuIEhlbG0iLgpaYWNrIGhhdCBkZXIgSGFzZSBub2NoIGVpbmVuIEhlbG0uCkRlciBCYWVyIGF1ZmdlcmVndDoiIEljaCB3dWVuc2NoZSBtaXIgZGFzIEFMTEUgQmFlcmVuIGF1ZiBkZXIgRXJkZSB3ZWlibGljaApzaW5kIHVuZCBhdWYgbWljaCBzdGVoZW4iLgpXaWVkZXIgZXJmdWVsbHQgaWhtIGRpZSBGZWUgZGllc2VuIFd1bnNjaC4KRGVyIEhhc3RlIGhhdCBzZWluZW4gbGV0enRlbiBXdW5zY2ggdW5kIHNhZ3Q6ICJJY2ggd3VlbnNjaGUgbWlyLCBkYXNzIGRlciBCYWVyCnNjaHd1bCBpc3QiLCBzZXR6dCBzaWNoIGRlbiBIZWxtIGF1ZiB1bmQgRmFlaHJ0IG1pdCBkZW0gTW90b3JyYWQgZGF2b24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXaWUgd2FociAoQW50aGVhLCAgMi4gTWFpIDIwMTIsIDEwOjQwOjU3KToKQSBmYWN0IG9mIGxpZmU6CkFmdGVyIE1vbmRheSBhbmQgVHVlc2RheSBldmVuIHRoZSBjYWxlbmRhciBzYXlzOgpXIFQgRi4uLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWZXJzdGFlbmRpZ3VuZyAoQW50aGVhLCAxNi4gTWFpIDIwMTIsIDE4OjExOjU3KToKRWluZSBiaWxkaHVlYnNjaGUgUnVzc2luIGhlaXJhdGV0ZSBlaW5lbiBkZXV0c2NoZW4gQmF1aW5nZW5pZXVyIHVuZCBzaWUgbGVidGVuCmRhbmFjaCBnbHVlY2tsaWNoIGluIER1ZXNzZWxkb3JmLgpBYmVyIGRpZSBhcm1lIEZyYXUgdGF0IHNpY2ggc2VociBzY2h3ZXIgbWl0IGRlciBkZXV0c2NoZW4gU3ByYWNoZSwgYWJlciBzaWUKc2NoYWZmdGUgZXMgaW1tZXJoaW4sIGRhc3Mgc2llIHNpY2ggbWl0IGlocmVtIEVoZW1hbm4gZ3V0IHZlcnN0YW5kLgpFaW4gcmljaHRpZ2VzIFByb2JsZW0gd2FyIGVzIGFsbGVyZGluZ3MsIGltbWVyIHdlbm4gc2llIExlYmVuc21pdHRlbCBlaW5rYXVmZW4KbXVzc3RlLgpFaW5lcyBUYWdlcyBnaW5nIHNpZSB6dW0gTWV0emdlciB1bmQgd29sbHRlIEh1ZWhuZXJiZWluZSBrYXVmZW4sIHNpZSBoYXR0ZQpOdWxsIElkZWUsIHdpZSBzaWUgc2ljaCB2ZXJzdGFlbmRpZ2VuIHNvbGx0ZSwgYWxzbyBnYWNrZXJ0ZSBzaWUgd2llIGVpbiBIdWhuCnVuZCBob2IgaWhyZW4gUm9jayBob2NoIHVuZCB6ZWlndGUgYXVmIGlocmUgQmVpbmUuCkRlciBNZXR6Z2VyIHZlcnN0YW5kIGRpZSBHZWJhZXJkZSB1bmQgZ2FiIGlociBkaWUgSHVlaG5lcmJlaW5lLgpBbSBuYWVjaHN0ZW4gVGFnIGJyYXVjaHRlIHNpZSBIdWVobmVyYnJ1c3QsIHVuZCB3aWVkZXIgd3Vzc3RlIHNpZSBzaWNoIG5pY2h0Cnp1IGFldXNzZXJuLgpBbHNvIGdhY2tlcnRlIHNpZSB3aWVkZXIgd2llIGVpbiBIdWhuLCBrbm9lcGZ0ZSBpaHJlIEJsdXNlIGF1ZiwgdW5kIHplaWd0ZSBhdWYKaWhyZSBCcnVlc3RlLiBXaWVkZXIgaGF0dGUgZGVyIE1ldHpnZXIgc29mb3J0IHZlcnN0YW5kZW4gdW5kIHJlaWNodGUgaWhyIGRpZQpIdWVobmVyYnJ1c3QuCkFtIGRyaXR0ZW4gVGFnIHdvbGx0ZSBkaWUgQWVybXN0ZSBXdWVyc3RjaGVuIGthdWZlbi4KVW5mYWVoaWcsIHNpY2ggamV0enQgdmVyc3RhZW5kbGljaCB6dSBtYWNoZW4sIGJyYWNodGUgc2llIGVpbmZhY2ggaWhyZW4gTWFubgptaXQuLi4uLi4uCgoKCgoKCgoKV2FzIGRlbmtzdCBkdSBkZW5uIGZ1ZXIgc2NobGltbWUgU2FjaGVuPwpIYWxsb29vb29vbywgaWhyIEVoZW1hbm4gc3ByaWNodCBkZXV0c2MhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOZXVsaWNoIGluIGRlciBaZWl0dW5nIChOZWlsLCAxNy4gTWFpIDIwMTIsIDAwOjI3OjA2KToKVGF1c2NoZSBzY2h3ZXIgdmVyc3RhZW5kbGljaGVzIEJ1Y2ggdWViZXIgRW1wZmFlbmduaXN2ZXJodWV0dW5nIGdlZ2VuCmdlYnJhdWNodGVuIEtpbmRlcndhZ2VuCkNoaWZmcmUgOTkyNDEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOZXVsaWNoIGluIGRlciBaZWl0dW5nIChOZWlsLCAxNy4gTWFpIDIwMTIsIDAwOjMxOjEyKToKfiMhIHJuPU5laWwgcnQ9MTMzNzIwNzIyNiByZz13aXR6ZQp+IyEgdGlkPTEzMzcyMDcyMjYKS29udGFrdGFuemVpZ2U6CjMtZmFjaGUgV2l0d2UgKEhvYmJpZXM6IFBpbHplIHNhbW1lbG4gdW5kIEtvY2hlbikKc3VjaHQgTWFubiBmdWVyIHJvbWFudGlzY2hlIENhbmRsZWxpZ2h0LURpbm5nZXJzLgpDaGlmZnJlIDk5MTc2MQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBOZXVsaWNoIGluIGRlciBaZWl0dW5nIChWZWN0b3IsIDE4LiBNYWkgMjAxMiwgMTg6NTA6MDQpOgp+IyEgcm49TmVpbCBydD0xMzM3MjA3NDcyIHJnPXdpdHplCn4jISB0aWQ9MTMzNzIwNzIyNgoxIGJvdHRsZSBvZiBiZWVyIG9uIHRoZSB3YWxsLCAxIGJvdHRsZSBvZiBiZWVyLCB5b3UgdGFrZSAxIGRvd24sIHBhc3MgaXQKYXJvdW5kLCAKMCBib3R0bGVzIG9mIGJlZXIgb24gdGhlIHdhbGwuIDAgYm90dGxlcyBvZiBiZWVyIG9uIHRoZSB3YWxsLCAwIGJvdHRsZXMgb2YKYmVlciwgCnlvdSB0YWtlIDEgZG93biwgcGFzcyBpdCBhcm91bmQsIDQyOTQ5NjcyOTUgYm90dGxlcyBvZiBiZWVyIG9uIHRoZSB3YWxsLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTmV1bGljaCBpbiBkZXIgWmVpdHVuZyAoQW1hcnlsbGlzLCAxOC4gTWFpIDIwMTIsIDIwOjE1OjE5KToKfiMhIHJuPVZlY3RvciBydD0xMzM3MzU5ODA0IHJnPXdpdHplCn4jISB0aWQ9MTMzNzIwNzIyNgpEYXMgaXN0IHVuZmFpciwgZGFzIGlzdCBqYSBlaW4gTWF0aGVtYXRpa2VyL0luZm9ybWF0aWtlci1JbnNpZGVyIDspCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBOZXVsaWNoIGluIGRlciBaZWl0dW5nIChWZWN0b3IsIDE5LiBNYWkgMjAxMiwgMDA6Mjg6MzMpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEzMzczNjQ5MTkgcmc9d2l0emUKfiMhIHRpZD0xMzM3MjA3MjI2CmFqbyBkYW1pdCB3ZW5pZ3N0ZW5zIGVpbm1hbCB3YXMgZ3V0ZXMgaW4gZGllc2VyIHJ1YnJpayBzdGVodDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOZXVsaWNoIGluIGRlciBaZWl0dW5nIChHbG9pbnNvbiwgMTkuIE1haSAyMDEyLCAxMDozNTo0OSk6Cn4jISBybj1WZWN0b3IgcnQ9MTMzNzM4MDExMyByZz13aXR6ZQp+IyEgdGlkPTEzMzcyMDcyMjYKV2FlcmUgaW0gTVVEIGFsbGVyZGluZ3MgOTIyMzM3MjAzNjg1NDc3NTgwNy4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWV1c2NoZW4gKEFudGhlYSwgMzEuIE1haSAyMDEyLCAxNDo0ODowNyk6CiJTYWcgbWFsLCB3YXJ1bSBuZW5uc3QgZHUgZGVpbmUgRnJhdSBlaWdlbnRsaWNoIE1hdXM/IiBmcmFndCBkZXIgRnJldW5kLgoiV2VpbCBzaWUgc3RhZW5kaWcgYW4gbWVpbmVyIEJyaWVmdGFzY2hlIGhlcnVtbmFndCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWFldHBsYW4gKEFudGhlYSwgIDEuIEp1biAyMDEyLCAxMjoxMjowNSk6Cktlbm5zdCBEdSBzY2hvbiBkaWUgR2luLVRvbmljLURpYWV0PwpTaWUgc2NobGFlZ3QgZWNodCBhbiwgYmlzaGVyIGhhYiBpY2ggc2Nob24gMiBUYWdlIHZlcmxvcmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nod2llZ2VybXVldHRlciAoS2VsbHlidW5keSwgIDIuIEp1biAyMDEyLCAxMDoyMDozNyk6CldhcyBzaW5kIGdlbWlzY2h0ZSBHZWZ1ZWhsZT8KCgoKCgoKCgoKV2VubiBEZWluZSBTY2h3aWVnZXJtdXR0ZXIgbWl0IERlaW5lbSBmdW5rZWxuaWVnZWxuYWdlbG5ldWVuIE1vdG9ycmFkIG1pdCAxNTAKZ2VnZW4gZWluZW4gQnJ1ZWNrZW5wZmVpbGVyIGtyYWNodC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTY2h3aWVnZXJtdWV0dGVyIChHbG9pbnNvbiwgIDIuIEp1biAyMDEyLCAxMTozMDo0MSk6Cn4jISBybj1LZWxseWJ1bmR5IHJ0PTEzMzg2MjUyMzcgcmc9d2l0emUKfiMhIHRpZD0xMzM4NjI1MjM3CkRhIGdpYnQgZXMgZG9jaCBWb2xsa2Fza28sIG9kZXIgdmVyc2ljaGVydCB3ZXIgZWluIGZ1bmtlbG5pZWdlbG5hZ2VsbmV1ZXMKR2VyYWV0IGVybnN0aGFmdCBudXIgSGFmdHBmbGljaHQ/IE51ciBkaWUgV2FydGV6ZWl0IGF1ZiBlaW4gbmV1ZXMgR2VyYWV0Cnd1ZXJkZSBoZWZ0aWcgc3RvZXJlbiAob2IgZGFzIGJlaSBkZXIgU2Nod2llZ2VybXV0dGVyIGF1Y2ggZnVua3Rpb25pZXJ0KT8KCkdsb2luc29uLCBzcG9pbHNwb3J0CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTY2h3aWVnZXJtdWV0dGVyIChLZWxseWJ1bmR5LCAgMi4gSnVuIDIwMTIsIDExOjMyOjMyKToKfiMhIHJuPUdsb2luc29uIHJ0PTEzMzg2Mjk0NDEgcmc9d2l0emUKfiMhIHRpZD0xMzM4NjI1MjM3CkhtbSB1bmQgd2VubiBtYW4gZHVtbWVyd2Vpc2UgZGVuIGxldHp0ZW4gQmVpdHJhZyBmdWVyIGRpZSBWb2xsa2Fza28gbmljaHQKZ2Vsb2VobnQgaGF0PyAqR0cqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBTY2h3aWVnZXJtdWV0dGVyIChWZWN0b3IsICAzLiBKdW4gMjAxMiwgMTg6NDI6NTEpOgp+IyEgcm49S2VsbHlidW5keSBydD0xMzM4NjI5NTUyIHJnPXdpdHplCn4jISB0aWQ9MTMzODYyNTIzNwp3aWUgaGVpc3N0IGRlciBsaWVibGluZ3NmaWxtIHZvbiBtYXRoZW1hdGlrZXJuPwoKCgoKZGFzIHNjaHdlaWdlbiBkZXIgbGVtbWEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFNjaHdpZWdlcm11ZXR0ZXIgKFplc3N0cmEsICAzLiBKdW4gMjAxMiwgMTg6NTc6MjIpOgp+IyEgcm49VmVjdG9yIHJ0PTEzMzg3NDE3NzEgcmc9d2l0emUKfiMhIHRpZD0xMzM4NjI1MjM3CkljaCBkYWNodGUsIGRhcyB3YXIgZGVyIExpZWJsaW5nc2ZpbG0gZGVyIGR0LiBXaWtpcGVkaWE/CgpaZXNzdHJhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBTY2h3aWVnZXJtdWV0dGVyIChBbWFyeWxsaXMsICAzLiBKdW4gMjAxMiwgMTk6MzY6MTQpOgp+IyEgcm49WmVzc3RyYSBydD0xMzM4NzQyNjQyIHJnPXdpdHplCn4jISB0aWQ9MTMzODYyNTIzNwplZ2FsIHdhcyBudW4gc3RpbW10OiBpaHIgc2VpZCBiZWlkZSBhdWEuCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV42OiBTY2h3aWVnZXJtdWV0dGVyIChSdW1hdGEsICAzLiBKdW4gMjAxMiwgMjM6MTE6NDUpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEzMzg3NDQ5NzQgcmc9d2l0emUKfiMhIHRpZD0xMzM4NjI1MjM3ClF1YXJrLCAiZWluIFNhdHogaW4gTWFuaGF0dGFuIiBpc3QgdmlpaWVsIGJlc3Nlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCktyaXNlbG5kIChBbnRoZWEsICA2LiBKdW4gMjAxMiwgMTQ6NTc6MjkpOgpEaWUgV2lydHNjaGFmdHNrcmlzZSBpc3Qgc2NobGltbWVyIGFscyBlaW5lIFNjaGVpZHVuZzouLi4uIGR1IHZlcmxpZXJzdCBuaWNodApudXIgZGllIEhhZWxmdGUgZGVpbmVzIEdlbGRlcywgc29uZGVybiBiZWhhZWx0c3Qgbm9jaCBkZWluZSBGcmF1LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2FjaGVuIGdpYnRzIC4uLiBudXIgaW4gZGVyIE5GRSAoQmx1dGdpZXIsIDEyLiBKdW4gMjAxMiwgMDA6NDE6MjMpOgpFaW4gRnJvc2NoIGVyc2NoZWludCBwbG9ldHpsaWNoIGF1cyBlaW5lciBGbGFtbWVud2FuZC4KRWluZXMgRnJvc2NoZXMgSGVsbSB3ZWhydCBkYXMgRmV1ZXIgYWIuCkVpbiBGcm9zY2ggZmFlbGx0IHRvdCB6dSBCb2Rlbi4KW1RlYW0gOTpUb2RdIFRBTEFOSVMgSEFUIERBUyBURUFNIFZFUkxBU1NFTi4KRHUgc2llaHN0IGVpbmUgZHVua2xlIEdlc3RhbHQsIGRpZSBldHdhcyBEdW5zdCBlaW5zYW1tZWx0IC4uLiBvZGVyIHZpZWxsZWljaHQKYmlsZGVzdCBkdSBEaXIgZGFzIGF1Y2ggbnVyIGVpbiAuLi4KW1RvZDpMYXJzXSBFaW5lIFdhbmQgYXVzIEZldWVyIGhhdCBnZXJhZGUgVGFsYW5pcyB1bWdlYnJhY2h0LgpyZWNrRHUgYmVlbmRlc3QgZGllIFJ1ZWNrZW5kZWNrdW5nIGZ1ZXIgS25hLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkF1dHNjaCAoQW50aGVhLCAxNS4gSnVuIDIwMTIsIDA5OjIwOjMxKToKV2hhdCBkaWQgdGhlIEJ1ZmZhbG8gc2F5IHdoZW4gaGlzIHNvbiBsZWZ0IGZvciBjb2xsZWdlPwoKCgpCaXNvbiEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCnNjaG5lbGxlcyBzcGllbCAoQW50aGVhLCAyNy4gSnVuIDIwMTIsIDEzOjM3OjI1KToKVHdpbGlnaHQgZHJpbmtpbmcgZ2FtZQoxKSBEcmluZyA0MCBzaG90cyB3aGVuIHlvdSBwcmVzcyBwbGF5IHNvIHlvdSBjYW4gZGllIGJlZm9yZSB0aGUgbW92aWUgc3RhcnRzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IHNjaG5lbGxlcyBzcGllbCAoUnVtYXRhLCAyNy4gSnVuIDIwMTIsIDEzOjQ3OjM2KToKfiMhIHJuPUFudGhlYSBydD0xMzQwNzk3MDQ1IHJnPXdpdHplCn4jISB0aWQ9MTM0MDc5NzA0NQpGdW56dCBhYmVyIG5pY2h0IG1pdCBLaWRuZXJzY2heV1RlcnJvcl5XU2Nod2VyemtvcF5XZ2VyaXBwdGVuIEZpbG1lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogc2NobmVsbGVzIHNwaWVsIChWZWN0b3IsICA3LiBKdWwgMjAxMiwgMTM6MTk6NDEpOgp+IyEgcm49UnVtYXRhIHJ0PTEzNDA3OTc2NTYgcmc9d2l0emUKfiMhIHRpZD0xMzQwNzk3MDQ1CmVpbmUgZnJhdSBrb21tdCBpbiBkaWUgYXBvdGhla2U6CmVudHNjaHVsZGlndW5nLCBoYWJlbiBzaWUgZGllIG5ldWVuIG1hZ251bSB4eGwta29uZG9tZT8KCm5hdHVlcmxpY2gsIHNhZ3QgZGVyIGFwb3RoZWtlciwgd29sbGVuIHNpZSBlaW5lIHBhY2t1bmc/CgpuZWluIGFiZXIgaWNoIHdhcnRlIGhpZXIgYmlzIGVpbmVyIGtvbW10IGRlciBzaWUga2F1ZnQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHdXQgZ2VoYWx0ZW4gKEFudGhlYSwgMTAuIEp1bCAyMDEyLCAwOTozNzowOCk6CkF1ZiBTdC4gUGF1bGkgd3VyZGUgZWluIFNhcmcgZ2VmdW5kZW4uCk1hbiBoYXQgdmVyc3VjaHQsIGlobiB6dSBvZWZmbmVuLCBhYmVyIGVzIGdpbmcgbmljaHQuCgoKRXMgd2FyIGVpbiBadWhhZWx0ZXIgZHJpbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0ZWFrcyAoQW50aGVhLCAxMS4gSnVsIDIwMTIsIDE1OjQ2OjA3KToKRGlkIHlvdSBldmVyIHRhc3RlIFdvb2tpZSBzdGVhaz8KCkl0J3MgYSBsaXR0bGUgQ2hld3kuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0ZWluaWd1bmcgKEhpZ2hsYW5kZXIsIDExLiBKdWwgMjAxMiwgMTY6MTA6MDIpOgpKZXN1cyBzY2hyZWl0ZXQgYmVpIGVpbmVyIFN0ZWluaWd1bmcgZWluIHVuZCB2ZXJzdWNodCwgc2llIHp1IHZlcmhpbmRlcm4uCkJlaSBkZW4gV29ydGVuICJXZXIgdW50ZXIgZXVjaCBvaG5lIFN1ZW5kZSBpc3QsIGRlciB3ZXJmZSBkZW4gZXJzdGVuClN0ZWluIiBzYXVzdCBlaW4gU3RlaW4gYW4gSmVzdXMgdm9yYmVpIHVuZCB0cmlmZnQgZGVuIHp1IFN0ZWluaWdlbmRlbi4KSmVzdXMgc2V1ZnQgbnVyIHVuZCBzYWd0OiAiTWFtYSwgRHUgbmVydnN0LiIKCkhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWJlciBub2NobWFsIHp1IFN0YXIgV2Fycy4uLiAoSGlnaGxhbmRlciwgMTEuIEp1bCAyMDEyLCAxNzoyNzo0Myk6CldoYXQgaXMgdGhlIGludGVybmFsIHRlbXBlcmF0dXJlIG9mIGEgdGF1bnRhdW4/CgpMdWtlIHdhcm0uCgpIclQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFZvcmVpbnN0ZWxsdW5nICd6ZWlsZW4nIChOZWlsLCAyNi4gQXVnIDIwMTIsIDIzOjQ5OjEyKToKfiMhIHJuPVNwYXJrbGUgcnQ9MTM0NTcxNzE5NSByZz1lbnR3aWNrbHVuZwp+IyEgdGlkPTEzNDU2NTc5OTUKTWFtYSBoYXQgZGVuIHN1ZXNzZW4gSGFzZW4gZ2VzY2hsYWNodGV0IHVuZCB6dW0gQWJlbmRicm90IGdlbWFjaHQuCkRhIGRpZSBLaW5kZXIgZGllc2VzIFRpZXIgc2VociBsaWViIGhhdHRlbiwKdmVyaGVpbWxpY2h0IHNpZSBpaG5lbiBkaWUgV2FocmhlaXQuCkRlciBrbGVpbmUgSnVuZ2UgaXNzdCBtaXQgdmllbCBBcHBldGl0IHVuZApmcmFndCBzZWluZW4gUGFwYSwgd2FzIHNpZSBkYSBkZW5uIGVzc2VuLgpQYXBhIGdhbnogc3RvbHo6IiBSYXRldCBkb2NoIG1hbC4gSWNoIGdlYmUgZXVjaCBlaW5lbiB0aXAsCmFiIHVuZCB6dSBuZW5udCBNYW1hIG1pY2ggc28uIgpQbG9ldHpsaWNoIHNwdWNrdCBkaWUgVG9jaHRlciBhbGxlcyBhdXMgdW5kIHNhZ3QgenUgaWhyZW0gQnJ1ZGVyOiIKSXNzIGRhcyBibG9zcyBuaWNodCwgZGFzIGlzdCBlaW4gQXJzY2hsb2NoISIKCm1mZwpJY2gKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFZvcmVpbnN0ZWxsdW5nICd6ZWlsZW4nIChOZWlsLCAyNi4gQXVnIDIwMTIsIDIzOjU2OjE4KToKfiMhIHJuPU5laWwgcnQ9MTM0NjAxNzc1MiByZz13aXR6ZQp+IyEgdGlkPTEzNDU2NTc5OTUKRGVyIEZyZXVuZCBpc3QgZGFzIGVyc3RlIG1hbCBiZWkgZGVuIEVsdGVybiBzZWluZXIgRnJldW5kaW4uCk5hY2ggZGVtIEVzc2VuIHZlcnNwdWVydCBlciBlaW5lbiB1bmdsYXVibGljaGVuIERyYW5nIHp1Li4uIEZ1cnplbi4KTGVpc2UsIGFiZXIgaG9lcmJhciBsYWVzc3QgZXIgZWluZW4gZmFocmVuLgpEYXJhdWYgc2FndCBkZXIgVmF0ZXIgenVtIEh1bmQgdW50ZXJtIFRpc2NoOiAiSGFzc28hIi4KIlB1aCIsIGRlbmt0IGRlciBuZXVlIEZyZXVuZDogIkRlciBBbHRlIGRlbmt0IGRhc3MgZXMgZGVyIEh1bmQgd2FyISIKdW5kIGxhZXNzdCBwcm9tcHQgbm9jaCBlaW5lbiBmYWhyZW4uCiJIYXNzbyEiIHJ1ZnQgd2llZGVyIGRlciBWYXRlci4KRGFyYXVmIGZvbGd0IG5vY2ggZWluZXIsIGFiZXIgZWluIHZlcmRhbW10IGxhdXRlci4KIkhhc3NvISIsIHNhZ3QgZGVyIFZhdGVyLCJHZWggd2VnLCBiZXZvciBkZXIgVHlwIGRpciBub2NoIGF1ZiBkZW4gS29wZgpTY2hlaXNzdCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBWb3JlaW5zdGVsbHVuZyAnemVpbGVuJyAoTmVpbCwgMjcuIEF1ZyAyMDEyLCAwMDozMDo0NSk6Cn4jISBybj1OZWlsIHJ0PTEzNDYwMTgxNzggcmc9d2l0emUKfiMhIHRpZD0xMzQ1NjU3OTk1ClBldHJ1cyB1bmQgc2VpbiBDaGVmIGVpbmlnZW4gc2ljaCBkYXJhdWYsIGRhcyBrdWVuZnRpZyBudXIgbm9jaCAKZmFlbGxlIGF1Znp1bmVobWVuLCBkaWUgZWluZXMgYmVzb25kZXJzIHNwZWt0YWt1bGFlcmVuIFRvZGVzIGdlc3RvcmJlbiBzaW5kIQpFcyBrbG9wZnQgYW4gZGllIEhpbW1lbHN0dWVyLCBQZXRydXMgc2FndDogIk51ciBhdXNzZXJnZXdvZWhubGljaGUgRmFlbGxlISIKRGVyIFZlcnN0b3JiZW5lOiAiSG9lciBtZWluZSBHZXNjaGljaHRlOiBJY2ggZGFjaHRlIHNjaG9uIGltbWVyLAptZWluZSBGcmF1IGJldHJ1ZWd0IG1pY2guIEFsc28ga29tbWUgaWNoIHVlYmVycmFzY2hlbmQgZHJlaSBTdHVuZGVuIGZydWVoZXIKdm9uIGRlciBBcmJlaXQuIFJlbm5lIHdpZSB3aWxkIGluIGRhcyBzaWViZW5lIFN0b2Nrd2VyayB6dSBtZWluZXIgV29obnVuZwpyYXVmLCByZWlzc2UgZGllIFR1ZXIgYXVmLCBzdWNoZSB3aWUgZWluIFdhaG5zaW5uaWdlciBkaWUgZ2FuemUgV29obnVuZyBhYiB1bmQKYXVmIGRlbSBCYWxrb24gZmluZGUgaWNoIGVpbmVuIEtlcmwgdW5kIGRlciBoYWVuZ3QgYW0gR2VsYWVuZGVyLgpBbHNvLCBob2x0ZSBpY2ggbWVpbmVuIEhhbW1lciB1bmQgaGF1dGUgZGVuIFNhY2sgYXVmIGRpZSBGaW5nZXIuCkRlciBmYWVsbHQgcnVudGVyLCBsYW5kZXQgZGlyZWt0IGF1ZiBlaW5lbSBTdHJhdWNoIHVuZCBzdGVodCB3aWVkZXIgYXVmLi4uIApEaWUgU2F1LiBJY2ggenVydWVjayBpbiBkaWUgS3VlY2hlLCBncmVpZiBtaXIgZGVuIEt1ZWhsc2NocmFuayB1bmQgc2NobWVpc3MKZGFzIERpbmcgdm9tIEJhbGtvbi4gVHJlZmZlciEgTmFjaCBkZW0gZGllIFNhdSBudW4gcGxhdHQgaXN0LCBiZWtvbW1lIGljaCB2b24KZGVtIGdhbnplbiBTdHJlc3MgZWluZW4gSGVyemluZmFya3QuIgoiT2siLCBzYWd0IHNhZ3QgUGV0cnVzLiAiSXN0IGdlbmVobWlndCwga29tbSByZWluLiIKS3VyeiBkYXJhdWYga2xvcGZ0IGVzIHdpZWRlciAuLi4KIk51ciBhdXNzZXJnZXdvZWhubGljaGUgRmFlbGxlIiwgc2FndCBQZXRydXMuCiJLZWluIFByb2JsZW0iLCBzYWd0IGRlciBWZXJzdG9yYmVuZTogIkljaCBtYWNoZSB3aWUgamVkZW4gbW9yZ2VuIG1laW5lbgpGcnVlaHNwb3J0CmF1ZiBkZW0gQmFsa29uLCBzdG9wbGVyZSB1ZWJlciBkZW4gYmVzY2hpc3NlbmVuIEhvY2tlciwKZmFsbGUgdWViZXIgZGFzIEdlbGFlbmRlciB1bmQga2FubiBtaWNoIGluIHdpcmtsaWNoIGxldHp0ZXIgU2VrdW5kZSBlaW4gClN0b2Nrd2VyayB0aWVnZXIgYW0gR2VsYWVuZGVyIGZlc3RoYWx0ZW4uICdNZWluZSBHdWV0ZSwnIGRlbmtlIGljaCwKJ3dhcyBmdWVyIGVpbiBHbHVlY2ssIGljaCBsZWJlIG5vY2ghJyBEYSBrb21tdCBlaW4gdm9lbGxpZyBkdXJjaGdla25hbGx0ZXIKSWRpb3QgdW5kIGhhdXQgbWlyIG1pdCBkZW0gSGFtbWVyIGF1ZiBkaWUgRmluZ2VyLCBpY2ggc3R1ZXJ6ZSBhYiwgbGFuZGUgYWJlcgphdWYgZWluZW0gU3RyYXVjaCB1bmQgZGVua2UsICdkYXMgZ2lidCBlcyBuaWNodCwgenVtIHp3ZWl0ZW4gTWFsIHVlYmVybGVidC4nCkljaCBzY2hhdSBuYWNoIG9iZW4gdW5kIHBsb2V0emxpY2ggdHJpZmZ0IG1pY2ggZGllc2VyIGJsb2VkZSBLdWVobHNjaHJhbmsuIgoiT2siLCBzYWd0IFBldHJ1cy4gIlJlaW4gbWl0IGRpci4iClVuZCBzY2hvbiB3aWVkZXIga2xvcGZ0IGVzIGFuIGRlciBIaW1tZWxzdHVlcjoKIk51ciBhdXNzZXJnZXdvZWhubGljaGUgRmFlbGxlIiwgc2FndCBQZXRydXMuCiJLZWluIFRoZW1hLCIgbWVpbnQgZGVyIFZlcnN0b3JiZW5lOiAiQWxzbzogSWNoIHNpdHplIG5hY2ggZWluZXIgZWNodCBzY2hhZmVuCk51bW1lciB2b2VsbGlnIG5hY2t0IGltIEt1ZWhsc2NocmFuay4uLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVmZmVrdGl2IChBbnRoZWEsIDEwLiBTZXAgMjAxMiwgMTU6NDA6MzApOgpBbSBXb2NoZW5lbmRlIGhhYmUgaWNoIHdpZWRlciB3YXMgZnVlciBCYXVjaCwgQmVpbmUgdW5kIFBvIGdlbWFjaHQ6CgoKUGZhbm5rdWNoZW4hCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpmdWVyIGdsb2luc29uIChOaWNvbGFpLCAyNS4gU2VwIDIwMTIsIDIwOjM2OjUwKToKV2FzIGlzdCBnZWxiLCBrcnVtLCBub3JtaWVydCB1bmQgdm9sbHN0YWVuZGlnPwoKCkVpbiBCYW5hbmFjaHJhdW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBmdWVyIGdsb2luc29uIChHbG9pbnNvbiwgMjUuIFNlcCAyMDEyLCAyMjowMjo0Mik6Cn4jISBybj1OaWNvbGFpIHJ0PTEzNDg1OTgyMTAgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCkljaCB3ZWluZSBudXIgYXVmIEZhY2Vib29rLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogZnVlciBnbG9pbnNvbiAoQW1hcnlsbGlzLCAyNS4gU2VwIDIwMTIsIDIyOjA3OjQxKToKfiMhIHJuPUdsb2luc29uIHJ0PTEzNDg2MDMzNjIgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCkljaCB3ZWluZSBudXIgX3VlYmVyXyBGYWNlYm9vay4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBmdWVyIGdsb2luc29uIChHbG9pbnNvbiwgMjUuIFNlcCAyMDEyLCAyMjowODo1NSk6Cn4jISBybj1BbWFyeWxsaXMgcnQ9MTM0ODYwMzY2MSByZz13aXR6ZQp+IyEgdGlkPTEzNDg1OTgyMTAKRGEgc3RlaHN0IGR1IGFsc28gZHJ1ZWJlciwgd2FzPwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IGZ1ZXIgZ2xvaW5zb24gKEFtYXJ5bGxpcywgMjUuIFNlcCAyMDEyLCAyMjoxMDoyNCk6Cn4jISBybj1HbG9pbnNvbiBydD0xMzQ4NjAzNzM1IHJnPXdpdHplCn4jISB0aWQ9MTM0ODU5ODIxMApJY2ggd2VpbmUgdWViZXIgZGVyZW4gKERhdGVuc2NodXR6KVBvbGl0aWsuIE1laHIgbmljaHQuIEljaCBzdGVoIGRhIGFiZXIgbmljaHQKZHJ1ZWJlciwgaWNoIG1laWRlIGRhcyBlaW5mYWNoLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBmdWVyIGdsb2luc29uIChWZWN0b3IsIDI1LiBTZXAgMjAxMiwgMjI6NDI6NTUpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTM0ODYwMzM2MiByZz13aXR6ZQp+IyEgdGlkPTEzNDg1OTgyMTAKYWNoIHNvIGRhY2h0ZSBkdSB3ZWluc3Qgd2VpbCBpY2ggenVtIGJhbmFjaHJhdW0gZGFubiBuZW4gYW5kZXJlbgp6dXIgd29ydG1lbGR1bmcgYXVmZ2Vmb3JkZXJ0IGhhYiB1bmQgbmljaHQgZGljaCA6KQphYmVyIHNjaGxpbW0gZGVuIHdpdHogdmVyc3RlaGVuIG1heGltYWwgMy00IGxldXRlIGF1ZiBtZWluZXIKZmItZnJldW5kZXNsaXN0ZSwgYmluIG51ciBub2NoIHZvbiBnZXNpbmRlbCB1bWdlYmVuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBmdWVyIGdsb2luc29uIChSdW1hdGEsIDI1LiBTZXAgMjAxMiwgMjI6NDk6MTEpOgp+IyEgcm49VmVjdG9yIHJ0PTEzNDg2MDU3NzUgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCkRhcyBnZWh0IG5vY2ggaGFlcnRlcjogV2FzIGhhdCBHZXNjaGxlY2h0IGVpbnMgdW5kIHp1Y2t0IHVua29udHJvbGxpZXJ0PwoKKExvZXN1bmcgTW9yZ2VuKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogZnVlciBnbG9pbnNvbiAoQW1hcnlsbGlzLCAyNS4gU2VwIDIwMTIsIDIyOjQ5OjE1KToKfiMhIHJuPVZlY3RvciBydD0xMzQ4NjA1Nzc1IHJnPXdpdHplCn4jISB0aWQ9MTM0ODU5ODIxMApzY2hlaW50IGphIG5lIGtvbWlzY2hlIGZyZXVuZGVzbGlzdGUgenUgc2Vpbiwgd2VubiBkaWUgcGxvZXR6bGljaCBudXIgbm9jaApnZXNpbmRlbCBzaW5kIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBmdWVyIGdsb2luc29uIChWZWN0b3IsIDI1LiBTZXAgMjAxMiwgMjI6NTE6MjApOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEzNDg2MDYxNTUgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCmdlc2luZGVsIHdhcyBtYXRoZXdpc3NlbiB1bmQgc29uc3RpZ2VuIGludGVsbGVrdCBhbmdlaHQsCmRpZSBoYWJlbiBkYWZ1ZXIgYW5kZXJlIHZvcnp1ZWdlIDopCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBmdWVyIGdsb2luc29uIChBbWFyeWxsaXMsIDI1LiBTZXAgMjAxMiwgMjI6NTQ6NDIpOgp+IyEgcm49VmVjdG9yIHJ0PTEzNDg2MDYyODAgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCmFjaHNvIGRlc2hhbGIgYmluIGljaCBhdWNoIG51ciBub2NoIGdlc2luZGVsIDspCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogZnVlciBnbG9pbnNvbiAoR2xvaW5zb24sIDI1LiBTZXAgMjAxMiwgMjM6MjM6NTEpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTEzNDg2MDY0ODIgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCkJpc3QgZHUgbmljaHQgQWRtaW4gdW5kIGRhbWl0IGF1dG9tYXRpc2NoIFRlaWwgZGVzIEdlc2luZGVzIGVpbmVzIG9yZGVudGxpY2hlbgpIYXVzaGFsdHM/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNzogZnVlciBnbG9pbnNvbiAoQW1hcnlsbGlzLCAyNS4gU2VwIDIwMTIsIDIzOjMwOjU3KToKfiMhIHJuPUdsb2luc29uIHJ0PTEzNDg2MDgyMzEgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NTk4MjEwCkljaCBiaW4gbmljaHQgR2VzaW5kZSB2b24gVmVjdG9yLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCmFwcGVsIChOZWlsLCAyNi4gU2VwIDIwMTIsIDAyOjE2OjMxKToKV2VubiBBcHBlbCBBdXRvcyBQcm9kdXppZXJlbiB3dWVyZGUuCld1ZXJkZW4gc2llIEZlbnN0ZXIoV2luZG93cykgZWluYmF1ZW4/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXBwZWwgKEdub21lLCAyNi4gU2VwIDIwMTIsIDA4OjUxOjE5KToKfiMhIHJuPU5laWwgcnQ9MTM0ODYxODU5MSByZz13aXR6ZQp+IyEgdGlkPTEzNDg2MTg1OTEKU2Nob24gZXR3YXMgYWVsdGVyIHVuZCBuaWNodCB2b24gbWlyLCBhYmVyIGltbWVyIG5vY2ggc2VociBuZXR0IHp1IGxlc2VuLi4uCgpXZW5uIEJldHJpZWJzc3lzdGVtZSBBdXRvcyB3YWVyZW4uLi4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJbnRlcmVzc2FudGUgRnJhZ2UgLSBtYW4gc29sbHRlIGRhcyBhYmVyIGF1Y2ggYXVmIGRpZSBIYXJkd2FyZSBlcndlaXRlcm4KdW0gbmljaHQgQWVwZmVsIHVuZCBCaXJuZW4genUgdmVyZ2xlaWNoZW4hCgpEYSBmaWVsZSBtaXIgc3BvbnRhbiBlaW5lIEFuYWxvZ2llIHp3aXNjaGVuIEhhcmxleSB1bmQgZWluZW0gSUJNCk1haW5mcmFtZXN5c3RlbSBtaXQgT1MvMzcwIGVpbiwgbGF1dCwgYWx0LCB1ZWJlcmtvbW1lbiwKbGVpc3R1bmdzc2Nod2FjaCwgdXRvcGlzY2ggdGV1ZXIgaW4gZGVyIEFuc2NoYWZmdW5nLCBrb21wYXRpYmVsIHp1IG5peAp1bmQgbnVyIGZ1ZXIgZWluaWdlIGdyYXVtZWxpZXJ0ZSBQb3NlciBkZXIgaGVpbGlnZSBHcmFsLgoKRHVjYXRpIGhpbmdlZ2VuIGtvZW5udGUgZGllIGhvZmZudW5nc2xvcyB1ZWJlcnRha3RldGUgRGFkZGVsa2lzdGUgZWluZXMKUEMtR2FtZXJzIHNlaW4sIG1pdCBXYXNzZXJrdWVobHVuZyB1bmQgZmV0dGVuIChIZWF0KVBpcGVzIHZlcnN0ZWh0IHNpY2gsCmRlciBMYWVybS0gdW5kIEhpdHplZW50d2lja2x1bmcgZWluZXMgc3RhcnRlbmRlbiBKZXRzIHVuZCBzY2hvbiBpbQpMZWVybGF1ZiBzY2hlcHBlcnQgZXMgbXVudGVyIHZvciBzaWNoIGhpbiAtIHdlbm4gbmljaHQgZ2VyYWRlCmtvc3RzcGllbGlnZSBSZXBhcmF0dXJlbiBkZXMgZnJhZ2lsZW4gR2VzYW10a3Vuc3R3ZXJrcyBub3R3ZW5kaWcgc2luZC4KCkVpbmUgQ0JGOTAwIG9kZXIgYW5kZXJlIHNlZWxlbmxvc2UgamFwb25lc2lzY2hlIFJlaWhlbnZpZXJlciBtdXNzIG1hbgp6d2FuZ3NsYWV1ZmlnIG1pdCBlaW5lbSBlbWJlZGRlZCBDb21wdXRlciB2ZXJnbGVpY2hlbiwgc2FnZW4gd2lyIGVpbmVtLApkZXIgaW4gZWluZW0gRFZELVNwaWVsZXIgb2RlciBlaW5lciBXYXNjaG1hc2NoaW5lIHdlcmtlbHQuIEFsbGUgRmVhdHVyZXMKZnVua3Rpb25pZXJlbiBnbmFkZW5sb3MgenV2ZXJsYWVzc2lnIHVuZCBsZWlkbGljaCBwZXJmb3JtYW50LCBkaWUKQW5zY2hhZmZ1bmcgZ2VyYWV0IHp1ciBnZWxkYm9lcnNlbnNjaG9uZW5kZW4gQW5nZWxlZ2VuaGVpdCB1bmQgaW4gZGVyCkFubXV0dW5nIGlzdCBkYXMgQmlsZCBldHdhIHNvIGx1c3R2b2xsIHdpZSBlaW5lIG1pa3JvcHJvemVzc29yZ2VzdGV1ZXJ0ZQpHZWZyaWVya29tYmluYXRpb24gdm9uIFNpZW1lbnMgb2RlciBlYmVuIGJlc3NlciBQYW5hc29uaWMgKGZhbGxzIGRpZQpzb2V0d2FzIGhlcnN0ZWxsZW4pLgoKRWluZSBLVE0gb2RlciBIdXNhYmVyZyBrb2VubnRlIGlobiBpaHJlbSBrcnVkZW4gQ2hhcmFrdGVyIGRlcgpMSU5VWC1HZW1laW5kZSBuYWhla29tbWVuLiBNYW4gbW9lY2h0ZSB3ZW5pZyB6YWhsZW4sIGtyaWVndCBlYmVuc28gb2RlcgpnYXIgbm9jaCB3ZW5pZ2VyIGRhZnVlciAtIGVpbmVuIGd1dGdlbWVpbnRlbiBCYXVzYXR6IGViZW4sIGJhc3RlbHQgc2ljaApkaWUgRnVua3Rpb25hbGl0YWV0IG1pdCBhbGxlcmxlaSBIaWxmc21pdHRlbG4genVyZWNodCwgc3RldHMgYW0gUmFuZGUKZGVyIChERUNTUykgSWxsZWdhbGl0YWV0LCBtYW5jaG1hbCBnaWJ0IGVzIGVpbmVuIGthcGl0YWxlbiBNb3RvcnNjaGFkZW4sCm1hbiBtdXNzIGRlbiBLZXJuZWwgbmV1IGNvbXBpbGllcmVuIHVuZCBkZXIgIkhlcnN0ZWxsZXIiIChha2EuIGRpZQoiQ29tbXVuaXR5Iikgd2Vpc3MgbmF0dWVybGljaCB2b24gbmljaHRzLiBOYXR1ZXJsaWNoIHRyYXV0IG1hbiBzaWNoIG5pZSwKb2ZmZW4gdWViZXIgZGllc2Uga2xlaW5lbiBQcm9ibGVtZXJsZSB6dSBzcHJlY2hlbiwgZGVubiBtYW4gaGF0IHNpY2ggamEKc2NobGllc3NsaWNoIGluIHZvbGxlbSBXaXNzZW4gdWViZXIgZGllIEtvbnNlcXVlbnplbiBmdWVyIGRhcyBiZXN0ZQpQcm9kdWt0IGRlciBXZWx0IGVudHNjaGllZGVuIHVuZCBoaWVyIFNjaHdhZWNoZW4gZWluenVyYWV1bWVuLCBoaWVzc2UKYXVjaCBlaWdlbmUgU2Nod2FlY2hlbiB6dSBnZXN0ZWhlbi4gRGllICJVcHRpbWUiIHZvbiBtaXR0bGVyZXJ3ZWlsZSBmYXN0CjEwIEphaHJlbiB3aXJkIGdyb2Vzc3RlbnRlaWxzIGluIGRlciAoU2NocmF1YilnYXJhZ2UgdmVyYnJhY2h0LgoKTmF0dWVybGljaCBnYWViZSBlcyBkYSBub2NoIGRpZSBTb2Z0aWVlY2tlLCBkaWUgU3VTZXMgbWl0IGlocmVuClN1cGVybW90b2tyYWVkZXJuLCB6LkIuIHZvbiBNKHUpWiwgZGllIHNpY2ggZGVuIEFuc3RyaWNoIGVpbmVzIGZpZXNlbgpTdHJlZXRmaWdodGVyLU91dGxhd3MgZ2ViZW4gLSBqZWRvY2ggZGllc2VuIG51ciBpbSBTdGFuZCB2ZXJtaXR0ZWxuCmtvZW5uZW4sIHdlaWwgc2llIGluIEZhaHJ0IHN0YWVuZGlnIHZvbiBNb2ZhcyBoZXJnZWJyYW5udCB3ZXJkZW4uIERhZnVlcgpncmVpZmVuIHNpZSBnZXJuZSBhdWNoIGVpbiBiaXNzY2hlbiBpbiBkaWUgVGFzY2hlLCBiZWtvbW1lbiBhYmVyCnNjaGxpZXNzbGljaCBudXIgRHV0emVuZHdhcmUgZnVlciBkaWUgbWl0IGVpbiBiaXNzY2hlbiBNdWVoZSBhbmRlcnN3bwp3ZWl0IHdlbmlnZXIgenUgYmV6YWhsZW4gZ2V3ZXNlbiB3YWVyZS4KCkJsaWViZW4gbm9jaCBkaWUgQWVwZmVsIHVudGVyIGRlbiBNb3RvcnJhZWRlcm4sIGRhIGtvZW5udGUgaWNoIG1pcgp6d2FuZ2xvcyBqZWR3ZWRlbiBDdXN0b20tQ2hvcHBlciB2b3JzdGVsbGVuLiBBbHMKbWlkbGlmZWNyaXNpc2dlYmV1dGVsdGVyIFdlYmRlc2lnbmVyIG1pdCB2ZXJ3b2VobnRlbSBIaW50ZXJuIGxhZXNzdCBtYW4Kc2NobGllc3NsaWNoIG5pY2h0IGplZGVzIE1vcHBlZCBpbiBkaWUgR2FyYWdlIHVuZCBhdWNoIG5pY2h0IGplZGVuIE11ZWxsCnZvbiBkZXIgU3RhbmdlIGF1ZiBzZWluZW4gU2NocmVpYnRpc2NoLiBGdW5jdGlvbiBmb2xsb3dzIGZvcm0sIG1hbgp3ZWlkZXQgc2ljaCBpbiBlaW5lciBnZXdpc3NlbiBEaXN0aW5ndWllcnRoZWl0IGFtIGR1cmNoZGVzaWdudGVuCkNocm9tdGFuZCBkZXIgcGVyZmVrdCBtaXQgYmF1Y2hpZ2VuIEZvcm1lbiB1bmQgUGFzdGVsbHRvZW5lbiBoYXJtb25pZXJ0CnVuZCBrb21tdCBiZWkgZGVyIGdlcmluZ3N0ZW4gU3B1ciBlaW5lcyBQcm9ibGVtcyBzb2ZvcnQgYmVpbSBIYWVuZGxlcgpkZXMgZ2VyaW5nc3RlbiBNaXNzdHJhdWVucyBhbmdld2VpbnQgLSB3ZW5uIHouIEIuIGRlciBUYW5rIGxlZXIgb2RlciBkYXMKWnVlbmRzY2hsb3NzIG5pY2h0IGludHVpdGl2IHp1IGJlZGllbmVuIGlzdC4KCkRpZSBncm9zc2UgV2luZG93c2dlbWVpbmRlIHNlaGUgaWNoIGkuZC5ULiBzZWhyIGd1dCBiZWkgQk1XIGF1ZmdlaG9iZW4sCm1hbiBpc3QgbGlxdWlkZSwgVXNlciwgemFobHQgZ2VybmUgZ3V0ZXMgR2VsZCBmdWVyIGdyb3NzZW4gU2Nocm90dCAtCkhhdXB0c2FjaGUgZXMgaXN0IGFsbGVzIGF1cyBlaW5lbSBHdXNzIHVuZCBrb21tdCBicmF2IGFsbGUgbmFzZWxhbmcgenVtCiJQYXRjaGRheSIgYW5nZWRhY2tlbHQsIHdvIGFsdGUgQnVncyBnZWdlbiBuZXVlIGF1c2dldGF1c2NodCB3ZXJkZW4uCklyZ2VuZHdpZSBzdGVodCBpcmdlbmR3byBpcmdlbmR3YW5uIGF1Y2ggYWxsZXMgaW4gZGVyIERva3UsIG1hbiBtdXNzCnNpY2ggbnVyIGRpZSBNdWVoZSBtYWNoZW4gdW5kIHNpZSBzaWNoIGF1cyBkZW0gSW50ZXJuZXQsIHphaGxyZWljaGVuCkZvcmVuIG9kZXIgZGVyIEhpbGZlc2VpdGUgZGVzIEhlcnN0ZWxsZXIgZGVzdGlsbGllcmVuLiBGZWhsZXIgZ2lidCBlcwpuYXR1ZXJsaWNoIG5pZSwgaG9lY2hzdGVucyBGZWF0dXJlcywgdW5kIGRpZSBuYWVjaHN0ZSBSZWxlYXNlIGlzdApmcmVpbGljaCBzbyB1bmdsZWljaCB2aWVsIGJlc3NlciBhbHMgZGllIGFsdGUsIGRhc3MgbWFuIGFtIGJlc3RlbiBnbGVpY2gKdXBkYXRlZCB1bmQgbmF0dWVybGljaCBqZWdsaWNoZW4gU3VwcG9ydCB2ZXJsaWVydCwgc28gbWFuIGVzIG5pY2h0IHR1dC4KQWJlciBrbGFyOiBNYW4gaXN0IGZyZWksIGhhdCBkaWUgV2FobC4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogYXBwZWwgKEJhbWJ1bGtvLCAyNi4gU2VwIDIwMTIsIDA4OjU1OjIyKToKfiMhIHJuPU5laWwgcnQ9MTM0ODYxODU5MSByZz13aXR6ZQp+IyEgdGlkPTEzNDg2MTg1OTEKSmEuIGFiZXIgc2llIHd1ZXJkZW4gZXMgaVZpZXcgbmVubmVuLCBlcyBwYXRlbnRpZXJlbiBsYXNzZW4sIHVuZCBqZWRlbgpBdXRvaGVyc3RlbGxlciB2ZXJrbGFnZW4sIGRlciBncm9zc2UgZmxhY2hlIHVuZCBkdXJjaHNpY2h0aWdlIEJhdXRlaWxlIGFuCnNlaW5lbSBBdXRvIGFuYnJpbmd0LCBkdXJjaCBkaWUgbWFuIGR1cmNoc2NoYXVlbiBrYW5uLiBBcHBsZSBoYXQgZXMgamEKc2NobGllc3NsaWNoIGVyZnVuZGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBhcHBlbCAoSGlnaGxhbmRlciwgMjYuIFNlcCAyMDEyLCAxMzo1NTozNCk6Cn4jISBybj1CYW1idWxrbyBydD0xMzQ4NjQyNTIyIHJnPXdpdHplCn4jISB0aWQ9MTM0ODYxODU5MQpJY2ggc3RlaGUgdWViZXIgZmIuIFVuZCBzY2guLi4gZHJhdWYgOykKCkhyVAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogYXBwZWwgKEFudGhlYSwgMjYuIFNlcCAyMDEyLCAxNDoyNDowMik6Cn4jISBybj1IaWdobGFuZGVyIHJ0PTEzNDg2NjA1MzQgcmc9d2l0emUKfiMhIHRpZD0xMzQ4NjE4NTkxCldhcyBoYXN0IER1IGdlZ2VuIGRhcyBGcmV1bmRzY2hhZnRzYmFuZD8KCkFuc29uc3RlbjogaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1YVE8yM2pVUElYRQooTWljaGFlbCBLcmVicyAtIExldXRlIGlociBrb2VubnQgbWljaCBhbGxlIG1hbC4uLikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZlcndlY2hzbHVuZ3NnZWZhaHIgKEFudGhlYSwgIDguIE9rdCAyMDEyLCAxNzowODo0Nik6CldhcnVtIHZlcndlY2hzZWxuIE1hdGhlbWF0aWtlciBXZWlobmFjaHRlbiB1bmQgSGFsbG93ZWVuPwpXZWlsIE9jdCAzMSA9IERlYyAyNQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWluZWNyYWZ0IC4uLiAoR2xvaW5zb24sICAzLiBOb3YgMjAxMiwgMDA6Mjg6MDUpOgoKLi4uIGlzIEhpdGxlcidzIGxlc3NlciBrbm93biBzZWNvbmQgYm9vayBhYm91dCBoaXMgbG92ZSBvZiBrbml0dGluZy4KCihTY2hhbWxvcyB2b24gVHdpdHRlciBnZXN0b2hsZW4uKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBNaW5lY3JhZnQgLi4uIChSdW1hdGEsICAzLiBOb3YgMjAxMiwgMTg6MTE6MjEpOgp+IyEgcm49R2xvaW5zb24gcnQ9MTM1MTg5ODg4NSByZz13aXR6ZQp+IyEgdGlkPTEzNTE4OTg4ODUKQXUgd2VpYSwgZGEgZmllbCBmZXIgR3Jvc2NoZW4gYWJlciBwZmVubmlnd2Vpc2UgOy1dCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHYW56IGtsYXIuIChBbnRoZWEsICAzLiBEZXogMjAxMiwgMTY6MTE6MDYpOgpFaXRoZXIgeW91IGxpa2UgQmFjb24gb3IgeW91J3JlIHdyb25nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VzY2hhZWx0IChBbnRoZWEsICAzLiBEZXogMjAxMiwgMTg6MDE6MDkpOgpad2llYmVsbiBkZW5rZW4gZGFzcyBzaWUgaGFlc3NsaWNoIHNpbmQsIHdlaWwgRHUgd2VpbnN0IG5hY2hkZW0gRHUgc2llCmF1c2dlem9nZW4gaGFzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJhbmRuYW1lbiAoQW50aGVhLCAxMC4gRGV6IDIwMTIsIDExOjQyOjU0KToKVGhlcmUncyBhIGJhbmQgY2FsbGVkIDEwMjNNQi4gVGhleSBoYXZlbid0IGhhZCBhbnkgZ2lncyB5ZXQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQmFuZG5hbWVuIChSdW1hdGEsIDEwLiBEZXogMjAxMiwgMTE6NDU6NTcpOgp+IyEgcm49QW50aGVhIHJ0PTEzNTUxMzYxNzQgcmc9d2l0emUKfiMhIHRpZD0xMzU1MTM2MTc0Ckthbm5uaWNoc2VpbjogR2VyYWRlIGRpZSBQbGF0dGVuaW5kdXN0cmllIGdpYnQgc2ljaCBkb2NoIG1pdCAxMDAwTUIgenVmcmllZGVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VtYW5hZ2VkIChBbnRoZWEsIDE2LiBKYW4gMjAxMywgMTE6MDA6MzIpOgpXb3JhbiBlcmtlbm50IG1hbiBkZW4gTWFuYWdlciBpbSBGaXRuZXNzc3R1ZGlvPwoKCkVyIHRyYWluaWVydCBhdWYgZGVtIExhdWZiYW5kIG1pdCBlaW5lbSBTZWd3YXkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpXYWxpc2NoIChBbnRoZWEsICA1LiBGZWIgMjAxMywgMTI6MDE6NTcpOgpJIHdhcyBpbiBhIExvbmRvbiBwdWIgb24gYSBTYXR1cmRheSBuaWdodC4gSGFkIGEgZmV3IGRyaW5rcy4gSSBub3RpY2VkIHR3bwp2ZXJ5IGxhcmdlIHdvbWVuIGJ5IHRoZSBiYXIuIFRoZXkgYm90aCBoYWQgc3Ryb25nIGFjY2VudHMsIHNvIEkgYXNrZWQsICJIZXksCmFyZSB5b3UgdHdvIGxhZGllcyBmcm9tIFNjb3RsYW5kPyIKT25lIG9mIHRoZW0gdHVybmVkIHRvIG1lIGFuZCBzY3JlYW1lZCwgIkl0J3MgV0FMRVMsIHlvdSBJRElPVCEiLgpTbyBJIGltbWVkaWF0ZWx5IGFwb2xvZ2l6ZWQgYW5kIHNhaWVkLCAiU29ycnksIGFyZSB5b3UgdHdvIHdoYWxlcyBmcm9tClNjb3RsYW5kPyIKClRoYXQncyBhbGwgSSByZW1lbWJlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhhcHB5IEhvdXIgQ291bnRpbmcgKEFudGhlYSwgIDUuIEZlYiAyMDEzLCAxMjowNToyNCk6CjEgdGVxdWlsYQoyIHRlcXVpbGFzCjMgdGVxdWl1bGxhcwo0IHRldWlnbGFzCjUgdGVxaXNsYXMKNiB0ZWlxdWxrcwo3IGV0aXFsYXMKOCByZXFpa2xhcwo5IC4uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWVpc3RlciAoQW50aGVhLCAxOC4gRmViIDIwMTMsIDIyOjI5OjI5KToKV2FzIG1hY2h0IGVpbiBTY2hhbGtlLUZhbiwgbmFjaGRlbSBTY2hhbGtlIE1laXN0ZXIgZ2V3b3JkZW4gaXN0PwpFciBtYWNodCBkaWUgUGxheXN0YXRpb24gYXVzIHVuZCBnZWh0IHNjaGxhZmVuIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FzIG1pdCBTZWNoczogKFJ1bWF0YSwgMjUuIEZlYiAyMDEzLCAxNTowMTo1MCk6CldlciBuZSA2IGluIENoZW1pZSBoYXQsIGlzdCBiZWkgZGVyIElLSyByaWNodGlnLiBST0ZMIQpodHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9V3p1YlM1NDdFdmMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXYXMgbWl0IFNlY2hzOiAoSHVtbmksIDI1LiBGZWIgMjAxMywgMTg6MDY6NTQpOgp+IyEgcm49UnVtYXRhIHJ0PTEzNjE4MDA5MTAgcmc9d2l0emUKfiMhIHRpZD0xMzYxODAwOTEwCldhYWFhaGhoaCBpc3QgZGFzIHRvbGwhIEljaCBiaW4gYmVnZWlzdGVydCEKCkh1bW5pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdhcyBtaXQgU2VjaHM6IChBbmF0b2wsIDI2LiBGZWIgMjAxMywgMDc6NDM6NDIpOgp+IyEgcm49SHVtbmkgcnQ9MTM2MTgxMjAxNCByZz13aXR6ZQp+IyEgdGlkPTEzNjE4MDA5MTAKCklzdCBlaW4gR3J1bmQsIGRpZXNlIEtyYW5rZW5rYXNzZSB6dSBtZWlkZW4uIE9id29obC4uLiA1MCBFdXJvLi4uClJvaHJ6dWNrZXIgd2lyZCBlcyB2ZXJtdXRsaWNoIGF1Y2ggaW4gbm9jaCB0ZXVyZXJlciBGb3JtIGdlYmVuLiA7LSkKCmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1jVlYzUVEzd2pDOAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFdhcyBtaXQgU2VjaHM6IChHbG9pbnNvbiwgMjYuIEZlYiAyMDEzLCAwOTo0MTozNSk6Cn4jISBybj1BbmF0b2wgcnQ9MTM2MTg2MTAyMiByZz13aXR6ZQp+IyEgdGlkPTEzNjE4MDA5MTAKTmEsIGVpbiBHbHVlY2ssIGtlaW5lIFNjaHVzc2Vsc2FsemUuIERhIHBvc3RldGUgTWFoYXJldCBuZXVsaWNoIHdhcyB1bmQgZGllCnNpbmQgbGF1dCBXaWtpcGVkaWEgb2Z0IGluIE1pbGNoenVja2VyIGdlcHJlc3N0LiBEYXMga2FubiB1bmFuZ2VuZWhtZXIgd2VyZGVuLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkhvYmJpdC9IZXJyIGRlciBSaW5nZSAoR2xvaW5zb24sICA0LiBNYXIgMjAxMywgMDA6MzY6MTUpOgouLi4gb2RlciB3aWVzbyBGcm9kbyBzaWNoIGhhdCBuaWNodCBmbGllZ2VuIGxhc3NlbjoKCmh0dHA6Ly9vZ2xhZi5jb20vb3JuaXRob2xvZ3kvMS8KClBTOiBXYXJudW5nIHB1ZW5rdGxpY2ggenVtIE1vbnRhZzogYW5kZXJlIFN0cmlwcyBzaW5kIG9mdCBOU0ZXLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4gKFZlY3RvciwgMTYuIEFwciAyMDEzLCAxOTo1NToxNyk6CmhvY2h6ZWl0IGF1cyBkZXIgc2ljaHQgZGVzIHZhdGVyczoKdG9jaHRlciB2ZXJsb3JlbiwgYmFkZXppbW1lciBnZXdvbm5lbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClBmZXJkZS4uLiAoUnVtYXRhLCAyOC4gQXByIDIwMTMsIDE4OjAwOjEwKToKCgpXbyB2ZXJicmluZ2VuIFBmZXJkZSB3YWVocmVuZCBpaHJlcyBTdHVkaXVtcyBkaWUgbWVpc3RlIFplaXQ/CgoKQXVmIGRlbSBIaXBwb2NhbXB1cy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlbGxpZyAoQW50aGVhLCAyOC4gSnVuIDIwMTMsIDExOjE0OjQ5KToKRGFzIGdlaHQgd2llZGVyIG51ciBhdWYgRW5nbGlzY2g6CgpXaGF0IGRpZCB0aGUgb25lIG9jZWFuIHNheSB0byB0aGUgb3RoZXIgb2NlYW4/CgpOb3RoaW5nLCBpdCBqdXN0IHdhdmVkLgoKU28sIGRpZCB5b3Ugc2VhIHdoYXQgSSBkaWQgdGhlcmU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VsbGlnIChNYWxpZSwgMjguIEp1biAyMDEzLCAxOTozMjo1MCk6Cn4jISBybj1BbnRoZWEgcnQ9MTM3MjQxMDg4OSByZz13aXR6ZQp+IyEgdGlkPTEzNzI0MTA4ODkKbmljZTopKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKdW5jb29sIChBbnRoZWEsICA1LiBTZXAgMjAxMywgMTY6MDU6NDkpOgpXaHkgZGlkIHRoZSBoaXBzdGVyIGJ1cm4gaGlzIG1vdXRoIG9uIHRoZSBwaXp6YT8KCkJlY2F1c2UgaGUgYXRlIGl0IGJlZm9yZSBpdCB3YXMgY29vbC4uLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaHdlaXogKEFudGhlYSwgIDEuIE9rdCAyMDEzLCAxNDoyNzoxNSk6Cktlbm50IGlociBTYWNoZW4sIGRpZSBndXQgc2luZCBhbiBkZXIgU2Nod2Vpej8KCkFsc28gaWNoIG1laW4sIGRpZSBGYWhuZSBpc3Qgc2Nob24gbWFsIGVpbiBncm9zc2VzIFBsdXMhIDspCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbWVyaWNhbiBKb3VybmFsaXNtIChBbnRoZWEsICAyLiBPa3QgMjAxMywgMTQ6MDc6MTYpOgpBbWVyaWNhbiBqb3VybmFsaXNtIDEwMQoKRmlyc3QgbGVzc29uLCBvbmx5IHVzZSB0aGUgZmFjdHMuIEhvd2V2ZXIgeW91IGNhbiB3b3JkIHRoYW0gYXMgeW91IHBsZWFzZSB0bwptYWtlIGEgc3RvcnkuCgpFeGFtcGxlOgoKWWVzdGVyZGF5IE1lZyBhbmQgSSB3YXMgcGxheWluZyBhcm91bmQsIGhlciByaW5nIGJ1bXBlZCBtZSBvbiB0aGUgc2t1bGwKKHNvdW5kZWQgd2lsZCA7KSApCkkgYWxzbyB3ZW50IHRvIHRoZSBzdG9yZSwgb24gdGhlIHdheSBiYWNrIEkgc2F3IGEgcG9saWNlIGNhciBhbmQgd2F2ZWQuIEhlCmRpZG4ndCBzZWUgbWUgdGhvdWdoLgpGaW5hbGx5IHRoZSBjYXQgd2FzIG9uIG15IGxhcCBhbmQgc2xpcHBlZCwgbGVhdmluZyBhIGxpdHRsZSBzY3JhdGNoIG9uIG15IGxlZy4KCk5vdyB0aGVzZSBkbyBub3Qgc291bmQgbGlrZSBhIHN0b3J5LCBob3dldmVyIHVzaW5nIG9ubHkgdGhlIGZhY3RzIGFuZAphcnJhbmdpbmcgdGhlbSBob3dldmVyIHdlIHdhbnQgKGp1c3QgbGlrZSB0aGUgYmlnIG5ld3Mgc2l0ZXMpLCB3ZSBlbmQgdXAgd2l0aAp0aGlzLgoKWWVzdGVyZGF5IE1lZyBhdHRhY2tlZCBoZXIgaHVzYmFuZCBhbmQgaGl0IGhpbSB3aXRoIGhlciByaW5nLiBIZSBub3cgaGFzIGEgMgppbmNoIHNjcmF0Y2guIFRoZSBwb2xpY2Ugd291bGQgbm90IHJlc3BvbmQuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpMZWJlbnN3ZWdlIChSdW1hdGEsIDE3LiBEZXogMjAxMywgMTg6MjU6MzUpOgpEaWUgNCBQaGFzZW4gaW0gTGViZW4gZWluZXMgTWFubmVzOgoKMS4pIER1IGdsYXVic3QgYW4gZGVuIFdlaWhuYWNodHNtYW5uLgoKMi4pIER1IGdsYXVic3QgbmljaHQgYW4gZGVuIFdlaWhuYWNodHNtYW5uLgoKMy4pIER1IGJpc3QgZGVyIFdlaWhuYWNodHNtYW5uLgoKNC4pIER1IHNpZWhzdCBhdXMgd2llIGRlciBXZWlobmFjaHRzbWFubi4KClJ1bSoqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTGViZW5zd2VnZSAoWm9vaywgMTguIERleiAyMDEzLCAxOTozNzoxMCk6Cn4jISBybj1SdW1hdGEgcnQ9MTM4NzMwMTEzNSByZz13aXR6ZQp+IyEgdGlkPTEzODczMDExMzUKT3JkbmUgRGljaCBzZWxic3QgenUsClpvb2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTGViZW5zd2VnZSAoQmFtYnVsa28sIDE5LiBEZXogMjAxMywgMTA6NDk6MDEpOgp+IyEgcm49Wm9vayBydD0xMzg3MzkxODMwIHJnPXdpdHplCn4jISB0aWQ9MTM4NzMwMTEzNQpad2lzY2hlbiAzIHVuZCA0IDotKCBXYWVyZSBnZXJuZSBub2NobWFsIDEgb2RlciAyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogTGViZW5zd2VnZSAoUnVtYXRhLCAxOS4gRGV6IDIwMTMsIDEyOjM1OjQ4KToKfiMhIHJuPUJhbWJ1bGtvIHJ0PTEzODc0NDY1NDEgcmc9d2l0emUKfiMhIHRpZD0xMzg3MzAxMTM1CldpZSBlbnRzdGVoZW4gZWlnZW50bGljaCBXZWlobmFjaHRzbWFlbm5lcj8KR3Vja3N0IGR1IGhpZXI6IGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9c0ZFbkFuby1KemcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldlaWhuYWNodGVuIGF1cyB2ZXJzY2hpZWRlbmVuIEJsaWNrd2lua2VsbiAoU2FyYXksIDI2LiBEZXogMjAxMywgMTE6NDc6MDUpOgpKZXN1czogIk1lZ2FhZXR6ZW5kLCB3ZW5uIG1hbiBhbiBXZWlobmFjaHRlbiBHZWJ1cnRzdGFnIGhhdC4iClNhbnRhIENsYXVzOiAiVmllbCBzY2hsaW1tZXIgaXN0IGVzLCB3ZW5uIG1hbiBhbiBXZWlobmFjaHRlbiBhcmJlaXRlbiBtdXNzLiIKZWluZSBHYW5zOiAiSWhyIGhhYnQgUHJvYmxlbWUuLi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogV2VpaG5hY2h0ZW4gYXVzIHZlcnNjaGllZGVuZW4gQmxpY2t3aW5rZWxuIChUaW4sIDI2LiBEZXogMjAxMywgMTM6Mjg6NTApOgp+IyEgcm49U2FyYXkgcnQ9MTM4ODA1NDgyNSByZz13aXR6ZQp+IyEgdGlkPTEzODgwNTQ4MjUKaGFoYWggZ2VpbDpECgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbGxlIHZlcmxhc3NlbiBkaWUgTW9uc3RlciAuLi4gKEFyaywgMjguIERleiAyMDEzLCAxMTo0OToxNyk6CltNb2VyZGVyOkdlaXN0IGVpbmVzIE1vbnN0ZXJzXSBIdWNoLCB3byBzZWlkIGlociBhbGxlIGhpbj8KRGVpbiBGcmV1bmQgQ2hhZ2FsbCB0ZWlsdCBEaXIgbWl0OiBtYWwgZWlua2F1ZmVuCgoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClRlZGR5YmVhciAoQ2hhZ2FsbCwgMTguIEZlYiAyMDE0LCAxODoxNzowNik6CldoeSBkaWQgdGhlIFRlZGR5YmVhciBzdG9wcGVkIGVhdGluZz8KCkNhdXNlIGhlIHdhcyBzdHVmZmVkLgoKTUMKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWxiZXJ0IHRvZGF5IChBbWFyeWxsaXMsICA5LiBNYWkgMjAxNCwgMjE6Mjc6MjEpOgpodHRwOi8vd3d3LmRpbGJlcnQuY29tLzIwMTQtMDUtMDkvCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpTdHVkaWUgKEFudGhlYSwgMjAuIEp1biAyMDE0LCAxMDo0NjowMik6Ck5ldWVzdGUgU3R1ZGllbiBoYWJlbiBlcmdlYmVuIGRhc3MgVmFldGVyIG1pdCBtZWhyIGFscyA0IEtpbmRlcm4gZGllCnJ1ZWNrc2l0enZvbGxzdGVuIEZhaHJlciBzaW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGFobmlnIChBbnRoZWEsIDMwLiBKdW4gMjAxNCwgMTA6NTE6MjYpOgpLb21tdCBlaW4gSGFobiBpbiBlaW5lIEJhbmssIHVuZCBmcmFndDogIldpZSBob2NoIGlzdCBkZW5uIG1laW4KS3JhZWhkaXRyYWhtZW4/IgpBbnR3b3J0OiAiRGFzIGtvbW10IGF1ZiBkaWUgSG9laGUgaWhyZXIgRWlsYWdlIGFuLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCndtIHdpdHogKFphcGhvYiwgIDkuIEp1bCAyMDE0LCAxNzoyNjoxNyk6CnRyZWZmZW4gc2ljaCBlaW4gaG9sbGFlbmRlciB1bmQgIGVpbiBkZXV0c2NoZXIgYXVmbSBwYXJrcGxhdHouIHNhZ3QgZGVyCmhvbGxhZW5kZXI6IHdpciBzcGllbGVuIGhldXRlIGdlZ2VuIGFyZ2VudGluaWVuLiBzYWd0IGRlciBkZXV0c2NoZTogYWNoIHdhcywKZ2VnZW4gZGllIHNwaWVsZW4gd2lyIHNvbm50YWcgYXVjaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk5hY2ggZGVyIEtyaW0uLi4gKEdhYnlsb24sIDIxLiBKdWwgMjAxNCwgMjI6Mzk6NTkpOgpNZXJrZWwgenUgUHV0aW46IFdvIHNvbGwgZGVubiBkYXMgRW5kc3BpZWwgZGVyIFdNIDIwMTggc3RhdHRmaW5kZW4/ClB1dGluOiBJbiBMZWlwemlnIG5hdHVlcmxpY2ghCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpOaWNodCBnZWZ1bmRlbiAoQW50aGVhLCAyNS4gTm92IDIwMTQsIDEwOjA4OjA1KToKTmV1bGljaCBoYWIgaWNoIGJlaW0gRWlua2F1ZmVuIEJhdG1hbi1TaGFtcG9vIGdlc2VoZW4uIEljaCBoYWIgZGFubiBleHRyYQpnZXN1Y2h0LCBhYmVyIGVzIGdhYiBlaW5mYWNoIGtlaW5lbiBDb25kaXRpb25lciBHb3Jkb24uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogTmljaHQgZ2VmdW5kZW4gKE5vaywgMjUuIE5vdiAyMDE0LCAyMjo1NjoyOCk6Cn4jISBybj1BbnRoZWEgcnQ9MTQxNjkwNjQ4NSByZz13aXR6ZQp+IyEgdGlkPTE0MTY5MDY0ODUKSGF0IGVpbmVyIG5lbiBFcmtsYWVyYmFlcmVuIGZ1ZXIgbWljaD8gSWNoIGhhYiBudXIgdm9yIDIgSmFocnplaG50ZW4gbWFsIG5lbgpCYXRtYW4gKG1pdCBkZW0gU3VwZXItSm9rZXIgTmljb2xzb24sIGRlciBCYXRtYW4gZ25hZGVubG9zIGFuIGRpZSBXYW5kCmdlc3BpZWx0IGhhdCkgZ2VzZWhlbi4uLgoKTm9rIGkuVi52LiBLaGlkYXIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5pY2h0IGdlZnVuZGVuIChWYW5pb24sIDI1LiBOb3YgMjAxNCwgMjM6MDM6MjMpOgp+IyEgcm49Tm9rIHJ0PTE0MTY5NTI1ODggcmc9d2l0emUKfiMhIHRpZD0xNDE2OTA2NDg1CldpdHppZ2Vyd2Vpc2UgaGF0IGF1Y2ggZGVyIEpva2VyIGltIDIuIFRlaWwgdm9uIE5vbGFucyBSZWJvb3QgKFRoZSBEYXJrCktuaWdodCkgd2llZGVyIGRlbiBCYXRtYW4gYW4gZGllIFdhbmQgZ2VzcGllbHQuIEdlc2NoaWNodGUgd2llZGVyaG9sdCBzaWNoCmFsc28gZG9jaC4KClYqClBTOiBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVU3WFZjcVpvZEFNCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOaWNodCBnZWZ1bmRlbiAoR2xvaW5zb24sIDI1LiBOb3YgMjAxNCwgMjM6MjA6NTIpOgp+IyEgcm49VmFuaW9uIHJ0PTE0MTY5NTMwMDMgcmc9d2l0emUKfiMhIHRpZD0xNDE2OTA2NDg1Ck51ciBkYXNzIE5pY2hvbHNvbiBsYWVuZ2VyIGR1cmNoZ2VoYWx0ZW4gaGF0IC4uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmljaHQgZ2VmdW5kZW4gKENyb2Z0LCAyNi4gTm92IDIwMTQsIDEwOjMzOjQ2KToKfiMhIHJuPU5vayBydD0xNDE2OTUyNTg4IHJnPXdpdHplCn4jISB0aWQ9MTQxNjkwNjQ4NQpDb21taXNzaW9uZXIgPC0+IENvbmRpdGlvbmVyLgoKQ3JvZnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBOaWNodCBnZWZ1bmRlbiAoUnVtYXRhLCAyNi4gTm92IDIwMTQsIDExOjE2OjA2KToKfiMhIHJuPUFudGhlYSBydD0xNDE2OTA2NDg1IHJnPXdpdHplCn4jISB0aWQ9MTQxNjkwNjQ4NQpJY2ggbXVzcyBpbW1lciBsYWNoZW4sIHdlbm4gaWNoIGRpZSBTaGFtcG9vIE1hcmtlICJHdWhsIiBzZWhlLgpBdWNoIHVudG90ZSBNYWdpZXIgd29sbGVuIGdlcGZsZWd0ZXMgSGFhci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogTmljaHQgZ2VmdW5kZW4gKEFuYXRvbCwgMjYuIE5vdiAyMDE0LCAxMzoyOTo0Myk6Cn4jISBybj1SdW1hdGEgcnQ9MTQxNjk5Njk2NiByZz13aXR6ZQp+IyEgdGlkPTE0MTY5MDY0ODUKVW50b3RlIE1hZ2llciB3dWVyZGVuIGVoZXIgYXVmIGRlbiBCYWRlc2Fsei1XaXR6IHp1ciBMaWNoZXJrZXR0ZQphYmZhaHJlbiB1bmQgRGlyIGRpZSBHbGVpY2hzdGVsbHVuZyBtaXQgZGVtIGdlbWVpbmVuIFZvbGsgZGVyCkxlaWNoZW5mcmVzc2VyIG1vZWdsaWNoZXJ3ZWlzZSB1ZWJlbCBuZWhtZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBOaWNodCBnZWZ1bmRlbiAoQ3JvZnQsIDI2LiBOb3YgMjAxNCwgMTM6NTM6MDMpOgp+IyEgcm49QW5hdG9sIHJ0PTE0MTcwMDQ5ODMgcmc9d2l0emUKfiMhIHRpZD0xNDE2OTA2NDg1CkxpY2hlcmtldHRlPyAgSWNoIGRhY2h0ZSwgZGFzcyBpbnRlcmVzc2llcnQgZWhlciBkaWUgQmllcnRyaW5rZXIuCgpDcm9mdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogTmljaHQgZ2VmdW5kZW4gKFJ1bWF0YSwgMjYuIE5vdiAyMDE0LCAxNDozNzoyNik6Cn4jISBybj1Dcm9mdCBydD0xNDE3MDA2MzgzIHJnPXdpdHplCn4jISB0aWQ9MTQxNjkwNjQ4NQpBY2hqYSwgc3RpbW10LCBkYXMgd2FyZW4gamEgTGljaGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV41OiBOaWNodCBnZWZ1bmRlbiAoSHVyYXhwcmF4LCAyNy4gTm92IDIwMTQsIDIxOjE1OjEyKToKfiMhIHJuPVJ1bWF0YSBydD0xNDE3MDA5MDQ2IHJnPXdpdHplCn4jISB0aWQ9MTQxNjkwNjQ4NQpHaHVsZSBkcm9wcGVuIGJla2FubnRsaWNoIHJvdGUgSGFhcmUsIHp1bWluZGVzdCBpbSBNRy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCk51biB3aXJkcyBoYWFyaWchIChPcmt0b2V0ZXIsIDI4LiBOb3YgMjAxNCwgMjI6MTU6NDkpOgp+IyEgcm49SHVyYXhwcmF4IHJ0PTE0MTcxMTkzMTIgcmc9d2l0emUKfiMhIHRpZD0xNDE2OTA2NDg1Ck51biB3aXJkcyBoYWFyaWchCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IE5pY2h0IGdlZnVuZGVuIChWYW5pciwgIDIuIERleiAyMDE0LCAxODo1MTo0NCk6Cn4jISBybj1SdW1hdGEgcnQ9MTQxNjk5Njk2NiByZz13aXR6ZQp+IyEgdGlkPTE0MTY5MDY0ODUKQWxzbyBtZWluIEZhdm9yaXQgaXN0IFBvd2VyYWRlLiBJY2ggZW1wZmVobGUgc3RhdHRkZXNzZW4gZGlyZWt0IGVpbgpGZWllcmFiZW5kYmllci4KVi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJpcm5lIChBbnRoZWEsIDEwLiBEZXogMjAxNCwgMTM6MjI6MjYpOgpXaWV2aWVsZSBEZXV0c2NoZSBicmF1Y2h0IG1hbiwgdW0gZWluZSBHbHVlaGJpcm5lIHp1IHdlY2hzZWxuPwoKCkVpbmVuLgpFcnN0ZW5zIHNpbmQgd2lyIGVmZml6aWVudCwgdW5kIHp3ZWl0ZW5zIGhhYmVuIHdpciBrZWluZW4gU2lubiBmdWVyIEh1bW9yIQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEJpcm5lIChSdW1hdGEsIDEwLiBEZXogMjAxNCwgMTM6NDQ6MjYpOgp+IyEgcm49QW50aGVhIHJ0PTE0MTgyMTQxNDYgcmc9d2l0emUKfiMhIHRpZD0xNDE4MjE0MTQ2CldhcyBoYWJlbiB3aXIgdm9tIEJpcm5lIHdlY2hzZWxuIGJla29tbWVuPyBOZSBSYXV0ZSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogQmlybmUgKFplc3N0cmEsIDEwLiBEZXogMjAxNCwgMTk6NTg6NDUpOgp+IyEgcm49UnVtYXRhIHJ0PTE0MTgyMTU0NjYgcmc9d2l0emUKfiMhIHRpZD0xNDE4MjE0MTQ2CkRhcyBrZW5udCBqZXR6dCB2ZXJtdXRsaWNoIG5vY2gga2F1bSBqZW1hbmQgbWVoci4uLj8KClplc3N0cmEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJlZGF1ZXJsaWNoIChBbnRoZWEsIDIwLiBKYW4gMjAxNSwgMDg6NTM6MzEpOgpJY2ggYmVkYXVlcmUgZGllIExvZXdlbiBpbSBab28uCgpPZGVyIHdpZSB3dWVyZGV0IGlociBldWNoIGZ1ZWhsZW4sIHdlbm4gZWluIEhhdWZlbiBQaXp6YXMgZHVyY2ggZXVyZSBXb2hudW5nCmxhZXVmdCwgRm90b3Mgdm9uIGV1Y2ggbWFjaHQsIHVuZCBpaHIgZHVlcmZ0ZXQgc2llIG5pY2h0IGVzc2VuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRmF4ZW4gKFJ1bWF0YSwgMjEuIEphbiAyMDE1LCAxMzoxNjowMCk6CktvZW5uZW4gc2llIG1pciBkYXMgZmF4ZW4/ClR1dCBtaXIgbGVpZCwgdm9uIGhpZXIgYXVzIGthbm4gaWhjIG5pY2h0IGZheGVuLgpXbyBzaW5kIHNpZSBkZW5uPwpJbSAyMXRlbiBKYWhyaHVuZGVydC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlbmR1bmdzYmV3dXNzdHNlaW4gKEFudGhlYSwgMTEuIEZlYiAyMDE1LCAxNTowMDoyNSk6CkZyYW56OiAiTWVpbiBWYXRlciBpc3QgUmFkaW9sb2dlLiIKRnJpdHpjaGVuOiAiQ29vbCwgd2VsY2hlciBTZW5kZXI/IgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUHJvemVudHVhbCAoQW50aGVhLCAxMS4gTWFyIDIwMTUsIDE3OjA2OjA0KToKV2hhdCBNYWtlcyAxMDAlPyBXaGF0IGRvZXMgaXQgbWVhbiB0byBnaXZlIE1PUkUgdGhhbiAxMDAlPwoKRXZlciB3b25kZXIgYWJvdXQgdGhvc2UgcGVvcGxlIHdobyBzYXkgdGhleSBhcmUgZ2l2aW5nIG1vcmUgdGhhbiAxMDAlPyBXZSBoYXZlCmFsbCBiZWVuIHRvIHRob3NlIG1lZXRpbmdzIHdoZXJlIHNvbWVvbmUgd2FudHMgeW91IHRvIGdpdmUgb3ZlciAxMDAlLiBIb3cKYWJvdXQgYWNoaWV2aW5nIDEwMyU/IFdoYXQgbWFrZXMgdXAgMTAwJSBpbiBsaWZlPwoKSGVyZSdzIGEgbGl0dGxlIG1hdGhlbWF0aWNhbCBmb3JtdWxhIHRoYXQgbWlnaHQgaGVscCB5b3UgYW5zd2VyIHRoZXNlCnF1ZXN0aW9uczoKCklmOgpBIEIgQyBEIEUgRiBHIEggSSBKIEsgTCBNIE4gTyBQIFEgUiBTIFQgVSBWIFcgWCBZIFoKCklzIHJlcHJlc2VudGVkIGFzOgoxIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMiAxMyAxNCAxNSAxNiAxNyAxOCAxOSAyMCAyMSAyMiAyMyAyNCAyNSAyNi4KClRoZW46CkgtQS1SLUQtVy1PLVItSwo4KzErMTgrNCsyMysxNSsxOCsxMSA9IDk4JQoKQW5kOgpLLU4tTy1XLUwtRS1ELUctRQoxMSsxNCsxNSsyMysxMis1KzQrNys1ID0gOTYlCgpCdXQ6CkEtVC1ULUktVC1VLUQtRQoxKzIwKzIwKzkrMjArMjErNCs1ID0gMTAwJQoKQW5kOgpCLVUtTC1MLVMtSC1JLVQKMisyMSsxMisxMisxOSs4KzkrMjAgPSAxMDMlCgpBTkQsIGxvb2sgaG93IGZhciBhc3Mga2lzc2luZyB3aWxsIHRha2UgeW91LgoKQS1TLVMtSy1JLVMtUy1JLU4tRwoxKzE5KzE5KzExKzkrMTkrMTkrOSsxNCs3ID0gMTE4JQoKU28sIG9uZSBjYW4gY29uY2x1ZGUgd2l0aCBtYXRoZW1hdGljYWwgY2VydGFpbnR5LCB0aGF0IHdoaWxlIGhhcmQgd29yayBhbmQKS25vd2xlZGdlIHdpbGwgZ2V0IHlvdSBjbG9zZSwgYW5kIEF0dGl0dWRlIHdpbGwgZ2V0IHlvdSB0aGVyZS4gSXQncyB0aGUKQnVsbHNoaXQgYW5kIEFzcyBLaXNzaW5nIHRoYXQgd2lsbCBwdXQgeW91IG92ZXIgdGhlIHRvcC4KTm93IHlvdSBrbm93IHdoeSBzb21lIHBlb3BsZSBhcmUgd2hlcmUgdGhleSBhcmUhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpIYWlrdSAoUnVtYXRhLCAxNC4gTWFyIDIwMTUsIDIxOjM0OjEyKToKSGFpa3VzIHNpbmQga29taXNjaDoKU2lsYmVuemFobCBnZWh0IHZvciBJbmhhbHQuClphaG5hcnp0aGVsZmVyaW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBcHJpbCAxIHZlcnNwYWV0ZXQgKEFyaywgIDIuIEFwciAyMDE1LCAyMjo1Njo0NCk6CldpbGwgaWNoIGV1Y2ggbmljaHQgdm9yZW50aGFsdGVuIC4uLiBTZWxmaWVzIHNpbmQgb3V0LCBTaG9lZmllcyBzaW5kIGluLgpodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUR3NzJ6RlgycnNrCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKV2FybnVuZyAoQW50aGVhLCAgNC4gU2VwIDIwMTUsIDE1OjEzOjQyKToKRGllIFBvbGl6ZWkgd2FybnQgYWxsZSBNYWVubmVyLCBkaWUgQ2x1YnMsIFBhcnRpZXMsIEJhcnMgb2RlciBQdWJzIGJlc3VjaGVuLAphdWZtZXJrc2FtIHp1IGJsZWliZW4gdW5kIHZvcnNpY2h0aWcgenUgc2Vpbiwgd2VubiBpaG5lbiBlaW4gR2V0cmFlbmsgdm9uCmVpbmVyIEZyYXUgYW5nZWJvdGVuIHdpcmQuIFZpZWxlIEZyYXVlbiBudXR6ZW4gZWluZSBCZXppZWh1bmdzZHJvZ2UsIGRpZSBzZWl0CmxhZW5nZXJlciBaZWl0IHVudGVyIGRlbSBOYW1lbiAiQmllciIgaW0gVW1sYXVmIGlzdC4KCkRpZXNlIERyb2dlIGtvbW10IGluIGZsdWVzc2lnZXIgRm9ybSB2b3IgdW5kIGlzdCBuYWhlenUgdWViZXJhbGwgZXJoYWVsdGxpY2guClNpZSB3aXJkIGluIEZsYXNjaGVuLCBEb3NlbiwgR2xhZXNlcm4sIEZhZXNzZXJuIHVuZCBhdXMgWmFwZmFubGFnZW4gYW5nZWJvdGVuLgpCaWVyIHdpcmQgdm9uIHdlaWJsaWNoZW4gU2V4amFlZ2VyaW5uZW4gdmVyd2VuZGV0IHVtIGlocmUgbWFlbm5saWNoZW4gT3BmZXIKZGF2b24genUgdWViZXJ6ZXVnZW4sIG1pdCBpaG5lbiBoZWltenVnZWhlbiB1bmQgbWl0IGlobmVuIHp1IHNjaGxhZmVuLiBFaW5lCkZyYXUgbXVzcyBlaW5lbSBNYW5uIG51ciBlaW4gcGFhciBFaW5oZWl0ZW4gQmllciB2ZXJhYnJlaWNoZW4gdW5kIGRhbm4gaWhuCmVpbmZhY2ggZnJhZ2VuLCBvYiBlciBtaXRrb21tdC4KCk1hZW5uZXIgc2luZCBnZWdlbiBkaWVzZSBVZWJlcmdyaWZmZSB2b2xsa29tbWVuIGhpbGZsb3MuIE5hY2ggZWluaWdlbiBCaWVyZW4KZ2ViZW4gTWFlbm5lcm4gZGVuIEVpbmxhZHVuZ2VuIGZ1cmNodGJhciBhdXNzZWhlbmRlciBGcmF1ZW4gbmFjaCwgenUgZGVuZW4gc2llCnNpY2ggbm9ybWFsZXIgV2Vpc2UgbmllbWFscyBhbmdlem9nZW4gZnVlaGxlbiB3dWVyZGVuLgoKTmFjaCBkZXIgRWlubmFobWUgdm9uIEJpZXIgZXJ3YWNoZW4gTWFlbm5lciBvZnQgbWl0IG51ciBzY2hlbWVuaGFmdGVyCkVyaW5uZXJ1bmcgYW4gZGllIEdlc2NoZWhuaXNzZSBkZXIgdmVyZ2FuZ2VuZW4gTmFjaHQsIG9mdCB2ZXJidW5kZW4gbWl0IGRlbQpHZWZ1ZWhsLCBkYXNzICJldHdhcyBTY2hsaW1tZXMiIHBhc3NpZXJ0IHNlaS4gTWFuY2htYWwgd2VyZGVuIGRpZSBhcm1lbiBPcGZlcgp6dWRlbSBub2NoIHVtIGlocmUgRXJzcGFybmlzc2UgZ2VicmFjaHQsIG1pdCBlaW5lciBNYXNjaGUgZGllIGFscyAiQmV6aWVodW5nIgpiZWthbm50IGlzdC4gSW4gYmVzb25kZXJzIGhhcnRlbiBGYWVsbGVuIGthbm4gZGllIHdlaWJsaWNoZSBBbmdyZWlmZXJpbiBzb2dhcgpzb3dlaXQga29tbWVuLCBkYXNzIGRlciBhaG51bmdzbG9zZSBNYW5uIGluIGVpbmUgTGFuZ3plaXRhYmhhZW5naWdrZWl0CmJlc3RlaGVuZCBhdXMgS25lY2h0c2NoYWZ0IHVuZCBCZXN0cmFmdW5nIGdlcmFldCwgZGllIHVudGVyIGRlbSBEZWNrbmFtZW4KIkVoZSIgYmVrYW5udCB3dXJkZS4KCk1hZW5uZXIgZmFsbGVuIGRpZXNlciBNZXRob2RlIHZpZWwgbGVpY2h0ZXIgenVtIE9wZmVyIHNvYmFsZCBpaG5lbiBCaWVyCnZlcmFicmVpY2h0IHdpcmQgdW5kIFNleCBkdXJjaCBkaWUgd2VpYmxpY2hlbiBKYWVnZXJpbm5lbiBhbmdlYm90ZW4gd2lyZC4KCkJpdHRlIGxlaXRldCBkaWVzZSBXYXJudW5nIGFuIGFsbGUgTWFlbm5lciB3ZWl0ZXIgZGllIGlociBrZW5udC4gRmFsbHMgRHUgZGVyCkJpZXItTWV0aG9kZSB6dW0gT3BmZXIgZmFlbGxzdCwgZXMgZ2lidCBmdWVyIE1hZW5uZXIgU2VsYnN0aGlsZmVncnVwcGVuLCBpbgpkZW5lbiBEdSBkaWUgRGV0YWlscyBEZWluZXMgc2Nob2NraWVyZW5kZW4gRXJsZWJuaXNzZXMgbWl0IGFuZGVyZW4sIGFlaG5saWNoCmJldHJvZmZlbmVuIE1hZW5uZXJuIGRpc2t1dGllcmVuIGthbm5zdC4gRGllc2UgU2VsYnN0aGlsZmVncnVwcGVuIGZpbmRlc3QgRHUKaW0gVGVsZWZvbmJ1Y2ggdW50ZXIgZGVtIERlY2tuYW1lbiAiR29sZiBLdXJzZSIuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKVW5kIG51bi4uLiAoQW50aGVhLCAgOC4gU2VwIDIwMTUsIDA5OjIwOjQ1KToKVW5kIG51biBlaW4gV2l0eiBmdWVyIGFsbGUgR2VkYW5rZW5sZXNlci4KCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBVbmQgbnVuLi4uIChSdW1hdGEsICA4LiBTZXAgMjAxNSwgMDk6MjE6MDEpOgp+IyEgcm49QW50aGVhIHJ0PTE0NDE2OTY4NDUgcmc9d2l0emUKfiMhIHRpZD0xNDQxNjk2ODQ1CkRlciBpc3QgYWJlciBhYWFhYWFsdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogVW5kIG51bi4uLiAoWm9vaywgIDguIFNlcCAyMDE1LCAwOTozMDoyMik6Cn4jISBybj1SdW1hdGEgcnQ9MTQ0MTY5Njg2MSByZz13aXR6ZQp+IyEgdGlkPTE0NDE2OTY4NDUKOmJlaXNzdCBzaWNoIGF1ZiBkaWUgWnVuZ2UuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBVbmQgbnVuLi4uIChaYXBob2IsICA4LiBTZXAgMjAxNSwgMTE6MTg6MTkpOgp+IyEgcm49Wm9vayBydD0xNDQxNjk3NDIyIHJnPXdpdHplCn4jISB0aWQ9MTQ0MTY5Njg0NQpJY2gga2FubnRlIGlobiBub2NoIG5pY2h0LiBMdWNreSAxMDAwMC4KCkRhbmtlIGZ1ZXJzIFdpZWRlcmJlbGViZW4gZGVyIFJ1YnJpayEgOikKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFsc28gd2lya2xpY2ggKEFudGhlYSwgIDguIFNlcCAyMDE1LCAxMjowMDo0Nyk6Ck5ldWxpY2ggaW4gZGVyIEtuZWlwZSBob2VydGUgaWNoIGVpbiBwYWFyIEJsb2VkbWFlbm5lciBzYWdlbiwgZGFzcyBzaWUgbmllIGluCmVpbiBGbHVnemV1ZyBzdGVpZ2VuIHd1ZXJkZW4sIHdlbm4gc2llIHd1ZXNzdGVuLCBkYXNzIGVpbmUgRnJhdSBhbHMgUGlsb3RpbiBpbQpDb2NrcGl0IHNpdHp0LiBXYXMgZnVlciBTZXhpc3Rlbi4gRXMgaXN0IGphIG5pY2h0IHNvIGFscyBtdWVzc3RlIHNpZSBkYXMgRGluZwpydWVja3dhZXJ0cyBlaW5wYXJrZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpCb2RlbmxvcyAoQW50aGVhLCAgOC4gU2VwIDIwMTUsIDEyOjE0OjM3KToKQXVmIGVpbmVyIGxhZW5nZXJlbiBVZWJlcmxhbmRmYWhydCBtYWNodGUgZWluIE1hbm4gZWluZSBQYXVzZSB1bmQgd2FuZGVydGUKZHVyY2ggZGllIEdlZ2VuZC4gQXVmIGVpbmVyIExpY2h0dW5nIGVudGRlY2t0ZSBlciBlaW4gZ3JvZXNlcmVzIExvY2guIFVtIHp1CnNlaGVuLCB3aWUgdGllZiBlcyBpc3QsIHdhcmYgZXIgZWluZW4gS2llc2VsIGhpbmVpbi4gQWJlciBlciBob2VydGUgbmljaHRzLgpBbHNvIHdhcmYgZXIgZWluZW4gZmF1c3Rncm9zc2VuIFN0ZWluIHJlaW4uIFdpZWRlciBuaWNodHMuIEV0d2FzIGZydXN0cmllcnQKbmFobSBlciBlaW5lbiBGZWxzYnJvY2tlbiB1bmQgd2FyZiBkZW4gaGludGVyaGVyLiBXaWVkZXIgbmljaHRzLiBBbHMgZXIgZGllCkdlZ2VuZCBhYnN1Y2h0ZSBlbnRkZWNrdGUgZXIgZWluZSBFaXNlbmJhaG5zY2h3ZWxsZS4gTXVlaHNhbSBzY2hsZXBwdGUgZXIgZGllCnp1bSBMb2NoIHVuZCBzdGllc3Mgc2llIGhpbnVudGVyLiBXaWVkZXIgbmljaHRzLgpFdHdhcyBhdXNzZXIgQXRlbSBzZXR6dGUgZXIgc2ljaCBhdWYgZGVuIEJvZGVuLiBQbG9ldHpsaWNoIHNhaCBlciBlaW5lIFppZWdlCmluIHZvbGxlciBHZXNjaHdpbmRpZ2tlaXQgYXVmIHNpY2ggenVyZW5uZW4uIEVyIHNwcmFuZyBob2NoLCB1bmQgc2llIHZlcmZlaGx0ZQppaG4gZ2FueiBrbmFwcCwgdW5kIGZpZWwgYXVjaCBpbiBkYXMgTG9jaC4gRXIgbGF1c2NodGUsIGFiZXIgd2llZGVyIGtlaW4KR2VyYWV1c2NoLiBEYSBzZXR6dGUgZXIgc2ljaCB3aWVkZXIuCgpOYWNoIGVpbiBwYWFyIE1pbnV0ZW4ga2FtIGVpbiBCYXVlciBkZXMgV2VnZXMgZW50bGFuZy4gRGVyIE1hbm4gZnJhZ3RlIGlobjoKIldpZSB0aWVmIGlzdCBkZW5uIGRpZXNlcyBMb2NoPyIKIk9oLCIgYW50d29ydGV0ZSBkZXIsICJEYXMgaXN0IHVuc2VyIGJvZGVubG9zZXMgTG9jaC4gRXMgZW5kZXQgbmllbWFscy4gQWJlcgpzYWd0IG1hbCwgaGFidCBpaHIgenVmYWVsbGlnIG1laW5lIHByZWlzZ2Vrcm9lbnRlIFppZWdlIGdlc2VoZW4/IgpEZXIgTWFubiB3b2xsdGUgbmljaHQgaW4gU2Nod2llcmlna2VpdGVuIGtvbW1lbiwgYWxzbyBzYWd0ZSBlciAiTmVpbi4iCkRlciBCYXVlciBhbnR3b3J0ZXRlICJOYWphLCBlciBrYW5uIGphIG5pY2h0IHdlaXQga29tbWVuLiBTY2hsaWVzc2xpY2ggaGFiIGljaAppaG4gYW4gZWluZXIgRWlzZW5iYWhuc2Nod2VsbGUgYW5nZWJ1bmRlbi4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcnVlbiAoQW50aGVhLCAgOS4gU2VwIDIwMTUsIDEzOjUwOjEzKToKTWVpbmUgVG9jaHRlciBzdGVodCBkZXJ6ZWl0IGF1ZiBzb2xjaGUgV2l0emU6CgpXYXMgaXN0IGdydWVuIHVuZCBmbGllZ3QgZHVyY2hzIFdlbHRhbGw/CgpFaW4gU2FsYXRlbGxpdC4KCldhcyBpc3QgYnJhdW4gdW5kIHN0ZWh0IGluIGRlciBXdWVzdGU/CgpFaW4gS2FyYW1lbC4KCldhcyBpc3QgZ3J1ZW4gdW5kIGd1Y2t0IGR1cmNocyBTY2hsdWVzc2VsbG9jaD8KCkVpbiBTcGlvbmF0LgoKV2FzIGlzdCB3ZWlzcyB1bmQgbGllZ3QgYXVmIGRlciBXaWVzZT8KCkVpbiBTY2hsYWFmCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZW5hdSBzbyAoQW50aGVhLCAgOS4gU2VwIDIwMTUsIDE0OjIxOjMzKToKRGFzIExlYmVuIGF1ZiBkZXIgRXJkZSBpc3QgZGFzIGtvc21pc2NoZSBBZXF1aXZhbGVudCBkYXp1LCB3ZW5uIG1hbiBzZWluZQpTYWNoZW4gbmljaHQgYW4gZWluZW0ga3VlaGxlbiwgdHJvY2tlbmVuIE9ydCBhdWZiZXdhaHJ0Li4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR3J1ZW4gKEFyYXRob3JuLCAgOS4gU2VwIDIwMTUsIDIyOjUzOjM4KToKfiMhIHJuPUFudGhlYSBydD0xNDQxNzk5NDEzIHJnPXdpdHplCn4jISB0aWQ9MTQ0MTc5OTQxMwpXYXMgaXN0IGdlbGIgdW5kIGthbm4gbmljaHQgc2Nod2ltbWVuPwoKRWluIEJhZ2dlci4KClVuZCB3YXJ1bT8KCkVyIGhhdCBudXIgZWluZW4gQXJtISAqc2NoZW5rZWxrbG9wZioKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBSZTogR3J1ZW4gKEFuYXRvbCwgMTAuIFNlcCAyMDE1LCAwNzoxNTo0NSk6Cn4jISBybj1BcmF0aG9ybiBydD0xNDQxODMyMDE4IHJnPXdpdHplCn4jISB0aWQ9MTQ0MTc5OTQxMwpVbmQgd2FzIGlzdCBvcmFuZ2UgdW5kIGt1Y2t0IGR1cmNocyBTY2hsdWVzc2VsbG9jaD8KCkVpbmUgU3Bhbm5kYXJpbmUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR3J1ZW4gKENoYWdhbGwsIDEwLiBTZXAgMjAxNSwgMDg6MzM6NTApOgp+IyEgcm49QW5hdG9sIHJ0PTE0NDE4NjIxNDUgcmc9d2l0emUKfiMhIHRpZD0xNDQxNzk5NDEzCldhcyBpc3Qgd2Vpc3MgdW5kIHN0b2VydCBiZWltIEZydWVoc3R1ZWNrPwoKRWluZSBMYXdpbmUuCgoKCldhcyBpc3Qgcm90IHVuZCBzY2hsZWNodCBmdWVyIGRpZSBaYWVobmU/CgpFaW4gWmllZ2Vsc3RlaW4uCgpNQwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogR3J1ZW4gKFJ1bWF0YSwgMTAuIFNlcCAyMDE1LCAxMjozNzo0Nik6Cn4jISBybj1BbmF0b2wgcnQ9MTQ0MTg2MjE0NSByZz13aXR6ZQp+IyEgdGlkPTE0NDE3OTk0MTMKRWluZSBncm9zc2UgV2FyZW5oYXVza2V0dGUgd2lsbCBudW4gaW5zIFByb25vZ2VzY2hhZWZ0IGVpbnN0ZWlnZW4uCkRlciBOYW1lIHN0ZWh0IHNjaG9uIGZlc3Q6ICJHZWlsZXJpYSBLYXVmaG9mIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogR3J1ZW4gKEdub21lLCAxMS4gU2VwIDIwMTUsIDE5OjIzOjQ0KToKfiMhIHJuPUNoYWdhbGwgcnQ9MTQ0MTg2NjgzMCByZz13aXR6ZQp+IyEgdGlkPTE0NDE3OTk0MTMKV2FzIGlzdCBnZWxiIHVuZCBodWVwZnQgZHVyY2ggZGVuIFdhbGQ/CgpEZXIgUG9zdGZyb3NjaCEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEdydWVuIChSdW1hdGEsIDEzLiBTZXAgMjAxNSwgMTc6MTg6NTUpOgp+IyEgcm49R25vbWUgcnQ9MTQ0MTk5MjIyNCByZz13aXR6ZQp+IyEgdGlkPTE0NDE3OTk0MTMKV2FzIGlzdCBibGF1IHVuZCBkcmVpZWNraWcgdW5kIGh1ZXBmdCBkdXJjaCBkZW4gV2FsZD8KCgoKRWluIGJsYXVlcyBEcmVpZWNrLCBkYXMgZHVyY2ggZGVuIFdhbGQgaHVlcGZ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNjogR3J1ZW4gKFRhcmFtYXIsIDEzLiBTZXAgMjAxNSwgMTc6NDA6MzYpOgp+IyEgcm49UnVtYXRhIHJ0PTE0NDIxNTc1MzUgcmc9d2l0emUKfiMhIHRpZD0xNDQxNzk5NDEzCldhcyBpc3QgZ3J1ZW4gdW5kIHJlbm50IGltIHppY2t6YWNrIGF1cyBkZXIgS3VlY2hlPwotIERlciBGbHVjaHRzYWxhdCEKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpLbm9jaGlnIChBbnRoZWEsIDEzLiBPa3QgMjAxNSwgMDk6MzY6NTkpOgpXZW5uIGVpbiBTa2VsZXR0IGVpbiBCaWxkIHZvbiBzaWNoIHNlbGJlciBtYWNodCwgaXN0IGRhcyBkYW5uIGVpbiBTa2VsZmllPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEtub2NoaWcgKFphcGhvYiwgMTQuIE9rdCAyMDE1LCAxMzowMzo1MCk6Cn4jISBybj1BbnRoZWEgcnQ9MTQ0NDcyMTgxOSByZz13aXR6ZQp+IyEgdGlkPTE0NDQ3MjE4MTkKS29tbXQgZWluIFNrZWxldHQgaW4gZGllIEJhcjogIkVpbiBCaWVyIHVuZCBlaW5lbiBXaXNjaGxhcHBlbiBiaXR0ZS4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEtub2NoaWcgKFJ1bWF0YSwgMTQuIE9rdCAyMDE1LCAxMzoyNjoxMik6Cn4jISBybj1aYXBob2IgcnQ9MTQ0NDgyMDYzMCByZz13aXR6ZQp+IyEgdGlkPTE0NDQ3MjE4MTkKS29tbWVuIGRyZWkgTG9naWtlciBpbiBlaW5lIEJhci4KQmFhcmtlZXBlcjogbmEsIGplZGVyIGVpbiBCaWVyPwpMb2dpa2VyIDE6IHdlaXNzIGljaCBuaWNodC4KTG9naWtlciAyOiB3ZWlzcyBpY2ggbmljaHQuCkxvZ2lrZXIgMzogamEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBLbm9jaGlnIChSaG92YW4sIDE0LiBPa3QgMjAxNSwgMTc6NDE6MDApOgp+IyEgcm49UnVtYXRhIHJ0PTE0NDQ4MjE5NzIgcmc9d2l0emUKfiMhIHRpZD0xNDQ0NzIxODE5CkVpbiBTa2VsZXR0IHNpdHp0IGF1ZiBlaW5lbSBHcmFic3RlaW4gdW5kIHJhdWNodC4gS29tbXQgZWluIHp3ZWl0ZXMgU2tlbGV0dAp2b3JiZWkgdW5kIHNhZ3Q6ICJOYSwgcmF1Y2hzdCBEdSBpbW1lciBub2NoPyIgLSAiSmEhIEFiZXIgbmljaHQgbWVociBhdWYKTHVuZ2UhIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkJvaW5nIFJlc2V0IGluIEFjdGlvbiAoQmx1dGdpZXIsIDEyLiBEZXogMjAxNSwgMDE6MDc6MDcpOgpGdWVyIGp1ZW5nZXIgU3BpZWxlciwgd2FzIGlzdCBkYXM/CkhpZXI6CgpEdSBzdG9lc3N0IGRlbiBTY2hsZWltZHJhY2hlbiBoZWZ0aWcgbWl0IERlaW5lbSBLb3BmLgogIER1IHNjaGxhZWdzdCBlaW5lbiBTY2hsZWltZHJhY2hlbiBtaXQgZGVtIEtyYWNoZW4gYnJlY2hlbmRlciBLbm9jaGVuLgpEZXIgU2NobGVpbWRyYWNoZSBmYWVsbHQgdG90IHp1IEJvZGVuLgpFaW4gU2NobGVpbWRyYWNoZSBrb21tdCBhbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVybGVpY2h0ZXJ1bmcsIGhvZXJiYXIhIChNaXJha2EsIDEzLiBEZXogMjAxNSwgMTY6NTY6NTYpOgpbQWJlbnRldWVyOjxRdWVzdD5dIEJhbWJ1ciBoYXQgZWluZW4gS3JpZWcgendpc2NoZW4gdG9iZW5kZW4gRnVyaWVuIHVuZApbQWJlbnRldWVyOjxRdWVzdD5dIFdvbm5ld2ljaHRlbiB2ZXJoaW5kZXJ0LgpbQWJlbnRldWVyOkVpbiBqdWJlbG5kZXIgV29ubmV3aWNodF0gQmFtYnVyLCBlaW5lIHdhaHJlIEhlbGRlbnRhdC4gRHUgaGFzdCBkZW4KW0FiZW50ZXVlcjpFaW4ganViZWxuZGVyIFdvbm5ld2ljaHRdIFdvbm5ld2ljaHR3YWxkIHZvciBkZW0gWm9ybiBkZXIgRnVyaWVuCltBYmVudGV1ZXI6RWluIGp1YmVsbmRlciBXb25uZXdpY2h0XSBiZXdhaHJ0IHVuZCBtaWNoIGF1cyBkZW4gU3RvZWhuZW5kZW4KW0FiZW50ZXVlcjpFaW4ganViZWxuZGVyIFdvbm5ld2ljaHRdIEhvZWhsZW4gYmVmcmVpdC4gTWVpbiBCcnVkZXIgdW5kIGljaCwgd2lyCltBYmVudGV1ZXI6RWluIGp1YmVsbmRlciBXb25uZXdpY2h0XSBkYW5rZW4gRGlyLgpXYXIgZGFzIGVpbiBTY2hyZWksIGRlbiBEdSBlYmVuIGF1cyBkZW0gV2FsZCB2ZXJub21tZW4gaGFzdCA/CgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTWlhdSAoWmFwaG9iLCAxMC4gSnVsIDIwMTYsIDIwOjQwOjEwKToKVW5kIEthdHplLCB3YXMgaGFlbHRzdCBkdSBkYXZvbiwgZGFzcyBkaWUgVUsgbnVuIEV1cm9wYSB2ZXJsYWVzc3Q/CkljaCBkZW5rZSwgbWFuIHNvbGx0ZSBpbW1lciB3aWVkZXIgZGFydW0gYml0dGVuIGdlaGVuIHp1IGR1ZXJmZW4sIHVuZCB3ZW5uCnNpY2ggZGllIFR1ZXIgb2VmZm5ldCwgZGFubiBlaW5mYWNoIGRhIHNpdHplbiB1bmQgc2llIGFuc2NoYXVlbi4gRGFzIHd1ZXJkZQppY2ggamVkZW5mYWxscyB0dW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHZWlzdHJlaWNoIChBbnRoZWEsIDIxLiBTZXAgMjAxNiwgMTE6Mjc6NDApOgpXZWxjaGUgU3ByYWNoZSBzcHJlY2hlbiBlaWdlbnRsaWNoIEdlaXN0ZXI/CgoKCgpMYXRlaW4sIGRlbm4gZXMgaXN0IGVpbmUgdG90ZSBTcHJhY2hlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKa2FsdCAoQW50aGVhLCAyMC4gRGV6IDIwMTYsIDE1OjI5OjUwKToKV2FydW0gZ2VodCBkZXIgVmFtcGlyIGluIGRpZSBTYXVuYT8KCkVyIHdpbGwgbWFsIHdpZWRlciBlaW5lIHdhcm1lIE1haGx6ZWl0IGhhYmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IGthbHQgKFZhbmlyLCAyMC4gRGV6IDIwMTYsIDE1OjQ3OjEwKToKfiMhIHJuPUFudGhlYSBydD0xNDgyMjQ0MTkwIHJnPXdpdHplCn4jISB0aWQ9MTQ4MjI0NDE5MApUcmVmZmVuIHNpY2ggZWluIFdhbGZpc2NoIHVuZCBlaW4gVGh1bmZpc2NoLgpTYWd0IGRlciBXYWxmaXNjaCB6dW0gVGh1bmZpc2NoOiJXYXMgd29sbGVuIHdpciB0dW4sIEZpc2NoLiIKU2FndCBEZXIgVGh1bmZpc2NoOiBEdSBoYXN0IGRpZSBXYWhsLCBGaXNjaCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IGthbHQgKEFyaywgMjMuIERleiAyMDE2LCAwMDozMzozMSk6Cn4jISBybj1WYW5pciBydD0xNDgyMjQ1MjMwIHJnPXdpdHplCn4jISB0aWQ9MTQ4MjI0NDE5MApXaXJkIGFiZXIgdHJvdHogaGEtaGEgbmljaHQgd2lzc2Vuc2NoYWZ0bGljaCBrb3JyZWt0ZXIgOi0pCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzoga2FsdCAoVGl6b25hLCAyNC4gRGV6IDIwMTYsIDA3OjQ0OjM4KToKfiMhIHJuPUFyayBydD0xNDgyNDQ5NjExIHJnPXdpdHplCn4jISB0aWQ9MTQ4MjI0NDE5MApEZW4gQW50ZWlsIGRlciB3aXNzZW5zY2hhZnRsaWNoZW4gS29ycmVrdGhlaXQgdW5kIGRlbiBBbnRlaWwgZGVyCnNjaGxlY2heSCBndXRlbiBXb3J0d2l0emUga2FubiBtYW4gbWl0IGVpbmVtIGVpbmxlaXRlbmRlbgoiSGFpIEZpc2NoIiBnYW56IGd1dCBlcmhvZWhlbi4gOm8pCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBrYWx0IChaYXBob2IsIDMwLiBEZXogMjAxNiwgMTQ6MDk6MzEpOgp+IyEgcm49VGl6b25hIHJ0PTE0ODI1NjE4Nzggcmc9d2l0emUKfiMhIHRpZD0xNDgyMjQ0MTkwCldhcyBtYWNodCBlaW4gVmFtcGlyIGJlaSBkZXIgVG91ciBkZSBGcmFuY2U/CgpFciB0cmlua3QgZWluIFJhZGxlci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkVyc3RhdW5saWNoIChBbnRoZWEsIDEwLiBGZWIgMjAxNywgMTQ6MDI6NTYpOgpBbGxlIDYwIFNla3VuZGVuIGdlaHQgaW4gQWZyaWthIGVpbmUgTWludXRlIHp1ZW5kZSEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkdlaG9lcnQgZWlnZW50bGljaCBpbiBSdWJyaWsgV2lzc2Vuc2NoYWZ0IChBcmssIDE3LiBGZWIgMjAxNywgMTU6MDM6MDUpOgpodHRwOi8vd3d3Lmdlby5kZS9uYXR1ci90aWVyd2VsdC8xNTU4OC1ydGtsLW5ldWVyLWZhbHRlci1tb3R0ZS1uYWNoLWRvbmFsZC10cnUKbXAtYmVuYW5udAoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBHZWhvZXJ0IGVpZ2VudGxpY2ggaW4gUnVicmlrIFdpc3NlbnNjaGFmdCAoR2xvaW5zb24sIDE3LiBGZWIgMjAxNywgMTU6NTQ6MDIpOgp+IyEgcm49QXJrIHJ0PTE0ODczNDAxODUgcmc9d2l0emUKfiMhIHRpZD0xNDg3MzQwMTg1Ck1hbiBiZWFjaHRlLCBpbiB3ZWxjaGVtIE1hZ2F6aW4gZGVyIEFydGlrZWwgZXJzY2hpZW5lbiBpc3QgOykKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaWUgd2ljaHRpZ2VuIFp1c2NoYXVlciBzaW5kIGVpbmdldHJvZmZlbi4gKEFyaywgIDguIE1hciAyMDE3LCAyMDo1MzoxNSk6CkRpZSBIeWRyYSBzaW5rdCBsYW5nc2FtIGluIGRhcyBUYWwgZGVyIEx1cGluZW4gbmllZGVyLgpbU3BvcnQ6QnVnZml4XSBUT09PT09SIQoKCiAgICAgICAgICAgICAgKioqIEFSSyAqIHRoZSAqIE1hZ25pZmljZW50ICoqKgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkxlYmVuIChBbnRoZWEsIDIyLiBKdW4gMjAxNywgMTM6Mjg6NDUpOgpEYXMgTGViZW4gYXVmIGRlciBFcmRlIGlzdCBkYXMga29zbWlzY2hlIEFlcXVpdmFsZW50IGRhenUsIHdlbm4gbWFuIHNlaW5lClNhY2hlbiBuaWNodCBhbiBlaW5lbSBrdWVobGVuLCB0cm9ja2VuZW4gT3J0IGF1ZmJld2FocnQuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBMZWJlbiAoWm9vaywgMjguIEp1biAyMDE3LCAxMTozNTowMyk6Cn4jISBybj1BbnRoZWEgcnQ9MTQ5ODEzMDkyNSByZz13aXR6ZQp+IyEgdGlkPTE0OTgxMzA5MjUKVW5nZXdvZWhubGljaCwgZGllc2VyIFdpdHogYXVzIERlaW5lciBGZWRlci4KWm9vawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2VsYnN0ZmFocmVuZCAoQW50aGVhLCAgNC4gSnVsIDIwMTcsIDE0OjUxOjIyKToKTWl0IGRlbiBnYW56ZW4gRW50d2lja2x1bmdlbiB6dSBzZWxic3RmYWhyZW5kZW4gQXV0b3MgaXN0IGVzIG51ciBub2NoIGVpbmUKRnJhZ2UgZGVyIFplaXQsIGJpcyBkZXIgZXJzdGUgQ291bnRyeS1Tb25nIChvZGVyIFdlc3Rlcm4/KSBlcnNjaGVpbnQgdm9tClRydWNrZXIsIGRlciB2b24gc2VpbmVtIFRydWNrIHZlcmxhc3NlbiB3dXJkZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBTZWxic3RmYWhyZW5kIChSdW1hdGEsICA0LiBKdWwgMjAxNywgMTU6MjM6MDQpOgp+IyEgcm49QW50aGVhIHJ0PTE0OTkxNzI2ODIgcmc9d2l0emUKfiMhIHRpZD0xNDk5MTcyNjgyCmljaCB3YXJ0ZSBub2NoIGltbWVyIGF1ZiBkZW4gRWxla3RybyBSb2FkbW92aWUsIGRlciBkYXZvbiBoYW5kZWx0LAp3aWUgamVtYW5kIHNlaW4gQXV0byBhdWZsYWRlbiBtdXNzLiBOYW1lOiAiU3Ryb21sb3MgaW4gU2VhdHRsZSIuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFNlbGJzdGZhaHJlbmQgKE11bmRyb24sICA0LiBKdWwgMjAxNywgMTc6NDc6MTgpOgp+IyEgcm49UnVtYXRhIHJ0PTE0OTkxNzQ1ODQgcmc9d2l0emUKfiMhIHRpZD0xNDk5MTcyNjgyCkRhbm4gd2VyZGVuIGRpZSBuZW9uYXBva2FseXB0aXNjaGVuIEZpbG1lIHNpY2ggYXVjaCBhZW5kZXJuLiBTdGF0dCBkZW0gS2FtcGYKdW0gQmVuemluIGdlaHQgZXMgZGFubiB1bSBkZW4gS2FtcGYgdW0gZnVua3Rpb25pZXJlbmRlIEFra3VzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogU2VsYnN0ZmFocmVuZCAoQXJrLCAgNC4gSnVsIDIwMTcsIDIxOjEzOjAyKToKfiMhIHJuPU11bmRyb24gcnQ9MTQ5OTE4MzIzOCByZz13aXR6ZQp+IyEgdGlkPTE0OTkxNzI2ODIKQ2FyIFdhcnMgSTogQSBOZXcgTW9kZQpDYXIgV2FycyBJSTogVGhlIE1vdG9yIHN0cmlrZXMgYmFjawpDYXIgV2FycyBJSUk6IFRoZSBSZXR1cm4gb2YgRWxlY3RybwpDYXIgV2FycyBJVjogVGhlIFBoYW50b20gRnVybmFjZQpDYXIgV2FycyBWOiBBdHRhY2sgb2YgdGhlIERyb25lcwpDYXIgV2FycyBWSTogUmV2ZW5nZSBvZiB0aGUgU2hpZnQKCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBTZWxic3RmYWhyZW5kIChBbnRoZWEsICA1LiBKdWwgMjAxNywgMTI6NTA6MDUpOgp+IyEgcm49QXJrIHJ0PTE0OTkxOTU1ODIgcmc9d2l0emUKfiMhIHRpZD0xNDk5MTcyNjgyCkljaCB1ZWJlcmxlZ2UgamV0enQsIGVpbmUgQXV0b2Jpb2dyYXBoaWUgenUgc2NocmVpYmVuLgpJY2ggd2Vpc3MgbnVyIG5vY2ggbmljaHQsIHVlYmVyIHdlbGNoZXMgQXV0by4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFNlbGJzdGZhaHJlbmQgKFJ1bWF0YSwgIDUuIEp1bCAyMDE3LCAxMzowNTozNyk6Cn4jISBybj1BbnRoZWEgcnQ9MTQ5OTI1MTgwNSByZz13aXR6ZQp+IyEgdGlkPTE0OTkxNzI2ODIKV2VubiBkaWUgc2ljaCBuaWNodCB2b24gYWxsZWluIHNjaHJlaWJ0LCBpc3QgZXMga2VpbmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpzY2h3ZXIgKEFudGhlYSwgMjYuIEp1bCAyMDE3LCAxNDoxMDo0NSk6ClN0dWRpZW4gaGFiZW4gZXJnZWJlbiwgZGFzcyBkaWUgZXJzdGVuIDUgVGFnZSBuYWNoIGRlbSBXb2NoZW5lbmRlIGRpZQpzY2h3ZXJzdGVuIHNpbmQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvZWdlbCAoUmhvdmFuLCAgNS4gU2VwIDIwMTcsIDEwOjU3OjQzKToKV2VsY2hlIFZvZWdlbCBrb2VubmVuIG5pY2h0IGhvZXJlbj8KCkRpZSBUYXViZW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClN0cm9tIChSdW1hdGEsICA1LiBTZXAgMjAxNywgMTM6MDU6MzkpOgpXaWVzbyBnaWJ0IGVzIGluIGRlbiBVU0EgaW4gZGVyIFNhY2tnYXNzZSBrZWluZW4gU3Ryb20/CgoKTm8gT3V0bGV0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQWxsZXMgRmxhc2NoIChBbnRoZWEsICA1LiBTZXAgMjAxNywgMTk6MTg6NTkpOgpXYXJ1bSBoYWx0ZW4gZGllIE9lc3RlcnJlaWNoZXIoKikgaW1tZXIgZWluIERpYSBhbiBkaWUgQnJpZWZtYXJrZW4/CgpXZWlscyBEaWFsZWt0LgoKQWJlciBtYW4gd2Vpc3MgamEsIGRhc3MgbWFuIERpYXMgbmljaHRzIGdsYXViZW4ga2Fubi4KCldlaWxzIERpYWxvZy4KCigqKSBQbGF0emhhbHRlciBmdWVyIGRpZSBaaWVsZ3J1cHBlIElocmVyIFdhaGwuIFNlaSBlcyBPc3Rmcmllc2VuLApCdXJnZW5sYWVuZGVyLCBTY2h3ZWl6ZXIsIEJsb25kaW5lbiwgQnJ1ZW5ldHRlLi4uLiBEZXIgV2l0eiB3aXJkIGRhZHVyY2ggbmljaHQKYmVzc2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWlnZW50bGljaCBudXIgaGFsYiB3aXR6aWcgLi4uIChBcmssIDE5LiBPa3QgMjAxNywgMjE6NTI6MDApOgouLi4gd2VpbCBlcyBiZXdlaXN0LCBkYXNzIHdpciB1bnMgZG9jaCBhbSBiZXN0ZW4gZnJvZWhsaWNoIHNlbGJzdCB1bWJyaW5nZW4uCgpodHRwczovL3d3dy5mYWNlYm9vay5jb20vZ3Vuemlsb3Zlcy92aWRlb3MvMTQ3NTA2NTc4NTkzNDAxOS8KCgogICAgICAgICAgICAgICoqKiBBUksgKiB0aGUgKiBNYWduaWZpY2VudCAqKioKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEZXIgdWx0aW1hdGl2ZSBWZXJnbGVpY2g6IDcyMHAgdnMuIDEwODBwIHZzIDEwODBpIHZzIDRLIChBbnRoZWEsICA4LiBKYW4gMjAxOCwgMTI6NTU6NDEpOgo3MjBwOgpwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKCjEwODBwOgpwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcApwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAKcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwCnBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcAoKMTA4MGk6CmlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaQppaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkKaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpCmlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaQppaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkKaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpCmlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaQppaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkKaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpCmlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaQppaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkKaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpCmlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaQppaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkKaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpCgo0SzoKS0tLSwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IERlciB1bHRpbWF0aXZlIFZlcmdsZWljaDogNzIwcCB2cy4gMTA4MHAgdnMgMTA4MGkgdnMgNEsgKFJ1bWF0YSwgIDguIEphbiAyMDE4LCAxMzo0NTo1MSk6Cn4jISBybj1BbnRoZWEgcnQ9MTUxNTQxMjU0MSByZz13aXR6ZQp+IyEgdGlkPTE1MTU0MTI1NDEKQWhhLCA0SyBicmF1Y2h0IGFsc28gd2VuaWdlciBCYW5kYnJlaXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBEZXIgdWx0aW1hdGl2ZSBWZXJnbGVpY2g6IDcyMHAgdnMuIDEwODBwIHZzIDEwODBpIHZzIDRLIChab29rLCAgOC4gSmFuIDIwMTgsIDE0OjI5OjI2KToKfiMhIHJuPVJ1bWF0YSBydD0xNTE1NDE1NTUxIHJnPXdpdHplCn4jISB0aWQ9MTUxNTQxMjU0MQpVbmQgendhciBkZXV0bGljaC4KClpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBEZXIgdWx0aW1hdGl2ZSBWZXJnbGVpY2g6IDcyMHAgdnMuIDEwODBwIHZzIDEwODBpIHZzIDRLIChBbnRoZWEsICA4LiBKYW4gMjAxOCwgMTY6NTQ6MzMpOgp+IyEgcm49Wm9vayBydD0xNTE1NDE4MTY2IHJnPXdpdHplCn4jISB0aWQ9MTUxNTQxMjU0MQpOb2NoIHdlbmlnZXIgYnJhdWNodCBkYW5uIDNECkRERAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogRGVyIHVsdGltYXRpdmUgVmVyZ2xlaWNoOiA3MjBwIHZzLiAxMDgwcCB2cyAxMDgwaSB2cyA0SyAoTXVuZHJvbiwgIDguIEphbiAyMDE4LCAxODozNzoxNSk6Cn4jISBybj1BbnRoZWEgcnQ9MTUxNTQyNjg3MyByZz13aXR6ZQp+IyEgdGlkPTE1MTU0MTI1NDEKZWlnZW50bGljaCByZWljaHQgZG9jaCBhdWNoIDJELiBEaWUgVGllZmUgaXN0IGRvY2ggc293aWVzbyBudXIgZWluZSBvcHRpc2NoZQpUYWV1c2NodW5nLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogRGVyIHVsdGltYXRpdmUgVmVyZ2xlaWNoOiA3MjBwIHZzLiAxMDgwcCB2cyAxMDgwaSB2cyA0SyAoR2xvaW5zb24sICA4LiBKYW4gMjAxOCwgMjI6Mzg6MjApOgp+IyEgcm49TXVuZHJvbiBydD0xNTE1NDMzMDM1IHJnPXdpdHplCn4jISB0aWQ9MTUxNTQxMjU0MQpEZXIgS29tcHJlc3Npb25zZmFrdG9yIGhhdCBtaWNoIHVlYmVyemV1Z3QuIExlaWRlciBtYWNoZW4gZGllIEdyYWZpa2thcnRlbgp1bnNlcmVyIExhcHRvcHMgZGllIDRLIG5pY2h0IG1pdC4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgp3aXR6IChSaG92YW4sICA5LiBKYW4gMjAxOCwgMDk6NDY6MDYpOgpFaW4gRmlzY2ggaGF0IG1pciBzZWluIFdvcnQgZ2VnZWJlbiB1bmQgZXMgbmljaHQgZ2VoYWx0ZW4uCldhciB3b2hsIGVpbiBXYWx2ZXJzcHJlY2hlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNlZW1hbm5zZ2FybiBvZGVyIHNvIChTYXJheSwgMTMuIEp1bCAyMDE4LCAyMDo0Njo1Nyk6CldhcnVtIGtvZW5uZW4gU2VlcmFldWJlciBrZWluZW4gS3JlaXMgYmVyZWNobmVuPwoKV2VpbCBzaWUgUGlyYXRlbi4KCkphLCBpY2ggd2Vpc3MsIHNjaHJpZnRsaWNoIG5pY2h0IGdhbnogc28gc2Nob2VuLAphYmVyIGRvY2ggaXJnZW5kd2llIHBvc3RlbnN3ZXJ0IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFNlZW1hbm5zZ2FybiBvZGVyIHNvIChEZWFkZHksIDEzLiBKdWwgMjAxOCwgMjA6NTU6MjcpOgp+IyEgcm49U2FyYXkgcnQ9MTUzMTUwNzYxNyByZz13aXR6ZQp+IyEgdGlkPTE1MzE1MDc2MTcKTm9jaCBzY2hsZWNodGVyIGluIFNjaHJpZnRmb3JtOiBTdGVodCBlaW4gUGlseiBpbSBXYWxkLCB3aWVzbz8gV2VpbCBkaWUKVGFubmVuemFwZmVuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBTZWVtYW5uc2dhcm4gb2RlciBzbyAoQW1hcnlsbGlzLCAxMy4gSnVsIDIwMTgsIDIxOjAyOjI0KToKfiMhIHJuPURlYWRkeSBydD0xNTMxNTA4MTI3IHJnPXdpdHplCn4jISB0aWQ9MTUzMTUwNzYxNwpTb2xsdGUgZGFzIG5pY2h0IGVoZXIgZWluIFBpbHMgc2Vpbj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IFNlZW1hbm5zZ2FybiBvZGVyIHNvIChEZWFkZHksIDEzLiBKdWwgMjAxOCwgMjE6MDI6NTYpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTE1MzE1MDg1NDQgcmc9d2l0emUKfiMhIHRpZD0xNTMxNTA3NjE3CkljaCB1ZWJlcmxlZ3RlIHdpZSBkaWUgUG9pbnRlIHVlYmVycmFzY2hlbmRlciBrb21tbXQgdW5kIGRhY2h0ZSBkYW5uIHNjaHJlaWIKaWNoIGVzIGxpZWJlciBzby4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjQ6IFNlZW1hbm5zZ2FybiBvZGVyIHNvIChIdW1uaSwgMjYuIEp1bCAyMDE4LCAxNTowNjo1MCk6Cn4jISBybj1EZWFkZHkgcnQ9MTUzMTUwODU3NiByZz13aXR6ZQp+IyEgdGlkPTE1MzE1MDc2MTcKIklociBCZWxhZyBpc3QgZ2VyYWRlIHZvbiBkZXIgUGl6emEgZ2VmbHVlY2h0ZXQgdW5kIGhhdCBlaW4gU2NoaWZmIGdla2xhdXQuIgoKIktsYXIsIHdhcmVuIGphIGF1Y2ggS2FwZXJuISIKCkh1bW5pLCBhdXMgRmFjZWJvb2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IFNlZW1hbm5zZ2FybiBvZGVyIHNvIChDaGFnYWxsLCAyNi4gSnVsIDIwMTgsIDE1OjA5OjMzKToKfiMhIHJuPUh1bW5pIHJ0PTE1MzI2MTA0MTAgcmc9d2l0emUKfiMhIHRpZD0xNTMxNTA3NjE3Ckh1bW5pLCBpY2ggZ2xhdWJlIHVlYmVyIGRlaW5lbSBXaXR6ZW5pdmVhdSBpc3QgZ2VyYWRlIGVpbmUgS2VsbGVyd29obnVuZyBmcmVpCmdld29yZGVuLiA6KQoKTUMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFNlZW1hbm5zZ2FybiBvZGVyIHNvIChab29rLCAyNi4gSnVsIDIwMTgsIDE1OjE2OjA0KToKfiMhIHJuPUNoYWdhbGwgcnQ9MTUzMjYxMDU3MyByZz13aXR6ZQp+IyEgdGlkPTE1MzE1MDc2MTcKIkh1bW5pIGF1cyBGYWNlYm9vayIga2xpbmd0IGF1Y2ggaXJnZW5kd2llIGJlYWVuZ3N0aWdlbmQuIElzdApkYXMgZGllc2UgbmV1ZSBJbnRlcm9wZXJhYmlsaXRhZXQgdm9uIGRlciBkaWUgQk1pbiBkZXIgSnVzdGl6CmltbWVyIHNwcmljaHQ/Cgpab29rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBTZWVtYW5uc2dhcm4gb2RlciBzbyAoR2xvaW5zb24sIDI3LiBKdWwgMjAxOCwgMTM6NDE6NTUpOgp+IyEgcm49Wm9vayBydD0xNTMyNjEwOTY0IHJnPXdpdHplCn4jISB0aWQ9MTUzMTUwNzYxNwpTYWd0IGRpZSBrbGVpbmUgS2VyemUgenVyIGdyb3NzZW46ICJJc3QgWnVnbHVmdCBnZWZhZWhybGljaD8iCgoiSmEsIGRhdm9uIGthbm5zdCBkdSBhdXNnZWhlbi4iCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogU2VlbWFubnNnYXJuIG9kZXIgc28gKFN3b3RsLCAyNy4gSnVsIDIwMTgsIDEzOjQ0OjU0KToKfiMhIHJuPUdsb2luc29uIHJ0PTE1MzI2OTE3MTUgcmc9d2l0emUKfiMhIHRpZD0xNTMxNTA3NjE3ClN0ZWhlbiB6d2VpIEt1ZWhlIGltIFNlZS4KClNhZ3QgZGllIGVpbmU6ICJLb21tLCB0cmluayBhdXMsIHdpciB3b2xsZW4gZ2VoZW4uIgoKU3dvdGwsIGkuQS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkR1IGJpc3QgUGVyZmVrdCBmdWVyIG1pY2ghIChSaG92YW4sIDE3LiBPa3QgMjAxOCwgMTE6MjI6MjkpOgoiRHUgYmlzdCBQZXJmZWt0IGZ1ZXIgbWljaCEiCgpQZXRlciAoMzApLCBEZXV0c2NobGVocmVyLCBoYXQgZ2VyYWRlIG1pdCBzZWluZXIgRnJldW5kaW4gSmFja2VseW4gU2NobHVzcwpnZW1hY2h0LgoKSmFja2VseW4gKDIzKSBoYXQgZGFzIG5pY2h0IGthcGllcnQgdW5kIGZyZXV0IHNpY2ggdWViZXIgZGFzIEtvbXBsaW1lbnQuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSGVhcmQgb2YgLi4uIChIdW1uaSwgIDkuIE5vdiAyMDE4LCAwMDoxNzo0MCk6CkhhdmUgeW91IGhlYXJkIG9mIE11cnBoeXMgTGF3PwpZZXMuCldoYXQgaXMgaXQ/CkV2ZXJ5dGhpbmcgdGhhdCBjYW4gZ28gd3JvbmcsIHdpbGwgZ28gd3JvbmcuClllcy4gSGF2ZSB5b3UgaGVhcmQgb2YgQ29sZSdzIExhdz8KTm8sIHdoYXQgaXMgaXQ/ClRoaW5seSBzbGljZWQgY2FiYmFnZSEKCkh1bW5pLCBiZWdlaXN0ZXJ0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGV0enRlbnMgKFphcGhvYiwgIDYuIEphbiAyMDE5LCAxODoxNzoyOCk6Clp3ZWkgQmxpbmRlIHdvbGx0ZW4gc2ljaCBwcnVlZ2Vsbi4gSWNoIGhhYmUgZ2VydWZlbjogIkljaCBiaW4gZnVlciBkZW4gbWl0IGRlbQpNZXNzZXIhIiAtIERhIHNpbmQgYmVpZGUgc2NobmVsbCB3ZWdnZWxhdWZlbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcnNpY2h0IEZsYWNod2l0eiAoUmhvdmFuLCAyMy4gSmFuIDIwMTksIDE2OjE0OjExKToKSWNoIGhhYmUgZWluIFNjaHdlaW4gdW5kIGVpbmVuIEtyYWtlbiBnZWtyZXV6dCwgZXMgd2FyIGVpbiB6aWVtbGljaGVzClNwZWNrdGFrZWwuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogVm9yc2ljaHQgRmxhY2h3aXR6IChBbWFyeWxsaXMsIDIzLiBKYW4gMjAxOSwgMjA6MTg6NDUpOgp+IyEgcm49UmhvdmFuIHJ0PTE1NDgyNTY0NTEgcmc9d2l0emUKfiMhIHRpZD0xNTQ4MjU2NDUxCkF1YSEKClRyZWZmZW4gc2ljaCB6d2VpIEphZWdlci4gQmVpZGUgdG90LgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBWb3JzaWNodCBGbGFjaHdpdHogKENoYWdhbGwsIDI0LiBKYW4gMjAxOSwgMDk6NTE6NTcpOgp+IyEgcm49QW1hcnlsbGlzIHJ0PTE1NDgyNzExMjUgcmc9d2l0emUKfiMhIHRpZD0xNTQ4MjU2NDUxCldhcyBpc3QgZGllIExpZWJsaW5nc3NwZWlzZSBlaW5lcyBBdXRvcz8KCkRhcyBQYXJrcGxhZXR6Y2hlbgoKTUMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkZsYWNod2l0eiAoU2FyYXksIDExLiBGZWIgMjAxOSwgMjA6MDQ6MTQpOgpXaWUgbmVubnQgbWFuIHp3ZWkgdmVyZmVpbmRldGUgQmVyYmF1dW50ZXJuZWhtZW4/CgpFcnpmZWluZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBGbGFjaHdpdHogKFNhcmF5LCAxMS4gRmViIDIwMTksIDIwOjA0OjUzKToKfiMhIHJuPVNhcmF5IHJ0PTE1NDk5MTE4NTQgcmc9d2l0emUKfiMhIHRpZD0xNTQ5OTExODU0CjpmdWVndCB2ZXJhZXJnZXJ0IGVpbiBnIGhpbnp1LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBGbGFjaHdpdHogKFJ1bWF0YSwgMTEuIEZlYiAyMDE5LCAyMDoyMzozNik6Cn4jISBybj1TYXJheSBydD0xNTQ5OTExODkzIHJnPXdpdHplCn4jISB0aWQ9MTU0OTkxMTg1NApUaGUgc3BlbGxpbmcgbWlzdGFrZSB3YXMgYmVhcmx5IG5vdGljZWFibGUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpHcm9lc3Nlbm9yZG51bmcgKEFudGhlYSwgMTcuIE1haSAyMDE5LCAwMDozNTo0OSk6CldpZSBncm9zcyBpc3QgZGVyIFBsYXR6IGluIGRlciBFVSwgZGVyIGZyZWkgd2lyZCwgd2VubiBHcm9zc2JyaXRhbm5pZW4gcmF1cwpnZWh0PwoKCgoKCjEgR0IKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClNjaHdlciAoQW50aGVhLCAxNy4gTWFpIDIwMTksIDE0OjMzOjA1KToKU3R1ZGllbiBoYWJlbiBlcmdlYmVuLCBkYXNzIGRpZSBlcnN0ZW4gNSBUYWdlIG5hY2ggZGVtIFdvY2hlbmVuZGUgZGllCnNjaHdlcnN0ZW4gc2luZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCldvcnR3aXR6IChEZWFkZHksIDIyLiBNYWkgMjAxOSwgMTI6MTg6NDYpOgpXaWUgbmVubnQgbWFuIGVpbmVuIHJ1c3Npc2NoZW4gVmVnYW5lcj8KCgoKCgpNb29vc2thdWVyCgpTb3JyeS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBXb3J0d2l0eiAoWm9vaywgMjIuIE1haSAyMDE5LCAxNjoyNTozMik6Cn4jISBybj1EZWFkZHkgcnQ9MTU1ODUyMDMyNiByZz13aXR6ZQp+IyEgdGlkPTE1NTg1MjAzMjYKSWNoIGhhdHRlIHp1ZXJzdCBhdWYgQW50aGVhIGFscyBBdXRvcmluIGdldGlwcHQuCgpab29rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IFdvcnR3aXR6IChBbWFyeWxsaXMsIDIyLiBNYWkgMjAxOSwgMjA6MzQ6NTcpOgp+IyEgcm49Wm9vayBydD0xNTU4NTM1MTMyIHJnPXdpdHplCn4jISB0aWQ9MTU1ODUyMDMyNgpTdGltbXQsIGRhcyBpc3QgaWhyZSBEb21hZW5lIDspCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4zOiBXb3J0d2l0eiAoRGVhZGR5LCAyMi4gTWFpIDIwMTksIDIwOjM1OjMzKToKfiMhIHJuPUFtYXJ5bGxpcyBydD0xNTU4NTUwMDk3IHJnPXdpdHplCn4jISB0aWQ9MTU1ODUyMDMyNgpJY2ggaGFiIGRlbiBhdXMnbSBJbnRlcndlYnMsIHZpZWxsZWljaHQgaXN0IHNpZSBqYSBkaWUgd2FocmUgVXJoZWJlcmluPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogV29ydHdpdHogKEFudGhlYSwgMjMuIE1haSAyMDE5LCAwODozODo0OCk6Cn4jISBybj1EZWFkZHkgcnQ9MTU1ODU1MDEzMyByZz13aXR6ZQp+IyEgdGlkPTE1NTg1MjAzMjYKTmVpbiwgYWJlciBpY2ggZnVlZ2UgZGFzIGdlcm5lIG1laW5lbSBSZXBlcnRvaXJlIGhpbnp1LgoKSWNoIHdvbGx0ZSBqZXR6dCBhdWNoIGVpbmVuIFJ1c3NlbndpdHogbWFjaGVuLCBhYmVyIGplbWFuZCBTdGFsaW5ncmFkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNTogV29ydHdpdHogKFJ1bWF0YSwgMjMuIE1haSAyMDE5LCAxNzoxNTo1OSk6Cn4jISBybj1BbnRoZWEgcnQ9MTU1ODU5MzUyOCByZz13aXR6ZQp+IyEgdGlkPTE1NTg1MjAzMjYKV28gb3BmZXJ0IG1hbiBGaXNjaGUgZnVlciBab29rPwoKTmF0dWVybGljaCBhdWYgZGVtIEFhbHRhci4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IFdvcnR3aXR6IChBbnRoZWEsIDI0LiBNYWkgMjAxOSwgMTE6MTQ6NTYpOgp+IyEgcm49UnVtYXRhIHJ0PTE1NTg2MjQ1NTkgcmc9d2l0emUKfiMhIHRpZD0xNTU4NTIwMzI2CkF1dHNjaC4gRGVyIHRhdCB3ZWguCgpIZXV0ZSBhYmVuZCBtdXNzIGljaCBhdWNoIHdpZWRlciBkZW4gZ3V0ZW4gUmFzZW5tYWVoZXIgcmF1c2hvbGVuLi4uCk1hZWh0IGluIEdlcm1hbnkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV43OiBXb3J0d2l0eiAoQW50aGVhLCAyNC4gTWFpIDIwMTksIDExOjE5OjAzKToKfiMhIHJuPUFudGhlYSBydD0xNTU4Njg5Mjk2IHJnPXdpdHplCn4jISB0aWQ9MTU1ODUyMDMyNgpJY2ggaGFiZSB1ZWJyaWdlbnMgZ2VyYWRlIGVpbiBCbGF0dCBQYXBpZXIgZ2Vsb2NodC4KQWJlciBkYXMgbnVyIGFtIFJhbmRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeODogV29ydHdpdHogKFpvb2ssIDI0LiBNYWkgMjAxOSwgMTI6NTM6MzApOgp+IyEgcm49QW50aGVhIHJ0PTE1NTg2ODk1NDMgcmc9d2l0emUKfiMhIHRpZD0xNTU4NTIwMzI2Ck5hIGFsc28sIGdlaHQgZG9jaC4KClpvb2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjk6IFdvcnR3aXR6IChBbnRoZWEsIDI0LiBNYWkgMjAxOSwgMTI6NTc6MzApOgp+IyEgcm49Wm9vayBydD0xNTU4Njk1MjEwIHJnPXdpdHplCn4jISB0aWQ9MTU1ODUyMDMyNgpVbmQgZWluIHN0dWRpZXJ0ZXIgQmF1ZXIgaXN0IGVpbiBBY2tlcmRlbWlrZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogV29ydHdpdHogKFJ1bWF0YSwgMjQuIE1haSAyMDE5LCAxMzowMToyOCk6Cn4jISBybj1BbnRoZWEgcnQ9MTU1ODY5NTQ1MCByZz13aXR6ZQp+IyEgdGlkPTE1NTg1MjAzMjYKSXN0IGVpbiBIeWRyYW50IGplbWFuZCBkZXIgZHVyc3RpZyBpc3Q/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4xMDogV29ydHdpdHogKFpvb2ssIDI0LiBNYWkgMjAxOSwgMTM6Mzg6NTEpOgp+IyEgcm49QW50aGVhIHJ0PTE1NTg2OTU0NTAgcmc9d2l0emUKfiMhIHRpZD0xNTU4NTIwMzI2Ck5lIEJla2FubnRlIHZvbiB1bnMgaGFiZW4gd2lyIGltbWVyIERva3RvciBBY2tlciBnZW5hbm50LiBSYXRldAptYWwsIGluIHdlbGNoZW0gRmFjaCBzaWUgcHJvbW92aWVydCBoYXQuCgpab29rCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpRQSAoWmFwaG9iLCAgOC4gT2t0IDIwMTksIDIxOjM1OjE5KToKR2VodCBlaW4gVGVzdGVyIGluIGRpZSBLbmVpcGUgdW5kIGJlc3RlbGx0IGVpbiBCaWVyLiBCZXN0ZWxsdCAwIEJpZXJlLgpCZXN0ZWxsdCA5OTk5OTk5OTk5IEJpZXJlLiBCZXN0ZWxsdCBlaW4gRWljaGhvZXJuY2hlbi4gQmVzdGVsbHQgLTEgQmllcmUuCkJlc3RlbGx0IGVpbiB1ZWljYmtzamRoZC4KS29tbXQgZGVyIGVyc3RlIGVjaHRlIEt1bmRlIHJlaW4gdW5kIGZyYWd0LCB3byBkaWUgVG9pbGV0dGUgaXN0LiAKRGllIEJhciBleHBsb2RpZXJ0IHVuZCB0b2V0ZXQgYWxsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClZvcmJpbGQgKEFudGhlYSwgIDUuIE1hciAyMDIwLCAxMjo1ODo0Nik6Ci4uLnZvcmhpbiBoYWJlIGljaCBhbSBCYWhuaG9mIEp1Z2VuZGxpY2hlIGdlc2VoZW4sIGRpZSBzaWNoIGdlaW1wZnQgaGFiZW4uClNlaHIgdm9yYmlsZGxpY2ghCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpFcmxlaWNodGVydW5nIChBbnRoZWEsICA1LiBNYXIgMjAyMCwgMTI6NTk6MjgpOgpIZXV0ZSBrYW1lbiAyIExldXRlIG1pdCBNdW5kc2NodXR6IGluIGRpZSBCYW5rLiBHb3R0IHNlaSBEYW5rIHdhciBlcyBudXIgZWluClVlYmVyZmFsbCwgdW5kIHdpciBoYWJlbiB1bnMgYWxsZSBzY2huZWxsIGJlcnVoaWd0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKQ29yb25hIChBbWFyeWxsaXMsIDEyLiBNYXIgMjAyMCwgMjM6NTk6NDcpOgpHZXN0ZXJuIGthbWVuIHp3ZWkgTGV1dGUgbWl0IE11bmRzY2h1dHogaW4gZGllIEJhbmsuIEdvdHQgc2VpIERhbmsgd2FyIGRhcyBudXIKZWluIFVlYmVyZmFsbCwgdW5kIHdpciBoYWJlbiB1bnMgYWxsZSBzY2huZWxsIGJlcnVoaWd0LgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2NodWxkenV3ZWlzdW5nIChBbnRoZWEsIDEzLiBNYXIgMjAyMCwgMDk6NDg6MDQpOgpEaWUgTGVocmVyaW4gZnJhZ3Q6IFdhcyBpc3QgZGllIE1laHJ6YWhsIHZvbiAiVmlydXMiLgpGcml0emNoZW46IFZpcnVzc2UuCkhlaW5pIHZvbiBkZXIgbGV0enRlbiBCYW5rOiBEYSBoYW1tZXIncyB3aWVkZXIsIGRlciBSdXNzZSBpc3Qgc2NodWxkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRWRlbCAoQW50aGVhLCAxMy4gTWFyIDIwMjAsIDE2OjA1OjA5KToKV2FydW0gZ2FiIGVzIGltIFBhbGFzdCBrZWluZW4gS29tbWVudGFyIGFscyBkZXIgS29lbmlnIGZ1cnp0ZT8KCldlaWwgRWRlbGdhc2Uga2VpbmUgUmVha3Rpb24gYXVzbG9lc2VuLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEhhbXN0ZXJrb2VuaWcgKEFtYXJ5bGxpcywgMTYuIE1hciAyMDIwLCAyMDo1MzoxNyk6Cn4jISBybj1CdWdmaXggcnQ9MTU4NDM4Njc0NSByZz1rdWx0dXIKfiMhIHRpZD0xNTg0Mzg2NzQ1CldhcnVtIGlzdCBkZW5uIHVlYmVyaGF1cHQgS2xvcGFwaWVyIG5pY2h0IG1laHIgdmVyZnVlZ2Jhcj8KCkdhbnogZWluZmFjaDogRWluZXIgbmllc3QgdW5kIDUwMCBzY2hlaXNzZW4gc2ljaCBpbiBkaWUgSG9zZS4KCjspCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCi4uLiAoR2xvaW5zb24sIDI1LiBNYXIgMjAyMCwgMTk6MjI6NTgpOgpGaW5hbGx5LCBhZnRlciBkZWNhZGVzIG9mIHdhaXRpbmcsIFByaW5jZSBDaGFybGVzIGhhcyBmaW5hbGx5IGJlZW4gY29yb25hdGVkLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiAuLi4gKEFyYXRob3JuLCAyNS4gTWFyIDIwMjAsIDE5OjI0OjI2KToKfiMhIHJuPUdsb2luc29uIHJ0PTE1ODUxNjA1Nzggcmc9d2l0emUKfiMhIHRpZD0xNTg1MTYwNTc4CkdyYW5kaW9zISA6LSkKCkF1ZiBkZXIgYW5kZXJlbiBTZWl0ZSBkZXMgQXRsYW50aWs6CgpUcnVtcDogIkkgd2FudCB0byBiZSBraW5nISIKTW90aGVyIE5hdHVyZTogIkhlcmUncyB5b3VyIGNyb3duLiIKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkNvcm9uYXJlZ2VsbiB6dSBhYnN0cmFrdCAoRGVhZGR5LCAyOS4gQXByIDIwMjAsIDE2OjEyOjI4KToKc29jaWFsIGRpc3RhbmNpbmcKLSBjb25jZXB0dWFsCi0gbmV3IHRlcm0KLSBub3Qgc3BlY2lmaWMKCnN0YXlpbmcgb3V0IG9mIG1lbGVlIHJhbmdlCi0gdmVyeSBzcGVjaWZpYwotIHNob3dzIGtub3dsZWRnZSBvZiB0YWN0aWNzCi0ga2VlcHMgeW91ciBoZWFsZXJzIGZyb20gYmVpbmcgb3ZlcndoZWxtZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlOiBDb3JvbmFyZWdlbG4genUgYWJzdHJha3QgKE11cGZlbCwgMjkuIEFwciAyMDIwLCAyMDoxMTo0Nyk6Cn4jISBybj1EZWFkZHkgcnQ9MTU4ODE2OTU0OCByZz13aXR6ZQp+IyEgdGlkPTE1ODgxNjk1NDgKRGFzIFByb2JsZW0gYW4gZGVyIFNhY2hlOgpEaWUgTGV1dGUsIGRpZSBkaWVzZSBBdXNzYWdlIHZlcnN0ZWhlbiwgaGFiZW4gZWggbWl0ICdzb2NpYWwgZGlzdGFuY2luZycga2VpbmUKUHJvYmxlbWUuLi4KCi1tdXBmZWwtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV4yMDU5NzE6IEhhY2guLi4gbnUgaXMgd2FzIGRyaW4sIGlubmVyIE1QQS4gKFpvb2ssICA5LiBTZXAgMjAyMCwgMTY6Mzk6MDIpOgp+IyEgcm49QW50aGVhIHJ0PTE1OTk2NTg2MzUgcmc9bWVnYXNjaG1hcnJuCn4jISB0aWQ9OTgyMzI4Mjc4CkRhZnVlciwgZGFzcyBEdSBhbmdlYmxpY2ggd2llZGVyIHNjaG5lbGwgc2NocmVpYmVuIGthbm5zdCwgaXN0IGRpZSBSdWJyaWsKIndpdHplIiBlcnN0YXVubGljaCBsZWVyLgoKWm9vawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKTGVlciAoQW50aGVhLCAxNi4gU2VwIDIwMjAsIDE1OjUzOjMzKToKV2llIG5lbm5lbiBLYW5uaWJhbGVuIFNrZWxldHRlPwoKCgpMZWVyZ3V0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKSG9ub3JhciAoQW50aGVhLCAxOC4gU2VwIDIwMjAsIDA5OjMyOjU2KToKRnJhZ3QgZWluIFp3ZXJnIGVpbmVuIEFud2FsdDogIldpZSBob2NoIGlzdCBpaHIgSG9ub3Jhcj8iCkFud2FsdDogIjEwMDAwIEdvbGRtdWVuemVuIGZ1ZXIgMyBGcmFnZW4uIgpad2VyZzogIlNvIHZpZWwhIElzdCBkYXMgbmljaHQgZWluIGJpc3NjaGVuIHNlaHIgdGV1ZXI/IgpBbndhbHQ6ICJNYWcgc2Vpbi4gVW5kIHdhcyBpc3QgZGllIGRyaXR0ZSBGcmFnZT8iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpEaXRvIChBbnRoZWEsIDE4LiBTZXAgMjAyMCwgMTA6NDU6MjgpOgpGcml0eiBrb21tdCB6dSBzcGFldCB6dXIgU2NodWxlLiBFciByZW5udCBkaWUgVHJlcHBlbiBob2NoIHVuZCB0cmlmZnQgZGFiZWkKZGVuIFNjaHVsbGVpdGVyLgpTY2h1bGxlaXRlcjogIlplaG4gTWludXRlbiB6dSBzcGFldCEiCkZyaXR6OiAiTWFjaHQgbmljaHRzLCBpY2ggYXVjaCEiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpNYWdpZXIgKFJob3ZhbiwgIDMuIE5vdiAyMDIwLCAxOTozNjoxNSk6Ck1hZ2llcjogSWNoIGthbm4gYWxsZXMgdmVyc2Nod2luZGVuIGxhc3NlbiEKVG9tOiBBdWNoIG1laW4gVGVlPwpNYWdpZXIgd2VkZWx0IG1pdCBzZWluZW0gTUdUb29sLgpvbTogSGFlLCBtZWluIFRlZSBpc3Qgbm9jaCBkYSE/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpBbnR3b3J0IChBbnRoZWEsICA0LiBOb3YgMjAyMCwgMDc6NTg6NDQpOgpIZXV0ZSBmcnVlaCBob2VydGUgaWNoIGltIFJhZGlvOiAiRGFzIFNjaGxpbW1zdGUga29tbXQgbm9jaCEgRGllIFpldWdlbgpKZWhvdmFzIHdpc3NlbiwgZGFzcyBpaHIgYWxsZSB6dSBIYXVzZSBzZWlkLiIKCkFiZXIgZGllIEFudHdvcnQgaXN0IGRvY2ggZGFubiBhdWNoIGdhbnogZWluZmFjaC4gIkphIGdlcm5lLCBrb21tZW4gU2llIHJlaW4KdW5kIG1hY2hlbiB3aXIgZXMgdW5zIGdlbXVldGxpY2guIEljaCBoYWJlIGF1Y2ggc29vb28gd2VuaWdlCkdlc3ByYWVjaHNwYXJ0bmVyLCBzZWlkIGljaCB1bnRlciBRdWFyYW50YWVuZSBzdGVoZSwgZGEgZnJldWUgaWNoIG1pY2ggdWViZXIKZWluZW4gbmV0dGVuIEJlc3VjaC4iCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQW50d29ydCAoTm9uZHJ1bSwgIDQuIE5vdiAyMDIwLCAwODowMjowNCk6Cn4jISBybj1BbnRoZWEgcnQ9MTYwNDQ3MzEyNCByZz13aXR6ZQp+IyEgdGlkPTE2MDQ0NzMxMjQKSWNoIGJlZnVlcmNodGUsIGRhc3MgZGllIFpldWdlbiBKZWhvdmFzIGRlbmtlbiBrb2VubnRlbiwgZGFzcyBHb3R0IHNpZSB2b3IgZGVtClZpcnVzIGJlc2NodWV0enQgdW5kIHNpZSBhdWNoIGRpZSBhcm1lIFNlZWxlIG1pc3Npb25pZXJlbiBtdWVzc2VuLCBkYSBlcwpzaWNoZXIgZWluZSBTdHJhZmUgR290dGVzIGlzdC4gVW5kIGRhbWl0IHRyYWdlbiBzaWUgZnJvZWhsaWNoIGRhcyBWaXJ1cyB2b24KSGF1cyB6dSBIYXVzLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFudHdvcnQgKE5vbmRydW0sICA5LiBOb3YgMjAyMCwgMTk6NDQ6NDEpOgp+IyEgcm49Tm9uZHJ1bSBydD0xNjA0NDczMzI0IHJnPXdpdHplCn4jISB0aWQ9MTYwNDQ3MzEyNApXaXR6IGRlciBXb2NoZSBhdXMgZGVyIFN1ZWRkZXV0c2NoZW4gWmVpdHVuZzoKIApHZW9yZ2UgVy4gQnVzaCwgQmFyYWNrIE9iYW1hIHVuZCBEb25hbGQgVHJ1bXAgc2luZCBnZXN0b3JiZW4gdW5kIHN0ZWhlbiB2b3IKR290dC4gR290dCBmcmFndCBCdXNoOiAiV29yYW4gZ2xhdWJzdCBkdT8iIEJ1c2g6ICJJY2ggZ2xhdWJlIGFuIGRlbiBmcmVpZW4KSGFuZGVsbiwgZWluIHN0YXJrZXMgQW1lcmlrYSwgZGllIE5hdGlvbi4iIEdvdHQgaXN0IGJlZWluZHJ1Y2t0OiAiS29tbSB6dQptZWluZXIgUmVjaHRlbi4iIEdvdHQgd2VuZGV0IHNpY2ggYW4gT2JhbWE6ICJBbiB3YXMgZ2xhdWJzdCBkdT8iIE9iYW1hOiAiSWNoCmdsYXViZSBhbiBkaWUgRGVtb2tyYXRpZSwgYW4gZGllIEhpbGZlIGZ1ZXIgZGllIEFybWVuLCBhbiBkZW4gV2VsdGZyaWVkZW4uIgpHb3R0IGlzdCBzZWhyIGJlZWluZHJ1Y2t0IHVuZCBzYWd0OiAiU2V0eiBkaWNoIHp1IG1laW5lciBMaW5rZW4uIiBEYW5uIGZyYWd0CmVyIFRydW1wOiAiV2FzIGdsYXVic3QgZHU/IiBUcnVtcDogIkljaCBnbGF1YmUsIGR1IHNpdHp0IGF1ZiBtZWluZW0gU3R1aGwuIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGFtaXQgaGllciBtYWwgd2FzIGRyaW5zdGVodC4uLiAoQW1hcnlsbGlzLCAyMi4gRmViIDIwMjEsIDIzOjExOjU5KToKTWVpbiBOYWNoYmFyIGhhdCBOZXJ2ZW4uIEtsaW5nZWx0IGRlciBkb2NoIGdlc3Rlcm4gbmFjaHQgdW0gMyBVaHIgYmVpIG1pciBhbgpkZXIgVHVlciEgTWlyIHdhZXIgZmFzdCB2b3IgU2NocmVjayBkaWUgQm9ocm1hc2NoaW5lIGF1cyBkZXIgSGFuZCBnZWZhbGxlbiEKCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCkFydGlrZWwgKFJob3ZhbiwgMTYuIEF1ZyAyMDIxLCAwOToxNjo0Nik6CkVnYWwgd2lldmllbCBDdXJyeSBEdSBpc3N0LCBGcmVkZHkgaXNzdCBtZWhyIEN1cnJ5LgoKSWNoIHdlaXMsIGRlciBrb21tdCBudXIgZ3V0IHdlbm4gbWFuIGlobiBhdXNzcHJpY2h0LiBBYmVyIGRhcyBrb25udGUgaWNoIGV1Y2gKdHJvdHpkZW0gbmljaHQgdm9yZW50aGFsdGVuLgoKR3J1c3MKUmhvdmFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogQXJ0aWtlbCAoQ3JvZnQsIDE2LiBBdWcgMjAyMSwgMjI6NDI6MDEpOgp+IyEgcm49UmhvdmFuIHJ0PTE2MjkwOTgyMDYgcmc9d2l0emUKfiMhIHRpZD0xNjI5MDk4MjA2CkZ1bmt0aW9uaWVydCBzY2hsZWNodGVyIHdlbm4gZGllIGVyc3RlIEZyZWRkeSBBc3NvemlhdGlvbiBLcnVlZ2VyIGlzdC4KCkNyb2Z0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFydGlrZWwgKFJ1bWF0YSwgMTYuIEF1ZyAyMDIxLCAyMzowMToyMik6Cn4jISBybj1Dcm9mdCBydD0xNjI5MTQ2NTIxIHJnPXdpdHplCn4jISB0aWQ9MTYyOTA5ODIwNgpTbyB1bmdlZmFlaHI/CkVnYWwsIHdpZSBob2hsIGRlciBXaV5XS3J1ZyBpc3QsIEZyZWRkaWVzIGlzdCBLcnVlZ2VyLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQXJ0aWtlbCAoQ3JvZnQsIDE2LiBBdWcgMjAyMSwgMjM6NDI6MzEpOgp+IyEgcm49UnVtYXRhIHJ0PTE2MjkxNDc2ODIgcmc9d2l0emUKfiMhIHRpZD0xNjI5MDk4MjA2CkRhbWl0IGJla29tbXN0IGR1IGRlbiBHb2V0aGUgUHJlaXMhCgpDcm9mdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR2VsYiAoUmhvdmFuLCAxOC4gQXVnIDIwMjEsIDA5OjM4OjE0KToKV2FzIGlzdCBnZWxiIHVuZCBoYXQgbnVyIGVpbmVuIEFybT8KCkdlbmF1LCBlaW4gQmFnZ2VyIQoKUmhvdmFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogR2VsYiAoQW1hcnlsbGlzLCAxOC4gQXVnIDIwMjEsIDEyOjMxOjIxKToKfiMhIHJuPVJob3ZhbiBydD0xNjI5MjcyMjk0IHJnPXdpdHplCn4jISB0aWQ9MTYyOTI3MjI5NApFaW4gTWFubiBlbnRkZWNrdCBlaW5lIFNjaG5lY2tlIGluIGVpbmVyIHNlaW5lciBCYWxrb25wZmxhbnplbiB1bmQgd2lyZiBkaWVzZQphdXMgZGVtIDMuIFN0b2NrIGhpbnVudGVyIGF1ZiBkaWUgU3RyYXNzZS4KTmFjaCBlaW5lbSBKYWhyIGtsaW5nZWx0IGVzIGFuIGRlciBUdWVyLgpEZXIgTWFubiBtYWNodCBhdWYsIHN0ZWh0IGRhIGRpZSBTY2huZWNrZSB2b3IgZGVyIFR1ZXIgdW5kIGZyYWd0OiAiTWFubiwgd2FzCnNvbGx0ZSBkZW5uIGRlciBNaXN0IGRhIGViZW4/IgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IEFydGlrZWwgKEJhbWJ1bGtvLCAxOS4gQXVnIDIwMjEsIDA5OjQyOjE1KToKfiMhIHJuPVJob3ZhbiBydD0xNjI5MDk4MjA2IHJnPXdpdHplCn4jISB0aWQ9MTYyOTA5ODIwNgpJcmdlbmR3aWUgc3RlaGUgaWNoIGF1ZiBkZW0gU2NobGF1Y2guIFdpbGwgamVtYW5kIGVpbmVuIEVya2xhZXJiYWVyZW4KdmVyZGllbmVuPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmU6IFJlOiBBcnRpa2VsIChSaG92YW4sIDE5LiBBdWcgMjAyMSwgMDk6NTQ6MTkpOgp+IyEgcm49QmFtYnVsa28gcnQ9MTYyOTM1ODkzNSByZz13aXR6ZQp+IyEgdGlkPTE2MjkwOTgyMDYKSWNoIHNjaHJlaWIgbWFsIHNvIHdpZSBtYW4gZXMgaW4gZXR3YSBzcHJpY2h0LgoKRWdhbCB3aWV2aWVsIEN1cnJ5IER1IGlzc3QsIEZyZWRkaWUgaXN0IE1lcmN1cnkuCgpFZ2FsIHdpZSBEaWNodCBEdSBiaXN0LCBHb2V0aGUgd2FyIERpY2h0ZXIuCgpSaG92YW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFydGlrZWwgKFJob3ZhbiwgMTkuIEF1ZyAyMDIxLCAxMDowMDoxMik6Cn4jISBybj1SaG92YW4gcnQ9MTYyOTM1OTY1OSByZz13aXR6ZQp+IyEgdGlkPTE2MjkwOTgyMDYKRWdhbCB3aWUgZ3V0IER1IHNjaGxhZWZzdCwgQWxiZXJ0IHNjaGxhZWZ0IHdpZSBlaW4gU3RlaW4uCgpSaG92YW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjM6IEFydGlrZWwgKEJhbWJ1bGtvLCAxOS4gQXVnIDIwMjEsIDEwOjEzOjMzKToKfiMhIHJuPVJob3ZhbiBydD0xNjI5MzU5NjU5IHJnPXdpdHplCn4jISB0aWQ9MTYyOTA5ODIwNgpBaCBvay4gRGFua2UuIFN0ZWhlIGhldXRlIHdpcmtsaWNoIGF1ZiBkZW0gU2NobGF1Y2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogUmU6IEFydGlrZWwgKEFyaywgMTkuIEF1ZyAyMDIxLCAxMDoyNDoyOSk6Cn4jISBybj1Dcm9mdCBydD0xNjI5MTQ2NTIxIHJnPXdpdHplCn4jISB0aWQ9MTYyOTA5ODIwNgpWaWVsbGVpY2h0IGVoZXIgY2hpbmVzaXNjaDogRWdhbCB3aWUga2x1ZyBEdSBiaXN0LCBGbGVkZHkgaXN0IGtsdWVnZWwuCk5hamEsIGF1Y2ggaXJnZW5kd2llIGZsYWNoIDopCgoKICAgICAgICAgICAgICAqKiogQVJLICogdGhlICogTWFnbmlmaWNlbnQgKioqCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeMzogQXJ0aWtlbCAoUmhvdmFuLCAxOS4gQXVnIDIwMjEsIDExOjE4OjE5KToKfiMhIHJuPUFyayBydD0xNjI5MzYxNDY5IHJnPXdpdHplCn4jISB0aWQ9MTYyOTA5ODIwNgpFZ2FsIHdpZSBlaW5mYWNoIGRlciBXZWcgenVyIFRvaWxldHRlIGlzdCwgR2VvcmdlIGZpbmRldCBkYXMgS2xvIG5pZS4KClJob3ZhbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKUmVeNDogQXJ0aWtlbCAoWm9vaywgMTkuIEF1ZyAyMDIxLCAxMjo1NjoyNyk6Cn4jISBybj1SaG92YW4gcnQ9MTYyOTM2NDY5OSByZz13aXR6ZQp+IyEgdGlkPTE2MjkwOTgyMDYKRGFyZiBpY2ggbWlyIFdpdHplIHZvbiBBbnRoZWEgenVydWVja3d1ZW5zY2hlbj8KClpvb2sKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEFydGlrZWwgKFJ1bWF0YSwgMTkuIEF1ZyAyMDIxLCAxODoxMTozOSk6Cn4jISBybj1ab29rIHJ0PTE2MjkzNzA1ODcgcmc9d2l0emUKfiMhIHRpZD0xNjI5MDk4MjA2CkVnYWwgd2llIGZlc3RlIGR1IHNjaGllYnN0LCB1bnNlciBNdWRnb3R0IFpvb2suCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV40OiBBcnRpa2VsIChNYXN1bCwgMTkuIEF1ZyAyMDIxLCAxODoyMTozOCk6Cn4jISBybj1SaG92YW4gcnQ9MTYyOTM2NDY5OSByZz13aXR6ZQp+IyEgdGlkPTE2MjkwOTgyMDYKRHUgc3ByaWNoc3QgbWFsIG1pdCBkZW0gZWluZW4sIGRhbm4gbWl0IGRlbSBhbmRlcmVuOyBKb2Ugc3ByaWNodCBtaXQgYmVpZGVuLgoKTWFzdWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjU6IEFydGlrZWwgKFJ1bWF0YSwgMTkuIEF1ZyAyMDIxLCAxODo0NDo1OSk6Cn4jISBybj1NYXN1bCBydD0xNjI5MzkwMDk4IHJnPXdpdHplCn4jISB0aWQ9MTYyOTA5ODIwNgpFZ2FsIHdlbGNoZSBLYXJ0b2ZmZWxuIGR1IHdpbGxzdCwgUm9iYmllIFdpbGwgWWFtcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjY6IEFydGlrZWwgKEFmdW5pYWwsIDE5LiBBdWcgMjAyMSwgMjE6NDM6NTQpOgp+IyEgcm49UnVtYXRhIHJ0PTE2MjkzOTE0OTkgcmc9d2l0emUKfiMhIHRpZD0xNjI5MDk4MjA2CkVnYWwgd2llIHNjaG5lbGwgRHUgYmFlY2tzdCwgUk0gR2ViaXJnZSBCdWdmaXguCgpBbSBiZXN0ZW4gZGV1dHNjaCBhdXNzcHJlY2hlbiAuLi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlXjc6IEFydGlrZWwgKFJob3ZhbiwgMjAuIEF1ZyAyMDIxLCAxMDo1Mzo0NSk6Cn4jISBybj1BZnVuaWFsIHJ0PTE2Mjk0MDIyMzQgcmc9d2l0emUKfiMhIHRpZD0xNjI5MDk4MjA2CkVnYWwgd2FzIER1IGJlc3RlbGxzdCwgSmFuIEpvc2VmIExpZWZlcnRzLgoKUmhvdmFuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZV44OiBBcnRpa2VsIChBbnRoZWEsIDIzLiBBdWcgMjAyMSwgMTA6NTc6MjkpOgp+IyEgcm49UmhvdmFuIHJ0PTE2Mjk0NDk2MjUgcmc9d2l0emUKfiMhIHRpZD0xNjI5MDk4MjA2CldhcyBtYWNoZW4gUGlsemUgYXVmIGVpbmVyIFBpenphPwoKQWxzIEJlbGFnIGZ1bmdoaWVyZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpWZXJhYnJlZHVuZyAoQW50aGVhLCAyMy4gQXVnIDIwMjEsIDEwOjU3OjU0KToKSWNoIGhhYmUgbWl0IGRlciBQZmxhbnplIGF1c2dlbWFjaHQsIHNpZSBudXIgbm9jaCBlaW5tYWwgaW0gTW9uYXQgenUgZ2llw59lbi4KU2llIGlzdCBkYXJhdWYgZWluZ2VnYW5nZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpQZmxhbnpsaWNoIChBbnRoZWEsIDIzLiBBdWcgMjAyMSwgMTE6MDA6MjEpOgpWZWdhbmVyIGJla29tbWVuIGtlaW5lIEtpbmRlci4gU2llIGJla29tbWVuIFNwcsO2c3NsaW5nZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKClJlZmVyZW56cHJvYmxlbSAoQW50aGVhLCAyMy4gQXVnIDIwMjEsIDExOjA2OjI0KToKIkRpZSBuZXVlIFByYWt0aWthbnRpbiBoYXQgbWVpbmUgSmFja2UgaGVydW50ZXJnZXNjaG1pc3Nlbi4iCiJTb2xsIGljaCBzaWUgYXVmaGFlbmdlbj8iCiJKYSBiaXR0ZS4gQWJlciBsYXNzIGVzIHdpZSBlaW5lbiBVbmZhbGwgYXVzc2VoZW4uIgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKR3J1ZW5lIHVuZCBTdHJvbSAoQW1hcnlsbGlzLCAyMC4gU2VwIDIwMjEsIDE1OjM3OjI4KToKQmFlcmJvY2sgdW5kIEdvZXJpbmctRWNraGFyZHQgdW50ZXJoYWx0ZW4gc2ljaCB1ZWJlciBTdHJvbS4KQmFlcmJvY2s6ICJJY2ggd2Vpc3MgamV0enQsIHdpZSBkYXMgTGljaHQgZ2VodCEiIEJldGFldGlndCBkZW4gU2NoYWx0ZXIuCiJTY2hhdSwgamV0enQgaXN0IGVzIGRhIHVuZCBqZXR6dCBpc3QgZXMgd2VnISBTbyBnZWh0IGRhcyEiCkdFOiAiVG9sbCEgQWJlciB3ZW5uIGRhcyBMaWNodCBudW4gd2VnIGlzdCwgd28gaXN0IGVzIGhpbj8iCkJhZXJib2NrOiAiSGFiIGljaCBsYW5nZSBkcnVlYmVyIGdlZ3J1ZWJlbHQhIERhIGtvbW1zdCBkdSBuaWUgZHJhdWYhIEhpZXIgaXN0CmVzISBJbSBLdWVobHNjaHJhbmshIgoKQW1hKgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKU2Nod2FyemUgdW5kIEVocmxpY2hrZWl0IChBbmF0b2wsIDIzLiBTZXAgMjAyMSwgMTc6NTM6MTcpOgp+IyEgcm49QnVnZml4IHJ0PTE2MzI0MTE1OTUgcmc9bWVnYXNjaG1hcnJuCn4jISB0aWQ9OTgyMzI4Mjc4CgpJcmdlbmR3YW5uLCBpbiBlaW5lciBmZXJuZW4gWnVrdW5mdC4KCkFybWluIExhc2NoZXQgaGF0IGRlcyBJcmRpc2NoZW4gZW50c2FndCB1bmQgZmFlaHJ0IGhpbmF1ZiBhbiBkaWUgaGltbWxpc2NoZQpQZm9ydGUuIEF1ZiBzZWluIHphZ2hhZnRlcyBLbG9wZmVuIGhpbiB3aXJkIGlobSBkYXMgVG9yIGF1ZmdldGFuLgoKIkFybWluLCBEdSBkYXJmc3Qgc2VsYnN0IHdhZWhsZW4uIE1vZWNodGVzdCBEdSBpbiBkZW4gSGltbWVsIG9kZXIgaW4gCmRpZSBIb2VsbGU/IgoKQXJtaW4sIGV0d2FzIHVlYmVyZm9yZGVydCwgZnJhZ3QsIG9iIGVyIHNpY2ggYmVpZGVzIG1hbCBhbnNjaGF1ZW4ga29lbm50ZS4KRXIga2Fubi4gVW5kIGVyaGFlbHQgZXJzdG1hbCBlaW5lIEZ1ZWhydW5nIGR1cmNoIGRlbiBIaW1tZWwuIFdpZSBlciBzaWNoCmdlZGFjaHQgaGF0dGUsIGFsbGVzIGltIHRpZWZlbiBGcmllZGVuLCBIZXJ1bXNjaHdlYmVuIGluIEdsdWVja3NlbGlna2VpdC4KCi4gbyBPICggT2theSwgc2llaHQgamEgZ2FueiBndXQgYXVzISApCgpCbGljayBpbiBkaWUgSG9lbGxlLiBHcm9zc2UgVWViZXJyYXNjaHVuZzogV2VsbG5lc3MtQmVyZWljaGUsIEdvbGZwZmxhZXR6ZSwKRXRhYmxpc3NlbWVudHMgZnVlciBhZWggdWViZXJsYXN0ZXRlIEJldHJpZWJzcmFldGUgKGlociB3aXNzdCBzY2hvbiksClBvb2wgbWl0IHNjaG51Y2tlbGlnZXIgQmVkaWVudW5nIGFtIFBsYXR6IC4uLgoKTmFlY2hzdGVyIFRhZy4KCiJOdW4sIEFybWluIC0gd2VsY2hlIFdhaGwgdHJpZmZzdCBEdSwgSGltbWVsIG9kZXIgSG9lbGxlPyIKCi0tLSAiQWVoLi4uIGRhcyBtYWcgamV0enQgZXR3YXMgdWViZXJyYXNjaGVuZCBrb21tZW4sIGFiZXIgLi4uIGFsc28gaWNoCndhZWhsZSBkaWUgSG9lbGxlISIgU3ByaWNodCBlciwgdW5kIGZyZXV0IHNpY2guCgpBYiBnZWh0IGVzIGluIGRlbiBBdWZ6dWcgdW5kIGFiIG5hY2ggdW50ZW4uCkF1Znp1Z3R1ZXJlIGF1ZiAtIHVuZCBlcyBzY2hsYWVndCBpaG0gZWluZSBIaXR6ZXdlbGxlIGVudGdlZ2VuLiBBbgpGZWxzZW4gYW5nZWtldHRldGUgTWVuc2NoZW4gdW5kIEFkbGVyLCBkaWUgYW4gTGViZXJuIGZyZXNzZW4uIEtlc3NlbAp2b2xsZXIgZGFyYmVuZGVyIFN1ZW5kZXIsIGdlc2NodW5kbmUgS29lcnBlciBrcmllY2hlbiBzaW5ubG9zIHVtaGVyLgoKLS0tICJBZWguLi4gd28gc2luZCBkZW5uIGRpZSBHb2xmcGxhZXR6ZSBoaW4/IFdvIHNpbmQgZGllIFBvb2xzPyIKCiJHb2xmPyBQb29scz8gLi4uCgoKCi4uLiBhY2ggRGFzISBEYXMgd2FyIFZPUiBkZXIgV2FobCEiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKRGllIEdlc2NoaWNodGUgdm9tIEltcGZrYXNwYXIgKEFtYXJ5bGxpcywgMjMuIFNlcCAyMDIxLCAxOTowMDo1MSk6CihJbnRlcm5ldGZ1bmQsIGZyZWkgbmFjaCBkZW0gU3VwcGVua2FzcGFyKQoKSW4gZGVyIGFsbGVyZXJzdGVuIFdlbGxlLCAKc2NocmllIGRlciBLYXNwYXI6IEJhZ2F0ZWxsZSwgCmVpbmVuIFZpcnVzIGtyaWVnIGljaCBuaWNodCwgCm5laW4sIGVpbmVuIFZpcnVzIGtyaWVnIGljaCBuaWNodCEKClpvcm5pZyBpbiBkZXIgendlaXRlbiBXZWxsZSwgCnN0YW1wZnQgZGVyIEthc3BhciBhdWYgZGVyIFN0ZWxsZSwgCmVpbmUgTWFza2UgdHJhZyBpY2ggbmljaHQsIApuZWluLCBlaW5lIE1hc2tlIHRyYWcgaWNoIG5pY2h0IQoKUmllZiBub2NoIGluIGRlciBkcml0dGVuIFdlbGxlIAp1ZWJlcnpldWd0IHZvbiBzZWluZXIgWW91dHViZS1RdWVsbGU6IApFaW5lIEltcGZ1bmcgYnJhdWNoIGljaCBuaWNodCwgCm5laW4sIGVpbmUgSW1wZnVuZyBicmF1Y2ggaWNoIG5pY2h0IQoKU2NobGllc3NsaWNoIGJlaSBkZXIgdmllcnRlbiBXZWxsZSwgCmRyaW5ndCBlaW4gVmlydXMgaW4gZGllIFplbGxlLCAKS2FzcGFyIGJla2FtIEF0ZW1ub3QgCnVuZCB3YXIgYW0gZnVlbmZ0ZW4gVGFnZSB0b3QuCgpBbWEqCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCgpSZTogU2Nod2FyemUgdW5kIEVocmxpY2hrZWl0IChBbWFyeWxsaXMsIDI1LiBTZXAgMjAyMSwgMjI6MDQ6MTYpOgp+IyEgcm49QW5hdG9sIHJ0PTE2MzI0MTIzOTcgcmc9d2l0emUKfiMhIHRpZD05ODIzMjgyNzgKSWNoIGtlbm5lIGRlbiBzY2hvbiBtaXQgTWVya2VsLCB2b3IgVHVlcmtlbi1Bcm1pbnMgWmVpdGVuLi4uCkFiZXIgd2llc28gc29sbHRlIGVzIHBvbGl0aXNjaGVuIFdpdHplbiBhbmRlcnMgZ2VoZW4gYWxzIGRlbiBhbmRlcmVuOiBEaWUKd2VyZGVuIGdlcm5lIG1hbCBmdWVyIG5ldWUgWndlY2tlICJuZXUiIGF1ZmdlbGVndC4KCkFtYSoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKCg==